[
  {
    "path": ".gitattributes",
    "content": "*.ptb binary\n"
  },
  {
    "path": ".gitignore",
    "content": "# Prerequisites\n*.d\n*.bat\n\n# Object files\n*.o\n*.ko\n*.obj\nbuild/\n\n# Linker output\n*.ilk\n*.map\n*.exp\n\n# Precompiled Headers\n*.gch\n*.pch\n\n# Libraries\n*.lib\n*.a\n*.la\n*.lo\n\n# Shared objects (inc. Windows DLLs)\n*.dll\n*.so\n*.so.*\n*.dylib\n\n# Executables\n*.exe\n*.out\n*.app\n*.i*86\n*.x86_64\n*.hex\n\n# Debug files\n*.dSYM/\n*.su\n*.idb\n*.pdb\n\n# Editor files\n*~\n#*\n.#*\n"
  },
  {
    "path": "README.md",
    "content": "# BBCSDL\nBBC BASIC for SDL 2.0 (BBCSDL) is a cross-platform implementation of the BBC BASIC programming language for\nWindows, Linux (x86), MacOS, Raspbian (Raspberry Pi OS), Android, iOS and Emscripten / WebAssembly.\nIt is highly compatible with BBC BASIC for Windows and has the same language extensions, but uses\nSDL 2.0 as an OS abstraction layer to achieve cross-platform compatibility.\n\nThe BBC BASIC Console Mode editions (BBCTTY) are lightweight implementations for Windows, Linux (x86),\nMacOS and Raspbian (Raspberry Pi OS) which do not support graphics or sound but are otherwise \ncompatible with the desktop, mobile and web editions.  They take their input from stdin and\nsend their output to stdout, so may be used for scripting, CGI and remote terminal applications.\n\n![Architecture](https://www.bbcbasic.co.uk/bbcsdl/arch.png)\n\nThe files in green constitute the generic BBC BASIC interpreter which is shared by all the\neditions.  The files in the red box are used to build the Console Mode editions.  The files in\nthe blue box are used to build the SDL 2.0 editions.  The files in brown run in the GUI (main)\nthread, all the others run in the interpreter thread.\n\nThe files with the 1 and 2 superscripts are CPU-specific and the different variants are listed\nbeneath (not all exist!).  Note that bbasmb_wasm32.c isn't an assembler, but has been used as a\nconvenient place to put the function wrappers needed to support SYS in the in-browser edition.\n\nNot indicated in the diagram is that the in-browser edition uses different versions of bbc.h\nand bbcsdl.h from the rest.\n\nNote that the name 'BBC BASIC' is used by permission of the British Broadcasting Corporation\nand is not transferrable to a derived or forked work.\n"
  },
  {
    "path": "bin/android/Android.mk",
    "content": "LOCAL_PATH := $(call my-dir)\n\ninclude $(CLEAR_VARS)\n\nLOCAL_MODULE := libbbc-prebuilt\n\nLOCAL_MODULE := main\n\nSDL_PATH := ../SDL\n\nLOCAL_C_INCLUDES := $(LOCAL_PATH)/$(SDL_PATH)/include\n\nLOCAL_LDLIBS := -lGLESv1_CM -lGLESv2 -lOpenSLES -llog -landroid\n\nLOCAL_LDFLAGS += -Wl,-z,max-page-size=16384\n\nifeq ($(TARGET_ARCH),x86_64)\n\nLOCAL_SRC_FILES := bbdata_x86_64.asm bbmain.c bbexec.c bbeval.c bbcmos.c bbccli.c bbcvdu.c \\\n\tbbcvtx.c flood.c bbcsdl.c bbasmb_x86_64.c SDL2_gfxPrimitives.c SDL2_rotozoom.c\n\nLOCAL_CFLAGS := -fsigned-char\n\nendif\n\nifeq ($(TARGET_ARCH),arm)\n\nLOCAL_SRC_FILES := bbdata_arm_32.s bbmain.c bbexec.c bbeval.c bbcmos.c.neon bbccli.c bbcvdu.c \\\n\tbbcvtx.c flood.c bbcsdl.c bbasmb_arm_32.c SDL2_gfxPrimitives.c SDL2_rotozoom.c sort.c\n\nLOCAL_CFLAGS := -munaligned-access -fsigned-char\n\nendif\n\nifeq ($(TARGET_ARCH),arm64)\n\nLOCAL_SRC_FILES := bbdata_arm_64.s bbmain.c bbexec.c bbeval.c bbcmos.c.neon bbccli.c bbcvdu.c \\\n\tbbcvtx.c flood.c bbcsdl.c bbasmb_arm_64.c SDL2_gfxPrimitives.c SDL2_rotozoom.c sort.c\n\nLOCAL_CFLAGS := -fsigned-char\n\nendif\n\nLOCAL_SHARED_LIBRARIES := SDL2 SDL2_ttf SDL2_net Box2D\n\ninclude $(BUILD_SHARED_LIBRARY)\n"
  },
  {
    "path": "bin/android/AndroidManifest.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- Replace com.test.game with the identifier of your game below, e.g.\n     com.gamemaker.game\n-->\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:versionCode=\"149\"\n    android:versionName=\"1.44a\"\n    android:installLocation=\"auto\">\n\n    <!-- OpenGL ES 2.0 -->\n    <uses-feature android:glEsVersion=\"0x00020000\" />\n\n    <!-- Touchscreen support -->\n    <uses-feature\n        android:name=\"android.hardware.touchscreen\"\n        android:required=\"false\" />\n\n    <!-- Game controller support -->\n    <uses-feature\n        android:name=\"android.hardware.bluetooth\"\n        android:required=\"false\" />\n    <uses-feature\n        android:name=\"android.hardware.gamepad\"\n        android:required=\"false\" />\n    <uses-feature\n        android:name=\"android.hardware.usb.host\"\n        android:required=\"false\" />\n\n    <!-- External mouse input events -->\n    <uses-feature\n        android:name=\"android.hardware.type.pc\"\n        android:required=\"false\" />\n\n    <!-- Audio recording support -->\n    <!-- if you want to capture audio, uncomment this. -->\n    <uses-feature\n        android:name=\"android.hardware.microphone\"\n        android:required=\"false\" />\n\n    <!-- Allow downloading to the external storage on Android 5.1 and older -->\n    <uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" android:maxSdkVersion=\"22\" />\n    <uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\" android:maxSdkVersion=\"32\" />\n    <uses-permission android:name=\"android.permission.READ_MEDIA_IMAGES\" />\n    <uses-permission android:name=\"android.permission.READ_MEDIA_VIDEO\" />\n    <uses-permission android:name=\"android.permission.READ_MEDIA_AUDIO\" />\n\n    <!-- Allow access to Bluetooth devices -->\n    <!-- Currently this is just for Steam Controller support and requires setting SDL_HINT_JOYSTICK_HIDAPI_STEAM -->\n    <!-- <uses-permission android:name=\"android.permission.BLUETOOTH\" android:maxSdkVersion=\"30\" /> -->\n    <!-- <uses-permission android:name=\"android.permission.BLUETOOTH_CONNECT\" /> -->\n\n    <!-- Allow access to the vibrator -->\n    <uses-permission android:name=\"android.permission.VIBRATE\" />\n    <uses-permission android:name=\"android.permission.INTERNET\" />\n\n    <!-- if you want to capture audio, uncomment this. -->\n    <uses-permission android:name=\"android.permission.RECORD_AUDIO\" />\n\n    <!-- Create a Java class extending SDLActivity and place it in a\n         directory under app/src/main/java matching the package, e.g. app/src/main/java/com/gamemaker/game/MyGame.java\n \n         then replace \"SDLActivity\" with the name of your class (e.g. \"MyGame\")\n         in the XML below.\n\n         An example Java class can be found in README-android.md\n    -->\n    <application android:label=\"@string/app_name\"\n        android:icon=\"@mipmap/ic_launcher\"\n        android:allowBackup=\"true\"\n        android:theme=\"@style/AppTheme\"\n        android:hardwareAccelerated=\"true\" >\n\n        <!-- Example of setting SDL hints from AndroidManifest.xml:\n        <meta-data android:name=\"SDL_ENV.SDL_ACCELEROMETER_AS_JOYSTICK\" android:value=\"0\"/>\n         -->\n\n        <meta-data android:name=\"android.window.extensions.disableEdgeToEdge\" android:value=\"true\" />\n     \n        <activity android:name=\"BBCBasic\"\n            android:label=\"@string/app_name\"\n            android:alwaysRetainTaskState=\"true\"\n            android:launchMode=\"singleInstance\"\n            android:configChanges=\"layoutDirection|locale|orientation|uiMode|screenLayout|screenSize|smallestScreenSize|keyboard|keyboardHidden|navigation\"\n            android:screenOrientation=\"fullSensor\"\n            android:exported=\"true\"\n            >\n            <intent-filter>\n                <action android:name=\"android.intent.action.MAIN\" />\n                <category android:name=\"android.intent.category.LAUNCHER\" />\n            </intent-filter>\n            <!-- Let Android know that we can handle some USB devices and should receive this event -->\n            <intent-filter>\n                <action android:name=\"android.hardware.usb.action.USB_DEVICE_ATTACHED\" />\n            </intent-filter>\n            <!-- Drop file event -->\n            <intent-filter>\n                <action android:name=\"android.intent.action.VIEW\" />\n                <category android:name=\"android.intent.category.DEFAULT\" />\n                <category android:name=\"android.intent.category.BROWSABLE\"/>\n                <data android:scheme=\"file\"/>\n                <data android:scheme=\"content\"/>\n                <data android:mimeType=\"*/*\" />\n                <data android:host=\"*\"/>\n                <data android:pathPattern=\".*\\\\.bbc\"/>\n                <data android:pathPattern=\".*\\\\..*\\\\.bbc\"/>\n                <data android:pathPattern=\".*\\\\..*\\\\..*\\\\.bbc\"/>\n                <data android:pathPattern=\".*\\\\..*\\\\..*\\\\..*\\\\.bbc\"/>\n            </intent-filter>\n        </activity>\n    </application>\n\n</manifest>\n"
  },
  {
    "path": "bin/android/Application.mk",
    "content": "\n# Uncomment this if you're using STL in your project\n# You can find more information here:\n# https://developer.android.com/ndk/guides/cpp-support\nAPP_STL := c++_shared\n\nAPP_ABI := armeabi-v7a arm64-v8a x86_64\nAPP_CFLAGS += -Os\nNDK_TOOLCHAIN_VERSION := 4.9\n\n# Min runtime API level\nAPP_PLATFORM=android-16\n\n# For 16K page size\nAPP_SUPPORT_FLEXIBLE_PAGE_SIZES := TRUE\n\n"
  },
  {
    "path": "bin/android/BBCBasic.java",
    "content": "package com.rtrussell.bbcbasic;\n\nimport org.libsdl.app.SDLActivity; \n\npublic class BBCBasic extends SDLActivity\n{\n    protected String[] getLibraries() {\n        return new String[] {\n            \"c++_shared\",\n            \"Box2D\",\n            // \"hidapi\",\n            \"SDL2\",\n            // \"SDL2_image\",\n            // \"SDL2_mixer\",\n            \"SDL2_net\",\n            \"SDL2_ttf\",\n            \"main\"\n        };\n    }\n\n    /**\n     * Override so that BBC2APK can set orientation in manifest\n     */\n    public void setOrientationBis(int w, int h, boolean resizable, String hint)\n    {\n    }\n}\n"
  },
  {
    "path": "bin/android/bbdata_x86_64.asm",
    "content": ";/*****************************************************************\\\n;*       BBC BASIC for SDL 2.0 (x86_64)                            *\n;*       Copyright (c) R. T. Russell, 2000-2023                    *\n;*                                                                 *\n;*       BBCDATA.NAS RAM data definitions                          *\n;*       Version 1.38a, 02-Sep-2023                                *\n;\\*****************************************************************/\n;\nMAX_PORTS       EQU     4       ; Maximum number of i/o ports\nMAX_FILES       EQU     8       ; Maximum number of open files\nSOUNDQE         EQU     4       ; Number of bytes per sound entry\nSOUNDQL         EQU     5*SOUNDQE ; Number of bytes per channel\n;\n\tGLOBAL\tstavar,lc,oc,pc,dynvar,fnptr,proptr,prand\n\tGLOBAL\taccs,buff,vpage,flist,lomem,pfree,himem\n\tGLOBAL\terrtxt,onersp,errtrp,datptr,curlin,errlin\n\tGLOBAL\ttracen,random,vcount,vwidth,errnum,liston,tmps\n;\n\tGLOBAL\tpath,keystr,keybdq,keyptr,spchan,exchan,tweak\n\tGLOBAL\tfcbtab,timoff,usrchr,soundq,envels,waves,libase\n\tGLOBAL\teventq,timtrp,clotrp,siztrp,systrp,moutrp\n\tGLOBAL\talltrp,iMsg,wParam,lParam,filbuf,portab,fvtab\n;\n\tGLOBAL\tforgnd,bakgnd,hfont,colmsk,modeno,lthick,hrect\n\tGLOBAL\torigx,origy,lastx,lasty,prevx,prevy,pfont,cmcflg\n\tGLOBAL\ttextwl,textwr,textwt,textwb,sizex,sizey,sclflg\n\tGLOBAL\ttextx,texty,charx,chary,cursa,cursb,tempo\n\tGLOBAL\tpixelx,pixely,txtfor,txtbak,optval,farray,fasize\n;\n\tGLOBAL\tvduq,queue,flags,kbdqw,kbdqr,keyexp,scroln\n\tGLOBAL\tvflags,sndqw,sndqr,sacc,smix,evtqw,evtqr\n\tGLOBAL\teenvel,escale,epsect,easect,epitch,elevel,ecount\n;\n\tGLOBAL\thwndProg,zoom,offsetx,offsety,platform\n\tGLOBAL\tmemhdc,reflag,sysflg,panx,pany\n\tGLOBAL\tprntx,prnty,prchx,prchy,cursx\n\tGLOBAL\tpaperl,paperr,papert,paperb,lstopt\n;\n\tGLOBAL\tdatend,sysvar,bbcfont,lastick,link00\n\tGLOBAL\tcmdlen,cmdadr,dirlen,diradr,liblen,libadr\n\tGLOBAL\tusrlen,usradr,tmplen,tmpadr,hwo\n\tGLOBAL\tvoices,chrmap\n\tGLOBAL\tbreakpt,breakhi,ttxtfont\n;\n\tEXTERN\tloadn,loads,storen,stores,getvar,putvar,expr,item,lexan\n\tEXTERN\txfloat,xfix,xeq,token,putevt,palette,str00,con,TTFcache\n;\n\tEXTERN\tgfxPrimitivesGetFont,gfxPrimitivesSetFont,RedefineChar\n;\n%define  checkalign\n;\n\tSEGMENT .data\t\t; Crashes if .bss\n;\n;The following locations are initialised to zero when program is RUN:\n;Variables used by generic modules (bbmain, bbexec, bbeval, bbasmb)\n;\n\talign\t16,db 0\nstavar:\ttimes 12 dd 0\t\t; Static variables @% to K%\nlc:\tdd\t0\t\t; Static variable L%\n\ttimes 2\tdd 0\t\t; Static variables M%, N%\noc:\tdd\t0\t\t; Static variable O%\npc:\tdd\t0\t\t; Static variable P%\n\ttimes 10 dd 0\t\t; Static variables Q% to Z%\ndynvar:\ttimes 54 dd 0\t\t; ( Pointers to dynamic vars   )\nfnptr:\tdd\t0\t\t; ( Pointer to user FuNctions  ) grouped\nproptr:\tdd\t0\t\t; ( Pointer to user PROCedures )\naccs:\tdd\t0\t\t; Pointer to string accumulator\n\tdd\t0\t\t; 64-bit pointer\nvpage:\tdd\t0\t\t; Current value of PAGE\ntracen:\tdd\t0\t\t; Maximum line number to trace\nlomem:\tdd\t0\t\t; Current value of LOMEM\npfree:\tdd\t0\t\t; Pointer to start of free space\nhimem:\tdd\t0\t\t; Current value of HIMEM\nlibase:\tdd\t0\t\t; Pointer to INSTALLed library\nerrtxt:\tdd\t0\t\t; Pointer to error text for REPORT\n\tdd\t0\t\t; 64-bit pointer\nerrtrp:\tdd\t0\t\t; Pointer to ON ERROR statement\ndatptr:\tdd\t0\t\t; Pointer to DATA statements\nvcount:\tdd\t0\t\t; Current value of COUNT\ncurlin:\tdd\t0\t\t; Pointer to current statement\nalltrp:\t\t\t\t; Start of trap pointers\ntimtrp:\tdd\t0\t\t; Pointer to ON TIME statement\nclotrp:\tdd\t0\t\t; Pointer to ON CLOSE statement\nsiztrp:\tdd\t0\t\t; Pointer to ON MOVE statement\nsystrp:\tdd\t0\t\t; Pointer to ON SYS statement\nmoutrp:\tdd\t0\t\t; Pointer to ON MOUSE statement\nerrlin:\tdd\t0\t\t; Pointer to last error statement\n;\nprand:\nrandom:\ttimes 5 db 0\t\t; Current 'random' number (5 bytes)\nvwidth:\tdb\t0\t\t; Current value of WIDTH\nerrnum:\tdb\t0\t\t; Error code of last error\nliston:\tdb\t0\t\t; *FLOAT/*HEX/*LOWERCASE/OPT\n;\n;Variables used by OS-specific modules (bbcmos, bbccli, bbcvdu, bbcvtx)\n;\n\talign\t4,db 0\npath:\tdd\t0\t\t; Pointer to path/filename buffer\n\tdd\t0\t\t; 64-bit pointer\nkeybdq:\tdd\t0\t\t; Pointer to keyboard queue\n\tdd\t0\t\t; 64-bit pointer\nkeyptr:\tdd\t0\t\t; Pointer to *KEY string\n\tdd\t0\t\t; 64-bit pointer\n;\nlstopt:\tdb\t0\t\t; LISTO value (indentation)\nsclflg:\tdb\t0\t\t; Scroll flag (COPY key)\noptval:\tdb\t0\t\t; *OUTPUT and *INPUT values\n;\n; ------ End of 'absolutely-addressed' variables ------\n;\nfarray:\tdb\t0\t\t; Number of dimensions = 1  |\nfasize:\tdd\t0\t\t; Number of elements = 16   |\nfilbuf:\tdq\t0\t\t; Pointer to file buffers   | @hfile%%()\nportab:\ttimes MAX_PORTS dq 0\t; Table of port handles     | \nchntab:\ttimes MAX_FILES dq 0\t; Table of file handles     | \nexchan:\tdq\t0\t\t; Handle for *EXEC   @hfile%%(13)\nspchan:\tdq\t0\t\t; Handle for *SPOOL  @hfile%%(14)\nptchan:\tdq\t0\t\t; Handle for printer @hfile%%(15)\n;\nfcbtab:\ttimes MAX_FILES dd 0\t; Table of FCBs\nvoices:\ttimes 4 db 0\t\t; Voices (waveforms) for sound channels\n;\nflist:\ttimes 33 dq 0\t\t; Pointers to string free lists\ntmps:\tdd\t0\t\t; Temp string descriptor: address\n\tdd\t0\t\t; Temp string descriptor: length\n;\n; Variables moved here to make room for 64-bit pointers and handles:\n;\nonersp:\tdd\t0\t\t; ESP storage for ON ERROR LOCAL\n\tdd\t0\t\t; 64-bit pointer\nbuff:\tdd\t0\t\t; Pointer to string input buffer\n\tdd\t0\t\t; 64-bit pointer\nkeystr:\tdd\t0\t\t; Pointer to user *KEY strings\n\tdd\t0\t\t; 64-bit pointer\nusrchr:\tdd\t0\t\t; Pointer to user-defined characters\n\tdd\t0\t\t; 64-bit pointer\nwaves:\tdd\t0\t\t; Pointer to SOUND waveforms\n\tdd\t0\t\t; 64-bit pointer\nenvels:\tdd\t0\t\t; Pointer to ENVELOPEs\n\tdd\t0\t\t; 64-bit pointer\neventq:\tdd\t0\t\t; Pointer to event queue\n\tdd\t0\t\t; 64-bit pointer\nhrect:\tdd\t0\t\t; Pointer to clip rect (part of @vdu{})\n\tdd\t0\t\t; 64-bit pointer\n;\n;Text/graphics metrics (pointed to by @vdu%):\n;\nvduvar:\norigx:\tdd\t0\t\t; Graphics horizontal origin\norigy:\tdd\t0\t\t; Graphics vertical origin\nlastx:\tdd\t0\t\t; Immediately preceding x-coordinate\nlasty:\tdd\t0\t\t; Immediately preceding y-coordinate\nprevx:\tdd\t0\t\t; Previous x-coordinate\nprevy:\tdd\t0\t\t; Previous y-coordinate\ntextwl:\tdd\t0\t\t; Text window left (pixels)\ntextwr:\tdd\t0\t\t; Text window right (pixels)\ntextwt:\tdd\t0\t\t; Text window top (pixels)\ntextwb:\tdd\t0\t\t; Text window bottom (pixels)\npixelx:\tdd\t0\t\t; Width of a graphics pixel\npixely:\tdd\t0\t\t; Height of a graphics pixel\ntextx:\tdd\t0\t\t; Text pointer (cursor x)\ntexty:\tdd\t0\t\t; Text pointer (cursor y)\nhfont:\tdd\t0\t\t; Handle of current font\n\tdd\t0\t\t; 64-bit handle\n;\nforgnd:\tdw\t0\t\t; Graphics foreground colour/action\nbakgnd:\tdw\t0\t\t; Graphics background colour/action\n;\ncursa:\tdb\t0\t\t; Start (top) line of cursor\ncursb:\tdb\t0\t\t; Finish (bottom) line of cursor\ntxtfor:\tdb\t0\t\t; Text foreground colour\ntxtbak:\tdb\t0\t\t; Text background colour\nmodeno:\tdb\t0\t\t; Mode number\ncolmsk:\tdb\t0\t\t; Mask for maximum number of colours\nvflags:\tdb\t0\t\t; VDU driver flags\nscroln:\tdb\t0\t\t; Scroll counter in paged mode\ncursx:\tdb\t0\t\t; Cursor (caret) width\nlthick:\tdb\t0\t\t; Line thickness (lines, outline shapes)\ncmcflg:\tdb\t0\t\t; V5.3 cursor movement flags\ntweak:\tdb\t0\t\t; Character spacing adjustment (signed) \n;\nsndqw:\ttimes 4 db 0\t\t; Sound queue write pointers\nsndqr:\ttimes 4 db 0\t\t; Sound queue read pointers\neenvel:\ttimes 4 db 0\t\t; Envelope number\nescale:\ttimes 4 db 0\t\t; Envelope scaler\nepsect:\ttimes 4 db 0\t\t; Envelope pitch section\neasect:\ttimes 4 db 0\t\t; Envelope amplitude section\nepitch:\ttimes 4 db 0\t\t; Envelope pitch (frequency)\necount:\ttimes 4 db 0\t\t; Envelope count\nsoundq:\ttimes 4*SOUNDQL db 0\t; Sound queue (four channels)\nvduq:\ttimes 10 db 0\t\t; VDU queue (must precede 'queue')\nqueue:\tdb\t0\t\t; VDU queue status\n;\nkbdqw:\tdb\t0\t\t; Keyboard queue write pointer\nkbdqr:\tdb\t0\t\t; Keyboard queue read pointer\nevtqw:\tdb\t0\t\t; Event queue write pointer\nevtqr:\tdb\t0\t\t; Event queue read pointer\nkeyexp:\tdb\t0\t\t; *KEY character counter\n;\n\talign\t4,db 0\n;\n; ------ End of initialised variables ------\n;\ndatend:\n;\n;The following locations are NOT initialised when program is RUN\n;(but are guaranteed to be zero on initial execution).\n;\nsizex:\tdd\t0\t\t; Total width of client area\nsizey:\tdd\t0\t\t; Total height of client area\ncharx:\tdd\t0\t\t; Average character width\nchary:\tdd\t0\t\t; Average character height\nprchx:\tdd\t0\t\t; Average character width (printer)\nprchy:\tdd\t0\t\t; Average character height (printer)\npaperl:\tdd\t0\t\t; Printer left edge\npaperr:\tdd\t0\t\t; Printer right edge\npapert:\tdd\t0\t\t; Printer top edge\npaperb:\tdd\t0\t\t; Printer bottom edge\nprntx:\tdd\t0\t\t; Horizontal printing position\nprnty:\tdd\t0\t\t; Vertical printing position\n;\n; ------ End of VDU variables ------\n;\nlastick:dd\t0\t\t; To check for TickCount wraparound\ntimoff:\tdd\t0\t\t; Offset to add to TickCount\nsacc:\ttimes 4\tdd 0\t\t; Sound accumulators (not initialised)\nsmix:\ttimes 4\tdd 0\t\t; Stereo mix\nelevel:\ttimes 4 db 0\t\t; Envelope level (amplitude)\n;\n;The following variables are organised as a linked-list at\n;sysvar, for access via 'system variables' starting with @:\n;\n\talign\t4,db 0\n;\nsysvar:\tdd\tlink1 - sysvar\n\tdb\t'wparam%',0\n\tcheckalign\nwParam:\tdd\t0\t\t; Saved wParam for ON xxxx interrupt\n;\nlink3:\tdd\tlink4 - link3\n\tdb\t'lparam%',0\n\tcheckalign\nlParam:\tdd\t0\t\t; Saved lParam for ON xxxx interrupt\n;\n\tdb\t0\t\t; Padding\nlink23:\tdd\tlink24 - link23\n\tdb\t'ispal%',0\n\tcheckalign\nbPaletted: dd\t0\t\t; Paletted display flag (BOOL)\n;\n\ttimes 7\tdb 0\t\t; Padding\nlink1:\tdd\tlink3 - link1\n\tdb\t'memhdc%%',0    ; n.b. aliased to @memhdc%\n\tcheckalign\nmemhdc:\tdd\t0\t\t; Shadow screen device context\n\tdd\t0\t\t; 64-bit handle\n;\n\ttimes 7\tdb 0\t\t; Padding\nlink9:\tdd\tlink10 - link9\n\tdb\t'msg%',0\n\tcheckalign\niMsg:\tdd\t0\t\t; Saved iMsg for ON xxxx interrupt\n;\n\tdb\t0\t\t; Padding\nlink4:\tdd\tlink5 - link4\n\tdb\t'hwnd%%',0\t; n.b. aliased to @hwnd%\n\tcheckalign\nhwndProg: dd\t0\t\t; Handle for program window\n\tdd\t0\t\t; 64-bit handle\n;\n\ttimes 5\tdb 0\t\t; Padding\nlink12:\tdd\tlink13 - link12\n\tdb\t'flags%',0\n\tcheckalign\ntempo:\tdb\t0\t\t; *TEMPO value\nsysflg:\tdb\t0\t\t; *SYS flags\nreflag:\tdb\t0\t\t; *REFRESH flags\nflags:\tdb\t0\t\t; Boolean flags (byte) @ 3FBH\n;\n\ttimes 7\tdb 0\t\t; Padding\nlink16:\tdd\tlink17 - link16\n\tdb\t'chrmap%%',0\t; n.b. aliased to @chrmap%\n\tcheckalign\nchrmap:\tdd\t0\n\tdd\t0\t\t; 64-bit pointer\n;\n\ttimes 5\tdb 0\t\t; Padding\nlink5:\tdd\tlink6 - link5\n\tdb\t'hpal%%',0\n\tcheckalign\n\tdq\tpalette\t\t; Colour palette\n;\n\ttimes 6\tdb 0\t\t; Padding\nlink10:\tdd\tlink11 - link10\n\tdb\t'vdu%%',0\n\tcheckalign\n\tdq\tvduvar\t\t; Pointer to VDU variables\n;\n\ttimes 6\tdb 0\t\t; Padding\nlink00:\tdd\t0\t\t; End of list\n\tdb\t'fn%%(',0\n\tcheckalign\n\tdq\tfnarr\t\t; Pointer to function array\n;\n\tdw\t0\t\t; Padding\nlink11:\tdd\tlink12 - link11\n\tdb\t'platform%',0\n\tcheckalign\nplatform: dd\t0\t\t; SDL version & OS\n;\n\tdd\t0\t\t; Padding\nlink6:\tdd\tlink7 - link6\n\tdb\t'ox%',0\t\n\tcheckalign\noffsetx:dd\t0\t\t; x-offset memhdc->hwnd\n;\n\tdd\t0\t\t; Padding\nlink7:\tdd\tlink8 - link7\n\tdb\t'oy%',0\t \n\tcheckalign\noffsety:dd\t0\t\t; y-offset memhdc->hwnd\n;\n\ttimes 3\tdb 0\t\t; Padding\nlink17:\tdd\tlink18 - link17\n\tdb\t'dir$',0\n\tcheckalign\ndiradr:\tdd\t0\t\t; Program directory address\ndirlen:\tdd\t0\t\t; Program directory length\n;\n\ttimes 7\tdb 0\t\t; Padding\nlink18:\tdd\tlink19 - link18\n\tdb\t'lib$',0\n\tcheckalign\nlibadr:\tdd\t0\t\t; Library directory address\nliblen:\tdd\t0\t\t; Library directory length\n;\n\ttimes 6\tdb 0\t\t; Padding\nlink24:\tdd\tlink25 - link24\n\tdb\t'panx%',0\n\tcheckalign\npanx:\tdd\t0\t\t; Horizontal pan\n;\n\ttimes 3\tdb 0\t\t; Padding\nlink19:\tdd\tlink20 - link19\n\tdb\t'cmd$',0\n\tcheckalign\ncmdadr:\tdd\t0\t\t; Command line address\ncmdlen:\tdd\t0\t\t; Command line length\n;\n\ttimes 7\tdb 0\t\t; Padding\nlink20:\tdd\tlink21 - link20\n\tdb\t'usr$',0\n\tcheckalign\nusradr:\tdd\t0\t\t; User directory address\nusrlen:\tdd\t0\t\t; User directory length\n;\n\ttimes 6\tdb 0\t\t; Padding\nlink25:\tdd\tlink26 - link25\n\tdb\t'pany%',0\n\tcheckalign\npany:\tdd\t0\t\t; Vertical pan\n;\n\ttimes 3\tdb 0\t\t; Padding\nlink21:\tdd\tlink22 - link21\n\tdb\t'tmp$',0\n\tcheckalign\ntmpadr:\tdd\t0\t\t; Temp directory address\ntmplen:\tdd\t0\t\t; Temp directory length\n;\n\ttimes 7\tdb 0\t\t; Padding\nlink22:\tdd\tlink23 - link22\n\tdb\t'vdu{',0\n\tcheckalign\n\tdq\tvdufmt\t\t; Structure format address \n\tdq\threct\t\t; Structure data address\n;\n\ttimes 6\tdb 0\t\t; Padding\nlink14:\tdd\tlink15 - link14\n\tdb\t'zoom%',0\n\tcheckalign\nzoom:\tdd\t0\n;\n\ttimes 7\tdb 0\t\t; Padding\nlink8:\tdd\tlink9 - link8\n\tdb\t'hfile%%(',0\n\tcheckalign\n\tdq\tfarray\t\t; Pointer to file handles array\n;\n\ttimes 5\tdb 0\t\t; Padding\nlink26:\tdd\tlink27 - link26\n\tdb\t'brkpt%',0\n\tcheckalign\nbreakpt:dd\t0\t\t; Breakpoint (bottom of range)\n;\n\ttimes 3\tdb 0\t\t; Padding\nlink15:\tdd\tlink16 - link15\n\tdb\t'hwo%',0\n\tcheckalign\nhwo:\tdd\t0\t\t; Handle for wave output\n;\n\tdb\t0\t\t; Padding\nlink27:\tdd\tlink28 - link27\n\tdb\t'brkhi%',0\n\tcheckalign\nbreakhi:dd\t0\t\t; Breakpoint (top of range)\n;\n\tdw\t0\t\t; Padding\nlink28:\tdd\tlink29 - link28\n\tdb\t'size{',0\t; V6.1 Member name\n\tcheckalign\n\tdq\tptfmt\t\t; V6.1 Format address\n\tdq\tsizex\t\t; V6.1 Data offset\n;\n\ttimes 6\tdb 0\t\t; Padding\nlink29:\tdd\tlink00 - link29\n\tdb\t'char{',0\t; V6.1 Member name\n\tcheckalign\n\tdq\tptfmt\t\t; V6.1 Format address\n\tdq\tcharx\t\t; V6.1 Data offset\n;\n\tdd\t0\t\t; Padding\nlink13:\tdd\tlink14 - link13\n\tdb\t'cache%%',0\n\tcheckalign\n\tdq\tTTFcache\t; Font cache\n;\n; Structure @vdu{o{x%,y%}, l{x%,y%}, p{x%,y%}, tl%, tr%, tt%, tb%,\n;                d{x%,y%}, c{x%,y%}, hf%%, hr%%,\n;                g{a&,b&,c&,d&}, t{a&,b&,c&,d&}, m{a&,b&,c&,d&}}\n;\n\ttimes 5\tdb 0\t\t; Padding\nvdufmt:\tdd\tsndqw-hrect\t; Total length (bytes)\nvlnk00:\tdd\tvlnk01 - vlnk00\t; Link to next\n\tdb\t'o{',0\t\t; Member name\n\tcheckalign\n\tdq\tptfmt\n\tdq\torigx-hrect\t; Data offset\n;\n\tdb\t0\t\t; Padding\nvlnk01:\tdd\tvlnk02 - vlnk01\n\tdb\t'l{',0\t\t; Member name\n\tcheckalign\n\tdq\tptfmt\n\tdq\tlastx-hrect\t; Data offset\n;\n\tdb\t0\t\t; Padding\nvlnk02:\tdd\tvlnk03 - vlnk02\n\tdb\t'p{',0\t\t; Member name\n\tcheckalign\n\tdq\tptfmt\n\tdq\tprevx-hrect\t; Data offset\n;\nvlnk03:\tdd\tvlnk04 - vlnk03\n\tdb\t'tl%',0\t\t; Member name\n\tcheckalign\n\tdd\ttextwl-hrect\t; Data offset\n;\n\tdd\t0\t\t; Padding\nvlnk04:\tdd\tvlnk05 - vlnk04\n\tdb\t'tr%',0\t\t; Member name\n\tcheckalign\n\tdd\ttextwr-hrect\t; Data offset\n;\n\tdd\t0\t\t; Padding\nvlnk05:\tdd\tvlnk06 - vlnk05\n\tdb\t'tt%',0\t\t; Member name\n\tcheckalign\n\tdd\ttextwt-hrect\t; Data offset\n;\n\tdd\t0\t\t; Padding\nvlnk06:\tdd\tvlnk07 - vlnk06\n\tdb\t'tb%',0\t\t; Member name\n\tcheckalign\n\tdd\ttextwb-hrect\t; Data offset\n;\n\ttimes 5\tdb 0\t\t; Padding\nvlnk07:\tdd\tvlnk08 - vlnk07\n\tdb\t'd{',0\t\t; Member name\n\tcheckalign\n\tdq\tptfmt\n\tdq\tpixelx-hrect\t; Data offset\n;\n\tdb\t0\t\t; Padding\nvlnk08:\tdd\tvlnk09 - vlnk08\n\tdb\t'c{',0\t\t; Member name\n\tcheckalign\n\tdq\tptfmt\n\tdq\ttextx-hrect\t; Data offset\n;\n\ttimes 7\tdb 0\t\t; Padding\nvlnk09:\tdd\tvlnk10 - vlnk09\n\tdb\t'hf%%',0\t; Member name\n\tcheckalign\n\tdd\thfont-hrect\t; Data offset\n;\n\ttimes 3\tdb 0\t\t; Padding\nvlnk10:\tdd\tvlnk11 - vlnk10\n\tdb\t'hr%%',0\t; Member name\n\tcheckalign\n\tdd\threct-hrect\t; Data offset\n;\n\ttimes 5\tdb 0\t\t; Padding\nvlnk11:\tdd\tvlnk12 - vlnk11\n\tdb\t'g{',0\t\t; Member name\n\tcheckalign\n\tdq\tb4fmt\n\tdq\tforgnd-hrect\t; Data offset\n;\n\tdb\t0\t\t; Padding\nvlnk12:\tdd\tvlnk13 - vlnk12\n\tdb\t't{',0\t\t; Member name\n\tcheckalign\n\tdq\tb4fmt\n\tdq\tcursa-hrect\t; Data offset\n;\n\tdb\t0\t\t; Padding\nvlnk13:\tdd\tvlnk14 - vlnk13\n\tdb\t'm{',0\t\t; Member name\n\tcheckalign\n\tdq\tb4fmt\n\tdq\tmodeno-hrect\t; Data offset\n;\n\tdb\t0\t\t; Padding\nvlnk14:\tdd\t0\n\tdb\t'w{',0\t\t; V6.1 Member name\n\tcheckalign\n\tdq\tb4fmt\t\t; V6.1 Format address\n\tdq\tcursx-hrect\t; V6.1 Data offset\n;\n\tSEGMENT .text\n;\nbbcfont:\n\tDB\t00H,00H,00H,00H,00H,00H,00H,00H\t\t;NUL\n\tDB\t07EH,081H,0A5H,081H,0BDH,099H,081H,07EH\t;SOH\n\tDB\t07EH,0FFH,0DBH,0FFH,0C3H,0E7H,0FFH,07EH\t;STX\n\tDB\t06CH,0FEH,0FEH,0FEH,07CH,038H,010H,00H\t;ETX\n\tDB\t010H,038H,07CH,0FEH,07CH,038H,010H,00H\t;EOT\n\tDB\t010H,038H,038H,0D6H,0FEH,0D6H,010H,038H\t;ENQ\n\tDB\t010H,038H,07CH,0FEH,0FEH,0FEH,038H,07CH\t;ACK\n\tDB\t00H,00H,018H,03CH,03CH,018H,00H,00H\t;BEL\n\tDB\t0FFH,0FFH,0E7H,0C3H,0C3H,0E7H,0FFH,0FFH\t;BS\n\tDB\t00H,03CH,066H,042H,042H,066H,03CH,00H\t;HT\n\tDB\t0FFH,0C3H,099H,0BDH,0BDH,099H,0C3H,0FFH\t;LF\n\tDB\t0FH,07H,0FH,07DH,0CCH,0CCH,0CCH,078H\t;VT\n\tDB\t03CH,066H,066H,066H,03CH,018H,07EH,018H\t;FF\n\tDB\t03FH,033H,03FH,030H,030H,070H,0F0H,0E0H\t;CR\n\tDB\t07FH,063H,07FH,063H,063H,067H,0E6H,0C0H\t;SO\n\tDB\t099H,05AH,03CH,0E7H,0E7H,03CH,05AH,099H\t;SI\n\tDB\t080H,0E0H,0F8H,0FEH,0F8H,0E0H,080H,00H\t;DLE\n\tDB\t02H,0EH,03EH,0FEH,03EH,0EH,02H,00H\t;DC1\n\tDB\t018H,03CH,07EH,018H,018H,07EH,03CH,018H\t;DC2\n\tDB\t066H,066H,066H,066H,066H,00H,066H,00H\t;DC3\n\tDB\t07FH,0DBH,0DBH,07BH,01BH,01BH,01BH,00H\t;DC4\n\tDB\t03EH,063H,038H,06CH,06CH,038H,0CCH,078H\t;NAK\n\tDB\t00H,00H,00H,00H,07EH,07EH,07EH,00H\t;SYN\n\tDB\t018H,03CH,07EH,018H,07EH,03CH,018H,0FFH\t;ETB\n\tDB\t018H,03CH,07EH,018H,018H,018H,018H,00H\t;CAN\n\tDB\t018H,018H,018H,018H,07EH,03CH,018H,00H\t;EM\n\tDB\t00H,018H,0CH,0FEH,0CH,018H,00H,00H\t;SUB\n\tDB\t00H,030H,060H,0FEH,060H,030H,00H,00H\t;ESC\n\tDB\t00H,00H,0C0H,0C0H,0C0H,0FEH,00H,00H\t;FS\n\tDB\t00H,024H,066H,0FFH,066H,024H,00H,00H\t;GS\n\tDB\t00H,018H,03CH,07EH,0FFH,0FFH,00H,00H\t;RS\n\tDB\t00H,0FFH,0FFH,07EH,03CH,018H,00H,00H\t;US\n\tDB\t00H,00H,00H,00H,00H,00H,00H,00H\t\t;\" \"\n\tDB\t030H,030H,030H,030H,030H,00H,030H,00H\t;\"!\"\n\tDB\t06CH,06CH,06CH,00H,00H,00H,00H,00H\t;\"\"\"\n\tDB\t06CH,06CH,0FEH,06CH,0FEH,06CH,06CH,00H\t;\"#\"\n\tDB\t018H,07EH,0D0H,07CH,016H,0FCH,030H,00H\t;\"$\"\n\tDB\t0C0H,0CCH,018H,030H,060H,0CCH,0CH,00H\t;\"%\"\n\tDB\t038H,06CH,038H,076H,0DCH,0CCH,076H,00H\t;\"&\"\n\tDB\t018H,030H,060H,00H,00H,00H,00H,00H\t;\"'\"\n\tDB\t018H,030H,060H,060H,060H,030H,018H,00H\t;\"(\"\n\tDB\t060H,030H,018H,018H,018H,030H,060H,00H\t;\")\"\n\tDB\t00H,06CH,038H,0FEH,038H,06CH,00H,00H\t;\"*\"\n\tDB\t00H,030H,030H,0FCH,030H,030H,00H,00H\t;\"+\"\n\tDB\t00H,00H,00H,00H,00H,030H,030H,060H\t;\",\"\n\tDB\t00H,00H,00H,0FCH,00H,00H,00H,00H\t;\"-\"\n\tDB\t00H,00H,00H,00H,00H,030H,030H,00H\t;\".\"\n\tDB\t00H,0CH,018H,030H,060H,0C0H,00H,00H\t;\"/\"\n\tDB\t078H,0CCH,0DCH,0FCH,0ECH,0CCH,078H,00H\t;\"0\"\n\tDB\t030H,070H,030H,030H,030H,030H,0FCH,00H\t;\"1\"\n\tDB\t078H,0CCH,0CH,018H,030H,060H,0FCH,00H\t;\"2\"\n\tDB\t078H,0CCH,0CH,038H,0CH,0CCH,078H,00H\t;\"3\"\n\tDB\t018H,038H,078H,0D8H,0FCH,018H,018H,00H\t;\"4\"\n\tDB\t0FCH,0C0H,0F8H,0CH,0CH,0CCH,078H,00H\t;\"5\"\n\tDB\t038H,060H,0C0H,0F8H,0CCH,0CCH,078H,00H\t;\"6\"\n\tDB\t0FCH,0CH,018H,030H,060H,060H,060H,00H\t;\"7\"\n\tDB\t078H,0CCH,0CCH,078H,0CCH,0CCH,078H,00H\t;\"8\"\n\tDB\t078H,0CCH,0CCH,07CH,0CH,018H,070H,00H\t;\"9\"\n\tDB\t00H,00H,030H,030H,00H,030H,030H,00H\t;\":\"\n\tDB\t00H,00H,030H,030H,00H,030H,030H,060H\t;\";\"\n\tDB\t018H,030H,060H,0C0H,060H,030H,018H,00H\t;\"<\"\n\tDB\t00H,00H,0FCH,00H,0FCH,00H,00H,00H\t;\"=\"\n\tDB\t060H,030H,018H,0CH,018H,030H,060H,00H\t;\">\"\n\tDB\t078H,0CCH,018H,030H,030H,00H,030H,00H\t;\"?\"\n\tDB\t078H,0CCH,0DCH,0D4H,0DCH,0C0H,078H,00H\t;\"@\"\n\tDB\t078H,0CCH,0CCH,0FCH,0CCH,0CCH,0CCH,00H\t;\"A\"\n\tDB\t0F8H,0CCH,0CCH,0F8H,0CCH,0CCH,0F8H,00H\t;\"B\"\n\tDB\t078H,0CCH,0C0H,0C0H,0C0H,0CCH,078H,00H\t;\"C\"\n\tDB\t0F0H,0D8H,0CCH,0CCH,0CCH,0D8H,0F0H,00H\t;\"D\"\n\tDB\t0FCH,0C0H,0C0H,0F8H,0C0H,0C0H,0FCH,00H\t;\"E\"\n\tDB\t0FCH,0C0H,0C0H,0F8H,0C0H,0C0H,0C0H,00H\t;\"F\"\n\tDB\t078H,0CCH,0C0H,0DCH,0CCH,0CCH,078H,00H\t;\"G\"\n\tDB\t0CCH,0CCH,0CCH,0FCH,0CCH,0CCH,0CCH,00H\t;\"H\"\n\tDB\t0FCH,030H,030H,030H,030H,030H,0FCH,00H\t;\"I\"\n\tDB\t07CH,018H,018H,018H,018H,0D8H,070H,00H\t;\"J\"\n\tDB\t0CCH,0D8H,0F0H,0E0H,0F0H,0D8H,0CCH,00H\t;\"K\"\n\tDB\t0C0H,0C0H,0C0H,0C0H,0C0H,0C0H,0FCH,00H\t;\"L\"\n\tDB\t0C6H,0EEH,0FEH,0D6H,0D6H,0C6H,0C6H,00H\t;\"M\"\n\tDB\t0CCH,0CCH,0ECH,0FCH,0DCH,0CCH,0CCH,00H\t;\"N\"\n\tDB\t078H,0CCH,0CCH,0CCH,0CCH,0CCH,078H,00H\t;\"O\"\n\tDB\t0F8H,0CCH,0CCH,0F8H,0C0H,0C0H,0C0H,00H\t;\"P\"\n\tDB\t078H,0CCH,0CCH,0CCH,0DCH,078H,01CH,00H\t;\"Q\"\n\tDB\t0F8H,0CCH,0CCH,0F8H,0D8H,0CCH,0CCH,00H\t;\"R\"\n\tDB\t078H,0CCH,0C0H,078H,0CH,0CCH,078H,00H\t;\"S\"\n\tDB\t0FCH,030H,030H,030H,030H,030H,030H,00H\t;\"T\"\n\tDB\t0CCH,0CCH,0CCH,0CCH,0CCH,0CCH,078H,00H\t;\"U\"\n\tDB\t0CCH,0CCH,0CCH,0CCH,0CCH,078H,030H,00H\t;\"V\"\n\tDB\t0C6H,0C6H,0D6H,0D6H,0FEH,0EEH,0C6H,00H\t;\"W\"\n\tDB\t0CCH,0CCH,078H,030H,078H,0CCH,0CCH,00H\t;\"X\"\n\tDB\t0CCH,0CCH,0CCH,078H,030H,030H,030H,00H\t;\"Y\"\n\tDB\t0FCH,0CH,018H,030H,060H,0C0H,0FCH,00H\t;\"Z\"\n\tDB\t0F8H,0C0H,0C0H,0C0H,0C0H,0C0H,0F8H,00H\t;\"[\"\n\tDB\t00H,0C0H,060H,030H,018H,0CH,00H,00H\t;\"\\\"\n\tDB\t07CH,0CH,0CH,0CH,0CH,0CH,07CH,00H\t;\"]\"\n\tDB\t010H,038H,06CH,0C6H,00H,00H,00H,00H\t;\"^\"\n\tDB\t00H,00H,00H,00H,00H,00H,00H,0FFH\t;\"_\"\n\tDB\t060H,030H,018H,00H,00H,00H,00H,00H\t;\"`\"\n\tDB\t00H,00H,078H,0CH,07CH,0CCH,07CH,00H\t;\"a\"\n\tDB\t0C0H,0C0H,0F8H,0CCH,0CCH,0CCH,0F8H,00H\t;\"b\"\n\tDB\t00H,00H,078H,0CCH,0C0H,0CCH,078H,00H\t;\"c\"\n\tDB\t0CH,0CH,07CH,0CCH,0CCH,0CCH,07CH,00H\t;\"d\"\n\tDB\t00H,00H,078H,0CCH,0FCH,0C0H,078H,00H\t;\"e\"\n\tDB\t038H,060H,060H,0F8H,060H,060H,060H,00H\t;\"f\"\n\tDB\t00H,00H,07CH,0CCH,0CCH,07CH,0CH,078H\t;\"g\"\n\tDB\t0C0H,0C0H,0F8H,0CCH,0CCH,0CCH,0CCH,00H\t;\"h\"\n\tDB\t030H,00H,070H,030H,030H,030H,078H,00H\t;\"i\"\n\tDB\t030H,00H,070H,030H,030H,030H,030H,0E0H\t;\"j\"\n\tDB\t0C0H,0C0H,0CCH,0D8H,0F0H,0D8H,0CCH,00H\t;\"k\"\n\tDB\t070H,030H,030H,030H,030H,030H,078H,00H\t;\"l\"\n\tDB\t00H,00H,06CH,0FEH,0D6H,0D6H,0C6H,00H\t;\"m\"\n\tDB\t00H,00H,0F8H,0CCH,0CCH,0CCH,0CCH,00H\t;\"n\"\n\tDB\t00H,00H,078H,0CCH,0CCH,0CCH,078H,00H\t;\"o\"\n\tDB\t00H,00H,0F8H,0CCH,0CCH,0F8H,0C0H,0C0H\t;\"p\"\n\tDB\t00H,00H,07CH,0CCH,0CCH,07CH,0CH,0EH\t;\"q\"\n\tDB\t00H,00H,0D8H,0ECH,0C0H,0C0H,0C0H,00H\t;\"r\"\n\tDB\t00H,00H,07CH,0C0H,078H,0CH,0F8H,00H\t;\"s\"\n\tDB\t060H,060H,0F8H,060H,060H,060H,038H,00H\t;\"t\"\n\tDB\t00H,00H,0CCH,0CCH,0CCH,0CCH,07CH,00H\t;\"u\"\n\tDB\t00H,00H,0CCH,0CCH,0CCH,078H,030H,00H\t;\"v\"\n\tDB\t00H,00H,0C6H,0D6H,0D6H,0FEH,06CH,00H\t;\"w\"\n\tDB\t00H,00H,0CCH,078H,030H,078H,0CCH,00H\t;\"x\"\n\tDB\t00H,00H,0CCH,0CCH,0CCH,07CH,0CH,078H\t;\"y\"\n\tDB\t00H,00H,0FCH,018H,030H,060H,0FCH,00H\t;\"z\"\n\tDB\t018H,030H,030H,0E0H,030H,030H,018H,00H\t;\"{\"\n\tDB\t030H,030H,030H,00H,030H,030H,030H,00H\t;\"|\"\n\tDB\t060H,030H,030H,01CH,030H,030H,060H,00H\t;\"}\"\n\tDB\t076H,0DCH,00H,00H,00H,00H,00H,00H\t;\"~\"\n\tDB\t00H,010H,038H,06CH,0C6H,0C6H,0FEH,00H\t;DEL\n\tDB\t03CH,062H,0F8H,060H,0F8H,062H,03CH,000H ; &80 euro symbol\n\tDB\t000H,07EH,07EH,07EH,07EH,07EH,07EH,000H ; &81 block (teletext)\n\tDB\t000H,000H,000H,000H,000H,018H,018H,030H ; &82 single low quotation mark\n\tDB\t000H,00CH,018H,018H,03CH,018H,018H,070H ; &83 small letter f with hook\n\tDB\t000H,000H,000H,000H,000H,06CH,06CH,0D8H ; &84 double low quotation mark\n\tDB\t000H,000H,000H,000H,000H,000H,054H,000H ; &85 horizontal ellipsis\n\tDB\t018H,018H,07EH,018H,018H,018H,018H,000H ; &86 dagger\n\tDB\t018H,018H,07EH,018H,018H,07EH,018H,018H ; &87 double dagger\n\tDB\t010H,038H,06CH,000H,000H,000H,000H,000H ; &88 circumflex accent\n\tDB\t0C6H,0CCH,018H,030H,060H,0DBH,01BH,000H ; &89 per mille\n\tDB\t038H,07CH,0C6H,070H,01CH,0C6H,07CH,000H ; &8A capital S caron\n\tDB\t000H,018H,030H,060H,030H,018H,000H,000H ; &8B left angle quotation mark\n\tDB\t07EH,0D8H,0D8H,0DEH,0D8H,0D8H,07EH,000H ; &8C capital OE ligature\n\tDB\t030H,078H,0FCH,030H,030H,030H,030H,000H ; &8D up arrow (teletext)\n\tDB\t038H,0FEH,00CH,018H,030H,060H,0FEH,000H ; &8E capital Z caron\n\tDB\t000H,020H,060H,0FEH,060H,020H,000H,000H ; &8F left arrow (teletext)\n\tDB\t000H,008H,00CH,0FEH,00CH,008H,000H,000H ; &90 right arrow (teletext)\n\tDB\t030H,030H,018H,000H,000H,000H,000H,000H ; &91 left single quotation mark\n\tDB\t018H,018H,030H,000H,000H,000H,000H,000H ; &92 right single quotation mark\n\tDB\t06CH,06CH,036H,000H,000H,000H,000H,000H ; &93 left double quotation mark\n\tDB\t036H,036H,06CH,000H,000H,000H,000H,000H ; &94 right double quotation mark\n\tDB\t000H,000H,018H,03CH,03CH,018H,000H,000H ; &95 bullet\n\tDB\t000H,000H,000H,0FEH,000H,000H,000H,000H ; &96 en dash\n\tDB\t000H,000H,000H,0FFH,000H,000H,000H,000H ; &97 em dash\n\tDB\t036H,06CH,000H,000H,000H,000H,000H,000H ; &98 small tilde\n\tDB\t0EAH,04EH,04AH,04AH,000H,000H,000H,000H ; &99 trade mark sign\n\tDB\t06CH,038H,07CH,0C0H,078H,00CH,0F8H,000H ; &9A small S caron\n\tDB\t000H,030H,018H,00CH,018H,030H,000H,000H ; &9B right angle quotation mark\n\tDB\t000H,000H,07EH,0DBH,0DFH,0D8H,07FH,000H ; &9C small OE ligature\n\tDB\t0CCH,0CCH,0CCH,0CCH,0CCH,0CCH,0CCH,000H ; &9D double line (teletext)\n\tDB\t06CH,038H,07CH,018H,030H,060H,07CH,000H ; &9E small Z caron\n\tDB\t0CCH,000H,0CCH,0CCH,078H,030H,030H,000H ; &9F capital Y diaeresis\n\tDB\t000H,000H,000H,000H,000H,000H,000H,000H ;\" \"\n\tDB\t018H,000H,018H,018H,018H,018H,018H,000H ;\" \"\n\tDB\t000H,018H,07EH,0D8H,0D8H,07EH,018H,000H ;\" \"\n\tDB\t038H,06CH,060H,0F0H,060H,066H,0FCH,000H ;\" \"\n\tDB\t066H,03CH,066H,03CH,066H,000H,000H,000H ;\" \"\n\tDB\t0C3H,066H,03CH,018H,03CH,018H,018H,000H ;\" \"\n\tDB\t018H,018H,018H,000H,018H,018H,018H,000H ;\" \"\n\tDB\t03CH,060H,03CH,066H,066H,03CH,006H,03CH ;\" \"\n\tDB\t066H,000H,000H,000H,000H,000H,000H,000H ;\" \"\n\tDB\t07EH,081H,09DH,0B1H,0B1H,09DH,081H,07EH ;\" \"\n\tDB\t03CH,06CH,06CH,03EH,000H,07EH,000H,000H ;\" \"\n\tDB\t000H,033H,066H,0CCH,066H,033H,000H,000H ;\" \"\n\tDB\t000H,07EH,006H,006H,000H,000H,000H,000H ;\" \"\n\tDB\t000H,000H,000H,03CH,000H,000H,000H,000H ;\" \"\n\tDB\t07EH,081H,0B9H,0A5H,0B9H,0A5H,081H,07EH ;\" \"\n\tDB\t03CH,000H,000H,000H,000H,000H,000H,000H ;\" \"\n\tDB\t03CH,066H,03CH,000H,000H,000H,000H,000H ;\" \"\n\tDB\t018H,018H,07EH,018H,018H,000H,07EH,000H ;\" \"\n\tDB\t070H,018H,030H,060H,078H,000H,000H,000H ;\" \"\n\tDB\t078H,00CH,018H,00CH,078H,000H,000H,000H ;\" \"\n\tDB\t00CH,018H,030H,000H,000H,000H,000H,000H ;\" \"\n\tDB\t000H,000H,066H,066H,066H,07CH,060H,0C0H ;\" \"\n\tDB\t03EH,07AH,07AH,03AH,01AH,01AH,01AH,000H ;\" \"\n\tDB\t000H,000H,000H,018H,000H,000H,000H,000H ;\" \"\n\tDB\t000H,000H,000H,000H,000H,008H,018H,000H ;\" \"\n\tDB\t030H,070H,030H,030H,030H,000H,000H,000H ;\" \"\n\tDB\t038H,06CH,06CH,038H,000H,07CH,000H,000H ;\" \"\n\tDB\t000H,0CCH,066H,033H,066H,0CCH,000H,000H ;\" \"\n\tDB\t043H,0C6H,04CH,05AH,036H,06AH,0CFH,002H ;\" \"\n\tDB\t040H,0C6H,04CH,05EH,033H,066H,0CCH,00FH ;\" \"\n\tDB\t0C0H,023H,066H,02DH,0DBH,035H,067H,001H ;\" \"\n\tDB\t018H,000H,018H,030H,060H,066H,03CH,000H ;\" \"\n\tDB\t070H,000H,03CH,066H,07EH,066H,066H,000H ;\" \"\n\tDB\t00EH,000H,03CH,066H,07EH,066H,066H,000H ;\" \"\n\tDB\t018H,066H,000H,03CH,066H,07EH,066H,000H ;\" \"\n\tDB\t076H,0DCH,000H,03CH,066H,07EH,066H,000H ;\" \"\n\tDB\t066H,000H,03CH,066H,07EH,066H,066H,000H ;\" \"\n\tDB\t018H,018H,000H,03CH,066H,07EH,066H,000H ;\" \"\n\tDB\t03FH,06CH,0CCH,0FEH,0CCH,0CCH,0CFH,000H ;\" \"\n\tDB\t03CH,066H,060H,060H,060H,066H,03CH,018H ;\" \"\n\tDB\t070H,000H,07EH,060H,07CH,060H,07EH,000H ;\" \"\n\tDB\t00EH,000H,07EH,060H,07CH,060H,07EH,000H ;\" \"\n\tDB\t018H,066H,000H,0FEH,0F0H,0C0H,0FEH,000H ;\" \"\n\tDB\t066H,000H,07EH,060H,07CH,060H,07EH,000H ;\" \"\n\tDB\t070H,000H,07EH,018H,018H,018H,07EH,000H ;\" \"\n\tDB\t00EH,000H,07EH,018H,018H,018H,07EH,000H ;\" \"\n\tDB\t018H,066H,000H,07EH,018H,018H,07EH,000H ;\" \"\n\tDB\t066H,000H,07EH,018H,018H,018H,07EH,000H ;\" \"\n\tDB\t078H,06CH,066H,0F6H,066H,06CH,078H,000H ;\" \"\n\tDB\t076H,0DCH,000H,0C6H,0F6H,0DEH,0C6H,000H ;\" \"\n\tDB\t070H,000H,07CH,0C6H,0C6H,0C6H,07CH,000H ;\" \"\n\tDB\t00EH,000H,07CH,0C6H,0C6H,0C6H,07CH,000H ;\" \"\n\tDB\t018H,066H,000H,07CH,0C6H,0C6H,07CH,000H ;\" \"\n\tDB\t076H,0DCH,000H,07CH,0C6H,0C6H,07CH,000H ;\" \"\n\tDB\t066H,000H,07CH,0C6H,0C6H,0C6H,07CH,000H ;\" \"\n\tDB\t000H,0C6H,06CH,038H,06CH,0C6H,000H,000H ;\" \"\n\tDB\t03EH,066H,06EH,07EH,076H,066H,07CH,000H ;\" \"\n\tDB\t070H,000H,0C6H,0C6H,0C6H,0C6H,07CH,000H ;\" \"\n\tDB\t00EH,000H,0C6H,0C6H,0C6H,0C6H,07CH,000H ;\" \"\n\tDB\t018H,066H,000H,0C6H,0C6H,0C6H,07CH,000H ;\" \"\n\tDB\t066H,000H,0C6H,0C6H,0C6H,0C6H,07CH,000H ;\" \"\n\tDB\t00EH,000H,066H,066H,03CH,018H,018H,000H ;\" \"\n\tDB\t0C0H,0C0H,0FCH,0C6H,0FCH,0C0H,0C0H,000H ;\" \"\n\tDB\t03CH,066H,066H,06CH,066H,066H,06CH,000H ;\" \"\n\tDB\t070H,000H,03CH,006H,03EH,066H,03EH,000H ;\" \"\n\tDB\t00EH,000H,03CH,006H,03EH,066H,03EH,000H ;\" \"\n\tDB\t018H,066H,000H,03EH,066H,0C6H,07EH,000H ;\" \"\n\tDB\t076H,0DCH,000H,03EH,066H,0C6H,07EH,000H ;\" \"\n\tDB\t066H,000H,03CH,006H,03EH,066H,03EH,000H ;\" \"\n\tDB\t018H,018H,000H,03EH,066H,0C6H,07EH,000H ;\" \"\n\tDB\t000H,000H,07EH,01BH,07FH,0D8H,077H,000H ;\" \"\n\tDB\t000H,000H,03CH,060H,060H,060H,03CH,018H ;\" \"\n\tDB\t070H,000H,03CH,066H,07EH,060H,03CH,000H ;\" \"\n\tDB\t00EH,000H,03CH,066H,07EH,060H,03CH,000H ;\" \"\n\tDB\t018H,066H,000H,03CH,07EH,060H,03CH,000H ;\" \"\n\tDB\t066H,000H,03CH,066H,07EH,060H,03CH,000H ;\" \"\n\tDB\t070H,000H,038H,018H,018H,018H,03CH,000H ;\" \"\n\tDB\t00EH,000H,038H,018H,018H,018H,03CH,000H ;\" \"\n\tDB\t018H,066H,000H,038H,018H,018H,03CH,000H ;\" \"\n\tDB\t066H,000H,038H,018H,018H,018H,03CH,000H ;\" \"\n\tDB\t00CH,03EH,00CH,07CH,0CCH,0CCH,078H,000H ;\" \"\n\tDB\t076H,0DCH,000H,07CH,066H,066H,066H,000H ;\" \"\n\tDB\t070H,000H,03CH,066H,066H,066H,03CH,000H ;\" \"\n\tDB\t00EH,000H,03CH,066H,066H,066H,03CH,000H ;\" \"\n\tDB\t018H,066H,000H,03CH,066H,066H,03CH,000H ;\" \"\n\tDB\t076H,0DCH,000H,03CH,066H,066H,03CH,000H ;\" \"\n\tDB\t066H,000H,03CH,066H,066H,066H,03CH,000H ;\" \"\n\tDB\t018H,018H,000H,07EH,000H,018H,018H,000H ;\" \"\n\tDB\t000H,002H,07CH,0CEH,0D6H,0E6H,07CH,080H ;\" \"\n\tDB\t070H,000H,066H,066H,066H,066H,03EH,000H ;\" \"\n\tDB\t00EH,000H,066H,066H,066H,066H,03EH,000H ;\" \"\n\tDB\t018H,066H,000H,066H,066H,066H,03EH,000H ;\" \"\n\tDB\t066H,000H,066H,066H,066H,066H,03EH,000H ;\" \"\n\tDB\t00EH,000H,066H,066H,066H,03EH,006H,03CH ;\" \"\n\tDB\t060H,060H,07CH,066H,066H,07CH,060H,060H ;\" \"\n\tDB\t066H,000H,066H,066H,066H,03EH,006H,03CH ;\" \"\n;\nttxtfont:\n\tDW\t00000H,00011H,00011H,00019H,00015H,00013H,00011H,00011H,08800H,08800H,08800H,08800H,08800H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; NU\n\tDW\t00000H,0000EH,00011H,00011H,0001FH,00011H,00011H,00011H,0F000H,08800H,08800H,0F000H,08800H,08800H,08800H,00000H,00000H,00000H,00000H,00000H ; AR\n\tDW\t00000H,0000EH,00011H,00011H,0001FH,00011H,00011H,00011H,07000H,08800H,08000H,09800H,08800H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; AG\n\tDW\t00000H,0000EH,00011H,00011H,0001FH,00011H,00011H,00011H,08800H,08800H,05000H,02000H,02000H,02000H,02000H,00000H,00000H,00000H,00000H,00000H ; AY\n\tDW\t00000H,0000EH,00011H,00011H,0001FH,00011H,00011H,00011H,0F000H,08800H,08800H,0F000H,08800H,08800H,0F000H,00000H,00000H,00000H,00000H,00000H ; AB\n\tDW\t00000H,0000EH,00011H,00011H,0001FH,00011H,00011H,00011H,08800H,0D800H,0A800H,0A800H,08800H,08800H,08800H,00000H,00000H,00000H,00000H,00000H ; AM\n\tDW\t00000H,0000EH,00011H,00011H,0001FH,00011H,00011H,00011H,07000H,08800H,08000H,08000H,08000H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; AC\n\tDW\t00000H,0000EH,00011H,00011H,0001FH,00011H,00011H,00011H,08800H,08800H,08800H,0A800H,0A800H,0D800H,08800H,00000H,00000H,00000H,00000H,00000H ; AW\n\tDW\t00000H,0001FH,00010H,00010H,0001EH,00010H,00010H,00010H,08000H,08000H,08000H,08000H,08000H,08000H,0F800H,00000H,00000H,00000H,00000H,00000H ; FL\n\tDW\t00000H,0000EH,00011H,00010H,0000EH,00001H,00011H,0000EH,0F800H,02000H,02000H,02000H,02000H,02000H,02000H,00000H,00000H,00000H,00000H,00000H ; ST\n\tDW\t00000H,0001FH,00010H,00010H,0001EH,00010H,00010H,0001FH,0F000H,08800H,08800H,0F000H,08800H,08800H,0F000H,00000H,00000H,00000H,00000H,00000H ; EB\n\tDW\t00000H,0000EH,00011H,00010H,0000EH,00001H,00011H,0000EH,0F000H,08800H,08800H,0F000H,08800H,08800H,0F000H,00000H,00000H,00000H,00000H,00000H ; SB\n\tDW\t00000H,00011H,00011H,00019H,00015H,00013H,00011H,00011H,08800H,08800H,08800H,0F800H,08800H,08800H,08800H,00000H,00000H,00000H,00000H,00000H ; NH\n\tDW\t00000H,0001CH,00012H,00011H,00011H,00011H,00012H,0001CH,08800H,08800H,08800H,0F800H,08800H,08800H,08800H,00000H,00000H,00000H,00000H,00000H ; DH\n\tDW\t00000H,0000EH,00011H,00010H,0000EH,00001H,00011H,0000EH,07000H,08800H,08800H,08800H,08800H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; SO\n\tDW\t00000H,0000EH,00011H,00010H,0000EH,00001H,00011H,0000EH,07000H,02000H,02000H,02000H,02000H,02000H,07000H,00000H,00000H,00000H,00000H,00000H ; SI\n\tDW\t00000H,0001CH,00012H,00011H,00011H,00011H,00012H,0001CH,08000H,08000H,08000H,08000H,08000H,08000H,0F800H,00000H,00000H,00000H,00000H,00000H ; DL\n\tDW\t00000H,0000EH,00011H,00010H,00013H,00011H,00011H,0000EH,0F000H,08800H,08800H,0F000H,08800H,08800H,08800H,00000H,00000H,00000H,00000H,00000H ; GR\n\tDW\t00000H,0000EH,00011H,00010H,00013H,00011H,00011H,0000EH,07000H,08800H,08000H,09800H,08800H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; GG\n\tDW\t00000H,0000EH,00011H,00010H,00013H,00011H,00011H,0000EH,08800H,08800H,05000H,02000H,02000H,02000H,02000H,00000H,00000H,00000H,00000H,00000H ; GY\n\tDW\t00000H,0000EH,00011H,00010H,00013H,00011H,00011H,0000EH,0F000H,08800H,08800H,0F000H,08800H,08800H,0F000H,00000H,00000H,00000H,00000H,00000H ; GB\n\tDW\t00000H,0000EH,00011H,00010H,00013H,00011H,00011H,0000EH,08800H,0D800H,0A800H,0A800H,08800H,08800H,08800H,00000H,00000H,00000H,00000H,00000H ; GM\n\tDW\t00000H,0000EH,00011H,00010H,00013H,00011H,00011H,0000EH,07000H,08800H,08000H,08000H,08000H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; GC\n\tDW\t00000H,0000EH,00011H,00010H,00013H,00011H,00011H,0000EH,08800H,08800H,08800H,0A800H,0A800H,0D800H,08800H,00000H,00000H,00000H,00000H,00000H ; GW\n\tDW\t00000H,0000EH,00011H,00010H,00010H,00010H,00011H,0000EH,0E000H,09000H,08800H,08800H,08800H,09000H,0E000H,00000H,00000H,00000H,00000H,00000H ; CD\n\tDW\t00000H,0000EH,00011H,00010H,00010H,00010H,00011H,0000EH,07000H,08800H,08000H,09800H,08800H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; CG\n\tDW\t00000H,0000EH,00011H,00010H,0000EH,00001H,00011H,0000EH,07000H,08800H,08000H,09800H,08800H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; SG\n\tDW\t00000H,0001FH,00010H,00010H,0001EH,00010H,00010H,0001FH,07000H,08800H,08000H,07000H,00800H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; ES\n\tDW\t00000H,0001EH,00011H,00011H,0001EH,00011H,00011H,0001EH,0F000H,08800H,08800H,0F000H,08800H,08800H,0F000H,00000H,00000H,00000H,00000H,00000H ; BB\n\tDW\t00000H,00011H,00011H,00019H,00015H,00013H,00011H,00011H,0F000H,08800H,08800H,0F000H,08800H,08800H,0F000H,00000H,00000H,00000H,00000H,00000H ; NB\n\tDW\t00000H,00011H,00011H,00011H,0001FH,00011H,00011H,00011H,07000H,08800H,08000H,09800H,08800H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; HG\n\tDW\t00000H,0001EH,00011H,00011H,0001EH,00011H,00011H,00011H,07000H,08800H,08000H,09800H,08800H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; RG\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \"!\"\n\tDW\t00000H,0700EH,0700EH,0700EH,0700EH,0700EH,0700EH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \"\"\"\n\tDW\t00000H,0700EH,0700EH,0700EH,0700EH,0FC3FH,0FC3FH,0700EH,0700EH,0FC3FH,0FC3FH,0700EH,0700EH,0700EH,0700EH,00000H,00000H,00000H,00000H,00000H ; \"#\"\n\tDW\t00000H,0F00FH,0F81FH,09C39H,08C31H,08031H,08039H,0F01FH,0F80FH,09C01H,08C01H,08C31H,09C39H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"$\"\n\tDW\t00000H,0003CH,00C3CH,01C3CH,0383CH,07000H,0E000H,0C001H,08003H,00007H,0000EH,03C1CH,03C38H,03C30H,03C00H,00000H,00000H,00000H,00000H,00000H ; \"%\"\n\tDW\t00000H,0000EH,0001FH,0803BH,08031H,0803BH,0001FH,0000EH,0001FH,08C3BH,0DC31H,0F830H,0F838H,0DC1FH,08C0FH,00000H,00000H,00000H,00000H,00000H ; \"&\"\n\tDW\t00000H,08001H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \"'\"\n\tDW\t00000H,06000H,0E000H,0C001H,08003H,00007H,00006H,00006H,00006H,00006H,00007H,08003H,0C001H,0E000H,06000H,00000H,00000H,00000H,00000H,00000H ; \"(\"\n\tDW\t00000H,00006H,00007H,08003H,0C001H,0E000H,06000H,06000H,06000H,06000H,0E000H,0C001H,08003H,00007H,00006H,00000H,00000H,00000H,00000H,00000H ; \")\"\n\tDW\t00000H,08001H,08001H,08C31H,09C39H,0F81FH,0F00FH,08001H,08001H,0F00FH,0F81FH,09C39H,08C31H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \"*\"\n\tDW\t00000H,00000H,00000H,08001H,08001H,08001H,08001H,0F81FH,0F81FH,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \"+\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,08001H,08001H,08001H,08003H,00007H,00006H,00000H,00000H,00000H ; \",\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \"-\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \".\"\n\tDW\t00000H,00000H,00C00H,01C00H,03800H,07000H,0E000H,0C001H,08003H,00007H,0000EH,0001CH,00038H,00030H,00000H,00000H,00000H,00000H,00000H,00000H ; \"/\"\n\tDW\t00000H,0C003H,0E007H,0700EH,0381CH,01C38H,00C30H,00C30H,00C30H,00C30H,01C38H,0381CH,0700EH,0E007H,0C003H,00000H,00000H,00000H,00000H,00000H ; \"0\"\n\tDW\t00000H,08001H,08001H,0800FH,0800FH,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"1\"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00C00H,01C00H,0F803H,0F007H,0000EH,0001CH,00038H,00030H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \"2\"\n\tDW\t00000H,0FC3FH,0FC3FH,01C00H,03800H,07000H,0E000H,0F801H,0FC01H,00C00H,00C00H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"3\"\n\tDW\t00000H,07000H,0F000H,0F001H,0B003H,03007H,0300EH,0301CH,03038H,0FC3FH,0FC3FH,03000H,03000H,03000H,03000H,00000H,00000H,00000H,00000H,00000H ; \"4\"\n\tDW\t00000H,0FC3FH,0FC3FH,00030H,00030H,0F03FH,0F83FH,01C00H,00C00H,00C00H,00C00H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"5\"\n\tDW\t00000H,0F001H,0F007H,0000FH,0001CH,00038H,00030H,0F03FH,0F83FH,01C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"6\"\n\tDW\t00000H,0FC3FH,0FC3FH,00C00H,01C00H,03800H,07000H,0E000H,0C001H,08003H,00007H,00006H,00006H,00006H,00006H,00000H,00000H,00000H,00000H,00000H ; \"7\"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,01C38H,0F81FH,0F81FH,01C38H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"8\"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00C00H,01C00H,03800H,0F000H,0E00FH,0800FH,00000H,00000H,00000H,00000H,00000H ; \"9\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,08001H,08001H,00000H,00000H,00000H,00000H,00000H,00000H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \":\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,08001H,08001H,00000H,00000H,00000H,00000H,08001H,08001H,08001H,08003H,00007H,00006H,00000H,00000H,00000H ; \";\"\n\tDW\t00000H,06000H,0E000H,0C001H,08003H,00007H,0000EH,0001CH,0001CH,0000EH,00007H,08003H,0C001H,0E000H,06000H,00000H,00000H,00000H,00000H,00000H ; \"<\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0FC3FH,0FC3FH,00000H,00000H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \"=\"\n\tDW\t00000H,00006H,00007H,08003H,0C001H,0E000H,07000H,03800H,03800H,07000H,0E000H,0C001H,08003H,00007H,00006H,00000H,00000H,00000H,00000H,00000H ; \">\"\n\tDW\t00000H,0E00FH,0F01FH,03838H,01830H,03800H,07000H,0E000H,0C001H,08001H,08001H,00000H,00000H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \"?\"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,0FC31H,0FC31H,08C31H,08C31H,0FC31H,0FC31H,00030H,00038H,0F01FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"@\"\n\tDW\t00000H,08001H,0C003H,0E007H,0700EH,0381CH,01C38H,00C30H,00C30H,0FC3FH,0FC3FH,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \"A\"\n\tDW\t00000H,0F03FH,0F83FH,01C30H,00C30H,00C30H,01C30H,0F83FH,0F83FH,01C30H,00C30H,00C30H,01C30H,0F83FH,0F03FH,00000H,00000H,00000H,00000H,00000H ; \"B\"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00030H,00030H,00030H,00030H,00030H,00030H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"C\"\n\tDW\t00000H,0F03FH,0F83FH,01C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,01C30H,0F83FH,0F03FH,00000H,00000H,00000H,00000H,00000H ; \"D\"\n\tDW\t00000H,0FC3FH,0FC3FH,00030H,00030H,00030H,00030H,0F03FH,0F03FH,00030H,00030H,00030H,00030H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \"E\"\n\tDW\t00000H,0FC3FH,0FC3FH,00030H,00030H,00030H,00030H,0F03FH,0F03FH,00030H,00030H,00030H,00030H,00030H,00030H,00000H,00000H,00000H,00000H,00000H ; \"F\"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00030H,00030H,00030H,00030H,03C30H,03C30H,00C30H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \"G\"\n\tDW\t00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,0FC3FH,0FC3FH,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \"H\"\n\tDW\t00000H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"I\"\n\tDW\t00000H,00C00H,00C00H,00C00H,00C00H,00C00H,00C00H,00C00H,00C00H,00C00H,00C00H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"J\"\n\tDW\t00000H,01830H,03830H,07030H,0E030H,0C031H,08033H,0003FH,0003FH,08033H,0C031H,0E030H,07030H,03830H,01830H,00000H,00000H,00000H,00000H,00000H ; \"K\"\n\tDW\t00000H,00030H,00030H,00030H,00030H,00030H,00030H,00030H,00030H,00030H,00030H,00030H,00030H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \"L\"\n\tDW\t00000H,00C30H,00C30H,01C38H,03C3CH,07C3EH,0EC37H,0CC33H,08C31H,08C31H,00C30H,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \"M\"\n\tDW\t00000H,00C30H,00C30H,00C38H,00C3CH,00C3EH,00C37H,08C33H,0CC31H,0EC30H,07C30H,03C30H,01C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \"N\"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"O\"\n\tDW\t00000H,0F03FH,0F83FH,01C30H,00C30H,00C30H,01C30H,0F83FH,0F03FH,00030H,00030H,00030H,00030H,00030H,00030H,00000H,00000H,00000H,00000H,00000H ; \"P\"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,00C30H,00C30H,0CC30H,0EC30H,07830H,03838H,0FC1FH,0CC0FH,00000H,00000H,00000H,00000H,00000H ; \"Q\"\n\tDW\t00000H,0F03FH,0F83FH,01C30H,00C30H,00C30H,01C30H,0F83FH,0F03FH,0C031H,0E030H,07030H,03830H,01C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \"R\"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00030H,00038H,0F01FH,0F80FH,01C00H,00C00H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"S\"\n\tDW\t00000H,0FC3FH,0FC3FH,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \"T\"\n\tDW\t00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"U\"\n\tDW\t00000H,00C30H,00C30H,00C30H,00C30H,01C38H,01818H,0381CH,0300CH,0700EH,0E007H,0C003H,0C003H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \"V\"\n\tDW\t00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,08C31H,08C31H,08C31H,08C31H,08C31H,0FC3FH,0F81FH,0700EH,00000H,00000H,00000H,00000H,00000H ; \"W\"\n\tDW\t00000H,00C30H,00C30H,01C38H,0381CH,0700EH,0E007H,0C003H,0C003H,0E007H,0700EH,0381CH,01C38H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \"X\"\n\tDW\t00000H,00C30H,00C30H,01C38H,0381CH,0700EH,0E007H,0C003H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \"Y\"\n\tDW\t00000H,0FC3FH,0FC3FH,01C00H,03800H,07000H,0E000H,0C001H,08003H,00007H,0000EH,0001CH,00038H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \"Z\"\n\tDW\t00000H,0E007H,0E007H,00006H,00006H,00006H,00006H,00006H,00006H,00006H,00006H,00006H,00006H,0E007H,0E007H,00000H,00000H,00000H,00000H,00000H ; \"[\"\n\tDW\t00000H,00000H,00030H,00038H,0001CH,0000EH,00007H,08003H,0C001H,0E000H,07000H,03800H,01C00H,00C00H,00000H,00000H,00000H,00000H,00000H,00000H ; \"\\\"\n\tDW\t00000H,0E007H,0E007H,06000H,06000H,06000H,06000H,06000H,06000H,06000H,06000H,06000H,06000H,0E007H,0E007H,00000H,00000H,00000H,00000H,00000H ; \"]\"\n\tDW\t00000H,08001H,0C003H,0E007H,0700EH,0381CH,01818H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \"^\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,0FFFFH,0FFFFH,00000H,00000H ; \"_\"\n\tDW\t00000H,00006H,00007H,08003H,0C001H,0E000H,06000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \"`\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0F00FH,0F80FH,01C00H,00C00H,0FC1FH,0FC3FH,00C30H,00C30H,0FC3FH,0FC1FH,00000H,00000H,00000H,00000H,00000H ; \"a\"\n\tDW\t00000H,00030H,00030H,00030H,00030H,0F03FH,0F83FH,01C30H,00C30H,00C30H,00C30H,00C30H,01C30H,0F83FH,0F03FH,00000H,00000H,00000H,00000H,00000H ; \"b\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0FC0FH,0FC1FH,00038H,00030H,00030H,00030H,00030H,00038H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \"c\"\n\tDW\t00000H,00C00H,00C00H,00C00H,00C00H,0FC0FH,0FC1FH,00C38H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \"d\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00030H,00038H,0F01FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"e\"\n\tDW\t00000H,03000H,0F000H,0C001H,08001H,08001H,08001H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \"f\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0FC0FH,0FC1FH,00C38H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00C00H,01C00H,0F80FH,0F00FH,00000H ; \"g\"\n\tDW\t00000H,00030H,00030H,00030H,00030H,0F03FH,0F83FH,01C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \"h\"\n\tDW\t00000H,08001H,08001H,00000H,00000H,0800FH,0800FH,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"i\"\n\tDW\t00000H,08001H,08001H,00000H,00000H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08003H,0000FH,0000CH,00000H ; \"j\"\n\tDW\t00000H,0000CH,0000CH,0000CH,0180CH,0380CH,0700CH,0E00CH,0C00FH,0800FH,0C00DH,0E00CH,0700CH,0380CH,0180CH,00000H,00000H,00000H,00000H,00000H ; \"k\"\n\tDW\t00000H,0800FH,0800FH,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"l\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0303EH,0F83FH,0FC33H,08C31H,08C31H,08C31H,08C31H,08C31H,08C31H,08C31H,00000H,00000H,00000H,00000H,00000H ; \"m\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0F03FH,0F83FH,01C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \"n\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"o\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0F03FH,0F83FH,01C30H,00C30H,00C30H,00C30H,00C30H,01C30H,0F83FH,0F03FH,00030H,00030H,00030H,00030H,00000H ; \"p\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0FC0FH,0FC1FH,00C38H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00C00H,00C00H,00C00H,00C00H,00000H ; \"q\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0F819H,0F81BH,0001FH,0001EH,00018H,00018H,00018H,00018H,00018H,00018H,00000H,00000H,00000H,00000H,00000H ; \"r\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0FC0FH,0FC1FH,00030H,00030H,0F01FH,0F80FH,00C00H,00C00H,0F83FH,0F03FH,00000H,00000H,00000H,00000H,00000H ; \"s\"\n\tDW\t00000H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,08001H,0C001H,0F000H,03000H,00000H,00000H,00000H,00000H,00000H ; \"t\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \"u\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00C30H,00C30H,00C30H,01C38H,01818H,0381CH,0700EH,0E007H,0C003H,08001H,00000H,00000H,00000H,00000H,00000H ; \"v\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00C30H,00C30H,00C30H,00C30H,08C31H,08C31H,08C31H,0FC3FH,0F81FH,0700EH,00000H,00000H,00000H,00000H,00000H ; \"w\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00C30H,01C38H,0781EH,0F00FH,0C003H,0C003H,0F00FH,0781EH,01C38H,00C30H,00000H,00000H,00000H,00000H,00000H ; \"x\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00C00H,01C00H,0F80FH,0F00FH,00000H ; \"y\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0FC3FH,0FC3FH,03800H,07000H,0E001H,08007H,0000EH,0001CH,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \"z\"\n\tDW\t00000H,0F000H,0F001H,08001H,08001H,08003H,00003H,0000FH,0000FH,00003H,08003H,08001H,08001H,0F000H,0F000H,00000H,00000H,00000H,00000H,00000H ; \"{\"\n\tDW\t00000H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \"|\"\n\tDW\t00000H,0000FH,0800FH,08001H,08001H,0C001H,0C000H,0F000H,0F000H,0C000H,0C001H,08001H,08001H,0000FH,0000FH,00000H,00000H,00000H,00000H,00000H ; \"}\"\n\tDW\t00000H,0000EH,00C1FH,0DC3BH,0F831H,07000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \"~\"\n\tDW\t00000H,08001H,0C003H,0C003H,06006H,06006H,0300CH,0300CH,01818H,01818H,00C30H,00C30H,00C30H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; &7F DEL\n\tDW\t00000H,0F003H,0F807H,01C0EH,00C0CH,0C03FH,0C03FH,0000CH,0000CH,0803FH,0803FH,00C0CH,01C0EH,0F807H,0F003H,00000H,00000H,00000H,00000H,00000H ; &80 euro symbol\n\tDW\t00000H,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; &81 block (teletext)\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,08003H,08003H,08001H,08003H,00007H,0000EH,00000H,00000H,00000H ; &82 single low quotation mark\n\tDW\t00000H,07000H,0F000H,0C001H,08001H,08001H,08001H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08003H,0000FH,0000EH,00000H ; &83 small letter f with hook\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,01C0EH,01C0EH,00C06H,01C0EH,0381CH,07038H,00000H,00000H,00000H ; &84 double low quotation mark\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,09819H,09819H,00000H,00000H,00000H,00000H,00000H ; &85 horizontal ellipsis\n\tDW\t00000H,08001H,08001H,08001H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; &86 dagger\n\tDW\t00000H,08001H,08001H,08001H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,0F00FH,0F00FH,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; &87 double dagger\n\tDW\t08001H,0C003H,06006H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &88 circumflex accent\n\tDW\t00000H,03038H,0706CH,0E06CH,0C039H,08003H,00007H,0000EH,0001CH,00038H,00070H,01C67H,0B60DH,0B60DH,01C07H,00000H,00000H,00000H,00000H,00000H ; &89 per mille\n\tDW\t06006H,0E007H,0C003H,0F00FH,0F81FH,01C38H,00C30H,00038H,0F01FH,0F80FH,01C00H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; &8A capital S caron\n\tDW\t00000H,00000H,00000H,08001H,08003H,00007H,0000EH,0000CH,0000EH,00007H,08003H,08001H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &8B left angle quotation mark\n\tDW\t00000H,0FC0FH,0FC1FH,08039H,08031H,08031H,08031H,0F831H,0F831H,08031H,08031H,08031H,08039H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; &8C capital OE ligature\n\tDW\t00000H,00000H,08001H,0C003H,0E007H,0F00FH,0B81DH,09C39H,08C31H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H,00000H ; &8D up arrow (teletext)\n\tDW\t06006H,0E007H,0C003H,0FC3FH,0FC3FH,03800H,07000H,0E000H,0C001H,08003H,00007H,0000EH,0001CH,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; &8E capital Z caron\n\tDW\t00000H,00000H,08001H,08003H,00007H,0000EH,0001CH,0FC3FH,0FC3FH,0001CH,0000EH,00007H,08003H,08001H,00000H,00000H,00000H,00000H,00000H,00000H ; &8F left arrow (teletext)\n\tDW\t00000H,00000H,08001H,0C001H,0E000H,07000H,03800H,0FC3FH,0FC3FH,03800H,07000H,0E000H,0C001H,08001H,00000H,00000H,00000H,00000H,00000H,00000H ; &90 right arrow (teletext)\n\tDW\t00000H,07000H,0E000H,0C001H,08001H,0C001H,0C001H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &91 left single quotation mark\n\tDW\t00000H,08003H,08003H,08001H,08003H,00007H,0000EH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &92 right single quotation mark\n\tDW\t00000H,01C0EH,0381CH,07038H,06030H,07038H,07038H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &93 left double quotation mark\n\tDW\t00000H,01C0EH,01C0EH,00C06H,01C0EH,0381CH,07038H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &94 right double quotation mark\n\tDW\t00000H,00000H,00000H,00000H,00000H,08001H,0C003H,0E007H,0E007H,0C003H,08001H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &95 bullet\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,0F81FH,0F81FH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &96 en dash\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,0FE7FH,0FE7FH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &97 em dash\n\tDW\t06007H,0C00DH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &98 small tilde\n\tDW\t00000H,00000H,0C67EH,0C67EH,0EE18H,0FE18H,0D618H,0D618H,0C618H,0C618H,0C618H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &99 trade mark sign\n\tDW\t00000H,06006H,0E007H,0C003H,00000H,0FC0FH,0FC1FH,00038H,00038H,0F01FH,0F80FH,01C00H,01C00H,0F83FH,0F03FH,00000H,00000H,00000H,00000H,00000H ; &9A small S caron\n\tDW\t00000H,00000H,00000H,08001H,0C001H,0E000H,07000H,03000H,07000H,0E000H,0C001H,08001H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &9B right angle quotation mark\n\tDW\t00000H,00000H,00000H,00000H,00000H,0780EH,0FC1FH,0CC3BH,08C31H,0FC31H,0FC31H,08031H,0C03BH,0FC1FH,07C0EH,00000H,00000H,00000H,00000H,00000H ; &9C small OE ligature\n\tDW\t00000H,0381CH,0381CH,0381CH,0381CH,0381CH,0381CH,0381CH,0381CH,0381CH,0381CH,0381CH,0381CH,0381CH,0381CH,00000H,00000H,00000H,00000H,00000H ; &9D double line (teletext)\n\tDW\t00000H,06006H,0E007H,0C003H,00000H,0FC3FH,0FC3FH,03800H,07000H,0E001H,08007H,0000EH,0001CH,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; &9E small Z caron\n\tDW\t0300CH,0300CH,0300CH,00000H,00C30H,01C38H,0381CH,0700EH,0E007H,0C003H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; &9F capital Y diaeresis\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &A0 non-break space\n\tDW\t00000H,00000H,00000H,00000H,00000H,08001H,08001H,00000H,00000H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,08001H,08001H,0FC0FH,0FC1FH,08039H,08031H,08031H,08031H,08031H,08039H,0FC1FH,0FC0FH,08001H,08001H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0F003H,0F807H,01C0EH,00C0CH,0000CH,0000CH,0803FH,0803FH,0000CH,0000CH,0000CH,0000CH,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00C30H,01C38H,0F81FH,0F00FH,0700EH,0700EH,0F00FH,0F81FH,01C38H,00C30H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00C30H,01C38H,0381CH,0700EH,0FC3FH,0FC3FH,08001H,08001H,0FC3FH,0FC3FH,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,08001H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,08001H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00030H,00038H,0F01FH,0F81FH,01C38H,01C38H,0F81FH,0F80FH,01C00H,00C00H,00C30H,01C38H,0F81FH,0F00FH,00000H ; \" \"\n\tDW\t01818H,01818H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,0CC33H,0EC37H,06C36H,00C36H,00C36H,00C36H,06C36H,0EC37H,0CC33H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H ; \" \"\n\tDW\t00000H,0F00FH,0F80FH,01C00H,00C00H,0FC0FH,0FC1FH,00C38H,00C38H,0FC1FH,0FC0FH,00000H,00000H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,01C0EH,0381CH,07038H,07038H,0381CH,01C0EH,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0FC3FH,0FC3FH,00C00H,00C00H,00C00H,00C00H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,0E007H,0E007H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,0CC37H,0EC37H,06C36H,06C36H,0CC37H,08C37H,0CC37H,0EC36H,06C36H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H ; \" \"\n\tDW\t00000H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t0C003H,0E007H,0700EH,0381CH,0700EH,0E007H,0C003H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,08001H,08001H,08001H,08001H,0FC3FH,0FC3FH,08001H,08001H,08001H,08001H,00000H,00000H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0C00FH,0E00FH,07000H,07000H,0E003H,0C007H,0000EH,0000CH,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0C00FH,0E00FH,07000H,07000H,0E00FH,0E00FH,07000H,07000H,0E00FH,0C00FH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,06000H,0E000H,0C001H,08003H,00007H,00006H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,06030H,06030H,06030H,06030H,06030H,06030H,06030H,0F830H,0FC3FH,08C3FH,00030H,00030H,00030H,00030H,00000H ; \" \"\n\tDW\t00000H,08C0FH,08C1FH,08C39H,08C31H,08C31H,08C39H,08C1FH,08C0FH,08C01H,08C01H,08C01H,08C01H,08C01H,08C01H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,08001H,08001H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,08001H,08001H,08003H,00007H,00006H,00000H ; \" \"\n\tDW\t00000H,08003H,08007H,0800FH,0800DH,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,07038H,0381CH,01C0EH,01C0EH,0381CH,07038H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0000CH,0000CH,0000CH,0000CH,0000CH,0000CH,0000CH,0000CH,01C0CH,03C0CH,07C00H,0EC00H,0CC01H,08C01H,0FC01H,0FC01H,00C00H,00C00H,00000H ; \" \"\n\tDW\t00000H,00030H,00030H,00030H,00030H,00030H,00030H,00030H,00030H,0F831H,0FC31H,00C00H,00C00H,07C00H,0F800H,0C001H,08001H,0FC01H,0FC01H,00000H ; \" \"\n\tDW\t00000H,0003EH,0003FH,08003H,08003H,0003FH,0003FH,08003H,08003H,01C3FH,03C3EH,07C00H,0EC00H,0CC01H,08C01H,0FC01H,0FC01H,00C00H,00C00H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,08001H,08001H,00000H,00000H,08001H,08001H,08003H,00007H,0000EH,0001CH,00C18H,01C1CH,0F80FH,0F00FH,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t01807H,0B80FH,0F01DH,0E018H,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t0300CH,0300CH,0300CH,00000H,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,06006H,06006H,0C003H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0FC0FH,0FC1FH,08039H,08031H,08031H,08031H,0F83FH,0F83FH,08031H,08031H,08031H,08031H,0FC31H,0FC31H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00030H,00030H,00030H,00030H,00030H,00030H,00C30H,01C38H,0F81FH,0F00FH,08001H,08003H,00007H,00006H,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,0FC3FH,0FC3FH,00030H,00030H,0F03FH,0F03FH,00030H,00030H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,0FC3FH,0FC3FH,00030H,00030H,0F03FH,0F03FH,00030H,00030H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,0FC3FH,0FC3FH,00030H,00030H,0F03FH,0F03FH,00030H,00030H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t0300CH,0300CH,0300CH,00000H,00000H,0FC3FH,0FC3FH,00030H,00030H,0F03FH,0F03FH,00030H,00030H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t0300CH,0300CH,0300CH,00000H,00000H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0F00FH,0F80FH,01C0CH,00C0CH,00C0CH,00C0CH,08C3FH,08C3FH,00C0CH,00C0CH,00C0CH,01C0CH,0F80FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t01807H,0B80FH,0F01DH,0E018H,00000H,00C30H,00C3CH,00C3EH,00C37H,08C33H,0CC31H,0EC30H,07C30H,03C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t01807H,0B80FH,0F01DH,0E018H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t0300CH,0300CH,0300CH,00000H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,01818H,0381CH,0700EH,0E007H,0C003H,0E007H,0700EH,0381CH,01818H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,03C30H,07C30H,0EC30H,0CC31H,08C33H,00C37H,00C3EH,00C3CH,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t0300CH,0300CH,0300CH,00000H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00C30H,01C38H,0381CH,0700EH,0E007H,0C003H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00030H,00030H,0F03FH,0F83FH,01C30H,00C30H,00C30H,01C30H,0F83FH,0F03FH,00030H,00030H,00030H,00030H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0C00FH,0E01FH,07038H,03030H,03030H,03030H,0F031H,0F831H,01C30H,00C30H,00C30H,01C30H,0F831H,0F031H,00030H,00030H,00030H,00030H,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,0F00FH,0F80FH,01C00H,00C00H,0FC0FH,0FC1FH,00C38H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,0F00FH,0F80FH,01C00H,00C00H,0FC0FH,0FC1FH,00C38H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,0F00FH,0F80FH,01C00H,00C00H,0FC0FH,0FC1FH,00C38H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t01807H,0B80FH,0F01DH,0E018H,00000H,0F00FH,0F80FH,01C00H,00C00H,0FC0FH,0FC1FH,00C38H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0300CH,0300CH,0300CH,00000H,0F00FH,0F80FH,01C00H,00C00H,0FC0FH,0FC1FH,00C38H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,06006H,0C003H,08001H,0F00FH,0F80FH,01C00H,00C00H,0FC0FH,0FC1FH,00C38H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0781EH,0FC1FH,08C03H,08C01H,0FC1FH,0FC3FH,08031H,08031H,0F83FH,0F81FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0FC0FH,0FC1FH,00038H,00030H,00030H,00030H,00030H,00038H,0FC1FH,0FC0FH,0C000H,0C001H,08003H,00003H,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00030H,00038H,0F01FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00030H,00038H,0F01FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00030H,00038H,0F01FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0300CH,0300CH,0300CH,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00030H,00038H,0F01FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,0800FH,0800FH,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,0800FH,0800FH,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,0800FH,0800FH,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0300CH,0300CH,0300CH,00000H,0800FH,0800FH,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0601EH,0E01FH,0C003H,0E007H,0700EH,0380CH,01C00H,00C00H,0FC0FH,0FC1FH,01C38H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t01807H,0B80FH,0F01DH,0E018H,00000H,0F03FH,0F83FH,01C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t01807H,0B80FH,0F01DH,0E018H,00000H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0300CH,0300CH,0300CH,00000H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,08001H,08001H,00000H,00000H,0FC3FH,0FC3FH,00000H,00000H,08001H,08001H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0F00FH,0F81FH,07C38H,0EC30H,0CC31H,08C33H,00C37H,01C3EH,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0300CH,0300CH,0300CH,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00C00H,01C00H,0F80FH,0F00FH,00000H ; \" \"\n\tDW\t00000H,00030H,00030H,00030H,00030H,0F03FH,0F83FH,01C30H,00C30H,00C30H,00C30H,00C30H,01C30H,0F83FH,0F03FH,00030H,00030H,00030H,00030H,00000H ; \" \"\n\tDW\t00000H,0300CH,0300CH,0300CH,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00C00H,01C00H,0F80FH,0F00FH,00000H ; \" \"\n;\n; Structure {x%,y%}\n;\nptfmt:\tdd\t8\t\t; Total length (bytes)\nptlnk0:\tdd\tptlnk1 - ptlnk0\t; Link to next member\n\tdb\t'x%',0\t\t; Member name\n\tdd\t0\t\t; Member offset (bytes)\nptlnk1:\tdd\t0\t\t; Terminating link\n\tdb\t'y%',0\t\t; Member name\n\tdd\t4\t\t; Member offset (bytes)\n;\n; Structure {a&,b&,c&,d&}\n;\nb4fmt:\tdd\t4\t\t; Total length (bytes)\nb4lnk0:\tdd\tb4lnk1 - b4lnk0\t; Link to next member\n\tdb\t'a&',0\t\t; Member name\n\tdd\t0\t\t; Member offset (bytes)\nb4lnk1:\tdd\tb4lnk2 - b4lnk1\t; Link to next member\n\tdb\t'b&',0\t\t; Member name\n\tdd\t1\t\t; Member offset (bytes)\nb4lnk2:\tdd\tb4lnk3 - b4lnk2\t; Link to next member\n\tdb\t'c&',0\t\t; Member name\n\tdd\t2\t\t; Member offset (bytes)\nb4lnk3:\tdd\t0\t\t; Terminating link\n\tdb\t'd&',0\t\t; Member name\n\tdd\t3\t\t; Member offset (bytes)\n;\n; FastVar token type values:\n;\nfvtab:\tdb\t1\t\t; &19 v&  Unsigned byte (8 bits)\n\tdb\t4\t\t; &1A v%  Signed dword (32 bits)\n\tdb\t8\t\t; &1B v#  Float double (64 bits)\n\tdb\t10\t\t; &1C v   Variant numeric (80 bits)\n\tdb\t16\t\t; &1D v{} Structure (8+8 bytes)\n\tdb\t40\t\t; &1E v%% Signed qword (64 bits)\n\tdb\t136\t\t; &1F v$  String (4+4 bytes)\n;\n\tSEGMENT .data\t\t; Necessary for Position Independent Code\n;\n; Array of function entry points:\n;\n\ttimes 3\tdb 0\t\t; Padding\nfnarr:\tdb\t1\t\t; Number of dimensions\n\tdd\t(fnarrt-fnarr0)/8 ; Number of entries\n\tcheckalign\nfnarr0:\tdq\tloadn\t\t; Load numeric \n\tdq\tloads\t\t; Load string\n\tdq\tstoren\t\t; Store numeric\n\tdq\tstores\t\t; Store string\n\tdq\tgetvar\t\t; Get variable address\n\tdq\tputvar\t\t; Create variable\n\tdq\texpr\t\t; Evaluate expression\n\tdq\titem\t\t; Evaluate item\n\tdq\tlexan\t\t; Lexical analysis (tokenise)\n\tdq\ttoken\t\t; Print character or keyword\n\tdq\txfloat\t\t; Convert integer to float\n\tdq\txfix\t\t; Convert float to integer\n\tdq\tstr00\t\t; Convert a number to a string\n\tdq\tcon\t\t; Convert a string to a number\n\tdq\t0\t\t; Reserved for sortup\n\tdq\t0\t\t; Reserved for sortdn\n\tdq\t0\t\t; Reserved for hook\n\tdq\txeq\t\t; Return to BASIC\n\tdq\tputevt\t\t; Store event in queue\n\tdq\tgfxPrimitivesGetFont\n\tdq\tgfxPrimitivesSetFont\n\tdq\tRedefineChar\nfnarrt:\n;\n"
  },
  {
    "path": "bin/android/build.gradle",
    "content": "def buildAsLibrary = project.hasProperty('BUILD_AS_LIBRARY');\ndef buildAsApplication = !buildAsLibrary\nif (buildAsApplication) {\n    apply plugin: 'com.android.application'\n}\nelse {\n    apply plugin: 'com.android.library'\n}\n\nandroid {\n    namespace = 'com.rtrussell.bbcbasic'\n    compileSdkVersion 35\n    defaultConfig {\n        if (buildAsApplication) {\n            applicationId \"com.rtrussell.bbcbasic\"\n        }\n        ndkVersion = \"27.3.13750724\"\n        minSdkVersion 21\n        targetSdkVersion 35\n        versionCode 149\n        versionName \"1.44a\"\n        externalNativeBuild {\n            ndkBuild {\n                arguments \"APP_PLATFORM=android-16\"\n                abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86_64'\n            }\n            // cmake {\n            //     arguments \"-DANDROID_APP_PLATFORM=android-16\", \"-DANDROID_STL=c++_static\"\n            //     // abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'\n            //     abiFilters 'arm64-v8a'\n            // }\n        }\n    }\n    buildTypes {\n        release {\n            debuggable false\n            minifyEnabled false\n            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'\n        }\n    }\n    applicationVariants.all { variant ->\n        tasks[\"merge${variant.name.capitalize()}Assets\"]\n            .dependsOn(\"externalNativeBuild${variant.name.capitalize()}\")\n    }\n    if (!project.hasProperty('EXCLUDE_NATIVE_LIBS')) {\n        sourceSets.main {\n            jniLibs.srcDir 'libs'\n        }\n        externalNativeBuild {\n            ndkBuild {\n                path 'jni/Android.mk'\n            }\n            // cmake {\n            //     path 'jni/CMakeLists.txt'\n            // }\n        }\n\n    }\n    lintOptions {\n        abortOnError = false\n    }\n\n    if (buildAsLibrary) {\n        libraryVariants.all { variant ->\n            variant.outputs.each { output ->\n                def outputFile = output.outputFile\n                if (outputFile != null && outputFile.name.endsWith(\".aar\")) {\n                    def fileName = \"com.rtrussell.bbcbasic.aar\";\n                    output.outputFile = new File(outputFile.parent, fileName);\n                }\n            }\n        }\n    }\n}\n\ndependencies {\n    implementation fileTree(include: ['*.jar'], dir: 'libs')\n}\n"
  },
  {
    "path": "bin/android/help.txt",
    "content": "﻿•    BBC BASIC is the programming language originally specified and adopted by the British Broadcasting Corporation for its groundbreaking Computer Literacy Project of the early 1980s.\n\nBBC BASIC for SDL 2.0 is an advanced cross-platform implementation which will run on Windows®, MacOS®, Linux® (x86), Raspberry Pi OS™, Android™, iOS® and in a browser.  The full help manual may be found <here>.\n\nThe Android, iOS and in-browser editions have a simplified user interface.  To run a program, navigate to the appropriate folder (games, general, graphics, physics, sounds or tools) and tap/click on the program's name.\n\nTo exit a program and return to the main menu, tap on the Back [<] button (Android) or press the Escape key.  In iOS there is a soft [<] button; it may not always be displayed but tapping in the top-left corner should still work.\n\nTo create a new program, first navigate to the @usr$ folder then long-press or right-click below the list of files and select New file from the context menu.  Alternatively create a new folder under @usr$ and put your program there.\n\nTo edit a program, long-press or right-click on the program's name and select Edit from the context menu.  To exit the editor tap on the [<] button or press the Escape key. You cannot edit the supplied example programs.\n\nIn the editor a long-press or right-click opens a menu of commands. A long press and drag selects a block of code; a horizontal drag selects part of a line, a vertical drag selects entire lines.  Tap on a selected region for options.\n\nIn Android and iOS the contents of the @usr$ folder may be accessed from a desktop computer using a USB connection, or from the Files app in iOS.\n\nIt is inevitable that from time to time BBC BASIC will crash (for example abort with an untrapped error), especially if you are testing and debugging your own programs. If this happens it will not damage your device or other apps, but it will be necessary to close BBC BASIC fully and open it again.\n\nBBC BASIC for SDL 2.0 is the Copyright © 2026 of R.T.Russell.  The program and other materials are provided 'as is' and without any guarantee as to their quality or suitability.  Although they are thought to be free from serious bugs, and it is highly unlikely that they could do any harm to other software or systems, there is NO warranty that they will not and their use is at your own risk. \n\nThe supplied example programs and libraries remain the Copyright © 2001-2026 of R.T.Russell and others, but you may incorporate them in whole or in part within your own programs so long as any copyright notice is retained.\n"
  },
  {
    "path": "bin/android/styles.xml",
    "content": "<resources>\n\n    <!-- Base application theme. -->\n    <style name=\"AppTheme\" parent=\"android:Theme.DeviceDefault.NoActionBar\">\n        <item name=\"android:windowOptOutEdgeToEdgeEnforcement\">true</item>\n    </style>\n\n</resources>\n"
  },
  {
    "path": "bin/ios/exported.txt",
    "content": "_SDL_AddEventWatch\n_SDL_AddHintCallback\n_SDL_AddTimer\n_SDL_AllocFormat\n_SDL_AllocPalette\n_SDL_AllocRW\n_SDL_AtomicAdd\n_SDL_AtomicCAS\n_SDL_AtomicCASPtr\n_SDL_AtomicGet\n_SDL_AtomicGetPtr\n_SDL_AtomicLock\n_SDL_AtomicSet\n_SDL_AtomicSetPtr\n_SDL_AtomicTryLock\n_SDL_AtomicUnlock\n_SDL_AudioInit\n_SDL_AudioQuit\n_SDL_BuildAudioCVT\n_SDL_CalculateGammaRamp\n_SDL_CaptureMouse\n_SDL_ClearError\n_SDL_ClearHints\n_SDL_ClearQueuedAudio\n_SDL_CloseAudio\n_SDL_CloseAudioDevice\n_SDL_ComposeCustomBlendMode\n_SDL_CondBroadcast\n_SDL_CondSignal\n_SDL_CondWait\n_SDL_CondWaitTimeout\n_SDL_ConvertAudio\n_SDL_ConvertPixels\n_SDL_ConvertSurface\n_SDL_ConvertSurfaceFormat\n_SDL_CreateColorCursor\n_SDL_CreateCond\n_SDL_CreateCursor\n_SDL_CreateMutex\n_SDL_CreateRGBSurface\n_SDL_CreateRGBSurfaceFrom\n_SDL_CreateRGBSurfaceWithFormat\n_SDL_CreateRGBSurfaceWithFormatFrom\n_SDL_CreateRenderer\n_SDL_CreateSemaphore\n_SDL_CreateSoftwareRenderer\n_SDL_CreateSystemCursor\n_SDL_CreateTexture\n_SDL_CreateTextureFromSurface\n_SDL_CreateThread\n_SDL_CreateThreadWithStackSize\n_SDL_CreateWindow\n_SDL_CreateWindowAndRenderer\n_SDL_CreateWindowFrom\n_SDL_DelEventWatch\n_SDL_DelHintCallback\n_SDL_Delay\n_SDL_DequeueAudio\n_SDL_DestroyCond\n_SDL_DestroyMutex\n_SDL_DestroyRenderer\n_SDL_DestroySemaphore\n_SDL_DestroyTexture\n_SDL_DestroyWindow\n_SDL_DetachThread\n_SDL_DisableScreenSaver\n_SDL_EnableScreenSaver\n_SDL_EnclosePoints\n_SDL_EventState\n_SDL_FillRect\n_SDL_FillRects\n_SDL_FilterEvents\n_SDL_FlushEvent\n_SDL_FlushEvents\n_SDL_FreeCursor\n_SDL_FreeFormat\n_SDL_FreePalette\n_SDL_FreeRW\n_SDL_FreeSurface\n_SDL_FreeWAV\n_SDL_GL_BindTexture\n_SDL_GL_CreateContext\n_SDL_GL_DeleteContext\n_SDL_GL_ExtensionSupported\n_SDL_GL_GetAttribute\n_SDL_GL_GetCurrentContext\n_SDL_GL_GetCurrentWindow\n_SDL_GL_GetDrawableSize\n_SDL_GL_GetProcAddress\n_SDL_GL_GetSwapInterval\n_SDL_GL_LoadLibrary\n_SDL_GL_MakeCurrent\n_SDL_GL_ResetAttributes\n_SDL_GL_SetAttribute\n_SDL_GL_SetSwapInterval\n_SDL_GL_SwapWindow\n_SDL_GL_UnbindTexture\n_SDL_GL_UnloadLibrary\n_SDL_GameControllerAddMapping\n_SDL_GameControllerAddMappingsFromRW\n_SDL_GameControllerClose\n_SDL_GameControllerEventState\n_SDL_GameControllerFromInstanceID\n_SDL_GameControllerGetAttached\n_SDL_GameControllerGetAxis\n_SDL_GameControllerGetAxisFromString\n_SDL_GameControllerGetBindForAxis\n_SDL_GameControllerGetBindForButton\n_SDL_GameControllerGetButton\n_SDL_GameControllerGetButtonFromString\n_SDL_GameControllerGetJoystick\n_SDL_GameControllerGetStringForAxis\n_SDL_GameControllerGetStringForButton\n_SDL_GameControllerMapping\n_SDL_GameControllerMappingForGUID\n_SDL_GameControllerName\n_SDL_GameControllerNameForIndex\n_SDL_GameControllerOpen\n_SDL_GameControllerUpdate\n_SDL_GetAssertionHandler\n_SDL_GetAssertionReport\n_SDL_GetAudioDeviceName\n_SDL_GetAudioDeviceStatus\n_SDL_GetAudioDriver\n_SDL_GetAudioStatus\n_SDL_GetBasePath\n_SDL_GetCPUCacheLineSize\n_SDL_GetCPUCount\n_SDL_GetClipRect\n_SDL_GetClipboardText\n_SDL_GetClosestDisplayMode\n_SDL_GetColorKey\n_SDL_GetCurrentAudioDriver\n_SDL_GetCurrentDisplayMode\n_SDL_GetCurrentVideoDriver\n_SDL_GetCursor\n_SDL_GetDefaultAssertionHandler\n_SDL_GetDefaultCursor\n_SDL_GetDesktopDisplayMode\n_SDL_GetDisplayBounds\n_SDL_GetDisplayDPI\n_SDL_GetDisplayMode\n_SDL_GetDisplayName\n_SDL_GetDisplayUsableBounds\n_SDL_GetError\n_SDL_GetEventFilter\n_SDL_GetGlobalMouseState\n_SDL_GetGrabbedWindow\n_SDL_GetHint\n_SDL_GetHintBoolean\n_SDL_GetKeyFromName\n_SDL_GetKeyFromScancode\n_SDL_GetKeyName\n_SDL_GetKeyboardFocus\n_SDL_GetKeyboardState\n_SDL_GetModState\n_SDL_GetMouseFocus\n_SDL_GetMouseState\n_SDL_GetNumAudioDevices\n_SDL_GetNumAudioDrivers\n_SDL_GetNumDisplayModes\n_SDL_GetNumRenderDrivers\n_SDL_GetNumTouchDevices\n_SDL_GetNumTouchFingers\n_SDL_GetNumVideoDisplays\n_SDL_GetNumVideoDrivers\n_SDL_GetPerformanceCounter\n_SDL_GetPerformanceFrequency\n_SDL_GetPixelFormatName\n_SDL_GetPlatform\n_SDL_GetPowerInfo\n_SDL_GetPrefPath\n_SDL_GetQueuedAudioSize\n_SDL_GetRGB\n_SDL_GetRGBA\n_SDL_GetRelativeMouseMode\n_SDL_GetRelativeMouseState\n_SDL_GetRenderDrawBlendMode\n_SDL_GetRenderDrawColor\n_SDL_GetRenderDriverInfo\n_SDL_GetRenderTarget\n_SDL_GetRenderer\n_SDL_GetRendererInfo\n_SDL_GetRendererOutputSize\n_SDL_GetRevision\n_SDL_GetRevisionNumber\n_SDL_GetScancodeFromKey\n_SDL_GetScancodeFromName\n_SDL_GetScancodeName\n_SDL_GetSurfaceAlphaMod\n_SDL_GetSurfaceBlendMode\n_SDL_GetSurfaceColorMod\n_SDL_GetSystemRAM\n_SDL_GetTextureAlphaMod\n_SDL_GetTextureBlendMode\n_SDL_GetTextureColorMod\n_SDL_GetThreadID\n_SDL_GetThreadName\n_SDL_GetTicks\n_SDL_GetTicks64\n_SDL_GetTouchDevice\n_SDL_GetTouchFinger\n_SDL_GetVersion\n_SDL_GetVideoDriver\n_SDL_GetWindowBordersSize\n_SDL_GetWindowBrightness\n_SDL_GetWindowData\n_SDL_GetWindowDisplayIndex\n_SDL_GetWindowDisplayMode\n_SDL_GetWindowFlags\n_SDL_GetWindowFromID\n_SDL_GetWindowGammaRamp\n_SDL_GetWindowGrab\n_SDL_GetWindowID\n_SDL_GetWindowMaximumSize\n_SDL_GetWindowMinimumSize\n_SDL_GetWindowOpacity\n_SDL_GetWindowPixelFormat\n_SDL_GetWindowPosition\n_SDL_GetWindowSize\n_SDL_GetWindowSurface\n_SDL_GetWindowTitle\n_SDL_GetWindowWMInfo\n_SDL_HapticClose\n_SDL_HapticDestroyEffect\n_SDL_HapticEffectSupported\n_SDL_HapticGetEffectStatus\n_SDL_HapticIndex\n_SDL_HapticName\n_SDL_HapticNewEffect\n_SDL_HapticNumAxes\n_SDL_HapticNumEffects\n_SDL_HapticNumEffectsPlaying\n_SDL_HapticOpen\n_SDL_HapticOpenFromJoystick\n_SDL_HapticOpenFromMouse\n_SDL_HapticOpened\n_SDL_HapticPause\n_SDL_HapticQuery\n_SDL_HapticRumbleInit\n_SDL_HapticRumblePlay\n_SDL_HapticRumbleStop\n_SDL_HapticRumbleSupported\n_SDL_HapticRunEffect\n_SDL_HapticSetAutocenter\n_SDL_HapticSetGain\n_SDL_HapticStopAll\n_SDL_HapticStopEffect\n_SDL_HapticUnpause\n_SDL_HapticUpdateEffect\n_SDL_Has3DNow\n_SDL_HasAVX\n_SDL_HasAVX2\n_SDL_HasAltiVec\n_SDL_HasClipboardText\n_SDL_HasEvent\n_SDL_HasEvents\n_SDL_HasIntersection\n_SDL_HasMMX\n_SDL_HasRDTSC\n_SDL_HasSSE\n_SDL_HasSSE2\n_SDL_HasSSE3\n_SDL_HasSSE41\n_SDL_HasSSE42\n_SDL_HasScreenKeyboardSupport\n_SDL_HideWindow\n_SDL_Init\n_SDL_InitSubSystem\n_SDL_IntersectRect\n_SDL_IntersectRectAndLine\n_SDL_IsGameController\n_SDL_IsScreenKeyboardShown\n_SDL_IsScreenSaverEnabled\n_SDL_IsTextInputActive\n_SDL_JoystickClose\n_SDL_JoystickCurrentPowerLevel\n_SDL_JoystickEventState\n_SDL_JoystickFromInstanceID\n_SDL_JoystickGetAttached\n_SDL_JoystickGetAxis\n_SDL_JoystickGetBall\n_SDL_JoystickGetButton\n_SDL_JoystickGetDeviceGUID\n_SDL_JoystickGetGUID\n_SDL_JoystickGetGUIDFromString\n_SDL_JoystickGetGUIDString\n_SDL_JoystickGetHat\n_SDL_JoystickInstanceID\n_SDL_JoystickIsHaptic\n_SDL_JoystickName\n_SDL_JoystickNameForIndex\n_SDL_JoystickNumAxes\n_SDL_JoystickNumBalls\n_SDL_JoystickNumButtons\n_SDL_JoystickNumHats\n_SDL_JoystickOpen\n_SDL_JoystickUpdate\n_SDL_LoadBMP_RW\n_SDL_LoadDollarTemplates\n_SDL_LoadFunction\n_SDL_LoadObject\n_SDL_LoadWAV_RW\n_SDL_LockAudio\n_SDL_LockAudioDevice\n_SDL_LockMutex\n_SDL_LockSurface\n_SDL_LockTexture\n_SDL_Log\n_SDL_LogCritical\n_SDL_LogDebug\n_SDL_LogError\n_SDL_LogGetOutputFunction\n_SDL_LogGetPriority\n_SDL_LogInfo\n_SDL_LogMessage\n_SDL_LogMessageV\n_SDL_LogResetPriorities\n_SDL_LogSetAllPriority\n_SDL_LogSetOutputFunction\n_SDL_LogSetPriority\n_SDL_LogVerbose\n_SDL_LogWarn\n_SDL_LowerBlit\n_SDL_LowerBlitScaled\n_SDL_MapRGB\n_SDL_MapRGBA\n_SDL_MasksToPixelFormatEnum\n_SDL_MaximizeWindow\n_SDL_MinimizeWindow\n_SDL_MixAudio\n_SDL_MixAudioFormat\n_SDL_MouseIsHaptic\n_SDL_NumHaptics\n_SDL_NumJoysticks\n_SDL_NumSensors\n_SDL_OpenAudio\n_SDL_OpenAudioDevice\n_SDL_OpenURL\n_SDL_PauseAudio\n_SDL_PauseAudioDevice\n_SDL_PeepEvents\n_SDL_PixelFormatEnumToMasks\n_SDL_PollEvent\n_SDL_PumpEvents\n_SDL_PushEvent\n_SDL_QueryTexture\n_SDL_QueueAudio\n_SDL_Quit\n_SDL_QuitSubSystem\n_SDL_RWFromConstMem\n_SDL_RWFromFP\n_SDL_RWFromFile\n_SDL_RWFromMem\n_SDL_RWclose\n_SDL_RWread\n_SDL_RWwrite\n_SDL_RaiseWindow\n_SDL_RecordGesture\n_SDL_RegisterEvents\n_SDL_RemoveTimer\n_SDL_RenderClear\n_SDL_RenderCopy\n_SDL_RenderCopyEx\n_SDL_RenderDrawLine\n_SDL_RenderDrawLines\n_SDL_RenderDrawPoint\n_SDL_RenderDrawPoints\n_SDL_RenderDrawRect\n_SDL_RenderDrawRects\n_SDL_RenderFillRect\n_SDL_RenderFillRects\n_SDL_RenderFlush\n_SDL_RenderCopyF\n_SDL_RenderCopyExF\n_SDL_RenderDrawLineF\n_SDL_RenderDrawLinesF\n_SDL_RenderDrawPointF\n_SDL_RenderDrawPointsF\n_SDL_RenderDrawRectF\n_SDL_RenderDrawRectsF\n_SDL_RenderFillRectF\n_SDL_RenderFillRectsF\n_SDL_RenderFlush\n_SDL_RenderGeometry\n_SDL_RenderGetClipRect\n_SDL_RenderGetIntegerScale\n_SDL_RenderGetLogicalSize\n_SDL_RenderGetScale\n_SDL_RenderGetViewport\n_SDL_RenderIsClipEnabled\n_SDL_RenderPresent\n_SDL_RenderReadPixels\n_SDL_RenderSetClipRect\n_SDL_RenderSetIntegerScale\n_SDL_RenderSetLogicalSize\n_SDL_RenderSetScale\n_SDL_RenderSetViewport\n_SDL_RenderTargetSupported\n_SDL_ResetAssertionReport\n_SDL_RestoreWindow\n_SDL_SaveAllDollarTemplates\n_SDL_SaveBMP_RW\n_SDL_SaveDollarTemplate\n_SDL_SemPost\n_SDL_SemTryWait\n_SDL_SemValue\n_SDL_SemWait\n_SDL_SemWaitTimeout\n_SDL_SensorClose\n_SDL_SensorFromInstanceID\n_SDL_SensorGetData\n_SDL_SensorGetDataWithTimestamp\n_SDL_SensorGetDeviceInstanceID\n_SDL_SensorGetDeviceName\n_SDL_SensorGetDeviceNonPortableType\n_SDL_SensorGetDeviceType\n_SDL_SensorGetInstanceID\n_SDL_SensorGetName\n_SDL_SensorGetNonPortableType\n_SDL_SensorGetType\n_SDL_SensorOpen\n_SDL_SensorUpdate\n_SDL_SetAssertionHandler\n_SDL_SetClipRect\n_SDL_SetClipboardText\n_SDL_SetColorKey\n_SDL_SetCursor\n_SDL_SetError\n_SDL_SetEventFilter\n_SDL_SetHint\n_SDL_SetHintWithPriority\n_SDL_SetMainReady\n_SDL_SetModState\n_SDL_SetPaletteColors\n_SDL_SetPixelFormatPalette\n_SDL_SetRelativeMouseMode\n_SDL_SetRenderDrawBlendMode\n_SDL_SetRenderDrawColor\n_SDL_SetRenderTarget\n_SDL_SetSurfaceAlphaMod\n_SDL_SetSurfaceBlendMode\n_SDL_SetSurfaceColorMod\n_SDL_SetSurfacePalette\n_SDL_SetSurfaceRLE\n_SDL_SetTextInputRect\n_SDL_SetTextureAlphaMod\n_SDL_SetTextureBlendMode\n_SDL_SetTextureColorMod\n_SDL_SetThreadPriority\n_SDL_SetWindowBordered\n_SDL_SetWindowBrightness\n_SDL_SetWindowData\n_SDL_SetWindowDisplayMode\n_SDL_SetWindowFullscreen\n_SDL_SetWindowGammaRamp\n_SDL_SetWindowGrab\n_SDL_SetWindowHitTest\n_SDL_SetWindowIcon\n_SDL_SetWindowInputFocus\n_SDL_SetWindowMaximumSize\n_SDL_SetWindowMinimumSize\n_SDL_SetWindowModalFor\n_SDL_SetWindowOpacity\n_SDL_SetWindowPosition\n_SDL_SetWindowResizable\n_SDL_SetWindowSize\n_SDL_SetWindowTitle\n_SDL_ShowCursor\n_SDL_ShowMessageBox\n_SDL_ShowSimpleMessageBox\n_SDL_ShowWindow\n_SDL_StartTextInput\n_SDL_StopTextInput\n_SDL_TLSCreate\n_SDL_TLSGet\n_SDL_TLSSet\n_SDL_ThreadID\n_SDL_TryLockMutex\n_SDL_UnionRect\n_SDL_UnloadObject\n_SDL_UnlockAudio\n_SDL_UnlockAudioDevice\n_SDL_UnlockMutex\n_SDL_UnlockSurface\n_SDL_UnlockTexture\n_SDL_UpdateTexture\n_SDL_UpdateWindowSurface\n_SDL_UpdateWindowSurfaceRects\n_SDL_UpdateYUVTexture\n_SDL_UpperBlit\n_SDL_VideoInit\n_SDL_VideoQuit\n_SDL_WaitEvent\n_SDL_WaitEventTimeout\n_SDL_WaitThread\n_SDL_WarpMouseGlobal\n_SDL_WarpMouseInWindow\n_SDL_WasInit\n_SDLNet_ResolveHost\n_SDLNet_ResolveIP\n_SDLNet_TCP_Open\n_SDLNet_TCP_Close\n_SDLNet_TCP_Accept\n_SDLNet_TCP_GetPeerAddress\n_SDLNet_TCP_Send\n_SDLNet_TCP_Recv\n_SDLNet_AllocSocketSet\n_SDLNet_FreeSocketSet\n_SDLNet_AddSocket\n_SDLNet_DelSocket\n_SDLNet_CheckSockets\n_SDLNet_Linked_Version\n_SDLNet_UDP_Open\n_SDLNet_UDP_Close\n_SDLNet_UDP_Bind\n_SDLNet_UDP_Unbind\n_SDLNet_UDP_GetPeerAddress\n_SDLNet_UDP_Send\n_SDLNet_UDP_Recv\n_TTF_ByteSwappedUNICODE\n_TTF_CloseFont\n_TTF_FontAscent\n_TTF_FontDescent\n_TTF_FontFaceFamilyName\n_TTF_FontFaceIsFixedWidth\n_TTF_FontFaces\n_TTF_FontFaceStyleName\n_TTF_FontHeight\n_TTF_FontLineSkip\n_TTF_GetFontHinting\n_TTF_GetFontKerning\n_TTF_GetFontKerningSizeGlyphs\n_TTF_GetFontOutline\n_TTF_GetFontStyle\n_TTF_GlyphIsProvided\n_TTF_GlyphMetrics\n_TTF_Init\n_TTF_Linked_Version\n_TTF_OpenFont\n_TTF_OpenFontIndex\n_TTF_OpenFontIndexRW\n_TTF_OpenFontRW\n_TTF_Quit\n_TTF_RenderGlyph_Blended\n_TTF_RenderGlyph_Shaded\n_TTF_RenderGlyph_Solid\n_TTF_RenderText_Blended\n_TTF_RenderText_Shaded\n_TTF_RenderText_Solid\n_TTF_RenderUNICODE_Blended\n_TTF_RenderUNICODE_Shaded\n_TTF_RenderUNICODE_Solid\n_TTF_RenderUTF8_Blended\n_TTF_RenderUTF8_Shaded\n_TTF_RenderUTF8_Solid\n_TTF_SetFontHinting\n_TTF_SetFontKerning\n_TTF_SetFontOutline\n_TTF_SetFontStyle\n_TTF_SetFontScriptName\n_TTF_SetFontDirection\n_TTF_SizeText\n_TTF_SizeUNICODE\n_TTF_SizeUTF8\n_TTF_WasInit\n_TTF_GetFreeTypeVersion\n_TTF_GetHarfBuzzVersion\n_STBIMG_Load\n_STBIMG_Load_RW\n_STBIMG_LoadFromMemory\n_STBIMG_LoadTexture\n_STBIMG_LoadTexture_RW\n_STBIMG_LoadTextureFromMemory\n_STBIMG_CreateSurface\n_STBIMG_CreateTexture\n_STBIMG_Load_RW_noSeek\n_stbi_image_free\n_stbi_load_gif_from_memory\n_stbi_set_flip_vertically_on_load\n_drmp3_init_file\n_drmp3_init_memory\n_drmp3_uninit\n_drmp3_read_pcm_frames_f32\n_drmp3_seek_to_pcm_frame\n_drmp3_get_pcm_frame_count\n_drmp3_open_memory_and_read_f32\n_drmp3_open_file_and_read_f32\n_drmp3_free\n_drmp3dec_f32_to_s16\n_GFX_bezierColor\n_GFX_filledPolyBezierColor\n_GFX_aaFilledEllipseColor\n_GFX_aaFilledPolygonColor\n_GFX_aaFilledPieColor\n_GFX_aaArcColor\n_GFX_aaBezierColor\n_GFX_aaFilledPolyBezierColor\n_GFX_EvaluateBezier\n_GFX_RotoZoomSurface\n_b2NewWorld\n_b2CreateBody\n_b2DestroyBody\n_b2CircleShape\n_b2PolygonShape\n_b2ChainShape\n_b2CreateChain\n_b2CreateLoop\n_b2SetNextVertex\n_b2SetPrevVertex\n_b2SetAsBox\n_b2SetAsOrientedBox\n_b2SetFilterData\n_b2SetSensor\n_b2CreateFixtureFromDef\n_b2CreateFixtureFromShape\n_b2GetBody\n_b2GetShape\n_b2DestroyFixture\n_b2WorldStep\n_b2GetTransform\n_b2SetPolygon\n_b2SetTransform\n_b2SetActive\n_b2SetAwake\n_b2SetSleepingAllowed\n_b2SetBullet\n_b2SetFixedRotation\n_b2IsAwake\n_b2GetUserDataB\n_b2GetUserDataF\n_b2GetUserDataJ\n_b2SetUserDataB\n_b2SetUserDataF\n_b2SetUserDataJ\n_b2SetAngularVelocity\n_b2SetLinearVelocity\n_b2ApplyForce\n_b2ApplyLinearImpulse\n_b2ApplyTorque\n_b2CreateJoint\n_b2DestroyJoint\n_b2DistanceJointInit\n_b2FrictionJointInit\n_b2PrismaticJointInit\n_b2PulleyJointInit\n_b2RevoluteJointInit\n_b2WeldJointInit\n_b2WheelJointInit\n_b2EnableMotorP\n_b2EnableMotorR\n_b2EnableMotorW\n_b2SetMaxMotorForceP\n_b2SetMaxMotorTorqueR\n_b2SetMaxMotorTorqueW\n_b2SetMotorSpeedP\n_b2SetMotorSpeedR\n_b2SetMotorSpeedW\n_b2SetTarget\n_b2GetBodyA\n_b2GetBodyB\n_b2GetContactListW\n_b2GetContactListB\n_b2GetNextContact\n_b2IsTouching\n_b2GetFixtureA\n_b2GetFixtureB\n_b2GetChildIndexA\n_b2GetChildIndexB\n_b2GetBodyList\n_b2GetNextBody\n_b2SetGravity\n_b2DistanceJointGetAnchorA\n_b2DistanceJointGetAnchorB\n_b2PulleyJointGetAnchorA\n_b2PulleyJointGetAnchorB\n_b2RopeJointGetAnchorA\n_b2RopeJointGetAnchorB\n_b2GetLinearVelocity\n_b2GetAngularVelocity\n_b2GetMass\n_b2DebugInit\n_b2DebugMatrix\n_b2DrawDebugData\n_SDL_malloc\n_SDL_memset\n_SDL_memcpy\n_SDL_memcmp\n_SDL_free\n_getsockname\n_szNotice\n"
  },
  {
    "path": "bin/ios/help.txt",
    "content": "﻿•    BBC BASIC is the programming language originally specified and adopted by the British Broadcasting Corporation for its groundbreaking Computer Literacy Project of the early 1980s.\n\nBBC BASIC for SDL 2.0 is an advanced cross-platform implementation which will run on Windows®, MacOS®, Linux® (x86), Raspberry Pi OS™, Android™, iOS® and in a browser.  The full help manual may be found <here>.\n\nThe Android, iOS and in-browser editions have a simplified user interface.  To run a program, navigate to the appropriate folder (games, general, graphics, physics, sounds or tools) and tap/click on the program's name.\n\nTo exit a program and return to the main menu, tap on the Back [<] button (Android) or press the Escape key.  In iOS there is a soft [<] button; it may not always be displayed but tapping in the top-left corner should still work.\n\nTo create a new program, first navigate to the @usr$ folder then long-press or right-click below the list of files and select New file from the context menu.  Alternatively create a new folder under @usr$ and put your program there.\n\nTo edit a program, long-press or right-click on the program's name and select Edit from the context menu.  To exit the editor tap on the [<] button or press the Escape key. You cannot edit the supplied example programs.\n\nIn the editor a long-press or right-click opens a menu of commands. A long press and drag selects a block of code; a horizontal drag selects part of a line, a vertical drag selects entire lines.  Tap on a selected region for options.\n\nIn Android and iOS the contents of the @usr$ folder may be accessed from a desktop computer using a USB connection, or from the Files app in iOS.\n\nIt is inevitable that from time to time BBC BASIC will crash (for example abort with an untrapped error), especially if you are testing and debugging your own programs. If this happens it will not damage your device or other apps, but it will be necessary to close BBC BASIC fully and open it again.\n\nBBC BASIC for SDL 2.0 is the Copyright © 2026 of R.T.Russell.  The program and other materials are provided 'as is' and without any guarantee as to their quality or suitability.  Although they are thought to be free from serious bugs, and it is highly unlikely that they could do any harm to other software or systems, there is NO warranty that they will not and their use is at your own risk. \n\nThe supplied example programs and libraries remain the Copyright © 2001-2026 of R.T.Russell and others, but you may incorporate them in whole or in part within your own programs so long as any copyright notice is retained.\n"
  },
  {
    "path": "bin/linux/install32.txt",
    "content": "Installing SDL 2.0 on Linux systems:\n\n32-bit Debian / Mint / Ubuntu:\n\n sudo apt-get install libsdl2-2.0-0\n sudo apt-get install libsdl2-ttf-2.0-0\n sudo apt-get install libsdl2-net-2.0-0\n\n64-bit Debian / Mint / Ubuntu:\n\n sudo dpkg --add-architecture i386\n sudo apt-get update\n sudo apt-get dist-upgrade\n sudo apt-get install libglapi-mesa:i386\n sudo apt-get install libegl1-mesa:i386\n sudo apt-get install libgl1-mesa-glx:i386\n sudo apt-get install libudev1:i386\n sudo apt-get install libsdl2-2.0-0:i386\n sudo apt-get install libsdl2-ttf-2.0-0:i386\n sudo apt-get install libsdl2-net-2.0-0:i386\n\nTo start BBC BASIC:\n\n chmod +x bbcsdl\n ./bbcsdl\n\nTo create a desktop shortcut:\n\n chmod +x mkicon.sh\n ./mkicon.sh\n\nIf you receive an error message related to dbus_message_new_method_call\nstart BBC BASIC using:\n\n env IBUS_ADDRESS=0 ./bbcsdl\n"
  },
  {
    "path": "bin/linux/install64.txt",
    "content": "Installing SDL 2.0 on Linux systems:\n\n64-bit Debian / Mint / Ubuntu:\n\n sudo apt-get install libsdl2-2.0-0\n sudo apt-get install libsdl2-ttf-2.0-0\n sudo apt-get install libsdl2-net-2.0-0\n\n64-bit Fedora:\n\n sudo dnf install SDL2 SDL2_ttf SDL2_net\n\nTo start BBC BASIC:\n\n chmod +x bbcsdl\n ./bbcsdl\n\nTo create a desktop shortcut:\n\n chmod +x mkicon.sh\n ./mkicon.sh\n"
  },
  {
    "path": "bin/linux/makefile",
    "content": "# On Debian / Ubuntu / Mint download SDL 2.0 and NASM from the repository:\n# sudo apt-get install libsdl2-dev\n# sudo apt-get install libsdl2-ttf-dev\n# sudo apt-get install libsdl2-net-dev\n# sudo apt-get install libsdl2-2.0-0\n# sudo apt-get install libsdl2-ttf-2.0-0\n# sudo apt-get install libsdl2-net-2.0-0\n# sudo apt-get install nasm\n\nSDL_LIB = -L/usr/include -lSDL2 -lSDL2main -lSDL2_ttf -lSDL2_net -ldl -lm\nLBITS := $(shell getconf LONG_BIT)\n\nVPATH = ../../src ../../include\nCXX = gcc -Wall -pthread -I ../../include\n\nOBJ = bbmain.o bbexec.o bbeval.o bbcmos.o bbccli.o \\\n      bbcvdu.o bbcvtx.o flood.o bbdata.o bbcsdl.o \\\n      bbasmb.o SDL2_gfxPrimitives.o\n\nall: bbcsdl\n\nbbmain.o: bbmain.c BBC.h\n\t$(CXX) -c -O2 -freg-struct-return -ffast-math -fno-finite-math-only $< -o $@\n\nbbexec.o: bbexec.c BBC.h\n\t$(CXX) -c -O2 -freg-struct-return -ffast-math -fno-finite-math-only $< -o $@\n\nbbeval.o: bbeval.c BBC.h\n\t$(CXX) -Wno-array-bounds -c -O2 -freg-struct-return -ffast-math -fmath-errno -fno-finite-math-only $< -o $@\n\nbbasmb.o: bbasmb_x86_64.c BBC.h\n\t$(CXX) -c -Os $< -o $@\n\nbbcmos.o: bbcmos.c bbcsdl.h\n\t$(CXX) -Wno-unused-result -Wno-array-bounds -c -msse2 -O2 $< -o $@\n\nbbccli.o: bbccli.c bbcsdl.h\n\t$(CXX) -Wno-unused-result -c -Os $< -o $@\n\nbbcvdu.o: bbcvdu.c bbcsdl.h\n\t$(CXX) -c -Os $< -o $@\n\nbbcvtx.o: bbcvtx.c bbcsdl.h\n\t$(CXX) -c -O3 $< -o $@\n\nbbcsdl.o: bbcsdl.c bbcsdl.h version.h\n\t$(CXX) -Wno-unused-result -c -O2 $< -o $@\n\nSDL2_gfxPrimitives.o: SDL2_gfxPrimitives.c SDL2_gfxPrimitives.h\n\t$(CXX) -c -O2 $< -o $@\n\nSDL2_rotozoom.o: SDL2_rotozoom.c SDL2_rotozoom.h SDL2_gfxPrimitives.h SDL_stbimage.h stb_image.h dr_mp3.h\n\t$(CXX) -c -Os -fPIC $< -o $@\n\nflood.o: flood.c\n\t$(CXX) -c -O3 $< -o $@\n\nifeq ($(LBITS),64)\nbbdata.o: ../../src/bbdata_x86_64.nas\n\tnasm -f elf64 -s ../../src/bbdata_x86_64.nas -o bbdata.o\nelse\nbbdata.o: ../../src/bbdata_x86_32.nas\n\tnasm -f elf32 -s ../../src/bbdata_x86_32.nas -o bbdata.o\nendif\n\nlibstb.so: SDL2_rotozoom.o\n\t$(CXX) -shared -o libstb.so SDL2_rotozoom.o\n\nbbcsdl: $(OBJ) libstb.so\n\t$(CXX) $(OBJ) -lz -lstb -L . \\\n\t-o bbcsdl $(SDL_LIB) -Wl,-s -Wl,-R,'$$ORIGIN' -rdynamic\n\tcp bbcsdl ../../\n\tcp libstb.so ../../\n"
  },
  {
    "path": "bin/linux/mkicon.sh",
    "content": "#!/bin/bash\nMYDIR=\"$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" > /dev/null && pwd )\"\necho \"[Desktop Entry]\nName=BBC BASIC\nComment=BBC BASIC for Linux\nIcon=$MYDIR/bbc256x.png\nExec=\\\"$MYDIR/bbcsdl\\\"\nType=Application\nEncoding=UTF-8\nTerminal=false\nCategories=None;\" > \"$HOME/Desktop/bbcsdl.desktop\"\nchmod +x \"$HOME/Desktop/bbcsdl.desktop\"\n\n"
  },
  {
    "path": "bin/macos/makefile",
    "content": "# Download pre-compiled frameworks to /Library/Frameworks/\n# SDL2     from https://www.libsdl.org/download-2.0.php\n# SDL2_ttf from https://www.libsdl.org/projects/SDL_ttf/\n# SDL2_net from https://www.libsdl.org/projects/SDL_net/\n\nARCH := $(shell uname -m)\nSDL_LIB = -L/usr/include -ldl -lm\nMIN_MACOS_VERSION = 10.7\n\nVPATH = ../../src ../../include\nCXX = gcc -Wall -pthread -mmacosx-version-min=$(MIN_MACOS_VERSION) -F /Library/Frameworks -I ../../include\n\nifeq ($(ARCH),arm64)\n    OBJ_EXTRA = sort.o\nendif\n\nOBJ = bbmain.o bbexec.o bbeval.o bbcmos.o bbccli.o \\\n      bbcvdu.o bbcvtx.o flood.o bbdata.o bbcsdl.o \\\n      bbasmb.o bbctmp.o $(OBJ_EXTRA)\n\nall: bbcsdl\n\nclean:\n\trm -f *.o bbcsdl libstb.dylib\n\nbbmain.o: bbmain.c BBC.h\n\t$(CXX) -c -O2 -ffast-math -fno-finite-math-only $< -o $@\n\nbbexec.o: bbexec.c BBC.h\n\t$(CXX) -c -O2 -ffast-math -fno-finite-math-only $< -o $@\n\nbbeval.o: bbeval.c BBC.h\n\t$(CXX) -Wno-array-bounds -c -O2 -ffast-math -fmath-errno -fno-finite-math-only $< -o $@\n\nbbcmos.o: bbcmos.c bbcsdl.h\n\t$(CXX) -Wno-unused-result -Wno-array-bounds -c -msse2 -O2 $< -o $@\n\nbbccli.o: bbccli.c bbcsdl.h\n\t$(CXX) -Wno-unused-result -c -Os $< -o $@\n\nbbcvdu.o: bbcvdu.c bbcsdl.h\n\t$(CXX) -c -Os $< -o $@\n\nbbcvtx.o: bbcvtx.c bbcsdl.h\n\t$(CXX) -c -O3 $< -o $@\n\nbbcsdl.o: bbcsdl.c bbcsdl.h version.h\n\t$(CXX) -Wno-unused-result -c -O2 $< -o $@\n\nbbctmp.o: bbctmp.m\n\t$(CXX) -c -Os $< -o $@\n\nSDL2_gfxPrimitives.o: SDL2_gfxPrimitives.c SDL2_gfxPrimitives.h\n\t$(CXX) -c -O2 $< -o $@\n\nSDL2_rotozoom.o: SDL2_rotozoom.c SDL2_rotozoom.h SDL2_gfxPrimitives.h SDL_stbimage.h stb_image.h dr_mp3.h\n\t$(CXX) -c -Os -fPIC $< -o $@\n\nflood.o: flood.c\n\t$(CXX) -c -O3 $< -o $@\n\nsort.o: sort.c\n\t$(CXX) -c -O3 $< -o $@\n\nifeq ($(ARCH),arm64)\nbbasmb.o: bbasmb_arm_64.c BBC.h\n\t$(CXX) -c -Os $< -o $@\n\n    BBDATA_COMPILE = clang -mmacosx-version-min=$(MIN_MACOS_VERSION) -c\n    BBDATA_SRC = ../../src/bbdata_arm_64.s\nelse \nbbasmb.o: bbasmb_x86_64.c BBC.h\n\t$(CXX) -c -Os $< -o $@\n\n    BBDATA_COMPILE = nasm --prefix _ -f macho64 -s\n    BBDATA_SRC = ../../src/bbdata_x86_64.nas\nendif\n\nbbdata.o: $(BBDATA_SRC)\n\t$(BBDATA_COMPILE) $(BBDATA_SRC) -o bbdata.o\n\nlibstb.dylib: SDL2_rotozoom.o SDL2_gfxPrimitives.o\n\t$(CXX) -dynamiclib -F/Library/Frameworks -framework SDL2 \\\n\t-o libstb.dylib SDL2_rotozoom.o SDL2_gfxPrimitives.o\n\nbbcsdl: $(OBJ) libstb.dylib\n\t$(CXX) $(OBJ) -lz -lstb -F/Library/Frameworks -L . \\\n\t-framework SDL2 -framework SDL2_ttf -framework SDL2_net \\\n\t-framework Foundation -Wl,-headerpad_max_install_names \\\n\t-o bbcsdl $(SDL_LIB)\n\tinstall_name_tool -add_rpath /Library/Frameworks bbcsdl\n\tinstall_name_tool -change libstb.dylib \"@executable_path/libstb.dylib\" bbcsdl\n\tcp bbcsdl ../../\n\tcp libstb.dylib ../../\n"
  },
  {
    "path": "bin/raspi/install-rpi.txt",
    "content": "Update your Raspberry Pi (recommended):\n\n sudo apt-get update\n sudo apt-get dist-upgrade\n\nInstall SDL 2.0:\n\n sudo apt-get install libsdl2-2.0-0\n sudo apt-get install libsdl2-ttf-2.0-0\n sudo apt-get install libsdl2-net-2.0-0\n sudo apt-get install mesa-utils\n chmod +x bbcsdl\n chmod +x mkicon.sh\n\nEnable the 'experimental' GL Driver (Raspberry Pi 3 only):\n\n sudo raspi-config\n Advanced Options... GL Driver... GL (Full KMS)... Ok... Finish\n\nTo start BBC BASIC:\n\n ./bbcsdl\n\nTo create a desktop shortcut:\n\n ./mkicon.sh\n\nRTR 09-May-2021\n"
  },
  {
    "path": "bin/raspi/makefile",
    "content": "# Get SDL 2.0 from the Raspbian repository:\n# sudo apt-get install libsdl2-dev\n# sudo apt-get install libsdl2-ttf-dev\n# sudo apt-get install libsdl2-net-dev\n# sudo apt-get install libsdl2-2.0-0\n# sudo apt-get install libsdl2-ttf-2.0-0\n# sudo apt-get install libsdl2-net-2.0-0\n\nSDL_LIB = -L/usr/lib/ -lSDL2 -lSDL2main -lSDL2_ttf -lSDL2_net -ldl -lm\n\nVPATH = ../../src ../../include\nCXX = gcc -Wall -pthread -I ../../include\nCXXFLAGS = -march=armv7-a -mthumb -munaligned-access -mfloat-abi=hard -c\n\nOBJ = bbmain.o bbexec.o bbeval.o bbcmos.o bbccli.o \\\n      bbcvdu.o bbcvtx.o flood.o bbdata.o bbcsdl.o \\\n      bbasmb.o SDL2_gfxPrimitives.o\n\nall: bbcsdl\n\nbbmain.o: bbmain.c BBC.h\n\t$(CXX) -Wno-attributes $(CXXFLAGS) -O2 -freg-struct-return -ffast-math -fno-finite-math-only $< -o $@\n\nbbexec.o: bbexec.c BBC.h\n\t$(CXX) $(CXXFLAGS) -DARMHF -O2 -freg-struct-return -ffast-math -fno-finite-math-only $< -o $@\n\nbbeval.o: bbeval.c BBC.h\n\t$(CXX) -Wno-array-bounds $(CXXFLAGS) -O2 -freg-struct-return -ffast-math -fmath-errno -fno-finite-math-only $< -o $@\n\nbbasmb.o: bbasmb_arm_32.c BBC.h\n\t$(CXX) $(CXXFLAGS) -Os $< -o $@\n\nbbcmos.o: bbcmos.c bbcsdl.h\n\t$(CXX) -Wno-unused-result -Wno-array-bounds $(CXXFLAGS) -mfpu=neon -O2 $< -o $@\n\nbbccli.o: bbccli.c bbcsdl.h\n\t$(CXX) -Wno-unused-result $(CXXFLAGS) -Os $< -o $@\n\nbbcvdu.o: bbcvdu.c bbcsdl.h\n\t$(CXX) $(CXXFLAGS) -DARMHF -Os $< -o $@\n\nbbcvtx.o: bbcvtx.c bbcsdl.h\n\t$(CXX) $(CXXFLAGS) -O3 $< -o $@\n\nbbcsdl.o: bbcsdl.c bbcsdl.h version.h\n\t$(CXX) -Wno-unused-result $(CXXFLAGS) -O2 $< -o $@\n\nSDL2_gfxPrimitives.o: SDL2_gfxPrimitives.c SDL2_gfxPrimitives.h\n\t$(CXX) $(CXXFLAGS) -O2 $< -o $@\n\nSDL2_rotozoom.o: SDL2_rotozoom.c SDL2_rotozoom.h SDL2_gfxPrimitives.h SDL_stbimage.h stb_image.h dr_mp3.h\n\t$(CXX) $(CXXFLAGS) -Os -fPIC $< -o $@\n\nflood.o: flood.c\n\t$(CXX) $(CXXFLAGS) -O3 $< -o $@\n\nbbdata.o: ../../src/bbdata_arm_32.s\n\tas ../../src/bbdata_arm_32.s -o bbdata.o\n\nlibstb.so: SDL2_rotozoom.o\n\t$(CXX) -shared -o libstb.so SDL2_rotozoom.o\n\nbbcsdl: $(OBJ) libstb.so\n\t$(CXX) $(OBJ) -lz -lstb -L . \\\n\t$(SDL_LIB) -o bbcsdl -Wl,-s -Wl,-R,'$$ORIGIN' -rdynamic\n\tcp bbcsdl ../../\n\tcp libstb.so ../../\n"
  },
  {
    "path": "bin/raspi/mkicon.sh",
    "content": "#!/bin/bash\nMYDIR=\"$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" > /dev/null && pwd )\"\necho \"[Desktop Entry]\nName=BBC BASIC\nComment=BBC BASIC for Raspberry Pi\nIcon=$MYDIR/bbc256x.png\nExec=\\\"$MYDIR/bbcsdl\\\"\nType=Application\nEncoding=UTF-8\nTerminal=false\nCategories=None;\" > \"$HOME/Desktop/bbcsdl.desktop\"\nchmod +x \"$HOME/Desktop/bbcsdl.desktop\"\n"
  },
  {
    "path": "bin/rpi64/install-rpi.txt",
    "content": "Update your Raspberry Pi (recommended):\n\n sudo apt-get update\n sudo apt-get dist-upgrade\n\nInstall SDL 2.0:\n\n sudo apt-get install libsdl2-2.0-0\n sudo apt-get install libsdl2-ttf-2.0-0\n sudo apt-get install libsdl2-net-2.0-0\n sudo apt-get install mesa-utils\n chmod +x bbcsdl\n chmod +x mkicon.sh\n\nEnable the 'experimental' GL Driver (Raspberry Pi 3 only):\n\n sudo raspi-config\n Advanced Options... GL Driver... GL (Full KMS)... Ok... Finish\n\nTo start BBC BASIC:\n\n ./bbcsdl\n\nTo create a desktop shortcut:\n\n ./mkicon.sh\n\nRTR 09-May-2021\n"
  },
  {
    "path": "bin/rpi64/makefile",
    "content": "# Get SDL 2.0 from the Raspbian repository:\n# sudo apt-get install libsdl2-dev\n# sudo apt-get install libsdl2-ttf-dev\n# sudo apt-get install libsdl2-net-dev\n# sudo apt-get install libsdl2-2.0-0\n# sudo apt-get install libsdl2-ttf-2.0-0\n# sudo apt-get install libsdl2-net-2.0-0\n\nSDL_LIB = -L/usr/lib/ -lSDL2 -lSDL2main -lSDL2_ttf -lSDL2_net -ldl -lm\n\nVPATH = ../../src ../../include\nCXX = gcc -Wall -pthread -I ../../include\nCXXFLAGS = -c\n\nOBJ = bbmain.o bbexec.o bbeval.o bbcmos.o bbccli.o \\\n      bbcvdu.o bbcvtx.o flood.o bbdata.o bbcsdl.o \\\n      bbasmb.o SDL2_gfxPrimitives.o sort.o\n\nall: bbcsdl\n\nbbmain.o: bbmain.c BBC.h\n\t$(CXX) -Wno-attributes $(CXXFLAGS) -O2 -freg-struct-return -ffast-math -fno-finite-math-only $< -o $@\n\nbbexec.o: bbexec.c BBC.h\n\t$(CXX) $(CXXFLAGS) -O2 -freg-struct-return -ffast-math -fno-finite-math-only $< -o $@\n\nbbeval.o: bbeval.c BBC.h\n\t$(CXX) -Wno-array-bounds $(CXXFLAGS) -O2 -freg-struct-return -ffast-math -fmath-errno -fno-finite-math-only $< -o $@\n\nbbasmb.o: bbasmb_arm_64.c BBC.h\n\t$(CXX) $(CXXFLAGS) -Os $< -o $@\n\nbbcmos.o: bbcmos.c bbcsdl.h\n\t$(CXX) -Wno-unused-result -Wno-array-bounds $(CXXFLAGS) -O2 $< -o $@\n\nbbccli.o: bbccli.c bbcsdl.h\n\t$(CXX) -Wno-unused-result $(CXXFLAGS) -Os $< -o $@\n\nbbcvdu.o: bbcvdu.c bbcsdl.h\n\t$(CXX) $(CXXFLAGS) -Os $< -o $@\n\nbbcvtx.o: bbcvtx.c bbcsdl.h\n\t$(CXX) $(CXXFLAGS) -O3 $< -o $@\n\nbbcsdl.o: bbcsdl.c bbcsdl.h version.h\n\t$(CXX) -Wno-unused-result $(CXXFLAGS) -O2 $< -o $@\n\nSDL2_gfxPrimitives.o: SDL2_gfxPrimitives.c SDL2_gfxPrimitives.h\n\t$(CXX) $(CXXFLAGS) -O2 $< -o $@\n\nSDL2_rotozoom.o: SDL2_rotozoom.c SDL2_rotozoom.h SDL2_gfxPrimitives.h SDL_stbimage.h stb_image.h dr_mp3.h\n\t$(CXX) $(CXXFLAGS) -Os -fPIC $< -o $@\n\nflood.o: flood.c\n\t$(CXX) $(CXXFLAGS) -O3 $< -o $@\n\nsort.o: sort.c\n\t$(CXX) $(CXXFLAGS) -O3 $< -o $@\n\nbbdata.o: ../../src/bbdata_arm_64.s\n\tsed 's/_\\([a-z]*\\)/\\1/g' <../../../BBCSDL/src/bbdata_arm_64.s >bbdata.s\n\tas bbdata.s -o bbdata.o\n\nlibstb.so: SDL2_rotozoom.o\n\t$(CXX) -shared -o libstb.so SDL2_rotozoom.o\n\nbbcsdl: $(OBJ) libstb.so\n\t$(CXX) $(OBJ) -lz -lstb -L . \\\n\t$(SDL_LIB) -o bbcsdl -Wl,-s -Wl,-R,'$$ORIGIN' -rdynamic\n\tcp bbcsdl ../../\n\tcp libstb.so ../../\n"
  },
  {
    "path": "bin/wasm/BBC.h",
    "content": "/******************************************************************\\\n*       BBC BASIC for SDL 2.0 (Emscripten / Web Assembly)          *\n*       Copyright (c) R. T. Russell, 2000-2022                     *\n*                                                                  *\n*       BBC.h constant and variable declarations                   *\n*       Version 1.28a, 23-Jan-2022                                 *\n\\******************************************************************/\n\n// Constants:\n#define STACK_NEEDED 512\n#define ACCSLEN 65536 // Must be the same in bbcsdl.h\n\n// Sentinels:\n#define CALCHK\t0xC3414C43\n#define DIMCHK\t0xC4494D43\n#define FNCHK\t0xC64E4348\n#define FORCHK\t0xC64F5243\n#define GOSCHK\t0xC74F5343\n#define LDCHK\t0xCC444348\n#define LOCCHK\t0xCC4F4343\n#define ONCHK\t0xCF4E4348\n#define PROCHK\t0xD0524F43\n#define REPCHK\t0xD2455043\n#define RETCHK\t0xD2455443\n#define WHICHK\t0xD7484943\n\n// Tokens:\n#define TAND\t-128\n#define TDIV\t-127\n#define TEOR\t-126\n#define TMOD\t-125\n#define TOR\t-124\n#define TERROR\t-123\n#define TLINE\t-122\n#define TOFF\t-121\n#define TSTEP\t-120\n#define TSPC\t-119\n#define TTAB\t-118\n#define TELSE\t-117\n#define TTHEN\t-116\n#define TLINO\t-115\n#define TOPENIN\t-114\n#define TPTRR\t-113\n\n#define TPAGER\t-112\n#define TTIMER\t-111\n#define TLOMEMR\t-110\n#define THIMEMR\t-109\n#define TABS\t-108\n#define TACS\t-107\n#define TADVAL\t-106\n#define TASC\t-105\n#define TASN\t-104\n#define TATN\t-103\n#define TBGET\t-102\n#define TCOS\t-101\n#define TCOUNT\t-100\n#define TDEG\t-99\n#define TERL\t-98\n#define TERR\t-97\n\n#define TEVAL\t-96\n#define TEXP\t-95\n#define TEXTR\t-94\n#define TFALSE\t-93\n#define TFN\t-92\n#define TGET\t-91\n#define TINKEY\t-90\n#define TINSTR\t-89\n#define TINT\t-88\n#define TLEN\t-87\n#define TLN\t-86\n#define TLOG\t-85\n#define TNOT\t-84\n#define TOPENUP\t-83\n#define TOPENOUT -82\n#define TPI\t-81\n\n#define TPOINT\t-80\n#define TPOS\t-79\n#define TRAD\t-78\n#define TRND\t-77\n#define TSGN\t-76\n#define TSIN\t-75\n#define TSQR\t-74\n#define TTAN\t-73\n#define TTO\t-72\n#define TTRUE\t-71\n#define TUSR\t-70\n#define TVAL\t-69\n#define TVPOS\t-68\n#define TCHR\t-67\n#define TGETS\t-66\n#define TINKEYS\t-65\n\n#define TLEFT\t-64\n#define TMID\t-63\n#define TRIGHT\t-62\n#define TSTR\t-61\n#define TSTRING\t-60\n#define TEOF\t-59\n#define TSUM\t-58\n#define TWHILE\t-57\n#define TCASE\t-56\n#define TWHEN\t-55\n#define TOF\t-54\n#define TENDCASE -53\n#define TOTHERWISE -52\n#define TENDIF\t-51\n#define TENDWHILE -50\n#define TPTRL\t-49\n\n#define TPAGEL\t-48\n#define TTIMEL\t-47\n#define TLOMEML\t-46\n#define THIMEML\t-45\n#define TSOUND\t-44\n#define TBPUT\t-43\n#define TCALL\t-42\n#define TCHAIN\t-41\n#define TCLEAR\t-40\n#define TCLOSE\t-39\n#define TCLG\t-38\n#define TCLS\t-37\n#define TDATA\t-36\n#define TDEF\t-35\n#define TDIM\t-34\n#define TDRAW\t-33\n\n#define TEND\t-32\n#define TENDPROC -31\n#define TENVEL\t-30\n#define TFOR\t-29\n#define TGOSUB\t-28\n#define TGOTO\t-27\n#define TGCOL\t-26\n#define TIF\t-25\n#define TINPUT\t-24\n#define TLET\t-23\n#define TLOCAL\t-22\n#define TMODE\t-21\n#define TMOVE\t-20\n#define TNEXT\t-19\n#define TON\t-18\n#define TVDU\t-17\n\n#define TPLOT\t-16\n#define TPRINT\t-15\n#define TPROC\t-14\n#define TREAD\t-13\n#define TREM\t-12\n#define TREPEAT\t-11\n#define TREPORT\t-10\n#define TRESTOR\t-9\n#define TRETURN\t-8\n#define TRUN\t-7\n#define TSTOP\t-6\n#define TCOLOUR\t-5\n#define TTRACE\t-4\n#define TUNTIL\t-3\n#define TWIDTH\t-2\n#define TOSCLI\t-1\n\n#define TCIRCLE\t1\n#define TELLIPSE 2\n#define TFILL\t3\n#define TMOUSE\t4\n#define TORIGIN\t5\n#define TQUIT\t6\n#define TRECT\t7\n#define TSWAP\t8\n#define TSYS\t9\n#define TTINT\t10\n#define TWAIT\t11\n#define TINSTALL 12\n#define TPRIVATE 14\n#define TBY\t15\n#define TEXIT\t16\n\n#define FUNTOK\tTLINO // first function token\n#define TOKLO\tTPTRR\n#define TOKHI\tTHIMEMR\n#define OFFSIT\tTPTRL-TPTRR\n\n// Non-token statements:\n// * star command\n// = return from function\n// ( label\n// : separator\n// [ assembler\n\n// Bit names:\n#define BIT0\t0x01\n#define BIT1\t0x02\n#define BIT2\t0x04\n#define BIT3\t0x08\n#define BIT4\t0x10\n#define BIT5\t0x20\n#define BIT6\t0x40\n#define BIT7\t0x80\n\n// Flag bits:\n#define ESCFLG\tBIT7\t// ESCape key pressed \n#define ESCDIS\tBIT6\t// ESCape key disabled (*ESC OFF)\n#define ALERT\tBIT5\t// Pending event interrupt\n#define FLASH\tBIT4\t// MODE 7 flash update needed\n#define PHASE\tBIT3    // MODE 7 flash phase\n#define PAUSE\tBIT2\t// In debug paused state\n#define SSTEP\tBIT1\t// Single-step requested\n#define KILL\tBIT0\t// Program wants to terminate\n\n// Special 32-bit 'pointer' type for BASIC's heap:\n#define STRIDE sizeof(void *) / sizeof(heapptr)\ntypedef unsigned int heapptr ;\n\n// Structures and unions:\ntypedef struct tagPARM\n{\n\tsize_t i[16] ;\n\tdouble f[8] ;\n} PARM, *LPPARM ;\n\n// A variant holds an 80-bit long double, a 64-bit long long or a string descriptor.\n// n.b. GCC pads a long double to 16 bytes (128 bits) for alignment reasons but only\n// the least-significant 80-bits need to be stored on the heap, in files etc.\n// When a long double is 64-bits rather than 80-bits (e.g. ARM) it will be necessary\n// to force the type word (.i.t or .s.t member) to a value other than 0 or -1. \ntypedef union __attribute__ ((packed)) __attribute__ ((aligned (4))) tagVAR\n{\n#if defined(__arm__) || defined(__aarch64__) || defined(__EMSCRIPTEN__)\n\tdouble f ;\n#else\n        long double f ;\n#endif\n        struct\n        {\n          long long n ;\n          short t ; // = 0\n        } i ;\n        struct\n        {\n          heapptr p ; // Assumed to be 32 bits\n          unsigned int l ; // Must be unsigned for overflow tests in 'math'\n          short t ; // = -1\n        } s ;\n\tstruct\n\t{\n\t  double d ;\n\t  short t ; // unused (loadn/storen only)\n\t} d ;\n} VAR, *LPVAR ; \n\n// String descriptor:\ntypedef struct __attribute__ ((packed)) __attribute__ ((aligned (4))) tagSTR\n{\n\theapptr p ; // Assumed to be 32 bits\n\tint l ;\n} STR, *LPSTR ;\n\ntypedef struct tagRND\n{\n\tunsigned int l ;\n\tunsigned char h ;\n} RND, *LPRND ;\n\n// Structure for linked list of string free space\nstruct node\n{\n\tstruct node *next ;\n\tchar *data ;\n} ;\ntypedef struct node node ;\n\n// Base address for 32-bit offsets into heap:\n#if defined(__x86_64__) || defined(__aarch64__)\n#define zero userRAM\n#define TMASK 31\n#define STYPE 16\n#define ATYPE 40\n#else\n#define zero (void*) 0\n#define TMASK 15\n#define STYPE 24\n#define ATYPE 4\n#endif\n\n// Register globals:\n#ifdef __llvm__\nextern signed char *esi ;\t\t// Program pointer\nextern heapptr *esp ;\t\t\t// Stack pointer\n#else\n#ifdef __i386__\nregister signed char *esi asm (\"esi\") ;\t// Program pointer\nregister heapptr *esp asm (\"edi\") ;\t// Stack pointer\n#endif\n#ifdef __arm__\nregister signed char *esi asm (\"r10\") ;\t// Program pointer\nregister heapptr *esp asm (\"r11\") ;\t// Stack pointer\n#endif\n#ifdef __x86_64__\nregister signed char *esi asm (\"r12\") ;\t// Program pointer\nregister heapptr *esp asm (\"r13\") ;\t// Stack pointer\n#endif\n#ifdef __aarch64__\nregister signed char *esi asm (\"r10\") ;\t// Program pointer\nregister heapptr *esp asm (\"r11\") ;\t// Stack pointer\n#endif\n#endif\n\n// Data locations (defined in bbcdata):\nextern int stavar[] ;\t\t// Static integer variables\n#define dynvar ((heapptr *)((char*)stavar + 108))\t// Linked-list pointers\n#define fnptr  ((heapptr *)((char*)stavar + 324))\t// Pointer to user FuNctions\n#define proptr ((heapptr *)((char*)stavar + 328))\t// Pointer to user PROCedures\n#define accs   (*(char **)((char*)stavar + 332))\t// String accumulator\n#define buff   (*(char **)((char*)stavar + 336))\t// Temporary line buffer\n#define vpage  (*(heapptr *)((char*)stavar + 340))\t// Value of PAGE\n#define tracen (*(unsigned short *)((char*)stavar + 344))\t// TRACE maximum line number\n#define lomem  (*(heapptr *)((char*)stavar + 348))\t// Pointer to base of heap\n#define pfree  (*(heapptr *)((char*)stavar + 352))\t// Pointer to free space\n#define himem  (*(heapptr *)((char*)stavar + 356))\t// Pointer to top of stack\n#define libase (*(heapptr *)((char*)stavar + 360))\t// Base of libraries \n#define errtxt (*(const char **)((char*)stavar + 364))\t// Most recent error message\n#define onersp (*(heapptr **)((char*)stavar + 368))\t// ON ERROR LOCAL stack pointer\n#define errtrp (*(heapptr *)((char*)stavar + 372))\t// Pointer to ON ERROR handler\n#define datptr (*(heapptr *)((char*)stavar + 376))\t// DATA pointer\n#define vcount (*(unsigned int *)((char*)stavar + 380))\t// Character count since newline\n#define curlin (*(heapptr *)((char*)stavar + 384))\t// Pointer to current line\n#define timtrp (*(heapptr *)((char*)stavar + 388))\t// Pointer to ON TIME handler\n#define clotrp (*(heapptr *)((char*)stavar + 392))\t// Pointer to ON CLOSE handler\n#define siztrp (*(heapptr *)((char*)stavar + 396))\t// Pointer to ON MOVE handler\n#define systrp (*(heapptr *)((char*)stavar + 400))\t// Pointer to ON SYS handler\n#define moutrp (*(heapptr *)((char*)stavar + 404))\t// Pointer to ON MOUSE handler\n#define errlin (*(heapptr *)((char*)stavar + 408))\t// Pointer to error line\n#define prand  (*(LPRND)((char*)stavar + 412))\t\t// Pseudo-random number\n#define vwidth (*(unsigned char *)((char*)stavar + 417))// Width for auto-newline\n#define errnum (*(unsigned char *)((char*)stavar + 418))// Error code number\n#define liston (*(unsigned char *)((char*)stavar + 419))// *FLOAT/*HEX/*LOWERCASE/OPT\n#define lstopt (*(char *)((char*)stavar + 444))\t\t// LISTO value\n\nextern node *flist[] ;\t\t// String free-lists\nextern STR tmps ;\t\t// Temporary string descriptor\nextern unsigned char fvtab[] ;\t// Table of 'fast' variable types\n\nextern int vduvar[] ;\t\t// VDU variables\n#define modeno (*(char *)((char*)vduvar + 72))\t\t// MODE number\n#define evtqw (*(unsigned char *)((char*)vduvar + 205))\t// Event queue write pointer\n#define evtqr (*(unsigned char *)((char*)vduvar + 206))\t// Event queue read pointer\n\nextern int sysvar[] ;\t\t// @ variables linked list\n#define memhdc (*(size_t *)((char*)sysvar + 12))\t// SDL Renderer\n#define flags  (*(unsigned char *)((char*)sysvar + 183))// BASIC's Boolean flags byte\n#define link00 (*(int *)((char*)sysvar + 490))\t\t// Terminating link in @ list\n#define diradr (*(heapptr *)((char*)sysvar + 228))\n#define dirlen (*(int *)((char*)sysvar + 232))\n#define libadr (*(heapptr *)((char*)sysvar + 248))\n#define liblen (*(int *)((char*)sysvar + 252))\n#define cmdadr (*(heapptr *)((char*)sysvar + 268))\n#define cmdlen (*(int *)((char*)sysvar + 272))\n#define usradr (*(heapptr *)((char*)sysvar + 288))\n#define usrlen (*(int *)((char*)sysvar + 292))\n#define tmpadr (*(heapptr *)((char*)sysvar + 308))\n#define tmplen (*(int *)((char*)sysvar + 312))\n\n// Defined in bbcsdl.c:\nextern char *szCmdLine ;\t// @cmd$\nextern char *szLoadDir ;\t// @dir$\nextern char *szLibrary ;\t// @lib$\nextern char *szUserDir ;\t// @usr$\nextern char *szTempDir ;\t// @tmp$\nextern const char szNotice [] ;\nextern void *progRAM ;\nextern void *userRAM ;\n\n// Alignment helper types:\ntypedef __attribute__((aligned(1))) int unaligned_int;\ntypedef __attribute__((aligned(1))) intptr_t unaligned_intptr_t;\ntypedef __attribute__((aligned(1))) unsigned int unaligned_uint;\ntypedef __attribute__((aligned(1))) unsigned short unaligned_ushort;\ntypedef __attribute__((aligned(1))) void* unaligned_void_ptr;\ntypedef __attribute__((aligned(1))) char* unaligned_char_ptr;\ntypedef __attribute__((aligned(1))) VAR unaligned_VAR;\n\n// Helper macros to fix alignment problem:\n#define ILOAD(p)    *((unaligned_int*)(p))\n#define ISTORE(p,i) *((unaligned_int*)(p)) = i\n#define TLOAD(p)    *((unaligned_intptr_t*)(p))\n#define TSTORE(p,i) *((unaligned_intptr_t*)(p)) = i \n#define ULOAD(p)    *((unaligned_uint*)(p))\n#define USTORE(p,i) *((unaligned_uint*)(p)) = i \n#define SLOAD(p)    *((unaligned_ushort*)(p))\n#define SSTORE(p,i) *((unaligned_ushort*)(p)) = i \n#define VLOAD(p)    *((unaligned_void_ptr*)(p))\n#define VSTORE(p,i) *((unaligned_void_ptr*)(p)) = i \n#define CLOAD(p)    *((unaligned_char_ptr*)(p))\n#define CSTORE(p,i) *((unaligned_char_ptr*)(p)) = i \n#define NLOAD(p)    *((unaligned_VAR*)(p))\n#define NSTORE(p,i) *((unaligned_VAR*)(p)) = i\n"
  },
  {
    "path": "bin/wasm/bbcsdl.h",
    "content": "/******************************************************************\\\n*       BBC BASIC for SDL 2.0 (Emscripten / Web Assembly)          *\n*       Copyright (c) R. T. Russell, 2000-2023                     *\n*                                                                  *\n*       BBCSDL.H constant definitions                              *\n*       Version 1.37a 28-Aug-2023                                  *\n\\******************************************************************/\n\n// System constants :\n\n#define\tACCSLEN 65536\t\t// Must be the same in BBC.h\n#define PAGE_OFFSET ACCSLEN + 0x21C00     // Offset of PAGE from memory base\n#define XSCREEN        2048     // Width of screen output texture\n#define YSCREEN        2048     // Height of screen output texture\n#define MAX_PORTS\t4\t// Maximum number of port channels\n#define MAX_FILES\t8\t// Maximum number of file channels\n#define MAX_LINE_LEN   2304     // At least 252*RECTANGLE + 4\n#define MARGINL        1000     // Default left margin (mm * 100)\n#define MARGINR        1000     // Default right margin (mm * 100)\n#define MARGINT        1000     // Default top margin (mm * 100)\n#define MARGINB        1000     // Default bottom margin (mm * 100)\n#define\tSCREEN_WIDTH\t640\t// Initial width\n#define\tSCREEN_HEIGHT\t500\t// Initial height\n#define\tAUDIOLEN\t441 * 4\t// Length of audio block in bytes\n#define\tSOUNDQE         4       // Number of bytes per sound entry\n#define SOUNDQL         5*SOUNDQE // Number of bytes per channel\n#define MAX_EVENTS\t512\t// Maximum SDL events to queue\n#define MAX_TEMPO\t10\t// Maximum (slowest) *TEMPO setting\n\n// User-defined message IDs:\n\n#define\tWM_APP\t\t0x8000\n#define WMU_REALLOC     WM_APP+4  // must be the same in BBCEQUS.INC\n#define WMU_WAVEOPEN    WM_APP+5  // must be the same in BBCEQUS.INC\n#define WMU_WAVECLOSE   WM_APP+6  // must be the same in BBCEQUS.INC\n#define WMU_TIMER       WM_APP+26\n\n// Custom user-event IDs:\n\n#define EVT_VDU\t\t0x2000\t// Send a VDU command\n#define EVT_COPYKEY\t0x2001\t// Handle 'copy key' actions\n#define EVT_TINT\t0x2002\t// Get RGB pixel value\n#define EVT_DISPLAY\t0x2003\t// *DISPLAY command\n#define EVT_PIXELS\t0x2004\t// Read back pixels\n#define EVT_CARET\t0x2005\t// Get text caret coordinates\n#define EVT_FONT\t0x2006\t// Open a font\n#define EVT_CHAR\t0x2007\t// Get character at text x,y\n#define EVT_WIDTH\t0x2008\t// Get width of a string\n#define EVT_REFLAG\t0x2009\t// Update refresh flag\n#define EVT_SYSCALL\t0x200A\t// Call in GUI thread context\n#define EVT_QUIT\t0x200B\t// Terminate with exit code\n#define EVT_MOUSE\t0x200C\t// Get mouse position/buttons\n#define EVT_MOUSETO\t0x200D\t// Move mouse pointer\n#define EVT_OSK\t\t0x200E\t// En/disable On Screen Keyboard\n#define EVT_OSWORD\t0x200F  // OSWORD call\n#define EVT_TIMER\t0x2010\t// Set new timer period\n#define EVT_FSSYNC\t0x2011  // Sync filesystem (Emscripten)\n#define EVT_RUNJS\t0x2012  // Run Javascript (Emscripten)\n\n// Bit names:\n\n#define\tBIT0\t\t0x01\n#define\tBIT1\t\t0x02\n#define\tBIT2\t\t0x04\n#define\tBIT3\t\t0x08\n#define\tBIT4\t\t0x10\n#define\tBIT5\t\t0x20\n#define\tBIT6\t\t0x40\n#define\tBIT7\t\t0x80\n\n// Bits in [vflags]:\n\n#define\tIOFLAG\t\tBIT0\t// Insert/overtype\n#define\tEGAFLG\t\tBIT1\t// EGA-compatible modes (*EGA [ON])\n#define\tCGAFLG\t\tBIT2\t// CGA-compatible modes (*EGA OFF)\n#define\tPTFLAG\t\tBIT3\t// VDU 2 active\n#define\tHRGFLG\t\tBIT4\t// VDU 5 active\n#define\tVDUDIS\t\tBIT5\t// VDU 21 active\n#define\tUFONT\t\tBIT6\t// User font selected\n#define\tUTF8\t\tBIT7\t// UTF-8 mode selected\n\n// Bits in flags byte:\n\n#define ESCFLG          0x80\n#define ESCDIS          0x40\n#define ALERT           0x20\n#define FLASH           0x10\n#define PHASE           0x08    \n#define PAUSE           0x04\n#define SSTEP           0x02\n#define KILL            0x01\n\n// BASIC tokens:\n\n#define TOK_ELSE       -117\n#define TOK_THEN       -116\n#define TOK_LINENO     -115\n#define TOK_FN          -92\n#define TOK_WHILE       -57\n#define TOK_CASE        -56\n#define TOK_WHEN        -55\n#define TOK_ENDCASE     -53\n#define TOK_OTHERWISE   -52\n#define TOK_ENDIF       -51\n#define TOK_ENDWHILE    -50\n#define TOK_CALL        -42\n#define TOK_DATA        -36\n#define TOK_DEF         -35\n#define TOK_FOR         -29\n#define TOK_GOSUB       -28\n#define TOK_GOTO        -27\n#define TOK_IF          -25\n#define TOK_LOCAL       -22\n#define TOK_NEXT        -19\n#define TOK_ON          -18\n#define TOK_PROC        -14\n#define TOK_READ        -13\n#define TOK_REM         -12\n#define TOK_REPEAT      -11\n#define TOK_RUN          -7\n#define TOK_UNTIL        -3\n#define TOK_EXIT         16\n\n#define TOKLO          -113   // first token with left and right forms\n#define TOKHI          -109   // last token with left and right forms\n#define OFFSIT           64   // offset from 'right' to 'left' form\n\n// Special 32-bit 'pointer' type for BASIC's heap:\ntypedef unsigned int heapptr ;\n\n// Structures and unions:\ntypedef struct tagPARM\n{\n\tsize_t i[16] ;\n\tdouble f[8] ;\n} PARM, *LPPARM ;\n\ntypedef struct tagFCB\n{\n\tunsigned char p ; // pointer\n\tunsigned char o ; // offset  (0-256)\n\tunsigned char w ; // written (0-256)\n\tsigned char f ;   // bit0: offset<>0, bit7: written<>0\n} FCB, *LPFCB ;\n\ntypedef struct tagRND\n{\n\tunsigned int l ;\n\tunsigned char h ;\n} RND, *LPRND ;\n\n// Static variables:\n\nextern int stavar[] ;\t\t// Static integer variables\n#define accs (*(char **)((char*)stavar +  332))\t\t// String accumulator\n#define buff (*(char **)((char*)stavar + 336))\t\t// Temporary line buffer\n#define vcount (*(unsigned int *)((char*)stavar + 380))\t// Character count since newline\n#define curlin (*(heapptr *)((char*)stavar + 384))\n#define timtrp (*(heapptr *)((char*)stavar + 388))\n#define clotrp (*(heapptr *)((char*)stavar + 392))\n#define siztrp (*(heapptr *)((char*)stavar + 396))\n#define systrp (*(heapptr *)((char*)stavar + 400))\n#define moutrp (*(heapptr *)((char*)stavar + 404))\n#define prand  (*(LPRND)((char*)stavar + 412))\t\t// Pseudo-random number\n#define liston (*(unsigned char *)((char*)stavar + 419))// *FLOAT/*HEX/*LOWERCASE/OPT\n#define path   (*(char**)((char*)stavar + 420))\t\t// File path buffer\n#define keystr (*(char ***)((char*)stavar + 424))\t// Pointers to user *KEY strings\n#define keybdq (*(char **)((char*)stavar + 428))\t// Keyboard queue (indirect) \n#define eventq (*(int **)((char*)stavar + 432))\t\t// Event queue (indirect)\n#define keyptr (*(unsigned char **)((char*)stavar + 436))// Pointer to *KEY string\n#define usrchr (*(char **)((char*)stavar + 440))\t// Pointer to user-defined chars\n#define lstopt (*(char *)((char*)stavar + 444))\n#define sclflg (*(char *)((char*)stavar + 445))\n#define optval (*(unsigned char *)((char*)stavar + 446))// I/O redirection\n#define farray (*(unsigned char *)((char*)stavar + 447))// @hfile%() number of dimensions\n#define fasize (*(unsigned int *)((char*)stavar + 448))\t// @hfile%() number of elements\n#define filbuf ((void**)((char*)stavar + 452))\t\t// @hfile%(0)\n#define fcbtab ((FCB *)((char*) stavar + 504))\t\t// fcbtab[]\n#define spchan (*(SDL_RWops **)((char*)stavar + 536))\t// SPOOL channel\n#define exchan (*(SDL_RWops **)((char*)stavar + 540))\t// EXEC channel\n#define sacc   ((unsigned int *)((char*)stavar + 544))\t// Sound DDS accumulators\n#define smix   ((short *)((char*)stavar + 560))\t\t// Stereo mix for each channel\n#define datend ((char*)stavar + 576)\t\t\t// End of initialised variables\n\n// VDU variables allocated in bbdata_wasm32.c:\n\nextern int vduvar[] ;\t\t// VDU variables\n#define origx  (*(int *)((char*)vduvar + 0))\t \t// Graphics x-origin (BASIC units)\n#define origy  (*(int *)((char*)vduvar + 4))\t \t// Graphics y-origin (BASIC units)\n#define lastx  (*(int *)((char*)vduvar + 8))\t \t// Current x-coordinate (pixels)\n#define lasty  (*(int *)((char*)vduvar + 12))\t \t// Current y-coordinate (pixels)\n#define prevx  (*(int *)((char*)vduvar + 16))\t \t// Previous x-coordinate (pixels)\n#define prevy  (*(int *)((char*)vduvar + 20))\t \t// Previous y-coordinate (pixels)\n#define textwl (*(int *)((char*)vduvar + 24))\t \t// Text window left (pixels)\n#define textwr (*(int *)((char*)vduvar + 28))\t \t// Text window right (pixels)\n#define textwt (*(int *)((char*)vduvar + 32))\t \t// Text window top (pixels)\n#define textwb (*(int *)((char*)vduvar + 36))\t \t// Text window bottom (pixels)\n#define pixelx (*(int *)((char*)vduvar + 40))\t \t// Width of a graphics 'dot'\n#define pixely (*(int *)((char*)vduvar + 44))\t \t// Height of a graphics 'dot'\n#define textx  (*(int *)((char*)vduvar + 48))\t \t// Text caret x-position (pixels)\n#define texty  (*(int *)((char*)vduvar + 52))\t \t// Text caret y-position (pixels)\n#define hfont  (*(TTF_Font **)((char*)vduvar + 56))\t// Handle of current font\n#define hrect  (*(SDL_Rect **)((char*)vduvar + 60))\t// Pointer to clipping rect\n#define forgnd (*(short *)((char*)vduvar + 64))\t \t// Graphics foreground colour/action\n#define bakgnd (*(short *)((char*)vduvar + 66))\t\t// Graphics background colour/action\n#define cursa  (*(unsigned char *)((char*)vduvar + 68))\t// Start (top) line of caret\n#define cursb  (*(unsigned char *)((char*)vduvar + 69))\t// Finish (bottom) line of caret\n#define txtfor (*(char *)((char*)vduvar + 70))\t \t// Text foreground colour index\n#define txtbak (*(char *)((char*)vduvar + 71))\t \t// Text background colour index\n#define modeno (*(signed char *)((char*)vduvar + 72))\t// MODE number (can be -1)\n#define colmsk (*(char *)((char*)vduvar + 73))\t \t// Mask for maximum number of colours\n#define vflags (*(unsigned char *)((char*)vduvar + 74))\t// VDU drivers flags byte\n#define scroln (*(signed char*)((char*)vduvar + 75)) \t// Scroll counter in paged mode\n#define cursx  (*(unsigned char *)((char*)vduvar + 76))\t// Cursor (caret) width\n#define lthick (*(unsigned char *)((char*)vduvar + 77))\t// Line thickness\n#define cmcflg (*(char *)((char*)vduvar + 78))\t\t// Cursor movement control\n#define tweak  (*(signed char *)((char*)vduvar + 79))\t// Character spacing adjustment\n\n#define sndqw ((unsigned char *)((char*)vduvar + 80))\t// Sound queue write pointers\n#define sndqr ((unsigned char *)((char*)vduvar + 84))\t// Sound queue read pointers\n#define eenvel ((signed char *)((char*)vduvar + 88))\t// Sound envelope numbers\n#define escale ((unsigned char *)((char*)vduvar + 92)) \t// Envelope scalers\n#define epsect ((unsigned char *)((char*)vduvar + 96)) \t// Envelope pitch section\n#define easect ((unsigned char *)((char*)vduvar + 100))\t// Envelope amplitude section\n#define epitch ((unsigned char *)((char*)vduvar + 104))\t// Envelope pitch (frequency)\n#define ecount ((unsigned char *)((char*)vduvar + 108))\t// Envelope count\n#define soundq ((unsigned char *)((char*)vduvar + 112))\t// 4*SOUNDQL = 80\n#define vduq   ((unsigned char *)((char*)vduvar + 192))\t// VDU queue (different from asm version)\n#define queue  (*(unsigned char *)((char*)vduvar + 202))// VDU queue status\n#define kbdqw  (*(unsigned char *)((char*)vduvar + 203))// Keyboard queue write pointer\n#define kbdqr  (*(unsigned char *)((char*)vduvar + 204))// Keyboard queue read pointer\n#define evtqw  (*(unsigned char *)((char*)vduvar + 205))// Event queue write pointer\n#define evtqr  (*(unsigned char *)((char*)vduvar + 206))// Event queue read pointer\n#define keyexp (*(unsigned char *)((char*)vduvar + 207))// *KEY expansion counter\n#define sizex  (*(int *)((char*)vduvar + 208))\t \t// Total width of client area (pixels)\n#define sizey  (*(int *)((char*)vduvar + 212))\t \t// Total height of client area (pixels)\n#define charx  (*(int *)((char*)vduvar + 216))\t \t// Average character width (pixels)\n#define chary  (*(int *)((char*)vduvar + 220))\t \t// Average character height (pixels)\n#define prchx  (*(int *)((char*)vduvar + 224))\t \t// Average character width (printer)\n#define prchy  (*(int *)((char*)vduvar + 228))\t \t// Average character height (printer)\n#define timoff (*(int *)((char*)vduvar + 232))\t\t// Offset to add to TickCount\n#define envels (*(signed char **)((char*)vduvar + 236))\t// Pointer to ENVELOPEs (16 x 16)\n#define waves  (*(short **)((char*)vduvar + 240))\t// Pointer to SOUND waveforms\n#define elevel ((unsigned char*)((char*)vduvar+244))\t// Envelope level (amplitude)\n#define prntx  (*(int *)((char*)vduvar + 248))\t\t// Horizontal printing position\n#define prnty  (*(int *)((char*)vduvar + 252))\t\t// Vertical printing position\n\nextern unsigned char bbcfont[] ;\nextern unsigned short ttxtfont[] ;\nextern int lastick ;\t\t// To test for TIME wrapping\n\n// System variables:\n\nextern int sysvar[] ;\t\t// @ variables linked list\n#define memhdc (*(SDL_Renderer **)((char*)sysvar + 12))\t// @memhdc%\n#define wParam (*(int *)((char*)sysvar + 28))\t\t// @wparam%\n#define lParam (*(int *)((char*)sysvar + 44))\t\t// @lparam%\n#define hwndProg (*(SDL_Window **)((char*)sysvar + 60))\t// @hwnd%\n#define offsetx (*(int *)((char*)sysvar + 88))\t\t// @ox%\n#define offsety (*(int *)((char*)sysvar + 100))\t\t// @oy%\n#define iMsg   (*(int *)((char*)sysvar + 132))\t\t// @msg%\n#define tempo  (*(unsigned char *)((char*)sysvar + 180))// @flags%\n#define sysflg (*(char *)((char*)sysvar + 181))\t\t// *SYS flag\n#define reflag (*(char *)((char*)sysvar + 182))\t\t// *REFRESH flag\n#define flags  (*(unsigned char *)((char*)sysvar + 183))// BASIC's Boolean flags byte\n#define zoom   (*(unsigned int *)((char*)sysvar + 212))\t// @zoom%\n#define hwo    (*(SDL_AudioDeviceID *)((char*)sysvar + 328)) // @hwo%\n#define platform (*(unsigned int *)((char*)sysvar + 348)) // SDL version and OS platform\n#define chrmap (*(short **)((char*)sysvar + 364))\t\t// @chrmap%\n#define panx   (*(int *)((char*)sysvar + 380))\t\t// @panx%\n#define pany   (*(int *)((char*)sysvar + 396))\t\t// @pany%\n#define breakpt (*(heapptr *)((char*)sysvar + 448))\t// @brkpt%\n#define breakhi (*(heapptr *)((char*)sysvar + 464))\t// @brkhi%\n#define voices ((unsigned char *)((char*)sysvar + 508)) // Voice (waveform) for each channel\n\n// Variables declared in bbcsdl.c:\nextern SDL_Rect ClipRect ;\nextern int bChanged ;\nextern SDL_Texture *TTFcache[65536] ;\nextern unsigned int palette[256] ;\nextern size_t iResult ;\t\t// Result from user event\nextern int nUserEv ;\t\t// Number of pending user events\nextern int OSKtime ;\t\t// On-screen keyboard timeout\nextern SDL_sem *Sema4 ;\t\t// Semaphore for user event wait\nextern SDL_mutex *Mutex ;\t// Mutex to protect event queue\nextern void *userRAM ;\t\t// Base of user memory\nextern void *progRAM ;\t\t// Default LOMEM\nextern void *userTOP ;\t\t// Default HIMEM\nextern const char szVersion[] ;\t// Initial announcement\nextern const char szNotice[] ;\t// Copyright string\nextern int bChanged ;\t\t// Display refresh required\nextern SDL_Joystick *Joystick ;\t// Handle to joystick\nextern SDL_TimerID UserTimerID ;\nextern int bBackground ;\t// BBC BASIC in the background\nextern int useGPA ;\t\t// Use SDL_GL_GetProcAddress\n"
  },
  {
    "path": "bin/wasm/bbcsdl_shell.html",
    "content": "<!doctype html>\n<html lang=\"en-us\">\n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n    <title>Emscripten-Generated Code</title>\n    <style>\n      body {\n        font-family: arial;\n        margin: 0;\n        padding: none;\n      }\n\n      .emscripten { padding-right: 0; margin-left: auto; margin-right: auto; display: block; }\n      div.emscripten { text-align: center; }      \n      div.emscripten_border { border: 1px solid black; }\n      /* the canvas *must not* have any border or padding, or mouse coords will be wrong */\n      canvas.emscripten { border: 0px none; background-color: black; }\n\n      #emscripten_logo {\n        display: inline-block;\n        margin: 0;\n      }\n\n      .spinner {\n        height: 30px;\n        width: 30px;\n        margin: 0;\n        margin-top: 20px;\n        margin-left: 20px;\n        display: inline-block;\n        vertical-align: top;\n\n        -webkit-animation: rotation .8s linear infinite;\n        -moz-animation: rotation .8s linear infinite;\n        -o-animation: rotation .8s linear infinite;\n        animation: rotation 0.8s linear infinite;\n\n        border-left: 5px solid rgb(235, 235, 235);\n        border-right: 5px solid rgb(235, 235, 235);\n        border-bottom: 5px solid rgb(235, 235, 235);\n        border-top: 5px solid rgb(120, 120, 120);\n        \n        border-radius: 100%;\n        background-color: rgb(189, 215, 46);\n      }\n\n      @-webkit-keyframes rotation {\n        from {-webkit-transform: rotate(0deg);}\n        to {-webkit-transform: rotate(360deg);}\n      }\n      @-moz-keyframes rotation {\n        from {-moz-transform: rotate(0deg);}\n        to {-moz-transform: rotate(360deg);}\n      }\n      @-o-keyframes rotation {\n        from {-o-transform: rotate(0deg);}\n        to {-o-transform: rotate(360deg);}\n      }\n      @keyframes rotation {\n        from {transform: rotate(0deg);}\n        to {transform: rotate(360deg);}\n      }\n\n      #status {\n        display: inline-block;\n        vertical-align: top;\n        margin-top: 30px;\n        margin-left: 20px;\n        font-weight: bold;\n        color: rgb(120, 120, 120);\n      }\n\n      #progress {\n        height: 20px;\n        width: 300px;\n      }\n\n      #controls {\n        display: inline-block;\n        float: right;\n        vertical-align: top;\n        margin-top: 30px;\n        margin-right: 20px;\n      }\n\n      #output {\n        width: 100%;\n        height: 200px;\n        margin: 0 auto;\n        margin-top: 10px;\n        border-left: 0px;\n        border-right: 0px;\n        padding-left: 0px;\n        padding-right: 0px;\n        display: block;\n        background-color: black;\n        color: white;\n        font-family: 'Lucida Console', Monaco, monospace;\n        outline: none;\n      }\n    </style>\n  </head>\n  <body>\n    <a href=\"https://www.bbcbasic.co.uk/bbcsdl/\">\n<img src=\n\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAACACAIAAAAUME9dAAAAN3RFWHRTb2Z0d2FyZQBIYW5kbWFkZSBTb2Z0d2FyZSwgSW5jLiAtIEltYWdlIEFsY2hlbXkgdjEuMTEKyLAYAQAAEABJREFUeJzsnW1sHMd5x4cvos40ZdO0VFMwo5yKoyqoF0N23cQ5CTBrIIVJOgCDKKyQL0qKggrgD3cuzERB5YSuFaSICpSsbdhkhFoE/EEiFIAfLNIJJECCTdpI1DiRWZUWWfFiSxXtXJmzLVEnirzr7C653J19uX2ZfSP/vzjCcW/vmdmZ3fnvPDPzTHWpVCIAAAAA8JfqoDMAAAAArEcgwAAAAEAA+CrA165dm5ycrK6G6hNaCPPz88PDwy+//HLQeQEAABAA/mlhoVC4ePFibW2tbymGFqq+N27cOHPmTE1NTdB5AQAAEAw+CTBV37Nnz9bV1fmTXJiR1ZeWRj6fDzo7AAAAgsEPAYb6yijVN+i8AAAACBLPBRjqKwP1BQAAIOOtAEN9ZaC+AAAAlHgowFBfGagvAAAABq8EeHFx8fz58/X19R7ZjxCVlZWfffYZ1BcAAIASrwT4xRdfbGhoIKISe5RE+JFWPNN/L168CPUFAACgxCsBvnLlytzcHFXfnTt3rk8NprorRx3B6mcAAAAMXglwtQiV3mQyWSgUPEolzMRiMYT9AgAAYITn8rAoIv9ZU1MjuabXHrTHv7CwIP+5Pvv9AAAALOJr/6yurm56ejqVSvmZqG8cP348kUhAdwEAAFjBPwGmfV+qvvv37/ctRZ959tlnL1y4cOXKlcrKyqDzAgAAIOz4J8ANDQ1rte9LicfjMzMz9MPk5GQsFgs6OwAAAMIOpghxQFZfAAAAwCKBCfC3v126dSuoxHny8cdkbCzoTAAAAIgagQkwVd+1IcBr4yoAAAD4TPAuaFsLZSsrSVWVZ1lRsLREikWzE+i35icAAAAAJgQpwFRN776b/PrXZMMGq+dfv04+/9zjbIls2kS2bjWUWCrP9NsHHkD3FwAAgEMCE2CqpjdvkpGRoNIvA5V5c6WfmSF33UXa2vzKEAAAgLVFYAJM+76/+EVQifOBdn9//3ty331B5wMAAEAECUyA33svqJR5Mj1NWlqCzgQAAIAIEpgAv/9+UClz5ty5oHMAAAAgggQ6C7qXkLS1Mw8R8ktCfueZESVxQsyDamwnJGstRQAAAMCAQAU4b/nMfxH/6yHkeW+MyPxYPMGcmXJGAAAAgHIEvw7YBj2EfEfsgHpkZEbs/vqWEwAAAOuYSAkwEQUy7toDrGskbll9OeYEAADAeiU0Alxh+q2ybzpjfLJjI7sJYWZl6w70xtXDw/TzwxYGlQEAAAANoRFgc7ar5bOXkAxXI/s1Z2b1LGRXjMjshwADAABwQkQEmIjKV1r5nOdtpKA+J2tsIavW4ILxmQAAAIAx0RFg38jaOaHeq1wAAABY20CAHWE+2AwAAACUI5oCHAuNEQAAAMAR0RFg5dSnE4EaAQAAAFwTEQFWzl7OOp14zMUIAAAAwIPQCHCp/CkCWdP4U1yMAAAAAN4TGgG2CBfhhPoCAAAImqgJMAAAALAmiJoAz/Dov3IxAgAAALggNAJsMYxz3FQ+uRgBAAAAvCc0AmzOdrV87nY0h5mLEQAAAIAHERFgog7jvN+pdnIxAgAAALgmOgKspBAaIwAAAIAjoinAgSN3o/scbYwIAABg3QMB1hAvtyFSXPE5710+AAAArGWiI8DKMM71vI3E1OeYbAkcVxuJGZwWBkYPVrQNmJ6RSqVIMtnZ0d3emkgEYLAs06Ojp4eHhyYmyPj4uE46He2trTzSEfD56qb79jRnpGtK9U6NpV0ZnJ4ePX30yNCEopRSqa7Ozo72tFn5qC+5a6TU3+ogbR/riEm4j17zwEqiNL3k4cF+b9LyAy6VaIpQJUSolF0dOxzVijot9/etNXQLJpXsPNxtWjCuEjx64MhqekI1HObVpqmJiADPqPudGd5GThDyA/WZuhocV6svifqODsIdRv8/MJChN1nXiPvWi5dBsW3NDIwbfa9MR0ip16PHwzhVt8U1ejQjX9145uho2on2CUz3HTygV1I0n/S/TEYsHC8aqiDraHr04IE2JmkhvcuEOCzGYPGpEiVFEf4dkJo/z24OTujVs8i4QBu9tbg0W+VSFKqBJkZLa7Cf8xtHaATYYhhnwiMWtNbI71YWKckwQmtkJGs5xbAzPtDWPMHzbnZmsFyzrp9Spk0SRf+aE5fFNTqs6rQMHOnrbrX/aCt60YaIhTPEtZkKuo5GDzZb7fNFgIAqcdWud+9objDUXjXic8irJ16mKmhpNU9cGhlz+q6sR2gE2CJZHpqna0Q6GPc3JyFDuJuJM0ckD4MWnzmT1DJtE8Qft5iUnsPimu47wgjI+NDp6bTNfFMdKtdwy+YH2g7s4lIwwdfR6ME1pL7BVKLGsDfy7oqpYct32XimeQ+Hx95SVdBK2MOzEiIlwD2EPO+lEdqj/bF4gj858RedET5pbIXpygy0HeywpCmcDRq9fdLX886O9vZmklC6L6enp8nUlDD2OOBCDUzgXlxKQ6eHNHm27YZmdYjx8S6Pmw2M8yydENQRc9mCB7Lb+8EHr+BfieYD+StVomOTa1eSM6lU12FFNes8iOOZA33tbvJOb23mxlr1CkyP9h1oU44YuUxLSaACXG/5zEOE/NIgbgYXIzJUVgfL+Z/XjOc5kWilbX66m2lWB4ZH+1sddYIdG9Rr2U0dY0JLn0ikW2l6/c58ovbhVVzK4V8FttzQ6j40lSHWL7aSWXXb4YZQ1JHada+97EjhfyUqqkScaMT4MmhX8uAOjg4wDuiN8UrF0r5LdT+6mkjBPpPqqqDJjU3tUIx7cJTgQAU4w2MRLRcjSrLlYkqvNRLpwd4h5b3sXIEdGdRp2VO9I4M2BqWkdqpfaOOHHeTXHi6LS+t+XsGGG1rVh071Dho2PELbUWoXCthq/gwSDEcdTV+eUGagO0xSYRvfK1FtNNHaP1bqZkcUOHtY3dE1MmXsFU+kx0YuKSdlO5xIQTRvQr1T2qqgpTXSNaCQYDdyryBSLmjgEYn2zlRG4ZOauDxNXA0H2TA43XeAadlNHzvTVFu5PBPl03FRXGr3s7AuZHVxhfWneuqSwkhyR5m0aVM1RQ6etpZBPUJTR/auO+T4XIn6VqkKT7FdSY4eVhd0jEyVWynV2t2bGlD4hh1MpBBQd3+7DhuYUKfmXO5VQIABJbEjSe/fAAxqmnbx9TPwh78MzotL/aynOgcHyYHmVS3n9FRrSaT7005/G546UneAdzUHkIUgcVOJpmaZrmQoJLjVilOJeRUevzRFj9lNiRnW6DBMV52aU7lXAwEGAcIOh3aNBP3cewvzrNN37QQ53JVZbfycPNVuRwzKsN7qKBg8rsQyqP2rHD2sXsOh52BZfz1RYAhwsMSNB5ytL2p2j6prwcO5Z8kgOxzaNRKFZ544Li7mepefdbVny1rT17wrpWh3nMzEtkpk6yj8+FeJFmAlONgXAh9RP8um+svqvbMOtxoIcJDU1dUFnQURdg6g+V3IyyCzGic6c2ocFhcz/CtfbiKt6gRbcUOzo9ADbRXE6aisKaGoI/3VT+OZ5orM8meTxTc6cQxXAhlaCMylir2oTEVYD31keS2PuErGfuH7VonWYAZU14kCMw9luWEN9UuT67kyEOAAaWxs/N73nn3hBZ2vrl4lTU1+5YNdAee6j2PRINu2d7ZHwrHpuLjY4V/F5bZ2dJEBW25oRrSJ0Hw3T3APlRfROpIwXvi0GsjQkXSywUjGhTW0A/aDIvpUiZazo34hiIQCq/uvrqcFlJ8Kx7sLDAEOBqq+hw4d0t1NKZ8nP/kJeeUVr7NAuwbCknx1C6U7Bd8bg6pJoOFv290Wl3b4V/GnAzd0a/9U74S6YyiEyhMjGnELTRGxOlrFaiBDBxFFjQJhOglU5UslWoYZUOXQv/Mc9Q3qYOhMbaA8vLvAEOAAkNQ3T5VWAz32wx/SE/gnOtBWUWavH5sRYV0a5D7szBfOxaU//LuKAze0NHt1j2ZPAqk3xiW6b8jryBB7waKliKLWfL+s/0OF4QIWE7yvRBuo1YXHEKfH2JhApQ/nHrR9IMB+E4j6lifV1dnRzvNhL2fQ7qtnuLBZXEbDvwrsu6GFHwmrOHU20lmO7uu2AQ9JHVGRKonrb1SDwUab4Wk10kKAR2u918vSgiyFMiriSTkeuvG4Em0QsS5wubdaL+Dtgw5egDdtIlu3kmIx6HzYobqaTE46+SGjvvH46ldBqi+Rd6vh99bN3WCosHd1JsO/qziZDU3ExaFj7R16DtdQxtj3GnbRso5MywEeVYVmYfHrQCbDGlyOJ9V38ChxMz0NlegA7lNHgyBgAd65kzQ0kDt3gs2FE1payLlz9n6iVd+ZlaDTAavvKtyf97XdgFi6OvZF3chR6cQNvfxL3aiCyzkMb4x9D2BedcwuXCi0EaKY5GzlnSfVO6hjMCFGu3ZJCCqRGXIINcxTFZ01FGqCEeCZmRll5289ELj66q/UELdHOX16eEjpALO2zZ5Lg+rxptDBr7iYmcRmL+pMJ9jeQn/jBtxxjP2Q15EW1ZigvliqYCZBlZv4a8GiSzyoROeEeMyfdXQ4GX53ljDnQWP/BHhhYYGK0OzsrKi+cd/SDQOBq68h4vYo6XRrWvDIKWeuOA3KbtlgxMabJBwUFxtIquzsrlUcxCMyasCdVWfU6kitv5bmbKvX3pgrsF+zwPlWog2YSe/hjfWp2bzI6YsJ/8gaNvFPgOfm5s6cOXP16tU1rL6FQqGyspI5GF71VZFgl0S4DUdXziAz5ZJLZFX/sFpc6nmadnEWG1qMsM+OKDqqzmjVkTpUtEW1VCuw6TuGrz1CfpVoGeZeDW0HmN0T2k/vs+t1Twy+uqBzuVx1dTVVqVgs5me6/kCv6+zZs0xwq4iorwS70Z7rpfimBtlA6iFv3bVYKC7jvQct4rhUNCOcjqozWnXkbK8kVScoXEtv+FSiVRj9DeukJo38uhoWsLmul/uyJb/HgKkAv/XWW8VoTXpeYdv8tu9/6fv0w8/e/9mHtR8y39K+b5TVV4TxObp/2s0Msq17VALAr1KuuJjhXye4KRUO8X2jX0dRx68gzZqg3+HUX0Z+Xe8MYtMHzbsDHMQkrJqaGv8TdU/DQsMTrU/Mxmbp5wtNF3711q/mauZMzt+2bVtLSwvtFkt/RkB9BbhPuzEzqAmG69VmfJ5hXlw2puQyP1RGIHZTKkx8XweDuFGqI1VtWL7W0O9x6L4SLaDZ8yqU+quRX/cvg+r192Veb/jH7Qh+HXBUqCnWSOpLoR/onyYnJxKJRx55JGrqSzwIvWBqkA2GG8BMT3eYXp1p8ElTys6Gnu7rm0qnrawSdr1dW4TqyJkz2ZnjmgM+VmLZnDCxS0K5qIfJpZuouUqYTanMFJiJp8NjTp5XApzP5+vr64nohpV1KNJQxT33h3MtX2yhn+mHmm01jZWNumc2NDQ89NBDs7Oz0p/RUV/NQkD3r3jlDLIONpczPYX4+5fbfYtlb3Z1rsL0qLmDUM8AAAv/SURBVFVPz/E71LaH2C4nZ/ISnTpStaXW+urqavK5A+xjJZowepDZa8r71VYOYBYe8cuj9T0oPNBfzwT4tddee+aZZ+IiHiURIC30f9aIkvpq/VCun3ULBjXNO+1i7blkf0eYlb1vUr3tDjNrG7OrsxB80hTGM6YjJmI5jYyZ9wLUC3OcyktU6oh9bykb24pt1X3fbcLHStRFZ6fHUMov85LgeuhXicUAOMy9wmnlsYcu6LxAzDv74cex+lYHMTKgjaHrchzIqkHtljDyjjDWAuQbbjvnJeZXZyn4pClWgnKMD7RVTPSODBoEw2R9di7kJSp1xMbzbDbpYmrEx7doDir8q0S13dUo1gpSXKWNE659z9N9y6G2DbaMZO8anRc3TQeck4/ew5aedoIJebinx7sUQo1j9Y3F6MPhWbZYxNhO2n32iOMZDk4MJtJjU4R9FRd3hBF2bO083NHe3JxQbs4mJ6IOqe891q7OavBJU9SuMcP5x+OZtuaMtN3AahmJresRddm4bLojUkc6Q9YVQ+rNGJZ3Y2BrkMeMHqf4U4lCjZhViaC+4Rvcd935FQws3xBGQeuYu0Zy8OhsuCFngturmqddre2EZL20H17cqO/sLDl2jPz855yzZCMCExGfxXKPIl+DQvu+Qy8C3/iAuHW61WR4+c/cXJ2N4JNm2IgNvbw3hFkOORRM2OpIH93Oerns8ZrR4wYulWjvvlWY7rI/oiC83GSs2ncWylrrZ7JygarE2FA4+oO8mrg6xpXB9V7xToCfl9S3VPIshSjgQH17ez3NkQUcPixuDerG/rGRSFA7PrBXx64+cu6sMnRDJ9KDI+RAW8ZiQfGr0EjUkdGLQqCZ0hJYJWosh3WvFM30MC8Rd2auaCuj7rx99B4J8CQhPd5YjhK5HHnuuWipL/dn0aZBKQyuju/NLIlU1+HB7tZEENqrc3XqN253jl9jN3SiNT1Warcwssq/dY1CHVl8URCzFZz2BFiJktngnpzyaDu/zlBPZzR1SLX2l3R3Zl7GiZegHB4J8De8MRsxTp4kmzdbOjNY9U2lUslk566Odl779ro0KG6y2tovjtWdHr40NDFBxtUtPU2A0BQ6Otpb/W89Ta+Oy/DvKuZuaGlj2/7p0b7Tw0NDE8pCom0rLR/vdmIOeR2JWRReFAwKJ5XsVA0LB4i/lSjUilgtIbl6A3RmZztG8C6TlUlYVEJNHVLizszdwhwBxTi5OMnBmwLzQoCfF3vA653z50k2S9SxKfXxSn3p+1zJ/TalXhosg7BzerqVpP1Jjc/VJWifhmuGLWRLLKa0g1Q5XLKvdeSkcB0Xjoh/t3yQlRi+tPg+RoKqpq3nO7H8TsQtfRO8EOAeD2xGjFyOnDplqfurq76PPfaYJ9kCAAAQGrgL8HbeBiPJyZNEjANWBl31jcfj77zzjifZAgAAEBr4CnB23a47UmLR+WykvjPyAiYAAABrF74CzHZ/33zzyVisYPKDYnEpilsTVlRUVFUJRVcoxOLx7M6dk/JXFp3PUF8AAFjncBRgVn2/+93jjY2zJj9YWlpqbGzcurXxzp3FCMkwVd+FhYXLly9TGaUX+OSTbyq/teJ8hvoCAADgJcCTjPP5/PkWKk7m3V8ixKnI5nLTjSJR0eCqqqpr16Zqaxfm5uoPHDiu/KqvT1BWqq8mQH0BAAAQfgKsWviby20+dWrf5s25sj+rEsnlcp988gn9s1RdVRRdu5VLi9IH5WeOBzcuLVWLOx4siti9Wprn+fl79u07pbzGfF4Y+jXv/kJ9AQAASHARYHbh78mT++vr89Z/L8lwsarq7usfN3wwRY/M/UUz/VCiInlzfvavH95y8b84Hqy9OX/ur740+Z+/pQebmpqSyaRdDV5crI7Hs48/fk55sLubWjP7FdQXAACAjHsBnmQW/p4/35LNxuvqbtg1dPueTX/z3HOFmns3LMwXGu774tnz9OAH3+r48r+9eKemluPBm3/3zWN9/y4l+tJLL9H+t92s5vP16XSv8khfX5mQk1BfAAAAStwLMBt18sSJ/SZzr2IrA6S00yk7gekH2v3dcvl/qknlpmIx99Dupt9erK3eULG4dHdFxQZSEeN3cOPS0uid21IeGhsbaepylgq3Fyoqq+iHUnFJ+iB8XrrDXMKNG3V2nc9QXwAAAAwuBZh1Pvf1ZUyGfuvr60+cOEEF78aNG3v37r1w4QIR4pImJyYmqAZ/duvWV370T/Rg5eJiMrn34uQkPXjr2h+++qMf8D249PH1np4eepCq7+TkpJR6/tPPvtn+t59+JDjAN275wu0/fkQ1eKkwf++uryo1mL4tNDVdteV8hvoCAADQ4lKAe5R/5PP12WzcaPSX6u6pU6feffdd+rmjo6N3RZE2b9789ttvSwdf+ecXpINba+/+zciodwepAEsH6Wcp9ce/9uQn54buVG4oLhTuu+uez6feowc3NT/CXMXsbOMLLxxWHjF3PkN9AQAA6OJGgNmFv93d/0p7h0Zn19XV0b4mczCRSEiSHPjBv3zw/sXLpRIp1j7YfOvaFKmsKi3euWvr9lJxST6fvmEcPfqs0oK58xnqCwAAwAjHApzVLvw1dz6//vrre/fulcZ9c7mc7AROJpOTomc42IO/+e8r3/j633/64RRV3I1/9oWF3P+SysqbH31w786vlJaEBcrSzGemf2/ifIb6AgAAMMGxAKu6v+YLf5XOZwmlE5h++8YbbwR+8PGvPXn9zdeWXdC7n8hPCH5ppQvalvMZ6gsAAMAcZwLMOp/NF/7qOp8lQuWCrs5WV5CK6gcT8x99UCoWS4sLG7c0SS5oW85nqC8AAICyOBDgSa3z2WThr+x8JooJzyF0QV++9sfixgQ90lS7Nfnl5GKxRDNMe8OkVJR2XLDofIb6AgAAsIIDAbax8JdxPlOdC4O3WfegDBOaQ1p39PTTLynPMXI+Q30BAABYxK4A21v4q3Q+JxIJaeGvEj+9zXLqcuBJevDtsXHlabS/XigUlEe0Qa+MnM9QXwAAANaxJcCTthb+ys5nKmn0XyqKtAf86KOPkiBmQUtZoqnTb6nuPvXUU8K3/zf39D985+Z1QSA3bLp/45amxTsLN26s+tK1Qa+IgfMZ6gsAAMAWtgSYdT6bLPxlwm7ILl+JQLzNytTlmc9X3viPO5UbluY/3/atf7z1pznlabo7Lug6n6G+AAAA7GJdgFnns/nCX9q/lJ3P2r2G5CNUpbSeYS8Oyii/TWy5Z+nDylKxGHsgXlpkYz7ncputOJ+hvgAAABxgXYB7lH+U3fFX8vTW1dUJ84qbmuQQHNJX8hEpIrTkGU4mk9IJu3fv5ntQ9irTI9K3NG+F2wt/Hv/inzYIq4w23v9gUS3A+Xz9T396qOzMZ6gvAAAAZ1gUYHsLfymFQmHfvn3SZyp7VJOU30ryPDs7e+TIEfmgPBtZOS2Zy8FXX301n8/LSXd0dCxn8vbCpoQQakNY7FsqKrKnE/RK63yG+gIAAHCMFQHO2lr4K6OcTqx1BcdisePHj1tI3S2ZTCaXyykzoPwshZlkuHq1iQl6pXU+Q30BAAC4wYoAs91f8x1/KcWqqsqlJd0/pc9UfY8dO6ZcbusR9fX1VBT/v727V00YCgMwrJ0KgrgUCkJxL5SupTeSMVfh7bj2UjpKoXtGoRQcXYqNLUg4NTHWk6TV5xkkiQ7H6eV8/mS7/a1jsbiezdLgYjB8Vl8AjrQ3wGF9q3/42/tK7NXL69vd7Xd0i6fb43xznCRJmqbHLL2OfLN7UH1Xq8skeQouBsNn9QXgeNUBzoLhc5ZN5vP76k9/c8ubx4v3j52nwVPNy9/gqP6rl8tR8LujYPisvgBEUR3gcPs7mWQ/x7OnrTh8Vl8AYqkI8EN7q/irisNn9QUgoooAP7e2iL+pOHxWXwDiKg3wIV9dOkHDYW867Y3Hm2P1BSC60gDvvNX8WRkMNo/qC0ATfnE/4DOivgA0RIBLqS8AzRHgUnl9g//KVF8AYikNcL/f5jL+AfUFICI74FrUF4C4BHg/9QUgOgHeQ30BaEJpgNfrdZvrAICzYgcMAB0QYADogAADQAcEGAA68AkG0LjCwnHj5QAAAABJRU5ErkJggg==\"\nwidth=\"320\" height=\"64\"></a>\n\n    <div class=\"spinner\" id='spinner'></div>\n    <div class=\"emscripten\" id=\"status\">Downloading...</div>\n\n<span id='controls'>\n  <span><input type=\"button\" value=\"Fullscreen\" onclick=\"Module.requestFullscreen()\">\n  </span>\n</span>\n\n    <div class=\"emscripten\">\n      <progress value=\"0\" max=\"100\" id=\"progress\" hidden=1></progress>\n    </div>\n\n    \n    <div class=\"emscripten_border\">\n      <canvas class=\"emscripten\" id=\"canvas\" oncontextmenu=\"event.preventDefault()\" tabindex=-1></canvas>\n    </div>\n    <textarea id=\"output\" rows=\"8\"></textarea>\n\n    <script type='text/javascript'>\n      var statusElement = document.getElementById('status');\n      var progressElement = document.getElementById('progress');\n      var spinnerElement = document.getElementById('spinner');\n\n      var Module = {\n        preRun: [],\n        postRun: [],\n        print: (function() {\n          var element = document.getElementById('output');\n          if (element) element.value = ''; // clear browser cache\n          return function(text) {\n            if (arguments.length > 1) text = Array.prototype.slice.call(arguments).join(' ');\n            // These replacements are necessary if you render to raw HTML\n            //text = text.replace(/&/g, \"&amp;\");\n            //text = text.replace(/</g, \"&lt;\");\n            //text = text.replace(/>/g, \"&gt;\");\n            //text = text.replace('\\n', '<br>', 'g');\n            console.log(text);\n            if (element) {\n              element.value += text + \"\\n\";\n              element.scrollTop = element.scrollHeight; // focus on bottom\n            }\n          };\n        })(),\n        printErr: function(text) {\n          if (arguments.length > 1) text = Array.prototype.slice.call(arguments).join(' ');\n          console.error(text);\n        },\n        canvas: (function() {\n          var canvas = document.getElementById('canvas');\n\n          // As a default initial behavior, pop up an alert when webgl context is lost. To make your\n          // application robust, you may want to override this behavior before shipping!\n          // See http://www.khronos.org/registry/webgl/specs/latest/1.0/#5.15.2\n          canvas.addEventListener(\"webglcontextlost\", function(e) { alert('WebGL context lost. You will need to reload the page.'); e.preventDefault(); }, false);\n\n          return canvas;\n        })(),\n        setStatus: function(text) {\n          if (!Module.setStatus.last) Module.setStatus.last = { time: Date.now(), text: '' };\n          if (text === Module.setStatus.last.text) return;\n          var m = text.match(/([^(]+)\\((\\d+(\\.\\d+)?)\\/(\\d+)\\)/);\n          var now = Date.now();\n          if (m && now - Module.setStatus.last.time < 30) return; // if this is a progress update, skip it if too soon\n          Module.setStatus.last.time = now;\n          Module.setStatus.last.text = text;\n          if (m) {\n            text = m[1];\n            progressElement.value = parseInt(m[2])*100;\n            progressElement.max = parseInt(m[4])*100;\n            progressElement.hidden = false;\n            spinnerElement.hidden = false;\n          } else {\n            progressElement.value = null;\n            progressElement.max = null;\n            progressElement.hidden = true;\n            if (!text) spinnerElement.style.display = 'none';\n          }\n          statusElement.innerHTML = text;\n        },\n        totalDependencies: 0,\n        monitorRunDependencies: function(left) {\n          this.totalDependencies = Math.max(this.totalDependencies, left);\n         // Module.setStatus(left ? 'Preparing... (' + (this.totalDependencies-left) + '/' + this.totalDependencies + ')' : 'All downloads complete.');\n        }\n      };\n      Module.setStatus('Downloading...');\n      window.onerror = function(event) {\n        // TODO: do not warn on ok events like simulating an infinite loop or exitStatus\n        Module.setStatus('Exception thrown, see JavaScript console');\n        spinnerElement.style.display = 'none';\n        Module.setStatus = function(text) {\n          if (text) Module.printErr('[post-exception status] ' + text);\n        };\n      };\n    </script>\n    {{{ SCRIPT }}}\n  </body>\n</html>"
  },
  {
    "path": "bin/wasm/makefile",
    "content": "# Requires Python and the Emscripten SDK to be installed.\n\nVPATH  = ../BBCSDL/src ../BBCSDL/include\n\nCXX = emcc -s USE_PTHREADS=1 -s USE_SDL=2 -s USE_SDL_TTF=2 -s USE_SDL_NET=2 \\\n      -I . -I ../BBCSDL/include -pthread -Wall -Wno-pthreads-mem-growth\n\nLXX = emcc -s USE_PTHREADS=1 -s USE_SDL=2 -s USE_SDL_TTF=2 -s USE_SDL_NET=2 -s MAXIMUM_MEMORY=1gb \\\n      -s PTHREAD_POOL_SIZE=2 -s ALLOW_MEMORY_GROWTH=1 -s WASM=1 -s ASSERTIONS=0 -s STACK_SIZE=5MB \\\n      -I . -I ../BBCSDL/include -pthread -Wall -Wno-pthreads-mem-growth\n\nOBJ = bbmain.o bbexec.o bbeval.o bbcmos.o bbccli.o \\\n      bbcvdu.o bbcvtx.o flood.o sort.o bbdata.o bbcsdl.o \\\n      bbasmb.o SDL2_gfxPrimitives.o SDL2_rotozoom.o\n\nall: bbcsdl.html\n\nbbmain.o: bbmain.c BBC.h\n\t$(CXX) -c -O3 -ffast-math -fno-finite-math-only $< -o $@\n\nbbexec.o: bbexec.c BBC.h\n\t$(CXX) -c -O3 -ffast-math -fno-finite-math-only $< -o $@\n\nbbeval.o: bbeval.c BBC.h\n\t$(CXX) -c -O3 -ffast-math -fmath-errno -fno-finite-math-only $< -o $@\n\nbbasmb.o: bbasmb_wasm32.c BBC.h\n\t$(CXX) -c -Os $< -o $@\n\nbbcmos.o: bbcmos.c bbcsdl.h\n\t$(CXX) -c -O3 $< -o $@\n\nbbccli.o: bbccli.c bbcsdl.h\n\t$(CXX) -c -Os $< -o $@\n\nbbcvdu.o: bbcvdu.c bbcsdl.h\n\t$(CXX) -c -Os $< -o $@\n\nbbcvtx.o: bbcvtx.c bbcsdl.h\n\t$(CXX) -c -O3 $< -o $@\n\nbbcsdl.o: bbcsdl.c bbcsdl.h version.h\n\t$(CXX) -Wno-unused-value -c -O3 $< -o $@\n\nSDL2_gfxPrimitives.o: SDL2_gfxPrimitives.c SDL2_gfxPrimitives.h\n\t$(CXX) -c -O3 $< -o $@\n\nSDL2_rotozoom.o: SDL2_rotozoom.c SDL2_rotozoom.h SDL2_gfxPrimitives.h SDL_stbimage.h stb_image.h\n\t$(CXX) -c -Os $< -o $@\n\nflood.o: flood.c\n\t$(CXX) -c -O3 $< -o $@\n\nsort.o: sort.c\n\t$(CXX) -c -O3 $< -o $@\n\nbbdata.o: bbdata_wasm32.c\n\t$(CXX) -c $< -o $@\n\nbbcsdl.html: $(OBJ) Box2D231.o bbcsdl_shell.html\n\t$(LXX) -O3 --emrun --no-heap-copy --shell-file bbcsdl_shell.html $(OBJ) Box2D231.o \\\n\t-lidbfs.js -o bbcsdl.html --preload-file examples/ --preload-file lib/\n\nindex.html: $(OBJ) Box2D231.o bbcsdl_shell.html\n\t$(LXX) -O3 --emrun --no-heap-copy --shell-file bbcsdl_shell.html $(OBJ) Box2D231.o \\\n\t-lidbfs.js -o index.html\n"
  },
  {
    "path": "bin/wasm/readme.txt",
    "content": "If you get a build failure like:\n\n'AssertionError: attempt to lock the cache while a parent process is holding the lock'\n\nbuild the individual ports separately using:\n\nembuilder build sdl2-mt\nembuilder build sdl2_net\nembuilder build sdl2_ttf\n"
  },
  {
    "path": "bin/win32/makefile",
    "content": "# Update these paths as necessary to match your installation\nSDL_LIB = -LC:/SDL2-2.26.2/i686-w64-mingw32/lib -lSDL2main -lSDL2 \\\n          -LC:/SDL2_ttf-2.20.2/i686-w64-mingw32/lib -lSDL2_ttf \\\n          -LC:/SDL2_net-2.2.0/i686-w64-mingw32/lib -lSDL2_net \nSDL_INCLUDE = -IC:/SDL2-2.26.2/i686-w64-mingw32/include/ \\\n          -IC:/SDL2_ttf-2.20.2/i686-w64-mingw32/include/ \\\n          -IC:/SDL2_net-2.2.0/i686-w64-mingw32/include/ \n\nVPATH = ../../src ../../include\nCXX = gcc -Wall -I ../../include\n\nOBJ = bbmain.o bbexec.o bbeval.o bbcmos.o bbccli.o \\\n      bbcvdu.o bbcvtx.o flood.o bbdata.o bbcsdl.o \\\n      bbasmb.o SDL2_gfxPrimitives.o SDL2_rotozoom.o\n\nall: bbcsdl.exe sdlrun.exe\n\nbbmain.o: bbmain.c BBC.h\n\t$(CXX) -c -O2 -freg-struct-return -ffast-math -fno-finite-math-only $< -o $@\n\nbbexec.o: bbexec.c BBC.h\n\t$(CXX) -c -O2 -freg-struct-return -ffast-math -fno-finite-math-only $< -o $@\n\nbbeval.o: bbeval.c BBC.h\n\t$(CXX) -Wno-array-bounds -c -O2 -freg-struct-return -ffast-math -fmath-errno -fno-finite-math-only $< -o $@\n\n# TODO: Need bbasmb_x86_32 assembler!!\nbbasmb.o: bbasmb_arm_v6m.c BBC.h\n\t$(CXX) -c -Os $< -o $@\n\nbbcmos.o: bbcmos.c bbcsdl.h\n\t$(CXX) -Wno-array-bounds -c $(SDL_INCLUDE) -msse2 -O2 $< -o $@\n\nbbccli.o: bbccli.c bbcsdl.h\n\t$(CXX) -c $(SDL_INCLUDE) -Os $< -o $@\n\nbbcvdu.o: bbcvdu.c bbcsdl.h\n\t$(CXX) -c $(SDL_INCLUDE) -Os $< -o $@\n\nbbcvtx.o: bbcvtx.c bbcsdl.h\n\t$(CXX) -c $(SDL_INCLUDE) -O3 $< -o $@\n\nbbcsdl.o: bbcsdl.c bbcsdl.h version.h\n\t$(CXX) -c -Wno-unused-value $(SDL_INCLUDE) -O2 $< -o $@\n\nSDL2_gfxPrimitives.o: SDL2_gfxPrimitives.c SDL2_gfxPrimitives.h\n\t$(CXX) -c $(SDL_INCLUDE) -O2 $< -o $@\n\nSDL2_rotozoom.o: SDL2_rotozoom.c SDL2_rotozoom.h SDL2_gfxPrimitives.h SDL_stbimage.h stb_image.h dr_mp3.h\n\t$(CXX) -c $(SDL_INCLUDE) -Os $< -o $@\n\nflood.o: flood.c\n\t$(CXX) -c $(SDL_INCLUDE) -O3 $< -o $@\n\nbbdata.o: ../../src/bbdata_x86_32.nas\n\tnasm --prefix _ -f win32 -s ../../src/bbdata_x86_32.nas -o bbdata.o\n\nbbcsdl.exe: $(OBJ)\n\t$(CXX) $(OBJ) \\\n\t-o bbcsdl.exe -lz -lmingw32 -lpsapi -mthreads -mwindows $(SDL_LIB) -Wl,-s -Wl,--export-all-symbols\n\nsdlrun.o: sdlrun.c\n\t$(CXX) -Wall -c -O2 $< -o $@\n\nunpack32.o: unpack32.nas\n\tnasm --prefix _ -f win32 -s unpack32.nas -o unpack32.o\n\nsdlrun.exe: sdlrun.o unpack32.o\n\t$(CXX) sdlrun.o unpack32.o -o sdlrun.exe -lmingw32 -mwindows -Wl,-s \n"
  },
  {
    "path": "bin/win32/sdlrun.c",
    "content": "/******************************************************************\\\n*\t  BBC BASIC for SDL 2.0 (Windows edition)\t\t   *\n*\t  Copyright (c) R. T. Russell, 2024\t\t\t   *\n*\t\t\t\t\t\t\t\t   *\n*\t  Version 1.4, 15-Nov-2024\t\t\t\t   *\n\\******************************************************************/\n\n#include <windows.h>\n#include <windowsx.h>\n#include <objbase.h>\n#include <shlobj.h>\n#include \"version.h\"\n\n#ifdef __x86_64__\n#define SECURITY_PTR 0x128\n#else\n#define SECURITY_PTR 0x118\n#endif\n#define STACK_NEEDED 0x400\n\n\t// Functions in BBCUPCK.NAS\n\nvoid WINAPI unpack (HANDLE, char*, int, DWORD*, int) ;\nBOOL WINAPI verify (HANDLE, char*, int) ;\n\n\t// Structure declaration\n\ntypedef struct tagPROGINFO {\n  int DefaultRAM ;\n  int Library ;\n  int WindowWidth ;\n  int WindowHeight ;\n  int CmdShow ;\n  int Flags ;\n  unsigned int SerialNumber ;\n  int ProgLength ;\n} PROGINFO, *LPPROGINFO ;\n\nint WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,\n\t\t    PSTR szCmdLine, int iCmdShow)\n    {\n\tchar szAppName[_MAX_PATH] ;\n\tchar szLoadDir[_MAX_PATH] ;\n\tchar szTempDir[_MAX_PATH] ;\n\tchar szLibrary[_MAX_PATH] ;\n\tchar szBinaries[_MAX_PATH] ;\n\tchar szFileName[_MAX_PATH] ;\n\tchar szEmptyFile[_MAX_PATH] ;\n\tPROGINFO ProgInfo ;\n\tSHFILEOPSTRUCT shfo = {0} ;\n\tSHELLEXECUTEINFOA sei = {0} ;\n\tHANDLE ThisFile, EmbedFile ;\n\tint signature, offset ;\n\tint embedsize, remain, dirlen, liblen ;\n\tBOOL anyresources = 0 ;\n\tDWORD nRead ;\n\tchar *nameptr ;\n\tvoid *pBuffer ;\n\n\t// Get the path to this file and open it:\n\tGetModuleFileName (NULL, szFileName, _MAX_PATH) ;\n\n\tThisFile = CreateFile (szFileName, GENERIC_READ, FILE_SHARE_READ,\n\t\t\t    NULL, OPEN_EXISTING, 0, NULL) ;\n\n\t// It shouldn't be possible for the file not to exist:\n\tif (ThisFile == INVALID_HANDLE_VALUE)\n\t  return 1;\n\n\t// Discover if there is a signature and if so where it is:\n\tSetFilePointer (ThisFile, SECURITY_PTR, NULL, FILE_BEGIN) ;\n\tReadFile (ThisFile, &signature, sizeof(int), &nRead, NULL) ;\n\tif (signature != 0)\n\t\tnRead = FILE_BEGIN ;\n\telse\n\t\tnRead = FILE_END ;\n\n\t// Read the ProgInfo structure either from the end or just before the signature:\n\toffset = SetFilePointer (ThisFile, signature-sizeof(PROGINFO), NULL, nRead) ;\n\tReadFile (ThisFile, &ProgInfo, sizeof(PROGINFO), &nRead, NULL) ;\n\n\t// Quit if there are no embedded files:\n\tif ((ProgInfo.Library <= 0) || (ProgInfo.Library >= offset))\n\t    {\n\t\tCloseHandle (ThisFile) ;\n\t\treturn 0 ;\n\t    }\n\n\t// Find directory containing this file:\n\tGetFullPathName (szFileName, _MAX_PATH, szLoadDir, &nameptr) ;\n\t*nameptr = '\\0' ;\n\tdirlen = strlen (szLoadDir) ;\n\n\t// Get the path to the temporary directory:\n\tGetTempPath (_MAX_PATH, szTempDir) ;\n\n\t// Set the path to the binaries subdirectory and create it:\n\tGetTempFileName (szTempDir, \"BBC\", 0, szBinaries) ;\n\tDeleteFile (szBinaries) ;\n\tCreateDirectory (szBinaries, NULL) ;\n\tstrcat (szBinaries, \"\\\\\") ;\n\n\t// Set the path to the libraries subdirectory (but don't create it):\n\tstrcpy (szLibrary, szBinaries) ;\n\tstrcat (szLibrary, \"lib\\\\\") ;\n\tliblen = strlen (szLibrary) ;\n\n\t// Set the path to an empty file bin\\$ (but don't create it):\n\tstrcpy (szEmptyFile, szBinaries) ;\n\tstrcat (szEmptyFile, \"$\") ; \n\n\t// Allocate a buffer to hold the uncompressed data:\n\tpBuffer = malloc (ProgInfo.DefaultRAM) ;\n\tif (pBuffer == NULL)\n\t\treturn 2 ;\n\n\t// For each of the embedded files:\n\tint embedptr = offset - ProgInfo.ProgLength - ProgInfo.Library ;\n\twhile (embedptr < (offset - ProgInfo.ProgLength)) \n\t    {\n\t\tint len ;\n\t\tchar type ;\n\t\tSetFilePointer (ThisFile, embedptr, NULL, FILE_BEGIN) ;\n\t\tReadFile (ThisFile, &type, 1, &nRead, NULL) ;\n\t\tReadFile (ThisFile, &embedsize, 4, &nRead, NULL) ;\n\t\tReadFile (ThisFile, szFileName, _MAX_PATH, &nRead, NULL) ;\n\t\tlen = strlen(szFileName) ;\n\t\tembedptr += len + 6 ;\n\n\t\t// type == 0/1 for @dir$, type == 2/3 for @dir$\\bin\\lib\n\t\tif (type & 2)\n\t\t    {\n\t\t\tmemmove (szFileName + liblen, szFileName, len + 1) ;\n\t\t\tmemcpy (szFileName, szLibrary, liblen) ;\n\t\t    }\n\t\telse\n\t\t    {\n\t\t\tmemmove (szFileName + dirlen, szFileName, len + 1) ;\n\t\t\tmemcpy (szFileName, szLoadDir, dirlen) ;\n\t\t\tanyresources = 1 ;\n\t\t    }\n\n\t\t// Check if the file already exists:\n\t\tEmbedFile = CreateFile (szFileName, GENERIC_READ,\n\t\t\t  FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL) ;\n\n\t\t// If it does, verify the existing contents against the embedded data:\n\t\tif (EmbedFile != INVALID_HANDLE_VALUE)\n\t\t    {\n\t\t\tint diff = 0 ;\n\t\t\tSetFilePointer (ThisFile, embedptr, NULL, FILE_BEGIN) ;\n\n\t\t\twhile ((diff == 0) && ((remain = embedptr + embedsize -\n\t\t\t\tSetFilePointer (ThisFile, 0, NULL, FILE_CURRENT)) > 0))\n\t\t\t    {\n\t\t\t\tnRead = ProgInfo.SerialNumber ;\n\t\t\t\tunpack (ThisFile, pBuffer, min(remain, ProgInfo.DefaultRAM),\n\t\t\t\t\t &nRead, type) ;\n\t\t\t\tdiff = verify (EmbedFile, pBuffer, nRead) ;\n\t\t\t    }\n\t\t\tCloseHandle (EmbedFile) ;\n\t\t\tif (diff)\n\t\t\t\tEmbedFile = INVALID_HANDLE_VALUE ;\n\t\t    }\n\n\t\t// If the file doesn't exist OR is different from the existing one, create it:\n\t\tif (EmbedFile == INVALID_HANDLE_VALUE)\n\t\t    {\n\t\t\tCloseHandle (CreateFile (szEmptyFile, GENERIC_WRITE, 0,\n\t\t\t\t\t\t NULL, CREATE_ALWAYS, 0, NULL)) ;\n\t\t\t\n\t\t\tshfo.hwnd = (HWND) 1 ; // Any non-zero value!\n\t\t\tshfo.wFunc = FO_MOVE ;\n\t\t\tshfo.pFrom = szEmptyFile ;\n\t\t\tshfo.pTo   = szFileName ;\n\t\t\tshfo.fFlags = FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR ;\n\t\t\t*(szFileName + strlen(szFileName) + 1) = '\\0' ;\n\t\t\t*(szEmptyFile + strlen(szEmptyFile) + 1) = '\\0' ;\n\t\t\tSHFileOperation (&shfo) ; // Create directory if necessary\n\n\t\t\tEmbedFile = CreateFile (szFileName, GENERIC_WRITE, 0,\n\t\t\t\t\t   NULL, CREATE_ALWAYS, 0, NULL) ;\n\n\t\t\tif (EmbedFile == INVALID_HANDLE_VALUE)\n\t\t\t    {\n\t\t\t\tMessageBox(NULL, szFileName, \"SDLRUN: Cannot create file\", 0);\n\t\t\t\treturn 3 ;\n\t\t\t    }\n\n\t\t\tSetFilePointer (ThisFile, embedptr, NULL, FILE_BEGIN) ;\n\n\t\t\twhile ((remain = embedptr + embedsize -\n\t\t\t\tSetFilePointer (ThisFile, 0, NULL, FILE_CURRENT)) > 0)\n\t\t\t    {\n\t\t\t\tnRead = ProgInfo.SerialNumber ;\n\t\t\t\tunpack (ThisFile, pBuffer, min(remain, ProgInfo.DefaultRAM),\n\t\t\t\t\t&nRead, type) ;\n\t\t\t\tWriteFile (EmbedFile, pBuffer, nRead, &nRead, NULL) ;\n\t\t\t    }\n\n\t\t\tCloseHandle (EmbedFile) ;\n\t\t    }\n\t\tembedptr += embedsize ;\n\t    }\n\n\tfree (pBuffer) ;\n\tReadFile (ThisFile, szAppName, _MAX_PATH, &nRead, NULL) ;\n\tCloseHandle (ThisFile) ;\n\n\t// Get path to program .bbc file and hide it:\n\tif (anyresources)\n\t\tstrcpy (szFileName, szLoadDir) ;\n\telse\n\t\tstrcpy (szFileName, szBinaries) ;\n\tstrcat (szFileName, szAppName) ;\n\tstrcat (szFileName, \".bbc\") ;\n\tSetFileAttributes (szFileName, FILE_ATTRIBUTE_HIDDEN) ;\n\n\t// Enclose in quotes in case embedded space(s):\n\tstrcpy (szEmptyFile, \"\\042\") ;\n\tstrcat (szEmptyFile, szFileName) ;\n\tstrcat (szEmptyFile, \"\\042 \") ;\n\tstrcat (szEmptyFile, szCmdLine) ;\n\n\t// Run BBCSDL:\n\tstrcpy (szLibrary, szBinaries) ;\n\tstrcat (szLibrary, \"bbcsdl.exe\") ;\n\n\t/// ShellExecute ((HWND) 0, \"open\", szLibrary, szEmptyFile, szLoadDir, ProgInfo.CmdShow) ;\n\n\tsei.cbSize = sizeof(sei) ;\n        sei.fMask = SEE_MASK_NOCLOSEPROCESS ;\n        sei.hwnd = NULL ;\n\tsei.lpVerb = \"open\" ;\n        sei.lpFile = szLibrary ;\n        sei.lpParameters = szEmptyFile ;\n        sei.lpDirectory = szLoadDir ;\n        sei.nShow = ProgInfo.CmdShow ;\n        ShellExecuteEx (&sei) ;\n\n\t// Wait for process to finish:\n        if (sei.hProcess)\n\t    {\n\t\tDWORD res ;\n\t\tdo res = WaitForSingleObject (sei.hProcess, 1000) ;\n\t\twhile (res == WAIT_TIMEOUT) ;\n\t\tCloseHandle (sei.hProcess) ;\n\t    }\n\n\t// Delete the binaries directory and all the files it contains:\n\t*(szBinaries + strlen(szBinaries) + 1) = '\\0' ;\n\tshfo.hwnd = (HWND) 1 ; // Any non-zero value!\n\tshfo.pFrom = szBinaries ;\n\tshfo.wFunc = FO_DELETE ;\n\tshfo.fFlags = FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR ;\n\tSHFileOperation (&shfo) ; \n\n\treturn 0 ;\n    }\n"
  },
  {
    "path": "bin/win32/unpack32.nas",
    "content": ";/*****************************************************************\\\n;*       BBC BASIC for SDL 2.0 (Windows edition)                   *\n;*       Copyright (c) R. T. Russell, 2023                         *\n;*       aPLib courtesy of Joergen Ibsen, www.ibsensoftware.com    *\n;*                                                                 *\n;*       UNPACK.NAS Compressed file unpacker (32-bit version)      *\n;\\*****************************************************************/\n;\n        GLOBAL  unpack@20,verify@12\n        EXTERN  ReadFile@20,SetFilePointer@16\n;\n        SEGMENT .text\n;\nBUFSIZ  EQU     512\n;\nverify@12:\n        pushad\n        mov     ebp,esp         ; Save stack pointer\n        mov     edi,[ebp+40]    ; Data pointer\n        mov     ecx,[ebp+44]    ; Data size (bytes)\n        mov     ebx,-BUFSIZ     ; V1.1\n        and     esp,ebx         ; Align\n        neg     ebx             ; mask -> BUFSIZ\n        sub     esp,ebx         ; Make space on stack\n        mov     esi,esp         ; Buffer pointer\nvloop:  mov     eax,ecx         ; Get remaining size\n        cmp     eax,ebx         ; Remaining > BUFSIZ ?\n        jbe     vloop1\n        mov     eax,ebx         ; If so, use BUFSIZ\nvloop1: push    eax             ; Save bytes to load/compare\n        push    ecx             ; Save bytes remaining\n        push    eax             ; Make space for NumberOfBytesRead\n        mov     ecx,esp\n        mov     edx,[ebp+36]    ; File handle\n        push    byte 0          ; lpOverlapped\n        push    ecx             ; lpNumberOfBytesRead\n        push    eax             ; nNumberOfBytesToRead\n        push    esi             ; lpBuffer\n        push    edx             ; hFile\n        call    ReadFile@20\n        pop     eax             ; Discard NumberOfBytesRead\n        pop     eax             ; eax = bytes remaining\n        pop     ecx             ; ecx = bytes to compare\n        sub     eax,ecx         ; Adjust bytes remaining\n        jecxz   vloop2\n        push    esi\n        repz    cmpsb           ; Compare file with memory\n        pop     esi\nvloop2: xchg    eax,ecx         ; ecx <- remaining, eax <- result\n        jnz     vloopx          ; Different, so bailout\n        or      ecx,ecx         ; Anything remaining?\n        jnz     vloop           ; Continue comparing\nvloopx: mov     esp,ebp         ; Restore stack pointer\n        mov     [ebp+28],eax    ; Result\n        popad\n        ret     12              ; WINAPI calling convention\n;\nunpack@20:\n        and     dword [esp+20],byte 1 ; Test bit 0, zero remainder\n        jz      near ReadFile@20     ; n.b. lpOverlapped = NULL\n        pushad\n        mov     ebp,esp\n        mov     edx,[ebp+36]    ; hFile\n        mov     edi,[ebp+40]    ; lpBuffer\n        mov     eax,[ebp+48]    ; &nRead\n        mov     eax,[eax]       ; nRead\n        mov     ebx,-BUFSIZ     ; Mask\n        and     esp,ebx         ; Align stack pointer\n        mov     esi,esp         ; Initial buffer pointer\n        neg     ebx             ; Mask -> BUFSIZ\n        sub     esp,ebx         ; Make space on stack for buffer\n        push    edx             ; hFile [esi-4]\n        push    eax             ; Space for last block size [esi-8]\n        push    eax             ; nRead [esi-12]\n        push    ebp\n\n        mov     dl,80H\n        xor     ebx,ebx\nliteral:\n        call    getbyte\n        stosb\n        mov     bl,2\nnexttag:\n        call    getbit\n        jnc     literal\n        xor     ecx,ecx\n        xor     eax,eax \n        call    getbit\n        jnc     codepair\n        call    getbit\n        jnc     shortmatch\n        mov     bl,2\n        inc     ecx\n        mov     al,10H\ngetmorebits:\n        call    getbit\n        adc     al,al\n        jnc     getmorebits\n        jnz     domatch\n        stosb\nnextt1: jmp     short nexttag\n;        \ncodepair:\n        call    getgamma\n        sub     ecx,ebx\n        jnz     normalcodepair\n        call    getgamma\n        jmp     short domatch_lastpos\n;        \nshortmatch:\n        call    getbyte\n        shr     eax,1\n        rcl     ecx,1            \n        jnz     domatch_with_2inc\n\n        pop     ebp             ; saved stack pointer\n        pop     eax             ; discard SerialNumber\n        pop     eax             ; last block size\n        pop     edx             ; hFile\n        mov     esp,ebp         ; Restore stack pointer\n        and     esi,BUFSIZ-1    ; Get offset into buffer\n        jz      noptradj\n        sub     esi,eax         ; How much to adjust pointer\n        push    byte 1          ; dwMoveMethod = FILE_CURRENT\n        push    byte 0          ; lpDistanceToMoveHigh\n        push    esi             ; DistanceToMove (negative)\n        push    edx             ; hFile\n        call    SetFilePointer@16\nnoptradj:\n        sub     edi,[ebp+40]\n        mov     esi,[ebp+48]    ; &nRead\n        mov     [esi],edi       ; return unpacked length\n        popad\n        ret     20              ; WINAPI calling convention\n;        \nnormalcodepair:\n        xchg    eax,ecx\n        dec     eax\n        shl     eax,8\n        call    getbyte\n        call    getgamma\n        cmp     eax,32000\n        jae     domatch_with_2inc\n        cmp     ah,5\n        jae     domatch_with_inc\n        cmp     eax,byte 7FH\n        ja      domatch_new_lastpos\ndomatch_with_2inc:\n        inc     ecx\ndomatch_with_inc:\n        inc     ecx\ndomatch_new_lastpos:\n        xchg    eax,ebp\ndomatch_lastpos:\n        mov     eax,ebp\n        mov     bl,1\ndomatch:\n        push    esi\n        mov     esi,edi\n        sub     esi,eax\n        rep     movsb\n        pop     esi\n        jmp     short nextt1\n;        \ngetbit:\n        add     dl,dl\n        jnz     stillbitsleft\n        xchg    al,dl\n        pushf\n        call    getbyte\n        popf\n        xchg    al,dl\n        adc     dl,dl\nstillbitsleft:\n        ret\n;        \ngetgamma:\n        inc     ecx\ngetgammaloop:\n        call    getbit\n        adc     ecx,ecx\n        call    getbit\n        jc      getgammaloop\n        ret\n;\ngetbyte:\n        test    esi,BUFSIZ-1\n        jnz     getbyt1\n        sub     esi,BUFSIZ      ; Address start of buffer\n        pushad\n        push    eax             ; Make space for NumberOfBytesRead\n        mov     ecx,esp\n        push    byte 0          ; lpOverlapped\n        push    ecx             ; lpNumberOfBytesRead\n        push    dword BUFSIZ    ; nNumberOfBytesToRead\n        push    esi             ; lpBuffer\n        push    dword [esi-4]   ; hFile\n        call    ReadFile@20\n        pop     dword [esi-8]   ; NumberOfBytesRead (may not be BUFSIZ)\n        popad\ngetbyt1:\n        lodsb\n        ret\n"
  },
  {
    "path": "bin/win64/makefile",
    "content": "# Update these paths as necessary to match your installation\nSDL_LIB = -LC:/SDL2-2.26.2/x86_64-w64-mingw32/lib -lSDL2main -lSDL2 \\\n          -LC:/SDL2_ttf-2.20.2/x86_64-w64-mingw32/lib -lSDL2_ttf \\\n          -LC:/SDL2_net-2.2.0/x86_64-w64-mingw32/lib -lSDL2_net \nSDL_INCLUDE = -IC:/SDL2-2.26.2/x86_64-w64-mingw32/include/ \\\n          -IC:/SDL2_ttf-2.20.2/x86_64-w64-mingw32/include/ \\\n          -IC:/SDL2_net-2.2.0/x86_64-w64-mingw32/include/\n\nVPATH = ../../src ../../include\nCXX = gcc -Wall -I ../../include\n\nOBJ = bbmain.o bbexec.o bbeval.o bbcmos.o bbccli.o \\\n      bbcvdu.o bbcvtx.o flood.o bbdata.o bbcsdl.o \\\n      bbasmb.o SDL2_gfxPrimitives.o SDL2_rotozoom.o\n\nall: bbcsdl.exe sdlrun.exe\n\nbbmain.o: bbmain.c BBC.h\n\t$(CXX) -c -O2 -freg-struct-return -ffast-math -fno-finite-math-only $< -o $@\n\nbbexec.o: bbexec.c BBC.h\n\t$(CXX) -c -O2 -freg-struct-return -ffast-math -fno-finite-math-only $< -o $@\n\nbbeval.o: bbeval.c BBC.h\n\t$(CXX) -Wno-array-bounds -c -O2 -freg-struct-return -ffast-math -fmath-errno -fno-finite-math-only $< -o $@\n\nbbasmb.o: bbasmb_x86_64.c BBC.h\n\t$(CXX) -c -Os $< -o $@\n\nbbcmos.o: bbcmos.c bbcsdl.h\n\t$(CXX) -Wno-array-bounds -c $(SDL_INCLUDE) -msse2 -O2 $< -o $@\n\nbbccli.o: bbccli.c bbcsdl.h\n\t$(CXX) -c $(SDL_INCLUDE) -Os $< -o $@\n\nbbcvdu.o: bbcvdu.c bbcsdl.h\n\t$(CXX) -c $(SDL_INCLUDE) -Os $< -o $@\n\nbbcvtx.o: bbcvtx.c bbcsdl.h\n\t$(CXX) -c $(SDL_INCLUDE) -O3 $< -o $@\n\nbbcsdl.o: bbcsdl.c bbcsdl.h version.h\n\t$(CXX) -Wno-unused-value -c $(SDL_INCLUDE) -O2 $< -o $@\n\nSDL2_gfxPrimitives.o: SDL2_gfxPrimitives.c SDL2_gfxPrimitives.h\n\t$(CXX) -c $(SDL_INCLUDE) -O2 $< -o $@\n\nSDL2_rotozoom.o: SDL2_rotozoom.c SDL2_rotozoom.h SDL2_gfxPrimitives.h SDL_stbimage.h stb_image.h dr_mp3.h\n\t$(CXX) -c $(SDL_INCLUDE) -Os $< -o $@\n\nflood.o: flood.c\n\t$(CXX) -c $(SDL_INCLUDE) -O3 $< -o $@\n\nbbdata.o: ../../src/bbdata_x86_64.nas\n\tnasm -f win64 -s ../../src/bbdata_x86_64.nas -o bbdata.o\n\nbbcsdl.exe: $(OBJ)\n\t$(CXX) $(OBJ) \\\n\t-o bbcsdl.exe -lz -lmingw32 -mthreads -mwindows $(SDL_LIB) -Wl,-s -Wl,--export-all-symbols\n\nsdlrun.o: sdlrun.c\n\t$(CXX) -Wall -c -O2 $< -o $@\n\nunpack64.o: unpack64.nas\n\tnasm -f win64 -s unpack64.nas -l unpack64.lst -o unpack64.o\n\nsdlrun.exe: sdlrun.o unpack64.o\n\t$(CXX) sdlrun.o unpack64.o -o sdlrun.exe -lmingw32 -mwindows -Wl,-s \n"
  },
  {
    "path": "bin/win64/sdlrun.c",
    "content": "/******************************************************************\\\n*\t  BBC BASIC for SDL 2.0 (Windows edition)\t\t   *\n*\t  Copyright (c) R. T. Russell, 2024\t\t\t   *\n*\t\t\t\t\t\t\t\t   *\n*\t  Version 1.4, 15-Nov-2024\t\t\t\t   *\n\\******************************************************************/\n\n#include <windows.h>\n#include <windowsx.h>\n#include <objbase.h>\n#include <shlobj.h>\n#include \"version.h\"\n\n#ifdef __x86_64__\n#define SECURITY_PTR 0x128\n#else\n#define SECURITY_PTR 0x118\n#endif\n#define STACK_NEEDED 0x400\n\n\t// Functions in BBCUPCK.NAS\n\nvoid WINAPI unpack (HANDLE, char*, int, DWORD*, int) ;\nBOOL WINAPI verify (HANDLE, char*, int) ;\n\n\t// Structure declaration\n\ntypedef struct tagPROGINFO {\n  int DefaultRAM ;\n  int Library ;\n  int WindowWidth ;\n  int WindowHeight ;\n  int CmdShow ;\n  int Flags ;\n  unsigned int SerialNumber ;\n  int ProgLength ;\n} PROGINFO, *LPPROGINFO ;\n\nint WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,\n\t\t    PSTR szCmdLine, int iCmdShow)\n    {\n\tchar szAppName[_MAX_PATH] ;\n\tchar szLoadDir[_MAX_PATH] ;\n\tchar szTempDir[_MAX_PATH] ;\n\tchar szLibrary[_MAX_PATH] ;\n\tchar szBinaries[_MAX_PATH] ;\n\tchar szFileName[_MAX_PATH] ;\n\tchar szEmptyFile[_MAX_PATH] ;\n\tPROGINFO ProgInfo ;\n\tSHFILEOPSTRUCT shfo = {0} ;\n\tSHELLEXECUTEINFOA sei = {0} ;\n\tHANDLE ThisFile, EmbedFile ;\n\tint signature, offset ;\n\tint embedsize, remain, dirlen, liblen ;\n\tBOOL anyresources = 0 ;\n\tDWORD nRead ;\n\tchar *nameptr ;\n\tvoid *pBuffer ;\n\n\t// Get the path to this file and open it:\n\tGetModuleFileName (NULL, szFileName, _MAX_PATH) ;\n\n\tThisFile = CreateFile (szFileName, GENERIC_READ, FILE_SHARE_READ,\n\t\t\t    NULL, OPEN_EXISTING, 0, NULL) ;\n\n\t// It shouldn't be possible for the file not to exist:\n\tif (ThisFile == INVALID_HANDLE_VALUE)\n\t  return 1;\n\n\t// Discover if there is a signature and if so where it is:\n\tSetFilePointer (ThisFile, SECURITY_PTR, NULL, FILE_BEGIN) ;\n\tReadFile (ThisFile, &signature, sizeof(int), &nRead, NULL) ;\n\tif (signature != 0)\n\t\tnRead = FILE_BEGIN ;\n\telse\n\t\tnRead = FILE_END ;\n\n\t// Read the ProgInfo structure either from the end or just before the signature:\n\toffset = SetFilePointer (ThisFile, signature-sizeof(PROGINFO), NULL, nRead) ;\n\tReadFile (ThisFile, &ProgInfo, sizeof(PROGINFO), &nRead, NULL) ;\n\n\t// Quit if there are no embedded files:\n\tif ((ProgInfo.Library <= 0) || (ProgInfo.Library >= offset))\n\t    {\n\t\tCloseHandle (ThisFile) ;\n\t\treturn 0 ;\n\t    }\n\n\t// Find directory containing this file:\n\tGetFullPathName (szFileName, _MAX_PATH, szLoadDir, &nameptr) ;\n\t*nameptr = '\\0' ;\n\tdirlen = strlen (szLoadDir) ;\n\n\t// Get the path to the temporary directory:\n\tGetTempPath (_MAX_PATH, szTempDir) ;\n\n\t// Set the path to the binaries subdirectory and create it:\n\tGetTempFileName (szTempDir, \"BBC\", 0, szBinaries) ;\n\tDeleteFile (szBinaries) ;\n\tCreateDirectory (szBinaries, NULL) ;\n\tstrcat (szBinaries, \"\\\\\") ;\n\n\t// Set the path to the libraries subdirectory (but don't create it):\n\tstrcpy (szLibrary, szBinaries) ;\n\tstrcat (szLibrary, \"lib\\\\\") ;\n\tliblen = strlen (szLibrary) ;\n\n\t// Set the path to an empty file bin\\$ (but don't create it):\n\tstrcpy (szEmptyFile, szBinaries) ;\n\tstrcat (szEmptyFile, \"$\") ; \n\n\t// Allocate a buffer to hold the uncompressed data:\n\tpBuffer = malloc (ProgInfo.DefaultRAM) ;\n\tif (pBuffer == NULL)\n\t\treturn 2 ;\n\n\t// For each of the embedded files:\n\tint embedptr = offset - ProgInfo.ProgLength - ProgInfo.Library ;\n\twhile (embedptr < (offset - ProgInfo.ProgLength)) \n\t    {\n\t\tint len ;\n\t\tchar type ;\n\t\tSetFilePointer (ThisFile, embedptr, NULL, FILE_BEGIN) ;\n\t\tReadFile (ThisFile, &type, 1, &nRead, NULL) ;\n\t\tReadFile (ThisFile, &embedsize, 4, &nRead, NULL) ;\n\t\tReadFile (ThisFile, szFileName, _MAX_PATH, &nRead, NULL) ;\n\t\tlen = strlen(szFileName) ;\n\t\tembedptr += len + 6 ;\n\n\t\t// type == 0/1 for @dir$, type == 2/3 for @dir$\\bin\\lib\n\t\tif (type & 2)\n\t\t    {\n\t\t\tmemmove (szFileName + liblen, szFileName, len + 1) ;\n\t\t\tmemcpy (szFileName, szLibrary, liblen) ;\n\t\t    }\n\t\telse\n\t\t    {\n\t\t\tmemmove (szFileName + dirlen, szFileName, len + 1) ;\n\t\t\tmemcpy (szFileName, szLoadDir, dirlen) ;\n\t\t\tanyresources = 1 ;\n\t\t    }\n\n\t\t// Check if the file already exists:\n\t\tEmbedFile = CreateFile (szFileName, GENERIC_READ,\n\t\t\t  FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL) ;\n\n\t\t// If it does, verify the existing contents against the embedded data:\n\t\tif (EmbedFile != INVALID_HANDLE_VALUE)\n\t\t    {\n\t\t\tint diff = 0 ;\n\t\t\tSetFilePointer (ThisFile, embedptr, NULL, FILE_BEGIN) ;\n\n\t\t\twhile ((diff == 0) && ((remain = embedptr + embedsize -\n\t\t\t\tSetFilePointer (ThisFile, 0, NULL, FILE_CURRENT)) > 0))\n\t\t\t    {\n\t\t\t\tnRead = ProgInfo.SerialNumber ;\n\t\t\t\tunpack (ThisFile, pBuffer, min(remain, ProgInfo.DefaultRAM),\n\t\t\t\t\t &nRead, type) ;\n\t\t\t\tdiff = verify (EmbedFile, pBuffer, nRead) ;\n\t\t\t    }\n\t\t\tCloseHandle (EmbedFile) ;\n\t\t\tif (diff)\n\t\t\t\tEmbedFile = INVALID_HANDLE_VALUE ;\n\t\t    }\n\n\t\t// If the file doesn't exist OR is different from the existing one, create it:\n\t\tif (EmbedFile == INVALID_HANDLE_VALUE)\n\t\t    {\n\t\t\tCloseHandle (CreateFile (szEmptyFile, GENERIC_WRITE, 0,\n\t\t\t\t\t\t NULL, CREATE_ALWAYS, 0, NULL)) ;\n\t\t\t\n\t\t\tshfo.hwnd = (HWND) 1 ; // Any non-zero value!\n\t\t\tshfo.wFunc = FO_MOVE ;\n\t\t\tshfo.pFrom = szEmptyFile ;\n\t\t\tshfo.pTo   = szFileName ;\n\t\t\tshfo.fFlags = FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR ;\n\t\t\t*(szFileName + strlen(szFileName) + 1) = '\\0' ;\n\t\t\t*(szEmptyFile + strlen(szEmptyFile) + 1) = '\\0' ;\n\t\t\tSHFileOperation (&shfo) ; // Create directory if necessary\n\n\t\t\tEmbedFile = CreateFile (szFileName, GENERIC_WRITE, 0,\n\t\t\t\t\t   NULL, CREATE_ALWAYS, 0, NULL) ;\n\n\t\t\tif (EmbedFile == INVALID_HANDLE_VALUE)\n\t\t\t    {\n\t\t\t\tMessageBox(NULL, szFileName, \"SDLRUN: Cannot create file\", 0);\n\t\t\t\treturn 3 ;\n\t\t\t    }\n\n\t\t\tSetFilePointer (ThisFile, embedptr, NULL, FILE_BEGIN) ;\n\n\t\t\twhile ((remain = embedptr + embedsize -\n\t\t\t\tSetFilePointer (ThisFile, 0, NULL, FILE_CURRENT)) > 0)\n\t\t\t    {\n\t\t\t\tnRead = ProgInfo.SerialNumber ;\n\t\t\t\tunpack (ThisFile, pBuffer, min(remain, ProgInfo.DefaultRAM),\n\t\t\t\t\t&nRead, type) ;\n\t\t\t\tWriteFile (EmbedFile, pBuffer, nRead, &nRead, NULL) ;\n\t\t\t    }\n\n\t\t\tCloseHandle (EmbedFile) ;\n\t\t    }\n\t\tembedptr += embedsize ;\n\t    }\n\n\tfree (pBuffer) ;\n\tReadFile (ThisFile, szAppName, _MAX_PATH, &nRead, NULL) ;\n\tCloseHandle (ThisFile) ;\n\n\t// Get path to program .bbc file and hide it:\n\tif (anyresources)\n\t\tstrcpy (szFileName, szLoadDir) ;\n\telse\n\t\tstrcpy (szFileName, szBinaries) ;\n\tstrcat (szFileName, szAppName) ;\n\tstrcat (szFileName, \".bbc\") ;\n\tSetFileAttributes (szFileName, FILE_ATTRIBUTE_HIDDEN) ;\n\n\t// Enclose in quotes in case embedded space(s):\n\tstrcpy (szEmptyFile, \"\\042\") ;\n\tstrcat (szEmptyFile, szFileName) ;\n\tstrcat (szEmptyFile, \"\\042 \") ;\n\tstrcat (szEmptyFile, szCmdLine) ;\n\n\t// Run BBCSDL:\n\tstrcpy (szLibrary, szBinaries) ;\n\tstrcat (szLibrary, \"bbcsdl.exe\") ;\n\n\t/// ShellExecute ((HWND) 0, \"open\", szLibrary, szEmptyFile, szLoadDir, ProgInfo.CmdShow) ;\n\n\tsei.cbSize = sizeof(sei) ;\n        sei.fMask = SEE_MASK_NOCLOSEPROCESS ;\n        sei.hwnd = NULL ;\n\tsei.lpVerb = \"open\" ;\n        sei.lpFile = szLibrary ;\n        sei.lpParameters = szEmptyFile ;\n        sei.lpDirectory = szLoadDir ;\n        sei.nShow = ProgInfo.CmdShow ;\n        ShellExecuteEx (&sei) ;\n\n\t// Wait for process to finish:\n        if (sei.hProcess)\n\t    {\n\t\tDWORD res ;\n\t\tdo res = WaitForSingleObject (sei.hProcess, 1000) ;\n\t\twhile (res == WAIT_TIMEOUT) ;\n\t\tCloseHandle (sei.hProcess) ;\n\t    }\n\n\t// Delete the binaries directory and all the files it contains:\n\t*(szBinaries + strlen(szBinaries) + 1) = '\\0' ;\n\tshfo.hwnd = (HWND) 1 ; // Any non-zero value!\n\tshfo.pFrom = szBinaries ;\n\tshfo.wFunc = FO_DELETE ;\n\tshfo.fFlags = FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR ;\n\tSHFileOperation (&shfo) ; \n\n\treturn 0 ;\n    }\n"
  },
  {
    "path": "bin/win64/unpack64.nas",
    "content": ";/*****************************************************************\\\n;*\tBBC BASIC for SDL 2.0 (Windows edition)\t\t\t   *\n;*\tCopyright (c) R. T. Russell, 2024\t\t\t   *\n;*\taPLib courtesy of Joergen Ibsen, www.ibsensoftware.com\t   *\n;*\t\t\t\t\t\t\t\t   *\n;*\tUNPACK.NAS Compressed file unpacker (64-bit version)\t   *\n;\\*****************************************************************/\n;\n\tGLOBAL  unpack,verify\n\tEXTERN  ReadFile,SetFilePointer\n;\n\tSEGMENT .text\n;\nBUFSIZ  EQU\t512\n;\n; Parameters: rcx = hFile\n;\t      rdx = lpBuffer\n;\t      r8  = nNumberOfBytesToVerify\n;     Result: eax = non-zero if different\n;  Preserved: rbx, rbp, rdi, rsi, r12, r13, r14, r15\n;\nverify:\n\tpush\trbp\n\tpush\trsi\n\tpush\trdi\n\tmov\trbp,rsp\t\t; copy stack pointer\n\txchg\trcx,r8\t\t; rcx = nBytes, r8 = hFile\n\tmov\trdi,rdx\t\t; lpBuffer\n\n\tmov\tedx,BUFSIZ\n\tneg\trdx\n\tand\trsp,rdx\t\t; align stack pointer\n\tneg\tedx\n\tsub\trsp,rdx\t\t; make space on stack\n\tmov\trsi,rsp\n\nvloop:\tmov\teax,ecx\n\tcmp\teax,edx\t\t; remaining >- BUFSIZ ?\n\tjbe\tvloop1\n\tmov\teax,edx\t\t; If so, use BUFSIZ\n\t\nvloop1:\tpush\tr8\n\tpush\trax\t\t; Bytes to read\n\tpush\trcx\t\t; Bytes remaining\n\tpush\trdx\t\t; BUFSIZ\n\n\tmov\trcx,r8\t\t; hFile\n\tmov\trdx,rsi\t\t; lpBuffer\n\tmov\tr8,rax\t\t; nNumberOfBytesToRead\n\txor\tr9d,r9d\t\t; lpNumberOfBytesRead\n\tpush\tbyte 0\t\t; lpOverlapped\n\n\tsub\trsp,32\t\t; Shadow space\n\tcall\tReadFile\n\tadd\trsp,40\n\n\tpop\trdx\n\tpop\trax\t\t; rax = bytes remaining\n\tpop\trcx\t\t; rcx = bytes just read\n\tpop\tr8\n\n\tsub\teax,ecx\t\t; Adjust bytes remaining\n\tjrcxz\tvloop2\n\tpush\trsi\n\trepz\tcmpsb\t\t; Compare file with memory\n\tpop\trsi\n\nvloop2:\txchg\teax,ecx\t\t; ecx <- remaining, eax <- result\n\tjnz\tvloopx\t\t; Different, so bailout\n\tor\tecx,ecx\t\t; Anything remaining?\n\tjnz\tvloop\t\t; Continue comparing\n\nvloopx:\tmov\trsp,rbp\t\t; Restore stack pointer\n\tpop\trdi\n\tpop\trsi\n\tpop\trbp\n\tret\n;\n; Parameters: rcx = hFile\n;\t      rdx = lpBuffer\n;\t      r8 = nNumberOfBytesToRead\n;\t      r9 = lpNumberOfBytesRead\n;\t[rsp+40] = lpOverlapped\n;  Preserved: rbx, rbp, rdi, rsi, r12, r13, r14, r15\n;\nunpack:\n\tand\tqword [rsp+40],byte 1\t; Test bit 0, zero remainder\n\tjz\tnear ReadFile\t; n.b. lpOverlapped = NULL\n\n\tpush\trbp\n\tmov\trbp,rsp\t\t; copy stack pointer\n\tmov\tr10,rcx\t\t; hFile\n\n\tmov\teax,BUFSIZ\n\tneg\trax\n\tand\trsp,rax\t\t; align stack pointer\n\tmov\trcx,rsp\n\tneg\trax\n\tsub\trsp,rax\t\t; make space on stack\n\n\tpush\trbx\n\tpush\trsi\n\tpush\trdi\n\n\tpush\trdx\n\n\tmov\trsi,rcx\n\tmov\trdi,rdx\n\n\tcld\n\tmov\tdl,80h\n\txor\tebx,ebx\n\nliteral:\n\tcall\tgetbyte\n\tstosb\n\tmov\tbl,2\nnexttag:\n\tcall\tgetbit\n\tjnc\tliteral\n\n\txor\tecx,ecx\n\tcall\tgetbit\n\tjnc\tcodepair\n\txor\teax,eax\n\tcall\tgetbit\n\tjnc\tshortmatch\n\tmov\tbl,2\n\tinc\tecx\n\tmov\tal,10h\ngetmorebits:\n\tcall\tgetbit\n\tadc\tal,al\n\tjnc\tgetmorebits\n\tjnz\tdomatch\n\tstosb\n\tjmp\tshort nexttag\n;\ncodepair:\n\tcall\tgetgamma_no_ecx\n\tsub\tecx,ebx\n\tjnz\tnormalcodepair\n\tcall\tgetgamma\n\tjmp\tshort domatch_lastpos\n;\nshortmatch:\n\tcall\tgetbyte\n\tshr\teax,1\n\tjz\tdonedepacking\n\tadc\tecx,ecx\n\tjmp\tshort domatch_with_2inc\n;\nnormalcodepair:\n\txchg\teax,ecx\n\tdec\teax\n\tshl\teax,8\n\tcall\tgetbyte\n\tcall\tgetgamma\n\n\tcmp\teax,32000\n\tjae\tshort domatch_with_2inc\n\tcmp\tah,5\n\tjae\tshort domatch_with_inc\n\tcmp\teax,7fh\n\tja\tshort domatch_new_lastpos\n\ndomatch_with_2inc:\n\tinc\tecx\n\ndomatch_with_inc:\n\tinc\tecx\n\ndomatch_new_lastpos:\n\txchg\teax,r8d\ndomatch_lastpos:\n\tmov\teax,r8d\n\n\tmov\tbl,1\n\ndomatch:\n\tpush\trsi\n\tmov\trsi,rdi\n\tsub\trsi,rax\n\trep\tmovsb\n\tpop\trsi\n\tjmp\tnexttag\n;\ngetbit:\n\tadd\tdl,dl\n\tjnz\tstillbitsleft\n        xchg    al,dl\n        pushf\n        call    getbyte\n        popf\n        xchg    al,dl\n\tadc\tdl,dl\nstillbitsleft:\n\tret\n;\ngetgamma:\n\txor\tecx,ecx\ngetgamma_no_ecx:\n\tinc\tecx\ngetgammaloop:\n\tcall\tgetbit\n\tadc\tecx,ecx\n\tcall\tgetbit\n\tjc\tgetgammaloop\n\tret\n;\ndonedepacking:\n\tpop\trdx\n\tsub\trdi,rdx\n\n\txchg\trdi,[r9]\t; [r9] = nRead, last block size = [r9]\n\tand\tesi,BUFSIZ-1\t; Get offset into buffer\n\tjz\tnoptradj\n\tsub\trsi,rdi\t\t; How much to adjust pointer (negative)\n\n\tpush\trcx\n\tpush\trdx\n\tpush\tr8\n\tpush\tr9\t\t; lpNumberOfBytesRead\n\tpush\tr10\n\n\tmov\trcx,r10\t\t; hFile\t\n\tmov\trdx,rsi\t\t; DistanceToMove (negative)\n\txor\tr8d,r8d\t\t; lpDistanceToMoveHigh\n\tmov\tr9d,1\t\t; dwMoveMethod = FILE_CURRENT\n\n\tsub\trsp,32\t\t; Shadow space\n        call    SetFilePointer\n\tadd\trsp,32\n\n\tpop\tr10\n\tpop\tr9\n\tpop\tr8\n\tpop\trdx\n\tpop\trcx\n\nnoptradj:\n\tpop\trdi\n\tpop\trsi\n\tpop\trbx\n\n\tmov\trsp,rbp\n\tpop\trbp\n\tret\n;\n; In:  r10 = hFile (to refill buffer)\n;      r9 = lpNumberOfBytesRead\n;      rsi = buffer pointer (on stack)\n; Out: [r9] = nRead (if buffer refilled)\n;      al = byte read\n;      \ngetbyte:\n\ttest\trsi,BUFSIZ-1\t; Buffer empty ?\n\tjnz\tgetbyt1\n\n\tpush\trax\n\tpush\trcx\n\tpush\trdx\n\tpush\tr8\n\tpush\tr9\t\t; lpNumberOfBytesRead\n\tpush\tr10\n\n\tmov\teax,BUFSIZ\n\tsub\trsi,rax\n\n\tmov\trcx,r10\t\t; hFile\n\tmov\trdx,rsi\t\t; lpBuffer\n\tmov\tr8,rax\t\t; nNumberOfBytesToRead\n\tpush\tbyte 0\t\t; lpOverlapped\n\n\tsub\trsp,32\t\t; Shadow space\n\tcall\tReadFile\n\tadd\trsp,40\n\n\tpop\tr10\n\tpop\tr9\n\tpop\tr8\n\tpop\trdx\n\tpop\trcx\n\tpop\trax\ngetbyt1:\n\tlodsb\n\tret\n"
  },
  {
    "path": "console/linux/makefile",
    "content": "VPATH = ../../src ../../include ../../../BBCSDL/src ../../../BBCSDL/include\nCXX = gcc -Wall -I ../../include -I ../../../BBCSDL/include\n\nOBJ = bbmain.o bbexec.o bbeval.o bbasmb.o bbdata.o bbccos.o bbccon.o\n\nall: bbcbasic\n\nbbmain.o: bbmain.c BBC.h\n\t$(CXX) -c -O2 -ffast-math -fno-finite-math-only $< -o $@\n\nbbexec.o: bbexec.c BBC.h\n\t$(CXX) -c -O2 -ffast-math -fno-finite-math-only $< -o $@\n\nbbeval.o: bbeval.c BBC.h\n\t$(CXX) -Wno-array-bounds -c -O2 -ffast-math -fmath-errno -fno-finite-math-only $< -o $@\n\nbbasmb.o: bbasmb_x86_64.c BBC.h\n\t$(CXX) -c -Os $< -o $@\n\nbbccos.o: bbccos.c bbccon.h\n\t$(CXX) -Wno-array-bounds -Wno-unused-result -c -Os $< -o $@\n\nbbccon.o: bbccon.c bbccon.h\n\t$(CXX) -Wno-array-bounds -Wno-unused-result -c -Os $< -o $@\n\nbbdata.o: ../../../BBCSDL/src/bbdata_x86_64.nas\n\tnasm -f elf64 -s ../../../BBCSDL/src/bbdata_x86_64.nas -o bbdata.o\n\nbbcbasic: $(OBJ)\n\t$(CXX) $(OBJ) -L . -L/usr/include -ldl -lm -lrt -pthread \\\n\t-o bbcbasic -Wl,-s -Wl,-R,'$$ORIGIN'\n\tcp bbcbasic ../../\n"
  },
  {
    "path": "console/macm1/makefile",
    "content": "VPATH = ../../src ../../include ../../../BBCSDL/src ../../../BBCSDL/include\nCXX = gcc -Wall -I ../../include -I ../../../BBCSDL/include\n\nOBJ = bbmain.o bbexec.o bbeval.o bbasmb.o bbdata.o bbccos.o bbccon.o\n\nall: bbcbasic\n\nbbmain.o: bbmain.c BBC.h\n\t$(CXX) -c -O2 -ffast-math -fno-finite-math-only $< -o $@\n\nbbexec.o: bbexec.c BBC.h\n\t$(CXX) -c -O2 -ffast-math -fno-finite-math-only $< -o $@\n\nbbeval.o: bbeval.c BBC.h\n\t$(CXX) -Wno-array-bounds -c -O2 -ffast-math -fmath-errno -fno-finite-math-only $< -o $@\n\nbbasmb.o: bbasmb_arm_64.c BBC.h\n\t$(CXX) -c -Os $< -o $@\n\nbbccos.o: bbccos.c bbccon.h\n\t$(CXX) -Wno-array-bounds -Wno-unused-result -c -Os $< -o $@\n\nbbccon.o: bbccon.c bbccon.h\n\t$(CXX) -Wno-array-bounds -Wno-unused-result -c -Os $< -o $@\n\nbbdata.o: ../../../BBCSDL/src/bbdata_arm_64.s\n\tas ../../../BBCSDL/src/bbdata_arm_64.s -o bbdata.o\n\nbbcbasic: $(OBJ)\n\t$(CXX) $(OBJ) -F/Library/Frameworks -L . \\\n\t-framework Foundation \\\n\t-o bbcbasic -L/usr/include -ldl -lm\n\tcp bbcbasic ../../\n"
  },
  {
    "path": "console/macos/makefile",
    "content": "VPATH = ../../src ../../include ../../../BBCSDL/src ../../../BBCSDL/include\nCXX = gcc -Wall -mmacosx-version-min=10.6 -I ../../include -I ../../../BBCSDL/include\n\nOBJ = bbmain.o bbexec.o bbeval.o bbasmb.o bbdata.o bbccos.o bbccon.o\n\nall: bbcbasic\n\nbbmain.o: bbmain.c BBC.h\n\t$(CXX) -c -O2 -ffast-math -fno-finite-math-only $< -o $@\n\nbbexec.o: bbexec.c BBC.h\n\t$(CXX) -c -O2 -ffast-math -fno-finite-math-only $< -o $@\n\nbbeval.o: bbeval.c BBC.h\n\t$(CXX) -Wno-array-bounds -c -O2 -ffast-math -fmath-errno -fno-finite-math-only $< -o $@\n\nbbasmb.o: bbasmb_x86_64.c BBC.h\n\t$(CXX) -c -Os $< -o $@\n\nbbccos.o: bbccos.c bbccon.h\n\t$(CXX) -Wno-array-bounds -Wno-unused-result -c -Os $< -o $@\n\nbbccon.o: bbccon.c bbccon.h\n\t$(CXX) -Wno-array-bounds -Wno-unused-result -c -Os $< -o $@\n\nbbdata.o: ../../../BBCSDL/src/bbdata_x86_64.nas\n\tnasm --prefix _ -f macho64 -s ../../../BBCSDL/src/bbdata_x86_64.nas -o bbdata.o\n\nbbcbasic: $(OBJ)\n\t$(CXX) $(OBJ) -F/Library/Frameworks -L . \\\n\t-framework Foundation \\\n\t-o bbcbasic -L/usr/include -ldl -lm\n\tcp bbcbasic ../../\n"
  },
  {
    "path": "console/raspi/makefile",
    "content": "VPATH = ../../src ../../include ../../../BBCSDL/src ../../../BBCSDL/include\nCXX = gcc -Wall -I ../../include -I ../../../BBCSDL/include\nCXXFLAGS = -march=armv7-a -mthumb -munaligned-access -mfloat-abi=hard -c\n\nOBJ = bbmain.o bbexec.o bbeval.o bbasmb.o bbdata.o bbccos.o bbccon.o\n\nall: bbcbasic\n\nbbmain.o: bbmain.c BBC.h\n\t$(CXX) -Wno-attributes $(CXXFLAGS) -O2 -ffast-math -fno-finite-math-only $< -o $@\n\nbbexec.o: bbexec.c BBC.h\n\t$(CXX) $(CXXFLAGS) -DARMHF -O2 -ffast-math -fno-finite-math-only $< -o $@\n\nbbeval.o: bbeval.c BBC.h\n\t$(CXX) -Wno-array-bounds $(CXXFLAGS) -O2 -ffast-math -fmath-errno -fno-finite-math-only $< -o $@\n\nbbasmb.o: bbasmb_arm_32.c BBC.h\n\t$(CXX) $(CXXFLAGS) -Os $< -o $@\n\nbbccos.o: bbccos.c bbccon.h\n\t$(CXX) -Wno-array-bounds -Wno-unused-result $(CXXFLAGS) -Os $< -o $@\n\nbbccon.o: bbccon.c bbccon.h\n\t$(CXX) -Wno-array-bounds -Wno-unused-result $(CXXFLAGS) -O2 $< -o $@\n\nbbdata.o: ../../../BBCSDL/src/bbdata_arm_32.s\n\tas ../../../BBCSDL/src/bbdata_arm_32.s -o bbdata.o\n\nbbcbasic: $(OBJ)\n\t$(CXX) $(OBJ) -L . -L/usr/lib/ -ldl -lm -lrt -pthread \\\n\t-o bbcbasic -Wl,-s -Wl,-R,'$$ORIGIN'\n\tcp bbcbasic ../../\n"
  },
  {
    "path": "console/rpi64/makefile",
    "content": "VPATH = ../../src ../../include ../../../BBCSDL/src ../../../BBCSDL/include\nCXX = gcc -Wall -I ../../include -I ../../../BBCSDL/include\n\nOBJ = bbmain.o bbexec.o bbeval.o bbasmb.o bbdata.o bbccos.o bbccon.o\n\nall: bbcbasic\n\nbbmain.o: bbmain.c BBC.h\n\t$(CXX) -Wno-attributes -c -O2 -ffast-math -fno-finite-math-only $< -o $@\n\nbbexec.o: bbexec.c BBC.h\n\t$(CXX) -c -O2 -ffast-math -fno-finite-math-only $< -o $@\n\nbbeval.o: bbeval.c BBC.h\n\t$(CXX) -Wno-array-bounds -c -O2 -ffast-math -fmath-errno -fno-finite-math-only $< -o $@\n\nbbasmb.o: bbasmb_arm_64.c BBC.h\n\t$(CXX) -c -Os $< -o $@\n\nbbccos.o: bbccos.c bbccon.h\n\t$(CXX) -Wno-array-bounds -Wno-unused-result -c -Os $< -o $@\n\nbbccon.o: bbccon.c bbccon.h\n\t$(CXX) -Wno-array-bounds -Wno-unused-result -c -O2 $< -o $@\n\nbbdata.o: ../../../BBCSDL/src/bbdata_arm_64.s\n\tsed 's/_\\([a-z]*\\)/\\1/g' <../../../BBCSDL/src/bbdata_arm_64.s >bbdata.s\n\tas bbdata.s -o bbdata.o\n\nbbcbasic: $(OBJ)\n\t$(CXX) $(OBJ) -L . -L/usr/lib/ -ldl -lm -lrt -pthread \\\n\t-o bbcbasic -Wl,-s -Wl,-R,'$$ORIGIN'\n\tcp bbcbasic ../../\n"
  },
  {
    "path": "console/win64/makefile",
    "content": "# Update these paths as necessary to match your installation\nVPATH = ../../src ../../include ../../../BBCSDL/src ../../../BBCSDL/include\nCXX = gcc -Wall -I ../../include -I ../../../BBCSDL/include\n\nOBJ = bbmain.o bbexec.o bbeval.o bbasmb.o bbdata.o bbccos.o bbccon.o\n\nall: bbcbasic.exe\n\nbbmain.o: bbmain.c BBC.h\n\t$(CXX) -c -O2 -freg-struct-return -ffast-math -fno-finite-math-only $< -o $@\n\nbbexec.o: bbexec.c BBC.h\n\t$(CXX) -c -O2 -freg-struct-return -ffast-math -fno-finite-math-only $< -o $@\n\nbbeval.o: bbeval.c BBC.h\n\t$(CXX) -Wno-array-bounds -c -O2 -freg-struct-return -ffast-math -fmath-errno -fno-finite-math-only $< -o $@\n\nbbasmb.o: bbasmb_x86_64.c BBC.h\n\t$(CXX) -c -Os $< -o $@\n\nbbccos.o: bbccos.c bbccon.h\n\t$(CXX) -Wno-array-bounds -c -Os $< -o $@\n\nbbccon.o: bbccon.c bbccon.h\n\t$(CXX) -Wno-array-bounds -Wno-unused-value -c -Os $< -o $@\n\nbbdata.o: ../../../BBCSDL/src/bbdata_x86_64.nas\n\tnasm -f win64 -s ../../../BBCSDL/src/bbdata_x86_64.nas -o bbdata.o\n\nbbcbasic.exe: $(OBJ)\n\t$(CXX) $(OBJ) \\\n\t-o bbcbasic.exe -lmingw32 -lwinmm -Wl,-s -Wl,--export-all-symbols\n\tcopy bbcbasic.exe ..\\..\\\n"
  },
  {
    "path": "examples/games/.Tables/CrnrSlic.ptb",
    "content": "xYwxxxh˼˼˼˘Wxwhyghixyx͛viwwxxxxihyyy͊hyyixvhxwxxwvhxhyʬ˼ʼʉzxʫhxxxyvhwwxyyy˻˺ʺʻixxxy˼˼˚yyʬ˼ʬʚʬʼʼ˼˼˼wXwhi˼˼˼ʬ˼ʼʺ˼˼˼gV'wvvufVfWT˫˺fF7guevVVfGT˼˼˼˩˼̼˼˩wV6vfvvgUwWcˬ˼ʬwU7wvvfgFwVT˺˻ˬWwfwwgXvvgVyyyͺ˼˼˼XvgvvvXggf˼˼˼ˊ˼˼˼HfWwvvHwWVͽͽܽ˽˼XwgwgvwWvfVwgwxhwʬʬʼˉʬʼ˼˼̼˼xxxxyx۽͉ˬʼʼxxʫʺhxxxʬʼʬ˼˼˼˼yyzzyxx˼˼˺ͼ˽˼ۼ˺xyxʼʼʼy۽iyyy˼˼˼˻˼˖wxxywvyhguggXvvg͙iWuhhhvgzyʺʻ˼˼˼˪xftWwWguvViyyyxgeggguvefyʺ˫ʺgGUwgfgfvveW˼˼˼˼˼˼˚ʺʉxGewfvVwvtg˼˚ͻ۽۽͚g8ehguggueh˼˼˼˼˼˼ˉyͼ˼˽˽zxGdwWvgwvegwwxhwwhwwͽܽܽʬʬˬ˚yyufwvWvgggf͆wwhxxgw˼˼˼˚̼˼˼̼˼˼˼wwhxxgwʻʺ˺͉yxxxhiʬʬ˼ʺhhhh˼˼˼xyyxvxwxxwiˬ˼xiwxwX˼˼˼˺ͽ۽۽ʺ˻˼˼˼ˉzyxyʺʺޘiyyyyyyʻʫ͈iyxyʺ˻͉yzyxxyWfeVuVWfuefWedFeVVfueVyyyXfeWvggwufgGVUvVuVVfdUf݆xhxvwxxxxx͚yx͚wxxxvxxxwxwxͽ۽͊hiyhi˼˼˼xyy˼˼˼ʺʻxixxhgwxvhyXʼˬˬ˺۽̺ܽܽzvwwxxxhvʻʬ˚wxwxwx˼˼˼ywvxwgxxxͽ۽۽vxwwhxvˬʼʼʙ͚̽̽˽fuhvfwvgggu˼˼˼̺gwvxwhyxxxwxwxxw˼˼˼wxʻ̼̼̽xx˼˼˼uwvwgwuxgvvy˻˻vwxwgʬʼʬvXxuxghvhwxxw˼˼˼˩˻˼˼˼˼gvwwxxwwxhxyxx˼˼˼ʻʫ˼˼˼ˇxxxxhyxx̽˽˼hxhyxyx˼˼˼ʬˬʬ˼˼˼vwywxxh˻˼xiyy۽yyxyy˼ʼʼʻ˼˼˼̼˽̽ۼۼyyzyxyyyy͆wgwvhvwhgwyxxyxxxxxx͉xyy˼˼˼xxxxxyyx˼˼˼ˊ˼˼˼yy˼˼˼xxxxhyyixwxhvxWx˻˪ͻ͘yyyyvxWxgxwgwgwwhgg˼˼˼ˈxyy˼˼˼˺˼ܼ˼˼˼˼˩˼˼˼guwvgwwgfxu˼˼˼ˈxx˼˼˼VwtgvWFweug۽ܽ˼˼˼˼˼ۼ˼fvsWfGVfeuV˼˼ܽfgtgeWWwdugy˼˼˼evdvVfVVvUdgܽܽzy˼˼˼ˉyyy˼˼˼ͽܽ۽͈y̼˼̽˼xyy̼˼˼͉ʼ˼ˬʼˬ˼ܽܽ˼˼˼ͽܽ۽͉yyyy˫ˉxyyyyxyyˬyyxݻʫyyxʬʬ˼ͺݺʬʬ˼ʺxYwxxxh޺ʫhhyhxwgvhwhxihxxx˼˼˼˻ʫʼͪͺʻxhxwwyvʫ˼wXgWhhxyhxͪixhyyzyyyͽ۽˼˼ܼ˼˼˼˼˼˼͚zʼ˼ˬyyxyx۽ܽܽ˼ܼ˼˼˼˼̼˼˼˼͈yyixxxufvwggvWhgvvwvwhwghwvxwwwhwhwwwhxwxwxvwxxhhxwfgvwgwgWwfxxxx˼˼˼ˉxxxywwigxhx˼˼˼˺ʬʬˬˉyy˼˼˼ʬʼʬʊxxyyyʫʫhxxhyʬˬʬʛ˼˼˼xyyhwuggXwvWiguwhhhwvX˼˼˼˼˼˼˼˼˼˼xvtvWwWgfvGxwewgggfveW˻˻̽˽˼˺ʺʹʬʬʼˉxixxhxxyx˼˼˼˺ʬ˼˼̼ʬʬʼʈxyxyxywhhiwwʬˬ˼˼˼̼˺gdGvwvvfEfWSʬʬʼ˺ʫʺʬʬʼwsWuwwww5wWSʬʬʼ˹˼˼˼ʬʬʼ˹fdWvvfwgEvGSʫʺ˼˼˼˹ʫʺʫʺfdVfgfgfDfVBʺ˻ʺ͚wgufwfheugyyiyhguggXvvgޚʺʬxftWwWguvVyy˼˼˼hWugghvvgyͪx͘xixyxʫʉx˼˼˼wx͇yx͗yxxxyxyz˼˼˼ˉyy˼˼˼˙˼˼˼ˈyyʬʬʼxxʫʺ˼˼˼wdFvfggv5wVT˼˼˼ʬʬʬ˺ʬwU7wvvfgFwVTʼʬʬgeGuwgwFvFT˼˼˼̪˼˼˼˻˫veFvfgWvEgUCgguwgfWfdvvUʬ͙ͽͽ۽XgvvvfWuwf˼˼˼ˉygxvgvggevvfͼ˼˽˽˼˼˼˼˼˼hgfwuggugf͗hyyywxxhghwXhxhxw͇ixxxy݆whwxxwxwxwv˼˼˼ˇxxxxyއhyxyxʬʬˬ˺xXgxxvwyhwxhxvʫ˻˻˻ʬʬʼʻihxxxyyyxihhxyy˼˼˼˺˼˼˼˪yyyhwxhghxޚ݆wwxwxh˼˼˼ˆyxxxxwxhxhXw͆wxwxv͆yxxxixyxyh͗yxyxxxxyxiʺʇwx͊x͇xyx˼˼˼xzyxvwxwxxh͚ݚwxxhxxwxxxwxxwxxxͽ۽͚wxw͗xyh7ewWgXdfVʼʼ˼̼ۼ̼˼˼˼ʼʼʼͽ۽ͼ̼ۼg7VwgvggSvVU̼ۼ̼ʼʬ˼˼ˬʼͼ̼ۼ̬˼ˬʼX7fwgWhdeV˼ʬʼ˼˼˼ͽ۽ͬʼʼ˼ͬʼˬʼͽ۽ͽͽ۽h(fhhhhdfF͇xwxxxyyyz˼˼˼xxxxhxhxyxyhyh͙ʺʺyxyygxvgvggevvfʻ˼˼˼ܽ۽WgwfvXuvvfy˼˼˼fgvwWvggdfuU˼ۼ˽͙˼˼˼ggggwhuuffʼhguffwewugyyޚ˼˼˼hWvgghvugʻʻgfvWWxuwtVyyXgvgghvugiyyʺʼʼ˼̼ۼ̉xxͽ۽͙˼ˬʼˬ˼ʬʚͻXgwgwWevvV˻˻˻WgvwgugfTfvV˺˼˼˼˼˼˼˼ͽͽ۽˼˼˼yz˼˼˼ˊWWwXuhgevFyyzHfwgwgeuvW̼ۼ˼˼˼˼XWvWghvvgxyy˼˼˼ˉhhvXhhvvggguGgxewuV˼˼˼˻˼˼˼˩hgfWWwewfg̽˽˼˼˼˼vdVvgwfw5gFT˼˼˼˺˺˻ʬʼʬweFgvugFwGTʻgUVwfwvwFv7T˼˼˼˹˼˼˼ʬ˼ʬveUvWgfvEgFCʼʼʼʈxyxyxʬʬʼˉʬʬʼʙ˻ʺ˼˼̼ˇwihhwwxyxx˼˼˼˺ʬ˻ʺyhxxix˼˼̼˺zy˼˼˼˻gfvwugHewW˼˽̼fgvwgfgWTuvVܽ۽˼˼˼˺yzy˻˼˼˼˙͚gWwhvXWeuF˼˼˼WgvwvgXewV˻˼whxvxwx͇yxݚwwxxxxwwxxxͽ۽͆xxxwhxwxxx͚yyyyxyyxyyyyʻxxxhiyy˼˼˼˙ʬ˼ʼʇxhhixwxhwxhyv˻ʻʬˬʬˉyyy˻˼xxgXxv˼˼˼˼˼˼ˉ˼˼˼˚yy˼˼˼ˉyy˼˼˼˻yyxwgfWwWhefgxgugwGgeuV˼˼˼˺˼˼˼ˈ˼˼˼hWvgWXvvghhvhXhvvg̽˽˼͙yxxy˼˼˼yxhyhyxʫxxwxxxhxhxxzyyyyfeGvwevV5fWD˼˼˼˺fdVfgfgf$fVD˼˼˼̺˼˼˼̩VeWvvfwf5eGDʻ˼˼˼˺ʻeUVugVge5VV3wwxwhxxvwiwhwxxxughgvWvgggwxxxxxxfvXvgufwggwvwhwgvwghwvwwgvwgxwwwvxxxʻ͇wuhg˼ʺʖyyyhʺʻwxhhwކxyxx͗xxxxx͇vwwxhvxxyxhʼʺ˼˼˼ʬʬʼ˼˼˼˺ʼwygxw˼˼̼˖xxxyxʬʬʼ˹ʻʫʚxxxxxy˼˼̼ʬˬ˼ʺ˻yyxgVgggXvuwg˼˼˼˼˼ͺhWvwWgXw˼˼˼˚XGgwffGvvwg͊hWvgWXvvg˼˼˼˼˼˼xiyiyͽ۽ܽܽ˼˼˼͚yyyyyyͼۼ̼ͼʬˬ˼˽̼˽xyͽܽܽ˼˼˼˼˼˼˼˼˼yyzzyzʺʺ˼˼˼ʺʬwxhghxwxhhwކxyyxh͹yyxxy˺ʺvxvwxxxyxx͆yxxxhvxxxwwʼʺ˼˼˽xxxxyxʺʻ˼˼˼hxyxxx˼˼˼˺˼˼˼ˆxgxw͆wwhwhxʬʼʬvxwxxw˻˼wxxw˼˼˼˼˼˼˹vwvwvvhww˼˼˼˖xyxyx˼˼˼ˇxvxwxgͨuhvxwxʻy˼˼˼xۼ˼˼˼˩fuxvwwvgvwuʼʼ˼ʬʼʼˉʙ˼ˬʼ̼ۼ̙ͽ۽͚xywxxvhwxxwxy˼˼˼˺ۼ̽ͺ͆uvvgxwvWwwv˻xyhxhxyʺˆwxvhwx˼˼˼̇yxwxxwhyzzy˼˼˼ۼ̼ۼ͉x˼˼˼˼˼˼ͼ˼̼˽ʼ˼ʬy˼˼˼ܽ۽yͽ۽ixyxuvwwgwuggvۼ˼̺wxwxxwxxxyx˼˼˼˩gwvxxwyvwxxwgww˼˼˼˼hyxyʬʬʼʇguvhx˼˼˼ˉyʬʬʬ˚hyhyx˼˼˼̼˻ʫʫ˻˻yyvhwxwvhWegWgfwvf۽۽͉˼˼˼˺˼˼˼˚˼˼˼hVfWggvwugWGVwgvgVvffW͙yygWfhvhgwvvg̼ۼ˼whwgxxw˼˼˼ˇyyyvxwwhhxw˼˼˼yxxyxxxxxxyxyy˼˼˼wwhhvxxxwxxxxxxyyxvwxxwxhhw˼˼˼˚˼˼˼Xguhhiuvg˼˼˼˺˼˼˼˚WVvwwhvvfg˼˼˼GWfwvwXvfWyyx˼˻˼̼˼Xgvgghvug̼ۼ̙ʬʼˬʙʼˬʼyxʼˬʼʺʚ͚ܽ˼˼˼ˉGfvvwughtwf۽ܽ۽˼˼˼˼̼۽˽HewvwXegf˼˼˼HfwgwgeuvWzyy8VgvvXegf˼˻yz˼˼˼YWvXhhvvhͩyyzXVwguggvggyyy͚ʫ˚XWvgWhuvwyxhiyxy˫˼˼˼˚HGgwggWvuggHWWvvHfWg˼˼˼yyyy۽ͽܽXfgvvvXfgvXgggvwWefg˼˼˼˺˼˼˼ˈWgfwgXevgg̼ܽ˽xyyʬ˼ˬ˺ʻʗvwwvhh˼˼˼ˈyyxʺ˙xyhxx˼̼˼˺ʼ˼ʬ˼̼˼ʼ˼ʬʺxxx˼͗y˼˼˼˅wvxuxhhvwwwhvgXgwͩ˼˼˼˗yyʼ˖xyhyx˼˼˼̹uwvwwgfuxgg˼˼˼˅gxvxhWxx˼˼˼vhwxwwhxyyyxxxxxvxwwhhxwˇyyxy˫vwwxwhhxvwxxwxhhw˫xxxxxW8fhWvWWvfh͉˼˼˼ˊ˼ˉgGewFVhvwvg˻ˊ˼˼˼۽۽͉fGVwWvWgvffW˼˼˼yzyy˼˼˼˻˼ܽ˼yyzgGfwWGhvweg˼ˬ˼۽ܽͬˬˬ˼ͽܽ۽ͼ˼˼˼yyy˼˼˼ܽ۽yyyyͼ̼۽˽xyy͈yyy̽ܽ˽whxwxwxvywhhxwvwvwhwghwvwwxwhwwhwxxxxvuvvvhfWgwvufwvwhwvgXgfxxxxvxwhwxgwgxw˼˼˼˺˼˼˼˼˼xxixx˼˼˼wxwx˼˼˼˩xxywxwXhwͻ˼˼ܼ˼ʬ˼ʬʺxxxxixhyyx˼˽ͽ۽۽yxyͽ۽۽ܽ˼˼˼ʬˬ˼۽ܽ۽yyy̽ۼۼ˼ˬʬ˼˼˼yz͚WWggghfvwfʫixhyxyyXWvWghvvg˼˼˼ˊXXvhXhuvwyyyzyyHGgwggWvugg޻˻ˬˬˬ˅wxwhXhxwxxiyyʬˬʬ˚vyxvhxxwyyzyxhxhyy˼˼˼˺ʻ˼˼˼˚ʬˬ˼yyz˼˼˼͉͉hyix˼˼˼ͼ˼˽̽xyyyyx˼˼˼۽ܽܽ˽̼˽˼˼˼۽۽yyzyyyy͙yʺʨ͉͘˼˼˼yywiwgy˼˼˼˼˼˼˼vwwxvxxhʻxxyxʬʼʬ˺xxy˼̼̽wxxwx˼˼˼˺˼˼˼xxixxuhgvxxxyx˻˩z˼˼˼˚˼˼˼ˉ˼˼˼˚y˼˼˼EwewfUVFfeff͉˼˼˼͚DffffDfFfdffͩEvfvVUfFveeg˼˼˼5gVweUe5wUVg͉˼˼˼ۼ˼uhvxwxxyxiͻxuxgvhxx˼˼˼tvxwWvwghvy˼˼˼˼˼˼˸˼˼˼˺˺˩ewwwgwewgwyx˼˼˼ͺxxvwwxxx˻˻˻vxwvxxx˼˼˼wxw˼̼̺˼˼˼ˇewwwvfwuxggyxxxyvwxhxwͩͽͽ͚̼˼̙ʬʼˬʙxxʼʼ˼ʼʼ˼ʺʙwxwxixxyxͩʻʺʫ˻ʺvhxwvxwwiwxv͆yxxyuxgwhͺʻʺ޺xxxxyxxyxx˼˼˼vwwxvxhʺʩ˻˻˻˼̼̽xxy˼˼˼xxyxhwvxhhwʬʼʬʺuhgvxxXxx˼˼˼˼˼˼˼wwx˼˼˼ͺxxyiʺʻܙͺʬʼʼʉxyxyyʬ˼ʬݺtwvgvuxgwʬʼˬʼ˼˼˼ʺʬʼˬswwwwWwuwWwwʬʼˬʹʬʼˬʹtgwgwuhgg˼˼˼ʺʹ͹ʺʺʺdvgfgdxfvʺͺʺʻxyiyiyyyyyyz޺ʺhiyxyyzyy˼˼˼yyyyyxݺ˩ͩʫ˩˼˼˼yzͩ͹yyzͩyzyy͙͘yyyʺ˼˼˼ۼܼ۽FwtgeWWvfug˼˼˼yz˽˼ܼ˼˼˼ˉ˼˼˼EfuvfTfVgeufͺFwuWegVwvtgͽܽ۽6gefefFweeWzͽͽ۽˼˼˼˺ʻyyyy޺y˼˼˼˺ʼʺʫxyyhyxyyͺʻʺvxwwhx˼˼˼˘xxww˼˼˼vwxwxx˻vxwvxxx̼̽˼hxhxxˬxxegwfvuwgwwʬʬʬ˺xx˽̼˽xyy˽̽ۼ͉̉yyzyzͼ˼˼˼˼˼˼yyyyͽ۽˼˼˼ʼ˼ʬ۽ͽ۽˼˼˼hyxiyyxxyyyʺyxʺʺ͉xyy˻ʫʹyy͉ܙʼʼʬʩˬʼʬʺݘtwhvWvggxwyy˼˼˼˺˻˼˼˼uxgvhx˼˼˼xxy̽˼uxhvXwx˼˼˼ˇyyxixhxy˼˼˼ewwwgwehgwwˬˬʼ˽˽̼xyyyyyzyy˼˼˼˼˼˼ͼ˼ۼ۽ʬ˼ˬyxy͉۽ܽ۽ܽ۽ͽ۽۽6WfwVeVFwefg͉˼ͽ˽˼˼˼˼˼˼˼yzy˼˼˼˽۽ܽEffvWTWVgeffFgvGeWWwfug˽ܽ˼zyyͺ۽ܽFguWeGVvvvw˼˼˼۽ܽ۽ʬ˼ˬ˽۽˼yyyxyyy۽۽ܽͼ˼˼˼ͼ˼̽۽y۽۽ʼˬʬͼ˼˼˼zͩ͊yy˺ʫ͉yz˼˼˼vhxwvxxwͺʺʫwXwXi˼˼˼ˆhxyxxwwhvhyͺʺʫuXgxwhixhxy˫ixhxx͆hxixʬˬʼ6vuvgdWVeevf˼˽ۼʬˬ˼˼˼˼ˊ˼˽ۼ5uvugSgUVUve۽ܽ۽6vvWdgVfeuV˼ˬʬ&fffdfFfdff۽ܽ۽ʼ˼ʬ˼˼˼ˊ˼˼˼ˉyzzy˼˼˼zyy˼˼˼ˉXgvwgWhvvgxxy˼˼˼ͻ˼ˊ˼˼XfgvguggwwWHWggggWwugW˼˼˼˼˼˼˼˼˼˼YgvwXhhvW˼˼˼˚˼˼˼ˊy˼˼˼ˉz˻whhxhhwʼˬˬ˼˼˼˼˼˼ʺ˙xxxxxyxyyzʬ˼ʬ˹wwxwxyh˫hyixhvF6gfgUvFgEU˼˼˼˩˫˼˼˼e76WeVeeWV6U˺˺vG5fVgevVgFT˼̼˼˪˫˼̼˼fG&gffdfVfFE͇ixxhyhyxhxxxxx͊yxyxyyyyzyxxʬwxxwxx˼˼˼ʬ˼ʬ˚˼˼˼vwxxgvgxw˼˼˼̅gggvhvvwWgv۽۽ܽ˻ˆvxwxwxgx͉yvxwxwxgxۼ̙˼˼˼ˇxxx˼˼˼yyxyvvxvgvggxv͇xxxxxxyy˼˼˼˙˼˼˼xxxxxyyyxxxxx̼˼˼̽gVugwWhvfg˼˼˼˘˼˼˼˺yy͚xetWFxeef˼˼˼xVugWwvvfgʻʫʙxfevVVxfev۽ܽ۽˼˼˼ˉ˼˼hVfwvwWvvg˼˼˼yhWugghvvg˼˼˼˼˚WGfwvuvhvvghWvwgghux˼˼˼whxy͉xxyyxxxxʬʼʼʩ˼˼˼ʻwvywxhͽ۽۽͉˼˼˼͉yxxxxxyxy˼˼˼yyzyzۼ̽˽ywgvwyxxx˼˼˼˼˼˼ʬˬˬ˘xxyxyyyyͽ۽ܽܽy˫ʬ˼ˬ˼˼xxxhi͙ʉyy˼˼˼͉yz͚xYxxhwhˬˬˬ˺۽ܽܽyyz͹xwivxhwxˇhihhi˼˼˼˼˼˼ˈyhxxhyˬyxixyx͊ʫʚyxwxwxxyxzyy˼˼˼xxxyxyxx˼˼˼˩FeeuVeVWetef˺˼˼˼GtdFtFGftdf˫˼˼˼GeeVuVVfdeV˼˼˼7eUuUuUWVsUe˫˼˼˼yxvvxvgvggxv˼̼˼ˇxxxxxxy˼˼˼xxxx˼˼˼͉xyyxxxxxxxx͉yyʬʼʼʼ˼˼˼wgvwxxhxyxxwxwxyxx˼˼˼˼˼˼˹wxwxh˼˼˼xyvwxxhw˼ܼ˼xxx˻˻˺ʻʫ˼˺ixxxͺfwXwvwuvwvhwwgvvwgxͩyx˻ʫvhwxvwx˼˼˼vhwxvxwx̼̼̽wxxwxx˼˼˼yyyyugggvgvgXgwʬˬ˼ʉʼvwxvwhhx˼˼˼̼ܽ˽vwxvwhhx˼˼̼˚۽ܽvxxwgvwgxxvhwvhwyyy۽۽ͩyxxxx˼˼˼˼˼˼yyyyy˼˼˼xyy˫xxxˬʼʼʼ̼۽ͪ˻ˬˬˬʼiixyhxxhxͺwghxgwʫxgvwvxwgxxxx˼˺˼˼˼ͺxwxxwx˼˼˼˺gwWwgwwfgwwghgw˽ܼۼxxyiy˼˼˼ʬʼ˼۽۽ܽ˽ۼۼ̉yy˼˼ܼyyxx˼˼˼˼˼˼۽ͼ˼˼˼yyyyy˼˼˼ˉxyyvwwxwhhxxxxxxwwvhwxxxxxxx˼˼˼ˉvhwxwwhx˼˼˼˙xyxxxxxx˼˼˼ˆwhwxgxwxxxxxʫʊ˻˻˻ˉwghwxix˫hhhh˼˼˼˼˼˼˚yʬʼʼʻyxyhxxixwXwxwXxʬˬ˼ʺyyy˫gfevgwWhwvWxfevgWwwvvW˼˼ͩ۽͚ܽxuduVGxfuV˼˼˼xvevVVxgef˼˼˼˺˼˼˼vhwyvhxwxxyhxʫˬ˼˼˼˼˼˼˼xyyxxxhyhiwxhwhXxxxx˻ʬˬˬ˼˼˼˼˼˼˼˺˼ܼ˼whwxgxwxxwx͉UftvVfFVgVuf˼˼˼˼˼˼eusuWV7eVVue˼˼˼efdvWeGfgUefdfdfFfFffFdf˼˼˼iyyiyͽܽܽܽ˼˼˼˼˼˼yyyzz˼˼˼˼˼˼yyx˼˼ܼ۽ܽͬ˼ˬˬͼܼ̼̽yxyyy˼˼˼yzzzyyy˼˼˼˸˼˼˼˺yyzͪyy˼˼˼ͩͺʫʬiyyXwuwhhivvWhguwgghvvgͩyyʫʻ͚gvtfWWxuwvVygwewgvgxfeWyy˼˼˼˺ʫ˻͊˼˼˼zͬʬʼ˼ۼ̼ۼyʬ˼ˬ۽ͽܽ˽ۼ˼yxͽ۽ͽ͈yyxͼ˼˼˼۽ͽ۽xxxfwWwvgfgghvugggWvvwghvxxxwwxwhxxvxhxhwxxyvwhwgvwghwvwxwgvwgwʬʬʬ˚hhhi˫˻˺˼˼˼ˆwXwXwxxwgiwxhxˬ˻xyyʬˬʬ˻yyy˼˼˼˚hixxxviwxhxyw˼˼˼˻ʫhhixxwgvhwxhxxxxxxxx˼˼˼˼˼̼̽˼˼˼˼xxyʬˬˬvXXwxghhiyhx˼˼˼yxyyixxxyʻʫ͉yyvxxvwxy۽ܽyxxx˼˼˼̈xy˼˼˼ʬʼʼʅwxwhxhxu˺fuwvvfvggxuۼܼ۽wxwxwxy˼˼˼ˉwvxwgxxxͽ۽۽vxwwhxv˼˼˼ˬʬ˼ʚhWugghuvw˼̼̽gftvWWxdwvg͙xy˻˺Xguhhiuvg˼˼˼˼˼˼˪˼˼˼˼˼˼˚ggegvgxuefwVfWvgxvug˼˼˼ˉͺ۽۽͚wWegvWxfvffGVwgeggvufW˼˼˼˙˼̽˽˼˼˼gWfhvhgwvvgʻ˫ˬyxy͉xxxxyyy˼˼˼̆wgwvhvwhgw˼˼˼xxxxx͈yyyxxxxx˼˼˼xyyxxy˼˼˼ˈyyyWveWvghvufgVeduFuVWeeefyxxyWfeVuVWfuefFfUVeVWftUVʼyʬʼʼܹʻʫʺʬ˼ʬ˺yyݹ͘xyy˼˼ܽvwwvxhyh˼xxyxxˬʬ˼ʼ˼˼˼ii˼˼˼yyzʬ˼ˬ˼˼˼˺hxxhy˫xxyxyyyzy۽۽͚xxwhghxhwxxxwhyyy͆xxxxy݉˼˼˼vxxvhxwhxhxxixhxyxXhxhxwޚʬˬˬˈyxxyܽܽܽiixyˬ˼ˬʻxyyhixxx˻xyxxyyyzyz˼˼˼yyy˼˽̼˼˼˼xvyxhwiw˼˼˼˖hyhyxͺ˫ʫ˼˼˼˅whhxhhwʬʬʼʺỷhxxxx˼˼˼۽ܽͺyygywxxxwgxvhw˼˼˼ˇxxͻ̼̽˼WvxwxhhhyxyxwgvvhwwXwv˼˼˼˨˼˼˼˗y˼˼˼˗xx˼˼˼ufvgguwgww˻ʻͩhxyxyhyiyyʺ͖hxxxgvwxwxuXgxwhޅxXhxhxw˼˼˼˺gxxxxxxʫʆhxixͺʫʬˬ˼xxxxxxy˼˽ۼʬʼ˼ʙ˼˼ʬxyy۽ܽ۽xgxxxhw۽ͽ۽ufhvwWwvggxf˼̼˼ˆwhvhwxxxw̼˼͚ʻ˼yyyywhvhwxxxwʬˬʬˉwwwwhxwhw˼˼˼xhwxgwxgwxgyxwxwxxxxxy͛xxyxxxx۽ܽxxxyxxxxwyxwwͺ˫xyyyyyʫyxyxyyʬˬˬ˹yxy˼˼˼̺ˬʬʬˬʬʬ˼˼˼̆ixhxyxyxʻʫʺˬ˼˼˼wwixyv˼˼˼˺˼ʹ˼̼˼fW'vvfugFvWUʬˬʬ˩VG7fufvfFeGU˼˼˼˨˼˼˼˨gW6ufwvwFvWTˬ˫gV7vvwfw5vVeʬˬʬʹGvvfwughewWyz˼˼˼zyy˼˼˼HuguwvXfwV˼˼˼˼8fgvvvXfgV˼˼͉˼˼˼˽ͽ۽HvwvgwgvuvF˼˼˼˻ʫiyy޻ʫ˫ixyxyyʫ˫ͪyyyzݪyyͻʫʫ˻x۽۽˼˼˼zVvsvWeGfefufFwtgeWWvfugy˼˼˼˽˼̼ͺͽ۽۽͉VgtgtWfveuw˽ܼۼUwdwVeVffVdf˼˼˼˼˼˼ˉ˼˼˼˼˼̼ʬʼ˼yyx۽۽͚۽yyyy˼˼˼˽۽˼͚yyzyx˼˼˼˼˼˼̺ʫxyʬˬʬʇhhhyxwwxghhʫͺ˽̼ܼxyywwghhxwuvvggwWhwv˼˼˼xwwxxxwͺ˼˼˼xxwxxhw˻˻xxyxWxwhyghhyhxʫ˫޺͗hixyxxhyxxwwXhhwgwvywyxʫʫ˻ͻʫ˺wwhxxg˼˼˼˗hxxhx˽̼˼VgcVfVVwfdWʼʼˬ˼˼˼ˬʬʼ˼۽ͽܽffbFfFfffdfʬʼ˼۽ͽܽfWcwVeVfwedg˽̼˼egSwUVUewVSgʼ˼ˬ˼˼˼ˉxy۽ͽͼ̽ͽ˼ͼ˼˼˼y͙ʬʼ˼yy۽ͽܽͼ˽˼ۼʼ˼ˬͼ˼˼˼۽ͽ۽yy˼˼˼ˉzz˼˼˼˩y˼˼˼˺yyͺyyzʺͩͩ˼˼˼۽ͽܽvvgxxxvʼ˼ˬxxʺʬʬ˼ʉxxʬʼ˼xyx˽̼˼vVvugvvwhfw˼˼˼ˉ˼˼͚˼˼˼˺˻gvxxxwgwhwxwʼʬʬʉ͉ܽ۽wgxxhwwy͉y˼˼˼˻˻˻xVcFVxeefgWdWghvweW۽ͽܽ˼˼˼ˊ˼˼˼yzʻxGdwWvgwvegxWTVVxvTf˼˼˼̼˼ͼ˼͚hXuhhhuvwxyXWfwuwgfvfyʫʬ˺͉zgGfwwtwXvfg˼˼˼hWvgghvug޻˻˻xxxyxiʼʼˬͽ۽vhwhxwzyʻyxyʼʬʬʺy̼̽ͼ˼yzyz˼˼˼˼˼˼˖xxxyh˼˼˼˺zʬ˼ˬxixxh˼˼˼ˈyxxyʻ۽۽yyyyyy˽ͽ˼˻˻xwhxxwxvʼʬ˼ʩxxxxyx˼˼˼˼˼˼͉yͺzͩʻʫ˼˼˼̈y˻wgvyhyxw˼˼˼˘Wvxxygܽ۽yyyhixxxhhyhhʬʬ˼ʼ˼˼˼ʻ͊xxxyx˼˼˼xyy͆ixxxyyywxw˺ʫhyxyxWVTvFeVVfuUfʻ˼˼˼˺ʻWeSu5uUWVuUe˼˼˼˺˼˼˼˩VfTFuVWfeUVʻ˼˼˼˺ʻGfDFtFGgtDfyy˽˼̼gvxxxwgwhwxwʼʬ˼ʚ˼˼˼˼˼̼˙ͽͽ۽wgxxhwwvwVwuhvggfvʼwwxvxx͗gwvwx˻˻ʺxxyxx˼˼˼ˇhyxyx޺͖hyxyxwwxhhwʻʫʻʻ͇WwhghyxxWvhxxg̹x˼˼˼˗xwVwewvwwgw̼̼˼˼˼˼˼˼˼Wvxwxhhʻ˫ˬyy˼˼˼˼˼˼ˆixyxy͹vGvwvvhwWxx˼˽˼ʫyxʼʼʬyxyͽ۽ʼ˼ʬvvygxxxvʬˬʬʬʬʬʼ˼˼˼xyyhxhyx˼˼˼˺hxiyh͉yyͽͽ۽ʺʫwgvhxwʻWvXgͺyyggdwWghwweGxWdgWvgwweW۽ͺ˼˼˼˼ͽͽ˼xfcvFVxfeV˼˼˼xfTwVVxgTW˼˼˼˼˼˼˼˼zy۽۽ͽͽ۽۽ͽ͙ܽyyx˼ܼۼʼʼˬʬ˼ˬyy˽ͼ˼yy˼˼˼ͼ˼˼˼yxxxxʻwwhhvxxxwʻwwvhwxxxxxxxxwhwgxxwxyʻxxxxxwhwxgxwʻ˼˼˼ˉwwhgxhyʫʬ˹˼˼˼˺ihxxxyyxxxx˼˼˼˺ʺ˻ˬʬʬʉʬʬʼʉxxyyʬˬʬʇihyyyͻWvXwxhhˬwwVwehvwwhgwxyy˼˼˼˼˼˼˼˼˼˼˼ͼ̽˼˼˼ˈxxx˼˼˼˺wGvgvwxgWWvhXg̺yyyXwuwhhivvWixy޺ʫ˫WffvwwhwvvW˼˼˼yyGgfwwvwXwfGyʻ˺yzXwvgghwuW˼˼˼ˊzyz˼˼˼˙˼˼˼ˉʬʼʬʉvhwxxyw˼˼˼˺ʬ˼˼˼˺ʬʬˬ˙yyx˫ʫxyyʬˬʬʺixxxx˼˼˼ˊwV&wegfvFwVUʫʬˬʬʺʫfG&gdfffVfFEʫ˼˼˼˺ʫvW&vewfwVgVTʬˬʬʹ˼˼˼˹ʬˬʬʬˬʬwW\u0017wuwuwWwWU͇ihxxyhihyxxyy˼˼˼xxwxxwxyyzyy͉yyyyxxyxxxxͩ˼˼˼ˉ˼˼˼˺zy˼˼˼yy˼˼˼ˬ˼˼ʬGhtgvgGvtHͽ۽˼̼˼ʼ˼ˬVgcVfVVwfdW˼̼˼˼˼˼ˬʼ˼ˬVWdwfefVwedW˼˼ʬVgdVfVVwfcWͽ۽yyͩ˼˼˼ʻʺy͚͙޺ʻʫvXwuxhhhyyyxhxyyx͇hyxyʺ˻ʺʪ͆gxxxxw˼˼˼ˆhyxxwXhxhxwvhxwvxwʻʻʫʬ͚yyyͽͽ۽ͼ˼˼ʼ˼ʬʼ˼ʬ˼˼˼yyyyx۽ͽ۽ͼ˼˼˼˽˽˼ͽ۽ͽ۽yyʬʬʼ˺yyʫʺyxiʼ˼ʬ˼˼˼۽ܽ۽˼̼˽͚y̽ͽ˼yzzyͼ˼˼˼ͼ˼˼˼۽ͽ۽˼˼˼yyyʺyyiyy˼˼˼˙yy޺ʻyyi͉zyx݈yʺ˻ʺʺ˺ʺ˻͘xvwWwvfwwgwhxxxwgvvwgͼ˼˼˻ˆgwvxw˼˼˼wwwxgwvxxw͇x˼˼˼˼˼˼˽ܽܽ۽Fgefef6weeWyz͚˼˼˼zyͽ̼̼VwtgfWFwuug˼˼˼˼˼˼˽̽˽˽UfevgUgFgdef۽ͽ۽VwuWfgGvetg͙˼vwxwg͇xxxxhvwxxwgwgvvwg˺˼˼˼wwxwͼ˼xfwgwwvwvWw˼˼˼͆xxxxgwʺ˻ʺvwwxvxhʺʆxyyxhͺʻʫʹwxhxhXwyxyh޺˼˼˼ˆxxyhuhhvxwXxyyyhʺ˫ʻ˼ʼʬʺxxvxwhx˼˼˼xixhͺxxyxh˼˼˼ˇwwxwxy˻˩vwwxvxxhxx̽˽˼vhwxgXx˼˼˼˼˼˼˺̼ۼ̉ʺʼʼ˼˼ˬʼyyˬ˼ʬʙͽ۽͚gwhvxxX˼˼˼˗xy͹vwfwfxuvwxWw˼˼˼xx˼˼˼˺yyixigwxxhWͽ̼̽˼˼˼˨˼˼˼˗yyvWvwvvhwGiyyʺyʻʻy˼˼˼˺ʺʺxyyyziyyyʻʫyy͉˼˼˼ʬy͈ugwgwthggʼ˼˼˼ˬ˼ʬʺugvwvuhwgʺͺʹtgwgwuhgg˼˼˼ˬ˼ʬʺ͹ˬ˼ʬˬ˼ʬʅXxYxX͉˼˼˼yyy˺ʫ͊yzͩͺʺyyxˬ˼ʬʉxyyˬ˼ʬʹ͉˺ʺ܊͚ʼ˼ʬ˼˼˼yy˼̼˽yzzy˼˼˼۽۽͉ixy˼˼˼y˽˼˼˼˼۽ͽ۽y˼˼˼ˉyy˼˼˼˹zy˼˼˼ˊͪ˼˼˼ʺ˺zyyyyͺ͘vhxwvxxwvhwxxxx˼˼˼˼˼˼ͺ˼˺Xgvxwhxhxyxxˬʼʬʺxx̽˽˼˼˼˼wwyxxw˼˼˼hxixͩVfdvWVGUgfef˼˼˼FWewVfVFwfeW˼˼˼͚˼˼˼͚VfUWeWVheUf͉UfevGfWVgVdf˼˼˼˼˼˼˼̽̽˽6gefefFweeW͊˼˼˼۽ܽ۽GwtgeWVvfug˼˼˼zy˼˼˼˽۽ܽܽFfevgdgUgUefͼ۽˼FwuWugVwftgyz͊۽ͽ۽ܽ۽۽ͽ۽ʼ˼ʬxyy˽ͽ˼ͼ˼˼˼yyyyyͼ˼˼˼ͼͼ˼ʼ˼ʬyy͉xyyʻݺyyxͺʻˬʼʬʩˬʼʬʉ܆Whwxxg˽˼yx˼˼˼˪vwWwuxfvwxfwixiyy˼˼˼˼˼˼˼xxXvxwxhg˼˼˼˺˼˼˼˩͗yyvGvwvvhwWyyyxyyyyxyʻhxxxyʬʬʼʼ˼˼˼xyxhghxv˼˼˼˺yxxxi͉y͉ܽʻʼywxwxvʬʼʼwxwwwhx˼˼ʬxx˽̼˼xyxʫˬʼʼܽͽ۽yx޺xxxy˼˼˼˺xxyhʻ͗xxyxxxhwhxuʺ˻ʺwxwxv͆wwvxxxʺ˻ʆwhwhxwʫʺyxxxi͹˼˼˼yxwuhgxʻ˻ʫvvhwgtwWxv˼˼˼˼˼˼͇ixxxy̽˼˼˼˼˼˹xxuvwwfwuxfwv˼˼˼ˇxyvxwxg̻vwxxgvgxwyy˼˼͊˫˫wgwvXvuvggfxhvwwxv˼ʬʬʚ˼˼˼ܽͽ۽xhvwwxv̼˼˼˙ʬ˼ʼʺgdGvwvvfEfWSʺ˼˼˼˺ʬʼʼge8veVVXcʬˬʼʺʺVUHweVVeHSʺ˼˼˼˺ʺʬ˼ʼgeGvwvvfUfWR͚ʻʫyyxxxhxxhx͗hyyix˼˼˼xyyxxwxywwyyxxyxyy͹˼˼˼˚zy˼˼˼˚yy˼˼˼˙hxxxx˼˼̼˙ʬ˼ʼʈyxyʺ˫ʬʼʼʚxyxyxx˼˼˼ˉʬʼʼ˼˼̼˻ʫvhwhxwhwvwggXvuW͊yyhxuhhXwvWyyhiggfwwwXguvV͉ʺʫyy˼˼˼ʻʬyxyXgfwwwGwvfG͚iWuhhhvgiyxy͚hVfwvwWvvgyxʺʼʙyy˼˼˼hWvgghuuwޙʬ͉yXGfwwwgvtfgyyvxwxwxgxܽͅgggvhvvwWgv˼ۼ˼˼˼˼̉˼˚˼˼˼vwxxgvgxw͉vxwxwxgxʼʬˬ˚xyxxh˼˼˼̼˼˼˼˼˼˼˼yzyywixvxwxyyyͽ۽ܽͻ˻xyyxiyiyʼˬ˼yxͽۼۼ˼˼ʬʬʺʻyyxggvwgvgVdevU˼˼˼˽˼۽˽ͽͽ۽ܽhgvwgGeuwV˼˼˼˙˻ʻXfvwgWutwVzz˼˼˼͉yz˼˼˼˻˻gWwhvXWeuF̼˼̼˼yyxxxxʺʼˬˬͽͽܽܽwxhwhwxwʼˬˬyxxxʼˬʬʉ͇xyy͇hxxxx˼˼˼xxʫʫʇxxywwxw͗hyxyxyxxhi˼˼˼ʬʬ˼̺˻ʺwyhwxhxvyyxwxwxwXx˼˼˼˻ܽͽ۽yyyhxhy˼˼˼͙yyͩzyʬ͹ʻWVfvfufUeUfV˼˼˼˻˼˼˼˺WfeVtVFVeeU˼˼˼˪VfuWeWVfeuFʻGeeVuVVfdeV˼˼˼˺ʻʼʬˬ˼˼˼˼˼˼˼˘xxxxyyxiihwxgxwyxyۼܼ˽˻˻۽ܽܽyzyyʻyyyxxyyyxyhhh˼˼̼˼ʼˬˬ˼˼˼˚yy˼˼˼ˉy˼˼˼ˇxxxhy˼˼˼ʺʺʺwhwxgx͇xyyhxwxxxhXxv޺ʫˬyyyhiͺxhyhhʬwhwhXwʻwhwxhxv˼˼˼˚̼ۼ̼˼fvuvWfWFeduVʼˬˬ̼ۼ̼˼ʼˬˬVvugeW6fdvVʼˬˬ˼˼˼˚gghvHGvtGͽͽܽܽVvugeWFfcvVʼˬˬͽܽ۽yxyͼ˼˼˼ͽͽܽܽyyx̼ܼ˽͉ͽͽ͉ܽܽyy˼˼˼ʼˬ˼˼ˬˬ˼ܼ͚yyyyͽ۽ܽʺʫ˼˼˼yyzyyy͚ͺͩˬ˼˼˼˼ˉxwhxxwxvʬʬʼʈyxxyʬ˼ʬʬʬʼʉ˼˼˼˺hxxhxxyxxxyxy˼˼˼˺ʻʼyywxgvhX͇ixxhywxhvxWxˬ˼˼˼˼˼˼ˈxyyxfvwwWwfxWwv˼˼˼vvhwguwGxv̽ۼ˼˼˼˼˼˼˼ˈxxxyyy˼˼˼͉yyy˼˼˼y˼ˬˬ˽˼˼͉ͽ۽ܽܽͽ۽ܽܽܽܽͽ̽ۼ˼͉yxxʼˬˬxxxxxwhwxgxwʻvwwxwhhxxyywxwwhxvxxxxxʻxyxwwhhvxxxwʻzyz˼˼˼gwvggvgVUevF˼˼˼˻˻˼˫hwvwwgGfuwF͉zyyͽܽܽXvvvwgWftwG˼˼˼˙˼˼˼˽۽˼ggwhvXWfu6xy˼˼˼Xgvgghvug͚iXvgghvug˼˼˼ˉ˼˼˼˪hguffwewug̼˼˼hgvWvWwetV˼˼˼˻˻hWvgghuuw˼˼˼ˉyޚwgufwfheug͘y˼ʺʺyyyhhggYuugͪͻˬwgvwWWhdvtf۽ܼۼgWufVhvwdWy˼˼˼ˉ˼˼˼xVdUUxfdgͻxGewfvVwvtg˻˻ˊxVeVFxecf˼˼˼zܽ۽۽˼˼˼˚yy۽͙̼ۼ̙ʬʼʬʪ˼ʬʼ˼ʬʼʺʚ˼˼˼˺˺xfevVVxfevgWvWwghfef۽ͽ۽yy͙˼˼˼xWvWgwfvef˼˼˼xfuGVxUdeܼܽ˼͇wuhgyyxxyyxyh˼˼˼ˇxxxyުwiwxx͗xyxyxwvywxh͗xwvwg˼˼˼˺xihyh˼˼̼ˉyʬˬˬ˻gwxvhyXʼ˻xwyvwyg˻˻yʼˬ˼ʇxyxihveVfggVvDgES˻˼˼˼˻ʫʼgUGwwwewEvFd˼˼˼vdVvgwfw5gFT˼˼˼ʬʬˬ˺˼˼˼˩ʼʬˬweWwvvfgEw6T˼˼˼xVugWwvvfg˼˼˼˼ܼ˽yyyxfevVVxfev˼˼˼˺gVugwWhvfgͽ۽۽ܽxetWFxeef͙ʼ˺ʼˬˬˉyyyyx͙˼˼˼xxyxyxhxxxʬyyͪxwxwz˼˼˼ˉ˼˼˼˚yy˼˼˼˺ʻwVFvfwFwEwDT˼˼˼˪˼˼˼˩UEwVhV6hEUvF6gfgUvFgEU˼˼˼˩ʫvVFwegVvFg5E˼˼˼˩igvhXhuvg̼˼˼hfuvgvGwtuf͚˼˼˼˺XWvgWhuvw˼˼˼˼˼˼ˉ˼˼˼˻˻ˈyyhgfWWwewfg˼˼˼˘wvxXyg˻˼ˬˬʚxihyhyhihyyyy˼˼̼ˉyyxʼʬˬ˻wxyvhygwʺ˻X7fwgWhdeV˼ˬʼ̼˼̼˼˼˼˼ˬʼܽͼ̼˼YFeVVYdef̼˼̬˼ˬʼ˼ˬʼͼ̼˼̬˼ˬʼXGfwgWhceV˼ˬʼ˼˼˼ܽͬ˼ˬʼͬ˼ˬʼͽܽͽ۽IGvgGittgxx˼˼˼xxʉ͗yyxyhxhxy͉xxwwwyyixi͚xx͚wwwxxxwggw͛xxxwvxhhw͚yxxܽܽ͊wwyxxwxxyy͗xx˼˼˼ʇyxhxi͇yyyyyhyhwxxwxxyyxyyz͗yyiyhyxhxhwxgiw͉xyhyh˼˼˼˗wxvhgw͚wiwXXyyhxihwvXWމzzʬxyhxxyy͉˼˼˼yyyxxyxx͇͇xwwxwʺfUvWhUEh5Tʺ˼˼˼ʼ˼ˬ˹˼˼˼˹eVgxe6X6eʼˬˬvVFwfwdwFg6Uʼ˼ʬ˺ʺʺvVVwfwewFg&Uʼ˼ˬʹ˼˼˼˺ʼˬˬʙvhwyvhxwyyxxx˼˼ˈ˼ʺʼʼˬ˙xyhhhyyyxxyxʼˬˬʻˬ˼˼˚͘yyx˼˼˼hgvgWhvvghWvhXYvvhͺyyyy͚wgfWwWhefgiyyiywfugGhevuWzyʻޚyyy˼˼˼˚˼˼˼ˉyyz˼˼˼˚͇xxwiwgy͚wwxwxwxwwwvhwvhwyx͚xxxyxxܽ۽˼˼˼˻xyhhxxxyxʼˬˬ˙ʼˬˬʬ˼ˬ˙˼̼˼˻ʼʬxywgxgwxyyyxxx˼̼˼˺˼ʻʫyxyyyyxyy˼˼˼xWfWvGwveW˻˻˼˼˼˽ܽ۽۽xVUFFxfUgyyzxVeV6xedf͉ʬ˼˼˼zyy˼˼˼˻gGfwWGhvweg̼ܽ˽vfVuggVv5gEDʬʬˬ˼˼˼˻ʬˬˬwVGvwveg6wFU˼˼˼veVvgwfw%gFU˼˼˼˺ʼʻ˼˼˼˸˺gfWvwfw6v6UWGVwgvgVvffWyz˼˼˼ˉhVfWggvwugʻ˺˼˼˼ͽ۽۽gWfhvhgwvfg˼˼˼˺ۼۼ˼hWegWgfwvfygWufVhvwdW˺˼˼˼ͽͽ۽˼˼˼gWdWghvweWfGewgvggvfUW˼˼˼ˉ˼ܼۼ˼˼˼yyWXexgvgWveH˻˻˼ˬʼxzˬ˼ʬʚʺʼʼ˼̼ۼ̙ͽ۽͉ʻʫiyyHWfvvWvuvW˼˼˼˚xXgugghuvgyzͺʫʫ˻WVvwwhvvfgXgvgghvugyͩ˼˼˼˼˼˼˺hhuhhXvvgXWfwwGvvfWyxx˻˻˻˼˼˼˼˼˼˼gWvwwXfuffhgvggXuugͼ˼˼˼˼˼ˊXgvvvfWuwf۽ͽܽyy۽ܼۼXfgvvvXfgv˼˼˼˚˼˼˼WgwfvXuvvfHVguuHvgf˼˙˼˼˼wxwhvwxhyxxyxxxxxxyyxywhwgxxw˼˼˼ˇxxxxxxyyx˼˼˼ˆvxwwhhxwvhwxwwhx˼˼˼ˉyxy˻˻˺˼˼˼wxvhwxxwwxwxxwhxyhxxͽ̼̽˻xy͆uvvgxwvWwwvx͆wxxvhw˼˼˼˻˻˻˻zvyxvwxxʻʼ˼˼˼˚hxhyh˼˼˼ˈyyxʼʬʬ˚xhghxvʼʬ˼ʉyxxxxxyiy۽ͽ۽۽ͽ͉xy˼˼˼yyyzzͽ̽˼ͼ˼˼˼xy̼˼˼˼˼˼˼˽̼˽ʼ˼ʬyʬʼˬʙ˼ˬʼ̼ۼ̙yyͽ͉ܽ˼ˬʼʺʚ˼˼˼˼ͼ˼̼xxuwggvuwgfw˼˼˼˹vwwwhvgXgw˼˼˼˖xyhyh˼˼˼gwxxhWyy˺˺xvxuxhgxy˼˼˼˻͹̈xxxwxwxxw˼˼˼xvwwvxxhyyyʻwxwxxvhwxvxwx̽˼˼˼˼˺˼˺xxhyhuvwggguhgwwͩvxxxwwww˼˼˼˼ʼʼʬ˺˼˼˼˗vwwvhhwxwhhw͆yyxxxxx˼˼˼˼˼˼˼˺ʺ˼ܼ˼xxyxhxxxxwvhxwʺxxhxh͇wvwghxxixxͺʻ˼˼˼˺ʻwxxwXhx޺ʻhwvXW͹xyhyhxixhͺʫ˻hyxyXWfwuwgfvfYhugghugyͩ˼˼˼yxXgvgghvugyHWfvvWvuvW޺ʻʻyy͉ʼ˼ʼ˼˼˼˽ۼۼxxyͽͽ۽͈xy˼˼˼ͽ۽۽ܼ̬ʼ˼ʬͽͽ۽yyʬʼʬ˺xxixxxͼ˼˼˼˻˺͆wwhXxwxyvwxxhw˻ʫʼ˼˼˼xxxwhxw˼˼˼˼˼˼˼wxww˼˼˼˺hxixhyhyxʫʫ˼˼˼̼ˉxyy˼˼˼yyyhvwgwʬʬʬˉhyhyx˻ˉˬʬʬʇWvXgfwhwgvfggWvxxxxxxuwgwWvvfghgvwhwgvwghwwwxhxwvwxwgvwgwvxhwwxhwXWvgWhuvw˼˼˼˼˼˼˼GGwwfvfXvgg˼˼˼˛XXvWgivvg˼̼˼yyx˻˼˼˼˼WWggghfvwfxxyʼ˼ʬ˺yy˼˼˼ˈxxxʼʼˬ˹˻ʺxyhxh˼˼˹˼˼ʼ˼ʬ˙˻ʻgwgxw͹ʺʺ˼˼˼vxvhxxwxixhxxhxy͆xyixyʻޅwxxwXhxyyhxivxwhwxxhWhxwˬͩwxxwxwhvwvwhwghwvuvgfwhwvfXwvxxxxxxxvugvghwWgfvxwxyghwwwxwhwwhwx˼˼˼˼˼˼yyyyz˼˼˼ܽܽͬˬˬ˼˽̼˼xyyyxyͼ˼˽̼yyyyܽ۽ixhy˼˼˼8VgvvXegfˬ˼˼˼ˉܽܽ۽˼˼˼yyHfgwvXUweGgwguwhevV˼˼˼˻˻˼˼˼zyHgvwwggduwf˽ۼۼvwxxwxhhw˫˺xxxxxvhwxwwhx˫yxyyxxxxx˫xwxghwwyxywhwgxxw˫˺vxwXgxxx˼˼˼˼˼˼˹fvwuwwvWvxv̖hyhyy˼˼˼ˇyx̼̼̽uxhvXwx˼˼˼˩˼˼˼˺ʫ˫yyyvgwwwvHwgyyxͼ˼ۼ˼۽˽yyy۽۽˼˼˼˼˼˼yyܽ۽͉ˬˬʼ۽ܽ۽ʼ˼ʬˬʬʬ˼˼˼̉yxy˼ʬˬ˺̼˼˼˖hxhyx̼˼˼yyxʻxwywhxxw˻ʫyxˬʬʬˊxxxx˼˼˼yy˼˼˼͉yyxwgwvhvwhgwxxxxxxyyxy͉˼˼˼xxxxx̼˼̼ˉxʫʼ˚˼˼˼wwxhwwhwwܼܽ˼vvwfgufWgv˼˼˼˚ywwxwhgͽܽ۽͇wwxwhg͚ˬʬʼʙ˻ʻwxxwh˼˼˼wwwxyxxxxwvxw̺xxvxww˼˻ˇͺxͽ˼˼vwuwxgvgwvu˼˼˼˺yxxyyxx˼˼˼˼˼˼ʺ˻ʻ˼˼˼˺ʬʼʼvhwgxhvwwx͇xxxwvwg˼˼˼˼˻˺̼ۼ˼xxxxyxxyxy˼˼˼˼۽ܼzyyyyxxyxxxʬ˼ʼʩ˼˼˼˻˻wxvwh˼˼˼˽۽yxʻˬ˼ʼxgV7wvvtfVfGT˼˼˼˩˼˼˼˺ˬˬʬʩgUGwwwewEvFd˼˺ʫʫVFGgvfufVe7T˼˼˼˪˼̼˼˺ʬˬʼʹgVFvgwuwVvGShfvvWggwweW̼ۼ̚ʚhguwgWggwfVyyyggfwhvhgxvfW˼˼˼˼˼˼˺˼˼˼WWfggvgVwfVGͽ۽۽yyʼˬʬʉʺʬˬʼʉxx˼˼˼ˇwhhxhhwʼˬʼʚ˼˼˼˺˼ʻhxixiy˻˻wwywxxhxyxxx˫ͪxyxixgwgxhxxwXhwކwxxxhXxv˼˼˼˪͇xxxhiwxxhhgyxxhyxyxihͻ͚WfwvgvwXdvg˻˙˼˼˼˺˫˫˼˼˼XegwvHewf˼ܼ˽XfvwgWutwVzy˼˼˼HVgvvXegfܽܽ۽yy˼˼˼˺yxyˬ˼ʼxxx̼ۼ̼˼xxxwyvxhhʼ˼ˬ˙ʼˬˬͽ۽ܽ۽xyʫʻʚ˼˼˼wxvhvhwxwxxwhwx۽ܽܽyyzʼʼʬ˚vvhugwfWfgv̽˽˼xxwggxw˼˼˻͉zxgvVVguvvfyyxhWvgWXvvgyiyʻ˼˼˼wfugGhevuWhgvgWhvvg͉yzywxvwxg˻˺ͽܽܽ˼˼˼yyyyyxxxxyʼʼʬ˼˼˼˼˼˼˼˺xxxyyyzz˼ܼͺyˬˬʼ˫xyxx͗hvwwvxwwixyv͇y͇xxww͈ܽܽxxxwxww˼˼˼ˆwxwxwXXͽ۽۽ܽʫ˻yyxywiwxhhwxyxih˫˼˼˼ʼˬʬͺyhihyyyyͺzʺʺ˼˼˼ˉyyyyyxݺʺyyhyyyʻʺyiy޺ʻzyʻͺyghgxwyyixhhy˼˼˼ʻʺ˼˼˼ˈxyyyxhhhwxwxWXx˼ʬˬ۽۽ܽGfeUuUVfdeVyyWfeVuVWfuefVeeVuFWfedVWvvfVgwuugyxxyʬ˼ʼʺʻʼʚhxxh˼˼̼ˈxyxxxʬˬʼʺ˼˼˼xhwxgwxyxxyyyʫʬ˫ʬˬʼ˼˼̼˗xyxix͈xhyhxކhxxwXhwxyyhxˬʺ˻ʺ˼˼˼ˇxyxihwxhvwhgwhhvxWxʫˬʻ˫whwhhwͼ˼˼˼ii͉yzy˼˼ܼ˼˼˼ͽܽܽ۽͈˼˼˼˼ˬˬyyy˼˼˼ͼ̼˼yyyͽ۽۽ܽyyxxxvwXwfuvgfgvvggggvugWhwxxwxwxxwvwhwgvwghwxhxwxgxvwxwgvwgw̼ۼ˼xwvwVVgfvvW˻˻˼˼˼˚hgvwgWXwvW͉xyy˼˼˼hwvwgWhwvW˼˼˼˼˼˼˼wvuvgGhvvuFxyyyyxy˫yyxyx˼˼˼˼˼˼˩vvwWfvwWgw˼˼˼whuxXgxyhixͻʫʬyyyͩgwhvxXXͼۼ˼vwwwhvgHgw˼˼˼˼˼˼ˈyyyx˼˼˼ˊyy˼˼˼ewewFfFVfUef۽۽ܽ˼˼˼۽ܽܽVguWfGGwevg˼ۼ˼˼˼ˊfvtWf7VfeuV͉zyfwuWuGVwdvg̽ۼ̼ͺ˼˼˼ܽ۽͉yy͚yyyͽܽ۽ܽ˼˼˼̽˽˽yyͼ˼ܼܼyyܽ۽ܽˬˬ˼˼ʬˬͺʬʬ˼ʻʫ˫˻yyxyyyxݙʼʬˬ˺ܺʬ˼ʼʚz͚vwVwuhvggfvgxwxxw۽۽ܽ˻ʆgwhwxw˼˼˼wgxxhwwͼ˼˼˼˼̼˗xxx˻˻ʼ˼ʼyyyywygxw۽ͽ˼˼˼˼˼˼̼ˆxxxxh˼˼˼z˼ͽ˼y˫˺ˬʬʼʗxxx˻ʪ˻˻ˇxwwxvxxͼ˼˼xxyxx˼˼˼˺wwwʬʼʼʼ˼˼˼wxxxvhyxx˼˼˼xxwxxhhw˼˼˼˹ͼ˼˼vxwwhxwxx˼˼˼˺˼˼˼xxvwxwxx˺vxwxwxy̺˼˻˺egwfvuwgwwixxxy͉xy͇xxx˼˼˼vvxvgvggxv˼˼˼ˉyyxxxxx˼˼˼ˉxxxxxx˼˼˼xxxxxyyy͙xvxwxxwiʼ˻˻ʬˬʬʺxhwxhxyihxxy˼˼˼˼˼˼˚yxyxxxhyʼʬʼʻ˼˼˼gvxgvggfvvV˼˼˼˺˻WwfwwgXvvgVyyۼۼgwvwvfhvuwV˼˼˼ˉͽͽ۽fwuggvWgefvEyzy˼˼˼̙˼˼ܼxͽͼ˼˼yyyy˼˼˼ʼ˼ˬ۽ܽܽ˼˼˼ͽ۽ͽ۽˼˼˼yyyy˼˼˼xxxxxxxxxhwgwwxxxxxwwhhvxxxw˼˼˼ˉwwvhwxxx˼˼˼ˉxxxxxxxxxx˼˼˼ˇvwwxwhhxxyyyx̼̼˼wxhwxg͇xxhhxxhwwhg˫˼yxywxhwxgx˼˼˼vgwWvfwVww̺˼˼˼ˈxxwxx˼˼˼ˉgVgggXvuwg˼̼˼hgvXhiuvg˼˼˼˺˼˼˼yhgvgWhvvg˼˼˼WWggughvgW˻˻xyxyh˼˼˼ͺywhhxhhwʼˬʬ˺xyhyhxyy˼˼˼ͽܽ۽ͩʼ˺˫xwyxxgwxxxxxyxxxxx͉xyvvxvgvggxv˼˼˼ˇxxx˼˼˼xyy˼˼˼˼˼ˇxxxxxyygxvgvggevvfͽ۽۽ʻʫggvvfheuwg˼˼˼zfguwgvWgTfvV˼˼˼˪˼˼˼˘˼ܽ˼WgfwgXevggxwwhvwxh˽ͼ˼ʬˬˬ˙wwxvxxh˼˼˼vwgwfheggWv˼˼˼̈ͽ۽ܽyy͚wxwxvxhhwʬxx͆ixyxy˼˼˼yʫʫˉhxxyxyy͇xxwxxwyy˼˼˼VgeVeVVveeG˫˺˼˼˼ˉ˫VfTFuVWfeUVeVevVvVgeVeV˼˼˼˪VfeUuEWfedV˫˺˼˼˼ˉʻʫ͉y˼˼˼͉͉z˼˼˼ͺ˫ʺ˺yyhxxhhyhix˼˼˼̺hwixhwwyyywXwxwXx۽ͽ۽ʬʬʼʺxhhiyxyy˫˺˻˻˼ʬˬ˼˼˼yyyyzxxxyyxwiwxhxvyyyܼۼ˽˼˼˼˼˼˼ͽܽ۽ܽʼʬʬˈyxyyyyiiVeGfwfvf4eWT˼˼˼˺˼˼˼Vf8veVEeXT˫˼˼˼GVGvvvvgEtGTʫ˫˼˼˼VfGuwfvfEeWC˼˼˼yyxxxxwywyyhhy͗xyhhx͈yxyxxxxyyxyyyzͩ˼˼˼˙˼˼˼˚˼˼˼ˊyyyyixhxy˫wwhvhyyyyyˬˬʬʺ˫˙hxhxyyy˼˼˼̼˼˼˼ˊ˻˻ˬʬʬ˚YwXhXwvwgghwuW˼˼˼˼˼˼XwuwgghvvWxyyyWffvwwhwvvW˼ܼ˼˻˻˼˼˼ˉHgvwvvWwufG˼˼˼˼˼˼z˼˼˼˚y˼˼˼˩͹yyyyy͊ʫʺ˼˼˼ͩ˼˼˼VeVeVVVeee˼˼˼VvtvgeGVeevVͺ͉EwewfUVFfeff˼˼˼VwewfdVUfTffͩ˼˼˼yxyy˽˽˼ˬʬ˼۽۽͚˼˼̼yyy˼˼˼˼˼˼yyzy˼˼˼iiܽ۽ͼ˼˼˼͘xwwxxxw˼˼˼˺gwwhhxͼ˼˼xhihxxxhwgh˼˼˼˩˻ʫxxxy˼˼˼xxihh˼˼˼ʼʬˬˆwhXXw˻˻xxx˼˼˼fuhvfwvggguͽͽ۽ʬʬʬ˚wxwwxxx˼˼˼wvxwgxxx̽˼˽˼yyvxwwhxvˬʻͽ۽giwxwwʫʺxxxʼʼˬxy˽̼˼xyx˼ʼʬˬʬʼʆxwuhgxhyxyxͼ˼˼˼˼˼vuwvvwfgwxu˫˫ʻx˼˼˼˘x˼˼˼uxgvhxxͩ˼˼˼̗yy˼˼˼vgwwwvXwgvXwuxhhʻʫ˼˼˼˺ʻʻwYhh͇hxyxxvhwwxyʫʺgvwwxixxxxʺ͇ixxxyͩhyxxʺ˫hxhyhͺͽͽ۽xwwivy˼˼˼wiwhXʬʬʼʺy̺˼˼˼˫˺xxxxiʬˬʼʚyyxʫyy˼˻whwxhw˼˼˼wghxgwhyxhxͺxyxx̼̼˽̼wgwxhg̺vvvwWwvhWvw˼˼˼˺xxxxw˼˼˼˙˼˼˼fwdwVVVUfedfͼ˼ܼ˼˼˼˼˼zyVwtgfWFwuug۽۽ܽ˼˼˼ˉyyfvsWfGVfeuV͙ggtgeWVwdugͽ۽۽ܽͺy˼˼˼̙˼˼˼zyyyy˼˼˼ͼ˼˼͚ͽ۽ͽ۽iyyyͽ۽۽͈xyy˼˼ܼ˼˼˼ʼʼˬzyyyyyͺ˻ˬ˼˼˼˻ʫˬyyhiyyiމzxyxͻʫʫ˻ݪyzyyͺ˼˼˼˙ggggwhuuffͽ۽ͽܽhgfwuggugfy˼˼˼XfgvvvXfgvʻ˻ʫXVWvvXvWf˼˼˼˚˼۽˼ˬʬʼʆwwhxxgw˼˼˼ufwvWvgggf˺˻wwxhwwhwwͽ̼̼yyͽ۽۽ܽ˼˼˼ˆwwhxxgwyy˼˼˼yxxyxxxxxx˼˼˼wgwvhvwhgw˼˼˼˼˼˼ˉxyyyyx͊xxxxyyxxxxx˼˼˼˼˼˼˚xgeggguvefywgtWWhevvV˻˻˻˼˼˼˪˼˼˼hhuhhXvvghWugghvvg̽˽˼˼ˬʬʇgwvhX˼˼˼ˈy̩ͽ۽ܽvwwxhvzyhxixi˻ʺ͉˼˼˼xxxyhʻ͚wiwxvWwhg͇vhwxwvhxxxy˼˼˼˙ixxxy͖hxxxxhyyyxwYhh޺۽ͽ۽˫˺zxxxxyywihhww˻˻˻˼ܼۼ˼˼˼ˬʬʼʩxxxyx˼˼˼ˈyyihxxhyyʼ˼ʬ˼˼˼˺͙yݺʬʼʬʙyʻʫʬʼʬʩʺ˻ʻܺyywygxhhw˼˼˼˽̼ۼۼ˼˼̼˼˼˼˼xxxyyyyzyyxxhxix˻˻ʻ˼ʼʬʬˬ˼ʺ۽۽hyxixxyyWfUVtVFfeUVWfeVuVWfuefyyVfdFuVWVeeUyxxygweWgWgvffhxhyyy˼˼˼˚ʬʬʼʻihxxyXwxxwi˼˼˼˺˻˻ʬˬʼyyxhxwwyvʫʻxwewgggfveWyyʺ˼˼˼˺hxuhhXwvWވyyihguwgghwvWzyyˬʻwwtwWWhfvvFxyyͽ۽ܽ۽˼˼˼˼˼˼ʼ˼ˬyy͉yyͽ̽˼ͽ۽ܽʼˬˬͽ۽ܽ۽ͼ˽̼̼xyxvwvwhwghwvhwwxwxxxxvfgvwXwughwfvvfuwhgggguxxxxwwxwhwwhwxwwixxxxvxxy˼˼˼hxyhxwwhgxhxhhyhx˼˼˼˻ʫ˻˼˼˼˺xwwxxxxxwgvhwhx̽˽˼XgvWhʬʬ˼ʼ˼˼˼˻˻˻xxxxgV'wvvufVfWT˼˼˼˩˼˼˼˺ʼge6wfwvwEvWTʬˬʬʺʬˬʬ˩VV7wufvfVeGD˼˼˼˩˼̼˼˺˫˻ʫgf7vwfwVvVSggewfVhwwtG۽۽ʫggdwWghwweGyyzfWUggvggwfeG˼˼˼yy˼˼˼ˊ˼˻˼˼˼ˊ˼˼˼WhexgvgWve8̼ܽ˼yyyyx˫yyyyx˫˺ʫ˺ʫyy˼˼˼viwxxxwʻʬʬʼ˼˼˼ˉhxhxy˼˼˼ˬʬʬʺxyyxyʬˬʬʹ͛xxwxxwxxxhhwxgxx͇whhhwxxxxxxxxxxxxyxyyxxxͽ۽۽hxhyx˼˼˼ʬʬʬ˺xxx˼˼˼ʬʬʬʬʬʬ˺yxxʻyy˼˼˼˻ˬʺxwggw˼˼˼˺˻WXexgvgWveHܽ۽gGUwgfgfvveW˼˼˼yy˼˼˼ˉyhWdVwfgvuWۼ˼˼hWegwWgvdW˼˼˼˼˻ʼ˼ʼʼ˼ʬܽ۽۽̼˼yxx͉xy۽̼̙yyͼ˼˼˼ͽ۽ͽͽ۽˼˼˼yyWhwxxgͼ˼˼xx˼˼˼˻˼˼˼˺˼˼˼guhvxxxyxvgwvXwghwwͩ˼˼˼˘yy˫˼˼˼˗hyhyxufvgguwgwwͩwwhhvxxxw˫˺yxywxwhvwxh˺xxxxxyyxy˺whwgxxwxxxxxxwxghww˫˺˼˼˼WgwfvXuvvf˺yy˼˼˼˚HVguuHvgf۽̼ۼ˼˼˼XgvvvfWuwfXfgvvvXfgvܽܽ۽iXvgWXvvg˼˼˼˼˼˼˼XGgwffGvvwgxyy˻ˉhWvWgXuvwͼ˼˼˼˼˼˼˼˼˼˼hWwgvgWfgf˼˼˼˺ʺxyhyWWvvuvHvfWhhggYuugͺy͈xyhguggXvvg͉ygWvwwXfuffʺ˻ʺyyʬʼʬʙʼʬ˼̼˼̙ͽͽ۽͉ʼʬ˼ʺʪ˼˼˼˺yzggwwguwHdvfͽ۽۽ܽhgvwgGeuwV˼˼˼˼˼˼ˉyyXVgvv8egf˻˻XfwvwHUge˼˼˼˙۽̼˼ʬʼʬ˚zvxxvwxyʫʺ˼˼˼˼˼˼ˉyyxxxxxy˻˻xhghxvʬʬʼʻhyhxhʻˬʺWWvvuvHvfWyzy͙hguggXvvgʺ˻ʺyyihVfwvwWvvgxhgvggXuug˼˼˼˚ͺwhwwxxxwwhxgyxvvwfwXwufhgvxxxxxxxufvwggvWhgvvwvwhwghwvwwxwhwwhwx˼˼˼ˇww˼˼˼hxyxxʬʼʬ˺xxyyxxxͼ˼˼˼˼˼˼ˇvhwvhwwwxvxx˼˼˼ʻwwhwhxͺ˻ˇxxxyy˼̽˽ͽ۽ܽ۽ʼˬʬ͉yy˼˼˼ʬ˼˼xyyͽͼ˼˼ͽ۽ܽ۽ܽ۽˼˼˼͉y˺yx˼˼˼vwxhxwwxxwhx͇xxhyx˻˼˺vuwvwwgWxvv˽˼vxwwhxwxxw˼˼˼˚zxͽ۽͚̼ۼ̙ʺʼʼ˼˼ˬʼˬ˼ʬʉʻ˺ʼ˼˼˼xxixxx˼˼˼˺˻˺xwvhxw˼˼˼wwwxͅwxwXhwʬ˼ʬ˺wxxhxxw˼˼˼˪yxͼ˼˼xixhކxwhxXxwʻʫ˼˼˼ˇxhWhxw˫ʫyxhxxͺʺxwwvhxyxiyxͺixhyyvxxvhxwhxixvxwuXhx˼˼˼ʬ˺yyyvvxuwvfWwwvxyͽ̼˽˼˼˼˼˺̅xgvXwxxx˼˼˼˗yyhyh˼˼˼˼˼˼˹vgwwwvHwg˼˼˼ˇvwwxwhhxyxyxxxxxxyyxwxwhvwxh˼˼˼ˈyxyy˼˼˼vhwxwwhxxwxghww˼˼˼yxxyxxxxxxgWfhvhgwvfgzy˼̽ۼgVugwWhvfgͽͽ۽ܽ˼˼˼˺ʫˬVGfwgfgWvvVWͺ˼˼˼˼˼˼˘gWvWwghfefxyhyhʺʻ˼˼ˊyyywvwgh˻˺xyhyhʬ˼ʬyyx˼˼˼˼˼ʬʗgvXWͼ˽˼wwxwxxxhyhxx˼˼˼xxwwxxvwwvxxh˻˩vhwxvxwx̗xx˼˼˼˺yyyʬuvwggguhgwwͼ̼۽˼˼˼˼yyyyz۽͉ܽyxyͽܽ۽yhxiˬˬ˼˽̼˼˼˼˼yyyyyyx˼˼˼˼˼˼yx۽ܽͼ˽̼˽ʼˬʬ˼˼˼zyyyz˼˼˼˼˼˼iyxy۽۽۽̼˼˼˼۽˼͈xyy˼˼˼˼˼˼˺XgugghuvgGWfwvwXvfW͚˼˼˼ˉxxy˻˻˻˼˼˼XWfwuwgfvfXhvhhhvugͼ˼˼wxwhxwwhxvwhxwvwhwgvwghwvwwgvwgxwxxxfwWwvgfgghvvwhwvgufWggxxxxwhxXxw޺ʫhyhyxhvwgwxxixx˼˼˼˺ʺͺͺvwxxhwʺWvwXhhxhxxͩhxixʺyxyˬʬʬˬʬʬ˺̼˼˼̉xyyxyˬ˼ʬ˼˼˼̖xwxwhyxwˬ̼˼˼ˇxyhxhʬʼʬʪyyxʻ˺ʺܙyyʼ͉˼ʼʬ͉͉yyyʫʉ˼˼˼͉͊ʻʉyxyyyͺʺ޺ʻʺxyhyyy˼˼˼˺˺ʺyݺ͉yugwgwthggʬʼʬʼ˼˼˼ʺʬʼʬuwwwwWwswWwwʬʼʬʺʬʼʬʺuwvgvtxgw˼˼˼ʺʺͺʺʺʺdvgfgdxfv͙ͺzyyy͹ʺ˺˼˼˼˼˼˼ˇixyxewwwgwewgwvvhwgtwWxvy˼˼˼˺˼˻x̼˼vxwuxh˼˼˼˹vxxuhgx˼˼˼˺xy˼˼˼ʻxyyyxyyyxۼ˼۽WwuWfgFvetg͊zܼܽ˼˼˼˼ˊ͚Fgefef6weeW˼˼˼VwtgvWFweugͽܽܽVfuvfefEgTuf˼˼˼yzܽ۽˼˼˼ʬ˼ʼʉܙʬʼʬ˺yyxʺʻxyݺyˬˬʬ˽˼˼yyxyͽۼܼ˽ʼ˼ʬͽܽܽ۽ͽ۽ܽ۽ͽͽͽ۽ͼ˼˼˼yyy˼˼˼zxyxxͺyxxxx˺ʺyxxyhwugx޺ʺvwwxvxhwiwxxʺʼʇxwwivͺʺ˼ʇxxyxx˼˼˼˚z˼˼˼˚y˼˼˼˩˼˼˼ˊyxyܼ̽˼͉ͽ۽͉ܽyy̼ۼ˼˽ˬˬʬͽ۽ܽ۽yyz˼˼˼ʬˬ˼͉˼˼˼yyxy۽ܽ۽ͺʺʫˉzyͺ͹˼˼˼yzyʬ˼ʼVvvvWeg6edufͽ۽ܽ۽ˬˬʼ˼˼˼˚ͽ۽ܽ۽Ffffdf&fdff̼ۼ̼˼VvugeW6fdvVʼˬˬUuvugUg5VSve̼ۼ̼˼ʼˬʬ˼˼˼˚˼ˬʼʺʚʬʼʬʉxx˼ˬʼ̼ۼ̙͉ܽ˼˼˼˼˼˼˼vxxuxghxyxyxxwwxxx˼˼˼˺ʼʼʬ˺ywwgi˼˼˼xxixxyxx̼ۼ˼vhxwvxxwʺ˻˪˼˼˼˼˼˗xxuwvgwewfgwww˼˼˼vxxvxwx˺̆wxvhwxxxhxhxxvxww˻ˇxx͹˼˼˼vwxvgtgWhwyy˼˼˼ͺͼ˽˼vxwuXhxyxhxi˼˼˼vxuhgx͇xyy˼˼˼yxx˼˼˼˺˺ewwwgwehgwwhwuxgXyxhxiʻʻ˼˼˼ˇxxyxhކxxhxiwyvwhhvwwxvxxh˻ʻʺwiwXX͆xixh˼˼˼˺xxwxxvhwvxxvxwx̼˼̺yxxxy͗uwgwwgvexfw˼˼˼wwxxxwvxw˼˻yyxyzy˼˼˼˼˼˼ͽ̼ܼܽܽ͊˽yxy˽̼˽xyihˬˬʼ˼˼˼ܽܽ۽˼˼˼͉yyzyyyyxxʼ˼ʬ˺ʺʺʼyxyxy݉yy޺˼˼˼ˉyyyʻxiyhyzyyy͉yzyiyyiy˩͊۽ͽVgvGvWFveuw˼˼˼zyyWguWfGFwevg˽˽˼˼˼˼˽͚ܽܽFWfwVeV6wefgyyzVffvWeWEgTff˼ܼ˽˼˼˼˼˼˼˼vXxuxghxx˼˻ͺ˼˼˼hxyxxwxw˼˼˼ˇvhwhxwvhxwvxwʼ˼˼˼˼˼˼˼ʬ˼ʬʺ̼ۼ˼yxxiyxx˼˼˼FwfwVefEfUef͊˼˼˼͚5gVweUe5wUVgͩFvevfeVEvUfg˼˼˼FffffdfDfDff͊˼˼˼yyyxy۽ܼ˼۽ܽ۽˼˼˼͉˼˼˼yyʼˬʬyyzyz˽̼˽ͽܽ۽˼˼˼ͼ˼˼˼̊xyhi͉ͺyyyʻͪyzyy˼˼˼˼˼˼˙zzyy˼˼˼˩˼˼˼ˉyyzyxxyWfeVuVWfuefWVevUtUFfeefyyhgvfuVWgvufWfeVeFVVudUxhwhxuxxxxgw͚ݚ˼˼˼vxvwxxxxxxxyxxywhwhhhޚxyxyh͇xxxxiyxxyʬˬʬʺyxi۽ͽ۽yyۼ˼ۼ˼˼˼ˈxwwxgxh˼˼˼ˈxxyx˼˼˼yzyyyˬʼʬʻxxxxix˼˼˼ʼʬͺ˻ʉy͙ܺʺʺʻxyʬʼʬʺ˽˼˼x˻˻xywgxgw˺xyxxzyyyyܽܽ۽ˬˬʬyyyhxxx˼˼˼˘xxxx˼ʬʼʼ˼˼˼yyi˼˼˼ʺ˻wwxwxh͆xyxxͺxxyxxxyxyxʻˬʺ˼˼˼˺ʻʺhwugxwhwhhhކxwvwgxxxxhͺ˼ʺxxxh˼˼˼wwxwxyhyyyͽܽܽʺxyhyhͺy̺˼˼ʬ˼˼˼ˇxwhwhXw˫ʫʚ͇wwxwhgyvvwfgufWgv˼˼˼ˉܽܽ۽ʬʼʬ˙˼˼˼wwxhwwhwwͼܼۼ̇wwxwhg̘ywwvwXvwhgv˼˼˼˼˼˼˹ͩgwhvxxX˼˼˼˗xyyxwhuxg̼˼̺ʻʫ˼˼˼˗xxuwvwwgfuxgg˼˼˼˼ˬʬʚyyˬ˼ʼxxxʼˬˬʺͽ۽ܽ۽xwhvxhw̼ۼ̼˼yxyhxxx˼˼˼ʬ˼ʼ˼˼˼ˇhvwwxʻʫʚxxʺʫʙxxxʬ˼ʬʺʬ˼ʼ˼˼˼ˊyxywfGvwvegUwFS˺ʺ˼̼˼˺ʬ˼ʬ˹weFgvugFwGTgV7wvvtfVfGT˼˼˼˩˼˼˼˺˫˫˼˼˼˪fVGwveuVVf7Dʬ˼ʬʺܽ۽۽xyyxyxxx͈xxwwxxyxxxvhwyvhxw͈viwxhxywyxxxxwxxxwxʺxyyxxyyxyͽ˼˼˼˼˼˙Xfgvvv8fgV˼˼˼gwwgguwHevVͽܽ۽͚ͻ˫yyzhwvwwgGfuwF˼XvgvwvHVwU˼˼˼˼˼˼ˊyzyxgugwGgeuV͘yy˼˼˼˼˼˼˼˼xgvVVguvvfiXvgWXvvg˼˼˼˼˼˼˙hgvgWhvvg̼˼˼gGfwgugfveVW˼˼˼˙̽ۼۼyyxVugWwvvfgܽ۽ʫʻgWfhvhgwvfg˼˼˼ͺ˼˼˼˙xWvWgwfvefyyxxxxx˼˼˼ˉyyxxxxxx˼˼˼xyyx˼˼˼wgwvhvwhgwyxy˼˼˼̇xxxxyyyyxhxh˼˼˼ʻ˼ʬʬˇxhghxv˼˼˼ˉyy̺ixhxyͺʺ۽ܽͺyyyyvyxvhxxw˼˼˚ͽͽ۽ܽxxwggxw˼ʬʼʇwxvhvhwx˼˼˼yyxwwhwx˽˽˼vvhugwfWfgv͊ʼʻyyy˼ˬˬ˼˼ܼ˼˼˼yyx˼˼˼˼˼˼̼ۼ˼˽˼˼˼yzy͚yyܽܽͽͽܽ۽yiyʼˬʬʉyxʺwxwxxxw̺˼˼˼ˇuwvwhgwWgvv˼ˈxyxxxwxxhw˼˼˼͗xyhhxxhwwhg˫hxwhgw̼ܼ˽yyx͚fwuWeGVwtvg۽ܽ˼˼˼˽˼˼̽˼˼˼fvevFVFUveeg˼ۼ۽˼˼˼WguWfGFwevgzzyyfvtWf7VfeuVͽ۽ܽyyz˼˼˼˺yyz݊yzyyyx˻yyyyyyhi˼˼˼˻މii˺͙yyyyyxxxxfvXvgufwggwvwhwgvwghwvwxwgvwgwwxwhxwwhxvhxwvwgwgvuvWhfxxxʻ˫whwxihwʬˬˬyy˫hiyhiʼ˼ʬʚxxxixyy˼˼˼ˉ˼whxxXhw˼˼˼ˉyxxwhgvxXxʬʬˬ˻˻˼˼˼xyxx˼˼˼yhyixxxyhxxhwxgwxͻˬ˼˼˼˽̼ۼ˼˼˼˼˺wxhvwhgxxxxxxyyͼ˼˼ܽͽͽܽܽxyyͽܽ۽ܽ˼˼˼ˬʬˬܽ۽ܽyy̼۽˼˼ˬˬ˼˼˼͉yyzxwuwgwGgfuFyyyʻʺ͚˻˼˼˼xwvwVVgfvvWyzyihvxgWXwvWii޺zyyhwvgWhwvW݆gxxxxxx˼˼˼ˇixhxxyxhxy͚xyxyxͪxwgwwhwhwhhxhWhxwhyhyxޚXGfwgWhceV˼ʬʼ̼ۼ̼˼˼˼˼ˬʼͽ۽ͼ̼ۼg7VwgvggSvVU̼ۼ̬ʼˬʼʼʼ˼ͼ̼ۼ̼ʼʼʼhGewWgXcfVʼʼ˼˼˼˼ͽ۽ͬ˼ˬʼͼʼʬ˼ͽ۽ͽͽ۽hHfhhhhbfFͫxxxvxwhxwwx͇xxݚxgxwxxywxwxxͽ۽ͪyxwxx͚zyʉy͗xyhyxyx͙˼˼˼xxyxxxy͉xxhyhyyyxy˼˼˼xyyz͇xxyxxxyxhxiʻxwx͉̼ۼ̉ʉ˼ˬʼʼʼ˼ʼʼʬ˙ͽ۽xxxx˼˼˼ggvwWfgfTvuV˽˼ۼ۽۽XgggvwWefgyyy˼˼˼hgwfuvgevg͉˼˼˼ʬ˺gxvgvggevvggwgXvhWcufܽܽ˼˼˼˼˼˼ˉyy˼˻WfwvgvwXdvg͙˼˼˼fgvwgfgWTuvV˼˼˼˺ʺ˚zy˼̽ۼggwwguwHdvf˻˼˼˼˼˼xfvvWwWgdtgyyx˼˼˼hgvggXuugۼ˼̉˼˼˼˺wgufwfheughWvwgghux͈˼˼˼ʻ˚zyxguwGwggdufyyywgfWwWhefgˬhXvXhXuvwiihgvWghuvg˼˼˼ˉyyy˼˼˼˩gftvWWxdwvg͛ۼ˼̉hWwgghuvxxyy˻˻˼˼˼˼hguffwewug˼˼˼Xgugghuvg˼˼˼˩xwx͚xxʖxyhyxxy˼˼˼xy͙y͚yzyxxxyˬwyhwghxxyʬʬˬ˼˼˼˺˚wxwXWxxhihhiˬʬʬ˺˼˼˼yyyyhhxxfeWfvewV4fGTʻʩ˼˼˼̺ʻeuVUgVge3VVS˼˼˼˺˼˼˼˩VeGfwfvf4eWT˼˼˼̺fdVfgfgf$fVD˼˼˼ˉzzy˼˼˼ˈyyy˼˼˼WgvwgugfTfvV۽۽˼˼˼˺yz˻XfvvwgWdvwg˼˼˼WwghuXgcvf˼˼˼˺ʼˊ˼˼˼yyۼۼ˼Hgvwwggduwfxxxͽ۽wxwݚwwx͆wxgxyxx͗xxvhwxxxxyyyʻʩyyyyyyy˼˼˼̺wfGvuvgg5wFUʬvfFefgWv4gUTʬʬʬ˼˼˼˻ʼ˼˼˼˩˼˼˼˺weFvfggv%wVUgV7vvwfw5vVeʬˬʬ˺˼˼˼̈yxxyxxyy˻ʺ̼˼˼̺xihxxxwhwgix̼˼˼˺ʬ˙˼ʬˬˉˬʬʬˈyxyyˬʬʬ˙fguwgvWgTfvVʫ˫˼˼˼ggvvfheuwg˼˼˼ܽܽWgfwgXevgg˼˼˼ˉyyy۽ۼ˼gxvgvggevvgwgwx݆xxxxxgxͅxhWhxwxyhyhyxhxy͚whwhwhhxyxyx˼˼˼ˆxxhxiޚ˼˼˼˺wVVvfvvg5w7eʬʼʬvfUeWgfv4gFTʫ˼˼˼˻ʼʼʬ˼˼˼˨˼˼˼̹veVvgwfw%gFUgfFvgwuw5vGU˻ʻ˼ʼʬ˺xyxxhhy˼˼˼˺ihhih˼˼˼ˉyyyˉ˻wxhwghywxwxWXxʼʬʬ˚xxxxˬʬʬXXvhXhuvwyyyyyyͪhgvgWhuvg˼˼˼hgfWWwewfgͺʫ˺ii˫ʫyzgguwgGxdwuf͇yxxxxwyx˼˼˼ixhxyʺyx͊xxxzyhyhxxyyy̼˼˼˺ʻyyxˬ˼ʬˈyyxy̼˼˼̇xwiwghxˬʬʬˉ˼˼˼̈xyxxyxxhixʻ˫ˬʬʬ˼˼˼ˉyyyyzz˼˼˼ˉ˼˼˼gfWuvvwf%fGUˬʬʬ˺ffVdgfgf$fVD˼˼˼˺ffGuwfvg%vWUˬʬʬ˺˼˼˼˹ˬʬʬˬʬʬwuWuwwww\u0015wWUˬʬˬzy˼˼˼˗xxhix˼ʬʬʺyxxxxhy˼˼˼˼˼˼˽ܼ˼۽yxxivwxwxy˼˻˻yxxyʻܽ۽ܽyzyyyyy͇xxywwʺʫ˗xyyx͙͇xxxxxx˼˼˼xyy̺xwyvwygʼʬhhhh˼ˬʬʼ˼˼˼ʻʉyyͺxxxix˼˼˼ˈxvyuhxgܽͽ۽zͺʺʩ˼˼˼͹ͺyʻVfeUuEWfedV˼˼˼˪˼˼˼˺ʻGfdDtDGgtdf˼˼˼ˉʻWVevUeEVfudfʻWeUuUu5WVuSe˼˼˼˪ʫʻwhuxg˼˼˼yxy˼˼˼˻xvxuxhgvguwtvxwg˼˼˼˼˼˼͗yxxxy˼˼˼ͼܼ˼̘xwgwvwewwVw̼˼˼˚xwwhvwxhܽͽ͇xwxvxxg˼ۼ۽yyy˫˫͙vgvfgevwhWw˼˼˼wxwxvxhhw˼ʬʬʉyxxx͚̼ܽܽۼ̼˼xxxʼˬʬʇvxvggxˬˬʼˬˬʼʺxxxwhwxxwyyyh͹ʺ˺ʺwxvhgwvxwhwx͆xxyxwvuxhʻʺ޺xxyxhxyxyx˼˼˼˗xwvwgʺʻʺܽͽͺʻʉxyxxxyyxʼ˼ʬ˼˼˼˼xvuhg̺˼˼˼˺yxxhʺʼˬʬʗxyy˼˼˺xxxxyʼ˻˼̼˼ʼˬʬ˙wixvxwxxyxxxʼˬʬ̼˼˺wWFvfgdvVw6TʼˬʬʺʺʼˬʬwW7wuwswWw7Uʼˬʬʺ˼˼˼ʼˬʬʹvVFwfwdwFg6Uʺ˼˼˼˹ʺʺfGFgffdfVf&EͺʈxxyXWwgffGwvgWhgvwWgXvvg͉zyyy޺yyhiihvxgWXwvW˼˼˼ˉyyyhggwgvgWgwV˺˼˼˼˺yyz˼˼˼˩˼˼˼˹zyy͊yyyyyzyyx͈xyxxxxyxyhix͇xxhhxwxxxxw˫ʬyyx˼˼˼˫ʻwWfVFxvvuW˼˼˼zyܼۼۼ˼˼˼ˉxWeEExvef˼˼˼˻hGvwVwFgvegܽܽ۽xVeV6xedf͉z˼˼˼˼˺ʻXWwffgvtgW͉yy޺yy˼˼˼˪hgvWghuvgʼxxygVgggXvuwgyyhhgvgWhvvgͪʼʼʬˇwxwxvxhhw͚yxwwhvwxhܽͽ۽xwxvxxgˬ˫˚˼˼˼˼ۼvwgwfheggWv˼˼˼˼ʼʬ˪˼ʬˬyxxyyxx̼˼̽xxxˬˬ˼yvxvggxܽ۽ܽyxyʻyxxܼۼʼʼʬ˪˼˼˼ˇxyxxxzyyyz˼˼˼˼˼˼˼yywiwgyܽܽͺˬˬ˼˻˺ixhyyxxxxxvhwxwwhxxxxxxhwgwwxʻʚvwwxwhhxʻʚxyʻwxwwhxvxxxxxˬ˼̼˼˘xxyxxxyʫ˻ihwxgxw˼˼˙ʼˬʬʘxyyxyʼ˼ʼʙ˼ˬˬʚ̼˼ˇxxhhyxyxy˼˼˼wgugtwhgg˼˼˼˼ܼܽ˼yyẏxvXuxhgʆwhuxXgyyhhyͺ˼˼˼˼˼˼˼˼˼wwgwvhewwhVwyyxˬʬˬܼۼ۽yxyyzy˼˼˼˼˼˼ͽ˼˼̼ˬʬ˼xyy͊ܽ۽ܽͽܽ۽ܽܽ۽͉xfevV6xfdV˼˼˼˙ܼ˼˼˼˼˼˼˼˼yyz˼˼˼˼˻xfewEExgeWhWfgVwFgwuW˻yzyͺͽ۽۽wgvwVFxwveGܽ۽ܽˬʬ˼˼ۼ̽yyyyxܽ۽ܽͼ˼˼˼ͽܼ˼̈yyͽܽܽ˼ˬˬͼ˼˼˼z˼˼˼˹˼˼˼˚yy˼˼˼ˊyzwxyvhygwʺͻʼwhwXXw˼˼˼˗xhhxxgwwhhxͺ˼ވwvyuXxhxhihxxxihh͗yiihܽ۽ܽfgeFe6fweeW˼ʬˬ˼˼˼ˬˬʬ˼̼˼̽egUw5V5ewVUgˬˬ˼̼˼̽VWewFf6Vwfegܽ۽ܽffdFf&fffdf˼ʬˬ˼˼˼˺͊˼˼˼yzyy͉yzy͚ʬhhhi˼˼˼ͺzyhvxwgxwʻʬʬʬʈgyvXxw۽۽ܽyyx˼˼˼ͻˬʫʫxxhixwwxͽ۽͛vhwxxwyxxx͆xxxwwx͇xxxxyygwvfuVXfvufVfeUdUGfueVyxxyWfeVuVWfuefVfevVuFWUedeʻʫʺވyyiyyzz͹yyʺʺͺʺʫxyyyxyyxyy˼˼˼˺ʫݩyyͺyhhxxxwxXwi˼˼˼˺ܽ۽۽yxx̺˫hwxgxyw˼ʬʬ˺yhhhx˼˼˼˫˺͆xhxvwx˼˼˼˺uhgvxxxʬ˼ʬˆxxixx˼˼˼ʺʺʻ˼˼˼ˇxxxxۼ˼ۼxxyxxwvxwgyxw˼˻˼˼˼˼˼˼ˉxyxxxxx˼˼˼wgwvhvwhgwyx͊xxxx˼˼˼ˉxy˼˼˼yyyxxyxxxxxxyxxʫʼ˼˼ʼyyxyyyzy˼˼˼˼̽˽ʬ˼ʬ˺xyhxxxy˼˼˼yxyͽͽܽ۽˼˼˼˼ˆxxvxwiwۼ˼̇y˼˼˼uwvggguwgw˫ʻwwxwxxx˼˼˼xwxͺxvwwvxhxx˻˻˻vhwxvwxxxxyxͺˬˬʼʇwxvhvhwx͚˼˼˼xwwhwx˻ʻ˼̼˼vvwuvgfWfxv۽˼̙ܽ۽۽xxwggxwyxxxvuvvvhfWgwvvgfwWwfgwvxxxxwhwwxxxwwhwgxvwvwhwghwvxwwwhwhwwʼˬʬ˼˼˺˫ˬxyxyyxyxyxy˼̼˼ˈʼˬʬʺʺʻ˪yhxxxhhwxgyw̼˼ʼˬʬʺgwuggGxewuV˼˼˼˼˼˼˼ۼ˼̊˼˺gwvwVvVxfvWXgvwgWhvvg˼˼˼yyxͺ˼˼˼hxxgWivvWyyxy˼˼ܼ˼˼˼xx۽۽ܽͼ˼˼˼yiyi͉zyˬʬ˼ͼ˼˼˼˼˼˼˼˼ܼyyzyzܽ۽͚wxvwxhxihWwxgx˫ʻ͹yhhxy͇xhyxxxhihxxhxxXwy޻ͺ˻˼˼˼wxhvwxhgyxhhxXWvgWhuvw͚yyxyyggvVvVxuvfͺʫ͉hhvgWiugyy˼˼˼˻ʫyyiyޚgguwgGxdwufz˼˼˼ͽ۽ܽ˼˼˼gXfxWuWgufH˻ʫfGVwWvWgvffW˼˼˼˼˼˼ˉ͙wWeGWxvvfW˻˻˻wWfVFxvvuWy۽ۼ˼yxxyy˼ʬ˼˫˺˼˻xwywwxx˼˼˼ˉyiyyͽܽ۽ͩyyxixhxy˼˼˼ʬˬʬ˺˼ۼ̽˼˼˼̼˺yyyyzyxyhwvxwwhx˼ۼۼ˼˼˚˼ʻʊ˼˼˼hwvxwwhxvvhfwgwufWxvyyyʼʬʬ˚wwwwhxwhw۽͉ܽxxyyͽ۽ܽxxy˼ʼˬxxx̼˼̼˼ʬˬxwhvwxhwˬʬʬˇixhxy˼˼˼̼˻ʻ˫˼˼˼wiwhx˼ʬʬ˚xyʬˬʬ˚xxhxy˫˻˻yywxgiwggGwwewFvFTʬˬʼʹ˼˼˼˺ˬ˫˹gfFvgwuw5vGUfW7vvftgFvGU˼̼˼˨˼˼˼˹ˬˬʬ˼˼˼˹VWGvvfufFe7Eʫ˻͙xihyyyyhhy͇xhhxywvwxgxhwvyuXxhxhxxXwy˼˼˼˚xyxgwhwyhihͺˬˬʬˉyzܽ۽ͺHggvuuHggW˼˼˼WwwwfvXfvvWۼ̼͊ͺʫyyyyXwvwvvfWfwW˼˼˼ˊXvgvvvXggf˼˼˼˼˼˼yy۽۽ͼ˼˼˼۽۽͉yʼʬ˼۽۽͊ˬʬ˼͉y̼ۼۼyyۼۼxyyx˫yyyy˫˺܉˼ʬˬʉxxyʫˬʫxyy˼ʬˬ͉˽ۼ˼WwuWdGfvevgy˼˼˼ˉz˼˼˼VwewFUFeffef۽۽͚VvtvWe7fefuf˼˼ܼ˼˼˼˽۽ܽ͊˼˼˼FguWeGVvvvwyxyx˼˼˼˼˼ܼ˼˼˼wwvgvwHgw˼˼˼˘yxywvwufwgWgxv˼˼˼˼˼˼˩͗xihyyvxWwXhʬgvXWx̘yyyyxxxyyyzyyyy˼˼˼yyy˺ˬʬʬ˻yhhxxxyxxʬʬʬ˺۽۽۽yiy̽˽˼yyhxvwywv˼˼˼˼˼˼͇ixxxyx˼˼˼hyxxxyxxww͊zʺʫyyxxͺʬʬʼxhwxhxy۽ܽ۽˼˼˼ˉxyhxxxʻʺxhhix˼˼˼yy̺ywxwxhv˫˺͚͉ͩzʫ˼˼˼WfeVtVFVeeU˼˼˼ˉ˫˺˼˼˼WeUuUsU7VuUe˺˺VfevVdVGUuee˼˼˼˺˫˺˼˼˼GvdFtFGFtddgwvxwʺʘx˼˼˼vwWwvfwwgw͇hxxxx˻˻˼˼˼ˇwwxgwvxxwͼ˼˼̺̺xxwgvvwg͇xxxxxyyvvxvgvggxv˼̼˼ˉyy˼˼˼xy͇xxx˼˼˼xxxxxyyxxxxx˼˼˼̼˼˼˚xhvwwxv۽̼˼ˬˬʬʚwgwvXvuvggfyy͙vwxxgvgxw۽ܽ˼˼˼xhvwwxv˻ʺ˺wxhwhxx˼˼˼˗xx˼˼˼hvwwvxxyxx˼˼˼ˬ˼ʬʩʺ˻ʆwwvxxxͼ˼˼˼˻˻˻xxx˼˼˼ˇxwwxxyiˬˬʼʘxxx˺x̽ͼ̼˼ͽͽܽܽgwgxwyxxy˻˻ʼ˼ˬyyi˼˼˼zyzyxxxxi˼˼˼˼˼˼ˉy˼˼ܼʬʼ˼۽ܽyy˼˼ͼ˼˼˼۽ͽ۽yyỷ˼˼˼˼˼˼˼˼˼zyzy˼˼˼˺˼˼˼˚˼˼˼ˉyzyyxxx˼˻˼˼˼ʬʬˬʺwXwXhxxwwxxwgxwhhͼ˼˼˼˼˼˼˺˼˼˼͈gwxgyxwhhixxʫxhihx˼˼˼xxxyy͚fftvVUFegeuf˼˼˼˼˼˼ffdfFFFdffdf˼˼˼VfdvWVGUgfefeusuWV7eVVue˼˼˼͚ʫ͉yyy͉zyy˼˼˼˼˼˼wWegvWxfvf˻ʻ۽۽ܽxfevVVxfevxfdVGxUue͉y˼˼˼˺˼˼˼˺hWegWgfwvf˽ۼۼ˼˼˼hWgggWvugW˻˻˼˼˼͚hhvXhhvvgxhgvgWhuvg˼˼˼˼˼˼ˉWWggghfvwfͼ˼˼xyxxxxx˼˼˼˼˼˼˙xxxxx͇xxxxxyyvvxvgvggxvyyyx˼˼˼ˇxxx˼˼˼͉yyʼ˺wxggxxwwxggxxwͽ̼˽˼۽۽ܽvwgwvWvfhgg˼˼˼vxxwgvwgxxʬˬʬʚ˼˼˼ʻʺͽͽ۽ܽiwgxw˫˺hxhxi˼˼˼ͺz˼˼˼ˬˬʬ˺yyxhxhxyYwXh̹xyy˼˼˼ˉwhwgxxwxxxxx˼˼˼ˇhwgwwxxxxxxwwhhvxxxwxxx˼˼˼˙xxxxxwxwwhxvxxxx˼˼˼˻˼ˬʬʺxihxxyywiwxhhw˫˻˻˻ʻˬˬʬʻwhXxxhwyyhhyhh˼˼˼˼˼˼˚xvtvWFxVeU˼˼˼˙ͽ۽۽˼˼˼˼˼˼xvevVVxgefhguwgWggwfVʫʬyyyͩͽ̼̼wguwgvWxgfVyxxyyy˼˼˼ͽͽ۽ܽ˼˼˼yzyyyyy˼˼˼yyxy˼˼ܼͼ˼˼̽۽۽ܽ˼ʬˬyyii˼˼˼xwwxxxxx˼˼˼wwXwvfugwghw̩yxy̼˼˼̽hwgvwhx˫hwgvwxhxihhxͺ˼˼˼˻˻xgvwvxwgxxyxʬˬʬʺ˫gywxxxwzhxxyʬʬʬʻ˻˻ˉXwhwhxwyxxhyxxxʫʻʫ˼˼˼˼˼˼vW6vfgUvVgED˼̼˼˩˫˺˼̼˼fG&gffdfVfFE˫˫vV5wVgevFgFE˼˼˼˺˫˺˼˼˼eW6weVeeUV65˼˼˼˼˼˼ˉWgfwvuvHwvGhxvxggYvW˼˼˼˼˼˼˚yyxhwuggXwvWggfwwwXguvVͼ˼˼˻˻zz˼˼˼˺y˼˼˼˹˼˼˼˹͚yzyyxyyyyy˼˼˼yxywwxxxxʻxhhyx͇ihixyyxxxxyxxʬʬʬ˺ʫwV&wegfvFwVUʬʬʬ˺wV6wdgfvFwFUʫ˼˼˼˺ʫf5vUhWEhUTʫe6eXg6xVeʬʬʬ˺˼˼˼ʬʬʬʺYhugghugyhguffwewugyyyͺ˻͉yhWugghuvw˼˼˼˩ʫ˺ʚމhgtwWvWwdvf˼˼˼xxixiyyyx͚www͙xxxxyyhxhyxʉ͚˼˼˼ˊ˼˼˼˩yyz˼˼˼˺xxxyy˼˼˼˘xyxxʬʬʬ˼˼˼˺ʫʻxyʬʬʬ˺˼˼˼ˉgwxgyxwʬʬʬ˙xhhyx˫ʺwxwxi͗gwvwxhyxy˼˼˼˚vhwwxy͆yxxx͖xyxyxޗguhwyxxyy͇xxhyxyyxx͇x˼˼˼yzzʺʺyxxyy͇wwwxhGewWgXcfVʼʼ˼̼ۼ̼˼˼˼ʼʼ˼ͽͽ۽ͼ̼ۼYFeVVYdef̼ۼ̼ʼʼ˼ʼʼ˼ͼ̼ۼ̼ʼʼ˼h7ewWgXdfVʼʼ˼˼˼˼ͽͽͼʼʼ˼ͼʼʼ˼ͽͽͽͽͽͽiGtGgItvgyx͇wwx˼˼˼xxxhʻʺxyy͇xxyxyx͙͚ywwgixxx͗vwwvhhxywwwxx͗xxwwwwxxxyͽͽͽܽ˼˼˼wVfWvgxvug͙˼ͼ˽˼˼˼ˉxeeFWxetfyyyhVfWggvwugܽܽ۽xfevVVxfev˼˼˼ʺ˺ʼʼ˼ʺʉʬʼˬʪʼʼ˼̼˼̙yyͽͽͽ͚hgfWWwewfg͉yxyʺhfuGvgweuWzyYWvXhhvvh͚iyiyyyyyy˼˼˼hgvWghvvgޚhWvWgXuvw˼˼˼yywfuvGghtvuf˼˼˼˻˻͚hgvXhiuvg˼˼˼ˈ˼˼˼˙˼̼̽wgfWwWhefg͊wWeGWxvvfW˻˻˻˼˼˼۽ͽܽxVd6Vxeefyyz˼˼˼ˉxVUFFxfUg˼˼˼ʻ˼˼˼ˉyzyhGewGwWgvfg˼˽̽wdFvfggv5wVT˺˼˼˼˼˼˼˹ʻʺwUFwevwgEwGd˼˼˼̩veEfVggvDgVS˼˼˼ʬˬʬ˺ʬʬʬge6wfwvwEvWT۽̼ۼhWdVwfgvuW˼˼˼ˊz˼˼˼ˊ͚xVcFVxeef˼˼˼wGtwVfxvveg˻˻ˉxVdUUxfdgyͽ۽ͽܽ˼˼˼˺vhwhxwxx͚xxxxxyͽ۽ͽ͇xxgwgxw͚ͪwwwwwxwxyʬʬʬ˙ʬʬʬʊxyxxʬʬʬʈxxxyy˼˼˼˺˺ʺyyy˼˼˼˺hhhyxvwwvxhyh˻˼˼˼˺xyyyʻyyxyyhyhixʬʬʼʬʬʬ˻ʫʫgwvywyxyXvywhxg˼˼˼˺˻˼˻˼˼˼yhixyxwgufwfheugxy˼˼˼˻˻˻͚˼˼˼˩wgtWWhevvVhXuggivvg˼̼̽˼˼˼ˈ˼˼˼hguggXvvg͙xxxyyxx͇xxwwxx˼˼˼yyyhyhyyʆixhxyyy͉yzy˼˼˼˩vV5wVgevFgFE˼˼˼˩vFEgUgfvFg6UʻʺwVDvFwfwEwFT˼˼˼ˆUEwVhV6hEU˼˼˼˩˼˼˼ˊ˼˼˼ˉzyy˼˼˼ˊyyyʬʬʬˉyyy͙˫xfdVGxUuehWegWgfwvf۽ܽ۽˼˼˼˚˼˼˼˼˼˼wWegvWxfvfyyxfevVVxfev˽˼ܼ͚ixhyyWvwXhiwgxw͗wgvhxw͖hyiyywXwXihyhyx˼˼˼ˆhxhxy޺gyvXxwʬʬʬ˻ˬʬʬʻhihyxyyhyhix˼˼˼yyyy˼˼˼˺˼wgvyhyxwʬweFvfggv%wVUʼʬʬ˼˼˼˼˼˼˹ʬʬʬgVFvewww6vGU˼˼˼̩vfEuVggv5gVD˼˼˼˺ʫʺ˻wf6fvvg6wWU̩˼˼˼ˆWvhxxgxxvgwvXwghww͗xyhyx˼˼˼˺˼˼˼˩˼˼˼ͼ˼˼͇yuwgwfgwuxgvyyʺˆhuhvxxw˼˼˼ʺʺ͇vhwxwvhxyxxhyyyxxyxͻʫʫvxwxxw͖xxxxxwhwhxޗguhwʫ˺ʺʻʺ˼˼˼˚̼˼̙ʬʼʬʙʼʼʼʼʼʼʺʉxyͽͽͽ͚vwxxwgx˼˼˼̼˼̺˼˼˼ˆgwvxxwwwwwxxxwy̺xyxxxuvwwgwuggv˻˻wwhXxw͇xwggw˼˼˼ʬʼʬʺxxixxyxxͼ˼˼˼˼˼˼wwxxxwwvhx˻˻˼˼˼˺˺˼˼˼˼xxxhxixʻͻʼwxxhghwwxvxxhxyyx͇hxxxyͺʺʫ˼˼˼vxxvwxxxyxyxxyywhwhx޺ʺʺxxhyx˼˼˼ˉʫʇvhwvhw˼˼˼ʬʬʬ˼˼˼ˉyyxyyxʬʬʬʚʻ˺ʬʬʬˊxxxigvhhXuugͼ˼˼˼˼˼˼˪XWfwwGvvfWhVfwvwWvvg˼˼˼xyy˻˻˻˼˼˼˼˼˼˺hguggXvvgyۼۼۼ͉y͉x˼̼˽ʼ˼ʬͽͽ۽˼˼˼yzzy˼˼˼˼˼˼˼˼˼͉ͽͽ۽yxiuwvfgvvWhvvxxxxxxxvfgvwXwughwfvwvwhwghwvwxwwxxhwwxwhwwhwxvxwhhywͽ۽͙̼ۼ̙ʙ˼ˬʼʼʼ˼ʼʼʼ˚yx˼˼˼˚XVwguggvgg˼˼˼˼˼ͺXWvWghvvg˼xyyGGwwfvfXvgg͉XWwgWhvw˼˼˼˼˼˼gGfwWfWfvvVW˼˼˼ˊ˼˼˼hGvwVwFgveg͚ܽܽ˼˼˼˻˼ˊW8fhWvWWvfh˼˼˼yzyy˼˼˼˺ˉyzyhGewGwWgvfg۽ͽ͙gWvhvhgwvfg˼˼˼˚VGfwgfgWvvVWͺyy˼˼˼gWvWwghfefgVugwWhvfg˼˼˼˺˼˽̼͉yyhWwgvgWfgf͙hXvXhXuvwzyyyyyxhWvgWXvvgͪ˼˼˼ʺyhxiWGgwgugHvgg޻ʬyvwvwvvhww˼˼˼˩˼˼˼˩vxwuxhxͼ˼˼̇xgvxwx˼˼˼˹˼˼˼˼˼˼˗xyxyxvuwvvwfgwxuʫʺʚʺʫwxgywy˼˼̼ˉʬʬʼ˺xxxʼʼʼ˼˼˼ˇxx˼˼̼ˇxyxxxʬʬʼʺ˼˼˼hfwvgwGtuvf˻˻˙˼˼˼˻XVgvv8egf̼˼˼̽˼˼˼gfvwugHewWyyzXegwvHewf۽ͽ۽zy˼˼˼˺vxwwhhxwxxxxxyxyywwhhvxxxw˺xxxxxwxwhvwxhvwwxwhhx˚yyyyyyͽͽͽ۽˼˼˼ˬˬʼͽ۽ܽ۽ʼ˼ˬyxyxyyͼ˼˼ͼ۽̼̼ͽܽܽ۽˼˼˼͉zyͅwxwhhwxx˻˻˻ʺʻ˼˼˼˼˼˼ˆwxgxwwvxxxxxyxhx˼˼˽ʼʼʬ˼˼˼˺xyxxxwwx˼˼˼xwxwhxwvwhwgvwghwvggggvugWhwxxxxxxfvgvugfwgXwwwxwxvxhivwxwgvwgwhWvWgXuvwxyͺ˼˼˼˚gVgggXvuwgxiyhy˻yyyhWvhXYvvhʻ˺yzyWGgwgugHvggxyhyhʼ˼ʼʗxvuhg˻˻˼˼˼yyxyh˼˼ʺ˻ʻʼʼʬ˹yyvwwxhv˼˼˼͉ܽܽ͊yyyͽ͙ܽܽͼ˼˼̽yyx˼˼˼˼ˬ˼yyyy͉yyyܽܽͼˬˬ˼̽˽̽vxwwhx˼˼˼˺̇xyvuwvwwgWxvvyxʼ˪˻vwxhxwwxyxx˼˼˼hxhyx̼˼ͺwxxwhyx˼˼˼͉˼˼˼yyyˬˬʼ˽̼˽˼˼˼yyyiiyxyܽ۽۽ͽܽ۽̼ۼ͚˼˼˼zyzyzy˼˼˼˼˼˼ˉXgggvwWefgܽܽ۽WgfwgXevgg˼˼˼˺HWWvvHfWg˻XfgvvvXfgvyyyy˼˽̽xwxghww˼˼˼ˇxxxxxxyyxvwwxwhhx˼˼˼ˉyyxyyxxyxxxxxx˼˼˼vwxxwxhhwyyywwhhvxxxw˼˼˼ʬʼʬ˚ˬʬʬˇwxwhXhxwyy˼˼˼ˊhxhxy˻vxxvhxywzyyyyixxʺ˼˼˼˺ʺvhxwvxxw͆xhwxxxwʫ˻ʬʫvxwuxhhyyxyxyxiyxʺʺwhwhwhhhyhyx˼˼˼ˆxyxx޺ʙ˼ˬʼ̼ۼ̉ͽ۽ͩʼʼ˼ʼʼʼʈʻ˺˼˼˼ˇy˼˼˼vwWwuxfvwxfw˼˼˼vgtwuvxwg˼˼˼̻yx˼˼˼˅gxvhwͩhuhvxxw̼˼͹yxxyyͺxxyxx˼˼˼wxwww˼˼˼˼˼˼˼xxgvwhʼvhxwvxwۼ˼ۼxx˻˻˻vwxwxxhʬʼʼʆxxyx˼˼˼xvwwvxxh̺yxhxixyvwhwuvvfwwXw˼˼˼˩ͼܼ˼ͺͪxvwwvxh˻˻˻xxx˺˺xxwwx˼˼˼wgvvwgtwvgvuxgwʺ˼˼˼ʬʼʼ˺ʺugvwvuhwgʺͺʺuwvgvtxgw˼˼˼ʼʼʬ˹ͺʼʼʼʼʼʼʅxxyxx˼˼˼͊yyyyͩʉyzyͺͺʬʼʼʩyxxʬʼʼʉxyyͺʺʉݹ˺ˈʺʺ˩͙˼˼˼yy͙yy͉͘yyyyyyxݹʉyyyy˼˼˼ˈxxyʻͺʺiiʺ˺yzyyhxiީ͉ͩ˼˼˼ʫʫˊyyyyͩۼ˼ۼxxxxyxxʬ˼ʼ˼˼˼˼˼˼˼ʺʺvwwxvxhwhxvxwxxvhwgxͺ˻˻˻˼˼˼ˇwwwwxxyxx˼˼˼˼˼˼ˊyyyy˼˼˼˩zyy˼˼˼˺˼˼˼VfuUeUVheuf͚͚˼˼˼VfuvFVVUgftf͉˼˼˼FWewVfVFwfeW˼˼˼UftvVfFVgVuf͚̼˼˼˼͙yxiiyxyxxyۼ˼̽ܽܽ۽˼˼˼˼˼˼ͽܽ۽ܽyyyyz˽̼˼yyyy˼˼˼ͼˬˬ˼yyx͹˼ʼʼʼʹʼʼʼʉ݉xxyͺʼʺݺ˼˼˼ˆwvhxgy˼˼˼˼˼˼˻xywvxuxhhۼ̽vguwtvxwgʫˬ˼˼˼͹˼˼˼̹vwfwfxuvwxWwyyxxyyxyʻʚxyyyxyyyxyyyy˼˼˼ͼ˼˼˼yyyyyyxͬˬˬ˼ͼܼ˼ͽܼ˼۽͚yxxˬˬ˼ܽܽܽܽܽܽ۽͙ܽ˼˼˼˽۽ܽ۽UfvvVUVFgdvfyyz˼˼˼͉zzzyۼ̽VgvGfWFvuuw͊˼˼˼˽۽˼FWfwVeV6wefg۽ܽܽVguWfGGwevg˼˼˼˼˼˼yyz͹ͺyyyyͺʺʫ͆xwxwxxh˼˼˼ˆxxyxxyixyͺxyhyhʼͺʻvwwxvxxhwhwhwhhuhhvxwxxyxyyʺ޺xxyͼ˼˼˼ܽ۽ܽyyxۼ̼͉ܽܽ۽ܽyyyy˼˼˼ˬˬ˼ˬˬ˼˼ۼ͚yyyy͉ܽܽyyyy˼˼˼˚yyz˼˼˼˨˼˼˼˹̼˼̼VWfwFeFVwefW˼˼˼ˬˬˬ˼ˬ˼˼VWew6fFVwfegܽ۽͊ˬˬ˼VWewFf6Vwfeg̼˼̼ܽܽ͊˼˼˼ˬˬ˼˼GHvhGvGGvvhͺʩyyzixhyxyyyxxʫʺʫ˺yyiiyyyy˼˼˼yyvhwxvwx˻˻˻wxxwx˼˼˼yxfwXwvwuvwvhwͩ˼˺˼˼˼˹vhwxvxwx̺xxx˼̼ͺixhxywgvvwg˼˼˼˼۽̼̊FfvvVdVUgUvf˼˼˼͉ܽܽ۽GgvGeWVwfugyzzz˼˼˼˽۽ͽ۽6WfwVeVFwefg˼ۼFguWuGVvfvwzyy˼˼˼yyyyz˼˼˼͊yxy˼˼˼ܽ۽ܽyyyy˼˼˼yxxܼ˼̼̉˽̼˼۽ܽܽ˼˼˼iixyˬˬ˼ˬʬʬˉyyyyhyxyyyx˼˼˼ʬʼʬ˺whwxxywʬ˺ͽͽ۽yyhyxyx˼˼˼˺̺Xwhwhxw˼˼˼hgfwuggugf˫˫ʻgguwgfWfdvvU˼˼˼˺͉yͽ۽ͽͺgxvgvgguvvf˼˼˼ˉXgvvvfWuwfۼ˼˼iXvgghvug˼˼˼˺hGvwvvWvufg˼˼˼˻˻˛˼˼˼hWugghuvwy˼˼˼˺ͼ˼˼˼XWfwuwgfvf˼˼˼gxwxxwʬˬʬʚʼgwhwxw͉yܼۼ˽wgxxhww˼˼˼ˉ۽۽͆vVvugvvwhfwvvxvgvggxv͉yyx˼˼ˉxyxxxxx˼˼˼yyxxxxxxxxx˼˼˼yyxxx˼˼˼˩͉y˼˼˼yʺʺʩ͊͹˼˼˼gVevVVVeeveV˼˼˼ˉʺWVTvFeVVfuUf˺VGegVeVVveeg˼˼˼˪WVevUeEVfudf˺˼˼˼ˉyy͗xyxx˼˼˼ʺ˺xxzy͗yxxwxy͗yxxxy˼˼˼˼˼̼ͼ˽ͼ˼whwiwyxyxxxyzzy˼˼˼˻˼˼ʬʼʼˉyyxhxxhyiyxyxyxʬʬˬ˽۽۽yyywxwhxig̺˼˼˼xihyhyyxhxxh˼˼˼˼ˬˬʺܽܽ۽whXxxhw˼˼˽vxwhwxʼx˻y˼˼˼˼˼˼˹whxxwxxyxh˼˼˼˺wwxwxxxxwwxxxyx˼ʼʬʼ˼˼˼xwvxwxy̺˼͆wxxvhw˼˼˼ˇxwxx˫˫xxwvxw˼˼˼y͇xxxxx˻˻uwgwwgvexfwxxxizzyy˼˼˼˼˼˼˼˼˼ʼʼʗxyʉyxyܼ˼˼iyyiyxyy˼ˬ˼˺ͽܽܽyyyyxwxwhyxw˼˼˼ˉxxxxx˼˼˼yxxxxxxxxxxyxy͉yyy˼˼˼vvxvgvggxv˼˼˼xxxxyy˼˼˼˻ʺ˺wxwxvxhhw̼˼˼˙xwwhvwxh˼ͽ͚۽ܽܽwwxvxxhvgvfgevwhWwˬˬʬʚ͉yyz˼˼˼ˉy˼˼˼ˊy˼˼˼˙xxxyxy˼˼˼˼˼˚˺˻ʺwhxyʼʼʼʻ˻˻ixxxyʬ˼ʼʚyyxwwivʺgVGvvtvGEvGT˼˼˼ffGewevVDfWS˼˼˼˩˺˼˼˼˩˫feGvwevV5fWDVf8veVEeXT˼˼˼˺͘yxyyxx˫ʫzy͉yyyxxyyxxwxxxxxy˼˼˼hhhyxihyyy͚˻̼˼˼˼hggwgvgWgwV˼˼˼WWgggugHwgW˼˼˼ˉhhvxXhXvvg˼˼˼hgvwgWXwvWyyxy˼˼˼˺VvtvgeGVeevV˼˼˼ͩ˼˼˼UvevfTVVvdfg˼˼˼VeVeVVveeg͊FvevfeVEvUfg˼˼˼ͩyzy˼˼˼˼˼˼˼˼˼˼˼ܼyʼ˼ˬͽ۽ܽۼܼ˽yyyy͙̼˼˼˼ͽͽͽ۽yyiyyyy˼˼˼ˈ˼˼˼˙yyz˼˼˼ˈxxxx˼˼˼xhyxx˻˻ˈxxxxwXxhhw˼˼˼ʬʬˬʼ˼˼wwhxxgxwwxxw˼˼˼˪ʫ˫˻˼˼˼͈hhyhxwhhhw˼˼˼ͺ͊yzyyyyy˼˽xyy˼˼̼̉˼˼˼yxyyyܽ۽۽˼˼˼˼˼˼yyzy͉˼˼˼۽۽ܽˬʬ˼yiyxxxxxxxxxx˼˼˼ˉwxwwhxv˼˼˼vhwxwwhxxxxxwhwxgxwxxxxx˼˼˼xxxxxywhwgxxw˼˼˼˺ixhhyyy˼˼˼˼˼̼˻ˬʬˬ˻hhhxyyyxYxxhwhʬˬˬˉ˼˻˻˫hwxgxywˬyxywxgwxhx˼˼˼˻˻˼˼˼ˈxxwxxfwgwwVvvxWwwxgwxḧ̼ܼxxywwxghh͇ihxxyhwfwwuggfgWͼͼ˽˼gwuggfWfUvvFܽ۽ͺ˼˼˼˙˼˼˼˺˼˼˼gvxgvggfvvW͉yzyXwvwvvfWfwWʬʼˊvvhfwgwufWxv͚˼˼ˉhwvxwwhx۽۽۽hwvxwwhx˼ʼʼʚ˼˼˼˼ۼ͚ywwwwhxwhw˼˻˺hfuvgvGwtufy͉ۼ˼̊hgvgWhuvg˼˼˼˼˼˼˼ggvVvVxuvf˼˼˼XWwgWhvw˼˼˼˩yggvvfheuwgܽ۽۽ۼ˼ܼ˼˼˼XWguuXfgg˼˼˼ˊhgwfuvgevg˼˼˼XfgvvvXfgvʺʻʉ˼˼˼ˈyy˼˼˼wgwvhvwhgwxxxxxxy͉yxxyx˼˼˼yx˼˼˼xxxxxxy͇xxxxhvwgwyy۽۽ͩxyxxxʻʉ˼˼˼y˼˼˼˗gvxwʬʼʼ̺ʻͺhxxxʼʼʬ͉xʺ˻ʙʼʼʬ˺yݙ݉͘ʻʫʺ˼˼˼ˈyiiyyyxxx˼˼˼ˬˬ˼ʽ˼˼̼˗xwhwgixyyxyzzyyyxxxyʻܽܽܽ˼˼̼˺ˬˬ˼yyyyihxxyxxxh͙yxxxy˼˼˼ˆxxhxywvwgh͚wvuxhwyvwhhͪhwhyޚxyxyyʫʼˬ˼ʼ˼˺xyxxixxxyzyyyxxx˼˼˼̽˼̽˼˼˼˼˼˼˼ˇwxhwxgiyyyxyyxyxyihͽܽܽ۽ˬˬʬʺWeeuVeFVeudfyyWfeVuVWfuefFVevUeUWftefWfvfvVgvuwyxxy˼˼˼ˇyxvxuhgxvwvwvvhww˼˼˼˨˼˼˼˗y͗xx˼˼˼ʻʫ˼˼˼fvwuwwvWvxv˼̼uxghwxyxyy͆xwvxwgyxxxxxxyxyxhxyʺʺwxgiw͆xxixxhwhyuhhvxwxʺʻ˼˼˼˚̼˼̽yyyˬʬʼ˙xxyyˬ˼˼ˬˬ˼xxxwxwwxvxih͉ܽܽxxwggxwۼۼۼʼ͇wxvhvhwxyyywxxwhwx˼˼˼ʬˬˬ˚˼̼˼vvwuvgfWfxv͚ܽܽwxwhi˼˼˼ˈx˼ʼʬ˺yxxxx˼˼˼˼yyywwhvhyܽܽͺͺʫ˺yyixxxy˫ˉxyyxxyʼ˼ʼʺxy˼̼˼˙ʼˬʬʹxxy˻ʺʺ˫ˉxywhxvxwy̼˼˙yxxxx˼˼˼ˬˬʙfGGfveuVFf7U˼˼˼˹ʬˬˬʨwWFugvugEwGdʺʺ˼˼˼˺˫˫fW7vvftgFvGU˼̼˼˼˼˼˩ʬˬˬ˪wVGvwveg6wFUyzy˼˼˼˻˻ˊ˼˼˼gWVgWfWfwvfGۼ˼̊WHfXWvWWvfX˼˼˼˼˼˼ˉhWegGwWgwfW۽ܽhWfgVwFgwuWyzyyͻ˫͈xxxxxxxxxxx۽۽͊xxyyxyxxxxxxxwwxx͛xxhwghwwhgxhxyyy͉ˬʬ˼˼˼˼˼˼۽xxͽ۽۽ܽyyx˼˼˼۽۽̼ܽۼͬʬʬ˼۽۽͉yyxxxxvvuvgfvghwuuvgfwhwvfXwvxxxwhwxwxvwvwhwghwvwvxwwiwwxwhwwhwx˼˼˼xiwXwx˼ʻˬˬˬʉxywxvwxhxiixhhy˫˼ʬˬ˼˼̼˚xhhxyyyyyxxxxxxwwxhvwxhgۼ˼̺˼˼˼˺xxxx˻˼˼˼˼vhWxgxˬˬˬʇxhyxx˼˼˼xyx˼˼˼˻xhihx͇hhwxgxxzyhwvwgWhvvWhvufgvGweuWͻˬyyxy˼˼˼˺yyyygwvwVvVxfvWމyiyiXgvwgWhvh˼˼˼yzzVvtvWe7fefuf۽۽ܽͺ۽۽ܽVwuWdGgvevg˼˼˼˼˼ˊUvevFeFfvVeg˼˼˼zyyFguWuGVvfvw˼ܼ͊˼˼˼yyiyyy۽ܽܽ۽ܽˬʬ˼yy˼˼ܼ˼˼˼˼˼˼yyx̼˼˼˼ͼ˼ۼͼ˼˼˼yzyzyzyxyˬˬˬˉxyyyۼۼwxvhwxghxwxxxxx˼˼˼vwwgWgvgWw̺˼˼˼wwhwxhxxyy˻˻͇hwgvwxhxxhhyxyxxzyyyzyzyyݻʫʫ˻yxyyyyzyiyihyiyʫ˼˼˼˚ʬˬʼxxʫyxyʼʬʬʚʬʬʼ˼˼ۼyywxwwwh۽۽͚WwghuXgcvf˻˼˼˼˼͉z۽۽Gfvvwughtwf˼˼˼˙VgvwgeggdvvU˼˼˼˼۽˼̼˼˼˼ʻWgvwwtgXdwfhhvgWiugxyygWgftfXvwW͉zWWggghfvwfxyʺʫ˼˼˼yyhgvWghvvgyxxiyxyʼʬ˼˻˻˺ʻʇyxʼʼʼʺxy˼˽̼yyzxxyx˼˼˼˼˼˼˼˼˼˺۽۽yvhwxxyw˼˼˼ˉ˼˼ܼvwgwvWvfhggwxggxxwʼʬʬʉ͚yyͽͽͽ۽wxggxxw˼˼˼vxxwgvwgxxʫ˻͉͉y˼˼˼ʈ͉ʻʈyxyyxyyz۽۽۽˻˻˻˺˽˽̼xyywwhgxhyyxxxxxyi˼˼˼˼˼˼˼ʼʬʬʬʬʬ˼˼˼˼ˇxhhyxyyzy˼˼˼yʺʺ͗xxxxixxx͉yyxyxyyxxwwx͚ʫVfufWeWVdeuf˼˼˼˺ʻʉ˼˼˼˺VfevVdVGUuee˼˼˼˩UVfvfUfWeufVFeeuVeVWetef˼˼˼˺ʻܽͽ۽˼˼˼ˉxXgxxvxyywxhwghyʬ̺˼˼˼ˬˬʬ˺yhhxiʻxhhxyyyyyͺʺʻ͆hxyxyxxwhghˬwwxwxh͆yxxxyvwxxhwʺʫxwgwʫ˼˼˼ˆhxhxyކxyxx˼̽˼˼˼˩yuwvwfwugfwixyxtwhvWvggxw˼˼˼˼˼˼˻̅xgvXwx˼˼˼ˇxxyuxghwʺʻʗyy˼˼˼ʼʼʼvwxvwhhx˼˼˼˼˼̼˚vwxvwhhxܽͽ۽ugggvgvgXgw˼ʚ͉˼ܼ͚vxxwgvwgxxyyyyxhxiyͺ˼˼˼ˬʆxwgwyʻͽͽͽ۽yyxxhxy˼˼˼ˬ˼ʬ˺͹wxwhXhxwyyxx˼ʼˬܽͽܽyyyxxx̼˼̽ˬˬˬˆwxhwhwwˬ˼˼ͼ˼˼ܽʬʼ˼yxxʬʬ˼ͼ˼ͼ˼˼˼y˼˼˼yyy۽۽۽۽۽ͽ۽۽۽ʻʙxxxxxwwvhwxxxxyywhwgxxwʻhwgwwxʻxxxxxʻvhwxwwhxxxx˼˼˼˻ihhx˻˼˼˼̘xxxyyyyˬˬˬˉʬˬˬˈyxxyˬˬˬˈivwxwxy˫˼˼˼̉WwvgwtgXewV۽۽WwWhuXgdvVۼ˼˼˼˼˼˼˼ˊ˻˻˼˼˼yz˼˼˼VwvggeggUvvFyyzGvvfwughewWʫyyyyfwvwWwfgWw˼˼˼˼˼˼˼˼˼˼˼˼˘xxyxy˼˼˼˼̼uwhvGvggxwvxXwhgx͘yyyʫvxWwXh͇ihix˼˼˼yyy˼˼˼ˊzyy˼˼˼ˈxxyxx˼˼˼˺ˬˬʬ˙wiwgy˻̼˼˼ˉˬˬʬˉ̼˼˼ˆixxxʫ˚ˬˬˬʇyxy˼˼˼˹VWHueV6eHUffGtwfvg5vWTˬʬˬ˺ˬˬʬ˹ffGuwfvg%vWUˬˬˬeg8Vg6vXeˬˬˬ˼˼˼˹˼˼˼yyyyxxwxyxwxyyzyyyxyyyxxxxxyy͊xihyyihhx͊ʫ˼˼˼yyyXfgvguggwwW͛GWggfvfXwwWˬxyyXgvwWghwvWyyzXgvwgWhvhhyiy޺6vuvgdWVeevfʬˬ˼˼˽˼ʬʬ˼۽۽FvuvgcWVeevfFvuvWdWfefuV˼˽˼˼˼˼˚ʬˬ˼˼˼˼ˊ۽۽GghtHgtvgʬʬ˼ʼʬ˼˼˼˼y͉۽۽ͼ˽̽ۼxyy۽۽ͼ˼˼˼͉yy۽۽͉yʬʼ˼ͼ˼ܼy˼˼˼˪˼˼˼ˉy˼˼˼˚͉ͺʫʫ˼˼˼yyyyzyhhyy͈xhihxˬwxhwghwwXwXhͻˬ͇wgxwhhhhhxy˼˼˼˪ʺʫއhhiyyxXWxw˼˽ۼxxxxxxͽ۽۽۽˼ʼʬxxxyʬʬʬʙʬʬ˼ghwywxXgugghuvgxͩyhXuhhhuvwggegvgxuefyͺʫʫ˻ʺ˼˼˼˚hgtwWvWwdvfyyyy޼˼˼˼HfgwvXUwe˺˼˼˼˚ͽ۽ͽ۽˼˼˼ˊyXVgvvHegf˼˼˼XgwgwWevvVͻ˻˻˻WgvwwtgXdwf˽˼ܼ۽ܽ۽wxwwxxxwvxwgxxx˼˼˼˚ͽۼ˼̪˼˼˼ʻʺ˻vxwwhxvʬʬʬ˚fuwvvfvggxu͚zʬʬʬ˼˼˼˼yyyhxhxy˺xxxʼʼˬzͽ۽˻˻wvwhvyiy˼˼˼˘xxxzyzyzyͼ˼ܼ˼˼˼ͺʻy˻ʉxyxyʫ˼˼˼˹y͉yʻʺʺyyyy޺ʬʬˬʼ˼˼˼˺hixyxwghwxixxyyy̺ʫʬ˺۽۽۽˼˼˼ˆwhXxxhwyyhixyxͺ͇wxyxhvwwx͚xwgvwxx͛xxyxwwxxxxͽͽͽܽyhxxxyyx˼˼˼˺ʻʫʻͻ˼˼˼ihxxyxgwgyy̺۽۽ܽʬʬʼʆxXgxxvWfdvFeVVUueeWfeVuVWfuefyyVVUvVdVGfuUfyxxyggeWugWffvvwwxxxͺ˻˻˻xy˼˼˼vvvugwwgxwux˼̹vwxwxxhxxyxwwwxʻʺ˼˼˼wxxwhgvwxwxxx˼˼˼˻˻hxyxx˼̼̽yxwwixyvͅXgvxwhˬ˼ʬ˼˼˼˺ʻʫ˼˼˼˺xxy˼˼˼hxixͽͽ۽yywhvhwxxxwˬˬ˼ʆwhvhwxxxw͚˼̼˼ufhvwWwvggxf˼ͽ˽wwwwhxwhw˼˼˼˻xxxxxx͉xyyxy̼˼̼ˉxxxxx˼˼˼wgwvhvwhgwxy˼˼˼xxxxyyy˼˼˼˻˻˻ͽͽ۽ܽixywywxiv˼˼˼˗xxyʻ˼ʼˬyy˼˼˼ˬˬʬʺxyyhxhyxyzyzyzyxy̽˽̽˼˼˼˼˼˼ˉVvsvWeGfefuf˼˼͊ͺͼ˼˼̉zVgtgdWfvuuw۽ܽܽ˼˼˼ˊyVvdvVUVevfdg˼˼˼GwtgeWVvfug۽۽ܽ˼˼˼xyyx˼˼˼۽̽̚ʬʼ˼۽ͽܽʼʼˬ͉yͽͽ۽˼˼˼˼˼˼۽۽͉y˺yyyyyyy˫yyyyẏgXvxhw˼˼˼ˈxyxy˼˼˼ˆvgwvHwghww̼˼̼ͺ˼˼˼vwfwvWgvxWwxxyx˼˼˼˩˼˼˼˻˫͇WvXwxhhhihyxʬʬˬ͉ˬˬˬʺ͉xyyxyyy˻ʫʫ˻۽۽˼˼˼˼˼̼yyzyyyx۽۽ܽ˼˽ͼ˼˼˼˼˼˼̙iyy˼˼˼yyʬʼ˼͚vwhwgvwghwwwxwxxxxxuwgwWvvfghgvvWvvfvwfhwxxxvwxwgvwgwhgwwyxˬʬˬ˙˼˼˼ˈviwxhxyw̼˼˼ˬʬˬˈyxxy˺xyyxxxyy̼˼˼ˇihxxyˬˬˬʺʺhhuxhhhvvg˼˼˼hwtgWvWwevV˼˼˼˼˼˼˺˻˻˼̼̼gwewgvgxfeW͈yyxXwuwgghvvW˼˼˼˛hihywgvhwxhxͺ˼˼˼˺ʺʫxghxxhxˬvXWwxhhʬhhyhx͗hiyyyʫhhiyyކwXXxxxxʬˬʬʚʫyy˻˻˺gxwxyxwy˫hxhyxˬʬˬʚˬ˼ʬxyxXwhwhxw˼˼˼ˉhxxx˫ʺ˼˼˼fW7vuevVFfGE˼˼˼˹ʺ˫wg7uvvfgEwVTˬˬˬʺ˼˼˼˺ʬˬ˼ʹfW'vvfugFvWU˼̼˼˼˼˼˨ʫ˻wf6fvvg6wWU˼˼˼ˊ˼˼˼ggfwhvhgxvvW۽۽͚VWVggfgWwvfG˼˼˼˺ggfwWwghguV̽̽˼gfevgwWhwvWyyͺˬ͇xhhxyhwhxhwx͊hiiyihhxyxghgwhixyx͛˼˼˼˛xXWxwwXXxxxx͘yxyyyyyhhyy͚xyyxhhyx˼˼˼xxxxxyyywxxxwz͇hxxxx˻˻˻ʼ˼ʼy˫˺ywxgyw˼˼˼˼˼˪˼˼˼xxx˼˼˼z۽ͽ͈yyyˬ˼ʼʗxxx˼˼˼VgeVeVVveeG˫˺˼˼˼ˉWfdEeUVfueV˺gVevVVVeeveV˼˼˼˪WfUVeFVfuTV˫˺˼˼˼ˉhyhyxyyx˼˼˼ͺʫ˺ʫwhhxhhwʬʼʬ˺ͽ۽۽͊hyxyx˼˼˼ͺy˺gxwxyxwʻʫͪͺyyy˼˼˼yyͪ˼˼˼˼˼̼ʺʫyxyhxxxyxxhiʼʬˬʹviwwxxxxyxyxxhwh˻˼ʬʬ˼ʻʺfeWfvewV4fGT˼˼˼˺˼˼˼gVGvvtvGEvGT˺˼˼˼VfXveVEe8T˺˼˼˼ffWuvewVEfGCyxx͉yy˼˼˼xxxwwxyʺʺ˙y͙xyxxh͗yxyxi˼˼˼˼˼˼ˉhWgggWvugWigvhXhuvg˼˼˼˼˼˼˚yhgvWghvvgXVwguggvggͼ˼˼˼˻˻y˼˼˼ˊz˼˼˼˹˼˼˼˹˼˼˼ˉxxxxxxxxxxvxwwhhxwxxxxwxvwxxhw˼˼˼ˉvwxxwxhhw˼˼˼xxxxxxxxx˼˼˼ˆxwwwghyx̺xwx˼˼˼˺uwvgwewfgw˼˼˼xwvxwxy˻˻˩xxͼ˼̼wxvhwxxxvxww˻yxxxi͇yxhxhyyˬ˼ʬ˺˺wyvwhh˻˚˻ˉyyyyyxhxi˼˼˼˼˼˺˼ʼʬʻwhXYggvwWfgfTvuVͽ۽ܽ˼˼˼ˉʼhgwfuvgevgzͪ˼˼˼gxvgvggevvf˼˼˼ˊ˼˼˼XgggvwWefg˼˼˼xyyyͽ۽ܽͼ˼˼˼ˬ˼˼ͽܽͽͼ˼˼˼ii͉yzyy˼˼˼̼ͼ˼yyy˽ܼ˼͉˼˼˼yyz˼˼˼˼˼˼̉yyyy˼˼˼۽۽۽ܼ̼˼x˼ʼʬܽͽ۽ͼ˼ۼyyyyʬ˼ʼʼ˼˼˼˻˼ˇxwxhwhxxxxyxx˼˼˼x˼˼˼˺˺ʹxxxwvxxyhwwwvxxxwwͼ˼˼˼˼˼˹ͩy͉z˼˼˼ʺʺͩ˼˼˼ˊ˼˼˼ˊyy˼˼˼ˊyyFwfwVefEfUef˼˼˼ͩ˼˼˼UwfwVTfVfdefVvvvGegVeetV͙˼˼˼VeVeVVVeee˼˼˼gvxgvggfvvV۽۽ͼ˼˼hwwwfuvgvvV˼˼˼˙˺XwgwgvwWvfV˼˼˼͉yy˼˼˼gwvgWfgfevuE˺ʇwwxwhgz͚wwhxxgwͼ˼ܼwwxxxgʼʬʼʚ˼˼˼ܽͽ۽wfwvguvghVv˼˼̼˻whwxihw˫ˬ۽ܽ۽̺wxwXwxXxihyh˼˼˼ͺyyy˼˼˼yyhxxhʼˬ˼ʺ˼˼˼xxxxxxy˼̼˼ˉxy˼˼˼ˇxxx˼˼˼vvxvgvggxvxyyxxxx͇xxxxxyy˻˻˼˼˼WgfwvuvHwvGhfvvwvwWwfW̼˼˼˼˼˼˼ˉ˼˼˼ͪhwuwggXwvWhwvwggXvuWyyxy˼˼˼yxywxgwxhx̺͇xhhxx˻fwvVwvwWgwwwghhx˺xyy˼˼˼ܼ˼wgxxhw˼˼˼ˈxwxxxxxxxxx͙˼˼˼xxxxx˼˼˼ˇxxxxxyyyvvxvgvggxv˼˼˼xy˼˼˼yy͇xxxͼ˼˼ܽyyxy˫˺ʬʬˬˈyyxyxwhwxixvyyyܽ۽ܽ˼˼˼yyyyzihhx˼˼˼˼˼̼ˈyyxxx˼˻˻˼ʬˬyiyi˼˼˼̉hwvxwwhx˽ۼ˼ʼʬʬ˚wWwegfvghgvyy͊hvxwxxwͽ۽˼˼˼whvhwxxxwʺ˫yxxx˼˼˼˼˼˼˺wXwXhxhihxwhxghx˼˼˼ʬʬˬ˼˼˼xwxxwxwhhixxˬwxwhhgͼ˼˼˻˼xxxʺyxy˺yyxyyyzͼ˼˼˼۽ͽ۽ۼۼۼͼ˽ͼ˼xyyyx͉y˼˼˼ͽ۽ͽͼˬʼʬܽͽ۽ˬ˼ʼ˼˼˼˼˼˼ˇxx˼˼˼uwggvuwgfw˼˼wwvwXvwhgv˼˼˼˼˼˼˗xxwvhxgy̆hwhvxxWxyxyhͻʻʺ˺ʬʼʬ˺͙ܺʻ˻ʫʺʺʺyyy݉ʬ˼ʼʺܽ˼˼˼ˊzfwdwVVVUfedf˼˼˼WwuWfgFvetgyͺ۽̼˼˼˼˼ͽܽͽ͚fguWegVvttw̽۽˼fvuvGfWVeesf˼˼˼˙xxxyʫʺ͉xy˼˼˼yyvyxvwxx̩yxxxi˼˼˼ͽͽ۽ʬˬʼʇwxwhxhxuͽܽ۽۽xxxwxxywwyxxxxxxw͈xxxx͈xwwxgxhyxxxyxxxywgxgw͗xxxxhͺyy˼˼˼ˇwhhxhhw۽ͽʼ˼ʼʺxyhyh˼˼˼y̺˻ʺʺxwxxygwyxxyhvfguWWvvegWfUVtVFfeUVyyyWfeVuVWfuefWeeuVeFVeudfzyyyiʻʫʻyyyy͉xyy˼˼˼˻ʫݺʫˬͻʫ˻yxix˼˼˼˙˼˼˼gWvhvhgwvfg͚ܽܽgGfwgugfveVW˼˼˼˺xVugWwvvfg˼۽˽xWvWgwfvefͺ˻ʬ˺˻ihhh˼˼˼˚˼˺wxwhxigyyy˼˼˼ˆwxwxwXXʼ˼ʬ˚yxyʼʬˬ˚˺xxxihwWWuvvfgFw6T˺ʺʼʼʬ˺˼˼wVVvfvvg5w7efGGfveuVFf7U˼˼˼˺˻ʺ˺˼˼˼˪˼˼˼gWWvuvvfFf'Uʼʼʬʹ˼˼˼˪xwhghxxxhxhXwޗyyyhݚyxhxivxvhxxwxxhxh͇yxxxxxwxwxxhyxʺʼˬʬigvhhXuug˼˼˼xfvvWwWgdtg˼˼˼˼˼˼͘xyhWvgghuuw˼˼˼˚˼ˊ̼˼˼xgeggguvefwxyxxvxhhvwwgvwgxwxwxwhxwvwhwgvwghwvghgvguwWgvxxxxxxfwhwgvfggWvއxxhxhXwyxyxhʻʺʻͺʆhwuxgXxxxxxgxxxxhxwvxwgͺ˼˼˼˻yyiyhxixh͇yxhxiʼʼʬ˺˻ʻyxy˼ʼʬ˼˼˼̉yxxʻʺ˼˼˼̗yyx˼ʼʬˊ˼˼˼ˇwywxiv͚ˬ˼ʼy˼˼˼xyܽͽͼ˼˼˼˽˼˼xͽ۽ܽͼ˼˼˼̼ͼ˼yzyyyyyy˼˼˼̙vxwxwxgx˻˼˼˼ۼ˼۽˼̼˼ˇxhvwwxvxwwxwxͽ۽͚yvuxvgvfgfwuˬˬʼʚxvvfWwWgutVމyyi˼˼˼ʻʫʺʺxwewgggfveWyyhgvwgghvug͚yyyiwvwhhXvuW͚ʼˬʼʙˬ˼ʼxwxhxxgyxxxͽ۽ܽ۽ʺʼˬˬyyx̼ۼ̼˼xxx˼˼˼ͼܼ˼˽xyxxyzyyyxxyxxyzyˬˬʬ˺ˬˬʼʼ˼˼˼yyxyhxxhii˼˼˼˘vhwyvhxw˻ͽ۽ܽ۽ͼܼ˼hvwfgwGeuvWzy˼˼˼ˊyyz˼˼˼Xfgvvv8fgVͽ۽۽˼˼˼XuwuvwHfgV˼˼˼˻˻gvvvwugHvwFxxxxxyxy͉xyyxyyy˼˼˼̉xxxxx˼˼˼wgwvhvwhgwyyy˼˼˼xxxxxy˼˼˼ˉyxx˼˼˼˻ʼxhyih˼˼˼wxhvwxhgxxxxxxx˼˼˼˻˼˼˼xvyxhwiwʬʬˬwhgvxXX̼ۼ˼xxihhyyxy˻ʺwwxhwwhww˼˼˼wxwxvxhhw͚ʬʼʬ˙۽ܽ۽yyyywxwxvxhhwͽۼ˼vfxvwgwugWhf˼˼˼˚yyzyzyxxyͽ̼˽˼˼˼˼˼ˬʬˬʻyxxyxyyyyyxxxxihʼʬʬ˩˼˼˼˼ܽ۽ܽyxiiviwxhxyw˼˼˼ˈxwxxxwwʼ˼˼˼xxwxxhwܼܽ˼yyxuwvwhgwWgvv˼˼˼˺xyhhhhxwhgw͇xhwwhgͺ˻xyxxxxxi˼˼˼˺ywwgi̼˼˼˺ʺ˻ˬ̼˼˼˗yxxxxˬʼʬ˚ˬʼʬ˼ʼʬʈyxyggvwgvgVdevU˻˻˼˼˼˼˼˼˼۽ͽhfwvgwGtuvf˼˼˼gwgXvhWcuf˼˼˼˽̽ۼۼ͉zʻXgwwgwWdtvfʻxxxxxwxwhvwxhyyxxwwwghʻʚxwxghwwʫʙxxxxxʻwxvwxxhwxxxvxwXgxyyxyxiͻwuhgxʺʻvwxvgtgWhwۼ˼˼˼˼˼˼˼ˇyxx˼˼˼˼˼˼˗yuwvwfwugfw˼˼˼˼˼˼ͼ˼˼˼yyͽ۽ͽ͚ͽ۽ͽܽͽ͉ͽ۽ܼ˼˼˼ʼyyyyxͼˬ˼ʼͼܼ˼ͩ˼˼˼ʙ͚͉yyyy˼˼˼˙yyz˼˼˼˚˼˼˼˙yͼܼ˼˽ˬ˼ʼܽͽ͉xxͼ˼˼˼۽ͽ۽ˬ˼ʼͼ˼˼˼yyyͼۼۼ̉y۽ͽ۽ʻʺyxyxhxwhghx˻͆xwvhxw˼˼˼ˇyxhxhwhwxxwʺʼ͆wgwxʻ͗yxxxyxxyx˼˼˼˼ˬ˼ʼ۽ͽggHvhGttgˬ˼ʼfvuvWfWFeduV̼˼̼˼˼˼˼˚͚ܽܽVvvvWeg6edufˬ˼ʼVvvvWegFecuf̼˼̼˼ˬ˼ʼʻVfufWeWVdeuf˼˼˼˺ʫʉ˼˼˼˺WeeuVtVFeeef˼˼˼˪WVfvfufUeUfVGfevVuVVUdee˼˼˼˻ʻxyxx˼˼˼̼˺˼˼ʼyʫʗxyyzyͽͽͽ۽ʬˬʼʪxxyxyiy˼˼˼˼˼˼ˉyxͼ̼ۼ˼˻˻˩yxvxwhw͚xwwxxxyxyyhix͘xxxxyyxyzyxyyy˼˼˼yyyyyyyxhhi͇yxhxxyͺ˻ʫʆywgwxyyͻʻixhxy˼˼˼ˬʬʬ˪۽ܽ˼˼˼ˊwxwhXhxwʬ͊zyyyy͚˼˼˼͙˼˼˼ywxxwxxxxi͚yyxyx͉zyyyxxxxʻʫ͊ihWghuvgyxy޺hWwgvgWfgf˼˼˼˙yyXWwffgvtgW͉yxʻʻ͉zhgvgWhvvgʼʼʬˈyxxy˼˫ˬʫ˼˼˼ˬʬʬˉxyvxwwiyyxxxyy˼˼˼˻ˬʬʬ˺xhhi˼˼˼˼ʼʬ˺˼˼˼˺ggXve6V8eˬʼʬgfWtvvwf5fGT˼ʬʬ˼ʼʬ˺gfWuvvwf%fGUVWHueV6eHU˼˼˼˺y˼˼˼˚˼˼˼˪y˼˼˼ˉ˼˼˼˼˼˼˼yzy˼˼̼˗xyhhx˻˻˺xxxxyyixˬ˼ʼܼ̽˼yxyʫʘxyyxyʬˬˬʇwyhwxghͽ۽ͽ۽yywhwwwx۽ͽ͗yxy̼ۼ̼˼ʼˬʬʚʬ˼ʼyyʬ˼ʼxxʺzy˼˼˼hvwfgwGeuvWʼgwWXvhWduV˻˻˼˼˼͉yzy̼ۼ˼˼˼˙gwvggvgVUevF˼˼˼˙XwwggwWetvV۽ͽͻ˺ʚ˼˼˼vxxwgvwgxx˼˼̼ˆgggvXvugggwܼ˼͚ʬˬʼʇwxvhvhwx͊wxvhvhwx۽۽ܽyyyhgvwgWXwvW˼˼˼ˉyyy޺͚hgwWgXvvhyyihXWwgffGwvgWʻyzy˻yxygfwvggXwugWixhhy˼˼˼yyyy͈xyy˼˼˼ˬʬˬˇyxhhxwyhwghxʻ˪۽۽ܽʻ̺xxgXxvyyܼۼ˼vxxwgvwgxxxxwggxwʬˬˬʚ˼˼˼˼˼˼ˉ۽ܽxxwggxwͅwgwvhvvfWggʼ˺yyy˼˼˼ʼwhvXWx˼˼˼ˈyxyxxwxgvhXxͻ˼˼˼˼ۼۼ̈yyyyfwvwWwfgWwvwxvgugGhw˼˼˼˼˼˼͇xihi˼ʬˬˬʼʬwwwhhxwxxx̼˼̽ܽ۽ܽxxyyyyyˬˬ˼yxhhh˼˼˼ˇxhihx޺˻whwghxwxhhgwwhwXXwyyhhyͺʻʺ˺ʬyyihhxWXxw˼˼˼ʼʼʼʺfW7vuevVFfGE˺˺˹gWGvtvvfFf7U˼˼˼˼˼˼˩wgFevwgFwGT˼ʼʬwfGvuvgg5wFU˼˼˺ʼ˺͇wwxxx͇xx݆xxvwhwwxxwxxxyͽ۽͗xxxWfWvGwveWͽ۽۽ʻʺ˺xWuFvVwvfWygGfwWfWfvvVW˼˼˼z˼˼˼˚˻˻˻˼˼˼ˉ˼˼˼gXfxWuWgufH˽˼ۼʫʫ˚˫ʺ˺yxwygxhhw˼˼˼ˈyxyxʼʬʬʹʬʼʬ˼˼˼ˉxxxhy˼˼˼ˉyxyyxʬʬˬʺyxxy˺yyyy˫˺ۼ˼ۼ˼˼˼˺gvwxwxwxyxxixx˼˼˼xxʺʺʻ˼˼˼vxxwxhxyxxxxvxxuxghʬʼʬ˻˻˻˼˼˼yxhxx˼˼˻yy˼˼˼wxwhi˻˻ˬʼʬ˚yxhxi˺yxʼʼʬ˻˻ʺiwgxwihWghuvgyiyyމyyxgvVVguvvf͙˼˼˼ʺhWvWgXuvw͹yyʺ˙yxyxguwGwggdufwwxghwxwwwhwhwwwxxwxwhvwvwhwghwvvwfwgwfWgvxxxxxxxuwvfgvvWhvv˼˼ʼܽͽ͉yyۼ˼̼˼˼˼ͽ͙͈ܽܽy͉y˼˼˼ˬ˼˼ͽ͈ܽܽyy̽ͼ̼˼vhwxvwx˼̗̽yʻ˻͆xvwwvxhxyxxxxwxwxxw˼˼˼xx˻˻xxw˼˼˼uwvggguwgwͺʻʺyxyޘyiyy˼˼˼ʻʺʺʫ͈xyyyzʺʺʺyyxyyzyݹ˼ʼʬˉzyͼܼܼ˼˼˼˼yyzyzzyˬ˼˼˼˼˼ܼͼ˼ͼ˼˼˼yxyy˼˼˼yiiyxxܽͽ۽͚ܼܽܽۼ˼fwvGeWWvdugy˼˼˼˼˼˼ˉzfvuv7fWVeetfܽͽ͚˼˼˼ewewFfFVfUef˽ͼ˼˼˼˼˽ܽͽ͙VgvGvWFveuwxxhyxyxʻʬʼʬ˼˻˻˺yyxʼʬʬ˺xyyͽ۽ܽyyzxxy˼˼˼˼˼˼̼˽˼۽˽yy˼˼˼viwxxxwyxxyXwuVvfgfuvfWfdvFeVVUueeyyWfeVuVWfuefGfeUuUVfdeVyxhxiyy˼ʬ˼˼˼˺˻˻˻xwxwwyxyxyͼ̼˽˽˼˼˼ˈyyiyxxy˼˼˼ʬʼʬ˺ܽ۽ͺ˫˺yyyyzyxyxywxXxhyyhix͛huxvXywhwxgxywyxhhxhvxwgxw͊˼˼˼˛yhhyyhihyͺʼ܉yxxʬ˻ˬʬˬͺˬʬˬʪyyx͉˼˼˼yxxxxxx˼˼˼yxxyxxxxxyy͉wgwvhvwhgw˼˼˼ˈxy˼˼˼xy͉xxxxxihhh˻ʻͺʼˬˬʘwvxXygxyy˼˼˼ˉzywvwxgxhܽͽ۽ʻʼ˼˼˼xihxxyyyۼ̽˼wwxhwwhww˫ʙuvxfwWwvfghv͚˼˼˼xwwhvwxhʬʬˬˆxwwhvwxh˼˼˼˚۽ͽ͙˼˼˼˺˼˼˼ixvxWghvWۼ˼̊hgvwWgXvvg˻˺xwugGwggeuVxyyxwvwVVgfvvW˼˼˼˼˼˼˩ʼXvgvvvXggf˼˼˼XwvwvvfWfwWͺ˼˼˼ˊ۽ͽyyyyWwwwfvXfvvWܼ˼͊HggvuuHggW˼˼˼˺۽̼vwxvwhhx˼˼˼fvxufvvWgwv۽۽ܽ˼˼˼wxwhwxˬʼʼʉʬwxggxxwy˼˫ͺxhhhyxiwXwx˼˼˼xxyˬʬˬ˺۽۽ܽyyxyxgwhwxxhhy˼˼˼˫˺ͽ۽ܽhvxwwhxwxxx˼ʼˬyyxx̼˼̼yxx˼ʬˬˬʬʬxywxXxhwxgxWhˬ˫ˬʫ˼˼˼˪yxhhyxhihx͇ͪxxyhxxwivxhwxʫwgvhwxhxxhhxyyyhixwhvXWxܼܼ˼˼˼˼ˈyxyvxWXggvxuwgwWfwv˼˼˼xyxy˼˼˼˪˺ʺ˼˼˼˩˼˼˼wwvgvwHgw̘yyyyܽ۽۽yxxxxxxyxͫwxwxxxhvwwxxxw͚ywxxwwwxvxwxygxxx͹veVfggVvDgES˼˼˼ˬʬʼʺ˫ʫwfGvwvegUwFS̼˼˼˺˼ʬʼgVWvvwfwUv6c˼˼̼˹˼˼˼˻˫ʻwfVuggfvUwFRxyxxh˼˼˼ʼˬʼʘxxx˼ʬʼʙʼˬʼʚyyyxx˼˼˺ʻ˫˼˼ʻ˻hvwwvʻyyxyyyxʻxy˼˼˼˼˻ggewfVhwwtG˼˼˼˚yzxWugfvVwwdWͼۼ˼̻˼˼˼˽۽۽xgdvUUxwdVyxfevVFxfcVʻ˼˼˼͊˼˼˼˚yy˼˼˼˚y˼˼˼˙͚zyʬyyxixhxyxy͈wxwxxxw˼˼˼yxxyhyxixxxyxx˼ˬʼʇgVgXeVx6cʼˬʼʺ˼˼˼˺˼˼˼˺fUvWhUEh5TwWFvfgdvVw6T˼ˬʬʺ˼ˬʼʺwWVvfgevVw&Txyxx˺˺ˬˬʼʙwxvwxg˼˼˼˺˼ˬʬʚyyx˼̼˼˺˼̼˼ʺʻʉyyx˼ˬʬʘxxxxvvfWwWgutVzyʻ˫ʺ˼˼˼hwvwggXvuW͙yyhgwgghugyyiyʺ˻wwuwfwfhvuVxxxhʼˬʬ˺yxywvxg˼ʬʼ˼˼˼˺xyxyh˼˼˼̼ˉyy˻˻ʻˬwxvhgw˼ˬʼʚyyʺޚxhxxh˼˼˼˚yxhhh͗yhyxihwxvxyWwxyvhygw͈wxvwxhxiiwxhwXyyyih͹wWWuvvfgFw6T˻ʺwfVtggfvEwFSˬʬʼ˼˼˼˼˼̼˺ʫʻ˼˼˼˩vfVuggVv5gED̼˼˼˹ggGwwewFvFTˬˬʼʺxvevVVxgefyyͼܼ˼ͺ͙˻˺xuuuGVxfdVhfvvWggwweW˼˼˼˚˼˼˼۽wfvvWvgxweW˼˼˼ˊʻ˼˼˼˪vW6vfgUvVgED˼˼˼˹vGFfegVvVg5TʻʻWEuVhVVhES˼˼˼wVFvfwFwEwDTʫ˼˼˼˹xxxxhy˼˼˼̼˺ˬʗxwvwgyˬˬʼʺʻxyxyhʼˬʬʚ˻˺˼˼˼ˉgwvhX˼˼˼˚yy˼˼˼˚˼˼˼˩yy͘yyyyxxhiʬzy͉yyxyxxxyyyihyxxy˼˼˼yxyxxwwxxxxx͚˼˼˼˙hgvwgghwuW˼˼˼hwuwffwvwuV˼˼˼˻yyx˼˼˼˚͉gvvvWWxfwtG̼ۼ˼XwvwgghwuW͘yyyyxxwxxw͊yxxxyyx˼˼˼ʺʫhxxhxxxxyxixޚwxuhygyhxxyxyxix͇xxxhy͈ywxwxhv˼˼˼˗hxxhiwxhwxxwyvwyg͚yhxxyxwxxxww͗xixxxyyxyx˼˼˼yyxʺʫzyzxxxxxͽܽ۽۽yxxxwwwxw͛xxxivwxwxyyxxhxvwywv͚xwwxxxwxxyigvggGIvt'ܽ۽۽ˬʬʼ۽۽۽˼ʬʬˬʬʼhWfWgWXee&ˬʬʼܽ۽۽˼˼˼˼˼˼ˬʬʼ˼˼˼YfefVVYfe&˼˼˼ͼ˼ʬʬܽ۽۽˼˼˼˼˼˼˼ʬʬ˼ʬʬhgfggWXfe\u0016gwuggGxewuV˼˻˼˼˼˼˼˼hwvwgWhvvWxyyXhvxhXhvvg͙˼˼˼˼̼ۼ˼˼˼˼˺hwfwWWwvwfVxvevVVxgef˼˼˼˫ʫ˼˼˼ˊͽ˼˼xvtvWFxVeUwguwgvWxgfVͽܽܽyy˼˼˼hguwgWggwfV͙޺yyyhgvwgWXwvW˼˼˼wwfwWwWhvfV˺͙yyxyʺyyzxwuwgwGgfuFyyiihxvhXhwvWͺzyͽ̽˽˼xgfwWvGwweG͊gWfgWGhwweW˻˼˼˼ʻʻxgUvFFxwUV˼˼˼xfevV6xfdVܽ۽˼˼˼˼˼˼˚yzyܽ۽۽yyyˬʬʼʫ˼˼˼ʬʼˬʙ˼ʬʬyxx˼˼˼gXvxhw˼˼˼wgtguwhggyyyʻʫ˼˼˼ͪ˼˼˼ˇyxxhywWwugfwgfw˼˼˼˩huhvxXw̼ۼۼyyyyʻʚxyyxʻʻͽ˼˼ܼ˼ʬ˼xyx˼ʬˬ̽ۼ˼ͼ˼˼˼y˼˼˼yyͽ۽ܽͽ۽۽ͽ۽ܽ˼ۼۼWwuWdGfvevg͉zzۼ˼ۼ˼˼˼ˉ͚VgfVcVVwdfW˼˼˼VwvGtWfweugͽͽ۽۽FfvvVdVUgUvf˼˼˼yͽͽ۽˼˼˼˺ʬʬˬʉʬʬˬʉxʻ˻ͺݺͻˬ˫y˼˼˼VfuUeUVheuf͚͚˼˼˼fftvVUFegeuf͙˼˼˼fWewVdVfwdeW˼˼˼efuvFeVfgUtfͪxwwwxw˼˼˼˺˼˼˼xhyhxۼ˼̈xxxxxhyxxʬʬˬʻ˻˹xyyxvxXwxgh͇hgwgw˻ʫˬ˼˼˼˼˼˼˩wxghhw˼˼˼˺y˼˼˼˚yy˼˼˼ˉyy˼˼˼ͼ˼ʬˬܼۼ۽yxxxyy˼˼˼ͽͽ۽̼ܽ˼˼˼zzyy˼˼˼ͽ۽ܽͼ˼˼˼͙ixyyy͹͚zy˫ʺ˼˼˼ͩzzyyͼ˼˼˼ͼۼ˼ܽxxy̼˼˼˼͉yyxyy˼˼˼˼˼˼ͽܽܽ˼˼˼ͽͽ۽۽˼ˬˬyxiۼ̽˼fwvGeWWvdug˼˼˼yۼۼۼ˼˼˼˙˼˼˼UfvvVUVFgdvfͺfwuWeGVwtvgͽͽ۽ܽVgfVdVVwcfW͉zzͽ۽۽˼˼˼ˇyxxhixgvwvxwgܼܼ˼xxxxwxvhwgh˼˼˼˩˻wxvhwxghxxwxyxwx˼˼˼ͩ˻˫gwhwugvwwfXwyxyyyˬʬʼ˺˼˼˼ˉyyyމyyyyiyʬzy͈xxyʼ˫݈yyyʫ͉zyyhx˼˼˼˩˼˼˼˹yyy˼˼˼ˉyܼܼ˼˼ʬ˼ͽ۽ܽxͼ˼˼˼ͽͽ۽ܽ˼ˬˬͼ˼˼˼yyͼܼۼ̈xyͽͽ۽ܽ˼˼˼˼˼ʬˬghvGtGgtvHͽ۽̼ܽ˼̽˼ʼˬfge6eFfweeW̼˼̽˼˼˼˼˼ʼˬVWfwFeFVwefW˼ʬˬfgeFe6fweeWͽ۽ܽyyhixwxgxWh޺ˬhwxwXhw͇hgwxgwˬyxyhx͗hxxhx˼˼˼ˈxhihx͇hwhxhwx͉yyͪʻʫzy˼˼˼͉xyyxwhgvxXx˼˼˼˼˼˼˼ۼ˼̈xxxx˻˺wwggh˻ˬxxyhxwwwxwx˼˼˼˺ͺʬˬˬʼ˼˼˼xhyhxhhwgxwyhxxywvXuxhhۼ̼̼wgugtwhggyyy˼˼˼˼˼˼˩ʻ˫ʫ˼˼˼ˈxxy˼˼˼wfwfguwgWwͩwvhxXg˼˼˼˻yyxhxxh޺˼˼˼ˇxhihxhwXwxhwxhyxyͩ͗xihyyhWwxgxwwgxgh˻˻͇whwxhhxxwwxxxyx˼˼˼xgvwvxwg˫˫xxxx˻ˇhwgvwxhx͹͇hwgvwhxihxxy˼˼˼˪˼˼ܼwwXwvfugwghwyxyˬʬʼyy˼ʬˬʚ۽۽͙ʬ˼˼ʫ˼˼˼˫ʫͪzyͺyy˼˼˼ͩ˫˫͉xʼʬˬݺʫʫ˻ʼʬˬʉyʬzy͉͊˼˼˼͙yyˬ˫ފzyxhyyiyyxxʬʫ˻ͺʫ˼˼˼ˉyyyyyyzyyyyͺ˼ʬˬʇxXYXxˬʬˬ˼ʬˬʼ˼˼˼vwvGvvhWwͺwgvWvwhWgvwvWvvhGw˼ʬˬʻ˼˼˼˻˻WwvgwtgXewV˼˼˼˼˼˼ˊXfgvvvHfgVʺHvwvvwXVgUͽ۽۽͊z˼˼˼˽ͼ˽˼˼˼˼XwwwgwWfvvFyy˼˼̼ʬʬ˼ʺxxxxy˼˼̼˗whwiw˺˻ʺʻʫʻʚʬˬʼ˼˼˼ˇxixxxxxxxˬʬʼʺhwgwwx˫˺xxxxxwxgxwhw˺yxxxxxxwxwwhxvxxyxwhwxwv˫˺xyy͉yy˽˽˼̼ۼۼˬʬʬͽ۽۽۽ʼʬˬ͉zͽ۽ܽ˼˼˼˼˼˼۽۽۽͉yxxxwxgvhX˼˼˼˺˼˼˼۽̼˼xx˼˼˼ˆWwhgxwuxvwfgggwuxixyx˼˼˼˺˼˼˼˪wwvgvwXgwʺʻyyyyyͼ۽̽ͼ˼˼˼˼˼˼z˼˼˼xͽ۽۽۽̽˼˼˼ʬʼʼ̼˼˼˼۽ͽ۽xyhgvwgghwuW˼˼˼˼˼˼˺̼˼˼˼hhuxhhhvvggWfgwtwXwfW͚˼˼˼˙˻˻yyXgvwwuwggfV˼˼˼ˬˬʼʘxyxx˻ʻʼˬʼʚxxxxy˼˼˼ˉxy˼̼˼˗xixxxʼˬʼ˼̼˼˘wvywxhvʻ˻ʺxwwwhwhwwwhwxxxvvwvwhwghwvhwwxwxxxxfwvwWwgggfvvuvgfvghwuxxxxyhxxyʻʫwXhhwވxhyhxgwgxͺ˼˼˼˻yhxhͺxhyxh˺ʻxgwxhwʺʬXwxxuwwvhwxxx˼˼˼ˇxxxxxxyyxxwhwxwv˼˼˼ˉxyyxxyxxxxxx˼˼˼ˆwhwxgxwyxxwxgxwhw˼˼˼˙ۼ˼̼yzyyy˼˼˼xyx˼˼˼̉˼˼˼ͽ۽۽ܽyyͽͽܽܽyxi̽˼˼˼ʼˬˬyy˼˼˼ͽ̽˽˼yyXvgvvvXggfgwgwgwhfufW˼˼˼˺ͽܽ˼˼˼˼˼˼ˉhwfwwuggfgW˺ʼXgWvvvXgWWͺxhhhy˻ʻ˼˼˼˺ʻʻyhxxhyghgxwyy˻˻ˬˬ˼ʚˬˬʬˆxXgxxvyyy˼˼˼˗xixhۼ̼̼xxwxxhw˻˻yyvvughwwggwuͺ˼˼˼xxxwywwxhwxg˻˼whwxgx˼˼˼˺̈xxxhixyxguxvhyxʬʬˬʻ˻˻ˬʬ˼ʹʻyyvhxwxxwv˼˼˼yhxxh˼˼̼˺ʻvwwgvwgxwigwwxwvwhwgvwghwwwxwxxxxxuwhwvWvvggfvwXwfuvgfgvxxxͽ̼˽˼˼ʬˬͽ۽ܽyyy̼˽˼ܽ۽ܽͼ˼˼˼ܽ۽͉ܽyyyy͊˼ʬˬ˼˼˼ˬʫzyhggwggWwugG͚WgwwgghgvgVyyihxvXhhwvWyyyhwvwgWhvvWyxxͺ˼˼˼˪wxxyww˼˼˼xhyhx˼˼˼˺˼˼˼ˇhwhwxwgwxh˼˼˼ʻ͆wwhwhXxxx˻ʬʬ˼ʺͼ˼˼hxyhxxxxyy̺whwxhwwgwhgxwxw˼˼˼˺ۼ˼̺˼˼˼xxxʻwghgw˻˻vvvwWwvwWvͺxxxixwxuhygʻ˫ʺ˼˼˼ʻʫʻއwXhhw͇xyxixwhwxgxʺvwwxxxhvxhyxhʫ͈xhyhxͺiyyhyy˫ʫwvXuxhh˼˼˼˼˼˼˗xixyx͆wwvwHvwhgv˼˼˼˺vvwWfvwWgwyyx̼̼˼˼˼˼̺˼˼˼ˇgXvhWxyxxxxxxhyih˼˼˼˫˫˼˼˼˺xyxyͼ˼˼˼xhyxxwXwxhw͘wgvwyxxx˼˼˼ʬˬ˼ʺ˻˻gwwhhx˼˼˼xxwxxw۽۽۽yyxʬʬʼʬʬˬʚ˼˼˼ʫʼʬʬ۽۽͊ggfwhvhgxvvW˼˼˼˚gWVggugfwefGͺzy˼˼˼xfevgWwwvvWʺʻʻxgfwWgwgvuV˼˼˼˺ͽۼ˼˼˼˼ixvxWghvW˼˼˼˺˼˼˼˚hggwgvgWgwV˼˼˼XggwffgwtwGy˻˻ͼ˼˼hwvgWhwvWzyxgfwWvGwweG˫˫˼˼˼ͽ۽ܽ˼˼˼xgewFvVwwvGgWVgWfWfwvfG˼˼˼˚ͼͼ˽˼˼˼˼˙yzghfxWuWguf8˻˻˻˼˼˼˻ˬxhyhggwggWwugGiwvwhXhvvWͺyyzxyyhwvWghwvW͉zyXfgvguggwwWʺʫ˼ʬʬˬʬˬʚyy˼˼˼ʼ˼ˬʫͽ۽۽hixyxwgvhwhxͺʫ˫ކhxXwxhwʫʫ˼˼˼vxWwxhh˺ʫʻxhyyxxixyxͺ˻͇xhyhxhwhhwwygwhwxwʻʺ˚͚˽˼ܼgwhwxwuvgfWvfgwv˼˼ˈͽ۽۽͚˼˼˼wwwwhxwhw˼ʬ˼ʙ˺˼˼˼hihyʬ˺ʫhixyxͺxyyy˼˼˼ˆwXwXwxxʬʬˬ˗hwhxiwwͽܽ۽۽yyʬʬʬ˙yxyʬʬ˼xhxvhwxyxͽ۽۽۽xxx˼ʼʬ˼˽ۼyxyyy˼˼˼˩vgwvHwghww˼˼˼ˇguXxhwxihyxͼ˼̼ͻxyx˼˼˼˪XvXwxhgʼʺvgfWwvwWvw˼˼˼˼˼˼ˈxyyyfF7guevVVfGT˼˼˼˺ʼʬ˼ʩwUFwevwgEwGdʼ˼˼˼˺˺˹fVGwtfvgVv7T˼˼˼˼˼˪˼ʬˬʩwVGvuvggVwFS˼˼˼ˈxwwxgxhʫʺʚyyʻʺ˼˼̼ʬʬ˼ʺyxxyxxxyxʼʬ˼ʺhxxhʬʬ˼˼˼̼˺͘xxxwwwxxyͽ۽ͽ͛xxy͇xwwxwywxiv͇wvwhvXfvvwgWdvwg۽۽ܽ˼˼˼˼˼ͼ˽˼˼˼XVgvvHegf˻˺WfwgtwXuvVzy˼˼˼HewvwXegf˻ˊyy˼˼˼˩yyyxy˺yyyx˻˼˼˼˼˅whhxhhw˼˼˼ˉyxxxyx˺ʻʼʼʼxxwhwxxywixixhʬʬ˼ʺ˺xxyy˼˼˼xx˼˼˼˺xxgvwwx˼̼̽ʼʼʼʅxgvwhxxy˼˼˼˻˻wxvwh˼˼˼ʺʺʻxxyxxvwhwgvwghwvwwgvwgxwwwxxxwxxxgxwhughgvWvgggwxxxxxvwgwufvgfXvʺ˼˼˼ˉzggvVvVxuvfͪyiyhgvWghvvgxyyˬhfuGvgweuWXWvWghvvgyyzyyͼ˼˼˼ͽܽ۽͉yyy̽˽̽ܽͽܽˬʼ˼ͽܽ۽ܼܽ˼˼yy˼˼˼yyͬ˼ʼˬʫyyʼʬʬʉ˻ˇwxxwh˼˼˼vwxwxxx̼̼xxyxvwwxxxʻʺ˺ͺ̺wwwvvvugwwgxwu˼˼˼˺yyyyyͺʺʺʻ˼˼˼˺ʺhyyyiyyyyxyyͺʺʫݹzzy˼˼˼ͼ˼˼˼yyyyyzͼ˼˼˼ͼ˼ۼܼ̼˼˼˼˼˼ʼˬyyy۽۽ܽiiͽܽ۽yy˼˼˼ˉ˼˼˼VwewFUFeffefͽ̼˽˼˼˼˼ͼ̽˼zyVwvGdWfwuugܽͽ۽˼˼˼ˊyyVvu7eWffftV͉GgvGeWVwfugܽͽ۽ͺۼ˼̊˼˼˼VWVggfgWwvfGʚggfwhvhgxvfW˼˼˼͙gfevgwWhwvW˼˼˼ggfwWwghguVyyyͽ۽xyyx˼˼˼ˈyy˼˼˼xxxxxxyyxxxxxxxxxy͆wgwvhvwhgw˼˼˼̼˼̼ˉx˼˼˼ˉxyyͺwxwXWxxˬʬʬˇyhhxiʻʬ͉˼˼˼ʻhhhxyxghgywyyܽ۽ʬʬʬ˚˼˼˼wxggxxwwxwwhxxzyyͼ̽˽˼ʻʻʉfvguwfvWghvܽܽ۽vwxvwhhx˼˼˼˚gwvwVvVxfvW˼˼˼˼˼˼˼˼˼˼˛˼˼˼hwvwWghwvWXgvwWghwvW˼̼̼͈xyy˼hvuvGvgwvuF͇ihxxxhixyxhxXwxhwޚyhxxywxxXhxxv͛wghxhx˼˼˼ˇxixyxxgwg͇hvwwx˼˼˼˼˼˼˼۽̼̉xxxxyx˻˺ʻʬʼ˼ʼʬʼʇyxyͽ۽ͽ͉xy˼˼˼yyyzyxVfeUdUGfueVyygvuVufWwvgWedFeVVfueVWfeVuVWfuefyxxyxxxzyyyz۽۽˺xxxxy˼˼˼˺yʬʼ˼ywgvwxx˻˻˼˼ͼͺʬʬʬ˼˼˼˼˼˼˼yyyyxͺʬ˻xyyyʬʬˬˉyyxݺʼʬ˼ʉ˼˼˼˼˼˼˼˼˼yyyyy۽̼˼yyxx̉yiy˼˼˼ͽ۽ͽ͉yyܼͼ˼ˬʼʼͽܽͽ۽˼˼˼˚y˼˼˼ˉz˼˼˼ˊwhxxwʼʼʼʼ˼˼˼xxx˻˻ˇwwx˼˼˼˺xwvhxwͼ˼˼˼xxyx˼˼˼yx˼˼˼͗wxvwxgxxyxhʻʺʺ͚ʪ͉yy͉yz˼˼˼͚VfuvFVVUgftf˼˼˼˼˼˼ffdfFFFdffdf˼˼˼ffevGUWegedfeuuu7VWeVVse˼˼˼˫wvxwgxxx˼˼˼˼˼˼̚wvxwgxxxͼ˼˼vgggvWvwhgvʼʬʬ˚͉yͽܽͽ۽vwxxgvgxwxxwxxw˼˼˼˺wgwhg۽̼˼xgvwvxwgxxxxͺ˻˺xhxxhͺwwgwfgwgWw˼˼˼wgwxhgʼxxxyxxx͇xxxxxxy͉˼˼˼xxxx˼˼˼xyyxxxxx˼˼˼vvxvgvggxv˼˼ˉyyyyyyyxyxˬʬʬ˻˻˼˼۽ʬʬʬ˘xyxxy˺ywxvxwxygܽ۽۽˼˼˼˼˼˼˼˼˼˼yyzyzihxxxxxx˻ʬ˻ͼ˼˼˼xwgwxh˼˼˼xxyyxxwXxhhw˼˼˼˺vwwvxhyhxhyxxʬʬˬ˼˼˼˼ihyhx˼˼˼˺wxxwx˻˚˼˼WVvwwhvvfg˼˼˼hWwgghuvx˼˼˼˼˼˼ˉhGvwvvWvufgyhWvgghvug˼˼˼vGFfegVvVg5T˼˼˼˩˺˼˼˼e76WeVeeWV6U˺˺vFEgUgfvFg6U˼˼˺˺˼˼fGFgdfffVf&Eʼˬʼʻ˻˻ˉwxwXwxXhhhh˼˼˼˼˼˼˺ʻʉxyyxixxhywxwixhg˺ʼʬʼʹxyxi͚xyxxxʺʇxxwwxxy˼˼˼yxy͊yyzx͊xxy˼˼˼˺yyy˼˼˼ˉzzzy˼˼˼˩̼۽˽hVfWggvwug˼˼˼˺˼˼˼xfevVVxfevyyͺwVfWvgxvugʻʚxeeFWxetf˼˼˼ˉͽ۽ͽ۽ʼʬʬ˺whhxhhw˼˼˼˼˼˼zyyhxiyhʬ˚˻whwyxxw˺xxxyxxxʬʬʬˉʻʺ˺xvwwvxhxxxiͺxyxvwwvxxhͽ̼˽˼wgvvwgx˻˺˼˼˼ͺvwhwuvvfwwXwxxwwxx˼˼˼˼˼˼˙yyxwxgxwhwxxxxxwxwhvwxhxxxxx˼˼˼ˉwxvwxxhw˼˼˼ˉxyxxxxx˼˼˼ˆvxwwhhxwxxxxxyxyܼͼ˼ͽ̼˽˼˼˼˼zyyyzͼ˼˼˼iyiyyܽͽͬ˼ʼˬ˼˼˼ܽ۽ܽ˼˼˼xyyyy˼˼˼˙˼˼˼yyyxxxxxxxxxxyyxxxxxx͉yxy˼˼˼ˇxxx˼˼˼vvxvgvggxv͉y˼˼˼hgvwWgXvvgyxx˻ˊWWgggugHwgW˼˼˼˼˼gfwvggXwugW˼˼˼˺˼˼˼hgvwhXYvW˼˼̼ˆgggvXvugggwܽͽ͉˼˼̽wxvhvhwxʺʇwxvhvhwxyyyy͚˼˼˼ʼʬʼvxxwgvwgxx˼˼˼ˬʬʬ˺yyhxxhyzyihhih˼˼˼ͺxhwxhxYwxvwxhxiˉܽܽ۽˺xuuuGVxfdV͉yyy˼˼˼˺ͽܽ۽xvevVVxgefwfvvWvgxweWۼ͚̽˼˼˼˩˻hfvvWggwweW˼˼˼vhwwxy˹͉yyxxxxxxyʺʫ˼˼˼ͺʼʬʼʇywxhͽ۽͉˼˼˼xxxx͚yzxwxwxxxxxx͘yyyyʺ͇yhxxixxxyxyxhxyh˼˼˼xxx˼ʬʼʺͽ۽ͽͺiixxxxyyyx˺˻˼ʬ˼˼˼˼˼˼˼˼˗vwwvhhyyy̼˼˼ͺyyyyy˼˼˼yx˼˼˼˺WeeuVtVFeeef˺˺˼˼˼WeUuUsU7VuUeˉ˼˼˼VeeVdVGfueV˼˼˼GtdFtFGftdf˺yzyͺ͙ͩ˼˼˼yyʺʺvwvwhwghwvwwxwhwwhwxxwwxwhvwiwxwvvwfwXwufhgvxxxxxxxvvwufhvggvu˼˼˼˼˼˼˼wfuvGghtvuf˼˼˼hWvwWgXwۼ˼̚˻˺xgvVVguvvfhgvWghuvgyͪ˼˼˼˺ʬyxyx˼˼˼ˬʬʬʼʬʬʹˬʻxxxxyʬʬʼʺvwywxxh˼˼˼˺yxx˼˼˼ˉiwgxwvxwuxhhʫˆxyxxʺʻwyhhއyxhxy͇xxixx͆gvwxwxxxxxyʫ˼˼˼ˉyxyyyͽͽͽ۽ͼܼ˼ͼ˼˼˼ˬʼ˼yy˼˼˼͚yiyy̼˼˼˼ܼͼ˼˼˼˼ܽ۽ܽzzyyzyʬʼʬ͉ʬʼʬ˺͙y݈xʻʻʫʺˬ˼˼ˬ˼ʼܽͽͼۼ̽˽xxxyyۼ̼͚yyyͼ˼˼˼ܽܽ۽ܽܽ۽˼˼˼yyxyxyˈxyyx˺ʼ͆wuhgxyyxyxvwvwvvhww˼˼˼˗xx˼˼˼˹ͼܼ˼ͩ˼˼˼˼˼˼˘xy˼˼˼vvxuwvfWwwvyuxgvhx˼˼˼˙fvuv7fWVeetfܼ˼͚ͺ˼ͽ͊yyzVgvGfWFvuuwܽͽ۽˼˼˼ˉzzyfvevFVFUveeg˼˼˼gwvGeWVvdugܽ۽˼˼˼˼˼˼wwigxhx˻˺hyix۽۽ܽyyz˼۽˼˼˼̼ˈyxyyxxxxyyʻʬʬʬ˼yyy˼˼˼yxxxxxix˼ʬˬʺ˼˼˼ˉxy˼˼˼xxxxxxxxxyxxyxxy͙˼˼˼ˉyy˼˼˼xxxxxyx͆wgwvhvwhgwxyxۼ˼̺xhihxxxxxxxyhx˼˼˼˼˼˼˻˼˼˼˼˼xwxxxxxywgvhwxhxxgvxWhˬʬˬʺ˼˼˼wxgxhhxۼ˼ۼ˼˼˼fvxufvvWgwvʻʻwxwwhxx˼˼˼͚wxggxxwʬʬʬvwxvwhhxyyy۽͚ܽyyx˻hwgvwxhxͺxwxxxxx˼˼˼xwhwxhw˺˼˼˼vwwgWgvgWwyyyx˼̼̪̺wxvhwxghxyhhxwwhvhyhxxx͚˼˼˼˚huvxwwyhhއyxhxxhvwgw͚͙yxxxyyyxyx͙yhgwfuvgevgʺʻʚ˼˼˼˙˼˼˼XfgvvvXfgvܼۼۼggvvfheuwg˼˼˼XWguuXfgg۽ͽܽgWGvtvvfFf7U˼˼˼˩˼˼˼˺ʼʬʬ˩gWGuuwgwEvFd˻ʫʼʩVG7fufvfFeGU˼˼˼˩˼˼˺ʼʬʬʪgVFvewww6vGU˺yxhhxʬyhhxi˼˼˼˚˼ʬʬyx˼˼˼ˈxwxXwiˬʬʬxwivxhwx˻yyy˼ʬʬˉxyyʻxxxyyˬˬ˼yyyy̼ܽ˼zzyyyxxxy˼˼˼˺ˇxwiwghx˼˼˼ˈyiyiܽ۽ܽyxyy˼˼˼ˬʬʼʇyxxhiˬʬʼʚuvxfwWwvfghv͚y˼˼˼ˈxwwhvwxhۼ̽͊xwwhvwxhʫ˙˼˼˼۽۽wwxhwwhwwgWfgWGhwweW˻ˊͻ˼ܼ̊gWugFVhwwfWyzyyWHfXWvWWvfX˼˼˼yyz˼˼˼ˊܽ۽˼˼˼ˊ˼˼˼fWfgWvWgwfVG˻xxx̼˼̽ˬʬʼ˙ˬʼ˼whwviwxxxyyxxˬʬ˼yyyܽ۽͉ͩzyhgwWgXvvhwvufGghevuW˼˼˼˺ވyiiyͺ˼yyyyxwvwVVgfvvWyxyyhwvwWghvvWͺVeduFuVWeeefyygfuVfWvvvwWVevUtUFfeefWfeVuVWfuefyxxywvxgʼˬʼʺͽܽͽͺxxxyxy˼˼˼˺ʺ͹ʻʇwvwghyy̺˼˼˼xxxh͛xxxxwhxghx۽۽͈xxxwxxxwxyyxxxxxxxxxxxxywxhwxgh͇wyvwhhxʺ˺xxxxyyyyͺwiwhx˼˼˼˽۽ܽͺ˼˼˼˼ˬʬʬ˺xxiyyyyxyyyihyzyʫʻyiiyމzyyy͉yzy݈xyxzyʼ˼˼˼ʬʬʼʉxxyxxyx˼˼˼˺ʬ˺ʫʼʬʬʈyxyyxwxgxhiw˻˼˼˼ˉˬʬʬ˼˼˼ˉyhhxx͗xywwʫˊx˼˼˼xyyx͆xxxxx͇xyxʬʫyxxgWgftfXvwW͚޺hyyhgvWghvvgyy˼˼˼˺ʺXVwguggvgg͚hgvgWhuvg͉yywV6wdgfvFwFUʼʬʬʺʫʼʬʬwW7wswuwWw7Uʼʬʬʺ˼˼˼ʼʬʬʹvW6vdwfwVgFTʫ˼˼˼˹ʫʫfG&gdfffVfFE˼˼˼ˉ˼˼˼˺yzyy˼˼˼˩˼˼˼˼˼˼˨˼˼˼xwVwewvwwgwyx˼˼˼vgtwuvxwg˼˼˼˼˼̻ʼ˻guxhw͆yxxxyguhvxxx͗yʫʚxxxxxwhwxwvxxxxxvxwwhhxwʻxwwwghyxʻwxwhvwxhxxxxxʻ˻xWuFvVwvfW͉zۼ˼ܼ˼˼˼ˉ˼˼˼˚xVd6VxeefgGewFVhvwvg۽ͽܽxWeEExvef˼˼˼yz˻˼˼˼ʬʼʬˉʼʬʬʇyyxʬʬˬʉʫʫ˼˼˼yxxxx˼˼˼˺ʹvwxwxxiyxxxx˼˼˼˺yyˬ˼˼ͼ̼˽˽͉xyͼۼ˼̉˼ʼˬܽܽܽܽͽܽͽ۽ܽͼ˼˼˼yyy˼˼˼zhyyyͺhxyxxʺxyxxhuvxw޺wgvhxwwwxwxhͺʫʆxwwvhx͹ʫˇxyxyx˼˼˼˺zͺyʫʉͨͩ˼˼˼xyyۼ˼͙ܽܽ۽ܽy̼ܽ˼ˬʼ˼ܽͽܽyyz˼˼˼ˬ˼ˬ͙˼˼˼͉xyͽܽ۽͉˼˼˼˹zyy˼˼˼ˉ˼˼˼˹yzy̼˼̽fge6eFfweeW˼ʼˬ˼˼˼ˬˬʼ˼ܽͽܽffd&fFfffdfˬ˼˼ܽͽܽVWew6fFVwfeg̼˼̽egUw5V5ewVUg˼ʼˬ˼˼˼˚ʬˬ˼xxxyʫʼʬʬvxvggxʬʬ˼˼˼ۼxxx۽۽͇xxx̺guxvhyxhhhhyyͺ˼˼˼ˬʬˬʼ˼˼˼yxixxxʻʈgwvywyxʫʻ۽۽ܽ˺˺˚͚wWwegfvghgvygvxwxxxͼ̽˼ʬˬʬˆwhvhwxxxw˼˼˼hwvxwwhx۽۽ܽ˼˼˼̇yhhyywgtguwhgg˼˼˼˼˼˼˺yyyʇguXxhw˼˼˼̆guhvxXxyxyx˼˼˼˪˼˼˼˼˽̼ܼwwVwehvwwhgwxyyhuxvXywxhihxͻʬ˼˼˼˗xxhhxއhhixxwxwhhg͈wgvyhyxwʫˬwwXwXh͗hiiy͚whvhwxxxwˬˬˬʇgvxwxxx˻ʫ˼˼˼ۼ̼˽̼˼˼ˉvvWvehfwggwyyyhwvxwwhx۽۽͉xyvxwwizyܽ۽ܽˬˬˬʩۼ̼ܽxxyyxxyʻxxxyyhxˬ˼ˬ˻˻˼˼˼˼˼˼˼˼˼ˇxihxxyzyyyyyxxx˼ʼˬvxvggxyܽͽܽxxyyˬʬˬ˪ˬ˼˼̼˼̽xxyyxxWgwwgghgvgVXgvwgWhvvg޺˼˼˼yyyihyyXhvxWgiwvWyzyyGWggfvfXwwWˬ˼˼˼ˉͽܽxgewFvVwwvG˼˼˼zyygWugFVhwwfW˺˼˼˼˻˻˻xfdv6VxfeVyyzxfewEExgeWۼ̼˼˼˼˺guvhx۽۽˼˼˼˺xxxyxxyygwvwxʻ̺ʬʬʬ˼˼˼˼ʻʉhxxyʻʺWfdEeUVfueV˼˼˼˺˼˼˼˺ʻWeSu5uUWVuUe˼˼˼ˉʻVVdvEuUWfeefʻGfdDtDGgtdf˼˼˼˺ywwgixxy̽ۼ˼̻˻˺˼˼˼˖xxxyxyyˬʼ˼yyyzzyxyʻܽ۽ͺ˼˼˼˼˼˼˼ʬˬʬ˺yhxixy͇xhhxxyyy͚xihyxxwwxxx˫ʺxyxyxxx͉zyyxyyxyy˼˼˼͊yzyy͹yyz˼˼˼ʻۼ˼̉hxvxggYvWhgvwgghvug˼˼˼˼˼˼˙˻˻˼˼˼˼wwuwfwfhvuVywwvgWWhevtV˼˼˼͚ffGewevVDfWSʻʩ̼˼̼˺ʻeuVUgVge3VVS˼˼˼˺˼˼˼˹VfWevfwfDeGSʻʻ̼˼̼ʻʻffVdgfgfDfVB˼ʼʼʻ˻ˆxwgwyyyxy˼˼˼˚xxxxy˼˼˼˺˼˻xhghxvixhxhʻʻ˼ʬʬ˺˼˼˼˙y˼˼˼ˉ˼˼˼ˉz͈xxwxxxyxyyyy͚yyyxxhyxyx͙yyʬʫxyxixyy˼˼˼yyxʻʩyxyyyʻʻgwWXvhWduV˼˼˼˺˻˻˼gwwgguwHevV˼˼˼˼̽WvwfgvwXuvVzy˼˼˼˚yz˼˼˼ܽ۽fwvggfgWeuvEwfVtggfvEwFS˫˼˼˼˼˼̼˪ʼwWFugvugEwGd̼˼˼˩vfUeWgfv4gFT˼˼˼˼ʬʼʺˬʬʼggVufwvwEv7T˻ʫ˼˼˼̉xwxwwyxʻyxy̼˼˼˗xxyˬʬʼˉˬʼʬ˙yxˬˬʬ˚xyxxx̼˼˼̙ͪxyxyhwhwxxxx۽۽͈xxx͈xxyxxxhwghxwwxxwxxwx˼ʬʬ˙xwywwxx̼˼˼̺ʬˬʬʼˉxxxyxyxyˬ˼˼˼̗xyˬʬˬ̼˼˼ˇyxx˼˼˼˙zy˼˼˼˙˼˼˼˙wwfwWwWhvfVyiyͺ˻ޚʻ˺wvufGghevuWyzyhgvwWgXvvg˼˼˼˚yyxͺyyhwvwXhivvWgfWtvvwf5fGTˬʬʼ˺ˬʬʼwuWswwww5wWSˬʬʼ˺˼˼˼ˬʬʼ˹ffGtwfvg5vWT˼˼˼˹ffVdgfgf$fVD͊xxxxyxy͘yyyyxxxihzyyxwxxxxx͘xxyxyyxxhiʬyxy˼˼˼vfFefgWv4gUT˼ʻ˼˼˼˻ʻʻgWGuuwgwEvFd̼˼˼vfFtfwgwEgVS˼˼˼ˬʬ˼ʩ˼˼̼˪ˬˬ˼wg7uvvfgEwVT˻˻˻ˬʫˆywgwxʻʻy˼˼˼˼˼˼˺hxhxiˬʬʼʻxhghxvyxxxxyyxˬʬˬ˺ˬʬʼˉxx˼˼˼˺gwgwgwhfufWͽ۽ܽgvxgvggfvvV˼ܼ̺yyʻ˺ʺ͊fwvgWvggUfuF˼˼˼WwwwfvXfvvW˼˼˼˩͇yxhhyhwxwXhwޚxxhhxixxhx˼˼˼ˆxxwxhXxvhyxix͛wxhwghxghxxhx͊zy˼˼˼WwWhuXgdvV˼˼˼˽۽۽ͺۼۼXvvfwgWuvwVyz˻HwvgwggeuwV͚˼˼˼˼˼˼˫ʫWwvggugfefvEhwuwffwvwuVۼ˼̉˼˼˼˺˻˻˼˼˼˼hwtgWvWwevVhguwgghvvg˼˼˼y˼˼˼˙YxxgghvvW͚ͺXwvwvvfWfwW˼˼˼gvxgvggfvvV˫ʻʺ˼˼˼ۼ˼̺˼˼˼ˊgwuggfWfUvvFyyhwfwwuggfgWͽ۽۽yiyiwvwhXhvvWޚXgvwgWhvvg˼˼˼˺yyʫ˺hwfwWWwvwfVxyyhvufgvGweuWyyzͻˬˬʬʼ˼ʬˬʚxx۽۽͙ʬ˼˼ʫ˼˼˼͈xyxxxxwwxxxxxx۽۽͚wxwxxxx͛wxhghxyxyxwhwh͙xixyxyyyyy͈xyxʫyy͈xxxwxyyyhxxyyxyx˼˼˼ͪhwXwxhwwhwghxކxxwXhxxvxixyhxhhxx͇yhhxyxhxxi˼˼˼˫xxxhxhg͈yxyxxxxxx͊xwxxxxxihxxyʺyyyyhixxx͉yyzyxyyxy˼˼˼hWfWgWXee&ˬʬʼ۽۽ͼ˼˼˼ʬʬʼ˼˼˼۽۽hHfHhhhdf&۽۽ͼˬʬʼʬʼ˼ͽ۽۽ͬʬˬ˼XWeWWghef&ʬ˼˼˼˼˼˼˼˼ˬʬʼͬʬ˼ʼ˼˼˼˼˼˼gWVWgvggUvV\u0015˼˼˼hguwgghvvgxͺʫʫʚhWfgvvWwuvWzXgvwwuwggfV͉yyʫ͉zihvxgghwuWʻʫ˼˼˼˼˼˼ˉxyyhxxxhhhh˻˻˻ʼʬʼʆwxwXwxxygwgxy˼ʬ˼ʻʻvgfwWwfgwvxxxxxwwxwhxvxhwxwvwvwhwghwvxwwwhwhwwxxxvguggwvghfu˼˼˼zyͼˬʬʬ˼۽˼yʬʼʼͽ۽۽۽˼˼۽yyͽܽ۽۽yͼ˼˼˼۽͉xxxyhyix˼ʬˬͼ˼˼˼˼˼˼wxxxw˼˼˼˺xhyxhxgwxhwwvywxhv˼˼˼˺ʻ˼˼˼˼˻͇wXwhhwxyxxyy˼˼˼ͽ۽۽͉yyxۼ˼ۼx˼˼̉ʬʼʼʬʼʼͽ۽ͼ˼˼˼۽۽͙yyxWugfvVwwdWͼ˼˼͚˼˼˼˻˼ˊ˼˼˼xWdgWvgwweWgHeXguggueX͉˼˼˼˚˺˼˼˼˙zgWeggfgfwvUG۽͚˼ʬʼʺxxxxy˼ˬʬ˼˼˙xyxxʺ˘wgvwyxxx˼˼˼ˉyyyʺʻ˼ˬʬʗxixh˼˼˻wxvwxxhwxyxxxxxhwgwwx˺yxxˇwxgxwhwwwvhwxxxˉxxxxxyy˻˺˼˼˼˪wwvwHvwhgv͇xvXuxhgxxxy˼˼˼˼˼˼˺˼˼˼˻yxx˼˼̹gwXhW̺vwwwgWvvxWf˼˼˼˗xiyhugggWvvwghvxxxwwxxxwwxwgwhvwhwgvwghwvwxwgvwgwxxvvhvfvvwfWw̼˼˼˼yixͽ۽ͽ͉y̼˼̽˼͈yyx͙˼˼˼˼˼˼˼˼˼zyyyyʬ˼ʼ̽˼˼˼xyx۽۽˼˼˼˻ˈxhfvvwvwWwfWhgvwgghvug˼˼˼˼˼˼˼˼˼ͺiguwhhhwvXXWfgwwgwtfW˼˼˼˚˻˗xwhwxixv̼˼˼ˬʬˬˬʬʼ˺ʻʬyxxxyyxxx˼ʬʬ˺yxy̼˼˼̹˼˼˼̇hixxxhwxvxyW˺ͻʬwxhhgwxixyhwxXwxhx޺͘wvwxgxhxhyxx˻˼˼˼ˈxhyhh͇xyxih˼˼˼yxyˬʬ˼ʚWvxxygʬʬˬ˗hixyxˬʻ˼˼̼ˊʻhxxhxhvxwgxwy˻˼˼˼ˆxwwwghyxxxxxxyxxyxwwvhwxxx˼˼˼˗xxy˼˼˼ˆxwhwxwvhwgwwx˼˼˼xyyxxxxxx˼˼˼̼˼˼˼˼ʬˬyyyzzyy˼˼˼ͼ̽˽̽ͼ˼˼˼xyy˼˼˼xhyܽ۽ܽܽ۽۽͉xyyʻʫʚgWVggugfwefGۼۼ͚ggfwhvhgxvfWz˼˼˼˙xgfwWgwgvuVͽ۽۽xfevgWwwvvW˼˼˼˼˼˼˚yyxwxvhwgh˼˼˼˺xxxihxwhwxhw̼̽˼vwwgWgvxWwvyxxyʻ˼˻˼˼˼hwgvwhxwwxxxxxxwwxxy˼˼˼˼˺wgxwhhxxyhxxxx˼˼˼˼˼˼˼ʫ˫˼˼ͺxxyhhyhxˬʬˬʆwwhxXw˼˼˼ˇxxhwxhvxixxx˻˻˺͇vvughwwggwüxyxxxwxxhw˼˼˼ˈxxxxwxwhwxgx̼˼̼̼wxhwxg˼˼˼˼yyyhyxixhyxyʻˆxxwXhxxvއwxXwxhx˼˼˼ʫʻgwwhhxxhhxyͺ˻˫xhyhhghgxwxxxxwxgvhXxͺ˼˼˼˻˫ʻʘyyyy˼˼˼xWwhgxwgwgwwhgg͗hiyyy˼˼˼˺˼˼˼˼˼˼˪wvwufwgWgxv̼˼˼̽yxyˬʬʼ۽۽yzʬ˼˼ʬˬ˼˚˼˼˼ʫʼyyWffvwwhwvvW˼˼˼˪hWfgvvWwuvW޺ʫyyi͙hguwgghgyhgvwgghwuWyxx͚ͼۼ˼hwwwfuvgvvV˼˼˼˺XvgvvvXggf۽͊XfgwuuXwgV˼˼˼ˉy˫˫ʫ˼˼˼gwvwvfhvuwVhwvwgWhvvW̼˼˼˼˼˼˼˼˼˼˺hwvwWghwvWXfgvguggwwW˼˼˼ˉ˼˼˼˼yyggwwftfXwgG˻˼˼˼ˊzyXfgvvvHfgVXvvfwgWuvwVyy˼˼˼ʻ˫˼˼˼˻ͽͽ۽۽WvwvgtwXfvG˼˼͊HuguwvXfwV˼˼˼ˊܽ۽۽ˬʬʼxyyʬʬˬʚ˼˼˼ʫ˼ʬʬviwwxxxxͩʫ˫xhyxx˼˼˼vxWwxhhyhxxyʫ޺ͺʫ˻xxwhwiˬhgwgwxhyhxͺxxxhy˼˼˼ˉyz˼˼˼˙˼˼˼ˉܽ۽۽ͼ˼˽̼xyyͽ۽۽۽ͼ˼ۼʬʼ˼˼˼˼͈y۽͙yy˼˼˼˼ʬʬ͉ʬʬʼFvuvgcWVeevfͽ۽۽۽ʬʬ˼˼˼˼˚ͽ۽۽۽FfffbfFfdff˼˽ۼFvvWcgVfeuV˼ʬʬ5uvugSgUVUve˼˽ۼʼʼʬ˼˼˼˺ͺ˫ʺzͩͪ˼˼˼zy˼˼˼ͽ۽۽EfuvfTfVgeufzz˼˼˼͊yͽۼ˼VgtgdWfvuuw͊˼˼˼˼˼˼VWewfcfVwdegͽܽ۽۽VguWdggwetg˼˼˼xxx˼˼˼˹ۼ˼̆Wwhgx˼˼˼yxyxvxWxgx˼˼˼˺˼˼˼˻˫yyuvxwGvwghvvwwwVwvwVw˼˼˼˺hyxiʻyyxyʻxyyyy۽۽۽ͽ۽ܽͽ۽۽۽͉y˼˽ͼʼʼˬʬʬʼy˼ۼ͉y˼˼˼ͼ˼˼˼yyyyxͺʻˬˬˬʪʬʬˬʉܚyyʫ˻ݺxiyyͼ˼˼˼˼˼˼yʬʼʼ͉yyyxy˼ͽͽ۽˼˼˼۽۽˼˼˼̽˼˼˼yzyz˼˼˼UwfwVTfVfdef͙˼˼˼͚DffffDfFfdffͩUvevfTVVvdfg˼˼˼UgVweSeUwSVg͙˼˼˼wxwxxxhvwwgghʻ˻˼˼˼˼˼˼˼˼˼˼ˈwxwx˼˼˼xhyxhxhyhixxy˼̼̽ʬʬ˼ʺͺ˼vhWgXxyxx˼˼˼ˉyy˼˼˼˪zy˼˼˼˙͊yyʺ͉͙˼˼˼yzxxxˬʬ˼ʉʫxyy˼˼˼ͽ۽۽͚ʼʬˬyyyyy˼˼˼͈͙̽˼˼˼xy̼˽̼̙۽۽ܽ˼˼˼xy˼˼˼z˼˼˼۽۽ܽVgfVcVVwdfWyy͚˼˼˼yzͼ̽˽˼VwvGdWfwuug˼˼˼˼˼˼˼̼˼EffvWTWVgeff۽۽۽VwuWdGgvevg͉xyyfwvVwvwWgwͪʺyxxhyͼ˼̼wxgxgxwgxxhẅxx˼˼˼˩˼wwghhx˼˼˼xxwxxwˬyyiyyzyy˼˼˼yyy޻ˬ˫yiyiyzyyyxyxyyˬʬxxyyfwgwwVvvxWw˼˼˼˹̼˼̼ͺ˼˼˼xwwxxxʻ˫wxgxgxwwxghh˻˻xxͩwxgwxhhxxhxivwxwxyˬʬˬʇxhyxx˼˼˼vhWxgxyxxx˼˼˼˼˼˼˺˻˻xxy˼̼̽˻ˬwwgxghͺxhihx˼˼˼ˈxxxwwyxxx͹˼˼˼vxWXgihxxyxWwhgx̼̽˼˼˼˼̘yyyuwhvGvggxw˼˼˼vwwwVwvhVwwʺ˼˼˼˼˼˼˼˼xxxyyhwxgxyw͇hgwxgwʫ˻ixxhx˼˼˼ˇhhixx޺͇hhyhxxXwhwiˬˬvXWwxhhihhxy˼˼˼ʬʼ˼xxxʬʬˬʚ۽ܽʫʼʼˬyyͺyy˺ʫʻzyyi޻ʫ˫xyyyiyͻʫʫ˻yyݺʫ˼y˼˼˼˺ͺ͉z͹˼˼˼yʫʺxyy˻ˬ͉ʬʬˬ˙ʫ˫܉͉݈yyʼʬ˼ʪ͚zyyzͺ͊˼˼˼˼˼˼ʫvwvGvvhWwʬʬˬʺͺʬʬˬʬʬˬuwwww7wuwWwwʫ˼˼˼ʬʬˬvgwGwvxWgʫfvgFgfxFvʫ͇ihyyyͺʫʻʪwwXhhwxhyyxwxxXhxxvͻʫ˫޺yhxxx˼˼˼˺hhyhxʫ˻xwgwxhͻʫwxhwxhvʺʼ˼ˬxyxyx۽ͽܽʼʬ˼ʆxwhwwwxʬʼ˼xx˽̼˼˼˼˼˻ihxxyyyy̺wxwXwxxʬwxhwxhyv۽ܽܽyyx˼˼˼ʼʬʼʇyhxh˼˼˼wvxwgxxxʬˬʬvgggvWvwhgv˺˚͙ͼ˼ͼ˼yyvwxxgvgxw˼˼˼̉wvxwgxxxͽ۽۽͚xyyxfvwwWwfxWwv̼̼˽̼˼˼˼͇yhxxi˼˼˼˼˼˼uvxwGvwghvvxWwxhx˻yy˼˼˼vXwhgx˼˼˼˘yxxxʫfdWvvfwgEvGSʬʬ˼˼˼˼˹ʫVUHweVVeHSʫʼʬ˼eeXVgVv8cʼʬʼʹ˼˼˼˹ʼʬ˼ʺʫfeWvvfwgUvGR˼˼˼ˉ˼˼˼˚yyy˼˼˼˙ʺʺʇxy͉˼˼˼xxwwwxy͗xxy͆xxxxhxyxyhhWugghuvw͉yWVvwwhvvfgyy˼˼˼˙ʺhWvhhiugxiyyxyʻͪgGfwwtwXvfgxhxxh˼˼˼˙ʼʬ˼ʻ˼˼˼˘xxxyxxyyyxxyʼʬˬʹ˺˺ʼʬ˼ʉwxwxxxhv˼˼˼ʺ˻ʺxyxxyx˼˼̼˺˻ʻʼʬ˼ʇyxyʼʬʼʙʼʬʼʈxxxxh˼˼˼˹˺ʫ˼˼̼ˉwvxhhwygvxwxtvxwWvwghv̼̼̽˼˼˼˼˼˼ˇyx˼˼˼˼˼˼˸˼˼˼xxuvwwfwuxfwv͆yxxxiuxghwxʻʺʫyy˼˼˼ͼ˼˼˼yyyyxyyͬ˼ʼˬ˼ͼͼ˼˽͉̽xyy˼ʼʼͽ۽۽ͽ۽۽ͽ۽zz˼˼˼VgvwgeggdvvU˼˼˼˻˻ʻʺ˺WfwgtwXuvV͉yzͽ۽۽GgwguwhevV˼˼˼ˉ˼˼˼˼˼̽˽WWwXuhgevFxxxxxvwxxwxhhwʻxwhwxwvxyxvxwwhhxwxxxxxʻyyxwxgxwhwʻ˼˼˼ˉ˼˼˼ˊ˼˼˼˚yyzyvxwxxwyxxx˼˼˼˹ʫʫ˻ʫͺʻʻxwxwvwwxhhwxxyxxxhwhxu޺ʻʩhyxxixxxyͩ˼˼˼ʺʺyyͺzyͨ͹˼˼˼ˊ˼˼ۼFvuvWdWfefuV˼ʼʬ˼˼ۼ˼ʼʬFvvWcgVfeuV˼˼ʬ˼˼˼˚GgHthgvvGͽ۽۽6vvWdgVfeuV˼˼ʬͽ۽ܽ۽۽˼˼˼͉xyxyܽ۽۽̼˽̼ͬ˼ʼˬ˽˼yyͽͽ۽yyy˼˼˼˼ʼʬ˼˼˼xyyxʫʺxyxxyyxhxxh͉yyxiyyh͊xwywxwyyxxx͆ixxxyʼʼʼʼ˼˼˼xhghxv˼˼˼˺ͽ۽۽ͺyxxxh͙ÿxyʺʫxwxwyvʻUVfvfUfWeufV˼˼˼˺˼˼˼˺VeeVdVGfueV˼˼˼˩VfuWeWVfeuFʻFfeVeVWVteU˼˼˼˺ʻyyxiiyxy˼˼˼˼˼˼˼ˬ˼ʬʩvwxwxxi˻xy˼ۼyyyhxxyx˼˼ˬ˼ʼʼܽ۽ͺyyzyʻxyy˼˼˼ͺyyzʬͺyyyͩʻyyGgfwwvwXwfGXgvwwuwggfVͺʫ˻xyyޚXwuwgghvvWyy˼˼˼XxvhhhwuWhyyi͛yy۽ܽܽvxwwhxv͉vxwwhxvˬ˼ʬʚ˻ʺ˫vwxxgvgxw˼˼˼uwgwvgvvXgfͼͽ˼̼˼˼˚yyzy˼˼˼˼˼˼ˇhhhyx˼˼˼wxgxhiwܽ۽۽yyyxyy˼̽۽ʬˬʬ˺ʻxxyyy˻˼yxxxxxyi˼ʼʬ˼˽˼xxxyxxxʫ˼ʬʬͽ۽۽wwxwhhxw˼ˬʬxyyʬˬʬʉVwvggeggUvvF˼˼˼˼̽̽˼ͽ۽۽WvwvgtwXfvG˼˼˼ˊ˻GwwwguwhfvFyzz˼˼˼yzy˼˼˼˻˻WgwXuhgfv6͉FwuWegVwvtgͽͽ۽˼˼˼˼ܼۼ˽˼˼˼VvdvVUVevfdgͼ˼ͼ˼˼˼˼WguWdgfwetgyVvuGeWfffsVͽͽ۽zy˼˼˼˺ʺxzʼʬʼʉ̽˼˼xxgwvxwwwxxxw˼˼˼y˻˻ˇwx̺˼˼˼uwvwgwuxgvvʻvwxwgxxxyhʺ˻ʺyzyxʺʫy͉yވiyyyʺʻ˼˼˼xiyyʻʺyy݉zyxxܽͽ۽ͽ۽͈yyi˼˼˼yy̼˼˼˼͚yyzyy˼ͼ˼˼˼˼z˼ʼʬܼͼ˼˼˼˼ʬʬʼˉʬʼ˼xx˼̼˼xyxwwwhxgͽ۽ͽ͇xxxˬʼʼʫʺyyx˼˼˼˺˺˺˼˼˼wuxvwfgggwu͘yyyywgwgwwhgg˼˼˼˼˼˼˩xiyyhvxWwxhx̼˼ͼ˼xgvxWxͻ˼˼˼˘xx˼ʬʼʚxwwxwx˼˼˼xhvwwxv̽˽˽yvxwxwxgxʻ˚͚ͽ۽۽۽vugvwgfgfhu˼˼˩viwwxxxxyͽ۽۽۽ʬˬʼʺyyxXwxxwi˼˼˼˗hhhhͺ˺˺˼˼˼˺ihxxxywxwxhvʫxhyxhwxhvwhgxxxhiʺʫ˼˼˼ʺʻxhxxxwY˺ʻhWwgXͺxhyhhyhxig8ehguggueh˼˼˼ˉ˼˼˼˚˼ۼ˽wGtwVfxvvegͽ۽ͽ͚˻ˉfGewgvggvfUW˼˼˼˼˼˼ˉyͻʻʉzwGewgWxvvdggVWvvwfwUv6cʼʬʼʹ˻˹˼˼˼gUVwfwvwFv7TVFGgvfufVe7T˼˼˼˹˼ʬʬ˼˼˼˹˼˼fVWwufvgVv'T˺˫xyyyyˈxyyyy˺xxxwvvxxwxh͇xwwxxxx͛xxxyxxͽ۽͊˼̼˼ʼˬʬʺyhxxhwxhwxgi̼˼ˉyyʺ˻ʻʼˬʬ˼˼ˈyyyxxyxxxʼˬʬʚgfvWWxuwtVyͺʻʫ͉ʫʫ˼˼˼ggegvgxuefyhWvhhiugiyyyުyzXgvgghvugyxxxiʬˬʼʉwvywxhʬ˻ʻyyʼʬʬʉyyyxxxh˼˼˼̼˚˻˻ˉ˼˼˼wiwhXʻ˻ʫ˼˼˼͆xxvwhwxxyhxxyxh˼˼˼xx˼˼˼˼˼ʼʼʬuhgvxxXxxxwvwgxxww˼˼˼˼̽˽˼˼ʼʬ˼˼˼͉yy͉y˼˼˼ͽ۽˼۽˼yyy˼ʼʼͽͽ۽yxy̼۽ͽͽ۽xxxfwvwWwgggfvwvwhwghwvwxwwxxhxwwwhwhwwvxxhhxwwvugvghwWgfvxxxxxyxʼʬʬ˼˼˼˼iyyy˼˼˼yzzyxx˺ͽͽ۽˼˼˼̼ˆxxxhʼʼʼy۽˼y˻˻ˆwyxxwv͙˼˼˼˘vwwxxxhvyhxhxyxih͇yyyhixhxxxwYxiyyhxvxwxxwigwyhxW͗yyx˼˼˼yzyy˼˼˼ˆwhxvxwyyy˼˼˼۽̼̼˻˻xyhxhxyʼˬ˼ʻiyxyͽ۽ܽͺʼʼʬʺyyxyyyWfeVuVWfuefVVUvVdVGfuUfyxxygffguWXwvegVeeVuFWfedVxyyʬˬ˼ʺ͉˻ݺʬˬ˼ͻʻxyy˼̼˼˚ͽܽ۽wgxxhwwʬˬʬˇwgxxhww˼˼˼yywwwwhxwhw̼۽˼vfgvgugWwf͙˻ʼ۽۽XwgwgvwWvfVyyy˼˼˼HfWwvvHwWVͽͽ˼˼˼˼XvgvvvXggf˻˼˼˼ˊWwfwwgXvvgVyyx˼˼˼ˆwgwvhvwhgw˼˼˼yxxyx˼˼˼xxxxx˼˼˼ˉyyxxxxxyy͙͈xyyxxxxܽͽ۽zvhxwxxwvyyx˼˼˼ˈXvywhxgʬʬʬ̺ͻʫʼihyihhxxix˼˼˼ʻgvvvWWxfwtGyyx˻˼˼˼˼˼˼˼gwewgvgxfeWhgvwhhiwuX˼˼˼˼˼˼ˉXwvgghwuW̽˽˼yyyy˼˼˼˼˼˼۽۽ܼ̼˼y˼˼۽̉yyz˼˼˼ͬ˼ʼʬͽ۽˼˼˼iyyWgwfvXuvvf˼ܼۼfgvwWvggdfuU۽۽ͺ˼˼˼˘˼˼˼˺˼˼˼gxvgvgguvvf͉yggggwhuuffˬ˻yxxxi˼˼˼˼˼˼̼˚yyywxhʼʬʼʬʬʼʻyxxxyx˻ʬ˻wiwxv˼˼˼vxwxwxy˻˻˻˺vwwxxx͆xxxxxͼ˼˼vwxhxwy˼˼˼wxxxewwwvfwuxggxxxxxxxxxx˼˼˼ˉxwxghww˼˼˼ˇwxgxwhwyxwxwhvwxhxxxxx˼˼˼xxxxxxxxxwhwxwv˼˼˼˩͸˼˼˼ʫʫʉͩy͉yVvvvGegVeetV˼˼˼ͩ˼˼˼EvfvVUfFveeg˼˼˼VeVeVVveeg͚VvfvVdfUvTeg˼˼˼ͩ˼˼˼ˉy˼˼˼˙˼˼˼ˊy˼˼˼˺ʺʺwxxwxxxyxxy˼˼˼hxyxx˼˼˼˹˼˼˽xwwvhxwwwxxwxwxhx˻ˬʼʬʼ˼˼˼yyx̼ͼ˼ܽͽ۽ˬ˼˼˼˼˼˼˼˼yzyy˼˼˼xyyyyͼ˼˼۽ܽܽ˼˼˼̙yiyˈyy˽ۼ˼xyxyxʬˬʬ˘xxxyx˻˻˼ʬʼʼyiyyzzy˼˼˼˼˼˼˼˼˼˺hxxhxwiwhwy۽ͽ۽wwxxxgͽܽͽ͚˼˼ܽwwhxxgw˼˼˼ˈʫʫwwxwhg˼˼˼͉yʼʬˬvvfvvhuwgVwwwxxxwxxyhx˼˼˼˻˻ˈxxx˼˼͇xgwxhwʬ˻wxhwhXxxxxx˼˼˼˼˼˼˼˼˼˼ʬˬˬʺxhyhhhhhww˼˼˼vvxvgvggxv˼˼˼yyxyyyxxx͇xxxxxyxy˼˼˼ˉxxxxx˼˼˼͉yxxxxxyxx˼˼˼hxwhgw˼˼˼ˈxxxwxwhwxgx˼˼̺͈yxywxhwxgxvwwwvWwfxVg˻˻͇yxxhiyz͙yxxyx͆yxxxy˼˼˼ywxyxx˺ʫxxy͙hWvgghuuwy˼˼˼˹WGfwvuvhvvg˼˼˼˼˼˼˙˼˼˼hXuggivvg˼˻˺˼̼˼gWvwwXfuff˺VfXveVEe8T˼˼˼VfWevfwfDeGS˼˼˼˩˼˼˼˩ʫVeWvvfwf5eGD˫GVGvvvvgEtGT˼˼˼˺˼˼˼ˊ˼˼˼˚yyyyzyy˼˼˼˺ʼʬʬ˚yy˺xyxgwhwˬˬʬxhwxhxY˻˻yhhxiyxhhhyy˼˼˼˼˼˼ˉ˻ʫ˼˼˼eVevVvVgeVeV˫˼˼˼ˉ˺VVdvEuUWfeefʺVGegVeVVveeg˼˼˼˪VVUvVuFWfeTf˼˼˼ˉxyxyh˼˼˼˫wwywxxhyyʺ˫˩yxyhxyy˼˼˼ˉͽ۽۽ʼˬʬʺxwhwhXw˼˼˼xxy˫ʺxyhhhzy͈xxxxwxyxxyyy͈yxyyyxxyyyhi͗yyxzzyy˼˼˼ˬʬʼʗyxiyiyyͽ۽ܽʈyyxixxx˼ˬ˼˪˼ܼܼ˼˼˼̼˼˼˼yyyyxwywhxxw˼˼˼yyyyyyz͉͊͊ʇwgiwxhx۽ܽܽ˼˼˼yyhxxhxˬʬʬʺhyhixyyy˼˼˼͉̺whxxXhwvvxvgvggxv͉yy˼̼˼yyxxxxx˼˼˼yxxxxxxxxxx˼˼˼yyxxxx˼˼˼˚XhvxhXhvvg˼˼˼˼˼˼˼XgvwWghwvWxyyyHWggggWwugW˼˼˼˼˼˼˼ˉ˼ܼ˼WgwwgghgvgVhvxwxxw˼˼˼˼ʼʬʚ̼˼˼ˉܽͽ۽vvWvehfwggwhwvxwwhx˼˼͉ˬ˫whvhwxxxwzyy˼˼˼WwwwfvXfvvW˺ʺfwvgWvggUfuF˼˼˼˺yyz۽ܽͺgvxgvggfvvW˼˼˼ˉgwgwgwhfufWͽۼ˼ʫʼʬʬʉxygxxxxw͆ixxxx݉yxxyhyxyx˼˼˼˚xhwhxuwhwhhhvxxvwxxxxxx͚gWfhvhgwvfg˼˼˼˼˼˼ˉyywVfWvgxvugʼ˻ͺͽͽ۽fGVwgeggvufW˼˼˼˺۽˼̼wWegvWxfvf˼˼˼˺˻ʩVV7wufvfVeGDʼʬʬ˹fVGwtfvgVv7T˼˼˼˼˼˨gfFvewwwUvGS˻ʺ˫geGuwgwFvFT˼˼˼˺ʼʬʬʩyyhwixhww˻˻˺xixxxihyihʫ˺˫˼˼˼ʬʬʬʚʼʬʬʈyywhXxxhw˼˼˼˺ʼʺuxgwhwhwxxwͺ˺ͩʫʫ˻˼˼˼ˆgvwwxhxxxxxxyxxʺʻwhwhhhީxyxyx͆xxyxyyzܼ̼˼˼˼˼ͽ۽ܽxyy˼ۼ۽˼˼˼yyͽͽ۽˼˼˼yyy˼ʼˬ͚˼˼˼̉yiy˼˼˼͙yyhgvWghvvgXXvWgivvg˼˼˼˼˼˼˼˼˼˼gguGgxewuVggvVvVxuvf˻˻˼̼̽xxx˼˼˼ˈ˼˼˼wxvwhʬʬʼʺʫ˻ʚxxxhʼʬˬxxʻ˼˼˼ʬʬʼʉyxyxxxuwhwvWvvggfvwhwgvwghwwwxhxwvwwgvwgxwvxhwxhwfvgvugfwgXwxxx˼̼̹wgvvhwwXwv˼˼˼˼˼˼˗xx͖xyyxguxhwʻʩXvxwxhg̗y˼˼˼˼˼˼˨uwgwfgwuxgv˼˼˼ʺʺʻ˺ʈyxyݙܹˬʼʬ͉͘ʼʼʬʺ˼˼˼VwvGtWfweugͽ۽˼˼˼˼ۼ̼˽Vvu7eWffftV̼ܽ˽FgvGeWWwfugyzzy˼˼˼UvevFeFfvVegͽͽͽ۽zyy˼˼˼˺xyyxyʫxxyyyyͽͽ۽ܽ˼˼˼ˬ˼ˬܽͽܽ˼ʼˬxyyyyܼۼ˽˼˽̼ܽܽܽ˼˼˼zyyʼʬʬˉ͆gwhwxwuvgfWvfgwv˼˼ˊ˼˼̈˻˻ʚ˼˼˼wwwwhxwhw۽ܽܽgwhwxwy˼˼˼ʼʬˬʺxxixxxyyxyxxʬ˼ˬʻۼۼ˼˼˼˺yxxyyyzyyxhwxgwx˼˼˼ixy۽ͽ۽˻˻wgwvhvwhgw͈yy˼˼˼xyy˼˼˼xxxxxxxxx˼˼˼yxy˼˼˼xyyxxxxxxyyyxhhyxwwghhx̺˻ˈxyxwwxghhxxwxxhw˼˼˼xwwwxxx˻˼˼˼wuvvggwWhwv˼ͼ̽xyyxwwxgxhvxXwxghʼʬˬ˼˼˼˺xxyxxhyxx˼̼̽˼˼˼xiyhyxxy˻˼˼˼˩˻˻˼˼˼wgvhwhxxxxxxxhyhyx˼˼˼ˬʬʬʩwhwyxxwʺyyyyhxxxͺͽܽ۽˼˼˼˅XwhwhxwyyWfeVuVWfuefVfdFuVWVeeUyxxyWguVvfhguvfFVevUeUWftefyxhxi˼˼˼ˬʼʬ˅xhghxvܽͽ˼˼˼ˈyyhxhxyͺʻ̹ʻyyyyvxxvhxywxvyxhwiwxyyx͚vwwvxhyhxxyxxwyxwxxxx۽ܽxxxyxwwxxxxx˼˼˼˻yyyxyyxyyihyyˬͺˬyyziiyyyyyyz۽ܽ۽yxyxxx˼˽ۼ˼˼ʬˬʼˬʚhvxwhxwʫyyʬˬ˼xxxhyxˬʬ˼ʼ˼˼˼˫ʬ˼ˬyyxxxxxxyxyzyyy˽˼˼˼˼˽۽۽ܽ˻˼˻gwxgyxwiyy˼˼˼˻wxwhwxͽͽ۽۽ˬʬ˼ʚyyfvguwfvWghvvwxvwhhx˼˼˼˚˽ܽ˼˼˼˼wxggxxwʫʺ˺˼˼˼ˉHvwvvwXVgU˼˼˼HwvgwggeuwVͻ˻˻ͼ˼yyzGwwwguwhfvF۽ܽ͊8fgvvvXfgV˼˼˼˼˼˼zyyyyyhwvWghwvW͊XhvxWgiwvWyzyˬ˼˼˼˚gwuwGgxfwuFiigwvwVvVxfvWyyzͺʺʫxxwxxxwxgwxh˻˻˺˼˼˼̈xyx˼˼˼wgxxhwxxwxxhwxxxix̼۽˼wvwuwggghvu˻yyʬʼʼʆwxwxwXx˼˼˼ˈxyˬʬʼʉ˻˼˻xgwgyyhhhhʫ˻˼˼˼˙xxxhyʻʻ˼˼˼ˇwxwwhxvxyyxxxxxxyxxxwwwgh˼˼˼ˇxxxxxyxxyx˼˼˼ˇhwgwwxwxvwxxhw˼˼˼ˉxy˼˼˼̼˼˼˼yxxy˼˼˼ʬʬʼ̽˼˼˼˼۽˼͚˼˼˼yzyyyyyxxyi۽۽۽۽۽˼˼˼gwvwvfhvuwV˼˼˼XfgwuuXwgV˻˫XvgvvvXggfۼ̙yͽܽ۽͚˼˼˼hwwwfuvgvvVʬʼʼ˼˼˼͉y͈yyx˼˼˼ͽ۽ͽ۽ۼۼyyʬ˼ʼͽ۽۽͈xۼ̽ͽ۽ͽ۽yxx˻˺wXwxhw͇xhyxxxxx˼˼ͺˬˬˬʺ˼˼˼xxwyxwx˼˼˼xhyhh˼˼˼ʬ˻wxhhgw˼˼˼ˇwhxxhxvʻˬˬʼʚwvwxgxhyxyxih˻ʺ˼˼˼˼˼˼ˉyxyxhxxhgyvxxWʼˬʬ˻˼˻vghgvguwWgvxxwxwxxwvwhwgvwghwwhwwgxvwwgvwgxwxxxvvWvvfvwfhwhgwgghug͙yy˼˼˼˛hguwgghwvWxyxWWvgvuvhwfWޚʺʻyʺyiyhfvvwvwWwfWͫˆwhwxgxwxxxxxxxywxvwxxhwˇxxxxxwwvhwxxxxwwwgh˫yxzyͼ˼˼˼ͽ۽ܽ̽˼̽˼ۼܼ˽yyy͊y˼˼˼۽ܽܽʬˬʼͽ۽ܽ۽ʬ˼ˬyyyih˼˼˼ͪgvxuwgwWfwvʻ˺ʘyyyywgwgwwhgg˼˼˼˹˼˼˼xxxxvxXwhgx˼˼˼wxghWx˼˼˼˻̼ܽ˽yxyˬʼʬ˺˼˼˼̗xxxihˬʬʼ˹xxxyʻʺ˫ˇxwiwxhxvyxy̼˼˼̘yxxxy̼˼˼ˬˬʬ˙ͽܽܽ˼˼˼ˉzyXuwuvwHfgVWvwfgvwXuvVyy˼˼˼˻ۼ͚̽˼˼˼˼XvvvwgWftwGʫHfgvvvXfgV˼˼˼˙˼˼˼ˈyyyyxxxxˬʬˬˬʬˬ˼˼˼˺ʬˈwxvxwxygxxyxˬʼ˼ʹʫʼhxix˼˼˼˩vwfwgwfWgvxxxwhwxwxvwvwhwghwvwvxxwhxxwwwhwhwwxxxxvvfuwhgggguyyx̼˼˼˼˼ˬˬ۽۽ܽͼ˼˼˼yhxܽܽܽzzyy˼˼˼˼˼˼˼˼˼ͽ̽˽˽yyyyyxyxhhx͇yxyhxʫˆxxwxhXxvwxwhhgͻˬ˫ކxwhxxXwixyhyˬ˼˼˼˻ʫʫ˻͇hhyhxxghgw˼˼˼˹XggwffgwtwG˼˼˼gfwvggXwugW˻˻yy˼˼˼˺hwvwWghvvW˼˼˼hwvwgWhwvW˼ܼ˼˼˼˼˼ۼۼ͊fWUggvggwfeG˻˚gHeXguggueX˼˼˼ˉz˼˼˼ywWdgVfxwvuW˼wWeggWxwvdW˼˼˼˻ͽ۽۽͊hgvwgghvugxʺ˻ʺʪggfwwwXguvV͉zWWvgvuvhwfW˼˼˼yyʻzhhuxggiwvWwguwgvWxgfVʻ˫ʫʚ˼˼˼˼͚̽˼˼˼wfvvWvgxweWggfwhvhgxvfWͽܽܽzfWfggeggwuVG˼˼˼˚˻ˉxgWfgwtwXwfWhguwgghvvg˼˼ͺ˼˼˼˚˼˼˼hgvwhhiwuX˼˼˼WffvwwhwvvW˼˼˼˚ˬʬʼ۽۽͚zyʬ˼˼ʬˬ˼˚˼˼˼xxy̼ܼ˼˼˼˩vwfwvWgvxWwguhvxXxyxxx˼˼˼˻̪˼˼˼yy˫˼WhwXg˼˼˼˺wgvvhwwHwv˼˼˼˗hyixhxvwywv˼˼˼˺ˬʬˬ͆wwhwhX˼˼˼xwwxxwwhxxg˻˻˼˼˼˺xxxxiyhyʫ˼˼˼˼hxyhx˼ܼ˼xxyxyxxyʻʻhwgvwhx˼˼˼hixxxvwwgWgvxWwv˻˻wwhwxhxxyyͪܽ˼˼˼˼wxvhwghxwxxwxhvxwgxwxxyhxͻʫhyxix͇hhyhxxwhxxXwވWvywxxhˬˬ˼˼˼˺wgxwhh͇hixyx˼˼˼ʬˬ˼ʫyxy۽ܽܽʬʼˬʚʼˬˬxhxwwyvgwvywyxxixyx͚xxwhwiyhxxxޚ˼˼˼˗hxxhguyhxwyxxhyͩveEfVggvDgVS˼˼˼ʻʺ˻ˬʼʼwV6vfvvgUwWc˼˼̼˩˻˻gfFvewwwUvGS̼˼˼˸˼˼˼ˬ˼ʼvfFufwgwUgVRhyxyxy˼˼˺˼˼˼˺˻ʗgwvwxʻ˻˻ˉyhxxxxʬʼʬʻˬʼʼʹXvwhgʫˬʼʼʉyy˼˼˼˼˼˼ggfwWwghguV˼˼˼ˉxgfwWgwgvuVͽͽ۽۽ͼ˼xvevVVxgefyyxvevFWxVtU˼˻͙˼˼˼˙yyy˼˼˼˚˼˼˼ˈ˼˼˼xxxxixyxxwxxwx͈xyyy͘yyʬhxxhxxxyyͺʻWEuVhVVhES˼˼˼˹˼˼˼˩wVDvFwfwEwFTʻvG5fVgevVgFTʺ˼˼˼˩ʻvWEvUgfvVg6D˼˼˼˩hyxyxʬʼʬ˺ʻgvxw˼˼˼˺˻˻hxxx˼˼ˉyyˬʼʼyxyʺ˻wgvhxwxwugGwggeuV˼˼˼˩hhvxXhXvvg˼̼̼˼˼˼hwvwWghvvW˼˼˼˩xyy˻˻˼˼˼wwfwWwWhvfVxyy˼˼˼˺ˬ˹yyxwgvwxx˼˼˼˺ʻ˼˼˼˺xxyxˬʼʬʙˬʼ˼ˬʼʬʗxxxʻxyyyxyxʺyy͚wwwxwxxwxxwxw͈xxywvywxhvxxx۽ܽxxyxyvxwwiyxxͩwgFevwgFwGTˬʼʼvfFtfwgwEgVSʻʻ˼˼˼̼˼˼˩˼ʼʼ˼˼˼˨vfEuVggv5gVD˼˼̼˸gW6ufwvwFvWTʻ˼xgUvFFxwUVzy۽ͽ˼˼˼͉˼˼˼˺ʻxfdv6VxfeVhWegGwWgwfW˻˼˼˼̽˽̼wgewGWxwvfG˼˼˼zyyʬʼ˼ʹvW&vewfwVgVTvW6vdwfwVgFTˬʬ˼˼˼˼˹ˬʼʼʅg6exgVXVcˬʼˬʆf5vUhWEhUT˼˼˼˺xxy˼˼˼ˈʬʼʼʗxxxyy˼˼˼˺ʺʫˬʼ˼ʙhxxyxʫ˺˫ʬʼʼʺ˼˼˼ˉwvwhv˼˼˼˚˼˼˼ˉyy˼˼˼˨yy˼˼˼xyyyxxhy͙xyxxxxxxixyy͚ʬyzzxwwxxxwxxx͊yyyhxvXhhwvWhwfwWWwvwfVͺʫyiyiˬyyzgwuwGgxfwuF͈yxyyXgvwWghwvW˼˼˼˩˼˼˼xxyyzʫʫxxyxyxyx͙xxxwwwxxx͚ixyhyyyhxix͚wgvwyxxxxxxxyxxwwxxw۽ܽxxywxxwywxwhxxwxvxxxͼ˼˼˼ihxxyʻʫxyxy͗hiyyyyxxyxyy͘yyyxxxyzyxxwxxwxxxwivxhwxhxxhx˼˼˼˙͚wgvyhyxwxXwhwiixyhyWvywxxhޚhhhxyhiyyyYfefVVYfe&˼˼˼ʬ˼˼ͽ˼˼˼ʼ˼ˬʬ˼˼XWeWWghef&ʬ˼˼˼˼˼۽ܽ˼˼˼ʬ˼˼۽ܽܽIgtgGgivv'۽ͽܽͬʼ˼ˬ˼˼˼˼˼˼۽۽ʼ˼ˬʼ˼ˬXgegWghff\u0016gvtfWWxuwvVyzʫͩhguwgghgyiy˼˼˼XwuwgghvvWމy͈yyʫʫ˫hwuwffwvwuVxgdvUUxwdV˼˼˼ʻ˼˼˼˼˼˼zy˼˼˼˽ͽͽܽxfcvFVxfeVwWdgVfxwvuWۼ̊y˻˻hgtwVwfgweG͉˼˼˼˙hwuwggXwvWwwuwfwfhvuV˼˼˼˼˼̼̼˼˼˼˻xvtvWwWgfvGyyxhguwgghwvW˼˼˼yyͽ۽۽xfevgWwwvvW͙gfevgwWhwvW˼˼˼˺˫˼xvevVVxgef˼˼˼xuduVGxfuV˼˼ͺ˼˼˼ˉ˼˼˼ʬ˼˼ʬʬˬʚ۽ͽܽyyyʫʼ˼ˬʫ˼yݻʫ˻yyyyˬͺyy˼˼˼ˉy޺zͻʻyyyyʫʺˬʬʼ͉zͼ˼˼˼˼˼˼ͽ۽ͼʬʼʼxyy˼˼˼۽ͽ͉y˼˼˼˽۽˼y̽˼˼˼̊FfevgdgUgUef˼˼˼̽˼˽˼˼˼˼͉z˼˼˼ͽ۽۽VWewfcfVwdegWguWdgfwetg̼۽˼y˼˼˼ͽ۽۽VgtgtWfveuw͉xwxyww˼˼˼wgwxhg˼˻wwgwfgwgWwxx˺͹̼˼ͼ˼hxxhxgvwvxwg˼˼˼˪wgwhg̺xxx۽ͺfWcwVeVfwedgʬʼ˼VWdwfefVwedWˬʼʼ˼˼˼˼˽̼˼ʬʼ˼˼˼˼˚ͽ۽ͽͫgHthgtggtth˽̼˼fWdwVeVfwecgˬʼʼʺʫy˼˼˼͚yͺͪ˼˼˼˚˼˼˼ˉyy˼˼˼˙˼˼˼y͊ʬʼʼ۽ͼ˼˼˼͊yͽ۽۽ͼʼʼʼ˼ͼ˼y۽͉yyy̼̽ͼ˼hxxh͗xhyxh͇wxxhhgxhyhh˼˼˼˩ʫʫ˻ʻxiyyhhWwgXއwwgghʻʻͺˬʺwxXxXwʼʼʼ˼ܼ˼͉yyyͽ۽ͽ͙ͽ۽ͽ۽ͽ͉˼˼˼ͼ˼˼˼yyyʬ˼ʼͼ۽˼˼˼˼ͽ۽fguWegVvttw͉zfgtgeWWwdug̼˼˼̼˼˼˼ͽܽ۽͙UfevgUgFgdefy˼˼˼VWewfdfVwceg˼۽˼˼˼˼͙݉y˺ʻ͉ʬˬˬ˪ʬˬˬ݉˻ˬ͙yyyyʻʻyyyyyʻyhyxiwfwfguwgWw˼˼˼ͻyy̼˼̼̼gwXhW˼˼˼˩˼˼˼ˆgwhvxXXxxxx˼˼˼ͩ˼˼˼ʺʺʻwWvgvwxgGyyyy˼˼˼˚˼˼˼ˉy˼˼˼ˊy˼˼˼۽ͽ͚z̽˼˼˼˼˼˼ͽ۽۽y˽ͼ˼yʬ˼ʼ͈y˼˼˼yxͼ˼˼˼̚fWewVdVfwdeW˼˼˼˼˼˼ffevGUWegedf͚˼˼˼efdvWeGfgUef͚͙˼˼˼VfUWeWVheUf˼˼˼zͺyy͉͊yxxxwhgvxXXͺ˻˻xxhwgh˼˼˼˼˼˼˼wwgxghʫ˻xhyhh˼˼˼wxxwyw˼˼˼˺ʼʬˬ˺xxihh̽˽˼xxxx˼˼˼yͺʬyͺͩ˼˼˼ˉyyݻʫyyzyyy˺ʻ޺˻ͻˬʻyyyyyyy˼˼˼͚͚͉zʬʬˬ˺ݙyyʬʬˬ˻ˬͺʫ˼͉݉ͺʫwgvWvwhWgʫʫ˼˼˼ʬˬ˼˺vgwGwvxWgʬˬ˼˺ͺXXyXXʬˬˬ˺vgwWwvxGgʫʬˬ˼ʼ˼˼˼hyyixwXgWhͺʻ˺͇wghxhxʫhgwgwʫʫ˻hhyhx˼˼˼˗hxxhުʫˬʻ͇hxyhxwXxXxwhxxhwghgwgwWwgwwfgwxx˼ܼ˼˼˼˼˩˼xwywxw˼˼˼xgvwvxwgͩwghxgw˻˻xxxywxxww˼˼˼ͺhhixxwxhghxhhyhx˼˼˼ʬʬˬ˼˼˼˼˼˼˼xxxyvXXwxghhgwxgwʬ˻˼˻̽˽˼xxxxxxxx˼˼˼wWwugfwgfw˼˼˼ʺʻʻyy˼˼˼ˇXvXwxhg̼ͪ۽˼WhwXgixyhy˼˼˼˩˼˼˼wGvgvwxgWyyyy˼ʬʬ˼˼˼ʼ˼ˬʬˬˬyyyyͽ۽۽gwewgvgxfeWyyʫ˺ͺhgvwgghwuWyyXxvhhhwuW͊zމyyiʻ˼˼˼hwvwWvWwftFyxͽ۽ʫʺxyxʼ˼ˬxxx˽̼˼˼˼ʬwxwigwˬʬʼʪxyxxx˫˺yyʼ˼ʬyy˼˼˼˼ʬ˼ʇhxxhwhhiww˻˼۽ͽ۽˼˼˼ˈyyiۼ̼˼zxxxx˼˼̼˺ͼ۽˼wgxxhww˼̼˼˚wwwwhxwhwͽܽ۽۽vfgvgugWwfˬ˼ʼʉyy˫˼˼˼wgxxhwwyy˼˼˼˽ͽͽ۽˼˼˼WhexgvgWve8ʼgWeggfgfwvUG˼˼˼˼˼˼ˉ͙hgtwVwfgweG˻˻hgewgwWgwdGyyz̽˼˼ʺʼʬ˼ʺyyx˼˼yyywxwxhvʬˬ˼xiwxwX˼˼˼ʼʬ˼ʉyyyhxhyxxhi˼˼̼˻ʻʫ͗xxxxhxwwiv͙yxxxixyyyhvwwxhvyxxxhͪ˼˼˼˚gwhWhwhY޼˼˼˼XfgvvvXfgv˼˼˼˙ܽ۽۽XVWvvXvWf˼˼˼ggggwhuuffyͺʻʺʫhgfwuggugf̼˼ͼ˼fVGwveuVVf7D˼˼˼˺˻ʺ˺weWwvvfgEw6Tʼʬˬ˹˼˼˼˺ʼʬˬʹfVWwufvgVv'T˼˼˼˼˼˹ʺwfVfvvgVw7Siyyyͼ˼˼˼̉yyyzy۽۽ܼͼ˼˼˼˼˼˼˼ͼ˼yܽyxy͈˼˼˼˼ʼʬyzxwvwgxxxxi˼˼˼ʺ˻ʺ͹͆xxyxhyxxxiwvywxhuhhvxwXʺ˺ʺʬʻʺއhwhYxxyhvwvwhwghwvwwxwhwwhwxxxxvguggwvghfuufwvwhwvgXgfxxxxwxwxwhwxxxxiwv˼˼˼Xhvhhhvugy˼˼˼˚hWvgghvughgvWvWwetV˼˼˼˼˼˼˺˻˼ggegvgxuef̽˽˼˼˼ʬʺ̼˼ˆxxvxwiw˼˼˹yxʼˬ˼˼̼˼ʼ˺yyyyxyxhxhʺʼˬʬʹ˼˼˼yy˼˼˼UwdwVeVffVdfܽ۽˼˼˼ͽܽͽ۽VguWdggwetgͼͽ˼˼˼˼ˊVvuGeWfffsVzyFwuWugVwftgͼ˼˼ͺvxxuhgx̗yy˼˼˼fuxvwwvgvwux˼˼˼˨˼˼˼˩ˬ˻uxghwxxyxyh͗x˼˼˼˼ͼ˼˼˼˼vgwwwvXwgʬ˼ʬʺy݉yʻʺʺʺʺʻʬ˼ʬ͘ܚ۽˼yyxͽ̽˽˼yxx˼˼˼yy۽۽ͬ˼ʼʬͽ۽˼ʼʬyyͽ۽۽˼˼˼yyx˫˺˺yyyyxyyxxyx̽ۼ˼vvvwWwvhWvw˼˼˼ˇwgwxhgxhxyh̺ͺyy˻˻wghxgwwwhxhw˼˼˼xxxxwܽ۽yyxhvwwxvʼʬˬˆvxwxwxgx͚˼˼vugvwgfgfhu˼۽˼wxxwxwx˼˼˼˻ʻ˼hhwxgyw˼˼˼۽ܽ۽xyhi˼˼˼xyxxixhʼʬʼʺyyxxxyyʻʼˬˬyzyy̼ۼ˼̼˼˼˼˘yyxxyyxyxxyxxxxxxwgwvhvwhgw͉yy˼˼˼yy˼˼˼˙xxxx˼˼˼ˈxyyxxxxx˼˼˼xxwxxxwxwxhvwhg˼˼˼˻˻͇wxhwxgh˼˼˼˺vhWgXʼʬ˼ʇxhyhhyxx̽˽˼˼˼˼˻ʫˬ˼˼˼xhyxhxxxxyyͪyz˻˼˼˼ˉzyxxݻʫ˻hyyiyyͻʫˬʻyyi޺ˬyyʬ˼ʼʺhyhxh˼˼˼˫˺ܽ۽˼˼˼wXwhiwiwxv˺ʫy̺yͺixxxxWfeVeFVVudUWfeVuVWfuefyxxyFfUVeVWftUVyyWwfgvWggefʻ˼˼˼ˉyhyxxxixixh˼˼˼ͽ۽ˬʼʬʗXvwhgvhwxwvyz̺ʻ͈xxxxxxxxxyywxgxhhx͚xyxxhhhww͛xxxxxwxxxwxxxͽ۽۽yy۽ͼ˼˼˼͊ˬʼʬyy˼˼˼yyx۽ͽ۽˽۽˼ͽۼ̼˼˼ʼʬܽͽ۽yܽͽ۽VgdVfVVwfcW˼ʼʬ˼˼˼ˬˬʼʼ˽̼˼egSwUVUewVSgˬʼʼ˽̼˼fWdwVeVfwecgܽͽ۽ffdFfFfffbf˼˼ʬ˼˼˼ˆwhwhxwxwvwgˬʺ˻ʺͺxxyxx͗xyxyh˼˼˼ˆxyxyhvxxxwwʺ˫ʺ޺˺ʺgwhWxxyh͹͊ʺʫz͉y˼˼˼˼˼˼˚yz˼˼˼˙˼˼˼˚zxx˽̼˼˼˼ʬʬ˼ʼʘxyxxxʫˬʼʼܽͽ۽vxxvxgvxfevVFxfcV͊yy˻˻˼˼˼˺˼˼˼˽˽˼xfTwVVxgTWwWeggWxwvdWͽܽ۽͉˼˼˼˺hgewgwWgwdG˼˼˼zy˼˼̼˙̽۽˼wfwvguvghVvwwxwhgʬˬʼʚ͚yyܽܽwwhxxgw˼˼˼wxvxxgʺ˻˼ˬʼʬxxxxxyyxxyʻy˽˽˼ʬˬʼʺͽ۽ͽ۽zwxwxxxhvyyyyyhxxix˼˼˼˼˼˼˼˼˼˼˛iwvwhhXvuWyxiʻ˫XgfwwwGwvfG͉yzhfvvwvwWwfWyˬʺ˼˼˼ˉyyhwuggXwvW͉zhWugghvvggWvwwXfuff͚˼ʉ˼˼˼ˈyʺ˫ʻͪXGfwwwgvtfghXvhhhuuwyx˼˼˼˹y˼˼˼ˊzz˼˼˼˼˼˻ˬwyhwxghʼˬ˼ʙ̼˼ˉyyxxxx˼˼ʬʙxxxhi˼̼˼˙ʺʺ˺yyxxʼˬʬ͇yxxxixyxyhx˼˼˼wwxʺ˺xyy͉yyxxyxwWVvfgevVw&TʺʼˬʬʺfGFgffdfVf&Eʺ˼˼˼ʺvVVwfwewFg&Uʼˬʬʺ˼˼˼˹ʼˬʬʼˬʬwWWwuwuwWw\u0017U˼˼˼zy˼˼˼˻˼xWTVVxvTfhWegwWgvdWܽܽ۽͉yʻwGewgWxvvdg˼˼˼xVeVFxecf˼˼˼˼˼۽˼ܽͽ۽۽ͽͽ۽ͽ۽˼˼˼yyyͼ˼˼˼͉xy۽˼˼ʼʬˬ˼ʼ˽˼yyhwhvxxW˻ʬyxyxi͘xwgwvwewwVw˼˼˼˼˼˼˼˼˼˺gxvxhW̺yyͽ˼˼˼˼˼ˇx˼˼˼˹vWvwvvhwGyxʻwxgxwhwʻxwxghwwxxxxxwxvwxxhwxxxxʻxxxxxvwxxwxhhwʻ˻ʺʺyxvxwhw˼̼˼˙̼˼˺xxxxiʼˬʬ˙ʼˬʬʙyyxʼˬʬʉyyx˼˼ʺ˻˼˼˼ˉͽ۽۽ܽwwhxxgw˼˼˼wwxwhgʬ˼ʬʉ˺˫vvfvvhuwgVw͇wxvxxg̼˽͚yxwyvwygʺ˻ʫ˻͇xgwxhw͗xyxihwhwhXwˬʻgwyhxWxhyhhˬʻ͇xxyhx޺˼˼˼˗xhxxhxx̼˼̼˼ʺyxyʼˬʬxyͽܽ۽ʼˬʬvxxvxgyvʼˬʬʺxxxihyʼˬʼʼ˼˼˼˼˼˼͉yyyhhyhhgyvxxW̺ͽ۽۽ܽˬwxyvhygwʻxxx˼˼˼˻gXvhWwwgwvhewwhVwyyx̼ܼ˽˼˼˼˺˼˼˼˼˼˼ˇyyyhiͺwWvgvwxgG˼˼˼hwhvxXWʺ˺yyyʬ˼ʬʪxxxixy˼˼˼˼˼˼˽ͽ۽ʻyxyzyzywvxhhw˻y۽˼yz˼˼ʬhyxxx˼˼˼˺yyͺʬ˼˼˼ͪͺyyzʻ˻wxvhgwyyx˼˼˼˺ܽܽgvXWhyixhʼ˼ʬʼ˼˼˼ʻ͉yyxyhxhWfUVeFVfuTVʻ˼˼˼˻ʻWeUuUu5WVuSe˼˼˼˺˼˼˼˪VVUvVuFWfeTfʻ˼˼˼˺ʻGfDFtFGgtDf͊xyxxxxxyyx˼˼˼yyxyzy͇yxxhiyyyyxwxxxwxyhihͺvwhwgvwghwvwwgvwgxwxxvvhvfvvwfWwvwhwvgufWggxxxxwxwxxwywwghxʫʺxwgvwWWhdvtfxgeggguvefyʼ˼˼˼˺yhgvggXuughXvhhhuuwyyyyމxy˼ͽ˼۽ͽ۽ͼˬʼʼ͉y˼˼˼xyͽ۽˼˼˼ܽͽ۽˼˼ʬ۽˼̚yvhwxgXˬʼʬʼ˼˼˼˻˻yxxxxyxhwywxivʻʫ˼˼˼˺̼ۼ˼xwvxwgxx˼˼˼˺xy˼˼˼xixh˼ʬʬʉyxxxwyxxgw˼ʻ˺˼ˬʬʚxxxh˼˺xwhwhXw˼˼˼˺xyhxhy˼˼˼͉yyʼʺʺݺyxyʺ˼ʺʻ˼˼˼˺˺yxyyyyޚ˼˼˼̼ͼ˼yyˬ˼ʼy˼˼˼̈˼˼˼xyܽͽ۽۽ܽ۽͉yyi˼̼ͼ˼˼˼yzyy͚˼˼˼ˊyfvuvGfWVeesfܽͽ۽ͺܽͽ۽VwuWfgGvetgۼ˼˼˼ˊevdvVfVVvUdg˼˼˼zfguWugVvdtw̼˽͚˼˼˼xxvxwwxyxxhͺʻʺ˼˼˼ˆvwuwxgvgwvu̇wwxwxͼܼ˼̆xxwvxw˻˼yx˼˼˼wxxwhʺʼˬʬʚyÿyyx˼˼˼ʬˬ˼ʆxxgXxvygwgxyͽܽͽ۽˼˼˼xxxhyyxxhiʫʺ͙˫ʻvuxvgvfgfwu͆vxwxwxgx˼˼˼ʬ˼ʬ˚˼̼˼˚۽ͽ۽xhvwwxvۼ˼̚wxxwxwxz̼ۼ˼hwvwggXvuWwwvgWWhevtV˼˻͉yyx˼˼˼˼˼˼˚xwewgggfveWhhvxhhhvug˼˼˼˼˼˼˚x͚xxxxy̼˼̼ˆwgwvhvwhgw˼˼˼xxxxx͉xyxxxxx˼˼˼xyyxyyy˼˼˼˚hguwgWggwfV˼˼˼˚ͺܽ۽͚hfvvWggwweWyyWWfggvgVwfVG˼˼˼ˉ۽˼˼˼˼ggvwhvhgxvfWʺ˺͛wxxwxxxwxvwh͗wxvwxg͇yxwyxxxxܽ۽ͻ˻XgwwgwWdtvf۽ܽ۽WgvwvgXewV˼˼˼ˊy˼˼˼XfwvwHUge˼˻HVgvvXegf˼˼˼˙˼˼˼˚ܼܽ˼˺yyyyyy˫yyyyyxxx˼ʼʬʺ̼˼˼˼ʬʬ˻yxxhiyxxy˼ʬʬˉ̼˼˼˺ˬyxy˼˼˼xvyxhwiwʻgWWvuvvfFf'U˼˼˼˪˼˼˼˺ʼ˺ggVufwvwEv7Tʼʬʼʺ˼ʬʬʹVWGvvfufFe7E˼˼˼˩˼˼˺ʬgfWvwfw6v6U˼˼˼˫xyxihwxwixhg۽۽yyyyxy̺ʼˬʬ˼˼˼ˆwhxxXhwʺʺ˺xyxihͺxxxˬ˼ʼʼˬˬyxxxʼ˼ˬʙxxx̼ۼ̼˼ͽ۽ܽ۽wywhgxxyxx˼˼˼ˆwvhxXg˼˼˼ˈyxyx˼˼˼vwwwgWvvxWf˻˼˼˼˅vwwwhvgHgwyyy̩˼˼˼˼˼ۼͺhwhvxXWxyhih˼˼˼vfxvwgwugWhfͽ۽۽ˬʬʼʚwwxhwwhww˼˼˼wxwxvxhhw˼ܼ˽͉yywxwxvxhhw˺yyyihͪyyihhxxxhxhgxhyhhͺʼ˺͇yhihwxhvwxhgwhhvxWXʬ˫˼˼˼ʺʻކwxxxXXxGVUvVuVVfdUfWfeVuVWfuefyxxyVfevVuFWUedeyyWgfgWgfuev˻˻hvwwvyyyͼܼ˼˫ͽܽ۽xxxyyzzyzxxxʬ˼ʬ˼˼˼˼yiy˼˼˼˼˼ˬʬzyxhxh˼˼˼˺ʬˬˬyyxyˬˬʬˬʺxyy͉݉܉ʫˬ˼ʼʬʺͽ۽ܽyxiyxyyxx˼˼˼zzyyzyʻ˼ˬˬ˻˻yyxxyhxhyywwixyv˼˼˼˼̽ܽ˽˼˼˼ͪwhwxhhxxWXxw͇ghgxwxyxih˼˼˼˚yiih͇yxhhxyxhhiwxxxXXx޻hhyhhhwhxiww˺˼ʬˬʉyy˻˼ˬʼʬʚwhxxXhwˬʺxxhixyy˼˼˼˼˼˼zxyy˼˼˼xwwʻʫxxxyh͆yxxxixyxxͼ˼˼˼WWggughvgW˼˼˼ˉ˼˼˼͈xhgvWghuvghhvhXhvvg˼˼˼˼˻hWwgvgWfgfͼ˼˼˼˼˼yzyy˼˼˼˹˼˼˼˸vVFwegVvFg5E˼˼˩˫˺˼˼fGFgdfffVf&E˺˺vWEvUgfvVg6D˼˼˼˪˫˺˼˼˼eW6weVeeUV65vwxxwgۼ̇xfwgwwvwvWw˼˼˼wxw̺͆xxxxhvwxwgʻʺ˼˻˼˼˼xxwgvvwgxxx˼˼˼ˉxwhwxwvxxxxx˼˼˼vwxxwxhhwxxxxxxwwwghyyx˼˼˼˙xxxxxxwxghwwxxxx˼˼˼͉yxWvWgwfvefʻʺ˺ܽܽ۽xfuGVxUde˼˼˼˙xfevVVxfev˼˼˼˼˼˼˺gWvWwghfef۽̼˼yyyˬ˼ʼͽͽ۽˼˼˼yy˼˼˼۽ͽ۽˼˼˼ۼ̽̈yܼͼ˼͈̉˼˼˼yzyz˻˻ˉ˺xwxxygwʻ˻ʺʼˬˬʻxyxxxxyhʼʼʬʹxwhwhXwyxxhz˼˼˼˼˼˼vxwxxw˼ܼ˼˼˼˼wxwwvwhvxxyxxʻ˼˼˼˼˼˼˼ˬʼʬʅxwxxhhw˻˻xxxxx˼˼˼iyxx͉z͹ʺʺͨ˼˼˼̼˼˼˼ͽ۽ܽyiyiyxyyܼͼ˼ܽ۽˼ʼˬxyxyyy̼۽˽yzyyyyy˼˼˼˼˼˼˼˼˼͙efuvFeVfgUtf˼˼˼˼˼˼euuu7VWeVVse˼˼˼UfevGfWVgVdfdfdfFfFffFdf˼˼˼zz˼˼˼˹˼˼˼ˉ˼˼˼˸yvxwwhxv˽ܼۼ˼ʬˬʉvwxxgvgxw˼˼˼uwgwvgvvXgf̼˼˼ˈͽͽ۽yy͚vxwwhxv˫˻ʫxyxxhwh̹˼˼˼˺xihhxyyxxxxhyʼʬ˼ʩ˼˼˼ʫʬ˫۽ͽ۽xhxwwyv˫˺yyy˼˼˼˼˼˼ˇxxxvvxvgvggxv͉xxxxxxxyxxxxxxxxxxyy˼˼˼˙˼˼˼˼˼˼ˉͼ˽˼xgfwWgwgvuV˼˼˼ggfwWwghguVʼʺ˼˼˼˚xvevFWxVtUyyyxvevVVxgefͽ۽˼˼˼ˉXgvwwuwggfVͼ˼˼YxxgghvvW˼˼˼˺˼˼˼xyyXwvgghwuW˼˼˼HgvwvvWwufG˻˻˻͇xxxxxyyxvvxvgvggxv˼˼yx˼˼˼yy͇xxx˼˼˼xxxxxyyxxxx˼˼˼˺۽ͽ۽yywvywxhvyyy˫xxyxʼʬˬ˼˽̼̼ʬ˼ˬ˼˻yxxxyiyxxhhyyyzyyyy˼˼˼˼˼˼˼˼˼˚wgwvhvvfWgg͉yyʼʼʬʚܽ۽vxxwgvwgxxxxwggxw̽ۼ̼˼˼˼ˉʫ˻xxwggxw˼˼˼xywgxgwxxihh˼˼˼ʼʬˬʩxwxxwx˼˼˼͇xhihxwxhhgw˼ܼ˼xxx˻˻ʻ˼˼˼˺whXXw˼˼˼yyxxxxhhigwhwugvwwfXw˻˻˻yxy˻wxvhwxgh˼˼˼̼ܽ˽wxvhwghxxwxxwxx˼˼˼˺xgvwvxwgxyxx˻˻˼ˬʬ˫xixxxxyxx˼˼˼yzyzͽ۽۽ˬʼʼʗxxxiyyxwggwyۼۼ˼˼˼˼˼˼GfevVuVVUdee˼˼˼ˉ˫˺˼˼˼7eUuUuUWVsUe˫˫FfeVeVWVteU˼˼˼˪˫˺˼˼˼GvdFtFGFtddˬʼʬ˺ͽͽ۽۽whXYixhxh˼˼˼˼˼˼ͺʻʫxyyyxhxhzwxgiw˫˺̹͊ʬʫyyy˼˼˼yzy͇͊xihiyxy˼˼˼xyhhxxxxyyyxyxwxxwxzyyʬyyyyxxyx͉yxx̼ۼ˼˼ʬˬʘxhihxxgvxWhxxxy˼ͺ˼˼˼˼˼˼xyvxwwi˻ˬhgwxgwxxyhx˼˼˼˼˼˼ˈwxxxw˼˼˼ˉ˼˼˼ˉyz˼˼˼ˉyxͽ̽ۼ˼˼˼˼ͽܽ۽͉xyyyyyy̽˼˼˼ܽܽ۽˼˼˼˼˼˼͉yxy͚̚˼ˬʬ˼˼˼z˼˼˼VwewfdVUfTff͚˼˼˼ͪUgVweSeUwSVgͩVvfvVdfUvTeg˼˼˼FffffdfDfDff͚˼˼˼ͺz˼˼˼ͩͺyʻʫʫ˼˼˼ͼܼۼ̚VfuvfefEgTuf˼˼˼͙ͽ۽۽ܽggtgeWVwdug͊y˼˼˼ͽ۽۽۽VWewfdfVwcegۼ˼fguWugVvdtwzz˼˼˼xx˼˼˼˪̇whwxgx˼˼˼wxxxxwhxwhgw˼ʫyyxxvwwwvWwfxVg͇xgwxgx˼ۼͺxhxxh˼ˬʼʙʺxxxyxͼۼۼ̽̚˼˼˼˼˼˼yyyyͽ۽ܽ۽˼˼˼ʬˬʼiyxyͽ۽۽˼˼˼ͼ˼˼˼zyzyyiyyyͺ˺ʻʫˬʬyxyyy݉zyiyʻʻ޺yyy˼˼˼ˉyͽͽܽ۽ͼ˼˼˼͙ʬ˼ʼy˼˼˼yͽ۽ͽ۽ͽۼۼ˼ͼ˼̼ͼ˼ˬʬͽ۽ܽ۽yyʬ˼ʼVvvvWegFecuf̼ۼ̼˼ˬˬʼ˼˼˼˚̼ۼ̼˼UuvugUg5VSveͽ۽ܽ۽VvugeWFfcvVʼˬˬFfffdfFfbffͽ۽ܽ۽ʼˬʬ˼˼˼ˈiwxhwXwwgxghʫ˻ͺxhxxi͈xhyhh˼˼˼ˇxxihhxyxgwhw˺޺whhvxWXyxhhi˼˼˼ˉ˼˼˼˙zy˼˼˼ˉyy͚yz˼˼˼͙͚zyyyyxʻxyyʫyyyͼ̼ۼ˼ʼˬˬ˼˼˼͉yy˼˼˼ͽ۽ܽ۽۽ܽܽͽ۽͙ܽͼ̼˼ˬˬʼyyx͙˼˼˼ͽۼ˼VgfVdVVwcfW͚˼˼˼۽۽gwvGeWVvdug˼˼˼yz˼˼˼ܽ۽۽VffvWeWEgTff̽˽˼fwuWuGVwdvgyy͚yyyvwxvgugGhwͪ˺ʼ˼˼˼˺yxxhi˼˼˼vwwwVwvhVwwwxghWxܽ˼xxxy˼˼˼˺˼˼˼ˇgvXWx˼˼˼yyxxx˻ʫˬ͉yyݻʬ˻xyy͊܉ʼʬˬʬʬ˼ʪyyvvhwguwGxv˼˼˼˹˼˼˼˼˼˼˼xyxy˼˼˼˫˫ʫvwwwVwvwVwxgvxWx˼˼˼˘xxxͺ̼ܼwxghWixyhiwxhwxʫˬxhyhxwhhvxWxyxxhyʻʬʺxvxwxxwi˻wwggh޺xxyhx˼˼˼˺yhxxxxx͹˻˻xhwwhgyhxxywxhwxg̩ͼۼ˼yyxvgwWvfwVww˼˼˼ˇxgwxgxʻ˼˼˼xwxxxwyxx̼ۼ˼hgwgwʫʫ˻˻˻˼˼˼ˈxwwxihyhxͺ˼˼˼hxyhxxwhxxwxvʬˬ˼ʺ˼˼˼˼˼˼˼XgvWhxxyxܽ۽۽ˬʬʼʫ˼˼˼xxxʬʼˬʙ˼ʬʬͺˬʬˬʪyyʬˬˬʉyyxʬ˻ܺʬͺ˫ʬ˼˼˼zͩͺzyyyii˻͉yxy˺ʬyy˼˼˼˫yxyy݉yyy͙zyyވyyiyyzʬ˫͚yzyyʬ˼˼˼͉͊˼˼˼ʬʼˬʺvwvWvvhGwʫͺʫʫfvgFgfxFvʬʼˬʼ˼˼˼ʫvgwWwvxGgʬʼˬuwwwwWwuw7wwʬʼˬʺ͘vhxwxxwvhxyhx˼˼˼˻ʫʫ˻͇ͩxixyxxhyhxxwgwxhguyhxwʫʫ˫ʻͺʻކwhwhXhyyi˼˼˼˗xxxixy˼˼̼˺ʬʼʼʈxxxxwiwhwʬ˻˼˼̼ʼʬʼʙʫʺʚxxxxˬʬʼʺvwgwgvuvWhfxxxxxvwgwufvgfXvvwhwgvwghwvwxwgvwgwxwxwxxwxwwgiwyyͽ̼ۼۼyyyxxͽܽ۽۽̽˼˼˼˼ʬʬ˼˼˼̙ͽ۽۽xyi˼˼˼yyyzy˼˼˼˼˼˼hxxgWivvWͼ˼˼˼˼˼˚ggwwftfXwgGWgwwgghgvgV˼˼˼y˼˻˼˼˼˼˼˼˺hwvWghwvWͽ۽۽yͽ۽ͽ۽yx˼˼˼x̼˼˼˼˼˼˼y̽˼˼˼ʬ˼ʼz˼˼˼۽˼͉xxxʻvvvwWwvwWvwghgwwxxw˼˼˼˼˼˼˼˺yy̩wgwhg̼ܼ̺wwhxhwxixxxʻhxxhxvyuhxgʼˬʬʚ˼ʬʼ˼˼˼ˉy˼˼yyvwwxxxhvxyxih˼˼˼˺ʺwxvwxxhw˼˼˼˘xxywxwwhxv˼˼˼yxxyxxxxxxyx˼˼˼ˇwxgxwhwxxxxxxyyxwhwxgxw˼˼˼˙wfvvWvgxweW۽ͽ͚˼˼˼˺˼˼˼˚˼˼˼wguwgvWxgfVfWfggeggwuVG͙ʺʺʻzyggvwhvhgxvfWͼ˽̼fgvwgwgWwfxxxxxxxvvwufhvggvuvwvwhwghwvxwwwhwhwwwxwxwhwxwxxhvyy˽ܼ˼ͽ۽ͽ۽ͼʬ˼ˬ͉z˼˼˼yyxͽͽܽ۽˼˼˼ͽ۽ܽ۽˼ˬʬ̼ۼ˼̼ywxvxwxyg˼˼˼˼˼˼˼ˬ˫wxwhhgyxyxwwhxXwͻ˼˼ܼ˼xxxhiyhxʬʬ˼ʺxxyhx˼˼˼˼˼˼˼xwxxxw˼˻˻ˬʼʬˆxxgXxvʻʻxghgywyyˬʬʼʚyhhhxhxxhyʺˬ˼˼˼ˈyyy˼˼˼˛ͺ˻yhxgfwvggXwugWhwvwXhivvW͉zy͹˼˼˼ˉyyxhwvgWhwvWyyzWggwgughwgGʺʻxxyxʬʬ˼˼˼˼˻ʬʬ˼˼˼˼ˇxxxixyxxxxˬʼ˼ʉ˼˼˼ˈxyˬʫʫhxvwywvʫʻʫxwwwgh˫˺yxxwhwxgxw˫xxxxxxyxwhwxwvxxxxxwxwwhxv˫˺˼ˬˬͽ۽۽˼ʬˬ˼˼˼ܽ۽ܽyy͈yܼ̼̽˼˽̼͈yyܽ۽͉ܽyy˼˼˼xyyܼ˼huhvxXw˼˼˼˼˼˼˗xyxixvgfWwvwWvw̪ͅwgvvhwwHwvyy˼˻˼˼˼˼˼˼˺˼˼˼WvhXgxxyx˼˼˼˺˻˫ghfxWuWguf8ͽ۽۽fWfgWvWgwfVG˼˼˼ˉyz˼˼˼ˉzywgewGWxwvfGͽۼ˼wgvwVFxwveG˼˼˼˻˻˼˼˼˼˼˼˼ggfwwwXguvVXWfgwwgwtfWͻ˼yy˼ܼ˼hguwgghwvWhhvxhhhvug˼˼˼˼˼˼˼۽XwwggwWetvV˼˼˼˼˼˼˙XvgvwvHVwUͽ̼̼HfgvvvXfgV˻˻z˼˼˼˺ʻ˼˼˼WwvwwvgXfwFyyhxvhXhwvWzy͹ͫhwvwWghvvWxyxhggwgvgWgwV˻yyyͺyyiWggwgughwgG˼˼˼˛˼˼˼˺yyXgWvvvXgWWhwfwwuggfgW˼˼˼ʺ˼˼˼˼˺̽˽̼gwgwgwhfufWͽ۽۽XvgvvvXggf˼˼˼ʬ˼ʼʫ۽۽ʬʼˬyyxʼ˼ʬhxhyͺʫ˻wwhxxgxhyhxxgwgͻʫ˼ͩyxxhyhxyhx˼˼˼˻ˬwhwhX޺˺ʻxxwXuxyxix˼˼˼˼˼˼˺wwvgvwXgw˽ܼۼxxguwvgwwgfxu˼˼˼˹˼˼˼˘xxxvXwhgxwxghW˼˼˼ʻʻyyyxxxxhyhxͼ˼˼˼˼˼ˇwhwh͇wXwhhwʼʬ˼ʩwhwxgxxwyxww˼˼˼˻˻˼˼˼ʬ˼˼˼˺xhyxhxxxywxxxwwgxxhw̼ۼۼ˼˼˼˺˫ʫyy˼˼˼wxgwxhwvwuwggghvu͇hxix˻˻xxwxxhẅxxx˼ʬʬ˼ʬˬʚ˼˼˼ʼ˼ˬʫyyͽ۽۽x˼˼˼XwvgghwuWihvxgghwuWͺyʫͪhwuwffwvwuVyyyyhwvwWvWwftFyy˺ʻޚgeGvwvvfUfWRʫʺˬʬʼʺʫʺfdVfgfgfDfVBʫʺ˼˼˼˺ʫʺfeWvvfwgUvGRˬʬʼʺ˼˼˼˹ˬʬʼˬʬʼwuWuwwwwUwWQʻʼ˼˼˼ʼʬʼʗxxxy˼˼̼˗x˼˼̼˺ʬʼʼʙwxxywvhyxxxˬʬʼʻʫ˼˼˼˪˼˼˼ˉzy˼˼˼˚y͈xxxyxxxxwxx˼˼˼hyxiʫʺxx͉xxxzyxixxxyyy͊ʫʺˬʬʼʉgwvgWfgfevuEʺʻ˼˼˼XwgwgvwWvfV˼˼˼ͽ۽۽hwwwfuvgvvV˼˼˼˚y̽˼˼gvxgvggvvvVwfVuggfvUwFRˬˬʼ˼˼˼˼˼̼˹ˬʬʼgVFvgwuwVvGS̼˼˼˩veUvWgfvEgFC˼˼˼ʻʺ˺˻ʻwfVfvvgVw7Sˬ˼ʼʻwxwhxhxuʬˬʼʺyyxxxxiʻʻ˻˻˚xwxwyvʺ˻ʺxxxx˼˼˼ˊy˼˼˼ͪiyyhXwxxuwhwhhwwhwxhxv͇yhxiwxXxXwyhxxx˼˼˼˗xhxxh޻˼˙wxwhxhxu˼˼˼ʬʬ˼ʺʻʻxxxxyyˬʬʼʻywxwxvʻʼixxxxy˼˼˼˚˼˼˼˚zy˼˼˼˙˼˼˼˚yhwfwWWwvwfVy˼˼˼˻˼͚˼˼˼˺hvuvGvgwvuFYgvwXhhvW̽˽˼˼˼˼˙˼˼˼hwvWghwvWffWuvewVEfGCʻʻ˼˼˼ʻʻffVdgfgfDfVB̼˼̼˺̼˼̼˹VfGuwfvfEeWCʻ˼˼˼˺ʻeUVugVge5VV3͙yyxyxx˼˼˼yyxiyhʺʺyyyx͈xxwxxxhxxhyyyyyveFvfgWvEgUCˬʬ˼˼˼˼˻˼ʬ˼wVGvuvggVwFS̼˼˼vfFufwgwUgVR˼˼˼˺˻ʼ˼˼̼˩ˬʻgf7vwfwVvVSʬˬʼʙʬʬ˼ʗxxxˬʬʼʉ˼˼̼˺xxxyhʺʫ˼˼˼ˆwyxxwv˼˼̼ˇxyʫʻxyʻʻxxyʻxz˼˼˼˻XwwwgwWfvvFͽۼ˼WwvggugfefvEͽ۽˼˼˼˺zy˻˼˼˼ˉ͊WgwXuhgfv6˼˼˼HvwvgwgvuvF˻˻͈yyxywxghhw͚wxxwxxxxwwwhxxhxvxxyx͛xxxxxxxͽ۽۽˼˼˼fwuggvWgefvE̼ܽ˼۽gwvwvfhvuwVy˼˼˼WwfwwgXvvgV͚˼˼˼ʻʻgvxgvggvvvVwwuwfwfhvuV͉xʺʬʻwwtwWWhfvvFyyhhuxggiwvW͚yyyyy˼˼˼hwuggXwvWޚͻgvvvwugHvwF˻fwvggfgWeuvE˼˼˼˼˼˼˼˼ͽ۽۽˼˼˼ˉz˼˼˼˚ggwhvXWfu6zyWwvwwvgXfwFͼ˽̼y˼˼˼hwvgWhwvW͚hgvwhXYvW˼˼˼˙˼˼˼˹wwfwWwWhvfV̽˽˼wvuvgGhvvuF˼˼˼˻˻˼ʬʬ˼˼˼ʼ˼ˬʬˬ˼ʚͽ۽۽͇ixhyhxxhxhwhhww͚xxxhy˼˼˼wxhwxhv͛wXxXxwhyyixxwXu͊xxxixyyyxx˼˼˼xxzy͘yxxxxxxixyhʻʫʫxxxxwͪhhwgxwxxx͇xxhwxhvxyxxwxxwx͈yxyywxxxwxxxxͽ۽۽͈xwxxxyyyy˼˼˼xyyyhxxhxyyhyix͙ʫʬxxyxyyyhgfggWXfe\u0016˼ʬʬ˼˼˼˼˼˼ʼʬʬͽ۽۽˼˼˼gWVWgvggUvV\u0015˼˼˼˼ʬʬʼʼˬͽ˼˼˼ʼˬˬXgegWghff\u0016ʼ˼ˬ˼˼˼ͽ۽۽˼ʬʬͬʼ˼ʬͽ۽۽ͽ۽۽hhfhhhhff\u0006"
  },
  {
    "path": "examples/games/.Tables/EdgeSlic.ptb",
    "content": ":YYYZhxvxwyvwgxhwxhhxvvgiixxyiihgvwxxywxghxuxxxwwWxxgwxwIXHXYiwfghwvVgYvhxiiwXxwwxwwwhixyxYxwgxwxvwhwxxxhwWJYYYJhhvxxxwwWYYxyyyYwxgvwxwwwYhvyxigGhixxxxuYxxwxwwwxwwgwwhgwwxxgWIIYIYhhxhhwwgxxgvYYyYYiYxxxhxxhixhxhhhhhhxxgwvxwxvhhhXxjJjjjjJvwghhvxxxxxxhxhhiYyYiYYvxxxxvwwgvwwxhwwxxxhhxxhwwwhxvxxxxvxvvwvghhvhXxxXiYyYiYYwwxgxhxhwxwvwwvgvhwxwxvwiYxyYXhhxXXwxvhxvgvwghhxghvwxwxxghwvvxgxwxvxwwxwwvwwvgvwxWxviYyijiIgwwvhxvxwwxwwwhwwxhwxgxwwwYIyiiiYXxxXhxxggwiXxhyiXguxwwggvxwwgxvvxvwhxwgwwwwxwxxxxfxxwhxxgwxvwvgXhxhhgwvyywwwwxwwwwhhxhhxXxxxxhwxwxxwwxgwvhhxXXhXwwwxwwvvgvxwihhhhXXwwwvwwvgxwxwwXxiiiiiIxxxwhwxwvYYyiiyYwwwwxwwhxxhhvwhwxxwvwxhxgwiivxyhgGxxwxwwihxXXywhxxxywxxxxwywgxwWwxxhgvyyxxyxvixwuHvhwhxfhgwwvwXXxXXxxhxhxxgxgxxyyxxxxhwghXXxxvwhwvvvGwxwgxxhwxwivwxhxwxxxxxwxhwgxxwwwvxwxXihvhhxxxxxxhhxHHyxxyxw7hhhXxxxywxwwxxwwwxyxyyyxhxxxxxxxxxxhxxwvxwwwxhwxxxvwgxvvwxwxwxxhxwxxgxhxhhwwxyxyxxxxxxxxxhyxxxxxxwvvwxxxvwgwxxwwwwwgwwxwhwiXiihhxyxyxwxwyywxxxiwwxxgiwxwxfghixhxyYIyiiiYwxhiwwxxwxwxwwwhwhiYxiyYiwwvwxxwhvvywxwxxxxxwhiihhiyhxgxhxwxwwwXiYyYyiixwwxxwXvxxxxxxxxhxhxxyyxyyiiYyxxxxxxhxxiywwxxxwwwxxxxxxwwxwxxxxxxxyiyyiyyyyiyyxxxxiyyiixwyxwwwyyyyyiiyxxyhiiyxiixxwwhxxywwwwwwxxxwxxxwxwyyiiihxhxxxyyYZzhhwxxxxxxxxxxxxxyyyyxxxxxxxxxxyxyyyiiiixxxwwxvgwxxxwywxWXwwxxwxxhiyxxyiiiwwyxxxvyxwwgwyhxhhixvhgwWXwxxhhxxhxxxwxxyywxwxXXxxvwwwwxvvhxxhhhxxxxxxxxyyyYYYyxxxxxxihxwxxxxxxihhHHwwvwgwixhxyiyiyiiixxwywxhxxxxxhyxXiyxxhxxyxxxxyxwvwviyyiiiywwxxxxwxgxhxxwwwhxwwxwwxwxxxxxywxxuxxxxyhxhxxxxxywxgyxuxxxxyyyxyxyxxxxyyxxxxxxxxxjjjjjxxxxxxxyiiyiiy[{[[[yiyyiyyyyyxyyxxxyxxxwyyxxxxxxxjjjjjyyyyiyyxxxxjjjjjxxxxyyyiyiiyxxxywxxxxxyxyxxxiviivxxwyvyhh[Zjjj[jwwhxwwxhhyiyxghxvhxhxiwwyxgwhxvyxxxyZYiiijYixxxixwxhixywyywwxxxwyKJjjjkjYxxxhxxvhxxZYYYYZihwxyvyiixXxXxwhxfyyzjZjzxiiyyiiiyxwxxxxxhhxixxyxxxyiiiyxxyyxyyiyyxyxxxxxxyhxihxxxxxyyxyyyxxxjzjziyyyyxxvxiwxxxxxxxxyxXxgxxxxiyihiixwwxxxwxxywxxviiiiiiiwxxwxwxyWxhvxxhxxhxxywwxwhyyhhixyxXxXxxhYyyYYYyiiHihxxxxwxxxxxxxwxwgxggwvxhvxxxxxxxxxyhxxxixvwXwhhwuyyyiiiywwxwvwxwxxhvhgxwxxyyxwwxwxxyixyxxxyxwxwghhxvxgwhgwxxxxxxhxxxxhhYXxxxxyyyyyxyixhxhxxyxhvxvwxxvxxxxxxxxxxxxxxxxxxxxyyiiyxxjjZjjhhxxhxxxxxxxyiyiyiiwwxwxwxxhhxhxxxxxxxxxxxxxwxxxxxiyiiixxxxhxxxjjjZjyyiyiiywxwywwwwwxxwwxxxxxxyyyiixhxhxhxyxxxxxwxwxwxwxxyxxhhhxxxhhxhxxxxxxxxxxxxjjjZZxxyyiiihxhhxxxxxxxxxxxxxxxyxxxxwxxxwwxxwxwxxxxiiyiiiyyyiyixxyxxwhvxwxvwhwxxyhxgxxxxvxwwgxxXhxyihhxwxwwwhwxwxwhvYYiiYiixxxixwxhxvyhyhvhwywxyvwwwxxxwhvYYyxiXxxxhwvxIYyiiiYwxxwxwwwxxxwxyiwxxYxhxxxvhwxfwxxwhhxxxxxhxhhwxxwwxwxwwwxxxxxhyyhxvwgWwhhgwhxhhxxwhxwhwwxxwhvwwWvxhxxxxwwxxwxyiyxywwwwxwxxwxxhxxxxwxwxwwwghwwggwgfwxxxwwxxwxwxwwvxxwvhwwxwgwyyyhyxxyyxxxhxxwwwwxxhhxxxwxxgxwwvxyxyyyyyyxxxxhwwxwwhwwxxxxxxxxyyyyyhxxxyyxxwxxxxxyxyyyyyxyxyxyxxxxxxxxxwxxwxghxxhhhhxxyxxxxxyyiyiiywxwxxuwixgghxxxxxyyxyxxxxxhxhxxxhxyhhhXhxxxxxyyyyyyyxxxxhxxhhhxxxxxxxvwXWvigxiwyyyxxxxxyxyxxxxxxxxxhhxhhxwxxXhyvxxxxxxyyyxxxhyiyxwwxwxihyixxxxxxxxxxxxwwwwwwwxxxyxxxxxyxxxyxhyyhhXXhxxxxyyyiiiyixiixxxxxxxwggugghxxyyyyxxyxhixhixzzyyyxhiihhhXXxxxiyyyiyixxxxxxyixhhixxxxyyyxxxxxXXhhiyiyxyyYxwxxwwwwyjzjzzxxyxxhvxwxyyxhhxyiXwwxxwhhxwwxxvyyiyyyxyyiwxhxyyYyiyiYhxwwhjjjyxyyywwwxwwiyyYyyxyxxxwhiyixxxHhxvxwyvwgxxxxxyyyyxxyywwgxvxxyxwxxxwxxyyyyxxyxxxxwwwhxxxxxyxxxxyxwwyyyyyxxxwwxwxwvwwvxhwwwvxxxwgwvxWwuxxhxyyihiiyxxxxhvxuwhwwiyiyiiiXxxXhxxxxxxwwwxxwhhwxXxwxvxwwwxixhhyxxxyyyyyYyYYyxwxwwwwxwxxwwxhhhhHhwwwxvgfgxvwwhwxxxxxwxxxwwiyxyxxhxxxxxwxwxwwwwxwxxhxwvyxxhyxxxxyyxhhxwxxvixxhixxxwyxxwxxxYxxxhyyxxxyixxhxhwxvxxixyyyyyxxhxwwwwwwwwxxxxxxxxxxxwyyxyxwvxfxwxwxfwvfvvwwwwwwgwwguxxxxxyyhxwwxwihxixwxxwwwvwwvgxwgwxvxxxxvhwwwwvxxxxxxyyxxxxwxwwwwxwxwwwXxgVxyxxxgygwwwgvwffgxhvhxwxxxwxxxhXXXxuhxxhxfyhHhugVWwhvXXggxwxxwhvwfvgxxwwwxxxxgxwgXxhxhxxhvggxhfvvgwhxvWhvWevhxhwwWXwvvhxghxxxxxhhHIxwwwwgivxxxwxxwxxhxyxxxhXxwxxXwwuuWwxxvXxwfVgwwvhxvxxxwxwwxwwwxxxyxyyyxxxxxxxxwxxwwwwwvwxwwwxwwwxxxxvxwwwxgwwwxwvxxyxyyyxxxxxxxxxyhxxwwwwxxxxwwxgwwffgwvwwwgwuXXxXhxhwwhwwwwxwhhhhyhiixwvxwwvhiXixxwxwwxxwwwxgwvxwxvxxwxvgwvvxhwxhwwxwwxwwwwwxwgxgwhhxHXhhxwwwgxwwixhiyxxwwggwwxiwxxxvyywxxhxwwvxwwwwxhghWhguugxiiyyyxxyyyyyyxyxxyxxxxxxxxxxyhxxxyyxyYyiyxyiyyyyyyxxxxxxxxxxxxxxxxxxxxyxhxxxwxxwwxxyxxxxxxxxyzzzzjxyxwxyyxyxxxxxxxxxyxyxwwxyyyyyxxyyxyyxhhxhxxxxyiiiyxyyyzzzzzxyyxxxyyxyXvXwxxgvhxxixxyyiyyiiyxxxhiwxwwxwwwxwxxhyyxyyyxyyxxxvhivhxwwxxihhhihyxxxxyxxxxxxxyxwwxxwwgvwhwvxgffhhhhxxyxyyyzzzzzzhyhhhxxyyxxyyyyyiyyxxyxyhhhhhxyxyxiyyyiiyyyyyxxxyyyiyyxxxvwxvwggvxggxwwwwwwwxwwwxxhhxXXxhxyxuvxhxwhvxxwxxhxhhxhhwgwvwxxvgwvxhvYYyiiyYwxwxwxwxwhxxiiyYYiiwxwvgxxxwwwwvwwvxhhhhxwxwvhvXvhxwuxxxhhhhxhhhhwxvxvgvhwwwxxxxxxxyyyyyYiiyiyiizyxxxhyxxyyyyxxxxyxxxxxxxxyyyxxyyyxxxxyiiiixxxxxiyyyxxxyxxhxxxxxxzzjzzxyyxyiixwyyxxxxxxyyxxxyxxxxyyzzjzzxzjZjzhxxyxyyyyxxxxxxxyxyyxyxxyyy{k{kxxyyywgwxxwxhxvxwwxhhxxhxhyyxxxhxhyxxyyxxgxgxxwwwxxyxxihxyixxxyxxxxxwXhxxxwxwwwxxxxxyiyyiiyxxxxxyxxwwwyxxxxxyyywhwgwhWgwwvxwwxwvxgwvxyyyyxyyxxxyyyyk{{xxxyxyyyZjzjziyhyxyyxyyxxyxxyyyxxxjzzzzxxxxjzzzzxyixxyywxwxxyyyyyxhhxxyxxxxhxyzzzzzxxxxxxxxxxyxyyyyyzzzzzxxhyyxxxxyxxxyxxiiyiyxxwxxyyyyxxxxwiyxyxxyxyyxxxhxhxhyxyyiyiyxxzjzjzxxxyiyyyiyyxxxxxyxyyyyyxyxxyyxxxjzjzixxyxyyyyyxywxxxihixyyyyxk{yyzyyy{{{{{k{k{||ǌ||iyyyyxxxwxxxxwyyxxwxyxyyyyyxyxyiyyyyyxxxywxxxxxyxyyxxxxxywxzzzzziyhihhxyyyxxxyxxxxxyxhxxxhzyyyxxxxxyxyyyxyyiyyiizyjxxxxxyyyxyxyxyxxxxixxyyyyyywwwwyxxxijyiyxxxxxxiYyiyyixxyhxxhxxxxxxxxxxxxyyxxhxxxxxxxxxxyiyyyyyyxxxxxxxxxxxhhyhxyyxxxxxyiiyyxxxyYyiiyyyyyyyyxxxyxxxwwxxyxxxwwwwwwwhhxxxwwwwwxxxxxyyyyyxhxyxxxxxxxxxyxxyyyyyxhhxxyxxhxxixyiyyyxhixwwwwwwwwwxxxxxxyxxyyyyxyxyyyyyxxyziiyxxxxxyxxxxxxxxxxxyxxxxxxyiiiiyxxxxyyyyyyiyyyxxxxyyyhxxhxwwwwxwxxxyxhxyxxxxxxyxxxwwwwxxwxxwwwxwxxwxyyyyyhxhxxxxxxyyyyxxxyxxhxwxxxxxxxyxxxgxwvxhvwwwwxxwwgxXXxHhhhyyyvhvXhwXwxxyhxxhhhhxwwxxwhxhwhwvxxYIyYiiiwwxwgxwwxwhghxiYyYYiYwxwxhwghwxwwwxxwxxwxxxhhhhhxxxxxwxwwxivwxgvxwwhXhXxXhXhhvgwxgwxxxhwxxwwxxwwyyxyxywwwwxxxhxxxxwwwwxwxgxxxwgwwxvwwwwyxxxxxyxwwwxxwwwwvwxwhhhwxxxxyyyxyxxxxxxxxxxxxxwwxvxhwwxfvfvwxvxvxgWwxxxxxxxhyhhxhxwwwijyiyyxyxyizziixxxxxxxxxyxxyxxxxxyxyyyyyxhyyiyyixxxxxyyyyywwxwwwwxxxhxhxxxxxyyyyxxyxyyihhhhhxiyyyyyiwxxxxzjzjZxxyxxyyyyxyyxyxxxxiyyiiiyxxxxxjzjyjxxxxxyiyiixxyxhihhyxyyyyyxxxxxyxxhhzhhhhyyiyiyyyyyyyiyxxyyyyxxhhxhhxxxxxxyyyyxhhhhxxxxxiiyyiyxxxxyyhhhhiyyiyxvvwxWWuxxxwxwwxwwwxvhvxxvwhwxxxxxyyyyxyyxywxvgxwwxxxxXvxwhxxxxwxwyxxhxxhxvxvwhxxxxxxxxxxxiyyyxyixxxixhxxxhwhwggWwvvwwwvwggwuhhgwxwxxxyyiyyiiywxwyxwwxhhwxwxxxxxxxxxxxxxwwxwvxvXXwhvxxyxhxhyhhhyxixxxxyxyyyxxxxvwwgwwgfgfyyyyyxxxxxxhhxxxxxyxxhxxywwwwxwxxixxhxwwwxxxxxxyiyyxxxyxxxyyyyxxxxwwxwwxwwxwwxxzzzzjyxwwxxxwyywxhxyyhxxxiiyyyyxyxxwyxxxxxxxxwxxxxyyiyyxxhhixyxyyyyxxxyxyyxyyxxxyyyyzzHXxhXhhvvWxwwwxhxwxgwwgxxvvgxvvghxwxxvvwwwwhgwwwxxxWhvWXgvvhgwwvgghgwghvwvggxwwhwgwxWhvfwgvgwwhgggghxvhgwwgwgxfhwgvwXhxXHXhwwvxxvvWhxwvXvvwvXXxwxxxwvxwgwgXgvwgwvhgvggwfxxwhwwxvvwgwwxxwxxxwwXhhXhxixxxiixxhixxxivxhxxyxxxxxxxhxxxwwxwwxxwhxxxyxxxxxxxhxxxxxxxwwxwxyixyxwxwxgyxxxxxhixhxixxxWxxwxwwwxwxwxxxxxxxxxvxwxwxyxwwiiiyyyyxywxwwwwwyyxxxxxxxxxxxwwxwyiiyiiyyyyyxxxyyyyyxxxxxxxhhxhyxxxwxxwwwxxwwwhyhhxxxxhyiyyixxxxxxxxxxxIYhhhhvhwwxwvxxxxhwwwxxvxwwvwgwxxhhxwxxgxvvggwXiiixivwxxwhhxwhwvwvhwwwxwwwxxvwxhwxwxwwxwwwxvhvxxvwhwXYxhiiywxwwwhgxwxfghhvxuwhwwvywWXxwwwwvxwhwxwhwwvxwfwwvvfwvwyxxhwxwXixYYiihxhxxyxhhxxyyyiixyxxxxxwwwxwxwwwxwxyxxxwxwxhxxxxxxyxwxwwwxxxhxyxxyyxxxiiiyxxxxxxxxxxxxxhghxxxwwwxxyyyiyxyxxyxwhxixxxxhxwxxxwwxyyyyxxxhxxxxyxvhyxxxxhxxywxwwxyxxyhxxxxxxyxyxywwxwwxxwxxxxxxvxwwixwxxxxxxxxxxxxxxxxxxyyyyyxxxyyyyyxxyyxyhhxxhxywwwxxxxxxxhxihhxxxxxxyxxxxxwxxwwwwiyxyyyyywwxwwwwwxxiiyyiwxwywxwwwxxxwxxxiiiiiiYYyyYywwwxxwxwwxxwxwxxxxxyyyyyxxxxxxxhhxxhxyyiiixxxxxxxxxxxxxxhxxhxxyhhxxhxxiiyyyxwwwwwwxwwwwzzjjjhhhxxhhhxxhxhxxxhhhhhxxxxxxxxxxxxyyyywwwxwwwxyyyyxhixxhiyyxyxxxyiyyyxxyyxyxxxwxwxxwwyyyxxxxxyhhxxhxxxxxwxwxxxxxxxxxxxhxyhhhyiiyyxxyxxxxxxxyxxxxxyhxiihzzzzxhxxhxywwwwwwwyxxxxxxxxzyyhhhhxxxxywwwwwwwxxxxxxxxxxxxxxxxxyxxxxxxxjzjjjxxxxxxxxwwwyxwwwxxxxxxiiiiiiwwwwwwwwyiyyihxxhhhxhhxxxxxxyxxwxwxxwxwxxxyiiyyhxxihhxxhhhhhhhYyyYYYyxxxxxxxxhxxxxxzzzzzwwxxgiwxxxxyyxxyxyyyxxxxxxwxiXxxvxxxxwxwxwwxyxxxyhxhxxxxvhyhyvxxxyxxxhxxywxxxxxhiiwxwxwwwwwxwxxxgxxhxfyYYyyyyxxxxxwwxxwxxwxwxwwwiyjyyxxxxxyiiyiiyjjZjjxxxxxxyyyxyxwyxxxwxxxxxxhhxxxyyiiixxxxxxxxzjjzjxxhxhhxxxhxhxhxxxhhhyixxwhvwxwhwhhhhxgwvxwwgfYYxyiiifwggxwwwwhgwxxvxxwxhxwwwhwvwwvwgxwgwxwwwhgxwgwguwhxvYhihiXhhxXhwgghgwwhwhxxwwwxwxxwIYyiiiYvhwwwwvwxvxxvhxYiyiYYiuwwvwvwwwxwXxhhvvxgXWyvwxwwxWwxhxxxzZYyyhiyihyixwywwwwwxhxxxxxxxxhhxiiiyxxyiiyyiyyxxxxxxxwxwxxwwxxxxxxxxxxxxxxxxxxxxxxxxyiiiiyyyihxhiYyyyYYywxxwwwxuxwXxyhxxhhhhxwwxxxwxyvhxhxhxxxhiyiiyyXyyhxhhxxxhyxxxyiiyiwwxvxwXxyxxwwwYyyYyYyihHiihxxxxhxxhhhxxxxwxxxwxxuxyiyyxxxxxxxxxxxxxxxxxxihyyxhhxiiyyyxxxxxxhxxwxxwwwwwxwwwxxyyyxxxxxxxxwxxxxxwxxwxwxxxxxxxxxxyyxxyxhxxxwwwwxxxhyxxxzzzzzxhxxxxxxxxxxxhxxxxxwwxwxwyyxxhxxxxhxxxxxhxhxhxyxxxxxxwwwwwwiyyyzjizxxxyxiyyyyzyiywxxwxxxxxwxwwxwxxhxxxxxxiyiiyxxxyyiyYixwxyxxhxxxxxyxyxwwxxhxxhxxxwwxxxxxxxxywxwxwxxxyiyyiyyyxxxxxxxxyyyiyxxyxxxxxxxyxxhhiyyyiywxwwxxxxxxxxyyyyiyiyiiyxxhxxxxxxxxxxxxhyjyyixxyxyixxxxyxyyxxhxyyyyyxxxhxxxwwwwwxwwxyxwxxiyyxxyxxxyxyyyyyyyyywgwvxhwxwwgwgxhhvwhwwghgwwYYhiihvgxxhxwxxwwxwwxxhyxxxxwwwxWgxvvxggvxfhwwwvvxwhxghgxxvxvvwxwXXxYiiihhhhxxwxwghxwwwxvxgwhwwxwwxwxwxwIIyhiYhXhwxwgwvwhwwxwgYXxhYiXwguhwwwgxhwxxywxwXXxhvgxhvxxxxxxwyyhhhxyyyhyiyyyyywwwwwwwyxwwyyyyywwxwxwwxhhxxxxxxxxxxxxxxxxyxiyyixxxxxxxxxxxxxxyyyxyyyjyixxxxhxhxiyyiyywxxxxxxxxxhhhhhwvggxxxwxxxxxvyvwxwwwxhxxxxxwgyvxxxxwwwxwxxwxxxfxwxxxxwwwwxwwwxfhxxwxwuivxwxyhxxhhyxwxxxxwwvvwxxwwwxwwwxxhhxhxhxwxWxyvxwxxxiyiiixhyxyyiihihhwxxwxxxxxwwxwwhxxhxyxxyyyyyiixxxxxxyyzZZyyixxxxxxxxxxxxxxxxxxxxxxxxxxxhhxwxwxxwwyiiiiyyyxxxxxxihwwwxxihxyxxxxxxxhhxyxxwwwxwwxxxxxxxxyyiyxyxyxyxxxxxxxxxhwhiiyxxxxxxxwxyXyyvhxxhyiiyyxxxxxwxxwxhixxxyxxxxixyxxxxxxxxxxxxxxxhxxwwwwxxxwwxwxxxhxxxxhwwwwxxxxxxxxvxhxxxxxxxxYwxhxyhyhhxyhhxxxhwwvhyixxxxxxiiiiyxXyxjzjjzhxhxhxxhxhxxxxxxhhhhhxxxxiyyiyhxhhxxxxxxxxxxxxxxxxwxwwxxxyxyiyyihxihxxxxxhhhhiyxYyYYyyyxwwxwwxwwwxwxxxwxwwxwwxxxxxyyyyyvhwxxyxxxxxxyhwxyxxwwxwxwxyiyxxyxyxhxxhxxxxxyhhxxxyxxxhxyxixxxxwxxwxwwwxxxihxxxxxxxyxwxwxwwwhhxxxwwyhyyviyiiiyywywxwwwwwxxxxxiiwwwxxxhxxyxxxyyxxxxxxxyixwxyiiyyxxxxhxxhxxxxxxxxxxxxxxxxxxxyyyyyyyy9YyYYiivgxxwwwwwwghwxhxhhxwwvhwxvvxhxxxXXxghxwxfvgwwIiyiXiXvhxXXxvxwvwxwWhxwwxxxwwwxhxgxwxhwxxxgxxgfxxhHhxiYXhvvxwhvvXWxwwhwwxXxxwwXxuxXxihHHhwgwwwgvxhhvxhxvvhwvxwwwgwwwxwvgxxIiiiIiihhxXhhhxxxxxxxxiiiyiiiWXvwhgwiyiyiyyxhhhhxgvggwvxxwxhwwwxwxxxxwxwwxxxxwwwxhgxhhvxggwwgxyxxxxhxihxxyggwgxxwxxxxyxxxxyxxxxxxxwwWvxgwuyxxxwywxxwxiyyyiyyjjjjjxhxyxhxxxxxxxxxwxwxxwwyiiyiiyxhxhxzzzzzxxxxxxxxxxxhiyhyxxxxxyyyyyxxxxxxxxyyyyywxwwxxxxxxixhyyxxyhxhxxxxyxxxxxxxxxZjjZjxxxiiyiiwwwxwwwwwwwxwxxxiiiiyyyxxxxxxxxxxxxxxxhhxxhxiyyiyxxxxxxyxyhxhhiyyiyxxhxxxxwwwxIiyYIiYxxxvgxhhxvwivxxghvWwwvwXxvxxgvwxxwxvxhvvvgwwXyYYXixwwgxhxhhhhxxyxxvfxgwwvgwxxxxxwxwXwuXhxhXihwxwxwgxwxwvuwixgghfxhvwggwwwgwvwxxvwxhhwxwwhwwwwhhxxxuxwxwxhwvYhhXihvhvvwhggwyywwxwxxwxxhxxhhhxxxxwwxxwxxxxhwwwxxwxfwgwvvwhhwxhhxxxxwxwwxyyyxxxxxxxxxhvuhvwgvwXXvxxyxyyhxxhhhxwxwxxxwxwxxxxxxwwwwwwxwxhxxhhxxwwwwwwxwvgwwfwvxghfxxxxxyyyxxxyyyxxxxxxxxxhhxhxwwwwwwwxxhhxhywxxyiiyyxxxhxxyyyyyxxxxxxyixyiyiyhiwwwwwwywwwxxxxxxxxxxxxxxxxxxxyyzyixxxwxhhhhhYyYyYyywwwxwwwwxyxwwhxxxjzzjjxhxhxjjjjZiiyiiywxwwxwxxxxxxhhhhxxxxxxxxxxxyyyyhhxhxxxxxxxwyxyyjyixxxxxyiyyixxxxhxhyhhyyxxxxxyxxxxhxxyxxxixhywwxwxwhxxyzzzzzxxxxxxxhxxxxxxxxxwwwwwwxhhxxxxxxwwxxyyyyyyyywwwxxwwxxxxxxwxwxwxxxyxyyyyiiixxxhhhixxxyyyhxhxxxxxxxxxxwwwwxxwwxxxiiyiiyxxxxxxxxxyyyiyxxxxxjjjzjxxxxxxxwxxhxxxYYYYyyyxxxhhhhxxxyiiyyxxhxhxxwwxwwwxwwxxwwwxwxxxxxxxxxxxxxyyyiyywxxxxxxxhxhhhhhxxxxxxxxhhhhyxhyhhhiyxxwwwwwxyyzyyxxxxxxxxxxxyzzzzyxyyyyyhixiyxxxxxxxxxxyyyyyxxxxxxyxxxxxxyyyyyxxxxxxyxyyxixihxxxxxyxiyyiiiywwwwxjjjjjihhhihx[[[[[[{zzzzzzzzzzlllllllzzzzzzzzzzkkkkkk{kkkkkk{xxxxxyjjjjjxxxxxxxyyxyiiyyiyyywyxxyxxxxxxiiiiiiyyxxwxyxxxxxxxjjjjjxxx[{[[[iyyiiiixxxxxxyyyxyyyiyyyiyxxxyxyxyyyxxxxxxxxxjjjjjxyyxxxxxyxyxxywxxxyxxxyyyyyxxxxxxxhxyxhxwwwxxwxxxxxyiyyiiiywxxxwxwxwyyyyyxxxxxxhhihiixxxxxxxxjjjjjhxxhihxiiyiiyzzzzzxxxxxxxxxxyxyyxyjjjjjYyyYYYyxxxxxihhxyhxxxwwxxwxwhxxxzzzzzhhxxhihhxyhhhxyyxyyiiyiiiiwwwwxxxwyyyyyxyxxxyyxxxwxxwxwxxxxxxxxxxxxixihhhyxxyxyxxyyyyyhhxhhyyyyyyyxxxxxxxxwgwhgyhxxxxxyxxxxxxhxhxyyxxxXXhhhhhxxxiiiyyiyxwxxwxxxhxxxhxxxxxxxxxxvhWvxxyuxxxxyxxxxxxxywxxxyyiyyiyjjjjjxxx[[[{[iiyiiyxxxyxyyxyxiiyyiyixxxxxxxxxxxxyxyyyyxxxxxxxxyxxjjjjjyyyyyiyxxxjjjjjxyyxyxxyxywxxyyxxxxxxxxxiiyyixhhxxxxxxxxxhxxxwwxxwwyxxxhxhxhxxxxxxxxxxxZZjjjhhxxxjjjjZiyyyiyixxxxxxxxxxyxxxxxxyxxxxxwwwwxxxxiiiyiiiiyyiyxwxwwwxxwXhhhxhihxyhhxhxxxxxxwvhhxxxxwYiyiYiYhXhhhwgxwgxwwYiyYYYYwhwwwhxvvhvwhvvxwhvxxxhhhhhvwhvhxxhvxgxwvxwwYYyiYiYxxxxhhxhxJjjjJjJxxxxxwxgwwxxwhxhhxXxhYxwxhxxwgvgwxhxwxxxxhhxwwxwxwxxxxxYYYyyYyHHhihiiiiiiiuxguhwywvWWvgxwwxxxxxxwxxxwxxxwwwwwxwxxxxxxxxxxwwwvxxxwXXwhhxiihyiiyXXXxxxxxxhhhxyhxyyxxyxhwvwwxfvxxfvxhxxxvhwwhXXhihwxxgxxxxxxxywwxwxxwwYhxXXXhhhwhhhwwxwxxwwhgwwXhxHXIhvxhwgwghxugvWwggXwxxxyyxXhhXhvhxxxhwwxwxwxwwwwYiiYYYihhxhxxwhxIYyYIYYxxxxxwxgwwxhhhhhhXhxXwghxhwwvwxxxxxxxyyyyyxxxyyxxxxxihhyxhxxxxxxxxhiyxyyxxxxyyyyyxxzzzyzxxxxiyyyiyywxwwwwyyyyxyyxxxxxxxxxxjjjjjixixhyhhhhhhxxwwwwwwwyyyyyxxxxxxxxxxxxxxxxxxxxxihiiyyyxxxxxxxxxxyyyyyxxxxxxyyyxyyxwxxxxhxyhxxxxxxxxxyyyyxyxxxxiyiiixyxyxxxhhhhxxyxxyyxxyyxxwwxwxwxwwvxfwvxxxvxggwwwggwhhyxyxxxxxwwxxwwxxwxhxxhyyyyxyhwhxwxwwwwhhxxxxxxxxxxwwvwixwxxxyxxxxxxxxhhhyxhxwWXxxwwxxhxxhhhxxyxyxxxxxxXvWvxxxvxxxxxxxwgvwhhxhxxhxxxhxxyyyyyyyxxxxxxhhxhhiyxhhhxxxiyiyiyyyyxxyxwwgghgwxyxxxyyyxyyxxxxwwgwhwvwwwxxfwfvwwwxxxXvWwywxxixhhxhxxhhxhxwxwwwyyxyyyyyyyyggxxwxhgxxxwxwxxhhhhhhxxxxxxxxxhyhxiihiiiyWWxxxjjjjjhxyhhhhywyxxyxYyyyYyywwxwxwwxiyyyiyizzzzzxxhxxxxxwwxwxxwwxxxxxxxxxxxxyyyyyxyxixhhihhyhxxxxxyyyhxxyhxxxxyyxxxwxwxwwxzzyyyiyyiixyyxxxxwxxwwwwxwwxxxyxxxxxiiyyyxxxyhxhhxxxxxxwwwxiyyiiiixxxyyyyywxwwxxxxxxxxxxyxhxxyxxyxxwxxxwwxwwyyyyhxhhxxyhxxxhxxxxxxxxxxxwxwxxixvxxxxhxhxywwwwwxwwxyxxihxYixxxxhxxhhhxxxxxxxxxxxxyxxyhhhgwhyv9iyY9YYxxxgwvwhhgwwXvxvhXwwHhhHhwwgwwwhwvXgwwXhwIhXHYhxxgxwvXwxvwxvhwvXXwwhxhwvgwwgghgggxxxxxwwwwwhhvIhxhHhihvhvwgwvhxvXXwwuXxwxXxxgxggxhhwghxwvwXxvxXywwxwxxwvwwxhhggIyiIiiihfhwwvVwxwwxhghhwxxwwgxxyxxvwfygfwgwwgghxxxyxxvXwvvvWghwxxwhxvvwhhhihwwwwxwwxhhxwxxxxwwwXxvWhhvxxvhwwfVwwwxwwxxwwwvwwhxgxxxxxvxwhxfhgvwvwxxWxxwxwwwxhxgvhwhXWxxuhvwvuFYYyYiYYhhhhhwhwhxgvguhgyhxxxxvvwfwwxwvxxxxXiXYXigwwgwwxvvwwxxxwgvvwxXvxxXwhvxwhxwggxhgwwxxxwwggwhhxHhIiwwgwhxwwwvhgyhxxxvwWwxwguvwfwvfhwwxyhhxvxguwxhwxwwwwwWihXhYhIYiiYihwxwwhwvxhhxhxhwxhxwwwwwwxwvwxhvwwwwwwhgwYiiiYYwxhwhwhhhhxvvxwxwxxxvwxxxhxwvhvhvihvvhvXwvXwxwXXiiIiwwxxwwgwwhxhwxwgwxwwwxxwvhwhxvWwxwxgxwxxwvwwfggxgwvwhhxxwXhyYiYiHhxXhhXxvwwwwwwhwvvgwgwgwhwwWgwgwxwgxxxwwgwwvwhwwXxhXhhxxxxxwwwuwwwwxhxgxffvwvwhwwxxvwgxwwguXhxhhXXwxwxwxwxgwvuuggghgfwfvvvvwwwwgxxxwwgwwvvwvvvvhxvvgxwgwgxxvfvwvxvwxvvWguguhgg9XYYIwwwghxwXwYhywuXiXxxiYwwgxhwhhhxwvXgxywhxIhHhHhgvWhvwwWgIvyiiiwuYvwxhhXiyxYwgxxwxwgwXwhxiwHIYYY9hhhxwxXXIxhiXvwXwxxxwgYXhhwwGiYyyyhhxwwgwwwwxxXvXghyhgtXwwHwXYXHshxxxyyxwfxgxxggwwxxxywxwxwwxxxxxxxywxxwwxxxhxxxxugwgxgwvxxxxxxxxxvxxxxvxwwxyxxxwyxxxxxyxxxxxxxxxwwxyyyiwvxwxxwvxfvxwvxwwvgwwxgxxxxwggwwxxxwxhixyxxxhxhxxxxxxxxuhvwwwvwxhhxxxxwwwwhhwxwwwxxxwwwhxhxxxxxwxxhvxgghvxggvvfwwgwwwxwwwwwxwxxxxxxxhhhxxxxxwxwxxxxxxhhxxhxxxWXxxvwwwxgWwwxwxwyyyyzyiyxxyxyyxxyxxxhxxxxxxxyiiyyxxxyhxxyiyyyxxxhxhwxxwwxxxxxxxxyyiyjjyzyxxxxxxxxxxxxxxxwwyxyxhxwxwwwiyiixyyxxxxxxyiiyxxxyxxyywwwxwwxxxxxyxxxxxwwwwwxxxxxhxxxxxxxhwwxgwxihYiYxiiyhyxxiwxxhiwyYwxhvwwxgvxwwxwxxxwiHhhiXyxyyiywhwxixxYyXhiixxgwxwgXxgxxhwhxyyxiwhxxxxwyyyixwhyhyyxxYyXyiiiYwwxxhixxxxxwwwiwxxxxyxyxxxxyxyxwgvxxxxyygxxwxxxyxyxyxwwyhxxyiyxwwwxxwxvxwvxvyyyyxyyxyxyxyxwxxyyiiiiywwxwwxxyyyyywxxxxxxxxxxxxyxxxxxxxxxxxxxxxxxyyyyyyyyiyiyxxxxihyxyywwxwxjjjjjxxxhzzzzzxxhxhyxhhhxxxixhxyxyyxxhxixxhxxxiwgxxhxhhyhhhxxxxyhixiyyyiyyxxxxwwyxwfwwxxxxxxhwgxyxxyxxxxwwyxgwhxxxxiyiiiiixxWxxwxwxxxxxwxxwwwxxxvxWyxvhhhhhiwwxxxzzjzzxyyyyxxxxxxxxxyxxxyxxzzzzzxxxywxyxyxxxxxyyyyiyiixyxyyyxyyyyyyyxxxxyyxxyyhgxhwwxxxxhwwhwxhxjIiiijighvxwwXyxyywhwhwyxwxxwxgXyxiigxwxgwwxxxhxiYyyiyhixxiXwwwxhhhwxiwxhxxwZIiiijYwXywxhvwhyxxxwiYiiijhxgvxgyyxyXvhygxXwxxxxgvhhhhxvwwxxwwxhxhxxyyyxyxwwxxwwwwwvvwxfwwxhxfxxxxxwxwwwyvwxwwwggxwxxxxxxwxwxxxwwwxxxhxxhxwxxwwwxwwwvwxxhhgwwwxggvxyyyyxxwgxgwwXwwxxxxxxxxxxxyyxhxhwgxxxvxxxwwwwwwwwwwwxhxhxhhxyiyyyxxxwwwxyiiiyxxxxxxxxxxxxxxhhxihxyxxhxxxxxxxxxxyiyyyxxxxxxxxxjZjjjiyiiyyyxxxyxhxxxxxxxwwhxhxxxxxyxwwwxwwwxhhhhhhyyiiyiyyiiiyxxxxjzjjjxxxxxxxxxxxhxxwxxxxxxyyiiixxxxxxyhxxihhxjjZZjxxxxyyyyyyyxxxxyxxxxyxyvhgwwxwhxxxhxxhhxxyxwihxxxyxWgxxxyyyyyiyhhxhhwhhwwxhwxwxxxyxyxxxxyxxxxxxxxwghggvwgxwwxwwwxxhxhhxwgwxwxxwyxxxyxyyxxyxxxxxwXWxwxwxXwwxwhggxxyhvxxxwwhxhxwxwiwiYxyiiYiixxYgvxvxwxhiYiYYYwhxxwwhwxgxhxwiXwwwxhgwgxwwxwgiIhhiXxxvYxwxhvYZyiiiIxxxxhhxhiwhwxhwhxyxxvgxxvxxwwwvyyxxxxxyyyyxxxwyxwhvhxxxxxxxyhxyxxxxxxyyyyyxxxyxyyxyyzxxxxxxwhwgwwxXhhhhvfxvxwgwvxxyxhxxhhhyxhxxxhhhhhyiiyyyywhwxgwvwwwyxxxxxxwxvgwggxhhhgvxxxxyxyxxxxxyyiiiiixxwwwwxwxxwwwxxxwxgwhWxuxvhwvwWWwwwxuxwhxyxxhxxxhxyxxxyxwwxiyiihxxyiXyxiyyyiiywxxwxxxxxxxwxviyyiyiyxxxwxwwyvxxhxxxxixhxyhxxxxxxxhxxxxxwxyuxxywxxiiyixxyxhxyyXyyxxhxxxiyxxyyxxwxxxxxvvxwwwxgvwwgwgvwxwwvwgxvyywywxwxxxxxxxxxxxxxxxhhgwvwxxwwxwyyyyxxxwgwwwxxwixxxxxhxxxxvxggxxxxwgyhxiivWywwwxwyvxgwwwxwgvxwxwwwyvwxwxwwXXhhxxxxxgyyiYitvWhhhhhwxhxxwwwvxxxxwxhhyuxxxwwwwwwvgwwvwxxyuhhugVwggghhvhxwxxyvxxxxhXXXywxxhxfxxixxxyxgxwxxwhvwfvgxxxhyvGxxwwxwxwwwxxxxxxxwgxwwxwwwxxxyyyxxxxxxwxwhyxxxxxhxxhxyyxzzwxxwwwxxwwxxvhwvhvgxwvxxwwwwxhxxhxhxxhhhxyywwwwxxwxxfwxgvfwwwwxwwwwxxxxxxhxxhwwwwwxwwwxxwxwwxxxxyxvwwvWWhgvxxxxhhhxxxhxxwwxxwwxxxxxyyyxwxwwwwxxhwwwwgvggffhwhxxyyiwxxwxxxxwxxwxxxxwwxwwgxxxyxxhyxxxxxxxyxwyyxxwxxxxxxxwiwXxyihxxhxxxwxwxxxwyyxxxxiyiywywhyyvwguxgixxiyyyyyxyyxxxyywywvvwvvvhxvxxxxxyxxxxxxxxxxwwvxgXhhxhyhixxxxxxxxxxxhyxwwxwxghwixvxYwyxXyywhyxhyZzzzziyyxhxwwwwyyyixihxxXgwhvxxhXwxxhhwxyjyyyhhiihxxXhyiIXwxxhhwYyyyixyxyxhhxxxhjjzyyyyyiwgxwxXihxxYxhwxhhxvvgxxxwxxhwgwwyxxxxxxwhgwwhggvxxyxxwxYXyuvWxhhhhhvgwwxgwwvwxxxyxgyxxxwwvvxxWgwwwwhgivfVxxhhxwvhwwwwxhxxxiihXXxxwxxvxxyxxxxxgwwwwwivgfvfxhhxuWhhxhxxxxxyxyhgxggxxxxxxxxxwxwwwhgxxwxgxwwwyyxyyyxxxxxyyxxxwxghwwvxvxxhxxxxxxxyxxxwwwxxwxxxxhhwwwxwwwxhxhhywwwwwwffxxxvwWxuwvhxxhxxwwwxxxwhwwgxyyyyyxxhhxxxhyxwvwxwxxxxxxyyxyxxxhhhxxyxxxxyxixxwxxxwyxxxxxwxwwwwxwwxxhxxxxxxxxyixhxwxvwhhvxhhwxxwxyxxyxxxxxvwvxwwyvwwwwvhwhxgvwwwwgxwxxxxhxyyxxxxxwywxxxxhxwwxwwvxyyxyyyxxxwwwxwxxwxxxxyywgwwwvxxwxxxwxyxxxwwwwzxxxxwwwxxxxxhxixyyyxxxxhxxxxywxxxyyyxhxxxxxyxwwwxwwwxxwxwxghwwxhwywxhXYxhiiyyyhxhxyyxywhywivwhuwwxxvihiIyxiiixxxhwxwxhhiYiyihwwwvxxhwhwyxwxxxxxyxyiixxyyyywyxvxhxwxwwwYhYyhxXhxxvhxhvfwwxvwwhhxyyyxhxxxxxxyxyhhxxxwhwwwwhhxxxwwwwxwwxxxxxxxxxxxxxxxwxwxwwwwwxvxxgwvgwhgxxxxwwwwxxxxxwyxxwxxyxyyiiiwwwwghxvxwhvwWWwwxwxxxwwwwxxwxxyxxxwxwwwxxhxxxxxyxwwxxwwxxhxhxxxxxxxxxiiiyxxxxxxxyyyyyxxxxxxxxxxhhxxxyyxxxxxxhhyiyyiwwwxwywwzZzzZxxxhxxxxxxxxxxxxxxxiiixixyxxxxxwxxxwxwyiiiixxxxxxxxiyiixxxxxyyyuvgvwwxxwwxhxxxxwvhvhxxxwwwxwxwwxxxyyxxxxyyiifgwgwhgwwwwwxwwxxwwxXwXhhxxxhyyxxwxwwwwxwxxwwwwxwxxwwxvhhyxxvwwvhwwgxxxhxxhxhxiiyiyyyxxxxxxxwxwwxyxyxxyhxxhhhhhxgwvvwxvwxwwxgwvywyywwyxxwyxikZzzzkzxivxhixyixxxwhyvvhwxxhwvxxhxwywgxxjYiiijivhhxiwvxwiwiviivxwxwyv[Jjjj[jYxxxwxwywxxwjYiiijiwxhvwwxxiyxwhxYxghxfxxxxxxxxyxxhixixyyyyywwwwwxyzzzzxxxxxxxxyyxyyyxxxxxxyyyiyiyxxxxxxxxxxxyyyjjjjjxxxxxxxyyyyyxyyhxhhyhhihxhiwxwxwxxyyxwhwwwxxyxyiwgxvxhxxxxyxxyxxwxvxxxyyyxyyyhxyyxxxwxyxxxxxwwfwxxxhxxiiixyyXyyxzzzzjxxxyyiyxxywxwyxxxyyxxxxyxxyyyzzzzjxzjzjZyhyixxxyyxxyyxxxyxxxyyyxyyyyy{k{kxxyyyyhvxxvxxxxhyhxxiihyhyxyyyywwwfwwxxxxwxxxiyyXyyxxxxyxyxwwxvyvxxxihihiiiyyxxxxwxgvxxyyxyyyyxxxxyxxwxxuwhwhxxhxyxiyhxyyyxywxwhhyyxYhyxxxhxxvxxivhYhhIhixxyyywxwXyihxixwwywwxxwhviYyxYiyxxxhxwwYYyiYYxwxwwwxhixiixxhvwxwxuhxhxhxxyyyiyxyxhxxxwxwwxwxwwhhxyxxxxxxxxxxxxxxxxxxxxxxyyyyyxyyyyyyxyyyxxxxxxyyxyyxxxxxxxxxxxxxxxxxiiiyixxyxxyxxxhxhxhyxxxxxxyyyyyxxwwxxxxwwxwwwwxyyiiiyyyyyyxxxxxxxxxxxyyyyyxxxyyxxxxxxxxxxxxxxxxxxxxyxxxxxxxxyijiyxxwxwwwwxgwwwhwxxyyxxxxxxwwxxxxxxhhxxxxhxwwxwwwwhwhhhxhxxxxxyxxxxxxwwwwxwwxwxxwwwwwgxxgwvxxxxyxxxhxwxgwwxxwxxyxxyxyxxxxxxwwggxxxxwuwgwxwwhhxvxxxxxxxxxxxxxxxxxhxxxwwwwxxwxyxwxxwwhgwggwwwxwxwyiiixxxyxyyxyxxxxwxxxxwwwxxihxxxxxxxwwwhwxhwwwxwxxxxxyxxyyyxyywvvwgxwxxf:YIYYxwwwxwxwggghgigvXYiyxyYYxwwxxwxxXwuxwxwfgXhxxxxIY8XXXvffhwgxWWXgyxuxhgwXxxxxwXihhiHhwwxfhgxxXgWIiIiIXgvwwxggvxXIYyiiiYwwhxhwHgvxghvwwGYhxhhhXxxyyxwhxxhggWwvxhVwhIYIYXvgxwxvwxxvwggwhwHhxhHiixxhxxYhhXxwxhyxhhXhhhwgwxgxwwwwhghhxvYYyiYiYwgxxvxxxvxvhxxxYiiYYYiwxwxwxwwwwwwwhhwxxxxxxhhhhxwwvxwxwxyxxyxvhwvgWWwvxXwxhhYhxhXhhwvhvxwvhwgxwxhwxwwwwvxxxwwxxxwwwYXyiYhuhguxhggvwwhhvgwwwxhgxwwwwwxhwvwhxhhvwwwwwxwwvwgwwuhhwvihhYiXggxihwwwxwwwwwwwwgxxhxwwgxwwhxvYXyiiXhhxhxwxvxwxxwwiiiiihvwvxvxxxxwxxxhhwvwwghgffxwwxwwwWxwXxxwxXxvhwvghyxxhxxxygvwxwgwxwgXhxxXhXvhhxxhhwwgwxxwwgwwhhxhHXXwwxxwxxwwWvwxhYhhhXXhwwwwxwwwwhxxgwiYyyYiYxxywgxwwwvYiiYiIwgwxwxxwhxhhxwwhwgxxwvxhxwwhXxvxxxwwWxhxxhhvixxihhxxxywWxxgvwxxwvxyyyxyxhhxwwXwxgwxwwxwwwwvggghhxxyxxxwxhixuxyyxyyyxhhhhhxxwgvugWvwhxwwwwvwvhxhxxxxxxhxgwxwhxyhyyxxxxxxyxxwhwhvwxWWvixxxxvGiixxyiixxwyxxk{{xxxxwyxwxyyyyyhxxiXwvxwwwwhxwhwwwywxzzzzzyxyyywhxxxwyyYxyyYYigxxjzzzjiiyiwxxhzzjzzyxyyygxhxhxwyhwxyiuXxxxxxxviuxggxhxxxhxxhxyyyyyyyyyxxxxxhxxhhxxyxxhhhhxxxxxxxyiiyyyyxxxxxxhxhxyxyxvxvxXguxwxxxxxxxxxxxxxwihxxhyyhxxxxxxyyyyxxxxxywxxxxxxxxwgyxxxyyyiwxxxxyyxxxxxxxwyxhyxuxxxyyyxxwwxwwxxxyiyyyyyyiyxyxyxxxxxxhhxxxxyyyxxvwgvggxgyyyyiyiyyiyiyxxxxyhxxhhxyyyxxhxhhxzzzzzzxyyxxywxwvxgwyyxxxxxyyyyyyywxwywwwwxxxwwwwWxxxhhxxxxxzzzyiiyiyxywgxxxxxxxxzzzxxxxxyxyhxxxyxxhgfwhgvwxxywxgyyyyxxxxxxxxxxywwhgwxxwxwwyxxwyhxyhihxwwxwwwxxyyyyxwxxxwxhyxxxxxxvwxwwwvhixxhxxxxxxxxhxxxhxxxxvxhwxhwxhxxxxxxxxyxxxxxxxxxXhiXxxxxxxxxhxhxxxxhwwwwwwxwyyxxxxwxhxhgvXwxwyxxxxyxxxyyxyywwwxxwgxhxyxxxxxxxyhxyxxxxxxxxxxxxxxhxhxyxxxxxwxxwxwxwxxxxxhhhhxxxwwxwxyyxyyhhyhhvXwwvhXixxwywyiyyyyyxxxxxxxyfgwvvwgxwxyhxyxxxxxxhyxyxxuhwvwhiiihhxxxxwxwxxxxxxxxxxxxxxvhgxhxvxXxxyxwYxyhxhxxxwZzzzjyyywyhwwhiyyyYyiyiwxxxxXhxxhgyyyjzjyyXwyxhiviHxhxhYhyxxiiyyyYyyxhhwxhhYwiiixxxxxyxhwgwwghwxXxyyyXvwghhvxxxxxxxxwxvgwvxxyxxxxxxxxxxxhhxxxxwxxwxwgwvwxxxxxxxxxyxwxwxwwwxwxwwwwwvxxxwxhhwxxxxxxxxhhxxhxxyxxxxxxxxhhhhhgxvggxxxXXhhyhhxhxxhvhxvwhxwxhxxhyxxxhxxhxxxuxwxwxhwvyhxxxixvwhwxxwvxxxxxxwxxwxxxhwxxxwwghgxxxxxhyyxxxhhyxyyyyyyYyxyxwwwwwxwxwwxxxwwxvxwxwwwvxxxWwiyyiyxxxxxxxxxhxxhxwwxwxyyxwwxwwwyzyiixxyxxhxxyhxxyxyxxhxhxxxxxyiyyyyxxwwxwxwyxhyxxxxxwxwwwwxxxyyyyyyyyyiyyiyxyxwwwwwxwwxxxxxxiiixxxxhxyxyxxxxxyxxxxxixyixxwwyyiiixxxxhxxhxxxxxxxxxxxxxxxyyyxxxyyyyi9yiYYivhxwwgvwxwxghxvhgxxyxxxYhxxhIyXiihvxxxxXwwgwxwXwhxxvgywxhwghxwwhvhxxvhyIxhhiXvhwxxxYwhywyXwwxxxihhhIxwwgwxxxxwXxxxxwwwgxwgviIiiiiiwxhiwxxxyyxyyyyxyxxxyyyyxgxgxxxxxxxiyhxxxxxyxyxwxwxxxxwxyxxyywvxwgxxyyxixxxxxxhxwgyvxyxyyhiihiiiyxxWxxwjjjjjxxxxxhxxhxyhhihxhxxyhxyyhhhyxxxzzzzzyiyiyiixxxxyyxyxxxyyyyyxyxhxhxyxxyxywxyxyxxxyyyYyYyxxxxxwwxwwxxwxwwxxwxwwwxxwwxyyyzzxhxxwYyyyYyywwwxwixwxxywxwxxwxxywxxxxxgxxwxxxxxxxxhyyxhyxwhygxxuiiiyiiixxxxxywxwYxhxxxxxxxhihihiyiihyyxxhhvxwfyyyyiyxhyyxiixywxyxxwxxxxhwxxyyyyyxywxwxyxxyyyyxxyxyyxxxzzjzzxxiihxxhxxxxxxxxxyyyyyyyyzzZ9YYYZiHihihhwwhwhgxhgvYwxxyhwwxxxxXwghxvwxxxiIiiijhwxxxxXwwhvxxyXwXyxyyxxxxgwXyxxxwwhwhxjIiiijiyyxyXhwxhgwhvxgiihiHyxwxxxywwWwhiwwXxxxxwxxwwghiIiiiixwxwxwxwxxxxxxxxxxxxxwggwgwwxxxxwxhvxwXvwwWvyyyixxxxxxxxxwwxxxxxxxxwwwxwwwwwwxwwhvvfwxxxxywxwgxxwhwvxwggyxyyyyxxxxyhhxxxxxxhhxxxyiiyyxhhxihhxxxwwwxxxxyyxxxxxiiyyiyiyyyiyxxxxxxxxxxxxxxxwwwwxwwxyyyyyxhxixxxxxyxyxxwxxwwwwxxxxwwxwxxwxyyyyyyiiyxxxxxxxxxxxhxxhxwxxxxyxxyyxwxxyyyyiixxyxxxxyhxhxxxxxxxyxyhhhhxxxwwxwxxwwyyyyyxxxxxyxxxxxxyxhxhiyyxxxwwxwwwwxxyxxxyyywvxvgwxwxxwwxxxxxxxxxxxggxxhvhxxxvxwwwvwhwxwwxhxvxxxxxxxxyyxwwxwwhhxhxxxxxxwwxxwXxhYxhhxxxxxyyxxyyxxxxwwwxwwYIxhXiYxxxxxyiYxwxiwvwhxvwwgxwgvwXxxxxwhIyYhYhxhxhyyxxYyyiwwxhwhywihwiYiiiiwhwwwxWixxyiwxgxghhxwxxxwgXhhiywhwxwyixxihYyhhhigxwxxhhwWxxyxxihwxwvvxxxgWwxhxxwxyxxxyxhhihhxyxgxiXiwGxgwXvhgWwwwgwwwxvxwgwxxxxhixhixyxxxyxxxwwwhxgwgwvxwxhXgVhhhhhYwxxxiiiyyxXwgXXhhwyhixuxxxxxyiixxhhvggxhxvfgwwyvgivwvWhwhgwvxhhihxxwXvxvxXxwwxwxxxxxxhhyxyyxxvwxwwxwfvwwwyhhxhxyyyyyyxxyxyyyyvhxyhxxxgwvxxxxxiyyxxxxxwxxxwwwhxxxxhiyixiiygwwggwxxxWwvhuyxxxvxxhxwxwxwwwfxwwxvxxxhxwxxwxxwwwwxwxxwwxwxggxxxxxxxhxxxxxwixgxxuxyxxwxxxxxxvxvxywxxxxxgxvxxwxxwxhxxwygvxxxxxxxxxwwwxxwxwxwwwwwfgxwvwwgwxgxxyxxwxxxxxxxxxwxxxxgfwgxgxxxxvgvxvwvwvxvvxWgvgxwwxxxxxxxxxxxiiiyyxxywxwxwwwwwwwgxwxwvxxxxxxwghwwxxwwxwxwxhxxxyyyxxywxwxwwwwwxxxwwvyyyyyxixxyyhywwxxvwxwgwwxxxxxxxxxxyyyyywwwgxxxyyyyzxxxhyyyzzxxgxgxvhxuxxxwwWxxwhgwwhggvxwyxwxxxxgxgxxxxvxxxxihvwXvwvwifwggwwfhXxhhxxxxxwwxxwwxxxxxxxhhhhhhxhwxwwggWgxxgwwwxwuhgxhxxwwwxxgwxWwxghwvwwihgxxxwxwxwywwwwwXXyXXviyyxvvGYYyiYiYvWWwvwhxwxWwwwwwXWvwxxvxxwWxxxxxxxYhhXihvwXwhhwuwxhxgwwggwgwvhgxhxvfxvfvwwwxgxhxwvvvihxXhXhwXwwxxuhvWvxxxuwxxhHhhhwgwwfvggwfxxhgxwfvwxgwgxwwgiiiiihXYyxhhhggwhwvxhxxxxXwwxwxvfwvwwxxwxhxxxfxwfwwgwgiiyxiiXggxxxvxWwxxuggxxxwgxxvWXvwhgwwwgwhwvhhyyxYhwgwwwvxvhwxfwxwwwwxwWwwgghvwgwwgvwwwwxwfwvgwxwgxhxxxvhhxiihiXhxhXxXxywvxvxwhhxxxghgvxgXxxwxvvwxwghuhuWgggxxxwgwwwvywghxhxvxxxvwvfhhxxhhXwhxxgwXXhihwxwwxwxwxhxxwghgwhyvwwggxxxxwwwwxwwhxxhxh)IXHYxxgwvwwxwwhwhXxwXiYxwxiwXxvgxwwxwwihtxiwwHxwXxhxxwg8wXGWXthgegvXwwwGhXvxxhyxHwhxxxwhhxhxYwWxxwxxhhwgwwvgixwvW9YXXIiXuxxhxxHYYxxixHghxhxvYhuyxXw8hiyxxyXxhwxxgwwhghwxhwhfxvhxgwX9YXXXwhxxgwhhYXxIiyYIiYxxxvXwwvhXigxxwhwvxwgghvhvgiyhwxwwwggxvhgvwwxxYhhhXihxgwhgwwwwxwxwvxgwhhYyyYYYhvxxgwwwggwggxwxxxxxxvwggwgvghhxvxxvwvvxxxwxxxhvwvXXxvvwwXwhhxuXhxhXihxwxwxvvvwxwhvxhhxxxxyxxxxxxxxxhyhiixxxhxxxxxxxhxxxhxxxxxxxxxwvhwhhxxxxxxwwwwwwxxxhxxhhhxxxxxxxxxxxhihXXxxxxxyyyyxxxxxxxyyyyyyzzzzzxhhxhyxyxxyyyyyxxwwwxxxyyyyxxxxxyxxxxhhxhxjjjjjwxxxwxwyyiyiiyyyyyyxxxhxhyhxihxxxyxxxxxyyyyyyyxxxxxxxyyyyyyyyyywwwxwwxwxxxxxxxxhhxxxxxxxxxxwxxxhxhxhxxxxxxxxxxiiyiiyyxxxyxxxyyiiixyyxxxxxxwwxwxxwxxxwvxwwwxxwhghwwwxxxxxxyyyyyyxxxxxxhxxhxihhxyhWwXwhgwxxyxxxxhxxxxwxxwxxvxgwhwxwvgwxwhwhgxhyyhhixxhxxhxwxwwwyyxxyxyxyyyxwxxwxxwxxxxhhhxgwvxxxhhwYYyYYiYwvxwwwxhwhhhhyhhhxxxxxxxhhJjJJjjhxhhhwxxwxxxxxwwxwhwxxhvXxhXXhxhhxvxwxwxhYiyYYYYvxwwvwgxwgvxvgggwxgwwxhvhxXXhxxxxxxxhxxxxgYiyYYYiwwvxhvxvvvxxxhhhxxxxxyyyxyyyhxhxhxhxxwwvwgwiyyiiiyhhxXXwxwxxxxwxxyxuhwwwggvxhhgwyyyyyyxwwwwwwxxxxxyhxhhxxxyxyxxxxxWhxxxggwxxyxxxyxyxxyyyxxyjjjjjyyyyyyxxxxxiyyihiyxyyyyyyyyyyyy[[{[[yyxyxxyyxyxxyxxyyyyyyyjjjjjxxxyxjjjjjxxxxxxxxxxiiyiiixxxxxiyyiiiyxwwwwwxwwwxyxyyyiixxxxjzjjjyyyyyyxyyyxxxxxxhhxxxhhxhxxxxxjjjZZxxxxxxxxxyyiiixxxxxxyxxxxyxhxhxyxyxhvwvxXXvxxxxhxxhhhxxxhxxhXxhXXxxyxxxxxiyyiiiyyyywwwxwwxvgwvxxXXxxxxhxxhhhxxwxxwwwYiiYYYiyyxyxxxxhhhxHHxxxjjjZjiyyyiyywwwwwwwxxxxxxxxxxxxxxhxxhhxxxiyyiyxxxjzjjjyyyyyyyxxxxxxxxxxxxxxxyyxxxxwxxxyyyyiyxxxhyhxxxyyxyxhxhxhxxyxxxxxxxxiyyiyxyxyxxyyyyywxwwwwwxxxxwwwxxxyyxyxxyxxxxxxxyyyyyyxxxxyyijiyxxxxxxxxxhhxyyyyyxxxxxxxxwxwwwwxxxxxxxwxwxwxxxxxxxxxxxxxxiiyiixhxhxhxhxhxhxiyyiyxxwwwxwxxxxxxxxxxhxhxxxxwxxxxxxxZjjZjxxxiyyyiyiiyyiyxwxhxhhxxxxxxihyxxxxxxxyxxxyyyyywwwwwxxxhxhywwwwwwwxxxxxxxhxhxxxxxxxyyyyyxxyxxxxxxhxxxhxxyyyyiyxyxxxhywxxxxxhxxxhxhyxhhhxxwwxwwwwxxxxxxiyyiyhhhhxxxwxxxxxxxxyxxyyxyxyyyyxyyyyyxxxxxyxxxxxxyxxxxxxxxxyyyhxyxwwwxxxwwixxiyyyzyxxyxxxxyyyyyyyyxyyjjjjjyxyxxxxxxixyiiiyyxyyyxyxxxyyjjjjjxxyyyyyyyxxyxxxxxxyxyjjjjjxyyyyyyy{[[[{yyyyyyyxxxxxiiiiiihhhhhhhjjjjjxxxxxxxxxxhxhhihxxixxhhxxxxxyyxyxxyxxxyxxyyyyyxxyyyyywwxwwxxxxxxxxxxyyywxwxxwwiiiyyiyyyyyyxxxyyyyyyyzzzzzxxyxxxkkkkkk{[[[[[[{zzzzzkkkkkk{zzyzzlllllllxxxxxxyyyyyyyxxyxxxywwxwwxxyyyyyyyyyyyxyxyxxxxyxyyxhxxxhxxxxhhxxxyyyyyhhhhhhxxxxxxzzzzzwxwxxwwxxxjjjjjiiiyyiyiihxxhxxxyxxxyyyyyxxxxxxxyxiihxhxxwxwwwwwwhxxhhhjjjjjxxyxwwxwwwxwwYYYyyYyhxxhhhyyyyyyxhihxixxxyxxxyiiiyyiixxxxxxxxyxxxzzzzzhgggyyyyyyyhxxhhxxxxxxxxyxxxxxxhvvxwwxgwxwwwgxggvhhhxyixiyyyiyyxhiXhwxgwwvfwxwwwwwxxxxxwwwxxxxwxxxyxyyxxxiyixxxxXWxxxgwvvxhxxwguwhwhwwhhwwIYyYIYYxxxxxxWvvxhXhwwiWvwhXwwgwhhiyxxwhwwvhvhvxhhYiyYYYivwxwxxxxwxxxfwwvggwhxwYhhHXIhwxxhggXhhXhxxxxxxywfgwgwvghhwwhwhxggwwwwwxxxxgvwxWYxvwvhhwwwfYhxXXXhwxwwvfwhhxhxxxxyxxyxxwwwxxjjjjjyyiyiiyyyyyyxyxyxyxhhxhyyxyywxxxwxwxxxxxyyxyxxxxxyyyyyyxxxxzzzzzhxxhhhxyyyyyxxhiiyxxyxxxxxxxxjjZZjxhxxxxxxhhxhhxhyxxxxhxhxhxhyhhhhhhhxhxxwwwxwyyiiywxxxxyyiiixxwxxwwxxxxxxxxxwwwxxwwxxxiyyyiyixxxxxxxxxxxxyyijiyxxxxxxyxxxxxxxxxxxxxxxxxvwgvxwvghhhxxxhxxxxxxwwwwwwwwwxxxwwwwxwwxxggwggwggvhhxxxwxwwwwxwvgwgvhggvxxxxxxxxxxxxxxxxxxhhhxxhhhxxxwwwwxwvxvxWWuxxvwvgXhxxxxxxhxxxhxxyxyyyyxhxXXhxyywwwwwwwxwxwwYiiyYiixyxyxxxxwvvxhXhuhxxxhxxiyyiiiyxhxxxxhxhhHXuhguxhgixxiihxhwhgwwwxxxxxwwwwwxxxhxhxxxxxhhxwwxxxxwwxvhxvgvwgxyxxyyyyxyyxhxhivyWvXgxvwvwxwwwxxxxxxxxxwxxwxwxxwxxxxxxxhxxhyyyyyxhhggwxxxhxvyyyyyyyhxiiyxxxxxxxyxxhxxhhhjjjjjhxxxhxxyiiiiiyxxyyyyyxxxyhxihxxxyxxxwwxwxwxwyyYyYYywwwxwxxxwzzzzzyyyyyxxxxwxxxxxxxxxyxwwxwxwwyyyhxxxxxxxyyiiyxxyyxxxxxyxxyyxxhxhhxxwxyyyiixxxyxhxxxxxxxyxxxxxxxxyxyxhxxhihxxwxwwwxxwyyyHhxhHiiwxxwhhxwwhxxhxXiXYixhhhxxhxwxxxxxy9iyY9YivXxhXxggxhwwxxwxxhwhhhwHhXHhhxwXXxgxwxgwhxxwIhxXHXhwhxwxhxwvWvxvvXXxwyyyvhhxxhxvXhHHxhxxixxhhxwxxwxxxwwIyyiIiYxhwxwvwwhxwwxIYhhhhxxyXwxwyxiixhixivxxxvxhyYYxyiixxwywyxhxxyYYiyYYwwxxhhyyxxiyyyixiywwxwxixyxhwxxhwYhyxyhhxvwxxwhuwxwxwwwxwxxyxhxhhhxxxxyyxxxxxxwwhwwwwxwxxxwwgxxgvxxxxwxxwxxxxhxxxwxwwgxwxhwwgwwxxxxxxxwwwwxxwxxxyxyyxyxxhxxxxxhhwxxxwxggwxxxxxxxxxxxxyyyyyyyijiyxxxxxxwwxxwwwwyyyyyyyxxxwwxxxxxxxxxhhxxhxyiiiyyxxxxxxyyyyyxxxxxyxxxxxxxxxxxxxwxxxwwxwwxxxxxxxxxxxxxxxxxyyyyyxyyyyyxxxxxxxyhxyyxyyxwwwxwwxxxxxxxxxxxhhxhxxxxxxxxxxwxiyiiixyyyyxxxyiyyyxxxxhxxyhxyxyxxxxwwxxxwwxxwwxxwxxyyxyyxxyyyygwwwhggwwxxxxxxxhixxxhxxxxxxxyxxwxwhwxwhwwwxwhwuhxgviiiyxxxxyxxxyxxxxwxxxwwxxxxxxxxwxwwxxxwwwwwvxxwxgvfhhxhhvwgxvvXXxXhxhxyyhixxhxwgwvwwxwhvxhhwxxwxxxxxwxwxwwwxwhhxhxxiwwxwwwxvxwwggvWggvuhvxwwxxwgxxvxgxyxvvhwyywgwfwvxxiYxhixwwwwwhhxhxhXxxxvggIXYYHgxguxhvwWYhvyyhxWyixyyXxxhwxgwwwxxwwwv9XYYIxxgxwwviivxyhgGgxwxxhhwWxXxxyxwYWhvxxhhXhxgxhuywuVHwgIhHtxwXxwwxxyhxxiyYxwgxhvhfxwiXyhxIwhxwwwxhwwxxuwWwwghxvhxwvWIXXY9wxgwxhihhXhYhwvvwxvwxgvxxxxxxXXxhhvgfggwggvgghgwwxwxvxxxwhwhwxhxxwwxxxwwYiyYYYixxxYYyYiYYugwgxgwvxgxwvxhXvXwxxgvxxxvhgwWXwhwXvgxwxwwwwhwgwxhghhxHhIivwwwxvghxgxwhxxgwhwxwwwgvvguwxggvxwwxhhyYXiyixwwwxwwwwwxvgwwvfwwxxxwwxwwxgwwxwwghgggxxwvxwwwwwxwwiYiiiiwghhxvwwhhgwwwvxwxxgvvxxwxwwwyYhYyXgwfggwwfgwwhwxgwviHhhiXxwgwwxvwwwxxihxhhxhxwwgwxwXyhyihguGgvhwyXWvxXvwxwxgwwwxgygxxyxwwwxyxwwxwxxxhhvhywvXxxxwhwgxxhghxhxhhwxwxxwXXxihvhggwvggwgfwxxvxXxwvvXyxxxxxxwxhwxxxxxxyxxwwxxwhhxxxvwixyxhhhhihhwxhwgwxxWgvxxviwxvwufXwwxyyyyiyywxyxwwwwwxxiiyyyxxhxxxxxxxxxxxxxxxxxxxxxxyxyyxxxxyyyiyxywwxwxwyyiiyxxxxxxyhxxvyhuwwhwxxxwwwgwiyyiiyyxwxxwxxxxwxxhxxxxhhhhhxxyhxhhixvwwwwxxwwgxhxxixxhgwwgxyxyxyvhvhvxhhxxyxxxxxxxxxxxxxxyxhxxxxxxxxwhwhxXxxxxhvwyXvxxXwxwxwhxgwYYyiiYYwiwwwxyxxxxiyhxixwxhhwyxghwhwwhwxwviwhxyvwyvwxvYYhiYYhIYiiYiyxwwywgwvxhwxwhghxxxyxXxXyxwXwiwwxxwwxwxwxgxhwXhxYiHhxxwvhxwxhghgxhxxxxxxwwwwyyxyyyjiyiyxhixhxyxyxzyiiywwxwwxxwxxxxxxxxxxyyyyyyxxxxyxxxxxyiiyyxxxxxxxxxhhxxyyyxwxwhfxhwxxXXXxhhhxhxhhxxxxyyxxxxxxwxxxggwxwxxyxxyyxxxxxxxxxhhhhxxwwwhhgwxxxxxwxwxwwxxxxxxxxxyxxxyxyxxxxxxxxxxxhxxhvwhhgwxxxwxwxwxxxxwwwxxxhyxiiyiyxxxxxxxxxxyxyxxyxywxxhyxxxyihiihhxzzjzzxxzzyywxxxxiyyxyyxxxwxxxxyyyxyyyyxxxyzzzzzyywfwxwxxxxxxxyhyhyyxiyhxhxxxyiiyyyyvxwwxwxxxwxwxxywwwyvxxxxXxxvwxwhyxxxyxuxvxwxhhhhyxhxyxxxihxhhyyyyyyyxxwwxhwxxxxxxwxwxxwwyyyyywwxwwxxyyxyyyiiiiyyxyxxxxxyxyxxhhhhhhyyyyyxxxxxjjjjjxhhxxxhxxhhhxxxxyhihhxyyyyyyyxyyyyxxzzzzzxyxxxxxxhxywwwyyhxiwfwhxjXhhhiivyvxxwvywwxwxvxgwxiwxhwvxwxwvyvxywyyhyyjIiiijixwvwhxyvxuxwxhxhxxwyxxxyiXxxhyixfxwhxixhxyZIiiijYuivxwxywwxvxwXxyxgxvxxhwxhgvxvxxwhxiyxiihvxwwywXxxyxxyxhwxxyxxxiwwwxyyyyyyyiwhxhwxyxxxxhhhixxxyxyxxxygxvwhwxxwyxixhwxyyyyyyyyyyixwhwhwxhxxxxxyyyxxwhywghgxxxxxxyyxxxwiyyyyyyyxxxxxvgwvxfwgxvxyxxxxxxwxwxxxxhhiixxxhxxvxywxXguwwwwwvxyxxxxxxxxyyxxxxxwwwxxxxxxxyxyxxxwwwxwwxgxgwyyyyyyyyyxxhxhixxxwxxxxwwywiwghhxxxhxhxwwwwxwwxxxxxxxhhhhxixxxxxxxxxxxxhxxhhhxxxxxxxwywihghxxxxxxxxxxxxxhxhxxxxxxxxxyxxxxxiYXhYhhyhyxyxyxxhhxxxxxyxwwwxxxxxhxwhYwxxxxyxyxyxxyyhyyyxxyhxxxxxxxvwhxivwwwxwwxwxxxxxxxxxxxyxxxxxxxxxxxhyxyihyxyyXwxwhxhwiwwhxyiiixxyxyxyyyxyXxxyXyyyyiwgwxxxwxhyZzzzjiwxhxwyxhwhyhxhyyXiyjjjyyyxxxhxiyyyYyyxyxyxyhXwxxxhiyXyihHwwvgvhwwxwvhwwxwvxxxhxxxxxxxxxxxwxwxxwxxwwwwwwxyxyygwwxfwvgvvwwvwvuwwwxxxxxxxyxxhyyyyxxxwxwwwwvwwvwwwffhwxxxxxyxxxxhxyzyyyyyyywwwghxxxwxwwxxyxxihxyhyxyxixxxwwxwWxhyxxyxyyyyyyyxyiixxwxwxgxhxxvxvvxxwwvwxhwhWxuyixhhxxhhxxwwwwwxxxxxwxxwxhxxxxxxyxyxyxwwwwgwgxfyyxyxhwxwwhwvhxxyiyxwgwgxhhxxwwwxxxxxxxxhhxxxxxxxxxvhxxhhvyyyyyxhhxxwxxwxwxxxxxwwwwwwwhwwxwxxxxwxyxxwwwwwxxwxxvggxxxwwxxxxxwihwxyxxwxxxxhxiwxwyxvxxxhxhwvvwwwxxwxwxwwhxxxxwXywxhvhxxhhxxwwwwxxwxwhvxgxxvwhWwwwuggxwxxwhvwfvgwhvwwXXxwwxXixyxiyihxxyhhxxhxiwihXxvWxxxxxhhihhxxgwwhwhWgwwxxwgiixhxxhgwwvxWgwhXgwgxXHhvvWxxxxhhiyxxxxxxyiyiwhwwhXhxxxxxwwxgxwggwxhxhhhwhhwXhwfVxwxxxwwxhxhyxyyxyyyiixxxxxhxxxyyxxxxwwxwwxxxxxxxxxhxxixxxxxwxxxxxxxwxwwxwxwxyyiyxxxxxxxxxxxyyyxxxxxxxxxxxxxxxyyyyiyyyxxxxxxxhxyxxxxxxxxxxxxwyxxwwyyiyiywxwiyyiywwxxyyiyyyxwxwwxxhhyxhxxxxxxxxxxxyyiyzyxxxxxxxwwwwxxyiyyxxxiiyiiyyxxxyiYyiyxxhhxhywxxwxwwwwwwxhxxxhxxxwxxxxxxxxxyyzijzyxyxyxxxxxyyxxxxhxxxxxhxwwwwxxxxxzzzzzhxxxxyxhxxhxxxxhxxwwxwxwxxxxxyyyyyxxxyxyxxyyyyyiyyjyxxhxxxxxxxxxxyxxhwwxxywxxyiiyiixxxxhxyxhxxyxyyyxxixwwxwxwwxxxxyyyyyyxxxwyxiyxjzzzzyyxiyyihiyyyyyy{{{{{yyiyyxxxwyjzzzzxxxzjjjjxxxyxyyiiiihivvwwxgwwxwwwuhwhwgvxxxxxwwwyyxxxxxxxwwwwwxwhyiyxxxhxvgxxhxxxhxwywxwhwxgxxwyyyyxihxyxxxxxyxxvhwXxhxxxxwxXhxHhhXwhxwxgggxhxxwhvxwhhgwxwwwwwwhwxwhhIiyIiiiwwxxwxxwhwwXxhXXwhwhxgwxxwwxxXXxHhhhyyuwixgghvyxwwgwxhhXXhgxwwxvwgxxvwxxXwgwhwxYii9YYixhhyxhxxixxiiyyyxxxzyyiyxxxxxxxyyyyyyyxxxyyiyyxwxwyxwhxziyyiwwxwxyiyyiixxxxxxxxyxxvvgvghxgwxwyxyxiyyiyixyyyXXhxXjzzjjjyxxwhhhyhiyyiyixxyxyyYiiYiYyxxxxxyxxxxhXXxhhxxyxxxyxxxwywxxzzzzjyiyyyxiyixxyyxxywxyxxyyyyyyyyzzzzzxxxxwxyyiyyxxhxihxyyyfvwgvvgxxwxxyhxixxxxxxxyxxxxxxyvguhgyhwwyxxxyyyiyyiiyxxwgwhhiyxyyyxxxixhhyhxxwwwxxxxxxxvwvXXxhwwxwxwxwwwwXxXhhhvwxvxwwwgwxxvgwwwhgxvvwgggwhgvvfggvwgvwvxwwhgwgwgvgxvxvvgfwwwwxwxvvghwWgWWgvvgxxHhxXhhXwgxgwwXwwvxhxxxvhwwvhvvwhggwxxyvxxwvhwwxwgwwgvhvWWwvwxxuwwvwvvgwxXhxHXXhgwwhgwwfhvwwxxxgxghwwxxxxxxwxwwxxxwwwwxxxxxxwwwwwxxhxxxxxwwxxxhxxxxxxyxyyyyyxxxxxyiyiixhxxxxxxxxhxxxxyxyxwuxwgvvgxxvwgxvwwwxhxwxxhxyyxxhixxxxxgvwwyxwwxyxxwxxxxgxvwxxwxxxxxxxwwwxxxwxwxwwxxxxxyyyyxxyxyxyyxyxixhxxxvxwwwxhxxxxxxxwxhxxh{k{{{[{{{zzyzz{k{zzyzzllȌȌiyywxxxxyyzwxxxxyyxxyyyxxihyxyyxxxyxhyzzzzzxxwxxwxiiyiyxxhyxhxyxxyxyxxxyyxyyxyxzzzzyyyyyhixyxyyyxwxxwyiiyiyxxyyxiYYiiiyxywwxxxhxxyyjjjjjxxxyxhiyxyyxxhyiyiixxxxyzZyZzxyyxxiiiyyiixhxyyyxxhyxzzzzxxwwxyxxxzyyyxhxyyxxxyihxyxyyyxiyyzzzzzwxxxxxyiyiixwxxxxyxxxyyxxyyyxyyyyzzzzzxxyhyxxxyyxxxxyyyyhxxjjjjjhxyxyyxxixxiiiyxxhxzzzzzyxyyxxyxyxxyyyxyiiiiyixyyyyyyy{{{{{yyyyyxyyyzzzzhxxyiyyyywxyxxxyxyxyxxxwyxxxixxzzzzjwxxyiyyyyyxwxxiyhhxxxxxyyxxyvxwxwxvhxhWgvWvgWggxwhwxxwxxxvwhwhxwxghwwxxxwwxxwwwwwhxwwywihghwxwxwwxxxXhxXhhhHXxXhhhwwhwxfxhxhhXhhixhhhyyxwwgxxwxvxxhiXXhwxwxxvgxwxfwXhxHXXXwwwxxwwxwxwwhwgwhvvhfxwfwwgwwxxWwwggwxxxwwxwwywxxyixyxxyywwxwwxxxxxxxyxxgxxhhvxwwxxwhwhxxhxywxwxwwwxxwxyyyxxxhxxhxxxxxwwxwhxxgxwyxxwwxgxghxxwxwxxxxwxxxhxyyyyxxxxxxxxxxxhxhxhxyyhxwxwiyiiyxxxxxxxxxwxwxwyiyYixxxxiyyiyywxwxywxxxxxxxxxxxyyyiyyyyyxxwwgvfwhggvxxxwyxxxxxxxxxwwwxxxxxxyxyxhxxvggxxvhwgvhxhxyixyxxxxiyyiiyxxxhxihxixxxxvWvXxhwxxxxyyiyyxwxxixihxxxyxyyxxyxjjjjzxxxxxxxiiiihixxxwxyyyyyyyxhyhhxyyyYyYYyyyxxxxzzyzzuwxvxvvgwwgvxhfwwfgwwxxxxxxxxxxxxvwxhwwxwxxhxxwxxwwxwwxxxyxwggwvvxwwxwxwfvwgwxwxwxxxxxxxxyxxxxxxyxyiiyxyxxxxwwwwxxxxxxxvwxwgxxvwwWvWghvxwxxyixhyhhhyxxyhxxhxxhXXhhxyxxyxywxwxxYiiYYiyxxxxhXXhiyyixhhixxyyyhyxyyyYyYYiiyxxxxxxihyyxxHHhXyiyyxwxwwwwwxxxxxxxxxxxxyyyxxxxxxxzyjjyhyxxxxxxxxxxhxxxwxyyyiyxhxyxwxwwwyyyxhyxxyxyyxyxyhxyhxxxwxxwxwyyyyyHhxXXXhgxxxwhhxxwwhxwXhxhvxvXXwwwywxwwhwwwhxx9iiYYYivwxwxwhwwxvgxxggxhxXXhwwgwxxXxwgxwwxghwwHhxXXXXxyxvvhxXWxwhxxhxxxXhHHxxxwxxwxwxwgwxxwgwhvxwvgwxIyyIIIiyiyYixxxxyxxxyyxxxyxhxhixxxxxxxxxywwwwyyiyxxxjyziixyyxyxyxyyyxyyiyyyyyyxxxxxyyyyiyjixxyxxxxyyyyyxxxxyyiizyyxxhixxxxxxxxwwxwwwxxxyxxxixyyyxyyxwwwwiiiiyxxxxxxxxyyyiyxxxxxyyyyyxxxxxxxxyyyyyxxwwxwwwyxxxxxhxxyyyyyyxxwwwwwwwxhxxxxxhxhyxxxyxhxhxxxxyyyyyyyyyyiyxxxxxxhhyhxxxxxxxyyiiyxyyxxxxxxxiiyYyxxxxxyyyxxxxxyxxxyyxyxxxxxxxxxhxwwyyyyyxxxxxxyyxxxxxxwwwwxwxxxxyxhxyyyhxhxxwwwxwxwxxyxxxyxxhyyyiyxxhxhxyxxxxxwxxxxxxxyyyxxwwwxwwxxwyxxxwhiyyxyxxhyxxyzyiixxxxxxyiyzyyyxxyxxxxxyxxxyxxxxxiyiyxxxyyyiixwxwxxxxyyxxxxxxwwywygwxxxyyyiyyyhyhyixxxhxxxxxiyyiyiyixxiXxxxhxhhxyxxwxxwXyxxxwxxxhxxxxxxxxwwygxxwyhyxyyiiyixwxxwhxxxxxxxxxxhxyiyyyyxyXxhxhxxxhhxhxxxxxxxxxxxjZjjZxxjjjzjxxxxxxxyxyyyyyyyxxxxxyyyiyiyxxxxxxxxxxxywwwxwxwwyiyyixxxxxyiyyihxyhhhxxxxxyxyxyxyiYIYiiwwxvwxxwywhhgwwuxxhhwxwvxvggWwvxvxxhhwgwwhgYYYiiYhxxhhwhghwwwwxwwxxhxhvvxwgxwwwvxvxwwwhYXhihwvxvgWWwwvvwhgwvxwxxhhhhhhxhvwwxgwwwwxwxgxgxgxxwwvwxwwxwfvhIyXiihxghgwwxxxxyxxyxwhxxxxwwxwxxyixyixyyxxwhxxwxxhxyyyyyyywwwxxxwwxxxxxvywhyXxxxxxxxiyxxyxhxxixxxxxyxhhyxxxxxiywwxhwxhxxhxyzzzzzixhyxhhxxyxhhxxhxxxhywwwxwwwxxxxxxxxxxxxxxxxxxyywwwwwwxhxhxxyxxxxxxxxxxxhhxhxxxxxxxxxxxxxwxxxxxxyiiiyixyxxxhxxxyyyyywwwwwwwwyxyyyyyxxxxxxxxxxxxyxxxxxyyyyyxxyyiiyxyyxyyyyxhxhixxxxxxyyxxxxxxxxxxxxjjjjjxxxxyxyxxxxyxyiyiiyyyhxxxhxhhxxhxhxhxhxxyyiiyxxwxxxwwxxxwxxjjZZjxxxiiyiiiixxxxxxxwwxyxwxxxxxxxxxxxhhxxxxxxxxyxxiyiiiwwwwxxwwxxxhxhjZZjjxxxhxhxhxxxxxxxhxhxxxxwwwwwwwxxyxhxhxyyiiyyxhhyhhyiiiyxxxxxxxxxxxxyxxxxxxyxxxxxxwxwwwiyiiyyyxxxyiiyyxxwxxxxxyiiyywxwyxwxxiiyiiiixwxxwwxxxxwwxwxxwxxhxyyiiywwwxwwwwxxxyyxyhhxxyhxxxxxxxxxyxxxxxxyyyyyxxxxxxyyyxhhyhhxwxxxxxxxxxxxyxyxxxyyyxxxyYyiiwxwxwyyyyyiyxwxxwwxwwiyyxxhxhxxxiiiyyxxxxxxhxxxxxxxwxxxxxxxyxxxxxxxxxyiyyyxyyvxyvhhvxxxxxxxxyhxxxwwwwwwxxxxxxhiwyYwxxyxxyyxxyxyyxxhxxxxhhxhxxyyyyxiyhhwwwwxxxxxxyxxxxxxxxxxxxxxxxxxiyxxixxxxxwxxxwwyiyyixxxxxwwxwwxyyyiyiixxxxhhxxxhhxxhxxyiyyyxxxwxxwxxxxxhxjZjjjxxxxhhhhxxxxxxxxxyxxhxxxxxxxxxxxxyyxxxxxyijiyxxyxxxwhvwwhxwhXihxwhhwvhxwiYyYYiYwgxxvxwwwwwxggwgvxuwixwxXgwxwxgwvxvwwxxwxxghfxxuwgghwwviIxhhyXghhhxvwgXxwwgwwwhxvhwwwwxxxwiYiYyXxvwwwvxhggwgwwwxxwYZyiiiIwwvwixwXXXxxwghwwxxwhhxwxxxwgvxwvwvxxxxhihxhxixXxXyxxxhyyxxxxihxxhixhwwxyhwwwwxxwxxxxxxhxhxxwgxhwxwwwxwxwwxxyyxxxhwwwxwxxhhxxxxxxxxwhxiyxwxxxxxyxxxyxyyyxyyxhxxyyxxxxxxxxxyyyyyyxxxhxwwwwwxxxwxwwxxxhxxxxxxwxxxwwxxxxwxwwwwxxxxxyxxxxhxxhxiiixxhxxwwwvxxhgwxwgwwhhxvyhxhhxviYXYiYxwwvxwxwwhvvhwgwgfwvhvhvxhhwgwwxxxwgwxwxwwwxxwwxwxwwxxxvxxxxxwwwiYiiiivwhxxhwhwwgwvhxhwwxwgxgwwwwwxxwxwwxiYXiihwxwfxfwggxvwgwwxxwwwxYIhhYYwwhwhwhxxwhhhhxxhyxxwhwxwwxWhhxxhxxxwxxxwxxxxxxxxxxxxyxiiyiixwwwwxxwyyyyyxxxxxxxxxxxhxxhxxyyyyyyyxxxyyyyyxxxxxyiyyixxxxxyyxxxxyxxxyxxxwwxxxwwivgyxyyyyyxxwywyxwxxxwwwxwwwxyyxxhhxhxxxxvxxwxxxwxxxxxxwxxwxwxxxxxyxyhxhxxxxxxxyyxxxxwxywgxgxxxxhxyxyxyhhxihxxxxxxxxxxwhwxwxxxxxyiyxxxxxxxxxhwwhxxxxxxxxwwwwxyxxxwhxxxxxxxxhxhxxxxxYxwyiwxyyxyyxxxxxxxyyyyhvhixxxxwiwyxiyyyxxxxyxyyyiyiiyyxwxxxxxxxwwwxxiyyxxxxyizyyxxxxxxxxxxwxwwxyyyixxxxxxhyyhyxxxxyxyxyxxxyxwwxxwxwyyyyyhwxgxxwhxxhhxxxxwwgwwvxxxwwxxxwxwwwxxxwxwwwxhhxwwwwxwxxxhxxxxwhwhxwxxwwwxwwwhxxyxxxwwxwxxxxgxwvxxxxwxxxxxxhxvXxgyhwxwwxxwxxwxxwwxgwxhyiyyixwxhxhhxxxyxxxxxxxhhxxxyxxxxyyiyyyxxxxxxxxxxxixxiyyyxywxyxxxxyyyyywwwwxxxwxxxxhhxiyyxxyxhxxxixxxyxyxyxxxxxxxwxwxwwwyzgywXyxxxxxxxxwwxxwwwxxxxhhyyiyxxxxxxxxwhyhxixyyxxxxxxxxxxxwwxwwxxhyiyhxxxxxyxxhyxyyyixxxxxxxxxxxyxxxxxxwxwxwXhhiyXhxYIhhgxxxgwhxwvvxgwXXxvvgvggxgvwghwwxXgvhxxhxwwXxxhhxIYxiYiYhxxhxvhgvwhhwxwwxwxxwwwgwxwhhxgvwwghhgwgwxxwhhxwXhyhYyiwgwxwwxhhxgvwxwXxxwhxxhxwXvxvxYxwxhxwhxxwwgwxxhxwwwxwxwwxxfwxvwwhggXYyhXhihhvxxwxxwvxwgxgwwwyyyxyxwwwxwxxwxyyhxxhhxhxxxxwywwwxxhhxxxgwwgxwgvwwwwwxxxwxxxxxwwXxwwggwxhvhhhvxxxxxxyyyxyxxxxxxxxxwwwwwwwxxxwxwwxwxxwvxwwhxwxfvfxxxgwvgghgxyxyxywhwxwhhxxxyyxxxxxxxxhhxhhxhhxxwwwwxvwgwyhxxxixxxxyxiyyyyyyxxxwwwgwxwvwghwxxwxwywxxxxxxxwxxxyyxxxhxhxxxhhhxxxgWwxwxWXwxxxyyyyyyyjjjzjxxxxxxyxxxxxhxxxxxxxxiiiyyhhhhhhxxxiyyiiiyjZZjjxhxhxxxwwxwwxwwxxxyxxxxxxwxxxxxxxxyhxxhihxyiiyyyxyxxxxxxxxxyyiiiyxxxxxxxxxxxxxxxxxhyxxxwxxwwwwwwwwyyyiyxhhhhixxxxjjjZjxxxxxxxxxxhhxxhxxxhxxxxxxxyyiyiiywwwwwxxyyyiywwxgwwxwwgihxhhYYYiiYxxwgxwhwxxyxhvXiwxhwxhvvxwxgvwxxxwiIhhiXiwwxxhwxYxxiiiZyiiYIxxgwhwwXwxxhwhxwhwxhwhwxgxxxxhyxxgvhxwxYviYxiyiYxxgvXXxXxhhwwxwxwwhwxxxhvhgugxiyxvwvwxhwIiyIiiihgwwgwwxwxvxxxwwwxwXXhxXxxxxghwwgwwgXhxXhhXwwwwwwxwvgwuhxyhvwwvwxghXhhhxvxwxwwvxwxwgYiiYiYiyixYxhtWhhhihhwwywwxgxywhygyxxxxxxxxxxiYvYxwuWxyxxyvwxvgxwxxWwhXhhXwhxxxwhhhyhwwwxwwxxwwgwhhxHxguXyyywvyxhxxhhxyxxhwvhxxgyyxxxywwxXvXxgwxxxxggvxhXwgwveGYiyIiIYwwwwxhhhhxxvhwvhwvgwhwwgvwxwxxhhxxhJjJjJjwwwhhgwwwwhxwXXhxXhhhvwwwgxxwYYyIYIYxxxiihxixhxxhxxxhXXxhwwwghhwxwwhxhxhhxxYiy9Y9iiYHhhhxvxvwywwwwwwvghwwwwvwxgvxvXwvwwWvxwghhhxhYYYiiYwhwhxxhwwwxxwwhwxwxhxvwhxhxwhvhhwwwvwwxxiYYYiiwxvhwwwwWvwwxxxgvxgxxgwwwwwwxxgwxhxvwwxhhhxhhwvwggfgxwwwvwwwiIyXiXhIYYY8fhgxxvyhvwuhYXwixwwWyXxxyXxgwxgwxxwwxxwxxwxxwww:YZZ9xxxxxwwwhhvhywvXghwhihvXiYyiiiYWYwyxiwvXhhgxXvyvvwgIXIY8whwxwxgwyXhhyYwxxwxxwgxxgwxiIhiiIhxwwwvghxxxXWhiwhwwXIIYJ)xxhxhxiiyYyhxxywwwwxxwxwwxxhxhxxxxxiyixywwxwwxhyiiizyyiyxyyxxxxxxxxxxxxxxxwxxxxxyyziyyyxxyyxxyxwwxxwvvxyhvwwwwxxxxxxxxxxxxxxxxxxwwhwwwwwxxxxxwxwwwwxwxwhhhwixxhyhhxxhyxwxxxwwxxwwxyyyxxxxxxxxxxxyxyxxxyxxxwwwwxwxhxxhxxxxhvxwgwwwwvhhhwxhiXhiyyyyyyxxxxxxxxwxxyiyxxxxxwwvwwxxwhyxxxihxhhyxuxhwwhhwwxxxxvghixyyyyyxwhwhixvwywxyxxxxxxxxxxxxhxxxxxxxxxywwwxwXwXhwvxxhhhwgwwghxxwxxxxxyiYyiyxxxxyyyxxxxxxxxxhhxxxxxyiyyyxxxxyiyyyyyyyyyyxxxxxyxxxxxyyyxxhxxyxxxxxxwxxxwhwwxwhWiYzYiiIYhxyhxhxxyxxhxwiwxyixxvwxxxwhxvwwxgYywhiwwixxxgwiHXXiYyyyYYYiiYihxhhwgwwxxxwgwhxxwxxhxxwyxixhwhvyhxixxyxwxhxxhiXyIiYYwixgxXwxwxhxhxiihihhxxxyiyiixxxxxxYYYYYYyxxxxxxjjzjjxxxyhihhiixxxxiiyiyxyzZyZzxxxiiiiiihwvyxwxxxxxxxxvxuywyhxxxxhhihxxxwxvxxwwwiiiiiiywwwxwxxxvxxxxXxxxxxxvgxhxhxyiiiyyhyhhxyyyyyyyihxhhxyxxxwwxhwxyxxxxyyyyyyyyxxxjjjjjyyxxyxxxxxyyyiyxiiiyxxxyyyxyxyxyjjjjjyxyyyyyyyyyxyxxxxyyyyjjjjjxxxxxxyyyyyyy{[[[{yyyyyyyxxxxxxxxxyiiiiyivxgxhxyiiiiiiyhyhyywxxxxxxxwwvwxxxwxxxixyiihxxxvXxxxxxyyyyyyywwvxywwwxvhuywyxxxxxxhhxhixxxxxhxxhhhixxwhwxwiwxhwhixhhvxwxxwwwjIiYijYxyyyiwxxyxhvxwxvxvxxxwYwyyyYvwwwxxxwhyxxiyyyx[:ZZZ[ZwxvvxxxxxwhixhhhwxiwxxyhjIiiYjYwxyixhwhhxihkJjjjkJhhxihwhxiyxwwhxyxxviyyyiwwxxxwwxwwyxxxgwwhgxxxyyxxxxxxxwxxwxxvxvwgwxxxhxxwwxgwwXgwwgvwgvwvfwxwxwwwxwxyixixxxxxxxxxwwwwwwhgxwwwxvvvwwxwwgvwwwxxxxyyyyyyyyyxxwxxwwwxxxxxxxyxxxyxxxwxxxgwwyyyyxyxyyxxxxxxxxxhxwxxxwwwwwfxwfwghxxXYhhiyyiiiywwxwwxxwwxxxxxxxxxwwxwgvxxwhxxxxxyhhhixuuxwgwwhhhwxhhhxhyyyyyyyvhvhvxhhxyyxxxxxxyxxyyyxxxxxwxwxwxwXhxXixxiihxxwhwhxxwxhxxxxhhxxwwwxwxhxxxyxxxxixhxxxxwvxxwhhxxxxxxxxwxxwxxyixxxyyyyyhxgwwxwwxxxxwwwxxvwyxxyyxxxhxyyxhhxihxyxyxyxxxxxxwhwxwwgvhxvweWxxwhxvhgwvxihhhhvhxhxwwxxyxxxxxxwwxxxxxvhwxhuixvwfhwwwwXWvyghghfggwwvwfgwwggwxxxxwgxwwxwwwwwhhyhhwwxxXvYxewfXhhwhxvhxxxxwxwxxxxxxxwxwwhygxwxxxxyxwxvxhfxfwwwgwxhvhvxWWvxxhfhivfVWhixYixhxhxiixyixyxxhhhXhxxxxxxwxyyxxYiiiiiyxxyxxxwxvwwvhvugXhuxixixhhyxxxiyYiYYyyyxiyyxxhhHXvwxwwxhxxxxyxyyxxxyxyxyxyxwwwhvyyyyxhhhxxxwwyyixxyxxxxxvvvvgvyzzyxxyyyyyyyyyyxxxxyxyhxwxwgxwXvXxgvxxxxxxyxhxxhhhxxxyxyyhXXxhxxxwwxxwxxwxxwxwwxxYiiYYYixxxxxxxvywXWwhhxxhhhxyxyyyiyyiiiyxhxixhxhxxHHhXhxyyhxxxwxxwwwxyxxxyyxyyyxyyxhwxxihxxxhxxxxxxxxxxxxxxxxxxxxgxwxyxxxxhxhhwwxxwwywixxyyxxxxyxyyxxxxxxyywwxwxxhhXhhiyyXixhIxwwwhyhxwwhwwxhhYyyyiyyiIhiiIxvxvxxhhwhwwhxxhwJjjjjwhwgxxhwxwgwyhxwxXYxiHxyYyyyiyyyyyZzzzZyyyxwhXhxgwhwwxYhyYyYyY9xhhgwvyyyyyvgxhhxxxxxxxxxwywyxxxyhhyxyxixxwwvwxxwwxxxwwghgxihxxxyxwxiyyiiyyxXYhhvhxwgvxwxxxhyixxxxwyxxxxxxxxxxxxxxhvwwhhXwuwxxxvvvxhwwxwxwvyxxwxxYYiiYixxwhxxxxhxYvhyhyvhwwwxxvxgxhiYxyYXwvxwgxxxwhwwwxxiYyiiIYwxvwxhvixxxixxxxwxiywxwyhvxxwwwwxwyxwxwhxwxvhhhxiyXhvxxwhfxxxxxxxxwxxxxxxxxZZjjjyyyiyiiiiiyyhxhxhxhhxxhxxxxxxxxxxwwwxxwxxhhxxwxxwxwxxxxxxxxxxxxxxyxxxiiyiixxhxhhxxwxiiyyyxxxyxxxyxhxxxyxxxxjZjjjxxxxxxiiyyiyixwywwhxhxhxxxhxhxhxxxxxwxyiiyywwxwxwjjZjjxxxxxxxxxxxxxxxxxiyiiyyyxxxxxxxxxhxxxxxxxxxiiiyixxxwwxwwwwwwwwxxxwxyyxxxhvxWwwwwhxvxxxxxxxwwwxxxxwwwwxxwwxxhwxhwwwwwxxwwxwxwghfgwgwgwwhxhyyxxyyixyxxhhhxwxgwwwvvxhxwxwhwhxxxhxxxxxwwxwxwxxhxxyyhyyxhxxxhxhwwxxxwxwwwwwghvhWgwxxxhhwwxwxvwxxwxxxxxxyyyxyxxxwxwwwwwwxxhgxxxxxxxxxxwuxwvhggvwwxvxwwggwyyxxwxyxxxxxxxxyyxxxxxxggxwwwhxXhhtXxxwwwwxwwwgwixhhhxwhygyyyxxxxxxxxxxxwXwYhywuXxihxXXwxwvvxxxgWwxhxxxwwgwwxwwhhhhhhhhyIXivuXxxxxwuyxxhhxhxxyxxhwvxxhgxxxwwgwhxhwwxvwxWhwgXwghwveGxhvhhwwuhugggwxwxwxwwwyyyyyyxxxxxyyyiyiyvwwhwwxwxxxwwxxxxwxhXhhXxxxxxhhxhxvwhwwghgwwyyyxxxxxxhyyhhixxxxyxxixhixXvXxhxxxxwhwxxhwxwwygxxxxxxxxxxhyxyyxxxxxyiyyxhxiixyXyyyiyyyxwxxwxxxhxwXxxxxwiyyiyiyxxxxwwxwxghxxhhxhyxyhhxxxxxxxhxxwxxwxwiiyixxxxyyxyXwxvxwwxXhhyyyiyzzzyyyyyxxhxwxhwyyyxxxxxxxyxwwxwxyyyxxxyhxixxxxhggxhyyyzyzyyxxxyxixxwxxxhxwxxxxxxxyxxxxxxxxxxxxyxxxxhxxxxxwwxwwwxxxxxxxxwxxwwyiyiyyyxxxxiyyyxwwwwwxxxxxhxyywxwhxhiXiyYXwiwwwyyyyyyyxxiwihhyxyxhwxhxwihyiywwxwYYhiihiyXYhhihwhwwgxywhwwgxwwYxwhxyyxxxhiixixixxhyxwywhixXyYixwwvhxxxwxwXwhwxhhghvwwgxwwWhwhxxxxyyxyyxxxxxxxxxxxxxxhxxxvwwwxxhxhxhxxxwwwwwxxwxwhuwxwvhhgwxxyvwwwwwwhwvxxhwxxgxwwxwxxwxxxxyyyxxyyxxxhwxwwwwxwxxwwwxwwwwwvggghgwgxxhyxxxwhwhxxwxiizzixyyyxyyyxyxyyixxxxxxhxyiyyywwwwhxhxxxxyYyiiyxxxxxxxyxxxxhyyyxxxxyxxyyyxyyxxyiiiixyxxxwxwwwwwhxgvxvwgxxwyiiiyxxxyxxxxvhwxxxwxwxxxxxxgwgvggwwxxxxyxvWWwgwxwxxxxhwxwwwxwxwxxxxxxxxxxxxxxxxxxxxyyxyyyxxxxwhwhwwxwhxxywxxxxhxxhiyyyhhihiixwxxxxzzjzzyyzzxxyxxxxyyxxxxxyxxxxxhyxxyyxyyxhxyxxxxxxzzzzzwxxxxxyiyiiyyyxyxxxyywyyxhxxwuyvxwxivwwxxyXxhxiiyyhyygxvxxxwwyvxxhhwxiwwwxfhyxxxyvxvxywjIiiijiwvgxxyxhxiyxwhxwxwvyvxywiXhhhjiwwyvxwXxxvhuxwxxjIiiiZYixhyyfxwxhxvxwwxwyhwxhgxhhxxxyyxyyhhhhhhxxxxxxzzzzzxxxyxxyyyyyyhxxhhhyxyyyxxyxxxxxyyyyyyyxxxxxxyyyyywxwxxwwxjjjjjxwwxwwxxhihhyxyiiiiyyxyxxxxvxwwyxhyyyyyyyxuhvxwxxwwwyxwvxwxwxxxwxxxxxyhyxyiyvXxxxxyiiyyyyxxyxwwfwxwxxyhyhyxxxxhhxhixxxxhhhxyhxxhxxxwhwxwxyxyxxwwwxgwvwhxyiyyyyyyxxxyixxxhyxiiixxyyxxyxwwhhxwxxyxxvxvxxwyyyyyyvxwwxwXyxyyyyxhhihxxwhxixywhxxhxixgxwvxwwwhxWwwgwwXhxXhhXxxvvhvvhvxxgvwwxvwvxggwfwwvhfwwxvwhhgxwgwvfhvwfwwwwWgguggvuhuwwggwwwxxwvwwxgvgxwhxhXXhwxwxwxwwwwwgwgwvhxxvxwwggfgwvhhxvvwxwvuwwwwxxvhwuXvuggxuwvwhfwvgvvhhxhhhhxxxwxvvvwHhIhGtWxgxxvyXewXHhvxhhwXihxxyyXwXwgwxxxxgxwhwwxgw9XIYHxwxxxgxwXxvxxxwvwXWhvyihYvHhXxxyhwXHivxihYvXXwggvxwvvWHX9XHvhhgxihyxiyXwiwgvhxxWwxXXyhyHhwxvxvWxwhhHvWWxwwxwhwuwgHYHY8wxwvgxYyyYYYhvwghhxxxxxxxuggwwwhxvwwgggvhfwvfwvwwgwwhwxwwxwhwhwgxwwwhuhhxIhhXHYhwwwwxxxYiyYYYYhXihxgxgwhxvwXvXxwhxxxxwwxvvwxghgvhwXhwxuxxxvwwxwwwYhxHXHhwwhwXYwvxxxhxwghxwwgwhxxgwgxwwWxwhhvhhxviXYYyYxwxwwwxxvwxxwhfxwgggwwgwxwxxwWwxwghghuwxwwwuhwwwuhhxvvvxwfYHyhXiYgwwxgvhhYXxwwgxxwvvxxvhhxxiYyiIiYwwxxwhvvxwgwvwhvwxxwiYziYiIwgwwwxxwwgxwxgwXxhXyhhxwxwxwghxxhwywweVhhyhhwwxgwwwxxwwwwvgxhyxxxxxxwwwwwwwXhvxhwyvwfgxxyxxvgghwfggwwfwvXgwyWhwghwwxxxhhhhhgxvhhwxxvwxhxWxxwvwfWhxixxwhwxxyxvwwxxwwxyxhxwxwhxyhwwxxxxxwhvWwhgWwfxwxxwhwwfvgixvhhgvfVWyyxyixhxvwivxxghiyyyyyxxyxxxxxwwxwxvywywhxhyxxxywxxyxxgwxgvhwvhggvxxxxxxxxxxxxyyhhhhxxxvxvxxWhuyhxxyiYvxxwhxhxhxwyjjjyyyyyyyiXxxiYyxyyywhxxxhxxwxyZzzzjwhxxwywvyxxxhvyixhyiXhxyiyixxxxxyyxiyyyYxxyihhxwxhhxxYxixYHxxxxxxvwxgwhfwhggvwwwxwwwxxxxxxxxxwwwxwwwwwwwhxxhxwhfwhwvgfgwvgwgwgwhxxxxxxxxxxxyhxxhhhxxxwwwwxxxhxhxxxxxxxxvvXvvXwXwwxxwwwxxxxyyyyyyxxxxxyyyxyxhxgxxxxhxwxwxxxxxxxxxXywyhwxxyiixxxxxxxxxgwxxxwxwwwwhwxhxxyyxxyyyyxxyyixgxxxwwwwxhxxhxyxxxzzzxxwwxxxxxxxxxyxxwwxxxyhxhxxxxxwwxwxghyxxyyyyxxxxxxxxxxyxhxxxxxwwwwwxwwwwhxxyxhvWwwvwXxvxxxxxxxxxxxxxwxwxxxhxwxxxxxvxfvwwhwwxxxxxxxxwxvxgwwwgxhxgwxxwwwxxiyyyxxxxxxyxyyyyxxxxxwxyxxwgwwggwxxxhhwwxwwxxxxwwxwhwxxhvxxxxxxxxyxxxyywvxwwvwxwxxhxhhxxxxxxxxxxxhxYhxXvxgvwxxxxxxxxxxyyxxyxhhxwwwxwxwxhxggvwxwwwwyyyyyxxyxxxxxxyxxxxxxxyxxxxhhxhhxiiyyyxxxxxxxxxxwxxxxyxyxxyxwxxxyhxxhyiiyyhxyxhxxhxhxxxwwwwxxwwxwwwxwxwyyxixxxxxxxxyyyyyyyyyyyxxxxxxxxxxxxxxxywwwwxwwyiyyyhxxhxxixxxxyyxxxxxyiyiyiiwwxxwyyiiyxxwxxwwxxwwxxxwwxwwhhhixxxxyyxxxxxxyyyiYiiiiwwxhwxhxhiyxxiyyixxhyYIyhYhhiyxxwwWwxwhwvxhvhxwwiwwxxxxXwxhgxwwxxhiIxXhYYYxxyyixwxYwyiwhiwyihhXxxxxxwggwgwxwgvhYyhhhihxxhiwxyyyiyyxxxyXxhXXyxjzzjzzxyxxwvvhvvwwxhhvyyyiyyxxxiiiYiiyyxxxyhxxXhvvvwhxxyxxyxxxxxyyywwgxhwyyyyxywxxxxwyxxxyxyyyyyyxxxxwwxgxWyzzzyyzyxyyxyiixxwwxxxhwhvYwhxWwwxxwwwyyyxxxxhxhxxxxyyxxXXhxXxxxiyyiiiyxxxxxvhvXhwXwxxxhxhxxhxxxyiiYiYixxxxxwwxhhyyxyyhHXhHwyxxWxxxwxxwwwwyxxxxxxxxyyywgxwhxxyxxyyyxxwwwxwvvxhxxwxxxxwxxyyixxxxxxyxxxyxxxxxxgywxhwxXvxxyxYgxwxxwgxxxxhwjzzzZyyyxyyiYyiiiYywxwxxwxwxwxxxx[{{{[wxxxhwgxwxwxxgxXwxhixXyyyjzzzZxyyxyhjjjjJxxiwiiwgxxwgxwixiIihyiIyyiiiwxwywxxxxhxxyyxxxxiiyyzxxxxxxxhxxyxxxyyyxyyyyyxyyyyhyxyxxxxxwwwwyyyyyuwwwhggvwxwwxghwxwxxxwxxxxxiyyyyxxyyxxxxvvwfwwxwvyyxyxxxxhhxxxyhxxxxwwwxwxxxvwxwxxxxwxyyxyyxxxxwwwxxxxxxwwxwxwxxxxvwhgwhxwgxxgwvvwgxgvxwwwxxxxhxxxxxxxxxxwxwxwxxwwwwwxxwwvhvhxxxwwwwwwwxxhyyxxwggvfgwwfxwxyixiywwWgwgwxwxyyxhxhwwxwxxwwxxxwwxxwxxxxxxxxxxxhhxxyixxxwhwWwwxghvwwxxwxwxwwxhxxhwyiyyxyxxxhhxyxxxxxxxxxyxhxxxwwwxwwwxxxxxwwwwxwxxxxxxxyyyyyxxxxxxxxxxwwxxxxwwwxwxxyyyyyxiHyhxiXwhgxwwxxhwxxxxYwiywyXwYxxyyyiixxxyXIyhiihhxxvwhhwwXwxwwxghxvwyiwwhxhwwxhwiYiiiiyyyyhyxyiixxxxxyihhXwiwhxwwgwxwhgxwxwwhhhYyXhXizzjzzxxxyxxyxywyxxyyxxyjjzjjxxxxxxyxixxiiixyxyxzzjzzxxyxxxyywyyiiiiiihyyy{{{{{yyhyyhhhxyhxxxxfwwwxxxxxwwwyyxyyiwyxxyiyyyyyywhxxvxxyiyixhxxxvxvxxwxyyxwwvyxxwxhwxxyxhvxxyyyyyyyyixxyyyyyxxxhxhyhihhxxxxxyxxxxyyxjjjjjhxxxhxxwxwwwwwwxxyYYYYyyxyyxxxxyyyyywwxwwwxwwxhihhyxxxxxiiiiiihxyxxxxzzzzzvxvxxwxxwxyxwwvxxywyyyyyyyyixyyixiyyxyxxxxyyxxxxwxxhvwwwyyyhyyyifxwwxwyyyyyyhxxxxwhxyxxvhhhyxhxxhxxijIiiijiwwxhwvxxxxXhwxhgwhxwvhxxvXxxxx[:ZZZ[ZvXxxxxwxvhhxxwwhvYwyyYxvxxxxXwwxhwjIiiijiwhvhxxhwxhghxwhwxwiyyyiwwhwxwxhxxhkJjjjkjwwxwwwxwwxxyywwwwhxwwxwwxxwwvhwwxxxxxxxyxxxxwxgwgwxwwwvwwwggwyyxxyhxyxxyyiyxyxyxxxxwxwxwxwwwwvxxxhhwxwxhhhuWggfhggwvwvgwXhhXhxwwhxxxxxyxxxxxxxxxxghwhihvXxxxxhxhxhhxwgwwhxghxwxwxxxxwvWxvgvxwxwgvXwyhWgixYXivvHxyxwwxxwxxvywwxhxwwxwxyxxhyhvhgxxgxwwxwwwxwgxwWwhghwhhihhvxwiwhXwfWwgwhhwwgxfwwvxhxgxxwxwwxwxhxhxiyyxhxxwwxxwxwxhhhiyhhxxxxxxxyxxXwhvwYgwxxhxhxwwhwxwxhxvxxvxxxxxwwwxxxxxyyyyyyxwwwxwwyyxyyyxxxyxyyhwhvhhxwhxxhxhxxhwwwwxwhyyxxxhwwwwxxwwwhxxxxxxxxxxxwwxxxvhxxygwyhxxhyxxxhyxxxxxxxvhwxvyhxhxyxxxxixhwwvxgxxxxhiyxxXyhxxxxxxxxwhxyxxvxxxyyxyyxxxyxxxhxwwgwwxxwwxxxxxxxxyxwwxxxxxxwwxxxxxxxyxxxxxxxwxxwwxgxzzzyxxyyyyxxhxhxxxxwwhhxhhxXvxvwxxvxxgvwxxwxvhWvxxyuyhhxxxYiiYYiiwwhgwwxggxvxxxwwwvxwvhXxxhggxxxwxvxvxwvhhxhhhhwwxgvvXxxxuwwwxwwXHhhxxwwvvgwxwwgiyyiiiihxhxwvuWwwWvWwxhhvgwgxxxxvhixxyxxxxxxhhhxwvXxxxxhwgxwWwxxhgvhhihhwyhwwhvwgXxxwvxvxhfxgwwwgwwuxXwgxwvgyxixhvhxwxxxxyxhxxwwiXxxgyxyhhhhxhwwwxgxxgwvxhhwxwgvfXhhxXhYhxvxvwxxvgXxxxWvWvxwxuggxxxwxXWxxxYiyYYYixxxxxxwgxhhvfwvxwxwHHxhhgxxxwgxxxvYhxXXXhxxxhXXhhihhxxxwxxhXHhhxgghhxwxxwxxxwwxhxxxviyyIiIYyixXixhwgxxxvwwvvwfxwxhxfgwxwxxwuggwwgwhhxxxhhxxxiXyiiyYWgxxxxwxwwxxwwggxgvwwgxwgvwwxWhgxuvwwvxwvhhxiYxhwgwWwhghwwfwwwfhhxxxwvxggxxxxwgxxvwWXxxwwwvwwxfvxxfwxwxwwhYyhhhi9YXYHgxVfhivhvWXgfxugwvGiYxyhHxhwxwxwxxwxxwwwxw*IYIIxwwxwxwhxeyvxvwvwXfxgyvXhwwWiIihiyIWhfxughwxGixVhfhvfxW9XHXIwhxxxxxhXyyXyHxxxxxwxhxwxgwYYyyYy9gxxwxghgxvhXwVhhfxvxwguX9YYY9whvxwxvwwwwwwwwwhhvxhhwYYyiYYggwgxxwhhhhxwgxhhxwwwwwhwxhvvxxxvgwwguhxxvxxwwwwvgwwihhYiXwwxwxwwwwwwvxxxxhvwwwxwvwgwgxhhiYyiihwvvxwwgvwwvxwwwiiiiihwvwxxwwwwvgxgvfwvxhxxhwxwwxgwxxhyxyyxyyxxxxxxyyyiixiizyjyxyxxxxxxxxxxxxxxxixxxxxxxxxxwwwiiiiyxxwxwwxyyyyyxxxxxxxxyyyyxixhixxwxwxxyxxxxxxxxxxxxxxxxxxxwxihyyuxhxxxxyyyyxxyxxxxxxyyxywhywivxxxxxxyxyyyxyyxxwxwwwxxxxyyyhyxxxxxxxyyyyyxxxwxxxxyyyyyyhyxxxxxxxxyxxxxxxxxxxxxxxxxiyyiyxyyyyywwwxwwwxhhxxxxxxxxxxyyyyxyxxxxxxxiiiyixxxxxxyyxxxvyvxywxxxxxwxxwxfxwxhxxxhxwwxxwxxwxxyxwwfxwwwxwxwwwxxhxhxhxhwhxWxyvwwxwxxwwxxxxuivxhxxwhxxhhgwvxhwwxyxxxxxxxxwxgvxxxxwwxxxwxwwwxxxxxwvxxwggxxxyiiyxxxxxwxwwxxxxxxxxxxxxxxxyhxxxyyyyiyyiyyzyywwxxywyxyyixxxyxxyhyyziyyxxyxxxxxxxxxxxxxxxxxxiiyxxxxxhxwxwwwxxwxwxwxwxxxyxxhxxxxxxwwxxyywwwxwxxxxxxhhyyyyyxxxxxxxxxxxxxwwwxyiyiyiyyiyyywxwyiyxhxxxxxxwwxxxxxxxhhxhyxxxxxxxyYyiyyyxxxxxiiiyixxxxxxxxwwxxxyxxxxxxzzzzzxhxhxxyxhxxwwwwwwxxhxhxxxxxxyhxxxxxyyywwxwxwxxxxxxxhxyxxxyyyiyxxxxxxhxxxxwwxxwxxxxxyyyxhziyyiwwxwwxxwxxxhxhixxyxyxyxxxxxxxxxxxiiyyywxyxhxxxxyxxxxxyyyxxyiiywxxwxwxyyyyyiXiihhwgwvxWwuhgxggwhuwwxxvwxxwwwwwvwxvgxwwxxvxwhgiiYYiYwxxwgvwwgwwywxwwhhhhxxxvvxxhwxxxhhhhwhgwwwYYiiYiwxwwwwwwxivxxxvxwxxwxwwxwxgxwgwwwgwuxwwxhxvwxxvwwwffxiixiihhxxxxxxyyyyyyiyxxxxxxxhxihhxxxxxxxxyiiYyyxyyyxyiyyiyxxyyyyyyxxxxxxyyxxxxxxxxxxyxhxwxxwwxxixxxxxvyxxxxyyxxxxxxxhxxxwwwxwxxxxyxxxyyxyyhhhyxxxxwwwxxvhhxiyyyywwhxwwxxyxxhxxxxyyxxwwxxwwwwwxxyyxhxxxwgxxxxxxxxxxxxxxhxhxhxxxxxxiiyyywwwwwwxwxiiyiixxwwwxwyiiyiiyhxxixxxxxxxZZjjjxxxxxxxxxxxxiiyyyhxihxxxxxxxxxxhxhxxwwwxixhxyyxxxxxxxxwyxwwwyxxxxxxxhxhxxxhxhyhywhyxwwxxwxwxxxxhxhyyyxxyyyyyxwxxwYxwhxyxxxxhyyxyxxxxxxxxxxxxxhiyxixyxwxwxwxiiYiixyxxwhxxxxxxxxxyiyyihxxyhxxjjjzjxxxxxyyyiyiyxxxxxxxxxxxyxxyxxxxhhxxxwwwwwwwyiyyyyyyyyyyxxxxjZjjjxxxxxxyxyxyxxxxxxxxxxxxxxxwwwwwwwyyyyyhhxxxxxxxxyxxwwxwwwxhxyxxhxxyyyyyhxhxxyxxxxxxhxhhxyiyyixxxxxxxxxxxxxxyxxhhxxxhhxhxxxxjZjjZxxxxxxxxxhhxxhxxyiyyixxxxxwwxxwwxxxxxixxhxxxxwxxwxxxwxxwwyyyiyiiiiyiixxyxxxxxyyyyyxxxxxxxxyyyxxxxxwxwwwwwxxyyyyyyyiyyixyxxyyyyyyxxxxxhhxxhxxxxwxwwxxxxxxxxxhxxhxxxxxyxyijiyxyyxxxwxxxwwxwwyyyyyxwxwwwxwxhhxhhxxxxxxyxxxxyyyyxyyiyyixxxxwyxxxxxhyxhhhxyxyxyxxxxxxxxxxxxyiyyywxxxxhhxxxxxyxxyiiyxyyyxhyxyxxxxhxyxxxxwwwwxxwwyzvxwxwxxxwwyyyiyyyixhyyxxxxxyyyyiyyyxhhyxxxxxxxxxxxxxwxxgwxxxxhxhhuxwwxwywxxxxyyhyyyyiywxxxxwxxWxxwhxxhxhxxxyiyyyxxxyxyxxyxxxxxxxxyxxyyyyyiyijxxhxzyiiyxxyyxyyyyxxxxyxxxxxwwwyiyYyxyxyyxxiyyiyhhxyxhxxxhxxxwhxghxwxxwxxxwvghwhwxxYIyiiIYvvxwxwxhywXYXxhuuxwvhhywxwwwhWwxhhvhhhwwxwXvwhgwwwwxwxwwhxxwiYyiZYIwhwxgxxwfvwgwxwwhwwgxwhXhhXYYhiYYwwwwgwgxfhuhwugwgwiXxXiYXvhwxxhwwwwwvwgwvwwhwgxxxwwwfwwxxxiyyiiiijjjjZxxxxxxxxxxxxxhxhhhxxhxxxZjjZjxxxxxxyxhxxxhhhhhhxiyyiixxxxxxxhxxxxxxxxwwywxwxxxxwxwwwxxxxxyiiiiyyiyiiixxwxwxwwwyyyyxxxxhwhxxyxywxxwwxyyxyyxxxxxxxxxxxwxgxxxhxxxhxxxxxiyxxihyxxxxxxvyxXyyvxxxxxwwwwwxyyyxxyiwhwxxyxxxxxxxxwxxxxxxxxxyyxxwwxgxwwwwxwwxxxyxhyyxghxxwxyyxyyxxxwwwxyhyyxxvwxxhxxvyyyixxxxxxxxxxyxxxyyyxxwxxwwwwxxxhxyyxxyxxhxwwwxxyhxxhxxyyyyyxxxxxxxwwxwwxyxxxwxwwxwwxxxywxyxxhyxXxXxixxxxxxxxyxixxhixywwhxyvwwwwxwwxxiyxhxxhxgxywxxxwwxwxxxxxxwvxwiwxxhhhhyxxxxyhxhxxgvgxxxyixxxxxxyyyxyyyyyyxxxiyyyiyiwwxxwwxxxiyyiyxxxxxxxxhxihxxxwwwxwwwxwwwwxyyxxxxiiyyiwwywxwyxxyxyxxhhxxxxxxxwxwwwwxxxyxyxxyyyyYixyXhiwwwwwhhvWwhvwXhwhwhxgxgvxxxwwghxwwxwxwwwxxwhxvXhxYiyhIiXghwwhfwwgwgwhxwxhxwvxwWXywxhxwhwxxhhxwgwhwhhxxHYyhXXhggwxgxwxxwXwwxhxxwxxhhxwxxwxwwxxwgwwwgvwwhwvgWhvxxhhxwwhxvxgwgwhXhxiYhhxxxxxxiyyiiiyxxxxxyyyxxxxxxyjjjjjxxxxxxxxxxzzzzyyxyyyyyxxyiixhxxxyxxxxxxxxxyyyyywwxwwyyyyyxxxxxxixhihhhihixihiihhxxxxxxiyyiiiyjjjjjxwxwxxxxxxyxxxxxxxxxxxxxxxxxxxxxyyyyyxwxwwwiiiyiyywxxxywxwxxyyyyyxxxxxzzzzzxhxxihhxxxyhxhyxyxyyxxxxxxxxxxyxxxwyyyiyiyjjjjjxyxyxx[[[{[iiiiiiyxxxxxxxyyyyxyyyiyiyiyxxxxxxxxyxyyxyyyxxxxxxxxxxxxyyxyjjjjjiyyiiiixxxxxjjjjjxxxyyxxywxxxyyxxxkkkkkk{zzzzzzzzzzlllllllzzzzzzzzzz[[[[[[{kkkkkk{yyyyyxhyxxyxyxxhxyhhhxxxyyxxxiiyiiiizzzzzxxxxxxxxxyyxyyhxxxxxxxxxjjjjjhxxihhhhhyxihxihhiyxwxwwxwwxxxxxYyyYYYyxwxxwwxwwwxxxwyyyyyxxxxxxyhiixxyyyxyxxxxxxxyyzyihhhhhhxwwwwwxwyyyyyxxxxxxxxxxhxxhxwxxxxxxxyyyixiiywwwwwwwxwwiiyyyxxxxxxxxxxxxxxxxxxwhhhhhwxwxwxwwwwYiiYYYixwhhwxxxxxxxwwxwhwxxxhhhhxvhhhhxvwgxxxwwgwwhhXXhwxxwhhxxIYyYIYYxxxxxxYhxXXXhxwhvgxghxvgwxgwwYYhixhxhxihvxxyhhuwhvvXvghwuyxxxxxvxxvwxwxwXhxHXIhxhXWhgxwhvwfhXXhhxxhhihyyyyyyyxxxxxxxxxxvhgugxixxyyyyxxxxxxhxxhhhxxxxxxxxyxhhhhyyiyiiywxxwxxxhxhxxxxxxxxxxxwvXgyXwxxxxxxzyzzziyyiiiywwwwxiihihhxxxxxxxxxxxxyyyyyxyxxxxxyyyyyxxxxxxxxxxxxxyxyxhhihyxxxxxxxxxyyyyxyyxjjjjjhyhhhiyxvhvhxxxwhhyxxyyxyyyxxxxihhixwwwxwvwggfgxwxyxyxyyyyyyyhhhhxxxwWXxywwhhhyxhxhwhvgiwxxxxyyxywxxxhhhxxxhxhwwwxwwwxxxxwhwhwwxxgxiyihiixxwXuXxxxhxhxxxxxxxxxyyyyywxxwwwwxxxxwwwxxxxxxyyyiiiiiiyxxxyyyxxyiyyiywyxxwwwwxxwwwwxxxxxxxixhhwwwxxxxxxyyyiixxxxYhxXXXhwwwxgxwwgwvivhvhhxuxwghgwwwwwhhxxxxxwfxgxxggwwXiXYXixxxxwywxWXwxwwxxwhxhwhiwxwwwwhwxxxhhhxhhIYyYIYYxxxwhywghggwwwhggwwxxxxvwxvhvvwvvvwwvxwvXXhwwxwwxxgxWuywwghwYhHXIhxghxwwwxwxwxhxxyxxyxyxxxxxxxxxxxwwxwhwhwyxyyyyvvxwxwxhywxxxxxvhvhvihxxxxyxyhhhhxxxxxxxxxxxxxxxxxxwwwxxxwxxhxxwxwxxwwvwxfgwgxhwxixhhxyXvWwxwihyhxxxxxxxxyxxxyyyyyxxxxxxxxxxwwwwyxxxxxxxxxxhxxxiiiiiiyzzzzziyyiiiywxwwyxxxwyhjjjjjhyxhhhxwxxwwyyyyyxxxxxxxhxxihhxxxyxyyxyhhYYxxxxxxxxxhxxhhhxxxxxxxxhxwwhiwxxxyyxyxxxxxxxxxxxxixxhyixhhhhxxhhhxxxyywwwwwxwwxxhxxxxxxxhxhxvxwhhihwxxxxhhxxxxyyyxwwwwwwxxxxxxhxhzzzzzxxxxxxxxxwwwxwwwxhxhxxyyxhixxxxxhxhyxxhxhyxxxxxxxxxxxxxxxxyhxxxxxxxxyyyiiyxyiiiywwwwwxxxxxxxyxxxxxxxhhhhyxwwwxwwwhxxxhxhyxhhxxhxyyiiyxxyyiyiiyjjZZjxxxxxxxxhxxhxxxxwxxxxxxxxxxxyxxhhxhxxxxxxxxxxwxiiiyixxxhxhxhjjjjjiiyiiiixxxyxxyxwwxxwxxxxxhxhxxxxxxxxxxxxxyiiyyxxxyxxyxxjZZjjxxhxhxxxxxwwxxywxxyyiyiiyxwwxwwwwxxxxxyyxyyyyyyyyyyxyyyyyxxxxxxxxxxxxxxyyyyyxxxxxyxhyxxxxyiiyyhxhxhxxwwwwwwwwxxwxxhxihxxxxxxxyxxxxxxxxxxiyiiixxyxyxxyyyyyxwwwwxwwwxxhhxyxhxyxxyxxxxxxxyyiiyyiiyiiiixxxxxxxxxxxhxhhhhyxyyiiyxxxyyxywwxxxxwxxxxxxxxxxxxxxwxxxwxwxywxxyyyxwwxxxwwyyyhhhhhhxxxxxwxwyxwxyiyyixxxjjjjjiiiiiiyxxxxxxyyyxyxxxxxwwwxxxxYYYYYYyxwxwwwwwxxiyzyyxxhxhhxxzzjjjxxxxxxxxxxihhhihxxvhhhhvxwxvhvghgxxxxxxxxxxxxyxyxxxxxiiiiiiyhhxhhxxxwwwxwwhwhwhxxwyxhhyggwwgvgxxwhxhhXhxhxxxxxxhhihxxxwwwwxxxwwxxxwxiyiiiiiwvxXvXgxvxxxwvXvwgWwwxwvgwgYYyIYIYxhhhhxxxxvwxwiwxxxwhxhhhhXhhxvwhxxwhwxwhhhhxwygwghhxJJjJJJJxxxxxYYyIYIYwwxwxwhhhwhhXhhhhhyhxxxxxxxhhhhvwwggxgvxxxxxvxhvgxxwYYy9Y9YhxXXYvxxxxghgxxxxyyxyyyyxxxxxxxxyyyyxxyxxjjjjjxxxiiiiyy[{[[[iiyiiiiyyxyxyyxxxxxxyxwxxyxxxxxxxyxxxxxjjjjjiiyyiyyxxxjjjjjxxxiyyiyyyxxyxyxxxxxyxxxyxyxxxxxxxxxxxhhhhxyxxxxxiiiiiiyxxxxxxxxxxyyyyyyyhhhxhhwgvgxxxxxxxxxxxhxxhhhxiihhxhxxhhhxxxxxxxwvvXXxhwxyyyxwwxxxyyyiixwxxxwxwxxxxxxxyhxhhihhhihxxxhxhhxiiyyyxxxxxxxxxxxxxxxxxxxjjjzzxxxxxxxxxxxhhhhhxwwxwxwxwxwwxxxwyyYyYYyxwwxxwwyyyyyuvxwvgugXhuyyxxxxxxwxxwwxxwhxxhhhxhxxxxwwxxwwvvwvvvvhxvxxxhxhhxxxxxwwwwwwxwyxxxxxxwwxxxxhvvwggwvyyhxxxhxxxxwwxwxyyxxxxxxxxxxwwxxhiwxxxxwwwvwwggvwghgfwwxvwxxxwgXXhxwxwxxwwxxxxxxxhxhhxxyyyxiyiiiiigvhwywwxxxxxxxXYXxhxhxhvvhvXwvXwxwxxxxwxwghxwhxxxxxxiyihiixxwxxxxwwwxwxxwwwyyYyYYyhHHhihwxggvwwxhhyyyyyxxxxxyhxhihhhihixxxxzzzzziyyiiiixwxwwwxwxxxxxxxxxxxhyxxhxjjjjjYyyYYYyywxxxyxxxxwwwxhxxihhxyyxxyyxxxxwwwwwxxyxyxxxyyyyyHhxXHYhwghvgvxfhwvxgwgwwvhvxXWxwwxwWYxwwxxwxwwwhwXXxvIhXHYhxxxxxwhwwwwxhhxwhxgwgxxwwihhhxwwXwwxxgxwvWgwwWxw9YyY9YYxxxxxvYxgWxwwxxwXXxxhxifhwwgvwggwfhiHHhwhxwwwgxgfhwxvwwgwhIiIIIiiviivxvwwhwwvhxxh[Jjjj[jwxwxgyxYwxhxyvixhhywhxvixywywxxvxxvhijYiiijixxiwwxxxywywyywvhxwxkZzzzkzixxvixwwwjYiiijiwxxywwxxxYyxixghxfxxxyyxxyxxxxyxxjzzzzxxyZjzjzxyyxxxxyyxyxyxiyxxxyyyyxyyxyyyyyk{k{yyhijzzzzxxxyxywxwyyyxhyxxhyxxwxxxixxiihxxxxxwgvyyxxyyxxyxxwxvxxxxihxxxxyxywwxwhwxxxyyyyxywfwwxwxwwxiyyyXyyxxxxyyyyyxxxxyyyhyhhxyxxxxxxxxihxixxxxxxxxxyyyyyxzzzzyxxxxxxxxxxxxxyyxyyyxxiyyyiyyxxxyjjjjjwxwwwwhhhiyxwyvwxvyxyxyxwwxxxxwxhiiyxxxxxxxwwwfxxxhxxiihyyyXyyyxyyyyxxxxxvxhvxxyhxyyyxyxyxwgxvxxxyhiiiiyhxxwxxuxxxxyxxxxxyhxxiyhwxxwwwxyyyyyxhxhxhxyxyxxyyyyyxxwwxxxxxxxxxxxxxxxxxxxyyyyyxxxiyyiixxxxwxwwwwxxxwwywxwwwwwiiiiixvxwwwwxgYXiyYhxgwwhxxxxxwwyyxhiixwhxhwxwigxiwxvxiwIIyhiYhxxhYXyhyXxxwgiwhxghixhxyyyyhxyxwiiixxyyXYyXhHhywxwwwYhxxxhhwxxhxxvwxxxxwwxxxxxyyxxxyxxxxxxhhxwwxwxxxxxxxxxxxxxuwhwhwwhhwwxgwwgwwxvvxyyxhwvxxxwwwxwxxyxxxxxwxxxxwwvhgghwwyiiixxxwxxxxxxxyyyyyyiyyiyihiyywwwwwwwwwxxhxhxwwxwwxwwhhxhxyyyiywxxxxxxhxyyyxxxxxxxxxxxyxxyxxxxxxxxxxxxxxxxxxxxxxxywxxxyyjyihhhhhwxhxwgwwwxxxwxwwxwwxwxxwwxxwxhxhhhhxxxwxwwxhxxhxxxxxxxxxxxxwwgxxwxvxxxxyxvxwhvhwwxxxxxxxwygwghhxxxxyyxyxxxxxxxxhhyxxxxxgxxgxhghhhhxXxxXxxwwwwwgxhwwwvhhxhxiIyxiiiwxwwwxwwwXvxwhxfwwfwwvxvvvwxgxxgxwhxxxxwvwwwwxxwgwggiXxiyxiwwvxhvxvvvuhguxhgxhwwxwxwvgxxxxYYxyiiwwwwwwvhuxwvwggiXxhiyXwwvvwwwgxXxwwxxghxxvhhxxvxxxwwggiYyYyiYxhwvwgvxxwwxwwxxwwhhxhhhxxwwxxxwgvxhhhhwwxvgwYIyYiiiXXxXxhhxwwwwxvwgwvxhxxwghvwvxXXvyyxxhixxwuxghhwwwwxxxwhXxHhXhwxhwxXwhwhgvvIiIiIhhghxvwVhxxwxiYyyiyYwhwuhhvwVwgwwywxfhxwvVIYHYXhwxywxxxXYgxhuxwvVyhxxxIihfhwwvVxxwwxwxw:YIYYxxwxxxwyiyxyyYwxwwwXxgVwwxxhhxxxiXfhvwwhxwvGhhWWvxwvexxhwhIX9YXwxwxwxwwwwggxxwXXhhhxixhxYiiYYYixhgxxYhxhXhhwxwxxgwwxwvghxhhvuvguhwvwXXvxvggwhwyxxyxyhhvxxwhixYixgxwvxwwwwwwxxxwxxxxxxHhxhHiiwwwwhhxxxxYYyiYiYXwXhhxhhxhhhvwvggxhxvxxffgXwwxwwxxwhgvxyxxxxYxhxghhxhhxiyixwhwhvwxWWvixyxwuvHyyxxxxxxxxvwgwwwxwxwgwhhhhhvwxvgxwxxWwyyxhhhXxvxxxwvwXyxxxxxiwgwxhhihhhxxhxxivhXxxvwXXhhggvhgvhhxxfgxiyixiviwwwvvwWwwwwxwxhxxxyyyxwwwwwxxxhxxxxyxxxxxxyxiyiyxxxxxxxyyyixxxxxxxxxxwxwxwxxxxwxxxxxxxxyyyyyyxyxxhxxxxxwwwwiiiiyxxxxizziiyxxxyyyxyxxhhxxxxxyyyyyyiyxyyyxyxiiyYyxxxyxxxxxyxxxhyixyxxgwxxhxxxwwwwwwwxxhhxhxyxyyxxvguwhwwhxhwxxyhxxwwwhwvwwwvxxvwwwxxxhxxxwwxwwxxxxxxxyxxhxxxxwxwwwwhghhxvwwxwwxxwwxyyyyxxgwwvgghgwgxxxwhxWwwgwwxyyxxxhxxxxxxxwxxwhhxwxwwgwhwyxwywiyhixxxyiYihYhhwwvxxiYhhXhxxwxhhwywwwwiwyxwhxYixxyyyiyxyixixiwwhxhxwxwywyyyyYixyXhiwwyxgwhhxxYXyiiXihhwhiwhwwxXxxwwxxxwwwxwwxxxxxwwxxxxxwxgwvgwggxwxxyxxxwwvgWWwxwvxxhxwxyxxxxxxxyiiixxyxxxxyxyxxxxxxwwwxxwxxwhwwwwxhhxxxxxhyxyyywwxvvwxghgxxxxxxxxxhxxhxviwhxyvxxxxxxyxxxxxxxxxxxxxxwyyhhyuxxxxxyxxxxwwwwyxxxvywwwivyyxxxyyixxixyxwxwwxwwxxwxxxwwwwxwgxhxxfhhxhhxyyxyyyyiyyxyxxyyyzxxiihxiyxxyyxxyyxiyyiyiyxyyxyhhhhxzzzzzziyyiyiyyxyyxxwxvxvhvvgwhwhwxyxyyxxxyyyxyyxxxhxhxwxxhwvxxxxxxyhxyxxyyyxwxxxgxwyyyyyyxxxxxzyyxyxxhhwxxwxWhxXhhXhxxxyyyiiiiyyhihxxwwxxxxxxxuhyvghgxxxxxxyxxhxxhhhxhhhhhxxxxxxyyyyyyyxxxxxxxxxxxhxxhhhxxxxxvvhxXWxwyXyyyYXvixxhwxyxyyjzjzjixgyxhyywwxvwwiyhxxiXyyyyxwiwxwywzzZzzwyxwxxxihyxyihxxkk{xxxwxyxxzzZzzxhwxxixgxhxxwyyyygxxyiWxxwyvxxxxxxxwwwxYxxxwxxxxhhyhhwxwxwwwwwyxxyxxxxxxxxxxxhwxxxxxywhvxxxxxixxxxxyixxxxhgwxixxiixxyxxxxwwwvhhxxxxxxxxxxxxyyiiyxxxgwxwwwxxyyyxxxxxxxXhwxwxxywxwwggwwwxxxwxxwxxxwyxxxxyyyxixxxxxxxyivhwWwghwvxxhwwwwgvvwxhwyyxxxxxxyyyxyxhxxwxwwwxvwxhxxhxyxxwxwwxwwwxwxwxxyxxxyhxxxxxxxxwwxxzzzwwxgxwhxvxhwyyyyyyxxxyxxwxwxxxwhxhhxxvwWxugwgxfvgwwwwwxxxxxxhxyhxhhyxwxxwwwwxyyyxyyxyxxwwhhvvxhvxxxwwwwwhhvxxxxhhxhxihiiiyyiyxwXxuxXxwgxxWXwgVhhhhhhxxxhxhgxxxhxwwgvxxwWgwwwxxwxxxgwwwywgvgfvfwxyXhvWxxxxxxyxxhhXXixxwwxwhywgwgwhgivxxxxhxwxXhwwWxxxxxxxxwxyxhxwhgwwxxwxxxwhwwiyxgwxhwgWwvXXiXXwwwyxxwwwwgxiHivwGxxxxyizjzjZxxxyxyxyyyxxxxxyxyyxyyyxxxzzzzjyyyxxxzzzzjxiyhyxxwywyxyyyyyxyyyx{{kyyyyy{k{{{{{{kzyyyyyk{||||xyyyyyxxxxxxhxiiyxxxxxyyxhhxhyyxxyyiyiyzjzjzxyxyyyiyiyxywxxxyxyxyyyyyxxxxizjzjxxyyyxxxyxxxywxxxxxxyiyiiyyyxxyxxhxyxxxxxxhyxxzzzzzxxwxyhhxxxyxxyyzzzzzyiyxxyyyyxxxxxxxxyyyzzzzzxhxyxyxxhihhyxxxwxyxxxyyyyxxxwiyyxxyxyxyyxyyxixxyyyyyiwxxxyxxwyxyxwxhxxxxxxxxxyyyxyyyzxhxxxhhyyywwwwwxxxwwwwwxhxxxxxxxyxxxxxxxhxxxhxxxxzzzzxxxxxxxxxxxxxxxxhxyyhiyyxxwwwxxxxxxyiyjixxhxyxyyyzZZyxxxxxxxxxxxxxxxxhxxyyyyyiihhwwwwywwxiiixxxxxxxxxxxxxxyyyywxxxxhhzZyzzxxxxxxxxxxxxyyyyxhxhxwwwwxxixxyiiyixxwwwxxxhxxxhxxxxiyyyxyxyiyxiyyixwxwxxxyxyyxxxxxxxxxxxyiyijxhxhxiyyyxxxwwwwxwxyyyxxxxwwwwwxhxxxyxiiixxxxxxxxxhxxxxwxxxxxxwwwxxxxxxxyxhxyxxxxxxxxxyiiyixwxwxxxxyxyixhxhxxxxxxyyyxhxxyxyxyxxxxyxxxxwwxyxyyyiixxxxxwwwywxwwiiixxxxxxxxxxxxxxxxxxxyyyyyyyhxxhxwxwxxxxwxwwwxxxxyxhxxywwwxwxxxxxwwwxwxxxxxxxxxyyxxxxxyiyixyyxiiyxxxyxxyxxxxxxxxxxhhxiyxxyyxxyiyiyxxxyhxxyxxxyxxxwxwxyxyxyyyyyhxxyxxxxyxxyywxxxxzzzzjizzzzzyyyxxxyyyyxyyxxxyhxwxwxxxxyyxyxxwwxwxwwhxxwxxwwghwvwwwwuwwwwvvhxhyxxxxxyhhxxyxxwyyxxwxggxihwxxxxyxyxygxwxhwxxxyyxxxxxxwwxxxxwwxvxxxwwghxwhhxHXhXwwwwxxvWhhwxxuwhugwghhwxwxwgxwhwwfxhvvgvvwwwxwxwxwxxhxXhXhvxhwgvwwwwxyvwwwvwxhxhvfhvhgwwwwwvxwgxgwwwXhxXhhXvxWwwwwhxvvwgvxwvghhwhxxhxuhvwwwvwxhfwxgvfwwwwgwxgxwwwwfgwgwhgwwwxxWhvWXgvvhvvihgwhxxyxixxhhihhixwwxxwxxxffhhvvwwwwxxhxxiyxxxxxxwywxyxxvwXvXxwhxxxxxxxiyyiiyxyxxxxxyxxxxxxxxxwwihhhxwxxiizZzzZxxxxxxxxxxxxxxxwwwwwwxxxxyiyiyxyyxxxxhxxiiyyixwxxhhyyixwwxxwwxwwxxxxxxxyxxxxyyyxyiyjiyyyiyiyxxxxxxjyjzjxxxyxzjzjZxxyyyyyxyyxxxxhhxxyyxxyyxyyyyiiyhxxwxxyyiyiixxxxxiihxhxxyyyxhXhhXyhxiyyyyyyyyiyiixxxxxxxuughuughhxxxxxyyyyxiihhhhxxxxxxxhXhhhxxyyiiyyyyyiywxxxyyyxyhxhxiixxxxxxXiXYigxgwhxwwwwxwwxwhXhhhxxiYyYYiYgwwwwgxxxhhxhXXXwgxxgxwwwwggxhiwvXwXvxxgwxwwwxxwxxxyxvwihgwxwXXxwwwxvvwvwxwxhyxxyXhxhHhXwgwxwxxwYiiYiIwwhwxhwhhhxxxgxggxwwwxwwwxxwxyxxxyyxiyxixxxwgxwwwhxwxxxwwWwwvwhxvffwwgfgwwwxxxxxxxxxxxxxxxwxyxxxxyxihxwvvxvwwxxwhwxxxxxxxwhfgxxghxwwxwxxwgxwxgwyyyxxxwwxwxwwxxiyyyyyiywwxwwxxxxxxxyxxxxxxxxxxxxyhhxxxxiiyxxzzyZzxxhxyxyyiyhwywxwxwwwxxxxxxyxxxxxxxxyiyijyyyyyxxxzjzjzyxxyyxyyyyxxxyxxxxyyyxxxxzzzzzyyxxzzzzzxxxyyxxiyxywyxxwyyyxxyyxyxyyxx{{kyyyxXWwwwxwfwxgwxghXhhXxxYiYYYIxwxwggxxXhxhhHXwxwxxgwwhwwxxxxiuhiwgxgwxxwxwwhxxwxwhwhixvvywXWwhgxgwhxwxwwwxwxwxxxxHhxXXXXwxxwxxxwxxYYyiiYYwwgwwvhxwhhhxhwhxgwgxxxxhvhhyvxxxxxxxxxxxxyyywxwxwwxxwxvwwhwwgwwwvgxwxwuwxhxxxxwyyxxyyxxxxiyxxxxxywyxxxxxyxxgwxhwwwxxxxxxxxxyywgwwwxxwhxwwgwxxhxwxxwxxyyyiyyyhhhxhxyyyvvhwwwvghhxxxyxyxyiyyyiixyyxiyyyiixxyywxxhxhhxhhhxxxyyxxxzzzzzzyyyiyxwxyhyixxxxxyxxxxxxxxxxhxyxwwwxyxxxxxxxxxyxxyxiiyyiwwxxwxxywwwwxwiixxxxxxxxxxyyyyyyyyyyyyyyxxwxxyxyxihixyxyyyxxwxxxyyyyyyiyxxhxxxxxxwxwiyzzzzjyxyxywxywxxhxyyxyyxyxxyyyyyzwwwhxvgwwgxxwxxxiixxxwxxwghwxvvxxwwwWhhwfwfwxfvvwwwxwxwhyxyxxxxxxwwxwxxxxxxxxxxxwwxwwwwwwxyxyxxxxgxxgfxxhxxwgwwvgxxxxxxxyxywxwxwwwxxxvYwWxgxxxxxxixhihxxxxvvwhffwwwxxxywwxxxxxxxxxxxxyxvhivgxwhxixxxiyyiiyxxyxxxyxxxxxwwxwxxhhwghxwXhxXHXXwxhgfxxhwxxxYhXYixgxhvgxxwxwwwxwxxwhxwhxWguhWWvvhgxxxwgxwxyxxwxwxxvghxwvhiwhhxwgxxwhwxxxxHhxhXhXgghxxxghxhhxXxXxvxgwxxhxwwhhghxwxggwgxwxxwxwwxxXxhXhiyxyyyyxyyxywwxyyyxxxwgxvxxxxyxxyxxgwyxyxwwwxwxxxixxxwiwxwwywxvxvvxxxyxxiyhxxxxxyxyxxyxxxxxyxyxxxxyiiyiyxxxxxyxxxxxxyyyyxyyzzzzzxxxxyxyihhhhhzzjzzxwyxyxyyyywxxwyyxxyyyyxyxywyxghxxxxwxxwyyyiyiywhwwgxywywxwxwxwxxxihyxxxxxyxxxxxhhxwwfxwxxiyiiiiiixhxxxxxxwgixxxxxxxxWxxwxhxxxxxxhyhhhxxvyWxxvyihxyxyxhxxxxxjjjjjxxxxxxxhxxxixxiyyyiyyyxxxxwxwxwwwxwwxwxxxyyyyyxxxhyxwxxyxxxxxxxyyyyyhyxhhhxxxzzzzziiiiyyxxxxxxyyxyiwxhwxxvggiixyXjIiiiZYwhxxxxvXxgyhwXixxixxxxywwgwhwxhxxxxhwgwvxhwyYyiyihwhwhwwxxxyhwhgxhwggwxxwjIiiijiXyxyywhwxwhjYiiiihwhxxxxwwhxwyXvyyxyXxxxxgxxxxxyyyxxwwwwxhxhxhxxxxwxxwxyiyyxxhixhxyxyxxyyiiyxxxyyyyxxxxxxxxxhxyyxyyhwwwxwwxxxxxxxxxxxxwwxyyyiyxyxhxhxyxxxxwwwwgvfwwxxxwwwwwxxxxwwwxwxwxxxxxxxxxwggwwgxxxyxwxxwxxxwxxxxxxhxxxxyxwxxwfwvwgxyxyxxhxxxxyxyyxxxywwwwxhwwwhxyyyixwWvwgWwxhhhhxwxvhxhxxxxxyyxwxwwxxxxxxxxxxxvwwwgxxwxxhxxxwxxxwwhwxfxhxxwwwwwwxxwwxxxhXhhxxxhyxyyxyxxxxxxxxhhhhxxgwwxxxhxvwhwgwxxxhhxhyyyyxwwwxwwxxxxxxxxxxxxxxyxyyxxxxxwxwxwxxhyiyyixhhyhhyyyyyyywxwxwwwwxwwxwxwwxxxxxxxxxxxxxiiiiyyyiiyyxxxxxxxwhgwxwxWiYyhxXiwiwiwhxxgxxxhwyxxhwxvxxwwwxhxvwwxhhxwhYwxxxiYIhhYYxxxhYiyXixxiwhwwvxgxhyxxiiyvyhxixxwhyyywixxxxwiYxYiIYyyxxYxxxwwgYXyhyXxggwwwwwwwwxwwhvxgxwhwwxwhwhwgvhwywwwwgxxxhiYyhiwwwgwvxfwxxwwwwvwhwvxuhwwxvwxxxhxxxxhxwggwvvxwXYhhihvwwhwwxwwhwwhwxwxhxxxxwxwgiwwwxvxwhwvxWwxxuvwwvxxxvvwwfwwfvxfwihyiihhXhxhxXhxwxxwwgvwwwwwwxwxhhxyxwwxwxwwwvxxwwwwwxxwwXhhyhxvxwhvhwwxvwhxxwhwxwxwwhiwhhhwwhwwwwwxHXxXhhhyxhhhxiggwxwxxyxyvwxhhxwvvhxvwxhwwwxxxggwwxwgxwWgWvhWvuhixhwgffWwxvgxwwxwuwivwwwxxhhxxhxxyxwhhxhhiyixwuuWxxyxxwxxwgwwwxvgwvyhwhxxwwwwxhvxxxxxXhvxhxxvvgxxwyxwwgwgwhgivxxyxxxgxwhXhhxvwvwgfyggwwfxxxxxhxXxwvvXYhxHXHhxwXWywwxxxxuhgugxiwxwxwxwhgwwwwfvfvwxwxwwxgxhXxYYXigwgwgvvxxwxihxxhhhhvfwvwfwhhwvghixxxxxYiyYYYYvWWwgwxwvhwgvhxhwwgwxxXxwwggwwgvxxvxhyvvhwxgwxwvwwhhywwxxxxIhXHYhHXIY8iYwXxgGwgxwxwxgiHxhhXwhxhhWwWwwwvxhvhvwhxwuWHhHiHgywwhxxxxxhYIvyYigvWxXyyxYiYvYxwuWxwwwhv9XIYHxxhxwxhwyXxxyXwihXxvWhvxxyYiyyhgYxhywvHhXgHyfvVwwhwxxwWwHW9XGuxxxxxxxxwwwwxiiixyyxyiyyzyiyxixxxhyxxxxxwwwxxxxxxxxhhxxxyhxwwwxwxyizyyyyxxwxyYyiixxxhhxxxxyxyxyyyxhxhxyyyiyxxxyyyiyxxxxxxxxxxxyyyyxxxxxxxxxxxxxxyxxxxyxxhxyyyyyyyyyiyYixxxxxxxwxxxxxwxiwhhxvxywxxwyxxhxxxxxxxwwwhuhhxhxhhxxivhgwwwxvwxwyyyyyiyxyxyxwwwxxxxwxxxxxxxxvhwhwhwwyhxhhixxxxxxxwwwhwXXxvyyyyyxxxhXihxxxxxhxyixyxxgxwwxghwwxwxxwwwxwxwwwwxxwxxxxxxxxwhwhwwhxxwxhxxhhwwwwwwwhxxxxyyyxxxxxxhxiyxxxxxyyxwvvxwxwxwwxxwxxxxxxxhxxhxyxxxyxxxvwwwhywxxxxxvxgwxxhxwxgxwwwxwgxxwxhhihwyYwxxiHXXiYwXxgxiwiYiYYYgxxvwwhhyxhYwwhxxxxhxhxxyxyyyxxxvwxxwixvhyhxwWwhwwhgxwxxiwhxxYXyiIiYhhxhiyxxxiYziYiIwhxixywwiwyxixhxwhxxvxgwxwwwwxxwxhxvhuxwxxxwxxxxxhxxxhxwgyvxxxxxxxwwwxxvxvxxxxwxxxwwfwwxwwvxvwyxxxxxxwwwwwwwwvfwxywxxxxhxxxxxxyvxgyxugwxwgvwxwxxwwwwxyyyyxxxxxxxxxwwwwwxxgwxwxxyvwgwwxxwwwxhxxixxwwwwwwxxwwxxxhxxwxxwxxyyxyhxxxxxxxxxxxyvwwhgghgwgxxxvvhwwxwWwxxwhxxxyxxyyyxyxyyyxxxxxxxwwxwwwhwyyyyxxxxxxyhxxxwhwwxgwyyyyyyyxhxxhxixxxxyyxxhhxxxwhwWwwhxvxhwyyyyxyxxxxxxwwhwwxhxxxxvhwhhxwgwxwwhhxxxxwwwwxxwxxxyxxxyhhxhxxxxxyyyxxhhxhxwwwxxwxxxxyxxfvwwghgwwxxxxxxxyxyvwhvwxxwxhhihxxxwXvxvxYxwwwxvgXvvgWxhhhhyyyxyxxwhwhxyxgxwvgxxwxxxxxwgxxwwwwwwwwxhhvXyyyyxxyxxihxvwhhwghhxwhXyxvhhxxhxxgxwxxhhvwXxhhhxxhxhiwxWwxxvhgwwxxxxxyxhyyxgxwhwgxgwXvhgWwxxxyxxhxhXiuwHixixixyxxxxxwxxwwwwxxxxxxxxxxyhyxixywwxxxxxxhxyyxxxxxiwxywxxxxyxxxxxxixxxxxhxxxxwxwwwwwxxwhxxvxwwvhXhuxxwwxxixixhhhyxxxxxxvxxvxhyvyxxxxxyxxxxxyxxhwuwhyviyyyyyxywxwxwyyyyyxixhxxxxxwwwvgwfgghfxwxwxwxwyxxxyyyyyxxxxxhhxxxyxxxwwgxvyxxwwxxyyixxxxxxixxxwghvwgyyyyxxxxxxxyywwyxwwxxxxxwxyyyxwwxvxgxxwhXXihxyxxxhxxxhxxxxxxxxxxxxxxvxhhxwwxxhhyyyxxwwwwwwxwxihhyxhxxhxxhxxhhhxxxxxxyxxxxxxxxxxxxxxxxwhhghxwyXhyXHihihxxxxiYyyyiXwixyhwxyxygwxvxhhxixxhXxhyyYwhxxiwiizigxxxyyyhXwyhXyyyZzzzzxgwxxwwyyyyyjjzxhhxxxhwhXwhwhjxhhxhXhxgxxxxxwxwwwxhxyxxxxyxxxxiyyiiiyyiXxyxxwxxxxxwwvxvhxxxxxyxhxixhxxhwwyhyxhxxwxxxxwwxxwyxuiyiiyiiwwxwxxwygxyuxyyxyyyxxxxxxyxxyizjzjxxyxzjZjzyxxxiyyiiiyxixhxhxxxyiiiyxixxyyiyyxxyyhhixyxxxxwxyyyyxywyywxywhvixhxhkJjjjKjvyxxxxyXxXxiixxxixghxvhhywywxxxwxwwwxhjYiiiZYyixvxhxxiviivwhwwgxy[Zjjj[jiyxiwhxxZYYYYZiywxxvhxxxYyhhxwhxfxxxxiyyyiyi[[[{[yyyiyyyyyyxyyyxxxyxxwxyiiiiyyyxxxjjjjjxxxxxxxxxxxxxxxxxjjjjjyxxxxiyiyyyxyxyywxxxyxxyxxxxxxyyxxyyxxxxxjjjjjxyxxyxxwxwywxxxiiiiiiiXxXxyxxxxxhxxxxwyxvxxxxiyyhhhxxxxxwhxWyxvwwxxwxxYyyYYYyivxxwwxxwgxXxyxxxwxxxxhxhiHiixxxxxxhiyiihixwwxxggxhxhxhxxixhxxxxwxwwwiyyiywwwwxyiyyixhxhxhxxxxxxxxxxxxxxxxwxxwwwxwyYyYyYxxxxxwxwyyyyyxxxhxhxxxzjjzjxxxxxxhhhhhfwhwwvwvfwwwhvwggxxhwwxwxxwwwwwwxxxxhxhxvgxwgwgxxxxwxxwwxwxwwwwxgwwxhxhxxhhxwhvwxhxxwwxxvwwwgghyyxxwwxwwxhxxxxxxxxxxwwxwwxxxxxxhxxXvhxXxxxxwvxxwhvxwWwxxxwwwhgwiXyiiIixxgvwhxxwyvxgxxyhiixhxxhvxgxwhvywwwivxvxhvYIyiiIYxwyxwwwyxXXiiIixwwwiwwwxvxgwhyxvhyyxyyxXxgwxhhxihhixiYyYY9iywxwwwYxxwxwhwXwhhxhxxyxyyxxxxxxxwyxxxxxxxyyzyiwwwwxiiiiyyjjjjZxhhxhhxxxxxxxwxwxwwwwxwwYyYyYyyjjjzjhxxxxhxxxyyiiixxxxxxxxxxhxxxxixihhhyuxhwwhhwvwxXhxwxxxxxyhxxxhhhhihixyhxhhixvwwhhywwxxxxxxxxwwgwwvhxwxxxxwgvvwvhxxhxxxxhhiihxxxxxxxhxxyhxxiihwxxwxxwxxxwyxxxwwyyyYYYywwwwwvhxxxwxxxwxxwXwXxxyhhwxxxwwxxxwxwyvxyxxxxxxxxxxxyxvxwwwwxxxxxxxxxyxxxyxxhyxixhxhxvhxwxxxxxxxwwwwwwxxwxxyxhxyxxxxxxhxwxvgxxxhwxwwwwvwwwvxyxyyyxxxwwxxwwgwxxxxxxwwxwwxwxwxwxxwwwwwxwwxxxvghwhwxxxxxyyxxxxxwxxwxyxxxhxxxwwwfgwgwhhgxxxwxwxhvvWwxwwvxhfXgfWwgxgWguxxxxwhwwxxxxwwwwxwgwwwhxhxxhvxhxgvwwwvwwhghvuWxxxxxwxwxxwxhhhhhxvwxwhhxxhghhwwxggghgigvXxyxxwxxwwwwygygwwwgvwffgwxwwwwxxwxxgxvhhwxvvfwwgvXwXhWxhxxgwxXwWhfwvHvhhhhhwwwwxxxxyxxxvghwvghxhyhhxxxwwfxwvgwwxhhhhiyiyiyywwwxwxxxhxwwxxwxxxxxhXhhhiiiiiiixxxWwhvwXhwxxyxxxxihxxwgxwwhxvxxxxxvvxwhvvXWxwxxxxwxwxwyxyxhxxxyyyywxwxxxwwwxhvyyxxxwywwxyyyyxxyyyyigwwhhwwgxxxxxxxyxyxixxwxxwxxxyxxyyxxxvwwxxgxwxyiiyyxxxxxxxxxxxxxyxhxxxwxwyxwyyyyyiixxxxxxxhxyxwxwxxwxwwxxxxxxxxxywwxxwwyyyiyyyyiyyyxyxxxxxyiiyzxxxxxxxxxxxxxyyxxyyyyyyyyyxyxhhxixxyyiiyxhxxxwxwwwxxwwwwwhhxxxxxxxxxxxxxxyyiyijyyyxxxwwvwhgwhwxgxxwwvyxhivxxYYihYYhwxvxYYiiIiwxwwwhhwywxwwwigxhhixhyihhwgxywiwXxywwgxxhxwwwxvyvxxxxHhxiYXhywwxyxwxxwwwwYYyiiYYXxXxyxhwhxhwhxgxghvhvvxhhxxxxxxxxxxxwgxwwvwwwxhxxxxgwwghhhhhhyyyiiiyxxxyxxxxwxxxxihxhxxxxxxxxxxxuhwvwhywihxhhyxwwxxxxwXxwhhxxyyxxyxxhyxwgwxwxxwxxxvwXxvxXywwxwxwwxxxxhxxxxxyyyxxxxxxxhhhhxwxxwxxxwghhwwwwxxxggwhhhxxxxhxxwxxxxxxxxxxxfwhhxwxwxxxxxxhxxhwgvhxhhwxxxxxxxxxXXXxxxxxyxyyxyyxxxwxxwxwwxxwwhxhxwwhhvvxhvhXhhhYYyiiYYwwxxxxwwwgwwvgxxxwvwwxxvwgwwgwxxhxvwhxxuggughwwwwxhwwxxxYhihiXwfxwhwfwwhhhixwvgwwxxwxwvwvwvxhIXyiiiiwvwxvwvwxvwvugxwYiyYYiiwwwvwwxWvhhxuxhXXgwxwwwgxvxxgwwYiyiiYiwxxwxxxvwwwwwxgwwhhhhxvhwhwhwwvhwxgwxwhhhhhxwwwxxwYYyiiYYHhxhhXhwwxwxwwxwwxgxxggxuxwuhhiwxyxvxhXxwgwvxXXxvvxxxvwhxXhxXXHhxhxxhgwxhvvgIY9YIXhwxhxgwWxwhwxxgxxYXyyyyXghwxxhXwWxvgxxwwwxwgxfwhifWIY8YXxwhxxwxxxxxxwxxwxwIXvihigWhgxyxXXhvxhxxvvgixxxwghvwg:Y9YYigwwhhwwgihyxyihhxwxXhwwWxwxwxxwwhhyxxxWWivxhiivHXggxWxwwVxwxxvxwwhxIH)HXvxhxxxvhwwwgghiwhhxhhxxxIYyYIYYhhhhxIiyiIYYgxwwwxxvhhxXhvgvxvhggwwgggxxwxxxxxxhhhhxhxhhxXhhhxwgwxhxwxx9iyY9YYvwwwhywxxxxxJjjjJjJXXXxxhhhxxxggwgxXxxywxWevgXvwxwwwwgwwvxxxxwhxhwxwvvhhvghhxxxxhihhhYyyiigtvWxxxhhwgwwwgxxwxwhXxyvwgxwwwvhgwxxwxxwxwxIxihiguwXxwwwvywxgywXhhXyyxxxxxwxxhxfhXXYxvxvxhfxgwwwgxxyxxxYxhhhuwHxxxxxwyxxyixixxxxhyhxwxwwwwwxxxyxxxxxxxxxyyxxwxwxxxxyyxxxxxxiyxyhhxxxxxxvxyhxyuxxxxxxyyyixxxwxxhhhhyyxyyxxxxxyiyiyixyyyxyxxyyyiiiyxxxhhhhhyihyhxxxxxxxihhhihyyiyyiiyhxihxixxxxxvxvvXvXxWwyiyyxxxxwiYyiiIYixXxwyyyyjjjhxwgxiyxyxwxwgxhihhiXYyyxxixgwxwyyYyywxxwwgxxYiyxyYYxjzjzzxhvhxwyyiyyxwwxxgwixvxhghxxyhhyhiYHxxxxxxyyyyyyyyhhhhhiixxvhwyuxhgxxxxxxhxxhhhxxxxxxxyxhxxxhxxxxxxxxxxxvXvxhWxwxxhxhhxxyxxyiyiyiyywxwxxwwgixyyiiyyyyxxxxxxyyhxhxxxwwvWxxxxxxxxxxyyxyhhyhxhyyyyxxwwvxwgxwxxiiywxxwxxyyyyxyyhxxxxxxxxxxxzyygghxxvxwwgxxyyxyxxxxxixxxxiihiiiyxxxxwxwwxxggyyxyyyyyxxxxyxyxxxhxiwhwhxxyixxyxyhyyxyxxwygvxxxxxxxxyyyyxxWxxwzzjzzxwwxyxhihxxixyyyyyyyxyxyyyyyyyxiixxxxxwxyyxxyxwxxxiyyyyxxyxxywyxxyyyxxxxxxxhxyyxhzzxxwywxxxxxxhxYyyyhxhxxhxhiiiiyiixxgxxwwwxwwwxxxwwxxgyhuxxxxxxxxxhwxxxxywxxxiyyihiiyxxxxhihihyyyYyYyxxwyxxwvwxfyyyyyxwwxwxwwiiyyiyiyxxxyywwwxxwxwxzzzzzhxhxxhyxxhxxxxxhyhyxyxyxxxYyyyYyyjjjjjxxxxhhhiyxwxxwwxwxxxxxxxxxxxxxyxxyxxhyhhyyzzyyyjIiiijiwihwwXxxxxwhwxhgyyxyXwxgwxhwxxxyXwjIiiiihhhwwwXyxyyvhwyxxYwxxxxgwgxxvxhxHihiiZ9YYYZiwXvyxxhwhgxhgwxxxxXwwhwhxyxwxxxywwWhihiHwxvhgwXxxxxwiIiiiixyyiiyxxwwwwxxxxxxxixhhhhhhxxxhxhyyyiiwwwxwwxxxxxxxxxxxxxxxxxxxxjjzzjxxxxxxwwywxwwwiiiiixxxxxxxxxyyyYyYyxxhzzzzzuwwwggwwhxyhxxwwwxwxwwwxxhxxhxxxxyiyiyxwwxxwwwwvfvwvxvwxvvixiixxhyyhxXhxXwxxwwwwwwxwgwxixhxxhxvvgvwwxuxxwyxxxxwwwwxwwxxxxxyyxxwxxxwwwwxhxhwhxhhxwhxxhhhvwwwgvhwwwwvwxgxgwwgxXxwWxxyxxxxxxxxxxhxxxyhxxxixxvwvwxhwxxwxhxxxwiWvwhXwxxhxxhvwxXvxxXwxxwwxwgxxxhyyxwxwxxyiiiyxyxxxxxxyyyyyYyhHhhHxywxwxvwxwxhxyiiyyxxxxxxxxxxxxhxxxxwhhhhhxxxyyyiyxhhxhhxxwxwwwwwwxhxwwwxwwxwwxxxxxjzzjjyYYyYYyxhxxhxxxxhhxihxxxxxxxxwwwwxxwxixixhyyyzyyiHyXhYYxvhhxxfhhwwxxxxiywxYwwivxxyXwwxxxxvxxxxXiIyXiXhhywhxhwxwhwxwwxWiywwxhwwgxwxwxgxhvwY9yYYYixxxyhvxhgxyxxXxxxxvwiwiihhIwwhxwwhgxwXxxxxwiIiIiIixwxwyxxhxxxwxwxxxhxxxyhwhxxwxxwwyyyxwwwwwxxwhxxyxyxxyxxxxxxyhyxxxxxxwwwwvwyyvugwxxhxvxxxxhhhhyyxwxwxwwhvxwhxwxxhiyxxyyyxyyyxxxyxWvvxhXhwiyyyyyxxxxxxxyxxxxyxxxywvgwggwwhgggwxxxxhxxxxxxxxxyyywwwxwwwhxyhxxxyyyxyxxxwwxxwxxxxyxxxwxxxxxhxxxwxxxwwxwwxhxguvguWghWwhxxxhhhxxxhxhxyxyxxxwwwwwwxxyxxvfwhvwwfwwwxxwwyyyxwwxxxwxxxxxwwwxwxxwyvvhvvhvxxgvxxxxwwwxxhxxxhxxxhhhxhxxwwwwwxwwxxxwxwwwwxwxxfwgvgwwhggghHxhxYXXxihxhwyyiyyyYiyxyixyxivxxxxXyYyyiiiyyyxyhxwxhhjjjwhxxxwyyihXxxyhwXyyyZzzzjwxxwgiixxxiiihxixxYvwhiwwxgxyxyiyXxyihXyyyyyyxxxhxwxwxwwxyyyxxzyyiixyyxxxxyxxiiiyyxxxxxxxxxhxxyyyhxxwywwyyxxyyyyyyyyyyxxwwwwxwwxxxxxxxxxyyyyyxxxxxxxxxhxxyxxxxxwwwwwxyxxxxxxyyiyxxxxxxwwwxwxwwhyxxxxhxxxwwxwxxwwxxwwwwwwxxxxwgxgfvwwfgwwwxxxwxwwwwxwwwggWwxxvvxhhwhxxxxxxxwxwxxwxxxxyyiixxwxwwwxxxwwwxxhxxhwgxxvxxhyyxxxxxxwwhwgwxWhvxyyhxxhixyxxwwxvwvxggwxxxxxxwwwhxxhxwxxxxvxwwwxxxxyxxyyxxxhyxxxxxxwwxwwwvwxwvwfvwxxxxwxyyyixxxxxxxxxuggwhwwvxhhxxxxxxwxxwxxwwxxxwwxwxwwhwgxxwyyxyyyyxxywvwwxhhggiYiiiiwhwixhxxiyxyhwwgxxwwXwhwwxhwhxhiIyihXhwYxxxxwyyyyyyxxYviywxhwyxxxixxxxiHyxhiXvhwhwXywyiwwwgxwwhgxwhwxwXhhiyhhxwxwxwgxiyiXYyhXhiyyhyyxxxhxvxwwxwyyiyywxxwxxhxxxxxgxxwwxxxxyyiyxxxxyxxxyxwwwyyyyYyyiihihxxxxuywwxwyhhhhxxihhhiyyyYyyyxxxywwhxxhhhxxWxxwxwwxwxwxwvxhxxxxxxxxxxxxxiyyiywxxxwwvwwwxxyyyixhyxxxxxvvwgxxxvhxxxvgwxxxxxhyxxhxxhxxxyyxxxxwxxxwwgwXvxhgvyyyywwvwgwhwwwfwwxhgHvvGwhXXhWxxyxxyxxviwwwxwyxwwwxhhgxxxxxghvhhwxvwfwwgxwihYGyxyxhxxxxYXhYXxgxgxxhXhhXxxxwwWhvyihYvHxxyxwwxwxxxwxhyxxgwwhwhWgwxxxxyvhhxiuxwgxwwwggxwhIhhHxxxxWxxYXYv8vxwwxwxwxxxxxxxxxXhxWxihiiiiyvWwwvwXxvuvxxvxgxviiiiiyixxxwwxwxxxxxwxwwwwwwxwwwxxwxxxxxxxvwhhvxxxwyYYYYyyxxxxxHhhHhxhhhixxhhXxhXyxhxyxyyfwxvwwhggxxgxxyyyxyxyxxxxzzyxxxxxwxxwgwwzzzxxxxyixxxxyyxvwxxwwvyyyyyyywywxwwwwyxhxxxxyhhwgxxxwfXhxyihhwvxfxvwvxwwxhvwxwxuwwWvxgwuWWxxxhWxxxiiyihyXfwwfwwwwxwwxwwvgwwwuxwxxwxwgwwwvgwwxvwxwiYyyYiiwgvgxwxhhvxxxvxXxxxgghhxwwgwwgvhHhhhwvwvgwvgvwwwwiiiiiiihhxhhhhwwhxhvvvfwvfwwgwgvWvWxxwuwwgvwwwuxxxwwvvwxfwwxhxfWguguhggxxxvwgWwhhgwghxhwwvwwvgwwfwvxghfwwhxxwwwxWvgwxwxwXXxhXhhxvggvwwxvwwwvwgwvxxxvxfwvgwwggwfwwwWghgvxxwxxxwwgwwgwwwwwhhXhXxhgxwwgVvWhvhgvhhvxvfxxxxxihwxgxWggwuxxxxWwXvhhghxxxvefWxxxxxwwwwwwvxvxhfxgwwwgiXwgwxvwfygfwgwwggxxxxxXwuxwxwfgXwwwwxxhvxwhXXXxuxwxwwwxgwgvhHhhxwxuxXuxXwwWyxxxhhxhwhwfwgXXhxXXYhwwgwhxvxxxxvgwXxyxughxxgwwvWWxxxwwgwvxxxwYhhXihwXWwghwxxxhvwvWxgwuvwfvwgwwxhgfvvwwfxwxxxvxxYiyiYiYHHhhiWvvXxxxvwxgwwwhxwXWxwxwghwixvvxhxwwhwvvwgxwxxfxwIyiIii8YHYHiivgwwwxvwWxxXwhwxwghXyiyHhXvxxXiGfhgxxghevXxwwG8XwGXWtxWwwwxxhhxhwxxxxYXvxhhxGxhxYhhuhxWxwgxwvxwxw)IHHXxxgvxwxxxxwyXywxywXgivxIiwGgwxxwyiyxhxXWiuxxXy8hhfXwhwwVwhghwwh8X8XXXhhhxhxhhxgwwwhwxxyywvxvgXhxhXxXwxwxwxwwhxxvwwxhhxXHhhvvwvwwxhXihXxxwxhvhwhwwwwxxxxvgxwxvwxxggguWgvvhyxywwvwxwhxxhXxhgxxwwivyxgxwxwwwxwwxggvxxxwwyyiiyxxxxyxxyxhxxixxxxxwwxxyyiyyiyyiyyixxwwwxxxxhxxxxxxxxxxwwxxxxxxxxxyyyyiyyyxxxxxixxxxxyyzzxxwxyxyyxyihyhxyxxwxxyiiiyyyxxixzzzzjyyxxwxhxxxywyxxyxxxxxxxyxyyyyzzzzyyyhvhvgiyyxyxixxyxxxxxwxwxxxxxxxwhgugxixxxxxihxhixxxywxwvvgvwhfvxxwxxxxyyyyxxyxyxiyyiiyxxhxxhyXWvwxxvwxxghfxxxxxxxxxxyxxxxxyyxxwxwwxxwhxwvxxhwxvvwhwxxwwxxxxyxyixywxwxwxwxxxvvgvwwuxwwwgggffwgwwhxxxyxxxwxxwxwwxwwxxxxyxxxxxxxxxvgwwvwywxxxyyyxzzjzzhxyxyxixyiiiyxiyyhxjjzjjxyyyywxxxyiyyzzjzzxxyyy{{{{{yyxxxyyihiiiixxhxxzzzzzxxxxhhhiyxhxxiyyywxxxyhxxxyyyyiwxxxxyyywxxxyxyyywxxiyxyxxxyyzzzzxxxxyxyk{{{[{{{zzzzzk{zzyzzlȌȌxyyywxxxywxxiyyyyxxxxyyyiyyxxyyyyxxwxxxxxxhxxyxxyxxhxxhxxxzzzzwxxxzzzzziyhhihxxyyyyyyixxhyxxhhihyxxxxxjjjjjhxywxxxxyYYYYyyxxxxiyyyywxxxxyhhhixxyyxxihiiiixxyxyxxxzzzzzwxyxwwhxyxhxyiyyyyzyyiyxxxxxxxxxxyiyywwwxxxxxxyyxxxxxyxyizyyyyyiiyxxxxxxxxxxyxxxxxxxhxxxyyywwwxwwwxxxxxyxhyzzzzzhhxxxwwwwxxxxxhhxhxxyxxxxxxxxxxxxxxxxxxxxxxhxxyxyxxxxxxhhxhyiyywxwwyiyYyxxxwwxiyiiixwwxxxiiyyiyywwxxxxxxxxxxxxxxxxxxxyyyiyyyyyyywwwxwxxyxxxxxxxxxwwwwxxxxxyyyiixhxxxxhxxxxxxxxxxxwwwxxwxxxxxxxxxwxwhxhxxxxxxxxxyyyiiyxyxwxwwwxxwxhxxxxhxihxxxxwwwxxxxxxxiyyizxhxxwxyyxxxyyyxxyxyxhyiyyyxxxwwxxxwixxiyyyxxxxxxxxxxxxxxxxyyyyyyhhxXXxhxyyhxxxviuxggxvhxvwhxwxWwwwwwxwwhhxiyyIIiihwxgwxwxwxwwxXhhXhwxxwhhxXXhXwxhhxvgwwhywghgwxxxxwwvhwxwwwhxXXhwwvwxxwwhxwYiiYYiixhxxhxwxwxxyiyyzxxxxxxyxwwxxxyyyyxhxyyYiiyhxxhxwwxwxxxyiiixxxxyywwwwwwxhxhxxiyxxxxxxxxiiyyzyxyxyiixhxxwxxyiiiyyyiyYYiYyxxxxzZzZzwxhxxxhixixxyyiyiyxyyjjjjzxyxxxxxyiiiiiwwxwxwwwyyxhxwxwwgwwwvxywwwwxwxgvhxxxxxxxxhxxxxxxxxxxxvwvfvwfxwwvwwxvWvxgwvxxxxfwggxwwxxxyxxhyyhxwxwxxfwvwwxxwYYhixyyhyyxxihhhihyxxxxxxxxxhXXhhhxyxxxyyyiYYiYYyxyxyxyvvXuwXuwhgvwxyhihhhixixyixyxxxYiiYYiyxxyxyixiyHHxhhwvxvwwxxxyyxxwxwxxxWgxxxxxwxwvwxwxhxxxwwyxhyxixxxyhxxhxxxwwxwgvvwwhgugvxwgvywhxxvhxyyyxxxxxxxxxwyxxhxxxhxxyxyyyiyxhxxhxhxxxxxyyxxyxhxxxxwxxwwwxwwwxxxxxxwwwxxwxxxwwwxxwxxxxxxxxxxxyyyixxxxxxxxxyyyzzzzjxhxxhxxxxxwxywxxxyxwxyxxhhyixxyyiyiyxxzyyhyxhxyxyyyxxwxxxxxyyxxxzzzzyyyyyvgwxgwwhvvwggwvwwxxvwwwggxxxvvgvwwxuxxwXXxhXhhfwwfwwhvhxvwxgxgxwfxhhxXHhXwwvgvwhWxwvWuhugWgwwwxwvvgvxvgvwvvgwwwghwxwxwxwwwwhhhXXhxxwwvgxwwwvWgWWgvvgwxwxxwhuwxwvhhgwwhfwhwvgfgwwggvfgwwfxwfwvxwxwyxxyiyyiiywwxxxxxxxxWvvXxxxvwwwxxguwhgxxxhyyxyhhyhhyxxxxxhxxiyxxgfggvwggvxxxwhvvhxxxxxxxxxxxxxxxhihxyyyxyyyyiywxwxyyyyhXXxhyyxyyiiiiYiyhvvhvvgwxvxxyyyyiyxyxjzzjjzxxyxxxXXhxxiiyyiyiyxxyxxwxxwwxwxyzjizxwwxxwwyyxhyyxxyyxxxxxhhyyyyyxxxxxxxxxxxxxxyxxyyyxxxxyyyyyzzzzjyxxyxyxywxxxyxxyxhxjjjjzxxiiiyiixhxyzzzzjywyxxyxyxxiyyhhiyxxxxyyyy{{{{{wwwvxxxxxxxxxxxyyxxhgwwxvwxwxwxxwvhxywwwxwxwxyxxxxyxyxyyxxywxxxxvvgwguwxhwwvxwwvghxwyyywwwhgwxxyxxyixxxwxxywxhxxxXhxhHhXxxwXxwhhxvXvxhWxwwxxwxxwwwxgwwwhxwwwghwYiiY9YixWxxwwgwxghwwhxxwxxxHhXHhxhwwwwwXXxhHhhghwxhwxxwXyvgXwwxxhhxwxhxxvhhXxhXxwxxxxwvhwxxxIiyiIiixxxxxxxxxxxxxhxhxhxyiyihyiyyiiyxwxxxyyyyywwwwwwwxyyixxxxxxxxhxxhhxhxxxxxxxxxxxwxxxxyyyxxiyzyyxxxxxxyyyywwwwwwwwwxxxxhhhhhxxhxhxxxxxyxyywwwxwwxwxxxyiyyyxxxxyyyyyxxxxxxxxwxhhxihxwwwxiiiyiywxyxwiiiyywwxwxwxyyyxxxxyyxxxxxxxxxxxxxxxwwwxwwwxhxxhxhxzzzzzyxhixxhxxxxhxyxxxxxxxywwwwxxxyxxxxxxxxxxxxxxxxxhhxhiyyiywwwwxxwxyxhhxhhxxhxxxxxiiiyiywwxxywxxxxxxjjzzjxxZjjjjxxxyyYYyYyxxxxxxxhxxxxxxxyyyyxxwwwxwwwiyjyyhxxhxyyhhhyyiyyyxhhyhhxxhxxxhxxwxwwwwwwxwwwwxwxxxxxxyyiiywxxxxwxxyyYYyYYyxxxwwwxwxxhhxhhxxxxjzjjjxxhxhxxxxiyhhhhyxxxxxxxxxxxxxxxxxhhhhhxxxyyzyyxxxxywwwxxwxxxxxyyyiiyywwwwxwwxyyyyyyxyxxhhyhxxxxwwwwxwwxxhhxxhxxwwxxxxxxxxxxxxxhyyyyyxxxxxxyyyxxxwwxxiiiiiwgvxwwxxwwwwxwwxwwwfxwvgwwiYYYyhwwgvgwwvxhyxhxxhxxxXwwxwhghhhhxvgwxhxwgxwvwwgwxgYIxhXiYvfggvvwwwwwggvwgxgvwwwhxwwxwgwwhhxiYxiIiixxhXwxvvwwxxwxiYyhXxiwhxxvhxwxwwxwwxxxWwxXxhvhhxxvwwxwwxxxxxxwwxwxwwxxxhyxxxxxxxxxhxwwwwxwxxxwwwxwxxxxxyiyyyyyxxxhxxxyiiyxxxxxxxxxxxxxxxyxyhyggwyyixiiwwxwxwwwxxxxxxXiwxhwxxhxxxxxxwwwhyxxxxwwwxwwgywwxvxxxxxxyxxxhxxyxxyxiyyyxyxywxwxxhxvhggxvxwxhxxxxxxxyxxhxxxhyixxxxxxxxxxhyxxxwxxwxwxxxxxxxxhyxwxvhhxxxwwwxwxxwwxhxxxxgwwxvxxhwXyxhxxiihxxxwxhxxxxxxxxxxxiyiiXxxxyxxxxhxxhxxxyxxxhxxxxxwwxwwwyyyxxxxxxxxhxxxxwwxwwwxxxxxhhzzzzxxxxxxxxxxxxhxxyxhxxxiiixxxxxxxxwwwwwxxxxwxyxyyxxxxwxxwwhxhxxxxywwwwwxxyxhxxxxxyyyixxxxxxxxxxxxxxxixxixiyyywxxxwxwjiyiyxxxwwwxwxzzyZzxyyxixxxxxxhhxxxxxhxhxxxyyyxwxxxiyiiyxxxxxxxxxyyyixxxxhhwxxwxxxyyyyyyxxxxxxxZZzyyhhxxxxxxxxxxhxyxyiiyyyxxxxxxxxxxhxxxiiihxxywxxxwxwxxxxyxxxxyyhyiywwwyxwwwijyiyyyyiiyyyxxxxxxxwwxwywwwxxxxyyyywwxyxxhxyyxxixxxxxxxxxxxxyyyxxxxiyiiyxyyxhxxhxxxxxxyxxxxxxwxxwxxxiiiyyyyxxxxxxyyyywxwxwwwxxxxhxxyhxxixxxyxyyixxwxwwwyyyxwxxxxxxxxwxyiyyixhxxxxxxxxxhhxxhxxxyxyxxxxxyiyyxxxiiyyyxxyxxiYxXYxxgwwwggxxxhwuwxhgwvgxwgvgxwvxvwvvvvfxvxwgwvhYiYxiwxxwwxxwwvxwwxhhxxwXvxvxXxwwgvwxwxgwhxwwhxgvwwgwghXYIiiwhvwxhvwwhffwwwuuywhgxwxwxxwxhvvxwxgvvxwwxgwhxxhxwhxwwxwwYIyhYhhxxxxyiixxxwwwxwyxhxxxxxxxxyyxyyhxwwwhxxxyiyYywxyyzyiywxxxhhhxyxxxxxxxyxyyxxxxyiyiyyjyxxxxxyyxyhhwwwwxxxxxxxxwyxwxxwwwxwxwwwxxxxxxxxxwhwhwxxxxwwxwxxwwxwwwwgxxvxhxxxhwwwwhhvwxwxxwvxwxgyxhxxhhxwwxghvxwwwwwxhxxxxxhxvYwxxyhwxyhyhxxxxxyxyxxxhyxxxxxwwwwwwwxxxwxxwhyxxixhxxxxyyxyxxhyxxxxxyxixxxxhxxhhwvhyxxxxxxxxwwwxwywxxxxxxyyyxxxxxxxxhxhxhxvwyiwhhxxhxxyiiyyxywwxwwhxxxhxxxxxxxxxxxxhhxxhxhxxxxiyhjzzjjxxxiyyiyxxxYYyyYywwxwwwwwwxwwxwwxxxxxxxxxxxxxxyyyyyxxxxhhhhhxhyyyxxgwgwxwwwxwwwwxhxxxhhhxxvwwwxxxwxxxxxwwwxxwyhxxhyxvXxxxxhxhxxxxxxhyhihxxhixwgwwwwxhxxxxxxyxhxxyxxxxxxxxxxvxwixxxyxxhxxxxwxxxxxxxxxxxwxwxwwxxxxyyyiiiiyyiyywwxxxxwxxxxyiyyywxwhxyxxxxhhxxyhyyxxxxxxxxxxxxxxxyyyiygwgxhwwwwxwxxxxwgxvwvvhviIyHYihvvxvwwxuxwgxWxhXwxxxhwhwwvxgxxhhXhhwhvgiwxvgwxxxY9yYYYiwxgwvgvwxwhwxwwhwwgwvxwgwihihhiIyYIiYwwwxxhwgwuuxwgwwhhhwiHXXiYgxxhhvxwwgxvwxxwxxxXwhvwYgwwXwxwwxgxxxxxxxxwwwxhhyxhxxhxiiyyyxxyxxhxxxyxxxxxxxxxxXywyiwwwwxwwwxxxxxxxhyxxyghyhihixxxxhxxyxxxxxxhhhxhxxxwxxxxiiyyihxyxhxxxxxxwywwwwwxxxxxxhwwwxwwwyiyyyxwxwwxxYyyyYyyxhxxxhxxxxxjzjjzxxxxxhhhhhxxxxxxyxxxxxxxxxiiiiixxxxzzzzzgyxwxyxyyixyxyxxxwxwwwxxxgxxyhxxxxxhhxxyxxxxxxxxxxxwwwxwxfwhxwwxxxxwxxxxwxwyxwxyyyxyxxxxwgwxwyyyyyxxxxxxxhhxxxxhyizyyxxxywwywxyxxyiiyxxxyyiyiiixxwwxxwxwxyxxxxxxxxxxxxyyyyyyyyxyhyyiyyxxwxWwywwyxxhxhxxhhhwxxxwwxxxyhwhxhhxxxxyyyyYyyHihiixxxxhxxxxxxyhhihYyyyYYyWwywwyxxwxxxxiyiiXyxyyhxhhhhwxxwxxwxxxxXwXYyXHhhvWgvwXwwwgxxwwhxxfvhvhwwvxhwhhhwwwwvwwhgwwfvwwghgwwYXyiIiYgwxhwwwxwhfgxxgHhhHhwwgxwwhgxXxwhXxwxWvwwvxhxwYYyi9YixxxxwvhwwxWwwxvhxxwuxxwXXxwwxxxgwxwxxvwxxvghxXxxXxvwgwxwxIIiiIiixxxxxyiyyiixhxhxhyiyxxxxxwxxxxxxxihhhxyxyxyxxxxxxwxwxwwwyyyyxyyyyywwwxwwwwxxxxxxxwxwwxywxxywwwwxwxxxxxxxxxxxxyyyyyxxxiiiiiixhxxxhyyxxxxxwwwwwwwxxxyyzwwwwwwwxxxxxyhxiihxxxxhxhxxyxxxxxyxxxxxyhhxxxxxxxxxxxxzzzzxxxxxxxxxyxxxxxxxxhxhxhyxyxyxyyiiyxwwwxwxyiyxyhyyyyyxyyyxxxxhixxwwxxxxxxxyyyiywwwxwwwhxyhhhyyyxxxxxxxxxxxxxxxxxxxyxxxhxhxhxhxxhhhiiiyywwxwwwxxxxxxxxxhxhxxhxhxhxwyyyiixxxxxxxxxxxxxxxxxxjjjzzyYyYyYxxwwxxhxxhxxxyhhwwwwxxwxwwwwwxyyyyyhhhhhyyiiyxxxxxhxxhhhhxhxxxxxxxxwwxiyyiyxxxxxxhxxhihxxxxxxxxxxyxwwwwwwwwYyyYYYyjjjzjhhxxwwwwywwxxhwxxwxxxxxxxxhhhhhiiiiiizzzzz[[[[[[{zzzz[[[[[[{zzyzz[[[[[[{zzzzzzyzzzzzzzzzzLLLLLLČYYYYYYywwwyyyyywwwyxxxyxywwwwwwwxwwhhhhhihhhhhhhhhhhhxjjjjjhhxxxxxxyyyyyhhhhhhxxxxxxxhxwyxyxwxxxxxxxxxxyyxxxxxxzzzzziiiiiihhhhhixxxxxxxxyyyyyhhhhhhxwwwwwwYYYYYYyxxyyyhhhhhhjjjjjwwwwwwihhhhhyyyyyyyyxxxxxxzzyzzxxxxxxxxxxxxxihiiiihhhhhhxxxxyyxhhhhhhxhhhzzzzzxxhhhhhhyyyyyxxxxxxxxxyxyxxxxihhhhhxxxxxxYYYYYYyjjjjjwwwxxxxxyyyyyxwwwxwyyxxwwwwwwwwyxwwiiiiiijjjjjxxxxxxxxxxxxywxyxwxxxxiiiiiixxxjjjjjxxxxxxxxxyyxyxxxxixxiiiyxxxxxxxxxjjjjjxxxyyxyxywyxxwiiixxxxxxiihiiixxxxxiiiiiiiii[[[[[YyYyYyyjjjjjhxhxhxxhhwwwwxxwyywxxxxhxhxhxhxhxhyxxxxxyyyyyxxyyyyyxxxxxxhxhxhxxxyyxxxwwwwxxxxyxyxxxxxxhhzzzzzywwwwwwwwwiiiiiyYyYyYxxiiiyywwxwxxwxwwxwwwwwwwwxxxxxxxxhxhxhxxxxxxxjjjzjxiyhxxhxxxyyyiyxhxhxhyhxxhhhwxwwxhxhxxxxxxxxxxxxxxxxxxxyyyyyhhhhhwxhxwghwhhhhygxvfgvwxwvxhyxxIhhXHYhfwxxggwgxwIhxhHhiwhgwgwgwvgxvghxwwvwvxhihwwghwxghwwwwwxxvhgwwxwwguxgixwXxxwxXxuwgwxwwhhxvxx9iyY9YYvvwxwxxxxxxxxHyyhHhiwXXwxxywhvvhxxxwxhxxvhhvvvgvvxgwwwxwwwwxyyyzzxxxxhhxhwxxxwwwwxwxyyxxughugggxhhhhxwwxwwhxxhhhxhxhxxxxfwwvhfwwxvwwwwxxwwxxwwwwwwxxxxxxywwxxxwxhxxhhhxxxhxxwwwxwxwwzvvgxvvghxwhhihiYyyYYYywwxwwwxwxxwwwwxwwxfxggfwwxwxhvwhhvwxxgxxgxwwxwwwxxxxxxxxhxxiihyxxyxixyiihxxxxxwuhwwwuhhxvxxyhxhxvhgvwhhwxxxxxxuXXuxyxiiiiiihhhxhXxxXxhxhxhyxxxxxyyyyyxxxxxxxxxxwwwYyYiYiywwwzzzzzxxxxyixhxhxxxxxxyyyyyxxxxxxhxhxhxjjjjjhxhxhxxxxxxiiiihixhxxhyyyiixwxhxhxhxxxxxxxxxxxwwxwwxxxyxyyhyhhxhxwxxxyyyyxxxxxxyyyyxxxxxxxxxxxxwxwwwwhxxihhxiyixyxxxxyxyxyiyyiyxxxxyxxIhxXHXhvygvgxxxxxyxwhuggggwxxxxfggxuxhgxwxwxwxwxxIYyYIYywxxxgwhxhxvwxwxwxxxhhhXXxxwgghxxhxHhxhHiiwvhvhxxxyxxhhxgwwgxxwywwwxxhhhXhwhhgxwgwhwxhwwxx9iyY9YivuyhuhwxwiyhihhhhxhxwxwwwvwvxvxwxxxxxwxxxgwwvxxwvxxxxxxhxxxhxyyyxxyyxyxxyyxxwfxwhwfwwwwxxwxxxxxxxhhxxhxhwxxwxuhguxhghxxiihyxxxxxxwvhwxvvxhxugwxgihxxxhxxhhhxxxxxxxxxxxxhxixhhhXXhxxxhxyiyyiiiyxyxyxuxwuhhiwxxxxxxhxxhhhxxxxxxwxxxxYiiYYYiwwwwxxxxxyxhxXXhhxhxhxxxxxxxyyyyywwwwxyyxxxxxixhxhxhxhxhxxxxyyyyyxxxxxxxxhxhxhxxjjjjjYyYyYyywwwwhhxywxywxhhxxxxxxyxxywwwwwwywwwzzzzziiiiiixxxxxxxwxxxxhxhxhxxxxxxxxxyyyyyhhxxxyxyxyyyyyywwwxwwwwxxxxxxxxxxxywwxwxwwyxxxxxyyiiyywwwywxwwyyyxxxxxwxxwxxxxxxiiiiiivwvxhvvwgwxxwwxxxxhxhxxwwwxwwxwxwhwhgxhyhhhxxxwggvwyvwxxxyxyxxyyxhxhxwxxwxxxxhxxxhxxghuwxwwhyxiiixxxxxxhxxhxyxxyyyxvwwxvxxxxxxxxxxxxvwxxvghxwwWXxwgwwughhwvwvvfvwhwxihhHhxIIHiuxXwXyxHhxXHYhwwvxwfggvxwiwhxwwvhwvghixxvwvvwxxxxxxxxwxxwfwvwghwuwhyvwxgxxggxhhiihxxxx9YyY9YYuxhwwhhwwxxwxwwxxIhhXHYhgwgvggwwxxxvggxxvgxxggxxxxxhxxxhxwwwwwwxzwwhgxxhhxxyxhhxxxxxhxxhhhxxxxxxxxxxxxxhxxhhhxxxhxxhhxhhxxxxxxxvhwhvxxxxhhhhxxxxxxxxjjjjjxyyxxxxxxxxxxxywxwyxxxxxiiyyjjjjjyxxxxxxxxxxxxiiihiixxxxxxyyxxxxjjjjjxxxxxxwywyxiixxxxxiyyhhiyxxxxiiiiiiiiiii[[[[{jjjzzhxxhxxhxxhhhhhxxhhhhhwwxxyyiiyxwwwwwwwYyyYYYywxxwxxxxxxxxxxhyxhhhiyyiixxxxxwywxwxwwwxxhxxxxxxxyxxxxxxxxiiiiiizzzzzgvxwixvxxxhxxhhhxwxwwxwwxxxxxhyhxxhhhXhxxxyxwxxwxYiiYYYihxxxhxxvhwvghyxxxxxhxxhhhxxxxiyyiiiyxxxxxxxXxhXxugwwughhwxxywwwwwwwxwxwxwxwwwxwxXwXxyiiiiiwwiwgxxxxvhhwwhyihixxxxxxxxxxxwwwxwxxxxxhhhixYyyYYYyhxxxhxwgwhwhhxxhyhhhxxxxgvwwhhvgwwhxhhxxXXx9YyY9YYvhgwwhhxxxxxxxyvvhvwvghxwwhwwghwxxXXxwgxwgxx9iyY9YixxhhxxxxxxvwhvvxxxhxhxXXhhxxhxxxx9iyY9YYwgvhxhhwhxhhxXxXxwxvwwghxXxhXxvwhxxxhgXxxXxxxxx*jjJ*JjxwhvwxwhwvhwxxyhixxxxxhxxwXYyxhhhhhwxwxuwxwhviYxihXywxxwyyxhxhxiwwyhvyyxxiwhxwhiIyixiiyywYwwwxxiYyiihyyxhwwyiyxyyxyhhvxxxvixxyiiyixhxxxwwwxxxxxxxxxxxxxxxxxxxxxxiyyiyxxxxxZzzZzxxxxxxyyxxxxxxhhixiixxiiiiywwywxwwwyyyxxxxxxxxxxhxxxxxxxxwwwxwxxxxxwwxwwxxxxyiiiyxhhxxxyyyyyxyxwwwxxwxwhxhxxxxxxwxwxxxxxxxxggxvhgvwwxxxyyxxxwwxwxxxxxxwwhgwwxxxxxwhwhwwwhxxxhxwxxxyyxxxxxxxxxyxwwwwhxhvfwwwwwxwwwxiiiywwwwxwwwxxxxxyyyxxxxxhxxhvWWwvwhxwwwxwxvvghwxyxxyxyxwwwwwxxwxhxxhxxxhyyxxwgxhhvxwwwxwxwwwxgwhwgfgwwwvxxvwxhhxxhyxxxyxxxwwwwwwxixyyxixxxxvwvxwwuxwgxhwhXXwwxwxwwwhxxhhhvxxyhhxxwwxwxxhxxxxyiyyiiyxxwwwvwgwvxxxvyYYyyyyxxxxxxxhhxxywwwjjjjjxxxxxyyyyyxhhxxxxxyxxyxxxxxxxxxxxhhxxxxxxxyxhhxxxxhhhzzzzzwwwxxyyyyyywwwwwwwxwwxywyxxiiiiiyxwXxxywwwvxvwyuywwxwxjHhhhiihihiifwwxxvwwxuxwhxyhgxhwwvggxihxhivhuyxxxvZ9YYYZiwxfwwyxxxyxhxxwuxvxhxiwjHhhhjywwyuxwXxxvxvwyjIiiijiyyhyygwvxhwuywwxwyhgxhgxhyxyyxxxxhyxxxhxxzzzzxxhyyyyxxyyxyywxxxxyxwxxyyyyxiyyyywyyxxzzjzzxxwxxhhhyxiixyxuxwwywhxxyyyxxxyyyvyvwxwxxxxxxxxxxvwxxxwxihhxyhxxiyxxiyyxxyyyvxgwwwwwxxwxxxyxyxxxhxixhxxhhihxxvhxwhixihxxxwxxxyxfwwhxwyYYYYyyxxxyhhhixwixxxgwxxxxxxxxyxxvwhhwxwwxwxwxxxvxuxhyhwwxxxxuxwwywXxxiiiiiihxxvyhxxhhihxxhhhxxhxyxxXYYyyYyjzjjzxxxxxxxwxwxxxxxxxxwxhhxxhxxhxxxxxxxxxyiyyixxiyyiyhxxxhxhhxxhxxxxxxwwxwwxxwwwxwxxxxiyyyyywwxwwhhhhhyyYYyYyxxxxxxZjjjjxhxxxxxxxxxwxwxwyiiiiyxxxxxjzjjjxxxxxxxxxwwxwwiiiyyxhhxhhhhhxxxwxyhxxxwwwxwwxxyxyyxxxhxxxiyzyyhxihhiyxhxwvwgwxihhiviwwwyvxyyIIyiiYYwYwwwxyIXiiXixvhghwxwxhgvxvyhxywxvxgxywwyxxwwyxxxhxihwhxwgxwxhwxwhvxxvxx9YyYYiiwiwxwwxIXyiiiigxXxyihywXwwxhxxwwgxwgvwwwxhxxxxxxxxxxwwwxwhwxwwgxxxxxvhxwwhxgxwvgwgxhxxhyxywwwhhxhxxhhxxxxxxxxvfhvwfwwwwwwwxxwwxwxwwwwwxwwxxvXxhXxxxxxwwwwxvwggwhwxhxxxxxxxvvWxwwwxhxwhiihhYyyYYyyxxxxxxhxxxyvwxwwhwgwxxxxwwvgxvwhwvvwywhhwwxxwxxxxxxxhxhhxxxxxihxhhyxxxxwwxxwxxwwwhuhhxxxxyxhxvwxwxwhwwxxhxxxxxywxwxwvxhXxwhxxiihiihhxwxxwXXxxggxwwwuhhgwxwfwwxvwwhhxxxhhyhhYYyiYiYuwwxxhwvxwxghwvhihxXhXhvwwwwwvuihwwhxxxxfvxvxwvvhgwuggwwwhvwxXwwxxhhxiihixhxxhwwxXxYhhhXihwwwwwwwghgxvywywhxvxfvwwhwwggxvxxgxvwwwxwhwhwwwvwhxvwwwgwiIyYiiYhhyhhwwwwxxgvxXhhhxhwwxgwxxhwgwxxwhwhgwvi9yiYYivxhwfhwwwxxwxwwwhxwwguvwvwwvxwgyIyhiiiwxhhXXvxvwgwiIhhiXwwwgxggvWwXwhgwwwvhwwwwWwxwhwxwxwxwwwwwwggwvwxhvhvfgwvvxxwxxxXhXhhhvwwwwxwghxwXhxhhXXwwgxgvgwvvvggvxxwwvuXvvXwvwghvwxwXvwxgwvwxyvxwwvgwwxgvhwvhvgxwvvgxwxvwxxuvgvwwxxwwxxHXxhXhhgwwgxwgvxwWgguggvuhghfgwgwgwwggwggwggvggxhwwxxw9XIXXhxhwxwxxxxxyXhxxhXxghxvwVgixxYyvuXXwwwwvwgwwg9YYYIwxxxhhWxfxwhxhvwxhwwwxhHxxhiYxxxxwwhwwwx8vXwXXXvxvwwhxvvGyYxxxyXHhvhhwwWgyhxiivWxYwyxXXxvxxxwwWwxwvxgwwwwxxxwwv)IXHYxxehhvfwXhxxhxxwwwwwxvxwwwwhygwXwXxuXXwuxHHxhhvhwhxvhgwgvwwgeyxuwgXvxWWvwxhhvxxxxxxxxhxhxvhwxxgxwwwwxxhhxhwtxxwvvvGwXXXXhwhyXghhgvhhxvvgwXWvyghvxvxxhhwvgghwfggwwfwxxxxxxyxxwwxhxeyvxvwvwXgxvxvvgfwwhxhxhxxwwwwwwwwwwwwxxxxxxxhxxxxwhwhuugghxxyxxwxxwwwhxxxhxxyyyyywwwwwwvvxvwxfvghwxihxxxxxxwxwxwwwwhxhxihhxxxhxxwwxwwywwwwxwwxvggvwwxvvhwgwxwwwwxwxwxxxxxxxyxxxxxhxxhxyhxxxxxYywhiwxxxxxywxyxxwxxhxxxhvwxivxxyiyiyywwwxxwwwxxyyxyiyxxxxwxxxhvxhgvhvwvvfwwwyxxwxyyyyxxxxuuixgghxxxxxxxxxihihhhxhyxxxhwhwgxwxwxxxxxxxxxyiyyyyyxyxxhxxyvYxgWxwwxhxwxyxwwwxwwxxxxxhxxxwxwwxwxxxxxyyyyzxwxxwwwwwxxxyxhxhxwwwxxxyxxxwwxwxwyXxhxhhxxyxxyiiyvywwwxxwixXhxwhiwwhxyhHhxiXhyhihxyyxyxxxYyyyiyyyxiyXyxxyXgxhxYjjzhhhxxxhxhiZzzzzvywxgywxxiiyyyyyXywxywXhhhhxxxxxwxwxwxxxxxYyyyYyyggwhwviyyhxxwhxwxvwwwhxxxxxxxxwwxwxwxxxwgguwxgvwwxXxxwxwwwwwiiiiiwvvxwwgvxhyxhxxhhhxXxxxyihihxhxhxxxhhxWwxwwxxyyyyYyyxwxxxxxxhxwxxxxhwxxwxYyyyYYyxxhHihihxyxxwiyiiyyxyhxxxxWwywwxxhxxhhhxxxXyxyyyyiywxyxxxxhhhhwxxxxXwwwgwuwhgxxxwyxxwwyxvwwgwwwwvyywxxwvvxxxwwvxxxyyxyxyyxxiixxxhxwwwvxxxxxxxxxihvgxxwwwyxxxwvwxvwxxxwxxxxxxxhhxxfxgxxxxxxxxxxxyxxwxhyyxyyyyyzxxxxzwgxxuwwhhxixxxywwwxwyyyxyyyyyyyxxgwvwwxwWixi8YwWxxxxhxhxWwxxihHhhIhxxgxwgwwxgwWxwvgXxfXvyHhgVwxgwxxwgwwwxxxxxxxxwwgwxihxhxhxxxxghuxHhvWhgfhhxgxvvgfghxxXxXYywxWwxxvhgwwxgwxxwwyyXhhXywxxwxxwywxwwwwygivxIiwGxxxyxxxhxxxxxxyxxxxxvvwwfxwxxxvxxxxxwxwwxxfwxggwgxxwwxyxxwwwwxxxxxxxxyxwxwxxhuwgwxggvxyxxiyyyvvwxwxxxxxxyyxxxxxxxxwxxxxwwwwwwwwwwxyyxxhxxxxxwxwwwxxxxxyxxyywwxxxxhxxyxxxxxxxxiiyixxyiiyxxxxxxxxyxyxxxxxhxxxhxxxxyxxxyxxxzyjjyxxhyxxxxxyiyzywwwxxyyxyxhyxxxxxwxwxwyyiiyxiyyyyiyyyxxxxxyxxxfggvwgvwvxwhxxhxxxhxxxwwwxwxxwwwwwxxwwXWxxxxxxvhvwxwuwwhggwxxwwwwxxixxyhxhxxhxxxxxxhxxhhxxwxgwxvvwgwhhwwwwwwwxxxxhxxxwhvgxghxxxxwwxxxxxxxxxxxhxxhxwxWvgwxwxwxXgwxwxgwhyhxiwvxwxwxxxwhxiyyxyiXyiiyYwiwxhxgvxxwwhxYYihighxxxwixxyhyYywihwwxxxxhwgxwxwhwiHhhiXiyYxxyyiYyhXxiyyyixixyywxxxhxwwxhhxxywwyyyyyyxxxxxxxxxiYYiiiywwxhhxxxxxyjjjjjxxxxxxxxyhhxxxxhhxxxyyyyyxxxxxxxxzzyzzxxxxxxxiihiiiwwuxxywhyyvxvwxyhhihxhxxxxxxyyyxxxvwxxwiywxyxxxwwwxxwxxyxxxixwfxgxxxyyhyyhhhxyhxyyyixxyxxyyyxxxxxxxvwhyxwxxyyyxzzzzzxhyxxiyxiiiyxxhxyhxjjjjjxyyyxwxxyxhxzzzzzyxyy{{{{{yyyxxiihiiiwxfxgyxxyyyiyyyhyyxwwxwxwxxxxxxxvwxxxwyyxxxhhhiyixxxyyxxyyxyyywwuyxxwwxxyxxvxvwxxxxxxihhhhyxhxhxxxxhvwhgxhwxxhxvxxwxxwjIiiijigyvxxhwvyxxwvxxwYwyyyYvxxwxxxwhwwxyhwvhxxygw[:ZZZ[ZxxvxwwxihgxhwhywxwhwjIiiijiwxhxixkJjjjkjhxxwxhxvxyiwyyyiwxxxhxwxwhhxixxwwwxwwyiiyyhyxxhxyyyyiyxyywwwxxwhyxyyyxxxxxwwxxxxxxxxxxxyxxyhhxxhxyiyyyxxxxxxxxxxxxyyyxxxxxxxyxxxxwxwxwwyiiiiywwwxxxwwwxxwwiyyiyxxyyyyyxxxxxwwxxxxxxxxhhhhyxxyyyxxxhxhxhxyhxxwwwwxxwyyiiyyyxxxxyyyxxxxxxxxxxxxxxxxxxhhXhhhhxhxxxxyyyyfxxhhwxwwhxwwwxwwxwwwwxwvxgwxxxxhxxwwwxwxxxxxxxhhhhxwxxxxxxxyyxgxxwhwxxxxxvhxxwhxxxxxxxxxxxxxwxvwwghxxgwwwwvfxwxyxwxxxwwwxxxxiyyyxxxhgwwwggxxxxxyxyxxwxxwxxxxxxyxyyfwvwwgwwyxxxxwwwxwwhwwwhxxxyxxwwxwxwwxwxhxxxxxxxxxvWgwwWxwgxwwvwhxwxxxxiwYhwxhwiyYIhhYYYxxyyXYyihihxxvxwwhwiwiwixxyhxghxxwxxxwwvwxxxwhwxxixwWwxwghixxxhxxIYxiYiYixxyyyXYyxhiivxhyhxxygwxwxxYhxXXXhyxxxxwhvwxhyihyhwgwxiwwhxxwwwxvhwhxxYYyIYIyxxxxxwwwvwwxywxxyxxhXhhXxyxyxwwwhxhhxXhYhgwwxgwvguuhuhughgxhvxxwvwhgwgwgvhXXhhvwwwxxvhvhxxxwYiyYYYiiXiihhuhxwxwvwxgggwxxvggvgvvgvwgxxwvvxguxxxvwwwwwwxxwhYiyXiggwwgvgxxwwWXxywwvvwgxxxvwgxwxwxgxxxhwhwhwwxghXyXiiywwvxvxhhxxwwxxgvffwgwfgwwwwwxwgvxxwhxvwwxgwwxwwxxgvwwyxwhhxxxXIyhiihHhxhhXXwxxwxxugvhgyhwwgxgwfvvwuxwhyxwhxwgxwIyyiiIiwwhwhxxxxwwxwxXXhhhhxxxyxHhxhhXhwgvvwvhxhwgvgxxwXwwxxgxwwwvwwxxwhXXxhhwxwwxwvhwxxx9iiYYYixwuwWgwwwvgixhxhhxxxhxwxywvhwhxfhgwwvwwXWwxwwxywwwhxwxhuhwvwvWhhhxxixxyxxyyxyvXxxxxxxxxxyyxyyhxxhxwWwwWvWwxhhvixhhvwhxwxwgwwwhhxxhigxxxwgxwwwvhgwhhyhxhxxxxhhuhxW9XIXHxxxhwxwwxwxHXhiXWggXyugWfXvxixgfXXhwgxfwwW9YYY9vgwwxhwvWvhwxxxhxxi9yiYYYxyxwwwxxh9YYYIuggxywweXyIhhhXHXvhivgVvhwxhuixvwfhiIhiiIXhvxhwyvwfgxxwwxxxxwwxxxx*IYIIgvxuwixwxxxxxxxxxxixyyixhhxxxyyxxwwvwxxxwhwwxhxxhxyxxxwxhxhxhxxwxwwwxwwwwfvhhwgwhhwwwwxwhyxhxxvvwwxxwxyxxyyyxxxxxxxwvgvwxxxyhyhxxxhxxxwhwwwwyhxxhyxhxxhxxxxxwxvxvxxxwxhxxxxihxxhixxxxwwxxxvXxxxxxxxxyyyxhhwwwwwwxxxxhwvxxxhxxxxxxyixxxyxxxxxxxxxxxvwhvxwwxvwwggxxxxhyxyxyxxvhwwxwwhghwiyhxxxwwxvwxwwxhxixxxwxxyxxxxxyyxgwwgwxwxxxxyxyxxxwwXxxhhxyyygxwxxxxxxwwxxxwxhzyxyxwwwxwwxxxxxxxxxxxywxwxwhxhxxyyyyxxxxxxwwxwwxxyyhxxhxxxxxwwwxxwwwxwgyhiHiuvXxyxwwxxxxwwwxhxyhWwhvyXgwxWwvgvxwxvhxxhhvhwxyvXhvggvxgwwwuhhwwwxxxhxhxywggxwxxxxxyxxxwxvxxXxvWghfgggwvwvgwwwwygwwXhhYxwxgxwxxwxxxwxxxxwxggwxhxwxxxxxxxwywxxXywXvwihgwxxxxxxxxhxxxhxxxxxxyyxhXXhhxxxxwxYiiiYyixxxxhhugxwwwxwwwhxxxhxxxxxxxiyyiiiyxxxxXXhxxhfxwxxwxxwxwxxxxxhhhxwwwxwwxywxxxxxixvhyhxxyxihxxxxxxxxxxyyyxxhvuxyxxxyyxxyyywwwwwxwyyyxxxxyxxxxivwxwgwxvggwviyyyiixxwwxxxxyyxhxXXhxyyyywxYiiiYYyyyxhxhhxxxxxxiyyyiixxjzzzjjyxXxhXxwgxugywzyyxxxxxxyyyyyxvxhyyhiyyyyyxxxvhfwwxxxxhhxxhxxxxxxxyyyxxwxxwxwxyyyyyyxwgxwvxwxwxYigxXyyyZzzzzvxggxxhwxgwxwwixwxixiIihiIgixxxyyyxyixJjjjjxyyxXywxXxwvxxhhwZzzzzhxwwxxwyyxxwxxxx[{{{{wxwxxxxxxxxxxiYyhhiYhhxhxxyxxxxyxyxxxxwwwvxvxwxhxxvwwhwwxwxxwxwwwxwwwwxhxwxxxxhxhxxxxXhhhvxvvgwyyxyxyxxxgxxwyxxxxxxxxxxxxvwxgwxxxwxxyxxyyxxxxxxxxiiiyyxxxzZYyywwwwwwxxxxxxxyxiixhxxhxxhxyxxxxxxxwwwxxiyhiiiiiyhhxxxxyiiyyyyywwxxxiiyyiwxwiyiyyyxxwxwwwwywxwywwwxiyxxhhxxxyYiiyxxxxhxxxyxxxxxyyxyxxxxxxxxxxxxxxxyiyyyxxxyyyxhvwwwxwvghxxyxhxixxxiwhwiYyyYiiwhhwwwhfxgxhXiiihvxwxwxywywxxxxxwwwxwxwigxwwyihhiwgwwxwwxiIyiiYYyyxxwXwwwxxYYxyiiihxwhwwwwihxixwxxyxXwwxwxvwxvvwvwxwxhhxixxxihxhhyxxxxxxhhxxHHhhiwyxxgwvwxywwXWxwywhxhhxxxhyixxxxhxxxwxywxYyyYYyyvgwwxwXWvwghwwwxxxxxxxwxwXXwxxyxxxxxxxxxxiyiivwgwwwxhhxxxxyyyyyxxhxxxxxxywxyxxhhxxxxxhhxxxyhhxxxhhjjjjjxxxxxyyyyywwwyYYyyyyxxyywwwwwwwwwwyxwwxxyxxxxxxxxxzzzzzxxxxxiiiiiwvgwxxxyxyxxxxhhhixxiyvxxxwwyxxyyxxwwxwxwxwxxxxxxxyixxhuxwwxwhyxhhhyxivxvwyhxxyxxyyyixyyyxxxxxvxwhxwxxyyywyyyyxyyiyxwxxyyhxxhxyxyyyyixhxxwxxxxxzzjzzxhyxxxihhxyhyyyxxxyxxyxxzzzzxxyxhxxwyyhyyvxgwgjHhhhjyvxuxxyhvuywwxwywfwwxhgxhwuxwwxwyuivxhxxwiihihZ9YYYZiwwyuxwhxxvyvwxyxwXxxywwwihxhiiHhhhjixgvhwwyxxxyjIiiijivyvwxwwxuxwXxyfxwwxvhgxhgvhuyhxxwxhhhixxxxuxwwxwXyxxyxxxhxxhwwwxxwxxgxwxxiwwyxxxxwxxxxyYYYYyyvhwhwxhhihyhxxhixihxxxxfxwwhwhhxxvxhyxxxiiiiiixxxXxxyxxxxxxxxwxxwwwwyyyyyyywwwywxwwwwxxxxxxxyxxyyhxxxyyywxxxwwwxxhhxxhxxiiyyiyxxxxxxiyhwwxxxxxxxxxxxxxxxxxyyyyyiiiiixxxxxxxxxxxxhhxhxyxxywxxiyjyyxwwwxwwwxyyyyyxxxxxyyiihihxxxxxhhxxxxxxxxxxxxxxxxyiyyyyyiywxxxyxyyyxxxxxxxxxwwwwwwywwwhhhhhvxwxhxxxxwxxxxxxxxyxwwwwhwuhhhwiiiywgvxwwgwvwwxxwxxxxwwxwwxxxyxxhhxxxxxhxxxxxxxxxyxyxgwvwhhgwwxxyyxvwwxxxwxxxxxxwxxxxhwgxhyyxxiixgiwyyYIyihIhwYwwwxyXXyyhYxxxwwhhwwhgwxyxhxixywwxhxxxiiwxywvgwwxxwxivxxwxxxHYyhXXhiwgxiYXyiYhxhyihxyxhxhhxwhwhwggyxxxxxxxxxxxwwxxvgwxxxhhhhvvwwwhhxxhxxhxxwxwxwwwxxxyyxyxxhxxxywwxxwxhxxhxxwgwxhxwxxxxxxwxxgghxxxgxxxxxxyxwwwxwxwxxxxxxxxhhhhXxxXxgwvxwwgfxxyxxyyxxxwwwxwxhxxxxwwwxwywxwhvhxxyyxxyxxxxxxxxhxxxxhyxiyvxwvxgxvwwvwwwwwxwwxxxxwgwgxhhwxxhxxxxxhxxyixxwgvgxwxxggwxwwwwxxxxwxvxwyxxxxxwxxxhxxxhxwhwxhxxxxxwxxwxwxwxwwwhwwhwxxxxxwxwggvxwwwwxwxxwwxxxwwxhxxwwggwxxwwxxxxhxxhhxxxxwXvyxxhwfvwgxwgvhvxwxxxxxxxxxwxwvgwhXwwwwwhhxwwxwwxxyhxxxxyxxxxxxxyywwxxxwwwwwwxxwwwghwxxxwwvwvwvxhwxxwxiyxxggwxgxwxxgxxXHhvXyxyyxxxxxhhxivxWgwhXgwwxgwwwvwwxvhxxhxvgwhWhwvWwywwwxhwxxxxyxxyxiwXxxxxxhxxxyxywwvwgwWxwugghvhhwxvwfwwgvyhyxvXwwgXxvxgwwwxwgvwhyxhyhxxhhxxxxxxixxwhwhXxwXxgwwgywxyxyyxxhxxxxyxxyxxyxxhxxxyhyyyyyxyyyyyyyzygxvgvxgvxxxxxxxxhxxxxxhhhxyyyxwwwyyyyxxgvxwxxxxwwXXxwwvhivgxwuhwvwhywxxxxxuggwhwwvYiyiYiYfwwwwvghhgxgwwgxXhxXXYhggwwxhhuxhwxxgvwwwxwxwvfxwvxggvwhhhhxwxgxgwxYhhhXihhxhihxwvvxvwgvHyyhHhixxxxxvwwxxxwviwyxhwWwxXxwgxgxwwgxwxwxwvvwghvxghxfghwwfvwxvwiXyiYyiwwhhgwvxxwxhxhhxhxxwWwhwwhxxxxywvvxvwwxxwhvwhhvxxxwiHyxhiXfhwwgfwwxwxwwxxwwwxwxwvgwxxwhwvuxvxwwggxiXiiyhwxxyhhgxwxXYyxhiixvwwxvxxxuXXuxyxwwwxwwxwhfhxxvxvgwxgwwwwwxxxxhwwhgiyxyyWggWWvvggwhwwwxxXhxxhXhhxwwwwwwxxwwwxYYhhygwggxwwxwvvxwxwxihhyxXhhhxfwhhxwxwxxyyHhxhXhXvhxxwhxXxxxhhhwwwxwxwxxxvhwhvxxxvwhxxxhg8X8WWwwhwgwyxwhiXyhxyXHwvxghfvwGWhvxhhwvXHxxhhWvX8YIXHgwwwwwXwvwgwuhwgwygxvxhhwYHxxhhXxxhwxvhxgx8YIXXfxgxxhfvXhXxxyh9hyXYgwWgxwxxhhvwXhXwyhXIxihiguwXxxwwvxwgxwxvwxxwwv)IHHXhxuxhhwvwXxxxxxyxvxwwwywvvgghwvggwgfwXXhhxuwhxwvxwgvhhuxywxfvvghhhxxhhhhxxxwxxwxggwwxxxwwwxxwwwwyixiihwvWWwXvyhgvhxhhvwXxwxwhgwwwxggwxhxwwxwxxxxxhxwwwxxwxxxxxxxYxuyxxwwXxxxxxhxxxhxxxxxxxxxhhxxxxxxyihxixxxxhxxxhxxwwwwwwxxxxxxxxyvyvwhxyhhwivyxgxxxxxxxhhxxxxxxxxxwwwwwhwhxyxyxhxyixyxxyyxxhxxyyxxxxxxxxxYxwxiwwwwwxxxxxxxxhhxxxiyxxiiyiyyyxxxxixyyxxxxxxxxxxhhwxxxxxxyxxyxxxxxxxyvhgwhwwggfwxxxhwyvghwwwxhhhihixiiyxxyxwiyyyyyxyxxxxXvxvhXwwxxxxxxviwyxhwxxxxxxxxxxyYxxhiXyyyxyxjzzixwxxYhhxxxihyhiIhxXXwhxxwyxyxyyyxxYyyyixxxyxxXxxihxwwvxxhwiiiyXwxxhixwxwwwyvZzzzzvixxiyyyyyhyiYxwxiwXwwwxxvxgwwyyyyyyywxwxwwywxwwwwxxxxxxxxxwwxwxxxixhhhyyyyxyyyyxvwxwgwxxxxxxyyhhyywxxxxxxxxxxxxxxxxxxyyhgvggxwvhhxxxxwxxxxxwwxxxxxxxxxxxxxxxxghgvxgwwxwxxwwhhxxxvxwgwxxvxxxxxxyxxxyxxxhxxhhvgwvgxvwwwhhhhwxwwwxwwxxyxxxxxxxxxhhxxxxxXXxxxiiiyyxxxxxyyhhxxxxxyxxxxxyiixhxxxwxxxxxxxxxxxxxxxxxxiyyiyxxxxxwwwxxwwwyyywwxxxxxxxxyyiiiyyyyyyiyxxyxwwxwxwxxyxxyyhhxxxiiyzyxxxxxyyxwxwwxyxywwwwwxxhxyyyiyyihhxyxxxhxhxwwxwxwwxxxxxxxxxxxxxxyxyyyyyyxgwhgwwwxwxwwihxxxyxhyxxxyxxxxwwwvxwvwwxxxuwwhwxxxvhhwvvxwxhxxxxxxxxxxxxxYyyyyyyhhyhhwxwvxwhvhhxxxywxxxxwxxwxxhxwxwyxwhhxxxhxyyhxxhwWxxxiIxhhyXxxxxvXxxxxXywyhwwxxhvwwgxwgvgwxhwiIyiXhhwgvxwwxgvYwxxxhwxxhxwygwxhxIhhhiY9yYiiiwXwwwxghvxhgwxxxxXwhvhhxxvwgwxwvxwhwxxxYxxxyiIiiiiijjjjjxxxxxyyxxwyyxxxxxyyxxiiixxxxxjjjjjxyyxxxxxxxxyyxxixxiiixxxxxxxxxxxjjjjjxxxxxxwyxyxiiiiixxxxxihiiiixxxxxiiiiiiii[[{[[iihhixhxxihhyxhwgxvxvxxxxhhwxxxxxhxwxwiwxwwxwxwxYYYyyYywxxxxvwhxvxxhhhxyhxuivxxxxvxyxxxwwuyxywxhxhxxxwxxxxxxxxiiiiiiYxxxyiyyyyxxxxxxhhhxyiwxxxxxyxxhjjzjjxxwxxxxYYYyyYyhxyxyyyyyiihhyxhxxxyxyiihiiixxxxxxxxxyzzzzzuxvxxxivxxxwwwxxwxxwwuyxywwxxxxiiiiiixxiwwxxhwhhhxyixxyxxxxxxwvxhvwxxxxxxxxihhiiYYYyyYygvwxxvxxxhhhyxhxwxxxhxxxhxhhhyxxxYZ9YYYZivixwhyxyxhgxhgvwxhvxyxyXxxyi[:ZZZ[ZxyxyhwgxhwvhwxvYwyyYxiyxxxhvwZ9YYYZixwhgwhgxhgyxxxXxvwhiwyyyiwvxwiXxxxyXyxyxK*JJJKjjzzjjYyyyYyywwxwxwwwwwxwywwxxxxhxxxxxiiyyywxwxxxxxxhxxxixxxxxxhxxxhxxxxxxyiiyyxxxxxxxxxxxxxxwwxxiiiiihhhhhzzzzzjjzzjxxhhhhxxxhhxxxhxxihxiywwyiyyyxxxYYYYyyywxxxxxwwwwxwxxxxhhhixxyyiiywwxwwwxwwhxxxxxxwwwxwxwxxxxxxxxxxxxxxxxxxhhhhhyyzyywgwwxxYyyyyyyxxwwwxxxvXhwwWiwwyxxwxvwXxvxXxwvhxvwwxwxyxxxhyyxxhxxxxhxhxxxihxxxyxxyyxxgvwxwgwxwgxxhxxxxxxxHhhHhxxxxxxWwxXxiyiixxxwvhwxxxuvwvxxwvxwghxxxiiiwwwxxwwwwXxhXhxxhhhwixwgvfvxxwvwvvvwwwwxwxxwwxxxxyxxxxxwxwwwxwwxwwwwwxxxwxyyxxuwwggwwhxhyyxxhhxxxxxhwhhhwxhxhxxwwwwxxwxxwxhyxhxxiyiyyvvwwwwhgwwY9yYYYiIhhiihyhxvhgwwWxxwwhwxxxxXwwgxxwwxgXIyiXihxhxwwxhxxxxywXvyxxiwhwxwyiwvXxxxxxxxYHyhXiYxwwhhxYxwyiwwwgwxwhhxxvwhivwxwhfhxxvxXxxyxwxxxxIIiiIiiuvxhxwhvxxyxyhxxxhxxxxxxxxxxxxxxhXhhXxxyxxiyyiiiyxxvhivwxgxxxxhxxxhxxxxwwwxwxwYiiyYiiwxxxhXxxhwyvxxhhxxxxhyixxwwxwxxwwxxxxxxhxxhyxxiwwwwxxhxhyyxxxxxxxxxyxxxxxxxxxxyhxhxxxxyxwxwwxwxwwxxxxxxhxxxxxyhxwwiwuXvwggWgwxxyxyxihihxxxwxwwyyxxyyxXhhXhhxxxxxyyyxxxYYYYiiyhixyxxyyYhhXxxxxyyhhhhyyxxxYiiiiiywxxyyixyHhXHhfwwwhfwyyyyyyyyyxxxxxxxxxxixxxvhxwxxxyyyyyyyyyyugwxwwwhxhxxxxyxxyxxxyxwxwxwwiyyxhhxxxyyyyyxvgxwwxwwhHxhXyXxxxYyyyivhxxwxhwwwghwhwvXxxxxY9yYiiYwXxxxxyyyyxyZzyzZyxxxiHxhhxYvgxxwhxYyyyiwgwwxhixwggwxxxJjjjjwghwwxxxxxyxyiIihiyIuwgghwwvxxhyxyiyxxxxxxxxwggxgvwxwwwhhvvxxxwvgwxghxxyixxxxxxywwwwwwYyyyYyyhhyhhwwfwvvgxwwwwxwxwwhWwxXxxxxxxxxhhiiiiiiXXxxxhvwhwhhxxxxwwwxwwxxwxwwhyxyxxxxxxiiwxxwiyyyxxxxxhxhxxxxxxxxxwwhvyxxxxxhxhxhvwxwxxhyyxxxxyxxxxxxxxvxyxxiyiixxxxxXyxyxuvgvxwwvxwxhxxwxwxxwxhxhxyghfwgvwwhvwxwxwyggwxvvxwgwxxxxyxwxxxwiyiyxxxxxxxxvvxwfyxxyxxxxxwwxwxxwxxxxyxxxxwwwxwwxwxxxxxxvwgwxwxfxwwhGhvwGxxxxwwwwxwwhyxyXwXXxXXhgfhgvgxvxgwwWgvhWhwuggyXWgWghvhhgxvwvwwxxhxxxxxxxwvhxxxhwwwwwxwxxxxxvxfxXhvVXXuXXwxwuwxxwwvwyxygHhhHighfggwwvwfgwhwwhxxhwvXgwyWhxxwwxxxxxxfxgyvXhwwWwxwvxwwvyyxiyyxxxxxwwxxhyxxxxwwwxxxxxxyyyyxyyyyyyxxwwxvwwvwxwxwyyywxwywwwwyxxxxxxxyyhgvggYiyiYiYxxhhxxxhhxxxggxxhvXxxxhxxxYiyYYYiwxhxwwwvgwgxxwxxhXxxhxxxxxxwgggxvYYyiYiYvgxgxxvvggwxwvxXxxxxggvxxXXhxxvwxgwxxxxxXXxxxJjjjJjjYYyiiyivvWxgvxxwwWXxxxWwxvxxwvwwwwxwxvwWxxxvvxwwwiYxyiiYwwvxfwvxxxvHHhihgfwgxgwwgxwgvwghwwwxvWwWvwhxwhYyhXxhwgxhhvgxxfxvvvvwwwgwwxxxvwvgvwxxxhxwwwyvgwwvwXXxxxiIiiiiiXXxhXhhvgxwxwxwWvXwxxvwfxvwwwxhxxxWwwxwwwYiiiYYiwhwwxvxwfwwvxxwHHxhhWgxxxxyXhxxXhXxwwwwxxwXvWvxxxvwwgwwwhwwxXXhxxwgxgxwvwgwwwIiyiIiihhthXwwwXxxyxxxxxxhxfxvhfghvghxxvgXXxxxwgxxwwwwxwvhXtyhvggXWXwwwxxxyxxxxwwhgwgwxxxxxxxYhyyhwvvXHHxhhXhvxxgwxgxwgwxxgwXXhhxhxwwwwwWxxgvwxxwvwxwywwwwxxxwwxxihtxiwwH)IHHXxxgwvwxwxwxwwxxxwyXyhgywXXxfhwivwwWgivhywvHXhvxxgwX)JYIIwhwhhWxvgxwxxxxxwxxgvwxxwwiIiyhiIxxwwxxwxwgxxwxww)IXIXvxfxuixwwvXyYxxwyvXIhvihwxGwywxxXywXiYyhhiYYxuyxxwwXhgvggxhgvgg\u001a:Y9Y9XIXXxfxgxgxxXHhvXyYxxhiXfwwwhfwhhthXwwwXxwgxxwgwxIY8XYihuyXIhvXwhwhvWxgxvXwWxgxwihhXhHxxgxwwxxxwhwxhXhwWHhwIgHtxYexhwXwgvXiixyhyXxwhwhwihuyiXgvHxixxhxWwhwxWxwxgwxhxwvxgXwwwugIYIXYxwwwgvxyhyhiYIYiixxwyxxWfwwwxxhyggwwuwxhgwuxwwywhxxiIyYiiYuxvxxxivwwxwxxwwvixxxhyYYiiXwwvwxwhgwvwyxxxxxxxxwxgvhxvwwxhxxwhfhxxyXxYyXhhhwwwwffxxhxywwwxxwxwxwwygyXxhxiihyhyigwwvxgxywwxywhxvxgvghyxyhvxwygxxjYiYijYhhwwwyyxyhxhxxwwxvxwyxjHhhhiiWwxwwxxxwwxwjYiiijihyxyywwvvhxwwywyWxwhxfwhvwwhxwgywXyxvxwwyxhyyyvxvxxwyixXixhxxhgvwvhwwiXIYhiwgwxgyxhxhyxxhhyiwwxwwgwwxhyYYhyXyxxhxiYYYyhixyxyxhwhxwgxvxvWwxvxxwvyixyyXxxhxxwhygjjjxxyhixxyyyyyhxhyXxyvhygxxvwxhvyxyxxxyyiyyxyyyhwwxxhyYxxxyXgxwxhyiiyywwxvhyhzzZzzixyyygvxxhXyhyxyHvwhxvwwwgwyyyxxxhxhyixxxxxxxyhxwwxvwxxwxxvguwxggvxxxxxxvxxwhxhxwwxwvvxywwxwwxxxxxxxxhxyyxyxxxgWywwxwxwxwwwwvguwhwwhxhwhhxHXhXxxuvguWghWwwgxgfvwwfgwvvvgvvxgwwxxxxfggwgxwgvwwwxXhXhhhuvwvxxwvxwgwxwwvwvfhxwfhwwwggvWvWWgwxwvgwgwwxvWvhgwwxxxvgfwfwwghhwvhwgvwwgxxxwwwvgvgwhvwvxwwwgwvhXxXhXhxwxwvfwxhihyhxxxxwxyiyiyyyyyyyzyxxhxxyyxyyxxwxxxxwxxxyyxyyyxxhxxzzzzyxhxxjzzzzxyxxxywxyiyyyxxyhxxwwwwxwwxxxxxxxxxxyyxxxhxhxxwwxwwxyiyyxxxxxhxxxxxxxxxwxxxxyyxxxxxwwxwxxwxxxxxxhhxxxxyxxxxxxxuxwghghhhhyyxxxxxxxxyxwxxwxvgfggwggvxxxxwxwxwwxvxvxhhyxxyhyyxxxxxxxxyxxihyyyiiixxxxvxvxXWvuywwxwxhxxxhhxxxxyyhyywxxxxyyiyxxxxyhhxyyyyyiyyxxxwxxxxxgxxwyyyiyyyxxxxwwvwwxxxxxxxxyyhxixxhhxhxxWxxwwxxxwyiyyxyxxxyxxxxxxxxxxxxxxxxxxxxxxxxxyiiiyihhhhhhxxhxhxhZjjjjxhxxxxxxxxxhxxxxxhhwxxxxxxxjZjjZxxxxyiiiiyyiiyyiwwwwxiyyiiiiywwwxxxxwxwwwxxwxwwgwhwwhxvxhwvhhhhhwYYihYYwwxwxwwhxxwwxxwghwxgxxhwxwwwxwwxWhwxwwvhhgxXhhXhwvyhwvxxxwYYyZiiIvuyhuhwxwugwwughhwhwgxhwxwvgwhXwwIIyiiYYvwwgwwwwvwwwfxgvYXxiXiXwwxxxxxxwgxwgwwwwfhxXYXwwwfwwxyxyiiyzxyxyyxxyyxyyyyxxxxxxxxxxxyYyiyyyyxxxxyxhxyiyyxxxxxxyxyxxxhhwwwhhxyxxyijiyiyxxxxxxxxxxxyxyyyyhixxxxxyyyxxxxxxxxxiyxxwgxxxxwwwxxxyyyyxxxxxxwxhhxwwwwwxxxxhxhvyyXxyvxxxxyxyyiwfxwvgwwyxyyxwwwwwihhyxhWXxxxyyyiyiyvwgwvxwxhhxxhxxxxyxxxxhxxwxwxwwggghwggwxgwvxxxxxxixxyixxhXihxxxxyyyyyyyxxxxxxxwgxxxvxxxxxxxxxxxxyxhxhxxxxyiiyyxxxxxiiiyyhhhhhhxhxxxxwwxwxwwhhhhxxxwxxxxhhxxhxyxxxxxxxxxxxwwxwwxxxyijiyxxwxwwxxxjZZjjyyyiyiixyxxxhhxyxxxxxxxxxyyyyyhhxhxxxxxxxwwwxxihixyxxyyxxyxxxxyxyyyyyyyjjjjjxxxyyyyyhxxhhhxhhxhyyxyywxxxwxwxyyyxxxzzzzziyiiyyyxxxyxgxgwhxxvYwWxghvhvvxhhxxxxxxyxxxxvxwwwXhxXXYhwwvgxfhgwwxwwhwxYYyIYIYhXhhXhvXvhxWwxxxwywihhgggwwxhhxgxwvxhYiyYYYixxxxxxwvhwvwhwfIhhXHYhwxwwxwwxxwwwwhwuhhhwvhgwhwwggfwvXhwwWiwwfxvwwwxxxxxxxhxxhhhxwwxwxxwwwxhxxhvWvWxxwuwxwwxwwxxvwhvwhvgxgxxxxxxxxhxhxwwwwxwwhxxhxxxxxxggggwwggvxwwxwwxvwgggwhgvvxxxxxxxxxxxxxwxwxwxYhvyyhxWyxxixhhhxhxwyyxxxgwgxxxxvxxyxxixwixwuWyxwwwwhxwihhhhyxxyyxyxvwhgxxhhXhhxxhxwWwxwwwwxxwwwvywwxxhxhxvxvwxwwgwuxgxxwyyxyyxxxxxwwwXWhwvxuwuvFxhwvwgvxyxxvivhvhhxxxxxxxxxxxxxxxhhxixxwxwwwwwiyyiiyyXXxhhxwxxxwxxxxhwgwxhgihxggwyyyyxxxxiyixxyxhhixwwxxxwxyxxxwxxxxhhgwwWXwxwxwwvfwxgwwhxxxwyvxgxxxxxxxhxhhxxxxxxvxvwxxwyyiiyiyyxxxxxxihixxxxxxxwiwwwyyyyyyyiyhxixiyhihxxWxxwwwxxxxxwgxxxwhhwxxwxxwwxxwxxhyyxyyxxwwwxwxwwwxfwvfwwgwgxxhxywxwxwvxxxxwvwwvwghwxxwwwxwxxxxhhhhxxwxwwwwxwxxhhxhgvwxwvgwxXwvyyyyxxxxyyxhvgwwwhgxvxxyxxxxxxxxxxxxxxggxxxwwhwuhhvwVxyxhxxxxwwwwxwgwwwhxwgxixxxxxgxWggwuwwxwxvixxvXhvvwfhhhhhxhhxvhgwwwhxxyxwwhwgxwxxxxxxgwvghgwvfvwvwYxxvhXugVxhhhxvxwgxiwxxwwwxxxwwhwXXwwxwxwfxxxxhxhxwwwwwwxgxwxxwhvwfvghvfhiwfvUhxhwxyxyyyyyyyyyxxyyyyywwwxgxvxxxxxyxhxxyxxxyywwxwwxhxxxxxxywwwxyyzzyxyhxxwwxxggxxwxxyhxxwwwwxxvWhhwxxxhxxxhhhwwxxxwxwwwwwxwwwwxxuxhgxwhxxxxxxvwwwwxwghxwhxxyyxxyyxxxxwwwwxwwwwvwhhgfgwwwxvwvxxxwxxyyhhxxxxxxxxwxwwwxxxyixhxxxhyyixxxwxxxwxxghwwgWwvxxxhxvyxwywyyyyyywwwxhwxvxxxyxxyhxxxxxxxxhihxxxhxgyxwiyhihxxyyyxxiwYwwwxyyyxxyhwxwvyiyyyyyhxxwwwwxwwxwxxxxxxxxxxxxxxxwwgwhxvxxxyxxwwhvwhwXvvXxwwxyhhyxxxxyyxyyxxwwwxxxwxxwwwvxwxhwgwvgxxxxxxfwxxggwgxwxxxiiiyxxxwyxxwxxhxxxwgwwyhxhxyxyxyyyxxxxxxwwxxwxxhxxxxwxwxwxxxxxxhwxhxwxwwwwxxxyxwwxwxxzzzxyxxhwxxwwxwxwxwwwwhwxwwgxIhxXHXhhhxhuXvwggWgwwXxhXhXhhXwxwxwgxwhwwxgwxxhYiiYYYiwwxwxxwwyxyxxxhwhhhhwYYyIYIYvxwxwxvhxhxxwhwvgghxxxxxxyhhhhhxhvxxhwxxxxxihXXhxhwxxXhxXXYhwhwhvgwxxwwxhhxxxxywhhgxxxxxxxxwxxwwwwhhhxyhxgwwwggxxxyyyhwhwwwwwwxxwxxhhxxxxxviwwwwxhhhhxyxxxxxxyyxxxyyyxyyxxyxxxxxxxxvwxvwxxwxfvwwxxXWwxxxxxxyyxyyyhxxixwxxxxxxxxxxxiiiyixxxxxxxxxyyyyyyyyyxyxxxxxxxxxxxxxxxxxxhhhhhhxyyyiixxxxyyyyywxwwwwwwxxyxhhxxxyxxyxxxxxxxxxxxxxyhixyxyyyyyyzyzzzxxxxxxyyyiyiyxxxxxxxxxyyyxyyyxxxxxxxxxxxxyxyjjjjjxxxyyyyywwwwwxhhhxyixihxiyxxxxxxxwhvxwhhgxxxhxhxyxxyyyyyyyyyxxxxxyyxxhhxhhxxxxxxxxxxhhhxxxxyyiiyiyhxxhhhxyixvxvxxWXvxwgxvwwwxwvyvwxiYxXYxxyywyvxxwwuyxywvxyvhhvwwuxxhhwwfwxwyYXiyiyyhyyyhhxiYxIiiiwwvhxhxvwxhxxxxxyiwvxxvxhyiyhxxhxhxYihhvxfxxgvIiIiIwxfxwWhvxWiwfhgwfWyYxyYyXywxxwxwxgwxh9XIXHwxhxwxxehhvfwXfxwwhGhvwGhHxhXyXgxgxVhgwWxxfxYwXwevXIY9YIxwwxwxwwwiYyiIiYxhwgyxywxiXxYxHxxwxwxwwwhgwxWXwVxhVhwgwVuhIXHX9wwxwxgvyXiiihixxyyyywwwxwxhyhgwvyxwwwvwxgvhhyhvxvxxwiYXYiYhiXiihhyyhyygwgxhxyhyhxyxxfwwhxwxwyxxgyywxxvxxwyhyYhXixhixwvxwhxWwiviivwwwwgwyxx{Zzjj{zwxvxgwxyxxxhxiwxhwivgyxvxwvwvwwwxwjIiiijiwgxhxwxvhywyywxwwwwkZjZZkjxyXwhwhwwwwjIiiijigwgwxhxwhyxyxhgxhgyiyxyyYvhhxhwwyx{kkxxxyyyyyyyyXxxyXxxxwxgygxwwhxxjzzzZwwxwyvwxwwwgywwyixhiyhxxzzjzjyhyhyxzzzzZxxxwxywwwvwvhxwyYvxwxyXxhyxxxxxxhxxhhyiizZyzzxxxyyiyyxxxxxyxxxxxxxxxxxyiyyxwxwxxwwjiyiyxxxxxxyiyyywyxxwwwwxwxxxxxyyyyyyxxxxxwxwwwgwxxyxxxyyiyuhxwxwvwxgxxxxxxwxxxyxwwwwxwxxxxxxxxwwwwwvghwwxxxxxvyhxhhxvxyxxyxwyxyxyhxxyxxxyxxxxwhwgwxwxwxxhwxwgwwxxhggYYyiiYYixxxxxxwxxwxwwhxxwhxhhhwxiwhhxvwxwxwxwhgwwXhhXhwxxxwwwxwwxYiYYYIHhxhhXXxxxwwwxxxxwwWXxugwxgihxxvwxwwhwgwhwwvWXygwxxfwwwxgXhxXXHXxwgwgxxxwwxxxgghxxxyyxxyyyxxxyyyk{{xyyxzjzjzxyxyiyyxyyyyxxyxxxxyyyyxzzzzzxyxxxzzzzzxxxxxywxyxwxxyyyyxxyxxhhhxyxyxyzzzzzzxyyxxxyyyyiyyxxwhxhhhvhwvhwvgwhxxiyyiyixyyxxxiyyiyixwxxhhxhxyyyxxxxiiixxwwxwwwxxhxwwwwxwxxxxxyyyyyxxxxxhxhxxxxyxxxwwwxxxxxxyxxwxxxwwhxhxxxxyyxxxxxxxyxxxxxxxxxwgwxgyxxxxxxxxxhxxxxvxxwxxwxxxxxyxwwwxwwxxwxwhyxyxxhxxxxxyyxxyxyvgiwxwwxxxxywywxxxxxxxhixhhyyyyyxxxxhhyyxxxhwwxhwxxxyyyyyyyxxxxxxxxxxyxxxwwwxwwxxxxxyyyyyyxxxhxhxxxxiyyiyxhxhxhxxxxxxxxxxxxxxxxxxyyyyyyyyxxxxxwxxxxwxiiyiiwwxwxxwxgxwwgxwwwxxwwhhhwwxwxxwwxwwiYiXihxwwxvxxxwxxyhxhxvxhwxgxwwwxwgxxhvhhyvwwwxwwwxxwxvxwwxwxwiYiiiivhhvvxhhxwwxwwvwwgxgwxvwhxwwwxwxwwxxxiYYXiYxhhhhvhwwxwwhghwYIhhYYwxwhwhgxfxggfwwxwxghfwgvwwhvwwwWxxwwhyyyyxxxxxxivhhxxxxyyxxyyyyyxxhxxxxxxxxxxxxiywxYwwyxxxxxxxxxxxhhxwwhhxyyxyxxxxxxxxwiwxyixyixyxxxxxwwxxwxwyiwvvwxvwxgvxxxwxhxxxyyyxiyyywwwwwhhxxxxxwwxwwxxwwxxyxxxxwwxwxwxwgvxwgvwhxxyyxwwxxxxxyxxxxxxxxxyxxxxxhxwxwwhvvwgvxWwuigvhwwfVhxxhhvhxxwwvwwyxxyxxxxxxxxxxyYXwixwwWxxvxXvwxwxgwwXhhXhxxxxhwhhghxuxhwwvhwgwhhwxXxxvwgxxxwwvgxwhixhhxwwwxxxxigxxxxxwgwiwhggvfygwwwgwwffghhhwwWwxxxwwwwxxwgggwxxxxxxxxxxxxxwwxwxwwwvxwwxwxxwwvwxwiwxxxwxxxxxhhhxxxxxxgxwhwxxwyxyxxxxxxhxxxyyxxyxxwxwwxxxxhhxxxxxxvxxhwwgxxwixxyyyxyxwxwwgwxxxxwiwiwxxyyxyyyxxxhhwwxxxxhxxxyxxxyhxwwwxwxxwxywxyxxxxyxxhxwywxiiyyxhxxYxxyygvwwhhwuVwwxxwgwgwxxhhxxgyhxxxxxxxxxyxyyyxxwhxhhWyyxyyxxhhxhhxwwwxhhgxiyxyixwwxwwxwgwwwwhwhvghhwhxhXhwvWxxhyvgxhxxxxxxyxxhxiwxxhYwxxxhhxwwxxgvWwhwwwggWguxXxhhYvGwwggwvwxhxxxxvygvgxxwxxxwwwwxwxxyxyxhxxhhhyhxifxhvvgvvwwwxxxwwwwwwwxhgxxxxwwwwwwxwxwwwwhWXhxvxwvwvugwwxxxxxhxxxxxxyyyixxyixxxxxxwxwwxwxxxxxxxhhggwwwwwwwggwyyxwxxxxxxxyyxxzxxxhhxxhxxxxxxxxxwxxwwwyxxxxxxxwxxwwwyyyyyyyxwxxxwxxwwwwxxwxgwwvxwwwhxxhxxxxxxxxxxyyyxxxywxxwwwfvfvwxwxxxxyyxxxxxwxwggxxwwxxwxwxxwxxiyyywgwwughhwxxxxxxxxwwxxxxixhxwxxwxwxxxyyywwwvgfwxhhxvwwgwxxxixxyxyyxxyyyyyyyyxyxxwxhhxxxxyxxxyxxxxwhwixxxwxxwwxwwvhhxxxxhihxiyiihixiyYxxyyhyhhhxhxwxwywxxxxXwwhxwhxxxyxxxxxxxyyywWwwwvxhxiyixxxxxxyxihxxxxxyxxxxxhwvxwwwxyyyxyyyzzzzjyyywwywxwwxwxxyxhhhhwwwgxhxwvwgwwwgwuwhgfvwgxwgvhvxwYIyihIhvwvxvxwxxwxXwXxyxhhhhwxgwxWxwgvwwwghhwwwwxxxwwwxwwxxvhxgiXxiYXixxxyhwwwhxvgwwgxxwwvwhgwxvghwvghxiYihYhxxwhxwxhwgxxwiXxYhYXhhwwxggwxwhXwxxxwwwwxxxvghhxvwwxwwxxxhxhxxxxxxxxiiyyyyyyxZZzyywwwxwxhyxxxxxxxhhxxxxxxxxxxxxxxxxwxxxxyxxyyiyihiyiiiiyyyihxxhxxxiiiyixxxwxwxxxwfwhxxxxwwwwwwwxxxxuyvxwxiwxxxhxxhhxxxywgvxxxxxxwwxwwxwxxfxwxxxxyxxwxvxgwgwwwwxvxvwyxhxwwwwxxwwwxvxvwxxxhxhxhxhywxWxxvxxxxxxyiyyixhhxxxyyxyxyxxxxxxxxwwxwwwxxhhhyxxxxxxxyyyyxxxxxyyyyyxxxxxxxxxxxxxxyyhiyyxxwxxyixiyyyxxhhwyyiyjyyywwwwwwwxwwhhhhhxxxxxxhhwxwxwwwwihhxxxxxxxxxxyyxyxxwwxwxxxxxxxxyiyyxyxxxxxxxxxxxxyxhiyyiiyxxxwyyXyxvhxxixyixhhxxwxyyYYyYyyyxxxxxxhhxxxxxzzzzzxxhhxhxxxhhxhyyyyywwwwyyxxxxxxxhhxihhxxhhxhxyyyyywwwwywwwwwwwwwjjjjjxxxxxxxxxxxyxwyxwxxxxiiiiiixxxgxwggYhhHXIhvwwxwhixwxxxxvxvxvxwwxxvxggxxgwwwwvfxwwgxgwfvvhvwvvfwwhiihhHhxIIHixxxxxxYhxHXHhwwwhuhhxxXWwwvvihgwhhihxwxgwvgwggxuyhwwhvwxwwwxxxxuhwhwgwgwYYy9Y9YxwyuXXxxxgvgxgwuxwhgwvvxxxxxwwyxyxxxxxxxxxhhxxxxxxxxxxvxvwywxxhhxxxiyxiihxwgwwhhxwwxxxggwxxyxxyyywgxvwvvhvxyxyxwwwxwxwxxxxxxhxhxwxwxwxxxhxxhhyhhhxxxvhvgxwxxxxxyxxxxyyyyyyxxxxxxxxxxxxyyyxxyxhhxxhxxyiiyyxxxxxxxxhxhxyyyxxxxxxxwwwwxwwwxxxwxwxxxwwwxxwwxxwxxwwxwywwwyyyyyiiiiiixxvvxwxxhhxxxxxxxxxxxxxxxxxxxxxwwwwxwwxhxhxwxghwhhxyxxxxxxxxxxxhxxhhhxzhhhhxhxxhhhxxxxhxhxhhxhhxhxxxxyxwXxxywwwyihihxggwxjHhhhjywyxwxWwywwyxwwxhvhxghxvgwxwwxxxxwwxyyxyhjYiiijixwwywyghwxgxxwxhxxwhyxyyjXhhhiihwwxwhihhyZYYYYZixwywxivxwwxwyWwxxvgxxghxfvwwwxwhxgiYyIiiYhyxyhxxwxwwgwxivhhwxfxgvggvgvvhwgwxwhixihiIyHYihxxhiYHhhhvxuywyhwwwvxxhgwxghgxxyvxwwywXxxxuyvxhwxwyxwwwhwvhwxYYy9iYiwxyhyXxvwxwXxgwHX9XHxhfXhvgWhxxxxyhxyhyXgYvhiHiWwxgvwxxwwwghuxxHhXIY8XXhwxwxghgxhhvxXhwwWxiyhxXxwuwWgwwwvgwgxugyw8X8WWxgwwgywyXxhxhWixi8YwWgvvvvvhhxhXiXfhvwxGhwwGhxvHXgvWwxwwxvxwhxHI)HXwwwvwgxgwwvhxxvixhwvyyiYiXihixxiXyiXhygwxxxwvxhxvyhwvhxwhyivxgxhhxyyhwgwhxxxyxyxxxxxXhxYIhhvxvwxhiXyiYyiuxwwxwXyxhhyxfvhvhwwyXxxhhgwywxwywyxyyzjjxgyhyyyhhxixhhiyXyyxxxhxwwwwygwzzZzzxywhygxyxyxyihxxyyXiyiiiwwxXixxxhxyyYyywxyhyhxxghfixyyyhwxiyWixxxyyywxxyxxxyxxxyxxwxyiyyjzzzzyyyxxhxyyyyyywyxxyhxhixxxxwxyyxyyyizzzzyyyxxxxxxxxxxxwwyyyiiyxxxxyiyyywwwxxxxhyxhxxxxxxxxxxxxxxxxhhxhyxyiiyixyyyyxxiYyiyxxxxwxxxwwxwyxwxxxxxxyyyywxwxxwwxwwxxxxxyxxvwhwxgxhxxwwxyhxxwwhhwwxxwwxxxxyyyxwxwyxxyyxxxxhhfghwwfvwxvwxxwwwxwgxxwwhxxxyxxxgwgxwwWxwxxyiyxxxgxxxgwhxwhhXhhwwfgvxxwhwghiyxyyhhxhXXhwwwxxwwwxxhXxhXHhwwxhwwwhxxgxwwhhhxiwhwvhxxwxxwwwxwxhXXihvxhxxxvhwwwxwxwwxxxxxXhxXHXXfxxhhwxwwxxwwxWggWWvvgwwxxvgwxxxwwhgxxwhwwghwxxxxxyxxxxxxvxggxxxxxvvhwxhghxxyxwyyyiiixxxxwwwxixixhhxxxxyhxvhvxXWxwxyiyxxxwwgggvhfwvxxxxxxxxwiwwwxyyixhhxyyxxiyyxxyxwxwxwyxxhyyxxyhxxyxxywxwxxwwxxgvwhxxwwyxxxwxwyxyyxhyhhxxyxxxwyvxhXxhhgwgxgwxxxxxyxyxyxxyxxxxxxxxxwwgvwxwhxhxxhhhxvwhwhwwwwwwxwxwxwwxhhhhxxxxyxxyyyxhxhhxxwxwwxwwxgwxgxwxxxxxxxwxvxhvvxxhXwwwwvwgwwgvxwhxvhgvgvwxxxxihyhxxhhxxxxxxxxhhhXwvxwvvwWxxhxyyyhuxwxvgwgvxxxhixhwwywwxgyyxxxyHhvxhhwXyyyiwwhxywhvwwXXxiyhyxxWxxwhwhxvWWxvxwwwwxwgxgwxxhyxXxwhxwvXixxxxxxxxxxxxxxxxyxxvxvxvxwwxxxvwxxwgvggwxxwwwhxxxxxxxxxxxxxxxwwxxwxxwxwxxxxyxfhwvxgwgwwxxwxxxuggwwwhxviiiyxxxxwywxgXiihIvWwxWvXgxxyxxxxxwywwiwwwwxxgwxxxvwwxwgwgvvhvyxwhXvwfwwxwxxywxxwwxwxxhxwghxwxxxxwxxxhhxxxxxhhxghwxxhXwWxxixgywgvxxwWgwwwxxxxwwxwxwfxxgwvghwwvffwviXXhhxxwhxyXYwWxihhixxxxwYwwwxyxxxiiiiixwwwxxwwyvhyxviihxxxxxxxiwxwxwxxwxhwxgxxwhyhhxxxhwwvxxhhYyYYyyyhwgxxxxxxxxxhxxxxxyXxywvxvhxxxwwwYXhwvixhhyxxxxxxxxxxxxxwxyxwvwuxwhyxwwyxxwYyyYYyyuxXwXyxxxxxxxwXWywwhxhhxwxwfwxgwxgxxyxixxxwwxxxwxxyxxhixxxxhhxxhxixxxhHHihiiiivwwvgxxxxwvhvxxxxxxyxyyyxxwxxwxyxxyyxgxyyyyzyzhxhxxxyixxixhxwwhwgwyhxxyxxxxyyyyyxxhhxxxxxxxyyyxwxvxxgxxwxvxvghxwxxxxxxxxwwwxxwwwxxxxxxxvhxxvvwhwxxhhxwxwxxxxwxxxhxxxxxxxxxwwwwxxwxyxxxwgghiwxhxxwxxwxhgfxxhhxxxxgwhwwwxxhhhhhhxxxXXxwwhxxvxwxxxxxxyyyxxxxxxxxxxxwxwxyyxxxxxhxxyxxvgxxwwwxwyyyyxhyywxxwxxxyyyyxxxxxxwwxwywwxwyyhxggghvwxhxwghwgvxwixvvxwxhxxxwgwwxxXXxhXhhwhgwhxwxwxhxxwhxwwhXxhHXhwxwxxwwxxwwXvwvhXhwhhhhxxwwxxxxxwvxhxxwgiIyiYYiyyyXhwwxiYyYYiYxwgxwwvwwwxhhhhhxhyxxghxxgwwviiyiyxxxxxxyxxyhihhxxxxyhhhhhixxiyyyyxxZjzjzxxxxxyyyxyyyiyxxxyiyyiiiyxxyyyjyjzjxxxxwyyyyyxhywxwwwwwxiizzixxxxxxxxyxyyxxxxxxxxyyyhyhxhhxiyyiyxxxyyyyyxxxxxxxwwwhxxhxxyxyyyyyxxxxxxxyiyjiyyyxwhhwvhxwxxxxyyyxyxwxyxwwvvwfxwxhxfwgwxxwwwxxxwwwxwxwxxxxxwwwwxxxyxxxxxxhxxvwwxwwxwgwyxxyyyxxwwwxwwxwwxxxxxxhxxvvWxgvxxwwxxhyhhhyxyyxyyxxxxWvWvxwxuyxyyyxxxhhxxyxxxyhhyhhiyyyyyyxxxxxxhhxhhziyyiyhhhhxxxxyiyiyiyiyiyxxxwyYyYyYxxxxxxxxxxhwwxwwjjzzjxxxxyiyyixhxhxhwxxwyxwwwwxxxhxhxxxxxxxxxxxxxxxhxhxhxhiywwyyyyyxxxxxxxyyiiywwwwxxxxxhhhhhwwwvwgxgvwhwxgxhxhXhhxiIyIYiYxvxwgxgvYwwhXwvxwwxvwwgggxwwvwhxvwvxhvvwghhihiuvgvxwwvxwxY9yYYYihxwxxwuhwhwuhgxwhxwggvwiwghhxiIyYHihwxxxwgxxvxwwhwwxhiHXXiYwxwxwwxxwxwgxwwwhxwXhxWxwwgxxwwXxwwxxxxxxxxxxxyiyiyiyyiyyyxxxxxxxhxxyhxxxxxxxxwxxwwxxwxwxwwyyiiyyywxxxxxxxxyyyiyxxxxxxxxyxxhhxyxhxxhyhxxxxyxxxxxwwwwgwyhxhxyxxxxhhxxvxwxxwwwxxihxhxixwwwwxxwwwvxxxxXhxhxxxyxhxwxwxwwwwggxxxxxxxxxxhyyyxhxxxxhhxxxxvixwxxxxxxxxyxxxyhgxxxxxxxxwwxwwxxwwxhxwwxwyyxxhxhxhxiywyXwxxxyxxxxxxxxxxxyhhhhhxhxxxyxxhxxxxxihhixiyyiywxxxxYYYYYYyjjjzzxxxxxwxxxxxxxxxxwxwwiiiiiiywxyxwwwxxwwwwiyyiyjjjjjhxhhxxxhhhhhhxyyyxyxxxxxxxxxxxxxxxxxyyzyixxxhhhihixxxxxxyyyyiiy[[[{[yiyiyiyyyxxyyyxxyxxxyxwxxyyiiiiyxxxxxxxjjjjjxxxyxxxxxxxxxxjjjjjxxxxiiyiiiiyyyyxyxxxyyxxxxxxxxxxxxyyxyyyyxxxjjjjjxyxxyxxhhXhhxvxvghxwxhhhhxxxxxxJJjJJJJYXXxhIYyYIYYwwxxwvhxhwhhhhxhyhhhwxwxwvxixwxxxxxxhhXhgwxvggwvvgwxgwwhwhwggyxxxxx9YyY9YYwhwhwwhxxwxxxxxIYyYIYYhhhhxhhhxhxgxhvgxxhXhhxiyiiiiixxxxxxxwwxxwwhhhwxxxvgxxwgggwwhhxhhxxxhxxxxyxxyhxhyyiiiiiiywxxwwwhhvhhxvwwwxxxxxxxvvxgwXXxvhxxwxxwxwxvwghvxghxxhhhixxxxxxxvWgvwXwwxxxxxxxxxxyyyyyyyhxhhhyyyxxvxwxgghxxxxxyxhxxhhhxxxxxxxxxxxhxxhhhxxxxxxxxhvxvXXwwxxxxxhhhhxhihixiiiiiiywxxwxwgvxwwxxwgyxwwvgwxxxiihhiYYyiiyihyhxhwwfwfwhiYhXhhwxwwwvhvxvxwwxwygvxwwgvwgwxxvxwviIyihyixxyxXyxwxiYyYYiYxwwxxwwwuhvxwxxhxgwwvxxywgwxwxxwuiviivwgwxgyxhyhxxkJjJjkjvwxhwxxhyXxyhyhhgxhwxhgxvxwhvwhwZ9YYYZihhxvywxxywyywwwxgvkJjZZkjhhwwwxwxhjIiYijYwywyxXxXyxhxhwxhggxwwgxwxvwwgwixvwhvxxiIyIYiYXxXyhiYYYiigxwxwxxvvghyhXwyvhyxwxwyxyxxwwxywwwxwwuxxywhfxwwgxwxwxwvvhuyhxxwxxxXYyXHhhhyhyyxiXYYyYgwvwhxhwwhxvgvggxg9Z9YYhxvxggyvwgxxgwxwgwyiyYXyYiivxXYgvHwxwwxWxfgXihfghggwX8YIXIxhwxxXhvwghgvwhhwwgxxwxwwwxxXxihxwXxxwxwgxwxxwwxwww9ZIYYwxvxxXxvvXyixihyhXxvhhxwwWgyhiHiuvXxYigxXhxuxhhwvwXwwwxxvxgwwwxwvxwwv)IHHXyYxyYyXxxxyxxjjiwgvywxxywvhivwwwgwwxxhIhhyXvgwxywwxiyyyYxyyiYyyiyYXyhwhjzjzjgvwxhxwvhxhxwwYyyyivgxhyxyxxxxxxyiYxyhHvwxvxwwwgwxyixhxxxwwwxwwwxxxxhxgXxxxxxxxywhwxxvvhwwwwgxxxxxxxxxxhxwxxxwwxxxxwwwxwwwwwvwgxwgvxvvvvwhxwggwxwwwxxxxxxwwxwhwxxxhxxxxwwwxxxxxxxxwwgvwwwuhyxyhxxhhxxwwwxwxhyiiiiiixwwxxiyyiiiyYhxyhxxxxxhxxxwxwwxwwxxxxYwxxxyxwxvhyhgxxxvxwhhhxxiihyxxxgxxxhwxxxxyxyxxxxxxxwivxxyXwvwwxwhixwixhhyxxxxxxxxwxxwxwwhxxwxxwxwxwhhhhhhxxxxhxxxxhxhyxyyxyihxxxyiyyyyyyxxxyxvwghhxxwyxxxwywhxwXhxwxwxxhyxxxvwwwwwxgwwxxhhhxxxxwxwWYxwiwfhgwfWxxyyxxxxxwwwgxhvhwhxvhgwgvwwXWvhghwhvxhxhvwwwhgvxwvwwWxhhxhhxxwxwwwxxxwxxxxXxhhxxwwxwwhvexvwwVwxhvhvxWWvvwwxwygfwwwwwiwgfvfihhhhwhwwxhhwxgwwwxxwwwwhxxhxxxxxxXgfxugwvGgYvhiHiWxxwxxwxxxxxxhygxwwXYhXYwxvxhfxfwwwghhhhhgIvyiYYvWvgwxwugxvxwwxxwxxxhxyxhxwxhhxxxxxxhxxhxwXeyxwXhwVwwgwxwwvxwgwwgwywwwhhXYhxgxwvgxxwXwixyhwvvhhvghhxxxxxxxxxhXvxxXiGhhhhyxxxxxxxwyxxyxxYyyyyyyvgxwxwxwixxxyxhguwwywgxwwgvwxxxxxxxxxwxwxxxywxxxxwghwxghXxwwhxxxxxxxhyhhgwwwwgxxxxxhxxxxiixxxxxxWWxxxwwvhxxxwwxyiyiiiiiXxXyhxxxxxhhxxxxwxxxxiwwxxwwxxYyyYYYyhxxIhhiiyxxxhxxiiixwxvxxxwxxxxXywhyxxwxxxxxxxwXxgxiwxxxihiiiiywhwwxhwwfgvxxxxxxxyyyxyxxxxxYXXxhyyxxxxhhwgwwwgwwxxwwwwwxwxxxxxxxxxhxhhhhxwwwxxxxxxxxhxxxhxvhgwwhhxxxxxxxhhhhxwxxwxxxxyyywxwwwxwxxhxvxggyvwgxwwwwxyxxxxwwxwwwxhvxxxxxyyyyxxiyyxwwwxwwwxyhxihxxxxxxxxyxwwxxxxyyyxxyyyyyyxxgwvwxwxwwxgvwxxwwwxyyxxxxxxxxxhhxxwWwxwwxhxxxyhyyyyyyyyyxiwgxxxiiyxxiyxywxxwxxxxxxxxyxyxxxxyyzzyfhgxxIiIiIyyxxxwvxhfXgfWiYyiiIYwxxxxhgxwwgVvWhxwwhXX8YIigvghgggXggxxvwXgwvXxwxxxwwxiihhXHxxxxhvgwxhgHwvGYYIY:hXyxwxWgugXYiyyxYYwhxxhXhxxfggWhhxhhYXxwxwxwwwwwxwhhwwgxxwXfuXXYIYIwxgwxhxxxwwwgwXhxHhhXxxywhvYwhxWwxwwxghwhXXhhwwwxgxwwgwxxhxxiYyYyiYwvwxgxgwwghxhvxhhwiiYiYIwwxXxxxXxxxwxwwwxyxhhxhxwwwwwwwvvyhgwhwwwwxgvhhxXxXXxwhvwxhxwxwhxgwxxvxvvxxwwxhvhhwiXiyYXwwuhwhwgvgvxhfwwfgwwhixggwxwwwwhwwwxxwwwxwxwhwwxgvguhuxghihYhiXxghxwwwxvwxxxwxxxwwwhgwxwwwwvwwwvYXiyYhhhxxxwwwxwwwwwiiiiihxvxwxwwxhxhhvvhwwgghwwwwwxWwxwxwxwxwwwwvwwWvWghvxhhghvxxxxxxxxgwvhhxXhYhxxvvxhxwwwxxwwggwihxHhHiwwhhwwxXhhYxxxhhhXhvxwxwwwvxxxxvwwgiYyYiYYxxhxxwhhxXxYiiYYYiyyxxxxwwhvwggxhhhhwhxyhxwwhxhvvvgxguxhvwWxxxxxxxwwwwxwwwgwvxxwhxhxxyxxwwWvWwxhhvyyyyxxywwxhhXhhxxhwwwwvwxhvxhxxhyxwihxxuyyyxyxxxxwhwghwxwxxxXvWvhhgggvixxixxyxhhhhxyyhyxxxxxxwwwxvxxxgWvxvxxxiGxxxwwggvwxxxxwwYhxXXXhxxhhihugwxxhxvxXxwWfvwgvvgxxwwhxwxgggvyhuwwhwihhXhYhuwwwhggvwwxxwwwvfwhwgwwhyyHhHiwwwxXXwhwhxggxxxxxvwwhxyixhhhhxxxxvwvxgihvgxwwvvviiyYiYYwwxxggXXIY8gxwiihIuXXwwwwvwgwwgyXxxhhxghvhxwwvxxxwwvxxwhxHXIY8hwxhxvxxffgXfwwxhgHvvGhHxhxYXWxxhhHvXhxwxhxgvwXWW8X8wuywwghyXyxhiXwxxwxvxgwwxvxghhXywhXwwywwghghwyYX9WhhvhxWwvXXHHI)xhhhXhxxhxXhwxxxwwwwyxxygwgxgwvvxwxxhhwwxxwvvxwwwwxhywiwghhwxwhfxhwWgvWvgWgxwXhxhxXhxwxvhxhwxwvgwgyhhYYxyywwxxxwxwwxxyhhixxxwxwwhhxXhHXwxhgwwwxwxgxvhxhvwwwxwhxgvvxxxxxwwyxxxxyXiiihwxvxvxhhwwxwxwwwwwwwfxwfwghxwhwwxwhWvvhfxwfwwgwwuxwgvvgxxwgwhhwiHyhxiXxhxhhxwxgwxwwwxxgvwvwxwxwxvvhyXyYiiixuyuxXXwxwxxwwwwxiYyhxXixwxvhvghgwhhyxxwvxhxxxxvhhxxfwxvihiiWwxwxwxxwhhxxhhvhhxhwxxxwxxxxwwwfhgxxvyhvwuhxyxxxgvhwyXWggfhggwvwvgwgxwxxwgvwgxwwuxhvxxwhwxggwwxwxhhhvuXhxhhxvwwywwxvxxxxxwwxwwywxxxxwxxxwwwxxgvhwXwxhhXXwxwyxxYuXxvxwwwwxgwwwvxxhwiXyiiIiwwxwxwxhxgXXhxffwwwwwhxxgxwhxwvhhhXhvwhwwxvvxxwwxxwwihhiYXvvwwxgwwxwuwxvxvvgwwwxwhxhwuhugggwYYyiiYYvwxhwhWxuxihhhiiyYYYivwvhwxhhvxvwwvwvxxwwgwgxwwwxgwxxhhhXjjjJjJJhXxhhxxxxwgggwxxhhhxhhhhxwxxwwgvhhxhhwxhxwgwYYyIYIYxxxxxxYiyIiIYyhvwwwwvxwxwxvhxhvvgvghxgwxxxxxXXXxhhxhxxxxxwihggwYiy9Y9YxhhhhwxxgggYY9Y:iixihWvvHxwxxxxwhxihyyxihgXiihIvWwwhxxvxwxxxhvxxhXvvgXY8YIxwxxxgwhxhgwwhiwwgXhxhxgwwWxgyxhXixhwgffWxwxwxwxwIY9YIxxxxwxwxwyXyyyYXwgxxWXwgVhxwxgwivxgxhyxxhWghxxhXwwWhxwXxhwwWwvxxwxxwgwXH)HIxxxgxwggwvxvhxxxhhhhhxxyYYyiiYYhxxhxXhxhhHhxxwvgwhwxwwxxuuihhwxwxwwwwvgwwwwwwvhhhwxwXvXxgvwxwvgxxxwxwwwxxHhxXXXhwxxxwwwwwYiyiiYivwxXhxxhhhhwghvgvxgxwiihIuXxYXXhxxxxvygwywwwxxwgwgwxxxyxxvwgxwwhwgwgyvyiiYtWxxxxwwwxvhvhvghhywxXhxvhhhihxxxxyxWxgxxvyXewXhhwxwhxhwgxwxxwhvwfvgxxwwxxxwxwxhxxfwwxwwwvgwwvyXhhXxxxxhwxhhYuHwxwxwxwwwwuvxwvgugXhufwhwwvwvfwxuwwwggwhhxhhhhvvwwxxwggwhwxggwwhhhxhXXXvxwwxwhggvvvgvxvvxhhvxwxffxwwvwhwvuwxvwvwwwvxwwxxwggguggWvuhxxvvwghwvfwvXxXhhhxwxwwgxwwWhwvwxgwhfwhggvvwgxgvxwwwxvxvwxxvwwxwxgvxwxwwwgwwuxwhgwiYyIiiYfxvwvyXhxXgwxwgvwhgwxwxWxvhhhhvxvhvhxxxxwwxwxwxiHyXhYYwwgxgwwxxvxvwhwwwxxwhguuxwhwwhwhvyXYYiYwwgxxgwxXYhhiYzYiiIwxxWwwggwvwgxvwwwxhxwwgxfwwvxhxgwhgxwwxxhwxxhggwwvxwwwxwgwhhxxxxYhhHXIhwwwYXhwvYiyYYYYwwxwwxhhvhgwwhvwvxXXwxwhuwggvwxwxwwxwwwwgvfwxwwvhXhuvxxgwwuxhwwhhwxxxxxxxHhxXHYhxhiXhxxxYyyYYYhwwhxgvxvwgwwgvfwhggvgxxxwhhxxwHX9XHxxwvhvxwxxxgxwyhyixiXYhyhiWvvHhxwwwuxWwwgYixhiHvvXHYIX9whxhhHvXhvxghwxwgwXhXwxyxhXxwwxgwhwxvxwWxhGhwIhHtwxwxxxXvvXyhxyxiXHxhhWvwWwwxvgXvvgWyXhyXHXxxywxWevgXwwgixxgx8YHYHwxfxwWhvxWxxxxxxxyxxwxywxxhvwhWvygXwxvxhfxfwwwghhhhhvhfxywhXwvgxxwwxwwwwwgwxxihxxxxgxwxwxwhwwwxhyxwxexywhhwVggfhgwwvwfgwvxyhxgwwWgvhWhwxxwhxvhgwvxxwwwhyhxwhhyhhwxxwwwwxwwxxwwgxVfhivhvWIXYYHwwwffhwwhxXhhtXyhxxyiYvvvwhhxhxwvuWwxhYXHYIxwuwWgwwwvgwXihiiwtXuwwwwxgxghyxYxwwxhvgwxgxhwtGwXXvXX8xhxhxwwvWiXxxxhwgxvwwhhhxvwfVxhxhhyXwwuxwxgvwxxwxwgwwhvyhyYvXYIYIIYZYZ9wxvihiiWigvhwwfVyiyxyyYxgvwhxywvgxwwvxxwwvwwxwwgvIYYY8wwwwwvyhyihguGwxwxhhhuWxXvxxyxYhhwxxxhvugxxvxXxwvWYYIZ9wwwxxwwyhyhiyivxwxgwwxxvxgwvvgxXwyxXwwxwxwwwwwgxwxXuVxxvhxxwvWXIXI)XXIY8yixXiguGwwwxxgvyXyxxyXgvwwhhwuVwhxwhwxxxhhWXYHYHwwwwgwggvvgxxvhXyXwxwweVyixxxIyixYxhtWvwxwwxhwHhIhGtwxvxwwxXhyxyyXxxvwhWwwwugvwfwhxhyhxxuYwhxxhxwuWhhvHxguWxwxxgYX9YHIiIiIyyxwwxxxyXyYyyYhxvXxvfVwgxwxxgeWixgxgvfVIYYY9vwvxhweVyxxxwxwwxwwwxHxhhiYxxxxxxwwxwwwIZYZIvwvxwxhvtGyYyiyiYXggwxwwVewgvhxvweWyXixhIhxxhwywweVxgxxwwg9YXYHjjjjJK*xxXxhhwwhxgvjijXxhxXxwhhwgghwhxgviZzjZZ)hwwhgvXxxxXhxhxhiiihwwwhhvhxhxhZjzZZZ*hxhxhiijwgwxghhhxXxxihihxhxhxwhhwggwgwxghhYiyYYZ\u0019hhghxvwVxxxwgxgWguixXxwhxxxxvhgvhhvxvfwwxwwwywWwufVvxwhxfhgvwvwwwhwhXwhxxxggxvwwwxwwwXWXxxhvwhwfwvGvwwgxvggfgvvxiwwxgxwxxxxxxwxXxuXXuwwxxwgxvxhxxxxxxxhhHhxyvhwxvwuVyixXiguGxYXXhvxwhxvhgvgvwgwywxwywxwwwxxxxxxxyxxiYwXxgGyxyyxwwxwwxxwhgvwhXXhWXxihxhwxXXihxgwxwhghhwwGxfwvGhxxxhwxxgxxxxxxwxxyxwwxhhxxxhxhxhxxyHHhhwxwgwxgWgvyixXxWu8iixihWvvHxgwxghwxxxxiwxxxhwxWvXgxxxxxxhhXhhxhxgvWxxxxxxwwxxvwwgwfhgfwvvxxwhwhxvwxvgxwwxwuyxxxyXhwxhxgwWyxyxhvixxhwxhhhhhxwywwwxxxxwxwxxhihxwwwWxxghgvxxxxxhywXwxfgvWxhfXhvgWxxxxxyxvhvxxywwwxxgwxgwgwhhhhhvxxwvwWgwwyYvhxgwHvxxWwwWhhvhxxxxxixhixhYxxxihvyxyxxxyxxxxhuxhxwwWghwhXXhywhyxgxhvghfvvgxhhhhihihxvwxwwwwgwwvxyyiiyxyyyiivgwwwxvwWxxXxhxxxxxzxxyxxhxhxxxxhxxwxwxgxxvxxxxyhwwwwwxxwxyxxxxxxxxxhxhxhwwxxwwwwzxyxxxxxyyyxhxxhxxxxhxxhxhhgvwxxxxxxxxxxyxyxyyyyxxxxxxwwwwxwhwxyyxyyxyyyyyyhxxyyxxxwxwgvxxxyxyyyxyxxxxxxxxhxxxhxgwwXXhhhyxyyxxxxyyyiyiixxxxyyyzzwhuggggxxxxxxxxiiiihihxxxxxxxxxyhXXhhxyyxyyyiyyiiyyihxixxhihixxxxxxxxihhXXiyhixxxyxxxxyyxyxxxxxyyihxwyhXxxvxxxxxxxxxxxxxxxxhhhxhxwwwwwwwxixgiwxxxxxyyyxwxwxwxxyyxxyxxxxxxxyyhxyhXhhhxxyyyyyyyyxxyyxxxxxwhgugxixxxxxxxxxhxxxhxxxxxxhhhhxxxxiyiiyyyxhyxxhxxhhhxxxyxwwxxxWvXwxxviYyyiyYwhwwxxjjjxxihwxyxyyihyxhXwxywwwwxhwwxhyxxyyiyyyyxxxiwwwwwyyiyyxyYwxxwxhvzzjzjxyyxwhxiyyYyyxyxyyxxvhxwxixxyHvhvfgwvvxxwwwwxwxxxyxxxxxwwwxxwwwyyyyyuwhugwghhxxhhxhxxixhxwwwwwwxxxhxhxxhxxxxhxhixhvgwvvfgxxwxwwwwxwwwwwwywwwwwwxxxhxhxxwxwwwwwxxxxxxvxvwwggvwxxxxxyxxxxxxxxyxxwxwwxwwwwwwxwwwwxwxhxxxwwwwwxhxyyyyxyxzxxhhxxxxxwxwxxwwxwgwhhxxyxxxxxxyxxxxxxxxyxxhxuhgugxiwwxxxxxxxhhihhixvwvvfvwhwxyyyyxhxxxyyyyyyiyxxwwxxWvgxYwixvwhvxxxxxxxxxyyyxxihwyYwxxxxxxyxiyxixxxhxxxxxxxhxyxyxyvxwwghwxxxwywxyxxwxxxxiywwwxwwxwwwwxwwxxhxhxyhxvhgyXyxxyXxvygwywihyhzjjxxyxyxyyyyyyxiHxhhXxxyYxhxgxviwwwxwyiyyyYwyxhwixihxhxXhxyhyxhyiiixixyizzzzZyxxhhxxhhhwxxhXyXwyxwyXviwwwyvwyxxwwxxxxyywxwwwwxwxwxwwwxwyhhyyuxxxxyxyxxyxxxxxxiiwvyxhivxxyxxxxxyxwxwxxxxxxxxxxxxxxgxxhxfhhhhhxxxxxxxxyyyyyyyxxyxxugvhgyhxxxxxxxihhhxxhhhxxxxxxxxxxxhXhhXyiiiiyyhxxhhhxyxxxyxxxxxxwxwxxvxWvXxhwxwxxxgxwyxyyyyxxxxxxxyxxywxwxhvyyxyxyyyxyhhhxxxzxwhxxyhxhxyyyyxxyyyxxxxxxxxhxWwwxhhhhyyyxyzzzzzzxyyixhiixyyxyxxyiyyyiixxhhxhhxxxyyyxyyyiyyywxxxxxyyyyiyyyiixyyzvvhvwvghxwihyyxihiwxxxhyyyy{kkxwywwiwyyywwxyihxxyXyyxyxxygxizzZzzwivwwwxxxYXyyyyXxjzjzjgxxxhxwxxxzzZzzxvxwhxixxyxwxyhxyigxyxyWgxvfgvwxwvxxxxxxxxxxxyxxwxyxyxwgwhgyhxyyyyyiwxwxxxwxwwhxhhyyxxyyyxxxxhxxxixhihxxxxxxvgwXxyxuvixhwvxxxxxxxyxxyxxxxxhyxyxyxYhwxhwxxhxhxxwwxwwwxwxxwxwxxwhyxxxxxyhyhhyxxyxyxxyxxxxxxxxxxxxyyyxxxxxiyxyhwhwghiyxxxxxxxxxxxxxxxxxxixhhhxxhhxxxxxhxxhhhxhxxhwwhgiyxxxxxxwwwwwwxxxxxxyxxxxxxhxxxhxxxxxxxxxxxYhXYixxgwxwgwyyxxxxxxxxyxxxxwxxxwxwxxyyyyyyyyyywwwwwvxxxxxxhxxhxiwwwxxxyxxwwxxxwyhxyhyXxyxyyyyyyyjjjywxhxxihxxxxhwiyXxxyXwyxhwiyixxyjzzzZyyxhxxxyhyyxXxwgwiiiixwxXhywhwhxyYyyyiwhxhwxwyyyxxyxyhXyiyHhxxwxyyyxxxxyyyyxxxyxywxwxxxxxwwwwwxwhxyxxxyyxwwwwwxxxxwwwwwwwxxgvxxxxxxxyxyywgxwxwxgxyxxxxxxyxxyxyyxxxxyyxyyywxwhyxxyyyyyyxhyyyxhxhxxxxxxhxxhwhwxwWxwxxxxwhxxxxxyyyyxyxxxxxxyxxxxwxxwwwyywxwwxxyyyyxwhwxxgxxyxyyhxxxhxhyxxxxxxxxxxwxwxwxxhxxxxyyyyyyxxxxxyxxwhywgxxxhxyzyiyyyywgwwwwyxxyyyxxhxxhxyyyxyxxxxxixxxxxxXwhwxwghwwhxgvxxxyyxxyxxxhhxhxyyxxhxhxhxxxxyyxyxyxhxxxxxwghwhvxxxwxxxwwxxxxxyyxxxxxxxxyxwxxwwwhxihhyXhxxhxxhhxijzzxxxhxfxvxyxyhhYhiYhxuxywhgxxyzzzzzyyxxhyXwxyhxixyYwhwvwywwiyihhyxwwwvgygyyiyyyxyxxyyywvxhhxygxixyuXyXyYyyYwxywxxhvwwwgxhjjixyxxyyxyxxHXhiXxyxvxwwwwhygwhyxyXYyyyiwwvwxxwhwxvxhxhiYyIiiYjzzzjyxxxxiyyyYxxhxgggwgxhxwyXyXyhHyhyixiXvhvxxywyyyyjjjhygxwwxyyxhvxywyhhxyXyxyxyxhyhvxgyhyyYyyhxwxywyyiXyhxyXxyxyyiiyWwxxihxxzzjzzgwxxhyihhxyyiixYhhHyiyYXyYxyyk{{hwxvwyxxxyxwwwxwyyXhhyYxwwvxgwxxxxZzzzjyxyyxxyhyihyiwwhxxjzjzzwgvhxwxhxyhZzzzzvxwwwywvyyyxiyyyXyhgywXjijzxxyx||ǌ||xyxiiixxzxxxzx{{kyxxxxzxjiixzx{k{{{{ywxxy{kxzyihiXxghxvwVxxxxxvxWgwhXgwixwxxYxxxxhfghvghxxvgyyxxxxxixwXigGxWvxgvwxxwwhhhhhyxxxxihxihyxxhXwXgXhxwxhxgwWvwgwxwwwxwgwxyxxwxhxiiyxxgwxwwxghwwxwihyhuixyxxxhiyyixhhihhivgwywvvwWxwwwxwwwwxhxxxxwvxvggWwxxxxxxxxxxxixiivgxwvxvwvvvwxxxxxwwwwxxgvwxxxxxxxxxxxwwwxxhgwxxvgwwgwwgxxxxxyyxyyyxxyywwxwxxxyxxxxggxwfgxxwwwwvyvxxwxxxxxxxxxgxvxxxxxxwwxxxwxwwwxyxwxxxwgxgwwxwxxwwxxxxxxhxxwxxgxiuxwwwxwxwwwxxhxvxuxxyhvxxxhxfwwxxvxwxxxxxxxxwgyvxhxxxwxwwxxxwxwwwfwgxxvxxxxhhwwwyyyyyyyggwwgwyxyyyywxfwvwwxvwxvXvxxXwxxxxxxxxxxxxyyyxxxxwgwhhvxhxhhwwxxxiyiixiyvxhyxhxxwxwwwxxxhhhixxyixyhhwWxxxgwwwyyyxxxxxyyyyxxwwwwvgxixxxxxxxxyxxxwwxxwwwvxxxyhyyzzyyyyxhyyyyyzxxwwvggxxhhyhhxxxvgxwgwwxwxwwwxxxiiiiiiwwwwwwvxvxxhhwyyxiyhwxvgwwvfwxxxxywwwxwxXxwWwwwuhggvxxxiyhxxxxxxhhyyyYyYyxxxxxxhgwxggvxxxXXhxvXxvfVwhWvygXvhwhxvhgwgvwwgvywxxywxxxxxxxxxwwwxwwWggXyugWwwwxwwwXwXxuXXwuxwXXxXXvhxxwxhwwhvWwhgWwvhggwfggwwfwhxwwGhfvwGxxhxxxXywxyhxwxwxxxxxxwhxhxhwwxxxxiHhhHggxhvghxvfghxwXwyfvgWfxvwvwxwxwwwwxxxxxwwxxxxxxxxxwgxwwwxxyxxywhvvhwgwgfwxyixyivgvwgxxwxxxvvxvwwxuxwgyxxxxhxxhxyxxxxxxxyxxxxxxhwwxxxxwwywxwxwwwvxgxvwxhwxxxxxxyxxxxxxxxxxxxxxxxyxxyyyiwxxxwwwxwwwxxhyyxxxxxwhxwvxwxwxxxxxxvwhhwxhxhxxywxyhiyiihxxhxvyxxhxxxhxxxxiixyxyXxwwvxxwwvxxxxxxxyyyxxwwxxwxwwxwxxxxxxyxhyxxxxxvwxwwwvyyyyxiyyyyyyyyyxyyxwywwwwwyxxwwggghvhihiiyyyyYyyxxxxwuywwxwyxxxxhxxhhhwwxwxxgxxwxhxxxxxxyyiyyxxxyxxxhxxxxyyhyyyiyyvywwxwxwxyxxwyyyYyyyihhhixhhhhxxwwxxWxxwwxvxvxhhwyXhxXyiiiiiixxxxxxxxyyxxyxwwxwxwxvvxguxxxvxxxyYYYYyyxWxhXxwwwwwwwxxvXwvwwWvxhhihxxxwwvxwxwxxxxwwxwxxxxhxxxxxhhxxxxhHhhHihiiiiywvwgfhwxgYhyhiWvvHwwxxgwxgwgwyyxywxhxxXYhXYxxxxXhhXhYxhigwGyxyxxxxxxywwxwxxwxwgxxhhwxgxgxxvhwhxfhgwwvwxxxxHwvxghfvwGxxhxxxvywwwxxwiHhhIhxxwwxivxhhyuWhwXXhxgwwWwxhhgwxxxxYxxXYWv8xvxwgxxxxyxxyxxyhxyyyyvxxxvgwvwwwwvwxxxxxhyxxxxxxxxwxxxyxxxxwxwwwxxyixxxxvwghwwxXgvhxxxxywxxxvxxwxhxhxxhiiyyywwwvwwhgwwwvxxxwwvxxyyyxxxxxxxxwxwwwgxyyyyxxxxyixxxxxxxxgzzzxyxyhxxyhyyxhyyxyywxwwwwwyyzzwgxxwfxwwgvgwwxyxyxxxyxyxhxxxxxwwwwxwxvxxxxwwxwwxhwxwwwxyyxxyxwwwwwxwwwhwvwwxwwxxxxwwwwwxggwyyiyxxxyyhhxxxwxvxgwxxxxyhxhxyxxxhyXxxxxxxxxyxxyhxxhyxgyvxxhwxwwwxwwwwxxhyixxxxxvwxhvxwxxxxwxxxxxxwwwwxhyxxxhyyxyyxxxixhwxxyxhvxyyxxhhxxxxxxhxxxwwxvxxxwyxyyxxxxxxxxxgvYwwhXwxxhhwwxhwwxxhvxxxhhwxwwxxxwxyyhxixxxhhxxyhhihxxwwwxwwwwhhgwxyxxxhxxhxvxhwhhhwxxyyxyyyxvwxxwhfxwggyyyyyyxxxwwwwhxxhxwiivxXYgvHwwwwxxxxxhwxvwyxwhwgwxxhghhihhvvxxwvwxgWwhhvihgwXhXhhXxywxwxxwxyxxxxwxxwxxxxxxxxyyxhxxhhxuxhhwwWhxhxhhxwxwhxwwhxgwxhWgwWwhvyXgvxggxxhwvgghwvggwgfwwxwxwxxxxxXxfhwivwwWxwxgyxxyxxxxxxxxxxxxwxxxxxwxxxxxzzzxyyyygwxwxwxwxxxxyxxxhhxxxxwwxxwwwwwxxwxxhwxyzyyyyyxyyxxhxyixxxxwyxwwyhxxwxxwwwhxxxyyxxhxxxyyyyxxxxwvwwwwvxgvwhxywvgwxxxwxxyxxxxxyyyyxgwxgwyyxxyxwwwxyxxxyxyyyxxxxxhhxxyxwwxxwwxxxxyyyyyyyyyixxwwwxxxxxxxxwvxxxwgwxghvhxwxwwwxxxxxyxyxxxxxxxxxyyyyxgwhwyyyyyhxxxyyyyxxxwXwgwxxxyyxiyiyyyyyhxxihihxxxxyyyxxhwwhywxxwxxxxxxyxxxxwxxxxhwxwxxwyxyyyyyxwxwwwwxhhxxxxxwwwwxwxxxyxxyyxxxzzzxhwxwxXxhxXxhxhxxxyxxxxxxxxxxhxxxwgxwwhwxhxxxxyyxxxxwwwwwxxwhxhxhyyxyzxxhxxxxxhixyhyxwwwxxwwwwxxxhxxhxxxxhwhxxhhhwgixxYyvuXxxxwxgwwwvwwxvhhxxxxxxXXxxxxxxvyxhxefWwhWvxwxwgvwgvwwxuxxxxwwxxxwxxxhvghvgvvxfwxxhhvvWhXxhhxxhhwxwwxxhHhhxwwhgvxxwxwwwwwxwwxgxwgwvwxiyvvGwgxwxxgeWwxvxhfxfwwwgwXWvhghvhivwwxyxxxxxxxxxxxfXvxixgfXxxxxHHxhhhgfhgvgxvxgwwghwhwwwvwgfyfgwwfvxWWvwxhhvwhguhxVwVhxxwwwxxwgxhgxwwxxxyxxhwwxxxwhYwxwhwwxxwwxxuxXuxWwwWXXyXXvwhxuxhgvfXhxwwwuxWwwghhhhhxxihxxwxvxhfxfwwwgxxxxgxgwxxxvgxyhvvXxxxxxhxyigWwggwuxhYgxwwXWwxwxxyWhvxhhwvXxyxxxXhxwhxxgxwgwwxgwyxyhwhiwgxxxgwwWwggxvhhhxhxyxxhgxxuhhfwgXwxwwxWxfgXyxxxxxxxxxyxwwhhihhgwgwxxxvwgwhwhggvwihhwwXwyfwgfwfwwggwwxxxxxwxiwxgxxxxhxxxxvxhxwvWxxgwwWwxghvxhwvvwhXXXxuwxWwvgvxwxvxgwxwwXXhhxwywxwwwwxxxwwxxgivhywvHxwhhwggxyxxxxxxxxxxxxiixxxwxwwwxxxxhxxxxxywwwwwwxxwhhwggxxxxhiiyxxxxhxxxxxhxXXxxxxxgwxwyyxxyxxyyyyyxxxwxxxwxwxxxxxxxxxxxxwxwxgvyxyyyxxxxyyyyxxxxxhwxwwuwwxxhwvxwxxxwwhhxxxxxxxxxxxxhxxxxxxhhhhyyyiiiywwwxwwvwxxxxyhxyxxxxxvxwwwxwwwvwhvhgxxyyxyxxxyxwxyxxxixxxyhxxxyyxxxxxxggxwxwXwuhhwxiyyhxxvxwxwxyxxxwxwwwwxxxxxyyyyyyxhhhxiyiyiyywwwxyxxxhxxxxixxxixxxxyxxxwxxyyhihxxyxxxxwxvwxwxwxwwyyyxhxxxxxwwxwxxwwxhxxxxxxwwwxwgwxhhxhxxyxxxxxxxxxwwxwwwxwxvwvwhxwwwxxxxxxxxxwhwwwhxvhxhxxxxxxxxxwgwwwvxfxwhxhvyyyzxxxyxxyxyyyyyxxyxwwwwxxhvxxxxxxxyyyyyxxyyhwwxxxwxXyhhxxxhyyyywwxxxxwxyxyixyixwxwxxghhxXXhXwwxwvwxwxwwgxhwgwhgyhxwxhiyyIIiixxxhxwxghwvhhhwvvxwxhXhhXxxwhhwwwwwxhxhxXXhhwwxwwxxugvgxixwwxhXXxhyyxwwxwxxxvwwwxwwWiiiYYYifwwfwwvxvvvxxyxxxvxwhgxxxxxxhxxwxxxwxxxxxxwxwwwxhwwvgvwxWxvxxxyxgwfxgwwwxwxwwwxxwwxhhyyxxxxwxyyxwwwwgvwxwwxvfwihxixxyxxyiyiyxxxxxwYyYiYiyxwxyxyyzZzZzyyhixiyxxxyiiiyxxxxhzjjjjxxiiiiyixxxxxxxxxxxhywwwwwwhxhxxzyyiixxxyxyyyzyyiyyyxxxxwxwwxwxwiyxhhxxxxyiiYyxxxiiiywxxxwhhxxxxyxxxyxyuvguhwvwXXvyxxxyiihhhhxyyyyyiixxhhhXXxhyxywxyxxxyxYYYYiiyxxhxxxxxihYYxxxhhhihixyxyxyiiiYYYyyyyxyxiixxhhxHHYYiiYiwwwgwwguxgvwwwwgxwxxvxxivxhhhhxfwfvwwwxxhhhxxiiYYiYggxghwwwwwwwxwxwwwwwxvxxvxwvhxxwxgvhxxwwxwxwhXiiihwwwxwywxuwxwhvxwhxwxvwwwghhwxgxvwwWxwguwxxxxwgwwxvhixiiihxxxxxxxxxxxiiyiixxxxxxxwwwxwxxxihwwwxwxxxjjjZZxxxxxxiiiiyyywwwyyyiixxxxxxhhxxhxhhxxxxxxxixhhxxxxxxxxxxyyyiiwxxwwvixhhwxwxwwwwwxxxxywxwwwxhxyyxyxxxxxxxwxwwwxxyyyyyxyhhhyxxhxxxxxxixxxxxvyxxxyxxyyxhxwxwwxxyyxxxxyxxhxxxxxwgxxxxxxxxxxxxxyxyyyxhxyxyxxxyiyyyyyyyyyxxxxxxxihhhxyyxxxxxxyYiiyxyiyyixxxyyyxxxxxxxxxwwwxwyxwhxYxxxxxhwwwxwxxhyhhxxyxwwxwxyyyyxwyhyhxxxxxxxxxxxxxxyyhxxxhxyxxxyxhxixxxwwyxxwwyxyyxxiixxxxwxxxxxxxxyyyxyxhxhxiiYiiYiyYYYYxxxxhhhxhvwgvggxgwhwxwwxhxvgxxxxhhxhjjJJJjhhhxvgwvwwxxxxxXXhxXhwxwwgxviYyYYYYxxxxwwxxxhhhyhxhxxxhxxvwwxhXXxhvwwhwwxwxhhxxxYiyYYYixxxxxxxjjjzjxxxxxxxyyyxxhyxxhxxhhxxxxxiyyiiiyZZjjjxywxwxxxxxiiiyyxyyyyyywxwwwxwwxyxxxhxhxhxxxxxxxxxxiiyyyxyxyxxxyxyxxxjjjjjyyyyyyxxxyyyxiyyhiiyyyyxxyyyyyyyyyyyyy[[{[[xxxyxxxyxxyyyyyyjjjjjxxxxxyxyxyxjjjjjxyxxyxxxxxxiiiyiiwgxhhxyyxxiyyiiiywxwwwwwxxxxwxwwhWxxxywvgwwwxhhhxxyyyyyyyyyxxxxxhhhhhxyvwvvvxwxhvXXxhhxxxxxxwgwguwhxvxxxxxxxxhyyxhyxggxxxwvXwXvxxgxxxyxhxxhhhxxxxhyyyXXhxXxxxxxxxiyyiiiywwwxwxxvXvXxwhvxxxhxxhhhxyyxyxwwwwwxxYiiYYYixhxhxxxHHxhhwxxxhhWyyxyywywwwxhwxwhxxwyxxxyyyyWXwwwxwxxiiuwWhhhxixxwwxwwwwwwvxxxyxvghwxxxyxxwwvxgvwwxuxhyhyYvWhhhhiywxxhxxxxhXhhxxxgxwxxyhxxxxxwxggvwvwuxhuvFghxhhvxxxxxxvxhwgvwwwwxyyyyxwwxxwwxxxxhhhhxvwxwxwxxxxhxwxwXvwxgwvwwwwxwxxwwxxxxxxhxyxwwgvhwgvwhhwxxxxyxyyyxxxxxxwwxwwwwxxyxxwwwxxxxxxwxxyyxhwwwgvwffgxxxggwywwwwiwwwxiyiyiyyixhyixxxxxxxxxxvvxxwxxwyyyyyyxxxxxihixxxxhyihiwhgwxyxwxvxgxyxxxxxxWxxxxxxhhhxxxxwgxxggxhiwxxxywwxyyyiiiyxxxwxxxxwxwXWwghwxwwwwwwxhvhvvhiyyyyxxxxxxxxihxixhhyxvgwwhxvhhxXXxxxxxxxxxxxhwghwxghwxxwxxxyxxiiyxxhxxxxwfwwvxxwXYgxhuxwvVhxxhxhhhhhixgwxwyhxxxvxvxhfxgwwwgxxxxxxhiwxXvxvvvfwxwwxwwxgwwwxhhhxvxxxxxxwgwhwwwxwwxwwXwXhwhhwhvwuwVghhhwxxwvwwixgxhwwwwwxwxvwwgwvhgfgvvxwxwwfxxxxyhxxxxxwxwwxwgxgWguihvhfwfvUIXHXYwwgxvwxYXyuvWyhxxiXwwhgwxxihvwXxwxxxwxwZY9YZyxvXYwuWvixhuhxfwvgwgwhwiiiiiIxxxxxwwwwyhhhvWYXHXIxivxhwhvfugihxxyXwwwwhyhhwvWiyyiiiXxwgwvwwwwxwhixvXZIIIZwxgxxgxwxwxviiYYiYxxyhwhwxxgyhuwxiXxxvxxvwxhwxyxXiyiYyijiIxgxgxxxwxwwwihhiYXwwwwxhwwxhhhxxxwygxxwwhxxvyxxwgxwxxwxhvyiyhiiXxxgvywhxvyxxyxvxwwwwjYiiiZYyhhhyhxgxywwxwxwwxxwywyYyywvwwxxwxhhhxyhhhykjjjjkJxwwxwwxxwxhxxxwhyvxhhhxZYiiijYhxwxxvxxhx[jZZZ[ZyxxyxxwxhvyxgxhwyyiyyvxwwwwwhwwwxgxyiXxyxxxxggiiyihyXxwwwxwxxvxwhwxiiYYiYxhhhxhwhyxxxwxxXixvxxwhwxvxwwxxggxiYyjiiIxhxwxxvYhihiXxyxwxvxwgywhygxxugxxvyhxxxIyxxxvwxwhhxyyYyyyyyiXwgwxyiiiiiIxvwhwhxxxxwwhwhxwyyyzzZzzyxxgxwhxvxhxxyIxwhwxwhxwyyYyyxhgxwxxvjjJjjxyxxwwgXiyyyyyy9hhxghvxyxxxxywxxgxvvggwxyxxxwwwxxwxxxxxxxhhhhxxxxxxwgwggiiiiyiixxwxxwwyyiiyiyxwxgggwhXxhhxhxxxxxxxwwwxxxxxxhhxxixhhygvhwXWwvwwgxWwuihxXhXhwhwhwwwhhwxgwxwhgugxixxyxxuwwhwxxxvxxxxXyYYXixxhvhgwxwxxwwxgwvvxwXvwwWvfgwvvwgxwxwvgvvvhwvxxwwwgviiyIYIYhhhhxwhvgvxxixxxwXwwxxuwxwhhxwxxxxwggvfwhwxxxwvxxwgihXhYhxxxxyiyyiwwwxhxhxhxxxhxxxxxwwwxwxxxxyxxxxxjZjjZyiiyiiyiiyiixxxxxxyxhhwwwxwxxxxxxxxxxxxxxhyhhxxxyiyyixxxwxxwwyihyhxwwwxxwwwxwxyyyyyhhxxxhxxxixxxxxxxxxyyyiyiyxxxxxzzzzzxxxxxxxxxxyxxwxyiiiiyyyjjjjjxxxxxxxxxxyyyyywxxwxxxxyhxhxyyxxyuXvvXwvwghvhhxhxxhxhxhxxhhhxyyywxwwwxwwxvfhvhgwwwwxxxwwxwwxyxxyxyxxwxwxxwxxxxxwwwxwxxxxxxxxvgvgvhwhwxxwxxwwxhxxhhhxxxxxxhwwwwwxwwyyxxwxxwwwxxxxhvvhwwgwwxfgfxxxxhxwxvxhvvvgwwxyxxxyyyixxxxwxwxwwxxxxvwwwwwwwxxxxxxxxxwgwgggwxxhwxxxyxxxxxxxxxwwxwxvwxwvwffxxwwwxhyyyyxxyxxyxxyyyygxywhxyyxxxyxiyyxxxxxxxxxxwxxxwgxyyyyxxyhyxxxxxxxxwhxhxxwWxxvvxhxvxwwxwhggvxxxxyyxyyyxxxxxxxxxxxvwwxywxhxxxxxwwwxwxwwwxwwvgvwhWxwxxxwwgwwvwhwwxxxxxxhhwhhhwwwwxxwxyyyyxxyxhxxwxxwwwxxwwxwwwwwxggvgwhhghxyyxhxwhwxxhwxxhxwxwwwvyxyyyyyyyyxxwiwxhxxxwxwwwgwxhwxxxwxxhhxxxyvxxxywiyyhhhxyywhxxwxyxxxxxxxxyyxxYyxxxwxxihxxxwxxzzzvhwxxyyyyxxxxxxxxhxxxyyywwwxwxwhhxwwwxxwwwxyxxyxxxxwxxwwwxwxxxxhxxxxxxxyyxxxxxxwwwxwxxxxxxwwwxwxxxxiyiyxxxyxxxxxyiixhxhxwwxwwxxxyyxxxwwxyyxyxxhxxxxxhhxhXXXwwwxxwwggwxwvwwvwghwvwhvwhvgxgwhwxxvvhwwxxvwxwwwggxwXxhXhhxxwxxwhvwwWvwxwxxwwhgwwfwgwvvwhhwxxxxxwwwvhvwxwuwwhhhxXHhXxywhwhuugghgwhwgfgwwwwwvwffgxwvwhxhwwWxwwxxwhxhvxwgwvfvvhwghXvWWvvhhixggwxxwwxxwwyxxyyxyxxxxxxvwhwvxuhwwxxxxxxxwwxwxwwhxxwxhxhyyvwwwwwwhgwyyhyxxxxxyyyxxxxyxxywwxxxxxxxwxwwxhxgxxwxxxwxwhxvgxxwxxxyxyyyyxxxjzzzzxxyyyxxhyyxxxxxxxxxwyxxxyyyyyxxhyixhxhxxwwxyiyiyyxxxyxxzzzzzyxxyyiyyxyywhvwvxXXxyyyiiiihxxxyxyxyxwwvfwvwfwhhwxxxxxxxxxxxxxxxxxxxvhwvghiihihhhxxxxxxxxxxyxxyixxxyxxwxwxxwwxhwhhiwxxxxxwxwyzyiyxxxyxxyyxxxxyxxxxxxxhxyyiyixxiiyyyyxwxwxyyxxxxxyxxyiyxyhxxiiyzyxxxxxiYhXhhwgwxxwwwxhhxxhgvwvhwwxwwwxwxfwvwwxvvwxwwvwgxviYiYYYgwhhyvWWvgxwwvxWgvgxwwxhxhghwwghhhhhiYYIiiwwwhghwhwxuhxwwwxwggxxwwvwxxgvxxwwhwxwvwxwxhxwvxxhhvvxxxwiIyiXhhxxiyyiywwxwwwxyyyyyyxxxxyiyyyiyyxxxxxxxxxwxyxxxZjjZjxxxxxjzjjjxxhxxhxxxyxyxxxxxxxhxyhhhxxxxxxxxxhxhxhxiyyiyxxyyxxyxgxywwxxxxxxxxyyxyhxyxwxxxyyiyxxhxXixxiyyyyiyywxxyxxhxxxwxxxyXwiyyyiiyxxxwgwywwyxhhxhiyhyhxxxhxxxxxxwxxxhxxxwxiyiixxxXyxyyXwyvhyxhxhyyyyyxyixxxxwwwwxxwxwwhxxxxhxxwyyxxxxxxxxxxxxwwxwxxyyyyxyxyxxxxxihgghxhxxxxxxxxwxxwxxxyxiyiyxxhwxwyiwvvvggvxxwwvwwwwxxxgwwwxwwhxxxxxxxxxxxxxvwwwvwxhxhxxxhxvggwhwhxxxxxxwwxxxwxxxxywxwxwwxhxwwvwgxvwwxxxwxwwwwwxxxxwwwxwwwwwxxxxhxyixxxxxxxxxxXgwwvwwgwuvwvxhweVxxwwxwwwwwgwxhhxhhvgwxywwwxwxxwxxxxxhxhxxvgwwxhwvWxxxxxvxWWvwxhhvghvhhgxvwvwwwXxxxxhhwxxwhwvvwhhhhiwwghiffWwxxxwhxwgwxhxhxxwwwwhwhwxwhxyyxwwvwifwfgwwfvhgwhWXggvxXwufGhvhgwxwwwwvgwwwhxxxxxxyxwxyyxyxxxxyyyyyiyxhhhhxxxxxwxywxxwxwwhxxwxhxxiywwhwhxxxwxxwvxwiwhxwwhxxxhxyxxxhxhhxxxyxxxyxxhyxhhixxwhwXxhxxxwYWxwwvghyhxxxyxxyxxxvhxwhwxwwxxxwxxxxxxhyxhYxxxxxiiiiiyiwYxxxxwiyyiiiyxxxhyxyhhxxxwhxwwxwxxxxwxxyxghxxwhxhxhxxiihywxxxwwXvyxxiwhXyXwxwweVvhvhvghhuxwxvgwgvwwwwygwyhxxxxxxxxxxxxxYIvyYigvWxxxxxxvwgwwwxwxwgwYXhYXhxwxhhhhhhhvxxxxgwgwiYhHigvWxwxxxwwxwxgyhwxxxxxxxhxhhwyxiXwxwxwxxhYXhhfxwxxwhwwfvgiXxXxhvGwxwxxghwxwvwvXiiixiygxhxyxyxyxwxihyyuxxvvxxhwxxwgviXxiyxixxgxxwwwwwxxwihYhiXhwwwhwxvxyxxxxyyxyxyxyiyxwhiiyixiXwwxxxxYXHYIwwxhhXixwixwuWyhxhyXxhxwwwwvgxwyxwhvIhHhHwwxwwhwwyxvixwuHgxiXiwGyYyiyifxwxghvwWiyvyYigtWYX8YIxwhwwwxvihhYhYwxwxwWwxwwxxixhxXxxwwgwvwxxyhXWxyfhxveWXWwGX8txwwwwhwwihhiYXxwxwxwxxihixwgxxxihyxxvwxxxhxxwyyhhyuwwwfiYyiZYIyxxyYiiiYYgxxwxwwwxWgxyxwhxixwxyWxhvwxgwxvxyhywviiyXiIXxygxhwwxhxhwywhxvgxxwywgvjYiiijiwgxgyxxxywgyvxxxxywwgyxhhyxwwfxxgxxwjIiiiihxyXiyxxvxvxghxvyxwxxvjYiiYjYwyxWxhvxwxviYyyiyhxxfxwyyXyywixgxxuxxxxgyixxxIywxXhxvxxxhixzzZzzyyyyiyhxXyyxYyhhhhhhxgxgxxjjjwxxhwhxxxwyXhxvxihyxXyyyyyyYyyxxxyyxyyxxziixiyxxwxxyhwwwxxgYhhxxYiyxwxwxwwwwxxxxhyxwywgxxxxxxxxxxxxwxwxwwxxwxxyxyxxhxxxhxxixxhixixxxixxxxvhixxxxxxwxwwxxxxxxWxxixhxixhxxxxxxxxxvxwxxhxxxxyiiiwwwwxxxxxxxxxxwwwxwxhhxxxyxiiyyyyxxxxxyyxxyxxhhxwwwxwxxxwwxxxxxyxhxxxxyxxxxxxiYxihXywwwhxwxwhvhxxwhfxgxwwwwxwxxwvhxywwxwwwwwxxxiiiXixxxxwwgwhwxwvgwwwxxxvxwhwxxgvggwvxxwxXvWwywhYhhIhvwwwwvhwhwxwxwhvxfwvfvvwwwvxhvvwxhwwwwxvwhwvxwwvwhwuhvwxhwxhhxxiixYYXihhxhyxhxwwwxwxxxwwwyyyyxxxxxyyyyyxxxyyyxxxxyyxxxxxxwwwwxwyxwiiiiyyywxwwwwwiyyiyxxxxxxxxyhxhhyyiiixxxxxxxxxxxxvyhxyxxyyxyhxxxxhxxxxxxxxxxwixhxyyyyxxyyyyxhyxyxxxgxhhxwwxxwxxyixwxxwwwwxxxxxhxxxxxxwxxwwwxxyxwwxxywvxwixwxxhhxixxhhxhwwwyyyyyxxxxxxiyYYiYyxxxxxxxxxxxxxzzzzzwwwxxhhxhyxhhxhyyyyyxxyxjjjjjxxxxxxxxxxxxxiiihiiffwwwwwhxguhuxghxxxxxxyyxxyxxxxxxxyxyvvxwxwxxxhhxhhxwwxxxwxxxvxvvwxwwwgxxxxhhxuuxwvhhywxxxhxhyxwwwwhxxiihyxyxyxwwxxxhyihixhhxxxxxvvxwvhwxxhihxHhHihwxggwwhwwgxxxhhxxywxwxwvxxxxxggwxxYYyIYIyxxyxxvxxvwxhhxgxgxwfxXXhhhxxxxxwwwxwxwwwyXhxHXIhxhhxwggugghwhxwhwxhxhxhXhhhxvxvggywxxxwggxguhxxwYiy9Y9ixxxxxyyxxyxhyhxhhxwxxwwwwyyyyxyyyyyyxyxwxxxxxxxxxxxxxxxxxxxwxwxwwyiyxixhhxxxxxxwhhxxhxyiyyixxxiiyyyhxxhihxxxxxxxxxxyxuuihhwxwwxwxwwxxxxhxhyhxxhhhxxyxyxXXhhhxxxxxxxxxxxxiyyiiiyxihxxwxxxuhiwgxghxxhhhxxxyxYiiYYYixxxxxxxxxxxxxhXXxhxwxwwwhxwxwyixxyyxhxxixhhxyxwwwxwxyxxyyyyxxyxwhhwwyyxxywxxwyxxxihhxxxxhywxwxxwwxxxxvxwgxvvwwxxwggwwwhhwwxxhxywxwwxwwxxxxxxxxxuwwwwxhxgxxxxhxhhxxvxhwgwghxxxxwxwwxwxvhwhxxwwwwxfwwfwwhvhxvwxxxxhwxxwwwxxhxxxyxhxxhxxwwxwxxxwwxwxwXXxhhxxxxxvxvvhxwWxwwxwwhwwxwwyxyywwxwxxxxxwwxwxwxxxxxxyhxxxyhxxxxzxyyxhxxhxyyywxwwwwxhxhxxxxwxxwxxwwvgxfhgwwxxxyxxwxwxxwwxxwwxxxxxxxxxxwwwxwhgxyyyyyxxxxxxxyyxfwwwwvghwyxxwwwxxwwwghwwxwxxxxxxwwxxwxxwyiiixxvwxvhwvXXwwhvxghhxxxxxzyixwwxxwxxyyyyyyyxxxxxxyyyyixxwuhwgwyhxyxxxxyzzyxxyyxxhxxxxxyyxvwxxxwxgxwyxxwxyxxzzzzjyyyyyyiyyhiiyxyy{{{{{xyxxwxyyyzzzzjxyxiyyjjjjziyxxxxiiihiiwxyxwwiyyiyxxxyyyxxxxxxxxyxxxxxxxihhyyyiiyiyyzwxwwxhxhyyyxyxiiyxyyyxiyyizxxxxxxxyxhXxhHXhgxwwgvwxwhgugxixwwhwxxwwhwgxhwhiiyiIIixxhxyywwwwwwxXXhxXwhhwwxhxhhxhHXXwxwxwwgvwhhxhxxgxwvXwxxwxwwxxhXXhhhgxgwwgxgwvwxywYiiY9YigxxhwxwwyxxyyihxxxxvhxgxxxhxxwwxwwwwxxxyyyyyyxxxxxyhwvwwxxvwgwxhxxwxxwwwhxvXhxxwwyxxxwgwwuhhwvixxxxwxxxhyhhhxxxxiyyyiixxxxyXxhXXxxyyjzzjjjyyyxyyvgvxvhggwiyyyiiyxxwxYiiiYYywxxxxyhxXXhwxhgvxxxyxywwxyyxxyxxxyyxxxxwxwxwxyyxhyxwxwywxwwwixhixxyyxyhxhhyxwwwxxwyyxyhihxyxxxxwxvyxwwxxwxwhuwggvxxxhxxyxxxxxxxxxxxxxwwxwxxxxxxxxxwxxxvwvvwxxgwgwgvvxxwwxxxxxxxixxxyxxyiiiwwxxxxxxxxxxwwwggvfxhwxxwxwywhxhhHvXvxxWwwWhhvxxhxywyxhwivgwxwugxvxxxyhwgwyxwwhvwwwxXvvWxxxxyyyxhhxxxxihxxhhhxxyyhigwwwwwXwvwgyhyhyhiwxgwxxwgwwwxyxxyyxxWxxgxvhhgxvvvwwwxwXvXwhxxxxxwxxhXvwXhhhhxwwwxwxxhhyyxyxxywhwvhxxxxxxwwxwwwwwxvwxwwgwxxxxxxxyxxxxxxxhhhhxXhhhhxxyxyxygxxxwgxwxwwwxwxgwggxwxxhxxxxxxvwhvvxxxhxXhxhxgwwWvwwgwfhgfwvvwxwwxygxiwxxhxwghxwxxxxhhxXhyhwxvvwvfxyxxxxxxxwwxwgxwxxxxwxxgwwwxvgwvxxwwxxIXvihigWxxxwywwxwiwxwywhhXXihxhxxxwxxwwfxxvxgwXWxwvwgxwWxgwxxYhxXywwWxghxvwxxhxwvxwvwxwjYiiijixhhwxwxwwwywyYyyxwvwxwxyhxkjjjjkjxwwwxwywwhxyvxghxvyxjYiiijihwyxwhwyv[jZZZ[ZwxwhxxvwhwhywyiyyvxgxwhxwvihYhiXxxvxvwxxwxhxyiyyxwgvvwxxxhxwwxxXhyvxywxxvXXxYiiiyyyyhiYyhiwwfxwxwwwhWwxhywhyxyyyXyyyxixyxyxxhyiiyIhYXwixwxwhwXX8YIwywWwufVyxywxwihyxhXvixxvXhvvwfxxwwxxwxvxvwXxvvWYY9YYyxywxwxxxxhiwxXvxvvvfiiiiiIxxvXwvvvWwgxIY8XXxxxxhhxyiXfyhHhugVxgwYyyiiYYuywWwfwVhygHhfuVxxwxwxwxYI)IYwxwwxWhwyhxxwyhXxxvyiXxiYXiiwhiyYhixvwxxhxwxvvxxwxxwxwyhyhxhyyyywgxvyxixywgwxxhxvxxwyxvxYiyhIiXxwfwwyxihhYiXyyXyyyyiywwwxhxxgyxhXxxwhwhxvxzzZzzxxxxwxxxxxwxxhhyihiiiIxyyyyxxxxwxx{{[{{yhwhxxyyixhgxyxXyyyyzzZzzxxwwxwhyiyyxjjJjjhxwhwxxvxwyxxhwwxxxixxiiiXvxxwxwwxwxwxxyyyyxxxfxwfwwgwgwxwwwwwxvwxwwwwwxxxxxxxxxxxvxwhwgvwxwwwwxwwyxyyxxyxxxxwwwwvgwwxxyxhxxxxxxxxxxwwvgwwwuhxhxhyxxxxyiiiywxwxyyxxxxxxxxyxxxyxxxxxwxxyyyyyyxyyyxxxyxxyyxxjzzzzxyxyyzzzzzxxxyyyxyxyxxxxxyxyhxxxyiyYyyyyiyxxxxxxxxyyyyyyxxxxxxxxxxxxxyyxxxxxhxyyyxxxyyyiixxxxyxxyxwwwxhhxXHhhyyxwxwwwxwwyihxivxwgwxxvwxhxwwwwxwwwwxwxiiXhxhhhxwwwxwgwxhxvwhxwggwwwxXxhXXhvxxwxwgviihyhwxwvhwxxwgxwgxwwwxwxxixvwwxwwwwhwxxvxwwwvghuhuWggvwvxhihwwwxwwxhhhihixhyyxxxxxxwxwihwyyxxyyyyxyxxxxygvwxxXXvyyyiiiwxxxyxwxxxxxyxxxxihxxxvwfvwgwwxhgfxhxxxxxiyyywwwxxwxhxhxhwxxyyyiiwxxxxyiyyyyyyxxxxxxxxxxxxxxxxxixxxxyxyxxxxxxyyyxxwwwwwxxiyyiyxxxxxxxxhyhxxxxywwxhvhwwxwxxxxvxwygxxwwxwxxhxxhxxwhwhwxxxxxwwxwwwwxwxxwwxghxvwxxxxxxxwxwxwhwwhxwxwxwwwwxxwyxxhwwwgwvxhwxxxxwhxhxhxxxxvhwyxxYwxhhhyiyywxwwyYyiyxxxyiyzyhyxyyyxxxxxxxxxxywxyxxxxxxxxxxxxhxxxwwxwwyjyyiwxxxiiyyyxxyxhxxxyxyxyxiXIYhivwgwvxwxxxwwwxwxwwwfwfwhwxvXvxxXwwwxwwxhwxwhwwxhxYYihihxxxhwxvvwhwvgwxgwgvxwwxgfwxgvwvxvxwwxxxYxYXixxxxhvhwwxguwhxwwxhxxhgvwwgwggvxvxwxhggwwwguxguhwywvgvxvwvwvxvhIyYhYhxvyhwxxxhxxwwxywwwxxxhyxxxxhhxxxixxxixxyhxxyyxxxxxxxxxxyxxxxywxxxwxxhyhyxxxxyyxyxhxxxxxhhxhxxyyyxxxxxxxxwxwwwwwwxviywxhwywxwxwwwwxwwxwwwwxiiiiiiyiiyyyyyyxxyxxxxyyyyyxxxxxxxwxwwxxhhxxxyyywxwxwwwxxxxxxyiyyihxihxxxxxxxxxxxxxxxxxyxxwxyxxxxxxxxxxxxjjjjjiiiiiiyxxxiyyiiiyxxxxxyxxxhxxxxxxzzzzzwwwxxwwwwxxxhhyixxhxxyyyyyhxxhihwwwxyyyyyxxxxxxyhyxhhhxxxxyxyyxhhhhxwwwxxwxxxxxxxwvyhwvxxxwhihxxxvhivvhhwwwwwhhxyyxxxxxxxxxxxxxxxxxwxxwxxxxwwwxhgxyxyyyyxyxghxwxfvgwwxxxyxxyxxxxhwwxhwwxxxxxxxxxxxvxwWXywYYyIYIYvwhwXvvXxwwxxxxwgwhgyhwxhxxwhxwwhguwwywwhxwwxxhXiYXXihvhvvhixxxwxwhwwhwwxwihwfwxggwgxxwxxxxXhxXXYhwXWxwywguwhgxxxWxxwwgwxhhxhhwvvwvvvhxvwgwxxwwgwwwwhgwggwwxxxxIhXHYhhhhxixxxhxhxxhhhxxxxxxxhxhxxxihwwxwxxxxxxxxxxxxhxxyyYYhhyxxxyyxyhxxhhhxxxxxxxhxiywwwwwwxwxxxxxxxxvhiwhhxwhXhhhxxxhxxyyyhxxxwxvvwxwxxxvgwvwwxwxwwwwxwyxxxwwxwxxhhxhxvgxxxxyyxxxxxxxvvwvwwxhxwwxxxxxxxxvgwgxxwhyhxhxxxyyyiyiywgwxgyxxxxxxxxxxiixxYxiiiiiiixxxxwXxxxxwxxhxxxyxxyvhxxxixxxwxwxxxhvwxxxxxhghxxxwwwyxxwwhxxyixxvYwxxxhwwhgwhxwxixxxyxxyxyxxxxxxhXhhXxyhhghxggwwxwwwwwxxxxxyyyyxxxxyyyyyiyywyvhhxxhhwxyxwxxxxxvXgwwXhwwxyxxwxggwwxhhhxhhxxhyyxghwwhxxwxxwgxxwgwxyyyyxyxyyyxxxxxxxxxxxxwgxwxwxgyyyyyhwxwxxyxxyxxyyyhxxxhxhxxxxyyyixyyyxyxxwXxhxxwghgvwhhwwgyyyyyyyyyxxywxwxxwxwwxxxyxxwwgxwxhwxxyyyyyxwwxwwwxxxxyxxxxxxxxwwxxyyyhhhxxyyyyxvgxwxxxxxwvgxvghxwwxxxyxxxxxwwxxyxxwhwwxvxxwxwhwwhwxxhxyyxyyyxxyxxvwwgxwxvvvwxxwwxwwwxxxxhxwxwwwxxwxxxxxxxxxwxxxxyyyivwvWxgwuxhwxwyxxwxwyxyxxxxxyyhxixxhwiwiwxyxywxwwwxxxhxwwxhxxxxiyyxyyywwwwgxxixxyxxxyxhxxyxyyxxxxyyxxYwhxxgxwwwxwxxxxwxxxxxxwxwxwvxixwxxxxxxhhhwwxwwwwxvxxxxxxyyxxxxxxxxxxxxyywwxxwwwxxwxwxwwwxxxxxhhxxxxxyxxwgggxxwxxxhwxwxxvghxwxhwxxXhvwgxxxxxxxxwwvxgwhXhhXwyfwgfwfwwggxhghhwXwxiYwWwxwvxhvxxyxxxxhxxxwxxxxywxwwwgfwhivVwxwvxgvxwXwwxywgwgwwhigvvxgwwwuhhwgixxxhhxxhxixhhhxxxxwhwhhWhhvxXhwwWhxhxxxxyxyyyxhvxgyhwxwgxxhhwgWwggwuwwwxxwwxgwwwhhhxwWxhhxxxxxxxxxiyxyixxyyyyxhyxxxxhguhwwwvVhhxhhhygxvhxwxwWgwwvwhhwghhYwhxxiwwgwwwgxxwxxxxxxxxxYXvxhhxGhxwwwhwvxyiyxwgxvxxxxgxxwiiyxiiXxwxwwwwxxvxwvhxxxiiiXiyxyxhxgwyyhixuyxyxxwwxhgwxxXxyiiiyhwihhYiXwwvxvyyxxxyxyxxwxxwxxghxvxxfxwyhhxyjYiYijYxxgxxwwxxgxiuyiXyxyxwxxwxgwgyvxxwxyvwxggiIiiijhywgvxwxvxwhyvwwxfjYiiijiyyXyyxxvxvyYyiyihxxgwwhxWxyvyxxxyxxxxgwxgwxWxwwyvhyxvwyhhyyuxYYyZiiIhxgyxwYiiiYYxvxxxxhxwxwxwxwwixhxyxihixxxyyxyhixxwwgxwwwwwxhwwwwfxIiyiXiXxxgwYhihiXwhxWyxvxwxgxhxwhwIY8XYwwwxgxvwwwwxwhwhhYhiYixwXigGvyxhxefWhxwgxfvwWHhHhIwxxiiuwWwwwwxxhvxhxyYiyyiwywhxvwxwxIYHXYwxxiyuvHyhhxyXXxhywxWgyyiYitvWxihxxXhhxwwXwwwwWxxvwxwgww8wXGWXtxiyhxXyixxyhyyYyyxgxgxxxhYgxwwxxxwhhxxXyyxYxxihxxyyyyyyyjjjyhxyxxixxyIhhhhhzzZzzwwxwxxhyxwhXyxviizxwhXxyvxxxyyxyyixhxYwxfhxwvVwxwwwxhvxhxgvwwwwxwgxhwwwxwwWwXvhhgxxxxvxvwXxvvWhhghxxwwxxwwwwwwvxyxxwxxhhwxxxhygxvhhwxvvfwwwhvwhifVhihhhwwxxgwxhxxvhxhwwWXwvxxWxxwwwxxxxxgwgywwgvwffgwxuvhxvuFXhxhhXXgxwvgwgxwxwxwxxughugggxvfvxxwvwvvvxxhxXhXhwwwhwvwwwvwxwxxgwwxwvwxwwwggWwvfwhvwwfwvwwhwwwwgwwwxxgxwwgwhhxhXHXwgwxxuhwwvhwwwgggxxvgxwwgwuvvxhvvvvwvxvwwwvfvvfwxxxggghgWuugIXiiXiwxxwwwwhhxxxwwhhwwvxxwvxxxxxvhhwwvhivvhhYiiiYYhxhhxwwxwgwxwwwxwwwwxvwxxhxwwwghwvwwwwvvxxwwwWhhwYYiiIixhhhhxxwxhhwgwgxfvgwwvvxwwvvXXhwxgxwwhwwxhvwwxwxxgwvhxwYhyiYXiIhxhHhihyhxxwgvxwwgwvhwyvghwvwXxvxXxwWwwxwwwghxggXiYXXiwgxhwhwwwxwhgxxxxxhvwxhwxxxxvgwwxWwuYYyiYYYwgxwxxwvvhyughguhxvwgxwwgxxgxwwwwvvwhffwwwhhhhhxxxwvwxwvwfvYhhXih9YYYIwxhvgwhWhwvWiIhxXXvhxwhXtyhvggXwgxwxwxgHhHhIyXuhYwwwXwhxhhxXwhwxgwxXyihYwhyxgxwXwhhYGIYYX9iIuyiigwvYiXxxiYwwXwxwxwgiXxhwwwHyYyyihhwwgwxwgwxwvxxXhvxhhwXwHXwwYXHsYhxhXhhxxvwwwxwxwxwxxuughuughhxxyxxxxvvxhhwxyyxxIYyYIYyvhxwwhxwwgxgvgwwixwgXhhXhwwxxvhhxwhvwwgggXhxXXYhvwyxwwhyhiyxhwwwhhXXhxyxxvwxxhxvwwxwwxhYiyYYYiwxxxhhWvwgxwwhwgwxxhhhhhxixxxyyyyxxxxxxxxxvhvwhxwuWxhxhxwhwhvwxWWvghvhhwxvwfwwvxxxxXwwwywxhwxhxxhhwwvwgwWxwugxxiwwyxxhhhyxhhyyxyyxxxgixxhiwwwxxwvgwhwwxwwWXhxhhuWXhxhhHhwwxwwxhwxwxwhhvxwxgghxxwwwxxxhIyyiiIivgxvwhwvwwvxwfgghhhXXwwxgxhwwwxvwxwXhxhhHXxxuhyvghgxwvxxhxyhxXXhwxxwxxxwxxwwgwXwvxyuhxwwYiiYY9iiXyiXhywwxxwwxvgxxwgggwwgxwxwxxvvxxxvgwvxxxhhhxxxXYyihixxwggvwhhvwxxggwxvvxwwgxxwwxgwwxwwxwwwvwwxwwxgxhXiiihwwyxXWwvvgvggxyvwwgwwgwxwwhhgxxvwwhvgxwxwuwxhffwwgfgwwwuvxxvxgxviIyihXhIYYY9vhfxywhXwvghgvxwvwwWhIhhyXxxxhwxxxxxwywxwxw9YYY9wxwwxwwgeyxuwgXuggyXWgWY9yYiiYfhwxgXwwWxhfxiwhvvuwhHXIX9wvxxhiHhXxXxxwxxxwhxxiIihiIhxxxvXgihHvVxXfixfgvXIIYI*iYhhXhxxvwWxuwwfxwvgwwwxwwwhhwuwwwwvvhxhfwfwxfvvwwwxhxxhiyYhiwwxwwwwwwwxwvwhwwwwwwhhxxvxxxxhxwwxxxgwwwiwgxxXXyyhYxwwxwwxxvhghwxvvxxxwwvvwxgwvwgwwxxvwhwwwggwxxxhxwyvwhgwhhyiiihYiyYYYYxxwvgwhwvwxxwgvggwvvhwxhghhhhhxxxxxxivhgXxYYXixxxxxwwvgWWwwxwxxgwwhwwffhhvvwwwwhxwgxwgwwwggHhxXHYhhxixuuixgghvwywhhwwxxxxvvyhxxxvwywWXxwxwwxxwXwgvwwxvwwffxYhHXIhxhvxxhXvvgxhhXhxxyxxwwxyvwwxwgwgvxxxxxwhwxwwvwyuxiiuWxxxxhhxwxxhhywhhxhhxxyxgxfwhifWwxwxwwxvwwigwwwywgvgfvfxxxxxxgxxwwwxxxvwgwuwigwwhggvxxxyhwxvxXhvXhXxhXHhvhxxvvwhwixhhhwwxxwvhxhwgwwxxwwhhhhhyhXxwwxwwwwwxxywwxwwwwxvihwwxwwwwxwwxwwyyxXhxxhXhvvwwwhhxxxyxhhwgxwgxxwwwwwwwhxvxhhxwwgxwwwxxvwxxxggwxxWguhWWvvhHYIX9yYvhxgwHwhywgxyXxxyXgIvyiYYvWwWwxwwxhwYuxYivWHiHhHwgxxwxwgwxhxxxhwhhhxwWxXyyxYxhuhwvwvWxvxh8YIXHxhxxxhHhxiXfXvyHhgVwhwxwvyYyiyhgYxXiwGxivXhwWvwhwxwwWwGX9WHuhhxhXXXgwwghvhwyuxhgwwxwwwwgwvxxxwxxxxiiyiIIiwhxwwxxhwwxwwwwwyXxhXXwgxwvvwhXxxXXhvwxxwwxxxuvixgghvwxxwhgwgwgwhhhXhwwxxwvhxvwwxwYiiiYYiiYYYiihhxhhhxxwwhhgwxxxwvwwxhwwxxhvwwwwvwvhwhhxiYiYYYvwwhwwgwwwwwWwwvwhxvvWwwvwXxvwhxhhxhhhwgwxwwxwwhYhHihwxwxwgwwvxwvfvxgwggwwwwxvwxwwhxxvxwwhvwyvwxxgxxgxwgwxXIyiXihIYyYIYYhhwgwwwixhiiwwxhwwxxhhxhhhJjjJJjxxhhhxxxvwxwwgwXxhXXhxxhhxxxIiyiIYYwghhwwwvvhwwwvghhwhxwhxwwxwvxgwhxXXhhxwwwwhxxhxxx9iyY9YighuxxHhXxyxxyyxyxxyhvxywXhhXhgxgwxxxvhyhhhwYuxYivWwgwyxwwhyyyxxxywxxxhwxxxxyhitxxYyWwvWxxxvxgwwgwyhyxvwgxwXXxxwgxxwwwwwwwgwxvxhhhihhhhxhxxxxxxxghevXxwwG8YIXIwwwxhvxwxxxwxwyXhhyYhhvihgwXwihhwwXiYvxyWwwX9ZZY:wXwxiYwWwwgxwxhwxgwxgwiYyiiiYxxwxxwwwxwxggx8YYYIwhvyhhvXyXxxyXXhxxgxWvhwxyvXhvggiIihiIhhuxywxfvvghxwwxwxxxxwwwxx)JYIIXwwwwvwgwwgyxxhxxhxihyhixxxwgxxwwwwxwvxxxxhxwgxfvwWhwwwwwxgxxhhxyyyxyxxiwxxxxxwwggWguhhxhxWvXuhwwvgwwvywwxxhhxxhxvxwhxvhgvgvwxxwxxyyxxxxxxwwxvxXghxxgwWixgxgvfVhhhhhwhvxhxhvwwwwgwwxxxwxxxxxxxxxxxXhwgxfwwWxhxxxvhwhxvhgwgvwwwWgvhWhwvXxxxxwhhhhhwwwxxwwxwwgwhxwVxgggWwwwwxwxwhvxwwxwxhhxxxyyhwxwxghwxwwwxwhWvXgXfwwwywgwgfvfhhgxxWwufGYixhiHvvXvxxwvwWgwwxxyxxxxhwihhhhhhhxxhyhhhYyxyWuwWxxxyxxxwwwxxwwxgwwwwxxxwhhxwxywwwhxwyyyyHxxhhWvXyxxyxiwwhxyWxwvgXxyxxxwxxvhiXXxwxgxhxhwxxhxXxwgxhWfvwHihfghggwXwwxxyxxxwxwyvvxxwvwxgWwwgwhwhggvvxwhwgwiYvxyWwwXxhghhxyxxxxxxwhxxxwxxxxhhuxxxhvwghixXXwxxvwwywfwgywwgwwffghxxhhixwxixuwhxwvxwgvxxxxxhyxxXhvxxgwXhwhxgvxxxhxxxhxxxxxxxxxxhhxhxyyxxxxxyyxyyxxxwhwhwhvhhxxxxywwxwwwxxxxyyxxxxxyxxxxxwwwwwwhxihhIYHYXxvwxvwwhghvuWihhiXYwhxhxxxvefWwwxwxwYY9YYhwughvvwWfhwyxvxhfwgxhwihiiiIxwxwwwuxwwwWfVXYHYIhhyxwxffvwgXhihiYwxwwWxwwufwViyyYYiYxvwxwxwwvxfxxheWYJIJYXYHYHgyvyiiYtWXwvxwvvwWxhhiyXxgwhwwxwwwgxwwxwwwhwHhHiHwxxhwvixyxwuvHgxwihYGyYyyiiWywyxYuWhvhxwXXX8YIxxxxyhxhyXvxxxwWwwxgwvhixxxXxgxfxghhHuVhxvygvXwWXGX8tXY8YIhxhxgvWxxwxxwwwihxxyXvhvyxwhXvwfxxxxwxwxwyuxiiuWYZ9ZYxxwxxwwwwxhwwxxvXhyhwxvvwvfihiiiIiyixwuuWxxwwgxvIY8YXxxwwwxhvyhxxiXwxyXhvWwxwxgxviyyiiiXgxxhhvWhxvXywWxxxwxxwxYI)IYIY8XXxgxwxwxhvyhhxyXYxhigwGgxyhvvXYyxyWuwWHiHhHvwwwxXvvWxxxxxwhgwiYyyyiwwwxwhwwwxgwvHYHYXwxvxyiuHyhihxXHxhhfugVwxhhvXxixxhXYyyiigtvWxwwvWxxwxxwgww8XwGXWtiZzjZZ)wxwxgxxvhhxhiiiwgxwwhwiixxhhxhjKkkj*hxhhwwhxxwxhwwhwwxgwjzZzjhxhhxxwwgxxvZZzZji)whxxwwxhwiiihhhxxxwxgwxvZzizZxxxwgxwvxhhhxxiiZZzZZZ\u001aiwfghwvVxxyxxhhhhhwvxwwwwhxxwvwvwifwggwwfxxxyxvXYwuWgxwwhxwxhhxxxxxxygxyxxxyxxxXXhixhvxhhxvwgwwxwwvggvxwxyxxxxwvxgvwWxwwxxwxvxxxxxixhwgwgwhghvxxuhhWhxxxxyywxxwgvwwgwyyyyxxyxxxxwhwvwvhwwxxwwxwwvxxxxyhxyywwxxxwwwhvhwxhhwxxxxxyxyywxwxxxxxxwxxxxxwwvvwwwwgwvixyxxxxxxxxxwywxxxxxxxiyxhxxwvwxwxxxxyyyyxhhhxhxxxywwwwxxxwwxwvhwxxhxyyxywwyxgwhxxxxyxxhxxwxwxwxxxxhxxhxwxvxhvvxxxwwwwxwwxxxyxxyyxyyyfwwfwwwwxxyxxywwgwhwxggxghxxxxxxxxxwxwxxwwxhxhhwwwxgxwxxxxxhhhxxywwwhgxhxxhxxxxxyxxyxxxxxvxWwxxuywxxxwxwxxwxxxwwwwwwxxxxxyxxxxxyyyzxhxxxxxxxwwihxxxxxxxhxxxxxyyyywwwwxgwwxxxvvxgxwxvxhxvwxxwhhxwxwxwwxxxxxxxxxxiyhxxhxxxxwywxwwyyxxwvwwwwwwxwwxhhwwxggwgvfxgwwyyxxyxxxxxxxyyixhxwxyxxxxxxxhxwxvwxggxwuwWgwwwvghhxxhyxwwwwhxwxyvhygyixxixxxhxxxxhgvWhvwwWxxxxxvhwhxfhgwwvwxgwXvhgWwwxxxxXxhxxhxgwwwwvxgvhxxHXgvXxxyxxixhhxxxxxyyxyhwxyhyyxyxXwvgwXvxxwwwwwwgvxhXhwwwXwxxwwwxwvwhwwxvvyxxwwxwyxxiyxxxxxxwwwwxxxxwxwXvwhgwwxxxwxhwhwxxxvvxggvxfhwwwxxxxhxxxxwxxwyyxwxwhwgwwxwgwgxxgxxgvgxxxwxxxxxxxwwxwwxwxxwwxxxxxxxxwhwxhxxxxxwwwxwxwwwxwxxxxhhwwwhxxxwwxxgwgxxwwwxvywxxhxhxhwxxwgxwxgwwwwxwxxhxxhxxwhvxxyXwggvvgxxvwwwxyyhxhxyyyyyyyyyyyxxxxhxxxxxxxhxxxxyxyxxyyxhhhxxxwwywggxyyxyyzyyyyyxxxxxxyxxxxvwxxxxgwhxhxiyxxhyxxxxxxwvxxhxxxxxhxxxxwvwwxxwxxxxyxxyxxxxywwwwxwwhhyxxwywxxvxyxhxyxxxwxxxwwxxwxxxxxxxxxxxwxvgxhhhXhxwhwwxgvyyiiyiyxxxxhxxxhhhhxxiiiiiiivvxwhxghgxwxxxwwxwwwgwvxfwxxyxxxxhhvhhhwwwxxwxwxyxxxxxxxxxhixwwwxhvXwwhWwxyhxhhxvvxvWwvXhxwigvghgggXvxwhxfhgvwvwxxxxxwxywwwwxhhhhhxhxxhhghxhwughvvwWxxxxxyxxwxwwxwwxgwwwxvwhwhxxghwxxwhxvvwwwxwwwXvffhwgxWwwwxxxxwwxxwhWwhvXXgwxwxxwxxgxWggwuvyfwgfwgwwgghxhxhwvWwXgfwxHxwwvhhgxxxxxxxyxyxwwxxxwwwxwwxxxwwxwwwwwwwxwgwxwxxxxxwwxxwhxxxxxxyyxyyxghwwhfwwgwgxxxhyxxxxvwwwwwxwwvxxxxxvxwvwxwWhxwhgwwhiwwgxxxwwxxyyxxxywxxwwxyyxxwxhwwxxvxxyyyywxxwxxxwxxwxwxxxyxxyyyyxyxyixxyyhxxxxxyyyyxxxvxwxgwxwwwvwgxwgwxxyxyxxhxxxxywxxxxxggxxxxwwwwwwwxxxxxyyxyxxxyxxxvxwxwwxxxxgxxvgwwguhxxvxwxxxxxyywwxgwxwwxxxxwwxyyyyiyyhyxyhxhxxxxxxiyyyiiyXyxiixxxxhxhxhxxxxxxwxxxxXwhxxxxxxgwwyxxwxxwxyyxyhiyiixxxxxxhwxxxxxxxhxyyiyXyxyygvwwwghhwwiihxxxxxxxxxxxXhhXhxxxhxhhxwwxwvwhwxyyyyyyyyyxxxxiyyyiyyxxyxxvwhxhhwwxxxxwxwwwxwwxvhxXXxxuggughwwiyyhhhxxxxxxwhxwxhxwihuyXIhvXxxxxhxuxywxWvxgvwxxwwwhWvxwxhwwwwwxgyXuhYwwwXhhhxixxxxyyyxxxxxhwxxxxxyxxxhhtxhXwXXXxhigwyhxwhxwhgwwhhhhhgwhvxxhwxgwxwwxwwwwxhhxxxxxxhgegvXwwwGxghgxyzyzyyxhyxxywwxwxxxyiyxxxwxhxxxhwyyyyyyyyyyywXwxvwxxxxxxyxyixxyxxxihxyyhhzzzxhwxxxxhwxxxxxxyyxxxxxyxywxwxxxxyxxxwxwwwwxxwxhyyyywwwwwyyyxxxwwwwwwwwgwxxxxxxhxyyyxxygywwhxyyxxyxyiyyxxyxxxyyyxyxxxxxhzyyyyyyxxxixxhxhxxxgwwwxxhXxwxxxgwhxxxxyyxywwxwxxxwxxwwwxyxxxxxxxyxxyxwhxxwxxxyyyyyyxxxxyyyyxxxxxxxxhxhhxxwwxxwxxhwxwyyyyxyxyyxyxxxxxxxxxhxxxwgxxwxwgxxxxyyyyyywgxwxwvxxyxxxyyxyhxhxxyyyyxxyxhxxxxWwwwxxhhhwwhgvxxxxyyxxxxhxxxxwxwwwxyyxxhxhhyyxxxxyyxxxxwgwxhhvhhxxxyxxxxxxxxxhxyyxxxxxwwwxxxxyxhhixhgYvhxiiwXwxxxwxvgwwxgwwvxwhwwwywxwwyxxwhXxhhxxxxvixhuhxfwvgxhhxxwwwxxwwxxwxwwxgwvggwxvffwvwhxxxhwvWwgwgwvxxgixxxwxWvhgxwwvwxxxxhxxxxwwxwxxwgguwhxxyywWwXihiiwtXwwwwvwxhvihhhhxxvwxhvxxwyxwwxxxxxxgIvyiiiwuYxxxXXxXXwwgwwwxvxwgwhxxhgvwwwwughvwhhgggwYxXvhxgweXhxhyxwwvywwhwxxxxxwxwxwhwhxxXwxxwxvxhfxfwwwghhxXhxXxhxixuHggxxvwXgwvXwwhwhXwhwwxhxhhxvhgwwwxxwxwxwxxwwxxwwwwwwvfhwyxvxhfwgyxxxxxxxhhhxvxxwwhwhxwhhhihxxWXgyxuxhgwXxhxixhxwwxxvgxwxxwhvwfvgxyxxhxwxvwwgwvgggxvfvwvwwwXxvWhhvwwwwxwxxghxhfhiWhvWwhwhvWxgxvXxxyxhxyyxyyxyhgxxhhhhhwgvwgvwwxuxxhhxwhxhhxXxxwwxwwwwwwvxxxxixxyhyxyyyxyxxhxxwhvxxhxwWxwwwxhgxhxwxgwhwhxvWWxvwxhxxwwwvXwxxhhwvggghhxxxxxxxhXvxxhyxHXxxxXxyhxhxhxzxxxxxxhxwwhxxwxhwxxxxxyxyyxhxhxwwxxwwwwhxhxhxzxxxxxxxxhyyyxwwwwwwxxwxxxxxxxxhhwgxhgvxwwxwwwwxxxxxxxxwgwhwxxxxxyywwxxxxxygxwxxhwvgxwyxxwwxxxyixhyhhhyyyyyyyyxxxvwxwxwwvvuihwwhxxxxxxxxihxhixxxxvfxgwwvgwxyyxwwxxxxxxxxxxxxxvviwXhwXhxyyyyyyyixyxyhxxxxxxwwxxyvxhxghvyxhxhxxxxxxxxxxxxwwwxwxxxyxyxyyxxxxyxhxgxyxxxxxxxxxwwwxwxhxxhhxhywxwXhxyyxwwxwxxxxxxxxxxxyyxyyhhyhhXihXxyyxhxhxxxhxxxxyxxxhxvwhxwxxxxxxxxxxxxxhxxxhxxihxxxxxxxxhxhxxxxxxwwwwwxwwxxxxxxwghxhxvhHxxhiYxxxxwXxxxxYyyyiyyywwhgwgwyyyYiyyixxxxhwixxyhyyyjzjiyyYwhhxhwxXwxyxxYhxxhgjzzzZxyxhiwhxyXviiiyxhyxyhwhwwhyyXxyyxXvgvxwihxwxxyxxxxxhxhxxxXhhXhxyyxxxxxxxxxiyyiiiyxxxxxxxwwxxwwwvhwuxhxvxxxhxhxxxiiiYyYixxxxhxxXhuwwwwxgxhxxhyyxxyyxyyxyxxxvwxhyyyyxxhxhxxxxxyyyxxxixwwwwxffwwhwwyyyxxxyyyyyyixyyyyyxyxxxxxvwxwxxwgwxXhhYxwxxxxxxhyhhyhhxxxxixxyhhXhhXyxxxywwxwiYYiYYyxxugvWwggXwyyyxhixhixyiyxyyyiiiiiYyxyyxxxxxyyxxyyhHXhHhxhyxxxxwwwwxxxxxxxyxxyxxxixxyhxhyxixxxxxyxxxxxxxhxxvxywxxhyyhxwwxxwxwwxxhxxxxxxxxxxhxxhxxwwwwwxwxxxxiwwxhwxHxhhiYgxwxwxwhwxxxxXiyyyYyxyxyi9yiYYYvhwxxgxwvhxxxhwZzyzZvxxxxXgxxwxwgyHxXhhXyyyiyyyYxxyxxyxjjjjJxxxwwiwhxgxwhwwhgwyIiihiIxwxhxxyyhxyxxxwxwwxwxwwwyyyxhwhyxxxxxxhxxyxxxxwywxxxxxxwwxwwwxxxhxxxyxwwvyywvvvgvxvvxhhvxxxwwwxwxxxxhxhxxwxxxwwwxwxxxwwwffvwvwhwwxxxwwxxwxxxxyyxxxxxxxyxxxhxxhvWuhugWgwyyyhxxxhxxxxxwwwwwwxywwwwwwxwhxxhxhhhxhwwwwwwwwgvwgfhgggxwxxxwwxhxxyxxhxxyxxyxxxhwxxxxxyyywwwwxwxxxxwxxwwwxxxxxxxxxhxwxxxxxyyyxwgxwhhvXvhxWwyxxxxyyyyyixywyxhvwxhwxxxxxyyyyxywwwwxxuxhwxxgvxxhyixxyhhyhhxxxxxyxyxxxxxxxwvgwwgghggghXwxyxhXYxxxihviyyjzzzZhxwxhhyyxiwxxxhwiYyyyiyyyyyiyxyijjjvXxxxxxxxYHxxhhXyxyYyyyiwwgwxihxyyiiiihxxhiXwwwiigxxxyxihXxiyyXvhvwhvvxwhvyxyyyyyiyyyxXXhxXxzzzzjjxxxihxxhyyyyiyxxxxwxiiiiYiywxxyxhXxxhhvxvxxxyxxxxyxxxxwywxwxwhwxgwwxxwwxxwxxxwxxxwxxxxxxxxyyyyxxxxWxxywyxxxwxyxxyixyxyhxwygwXvwvhXhwxxwxwxxhxxxhxxxxxyyxyyxxxxXxhXXyyyxxxiyyiiiyxyxyxwWvwxhYhhxxxhxxhxhxYiiiYyiwwwxwxwxxhxxHhXHhwWxgxwyyyyyyxxxxxxyyyxwhwxgwxxxyyyyyyyzyyvhvwvxyxwxxxwyxxyiyxyixxxxyxxyxxzzzwhxxxwxXxihxwXxxiyZzzzjwxxwxxxxwxiwxgwhxxxwiYyiiiYxhxxxwyyyyyy[{{{[yyxhxXxyxxvYwwxxwxZzzzjwxwxgiiwggxwxxxJjjjjggwwxxxxyyxyiIiyhiIwxhwwwxxyxiyxxxxxxhxyyyxxyxxxxhxxxwhxxywxwwyyyyyxhxxyyzyyyxxwvwwwwvxwwxwwwxxxwwwxxxyyyyxhxxxxhxhxxxxxyxywxxxxyxxwxyxwxzzzyyxwwwxxwwxxxxyxxxwwxhwxwgwXixhixhyxxyxhxyxyyyxxxyxwhgwxxxxxyyyyxxyyxyyyyyygxvxhhwyyyyxyxxxxxxxhxxwxxwwyixyixwxhwhxxwxwwwxyyxxxyxxxxxxxxxxxxgwxgwyxxxyyyyyyyyyyyygvwxhxwvgxxywwxxwyxxxxxwxwxwxhxhxyxyixxwxxwxyyyyxxgvwxxwwhxhxhwwwwwxxwhxxxxxzxxyyxxxxxxxxwhwwxgwxxyxyyxxxxxhxxxyxihXxhxXyxxxxxxhxhwwxxwwwwyxwxxhhxxxxxhhxxxxxhwxhhhhwhixyxYxxyxgyzzzzzywwxxwwxxiiiiiIygxyxwxwwxy{{{{{whgvxwxiyxhYxwwxwzzzzzxxxxvghwwjjjjjxxxxwxwxwxwxixxiiiYxghyxYxwihxxuxvwhgxyyiyyyxxyyhhXiyxYyhxgxgxxhixhijzjwixxyywhhxxuhhXhiHyyyzzzzzyixyyjxxXwgwhxwxwxxxwxhhxhYiihhXHxggxvwyyiyywwhwgxwwxxhhwihiiiIyyyxwgwhwwzzZzzwxhhxwxXihhiHyyyyyiyygxwgXxxjjjjjvxggxwwxXgxgYyyYYY9ihhXhHxyhzzzzzihxihxxwwxxxwyxxiwxXyihYxvghwxyyyyjzjyhxxgyhxYxgxgxxyyiyyhwwgXxxwxhhyujyyxwxhixuyixxyhhxhxYiiixyxxyy{{kxyyyjzZzjyylȌȌlyyywxxiii{{kxxxyxywx{{{{{[xyxxxxxyxyZzizZxwgxwxvyyyyxxxyxyyyxxxxxhxxxxxwwwxxyxxyxxxxxxwgwxxxxyyyyxxxxxyyxxwxwwwxvxwwxxxxhxhhxxxxxxxxyxxxxxxxwwwgxwwxxhxvwwxhwwxwxwxwwwxxxxxxxxwhwwwhvwxwxwwwxxxxxxwwwxwxhxhxyyyxxxxxxhxwwwgwvxhxxyyyxixxxiyyyyyyxxxyyiiyiywwwwxxwxxxxxxxxhhhxyxxwxhhxxxxvywxwxxxixhhywwwxxxwxxxyhyixxxxwxvvxgwhhxyxyxiyyiiyywxxyxxxxxwxggxxxxxxxxhhhhxxxwhhwxyyxyxxxxxxxhxyyxixxxyxuwhwxxwvwwwxwwvxxxxxxxwwwwvwwvxxyxhxxxxwxxxxxhwXwwxxuxwXxwwxxxxxxhxyyxiyyxwhwwwxvxxyxxhxhyxyyyyyywwxxxxwhfhwxxxvxxxyyxxyyxyxhyxyxizyyyyyyxyxxxwgwxxxvxxxxvwwgwxxghhxHXhhyxyxXhiXxwxwwwwwwvhwhhvxwxwxhxhwwgwwxggvWggvuhvxgvwxxwwxwxwwwxxxxXhhhxhhhXwwhwvxvvyywxvgxyixxxwxwwxhhxhwxwvwwxhxXhXXvxxxggfvxvxwvvhgwxxyyyyxhhxxxyuwixgghxxyixyxxxxwwxxxxiihhxxxxxxxyxxvyvighhxxxxxxxxxywxyxxwyyyiiiyxvxxwWXvyyxxxyxwxxhxxyyzzzzixxyxzzyyxxwxxxyyyxxhiyhyxxixxyiiiyxxwxyyyyjzzzzxxxxxxyyxxywxyyyyyywxyxwwwxiyyiyxxxxxxhxxxxxxxxxxxyxyxwxxwwxxxxxxxxwxwiiyyyyxxyyyiyxxxxxxyiiyyxxxhxixxuvwvwwvxwgxxwhvwxhvwxhxxyxxxxyxxxwwwwxxxvxwxxhxxyxgwfggwwfgwxyyxyyixxxwwxxwxwwxfhxxwxgxwxwxxxxxxxxxxxxxyxxxxxwxxxxxxwxxxwwwvvwwgwwwvwxxwhvwxvxwwwvxvxxhxiYiyihvxwwwxgwwwhxxhxwwxwxwwwwwwwxhwwhvhwxhhwhhwwxggxwxgggwihYhiXxhhgwwvwxwwwwxvwxhvxwuxwvhggvYYiyYYgwwxfwvgvvxvxwxwwiiiiihwwwwwwwwwwxgwvvvxhhhhxwwwgxwxhhxxxxxxxxxxxxxxyiyyixxxxyyyyyxxxxxxxxxxxxyyyyyyxxxxyxxyyyxyyxxxxxxxxxxxxxxwxxxxiyiiiwxwwwwwyyyyyxxyxxxhxxyxyxxiwwyhvwwxwxwxhxxxxyyxxxxxyxwyyhixuxxxyxxxxxxxxxxxxxxxxyyxyyihxixyyxyyyxxxxxxyyxxyxxwxwxxxxxxxxyhyyxyyyyywwwxxxxxxxxxxxxixxyyxxxiiyyyxxxjyziixwxwwxxxhyxxxxxxxxxxxxxxxxxxxxyyxyyxyiiiixyyyyxuxvxhxiwxxxxwwwwxwxxwwxxgvhwwhxxhhxwxxxxxwxwxwwwwwxfxwxxwxhxhxhxxxhwyxWxhvxxwyxxxxvyvxywhxxxfxwhxwwxxwxwxwwxxxxwgxvxxxxyxxwxxxwxxwxxwwvxgxgwxwvgxvxvXXwhvvxxgwvgwhgxxxxxxxwwghgxihxXhXhwhvhgxwwwwxhiiyIYIYxwgwgggwvviwXhwXwwxxwwwvyvighhvxvxvxxwxwwxgwxhihhXhYhxxxvxwhwhXwuYyyYYYhxxxxXYhhgwxgvhwvhggvvxgwwwgxhxgwxvxvxwvhhxxhxxiiiyyxxxxxxxxxxxxxxxxxxxxwwwwxxwwxxxxxxxyyyyyxhxxhxyyyyyyyxxxxxxxxxyyxxxxxxwxxxxyxxyyyyyyyiiyiixwwxxxwwxhhxhhxxxhxyyyyyxxwwwxxyxyyyxxxyxxxxyxyxjjjjjyyyyyyxxxhhxhxyyyyyxxxxxwxxxwxwxxxxhhixyxxxyyxyyiyiiyyyzzzzzxxxyxhvhwhwxxxxhxwwwwwwxxxxxxxxxxxiihyhxxxxxxxxxhxhxxxxvwhwhxhxxxxxxxxxxxxxxxxhxxhhhxxxxxyxxxxxXXhihxwgwwhhxwwxxxxwxxxhhhyxihhxxxxyxxxwgxhhvxxxwxwxxxhxxhwwwhghwiyyhhhxxxhxxxxxxxxxyxyxyvwwxxwxwghwwXWwxxxxxxxxhxvwwwvxhggyxyyyxxxwxwwwyyyyyyhhxxxwHwgIhHtwwxwWxhhhyIXivuXyixhyiXwwxgxWwwuxXwgxwvgxxwxxxwgxYX8YIhxxHXgvXwYxXvhxgweXffwwhwwhhXhiHwwwxxgxgxghyXiivuHXXIX9xhvWxhwgvwXiYxhxyXxhwxghhxXhwwwWxixhxxWxxxgfwwwxhhwhwXhhwtXYXIYIhxwwgxyxyxhXYIiiyxxxyhxhgvwxxviyhhwvvwhgwvwxwhyxyYhYyXvxvxxwxhxxyYYYihwxwvhwhwwxywgxgyyyxwhhwwxwwixwyXygxhxixiXyhwwvxxxWvxhxxwyyxyhggvxiHhhhjivxwxgyxWwywwyxwhwwhxwhyvgwwyxwxvywxxiyhyhjYiiYjYxxwwygxwwxwyxwhxwxwhyxyhiXxxhyihwvvwhyxyyjYiiijixxwxwxwwxwxWxwwvgxwhxfgvwwwhxwwfwhxuxwwxwhyxxxxxuivxxxxvhYyhXxhvhxxxiguwhxwwiYYIiivxxxywWxxywwwxxwxwwggyhwvxvwhwgwwwxviIyiYiYxxXyxxhiYiYyXxxhhyhyxgwxxfxwwxwwfwwwfyYxxxyXigvyhyxiiyxyxxyxXhvxxgxyyyyhhxyXgwyhxhxwxgxxyyyiyyyyyywhvyhxwyixyyXhvxwxxvjjjxyyyhwxwxhzzZzzxhxxyyxxihhyyxyHwhwxxxhwWxxyxwwvvxxWgwwwhxxxwyhxyhihhhhhhxxxxwyhhhvWxXXhigwvggwxvffwvwwxxxxxwhgvxwxxxxwwhggxghyixYvGvxgwhWxhwxxixxxxxxxwhihxxwxwwxxxywxxxwxwwwxwwwhxgWgvvxwxvxhwvVuggwwwhviiiywxxwxyxxwxxxxwyyxxxfxhvwggwwxxyxwxwhwxwvxxxxxwxwxxxxhhxxxvxvxvxxwxwxxxxxyyyhxxxxxyyyyywxwwwwvxxwwfggyyxxixxxhyxiywXwwwxxxyyxxxyxyxxxhhhxxyxhxwxxvwwwxyyyyyyxwwywxxxxhwvxyiggwxxyhyyyyyhxwwwxxxxhxxxxxxxxhxxwgggxvwwxwxxwxwvhwxxhwxwwgxvxxxxxxxxxyyxyxxxxxxfvwwwgXxxXhxxxxxxxxhhxhxxxxhxxyyyxxwwxxwwxwwxwxHhvhhwwWxxxvXwwgXxXwxxhixxyxwxgxwgwxxgwhxxxhxhXxhywxWwhxwhgwwwhwhxvWWxviyxyihwwgXxxxxxhhhhhWwwxwxhwuwgfxwxxwhwwfvghhiyxxxxwhwgxxgWwvwgxwiyiyxixyxxhxhhxhhhXxxvxwvgVhhhXXxxxxxxxxxxiiiyyiyxxwhywghgxhxxhxxxhxxxhxxxxxxhhxhhxyxxxyyyyyyyxyxyxxxxhxhxwwxxxxxxxvvyxxWhuvxwwxxwgxwxwwgxwYiyYYYYxxxxvvhvvwwxhhvxYhxXhhhhhwwxwgxgwxhxhhiYyYiYYvxxxwxhhwxxxhhhXhjjjJjJJxhhhXxwhwwwhvxxxxxxhhxhwxhvvxhhvxxxxxyxhihxhxhhiiyYiYYxxgwwxhxxxwxxxxxxxxxyxxxjjjZZiiiyyiyZjjjjhhxxhxxhhxxxxxxxxxxhxxxxhxhxxxyxxxxxxxxxxxxxxxxxxxxxiyiiiyyyiyiiwxxwwxiyyiixxwxwxwwyxxwxwxwwwxxxxjjjjjxxxxxyyiyiyiiyxxxyywxxxxxxxiiiyiyywxxxyxxxjjjjjxxxxx[{[[[iyyyyyyyxxxxyxyxyyxiiyyyyyyxxyxyyyyxxxxxxxxxxxjjjjjxxxxxyxyxxvxxwxwwwhhhyxhxwvxvgWWwxxwxxxxwxxhxxxxxxuuywhgxwwwwxxwxxwxhhXXYYYyyYywxwwxwxwwxiiiiiiixxXXXvxhxwgwxxxxxxxxyxyyxxxxxxxhxxhxxiihiyiyhihHHvvwxxwxfwfxhxhhwwwxwwxwwwxyxyxxxxxxxxvxwwvwgxhxxxxvxgxxxhxxwwhwvxvvhhhXhyxyyyxxxxxwxwxwxxxxxxxxwxxwvvwvwwxxggxwwxhyyyxyxxxyyywgxxwxwgyyxxxxxyxxxyxyyxxxxxxxxwwwxxgxgxxxyyyyyyyyiyyyyxxxhxhhxxxwgxxwxxhXhxhvxhhwwhwhxggxxxxxyyyyhyyxxiyyyyyywwwwwwxwyyxxxxyxxwxXhhXhxxxxggxhgwyxxxwwxwhghxxxxxxxxxxxhhhyywxwyxxxixwhXvwgXwyhxhwwhxgxwhxvixxxhywwxxvwxhxxxxxxxiyhxhxxYxxiiiyyyiyyxxwxxwxxxxxxwxxxxXwxxhxhxhyhiiiiiiiwxywgxgwxwxxxxxyxyxgxxhwxxxxxxxxxvhwxxxYwwwwxxwwhxhhxxxxxyyyyyywhwxwxgwyyyyyyxxxxxxyxwwxxwxyyyyxxxwxxwgwwhhhwvgxyyyyyyyxxxxxxxwwxvxxxxwxxgwwxxxxxxxxxxxyixyyyxyijyiyxxhxxwwwwwwZzzZzhhxxxxxxxxxxwxwxxwwiyiyxxxxyyyxiyyiixxxxxyixxixxwwxxxwwwxXXiiYiYIihxggwyxxywwxwxwxwxxhhhxyxxxwwxxxwwggwhhhXhxxvwwwwxvvhiYyYYiYXhxXhhXxxxwwwgwwxxhggvgwvxxXXxxwhwxwhwwxwvghiwxxwwwwwwhhxHhXXwxwxwgwgxxxxggghhhXhxxxxxxiyyyyyyyyyyxxxxxxxxuuhuhughgyyyyyixyyxixxhihhhixxxxyyyyXhhXhiyyyiyixxxixhixhxxhyixxwxxxxiYXiXxxxxZjzjzhiyyyyxyyyxyhhxxxyxxiyyyyxxxxxxxxiiyiyxyxxxxhihxixyxxyyxxiyyyiyyywxxxxjzjyjyyyxwvwxwxwxvvhwwgxxgwxxxxxxxxyyxyxwxxyxxffwgwfgwwwxxyiyiwxxxxwwwxxhwgwxxxxwxvhwwwwWvhxwwwwxxwxwwxxxxxxxxxxxhyixxxxxwxwwyxxxyhgxwxfgxxxwwxxxwwwxxhxhxxxyxxyyiiixxxxhxiyyxwwwxxxxxxxxxxxwxwxxxxxxxxxiyyyyyyyyyiyxxwxxxiiyYyxxxxwwxxwyywwvhxhxviwwwwxwwxwvvxyYYiiXwwwuhggvwwwxxhgwxhhhgvxxgwxwgXvwxwhhhwxxwxwwwxxgwvyIxhhiXxuivwxgwxwxwwwgwwxwvhwhwfhxxwxgxiYyYYiYxxXXXwwxgwwXgwiZyiiYIxhiXhvxgwhwxwvgwxgwgwxwwwxhgxwwxxhxxxxxxxxyxhxhxhxxxxxxwxxxxyijiyhxxxhhxxxiyyiyxhhxhhxxwwwxxwxwxxxxxxxxxxxxxxxxxxyyyiyxxxxxxxxyjjjZjxxwxxxwwxxyxxhiyyyiyixxyxxxhhyixxxxxxxxxxyxxxyyyxxhxhxhxxYywihwxyhxxwxwxwxwwwwwwwxhxxxxxxvhvhyxvxxxyyyxxxxxxxxxyyyyxxxxxxxxxxxxxxixxyixwwwwxxxxxwxwxwwhhxhxhxyyxyywwwwwwxxxxhywxwhwihxxhixxxxxhyyxxxwhgwihxhxixxxvwwvxvxxxxxxxyXxXxxxyxyyxyyxxxhwxyixhwxxxxhxxxxxxxxhxwwvxwxxgvuxvxwxhhYXhihxxxyvvxhwwvyxxwwgywwxvwhffwwwvxgwwyIyhiiiihhiixhxhyhiYyYYiYwwwvwxxxgwwwwxvxxgxhgwwxvxwwxwxwwwxygxwxyXyYyiiYiwwwxxxguYYIZ9wxwxhhhvuXhhwxXxxvwgyixhiyhxwwxxwwxxvwxwwwvxwxxxgwwIXIY8xwwxgxgwxxvxXxwvvXgixYXivvHxXwxhixXghwhgigfXiyvhHiguXYY9Z9gwwhhhwvgyiyXYyYxwwxvxwgwwxwxwxwwwxYgixXyxwxgghvvgxxwhhXwvWxxgwWxwfwXXHHI)wxwwwxxgvyXYYiYvhyhgxxxwxywxyxxwwhhwwuyxxwxxwwxxgvhvwxivvxuxhyhwiIyYIiYxwwwxwywxiYYYiiyyhyhwxwgxgwxvywhyXxxgxvwhwwfxhxxgvwwwhYyHXXhhyXxXvxgvgggywyywxywywhxkJjZZkjvwhhwxhhhhgxhwxxhyhgwwxvhvwxwZ9YYYZihyhyxwhxwwxwiviivxvxgwkJjjJkjxyXxXxxvwyxjIiiYjYwxywgxghhXyhxxhwxhgyYyiyiYvxyhxgvwwxwygjzjzjxxxyxyyyIhhhXxxyxhwhyXxwwvwyxygYyyyiwxxwwgvwxhxhwyYxYyyXxijjyxxxiyyyYxxgxhwxvwvwvwihYxhyiHwwwvwwvghxxxxxwxwXwuxwxxwhyxyxxxxywxwxxywxwwxxxxwwvxyxwwwwxXxYyyyyyyxxixxxyxvxwhwhXwuwxwvxxxxxxxyhxxxhxxxixxxxiihhhHhvwwvvgwxgxhwtGxxwhwghxhhXhhwwxxhhxxxxxywXwhxiwHxxxyyxhwghXXxxwwwhxgwgwXwyxhivgxvhhgxvvvwwyXXXhghyXiivuHwwxxxxwgwvywgwxxxxxxhxxxxhhxxxhxwyxwwxxwwxWwgghvxhhHhwhyXxYu8vxwxwwwvvwghwvfwvwwwxwwwwwxxxxxxyyxhxwwxwwxhxxhhxxxhvxxwvwwwwwwxxxxwwvgxwwwvixyixyxvwgxwwguxxvhxxxhwxxxxxhxxxxwwxxwxwxwwxwxwwwxyiyxxyixxxxgwXwvggxvxxxhhxxwwwxwwixxyixxxxxXyxwxxxxwwxxxwxwwwwxxxxhwhxxxxxxYyyyYyyIhhhiiyiiiyiwxwxxvxwvxxxxXyxxhxxhxvYxwxhvxxxxiihyiiyxxwxgxgXggwxwwVewwWgvhWhwfwwwwwiwgfvfgvwxhxwxxwwwwxwxxxxhhhxxhHXvhivgVhxhxghhgvhhxvvgHhhHiwgwwxhixvXgwXWhfxwxxwhwwfvgXhwWxwwgVxxyxxxgxghxxxxxxxxwxxxxwwxwgxxhXhxwxxxwXXiXXwWxwxxXxwuuWXhhwxgvgVvyhyhvihxixxxxyxxyxxxxxwxwxxxxhhwxxXixvxyxyyxxyyxxxxxxxxywxxwigxwwwwxwwxyyxwxwwwwwxxxxxxxxxhxxxxgxhxxfiyyxxxxxxxhhxwwxwwxxxiiiiyxxxxyyYZzxxxxxxxiyiyhixxhxxxxxxxxxxxxhxyiiihyyiiyxxxxxxxxxxxxwxwywwwwyyywwxxhhwwvwvuwwwwwxvxwwggwiYyiiIYxuhwwwggvvyWvXgxvhXxhhhwwwhwxvwgvfxgwwwwxxxwwwgwfxgwihhiYXxwvxxvxvwhxxxwwwvxxhwhwxghwwiYxiyYihhwxXxwghggwYiyYiYixhhhhwwwvwhvghxwwwwxxwwwWxwxhhxxxxxhxhhxjjZjjxxxxxxyyyxyxxxhyxwxwxiiiiyyyxwxwiiiyyxxwwwwwxxxxxxjzjjzyYYyyyyxxxxxwxxxxhhxxxxxxxxxxxxxxxyyjyiihhyhxyxxxyxxxhxhxxhhxwwyvxwXxxiiyixxwxxxhhxhyxwxxvxxwwiyiixxhyyXyywxxwYyyyYYyihxhihxxwwyuxwXxxhxxhhhhxxxiiHhiYyyYyYywxxwwhhhhxxwxxuxxhhxhxhhyxhhxhwwwwyyyyywwwwwwywwwyyyyyxxhhxhxxhhxhxxyyxxxwwwwxxxxxxyxxyyyYYyYyxxxxxhhzzzzzxxxxxxxxxxjjjjjxxxxxxywyxwiiiiiffxwwvwhwvxxhxxhhhhxxwwwwxwwwxwwwzxxhxxhxuuggghgzzyyywwwwxwxxwxhhxhhxxhhhxxyxyxwwwxxxxvvgvxvgvwxxxxwwxwxwwwhxxhhhxwxwwwwwxxxxxxywxwxwxwwwxvvxvhvgxgwwwxXxxxXhyyHhHigvxwgvwhxxxhwgwxhgwxvxvxhhxwvwghwghwwgwwgvgwvxfwgxvwwxwhwuhxgvYhhHXIhwwwxwwxhhxHhIivxxxxvxwwwxwxhwghvhivhxwwxxhxyywxwxXXwxiugxgxxxxyhhhhYiy9Y9YwwgxxfggxwvxxhwhxhhhxxhxyxxxxxxxxxxxxxwwwxxiyxyyyyyxxxhhxxhxyyiiihxxhhhwxwwwwxhxhxxxxxxxxxxxxYYyyYyjzjjjwwwxxwxxxxyiyyyxxxxxxhxhxwxwwwwhhhhhuuxwhwwhwhvxuyuxXXwwwxwxxxxhhhxxiihyhhhxhhxyiiixgxxgwwwwxwwxwxxxxywxwfxfwggxxxyxwwvxvxhhxxxihihhxxxxxxwwwxxwwwiiiiiixxxxxxxxYyyYYYywvhvhghwhxXxxXwwhwhxwwwxxwyyxxxwyxwxxxxyxxwxwwwyyyxxyxhxyyxhxhiwhwwwxxyyyyxxixxyhxxxwxwxxxhxihxxxvxwgxvfwhwgwwxxxwxwwwxwxwxwxyyxxxxxxwwgwhxwwxxywxwwwxxwxxwxxxxxxxxwxwfwwvggwhxwyyyxiiiyxyyxxxxyxxxxwhwgwwxxxxxxvwwwXvvXhxwxxxxhwwxwwwyyxxxxxxxxxxxhyxwxwwwzwxwwxyxxxxyyyhwwxyxyyhxhxxwxwwwxxhxhxxxxwxwxxvwvfhxwfhwwwxxxxwwwwxwwxxxxxwwwwxxxwhwvgghxxxxxhwwxxvhhxwgwxxuhwwxxhxyxxhxxxxxxwxxwwxxxxxxxyxxwvwwxgvgxwxxhhhxwxwwwwxhxwXXxwwxwwxxxxhhwwwhhwxhxxxxwwvxxvvWhxwwuywwghhxxxyxhxxyyxxixxxxzxwxxxwwxyyyyyyyyzzyvhhgxiyxxxxyxxyxxxxxhxxxxyyyyxvxxwxxgxwwyyyiyyxixywyxyxixhhiyxyxxwxyyyjzzzzxxyyyxxxxhxyxxyywxxxxyyyyyxwxxxxzzzzzyiyyxxxxxxxxhxxxxxxwwxxyxxxxxwwwxwwyyyyyxxxhxxxiiyixxxxxxwwxwwxxhxyxxhxxxxwxxwwxyxxxxxyxvxwxwxvhxhvxwvwvugwwvgwvvfgxxwxxyggvWvWWgwwvwhhgfgwwhhxhXHXwhvwwgggwwvwgxvwwxvgvgvhwhwxwwgvhwgvxxvxggvvfwwgwvwwvWWhgvwxwxwxwwwwvwwvhwwgxxxxXhxXHXhwwXxwwggwxwxhxhXXhwxgwwwvvxhxwwvgwgvhggvgxwxgwhxxwwywihhgxxwwwxyyyxyyyxxxxxxvhyughgxxihxxyyyiiixxxxxyvfxwvxggvwxwxywxyxxxxxxxhxhyhixxxyxxvhxvXXwwwxwxwwxxxxxxhxxxwywxxwxxxwgxxvxxwxxxwxwxwxyvwwgwhxxxixxxxxxxxyyxxyvuxvxwwggxxxxxhyxxyxxxxwvhwwxxixxyyxwwxxwhvvxwgwyyyyxxxhxxhxxhxxwiwxwyxvxwwxwxgiXhhhjihyxyygxwvxxgwywwyxxghxvxxgwgyyxyhwxxwyjYiiijiwhhvwxyhhihyxwXxxywwwxxwwxjHhhhjyWwywwxxxwxgxhwZYYYYZihihiyxwwhwxwwywyWxghxfwxxwhgyXyYiiihxxxxxvxwhhxyhhvgxhxwwxxxgvvwhxivxyxyxiYXiihiyhXyXiiyvxvwxwgwvxwgwwvhyxyyuxwwywXxxhyyxhhxwvhwxhhxIYXhxxiwvvhhfwWW8X8hhwwGxfwvGwxwhxXhxyhwhxhXhwvWxxhwvxwwwxwwvwgwWxwugXX8YIxxxxhxwwywggiYhHigvWxihyxXhhxHxguXvvvvgvHX9XHxxhggyhxhyyXgxXHhvvWwwuyxggihxXhhXvhhXxgfWYiwx8iWWxxwvxwwwgwXH)IHgwxvwhxwwwwvhhxvxwwghwxxyiIyYHihXywhyxhYhHihvvgvgghyxyhgghxwwwwgxxxhxwfxgxhvuxyxwvgwxxwhwhixihxxYYyi9YivhuywyxwwxxwwywiYyiIiYvxwwxwXyxhvhigvwxwXxxwyhxyxiXhywhyxyyxxiiiwgwywwwiyxygwyhyxyhihxXyyxyyihygxzzZzzixhhxxhxhXxxyhxxhjjzfghxxxxyyxyyyYyyxwwwywygxiwXxwyyyyhwixyWhwywxyvxwxxxwywxhxwwhxihxxyhhhhhxyxxwhwxvwxwxxwwxxxhwxxxxyihhixxxwYwwwxxiiiiixxxxxxhwvYyYYyyyxxhxyxxxuwxvwvwwwwhhxXxwxwwwwxwxxhxxhxxxxxxiyyiywxxwwwxwwwfwfvvvvwwwxhiixhxxxxxwhxwxwxxxwxwwwwhxhxxvvgwwwghxyxyxywxwxwwwwhxxhhhxxyxwxwxwwwxyihxxxxxhvxhhvxxvwwvgwwwxhwvgwxhgHwvGXWXxwwwwwxiwwwwwygwvghgwvfvwvxxxxgxvhhwxvvfwwuxwwwWfVwxwwwwxhxxwwXwXhwxxgxwhxvwwwXxvWhhvxxxxxfhgxxXgWxxxxhxiwxhxyhvggxhfvvghhxxxxxvxgwvXxXXwxwuuwxIHhhwwxxwvxwhwhXgwWggwwxhhxxxxxxxxxhxXhwwxhyhhwgxwvvwuhxvwgxwixhhyxwwwxwxxxxxhxwxxxyxwxwxwxxxxhhhhxYyyYYyyhxxiyxhwwwwwhxhhxxxxwgxwwwvxxxxwiyxuXxwxXxHxhhWvwWgxhvghfvvghxxhxxwxXhyhhXYhwxxwxxxvwgxwXXxHxhhfugVhxhxxxxyxvhxwxwWgwwwwxwxxhyvwhxwxwgwwwxxxx9hyXYgwWxxxxhhhxxXxXYyxxxxxwwwghvhhHHywwwxgxxggwxwwxxywwwwIyhigvxGhhhhhxiyyiyiyxxyyxxxxxhhhyhxyyxxyyyyiyxyyxyxxhhhhyyxzzzzzzyxyyyyyiyyyxyxyyvvggwxwvxyyyxxyxxxxxxxxzzjzzxxzjZjzyyxxxyxyyyyxixyixxxxyxyxyyxxxxyyyyk{k{xhxzzjzzxxxwyxyxyyyyyyixhxyxxxxxxxxxxyxhxxxxxxxxxxyyyyiiYyxyxxxyziiyxxyxyyyxxyyyyxxxyyyxxxxxwwwiiiiyixxxvxxgwwwvvxhXhuvhxwgvxwxxwwwxxhhxhhhhxxhwvxxwwwgvxhxXXhhvxwwwxwwwvvhwuxhxvhhxhhwxwvwxwxwggyYyiiYYyxxhhxxxiiyYYiiwxwxwwwwwxxhhhhxxhwxxxgxhxwvvvwwwxxxwxxxxxywxxyxxxyiwgwWwhghwxxxywxwggxxxxxhvhwwxxxxxhyyhxxxxxxxyyyxxxxxxxwwgwxhixxyyyxxhXwxwxwyxwxhxxiiyiyyyxhxhvvwwwgwwxxxvxxxxxxxyyyxhhyhxhxwwwwxwwxxwwxhxhxhxxxyxyxxxxxxxxxyyiiyxxyyyyyxxxxyxxxxxxyyxxxxwwxxwwxwxwyyyyywwwxxwwwiiiiiwwxwygvyxxyyyxxhyxxwwwwwxxxxxxxhxwiXwxxxxxxxiiihyxxxxxxxxyxggyhwxxxxxxyywwwxwiyhxxxywwwxwxwwhvxhgxxxxxxhxxxxyxywwxwwxxxxxxxxxxxxxyyyiyxxwwwxxwwxxyxxhyiiyxwwwxwxxwxxxxxxxxwwwwxhxxxxxxxxyywwvwxwhgwvxxwhxhxhhhhiYxIiiixxvgwwgwwgxXxwWwgvwgvwvfwxxgwhwwXwxgwwvfwwxwhwhgxvwwwggwiIxXhYYxxhxxvxxwvxwwwwwvwxxxgvxhxwgwyYYYihxwwxxwxwwxwxvgwggxYyXhiiwwwxxwwwwxxwXhxvhxyhxhvhxxvhwwxgvxxxxxxwxwwxxxxyXwhxhyxxiyiiwxwwxxxxwwwxxyhyxxxxxxxxhiyxxwhvhxxxxxxxxxxxxvxgwxxxxxxxhxxxxxxhxxxxwxhxxhxxxxhxxiihxxyxxxXxxxxxxxxxxxyyyyyxiiixxxxxwxxxxhhxxxxwxwwwxwwxyyyxxxxxxxxxxxhhhhhhyyyiixxxxxxyyxyxyxxxwxxxxxxxiyhiwwwwwwwyxwwiyzyyhhhhhxxxxxxxyyyxyyyxxxxxxyyxxxyxxjjjjjxxxxxxxzzzyzxxxxxiyyiiiyxhihhiixxxxxxxxxxxxxxyyyyyxyyyyyxxyhhhixwwxwwiyhhhhyhhhhxxxxiyiiyyyxxxxxxxxxxxxuvixgghxxxxxxxhxxhhhxxxxhhXXhyxyyxyyyyyyyyxxxxxxyxxhxxxhxxhxhihxwwxxXyvgXwwwxwvgwgwxvwvxxxwhXXhhhxhixhYYyIYIYhWXhxXhxXXYhwwxxgxwwgwwhhwxxihYYwxwxwwxhxxxxxxxxhvhhhvvwwvhvugXhuwxwxwxwwwwxwhwhxxxxxxxxxxIhxXHXhwxxhvxgghxxxxyxYiiYYYivhhyxxxhhhhxfhwgvwvwiwghhxxxxxyxxyxywxxxxhhhhiyiihixwwyxXWwfvxgwggwwyyxyyyxxxyyxyxxxxxxwwwxxxxhxhhvxxvhhxxyyyyyywgwxwwxhhxhhhxyhxwwwwwxwwxxyhhhhhihixuxxwXXxwhxxwwxwxxxxxxyxwxxwxfxvfvwwwxxxxxxwwxwwxxwvgvvvhwxxxxxxxxxxhxxxxwwvwwwxyxxxxwggwggxwxwxxxxiyyywwxhhxxyxxxxxxxvwyxxxwwwxwxxwhwxixyxxxyxyyyyghxwwxxyyyyhxxwwwwxvxxxxwxwxxhwxhyyhhixyyYxxyyhwhhhhwxwxwwwwxhxxxxxyyxyyywwxvWvhgwwxxyyhhvwwhwwwwgwvwyxwwxxxxywwwxwxxxxxxxxxxwxxwxwwvxvhxxxwwwwxwxxwwxxxyyyyghxvhgwwgwgxxxxxxxwgwgwvhxxvhxxxxxxxwhxwxhxwxxgxwwxxxyyyxxyxxxxxxxxxxwhyxgxxxyxxyyiyyhxwxyxyyyyyxxxxxxxyhxyyxyyywWxxwxxhhxwwxwxwwwyyyyxxhxxxxxwwwxxwwwwwxwxwvxxhwxxxyyywxxyxxxxxxxxxxyxxhhxyhxixxzzzwhxxxxxwhxvhwhyiyhwwfwxxxxyyhyyhhxiYxhxhhhwxuhxwwxYxYXixxhvwxxvxywyvhvhyxvxvxwvwwxwxvwgyYiXyiyyhxxiYxiIiixvxvwyiyxxwwuyxywgxxfxvvywyywwwggxyvgikZjZZkjxwwwwxywxyhhxgwhwxiwxxywwwxwwwvxgxxjIiiijixhxwwwwhwiviivvwwvxv{Zzjj{zxhxhwvxxjIiiijiwgwwwwhwXyxxxyhgxhghxwggwxvxxxwhyhhxyxxiYYXiYihxhXiiihgwwvxwvxxihyhyxwhxwwxwhwwvxygxwxyxwwgxxwvvxvxxwyyyyXhyhYyiyyhyyyyiXiiyhfxwwhwghyWwwxvhxxwIY9YIxxwxxwwwwwxhxiYyIiiYhxwwGhfvwGwhguhxVwVhhxwVxgggWHXIX9wwghiffWxwwwxxwwwwxyxwyHxXhhXhxwwyyxxIiIiIvxwhhxfeXyYxYyyXXhwWxwwgVwxxXvYxewfXxXYxiHhxWxxwvwfWwxghwxgx9XHXIyixihyhxxxxxxjzjzzxwxwhxxhwvvwwxxvwwywyXxxyXwxywxxxxxZzzzjyyyyxyiyyxyYgygxwkk{wwwwyxwwwygwwZzzzzvhxhhyhhyyyyyyYxxwyvXvwhvhxxhvxyxxxwwwwxwxxxxvwvfxwwxwwxhxxxggwwwxxxxxhxxxxxxxxxxxxxxxhwwwvwxwwwwxxwwvwxwxyxxxxhhhhhhxXxxxxwwgvxxxxwxwxwwhxiyiixiyxxxwwxhgyyyyxyxxxyyxxywihwxxxvxvwhwxyxyxyhxxyyyhyxhxxYxxyyyxxxwxxhwxxxxXwxwwxxxxxwxwxwxxxwvhwvwhwfxxxxvgwwxWwuvwxxyxxxxxxyxxxxhyyxyxxxxxwxxxxxxwwwwxwwwxxxxwwwwwhhviyyyxwvvxvwgvxxxxxwxxxxxxhhxwhwxhXhwWxxxyyxxyyxhyXwxhXwXgXhvghvgvvxfwwggWguwXwhhYGwwvxgvwwxuxxyyhxxxxhYwhhxhwxxyyyxxxvhfxhhwVxxwwxwwwghvwhvyhxwhhhhhwwwwwwvgwwvhiihxxhhhhiyiyxyyyyywgwwvgixwvWXxvhhxwwWxxxxhxxhxiwgvhxwwwhxgwxhWgwhXXXxufwgywwgwwffgXhxxgxWgwgwwhigvxxxxxxxwxwxwwxwxgiixxxxxxxxxxXwuxxwwgVhhihhwwwwyxwhxxhgwwXhhYxhxwwxxwyyvwXxwxwhgwwwxxxxxwxwywwwwyIhvihwxGxxxxzxhxxxxxxxxxxwywhxvxxxxxyxyyyxyyyyhxxyyyxxwwwvxxxyyxyyyyyxxxwwwwxghxwghhxvxvvxwgxwwwvxyyyyxyxxwwwxhxxxxxxxgvwwgwgiyxxwxwwwwxxxxxxxxxxxxxwxwwwgwxxhxxyyxyxyxxxxxxxxixxxwxwvvwxxxxvxggwxwvwhxyxyxxwxiyyiyiyyxhxixxxxxxhxxyxxiyyyiiyxyXiyhxxxxxxxwxwxxwxvxxhxxxxhxxwwyuxwhxxxwxwyxxxyiyiixxwxxyxwxxuxhxxxxxxhiiyiyyXyyghhhxvwwxwwxyiiyyyyxxwwwywwxWhgxuxxhhhhhfwxgvwvxvxxxyxxyxxhxxxxxxiyiiiyihhhXxwwgxwhvxxyxxxxwggvwgxxwwwxwxhxxxhhhxyhxvWwWvwhxwhxgxhuywuVixxxhhhhhwvyxxxhvxxxvxvxhfxgwwwgxxxiyvyYigtWxgwwwwvxgvwhhgggxwwwwxywhhxxuxxxxyXXXhiyvhixgWxwxwwwxhvwwywxwxvxyxxvwwwwwwgwwvwxhxxfxywwwwyxxxxxhhXXyvxhxxGvxhwfhwwwyxxyyywhxwwhxwwwxwxyxxxxxxxxhhxhxxvxwwwxwwhhgwxxyiyixwxxyyvxxwvxwwxuivwxgwxhxxxxxxxwwwxwxxxxxxxxyhxhxxxxhhxvvxwgwxxxxxxwwwxhhxxxyyyyyyxyxwwwwwwwxxwwwwxwxxxxxxxxxxhxwyyxxzxhxhxxxxxxxwwxxwwwwgxgwwxxwxghxwyxxxxyxwxxxxxxwwwvwwxxyyxxyhxyxxxwhwwgwvhxhwxxxxxxhyyywxgwvgvwxwxixxxxxxxyyxxxxxxhwhxXyixwxwxhhxxyxxhxxxxxwxvhxwxxxxwxxxxxxxxxxwxvvxxxxxwxhxxxxwwwxwxwwxyhxhxyxvxxxxXxxxyxxhyhyxihxhxixwwwwhwxxxxyyyxxixxxhxxxxxhxhxxhvwxxvxXxwvWxxwhwxggwuxhwwvhwgwwwwgywwxhhxxyxxxxxyxxhhgxXvyvvwgwwwvhggwvggwgfwgvXwyhWgxwxwxxghhxxhxxxwwwxxgiyvhHiguXwxxwxhyxhxxxxxxxxxxxwxyxxwxwxxxYhhXvxxwwvwxgWvyywxXxwwXwxfwwxyxxwxxxxvyvwxwwwxxxxxxxxywgvhxxwwxxxwxxvxvxxxhwxxwwwxwwwwvgxxxxxvxuxwxhxxxhxxwxwxvfwwxwwwwxwxxxxxhxxxvygxyuxhxhhxvxvwhwwxxxxxxyxxxyxxxyxyxxyyxwhwhwwxgxwwxwxwxhwxwwhwxhxxhhxwhvhhxxxxvwhxxhwwwxxxwwxxxxxxxxhhhixxxxxxyxxyyyyxyyvwwggfhwwxxxxwxvYvxxXwxwwxgwhwyxyxxxyyxxxxxxxxxwwwxwhwwyyyyyxxyyyyxyhxxxxxxxhwxyyyyyyyxhxhxxxxyxxxxhxhiwwwwxWhxhxwxxyxxxxxyxyxyxwwxwwvwwgxxwwxwwxwwwwgwxwwxwwwxxxwxxxxxxxxihxxxxxgwwxgvwxxyxyyxyygvwwghhgwgxxwwxxwwwxwxhxxxxxwxWvwwvxhxwhxwxhxgvwXxgwxwhgxyyxyyyxihxhwhwhvghhxxyxxxhxxhhhvhxwXxyyyxyxhhhxxvxxxxgwgwxwyXhxvwwwxwwxxwwgwxxxxxXwggvxwvvWhxixxwyxhwhvxWgwhXgwxxyyhxyhhhhxxwwvgxwhxWwxxxxiwxXhhuHvfggvvwwwwxxxxxxxwwwwxxxwghwwwxxxhxwwxxghwwgxwxyyxxxxxxxxwxxwwwwxwwgxvvxxxwxwxwgXxwwgwwxxxyxyiixxxvwwvxwvwgxhxyyxxyhxhxxvywxxxwxwxxxxxxxxxvxwwhxhxxxxwwwxwxxwwyxxxxiyxxxxxyyxxxhxxxxxxxwhxwwxwxxyyyyyhixhhxxxyyxxxhxxxixhwwxhwvhhvvxhhxxwxxwwxxxxxhxxxxywuhwhwuhgxwhxxiiixhxhhhvwwxwwxgxiyyiiiyxyxyxxxxyyyfhwwgfwwxwxxhhihywwwxwwwxxXxwhXxyyyyyyyxxxhhYXxxxxxxxxxxwxxwhhxwxxwxwgxwyyyxyyxxxxxxxxhxxxwxxwwwxxxxyyyyyyyywgwwwxvxxxyyyyxxxxxxxyxxxwwwxxwwxxwxxfxYwXwevXyxxxxxwwwwxvxhxhvhggwfggwwfwvxWWvwxhhvwwwxxwwxwwgwxhfxiwhvvuwhhhhhihhxxyxxgxxwxwgxxxxxxxxxxxwehwgvvWvhgwyWXvwxhxhwfxwxxwhwwfvghhyhhwwxwgwyhxwgxvhhwxxvwxxxxxwwxxxwxxwixVhfhvfxWWhvxxhhXyxyxwgwwxwwhwhxxwyyyyxvwgXxxwxxxxxfxwxghvwWxhxxhvwwwwughvxxxiwixxyxxxxgxvhhgxvvvwwgwwwwwXwvwgxhhxxhyhixxxxgWwggwuxxwxxxxyxxxhhwwwxwxxwwgvgxwxhWhhwxxxhvugvwgxwwuxhvhhghxwwxwyvwxxxxxxhyxxWYwyxiwvXxyxxxXXxihwvWxvgvxwxwwxxxhwgwwvhxwhhxxhghwhgigfXyxxxwywxxxxxxxxxxwixxiwxwwwfygfwfwwgggwgwwhhgvghxxXwvXWxxhhHvXxXXihxxxwyxhwixwwxwwxwgwwwhxxxwwwywxhwxWywyxYuWxxyxxxxyyxhhhhhwxxhwhxxhhhyhxxyHivxihYvXxxxyiwxhxxhxxhgwwyyyyxxwxvwwxvgvWwxwvxwXgxWxhhxWxwhvgXfxwHgxgxVhgwWwxxwwwxhxxxwwvwxxwhwhvWwhgWwwwvwgfyfgwwfwhhhhhfhwxgXwwWhhwxxwhwvvwwwwxwxwwxxvxxxxXxxxxxxyyxgxfxgivVghvhhgxvwvwwwxxwwgvXgwXWhxwgxwwxwwwwwwhwgxxhhhhhhhxhxxxxxxWhfxughwxGhwwwhhvxxxxxyxyxyxxxwwwwwwxyyxhxhhxhxhxxhxxxyyxxxxxxgwxhhvxxxxxyxxxyyxxxhxxxwwwwwxxxxxxhhixhwwhwwwxyxyyxxxxyyywxwxyxxxxxhxxyzyyxxxxhxvxfhwxxwwxwyxyxxxhxxyyyyyyxxxwwwxwwvwwxwwwxhyxwwxwwyyyxxhzhhxxxxxxyxxxxyyxxxxxxwyyxxxxyyyyyxxwxxwxwxxxxwwxwwxgxhxvxwWxhyxxxyyhxxxhxxhxxxywxgwvyyyyhyxxxxxyxyyxyyvhxgxyyzyixxxyyxwywxxxwyiyizzzxxwgxxxwwxwwwyyxxyyxhxxhxxxxxxwxggxwxwwyyyyyxhxvxwgxvvgxxwxxwxxxxxxxyyxxwwwwyyyyyyyyxwgxxwxwwhxhxhxxxhxxxxxxxxzxwwwwwxxwxxxxxwwgxxvxxxxwwxxwwwwyxihywxxxxxxxxxxXxhxxhxxyxxxxxyyyxxxhhxxxxhxxwhhghvJYYYJxxxwwwwwhgivfVyYxyyYYxwwxwwwxhwxwwggWxwxwxgvYXHXIxhvxhhxvwgwhxxxhwvWygxwxxhwvgxiyxhYxxxwgwghyixYvGZYYY:iYhixgwvXiixyxiixgwwwwhhxxxwwwWxixxxhuYyxwxwhvvgxxwvwwwgwxxwxxhwuWYIYIIwxXwwxxwwwxwwwhhxXXhXxxxvhivwxgwxwvxwhvXXhhhwxwxwgxwxwvwghhxviiiiiIwwwxwwwwwhxxxxyYyiiYYwxgwxhwwwxwwvyyhhxxhwvvwwwwgvhvXgwxwwxhwvxhxhhhXxwgwxhwhxwhwgguwxgvvxwvxgxviIyiiYYwwxvWvxgwvwwvxwwvghxwvxwhwgvxwwxhgwxvxwxwwwwwxgxwXXxhhiYyjiiIhgxhhvggxxwwxxwhvxwwxwwvYYyxiXxwgwxvxwwwxwwiXxyhiXvghwvwhXxxXvwvxvwghxgxxwxxxwfxxvgxwxvwxxhvvhvvgwxvxXhhhxxxhhvgwvYYyiYiYhhxhxvxxwxwgviYyYYYYvwhxwwwihxxhxxxxxxhhhhxhwwwvhhxhhjJjjjjJxxxXxxXhYYyiYiYxxxxwgxxgwvhxxhhhhxhxwhxxgwvxvwwhxvvGhhxghvhhwxvwfwwxwwvxxhwihxhxxxHHxhhxyxxyxwxxiyuvHXXxhixwwwxhgxxyxwxxxwyxgxgxxxyxyxxwwxwwwghvgixhyivGXXxXXxwxhyxxxxxXXwhghhwiXxxvwwxwxxxxxxxxwgxwhwxWgvwxxxyy7xwxwwXxxgwhgwXhxhXihhhxxxuhwvwhiwxwwhvvfwvvgvwhfvxxwwxhhxvgwwwhxhvfwwhhxiihihhyhhxxxxuwhwxxwvihhXhYhwxwxwggwwvwwwxxxxwhvwyyhwwuwggvwwwwwxwughhwxXxwwiYyYiYYvxxxggwXXvXX8wxwxxxXvWhxxhxwWyYxxxyXwxxwwwhxwwxxwwwvxxxxIYYY9xwxxxxxxvwhwvvvGvxwxhXgViHxhxhYgwwwwwXwvwgiyvhixgWXXIX9hfhwxxxvxXxhyhxvxwgwwwwxwwwhxYywxXxxhwhwhwhhHvWyiuxYxgvXYHXI)vxxxxvwwggguggWvuhvwgxwgvxvvvxxwxwvgwxXwvggggwwggvwxgwxvvwgwgwwxgwvgvvxvwxfvghwvwvxwwuxwghhhXXhwxyXhxhhXXgwwwxggvwxwxwxwwwwvuhvwgvwXXvxxxghwwggwgfwvwwxvvghhvxwvwhwxwwgghXxXhHhwxwxhwvgwwwwxxhxgwgwgwwxhwggwxgwvhxxiIyihyiwgwhhvwhwvwwxwwwwfvhhgxwxwhwwwxwgvvwwhvvgvwwuxwwhhyhhY9yYiiihhhXxwwgxvvwwxwxvwgxxwwgwiIyiYiYghwwXWwwxxwwxwiIhhiXwwwwhhXXwhhxwwgxwxwvwhwwwxWvwvxwxhvtGggfhgwwvwfgwwxhvhvxWWvXyhwhxhhxxxxwxwxwwxwwxuggxywweXwwwwwxwXXXXXXuXXwxwuwxvgxxwhxghvhhgxvwvwwvhgwyWXvxwhhxfeXxxxxxxvgwwywhwxxxxxxxyhhxvhxhxvxwxxxxhhhhvghvgxvhghhxHHvxwxvyhwveXwwwxxxwhvwwwvwwvgxxxxhiYyxYixggwwgxxhgxxvwvvvxwxhvxwwxxggxxhxhhxxxxgwxwwwwxwwxXxyiiivwvfvwfxwwvvvgwguwxhwgwwxwwxwwvwwwiIyixiiwwxXxguhuxghyXxihiXwwwhxvwwwwwwxhvwxXhvhxxvxvxwwxxwgiYyYiYYhhxhgvxxxxxxvwhxwgghhxhhvwxxhhwxwxwxwxgwvhhhXXxwxwxwwwYiiYYYixxyxyyhhxXhYhhhwwwwwxwxwxwwwwvvXuwXuwhgvxihxxxhwhXXiYxihxxxxxxggwihxHhHixxghxghxwgvvYYIY:xhvwhwfwvGxwhyiyyxyYwYxxvhXugVxhwxhwhvwhifVXYHYIxxwxhxxxxxwwhhwhvwuwVxhxxyIxxvhwwfVxwxwIiIiIxxxywyYyiyiYwhxvWhvWexxxwxwwwihxxxhXvhxhhwgVxxgwXwwwVwwywgXY9XIxgxwvxhxwxxwwwhhhhxyyxiIyiYYiXxwwhxhXxxXXhwgxwxxwvvgwwhxvvXvXxwhvwxxwwxwwwxxhhhugxwwwxgxgwxvgwwxwxxXXxhHhhvwgxwwxwwwiYyyYiYxxihxhhxhhhvhvwgwwxwxxxXvvXghwhXXyxxyxwgwiwwgwxwwvxwgwiiyxxwvWxxxvxgwwwxvxyiuHxxyxxxxxxxyxhhxhhhhhhhwwWvWwxhhvxxxxhhfxgxxhfvXxxxxxxgxhxYhgfhhxgxvvghyxhyhxvxXhivxwgxxhwwwwvhhihhiiyxxwwwviivwvWxgxwvxwwihxYiwxwxxwwwwxywwxwwhhxxhhXwxwxvwxxxxwwxxxxXxhXXhvgxxxhxxihvwhwhxhxfvwwwghhxhhxhxxhhiyyxwxwwwwggguWgvvhxxvxvvgwyvyvwhxgxvwwwvgxgxxwgwxxvxwvvwwxwwxwgwggghyYYhyXwwxwwxhxhhxhhgwvwgxwwxwghwhxwxwwwvxxxwwxwxwwwwwiYiiiixwxxwwwwxwwgxwhvgwwwxvvwwxxwxwyYiXyixhixxwgwhhwiHhhiXgugvxwgvwgggffwgwwwwfwvvgxwwXwwwxgvxhxxwgwghwxghwxwwhxhhxxxYiyYYYivxwxhwgwvgYYyiYYYvwxxwwxxxvwwgxwxvvvgvwxxXXvhhxXXxxxghggwwvxgXhwhxxgwwxxxxwwwxxxxxxIhxhHhiuwgwxggvwxwwwYhhhXihXWvwghwgfggvwggvghwxhwxxwHhwIgHtwwxwwxhxxwxwgvyhxixyYhxwxhxgwWwxxhhvvWhhxhxWvXIYYX9xhyhyYvWwwxxxwxXxxxwhxXwxyxxYxxwwwvhxvxfhwHYYXIgixhyivGyixyyXWwwxwxhwuwgwxxyuhhugVxXhyiIhxxwgvugWwgxwwwg9YXXIwxvxxXxvvXxyhxihxxxwwhxxhxhxhhxxgwwWwxghvhixXXwhvyhhvXwxwvxgvxwXwxxxxyxxxywwxxwywwxxwxxxxxxwxxwghuyhiyGxwgwxhghgygxwhhihhghfgggwvwvgwxwvxxhhwWwXvyhgxxxxxxywxwxwvxfxuixwwvX8vXwXXXwgxxuwwwwvwgwWxwugxXxxihugwxwwwYhyyhwvvXhwxwxIYHXYhhtxhXwXwhvxxhxwWvhvwvxgyhxYhxwvhfxhhwVHYYXIiXtiihwwXihxyxyYxvgxwxwwwhgtxxgvwwGyhxhhxXhwfwfwwwwxvgwwxuxhhvWIIYIYIZYZIwxexywhhwVhvexvwwViYyyiyYxwxwwwwgwxwxxxxxx9YYYIxwxxhwtxxwvvvGvxfxXhvViHxhhxYgxfxgivVxwehwgvvWIiIiIwxxyxyXyyYyYxxgwwxwwwhXxiyIwyyxwgVxwgXwexgexxwwgWHYXY9GhwIhHtxhuxhxwwWwgwwwwyhyyxXwXeyxwXhwVwgxxxhitxxYyWHYHYXwgxwxwvwXwxvwxxhguhwwwvVxixxyIhxxhxwWvhfww8YIXXgxvgvxgvyXyxxyXghuxHhvWvhwxwxwxhyxhxuYgiuxiXyGwxuwWwhxwvgwhxwhHY9XY9ZIYYxwwwxwwwwwwwwvyhyihyihxuxhhwwWxxvxhxwvWhhuxxxhvwg8YYYIwgfwhivVxwwxwwwygvwxhxwvgxXxyxxvYwgwwwxvxvxwgxvvg9ZYZYghuyhiyGyiyyxyYXwuxxwwgVwxvxxXxvWxXywxXixiihwvWxvwxwgwxxwwxvwwv)IXIXZjzZZZ*hxhxhwghwhvjiihxhxhxwhhwggwhwhwhvZZzZji)wgwxhhvhxhxhXxhxXiiigwxhhvxxXxhKjjJjj*XxxxXjijwgwxghhhxhxhihihxXxxxwhhwggwgwxghhZiyYYY\u0019hhvxxxwwWhxxxxxxhhxigxxxgxxgwwwxwuxivxhwhvfugwwxwwvggvwgwgwvxwyxxwwxwwxwxxxxvxgwhWxiYhixgwvXxwwxwwxwwwywxwhwxxxvwwgxfggfwvvxwvwwxxxxwwxxxhhxXhyhxyxwwWxhxhxwwvWvhhgggwxwwwwxxwwwvgxwxhxxxxxxyyyyyhhhxwxXxyxyyyywxwgxxhwhhhhhhyxxixhhxxxwxwwwxhvxhvWxhwgvwXxxxxxghxxxxxxhxxhwhxxXwxyhxxxvxxWwwWhhvvxvwwwwgguyXxhxhxvHhXyxwxWgugXvwwgxvggfgvvxyxxwxxwxhvxhhhxvxwxwwwwxhihhhhhyxwxffvwgihxxxghhhwxxwvwxwhwxwhxwwwwxwwxxwwwvhyxxxxXgvwwxggvxXxxxhxwwhvhxhwwWXwvxxwwvxwwwXwhhwvxvxhfxgwwwgxxwwxxwxihvhhhgWfxWxYexhwXwgvXxxxxxwhwvwywwvwgwxwwwxwgwhXxhhuhwwvgwwviIuyiigwvYhhhhiyhhxxxxywxwwhxxhgxxxxxwwxwiXtiihwwXXXxXXhvxwxxvfxwxxwhwwfvgwggghhXwxxhhwvwhxwwwwvxxxxxxxiXuxxhxxHhxhxhwwxxwwwwxxzxyyxyxxxxhhhxxxwhxxwwxhwhhxxxxxxxhXxxxXxxxxxzxxxxxwwwwwxxwyyyxwyxhxxxxxxxxhgwhxghvYYxyyyYxywvhwwwwxjzzzjxhgxhxxwyxyyyihxxyXxwxyxxgixxxzzzzzyyyyhwxxiiixyxiiwwywxwhw{{kyyyxwywxxhzzjzzxxiiywxxwxyihwyxyuXxywgvxvgggyyyiyyxyyxxyiyyyiiyxxxyxyxxhhxxhxxxxxyyyxhhxhyyzzzzzzxxxyyyiyyxyyyxxxxxhhyyyxxxxxwxyxxwxixxxxxwxxwxwxxwxxxxxxxxxhhyyxxwygxyxyyyxxxxxxxxxxxxwhiyyywxyhxyuxxxxxxxyyxxxxxyixxxxxxhxxxhxxxxgvvXxxxuxyxxxxxxugvgxixxxxhxhxyyyyyyyxxxxxxhhxxhxyyhhhhxxxxyiiyyyyhyxywxxxwghxhxxxxzzzxxxxyxhwxwxwWwxxxxxxxxxyyyyyixxxxxxvxwgwwxxxxyyyxyyiiyxyyhyyzzzwxxywxwwwwxgwfxxxxxxxixhiyyxxxhxhxhhwwwwwwxxxvvhwyyxxxxxxxxwxvgxyixxxxxxxxxxxxxxxxxxxhxhxhhxxxhhxxxiXxxxhvixxiywwxxhyiixxyyhyyxxxXIxhiXyxyxxwivwxhxwYwxxxiiyyyYhyhiwwywxwxviYxhxyXyyxxyzzjyyyxyzzzzZyyxihxwXxhxxhiYwxxwiXxyvwwhxyixwwxiyixxxxxxxxywxyxxxxxxxxxwfgwgwvghhwwwvhgyhxxxxxxxxxihhhihxxxxyyyyyixxxxyywvvXhxXwxxxxxxxxxxxxxxyyxxxyixxxxhhwwwxwhxwwwwwxhxxhxxyhxyixwxYwxyxyxxxxxxxxxxxxxwhhxxxxxxxyyxixxxxyiyyiiyxiyywxxxvxwxgwwxxxxhixhhxyhyhyyyyyyywxxwxxwxxxxxxyxwwxwxyyxxxxxxxxxxwwxvxwgwwyyyyyxxxxxyyyyxxwxxxwyxxwxwwwwxggghxvxxxxxxxyxyxyixxxxiyyyxwwxxxxyxyxxxxxxxxxxyyxwwwwwwxxxxxxxxxxxxixixxxyxxyxxvyxhyxuwxxhhhyhxwxxxxxxxxhhxhxxxxxxxyyiiyiyxxyxxxxyyyyyyyxxxxhhhhhvgwuhxyhxxxxxxxxyhxxhhhxyxxxyxxxhxhxxvWvhxXwxiixwwxxxYiyyxYYxiwwxgxwxyyxzzjzjxwgxiwxxywwxxgwxXhihiYyyyyxwixgxhyyYyywwhxgxIYyiiiYjjjvhxghxxyyiyywxXxihxhvxwyxyxYhyihhHxxxxxxxxiyyiiyyyhhhhhyyyixhyhiyxxxyxyyyhhhihixxxxyyyxyxixixhhxxxxvWvxvvXXxwxxxxhhhhxiiyiyyyiiyyiyxxxwwxxwxvxgwwxxxxxixixyxxxxxyyzhhyxhhvxxxwWwxxxxxxxxyyxyxxhhxyyyywiwgyyyxxxxxxxyyyyyxyhiyiyxywxwxxxyygxxghxhyhhhywwwxxyyxxxhhvWvxxxuxxxyxwwhvgvxxixxxyyyyyixxxxxyxxxyyxwhvwyyxxxvwggwgvghhxvhyixxxxxxxxxxxxxxxxwwxwxgxxxxxxyyxyyxxhxxyyyxyxxxhywyXwxxyyyxxxxgxhxyxyyxyixixwhwxhxxxxxxwxwwwxxyixxxxxxyxxxxxxwwwwwwvgfwfwwghhwxxxwxwwwxxvhwwwgggwxwwwwwhxxhhhxxxxxxwwwxwhxxxhxxxxxxxxxhxhxvXvvwvXXxwxxxxxwwggfgwvhhxvwwxwxwxxxxyyyiixyhyXxxyxyyiyixyxxwxhxxhhwxywwxxhiXxxiYywxxhxhyyjzzzZyyyxyxxihxyxyYxwxhyjjjhhiyvhxwxxyvYyyyiwvhxhxxxxxyyyyYYxxixHxhwgyyyyyxxxwxwxxxxyxxhxhhxxxwxxxwxhxhxzzzxxyxxgxxxxxxyyxxxxxxxxxxxwxwxxwwxxwwxxxxxxwyhxxiyYyxxyxwuyxxhiyiyxhvhxwyyxxihhYhYixhhwwvywwhwxxxzzzzzxxyygwvywgwxxXxhyhxxghzzjyyyxwXyhyyiyyxxhhyvfxxhygxxiyuXyhyhiyivwwywwxvxwwvgxwzzjzjxxxxiyyyyxyyXhhyYyyxwxhwxvywwxhjzzzZwywxxhyxhyiyXYyYx{{kyyyxxzzzzZxxhgvwwxwxwyxyXwyghyXyXyxhiXhwxxgyxxyyyiihyvgxhyxywwyxxhyhxhyXyyyyxyyxywxgyhwyyYyywvyxhxxihyxiyXxhyjjjhhiyyyzzjzzvwyvxxhhiwxxWxyyxhixhYiHiYyiIiYxyxjzzzjXywxyhgxhgxwwwhvxwwxwiHhXxXwhxwgwxiyyyYyyxxxxyXyyYyYvgwwywhwxijjxgxghxwhxvhxxYyyyiwhwxxyxvyxxyxxyhXyyXyHiijzxyxx{k{{{{zxxxyiiizxxyxx{{kxxyjijxzx||||zxxxx{kyxxzxwyihiwxgvwxwwwhxxxiiiyyyyywwxxwwwwxxxxxxxyxxxxxxxxxxgwwwwxxxyyywwxwxxxyyyyywwwywwwvgwgxvwwxxyxxhxyyyzzvwXwxxxwgxxxxxiiyyxyyxhxxxxxyxxxhwxgyyyyyyizzxyxhxxhwwwxwwwhhhwxwgwhxxhxxxxxxxyxxwwwxxxhxxwxwwwwwwwxwxxxxxwwhxhwyyyyxyyxxxxzzyxxxxxxxxyxxhhxxxxxxxxwhwhwhhyxiiyxwwxxhxxhxwwXwxwxwgxxxxyyyyyyyxyxhxvgxwxwwwxxxxxxyyyxxxxxxxxxyxyxxxxzzzzghxhxvwgwxghhxxxxxwxxxwwxywhxxxxxhiiywwxwwwxhhhxyxxxxxxxxxxxxxhxhxxxyxxxxyxxxxxxwgwxghhxxxxxxyhxxxhxxxxxxhhiiiiyXxXYyYhvyxigGxxxxyxwwihXXxiwxxhxwxxxwxgwxWwxghwvxxxhyhhwvWwvxgvwWxwwwxWvhgxixhyhhxvghwwxxxxxwhihxhhxxxwwwWvwwgxfggfwvvxwywxxhwwxwxwgwxghxwwwxxyxxxxxxxxxhhhhhhxxvxvwvwVwgwfwvxxhxxwxgwwxhvxxxxxxxwxwxwyyyxxxwxxhxwwvxxxhhXxxXxxhxxxwxwxwxhxhhxxxwxwwxxxxxxxxxyyyxxxxxxxxxxxxgwggvxxwwwwxywwxwyxxxxxwxvhxyyyyywwwxxyxyyyixhxxxxxxwxhvxxxyiixxyyxhxhhyxwxwwwXhyyyyyyggwxxxyyxhxxvwvvxxxwxwyxxxxxxxxxxwwwxwwxxxxxwggvfwhwxwwxxxxwwxxxyxyxyhxxhwwuwggvwwxhwvyxyyyyyxxxhhxxxyiiiyxyxxxwwxgxwfvwxghwwxxuwWwwgxyiiwwgwhxhwyihhyxyiihhhxhxxxxwxxyhXWxXwvgwXwxvxhfxfwwwgxyxxxXwgwhxxxhxhhxwwxWwgghvwhwhhHvWvxxWwwWhhvxihxwXxyxhxxhhhhhhwyiwxgxxxxxxxxxxwgwwxggwwxgxvxXvVvxvvwvghhvyyyyyiyyyyxxyxxxhxXXhyxyxxxwwiiiYiiyyyyyxhihxyyyiyyzzzjjjyxxxyxxhXXvhuxwvwggiywxwwxwyxyxxxxwyxxwxywxxvwyxxhwxwxxxxvxvwhxwgwwwxhxxyyxyyxghxwwwwxxvxwxwwyxxyxxxxxxxxyxxyyvxxwwwgwxxxhxjzzzzxxxxxyyxxywxxyxxhzjjjjxyxiiyiiixxhxxjzzzzyxxxywxyyyyiyyhhiyyxxyxyy{{{{{yyyyyxxxxxxhxyyxxxxxxxzijzyxxyyxxyyyxxxxxiyyiiwxwxwwyxyyyhxhxxxyxxiyxxxxwwxxwxwyyyyyhXxHhXhxxxwxwxwwxxgxWwvXgyXwxxvwxwxhxYii9YYixwhwhxXxwhxxgwhwxxwwxwxwhHXhHwhwgwwvxxhwhxhhhxHhXXwwhxgxwhxxvWvhxXwwwxwwhwxXhxXxxxhhxxwxwxwhwgiiyIiIixgxhxwxxwwxwwwxwwwyyxyhxxxxxyyxwgxwxxwxwxxxxyxyxyxwxwhxxhyyyyyxxxxxxxxxxxwxxvhxxviyyiixxxxxxxxxxxixhhxxyyxxxwwxwwwwwyiyyiyyyiyiiwyxwwwywxxwwxhyxhxxyyyyyxxxwwxwxwwxxxwwxwwxyyxxxxxxxxxxyxxyyyyvixwwwxyixxxxxwwwwwwyhhxxyyywxwwxxxxyxwhwyvyxhxyxhxxhxxxxyxgxhwixhxixxyhhxxxwywxxwxxyixhixXxXxxxxxxxvxggxxxxxxyxxxxxyxyyyyyyyyxxxxwwxxxwyxxhxxxxxxxxxxxwxxwwwxwwxwxwiyyyxxxyxhyxxxxxxhxhxxwwxwwxxxxxyyyxxXYyXhHhvhwWwghwvwwwfgwgwhhgxxwxwhwXwyXvWwxwwxggvwwxhhxhhxxiiyIhYXhvXwwhWwxwgwgxxgxwxwhxvgxxwwxhxhwxvhwXxhxxwwwwxxxhixXyYixwhwxxhwxwxhghgxhhxxwxwhwwhhgxwwwwggvwwhwhwwvxhhxxwxwxxwwwxhhxYiXhhvXvhxwuyxyxxxhxhxwwxwxwwxxhxyyxxhXXxhxxxiiiYyYivhvXgwxwwwwwxxxhxhxxhxxxxxiyyiiiyxxxyxyyyyxXHhhxiiyyyhxxihhxyxxyxxxxxxxxxhxhhxxxyiiyyxxxxwxxyxxhwwxwwxxwxxyyyxxxxxxxxxxxxxyyyyyxxxxxyxxwxwxwwwxwxxyxyxxxxxxyxxyyhyxyyyyyyyyxwwxwxwxwxxxhxhhhixyxxxyjjjjjyyxxxxxxxxiiiiyihxxhhhwwwxwxxxwyyyyyihixyxYyYYyyyxxxyxxxxyxzzzzzwwvxwwwwxxxxwwxxxxxxyyxyxxgghhxwihhxxxhhxxwwwghhwxxxxwwxwwwyyxyyxxxxxxxxguhuxghvwvxvwghxgxxxxxyyyyyvvxgXWyvhhxxxhxxiiixxxwwxwwxxxxxhhxhxxxvXhxHXIhxxhixXvhxXvxvvXvXxWwhwhxhhxwxxwxxxwwxwXXxhYiy9Y9ixxwhxhxwhwxxhwhxhhHXhHxxxxxyxxhvxhhvihxHhHiwxxhxgwgwiYXiXxhhxxwwxxxgxghwwxHHhXxwhwhxxwyyyxhxxhwiyyIiIYwhxwwwxxxxxxyxyhyxxwwgwvyyxyxxyyyyyxyyyyxwyxwwxxxhwhxyhxxxyyzzyxxxyyyxxyxwxxwxwwwxxxwyiiivwwvxwvXXhwxxxxxxyxywxwxxwwwxwhwxxxxxxvwwwxvghxgxxxxyyxyyyxxxxwwgxxfggxwwxxwwwwwwyhxhxxxxxxxxxxxxxxxxxxwxwhgwvxxxhxixxyyyixxxywxwwwYxixhhxhhyihixxhywwwxxxxygxhwxyxyxxyxwywxxxxxwvhyyyyyxxyxwwhvyyyyyyyyxxvxxvwxwxwxxxxxxwwxxxxxhxxxxxxxhxwwwWghgvwwxwxxxwwxwxguhxxwvwhxhwwWxwwhxyyxhhxxhxhhyyxxyywxwwwwwxxyihxxxxxggwwxwxhwvgwwwxxxxxgwwhgwwfhvwihyyxxxhyxxwxxwwwxxxxwwxxwxwxwwxhxxxvxxhwhzzzxhxxxxyyxxxhxxwxwxwxhxhxwwwwxwxxyyywwxxwwwywgxxwwxxwxyxyxxxxxxxxxxxxxwwhixxxxuYyyxwxxvzzjzzhwwihgxxxiyyiiiXxxwxvwwvwxhjjjjjxxwxwwxxixxxhuYxwvwwzzjzzxxxxwwwxx{{[{{yyxxxwxxwghiyyhiiyIiXxhiyXyyXyyxgxyyhyxxvwxfxxXixYYiixywxxuwxwxxxxfxxwgyvhhyhhyhxxxwwwWxwiiiiihxwxvvyxhyxuyiwxhvwyyhywvyyxhwwwggvhhxiihijYiiijihgwxxwxxxwhxfxwgxxxyxxWxx[jZZZ[ZxxwxxxwxvxwgxxyyiyyvxxWxxxhwwvjYiiijixwxvxwhxfhxwxwhvwyYyughwxhyxkjjjjkjiiiiihyyxxwyxuvxyhxyuwygvwgwwgvxxhyiixYYXixgxxwxvxhhyhhxxxhwvyXxihiXxxwxxxwfxxxyhyyhxwxwwxWwwwyhyyvyyXyyyivxwfhhxiihiIX9YXwwxgxgwxXwWhfwvHhhyhiYHwwxhxghxhwhwfwgXxxxwxxwxxYI)IYhwvWwXgfwxHghxhfhiWhvWxwgxwhYyyYYY9xxxxwxwxxvxwhwhXgwWXY9XIihvhhhgWfxWYhyihhHxxxxxxxXxhwhvgwwWiyhiiiHxwgxwxxxxxxxwxghwhhfwXYY9YYxxggwxxxxvywWXxwwxwxxxxxxhhhhiihiiiyyyxyywxxvwwwffxyyyyxyxxghxxxxxxxwwwwwwwxxhhhhwghggwhxihxxxhyhxyyyyyyxxxxyxxxxhhwwwhgwvxxxWWiYxhixxxyxyxxxxhxxhhhxyhhwxiwxxxvyxxxxxxxxxxwwwwwwxwxxxxxxxxhhxhhxhxxxxhxhxyxxxxxxxxxyhwghvyyyyyxxyhxxxxxwxwwxxxxxxxwxwwwwxiyyiiiiyyyiiwxwwwwxxxwwxwxxwwxxxxxxxiiyyihyhhxxxxyxyxxxxxxxxxyyxxxxxxxyyyyyyyyyyxxxhyhxhxxxhxihxyxwwwxwxwxxxwwwwxxxxxxzzzzzhxyyyYyYyxxxxxyyyiyiixxxjjjjjxxxxyyxxywxxxyxyxxxyxyyhxyhhhhhhyixxwxwwwwxyyyzzhhxHhIivwyXvxxXwxxvwxxXwgvwvXXxhwxhhvwhgwhxwgxxxxxYhHXIhwwvhgghwwwhwhgvvhHhhHvgwggwwhgggwhXvwgXwxxxgggYiy9Y9YvwwwXvvXhxwwvvXhxXwwwxxxwhwwhwwvxwhghhwxxxxwXuxxXwwwwwhwgiyIiIiwwwhxvxxxwwggwxxxhhhhhxxxxxxhxwwwwxxwxwwwwwxxxxwwwxwxwxwvwwwxhvvxhhvxxxxxxxxhhxxxxxyxxyxxxxxvwvfxxxXxhhhxvwfVhhhhxvxvwxwwgwuwwxvhyhxxhxxyyyyyxyyxYXhhwwGyxyxxwxhwgxxwwwvXwgXXhhwxhhYwgWwggwuvwwwwwwgwwvhhxXhwwwWyxyxhxwXyhxyyiiyxxxxhiihyxxxyhhhhhgxgvhhvvvfigvgwwwxvwWxwwwwwwwvgxwwvvvxyxxxxxhxxxxxxxwxvxwxwxwxxxxxxvwvhhwwwfyyxyxvwWwxwguyyyixxxxxwxwwyxxxxwxxxxxxxxxxxxxxwhwwhwwvxxxxxhhxxvhxvwwyyyyxyyxxhyxxyyhwhwxgwwwxxxxwyyxxyxwhiwxxxxyhxhxgwwxvxxxxhwxxxxxxxxyyxxYxxyyyiyixiiywXxxxxwwwgxwxXuVwwwxxgvhwXwwgwiwhggvwxywwwwwwxxxxxwywwwwwyxxxxxghxxxXWxxhxhihhihhxwgxwWwhghwwiiwgxxwwfygfwfwwggxYhhXxxwhhXwvWxxxxxxhgvwwxxwxxxxxxxxxyxxywwwhxxxxwxgwhxhwxXXXhuwhxhiIvGiyyiixxxwwwwxwywxwwwxxxxyyyyyxxyxhxyyhixxwwxxxxxxxxxxxxxxxxyiyyyxyxxxxxxyyxxyxxxxwxiixxyyyyvwvxgihwxyxxxwyyyiiixxxxxxxvwfwvfhwwxxxihxyxxxxxxxxyygvwxWYxxxhhiixwxxxwwxxxxxxxxxxxxxxxxwhghhwwwwxwwwwwvxxwwgwgxxwxwxxxxxxyxyxxxxvwwfwwfvxfwixxixyxyxwwhwgxxxwxwxwxwvhwhxvWwxwgwvwhwwxwgxyxxyhxxxxxxxxxxxxxxxxwxxgxxxgfxhwxwxxwwwxjzzzzxxyyixyxwyxwyyyyywwxyyyyxyxxyyxxxxxxxxxwxyyxxyyyyyhxxyxxhiiyyiyxyyywxxxxhxyyyxzhhxXhHXwxxgggxgwxgxwxxxhhxhvxxhwwgxxwhxxgwwxxWgWvhWvuhxxwxgxxgxhgvxxxxghgvxwhhihwxwwhxhxxxhvxwgwXhxHXXXxyxiYXhYwxxxxwwwxxxxhwghhwxgxhwfxhxXxXwxxxwwwwxhxXhXiiyyyxyxxxxxxhxxxwwxxwwxxxwxwwyyziyxxxxxxxxxxxxyxxxhyyiiyxxxxwxxwwxxxyyxywxxyyyyxixyyyyyhyiyhxxyxxxyyxxhxxxwwxwxwxxwwwixwhyhxxxyxxxxxhxxxxhxxxxxxxxxxxxxxixxwyXygxxxxxxwwxwxwwxxxxxxxxxxxxyxyyyyyiyxyihhXyyyyyxxxxxxxxxxhxxhxxxxxwxwwwxxwwyxyxyyyiyxxhxhhxxwxwwxwwhxxxhyxxyiiyxxxyxxxixhxiyyiyxxxxxxxxxyxxxxyyxxyxxwxyyyxxixxxyxxzyxwwxwxwwwwxxwwxxvgxxxxxxxwwxxxwwwwwwwwhwxwhwxxxxwxxxxxxwhwhxxxwxxxxhxxxwxgxhwhxxxxwwvgwxxwxxwxxyxhxvhygxXwhxhxhxxxxwxwwxxwxwxwwxxwwghyhyYhXiwxxhwxwgwxhxxhxvwxwXxgwwwxxxxwwwvwgfhwxgvwwhgghgwgiYxYiIYwvxXvXgxvwhwhwwxxgxwwgwXvxhgvwwhxwwhgxxxhwhxXwxvYvxxXwhhxIYXhwvhvhghwvxgvgggwwxxxwwwxxwhwhxxwxwxhxhxwxgxghxxwxhxxhxhxxhwhYyXhXihwgwxhgxxxxhgxwwxvwgxxxxxxxxxxxwwxxxxxxxuywwghwwxxxxwxhwxXyyyyyYyxywyxxxixwxwxwgwgxyhhhhxxxxxxxxxxyyxiixxxxxxxyhhhxxxvwwgwxxxWWwwxwxwwwxxxxxxxxxxyyyyhxwwwvixyxhhwxwwwxxiwxwxyxxwxwxxyxwxgghvvgyyyyxyyyyyyyxxxxxyxxxxxwxvxwwgwxxxwxwwxhhhhwwxwwxxxhxhxxxxxyyyxhhhwwxwgxwyyxyyxxxxhxXXYhxhxwwwghhwxvgxwxfwxxxxxxxxxxxxwxwxxxxxxxxxxwxwhvhghxxyxxyxwxxxwwwwxwxxvxxwwxwxwxxwxyhyXxxhihiiiiyxxxywixxxxwiyiiiiixxxxxxxiihhIxxxxxxxxxwvhwxYyyYYYyhyXxXxxxixxiihxwixgxXwwyxxwxxxxwhxxhwxwwhhxwxxgxxxxxxhyxixyyyyyyzzwwhwxxwWxiyixxxxxyxyixhhxxxxxxxwvxwwwgwyyyyxyyxyyyxxyxwxwxxxxxxxgxxhfiXxhyiXywxgyxuwwwvxwhwgxxhxfxxxWxxwxiixiihhwfwwxvhhxxvhihihvwyyvxxwxxxwwwgxwYiyYiYivxwgxwxyhxyuwxxggwwxxvhxxvxxxxxyxwwwggviiiiiiixhxhhyXyyhyxxgxxwzzZzzxxhyyiYyyyhxxwxXihvhwyhixuiiixxwxxwxhxxfxixhxxWyxyxiyyiyyxyyhyzjjyywyiwxgwghwvyiyxxhXiiiiihwwwxgwxyxyywyyXyxvxwgxxyixxWxxwihyiihhxwgxvwwwfwwiiYiixgxxyxyxYXxhYiXxxxxyxhyywxwgxgyywxwxhxxvxwghxwwwwggvxxhhxYiXhjYiiijiyxxxywwxvxvxghxfwgyvxxWxxwwvfwjYiiiihxxWxxwwxgvihhhiyxwxxxywwWyxwxxuxvygxyuZYYYYZiiiHhixwhxfwvxgxgyyXyyxxxxgxwxWxyvxxwxxuwwwfiIiiiixYX9YHhwxhhYuHXxwhxwvXyhwxiyWxxhwwhwgxxwfxxxwhwWwwwHW9XGuwxxwxWhxiviwwwvvwWWxxYXYv8yXxyihXWxwhvgXfxwHiwxXhhuHXH)IHxvxxwxxgxwwhixhYiHgxxghxxgwxhhxhxXxxxxxvxgwwgyxihIvGhxghwxgfuXXX8X8xxvhxxxyixxhxxxwxwwwwxwwyxwhxYxxiiiixwxwwxxhxxxxyxxxxxxxxxxxxwhxxxxyhxhxxxiwhxxxxxxhxyxixxxxxxxwxwhvxxhyhhxxxxxxyXxyyyiiyxxxxxxxyxxxxxhhxyyxyixhxxxyxxxxxxwxxxxxxxxxwwwxxxiiiyixxxywxwwwwwyyyxwxxxxyxxxiiyyyyyixyxhyxxxxyyxxxxwwwwxwxxxhxxhxxhhxyiyxxyxxxxxxwyxwwwwxxxixhxwyxvxhxxxxhhhxwxwwwwyxxxxxxxxxxxxxyxxwyyhywviyyiyxwwxwxwxwxxhxhhxxxhxxxxxxxxxxwwxyiyyixxhxxixhhxxxxxxxxxxxxxxxyyYyYYyzjjzjxxxxhhxwwxwwxxywxxxxwwxwwxxxhhyhhihxhhhhhyyyyyXhxYiHhxvhxxhhvxXvXxhxxwxwXwhwxxwxvwxwgxxwxhxgxxwxiiyXiIXwhwgwwvvxvWwvXhxwvvxwvhwxxhxwxwhwvwxfgwgxhwhHHhiiYyYY9iwxwxhvvWwxwhxxxhhwwwwwgvvwxhwgxxxgfxhwwwwggvxwvwxgwxuXwxxXxXXxxiiiIiIijjjjjxxxxxyxxyywxwxxxxxiiiiiixxxxxjjjjjxxxxxxxxxxxxxxiiiihiyyxxxxxjjjjjxxxxxxxyxywxwiiiiixyyxxxxiyyhhiyxyyxxxxiiii{[[[[xihhhvvhwwgghwwiyhihxxxhxhxxxhhxwwwxxwxvwhhxxwwwwwwwwxYyyYYYyywxwXXxxxxxxxwxwgiwhyhhhxhuhwugwgwxxxwxxxwwwwxwhxxxxxxxxyxwhwwhhgxiiiiixXXxxvvyhgwhxxxxxxyxxhxxhhhxwwxxxxxxhxhxhXhhhxxxxxwwwwwxxxxYiiYYYixyhhxxivwxgvhxxhhhxxxxiyyiiiyxxxxxxxxxxXhxXiiyyixxwxwwwwwwwyxxwwwwxwwxwxxxiiiiiixxxxyiiyyhxxhhhxxxxxxxxxxxwxxwxxxxxxzzjjjYyyYYYyhhxxxhyxhhhyxxxxxxhxhxxhhhhhhzzzzzYiy9Y9YwxgxvhxhxhhxxxhhxhwxvxhvvxxhxxxxxhxxhYiy9Y9ixxxxxyxhvwhhgwwwhwgwhhXXxhwwxxxggxvwhwgwxYYy9Y9YxxxxxvxvhvvgwhwxXxxXxxxxXhxXwxwhvhghxxXxXxXXxxJjj*J*jihhiyyyYyYYyxwwwxxwxwxwwwYxxxxhxxwwhxxvywxwxxxxxixhhywhyhxhhxxxxxywxwyhvxwxxhwxxxwxhvxxwxiiiiihhxxxyxxhhhhwwwwxgvyxhhixyxxihxxxhxyixxxwwvxguwxhwxxxxyyyYYYyxwwhXxxyxwwxvwwvwxgxxhhhwhwhxggxwxxwwwxxhxxxxxwxxxxxxxxxxwwxwwhwyhhhxwXuxxXXhxxfggWwxXxuXXuwwwwwwwxyxwhxiwwhwXXwxwwxwvhxhwwWXwvWxwwufwVwwwwwxxxhxxvwwgwvhgfgvvxhgxwxxvvxwhxfhgvwvwxhxxhxHgvxghvwwGxhxxywwwxwwihhHIxxxxxxwvgxxvxXWXvghvghfxvgxxxxXxhwhvgwwWvhwgvwwgxyixhxxihxixwxwwwwwxhwxxxxxhwwwvwwwvfvvfwxwwxwwwwxxxyxyxyxxxxxxxxwxxwwwxxxxwwwwwwwyxxxvwxwvuwwwxxhxxxxhhvhhxxhxvxxhxwxwwwwxXwxhhhxxhhhiyyiywhwwxvvwgwwghwyYX9WyHHhhxhxhxhxxhhwwxxgvWwhwwwywxwwxwwwwxxwvgwhwfxghhHuVxxhxhxxxxhYXhhxwxxyhwwwwxXvXxgxxxxWxwhhHvWyxxxxyhXwxxwwxgxwggwxxxxxwwhwgxvhvhgvgfvxgyYXxXxwxwxxxgyxihIvGyyyyyxxxyyhxhhxxxxxxxxzjjjjxyyxxyiiihiixyyiyyxxxxixhixwxyyYyYYyxwxyyyyyxxxzzyzzyiyyyxxyxhhyxhwwwwxxxxxxxhxyjjyzwwxwwwwxyxhxxxxxxxxxxxxxxxyyxxyyyiyxxxxxxxwxxwwxwxxyxyxxyyyhxyxxyyxxyyyyyyihXXhxxxxxxhihixxxxwwxhyyixhhXXhxyixyyyxxiiiYYYyxxxxhhyyyvhwvgWWwvxyxyxxyyyhhhhxxxxxiyYiYYywxxyyhyyxXhHHxwwwfxgvxxywxwxwxxxxxxwxxxwwwwxxxxxxvwxgwvwgvhxwxxxxxxwxxxxyyxxxvwxvwvugxwxxhxxxxwxxwxwwxxwwwxxxiyiywvwwghgffxwxxxxyxxxxwxwvgxxXhxXXHXwxxwxwxxxvxWvXxhwxxgvgxgvwwvgxxxwwxxwXwgYiiYY9ixwhwXxhyxxwxwyhXXxhwwxhwwwhxxxXhxXXHhwwwwwvhxxxwvvXXxhwwhxwwwgxgwgwwghxxwxHHhXxxxhxwghxwxhxxhIyyIIIixwxgxhwxxxxxxixhixwwvhxxxxxxxxwxwvxyhywvxxyhxhhxxxxwiwxwxxwwyyYyYYyihhixxxxywxwwwYxxhxwxxxwghxxxxhhiiiiiyxXyxwihggwwxhgwwwxxwxwwxxxxwxxxxxxhxhxwwwwxwxhhxxxxxxxhxwwwxxwwxwxxxxvvhxvwxhwxhvxhvgxxwxxhxxhhhhxyxxxxxxxxxxxxgxhwfxhxxxxxxXXxxwwywwghxhxhxxyyyyxxhxxxhhxyyyxxhixgxxwxwxxxiyxyyxxxyyyyhwxvxvzyzyyyxyxyxxxxyyxxxxxxxxxxxxxxxvxgwwgwxxfwwwxgxxixhxyxxwwxwxwxxxwyuXXxiiiiwywWXxwwvxyuhxwwyxhhixxxyixxxxxxxxxxxxywwxixhxvxxxvwhxyyyYYYyxxxxxxhiHHhxxhhhxhxhxwwhwXYwvxywxxxxxxxvxwvgwxwvxxwxxwgwxxxxxyhxyxxyyxxxyhxxxwxxwxyyyyxxxxxxxxxxyyyxwxxvxwwhxyyyyywwyxxwwwwyxxxxxxwxwxxxhggghvxZYYYYZihwxvxxhxxghxfvxwxyxXyxxxyy[jZZZ[ZxhxxwxvgxvxwxywyiyyvyyxxgvgxxZYYYYZiwxvgxxghxfyxxxxvxggxwyYyuxwhvxxxxyxyXxyKjJJJKjiiyYYYiwwwxWwxxxWxxvyyXxyvwyvxxwxvxwvxvXhyYiYixxiiHihhvgxhvxvxwwixwwwxvxwhwxvyWxxviXxXiYXxxxxgxhxxfxxwxxuxxwyyhwyvxwwhvwwwwggvyxXyxiiiIiIihhxhhYXxxwgxvyyYyywxwxwfxxxxxxWxxiyyYYiYxxxyxwxwwfxxjjJjjxxWxxyyxYhxhhhXxxxyyyYyywwwwgivyyxzzZzzwxgxxvwiwwgwvxxiyhiiiHYXxiXiXhwxwvxxgxxhxfxvghhxvxyXxywwxxvwhwYhyiYXixxWxxxxxxwxvywvxwixwwxvxvvxxYiyYYiihiHiivyxXyyvwgwwwgvxvxWyxvwywhyyvwxwwwWxxxwxxuxwxIiiiIiiXH)HIhywXwxfgvWxxwxwxwxxigxyxyWwhxyXYwWhxggghvwxvxXhvXYI)IYxxwwxxwxxxxxvxwxgwxwYhxXywwWixxiiiXhxXxwvvXxwwxvxgxxwIH)HXxxxvwwxxgxwygxxyiWgxiHivwGxxwvxxxgwwixiiiiHfyxvXhgwwWixwHigvGhggghvxY9\u001a9YwxvxxvhxihxxxxxxxxxxxxxxxwWwwgghvxyxxwgwwxvvxhvvwxhwxxxxxxxxxwwyyxxyyixwwwxwwxhvwxXxxhxhxxhxxxyyyixyyyygwvgvwwwwyyiyyxxxyywxxxyyhxihxyxxxyyyywxwxxxyxhyxxxxxixxixxjzzzzxxywyxwyyyxxxxwyxyxyyyyyyyxxhzzyyiyxwwwwwxxxyxxxihxxxxxyxxhxxxxxxxwxxwwxxyxyyyyyxhhxwwxwwxxwwxxwwxxxxyyyyxxxxxhvwvXXxvxxxxyyhhhhxxxxxwwxwwxwhhxwyyxxxyhxxxxxxxxixxxxxwughhwyyyiiixxxyxyyyxxxyxwwwwgwwfvggwfXhxHXXhxxwwvggghgwgxvvXvvXwXwwhwWwwxghvxxwxxxwwwwxggvgwhhgghXvWWvvhwxxxwggvxvvhxwWxwwxxwwgvwgfhgggxxwxgwXwvggxvhXxXhHhghxwgvvvvxvhvgxgwvwwvgwwwxhwgxwhvwfvwwggvwghgfwvxxwhvxwWwxxxwvwwwgvhwwwhhXhXxzjjzjxxxxxxwxxxxxyyyYyYyxxxxxxxhxhyyyiyxxxxxxxxxxxxwxwwwwwxxxxiyyiixxwwwxwywwwwiiiiixxxxxxyxxxxxyhxhhhhhhxhzzzzzhihhyxhhhxhxwwywyWyyyYyyywxxxwxxxxhxxxwhyxxxwyxwxxYyyYyYyhxxiihiHxwxwxiiyihyxyyxxxxxwwywyWhhhhxxxxyyxyXyiyyxxxxxwhxxhhhwXxxxxwiiiyixxxxxxxxywwwxyxxxyyyziyxxixxiyyyhyyyyyxxyhxhxxxxyxyxxxxxxxxwwwxxxwxxxyyyyyxwhfxxxxyxxxxxxxxxxxhyxxgyxyyxwxxwxxwxxyxyxxxxxxwxyghxxhxxixyxxwwwwxyyyxxyxxwwwxxwxxxwwwxwwgwYYy9iYixxvhvgxwwhwgwxwxxwvxwhxWwhHhhHwwwvxgxxwXhxXiXyIiYYwwxwhxxgxvxwwwxhxxxhwhvhhxwwwgwxwhgxvwwggfhwwxwxwxhYyHXXhhgxwxfgwvvhhfwxXxxXxxvvhwwxwWwxxxwwgwvXvwgWwxwXuXxxwwvwgwhwwwiIiIiIizzjjjYyYYyyyxxxxxxxxxxxxxxwwxwwxyyyiiwwxxxxxxxhyhhxxxxxxhxhhxxxwwwxwxxxwiiyyyxxxxxxxxxxxxxxxxwxwwxxxwxhhhhhhhhihixyyyyyjjjjjxxxiyyiiiiyxxxywxxxxxxxyxxyxxxzzzzzxxxxYyyYYYyxxxxxxxxhxxhihxyyyyywwwxxxwwiyhhxxwwxwxwwxyxhxhyyxyxywxxwxwxihhhihxyyyyywxhwgxxwYyYYyyyxxxxxhxXYXhvvxwwvvXXhwwyvwhgwxwwwxxwxxxxhhhhxxxhxhxiyiiiiixwxwxxxwwxvxwxxwwxxxxxxxxxxihHHhxxxxxwxwwwwxhXXgiyiihixyyyxxwhxvxgwgwhwvgvgwhvxxxwxxxwxxxhxhxxxxxxxxwxwwxwxyxxvvxhvvvvwvwwwxxxxxxwyyxxxxhwwwwwxwwwxwwxwyyvhwuXvuggxuhxxxhxhhxxhhhxhxxixxxxwxwxxxxxxxyxxyxxxxwxwwwgwvhgvggwfYYy9Y9YhHHihxxxxxxWvgxYwwwxxxgghwwwvgfwxhhxwxxwwgwXYhHXIhwwwggvfxhwxxxxxxwYWxwwwxhwhhiwwxwXwXhwvxhxiYhxHXHhwhwhwwxwhxxvWvXxhwwgwxxwgwhxwWvwgWwwwwvgwfgghfgwxhvvgxwXwXxxwwxxxIiIIIiwxwvxixxxxwyxxwxxxyyyyyYyhHhhhyxxxixwwxwxxxvwXwwxxuxxyxyhxxxwxyxxwyhxxwvvwwwwgxXxwwwwxxxiivwwXwhhxuxhxxxxxxhxxxwxyxxwwwvvwvxxvxxxxxxhxhxxyXyyyYyYyxxyyiiiiiwhxxxxwxxxxxxxxxxihhhIwwwxwxwwxwwxxxxwxyXiihiyiyxxwwvhxwxYvxxxiyixxxhxxwxwxxwggxhvxxhwxyixxxxwwwwwwxxxxwvxwwwgwvxxvgxwwgwuvwxxhxvwwwxwwwwwxxxxxhxxyyxhyxyxiixxxxhhhxwwxxwwxwwvxwxwxxxxxxxxvxwgwgXgvxxxiyywvwhfwvgvvwwxxxwxwwwxxwwwwxxxhhxwihuyiXgvHxxywwwxyxyxxxxwwwvgygxgwxwwxghwwhHhhxvxwhxvhgvgvwiXxhwwwHhXhhxwwxxxxwxhxiwhxyXvxyxhxxhgtxxgvwwGXXwhghhwxwxhwhwgxxgWwvhXXXyxhhxxxhhxgwxwhxxxxxxxYhuyxXw8whgwxWXwVxwxxxwxhhxxxhxggiHhhHxxuxXuxWwwWwhWvXgXvXgihHvVwwvwifwfgwwfxxyxxxwwwxxwwxwwiwhxgxxhxhxxwxxwxwxwgVxwgXwehhvghvgxvhggxhwxvwXXiXXwwxvxhfxfwwwgxwhXhxgwhvWwhgWwxxxxxxxxhxhghgxvhXwVuwwvwvvgwxxxxxwxxwwwxwwwxxxxxxxxgghhxwxwwxwwwvxwgwvfvvhwxvxvggyhxxxxxxyyxxxwwwwwwxhyixyixxxxvwhwxwwggxxghxwxwxwxwwwxxxxhXWhwxxxxwwwxxxxyiyyxhxxhhhgwwgwwwwwhwvhwxhyhhhxxxxxxhixxxxywxwxxxwxwxwwxhxxhhxxxxxyxyywiwhxyyyxyyyixgvwwwyxxxyxxihxyyxxYxxxiyihiixyyyywXxxxxwuhwhwgwgwhxixxxyxxxyxxwgwgxxxyyywxxwxxvwwxvwwffxxxxxxxxxxwxwxxwxxxywwvwwxwwwxxxxxxxxxwxxwxwxyyyixxxhxxhwxxxwxxyyyxfhwxvwwgwhxxwxwxwwxxxxwwxxwwwxwwwxhxxxxyyxxxxzwyyxxxxxhhxxxwxxxwxxxxyxyyyxxxxxyyyygxxwxwxwwxvxwhxyyyxyyxxxxxyxxhxxhxvwhwxwwWxxxxxyyxyxizzzwhxwhiiyxxyyywwxxywwwwxxxyxxjxxyxxxzyywhghwwhYiyiYYixxwwfwwyxhyxuhihihwgwwgvxxwxxhixiiihwwwxvwhwvxwgxxvyywvxggwiXxyhiXhvhxxvxgxhxxfxyxxxwxwwxgwvwxxhxxvxwygxyuxxwxxWxxwiiiiiiiZYYYYZiywxWxxvxxWxxwxwhxfihhhiwwwfxxwxyuiYiiijhxxwwvvihHiiwygvyxwxxxywwWvfwwyyXyyjYiiijiwgxvxghxfxxwxxuyvxgyxuxxxxgyxxxyvxxwggxxWxxwiIiiiixiXxYhYXhwgxxxyyhxywwwfwwxxxgxhhyiiihyyxyxxxxxwgxxiiYiixxWxxwyyiiiiihwxgvwxyXyyvwgwwwgvxyxyxwxxwhxxvwxwwwgxwwxxggyiXhxiYhhxixxhxWyyxyyiyyxwihyhuwwhgvxxwxxyYyyihxxgxwxyxyixiiiyyyyhxhhxXhwiXxxvzzZzzwgxwiywxxhxfjjzxyhyyyxyhxhhiyxxyXHI)HXxwxvxxgxxwxxxhxWwwiixYhhHYxxXYWv8gxxuhhfwgXXxwgxhWfvwHwGX9WHuwxxhXvwXxvwxxxwxgxwxwxhwhhXxiyyXwwwwxWhxxxwgxHY9XYwwwviivwvWyhwixyWIyhigvxGhxhXiuwHxhhxhXYxhhhuwHgghxxwgxxxwf8X8XXwwxxwxwwwwxwxwwwyyyxgwwxwxyxxhxxhhxxxxxxxwxwwwxxxzzxxxxxyyxxxxxxxxwxwxhwXvgxwyxhxxxixhhyhxxxwwwvwxvhvvwvvxyxyxxxxxxyyywwxiugxgxxxxyyyyyixxxxxxxxxxxxxxxyxiwhgvyxwXwixxxyxxxhxxxyiiyxxyxxywwwxgwxyyxxhixwwxxxxyxxxwwwxxxwxwxxxxwwwxhhxyxxxhixxxxxxxxxyyxxxwyyhwyvwgvhvWWwvyyywxwwwwxxxhxhxxxxxhhxxhxwxxwwwwwvwffgxwxhxhxhxxhxxyywwwwwwxwxwxwwwxvwwxvvghhvxxxxhxxhhhxwxwxwwwyxxxxxxxxxxwwxwwxxwxxxwwwwfwvgwwggwfiXyhxIyyyyyhwvxxhgiyyyYxywwiXxxgyhxixhxXyhwxyhhwhxxXwyyixyyjyyyixhhxxxhxYywxXhwhxxXwzzzzZixhiihzjjyyyxxywxwwwhxhxYwuxghhwxxxxxxxhxhxxxxxhhXXhxxxxxxxxwwwwxxyiiYiYixyyxxxxwxwvghixwxxxhxhxxxxxiyyiiiyxxxxxhXXvwfwhxxwwxxxwxiyhyxxhxyyyyyyyhvxxzhxxhxxxxxxxxxyyyyxxwwuyxggyyyyyyyyyxxxxxxyxwxxvxwwgwxhhxhyyxiyyiyiwxyxyhXXxhxxxxxwxwxxYiiYiYyyxyvwwggxgvyyiyyiyiyxjzzjzjxxxxxxXhxXxuyvxhxyyxxxxxxyxxxxyyyhvyhxihxxhxxxxyxyxyxwwwxwwxxxxxxwfxhhyixxxhxxxxxyyyxxwwxxxwxwwwxwwwyxxxxwxvwiwxXwyxXwxxxxwxxxxigzzzzZyixxxxiIhiiIwhhxxxvwvhgxxgxwjjjjJxwixxixxxxxxwxYgixXyyyzzzzZxxxxxyy{{{{[yyyxyxxywwwhwwwxxgiYyhhiYyxwixixxxxwxxwxxxhxxwxwxxwwwxyxyxyxixyxxwxxxxxxhxyxxxyxixixiwwxxwwxwhxxxxxxxxyxxxxxxxxwxwxhxxvxyhhixxxxxhhxxhxxhhhxxyxxvwxhhxwxxxxhhxxxxxwwwwwxwwxxxxxxyxxhiXXhyyxxxhxhxxxxxxxxxxyxxxxxxxxxxxhwghhwhxwxgwivxgxwywwwxyxxxwxxxxwyyyxxxxxwxwxgxvyyyyyyyyhxhxxxiyyxxxyxxwxwxxwwxxxxwxxxyyxxxyyxxxxxxwvxxxgwwuyhwwhvhixxxyyyyyixxxyvvyhxxxvwwxxxxxyxxhxxxxxyxxxvhwXhwxuxxxxxyhxihxixxxyyyyywyxxxwwfhwwgvwggwfhXywhXxhhxxxhxhzzzzZiwxxhYwjxxxgihixxxXxxxiyyyhwyxiXwziihwvhxxgyyyXXyhyHyyiyyyYwhwwhXhyyyzjjxhihiwywyxxwxgyxxyhhxhxXuwhvvXvghwuyyxxxxxhxihxixxyyxxxxxyxhXhhhxyiiiiiYyxxyxiYxihxwixhixhxyiyxwxxYyYYiiyxxxyixXHhhxxwyxxgyxxxyxxxhxhxwxwyxwwwxxxhhxxxxixxwhxwwwwxhxxxhxhxxxyxxxxyyxxyxxyhyyxhxxxxxxxxwxwwxxxxxyxxxxyxyxixyyxyyyxyihhXhwwvWXyhxxhhhxwxwwwxxxxxhhxxxxxxhxXXhxxyxxxxYiiYYYiyxyygwvxXXxvwxxwxxwxxxhxxhhhxxhxixxxiyyiiiyxxxyxyyyXhHHxgvvvvvyyyyyxxxxwwxyxyhyxxwhwxwvxyxxyyyzzyyyivhwxwxwhyxhyhxxyyxyxxxxxxxxxyyyyxxxxxyyyygwxxwiXxYxHyyyxiyyyYwhxhxhwwwhYwxwhhwxwxghiIihiIhwhwxwhxyyyjjjjJyyyyyhXxiyIvhxhxvxwiyyyYwgxxhXhwxwwhygxwZzzzZwxwhxyhwwYYyyYy9xhvhfxwyyxyxxxxyyxyyzyxxxwwxyyxxwxwxwxyyyhxxxwwxwwwhxxhxxxyyyyxxxyxxxwwxxwwwvxxvxgwvvgxwwxwwywwwxxyyyyyyyyygxxgwxyyxxwwxxxyxxhyhxyhxxxxxwxwxwwwxxyyyyxxxxxxxwwxxxxwgwxvxghxwxxyxwwyyyyixyxxhxzzzyyxyywxgwvyyyzyyxxhxhyxxyxxvhxxWwxxxhxyiyiyyxxyxxxxxxgwxyxywxzxxxxxxxwwxxxxxyyhxxxwwwwxxyxwwxwwwhhxxwxxxxwwxxxxxxyyyyyyxhxyyyxhxwxgwhxXxxxxxxxxyixyhxxxxhxxxxxwxgwxvxxxxhxxxhwwxxwwwwxywxxxyyyhxhxhwwwwwxxwzxxxxhxxxhxxxxxxxxxxxxhxgwhhxvhhxxxiXyxxwxxyyiyyxxgwgvYyyiiYYxxwxxwxvwwxjjjjjxvxgwvihxxxhXwwvxwyyiyyyxxwvgxxvzzZzzyyxxwggxvixiyyiIxhyhxxuYwxhxxfxxWxxyyYyyhxhxyYiyyhyyivhXxxvyvhhxiuiiixxwxvyyhxyihxXhhXyxxyzzjzzyxyhyyzjjyyxwwhwgxvwxwxgihxiyhxyXxhyxxhWxxxwxwxzzZzzwxwxwfxxyxxgxxwiyyiiiXxxyxyiwxxwwfxxjjJjjxxgxwyyhhyxxxWyxyxizzZzzwhwwiyyy{{[{{xwxwxxwyiwwhyxixiiiiHhhxhXiXyyxyyzzjzzivxhhyuwhiwgxxxwxxvyYyiyhxxWxxxxyyhiiixyyxhyxhxuYxvxXhivyyYyyxwwwghvyxhyyjjzwxxhxfxyyhxhyiyxhxXihiyyx{kyxwxyyxZzizZyyxyyyxwyxw{{{{{[yyxihiyyyxw{kxxxȌȌlxxxxjzYzjxxwxwwxxyxyxxwxwxyyyyxwgwvxxxxxxhxyyyyxyyxxywxxxwyxwxwhvvgxxxxwwxxyyyyxxxyyxxwxvxwwwvwwvvwwwgxwgwwwgwuxxxxxyhyxxxxxhiivxwfwwvvfwxxxxwwgxvxyxyywwxwxwxwwwwvwhvwwwwwwwwxxxwxxxxyyxxxxwxxxxxxxxxxxvwfxwwwwwxwxxywxixxyxhxyxhxxxYxxyyxhxxixhxixwxwhxxvxwwxxwxxxxyxxhxxwxhvwxwwwxwxwxhyixxxxwxhvwwxyiyyyyyxxxwhvxxxxxyxyxxxxxxhwvwxxwwxxxwwwxiyiiyiixxxxxxhHhhhwxwxxwwwuhvwxhwvwwWxwguhihxxyxxhxxxxxxxYyYYyyywwwhxvhXxxXhxwXxhhwxwxwwwxxxyyyiyiihyyfwvgwxwghhWWvxwvexxxxxwwxxgvXwXhWxvxhghxxwxxxwwxwxuxXuxXwwWxhxhxhygHhfuVvyfwgfwgwwggwwwXxvWhhvxwxxxxxwxXgxgxxhxhxIHhhxxgwXwwwVvxvxhfxgwwwghxhvxwxxyxxhhvghvghfxvgwiwwgwvxyxxxxxxxxXXXhuxxfXwxwvVguxwwggvxyhxhxxwhwwwxwxwwwwxxhxwxwwwxwwxhxvxwxwwxXxwwyyyYyYyxxxyhyiwwxgwvvvxhhhhxxxxxxxxhhxxxxxxxxiiiiiwwhggvxxxXxwwuxwxgxyyxyyiyyyyyzhxwhhxxxxxxxxxxxxyxywwwwyxxxgfzyyyxxyyyyxxxxxxxxwvwxwgwxvxwxwwxvwwvwxhxxixxxxxxhxxvwwvxxxvyxwxwwxxxwwwwvwgwviyxixyxwxxwywguhwwwgxyxyxyxyxwxxxxxxxxxxxwvwxgwyyxhhxxhyxyyyiyywxxxxwwxwyWxhxhhhhxywxxwhxxxxwhxxhxhxxxxxyyyYyyyhihiHxhxxxxxhihiyYyyYyYyxwwxwxWyxxwxxxiiyiyyxyXxxhhxxhhhxxxxxwwXxxxxwhhvHxguWyXhhXxwwwwxwgxgwxxghfxxxxywxwwwwwyxhhxhXgHyfvVxxhhgvhgvhhxxfghIhhHwhiwwxgxvxwXgxWxwwvgxwhxWwYiwx8iWWxxxxhiwxxWwxwxxxxxxwywyxxwxgxxxxyYXxXwxxwgwxxggwiiwIxgvGhwxyvxxixxxxxxxixxxxxxxxxxxyxxywxwxwxxxxxxhxxxxwhwwxxwwwwwxyixxxxywxxvxwxxxYiixghwxxxxxxxhyhhxxxxyvwvhwxhhvxhxhhwwwxhyhhxxyyixyyyyxyvwwfggxgwyxxxxxxxxhwxxwwxwwxxwxvxWwxxuxxxxvhwxxhwxxxxxhxwwxxyhiiiiyyxxxyyyyyywwhwhwwvhhxuXwxxXxwxwxwwwxhxxxxxhxhzzzwwwxxvwxyyyxxyhxxxyxwxwwwxxyyxxxxwxxwxxyxxxxyxxxxwgxwwwxxxxxxwyiyyxxyxwxwhXxxhwwggwwwxwxxgwxxxxxxxyxxwxxyxwwxxxxixxxxwwwvxxxxxxxxwwhwvgWhvxxxxxxxxhhyyyyiiyyvhwvxwwwgwwhxwXxhwwWwwwWxxghgvxxxxxxyxwxiXXhhwwxwywwxwwigwwhggvhxvXywWxxxhxhhxxxxxwvwgxwWxgwxwyxxhwwvwvwgfyggwwfxxxxwxXggxWxwwVxxyxxxgxhxxwXXiXXwxxxxwyiwwhhhhhhwwgxhxhwxwxwxxxixwHigvGuwwvwvwwwxxyxxxxwwwwxwyywxxxvxwwvwhxxxxxxyxwxwxxxxyvghwvwwwwwwwhxxxxwwvgxgvfwvyhyywwxwxxxxxxxxwvwvxwywxivhxhxhwxxxwwwvvhxxxwxwxxywxxxgvxgwxxwwwxwwwhxxxxxxxxwhiwxwwwwxwxxxxhxxwxwxxxxxwwhwwxxwwxxhxxwhxwyXvxxwwxxxwxwwwxxxywwwxvhghhwwxggxxxxxxxxxxxxgxwgwwwwfyyyyywwhwwxhvxxxhxhihxyxxwxxwwxyyxyxxwxxxxxwvwvxvxxxxwxxyyxyhxxhxhhvxhxvyxxiyhxxhxxwwxWvhhxuxxhxwwwwwxxxhhxwwhwxWxwyxyxxixyxxxhxxyyxxhwwgwxxxyyyzyyxhyyyyhwfwfwwwwxwxxxhxxiyxixxixyyyyyxxxxxyyyxhwxxgwhxvHXgvWxxxxxxxxxyihhxgwwWwxhhgwhhhxhwxgxhxhwxivXhwWwxwXvXwhxxxxyixyiwwiigxxxxhxhiyiyiwxuwWwhxwvghhihhxiwXxwwwwxgxxggwxxgwXvhgWwwhXwhwhvxvxhfxgwwwgxxxxxxxxyhhhhfXwhwwVfhvwwhxwvGhxxxgxvhhwxvvfwwxwwxxgwixhxhHhhxwxwwwwuywWwfwVgxWggwugwvgggxvfvwvxxxxhvxggxwwxwwwXxXXwxwuuwvhxhhwgVwwXwhhwwxXxixxxxxXWXwxgxxvxxxxxxxxxhvhhxgvvvfvyxuhxwwvVwhxxhxwuWwwxwwwvgwwvwhwhxvWWxvwxyhyhxxihihyyxyxxxyyxgYxhywvHxywXXhhgxwgxwwwggxwhxixxYvwwxvgvWwxwhhhhxvhhXxgfWxxxxxhvwyvxxhiyiyxyxxyxxhihixxxxxhvhgvgfvxghhhhhwiwwvgixwvWghxxhXwwWxxhihxxxxxvxwhxigwvghwwvffwvxxxxxwwxxxvwgwugxxhhvWxxxxxxyyhvxgwXWxhxwhwxxvhXhhxwwyxwwxWivxhiivHxxwxxwxxhwxxixgwxhwgWwvxxxyyxwxwxxxwxwhgghhhhhxxxxfyxvXhgwwWfhvwxGhwwGxhhxxxxxyyygwxxhWhwXXhxgwwWwggxvhiXXxgYxXiwGgxvhhgxvvvwwxxhxxxwxxwwhxxhiXwxxyxxxwywxxxwgiuxiXyGxwgxxhwwwwvxwwwywyghhHHyxgxwhwgxhhxxxhhXXYxxxxxxxxWiuxxXy8hxhxhyyyxxxxzywwxxwwwwxxxxhxxxxxxxwgxwvxxwwwwwxxwxxhhxyxxxxhxxxhxXxxyxhyxxzxxxxhhxxxxxxxxxxxxxgxhhhxvwxwwgwyyyxxxxyyyywywwwwwwwwwxxixhxxxyyyyxxxxwwwxxwvwwwgwxxxiiyyyxxxxxxxxxxxwwgvvwxxwxwgwxxxxxxxxxyyyyyyyzwgwwwwxxXxxxxxyiixxxyxhxxxhhxxxxwwwxhhyyyhhyzzzyxxyxxxxxxwwvhgxxhwwxwhhxxxxyxyyxwwwwwwxxxxxwxwwyyyxxxwxwwxxhxzzwhxxhxyhxyxxxhyxxxxxxxxxxxxxxxxxxxxgwxhzzyyyiyyixwxwwwwwxxxxwgwxwvxxXhxxyyxyhyyywwxvgwxxxxxyyxyxxhxhxxyxixyxxzzwhghwxhxwhhwggxhxxhxxxxyxxxxhxxhyxxxxxxhhhxxwwwxxxxxxxxxxxhhxxxywwwwwxxxxxhhxwhhwggxxxxwyiiiiyxxxxxxxxxxxxxxxyiiyyYXxXwhgwwxxgWxxxwwgwwwwwivgfvfgxhxhxwxxxxxXXyXXvxxxxxhxwhixvXwgwgwhghvwwxwxxwgguxxxwxwxwxwxxxxwwwhxgWgvxxwxxhwuWhhxXhwxxwxywwwywwwhhhhhwxxwghixxxxwwxxxxxggvyvxyivGhhxhxhXwxxxwxggwxxxghihXXywxwwwwxxxghWhguugxxwvvwwwxgxhhgxvggwxhxhgvwxxwvvwxxgwwxhxhxXhXXwwwgwvxxxhhvwvfyhwghvxyxxwwwwxxxXxxhxhhYhyxyhhwxwwwwxxxggvxxwhfxxxggwxxxhxvgvhwXWwiiyixiXxxxhxwwwgwvwxwwxvfwxxgvwwxgwwffgwhwggWwvhYyhxXhxxvwWxuxwwxxwXvwwwxvgfgwwwhgwvwwwggvwwhggvxwwwwwxxxxhxhhxiihiXhxhXihxxhvwwhhXwuvxvxxWhugwwggwgwxwwgvwxwvwffxihXhYhwwwxwwWxwxwXwuxxvxhxghvxxxxhhhHhiYyYiYYxwgwxhvxxwWXvvxxwwfggwxvxvgvhvwwgwwgfgfvxwhvwWWwxwxxxxWwiiiiihIXXY9wxwxgxhwgXwghwveGxYxixYHwwxxxhxhhwxwgvfXxwhxhxxwWXWwGX8txhXhwwwXxXxhxixuHvwxwxxwgwxhhxhYwgxxwxxhXwhyXxYu8YHXI)yXxhxhxvHiYwxxwiXhhhwxwgigvgwwwxvwWyiyxxhXxxwvwxwgwvhgxxhhwixiwtHXXXY9iYyYiYYxxxvwgwxwwwwxhvwxvwggvxxxxxXXxxxxxxYiyYYYixxxhhxxxvggxhxggvhxxXhxxxhxvxxxggiiyYiYYvwwxxggxxxhhxxxxgwggvxxhXXxxxxxXxxxXjjjJjJjwhvyhyYvXwwwxvxxxgWvxwwwXWgvxxhXxxxxxwwxxxxvXghyhgtXxxxxxxhhxHHhhvggxhxvfgwgwwghwwwwxwxxwwgvxhhXXwhwXhhwtXxyxxvfxxhwxxywxwwwwxxxxwxwwwhxxyxxxwgwwxggwxxxXXhwixiwtHhhxXxXXwwxxggwxwwhvvxvxxWXvxwxwwvfwxxxgWYiiYiYiwwxxxwwwwxwwvfwhhxHHxwwwwwWxwhXxXhXhxxxvwXWvwwvwgwxyxxhXXxxxvwwgwwwwwwhwgxxxhxiiyIiIixYyXhhhywvwxvwxxwxfvvxfxxgvggxwfgxxxXXwwwwhgxiYxiyiYxxxXWhhxgwvxwxwwwwvwgwxwgvwxwvvwxvvxwgwyYyiiYihihHHwwvxxxWvvvwwgwxvhwvwWWwwwxxhvwxvxvxgWwwvxwwxwvxgwvxxxWwiIiiiiiXIXI)wxwyxxYuXhhhwwWyYvxwxyXxwvxxxwgwggghvxwxxxwwIIYJ)wxxxxwwxxviwxvwufXvxwiwhXwfWiIihyiIghxxXwvXyywxXxwwXXHHI)xvxxxxwxxgwyXwyghyXggghxvwwxxxxwgwiYyhhiYxxwxvxwwgwwhxhiIvGyivhgwvHY9Y:\u001aiYyYyiihhhHhwwwwwwffxxxvhxhvwvwwwgwuvwwwvwggwwwwwgvyiyhiiXxxwwvvwwxvwxggvwwgxWwuwwxxxxxxxWhxhhggwhhxiyXhxwwxvwxxwhuvwwvvxxwwwgwwwwggvxvwfxxxXxxxxWWiiiiiiiiiyYiYYxwhvwxhhgwwWXwxvxvxXWvvwgvxWwuxwwvxwxxwvxfvihXhYhxxxxihhHHhvgwxgwxwwgvwhwvxgffxwwvxwxwgwxwxWXwYhxXXXhxxxhvxywxXguwwvxxwxgvfxxxiwhgvwxwhgwvwxwxwhwgxxxWWiyIiIiwwgxxwXfuXxhhHhxxxxxvhxwgxwxxwhvwfvgxyxxhgwgywwgvwffgvxfxxheWxxxwwwwwgxgWguxwwgXigvhwhXWwxxwwwggWwvxhVwhxwwwxwwwxxxwhiXxwxxXwwuuWxxxxxwggxvhvhhxgvvvfxXXXhuxxxxwxghwhhfwXhXxXhXhghwwgWwvxxxvxvwwggvwhwhvgwxwwwwwwggwwwxwwxhgghgWuugwwwgvwffgxwwvwwgwuvvhwwgwwxfgfwvxwwhxwxfvfxhhxhhhhwwghvhWgwwvxvxWWuxxwxxxwwxxvwwwxgWwwwwwgvggffwvhvxwvhvwxvwxwwxgwvxxxwXhhXhxXHHI)yixXxWu8xxhwhwxwWyXwyxwyXxXxhhYvGhhhwwwghxhhuWwWXGX8txgwwwxxhXxxxvwxxxxgwiXxXxhvGhxxYxhXwgwveGxwxwgHYHY8xxwxxxhyXyihHwhhwXhwfVxwxxvxwwgwxiyhxyXwiwwvgixwvWiiwIxgvGgxxhfXX8X8hhxhhhhxwwwwghxxvxvxXguvxwxwwwvwgxwwgxxxggiiiYYYixxxwvxxwgxwwyhxxXhwxwwwwxhxhhhXvxxxggvvyxxWhuvwwvxwxwxvvvxhhHXwxxxvvvxxxhhiyyiiiixhxYihhwwxxXWwxxxgWwwwwffgwxggvxxwwwwwxgwhWxuyXyiiiYwwxvxhwwxfvfwhwgwhWgwgwwggwwwgxwgvxxxhhxxxxvxggwxixiXyhxwxxxwwwwwwxxxguvvwxxwxfwfwwwxvvvxxgvxxxgwvxxxhhwxxxhhhYyhhhiXhxXXYhxhhggwxxxxxxihhXXxwxwvfwxxxhxvxxxgYiyYYYixxxXgxxxhxxxggwhhxHHxxxWXxxhYhxhXhhhhxgwvxvvwxWWuxxwxxxwwxxxgwvxhhHXxxxwxvvvxxxhhwxIyyiIiYxwvxgXwwwugyxyhxxxxhwvxhhxhhihhxwwxgxwgwvwwxvxXghvxhhwXxxxwxggvxyiyxwhwwhyxxxxxwxuxhhvWxwgxwhwxWgvxxihhxhhhgxwxxwhvwfvgwgxwxXiwhwhvwxWWvxxxyxxhxxwhfxvhxgwXIXHX9xxwxgwxwxxwwyXyXyhHhxwXwyfvgWwhxuxhgvfXhhgxxWwufGIIYI*ggvxXwufGxwxxxxhxxwwxhyIiihiIxwwxxwwxwwxgxhHYXY9vxwxvyhwveXYxhyiHXhhwxgvgVxxhfhivfVWyYyYyY9ixvhhgvfVWxxxxxwxxww9YYY9hxvhxwvWxxwxvwxWhxwxhhxxxwwwxgxxgwvxxxxyfhxveWvxxwwwwwwgvhhxXhxxxxwxwxxxwxxxxhhHhyiuxYxgvXvxvwwwwgguxhxxhwwwxwwwgxgvhhvvvfwghwvxxxxxwwxxxXXyxviwvGxxvhxxwvWxhhXXfygwwwgwwffgvwvhxwxxxxxwwxxxxhhiwhwwXxxxwxhwgwxxWgvhhihhwgxwixgwgwwhhgvvxxwwvwxgWvxxgwWxwfwXxxwwxwxwyxwyxxwxwwwwxxxwwwxxgxyxxxxXXXhuwxxwxggvyivhgwvHhhvhxWwvXwxwgwxgWgvxxxxxhhwxxhXwwggWguxxyxhwxwwWXhxvygvXxxxxyxfxwxxwhwwfvgwxxgYhwxxxxggvyxyhWxwwxwhwuwgyxixxhihxhhhxxywxwxgihhhhhhwxxwgwxxggwxxxxhxghwxgfuXxhVhwgwVuhxxwwwwxxxxgwgxhxwggxhvghxvfgXXyXXvfwwwywgwgfvfxXfixfgvXvhgwhWXxxwxxwwwxxxyxwhwwhgwxxxxxxxxxwwxgexxwwgWhhxHHvwvwihWxwxxXxwuuWwxhvhvxWWvwhwwxYhfxwxxwhwwfvgxxxxyxhxxhhfxvxwguXwgwxghhxxxxhwxxwwwxxxxxwwwwwwxxiixxyxxxxxhxxxxxyxxxxxxxxhwgwxghhxxxxhxxxiiyxxxxXXIIYIYxwxwvwwvxhhxuWyhwxyiuXxvwxwwwviyyxvvGwxwwZIIIZxxuhhWwhxxyywWvwxwxwwvixxiiiYwxwwvxwxvxhwvVYIYIIyhxyxwwWihwyxyuXvghxxvxvwvwVyyhiiyIwxvxwwwvgvyvxyivGZ:Z:ZYIYIIxvxxxiGhwvxuwuvFyhyxyHxwvwwwwvvggxxxxwhwgwwwwHwXYXHswxxwxghxyxxyxw7wwyvgivwvWxXxyyyXgxwxhWyvxhxxGYXIYIxwgwxxxygxxiyuXgwfwwxxwwwvxhxYxwxxwxwxgxvxXvVyxviwvGXXXY9XYIYIxyvhwxvwuVwwwwxixxyHhvfhiwfvUwxxwwxuvhxvuFYJIJYwwwwxgwwxxxihvhfwfvUyyyyyy9xxuhvwvuFxxwwxxIYIYXxxwxwxgyixxxHwxxvXxwfVxxwxwxixiyyiIvyxuhxwwvVxxfXwxwvVxxwwYY9YYIYIXYxxwwxxxxxhxgwwygxixyuXivgwywvvwWwxiyvvGhxxgwWwHXwwYXHswvwuxhuvFxwxwxxgxwvwwwwvyXxyyxXwwwwxghxxwwwxwwvIIYIYwxxxyy7hyyxyHXxxvxwvgVxxxhyvGhxxYixxxxvGgfwgxgxv9YXXXYiyYYZ\u0019xxhxhhgvhxihhihihwhxxhhhwXXxxxhxihhZZzZZZ\u001ahhixhhwgxhgvxhwxhhhhwZzizZhhixhxxwhhghvZiyYYY\u0019gwhxghvihiXxXYyhxgwhhxvjzYzjxgxhhhxvyYXxXxxxXXJjjJJJ\n"
  },
  {
    "path": "examples/games/.Tables/FlipChce.ptb",
    "content": "EETDUEUUECDDEUUUDTUED4CDEU423D3DDC4CD4DDCCDDEUUEETUECDCEDD3DDD#3\u0012DDED4C4BT$C42C42CDUUUUSDTDUUDDTU5CDDCDDDUUDDTUETETUUEDDUU3D#UUUU5TESU%C43TE33SSDEDUUDDTU5D4DTDDD3TD2D#EDDD$C4CD\u00142##C4C4CUUUDDUU3D#UUUU5TESU%C43TE33SETUUDD3TECD44D43DUU3DDDUD33CDCD333pvwwwwwgvfwwwwwwvvgwvwwwvvgvvwwwfwwwwgfgwvwwvwwwvvwvgvvgfwvVegwwfwvfgwwvfwvfgfwvwwwwwwwwwffvwefwggvwwwwfwwwwwwxwwwwwfgvvwwwwvwxgwefwuwwewwwwwwvwffwwufvwwwwgvwggvwfffwefwfffUvufvfwwvwwwxggvvvwwwuwwwwufvwwVwwwwwgwvwwwwwfgwgvwXfvwwwWvWgfgvgugxgwwvxhgwvvfwwvggwggufgwwvgfgVvggfuvvvfVwvvfxvvgwwwwvfwggfgVvffFfwgwfffugggVufeeffwxhgwwvwwwgfggwfgwwgfwwgvvwugxxgwggvvfVwxwwwwfvgwgUfvfvWgwvvvwvwgfgwwegfggwVgvwfUggfgvfUfffgFfvVvfgvxgwggwwVVfhgwwwfvgwwVvvfvgWwgvvVgvgwgfuggvfvvvgvvXwuvWvfvfvuvvvgwggggewwvffwgvefvgfvVfwfgVvfffwfgggvwwfwwgvvvvvVwVfgVfFuffwfffewfVVefeefvvwfgfvgwwegvwfegwwgvxwwfwwwwvwwgxfwwgfVvwwwgwvwwVffgvvgvgxgvwwwfgvwgvgvffgegvgeUvegfwVfffgEfVVefgfwghfvwfVVvwwwgvvvwVefgvvWuhwvwfWffwfvgfgggfgwgVvvgwwfwfwvfvUgxxxfwxxgwvgfxwvgvwwgvvggwfgfvVvffVvfwfvgvvgewwvffvggfuvwffvVgeEfVwgvgfeefffUVfeffvvxxvvwfwgwgfwwwwfvwwfwwgvwwwwvxgwffwvVVfxvwwwvfwvgfUvvfWwufffwgwgewvggevgvgegffVeegfgvgfUfeWfFefVfgxwwvgwvVffxwwwwvfwvgfVvvggwgvwvfgwgvfwffVgfggwwgfwgwuWvVfvfvgvwvwgggwfvwwgwgggvvwvwvffWfgggevvvWfvgwfvwwvggwgfvuvgfgWvffFfvggvffeewgvUfvevfggggwvvwvwfggwggewggvxwwfvwwhwwwggwwfVVgwwwwfvggwVfwfvgWhwwvwvvfgwwggvwgwVfwvfWevfgfvwVffgfFffVegfggggwwfWfgwwwwfvwwfVewfvWghwwvvfgwgwefgfWgvvvvvVvWxvuvfwfvufwgwwwgxwwffwwwwwwwvgfugwwwwfwfwwfvwwgwwwwffwwvwwwwwfvugfvfwffgUfwwwgvgfuwwgvvfvugvxxwwvwwwwvfwvwwvvvwfwwwwgvwwwwwwwwwwwvwfVxwxwwxwfwggvvwwuguvwwvvwgwvwgwfvwgfwwwwfgwfwgfgvfwvVeggvvgvwwvwwwwgfWxvwwwwwuggvvwvWvwwwwfVwwvwwgfWwfwwwggwwwwVwvgwfwewwwxwxwwwxwggwwwxwxwwwwwxwxwxxwwwxwvvwwxwwwgwwwwwggwwwwwwwvvwxwwwwwwgvxxwwwwwxwwxwvvxwwwwwwwxwgvxwxwxwwwgvwwwxwwwwwwwwwwgvwwxwggvwxwxwwwggwwwxwwgvwwwwxwxwvvwwwwxggxxwfxfwgwwwwxwwwwvwwwwwfgvvggwwgffevwfVefVVvevvwvwwgwwggguvwwwgfeeuVgwwggVwfvfUgVffveUVfwwwwwwvxgwgvwgWvvwwvvwwgvwggvvwwwvfvvfggwwxgwwwgfgfvgvfVfvgwvwvwgvgfWvvwwwfeVffUfwfvgfffvgeVeeVfUFexwvfvvfgxwwxgwwwwfgfvgwfVfwwwvvfwwevefvfVgefgwvwwffgffeVvdfdfvvfwfwwwwggvvwgwwgfgvvevvwwVVeewgfUVUVUfeggvfgwwwgegvvvwgffEuTWVwwfeWfffeGuudefVVVvwwwgvgvwvwfwegevuggvvxwwfgfgfvvwwggVvUggwwvgvwvfWuvufvfVggwwvgwwfwvgewvfwwVVEeEfVvfvffefvUVdedUefEVvwwggVvUggwwwvgvwwfWuvufvfVfwwVvfwgWvUVWVeffefvVgWgfffeVVVVtfcfggfvwgwwwvwfwwvfvgguegegwwgeeUvfwVVUVeeVuvwfwwggwgwvvgewffUVeUFeFvwgfvffUVdefdVVUFuwwwwvvwwgwggfgfewvvvfwwggfgvfgvxwwfgufWvWwhwvvwVgefwefgfWfvvwwwgggfgufxfgvgeftVFuWgwWgeffFWtUvUffUVfwwwfgufWvWwwgwvwwVgufwefgfVvvwvfWvWuVVuVVeVvTvVgwgffffeffUfefcvwwxwgwfwvwwgwwvwvwwwghwwwvwwxfwvwgwxvwwwwggwfwwwwgwvwgvegvgwxxvwvwwggwwwgvwghwvxwwwxxgwfvfgvwxvggfwfvfwvwxxwwwgvgwwwwwwwwwvfwvwVuwwxwwwwwwwwwfwwgxwwwgvvfgvwwwfgvxvvgfvfvwfuwwwvvgvvfwwwwvwwvwvvgwgVufguwwgwfgwgwwfgfexwvwgvvgfxwhwwwfwfwgwwxgwwwwfwwvwvwvwwfegwwgffUvfwfefefveuwwfwwgvvwfvwfuvgfeVfefVUgwgfvgfffvgVeeeeVtwxwwwwwwwwvwfwwfvwwfwwwvvvwwfvwwfggfwffxwxvwwwwvfwffvfffuvwwwvwwvwvvwVvwvgVfWefefwwwefgfweuwVVvefewwfggvwffxxwvwwwwvvxffvvvfuwwwvwwggVgfVgVVfFggwwfvffffvVffVfFvwwwwwwwvgvwxwwwfgvwwwvvwvhvgxwwfggwvfxugfggvwfgwwwgwvwgVvfgvwvwfgfvvfvwffvWuvggxgxvgwwwgwfgVwgvxuWvhfwvvfwwgxwvwffffvwwwwgwwvfevgvvGtwggfgvwwgwwgfwgfxwwwwgfwvfvwfgVwguWffVuvWufVgwffgfvvwfgvvwgwwvgfwgfWuwgwxwfgwwwvvwffxfxwgVvweWxexxgwfgfvwwwwwxfwxgfwxwwvvWfwvvgwwwwfwwwhfgggfwwfwwwwwfvffgvvgvwwwfuWVfwwWfwuvwffvfwuuVfvxwwwwwwwwxfvggvwwggwhfxUugvfwwwwgvwVfgggwgwwvwgfvgfvttfwgwghggevggvwwwwwvfwgfffwvvggvfgfgugvvuufwvvvffgfvfgwfvgwwvwggvvvwufwwwxVfgWwvvfgwgggffgvwwghWXwxhghwwwwwwwggwwfvxwwwfgwvvwgwwgvxwwxvgwwgwwwwwwwwwfwvwwxwwwwxvvffwwwfwvvvffvvwvfWfgfwxvwwwwhwwwgwwgxfvgvhfwfgwvwxwwwgvvgwwwwwwwwwfwwgwuehwwvgwwgwwwfwwwwgvggwwwggwwgwwggugwfwvvhvwwwvgwvfwgwwwwgwvwvfwvvfueWvwwgvwxhwwffgwwwvfgwvgwghwxgXvgfggwfvwwwggvfvwggfwggvvffwwVWfVefVgeefffffgwfvwggVwwgevfgfwVdffVfvfUvgVefgVgfVTevfEuwwwwfffwwggVvgWuvfgwgvwggfvvwvfgwwwfegffffgewvVvgwggvfUfeWUufvgwfgWevwWfvVwgvUUvVeufWTffFefffffVEefVTfwwwfewgffggewwWvvgfgvfUfvWUffvxwfgwgvffVfgffUVvfgfffweffgfcUUevvfwvwwwwvvgvwwgfWwvvfevvvfueVvffVeefefffvvfvwwffgwvvvfwffVfdvffVgfWwfufeeVVfFefueEwwwwfwfwwwwUffvuffvvgwgwgffwvgvvwwvffuwggfvfgwwufvegfvVuvvUVfgfvwwvfVwvuvewgeUUugVvevffffdfeTVVfVdfeTVwvfffuwgffvwgvveevegfvVewvUUfwvxgfgfvfffegggVUvffgfgfWeefgfSeefgwffgwgwgwgewwwgguvwevvwwvgfWvffffffefffvwgVwwwgwvvwewfwfvfVfffgVggefvfvUfUfFfevUVdwgwfwWfwwwgfvvfdfuwfwwvwwwfvwUwvwwwvfwwffghxvwwfVwffVvewVfuwffwwwWguvgUwuffgefwwWWfWgeffUvFfUgVfdfUfuwwwvfwwgffgwvvwfwVwffVvewfVuvfwwgvWvffVfgvgfVvfffeWvgfeffffSvevwxwwwwxwfgvwwwwwvwxwfwwgvwwwwwwvgwwgvwwwwvwxwwvwwwwwggwwwvvgwgvwgvwguxwwwwwgvwVuwvwfgefwwwgvgvvwvwwvwwxwwwwwwgwwwvgvwvwgvgvxguxwwwgvvvwfgvfwwwwgwgvvvwwgwwgegvwgfvgfgVdwwwxwfwxvwvwgvwwgVuwVuxfuwwwxwwwgffxgvwggwwfxwwwfhexwxfwwwgwgwwvwwvewvwwfwwwwVfvgvffugfeffffffffvgvVwvwwVvwwgVvgfffevffvVgUfffgVuVVdfvgfeEewwfwwffwvwwUvwgwUuwfwwfwwgwvwwUvwwwgfwwgffwegwwwVvfgefvwffVugufwvvgfvwgfFevwwVffgguegTffffFuUVevfgUfUvwwwgfwwvffxewwwwVfgefvxffUvgfwwwgfgffefwgVfegffffwgegVVfff5fVvwwfwwwwxvxwwwwfwgwxwxxwwwwwwfgwwwxhwwwgwwfwgwwgwwxwwwwvwwwwgvvvwgvggwvWxwwwxxxwwgvggwfggfwwwwvvggwwfwgwwwwwwwfxwvgwWugwvWuwgvfWwwgvwgvwgvUgVfwwfwwvwwggwgwwwwffwvgfvwVfeFwwwwxwwggwwggvwwwgwgvvWwgvwgvwwgfxwwwwvvgxVxwwgwvfxgvxxwwwwxgwwwwwwwxwwxwwwgwwfwwfwwwwwwvxwwvwwwgwwgfwwgvvgfwvvgvvWwxxwxwxwwwwwwwwxvfwwgwwwggwxwgwwwwwwwwwwwvvfwuvvvgxwxvwxwxwvvgfwwwwwwxvwwwvwggwwvvwwvgguwxwwwxwwwwwwwwwwwwgxvfvxvgwfvwhgfgwvwwghhwwwghhxwwwxwxwxxhvwwwxwwfwwvwwxxwxwwxwwwvwxxxxwxgwwwwwwwxvwwwwgwfgwwvvvfgwvvvvvWvwxxwxgggxwwgfwwwwxwwgwgfwggwwwwwwxwwwwwwwwwvwwwhvxwxxxxwwwwwwwwwwwwhwwwvwwvwwvvvggwgewgwwwxwwwvgwwwvvwwwewvghvgvvhgggvvgxfgwwvwhhwwwwwwhhwgwggfvwgvvgfVvvfwgwwgwgvgWvvVTEeUUffefUUVugfVfvvwgggfwgvvwfffeeeeefvfgfffffVdeUfVUDtxgwwfeVwvfwwfwfffvgeVvffwwvwffgvwwwvvvfvvfwwwwgwgwwgufVffVTugfVwffgwfvffgfgfvefeVeeVfffvffffvVeVFUVECugwvvvvfvvfwwwwgwwwggufVfWVTuwwvgvwfvfVVVUfUUUgvfwfefefeUVfUUTEuvffwgvwwwvwgvffffvwggWwewvgfvhgfgfevvWwvgwfggewefvgggvevgfwwwffgfvwgwwgffvgVvfgwgwvhwwvwwgVwfeevgwvgvwgvffvfvwgwwfvfffwwwgwgwvgwvwvvwfVVwwfgvgwwfffffgVfwfwfWvfwfVgVffvwvgfefVEvUfwwwfvgfvwwwfgfwwwwfwgvwfVvffgvgfwwggegfhVfgvgfvgvWfeXvFggfvgvfwgfvvvvgvgggwwwgWgVvfwwfuvugWggfgffgevffwgggvgwggWfvgwwwwgvfffggefgggwwwgvfeueVuVWfvfwvgwgvwggWgVfvwvwgvvgwwggffgwvwwwfvffwgvfWgWwgwfgwfufUvfVgWvWgwfVgVfeggvfwfvfVvfwfUgVfffwvgfVvfFueWgwwuuUugvvVgWgwwwggfffVvfggfvvvgwwufVVWfegfeffffgffhwvGvgvevfffgwvwwwwguegvfwfWfVvvgggwwvfgwfwfffgfggwvvgwggvWfWvwgggvfvffvvfgfWfWvgwvgVveUvTgvvfwwgvfWvVwefeVwfVwgwvwwvvgvgvfwxwwgwfwvvgwvgvggwwvgVvfVegvwvfgwgwvgvfwwggwvVfVvvvffefugwffvgEfVEvUfewvwgwUveugwvgvggvvvWVufVeVewwfwvwwgvgfhfuWvfgwfvhgfgvfwGwwfwfwvvvwvfgwwWvVfvggVfVfwffefvfWuVfffwfffffgvVvVeegfEVEfvfvvwfgefefuffUvUwgfffWteeeEefevvgvWgVfvgvUfUfgfeffevffwVgVfvfvwwggvVvgvewewewvWveguefvDUetFfGVvVvUUUuggevvVVfUvgufvTvTfgfefVeUVf5dfuwfgguVegfewewewvgvVguffvEevugvgvwwfgvfXVfgfffgvfgeeWVvVf7ffVefvvfvvvgwvgfgwwxwWgWgwgwvVvuwfgvfgfVfVgWefgvggggfVWVWwgwwwfvuvufwwgffgggvUgveffUfVWefvfgfgfwggGVGVffffffvggwggggffvwwwguuuuwwwVgWgwgvVguffvVegWfeVwvggWVVVgvgwwwffevuvvfVVfVgwefVfVfeFffFwwwvudutwfggVfVwgvVWvfVvUfgWfvfvvwggvgWffWfuvfvfgfggUvvef6fffffwwfwwwwvxwwwwwwffffwwvffwgfxgfwwffffggwgfwwwwwWfVfgwvwxwfvfwwwwffgvwwggvfewVewgvwwwwwwwwwwvgVevwwvwwgwwgfVefvvwxwfgfwwwwgvgvwwvgvvwgfvgfgfwfwgffffegwvwvgwfgfwvvvWeVuvgfgvfvwVUwguwwgwUfUwwwwgffvwwwXffwffvgvwfgfxwffgfghfvgfvvhvvwfgwfwwGwvwgxxxwwxxxwwvvxxxwxxxxxwwxgwgfxwwxwwwwwxxggxwxxgwwgwvwwxxwwxxwvxwwwwwxxwwwxwxxwwvxxwwgewwwxxwxwxxwwxwwxwgwwwxwwwwxxwwvfwgvwwwxwwwwwwwwxxvgwgggwwwwwwwvfvwVvvgwvgvgfwgfeUevUeVUvgVeVvvfvwfvwgwwfuvfWDgfewvUVwgEgUWffugVtufffVVfwwwwvwvwgvgvwvWvgwvfvfvgfwwgvfwgUggfwwegwgVwfgvfvwWuvgwwWffvwfwVvgvgwWufgVTfVUwwTffWUffVfUfvFdeVffGUvgUwgfwegghVwfgvfvwWuvgvwWfwVuVvefewvUWffwweffvUVffffcfUgwTvefvvvwwwwwgwwvwvvwwwvvvuvwwfffegfeUfwfeufwwwvhwvwwwwvvvvVWgfuwggWweWfWfuVwgfVfwffVVvwwwvwwvgvvfwgwuvvwwvvxwvfwwwvvvggxfvwhhgwvgwgfvgwxvfvwwwVgwwwvwwfwvwuvvvffgUvgWgVgefffUeffweeevfvEfggwfvxgggvfgwgfvfwxvfvwwwVfguvvfWfvwWffgwggefwWVfggffdfwwgdfffggwwwgwwwwwfvvfgwwgwfwugwgffUvefVffvgVguwfwvwgwwwvfweffuVewfVeVgffffVVuvwevufvfFuxwwwvwwwvvgwwvwewvwwfvwggwwwfwvgwfvwgfghggwgggwwfvwwgWvwwwvggwwwwfwfWguefvwfVfWWVgVVgvwwewffvWVvggvfvwgfghggwgfgvgfwvwwgVvvewggeVwwgfVwwgfdvvfegffgfdgwgfeffvwvxgwwwuxgfffgwggwwwwwxwvgvggwwfhwgggvwgvgfwwwxwvwwgVvwgvwfgvwfgfvVuwgwgfgfgvgvgvfwffggvwwwwgvguxWevfwgxfwwgffvwfvgvfwgvfwvVuxgggvggwwwvvxwfgWvwfwwgvwwfgxwwwwfgvufveVuwwfVevWvwfevffxgwggfwfVwvFtwwwfvwgwwwvgggwffwwfwfwwwwgfefwWVxwxVwgfwwggwwwgwwwvwfwgvwvwgwvgefgvgeVUvVUfUevgeVuvwfvgegvwwvvVegUeUevffVDfEeffeeuwgfVtffeUtwwwwfgwwgewfvgwfvvgfgfwfvwwvfvweffvwwwgUwUvfgvfvwwwfuwwffuvgwwgfwffwgwVfwTfVffwvWTwDuUVffuvwgUefffeuxevfvwwwgUwUvfgvfvhwfuwgvfuWegffVUgwfWUwgUgEgeVfVffff6wwffVfVvgwwgwfvxwggvwvwwwwwwwwwwwhwwwvfwwvwvwwgwvwwwvwwgugwgvwfvgwvvgwwgvwwwvwwvhgwgwxwwwgvwwwwwwgvxgfwfwffwgwvfvgwwwwwfwgggwfWewwwwfwgwvWwxwgxfvwfxwwgvwfvxxwwwvfvggwfvgvwwgfvgvfWwfwxwwxgwwwgfwwvWuwwgwwwwwhwvwfgVwwwvffwvgwwgfwwgfhvggwvwvwvhwwwwwwfwxwwwgwwwwwwwfxwvwwwwgwgwfwfvxwwwxvvwggwxwwgfvwffvwvvvwgvfwvWgvvhvgwwgvwfxwwwwwwgfwvfvhvgwwvgggwwgwwfwwwfvgguevwwvvwwvWwfwwvwvwwwwwwvwvvfwxxwwwfwugwvvgwwvgvwwfxvgfwwwwgwwgvwwuuvwwwvwwgxwwvfwwwgwwfgvgxxvggvWhghhggwggwgxxvwvggxfwwggvvfvwwvvvwwwwgvgwvvfwvgvvgvgguvwwwwvvwfWxwgvwVVvvfVgwuewwfvvwvuVfwwwvxgWvffwvvwwwvhwWffUwfvwwffggfgggggggfgwuefwwvvwwvgwwwwgwfvfwwwwgwvfgvwgggfggegfwuevwwfgggfgvvefxvwwwggvffgwwtdwgfgwwvgwwvVfvggvwhggwWggffwhgXgwwwwvwwwxxwwfxwwxwwwwwwwwwwgwwgwfhffvvgffvfwwwwxwwwwwwwwwvwwwwwwfwwgfvgwwgfefuvwwwffVeVxwwxwwwwwwwwwxvwwxwwxwwwxwwwgvwwwwwwwwwgvgvwwwwgvgffvxwwwwxwwwwwwgwwwvfwwvvwwwwgvWfVvwwffWefVevwwwvgwwwwwwwwwgvgvwwwwgvgffvwwffggfwwvwggvfUffffgvgwvfffvvfUffwwxxxxwwxwgvwxwfwwwfwwgwwgVufwfUvvwgwwwgvwwfwgwgVfgvgffwgvgUwfwffUwvwwfffwxxwwwwwgvwwfwwwgwxwgvwwwfwwwggfwwgvwwwwfwfwwvfwwvwgwwwwxwgvwwfwwwggUgwwWegwwwfwUwfefwvfwfVfwgfwwxgvwwwwffwwvfwgwwwgwwVuWugVfWugwwgfegvgvgffHwwgugffxwWvxwwwwwgvwwgvvwwggvgwwwgffvVeefgVVvvgwwwgvvwwggwwwgfggwvvvfgweWWffefVgwevgfvVgvwwwwwwgvvwxggwwwwwwvgvvgwggwwwwegwwvgggfgWgwvvggwfwwvvggwvwwgvvwggwvgheWgvwuvWfwfggVffvfgwfwfeffVwfgwwvvggwehgWwfwgggfwwfwgggeuevVfgueWwwUfguvveVfWGfwvuVfgvuuvvvffwwwwgvvggwugwvWwgvvvgvVffffwfffvggvvgwwwfwuwwvWwwvfuWffVweggVuFuWeuUeFwvwfuUWfwwwwfwgwWwfwvugggwgwwwgvwwhwwwgugwfWwvvwfvWvgffvWvwvffgvgwwwVwvwwuggwwVdWffFfugwguWuWUuVuWfvgUuffugugwfWwvvggvWvgffvWgwvffgvfwVwVUhVwugxWUgvvgweVXe6hfUfVWuggfhggwvwwwwvwwgguwwwVwvwgggffefffgvffvfwvfgvvwwgufwwVwfwgvUgffWufggeEvUgueuEvwvWueUgvwwwwvwwgWvwwwewwgwvwwwhwwfxwwwvewvgWvgwvvVwfgfvVwvggffwvfwgvWvwwvewgggeTfffFuwgwvUwUWvUvUgwfVvUevuvewvgWvwwfvVwfgfvVgvwgffwfWuWveWegvwhweXevwguVWVf8fffVXVwgeVwwwwwwwwwvvvwwggwwwwwwffvfeeegfVVgwvgvwwvvwwgghwvfggvwvvfggWWgVfvffgWwfuffeWfwwwgwwgvvvwwhggwwwwvvvvgwggwwwgggwwvvggWgggWwgvhgvgvwgvggwwwwvvvxwggwwwVWgvvwvugVgggfVffeggwgfvfffWWghwwvvggfggWgwvvggwgvwvvggveeuVgVfuuwWggVvuvfegVvgFwufgVuvuvuxwwxwwwwwwwfwwxgfwwwwgffwgvUwwwVewwvwwwwfwwgfwwwwgvwwwfwfgfWuWVfvVuwwfevgxwwwwfwwgfvwwwwwwwfwxgfwwwwgvwfgwwvgvggwwgvwwwvwwwwwxwwfwwxgfwggvWefwwUwwgegvgffvfvgvffvgvhvwxwfwwvvgvggwwgvwwwvwwgwUwfhffwUwwghffwwwUgefwwGwegVfwfwVxxwwwwvwwfvwwwvwwwxwwwwwwwwwwxwwvxwvvwwwfwwwhfwxgvwwwxwwffvwvwwxwfwwwwwwwwwwgvgvwwgxwwwgvwvwwfxxwwfwwwwfwvxwwfVewwgvwvwwxwwwwvggwxwfxwwxwwxxwwwhwfffgwgwfxwwwwfwwvgwwgvwgwvgeVwwwfgxwwxwxwwwwwwxwwxxwwxwwwxweVwwwwxwwwggewwgfgwfeggfvwvvfvwvggfVvETffeeVVUUeUewfewwwvwvffvwffeuffwvUVfffvfVefefWVFeffFEtwxvgwfewfvwfgffvffwVewwvvggffvfvwfvgggvfggwwvwWufvwgfWfwwGUevVewgvwgwffffvgUfVfffeVVffgfGeUefVeVfff6TtwfvggwwfggwwwwWffvwgfWfvwGUugfgvUfUwwfeUfwgUUvgeeeUffETfwfUUfVuWgwVgwxgvwwffevVwggvvgfvxfvwgfffefvxgvgWwwgwgfvffwfvwgefggvwvwwfwvfggevfvffvwvwfvgwwgvwfvgfvffgwfvVvwgvwfvffwfvwgvffgvwwwwwwfwfwfevfvwgvwwwffgxgggfuewwwugffgVvfwwwffgveffTuevfVfvgvUfvffgfxgwwwgwvwVevwvgwvvwewwVfvffegvgfvxxwgvgfFvvVVfhfwgvgvgeggewvevwwfvwgveuVVwfvgwgfwvfwgffevWfvfvfUfvggwuvWgwwgwggWwfuxwwgvWegfgVefgffuvfgWVWfvfVffWfeeWWvwvwfffffwvvggwvfffgWFwutwwgvwVVgVfVufWffvufwgWgvgfvteFWvwffffgVwfewwwvffVfVVFfVVfVfvugfFvWWweuwwwwwWfWggUvVfWfvvfwgWgfwfvfVWfvfVggwwvvfv6ffVegffffwffvuffVfvwfgwewVfVeTeFVvfvfggwvuvUvfffvffffgfuwVvffefVgvfvgffVgguggveffguWFeUeVeuTgfgfefgwfdgFgUUeuUgeggWfffugfevWfffvfveVgwewvefvvWugFuVugfvegwffuugWfVfeuVgvffWeUgVffgwveffftV5eFtVUeeffWfeveggwvwwufvugugFtVugfueWwfUdgwfwffgfwfVhuvwfffwf6gVVgeefegfVvVfvvvvwwwgwvwvfuvVwwfwwfvvwfwvgwfvfffwfggVvuggfefVgwfwvfffvfvvggvvvfgVWtVeVguVfgwgwffwwgwvgwgfvfwwvwwvwgvwgvwfwgggvwgUwgugwfwuwVwfgUvfgvUvvfWfevvggVeeefwufvefewVfwggvfvfweWuFeeVfFufvffuwfgvwwgwvwfwfgVvfgvVvwggwvfwgvVwewvfhfwwwvggvwGwfgfvgfxvvgvgwWfvuggwfvggwgefggvwwgwgvfvvWggVfvfgfvgfvvggwgfugWwwwgvvffwfvwwegffvggvUfggveUwwwWVfggvuvVgfUvWfwffggwgwvgffwgvwvggwUWvuewxvfggfWgvVfWgffwwwggvwgwgfegWwvvwffegwfvfgvgVwfVfvEVWfvVfvgfgWwffgvvwwfwggggWvVegWwefwggfWvevvfgefvfWVuwggfefvwFfhfvffgfvfuwfwffvxwwggwfwwfVwguwgwvvvwvhwfgffggfvgvvwxwwwffggvwgwwvwfvwfwwwwwfvfvVeggvVfwwwwgvwwwggfwffeffvggwvvwwvwUfgfvgggggVuwUwwwwwgefvffvgffwwwwgvwwwvUfwgvwwwwfggvwfvwggwvffVuUewWugfwvgvWvhgvwfwwwwgvgvfvvgggwwwvgvffvfhfvwfwffwxvfggwwGwfgwvhgvwgwfxxwwwxxxxggvvwwxxxxxxxxxxwvvwwxxwxxxxwwwxwwwwxggwxxxfguwwxxwwwwwwvxxxwwwwwxxxgfwwwgvwxxwxwwwwvgxwxxxxwwwxwgwxwwxwwwxxwwwwwxwwwxwwwwwwxwxwxxxwwvgwxwvxxfvgvwgwvwgvvfgvwwwwVewWfewVfeefeUffgvwvgwvvvvvwfwgfffwvffggwgUgUWdufUgeffevgwgvwwwwwvwwvfwwwgwvwgwvvgvfwwwvvffwwgwwwwgfhehefgUhvvvvvgwgfwwvwffvevvvggefVvgfffwwfeWdWufVTWfffvfffwvggwwwgwwwwfhegevgehvggvwwwxfUvUWffvfgwegvwwwvfggVWfeefgfefefXegwhvwwwwhfwwvvwgwgvhfwfeuWUfefefVfgfwvvgvwwgfggwwgfffvwffvggweWeWvfueWffeuedgwhvwfvwggfgfuwfgwvwvvgfwvwfwgwwgfwvwwwwvwwwehegvwvvhfwvvfuwxwwxgwvwvwgwwwUffvfgffwggTWTgfvfegeffevefgfvwwwggvwwweXehwvvfhvvfffugwgvVuVfggfggWVWvwwwffgfVWfefggfefeexfvgwgwggwwwgwwuvwwwgfvwWVvfffVfeffeveegxwwwgvvwwvwwgfffwwffgwgggUgdVgfgeewvUgegvwwxhfwwvwgwvgwvvvfgwwwwggvgwfwvvfgwwwvvwwwhgVgefgfgvegvewvwwfwwgwffvwgfwvffWvgvfefvfWVEWdUfVfuTfeTgvgwggwgwvvgwwggVhufwVgvewfewvgwfuUVvgfgvwVugwvvwfugfuVfegvgvvfegvgxgwxxwwffwwvxvwxxwwgxgwwwxxwwwvwwwgvwxvvwwwxwxvwxxwvfgvwwvwwwvwwwwwgwvxwewwxfwwwvwwvwwxwxwfwwgwxwxwwvfvgwxwwwgvvwvfwwwvghwwwxwwwwwwxwfvwffvwgwvvwfewwwfvgwhwwhwwvwwwwwvwwfvwxvgwvwwghwvwxxfxXwwgvwvfwfwvwwwxgxfvwwfwxggwvwvgwwgwwwwfvwVVgfffeVffVfVgegwwwwwWggwwvwgfffwwffwwfwVvEvvUuVfwVfvevfvwgvwwfwfgvwgfgwfgwwwgvgvwgggwvwvvvwggwwvweUfwVvfvwVvwfvwffwwwgvfwwgwggvffevggVfgfgUvDevEfUufEefUvwvvvvwwggwwwxfvUvwVvfvvVfvfvwwhfWUvWehfwgvvgewggwwgffWVfVvWfggfVggwvwxwwxwvvggxwxwwfwvxwxwwvwwxxwxwwhwvvgggwxwvxwwwwwgvgwgwgfwxwwhwwwwvwgwvfwhwgwxwvwwwvwwwxwggvwwwhwwgwvgvwwvwwwxwgvwwevwhgwwxwwwwwwwxwwvwwfvVvfgvgwvgvwwgwwvwwwwwfggwgxwvxwfwwwfwfwwxvxuwwgwfgwvgvwgwvvvwwwwwwwwxgwvgwgwwwwvwxwwgwwvwxwwwvwxwwfxwvxwgxwwgxwwxvvggvvgwwvhwwwgwvhVwvvgwhwwwvwwgwghwhwwwwvWgvwxgggvwffwwvwwvggwgVwfvggWwwwwwgxwwwwwwwfWfuvfVvvwvwvvwwvhwvxxwwgWwgwwvxwwvwhgwvwghwxxwvtwwwgfgwgvvwwwvhwwvwwwwwwwgvwfxwwxxwgwwwgvwwwxwwwvwwwwhvwvgwgxwwxwvvxxhgwgfxvwvwwwwvwwwvvgguvewgwfwwwwwvwvgwvwwwgxgwxxxgwgVwfwwwxwwvfhwfwgwgwwgwwwwvvwwwVvVewvgvgxwfgvfwwfxguwuwggwgfwwggxggvgwwvwvwxwwwghggxvdwvwgfwvwwwwwgwwwwvgwfwwVuwwggfvwWuuvfggffffffVfweffffvwffwggfvuwWdffgEvfeVuvfUvwgfVdffgfUggeufUvgwgwwgvwwgguvwguvwwgwwwfwgvgguuwwVwfvgvffewwwwfuvwwgffgvvWevwVvwwgVvvwgevwgUfVfVvffTgfffVevfvVfgVfvWTvxVwfvgffewwwwguvwwgfvfvgUvfvfvffffvfefffeSfwwfgwVgwevegwVfefvwfgfwvvgwgffwwwfuvvefdwwwvfffffffgufefffwWvuwwwffwvuueweWffUfdevegfffveewwfWuefdeVwvwgwWvfwwwVvwvvfuwgwwwwvwfwfvuuvhgvfweefvwwwwvvwwvffvvueVwgwvwwwevwvvvuvegWfVfedfufvffufvffegfufeTVwvggvfweefvwwwvvvvwwffvvvuUfgvfvfeffvffefffVcvwWggggWgefggWffufggvvwwwwwvfUvwwwfwfffveggvvWVVeffeefefffvvefvvwgfvvgewugfVUUeEefegegffefdvgveeefTVtwwwwgufvwwfvwvgevvgffvwgvvwvwfgwggfefvVevfwvwwwfvuwgfvvfwUVugvfvvwffwvgfwvVgfdVeVdfegffvgevegvefvefEeugwgefvVevfgvvvvVfuwgffvvgUUevgvVfvfvfefffvfUcwxfvfgfgeUgvgUffexxwxwwvwwvxwxwwfvxwwwwwxwxwxwgwwxwxwwwwwgwwwwvwfwxwxwwvwxwwxgwgvVvwxxwwwwwfwfwvwwfwwwwwxwwfwgvwwwwwwwwfxxwxwwxwwwwwwwgwwgwwxwwwwwvfxgggvfwwwwwgvgwwgwwgvgguwvgwwvwgUxwwwgvwxwwwwvvwgggvxwfhgfgxgfwwwfwvwwwwwgwvgwvgggfwwwwwvVfwvwffvvgwVefgwWweeeefUffffffvvfUwvffwvwggfUgEuUUffUffgvgfffVTvfVgefVdEuwwwgwgfvvwfvvvgwffwffvvwfwwgwvfgwVvVfgwegfwwggwvgefgffvfeUUewWfvvwfvwwggVffUvFeWfTffwffvwfVefvfVfgVUTfwVvVfgfegfwwwwwwfewggfvgfeUegfgefgfgvefffgfU6wwgfwfffVfgfUfVUwwwwxxwwwwxwwwwwxwwxwgvwwxwvvgfwwvwwwgwwxfwwwgvwwwgwgwegwxxwwwxxwwwwwvwvwwgvwwwgvwwwwwgwfgUwwwvgwwwwwwgvvhwwwwgwfwwgwxgfwwvfvwfwwwwwgfwwwwvwgfvWwwwwwwwwfxwwwwwwwwwxwvhwfwgfwffvwfxxxwvvwwgwwfvwvwwgvwwwwwvvxfwxgvgvfwxwxwwxwwxgwwgwwvwwfwgvWuffewwgwvwgwgfvgvwwgfvwwwfwgfuGfuxwwwxwwxwggvwwvwgwvgwvwwgvwwvwwvwwwwvWWgxxgwuvxvvwvvWgvgwwwwwxgwwvwwwvwgggggwxwwwvvwwwwwwfWwvvgwwwwhgwwgwwvwwwwxvvWwvfwwvXghwwhhhhhxwxwfwwwwvgwwwvwgwxwwxwwwwvwWewfwfwfevwfwwwgvwwwgwwwwvgvwfwfvvwvwwvwwvffwwwwwvevfwwgvvfvFewwwvwwgvxvwwwvwvwwvfvwwwwgwvwgwwwwwggwwgwwvvwwwvvWvwwwgvgwwvwwvvwgwgwggwwwgvwwwwwwvvWvwwgwwgwwWWxwwgwvvwxvvueWfwwwwhhgvhhhWwwxwwwwwfwgvwvwfwgwgfvxwwvvvwwfgVfewffffwggUfefgUUEUTfVUVuwvgwffVffgffgfffvfVvfVfUgffgfffVfUVfUUVT4twggfwgwwfgVfvwgvwfwvwwffVfewgfgvwwwggwwfgewwwwwvwfvffwfffUEewgwgggVffvfvwvfgfffffeVTfwgvffffeeUfUefEDuwwwgggwfgegwvwwwwfvffwfegUEuwwgvfwffgeVefVUUUvgfwgVfVVfUfUUUTEuwggwwwwwfvwwwwwwfUvwwfgfwgfwvgffffgvgvffffwgwfefvvggUwfvgvvgfwwvUffwvfvgvwWUvewwwvwgfwwwwwwffvwgwgfvwwvwfUwgfwfwgvgvwwffwvwwfvwwwffwfwwguwwwgwfVfvvgwfvgvgvvfewwfgwwwfgwwwgUvfwwfwVugwffxwwffwwwUfwwwffvfwgvwvvfghffgfGwwwvgfwggvgvwffhfgwwggvvfVfvffetwgwfvVFgfffguuvgfegfgfvfWfVVwfeufgwueVVfggwVVfefeffVfwwWffugWgfwfgfdEfvgvvwvvuwwxvvfWwwvwvvvvggfffgwffvgWvueveffWwwgWwvvWWwwwgeuVggfuewfgvvWWvwvwgfgufvUfegwggvvfWgwgggVeVWvVfgtuueefgwwWfvvvGWvvvgVuVggvfvfgfgwffeg6ffffvfgwwVVguveegvvfffgfgwvfwwegfuveggveVefwgghwvgfvwfggvvfvgfvgwvwvggvfgvwwgfVffewVfFegwvWffwvVfgvUvTVfwwwwfWgvvfWguefvvgwgwvgwwvgvgwfgxvggwfwffWvwwvgwwvvggwvVegvvVwvwvgwvufvwgguffgfwfeWfgvufwggffggvEvUgvwvgWwVwfVWvwgvggvvuVgweVeVegwgwvvhvgffhvGwwfgwvwwgfgvfguWvfwfwvvfwwffvggVugvgUfgUVfvfefgfwfvfffUvefffgffUuWegDgVUUfwgfEWfeffVVUfggEWfvvVeVgGceUffvwwfwVfgvgUvfefvvfvWvvfffefefvfvwVggvgufWewwwVgugwVfegWtdFVUfFegvVUvfTevfvfUfVvgfeWTfwwUgfvgefVgVdUVfvwVgWvWvfgewfwVgvggUfefWteVgvgvgvVgfgveXff7fefgvfwweWVegfgffffVvvgvfgfvgvwuvgwgvwVfvwffWuvwvfvfgfvufegfvwfvefvWugeVfvgWfWfvfvgWffvgfVvvfgefwfuTfWgggfwwwuvwwgvvVfwvvvwvwwgwgvffvvggWgwfvvfgewwwWgvvwffggwveeWfvwvvwggvvfVwvwgggfvfgVgUvwwggwwwffVgvvUfVWfgWwuevfhfvvgWwwwWUgvvvefggvffffgffvUgUfgGguvvvwgghfvvgWffefvfggfwwvvwfwexwwgwgefgguveuggvfggxfvgeVgwvwffwwgfvffVvfffWfvgvgfefvgVvggfufggwVTfVuwvwwffwfwgwgffwwvwffwfwfvgvfwwvwggvfwgwvgwxgwwvffvwweevWvgwVgggvvgfewvvfgVwfvwgffvwfvwvwffwwwfeggvggfwfwfwvvwwwgvwwgfvwwwfeffvwfffwfweghfgfvGwfgfwwhVVvVgefwfvfxxggwxgwwvxgwwwxxwxxxwwVvwwwwxxwwwwwxxxxvwwwwwxxwwggxwxwxgwwxxwwwwwxwwwwgwfvxwwxxxwwxxwxwwwwxgvvwwwwwwxwvvwxwwwwwgvgwxxwxxwxxxvghhUvwgfvwgvwgvwvgggvfhXfUVwfueVevgUvvgwwvgwgvgwgggvvgvwfwfwefVgwfffgwvfgeVdwvffvwgffgvwvwwfwvggvfgwwvgvwwfwwwwffwewfwxwwwxwgvguWfeggwvwgwvvggvvgwvwfgvTfewgfffgwvgVffewvffwffwewfwxwwwxwgvgugUvgwwfwvgvVwefwvfUwwgwfwwwVegwfUfeVgxwwwwwhvwfwwxgvwgfvwxvfwxvwwWwwwwxwffwgvfwvgfvwgvwfgwwwgfvgfwwgffwwwghvwwwwwWwgvwwgvffwfxwgwwgwwwgvgwwwwwwwwwgwwwwgvwwwvxwwfwwWwfwgffvwfffxwwgffwfgvgfwwwwwvwhvgwwwxwwwwwwwwwwwvggvgvwgfhvWxxfvhhvwggxwwgwwvvhxvxgvvwwwvvwxxffvwWgxwfffvvggfgvvvwWwwvwvhxgwwwhhgggfgvvgfwgwwwvwggfvuvvfffwwwgwvwxxwggwwvvgggggwvvxggfggvvvugfhfgwwwwwgXwwvgvwwgwvfwhhggwwWggfggfwvfugggwgfgggwfvwvwggfVghvvvvvvxVgwwwgvgggfwwwwwwuvvvfvhvuGwxgfhvvvvffxgwxvvfghvvvvwwwwwvhvfvfvWfVXvfgwwwxwvwwvwgwwgvwgwwfwfvgvghwgwvvWfvfveeWfvWgvfwvfVevTwgwgwvwxvUffwghvfgwgfwfwwvwgwggvfwfgvgwwgwfuhfvggvgvvgfegxvwwvfwvwghvghwgwfugfgVfVdguuggvgwfufVvewgwwvwuggwfwfehvvWwwVevgfegxvffgffehfwvGxgfgvfgxffXfwwvfgfgvfwwxwwwgggwgvvhvfgxwgwwwwwgwwwfvgwwwwwgwggfvugfVfxgggggVgfvguVgefVfwvgwwVWtfevggwgwwfggvvhwfwvgwgwgwfvgwgwwgvgvwfwgvWvfhewfwwwvhwVgffWffVgVfvvXvfvvfwffefgfWvegTwefwvgwweguVvvgvwvvfwwwgvfxevfgwvvhwfggvgwwwgvgfgfhwHwfhevghvfgfvwgwwVhfvgvgvvwwwwvwwxhgwgxvvffvfggggfvvWwwwwvfghxfgWwwvggffwvvgfwgfwgvfgwvufwwvfgwwwvfvwxxggWwwwwvvfgwggvvgwxfggvvvfxvgggwwwwwWgfvwfwwwvwwvwhxwghwvwgfgfvfwevggwwwvggwfvfgvgffgWvvvvvhffhWwwwfwggvgwwwwwwvuvvhfvuvxGgxfvvvvfhgvxgwvfhfwvvvvxxhxxwwwfwvwXwwwxxxwwfwvxgfvvXwwwwwwgwgXwwwxhvffxfxfwwgvhvvwgvffgggwgvwwfwwfwwwhwwwffwfwwgfvgwwxwwwwgwwxwvxwwwwwwwvgvwwwfwfwwwwwghwxgggffwgfhfvwgvhwwwgvgvgwwgfvwwwwvwwhwwwwwwxwwxwvgvwwgwvwfwfhvwwfxWxgvfwfhfwwwwwgxfvfwvxwxxxwwxxwxxxwwwxwwwwwwwxwwwxxwvwwwxwwxxxwwwwwwwwwwwxwgxfwwxwwvwxwwvwwwwwxwwwwxwwxwwwwxxwwwxwwwwxxwvhwvgwwgwxwwgwwwwxxwxwwwwvgwxxwxwwxwxxxghfvgwfwwggffvhvgwVuggegVwWfffUewvfvfdggfggwfvwgwgfeVgfffwVuVuVfwfwffvwgfEVtufUVvffgfvggwggwxwgwfefgfgggfvgfggVugfewwwfuVufwvwgwgwwxgVguvfffffggfggvgvgfetfWffwfVvFuegvvgfgvfgfUgevVffuewgwwgvUvegvgwwfvwgfVguvVeVvfwfvfvfgwgVgwgVvVffvfgwfwfwwgfVfUfuUgwfwwgwggvwgfvffwggfvxffWfvvfvevuVgWvwgvvggffffgvgwgfVvevefVwgvvfgvgUGvfuffufvwUgwwfWgwgxvgvefwgfwggvgggvffgwgwwvgffvgwwwwwwwxfWvwvfwvwwwvggvwwvffegggvwwVvVuffggvfvgwwweVfffvvfffwwwgwVuewgwwgwgwwwVGvveffuvwgfggggwgggwgWffffgggggwggwgewevXxugWwuggwvgwhwvufufwgfxvxffVgfvvfuvuVwVfwfggwwvvgefwfgfvfvVeVfffwwgwvwwgWufgffwfffhvwgfgfgwwwvgffwvgfgvfgwwvgffwgwwwwfufgwgwvwwwxwghvvgvvgvwwgfffgwgvgffggwwfguVtUWfggfgvfggWgvefvefvfvgwwvgteVvgwwgwwwwWWuvwvefvwvffgvgwggvgwvggefgvggvgwVvwfffuwwwxxxggwxwwwwwwxwxwwwwwxwwhwxxwhvvxfwfvgvgwggwvwwxwgwwxwxxwwwxwwwgwwwwwxxwwwwwxwwgwxxgvwxxfwwwgvfgxwwwwwwvwwwwwwwwgvxwwwwwxwwwwwwwWwxwwwwwgxwwwxxwxxxwwxwxwghvgfgvgvwgwfwfwWfgfgfgvwUffvUwVffFfgfwvgfwfvgfgFVfeggfvggeWevfefwfvffgwEvvfUffuVwgvwfggwggffWeWfwggggfvgfgWeVfvgwvwWfWfvgewwwvwwxwUvvgfffvffwwgfwgvgWffVgffwvWeFevWTvffffvwwUvgVfUVffwwwvgvWfvgewwffgvwwVuvfeeVufwgfgfwgfhvwgeefvUfgfwgffwfwwgVvfeWfvwwxwwgwxxgwxwxwwvwwwwwxxwwxwhwhgvxwxggwgwxwgwxhgvwwvwxwwwxvfvwwwhwwvxvxwwwxxwxxxwwwxxwgwxwxxwgxwwwwgwgwwwhxxwwvxxwwhwvwwhwgwgwwwwwwgvgwwfwwwxxxwwwgwwgwvwxwvwwwwgxwxgwwwwwwwwvwwwugwwwwwwwwvxwxwwxwwwwwwwwxwxxwwxwxwwwxxxxwwwwwwwxxwwwwhxgxfwxwgwgwwgwxwfwwwwgwwwwxwxvwvvwwvwwwfxwwxxwxxwgwwwxwwxxxwwwwwwwxxgwhhxxxxwwvwwwwfwvwwxxwggwwxwwfgfgwwgxwwxxwwwvwvwvwxxwvwvxwxxxxxwwwwwgwvwxwxwuwwgwwwwvwwwwxwwwwwwvwwwwwwhwxxwwxwwwwxxxxwwwwwhxvxxwxwfhwwwwwwwghhfwvvvwwxxgxwwxxxgwxwxxwxxwxxxwwwwvwxxwxwwwxwwwgxwxxxxgxxxfhgfwgwxfhhfwwvwwwxggwwwwwwwxxhwwwwwwwwwwxwuwwwwwwwwxxwxxxwvwgwwVvwxgwwgvvgfgefffvffwgffVVfeVfWDUUUeUuvgwvgvgUffgffvvfffeffVfUgUvfVeUdfVfeeffFEswwfvgvwffvgefggwgvggwvgwgUfffvfvgwwvvwwVvfgfwwgvVufgwfvwwVUtgvwvwwgeffgwgfffvffgfEeVVVffWfVuvgfUeffFTtwwwvvwwVvfgfwwgffuwgwfvwgVUtfvvgVeVwwUeffwfUUgvUfUffUETvwfUUefufgxfwwwwvffffefwfgwvgggwxvwgvfffvxfwfwgfvgvwgVuwwwwvwwffvgvWuwfvwfgUfgUuwgwgvfwvVwwwgwwWvgWfvwfwwvggwgfvgVugwwgvgveWugvwffxUfffffvwwwwwwwwfwgvvgfvwwwwvwgwfvgvgvvVfwfvfvgUvwwwwwwwfwwfwgvgvwfwfgfwvfvxwwwvwwfwgffgGwwgvgfvwvfhwgvvffhgvwvwxxgvfvwguvuvfvfgwfueVevegvgwffvwffwvfffVwvufvffwguvvefwvwvgvwfevwfvfufVgfgeVVVtvfgvgfvvVgwvfvwgvvvfewvvwvwvwgvwwffgwvwfwvvffguuvuffhWWeWgfuwvvfwwwggwwuvvefwvvwwvvgvfvfvvvUeggffggVuvwgfWwwwWVwfgwvfuvfewgfVggeuvwwgggwvWgffuffFgwvfUegffgevvvfVgffhfvgwwefvwffVgfgffwfVuEUUuGfVvugvgggwwfvVfffVufffgfvVvUVfuVggvuffeffffUvdUVevUeGdeSggfWvuffVfvgwvfEfUFVuVvgefvfgVwfWffeffffvfvugWwfweegveVvWeudvgffufwvWfwVfVVfvVvgvvvffvfWvVfUTgeefuWUedgwfWfvfvVfvvWgwfweUgvvVvWetdwwfgufwuFUgwfwf6gfwVVhffWfefwffgVVgeVfwggffegvvfxgfwwwggvvfvgwfwgwwwffwwgffvgfgwfwffwvVfefVegwVwVgfgvfwfefeEfVvVvVWtVewgfgggfWfvwwwggWvvWfwwfwgwwvwgvwgvwfwvwgvvwewWvgvVWfwUvfgUvgwugvvfWfufWfeVfgwewfwvfvfwgfWfVgeffveVuFewvfgwgwfwvwfgvgvVgfwfwfgVvwwvgwvwgwvwfgvwGwgwfhfgxfvggvVwefgfvgwwwvgvgwVvuvfefvfguUfeeufvwfgwfvvvvgfevfufvfvVVvffudgutfvvwffffVfgefeeVfvWfVffdVwwfvwfwuFfgvvwfveeweuvwfvwvwgwvfwvfffvvgfffWVwteuVgfvGVVfvUfwwwvvwvvWggwvewvuvvwwvwvgUwefvfgevWggffUfwggwgvvWVwgVweufegfuWWgWveewwwwwwvvWgvgvfff6vffgevgfffvfVgefWVffvwgwvvufwuVvwvgwwwffvffgfwgWfgffgvhggffefgvgwXwvfvwVwefxvwwgvvevfggvgVfVfVfgfuEevwhvvwvvfVuvgwhwweffegwggggwvwffvfvgvgvgwwfwgvwfgfggwgfvgvVfvwwwwwwwgfvwffwffwvgvgwwVvvwwfgfgfffgfgvVfgwhwwwgwwffwgwgfwgwgggfvwVVvxwwvgwvguVvffvgFwfxffwfwwfvfgVfheVgfwwxwfgexxwggwxwwVvxxwwwxxxxxxxxwxvgwvxwwwxxxwwwxvwxwwwwwwwgvwxgwxxwfvwxwwwwwwggwxxwwwggxxxwwxwxwwwxxxxwwxwwxwwxwwwxwxwxwwwwgvgxwxxwwxwhwhvwwwwxhvwfffwwwgvggwfvfwgffVeVfefgeVVgvfwgvgvvwwvgfwwgUfvgUeEVvVfVDgteVfgvffeefwgvwgwwgvgwvwvwwwwwwfvgvvwwvggwvgVwwgfvVgwgggUhuvfgwvwgvvgwwwgWvwwvwwwvwgggegwwVvVggfffTWuegffvwgveffwhfwwwfvVgvfggUguvggwwwgvfvwwfwvfgwfggwfWgvvUuVWgeWfefVggvweffggwwwxxfwgggwgwwvgvgvfhwwffVVVfVfgefeWfgvgvfvgwwfwvggvUVwfWfUVFgVgTGfeeVffvffudgwvgwwgWgwggwwwwgwwwwgfgwgwwvgvggfgwwgvffWgggeWfvfggwwwvvuwwwvgggwgwvwwwwvegvwWvfgWfffdWfufffvwveuufgwfgwggvegWwggeXvvvggwwvvvegwgvwfWgfvgggggwvVuegWVVgfefWWvvgevXvggwgfWfvgfvwgvwvggxWfVfVeVuWVffvfvwgwwvgxgwwwwWVWdgvvVffVeffWdfgffvvwfegegfwwgwgggwghgwwvvgwfwgvgvggwgwwgghuwwggwfvvgguvwfwwwwwevvxgwfvgwwvggggwwgWgevwuVVffffVguevffvfwgTvuggWhuwwffvgvwfhufwgvvwwwefvgwvfvwfvffgvgfvgfevUgvVVuffeVuVwweefwwwgwvwwvfwgUgggwfwwwwwgxwwxwvwwwwwwwvwvfwwewhhvvwvwwwgegxgwfvwxwwVevvwwwwwfvvwwwwwwvwxfwwwwwxwgxfwxwgwwwwwwvgxwwwhvevfwxvxwvgwfwwxwvwwgwvgxwwvgxfvwvwxxwwxfwvWxhgwxhvfvvwwuwwxxvvvxwwgGgwwvvwwfxwwwwwwgwwxhfvgwxfwxvhxgvxwwvwwgwxwfwwwWuwfVefUVfvgeUffgffufvfwvwggvvggvVVvgWTffVefvFevVefvwgfvfvffvwwgfgfggwwvwgwwwgfwfgwwwvfgwwwffwwXevgfffVvfVvgwwwwwfwwvgvvggwxvgwgggwUfgwWeffeffvUfgEefvwfwgVvwvfgwwhegwfvvwVvgVfwwwwwwgwwhfgwvgfgfwgffgffVgUfWUfWeVVggVwwfVfgwwwvwwvvvguvwggxvwwwwwvwwvwwwwwwwgwvvvgevgvwWgwwwwgvvggewgxhweVfgvwwwwwvgwwwwwwwwvvxvvwwgwwxwwxfwwhwgxwwwggwwfwhWwfgfgwgxwvwwwvwvwxwwgwwgwvvwwvvxhwfgwhwxxwwgwwwxwvwhgxVgwxgxxwvwwwtvwwwwvfwgwvwwwvwfhgfgwwwxvvwwwwvwxwfgvwvwgwvwxfwwxwwwvwwwxxwwwxVwfwwxgwwwwwvwwvfwggwwgvwfuwxwwvvvwwwwhvgwvwwxwwwxxwfwwwwwwxvwgvwwwwggwgwvvvhwwxwgwhxvgwvwwgwwxhgwwxfvwxwwwhwvwvwxxvwxwwgvvwxxxvwggvwwwxvwxgvwugwwgvxxwwfwwwwghwgvvwxhxvggwfvwwvwwwvuwfwxwfwwwgvwwwwgwwwwvvwfvwvgwwwgfwwwgwgwvxfwwvfwwwwwefwwxwwwxvvwvvwgwxwxwvxgwwxwxwvgwwvwxxgwwgfwvwwvvxwvwwwwgwwwfgvwvwwxwxgvxwwxwwvwwfwwwvwwwwfxgwgwwgxwwvfggwvwugvgwwxwwgwwwhxwvfwfwghvwxfxvhfxwwgwffffgfvwvwfvUhwgfgVfgWvfegggWuvwgffffvvwwgwfgVwVuvfVfvWEwffefgwfevwwffvvUgwgwwggfVvfvwwggvfwgffffwvwvwgvWUwgvwwfwwWFwggefwgguvvwwwvgwgWwgVvfwfwgfWegVvwwfgvfUvfgvvvffffvwwgfvgfxfwgfwvgVwwgvgwwgvwwxwwwwgwfWggffgwfgwfffvgwfgwuffgwegwwfvWwfwgwvfwwfVfgwgwfWfffwfeffeGVvfVwfggvggffWewggggWgeWVvevfgVgeFffVVegvuudgwgvffvfwvffgVFvwfgvWgfvfggfVegggvgfWwUggwvvWfgwfWvfUfegwvvegwgvgvvgwfWvwgwfgffdWVvvfWfggeWgfefVwfvfeggfugweWfvuwgvgwfWwgfffwgvvewxwfggfvvVfgvfgWgggWffvvffevgfvegggVuwggfwWgfwgfwfwfFVvfvfgvVgfxgfVfgVFgefvWfwfvwvwfVgvvwgvffVgevVfwVfgVgdfWffufwfgevfgwufwgwgwvfVfvwvggvefgvvfUfvvvfWgfwWgvvgwvVvggWevfeVugwfgewggwfgvwfUggvfWwfwFfeuVgvFuWVgeffeUfgvevfwggvvWgfufvwVvgWgewgffvwwvgvwggvgvfefvvfWvggvgUfvfgevfwfufgvgfVwwvwwxgxwxwfwhgwwvwxwxwgwwwwwwwxwwwxxwfgwhxwxxwwxwwwfvxgxwgfwxwwwvwwxwwgwxgghwghwwwxwwvwwhxwwwwxwwwwgwwxwgvwwwwwwxwwxwwxxxwxxxwwwgwgvwwfwwwwwwvwwwvwxxgwwwwwgwhvwwwwwwwvxwwwVwwgwwwwxgwwwwwgwxgwwwwwwxwwwxwxwhvgWuwwvgfvfefgwwwgfwWuxwffevfuvVfwvVewvggvvevWggxgvwffUfgefvfffwVufgwfvwwvfvwwgfffxwgwffgfffvgwgvvgfvggfffwgwgvwwwdugvgwvgewUuvwfVvwwwgvwwwggfvfgffgwwwggwgwTuWevgwfeweffwfVfvvfVfvvggvwevhfwwwwffvwwvgfwwvgvwwwwwvhfwgghfwgfwgfvVxfvguwgffWwgfffxwwwwwxggxwgxwwwwxwxwxxxwwgwwwwwxxgwffgxwvgvwhwhvxxwgwgxgwxwwxwwwwwwwwwgwwhxwgwwwgwwxwxxwgwfvwxxfgwwhghwwwxwwwwwvxwxwwwwwxwwwwwxwwwwwwwwwvwwwwxwxwwxwwwxhvwwwxxxwxwwxxxwwxxwwxwwxvwgwwwwwfvgwhxvxwgvvvxxxxxwwxwwvwwwwvxwwwwgxwxxxxvwwwwhwxxvwffgxxgfvhwhxwvwxwwwwvwxxxwwxwxwxxuwwxwwwwwwwxxwwwwwwxxxwwwxxwxwwvxvfxwxwwgxgwwwwwwwwwwwwfwwwxwwwwwwwgvxwgwwvwxwwvwwwwvvvwxwfwwfwwvwwvwvwwxxwwwwwxgwgwwxwwwwxwxwwxwwfxxwxwwwwxxfvgfwwwwvwwwwwxwwwxxvwwwwwwwwwxvwwhwxgwwfwxwwvwuvwwwwwwwxwwwvwwwwwwwwwwwvxxxwxwhvgwfggwgvgwwwwxWVUfUeVeVeUfffvfvwgwgvgfgwwxwgvwfffwvwwwwVefffvgwffgfffvwwhvfwfvvwgwvwwgffwfvgvgvfwwwxwgvwwwwxwgfvwwxwwwwwwwwwffwgvwvwvvvwxwgwwffgwgfvwgfVeffvgvwwfffvgxvgwwwwwxgfvwwwwwwwwwwwwwgwvgwvgwvwwwgwvVfegvgwvwwvgxwwxwwwwwwwxxwwwwwwxgwwwgxwxwwwwwwxwwxgxwxwwhfxwwwwwfwwwwxwwwxxvwwwxxwwwwwxwwwxhvwgxwxvxwwwwwwgxwwxxgwwvxxwwwwxhvwxgxxxxwwxwwwxxxxwwwwxwwxxwwxxwvwxvwxwwggwwwwwwvwxwwwwwgwwwwwvxhxwwwwhwxhvxvhxxwwwxgwxxwxxwwvxxxhwwxwxxwwxxxghxxwwwhxwvwxxxwxwhwwxwwwvwhfwgvxwwhxwwwxwwwwxwxxhwxxwwhhxwwxvwwwwvxwwfxgwwwhwxwwwwgxvfvgwgwwwwwwxvwfxwvwwxwwgwxwwgwgvwwxxgwwwwwwgvxwwggwfwvgwgvgwgwvwvWwgxwgwwwgwxxvxgwwwwfwgwxwwwwvgwwwxxxgwwxxhxhwwwwwwwwwwgwgvxgvggwVwvxvwvwvwwvwvgwvwwgwwxggwwWxvwwhvhvgxvXxwwgwvxwwwwvgxwwwxwfxwwgwwgxwgxwxghwwwxwwxvwwgwvgwwwwwhfwfwwwgvggwwwwxwxwwxwfwxvgvwwwfwgvwvwgwvVwgwgwwfwhwwwvwwvwwxwwwxvghwwwwwwxgvxwwxwwwewwwhvwwvVxfwvgwfwwwwxvxwfwwwwvwwgxvewgvgvwvxwfwvwgwwvwwvwwvwwvxxwgfxwwwwwxxwvwhvwwwxwwhwwwgwghwwhwxwhwwwxwgxwwgxxxxxvwxwgwwxwwwwwgwwwvwwxxwwvwwwvwwwvhxwwhwgxwwxhwwwxwgwxxwwxvgwwwwwxwwxwwhxhxhhwwwxxwwxxwvwwwxfhxvwvxwxxwxxwwxhwwwxwxxwwwxxwwxhxwvxwwwxgwwhvwxvwwwhwwwwxgxwxwwwwhwwxxwwwwwwgwwwgwwwwgwwwwxwgwfgxwwwwxwwxxwwwwxwwxwxwwxwwxxwvwvxxwxxwxwwxwwxwvhvfxfxwwxwwwwwwwwwwwxxvwvxxwxxxxwwxwwxwwxwwwwwxxwwwwxwwxxxwwwwfxvhwxxwxxghxwxxwwwgvwwxvwwwgwwwwwwgxgwxxwxwwwwwgwgwwwggvwffxfwxfxwxhxxwwgwgvgxxwwwwwwgwfwwwggfwffxgwxuwwwwwwwwwxwwwxwwwwwwwxwwwwwxwwxhgwvwwwxwwwvgvwggWfwffewvfWfegVffwveuwvvfffggfufwggfewvVgwvggggvvvgWevgvWfvgwvwvwvxwgvwwhwwwfuwvgfvggfvvwwwwfwggfgwvwwwwwgwgfvwwwgfvvVuwfvgevfWfewwwgUfwwfefgvgvgfvgvWeeffvGfvxfwfevvfWVwgwggvfffWfUfwfFfvxwwwfgwwweWfVgweewwegwfgwefegwTfevvvfwgwveggwwvxwwwwwvwvvveWVffefgfeUvfeuegGudWvuTVeWUffvfgVeevVWVgwffguvfwgdfeuvvVfwfggvgvwwwfvwwuvuwWvuhwvffvgfffwwvwgfwgffvgwwwvwvvwefvvwwVfgWvtgvuUVfWeeevwgVeuwVWGvfwfguvufwdeduvuEgvfgWeUvVffuegfgfvfvgUeffvf6fwgvwggWvwWeVfghgeuwWfWgfgguVvgWdeefggfwwxggvvgfwwwfvwwwewegWgeeUVffgVffvfUguveUwufGgUgfUfewgfeUwfFeFgwggvewewgTwueweGewgguvwwwwgwwwwvwvwffvgWgewfffvwgwfwwggfVwvwwwvwvwfffvwwfVfveEwuVGWTgefVefvgeUvwVfFggfgffwegvUvufweVfggueUvgfeUggfgffgfgUffefgf6vfwwwWvVwwVfUgwVeTwwVvggvfveggeefevxwwvwvgwxgwwwwwvvwwgvwwwgvwwwxwgwgvfvvewfvwfgfgVwwwwwvwgvgwwwwfvwwwwgvfgvwgwwwwfxwxwwwwwgxwgwwwwwfvwfxwwwwgwwwxfwwwwwgvxwvwxvvvffgvvvvvvwwwwwgvvwwwwfwfwvwwwgfvgwggvgvwvggvwfwgvfvfVuwwffvwVufgwwgfwwvwwvwwwwfxgwfwwgwwgxwwfVwVwwxwgwwgvwfwxwwvwwwwfgwfuveVwfgfefvvffuvfewgfwUvfwfeuwgffUwffVUwwwgvgfvwgVfvgffftxxvvvvwwwwwwxwwgvwffgwwevvggfvwgwfwwgwffwwwwwwwgwggfwwwgfvfffwggweuvfgefvvgVfgwwfUwvwvfwfvvwwVvxfffuwvwVfgfVVVxfwvgvfvvVvefvvfftwwwwgVwwfWVwgVfEwwwgfwgffVwgeVVgVvxwvggvwxgxxwwwwfvwwggggwwgvwwfwwvfwgffUvfefffvfggwwfwhvgfgvwwvwUffwvfggfwgvwwwgfewhwwxwwwfvvwWvwfvvvwvgVwgWwgxgggfgwwfwwvwwwguwwvwwffgfVfWfgfvgvwwwvgfwwgfvwfwvvgvwwfVuwgfffwfgwvfvfwUggVvfvGtgfvWuWuwxwxwwgwwwhwggvwwgwwvwfwwwvwvwfffuwvxwwwfevwfwwwxwvvvvuwvfgwgwwwvwgvgvfvvggfugVfvfffwvvvgvgfwwwWVfwwwvwvvvwffvgvvgfvgvfwwwwxxvgvwwwvwevgvwfgfwvuxwwwhwwWgwxgwvwwvvfgvvwwgfgfVffegegvvwvwfxfgfgvgvWuwgffvwgvvvvwwwVfwvvfvWWgggfvvttfgvuuvuvxwwxvggwgxfvwfgwefwwwwgvwwvwwwwvgvwwwwwwwfwwwwxxwwvwgwgwwwxwwwfwwvfvvvwvffvfvvggwwgfwgvxwwffwwwfwwvwwvwwwvwvgvwvvgxxwwxwgwwwwvgxgvwwwwwgwgxfwxwwxwwhgwfwwwwwwwgwvwxwggfvgfguvfwewwwgwxwgfgwwwfwwwgwwgwfwvvwvgfgvvgvwggfwgfgwuewfwvvfuehvwwxvwggwgxwvgwwwefvwwwvgwvwwwfwegwvwxwwwwwvggvvwwwwgfvwwhvVgeVVvfwffgvvwvwffvwwVfffwwgvVwvgfvggfwgffvwgwwfvfUEuwxwwwvfxvgwwwwwwwwvvwwwwwvwggwvgwfeVfffffgwvwwwxgfffffvgffvfwwwffwvgeWffgvfegwwvwgwwwwfffvvwffWvfVTuxwgvggefgVxwwwgvgfeWvffvfVfuvgwwwwwwwfvfffVUTwwwwwvvgffeffEUeVfgwwwgffwwwwwwwwffwwveUfWfffggVffUfvvggDdfVUeffegeUvvwwffFdfwwgvfUfgvwUfvwgUfufwvgUwgfgvwwwwwUgwwwwVevhvwfwfwvfvxxwggVUufwwwwfwxwffwwgfffwWVevgffDgUwVfuwwweffffwwvwwfwwwgDgvwwfUvewfffVeVvVeVgUgfwffUwfUvcfvffvwgfvwwXefgwVVegvWuwwwggfgvgeVWvgfvfWfffgVFfeffwggfeUFfffVVFEVTUVfffeUEEffffUdcgeuVVFVVUteffVUVdcVffgfVWwvvVVffvVUuTgvgVWwvffvggffVWwvwvfuuwuuFVVWVevuwvfffeugggwvVWwwgGVffffUufwgeeefde5FfVFUuUfeUVUeeffgffFVfff6FfefVEueggVFfTddeUUGVWWWfUufVVEuURuUUeffedfffTdfffUEWufuugwgUfWvwTUWvvUUwvgvwwvWgwwwwhwvvWwwwvvffVfffwfgffvgwwgFwdWffeVugUevwwffFwtggwgwugvwgeVgvvVVgwwwuggvvwwxwwugwwwwWwvhvvWvgffxxwfWffwwvxhxxfVvwggvwwfVfugfetGvWVUvwvffVfufgwwwvWvwgtGgvweewvwvWgwVwfUhuugvggvvWeeffVewfgwuwwgfvgxWUXvvWwvwwgfhvwgUXuggUvVVVUUVeDVTUUfeVUUeDffeFEUDECDETTEDETDUeUUD5RUESU3UTEdDSUUEDE5RUEUUUU4UUUU3UeUEcDTfUVeDfTUUeeVUUeDffefUESfFdUCeDFeTdVfUTEESUUUVfeDfVfVCUUUUdDefVT5SU5TT2UE5dDTUUETD5SUVUUUUCUUUU2UUTEd4TfeeDVETEU4FDeDfDVdDUEEd4DdADDdUUFdfVfETUVUDF4eVFdfVfTFEffCFDeVDDfufffvgWWfffvggwffWWvwveeFEFUUVffVeUFEfffVedcfedVVVfuUEeffUUfdcfVfeeVFfffVVvffuTUggvfFVWVVfgggffFVfffgfetwueWWVWufUwvvfffedffvvvWWgwwWVvgvvUewgWfeeveU6FVFuEUvffUVeeegffffWWvgv6FffetUUfWfWWfTdeVGUeFVVWvUeVFtUUuURUUffvuewggTdffVWUtvfdeffVgVuwVWTevUUuvhvwwgvWuvwwwwwfvfWuwwWgfVeUffwfgfffVegwvevDwfffVuWueVvwwWffvDwwgwwwgfwwgffwwvVevguwffvwwwwwwwgfwwwwwfwffVugvfvwwwfgffvwwwwxgvXUuggffvgffffgUUdFdguVeefvffffUvwgwwgVugggFtwwveVugffWefUwUgUfffvgfffgueVuffcffwwwUwwwfUvvgWfewVffxwwgfgwfgUVwfffwwxvgwwxvwxwxxwwgwxwwwwwwgwxwwgwwwwwvgewfvwgvvgwvvgwwggewwwgwwwxgvwhwvwvwxwfwwwwwgxwwvxwvvwwhwvffxxxwgvwwwxxxxwfwwwwwwfgvgvgevggvwwwwwvwfwvgxwwvwwgexgwgwggwwwgwfwggwvffwwvggwgfwfgvwwwwwxwwxwggwwwwwwxxfwwxwfwghvfwgwwwffvwgwwwwgwgVvffvvTEueVVfffUUfefeefvfgffgWVfuwfvvvvfUVefwggfwgvwgeVdwgFEewgwvveVvggwwwfffvwvvwwwxwwxWvffwvfwvvffwfwwgffwgwwwwffwwWeuveUvffgfffFUVegvvfVegeUVgffvgfffwVffeffFCuwwvfvvefUwfwwWfWvggfUUvfFUtwwwwvwfwfeVvwfeUwvvgwwvUVvffeUUUewfwfwvfgwwxwwxwfwwwwwwgfffvgWffgvfwwvfeVVfffffVfVUffUvwwvgvwwvggvfvwfvggUwffvvvwVgvgUfhvwwwxgUwwwfvfwfvvgvwfgfwffwfgfwwvwwvfwwfvggffgwvvwgfwffgeVeefvfffUevwwgwwgvfgeUwwwevgfwgffwfVdfvfvfvVegffgfgfveVvVwtffffvfggvwxgwwWuwgfxwwgvfvfffgwvWvgffhvgffvvwwvvgWwwwwggggWwwgvvfeVVgfWgVWVVVfvfgggfvegffVfVFgFdfwvgfugwwfvfffffgvVGgfveVvfgwvfVvgwwfwgfWwwgvwvvfvguvgggVfVvvvwwvwwwwwVgwvvvgfWwfggvgfhgUfVdevgVVVFvfeffuffgvffEWfffffUWfVvfffVfvVVWefUtfVWfWVVfVvVGgcvfeuUffeufgwgwutfVgggwfveuefhwwwvvfUWfeeegggwvvwfWwwvwvwwvWwwwvwfWVfvvfgefgvfgewwgvVgvVveegdWUvewgvVwvwgwfgeWgfwwvtWVfgvwwvvfuWwvggvgwvWwvgvgwgwvgwuvgugffwwwgwvwwwvgvWgvgwguggfvgwgvfeeeVfdvWeUEvUgwvgwuVwwvguGfvwvguVfvUfgggvwvgfwffefgvvWvgfevWfsfVfffgwvwvvwgefhvvwvfgwffXuvwfVWfgfUvfgffeffffUwgvfVffvUgfvwvgeUUVVeVEeUeUVeeffffVdVFdeeV4VuUdfffVdfffffeDVeevff4VtUefefwffvEgwvgVffvEgffvvvwWufFevUgEVveugwvWuvffvvfTVfefffEfuUfffVveVFeU6dfVfDFuEefffFeeVfefeCVVefefDVuEeffffewUgVuVuVVefUfUVuEeEVuRUtUUUuWuffwgvWueWVvgvfgVeTWUfgfvWUWEUUvgfwgwvwgggwwxwvwwggwfwgvUEVVvgWgeWfWVftWfffffuvuffwVFvUVgvfvvegffvfggfVwVgWGefvVffgfVVVwfgwvgwWgvufgUggvvwuvgggWvVfwwvvfwwwfgggvgwWvgWwfvvgvggfffffdefVeUf5VgwvwfvgffvfGVvfgfVgeefeggVfVfVVVvfueVUfVWWVuVdgWffcvUeVVfuuwwgvwueXfvgvgvueeWevgvVvdhfeeewevwvwwwfvwwxwwwwgvwvwvffufvwfxgfgvgfuggwvwvgggffgfVuVfwxwwfwwvwgvwwwgwwwWuevvwvvWuggVxvwwwwWvwvwgvwvfvwfwhffvfvxxxwfwwvwwgfvwwwvwgvfvggwgfufffeUUfwffuUdvgwwwfvwvwvgWufwggvfvfffwgwgfggfvfgfgfffffffffgvgwtfvfgvwfwwwgfWffwwggewfgfgwvfwvgvfvefxwxwwxxxwxxwwwxwwxwwwwwhwvfwwfvwgwwwxwwwwxxgwwxxxgxwwxgwwwwwxxxwxwwgvwvxxxxxxwwwxxwxwwwwwwvgwwwgexwgwxxxwxwvwwxxwwwxwwxwwwwvwwfwvfwxwfwwwwwwfgfggfvgxvwwxwwwxxxxxwxwxxwxuWvwgeffvfvvewwffvfvwwFddUeEffTgveeeUefwgVVefeVV4fEVfeffwgfuVeVfgUfvfgfwfVVffffeffWvffvVwwfgwffgfvfwfggfwfvxVheWvefffwvfUgvWffvvgggwggvugfefgVEeffUufVFCVeeVfwgffeFffgWUffVffgeVfeVUUfevgffUtfeUffgVgfXefvfWtdfeTFUefvgfwwffuVggUfeffVVggegwgwVWfdUTfffwwfwwfhvwwwhwwwwwxxgUUfdgegVfvfvffeWfVffeeffeUGeGeUfvwwfvfeeggvgfffgvWeWuufeeffgvwgvXewvwxfgffvgwgwwvwwwfgfXvvvfwwfgggvvwvwvwwwxwvggvvvvgwwfeVVffveWDGUUffwwvffVffvfffwgfwgfgffveefUfwwgWvevefffhfgvvvfgvuuuetVfwwwgwwwVudgggfffwgfwggwfwffWWwefefuhewfvgwvgwvfwwwggwfwfFeeeuFuVevgefffeVgvWufvfvFWEgeVfuwwvvfefgfVffgwwwwVguVwfVgvgfffgfwwfwwwffvwwwwfwwvwWwVhfewvwwwwwVwvwvwvgwwwgwfgwgefvwWefeffeFf5FdEfeewfvfVefeffVfgvvwVfegvfEfeWggwweufVfgghfhvVwfgfewfegeEvggvwwwfUgwgVfgwgfgvgfuwwwfugfuedvgxwwwVvwgvwxwgwxvwwgwwwwwwwwvwwwwfvggwwgfwwffgvfvwwwfgwwwwgwwvwwwwfVveuvxwvwwwgwggvwvwwxwwwggxxwvwwgwxwwwxxwwwwgwvvxwggvWWxwfewfVvxwwwwwwgfwfvwvwwwwwfwwwVvwwvfwxfgvwgfwvfvvvvxdfvvgvvfwvvxxxhgvwhfxwwwwwxxvwxfgxfwegufVfvegVfefvwggfewff6DUEe6VfEffeVFEefVeVFUeVfvEeTVfTeffefUFUVUEVfeefVfuEvffUfTeVFUeUuFffVwwvgWUuvfffVfwWvwfwTVvTefwgfeVfVfVgfvegfwvegvvffTegVUTEVUUUTU2TUUdufFgfUEffUeffUugfVUewfVUUdfevefWVVfeVTwuvUffEveVvTVfUUTsgfWffffWUwgVeVTfegfffeuVdgfeWTfVT6vwwwwwfgwwxggwhxxwwvvvvggvwwgvfwwgggWwvgvvwfevfvWvwwwuwwvwwwgwwgwwwxfevwwvWvwfgvwxwxwhgwhwwxwgvwxwvvgwhwwwwvvwvxwwwxxgxwgfwwwwhvxwgvvgvuwefgfuWvwwvffvvvwvfwwWgwxwfVvhvvWuwfwwgfvgwwfgfwfgwgvGvffvfwffgvwwwwwwfvwwggfwxwwvwvhwvwxwgvvgvvwvwvwgugwwwvwxxgwwgwvfvwwgwwvwwwwwgwgwvvvfwvgefgvfuvwwhwwfwxwvgxgwwwguvvvuvwgvWwxfwwxwwWwwgxwwwgfgwvvvxxwwwvwwgxhwvvwwvvvwwfgvfwvWffvuuvvwvgwvgvwgwvgwgwwgfuvwvvuwwhwfvwwggvwvwgvwwGgfvvvwfgwwvwfwxhwggvwwgvxwxxwgxwffgwfxvxwwwfgwwvvwwgxwxgwvwgwwwwgwwwwgwgvvhvwfvwvefgvweexwwwwvxwgwwwgwwwvvfwffxwewfwwwgwggwwwgxwwwwwwwxwvwwfwvfxwvxxwhxxgwxwvxwgwggwwgvwvffguwvVxwwvwgvvfgWwwwWwwwfexvgwvVwvgwwgvwwwgggwwwfwwwfFvvffvwgvwxwhvwxxwfgwxfxxwgxfwwwgxwwwwxwwwwvwwwgfgwvwwggvwgxvVvvgWvVfefgvvwvwvfwwgfffgewwvgewggfvwwgwgvgegfwwfffVEuxwwwwgfwwwxvgwvwwwwgwwwwgwwgwvfgfvVegvfffgfvwgvgvfgffvwwgfvvwwwfgwvgfVfgfwwwVvfgvwggwwwVvgfwwffgffVTuxfvgvwwfwVhfwwgffvwWvgfvgVfwwwwfgVwwfgfwwwUEwwegfvvgVewwwTUffvvwwwWwfwvxwwhvwwxwvwwVvewfgfggvwvvwvuvgeffWffvUfffeVfvfgfvvwgwwwUvfwffvxxuwwvwgfwgwfwwwxxgvvwwvvwwvhvgWvwfwwwfwvwffwwvxgwwvffwwvwgxvwgwwgvweWufVfvfwffffvvUfwvwWwwwfwfwffvwwvfgvwgewUffgvgvgffgVfVwtfwfvffvvwewgugvWVfvwWwvfwwgvgvgffgvggugwwguwvwggwwgvWWgvggwuewvgvvWeFVVeVfvdeffvvgffgveevtuGGWfVVtfWVfffwwvVgGGWgWUvuvffvvgwfVvvWgwvggwuvwwwggwfwuuwevgWgggffWWvwgxwwvWgVfggfvgwvgwwvggudtfvuVVVVWVvUGGffVggffgVVVWWVvvfWvVwvgfWVgwedvufUXVGgWfcvVVWeuefvFVvedvueVWwwgffvggvfuufTWffhedgvgefvwwvvfffvuWVgffWweffgvwvweeeVEUUVVfUVUVefvfVFfTFfecFdVTuUedFfUefffWfcFdVEuUfffeffffgffvuWVfffWwuffgvwvwfWfdWwudVuWeuVveFgUvfgffudVuWVuegveffvggwwUFfcVfddFeFUuEed6VUfffVffdFeFUuTffVvfffffvfefWfUwUUGefVuWUrUuWEuUVueUUWfUwUUWdfffgvgwvfVwEUWUVgUDegwgfwfwgggfffwUguffvWufffwvwvVVfUVTeUeVeUeUfevffeFdeVff4fEVuUTfDfUVffVgff4fEVtUefffefffegffwUgeffvWugffwfwvgvFevWugEvUWveegTveVvgfffgEvUguUfwffffgwfwVe6dffefDfTFuUUfCfeUfffVffDfTVuEeffvVVfffvffTvVeWuUWTfEvUWuRuUWtUeuUFUtVeWuTWUfffgfwgwvfWuUWEeWVUUwgwfgwwwvvwwgwgWgwwwwvuvvwvvgVeVFVffVgedfewvgffVfeevuvGFWVueVeVVVffggWvvFGWWUVvvvffwgWgfgvWWggggguuvvwgfwwufwfuWWggffvVfgwwxxwvvVWggvffwuvwvwggwfwtdwutVVfVvEVvGGfffgggfvVVgWueUwwvVgvvwVfeGWgdueUgUegWVgvfcWgUfvffVFgduuUGevwgffggggfuuVgeehffdewvfvvwvwgwwwvwgvwwwwvfwvwwfewgevggvwfwfvvggwevwfefVgWefvfffwgvvvwwvfggVugvffvwxwwewwvguuwgvwwxwfxwwwxwwfwwfvwVxgvwwvgvgfvvwvvwggfvwwwvgwwfwwwwVvfUeffvfffffeewVevfwwWggvgvffvwwwwfwwvgVfVvwfgfgffefvWvgvtgvffwwvguwewfgffwwvgWwwgwewffeVgwfwewwgwfwvwwxwwhvvwwwwgwwwwvwxxxwwwwwxwwwwwwxxvfvwvfwgggvwwvxfwwwwwwwwwggwxvwvwwwxxgwwwgwwwgwvwwwgwwwwhfUvxwxxwvgwwwwvwvvgxwwvwwwxxwgggvfgwfgvgwwxvvwwwwwxwwfwgwgwwwwwvxxxwwvgwwwwfvwwvgeVuwWvwwwfwxwwwxwgxvvwwxxwwwgvwgxxwwwxwvwhgwwgxwwwvwwwwwWVvvVhvwfggewvvvfwfwvggVtggfEgvfefwgwvwwwwfggfgvvggwwwgvvvgwwwgwwwwwwvwxgwxxwwvwwgwgxwgfwgfvvvwwwfggvhwgwwwwgvwwwfwvwfvgfgegvvfvggfwwfwvwwgfeXfwgfwgwWffwwwgVwwvVuVWggVxfwuegfhuvfuegffvvVuVgwwvwwwVgfwwVVggfhwfvfWwvwfgfwxwwwwwwxwwwwwwwxxffwuvwgwxgwvvhwgfwvvgvuggfWffVvwwwwwvwwwfgwfhvvwwgwvgfvfwvwvwwwwwwwwwwxwxwwwwwvwwwiwwfgwvvwvvwwggwfxvwgwxvwxxvggvgwevfvXffgwwgwwwwvwwwfhvvwwggwwvvvwwwehwwgfggvvhwwwvfhvvvwvvgfvwVvuggwfvwwggWvwWvfggggggfgfWwvgffwwwwwxwvwxwwwwwwwwxwhfvughgwvwxvwwgwgxgfgvuggvVxfgfvwwwwwvwwwvgwghvgwvwwxgxfwvwwwwwwxwwwwwwxxwxwwwwwwwgywwxgvggwvwvxxxvgwhvgxfgwwwwwxvxxvvvvufggWgVfffvgwwwvwvvwwwghvgwvggwwgfgvvwgxvwwfgvgghuwfwghffwvfwgfgvwvVgvgfvwwwWvfwvuVgvwgvggfVvgwwfffvfwwWgvvgwwwfwwwvvwxwVfuwVfffewgffuwwwfdUvWVVVuwevfvgFuwffVwwwwGvweUfvwtwwwgeuwwwgwugwvwfxwwvwxweWggfvfvvwgxWvwvfgvwwwWvvfwewvxwvxxdFwWVeUtwffUuwVuwffVwwwgWvwfffvwtvwwweuwwweUUVwWvWfwgffSeefgffVxfvwfewgevvxWwwwwgfggevgxgffwwhewwwggwwwwvwwwwgwwwwvwxXVfggXvgevvvwfggggwvgfwgfvvwVfwffgvgwfgfwvwvvVvggevwgwwffuwggwwwhwwvwwwwwxxwwgwhwwvvwwgvvfgfwgwwwvwgvwvvvwwwvvwwwfgfGegwvTVvffvvfhwggwwwvwvfvwfvwvwwgwfvvwevgwhfvgewevfwvUwUfwUvvUfffgghevgegwwwwwWfwgWewgewhfgffgewwvfvwgwgwwxvxwwgwwVfWwfvwwvvhgwgwwwweuugfefXwfvhvVgvvwvwwhWxfvvhgwwhvgwwwghxwwxwwxwhwvvvwwwwwxgwxgwwwwwwwwggwwxgvwxxvuvgfffWwWfgvWgwwfwvwwwWWwgfvhwWwxwgvwxfWvvvhffwwggwFfuwvVwhvwvwxugffvwuwwgxghvwfhwfwwvwwwwwwvhxwwgwhwxgevWwfwvfxvvwwgwwwggwufffuggVwvvuWwgvwuwxxuggfwvvgwwwwvvxwvgwwwwgwhwxwwwvwwvgwgwgwwwvxwgvwwwwwwwhfwefeuWwfvfvXgwvwvxhwgwfvvgwwvvwgvggxvwehhxvVgFvvwefvwwvvwvxWvwfhhwwuwxwwhwwffwhggggwgwhwhvfwwgwxWgwwwxvwvgwxwVfwWVfffuwfffwWfwweuwDVVewGffwuUVwgffvvtwwWwWffwvfwWgwwwuVwwWggggwvwvwvwwxgwxwfwVfgvgWwgvWxgvfwguwVwgfgwwfwwwxgeuwEfeUwVgVvvfFwgffvwdwwGwWUVwvfwWwwwwuVwweffvwefvXXfUUV5vfVwVwvVwvfxfuwfVvgxwwuwwwgWvwgVvwhwffwwfgvxvvvxwWfffWvwwgffwvwxwwwGUeeEufvVVUeeewgUfffeUfEcfFffVffVVVvwvwwfgwffffWeffffvfvvgfvgwvgfvgwvwvvwvwfwwwwvwgwfxggvefffvggwwvvfwfxfgvuvgfvfvwxfwWefegVuUTffWfeefVeffvwefvWeffFfeefEefgfwffvWEwfuwvUggwfgVgtdfVguefuvGVvfugvUggwvfwwwwwfwgVggVfgdVVgfewwwfggwfgvwvxwwvfgwwwwhwEVfeegufffVffgwfvfeVeuGudfGVfteeffUvvvwggfffWwgfefVgvffvwgVgfgfwfxvwvfgwvwwvgwvwwgvfXwwuvvgvefwwvxwfwgwwgffwvwvgwgwfwdfffVueUGffdefvVevfvwhwfffWfweffffuuvfwwffwUWgvevWggvwwvhfuufgvuevvfUVfvuwWfgfvggWvwwfWeggggwgUfggfeuwWvfxwWffgVgfgffvvwwwwwGVeUEvffVVUevfgfffffUefcEUfUfVEfUVVvwfwvggVVfUgfEfefwgwvwvvgVffgVuwffffvwvxwwwgfvwtVgwfwgVwfffgfgxggfgwfwWVfvvwfwvvwfgVUTfcUEVeVVUfUVFUgfwvgfVFVeWVVeefvVwegvfgvWWffvwVuWgwfheewfgfVgfewVFvVvwVuWvwgvgwwgwffVvgVvxVtWvgfegwvvwggWuwwwwwgwwwvwwwxxfwfwxwwgwwwvwgwwvvfwwwufgfgvwvuwwwwwxwwxWgfvwfwvxvvwxxfwvwwwwvWwvwwgwwvvwxfgwwwwwvwxxxxwgwwwgwwxvwwxwwfgwvvfvwgfweugvvwgwwvwwxgffwwgvvfwevwwwwwwWggfwghwxXdwffgwvvvwwvvwfuvwxwwghwxwxwfvgwwgwwggwgwgwvfwwgwvfgwvfwgvvvwgwwvWUdFUufVVeTTVvvfgfVfVfgGTvevefwUfVefgfwggfWwVvfffUdefweuffugffuVfwwffeefvwgwwwwWwwXfewvgefWuwgvwwfwgfwfWgfvvwwevvwvvfffUf6eeCUfUeeeVVegfwgwgfeUvfVfVefefVuwgfwvwdeWfgwvWdwfwefveuefvUfwVfetgfgweWTgwvgewwwwvhfvgevgefVvgeeFgvvggvhvgxwwvwhxwwwwwwvwwwvxwvwvwwwvwxwgwvxfggffghvvwwwwgxwgvvgwvgvwxwhwxxwhvxwwgwwfwgxvwwwfxhvvwgwxwxwggwwwxwwwwgxwgvhxwwvwwxgwxvwegfffgwvgvgwwxvwwwwgwfggvWvwwvgvxwwwgwwvfwwxfgWwfgvfgvwvfwvwvgvfwwwwfwwxwwwxxwwwwwwhwxwxwwwvfwwwxwwxvwgxgwwwfvwwwwwwwwwwwvvwvwvfggvfvgwvvxgwwvxwwxfvvgwvvvhwwfghgwgvwvgwwwwgvwfwewwwgwwwWwuvxwwggwgvwhxvwwwwwvwVfWfvuWwvvfwgwwvwwxwwwffggvvvgwvwvwwxwwwvvfwhwwwGfWvfvvwwggvvwvxwwwvwggxwhgxwwwwgxxxwxxwwwxvWvvgwxgwwwvgvhwwwxfVwfwxgwwwwgwwwwwwxvfgggwwWvfwvxwwxgvvwxvfxWxvwxwgxGfggvvggwwfwggwwfvwxwvfvwwxwwwwgvwwwwfwgggWgwwxwgvwweVwfffgvvfvwwwwvwwwwgfewxwfwgfwwwxwfwffwwxvgwvwFwfgfWwgwvfwvfxwfgxgxwgxvxwwxgwgwvxxwwgvgwwxxgwgwvwwwgwwwwgEewvvwfvgUfuwwVfgvwgwgvgevvfvguvwvwgwwxwwwwvwwwwwfgvguvwvvwgwvwwwwvvwwxxhgwwwxwwwwgfwfwfgvwwwxwwgvvwwwwwwwwgwwgefwwfvWUffWvgvfwgfgfwwvvwvwwgvwgfVfgfwfwghwfwgwwwgwxwvwwxvgwwgwgwffwwwwwwwgwwwxwgwwvfvgwwwvgfgwvhvwxwwwwxwwwwwxffvwvfhVvwwffwgvvgwgUvgewevwwwfvwgvgwwhfwewwfwvwvuwwgxxwwwwwwvwwwwwxhgwwvvwvwwwxwwxwwwwwxwxwxxfvwXVvgewewvwvevwwwwwwwhgxfwvwfwvwwuwwwwfewfvhvhwxwgfvvvfwvgwvgvfgvgxwwxxhwwwxwvgwhwgxxwwwhxwwwxxghwvxwwwvwwwwwgvfwVguvgffgvfggfwwwVuvfgXhxfwgfgwwvvfwxfgGgvvgxwgxgfwwwwwxhfwwwxwxwwwgvwhgwxvxxwgwxxwwwwhwxXvgwwxwvxgwvvVuvfXWgvuwgfWwvgvgVvxegGfgvVgwfwguwwggfgwvgwxvwgVwffgwgvewwghvfhwvwgwwwwvwwxWvWwwwhvXwghgwwwwvwxwwwxxgufgfvevvwfgvwfwwvfwffwuuWWwuggwgwwgwvgxgvwugwwvgwvxwvwwwfwvwfvwgwwwwwwwxxxwwxhxxwwwwxgvwxwxvwxxwwwwxffvgevvuftWwugggwvwfwgxWfgugwwvgwvwwuwvvggfvgxwvgvWgvwggwgvgfgxwxguxwwvwwwwwvgxwVxvfhgxwxfwvxwwwwwxxwwwwwwxwgvgffgXuggvgffffffwgvgXvvewUwwuwvfwwwgvghgvgwfwuwewwvwwuwwwwwgwwwxwxwwwwwwwwwgvfxwuwwwwwwwfwfvxfgvfwwwwuwwgggffWvvfwUwwtwwfwgggffhfvfwegvwfwwvwwtvwwvfhghwhwvvwUgvewfgfgffwexXuwxwhvxwwhwwwgwwxwvWfhwhvxugxgvxxxxxwwwwwwxwwfgggvvvfvvuvvgwvgwfvvegghgwgugwfwwwvvxggghWWwvwWvwwwgvgwvwhwwwwwwwwvhwwwwwwwwxxwxwwvxxwwxgwxggwwxgxwxwwxvwwguvfggWgwwuVhVwwwvwxwWghWWwvgWwwwuxwghgwvxgwvwgfvfggwwwgvghvwfvxhvvhwgwgwwxwghfwwfwvwxwwwgwxgxwwxwxxxWfffUWxVgfffvfggffgwgVvFvhvWggfvgvxwxfxwfvwvgwwvgvgwwwvwwwwffgwwwwwwxxwwwwggVwwgwwwvwwwxwwxwwxwwxwwhwwwvhgffEgEvguWvwgfvWvvwgexvVvgwgvvvWvgwvvwuggvgewwfgvgvVvffugvwwwwugfwwexhwwxwgwwgxwwhfWwhvwwxvxgwvfWewwvvffuvWvgwwvvgfwwwfgvwgwwwwwwwfwwxfVfVfVVwwwgvgvwwwwvvvffVUwwwVfwwwwxxwwgfwvugWgfffwvwvgwgUfggfVvffgfwwwVvwuwvgvgwgwwfewwfgxwwwwfvwwVFfeegfgwgffgvwwwwvvvvveTwwweVxwxgwgwwwvfffgfvFvVeVfvVvfffwVgVwfgwfgvxgfwxvwwwgfvwwwUfwgfghggwhgvggwvvwgvgWfewgffvVffVffVweVGUTfVVVevffwffWeefVUVdgfvefvgefVggvgffffgUVeeffV4tgwwfwwwwvwgfvwgvwvwwwwwwvvgvfewwggwwwfgwgggfvvwfvfvgvwwVVevffffgfeuvVVfuvwvggwwTfegfgvfvwfvfeUevwVTtwffggwUVfgwwwgeguvVefevfEUtwwxwvvgwxeefffgUVwwfwggwweUfwgUVUUewgvvwVfguwwwgvwfwwfVfvwfvwfgvfwevvgefwvVUeffeffEuwUggvgfgffwwggvfvwwggwggwgfwwwfvwgvwwwwwvwvgwvgwgvwfgffufvxffgvgvwgfxxwwwgwwwwwgwvgefwfvvffwvgUfgevgwwgvWuggVwwwwwgwwvwgvgwUwffffvfvFgwwfgfffffvffvvfvfggvgvggfghfVgfgguwgwwgfwwvgwwgeggvwvvgfUVvwvuggwvvvuVufVUTVfgeuVVgwuvdffVgfeffedffVeUVcvVFwfvVvVfVvvgvVffgvggfVvfWfvwfgwwvvgwwwgvwvvwvvvwvuggVggfuvfggvvuvgfwwgwvvuwwvvvwvvfgwfwffvuVfFVVVuvfgguvtufehfvVffgugvfgfffufgfVWfvVuv6ffVVVVgduUWfUefUuVVfueeufUguufehefheewwwfwvfwtVwfwufugfgggwvfuWvWwvvvggwgwvvvgVfevfvfuffgvVvvwwfVwfFfUeeUVUvTgtWWwVvUegfgwgfvvwWvwgwvgfgvwvufwWwvvwwwvwwwvwwgwvWwvvgvWffguggwfwefhwwwgvvwvwwwgwwgggvwfgeVgefWuFVvUguVfwUwdfXvgvfvgwwwwgggwvvgwwugfwVwf6gvvgvgVfeffvffeffgwfwVehVxffhffgeUfwwwggwgwefwgwfwfgffefffvTggGuVffgwfffwffeeUUVVeEUVUfUVeffVfVfVFceEfDVtUde4fVdFdEWUffVeefeVfeVffffVfffvUfgWuWfffvffvwvggWugVdwUgTVveufEvWuFeVWegwVfefffvvfgfffVgeVfeVFdfTfCEuUeeDfFe6dUWTffVVevffffffffefwffUfWeFeU'UwUgUVtUuUfeUVuEUUuWuVeUWEWueWVTWUUUffggwfgfuggggvfvgfgwvwggVfvvuvfwgwwwwvwfVfWVffeeUVgvuvfgvgvfvgeedfUVVvdVVVGfveueWfVffffeffvfffgffffVgwWgwwuvfgwwwwwvgfgwvvvvugfVfvefggWvvuvhfgwwvvfwvwwwwwwfghfgffefffVgGVfDffffvevtUgfvwvffvfgwvgfwvefgggVgefuteg6fWVVVvefGUuVfuVefVveueehfutegeVWefefgvwvwwwwvvwfwffeufwfvwgfVufwUxwxvwwwgfgfvfffwwfffgguvvWVfffgffeUVvfffUefvWuwgwfffvwwwwgggevWfgWfvgfdwggvwwfwwxwwwwwwwwvfwwffgvgefvwgvgfffgwvghvgwvfwgwwgwwvgfUefffffffVuVevwfvwfwUgffwvgvgwvfwgfwwgwfWffgfvfweffGwfvfvfeuVuffvfffgvwfvfgffwUhfwhffwfwxwwgwggwVwwwvfffwhwwwvvxxwwxxwwxwxwxwwwwwwvvwwwVvvwwgwxwwwwxxwwwxwwwwwwwwxwwxxxwwfwwxxgwxwxxxxxxwwxwwvvwwggwxwgfwgwwxwxwgwxwwwxxwxxvwffwfgfwfvwwwwwwwgvwvvvfgwwxxxwxwwwwxxxxwegefWEUUffgwWwwdfVUevfG4UTUVVfFffcVVTTeffUUTUUUEUD#EUUeefFfvUUfggefWUffvGUUefFUUUffVvVgvfgfwgeevVfffwvgvvgufVfEWudegffVfguvgfvwvVgggfVVfVVedfvVfEuffeUEfEVedeVfeUfFuefvVffVVVfVEFUUVedeefgWgeufuVGVfVgUgdefVVdeUee5EufvfvVffUuegwEWVeffufffFVWfvEVVVfcEVWvgfffgfgwvgwwffwwwVTeeeefvfwFeWeffufVVfTfefVfD6edefVffvVfegvVvgfgvwvVefefedeWggvvgvwvwvwggwvgfggwgwuwwvwffXvvewwvwwgwvgwvwwwgwxwwegwgffewwvVutwfVfWeGeefggfgvVveWgwvwwgvwwfVefvfuffwvfhgfvfgWvwgfhvuvfWvfeeveFegggeggWewggWgvevwfvwwWgvwggVfwgdefxvwwgwfwuvfxxewffvwvVUedVffggvfevfeVfVWvuVfffeeFGdVUeffffvvfgffvwgwgwgfefgffVfeVufgvwvwwxgxvwwwgwxvvfwwwgwWhvfwfwvgggvggvvvwwwwwgvfwgggwvwgftUfefVVFgeVeegfgvfuVfuWwwgfVggWVffwfVfegvhhvuVvfWuggwggvfwVgfffvTveVvwwfgwgtUgvgWugfugwvwwgggfvfffwgfevxvwwugfwvvwwwvwwwvwwwwvwvwwwwwvwwwvgvvfgfvfwwwwWvevwXwwvwgefgwxwwuwwwwvfgvvevwgwvgvwvwxwwwvvvwwwwvwwwwfwfvwhxgwvgwwvwvxxwvwxxfgffwgvwgvVewhwwwxwvfvwvwwwwvwwwxffwgwwwgFfffwfwwfwwwwwwgvwwvfgvvhfwwxgvwgggwwxhvwxhfgwxvUwvwwVffffgfgwvuwgffgggDTUFUeeVgvdfVUvggfeVfeWUdfe4dfUUgUefffefVVvwffvffEfegffUUeVfeffVfffgwwvvffgwwwXvvgfffwVfveefffgwgwwWffxvgwfwVeVgggfefvff6TfeVeUfTffeeefeWfVfffVvwvfgggfUfgVffevfvwefGUgvfGTgffffVeeffVeeTVUdgfhevgeWfvgefWeUFfvfwwwgVwvVfUfffEvgwwvvgWwwwxwwwfWwwxxggwfwwwwwwvwvwwgwgfgfuvvggvufvguggwvvWfvvwwvgwwxwgvwgwugvwwvWgwwxwwgwgwgwwwwfwgwvgvgwhwggwwwxgxwwwvwvgwwfgVvvvwggfgvVvghwvgWvfwxwgwwwwfwwxwvWwwwvwfvtggffggwwwwwggvvwvggwwfwxwxgvvhfvgwwgwwxxvfwwgvwwwwgvfwgwvxwwgxwgwwvvgfgvwwgvvwgwfgvfVgwuvggfwvuuvwgffefghgwvgWwwgggwvwuuvgwghwvwwwgxwxvggwwwgwvwxhwvfvwwwwwwhxgwwwwvwwhuVfgwvwggvvvuvvwWwwVfwwgwwwgwxwwgwwwwvuvgvgvffgtgffvwggvvvwvwvvgvgfgfwwvwxgwfvwwwvfwwwwwwwggwxgfgwxvfwhwwwvwxhvvwvwvwwwhgwwgwwwwwwgwwwwwwvvfegevwuwffwvegwgwwgvwwwwwwgwwwwwvvfwvegwvWxgwvxwxwwwfwgwvwvwvwwwwwvxwxwgwxxwwxwwwxxvgwfgfvvwvwwgvwvfgwwvxVfwxvxwwgwwwwgwwwguVxvgffvffdgwfwgggwwvvffvggwwwwxgvxxgfgxxxwgxghvwxfweWgwgeffvfgfuwfffggvwVdeeUVgftuveeUvwVgfeVdfeVV4VfefVVfffffvvfwvVffwgfgVffevffgvfwvvVfwwffvwvVfwwggwwfgwvgVwVfvfvvgvfvwwfgvvggwvwxwWfvvvggvfgfUfVfegVgVfffeffufvffTffeVWfffgfVVVffVgvvwfVwfUufVegVgffuvVEgffVduVUffvvgVgfgvUwgfgvUffvVggwvwwwEWVefgwfvvgggvfwfwwwggwgwwwwgUVvtfvgWgvWvfgwgggfVfeffeeGVffVfggffvugVfgggfgwgfWVgvefgvgwgwgffwwgwwwgwfwgggwgvwxvfXwgfwvgwwgvwggvwgwfwwxwxwgwvfwwwwfUveffueGeeffgwvvfwvfVfwggWfwgwggfvvfWggvwgfhwvgffgwfXggvvueXvwvfevfffvuwgfggfgggggWevvfgWvgwfwgWgfVfwgfhgwvwffvgfwwwwwvvgwfgUutVVfgvwfvvwggwfgvtVfefUgeeegfvVggvgfvfvgwvvgfwggfwggewVwwvvfvvgvwwgwvwvwgwwwwfwvxghfwwvgvfvwwfvwfvwvwwwwxwxvwwgvwxwwgftVfefVfeVffevffgufvefegffwgWgfgvwfgegggwwWhvwvVgwgfhfgwewfXvfgvVffffufvvVvgggvgfugVfwwgvfvvwwggvgfUwgvwwvwwhxxwxwxwxvfvggwwvwwvvgwwwwvefVgwhVfvxgvxuefVwhgwwwwxxxfwxxwvwxxwxvxxwvggxxwwvwvwvwgwwxwvxxwwwwxvevVWgffuwffwvvvwVxhfwxuwwwfffwxwwwgvwGfgffwgffvfvvwfwwfwwwvvgwvxvvwwwwvxfxgxvwxxhwxgwxUgwwvvfeggVvfwggvwwvfwgTUVFVeeugWefwgeVggvWfVVffVeeVfffuevgfVffeVVfffefgffffVdVgvggeffVfffwwxffwvfwgvwWfggwffegvfvvvwgfVwvgffvgwvwxwwwvfffwwfge6TfeVfTVfeefVffefffVvfeffvwffgvvvvgffgvfwwevhfGUfffvefffwVvUeeefgEeUegfgfvgegvvwUeWTfVvgfgewvwwwggffUwvvwwwvhhxxwgwwwxwffgwwwwgwwwwwvvgwhveffwvgeeWwWvvgeWvhuxgwwwxWwvgwfwxwwvxxgwxxvwxwvvwhwvgwgwxvgxxfwwwwxwxwxgvwwwvfVfwvWfvVwvWvgguWuvfgxxxgwgwwWfxwgxwvvvwtfvfwvffwgwhfgfgvvwvvhvgvxwvgwvvgfwwvhwvwxhxghxwxwghwxwxwwxxxhfvggwwwwwwwwwvfxggWgfvwvfevWwufxhWVwwvfWwggwxwvhWxgwwxwhwhxvwvxwhxwxwxggwvgwgwwwwggwwggxxxwxwxxhxvwwxwhgVVvwvefvWwvggWWgwuwgggwwwgevxgvwgvgvvtvfggfwvhvggfwvvvwfxfgwvxggvgfwvhwhgxwgwxxwxhwwxwwvwgwxxxxvfhggwvvvwwwgwvwwwufffwxUvfwWwffvxWfwgvgfvxgwwxwxXxvfwwwxvwwgxwxwxxxvwwwfwxgwvgvwxxwwwwxgwwxufVfwVffgvvuwXefvvghvxhwwxxxWvgxhgffwftwvwgfwgxgvfffwgwfwwvgxvwgwgwwwwwxvwvfwhgwhwvwgfeVvfwwgxvwgVvfwVVSfugvggwwfwVfeEVfffVffVfUVTUeVdvffwwfefwfvvffuwwgfevgVeVdegfeevfwwgxvwgefggwwwgwwxwgffwwffwwwvgwgwvwvwwwxgwvwvgwwfwffVefefVfVEEeVefggwweffwfffWfvwwgefvgFeVuVvwgxwwffegvwfwwwwwgeffvfffvvgwwwvwxwwwffeffwwwvwwwwgvVffffffuvvwwwwwwxwwxxwwwwwvfwvvvgggfwxvfwfWfwWVvwggWUwfwgwwwgwfgvgwwgwwwfwwewvwvfwvfwwwxhxxwxxgwgvwxgwxxxvwgwwwvwwwwxvwwwwxxgWvggwhevvwwwwwwwfvgvhgxwvwwwwvgwwwwvgwfvvgvwvgfwxfwwwvwgfffvvvwwwwwwxxwwgwwhgfxxwgwwxxwhVfwxvwgxgxxwxvwxwgwwwvxwggwwwwffwfgvwgvwvWgwevvwwwfWwgwfggfwgvuwwvwwwhxwggffwwwwgvwxwwxwwwwwxwwwwwwwvxwxvxxwvwvwwwwwxxwwxxwvwwxfuvwwwgfwgwvwwwwguvuvgwgwggvwvwgwwwwwwwggwwxwvvgfgugwwxxvxgwfvgfvvggwwvfxxvwgwhgvgwxwhwgfwwwgwxwwxxwxwwwxwwwgwgvvwwgwwwwxvggggvwxwvXvgwvwwwwfwfwwvxwxwwwxgwxwfwwwwwwwwwwwxxwxxxwxwwgwwxhwxwgWxvwwfgvgwvwwwfwfgxwwwwxwwgwvxwwfwwgwvwwghwwxxxwwgwwwwwvgxwxwwgywfxggxxwwxghwvxwwvxfxwwgwwwwxwwxwgwwwvhwfwfgfgvggfwfgvfgvwwvwVwvvguwwwwggvwhwwwwgwwwVgwugwvwvwwwvwxwxwwxwwvwwvhxgwwvxxwxhvgwxwwwxwfxwwvxwwvWvwgwvfggwguwwwwhvWvwWgwwwvwwwfwvwwvvgwwxgvwvwhfwfxvgvgvgfwvhxwwwgvwhwfhwvxwwwwwwwhfgvgwvxhwxwwxwwxwwwwwwwwfvvwgfwvvfwvfWgwfvwwggWgwwwvwgwvvuwvwwwwwwfwwvgWvwvwwwggwwvgwxwvwwwwvgxgxwhxwxvwwwwwhwxwwgwwxwvxWvuvwwggggwgvvvxwvevvggfwggwwWwvwwwwwfwxwwvvvwgfwwxwxwfvvuvvffgwvwwxwxwfxgwgfgvvxwghggwwwgxxvxwwxvxwwwggwfwvfwfgfxgwvfvwgVgfgVwxgwguwvwwwwwfwfvgwwwwwwwwgvgxfgwgvwwwwwwwwwxxwwwgwwwwgxwhwwxwxhwwgwwxxxxwwwxxwxUwUwggvgugvwgwxggfwVgwgwgwwwwgvgvwwvvgvgfwgvwffvgffxvwwwxvgggvgwvwwvwwxwgwwxwggefvxwxxwxhfgvwvwwwfxfvwwvgvgwwvxvwxwwwxwwxwxwvwefvwwWfggwxwfwwgeffwxwgwxwwxwVfwwwxxwwfxgfwfxghwwwwgxgvwfgvwwgvwwwwfwwwfggwgwwwwwwfgwwxvgVgvwwfuvvwxwfwgVfVvwwgwwxwwxwgfwwxxwwwgfeffwgvwvfvwwvgwgvwfwwwwwwwggwwwwfgwfwwggvvxxxhxggwvwwfvwwgfeegVfffVfxwwwwwwVUTdfEVVUEVWffggfvfVEcfVcVeVfUfUeeUffvefUffVeefWefewgvvgvwgwvgvfwgwvvgvgvvvwwvwwgwfwWwggufwfxgvwvfWwwWufgfvuwgwgfwgggwffueEtfVfVguufgegfvfeeWgfVefGeefwWgfWffgvwwfgfufuVWfWFgVWvevggtufuvFVvfvfVggwvVggVggdVwvEWVVggefwwwgwgvffwwfefgVfwWffvfwwwwweTUefegFUUvfffgffffUedVeSEUVfeeUeUFefgfVWggEVVgeUVgwefvvfgfgfefggvgWfffvwwwwwwgwvWvdgfwgvufvvgfgvggggggfwgfeVxfgvwhwgvfUfeFecVUfVedUeeVgvwffgwgVVfWedegwegvvgwfwwvgffvfVgvVWehvvewguuevveFVWefgWvwfggggWgevwVWWvhWvTfwwgvwggfvxgwfvgvfgwfgvxgwwwwvfTeefVffeffgWvggfgfftUduUfffffVfdVgffvffguWgUvgfffwgvvvwgffvfvwvgwwfgvxwwwvwfvfgwwwwfwufwgwggwvvwfuvwgffggwwwvwgvftfutEVVeVfUvdVgfvvveffgVefwgVfvwgfvfwwfWvwwwufvfVugWWexvUgvgffwefwVVeufVgvgwfVvgfvgeewwfvVwvgVewwgvwwuwVggFgvvvvggwggwvvfwwfVfwgwwwwwwxhwwwwggfvuefwwvffvgfVfgwgwgvwwwwfwwwwwwwwwwgwvgxfvwwwwwwwwwgffwwxwwwfwhhxwxvwvwugvxwwwxwvgwvvvvxuwfvxggggXwxgwwxwxfvwxwwvwxvdwvwfwgfwgfwfwufvvxvvwfvwwvvvvggwgwhgxhvwxvwxgxxwwwxxwwwvvxwwgfvgfvwvgwwgwxwggWEUVfUeeTUewfvwfVVvUVTeWefevfVfeegVeffefgfEVeffVfetwvffeggfffVvfvvwveffwwwwwwwwhvwXvwvwvgveffwvvfwfgfffvfgwevwgfwfwxwwffFff6TVeeffffUffvgwfffgffeufffVuwwwffvgwgvwfwWfWffWewTuefvDvvgwVuwVfetWfhvvgegwwwffgewVgvvgUvfeeFwwwwfwwvggfwhvwvhwvgvwwwwwfgwwwwwwwwwwwvvwgwfVgvUgvxwWwvgvvfvwvwvgwgwgwggvgfwwwwwwwwfxwwvwwvxwgwwxwfwwgfuwwgwwxwwgwwwxgwWwgwhfgwwwwwfffwfgwxgwvggvfwvwwvgwgwvgvwxxwxwFwgvvwgfwwvwVgvfvwwwvwvwxwwwwgwwwhvwwxwwgwvwwxwvvgwwxxxvvgvwvwvxwwgwwwwwwwgvwvwvwwwgffWfgxgwgwvvvfvwvwwgggvwggwvuvwwwwxwwghwxwwvwxwwwwgvwvfwvxwxwwwwgwwvgwhwvvwwwwxxwgwfffgggggwgvvvwwwwhwwwgwvvvwwwxxxwvWggvwgwfgvwggfgvwwvwwfwfgvwwwwwwwwxxwxwwwggwxxxfxxwxxwwvvvgvwgwxwvwwuvwvwwwgvwfvwwwwwwwwvgvwggwgffwvgwfvuVfffwwvgvgguwgwwgvvwvwwwwwwwUwwwvwvwwwwwwwxwwwwgvvfxwxwwfwwxwxwwwvwwhwvwwwxwwgfgfufwwwwgwugVfvwwwxgxwxwgwfwxwwwvxWwFvwwvwwVvvffgwvgxgwvghfuggfwgwxxwvgwwwwwwhxwwwxvxwhwwgwgwvxwwxxwGeewfVeVgvgwwwwVfwuVUvgfvgvffvguwggvffffvVvwvwwwgvgvfwwvvvvgwwvgwgwwwwxwwwwwwwwwwxwwgxwgfwwwwwwfwfvwwgwfwwwwvwwwwvfevgvgwggWvgvgwwvwgvewffwwwwwwwwwwwhwgwgwwfxgwvxwvxwwgwggwwwvwgvwxxwwvwwvwwgwwfvffwwwgfgwvwwwwwvfwxwxwvwgwwgwwgvwxwfeefwfgVffVefgffuVvgDegffVwfwwfgwwwfuggwgVwewvgVvevuwvgwwwwxxhgwwwvwxwwwwxVfwwwfwwwwwwxwwgwwvwwwwwwwwwxvfgEvfvwUwfvfvwwwhvwgwgfwewvwffwvwwwffwvgvwwghewVvefvfwvuwwfwvhwwwwxxwwggxhugxxXgfxhwwxwvgvwxxgwgxwgwwwwwxgxwxffggwggfuvfgwgggggvvVvvwwgWwuwgehwwwuvhwwUfXWwvwgwwwuvwxxxwxwwwwwxywwxwwwwwxxwvwxvxwvwwggwwwwwxwwxggvvguvgxhgxuvwfhwwwuwwwgfvWWwvggwvwvvwgwwwvvvvwwwfghfgfggxvxvghgwwgwwxvgwggwfvgxffhgwwvWwghgvwggwwgwwfwwwwvefvwvfgfwWhfwwwfgveegfwfuGvuwWvfwggwvgwgvhvWwwgvwwwuwggwwwxxwwwgxwxvxxvwwxhxxwwxwwwwwgxfwwwwwxvWweVwfvguXvuwgwgwwgwvhwgvwvWwwvgwwwvwwwvvggxfwwghwvhuggvhwwgvhvvfwwgxWxvwwgxwhvwxhWhfwwgwwwfvgwwwwwwvwvwwwwwfgfvwfffgvvUhffffggvfguffwUwwtwvfwvvgvwgwwfwVwvffgffwtwwwwwwwwwwwwvwwwwwxwhvxwfxwuwgxxwhwwwwwfwvvwgvgvwuwwwggufgwfwUwwuwvvwwwguwgwvfwfwuwfgfwwuwwwvgghvgvghgfwUwvefxvgfVwfhwvwxwgwxxghwxWwxwfWgxwhwwwvWxwxxwwwxxgxxgwwgxhwxwgfvgwggVfffgWggffvvfuvuggfWwwuVgggwvvugggWggFgfvgvewwegwxhwxwggwwwxgwwwwwwwwwxwxgxvwxxwxwwxxgwwVxgwwwwvwvvvuvuhwhXwvvfggwwvgxgggfGwvggwfvfwwfwwvvfhwgggWfvvghwvwvuhwwvwxwwwxgxwhvvwhXgWwxgwwvgxwwxgwwwwwxwxwgfvwfwfwfwVhvgggWfwVfwVwwgwwfvhwwwwfwwgwfugwwvwwwwwwuwwxwwwwwxxwxhwxgwwgwwwxwwwwwwxwwwwwxxxvggwVVwVwwguwwvvgvwwfgwgwfvgwvgwwvwwgggwgxfwfwggvgufgwgxxwvwfgvwxvwvxxwwwwwfwhhwgwxwgxfwgwfgfggwvvvWffvWggwvwvfgwwvwgvwwgvwwwwwgfeefdewwfvvwvvggvwWfuxwhvfEVwwwwwvgvvwvwwUgwwvewfuggfvwwggVgfVfefggfvwwwfwwewggvxXwgVfwwfwwvwwwwxwgfVffevxweewwwwffvwgVvwwgvgUewwwwwvgvxwwwGegvffvvgfvfgeVevfffxwegefwgwffvwwwfxgfghvvxgVVwwxwgxwwvwwheffVgwgvffwgxvwGDgfVwfguffggvwgVevWVfgEVffffUfVufvvwfvVvwfgfvfVfVegvvguvwwffefffwgwufffwxwgxwwhffwwwwgwvvvwwgwvwwfgwwgwwvgwwwvxwwwgffgeTeVVfVefugfvfwfgewvfgffWefUvfvwvwggfxwwwwffwwwgwfeVfvwwgfwwffxwfvfwwwwwvwwgwxwfvfwwwVewwgwvgvvgwxwwxxwwwwwwwvgvggfwwwhgwwvgwVgvWgwwewwwwwvfwgwxvhwxwwwxwwwgxvxvwwwwxwwwwwwwwxxwvfwwxxxxwxxwwfgvgfwwewwxwwwwwxggwxxwgwwxwwwvwxwwwwwwvghwwhwwfwwwwvvwwwwwxgwxhwwxwgvwwvxxxxxwwxgxxwggwwwxwgwwgvgwwggwgggxhwvvvwwggwwvwggwgvwwgwxggwwwwwhwhwwgwxxwxwwwwwxxxwwwwwxxxwxhhvwwxwxhxwxwxxwxxvvwwwvhgwxwvvfgwxuvvwwxhhwwwwwwwvvwvwxwwwxwwvfwwwwwwwwwwxxfwwxhxwwwvwwwwfwhxxwwwgwxxxxXwxggwgwwxwwwxwgwwgvfgvwvvwwwgwvxwwgWwufwfvWwgvvgvvwgvwgfxggwwwwwwwwvwwwwggvwwwwwwxwvxvwwxhwhxxxwwwxghxxwxwvwxwwgVwvfwvuWvwvvgfvxgxvwwgwwwgwwwwwwwwfxwwwgwwhwfxffxgwwwwvgvhwfwwwwwwgggxwwggxvgwhgxxvgxxxwgwvwwwwwwxxxvwgvwwwwwwwwwwwwgvggvgfwfxwwvgvvhvwewwwwuwgfwVvwwwWwwVggwwwgwgwvwwwwwwwxwwgwgwwwwwwhgvgvgwvxewwwxwgVwfwvgwxwvwwxwhvguwgwfwwwwuwwewgewgwggwfvvvwwwwwwuwwwwwgwfvgvhwhwgfwhvfxvwhvgvxvhwhwhwwwwhxwhgxxwwwwwxhwxxxxxwwwwwwwxxxwvfwwwvvvggwwxhwggxvvwvwwgwxvgvghwvuxwwfwxgwwwwwgxwwxwvwwxhgxwvgwwxwwwwwwwwxwhxwxxhhxwxxwwwxwwxxfwvvwwghwwwvvggvwvxwvwgwwxwwwwwvwwgwwwwvwhfwwxwwwwwhhwwfwwhxwwwwwxgwwgxgwwwwwxwwwvxwwxxxwwxxxwwwgfwvfwwwgxvwxvggvwVfwgwgvxwwwwwgwgwgwxwxwwxwvxwwwwwxwwwxwwwwwwxfwxvxxxwwwxxxxwXuwVvwgwgvwwvwwwwwxgvxxgxgvxwwwgvwwvwwvwwwvgxwgwwwgvwwxwwxxwwwfxgwvxwgxwxxvwwxwxxxwgwwVuxUwwgwwgwwgwwwwwwwwxwwwwgufvuvfVfgwwxwgfgeevwxxWfwwxgwwgwxwUvVvwWwwwwwwvwxvvgfffffwwwxggfffvwgfvxwwwwgfVvegWfvwvwxwWwfeVvgwvgvfwwwxwxwdgggffvfwgfvvffwwwvffwgxwwwwgvwwwgfvfgxgwgvwwwxwxxvxxwwghwwwgvwxxgxwwhvvVgveVeVfgVhvvwwwggfvgggfgfwwwwfwwvfvwwwheWvwfwgwwgvwwwwwwwwwwvvwxwwxwwxxwxxwxwwwwxwwwwxxxwwwwwwwwfvvwgwfwvvxwwwwgwgwvwgfguvwwvfghffgwwwwxwxwwwfxfhvvwwhgvwxxxxwwxxwxwwxfggwvwxwvxwxxxwxxwwwwfVwgwggfvgxghwxwwwwvgwggwvxwxwwwwwfwwwwfgvvvwwwwwwvwvxwgxhwwwwwxwxwxwwwxxwwxwxxxwwxwxwwfwwwwwhwwwxwwwwxwhwxffwvvwhwwvwwwwxwxxwxwgwvvxgxwxxxwxxxwwxvxxxgwwwwhhwwxxwhgxwwwxxxwwgfewgwvggwhfhwgwwwwgwgxwgxwwvvxwwwwxwwwhfvfwwxwwwwvwwwxwxwxxxxxwyxxxwwxwxwxwxwwvxvwwwhgwfxwwwwwwwxwwwxggvfwvwwggwvwwvwxxxhxxgwwfwwwvwhwwxxxxgxwwxwvwwwxwxxwhwvxxwwwwwwwwwwhxwwwwwxwwgwwwxgwVfXvwgvwwxvwfwwfhwxxgwwwwwwwvwwwwwwwwwwxwwwgwwwwwwwvwxhvwhwwxgwwwxxhwxwwxxwwwxwwfgwhwvhvwwxxfwwfhwxwhfwgwgwwvwwwwwwwwgvwgvwvwfxvwgwgwgwgwwwgwwwvwwwvwxvwhvvvxwwwhfxxwwwwwgwwxwxgxwwxwwfvegfgVVhVfevwffwgwgggwwwfwfwvwwwwvwhvvwwxfvwVvgwgwffvwvwvwwxxfxgwwvwwxxwwxxxwwxwwwxxwgwxxwwxwwwwwggggfgwwffggwwwfwgwwgwwwVfwguvwggvwgvwwfwxwxgwfwwfwxwwfvxhwxwwxwwgxwxxvgfxwxxwxxgwgvhwwwwwwwwwgwwwwwhwwvwwggvgWvvfvvvhvfvuWgfgWvgwgwxfgwvuwvwwwWgggfgfgWvwwwgwgwwgwwvwwgwfWwvvwvwxwvvvWffggwwwhxxfgxvwwvwwxWwgffgvggwwwxwgwwevWvfggwwwhwUwwvvvxwwgwwgvggggwwxwwhwwxffggvgwwfwfvfvwgwgvvgwwxwvgvvxwxvvxwxwvxxhffxwhgvwwhfxwgvgxvwvwwgggWgwvwvwwwwxwvwfgwVggvvvvvVfwvegvvgwwvWvwgwvwvwxwuwwfgwfgxwwwvwxwwwwwwwwwgwwwwwwWgwvfgfvgwwwghewgwwwvwwvhgffggwgwwxgwwxwWfguvgfvWwgwxggeggwuguwwwvggfggfwgwwwgwgwwgwfvwfgvxggfgvfvwvwwvwwwwwvffxwhvvxwxgfxvfxwxwfgwxgwxxwgvwhwwwwwwwwwvwwwwwwwwwwwwwwwvwwvwfvwfgwxgwxfwfxvwvwwgwwwvwwvxgwwwwwxwwxwwwwwwwwvwgwwxxwxgwwwhwwwwwxxxwwUvwfvwggwxwgfwwxvwwfwwwwwwwxgwxwwxxwwwgwgvgxggwgwvxwvwvvwwxwwfgxggwxxghxhwwxxwwwwxwgwfVffwwwgefvgwwwgvwgvvwwwfwwVdvfeVUeVfffeefffgffguwfvffggffVwfVfvgfvwffffwVVgffvfVewgegeVegVvWTfegvfvvwfwgggfvwgfvwwwffVwgUfvwwvwVvggvFefVvvWfvwfuwwvgfffgvffgfgVVfuffEgVfffvfUeffVevf5VuwgwffwwUfgwgwvWfewwGefVfvWUvgfwwfggwgfffVfgVTwwUggggvUUefgEeUefwwvgwwwVfffvgggevffvffefgwWfdgfeUUfVffVVfvvvwwwfwwvvvvwffVvfffVwgvwvvffffeWfffffUvwegwgvugvvffwgfvfgwgvwwwffvvvfvwwwgfvwVgVvwwvwufvwgdfeeevUVVVfuVvvTVegfvfvfWVVfvfeftUffffvVfVVfVfvV6UvwvgVvgWfVwfvwvuvvwvdfeewvVfwgwwggVfgffffggVVtwWgfvfgWeUgWFeUUegwggvgwwgvgfvwwgfwwwfwugggvvfVwvfWffgffevvffwwwwwwwwfwfvVvWvgVfgVvefvgfvffvuevffffuxggvvvVwgWgewffVvvffwwwgfvvwewvwwwffwwgfWwwgwwfvwgUvvfwfVvveVwugGfUwfffvgguffvgefdgfvwffVVgUgVffVf6ewvwVfgwVfWwvfvwewvvgdfuewfWvfvvwWfggwfffWvgeEvgFfVWugeVVuWeVfUvwwwwxxwwwwwwwwwwwwfxvwwwxwvwwfwwwwfwwfwxxgwgwwwwfwwxwwxwggwgvwvgwvwvwvvvwwwgvwgwwwwvgwwwvwwwwxxfgvgvggwgUwfgvwwfgeggvwgwwvwgwwvwwgVvwwwwwwwwfwwwvvwgvvvgfvVuwwwwxwxwfwwwfvwgvxwfgfgVuxgvwwwwgwwgvwgwgwwVwwwVfvgwwVwfgfEfVwwgwfvgwwwvffwwwwwwwwwffwwfvvfewgfgevffVfvfvfwwwfvvwwwfufWfugvVfvVfffvwffVgvVWfgffVvwxfvvVewWvgTvegffvvffwvwgfvwwwVvgwgefvwvfUgwgvwwVfggfFuwVvfuvgewgvwUfgefvwfwffgeEffwUvggefffVevfeffVswwwffwwwfVwwwvwwfvwggUvxfffuvwgwwgefgfffwfeVTgvvWUwWefUffTVeVevwwwfwxwxxwwfwwfwwwwwgwwwwwwgwxhxxwwwwwwwwxgxxwhwwwwwwwgwfwvvxwwwgwggwwgwwwgwgwgwgwwwwvvwwwwgwwwwwwwwwwfwwfgwWuwfwffgvvgwfgwvvwwvwwhwwwwwwwwwfwgggwvWuwggfvwgwxwwfxhvhvvvwwfwfwgvvUwVfwgvvhwgvwwwvwxwvwwwvgwuwwvfvwvgvufeVfdwuwgfxwwxwxxwhwvwwgfwwvwxgwwwwwwvwwxwxwgvvxwxfwgwwxwwwwwgwxwwwgwwwwwxwfvgwwvwvwwwwwxwwwwwwwwwxfwfgwxgvwwvvwggwwwwxvwfvwgvwwvwwgwwwwwggwwwwgwuvxwvwxwwwxwxfgwwwwvvwvvwvwwwwxxwwwwxvwwgwugwxwwwwvvgwfvvVgxwwfgxxwwwwwvvvxwfgwwvwwwwwvwwgxwwwwvvwfwxwxxwgwwwwwwvxwwwwgwwwwxwgvvwwwwvvgvwxwwwwwwwwwwwwxwxwhggvvwwwwvwwvvwwwgvfvwwwvwwfxwwwwwvwggwxwwgvwwvvwexwxfwxwxwhggwfwwwwwggwwvgxvxwwxgwwwhwwxwwwewwxfvwvvfwwwwVfwfwwwwwwwggfwgggvvwfwgvvxxwfvvvwvffegfVfugvfwvfWvfggwgvffVTEeeUVeVfeggvgVVUVeUfVUVewwwhevwwwwffvfggwvgvfxffgvwwwwgwwwfeVvfvwfgwvwgwggffffVfWVeuvwwwwgwvgggffwwwefffVfEgwwwwwfffVffefUUVwwgfVvvvwfwwvxgwwgffffVvfVUufgvwvwfffUeVeeVTTvgfffegfUVTeU4TTEuwffwwwwgvghfwwfvvwwwgUwwevggfgvwfgwfwvwfvwfwfUvwwwwwgWffvggfwwfgwwgvVgvVffvfgwffggffwgvgUwfgffvgvgvwgfwwfvvgwwwfgfffwvvwfwvggUVevgeVvewwUuggfffwVwffffwfvgfeffwUwfggwvfvgfftfffwvwwvgWefgwgwwfwvwgffwfVffvffvgfvvwwgffVfeVeguVeffgffVhvgVUFffvffgWVwVfvvfgwwwwffVVwwvggUGwffugvWgVfffuvfgwvwwfvVEwvvwwwgWgvewfvwwgfwwwWefgfffuefgVVVwvffvuvFWfWVffefffggefVVvwwgvvVWVffvfgvwVgwvgFVfffeVvfgwfutvvuVWVGgVuugWgeeefffWgWggwfwgfVvfcvfVvwwgfgetfegvwgVfgvWVffffeuUVfwgvufggeuvvvfDfvvfefwgfegfedgefefwwwvgwvwggvfwwwgwvvggwwvgvXwWwvgwfvWvgffgvwgwwWgufVgwgggwvfWgfwfgwvvgwgwVVwgwfvfgvfvvggWvegweuGvWfUVvffwfgfvvggwgvwwffWvuwgwwvvWgwgeFwvgfefugFwuWwfuVvWevfwvWggVvfehfvWvggfvWfvUfsfVevwwuVFvufwgwvugvgweUfggVfgvvggvugwgevwwVeWvgWwufwffhvfWdWufgffggvUgggfveffvvgffvUwwfggvUwfVdwWufTfUWveeeffwvfUfeUgwfgfgfeVVdffffwvUgfggTfVffeUfvVVfUfeFdfFeeCfUFuUUTUVeeVUVeUfvffffVeUFdfgffffTffffCffeVuEeweUFcfVdfDfEVuUdvUgVeVfEWUvEwUguUfVVuEUuRUUUffVUVEcfVffffEffffDfffVtUewfffVuwgwUefffUWEvgWtfggeWVeWTWTfVUUfwgVWvfwwgfgvwxgwvVVwfwfgWWwvvuvvfgfegefwfgfgwgwfVWwfwwweWgfefvfvvfgwgvffffgfUefWffWVgwvvwvfGVVWvUfVffegwfvfWVwfgwwweWvuvgufwvWgwWvFVgfVuVdeGgvutwvegegWfVwggueevgXffWgggwfvfVefeffcVVfwfdFgedgeVvugWvgveUggVvUevWvgwvvwfgeueffWeevfeevVegevvfVcefeeewxvgxwwxwwxxgwggvwwvwhvwwfxwfvgfgvefvwwwwwwfwwfvwwvwgfxvgvwgghgfwwgffwgwffvVfwvgvwwwgffeWefvfvvfwwwwwvfgfvggvwwgfggfvwwwwwgvwvWUuggffvgwfwUwwfvffgvfgvwgfwfvfWfgvWvhvfvgwvffvgwdWfwwVVwfUwggwwfffgwgfewgwfvvhfgxgfwgggfvvggevwUfewwfgfWfVWEfwfvfvgwwxwxwwwwwxhwxwxvgwxwxwxwgvxxxwxwwwwgwwwwwvwxwxwwvfwwwwwgwwgwwwwxwxvvwxvxwxxwvxxwwwwwvvwwwwwfgwxwxwwwwxwwgvwwxwwfggxxxxwgfwxhwwwvwgexwwfvgwwxxwxwwvwwwwwwvwggwwwwgfwfVwwwwwgfvwwfwwwwffwwgwwwgWffufewffwwwwwwwfgfefffewwwffVUefffffvgffffffwwwwffgwwwwwwWffvwUUvffvwffffvwwwwgfffffwwggvwwwwgvgewwWTuwffgwwwwwwWffwwwwwwfwfxwgvgvguwwfffvgUUugfvwvwwfffwwwffwwwwgvguwwGUuwwffwwgwwefVwwgffwwefffffEUeffUUTUvwwfvxwwwhwxwfwwwwwwwfggwwgwwgwwwwgfwxvxwfwwwwwvwwxvwfwfwwgwfwwwwgwwggwwgwgfgvvvvwwfVvwwgvwwvwwwvwfgwwwwxwwwffgwgvwwwwvfvwwgewgwgvwwgggfvfevwfwwwgvwwwxvvwwvfvgguwwffwwwwwwwxwwwfwwwvwwgfvffwvwwVwgfxwwwgvvffxwwwwwwgfewgvVvgVfwwgugwvgfwvwwhwwggggwwwwwfgWwwwwwvvgvggwWuwxxwwggVwvwvvwwwxxxwwffvvwwgfwfvvgwwggefgvwfvguuggggfVvwhgfgVggwwvwggvvfvvwgwwwUWwfugwffvfvgwfgwwfvwffgWWWwGuvgggfwfugfgfgggwffWwtwgevfgvwwvvxxwvwfgvwvgwVWgevvgvfVwfvwxwwwvuwUwgwgwvvffehwwvvvwTgvffuwwwfggwwwwwwvwgvggvwwwwwfWgwfgwuvgugffwvgvgwvWwwwwwwxwgwvwvwfWgvwgweggvfwgwgvggffgfveVvtvWuVVvVvvfgefgvggfwwwgwwgwugwwvgeGfvwvwuWfvewwwwvWvvVwevgtWUvfwvggwfwufgvvWvgfvevgfsfVvffVwgvWwvwwwvguVgfwwwtWVvfwfwwvgvvwwwwgvefhvwwwfgffeguwwwgXegffugwwwgVwwvwwwwgwwvVwwvwwwwgfwxgvwWvvfwVgfvwwfvgwfwwwwwwgxwgvwwwgegwvgwgVwvfvgwgwvvffvgVvfGuwfwUWvVfgvgVvfvfgvvwwwwwwWvvgwvwvTggvgvwUfvVvwwwwfvfugWevVgEgvVuwVwgvgvggfwfwfgvVvVgvcfuffVvvwvguwwwvwvUgvvwwgEgufvwvwvfuwwwwwfvfhfwwwvgffegewwwwgfgUfewhwwfgWwgwxwxxwxxfWwvwwfwgfgwwwwwvvfwggwUwwhxwwxwggvvwwwwwwgxwwgfgvwgwfgwffwwwwgfVgfwgvvwuugWffwEgwghwvggggvegwwwwvvxwwvgWWwvwfggfvfewggfWwgvvvfvggWWVfvfWgvwvvgffgWggvfeggwwtffgffwvvvfgwwwWffvewggWWffwggggwvuwxwgfvvWuwwwwwvfvWtvvwgvehevfvvvwxgwwxwwgwwwwxwwwwwwgwwwgffwwwxwvwwwxwwwwwvhxwwgwwgwwgvvvwwwgfffwwvwfevwwvvwvwwvwwwwwwwgwwwfffwwwwgfewxxhvwvgwvvggfVfvxgwwwwgxwwwwvwfewgwxVfwgwwwvwxvwxvwvvwxhfVfwwgvwvwwwwwghffwwwwfwwhVfwwwfhefwfxfwxxxywwwwxxxxwxxwwwwwvwxxxwwwwwgxwxxwwvwxwwxwxwwwxwwwxwwxwwwwxwwxwvwwwxxxxwwxwwwVuefgvwwfvwuwwvvfvvgggfvfggffgvfgEgVWvvfvwUvwffgfwfgffwwwvwVwvgewfwvgwgVgfvfgvfwWueffVfVwffwVVTGefvVvwegwvvffvgwfwgvgvVwuvgfvwfgwgVWvvgffgffVgffvfgEgVWvuvvgvfufffwvwfgUguvggueeveWefvwgwvffgvfffffvwwgegvugwfgwWvvwgwwVeVggfffgwEuefwfgwvffWveeUfffgvggwwhvvgwgwgvfwwgefvfvwfvvwwfWeGvvvhugvwwvwffggwfwwvgvfvvfwuwwxxwfgfgwwfgwweffuvvffwwvvWUGfefgewgvwgvfffggfgxvgwfvvwwwfwgwwwUguvwvuvfffvvfvgveWeWuffgwggffeggwvgUgvvvwwvvffueVfgwwvggffvvwguwgwggfgufvuffgwvhwgwwWfewwgwgwwWvfffggggffgggeWefevvvhuwgxwfxwvvwfvxvgvfwvgvwwwwXhVhufwgxvfwwwvgwfwwfvgwwwVwhwwvwvgwfggfgwfffvwWeufefvvwvvWwFWuVwVvfewwvfffegwgvwwwwVvwfggfwwwwwVgvfvVvugggfffgvGgEgffgvwwwVufWvggwfXufwwxwfvgfgfVevwwwwffvggffgwwwwWgufwffwvgwgwwwwvufWvgVvfwgVguggvwwvgvweefuwgwxxxwxxwwgwxwxwwwxgwgwxwwwwwgwxxwxwwxxwxwwxwxgxwhgxwvwwgwxxwwwwxxwxxwxwwxxwwwxgwxwxvxxwwwwwvxwwwwwxwwwwwwwuwwxwwwxwxxwwwgwvxxwwwwwgxgwxxvwxwwwwvxgVfvfvhwVwgfwggwgfvgwWfgfgwfgvfgwVvTfweuVwffwwfwffwgwgvwfvvfgfvgVwfvvVxgefvfffevvGUeVffeVffffefCefUuEgfVwwvgVVvwgfvwWvvfVwvffvwffggfTuwfefeuwVgVVfggwUvTfwevgvvgegfvfegfwEvwUvfgeefvffUduffffVVgfVfwfvvgwvUvwffgevgfwgggwwwXewgevgewfWUgfTvWewfvWeVVUFfwwwxxhwwwwxfwwwwwwvwvwwgwxwxxwwxgwxwxwwwxxxxwwwwwwwwfwxvwwvgvwwwvVvxwwwxwwwwwwwxvwwwggxhwxwwggwgwgvwgwwwwxwvvggwgwxwwwwwwhwwgwwgvWwwwwvwggvgwwgwxxwxwxwfxwvgwwwxwwwxvxwwxxwwgewxvhwgwgvgwvwgwxwxxwxxgxwuwwxwwwwwwxxwwwxwwxxxwwxxxxwwwwwwwvvwwwwgvvgwwwvvwwxwvgwwxwwwwwwwwxvgxwwxwwwvwvxggwwvWfvwwxxwwwwwxgwwwwwwwWwvvgwfghwwwvwwxwxhfwwvvxwwwwxhhxxwwwwxgxxxwxgvwwfwwvwwxwxxwxwxwxwwxxwwwwfwwhxxwxxxvxxxxxwwwwwxwwxxxxxwgwwvgwxxxwwxxxwwwxhwxxhwvwxwgxwvvvwfvvwxwxxxwxwgwwWwwwwwwhwxxwwxwwxvgwwwwxwxwwwxxwwwxwwwxwwxwwwwwgwgfwgggewffvwvgvwgvggvgffVvwffeewvfwwvgfgggvwVfeuETffUeefUuvVefeUVVeevgfUewwwvwwwgwfwwgfvfwgfwwwhvgfvvwgwvfewwfwggfwWfgvggfffwwWUeegwvvggfvwgwvvgffVfwwVfEgfvwgUfuvWffufwfUewfvVewvfwggfvwWufvfgfffvwWUvffgweVVfveVUfwgEEgvTVUevfETfffCEUeugwUwwwxwvwggVufwfwvwwwgvfwugvggfggwfggffwwfgvwwfvwwwffwfwwvvfgefvffvwwggVwwgfvgvfvuWugWvgfwfffffwgfgvvwwwfvvwvUfvwvwgwvgfffwffvwwgfWvwgfffgvfgfwUwfwffvffefvgvgffwfgfvdfgUwgffgwvfwvffwfwggwvUefweevxwugfvvgVwffffgVewgffeuwwWfWefUefefhfgvffdfvgfvVWgfwwgwgfveuvgvvwgvwvWVgwvufVvggfggffvgfveewwwwgvWgVvgWxwvffffffgUevvfgfvfwgVgfVWfvutvvuggeWgfeefevuevfvfwgvFVFffGwffegeUeWgUuvvufgefwwVwvvvveuGWfggVuVgvwuevvfVhfVfggcfVgWefvfvWVVWgwgVwwwegFVVgWTvvwvffuVwgEgeevvfUWwggfegvwfveefSVfegeeVvVfevvvfvuWvvffVffVWvuVegffvwfvuWfWfdWvudVuWeuVVgffWweffgvgvwfeFfUvfffffdVuWVeegvfVffgvfveeeVUFfcVfddFeFUuEEUUVVfUVUVefvfeT6UUfffVffdFeFUuTffffffffgvVFfTVfecFdVTuUfefVfUwUUGefVuWUrUuGEuUVueUUedFfUefffgfcFdVEuUfffeffffguVeUvUUWdffffvgwwfWwDTWUVgUUeggfVfUggvwVxgwggvwwufefwuwwwgvwwfwwWvvgvwVwfgffvvgvgvwwvwwwggvevvgvwfvwVVvfgvfvwvgwwgwgwfgvfgvGuvguwUveWvffevfvgvfvfwvwgVgTgvVwwwgvfUuegVvwfggfgwgwvvVuvguvEwVgfugewgfgufhevVwfgvcvVgufufVfegUgfgwwgwwgEvVgevwvwvvwgfveeffuUgewgwwgwgwwgWuUgTfhfffwgfvgvgfVvWGgefvfgwgWudfvwwwvvvvVWfgvufevWfghveffgwgguuffwwwvwvgVWgwwwfvwUffgveVwwffgwwwfgfeVWfwudwudWVgWvUVVffVfeeffvvwwwvVGgfwwggefVVfVveUwwfffvfwVVggffwfeGVWgffvVfgeuvegfuwfggvfcgWvVffvfVeffVWfgggvfFVWgvVfwvffVgwfggfuuveFdvggvvgggvvffUgdfgefefwgfefvwvhwxwwwwvvfwvwwwwwvvxgvwwfvgfxgvgvfVvwwwgfxvwwwfwfwfwvwggfvfvffvhvwgwwggevwgfvwUvgfggvgvvffvwwvffgwvwwvvVgVeewwvwvggVffvgfvggvwgwvgvwwweffwVefvgffwfvwfwfwfevfgvwvtguffvgfwfeggvfvwwvwwWUugffvwwvvvgwwwfvfvfgVvvvggwvgwUfVgTewfVgfgwgwffevgwxwwxgwvwxwgwwxxwfxwxwxwxxwxwwwxwvxwwwwwgwwgfwwwwwxxwwwgwwgwwwwwfgxxwxxhvVwgvgfwwxwwxwwwgvwwgxwxwwwxwwwxxwwvgvvfwwxwwxxwvvxwxwwgwwwwgxwxwwxwxwgwxxxwwwwxwxxwwggwwghwvwwvwwwwwwgwwffwwvfvgfVxvvfhvwfwwfwxgwgwVffVfwffgwwUfVegvfWfvfwgvefwggwwffwwvfwwvfhvwfwwwwwwvwwxgvvgwwgwwxgwffhwvgwvwwgwfwwwvwvwfvgvVhwwffVgwfVvghwVUwggvvfUguvgvgwgvwgwwvwwgggehwvwwwwwhwfgwWefEuUVvffvvwfWgvwEvUgfUWvefffffgeVvwvwvxxvvgvwfgxwwwggvvwwfvwggewffXwvfvhwwgwwwwxwweffevgfvwgWVfUgfufVfwgvfvvgwvvwvgwwfguwffXvwgwvwgwxwwwwxxwfwgvwwwwwwwehfvwggwwvvwgwfvwwgfwvfhvwffegvgfvughgeWwgvvUWvvuvvfgwfvwvwgwwwwgvfhfvwgvwwwvvwwwefFueWgfefwvWVVwvGufffVVWgUVfWffgefwwwvwxgxwvgwvwwwwwwgwwwvwvvvfvfghvfwvxwwvwgvwwvvwwgffVveffgggeVfWeVweVfffvfgugggwwuwgvgvggxfgwfwwwvwwvwxwwwwWfwfwvvwgwxwfghfgwfgwvwwfwfgwfwvwgvwWxfgwgghffwvVgvgVgtwwfwVWuUwvfgvVvgxgwvvvhwwfgghvfxggwwwgggvwWufuVVugeffvgFuWwutEVefgugfeFefwvefvghvwgwgwwvxggwxwxWgwvfxxwgwvwvwgxxwuxwvvxxxhxwwwwxhwwfgvgwxgxwgguVwhfvfxvwfgwwwfwwgvwwWvwvgfwwwhwfwvwuwwwvxwufwgeffvvvwgvwvffgwgwfvwffdvvvwwgVvxvwvWwwggwwgwWwffgvxuvxvxfvwxvfxwfwfxggwgwvWwxwfffwffwvwgUgwwgfwgwwwwxwwvvvvwwgwwwwwgwwvwgvhffwvfvwffwwvwwvwgwwwWfffgVffwvfefuVuvfefefffweuwfggwhvwgvXvwwegwvwgwwvwwvwwwwwgwvvwghwxwvvvffvvvvvwwwfwwwuwvvhvvwfgwvfwVffwhfwgfvUuwwvfvEvwUvwffgevvWwggvwvwvfvwffwvwggwvvvVVfWevWTWfvgfvWewWGTfVdwWfVffVewgfVvgWhwgwxwwxwuwwgxwghgxvwwvwgwwgxgwxgvwxvxwwwgwwxwwhgvwfxvxwxwxwgghxvuvguvgggffwgvgwwwvwwvgwwxWgwwwvwwvWWgffvgvhwgwgvgvugvvgXfvhwgvvvgffgwwvFgvhwffguvgwgxVgwwgvvwwxhWwfwhXwwxwwwvvfwvwuvwwvvfxggfvUgwfffwfvwwwwwvhwgxxwwfwvwwxwxwvxxwwgwvhhfwwvwgwvwwwgwhvgwwxxwxxvwggwvvwwxwwwwxfvghguvwvuXgfvvewvfvwgvgwxWvWgvgwvgwxvffWwvvgwwwwwwwggfwvugggwwggwggvhhxwffGvvwVfwvvvfwwuWgfgvvwxwtgffvvvvgwvwfevwhvvvghgwwwwwwgweWggfVfwgxggwwwvxgwxxwvxgwwvwvwwwggwxgwfgvvxhvwvwwwxgwwwgxgxvwxwvxxgwxggvwwwwwwwvvxgfwhvVvvfwgwgwwVwwvvwfwfxgwwVgggfwwuwxGwgffvfuwfwwfwvfxvwUgffxWwgvfvvgvvhhwVfgFwvfvfxfwwfgwfwgufwwuxggwggWxwwvfwwwwfwwvvfwgwwvvwwgghUgwfgVwwvfgvwgVfvfvxwWwgffvvwwwgggvvfwgvfgVtgVwwgvvgvwfgfvgwxwwwffgfwfwwvfffwwwgvvweggwxwwWffvefvvgVufUwgVfvVvgwfffvfvwwfgfffvwgwwvvvgfwgWfvfwUfvwgwfwggvfwUtvVwggfevfVvgwvfgwwwWeguevfgvvfvvWfffgvwgxwwvWewggvuwgVwvwwwgffVewffwwxgvwwxwwwwVvfgwfgwUfffvegfffffvghvwwfxvgevVfggwggfUWffvffvfvueGgfuvvfwvggfWvvwwggwgwevwvvwwvVfWgvvfggvvffwgwgwUWffefgvfveeGgfuufewvgffVvvvwwggfffvwvwwvffegfffvwffvuvwwwgwefVvGuuvVffdfegffgvugfvgwgeWfuvvgfuUvvuUfvgevfwxvuwfWwvffvffuvvvgwffUfuggffvvfgWvvgwGueVggggWeVgfgeuffVgfvvfxhWvwfffgvfwwwwvWffgvgfvwtVfgefgVwUwvgffvvwgwwvgffgggwvvgfVfffgVfvegfgvegwGUefeWeegtVVgeggVwFuvfVVVvgvwwvwfUVfffvfgfVVgefgVvvfwfwvwvvgffVefcEVffffUfuggvvVfvVfggwVgdfgfvfVVvUwVFUfVfggwwgggFVegfVfevwfwevvvggVvvVvgwvWvgwwwwfuUVugVugUdGfVeewfgwwwxxwwhwwwxwxxwgwxwwxwvwgwxwvgxwwxxwwxxwwwwwwwxwwwwxxgvwxgwwwwfwwgwvvxwwwwwwwwxwwwgwxwwgwfwfvwvxwwwxvxwgvwwgwvfewhwwwwwxwwhuwvwwgwwwwwgvwvvwwxwxxgvvwgvwvgvxwwwhvwwxwwwxxwgwwwwvwgwfwVvgvxvevvfexwggggvfwwwgwwfvfggwgwxXeevwwwfewfvffwwxwgwVvgwwwgwxwffwgfffwgwvffwwwWeeWfgffgGfvTfwfvfVgfffeegvwgwvwfffwwwwvvgvUvvgwffvvwfvwwwwffggwGUwewvvwevwevhewwwgewVevfvfwgfwwfgVuVvfwwwwwfgwevwwgeevvxfvwwvwvWfwwfgevwwgegwxwvXewgvwgvfWwWfVVwghwxxxxwxgwwwgwwwwwgwwvwwxxwxxxxwwxxwwxwwwxwwxxwhwxwxxvwwwwxxgwxwwwxwxwwwxxwvxwvhwxwxxwwgwghwxvwwxwwxwwwWwwwwwxwxwxxwxwxxxwwwwxxwxwxwwwwxwvxwxvwxwwwwxvwghxxwwwxxwvwxwxgwwwwfwwxwxxwxwxwwhwwxxwxxwxxxwwxxgwfwvhxvwxwwwxwwwwfwwxwwxxwwggwxwxwwwxxxwWwgwwwwwwwgxgwwxxvwvhwwvwwwwxwwxxwwwwxwwwwxxxxwxXwwxhwxwxxwxwwwwhwgwxwwgwwwxxvxwxwwxwxxwxxxwwxwwgwwvwggwwvwfevvwwxvwwwxxwwwgvwwwwwgfexxwvfwwwwxxwwxwwvgwgwggvvwwwwwwwxvwWwwwggwwwfvwggwwxwxxwhwvwxvgwfxvwwxwwwwxwhxvxxwwwfwxwwhwwgvxwWvwxxfwwvwwwwxwxVwwgfwwwwhvwwwxfwwvwwwwwhefffffffffhwgfvffwvwwwvffwwwVfvgfwwwvhfwwgwvwwvwxffvwgvxvwwwwwwwwwxvwwwwwwwgwwvwwwxhfwwwwhvvwfwxggwfgfwwwxwgvgxwwhvgwwwvwwwwwwwwwxwwwwwwgwgwwvwwvwffgfvgwwwgfvwwfvwefffwvgvwwfwwwywwwxwwxxxwvxwwxwxwxxxwwwxwwwwhfxffwxgxwgxwwvwxwwwxxwgwvwwwwvwwwwxfhffwvwxxwwwwwwwwwwwwwxwwxvwwxwvwvwwvwwxwwxwwwxxxxwxwwwwwxgvhvxwwxhwwwwwxxwxwwwwxxxxwxwwwxwxwxwhgwwxwxxxxwxwxgwxwxhxwwxwwwwwgvwgghhvwgwvxwwwwwhwwwvhwwgvxvhWgwvwgxxwxxvwgxgvwgxhxvwwwgwwwxwwwgvgwwwxwwvwgxvwvwxwvwxvhWgvvwgxvxwvwwxwwwxwwxwwwwwwwwwwgugwvgfxwvgwwwxwwxvvwwwwvwwwwvwwvwwwgwvhvWvwwvvgwwwvxxxwwwwwwxwwwwwwwxwwwwwwvwgwwwwwfwwhwvwvfvwwwwvwwwwhvfwwgwvxfvwvgwvwxxwxwwwwwfwgwvugufwehwvwxxfwwwwwffgvvwwgwvVegvhwvwwwfwwxwvwvfwuwvgwgwgvggxgwwwgwwwwwwwvggwfewvVgfhwfwfwfwwwwwwhwxhwgxwwwwwxwwwxwwwgufxfwwggxxwwwwvwwxwwwwwwwwwwwwwwwwwwxvxwgwgwwwvgwWfwewfwhufghwwwwwvwwwwfwwwwgwxwwfwfvwfvvwgwwwuwwwwhXvwfwwvwfwxvgwxwwwwgffVwwvgwvfgwvvwwgfwxfwxfwvwvxwwwvwvgvgvxwwhwwxwwwwvwfhvvgevgvggvgvWwwxxwxxwvwxvwxwwxxwxwxwxwwwwwxxxxxxwxwxggxwxwxxxwwwwwwhxgwxwvwvwwwwwwwwgwgwwxgwwghwWfwvxgxxvwwvwxwwvvghgwxwvwwwwwwxwwwfwvwwwwxfwwhhxwwgvxfghxWgwvxgwxwwvwhvwwwwwwxwwwwwwhfwwevwvwwwwvwxxwwwxwxxwwxwgxgxhwwwxwxxwwxwwwwxwxwxwhwwgvxwwVwVxWwggwfwwwwwwwwwwwgwwvxghwfwwhxwxxxwwWWhwWwxwwxvwxvxwwgfwwvwwwwwxwwwvxwgxxghfgwxxxwwwwfxxwxxxwfwxwwxfgwxwwwwwgfwxwwvwhgvwgxwwxgfxfvwwwgwwwwgwwfwgxwwxwfwxwxwwwwfwwxwwgxxfVvvvvfwxwwwxfwwwwwgvffewwvgxwxxfwvfvggfVxwwwwwwwwWwgffwwfwvwwgwgwwgwxwwwggvfVxwgfxwwxxwwwxxxwxwwwwffwwwwxwxwVvfwxxgvvgwxggheeffwgvVfwvvfwvwvfvwwfeVtvvwxffXVfggvwVffVwffffwfWVVUefffeugvgffffgwwwwfggwwgfvwgffegwffgWUefgfffwwggwwwevfhgggvwwgffffvwwWUtwfvgwwgfvwgffuhgvwfgffUfwggvgfguwfvgfvfUUewwgvwwwegfhfvfvwwwvfffvwwWEugvwweffvgTfeeffUUfwfwgfffTUvwfffEUvwwfgxxwwgvwggwwwwwwfvvvwwvgvwwwfvUwgvwwvfwwwwwvwgvwvwwgwfxwgvxwWxwgffggffwfwwvvwvwfffewgvwgwwfwfwgwwgwfvfWfwfgwwgwwwWvwwfvvwvwffvgwvwvVwwgwwwgWwwwfwfwwgwfwwwwvwwwgfvwfwwgfuwxwxvvwwfwwWwwgfgfvgvwffgvwVewffgvhvwfvgvvuwfwfvWwwffefvwvvwwfwhwvwuwgggvfWwwfwwvvwwgffgtvwfuxhwwwvgvgwfggwwfvgfgwwvgfwvwggwgwggfegwwwvgvfggVWggvgvvggwvvevgggefVffuugfxvwfvugvvwuwgfgvvgwwvuwuugggffWtfVggwfvwGwwWgfggevfhffvwfgggVWgvvfvVfgwvwfWuvvgfggvgVguvvvvTgffvdgvehvvwggwfwgvufwgvvwvwwwfufgwwwvWwfvfwhvgvwgfgvvgwgwvWwfvffWfegfwvvvwgwvwgwvugfvfvefgwggvwgwhvwXwwWwfvggufwfweVwuvWuGfUvVwfuffgvfvwwwguWfwUvdfXfgvfvwwwwvwgwgvvgvvgwvFgeufeWUvewuggwfwf6hvvWvWVfvggvffvUffftWWgVgUegvgvgfgvvgwwWwwgwgvgvevUehfwfehfeWefvwgvvwwwwfwwvwfvfwwgvfwwvwgvgvgwggfwwgwwfwevwgvvfuwfvegfvgWvgvgfxfwvfwfgVgfvWvfgvgxfwvWwgvWxwgwgvvvvevggvfVuwevTVuVfgWvVfgfwfgvwwwvUfWfGuegegwggvgwgwvWwwvfgwfwgugWtvVwUgfuwfwgvWvf8fwfwVgufuVwvffVffffEwguWuVhfvwfvvvfgwvgwwwwgwvgvfuVgUfufheeheffwwwvwwwwvgvvvvfvggfggWgwvwwgvugwwwfwvVfffwgvwgfvwwggvdgwgWwwwwggwffgwwwvvgfvwvfwwwgwwgfwwgVfggwwvugfvggWWvTgvwvvVgvvvwggwffgvvvuegVvwwvvfwwgfwvUgfWwwwvvuugfgfegfgwvgvuvwGwhfggfvWfvfvvfeggUWWffffvhfgwufuvfgwvgwgwfgwgffvvfhuvufgtfWtvvvgwfwwfwwvwvgvvwevvwwgvgxwwffhxwhvvwwwgvwwwwvggvwfwVewwwfwxwhhggwwwvwwwvxwwhxXwwwXwwXwwwgvvvgvfvwwwwwvwfvffgfwfwvxgvwvhgvwvgwfwffwgwgvhvgwwwwhwwxwwvWgvgwwvfgwwwwffwwwvwwwvwwWxgvgvVvvgvwwwgevgvffvfwwgwvwwgvwwwfgwwhwwwwuvfffxefgfxUghVgwwwwwwwfwgfwwwffvfwwxwxwxxwxxxwxxxwvwwwxxwwxxwwwwgvvwwwxwwxxwwfwwgwwwxxwxxwwwvfwwwwwwwwwwwxwwxwxxwwwwwgwwxgvwxxxwxwxxwwxwxwwwxxwwwxVEfefwvvwfggWwwdfgeuwwfVfefffeeffVfU4feeVfffWvfUvgeffvVffUfVfevfvewgfvfwVfeWgfVevvWEfefwVuvvfVVfFWfuffgvVggdefeefgfgwefWVuffwfwggggwWVUffffuvvgffeefeVVU4VedewVwfvgfWfgVgewuvgffefffvFVvvgVffFefWvufgVvwwWVefgWedfvgwfVvVfwFuefwVVfUffegwwWgggwVfggfdVfgevvgwwffgvfWwwfVwgWVfewfWvdwfwgfeGfufeggwvwgvwefgfgfgfvfgvffvfvgwfwgggdghgfVfwvVeefvWvdwfffVvGfufefgwfgWfgeVwfVfgfvgVvfWfwwwwgwwwfUvggvvffvggwewffgfUGuuewvggvfwgggvwgfhwvvfWgvevvfVfwgfvfWufgwgwvwfvwgVdfVgeUufvfgVvfggWufwfggWgefwvvwfgfwwWfWVggeffgvugvwfufvxhwuwffgwvwffvgvvVvwwvvWgeffevvwhwvvwfevwfgguvWvvfvfefggvvwfweVwVWfvfwfVvufvuVvvwfgWxfgvfvgghgwuwgvfvfgwvggfvfgvWvwwwgwwgffgwfgwuwgwugvfwffGWuffvgwevVwvgvVwwfhufvWgvfvvUvfVugvgffuVfugvwgwfwfgefwvwVfvgvwwuVVvftUgvvgvgvffgvvvWfgwwgffvgeevvfxwwwwxwgwwwxvwvxwwfwvwwwVvwvxwhhvwvxwxgwwwvwxwvwhwgxwvgwwwvfgwfwfvwxwwwwxwwwwwwxwwxwgwwwhwfwvvwxwwgWwwwwwvwwwwgwwwwwwhgxwvwwwvfwxwwvwwxwwxwwgwwgwwxwwwwwxxxwgxwvwxwvfVfvfwvwfvfwhgvwevfggwfewwvWfvwwewvVegVdffwgvfvgVfeVwWVvgfgVfvggugeffVgGvfgwWffvffUefwwFewvgUfwefgfUffvgwwuwffggggfvfgwWfvgffxvvwgxWeVWgfwfvfvvWvfgfefvEuvfegVgWewvfWefgwfvffffvffffeVEevffwvWfvWfvwvwwgwVfffggfevgfvvWefgeGefVTfVfEUfvfvgvffwfVfefffVuvWgwgwwwxxwwwwwvWgwwggwvxvuvwgwwvwwwfvvgwwwxwwwxwwvwwwxwwhvgwwgWgwwvgwvwfgxvfvgwwwwwvvfwwxwwxwwhfgvxxxwxgxwxwhwgwwwgvfgwwwwgwugwwwwwgwwwwfgwfgwvwwgvgwwxwwxwgxwwgwhwwvwwwwvwvgfwggwuwwwWwwwxwwvwgwvvhgwvwwwvwwwxxxgwvghwvfwwfxgwwhvwvuhwwgxwvwggwwxwxwwwfgwwxwwxwhxxxvvwxwwwwvgwxwwwwwvgvwwwwwgxwvhwxwwwwfxgggwwhwxwxwxwwxxvvwvvggvvwgfwvvvwfwgugwwxhfwwwvgwvWwwuwWwvvgxxwxwggwwxgwxwwvwhwwvwggwfgwgwggwvwxwgxvxggxwxvggwwxwwxvxxwwgwhgwwwwwxwwxvvwxxxwgwwwwwwwwwwwwwwwxwgwwwwwwxgwwwwgwvwwwwxxwxwhxwfgxwwxxxxxxxfxfwvwfgwgvvvwwwwwwwuxwwxwwwwwwwwwwwgwgwwwwwwwwwwwwwvwwwwwxwgwwxvwwwwwwwxwwgwwwfuvfvhwwxgwwuwvfvwxwvvwuvguwvggEwgvwgwwwwvxvgwxwwwffwffvvwwgwfwvwxggugvwxvwguvvuwVvgvvgVxgvfwfgwwevgvvfgxwvwvfwwewwfggwvwwwggfvwgwvwhvfuwffgEgVfwfvgfxwwfvwgfwfxwwvvgVwwwguvgfgwgwfvwwvxwggwwwhgVgvvwwxwwgVvvwfgwVfggfgwfgvgfgwwwvwVggvgwwfggwuwwxwwwgwgwgxwwgfWvfggwuwgveGgvgwwvwwgwXvfxwxxwfgwfvvfwgwggewxxggvwfwxxwwwfWvugfvugfueGfffvgvvwgvvXvvgvxhwwwwfvvwfwxwfWwwxwggvvvgxwwwwWvvvgvfXggwgfwfgwwgvfwvfWwwvvuvhwwwwvvfggwwgvgWwggwggvwggggvfvwwwwxVvvgggWvfggfgggfwfggWvwwwgggwfwvgvgfegxxwwgvwwxwfwxvwwvfwwgwfwfhuvfwwwgwwwvvxvgffgfwvwvgvfvgwwgwefgwvwgwwgfuuvwfgvgggffggffWggvgvvvwgwvxfwwvvvwfgvwvggwvwvwvguwwwxwvtVgfvVgvfvggwWhewwVwwwgguwwevfgufgwfvfgvgggufwvgvgvwwvwwwwwggvgwxgVvwVvguVgvgWvwfvfwWfgwwwxvWffvfxvwwwxwxwxxvvwwwwxwgwxxhxxwwwxxwxwwwxwxxxwwwvvwghxggvwvxgxxwwwxxwvwvwfxwgxwvwwwvwwxxwgvwfhwxgwwwwwwWwwwvwwgwwwgwwwwwwgwvwvwfxwvwvxxwwvwwvwwxwgwwvwwwfxwgxwxfwxxgxwwvvgwfxxwgwwwgwwwgxwfWvvwXvvvvVfvgwwgwgwwxgwvwggvwfhffgwggVgvwvvwggfwvvvwwwgeVgwvGefvfwefvvvvWgvvvwgfwgwvgxhwwvWfggwgfvwgwwvxwwwvvvwxwwwXfgfgwfvfgfvfVvwwXewwwwVvwwgfvVvvfwgVvfvvvvhggwwfgfwwwvwwwgwvgegwwgWegwwguXewgfvgefgfwgfewwwgwfegfgvvxwhwwxwxxwxxwwxwwwwwxvwxxwxwxxxxxxxwwxwxxwwwxfwgwxgvwgxwhhwwwxwxwxxxvhwvgvwgwwxxgxwgwxwxwvvwwxhvvggwwwvwuwwwwwgwwwwxwwwwwwwwxvhwvgvwvwgwxgwwwxwwvgwwfwwwwwwvwvwvxwfxxxwxwxyxwxxwwwwxxwxwxxxwxxwxxxxwxxwwxhgggvwwhxwwgwxxwwxxvwggvvxwwvhwwxxwwvwxxgwgvwvhwwwwwuvwwwwgwhxwwwwwwwWwwWgwvggwwhxwwwhwvwwxxgvhxxgvggvwxxxwwhxwxwwwxxxxwxxwwwwwxxxwxwxwxwxxxxxxxxwwxxvwgwxfvwxxwxwvwwxwwugewwwwggwxgwwwxwxhwvxwwvfggfwwhvwxgwwwuwwwwwwwhwgwwwwwwwfggwvwwwgwwxxxwxgwwxxvfxxwfxwfwxwwwxxhxwwggdfvwwgwwwxuwvfvwwwWufgwwgVwfwfWvfvgugwwwwwvwgfwwwgffvffwfwwvufefvwwgffvgfvguwWVdefwfvgvvgwWVVvgvfwwfxuvgevVfgwgwwwvwwwwwwgwwxwgffwwVvgvggwwgVgfwffeevguwwxvwwwwfxggVvvxxxfvwvgwgvwwwwgvffvvvvfvgwwfvwwfffuvvffwwwvwwwvfwewvggwfwwggwwwwffgwwvgvwvwwxwxwwxwxwhwwxggwxxxwxxxwwxwwwxwwxwvwwwwxwwwwhgwwhfgwxwwwwwwwwhwwxvxwwwxxwwwhgwxhfwxxwwxwwwwwwxwwxwwwwwxfxvwwwxwvwwwwwgwxwwgwwwxgvwhxxwxgvxxwwvxwxxwwxwwvvwwxxxwgwwwwxwxxwwwwwxwwwwwwxwwwwwwxxxwgxwwwwwwwxwvxwwvxwwwwxwgxwxwvxwxwwwxxwwvxwwvwxvfxwwwhvxwfwwwvxwwxwwwvwvwwwxwwxgvvvhxxwxwwgxwwxvwwwhvvwxggwvxwvwxwxwwwgxwwxgxwwxwxwhwwxxwxwxwwwxwxxhwgwwxwwwwgwwxwwwgwwxwwxxgwwwgxxwxgxxvxwxwxwxwhwxwwwgwgwwxwxxhwxwwwxfxwxvhvxwvxwxwwwgwvhwwxxwwxwvgwvxwwwwwxfwwxwxwwvwwwwwgxwwvxvvxggvxxwxxwwgwvwgwwwxwwxxwwgxwgwgvwwwwVwgwwwgwwxvxwwvgvxwwwwwwwwwgxwwxwwwwgxwgwvWvwvgwfwvwwvgwwxwwwwxwvwwwwvhwgwwgwgwwxwwwwwwwvhxwwwfwwwwvwwgwwwfhvwgwwwwwxwguffvwvgwwwwxwwwwhwwwwwxwgwvwwvwwgvhwwwwwfxvvxvwhgwwgxgvwgwvwwwxwwwwxxxwxwxxvwxxwwxwwyxwhwvxwwwwwvvwxwwwxwxxwwxxgwwwwwwwhwvxxxwxgwxxwwwwwvwgxvvvwxgwwwxwwgwxwwwwxvwxxwhvwvwvwxxwwgwxwwwxwwxwwvwggwxwxwvvwxxwwwxhwwwwwvxgwghfvwvwvwxwwwxwwwwwvwwxwxwxxwxwwwwwwxwwwxxxvxwxxwwwwxxxxwwxwxwwwwwwwffxwxwxwxxwwxwwxwwwwwgxxhxwxfxwxxwxxwwwxwfxfxxxxvwvxxghwwfwxwwxxxwwxgwwvvxwwgwvxxwwwwxwwwwxfwfgwwxvvwvwvwxxwxwwvwxgwfxxhvwwxxxwxwxxgwwwwwwxwwwwwgxgwxxwwxwwwxwxxwwfxfgfwvhfvwwvxgvxwxwxwxxvwgfwgvwwgwwwgvxxwwfgvfvwfwvgvwwwwevwwxwwwwgvwwwxwwwwwwwwfwwgvvwwwwgwwxfgvwwwwwwfwxwwwwwwvxxwwwwxwwxxxwwwxffeuwvxwwVggfVfwvwwwgfvVvvvfVtwVtfgfwfveffggefexwgwvgweffgvgvfvfffgtgfVfvfwghvgwvwfVeevvguvUtfgfgVuufVggeVegfwvvfveWewvgvfvgwVftgVUewwfWffwwfvvgVtvgtfVfgfvevwvwfvgvfgggVgfhvvvgwufvvvWfffegwfvffVwgVuggvvvwggwvwwgvfUvVvVgwgffvwfgwefgvUgfffwefwwfWgwwffeeffwvwfefVUfvVwgfvffeTeffffeFeSVefffeefggGUVvfgwwwwgefVeVfVffvWVefffUfgwfWgwgfvweTeffffeFeSVUfVedUffwFUVfefvvfgfedVgfvgfVgWVUfVedevgfgvwwwfwwVvegvdVVgfuefwvhfvfweVgvffegvfffWffewvuFVveWfVwVggfgVUggvefgweffvgwvwFvUvfVVvgVgfggVWeffegVvgWfTvwgggfwgvevvgvwggffwfVewgvffwegVffwvufuvUvfwwgevtffwffvxWggvvgVfVfvVwvvgedgfVffvWfwvgveggfUevvvugeuEfffgvfgeVfgefgwgwwgvvgVgfwgvffugfevwgVfvggvfwwvvgvwdVuufguvfgfvewwfuVfWVuffffgfVfvvvffvffVUdVgfvwfvfvgVefwgfwfWvuvvggftVuVfefggFeVVvfTUfgVfeffgfevgfffwfuVwvwwgwwvgwhgwwggwvwwVwvwwwvvwugvwvwwxxwwxwwwwwwwwwgxwhwwvvwxxgxwhwWgvwgwgggfgxvfwvwxxgwgwvwwvgwgxgxwwvwvvwwxwvwxwxwvwwfvfvvwvvvwwuwwwvgwwwwwwvvvvwxvvvgwgwwfgwwwhgvxwxwwwwhwwwvgwwwwggWwwfvwuwwggwwwfwwwxvxvvffvgwgwfgwfefxgwwvfwgfWwwfgevWefwwwgffuefgufgxggxggwwwffugevVfgVgffWgfvvVewwfwwfgVVgwgWvvGUfvfvwffvfvvefvxwgwgfggwUvfffwvWfVfvfwfevwggwgfwwgvfWevXvvvvvggvfwwvgeguggVweVvgUvgwgfvgfgVewffvfvwwgVffvwgwvuwgwvfwwwwwGUWewgfwwggvfgegffvgffwfeVVfgwgvwwvvwgxwwwhwvwxwfvhxwgwvVvvwwxxwgwwwwxwwwwwvwxhgwgwxxxvxwxxxwfwwxgwwggvwxwvgxxxxxwwwxgvwvwwwfwgvwwxxwwxwwgggfvwggwWwwwvxwwwwwwgwwwwxwwvwxwxwwwwxwwxxxwwxxwwwvwwwwxwwwvwwwgxvhxxxgwwxwwwvxwxwwxvxwwwwwwwwxwxvvgvwvwxwxwwwwwwwwwwxwwwwxwhwxxwwwxfvwvwvhwghvvwwwwwwwvgwwxwwwwwvwwwwxxvwwgvwxxhvwwWwwwwwwwxwwwwwwwxxwwwgwgvvvxwxwxxxvxxxwgwwwwwwwxgxxwwwwwwxwwwwwgwxfwvgxwwwwwwvvwvvwwwvvwgvxfvwxwxwuvwxwxwgwwwwxxxgggwxxwvvvxwwwwwwwgwfgfvvwwgvfwwwwvwvwvwwxUgvwwvwwxwgghvvwwwwxxwwggwwwgwwxwfghvWgvwwwwggwwfgvvwxvvvWwvvvwhwgwxwvwwwxwwwxwwwffwvwggwwwgwwggwvwhgwhwwfxxwxvxXvvwwXgwggwgwxwwwvWvvwwvffwwugvwwvgfWwvgwwwwgwgwWhvVUwfvfwfUfUevfVfUfvgvefffVvfvvfwggwvxgvwfgffwwwxwwgvhxwvfwwwfwgfwfvwvwwvwwvwwwwxgfxwufwggwgvxxwfxxwwgguwwwvwVvvgwgwwgvxwgfwwvvwffwgvwwwwfwgwwwgwwvwvfwgwgwvvfwwwUUffvfUfvfffvfwgfvwvvwxxwxhwwgwwwxwwvgwwwwwewwwfgwwwwgwwgwxwwxxwwwxwwwxwfwwwgxwfwvwwvfwvxUwwwVwwwwgwwgfwwwwwwvxwxxhvwfwvxxvxvwwwxgxUvwwwWwxwwwwwwwxvwfwvwgwvwwwwxwxxhgfwxgwvwwwwwxwwwwxwxxwwxhvwxggvwxxwwwxvwwwwxwxwwwwwxhwwwwgwwwvgvwhwxwxxvwxxgwxxgwwxhwwxwwwgwwwvxwwwwwwwwvwhvwxwgvxxwvvgxgwwwvhxxwxwwgwgWvwgwfwwwwwxwgwxxgxvwwwgwwwwgwwggvwvwxxwgxwvxxxvwwfwgWwwwvwwfwgwwwwwxvwvgwxwwwwwwffxwwvwxwhwwwvwgxgxvvvwWvgvwwwvwwvvvgwugwvgwvWvxxgwwwwvwwwgwgxwwwwwgwwwwvgvwwvwvwxwvwvwgvgwvwwvhwuxwwgvwWgwwwwvwwxwwwwwhvwvgwwfwwwwwwwgwvfwvgvuWfwwwggxvgvWvwgvggvfvgwwvgugwggwwgvggwwvgxwgvwvvvwxfxwwfgwVwvwwgfgvgwvwxgfgfwwgwwgvwwvvvwwgwgwwwxwwwwvgguwgugwwfwwvvvegwwfwwwvwwwwwwhxvwwwgwvwgvwgwwxwwvxwxgwwvwgvgWugwvfggwwwewwfwwwvwwvfxwwxvfwfwvfgvvwwwwvwwxwhwgwwwfwwuxwxhvwvVwfwfwfwfwgwvwwvffwwxwwwwfvwfwwwvwwwuwgWvwvfgvhwwwwvggwgvgwwfgfgwxwwwgwwwgwwwwxxxwwfxxxxwwgwwwwwvwvxgwxwxwwvwxwxwwwwwwhxvwwxwwgwwwvwxxwwxwwwwvvwwhwwvwxgwwfwhhxwwggxwwxwhwvgWgvgwwwwwwwwvwvxwghwwwwvwwvgwxwfwvwwgwvhwghxwxwwwgwgWwwgwgvxwvwwvwwwxgvwwwxwwwwwvwghfwwwwwwxwwgwwwxxwwxwwwwwxwwxxgwwwwwwwwwwwxxxxwxgxwwwwwwwwgfgfhwxwwgxhwwwxwwwwxxwwwwvgwwxhwfgfxhwxwwwwwxwwwxvwwwgxwwwwwxwxwwwwwvgvwwxwxggwxwwxvxxwwwwwwwwwxwwvwwwwgxeWwwvwwuvwuwhvwwwwxUgwxggvgffgwwfgwwwvuwhuwwgwwxxwvgvvhwhwxffwwwwxwwwvwwWgfVUfgwwUvwwwhwwgfwwwwxfffuwggWwwUfwxwwwwwxWgffUuVwwVgxGvwwgvvwwwvgfffwwgvvwvwwegfvwgfWwwUfxwwwwwwxgwfvwwwwfwxwwwxgvwxffwwxxxwUgwvxwhwwwvfgwwwwwwwgdgfvgwvWVvfwvgfvgewwwuvfwgxxwwwvgfffffgwweffffvgeWfvgvwwwwWTVfvgwvWeefgfgfvgevwweeffwxxfewgwvwxwwffvfgfgfffegwwwvwvggwgfggVVwvwvVvgwwwgwvgwggfuvgwwvgfwgwgvwvgwwwgwwwgfvvWvgvwgwwvwwwvwwwwewvffvfwwgwvvwfvffwwvgvwwgwwwwvxwwwwxwwxxwxxggxwgwvwwxwxwwxxwxwxwxwwwwxgwwwwwxgxhwwfxxxxwwwwwwxwwxwvwwxxwwgwxwxwxwwwgxvhgwfxxxwwwwwxwwxwwwwwxwwxvxwxwwwxwxxxwwwvxgvwvxwwxwwxxgvxwxwxxwwwwwxxxwggwwxxwwwwwwgxgwwxwwxgwxxwxxwxxxwwxwwgwwxxwwwwwgwwgwxgwwxwxwgwwwxwwvhgxvwxxxhxxwwwwxxwwwwvwvwxwvwwfwwwwwxwwwwwggwwxwwxxwhwwvxgwxwgwxwwwwwwxwggwwwvwffhxwvwvwwwxwwwwxwvxwgxwgvwwxwvwxwgfwvxwvwhwgxhwvwwvvWwwwwwwwwxgfwwxxwwwwwwwxwwxwwwwghwwwwwgvggwwwvgwwwvwwvwxwgxxwwwwwwwwwwxwwwgxwwgwwvwwwwwwxwgXwvgwwvggvwvwxxwwwwffhwwwwwvwfwgfvewwwgwvwgxwgxgwwwwwwgwwwwxwwwgxgvxgwfvhwwwxghwgwwhwxwwgwxwxwwwwwxxwwxvwwwxxvxxwxvwwvgxxwwwxxwvwwxwwvwwwxxwgwwwgwxwwxwwghvgxfxwxvwwxxwxvwwxxwwfwxvwwxwxwwwwwwwwxxwhvwxvxvwwwvwwxgxvwwwxvgwwxwwxwxwxgxxgwgxxwwwwwwxwwwhwxfxwxfxxggwwwxwxwxgxxxwvxwxxwwxwwwwxxwwwxgxwwwwwgwwxxxwxxwxwwwxwwwwwxxxwwhwwwxwwwwwwwggwwvhxxwwwwxxwxwxwxvggvwghwxwwwvwxxwwxwwxwvxxwhwwvgwxvwwwxwwwwxwwfxwhxvvwwwxwxxvwwxxxwxfgwvvwvwxvwwwhwwwwwwwxxwwwwwvxxwxxwwxxxwwxxxxwwwwxxwxxwwwwwwwwgvfvwvhwxxwwxwwwwxwvwxwwwvxwwwxwwwwxwwhfwwxhwwxgvgwwfxwwxxwggxwwvxgxhwxxxxwxwwwxwwwwwwfwgwxfhgwxhgxwwgwwwxwxvwfwxgxgxxwwgwwwwwwwwwxwfxwwxxwwxxwxwwwwxwxxwwgvxgffwvfgfwxvwfwwwwxwxwgwwffwwwwwgfvwwwwvxwwgfvfvwwfgwwuwxgvwwwwwwwgwwwwwvwwwwwwwwffvwwwwgwvxwxwxwxwwwwwvwgvgwwwxwwwwwwwxxwwxfwgxxwgwxgwwvwwxwxwgwwwwwwhwwxwxxwxwwwxwxwwxxwwwxwhwwvwgxxwwxxwxwwwvgvwgwwgxwwxwxxxwwxxwvfwxwxxwgwxxwwxwxwwwwgwwwxwwwwxxwxwwxxwwxxvfgwwwwwwwgvwwgwvxxwxwgwwwxwwwxwgxwwwgwxwwwxvwxxxwwwfwhwwwwxwvwxwwvvxxwwwwxwwxwwwvhxgwwwxxxxwwgwhxwwwxwwwwxwwvvgwgwwwwxxwxxwwwxvvgwgxwwwvgwxxxwwxwxwwwwxxxxwwvxxxwwxvxxxwwwxwwvgwwxxxwgvwwfwwhwxwxxhxxwwvhwwwwwwwxxxwwwwxwxwwwgwxxwwwwwwxgwwxggxxwxwwhxwxwwwgwwwwwwvwvgxgxwxwxwwwxwwfwwxwxxxxwxwvhwwgwgwxwwwxwwwxgwwwwwxvwwwwxwxwwwwgwwxwxxxwwwwxwxxwwwxwwwgxwxwvwxwwwfwwwvwgwwhxhgwvwwwxwwwwwwwxxvwxgwhwwwwwwwwxxwxwwwxwgwhwgwwxxwwwwxxwgxwwxwwgwxwwgvxxxwxwwwwffxfhfwgxwwxwwxwwgwwgwwfxwwwgfxgwwwwwwwwwffhvhgfxgwwwwwwwfxwwgxwwwwwwwxgwvxwwwxwwgwwwwwwwxwwwfwfwgwwxfxvwwwxwwxwwwxxwwwwwwwxxgxwxwxwwwwwgwgwxwhwxxwwxwhwwwvwxwhwwwwwvgwwwwxwxwgvxwxvvxxxxwwxwwwxwwxggwgxwvwwwwwhvwxgwwfvxwwwwxwwxxxxxxwxxwxvwxgwxwwxwwwwwxwwwwxwxwwxvwgwwxwwwwwhXvwxvgwxgwhwhgwwwwwwxwwwgwwxwwwwwxwxwwgwwxwgwghwwhwwhwxwwxwxwwxwwxwwgxwwxwwxhvxwwwwfvhfvhvvxwwxwxgwwwwfwwwwwwwwvwwwwwwwxfvhfwxfwfwxgwwwwwwwfxwwvxwwwwwwfwwwxwwwgwxvwwwxfwwwwwwwfwvfwwwwxfhwwwxwwxwwwwwwvwxgvxhwwggwwwxxwwgwwxwxxxxgwggggwwvwxwwxxwwxxxxxwxxvwWgwvfwwvhxwwwwxxfwwwwwguwhwvwvxgxgfvgwvxxxxwggXfwwVwwvwxxwxgwwgvvxxxwxwgvwwwwwwhvggwvwxwgxgfvggwhwxxwgwwgvVwwwvgxgghggwgxxxwwwwwwxwwxhwxwwvgxvwgwvxwvvwwxxwwwwxwxwvgwgwwwgxxxwwwwwwwwxxwxxxwgwfuwgwgwxwwwwwwxwwwfwwfwxvwvwwwfxgffhwgwwxxggwvuwfxgxhwwxwggwgwwxxwwwwfwxwwwwxVwgvwvwfxxffggwwwxxwggwfwVggvggwvwwxgwwxwwwwwxxwwwgwwgwgwvwwgwwwgffwfwgfwggvvffvvvWffggeeeeeefvfVfegVeVugfuTEfVeeeWfUfeggffUVfeggVUegwfgefggwwgfvwgvgvfvfwwwgvvwWfVvggvUUvvfffhgfffwggfffffwwgVvvffwwwgvvgWeefwggfVwvEVVwwvwfuffwVeVfufVUuwwwfVvfefUgwvwVfffvFUVUfWFUtfffgvwfegUeUvwfEDvwffffvfEUfvf4TEUuwvfwvvfvwwhxwwwwwwxefvVwgvggvvvgfwvfgffwfffvefffevvwgwgvgwwwvwgwfvwwvfgvgwwwfwvvffggvvwvwVgfgwfwgffwwvwVffweVwwfvhggwwvwwwwfvgwvwfvwwwweggvwfgwwvgfwtvfvffgvVvgffwVwffvvwfffefgvwfwfffeVVfvfegfevffVffVEvfVvfgwhvhgwwvWfgwewvfvvgWfwfwwfugvfUefffvwffwgggwwwwwwwfwvwvwggWgvwvfwfvggVWgeuefffvffeeWUgVvvwvvWgggggevwvfwwfgwevgvfggVfVffvgvvfvuWgVggfvvvvvwvuVfVggfvvwgfggwwwwvwvvwgwvgffwvwwwgwvfgwvvvgfgvdwfgWgfvvvVVWgWwgwfuVgfVvfffWffVVVfeffUgfVfffUvVfeFueVvfgvfgwfgvwgWgfvwvwuevgfwgvvgfuvvfvuvvvwwgvvvgwwfwwwwwvvwwwwvvfwvgvfgwvefvWffefffgwfegeWVwevWvwfwvwvfggvvggwvgvggfVwvgvvvvgffvUgwfefvgfvvgvegwvugvgfvfvgvvfwggwvwguwggwwwvwffgvvgvwfwvgwvvgvWwtwwfWgffweeWfefvgVvfvgEfVVufgvvfVfvfvUeGeeVvgVevfEvUVegvvgwwggwvghvvfwwvfwwwgfegvwfwwwfVfUvwgwfggwfwvwggwwwvvfwwgfVvfwggeggvfevVgeUUfeeVvTegUfvfvggeuVvVfufvfeVvfWfvtVgvfVfffgwfgVVefWvvTvegvVffWuvWvuTveWveefwVffegwfffwffvvWfgegfuvgfgugfvvWvffvVgvcvfVfgfVdEWVwUvVguevUUeUfufffegVfffUdVVTfUfVfvDUUUf5dvEUffwgvwvgffgfvffgffVwfvfVfgfUFwvVfVfWfwwfgwwfgwwxwvwgwwwwwwvvffwvfvefuefVWGveffvvevuUfWVGveVfvvfgvgwfwWvfffwwwfugggwgvggwffgwvffguvVVgVvfvggvvwuffVfVvVewwggfgvvfgwvvvwgvwvgwewgvgWgVufguffVVWffcvWgfefueWffGVgguffWVfVfvfVfffWgeufueVefGVggvVeVVeFfvUfffggwgwwvgWwUfvwvguegffffffwvufwfftvewwwgvxwfvwwwxvvwwwwwgffwwfwwfwgvWufvvfvfwgfvffVffwwwwfxfwwwwwwwwvwwgvwggwwwwfvgggwwgfwwfvWugfgwvvfwwffVefvgvvwwgfwwwwwwwwwwxwwvwvvgvwwwgvwvfvwffgvXvwwtwffgfwegVvwgffvvgfvfvffwgggfffffegUvWeVevgfffuVUwffvwvvxwgvwgfxvvvvvgwfwwwwgfgwwfvvgwVwfwxwxxxxxwwwxwwxxwxwwwxxwxxxxxxxxxxwwwwxwwxwwxxgxwwwxwxxwhxvxxxxxwwwwwwwwwvfgwfxwwxvwwxxwgxxwwwxwwwxxwvvxxfvwgwvwvxwxgexwggvwwvwxxwwxxwxwxwwwwwwxfVgfgfwfvfvwgvhewgfvwgfffVgefuvwvefVEguvfTVeefUTfdVVeVvfgGffVeVfguwwfvfwUfffvVefffVvgeXdefvffVUfVguvfegvvgwffffXvvwuwGgveVfvgvvgfgggWUWffWefvvgefewvfevfgueVfffVVEceffgfwVhvugVVfeVtdFVevfFVUVdfVffffegfeFCVUUfeTFeVwwffwwgVUfvweVffvffgvgeWfvfUVfVfTUvfvwwgvwvxvwwwgwwwgwwgfvUGffvVfgggfeWvvvVfeUggVfefWfffgwwegfeeggfvgwggwgfeffgfffvwwfhWvfvwgWfffhvwvgffvwwgwgfgvgvhvevffufwuxwwwxwfffwgvvvgfgVvugwvfgfgvuuvwwegVuTWgvfgfggvveWffvvuuWfvwweVVvTVfvfffXvvgDGeefuetVfvwwgwfFvefUVefvvfgwvgggwwWUeVefefwgvvvWgwwwwgxwwewfwwwgvgWXuvvfvwwegfXvvwfTefvVwfUVgfevvvgGuVufgfVvwgvgwggVfVffevvwfgWhfefvvgwfVfhvfwfvvwvvwfgfhfVwvwWvgfvwwgvxgwwwgVvvwvVwvwweuVwvgVfegfVwfwggfftUgugvwVwfgwGfegvfewfVWgwVfVtVfufffVhfef6FdEfeegUFVvgvgvgfVVfuffeVwfvfwwwVvgwwVdVvuVdfgwhwwwxxwwwxxvgvffwwgwwvfwwgwwwwwwwwfwwfwwwwwwwwwwwwwwfwfvgfvgxwvvwwwvwgvxWvwfvwxfwwwxwvwvvgwwvwwvwfwwwwwwvwwwwwvxvgfewwvwfdfgvfhwxwwgffwxhvwwvwfewwwvvgxWvwwwwfWVgwvwwvvwfVvwvvfgvwwgwxwxwgfwffwwhxxwwfxwgewgwgwgfvffVvefffVgvwufveffffFvUeffUffeufveuwfUSFUdVfUUdeVfEeeV6VfFUVUEdffefefEUdfVUfEeVfWwffUeVvffffvuffVfdVfuWveUuUVgEvfwGffVffeVuwwegfwVUugfffEvfveWdvWvUUueVvEefgFfeWTgfVugwfgvvVTewfVvTffUfeWTTFeeFUUUuTffTU2TUUTfUEeSgfWvgffUTffUeFUfeVUggfeGUvfUUEfVE5fwgwwwgwwgwwwwwwwvwwwwxevgfxuwwvvgffffwwwwwvvvhggwvvfvwwwggvvwwwwwwwwgwwggwgvwvfwgxvwwgwwfwwgxvvwgWgfgvgwwwwwwvwwxhxwWwwxwwgvwfgVfwfvfVGvwfgggwfgfVfwwggwvvwwwefvhvffvwxghwwggfweghwgwwhvgfvWufwffgwwwvwggwvvfwewxwfwwgvwWwewxgvvwwwwxwhwwwwvhwxwhggvwgwxvggfvwwwfgwwvfwwwvfwwgwgwvvwxwgvwwgwwfwwvwvfwwggwfwgwwwvgwvwgwvwvvgwgwwfwwhvwwvwwwwwxwgwwvwhwVgwgggfuGwgfvxxwwVfghwwgfwwwXfvvgfvvxvuggwwvfhWgvWgwvvfvuvvuvwvgvgwwvwwvfwvwvgVgwxwuxwhggwwWggwwvvhxxgwwwwwwwwwxwvfwvwwfwwfwwwvwvwxvfgwwgvfvggvwwwvxwwwwwwwwwgvvwvvxfegfwvwgwgwwwwwwvwvwfwWwfxwfwwwgwwwvwwwwvwwxwgwwwwwwxvgggwgwfefFgvghxwwwWfvxhVwwvwxwgffxvgvvfxwgxgwvwfwgffwgwfwgguwvVfvwwvwwxxwvwfgwWVxgwwwggvxggugwfevfgggvwvvwvxvgvwwgxwvfUfgwvfvgfVwgguvffwVUvVeffffffVhwgffvwwvgefewwWgwffvgwfgvvWwVTWWvgWffvfgfVfvwVvggwgfUgffvvWwwgvfvwwvwefvvggwggfuvwwwggfgfugfuggegvewvvfVtfvffgwVvvVvvgEgueevuWVVfvffufvvfgUTgffffgVgvegwfWefffwwwvvgvegwgvfvwffTffwvgffeWgUfvwfvwvffwfhxwgwgwgwwxwwfgeVvvgvvggvhwvvwwvuffufffVffvwvgwufvwvVgfvwgwwggvvvfgwwwvwegvvWgvgfvgguffvfvwwvwfUgwgvvvxwvwwwwgwgwwwwwwfvvvwggffvgvvVuvwwfgvvvwwgfvewgvvgvWvfuvweWvvfufvVvfvfVvdfvgvfUGffvuveWfueuffUffwvwwwwfgfggwvvwwgVgVfvvfffVgffevvggvvvgvvwwvwwvwwwwxgwwWgvwwwfwwghuwwewffVwVVvVgfffegfwgvwxvhwegggvgvffvewfwvvwvwVheggwWfvfwffwVwfggwgwwfXewwfwgwgwwwwvgvegwwwwwvfwfwwwwwggxvfgufwxWgufwwvvwfgwvvgVwvfvfFgufvwfwVVfuffVvgfffEWefuVvEgffgffwfVWggwwgwvggvWvwgwwgVgugvvwwvfvffUwvvwwxwwwwxxxxxwwwwvwwwxxwwwvxxxxwwwwwwwwwwxxwwwwhxxwwgwxwxwhwwwwwxwxwxxwxwwwwwwuwwgxwwwvwwxwvwxwwwxwgvwwvvwvwwwhwwwwgwwwwvwxxxwwxwwxvxwwxwgwwfvvwfvuvvwgvwwevvfvwwguUfgvvVvvwVffvwVVWfgFfVvffeewVVwwVfgwffvgTfufvggfeegVvffugfvvUefugffwffgwvfFegfgVgfvEfvfwUfxwffgwwgwefvwgggvvvwUvgwvgvgVffFUwfwUfwUffwggevgfgfeevgvwfuUfeevwffeeffvGefvfVfeCUVffeuTfvffgeVedgfxgwvwfvvWVwvwgwfefVUwwfwgvWfVEwffxwxwxxxxxwxghwwxxxwgwwwxgwwhxwwwwvwwwwwwxwwwwwwxxxwwwwxxgfwwxwwxwwwwwxwVvxhvwgwxwgwxwxxwgxwxwwwwgvxwxvwwgwvvWwwfwvwvwfwwwwwgvwwwwgwvwwxwfwwwfwwvwwwhwwwwwgvvgwvwvgvgxwxxxwwwwwvwxwxxwhgewwwghxvwvvwxwxwxxxxxxxxxxwvwwwwwxvwxwwvwwwwwxxwwwwwwwxxxwxwxvvwwxwwwfwwwwwwvwvwwxwwvxwwfggwvwxwwxwwxxwwwwwgwWgfufwwxxwwgxwgwwwwvwvwvwwgfxgWwgxwwwgvwxwvVfvgwvvvvwwxvxxxwhhxwwxwwggxwwwxwgxvvwwxwxhxwwxvwwwwxwvwwwwwwxwwxwwxxxxxwxgwxwwwwwxwwwwfwgwxxwwxwxwwhwwwvxwwgwwWvgwwwxwwwxwwgwwvvwwwwxwwwgwwwxwwvwxxwgwfwwwwwwwwxxxwxhxwwxxwxxxhgvwfwevvWwfgwwxfwfwwgggugvvWvffvfgggvgwwfUUfdffgefeeffewxgvfUfvvfUfevwVfgffffeffvvWwgfvFeVfgwgfWUVffvffwvgwgfwvfffwWvfffgevwvwvwxxhvfvwWffvggwffwfgxwxwwgvwewvvvVfffVgfgfgvwwwhwvfvggfVgwwfwVVfffWUvvVffvwgvgGeVfUefggfwvvfgvwgffVgwffeffffvwvwfwffVUvwgwxwywxxxwwxwwwfvwwwwvwxgvxewwxwwxgwxwfwwwwwwwwwvxwgwxwfwgvwvxwwgvwwwwgvwwvgvwxgvwevwgxxwxxfxfwwwwwwxwxwfwwwxvxxgvwwvggggwwgfwwvvwwfgvwwwxvwfxxwgwvvvvwwvwVvwwwfwgefwgvwfwvvvvffwxwxwwgwwwwwwwwgwgwwvwwwgwggwwgvxwgwvwvwxwwwwxwwwgwhgxxwwwwwxhgvwxxwwxwwwwwwwwwwwwwwwwwxgwvggggwwgvwwvwgVxwvgxxgwwgxvfxwwwxwgxghwwxwwwwwwwvvxwvxxwxwvxwfxvwwvvwwwwugwVwwwgwwxwwvwgxwvxwwuwwfvvwwvwvfwwfwwfxfhwfxvgwfvvVwggwvgwwwvxwwwwwgwwgwwwwguwwwvvwxxwfgwwwwwwwxwwgwxxxxvwwxwwwwwvwwwgwxwwwwxxwwwwxvfwwwvwwwwwgxwxwwxhwwxwxxxhwwgxxxxwwwwwxwxwwvgwwggvwxwwvwwwvgxggxwwwwxxxwwvvwfwxgwwgwgwgwwwhhwvgwwfwVwgwvwwwwxwxvxxwwxxwxwxwxxwgwgxgwwwvfvwwhxwwwxwwwwxwwfxwwxwwwgfvgwgwvgwfvwwwwwwwwwwgggwvgwfgvvvwwwwvwwwxwvwxgwxxxvfwwwxwvgwwxgwewwvwvxwwvgfxfxwwxwgwwvwwvwwwggxwvwwvfwwfwwwwgfwwwwvgwwvwwfwfvfvwwwwhvwwwgwfwewwvwfgvffWVguggwwwwhvxhwwwwwwgwwwwgwwwwgfxuVwwxwwwwwvxwwwwwvwxfgVgwxwwwggfwwwxgwwwwwwwxwgwwxxgwwghwwvvwwvgwgwwwgwwwwfxWggwwwxwxgggwvwwwxwgggWgwvvwxxwwwwhwvwwwwggxwxwvwvwwwvvvvvwgfvvfxwwvwvwwxwgwxggxwvwwwvfvwxwwvvfvwwvgggWgxwvgfvfvWvgfwwwgwxwfuwxwwvwwwuvgwggwggggvwfvwgwwwwwxxwgwwwvgvwwwxwgvxwwgwwgxvgvwvwvvxwwgwxwgwwvggwwwwwwwvwvwwfwvwvwxvvxwgugwvxgwvgwWgwvwwgxxvvgwxxxwgvwvgwwwfwwfwfWvwfwfvxwwwfwwwwxwgwwVvgwwWfxwwgwfwgwgwvguWvgwwfwWfvgvvgwvxwxxvwwfwxwgggwvgwvgxvgwwgfgwwvwwxxwwxwwxxxwwgwvwxwxvxvwwgxhxwvwwgxwxwhwxwwwwwwgwVvvfxvwugvwvfwwhwwWwgvfgwgxwwxvxwwwWwxwfwwfgxwwwwwwwfgvFfwwwgefwwxgwgwwxhvwfgfwvwfefwwxxwwvwxvfwgxwwwwfefgwVwwwxxgwwxwxxggvwxwwwwwVfvwxwwfgfvgwvwgwwvfwxgwxwgggVgvvvvfufgvvguvVefUdUuVfufUvfVVUvevwwffgffvgWvvfwgfwvwxfwfgfUheevvfvffvwfvvvfwvvgfvwwgwvWVfvwwxvwgffvwgvvvwgwgwgwwwwvfuwwgVwggvvggFgffwwffgWEgVhuuvwVvuwwvVVFVDgffvgfVfVUgfhuegwVffvffVfefVgwTVgvwfgfwwevfwdVfegwUevvwfffwuwvwgvfvgvwwgwwvgwwwwwwuffWVvwVgveffvvvwvFeeUWudfUffuveTVUgvvwggggfVwguvevwefvfggfwvwvhVgfVgvefewffveVfvfgvuffvgvfeeffxvwwvgffgwgvvuwvgfwxgwwfgfvgwfUfvhvveefFWVfwgfgvTVvhfuewvdfufvfVweT6VVefVfVveWvXftdwgdeVvufFeVVfvVffvwgfUvwwgvwgVVfeVgfduwfgfvvggfgwgggwgwwvvvwxgwwwwwggfgfuvfvuffgfwfewVeUfvtefUUuWTgUVfvfegfwfVfVUwgTwvwwfwfwgvwvWghfdefuufeVfwgewfuvfvuffgfwfewFVgvvvwggfVeUfwgewvwwvwvwgfwvvvVvvgVfexfewVWgfVVvwfuW6VTxfUgfffefuVwfEVGWdVEvgVeF6fUhfVgefUefUfvfVffEvgVugwwffgwvwwfvVeeUfgedvwwgvvvfgwgfwwgwxwwwwwwvwvgvxwwfwvwwwxwwwvwgwwvwgvwvxwxwwxvwwgwwgxwwxwxxfvwwvwwhwvwwwwwfgwWffwvvvwwvxvwvwwwvwxvwgwxwwxwwvvVwwwfwwwwwfffwwgxxgxgffvwvfwvxfvwgwwwgggvggwgfwggfvwvfgvgfuwgvwfwwgxfwvwxwwwwwxgfwwwxwfwwwwwgwwVvvggvvgwgegwwwvwwwVWUffwfvhfegffwwffTVVvWVeUdvfwUEUeuffvfgvVUUdvfwUugvffufgvgfgfVefgugffffwwwVfeWfvhevfuvgxVWfegfwwwvgffuvgwVvhgvvgxgwgvVevgvfTufgwVVfUffvvwwggfTufgvevgwweuwfffefCeeUfffFUfSuTfwVffVVeUfeVvdeUgfeFUwwfffwwwwfgfeVUvWfVFwwwgfvgVggXwxwwwvxvwwwvfvwvwwgwvwgwwwwgfgwgwwwwwvwwvwwwwwggvwxvxwvwxwxwxwUfvfvwvxwfwwvgwuwvgffvwwhwhwwgwgwwwwwwfwwxvgwwvwwwxwggfgvgtwffwwwgwWfvwvwgvxwvwwvwwgwugvvwwgxVvgwwwwgfgvfgggwvWwggvwwwgvwwgwuggwvvwxxwxxvWwevvhvwwwxwvvxhvxwwxwvxvvwwxwfwvvvgwwghvvwxwgwfvwwgvgggxwwwwxwwwwwwvvwvwwwxwwggwwfwuwwvvghvwfgxwewfwwxgwWwWWwhwwxwgffwxwvvfgwwwxwwwvggwwdffugvwvfgwwwvxgwffvwwvvwwwwwfvvvwwwfhggdvegvgfugwvvgguxwwfvgghggwwwwxvvfggxxxwgwgwxxwwxxwxgwwxwxgwwgwvwwvwwfvfvwgWwgwwwvvggwgWwvgxwwwxwwxxwxwxwvwvxwwxxwvwwwvwfwwwwgxhxwvwwVvfugggwwvwgfgwwvxwWwgwwfwwwwwwwwvgfgvgdvfwgwwgfvfwwwhxgfuwwggggwwfwvwwfvvvwwxvggffuwVwffwgvvfvvxwwwwxgwvxxgwwwxxxvggvwxwwwxwwwvvwwxwwwxhXxvvgwwwwfgvwwwwVgwvugwuwwvwwwfgvxwwxwxfwvwwwwvwwfwwwwvwhhxwggwwwvwwwxxxwwwxwvwwwgwxxwwwwxwwwwwwwwwwwwxwxxwxwwxhvxwwgwwWvgwvwvwwxxwwgfgvwwwwwghggfwgwwwwgvhwwgffgwgwvwwgvwfwwwwfwwvwwwvxwwwwvwggvvwggvwwvwwwwwwwxwxwxwwggvgggfhwwfwwxffwgVugvwfwvwwuffVxwggwxfwfgwfwwwwwgwgwgwvgfwwvfvxwwwxgvwwwvxvwwfvxwwwwwwwwwwxuuwhfvgffwvwVewvgguwwXffwvwVwvwwvwwxVTwfvgugwxhevUfufvewfwevwwffWvgwwhwgvvhwwxwhvgwwgwwwXxwwxwxgwxxwxwxxxxwwghwvgwwwgvwvwvfvvgwfhwvwgfggvvfwwfgWWvvwwggvgexwvwwwwxewwfggvgwxxwwvwwwxwxwwWvxgvwvwxxwffgwxxwwvxhfevffgwVgwguwxgwvvhxdgggvvggwvwwvwwXVgguvvvWwxUffWvfVgwevegwxvvuugxwgfwxgvxgwdvfwxWfgwwVwwvgvwwggwwwwgwxwxwwwgwWwwwwvgwvgwwxVfwffxfvvggwwfwgefwvwxgvwWxwvvwwwwxxxxgwwwwwwwxwwwgwwwgwwwxwwfwhevwwwgfwvgwwvwwwwggxfwwfvgwgwgvgvfWwugwhvfvgwwegwuwvwxgugfvVwuWwWvgvWfugtVwuwfugwvwfgWxwfvgxwggwWgvWxgVxwwWwwxgxhwwwwwwwxvxvxwxwwwfwwwwgxwgwfxxvgfgvvhvvffwwfgvfgWugvwhwvfwfwwwfgfvwfwvgxvwwvhwwvxwwwwwwhwvfxxvgwwwgwwwxwwwfwwwvwwwvxwxwhfwvvfwfvwvfwfggWwuewfwvvfwvwvvwgvVwgvXuwXwvewUgevUwtgffwVgvgfwXwgvfhfwWwwwWvvhwfXfwvHwwwvgwxxwwxgxxwwwhwgggwfwwwwhgwwgwwgvvvgwhgwwefvwvhgggggWxvwfwfxwvwgwxggwwgwwvgwxwwxxwwxwhxvwwwwwwwwwxggxvxwxwxwvwfvvVvwfXggwwwwVwgvfvvxhghgggwvggxwvwwvxxVgWvfxgWggVVwgvWgxufexhwfvvtxgwfvxfxgwwweugwgVvvxWvwvwgwxgwxwvxxxwfvgwvwwwvwwxwgewffvUfVvgvggevwVxfwvwwfvgvgfgwgvwvgvwgwuwwvfgggvfwwwwfwgxxwVvxggwvxxwgfwgwxwwwwhWwgdvfugfVwwfgfgwfxwugegwvWvwwvgwvxugeffwVxwgtVdVvffuWvwgwvvvWwfwVhgVxwfxwWxwfVxwgxvVwwvWxwxgWgWwwWgwwgwwguwgfwwwwweeffvevWffWwwffwwuvwWffVwwffwwwWwwgffvwwwWwwffxxwwwgwwwwwwTefUfdgVegWfgeewwdvwVfeUvwggwwFfgVfewgfgVvgUfwwwfgfvfwwgvfVeecVfeEfffeefeefwVeuwwgffUfvfgTUwwweefxfeUfwgeuwwgUEfffeVffwvwfffwwfvVVuwxwwfvgvwwwwHUuwwgUfwxwwwwwwwfwwwvwvvwwggwwxwwwhwvvfwwwwfvuwwwwwwFvffWVVeeffWffegfvwwwfUfvvfgWffevwwvvwwgvfvwWufwhfeefgvfwvVwggxfwvwwwgwwggvvwwwwwwvwvwgwvgfgwwgvxwwwvvwwxgggvwWffwwwwwvgxwWfffvvwwgwwffvVVffgvvefVxwgvWffffUfffgwgfvvvvvefVwwwwgwwfvwwvfwvwwffvvgffwwwxwwywwwgvxwwhgwwvxxwwvwwwxxwwxwwwwvgxwxwwwwwwwwgwwxwxggxvwwxwxxhvwwxxwwwwwwwxwxgxwwgwwwwwwwwxxwxwwwwfgwwxwvvwwvwwwwwwwwfwwfgwfwwwgxvwxwxxxwxgwwxwwxhxxwxwxxwwwvwwvxwwxxwhhwxxwwxwwwwwwxxwgwwxwwwwwwwwwwwhwwwwvwwwwwwxxwvvhhxwwvgxwwwwxxwwwvvxxwxwwwxwxwxxxxwvwwwxwxwxwgwgwwgghffxgwxxxvwfxggwfwxwwwxxwvwwvvwwwwwwwgwvWwwwwfwvggvwgxwwwwwwxwwvwfxwwwwvwwwwvhwfggvwxwwwwxwwwwvgwwwgwvwhxwvwvwwfwwvggvwwwwwwvwwxxwvwwvwwwgvwwwwwwwwvhwwvwgvwwgwwvwwwwwgwvvxwwxxxvgwwwxvgwwwvwwvxxwwwwxwwggwwvgfgwgvwwwwwwvwfvgugvwgxfwgvgvggwuvwwwwgfvfVvfegeVwvfgvxwvgwwwvwwxwwgwvfwgwVgfxfwwghwgwwwwfxxvwwwwxwwxgwxwwwgufxxwwwwwwwgvwwfwwwvwgwwxwwwwwwwwwgwwwwwhvwwwwfwwvgxVvwewwfvhwwgwgfwvwwxvwfwfwxwwxfwwwvvfwgvwxwwwgwwvfwgwwfwwfwwwwwwwwvXfuwgwwwgwvvvgvwwwwwwfvfgvVvfhwfvwvgwugvvgwwwwxgwwwwgvhfhwvgwgwvgwxwxwxgxwvwwwwxxwwxhgwwwxvxwwwwwwxwwwgwwxxwxwwxgxwhwwwwwwwxwwwwwhgwwwxwwgxwwwggwfhwxwwwxwwwwxxghxxwvwwxwwxwwwxwwwwwwvxxfwwwwwwxxwxwwxwgvhwwwxxwwxgwwvwwwwwgwvggwWwgxvggwwvwgvvgwwwwwwxwwxhgvfhfxwwwwwgwwxwwxwwwxwxvgwxvwfxwwwwxvwwwxwwwxxwhwxwwwxwwxwwvvxwwwwwfxvxwvwvgfhwxwwwwxwxwxxwwwwwxwwxwxvwwfvwvvxwwwwwwxgwxgvhgvhgwxvwfwwwwxvvggfgvwggvwwwxwgxxwxwxwvxwwxwwxwxwxggwxwhwxwxxwwgwwwxxwwgwwwwwxvwwxwwxxwxhwwwwxxwwvwgggxxgfwwwwvxwwfwggxwxwxwxwfvxwwwxwwwWwwwfwfgwfwwwwwwxfwvvwwgwwvfwwwwwwvwxxwwvgwfgfgwwgxwwwwxxwggwgvwwxwxwwwggwwxwwwwwxwwxxwgwwxwwvwxwwggggfvxxgfwffvVfxvfggxwgvgfwwwggwgwwwwxwxwgfwvwwvwwvwgwgwwwwwwwwxxfwwvwwwxwwwwvwwgxwwwxwxwxgwwwxwvwwxwgwwwxwwvgwwwwwwwvwwwVfwwffgwwwwhfgvvvwwgwgvuwgwxwfgfvwwxwvgfwxwwfwgwwvwwwwvgwwxwxxwwxwxxvwwwxvvvfvwxwvwgwwgvhwwwgxwxfgwvwwwgwvvvwxxwvwwxwwwwxwwwwwwxwwxwwxwwwwwwwxxwwwwwwxwwxwwxxvwwwxwhxxwwhxgefxwfgggwwwegvvgwxwuvvgvwgfvfwxwwwwvwwwwxgxxggvwwxxxwxvvwwxfwxwwxwwxwvwwhwhxwgxwwWgvvvvfwwggvfwvexvvvxwgvgWuvfwwvgUwvxwxwggxwxwxwwgwwwwwxwxffxvwwvxwwwhvwxwxwwxfwwwhxgwvxxwfvxwwwwwwxgwVwwxwvxvxggVwvfVugfwFfeVffxwfwewfVwxffggwwgvgxwwwhwwgefwwwwwfuxwxxwxxxwwwwxwwwgfwwfwgwvxxxxwgvwwwwwxwxxxwwvwhwxwwxwxwxwxwxwgfvxwwwwvwgwxwvwggvwwwwwxwxhwwwgwwxwwwxwxwwxxgvwxffvggvfgxgwxvwxwwwwwvfvfxggwfwwwwxfwwwwwwggggefvwwwgvwwvwvfwwwwwwxxxwwxgvgwvwwwhgxwwgwvwxwwwwvxwxfwgxwwwwgwwgwwwggXeggfwfwvvwfvvfuxgXegwwwwfvgfwgwgggvfvwvwwwhfhwxwvgwwwwgwgwxvxhvxwwwwgvvwvxghvwwwfvwfvwxgwwgvgwgwxhvxvwwgvwwvwgfgvwegwwwwxwfwwvvfvgwgffgffwefvVufwwfvwTvfvxwgfwgghvxwwwhfghwxwfgUwhwvfxwgfxwwwwgwwgwxfwvvgwgwwgUgxgwfewVwxgwwwwxwgvwgwwgfxwgwvwxgwvwwhvgwfwwwwwvwxwgxgUgwvgwfewVwxgwwvwwwwgvwgwxgfwwgwvfwxgwvwwhwwwfwwwwxwwwwgxgwwwffefvfwvguvvgvvwwwvxvwwefxgfwhwugvwwfwwvvwwwwvfeffVffwgfgvvgugwfwvwwvwvvwwxwwvfffeghfvwwgxfwwgvwgwwvvvwwfwwgggxwwwvwwevgwgvgVwvvxwgwwwgwvgVwvvwwfwwfvfwvwwggxwwvwwfwwwwgwhwwffxfefwvguVWfgfwvwvgxWwvVVffvhgwwvUguvfvVgwxvwgffggvwwwwgwvxgvwvfeFvvfVvvvfvwfwwvfwfgwGeuvvfvvwwwvvvwgfggfgvwvvfWUVtfvfgefuvvuggfvvgvgfwwwwvvweegggWffwggfWwxgewwxwwgwgwwvwxwgwwgWxgwvfgwwxwwwwxxvwfgvwfxwggwhggwvwwwfwwhwggwwhxwwxwggxwgWwvwwfvuwwwwfgwwwuwWgvffwvxgwwgXvfghwVwgxgwwffwwgwvwwgwgxwvggggevwfehfVfwwxwgwwwwwwfUxgvfxwfgvgwfvwwwvwvvgfeVdwvfgfwvfwwggvggwvwwwvwwvwXfwwvVfvxvwgvhWfVvvfVvfvfggxvhWvgwgggfffEwfVufwvfgvvWdeVUffVfUfgdfeeVVufevgffffvWwgwgVwevwgwvfgffvffUwwWfVvfvgefgufvgfvfwvffvwgfvfewfwwfvffvgwwwgxgvvVgfgwgvwwgwgfufVfVgfeffEvfuguVWfvgvffvvvgfwvfvuVEeeVWUvEufVffgvffvvVfeffefeVffvfgfefgwgTfgegvEUvwgvggvgfvwuffvfwugvwwgfvfffwxwggwwgvgfgUGfWvVffgguffgvvffvUefffufeffvVggvgwffgfvwwwvvgvwWgWwggvgwweWfVwfvggvewffvewWvvwgvfvgvfugwgvwwgvgfwwwvwwggwggwgggwwwwvwgvvfgeWvvvfeWWvfwUfgggfvvuvvwgVfgvuffgfvXVvUudWVggfvfuvgfevfVfevVVvWgWggvvgVfffffWefwwwvvvfvwwvvgwfvgvfgvvgfwffvwxwwgwvvgwgwffWufvfffwvfwfwvvfgufUUffdgTfegUUfffvfvVvvwwggfwvvwffggevvufggevvgVfvefgfwfwvwffvwfvgvwfvfefWgvfvgvwxfwvvwwwwgwvgwwvwwwwgfvVggfWuewvFgetVugfvgwvvvvVvvvfgfvgwfVfFwftVtUfvgVfVfefwffefevUeeVfggfVfufwVfufVuWfewwugwefwgfvfvgwgfvwwwwwxxwxxxwgwgwvvwhwxwvwwvwwwxxwwwwwwwwxxgxwwwxxxxgwwwwwgggwwwvwxxwwwvwwwxwwwxwwxxhxwwxwxxwxwWwgwvvwwvwwwwwwwwwwgwwvwwwwwwwvwvvwgwwwwwvwwfvwwwwgwwwwxwwwgxfwfwxfwvgxwwwxwwwxfVgvwVeefUWfgwgwwvfwwgwVuEvfgffufVfffvgfefffDUVUfUeegVFdeUeVUVffewffVfffugeVwvfgffwgvVffWvgugUffvwgVvfgeUggeffefwVWevfffVfwguwwggwgwfvfggwwwwgwfhvfWefefEffUVuUfVfVffWffgwfwgfffvfvvvefVevdf6T6TvffVVVVfgefVfVeffTUfdfefevVVfefVeeFUVFwvvwwfvfwvvffwvwffwxwwvxxwxwwwxhWvfvvgvgwwgwwgwwvwwxwwxwgwgvwwwwxwwxfwvwxxwvxhwwxwvWwgwwwgwwwwwgvgvfwxxhggwwwxwwxfxvwxwxvxwwxwgwwewgggwwvgwgvwwvvhfwvwgxwwwwwxwgfwxwgwvwvgvfvwvvgwgxwhgwwgvgvvgggwwghvwfwwegxfwwuwvgwwwgwwxxwwwgwwwwxwwxxwhwwwwvvwggwxxwwxgxwufgwwwxvvwgwwfwwhwgxgwgfwwxxwxvfxxwwgxxwgwwwxwwwwhwfvgwvwxwwwhwwfwwvvhwwvwgwwxwhwwxxwwxwvhwwufgfvwwwvwwgwvgggvwwwgxxxxvhvwwwwUevVgWvfwgfwgvwgwwvwwfwvwvwvwggwvwgwhwhwgwwxwwwwhwwwhwxwxwxxxwxxxwwwgwwvvxgwhwwvvwgwgwgwfxwvvwwwwwwgwxwxxxwhxwwwwgwwwwwxwxxxwvwfwwvwxxgxwwgwxwxwwwwxwwxwwwuwwgwwwvwwwfvvvfwwwwwxwwwwgvwxwfwfwVvgvwwwwwxwwwwgvwwgxvwhgvxxxgwwxwxwwxwwfwvwffffuxwwhxvwgfuwwgfffUgwwhwwewVVvfwVeVeVfeSfUTVUUtfffvgfVfgfvwgVvfwVfeEVVUUdevfgwVufvgvgefVffggfwgvwweevfgwwvfwfwwwwvwfvwwwgvgefggggwvvvxwwVfvwgfefwffwwxwxwvwgwgvwfUfvfffeeffgfeVVwweVfVfvfggwfEEUUegvfffvwvgfvgefvvvfVfffefwwwvwgvvTUUfeffuwvwwwvwwwwxwwhvvvgwvWegwegwwvwvewvwwwgwwwwwffwwfwwwgvwwvwwwwvxwwwvwvWfwwgwvvgfgwewwwfwfewgwwwfxwwwgwvvxwwgwxgxwwwvwgvwvgwwvwwvwwwvggfvfvgvxvwwvvgwxwwgwwwfvwwwfevgwvgwgvfWwxwfwwwvwfgwvfwfwwhwwxwfvhwwggvwwwwwwgxwwgwwVvvgwwwwwwgwvxwxxgxwgwwwhwfgwgwvwwwwvgggvwwgwgwwvwvvgfvvgvvvfwfvwvwgxhgggwvWwwvggefwgwwgwwwwgwwvhwwgwwxxwwgxwwwwvwgvxwxwxxxwxwwwgvwxwgvggwgwgfvVuxWwwwfxwxwwghxwwxwwwwgfvwgwfgfugwfgvgwwxgwfwxwwgwwfvfgwwxuwwwuwgwwgugfwwwxwvvwwgwfwwvvxwwgvwwxxwwwxwwwvwwhgvwxwwwvgvxwxwwwwwvvgwwwwwwwgwwwwgxwwgwvgwwwgwwggwwwwwwwgwwwwxxvwxwwhxxwwwwwgxxwwwxwwwwwxwwwgwwfwxxffwwwxwwwvxwwxwwwvfxwvwgwvwgfxvwxwwwvgwwwfwfhwwggwwwgxwxvghwxwxwwxwwwgwgxwfxwwgwwwxxxvwwwwwwwVvghwwggvVwwvwwggvvggvvwwwwgwwwfgwwwxvvghwfvgfgfgvgvwwwxwgwgvwwxwwwfxwwwwggxgwvfwwugxxwwxgwwwwxxwwxgwfvgvwuwwwfwwxwvwwwfwvvvwfwhwwvhgxhgwwwggwwgvvffwWvgvvgfwwwfwwuwwwgvWuWewvwwhwwwwVvwgwvgvgwwwxwwWwwwwwwwwvgwxvwwwfwwwwwxhxwwwugwWwvwggwwwfvWwwvwwwwwwwwvwwxwvwvwwgwwvwwwwhwvwvvwWwvwwfufwWwvwhwxvvfgwwwvwgggwgvwwvwwwwwwwwwgwvgxvvwwfgvwwggffwvuvgwwvvgvxwxwxwwvwwvwvvvhxwgxvvffvgfvgwhwxwfwgwvvfvgwwhwwvvwwvvwgvXfwvwvwwwwwwwwwffVvvfwwwwxwwwvwwxxwxwwwwgggvwwwwwxwwwwvwwfwgfvwgwvwwvxwfgvwgwvgwwwxvwgggwgVwwffegwwxwggwvwgwwfwwwwvxxwwgvxvhwxvwwwwwwwxwxwwgwwwwwwWuvvggwgggvgvvvwffvwxvwwwxvxwwwvwwWwvhwvgUwVfvgefwvvgggwwgvwvwgvvgwwwvfwwvvVwwggfgvwwwvvgwwwfwggwffgwwxwxxwxwwxwgwfgvgvvwwfwwvwvvxwwxxxgxwgwwxxxwwwwxwhwwwxvgfvfVgvwwvwgefwwxfgvwxgwwwwwwhwwvxWvvxxwwwxwwxwwwxwvtgfgguwgwwvvfgwwwgfvwgwgufwxvvwxfvvgvfVwgvwwfgvxwwwxwwwwwvwxvwWfvxwggwxgfwgwwwwwwwwwhwwxegwveWgfvgwxwgvxwwwwufefwgfvwgegvwvfvfWgftffeeggfffugvwwgwwvwgggvwwwwggwgfwxwwegVggvfwwewwvgwgvhvvfwwvVfvgwggwwwwwwxvwvvwxwwgwgwwvgwwwwxwwgvfwhfvvwwvvwvwwvgvvwgvvwwvgvvfvvwgvwvvwwwvvewvuVVffgwfgfgvfffvwgvwvfwwwwwvgfgfvfwefvvgwwvwwvvgffwvxvxxwxwxwxwwwwwwwxwwwwgvxwxwfwwwwwgwxwwwwxgwvvwwwwwwxwwwwwwwgxwwxwxwxwwwxwwwwxhwgwwwxwxxwvvwgggwwwwwxwvgvggxwvwfgwwwwvfwffVvggvwewgvwfwvgwwwwwgwwxwwgxfvgwwgvwwhxxwwxhwwwwwxxwxxxxxwxvwxxwwgwwwwwxgwwwfwwwgwgwwwvvvvggwwwgwxxgwwwvwwwxwxxwwwwhwwwwxwwwxwwwggxxwwwwwwwxxvwxxxwwxxhwwvwvwvgwwxwwWgxXggwwfxwwwgxfvvwxxgfwggvvvgewfxgxwvwfgwfwvwwuvwwgwwuffxgwwvwwgwwxwwvwwwwxwwhwwxxxwxwwgxgxwwwwxxwwwxwfwwvgwwvgwwgwgwvgwfgwwgwwxgwwxwxwwxwxwwxwgxxwwgwwwxvhwxwgwxwwxhwxxxwwwwwwwwwwwwwwwxxwwvgvwgwgvwwvxxwxvgwvwwvvhvwVwfewwugwwwvgfgfffwwwwgxwwgwgxwfxgwwgxwwhhwwgggwwxwwwwwwwwwxwxxwwwxxwxwgvwwwVgwvwwxgwwwwwwfvvgwwwwwggwgwfwwfxwwgwwwwwgwwxwwwWvwvgwfgwwwxwhwwxwwwxwgwgwwwxwwwwvwxxxwvxwxwgwgwwvwwwgwvggxfggvwvvhfhgxwwvgfxvfuwvwgwwfwgvgvvgewfwwxuwfwvfwwuvwggvxwwgwhwvgfWgwwwwwWwwxwxxwhwfwxxxwwwvgxwhxxwgvwxfwwwwgwwwxwvwgwwwxwfvggwgwwwvgwwvgwwwhxwwwvwwwgwwwwwwwwwwwxxwxxhuwwwhhwfxwwxwvwwxvwwwxxwwwxwxwwgvwwvgwwgwwwvvwwvvvwwvvwxxwwwwvgwwgvgweVvuvhevggxwwwvggwVvwwfwgvwwxwvuxfwgwwxhwwwwwwwxwxxxxxxxwwwxwwxxxxxgwfggvwgvfwxvvvvwxwgwxgwvwgwvwxwwwwwwxwwhwwwwxxvxvwxwwwvwxgwxwwvxwwxxWggvxwugwgwwggwfvwxfxgwhwxwwvgwwWwWUVfwewgfhvwvwwwguwuvwvwfwgwgwfwfxggxwgwwggwhxgwwhxxwgxwwxxwxggwwvvwgxwgwwwwwvvwgxxgwwwwwvwxwwwxxwwxxwVVwfefggwwWvvwwwwvuvVwgfggwfxwuwfevvgvwwwwwvgwwwwwwwgxFwggffuwvfVwffwfggvWffgvfefxvxfffvwvwwffVwwgfvgguvfwwwwwfVvfgwwwwxVfvwwfwWfffvwfwwwwgwwwxwggwwwwxwwvxWvwxfwwwwgwxwwwxwwgwfwxwvwwvggfwwwvfgwvwgwwvfgfgwxwwfvvVfgwxwwwwffwwfwvwxwgvgxgwwwxvwwVgxwwwxwwwfwxwhwwwhxwxwwxxwwfwwgxvwwwwwvwwwwgwwwwwxwwxwfwwgvvwgwvwgwwvvgwfgwgwwwwwwwgwwvwwwwgwwwxwwwwwwwxvgwwwwggvvwwvwwwvwwxggxxwxvxwxwwxwwwgwwwwwwwgggvwwvwvhgwwwxwwgwwwwwxwxwxxwwvwgwxwwgwwwwwwxwxwxwxwwxwwwwwxxwxhwwwwwxwgwwgwwxwgwwwwwwwvwwwwvwwwxxxwxwwggwwwxwhwgggwwvwwwwwwwgwvwwwwwvxwxwwwwwgwxwwwwvwwxxwxvgwxwwxwxfxvwwwwxwxwxxwwwwwwwxwwvwwwhwwwvvwvvhwvgvxwfgwgvwwxfxwwxwwwwwgwwwwwwwwhxwxwwwhwwwwxxxxwwwxwxwxwwxxwxxwwxwwwxwvwwxwwfxwwwgvwxxxwwwwgxwwxwxwxwuguggvwwgvwwfgwwfwwwwwgxwwwwxwxvgwvwgvwwwwwvwwxwwwwwwwwxxwxxwwwxxxxvvwxgvgwxwhwxwwwxxwwxwxwwwxwxwwxxxxwwvvggwwwggwxxxhwwwwxwwxwwxwwwwwwwxxxxwgwgwwfwwxvwvwgfwgwwgwwwxfwvwwxwvxwfwgwwwxwwwxgwvvwwwwfxwwwwgwgwfxxgwwwxxwxxwwwxwuxvwxwwgvwxgwwfgxxwwxfgwwwvggwvwwvhvgvgwwgwffvxwvwwvvvwwwggggfwvwwwwwgxvwwwwgwwvfWhvwwxwwwggvxwwwvwwwwwxxxwwfwvwgwvwwgwxwwwxfgwwwhwggxwxwwxwgwvwwwwwwgvwwwwgvWvwWvgwwwwgwwvwwfvwwwgwwgwwwwwwvwxfwwvwwwwwvfwwxwwgwwwwwwxwvwwwwxxwxwwuewwWvwwgwVwxwwwwhwgvwxwxxwxhwvgwwwwwwwvwvwxwwxwvwxheewwWvwwfwVwwwwgvgggfxxgwxwwxhwvgvwwwwwfwwwwwwwwwgwwwgvfwwfgwwwwvwwxgvfwgwgvxgxwwfgvwwwwwxfwwgvvwvwghgwwwwxwvgwwwwwxwvwwwwwwwwfwwgwwxwgvwwwwwwwgwwwwwwwwwvwxwwwwxwwxhggwfwxwxvgwwwwwwfhwwwwwwxxgwwvwwwwwwwvwwwwwgwgwwhwggwwwfwwxvgwwwwgggwfwwvwgwgxxxgwwvwwvwwvwgwvwwwwgwwxwhxwwgwvVvvgwuwvwvgvwwegugxwwvwwgwwwgwvwwwwwwgvgwfVvWgwgwhhwxxwgvvvvvvwgwvvvwwvfhggwwgxvvwwwwwxwggwxxwxwwwxwwxwxwwwgxwxxxwxwwvwwxwxwhxwwwwwvwxxxwwhxxxvwxvgwwwwwxxxwwwgvwgghxwwwxxvwvwgwwwwxwwwxwgxwvwgvgwwfwwwwgwwggvggxfhwxwwwwwwfwwwVwVwgwfgwwwxwgvwwwwwvfwwgwgwwwwwgwwwwwwxwwwwxgvggfvvffgwfwffxwwwwWffvgvfdffgfvwvgvuDVfTEfgffVffeUffvfffeffVgfvfffeuxgvgvVfgfwgwgwfvfdefVfvwfffufwwuffgvvvwwwfwgwgwgwwwwVfvwfffxfewxwggwwxwwwfffwgfvvwgfvfvvfgffuwwwvfvWffvwwggwwwgfffevvwfVdfVVeefVVfVfffVvffvwffgfvufweffvvfgeefvwwefwwvfvvvwwwxwwwwwxwwwwwwVwvwfgwgwwwwwwwvwwwwvggwwwwwvwwwxwwwxxwvwwwgwwxwgwwwwgwfwvgxhwwvwwxhgvwwwxwwxxxxxwwwwwwwwxwxxwwwgwwwvwwxwwwwvxwxwxgvxvwgxwfwgwwwgwgxwvxwwfwwfwwxwwwwxwxxwxwwxwwxwwwwxwxwxxwwxwvgwvxwwggwwwxxxwgwwhxwwwwvwwwxwwvvwwwwwwwwwwhgwwwwwwvvvwwxwwwxxgwwvghhxwwwvxwwwxwwvwxwxxxxxxwvwwvwxxwvxwxwggwwwhgwxxggvvwwwwxggwxxvvwvwgxvwwgvwvwfvxwwgwwgwwwwwwvgwwwfxwwwwxwgvxwwwxwvwwwgwwwvwwwUggwwwwvwvhwwwgwvWvgxwgwvwfwwvvwggwvfwvgvgvvwwwvwwvxfgwwwwgxwwvwxwwwwhwxwgwxxwgvfwxwvxxgvwfwgwwwxwvwwgwgwgwwwwwwwvwxvwwvwwxxwwwwfwvwwvhvvfwvwWwfwVvgvvwwwfvfxvwwvwfggwgWwVwUfwvvwvgfvfwgvwgvvvggwfwvgwwgvgwwgfwfwxwgwhxwfwxxwwwwgvwwwwwvxggwwwxwwfwwguguwxfwwwvwwwvgwvwvwwwwgwwwgfwwfwwvewvvgwwfxxwwwvwxvwfwgvWugwfwwgfgwwwfgvvwwwvwfwwwwxxfwewvwwwfvwxwwwwvwvwvwgwwgwgwwvwxwwwwfwVwfwwhvvuwwwwvwvgwfwfwgvhvfgfwfwvgvfvvwwvwwvgxvWvgwvgfwwwgggwgggwwgwxxgwxwwhxxwxwwxwwwxwxwwxxxxxwgwggwgvxvvvwwwvwwgwwwwwvvwwwvwwwgwxwxgxvwgwvxxwwwgxwgxhhwxwwwvwwwwwwvwwvvgwhwwwwghwwwwxwxwvwhxgxxvwwwwxvwwwwwvwwwhgfvwwwfvwwxwwwvwhvwwvwxwfwwwvvwxvwwwggfwwwwvxvwwwvvhfwwwvwwwwwxwgwwwwwwxwgwwxwwwwxvxwxwwwwwgxwvwwvwwxwxwwwvgwwgwwwxwwwgwwwwxwwvxwwwxwwwgwvwwxxwwwfwwwxxxwxgwwfwwxxwwwwwxwwwwwxxvwwwhwwfvwfwwwwxwwggwwxvvxfwxwxgwwxxwwWvvwwvxfwfwwwvgvgvwwwgwwxwwvwfxwwwwwwwggwwwwwxwwwwwwwxgfxgxgwxxvwwwwxxwxwggvvvfwvvvxwxwwwvwwvvwxxxxwgwwwxxwxwxxxggggggwgfwvxxwwfvffwfvxwwxfvgwwwwxxwwwxxxwxewgvvwfwggvwfwwfwfwvgwwwwwwfgwfwxxwvggwvvvfwgvgwgfgvwgxgxwwxfwvvvgvwwgwhwwwwxgwgwxwwwhxwxwwxwxwxwwgwwguxwgwxwwwxvwvfvvfVwfvvvgwwwewwfugUvhfWfvgVhvvwwvggwwwgwxgewwffwwwgwxwwwvwwxwwxxwxwxwwfwwwxwwfxwwwwxvwvwwxgwvxwxwwxwwwwuwgggwwvwfwgvuwwwwwxwwwwwwVvgVgvvgfwvvgvugwwxxwxgwwwwwwvwvfgfwwfgwvwvgvwfwwwxxwxxxwxxwwxxvwwxgwwwxgvhvxwwwwfwVvgvgwvwwwwgwwgwgvhggvgghvwwxwxxwxgwwwwgwxwwwxwwgwwxxwwwvgwhfwwgfxwvvvxwhgvwxwxwxwwxxfwfWwvwgwwvvhwxvxxwwxxhwwfgvvfgvwwvvwwwxwwwwxxxwxwwfgwhgWvgwvwvwvxxgwwxvxwwwxwxxwxwwwvwwxwxxvwwgwfewggwwwfvwwwvwwwvxfgvfxghwgwwvwwwwxvwwgxwxwxwxxvxwwwwvwhfxwxwwxwhwvwwwwwwxwxwwwwxwwgwvxvgwwwwwgvwxgxwwgvwgvxgwWwvfwggvfwgwwgwwwwxxwwhxgwvfwwgvgwvwwwgwwxxwwwwwwwgwwgwwwvwwVWvwuvguvwggfwwwwwuwwgvwwwWwwwwxxggggwwwwgvwxwxWWvwgwwwuwxffvwwxwvwwxevggvwwxvwwwwwxxgggfwwxfvwwwwxfwwwWwggwVvvvwffwfhvwwhgxUevwfwwvwuvxwfwwggvgfwwgwVfvwwwwwvwwfwhgfwgwwwggwwvwgwgfwgwwwwwwwgwxvwgxwwwxwxwxwwwwwwvwuwwgvhxwgwgwfggvegfwwvgvwhgVwvguvfugvgVevwfvwvvgvfwwvwuwwwwwgwgwwwwvxwvwwwwwwwxxxwwwwvwvgwxwvwvwwwwwvxwwvwwwvwwxwwwvvvwwwvwgwvvwwwfwgvgvvgfvfvfvwevffwfwwevvvxwxvwwwvwwwwwwwvgWgfvgfwgwgwwwwwgwfwwgwwwwgwffwfgwwwwxwFgggvevfdfgeVfwwvwvvvwvwvvgwwwwfwwggvwwvwfeVvwgfgvwgwwwwwFVgfvfwvtfgeVfvwvwuvwguvfvgwxwwwVwwwwwwwwxgeVfwgvgvwvwwwwwwwgfwfWuffgVgvgffwvgvfwghvwUVuwfgvwvvgwwweffvgvvfxfgUVvwvwwwwvvwwxuvgfvgxvwvwfxvxggvfvgVwfgwgwwwwwvwxfwwwwwwwwwvgvwxxwwvgWggvfwvgwvWwwwggwwgggwwwwwwwvwvfgwvvwvguvvvwvwwwvwgxfuvgwgwwVvfgwvgwgwggwvgwvvwvwxwwvwwwwvwvwfvvgwwwgwvwwwwwwfvVfvfwwgfuWggfwwufwxwewVfvwwwgwgwvwWfgfwuffgWgvffguwwvwwwgvvvxWvwvfxwgwuwwgwWgxwfvvvvggwwvvwwvgwwwwwwwwxwgwwwwvgxhwwwfgxhvwvwwwwgxwxvwwvwwwwwwwgxwwwwwwwwxgwwwvwwwwxfggvwwvwwwwwwxxwvxwvgfwvxwxxgwwwxwwgwvwvwwwfwwwxgwfgfffwggfxvfvwgvwhxgwwffxgwwwwwwxvgfvvvfghfwwguxvwwwgwxwwxwuwfvgxvvwfxwxwwwwfwvgwwvwwwfhwwxwxwwwxxwwwgwxwwvwxwwwwfwwgwwwgggvwwgwwvwwwwwgwxgwgwhwwwwwwwwwxwwwxwwwwwgwwxxxxwwwxxwxwwxxwwwxwxwwwwwxwxwwwxwwwxxwxwggxwhwwgwxvwvwxwwwxvwgvvwwgwwgwwwwxgwwwwwwgwxxvwwwgwxwwvwxwwwwxwwxwvwwwggxhgxwxwxwwxwwwwwwwxwwgwxwwgvgwwggwwwwggwwwwwwwwwwwwwwwgwhwxwwwwwwxwxwxwwwwwwwxwgwwwwwxwwwwwxxwwxwwxgwggwwxwwxxxwwwxwwwwxwwxwwwhxxwwwwwwwxwvwgwgwgxwwwgwwwwxxwgwwwwvhxwwgxxwwxgwwwxwwxxwwwwwwwwxwwhwuwgwxwwwxwhvwwwwwwwwwxwgwxxwwgwwggwwgwhvwvwwvgwfvwwxwwwwgwgxxwfwwxwwxwxwwxxxxxwwwwvxxwwwwxwwxwwwwxwxwxgwwwhwwxxwwvwxwwxxxwwwhwvxwwxxwwwgxwxwwWwugwfgvwhwwgwwwxvwfwgwwwwvwwgvwgvwwxxxwwwxwwwwwwvwwxxxwxwxwwwwwwxwwwvvwxfxwgxwwwwxxwgwxgwwwwwxwxwwwxwxwwwxwwwxwwxxwwfvgfwwwwxgwwwxwfwwgxvwwwwxwwwwgwwxwxwfwwwwwwxxxwwwvvwwwwfwgwwwwwffwhwgfvwwwgvwwwxgwvvfgwwgwggvgwwgvwgwwxxwvwwwgfhhfwwwwwvxwwwwwwwxxwwwwvwvwhwwxwwwwxwxgwxwvwvxvxwwwwgvwgvwggfwwwwwwgwvhgwwwwwwvgwfvwgwwwwxwxwwwxvwwgwwxwwwgwwwwxwwwwxxwxxxgvwwwwfwxwwwfxwwwwwgwvvgwxwxwwxwgwwxwwwwevguwwwWfwvxfwwwvwwewwgvwwwghvwwvxgwwfwwfwxxxwgwwwwwxwwwxxwxgwxgvvwvvwgwwxwxfuwxVwgwwwvgxxwvwwwwwwwxwhwwwwwwwxvxxwgwxvgwwxxwwfuwwVwwgwwwwvgxwxevgwvwwwwxwguxfwwwwxgvwwwxwvvgxwwwwvvvvvwwfvwxxvgwwffvwwgvwwxwwxvgwwxffVffvvwwfWfggfwwgxvhvwvwwuvvfvwwvgwvwwgwwwwxwwxxwxwwwwwwwwvwfwwhwwxwwwwhghwvvwwxxwwxfxwgxwwgxfgwwwxwggwgvwwwwvwwxvwwwvvxgfwxgvwwwwwwxgxvxwhfwvvwvxxwxvwwgwwgwwgwwgwxwwwwvwvwwwgfWgwgwfxwvwfwfegxwxgwfwwwwxwwwwxwwgffefVwvwWWfhvgvvvvWwwvvwwvwgvvwfxgvwuhWgwwgxwwwxwgwwgwwxvwxwwxwgggvvvfwgwwxwwwvvwfxwwxwxxwwwwwwwwhwwwwwwfwwvwxhvwwxwxwxwvvxwfwwvwvwxxwwwVvwVwwvwwwvwxwvwwvwwwwgvwwwwxfwwxwxwxwwfvvwgwvxgxwggwvggvwghvwwxwwwwxwwwxxWWeuVvwwwgfgfwgwwxgwwwxfwwfgvwggvwgwvgxwwwxwwwwwwwxgwxxxxxwxwwxwwxwwwwwhwgwwwwwgvfvWefgfgUffvvvwwwwgwwwwwgwvgfvwwwwgwfffwwwwgvgxwwfwwwwvwxxwxwwxwxxwwwwwxxwwwxxwxwwwxwxwwggxwxwfwwwwwwwwwgvwwwgffUwvwwfwgfffwwwxxwxwwwwwwwxwxxfffgwwwwwwvgwwwwxwwwxwxwwwwwwgxwwwwwwwxwwwwvhvwwwgwwwwwwwwwxwwfxwwxwwwfwwwwvggxwxwxwxwgwwwwwxwwxwxwwxxwwwvxwwwxwwwwwwvwvvwvwgwwxwxxhwwvwwwwfwwwwxfwwgvwxwwhvwwfwwwgwwxwwwwwvwwwwwxwxxxxwwvxwxwwwwwxxxwwwwwxwwgwwvwxxwxwwwxwwwggxwwwxwwggggwwvxvvwvxwwwwxwwwvvxwwwxwwwwwwwgwwxwggwwwwvxwwwgwgwwvwwwwwxxxxwwvvxwxwwwxwgwwwgwwwxwwgfxhwwwwvxvvgwxwwxwwhfwwwwvwwwvwwvwgwwwxwxxwgwwwvwwwxwwwwwwwwvvxwwxwwgwwxwwvwxwwxwwxwwwwwxgvwwwwfwfwxwgvwwgwvwwwxwxwxwgvwwwwwwwxwwxwwwwwwwfvwwwwwwxvgwwwgvxwwxwxwxwxwwgvwwwwwxwwwwwwwxwwgwgxwwwxwxwwwxwwwhgwwwwggwgwwwwwwwhwwwwxwwwwwwxwxwwwxxgwxwvvwwwwhwwwfwwwgwwwwwxwwwxgwvgweWgwfgvwgwggwvVwwvwvhwwwvwgwgwvggfguvwwwvwvwhwgwvwgvgguVgwfgvwxgwwggvVwxvwvwwvwwgwwwwwghfgevwwxwwvwwggfwwwwvgwwxwwgwvxwwwwwwwwwhwfwgwxwhwwwxvfwwwwwwwvwgvwggwwwwwgwwwxwgvwwgwwwwwwwwxwgwxwvvvgwxwxxwwwwgxxgvhwfwxwwwxxhwwfwwwwwxwwwvwvwwggwfgwWwwvvvgxwwwwgggwwvwvvvuxvwwwwwwgxwvwwwwwwwwvwwwwwhvwfvvVvwvvvwwgwwwgwvvwxxvvfevwwwxxwwwvvwwwvwwxxwwxwwxxwwwvwxxxvvwwxxwxwxUwgvvwvwwwgwwfwggfxxwwvwgwwwwwvwgvwwwgwwwwwwwxwgvvgwxwwxwwhwwwwggwxwgwfwwgwwfgvwgwgwwgwwxxwxwgvgwvWwfwvwvwwvggwvwxgwvwguwwwwwwwvwwwwwwwwwhvwwwgvwxwwwfwgfwwwwvwwwwwwwfxwxwwgfwwwwwwvwwwwfgwwwwvvgxfwgwgxwgvgvvwwwwwwwxgeffwewewwvvgfggwfvfwwwgfwwwfwgggxwgwvxwwwwvwfvxwgffwwxwxgwwwwxxxwwxxxvvgwhxxxxxxxwxxxxxxwwxxxwwxxxxxxxxwvvwwggwxxxwwhvgwxwwgwwxwwwwwwvwwxwwwxwwxwxwwwxxwxwxxwwxwgggUwggewvEtwVuVTfUWfVffwggefefgffUufVuevvwvwwwwwxgvwggfgUefvUVwvggfWvvwgFefVvvVfvwhfwvVtwfuWUfVWeevwVugvgfvfgffvgegUefvefVwfgfgvffeWfUfvf6ffvwfwwwgvvwWuvgwggUewvEWggvgfWuvgvGdeVuvGewwvwwfwgfffwvwwgwwgwWffgvwWfvwwwwfhwwfUfeVggeewwewvfgvefUgvTeevvvvVggggguewvvffggvefwwwfgfuwfvVegfefvgwwwwwxwvwvwvvwgffuwfgWgwgggvvwgufuvvfVfwvvwgWvugwveffgeevwhvuxwvffwgvffgggfewfVgufgwgfvgwgUeffvfFfgwwvwfwwxvwwvwwWevwgfevfwfwvfvfweeevfvFfwwvwgvwwgfvgwwwwwwvwvfvwwwffwwwwggWwxWVgfgggeuwWgggggguVggWdfefgggWfwwwvvfVwvgWgegvVfuxwwwvVevfvWfffwffuwfwwgwwxwwwfwgvfUwfVeVwwwgvfvvwgfevfvfFvxhggvffwvvWWfggVvvwffvwXgfwgfvvggvefvwfeUhggwgggfwVVgffgfFvvgwwxwwwwwvwffwgefvwWfWgwggwffwwewffwfVvwgwfwwggfgwvwwwwwwwgfvwwwgfvwwwwgvWwxfuVgvWfTwwWvggvgvegvgeefevggvvfwvgefegefgfgfffvwxwwwgfwfvwwwvgvgxwwvxgwwxwvwwwwfgvgfgvwgfwUgvwwggvfvfvwwgwfVvgvffgfuffVfvwvgfwvgwvewveuwfvgggfgUwgvfgfVuxveVuwFtwwxwvwxvvwfwwguwvgwwgvwwfvvwwwggvgwfVevfvwffggvwgvfwwxfgwwwwWvwgwwxwwvwwwwwwvvfwwwfwhwfwvwwvgwfwgVvgwggwUvwxfvvVUwWfwTveffUefwvgeUeffvfeffgvUuvvfvwwgvwwwwVewgfVUwffVDwvwfvwVuvgwEuwVuVdwwVvfVTwWewDuUfefuwffgvwUvfgffvwfgVUgeVVVwVvffvfvfVffevfffsvwwwwwwvwxwgfvvgVUfwffEwfvfvwfufvgUewfefuwgwfwwggfVwgwwwwwfwgffvwgffuwwwwgwVfwVfUggUVEwwwhfggffVvgeVVgVvgwgwvwgvvVwvffwfvfwvhuwwwwwgvgwwwwwggfxwwxwwwwvgwwwwwhwwgvgwwwwfwgvwwggfvwwvwwwwfvfgwvvfgggfvwwwwvwwvwfwwvhffwwwvvwwfgwfgffWegfvgvvWuvhwxxxxwwwwwxvwvwwhvwwwwwwwfwwfwfgfvwgwvgwwwxwxgwwwwfwgwxwgvwwwxgxwgvwwwxwgwgwwgvwvwwvwvgwuwfgvuwvwgwwgvwgvvfvvvvffwwwwxwwwwxwwggvwwgvfwwwwwwwxwxwwfxfwgfvwwfvgvwwwwwwwwvgwvgwfwwgffgffwugvvvfwwwvwgwwvffvwvwfvgggvgffguevgwvvwuufxwwwwgwwwwvvwwwgxwwfgvwwgvwvvwwwvgvwwvwvxwwwxwggxxwgwwvwwwwvwwwwwhvwvwwwxwvwggwuffwwwwwgwugwwggwxgggggwefvfvefvvvfefwvfxwvwwwgfwfwgwvvvwgvhgwwvwwwuvvwwgvgvwVVvwvvwvvvwwvfvwvfffgvvgffgVuffgeffvfwgufvvwgfgwuVgfgwvfuvWWvgffvuegfwuewtdxwwxwhvwvwwwwgwfvgvhwgfgwfwUwwvvfwwfggfgwwwwwgxwwgWvvfwwvwggfwwvwgwxgggwwhwfwgggevwwwwgwwwvwwwvfwvwhfwwwwxwwvwgwffwwwffvfuwwwwhgewVefewfgvfwwgwgvgvvwwwwwwggvVwvgfvwfvvgffvwgwwfvgUUtwxwwvwwwffgwgfWvfvwvwwwwwvwggwvxwwvgvffwVxwwwgvgfvVvgffffUvwvfxgvgwwwwwwwgfgegwwvwgwvwggffvvwffWvgFUugwfeVfffffgwvwwwwgfffffvgffwwwwwwwwwfvffvVUTwwwwwvggffevfEUeVvvVVwwWfwfevvffVUfffeefvwwwgfvvwwfggfwuggxvwwxxwxwfwvwwvwwffgfgwwwfwvwgUguwwffvfwwgfwgUewffffwVfffvxfvwwwgfwVwfwvWfwevgffffgfgewvwefffvtfwVwwwwwwwfvvwwwwfgWeVwwwwwfwvwgfwvfgffvVwwxwwggffwwvvwwwwgffvwgvwgwwwgvgwwWvWgwVfefvgvgwwgvggwgffWvWvwgVUFvwfWgeeegueFGVgWfuegwwgeffvwgefUFvffvvwwwxwwvfWgwvfvvVVfeevVgwvVWwgwEFgfvfVegvgVWwfttwfeVVVGgFuuwuvwvvVWgWffvVWVdetuUeWVgWfgfvfWWVfcvVFvvggwxxvvVVwfwfwvfffttffgwwgWgwvWVfWvVeuUfvggwefwvgwgggwwVVWwvgfvfwwwwuufgwdeffveEgfeuvvvgffhwveeWfvdeweeeVvfuWVFfdVfTd6efUuEvvffEeUUfUVUeeVfvfWfffwfgffuWwvgfffUUFfdfWfffeFffVd6fefUuTgfvfuWV5fdFfedFfVTuUgFfuWweeFuWeuVguWVfEfUTWeuWuWVueeFUuTUrUETVffvwfgffuWvvwfffeU5fdVffffdVeffdFVvfEuUfvwgvfUFfeffvgvuWvggeFfffVuegvgfVwugwWfefgFUWufVwugwWVguwWUWdfWUuWVfUfgvUgeFdfFeeCfTFuUeggfVTUVeeVUVeUfvfveffvvgffvUwwvgffVeUFdVgffffTffffCffeVuEegfgvUgUFcfVdfDfEVuUtfVdwWufTvUWveuvUgVeVfEWUvUwUguUfVVuEUuRUUeeffwvgffvUwwvgffVUVFcfVffffEffffDfvVVtUevvgwfeVVdffVgwvUggwfTVfffuUvwwffWuwggVefgfUWEvfWuvgweWVvgTWUfgTEweVFVvgWWgfeugefGGGWuTfvvwwVUffgwgffFVffvgfgwwxxvvWVvvvvwwfffeeWvvvvWgwggGGvffuVUfVwgWgWftdfueVVgWuVVwvuuwvvgWVgffggWeetufXeeVWgVvffWGueUvfcFVgggwwwxwwWgvggvvveVvddgffvvWWuvwVVvVgUffgwwvgweuwvuggvwgfVvvwvffwgwwwvegwfetffVWfufvuuwffhfvvgWdeefetgguWvwvgvfwfgffuVeVvffvgwwwfvvwvwfgvgfwvuwwwwvwxxfvwwvwwgggwfvfgwwgfwwfVuwwuffvWvwugvVfUfffegfffVfugwfxwwvgvWvvgvfgVwffVgffugvgwwffvffvgvtWvwwwxvwwgvwwfggfvUwwWwwwgfwwvfvwwvffvgvwvgwffvwgwwxwgwwgffwwwwvgwwwwfwwgwVvvWgffwVwfwwggwfwgfVVwfwVxxwwwwgvfvwfwvvvvggwwwwxwwwxwwwwwwxwvwwwwvwwwgxwwwwxwgvwwwwwwwwhvvwxfwwwxwwvhwwvffwfwfvgwwvvwvgweVxwwvwwwfgwgwgwVewwgvgwguwWwwwwwwgwgwwvwwxxwwwxwwvvxwwwxwwwfwwwwwfwwwvwwwfwwvgwxwxgvvxxwxwxxfwwwwwwwgwwxfxxxxwxvwwwwWvfffwwvgfVVgggffvfVfeuhgfwvETvfeeefUVfUuwffwwwvwwggvwvwfvggvfUeevwwffvwvvgeVdvwVTdwwfwvVUwffffffFeUuwggxxwwwwwWfgwvvgfwvUfVwwvwWfgfwfUfUufVDuvVewvwvwfgffvgegfefveUVwfgvgffffVffeff6TdwffwgvvfwfwwgffwwwwwfwfvwWUvxwwwfwgwwfVVfwgVUwxffggwwUUvggVUUeegfffwvfvVffVVeffefffUvgvwfwvfuvwffwgffVVwwwwwwfwxwwwwwwvgvwwvvvvUwwfvgwfgffvvvgevfwUffvVfffffgUeVUfvgfwgvwfvfwVfvUgffgvfffgewfgffvfvdfgeevfvfxwgwwwUwxwfgfwwfvvwwwvfefwwwgfWUwgffugfFfwwvgvhvwwvffwfvwgfwgwvvvgfwWuwwwwgvwfvhwwgfgfgffhgwgffffgvgugVTUVvvgggffefedgvWggVuuvwwvggWVfGVWvfufVvwxwgwfggwwwfwgvfvvugfvffVGgVfVvfggfvWvffgeVVfffffVUfVFVf6euvfvwvuggWggVvfVVgVveeVUffWWWfUuVVgcfVTvVVfwggggWWgwwfeguvgvvfwgvfffgufvfgEWVefvffeVfwvwvvxwgvwfWwfgfwggwfvwVwggguuwwwfweufVhwfwfuueffXwfggufUgeeVtfVVUVffeWfVfTEecefdFUuEVfffeeUVTUVeVVUfffvwffeffuWffwvwfffVfdffffVd6UefefdFUuTfvfgvffuGeFfeEfTfVcFDuUwWweVfduWdVeuVveWVvUweUVfeFeVUuTeVUrUEuUUUwvfgeffuGffvvffVeFfefffeVdFVUfffcFEuUfeffewgfWwufgvfgeFVefffdVVuefffVuWwefffwWwUVgufwgfWfUUWdfgvfGUWUUuVgfuVffwgVggWffFugegUWuVvvvwfgvgVvVvffvvwwvwvwgwwwVwwwwvgwwwWvvgfvwvTggvwfgUgVvvwwwffwUWfeefVUvVgEVuFuwgvwWvwfwVgffgVvgvgvfgfwVwfgVvVgvcfefffwwggwgvVwwvwfvfwuguwgwvwvUfvfggvEgufuwvfwvwwwgvwwwvwvegwfgwwVwfvwgfwvgwvwwfgvfhfwwvvggvegfwwfvgVhVeVfWffVVWwggWfvfefutVffffDfwgwvfVggefgVVuefgwwwwwvwwgWvvvvfvvwfvewwfvgWGffvVfffvfVvfgggggfVvVefeeewfFVuFfggvvffuggWgvVfeUGgefueWfeWGVVveUgVvfcvVfVfvwwgvwggWwvvwfVfvveffffvVWVfffffGVvVfffVVfgwwwvwwwwggWvvvfwWgfvgwffhvudfwgggueWfvgwgvfueWeuwwgeUhfffuvvfefgvwggvwgvffUwffgvfewvgwxwffewwgffgwvvwwwwvwgvwwgwvxwwwfwvwgvWuwwgwvwwgVfwwwWuggfevffffeufWUuFUvwgfwffgvgvgfeggfgfgfgffvfffvgfffvwvffvfvgwwvwguwwvwvwvwwfgwfwwggfwfvwwVuffvvvvgvxwwfxxvwwwgvwgwvgfvgfwgwgVvfwxwwgwfgfewwgvVwfggfgggxfwffgVwgwwwxxwwwwggvfwwvvwvwwxwxxxxwwxxwxxxwwxwvwwwwwxwxhwwwwwwfguwwwgxwgwxwwvvgwxwvvgvfwwwhwfvwwvgffwvvfwwwgxwvwwwwgxxwwxwxwwwwxwwwgxwwxwwwxxxxxwwwxxwxxwwwwxxxwwwxxwxxxwwxxVedfevvvgVUevefgFWDGeuvhfwwVevevwfffffvfgwwfwxwwgwvgxgvwgvvfUffgVfwggwwfVgfvffeVfgvfvgFfffffVEWUGfevgwvwwwhVhfXvvwgvwfuUuegggfwfhvvvwguufueWUfvwfwwwwfwfgwgwgvfeVfvgfffvgwggVWvuWffffffwgwgVwgvwvwwgwwgwwvvfffvgfwwwwwfuVggegfvgVfggvgwwwfgweeeVeTUeeeffgffUeffffFT6effgwwWdvVuvgeeeUfVeguwwwwvwffwwwgwwuwfeegggfffggwffffvfefefwfwwfVefUfvvTVeWeeVwwwvwwvvhvXfufwwggvUuTgWvfWfWvvuvgfueftdFVgfwgwwhwvwgwgvfgwfffVUffwfeffvgfUfdfudeVffgwwfggffvvvwfvgwxgvhfvfvufgwwwfwvwwgvewgWgWfvgffWfgVvwggWfugTfVTeVdvgwfVeffufWgFWdUwvgvwwUfeTvvfeeUdfvvggfvwggwgwvgwgvggvfUfwfVWffgvffegeVweUftgfefgeffUeVe6V4fUVVuwuwwvwWxVhfVxfgwwufteFugWgVgfewfwfUgfVgUFfwwewwffffewwgvggvfVUgvgeVfgvvwVfeefUefufwwwgvgUwvwfgwgwvwgfxvVwVfvfgwvwvwwwwvfVvgEuVwgfVvgVvgvgVvgVdfevwvwwxfvgggfwffgggxggxgvwwvwvwwwvwwxwwwwvwwwwwwhvwwwwxgwvwxwggwwfvwxwxfwxgwgewwffgffvwhvxvgvwvwwwfwxgwvwwfxggwfvvwuwvfwvfggvvwvwxvvxvgwwwhwwgwwwwwgwwvvwxwffvwfuwwwhwwgxhwwwvwwwwgwwgvwxvvwxwwwxhwvwwfwwwwwxwwxwwwwhvxFUVVUfvfffUVeVffUfCUfTuhvwwFffUgfffWVeffVvffwwgwgfvwwwvwVwfVVgvVfvvevgwfUvwvffTugVfvfVfUEefVfTeSUfUewfgwgwwfwTfwefwvwhfWVvWUwfVfwVvfgvefwVfetUwffwvggfvwwWvwVvfVEgfVffvfegvfTuweUVeuffvgfvfggvfgwwvwgxwfwwfVfefwvgwgwwwgXewgfvWUwfhfwgeguvwvgefVeGvvgfwwUwwgvwguvwfvvgvWwvwvvwxwwgwggwwwggwwwwwwwggxwwwxwvwwwwWggwwgxvfvhvhvvggwgvfwfvwwvvfuWfvvwvwwwgghVgwvgggwXgxffvgwFwvwwgwvfhwwgwgwgwWwwxwwvwvvwvwwgfwwwwwwffugvggvwwxwvxwwgwhwxwwwvwwwwuxwhwgxwxwwxggfwvwvwxvwvwwwwgevgvwvhwwxvfwugwwvvvfuwvvxxwwwhvgwwwwwwxwwgwwhxgvxwwwxwwxwvXwwwvvwvvvvwfdggvwwWfvgffvevvvgxwgwwwggggggwwfwggwgwgvvvvGvvvvgfuxggwgvvvwwgwvwvwwgwvwwwwwvgwwxwwgfuvvvxwxwvwwhwgxwgwwgggvwxxggxhgxhwwxwghwgwxxwwwggwgwxgfwwxfwggvwfvfvvxvgggwwwwggwwwwwwvwwwxwwwvwhgwwwwwvwvwxhxgwgfvwwvfwfhgwguwefufuwvfgxwvwfwwwVwwwwwfvgwgwwwgVwwfwFgggwffxwvvgwwwggwgxwwwwwvwvwwwwwgggwwwvfwwfvvfwwgxuxwwxhgwwwwwgwvvvwwwxxwwgxvgwxwwxxxxwwvwwgfvwwxwwwvwgvvVwwgffffwfgxgefgvgegUfvfvwwwwwgfwfwwwgwwgewwgfvwwwvgfguffwwfffVUtxwwgvwwweggwgfVffvvgwwwwgwwgwvfhgugvwwfvVXvvwgfgvwWfgfvgfUvwgfwwwxwwfwwwgwwVvfvvwggwwgWfgvwwffgffFUegfvVegvfffgfvwgvgvfgffvwgfvwwwwffVgvfgfwwwUEwweffvggVewwwTUffffuUfgwffdGdffegffUUeUvfwwVgfVWefffgfvggwwwwgfvwwwwwvDfffvwgwwgUfUfUfugfvwgwgvfwfwUwVWefWuwDvffVfuvWevhvwfwfwffwfVvVeffVeVgUwfwcfvUvfUvfffffwfvWewwwwwwwwuffgfvwgwwvDvfwfUvwwvwwwwgVwwUUxfvxwwfwfffwffwwwwgxxfwVeffVVewwgwvvwwhvWugeVgfvgfvwwgugvwVVFFevWWWedcfefVVVFVUuTfgfVdUVedTeUeffffffffwuugfvvfvwWF6VUVffVffVVVFVUteeefvffffggfGVfueeeed6FVWVEuevedveuWWWWWeveVffdTuuUEWVFVVWRuEVFUueUuVUeuVVvdeffvvfffVWVfVUffffg6FVWGUueffefffwgVgWFvffggfffWWVWgUuvvffwwwgwggdTuuUUGffffffwwvvdeUTWUfWUUffffuwvgTTTEUedFD5UREUUS5T5Dd4eeUU4DDEEUDEDETUeUEUUUFfdUUVefefTS%EDUUUEUUS5T5DdCUUUeUUUUVeUedFE5UCUUTR5SECdDUFUSFfdSEdFTdEUTUFUDfDD6TUEdFDaDdF4dDEdTDDEVUUFfTUUVefefTS5UDTUUUVUR5SE4dDUUUTUUUUVeeT5VDeUVUUeSEdFEdTVeUUUfVfffFUDfDDFSUUUVeVffUFf4DFDEVDDdVffUfffgggfvwwVgvGtvWvfUfeVUfghwfeffvgvfffwvvwvwwvguwwvwwwgwDgffwwggwgUvegUewwvfgwwfwwwwegfVevguwDgVfUuwWvgvwVfhfvwewgvgufXUwVwfgcveWevfWfevvwwWvwwwwwwggUfffwgggvwDwVWevwwwfgwwvwvgevgxvwggVfxfwgwwvxwwwffguUXevgwhwwwwvwWvVXUfhfeVwwwwgwwgeeEFfvVFUfdcfduVVVWuTUfuffEUUVVddeUfffffVfffgeteevvfffeF6VUffffVvVVWWuUEffvffwvfWfgvWWVfeUffe6FFVtUUfwueweuFVWWufUfFVVddeTWUdfVWVuURWWuEUvUeUUggffwueffvvwwfeVVUVUVfgff6FFVuEUffffefffggvVWgffgwggvFVWWvUevvfffgwwgwVddeTGUefffffffvevuEWUUgVUUuwgvvvvwVfgVufwWeugDvwUgVefveVvfxwWeffvfUgfffgwvvvwwvgUgfwwwwwWwFtffwwwwggfvgvVevwgwwfwwwWvvgfffffdgegFTUuVeuwwfwfgVugvgffvWefUgUgUfvVvgvffcfveVffffvwwwwffwwwwwgfVefffvvwggFdVueVuwwwwvvvwgvgffvwwvwwWUugffvwvvwxxxgffUwUWfewwvggwwwweffgUVwffffxwwwfwfwwwwfwwwwVvvvfwvgfwggwwxwwwvxwwvwwwwwvxwgwwwwxxxwgegwwvxxwvgvwfwwwwwwwwwgvwwwgwvvfgvVwfwgvgwggfvwgxxxggvwwgwgvwggvfffwfwgwwfwxwvgwwwgwwwxwwvggwwwwgxgvVwgwwfwwwwxxwxfwxwwxwwwfxwxwwwxxxwwwwwvvwxxwwxwxwwwfwhwwwwffvwuwwwwfvvwfugggVgffuwwghwwvxgvwwwgvxwwwwwwwwgwgwwwwwwgvggfhvffwwwvfwvwwvxwvwggfvgwfvVggfvwwwwwwwwgxwwgfxwwVfgggfxwwvvwfhvvwvvhgvwwwwxwwwwxwwwwwwwwvwvwggfhvvwwwwggwvwwgfggvwvwwwwfwgvhwgwwwhvwxhvfVuVggwvwwwggwwwVvVgvfgwfffgwvwfgfeevvvvwwwvfwVvtgfeGfvVhhwxuvWfgggvvvwgfgwwwwwwwxwfgwvvvwwwgggfgvvfggwwwvvvwgwwwgfwwvWvvfgfgvvfwwwvxvwgwhwwweWwwfveWWvfhvgfuufXvveguuffwwwwwwvwwgxxfwffvwwvwvwfgehefvwfwgwugvwwfggfvvvwwwggwfxvwggwwwvwwwvwVvefWvvvwwggWwwWfWggghgfggWvvgvfVVvvvwgwwvvfvvVgwggffwvxWhgvfggugwvfvvwwwwvwwwgwwhggfwffwwgwfvghuffewwwvwvvuwggwwwwfvgtVvfGgUfgvwvwwgwgxwwxwghvvwfVvgWgewvUgVgfUwvUggffxwwwwwvxxwwgfggwvvwwwvgggffwvgwwwwfwfwgvggvfvvwwwfgwhvgxvgwwwwwxvwgvwVgugvvwwwVvgwvuVVvfgggfWvgwwvfvfVuwwgvxeUwgfvfweffxwxxfvwgfwwvwvxwwwwxfxwwwwwVvwfwgwwxhvwfgvvuwvwwgwufwgVgfuwfffvxvfwwgwwwwwwffffWwfwwgewdffwwvwgewwwwwwfxwwxWvwgwfwwwwWuwvffvxuwwxvwwgwwwwwwwwgvwwwvxvwwxUwgffvgwxwxggxhvwgxgfwwwxfxxwxwffVwwxwggwfvwXvffwegfvwwwghvwvvvwwwhvwxwwwwwwwwwwxwvwwwwwgwwwwfvwfvvwvxwvvwwwwwwvggwWfvvveVffvwwwwiwwwvwwwfvwwhvwgffvwwwfVfwfwfgvvxwwwxwwxwwxvvgwwwgvgwwwffvfvwgwwwwvfwgvwfwgwgwvvgvwvwvwwwvgfggeggegwwwwwgfwgWevgewgfffwgvwwvfffVWwgWggeduWfuVWwVVvgffvwwVfffuugffgwgwggwwwvwwggwwwFWwffvuwwwGGwVUuWvgwwwgvgvwwwgWxfttWffVGwUeuWuguufvvggxfvhvfVwuuWUUwfgff5VvgvffXuufffxggwwvxwwgwwVWwffvuwvwWGgffuWvgwwwwvgvwwVfwgwvvwwwWVwgfvhgxvwxuuWffvfwvwwwwgwxXffwVgffwvvwwwffuWwwvXWVwtffftGgUuuuefwwgeffVwuffvggwgwvwwgvwwhwwxgeGgffwvwwwuWgfvvuuWwwgwvvvwwvegWVwuevetWVVfvvffvgwveWwfvgffVwuffWXhvWV6uvvVUuvvefvuhvvvwgvwwwgwwxgtGgffwvvwwtWWUvvuuWwwwwvvvwguWvvgvwgugffvvgwwwWwufVWggwvwwwwhwwwfVggfgffvgxwxxwxfVwWgwxhvvwUfvewgffvfwfwwfvwfwwgwwwwwwvwxxxxwWwWgwvwuxxWwgfgvfwgwwwwgxwwggfvUfgVwWfVfwwgwwfwgwwwfwVvxvwhhgfffFwwfvWwwgwwVxwwwwwxvwwwfwgvwwgxWwgvfxvggxwxgwwggwwwxwwfwwwwwwwwwxuwugvgxwvwxghwgfvxgvggwwgxwVUefdwvgffeefVtVEgVVVevfxwWvgfffVufffwfVewwwwwwwwwxfWVffvwwfgggUgfVfefgVvuvwfefgwgwVffVgDteUgfVVUvvwvwfgfwwgvvwgVwVuwvfffhfgfWdugfhuugvvWfVgvwffgfwggwgffevfwwvffffwgWfefffffgwgVefvffggwwwwfwfwwgwvvwvvfwwxwwwUtwgfffwwfgwwwggwfVWwfvweffwwufvfVDFeUfVffeVfeVfdT6VeeefguwwTffVUVEeevgvgvfwvffgVffwwwwgfeVfvuvggVVfVvgfefVfeffvgffgegffTeef6ddfVUWeeevfgWvvvXfgeufvfVWudfVfVvvgfhVdefWetdefeEUewwgffffgvwwgffVdefvvggfvefffUUeUVeefefvefffUvwvfxwfewgvwfefffvuvfgwgffvegVeVfvfgWvvwffVfVWVggWdfgWfTewg5ETUTfVwVfdUfdVUWTfVEfeegg6fefEEEefeffefUffVgegvfvvwfffFVefUfeVUEVgTfVEfeUvffefeefEUUVUUETUR4FUUUUUUdfefwtVgwVwVEgeVffueufEeVWgVgUUfUgWEgfTfF5EvffVUUvwvwwfgFUEevfvfVfVUUUVUUUdfffwvfvfVfVfffVgwffUWwVwfEfeffggfwfvfvuUufEeVvfgvWffffVvfEuVEegEcVfffevfvwvgggvvxWgwwvfffVvwfuwwwwwwvffwwwgfwwwvfwwghvwwxwuvwwwwwwwwgfVvwfuwwwvwwwwxwhvgfgwwfgfVfuweuwfwwgwwggvxgwgffvwwfwgtgfvfwffwffvgvwfvxwghxwvwxwwvvvgfvwvgwffeuvVuwwwfwwwxwvvxgwwwwwwwvfvgwwwwwwfgvwgfvwwwwwwxwwwgwgvfgwgfwgwxwwwEeUVfwvfWwWfvGevTevffeuexfGvWeefeefvfgvefwwgggvvwvwgfwvgevgfwvgfVvUvvgvefvvwevwwvgffvffUfVf6DfTffefTuwfwwXfwewvgwVvwefhVgwvfewfffvVffwVvweVfdwwgffvgwwwwgUfegfgvfVffUvfffTefegvvwgvvuWvwwwwwfwwwfwvgfVfwgwvwwxwwwXUgwvfevvwwfgwgwvXfvWfvWvVFwgffWwwvwgwwWvgxgwwwfwfffgwvgvwhwwwwwwwwwwwvvgfwgvgxvwwwwxvgwwvxwwwgfegweWvwwvxwwwxwvhxggvwwgVfVXwguwwwwwwgwghxwhvfwwvfvwhwfvFfggfggfgvggxwwgwwwgwfgwwgwwwwwwwwgwffwfgwvgugwwwwwwwwgwwwxxxwvxwvgxwxxxwvfgfwwxxxwwwvfvwggwvwxxgwgwwfhgwvgvgfevgweufwwwxwwwvwwwwvwvfwwvvvvwxwwwxgwwwwxvvvgwfvvwwvwwwxVwgvvwwgvWffvgwvvuwwwwwfwvwwvvvvwwfwwwggwfFvgfwfwwgvvvwwgwvwwwvwvvwwwwwggfwwwwggvefuWwvvuwwvvwwwwvgxxwvwvhwwwwwvxhfwxwggfwxxxxvfwgfhwgwgxxxwxggfwWvwggwvvvffefwgwefwgvwwgwwwwwwwgwfwwwwwfxwvxwxgwwvwfwvwwxgevwgxufwhwvwwwwgvwWfgwvfVgVfwgwvevxxwwfwfgxwxvfgwwgvxvfgwwGwgwwfvwvffxwvgggvwwwuwxwxvvgwwfwwgwgfewgwvVwgwwwwwwwwwwwvwvvxgxvfwhwwxwwgvxvfgwgxwwxwgwvfvwwvgxwgwgEufwgwwvfwvwvvWffwfvgxxvxwewwfUvfwfewwwwvwvwwwwvwwwvwvxwwgwvwwwgvggvguwwgwwggwgefwwfgWeevVvgfgwxwxwwwwwxhwfwgwwwgxwwxvwwwvgwwgwgvxvwgwwwwhfvwfvgwggwgfvwgfwgwWvffwgwwffwfwfgvwwwxwwgvvwwwwwwwwgwwwwffwwwxwwwgwwwwxgwwffwvwwwvvfvwvffgwxwwwvvgegVwVwvwwxfwvfxfvgwfVwwgwwwxwwwwxwfwwwhvfwwhfwVwuwwfwfwwvwvxwxfvgfuWVwVwvwwwwggxgwffxfgugwxfwfgvvwvvvwvggxwwwwwwgwwwwwwvwguvwwhfwfwuwwvvwwvwwwwwwwxwwwwwwwxwxwwxfwhvgwwxvxhxwwgwwwgvwhxwvxxxgvfgwxxwfvfggWwewwgvxhgvvgvwvvfWwwvwwwwwwwxfgwwwwfgwxvWWWwfwgghwwwvgwgwgxwgwwVuvfgggwuwwwwwwxwvwxfhwvvhwxggggvfwvwwwwvfgxwwwxwwvwwwewgwwewwxeWWWguggxvwxvwxwwwwxgxxvhggwwwwxwwwwhvvfhwwwgwgxxwgwgvwffhvwwxgvgffwwwwwfwfVwuuggwuwxwxvVxuffvffvgffwwvwwwwwwwgvgwwgwvghfugvgwuwwgwvwwwwwwxwwvfgfVwevgugwtwxwwwgvxvhwuwfhgfvgxgvguWffvwfwfuvguwvwwwwwwwwwvfgggwffhfvgugwtgvgwvwvwwwwwwwwwgvgvhvgwuwxxwwvwwwfxVxugxwvwwwxwwgwwfxgVwvewwxwgUfggvwvwgggvgXuvUwVwwuvvfXghfwfgwvgwvgwxxxwxwwwxvvfwwwwvwhwvfwewwvwvwxvwuwwgwvvgffwWGuveffwwuxxwxhvwvxfhghvwhwwgwVwewfwfwegffwwwwwwwvwwwfwvvwhvwhwufwewwugfwwvwvxvwgwxwwwxwwxvwwwxxwxwgghvwwvhwwxxxwwwwvvhwwXfvgwhwxvhxfggvxwhwwffghWgwgvxwwxvuuvvvvfvfffvwvwwwvwwwwwwgggwwvfxgghwGfgvggwhwwvwwwwxxwvvfuefhWWgwwuxwwvwxggxwxghgwvvxggggfWwguwwgggfwhfwwwwwwwggvvfwvexVWWgFgvwuggwgvvfwgwwwwxxwvxwvwxVwxvxxxwwwvvfvxgwwgwwwwvxwvwVuvxwwVffVvwwxggwvVwUgvFvvwxWWefgfgfgffvvgvxxwhwxwwvhfwwfhwgvgvWwwvgwwvwwvwwwgggffFwVuWfGuvwvwwwgwfwxgWwwgvgfxwwexxhvgfguwwugwgwffugffvwxwwwwwxwfgegwwVhgWvguWvwguwvwvggvwvvwwwwwxwwwvgwxwxwwhwwVxwgwwxxxgxwwvxgvxfVgxwwwwxgfwwgUwwgvgVVveffVwwwwggffwfvwgwwwwwwwvfgVuwggvvwfxwfwwwwwfwggvefeUwffwwwwwwwwgfwgfvwgfgvVVVFwwfVuvvfgffffVwwwvffgvvfvxxFgfVefvUgevfvfgVwfwuvevwfwgffwwffwwvwgfwggvVeVEwwfggwwwwwwwUwfvgwvwwvgfvfVwwwwwxxwxwwxgvvfwgwfwxxxwwgffvfvfUvvvwwxxwVffvgwfwfffwffWUffVeUdxwffVfewVfWDeUVeeuvwvgwgUvfgffvwfgVfffefVwVvgfffvfVVeeffFEsgwgwffffvvVVffWfewwwwwggwwgfggwwfvvgeeeggwwgfguvWfVevVUDugwwwwwgfvvgwgvvwwvvwvTfegfgfgwgfvfUVewgFEewwgvwwwvvvgfgfvwwvvfvgvwgfUuwwvffwweVfvggUewwvwfwwvUUvwfUeVUeVffgvweffufgfevffUUVTvgwxgvgvwvguxfgfvggWvwwvvwwvwvwfggvWegffwwvvgwwfwvwwfvgvfwwwfgvgfwVevgvfggVvwfvxgfvfvfwefwffvffgfFwvwfgffffwfvffvfffvwgvwwvwxwwwvvwgUwgvwwgevwwwwvvwxwvwgwwgUwwfwhvgfvfvwwwwwggwwgwvwVfghvgvfgvgefgfvWfwxgwwgwfgvhwwWvfwgffUWvvVffgfwVeefVUFfftuwvvgfeeVgfvveuuwffguvfwwwwwvgvwfUVgfuetfVgufffffffffgfVfffVvwVggvfefteVfgffFdvvvvgefggfWgfuVFWwfeev6fgFWUVVUvVWVVvffufVvwuvgwwwwwvffwfFWgufffefgwwffffuvwvgfggvfgwVgwvvugfxvwwvvgvvwwwwgvgghftuueeUguefegffXefgfgvwwwweewvwvfvvgVVeUfftWfUfVEfdeFd6UuDVfffeUfUdUUVeUefffvFwueffgvfffvgVdFVfDfSUGeVeUeffffffVffefVfffuVeffe5VddVdFTuUvVwuFfuuWeFeuVfdVVgUfU%WuuVeVEuUuWVeeUuTUUvVweefvfvffwvwVcFFfEfTTWeffVUfefffffffvfgvgdVWwUfdUWvfvVefffgvggffffWeWwUfEUWUwUVgUUWTUefvggffgvfwggwfvegveffefwUgfWveUefeeTVtVuvfwggfvVegfwfgfwwwgWvfvwgwgwgvvwfUwWvGuegeVwfgffwfwwgwgwvgwvgwefwgefWdfVwUfuVuwgvwguwfwegffwewgvWvf7fgevfgfvfgvffUffvwWvgwwwwvwwwvgvEwguWeVhfwwgvvvvgwvggvwggwwvVwgvWvfhvwwgwvgwvwwgwgvwgwvXvgvfgVgvfhfeheeVgwfwwfwwvggwwvguffEUVVVfVVffefVUfffVFeSfgwvwvfuuEgfuvevVfvwwveVgwvvvwevegeggvfudfVefwfvevvvwffgefvVfgwggfwgffdeVfgWuUfgwvvwuvgfgWveffWgvVveef6fWVVWvUeVVfUeveTVVwwvvfvwwwwwvvfGWwuvvfheffvVfveffvffgvewgffWgwvvvvgfwwvgvwvfwwvvwuvggvueuUhfveehefWefeuwwgvggvwewgvwevTffvffvfgVefvfffffegUeVUfvgvwgwfgvwVfgfWfefvwUvwwxwwwhvfvvgfwvwUffvgvwwWgfwwWvfgvveFfwwfVeVfffUffffvVevwgfvwfwfvgfVfvgegfgfvfFgWegvfffgvffvVfufvwwfwwwwwxwxwwwwWuwfvfgffwvgvwwvfwgwfggwvfugfvvfwfgwvwvgvgwwfhwwggwvgvwUgfhffwfxfvgffwfwwwwwvgffwwggfwewwwgxwxwwwwVvvwwvwvwxwxwwwvwxvxxxwwwhwwwwxwwwwwxwxwwwwxwxvvwwggvwggwvwwgwvgwwxwxvgfvfwgffwvvgwwfggwwgwwwwvxwxwxwwgxwxwxwwwwwxxxxwwwxwwxxxxwxwwxwwwwwxwxxxxwVEVeeVffWfUdeefFUU5VeeexvwWfgfWfvdfVeefffegwgwevgfvwwWffVfgUdeWwfwWfggvFUVffWVeefgVffWfVeffeVVU4VeduwgvvwvggfEgvufgfwfgvfWfwggehuvVVWuufuvFVfvwghwwevffvwwwfgVfwVevgwfwgVggwWVVfgWedfvgwwfgfgvfgwvwgwgxggffggfeewvwvfVgwVfgwVggefwvvwwWghwgUWgfwtVfEUTfVfegeFecfUfUfe6UeVvgwwTVVvuvVVfTevffeffvwgwwefwwgVVffvVfUfVfgwfgvwvUevvvefUgvgvvgfgvefvUfVTGvuewguwwvwWfXvfvfWgvewfVWvwgfWvveVGvudeufFVvwwvgwgfvvgwvwvfVfvVvVWgfgwfgefvfUefwdeefwwwgfwffWgwwwvgfwwwUfwgvfVggwwffgWfvfgWfgWfTvwvwwggWfwVVGewgefVEeeufgvWueEfvfUfVgUVfuxvwWeVVWwvdgVeeeeffgwwxwvwfwwvvggeffffUWfFvggffvvVevffUVfdffVfgffdffffVU6VdffuwgwvwgwWxfVgvWgvufvgVufgwWgvewFWeeweDgVFvvwggwuwgfvwwwffVvwfffvfvwggfvgWVvfwfefugvgvggggfvfvwgwfwgffwffVwvgwvwgVvfufgwgVvgwevgwwwVfgwwVvWwfVdvfgwwvgxfvevUwwwWffvwggxxwwwwwvvwwwwwvwwfgwwggwvwwwwvwfwgvfvwwwwvvwwwvwwwfvgwvhwxffvvfwwggvvgvwwfwgwewwwwwwgfGvgwfwwevfwwgwgwffwwwgxwgwwwxvxwwgvgwwfvgwxvwxvwxwfvwxwWhwwvwvwvwwwuxwxggxwwwwwwxxwggxgwwwwgwxxwhgwxwfUTfvfvgffGUfffdfvUefedxvwVfffgwgufeffvffvvwhwwvwfwvgwfffffgWfwWVwxwgvvwVfeggfffefvfvggvGfvfVeUuDegUtXfwwwvvfvwfuwfvWfwwvWewgfgwfvUewfuvUfUewwwhwvwgwvgxgvfeggWfvffvwwvgwwVefgfffevfefwwwvgwvgwvxvwwgwWfgwxgffwgfwfXevgfWfvgewgfVVwwwwxwggwwfgVvgeVuVffwfGggggffufvwwufvgfWvvvvvwgxwwwwwwwvvwhwvfvwgwvwvggwvvWffgwwwxwwwwwwwwwvhvwxwggxvwwvvuwgvvgvwwwwvgwfgxvgwvggtgwfggfwvgvfwvgwefwwxxvwwwwfwwxgWxhgwwvwwvwwwxwvgxxghvwxwxxgwwgwwwxevwvgwgwghggvhwvgwwxwwwwwvxxwwgvgvgvgwvgwgwfvfgvfvuugwvvgwvwwgxwwwwwfwwvwgwwvwWwwwvgfwvffggWwwvwwwwwgwwwvfwwWwuwgvgfWwvvwgwvwuvwwwfwvxggguhwwvwdwwghgfvwvvvwvvgghvgvwwwwwwwwwwggwwfgxhgxwxgwxvwwxwwvwgwwwwwgxwgwwwwxwvwXvfgwggwgxwhwgwvwwhxvxwwwwwwwvwwwvhwxvgfuwvwgfvwvfggvwwwgfwwwgwwwwxvggvwvgwwwhwwwwfvwggfwwggwwwwwwufwwvhgfgfvvxvgvvvgvwvgwwgwwfwvgwvwugvfwgfxwgwwwvvfggvvwwwwwgwwwgxwvwggwgxwwwgwxwwwwvfwxxhvwwwggwwxgwwxwgwwvvgwwwxwgwvxwwwwwwwwxxxwxggwgvVeuvtvvfffVefeffEgVfVffgxfgfwguvwuffvwggfwgwvwwwgwwvwwfvgvfuvfegvVfgwwwffgffuvgfugwvgfVfVugVVfEgVfgfvwfwwvgVggvgwVfxvwffgvgUhggfegVhvwguvgfvwwgvwhwgvwwggfggvgvggugvfgfvwgWfWgvvvwgvvwvwvfwwwvwvvgwwwwwgvvvxwwwggwwfgwfufgwfgvUfvvfWgwgggwVggfVgwVUFeefVffVVfdfUfT6VeVffvugweegVguGeeWggWffggfwvVffxwvwffggeffffvggVfgwfgfVfvfefgfvgggvVfVevefefWfVffVwgvfgufWwgfvfgUWgfveUfvUGffuedfWfffvveUVwvgfvvgvVgwggwgfffvfVFfVVfVVffWffWeVffgfvwgwwgvvgffggwVgvgggwgvvfwxwvgfwvfgfggvVwWffWVefvVVGuwvgwggWfevwgeUdeuvVvvfufVeffVUfVffVgwgWFVVuweevfWgveggeggwvfvwgwwfwUffvfuffVVfffVfvefefefdvfvwffeffecEfVeFfeUffVvwufgegghfwgfgvGWufuffffVWeffTvUgfVVfewVVeVffvvvgvvwhvwffVVfffeVfgfgwggvfffvvgfvffwvVvwvfvwfvgvwwfgwfgvwfgvwgwfvgvfEuVvfVwWVvgfegvgvfwgwwgVvffUwwvffvwwvufffWwgVVvwguxwxwwwwwwvfwwwwwfghxwwwvwwwuxvvegWhxuwwwwvvxvvwwwvvffUWvgfgvwvuvgwghwwwgwvwfvFgwvfgwffvvfwwfwfvvwggwxxxwxuvvgegwfvwxxwgvgugxvwwwwvwxfwwwwxwwwgvxxwwvfggwwwvvgvgwwghhvxxggwxvfUEgwvgfvfGeeeevUfeffvfgxfWVfvvwgfwwgffwgwfwwwgwwwgfwgfvvgvWgvgfgvvgfewggwvvevwwgwvffgfGeffVfUfefVfvwXfwgwfvvxvgvUvwgXfwwffuvvfefvvfvwVfffwgwvwwwggwgwwgvfuWffgvVffvwwfvvgvvvfUfvwvwvvwwffwvgvfwwwwwwwwvwvwxwghvggvWfWfwgfvgeefwwwgfvgwwvggffUwvvfvghvwwufffwvXefgxgvwwgwvwfwwggwwwwwhwxwhwxwwuWxefgxvwhwwxxXwvhvxhvgwuffgwuWffWvfvvwwxwgwwhxxgffgtvvgxwggwgxvhvffvwvgwwxwxwwgxvXxvgwgwfxfxwwxwwWxvfvwxxwvgvwwxwwwwgwfwvxgfwwwwwgvwhwwwgwvgfghgxwggWffuwuvfWwfvvwxvvvgwgwgwwwwwwwvxxwwhwhfgwugfgwXxwwwwxhvvwwwhgxwgWfVuxvffvhwvwgwwvvwwhwvgwvdffgwgffvhwvvgwwvvwvwxwxxxwxxWgXffwghgwXwwwwhxwvxghxgwwxvxwxgwxwwhwgvwxgwgwwwgwwwvxfxwfxwwxffwgvxxufgfwgeefwgxugwwwvwwggwwwwwfwxhwgxwxwwgVvwfWgwgXxvwggvwvwxvwhvVVVwweffwguvvgwgxwvwgxvwggfvvtgvfgvgfgwwfvvvvgxwhvgwwvwwhwxwuwWVgwxvgwvhwwgwhghgxxwwvxwgwwwwhghxwwxwxwvvwxxwvfxxgfwgvggwgwvxxvxxgwvwxGGdfffefVwefffegfFUVefuxxWfvwwwuffffVefWwvwvwffvwgwvVvwffvfwgwffgvwggfvvgUefegffeffwffeVfgfeUTfVuwwgwwxwgffwxxgwwwxvwvhvwfgwwvxwvwfeVffvgvwvuvgfvvwwgfwfwffewvfegvvvwwffwgVfVevvfwwwvvvwwvwvwwxwvvwwfwwvwwwwxvwwxwwwfgfvwwwwgwwwvgfgfwgeVvfwgvxwwWfvwwwWVwgwgwwgwfwvgwxwwxggwwxxwwwwwwxvxwgvgwxvwvwwwwvwwwwwwxgfvwvwhVwgwwwwxwxfxvxwggwwwgwwhgfwwwvwwwwwxxxwwxwwwwwgxwvxwxxwwwwvwxwxwwwxwxxxxxwwxgxwwhwwxwvxwhvwwgwxxvggvwvvvwwwggwgfwwwxxwvvfwwwwfwvwwwxwxwwwgvuvgvwgwxwvwwhwwwwwwwgwfvvxwxggxwwvwwxwwwwwxwxxvwwwgfxghxwwwwxvwvwwgxxwxgxwwvwgwhgvvvwwhwwwwwwgwvwwwgwvxxxxwghxwxwxwxxwwwwxwwfwhgwxwxxwwgwxwwwwxwxxggwvwwguggwuwwxvwfgfvgvgvwwwvwvwwwgwxwwwwwWvfvvWwwgwggwwwvWvvwwwwwwwxgfwuwwwvgvhwuwxfwggvgxwhfwfgvgxwhxxfgwwvghwwwvxwwvwvwwwwvggUwvgwvwwvvwwwvfwuwwwwwwwxwWvgwxwvgwxwWxvwgwvxgvwgwvgxggxwgxwxwwxxwgxvwwefgwvvvgwvWufwvwVwfgwvvxwhwvwvxwwvwwwwwxwxvwxwwwwwvwwgggwvhvvwwwwwgwwvwwwwwwvvvgvWvggwwUwfgwvhxxgwxfwgvwwvhvvfxwwvwwwvfwvwwxwxwgxxwwgwwwvwghvgwgwwwwwwwgwvvwwwwwxxhgxxwxgwwwxwwwwgwgwwvhgvhwghxvxgwxxwhgvwwhvwwfhxghvvwxgggwwwwvxwxxvwwwwggvwwgxxxwvwwwvwwuvvwxgwgxwwwggwwwwgwxxwgwvwwggwgwvfxwwwxxwwwwhhwwwgwgwxxwwwwwfvwwwxhwwwwwwxwxgvuvwxwwwwwwhgwvvwwwwwwwvwxwxwxhxwxxwwwwxxwgxgfwwwwwwxxxxgwfwfwxxfwegxwvgvgwwwwxxgvwwvvwggwvgwxxwwwwwwxwxvwgxxhwhwwxwwxwwwwwwwUwewwwvgvgwwgwfxxwxxhwwgwwxwghwgwwwwvwwxwwwwxwwxwwwvvwwxgxxwwwwvgxxvwwwwwxwwwxxwxxwxgwfxxwxwgxvwwxxgwxwwxwwwwvUeggfewwefvvwwgwwwwwxxwwwxxwwWuwggwgwwwwwxewWfffwWvwwwwfwwvxuVxfgfUuwvfgggwwvvgfvwgfwffxgfvdffggvwfgfffxggvwfwwwwwVvwwwwVwwwwwUwggfuggwgxwwwwgfxwfwwgffggwwxwxwfggffvwwwvfwwwwxvgvxxxxwwgweEeeefffgeVdfDcUfVfVedfuxfWVffdVfgUwfgvevfgwfffxwwwxwwgfUffvefvfgUfefWedvfgfefvwWgwgvfggUtuVtgVggVfevwguwfwgvgguvvgfgefVgggVgfXufvggevfvuGfugvwfgvgwwwgggvfUwfvvffWwgVvggvevvWffgwwgvwwfwwwwgwggwguggefvwwwgvwxwwwUffWgggfwwfgwufwvVfggWgdevwvgwwwVTCTUUTUVUVUT5TRETUUTUUVvfgeUf6DEefVffefeffwGUUuffwwfvvTUUfvfffggVEUUVTUUfgefevfvVffevWfEuUVfdUFfVedUggwfWvdfVvWetUvfWfuuveFWefVeWeeUfWeeTfed5EgffWfgeefwvffvfdWVefUVffgUFfVedUVfTUeeVfefvvWVfffffwffVvWedewvUfffggfvWuevVVGevVgggfVfefvUVFeWFeCeffVffvfeDTeuVfffeefdd4eVVWeUfUvwwWEVVTUVfffwvvvffvfeffwwwwfvvggfUffeUfeVfTfffUUuggfvvffefefefffcEedVVfeUfVfwgvvVfvfgfVgegwvtUufFtVWffhfEVfffefeefUEeVffffgggwwgwwgUffuffeffVVfewfVfvggevfvvfgffwgvwffgugVevwfVffWvvwwfffgufVVufvfVvgVvgUdfgVfUgvWfTvwvffwgvggwffwuwgfVfvevvgvwVvwwgwgwwwwwwwwgwvwwfwwWwwwfxwfVfgwgwwgxwvgvwevwwgwvwwwwwVwvwgffuffwvvvwfewwggfwfwxwfvwtwggvwffvfwwvwfwwvgvvgwvvvwxhwwvwwwwvfgVgxgxwfxwfwvwfuwwwwwwxwwggwxhxwwwwwvfvwgwwwwgfwfgfwxwgxxwxvhxfggwwhvxwwwVUEfvggwvVWeeGDVffffUeevxwgVfveefgfwfVefwugfuffxfwwgwfvfffgffgffVfvvgfeuwgfvfvwfVugfvgfGUfGefeeefVeuvgfwXfwvwwwwfvxfvWehfwWewevfvgEuvgffvwfffuvwwvwwxwgwhwxhwUfgffgvWVgeefffeuwgwfVvvwffwfgvvvwggvffwwgwvvwgvwwwxwwwGUhfwWewwwgfwwffWvwfffwvffVvwwwvfgvwvwgewfwgffvVwvwwgwugvxvwwwwwwwvwwwvggvvvwwwvwwwvwwwVefxwwwgwvxgfWwugvwwggvwwwvwfwggfVffwgwgwvVuwwgwgvwwwwvgvgFfwgvwgwffwwfwgggwwwgvwwwvgvwwwwggwwgvvwwwgggwgwvfvwxwwwwwxgvwvwhwwggxwwxwwxvgfvfvvxwwwxwwhvfgwghwxxxwwvwgwwhxVefwfwwgvWxuwvwwxwwwwwwwwvgvvfgwvwvwwgwwwwfvwwwwvwwwxwwgwuvvwgvvvwwgwguwhwfffgvgwwwgwvvvgvwwwwwwwhxvggFffvvfvggvwgggwfwgvvvfwgwxwwvwgvwgfevxvwwxxgwgwgwveuxwwwwwwwwwvxwxxxwwwwvxwxxgfvwwfgvxxxxxwxghggwwvgxwxwvwvvfvggfVffvvwgwWwuVwwwwvgfwwwgfvwwfvwvwwxvwxwwfVfgfvwwghvgggWwuevwvvwwwwfwgWVfvffwwgwgwufggggwwvwxhggvGffvgvfffvwgffwfwwwvvwvvgfxwvxvwwwweefwwwwwwwvwgwgwufwwwwwwwxwvfgwwwwwwgxgwvwwwwwwwxfvvvggvwwwwwgwwwwwgfvgwvfvwwwxwxGeufgwwwvueUvvfvgfgfvguXfVegwwwwxfwfegwwgwxwxxwwggfvgfwgfgVvgvwwggvgwwfwvwfwgwgwwvfVwggvvgwVvgwwxwvxwwwwxxwfxgwvxwwwwgwggwwwvwgvwgvwxwwxwwwwxgwvgwgwewfvwwwgvwwvwwwxwwwwfxwgfwwwwwwfwfvwwgwfwwwwvwwwwwwwvwvwwgwwfgffwwwwffwgwwwwxwgffeVfxwgwveugTvgffEgvwvwxwvwfVffWVxffvfgwwgwwhgwwwgewvggwgwvgegVwewwewugfvvwwwwxvfvhUuggwFvvgwwwfvwwwVgwwffwvwhvwvwhfweguwwVwxefvfwxwvwwhgxwwxgfwvwvwwvgfxVwvwfwvwvwwwwvwwxgwwgwvwxwwwwwvxvwvvxxwwwwxXvgwwXfvhgxwxwfvfwwwxhguWfufggWwuwwwxwwgffvveWgfvfvxwvwvhxwwwxeWggvvvggwvfgGvuwVgwufffwxgxggvWgxgWwvvwwvhvwxwhwwfggwwvgxfgXgvuvggwvgvgxwwgwwwvhwwwwwwvghwvvwhwfggFwvfgwvvvwwwwxwxxwwwwWvgwgwwwvhvvwvwxxxwwwxfvhwxUgwvgxwwwhwfffxwwwvfwfVwefgvWwtwwxhwgfffffuXvgffxwwwwwgwwxwwgvgwvfwvgwwfgvWvtwvgffwgwwwwwwvgwuVwevgvXwuwwwgvwwgwuwfvggxvwvghfhuWffgwwgufWvwxwwwxwxwwwwgvWwwgwwgwgvgvgwuwvgfwwwwwwhwxwvwwxwwvgwuwwwfwfwgwwfvwvghgwxxwwxwXugxgWgvVwwxwwveVgvvgvgwffuVWtvgvffwuwvfhwvgefwfxvwvwvwwvwwwwgwwufwwggfwgwfwvVwwuwfxvwvgxwvwwgWufWvfwegwuxxxhwwwxwvghvgvghwfxewewfxvwegxwwvwwxwhwxxvfwwwwvwgxvfwVwwvwvwvwuwwwwwxxwxgvwgwwwwwwwwgXvgwwhgxwwwhwxggwwfXwvgwxwwgxgfggwvwhvvvvuvewwggwwuvgxxwfggvwfggWggwwgwwwvxwwwwWWgvwvwgWwgWWweVhwwwvwxxxxvvvvvvhxWgwvuwwwwxwwxwwggvvgwwwgghfgvvghwgvhgwwxwwwxywwwgWwwwvvwwfggWWwvvfwwvwvwghgxxwwxxwwggwvxxwwxwvvgwggwwhwxwgvvwghhfvwgwwgfvgwwgVwefwevxwWwwfxwgfwfwfhvWvvwvwwwwwwwwvgfwwxgwwgwwwgvwweWwwwwvwwxggweWevgwWvwwvgvwvwxxggwgffgwwvgvhfggwvWwvvhwwwwxwwwxxvgvxwwfwwfwgvWvwwegwwxwvxvwwxxxwwxxwwwwwxfwxwwwhxggwwwwxvxwxgwwwfxwgxwffwhxwwfgwwfgvwfWVffvfwwdefwwwgfvvwwvwgvgwwwwwvfwwfwWuvfffwwvVevwggwwhwwTefwwgffvwwwwwweWwwfgfufeewefwwwWffffvVvvefwwwFfvggfewfvvffVeUvffvvxegffwuvfguwgfgwgwxfvfVwwgfvwwgwwUVwxgvfvwwwwwwegfvvwwwXfwefwwwwvwgwwxwwggfffvfvfxwwwhfwvwheeggwxwwwVSfUfeffeffefTUVfeVVeVxwgwgvfVewfwwgeTfvwwffVwwwxwffffewwvffwffVfVVeVdggvgvwwWvfeVfffeVfUEfefeFeVxwwhffwwwwgwwwwwxwfVffwwgwffgfvgfVvwwgffvwwfefwwwhvvgfefwwggfwfVffeFeVevfvgvwwggvfgwwgwwvwvfwwgwwvgwgwwwwfwxwwVffgvwwwwgwffwwffewwwffwgwffvguvgggwwwwVguWgvwUwggwwvwgwvvvvgfgfgxwfuwwwwwwwwxxwgvfwgvhwgwwVwwwfwvvwfwwvwvfwwwxggugwvgVggxwwwwxwhxgwxwxwwvwfvwhwfxvfwwvgwfwffvvxwwwvxwvwxwgvvfxgvwwgvwgvxwwgggwwwwwwwfwwwwwwgwxwwwhwxxxwwwgfvhwhwwxgxwgfewwhwgwwhxxwwgvvwxxwvvfvvwgWwwwvwwgxhxgwfwwgvfvgxgwwwwxwwwxwgwgwvuvwwwwgWwgvwwwwgvwwvwggwxwwfuuvvvwggwwwvfwgwxgwwgwwvvwgfwgvvwhfvvwhvuvhwwxgwwwwvxwwvfgfgvwgggvWhwwwwgwwvwwgvxxwwvwxgwwgwvwwwwwxgwvwgfwwwfwxxwfvfgwhwwwwgggvwwwgfgwvggwvWwgwewwhwffwvfggfvgffwwwwwvxwwwwwvggvwwgxwvWwgvvwwwvuwwwvwwwvwgWwfwvvvgvwwewghwxhxxvwwggwvwfxvvwhfwfxvvgvwwgwwwwwxwwwuggxvwwWwvvgvwwvgwwwwwwwggxwgvhwwxvwvwwwwgwvxgghgvgxwwvxwfxvwwwfwxwgxvwfwvwwxxvgfwgvwVwwwvwwwxgwwwxvwwhwwwxwwwxwgwvwgvwwwxvfwwwxxwvxwgvwwwvXvwgvgfwwxwvwxxwxxwwwgvxwghwwwwxwwwxfwxwwwxwxwwxxwgwfxgvwxxhwwgwwwwxwwwwwgvvxwwgwwwxwhwwhvwhvxwiwxggghwxwwwxxvxwwwvfwvwVwvfwwvgWwwggvvhxwffwgwgfwhwfwwgwwwwvxwvgwfWwuvvwwvwgfgwwwwxvgvxwfwwwxfwuvwwvfgwwwwvwvwxvxwxwvfwvwwwevwgxwvffwxwfvwwgwwwwwxwwwwvWgwuvwwwgvgwfwwwwwgwwwwwvggwgwwvwxxwwxxwwwwvxxxxvvwfvwfvwwxgxvwgfwgxwxwwwgfgwwxxgfvewwvwWvhwwwgwhwgfvgfwfgwhwevwxgxwgxxxwvvgwfwwfwvwwwwhvwhwvwwwvwwgvwwwwWuwUvwfwWfgwvwwwwvgxhxxwwgvfwfwfgffwwvwwwvhvvvwvwwwwwwwwwwxxwvgxWvxfwgwwfwgvwwvgvwvwwvvwvgfxgwxwwwhwxwxwwxwxwwwwwgVfxgxwgxwggwxffwwwgxxgxwxfxwVgvfggufwwwwwwwwwxxxwwwwfvwgxwwgvwfwgfgVfvwwwgefwxxwwwwwwwwfxwfvuvvffWwwwwwfwvvwgvgwwwwugwgffgfwgvwvwwwwwfgfwgvgwwfwfgxwgwwwhwfgfVffwwwwgvfwwwwwwwwwggffwvwwgfvwwwwwwwxwxwxwwwfvwfwwwvfwwwffwvvwhwwwhwgevgwxxxwwvvgwwgwvwxwfgvfwxfxwwwwxwwwwwwgvwwgfwvwwwwwwhvvwwwgwwwwgwwwwvgwxwxxxxxxwxwxgwxwxxvvgwxxwwvwwxwwwxwwwwvghffwwwwxwwxvvwwxxxxxwwwxxwxxxwwwxxxxwghxwgwwwxwwwfgvWwwwhwwgwfvvggfgvgfxgffeeVgVhvvvwvwwvvxxgxwwwwghvwwgwfwgwegvwvwxvwwuwfwwwwwwwwwwfwfwgggwvxxxxxwxxwxwwxwxwxvhvvvhwvvvxwwwxwgxwgxwwwvwwwwxwwghwvfgffvwwggvvugwwwxxwxwwwwwwwwxxwxgwwxxwwwxxwxxwwfxwgggvvxxxxwwxfVwvwwwwgvwgvgwwggfwxhfveWffXfXvfwvgwwwxwhwwwvvwwwwwhgvwwfgvffvvwwewvgwwgxwwvvgvfwvggfvvvxwxwwwxwwxgwhwgxvfxvxwwfwvwxwgwvwwhwwwwgwfwwwggwgguvwvwwvvfvwuwwwwxwxxwwwwxwxwhwwwwxwwwhxwxxxwxxwfvgxvxwwwgwwwwwfVwggwWugfgwvwfxwwfvwvvgfgVfwwwwwwwwwwwgwxfvwVwgwwwwWugvfwwfvvwwwwffwwwgwgfexgvWvwvgwwvfwgvwWvwfgvggwfvgfwfwvgfgwwfgvvwvwxwwwvvwvgggWwwVxewwwwwwgvwvgwwwwwwwvfwfvwvwgwxwWvwffxwgwvwxwwgfwwgggfwgwhwwwxwgfvfggvwwhwxwxgevvwwvwwwhhwwwwgwxwwgxgghggfwvwhwwwxwwxwwvwwwxwxwwwgfvwwxwwwfwwwwwwgwggxwvwfxxxwxxwxxxwxvxvgwwwwfwvxwwxxwwwwwwxwwwwwfvwgwwvvwwffwxxxxwwwxxwxxhwhvxxxxwwxxwwwwgwxwxxwwhwwwwxwwwVvhvwXgwwwvwwvhxwwwwhwwwgxwxxwgxwwwwxfgxvxwwxggwwwwwxwwvwwwwwxwwwwgvgwwhgwvxxwgvwhwxwxxxgvwgvwvwfxvwvwwgwwwwxxwwwwwwwwwgwfgxvxwwxwhgwvwwwwfwwwwwwvwxgxxwhwwwwxwwwxxwwgwgwwgwvwwxwhfgfxwwwwxgxxvwwwwwwwgfwvwxwvhwxxhwgxwwwxgxwwgwwwwxwwwwgwwgvggvwfwwwvhwwvwwwwwwvwwxwwwgUwvfxwhwwwwfgwgxwvxxxwxwwvwfwvhwxvwvwwwgvwwxxwwxhwwwhvggvwwwgvhwwwxwwwwxwwwwxwvwwxwxxwwwwxwxxwxxgwgfhhgwvxxxhwxxgwgwwwwwwwxxxxwwvwgvwfuwfvxWwhvgwwvghwgfwggwfvevwfwggwfwwvwuvwwfwguwvwwwxWhvgwwwwwwwfvwxwwwwwfewewwfwWvfgwxvuwfvwgwgvfgwvgvgfggwfwvvfxwwgfvwvwxwwwwwwwwwvwwVvWvwuvvwwgwgfgfwwwgwwwffwwwVwgvwwvwwgwgffvwxgwxwfgwwwwvffvhfwwxwxwxfgwwgvwxwwxwwwwwwwwgfvvwwwwwwwvwwvfvwwwwfgvhvgwfwwvvwwwwwwgwwwfgvxwwffwwgfvxwwwwwwwwgwwwwwWevwgfvvvwwwwwwwwgvfwwwfwwgvwwwvgwxwwvgwVfVxwwgvgvWfVfvgffvvgwwwwwwwwgfgwxwwffwwwwgxwwwwwwwwwffwwwgVuwwgvwwffUxwwhvgvwWeffvgffgvwwwwvvgwwwgwwfUwwgwwffwwvUffffvwUwefUwwgvvgvwUgfwfevvwUwgwgvwwwwwvwwwgfwgvwUvfwfVvwwwwwgvxwwwwwwvwwwwwfwvwfwgWuwgvwfwfffggvwgvwUwfwtwwwfwWufvgffxfwfwwvfwfewvVwgWuwgxfwfwffxwwgvxgwwwwwwwvwvfwgwwwwwfwWegvgffxfwfwwgfwfVwgewxwgvxhwwvvwfvwwwwwvwwvwwwwfvwwfgWVgUVfgvvvwvvgWgggevfgWWfvwvwwfwwwxuwwvvvwvWgggWevvwwwfvwfgwwwwgwvvvwwevwvvWgWfeWvvvuwvvggghgeveeeffuvfVfWwdvwggweevvVffggggwvvghgfvvfwgWwvuvwvvfggggevvwwwvfwwWfwwxgwwfwwwwfwffwgWwggxeevvffgggggwvvgggefvfwWgxwwxhwvwxgwvwwwufxwwwwwwwvvgwfuvvgvvvgfeuggWweWwvdWugUfvvuWVfffvfgffgvwwfWwuWwvdVugUufvgwffvwgggvwvwwgwgwwwvwgwvgwefvWfWgtgwuuWvWfUgVwugwfuWvgffwvWgwfwUVWuughffugUuVffVegWfdgwuuWvWfuUvgwffvwwgwwwvwwvwvwwfvggwvwvwvWgwfweVWuughffugUufffffhfvwwwfwfwfgwwgwevwwvvwwwwfwvwgVwffgwUgVvewfWuwWvgTveWvUfgwfgefffvgfffwvvwvWuwWvfTweWUfwwgffvwfggwwwwwvgwwvwvwwgfwWfvVwvVdwguvUwVgueevWuvgvwUwfgcvwVwgvguVWVwefhfveWvUffffvfWdwguwUwVgeewwgffvwwgwwwwwwvgwwfwffvwwwvwVwgvguUWVwefhfveWvUefVfvgwwgwwffggvgvwufwwwwvwwwvgwvvfWvghvvWVfUVggwvvwvvWgghufevvVWgvwfwwgwxwwwugvvvwvvgWggvfewwxgvvwgggwwwwgwvvwwwfuwvfWgUfgVgwufwvvggggvfeVfefvvefVWgwftwgggeufgfvggggwgvggffewvvWggwvuvvggggvfUwwwwfvwwgVwwwgwvgvxwwgfwgvgWwgggeuvffVvhgggwgvggvffwvvgWxwxwxwwwxwvgvgwevxwvgxwwwvvwwgvuvvvgwWugwgvvwfwwfwWhffvgwWuvwwwwgvwwwwvvwfwfwWugffvxxfwwwfgxwxwwvwwwwwvwgwwgVvWuwvUwwfggvgvVfvvwUwwfwgvgvwwtwgvvUwfhefwgvggwwgffgwwWvwgUwwfwfvgvfevxwxwwwxwwgxwxwwwwxgvwwwwgvwgvgUwfhVfwgvgwvwgffwvwgwwvwwxxvwgvwwwffwwvwwwwvwvwfwwxxxwwvwwwvgvwgvwwwvgwwxxwwxwwwwwwwxwfvwwfwwwfwwxwwxwwwwxwwwxwwfwgwwwxwwxvwwvwwwwwgwgvwfvgwwvffffUfffeVWfuxfwxwwvgwgwwfxwwwvgwgwwwwwwwwwfgwfwfwxwwwwwwwwwwxwwfwvwxxwwgxwwxvwxwgvgvwwwgxwwwfwwfwxwwwwwwwwwwwwxwwxwwwwwwwwwwxffgggfgUgevwwvwwggVguvgfwgxwwfvfvwgwwwwvvwwvvvgfUgufvxXvwvgwwwwwwgwwwwgwgwguuvwgvgexvvvwvvwgfVhuvvffvfgexfgvgwwgggVtfgwwgwghwgfWfwwuegfguvvwvwgfgfhvuvwWvgvfwwwwxgwwwgfwgwguvfwgwwgggVtfggwgwghvgeWffguegvfwwwwxgggvgfgVwvwvxwxwwwfggwwffffwwggweWgvwwwvgwgehwvvgwgfvwwwvwwwwwwwwgwvwwvvwwfhvvewwvwwvvwwvwwwwwwwvfhwxvvfwwfweggwvwwvwwwvhvvvwgvgwfhwwvvvwwwvxgvegwwwwwhvwvWvvwwvfvgwwvwvgwgfhfvuxwwvgwvvgwvwwwxvfgwwvvvgwwwxvhgvefgwwivwvXvvvwvvffvwwwwWvwfffuggwwwwxgfvvwwffvfgwwfgguvwwwwvwggxvfwvvgfwxwwxwvvwwwwwwwfvwwwvgwghvegwggwfgwwvwwwwggggwwfwvgwvWgufvwwwvvwghufwwwfwfghvwwfwvwwgwxugwvgwwgxwgxVgvgwfwwfvvwwwvvwgghfewvwwgwwfgwwxwwwwgggwwgfwvwwxggxggvgwxgywwxVgffgvfwgffwwwgwWwvwvffwwwwwweffgwfvVvVvwTeVfgTwwewGuwUUgwffuwVfffvfgffuwwwwgUwwgvguwewfvvvwwffVvwwwwgwuvwwwtwwwvevwxxTeVfgewwfwXvwffwwVVVefgfffSeffvWvwewWVffwgvfgwUVfvwefgwgEwwVvWtvffVvwvwvffVwwwwvwwvvxwtwwwwVxwwfvVwWfWVwwvvwvffeuwfvwvvwggwwWwwwgffwvwWwxwwfWUwwwgvffwvvfVvvfwwggwvefwVffwvwhwfxgfvwvwwwwugfvwgwvfvwexWvggfwvwvwwvwwwgvvwwgwVvwffwUvugwvwgvwvevwVvvhexfvfvfwffwvgvvgfwvVwwvwwvTvwfvvUwfvffwwggwwvUfvVwwWwggwwvwwvwwwgwvwwgwUvwgwvgvvgegfVwwvwvvTfwfvvUfgfxwgwxvvvvvvgfwwwwwwxwwwegfgwffVvggxeeffguvxvwggwWvvhwvgWwgvvwwwwgvgwxwguvwvwWgwffwvwvwwuwwxwgwxwgwwwwvwwfefwwvwwvhWwgwwhfffgwwggfFfvgvgwuvhefvxxxwwxffvhwuwvwxgvvwwhWwVwwhwwwwvvuwvxxwwxvwWwxwhwxxgvvgfgwvhhgwxWfgvvwvwxwxxvxxwuwwwgfwwwwxxwwhxfwwugvhWfvgvgwuwxvvXwgvwgvWwvgvwwwvggwwwfwuwvvgwWvvwwwhwvwuwxxwwwxwwvWvwxWVffvfwvgwwgwVwvfffvvwwvffFvvvvwxXxvffwhgxwwgVvvvwuxwVwvgwwuggfvvvwgwwwvwwwwgwwWwwwwhhwvfugghhwgwfwvvvwvxwxxxwwuwwwgghwxvwwxxxxghhwwwXvVwgUdfeguwvwVwgffwwffwWVfffvfgffwWwwwguvtvgUwGffwvevwwffvwtwwwgwxgwxgwWvwwewwUdfegtwuuwFwWUUwvVffffvfUVV5gffgguwVVuggVwgvfwVVwvfvfVxwgvwuwgVwWwVgvfvwvffvwtvwwwwgWwwwwVwwwwvVvgvwefvWgexgwgxggVwuVwvfhgvwwuwwwevwwWWuwwvvwwhhwxhggvwgUfVfffVTgffffgwgVwwWeeWffffwvwwvgvwhgwgfffvgwgewggvufxxwwvwgwwvwwwwwwgwvwwxgwWgWdgfefvvgWUggWufvgUvwfwggeXuewwwwfwwfgvgfxwgwvgVhvvfwvWfffefgvgfUwwgfffxwgwfvgvwvwvwwwwgfuvwwwhvvwwwfwvfWfwfwgwfwVhvgwfWfuwwxxwwwggggwvgvwwgfwgxwwwvwgvwvwVefffffTWfffvwwfegvwvufefVfhhvgwgwfwwvgwfffvvwgfWvweeugwvwwxwggwgwwwxwwwwvxwgwuvTgffefvwweWgvfffvWuvWvwgfheuuwwgguwgVgvvXwfvwvhvvfvwVeffevwvfUWgvevegxvgvwwwfgwfwwwwvvvuwwwfvwwwguwgfgwfXwwvvwfhvvfvvwVfwgxxwvvwwggwwwvwggwwwwvgwgvvwwgeeWgfvWguwffgvgghfxgUwVfVfvveuwvfvwggfwfwffwvwfgeggTwuwwwvwwgggvwvwwvwgwfwvwwWWgFWdffefgvWgdggUfvwvUwfwwghvVwvwvwvfwgfuWgxvwggwVxvfwvfxgVfffefvvVWeggTfvxwggvwwfffvgwwxvwwwwUwvwwwgwwwwfgggvVgxvwwfwVxvfgfggVfvgwxxwwwwgvgwwwwvgxvvgwwwvvvvwgewwfxvwVWgvgxWgwWffwgwgwvvvwwwvgvvwwvwvggwwggwgvgvwwuwwxwgxxxxuwwwxvwfxwvwwfWgfwwxgWxgffwfvgvugffvWdvfffvgvwugwxvhfgvxvwffvvwgvxwwvgwfWwgwguvVuvxggwwgwwwxwgwwvvVvxxvxwwfwfwgwxvgvwvvvwvwfvwfgwxxwgxwvxgxhfxxwwwfwgwgUffefwvUvgffvggwVvvgwEeguevgVvwgevwwfwfvwffghwfvfgwUvxwwwgwwvfvwvwwgwgwwfvxgwwUfwDeffVfggvUuvffEvwgUwhfwwfvwevggwhfwwggVewwgvvfwvfvwffefffVgggvEfwffUfxwwvgwwfffvwwwwwwwvwUvwgwwvwgwgfvwvWVewwwffwwffwvffuwwxwwwvwwgfxwwwgvvgwwwwwwvggvVggfwgggVWvggwwgwvggvgwwWwxvhwwvwwvwvgwwfwgghwXvWffgwwhvwwwxxgwwwwgwWxxvwwVgvfwvfgwufwvWwfWuuvgVfffFgfwvgffgxvvwwgggwgxvgvgwvhwhfhwwgvgffXwvgfwwgxvgwwwggwvgwXguwxwwwuxvwwwghffggvfvvgwwwwvwxxwwgxwxwwfwwwxffxwxfegggvewvwwvvwufwwWvvwfvgxgwxWvgwhhvvwwwwxfwvvfggwwvwwwxwwxxwXwgwvwhwwwhvTvewwwfgfvfvgvvffgvvgvufGfffevwwgwgwwvggwvgwhwvvgwvwvvvvxvvwuwvUfvgwvvvwwwwwwwvXwgvwwwgwvvwvwgxgfvwvxgxffvgwwggwvvfevwgwvxghxxwhghwwwwwwxvwhgfwhVggvwwgvvfvgwgwvwvVggvwwxefwxhgvwwwwwwfwwegwwWxvvwwxvwxxwxhwgwwxWvwvxFgVugwWwwVVfwgxvgvvvfffvgFgWvfuvwgfvxhwgggwgvfuffwvfxwwwgwvwgvgfvfvfgvfgwwvwwwwgwgwfwwfxWxfwwwwwwwggwwwvgggwgxgwvfwgwwfwfxvwxwvhhwxvxwwxhgvvwwgfwgwhvwWvfvwwxwggwwwwWfvwxwxfwfvwgwfwwvwwxgwvwwghwwwvxwxvwwxwwwwwhwwwwgwwwVvgvwwxwgvvgwwxwwwwxxvfwvwwwgwwwgxwxgwwwxwwgwwgwVwwvxhfgfvvfXvfwwgvwvwwwxwhvfvwggwwwwwwwgwwwgxwxgwxwxwgwvgwgwhwwggwwgwwgwwwwwwwwwwwwgeffvwUewwffvwwWewTwvwffvwhVhgvxwvfwfgwvwwwwWVwVwvwwwggwggwxgwwwwxwwvwwefwgfvgwwgfevvwwgfvhwhfwUfvwwwwfXughfxfwwfwvwufvwgvvwwhVwewuxwwwwgwgvwxwvwwxfvwwfwwwfvgvgxwwfwfwvwwevwwwxwwgxxgwwwwwvgwgwwxhwxwxwgeeggVVWwwvvwwvwXgwvgvvwfvuvvvWggvwwvvwvfgggwfwwxxwvfwwwwwgwghvwuwvgGEfwgvvvgfegWffvwfuevvvfgfWvevvxvvgwwwxxwxhgvvwfvwwwwvwfgWgguxwvxxwwvgfwxggvxwggwvwwevgwxxxwvvVwwgwxxvxVvvwewfxxwvhxgwwgwwwxwwxvwwvgfwwgffvfwvwvwvvgugxwUfgfwefffgvfgwwwfwvwwwuWuWwvvwxwwgwvwxwwwwwwfgwvwuwxwfVufwfwwgxgvfvgwwgVxugwvvgvWfWxxvgxwxwxvxwwwgwwfugxwffgwgwgegtVwuwgwxwgggwgxwwwwwwwvgwuwwuwxwxgxfxvwxxxwvwfugwxwxvvwwgxuwwvwgwwwwwxwwxfxwxgevvfggvfvggvwwwwfwVwugwwfwgWuvggvvfgfvggvwwwVUwwuwwxwwgvwhwxwwwwwVxxuwuwwgWvegggvvwwvewegvwvgvwhvvfwUgexxhvwxwvvwwwgwvfevxwggvwgwvfwUgtgvxwvgvfhfxwvwwwfwvwtwwwxwxghvwgvvfwvxfwvfffwwwxwwxwhvgwwgvgwxwwwgwwxhwwwvgwefgfvUgGwgfwwwgwggWwvvfgfhewfgfgfgfwwvwghghhwvxxxvwwhgwwwwwwwggvwvwwvVWVgvvfwWhgggwxvgvvewvfggVVwfexwwwvggxxhxxvwgwvwgvwhvwgvwgggWgwewxxwwwvwxgvwvxwxwXgxwvxuwwwvvwgwgwhxxwvgwwwvfehwxwxwwvvwxwwgxwwxxhxxwwweewgffugugwggwgvgxVfvfVxfugwvgfwgvgwvwwvhvgwwuxwwwfwwfvwxwwwwxwwwgWdfegwfvfvtguVwwvgwfwwvfgfVgguhwvUxhhvgggwvffxwfvfwwuWvWvgwexgwwfexwfggvgwwgvwwvwgwxgwwfwxggxwwgVwgwwvwvxxxwvxxwvVhwwvwxhwgxwggwggffgEfeUguwgdvfeeeUwwgfwgvgffVfevgvwfwfWfvGfwgUVVVwwwwwwevwwwwwGvfwgfvfUVwwwwwwwUfTUVuwWewfffUEwwweffVVe6UfffVefVwxffgfWvvVVwwwfevfgfeVxWuwWevfTUffwwwwgfuwwwwwvWfgvwfvfeEwwwwvwwwewwffffvwwgeeggwwffeeffffxwuwwwwwwgfvwwxwwwwgVuwxwwxwfgVVwxwwvwfgvwfUwvvwwfwwggguvfwvggwwwwwwwgwwwwgvwwvVwggwwvvgggwwwwwwgwfvwgvvvwxgwwwwwgwfewvwvvfwggwgufwwfwwwgfhvhvvggVwxgwfgfxVxgyvvwgvvgwgfvvvwwgwwgwgvvgggwgwwwggwfvwgvvwwwgwwhwggVwxwwwvgwwVwgxvvxwgwvgvgvfwWwwffVwwxwfxwggwvffwxwvfwwwwfvfwgvfeWgwvgWvuwfggfvevfggxfwwvfwfgwwwVvvwgvuwggwvvuegvxvwwwwwgwgvuewwwgwwwwwwvgehWvvvgvfggwvuvfgvvhwvehfxvvveGfgwwgggvegwhfuuwgefvvwfvgwvvguwfggvveegfxfwwwwwwfgwgvvewwgwwwwgwveGfgwwgggwfgwhguuwgugvvwfgfgwwgfguwwfvwwwvwfggvwxgfwxwwwgfgfwwgfhuuvfwffgwgwVwfgfggxwfwvwhxggvwwwvfwwfgggggewVgggvwwgwffgwgewvwwwwwwwwgggVgevfwwuVwggggegvvVvgggvhvfxfggeggvwgfVGgexwUgvwgfwvgxvfvuvwvufvgwgwewVgwwvwwwgwvfgwgUwvxxwwwwwwwgggfggvwggWGgexwUgwwwfwvwxfgfggvwfvgwfgwxxwwwwevfwwffwxxvwwwVfwuweeffegwWffvvwwwfwxfwvfgwwgwvgwwwweggVwvvwwwvwvuwwwxwxxvwvwvwwxwwwwwxfefwfgwgWvwuwvwwffvfGffvfwwfvwvfghwghgwhufvwfwwfvxwwvWwhgwwuwvxgvwgwwwwgxxuwwgwwxvwweefgwhgxxffwwewwvwwwWwggfwwwwxwwgxhfwwxwxwxwxvwfvvgvVfvgwwhfwvwwvvVvgvvwxwwvwwxwwwvwwwvwwwhvwwvwvwffgfvwwgwwwvvwwwfvwgwvxxwwvwvUvvwwwhfwwvvfwVvwhfwwwfgvwffewvwwgfwevwwfwgvfvwfffvgwvhewwwwvwfggfwwwwwgwwvvwgwfvhwwwwwwwgwewwwwwggwevwfwwwwvvvfgfuwwvffgwwfwwwwwwweffwxwfgvwxxVffWwdUefewugguwWwfwfgvVvgwVfffvugffvgwwwdwuGUUuWwgwwxvvVwffvwwwwwGwWgugvvwgwwwwwdUefewtWffvGgVwvguVfUeVceffgfffvfVgvuwWwewffgwvgvguWvvhghewvWffvgwgxwhwvWwffvwvwwvGwgxXuwwwwwvwwwUVVwvwvgwfgUefvuffgvgvxwxvuwvfwfvwwvwvwxwwwWwUwfgwwxwwwxefvWWFefUvvteffwGwWvuvfewggefffwufffwvwwWvwveffwgwhwvgwGgffwwwwwwWwhwfwgwwwwxvwWFefevwuuwewWwgvvffefffeSVUffwfffgffwuvgWWfWvgwvvvhwvuvfhGvwuTUUwWwgwwgwGgffwgwwvwWfWwvvuwwwwwwwWfUuwvvgggUVvfffvugwvvwxgwuuWWWwwvwvwwwwvvfggghxfwwwwxxXgvwWefwffwwewguwggwwgvxgggwfwxvwgwwwwvwwewwvxWgxvvwWwwvwxxwwXxwvwwxwxwgxweeffewwVffvwgwwwfffvfgfdvfwwwvfffWxwvhgvvfwgwwfgxvgwxwfwwVfwugwwwgvwgwwwwxwwwwWwgwwgxwwuffwxwgxffVwwwwVwxgwxwwwvhgvxxwwwwwxvhhxxwwxwwwfwvwgfvxwwvwwwgwwgwvfxwwxwwwwwxwwgwwwwvwwvxwwwwwwwxwwxwwwwwgfvxwwwwgwxwvgwwwwwwwxwwggwgwwgwwwwwxxgwwxxxwwxwwwwvwxgwwvwwwwwxwwwxwxwwwggwgwwgwwxwwwxxgwwxxwgvgffwvwgvwwwwgwwwffwvwwwwwwwgwwwwwxvvwwhgfwxwwwewxwwevvvvwwghxxgwwxwwwwxwweuvwwgxvxwwfxwwxxwxwwwwxwggwgwvwwfwwuwgfvgwwfwwwgvwxguvxhgxfwfwwxvwwgwwxfvwvvwvwwvwwwwxxwwwwxwxwwgevwwwhfwfwvwvxwwwgvgwxxwwwwhwxxhxwxwwxhwxxggwwveWvgwxwxwvggwgxwwwwfxwwwwwwwgvvwwwxxvfxhwwwwxwwggwwxwwvwxxuVfwwwwhwwgggvggvvfwvfggwwvwvxxwwvvhxxuxxgwxwxwwwxxvwgwxxxxgwxgwwwwwxwwggwwwwvxxxuxwwwgxfggwwwwxxvwxxxwxvegxxwwwxgwhevfwxgwxgxxwwwgwgwwwfwvwhwwvvwwwvxwwxwwffwwfwvxhwgwxvxxxwxgwwxwwwxwwwgvwwwwfwvxxwwvxfgwfvxwwwwxvgwwgwvWxwvgvgwwvgwwwwxwwwfwvhvwwwfwwwxwxvxwwxwwwhhwwgvggxwwwwhwwwxxwwwvWxwwgvhvgxvwgwwWxwwxwhgxwwwhgwwwvwgwwghwxfwvvxxwwxxwwvxwggvwxgxwwfwugxxxxxxwgwvwwxwwuwwwvwvwwxghxfgvghxvvwwvvxfwwwfwwxhwfxwwwvxwwwwwwghwxfwugwxhxwwxwxvxwwxuwwwwfwwgvwXwwfwfwwwfwuwwwwwwvwhgwwfxfwXwwwgwvhwwxwxwXwwwxxvvwWggVxwwwwwwggwfvvwvfwwwhwwwwwgwwwxwxxxvvwwvwyxxwxggxvwwwwvxxgWVggwwxwxvvvvfvvgggwgwvWxxwwwwggxxgwwggxwwxxwwwwvvwwxxwvvwwvwwxwwxggxwwxwvxxgggwwxhWwxwgwwxxvwxxwxwfuxgvwxxwwgguvxhwxggxgggwwwvxvwgvwxwgwfgwwgiwwwxhvwwwwwgwfwwxwfxgwwwywwwwwwwwxwxwvgvwwwXxgwwwfwxfhwwewfuwwgwwwvhwwxwfxwwvgxgWxwwxwwwwWvexwwhwfwxgfxwwxxwwwxwwxxwvgvwxgxxvfugwwvhxwwwwxwhwwxwwwgwwfxgxwwwxxgwwYUUffSTUDUcfFUVFffTTfwfUUffEUUUefVUUffUwUSefFUTDffVVfwf5ffUUeffffFffDUfwfffffffwfffTSDUTdfVee5ffEEfwfUETURUUUDUUVUeUeeefVTdvgVVVUUvfgTTfwfeUVwwTdf6EEUffeefwfEffUUeffff6ffUDfwfffffffwfffUTTeffeevgVEEUUeUVeefwfvfgwwefVEdvgffVuWevgffFTevgfUUvwgvgffvwgvVgvgxgvgwwxvwvwvwwvwfwvwvfwwfxxwvWwgfxggvwwwwwwgwwwwwwvwwwxwwwwwwwwxgwwwWwwxfffvvwfgwxwwwwwfgfwwwwwwwgxxwfgwwwwxwwwvWgvxfvvwwwwwvWxwgfwgvffwwgwvwwgwgwxwfwwwwwwwwgxxwfwwwwwwwwwwvgvvwwwwgwwwgxwxwwwwwwxxwwwxxwwxgffgwWuVwvwwWWvwewwwvweffgfhxgvgwgfxvvvgfVWtwVwwwvwwgwwvxhwvxwxwxvxvwxwwwxgufwfgwgguwewwfggWeffwwvwwfwgvgwwfwwugfxvwwxwfgvgguffxwwvwwwgwwwwhwgxfwxvwwgvwwwwwvUwgxhhfwfwefwfvwwwhwwwwxwwwwgwgwgwwwgwwgfggfUgGwwvghwxvWffgfvvffgvgxfvwfgvvuwgwwwvxwwxggxggwvwwwwwwwwgeWWvgwfvuvggwxwufvvuveefgggwevvhhwvwhwwgwgxxefwwvwvwgxgvvvuvvfhwwxvxwgwwwwgwhWhwxwuwwvwwwwwgggwwhxvggxxfwwxxvwvwgvvwgwxwxwxwxwxvwwwhxxwxwXvwvgfvvfvgwvXxuvXwwwuwfgvgvWwugwffvvhffvgwvgwuvgwwwwwvgwwwwgxXwwwwwwwuxwwwwfuugvgwfWwuvgvwvwggwfWwuvggffggvwfwwvghffxwgxvgvvfwfWwfugwwvwwvgvwfgfhvgwwwwwwwwwwwwgxvxwxwwgwfgxwgwwxwhxvxwfwwwwgwwxgwwgxwgwfwwwwwwwVfegffvffwgvwWuwUwwwvvgwvgWwhffvfwfxvgwwvwWvwfwguwwfwwwxwxwfwwwwuwwwwvxvwvxgeveffggvGegewvwwugvXuwguwfwfgeufhvwwxwwwhwewhvwxfwgwvgvwfvwuwvvvwgwwhwwfwwwwuwwwwuwwwgfxxxxwwgwvhwewxvwwwxhuvvwwvwxwwwwwhwhvwxwwhwwwxwxxfgwvfeWWwvfwvfggwggvVVggfxfwuVvwghwvwwvfwuvwxxwxvwwggwgwhhwgwuwwxvwvwVtFgwwwfwuvggxxvxufweewfegfggwfehgwwgVwvVxxguwgwvwvgvwvVgefggvfwvggvwwgxgwggxwhegfwwvxwwgwggwxwgwgfwxgfxxwvwwvvwwgwggwwwvwwwwxxxUffWfevWfwwguwehvwwwegugVfwffewhvwfwwvfwewhwvwgvwwgwgvgxwwvwwwxwxgTgVfvgfuwVwgwwwvewwfvfVwfvwvvewgxwwwggvxgwvhvwvvxwwhggwftvTvWfvwwfffewwwhwgwgvwvvwvfvwwwwxgwVuwhvfvgvffhxwxwwgggWxxwxwwgxwgxwhvwgxxggfwveFVUVgvgVVFUegwwwwgffvwfffvvggvVefwfewwgdUeVVfvwxwuwwgvwwwwwGUewvwwwgfwwwfgfwxeVEUUwwgefVEUfvwwwfef6ffVUfUffVefffefvwwwwgffvvfffVVeVfwxwwUvwgUEUffgvwwwuwwwwggvgwWVTgwwgwfvwwwfgfwwVfffvvwxWfVeefVVggvfgwwwxefvwwwwwwwwwxwwwwgVeeevwwwwwwgwvvVfwggwwwwwwwgwwgwgvwwwfxwxwwwwwxxwvgwxwwxwxgwxxxwxxfwvgvwwwfvwwxwwwxxwxwxwxxxxwwwxxxxxxwxwwxwvwxhgwhwwwxxwwwxwxwxwxwxxxxwxxxxwxwxxxxwwwwwgwxxwxwxwwxwwxxxhxvwhxvgwxwwwwxxwwggegxxxwgvhwwwwwwwvwwxxwwwxwwxxgxwxxwwwxxwfvwwwxwwwvwxxwwwxwwwwxxwxxwwxwgvhwwfwwxxwvwxvwwxxwwxwwwwwwxxwxxwxxxxwwwxwwvxxxxxxwwxxwggxwvvwvwwwxwvwwVvhwwwfxvxgwwwvwwgwwwvxwxvxxwwxwwwwwwxwxxgwhwvxwwwxwxwfwxwxgxwxwgxwwxwxwxghwgwwxwxfwvvwgwwxwwfxgwvxwgwwxfwwwwwxxvwxxxxgwgwwxxxwwwxxxwwxwwwxxgwwwwwhfffvFTvwffwgewgvwvwwweVWeeuwgvffWegfwvffFdwWvgvwfgfffvwwgwvwhvwvwwwwgvfgwwwwxVEfvvgvVewgfvvgvvwVewWUffeveffvwVvwewgvvwggefeffvwfwgvxvvwwxgefgdfgwwuwfwwgvwwfffuwhfvvggvwvwfwwwvwxevwfwgwwwwweveffvwvwwvvxwewggvwxfgwwwxwfvwggggwhfwwxwwxwwxvVwvvvgwwxwwxvwwxwgvwvxwfvxvwwxwwxwgwwwxvxwwwwwwxwwwwwgwfvxwwxwvvwvxwwxxwxxwwfwvvxxxxwxvwwwxvwvhwxwwwwfgwvxwhwxxwwwwwwwvxwfwwwwxvxwwwxvwwwwwwxwxwxxwwxywwvwwxxwxhUfuVVDgwvffVtvGgvgwfvffffgeuwgfgfuVvfwxfvvguvggwgwwxwggvvwgvvwhvggwwwwgwvvvwwwxFUfgegvftugwwfgvwvUvvgeeVVgVfvgvfgwuvwvwwwwgwVfgwVgxvgvwxwffgufWfggwvgwgfeggvvwxwhgwgvwgwfgvwvwgvxUfvvvwvwvwgfwVfvgwVfgvvgvwuvvfvfwvvwwwxwvwwvvxwhwfwgwvwwwEVUfUTeffWveVwvegffvvwVeffFWwwVUVfwffvwWffeEffvgwgwwvfeWfwvgeggguggfvvvvggvgvvvffSdVffUU5feeffVfffVVfeffTefWFueefuggwvfeggwvgWFuvvfgfuuxggffFfevgwgwwwVVVewwgfwwwfffVfffvwwwwwwwvgeVfvvwvfgwvVVEeevvgwvwwwvvwgvfegwgwfwwwwgfwwfuxxxgfVwwwgwwwwWeVffUEfffefetwVwgffwvgTeVeutwgeffgvUewwuvfUeffgfwgwwfVvVvwvfuggVwgffwvfwgfwfwvfgF5fVvffftwfwgfVwwgeefUfUdfgfEgeeVwgvvffegggwgUEwvgvVwwvvfewwfVUUcfUfffVffffvfuwgUuwwgwwfVwwgffwwwfffxVfVvwvwvgggvfVEveVwgwwfxwvgffufwwvwwwwgvwgvuwwvffuwxxwwwweVfVfVWDgfUufvvVffggdefgeVgVwfxvwWfgwgvvvfFufvvVffwfeefvwwvgvwVWwxwwxwwwwwgffvvwgwwgfUgwVvwvvffvgWtuvwwwwfWegfhvuwwVxfgfgvwvvwgwfvwWvfgvvgVvwfgwgfvfguuvfwwvwgwfgwxwwwwvwxgfwwvWwwwVxfvgfgwwvwwwvwwVvufwvVfvwwxgwggwgfgwvggegxwwwwwwwwwwvwvvVVvfWveTGfGvevfgVfggfeefefVevgvwvVggwvvffVuevvfVfggfedggwvfwwgWWwwxwwwvwwfffwwwgwgveWwgvfwvffwhvuewwwwgvUgfhvuvwvhgvfeggwwvwwvvgvwuufwvVfwVvfwwvffgguudgvwwvwvgggwwwwvwwvgvwwWwwvhgfefgwwwwwvvvvvevvfvgfVwgwhggwvwgggwgwfewxwwxwwwvvwwwvwwgeVfffWgWdvuVfwwfVvfgfffVfVfffwxwxgvwwwvvfuUvvvfVvfgegefvgfwgwWvgxhwwwwwwvvwwwwfffVWtfvVvvwffvwfVwvwvwvVgWehvUguWxvfggggwwwggvwgVgvggfUvfuffwwffvwvUfufwgwwwwgwxgwwwwxwvwwwgwWhvfffvgwwwwwgwvwwfgvgwfVvgwgwvwgwwfvwfwgwvxvgwwxwvwwwvwwffgwGfWeeeVvgwwwvwvvvVvvwgxhufvxwgvwwwvfvvfvgwwfgfvvgvwgxXwhvxhwwfwfwwwwwwwwwwwwWfgvvfwvfgwxvwwvwvGfgfffvvuvWfgfvvfgffffwwvwvwWfgwwvwwvwvvgwWwwvwuwgvwgXwxfxwvwwwwwxgwxgvwwwfwgvwwvwvfvwvwgvwfwgwxhxwwgwxfgfxgwxwxxxxxxweVffeWwFevWUvvgffuvfvVeVfffffwxwwxgwwgwvfWefvgffuwgffffwgfwfwwgexwwxwwwwvggwwggffvEevWffwvffvwwfUuwgwwhfvVVvvUufvXfXfvgfwwwwwwvvwwvfvwvffevgevwvffvvgwefvwwwwgwwhvxwwwxxwwvwgwwxwwvfwXfXvwhfwwwwxvvvvgvevvvVfuwwvwvwfvwvgvvwgwgwwwwwvvwwgwgfVvgggFuVvffgffwwwfwfgvfghwwwewfwvfwwweefuwvwxwgwvggWxwvgghwwfwwwwwwwwwvwvwwgVvgvvwvwuwgwWwwgwftfvufggffwfeggwwgwvgwgwgwgxvhvgwwgvvgvvxvvfwvvwxggwgwwWxwfxxwgwwvxwxwwxwxfffvfvvfwfwwgwwwgwgwfegwwvgxfwfwxwwwxxwwvwfgwefvfggwwvuvfwWwuefwgxwwvgvwvwgvgwvggffwwwwxWhvvvggwvxWghgwwvwwxvxwwwwweewffgvwwvwwwgwwuWgvdefffvwgfvvfvggwvwvwhgvhwhwvvvxwfhVVffxwwxgwvwwgwugxhwxwwwvwwxwXfffvwgfwggxgwvwwwvwwwggwvhxxhhhvwwwwvxwwwwxhvxwhgVfvvffvwuwxwhvvfgwggwwwffvwwwgwvvwvfwgwwuvggWguexXwwvvvhWvvxvwwwgwwvwwWVgveefvwwxwhwvvufdvgVfwffvvffvfuvgfvgwvwxgwgxvvvwwffwvwwvwwwgwuwwxWvwvxhvwwwxxwwwvwwfwgvwvwvgxfxwxggxgvwvfhfwhhvxhwggwvwxwxwwwxwxxvfvwvgwwgwwxwwewfgvgwWwvgvgvgxwxgvgwggfxxuwgfvvfvwWfgvfwwfxwwxwwggwgwvwwgxgfwwwwwevvvvwwxwwwwxxvfwwwwwwwvwwvwwwwggwwwwwvwfgwxwwvwwgwvwvwgwwwwgwxxwwxvwxwxwwwwxwwwwxwvwxvwwwggwwwwvvwfwwwwxvvvwwwwwwwwwwxxvwwxwwwWVvfwuFefvTvgwfffwTvvwfeevewggXffffwgeuwwgfgVwuvwvfgvwgvgwwgwgwVffwfwwwfVewwfvxvgvwewwfvvwvgfwVfevgfvhvfxwxfwUgxefvwwexwvggwewuwgwwwhwwwxxwwwxfwfwwvwwxfvwefgwwwwwwfwvxwvgvwxvgwwvwxxhwwwxhwWfwwgxgwgVffggUVgVvwwfgggwwggffgffvxwVhhfgvwgvvvwgvgWguwwvwwwvgwwxxwxwggvwwwWgEgwgvwwwwwfVgwvgfvvwvvVgWVfevvxhwvwgwxwxhxggwxvvgxwgvwgwhhxvxwwxvvgxxxxwwwwwwfwvxwwwgwvwvgwwxxhxvwhgxvwhewgxvwvvwwwwwwwwhwxhwwxwhgvvwfVfWwfvvwfwgvgwwVefvvvfwfVhvfwwgfgewwfggeGwuwwwwwvgwvWwgwwwwwggwwwuwxfffgwgwvgxgvwvWwggwvgwfuXugufxxvgwwgxwxgwwvhwvufwwWwuwwgvguWgvwwwwwggwwxwwfwwvgwwwuwwxgvwgxwxxvhwwvufhwwwvwwWvxwwghwhgwwwwwxwwwgwxvufvfWgvVggguvwwvfwVwvvgwfgwvfwhvvUwfgfvggvwwvvfwUwtfxwwgwgvwhwgxgxwwfgfvtwwggffwwgvwwwvfwewuwfgvwgwfwUgegxhgwvhwxxgxwwfxwguvwwXvwwvfwUxwuwxwwwwXwWxwxwwwwfwvwuwwwgxhvgvvhwwfwvxfxvvgffwwwhwwwgwgxwhwwwwxwwgxxwggwwvvgwVVggtVgFvuvvgfgggfVwfgfvwevgvfhggWwfwvvvwgwgWwewfgwwwvvwggxxwxvgwfugwefWWwwwwwgggWvffvvwvfVWVgvfuwxxgvvxgwxwwggwwvvvwwvvvvwvwghggvvwwwvxhxxxgwxwgwwwfwuwvwgwwvgewxgxxxxwvghwevugvxwxwvxhxgwwwxxwwwwgwgwvfVvfVwvgffxfwwwvgvfuwwffvwfvgwxxfhugwfvfwewwvgwgwuwvwwwfwwgxwwwwwgwgvwWwuguWwVwwwffvWwwffwfwwgfVuwwvvhffwfxwgxwgxwWvfvxwWwewwwvwwWwwvwgwgxwwxwwxwwwgwwxwwgfwfwfwwgxxwgvwggxwxwwvggwxwgxxwwgxxwwgwwwwhfgvfVeUEUfffewVwwTUwwwfgvwvfwfVfuffwgfwfUVUtegVwwffwwwWvfuwGeuwwwfvwgfvfwwwgwwvwwwFeUVffeudgVwwUVwwecVUfVefffffeeVggvffefgvVweewwwffxeefxTVVuvwfwfeewwwGfgugVVuwwwwwvwfvfwwwwwwwwxweVVfffffVfewwvvwwffwwwfffwuwWevwxgfwwgUfwxwwwwwwxwfwwwwwwwwUWWfuVUexegvwvfgwwwVfVWgUfwxxgvgffvhVvvwwvvvwvfefwggwwwgwwwxwxwwwwwvgvwwwgvVUehggvgwgguwgVfxwwxwgffwwxwwwwvwwwxwwwwwvwwwxgffhvvwwwvVfwgfegxwgwwwwfwvwvxwwgwwwwwwwgvwwxwwgwwwwwwwwwwwgwwwgffwwwwwwwwwxwwwwwwwwwwxxwwwwwxggwfvuwwggwwwwwfwwwgxwggwfwwwgxwhwfwxxwgwvwwwwfwwwwvwgvxxgwwwxvwwwwwgfwwxxwwwwgwwwwwvvwggvgwwfwwwwgxwwwxwwxgxwfwwwwxxwwwxvwwwwwxwhxxxxxwwwwwwwwwwgwxwwxfwwvwwwxxwxxwwxxxxxxwwvvfgwgwvwwwxgxgwwwvwvvwwgwwwwvwwwxvgxvghxwwwwxwxwxwwwxwwwxwgggwwvgwwxhhwwwwwwwwvvwwggwwwgxxhwwgwxhhxxvxxxvxxwwxxwhwwwwwwvwwwwxwwwxxwxxwwgxxhwwgvxxxxxxxvvwxvvxgwvvwfxxwxwxwgwygwwwggwwggwvwwfvWwwwvwVfgvvvgggfgwxwwwWwvvwfvWwggwvwwguwwfxxwgwhwwvwwwvwwxxggwwgVwvgwwvgwwwvwgfgvgffgvggvgwwwxwfxvhxwwwxwvxwwwVwvfwwvWvwgwvwvwWxvwwgwwxwwgwwwwxvwwgwfwffxwxxxvgwfwwwwxwwwgwwwwvhwgwxgxwwgwwxwgwvwwgfewvvvwwwWvfwvwVwgwvgwwvwggwgvxfwfxwwvgvvwwwVwgwwvwwwwgwxwhwwwgwgwwvwvwwxxvvwgwWvggwwVwvwvggvgfvgvgffxgwxfwgvxwvhvxfwxvwwxvwxwgvWvwwwwfwvwwvwwwwXvgwwgwwwvwwxxvwwgwwwwwhvwhvxwwvxfxvwvwwwwwwwgxgxvwgwwhwwxgwwwwwwgwwxxwgvvvvwggwvwwhhgwwwgwvvwwgwwwwvwwwwxxxwwwxwhwwvwwwwxwxwwxxwwwwwwvvgwwvwwgwwwwgwwwwwvvwwggwwwhhvwwxfxxxwvxxwvxxgvvxxhwwwwwxwwvwxwwxxxwxwxxvwwxgxxxhhvvwxxxvvxwvvhvwhxxhxwxxxvfvgvvwwwwvxwxwxwwwwvfvggfwxwwwwxwwxwwgxwxwwwwwwxfxxwxxwwwxxwwXgwwwvwfwwwwwvwwgggwwvwfvwwgvwwwwhwwwwfxwwxhxxwwxwvwfwwwwgwwwvxwwgwwfwgxwwxwxxwxwwgvwwxgxwwxxwwwxwwxwxwwxwwxxwhffwwFFfUdUVVvwGeewwwwwffwwfvwgeffwwffffedeEvwWVVwwwwwdwwTevwwxgwwffwwwwwwwwwwwwwFFUfedeEvwWVVwwwww5efVVUUffUUgfvfVUffVVfgvfUewwwwVVvfgwwxdUVVvwGeewwwwwdwwdVuwwwwgwwffwwwwwwwwwwwwfVVffVVegvfeewwwwUVvfgwwxVUuwwxWUuffwxwwwwwxghvwwxwwwwwUXVfhgVfghwvwwvwwgfgfwggfVwfwwgwxVgvvxwwwwwwhggvwwwgwwwwvvvwwxwxgwvxvvggwWfvwwxwvgwwWfgfwwwxwfwfwvvwxxxxxwxwwgvwwwxwgwwwwxfgwvwwwwwwwwwwvwxxxwwfwgvvgwwxwwwxxgwwvgxxxxxwxwwwwxxgwxwvvhvgvhwgfgwwwxggwfvVghwhvhwgwxwwgxggwwwwxxxwwwxxxxxxwwwwwwwvxwvgwgwwxgwwwwvxwwxwvhvgwufxxwwxxxwwwwvvwwwwxwwggvwwwwwwwxwwwwwgwwvwgwxxwxxwwwvhxxxxxxxxwhxwwwvgfxvgfwwhwwwwwwgxfgehhgwxgwgxwwwwvwxggwwwvwwxwwwwvxxwwwwvgwwfgwvwggggfxwwgwwgwfVwwwwxxxxwwfwxwwvxwhgwwwwxwwwxwwwxwxwxwwxwvwwwxxwwhxxwwwwvhxxxwxxwxwxxxhgvggeTfwWvwxvwWfwwwwwwVfgvfwfWfwwgfhvwGewggfVfwwwwwwwwwfwgwwwwgfvwwwvwwwwwxxeegwWewggvffwwwwvxfVfWfwgeffgevfvwWffggvXvwwwwwwewewwfwVfwwgwhfwwwwxvvgewgwxwwfgwwvvwwwwwwwfvwVfgwgggwvxfwvwwxfwgwwxwgwgwwxwwwwxwxxgwUXfUwvgfgwwwvwwxfuggfgevwxgxwgvewwfvwxwxwwgwfwwvvwgwwwwwvvwwwwwwwwfvwfgvfuxwwvgwvvwfvggvwgvxwwfwwfwxxwxwxwxwxxwgwwxxwxxwwwwvvwgvwwwxgwwvwvwwxwwfwvwfwvwxxxgwxvxxwwwwfwxxwwwvgwxxwwwxghVfuVtTfvFuvwgfFfvwvfvffvvgeggfwhuVvggWvvwwwgfwwwwwwgfgfvvvwwwwgwwwxwgwvvvwwwwxeevfVvvgfvffwvfwwvffeVfugVffgvgvfgwfuffwwXgwVgwwwVgvgwvgwxVvugwvWVggwwwwvgwvuwuwvwfffwwvgvfgwgvwwwwwfgwgefvgwfgVvgxxxwfwugvwwxvvwxwwgvgwwhwfwxxevwwwwgwfwwwfeVvUVfvfewffvfvggvvvwgfgwffeWuvgvfwvfUvevwvvWwgwwwgfffwuvfggwwgwwwvvvWgwgwwwwwGGufvDgfvffugwvgfgVffefwefVfgvvvfuggvevewggvggWvwwwfwwvvwewfwwwvgwwwwwwwggvfwvgvgfgvwwwgwwwwwwwxgvVvfewfggWvgwhwwxgvvvwvxgwvfuwwwwfxwggggxwwwxwwgggxxwwgfwvveewvVvgvggVwgwwvwVfgvegfgvwvgvgwWvgfwfwgwwwvvfuwvwvgxwvgwwgxgwwwwwwdUwfWugvvwgxwwwwwweffevwfgVvfxvVVwggfuguwgewgwwwwwggfwfxxFugvgfVwgwwwwwggfvwvwvwwwwwwwwwgwwwxxwxfxwvfugwwfwgxgwgvgwxvwvwwxwwwwhxwxwvwxxxxxwxxVvwgvgwwfvfuffxwwwfggwggwgvwwfxwvfwwugfxfwwwwvWvffvwwgwgxwwwwwvxvvxwxwwhwgfvwvwgxwwwwwgxwwwwwfgwwwwwwvwfwwgwvgwwwxwwggwwuvvgfwwwwwgvwwwwwwxvgwwwwwywxxwxwwwwwwwvwfwwwwvwgwwwwwwggggwwwwwhwvwwxwwwwwvwwxwwwxwWfeVgEvVfeWvgWvwfvwugwvVfwguwVgffxgvwtfugWtffwvfvwvfwvwgfgwwgefvwvwvwvwwxwxVfVwughguwvwvwuwvgfgWfvfwvwugvufxwhgwvwfwwvvwvwwwxgxvggfuwgwwxggwwxwwwxfwwvwwvwvwwxffvwhhwxUvfwefvxwgwgwgwwxwhwxXwfgxwxwvxxxwfvvGegGfwvvwvugwwxxwfeeggVwgvvuhhghwvVgvvvfegggvvvvggwwwfvgwwvfwwhwxxvvhwWfVWggvvwvvgghwwvgffvvevWVgggevwWvvvwvwgwxhgxxxuwxxvvgwfwwwvuggwwxwghxwwgxgwgwwuwxxvwvwwwvgfwgwxggwxgvwvwwwvwwgxgxxwwxgwwwwvwgWwvvgevvWvgwfWwuvgwgwggfvgwvffgwvuWgffvfwegwevgwwwgvgfwwwwgxwvgwhwwhffwwwwfvfgwWxfXuvgwwwuwfgwvWwuvgvhffwvggxvfgxvhhffwwvvxvgvwgwfWwvvgwwwwhwwwwwXwwvgwwwwxwwwwwwwvwhwfgxwvhwhvfxwwwwwhfwgxxwwhwwwwwwwwggwhwwfwwxwwvxwfVevfefVgvgevVtfgwgwwuwgvvggvgegfffxvgwfvvgvwgwgxuwwfwvwwwwWwfgwwwwuwwvwwwgfffwwWuvWuwfwwwwfwvgvvWvwUxfWuvxwgxwhgxfwhvuwwwgxwwgvvguwvvwuxxfxwwwwxgwwfwwwwuwxwgwgwgwvxxwhwwfggvuwxwxwwWxghwwwwxwwwxgggwwwxwwwwwxxwxfvfgVvVWvwvvwvefwwxwufefgffvfgvXhhwvvevfwvvggxwwvwgXwwgwwwgxwgwxuxxwvwwwUvGgvwvvgxwxwfvvfgeuWgggvfuwwgwvwvwgghxhfuwwwwwwhvwvwwuvvfwwwvxggvxwwgwwwwxxgvwwwwwfgwxwxgwggxhwvvwvhwxvvwwwwxwwxwwggwxwxxwwffvgWvwgfvwVvwewwxweVfgvfvwvwfXvhfwfffvvewgvwwwwvhvwwvwwwgwgwxvwxvwwxwwWuwWVwwVvwVwwwwwwffwfvfUwhxwwwfwgvwffwwgxgxvvuxxxwxWwwevwTgfvwwwvwxwxvwgxxxwgwxwxwvvwwxgvgvfxfxwgwWugvgfxxwvwgwxgwwxwxhxwwgwxhwwwwwwhfggwfUUTVUEUefvwwgfwwwfggfvvfwvggffVefwfVefVUTewwgvwwwUEewwwfvwwwwwwvwgwfgwvwfgfwwfEUeVdUefeuwfwvwwwceVeffVfffUVVffffefVVffeeffggfffwwwwwwxwwxfVVVTUvwwgfwxwEVUwgffwwwwwwgwwwwwwwwwfgfwVeffgfgggvVffVVeVfxwwwwxefVeffUvwwwwwwwwwwwwwwwwwwwwgwvVvfwhwgwxfwvvwwwxgwwhwghwgxwxxgxwxvwwwgxwxgwwwwvxwfwxwxwwxgxwxxxxvvvwgvwwxwwxwxwxwwwwxfxvxxwxwgwxwxxxxwhwwxwwwxxwwxxwwfxwxwxwxxwwwxxxxwxxxwxggwxxwxwxxxywwxxwwwwgwwwwxxwwwhvxwhvwgxgwwwwhwxveggxwfwwwxvfwwvwwfwxwxwwwgvwxxwhwhwxgxwwwxxggvwwgxwwwwxxxwgvwxwxwwxwxxxxxghwxwwxwvwvwwwwxxwwxwwxxwhwxwxwwwgwxxxxxhxwgwxwxxwwxxxxwxxwwxwwgwwwwwwwfgxgwvwvwwgwxwwwWvvhwggxwxwwggvwfwwxwxwgwxgwwwxwxwxxxxwhwwwxhwgwwwwxwwhwxwxwwxwwgxxxwxxwwxxwwwxwwwwvwwxxxwgwwxwwxwwwwhwwwxxxxwwwwxwxwxxwxxwxxwwwwxxxvxwwxwXfUffE6efvfwgdwgffefvwwUdVevvfWefFwwVUwweeffSffUUefffffwwuwgfvwwgfgefvwwUewwwfffxUEfffewgdwWefffvvwefgVFUVefTfVevfvwfgWvvvwWvwTUvvwefgvgVfgwwuffWeffevvwfwwVvwfwgwgvgVegfffvwevfvwfvwhvffgfwgwwwXefTeeegvwgvwfwxwfvWgfwwgwxwwwwxwWffggWffwwgvwwwwwxVvwfvwgwfwfvxwxwwxxgvgwhvxwwwwvwwwvwxwwwwgwwgxwxwwwwxxwwwwgwwvwwwwxwvwxxxwwwwwwvxwwwwwxwwwwxwwxwhwwwxxgwwwxwwxwwxxxxwwxwwwxxwwwwxwxwwvwwwwxwxwXeTeV5FVfeeffcefUUVffffVeffvfwFUVUwwffwxwvvvgdefffgwvwweffvwwwwwwgUVVfffffvwwwvwwxEUffvevfuvWVgffvwvfufVVdVVfEVfVufgwvvgfwwXgwEVwvVfwgvuVfwxevvWdffVfgwvgwVgwvvwvgvgVVgffvgvVvvgvvgvgfVvvvvvwwgWVfEUvfegwwgfvgwwwvwevwhvwwwgwwwwgefwgWffwgvvwwwwwfUVvUdegffwwEwuggfgvvwfffgffeWefguwgvwgWvfWgvvfvgwwvvvgwfgvfgwgfevfwwvwgwwvvwGetgWGgvFwvffvggfgfUveUfevggVvvvfwgWwvvexxxvggVvwvgwwwwvvvxgfwvVwvvgwgwwwfwfwwwvgvgvfwgwwwggwwwwWvgfwvfeggxuffVvwvvgwwgwvvwWvvvvxwxwvxwwxggxfvvvvgggwvxwwwwgffgfUFgfuvffuwvvfvgwvgfUVuffUWffWwwfvxwfvwwtfVgfwWwwfggfgfwwvwgfwgvgwvvefwwwvwxDVwgfvwfuwfwgwgwwUvfeefUwgfVwvfffVuwvgvhgWwgfVwvfvfgwwwvgwtewftwfffwgfgffwgwwwfwwffgfwgwwwvgwwwwxugVvwvwxxgwgfVwvfwgwwwvgxwuwvvgwvvwwxwwgvfwxwggvgvvwwwwfeggxvgfwwvvgwxxxwgvwfxxwwvxfxxvxhxxvvxwxwxvwwwwwwxwwwxxvwwxxwwwxxgvwgwwwwvvxwghwwwxgvwfxwxvuxxxwxxwwvxxhxxwwwwwwhvwwxwxwwwhwwxwwwgwhwwwwwxwwwvvwxwxxxxwwhxxxxwxXfvfXfvVgxwwwvvwxwxvwveVhwhwgwugxwvvvvwvgvvwwwgvgvwwwwwwfvvwwgwxwvvwxwgggufwwgwwhwvwxwxvvwwxwhwvvgxwvvxwxxwwwgxwvxvgwwxggufwvwvgvxwwwwwwwwxwwxxvvvvwwgvgwxxxwxvwvwwxwwxxxxwxwwwxwxgxwwwefWhVvwgvwwvgwwvxwgwVVhXvwvwugxhxwfwfgwxwvewwwvvvwwwwwwgggwwwwxxfwvxwwwwggfgWvxwwvvxwwxwvwvwvgvgxxwwfwwhwxgxxwxfxwwxgwxwwvvffwgwwvvvgwwwwhwxwwwxwfwgwwwfwhgxwxwxwwxvwvxwwxwgwxxwxvwxxvwxwwhvfgvTtfgVgwgwwwfwwwwwwfVWeguffwfgWevfvEfwGwwvfgfffgffvwgfgfwwwwvwwwwwwvwfgwwxweegfVVwWgwgevvwwwwfVffffWefewfvwgfwVffwgfwgfwvvwegevwxwwVfwgvfffwfvgwwvuwVwgwwwgffvwwwwwffgvwfvwwwffgVfgwwwXevevvvwvwvvwwwwxfvwgfwgwgwwxwwWgffwxxwwwwwwxxwwfevvfwvwwwwggwxvwwvffghvgwwvgxwwwwwwvwwwxwwgwwwxwwxxxwwwvvwfvwxgwggwxwwwhvgvwwgwexwwxxvxxxgwwxwwggvwgfwwwwxxxwwwwwwgwwxwxwwxwxwwxwfwwxxxhwwxwxxwxxxhfVvgUdfwEwvWwwgfwffwwwwfvvgfwvfxVvfgwxVwWvwwfwwwwwwvgwwvwwwwwggwwwwfgwwwxxeevwVvvgwwwfwgxxwffufffWVfgwugfgwfuvvgxvgfwgxxwxvwxxUwvgwwgfwfvgwugxvvwfwxwwgwwwwxwfvwhwxwwgggfevvggXVwwwwgwuwvwwwxxvvwvwwwvgwwxwxxwwvxxxxxwwffewVVvwfuwfvwwvgwhwgwvvvVfggvhfwvggewfuwwwgwfvwWwggwvgfwhwwhwwwwwfwwvwGUvgVdwfuwwwggfvwwgVfefgffWvgvvevgfvewxwgvgwhwgwwxWuwffwwwxwwwwwgvgwwvvfwwwwgwwwxwwwwwwwuWffewvgwWfgwwvvgvwwwxhwvwwxhxwvxwgwwxwvwxxxxxxwwxxhvfgveefvUvfewwfwWwgwwwfVVuffUwwfWfvgvfVvgfffgwggfwwvfgfvwefvggwwWwwwwwwgfwwwvfwwTtvfVwgfwwwwgwwwwwfefevfffVwVwvfgwfffeguggewfxgwgwgwvfwxwDggVgwgwgfffgfvwgwfvwvwffwgwwwwwgfwwwwxwVgVvfuwvgwfvfgVwvgwgwwwwxvgfvuggvwwwvwwwwggvwxwwwwwxxwwxxwwwwwwxgxwwxxwxwwywwwwxwxxxxvxwxxwwwxwxwwwwwwwxgwwxwwxwxwxxwxxxxxwwxwvxwwwxxxxwxxxxxxxxhggvxgfwwwwwgfwgwwgwvwgggwgxfwwfwgwwwwgfwgwwgwwwxwwwwxwxwwwwwwwwwVVwwgghevwvwwwvvggvgeugUwewvwwvghxwhfwewvwwexwwxwgwxuwggwfwvgwwgxxxxwwwwvgwwwfvvwwgwxxwhVVwwxfwxvwwwxxxxwxxxxwhvwxxhwwxxwwfefwwvvgwwvwggvwwwgwgfugwwvvgvwggwgwwwwvgfvwgwWvvvwwwwwxwxwwxxfvvwwxwwwwvfwwwvwgewgwggfvwwgvwhhhwvwwxxxwxhgvxxxwvwxwwwwgfwwggwvwxwxwwwxwgvvwwwwxvwwwwxxxxxghhgwvxxvxwvxxxxxxvxgwvwwwhfVhfVfWwvwvfwvwgfVwwUEvgwfvffhvgxgwwfeguwgfVwvfgwwwwvwwwwwwfVwwwgwwvfwwfVufwgwwfwfvwefwwwwxvvwwvxvgxxwwxxxwwwwwwxwvwxfgwwUvvvweffvwwwwgwgwwwhwwefwwwwwwfvwwwxwhxwxxwwvgwvwxwwvwxxwxvxxwwwwwwwwgxwgvwwwwwwwwwVTufgefVwvwvWfevgwVvvvfefhwhfgvffxgwwvgfewgwfwvwvwwwvwwxwwwggVvvvvwwvwwgevevfgwWVfwvgegwfwwxvggvwvxwvwxwxxxwxfwwvvwwxwvwwwgwfVfwvwfwvwwvwgwwwxvwgefwfwwwwwxvwwgwwxvxwwwvwwxvwxxvwwwxwwwxwwgwwwwfwwwxxwwwwhVfwgggwgwwwvvguwgfgwffVgwwwvvvwvgggwvwwvwvgvwwvgwwwwwwwwxwxwxvfwwxxwvwwgggwwwwwvfwwgfwwwwvvxhghwvwxxxxwxxggwhhwwxwwvwvfvgwVwwvwxxwwwxxwwfvwvwwwwwwwhhxxxxggwvxxxwxwwxxxxxwwwxvgwwxvvvxfeuwgvwgWwfxvwgwvvgwwwfgwghvgvfwvWwwhwgwvvwwwfwwxfwxwwwvxxgwxgvvwggwwgwgwwwgxwffwUWwewgvgwwvvgvgVwxvguwwxxxwxwggwwgwgwwwgwvwxwwxwwwwwwwwwwwwxwWvvwfxxxhwWvxhwwwvxwwfxxwwxxwwxxxxwgwxwwwwgfwwwgxhwwwwwwwwwxwwwwwwxwwxhwwgxxwwxxxhwwxxwfgwwvwxwwwwwwwxwwwwwwwwwwwwwxwwwwwwvxxwwwxwgxxxwwxxxwwwwwwwwxwwwwwwwxwxxwgwwffwwfgeVVfgffUvfVeVugwwwvffwggfevvfVVuwwvwgvgfvwgvwvgVvETfeUVfgVfUfvvfUVfeevvVUeggwvvffwwggfwwWVVfvgfwwwgfwwWefvwfvfewwUfVgfwgWufvfGeUUffVDeefvgwwgfvwgvgfwwffewgeeTwfwggfWvgWeVffWVUuwvvUUgffffhffffwwwfffffvwgfuVvfvfwgffUVUfwgTDgwfgffgfTUfffCETUuefgevvfgfgvfffvgVfffVvwvfwwgvwgvggvfvffwwvwwxwwwwwwgvgvgwwwvgfwfwwwwvwgfvwwfwvvfffwgwgvggvgwdggfgvvgvwefvweeeVfffefvVfgffgffevfVfTuVefvggfwgfwevvwwfwwVwffgffffwffffwgvewfVfvgwfwvggwvgvgwwgwwfwwwwwvgvvvwVvwgwfgwgfwvewwffwwffgewwffVwfVeVvgffgvwwgfgfvueetfVWWgfuuwgfggfufutfVVVgfuvwxwfwwwwwwwvwgvwfgfggwgvevefvfwwfvggvwwggwfgfgvUvveufVVfgcfvvfvvfegVVggUvVVVgevuvfUfVVfggVuFWVFffUvfffwvfwveVVVfgfvgWVgefuvfVgVWfggfvEWfVfVfvffvwfvgfxwgvvvwvvvfwwwvugvfwgWwgWwgwvwgggVewvweugfwgfffvvuffffdvuvfevgvvvgUefEVfUUgegfvfwvvgvggefwuefvgfVgwgwfwvvvwwgwgvgewUvVfvefftfVWffvegWfWgfffvvvgvgvfgweffugfsffVwUWwftVugeuVvUFffffeTVeUUfVFuVeV5eFFtVVfeVfeVwftVugVvffeFggffUVGuuUvWfveuVUeefuefeeVvffvfwfvfgeffgwfgvffWWwfgeffwvgfgvggvfffwfVvgvvvefgfVgfveVVEfgggvggwfgVffvVufewfguWvwxgwgfvwgufevfgfvwvgwgwwwvwwwwwgwgvguggvvfwvfgvWgwvfgvvggwfgwfgwgvwguwfwfwwtwgfuwgvvewfgvffgVgfvfeEgUvfvfgUfUVuFeVfwfffuvgveevfggwwVwfffuVgevfwfgvUfeVfFevVfwfwwfvgvgvvwwwvgwvfgwufvvwggwfwhwwvwgwgvvfvggvgwwwwgvfweVgfWfVvggvvWfwvggfffVWueegffvVfgwfgwwfvwuugffgveUwwwggwxgvwwwwvwvvWgggwegfguvgggvwvfwfgvwfVfeffggfgwfvwfggwgdgwvfwuvVfgWffeVfVfffeWefVeffvVffVvEVvVegfvwvvvufWfgWvffvggfvvveWVuWfwgffgWvVfwefgVfvwgfwwwwwgwfvwwwwwvvgfwggwggWwgvwvgfwffwwfweufgvvfwvvvfwgvvevewfgfvwhgfvgfvfUggfgffwwwgvwfwwUwgvgvgfvwwvwwgwwxwwgvwfwwwwwgvwgwwwwwwvvwwwggvgwvvwgfvxVvfvgvwwtvgfvffgVugvgvfgfeffffgUvgVVevffVevUewfvvgwwvfvwfwWugvfgwguvfvfgevgfffffwgvgfggwwfwwwfwwwwwwwgwwwwwwwvgvwwvgvfwvvgggfgwvwgwfwwvggvvvwfwwgwewfwxxwwxxxxwxwxwwwxxxwxwwwxxxxxxxxxxxwwwwwwwwfvwwwwgwfwgwwwwwxxwvfwvvxwgvVwgwgvwgxwgwwwgwxxwxwxvwxwwwxwwwxxwvxwwwwwwxxhxxxgxxwxwxwxwxxwwwxwwwwxWfgVgfwfWdeevffeVUEWuvvgwggewvvggeffVgvwwgwwwwwfwwgwwwwuwGfveUfgwvvwggggfVVffWuvfvgwwfxfffvgWevfguvfefvwgvfffVgevfffVVUEcUffwgwVhvufUGfeetdFfueffvwfefeVgufvvvWVVfdfgfwwvfhvfVTFefgueVvvxWvwffgwfvwgwwxffgfwfuvwwgwwfvwwwVVVefefffwwfgvwfWfvweVVffdefvvfWfwwwVeVefWFVeUWevffvfwgvvfgwggffWvvexvwwvhwfwwwxgwweuVeegffgwwgwxgffvgfuvfgvfveXggvuxwffWwwvvvfwwfwwgfwvhvvwfgvdfFudVffgvfhgffUWefffuuVeVfufwggfffgvvfvwwfffvdgfvwvfXwvgUGuuvvueVVhwuvgefwwfwwwwwgwfffwwvvfwwvvgwwvgVffgFWVfufvgwvWgggvGVfffVeUWVWhefgwWdeeufvVFUWfUwuVfwgfwfufgvffhvfwgwvgxuggwwwwvufFffUeggVugffwvfVEuffeUwugfgghvfeVvvgFVewfewfeufvvwfWfheegfffVUcEVdVffFgUVf6VUVeeewfEgUfvvgweffgvewfvvWfgeVwvgvwfwvfwFVuVweVgfVvwWvfefwggvhwwvgVfgvfewvvgwwvfwwwVUfffUdVwfvfwwwfuggvUeVvfedVfvgwxWvxwvgvwggwwwgvwvwwwhvwvwvwwwxwvxgwvxvwwvwwwwwxgwgwwwvgwwvweVgffwfvwwwffdwwvwwewwfxgwwffwxWwwvwwfgfxguwvvgwgfgvvgwvwwwfwwfwvvvwWvgwgvfgxxvwwwvwwwgevwvwwvwwwwvgwwhwwwgwxwfwwwwvvwxvwvvwwgvwgggWwgwwwxwgxWVwvwgfxgfwffgwvgUUfvUwVVudUvEegvvwegfvgvvfvefwVvgwgxwwvwvvwwwwfgVfVVfgfWvwwugvwfVuwffwEvgwWfvvgevhvfUvfgwVvegfvgvvfvefwVfwfWeTGTfVEfVeVgffSVfVeveefedVfugwefuefwVfwvWeeWfvWVffewwefCefVevUVftvgGggWfgfVuwwvwvwVfuwgfwVvfgwwgvwgwfTvffvWewfgevwwvXfggUVVvgVFfvwgvgfwwwwwhvvwwwwwwgvhwxxvwwgwgvwwgwgxxwwwwwxwwxwvxwwvwwwgwxwwwhvvfwwwggwvwwwfWwwwwgvvwvWggfgxfgwwwfggwfggvgwwgvvfvWvvfgfxwvwgwwvwwghxvwgfvvgggwwwvffvgvvfwwxvwwwgwvwwxvxwwxgwxwvwxwhwxwwwwwwwfwxwwwwwwwxfwfwwgwvwgwwwwhwwwvfxuwgwwvwvvwwxgwvguvgggvvvwxwvvwwxxwwwwwxwwxwxwwwwvwhwwwwgfgfwvvfvGvwwvgwvgvweggWgggwwgggggvgwWfvgvevvvfvvxwgvwvgwwwwvghwwgfxhxgwwwvgvuvwvggvwgwggggwvwwwgwwwwWwwwwvwxxxxwwxwwwwgwxggxxxwwwxwwxgggwwhwfvvxgwwwxgvwvwwwfxwgxgvfwgvwxgwwxgwgwwgxvwwvxwxvwxwwvwwwxwwwwwwvgwvvwvggggwgvfewFwvgvvxwvwVwxwfwgwfvwggggFwggfggWfuwfgfWxwwwexvwgwgxwfwhvwvvgwgwwwwwfffwvfwvuwwugxwwwfggxwxwfgwwwwvfwwggwvwgvwwwhgwxvvwgxxxhggwwfvfUffvgVgvfVfffVfgfvwgwwfgwffwgwfxwfwwwwvwwvgwwwWxwhvfvwvfegwvgggggfvvwwgwwgwgewgfvgfvwwWegvvgfwwfwvWewggvvgfffVtgfwfgfUgfVfvVEguefvuWefgwWfvWvfwgfffgwvwfuwvvvvfUwfVfvwVgvvVwvWvfxwgwwwxwvgvwwgwvggvvwwwgffgfwwwvvgvfgwwwgwwfWefggvfvwfVfefffVggeVfvwvfvWVefVffgeffffgggvvwfvwffWgvvvehwvgwwgwfxwhwgwefvvwwvVvfgwggffefwvgWwvwewTWvfvuVvvgfWfuvewfgffveWwvvvvffgevefggvVfWfffvwTWfuvffvUfuufgefvvgffufvffgWvdgggfveGvvvuvvVfuUuvvVVvgwufvwwwvWgfvwwwwffvvuvgwgffwvwwvfffVggwvvwvgfVWgvwvvvGfVVeffffvUheufgWWfvFeefgfVfewfvvgggggWfffguvvewvwvuvfffwwwwwWwgVfvwvvgfTVfgvffeUfevvvvvgfvVWewefguVfwFVeUwfgfvVfvVgdgfUwvfvftVfffefEgeeeVv6VdfgfVfUEffWvfgvfvfvwdfevfgvVgwfvfUgugvfwVffVVvfwUVfxwgfvwvwXvegwwwwvffvUwfvvvgffgvwgwvffuWwgwvwfVfuggwgwfVeVeTwvfghwwwwwxxvgwwwwwwwxxhxwxwwwwwvxwwxxxwxwwxxwwwwwwxwwwwwwxgfwwvwwwgfuwvvwgwxxxwxgvwwwvxvwvvwwwwwhgvwwfvwwwgwgvwgvwxwwwxwwvgewvwvvwxwwgwgwwvxgwwwgvfwxxwxxxwwxwwwvgvwxwwgxwwwwgwxwwggwxwwgVvggwvwwwefvvwgfewVffveVvfvVfvfwwwwwgwwVvwwwVwgwwvwwwwvgxxfgwwwxefvffgwvvvwVvgvvgwvUvhgfgWewwevwfggvwfgwVuwwwfgufgXevffffudfVfwfvTevfvgeevegvwVfgwfgvvwevfwwXfvwvggvTfgvwfvewgfwxffeexwgwwwfvwewvwwwwwvvwfwwwvwVgvwwvwgvvwgVwvxwwvefgfvgwwgwWffUwgvwwwwwwwwxxxwxwwgwxxxxxwwwgxxwwwxwwwwwwwwxwwwxwwxwwgwWwwwxwwwhwwwwxxvvwfwwwwwwhwwwwvhwwwwxxwhwxxhwxwwwwgwwxwwxxwgwxxwvxxwxxxxwhxxwxwxxwwxxxxvwwwxxgwxvwwxxwwwwxwwwwxwwwxwxwxxxwxxxwxwvxgwxwwgvwWwwvwwwwwwgwhwwwwxwwfxwwxwwgvwxwwwwvwwwwvwwwwwwwwxhwwwwxwvgwwwwwxwhwxxxwxxwxhxxggxxxxwxhwxxgwwwxwwgxwwwwwwxwwwxxwwwwwgxxxxwxwwxxxxxwxxwwwgwwggwwwwwwgVvwWwvwgvxggwwwxwwvgwwvwwfVfwwvfwvwggxvgwwwxxwwwwwwwfvwxwwwwhwvwwwwwgwwfxvwwfgwwwxhwxgvxxggvwwxwwwxxxwxhhxxxwwhwwwwxwhgwvvxgvggwwfgwFffUfgWfVVVffugvwwgwwuwwwwgvvwwwwwwwwggwwwxxgwwfffUffvwvvwwggwgwVffefgxwwwggwgxwggvwWvvvwwxwgvgwwgvvvfvVVefVhVfvgwvwwWffVffffvUfwefvhvffegwfwwwwwVfwgghfwwgwwxwwWffffvxgwwfvwwwfvvwgvxggwwfgwwwwwwggwwggwwgefVfgwwvggvwwwwvfwfffffgxxxwwxxwwvwwwwxwxhggwywwwxwwwwxvgxwxwwxwwwwwvwwhwwhwwwwwwwwwxxwfwxwwwfwwvwwwwvfwwwwwwwfwfvxxwxgggwfxwwwxvwwwwwwwfwxwwxxwwxwwwxxxwhwxwwwvwwxwxwwxxxhghwvwvwwxxwwwgwwwxwwwxwwxwwxggwwwwwwwwwwxxwxwwhxwwwwwgwxwwwwwhghwwwwwwvwwgwhwgxxfxgwvwwvwwwwwwwwfwhgwvwwwfgwvWwwgwwwxwgwxwwxxxwwwwwwgxwxwxwwwwwfwwxwwwwwxxwwxxxggwwxvwwwwwgwvwwxwwwggvxwxxxffhwvwwgwhwvwwwwgwvwvgxwwvwgwwwwwwhvWxwwxvxwwwgwxwfxwwwwwxwgwwwggwwwwwwwwwwwwvgxgwwwxvwgfgvwwvgwwwwvwvfxvxhwwgwfwwwwwvhvgwvwvffvgVvfguwwfwwgugegxfxwwfwvwwwwwvxxxwwvwgeVgvfxwwfwxgwwwwwvgxfwwvfwwwwxfwxgwvhxwwwwgvgwgwwhfxvfwfgwwwfgvfwfwwwgvgwfwvwwwgxwxwwwwwgxfwxwxwxxwwwxgxwwwwwwgwvwvxwvwwwwwwwwwxwfwwwxgvwwwfffvwwwwwwwvxfvwfwwgugvwwwgewfvvvfgVfevVfwvwvwwvwwwwfxwvwxwwhxwwwwwewvgvwgwwfwffwvwwgvwfwwvwwxgwwwvwvwwgxwwvxwwxwwwwgvhfgwwwwgvvgvWwhgwgwvwxvwwwwwwwwwwwwwxxwwwwhwwwxwwwwwxxxwwwhxvwwwvwxwwwwwwvvghgxwvvvwwwvffwwwxwggwgwwwvvwwwwwwwgvwvwwgvwWwghxwwxwwhwgxxwwwwwhgxhwxwwvwwvggxwwxxxxwwxwwxwxxxxxwwwvxxwgwxwvvxwwwwvvxxwwwwwhvwwwfwwvxvwwwwwwwwwwxwwwxxxwxwgxwwwxwxwxxwwhwxxwwwwxwwgxvwwvwwfwfwwvwwwwxxxxfgwwwwgwfxvwwvgvfvwwgwgvggvxwwwwhwgvwxwwwxxxhxwvgvgvxvxwxwxwwxwwwxwwwwwwxxwxvxxwwgwwwhwwwxwwvwwgwwwwxwxwwwwwgwxwhwwwwwwwxwxwwxxwxxhwwxwwwwvwvvwwwwgfWfwwwwfwxxwxvvvgxwvwwwwwxfvgvxwwwwwgwfgwhwxwxwwfgxwwwwwxwwggfwvfwwwgwwvwwxwwwfgxwxwxxxwxxwwvvxwwwxgvwwxwggVEwgvwfeeeufuefufffffgvwgffvfVuegvvfvvgwwvwvxwwwwwwVVVvgfwwfggffuggffvfggfvwgvvwhgfhvVuwfvgfwfguugvffvfvwgwwgfwWgEgfVwweVfGDgVXdugfVfefwvVffuvfufgfvwfvwWWEggfwweWggUgfguugfgffwvfWgVfVfvxgwgVgfvwgvvwgwgvwxggffFwfeUfwwgfUxgfvvgeUefgwefvvwUfwwffffWvfvfEVfEffUVdfUUfevefgVfvUWudffwgvvefwvWffvgwggwgdeVgfvvfgVVVfvfefewwvffwgVffugehVffehwfefwgfueVfwfgfffvwuvvdeFVVegfVffCFegVdeffUUefefEfFeefgveUVffvvefT6UVffVffvfVvXetdfgeefvuvFUTVegwvwgwffUWfgefevwefvfgwvwUVefVVfvwgwfwwwfvffVVVVVgVTuwfVfvffgFVWeVVgVSdUeefTEUfVTfeffgfffUeuefgffufweffeeufggvvgff6EVeeffVVUETDUfVTfeffefefVefeWggfuuFuufVUUwVTgedefuuVUVUwVTvVFfUEEegUdV%ECgUUfUUUUUdEfU4VeVevuvfffffefFVWdfVgfgfVEUewVEgvwffwfggfVFVfvffgwfVVUUUwfTfvwwfvfwffgVUEugUdVvfVfVgfffVeUUUEUtVTSgvffegffufvfgwwwwgwgvwvvvxffwgwwwuxwgffvffvwwwwgwwwwwwwgwwwwwvwwfvwwwwvwwxgvwwxwvgwwwxwfvwvgffuGwffevfwfgvhwggfuvvvvwggfwwggVwgvfvwfwfwVuwgwfvvxwggvwwwwvffVwffwgwwgVfggffvvwfwwwwwwvwwwxwxwuwgvwxwwwxwwvfgVwwwwggwxwgwVVwgggfwwxwwxwwgUuWwvWdVfvWfVfUvggVvfggwvgfuhVvfvwwwgvwwvugwxfwwwvwFvevWewggfVffevggVvwgfefvwwgggefuWevgfgUvfgwevfgwvhfvfvvgweWwTVfegvfWffCefvVefffTefVfedefgvhfffewwwffwTeffwgwWffTvegwVvgggvfwvgvUfvgvwwwwgffuvwwewwwgvwxwwWeegvfVVgvfWffvgwfgffFUvgeeFwwwgWwwffwgfgxxxwwvwwwwwwwvhvgxxwvhwfvwwxxwwwwwxwwwwwwwgvwwwwfwwwvgfwwvgfwwvvwwwfVvgdfwfwvggfvxvwwvvgwxwwwvWvgwwwvWvewwfwwfggghvguvgvgvwwWfvfgwxwwxgffxwwwhwhfVwgvgggwwwwxvgwvgwwwwwwXwhxxwwgwwwxxwwwgwfwwgwfvwxgxVwfwwvxwwwvxwvggvvwgwwvwwwgfgwvfxhxwvfwwwgxwwwwwwwxwhwggwwvvwwxwwwwwvvwwwvfwxgVfgvgggwfdffuwvwffwwvvwfwWwhvwvfwvvwvgfgfwugfwfwgwvvuwvwfwwwvwwvwwwfewwwgxhefvvgvvvwwvwwvxwwgwgwwwwwwwgwwwwwwvwwwxwxvwvWVgwwggvxxwfggWgggvgxwwwgxxvvfwgwgwwgfvwwvgwwgvvwwwxvwfgvwgxxxwwwwxvvwxwwwgggwwwvwxwvgwgvvfwwvwwgwwwvvvgwVfwwwtfevvgfgvxwfwwvwgxgxwgVgfwwwwWgffugvwwfwWwvVxvfwfvwfgwwwgwhwwgefwwwghgVffgvffwwwwwxvvwgvvwwwwwwgxwxwvxwwxgvwwvWffwgvwwvwwwxwugWggvvvwwwwwfXhgwvwgWwguvwuwgwwwwwghwwwwwvfvwwwwxxwxwxvwgfwwvwwwwwwvfwwfwwwvghxwwwhfwxwwwwwwgwwwwvghwgfwggwwwgfvhgwgfgwvgwwwwggwwwxvwwwWwwfgvwwgxwgvwwxwwgwgwwwwwwwwwwwxwxwwwwwwwwxwwgfwfwgwwgwwgwwwwwwwgvvgvvgwwgwwwgwwgggwxfvvgfvggwUwvwwwwwxgwvhfvgwwfwxwxwwwxwwvwwehffwvxvwfxvwxfwvwwwwgvwuugfvgffwvxwwwwwxwxfwxwVewfvWtgwhVwUfugVgvwefwwwggwwfgwgfxwVewvwfuwwXewfwvwwfxvwwvwxvwwfwwwxwwwwxwwwxxvvgugwwhvfgghwwxgvWxxhwwwhwwwwwwfgxwxwvwwgvfwggwvwxwwvxgvvwwxwwwxvwwxxwgvhWfgggxvgfWvwggwvvwwwvhgfvvfvwUhwgwwwwxwwwxgxhehhvfvuhwxUgWVvefgwuwfwwhxvwwgvwvwvxxgehgvfwvgxxfgggwvwghvwwvwxxwxgwwwwwwwxggvwwwxwwvwwvfvthwxvfgvhgwxwwueWwhWfgwgwwwwwwgwwffwfgxfvgggvwwwwwwwwfvwghwvxwwwwgxwwfvgVwewvgxgvgvggvwvgffwwvwxxhwgefwfvgwgxwxwwwgvwwwvxgWfwfwuWxguWuWffugwwfggvgwwwggwwxwwwgvXgfgwvWWvgvgwgugwwwgwwwwwfvwwwxwvwgxvwwwwwwwxewfgvWwgwffhvWxwwWwfGxgVhvfggxwwwwxwVwhgggegvfhvvvfwwgwxxwwwwfhvwwwxxwwwxvwwwwxwwWvfghwvwxwvvUwwwvwvwwxxvxvhvvxwvfwgwfwvwwwxwwwvxwgvUwfvWvwWwuTvVgwevfwwugwevvvwwwxwwwxwwgvUwvggvwgfewfgvwfvwuwvwWvwghwgwgvvwfwvwwwwwgvfgfggwwvwhwxXwwWfwWwvXVwhwXwxwwwhgvxgwwvvfgvggwwvwwgwvwvwwxxxvwwxxxxfhgvvvfwggwgWVvhuggwvwwvvwwwwxfffgUgggfxgwwwwvwxwwxxwwfgguuvuvxWWWggVguVfhegfgxVwwwvwfgfxxwWggfwwgGgggfwvggwwvwvwxfwguwwxxwxxggwvfxwxwgwuuxfwvfxgwggwgtfWwgVfwfxgwwvwwwfvwvgxhewffwfffuVuvvuhwwvwvxwwwxwwxwwwxwWvwffwvgwgvfvgvwxvgvwxfxgwvwVgwvefWtgvfwwvgwwwwwvgwfuWvffwexwgtgefgwfGuvwvffewwuwwwfvfhvxxfhfvwfxxwugufvwvvWvwwxwhvwVvxwxwwwwvxwgvwXvewexwWwfhwgxhwfewgWhgWvxwgwwWeeffgWwwvuwWffVwwffwwwWgwwufvWffVwwfgwwgwwwuwgvfwwwwWfwgfvwwwwWwwffwwwwwwvwxwwdUfUfVUfcffVTfVVVfftgWfgWgweewxwfeevvgUuwwgfffffffUTwgwfVVwwdvfVeeUfvggwxwfUevfgeuwwgEUUfeVfffwwwvfgxFgwfUffgvfVfvUfwxwgvfgfwwwvgvggUuwwgfgvgvwwWTuwwgfUvxwwwwwwwfwefwWggVeUfgeeTffffffeugfWwgfgfwvvvffwwfxwvgwwfxxvvgWefgfxwfggeffvgfffUfffufegwWwgfvgffxwwwgfwgvgvfwwvvfvfwgffwWVVfwgwfffwwggGeVVeevgWffVVEvVegUVfvfwWffvUfvgggvffVwgvfvggvfgwfwggfVgfvgfgVvgfgwWfffwgwgwxwffvvfffVfvvwgggwvwffwfwffveUeffffwgvgvgwxwxxwwwwwgfwxwwwwgwxwwwggguwgxwxwwyxwwxwxxwwxwwgwxwvxgwwgvwfwwwgvwwgwgwgwvxgvgwvgggwwxwhvwfxwwwvwwfuwwwfgfwfwvfVxfgwwgvfxvwgfgwgwxwvwgvfwwvwwwwxwvffgwgwwgxxwwwxwwxwfwgxwgvxwxxxwgwvwwwwwwwwwwwvwvvwwwggwwvwwwvwfhWvwwwwwgwwwwwwwgwwwwwxgwvfxgwwwwwwwgwwxxxwwwvgwxgxwgwwwgwwvvwwwvwwfwXwwwvgvfwvgggvvvxwwuvggwwwvvgwwxvfwgwvwfgVgwVgggfvvwggvxggwvvwwxwvggwwwvwwwwxvvgggfvwwxwvwxwwwwwwwghggwwvwwvwwwvvewgwvwwwwxwwxwwufggggwvfgwvwwgwwwgvgwwxvgwwwwvfgvwwwwxvvxwwgxwhwwxwxxwwwwwwwwgwvwwwxwhvvvgvwvwvwwwwffwwwvwwhgwgwwvwggvgwwfwWwvgwwvwwwwgxvwwgwwvgugVfgfvfwvwWegwgxvwxwwwvfxvwwwwwwvgfvfvwvgwvwxggvwwwhvhwgwwvwxwvwwwwwgxvwwwwgggxwxwwgwwfwvgwwUvwwwxwwwggvvwwwwwgwvwwwwwxwxwwgwvwxwwwwwwvwwwwwwfwgwwwwwwwwxwxwxgwwgfwwwwwwwwvvxxwwhvwwwvvwgwwwvwwwwfhwWfhfwwvvwwwhwxwwxvhxxwwwwwvhfwhwxwxvwwxxxwwwwvvwxwxxxxvwwwwwxxxwwwvwggwxwwgxwhwwwhwgwwwxwwwwwwwwwwwwwxgvwwwfvxxwwwxxwwwxwwwxgwwwwwwwgxwggwvwvgvxwwgwvwgvXwwxvvwwvwuxwwWvwwwxvvhwxwwxwgwwwfvwhwggwghgwWvhvwffwhfggxwfwfwwvwhvvwwwwwwgwuhwwffwwwwwxvwwxwwwwwgxvwxwxwwhfvwxvxxwxvwwwwwwfwwxxvgwuwwewwwvvfwwwwwvwgvwwxwvwvwvwgfwxgwvwvxwxwwfxwwxwwxwwwxwvwgwwxwwhwwwgwgwwvwwwvvgwwvwfgwwgvgfuwgvgfvxvxwVwwwwvfwgwwfwwvwfwvgugvvWvfuvwvwwvwgwvwewwwwvvxgwwwwwguwwvfuwwvwwxwgwxwxhgwwgwwwvwwwwwwwfwwvggwxxgwvwgvwffxggwgwggwwwwwggwxwwxwgggwwxxwxxvgwgwwwxxxwxwwxxwhwvwwwwwwwxwvVgfwwgGwwgfwfvgVfgxwwwgWfvwfxwwwwvwgwxxwwwvgwVgffVfxwwwwvxwhufvgwwwxwwgwwvwwxhfwfvfVfgwvxwxwxwxwxwwWfvwfxwwwxwhwwwwvwwxxxxxwwfvfewwwwwwwwwwxxwwhgvggwwxgvwwgwxhxwxwwxwwwwwxwfwxvgwhwwgfgvvwxgwwwvwxxxxwxwxwxwwxxwwwwwwwfwvwVffgwwwheWvvwwwgwvfwfwxxwwwxwwgwxwwwwwxxgxxwwxhxxgwxwwwxxwwwwwxxxxwwwxffwvwxwwwwgvwwwxwxgggvvwhwxwwwwxwwwvffvvxwfggffxvgwvwwwvwwwwxwwwwwxgfhwgvhgwwwfwvwwwvgwvgvwxwwwwwvwwwvxwwwwwwxhffwwgevwgwwwfgvuvwxwgwvvfwgfvwvwwwwvwgxgwgvwxxwwwxwwvwwvwwwwwvwwgwhwvwvwwxwwwwwwxhwwwvwwwhfgfwvxwgwfwwgwwgwgvfwwwxwwwwxgxwgxggVgvvgwfgvfwgwhhwwwwgwvwwwwwxwwwxwwwxVhuvvexvxwwfgffgvwwvvwfvwgwwwwgvwxwxhxvvwvggxwwxwgxvvvfgvvwvffvfgwVgvEwfxvfwfegegffwwwwxvwwvwvwggvxwwvgvxwwWwvfwwxxwvwgwfxvvwvxwxwghvvxvwxwvwfwvwxgvfggwxwwwvgxvwgggVvVvfxxwwxWevwgwvxwwgfgfwwwwxwgwwwwwfWewgwgvwhwwwxvgwgvgvwwwgvwwvwwhwxwfxwggvwgwwwwxWevwgwwgfvwfgfeVvwwwwgfgfwwwwwgfwwfwwwwgwfvffeVvwVffvxvfvvwwvfWewgwgvwgwvwwfwwfwgvvfVfevwwwwwfwwwgvwwfvwwhwwfwwgwwwhwwwwxfwwwwgwvfwwwwgvfhVffggfgvgvxxwwwwwwwgwgWggwgfvwwfvwfwwgxxwhhwxxwwwwwxwwwwvvxghvxwgvvwVewUvwxgxwgwwwxhxxhxwxwvfwghwxxwwwxwfwffxwfUvWevgTvwVvfwfgfefvewhvxxwxwwwwvwwxwwwwwxvwgwwewwvwxwhvxwwgvwfxxwwxwwwwxffwgfxxxxwhfwwwwhwgVffWxwvwhwwxgfhxxxwxwvwgwxwwwwwxwxxgvvxwgwwwwwxwwxwvxxwwwhwwwwwwwxwwwxgfgfwwvfvvvffhvwvwvvwgwxwwwwvwwwvwxwwgwwvVgvvwgvvgvwgwwwgvwwwwxfwxwwwwwwvvfgvwvwgxhvxwggxxwwwwxwxwwwxxxwxvwwwwvwwwwgfvwwgwwwvwxxwuvhwwfvgvgfvvvxwgwgxvwwgwvgWwwvxwxwxxwwhvhwxwwwwwfwvwwwgxwvxggwgwxwwxxxwvxwuvwfggvfVvvwVffuWwWfvvwfgvwwffwgwgwwvvfgVftwwffuvvvvvfwvwvfWfvwwwwwwwwvwfwwwwwwwffVuwfvwvwwwwewhggfwhwvwffvwgvwwwwwwvxgwvgwwvgwwxwvxVfgwggVfgVxwgwxvxgVwgwgwvwvfgewfwwwggvgvwvvvwfguwfxwwgwwwwvvgwwwvvwwgvvwwwfwwgwvggvgwwfxwwwghvfVgvgvwfffevvVdwvfwuVfuxfxfffxwgfvggvvvvvggfVTwvVgUhfUwffwgvwUfugwgvfvwhwfwgwwggvgvfvEewvfgwwwwwvfwwWgewfvUvxggwwffxggwwwwwfggxwgvvvvvfvwwwwfwgeugfufVfguggvwxgwgvVEwfvffffuVfVeveffffwgvwwfVvfffewevvvfgfgwwwhgwwwwffegfwgvvffwxvwwwgwvvwgWewvvfwwgUwwvwwVugfgfgvvwwVfgvwfvwgevgVEgVugVVwffufffeggffvUwvVVffWvfwfvfuwfufvvVgVvVuegvvgwvfvufgfgVVvvgfgvgvwwwvgfwgwwwvggvvggwwwvwgwfgWffvwWeffvfgUfgwwvvgvffwwvggvwwfffeGfevfUeffeVfgdfUVfefevvfWvefwggfwgeedfggwwvVwgfggVffufgWfffwfwgwggfWwwggvWVffgfeWwgwgfvufVfWfefvgvfvwgffwgvffUTWVufveVffVevffefgfffVvvfVfwWgfevfwegffvegvWfvUfdVWfwfvfvufwfvvgvvfUEVfgvwwfgffwfvwwvgwggWfwhwfwvgggVfgwfFgVVgfFUuvwvuvwffvwwffvfvVvUVgtUVfffffEUedUVUfevfWfvgvvfffffevevfvUeufgvgwgwgwvwWTUFVeeeVffwWffuvffgfwefffevvfggevgfeFVfVgeUffvvVUefeffggewg6VdcEtfffgffeeeEfeeeVefVvfEffugefwgevewevfUfVefuVfuffffwvVgvvvgfvfvfVeUfVfffvWvwgfwvvwwwwgvvwwvvwffVfVUdVfVVeffeWedwgffgfgfwfvwwwgwgfXggfxvwwwhwwwwwgvxwxwwvvggwwwxgxwvwwxxwwxwwwwwwwwfwwggwwwxxgxwxwVwwvwWwfwfwwwgggvwfggvghxwwvxvvfwgvvwgwvvwvgvxvwgvwwgvwwwwwwgwgvwvgvgvwvvwwwwwxgvgvwxwvwvwxwwxfxxggwxwxxwwwwxvgwvwgfwvvVwggwWwwwvxwxvgxwvvfvVufwfggWfVdVEvVefvVugffgvgffvgfwfvwggffgwwvwxfwwgvwgevVfgVffguwgwffVvvwgfxggwfWwgvVvwwvggUvfvVvwVvwhfffwfvwvwgffvTeGeGvvgffVfUvVUeefVffwfffufgvUfgfvfvvwffvewGeGevgfggggwwvfggfvvgeffUevfvgfgwgvxwgggwwfwfgwwwwwwgwefevWUvvfWffWffVwwffwufvvfuvwvwvfvwgvwwwwxvwwwwwwxwxxwwwwxwvvwwxwgxvxwwxxwwxxgwwxxwwxxwwwwxvxwvggwwwwuwwvgwwvvwwwwvwwwwwxxwwvgwvwwwvwwwgwxwwwvgwwwwvhwwvwwwxwxwxwwgwwwwwxwwxwxgwwwwwxxhwxwwxwxxvwxwfvwwwfxvvwxwwwwxxwwxwwgwwwxxhgwwvwfvgwxvwwxxhwvwwgwxwxxxxwxgwwwgwwwvxxwwxxwhxxxvwwwwwuvwgwwwwwwwwfwvvwxxxvwvgfvVwfwwwwgwxwwwvwwwwwxvwwxwxxwvgvwgvgggwwwxxwwxwfwxwxwxxvxxwxwwxwxxxxxvwxggxxxhghwwxhxxwwxxwwxgwvwwwvvwgwwvwggvwwwgwvgwwwxwwugwxwwwvwwwvgwvfwvvvvgwwvxxwwvwwgwwvwevggwwvfwwwwvvwwwwxxwUgfeWgfwfwvwgfxwgwwvgxwgvwwxwxvwxwwfvvgwfggwwwwvxgxxwwxxwgwugxgwwvwgggwgwwxwwwwxxwwvxwwvwxgvwvgwwgwvgwwwwwwwwxwgxgxwVgffvfgFtefWfVdfFefVfewvffwgfgwvdfffvgvegwfxwgfwwwffUffffffVwggvfegffvgfVfevvgwwvwvgwgfvwggffvwwwvwefgfvwwfgfuffwwvgwffffVfffFUfeVVeefevgffwvdefefffegvvfgwvfgfvwwwwwgVVffvgwvvvgwgvwwgwwwxgwwgevVfgffuvvfggweffffufwvffggfvwwvwwggeVfgfVfvvWgwxwwxwvwgwwwxvvwwwwwwwxgvvxwwwwgwwwxwwxwwwwwwwwwwwwwxxwwwwwvwgxwwvwwwwgfwwwwwwxgwwvwwvxwgwwfwwwfwvwwwgwxwfwwwwwwwwfwwwvxwwfvwwxwxwwwvgvxvgwwxwfwvxxwxxwwwxwwxwgwwwxwwwxwxxwwwxwxwwwxxxwvwwgwxwwfgwwwwwgwwgwwwwwvwwwwxwfwwwvgggwwxxwxxwwwxwwwgwwgwwxxgwwwwxxvwxwfhxwwwhvwwwwwfwhwwwgwggwwwxfwhvvwwwvxwwggwvxwwvwgwwwwwwwwwwhwwwwwwfwwwwxwgwxwvwwwxwwwwwwvxwwxxgxxwwwfwwgwxvwwwwwvvwggfxwwxxwxwwwggwwwwwwwwvgwwxwwwvvwwvwwggwwwwfwwgwuxvgxvvWwvwwwvxvwxvwvwfgvwwwvwWhvwwwggvwwvwgwxwgvggwwvwwvwgvwwvwwvwgvwgwvgwxwgfwfwffgvvwvwwvwvgwvwfvfhvxgwvxvwgvuWgfwwxwvwgvguwwwxwvwvgwwgvvVgvwwwgxgvWwxwwwwggvwwgvgwwwgwgWwvgwffwgggwwxwxxwxxwwvgfwwwvVwUggwvgvgvggwvfgwwwgwwwghwwwwwgvfgwvwwwwgxwfxgwwwgwvvxgwvwwwxxwwwgwxwwvgxxwgwwwwggwwwfgvvxxwfwwvgwgwwwvUwWvwvugfwgwfgvvwvgwwfvffwxwwwgvwfxwxwfwWvgwewfwxvwwgvxvwvwgvffwwwvwggwwgwwxwgwwwwgwwwwvwxxwfgvgfwgvwgwwgwvgxxwhxwgwwxwvhwvwxhgvgxwvvwxwwvwwwwwgwwwwwwwwwwgwwxwxwwwwwwwwwvvwvhxwxwwvwwxwwwvwxhhwhgwggwwfwxwwwxwwgvgwwvwwgxfwwwgwwvwwwwwfwgwwwxxwwwgxwhwxwggwxwwxxxxwggxvwvfhvwwwhxxxwxwwgwvxwwwwwwwwhvgvvxxwxxwwwwgwwvxgxwwwwwwggwxwvwwwwxxwwwvxwwwwwvxxwwxwxwwwwxwwwgxxxwwvwgwwwwgwwxwgvgwgwvwwwwwwvwxwwwgwvhVwgvwwfwwwwgxwwgwwvwgvxwwxwxxwwhvwxfggwxfwwxwxwwxwvwxwwxxwwxwxxwxwwwgwxwwvwxwwfwwgwgwwxxwwvxwwwwwxwwwwwwwggwvgwgvwwwvxxxvwxvhvvfwvvwxxvvgwwvxxwxwwvxxwgwxxwwxxwxxxggvvgugffwvwvwvwfwffgvwwgvfxfvggggwwgvgvfvxxwvwxvwgxgwvwvwggvxvwgwfgvwwwwfvwwxwfwgxgwwvxwfwwwwwxxwxvhggxwfvwwgvwvxxxxwxwwuvUffWgfVgvfugfTvfffffeggWwgvfuwvvfvgwgfwvwxwwgxxwwwwwwwvfwvwgwvvwwwfvfvuwwwvfvxwwhffwwfvwggxggffwfguwgvwwvvvwwvwewvuffeffffgegvfwvvwgWvgevwvvwwgvwvwwwgvwfvwvgffwwgwwwfgvwwfvwwwhwwwwfwwvvxwvwwgwwvwwwwgwwgfgfvgwfvgwwwfwVfvgggwwwgvggffwwvwxwwwgwwwwfxxwwwwxgwwwwxwxwwxxwxxgwwwwxwxxgwwgwwwgwxwwwwwwxvvwgwwgwwgwwwxwwxwwwwxvVwfffvggvwfwwwwwVxvvwgvwwhwwxwwwxxwvfvwfxgwwvxxxwwfxwwwxwxhxwwwwxxwxgxgwwwvxgfwwwgvwwxxxxxhxxxxwwxwhwvwwfwwwwfgvxwwwggwwvgwxwwgwxxwgxwhwxxxwvwvvwwwvwvwvgxgwwwwwwwwgwxwwgwvvvwwwgxxvwwvwwfhhxwwwWWggfVvwgehggwxwvwfgwVvwvwwgwwwwwxwxwwxhgxgvwwwwvgwwwxwwxwvvxgwwgwwxxgwwwwwwwwwwwxguwggugvxwwxwxwxxgxxwwxwwwwwwwvwwwggwvfwwxgwwhwwxhwvwfwvWxwwwwwxxgwwxwwvggwwwwhgwvhgwgwwwwwwwwxwwwvwgwwwvwwwggwvwgxwxgwwwvxwvggwfwfewvvgwwwugvggvvxuxwwxWwvwfwvggvxwwgfwfwffxfhwwvwghgvVwvwwgwwwgwwvwwwxwwwwxwvxvxfxwxwWfwffwvgwwwwwwgxxwxwwxWwwgvxwwgwwgxgwgwgvwwwvwvgwwhwwwwxxwxwwxxwxxwvvvgvwgwwvwwwxwwwxgwwxwxwwwwxwwxwwwwwhwxwwfxwgwegwvgvgugfwwwvwegffvwvvwwwwxxgwwwhwvgwwhvvwvwfwxvxwwvwwwvwwxwxxxvwwxwwxwwwhwwwxgwhwwhfxgwwhwwhgwxwxwghxwhwxwwxwvwwwwvwwwfhwwxwxxvwwwwgwwwxxwxxwwgvwvvgwwgwwwxxvwgwwvgwwxwwwwvwfwwwggwwwwwwwwghxwwwwfggfwvvwgeggghwwvhwfvwwfwwwwvwwxwwxwuxwegwhvwwhwwxwffwxwgwwxwhwwxxwxxxvwwhwufhfwwgwwvwwwxwwwwxgxvwvxwwxwwwhwwfgvgwgfwvgwxwxwwxxwwxxxfwwwvwxvwfxwxwwwwwwxwwwwxgWvgwgvwvxwvwwgwwxwxWwgUefwUgvgwWvgwwxhvWwvwwwgwwgxwxxwwgwhfgwvxvwwhwxvwvwwxwvwxvwxxwxvxxxhwfwvxwgwvxvggwhwwvwhwxxwwxhwxhggwwwvvwgwgwwxwvvwgxwgwwwwxhxwwxwxwvwwwwwwxwwxwVVwfGvwvfVfwgfegfgufggwgVvvwfwxgffvwgVvvvufewwwwwgfvfgwwwwfuvVwwgggwwwwwVfgvgfggvfffxvwVfvgvwwxuwfefwgvwwwwwgvwxgwwwwwxwxfevwwwfgefgfwwfwwwwhwwwxwwgwwwwwvwwwwxfwhvwgvwwwwwwvggwxfwxwxwvwxwwwwwwwwxxxgwxwwwwwwwwwxwwwwwwwwwxgwwwxwxxwwwwwwxwxxwwwwwxwvwgwgwvwxwxwwwwwwggvxwwwvwwwwwwwwgwwxwwwwxwxxwxgxwwwwxxwxxwwwgwwwwwwxwwgwwwxwwhwgwxwhwwxwwwxwwxwxwwwwwwwwwxwwgvwvwwwvhggfgxxxgxwwwwwxxxwvghwwwwwwwwgxgxwwwwwvwwwgwwxxxwxxwwwwwxwwwxwwwwwwgwgwfwwgwwgwwwwwwwgwwxwwgwwwgwwwwwgwgwwwgxwwxxxwgwwwfwxxxxwwwwwxwwxwwwxxwwxxwwxwxggwwvwwwxwwxwwwwvwxwwxwwvxgxgwgwggwvvvwwwwxwhwxwgvwwvwwwwxwwwxxwhghwwgwwwwwghvhwwwwwvwwwvwwwxwwfwxxxwwvwwxwwwxwgwwwwwwwvWufgugwwgwvvwfVwwwwvwwwxvwwxwxwvwxxwvwvxxxxwwxwvwwwxwxxwwxhvwwxwxwxxwfwwxxvggwgwvgwggwwwxwwxwxxxwgwwwwxvewwgvvwwvwwwwwwgwxxxWvwxwfgwxwxwvvggvxwwwwwwwvwwwwxvgvwvxwwwxwwvewwvfgwvwxfgwwgxgexwwwhwwvwwwhfvwfffVvfwWvvfgwxfvfwwwwwWvwwwfgwwwwwfvgfvwwwgwwwwgwvvwwxwwwuwwhvvgvxwwwwwxwwhwwewggvvwggggwwwwwwwwxwxwxwwxwwwwwwwwwuwfwwwgxfwwfwwgwwwvwwwwxxxxgxwwxwxfwwwwxgwvwfvwwwwwwwwwwwwfgvwxxwwwgwxxwwwwwxxxwwxxwwwwgvWvWvwgvwwwwxfwvhggwwwwvwwxxwxxxgwwxxxgvhwxwwxxwwwvwxwwwwwwwwwxxwwhwwwwwwwwgvxwwgvwgwhwwwwxwwxwwwgwwvvwxwwgwwwxgwwwwxxxxwhvwwxxhwwwwxxwxwxwwwwwwwvwwwwxxwwxwwwwwvfvvgwwgwfwwwwwgvwwxwgwxvwxwwfgwgwvwvwvgwxvwwvgwwgvwwgvwwwwwvxwwwvwgvvwgwgvxwwfgvwwwxwxvvxwwwwwwwxxfxwwwwwwvxwwwwwgfgfxwgwxwwwwwxwwxxwggxwvfwfwwhwwwwwxxgxwwfwxwwwxhgvgvwxwwxwwgwvwwwwvwwxgxwxxwwwwhgwxwwvffvwwvwwwfewvwwguwwgwwxWuwwvVuVgwgvhwgwvxfgvwwwwwwfwvwwwwxhwwwxvgwgfwghhgwxwxxxwwwwwwwgwwgwwwwggwwwwwwwxwvxvwhwvwvgggfxgghggwwwwxwwxwwxwgwwvgwgwfwxvwvwxhvxxwwhxvwwgxxxwwvgxwxwwwwxwvvvxwwwfwwvwwvxgwwwwwwwxwvfxwvgVwxwvfwvwwfvwggxwwgwwwfwgfVfVvWwewWwfwwghfwvgwvfwwgvwwfwxwwwwwfwgewfgwgwwwwwwgwwwxwwvhvvwwwwwwvwvwwwxwxwxwgvwugvwwvvWgfwwxwwwwwxwwwwwvxhwfffVfffVfUeVSTVfUffUUUdvwggWwweVVxfwwwwfvxwwffexwwxwwgfVvgvfffvffUffUUUtwgeTvwfVfvgvfvxwwgevwgVffwvuvgVfvwgwwfwwgeefeeefVVdwfgvfeFUUewvffvUfgeVfgfvfgvvfwgwwvfwwVfuvgVfuwgfgfwgfffvwwwwgvfwgVfvwgwvwhvvwgvgggVfgvfefgwfgwvgfffVfTUUvwgffwwwfVgguVwVvwvwwwwvwgvwxfwwwfwwvwwugvxgugwgwvvwwwwgwvgwxwvvwwwwgwwwwwgwwwvwgwfuwgggffvwvgwggvgvwwffwvwvxhwwwwgwwfvwvwgwuxgwfxvfwwxvvvwwwfwuwvgguwwfvwwvfvvwwwvxwvxfgvwfVvwwwwwwxwvwgwwgwxwgwxxwggxxwgwxwwwgwwhgvwfwwwwfwxwgxwgxgwwwwgguwgWvwWwwxgvwwwwwwwwvwvwgwgwwwwguvgvvwvwwwwwwxhxxwwwwgwwggwwwwwvwwwvwgxwuwwgVfwWwffwvfwggfwhvugwvwggwxxwfggfvvvvgfggvgxgfvgwwvgvwhwgwwfvwvvwwgvfxvwwwwwwvwxgvvwwwvwwhxxwgxwwgwxwwgwvvwwvwwwwvvwvgVxxggwgwwvvwvwgvgwwwvvxwwfVwwvwwvVwvwwwggwwwgfvgvwwwfwwvgvgwugfxwwvwxwhwwwwwwwwffwwwvxggfgvwfwwhfffwfwwwwhfwwwgwwwwgwvfwggwhwvgvxwuwwvgXwfxffwvwwvgUwUwwwfwwuwgvwhwvgvwwwwwwwwwgfwfgxvggggvvfxwvwwwgvwvwwwwwwgvxwuwxfwfwxwwwWvfxgfwwwwgwwwwfwwwwwwWwwfwwxwwwwwgwwgxgvwwxwwgvwwvwwwwwwwxhwgvwwwgwwwwxwwwxxwxwvwwwwwwwwfwwwwwwhxvgwwwhgwwwvwwxgwwgfwxvwwxwxwxwwwgvgwvhfwfvgvgvwxwwwwgxwwxxwvxwwwwwgwvhhwxwwwxvhvvwwwwwwxwxwwwwwwvwwwwxwwxhwggghgwxxgwwwxwwxwwxxwhxwxwgwfwggwwwgvwgwwgvvvwgvvvwwvvwwvwvvvwwwvwvgwxwwwhwwwgfgfvggwwvwvwgggwvhxwwgwefvwgwgfwffvgwhwVvwxwxwwwwfwfwewfvwfvwwwgwffwxwgwwgggvwwwwvwvwvgwwUwfxwwxwwwwhhvfvwwwwwwwwgwxgwgwhwwwxxxwwxgwwxwwwwuwuwwevwxwgwwfvwwgxvvwwvxwgvwwgggwhvwxwwgvfwwvfwwgwwvwgwxwwwwwvwwwwxwwvvwwwgwxxwwwwfgvwfwwwwfvxwwfwhwevvvWvfwwwUggggfwwhwgvvwwgfwwwxxxVfvvwewegVfwgvwvgvfgwgwgwvwwfwxvwvwvwvgxwgvvwxfwvxgwwggwuvwxwwwwwvxwwgwgxwxwwwwxwwwxwvwwwwwgegfwffwwwwggwwgwwwfwwghwfhwxvvwwfwgfvvwxwfgwvwxxwgwwwfvwfvxwwwxwxwxwwwwggwwwxxwwwxwwwwwgvvffetvgvwwgwvgefgggfVgwwwxwwwwwwwvgfVvvfvwwwwwgwwwwxxxxfwwgfevxwwwwgfwwgvwwwvgggWffgvxxwxwvxfVvwwwwwxxwwwwwwhwwxvffefwfvwwwwwxvxwwxwwwwwxwfwxwwgxwwwxxwwwegvwfwfwwvwwxgwvgwfwwxxxxwxwwxwwxgwwwgwfghgwwwfxwhvvxxxwwvwxfxxvxwwwwwwxgwxffgfgvwwgwwguwwwwwwvgwwwwwxwxxxxxxgwgVwhvwvvwwvgxwxvxwvwfvhvgvvwgxwwvxwwxwxxwxwwwvvvwVggvwvgvwwxwwwgwwwxgwwffgffWggwvvvwgxwxgwwwWgxwvwwwwwxwwwwfwwgweVfXfgwvwVxvvvufvggwwwgwwwfwxwgwxxxwwwwwxwgwwwwwwwwgfgfWvuvVwwvvvvvgwwxhgvwWfgwwwgwwwwwwwWvwggvuvwwwgvvvwwxwwxwwgvhwxwwwgwwwwwgwwxwvwwwwwwxxwffggwhgggvgwgwvwvwwwwxwwxwgvwffgVwfgwgwgwhwwgwwxguhvwwwhwwxwwxwgvwfvewxgWvUhvgvgwfXvfwvevvgvgvwwwwfwwxwgwwwwwwwfxwxwwwgwvvgvgfvgfgfgvVwfgffwwVwfgwgwwwguwwwwwvxxwwwwfwgxwgggwwvvwwxwwwwxwwwfxwwwwwggwwwwwxwggwwwwwwwxwxwgvuwvwfvgwwfvhwwwvgfGvvwgwwvfwwvwgvwvwwwgvwwuffgdvgVefgwgwwwfgvwgvwgvwwgwwvfvwwwgfgwgwwwwVewvwffwwVFvffwfgWfgfvUvfvvuwguwhgvvvwwwgfvexgfvfxwwUefwfvgwwfwwwvvfgdvvVevgwgwffvfwhvgvwhfvUevvwgwfwwewwwWwwvwwwwwggwfwwwwVevwwwgfwwewgffghwwwgvvxwffgwwWfwgwgvgvwwvwwxgwgwvwweggwvwgvwwvxxwwwxxwwxxxwwxwxxwvvgxwwwwwxvvfwwgwvwfwxxwxwwwwxwxwwwvwwvhwgvwfvewwvwvwxfwwfwwvwwxwvwwwwxwxwxwxwwwgvvfwwwwvwwxxgwwwxgvwwwwwwwwxwxvwwxxwvwgfwwwwgfwhwhwvwwgxVWgwwwwwvwwuwwvgwwwwxwwwvuwxevgvvvwwxxgwwwwwggwwhWwwwwgvgvwwxvvxwwwxWWgwgvwgWvvvwWwvgwwvguwwvgfwgfwvvxwgwfwwxefvwvwwwvwwwxgwwwuvwffwxwwffwhvwwhfwUVugvwgwvwwwxvwwwwgfgfwwwwvvwhwxvvwffvwwwgxwwhwwwxgwfgwxwvwwwvwgvvhxwwxwgwgwwwvwwwwwwwgggwvwwwwxwwvwwvwwwhhwwvwwwwwwwwvwwgwwvwgvhwvvgfvfvggfvvfgwfwwwvgvxggwfvvvfhhgvwgwwwwwwgwvwxwgwgwwwwwwwxWwggwvxhxvwgfvwwwwwvwxxwwwxwwwfvwwvwwwwwwWvvfvwhvwvwxhgxwwwvwxgfwwxwgfhWwwwvvwwvxwwwvvwwwwfwwvwvvwegvwgwwwwwwwwwgxxvgwwgwggfwggvwwwwvvwwevxfwvwhvfWwgfwVvfVfwwgfxvvvwfvwwwvwgxwxfffuwufvWgfwwgexvfvfgwgwwgxwvwwwuwfgvgfwgwvWfuwwfvwxWwwVffgvfwwxwvwwgwgwwwwwvggvwgwwwfvwwwwwwuwufvWwvvwwwwwvxgvfwwwggwgvvwfwwvxwgvhwxwgggwgvwvwggwxwxwxwwwwvwvwwwxvxwwwvwwwwwwxwwxxgwwxwvwxwwgwwgwwxwxwwxwvwxwwwwwwxwwxvxgwwxvgwwgwwwwwwvwwvwwwwwxwwwwxxwwxwwwwwwxwgxwwgwxwwxwwvwxwwwxwwxwgwxwgwwwwwwxwwgwwwwwwwgwvwwwwwwxhwwgvggxwwfvvgwwgwgggfwVwwvwwwvwvgxvgvwxxxwgxwwxwwwfvwgwvhwvgxwgfVgvgvwwwwxwwfwwwxwwvxwwwwxwxgwwwwvxwwvwwvvvgggwwgwwwwwgwwvwwwwwgxvhwwwwvwwgWvxwwvwxwxxxwfxwwggwwvwgvwwxwxwwwwwhwwwwgvwwwwwhgwwwwxwwwwwwwgwwvwxwvvfwwwgwgwvwhhwvwwwgwfvgxvwvvvxXwhwwwvwvwhvvvwwwxhxwwwvgwfggwwwvhgwffXvvwwwwwwwwwvxwwwwxvfwwwgfwwwxwwwWwvvgwwguwgwwwwwwwvwfwvwvwwvhgwwvvwvwwguggwwwwwxxwwwvwwwwwwwwvfxwwwwwwvxxxxwwxxvwwwxwfxhwwwgwwgwwwvggwwwwwwwwvwwwxwwgggwwwweuwwwwxwgxgvwxwxxwxgxwxgVwwWwwwwgvwhwxwwwwxwwwwwwwfwwwvwxwxgwgwgwweewwwgfwwwgfvvgwwfwhfxwgwxwggwvffwwwvwhgvwwwwvwwwwwwwVwwWvwwwwgvwgfwgwgfwwhwgfvvwwwgvwwxwwvwwwwwfwwfwwwwxgwwwhwwxwwvgwwgwwxwgwwwwwwwgvgwwwwwwwwwwwxwwwwwwgvxwwgwwwxfwwfgwwwgwwxwwvwxxxwwwxwxwxwxwxwfwgxfxwwgvwwvgwwgwwwwwwwxwxhgwwxwfwwxwwwxxwxwewWvxwwgvwvwwwwwwgvwfwxfwvwwxwwxxxwxwwwvwxvwhwwxwxwwvwwwwwxwwxwxxxwwwwwxwgvwwwgvwwwgwwwwhwwwwwwwwwghwwwwxvvwxgwwxwxxwxxwxfwhwwxxwxwwxxxwwwxxxwwwxxwwxxxwvvvxwwvwwhfwwxvwgxwwxxwxxxwwggwvvxwwxvwwxwwwvgwwwgwxgwvxwwwwwgfvvxwgfwwwwxvwxxwwwwxxwwxxwwxxvwvwwfxxvwwwwvxwwwxwwxwxxhwxwwwwwvwwxwwhxxwvwwxxxwxxwxwxwwxxwxwwxwwxxvwwwhxwwwwxhwwxvgwfwwwwgvxvwwfvwwvwvxwvxxwfwevWwwwggfwvwwgwwwwxwwwvwwwwxxxwwxwxwgvgfwxhgvwwwwwhxhwvgwwwhwwxwwwhwwwwxhgwgwwwwwxgwwwwgwwwwwvxwwwwxxvvgwfgxwwwwwwgwxwwvwfxgwwwgwwwwwwwwxxwwwwwwwgwwvwwwwwgxwwwfwwwxvvwwwvVvwgggugwvwfwwwxgwfwvxxxggufVvwvwgvwfgwvfxfwvfwxxwfwwwwwwwgvfgwgWvfewwwwggvwgwwwwwvwwwwwwwgwvwwgwwvwwgwwwhxgvwxwwwwwvfvvvwwvwggvwwxwvgwwxwwwwwxwxwwwwffgWeVgvfefgfxxwwhwwxxgwwwwxwwxwwxfwwwwwwwwwwwwfgfwvxwwwwfvfvwxxwwwxxwxwxvwxxwwwwwwwwgvwwgffffvwwwfgwUvvwwwhvgwwwfwwwxxxwxwwfwwxvvwwwwxwxwwwxwxxwwwwwwwwwwxwwwxwwwwwwfffgvwwvwwwwwvxwwwwgwwgwwwfxwxwwwxwwwwwwwxwxwxwxwwwwwwwxwwxwwwfxwxwxxxwgvwxwwwxvvwgwwvxwwwwwwxwgxwgwfvwwwwwhvwwfwwwgwwwwwwwwwxgvxwxwgxwgwxgxxxhfwgwwxxwwwwwwwwxwwwxwwgxwwwwxwxwwxvwxwwxwxxxwwxxgwxxwwwwwwxwwgwvwwgfxwvvgwggvwvwuhwvwxxwxwwgwwwgwwvfvwwwxxwwwwvvwgwwwvwwwwvuhwwvvwwvwwvwwwgwwgwwwxxwwwgvfgggwwfguwgewWvwwvwwwvxhvwgwwwwvwwfgvwwwwwwwwwgwxwvgwwwwxwxxvvwxwxxwwwxfgwwgwwwxwwgfwwwvvwwwwvwwwvwwwgwwgwgxwwwwvvvwwwwxxgxwwwgwwfgwwgwwvgegwwfxwxfwwfvgvVuwwwvxwwwwwxwwvwgwgwwwwwgegxwgfxwfwwvwgwgwfwvwwwwwgvgwwwvgwvgwxvgewwgwwwwgwwgwfwgwwwwxwwgggwwxfwvfvgvWewxwgwwwwgwwwwwgvvwwwxwfwwwgwwgwwwwwwxwgewwwhfxgvwvgfwwgwvwwxwwwwwwvwxgwwxgvvwwwwxwxhwxwwgwwxwvggvgwxgxvxwwxxxxvgxwwwwwxwwwwxwvwwwgwxwwwgwvwxxxwwwwwwxwwxxwwxxxwxwwxgvgwwwwwwwvxgwwwwwwwgwwgxgwwwxwgwwwwxxfgxwwwwwwvxxwxxwxwwwwwwwwwxwwwwgwvwwwwwwwwwwxwwwwwwxwwwwwxxwgwwvvgwwwwwwwxwxwwwwgwvhwwvvwhwwxxwwwgwwwvvwwwwxxgxwgwwwxwgxwwwvvxwxwwwwwxwwwwwwwvwwwwwxvwwxwwvgwwvwwwgwgvvvwwwgwxvwgwwwwwxwgwwwwvwxwgwwwvvwwxfxwvwwwhwxvvwwwxxwgxxxwxxwwwvvwwwxwwwwwvvwwwwxwwwwwwwvvgwwwxwwxhwvwvwwxvfvwwvwfxVwwgxgvwxgwwwgwwwwwwgwgwgwxwgvfwgwvwvwvwxvwvWvwxgwwwxwwwwwwwwwwwfgvvwxwwwxxwwfwwwwwgggxgugewVffgwwfwvvfwfwgvwwgfwvgwwwwgfwxwwvwwguggwvvxwgvxgfwwwwxwwwxwwgvwwwwwwwwgfgwwwwxxwwwxgwgvvgwwwvxwwxwgwfgwwgffxvwxxwvvxxwxxxxwwgxhxxxwxwwxxwxxxxxwxwwwggwxwxvvwxwxxxxwvwgwwwxwwwwwxxwxxwwgwgvwwxvwwxwxwwxxwwwwwwwxwxwwwxxxxxwgggfhVVeguffggfffvgWuefVffwvwvwwwfwvwgvvwvffwgwffvwVvfhwewvggwxhwwwwwwgvwwwwwwwgwgwvVuwffewfhvvfeVugVWdgeguefgggfewvEVgwgwggefwgVuffevWVfeVugVVTgehvfffgVfVggVffvwvgfvvfvUfffvgWffvwWVegwVfwvfwfwvvgvfvffvwWfwwwwwgvwfvfgvwvwwxwwwwwgvwgwvfvwvfefgfeUgggffwgwffvwevvvvfhgwwfwwwgvwwvvvWfffvwvffvfeueghuwvwggwwgwwwwwvwvwwwwwwvwgVVveVvTWeXfvfVVvuVvvTgehfueevwVfuwggVgfvvgvwvvgfvfwvvVfgWvegvegfhvvfevvfVvfffVffuwffwvwveffvvfVfvwgffuvVWFvwfwgvfuwgeveffuVVxvwwwwfwhvfvwwvvwwxvgwwwvwwwgvvvgggghffWWeefffvvgWfggewfwghvvwwvwwvfwvwfwgefffvvfVfggUwvwwvfxwgwgwwwwwwwwwgfgvvwwgwxgwwvvVvvfWVegfVwvvuFwuVFWTheVgewvgfVwgfufwwvwffgvgfUfvfwfVvfvVwvfVfUgvfwfvufVfgwVvgwvgvwegfvwTfuewfggvwgfVwgWuVgwfwvewvgfTgfewfVwvxwwwvwwfWVwwwvfgggvggwwvggwvwvwggvgggwwwwwwwxvwvwvgxwhwwwvwwwxgvwgwwvxgwvxgwwxwwwwxwgwwxwwguwvfgvwgwfvwwwfwvvfWffgwfvwggvwvwwxxwxgxxvwwxgwxvwfvwwwgvwwgwwwwgwwwgwwvxwwgwxwxwxwxwwvvwvwwwvvwvggwwgwwfwwgvvgfewfvwwwwwwvwxwwxwwvwxwwxvwwwgwgwffgvUeefffggffuvfwUfgfvvwwvvwfwvwwwfgeffgggvfuvfwVwxwgfwwwwfwwwwwwgwwgvfvwwwwvwxvgvgevWfgUvfvwfvvWdvXewDuUfveevggfewwgWUwgvfgwVvfgvEvwVffuvgewgffUuffweffwgefuvvgegvgvwwVfwwfEuvVvvfwggfevwfWfwgvgwwfvggfUfvfffwwwwwwwgfuVgwwgfxxvvgvvgwgwvfwgwwwvwgvggwwwwgvvhwwwwwhvgggvwxwwwgxwxwxwwxwwhwwvwxhwwvwwxwxwwxwxxgwWwwwwvwwwvwwwwwvvfwfvvWwffggvvvgwvwvvwwvwgvwxvgvfwvVvgwhvvfvwwwfgwgwfwgxwwwvxwwhwwvwwhvgwxwxwwxwvwvxgwwwxwgwvgvwvvgvhwxwxwwhwwwxxwgwgwwxxvwwwwwwwwwvfwwwwvwuvgxhvvwvgwwwwwghxvwwwvvwwhwwwwwwwwwxfvgxwwwvwwhvgGwggwvxvvfwwwwwgfvfevfUfeWvfvfwgwwwxwwhwwgwwvwfvgvvfwwwffvwvvwVvfwggwwgwwwxhxwghwvgvwwwwwgwwwwvxgwwhwhwwwfWwwvvvvhgwxwwxxwgwwgwwxwwwwgwwwwxwwwwwxwggwgggwwgwvwwxgxwwwwwwvvwhxXwvwwfwfwhwWxvvwwwwwwwxxxhwvwhgwwwxwvggGfvvgwvgVvgwvgwfvfVvfUVegfwffwwgwwwwgwwgWxgwfxgwvgwwgxgvgwgwwgvggwwwwxwwwxhxwwggwwgxwfxgwwwwvwwwvgxwwfwvxwwggvfgvgwvfwwwwwxgwwxwxwwwwwwwxwwvwwwxvxxgfhfvgwghvgfwgwwwwwfxwwfwgwwfevfvwwwwwwggvfvwvwwwhwwgxwwxxwxwwgvwggwwwwwxxhvwgwwwvwxvwwvwwwfwwwggfwwWvggvwwwwwwwwvwgfgvwwvwwvwugvwwgfwxwgwvgGeVVffwVvvwwwwwWUVfgvvgwfwwWwwgggwgwwwwggfgwfwwgwvwwvxwwvggevfwVgwgwwxwwwewfwvwffwfvxwgfwgffwwhgevewwxwggxwwwgwwfggvwwwgwwfvwwfhwgwwwxxwwwwvxvvwggfvwvWgxwgwvgUvwwwgfwfvvwvwwVvWvgxwxwwvwwwewvwvvwxfvwgfwfwwwwvwvgVvgwgwwvvwxewvwwvgwwwwfvWvXwwwvwxewuwwvgfwxxgwwfwhwwwvwxwxxgwwxwgwxfgvxhgfgfuvvvwvfWggvxwwghwwwvxxgwfxxwxxvvvwwgwfhwvgwhuvwfwxgxxwxwfggewvwwgWvggvvwfgwwwwwVtfgewEfgVwewuwwgffuvgwxwwgwhWggvvfvxwgwxwVgggwwvxvwfgvwwwwhxgXwfwwgxxxwgvvfvxwxgwxvWgfuwwewggxwwwwwvgffxgvwwwxwxgwWwwwvwhgxvvggvwfwwgggxwwwvXwwwgxwhgwvhwwVfwfxgfgvhgwwwxefwvgxgwxwwwfwwwwwwwvuwgxfwwwgfgvgwwgVwvgwWugvWgggwwwfwuWxgvwxxfgwwgvghgwvxwvgwgvwwwwvfWwugwwwxwwufwvwgwxvwvgVxugwwwwhwwtWwuwgvgvevwwvfvgxwWwvwgwwwgwxWwhwfvwghwUwfgvvwwvfwfxwwwfwwwwwwwvvfxwwvgvwwvffxvghXugvghgwgxwgvgvfffvvwwggvvwwvwhvfwvwwwfgvwgvvewUgwevwwggvXvwXwwwfhvwegvgvewvgWvxhvfwfwfwwwwffWvwgwxwvwwwfwwvgfwwwwxffWuwWwwwfxwuwUwwtffVwfhwwwxwfffhfwWwwwwwwxwwWwwwwGwwwvWhwvwxvegfgwgvwhghVhgvwhgwwwwwxwwghwvgwvvxwwgwhgxwvyxvvvxggwxxxwwwwwvxwfuvwgvvwgghvwwwgvuuwvVWWgfffvwwvvuvuxgwwwwwwwggwvvfxxwvwuwfgWggwgvwggwvfwwwwvwxxwggwwwwwxxwvvvvwfwhxwxwWgwugvxgxwxvvhwvwVwvvxwwgxwwWwwvfgxgfvWfewfvwwvWvgwvwxwwxwvwxgwwxwxxwexfvwwvVvgwwwVxVwgxwfxvwwwgfggxxvxggvwgwgwwugwgwwwVwVgwgtguVfvuwwgffvFxwgwwwfxwwVvvvffxfwfwvvWvgfwwwgfgfwvwxwwwwgugwvwxwwxgvfwUxwgwxwgvwvWvvwuwwggwxwwfVxffxvfwwwgwxxwwwwfwvwfxgvvgVvvfffwVewgfgvfwwVffvvwwuwfwwfvwvwwwvgfwwffhwwwgfwfwwxvvvvuvvwvwwwgggwxhwwgGfffgffvwwvvvVwwwefUefVfeTeVWefVgwvwgVvwwgfffewwedwwwfvVxwefefgvfeVvffvfWvgvwgevwwgwvffxeexwxffwgwwvwgeugwvgfwwwgfgwgVgVvvggvwgwhwwwwwwwwwwwgwvwvwwwwxvwvwwghgwWvffffvwwfgvwwffgwvwvffvwwvgvwwxffvwwvfvwwffwxwwfffwwxwwwwwwwwwwwwwhhvwhgwxwgfwghffxwwxwwwWffvxwgwwwwgfvvgwwwwwwgvgwwwgvghgwhwwhwgwfWwwWfwwwwwgefgffwwfvvwwhwwvwgxwwwwwwgfvvwwwxwwwwfvgwwwgvwwwwwwwwgwwwwfwvxgxfvgwwxxuxwxwwwxwgwwvwwwwwwxxwxwwwwggwwxxxxwwwxwwxwwxxhwxwwwwwgxgwvgwwvwwfwwwwxxfvvwwfwwvwfxxxwhwwwwwwwxfwwfwwwwwxxxfgvwfwwvwwfxxxwwxxwwxxwxwwwwxwvvwwxxwgfxgwwwxxgxwxxxxwxxxxxxxxxwwwwgwwwwxxxxwxwxgwxfxwxwwwwvvwwvwwwhwwwwgvvuvvgVgvVwwwwgwgwwwwvwgwwgwvwwgvwwwgxwfwwxxxggxwwwxhxxxwvxwxxwxwwxwghwhwvgxxvwvwgwxwwxwxxwwhwwwwxwhwwwwwwggvgvwwwfgvvwwvxwwwxvgwwwwgwwxwvvwwvgwvggvxwwxvwwwxgwwhgggvxwwwwwwgwgwwxxwgwwwvwvvgwvwggwvffvfVvgwwwgwvgwgxxvgwwwvwvggvvwuwguxxwwwwwvgfvwwvgvwwwxwwvxwxuggwvwgwgvxwwgwugwwwwhwwwwufVegvggvvwwwxwgwhwwwwwvwgwwwxwgxWvfwxxwwfwvvfggwwgvgwfwwwwxvwxwwwwgwxxwxgwwgwgwvwfwwgwxwwxwwfwfxwwwwwwgvwwwfwwwwgvxwwhfgwwwwgfffvfgwVvwwguwwwwwwevwwwfehVvvgwwxwwgwwwvgwvvwwwhwgxwwewwvgwvwvgxwgwvwwvgvwwwhwfwwwwuwfwvfwwvgwewgwxwwwwgxwwwwvwVgwxwxxwgwvgwhwxhwggwwwxxwwwwxwwwwxwxwwxwwxxxwxwxvgwwgxfxxwxxwwxwxgxxwxwxgvwwggwwxwvvwwwhxfvvwgwefwfWgwWfxwwwxwxhxxgwvhgwvwvwgxwwwvwwxgwwwxwwxxxhxwwxxvghwwxwxxxxxvwwwwwxgwwwwwvgwfwwwvwgwxwxwxwwwgwxwwwgwvvwwxwwhvxwgwvwxvwxwwwxxxwxwgwvgwwwxwwwxvwwgwxvwwxwvfvxwvvwwhwwwvwwugfeffggvvwwxxgwxwxwguwwwwxwwwxxwwfvwxwwxxxxvwxhwwxxwwwxvwxwxWwwwvWwwwwxwwwxwxxwwfxxwxwwxwwxfwwwfgwwfwxwwwgwwwvgwwgxghwwgwgwwwwwwxxwvwwwxwwwxwwxxxwwgewwvvwwggvwggvwwwvvgfgVffffVhffvwwvgwxxfewwgfwwfxwxwvvwwgwvwvgfwwwxvwwxvvxggwwxwvwvwvwxvfwxfVgwgwwwxxwwwxwxwwxwwwwwwgffvgefvwwwWfffwwwxwvvwwwwwxxffwwvgffwfxwgggxwgwwxwwwxwwvwwxwwxwxwwxxwwwxwwxgfwwwwvgfgvwvwwwxwfvfvwwgwwwvwwvgwhvvvwwwwxwwwwgwwgwwxgwvvwwwwgxwwwwgwwwwwwfvvwwxwwwwwwxwxwvgvugwvvwwxwwwwgffwwwxvwwwxwxwwwwvwwxxvgffxfvwwwwefgvwwxwwwxwwwhvgwwgwgvwgwwwvgxwxwxwwwxwwwvvvwwwxwwxwwwwfvvxwwwhegwvfxxxgvwgwwxwwwwwwxvvgwwwwxxwxwxxxwwwvwxxxwwwwwxhwgggwwxwwwwwxwuvvggxxxwwvwwwwwwwwxxwwwfwwvWfgfWgggvxgVufxvxwxvwwxxxxxfvvwvwwggvfwxwwvvxwggxfxwwwxxwwgUwwgvwwhwxxxwgwvwwvvUwffwGfuVfvvgxvfghwxwwwwxwgVgVfvwwxvwxgxwgxwvwxwwwwhwxwwwwwxwfwgxwxwwvfVugxxwxwfwwxwvxvewfVwwwxxxwwgvgwxxwwhxwgxwfuhwvwgvwwwxvwwwxxxxwfwwwwgwvwwwvggwwwwwwwwwxwwwvwwxwwwwwxvgwfxvwvxwvggwxgvwgvwgfvgegwwwwwfwwwwgwwwwwxfffxfvwwhwhwwxggwwvwxvxwxwgwxwggwgvwxxwwwfwwwgwwwwxvffwwwvwwwwxwhwwwhwwwwxfwxwgwwwgvvfvggVfwgvwvfvwvvwfwxgvxgwxwvwwfXevhvwfvfvfwxwXegwvgxwwvwxfgvfvxvwvwwwwwxfwwggfwhfwewefvVuwwwwwgfwfvwgfwwffggvVuvwwvwxwwfwggfwvwgvwvvgwwwwgwwxwxwfwwvwwvggfgfwwwwwgvwwfwwTvfxhhwwhvwwwwgfwgwwvwxfwxwwfwggfhwfvgwgwwwwhgggvvgwwgwgwfgwwxwwxggwgwwwwhwvgwvwwwwwggwxgwvwwwwxvgwwwwwwggwggvhfgfVgfwfvwwwwefvxVvgVvgfeffVffwgvgfwvwwwwgvgwwwwwfVxffwwwWvwXvggfgfgvwvguwwwgwWwxwxwwfvwhwgvwwwwguvwfwwVgwgfwwgfwugvvgufwwwwwvwwxwgxwwvwvwgwwwwvgwVwwwvwvgfhfefgggvgWuVvwfgwfwvgvhvwwwwvfvxwhvwwwvggvvVwgwfwgggwwxvgvgxwwVgeguvwggvgvggwxgvVVvfwwgwwfwgWuvvfUgvUffFeUVtefvvvVwvwvwwgevfffggVftvvvfvvwfxwfwwfvfgvfvuwwgwwwvvfwvhvwwwvvwwefuwwwfwvgvwgfvwggwfVvvvvvvuVvggwgwwxwvwwwwgfgvgwwxwgwgggwwwvgfxvVfvwwvgwegfwwvwhwwwgwgwwwwghwwxwwwxgwfwwVgwvgwghwwxxwfwfwwxgfwuwwxvwwwggwxfgefgxwvwgwwfexwgVvvVffvfUVdgefgwwwwwvwfwwgfwwgvVxgwvfgxwwvggvfgfwwfxxwwwwwxwwwvwwvwxwfwvfwwguwwvvwvVfgxggwgfegvgwwgvewwwfxwxwvwvwwgwwwwwwwffuxwfxhvwghffvwwfvwgvgwvwwwxwgvwvufwgfwgvwwfwwvfgwxvwfwwwgwgxwxwwgvwwwwwvvwwwwxwxwuvgxffvwwvwwvwwwwwwgffvWggwwwwwwfgvvwxvwwwhfwwvwgwwfwvxgwwwwwgGVfvVewgfwVVeuwwvggwWvfvwwggVgwgvwwwwwgvvwwwgwwgwgwwggwwgvwgfwVgVvxwwvwvwewfwwwfwxwgwwfgwvgwfwggvggwwwwwvwgvgwwwhgwwwwxfgvfguwVgxgwxgwhxhwwwxxxxwwwxxwxvvwvvhvggvfwwwwweguggvvfwwwfwvVxgvwXwwVwgxvvwxuwwwxffgvWvgwvwwgvVwvgxgvwwVwgxvvwwgvwwxwwvVwfuwwgwxVwgwvgwwvwwwwvwhwwwxwfxgwgwwxxwxwxwwxvwhhgVggvvvvvgwwwvwwgwwxwwwwvwwwxxwvwfvvgXwvgxhxvvgwxvwxvwwxwwwxgWvvgwwuvvvgWwhwfwgvuuuvfWWgggffhhwvwwgvwWgwxwfgguwwwhgvvvgwggxwxwwhggggwxvwwggwwxwwwwvvwxwhgWgvuwwgwxggwwwvvwwvwwwxxvvWvwwghxwvwwWwwhwvxwxwwggwgfwWggwfhvvfwwwwwwhwwwwgvvvwxwxfgwfgfvgwwwwvvgXxuvghvvfwwwwwhfffwfwwfvvwvWwfgwvghgwfgwfWwuugvgfugwuWgfvwWwwuWhffwwwtgwuwWvwxwfgwwvgxwwwuggfvwwgwvgxfwwwwvwxwwxvggwvwwWxwugvhfuvwvwvwxffvwwWwggfhvwxwwwwwGwwWwwVwwxwwwwvwwVhgfgegvhfwvgvwgwvvxwwwgfwwwwgvwvvhvfwwwWwfwhxwhwfvwwvwwxvwwwwgWwgwgvwvwfwhvgvWvuguwewvwefUgwfxwwgwwTfxewwwwuwwgwfgwvgvgfwxvgwUwvgwwgwwevxfwwwwvwxwxwvVwwvxwwXwffwxewvwvwgVvfwwwWghwhwxgwwgwwWghvhxwgxhwwhgfvgfgwvvvfgvwwwfvxxwwwggvwxWvvfwvfgWwgxxvvwhxuvgxgwggwxwvhxguwgwwfuwgvvgwvWgwxwgewdVfvuFgVwwgUXhwvvwgxfwWfgxwguxwvwuxvghvxvfwwwggxxwwghgfgwwvwhWxgggwwgvxwxvWggfvwwxgwWggxgfwwvfwxwwfwvwfwghfwwwwwwwWwgxxwwwxvvxgfvgeufvwffguwwwffxwwwwxwvvwwxgewfvwevguwwVwgevhwggfvwhvvwwwgfwggwfvwfwgwwfWvwedvVwWvggfewWugfxwxwgwgugvwwwwwguxwvxfwvuwfwwxwwggvfvvwgwxWvxwgwwwwvvxgwFvffwwxwggGeWvffuwggwxgfewhggwhfgxxxwwwvgwgxwwwfwxwgxxfVfgvVgfwvwgffvwwwfxwvwfgvwwgevvwwwvwfvfgufVfvgwwwwwxgwfgvggvwwggggWwvfwgwwwGgfffUffwffVefvfgffUVefUfVEfVgVefeewwwwwxxgvfvffvUwgwwfwwwgggffvvVfggwwwwwVefwwwfwwwgVVffvfvwgwwxxVfVvwgwwwwgVFfVfgVffwwwwxwwwwwwwwwwfvwwgwwwwwvwgvwwwgvwgvwwwhxwwxwwxvvwgwxxwwxvhxwwvxwwxxwwxwwwwwwxxwwwxwxxxwwwwxxvwwwxxxwxwxwxwgxxwwwwxxvwwwwxwxwwxwwxvxwwxxXvwggwxwfvwwxxvwwxhwgwwwwwxwxwxwxgvvwwxwwhxwxggwwxwhxwxwxwwwwwwxxwwxwxxwwwgwxxxxwwwggxwwxgwxwxxwwxwwwwxxwwwxvgwxxwwwwwxwwwxvwwvwxwxwxwgxwwwwfwxevwxwhvwwxfwwxwxwvwwxxgxwwwwxwxwvvvwwxvwhxwwgwwxxxhxwwwwwwxggvwwxwwgxwwxwgwwxwxvxwxxwxxvwwvhwxwwxwwwxxgwxxxwxwwwxxwgxxfwwwxwwwvwxgwwvwwvgwwwwwwxgxvggwfgwwxvxwxhwVgwvxwxvxwwhwwxxvgwxxwwxwxwxxwwwwxwgwwgxxvxvxxwxvgxwwwxwxXfWvwVfvfVffgfwwvwvwwgWgvvfwwwewggfvwwwVfwvevVfVvwwgffvwuwgfvwhfgvwwwvfvwwwwwwwfvvvfdwWUfffvevvvedwWUfFvgeffvwFvwvffwwwwWvweffvwfvgvwfvwwfufgfvgvwvwwwFvwvUfwfvvWfvevgvxwwfwwwxVvwuffwwwwGvgefvvwuwwvwvvxwffgwwwxwUvwxhvfwhfggwgfwwgvwwxwxwhwxhfwwwxgvwwvwwxwwwwwxxwwwwxxxwwxvxwwwxwwwwxxvwxwwxwxvxwwxwxwwgwwvvwggwxxwxxxwwwwwwwwxwxwgwxxwvwwXwwfhvwwwvvwxwxwwgwwhwxwwwwvfvwfwvwgxgwvwwhwgwxwxxxgwwwhwxxhvxxwxXgWggfVgfVvfWuvwfefvgvgVggwgvwguvwvfgwwwVfvvvvggwgwwxgeffvwwvwwhfggwwwwfvwgwwwwvfggefwfvvggwfwwduvGeeVgvVfvgvUgwfgvvwwwGWwVfgwgvwgwvgwwxdvvgeuVfgVfvgFgvVguvgggWwwVgxfgvwvgvxFgwfgvvwwwWfgVfvgvgwwgvvgvxwVguvgfgfvvwxwwgvfwggwfwgwvwwwxfVvhWeeVfTveVwvVVeVvvwffvgvgwvfwvwwggwwwWegeVfevfvgwwfFeWVwwfegggVUeVvvvgfvwwgvvwwWffVgVwvewvffvVWEffceTdVVEuffetgWUVffgggcVfFuvfVffffevvxWfwvUgfvwwgwwwVegfvgwvfwfefffwgwwwwvwwwWeffffwvgggdVVFefuugwwwvwvvwWeVffgwgffwxwwggvhfefffWVfwwwgxwwgffwfUVfVVegeuwfvffVgvgfexgvwwvvvfwwwgwwwEvfeefeVUwgwwfUfVtwwfuggffffVvvvUUwwwwvvwweffWfuwfuwVwwvfwwgTefFVU4fVVEgfVVwgefffvggFwgVEwvgfVwwgveVwwevwffgUffwgwVwgufwffvgVwgfgwwvffwwwwwwEffVUvwvgg6fVfEvfefVfffwfxwefffvgwfUvwxwwgvfhfuwwvVVvwgffwwwwwhvgffvwvgfwgwxgwwwxvwxxxwwggwVfwwwwxwfwhgwwhwwwxwhvvwxwwwwwwwwwxwxwxxwhwfvVvwgxwwvvwvwwwfgwwwxXvvwwxwwwggwxxwwxxxvwxwxxxwvwwwwxxxwgvxxwgwxwxwgwvvwxxwwwwwwvwxwxwwwwwvgwwwxwwwfffvfhvhffvwwhfvgwxwwxxwgwgwwxxvhvfefwwgwvgvvhxxhgwwxwxwwvwgwwwwxwwxxwwxwwwwvwwvgvwhvvvwwwvwffgwwgwwwxwwvuvwwwvwwwgvwwxwwwwwwxwvhwwhwvwwwgwwvwwwxhwwwwfgwxwwgwfwvwwwvvfwgvwwvwwwwxffvvwwwwwwwwwxwwxwwvwwwwxwwgxfvfgfVwvffgfxvfxvwwxwvwvwwwhwwgwvefvfvgwgwgwvXhwxvxgwwxffgfxwfwgwwgxwwwgvgwwwwvvfwvfwufWwfhfeguggwwgwfvfgxwwwEwvwwfwwvxfgvwwwgxxxwwgwfgwwggwwxwwfwvvwwxwvwxwggvwwwwgfwgxfxfeguwvwfwvggwgvgwwwxwwvwxgwgghvfwgwwvwhgvvwgwwwxwfwwwwwwgvwvggvgvwggwwvwxwwxwwwvwwggvgfwwfwwwwfwxwwxwwwwwvggvwxfwwgfgfeVwgfgVvfwfvxVvgffVVVfwfvfvuvfgwwgwwVfwvfVvwvwevwwwgfwfwfwfefwwwwfuwwwwxfwwvWfgwfvxwwwwhwwwfwwwfwfwwwgfewwvfvgvfwwwwwgwxgwwvwwvwwwwhwgewwwwfwwwvwwwxwwWgfffhgwgfvwwwvwfvwxxgxxwwwWhvffUwfwfvxvxwwxwgvgwUfwwwwwwxgwwwxgwhwwxvwvgUvFewvgvfevwfvhwxwvWewwwwVwwgvwfgvexwwgvwxwgwvwwwxwwxwxfwwwwwwxfvfvxxxfwwvwgfewewwwwwxxwwgfxwxwwxxwxhvhvfWxwwxwwxhgvwxwfwwwwhgwwwwxgxwxxgwwxgwvwwxwwwwwxwwwxwwwxxwxwxwgwwwwwxwwxxfwwfgxxwwgvvwxvhwfwwgfgefgwwwwvvwwwvxwxwggfwwgwxvwvwwwvxwxfgwwgxhwwxxxwwgvvwxwgvxxxvwwwvwwxwgffwwvgvwwhvwwxxxwwxxxwwxwvxfxwwwvwwwvvwggfuvwvvgvvwwwfwughwfxxvwwwwwxvvxwgwwgVgwwwwfwgwgwvvgxwwxvwuggggvwwwvwgvfefwfvfwfvwvvwfevvgeFeVefvfeVggwwwvhwvgefuhwwwffwwfvwgvfevwffVwwwwwwvwxwwwwvwwvvvvwvwvwwhvgwwwwwgvVfgvvvvwwvwwgwvvhwgwwwwxwwwghfVwwgvgwwwxwwhgvxffVgggggwgwfwggeggwgvhfwwwggvxwgfwwwvvfguvvwvWewgfwgvvfwwwgwggeggwWefwfwvxwfgVVfxxgvfffvwwwfVUfwfeEUEeffgfevvgwwvgwfwffVgwvVwvwvfxggvVfwwgvVugwwwwvfvwwwwwgwgvvxfhfUgvwwwwwwwewgwwfgwwwVVdffwfffvwvffggwvwwvgwfwfgwwwwxwfwfwggwwvwvvwwwwwxgwwwgxfwfwxwxwxxwwfgwfwxwxwxwwwxxxwxwwwwwwxhxwxhgwxwwxwwwwwwwwwxgwxxwwwxxwwwwwxhxxwwfwgvwwwxwwwwxwwwwwgwxwxxxxwwwwwwwwwxxwwwwxxwwxwwwwwwwwwxxwwwfgwfwvxvwxwwwvwwxwwwwwwwwxvwxvwvwwwxwhwxxhyxwwvxwxwwwwwwwfwxwvvwgewgfwgwvwgwwxwfwxvxvwwwxvwxxvxgwwwwwwwwwxxfwxxwgwvwxgwxwgwvwgwxxwwwgvwxwxxxwxwwwwhwwxxxvwvwWefguWwvgvvvwggvwwwwvvxhggwwwwwwWwwWfVwgfgvwwugwwgwxvwgfvwwwwwvwwwfvwgwxwwxvwhgwwwgVffGvffwgWgevvegwggfVwwxfwggvgwfgwwgevvwgwxwgvvxxxwwvwwwwwfwwghwwwxxwwgfgvwwvfhwwgggWgevvxxwxvwxhwwvVwwxggwwxwgxwgwvwwwVfgwwwxxwwwwwVffewewvfwvwgvvggwwgfvwwwwwgvwxgefwfuVvWuffwwvgvgwwgwhwwgvfgggvffwwwgfwxwwwvwvwwwwwgvgwwvegvegvgvuWfvgWvgwwwVvfxvwwvfgvgwwvwwgvwwwwfwwwwwwgwgwwxUgvhwwgvvwwwxfxwxgvvwfgfvwwwgvuWgvwwfxwwwxwxgVvvxvfvwvwgwfvwwvwgfwvwwwxwwxwwggffefeVgvWffVweguvwwwwgxwwxvgwwwwwxVwgvgggwgwfwgvvfwwwgvhxgwvfvwwwgggvffgvwwwxvgxwxxwwwWggfWWugwvffwfvffvvgggwwwwwUwvgwfwhwwfwgwwvwvgwwwwwwgwVwuwxwvfxfhwfwhwwwxxhwwwweguwwgvwhfwwwfvwfwwgwwwwfvwwvffVgwwxwwgwxfvfwwwxwvgfxwwvxwwgwwvveVgewuvufvwffevwgwwwwvwwwvvwwuwwfvfvwwggwwWwhwwvxggwffxwvwwwwgwwwvvgwgwvxwggxweffftvugwgfvfeggfvwwfwgwxxgWxvggxvfexxwwwwvgwwwwgwfwwwwwwwvgwxxxwwWfeggwvvxwggggfvfegwxwwggwwfgwVvhwwwwxwwxwwgwwvwggVwwwwxwwwuvugFVfVeGwffvUewWVuwwvuvgvwwfgwfwgvgvgvFgwfeVUvvwVuwwvtgvwfwfgfVvvWUuwwfwwvgvwwfffvfVeWgwWwfvwgVwwgfUU5ffeVefvUUdfWUwfVUwwgvgffvwfffuwwgUUtwWgvwVfVwwwgwwwewwwfgwgwfwwgVuwwwwwwwwwwwwWVVewfgUwwgfVfffUUtgvwwwfwvwWwffUwwgwfwfgwwgfffUxwwWUEwwxwwwwwwwxwxxxxwwwxwxxwxwxwwwwxxwxwwwxwxwxwwwwxwxxwwwwwwxhgvwwgfwwxwwxwvfwwwwwwwwwwwxxwwwwwwwwwxwwwgfwwxxwxxwwxxwVwwvVVUUuegwvgWfuwvffvWvggffwwwfwWugvvgwUVvwwvgUvfwffvgwvfwgvgwvwxwvwgvgvgwwgxevwfgvwwgvwwvwffVugfVeffwgwwwwgwgwwwwwgwwgefwwwgvfwwufvvwgvVevVfffvwwgwgffwgvvgvgfvwvwgvgwwgwwvwwwwwwwwwvgfVwvwgfwwwfvwfwwfwvfwgfwwgwxfwwxwvwffwfwwvxwxwwwgwwwwvvwwwwwwgwwxxwwwwwvxwvwgwwwwwxxxxxxwwwwwxwxwwwvwwwwwwwvvwggwgwgwwwwfwwgxwwxwwvxwwwgvwwwwxwxwwxfxhxwwxxwwwwwwfwwgxwwxwgwwwxwvxwwxxxxwwwwwwwwxwwxwwvwwhwvwwwwggwvwgwwgwwwgwwxwwgwvwfwvwvgwwwwxwxxwxwxhxwwwxwxwvwwvvwwwwwvxwwhxvgfwfwuvgwWgwfvgxwvwwvxgwgwwvgwxwwwwwwxwvwxwggxxwwxxwvwwvvwwwwwwxwwxxwgxgvvgwxwxxhxwxxwwwxvwxxvwwwgwwwwxwhwwwwxwwxxwwwxxwwhwwwhggvgwgwwvwvwvwwwwwvWwgfwwxhwwwwwwwgwVugvgvgvgwwgwwwgwfwvwwvgvhwwwxwwxwwwwgvwggwwxxvxvxvvgwfwffwvwwvgfvfwvggwfwffgwwwwwwwwxvwwgwwwwwggvfwhWwfwfugvvvwwxwwgwwwwfwwwgWwVwuehgwgwwwwwggwggvggvvwvWwwvgwgvgwwvwwvwwwwxxwxvwxVwvvfwwgvWvgewvgvwgwwwgxwgwwwfxwwwwwwgwgwwwwvgwwwfwvwgwwwwvwwxfwwfwxwwwwwvwvwwxxhvxwwxvffwgvggvvwwfgvfvwUwWvhvghuvgwwwwfvgwwgvwgwvgwgwvwgwvvwfwWvhfwegwwwwgwvvwwwwwvwfwgvgvfgvwwwwvxwwvwugfvvvwfgvwgwxWwwgxxwwvxwwwvxwwhwwwhwgwwxwvwvwfvwgwwwwwxgwxvxwxxgwwxwvwvwvwgwwwwxwxxwxxwhwvxxwxwwwggwwwwvwwgxxwwfvgvwuvgwWgffvhgwvwxgwxwxhwwxxwwwxxwwwvwwxgwvwgwvwwwwwwwwxwwwxwwhwwvwxvwgxgwwwgwwwwvvwxxwwwxgxvxwwgwvxxwxxwwwxwxxxwwwwvvgvwwgfwgfvgwxwwwxwwwwxxwwwvfgfvwgwxgvwgfwwwxwwgwwvxxwwvwwwwwwgxwwgwwxwwWUwfwwfwwwgvgvvwxuwgwVxwgwwwwwwvwwxvxgwwwwwwhwwwhwwwgxwxwxwxxwwWvwvxuxwgwwwwxxwwwgwwxwwgwfxwwvxwwxxwwwxxwwwxwxgVvgWVwfefwvvwgwwwwWfgveevwwwwwwwwwfufgvwwxwwwxxgwwwwwwgwgwfwwwwvwxwwwdgwfwwwVgffgvfvwwweefVgVUfffUgfvvgVuffWuwgvxwwwwwwxwwxxwwwgggvVvgffwwwuffugffvwwxwwxwwugUfgfWvvwvwwwwxwxwwwxwwwwxxwxwwwwwwwwxxwxxxgwwhVVgWevvgvwVfhfgvgwvwwwwxWfwfwwwwwwvxwfVhfwwvwvwwfwvvvwxgxwvxVgvvwvvvwgwvvxwwwfwwxwwwgwfvgfgvvvvwwwwwwxxwwxwxwgggevgvugwwwwxwwvwfwwwgwwvwgwxwwwwwwwwwwgwVggvvvvwwvwgxwwhxwwxwwwwxffwvgvuwwwvxwvwwwwwgwwwwwwxxwwgwfwvvwxvwwgvfgfgwvwvvxwgwwwwwwxwgwxvwwwwwvWghfgwwwxwhwwwwwwwwxwgwvvwvwvwxxwwxxxwwwhwgxgfgvWvvvxwwxwwhxwwwwfwwvwvvgwxwwwgwgwxwxwxgwwxhwwwwwxvvwvwxwghxxwxxwggvwwvwhwxwwxxxxwgwxxxxxwgwwwwvwxxwffwggwfwwgxvwgwvwxxwxvwxvxxvwvgfehggvwvgwggwgvwwwwwgwgwwwvgwwwwxxwwwxwwwwufwwffgggfewvwwwxgwvwwwwgwxgwfgxvVxvxwxwwxwxxwgxwxwvwwwgwwwxxxxwgwhxwwwfwfwvwwfxvgwxwwwwxxhxwxxwwvwwwwXvgvwfgwwwvwwwvwxvwwxwwugvvwfhwwwwwvvwvwgvgvhwwwwgwwwwwwgwwwxwgwwhwwxwgwxgvvffgwwvgwfvvfffvvvgwwWvvvgwwvxgffwxxwvfwwwwwwgwxggwggwwvxwwgvwvgwvxxfwgxwwwwxwwxwwfxgwwfwgfwgwwwwwxwwwwwwwwgxwhxxxwhfwxxwwxgxwxwwxwxwgwXVfgVewwxwgguguwgvxwgwwwxwguwwwgwwvwhvevfwvvwfvxgxwwvvxwwvwevwfvwfwwwwwxwwwwgwggwxwvfvevwfvwwwwgwwxfwwvwxwwvvgfuwfvwvwwwwwwwwvwggwxvwxwwwwwwxwwxvgWgvwwwvwwwwwwgwwWfwwwwwwgfwwvwwevgvxggwxvwgwgwxhwwwxwwwxwwwgvggwgWuWwgeggfffwfggvvefvgvgvgWwwvwwwwvfWwvwwwwwwfwvwwwwwwgvvghwvwwvwvxxvwxwwwvxfwwvggffgggvvvwgvwfgvweffuvvgvvegwgvVfgvvgvvwgxgvgwwwwvvwgwvwwgwffvuvvggwffvWwgwwvWvvwwwwgwwvwwwgwgvWvwggwvuWffewwwwwwwwwwxwvgwxxwwvwgwwuxwwwexwwxwvwwxwwwwgvwefuggfggvfwgfeVWfegfvgfwwgwgvwwwgvvghwggfvffwgwwvwwwwfVfueVvfgwgwggwvwwfwwwvwwwgefffvwfWwwvwgfGteUVwfvwVVuvvutfGgfvUhwWfwfgggggwggfwvwvwfevfgwwvwggwvfwfvfvghwggwvwwwxwggwgwvguffwfvewggwwwxwwwwwwwvwvggwwfvwvwvvwvwhggwwwwwxwwwwwwwwwwwwgfgxgfvwvgwhgggwvvwvwvwvwwgvfwwwwgwxxwvgvvfvgvxwwxwwffggwgwgwwggvxwgvwxwwwwvefgWvgvvwgxwwwwgUgUuugVwvfewvfWxwugwwwwvwwwfwxwwwwwwwgwggwgvwwwfgxwwvxwwxxwwwxwwxwwwwvfxWwgugvVgwuwwwwwwwwwwxxxwgvwwwwvwwwvwwgwvwxwhxwwwwwwwxwvvxvwwwwvwvwhxwwwwwxwwwwxxxwwhgwvwwwwxgvxwxwwwgxwwwwxwwwwxwxxwxwxwxxwgwwwwwgwwwwxwwwxgwwvwwxwxxwwxwwwwxwwwwwwwxwwvwwwwxwwwwwxxxwwwxxwwwgwwwwwwwxwwxwxwwwwwxwwwwwvxvwwwwwxxxwxwwwxwwwwggxvwghwxwwwwghwhwwxwwwwgwxxxwwgxgwvwwxhxwxwwwwxwxxwhwwxwxwwxwwwwxxwwwgwwwwwwgwwwxwwwxhvwwwwwwxwxwwwwwwwxwxxxwgwwwwwxwwhwwwwxxwwxxwwwgvgwwwxwwwwvwwwxwwwwwxwhxxxwwvwwwxxxxwwwwwfwhwevvgfwwwwgwwwvwwwwwxxwwxwwwwwwwwwvwgvwvgwxwvwgwwgxwgvwwwxwwxxwwwwgwwwwvxwwwwwwufwvfgwgwwvwwwwwgwwguwgwwxwvxvwgxwwwwwwwxwxxwxwvwwwwwxxwxvwwwwwxwxwgxvvvwgxwwxxfxwvwwfwxwwggwxwxgxxxxwwxwhvvffwwvwwwfvgwwwwxvgvvwgwxwwwwxwwgvwgvwfwwggxgvgwfwwwwgwfggwgvgwxgwwwwgggefgvgwWfgwwwxeefVgfVVwffwfvuvfegfgvUwewwwgvwgwgxvwgxwvvwgwwhggwxuvwefvfwgwhvwxwgwwwwxxxevfewggvgffwwwvwwfwvwwwwwwvWwwfwfwfwxVwwxwfgwwwwwxwgwwwxxwwvwwxfewwwwwwwfgwwwwgwgxwvxxhwwwwgfwwwwvwvvwwwwfggwxwwxwwwgwvwwwwwwxwwwvwxwxwwxwwwWfwgwwvwfvwgwwwgghvxvwwfwxwgwfxwwhwxwxvxwwvwxwwwwwwvxwwwxwxwxwwwwXvwwwWvwwwwwwvwvwgvwwxwywhvxwwwwxfxxxxwwwxwxxxxhvvwxffwwfwwgfggwwwvhvwvvxxgxwxwwwwxwwvwgvwwwwfwxgggwwwxgvwvfvwxwwwvvxvwwgwxggvxvvwgggvxwxweefVgfVewffgfwegfuvwfvvffwwwwwwfwvwwvwwwgfufVwwwfvgwhwuwefvvfwvwgwvwwwwwugfufvfvUwvwwwvwgVwhvwgvwwgwvxwvuwewwfxgwfwwwwwxwgwwwwwvvxgeugWfvvWvfvgfgugwggxvvwhwwwxxxhVgvfwVwgwgxggefewvwVwvvugvggfvwwwxxuvgfgwfvwwvgwwwFWfEefedVeVvvvFvfGvevugggvgfvvggugwvvwwgwVVwfvwvvwxvwgvwffwgxwgvxwwwwxwwwwwxwXvVWfevvgggvwvwwgwvgwvvgguggwfvgwvVwfhggwvVwvgwwgwxxwxwwgwxhvvvVVwgefwvvgfwgwehwxggwgwwwxxwwfuvfuVvwfgfwgwVwevwfVvvvWffwgwwfwwwxxgWwfeugfggvwxwwwudFEffUfUfVwvfeggefewuggfwgwwhgWwvwvfwggwgvvgfwggwgwwwgfxvfvwgwwfwwwwwxwxwwwxwwdgWtfewvggfwgfvgwgwfwvvggWvvgvfwvvugggvvvxwfwwwvxxwwxwwxwxggegvWvgwwfwxVfvgwwwwxwwwwxwfgwwwvvgUffvvwgvwwwwwxwwwxwwwxgwfvfwxwxwxxxxwxwwwwwwwwxfffwwxxwwwwxwwwxxwwxxhffvvwxwwxwxwwxxxwwwxxwxwwwwxxgfwwwxwwxwwwxwwgffgvxxwwwwxwxxwwxfggwvwwfwwvfvgwwxwwwvwwxwwwwwwwxxxwwwwgwwfwwwwwwgwxvwwwwxwwxwwwgwxwwvfwggvwwwgvwwwVvffgvWfwwfvwwvwwfwwgwwwfwwwwwwgwwwgwhxxgwwwwwwgwwxxgxwwwxwgwwxxxvwwwxvwwwgwfwwwgwvwwwwwwwwwxxxgwwwwxwgvwwwwwxxwwwwwxvwgfvvewwggvwvvvwvxwwwwgwwwwxwfwWvwvwfvvwwgwxhwwwwwwxvwwwwxvwwxwxwwwwwwwgwxwwwwwwwxhUvvwvfvwwvgfwfgwVvvvgvgwvfgfwggwgwfwwvwwwwwwxwwwwwwwwxxwwwwxwwwxwwwwggwwvwwwvgwwwwxgwvwwxwwwwwgvvxwxwgwxwwgxwxxwxwgwwwwxwxvfgevwgwwwggwvgwgwxwwwwwwxxwwgvVVwwvgfhvwwwwxwwvgwvxfhwwwvhwwwwwwwwwwwvwwwxwxwxffwfggwgwgwfwgvwvwxwwvvvvwwvwwwwwwgwwvwwxwwxxwwxwgwwxwwxwwwwwwwwxwwxvvwgfwwvvvwwwwwwwwwxwwggwwwwxwxwwxwwvxxwwwwwwwxxxxvwfgVgfgUfvVvwVgeguvwwwwwwwwwwwwwwvwvwvfvwgggwwwgwwgwvwwwwwwxvwhwwwhwggwwwwwxwxvgxwwwwwgvgvvgggffwwwgfvvwgvgwwwfgvvvfwggwvwgwwgwwwwgwwwwwwwgwxwwwwgwvgwvwwwwxxwwwgwwgwvwwgfwwgfwwvwwwgwwwwwwvvggwwwxwwwwwwwfwwhwwvwvwwvwwwwwwxwwxwwvegvufvWvwvvfwuwvwvwgwwwwwwwwwwgwggwwgvwwwgwvwhwggwwwvwwxgxwwwxwwggwwvvwwwwwwwxxvwwVvffwfgwgvwwgfgwwvwvgwwfvwwgvwwwwwwwwgwwwwfwwxxwwwwxwwwwwwwwxwwwwwxxwwxwvwwvuguwwfvgvwwwgwhwwgvwwgvgwgwwwvwwgwvgvvwwwwwvwwvwwwwvegwgUffVfvfgwgvgVfwwWfwggwwwwvwwwwwguffevvfvfwwWvhgffefxwwwwvhwfwvvxwwwwWffffvwvgwwwggwgDwgvfUefvgvffuvffwfgggfVvffVwxggvxwgffvhfvfvwwwvwvwwfwwwwfvfxwgxwwwwwwwwwhwVuvfwfgvgfgvgwgwffufwxgwffUxwwvfhfVgvgwfwwxwxwwxxwwxwwxwwxxxxvhwhwxxxxwxxxwxwxxwwxwwwwwxwwwwwgwxxwwvgwwwwgxxxxwwwwgvxwfwxxwgggwwxwwwvxxwwgwwvwwxvgxwxxwxwwwwxwxwxwwwwwwgffwwwwefvgghwxwwgwwxwvgwxwhwxfgvwwvwvxgxvwwwwwwwwwgwwxvwxwxwvgwwxxwvwgxxxwgguhfwwhvvwxwwvhggxxwvwwhwwxvhxwxwwwwxwwxwwxwvwwvwwwxwgxwwvwwwwwwhxgvxvvwxvwwgwwwxwxwwwgvwwwxvwxwwwxxvvwfeWgwwwfgvfXwhwvwxvwxwwwwgwVgxxwwwVuvffvvVhgwvfgwggwwgwvvWwhwvfvvvwvwwxvvxwwwhwvvwwwwwwwfgvvfwvwvvfwwxgwhwwhxwvfwwvuvwxvvwwwwwxggwfwwwwwvgwgwwwwgwwvvfwwgWvwwwvwgwxwwwwwxxwggwxvuvwxvfuwwgwwwwgwwxxwxwvwwwgwwxxwvvxwhvwwwwxwVVvfvgwgvvfWhfxgwvgwwwwvwxXxwwwgUwwvwexXvgwvwvwxwvvfggwWgvxwfwxwfwvgwgwwwwwxwwwwwwwgwgvvvufggvxwfwvgwwwwwwguggvvwwVwvxwgwwwwwgxwvwwxwwhgwgxwwwgwwwwwwwhvuvwwhwwgwwwxwwgggggwwfwvxwfvuwwgwvwvwxwvxvxxgwwwwgvwxxwvxwxvvxwWfwuwegvfwwwwvwwwwgvwwgUwwvvwwwWwwgfwvwwfvfwgvfgVgfwgfxwwvfwfwwgvwwgwvwvfwxgvgffvffVgffvvwvwvuwfeVffewggvwgvwfVfWwgwgVwwxwwfvwwwwwwwwggfgffwgwwwvwfVvgwxwwwxwwwvwfuwwwwwfwgwwxVfvfwgfwvwxggvwvwwvgwvwwwwvwXgwwVxxwwwwwwvwwwwwwwxwxwxgxwfxwwwxwwfvvwvwgegfvgvgwvxxwwxxgxhgwfwwwfvwvfwhvgwwgvxfwwwwwxxvwwwwvwwxxxwwwwWfvgfwvvgfwVvwwxvxwhvwfwxfwxxwwwfvwxxxvwwwwwwxwvwxxwwwwwxxwvwgwfwwwwwgwwfwwwewhvfwwwwwxxvxxwxwwwhxxwgwxwwwxxwxwxXewggfgwwvwwwvwgwwfwvwfwgwvxwvfwwwwwvwwwwwwgvwxwwwgwwwwwwwwwvwwvwhxxwhxwfgfgwvwfwvwwwghwffffVwvwwvwfgffgwvwwwvwwwwxwwwwwxwxxgvvgfvvwxwvhfvgwwvxwxwvhwwxwwwwfffwwwgwxwwfwwhwgwvwwwvwwhwfxwwwxwxwwwxwwxwwvxwwfwwgggvwfwwfgwgwfgvwxgvvhggxxvvwwwwxxwvxgwwgvvvvvwvwwwvggffwgwgwfwwwhvwwgVgfwvwfwwfwxxvUeUUfVwwvgvvvVeguwfwvxgWwwwwwwvwwxxwwwwfuwffwwwxwwwwfwwxwwwxxxwwwxwvvvwwwxxwXuWwwgwxwgwwwgvwwvwwwwwxwgwwvwvwggwwxwwwwxwwwwxwhxxxWvwwgvfgffvfvvwgwvwvwwgVfwgvwvwvfvwwfwwfwgwvffVeVefwfggffUfUvwgvgvgvwwvwgvwwwgwwfVffVvffvfvwwwwvgGdUeeUewvwfwvVVgVvgfgvgwvwxwxwfwwwwwwwwwggvgfefvwwwwvfgvwfvfwgvwgwwvgvfwwwxwvwDgUggfwwgegwggwwfgvffwfgwwvvvfvggvwwwvwwvwwwwwwwwwwwwwxwwwwwxhwwgwvfxwwwwxwwwxwxggfwxwxwwwwwwxwwwwwwwwxwxxxwxxwwwwwwwwwwwwwwwwwwwxwxxwxvwfvvwwwwgfwwwwwwwwwwwwwwwxwxwwwwwwwwwwwwwwwwwhggfwfefwvwwWffgvwfwvggfwwwwwfvwfwfwwwwvwgfvWgwfgvxwwwgxwwgvXvxffgvwwxwwwwfwwwgevwwgewvfvWduWffeweffgwvxwwXfgewefvfwfwwwwwwxeugwvfwwxwwxgvwwxgvgUwwwwgvgfwwwwfwvhwwwXfwVwwxfvvwefvxwvhvwxwhxwwxwxgvgwgXffxgvwxwwwwwwxxfvfvwvwewvfxwgwwwgwwwwwvwwghxwwwvwgfwfugwVvgwxwxwwfwfwwgwwgxwwwwwvgxgwwghwwxhgwvVvfwggwvwwvxxwwvwwxVvfgwvgwwwwvwwwxgwwxxxxwwwwwvgwwgwgvwwwwwxxwwwwfvggxvgwwvwvwwxwwwxxxxxwxwfggwgwwwwwxwwwwxgwwfVfVwwfgvvfgvVwwwwwgwfxvwgwwvwwfwffefEvgfVwvfwwwwwwwvwxgvhfWwwvgxwvfwwhwxwxvwgwwwgwwfgwgfwVufvgwvwhwwwwwwwxgvvvgwvwefwwwwxwwxwvwxwwwwxfwxvggvwgwwfvwwfwwwwvvwwwvwxwgVegvgwweffvwwwxwwwwwxgwwwwwwwwWfvgxwgwgfwwwwxwwwggefVvfvfTfevfgVvvvvxwwvhfgwwwwwwwwvgfgefggwvwwgwwwwwwxwvfgVwvvvfxwvwwwwwwwvwwwwwfgwegvvevfwwvwwgwvgwgwgeevfwvgegwfwvwxxfwvwwwwwwwgxwwfvvggwggwvwwwwwwvwwwwwwxwfevfwvwvvvwwvwgwxwwwwwxwwxwwwVfvgvwgwxwhwwwwwvwwgfvfgwgWfgewgwfwvwwxxwwwwwghhwwxwwvgvwVhwwgwwwwwwgvgwhwgwwgwvvwwhwwhwxxwwxxxvvwfuvfgwhgwwvwxwwwwwhgwghwvfwxvwvwxxvvwwxwxwwxxwwggwwwvwwfwwwgghwwwxwggwggwvVvwwwvwwvwxwwwwwxgfwxwwwgwwwxgxwwvvhgUugfwvgUvfvxvgvwvvxvwwfwwhxwwwggvVwfgwfwgvgwwwfgwhfvuwffwgvgwwvwvwwvvgvwwfwvwwwwWVwUFwVffvWffewgfwfwewwwvfvWvffugwwwxwwxwgwvwwwxwwwxwwwxwwvwwgxxwwgvwhwgewfwfwwwvgvgwxggwwffwgwfwfxxwfxwwxwwwfxghfVwxxxgwwwhwgwwxxxwwwwgwxwxxwwwwxwwwwwxwwxxxwwwxwwwxwwwwxxwwwxwwwwwwgwwwxfwvgwwwxwwgvwxwxwwwwwxwwwwxwxwwwwwwvwwxwxwvgwwxwxxxxxxwwxwhewffvvweVhwwwggfxwxxwwwxwWwgvwVfgwgvwvwwwwwwwfwxxxwwxgfwvwwwwhwvwxxxxxxxxwwwwvfwwwgwfvhgxxwwwwxwgffwwwwwwxgvwwxxwwwxwwwxxwwwwwwxwwwwwwxwwwgffvwgwwwwwwxwwwfvwxgwwwwvgwggwgwwggwwwwgwvwwwwwxwwwwwxxfvwvwwvwwwwwwwvwwwwwxxwvwxwwwwxwxxxfvwvggxwwgvwxwVfgVwgffwfwvwwwvwfxwwwwgvwfwwwwwxvwwwxwwfwwhwwwgwwwwxwwxgvxwwgvwwwwwxwvwwvvxwgwwwwvwwwwwfwwxwwxxgwxxwxxwgwwwxwgvwwwwwwwxwxxwgwgwWvvvuvwgwwwfwfwxgwwwvvwwwwwwwxxxgfwVwwWwfvgxwvwwvgwgwwvwwwhwhgwwxwwvwwwfwwwwwvgwwwwxwwwxgevfvgwvggwvfwfWvguwwwgvggxwwwwwfwvfwwgwwfgwwwgwxxwxxxwwwwwxwwwwwxwxwwwwgvwvwvwwgvgwwgwvgwwwwwwwwwwvwwgwfwggwwxxwwwwxwvwwvxwwwwwgwwwwevgewwfvwvgggwxgwwgwgfwwwwxwgwwxwwffuVfwVfWewhwwvxwwwwvvwwwxgwgwxwwxxwgvwwwwgwwxxxwwwwgwwgfwvwvgffvvgwgwfwvggwwfwvwwwwwgwvwwgwwvwwxwwwgvwwwvwwwwwwwxxwgwwgvwwxwwwwwgvwfwfwwvwvgvvvgwwfvgwwfwwwwwwwwwgvggwwwwwxwgxwwwwwvwwwgvwwwxwwwwgfggevvVwgegvgwwwwxwwwxwwwgwgwwgggwwxwgvwwvwvxwxfvwwwwxfxwwxvvwgwxwxwwxwxwgfgvwvwfwwvfwgvwvghgwwfwwwwwwxwvwwwwwgwwwxwwxxwxxwxwvhwwwwxwxwwxwxwwwxwggxwwgwfwwwwvwgwvwwwwwvwxwwwwgggwxwwxwxxwwwwxwwwwxxwxhwffvufwWwgggvfwgxwwgwwvxwwxxwxxwxwvggvgwvvgwwwxvwwvwwxwgwwwwwxwwwxxxgwwwwwwwwwwwwwxxxwwUvvfgwwwwgfvgfwwwwwvvvwvvwgwwwwxwwwwvwwvwwwwwwwwxxwwwwwwxxwxwxwwwwxxwxwughvvvfwwfvgggfwgvvvgwwwvwwwvvwwvgwxgxwwwwwgxwwwxwUgvxgVefvefffvfegwwwgfwxggwwwwwwxwwwwgVgffVfwgvgwwgfeVffxgxwwgwwwwwgxwwfvwWfffffgfwwvvgwwwwFdwvuwffffVuffuwgfgfvUwgfvwvgvwfwfvffxxxwfwggggwxwwwwwffwfwwxwgxxwxwxxwwwwwwhfgwwfvfgfVvffVefffgvwwwhgffUwgfwfhfVxwwwfxwwwxwwxwwwxvwwxxwxghxwxxxwxxxxxxxwxwxwwxxxwwwwwgvwwwfxwwwvvfwwwxgwvwgwgvxxxxwwwwwwwwwgwwvwwgxwwwwwwwgwwxwwxwwwwwwxwwxxwwwwxhevgwfwWvvvwwggvvwwwwwwxwwxwxxvwwWwvwwxfgwvwgwxwwwxxwwxggvwwwwwxwvwxwwwxwwxwgwwxwvwwWfvwwgfgggwvwxvwwwwxwwgffwwwwwhwggwgwxxwwwxxwwwwvwxwwwwvxhxxwwwwwwwwwwxwwxhffwgwwwhwvwwwwwwxxwwxxxwwwwwvvvwxwxwwwxwwwfVwggwwwewvwxwgvvwwxxxwwxwwwxxfwguwvwwggvvvwwxwwwxxwwwwgwvwwxwvwvxwwxwxwwwxwwxwgwwwevvwwfgfgwxwxwwwwwwwffvvwxxwfwwwwwwwxwvxxwxxgwwwvxwwwxxxgxxwwgwxwvwwxwwwwffvgwwwwgxvwwgxwwwxxwxwxxwwwgvvwwwwxwvwxWUdgvfgWgfwfgvVwfwwgfwwgwwxwgvwwgewfGvfwgfgwffuvwggwfxvgxggvVwvgvgwvffuwwvgwwwwhwxwwgvwwxgwvffefggVVefwvwxwvfvfwwxvxWVuvwfwgwxwfwvgwwxgvwxxwwwxwxwwwwwhvwwwwwwhwwwwwwgvvwwwwwfwWfffwvxwwwwwxwgwwvfwwwwwwxxwwwwwxfvgwvwxwwvxwgwxwwwwgxwwxwwwxwfxwxxwxwxwwwxxxwwwfwwgxwwfxwwxwxwxxwwxwwxxxxxxxwxxwxxwxwwxwxwxxwxwwwwwwxxwgwxxxxwwwwxxxxwxwxxwwgwxwwwfwwgVTuffewfGggwgvfvffuwwgxwgwfxwwwwwgvhvVgfwffwwefvgvhvwwxggwgvfvffxwwvvwevwwwvvwwxhwwxvwwwggfgVUvffefwfvwwgwwfwwwwgevwwvwwwgwfvwvwwgfwxwwwxwwwwwwwwwxhvgwwxwwxwwwwwwfvgfxwwwvvgUuwfwgwwwgvwvxwgfxwxwwxwwwwwxwwxwvgfwgwwwxwgwwxwxwxxwxwwwwxxxxwwxxvxwwwwxxvxxxwwfwwxwwwwxxvxvwxwwwxxxxxxxxxxxxwxwxxwxxwxxwwwxxxxwwxwvhxxwwwwxwwxwxwxxwhwwxwwwxwxwwwwwwxwxxxwwwxwxwxwwxwxwvvxwxwwxvxwwwxhiwxwwxvxwwwxwhgxwwwxxxxwwxwxxxwxxxwwwwwwwxxwxxxxxwgvxxwxxxxxxxwwwxvxxxwwwxxwxwwgxwxwxwwwwwwwgwxwwwwwxfxwwwwwwwxwwwwixvwwwgxwfwwxwxwxwvvxwwxwwxwxxxxwxxwxxxxwxwxwwxxvwwxwxwwxxwwwwhgxwxxwxxxwxwwwwxwxxxxgwwgwgfwwhfwvVdwgugUvVgffvggfwvfewfvgeffgVfvvVuwgvgewfhfVvgUwffffvfUwfwvgfVfegfFefV6efwwwwvwwwwwgfvwgvvwvffwwggfvwguvwwwffVggEffwwvgfuvwwVevfuvWfwfvfwwwfvvwWvvwfffvWfWVuvfuvgfffWvVfgffvfevwwwffwwVVgwwwggvvwwWfvgvWfvwggvUWgvffffEffVewvVgwVWwUfVfwEeVevwvfgwfggWvugvegvgVffvwfgggfugvveffgfVfgWftgwueVvWfffwffgfVveevuegvwVffvgFfVVff5fvwwwfwffwwwfvwwuvvggfvwwwffwvvvuwwwgfvwgWVvwwwgvvwwufvvvvVfgwwwwwwffwwvvvffuwVgffvUgVvwfvffevegfffvefvvvgVvgWfFvwvwfvvuwvufevvuVgwffwVfFvggffVWWVfuwfgVgWWWfegWGeUefvwgwvggguwffwvfWgfwgfgVffgfgUUwefGfUfVffvueEfvVVfegefgfgVeVVefefeWgffVfgfgFfVVfgV5vwwgeVvfgwfffvffgvvffwwwgvwvvfvvwwwffvwVfFwwwwvfvewgevuVfUVuufwfwwfgvwwfwfwfgVffffWVgvwvgfvffweffffVefwfvVfgwVfFwvwvwfwuvwefuvgeVvgwwwffWfgfffVvWeEwwVfggvveUfvgTVUUvwwvfwwwwwvwwwwvfvggwxvfwxwwwwwwvwgvwvwvwvwwvfwwfxxwwwwwwfwwwvwgwvgvwVwwwxwwwwwgvgwwwwwwwwwwwggwwgwwxwwwwxxwgvggvwwwwxwwxwwvgxwwwwwwfxwwwwwgwwwwwwvxwwwwwfwwfwfwwwxwgvgvvwgwwwgfwwwvwwgewxgwwwfwfxwwwVwfVfvfvgwVvuVTfgefUvVfvfvwwfggUUwVfgTfeVffvwffwgwwevffvffgefeefUUffwfffVvfveFefVvfVeswwwxufwfwwvfvwwwfvvffwvvgvwwwgfvgwgefvfffEgwgwwvgewwfVuwfefeeegffvfffwgvffgffefvgfuVgvfwgfffvwfVfgfVevwvwffwwffEwvwgwfeuwggVugfeUufvwwvgUvwfffvfVVTwwvgfggvUUvfeEeVUvwxgfwwxwwfwwvwwgfwwhvwwgfxwwwwgwwgwwvhwwgwwwfwgfwwhwwwxwwwxfwwggwvXuwwwgvhwxxxxwxwwwwggxwxwwwwwwwwwwxxwxwfwwwwfvgwwfwgfwwwvxxxxwwwwgfwxxwxwwxwwwwwwfwwvwwwwgwxggwwvwwwwwgvwwgfxwwwxxwxwwwwxwwvfvWvvwwwwfwgvwvgwewwgvwwvgwwwvwgwwwvguvwwwwxvwxwwwwvxvwgwgwvvvvwwggwwwvwgfvwwwgwuuvwwvvvvwxwwxfwxwwwwgvwwwwgwvwwgwwwwgvwwwfwffwxxgwuvwwvvwvgwxwwwwxwwwwxwxfwgvwgwwvvwwwwwwwhwwgvfxUgfVwgvgvwvvgwwfwvvgxvfwwwfgvwxwwvfVvdVwwwgwwgwufwgwugugwwwwwgwwgwgwgvwwvvwgvwwfwwvwwwvwwfwwwvwwvwvvwvewgwwwwvvffwwwwgxvvwwwvvwuexwwxxwwwxwxwwwwwwwwvvwwwwgwwwxUvgvhvgWfwffwwvvfwgvwwvvhvhvwwwwwwfwfwxwxwxwfwvwwwwgwwwxvvgwwfwxwgvggfwwwgvvwwvvuegvwwxwgVfgvwvwgfggTvwwgwwgwwewgwwewevgvwwwgwweffvwwvwvfggwvvxgfefwgwvvfvVVfvvvgwwwwwvgfvfwwvfVffefVwwwwgvvgfFeVVeeVeuwwwwwvfwvvffgwgvwwwfwfffvvwwvwwgwfeVfffffgwwwwvwfvfvwfegUVuwvVwfgfvvvfvwvVfUTEUVeUVffvvfvgfeeeUUefUegwgeffffffwwwwwwvvfvwfvfUUuvfvgfffffeeUUeEECwgfwgfgVeUeeVEETEugfwwffwwUuvffvwwffvfvwgfxfvwgvwfwfgffugffwgvgUwfgfvvgVwfvgwfffwfwfxwfvfgvfutvwVgxxwxwwvwwfgvwwgvfwwwgwwfffvwwwwfgVUefwwwwfwwgwfvwwgffgwwvwvwwwwwfvvwwwgvhffvvwvwfgwwgvgvwgffvVvvvwuWVfvvwvvwffwvgUfvgwvfvfxvhgefvwgfggwfVTgvgfgwvWgfWfvVfWugvfvwVWffVVwfetwvvggWWfVuvfVWwgfvgvvVgggeVvfVvwuvFWWgWfvfWWeuefVfVggggwfvwgfVfcfVVfgvwwfgwwwxfvVVvgvgefgvvgVfVVggvwvvWVgedefvwwgWwvugWggugduEgegfwwwgfvVWvgvwvvVWgffvffwggvvvWffgffUeVgfuuFGfUVegvfvWgwvvFVffufUuVwfgweeUgfeeffue5fefvvggwfVgvveUgvfeevwwvgfvvgfFwuWwvuVugUfwfgwVwvgwvvWvgffgVvugweuGugfvVguggvVwVegvugvgfvvVfefsfVevwvwgvvwwwggvvgwwvVvffwfgfvvgvwvvgwvfFfegwwwwugvwvuVgwwVfWffuewwwgwwefvwvggwvfWVvwvgwvvgwgwfWgggfvfgvfgweeWeewfvwwvWwgguFwvvfegvvvWwegggVfwwWeGufWgvgwgfhvfgeWuvgffggvUWVfUfUFcfVdfDfUVuUdgvUwfVdwWufTvUVveeeFdfFeeCfTFuUevTgVeVfEWUvUwUguUfVVuEUuRUUeggffeffwvgffvUwvvWTUVeeVUVeUfvffffVUVFcfVffffEffffDfvfVtUUwvUeVvfgffvUvvvffwfeVVdfeffvvUwfgfTffffeUfgVffVeUFdffffffTffffCefeVuEewfffGuvgfVUfffEWEefWewgweWVuVTWUvgUUfvvWVefWVffutwvuffVgfVvVGWggvuvfWffVvVfffuuwufGWGWuUfwWgfeevgWfvWgggfvfVuffvfcVfegvfgffvwwgwvWVwgwVefffggffVVwwwfvwUVgeTfffvvgWfwvffvfgvefggffgvwwgwvGUwgvwwwfWgVefvvwwgfwwwVggfwuVfgfgwwfgfeeffvwwVfwfgGVvefuVeVVfwgefwgveufwfGfefuufwffWfffFdvvffugwvgfwfgvfwUwwfvffgvffvwvWegwgwgfugfgfvggwfwffuWuWfffwWewfgfffvvgfgvvgWfvffffvtgvwwfwwwfvvwfvwwvfwwwfwfvwfvwvvwgfgeUvvVwwgfwvfffwvvfeugegfwgvwfwwVuwwwvwwVgegevvwggfwwgfffwwfffgfvwggwffefwwwwgfwwfVugwvffffffwfUfvfffeefVUffFvfwwwXffwfgUfvevfvgwwwwwwvwwgxwwfwgwxxwvgxxwwwwwxgwvvfwxxwwwxwwwwxxwgvwwxxwvgfxwxxxxwwwxvvwwwwwwwwwxgwxvwwxxwvvxxwwwwxwwwgvxxxxwxwxxxwwvwhwwwwhewwwxgwwgfxxvvfwxwwwwhwwxwwwxxxxwwvxxvWvvfgwwwwffgwwggvwWffVvfwffwfwgwwgfwGeVvwffgwwwfvwWffvwvwfwvwfwfhvvgVfgffgVeVvfVUuxhveewvvwggffvwvwUUvffvwfffffxvfwvfffffwwgvvwwwwgfguwwGUVVwffwwvvfwgVgeUfweewfwffVUefffffvgffffffhffwgvvfffwwgfwwwwwgvfuwwWTugvwfvwfvgVfEfwgffwwffVfffUEffVUUUTfwwfwggfwgwgwwwgwgfvgfvwwfwwwgvgwvwwgvgUvgwwfgvvwvwwgfvfwwwgvwwwwvwfwvevgwuwwfVwfwxwfwxvhvfwxwwgfgwgfwxffwxvwfgwxfwgwwwfgwwfwwgffwgwvwwWwxhwxxwfwfgvggwwhwwuvwwwwWgwwwwwWfwwwwgvhwwfffwfvwwvwwvwwwguwgvxwwwgfgWuxwwgffffVvxgvgfggexwgvvvfVggefgwwvvwffWgWWgGufeffvwwwwffwgfggGvvwfvguugwgfgWfgfhfwfugfgvgggwfgWwtwgevfgwvwwvwxwwgWgvvvgvwghffWggwwvwfgvgvvhwwfvfgvvwgvVWgevfWuVgwwhwwWghvvwfgvwwwxwwwvfgvvwgfggfvwgfgwWvugffgwvwvUWwefgvffvfggvgwgffgwwvvvuvFgfwvwvvvvVhwvvwvvEgvvfuwvgfWggfWvWwvVweugtWUffwvgwfvvgwuvgufVfwfveVvtvguVVvUwuggwfwffgwvWugfevgffUvfffgwwwvwfhvfwvWgvfgwvvfgefgvWgfwwwggvVwvvwwvguWgfwwwtVVfgvvgvgfwvggvggwwgwvhvfgvfxuwvWgvwgwufgvfwWwgfvgvgvugwwuguGfvgvveWfvUwgwgvWgvwwwffwffXvwvgfWgffXuwwwfWeWffvfwgwvfwvfVgwfugWevfgEguVevgVgwfvwWfwfwVgVvgWvfGuwewUWVvwfwgvWvfgvwfweWvVvVgcffffvwvwwvgfvwwfwwvgwggvgVvfvVgvvwwwwwffuvgwuwfUgvvgwwEgufuvfgwvgvhgvgvVgwfggggfgfgwwwefwvWwwVwvfvgwggffwwWvvgwvwvTfgvvfwUgVvwwgwvgvwwwvwWfVhfgvgfgWfUgewwwvgVhVffvggfVfffVggwgvvfvvgwWWVggfWgwwwwwvvwfffvFgwwvvwuuWgffvEgvfWfvgvgffgWggvfewgwwtfvggwgwvwxgxwgxhfwugvwwggxvggggfugvwfvwefVwgvwWffufvfwWWfvvfggwxwwxwgxWfwvgwfwwvwgxwvwgggvgfwgfvfvgwggwvwvvfxwfvgWWvwvUggfvfewfgWfvvewgvggffGvvvvwwvvfGuvvvgveXvvvvwvwwggvvffvwwggwvvwffWfvwwfvwwwffwvwgvWuvwwvfffwgwwfuvwgvwwwfxwwgwwgvwvwvwwwugwwwwxvwfwgvwwwwwfwwgfvwgvwgxvgwxuwwvwggwwggvVvvwwvfwgwwwgfwwwwhxfwguwwvgvgwwhwwwwgwwhfvwwxgvfuwwvfvvxwwvwwgefwwggfwfffgwwfgUvvvvwfwfgfvvfwwugfvwfwWwxwxxxwwxwgvwwwgwwxwxwwwxwgxwgwwwwfxwxxwwwxwwwwxwwwwwwwwwwxxxxxwwwwxwxfwxgwwxwxxxxwxwxxwwwxwxvwxxfwwwxxwxhwwxxxwwwwxxwxxVffgVeufvWgVwvggEfVWfvfvuwfVvgwwwgVWeGevfVffgfvwVWTWvfgvvfVuffffvweffgffwvgueffeVTugfwfuwfvxwgfgvfwvVvwewwvfvfvfwfffwvfUfuWfgvgwgxgVgvvfvvffwffwffgvgVfuWgVUvgvfvFwvgvgefvVgfVfwvfffefgfwggwfVgvfffwwggwgVgvuffefvggggfvvfVtEVfVfeffVuVgfffgfwfVfUTefevfwuefvufvvfwwveWvXvfgfgwffvggwwwegeWeffvvffwgvvWUGffvwvwVvfvegfwugehwfvgwevvveuUfxfvwXewgwgxgfgfwgghuwgvgwvvvfggffwwffgffgwvwvwwwwgfguvvuvgwwhfwgvvwwgfeggwfggwVgVwuvuvevfggwfgVfgvfVvggwwfffVvwvvwfvggggeWvuffevfwwwggvfwVutfggffgwVvefWfgVwwggggvfeeVvvvVeffegefvfvGgEwfVgfevgevfvvgvGgEgeVgfffvwfvWwFWeUwugwwvfufVvvgwfhvfwwwffwffwfVvxvwVwwfgvvvVfVwvwVvfeggvvVfUfvgwwgfwUfvggffgwwwwgguVvffwvfvfwgewwwvffegfgfwfgvFvvhvffgvgwvggfgfffevvwvvggvFevVfgfgvgwwfWugwvUeufffgvgvwvvUgggVvVgWvVgvggfgwwWvgfefegwwwwxhwxvxwwwvwggvxxwxwwxwwwwgvhfhgxwwvvwgvgwwwwwwwwwwwwwwuwwwxwwwwvwxwwgvvwxwxwwwwwxxxfwxxxhggwwfxwxxxwvwxwwwwwxwxxvwwwwxwwwwwwwwxwwxxwxwwwwgwwxvwgwwwwxwwxwwvgwxwwwwwvwwwxxwwxwwwwxwFUfVFUfVfgVVvfgwUvdfgeUffVVfeVffffefCefUVfUVfVffefCUfTewevgfffffewewVvwVfgvefgffetgvgwFgfWwwfgWVfwwgFfeVvvvfWVffgfvwfufUVffVWwvvvgwvUvgffgevgwVwVUfgfffVfgfVuwVefeVfugVffffgggevfvfVevgwufWffUVgvffvgevwwgEvveffTugffwVfwwvWdwfVvfefvgewfevguwvfVefUeFvwwvvwwwwhwwwwwwvvwfwwfgvwwxwwfwfwWvgvwwvxvggfgvgxxgvwwxfgwwgfhWvwwvwggwWwxwxxxxxgwhwvwhwwgwwwwgxwwxwwfwxwwwvwwxwxvvwwwhwwgwhgwxgwxwgwwwwvwxxwwwwwgfwgvwwwuvwvwwWwwhgxwvgwxgvwvwhgvwvwxfwxwwvwfwxvwxvwfwwfwvwgugwvugwgvgvwvvgvvwvvgugwgwvwvvvuwvfxgwvgwggvvwwgwwwwgfwgwvwwWwwwvwfvwvvwwwxxwwwxwxwwgwvwvxgvxwwxxwxvwwxwxxxwxfvvwvgggwvwvhwgwxwwxxhwwwwwwxxwwvwwvvvwwhwwvwwhwhwwxwwvwwwvwvwxwvwwgwwWgwgvgvwgfwwxxgwwwwWvgwvfxhwfxwxxwvxvvvwfvfwvgwwwwvwgvgewhwwxwwwwfxvgwxwvwwwwgwwwgxwwWwwwwwwxwwxwwwwwxxwwwxxxwwwxwxwwwxxxxxxxwwwwwwgxxgwwgxgwxwxvwvwxxxwxwwgvvwxxwvgvwwhxxgwvwwwgwwxvwwxwgwxwwgwgxwxwwwgwxvwxgwxwvgvvwwwwwggffwvwgfVfvfvgggwWfefuffvvgvgwwgwvvgfffewvefVgfvwWVVvwGeVfggWUvwwwwwgevvvgfgfgwgvwfvwwgfgfvwgggfVfgwfffggwwhfguwgwgvwwVUuwgfvgwgvvvfwgVVUvETVeeUVVVfgWfVeffUVevgVUfgfvVegvfffgfwwgvVuvgwgvwgfUuffgvUVEgfUVVfffT4wveVVfvVETvwfTTVUugwfgvfwfgvfgfwUwfwfgvgfwvhvwgfwfwfwVfvuWewffvwwffffwfgvgvWvgffwfvftgwfwVfwgfwevwwvwgwgvvwwwwvwwfgwfgfvwwwwvgvuVfvguvwwgvUfffffwgwvvwwggfwxgwgfwxwvwwvffghwwgvgvfvffvxwvwgwwgegvUUwfvwgwfwfgfwffwwwwgwvwvwfvVffEewfwvfwggvgvvfeWfvgfggwWugeffeGWWfVWffeuvtuGWWgWVufgWWvvfuffeWgfhgVvffetwevgffWgfegvweeuvfVggVfggcvVgWfvvfWfVvvfffgfvtUwwvwwfwWefffeeffvvvwwgVVvgfwwfffGWVfVUvvwgfuvgvVVfvffvuewwvwwgwggVugWwwvffWfggVVvvwwgfwwwggVVFfVWgwefffffWgfuvvfgvfvggggueeffFWgwwgffwgfeuvfDffVgfefvgvvfwfvuWeeeVVFfTFfecFdVTuUfvuWfWfdWgudVuWeuVUFfcVfedFeFUuEfefVfEwUUGefVuWUrUuWEuUVueUUvvffUgUfWgefffvwvfEUUVVfUVUVefvfedFeUefffffcEdVEuUfffeffffgvVfffWwuffgvwvvfeFfUvfgfefdVuWVeefvfffggfgfed6VUfffVffdFeFUuTfffvffffWvVVEwUUGdffffffwfeVgEUWUVgUUugwwfwUfwfeggvfgvVuvWvwEwVgvfuwwfgwWvwgvwVwfgfffGuwWvwUveWVvvewfvWvegewVvfgvcvegfffWfewwvWfugvVfwwwwgvwgevfvgvfvfwfvwWVUfegvwfvgwEvVgfvwwvvwgwfwfvvwvgvgwvwwvwgfeuvgvwwvwfVwfgvfvwvggvgwgwfgTfvfvwvgwwUvegUvwwwggvwWgffVWuEgUvwvwwfgwvgWfVgUfhfffwgwvwvgfgfWWffVWfWvfwuvGWWgffgwWVvgvfvVvWgggVffgutweuggggvUfeVfguuvefVuwfggffcggVfwfvVVfvwwvfvgweufvwvwfwVffggueVfgvvfwTUeFgVgWfggFVWgvUefwvefwvfWvfgwggeufvwwfweffWggggfvvVfgffUewffgwvvWfeVFWfgwWffwgWgWveTwwvewwuvGefeeeU6efwgefWfWfevvVWefWffeuggwfvvfwvwWevwffgwfuwVwWeffffvwgfgwvugfwgfggfgvwUvgfggvgvfffggfwfwUffvfevffgftgvffvvgwgvwwwhgfwfvUwvwvwwwgvwwvvfgvgvwgwffffvwwwufvgVugvffvwwwvfwwfffwwvvfgwgxwwvfewevwwegvgfvfvffvwhwfgwwwffgUufvwfgWgfvgvVfuwhgwfgwvWffffUfUefweVffgffdgfgUfhfegfwwwgVwfvhxwwwwwwgwfvwgxwxwgwwxxwfwxxwgwgwgvwwxxxwwwxxwwwwxwwvgfvgwxwxxwxxxwgwvwwvvwwwwwwwwwgegxwwwwwxvfvwfggxxwxxxwxxxwwxxwwxxwwgwxwwvwxgwwxxggwxwwwxwxwxxwgwwxxwxxwwwgwwhxxgwwwggwfvwwvggwwVxwvvwwwffvgwfgwgfgvvgevwwgwvwfhwvfVUgwfFuVWwgewwgvfgfhvvgvvWvwghwwwggwwwvwwwggwwwwvwwwwwwgfgwvwvvwwwgggfhwfvgxvwxvwwggwwvwwwwwvwwXUffeveffffffVeWvfgfffwWvufwgggWvwvggwwvggfhvvwfwvgwvfgWfeEtFVffufggVVfvwVuEWgfWwfeVWguwefvwwwvvvvVvvwgvvwvhvvgvwwwfvfwgvvgwfhvvvgvwwgegwvXwvgfdWvgVueWWwfhwwvvvegvvvfvvVvxxxvvwwwggwwwwwvwgwwwwwwwwwwugvvvwvvwggvgfhvvgwgwvvvvggvwwgwwwwvvwwwVVfeufeffffffUguufffvgvevvgwgggvvwvvwwwwhfhwvggwwfvgwwevEudVVffeggfVFvvWveWWfWggeVWGvugfegwwvggwvgvfwwggwWhfwwfgwwgffwvfvwWhffwwfgwvgvwghfvwfVgefwuUWvgfgewwfxVgvfxgfwvghhvfvwvgwwgwvgwxwwwxvwwwwwhwwgwvvxwwfwghuggvwwwwgwvgghwwvwwxwwwwwXeVVwffeggwfffWeVgffvvwwfgvggwfgwwgvwwwvwfhvggvwvwgwvwWffvEffffewggVvVgfuEfugWuVVeWeVwvfevgwfgwufwgfggvwwwxgwvvgxxggvwggxuVwhgffuvwfvvfefxhvfvxxvgdvfvwwvgfwwwvvwgwwwfwwwvwxWfvgfwwvwvwwFvwwffvgvwWvvffWfguwwwfvwwvwwvxwvwgwwwwwwwgxvvwvvwwxgvwfvwufgvvwwgvwuvwwuwgwxfwwwfxwUfgwhgwwwgfgwwwfwgwwevfwwfwxxvggwwgggwgvvwvhfvwfgwgfwgwgffwvXfvwefwfwffwwXfwvegwwfvUefwWewgevevvgwfvVvfwfvwwhhwwvwwxwwwwwxgwvwwwwwwxwxhgwfwwvgwwwvgfvwvvgwxxwvvvwghxgfwwvwvvggwWefUwffVwvvffvVuvfffvwggvevwfwvfxwwwxwwvwVvwvvvwwxwvvvwVfVgTfgUffwvgfffvfWTgVUgWUfVvWfwgeVvwggxfghwvugwvgWxffgwgxxwwwgwhgfhvvuvgvvghxggwwvfvgfegxwgFgvwvgvhvgvwgvwxvwwwvvwxwwxxVgvwvggwgwwwefvfwvvwwwgWwWgvhvgwwvwwwwgwwwvvwxwgwxxfwwwxwwwwggwggwgvxxwgxGfwfgvvgwgWWwffvgvggwxwwfexvvVgevfvwwwgwvxwgwvwfxgVfwwvwvwvugxvvhhgvvVwvuggfvvvvvhwwwvvwvvhhwggxfwvuXwfvwvgwvffWghwfgGvvffvvwvvhwvwwxwvwWvxxxwxvgwgvwwgwxwweWwvwwwguggfvvvvgxwvwvggvggwwwwxwxvfwwwwxxvwgvwwwhvWwfwwwxwugwgvgwxwvgvvfgWWfwvgwfggwwvgwWwfggfghwwwwxhgxgggxhvvUfgfxWwgfWgwhwwwfwvgxhwgvvvvVeffwgwgwvvvffwwfwwhWvffgFwvgvgfwgxgwgwxgfwvwwxwwggwwvxvwwxgwwxgwXfvwwuwxWwgwfwgwgxxwgwwwvwwxgxhwxwwgwvxxgxfwvwwvwWwhwvwvuhwXwhffvvwgwvwwvfgvffgggvvfgwwVWvwwfwghgggvwwWwwffvvgVfvvegvfwUtvVwgfffgfwwefwgwVufewwWffffvvwgfUwgggvfgVwVvgwffwgwgeheuweWvfwfvWefwvggwgfVvggwwggWwwggfvvvwvfgfffuffwwwvggUwfgfewgfvuvggfvWgwwvffgvvgwvfvevWvvwvUgfwfffvufegVvggwfgffffgwwvgggfwwWwvvwVvvwwwvwwUtgfffvwwggvwgfgvVufgwVfweeVgffvwwfVgwvUVvfeffvFuuvWfgevvefgfevfwWuvfWwwtfeugWvgvueFgvufffffVveggffwvwfgfefuffueffvTUgvgwfgvgfUfwffvgWgewvgfgVvfwwwgfffefwwvwvfffWwwfeffgvufvgwfwfxuwvffwfgwgfVgduffuwwvffVffffVwevvggWffgffUvwvfhweefWwgvvfgfvvfwhwfgVvdgfeVfgWVFfvvffVveVffgffeffWVUdvWVfffEVefeVUefcEVfVfVEfEVefeVVefcEVffffUffgeewtfVgefgVvugffvfufVffgxfgefvVwfVgvewWFvfwwVvweVfVefffgfvFffVVVVfwvvfvfVUUvffvgggfVfTffEfevwVgvwwwgFvvfVVVwvvwgwwWeUVVfwvvWfVffffVefevgffvvwwfVUfWfwvffVWgeggVvvewfvvwvvwfuFefVfgfwgfWgwwfgvVVefVvwVdWfgfUwgvgvvgwwwwfwwwfgvgvvfvxwwggwwwvgvxfwguwgxwwwvwwgwvfxhwwwgvxfgugvfwvgwwgwwgwuwxwxwwfgwwxgxwgxwvwgwxwwgwwwvwgwwwwxwWgvvgvxwwwxwwwwhwxxhwvwxwvwwxgvwwgvgxwwwvwwwwwwggwwgwvwxwwwhvfvxfwwwgwxwwgwfwwgwfwfwwggwffuWVfeVfffgwGUwegvfwUUvfgwffgwGevTfwfvefgVfwGvvTfvfvevwevgfgwfguwgffwfvfgwfvwfgfuvxwgvwvgfeegwwgfvWvgffVeegggWgfgFfuvgvwfegwVevwVUevvwvfwwfgVwwfVffggwVgwgFvfvggvfwvffvgVffvffvfgwgwgWeffwwwvvgvVvvgwffvvgevwwggfgUgvfgUfvwvffwwvugewgewfffVwgffVwwhgwwxfxxwvgwghwwgfgwwwwwwwwwwxwggxxvwvwwxwhgwwwwwxxwwWwwwwwwwwwwwxwwgwxwwxwxvwwxxwwwwwxwxwwwwxxxwwggwwwwvwwxwwwhxvgwwwxwwwgwwwwwwwwwwwwxwvxxxxxxhvvxxvhxwxgwwwwwwgwwwwgwwwwwwwwxwwwxwggwfwxgwwwfwwxwvffwhxwwwgvVgwwgwgwfwvgvvwwwvwgwwwWwgwwwwwwwwwxwxgxhvwvxxwvwxwwwwwgwwwvwhwwwvxxxgxwwwwwxwxwwgwxvwwwwxxwxfwxxxwxxxxxwwwxxwxxxxvwhwwwxwwwwwwwxhwgwgwwxxWvwgWgwgfxhwwfvgwxgwfWvwgwhwgWwvvgxwvwvwfffwvwgwwvgwwwgwwxwfwvwWgwgvgwwwgxwvwvwgwwvgggwwvxggwwwxwghwhvxxgwwwxvwgwvwvwxwvxgxwggwwwxwwwxgxxwxwwxwwwwhwwwwwwvgwxwwxxwgwxwxwxvfxxxwxwgwwwgwwxwfwwvwWwfwwgxvwwwwxxwfwgfwWgwxVvwwVvgVvvgvwhvvgwgvVvwWVfwwwgfvwgvgwVgvwhfwvgvwvWvvfwVvgwvxwwwvwxwwxgwgvwxwxevwfwwwwwvwwvwwffvwgvgfwvwfwvwgwhwwgvwgwwgwgvwwwwwxfwwuvwvwgwWUfUwUVefwfhgfVeefwffvgffVgfvvwfwfgvwvwxwwgvwwwvgvwvvwwwxwgUUgffwvgwvgffwfwfgfUffgwfgwwfvxxwwwwwwxfhffxxwwxwwwwwwwwhfxffwvxwxvxxwwwwwwwwwwwwwwxwwwwvwxwwwwxgxwgxwwwwwwwvwxwwwvwxwxwwxvwwwwvxxxwwwwwxwwxwwwwvwwwxwwwwwgwwxwfwwwwwwvxxwwxxwwwxwwxxwwxwgxwgwwwwxwgwwxgxwvwwwvwwwxxgvgwgwxwwgwwgghvxwwxwvwxwwwgvggwwhwwvwgxwwxgwvwwxxghwxvwwwhxwwvvwxwvwwxvhWgwvwxwwwwwwwxvwwxwwxvwhxxgwxwwgwwwwwgwwxwwwwgwwxwvggvhXgwwgxxwwxvwxwgvwwwwvwwxvwwwxwwwgwxgfhwwwxwhwwgwvwgwwwwwgwvhgxuwwwggwwgggwvugugxvxwwfwfwvvguWwfhwvwgfwvvwwvwvgfvvxVwfWvwvwgxgewvvwvvwggwwvevwwwwwwgwwgwgxwxgvwxwwvgwwxxwwwwxwwwwwgwwgwwwvvwfwxwvxwwxvwwwwwwgwgwgwwwwwfwxgvxvgwgfwgvgwvfwvwxgwuwwwvwwwgwggwffgvfxfgvgxvvwgggwgwwwvggWuwfwfwhvvwgwwwwgwWvvewfxvwwwwwhvfxfwuwwfwggwwwvwxfwVwvgvWfvfwwvvwxwwxwvhwwwwXgggwwxwwwwwgwfwvwwwwxxwfwfwwfvvxgwvwWvgvhwvwvvwwwgwgwvwwgwwwwwwwwgvvxwwwvwvgvwxwvwxwwxfwwwwwwuwxggugvwwvwwwwwxwwwgwggffgfvxvggwhvhgwwwwxwwxwwvvwghwwwwgwwwxxvwgwgxxwxwvwxwhwwwvwgwwvwxgwwfwvwwwgxgwwhwwwwwwwwgxwvwwgwwwwwgwwxwvhghhxWgwwxhwwwwwwvwgwwxwvgxhxwxwwggwwwwwxwwwwgwgwgwwxwgxxWgwxgwwvvwvvwwwwwvvxwvwwxwwwxwwhfwxgwwgwwwfwwgvxwwWWhwWwxgwwgwwfwWwgwwwgwwwxwwVwVxWwwwwvwwwvxwwgwwvxwwwwxhgxwwwwxwwhhwfwwwwwwwwwwvwvwgxwgxvgvwxxxxwxggwwwwwxwwxxxgvwwfwwwwwwwxvwwwgxgwwwvxwgxwghxwwwwxwwfwwwxwwwwwwwxwwwfgwxwwwwxgUxwvwwwUvwwufuffgUwWewfvwwvfvwfvfwwwVuwweWuffvexxxwvggvwfGwgffwwfwvwwgwgwwvwwwwvwVwgwwwwvvgvwwwwwwwxVwwuwwwwwwgfffUwfgxxvwgguwWxwwwxxfwxwwxwgvffxwwvgxwwUwwvwwwwwwgfvfUxffwxgwvgxwfwxxgvwwwffwwwwwxxgwwgwwwwwwgwwgfvwgffgwwwwwwwvwgfvvWffuwwwgwwgfvwgffxwwwwwffvwwwgVvgvwgvgVvgVUuwgfvwwwxwwWffffwwggwffgWUefgffvwwwvwwwewfwwgvvwwgffffvwwVEuwwwwffhevwgwwgffffffffwfWfVUefffevwwgffffvwwwgwwwewfgfffwwwvwgffvwwWUtwwwwffVwwefVffVUUffvwwfffUTvwwffUEvwgwggwwvgwffvvwvwfVxvwwwgwwwgwffwvvwvvgwfffewvwwwwvWxgwwwgVvwwwgefwxxwwvwwwwwwvvwwwwvwwvwwwgffhwwvwfexxwwgwwxwwwhxwfxhwwwwwwwxvwxwwvwwwwwwwhwhwgfwhvwwvgfvVfxwwvxwwwgwwfwvwwgfehwgffhVfhvxwwwwwwgwwwgvgvxgwVggfefwwuvwuuggfffWtwwfgvwwfwvvwwggwWuwwvvgfvggVWgffVgwwfvvGwwWgfggevfggfvgfgfwwwwwufxxxwvgvwwgvvggwwfuvwgwVWwvvfvVfgwvggvwwwvgwvWgvwvvwwxxvvvwwwfgvwwvfffwwvwvwvwwxwwgwgeffvvuuffxvvgufwvwvvwwgwvggwuvfvvEwvfwUwfVhfvxwfwwwwvufwwwvwvvwwwvfggfffWwvFgeufeWevewwufgwvWwvvgvWffwfwfVwuvVuGfvUwuggwfwf6gvvgvgVvfugfvvfveefgwwwwfwvvwwwgvwwwvfwfuffgvfvwwwgtVWwVweegfwwgfwvwgwwgwwwwhwvWwvvvwwwwwwwwufgwfgefgwwgvwgwwwhwwgwgvgeWgwUwdfWvgvfvwwwwwwgwwfwgwggffVfWVgffhffWUfvwwwwwwwvwwwwfwvwwwwevvfffwgvgWtvVvUgufuwwfvhgvwguwfwegfvfWvfVuwevTVufvwfwgvWvf7fwewfgufvfgvfgvVfevwvwwgWvgwwwfwwwwgggvVfgfwfgvwwwvEwguVuVgfwwgvvgvgwvgwwwwgwgwgvgvgwwwwwwwwVvgvWffgvwfwvgwwwgxwgwgwvvUwWvGefgefwggvwwwwwgwwwvgxwWfffVgVgffhfUgfVfwwwwwwwwvwwwwvgwwgwgfVffgwwvvvuugffgeffwWgwwgvwvvwwggwUwwwuvgfvgfWWvTwgggvgvuvwGwggggfvWfvfvvfefggwwwwvggwwwwwwvwvvVfwvvwgwwVWWvvfffhfgvvevvvwvwwwwvvwggwwevgwvwvggfwwwffgfwwvwwwwwwvwgwgfgwvvuegVvwvwvvwwvwvfwWfwffvfXfvuvWugGugvvxwwwwvwwvfwgwvwevwwwfvvvwgvggwvfgvwwwfevwggffwwwwwwwwwffwfvvwwwgvwfvVfvwvvwwvvwwWwgvwwfvvgwwwgfvwwwxwwfwwwxxwwwwwwwvwgvwvggvwfgvwwwwgfgwhwwwwvhwwgwwwguwwfwwgxxwwwgvwwwfwxwwxhvgwwghhwwwwwvwwwwgfwffwxvgwwwhwwwwwvWvgfwwgVfvfhfvgefwwwwwwvfwwVwwwwwwexwwwwwgwwwwwxxwxwwxgwwwwxxxwwwwxwwwxwwwxxxxwwwxwwwxwwwhwwxwxgwxwwxxxxxxxxwwwfVffWEeefffefffVfU4VeefVwffwVvvvfggfEWvufwVuevvVVfEgvuvwfvVvgvfVeggfTguugfgevfvfFUfxfwhvwghvwewgfvgwgefwWwwdfgeevwgvgVggUdegwvwgfgfwVfffwWfefwgfvggwwevwfvgwgfweggfefgffwggvWhggfggffevggfwfffVufgwefggfgwWVVffgfufvgvwUuEfvVVgwVWgeevvwwwVWgfwVggfwdUVgfvvVUevggwewvfggUGvuvgfvgwhuwwgwgeXuvvvWvdvfgfffGfvfwvgWvwgfwwwUhwvvfWvvufvfUfXwwvvgvwhwfvwgxeffvwWfgefwvgvgfwwgvehggwwwwvwwgevfwuevgwvwgvwggvgvwgvwvwwgvfgwfgwwvgggwewhxfffwwfgfwwWvegggwwwgwwwffvggvvfgwwgWeWggvegWwgggeuwwvwggwvgfWfwwefvffwfVvefwugvvwffGWeVffVfvvwuffwwgfGgufwfvuVffwfgWgefvugwvgwwfvgfwgWufwVfvfwfUgfVvvwgfvwhwvggvfwwgffggwwuwfffvfwgvggwvUwvWvgwwwwgfwwgwVwfffvwghwwuxgfvwfgvugfwvfwgfvwwwwwhfgxfggvwwwweggwvfgfWvwgwgwvgfvwfffvugggxvVgffeVwwggvggefwwwgvgffgwgwwfUxwxwwwwgwxgwvxwwxwwwwxfwwwwvfxfwgvxwxxwWwwwwwvwwwwwwwwxwwwwxxwxxxwxwxhwvxvwwxwwxvwxvxxwwxxxhxwwxxxwwxwwhwvwxwwwxwwwxxwxwxwwxxwwwxxwwxwwwxwvUefvUefvvVvvffUfvEefVdfvfwwGeffgffvevwfevGeffgefwefweuwfwWfgeWefvwUvwVffvvgvvefVevwWfvvwwwvwfgvfwWfvvgwvuwfffgwggffvgWfwgVwgwwgwVvvVwwffffVfgfXwgvwvfffggewvgwWfvffvwfwvgwWvggwggvvwffffgwgewWfvwgfvwwgfffgwvvvwVggWTwfVVevgegWfVVvwwwwgffgfffwvfUvwhgggwwwwwvvvwwvwgvwXxwwwwwxvwhwwgwwgxxfVgwwwwwwwugxgwxwwgwwwvxwvvwgghxwwgwxwwwgwwwwwwgfwwhwwwvwwwwwxxxvgxxwwwwwwxwxwwgxxxxwxvwwhwwWfvxwxxxwwwvgvwwwwwxvxwgvxgggvwwxxwxwwwhxwgwwwgwghvvwwwwfufxvwwwgwxwwxwwvwvgwwwwwgwvwvvwwwwuxwwxwgwvvwwwwwgwggwwhwxwwwxxwxwwwwxxwwwwxwvhgwwvvhgwxgxwwxwwwxvvvwxwwxwwgwwxwwwwwwwxxwxwxwwwvxgwfwwxhwwxxwxwvxxvvwgwwwgVwwwxgxwvwwfwwgxgxwwxvgwgwwhxvwvvwwwwvhwwwgwwwxwvxwwwwwwwwvwwxwwwwwuxwwwwxwwwwwwxxwxxxxwwwwwwwwxwxwwwxxxwwwvwxwxxwwvxxxwwxxxxxwwxxwwwxwxgwxxwwxwxgwwgwwhwwwwgxxxwgwwxvvvgwfevvevfugfggEggvwfgvggewVwggwVxgvwwvwfvgvfgVxfggffgewwwVvggvgexwgfvgUxwwgevgfwhxwgwwgxwwwxwgxggwguvwvvfwgxgvwwfuwwvgvgwwwvwhgggvvwwxwwxwvgvxwgwwhxgfveffgvggfwgwwwgggfwvwwgwwwvwvvgwewvfggwwwwwgggvwgwvwhVuwfVfvVfgwVfwfvwvWgwwwwvxVggvfvxfvggefVvuwgvvfwvfXgfffgwggvwVvwgvvXvvwwggfvuvfveGfvgvwwegvwWvvfgweXwwvfuehwwwvfvfgwwwwfwwhwgxwhxvvggwfWvvgwxhwgvwwvgWvggwggwwggggvfwwwwwxwvgwwgwwwhwffvffVggwfgfgwgwwgwvvwgwwwwgwwfvuwgfwwggwvwxwgwvvvgxwwxVugfgVWvegggfVgvvwfgWvwwwvxgWwfvvhvvvuwfuuvvtVwefVgfffggvfevvvtVwfwWwvfwwgwwfgfwggeggvvwWgvwwgwwwggvwwewfhfggwfwggfwxxggvwwwwwwhwwgWggfxvvwwfwvxWgfvfvvgvgwwwwwgwwwxvgwwgWfgvxwwwwxwhfegvfgvwfwvgwgwxfwgwwwxwwfwwfvvgfgvwwfgwvwvwvwuwwwxgVgvVvgvVfvggvggvwvgvgwwwwgvggfwvxwwwvwfgxgwwxxwxwxxxwwxwvvwghxhggwvxxwwWwwgwwwwwvwwwwwwwxwwxxxxxwwvwwwwuvuwfxxvwvwwwxwwwgvwwwwxxxwwxwxwxxxxxxfwwgwfwxgxgvxwxwwwwxxvfwxxwxfwvvwgwwgxxwhwxxwveffweVgwwXfgggwVfvgggwvVwwvGewvgwegvwvwwvGevffwefefvvvfwwwWfwwwfvwwwfwffvvwwVvffxwWgfvwwxvwwwwxXgvvfvgvwwxvgxxvvvhfgwwfffwgwvwwwwwwgegwwgggwwxwwwgwwgfwfgfegwfwfwvxwwxxwvwvgwxxwgwvvgfWfwgfwvwxwvxwwwwvwxwwggevgwgfhevgfvgevgwgwgfwwxwgwgfvfwwxwwxxvvwghvvhxgwxwwwwwxxwvwgwgvwghwwwgxuwwwwwwwwhhwwgwwwxwwxxxwxxxwxvxxwwxxggxvfwwwvgwwxxgwwwxwxxwxxwwxxxxxuhxugwwxgwwwwwwxgwgvwwwfxwvgwvggwwwwgwxwxhgwwxwwxwfwgwwvwhvwwwwxxwgxwwwxgggvvwhwwwvwwwuwwwwwwvxwwwwwwvwwxwxxvxxwxwxxxwxxxwwwwwhxggwvwgwwgxxgxwxwxwwxxxxxxxwwxxwxxxxhhggwvwwxwgxxgxvwwwhgwwwhwwwwwwhgwwwghwxwhxwwwwxwwxwvgggxfwwgvwvvwxwgwxwwwxfwgwwfvwxwxwgwwwwuwwwwwwwwxwvvwwwwxvxwwwxxxxhwwwxwxwvgfwxvxwwwhwwwwhwwwgxwwxxwxwxwxxxxxxxxvxgfwxwgwwwhxwhvwxvwwgggwwwwwgxwwwhxwxxghvggdfVVdVvwwgfggwffeevgUwufgwgvVfwgwggUvgfwfvVfvgwWVVvgvxvgxwfvgwgevwhwwgvwwvggvxwxwWvwwvwgfwwwgVwvgvwgVvVfgwwwwwffvwgwvwwvwwwvwwgvguvwgwwwwwvwwfvwwgUfwfffffwfffffvwwgvwvwWvgvwwfgwxwfvvwwwwgfwgwwfwffVfffgwfffwvwwwwwfgvffwwwwwvwwwvwwgwVvvvgvwwwwhgwwxgfwwxxwxwwxwwwxhfxwxhfvwwxwxwwwgwwfwwfwwwgvwxwwxxxwxwwxwwwwwwhwwwxvwxxxxxwfwwxwwxxxxxwxvxwxxwxxwxwwwwwxwwwxgwwwwxxwwxgwxwwwwgwwxwwfwxgwgwhvgxxwxxgwwxwwwxwvwxxwgwggxxwwwxxywwxvwwxwwxvwwwvghwxwwwwwvxwxwwxvwwwwfwwxwwxxwxxwwwxwwwwwwxvgwwwwwvvwxwxwxwxgwvwwwxwwxwxwwxvvxwwwwxwvxxwwxwgwwwxxvxxxwxwxwghwxwwwwgvwxwgffhwwwvwwwwwwxwgwvwwwhwxxwxwxxvhwwwxwwxgxxvxvwxwxxgxwhvhgvwwwwwwxwvxwxxwgwgvgwvwwvxxwwxwwwvwxwxxwxwwwwwwxfwxxxwwvwwwxwxwwwwwvxwxwwgwwwxwwwgxwxgwxxgwwgwwwwxvgwwwxwwgxwwxgwhwwwwvxvxxxxhwhwvwvwvwwgwvvgvxvgwVwgwwvwgwvwWvxwwxfwvwwwvgvwwwgxwwwvwwvwwwwfgevwwwwwwffwgvvwwwhwwxwxgvwxxwwxvwwwxgxwwwwwwvwwwwwgxwxxxgwwvwxwxwhwvwvxwxgvwhwwvwwwwwwwwwxwwwhwxxwwwwgwwhwwwwwxwwwvwwvwwxgvwvxgwwwgxfvwggwwxwwggxgwwwwwwxwwwwxgwxwxhwwwvwxxvhwvwxxwwwwxxwgfwxxxxwxwvxwhvwwhwggxxxwxwwvwwwwwxwxxwxwwwwwwwwhwwwwxxwwxxhwwxwwxwxwwwwxxwwwxwwwwwwxwhwwwwvvxxwwxwxwggwwvxwwwhgwhwwxvwwvvxxwwwwgwwwxwwwwfxfxxwxgwwxwfvxwwwwwwfxfxxxxvxxxxwwwwxwwxxwwwwwwwxxwxwwxxwxxwxwwwwwwwgxwwwxxgwxxwwxwxxxwxwwxwxwwxxxwwwxxxwhgwgxxxxwgwxxwwxwwwggxgwxwwxfwwwwwwfwwwgvgxgvffxwgfwwgfwwwwwwwwwwxwfwgfvwvfvgwgwvwugvwxwwwwwwgwwxwwwwwwwwxgxgwwwgwwxxgwxwxfwwffwwxxvwxwxfwwwwxwwhvxwxxxwwxxwxxwwxwxwwwfwggfgxfwwwwwwwwxwwwwgwwwwwxwwwwwwwwxwwvxwxhwhwxufvfgUeuvgVtfftfffwfvfvfvvwfvVwgwwWvvwvguvUtfggggvuwwwxVgvgfwgVWehvfvwguvwvvWefxwwgwgfgvhwwgwwfVfgeVfhfwwwwvvfUgwwvffgwffvggvvvwggwvwwgwggwgffgxwwhwwgfgwwwgvggvguwffffwwhxwggvwwgVgwwvffgxfguwWfuwwggvgwwgwwfuVggwwgVgwfWweewwVgfggwufwvgwvwfvevfUTefwVveVvTVVggvuffefgwVvvWvdgfgfuuffffeFecVeffeeewvgWvfgfUfvfgdWfvfgfvfevuuEVfgxfvfWfgvfwwwwgwVfvGUVvfgwwvwvfeWffvfgggWVVgfveffgefvvgwfwgvgWffgwgwwgwffVfgwVgfgfgfgffefgwfgggXwwgeUFfgwgVgggVffgeefwwvgvvgfgwVUueWWvvggWWfFgeuvfgWfWWfTuwwgvgvgfffwvUefvftVeuffvffgVwuUefvwtVfufffffwfwuveguuEfefffeftgwufvgUufffVguVgfvwvgvewfVewwgVvfVvfxgwggvfgVggeffwgwwfwvgfgevwffgugffffvggvwgvfwwwwggVggvgfwgwwwwfwUgfvwgvffgfuwfggvvggwvwwvwggWgfgvffgvWgewvwffwxwewwvffVeVuEgufvvVvggfWeegwfffgvgfUwhwwgfvvWxwggwwwwwffVvwwvxgxvxwwwwwvxgwwgwvvwwvvgvxwuwwwwwgvwwwwwvgwvwwvxvvgxxwxxwwxwwwwwwwxxwgvwwwfVfxxxwwwwwfvwxxwxxgwxwwxwwwxxwvxxvwwxwxwxggwwhvwgwwwwvvxxwwxwxwwwwwvvwxggxghvwxwxxwxxwxwfVffgVVgvfWefWevvfvggfufvfwwWfgGefvvwwwfvgWvvGUfvvvgfevwwwhvgvvgffevVevUvvwwfvwfffuxwwfwveffwwwwfwgffveffwgwwgfggwfvvwugwfVffvvggfuwwfwfgwwwffgwffvxwvgwwgvfffwuwgvgfvvwggvwwgfwwxxwgwVuvwfwwgWfvvvwwewxvwwwwgffVegewgfvwwggffvVfwwwfwgffUwwwwffwwwwxxwggwfvxxhgvvwwwwwgvxhwwwvgwwxwxWwwwwwwwwwgwwwwxxwhxwxwwwxxxwxwxxwgvxxxwxwwxwwwwxwwwxxwxxwhxxwxwxxxfvwwwwxwwhxvwxxwwwwwwxxwxxwwxwwxwxxxwxxwwwgwwxwxxwwvxwwwgwwgxwxxwwxgvwwwwxhxwwwWwwwwwxwxwwwxwxwwwxwxxwwwgwwxwwwxxwwvwwxxxxwwvwxwwwxwxxwxwwwxxxxwwwwwwxxxxxwwxxwwwwwxgxhwwgxgwxxxwxxxfwwfwwggwwwfwwwwvgfwxwgwwgwwxxxvwvwggvwwwxgwefhwWwwwwwwgwwwgwgwwxwwwvvggwwwxwwwwxwwwwwwwwwwxffwwwwxxwvwxxvfwxwwwxwxwwxxwwwwxwwwwxxwwwwwfggxwwggwwwhwvvwwwwvwwwwwvwhwwWfwgvwwwhwwfwxhxWwvwWvvggfgwvwwwgwVvwwwfwwvwwwgxvfwwvwgwgwxfwxwwgvvwwvgffwwwwvgvwwxhgwwhwwxwwggffwwwwgvxxgwwwwwvwgvwwwwwwwwwwwwwwggwwhwwxwxwgxwfffwvvwwefffvffgffffvffwwwxwwwwwgvwgvwwwwwwwwwwwwwwwxwgwvfwvwwgggwwffgfvffVwfgfvwwwfuxwwwvfwgxUvwwwWwxxwwfwwgxvxUwwwVwwwwwwxwwwxvxffvwgvwwxxwxwwwwxwwwwgwwgfwwwwwgggxxxgwfvwwgwvvxxxxxwxwwwxwxwxwwwwxwxwxwgfxhxxxvwfgvvwvxwwwwgvwwxwxxwwxhxxhgvxxxxxxxxwwwwwxgxxgwvwwxwxwxwwxxvhvwwxgwvwxwwwwwwwwwgvwvgwxggxwwxxxgwwwxxvxxxwwwvvhwwwwwvgxxwvgxfwgVwvwvwwvwwxwxwwwxxwgwxxwxwhwxwxwvhxwvxxwvwhWwvgvxvwvwgxwwwwgfxwxwwwwwwwwfWwvwwxwwvwgwwwwvwvwxvfwvwwXwvwwvgwgvgwvwwugwvxwgwugwvgvfWewwwxhwwwvgwwgffgvvvgwwVegvwxwwxvgwwgxwwwwwwvgwwghwwwwhwgwwxwxwhfgvgwvwgwvvwwhwxxwwvvgxgwxwxwwxwwwxwwwwxwwwwwwwwwwxwgwwgwvwvggwfgwuwgvwwvvvxxwvgggwfwxwxfhvfgwvwwhgWvewwwxwwfwvggwwgwwvwguwfugwvfggwxwwwxhwWvwwwfwxvwwghwwwfwwvwwwgwgwvwfgffVvgwwwxvfgwvwwwfvwwhwwxwvwvwwfxwwwwwfwwwvwvwfwffgvvgwwwwwuwxwvwvwwwxwwxwwwwxwxwwwwwwwwwwwxvwwwwwxwvwwfwwfwvgfgwwwvgxwgvwgghfwxwvggvggvwwVggvgwwwwugwwwwwwwvvvwwxghwwxwwwxxvwvxxhwwwwwwwwwwgwfwfwwwwvhwwxxxxxwxwwwxxwxxwwgwwwxggxwwggxxwxgfxgWwwvwxvvwvhwxxxxfwxxwwwxwxxxxxxwxgwwxwxggxwxwvwhhvwfWwwvgwwwvxwwwwwwwwxxhfwwwwxhWgwvwwwwwwvwxwwwxgwfgfxhwwwxxxwhwxxxgfgfhwxwwwwwxwwxvwwwhwwxwxwwxxxxwwgxhwwxxwwwwvgwwwvwwxwwvwxxxwxxxwxxwwxxwwwwwwvgwwwwvwxwwwxwwwxxwwwwwwwxfwxfxwxwfwfgxwwgwvvfefxfgwfggwwgwvgwwvwggggffwefwxxWvwwwwvwwwwwfffwwwwvwvwwxwwwvwhvwwgxwxwxxwwffghwvhwwVfxwwwwwwxvvwvwhvwwwxxvwwvxwhwxfwxwwggvhfwhwxefwxxwwwwxwwxxwwwwwwwwxwwwxwwhffxwwxWugwVTffugfgWVVvvgvVvgfdgfvgvgWgevvgvWvgvwwvgeefgfggvgxxvxvwgfwwwWfvvgwvgwgwwgvwwgwwwvvfwwwwwwwWfwgffVwwxfewfvvwggvwwgwfvVffvwwffvwvwvVwgwvfgwwxwwweffffVgfwffvgfVvgffvwgwwwwwwgffwwwwvwgwgwggvgewwwwwxwgwwwwfwffgffwfgvwwwwwwgwVgwwgvwgwggwwvxwwwwwfxhwvwfxxxxwxwxwxwwgxgwfxwxwwvwwxwvwwfwgvwfwwxwxwwwwwxvxwwxwwwwwxwwxwvwwwxvwxvwwxwwwxxwxxxwxxxxxxxxwwwxwwwxwxwwwxwwxfxxwwwxwwwwwxwvgvxwfxxgvwwvwwxwhxhxwwxvwwwgvgwwxxxwwxwwvvwwwwxwwxwgwwwhwvwgfwwfwwvwwxwwwwxxwwxwwxxwwxwwwwxxxwxxxwwwxwxfxgxvxwxxxggwwxvwwwxxwxwxxwxwxxxxwxwwwxxwwwwwwgwwwxxwwxxwvwwxxxhwwwwwwwxxgggwvxwgxxwwvvwgwwwwwxxhwxgvwwgvghwvwwwhwwwvwxgvwwWwgwvgwwwwwggwvwwvWgvwvwxwwwwgwgegvwwwfwgwgfxwwvwwwxwvvwgvgxwxgwwwwxvgxwwwwwwwvwwwwwgxwwwwxwvwwwwwwwxxvwwhvwxwwwwwwwwgxwwwwwwxgxxxwwxwwxwvgwwwwwgxwwwhwwvwxwxwwwwfwwfwvvhgwgwwvwhgxwwwvxwwwwxwhvxvxfxwwwxwhwgwxvxwwxvxwxfxwwwwwxwwxvgwwxvgwxgwwxwwwwwwwgwxxgxxwwxwwxwxwwgxgwwfwwxwwwwwxxgxwxwxwxwxxxxvwwxwwgwwgwwxwwxwxvxxvwwxxwwwwwwxxxwxxwxxwhvwwwxfxwxwvxxfxwwxxxvxxwxwwwwwvgxgwwgwxwwvwgwwxwxgwwxwwgxhxwwvwwwxvwvwwwgvwxwwwwxwwxxwwxhgwwxxxwwwwgwwwwxwwhxwwhgwxwwwwxwwwwwwxgwwwxwwxxwwxwxxgwwxwwwwgwwvwxwwgwxwwxwvwwvgwvwwwghfxxvwvgwwwwxwwxvvwxxwwwwxgfwxwhwxxgwhgwwxwwxwhvfwggxwwwwwwxwwwwxwwxwwxxwxwwwwxwwwwwwwwxvwhwgwvxwxwxxwwwwwxwxwwwxxwvwxxxwxxxxxxxwwwxxxxxwxxwwxvwvxfwxvxwwxwwwfwxxxxwwxxwgwfwxgvgvvfggfxwgfxwwwwwwwwwxwfggvvwgvfwwhuwxwgvvwwwwwwvwwwwwwwwwwwxfwwxwwxxwgwhxwxwxwwxggfvfxxfwwwxwwwwwwwwwgxgxwwwxxwwwxxxwwwwggwfgxwvfwwxwwwwxwwwwwwwwwwvwwwwwxwggwwxwxxwwwwxvgxxwwwxxwxwxwwwxxwxgwwwvwwxwwwwxxxxwgxwwwwwgwxwwxwxxgwwxwxwwwvwgvwgwxgxwxwwwwwwxxvgvvwwwwwwwwgwwwwxgxwxxvxgwwxwwxwxxwwwwwwxgwxwxxwwxgwvwxwwwxwwwwwhwvwwxwvvxwwxvxggxwwwwwwhwwwxwwxxwghxxwxwxxxxwwwwwxwxhvhwwxwwxxwxxwwwxwxwwxxwgwwwwwhwwwxxwxwxwvvwxwwwxxwvwvvgxgwwwwxwxxwwgwwwwxwwwwwwxwxvwxxwxwwwfwwwwwwxwwwvhwhxxwwxwwwwwxxwxwxwwvwwwxxvvvvwwwvwvxwgfxxxxwwvhugxwwwwwwwhxxwvxwwfxwxwwxwwwgwfxwxxwwwwxvwxwxxwwxwwxwwxxxwxxwxgxwwvxxwwgwxwxxxwwwvhwwhwgwwwwxwwwwxwvfwgwwwwwvwxwhxwxwwxwxxwwwwwwwwxggxxwxwxwxxxwvwwgwxwwwvvwwxwvxwxxxwwgxvxwwwwwxhwwxgxwwwwgxwfvxguwXwwwwwxwwwwxwhwxvfxhvXvwwwwwwwwvwwxwvvfwwxvwwwwxwfwgvwgwggwwwwwwwxwwfwxfvfwwxwgwffvwvwvwwgvxxwxvvhgwwwxwwxhwwwwwwwxwffwwxwWvwffwgvwvxvgwxwfwvwwxwvggwxwxhegfwxwwwwwwxwhvvwvvwwxxwxxxwxwwwvwxxwvwxwwwxxwxwwxxwwxwwwwxxwvwwxgwwxwwxgwxwvxxwxwwggwgwvwwwwxwgwwggwxwwwvwwxwxwgxxxwwxwxwwwxwwwxwhwxwxwwxhvxxwwxwwwxwhgwgwwxwxgvwwwxwhwxxwhxwgxxwvxgwwwwgwwxwwgxwwxgwwvWvwggwwwxxwwwwhwwxxxxfwWuwgwwwxxwwxgwwwwwgwfwwwggxxwxgvxwwhvwwvwvxxxwxwwgvwwwxwfwvvwwWxwffvvwgwvgvwwwxxfggvwwxwxxhxwwwwxxxwwxwwxxfwvvwwwggwffgvwxwvwfwgwgwwwhwfwvxwXvvwwwwwwwgwfxxwwwwwwwgfgfxfhxwwvffwwxwxxxhhvwffxghhwwwwwwwwwxwwvwwwwwwwwxxxxxwgwwwxwxgwwwwwgxwwwxvwwwvwwwwxwwxwxxxwwxwwwwwxvxxwxxwwwxxxwwxhggvxwvxfxvwwwvxwwwwwwwwwwvwwgxxxwwxxxxwwvgghxxwwwghxwwwgwwwwwwgvgfhfgvxxwwwfxwwwxxwhxfhghggfxwwwwwwwwwgwwvxwwwwvwwwxwxwwwwwxwxwwxxwwwvwwwgfxwgwwwvwwwwwwwwxwwwxxwwxwvwgwxxwwggxwwwxwwxxgwxwvwwxwwwwwwwwwwgwwwvxxxxxfwhhwwwwwhhxxgwwwggwfwufffwwfgvwgvgvggvfvfVwgggfvvVfUvvvfwwwgfvvgfUegwgefvgVfUwvgwgvVvvWfEevVVUuggwvwffwwwgwgwfvwvvvfwwwfvvwgefuhvvUUfffffgvffvvwvvfffvwwfefeeVffgfeevVeVuWfuTEefeeVWfVfefwVffUfefwVUugwvefvfUeEwwgwgffevVefeegEUtffwgfffvVUeUfvfECvffwgfvfUTfwgDTUTuwwfwvwggwVuwgvwfvfwgvvgffwgvgvwfwUwvfvvfvvgvwfgVxtwwwfwffgfvgfwfvffwgVwgVvgfgwwfvwvgwxxwwwwxxgVevgvwfgffvfwwwwvgfwgvgwwwxwvwwwwwwwwwwfwgffwgfgfgUfgfwwwwhvgvfwwwwvwwwwwfwwwwwwfvvfUffVfvUewfffUffwVfgUvffvvwwxvwgwwwhvfwfgwVvgwgwwvwffvggwfvgvwvwggfwfgfweewveffWfwfvfgvgfgeffueVgFWgVvffefwvefWUWfcffVFgfeeufVfgWgggfvUWfVvVfvffvwggvgwwgwwwwwwvwwfefwvuggVffeuvvvwfggwVwvwwvvvvgvvvfwvvWggVuffuuVgGWVVvfevffgWfvgvvvffvwwwvwggwvvgggVFWveeefFVfWgggeuVWfVefVuffvggfgfffWgfeuvvvdfgwwgwgffuvwgwueuvvwvwvvvgeffegwfufvggfvvwfvgfegwvvfugffwgwvgwfvgugwtwgfVgffwVfFuufvgfveugVvefuegvvvvgwwvwwwwgvwgwwwvgwegwvufvgfvfvWvvfwvgfvwgvvwwwvgwwgggvvgvffgUgwfffuVVwefgvwfwfgvfwguvggwvwvggvgwegvfeVfgfvVeGuefvgVeufEvUVegvvvwwWfvvgwffwwgevwggwvgvvfgwwvfgUvgwwfggwfgfVtfgueUvVgufVfvfwgfeggvfeweWefgffwguvfvegvcvgUgfvUuVVUfevegvUfTVvEevVVffgwfwvvvgwwgwwfgvwgVVtvguvUwVWveefwVffegefgfwfffugggefvgvgWvVEgUegeeefUfvfvVfgeWtffuvWvfefegWvfVgfefgfffUfffUU4VVgefeVtdfTUdUVteffevwfwefgvffvfevwefwgfggfgfdUfgfefuffwggfefffvgvuvufgggWvffvvfWwgvvwfvfgWWuVegfvwwvvvffgvvtvWgvffveWfvWggwvVvgguVeffVgvwggwfwvwwwwwvwwvgffuwuvgggWffgvwfgfvgggfwwwvvvwwvwwwwwwgwfuVfgffffWUvefgvwgWWwfvgvvvgvggwvvVgvgvvVffVfeVVfUGefVfffveefVvUfveffgggfwfwgVgwffgfwvufvwggggwvevgwguuvfgwwgfggfvvvewwvggfgvgvgVVvfwvgwvfwgvgfvfvvgwwgfwwgffwdwWvvffffefgfffvgwvguffvggwgfgwfwwxwwwwwwxwwvfewwvvfvgfeuwwggxwgwvfgvgvwwvvvvwvwwwggufVggffvfffvVffgwwfwfgvvvgwgvwwwvvgwwwwwwgffeVVfffgEefffveeffufewfefgvfxgwvvVVwuvgegffUgxvwgvwgwevggvfffvwwwwwwxwwwxxxwwxxwwwxxwwwwwwwwwfgfwvxvwxwwwwxwwxwxwvxwwxxvwxwxxwwwxggwxxxxwxxwwwwxxxxxxxxxxxxggwhegwwxgggwwfvwwwvvgwxxwxwxwxxwwwwwwxxwxxgfffWggfgeffvffUfeWgefFfVUgVfvfVfVeVVWvvgUUUwgufTgVWteeuvGVfUTfggfvvfgwfVTWffgudUfVffVwVfvfwgVffVgffVTUevgufVfUgduuuwGffUUffwvwvVgggfVVVffdeffGSTUefeUEfVVdeedf6feTEUffeefVVfVVEFUUVdeeeVUUUEE4RTUUvVfEWedfEVedUee5VTfvUefgvEUUffTUUefguffvUGVfgUFVVfSTvvgvvvvfXVfefwgggffhvvvvwUXfevvwwwfgVhvwvWVfugwfeWfgvuffvwffVfdgvvgwvWwvgUGvuvvveWfuwwgxewvwwwvwwgfwwffvfwwvwgfhwufhwxewfefwggwwwgwxwgfvwwvuvwwFfUfwWVfVfWvfegwwTveefVffgwwfgwgfWefvvfevweffUfFdSFVvvgfXffeeGfufeveFVewfvvwwWVfVgVFVvufwfvvfgWvwWVffvgTfgfwwgwhhvUffwgwffghvvwffGWUffvfggfgVgufwvvvfwvgVgegvUwfggVfguVgffwwggvfgGWeVwuUwfVgvwvgwwxwwvwgwgwwwfvwwwwfffgvvvwXvfffvwfvwwwwWfVggwfwffWUVfvfgVVVgfffvfwVfgVfvffvwgwgwgWVffwfffvwfgfVVftDfeVwwWhfgwFgeVfuTveVfwwgvwggFfefufUUfUfwvxgvgwwfUVvffefxeffvvvwwwgwwwwwvwwfvwwggwwfwxvgefwvwggdfvvvXwwwwgffgwhwwgvwfVfxfvgwhwxwwwwwwwwxxwVwwgwhvwfwfwwgwwwfwwwwwwwwxwvwwwwwwwwggvggvwwwfvvvwwvwwwwfgwvvwwxwvwwwxgvwxgvwwgweWfwgvfwvwxgvffwwvfgwwwgvwwwxgwfgWfwwvgxhfwgUvxxfVfwfvVVfdVUuffffuefwVffvefUffvgwvevTewVfefegwfevfgvUVwffeeVffVVffewwefCeffevDUedfgfwVwgggvwfffvwgeffvwvvffvwfuvgGgvWUgfVuwwfvfwVfeggffVugWDdVfUfeUfefeVuuwGfffVvffvvffWgggUfgVffVeffffFUeFCVUUffwVffefTffefeTfVTwwffvvvUewvffVUfeffvwwfWVfgfVVgfUEvwwxwvvgvwvvwvghwwvwvvwfxvvwghwgfwhwWffggwveGwffwgwwwgfuvgxgfxwwfewhvvffvxwggwwgwxxwgxwxwvvwggwgwvwvxvwvvwwwxwwxgwwwwwwwvfwvwwfwwwggvwwfwgwfwwvwgwwwvwggwxwggvwwgWwvwWgVwfWgwvgvgfgvWvwvfwwgwuwwgvvwfwVwwwvwvwgwfxwggewxwvvwvwggfwwgwwxvwwgwvgVgfwgffhwvuwgfvwwgvefvfvgevFggvwvggfgfVghgvgwvvwwgevwwvffvxwwvwwvgwwwwwwwwwxwgvuxvvgggvwvvwxwwwuwxwwxhxxgwxwwvvwgvvgxvwgwvwfvvwwfgwvvgwwwwwwwwgwwwwvvwwvgxwwfvWWggxgwvgvvvufvgfgvwwgvwxwggvgvgWWwxxvwxwhhwgWgwxvfggxxvvwwvuwvvgwwgfxwwffgvwwwggfgwvgvggwweffFfvvhwgwwgevwwgwgwwffxgvvgxgxxwwwwxxwwwwwwgwgggwwvvgwfwwuwwwwwxhwwgwwwgwwwwwxwwgwwwfwwwwwwgfggvwfwwwxwwwwwvvfwwhgwwgvwgWVwgwwxvggvguVfvggvwwvxwwwgggvhWvvwxxwghwwxggwxvwVfwgfwfewVfVfvWvVwgfevWveTgffVgfWffgfVfvgffegVuvfhTfeeVvvffeffvfveUwfgfvgVfvefveWeVveVvuvwfvweVwfwvwWVffWvvfegVvuvVwwgffvfgvgegvvfgwgVvuvwwwwvGVeVFeUffVVeevFgfWeVewvufTVfeVffVVeefffgwfffeeEcVffUffFgeefuV4ffvVedFfeVfgwwwgVfVVfffggwVfeVgfvfgwUFVdefwffwvffwegfuffufvvggfvvvfgUgfvfwvgffggvvgvvgvvVvvvwUgvvuwvvVvdggfvfeGvvvevvWvvfvvwVfvgvghgwfwwgwgwvgwgvvgvvwvfhwfvfvgvufwwwwvVgfvvwwwgfwvvvwgwwuvFfeVefWVdeveuwwvffwwvVfVfgvgggfgvefVguvffVVvTfffefvGeVvvfUGvvfeUuVffgwwwwvUvgVgvfvvgWffVgvgfefWWWfeffggvwwwwWgefVgfgwfwevgegvfFWUfWvfgfggefvfgwwvfwvfwgWgufwfffwvVvwvfeVguvvfwUwvfgeVwfgfvfvvvwwvwvwgggwgfggwwghewvevvvgwwwvwgvfwwvgwwgvwfvgwfwwWfWfVffVgfevfffxwfgwwguguegwwggwffwfvfwvgwfffguVVfefgVxfvfgwEWuUvvVfVVfWwwgvgwfwffVwgvvgWgvfgfgvwwgfffUwfvwgwwwwwxxxwwvwwwwvxhwxgwvwwwwvwwwwwuwgwwwwwvfwxvgggwwwwwwwwxwwwwwgwxhxxxvwvwwxwwwwwvxwwwwxvfwgwwhwwfwgwvwwwvxvwwxwgwwxwwwvwwgegwwvgfwwwwxfwwwwvwwggxxxhwwhxxwhfxwxxggwxwwVffggvvUfgewWfggVwffvVffvTfffgggwvUvggfEugVfgWfwgweffeffvwWffwvggfTffgwfvegvUfweVTUfffvwVwgfgwwffwfgffggwvfvwggffwxfwwvffuvewvwwgxwfvffvgwvgfedgUUfefVffeVVwwevgwfvvwUfwwVWgffvffffggfffvVgUeVeffueffgwfvEefeffeffefgwgvvvvwvfEfuwgffvvfVvvvgfggVUTwfuwwwgwwwgwwwxwwwgwfvwgwvxwxwwhwvhwvWwvvwgffwWwvwwwwvxfgwwvxwvxxhwwgvwwwwuwwwxxxwxwwwgxwwgwwggxxwgwwwvwvwgwgwgxwxgxwwwwxvwvghwvhwwgwggwwwgggwwvgxvxwxvfgwhwwvuwUgwvgwvWvffwhfgfgwvwvgwvwwwxxvwwvwwgxwvgwvwwgxgxghwwxwwwwwgewwwwgwwwwwvvwevvxwvxgfvwgwwvwgwwwggwVgwvvvwwhfxwfgwwvwwwwfwvvwwgwgxwxwxxxwvxwwffggxwwxwgxwwwxwwvxwhwwhwwwwwvwwgwvwxxgwwwwwvxxxwwvwxwwwwggfwwvggwwwvhvgfgwvwvgwvggxwgwgvgWwvwwwwwfhwwhwgghuwwwwwxggwwxxwgwwwxwgwwvxwgwfwwxwgvwwwggwwWwgwwwgwwxwwwwwwxwwgwwwxxxwwwxwxwxwxxxxwgwwwwxwwxxxxwwhwwwwwgwwwwwwwwwxwxwxwxxxgwwwwwvwvwgvwwwvwwwgwwxxfwgwwwwwvwwxwwxxwxxggwwwxwxggxwxxhggwvwvgfwgvgwvUffevgwfffefwffVfWvgewwvwgeeggwffVwwwxwgfefvwgwwVefgfgfwwfwgwxwWfeffffVfhwwgxwwWfvwwgVfevwwhwwfgwwvvgwwfegvgfwvwwgvwwgvwfgwfgg5eVUVffUfEEUUuvwgvgeVVdefffefggWffvfFUUeVfffeeeEeUUEWfvfggwvwgfeegvfffwgfVwwwfVgvgUUEVfvgvvfvwgggfVfffffuwwvwvwxwwwvwwfvxvwgvvfwwwwwxwwwvwvwwWwvWfxggfgvfwwwfgwwwwgvwvxwwxwgwvvugxwwwhgwxxxwwwwwwwwwwxxxgwfwxwwwwvwwgwxgwwwwwwwwwwwwvwgggwwfvvwvwxfvwgwhvevwwfwwgvvgwwwfgwgewvvUvgvwwvgewgwwvggffevvfwgwwwwwwvXvfwwwgvgggvvvwggwwggfwhvggwgWVwwwggxgvxggvwxwWVwgwfwwwgvwWwvvwwffvvvwgvgvVwvwgwvwgwvwvwwwwxgxwwfwvhxxgvwwwwwwxwwwvvfhxgwggwxwwwvvvxwwwwxgxwwwxfwxwwwgwwwwwwwwwvwxgxwgwgguwxwwvwggwwwwwgwgvwwggvvwfgwvwhwgvwhfffvwfvvgwgxwvwwvvfwwfgwVfvwwwvwwwwwgexwvvvvwxxwwvvxxwwwwxvwwwwwvwwwwwwhvgxgxgwwxwwvwwwwfxwwfvxwwwwhgxwxwgwwfgxfwwwxwwwwwxwwwwwxxxvxwxgxwxwwwxxwxxxwwwwwwwvwwwwxvgxwwgxwwwggxvwwxwwxwgwwwwwwwvwwgwfwvwwwwgwhwwwwvffwfwwwxwwwxfwxxwwxvwvvwwwxhfxwvwgvxwwxvwwwwxwwffwwwwwgewwfgwwxfxewwvvwwwgwvwwfgwfwxhggwxvwfwvvwwwwgvfwffxfwwwgwwxxwwwwwvgxggwfwwugxwvgfwfxwwwxwgwwwwwuwwgwvfwvgggwwwwwgvwvffgfxfwwgwfvgvwwwwgvwwwwwguwwwfwwfxfwwuwfgvvVuWewvwwwwwxwgewgwwwwwwwwwwwWwwwgggvhvgwwwvwvwgwgwwgwgwwgxgwwwfggwwgwwwggwggwwfgwwfvvvhffevxwwuwwwwwwWwxhhxwwfwwwffgwwwgwhwvxxwgwxwwxwxxxxxwhwwwwxwgwwwwhwwvxxwwgxwxwwwwggwwvgvwfwwgfvxhwgvgwxwevvggvggfwvwgwvfewxwfwuwwgwgfggwxvvfwvvvvfvggwxwgvxwwwuwgwgwgvwuwxwfwwwgWgwvggwwwwhfgvgfwwvuwvguwgwgegewgwwvwuhvguwwvwvgvwwgwgfwfvvwwgwwgfwwwvxvgwwxgggwwVfhgwwwggwxwwwvxgwwwwvxvgwhwvwwxwgxvvgwwwxxvxwggwwwwwfxwwwwwvgvgvwwxfwwgwwfugwwwgwwgwwwwwvwvvwwwgwgwgfwgvwwggWwvgvvgvgxwwwwwxfwwgwgVvwvwxwhwwwfgvwvfgwwfvefgxvwgwwfVwwgwvfxwgvxwwfwfxwvgwgWvFfwwwfvggxgvwvvxxgwwfWwwfwvwgvfxvvxwwxxwgxwwxwhvhwwufwwwwwwwvwxwwgwwwwwvVwxxxwxhwvvwwxxwxxxvgwwwwwgwxwwvgvwgvwwwwwefwwxwwfvvwvwxvwwwxwgvvwxgwffuwwwwwwhggvvwxWvvggggfXeffufvfgvwfuvWWfUhVfgvffvwffvvgfUdvgvgUvfguvVVEfgfgweWwfUvfgvevwfwvgvvWffgvgWwvwfwvhwwgwwgeevvVfVwgwuVVffvwvfgfVvgguvvwggwwgxwwfTTeveuUVfgVuuFEUufffwefvUVegVuufvVfggfggvgV5fUVffeUVV4fEguvffVedffeEgeUVfvUVVwwfffwwwfvfvUFVfWgdewwwfwvgvfvwguwfhEeefgvefVwgvvevffgVfvfgvufgvgvvefVfugwvegvhvveeT6VVffVfVvfWvXfuewguufvuvFevvwgvxvgwwvgwwwwwwVfvfgvufgvgvveTVewvvwgwggfWwgvvevwefvfwwvgVVUVgudfUwUeuTeUfgevwggggfVwWvudfvefwfwgvwee6FUVfVfVuTGfXeufvgdeevfVVfFeVvVUfuwggfvwwvfgwfWWfWhfdugwgvwvfgwgwwggxVeVfvufgffvgegfWVgVeffvuffwwvvvwvffUvvggffxfewVWVtVVgwWfFFffxfUgvwffgffgvWfgfwfwwvvvwwwwwwwwguffvuffgfwfevVfgwvxwfggfffwwewvwhvggwwwWdUfvtUUVfffewEVfvvfwggfVUUfwgewuwwfwfwfvgVWgeUVvweeF6VTxfDgfffefeVwfEfVVfweeVwwVVfggwffvfffVfufedwwwwfwvvwwxwvwwvgwgwwwvwvwwwvgwgffwvwuvwvfvfFvwgfvwvwwfWfwwggvwgfgwwvgvwwgwxwwwxvwvwwwxwxvugggVfwvwwvwvuwvvvwwwwwvwvwfwwvwxwwwwfwwvvwvwuxvvwwwwwwvwwwwgwwxxwwxfWfvwgwgfwfggewffwvxfvwggwwwggfwwgwwwwxxggwxwxwwxwxwfgvgfgUfeffvgfvfewgwffgwefffgvWfwvvggwVfvWfwwwevvwwffwTeffvwwWVwdefwUvwggffwvgeugvwgwvwfxwwxvwgfwfwhvvvwwwwvVffwgwwgwgffuwgwfvxgwwvgwwwGeeVeWUVeVfgvfUffvgVwgvvffUuvgwfuwggffwxgwFvUeffvgffVvDfvvUfwffefffWfeefwffVFwgfgfwvgffwvvVEwgVVUwwgVwfeggxvvvwwvvgwvwWxgvwfwvvwvwwghhvhgVfvgtwvvfwvgwfffwvwwhgwwgwwvgvhwgwvwgxwvvwwwvxwxxxuwgfvgwgwxwegfexwvvwwwWwwxvgvwwvwwwwwvwwfvwwgwwhvwwvwhwwwwwgwvgwwwwxwwwxwFufwwwvgfgvvfgefwfwvgevwwxgvwvfwffgwwwgwgwwgxfwwxwwwuvhgUfvvwfvvgwwwvfgvwfwwvvwvwwxwvvffwwdfvvwwwvwwvwwvwvggWufvwwwwvhvvwwvhwxxwwggvwwxxxgwwweffwgwgxwwgvwggwwwwwgwxwwvvwwxvwwhgxwvfggwwwwwwgvfgwwgwwxwwwwxwvwwwwxwxhfvvwwwuggvewfgwvgwwwvvwwwwfwvfWWggwgvwxwwwwwwWgxhxfwxxxwghxwfvwwvwwgwgwxwxhwwwvvgwxwffwwwxhwwwgvwvwuvvwwwwwfffwwwxvggfffwgwfgxhwwwwvxwfgwwhwwwxxwwwwxwewvfvfvwgxgwwwgfwgwxxwgxxwgwwwxwwxxwvwwvwwwwgwvvwgwwhwwwwgwwvwwwwgfvvvgwvWgfvvwgvfgwgwvfwvvxfwwwwggfwxwxwwwwwxvhhwwxwfwwwwwxvxgxghxwggwwxwvwwwwWhhgggfgwwvwwwgwwvfxwxxwwgwwWvggfwwfwwxwwwvwvxwwwwvvwwwwxwxxwwwgwwxwvwwwwwwxxwwwwwwwwwwwwxwXWwwuwvvvwggwwfwvwwwvvfvvwgwwwwwxwhwwwgggfwfffwvgxvxxwwvgwwwwwvvwgwgwwwvwwfwvwggvwwwfwwwggvwggwwwwgwvxgvgwVgvvgxwwfxwfggwgvwwwxwwxtevgfvVvwWfvwVewvggugwwgffgwfwvvwxvwwxxxwwwwvggvwwwvwugffxwxxhwxgwgwwxwwxVfefVuffwfwevwffwevhvfvwhvwfwxgwfwwvxwwGTvfffugvwWewVfefvewvwvgwvevWffwwXfgvwXgwwwXvgxXfwxXwwxwhwxxxxvgwhvgwgwwwgwxxgggvwwgwgggxwxWfvfvwfgwgwwwgfghfvvvgwewggwvggxvwvwwxxxwxhwwwxxxwxwwwxwhvhwxwwwwxxwwggwwwxwwwvwxgvwvgvvwwggvwWfggfwfwxvfVgwhwxfwvwwgeggfvvuWxxUgWVvvvghxvhegxxfveugxwfvfgxVwxwwtvgwxVfwwgwwwwxwwhgwwwwwwwxwwwgwuhwvvwvwwwvhwwffwvgwwvhwxwvgfgvfgguWwgvgvgwwuWxvwwgxvvvwvxwwwxwwwwgwwwwxvwwxwwfwhevwvwxgwvgwwwwfwwxxwVvvfffvgvhwwvfwgevvvgxgvwuXwvgwwwwWvgfgVvtWwgvWugvufuWwuwvufhwfwgvuWxgfwgxwWwwhvvWxXWhvwxfwwwvhxwwvhvwwwxwwgxwwwwwfxwgwghwwfwwgggvggwexfwvxuVwvfgvwhwvfwfgvewwgvwwwwxwhwxwwwwwwwwwwxwfxwgwwwhvwvwxwwwwfxwwwwwwvwgfgvvgvfwfxvvgvfgWugvfhfvfwfwwwfwvwvvwggvVwgvWuwHwvewUguvUxugffwVgvguwhggvfhfwHgwwfvwXwfXfwxwWwwwvgwwwwxwVgvvgwwgwxwwwghgwwwwxxgwevvffvfhhVvwvFggwgwvvwgWxwfgwvggwvxwvxwxxxxxxwwwwwwgwxxwwufvvwxxhwxggwgwxwwvxfgwvvvvgwghwwvfggvvvwxgfggVWwwvghwwfwewvUfVvvuvehXggWVgvvggwuvuxgwvvftxgfwwxgvwXvvwuuxhggVwwwhgwgwfwwwwwvwggvgwgfwggvxxvvxffwwgfwxvgvxggfewfwwgvwxfgfgwwewwgugugwwvWxxwwwwxwwxwwwxwwwxwxwwwfwxwxxfwwgxfwxxwwwxxwwwxwxgfwgfwUvwvgvwwVwgfVwvxwfgfgvwgwvwvwgvfewfwVxwfuWdVufvuWwxgguwggfwfwwgwgxgfxWwwwVxwgwwgwxwgxwwXgWwwUdUfeegfuvFfgVVwweeffuuwgvfVwfffxwwfFeecefeUffVefffffwVUtwwgVVfUvfgeUwwwfeVxWgwwfgfwuxwwwwwwwweuwFVVfvwvvwwVvgVfegffgFvffUwwwwgfvfwwgvuuwWfffwwffwwwWwwgfvwwwvWwwffxwfwwwwwwwwfTUvwffvgwgUVffeefeewwwfffwwfgVUtwwgwgvgvwwwwWeuwxgVVwxwwwwwxwfgvfwwvGffVgfVfvfwWffVwffFwffgfffvfwWgvwgffxwwwxwwfgfvVffgfwfffVwwxwgwvwffgvvwwwvvfffwxwvfffvxwwXvvfwffvwwggwwgffuwvgVvwvgwWffvgwwwwwwvFtffWfTdVfeVfeVgfvffwxfwfffffWfefeVffvVfwfvFeffffffeVwwgfVVeeevgwfffeevffvffeVgfwfWxwwfgwgvffwwgfVffVggggwwwwwxwwwwhxwxxxxvwwgwwxvwwxwwxfwwwvwgwgwwwwwwvxwxxwgwwvgwfxxwwwwxvxwwwwwwwwwwgvvxwwwwxwgwwxwwwwwwgwwwvvwwgwxwwxwwxvwwwwwxgwwwwwwwxgwwvuvwwvwwwgwgwvfwwfwfwfwwwwvwwwwwwwwwwwwgvwwwxxxhwwgxxwwwxvghxwxwwvxwwwwwwwvggwwwgvvghvwwwxvwwgwwwwggxfwwvfxgwwwgxwgwwwwwxwxwwwxwwwxwwxxwvvvvwgxgwwwwvwwwwwgghgxwvxwwxxwwwvwxgwwwwwvwvvwwwwgwwxwgwwvwvgwwwwhwwwvvwwgwxvwggwgwhwwgwxwwvvxwgwwwvxwxwwgfxwwwwwwwwgwwvwwwwvwwwgvgxwxwxvxgwugwgvggwvwhwwwvgwwwwfwvwwgfvgwwggwuvxvwwwgwwfvfvgfwVxfwxvuWvvwgvfwwwwwxwwfwwfwwxwwwwwwwvwwwwvwgwwwvwgwwvwwwggwfwfwvvggvwwgwvwgwwxwwgwwvwgvwwgwwwwwggwewgwwfvwvgfvfuWvvVgvghvgwwxvwgvwgwxxxgwvgwwgfwfvwfwwxwwwgvvwfwwvgWuxfwwvfvwwwfgwvxWvwewwvwvwvgwwwvwvwvwwvwwfwhwwwvwwxwwWwfwWvgvwvgwvwwwwxgwvwxwwhgwfgvwwwwwwewvwwxwwxwxfxwgvvwxwgvhwwwxwwwvggwwvwwwvwwewfwfhwwwwwggwwfvwvwgwwwgwfwgvwvwgwwfwggvfvfhvfvwvgvguvvvwwwwvgwwxwwwvfggxwvhwgvxwgwwxhhxxwwxvwwxxwwvhxwwwwwvwxwxwxwwxvwwwvvxxfwvggxwwvhvvxxgvxwwwwxvhvggwwwxxxwwwwwvxxxgwxgxwxxxwvxwwxwxwgwwwwggwwwwgwvwwwxggxwwwwwwxvwwgwvwwwvwvwwwwwwwwgfwwgvfwvwgvxvwwwwwwxxwgwvhvxxvwwfwwwwwwvwgvwfxvxwwvewwvvwwvwgwxwwwwwgwvwwvwxwwwwwxwxxwvwhwgvwgvhwwwwwwwwwwwgxwwvwfxwxwwwwwhwwxxwwxwxwxwxgvxvwvwwwwwwwgwvwwxwxwwwwwwwvwwxwwgwwwwwwwgwxwwwwwgvgvhwvwxwxwxwwwwwwxxwwvwxwxwwxxwxxwgwghvvggvvfwxxfwvwgwwxwggvwwgfgggvwhwwgfwWfwwfwgvwfwwwwfwvxxxwwfvfwfwgwwwwxxggwwwxgwhwwfwhgfgfvwwxvwwxxwxhvgwwxxwwwxwwxvggwwxwxwxwxwvwxxxxxgvwfggwxgwvvfvwggvwfwwxfwvxxgwxvwwwhgwgvwwxxwwgghvwXwwwxwwwwvvwgwwwwwXwfwwwwwvwwhwwvxwxwwxwvfgwwwvvvwxxxgxwwwwwwwwwwxxvwwwwwxwhwwwwxwwwwwfwwwwgwwvwwwwwwwwwxxgggufvvwgwfvwvgUfhevffgwwgvgevwvwVggwvgvwffwgvfvgggwfgfgvuwfgvvfvuggwwuvfghgwwwwwgwwwgwwfggvwwwwgwwwwwvwwwwwwxxwxwxwwwxwwxxwwwwxxvgwwwwwwwxvxwxwwxwwvvxwxxxwwwxwvxxgwhwwwxxxwxwwxxhwwwwguwvfvwwwggvwwfvxwwvhxgwwfgwvwgwwxvwxwwwggwgvvhgwwhvWwvvwgvvwvwgwwwgvvgxwwxxwwwgwwxxhggwvwxhxgvwxxxhwvwwwwxxxwwgxwwwggxwxwwvxwgxwxgxxvwwgvxwvgvwwWgvgwwxwxfwgwwxxxxwxwxxxhwwxwwwxwfxwvfwxxgfwxwxwvwfwvwxWvggvgwwgwvgwwfxvgvxvxwwggggxvxwgwwwwwvwxvfwwgwxfgvVxvwwfxvwwwxvwxvgwwggwvxxwwVvgwxwwvxwwwwgfvwwwgvwwwwwwxgfwwwgvxgvwwffwwffvgvfvfvfwwexwwwxwvwffvvwwwxwwwwgfxxwgwwwwwwwvvgfvgwwxxggwwwwgvghwxgwwwwwwxwwxxwvgvwwwwwwwxwxvwwvwwgwwwgwxwwxwwwwxfwwfgwwwwvwfvWvggvfwwwewwwwwggwxxwvwhgfgxhggxvwghwxxwgwvwwvWggfhwwgwxwgwwwwvWwxgxwgwwwxvgxxwxgwxvvwuwwwwwvwvvwxvvgvwxwwwwevwwwwxwvxwwwxwwwxwxgwxwxwwwvwwhvhwwwwxwwwxwwxwwwxgfWfgggwvgfwwfgguxVXfwgfwwwfvgfuwgWgvwvwvvvguwxgfwgvwwevwfvwwwwwwevwvxvfwwfwvwwwxggwgwxxwgfwggwwgwwffwwwWfgwvgwvevfwwgwwvwhfWvgwfvvggxWwwwwfwwwfvfegefwXUvgvwwwwvwvfgfVwwfWwxwXvwwwwwvwwfwwwwwwhwwfwgvvggwwwwwgvfwgwvwgwwgwwwwgwwvwwwwwwwwwgfggwwwwwwwveggvwgghvwvvwgwgwgwgwxwvhefvvuwwgvwgfgegvwwffvWvvgwxuwvfvfwvugwwwwwfwfvfwwxwfwvgwuwwxwfwvwgdefwgeVFgvfwvfvgwwdfgggeVFgfegvgvgwgfvfwvUfwfWvvfvwfvvfgwgvgVVvwegvwvwvvwwvwwggwvgvggwvwwwggvgUvvvwwxwwwgVfuwwwgwwguwwgfggwwwwxwwwwwwwvgfvwvgwwwwgVfufgwgxgxvwwwfgfwwgwgwwwwwWggvwwwgwwffVVuvwfgvwvxWwvvffwfwvvwvwwgwwffhxxggWwgxghgwwvwwxwwWWwgggfvwwwwwgwxwWVwgvggWuggwwfwxgvggwwuwwgewvgfvvgvgwgwfVUxwgwfwxvWwwwwwfxvwwwwwwwxwvfgugvxwwwxxfvvwwwfgxwwwwfwxxwxwwwwfguwwwwwwxwxgvvwwwfxxWxwwvwwwwwwxxxvwvwxwwwgwwfewwgwfwvfxwgxwwvgwgwwwvwwwwgvvxwvggvwvhxvwhwvffwwfVUgfgffwffwewVdfwefUhwVvVggvvfffuvgwgvgUdfVfUguufeVfVvVufVevwfvWvvgwfvffvvWVvfeggVvfxwwgwgfwwwggFuVfvfgfgfuufeffvfvvVWwhwwwgfwvwwWhggwgvggfvEefegVVfuvVTfUvfeeVfggwgfgfwgvgggVffgvgU4vVtVtfgffffeUfevfffeffuFVefvVfUVfgfeWgfWgTevwvwfwwvwwvwwvfwvgfwvwgeXwfwfuffwvgfvuvwwfWvWvvwwwwwwvvuwgfvufgeWwvvgvWgUvtgfgwvfvvvwvvvgvvvVVgfwwvvwxwgwwwgwxwVfvwgwvwgwvvVggvwwfwggwwwvwwwwgggwwwgwffveuVfwefffveVggvwfffgWwfgvfwgwhxvggvwVUGVevdfgVfvefuevvgfffvvfWfegWfgWggwVgggfgVevwwwwgwvvgwwvwwvgvgwwgggegvgffwvuwewffvfVfuggfgwfvwvwwwvwwwfvUggfgvfwvVwfufuVfvggwgvvgwuwvwfvfvuVfffvgfvwxxxwwwwwwxfvUfvwvwgwwfwffwgwwfwgvgxwxwwwwwwwwhwvgffgefVfvefgfvvwfefWfvvvgvgxgwwvwgwxgxfwwfvwgFWetVuVVuffvffvVwfffgvgfveVevgWffeffggvgffWfewwvwwfgvffwgvwwwvvgwwwwxwxwwhxwwwwwxwwWwwwvgwxvgwwwvwvwwwvvwwwwwxwxwxxwfwwhxxwwwxwxhxwxwxwxxwwwxwwwwwwwxxxxwxxxxxwxxxwgwgvgvwwwwwxwvwwwwwwwwwxwxhwwwgxfwgxwxwxufvvvWvEuggvUffewffvgfuvfUfgWffvgvvwvgwVvwgfWfvevVvvevgegGeGeeWefgggwwfuffgfvwefeegfwgffwwxxwvwwgxwfWegvwewffvwfVefffgfgwgewwwgwgwvwvgwwwwgvVVffVegVvgffffVUfffffvgwfxwvwvVwwwfgwgfgwgWuEeWfWfgWffgffvffvffgvvvvfVeffffffEgvwgVvWVfUwwgvwvvwfffvvwgwgvwxwggwwwwwgvwwwwgwgwwwwwxxxxhwwuwgwwwwefwvvwwgwwwggxgxwwwgxwxvwfwxwxxxvvwwwxxxwxgggwwxvgwvgwwwwxxxwvwwxwwxwwwxxwwwgwwwwxxxwwxwwfvwewgfegwgwwvgwvwwvgvwwwvxwwxfwwfxxvwvvxxxwwxxxwxxvxwhvvwwwwwxvwwxwfuvvwwgwwwwxxxwgxwuvvvwwgvwgwgvwfwggwxwwxwwvvwxwwwwvgfxwwwxxwxhwwvxwxxwxwwhxwggwxwwwxwwxxwxhwwwwwxwwwwwwwwwwwxwwwwwwxwxwxxxhvwgwgvgwvwxwwwwvvwgwwvvfwxwxwgVgwwxgwwghvvxxwwwhwwxxxwwxwwwxvwwxwxwxwvwwwwwwwxxwvwwwwuwwwwvwwwwgwwgwwwxxxwwwxvwwwvwwxwxwwhwxxwxwxwwwxwwwxvwwxxwwwwwwwwxfwwvgwwwwwwwwwvwvxwwxghwxwwhxwwxhwwwxxxwwwxxvgegvWgffvgfgwvTfeUeffueggfwgggfgevvgfwwvxwvvfgfvwwgvwwfvggxwvggewvfvwgfVVffvvgffVwgfwgvgxvwwvfwgvgfwwvvgfgwffvwgWfgvfwwfwxgwgfvVfgffuvGufefffeVUVVfffUfefgffeffwwgvVfgVefwfffvgWgUuwfwwgwfwwfggffUVffffeVTUfvfffffVvfvwgwfwfffvgvwgffgweffwvUevxwgwgvgxvwwvwgewvvwwgfwwvxwwwxfwwxfwgfvgwwgvvfvxwxwxgugwwgwwfwwwwfewwxwwwxxwxwwwvvvwxwxvVwvvwxgwgvgxxwwxvgvwvwwwwfvwwhwwvvwvgwwwgwwwwwwwwxvgvwvhwwgwwvgewfvwfgVvwwVwwvwvwwgwvfwgwwxfwfgwgvwxggfwxxwgwhgwxwgwvwgwvwwwwgwVwxxwwxwwvfgwvggxVfxvwwwwwffwwxwwwggvvgwgfgfwvxgvwwgwwxwwggvwxwwwwfvvxwwwvwwwwxwxxvwxwhvvwwwwgWwfwwwwwvvhwwxwwwxwggwvwxvwwwwwwwxvwxwwvwwvvwgvwwwxwxxwggwvwgxwvwwwfggfvfvgfgwvgWwvwxxwwvwvgfwwwugwvevwwfvgwgwwxgvwgwwgwwwfvxwwwvwwxwwwhxwxvxwwwwgxwwvwwwfgwwvvwxxwvvwwxvxxhwwhwwwwfhgfwwwwwwwwwvwwxhwwwwwxwhxxxwwwwvvwwxwvwwwwwgxwwwwwxwhvvwwgwwxwwwxwwwgwwhwwvwwghfwwhvvwwgwwgvwegwxwhwwhxggwvxwwwxxwxwwwxwvwwggwxwgwvwxwgwfwwwwwfxhwxwwwwwfxvwvwxgwggwfgvvwgwhwvwvxgwwwvxwvgfwwwgvfvwfwwwwwxwvwxwwxwwgwwgwvVwwvwxwwwgwwgwxwxwxgwfgvwvwwwwfvvvghwwwwwwwwgwwwvvwwwvwhwfgfwghwwvwwwwfxggvfgfwwwVwwvwwwwvggVvuvvwvxwwgwhfgwxwwwwwgwwwwwwwweWwxwvgvgwXxwwwgwvgvhwvwwhwwwwxfgxwwWwwwgggwwuvhwwWwwxwwwwwhwvwwwwvfvwwwgwwxwwwwwwvwwwvxwwghwwwvxwwwwhwxwwxwwvgvvxwxwwwwwwwwwwwwwvgwwvvwwxwwwvgwwwhwwfwvgvhgvvvggfgwghvvwwwwfwuvgggwvughwwxwWgwwwwwhwwwxwwwwwgwvvwwvwwvwvgwgwwxfvgewwfwvwvggwwxgwwguxxgvvwwgwxvgvfwwwwfgvwxvwwwhvxvgwwwfwvwwwwwxxxwwwwxwfxwxgvwwwwwwxghxxxwggwggwvgwwfwwxwwwwwwwgvwvwgxwwxwxggwgwwggwwggewVwfgvgwwgvggwwwgggvgvwxwgvwgwgwgvwwwxxwwwwwgwwwwwwxfwxVvfgwvwuxgwfgwwgwwgwwwxwwvwxxvtgvggvvwwwfevgwgwwvgvwxvwvfwgxxfefxwxwwxxwwegggvwwwvwwwXwxggxxfwwwwwwwwwwwvwwwxvwhwxgwwwwwwxxxwxwfggwwwgVfvvwwwvwewvwwwxhvvwxwwgVfwxwxwwwxwxxxwwwegWgevfWwgewwvfwggvwvufVfWfgvvwgfgwggfwxgfgwwgfvwgwvwgwfwfgvvgggfwwwwwvvvwgwgVggfvwfwxgwwwwghVvgwwvvvgvvwfvwwwwwgvwgwwxwwwxwvwvgwwwGWgevffefgvVffvgvvvwggefwwgvwwwwwwgwwvwxwweewwwfgvfgvggfegwvvvvgeffvwgwgfVvvgwwfggvvgfffgwwwgwwwwgfvwfgwxxwwwwxwwxvwwwxwwwwxxwxvuvWxwhgvgwgwwvgvwfwxgwwvxwwfwgwwwxxxxwgwxgwxxgxgwwxhxwwxwwwxwgvwvfgfwgvvgxgwwwwxgxwgwvgwxwvwgwxwwufeVVvgwuwUwvwwwwVwfgwvxwvwfwgwgwgvgwvhwhwgvwwggwwxxwxhwwwwwwwwwxwwxxwfwwvwwxxfwwxwwgwwvgwwgwvwgwxgwvwwvvxwwwwvwghwvwwhwwwvwxxxvhxvxwwgWhvwwwwwwwwwwxxwwxwwhwgxxhwgwwwwwvwwfvwfwvwwvgwwwwvwgxwwwxvwwvwwwgggWVfvvgVwwgwwxvwgWgfgvwgwuwgxuggxxxwwwwxwxxwfxwxxxxwxgwwwwxxwwwvxwwxxwxwhwwwwwxwwwwwwxwwvgvwgwvvxwvhxwwgwwfxwwwwwxxxxwwgxvwwhwxwgwwwwwwhxxxwwwwxwwwwvwvvgwgwvwgwgwwgwvwwwhgwxxvggwwxwxvvWfwggfffvgwwvvwvWwvewwwwwvwwfwfghwfwxwxwwgwxxxvxgwvwwvwwwwwwxwgvwvgxVgwwwxwxwwwWvxwxxfgwwwwwwwwgwfwwvwvggvfgvhfegvxfwxwwvwvgvvwvwvwwwwgxwwwxwxwwwwghwwxxgwwwvwxxgwxvwxxwwwwwxwxwfvwwwvwggwgwxvwvvvwgwwwwwfwwwgwwwwwwwfwgvgvggvwfwwwwxfguvfwuwwggvwwwWwwfggxhwfwwwgwwxwvWxwwwwxwwwxwwvwwxxwwxwwwxxwvwwwgwwxwwwvvgwwvgwxwwwwuxwegvggfwxhxwxfwwwwxxwwwxwxxwxvvxwwxwxwwwgwwwwgwxxwxwxwwwwgvgxwgwgwwgwwvvwwwgwvwxxvwvgwwvgwxwfwhvfwvvhfgwgwhvwvggwevwvwwxvuwxgvuhfxxwwvwwwgwxxvwhwvwwwxxwwwvxwwxxxwxgwwwwwwwxwwxggwwvgvwwwwwggfgwxvxwwhhvwvwxwxwxwxwxxwwwwwwwgwxxxxwxxwxwwwxfwwxgvwwwwwvvwwwwwxvxwwxwwwwxxwwwggeffwfxggwgxwggwgugvvwwwwwgxwxgfwfvxxgxwwwwxwwwwwgwfgVVfwfuvVwwgggwwwwggwwvvwgxwgwwwwwFwvgVfvgwefffwgfVwgffvggvvfxgfVvfgwgxwwhxxwwwwufgggvWvvfwwxxuwwegvwwxwfwvgwwfwwwwvwxvvwgxgwwwxwvwxxwwwwxwxxwvfgwwWffgvfefwwwwwffevwwwwwffuxwwwffugfvwwwwwwggwxwvwggwwwwwwxVwxwwwwxwgvwwwwfggVxvgwfwxwgvfwwhwwfwwwwwwhwwxfgwxwwwwwwwwwwggwggwwvwwgxxggwfwwwxgxwwwwwxwgvvwwxxwwwwwvvvgwxxxxwwwxvwwggvwfwgwwwwfgwgWgxwgwgvgfhwxxwvfwgggvwwwwvgvwvfgwwwwwwgwwVwvuwwwwvwvwwwfvwgwfxwwgwwwwwwwwwwxwgwwwwwwwwvxwxxxxxwxwwwwwvxwwwwxwxxwxwxwvxwwwwxxghwwvgwwgxxwwwwwwgwwwfwwxxxxwxwxwxwwwwwwwwwxxxwxwxxwxxxxwwxwwxvwggwwwwxwggvvxgwwwwwgwxwhwwwvwvvwwgwwfwgwuwvggwwxwwvvvWwvvwwwhwwwwwwfxgwvgwwwwwwwwwxwxxwxwggvwwxwxwgwxxwxwxwwxwwwwxwwwgwxwwgxwwwwxwwvwgwwxxwvwxxxwwwwxwwxwwgwxwhvhwgwxwxwwwxwwxwwwxwwwxxwwwwvxxwxwwwwwgwgwgwgwwvvvwwfxwxwwwwvwwxwxwxwvwwwwxgwwwwwgvwwvwwwwwwwwxvgwvwwwvwwwxwwwgwwgwvwwwwxwxwwwxwwwwxwwvghwxxwwwwwwwwvwhwxxwxwwxxwgvgwvxfwwwvwwggvvwwwwwwxfwvwwwxwwxwwxwxxxxxwfvwxvhwwwxwwwvwwwwwwhwxxwgwwxvxwwxwxwvhwxwwwxwxwxwwghwfvxwewfwwgwwwwwxwWvvvwwxwwfxwwwwwwvgwxwwwxwwvxwxgwwwwvwvxwguwwgvwvvwwhwxwwVgwwgwvwvwvxgwxvwggxvwwxwwwwwwgwwxwfwwhvwwxwggwwwggwwgxxwwxgwxwwwwxwwwwwwgwwwxvxwwwwwvvwxxhxxwxgxwgxwgwggwgvfwgfggvfuxwvwwvfwwvwwgvgwfggwwwwvgggwwgwwwvwwwwwgwwfvwwwvwwwvwgvvwwwwwvwxwxwwwxxxwwggwwgwwwwwvvvwwhwwwgwfwwwwgvgvvghvvwwxgwwwwwwvWwfwxegvwwgwfwwggewvxvgwwgwwwwvWwwwwwwwwwwwxxxwwwxfgvwgwgwwwwvvgwwwvwwxwvwwwwxwwgwvwwxwwgwwxwwgwxgwxwwwwwwwwvwvwvwxwwgwwgwxvfxWffvgwfggwgwxugvwvvgvwvvwwwwgvfwfhwvwxwvvwxwgxxgwwwvxwwwWVvwwUwwgvgvwwwgggWWvwwUwwvgvwwwwgxgwvfwvggvwwvwwvxvvfvfxwgwxwhwwxwwvvwwwxwwwwwwxwxwhfwwxfvxwgxxvwgwwwwwwgwvwxwwgxxgwxwwwvxxwxgvwwhxxxwvwwwwwvwgwvxwxwgwwgxxhvgwvfvgwwwvwwwwwgwvwwwwwhwwwfwwwvwwwgwwgwwwwwwwwwwxwgwwwwwxxwvvxvhgwwwwwxwxvvwhxwwxhwxwvxgvwwwgwxwgfxwwfvgwwvwwwxgwwxwxwxxwwxgxwxwwwwxwwwwxxwwxxwxxgxwwwxwwwwxxxwxwxwwwwwxwwwwfwggwvgxwwgwxwwxwwwwxvxvwwvwhxwxxwwwxxwwxxhhwwwxgvwwhvwUgfeVfwgfgfwvvgfgwWwwvgfwwwwgwwwwwvvvwgvvhwwvfwwwgfuwgffuwggwgwwffvvggwwwwwvvyxwwgwwuwfggwwwwwffwwwwgfvwgggvwwwvvxwwgvxwwVfeTeegfvfVffefgwwwwfvgwgfvvVffuhVevwwggvxwgvfefffVfeugfffuvVffugwffvggwwwfgwwvwwvvgffggefVwwgffxwwgfwwuxwwgwwvhxhvwwwwgwgwxgvwxxfvgwvwvwwwwwwwgxxxgvxwwvwfxgwwxwxxwwwwvxxgfxwxwwwxwxxxwxwwwwwxwxwwwwwwvxwwwwwwxxwxwwwwxwhwwwxvfwvgvgvwgvxvxfgwfgwwwwwwwwgwwwwwxwxhgxwxwxxwxwxxvxwwwxgwhgxxvwwwwwxghgxwvvwwwwwwgwwwwxwwxxgwwwwwwwwwxwwwwxvwwwxxvwvwxxwwwxxxxxwgwvgvwvwxwwhhwwwwwxwwwwxxvxxwxwwwvwwwwwwwwwhxwwxwwxxwwwwwwwxhxvwxwwvvwvvggvwggwwuwwwwwwvwgwvvffhwwwwxxwwgwwwwwvwxggxvfxwwgwwwwgxvwvwvwvwwwvggxwgwvwwwvxwxwwgvwwvgvfwwxgfwewwwxwgvvfwwwwwwfgvgfgvxwxwwxxwwwwxvgwvwwwwxvxwwxvwxxxvgwwwvwxvvwwxwwgwvvwfwwgvwwwwwgvwwfwwwwwwgwwwwxwwwwwwwfvWwfgUfhevgfgfvewvwwwfvwgvhwgwvggwgwwwfvxfwvwwwxhwxewxxwwwgxgwwvwwfwguwgegwfwgfxwxvwxhwWvwwwwwwxwwwfgxgwvxvvwwwhwwwvwgwfgWfuxwwwhwvgwwwwvwgxwxxxwwvvfvgwwwwwxxfgwxwgwffwvwgwfwxxwxwwwwwwgvwwwfwwwxwwgwwwgwwwvwwwwwwwxxgxwwwgfgvhvfggvgwfgufvwwwwwwvWwvgvhvfhgwgxwgwvgvgwwwwhvgwwwwwwwwgghwwvwwwwxwwghxwwxvwwwwwwwwwfwhwhgfffvwxwvxwgwwhvvgxwwxgwvwxxwwxxwxxwwvvwwxxxxwwxwxwxxwwxwwvxxwwxxxwwvwwwwwwwwxwwwwwwxwwwvwwwwxxwhwxvvwwwwvvwwhggwwvgwuwwwwwwwvhgxvvhvwxwxwgwwwxxwwwvwxwwwwwgxwxxwxxgwgwgxxxxgvxxfxgxwgwwfwwwwwxxxwwgwwwvvxwwxwxgvwxwwwwxxxwwwwfxxxxwwwwwxxwwwwxxwwwwvwxxxxwwwwwwwwwxxwwxvgwhwgwwwwvvxfwwwvggvwwwwwwwwhxvxwxwwxxwxwwwxxxgxxxgwxwgwwvvvgwwwwfwwxwgwwwvwwwwwwwxuwgvwwwwwvfwfwwwfwwwwwgvvwxggvwwwxwwwxxwxxwgggwfwxwvgfxwxwxwwxxwwwxvwwwxgwwxxwxwxxwwwwwvwggfwwwwwvgvfwwxwwwwwvvgvxxwwwwwxxwwwhgxxwwvwgvgwvgxwwgwwwfxwwgwwwvwxvwwwwvgwgwghvwwwxxwxwwxxxgwwVwhfwvwvvgwwwgxxwwwwxxgwwwvgwvxwgwwxwvxwwvwfwgfhvvwfxwhwwxwwgvffvfUhggvvwwwwvgwgvwVfgfwfvgUxwhvffwwwfxwvgvfgwffgVWufffgvffutgfwwwwxgwwfvwwfvvgwUgfwfhwvxfvxwxwxxxxxxwwgvhwxwwgwxxwxvgwxwhwwhvvwxxwxvxxwwwxhwxwgwwwwwvvwxfxwxwwwwxwxxgwwwwhwxxwwwgvhfxwwgwwwwvvxwvwwWgvfggfgvvvgwwwwvvWvhUgvghvwvuewxfvgxwvhhwUfeFfeffgvuevvuWfwwwwwgwwwxgxvgffghgVfwwgggwwxexxxwxwwvwxwwwxxxxwxvxxwxxwwwxwxwwxxxwwwgxgwgwwwwwwhxxxxxxxxwxwwwxxwwwwxwxwwxwwwwwwhwwwwwwwwfwffhwwvwgwwwvxwwgwfxfgvgwwhwgxwfwxwwwwwwxffegegwvfwfwvfwufwxxwxwwwwxxxwffwvvfvwwwwgwwwvvwxwwwgWgwwwwwuwwfvvfwwwgWvvwwxuwhgvwwxwvvwfWvfgVfefvwwwhvfvwhwwUfvgwwwwvvvwxgwhvwxwxvwwhvwwvvvWffwWwvvwwhwwwvvwwxWfgffvwwWvwwvwvwvvwhfwwgvvvvhwgwwwwwwggwvvwwgvxwvgwwfVfvwhfgfwgwgFefvwwvwgvvwwgvvvhfewwhwwxwgvwxwwvwghVfgwfwhugwwvwxwwvvwvgwvvwwwgwxwxwvwwwwwwwwwvwwwwxwxwwwwwvwwgxvvgwxwwwvwwwxwxwxwwwxwwwwwwwwxwwxxwgwwvwvwwwgvwwwwwxwwxfgffwffffwwwxxgwwwvgfugvggfvxfwwwwwwwwwwwvwffuffwfffvwgwwevvwwxxwwwwxwwgwwvfwvfvwfwwfggwxvgwwvvvVfvgwfwvegfeWvwwwVggwvvwuvgvggwwwwffggFfugwVfvgvvwgvggvwwgvweEvgvgwfwfvgvwwgwvwwxwgfgwxwvwwwvfWefveggvwgwwgvvwwwwWeWfffvgegwvvvwxvvwguvwvggvfgwgwwwwwwxvxfvggvvwwvvwwfgwvhfUgfgvVfVhggTVvfvgvgvwugvgwffeewfgwwwWgfwxwvfgggfVgwwfwwgewwwwwWvuggWwVvggwvgwgwWvuhgXwWvggwvgwgxwfgfgefwwwgvuvfwwgwvfvwhwgwffvwgwhwvvuwwvgwwwvggvgxhwwwggwgwwwwgfgwwwvwwwxwwwgvfvwwwgwwwgwwwggwwgwwxwgfgwwxfwvwxxwwvwwgvwwwgwwwgwwxgffewvfvgghvwWfvgfvwgwvwuvvggvgefhxgwvwwgghwwwwvwvwffwwvgwgwfwxwwfggwxvwwwwxwwxxfghxvwvwgxgggwfffxwfgvwgwwggxxgwgffxwwwwwfwxxxxxwxwwwxwwwvwgvwwgwwwwxxwwwwhwwwwwgwwxwwvwwwwwwhwwwxwwxwwwvwwxwgvvvwvwwggwxVvwvfwwwwwvwgwvwfvwhxwwgxvxxwwxxxwgwwwwxwwwhwxwxhwxwwwwxgwwwxvwhxxwgwvwwxwwwwxwwgvwxvwxxwxwvwxxhgxvwxwxxwxxwwxgxxwwxgxwxwxxxwwwvwwwxwwwwwwwwxxvvwxxvvxxxwgggwgvwvfxwwwwwggwfgwwwwgwxgwggxwwwwwxwwgwWvwwgWgVwfgwwwwgvugvwwwwvwxvwvfwwwxwwwggwwwwwwfwwwxxxwgxxwwxxwxwwxxxwgwwwwwxxwgwwwwxxwxwwwwwgxwwxwwxwxxvgxhwwwwxwwWwgwwwxwwfxwxwxxwwwxwxwwwwwwwwxwwgwxwxwwvwvggwwfxwgwwwwfvwwggwwvwwhwggxwwwwxwghwuwxfxvWwwwwgfwwvvvvgwxwxxwwxwwggwwwwvwwgwwxwwwggvwwwvxhwwwwwxxwwwwwxwwvwwwwgxwwwwwxwwxwwwxxxwwwwhxwwwwwxxxwxwwwwwwwxwxhwwxxxwxxwxwwwwxwwwwwxwwvwxwxwxgwgxwwxxwfwwwgwvvwwwwfwwwwwwwwwwwwwwgxgwhwwwwwwwgwwwgwvhwwvwwxwwwvwvwwwvwhwxwwwwgwxxwwxxwwwwwxwwwwwxwwvvwgwxggwxvwwxwwvvwgwgwwxxxwvvwvwwfvvvwwwwgvvwxwxggwwwwwvwfxxgggvxvwgwwhgvwwwUwwggwgvwgwwxwvwwvwvwwwwwwxfxwwwfxwxwwxwwvxhwwwwhwwwwxwxwwwgxwwgvwgwwxgfveegwxwWVuvwwwwwfwwfxwwwfvvwwwgwggwwwvgwgfwxwwxwgwwwgvwwgwwwwwwwwgwwwwwgxvwwxwxwwwxwwwxwxwwwvgxvxwhwxwwhwgxxvxxwxxwwxwxxwwwwwwxxwxxxwxxxwxwwwwwwwxwwwwvwgvvgfwxwwgwwxgwwgwwwvgwvvwwwwwwwwvwgvwghwxgwwwwxwwvwvwwwwvxwxwwwwwwvwxwwgwgxwxwxwwwgxwwxwfvwxgwgwwwwwvhxwxvgfwwgwwxxwgfwfwgufwwhwgwgfguwwwgvgwwwxwwgwwwwgwwwwwgwxwwwxxfxgwvggwvxwwwvwxvwgwwxxwwwwwvwvhvwwxwgxwxwhwgwggvwwwwxgwwwwwwvwxwwvvggwvhwxffhVfvugwvgeffwvgvgwuWwvwwwwvvvwgwwxugwewwwvhvwvvxwxghwwwwxxwwWfwwguwwvwwwgwvxwXfwxguxwvwwxgwvxxxwgffwwfgwxwwvwfffwxggvwwxwwhwwxwwvgwxgwwfwwfwwwgvwwuwvwgxxgwWwwwwwvgwwgvxwvwxwgvwwxwwgwvwwwgxwxwxxwwvgwwwwgwwxxgwgxwwxgegfffvghgVfffwwwgwvvwvwwWvvxwxwwwvwggwxwwfvwxxwwwxgwwwwxxxwfvvgggxwwwwwwxwvvwfwwgxwwwwwwgvwwgwvxvxwwggfvfgwwvwwwwwxwgwwwxwwwxwwwwxxwwfwgxgwwwwwwwvxfwxvwwwwwxwwwwxwwwxwwfwwwwwwwxwwxvxwxwwwwxxwwwwwwwxwwggvvfwwgggwwvggwwgwvwxxwwvwgwwwxvhhxwwwhhvwwxwxwwxwwxwxwxwwhvgwwwfwwwwwwhvwwwwwwwwxxwxxxwwxxwxwwfwxwwxvvwwxxwwxwxwxxxwxwgwwwwwxwwwwwxxxwwwwvgfVfVwffUfgfvwwxwwwwwwwvwgwffvwgwwwgvvvfvwwwwwwwvvwwgffWWvwwgggffvwxwxwwwwwwwwwwwfffwvwwwwvgwfwxwwwxwwwvwvwwwfwwxgvgwwxvwgwwwwwwwwwxvwwfwvvxwfxfwwwxWvvfwwwvwvwvwwwwwgwwwhfvwwgwggwwwwwgffwwwwhwwwwwwwwwwwwffwwfwwwgwfwfhwWwwvwvwhwgwwvgwwwxwvwewwwwgwgwvwwffwfuwfwwwWffggfggVwgwwwvfvwfwwfvwvwwwxwwgggwwhffwxvwwhwwwvxxwwwwwxwvwwwxwgxwwfwwwwwxwvwwwwfwxwwfwwwwwwwxwxxwwwxxvwwwgxwwgvwgxvvwwhwgxwwwgwfVvgfwvvwwwvvgwwwxvwgevgggwxwwwxvgvgwwWwwfwvvxwwvvgwwwwwxwwwuvgwxvvwvwxvwvWvwgwvgwwewwgfvfwgwwwwwvwwwwwwwxwwgwwwxwxvwfwwwgfxgwwwxwwxwwxwwwwwwxwgfwwwxwwwxwwwxgvwwxxwxxwxwwxwxxhwxwwwhwwwxvwwwwwwwwxwwwwvvwxwgvxwwxwwwwwwwgvwwwxwwwwwwwwwxvfxgvgvwwwwwwxwwwggwgvwwwxwwwxxwwwwxvxxvwwwwwwwvwwvgwwwwhwwwwwvwxwxwxxxwwwwwwwfwwwwwwwvgvwwvgvwwvggeWhfvvwxwwxvwwvgxuVgwfvvwwwwvvgwwwwvwwwwwwwxxxghwvvwvwwwwwwwxwwxxxwvwwxwwwxwvxfeggwgwwwwgvvxwxwvwWvvwgvwwwwwwwgvvwvwveggggwwxwgvvvwwwvwgwWvvwggwwvxwvxwvwvwwwwwwwvfwgffwwwwwxvwwwwwvwwxwwwwwwwxwgvvwwgvgxvwwxwwwwwwxxwwwwwwwgggwwvwwwxxwxwwggwwwvwxwwgwgwxwwwwfxvwwxxhxhvvxvwwxwwwwwxwwgwvxxxwxwwwxfwwxvwwwwwwxxxwwwxwwvvxwxxxwwwwwwxfgwvwvwxwwwwwxwwwhvwvvwwxwwwwwwwfwwvwwxgwgwvwvwgwwwwgwwwwwxxwwxxxwwwwvwxwfwwwxwxwwwgwwxgwwwgxggwwwxwwwxwgwwxwwwwwxwwwxwwggvwwxwwxvwwvwfwxwwvwwwxwwwxwxwwwwxxwwwxxwwgwwwwwxxwwwwwxwxwwxwvwwwxwwwwwwwwfgwgwwwxwwwwwwwhvxxxwwwwwxgvwvwfwvxxwvwgvwwwxwwwwwwwgwvwxwxwwxxwxwwxwwwwwwwxxwwxwwwwwxwwvvxgxxggwxwxvvwxwxwxgvgxwwxwwgxwwxxwwyxwxxwxxxwwwwxwwwgwwwwwwwvwxxwxwwxwwxxwwxxxwwwxxhwvwwwwufwfwxfwvgvgwxxfwvfwwffwgfffuWvufwfwvfwwhvggwfgwfvgefVgwwwWvgvvGeVVvgfVuwwwgevggwwgvxwvgffwwhfvwwwwwweVwgvvggwgwvxgwggwvxgUfegvgxwwgwwvgfwwffwwvVfEwfwwgvgewVffevgUewgVewvvggwvwfwwvgwvvWfuVeffvfgeVgwvvfgffffvfgwwweVvfgffVevvwfwwwfwwgvwwxfwwwwfvwfwwwgvgwwffgwuwgvwwwwfwwgfwwgfvwwgvwwvfwfwvwggfvfwvfwxfwxgvwwwfxwwwvwxwxwxwwwwxfxxxwwwfwfwwwwwgfwwwvwwhfwwwfwwggwwfgvwgvffwwffgwwwwfwwfxwghvwwwwfwwwfgvgwwwgwxxwwhwwwuwxffxwwwwwvfwwwevgwgfVgwvfgwvvvwvvffWghffffWwvfgwvvwffgwtwvvvvvuwgggwfvgggfvvwgfwwgggwffgfVwfgggwvfgwfvwwvvggWggfwwxwgwwwwwwvwgghxgwwwvvwwffgwgvgggvvfwugggggvfgfwvfvwfWgwgggwwfgwfvgfggvggxxggfvvvgvwvwwwwgghgxxwwughwwuwfvxxxxvwvwwwwuvfwwwvvhgvvhvgwegwfugugVfvvvgwgvvwwwvfvgwwffvUfwfefvgfvfwfgwwgwfeWfefvwVfvgEvVVfgvfwgvfwegwvugvWfegwfwvfwgvwwvwgwhwwwvgvgwwwwgvwgwfVegveffefwfufvgfvfgfVwwgwVfGuvfwgfevgVvefegvwXvwffxwvwggvgxvhwgwgxvwwxwvhvvwxwvwwvwvgxwffvgvwwwvwggfggwfwgvfhffufgveevfgvffgfxwfvwgvwfvwwtwgguvWvvewfgVvwfwwwfvVgevfwvgVfeVvFeWfwfwfgVfefgvvevfgvfvvvggwwgwfwfwwvgvvggwvwgfwvvhgugwwvhwwggguwguvewfgfvvfwwwfeEgVwfwggfvffuVfgfwvgxwwwwfwvwvwgWvvvgvggwxxwvwwwwvwvvvvwhwvwfwfffgvgwgwwxffgWgggggwvvwvfwggWffffWgggfwwvvvfggwtgwvfwvfggggfvgwgvvvvgfwgfgggwwgvWfffgggggggvfvwvvgghWvfwwxwvwwwwwwvwhgghxfgvvvwwwwwvwfwggfwvwwuvggggfvwgwvffvfWgvggggfvwgwfvvgggxggwxxwgwvvwfwfgvwwwgghgxxxwhhwuwwuwgvvxxuwwvwwvxwfvwwwgwgwwgwfxwwggvwfwwgwgvwffwwggvwgxuxfwwwxfvwwfwxwwwfwwxfwgvgfwggvffvwhvwwgvwwfwwwgvwfvwwwxwxwxwwhvxwfgwghvwwwwhwwwwwwwvwwfwwwwgxgfwwvwffvwgfvxwwgvvgvwwgvwvghxgfvvvwhvwwwghwwwwwwgvwuwwguwwuwwwfwvxwvwgvvwffvgwwxwwwwwwwvwwvxxwwwwwwwfwwwvggwvxwwwwvwwvxwwxxxwwwwwwwwxgxwxwwxwwgwwwwgwwxxwwxwwwwwwxwwxwxgwwwgwwwwxwgxwwwwwwwwwwxxxxwwwwwxwwxwwxwwwxxVggfgffwveffvwfffeVguffwwfgVffwfvffgfXuwfevvwwwffVUgvfgvfVgfVdfwvwgffhvfWeFefffUVefVgfWdefvwvfVgVguvvgvwfvgUfffvgwwuxGuveVfvffwwgwwxgVffgfuvvwgeefvwegVVEWteUfffVVEcVfgwVfVgvvfVWVffffVfvfgWeweVfvffwwVvggfVfVgVduvvWvwfffwgVVgufffegvgewvvfgfgvffVgwUefwwfWfgwwgvfvwwgvvfhfvvvvvhgfvugvgvggwvvvfvgvwgWgfVhvvvvvwugWfUfgwwvfhfwweWevwfvvUffvggWvfvwgfgWfXvvewvvwwwgfwggwvghwvevgfufvuwwgxwxfVgwgvvuvwVfufwwvgfeXvufvwgfgVvdWfvwffXwvfeGvvfvwvfegwwuvgevfwfwwgwweeWggfevvwfwfgvwwfGwvvffevwffvvvfvgwwgfvfwgffvwWgffggweuvwfwffWhfewfggxvfvgwwfVgvgwfwfufvvvwfWVheVwfgvgfgtVfvggwWhffwGgeVvvvwfevfvwwfggwwwffghvfgvgwfwwwvgggggwwwWwfefvwvvvgwxwXfVgfwewvwvVfvvgwfvgXvfwfwvWgwuVwvVwwfhvwgVfufgufgfVuvWwvVVvguvwgwwwxgVfggwVfvwfvgffvgvGgvgvvffwgfgvwwgwfwwfVfvwfffevgwwgxxfxwhvvwggevgwfgfvwwwwgdvwwwxUwfWffgggfwgffgwxwxwwfgfvvwxwwgvwUxwfWuffgwwgwwwwwwwvwwwgwxwxuxwfvxfwwhfvwvwgwfggeffxgvwwwwffffwfwwvwwxwvvgwxxvuwxwwfwxwwwhgxwwwfggwwwgfvwxwwfWwfVfwffdWfugwffuefwVvgwfwfgfvgfefffwWeuVfvVwffuTUvEUgegeeWffeVffvefwffCegVfffffeffwfeefwfwffvefvVfWfVgvgvwffvgwwvwFgWVffvfuwvwwxWfefgfwVvwweffvwwvvvUuvffgvWfvfUffEfffvvffTvvgfeefVuvwVwVVffufvvfegfwWfefgfgEugWwgVvgvweefuveffwvffvwffgfgvVffgvVUfvfwvwhxvvxwgggvvwgweuvgvgWgwgwweGggwfwvxhXgfgxwwhvwgffuhxwgwgvfehvvggwhwhggvvwwggxfwvgwwwwxwxgxxxwvwwvwxwxgwxgwwhwvuvWgwfgwggwvwWVfwvgxwvgvfvwWffgvvxwwwfgwugvwvgwwwVwxwgvwvwwxwxvwvvxewwxwxvxgwuwgfgvvwhfvwwwgwgwvVVgwfwVwvgwwufGgvgWwvgwvWggvvxhwwgffWwvgwvwvgeuwvvvfvxvxgxgvvxwgwvvwvwwxwwwhwxhwwwvwgwxxxxwgwvwgvgghgvvvwhwwVfghxhxgwvgfefwvfxwwhggwevwwwwgwwxwWwxgvvwvxwxwwvwvxWgwwxgxwgWxwwghfuwvwggwwuvxVwXffwwvfuwvggwgwwwffgFwwwwgxghwgwgggvvffvgffwhwwwwfewfwwfwgwghxwxgxhwgvvgwwwwwxwwxgwwwwxwxwxxhxxgxxvfxxxvxVxWffvvwxvwfgggfxwwwffvgwgwhxvgwwuwwxwxgxgxwfxxwvvvwwwgfvwwxxwxhgwvwfwfegvgwwwvggwgffxggvvgwgexvfvwfvwgfgvvfwvwgwwgfwwgvvgwwwguwwwgwfewwWvwgVwwffwgvfvgwVgvgWvvwfhggvvwwwxfvgwwwwxwWxxgvgxxweggwvwwgfvvvwwhgwggvVgwvgVgVguvvvfvVtwvwfwgVxvffvgEwwwgvvgwfwgwfwxgvgfwgwfVfuvwwxwwggfwxwwWwwvwwgwwgWgvgxwwvgffvwwfvwehvggwwvvwvwwfgwwvvvfwegggvfgvvwwfhvvfwwfgvwvfhwvvvvwwwfwuwwgwgfWwwvweggvguwvfvvggvvvVvfvufWwgvvewwwxvwhwwgvwwxvxwvgwwffVgwxwwfvvuwggwwvufwuvvvhggvvvgwgWvdgvgvweGvvvvvfXwwwvfvgvxufwwWffgvgxwggwvvwwwgwvWwwwwfgvvwwwwgWgfwvwwwwffvvgfwWhevgwwwfvgvwWheggewfgVguwfwvvwWgvfwfgwvWvvghugwewwfwwgwwwvgVhvvvgvFguwwwfwffgvfvwwgfgwggguwwevvwvvwvvwwvwwwwwxfwwwwvfwvfgwvgfwevvwgwfWfggwfguwweffwfwVgwvvgfgvvwvgUgvfgwggfgfwhggxwwvefwgwwwwfvfvvgggVvwwhwgvvwwwhwwwWgvffwhwwvvvfwfggwwxwwxxhgxwwwwwxggwgxwvwfuwwgwwwwxghxgwgwgwwvwwxwxwwwwwwgwwwgxwxvwwwxghhwwvgvxwxxxwwwxvwxwwvgwxxwxwgxwwwwwwvvwxwxggwwwxgwwwwwvwwxxwwxvxxxwgxxxxxwwwwxgxxxwgxxwxxffwUfwvvggwgWwgVvvvwVgwUvwhfvWfwwvvwfvwfggggUvvgwVvvwwXvgwwggvTfgwwfevwwwgvfvfvfvgvuffwwwVfwwfVwwgvvwvwwwvwwgxhvvxgwwegvwvvxgvvgfvwwwxvwvfgwwwVvgwgVvgwghevgvggvefwwvvvfvvfwvgufvxwfwxgwwfvfwvwxwfwgVfgwwxfvgwwwwegvwwwxwwuvggwwxwffggfxwfggwvxwxwxwhvgwvhwwhvggwwxgvgwWwwvwwwxxvgwwhwhwvxwwwwxwvxwxvwwwwwwhwwhxvwxwxwwxwwgwhwwwxxxwxxxxwxxgwxxwwgxgwwgwgvxxgwwxvwwxwgwvvwwwwwwxwwxxwxgxwxwgwwwxwwwwwxxwvwwxvwxvwevvwhxvwwwwwwwvewvxwwgvwWwvwfwvfwhwxxwwxxwvvxwwwwvwwwvvwxwvwxvvfwwhxxhxhxwhxwxxxxwxvwwwwwhwwwwxwxxxwwxxvwvwwwwvwwxwhxwwxhwwxxxxwxwgxwhxwwwhWhgvwgxhxgxfgwgwWwgwwgwwwWvgwgvxxwwgwwwwxgxwwxxxwvxxwvvvvwwwxwwxwwgxxxwwfwwwwwwxvwhxxxxgwwwxwxhwxxwxgfgwxgwxwwwxxvwxwvwwwwwwwwwxxxxxwxwhwxxxxxxwxywhxwxwhwwwvvgwwgfgvffwuwwwvwvwwwwwwwwwgwwxgwwgwfWwwfwxwwggwffgvvwgfgfvwgxfgggwgwwgwfWvggvwfUfvFvffwwwwwVfgwwwwffvVfvwgwWwgffwwwvwwwwwwggvwwfgwvwwUvvevwxgfgfgwfugvvfVvwfVhwwVfwwwxvffgvffvwxgwgvfxwuvgvwgwgfvvwgffvgWgWffwwwVfgfgffVwvfvwfvwvwwgwwfwwwwfvxvwwxwwhgfwwwwffxwggxwvffgfwxwwwgfewvwwwwwgvxxwwxwwvwxwwwgwvfwfwvwwwwgwxhfevxxgwwxxwwxwwxwxwwxxxvxgvwwwxwwwwggfwxxwvhvxxwwwxwwwwvgvxxwwwxxwxwwwwwwxxhwwxxwxxxwwwwwwxxxxwwwxwwxwwxWVgwvvwwxwgwxwfxhwwvwwWVgwvvwwvvfgfwhvgwwxwxggwxwvwwgwwwxxxwxgwgwVvwgwvvwwxwvwxwwhxwvwhxwwwwxwwfwvxxwwxxhwwvwvgxwwwwwwvghgwwxwxwvwwgwwwwhgxxgwfvvfgwwwxxwwwvwgwwwxwxwxwxvwwhxxwwwwwxwvwwwxwwwwwwwwwwwwfwfwwwwgwwxxgvhxvwwfwxgwvwxwwwwgggwfgwwwvwugxvwxxgxgwwwwwxxwwfwwVvwwfwwwwwwwwvxugvvwwwxwwwxxwwgwvxwwxwwwwxwvgxwwwwwwwvgfgxvvxxwwgwwwgvhwwxwvfffxwwwwvwxxwwxwwwxvwwxvwwwvwxwwwwxwwwwxwwwwwvgwfwwwxwwwvxwfwfwwvwgvwggwgwwfwfgwfvhwgxwwvgwfwxuvwwgvwwwwevwwwwfffwVvwgwwgwvwwwgggxfwwuwgwwwwwwwgxwwwwwwgwvxxgwwvxuwwvwwwgfxfwvwwwgugfwwwwfwwvxwwvfuvfwgvwvgggwxvgwvwvwxxgwwvwwuvwwwwwwwwwxvwwxwxwgxxgwvwvwwfhWvwxwwwwwxwhwwgwwwwVhWxwvvwgwfegvvgwwwvhwWgwxfxwwfwwwwvgxwXgxgwgwggVfxxvwxwwvwxwwwxggvxwvwwxwxwxwwxxxwwwwwwwwxwhxwwwvwxwwgwwwgwwggxxwwwwwwwwxhhxwwwvgwVvxwxhwxgfwxvwxwwfxwgwwwwfxwxgxwfwwwvvwxwwwwwwwvwgwwvwvguwfvwwvxgwwwvWuxgvgugwxwgggwgewvvggwxwxgvWwwxxwwfxgwxgxwwfwvwwfxgvwwwwwxhhvxxvgxvvwwxwvxxwxgvxxwwwxwxwwwwwvxhwwwwvguwxwwfwwwxxwgwgwwwuxwxwxgvxwwxwxxgwwxwxxwggwwwxxxxwwvxwwghVgefxgwwgvwWvgffgfVgvwVwefvwwggvFfwwwffwhxgugvefffgvwfwwwwwhvvggwwwwvvfgwvVwwxvwxhvhuwgefvfvwwxwwgwfxwwwwxwvwwxWwwwfwwfVvxwwwwvgvXvwwfffVvwwfxwwwwwxhvvggwwwvfvwvfgwxwvwwxwWwwwfwgfVvwwwwwwwwwwwxxgvxwwwxgfvwxwfgwfhvvwgfwfueggvwfvvwwgVgvfuvvwwfgvgvvgvvfvfwvvwgvfWgUfwggwegvgUgfhvfwwVwfgwgWefgfggeevwVfgvggvufwvwvvvgvwwwwvVVfvvwwwwgffeuggfewvgWvwwvguvfvfgWwgfuvfgEggfwvfVggEgVhvwwgfvvvvvffUfVfwwgwfVgVgguvwwwwgxwwvggGgffefgvwvfwwgwvffvfffwvffwvfgwwwfvwvgffgvVvvfWuuffwwfvvuvfgefffgvfgfguweVgffgvefewffveeeFfgfgfvgwUffhVefwfdfefvvUfvefgVfevWudfVwVeuTvwvWfffVfgvwgweVeguwvfvfffVvVuedgwfWfgggvwFeefgvefWwgvvefT6UVfffgVvfWfWfffvVeVfvvfVfTVewuwgvfffVwgvvegwfgfwxwwwUVfffefvvwvefwgfwfgeffefgVeuvvgwgwfvggwVgfgveefvtUfVVvWTgeWggfvvfuffffgfuwedufvufeVfwgewfWgVVVegfVV6VTgffffffevffwfVffvfguffvuUfgwwwfgVgfefffwgwfwwvWVfvwewvfWffUVvfTveggvffwfwwfeVfvufgffvgegVgVefgfwVfFFfehfVVfvvvgvfgfVEVfvvuwvfgfeUfwgewvwhvfvwwwWVVegeffwvfWvwgvwgffffefvfeUfwgvgvgfuegvwxuggffwvvxfvwgwvvuGggwVwggwfvhgwvvvvwwvwvffwwghWhhfVvwvvgwgxgvxwgxvvWwWffvwwfwwwwwhxxwwvuwwvvwgxgwewvwfwwgxwgwxwwfgggvvwwvvfVVwwgwggwgfgwgfvvguggvxgvvwxwxwxxvwwxxvwxwxxgwgxVwwxgxwxwwxhWwxgxfxwxxfgfggvvvefgvXevfuvgwevwwefvgvvwgwevgvwffuWgvXfgvfvgwVfwTffvfwvgfwTevwgvvggefwfWfvfvwWvfgvhVfvgwwwffwwfvggwwvwgwvWVVvwgwVvwffuvwfevwgvvwwwggvvvvhfgvvwwvfVwUfvwvwggWgUfvvfvgwvfuvwfVUgewfwwfwwfevvxwVfwWfvwwxggtvffffggvfvwfvwwvfvfefgwfffvwwgwwwfufvwgwhuxWffXxgwxfufvwgffvgtvwvwwwwwvgwvgxwwxffffwvhxvwfvwwwxvgwxwhwgwgvvhwvwfxwvxwgwwwwwwwwvggwwxwWwgxvhvxxwwxuuWffvWxgwwvfefwvvgfgffwwvwvgvfvwgwgxwwwwxwWhxgwxxxwvwwxfxwwwwvxvggfwwxwwxfWvwvvhgwfvwvgxwwfWvwvvgwwvdffvwwwwWwueffwWgwvwgffvvvvgfgffuwwvwvgxvwwgwvgXeffxXggwwvwwwvwwwhxWwwgxwwgwhwvvwwhvvwvxhxgwgwfvwvxhggffwwwxxwvwwgxWwwwxxxwxhwhvvwxxwxxvwvgfgwwwwwwggxxxxwwwxxhuegvhwguxwfvfvwWxwwffvvwwVvwwvduvvwfwvfwfwgvgwwxvgfvfwwgWggeevwgvfwgwvgvvxvwhvwUvfvhhgwwwxvwwxwwvwVggghwwxwWwgwwfwwgwhwxwwvwvfgggxwwvwfefwwwwhhwffwgvvghhgvvhwwgxwwxgwxwgxxwwxxwxxwwWwvwhvwxxvXghwfwxwwfhxwwwwgxwvwwvwwwwwwghxwwwxxwwwwhwgwwvwwwwwwWWvVfwVvwwwxvxwggggvgwvwwwwwwghwwwwwvwwwwwwxwxxxxvgwxwwwwwvvwwwwwwwwwwwwwghwwwwfwwwwwwWhgWwfgggwfggxvwwVvwwwwgwwwvwwxwgwwwvwwwwwxgwwwwwwwwXeVUUgefVefffgVfwfUUfevffffffVvfwffwxwwwwvwwwxwvfvwwwwfwwwwwvwvgvwwwwvwxwwwwwwwwwwwwwwgwvwvwxxfwwxwxwwwxvwwvwxwwgwxfwwwggwwfvwvWfwwgfvwwwhgwwwwwvwwwwwvwwvwwwxgwfwwwwxgvwwwwgwwxwhwxwwwwwwwwxwwxwvfgwxwwxwwxxxwfgwgvwwghxwwgwxwwwwghxwvgwwgxfhxwwvgxxwfwhxxwwwwwxwxxxxgvwxxwxwwgwwxvxxxwwggwvwwwwwwxxxxxxwvgxgwwvhxwwvgwxvgxhwwwwwwxxxgggxwwwvxggwvvwwggwxwwwwxvwwwwwwwwwgxwwwxwwgwwxgxvvwwwvwwwwwvgevwwgvggvgwwgvxgwwvgwvwvgvgWwvfxxugvfgwugwvwfwwwwgwwvgvxwwxwvwwvvwgwxwwfwgevwvwggvwhwwvwgwwxxfvwwvwwwvgxvwwvWvvgwugwwvgfgwvvWxvwfhwgwwvwwxxgwwvgxvwwwwwwwwwwwgwwfwwxwvgwwwgwwvhwwwvgwxxwxwwwwxxwwvwwfgvvwwwwvxwwxggggvewwwgwvwxwxwwvfwwvgwewwggvwhwewfffwewwvwfwvxxwgfwwggvwwwwwvgwwvxvwxxgvgwxwwxxxvvwfwvwwwwvxwwvwvwwwxwfxwvgwVwvwguwgwwVgfwvvfvwvgxWvgghwvgwwvvfwxvwwgwvwwvgwwgwvwwwxwwgwwwgwvgxvwwwgwxxwwghggwxxwvwwxxxwhgggvvwwghhwwfwxxwwwxxwvghxwgwwwhhwwwgvhhxwwvxhwxwwxxwvvwgxxxwwwwvwwwxxwwwggwvgxwwwwwhhwghhgwwvxhgwwwwvxhvvhxvgwwwwxxwwggwwxwggwwvwwggwxgwwwwxvwwwvwwwwwwxwxwwxwvgvwgwgwxwwfvwwvgvwwwwvxxgwfwwwwvgwfwwgwxugvwwwwgwwwwxwxxwgvxwxwwwwxxwhvxgxwwxwxwwwgwwwxwgwxwwwwwwwwwxvwvwwwwgwwxgxgwxwwwwwwgwwwfwwwwwwfwxwwwwwwwwxvwwwwgwwwhddUUffwwduwWeUEwwVVwwddUUfVefcfffUffgfvetwGUVVwweUwwfeevwgeuxgVVffvfgeewwwvfgwwffwwetwGUUVwweewwVfffvwgffwwffFwwffvwwwwGwwUUwwwwwwwwwwwduwWeeEwwUVwwfeevwgeuwwgVVffvfgeewwvfgwwFwwffvwwwwGwwUUwwwwwwwwwwwvwgVuwwwwghvwwwwWevwwwffwxwwwwwwvwwwfwfVwwgggvwwwxffwwvvwwwvwwwwvwgfwfvfwwvwewwwwwwwfgfvfvwvwgxwwvVvggwffwgvwgvwefeVugghgfugvvgwvvwwfVfffxvwgwfvwvxwxxweffvgfffwwwgwwvwwFvgfgvVvwwwgwvvUvfgfwfgfWxggegvvvwfgfwwffVgfvwvwwwvfvwgwvvwwwwvwwwwWefffffVvuwffwwwwxgfwwvfwwwwfwgfwwwwgfvwwxwxwggufwvwwggwxwxgffwggwfvwxwhhvwvwwwfxxwxwxwwwwwvfwwwvwwwfwvwwxwxwggvwvxwwwxvwxxxxwwwxxwxwwwxwwwxwwxwwwfgwfxxvfxxxxwxwwwwvvwxwwgwxwwxxwxgwgvxwwxwxwwwxvxwxwwwwxwwwwwxxxwxegXgwwxghwgwuvgxwgwvxvfhXwvgfVgwgxwfwwwwvwwwwwwwwwvgwhwvwvgWhwVvxwgwxvxhwwxwwwgvvvwwwwwxwwwwxwwxwwgvxwwvxgwwgvvwvxwwhwwwvvxwxwwwwxwvxxwwwwwghxVvwwxwvwwxwwwxxwwhxxwwvwwwwvwwxwvgwhwvvxwwxxwwwgwwxwwwvxwvwvhwvwwxwwgggwwgwwwuhwvvgwhgwgwvvgvwfvgwwwgwvvggwvwwwwgwvwxwxwvwVvgugfgxwwwwvxwwwwvwgwvfhxwwwhvxwwwwwwwxvvwfwwvxwwgwvwuggvwvwwxwwvvwgwvghwvwuwwvfhwuwwwwwwwwgvvvggvVxvwfwwwwwxwwwwgwxuxgvwvwxwwwwwvwwwwwxwxwvghwwwwxwxwfvgwvwgwggwWvxvwwwvwfvwgvwwvwwwwfvwgwgfwvwwvhwxwwwwvhwVwwhwgxfwvwwwwwwfvwfwwvvgxwwwwwxwwgwwwxxxwwwvwxwwwwwwWvxvxwxwwwwxwxwxfhffvgwwwxwwwwwxxwwwwvvwvxwvxvwwvwxwwwxwwwxwxxwwwxwwwwwguWhggwwwfwwvvxwwwvguWgwxvvgwvvvxxfvwggwvwhxwwwvwwxxvxxwgwwgxwwVvxxfwxwgggwwwwwgwvvwhwwxwwvgxxxwwwgwwwhwxwxxwwvwwwwwwwvvwxwwwwwwvwwgwwgghfvwxwffgwxwfwxxxvgwxwwwfwwwxwhwwxvwgxxwwxxwwwwwwwwwwwwwwvewgfwvggwvwvwVxhvwwwvewgwwgefwvhgwvxvwwUwhwwvvwgwxvwgwvxvfwxgwwxgwvgwxwuwewhwwwfwgxwvvxwwgwvwxxwwvxwwxwxwwwvfxxvwgxwwwxwwxwWwvxwwvxwgwvxxwwxwwwwwwxgwwvhwxwwwgwwxwvxxwhvWVfhwwwfxweffVfwfwgvfWVfwvwGwwgfwfvvfvfwwgfVVfvwfwgvgwwvwxhwgvvggWggvfgwwwwwxvwfwxfVVffwwvwwwwgwwwxgvwwxwxwwxwxWfewfwwwwwvwwxgwwfxhuffVfwwvwwgwwvwwxxhwgvvvfgggvgvwwwxxwxwwxxWfewfwwwwwwwxwwgvwwxxxwwxgvfvvwwwxxwwwwwxgwwxwwwwwwwwxwwwwwwxwwwgwwwfhxwwxwwwwwxxxwxwwwhgwwxvgwwwwwwwxwwgwgwwhvxxwwwwwwwwwxwwwxvwwwvxxwxxwwxwxxxxwwhwwxxwwwwxwwwwvxwwwwxwwxgwwwxwxwxvwxwwxxwwwwwxxxxwwwwxwgwwwxwfxwwwwwwxxxxwxwwwwxvwxwwwwwwwxxwwwwwgvwwvhwwwwwwwwxwwxwvwwwxwwvwwwwwxwwvwwgwxvwxwvwwwwxwwxwwwwwgwxwwwwwwwwwwwxxwwwxgvwxwwwwwwwwwxwgwwxwxwgxwvwwxgwgxwwxwwwwwwxxxwwxwwgvwwwwxxwwwxwxxxwgwwxwgwygwwwwwwwgxvvxvwwxgxvwwgwwggwgwgwwwxwxwfgwwwxwwwwgxWgvVwwxwwvxxgwxxwwwvwwwwwwxwfxwwwwxwxexwwwwwwwgggvvxvwwfxxxwwwwxwwwwwfwwgwwwwgwwgxwwxvwwxvwvwwfwwwgwwwwxwxfxgvxgwwwwwxxwgwxwvwwxgwwwwwwwxxWUuwvggvvwgVegfvwvfgvgWUvgvgfgvffvwgxwvwgegfwvfwwhfwwvxwwgwvvfffWxwwhxwhwvggvwvvvUvggwfwvwwvvxwwwwhvwwwwgfwwwwwvfwhvwffgvwwwxwvwwwwvvvWuvggwfwvwwfwwvxwwvwfgVwgxgwwvwwgwwwwvvwwhwwffvwggwxxwwwwwvxxwgwvwxwwfwwxvxgwgfwwwwgwwwwwgwwghvxxwwwxwwfgwwwhgwwggwwexwwgxwwhvwwwwwgvwwghwwwxwwwevgvxwwwewgwwxwxxwxwwxwwxwfwxxxwwxwxvgwwvxwxwxvwfwwwwxwwhwwxwwwvwfwwwgwwxwwwvwwgwxxvwuwwxwhwwwwxfvfxvwwggwvwwvwgxwwwwgwwxwwwvxxwwwwxWUgxfwvgvwwguffwgfwgWUWwfwxvvgffgfXvwvgfufVgwgfwgffwwxwwwvvwwffhggfhvXuwfwvgvfwgevWvwvwvwwvwwwwwgwwwwgvvwxwwwwwhvxffwwwwwwvwgwwvgggevwvwVwvwwfwwvxwgwwvxewvwwfvwwhvxxgwvwwgvwwfhwxffvwwgwwwwgvwwvwwfwwwvvgwwxxfvwwvvxxxwfdugVffwVgfVFgvuwvVwggedugffwvwvefvgVvvfWwVVvuuxfgwggufggwgvwvvwgfVtvvvgwwvvvxWffwvhwfVwfvxwwvwwVfwvgfgwwwwwgegvwwwVxxxuwgVvgguxwwxwgwvgwffFwvvwwgwwwvvgfwvwwwggVuvvwvwwvvvheguwwfxxxvwfVvwgvxvwxggugwwvwvwgxwvwfxwhgggxgwwxwwvhVFwfefgvuvWVuvfxvgWggWVFwffvwfgfufwgVxvfveVVdwewvvgggWfvgwwvvvvwwffTwvfwfxwgwvfwefgvwffftwfwwwgwwgfuwvvwwwwfvwWwfwwVxxgxvfVhgWwvwxwgwgwwgfuggxwwfwwgfwgwgvwwxvwfUwvfwgwwvvxWwevwwfxxWxwfVwggwwwxwggWwhwwvxxxwvwgvxwwggvwxwvxhffgUwfvgfvVvfwwgvuwfefwggUhwwwwfugfhghvvwwVvgwwgvvvgevwfVgVfvggvwwvwfwfgwfwvVvggfwgvgwwVVvwfwggwuvggwwxwggwgwwwwgevfggvfffwgwwwhwwwgwwwgwwVgvvggvgguvvfEwgfwwwvwwvfvvwggwvggvggvfgvwfgvVfwxxgwvwxwwwgwgwfgvggWwgvvVwwgvfffvwwwwxwwwwwwfwveXgfwfwWvvfwwfvwwvfuvfeWwvwwwvfhfWvvvgVvvvggfuwwffuffgWfvufgwgvwvewvwvvvgfvwfggvwgwWuvwvgfggvvevvwwwvgwwvwwwgvgwgvffgVxgvwggxwgwwwxwgwWfuvfgwgwwvugfXgUvtwwgwgvvvfwwwvvwvvvgfVgffggfggfxgwwwwgwwgxwgvVfWgfvvfwwwvfwgvvwwvwwvwwwgvgghugvfwwuffuffegwgewvfggevwwwvfggfhffwvwgVvvufggwfwvGgutVfwwwfwwvvfwfvvgvwfvvfwgvgwwvfgwwvgwwwfwvgwwgxwwwfwxwgVfffwfwWvgwwgwwwhwhwvwwgwfgvwwfwvwfwvVgfugvVvvvwwwwwwxvwwgwwvwuffefVgvvvgvwwxfwgwwxwxwwwggWwWgvvffgwwvfgwvfwvwwwhwwwxwwwfXggvwgwvwgwxwwwwWwhvWwwwwvwvgggwvvggxvwxwwgwxwwwwwxgwxxxwwwwwgvvghvwhxvwxxvxxhxxwxxwwwxwxwxwvwwwwwwvwgwwwwvvwwgvwxwwwxxxhxgwwwxxxxwxxgwwxgwwxwvgvVvfgwvwhvUggfwvvvwfvgVvfwwwhfwfvffwfvwWffgwVvvefwVvevGeGewwwffggwgfvvwgvwwffwvfwwvghfgvwgwvvwwffwwwgvgwxwxwwWuvfvgffwgvxgwvwwwwwxxvxwwvwgffwwwwvwwwffvVvWvWffgwwwwwwwguwwwvwwfgffvgfwVfwgewwxfgwwgwxxwxwwgfvuvvvvuwgwwfgggfxwwwxwvwwwwwwfwWggwxxvvwwxxhxhwhWvgwuwwfwxwwvwvvvwwwwwxxgxwxwwwwwwgwwwxxwhwxxxwvwwgwhxvwwwwwwwvxvwwwxhwvwwxxwxvvwxxgxwvvwwgwwwwxxxwwxxwgvwxxhxwxwxwwwxwwwwxvwxwxvwwxxvvvvgwxwwwwwwwhwvwvvwgxwufgwwxvwwwggwwvwwhvvgwwvwgggwwwwxxxwwvwxxwwxwwwhggwwwxgxvwxxxxwxwxvhxwxxxgwwxwxxgxgwvwwwwwwwwwwxwxxxvgxwwhwxvhwwxwwxxxwwwxhwwxxwgxwxwxwhggwwvxxwvvwwxvwxxgxvvggvwvwufwgwvwwwwwwwwxvwwwwwvvvgwgwwwwxxxwwwxxwvwxwwxwxvwwwxwhwxwwxwgwwwgwwwwxxvfwwxxwhwvwwwvwgwwwwwxwxwwwxvhwwgwwwhxxxwwhwwxxgxwxwxxxxvvwwfvefevwwgwwdvfeggwwwwwgwwwgwwwgvvVfwgwguvfvfgwfxwvfgxfgvevgegwwvVVfvggvfffwfvVvwvwwwvgvgwwwggvfhwwgfuvwwvwWvwfgvwwwxwwwwgfvwwggwvwgwwwhwuwwvvffgxfwfvwwgggvgwvvvwffgwwvvgugvuggvwffwwvwwgvgwgvvwxhffvvWuvfgfwgfevfvwwvwfffwwwgwgwweffxwwwgvWvwgvvwxvwwwfvxvWfwwwwfxwfevgewxwwwewvxxxwwwvwgwwwfwwwxvWwwgvvwewxwwwvUwfwxvwxwhgvwwxwwwxwxwxxxgvwxwwwxxfvxwxgwvVwvwxwwwxfwwvxgwwfwwgfgwwwwxxxvwxwwxgvwxvxwwxwxxxwxwvwwwxxwhwwwgwhxVgxgwwwwwwvwggwvgwUgxwwvhwgwhevvwgwwwwwwvggwxwvwwwvvxghxwwxwwwfuwwxgwwxgwwxwwwwgwwwwwxwgxwwxwxwxhwxwxxwwwxwwwwxvwwxwxwvvwvvgWgwvwxgvvwvgwvgWhxxwwwvgfwxwwxwxwvwhhvwxfvwgvwwxwwxxgvwwgwwvwhwxxwwvwwgvwxvwxvgwhgvwwxwxvwxwwwvWgxvgwhwwwwwvgvwvvwgwvwwwwwvfgvvwwxwxwvxwgwgwxwfffwgvwwgwgwgwvwwgxwwwxwwwxwwhxwxwwgwxvvvwhxwwvwwgggvWwvxwwvwwwgvxhwgwwwvehwxwwxgxxwxwxwvxwwwxxxwwhwxwwwxwwwgxxwwxxwwwvwwwwfwwfgwwwwhgvvwwwvfwwugwwgxwgvxwvggwfgvvvwhfwwxwwvfvwfwWvwwegvwwwwwvhfwwwwvfgvwwwxxgvwgwwwfwwvwwwwwfwwwwggwvwxgwwgwxxxxxwwwwwwxxhgwwwwfwwfgwwwVwgvvwfhgwxwgxwwxwwguvvwwgwvggwwgwwhwwxggwwgwuwxwwwwxwwwxwwgwvgwwwxgwvxwwwuggWggwwwwxxwgwwhwvughWwggwgggvffwvwwwwwwggwwxwwvwvggfxhgxwwwwwvfvwgggwwvwwxvwwgwwvvxwxxwhwwwxwxwvwxxwxfwvwvwvhwwwwxgvgggwvxxxwwvvwhvwwxxwwwvwevgwwwwwwwxwwxxwxxwgwgwwvwwxhxwwwxwwwwwwwwxxwwxvwwwwwgxvxvgwwgxfwxwvgwfxhfwgwxgwxgfvgfwgxvxwwwwgwgwwwxwwwwxgvxwvxvgwwgvwxwgvwwwwxxwwwxwwwxwxgxxxxwwggwwgfxwwwwguwwwxwwwwwwgwxxwwxwgvxwgvvgwxwwxwxwxxwxwwwwwxgxwwxxwxwwxwwwxwwxxwwwwwwwwgWffVvxwfffuwgwfgwwgWvfVvtgfggvwwwwwffegfvvwgwefwwgfggwwwvwggfvvwwwwwxvfgxwwhwwefgvfvgwwefwvvvwgwwwwwwwXwwvwWfvxwfwwwwxxwwwgwfgfevgwffwvvfggwwwvggvfwvvwwwwwevwwwXwwvwWfvxwfwvwwxxxwwwwwxhvwxwwxxgfvwwwxxwxwxwvwgffggfvwgwwwwfvwwgvwwgfvxwgvhwvwwwwvwwwwggvwgvwvvwvwvffwwwwwgvvwwwwwwwgggfvwfvwxwwgwwwgvwwwwwwxwwwwwxgvwwwwwwxwwwwxwwwfgwwwwwvxwgvwvfvvfwwwvgwwwwwwwxvwwwwwwwwvgwxwwwwwxxwwwxxwgffffwfwffwwwwfwwwffwfwwwwwwwfwwwwwvvxxxwxwwwwwwvvxwgfxwhwfwxxwwwxwxwwxxwwvgvwwwwwwxxwxwfwxwwwxwwgxwwfxxwwwxxxwwxwwxwwwxxwwxxwwhwwxfwwwvgvxgvfxwwxfwwwwxxxwxwxwwxwxxxwwwwwwwwwxwxwxhgxwwvvwwgwwxwwwhhwwgxggvvvxxxwwwwxwhwwxwxwggwgggwwvxxwxxwgwwxwwwwxwwgvwxwwxxwxwxwxwwxwhxwwxwwwwxwvwwwwxgwvwwhxwhggwwfxwgwxwxgwvxwwwwwxxwxvwxxvxwwxxxwwwwwwwwxxwwwxxxwwxwwxgwxxgwgwgwxwwwxwwwwhwvwwvgwwwgwwgwgxwwxwwgwvwvxxwvxwwwxgwxxgwvwhwxxwwxxwwxxwwxgwvgwvgwwhgwxxgwxwxwgwwvwhxxxwwgwwwxvwwwhxxxwhvxwwgwvxwxwxwwxxxxxwwwxwxwwxwwwywwxxwwxwvwwhwxxgwwwwxwwxwwwgvwwwfwxwhwxwgwwwwxvxwwhxvwvwxvxwwwwwwvwwgwghwwwxxxxwwwwxwxxwgvxwxwxxwxwxwxgwwghwwwxgwwwxvwwwgxxgxwwxxvwvgvwgxwfwwxhwwwxxxxwxwwxwxxxwxxxwvwwwxwvwwwwxwwwxvwwfggwvvxxwwxgxvwwwwwxxvxwvhwfgwvwwvxwxwwxwfwxwxwgwgwwgwwxwwxwxxxwxwwwwxwwvxxwwxwwgxwwhwwwxwxfgwwhvwwgxwhxvwwwxxwgxxwwxwwwxxxwwxxwwwwwwwwwxwwxxwxwwxhgwwwwfwwwwwxwggwhhfwxwgvwxwwwxfxwxwxwwgxhffwxfwxxwwxwgvwwxwwwwxxxwxxwxwxwwxxwwxxxwwxwwwxwxxhwgfwwwfwxwxwwwwwwxxwwwwwxwxwxxwwwxxxxxwwwwxwwxwxwwwwwwhWWffvwwwfefVwgfgfwfwwwWWffFvwgfffwwffwfwefffwgVvfwfwwwgffwwgfvvgufvwwwwwfgvfgwwwwwwvwweffggvWfffwwwwgwwwvwwwwwwwwuwfefvgvwwwfwwwwwwfwwwwvwgwwfevVgvgfffwwwwwgfwwggfgvfffwwwwwffewvwwwwwuwfefvgvwwwfwwwvwgfwwwwwwwwwffvwwwwgfvgvwwwwwwwwwwwxwwwwwwwwwgvggwggggxwxwxxgwvwxxgfwwwgvvwwwgwwwwxhwvwwxwwwxwwxwxxwwwwwwxwhgggxwxwwxwwwwwwwwxwxgxwwxwxgwwwwxwxggwwxgxwwhvwwwxwvwxwwxgwwwwwwgxwxwwwwwwwxxxwvwxwgwwxwxwwwxwxwxxxwwwxwwwwwgwwwwwwwwvwwwwwxgxwvwhwwwwvxwxwvvwwwwxwwxxxvwxhvxwwgwwxgwxwxwwwwwvwwwwxwwwxgxxwxxwwwhwwxwxgxwwwwwwwghwwwxxwwwxwvwwxhwwwgxwxwxwwgxgwwwwwwwwxgxxwwxwwhwwxwwxwwwxxwwwwwwxwwwwwwwxvxwwwwwwxvwwwwwwxwwwhwwwwgxwwxwxxwvwwwwvgvwxxwxwxgxwwvxwwvwwxxwxwwwvxwwwwwxhwwxhwxwwwwwwwwxxxhwxwwwfxwxwxgvwvvwwwwwgxwxxwxwwwvwxwwxwxwwwxwhwwwxwxvwwwwwxwwxwxwwwwxxxwxxxwwxvefwgwxwXvgvwwgwwwwwwgvegvggfwwxffwwvvwgwwwwggwwwwwgvwwgfvgwvwgwwwwfwfwwwwwwgwwwfvwxvvgvwwwvwwwxwgwxwwwxxvwwfwwwgwwggwxwwwwgwwxvwWfwgwvgwwwgvwwvwxgevvxwwgwwxwxVvvwxwxvgwfwwwwwwfwwhwxwwgvwwxwwwwwxwwwwwwwwwxvwwxwwxxxxwxvfwwwfgvvwxwwxwwwwgwwvhxxxwggxwwwwwwwxgvxxwwgwhgxxxwwwxwwwwggwvvxwxwxgwwxwxwwvwxwwwwxwwxhwwwwfwwwwxwxwvwgwwwwxwwwwwxxxwxxxwwwwgwwxwvwwwxwwwwwvwwwwxwxwwxwxwwxxwwxuewwgwggwgvwwwwwwwguegwvwvgwxfgwwwhwWvfvwwWgwwfwwgfwwgvvwvwfhgwgwxxwfwvxwwwwwgwgVfvwfwWgwwwvwvwxwwwgxwwvwwvvwvgwwfvwwwwwgwwwwhwxgfvggwgwwwgvwvwxWvgwwwwhgwgxwegxxxvvwgvwvwwwgwwwwwwwgvwwxwwxwwwwwxwwxhwvwwxxwwwwwhwWWvwwvgvUwvfwgvgvwwwxVWvggwvfvvwgwwwvgfwwwwgvgfwwwxfvgwwVvVxxhwxwhxxwwwwwxvgvvwwwwgvwwgxwwvhvwwwwwgvwfwvvwwwwwwwwwwggwwfhxwxwUwvwwwffgvgwwgvgwvfwfwxgvwwgwwhwvvwwwwgvwwwfvwxwgwwvvwwwgwwwwxxxwwwvxwwxwwwxwwxwwwwxwwgxgwufwfgwwwgvwfvggxwwwwwgufxvvgffwwfgwwwvgVvwwwggwgvwwwgfwwgVvVxxvwxxxwxvwwwwxwgwwWvwwwgfwwwvwwvwwwwwwxfwvvwfwwwwwwwxwwwwwwggxxxwgvgwwxwwwwwvwwfwgfvgvghvwwwwwgwwwvwwwwwfwwvwfwwwwvwvwwxxwwvwwwxxwwwwwwwwwwwwwwwxxwwwwxhgxwwwgufVUfwefvggwggwvvwvgwvwwwwvwwgggvfwwdeggfwwgwvvxgfvwvfvvegUvfgvfvWgfgwwfffvgfwgwwevvxwwwffgggfgfexwxwggefvgwwggwwgfwgfffvwxwxwvgwwVwgvwgwgvwwwwwxwgfgvgwvffvfgwvguwfwwvwgvgVffwgwwwvwwgfvwgwvxwwwwwwwWfVfvgwwWgffwvwfwfffeffwwfwwwwwwwwgVwfwwfgwwwguwwhwwVwgwwwgwffwxgvvvhxgwwxwwvwxwxwwvwfwwvuwxwwxwwfgwvhgWvwwgxwvwxvgwvwvxwxwwvwwwxxvgwxvwwwwwXuwwgwwvwvgxwxgwxfwvxvvvxwvwwwwxwxwwxwxvgwwwxwhxwxwgxwxghwwxwvxwXvgXwvvwgwwwvvwwwwWvgWwwggwvghgwxxfvwwgwwvwgwwvwwffwxwghwfwwvwwwgwvvwwxwvvvwfwwxwgxwxxxxxwwxwwwwwxwxgwwwxvwxgwwwgxwwvwvwwvwwgwwvwfxwxwwxfuxvwhwxgwwxwwwgvwwhvwxxwhxwwwwwwxhxwwxwwwxwwwwwwwwwgvwwhxvwwwghvgwvwvwxwvwvgwgwvgwggwgvvfwghwgwfwvgwwuwwwwXwfwVfgwfgwxgvvwwwwwxvfwxwwxhwggwvgwwwuwwwwxwgwwwwxvwwfwfwgwwgggwvuwxwvxxwxwgwvgwvwwxvwvwwgwgwfweghvwwwhvvexwwwwwwwwvwvwxfwgwwwwxwuxwwwxxxwwwwvgwwwwwwhwwwwwvxhxwxxxgvwgxgvwwwgvwgfwwwwwwfhvwgxwwwwgwxfwwhvwxvwguwwwwfwwxwgwwxvgwfgffwwxwxwgvwwwvvguggwwwwvxxxvwwwwxwwxwxxhwwvwxvxwxxwwxxgwhvhwwxxwvxwwwxwgwgwggxuvvwwhxwxwwxwwhxgwwxgwvwwxhwgxwwxwwwxxwwwwhwvwwxwwwxwwwVwWhwvwxvwwwwvvvwwwfWhwwwvVfgxwhvvwwgxvvwwwwxvwwwxvwgxvwwxhhwevwwwwwxwvwxwfwvevwgwvvwwwwhwxwwwwgxwxwwxvffwvwvhvwxvwwwxwvwwwwwggwhwvggwwwwgXevwwvwvxxxhwxwxgwwwwwwwvxxwwxwxwhwvwwwgwwwwxxvgxwfwwwwxvwxwwxvgvhvgwxgwgwwfxwwxgvgwgvwwffwhwfvgwfwegwwwfwwwwxwwwhxgwvwxxhwgwxgfwwexwwwwwvwwxgxwwwxwwxwwxwwwwxgwgwfwxwwwwwwwxwwvwxhvwwgvvxxwwvgvgwwxxwwwvvwxwwwwwvxwwxwwxwwwwwwwxxwwwgwVfevxxwgefffevwwwwwggVfetvgvwwgwwgfgfgffVfefwwwwwggvwvwggwvvfwwggvfgxwxwwwgxwwgfVfefwfwggwwwwwwwgvwwVVfxwwwwxwfwwwwwxxvxwwwfufffevwwfwggwgvwvwggggvfwwggugvwwwwwwVVfxwwwwwfwwwwwxwxwvwvwgvggfwxwxwxxxwwxwwwwwwhwwxwwxwxwwwwwgwwxxwwwvvvgwVxwxwwwwxwgxgwwxwwxvwvgwvwwgwwwvwxhwwwwxwwwvfxwwwwwwgvwwwxxwxwfvwgwwvwxwxwwxxwwwwgvwxwgwwwwhxwwwwwgVwwwwwwvuwxxxwxvuwgfwgxwwgwwxhxwwvwxwxvxwxxwwgwvwgwwxwwwwxwwxwvwxvwxxwwwwwwvwhxwwwxwwgguwgggwwxwxwxwwxxwwxxwhwgwgwwwvwwwwvxxvwwywwwgwwwwxvhvvwwwwwfwxxwwgwwXwhfgvvwwwwwvxxwxxgwwwvhwxvvwhwvwxwxwwfWwuvwwwwvxxxwxwhvwwgwwfwwwvwvxvwvxxwxwwwxwxgwwwwwgwwwwvwwwwwwwgwxwwwwwvxwwwxwxwwxwwwgwwgxwwxwwxfwxwwwwwwxxxwxwwgwgxvwwxwgwxgwxwxwwwwxwwwxwwxwxxxwxwxwxvxwwwwwwxwwwwxwwxwwwwwxwxwxwwwwwwwwxwwwvwvwwwwwxwwvgwwxxfwwwwwwwwwxxxwwwwwxwxxxwxgwwxwwxhxwwhVFfwfegvvvwwdwgffvwvwwVFfwfwgfWffvwevfvvwhuvwfwfwvwwvwgwxhwwwgvwUffvwfwxwwgvwfegvuvvXeggVwuvugvgwwgvwWvwgfwxggvwxvwwWfwefugVvwvwvxwuvvgTwVVfvgugvvfwwwhvgwwhvgEffvwvvwgvfvwwWwvwwwwwWVwefvgwfvwugvxwvhvwwwxhwxgwwxghfwgwwwvwxxwwxxgwwvwvxwxwwwwwwwxwwwhvwwfwwwwvxwwwwwwxwxwwgwwvwxvwwwwvwgwwwwwxwwwwwwwwwxwwwwxxxwxvwwwwwwvwwwwxwwwwwwwwxwwwwwwxwwwwgwwwfgwxwwwwvwxxxwxwwwwwwwxxwwwwwwxxxwwwxxwvxwwwwwfwxwhFVfwfevgvwevgfwvwvwwFVfwgvgfgufgwVfvgvvwgtvwffgwvwwwgwwgwwgfwUfwgvgwxwwvgvxfevgvewWtfgefWvevwgwwWfgfgwwwxwVwwwwwwwxWfgVfevwewxvvwwveguuVewggevwwfwvgvgwwhggTfvgvgvgvwvgvwfvwwgwwxWegVffwwfwxevwvhvgxwhxxwxwvwgwgwfgwxvwvWuuhwfgwfWwgVwfvwvwvwwVuuWwffffwvwhfwgwwgVwfwvvWvwwfwxfwgfxwwvwwguwwvwwgwxwxxfgwfgwVfvwwgfgwwwvhvwwvwxwwwwvxvwxwwwxvvffvwwwwwwgwwvwgWwvWfvfvgfgvvgwwgfvghvwgffwwgwvwwxvxwwwwvwwvvgfvwwvgvvwvvwwgwgxwwwhxxwwwvwfvvwvgwwxwUWwWwfgvwvgwugevvwfwwgUWxgfgfvfvfxwgvuvgguggwvwfwwgvvfxgwwgwwwevwwwgwwgxxwfgvuvwfevvfwfgvvvwwfhwwgwxwwxwwgwgwwwwwgwfffwvvvwxvvwwgwwvxwevfwwfgwwvfgwwwhhhwwffuwwvvwwwgwwwwgwwgwwffvwgvvxwwwwwwwgwhxwwwwxwggwxfvwwxvvwwvwwwwwxvwwgxxwgggwwxwwwwwwvwvxwwwgxxxvwwwwwgwwxxxwxxwwwwxhxwvgwwwxwxxwxvxwwxwwwgwwxwwxwvxwxwwwwxwxwwwwgwxgxwwwwwwwwwwgxwwwxwwwxgvxwhwwgwxgwwxxxwfwwwwwgwxghwwxwwwxwxwwwwxwxxwwwwwwxwwxhgvgxvvggvwwwwfwxwxwwwvgwxxwhhwhxxwwwxwxwfwwwxwwwwxxxwwxwwwwwxxwxvvghvwwgvwwxwxwwxxwwwwwvwwwwxwvwgwwwxxwxwwxwwwxwwwxwwwxwwwhwwwwvwwwvwwwwxwwggwwxwxxwwwwwwwwwxwfvwhggghwwvwfwxwgwwgwxghxwwxxwwwxwwwwwwwwgwvwxwvxwxxwwwxwwxwggggwwvgvwwwxwwwwwxwwwwwvgwwxxxxwxwwgwxwwwxwxwwgvwwxwwwwwwxwwwwwwxxwxwxxxxxwwfwxwwxxwwwxxwwxxxwxxxxwwxxxeuvwwghvVggVwgvvwwwwwgeuwwwfwwwwgfvvwwgwgvwwwwwwwggwvffwwwfwhfwvwwwvwvwxwwwwghvfgvgwggwwgwvxwwwwwxhvwwwwvwfvwvwwwgwvhwxwwwvwwwwwVfvWvwwvwgwvxwwgwfuwwxwwhVvvxvwvxvvwfwwwgwwfwvxwhggwwwwwwwwwxwwxxwwxwwfwwwxwwwxvwxxxxwwwwvwwwxxvwwwwwwwwwwvhwxwwwvwvwwwwvwwwwwwwvgvwxhwwwgwxxvxwvwwwxwfvvwwwwwwxwxgxwwwxwwwxxwwxwwvgxxwwxwxwxwwvwxwwhvwwxwxgwxgwwwwxwwwwgwwxwwwwhwwvfxwxwxxwwwwxwwwxwwxwwxxwxwwxxxfuvxwgwgwwgwwwvwwwwgfufwwvfvwwgffwxvgwVxgfwwwwwwwwwgwwgffvwwwggfwwwwwwwvhvxxxwwwgwwVwvgwggwwvwvwwxwwwwgwwxwvwwvvgwwwwfwvwwxwwvwwwxwfvgvwwgwvwvwwwvxVfvwxwwgegxwwwwxwvwwvvwwgwwgwvwgxvwwwwwwxwwwwwwwwwwwwgwwwwwhwwwxwWfwxvwvwgewwvgwwgwwvwwVfwgvgffwwwffwxwwvfvwvfwwvxwwvwwvfgefVwwxxhwxwxwxwwwwwxxwvgvwgwwwwwwgwwwgwwxxwwwwhvvgwvwwwwgwwwvxxwwfwwwxxxguwwvwwhvwwgwwwvgfffwghggwwwwwwwwwvwwwxwgvvgwvwgxwwwwwwxhwwwwwwwwxwwwwwwwwwwwwwwxxwwgwwwgweuwgwggfvwgwvwwfwvwxgeuwwwvfvwwgwggwwUwwfvwgwfwvwxgggevWvwxxvwvxgxxwxwwxxxwggUwwfgvwfgwwvwwwwfxwhwwxxwwggwvgvwwwvwgwwxxwvwwwwwwwgwwwwwwfwxwvwgwfvfvwvwxfgwwgxwwwwxvvwwwfgwvwvgwwwwwgwvhxwwvwgxwwxwwwwvwxxwwwwxwwwwwgxwhwxxvwwwwwwgvgxwwfwwwwwxvgxwwfwwwwhvgwwwfxwxwwwgwwwwwwvxxwwwwwwwgvgxwwfwxwwxwwwwwwwxwwxxwwwwwwwwwwwvwwwwwhvgwwwfwxxwwvwwvxxxwwwxxwxxwwxwwwwxwwwgxwwwwwwwwwwwwwwwwxwxxwwxwwwxxwxxggwxxwxxxwvgwxwwwggxwgwwgvvgfwvwwxwwvxwxxwgwwwwwxwgfwwvgvxxwwwggwwwwfwwwxfgwwwwwwgxxwwwwwwwwwwwwxwwwvgwwwwwwwgvwwwwvwwwwggwvwwxgxwxhgxfwwwwvwwwwwwwwwxwwwggvwwwwwwwvwxxwwxxwxwwwxxwwwwwwxwwwwwwvvgwvwgXfgwwvguwwwwwwgvwwwwvwxwwxwwhgggwwvwuwwwwxgwwxwwxgvwgwwwwgwwwxvfwwwgwgWwvwvvwwgwwwvwvwxggxvwwvgwwwwwvgefwvvwxwwgwvvgwWVwwvwfvwwgxxwwwxwwxxgvwvxwxwxwvwxwvwvwgxwwwwwgfugwvwxwgwvvxwwwxxwwwxwwwwfuwwwxwwwxwgvgfVwggwgwugvwvfewwwwgvgwwwwwwwwwxwwwwgfgwvfewwwwxwwwwwfwgwwxwhwwfVvwgwvwevwgwVfwwwwwwwwwwwvgvhxwxwwwwwwhwffvgwwwxwgvvgxxvwvvvgwVfwwwwxwxwxwwwfwwvxwwwxxgxvwfwwwwggVegvwwwxwvgvgxwwxvwwxxwwwxvewwwwwwvwfgevgwwwghfVxwvvvwwwvwfwwwwwxwwwwwwwvwgWfVwwvgvwwwxwwwwwgvwgwxwxwggevvvwgefgwggwwwwxwwwgvwwwwgxvvwwvggwwvwWfewfwwxwgwfwvvwWefgwgvwwwwxxwwwxwwxgvvwxxwxvwwxwwwwwhwwwwgfvggxwwxgwvfwwwwwxwxwwxwguvwwwwwxwwwwggwgwwgxvWwwvvvwwwwwwwgwgwwwwxwwwgwgwuWwvfvwwwvxxwwwwwxfwxgwxwxwwgwwxgggwhgwwegvvwewwwwwwgwwvwxgwvggwwgwgwwwvwfewgwwwwxfwvvwgwwfgwwuwwwwwwxvwwwxwxwfwvwxxwwvxwwwwgwwgwwgvweffwwwwxwgvvxxwwxvwwwwwwwxevwwwwxwwwvvwwhvwwwgggwwwwvwvvwhfwfgwvwwwwxwwwwgwwwxgggwwvhwfxgxwxwgvwwwxxwwxwwxxhgwxwwxwwxwxwxwwwwwwwwwwwxwwwwvwwgwwxvvwwwhwxxwhwwwgwwwgwwxwgfgwxwxhwvwwwwwwwwwwxwwhwwggwwwwxvwwxxwwwxxxwwwwwwwwwxwwwvvwxwgwwgwwwwvvgfvxwwffwwxgwwwgxwwxwwwfwgvgwwxwwwwxwwwxxxwxwwfxwwxwwxwwwwwwwxxxwwwxxwxgvxwxwwwxwxwwwwgvwwwxxfwwwfwxwxwwxwwwwwxxwwxxxwwxxxxwxxxxwxwwwxwgfgfgggfwefvfwwfwfwgvvwgwfxvVuwfugewfguvgfVufVufTWewfegvffffgwVfwvwvvfvggvVvfWvfgefggfgevggwvwgfwgvvgefffwvfgvffvggvewvwwwfwgwvwxgwvfgvwgvwgvVdgfufUgVwffewgggfvwEWgvgggguvvgfevfuvfVevVegFfVVeevfeVefffeTffUeVfVwfwvwwvVuwvvffufgffwfvfwfVfvgveWvgvvwvfhwwfxgvfvvgwwwwwvvvvvvwfWvufvegvgvvvggvegfUgUWwvegwvgWvgffVwvuwvfwvwvfvvvwvffwvfhfwfgvwgvfwgvvvffgvvwgvgwgvvvwwxvvgwfwvwwvwwxwwwwwwwwwxfVutfvueVVGvvwefvfWfffgVWvggvvwvvffffvveVvefffWgfffVWvefffwvfevvfffuWfxvwwwwvfguvufwffwvgvwvvwvwwvvfffwwgwghfwghfffgfwwwfgwwfwfgwwvvvVffWgewvfwvveVfufFWEWvgwVewfVgfgfffvfvfwvwffvevfewvVvwwhvvwwggwffwwwfwvfvgfwwfvfwwfwvvvwwwwwxwwvwxwwvgggwwwwxgfvUwfWgVWeewwwuvVggwgvfvvwvwvgfvwefvvwffVeufWgVffvgffffvvgffvefveffVwvwvvwfgugevgvffwwvgwvwvwwvvvgfwgwvvwwvvwwhxwxwxwwuvvffgwgwwwwwwwwwgvwwwwfwwwwxvwwxxxgwwwwgvxwxwvfwwgxvwhxxxwwxxwwxwwvvwwwgwwwwwwwwxhhwxwwvwwwwwwwwwgwxwwxxwwwvwxwxwwwwwxxwwxxwwxxgfwffgwfvufwfgwfwvwvwffwfwvgewWfwUvfwwVvfWefWfgTveVffgvvgfvfwvfewvwvfwVvwfwEewVVefgwffevggwwvfvwvwffefgfgwffffgvgwxwwVvgfvvgxfwvwxwwfvwgvwwwgfWdfWevUvVufegfwgffvfggVffggwvgvgwgVvvfeVfVfgdvdeefVVeWefffVffUVfeVuevwfwffvfwWfvgVvvguwgevwefwgffuffvgvfwwxwwwwgwwwwxwwwxwWwvfgvwwgwfgwvwwwvwwwwwwvwwwwwwwwwxvwwwvwvgwwgvxwgxwgwgxwwwwwwxwxwwwxwxwwxwwxxxwwwwwxxxxxwvfgvvwgwwgwwwwwwwwwvgwwwwwxvxwwgwwwxwxwwvwvxxwxgwwgwwwwwxwxwwhvwwvgwhxwwwwvwwhwxwvwwwxwfwwwwxwwwwxwwwWwgfwvwwfvvgwwwvgwwfwwfvvgwwwwwwwwwwgwwwxwvgwwwwwxwwgwwwwvxxxwwwwwxwwxxxxxwwwwxxxwxxxxwgwwwwvwwwwwwwxwwwwwvggwxxwvwxwvwwhwxxxwwvwgwwwwgwvwwwwwwgxwgxwwwvgxwxwwwvwgwwxwvvwwvfwwvxwhgxwwwxWvvwgwwffvwwwwwwvwwwwgwvwwxwwxxvwwwwwgxgxwwxwvvwwvhxxwxvxhhxwwxxwxxwgvwwwwfwwwwwxwwwwhgxgxxwxxwvwwhwwwwxhwwxxwxgwwwxwwxwwxwxwwxxxxxxwwwgfgwffwwwggfwvwfgwgvgwghwhgwwwwvwwxwwgffevgVfvwgfVvwWvgfVfwfvwwwwwvgUfvgffVffffwwwgggwwgffgvwgwgffVfwwVfvfwwwvgwwfVwwwvwwwwxWfvwwwwwwfgffVvgfevwgefvwWvgVefwfvwwwwwvWffvgfeffffeV6eVEUUfEeefffwwVEEeVevffffwwfegvgeVVdeUfEVvVfvvvvwgvgTfUgeffuwggxwwgwvwxxwwwvxfvwwwewgfwfwvwwfvwwwfgwvfwwfgWvgwwwvxewvwfvgwwwgwvwxgvwfwvwgwwxwwwwxfwhggvwwxvwwvwxwUvwgwgvggffevvwwggVugwgwxgvwwwevwwwffvgwwwwgfvgvgwwgwxvwwvgvvwgwgxwwgwhgwevwvwgvwwxfwwwxwxwwwgvwwfwwwgwggvvvwxxwwwxgggwWvwvwVgggwvvguwwvwVgwfvfwfwwvfgvvwvwwwgxwwxWgwvwvVwvhxxwwxvwxwwgwwwxwvxgvwxvwwxwwwwxxxxwwwvwvxxgvfxwgwwgwfvwwvxfwvufvwwwwvxxgfwwwwfvwhxxwwgwwvwwwwwwxvwxgwwwgfvvwwgwvvwgfufxgvvfwwwwgxgwwvvwvgwxwggwwwwwwwxvvwwwfwvwgvgvgwwxgwgwvhwwgwwwxwwggvvxwxwxxwgxwwvxvwvhgwwxwxwwwxwwxwxwwxxxwxxvwxwwwxwxwxxgxwvwgwwwvwwwwgugxxwxwfgwvgwgwxwwhwwwxwxxwvgxwwwwwvwxwwfgwxvgwgvwxxwxxgwwgvwwwxfxxwwvwwwwwwxwwwwfgghxfwfwvggvwhvwewggvwwwwfggvwhwwvxvwewwuvffwxwwxvwwwxwwwxwxvwvwwwvfxwwwggvwvwxwwwxwxwvwwxwguxgvfwvwfvwxwvfguvWwwwgxwxfwvgvwxvwgvgggvgwwvwwvhgwwvfvgfwfhwvwxwvgfxfwVwgwgwwxwxgwwwVwwvvggwvwwwxwgwvwxwxxwxwwvvwgwvvwwVgXggwvxwwvwgfggwwfvwwwwgvfvwwwxvxvwvWgwvfwfvhxwvfggwwwxxxwgwxwwgvxwgwxxwwwvwwwgwwwwwwwxwvvuwwfwWfvvvvvwwggvvewgwvwwhwwggwvwvuvhxwwwgwvwwwwwxwxwvgwwwwvffwwwxwgfwhvuwgwvvgwgwwhwxfgwgvvwwwvhwwwwfwgwwwgwgwwffwwgwfwwuhvgwwvgvgwwgugefwVffgwxfggVwwwwwwwvgxwWuvwvffhwxwwvwwwxwgxvxvwxwwwwwwgxgxgxwwwxxvvwgvwxxwxfwwwvgvgfvvgggwVwgwwvwguwwgghwwwfwwgvvwwwhwxxwgvvgvgwvgwgxwwvvggwfuwwwfwwwxvwwwxwwvwfwwwfvwwfvvfvvwwvwgwgfxxwWwwvgefwfwfeffgvvvgfgggvfevwgvwgwwwwevxwgvggvxxfuwwwfwgwvfvfgwvgvwgwwfvvwvwgxwwwgvhwxwwwwwwwwwwwwwxwvgvgefgvvgfwgwvvgvgwwevwwgwwgvfuwwxvwfgwhwwxvgwwwwwwvvxwwwwwxwwhgwwwwwwwwxwvxwxwwwwwgvgffwwwwvffvwvvwvwwgwwwwwwffgwwgwwhgvggwfgvwwwwfWvggwwwwgwwwwvefwwwwwwwvwgfffwvVvgvvgVgwwvgwvvwwvufffvweVvfvvwwwwfwwwwwfgwxwwfvvxwgwwwWgffWffxxfffvfxwVgvwwfwfewwvgwwvfvfvwwwvwGwfVegfvfwVTVfeVvgfeuvggffewvffwxwwwgvfwVwwwwwVfewfgevwvfwVwfggvxwvxwxwwxwxwhwvhwxgwhwwvwwxwwxwvxwwgwwfwwwwwxxwvxwwwxvwwwxwwwvhwwwxwxwxwwxxwxwwgxhxgxwvwwfxwxxxxxfwxfwwwxwxwxwxwgwwwwwxwwwwwxwhwwxwwxwwxvwxxwxxwggxxhggxwxwwxxxxxwwwvvvwwvvgfhwgwwwwwggwgwwwwwxxxwgxxwwxwxxgvwxxxxxxxxwxwwwwxwwwwwxwxwwxxwwwxxxxxxwwwwxwxwwxxwwgxwwwwxwvxwwwvxwwxfxvwvwxxwwwwwwwxwwwvxwwxwwwvwwxwhwxgwxwwwwwgwwxwxwwwxxwxwxwwwxxwwxwwwxwwwwgwwwgggxgwxgwvvgggxwxxxwwgwxvxggvxxxvvhwvwwxxwwwwxwxxxxwwxxxxwxxxxvxvwxwwwwwwwxwvwwxwvxxwvhwvvxvvxwwwvvwwvwxwxwwvxgwvwwwxwxwwwxwxxxwwxgwxwxwgwwwwwwfwwvwhxhwhwgxwwwwxwwwwwwvhwvwwggwxwwwgwwxwwggwwgvwxwwwewwwvvhfwvwvwwvggwwvwxgwwwwvwwwwwxwwwwhxxwwxgwvwxxwwwwxxwwwwxwwwwggwwwwwguwgwwxwfwxwwwwfgufvvwgwwgvwvwfwvwvwwwwgvwvwvwwgwvxxwvgwwwgwxvgwgwwwwxwwgwwvxwgxvxxhwwxwwxxwxwwxvwwwgvvwwhgffwwwvgwvghwgwxwwwwwxgwwwvwwwwxwghwwgwxwwwxxwhxwwwxwxwwwwywxwxwwwwwwxwvwwxhwwwwxwvxwwxwwwwhvwwgwvwgggwvwgwwvxwwvwggwwwwwwwxwxwxwxxwwwwgxxxwvwhwwwwwhxhxwgxwxhxvwwwwwvxwvwwwggwwxffvwgwgwwwwxwwxhvwxgwwhwxxwxxwwxxwwxwwxxxwxwxwvwxwwgwxwxwwvwxvgwxwwwxxwgwxxxwwwwwwvvvwwwwxwxwwwwwwwwwwwwwwwxggwgwgvwxhwxgwwwwxxuwwvvwgffgfwfgwwwvwwwvgvwwwggwwvwxxfvwwwwfgwwwwwwwggwwwxxwhwgwwwxxhxxgvwwwxxxwwxxwwxwvgwwvxwfgwwwwwwwwwhfvxvxfwwwwvwxwvwwhwwwxvgwwwwwwwxxxxxxgwwwgxwxwggwwwxwvvvwgwwwwwwwwwwwxwhgwwwwwfxwhxwwvgwvwwxxvfvvwvwwxwxhvvwwgxwwwevwwwwgwwfggvwxxwwwhxxxvwvwwwwwwxxxwfwwwwwwxwwgwwwgvgwgwwgwxwgwvfvwxvwwfwwwvvwwvwwxvwwwvwggvgwwwwvgxwwwgwvwwwggewvwwvgfvwgvfwfwguvvwhwwwwhwwvwwwwwxwwxwwwwwwxwxwwxwxwhvwwwvwwgwhwwwvxwwhwxggwwwxwwwxwvwwvvwwwwwwhxvwwxvwwwxvwwwwwwxgwwwxxwxxxwwwwwwwxwwgwggwvwvxxwxgwgwwwwgwwwwwvwwgwxwwwgwvwwwxwgwwwgwwwwwwwxwwxxwxwgxvvwxwxwwwwwwgwwwggwwwgwwwwgwwxwxwwxgwvwfwwwxVwvgwwwgwwxwgwWwvfwwvxwwwwgvwwxwwhhgwfwwgxwwhgxwxgvghwwwxwwwwwwwvwwxwxxwwwwfwwwwxwwgwwwwwxwxxgwwwwwxwxwxgxwfwwwwvxwgwhvwwwwwwwwwxwwxwwwwwwgwwxwwwwvgwwxxvwwwgwwwhwvvxwwwwwwwwwvxwxvwwvhhvwfvgvwxgwwwwxwvwvgxwvxxwgxwwwxvwwxwwwwvvxwwwgwwwxwwwxxxwwwxwwwxwxwwxwxwxxgwgwfwgwwxxvwxhgwxfwvwvvwwxwwwwwxxwxwxwwxwwwxxxxxwwxvwgwwxwwgwwwvwwwvhfvxgwwwwwwwwwgwhxwxwwvwfwgvwvwwwxvvewwgwwgxwwwwvvgwwwxxwwvwwwewwwwwghWwwxwwgwwggwxgxxxxwwwxwxwxfhvxwwwwxxwgwvgwwwwwvwwwwwwvwwvwgvvwfwxvvgwwwwfwvwwwwwwfvwgvwwgvwfvgwvfgvwgwxwgwwwwwwxWhgwgvwvvwvgwwwwvfwwgwgvvhwwvgwgwwwgwwwhwvgwvwxwwwwwgwwgWvwWvwwfgfgvwwhwwgvwwvwwgvwxwuwwgvwwVwwxfwhfgxwwwwwgffwwwgwvwgvxgwwwwwwxgxwgxwwxwwwxgwvxwhvgwwgxwwwxwwwWwWvwwfgvgvwwwwuwwgwWwwwxwwfgvwwwwwxwwvwwwfwwwwwgwwwwwwwwwwhwxxwwgxwxwwfwvwwwgwwwvfvgwgfgwwgwwwgvwwgwwxwwggvfwwfwwWvffvvvfwwfvwWwfwuwwvwwgwhwwwvvwwwwgwggwwwvwgwgwhwxwwhvgvwwhvwwwwxwwwwghhxwxwxwwxxxgwvwvwhwwwwxxwwvwwwwvgwvgvwvvwgwvxwvwvvwwgvwxgwuwwvvvwwwwxwvwwxwhxwwvwwwvvwwgwxxwxvwwwwvxwwvvvwwwwgwwwxwhggwhwgvwwwwxwghwwwxwxgwvwgwgvwwvfguxvwwwwfwwwfguwwwxxxwvwvgwwwwxwxwfxgwvgwvfwwwwvwwhgwxwwxwxxwwwgxxxxxwwxwwwxxxvxwxwwxxvwwwwgvwwwxxxwwwxxxwwxwwfwwwwxwxxwxwwgxwwwwwwwwxwxwxxwxgwwxwxwwvxwxxwwgxvWggevwfgfgwgwwwxxwwwfwwgvwwwwwwUfvwxfffggvfFVfvfvwvfwgffvwgwggwWvggwwgwwhvxgwgfufwfewwvwwfwvffgvgvvwwwwwfVwwwwvfevwgwwxvwwxgwveffwufvvfvfFffvgfwggwVffuwwvwvvgwgvwwvwFEUvffffUfVeUdffeVffVfVewwVfuffffUfVfUfwwvvfffefUvgffgwwfgwwvwwvxxggwxgxxxwwwewggwgwvwvhvgwwwwwgfwwvxhwfwwvwwwxwgwfwggwxxxwwwwhgvwwvwwxhwwwxxwwxxxxuxwgwwwvwwwvwVwwwwwgwxxVwfxvwxxwwwgwwvwwwwwgwvxwwwwwwxwwwfwwxvwwxvgxwwwxwwxxwwxwwgxwwxwwxwxhwxhgwwgvuvvwhWxhgvvvvwwgggxxvwhgwvvwwgvwhgwxxfwwwxxxxwxwxvvwwwwxxvwwwwwvwwxxwwxhwwvwwxxwxvwwxgghxwwfxgwwwwwxhgxwwvwvwvwwxwxwgwwwgwwwwwwwwwwwwwwwwwxwxhfwwfvwvwhxxwwvxgwwxwwwxwvxwhwxgwwwhvwvwxwxgvgvXvfgwvVwwwwwgvffgvuguhvwvgwfwvwWwwvWvxwwwwwvgwvwwxgwvwhvwwxwwgvvvwgvvvgxwwwhvwwwwwwxxwwwwwxwxvgwufvvvfWwgwugwfwwggwvggwwwvwuwxvwhwwgwfwvwwwwvhvgvgwvwwwgwvwwwwwWwwwwxwwwwwxxWwgxfxwwxwwwxwwwfxvxvwwhvwwwwwvhgxwggvgvfwhvvgwwwwvvhvgwUwvwwxvhvwevhfwwwvwxvxfvggvwwgwwwxwvgwwwvwwwwwhvgxxvwxvvwxvwvwwwwwxvwwxggxvfwVwwgwwgwwUgxvvxwvwghwvfwwwwwwwwvfwhwvwwwwwwxwWvgwvvggxwxwwwgwwgwvggxxwwvwwwwwwxvwwwxwhwwwvxgwxvvwwvufwwWggxwfwxvwwgxhhvwwhgxwwxwxggwwwvwvxwwwwwwxwwwwxwwxgvwwwwwwwwxgwxxwxwxwxwwwvwvvwwhgxhwvggwvvxgxwggxxfvwwwvvxxxwwwgwgwwwwxwgwwwwwwwwwwwxxvgvxvwggxwvxwwvxwggxwvxwwwxvvwgvvwvwwwwgxvuwgwhxwwfwwguwwxwxgwwwWvwwxxhwWvhwwvwwxxxwxxvvwxvxgwxwwwfwhwvwxwwwxxxwwvxxxhxwvwwxgxwvgxgvwvxxwwxgxwwxxwwwggvwwwxwwgwxvwwwwwwwxwgvwwwwhwvxwwwwxwwwvwwwwwxuefffefwuwwhffgwgwwxxGwwwvUffgfVfVffggvwefwfggwfvfwwwgvfwxxwwWfVwffwgwwxvwxgefwfvfwWvfvxwwwuwXffvwxwwwvwvwgwwwxwwgwwxwgwwwxwwfvwvvVgffgwwwWefwwwgwhfgfwvwfwwxwvxWvvxwWggffwwwwwxwwwxwxwwwxwwwxwwwwxxwxwwhwvwwwwwwwwwxgwwwwxwwwxXvggfwwvvvwwwxvwwwxwwxwwxxwwwvxwvwxxwwwxxxwgwwwxxwvwxwxwwxxwwvvxwwwwgwvWvwgvwgwwwfwwwxfwwwggffgguvvggwVfwfgvwwfgvvwvgwXeevfvwffgwfwwvvfwfvwggwwvgwvwvxwwvxxwxxwwwwxxwwwwwwxxvhvwwxhxxwxxxxwxwwwxxxwxwwxxwxwxwxwgxhwwgwwwwwwwwwwxfvwwwxwwvhwwgwwwfgguwvvvwggwwvgwvvggvwwvxffvvghvvgxxxwwwwfgxxWgvhwwwvxxxwxxwwxwxxxxwxwhvwwxwwwwwwwgwwwggwwwwvwxgxwxhwwvwwwwwxxxxxxwxwxxxxwxwvxxwxwxwxxwwwxwxwwwwwwgvgwwxxgwwwwxwwxhvwWvwvvxwgfggwvfwggwvwwvwhgvwxgvxwwwgwvvffwfuwwwwxwhgfvwggvwgwwwfwgvgvwwwvevwedwWVfVvwevvwvewWfggvvwwxWwvfgwwwwWvwevfvwwwxvvxxVgwwWffgewwfgwwwfwwwvwwwwvfwwewgfvwhfgvwwwwvvxxuewgVvgvwfwwFfwvffvwwwWfwefewwfwwwvwxWwwfwwwwhwwfgfwwwwwwxxvvfvwwwwfwwxwwwxvwgWfwxxxwwwwxwxwxxhwwvwwwxwxxwwwxxxwxhwwwwwwvwvwxgWuwhxgxwwvvvwwfwwwxgwgwvwwxxxwxxvwxxxxxxxxwxwgwwxwxwwvwxwxwwxwwwvxwwwwWwwhxfwvxwwvvwxxwwfwwwwwgvfeWvgvwgfvfvfwwgvvvwfwfwVhVwfwvfXfwgfwggwggVwvfwgvxwwwfggghgfgwfgxVgvfvvggwgwwwwfvfwdevVfuVWwVfvwuvvgffgWwfwvgvFgwfgvvwwwWgwVfxWwgwgvgvWfWfgwvguvgffVvwwwwwwgfuvwwgxxxxuffvxwwwgfgVwwwwgwvgvxxwwwdvvgfuVfgfwvgvFfvVgevgggWfwVfvgwVgwgvugvxxVwvgwvwwwwgvffgvgwgwwwwwwwVgefgfgfwfxfxwwwggvwggwfwwwwwwwwfvvggufVgfffWwvwgwVvwwgfwgVVwudveegfVwwfVvfdvevgwgvvvfugfeWveggwtffVvwvvgvfwvvvuxxfwhewvfwvggvgwwwgwwwgvewwwhwwXfgfvwvggggfvWvwwwwwwwxwggwuegfvgwgvvvfuggfgwuvwvtggVwgwwwwvvgfvvvgwvwwwuvggvwvvwwwwwvwgeWfggwwvghghwwwwwgffvfgggxwwwwwgfgwgWfwwVggvuwfgfxwwwufwgeuwVffEwggVxwgvvwVvgUwgwfwVwfffwgvgxGwffVwwVwfwwwxwgxggwggfwvvwvwwwgwwxgwwgvwwwwxgxfvfuwwxxfwwwgwwwffwuwfvvVwgwgwWwgvfwwvxwWxwgVfwgwwwvggwwvfxwwwxWwwvfwfwwxxwwfgwgwhwwfxxwxxwwwgvwwggwwwwwxwwwwwhvxgwwwxwwxvgwwwgwwgxwvwwwwxgwxwwwvxxwvxwwwwwxwxwhwwwwwwxwwxwwwgwwwwgwwwwxwwxwwxxwwwwxwwwwwxwxwwwwwxwxxxwwxwvxgwwwwwwxwwwwwwgwwwwxwxxvwfwwxwfwwwwxwwwwwwwgvwwwwvwvvvwwxwxwwwwwwwwgwvwwxwvvwwxwvwwxwwwwxwxwwhwvvxwvgwwwgwwwwwwvxwwfxwxwwwwwvwwwwwwwgwwxgxwxvgwxwxwwwxwwwwxwwwwhxwwwxwwwwwxwxwwwxwwgwwwwwwwwxgwwwxwwwwxgwwwvvwwwwvwwwwwxwwwwfwwwwwwwvvvwxwwxxxwwxxwwxwvwvwxxwgwwhwgxfvwwwwxwxxvwvwwgwxwgvWhwwxwvwvwwwxufhhwwvwwwvwwgwwwwxgvwwVwvwfwwwxwwfwwwvxwxwwxgwvwvgwxwhxwwxwwwwwvwvxwwwxwwwxvxwxwwwvwvvxxxgwwwxwVwwwxwwwwvwgwwgwxwgwwwwvwvwwfwwwwwgwwwwvxwwwwwxhwwwxwwwgwwXgvvwgvvfvvgggwwvwwgwwgWvvWwwwffVffwwvvwgvwgeVfwwfwxvwwwwxgxfvvwgvwwwwxhwhwwWvwxxvfwgwxwgvwwvvggggvwxwwwwwwwfwxwwxwwgwxgvwwwwxgwxxffggwwwwwuwwxwwwxwWfgwwfwwwvvxwwwfwwwxwwwgwwvwwwwwwhwwxwwwxhxwwwxxxwwvwwvwxwwxhxwwwxwgwxgwwfwwwwfwwwwwfWvwxwwfwwvwWvwfwwwwvxwwwwwwwwwvwxwfwxxvxwwvxxxwxwxwwwvwwgwwwwwwwwxwgvxxxfwwxwwxfwxxxwwwwxgwxxwwwwwwxwwgvwxhgwwwwwxwvewwwvxwfwwwwwgwwwxxvwhwwwwwwwwgwvwxgwwwwwxwxwwxwwwgwvwwwxhgvghwwwwgwvwwwxxwwvgwwfxxfwffgghvgwwvwfwwwwhxwxwwxwgvwwwwgwwwxwwxwwwgvvxwwxwwwvxwwwwwhwwwwxxwwwwwxwwxvxwwwwwwxwfwwfwvfgfxwwwvwwxwwxwwxhfwwxwwvxvwwxwwwwwwwwwwgwwvwgvwwwwxwwwwxwxxwwxwwwxhxwwwwwxwwxwxwwvuvgwewgghvggwwwgwwwvxvwvfvvwWvVvfvwwvvfwwguVvwvwvvfwxwwvgwvwfgvgwvwvgvvvxxwvwwgwvvwxwvwxhxgvwvwxwwwwvwwxwxxwhwwvvxvxxxxWvfwwwwwwgwwxwwwwxvwvwwwwwxwwwxwwvvxxxwwwwwwgwwwhwwwwvxvwwwvgwwwxwxwxwgwwwwwwxwggfwWgvwfgggvwvwhvwwgfgggfwxwfVfVvwwxufwvwwfVfgvwwhvwvwxvgxfwgfuwgwuWwwxvwwwgwgvwwxgwwxwuwwwvwwvwggwgvwwwwwxwxwgwwwxgxvwxvwwghvwwwwgwwwfvgwxwxwgvwwwwwwgvfxwwvgxwwxwggxwwwxwwhwvwgwvfwwwxxwgvxvgfwwxxwwwwgxwwwwwwwxwwxxxxwwwwwfwwxwwxxxhwwwxwwxxxXgwwwwwwxfvwwfwvwgwwwxwwwwxxxwwwxwwxwwwwwwxxxxwwwwwwxwwgwwxxwwxxxxwxhwwxwwxxwxwvxxgwwwwxwxxwxwwxxUfvwwVevgfwwwffffwxwwgffgvvwvfwvwwxxwffggvxfvggwwxxwfwwfgwwwwwvwwwvwwwwwwgwgxvvwgegfxgvwwvxgvwwwgwwxgwvwwxwvwhwxgfvwwgwwwwwwwffwwvxfvgxwwwwwxwwwwwfwxwwgwwxwwxxxwwfwwwxwwwwwwwfuwvgwgwwvwwwwwwwwxhvwfwgwvwxwwwvwwwwwwgwwwfwwwwwwxxwwwwwvwwgwwwwxxxgxxxwvxxhwwwxxxwwgvwwvwgggwgvgwwggwguwxwgwwWvvwxxgwvwfwwVvwwwwwwwvvwvwwWwwxwxggwfwvxwxgwwhwwxwgwwxggwwwwxhwwwwvfwwwwfwgwvxgwwggfwwxxxxxgwwwgvvwwxgwvwwvvxwgfwxwwwwwgwwwxxvwwxhvwxxggwxwwwvwfwwwwwwxwwwwwwgWwwxwwxxwwwwwwxfvggwxwxxwwwxggvvwwwwvwwvggvwwwwxwwvwvvxxwhwwwvggvwvwvwwwhhwvwwVvvxfwwvggwhwwwgwhvwwxwevfwwwvwwwwwwwwwgwwwwxxxwxwxxwvgxwvvwwwwwwxwwwwwwwwwwwgggxxfvwxwxgwwwwwwwgwvwfwxwwxgwgwwxxwwxwwwxVvvwvwwxxwwwwwwwxhvwfwwwwwxwvvvvwwWwwggwwwwvwwwwwgwwvggvwwwwvwwgwwwwgwwvgvwgvweguwwvfwwwwwfwwgvvwhwxwfvvwwwgfxhfggwvwfwgwxwwggxwwwwgwwgxwhwgwvvfwgwwwwwwwgwwgwvxvgwwwwwwVguwwvvwxwxgfvwgwwwxwwwwgfguwwvwwvwwgwwwgwwgwwwvwgvfvVgwwwwgwgwwvwvwwwwwwwfwwwwvwwhgxvgwvgxxwvwvvwwwwwwxwgggwvvgwuwvxwWwwwvvgwgvgwwwVwgwfWwevwwgwwvgxwgfwgfgvxwwgfwhwwwwwvvwwwgvxwwwwwwfwwwwwgwgwhwwxwwwgvwwwxwwwwgwxwwwwvwwxhwhwwvfwxfwwwvxwgwwxwxwwgvwwgwuwwwwgxvwvwvwwgwwwwxwwgwgghgWwgwwvwxxwwvwgwwwxxwfvxwwwxgwvVgvgfvgVUfvfgfvwwVwwgvggfWffFwfvgfgffevefGggfgvgvfwffgVwwffxwwugwwvffegwwvfwxvgvWwgggfvwggvwxggvvfUwwgwwuwfwvvgvgvwgVwxwxwwwwwgggwWvfwwgwgugfxwgfxwwgfvxwwwvwffhVfvwwgfxwwfgwgfffvwvwfwwxWxwffxwwxwxwwxwwwwffxgfVwwwgwxwwxxgxwxxwwwwgxwwwwvvwgxxxxwgwvwwgwwwxwxwwwwvwfxxwwxwxwxxxxwxxxxwxxwxxxwwxgxwwwwvvgxxwxxxxwwwwwfxwwwwvgwxxxxxxxxwwwwfgfWfvwfgwgwwWfgggwwwwwwwggwwgfwwgvvwxUffffffggffuwVgvfvwfvhwwggwwvwgvgfwwwwwgwwgfvwwgwgfvwwgwgUVfgwggfffwwgwvvvfwfvwvxxxwwwwwwwgwwwwwwwfwgfvwfwvgeufvvwvwfwwwwwwwwwwwwvwwfffgGdeUvVeegwvgfgVfvgufVvgVfffwvfffefwVgvewfewffwwwwwgevgwwwwwwvvvfxxwxxwxxhwwwvvwwwwxwvwgvwwxxwwwvwxvxwhxgwwwwxvxfwgwwvwwxxwwwxwxxxxxwwxwwxwvvghvxwgwwvwxfxhvxwwxwwwwwwxgxwwwhwwwfwxwwwwxwxvxwwwwwxxxwwwxwwwwxxvwwwxwxfwxxwhwwwwwwxwwwfwwwvxwhghfvwwwvwwwhxxwwwxxwwwwvxwwwwwwwwgwwxgwxxwwxxwwwwvwxwwxwxyxxxxwxxxxwwwggwwwvwxhhwwvwgwwwwwxwwxvwwwwxhhwxgwgwwgwgvwwvwwwxvvwgwwwwwwwxwwxwxwwvwwxvwxwwwwwwwwwxxgxxgvwwxxxxwwwwwwwwxvwwvxvvwwxhvxwwwwwgggxvvxwwxxwwwwwxxvxgwhxwwxwwwxxwwwxwwwxxxwxwxwxxwvvxxwgvgvvvhhgvvhwxwxwvwxwgwgwwxvvgwwxwwwwvxgwwwwxwwwwhxwwwwhwwwxxxxxwxwwwwwfwwwgwgwvwgvvwwvwwwggwwwwwwwwxgvwwwxwwwwvgwwwfwWvgvfgewwwwwwgwwxwwvwvwwwgxhwgwvwwwwwwwwxwwwwwxvhgwvwwwwxwwxwxwxxxwxwwvwwwwwwvwVgvxghfwxwxwwvwxwwwvgxwwgwgwwwvwfgvgxwxwhvhwwwvwwggwvgwgwvgwwwwgwgwxwwwwwwvwgvxxhxxwwwwwwwxwxgvvgfvxvwwghvwwvwxwxxwhgwwxvwvfgwgxxwwxwwwxwggwxwwwxwxwwxwwwwxwwwxwxwwxxwxxxwxxwwwvwwggwvwwxhxwwhwwxwwwxwxxwwwwwwwwwwwwwwhwwwvwxgxwxggwwwxwxxxwxwwwwwxvwxvxwwxwwwvvgfwwxwwxwwgfwwxwwgvgvxfxwwwxxxwxwwxwxxxxwwwwxxxwwwxxxxxxxwwwxxvwwgwgvwwxvwwgxwwwxwwxxxwxxxgxwwxwwwxwwwxwwxxwxwxwgxxwxwwxxwxxwwxwwwwxggvwggwwwfwwxxwwwuxwwvvgfvffwwvfwwwvwwxgwgwvfwwwfgfwwwgvwwwxgwxxxxgwwgwgvvwwwwwvvwxxwxwxwwwxwxxwxwwgfvwwwwwvvwgfvwggvwwwwwxwwwwwwwwfwwvwgwvwwwwxxwxwwwxxwxxxwxxxxxxxxwxwwwggwxwwwwwwxwVgxwffwwwvxwwwwvwxfgwwwwwwwwwvwgwwvwwwvwgwwwwwgvxwgggwgvfwhvvwwwwwwgvwwxvgfxwwwwwwxgwxwwwwwwfwvvwxxwxxfxxgwwwxvvwwwwvVwvwwwwfwvwwxxwwxwwwxwwfwwvuwwgggwvwxgwwwghvvvwwwfggvwwwwwuwwfggvgvwgvvwvwxwwxwvvvwwwgwwwvwwwwwxwgvxfwgwwvgwgwwxfxvWwvwxwxwxwwwgwwwwxxwgxxwxxwwvwwwwvvwwwvwwwxxwxgwxwxwwxxwwhwwwwwwxxwwwxxgxwwvvwwwwvwwxwvvWwvvwwwwvhxhwxwwwwwvvwvvhwwwwwgwxwwxgwxwwxwwxwwgwwwwwgwwgwwwwwghxwwwxxwxwvvxvxwwwwwgxwxwvxwwwwwxxxwwxwwxwwvvwwxvwwwwwhwwvgwxwwwxxwxvwwwgwvwgwwgwxxxxwwwwwxwwxwwwxwvxwwwxwxwgxxwxwxwxwwwwwwwwgxwvwxvwxwxwgxwvxwwwwvvwwwgwvwwwwwwwwxwwvvxwwxwgwvwxgwwwwwwvxwwxwwwvwwvwxwwwxwgwxgwhggwhwwgxvwwxwvxwxwgwwgfgvvvwwwWvwvwwwwvwwxgvwwwxwxhvwwwxwwxwwwxxwwxwwgwgwvxvwxwwwwwwwxwwxvxwwwxvxxhxwxwxwgvwvwvwWvwwwhwwvhvggxxxwwwwvwgvvwgwwwwxwwwwwxwwxvhwwxwxxxvxwwgwwwwxwwwvwxxwggwwwhgwwwxwwwfuwvfgxwwwxwwwwvvxwwwfwwwgwwvwgwwgxvwvwwhvwvwwggwvwggvwvwwxwgvwxgwvwvwwwwxwwvwgwwwxgwxwvvxxxxvwwwwwwwwwwwgvwgwwvvgwxxxwxwxwwxwhvgwvwfvwwwwwgwwwvvwvwgwwgxgwgggwwwwvgwVwfguvvgwvfwwwwxgwwwgwfvvxwgwgfggwvwgxvwwfwvwwfxwwwwwfgfgguvwgwwefvgggwvwvwwwfwvgwgwwvvWwvxvwwfwwwwgwgvgvwvgggwvwwgwwwvgwwwwwvwwwwgwwvgwxwxwwvwwxwwwxwxwfgwuvwfwwugvwwgwwvXvvwwxwwwwwvwwgwwvwvgwwwwwgwwwwwwwxxgwvgvwwgwwwfwvvxwwwwvwwwxxwwxwwvwwwvwvwgvvgvgggwwwvwgwwwwvgwWuvfgwwvwggvwwVuvfgwwwxgwvwwvuwWwvfxwgwwxwgxwwgwwwwwxwwvwwwwwvghwvwwwwgwvwwwwwwwxfwvvgvwwxxwxwxwxwwwgvwghwwwwgwwwuwWwwvfwxhwgvhxxgvgwwvwwwwvwgwwwwwwwwwwgwxwwhxxwwwwwgxwwvvvwwwwgwwwwxwwwgvwgvwgwwwwwwwwxwwvgwfwfvxggvwfxgvxwwwvxwhxvxwgwwwxxxxvgwwxwwwxwxwwgwwwwwxxxwwxwwwxwwxxxxxwwwgwvwxwwwgwvhwxwwvxxwwwwxwxwwwxwxwwwxwwwxxwxxwwwwgwwxxwwwxxwxxwxwwwwwvxxxxxwwxwwxxxwwwwwgwwxwwhwxxgvxwwxxxvwwwwwwwwwwxwwwwwwwwwwxwwwxwwwxwxxwxwxxwxwwxxxwxxxwxwgxwwxhxgxwwxwwwwwwwgwfhgvgwwwwwgxgggvwwwwwgwwgvwvvwvwwwwwwvwwwwwxwwxwwwxgxwwxwxxwwwxxxxwwhxwwwwwvgxxwvxwhxwxwxxwwwwwvxwxxxwwxwwwxxxxwwwwxxwxwwxxxwwvhwxwxwgxwxxwxxxwwxwwwwxxxfwwwwwgwwwwwwwvxwwxwwwxwwwxxwwxgwvwwggwwvgwvgxghwwvxgwwhwwwwwwwwwxwgxwwwwwwwwwxwxwwxxwvwxwwwwwxwwwwwvvgxwwxwwwwxxvwwwwwfxwwwwwwwwxxwwxwwwwwwxwxxxwwwxwxxwxwxwwvvwhwwwxxwxwxxwwxxwwwwwwgxxwwwxwxvwwxwwwwwwwwwwvvwwwgwwgvvwhwfwvvwvwvwwwwwwwwwwwwxwwwwwwwwwwwwwxwxffwwwwwhwwgwwwwxgwwwwggwwufffgwWVfvwwwwvwggxwggwwxwvwffgvwwvwwwwwvwwvwwwwwwggffwwgwxvvgwwwwwwwwwgwwxhwwgwwwwxxxggwwwwgwwxxwvfvgwwfVvwgwwuwwefvvgfxwvwwwwwwwvvwwxxvwwvwwwwwwwwwxxvwgwxwxwggvwwwwvvhgwwwwvwwwgwwxwhwwwxwwvwwwwwwwwxwxwgwxxwwwwxxxhwwwwhwwxhvhhgvxxxxwxxwwxwxwxxwwxwwwxxwwwxwwxwxxxwxxxwwwxhwxvvxwwwxvwxwwxwwvxwwwwwxwwwxwwgvwfwwwgwvwfwgwwwwvwwwgwghgwwwxgwwwwwwggxwwwxwxwwxwxwxffwvwgwwgvwwwxvwxwxgwwxvevVwvgewfwwwwvwfwvgvwgwwwuwfuvwfvwfxfwwvwgfwwwwwwvffgwgwvwgwggwwwwwwvgwxwgxwwwwgwxwxwwgvwxwwwvwwwwwxwevWwwfegwgwxwuwwevvvgwwgwgwwwwwxvwxwvwwvwwgvwwxwwxwhwgxxwxvwwgxvxvvwvwwwvwgxfwxwwwxgwxxxgfxgfvgwfwvwwgwgwwwxwvwxWgwVvwvegvgwwWgvVwvwugfwwwWwgWvfwwxxhwwgvwwwgwwwwvwxggvwgwwwwwwvxwhwvwwxwgwvwwwvwvvwgwvxwwwwwwwwxwwwhgwgwwvfwwgwwWwgVwvwfxwwgvwgwwffvvwwwwgwwgwwvwxxwwwghxgvwwwxxwxwwvhwgwvwhwwgvhvwxwwwvwwwwwwffwwffwwgvwwvgwwwwwwxggwwveVVwwfffwgwwwvvVfgwgwfvwwwxuwgefvwxxvwwwwxwwwvwfwwgwwwfwxwwwwwwvwwwvwwwwxwwwwxgwvwwgwgwwwxxwwwwwxxxvggxwwgwwwwxvxwfvvwvwwwfwwwwwgwwwwvvwwvxvwwvwgwwwwwwxgxxwwwwwwxxvwgvwwwwgwgwvwwvxwhwwxwgwwwwxwwwvwxwwwwwwvwgfvwwggwwwhxwvgwvwxwxwvwwwwwwwwwxhxxwwwwwwxxhwxwwwwxwwwgwwwwxgfvwwwwwwwwfwxwxwwwwxwxwwwwwhvvwwwwxwxwxwwwwwgxwgxwwwwwwxwwwggfvvgxwwwwgfvfwwwwxwwwwxwwwwwwwwwwwwwwwwwwwwwwwwxxwwwxwwwhfwwwwwwxwwgwxwwxwgxwvwgWvwggvWwwwgvwgwwwxwxgxwxvwwwwwwxvwfwxwwwgvwwwwgwgvfwfwwxxfwwwxwgvgwwwxwxwwwgvxwwgxxwwgwwWwwvwwVwxwxwwwxvwwfwwgfwwxwxwwwgwwwwwwvwwwwxwgvwwwwxxwfwwxwwhvwwwwwwxxwxxxgwvvwwwwgwwwvwvwxhgwwfwwwvfwwwwfwxxxwvwwxwwwwfwwwwwwwxwwwwxgxwwwwxwxwwwwwwxxxxwxwwwwwxwwxwwwxxwwwwxwwwxxwwxvxwwwwvgxwwggxvggvgwwwxwwwwwxxgvwwxwgwwwvwxwxwwwwwxwwgwhwggwwwxwwwxwwwxxwwwxwwwvwxwxwgvwxxxwggwxxwwwxwwxwxwwwxxwwwwwxxxxwxxwwvwxwwxxxwxwxhxxwxvxwwwgwxwxwwxwxxxxwxwwwwxxwxxxwxxwxwxwxwwwwwgwxwxxhxwwwvxxwxxhhxxfwxxwxxwwwxxwwwwgggwvwwwwvgvwwgwgwwwwwxxwwwwgwwgwgwvxwwvwwwxxwwwwgwggwvwgvwxwwwwvwxwwwxwgxwwwwwxgwwgwwwgwvwvwwwxwwxwwwwwxwwwwwwxxwwwwxxxwxxwxwwwwwwvwwgwggwwvwwwwwgwvwwxxwvwwxgxwwwgwvgwwwwwwvwxxwwgxwgxwxvgwxwwwwwwwwvwwwwwwwwwxwvwwwxvwvvwwwxwwwwwwwwxvvwgvfwxwgwxwwwgfvwwwwwwgwwvwwvfgvwwwvwwwxwvwwgwwwxwwwwwgwwvwwvwxwwwxwxwwwxwwwwwwwxwwxwwxwxxxxwhwgwwxhwwwwxwwvwwxxwwvwwxwxwwwhwwwwwwxxvwwwvwxxwhwgxwhgwwxwwxxwwvwwxwwxwxwwwwxwxwvfwwgvwgvvwffwwwxxhwgwgUwwwwfvwgwwwvUwwvwgwwxwwwvgfwwwxxwxwxhwxwwvwwxwwgwwxwxwwgwwxhwwwwgvxwwhxxwfvwxwwwwxwwxwwvvwwwwwwxxhwwwwvwwwgwwwgvwwxwgxhwwwwwwwvwwwxgwwxwhwwgwhwwwfvwxwgwxxxwwxwwwwxwxxxwxxxwwwwwwxxwwwwwxwwxxxxwwxxwxxwwxxwwwxwwxwwwxwxxwwwxxhwwxwxwwwwhxxwwwwxwxwxguhvwxvvxwxvxwwwwxxxwxwwxgwwfxwxvvwwhwwxwwwwvfwgwxwxvvwwxvwwxwwwxxwxxxxgvxwxvgvxxwxwwwgvguwwvwwvwwgwwwxxwhxwwwxvvwxwwwhxwwwwgwxxxwvuwvwwwwvwwgvwwvwwwwwwwvwwwvwwwvwwvwwwvwwwwxxwvgxxwxgvwwwfhwxwwwwgwxwvXwvvwwxvwvxwwwxvwwwvwwwxwxxxxxvvwwuxwwvwwwxwvhwwgwwghxxvwvwwhgwvgxxxwxxxwwxwvhxvwvwxwwxxxvgvuwwwwwvfwgwwxwxxxwvwwvuvwhwwwwvxwwwgwwwgxwvwgvwwwxwgwwvvwwgwwwwgxwwwxwvwwvwwwxxwwwxwhgwwwwxwfwwvxhwxwwxwwxxwwgvgxwwvwvwvwwwwxwwwxxgxwxwxwwwwgwwwwxxxgxxxwwvhhwxwwwwxwwwxhxxwwwwwxxxhxwwwxwwxwxwvwwwwgwwwwwwvxwwwwwwwhvwgwxwwwwwwgwwgwwwfwwwvwwwwwwxwvwwwwwwwwwxvwwxwgwxxwvgwwvwxxwxgfguwfwwwwwwXwwwggwxwwgfvvgvVffevwxwwfugwgwffxwwwvwffgwxxwxwwwxwvvwwwwwwwxxvxfwfwwgfwwgggvwwvwwggvwgwwwwxwxwwwwfxxwvwgvwwwxvwxxwwvfwfefwwwwwvfWfhxwwgwxwxvwuuwhwwvvvwwwxggwwwxwwxgxvwfvwxwxwwvwghxwxgxwxxwwwvwhgxwwwwxxxwwxwwwwwwxvwwwxwwwwwwxgwhwwvwwwxwxghwwgwwwwwxxwxwwwwxwwwwhvxwwwwwxwwwxvwvwxwwwxwwwxwwwwwxwxwxwwwxwwwwwwwxwxwwwvwwwwvwwwwwwxwwhwwwxwwwwwwwwwwwwhwwwwwwfwwwwwwhvgvwwwwwwwxwwwxgwwwvwxwxggvwxwwvwxwwwgWggwgwwwvwwgwxwxwwgfvgffwUvvwxwwvgwwwwevxwwwwfvwxwwwwwwwwwwwwwwwwvwVwgwwvgvwgvgwwvvwgwvwvhwwwwgxwwxhwwvwvvwxxxgfwwVvewwwwvgffgwxvgfxwxgwvwvvgwvwvvwwwwwwwwwgxxgwwxwwxxwwvvwwwxgwwxxwwwgwvgxwwxwwwxwwwfvhgvwxvwgwwwwwwwgvwwfvffvgxgwvvvffvgwxwhvwwgvgwwgxwgwwwxvwwwxwwxxxwgxwwwvwwwxwwwxxwwgwwxwwwxwxvxxwwxwxwwwwxxwwwwfwwgvwwwxwfvwwwwwwxhxwxwwwvwwxwxwwwwvwwwwwwwwwwwvggwwwwwwwwwxwgxwwwxwwxwxwwwxxwwwwwWfwwgVwwwwwfgvgvwwgWggWefvffvwwwwwvggvgwvfvxxwwxwwUvfxxwwgwvwwwwwfwwwwxwwxwfwfgvwfwwfgwwwwwvvwggvfgwwwwwxwwfwfwxwwwxwwvwxxwxwwxfvwweefwwfxwfggwwwwxxwwwwhwvvgwwwwwfwwwwxwgwxwgxwwwwwxxwwwwwwwxhwxxxwwxgwhxwwwxxxxxxxwwwwwxwwwxxwwvwxwwwvwwwxwfwwxgwwxwwwwxwxwwwwgvxwxxwwwxwwxwwxgvwwwwxwxxxwxwxuwwvwgfwwwwwxxxfwvwwwwgwwwwwwxwwwwwxwwwefefgfffUfvvvfffgvwxwwxwxwfgwvwvvfwvvffgvwfgvefwhgfwwvwwffWvwfgwwgvfgvfvgdvWfffgefwwwhevfwvgwwxfwvwhwwWfwffwwxfvwefvgvUffvwWffggxUvwwvwwhWefgxfwwgwwvvwwwwWvwUfwgxvvvxwwgfvfdgwfVfwvvvVgwuwgvfwwhfgvwefvffwwvvvfggwwgwwwgfVfwffffvwwwvvwxuwhfvwwxwwhwwgfvwwXffxwwwxwwwgvvwwwwwwxgwwvxwfwwwxvvgwwwVvwvvwWwvwwwxgwwwxwgxwwxwwwgvfwwwwfgwwwvvwwvwwxwwwfwwgxwwwxwxwwgvwhwwwwvwwwxwwwfxwfwwwwhwwwwvwwhwwwfgwwwvWfvgwvwhwwgvxweugfgvvwvwwvgvvgxwwwvwwwwxxwvuwwvwvwwwwfwwgwwghwwwxwvwxwxwwxWgwvwfgwwxwgwgwvgwggggwvwwxwwvwVhwgwwwxwwxwxwxvgvwhwwwwwwwwwwwxwwwxxwgvvwvwwfvwwwwxxwwwwwfgvvwxwgwwwwwwvwwwwwwwwwxwwggwwvwvwwwvxwfwggwwgwwhwwwwxwwggwvgwvVvvvwvxxwwwwxxwhgwwvwwvgwwwxwwxwwwwwwwwxwwxgegwggwgvwvwwwwwwvfgwwwwvvgfvfwhwwvwvwwwwwwfgvwvgwwwwwxvvgwwwxwwwwxwwwwwwxVvefvvwwvvwwwwxvwwwwwwewvvwgwwwwwvvxwwwvwwgwvxwwwwwvggwvwwwxvwwwwwwvvwvwwwgvgvwvwxwwwvxvxUvvfgvwgvvwwgvvgxgwwwwwgwwVvvwvvwwwvxgwwwwgfgwwwwwwwvwvgwwwwegwwvfwwwwgwwgwvxgvvwwvwxxwwwgggwwwwxWvwxwwuvfwwgwwvwwgvvvwwgwwwvwwwxwwwxhvvwwvwfvwxwwvxxwwggwwwgfwvxxggwwwwhgvvwwwwwxwwwxgwgfgwggwvxwxfwwwvfwwwwvwwwwxwxwhvwggvvvuwwwvvwxvwwxxxwwwwhvwwvwvvvvwxwwxwwwwwwwxxwxxwxwxwXgwwgggvgwwwxwwwwfvwgwvgvgwgwfxwxwwvwhggfVgvwhwwwfwwvWvwgwwgwgvwvwwwvxwwwgwwwwxwwvwxwxwwwwfwwwwwwwxwwwwwxwgvwwxwwwwxxwxwgwwwwwwwxgwxwfwwwxgwwvxwxwvwxvvgfwwwfwwwwwwwwvwwwwwwxwwvgvwwwgwwwwxwwwwgwwvwxxwwxxxgwwwwwgxxhxwxxwwxwwxwxxxwwwwwgwvvwwwwvwxgwvwwwvgxxwwwhvwxwwxxwxwxwhxxxwxxwxxwxxwxxxwxwwwwvwvwwwwwhvwxwgwwwxwwxxwxwvgxxwwwxwxxxwvxwwwhwwfgxxxwwwwwwxwwvgwxwwgxwwwwvwwxwxxxwwxwwxwxwfwwwwwxwxwwwwxvfxwwxwwwhwwwgxvxwwxwxwxwxwxxwwwwvwwxvwwwwhwwwxwxxwvwwwwwwxxxwwwggvfvwwwwwxwwwwwfvwwwwwwwxwxwwwwwwwwwwwxwxwwwwwwwxhvgwwwvwwgvwwwgwwwwwvwwVvwWwwwwwfwvwwgwgvwwwwxwxxwwvwwwgwwvwwwvwwhfwwwxxwwwgwfgwgvwwggwwxxxvwwvxgwfwwxwwwfvwwwxwvwxxwwwwwVwwgwwwwwwgfwwwwwwwxwwwwfwwwwwwvwwwwwwwwwvxwfwwwgwhwgwwwxvwwwwxwwgwwxwgfwwwwxxxwwgwwvwwwwwwgwvgwvgwwggwwwgvwfvwwwgwwwwwvwwwgwwwxwwvwwwwvwxwxwwwwwxgwwvhwgwwwwwwwxwgwwwwwxhwwggwwxwxvvwwwwwwwwwxwgwxwgwwwxwwwwvwvgwwwwwghgwgfwxwwwwwwwvggwvwwwwwwwwwwwwwgwgwwvwvxgwfwxgwwvwvwwxwxvhgwwxwxwwwwwvwvgwwgxxwwwxvgvggwvwvgwggwgvwwgwxwwwwxwwwwwwgxvwwwwvwwwwvwxwwwxwgwwwxwwwwgvwvwwwwwxgggwwwfwwvfgwwwxvvvfgwwggvwwwxwxwwwwwwxwwxwwwwwwwwwwwwwwgwwgwwxwwwvwvwwxwwwwggwxwwwwwxwwwwwfwvxwwgvwhwgvxhwwwxxwwwxwvwfwwwxwxwwwvwxgvxwxwgwvwwgwxgvggwwwxwxxwwwwgwwwgwwwwwwwwwgwwwwwwgwwwwhwwwgwwwwgwvgxhwvwwwxwwwggvgvxwwwxxxwwwvgwwwwxwvwwwwwwwfwwwwxwwwxwwwwxwwgwwwwwwgwwwwgwwvgwxwwgwgxgwwwxxfwwwwgggvwvwvwwgxggwggwwfxxwgwwvggvwxwvwwwwwxhxwxwwwxwvvwwwwwxwwgwwwwwxwvwwfwvgwwwfwwwwwgwwwvwwgwhxwvwwvgvgwwwwgwvgvwwwwwwwwwwwwwgwgwvvwwgvwwwhxgwvwwwvgwxwwwwvwxvwwwwgwwwwwwxwwgwwxwgwwwwxwgwwwwwfwwhwwwxgwxwwwvwwwvwwwwfwvwwwvwgwxvwhgwvxwvwwwwwwgwggxxwwxvwwxwxvxgvgwxxwwwvgvwwvggvgwwwgwwgxwhwwwWuwwvwwvwwgvwwfuwwvwwwwgwwgwwwwwwwxwgvwwgvwwwwwwxxgwwwwvwwwgwvwwxwwfgwgwxwwxwvgwfxxwxxxwwwxwwwwgvwwgwwwwxwxwwwgwwwfwwwwvgxwwwgwwwwxwwvwwwwvwwwwwwgwgxhwgwxhwwgfxwwwwwgxwwwxxwwwwwwvgxgwwwwwwfvvwwgvfwwxxwwvvwwgwwwwxwvvffxwwwwwxwwwxxwwxfxwwxwxwwwxxxxxxwxwwwwxwwvwwwwwvvwxxwwwwvfwxwwggwwwwwxxwwwwwwxwwwwwxxxxxxwwwxxxxwwxwwwwwwwgefwwwwvwwWvwvwxggwwvvwvwwWfvwwxgwwwwwfwwhwwwwwwxwwgwwwwvxxguwwwwwxxgwwvvwvwgwhwgwwwwwwgfgwwgfwwwwwgggvwwxwwwwvwhfgggxwwwgfwgwwgwfWwwvgwguwhwwxwwxvwhfvwwwxxwwwwgvwvwfwwwwvwgffuwwwwwwwwgwgwwwfwwxwwwwgxwwfxwwvwwgwwwgxwwwhfVvhxwwwwwxgvwxwgwvgxwwwwxwwvwvwwffwwwwwwvgwwwvwxwgwwgwxwgwxfegwgwwwxxvggvwggwgvwevwxgxvwwfwwgvwwgxghwwwwwwwwwwwfgwvgwwwwwfgwwxwwwwwwvwwfvwwgwxwwwwwwwffwwwxwxwwwwwgwwwgwwwvwwvwuwwwwwwhwxgwwvxwgwwwwwvxwwgwwggwxwwxwwwffexvvwwvwWgvxwhwwwvwwwwwwgvwxwgfvwwwwwwwvwwwwffwwwxwwwwwhfvwwwwwwwwwwwwwgwxgwwgwggwwvxwvwfwhwhwfwxwwwwwwwwggfgwwwwwwwwfvxwwwggwwwxvwwwvxwgwwwxwvgefwgwwwgwvvwvwvwgwwwwhwvwwuwwwwwwvwwvxgwxwwxwwxwwwxwxfwwwwgggxwwxwwwwwxxxgxwwwgwxxgxwxhwwxwxxwwxxxxxwxxxxxwxxwxxwwhwxxvwxxxwwxwwwxwwxwgwhwwxwwwxwwwwwwwxwgxxxxwxxwxwxxxwwxwxxxwxxwhfxwxwxwgevwvvwxwwwfwwwgxwwfvwvwwxvxwXgfwwwvwwwwwvwvufgwgvwwhwgwwwwgfvwwwxxwwwwwwwwxwfxwWwgwwwvgwwvwwwfwfxwwfwhwwxwwwwvhwfffwvwxwwwfvwgwggwwxwwwwwwvwwwwxwXvwwwwwwwgwwvgggvwfwwwvwwfwWfvwwwwwvwgvwxwhwwfwwwwwwvwwwfwwwxwwgwvvwxwwwxwxxwxxxxxxxxxxxxxwwxxxwxxxxwxxxxwwyxwxxxwxwxxwwwxxxxxxxxwwxxxxwwxwxwxwxxxwwwwxxxwwxxxxxxxwxxxxxxyyxxxxxxxxxxxxwwwxwxwxwxxxxxvwwxgwgwwwwwgvwwxxwwxwxwxxwxwwxwwxxxwxxvxxxwwwxwxvxxxwwwxxxxxxxxwwwxwxxxwwwxxxxwxwwhxwxwwxwwxwwxxwfwwwwggfgggwvvgfwvwgfvwgUfewwwwffewvvgffgWUfvufffwwvfvwgvgfwfgVfgwVfUgwwvgegfwWTfeegVUugwfgeVeffvVVffWeVuvgfvwwgfwwgfVuwfvVfgvUVEgfwvgvVuwWfVeffUDuwffwgvwvwwgwgvgevETVeeVVgefUfwffeffUewfVUuhfvUUfvfffgggfvwwffgffvwgVfvgewvfgfffUVUfffT4gfvwffgfUEvwfDEUEufwffvwvvvffwWvxfvfwtwwwwfwwgvwWufwfwffwvWuwgvwfgfwggvffgvfvwfvwewffgffggevgvvwwfgfgvfWevfvfggffWevgfvfvfwvfwvVffffVuVUweffUffvffgUvvfvgwvwwvwwwwxwwwfgvwwwfwwfgwwwwwwwwwwwwfgvgwwgvwgvgwwwwwwwwwwwwvwwfwgvwgwvgwwffwwguwvgwvvfwfvgwwfvgvwfggVWffffvfwwfvwffggtvwvggvwfvwuugfggVUvvgfufvuggWggfvfgVgvfuvfVggggwgfVgWUvfVvWfgwggWfvVvuUffffffufvfewvuggWggfVfUffVefeEgfVffffuVffVufeuffgwgvwxgwwwwwvwwvewgWgwfwfwvfwvvfwvffWwggWfffvwgfgwfggvwvwvwwwwwwwgwvgwwWggvvgfgfgfvfwguvfwwgwvggvvggweuufvefvgvvvgvfffWwvvfvWfsfvwvgvgfeVwvegvgeffVvTfweeVvWfvevUWgvVveUVedVugVvfefEuVVufVfvvvgTeWUVfUefvVfvfeVvdgweuWvWeuVfUUffVfEV6udUefeudefUedetdfegwvvfwvgwwwvwvfGfgUgufvewVvefffuVvfWffguffeVvffvfWgffgefffwvgvvfvfwuVvvffvWwfwvgvfVgffevggfgffgvefggfefTeggwgfgwfwwgvvWvwfwfwwtwwxvwgfewWvvfvfgffVfevgvvevfwgvvfwfffeEfVwewfguevefuVfuffwfgwfgfgevWeefvfguWvgguwgvvevfgvffffggfVeEgUwevfgUfeVuFeVfwvwvwwwvgwvwwwwwfwfvgvgfvvwwvfwugfwufgwvggwfgwgvgugvfvgwwvwvfgwvgwvvwgwfwwwvwwvwfvgufvefwwvwgwfgeVvggvgvggfvwffwgfffefweugUgVffcwwgfvfefvteWfWVvVfwfeeguvfggVwfffVWffeudVfvWVgguffgWvVfvfVffwwgfevefvdeWgWWuVffgevgevgfgWveeeVVvfeudFfeWVggvUfgWfUfveeffvwwwvwwwwwwwvVufffgfgfwgvwffwvvvvggwwwwgggvwgfgwgvWwfvvvwvvwgvvwvvWgWggfgvvgggeegfffdfwwgwwffvuvgwweuufgVfegggfvfgvvwfwvwggwfdwwgvggvwwfwgvfgfvvgVwgfwfvwvgvwgffgfwVfVfwWffvvvgfvffvwvvgfgggfvevfffggffvfevvfVvwfggvwVfUfffefefWTffVffwVfffvVfVVvfvwwwwgwxxwwgfgfwgwfgwgwgvwwwwvgwwwwwvgfwgwvwwggggggvwwwgvwgwwgwvVvewvwevffuggfgWfUvvvgvwgffvwggfwVvxxwwxwwwwwwgfwwwwwfwvxwwxwxxwwxxxwwxxwwxvwwwxwgxxxwwwxxwwwxxxxxxxwxwxwwwwwwwwxxgegwhwgwwxfgvwggwvvwwxwwvwxxxxxxxxxxxxxgwhwxxwxxwxxwwwwwxxwxwwxwxxwgfgfWwgfhfVewggewfguvfgvggefvwgvffgVguvVTefvwvfVfVguvfffVVVEcUffwgwVhvugVWvufueFfegwggeUVvwUeVUFWteeefvwgvffgVguvffeVEVVcUfVwfgVhfvUDGeeVveVfgvwwwwfwwgwwwwvwWefUffgwfvvWgwgfVVgfgtuvvwuwGvveVfwwvvwggwggVWffguvvfgwwVvwwgEfffgeVUvggvwgwfXgvvVWgfwdeveueXvvfhfVetgwfeVvgvveegwgeffgggffwfhvvvVeffwgWgffgvvufvwegVeTWggwvvgvvveVvvwfufVffvwgEVdUwffVVVWuueVfufwwffWehvefffVUVeSVeeffeGfeVT6edevveGewuvwhgwwgvwwWfwdfVTUffWfvgffgvVUegvuuefwhwevfefgvfwwwgwhwfVvgwvvewvvwgvvwwWUfffVVVevfvvwwgWgvfWFVevgdefgWgffWhufufvwWgvwwfwffwgfffvwwgfgWgfewfeffvgwfWfgffwfwvgfftUguWwwWhfgwGgffvfUwVVvfwwgEVefVgUeVWefgefwfvwwgwgxvgwfvfGffuUffVvfghfffGWdVfvUgfUgxwxxvvwwgvxwwvgWvefffggvwgwgwWVefvffwufvwWwvffwwfwwwwwvgVfwwffwvwgwvwfwggVffvffeFffwgwhwgvWwfVeGveeUevgggvvgwfgevgvwggdwvvwgvfwgxwgvvgwwghuvwfwgwxfwgffvwwwwwwvwvfvwgwwhwvwwwfwwwxfwwwuxgfwgwxfwwxGvwvwweffxgfwfvugvggfvufvwvvwwwwwxvxxvgwvwwwwwwwwwxwwvxwwvvwxwevvvggvwwwwwwwuwvwfvwwwwvfggvwgvwwwgfwvwhwxxwwhfwxwgVwevgfgvfUwhvffvfgwVfwwvgUffvvvvvwevwgfUefwfwffvefvVvgwWeeVTgfEvgfgvffdfvffvUvgefwfgTUfufffeuTewVueffvgvvfvefgVfwvWUeWeeVFffegwefCefVevDVftgwgwwwvwwvwwwwvgGgfVfgfVuwwvgfwVeuwffwVugvxWwggfvvfvwvgwxgffvgwwVvwgwwfwwvveefeeeVVffgfwwwfWfwgffVwfVFvvwwwwvwwvffwvvgvfFwvwwwwxwvvwvhgwfgvhwwvvwggxwwwxggvwWgfwgghwwwwvfvhfvwwwwxgxvwvwvuxgwvwvgwwuvvvwfgwVgxfgwvwWgfwffgVwwhfvvvgvvfvwxvwwwwxwwxwvwwwwwwwwwwxxxwwwvwwfgwuwwwwgwgwwwwgwxvwvwxvxwwxwwwvgwfwxwxwwwwxgwvxxvgwfggvwwwfwgwwwvvWwwwxvxwwvhvwwfwwwgwwwvxwwwwggwwffgggvhxgwvwgfvvwgvvxgvvwgwwwgwvwwwwvvwVvvgvvggggvfwvwfggWgvgwgwvvwvvvvfgvvhvwwwwvwwwxvwwxwvwwxxwwgwwwvhwvxgwwvwxxwwwxxwgwxxwwvwgxwwwwwwwxwgggwwvwwwwxwvxghxwxvgWfvwvfUfvggffwwwfvwFwvwggwvwvxgwwwgwgxwgvwxggxgwvgwwgwwfwwggUxgwwwwgvfxgwwgxgwXxvwvvxgwxvvwwwwvwwvVwgffwgwWvwgfwfgWwwggwvgvwfgwvwwwwgwxwwxgxxxfvwvwgwvwxwwwxwwwwwwwxgwwvwwgwgvwwwwwxwxwwgwvxwvggggwwvwxwgvfwgWguwwwwwhxwxWwvxfvfvVegwfewgfvgUvwvgeguvgwvfffvgfvggfwgffwWfvfWvfvfggfvvgwvvVtggvffvVwvfwvgEgvvffuWffvwfgWvFVeFfVgVUuffgwfgwfgfxggfvgfefVtfefefVEgUVUewFgvvfvvVfvgvvwgvgwwwwgfwvWvfwwwfegffgWffVvuffgwvuVxwgvgvgwvgegvvfwwfgvvvwwwwwgVwwwwffggfWfwvWwgVfUWggfWfgfWfeffgfUgdWfwegfffeFfuvheWfeeufwfffVfffvfgfuufvegVfvgfvWguvfufffefeggfvWfVvgfuveWfufvfvUfUgfVedUfdUeffVUvfeeeffefuegggwvefefFeSVfVefT6eeedefGvffvefFeWwvWfwffWgwwwvuVwdUfvfvuFVUeffgvVVffeeffvfvgfefvwwwfVfVvvwwwgfwvuvgwvwVffwggfVffVVvwwfwWfVFVevffvWWffdewgffFgevVgewefgufwwVgfVfVfvvfffvfwgWgewgTfegVwWvfgvefgegvfvguffwvvgVwfvfVwFfeUgffwFUUffvfeFvUVfefVefeVfgfffwwggfwgfvVfUfvUfveffUWdvfVfVgfVfffwfVvwevwvwvfgwffwgVgvwuvgwefvggvfguvffVvufffwffwwxvfWvegvwwwvvfwffvvwgfgwwvvWvfvVfGfgwvffggvVfgwwfffWUEvfugwwgwwwvvvwwvvguwfgwwwwwwvwxggxwwgwxvuwwwwgxwxwgfwvvvvvxgxxwvwwxwgvwwvxWwxwxvwfgwgwwvxwvvwxwwgwhwvwxuvwuuvggwWfvfxvwgfvvvwgvwxwwxxwwgwggwxvwwvgxgxwvvvvvwwggwvwhwwwwgvwvwxwwvgwwwggwwwwxwgwwgwwxvgwgvxxwwggwwvvwwfvTuwwUvwgfwWewwvfvwffwvwgVuggffvVfgvvfgfevffwvVgwgvVvvvggefgVfgvegggwevUvvfuwfuffvffgVufVefveffvfffwfvggvVvwwgVfVffWefguffvTefwfeewgUfwveeggwwvgwwgvvgxggvwwvUvwevvwggwwvvgffwvvfgwwvwwwgvwfvgwgfwwvwgfgwwwwgfwwvgvwuwffVvvwgvuvgfffvvwfvfgfUwwvwwwggwwwvwwwgwwWwwwwwwxxxvhvwwgxwxwwwxwwxwgwwfwvwhggwwwxwvvwwwxwxwxxvvvggvgwwwxwwgwxhgwxxwhwgwVvvwwggfwwxvwwfwwwwwwvxwxxxwxvwwwgwwxxxxwwwwwvxwwwwxxwwwwwxgwxxwvxhxxwwxxxxgwvxwxxgxfxxwwvwvvvwwgwwwwvwWwvvwwwwxwxwvwwhwwvwwwwxwwxwwwvwwwgwxwwwwwwwxwwwxwwwvwwwwwxxwwwwwxwvwwxwwgwggwwwvwwwwgwwxvwgwwwwvvwxwxxxxxxxwwwxwvhwwwwxwwxwvwxwgxxxwxvwwwwwhgwwwwxxfgwwxxwvhwvwhWhfvWvgwvwwwwfwvWvvwvvxwwwxwxgwwffwvwvwxxwwwwwwwvwvvxwgvxgggwgvwwxwvwwwvwggwvxwwgxwvwwwwvvgxgwvfgwvwvwggvwwvggwfgxgvvwvvvwxwgvwxwwxwwvwwwhxwwwvwwxwwvvwxwwvwwxwwxgwvxwxwvwwggwvxgwwhgwWgwvgxxwwhgvwwxhvvugxwWvgffwgwgwffwwvwwwgfvvgffwGfffgwgfgfVgvgFfefgwgfgVVfffvgvvfVfffVggvwwwwwggvfgwggwffvvDffTefgfeVTVfvVgfvwgwwgffwwgffvffEffVVWffffffuwwwvVVeUfwwvfvgfvwwxwwXfffffwfVffvvfegfVffVVffgvhwgfegevwwvvwxwgwwwwWfffgwvfgfxwwffwfWfVVfvwvffVwwgvvffgvvfevwwwwgvwgvxwvwwwwxwwgwxwxxwvwwxwwwwxxxwfxxwfwwwxxvwxwvwfwgwxwwwwwgwvxwvwwwwwwwwwxgxfwxwwwewwvwwvgfxfwwwwgwfwwfwwxvwwwxwwwwwwwxwwxwwwwwvwwwwgwwwxwwvwwwxxwxwxwwxwvwwxwxwwgwwxwwwwwwgvgwwwxwwwwxxxwggxhghwvvwxvvwwgwvwwwwwwxwxgwwwxwwxxwwhwwwxhwvvwvvxwxxwxxvvwgfwfhvgwwgwxwxggwwwwwwwwxxwxhwhwwwwvwwwwwwgwgwvwwwvvgwgwxxxwwwxxxwwwgwxxwwxwwfgwvwwwwwvxxxxwvwxwxxwxwwvwwxwwxvxwxwxwwwwgwxwxwwfxgvwwwwvgwgvgggwwgwwvwwgwvwwwwfwvvxxgwugugwvwwwfxgwvguWwfvwwwgxgwfwwwwwvwwwewfevggvwwxwwwvvwwvwvwwwvvwwvwgwwvgwwwgfwfwvgwwvhwgwvwvgfvffvfgwwwvwxvwgxVhwgvfwxwfwwgvwwwwwwvvwgwWwwwwfwwxxwwwvwwvhwfvvvxwwwwvvwxgwegwgwwvwwvhwxwgggvvxfxwwvewwvwwwwghvwwwfgwffwwwwwfwwwwvgxfwwvvwwfxwxwwfxvwgwguwvwwvwfwwgvwggvgevfvxVuwvvvvggvgwfwfwwwfhgwhwwwwxvwwwvwguwvvwgvUwfwwfvvgvvevffxvwhgwwwwvwwwwxggwwwgwvwwwgwwwvwvwvwxvwwwwwggwwwwwwvgwwvwwvwfwxxxgvwgwwwvwgvwfvhwwxwgwvggwwgggxghhxwwwvvwwwwfvwxxwwwgwxwwhfggwxgwwxwwwwwgxwwwxgfwwxgxwwhwwwwwwgwwxwwwwwhwwgwwvwwwwvwwvwfwhggxwwwwwvvvwwxggxgggxgwwvwfwwwxwwwxwwxxgwgwxwgwvwwwwwvwvwxwxxwwgwwwwvwwhwwwxhgwxvwvwwxwwxvfwxwwgwvwwwwwhwwhfwwwwwgugwwvgwwvwxwgwwvwwwwwxwvwwwwgwgwxwwwwhgvwwxwwvxwwxwgwgvwgvxvwxgwgwwwvwwwvwwwhwwxxxwgxwwwwvwwxwwhvgvwwwgwwgvxwwwwxwwwwwwxgwvwxwwwwwwvwwwxwgwwwwwwwwxwvxxxxwxwwwwwwxwwwwxwxwgwwxxvwxwwxwwggwvgggggfwvwfwVfwgwwfwxfxgwwhwgvgggxwvgwvwwwvgvxxvxxwfwwwvwgfxwfwwwwfwvwgxxwwgwwwwgxghwwgfgfgxfgxwvvvwxxgvggfwgwfwvwgxwwwwgxxxgxxxwxwwxxxxxwgwxwxwxwvwhwwwwxwgvwxvwxfwwgxwwvvxxwxgvgwxgwWUhggVhuVevfvgUwfgvufvwvVffvwegfwwgvwgeefvffgvwfvvgfEfffgwvfgWEwVguvfwgvuwwvVgVwwggdeVufufVvgeevfffvwfvgwgwvuVF4VVfffUFfgEgVXufvfgvefefFVVgvwwvwvwwgwgGVfvVuwwfVffVwgfevfwWffwwgvvWVfgvwfwwfgvggvuwwgwwwwxwwWVVfvUFfgvfWfwwwuvgveVfVggdVvvffwwwvdfUWuvfgUVUegvudWvWeuTfffgefvffueUfefuvvVffVwveVeffffeTUEVffwgggfTWvgftUfvefvfvgVfeffW5TTUffUUFfVeeTEUeeWvefVvWveTUC%EEUUEUUeeFeGeeUvVedUede6TegvffveVfwvfffCETffefVfVVUFfVeeTefTUeUffefTUUgfvwggfgfVvWfedwveVffggfgEUUeEUUevVfVffggefwUFVUFWUSdffWfffgffVgvWfheefVvgVffwgUgVgfgVeffvtUVgfwgewfdeUvufeVfffewfWfVVVvffeV6VTxfDgeffffuVwVEfgfvFTFeeefVfUefeVeeffvffwvwvfwEFFcUVffVUUFfegeEVfvfVffVffFUvwvfffwgfgwgGeVvffwwffgVfevfefeggevVvvgfFVWuvgwggfVeUfgfefuwgvvvwfvwVUVffVeVwwgggfgwfVfffeVfuVUTvwwvffvvvvwfvvvgwgevGwggVggvfvwwwvhwgggvwwvgwgwwvwwwwgfewwwwgxgfVvfffggwxwwggwvvgwvvwwfwwwgvvvgwggwvwvvwfWfwwWwWfwWfvgvfwwvwfufvfwwwwvhxwwwwvgwwvgvgwwvvwxgvvvwwwwgwwwvvwvgwxwxwvwwgwwwwwxwgVwgewwwvwgvxxwwgwgVvgfwhgwwgwwwggvTexfvvgfvgfwUvfwwUfgvwgVfgfWevffgwwfVuffvhfgvfwwwgVwUffvgfgffwTufvwUvwgweuvfgvewfwWUefvWffeefgfffvgwvgfgfvwwggVwDdeffffVVwTevgEuwgfeewvffewwvgwxwwwgwwWVfvfvgvffgfeuvgffvwgwffvwwgWgfgfxfwgfevwwwffwXvvwwxgvfdfvgVUVwwUfvwvgfUfwfUVwgffVvgfwwfvwwfeffgwVfvgdfvvvwfgwxxwwgwgvxwhxwvvwgwwwwwxxWffxwwwgwvhfewvvgfwxxvvwwxgwwwffwwwgwgfgvvwuggvwgwgxvwgugwwvvWwfgvgfwggggxvfvwwvwwwwwwwwxxvwwvwwwwvfwgwwwwgvggwwwxwgwwggwwwwwgwwwwwwwwwwwxxwwfvWwfwwwvfwwwhwwhgUgwfgwvxxvfgfggwwwgfwwfdfevvgvfwvxxhxwwvfvgwWgwvfvfwwwwwwVfwwwvwwwfffwgwvwwvwxxwwwwwwwgwwvvwwvvvvxgwwxvwwgvwwwvWggewvwgwfvgwvewvfwvwwwwxwwxxwgvwwwwfggwwwwgvvvgvwwxwgwWhgwvwwwwwgwhxvwwwwwxxwwWghwwfggwwxvwvgggghwvwxxxxwxgvefgfvgwgfevgwdeffgvfwgwwwvgfVffwwwgwwwvwwgwgwwxxxvwffegfwwvghfefvvgffwgwwgwwwxwgwwwvxvvfwwwggwffvxvewfwgxgwvggfgwwwvWWffvwgfwfhwufwvgfggwwwwwwwwwwwxwggfwxggwwwgwwvvwwwwwwwwwwWwwwwwxwwgxhwvvwwwxwwgggwvWguwgfwwwxwwxxvWgvhxvfvwxxwxwVhxvfhxwgfxxwwwwvggfvwwwwwwgwwggwwwvwwxwwWggfgvwwgwggwwxwxwwwgwwwwwvvwWWwwvwgewwwfwwwwwwvwwgwwwggffwfgfwggxwwgwfgwwwwwwvwxwxywxvwxgvggwvwwwgwwgfwwhwwwxwwwxwwwwwwwwxwwwwxwxwwwhwfwwgvvwvwgwwgwwwwfwwvgvvwvwwwwxwvwfgvwwfvwudvWVgfgwfvvwwxfwwwwwxwwwxWffwgwwwfvxVewvwfugwwgffvvgwfxwxvwvwxVVfffvgfwUvugvwgwwwhwfwwFewgfVtfwgWVwefvvVwvwefvwgvxwxwxefvfgvgwghvwfwvwgwvwvwhvwuhgvhvwvwwwxwweufeVwvgvgwghwwxguWwwXwfxgxwxxwggxwwxgVvvfegfhhfwwvxwwvwwgvwwxxxxxefvfvwwwwxxwdggwgvvgwweggfwvwxwxvwxgxwwfgvgvgwggwvwwwwwgwwxwwwheWWvufeVhxfgWfwugWwugvwhwxwwxwxhfwgvvvgwhfgXVwvfgwvwvvwwwfwxXvfgwxfwggvwwxwxxgwvdWxgvvgwhgwhvwuuggxVfwvggxxwgwwwwvhxxxvfwvfwvhvwwvwwwgwwfxvwwxvwgvwwwvwwhwwwWvgwffwugxggvgvwvguwvwwwwwxffwfgfvgvhwvvwwgvwwwhvwguWfwfwuGxguXuWffugwwvfgvwvvwxwxxwwfvgVwewffhfvgvgwvvvgwwwwwgwwgfxvwwwxwwwvhxvwwwwwwwewfwuGxfwffhvgxvwgvvWwgVhvfwWxwwwwxxwvexghfgvwwwfxvwvwxxxgwvwggwwwxwwvwwwxwwwxwwgvVvvgfvwWwvUwfwvvfwvwvwgxwvfevvfgvfwfxvwwvwwwxwwgwwgeEwgfgvwWwvUwegvuvVwwugvufxgwxwwxwwwxwwWfgghwvwhwvfwUxwwvwwwwWvgghwwxwvwwfvgwgwwwxgfgfuwWwgwwhwwXwxfvwgveXgwwXwxwxwhggwggxfuevwfgggwwwwwgvwwvvhwxwxwgfwwvwvwwxxwfggfvvvwgXghggwwvgwxvwvxxxwxgvwvvvwwggxwvwwvwxhxVgWfvvvvxXWhhVVfuWgwwvvhxwwxxxwwffwvvfxgggxWgwwvfgvwwwxvwwxxwwxggwwwwwwwvwgvfuexWgvfhgwwhwwwtvxghgVwvxgwwvwvhwwvwfgfewfuxwgvwvwwxgfwwgwfghvxwfvwgfwwgvfugevwfwwgugugvwwvWwwvwxxhfwvfwfvgwWuwwvwwwwwxwgvfvWfwfvehwgugeVvvuGwvgfuwwxwwxxwwwhwwVewfhwgwwwhvxwffwvvwgxgfwwxwwwxwwwwwxhwvwfxXvfhvgwwgwwwexwgwwgwxwgwwXeeffeTUffVTfcffVUeffVeWgwwuuwWfffwfvfxwweufFUVffvvvwxwfUTvfgfvwwgVUfUfVVeewwwvfgxgWwwuuwgffVwwffwwweuggvvFgwVVwxwfffvgWTuwvgVVfffffUewwweVfwwgfvvuwwwwxwwwwWwwgfvwwgwWwfffwwwwwwwwwwVgffUvfgvfFwvfUwxwgffgfwwwvgvvWEuwwwffvgvwwwwWUvwwgeevwwwxwwfffefwvfgvfewwwwwgVfvfwvWgvfeeuwwwgvvWuffgfeegvfgwffVfewwwwfvfwwgWVffvvwxgvwfffffe6eVeVeEUfUfFUUUffVxvgvvwwgwwfFeeVVfeUUEwwgwfgvfefVfewvfffwwgVfwwwxwwgfUvgvwwVFefeVfFUUefffgfvvgfeffuwwxwgfvwwwgwvvfgwgvgvwvffefeUUEwvwgfwwwefgvfefvwgfffggffvvuvvfxwvwWgwwffWvvgvfwwwxgwwwwwvwwwxwvwwwwggwwgwvwwhvgwgvwwwwgwvgvWgwwgwwvwwwwvwvwvgfggwwwwwwwhwvwxxwxufwguwvvgwgvfvwvfwVwfVvwggvwgxvxxwwwxxwwwgxfvwvxgVwgvwwvvvwfwwwwgvVwwwwgwwwvwwwwwwvwxwwxwwwgewwwgvwwgwwwxgxvffgfvgxvgvwwggxwgwfggwgwgwvwvgffvfxgxfwwwvwwgvvvgwwwwvwvwgwvvwwwvwwgWwwwwwwwwwevghxfvvwxwwwgwwwgwwwggvfwwvgwwfwvxwwxxwwwgwwwguwwgwfvgwgfvgfgvvvvggwwwvwwwwwwwfwfwwXfgfgwvgwvvwvwwffuxwwgwwwgxgwxxvwxwwxwwwwwuwfhwwxwgwwwwxwfwufWwwgvvwwxwwwvwwegwwgxwggwvwwvwfvwgwwwgfgWwvhwwvwwwwwgxvgxwwwwwvvgvxvxwwwvvfvgvgvgwwwhvvwwwwvfvwwwgggvwwwwwfwhwvggxwuwwwwhwuwwgvwvgvgUwUvhvvfwuwgvvxwwwxxwwgfvvffxgvhvwwgvwfwwwwvfwfwwwgvwwhvgwgxwuwwwwwwxwwwgguwwwwwwwgwwwxwwwvggvWwwfwwwwfxwwwgvwwxvvgwwwwvwwwvvwxwxwwwgvfxwwwwwgwvxxwwwgwhwwwwwwgggfgxwxwwgwvwwwvwwgvxwxwwwwwwxhwwvwxwfwgvxwwwwwwwghvgvggvvwwvxxwxwwwwvwvwwxvgwgwxwwwwwwwwwwwwvvwwxwxwxxxwwxxwwwwxxwwwwwwxvxwvwvvvhvxxwwwwxwguWwfuWwfgvvwgfwfxgwWfvxwwfvgwewwwwvwwvwgggxfvxwvwxwvwvwwvxwwvghvwxwgfwwwwxxwxhwfwwgwwwwwwwwwwwwwvfxwvhhxxggwvwfwvvwvvgwffwhwffxgvfvxwwgwwxwwwwxwwwvvgwvWxwwgwwwgwwvwwwgwfwwwgwwwhxvwhwwgwvwwwxwwwwvvwfgggwhwgwwwXfvvwhewwwwvvvwwwvwgwewVvfxfvwgvwfgvvwwwgffwwwwgvwuwegvvwwwfwfwuwewgwwvwgggvwwwwwwwvvvwvfegwvwwxfwwwwwfwwfwgwwwgvwwwwggwxwvwgwwvwgvgwfvhvgvvhwuvwwwgfvwvvwwxxvggwwwwxvWfwwwvwwgwwvwwwwvggwxgwwhgwhwxhwvwvwwwwwwwfwwwwhvwwgwwwegxwwfgwhwgwwxgwwfwggfvfVfwvvGwwgfwVvvgfgwwwxwxvgfwfxwxxwfwhfVvwwwwwwxgvvgvwxgwffuggfwwwgwwxxgxwwxxvwgggwfxxwwgWfwwwwwwwfvwwxwwwwwwwgwVffgvxxxwgxxwxwwwwxwwwgxgwvwwwxxxwwwwgvxxwxwwwwggexwxxwwxwwhwwffwxxwwwwxwxwfgVfvvvwwwwxwgwwxwxxxwxwxwxxxxhwxwwxxgwwwwwwxwwwwwgvwwwwxvhwxwwwxwgwvXvwvgvvwwgvgwwgwwxxgfwgwwvggxwgwVwwvwgxvwvvgwwxwwwwwxxfghwgwhxvggfgwwxwwxwwvwxwfwxvwwxxxwxvgxwwwwwwwfvwwwwwxwhwwgwgxfgwwwxwgvwxwwwxvgxwvwvwwwxwvwwvgwewgwxwvwwwwuwwgwwvwwwgwhwgxwwvfwvwxwhwxxxwwwwxxwwxvfwufgfwgggwvwwvwwwwwwxwgfggwfvvggvvgfgvuvvgvvfvuvggwxwgwwwxwVfXfuffgggvwfwvvwwgWvvfufwgwhwvwgwxwvwwwwwwwwwxwgwwuvgwwwwwghgvwgwwwgggvwwxwhwwvwwwgwwwgwwhwwvwxhwgxwgwhwWvwwwxvwggWvfgwwxwwwvwuwvwwwwggwxggwVwvwwwwvxvwwwwxgfufgfggwggwfwwwwxwwxgwwwfgvwwegvwwwWgvVwvxwwwwfwvgwwwwvwxxwwUhfeegvgwwggvgwwwgvuvfvegfxvwwvwxwwxwwwwxwwxwwwwggfxvgxwwwgwgwvwxwwvgvgwfxvwwvhfuxgVvwgvwgfevVvfvgvgwwwvfgVwgvvwwwwwvfgewwwwfvwgwVwwuwwfwwgvfufefxfvwwgwwwwwxwwwwgvgwwggwwwvwvgvwgvwvwwfwwUwgvfwggffVvfvfvfuwvwwwwvxxwwwwwvgwwwwwwfvfevxhvwggwwgwwwfwvwgggvwwxfvwgvwvwwwwwwwgwwwwwwUwggvwwvggwwwwfvfgfgWwwfwwwhwwxgwwgwxwwxhxwxxwfgwgwhvwxvxgwwwwggwxxwwxwwwwwwvxwfwgvwefwwxwvwwWwgvggvwwwfwwvgxwwxxxwwwvfxwwwwgwxfvfgwwevwwxwxwxwxvvxvhvgwwwvvxwwwwwvgvvwgghwxwxgvwfvxgwgwwwxwgwwvgwxxggwgxxxwvgewgxwwxxxwxgfhxgfgfvvwfvvvgffvgwwwwwwwgvvgxxxwwwwwwwvwgxwwwwewwxwwwwgwffhwgwhvxxwwwwxwgxwvwgwxwwwwvgwgvgwfwxfwwvvvwwgwwvgugwwfgvhwhwxfwwwwwwwghwwwwwxvwgwwwwwwxxwwwvxgwfwwgwwvhwvwxwwwwwwwxuvvwwgwwvwwwwwfvvgvvgvxhwwweugwuuggvwgwvVvwwWwwvvwwwgggVwfwwwvwwvffWwvwwwxwwxgvgfxgwgwvgVVwvugwwvwwwwwxvgWwwvwwwxwgwvgWwwvxwgxwwxgxvwgxwwvgffwwvwwvvvwwvxwfvwwwwwwwwfwvwwggxxxwwwvxxwxwwxwwwwfgfwwggxhwxxgvwwwwwxwxgwvwgwwvwwgwwwfvwhhgggxgwwhxwvggFggVFfgfvffwfugvgUxvffwwwvfUVtgfgfvfwgwvgUfdgfgvvgwgwfgfwvgwwgfgfVUwvgwfxwfxwVwwwgwwwwfgvxgwggwwwwvvfgwWwwggwwwwwwuvfvwgggfVUxwfffvwwfxwvvwvvwwgvgvwwgwvffgUhwgwwwvwwwwwfwwffwwwgwvvwgUvwwVwwwfwwwwwwxwfgwwwuwvfvwwvwfvwgvgvwgfhwvgguwxhgwwgwwwgVwvgUxxwgVuffgVwvvwfvwvgVgwwwwwwguvgwgvVvfvwfgfvuwfEwfgugfwvwfvfvvwwfwvfvWVvfvwgffuVffvgegeuffwUfwvvwvwwvvgeFgVUtfgfufgefvvfvfffVfuWgfgwwwwhwwwwxggeffwvvvVgwhgfggwvwhxggvwvgewfwwvvggwxwwwwwwwwggfwwgwWgvVgfgfggegwfWwUfwwvwgwggvwvwwwvwfgVeXgfUWwfwfVvufVUFvuegfgwwVvfeffvvvvvvuffgfvfgguwfeftVeWVvffeUffgvfwvvvwvfvfuvvVVWfggvfvVdeUgfVfvvevFveuffgffgvueWeGVvDecfgfvfeeveffffefeefFUevfvgvgwwwwwwEVVuffUfgVvfwfgefvgwfggvgvfwVggvffffWWwwwwvgwgwgXwvgffwfgVffWgfvVWgVVVVduwwvgwggvwwvwwvvguvVfuVWWtwvxfvVVgVgvVgvffggguffvwfwwfgewfwvgUffufgfvfveGgutVegUuffgvvvVwvvffvvfwUVffwvWVffVfffugegfffvuVeffwfwvwfwfUgVufuEguffgffvggvffgvvfffVeffwxwwwgwxvgevVffVfgwfxgwggvfwggwvwwewwfefWfvffWvgwgwwvwwwwwwvwwvffgvgfffuWffgvWVfFfUwwfgvvgwwvwgvwvffvgwwwggwwwWwwgevwwgwggwxwwwwxxwvwwwwwwwxfwwvwwgwwwggvwwwwgwwvfwvwwwxwwxwwwvvwwxxwwefevvwvgwvwxwfvwvwvwwvvwwxxxxxxxxwwgwxwwxxwxwwxwwgwwxhgwggwwgvxxwwwxwxwxwwwggwfxfggwxwwwwxwvffUvgwVvwwwggfvfvVuwfvggwhwhvfvwfvgwwwwfggvfugVwgvwfffvUvWfWvvgfwggfwgfuvwfwvwvegeffvggVfUfffvfvvwgfvgUfgwvwwvwwffvUfGeGUfWefffffgfefggvwwefVefgwxwwxwwxwwXuvffgfgwgfwwgwfwvwffwvwwwgfvgwwgwwgfxwwwggwwwwxxwwgfffvufvfVgvwgffVffVwwgvwfvvwgvwwwwffvxhwwwgwxwwugwfwwvwwwwwwwxhxxwwwxxxwxwvvvwwwvwwxxxwwxxwxxwwxwwwhwwwwvwvwwwxxhxwwwfwgvgwwwwwwxxwwwwwwxwvwwwxxwxxxwxwxxxxxxhxxwxwwwxwwxfwwxvhwwwxwxxwwwwwwwwxwwuwgwwwwwwwxxxwwwwwxxwwgwwxxvwwwwwwgvwwxxxxxwxvwxwwwwxwvgwwwwwxxgvwgwgwwwwwwvwvvwwwgxxxxwwwwwwwwwxxxwwxxwxxxwxxxwwgxwxwgxwwxxwxxxxwxwhhgwwfgwwvwugvgwwggwgwwxvwwwxwwvwwwwwwwxgwevfvwvgwgwwwxwwwgwwwwxvvwfwxwvwwxgwwwwxwwwvwwxwhvwfgvvgwwwwvwgwwxvfwwxwwwvvgvwxxxwwwwwwwwwwwwwxwwwxwxwvggwwwwwwwwvxwwxwhwvxgwwWfvvvxxwxwwxwwxhxwwfwvfxwvwggwwwgvfwvwWwwwwwwvwggfwwWvfggfugVffgwfxfvwwwwwwwwwgwwfVfwvgffefvwvvVvfVWvfdffeUffewwwwwuvvgvwwfhevgfwwffVfgwgvwvVVVffeffefvwwwywwxvwwwvgfwwggvvwwhgwwwgffVeVffufvfgfwwgwvwgwxwgvxfvwwwgwvwwwwwwvggvvvwwwfgffvvxwwwwgwwefVvfffuwgvxhwwfvwvvxwwwvwwxwwvxwfwxvxxwwfwvxxxvwxgwgvxgwwxwfvwwxwwwwwwwvxwxfwwwfgwgfwfvwwvgvxwwfvwwwgwwxwfgwwxxwwwxwwwwwxxwxwwwhwwwgwxxxxwxxwwwwwwwwxwwgxxwvxxwwxwxwxwwwwgwxxggxfgxwwwhvgxwvgfvwxwxwwwwwwgxwwxwwwxwwhwwvhgwgwwwxwgwwhwhwvvwxwvvxwwgwwwwwwwwxwwwwggwxwwwvvwwggxvwwfwvwwwwwwwughwxwxxwxwwwwwwwxwxwxxvwxwgxvwwwvvxwxwxwxwxxwwwwxvwwwvxwvxwxwfxwgwwwxwwwwwwxwwvwwvwwwvgwwgwwgfvwvvwvwvgvwwxwwugwwwhwuwvwgvvVhfxwwgxwwgwwvwgvgwwweVgvxggwwwwgwvwwvgwwwwwvwwggwfgvxggwfvfggfwwvgwvwwgwwwfveWvwxwwgxwvwvwvwwwwwwwgxwwvvwwwwwwwwwwvwwhwvgvhxwwwwgvwwfvwwwwgxvgwgwhgghvfwfwxwhxwwwwwwwfgwwwfwxfwwwxgvwwgfgvfxxwxhwwwxwwwfxwwwwwwgwwfwwvwwVwhwvwgxwwgwgvxwxwwgvvfwvffwvwgvfvgwwwgwwwwwxvwwwwwwfwxwVvWvfgehVvwffgwfwfwwwguffwvwxxwxwwxggwvwwwvwwwxhwwxwwwxwwwwwwgwwxgwxwxwwxwfgxwwvwxwggvxfgwwwggwvgvwwwgwwwwwwugxghwghwgwwwwwwfwxwxwwwxwwwggwwwvxwwwwwxwwwhwwwwwxwwwxwwwwwvvxwxgvwxwvwwwwwwwwvvwgvwvgwwwhxgwfwggwfwwggwwvwwwwwwuwgwwxxwxxwwwwwwxwvxxxxxwwwwwhwwwwwwwxwvwwxxxwxwwwxwvwwxwwwwxvxwghfvgwxwxwxwwggvfhxgwxwgwwxwwwwwwwxxhvwxxxwgwgvxwwhwwxfgwwxwwxxxwwxwgvxxwxxwwwxxwxwvwwwwxwxgwxfwgwwxfwwwwgvwwwgwwwgvxyxwwwwxxwwxwxxxwxvgxwwwvxwxxxxwwxxwxwwwwwgxxwwwxwxxwwvwvwgwwwwvggwugvwfvwwwwwfwhwvwwwwwwwwgwwxwwvfxxwwwwwwgvgvvwvvxwvwwwwxwwwvwxwwwwvhwvgxwvgfwwwwgwwwwgvxwwwvfwwxxxwxhwxwwxwwxwwxwvwggwxwxxxwxxggxwwxgvwwxwwwxwwxuvefffxxgffwwgfwvwggwuVgfvwgwfvvvgfvWgwvfwgewvwgwgfvwvwwwfvvvwwfvvwwwvggfwwwgVggfVGvVufvfvffVfffhegfwfggwwwwgvefwwwegvfgfggVfffvwvvgewvvwwwfwwwwxwwwggwgwfvufvwwwwwwxgfwwvwwwxwvggwwwwvwgwxwvwwwwgvwwwwgwwfevggwvvvfvggfffvgfvwwvvwwwwwfwwwwwxwwwufwghwWvgwxwwvxxwxwwxwxxxwxvwxwwwxvgxvggxwvwfxxgxwvwwxwwxwgvgfwvfwvgvwgwxwvxxuVwefehWwwewgwvwUwvvvwwwgwwwxxxgwhwwwwxwgwgvxwgwvwwwgwwxxhxwwwwxfvwvgxxwvggwhwwxvgwwxwwhxgwvxwxwxwxwgwvwwwfwwgwwwwvvwxwwxgwwwwwgwwwxxwwwXgxWggwffwwwwwhxgwwxwwwwwwwvvwwxgvwwgxvwwwxwxwwgfggvgwgfxfgwgxvwgwfugvwwwwxxxxxwwwvvvwgwwwfwxgwvwvwwwwxwvwwxwxxwwxwwxuwwxxxvugfhhwxwvwwgwwxxwwgwwvwwwwwwwwwxwwwggwwgwvwgwvxgwwwWwwfvgwxwwwgwwfwvWgvxwffwfhWfgvwxwwvwvgvfwvwvwwwwwwgvfwvvwwwwwgwwwxvwwhxwvwvggwfwvfgwvgwwvuwvgvveuwwvwwxwxwxgwvwvvgwwwwgwgwvwwwwwwwwwwwwvvgwxwwwwxxwxvwwxxvvwgxgwfggvWwgvwgXwwwxwwgwwwwwwvxwwwxwwxwwwwwwxxwxwwxxgxwwwgwxxwwxwwhwfgwwxvwxvwgwvxfxvwvwwwwwvwvwfwgwggwwgwwwhvwwgxxwwhwffgwgufffwVwwwvfwuvfwvwwwxxxxwvwwgvwwxwfgwwhwwwwwwxvwwwxwxvwwxxwxxxxwwwwwwgwfhwhvwxwwwgwxxwwgwxwvgwwwvwwwwwfgwxhwwvxxwwvwwxvgxwwxwwwwwwxwwxvwwvwwgxvwwhwxxwwvvwwvgwwwwwvgggvwwwwgvwgvgvgXwwwwuggVfvvvWfwgWwxvwvwgevwwvgwwxhvwxxxgvwwwwwwwgvwhwvwwwwvwwwwwwwxvwwxxwgwxwwvxwgwxvxxxvhgwgwwgwhwxxwxxwwhxwxwwwxggwwvwwvwgwwxgxwwwwwwwxwvwxxwwxgwxfvwfxwwhvxxwxvgwxwwwwfwwwwhvwxwwwwwwxwwxwgwgfffexvgwWxwwwwgvgvvvvwwxwxxwxvwwxwvwwxvwwgwwwxwwwwvxwxxxwxxwfwwxvgfwxhvwwwgxxxxwwwwfwwgggwwVVfwGfwwfefvwVfvfvxvvwgxwgwwwwxxxefggwwWvvwwwwgffwgfVvvvvfexwggfvfgwhwwxvvwgxwhwwwvuvVgvgggfwwwVfvwgfggvfffwwwwwVfugvwwwxwgwwwwxwvwxxwwwxwwwuwwufvwwxwfwgvvxwfwwwwwxwxfVwwwwfVvfvvwwvxwwwvvwxwwwvvwwgwwwwwwwwwwwgwwwwwwgwxwwwwwvwwxxwwxwgwwwwxxwxxwwxfwwgwwwwewwwvwffwwwwvgwxxxwwwxwwwwxwxguxvgvgvwwwvwVwvvwwwfwwwfwxwxwxgwwxfwwwggwgwxwwxwwwvwwgxwhxwxxxwxwxwxwwwxwwwwwxxwwwwggwwwvwwwggwwxwwxgwwwwxwvwwxwxwwfwwwwwwgxwxxwwvwxvwwxwwwxwwgwwxwwvxxwxwghwwxwwwhwgggfvwvwvwwwwxwwwwwwgwwwwWwvxvWgxwwvgvwvfWvuvvwwwwxwwwwhwxxwvfhgwwwwwgwghgxwwwwwwwwgwwwwwxwwxwxxxxxxwwvwvvxxwwwwxwvgwggwwxwgfwgwxwwxwgwwwwwwwwxwwwxwwwwwgxvhgxxvxwwwgwxwwwwwwxwvgwxwgvwwxwwwwgxgvwwwxwwwwwwgvwvgwfwxwxwwxwwwgwvgvwwxxgwwwwwwwvgwwwgwxxxwwwgwhwwwwwwwgghwhwwwwwwwwwwvwxwxxxxwxxxxwwwwwwwwwwxwwwgwxwwwwvxxxwwwwwwxgwvwxvvvfwwgvfvxWfgwwwwxxwgvxwwwvwxgwwxwfhwwwwwwfwwwVvgwwgwxwwwwgvwvwwwwghwhwgfwwwxxvhvwhwvhvwvwwwwfuwfeffhgwgvwfwvwwVfuuwfvwwwwwwwwghwxwwwgvwwwwwwgggwvwwwvvxwwwvgwvwwwxwgwwwxwwvwwvwxxVwwwwwgggVwhwwhgvgwwwwwwggxwxwwwwwwwwwxwwwxwwwxwfwxwwwxwwxwwwwxwxwwwwgwwxwhwhwxwxxwwwwwwwwwwfvwwvwwgwgwwfwxwxwwwwwwwwwvgwhgwgwwwwwwgwxwvwgwwwxwwwxwwwwwwwwwwwvwwxwwwwwwgvwwxwwwwwwxwxwwwgvwwwwwwxwwwwvwxxxxwwwwxxhwwwwwwvvwvvwxvgwwvwfgwwvwxwwgwwxgwxxgwwwggwgxxwwwwxgfwwwwggwwxvwvhwwwxggvgxwwgvwwwxxxwwWuwggwggwgwwwegxWvfvvxwWwwgwvveWvwvwxwwwvxwgwgvgwxwwwxwxxxwvgvhwwwvwxwwvwvwwwwwxwwwwxxwwvvvvxwvvwwwxgfgwvxxwgwwvgwhwwwxhwfxxwwhgwggxvwwfvgwwvwwwwwfwwxxvwwwwxxvgwwwvwxwwxgvxvvfvfxwgxxwwwwvxwwwwfwwwwxwwxwwxxxfwwwvwwwvwwhvxwvgvghwwvgwwwxgwwwvwggwwxwxwwwwwwwwgwwxwxwwwwxwxxwxwwxwwwgxvfwxxwxwwwwwwwwwgvgxwxwwghhwwwwwwwwwxwhhhwwwxwufxwufwwwggfwgggwwvxwWvxwwfgxwxwwxWvwwwfgwwxwwwfxwgfvggwfxgxwwwwwwwwxwggxxwwgvwwwwwxvwgvwwwWwhwgwwVxgffvfvghfwgfgwvVfwvvxwwwwvwwgvggwwwxwgvwwwwwgwgwxwwwwwxxwwgvuwwwwwwxwwwxwwfxwwwuwvxwwxwvvgwwwwgvvwgwxwxxxwwwwxvgufvWgfwwwwwffvfvgvwewfvgvvewfgfgfgwwvfvfdeUgUvwfffuwxwvvvfvvgefegvvgvfWffvvwffVwgvvEfVeVVfVefVffvfvfvggwgvwvffvwwWwfeUgwfgeuvfeVtggfffffUeewgvvwvxwxwfgefffvVeeffgVugfffvwhwfvfewwVwfvfvwggwggfvwfffxfewgwggfffwfwgfvwgffVfffgeffgffUVwgvwgvwvgwfwgwgvgvWffwwwfwffwxwxvvwxhvwwwwxvxwxguwwvvvgwwwexxwxwvfwvwvVvxwwwwvxxwxwxwvgvwwvwwgxgvvwgwwXvwgwvgfvggvguggewgwewvfwxwwvwwgwvwxwwwwxwgwwwwwxgwwwwwggwvwwxwwgwgwfwwxwhgwxgwwgwxwgxwwgvwfgfvgwxgwvwwggwgwvhwwwvxwvwwgwxghvwWxwWwwvwhgwwxvuwwfwxwfvxwxwwwwwxgwfwwvgvuwwwwxwwwghfvwwwwwxwwwwvwwwwwxwwwwwwwwwwwwvwwwxwwfwwfvgffwvwggxvuwwvwfvggxwwwxwxwwxwwwggwwgvwwwwwwvwvwwxvwvwwwxwwgxgxwwwwwhvwxwwvxxwwwgWwgvxxwghwwwwwwwwwxwvvwgxwgwwwwvhwwgwxvwgwggvwvvvxwgghxwgwwwwwxwvgvwgxxwwwgwhxwwfwxvfgvxfvfwwwwwwvwxwfwwwgvwwggwgvwwwwgwgwugvxwwvwwvggfffgvwwvWfewwwvwwvwVuwwgwwwxwwwwggwwwwvwwggwgvwvwwxfwffwwvwwwwxgwggvxwwvwwffwwwwgvwfggwvvgxwwwxwwwwwgwgUwxwwwwwxxvxwxvwwvwwwwgfwwhwvwwwxwvxwxwxhxwwwxwxgwxxwxgwggxvvxxwwwhwfvwwwxwvwwwwwwwxwhwwxxxwwwwwwvhghgvgfhuwvwwwwfwvgwwwwwwwxwgfwwxwwwwwvwwwxwwwxwxxwxwwxwvwwxhwvwxwwggwvgwwxxxwxwwxwwwxwvwwxwwwfVgfwWxwwgwfvvgwggvgfxwwwxvwhvvwvwwwxwwwwvvvvwgwvfwvxvwwxwwwwggwffwwwwxwxwwwvwwwwwwvwwwwvwwvvxvuwwwwwgvffggvvvvgfvxwgWuvvwwvwwwfgwwwwgwxxxwxwgwwgggwxwwvwwwwvwxxggwwwxggwwwxwgxwwwwwwxgwxvwguvgwfvwwwwvgwgwwgwwwfgvvxwwgwwgvwgwvwgwfgwwwfggwwfwvwwhwxvwwewvwwxgwwvvegvwwhwwfwvwxvwvxgwwggvwfvwwwwvwwwxxgwfwwwwwxwxwwwwxfwfxxxwwgvgfweewgfwwwggvvwxvvwvvwhvwwwxxxwwxgwgwfwxwwxwxxvvxwvwvvwwwgwwwxhwwxxvvxxvvhwwwvwvwgvwwxxvwgwwwwwwwwfwwwwvwwwgwvvVfvtvgvwwwgwgffVvwxxwwgwvvwwwvwggefxwxwwxwgwfwgwgwwvwvgffVfxwwxwwwwvgwwvwxxgufvwvwwfwwwwwwwvgfgfevgwgwewvxxwwwwwxwwggwxwxwwwwwwwVgfxwwfwwwxwwwwhwwwwggfgfexwwwxxxwwxwwxwwxwwwwwxwxgwvxhwwwwwwxfwwwwxwwxwvwwfxwxwwwwxwxvwwggwwwxwwwxwhvwxgwwvfveggfgvvwxwwwvgxwwvghwgvghxgfgEfuvWefuuffeVgvxxxwxwxxvgwvxwwwegXeguuvfhwwhwwxxwxxwwfwgvxvvwfxwwxwwxwwwwwhwxxgwwfffgwfVvuffhwwxwwxwvhwwwxxwwfwgvhvwvvxhxwwgggwwwxwwwwwgxggwwgwhvwwgwwwwwwxxwfgvWwvvgwvvgwwxwhwgwfvvfeXfgvvvxxwwwwgvxvhvwvgwwffgggfgfWvtufgfvfevefgwwvxwwwwvwwwwwwfgeXfgfvfVgvwfvgwwwwwwwvgvhfhvvgwwvvvxwgvfwfwwwwxxxxgvfghWfWfvfgwwvvwxwwxxwwxwwwxwwvwxgwgwgxvwwxwwwwwvgwvwwfwgwwwvxxwxwxwwwvwvwvgwwwwwgvwwxwwfvffxfgfffxwxwwvxwwwwwwwwwwgwfffgvVwfVvvwgfwfwwxxwxxxwwwwwwvwxwggfhvgvwwfXvfwvvvxwwwwvxxwhfxwwwwwgwwxwvwwwxwxwwgwxxwxwwwwgfvvffwggvgggwwwwfWvwfVgvfvvvVffvwFefvwwvggvvwhewwgvvwwwwvwfguvwVugfwhwvgfvwxgwwwgvwVTfvwgwfwffvwwwwggwvvwwewfgvvwvvvvfvxeWVvffvwffvfvXeWefhvgEeevwvvwgvffwvwxwwwvvgwggwwxgwxwwwwwgfggvgvvvgvwwvwwggwwgfwwwwwWVvffvgVugwxvgfwfvXVVfvgfxwwgfwwggwwfgefWvfvvwwxvwxwwxwwwwwwxvwwwxvxwwwwwwxxwwwvwwwwwwwvvwwwxfwvvvgvvwwwwwwwwwxwwwxwfwvVvwfeVvwffwvfwvxxxwwxwwxwxgxwvwwvfvwffwvwwvxwwxxxxwxwvwwwwwwxwwwwxxxwxwxwwwxhwwffwvwvgvggggwwwwwwWggxWgvwvvggWffvxVvefxwwwwvguwwvgwxwxwwwwufvfgwwwwwwfvvxwgwghvwUffgwwwwwwvxwwggvvwvvfvggwvwvfwwvWuwfgvwwffgvWffwfgwgdVvwwwvgvwvgvvgxwwfxvxxwwwxwgwxwwwwxgvgggvvwvwxwvwxwxgvwhgxwwwWugfffwwfvwhwvwwwxvvgVfwggwwgwwxwgwfxgfeWfwvwxwvgvhhvgwvggffvwxgfvwwgxwgxvxwgwwhwgwwwwwwxxgwvvwvwxxxvxggvvwwwwwxvwwwhwgwwwwwwwxgwgwwfwwwwwhvwwwvggggwwwWvwwxwwwvvfwxwwwxxwwxwxxwwwwwwwxwwxxwwxwxfwwwwwwwgwfwwhgwvwwhxxxwwwgwwwwwxxwxUgxgUgwgfggvvgvwwVfwvewwwwwwuwvgvgvwhwuwwuwfgvgvwgwvfgvwvwwgxwwwfewvVgvfxwfwwwggwvvwfvvwwwwvwvwwfvvwwwwvwwffgvwfVvhgfwwVfwvewwvvwgfgwgwwfwvvwxgvxwwgwwwxfwwvwgvfwvwvxwwwwwxgxwwwxwwvwgvfwvwwfvxwwwwwxvwfevhgvfwwwhvwwwggwwfvvgfvwfwwwwwwwwwxwwxwhgxxvwwxvxxxwwgwwxwwxxwwwvwwxvwwxgxwhwgwwwwwxwwxwfxwwgwgwhvwgwxgwwwwwxwwwwgwgufwggwwVwwwwwwwxvvwvgxwwwwxwxwwgfgwwwvwvgxwwvwxvvwwwxwwwwxwwxwwwwxxxgvwwwwwwwwgwwhvwwwwggwwwxwwwwwwxwvvgwwwwwwwxwgwxwggvgWxwgwwvgwxfxwgvwgwwvfwvwwvXfwwwvwwwwwggwwwvwwwvgwwhwghgvgvwgwwwvhvgwwwwhfwwwwxwwwwggwvggggwvWwwwwwwwwuvwgwvwwhwxwxwwwvwvwvwfxwvgxfggfhwgvwwwwwwwgvvwwwxxwwvgxxwwggwwwwgwwvgwhgwfwwwwwwgwxwwwwwwwwwwvwwfwwwgvgwwwwxwwxwwwwxWvwgwwvwvwhwvvvwgxwwvwwwvegvgwwxgwwwwwhwvwwwvvwvvxhwwvwggwgfgwgvfxwwgwxwxwwvgwwvvwvwvwwwvwwwwwgwfwvwwgwwvwwxxwwwvvgwveggggvwhgvvwhwvvwwwxxwwwwwggwvxwvwhwxxvwwgwwgwwwwwxggvwxwvghwvwwwwwwwwvvvxvvwwwvewwvgVvvwvwwwwgfhwgwwwwxwwwwgxwgwwwwwgvwgfggvvVvwwggguvwwwwwwwwwwwwwwxxgwgwwwhwwwvgfvgwxwwgwxwfwfefvhfwgWvvfvwvwfwwxwwxwwwxwwxwxwwwwwwwwwgvwwxwwxvwgwwvwxwvwvwwfwwwwvwwhwgwwgwwwwwffgwhgwgwgfwxwwwgggwwwvxwwgwwwwxxvxwwwwwgwxwvwwwwwwwxgwvwxwwwwwwxwvwhwxhwxwwxvwwwwwwwwfwvgvwgvwggwwfwxxwwwwxxwwwwwvwwvwvwgwgwwwwwwxwwvvwwgwwxvxwwxwwwwxwxwwgwgwwwvwwwwwxwwwxwwgwwhwwwvwwwwxwxwhwgwvwwwwvxwwwwwwxxwwwwxwwwwwwvvxwgvwwwgfwvxvwwxwgwxxwxxgwwwwwwwxwxgwwgfxwwfwwwwwwvhwwxwwxwwgxwxfvgwxwwxwxgvgVwvvxxwgugwwxwwwvgwwwwwwwwwxxxxxxwwwxwxxwxwxwxwwvxxxwwvwwwwwxwwvgwwwwxvgwwwwwvwwvxwxwwgwwwwvwwxwhwxggwggwxgwfwxwwgwxwwxxgwvxxwxhgwwwwwwwxvgfvfwxwggwwwwxwwwvxwxwxxwxwxvwwxwwwxxxwwvvgwxgggwwxwwgwwwwwwxxxwxwxgwwxwxxxxwwwwxxwwxwxwxwwwxxwxxwwwhvwxvxxwvwhxwwwwwhhxwxwxwxxwxweuwweewwwvfvwwwgfxgwwvwxvUwgwwwwwgvwhwUwwgvwwwwgvfgwggfwfgwwvwvxgwwwxwgwxwxwwwwgwxwfwwvxfwgxwwfxwvggvvfvwvwwggwwwxwwwwxwvwwwxwwwwwxwxwxwwwgwwwvwwwwvxgvvwwxwfwwwwwwwvwwwwvxwgvvxxxxwwwvvwgvwwvwwwwvwwwwwwwvwwxwwwwwwwwwwwwwxxwxwwwxxgwwxwwvwwwwwwgvgxwwfwwwwxwwwggwwxwfwwwwxvvfWeVfgfVffvxwxwxxgwwwwwwwwwggwwwgffffvwwvvguuvgxwwxwwxwwwwwwxwwwvwvfgggvwwwwggfggwwxwwwwxxwwwwxwwwwwwwwxwwwwwwwfffgvwxxwwgwfvwxwwwwwwvvvfwwwwxgvwxwwhvwwwwwwwwxwwvgvwwwvwwfwxvvwxWgwgfvwwgvwwwwwwwvxgfvwwfwgwWwwwwwwwwfwfgwfvgVvgvwwwWewvvgggffwwvvvfgwwwwfwgwxfwwvvfwwwvwwwxxwvwVgwxwgwvwwwwwwwwwwwwwwwfwffwvwwwwwwwxfwggvwxwvwwwxxxwxvvwggffwvhwwxxxxwwwwwwwwwwwvxwwvwwwxxwwwgwwwwvxxwwwwgwwwvvxwgvxgwwxxvwxvvwwwhwvwwwwwxggxwvwvfxwwxhgwwwxvwwwwvxgwwwxxwfwwwvwgwgwwwwwvwwwwwwvxxhwwwwwwwxwwwvwwvvxwxvwxxxwwwxwwxxwwwwxxvwxwwxwwwwwwxxxwxxxwwwvwxwwgvwgwxwwwwxxwvwwgfwwwwwwhwwgvwwvvgxwwfwgfgvWewwwwfffwgVuwxwwwwwwxxxgwwgvwwghwwwwwfwwxxwwvwwvgggVvwvwwvxvvggwVvwwgwxwwwwwwwhwwwfwwvvgwvgvwwwwwwgwwwwwwwvgfgvwxgwVvwxvgwwxvgwwvwwwwvhfhgwwVvwwwwwwwwgwgfvwwwvwwxwwwwwwxgwvxwwwfvwgwwwwxvxwxwwwwwxwwxxwvgwwwwwwwvfxxwwwwwwwxxxgxwwwwwwxxwxgwwwwwxgvggwfvxwwwwgvgwxgwwwwwwxvgxwwgwwvgxwwwwwwvwwwwxwwwxwwwwwwxwxxwvxgwwxgwwwwwwwwwwwwwwwxgwvwwwwwwwwwwvwwxwxwwwwwwwwwgvwwvwwwwwwwfwwwwwwwvwgwwwwgwxxwwwxwgwwgwvxwwwwxwwwwxgwvwxwxxwwxwgvvwwxxxwwxvgwhgfwwggwvguwvxwgwwfggfgegwwfxxuwvwwwgWwgwfwvwgwwwwfvvwwgwwfgwwxwwwwgwggwxwwvvuvwvxwwwvwwgvwwwwgwggwgggefwwwwxxwgwvwwwwwwwxwwgwxwxxvwwwwfwvwgwgwxhwwwwvgvwxwwwvgwvwwvxxwxwxwwvwwxwwwhwgwxwgwwwxvgvgwwxxvxwgwwxxwwwwwxwwwwwgwwvgxxwxxwxwwwxgwwwvwfwfwvxwxgvwwwwwwwwwwwwwwxwxwwwwwwwwwxwgvwwxwwxwxwxwwwwwxgwwwwwxwwxxgxwgwxwxwwxwwwwxwwwwwwxwwxwwvvwwwvvwwggwxwwwfxxxwxwxwwxwgwgvxwvwwwwwwxxxxwwxxwwwwvwwwxxgwxwwwxxwxwxwxwwwxxxwwwwwwwxwwwxxwwggfxwxggvVevfugegfgvvgggfhfvgwwgwwwwwvvwfUewfvgegfgvufwgffVwgEVvvwvgfuvwveuvfufggggVUgeeffvvfffgguufvEtwVgTgUWvefgvgVfgvFWfvvwfguvvwWueguvWfveevfvvfffgguvwwwfvwwfgfwwwwvwwwgvwwwwgwggvgVfgwVVfwvwvgvvwwfvefvfVfwwvvgvweuffvwvwwxwwwvvgvwwwvfvwwwvvfhwwgfWeugvvegfgvufwvfhfvfwwwwwwwvwvvgVfugvfegfWvvvvwvfVvgVVFgvuwffvuwvvvevvuggfvUWVgufvvfffggvvegFutWvudWeXeufvvwVffvgVVvwvvwfvfvwfufvvvVfVfefvvfffggvuewwwhvvwgfgvwwwwwwwwvwvwwvgwvvgVffvgVGfwwvgvvuvweuuvveVfxvgwfwwWvefwvvvwwxvwgwvvwwwwgvvvwWffgfwgwguuEfVVgUhefgfgghfvgvwwwgwwwwfwfvvVwgWgehffwVvefVfgwffVvvfvwvgffgefffwfVVffWevffwgwgfvwvfguuvEfvVVgeheUgVvffeVvgfvfvwfwvvwvwwevvfwgVfuffgvwfffvfUgxwwewgwghwgwwwwgwfwwwwwwggvgefvwVvVgwgwwevfggTvuefVVwvxwgwvwfgfwwwvfwwggwvwwwvwwwvwvvwgwvwftvfvVfwggwvwvwggwwwwgxgxwgwvfwfwwwwgvxwwwwvwwxgwgvwxwvwvxwvwwggwvvwwwgwxvweeUfVfgfvfvffwwuvwwgwhgwwvwvfwxvwwvvwwvvfxwgwxwuwgvggwwwfwwwwwwwxxwxxwxxwfwvwgwgfgwwxgwwvwwwvvvgwvwvwwwwwwgwgwwwwwwwxxwwxwxwggffwwvwfgewhfwUfgwfVfvfvfvgwwwwvwwwwfveWTfXevUVfvfffwWefufffVfvfvgwffggfVvvgffUfvVueffffvgfvvgvUuugTfhevUvVfvUfwvgVffwfgUwvvvwfVvvggEugVfeufffwwvgffwwvfxwVwwwwfxwvwvwwxvwfwwwwwgvfWVevffgfvwwfwwfwgwgVvwgffwwwwwwgfvfgwvgfwwvwwvwwwgwvvwgxwvwwwwgvGgvvfwwvhwvwwwwwgwwgvwhwhwhvffgewwfwgwgwvgwgwwwvgwgxggvxwxhxwwggwgvvwwuwhwgxwgeUfefvffgVgvfvvgwwwgvgvfwgwvwfgwwwhwwxvwwvwwwwxgxwxggwwgwwwwwwhwwwwxwxwgxwwwufwvwgwgxvwwgwwgwvgxvxwwgwwwgwwvwwwwwwwwwxwwwxwxwgwfwvwWwwwgwwwgwwwwvwwvvfxwwvwxhwwwvfvwwffgwwgvwwgxwwxwggxhwwwwgwwwxwvvwggwwgxvwwxwwvgWfwfwvfwfgvfggwfgvwwfgVgwgwxwvvvgwwvvgxwxxwvwxwwwvgxwwwxwwwwwwxwxxxwgwwvgggwxwwwwgvwvgwfgxgwgwgxwxwwxwwwwxwwxxwvxwwwggvgwgwWwwffwvgfgwwwfwwvvgxwwxxgxwwwgwwwwgwwwwwvwhwwwvgwgwwxgwwwwgxwggwwwwwwwxxgwufvgvffgvwgggvwwgwwvggvwgwwvxwxwwwgvvvwwvwwwxgwvvwxwxgwwwxwvwwwwxwvwfvvgwvWfvwgxwvvwgwvwwvfhwfwhwwwxgwxwxwwgxwwwxwwwxxwwxvxxvxwxxvwvwwgwwxwggvxwwVvfwfwfwwgfwwguffwwwfwxvwwvgGeVVUfvVvvwwwwwgVVvgvvggfgfhfgwggvgfwwwvwwwvwwfwwwwxwfvwwWvggfwwfwwwwwwgwfwwwwwgwgwgwfhgvwwwgwwwhwxwfgvwwwwwgwwwwhwwwwwxWwwgfgggwwwxwvwgggwgwvwwgwwvxxvggevfwVgwgwwwwxwwwewfwvfwfvfwvfvwwuvwhvwfwwwwgwvwwvwxwwwxwxgfuwgfwfwwvwwfgVvggwwvwxfxwvwwwwffVwVfugwwgfwewgTvwfwWewVvufwwwffFegwfxwwevwwdgvwefvwVfewwwgffwvwxvUvhfVfwxvwwwwvwfwvwxwwxfvfuWwgwwxfwwwUwvwuwwgvhwwxXfffvhvwwvwwxwxwwgfwxwgvfwwxWfwwvfvwwfhwwvwwxggxwwwwwwwghwxwguvwvVwggwvvgwvwggvvhwwwwxwxhgwwwvwwxXgffwfewgxgvggxvwVuuwvvVWgfgffwwguvvvgwxwwwwwwWgwvgfwxxvwvwwggggxvwxvxgvvwwwwxxxyxxgxxvwvxwxghwvvuWwhxwxwxggxvvwvgwxwwwvvvvxWwwwxwhwwWgwwvvgghuvvwwfgwgwgvgwwwwgvvgwwwwwgwwxggwxwvgvwwgwwwvfgvugwwwwhwwuWvwwvxvvvhffvwwgvwvhwgewuwwfvWugvvgwggwggvgxgwxxxugwwgvhvVvfghvgvghwwvgwevgvgxwxwxwwvgwwwwwwvwwfvWwtWwwwxhwwuXwvwgvgvevwvxxgfwgxgWwwxwgwhxwhWwwwfvwvhgvgwggvxxwvwgwwwwvfxwvvwxwwwfwggvwhvVwfwvwxwwffgvwgwwwgxwwxVwwvwvvwgvUhfgvwwwvffwwwfguwgvvfwUgvuvwwhgvguwhgwwfwvvVxuwvefwffvwwwffxvvgWfvfhfvxwgvgvfgfwvwwwwwwffWuvGwwfxwuwUwwugffwexwwwxwfffhfwGwwwwwwxwwWwwwwWwwwughvfxxufgwwvvgggwwwwwwghvgwvwxxwxxhxwxvvuwgwhggwwwwggvvggwvgxwhgwwvwxvffgVvufwvwggggwguftvgUfGWfuvuwwwffvvexfvwwxgxggWwvvvwxfgwvxwwggghwvxxhvvuvvhWvxgxwwwhwwfwvwwwwxvvfvuwWwwxgvhXvfwvuhgwwxwhwvhfvwWwvvwwwwhwxggwwvfwvxfggwwVvgwvgfwgwwwvhwgwwwwxgwgwfxwvgvgvwwgwvgfwwVwwgwwvxxwguvwvwvxwwvgvfgVwgxvfvguxvfwfwwwugufvwfwwgwVwVxwgwwwwxwwgwgwxwfwwwwwwggwwxxgfxwxwwxwwxxwwwxxwxwgwfwVwwWxwvxguwwwvhvwxwwwgxvvxwgwwwwxxwwgxvxgwfwvggGfffwvfvwwffegwwwVfgfvwwewgwwgfxwfVfUggffefgfvfggwvwgeuxwXvgfffewwwwffVvfgefgfuwfvgfgwwfVdUfefUeeVfeufffvwgduwwWwvVfwwVfwwwevfwwvwgfvwwwffwwwWgwfwwgwfwfvggwvwxwvgvxwwwggwvwgfgwggwwfvwwweexwegegggvvvgwgwwwwwgwgwwwwwvxvwwwwwwwwgvWvgwXgfghwgxxwggvWwvvwvUwvfwvgfvwvggWfvhwwwgggvWwwVffwvfwfegfffvwvfwwgwgvwWvVUuueVuvgggewgffghUfxfwxwgvgVefwwfwwwwgfevwvwwvwwwwvwwwggvuVewgwuVvfgffwwxwfxfwfgwxwvwfwvgwgwgvgwwgwwwvWffvxwwwwwwgwgwwwgwfwwwgwwwgwfwvwfffwfwgwfwvwfwfxwvwwwwwwwwwwwghwwwwwwwxwxxwwwwwwwgwxwxgwwwwwxgwwwvxwwwggfwvvgvfwwvwgwwWwwWgvWfwfwvfwwwwgwwwwwwuxwwvxxewvwxwvvgvfwgwgwwwwvgvxhwwfwvwwwvwwwwwwwvwwwhwwVwwwwWvwwwgwwwvwwwwhvwwxxwwxwwxxwvwgxwvvwwvwwwgwxxwwwgwxwxhxwhxwwwhwwwwwgwxvwwwwvxxxwhwwwwwwxxvwwxwxwvwwggxhvwwggwwwwwvwvvvufvgWgfgwwxvxwwgghxvwwgxvwwxxwwhgvwxxwwvwgwwwxxxwxwxwgfwxwwwwhwvwvwwwwgxgwwwgxwwfwxwwwxwxwvwwxxwwhwwwxwwgwwwwxhwwwwgwggxxvxwwggvvgwugvwgxwwgwwwwwxxwwwwxvhfvvwgggwugwwwwhwwwwvgfwewfxhwggvgwwvwfwwwgwwwwvwwwfwfvgvgfvfwwwgwwwgwxvgwwwwvggvfxwhvuwfwevwvggvwwvwvgwvwxwxgwwgwwgvwwvwwwgvwgwewgwgwvhwwwwuWguvvvxvvgwwwgggwhwxxwwgwWwxwgwwhhvwvwvwxewvwgwwwgwwhvfwwvwgwhwwwfwxwwwvxvxvwgwwhwvvwwvguvvwwwwfwwwhvfhugvwwhxwvvfwWvgWvgwfgvwvwwgwwfgvwfwfgvfvvvwgugwfwwwUwwgvvwfxfwwwxvwvwgwwwgwvwwwwwvwgvwwfwfwwxwwvwwwwwwwxwgvwwwgwfwwvwfwvfvugxfggxxxxwgwggwwwwgvfxgwwwwWvwwxhwwgxggwwwxwwxwwwhxwvwwhwwwhwxhwwgxwxwvwwwgxhwwwwwvxwwwxwwgwwvxxwwwxgwwwwwgvgwxwgwgwwgwwfwvefwgWfvwwgwwvwwwwhwggvwhvwwwxwvgwxvvwggwwwwwxxwxxwxwwwhwwxwgvwwxxwvwwwwhhxwwghwvxwvxxxwxwxxwwxxwwxxwwwgwxwwwxgvwwvwwxvwxwwxwvwxwwwwgwwwwxwwvwwwwxwwwwxwxhvhwwxwwwwwwwgwwwwxvwvwwggwvwgvwwgwwwwwwwwwwwhxhwwhwwvwwvgwwwwwxxwxxxwwxxwxwwxxwwwwwwxwhhhwwxxwwxwwxwxwwwwwwxwwxwwxxfWvggdfwuvfwgfvvwgfwwwVggvgwXwwWwfwwwwvewvggvgwffwwwuwxevwwxffwxffxwwxwVWfwgvWvwgvgwwweefVWeVffUfgfvvwefwwwwwxevwwwxUgfwwxwfwwhvwWgvwwgvwwwwvwxgwwfwwwwwwwwwuwwfvvwwwxUvwwxVgvwvwwxwwxwwwwwwwwwxwwwxxxxwxwgwwxwgxwwwwxwxxxwvgewwxwwxwwwwwwwxwwwwwwggwxwwgwvfugwwwwxxwwwwwwgWVfveeuvwvwWvgvwwgfvvwgggVgvvwwwxxwvvefwwwwgwwwggwgvvgwwgfvgwvgfgwvxwxvfufgwgfwwxwwxfwwvvgwwwwxwwgfwgwwwwwwwwwggvugvugvwvwwwwvwgggwvvwvwvwxwxwhwwvwwwwwxwwwxxvxwwwwxxgwxxxwwxxxwwgwwwwgwwxwgwxxxfgwgwgfwffwwwvvwvvvgvwfWfgvvewxxxgwfgxvwwwwwgvhwvwvvwxguvfwgwfgvgwffwvhwxwgwwwwxwvvvwwgwwxggwvxwwxxvvvwxvvgwwxwwxxxgwwwwwxxxwwxhvwwgwwgwwxwwwwxxwgxwwwwwhwwvxxwwxxxvwxgwvwvwwwwwwwxxvxwxwfwvgvggvvgvwgwfwwgxgvfwwxVwvfwxwwwfgwwwwwxwxwgwfwwgwWvgvwwggvwwxwwvwwxgxwxwwxwwwwfwvwxwvvxwgxxwvwxgvgwwgwgxwxwwgwwxxwwxxwwvhgfvufvfWvwxvwgfwwwvwxwvvwvxwgwwgvxxwgwwwxfwfwvxxwwvwwxxwwwwwwwwfvwxfvgwfwvvwvvgxgwwvwWuvWevwUeVffvwwwwuvwwwwwWwfwwxuwvwvwwvwwwfwffgfwwwxwwvwvvfwwxffgvwgwwvwwwwwwwwevwwwwWvwwwwwwVvuvvwgxwwwwwhhwwxxwxwwhwwwwhgwwwwxgwggggwxwwfxwgwgwgVwxxwwwfwwwwwwvwwwfwwwgwwwvwgwguvgwwwwwwwxwwhwfvgWfvvuehVewgvvvffxfvgwfwwvvwffwfvwwwwggwfevwwwxwwwwwwevwgXfwhwwvwfvwvwxxxfWvwgfvwvwvwvwgwfwfwwwwwvfvwggwgwwwwwwvwwevwwgxwwwxwwwwgwwfxwvwxwwxwgwxwggWfVgwVfffgvwguwwfwffxwvgwwggvwwggxhwgwgWvwgvwgfgfggwvgfvvvwvwfvgwwwwvgvwhwvfvfgfWfuVfevwfgfwfFfwGevwUVUVugvgvgdfwwvfvFgvgggvgUguwvwvvwfgwgfwgfgwwvwwvgwWfewvxvheVvgvwwfgvwvwwvwwvwwfvwwxwwWfvwxwwwVgvgwvwgwvwwwwwwvvgwwwwwwwfvgwwwwwwgwfxwwwuWewgvfgvfwggwwggfgwwvgvWwwfgwwvwwWwwwvfwvfwvVgffvwuvwwgvwwvwvvwwgwgwgguwwvuwwVffgvVgvfgfwvffggwfggewvVffguvvgwfgwvggwgwegvgwwwggvwwwwvgwwwwgvgwwwwgwwgwxvgwwhxggwvwvwwgwgwwgfwvwwgwuxwwxwvgwwwwwgfuvvvxwwwxwhwxuwwwwwwgwvwvwwwwwhXwwwwWwfwgfwfggwgvxwwggfxgweggvwwwwwghggxxgwwwxwwggvgwwwwwwwwhwxwwxwgvwxfgfwwwwvxwggwwwwwwgvwgvggffguhvgwgwvwwwxggwwwfwwwffxgxvwvvwgxfvgwwwwwgwwxhwwwgxxxwwwwvwwgwwwgwxwwwvwvwxwgwwxwwgfwxwwxxwwwhxwwxwwxwwwggvwwhxvwwxxxeffxgwvwwwgwxvwXvgfvwfwvgvgwwwvwgxvvwwwvwGVVuVewgfgVffuwwvggwWvgvwwgvfhfffwwfgwgxwgwvwwwvwwxwwwgvwgfVggwwxwwvfwvwwwgwwgvwwwgwwfwvfwvwvwfwwwgwgwwgvwvwxgwwxwwxwwwWgggvwwgwggwvwwvwwwwwwwvwwwvgvwgfwVgVvxwvwvwewfwwfwwwwgwwfgwwfvgwfWvggvfwvggfvwwvgwwwxwxxwxwugwggvgwwwwVwwfvwgwvwfwxgwxgwgwxwffewVVvfgvwfxwwvwdguWVvvVwgwefvewgfwwXvwwUwfwuwwwvwvwxvxVVvggugfwwwvxuffhwXwfxgwwwxgxvwwwwvEggfvwgfwxFvVgefvwwvwwwfevvgwgwhgfxxhwwgwfxwwhvwwxwxvwggXfgwgvuvvvwgxxgwgfwxxggvwwwwgwvvvwwhgwxxwwWgxgfxwggwhhgwhwwwvvwxxhfgfwfgvvggwwvWvvdeufgFwWVuvggVwvvwWwghXxhwuvwwwvvghgeuvwvvfggwwwhggvuWghgxwxwvwhwvfwwwggWwffwwfvhgWwhgvwwwvwwvwxgvWwwwgfhwwvwwggwhxwwwwwwwwhgwvhfvwgvhwfgwvvWhwvwwxwwvvgxvwwwwvgwvwwvwhwwvggfvwwgwwvWhwfwwwvwwwxgvuXfgvvhvvgwwwwfgweWwuvgvgvufwuWgfvwgGwwuWhffwwuwwuwguffwfgxvvgwwwwvfgXexgfhvvgwwwwxfwfwfwwvvWgwvwgxvvXggufwwwwwghffvwwGwwffhvwxwwwwwWwwWwwewwxwwwwvweWgwvwvgvgwxfwxvvvghgwghvwwwxwxwgwgfvgvxgwxvggVwvgwwwgwwUgxvwwwwwwggwfhevghvfgvwvwWvguvWvwVwggugwEgfwwwwWwwUfxewwxwvwwgwffgvgwvwwwwXvgvhxwwhwwfwwxvwxvwwwwwvfvgwwvwhwvewxewwxuwgxVfgwvvWwhwhwwxxvwwvWwxhgvwwxhwghufwvvwufwvvWwgxwvvvwxwwwwwvvwwwwvfvfwgwhgxwwwwggfggwwgggxwwwwwwwgwxevfggwwvxvggwwwwewuegvvWWggffvgWwwvvxWghwxvvwxwvvwgxfgvwvfwvxvfwwwvwwxwhxxwxywvxxwxvggvuvwwxgwWgwwgvwwwvwwxxwvvvwWgxvwxwxwgWwgvxwxwwwvvwfgwvgwfvwfxgwwwwgvggwwwwfwwWvxgfgwwgwwvgwWffwvwwwgwWvhwgwvxwgvxwvwgfvwwwfwgvwwwfvwfuvfwWvwwgfxWvwfwwwWwXvhgwxwwwuxhfvvevweggfwxxfxxfxwxwwxgwxxwwvwxgwWfwewwxwgwWvgwvvwxwwxwwvxxwgwhgwxwxwwwwwgxvwgxwfVvfGgffffUfgfWfVgffgfvggvwwgegvwwgwxwgfgwfegffwwwwwfeewwgwwwXfVffgfggvwwwxvVfvvwwwfffwwfwgwfFUffUVUVefVVvffgwwgwgvwgVVfgUvfwwwxwwwvvfuffefggvwvwwwwwgwVggfwwwvvvxfgfvwwgwwwfdevwgfvwwWefefegfwgwwwwxwwxwwgwgvwgfwwwgvwwwwwwwwwwwgvwgvwwxgxwxwxvxwwxwwwhgwwxwhwwvxwwXvgggwxwgwwxvwwxhfwwgxvwwgxxwwxwwwwwvwwhgxvwgwwxwwwwwxwwxwwxwwxwwxwwxxwwwwxwxwwxwxwxwxxwgwgwwwghvwxfxwxwwwwxgvvwwwwgghxgwwwwhwwxwxwwwxxwvwvxgxxvvvwxxwxxxwgwxwxxfwxevwxwxwxgwwxvfwwwvwwxxxwwwwvwxwgwwvwwxvvwvhhhxvhwwxwwwxwvwwwgwwxwxhwxwwxxwxwxwxxwwwwxvwwwwhxwxwxwwwwvvwhhwwhwxxwgwwxxxgxwwxwgxxxxxgwgwgxxxgwwwxwxvwwwhvwVgwfxwxvxwxwxwwxxxwwwxwwxwxwwxxxwwxwwwwwwwgwwwwxxxgwwwwwhvwwwhwhwwwwwxxxwxwxxwwwwvgwwwxwxwwxwwwxwxwwhwwgxxvwxwxxwvvwwxwwxxhfffwfeuffuwgewWvwfgvwwefvwvwgfgwvwvwwwwfefVVvfvwvwwVvwufgfvwwWvwvfgwwfvfwfwwwVUefVfvfewWegefvvvTSfFFUUffTeefvFvwefVffwwWvwTevvwfffvweegwwFVUVUffevvwfwwefftwWUuwwWefefgvgevfvwgvwww5effUUffffFffTfVfgvwfvwfwxwefVffwwgUvwxgffwhffgwgUfwwgvwfwwxgxxxxxvwwwxhxxhwxwwxxxhwxwwvwWvgfhvwvwwvwwxwxwwwwxwgxxgwwwvgwxwwwwxwwwxwgwwwwxwwxwwwwwxwwwxxwwwwwxxxwxwwwwwxwxxwhwwxwxxxxwvwwxwwxhxgwvwhwhwxwxwgwhwxxvxwxxwxhefgxfeWfefffvvWgwVvxfffwvwwwvvggwggwwwevwWefggwgwvwwUfffwvvwwwWfggfxgwfwfwwvwwVUVfFVeeuvWVgVfvwvSdeVVdEffEUefv6VfUVeefffFgwEfwvffvgvvfewxVffWeefVvgwfgwdUUuwgfvwwWVgVfwgvVfvgvwgfwwEVfffvvgwwWffEVuVfgwvgvvgwwwUfeefffffvwgwwwgffwggfUwgwvgxvwwuvegggfggfwvewvfwvgwwevggvfgWwvvwwgwwgVvfTvevggVwvfuwgeWvfgwgtfgWwgwfwvvwhfefWuVfVwvvfwffggGVgvTfeuggVvvvVtWgfggvwgwuggVvwvgwwwwwvvxwewvfwvfgvggwWfgfwwgfxwxffvgwwwwgwwgwwgegffgwvggwtggVvvvvgwwwwvvvwheWvfgwgvfxxwwggxwvfvfgggwwxwxxwWgVwgfvggevffefEwggVxvgWggggffguwvwwwgxwwfvwfvgVgvwgwwVgffUwwwwgFwggVvvvgwgfwxVffgVwwfvwfgfwgvwedwVefEwgfVwvfVwgffwfvggGwgfVwvfwgwwwwvfwxWUffegfvgwgfgwfvfuwwfxwgwgwggwwffwwwwwwFvgefwwugwWwgfVwvgwgwwwvgxwvfvfvgwfUwxwwgwxwvwxwggvxgvfwwwwxwwxwwxwwxxxxxwxxwwgxwhxxwwgwwwwxwwwgwxxwgwxwxwxgwwxhvvgWvvgfvgwgvhgwgwvvwfvgVgvguvvwfwgxwwxxwwhvwwxhvvgwwwgvwwfvwghwvhxfgxwgwwxwgwwwgwvvwgwwfwxwxvhgwfxwguwwwwvwwvwxwwwgwwxxwgxwxwwwwwwxwvwwxwwwwwxwwwwgwwvwxvhwwwwwwwwvwxxwwwgvgwgwevxwwwwvwwwxwwwgeefvvgugvfvwvhvvvgvvgveggwxvvvwvfwwwwgwwwgwwvuvwwvuvwwwfwVhgguWwwgwvwvwfWwwhggwwxwxwvvfgwgvwgwwggwxwWgfwwgwgvvvwwvvwwgwwwvwggwwhwxxwxvvwvgxxxxxvwwvxwwwxgwwfwxvwwgvgwxwwwwgwxwvewvgwwwxxwwggwxxvgxxxwwgwggwwwgWvwxwgfwvvwwwxwwwwVffWgfwvfgwgxwgwgwwfwvfgxwwffwvgvvxgwwvgwxwwwVwvwvgwwwwguefvfegwggfvXwvfxgvgfwgxgfwwwwwvgwwwwggwwwwWfgvxwxwVwvwwwwwwgwwwwvwvxwxxwxwfxwvwwxvvwgwwwWwvvwfVffVwwgffgfvwwvvVfvwwwffgxwvwwwwffwwwefffwwwgvvwgfwfwwgfgvwwggvfwwxwwgvffvgvvgvwgfvgwvwwFvvwUUFUefwevwvwxfvwwwwwWevwfwfgvvwwwwvwgfUfffwgwVefwfwgvfUfwwghfvgvgwwVefwwvwwwwdwvgvvfwgfFUvvvfwwvgewwgfgwfgwwwwwwwwwvwwxwwggffwxwwwwxwvwwwwwwwwwgwwwxgwgwwggwwgxwxwvwwxwwwhwwxxwvwwwwwwwwxxxxfwwxwwgxhwgwvfVwhgggfwwwvwwggfWvgwwwfvwvxxxwxwgwxwvwvxgwvvxvwgwvfvwvwwvxwwhwwwwxfvwwwwgwwwgwwwhvwxxwfwwwvwwwwwxvwwgwxxwxxwxwwgwwwxwwhwvgwevgfgwwxgvwfwxhwgfgxxvwgwvhhwwwxVwgvwwfwwwwwvwwxwxwwwwwxvgvwwxwxxvfvwwgwfvwfwfgwwUgwwUfVUVfwvgvuwwgvwwwwWegwwvwgwugwwwvgfgwgwwvvvwgwwvgggwxwxvwvgwwffwgwwhwwuwwgwwwwwwWWwfwvwwwxvwwxgwwvwwwwxwwwxwvgwvwxxwwxwxwxuVgggwffwvwwgvgwgxwfwfwgwgwwvvvhxwxgvwgvfvgwvfwxwwwwwfwxvvwwwxxfvwwgwhfwwwwgvwgwgvwwfvWffvwwffwwwwvwwxwxfgvxwwwwwwwxxwvxvwwwwwwvwwxwvwwwxxwgwwvgwwwwwwgwwwwvwgwxffvgvwwwvwwwwvwwwxwwwwxhxxvhggxwxwwxWgvwWfggffwwffffWfwgwugWugwwgfgwwuwwxwwwgfwgwvfvgfwwxwgvwwwvwgvwggewgwufwwwwwgwwgefgwwwwvwwwwgvvwwfgggvVVVfwgwvvvwwwuwwwxgfewwxvfwgfwwwxwgVfgggfgvfvfgwxwwvfwhvwwwvgwggvfwwwgvvvvvwfwvgwWgfwgwwggfxwvwwwwgxxuwxwwwwwwwwgxfwwWhwwwwvwwwwwxhxwwwxxywxhwwwfggfwwwxwwwwxwwwwgwwwwwvwxgvvwwwwxwwxxwwwxwwwxxwxxxwwwxwwwwwffwwxwwwxwwwwwwxwwxxwwwwxwwxxwxxwwxwwxwwwwwwwwwwwwwwwwwhgggggfwvwwwvvwwxwwggvwgxwxfwwwwwvwwvwwvwwwgwwwwwwwgvxwxfwwwxwxwUVfwufgevvvgfwvwfffVTvWUwVwefffvfvgvwxxxfwVwefvVwwwwwxwxvuvxevggvfvfwWvwgvwvgwwxwgfffwwvgfvwwwffwfvgvvxewewwfwwwwefvwfvgvgwxhvwwwhwxwgvwxxXffxxwxwgwwwwgxwwwgwxwwwwxxhxwwwwwwwxwxxwhvxxwwgwwwwwgwfwxgwwxxwwwgvfvVfvwgegwvgvwvhgwvVvvfwggxvwwvgwwwwfgxxwwhhwvwxwvwxgWwgvwwggwwwwfxgwvgxwgwwwwwxgvwvwwwvgwwwgewwxfhggwvwxxwwvwwwgfwwxwwxxhwxwwwwgwwwwwxwxwxhwwgxxvwwvwxvwwwwwvwvwvwwhvwgwxwwwwwwwwhgvwfxfvwxxvwwwxwhwwwfwwfVefvfvfgwgvegwwfevefwvwgvgwvwhggwwgfugxgwwvgwvwwwwwwxxfdwfUfvfveffvwggwwgwvXwwwufwwvwwwfvwwwVvVgwgfuggvwgvgwwxwfwwwwxwwgfugxwwvxxwggvwwwwxwgwwxxwwwwwxwwwvwwxwwvxwxxwxwwwxwgxwwgwvhxvwwwgxwwhgwwwwwwwfgvhvgwxwxxvwvwvwgxwwwwgefeFfgvWVffvfefwfWffuggvvgwfwwvweVfgwgegggwxwfwvwggwgwvwggggVvgwvvvvwvfwwwhvXxwvwefwfwwwwwvwwwfVwwvvwhwwwfwvwwwwwwvwxxwvfegggwwwxxwhwwwxwwwwgwxwxwwwxxwwwxxwhhwwxwwghxwvwwwvwwwwwwxxwwwxxxwwwvwwwvwgvwgxwxwwwfgfvuvvvvwwggwwwvvwfufgwggwwvgvVwwwwvxwgxxggwvhgwwwvwwfuvwfvwvwVvwfwgvwhwwxgwxvwwfwwwwwgwfwwwwvxhwxxhgwvwxwwvxwwwggxgwxwxwwwwvxxxwgwwwxwxwvvvgvwwgfwvwWwfwxwgwwvvgvwwfgwfwwwgwwwggwWwewwgwwfwvwfgvhfvwxwWuwwwwxxwwwXfvgVgwgfgfwwwgwxVWffFwevgvgffeegfwwfxwfvgwguffuxxxwxwgWwvgwfvwggwvuxvfxvxwgwwgfwwwgvwwwgugfwgfhwgwwWwwwwffuwhvwfhwggxwwxwfwwwfxwxhfVwwwwxwhwgxxxwwxwwwwwwwgwwwwwxwwxwwwwwwwwwxxwwwwxxwwwwwxwwxwwwgxxfwwwvgwxwwwwgvwwwxwwwwwwwwwwwwwwwxwxwwwwvxwxwwwvgwwwxxxxxxxwwgwwfwvvwvwwgggwggffwwwwgfvwwxfwwvgwwvvvVufVwfvfxwwwwgffwwvwgwwgwwvwwVfffffgxwwhfvwwffwwvwwffvwgffuvvgwwwwgwfxwwxwwwwwwffwwwwgfffvxwwhfvwwffwwwwwwwwwwwxxwwhffvwwwwgvwwwwvwgwfxwwwwwwwwffwwwwgvwwwfvxgwwvwvgwwwxwxxfxxwwwwuwxwxggwfvwwwwfwwwxwxxwwvwgwxvwwxvxwwxwwwwwwwfgwvvwwvweefvgfwwwfgvfwewgwXgwwxxwwwwwwwxvwwvxvvwwvwxgwwxwwwwfwvwxvxwwWwgugwwxxwwwvxwwxwwwwhvwwxxxwxxxxxwwxxwxwxgxvvwwwwwxwhwxhxfwwwwxwwwxxwwwvxwhwxwwwhwvwwwwwwxxwwxxvvwwwwwvwwwxwwggfwvfuwhgWgvuwhxvgwxwwgwxvwwwxvgwxvwggwwgvxwxwxxwxxxxxhwwxxxwvwwwgwwvwfxwvxwwvwwwwvwgwwwwwgwwxxxgwwwwwxwxxwwwhgwwvwwwwwwxwgvvgxwvggwwwxwwwwxwwwwwvggfwwhgfwuvgwgwgwwwwxwwgwgvggvgwwwffvvwwgwwwvgfvgwfwwfgvvewvggwfwvfgwwwwwwvwgwxwwuwWvwgwfvvgwwgvwwgwwvwwfwwwxhvvxwwwwwwxXWwfveeXvwwwwwwgwwwwvvvgvvwwgwgwwvwggXvwfwxwxwwxvwxxxwwwwfwwvwvwwxgvxwwxfvxgxxgwwwwwwxwwxwvwwxggwvvwVwhwgwvwwgwwgwgwwwxwhwvvvfwwgvfvgvwgwwwwxgffvfvwwwfguvvgVWvhVhegwwwgvvwwwwwwvgwvwwvgvwvwgfwwwhfwvwwwwwwwfxwwxxgwwwwwfwgvgvggvgwwwwwuwwvwwvWwfvwwgvVxwwgwwgwvgxwwxwxwwwwwwwwxwxggwwwwwxwxgxwwwxwhwwwwxwwwgxwhfvxhgxvwwwwwxwxwxxggwwxvwfwwvwwvfvwwvexgfWvuvxwgxwwvhvwwwwwwwvvxwwwvgwwwwwwgwwwwwwxxxxxxxgvvxxwxwwwwghvxgwwxgxwvwwwwvgwwwxwwwgwxxxwgvxxxwvwxwwwwxwwwgwwwxwxxwwwxwxwwgwwxwxxwwwhvwfxwwxxwxwwwwxgwwgwxwxwgfwwwwvwxwgvwhvwfxwwxxvwwvxwwgvxvwwwwxgwwxxwxxxwxxxwwxhvwfxwwhwwxwwwvhxxwxxwxwwxxxwgvwwegwwwgwggvfwwgvwwwwfwwfvwwxwwwvggwfwwfvwwwvggvwggwwxxwgfwwgvwgwwwwxwxxvfffgeffwefffvVfvvgfgvwwwwxwwwxwxxwfwwwwwhwwwxwxwwwxxgxwwwwvwwwvfgfwWffwgwwxwwwxwwwxxxxwxwwwwwxxwxxwwwwxwwgwwwwfxxwwfhwwxxvgwxgwwwxwwxwwvwfgfwgwwwgwxxxwwxwwgwwfwfwgvvwwxfffggvwgvwVfgfgwvwwguwfffgVWufvwvwwwggxwwwfhvvgfwfvWuffxgvfvxgfUhfgvwgxwwvggxxxvxwhUxwhvffwwwwgwwggwwgxwgwgggvffutgfxwwvwgwwwfwwvwwxwfxxwfgwvwfvxgxxfwwwwwhwvgwwxxwxwwgxwxwxwwwgwhwwwwwxwxhxwxwwwwwhwvhwfuffwvfVvhUfvvgvwvgwUgeFfevwwxvwvwXhhxwwwwfgvfefwwfwwwvgghfgvvvxvhwwwwwwhwwggvwvuewwxwvgwhwwxwxwvvfgvuevvuWfwwwwwxwwwxhhwwwxhhwgggwwewwwwwwwgxwxxxwhwxwwwwwwxwwxxxwwxwwwxwvwwwwgffvwwwxwfxffuggwwwwwfgfgefwxxxwxxwwwwwwwgvgwggwvwgvwvxvvhwfwwvwwwwwwwxxwwghwgxwfwvwwwxwwwxxxwwwwwvfwvfwegwwwwwxwwxxwwxwwvwgvggggffVgvwwvwgwVfvwwgvwwwxwvwwwwwwfvvvgwfvfwwxwwwwxwfvwxwgwwwwxxwfvwwVfwgwvwwevfgwwgwwUWeffffvvFefevgwwvwXvfwxhwwfvvwwvwwwfvwvxgvvwwewgvwvwhvwfvwfwvxwwwWwwwgvxwwgvxWvfuwgefggwhvvvwvvvvgwvwwVgwwwvwwwgwxwWffxfwwxgwwwwhvwwxfwwwwwxwwwwwwwwwxxgwwgwvwwwwwwxwwwwwwfgwwvwwwwxwwxgxxwgwvgwwwgffgfwwwhwgfefuggvwwvwwvgvffwgvwvwwwvggwwwwwwgwfvggfwfvwgvwvhwffffvvwvwxwxwwwwwwfwxfwwgwwxwxwxwwgwwxwwwwfvwwvwefwvwgwwwvwxwwwwxwwwwxxwwffvxwgwgvgfhgfVVgvwvvwgwwUgvgvvgfxwvwgvvwwfxwwwffgvwgwfgufvgvgvggwwwwwwfxwwwwwggefwVfggwfwgUvevgggvvvUVVdefVgvTVffuWvfuvGfewfgvvfffvggwvwwvfvvwfwvwWvvvvgvgvwfeWgwvvgvgvxwegwvvgwwgvwwxgvwvvgefwfwvwgvvgvfgwugvVvgggwvgxwvwwwgwfwwgwwxwgwwxgvvgvvwfwfwvfVffvwwgwwfwffwfwvgwhwvwwxwwgwwxWefvgwwgfwvvuxWwgfwhwgwvxwgxwwwgwwvvwwwvwgwvgwfgwwwgwgWefVffwfvWfvgfvfwfvgefhxhfwvwwwwwwwwwwgfvwwwwwwvghwvwgwvwgwvvgwwvvxxwwwwwwwgwvgxvugWwvwfggWgwgfgwwgfgwwxuvvgvwwwvwvwvwwWggwwvwxwwvwwxvwxwvgxwgwffwwwvgwvvwvgxwwwwwwwgxxfggwwwwwwghxggxxxxwwxxwwxxwvvfwwwwxwvwwxxfvfvvwgwwVvwwvgwwvwffvhhvwwwwwwwwwvfxwwwwwvxvwwwwwwwwwwwwwxgwwwwwwwxgxwvxfvvwgvwwwwwwwwvwwwwwxxvvwxhhwwxxwxwwxxwwwvwwwwwgwwxwwwxxwwhgwxwwgxwxwwxxwggwwvwwwwwwwwxwxwwwxxxxhvuwvwwgwfwwwwwwgwwwwvwwvgVgfwvwwwxvvxgwwwwxxxwfxwwvwvvgwvwwgxwwwwwhwvwwxwwfhvwxwxwxwwwwwwwwgwvwhwwwwwxwwxwwvugwwwwwwxxwwwwxwghxxwwfxwhwgwwwgwwwxxvwhxwxwwxwxwhwxwwwwxwwwgwwwwwwhwwwwwxwwxwwVgwvgwwfwfwwvwwwwwwwvgvvfWwgwwvwwgguxwgxwwwwxvvwwwuvwwwwwwgwwwwwwfwwgwvwhwwvwwxwwxfwwwwvhwwwwwwxwvvwwgwvhxxvwxvvxwwxxxwxwxxxwgwhxwwhhxwwwwwwwxxwwwwxwwwwwxhwxwwxxxxwwxwxwvwwwwwxxwxwwwwwwwwwvvvxwwwwwfwgxgxwvwwwwwwvwwwwwxgwxxwxwxwwwwwwwwwwwgggwwwwxwwvxxxwwwxwwxxwxwwxwxwxxwwwgwwvxwwxwwwxwwwvxwwwwwwwwwxwxhwwwwwxxwwwwvxhvvggWfwfvwVwvXfwwwwxggwgxxxvwxwwwvfwgwvgfwwwvwfwwvgvwxwggwwwxwgwvwwxwwVVvwgfwWfvgvgVwwtUeVVfFEfeffvwevwUfvvgfwgvvwwugugfvwvgwvwfgvgeeWvvfvwgwVfffwgvwwWVwvwwVfwgvwdvwTfgvwfwguvgfvwvvgfvwugvgxfvwfgwwgvgfwhwwxxfWwfwwwWwfwwwwwwwxwxwwxwwwwgxwxwwwxwxwwwwxwwvwxwwwwwwvxwwwxxwwwxxvfggvwwwwwwgxwgwwwwwgwwwwxwwxhvxgwwxwwwwwwwwwwwwwwwgwggwgvxvxwwxwwxwwwwwwwxxxwwwxhvxwhwwwwwwwwwwwwwwxwxwwwwwwxgwxwxwxwwwxxxwgxwhggwWgfwvvvgwwgfwvwwvvvhwvwwwxwxxfvgWwWfwvxwwfwxvgvwwwgvwwwwwvxvwwwwVVgwgfvWevfggegwvwuTeFfeVTfVfvgvdfwduvvwwfggvvfevwWgvgvfwwvfwvgVvWgvfwgwVfwvvgfwwWefgwxewgvwxxxevweevvgwfgWvwwvvwggvgvevgwfvgwfwwgvgwfhwwgwVfwwwwxWfwwxxfgwxwvvxfggvgvwwxwxggwxxvwwwxxxwxwXvgfvwwefwgwWwwVffwgxwwxgvwwgwxwxhfvwgfwwfggwwwvwggXVwVuffefffvgfWvgVwvwfwwgffwwwwwgfgwwwfwgwwwgwwvwwgfwvxvwvxggwvvwwwwwgvgwvvvwxWwwVfvweghxgfwwgwwffwwvvwwvvgwwgwugXxwwgvgvwxxwwwwfgwwwwgvvxxggxvgegVwwffgwwwvvxwgxwwwwxwxwvggwgwwxvxxwuwvefvgwwwwggwxwwxwffwwwvwgvgvwwwwvveuWVgfVffffgfwuwVevvgwhhwfgwwwvvfguvwgwfvwwfwgwwvvgggvvwwgwwvhfwwxxvvwwvvwxwwxwewfuwvgvwwffgwwwwgfgwwwwgwwwufwwwwvXhwwwwfgggwwwwgxwwxwwwxxxwxwwwxxwxwwwwwxxxwwxwwxwwxxwwxxxwwwggevvwvxwfwewffugwwwxwwwwwgfgggxwwwwxxwwwwxwwwgffvgfwvwwvggUfgfvxwwwwwwwwgvwwxxxwwwgvvvfwwxxxwwwwxwxwgfwwwwffvgxxxxwwxwxxwwwwxvfWvfwfeffgwwhvwwgwggxfuwwwwhwvgwwwwwwfgwgwgfgvwvwwwwgvwwxwwwwwwwfgvwxwxUfffgfvWfwgfgfVwwFeffWeFvwfwefvgfvfvgvvwgfvUfwvvefvfffwUffgvwfffvwwuvwffvgwxhgxgxvvvfVwwwwwwffggvvvWffwUvfwxfwvvvwvvwfvgvwwxgvVffxwXevwwxxwxwgggxwwwvgwwwwxwvwxwxwgwgwwwwwwwwwwwwwwxwfwwwwwwwwxwxwwwwwwwwwwwwVvuvvfgvwfuwuwgwgevwvgvffwwfvvwwwgvwwwwwxvwwfwwwwvgvvwwvwgvgvwvwvwwwwvgwxwgwwvwwgxwhwwwwvwvwwvvgwfgwuwggwwwwwwwvwWfvvgwwgwvgwwwwwwvgwwwhxwwwwxwgwwfwvwvwwxxvxwwxwwwhwwwxwxwwwwwwwwwxwwwxwwwwwxwxxwwhvxwwwwxwwwwvfVvwgggwxwgwgwvwvfwggwvfvgwvvwfvwgwwwwwxwgwgwwwvwwvwwvwgegfwgwgVvgwwwghgwwwwwxwxwwvwgwvvwwwwvwggvwwwxwwgwwwwgwvwxwwxwvvxwwwwwwxwwwwwwxwxxwhxwwvwfvvgwwwwvgwwxwwwwwwwwgwwwxwwwwgwgwwwwwwwgwxxvwwgwvwwxwwxxwwxwwwwggwvwwwgWVvffeWuhwVvVvvwggvffvvvwfwwfvwgggvgvvggwwvgggwvwvggvwwvwwwgwggwxwgvvwvvwwwgwgxwxwvxwxwwwwwxwvggwwvwwwxwwgwwwvwwgfvvgwwggxvvwwgwgwwwwwwwwwwwwxwgwwwwwfwwwwxgwwwwwwxwwwwwgwxwwxhwwwwxgwwxwwwwwxwwwwwwwwxxwwwwxwwxxwwwffuvwfggvwvvwvwwwxWvwggvVggwvvvfvvvuvvvvhwwvgfgwghgvvvwvvwvfgfwwvguwvvwwfwwvwwwwxwxxwwvwwwwwxwwwwwwvwvwwgwggwwxwwvvwwwxwwgwwxxwxgwwgwvvxwxxwxgwwwxwfwwwggfwwfwgwwwvxwwwwwwwwwwwwwwwwhvwvwxhwwwvwxfwvxwwwwwwwwwwwxfwvwvwwvwvvwvwxwgUwfvwfffgvwwwfwgfgvwxxwwwwwwwwwwwvwwgvwwwwwgwgwwgxwwwvwxwwwxwwwwwwgwwvwvxwgwwwgvwwgwwwwwwwwwwwwfwwvwwgxwxwwxxwwwxxwwwwwxwwwwwwwxwwxwvhwxxxwgvwxfwwxxwwvvvwwwwgxwwwwxwxwwwwxgwvgwwwwwxxgwxxxwwwwwwwxwxxwgwgwvhxvwwxwwxwxxxxwwwxwxfwwxwwgxxvvwxwwwhwxwxwxxvgvwxvwxxwxxwwxvwwwwxgxwwgxgWffvfwwvfvhghwgvvgvwvwVdWegvhfewxwxwwfxwgfwwhuvwwhuuvvvWgfwweUfxfxfhvwwxwgwwwhgwghuuvhwwxwwxggwwxwgXffwwgfewhwwwwwxxghxwwwwwwwfgwghufwwxwwvhwwwhxwwwhwvvwwvgvwwwxwvwxwwgxgxwwxwhvwwxwxwvgwgxxwvgwwvvvwxwgvwgwwxgffggfvfgveXvhvvwgwegvufgfhevewwhgwwwwggwggwwvtuwhfvfvvfgvvvgfvvVggwvvwwwgxwvhgeXvxfvfxvwgwvhwwgwwxhxfgvhevewwwfvvvvhwhvxgwgwwwwwvwvwfgggxhgvxwxvwwxwwwxwxwwwwwwwwwwgwxwwxhwgwwwwxwwwwwwhgxgwwwwwwxwwvwwwvvvxwgfvfvfwgffhhfxgggvwwgvfwgvwgvwxxwwwwwvwhgvwwVwvwwwwwwfwgwwffehXvgwvvvwxwvwwwxhxvxwvwxfwwxwwxwwvwxvwxvhggvwgfwvwwvvvvwwwwwwwwwwvwwwwgwwwffvxxwvwxwxwgfwfgfeefvffffwxwwefwfwfvwwxgvxwwfvwwwfwggVewwwwwfvwfggwwxfwwwwwwfUfwwwxfwwwxwfVvvgfwwgwvggVvwgvVeEUUTfvgffVfvfefgwwvgfwwvgvxevwgwvvvvgegvwvgegggvVufgwgvwvfgUgvgvgvVvwgvwwwgwxwUFegwwfffwgvwffffwggvwwvgfgwgwwfgfwwvvwwwvwwwvggggwwhwwwwfxwxxwwxxxwwxwwwwxxwwwwwxwwwvxxwwwxwwxgwwwwxwfgfvfwgvvgwwvgwwwhwgewfvwgwfwwwxwxwwgxwwfxwwfvwwwvvwwwvfefwwvvwwxwxwwwvwwwfxvwxwwwwxxwhwwgvwgwvwxwvwwwwwxxxwwwwxxwwwxhxgwwxwwvgxwggwgwgffevgfgfvwxvwvwvfvxwwxwwwwvwwxfwwgVfvwwwvwwwvxwwgwgxwxvwvgvwxxwwxwwfVwvfgwwwwvvguggwWUefFfeggfffVvUefwwwffvvwgggxvwwgvvwfwwevvwwgugwvwfvgwwvxgwfvvwwwvguwgvwxxxwwhwxfVvwwwgwhgwfgvgvwwvwxvwwgwgwWffxwwwwwwwwhxfgxgwwgwvwwwfvwxwfgvwfggwwwxwxwvvxggxwxwvwwxwwvwfggwxxgvvwxxxxxwxwvvwwxxwxxgwvwgwwwwwwgwxwhfvffegwwwwwvwgffwxvwgwgwwwwwwwwwxwwwxxwgxwwwwxwxwwxwwwwxgwwwwxwgffvwvwwghhwwwwwvvvwwwxwxwxvghxwxwwwxwwwwvwxxxwxhfwwggfVfVevffvvwxwvffwgvwwvwwvwwwxwgvwgfVvgvwwxfUvfwwwgxwwwxwvfgvwgwwhwwwgwwwwwwwwwgvgvvvwVeVffeffwfwgfgUwfwwvwvggufgfgwvegwvwvwwwfwvfwwwwvfvfwwwwwwfwfgwwwwwwvvwxxwwxwwhvfVfwfwfxhfwwwwgfggvwwwwwwwwwvwvgWvwwvwwvwwwvgwwhwwwwwwwwxxwxvxxxxwwwwxwfwvwwwwwfwwwwwwwwgwwwhvghxxxxvwwwvwwxwwwwwxwwwwwwwwwgwwwwxgxgvhxvxwxxwwxwwwxxwwwwwxwwwwxxwwwwwwxvwwwwxwxxxwxxwwwwwwxwwwwwwwwwXgWfwgfUfwvwgevWwvVfwwWgfwwgvwfvwfwfwvfwvwwWUffwgfwwwwwwgvwwwwwWwgUfwwwwvfwvwwwwwedUfvuwfVuFfwUVvwweUefcffUUffTUuffwevWfvwwgUgfffgwUevwwTUewwuvgGVUffwUvvwwgwvgvwwfvgGfwUUvwwfwefvvwwffeVffvgvwwwgUVffTUeUvvwwvvvwwevWevwwhvggvwwwxwWefwwGUUwwgwwgfvwwvwwvvgfwwxgvggwwvwwwwwgwwwxxvvwwwvvwwwgwwwwwwwfvwgwwgwwwwgVeewwfwWfvexgevggvwvEuvffffgevvwxhwwvvxxxffWgwgfwvwhevvxhwwwefvgwggwwwvwwwvwwexgfvvwhwwvwwwvwfgwggwvwxxeeffgevfgwwgwvwwgggvwwxxwwwwxwwwwxVvwvxVfgwwxgwwwwwwwxxwwwwwwwwwgvwgvwwvwwfvwwwwgwwgvvxwxwwwgvxwwwwwwwgvwgvwwgWuffwxfxVfVfwgwwfwVvgggvvwwfgevVfguWvvfwwwwwwwwwwVvgfgvvvVvvvwvvwwfwUWeegvgffgwwwvwwwwfgvhfvgfgvvvgwwwfvwgvwfwwgfgguWwvvffwwwwwxwwwwwggfgwwwxwhefwhgggvwwvwgfwxwwgvwwwxwwgwvwwwwwwwxwvvgwwwwgwxwwwwvvgwvwwwvwwxwwwxxVwewvvxvvggvwwvgfUfvfuWVffufWvvwgwwvgUWuffgfgvvvwxwvgvgggffvUwvggwwwwvvwwwgwevvwfwfgwwgwvwwgwfxfvfgfwwwwfwhvgvvwwwwwwwwwgUvffwvvwfgvgvvwwwfgwwwxwwvwgwwxefwwvfggxfxwfgwwgwgwwgvgwxwwvwwggwwwwwvvwwwfgwxxwwwwwxhvvvwxxwwwwxhwwwgwfwvwwwwVeegwvwwvvVgwfgwwgvwfdvVffWgvfegwgggwvvxxWggfgvvwefwwvfewwwgvWUfvhwfggwgwwwwhwwWgwffwwhwwvwwvwvggwwxxgfgWgvfefgwwvxxvwwvwwwggwxwwxxwwXvvxwggVvwwxvgwwwwwwwwwwxggwxwwwwwwwxxxxxxgwgwxxwwxwwwgxwwwxxxffvwwwwgxwxwvxwggwfVwgvwwgwwvwxvwwxwwwwxgwxxwwwwwwfvwxwxwwwxxwxwwxxxvwwxwwxvvvwgwwvxwxxwwwwxwwxxwfwwwxwgxxwxwwxwxxxwwxxwwwxxwwwxxwwxxwwwwwxwwxwxxwwwwwwwxwwwwwwhvvfvwwwxwwxfgwxwwxxwwxwxxxxwxwxwwwwwwwxwfvwwwxxxxxwxxxwwwwwxwxwxwxwwxwwwwxwwwwxwxxxxwwwxxxxxwwwwwxxxgegfgwgeVwwvwgfvvwwfgwwwwgvvvxxwwwwhvvwffxwwwwwxwgvwgufewfgvwwvwxwwwwwwwxwwwwgggfvwwhwvxwxwwxwwwwgffxwwwwxwwwxxwwwxwwwwxgfxxWvewxfeffgvvgwvgfvwvwwfvwxwwgwwgwwvwwwgwwfggvwwwxwxfvwwwwfvwxwxwwvwwwweVffVevvfvfffvwwEffFgvggwUfefvgvwffgfWffwfwfwggwUgfgwwwfgvgfVVfvgwwwvwgefvvwxhfevwwvwwfgwwwffvgvgvvxwgggUfffffgefvwxwffgvwwxhvWffxwXefvvwwxwxwwxwxvwwwwwwwwwwwwxxxwxvxwwwwxvxxwxxxxwwwvwwwwxwwxwxwwwxxwwwwwwxwwxxxwgfvuvffgvggwugwwwwhuwwuwgfggfgvvvgwwvwwwgwwwwwwwxwgggwvwxwgwggggwvvwgwxwgvwgwwwwwxwwwwwxwxxwgwxwWgggvvggwgxghgfwvvwfgvvwwvwvwwgwwgwgwxxvvvwwwwwwwwxwhwwwwwvwwwwwwwwgwwwwvgwfvwvwwxwwwwfwwxxxwwwwxgvwwwwxwwwfwxwwgxwwwvwwgwwwwwwfuVvwfgwwgwfvwwwvgffvwggvgggvwvwwxvvwvwwxwwfwwvwwwgvvvwwvghffUggeWVvwgwwxvgwwwwxwwwwwvwwwwvwwgvfwvfvwggwgggwwvwgvwvwwfwwwwwwwwwwvvwwwwgwwwwgvwwgwwwwxvwwwwwwgxxwwxxwxxwwwxwwwxwwxxwwxvxwwwwwwwxwxwwxwxxwxwhxwwwwwgfWvvVfgvvhWvvvwwwwfwgvwgvfgggvwvwwghwvwxwwgwwwwxwggvwwxwggwvwfwwgvwwvwwgwhwxwgwwwwxwhwgwwwwwwgwwvwxwwvgwwvwgwgvwwwgwwxwxwwvvwxwwwwwwvwxwwwxwwxxwvwgwvwwwwwwwwvgxwwwwvwxwwwwwwxxxwwhwgwwxwwxwxwwwxxwwwxwwwxwwwwwgeuvgfwvwwwvwxgwvwVvvgwggfgvgvvvvwhvwewvggwwVwwvwwwwvvvwvwgvggfgWwgewhwwgwwxwfwwgwwwwvxgvghwwvwwwvwvwwwvwwwxwgvwvgwvwwwvvvwwwwwwvwwhxgwwwgwwwxwwgvgwgwwvwxxvwwvwwwgfwvwfwgwwwxvxgwwwwwwwwwwxxwhvwvvwwwwwwwvwvxfwxxwxwwwwwwwxwwxgfwwfwwwgwwvwwwhWewfvfwfvvgvwwvvwfgwxwgwwvgvwwwwwwwwxwwwwvwwvvwfwxwwwwvgwwwxxwwxwwwxwwxwwxhwvgxvwfxwwwwwwwwwwwwwwwwxxxgwfwwwwwwgxwxwxwxwwwwwwwwwxvwwwxwgvwwwxfwfxxxwwwwwwxwwwwvwggxwwvwwwwwxxxwwwwwwvfwvwwgvwvxxxhgwxxxwwxwwwwwwwxxwwwwwxvwxwwwxxwxxxwxwxwxwvggvwwvgwgwwwxgwwwxwxwwgfwvwxwwwwwwwgwfxwwwwwwwxwwwwwgvwwxxwwwwwWTefwufwFvvfvgfWffwgfvgUeffgVfvvvvwxwvwvwwwwwhVvwgvwwwgvvfwgvgvVfvwfxfhvuggvwgwvgwfvgfWffwwgwvhvuwwwvgwfvwwxggfWUfvvwwxwgvwgwwwwwwxxwwxwwwxwfvwxfggvwwwwwvwgwwxgwwgxwwvxwwwwfwwwvfwwwhvwwwxfwwwwwwvwvxwwwwxwwwxwwwwwfwwwwwwxwwgwwUEfggfwvefvhfgvuvvgvfffufgUVvvfgwxgvvwvwxvwxUVvwvfgwwvvvgwWgvgdvffwggefvwwffvggwgwwfgvuvfwvvefvwwgwgwwvwwwwfwfVvvfwxwwwwwgwwwwwxwwwwxwxxwgvvwwgggvvwxxwwvwwwwwwxxxwwwwwxwwxxwwxwwwxxwxwwwvwwwwwxxwvwwwxwxwxgwwgfewwvwWvgwwgwwgwvvwwWvfwwggvwfwwwwxwwxgfvgwvxwxxwwgvwgvwwVvwwxggwfwvwwwwwxwxwxgwwgwwhwwwvwvwxwwwwvwwgwvxgfvwvvxwwwwwvhwwwwwxwxxwwwxwwwwgfwwwwxwwwxxxwwxwxwxxwwfxxwwxwwwwwwhwxwwwxwxvwxvwwhxxhwxwwwxwwxwxwwwwxgwxwxwxxxxwwxwwwxgvwwwvwwvwwwwxxxgxxwwwwwwxxxxwxxwxxxxvxxxwwwwwvwxwwwxwxxwwxwwwwxxwxxxwwwxwwwxxwwwwggwwvxwxwwxwgevvwfwwWggwwvwwfvvwwWgfwwwfvfwvwwwwgwwwvxwgfvwwwwxwwgwwvvxwWgwwwwfwwvvwwxwwwwwwvvwwgwwwwwvwwwwwxxwwgfvvwwwwwvvwwwwwwwxwxwwwwwxgvgxwxwwwxwxxwxxxxwxwxxwxwxwxvxxxxxwxwxxxxxwxwxwhwxwxxwwwxxxwxwwhxwgwxxwwwwxgwwwxxwxwwxwwxwgxwxxwxxwhxgwwwwwwxhxwxxwxwwwwxxxxxwxvxxwxxxxxxxxxhxwxxxxxwxxxxwxwvwwxxxwxxxxxxxwgxvxxwwwxwwxwwwwwwxxxxxxwxxxwxwwwxhwxwxwwwwgxhwxwxwwxwxxwwxwwwxwxwxgxxwxxwxwwxwxwxwwxxxxwxxwwwwxwwxwfxxxwxxwxxwxxxwwwwxhvwxxwwwxgwxvwwwxxxxxxwwxwwxwxwhwwwxwwxwwwxwxwwwwxhvxxwxvxvwwwwxwxwxwwxwxxwwxxwxwxxxxvwwxwwggwvwwgvxvfuvUuVegfxuvvggfxfVuggvgegfhvvgvvfgwwwwwwfvvwvgvgVwgVfvwwvwfvwwvevfgvggfvggfhfUtgetgUfVgwvgfgffwvwfwwgvvgffVgWffVfvefeffefwfevvfvgWgvfvgfwvvfvwgvvgffVgVfgVfwuffwfuvvfgfffvwWvxwvvwwwgfwwwwvwwwvwwwxwwwgwwwgfvwvvUwvgfgvwwvfwwfgwvwfffwwwwvvhvvfgfVveVufdWeWgevvffggWvugwvegfWvvuVgvfvvggvwwvvvfvwfffgfgVgfvvvevvwvevvfwvefvvfggVfdfvueWfWgfVVffffgfgfwgfwfffefGfWeeUfedfUUfeveefVffffWVvfwvvwwfwgvvvvgwfgvwVWGfwfggvvewgvfevvefUwgwhuwfxvwvgvgvgwgwggfwxwwwwuwvgvefvgvvvvvegfvwufvfvewfvfVwfvfgwgxfgggfvuVgufFfUgVffggfgvvvVwvgWgUgvewvufwfwvvfgwwfwffvgfgvwVfgwggggewfwgTweewVefgggffuFfvUVgUguVfgefvffgfffwgvgffdeFgVgefVfeVefeVUufeUfffVgfegvfwvggvwwfwfvffffgwgvVvwvvvfgevvevvvgffuwfwexwfgvwgwfgwgfgwgwwwwwwuwffguwfvgffgfvWwvfWfufvvgugvfgvffxwuwwwwvvwwwwwwwgwwwwwwwwvvffgwwwfwwvwwwwwwwvwwwwwwwxgxvwwwxwwgvwfwwvgwwvvvfffwwwwwwwwwwxxwwwwwvwwxwwgxvwwxwwwvwwwwwxxwwxwwwwwwvwwwwgwwwwwwwwxwvwvwwxwwwwwxwwxxxwwwwwwxxgvxwwwvwgwwxwvwwggwggwfvvVefGVvTuevwvfwfvvgeggvvUfvwffffvggwfwvwwwffefWevgvffffffwfwVfgvgVvwgfguwgffgUwWUweffwVgvgvfgwffwwwwffUfVuvevvgfffffvfVffvfVvvgfvuvwwfwwgvfwwwfvgwwevuvggffvgwwwgfwwfVvvgffwwggwwwwhwgwwwwwwgvvwwwxvwgfvwwgUvgfwgffwwfgwfwwwvvvwvfwwwwwWxvvwwwwgvwwwwfwwwwvvwwvfgfwwgwwgwwwwxwhxxwxxwwwwvxwxxwwxgvwxwhfvwwvgwgwwwwwwwwwvhwwxgxwwwwxwwxxwwgwwxxhwwxgwhwgwwwxwwwxwxwxxxxwwxwxwxwxwwwxwwxwwwxwwwXgfwwgwwwvwwwwvwwwggwwggwwvwwfvvgwwwvhxwwhwwwwhxwwxwwxggwwwwfwwwwgvwwwwxxhxwwxwwwxwxgxxhxxwwwwxxwxxhxxwxwxwwggxxxxxwhwwvwgxwxxxwwxxwxwwxxwwxwwxwxwxwhwxwWgwgwvwwgvwffvwwwwwwwwxvgvgwwffvwwwwgwxwwxwwwwwwwwwxwgwwwgxwwwwwwgxgxwwwgwwgwgwwwwwwwwwwxwwwwhxwwwgwwgwwwgwxwwxwwwwwxxwwwxxgwwwwgwwwwwggwwwwwwwwfxgwxxxxxxxwwwwwxxwxwgwhwxvwwhvxxhwxwhwwxxwxgwwwwxxwhvxwXufggggfvwhfgvwxwwwwfwwgvwwwwwgWvVwgwfvvgfwwwvwFfgVfvwfvvwwgwwgfVvggvwwvwfwguffvvggwgfgvggfgwwffgwvwwwefFffEVefUeffffwwVFUefeeVfUvgvfvwvUvfvwwwvvgGvfffgwVfwwwwwwfVfvwvwgvgxwwfVgwwxwwxWfvwggwwvfwffgwwfffUfefUgfffwwvvxgwwUfVfvffvwwwxwxfvwhwxwwwvwwggewwhvxgwvwgwvxxvvxxfwgvgwxxwfwwwvwwxwgfwxuwwwhgwwwwgwwwhwxfwvwwwhgwwwwwwwgvwwwwwwwgwwwwvwwwwwWvgwxfwewvvwwxfxwgwwwwwxwxwwxwxwgwvvgxwgwwwxwwxxwwwwwggwwwxwxwvwxgwxxgwwgxwwgvxvVgwggvvwwwwhghwwgwwvgwxxxwwwwgwwwgvwwwxwwwgvvxghwwwvgvwwwwwwwwxwvwgwwwwwwwwwwwxgwwwwwwwxwvxxwxwxwwvvvvvwxxwwxxhgwvvwfwxxvxxwwxwxxwxwvwxwhxvwwxwfvwhgwwvwwxwgggwwxvwwfvxxgwwhwvxwwvwwwwxfwggvgvggwwwxwhwwgwvwwvvWwefxwwxwvugwvwfwvggwwxxvwgwwwgwvwwwgwwwwgwwwwgwvwwgwwxxwvgwwwvgwwgvwwwwwwvhxvwwxwvggwugwwxwhvwuWwfwfhghgvwwvwxhvxxxvwxwwwxuwwvwwvfwwxggwvwgwgwwwxwwggwvwwwwxvfwxwxwfvgWvewffvwxfgVvxwwvVvfwvwvwwwxwwfxwwhwwvggvwWwwwwvxwvxVwwvvvwvxwxggughuwfffwvfvvvvgvwvwwxgwwvghvwwwwwvfwvgwfxwwgvvwwvvwwwwfxwxwwwvgWvvgwxwgwvwfwwuwvgxwwxhwwwwwwwxwxwwwwwwwxxxwwwwwxwwWwwwxxwwxhxwWwwwhxvvwwwwwxwvgggwwwvvwwxvvwfgXgwwfwxxxxxgxxxxwwwvvvvwfwxxxggwgfvxxwwxxwvwgwxwwggwwgwwwwwwwwwwgwvwwwwwvwwxxwwwxwwwwwxxgwwxwwhhxxwxvwwwvxwwwwwxwghwvwwfxwwxvwggxxwwwwwwxgvgxwfwfwwwvxxwxwwwgwwwwwxwwvgvgwvxwuwwwwvwwhfgwwwvgwwvvwwhxwxwwwVgwwgxwgwwwxwgwxwvgvwgwwgwwwxwghwwwgxwgwwwwgwwvwwwwwxvxgxgxvwxxhwgwfwwxxxwgwwvxxggwxxwwxwwwwxwwxxwwvghwvwwwwwwwwxxgwwwwwxwGwwfefwugvfvfvwfggwwweuffufeVgfffeffgvvwugvwgwvfgwgwwwfvxxWwwwfxfexgwvwfxvefwfvgvWffwvfvvwwwwuxvWwffwwWwwxvWwwffvvwwwxvvvwvwWwvfwWwwwxhevwvhwwfwfvwxfwggvgwwwwvwwwwvwwwwwvwxwxwwxxwwwxwwxxwxwxwwwwgwwwggwfgvgwwwvWvggwffvwffgwxwxvwggvwvffvwwvgwwvwvwwwgwvwwgwwugwwgffgvvvwvwwggWwgfWffWvfgffgfvuffevfffuvwwgWgvFVvvffwVTVVffffeeuvgWvgvfwvvefvvwwvwwwwVxwgvgwvfwfegfwwwwvvwgfgwwvwwxwwwfwwwfgxxwvwvvgwwwwwvgwwwwfffwVwwwwweffwVgVvvvewfwfwgvgxwgwwxwgwwwwvxwfwxwggwgwhwwwwwxwwxxwwxwwxwxwgwwxwgwwxwwwwghwhxvgwwwfxxwxwxxwwxxxwwwwwxwvxwwxwxwxwwwxxxxhxwxxfxxwwfxwwwxxwxxxwxwxwxwwxxwxwwwgxwwxxwvwvxhxwwvvwwfwwgwgwxwwvvwghgfvxxxwxwxxwxwxwxwwwxwgwwwwvggxxwgwwwwwwgwwwwhxxwxwwxwwwwvvwgxgwwvxvwwvwwgwwggwwwwwxxwxxwxwxwwwxwxgxwwxwxwwwxgwwxxyxxwxwwwwwxwwxxwxxwwxwwwwxgxwwhwwxhwwwwwxwwwwwwwwwwwxwvwfwwwvgwwwgwxgwwwfvwxvwwhwwwxwgwvwxwwxxwwwugfvwvwwwwvwwxwwwwvwwwvwgwxwwwxwwwwvwwfwwvgvxvxwwwwvwvwvwfwwwwvvwwwwggwwvwwvhwuwwxwwvgxwwwvgfvewwwwgwxvwxwwwwwxgvwwxvfwwhwwvwwxwxfwgwwwwwxwgwwwvxwwwwwxwvxggvwwvwxgwwxwwwwxvwwwvxgvxwxxwwwxxvwxxwfwwfwgxvwxxxfxvwwwwgxwwwwwwxxwwxxwwgwgwvwwvxvxwwwwwxvgwwwwhxhxxwxwwxwwwxwwwxxfxwwxvxwwwxxvxwwwwxxwwwwwwwxwxwxgwwwwxhwwxwhgxvvwggwxwwxvvwwhxwgwxvhxgxwgvvwfhggwxwwwxxwxwxwwwwwxxxwwxvhxgwxxwxxxxxgvwwwxvwwxwwwwxwxwwwwwwwwxvwxwxwwvwwwwwxxvxwwxwwwwxwwxwwwwvwxxvhwxxvxwwfxxwxxwxwwxwxxwxxxxxgwxhwwxxwwwwwwhxwwxgwwwvwwxgvwwgfvwhvwvhgvwwvwvvwwxvvwwwhwwwwwwwhvwxhwwwxwwwwwxwwvwwxwwxwxwwgwwxwwgwwwwwxwggwwxwxxxxwxwwxhwwwhwwvwhxxwwxxwwwxwwxwxwwxxwwwwwxxgwwwxxwxwxxuwwgwgwwvwwvwwwxwfwxfggwvvvwgffgfwfgwwwwhwwgwwxwxxwwwwwxfvxwwwwfgwwwwwwwggwwvwwxgfgwwvwwwxhxggwxwwxwvwwxhgvxwwwwwwwwxwxhwxwvwwxwwvwwxwhfwxvfgwwwxwwxxxwxwwwxxxxxxxxwwhxwwwgxwxwxxwwxwvwwwwwwwwvgwxggwwwwwxxwvxfwvxvwwhwwwwxxxwwfwwwxwwwwxwwvwwvgwwxwxxwwwwgwgwwwwvwwwxwwxwhwxwwwwgwvwxwwwwwwwvwvwxwvvwwwhwwwgwxxwwvwwwwwxwxwgwxwwwwwwxxxwxwwwwxvwwxwwwwxxvfwwwvwwxwxxxxwvxwxxwwwwxwxvwwwwwwwvwwxwwhvwwvxvwwxvwwwwxwxwgwwwwwwxwwwxwwwwwwwxwwwwxwhwgwwxwwwwxwwxwwfxwwwgwvvwwwwgwgwxwwwwxwwhvwxvwwwxwwwwwwxwwwwwwwxwwwwgxxwxwwwwxwwwxxxwwwwxwwwxxwwxwwvvwxwwwvwwwxxwwwwwgwxxwxwwwwwgwwwgwVwvgwhwxwwwfwwWwvfwwgvwwwxgvfwwxwwwwwwwxwwgwwgwfwwgxxwwxxxxgwwgwwwwwwwwxwuxwwggwvwwwgwwwwwwghwwwwwwwxwxwwwwxwwwvgvwxwwxxwvwgwwhvfwwwwxxxxfwwwvwvwxwwwxwxwgwwwwgwxwwxxwwwwwvhfwwwgwwgwxgvwwwwwvfwfvhvhfwfvgvfxwwwwwhwvwxwwxwvwwxxwgwwwwwwgwvxwvwwwwfggvwxfvxfvgvwwwwxxwxwgwxwwwwwwwwwwwwgwgwwwwwwwwwgvxwwwwwwwgwwwxxwvwwwwwhgwxxxfwvwgwwwwwxwwwwgwwwxwxwwwwwxxwwxxwwwwwwwwwwwwwwvfwwwwxwvvevwggwwvxwvxwwvwVwwgghgwxxwwwwwgvvwwvvwwwwxwxwwfwgwwwevwwxwwwwwwwvwwvgxgwxxxxfxwwwwvxvwwvwxwvwwfwwwgwwwvwvhfvxwwwwwwwwxvvwwvwxwxwwwewwwxwhvxwwwwwwxwwwgvwxghwxwwvxwwwwwwwxwvwxwxxxwvwxwwXWgggwfgffwwggfwwfVxwwfgwWwwWvwwffffvgwvvwvwwggxgwwwvwwgvwwxfwwhwwfggxwwgvwwwVwggvwwvwfgwwvvwvwxgwxgfwwgwwvwwwgwxgwxwvwwwwwwvhwvgwvwxgxwxwxwwuwxwwwWwwwwxwwfvvgvhvwxwxwgwvwwwxvgwxwwwxwwwvxwxwvxwwvxwwwxwxgwwwwfvfgwgvgfwwwfwwgwffwfwfvWwfxwfwwWvffvuvhggggwwgwwwwfvxwwgvvwwgwwwfvwvwwuwwgvwwvwwgwgwghwwvgwgwwwvwwgvwxwvwwxwwvwwgwwvwvxwvvxvgwwgwwwWwwwxwwgxwwwwvxwxwwwfvwwvgwwwwwvxhggxvxvxwxwwwvwxwhxvxgvwwwwwwxxwhwwwwwggwvfwVwgfwwgvwwwvWexvfgWwggwguwwvfgexvgvfwvwwwgwwwxfwgvxwwwvgwgwgwxfgfxfwwfwwgwwxwuwwwwgfwwfwwxgxwwgxwwgxwwwwwxxgwgwxfwwwwwwwwwvwwwghxwxgwxxwwvxwwwwgwxwwwxwwvwwwwwvgxwwxwwwxwwvxxgxwxfwxfxwxwxvwwwwxwwwwwxwwghxggvwgffVwwfevfgeffgvfggwwxvwwwwwwgwvfvwfwvvvwwvWfVgvwwfwfVfuwgefvwgvgvgwgffgvwgffewwVfvfgfVfffefvgfevwwww7EUeVefVUfEUUdfffgVfFeVewwfffwvvvfwgvvgwwvWVfgvwwfwffevwgfVvwgvgvgwgfffVwwxwwwfevwwwwwxwwwwgwfVefVUfEwwVFewgfegefTfUvwgfffgwvVgvuvfwwwwxvgvwgwfxwwffgwvugvhgvfwwvwggwwxxwwxwxxvVwwvwgwwwVwgxvgxhvhwxvxwwugugggvgvgwfVvgwwwxwxwwwwfwwgvwgvgwgwvvgwwxwggxwvwggwggvwgwwvwwUwvfvwgvwwVggwffvvwwwwhwvvggxgwggxxvxwwxwwxxwvvwwwgwxgVwwvhvwwwwwwwwwwfwgvwfgwgwwxxwwvvvwgfwxwfvwgwwgwvuuvvhWxggvwvvwwwxwwxggvwfwwwwwWgwxvfvwxvvvvxgxxggfgwvuvfgwWwggvvwwwfwhwvwxgwwwgxwwwwhwwxgfvvwwwwvwwwwvwwwwgwxgWggfwwfwwggwghvuwvwwvwwgxxxwwwgwwwwvxwwwxxfgwgwwwfXxwxvvwgggvhxwvwwggwfxwwwvgwwvhwvwwvuggvvwhvhffwgxwwgwwwxwwwxwxwxwvggfwwwgxwugxggwwugxvxgwwxwgwegwvgvhgggwwvhvvwwwwwwxvvwfwwfgwwggxfwfvwwvgxvgvgwwwxwwwwwwvWwfwgWwwvghvvwwwwvxvvwghwvxwwxwvwxwxwwwwvfwwvWvgfvhvwxgwgwwWvgwxfwwxwwvwwfgwwwwfwgwwwwxfvxfwwwhwgvvgvwfwxvwvwwxwwwxwxwfvwwwwxvewxvwxvxwxxvwxfxhvwwwxggxvwwxwxwwwwwxwfwxwxwwfwxwwwwwwxwwvwwwwwxwVxwwwxwhgfwxfwwwwhgwxxxwwwwwxhvgwgwxvxgwwxfwxxwgwwwwwwwfgvvgwvwgfvwugggvWggwwgfvwwwuufwvvWggwwfgwvwwwwwwwggffwgwwvwWghwwWfwwwwfwxwxhwwxvwfvwwgwwxwfvwwxwwfwxxwwggwwwwwwwwgwxvffwwwwwwwwgwwxwwgwwwgWgvggwfwfgvxwfvwwwwwwvxhwwwvwxwwwwwwwvxxxxggfwwvfWhvgwvgvwwwgwgxwvxwxvvwggvwwxwgwgvufgwWvgwfevvwfwfuwfgwwwfvwvwwfwwvwwvgWffvgxwwwwWugwffvwwwgvvxvwxxwfvwgwgvwgfvwwwwwxwwwgwfwwvgwwgxvwvvwwvgvwwvvwwvwwvwxgwWvvvwhgwWvhvvvwxwwvxfxhvwxwwggxxwvxxvwvwvvwwwwvWfwggwfwwwgwwwxwwwxgwwfxwWwwwvfgfwfvvwvgfVgfwgvvfwwwVfvgfffVvgggvvvwgfgvxwwwxwgufwxwwwgfWvgvwfgvwwwxwwgvffvwVfvwggvffvggwxgvwwwwgvgvvxwxgggwwwwwwwwwwwvwwhfvfwwwwwxgufwxfwwwgfWvgfwgwwwwwxvwwwwwgxwwxwwwwvgwhwwwxwwxwwxwwwwxgvxwwwwwxwxwwwwhvwwxxxwwwwwwwxxwwwwxxwwgwxxgxhwxwxvwwxwwxxxxxxxwwwwwvwwwwwxxxWfggwvvvgwwfgwfwvwwgwwxvvwwxwwxhgwxgwwwwwwfxxwwwgxwwxxwxwgxwxxwxxhvfvwwxgwhghgwwvvwwgWgvhvwwwwwvwwwwwwxwxxwwwwwxwvwvxxxwxxxwfwwewwfvvwvwwxwwwwwwwwwwwvwwfwwwwvwwwxxxxfggfwevvgggvgvgwvVgvvvvwvgxwwwwgvwxxxfwxuwwwxgXwxvgvwwgvwwgwwxxxwxxxwxxvwwxweeufwggfgggwfwvfvggwwggwvhwfwvwwxxxxgwwwvwgwwwvwxwxwwwxxwxxxgwgwxwxwwhuxWvwxggwvxgwvvwwvwwgwwxxwwwwxvwwwwwxwxxhfwfugvegvgfggwvfxggvfwwvwvhwxwxxfwwxhwwVfwxxwwvwwxwwgwwwfxwwwxwwgxxwxwxhwwxwXfwfwvgegvggggwvvegwggvwxvgggvvwhvffwfgxvewgfvguwfgfvwgfvwedfWVfVuwevvwWffgfwgvwvwwwwFvwvffwwwwWuweffvwvwwwfwxxgVuffdwWfvgfvevfvwwwwwfwhwwevwWwwvfwwvwwgvwfvvwgfwwwvvwwwggwgUvfffvwwwwFfwvUfvfvvWevefevwfwgvwvvwvwwehfvwgvwewxwfvfvwwwwwwvfgvvwwwUffhvfvwxfvwwgfwwwxvwwwwxxxxfwwwwwxwwwwvwwxxxwxxwxxwwwxhwwwhvwwgwwwfgwwwwxxwxxxwxwxwwwwwwwxXvvfgwwwxwgvvvfwxgwvvwgwwfwwwxwxxhwgxwxwwvwwwxvxxwxwwwwxwxxhhggwwwghvxhwxhgwggfwwvWvhvhvwxwhfugwgggwuvvgvvWgxggxwgfgwduvWfuVgwVfvwgwwgvvwgvgwwwxVgwgwvwwwWgwVggwgwwwxfWwwuuvgfvggwVwhgvwwvwwwwwxVwwgxvwwwxhwwfvxwwwxwwVgvvugfvgwwwFfwfgfvwwwWfwVfvwfwwhwuwvxeffvvwwwwhgxgwxfvxwwwfwfvwwwggwwxwwwgwwwWwfxwxvwwVfwgwfuwggwvewfugwWgvvgWVwvdveuggVwwvegfVwggvgwxgugffgwfwhwtgfVwwvgvwwwvwuwvvggWvewvvgggwwvwwgvvwwwgvwwvhwwwxwuwwfwwwxvgvgvgwvwwwgwxwgugwvgwvwwxuggWvwvxwwwXvhgwvgfxxhffvgxwwwwgvgwgwxxggxxxwgxwwwfwwwhgWxwwwxhvfwffWfWevffvgFwggVwvffgwgeuwUffEgfgVxwgfffveguwgwgwwwVgVfUwgvggGwffVwvVvfwgfwvgxxgfxvvwevgVwgvfwvfwvwwwvwwgVwgwgvfgfwwwWwwgfwgvwwwwwvgwwVvwvvwfgfwgwwwVwWffwwfvwGwgfVwvfwgwwwwfwgxvfvggvwwwVwffwwwwwwvfgfwwwgUhgvwgwwggvwwwggwgvfwwxxxxwxxwwwgwgxwwvwwwwwwwwgwxgxwvwwwwxwwwwxxwwvvwwwwxvwgwvwxwwxwxwwwwwgxxwwwvwgxwvggwwwwxwwxxxxvwvwwwwvwwxwwwwwwwgwwgwwgwxgwwxxwwwwvwxgwgwwwwwwwvwxwgwxxwgwwxwxxwwwxwwxxxwvxvvwwhwwxxxwxvwgwwwwwgwwwxxwwwwxwwggwwwwvvwvvwwwwxvvwxwwwgxwxvgwgxwwwwgfwwhwvxwxwwvvvvwwwvwvwwgwxwvwfwwwgwvxxwwxwwwhgwvwwvwwwfvwwwvwwwwwwggwhwwgwhuwvwwwwggvwwgwgwgwfwwvwwwvwvwvwgvwxwgxwxwwwxwwwwwwwwgvwwxvfwwvffugwfwwwgvwwwgwwwvvegxgxwwwwvwwwwwgwugggwwwvwgwwggxwwvghxwwwvxvfwwwvwwhwwwgwwwwwggwwgwwwVwwvwwwwwxwwwwgwvwwwwwwgwwvwwwwxxwwwvgwvwvgfwwfvwwggwvwwvwwwguwgwwwwwxvvvgvwgwfhgwwwwwwfwvvwwwwwfvwwhxfwxxwwxxwwvwwwwvxxxwvgvwgguggwwxwwwwggvwwxwgfXgwvwgwgwvgwwwgxwwvgggwwwvwgwwwVwwwffWfvwwvwwxwfwwwwwgvwwwuwfxwwwwwVfvfgwwwvxxgwwgffwWwwxvfWfvwwvwwwwwxwgvwxwwvwwwwwfwwwwwwwwwwwwxgwwwwwffwwgwwwwwuxwwwwwvWfvwwwwwwvwwhwwwxwwfwxwhvxwwwgvwxwwxwwwwwwwvvxwwvwxvxwwfvwxwwwwxfgwwwwwvwwWvwvwxwwfgwwwwwxfwWvgxwwvgwxwxwwwwxwwvwwxwxwwgvvxwwfwgvwwxvxwwwwgwwxxwwwwhwxwwwwwxwwfwvwxwvwwwwxwwwwwwwwwwwxwgxvwwfxwwvwgwwwwwwwwwfwxvwwwwwwwwxwxwxxfwwxwwxxxwwwwvvwxvwwxxwxwhvwwhwgxwxhvwwgxwwwgwwwwwvwgwhwvgfxxfwffgwhwxwxwxvxwwxwxwxxxxwggwwwwwwxwxxwwvggwwgwgfwwwxwwwxwwwxxxwwwxwxwwwwwwxxwwxgwwxwwwwxxxwhfwwvgvxvwwwxxxxwxwxxwwwxxxxwwxwwwxhgwwwwwxxxxvwvvwvwvwwwgvWwgvvwwwwvvgxvwgvWvfvwwvwwwxvwwxwxwggwwxxvwvgvwwwvvwvxwwwfxwwwxgvgwwwwwwwwxxwwwwwxhwwxwxwwwxwwxwwwwwhwwxwxgxvhxwwwxwxxwxwgvxwwwxxwwxwwwxxxwxvvwxwwwxwwwxgwwgwwwwxxhwwgfgvggfwwwvVgWvgwwwggfwgfwwwfVfVvwwxvfwgwgwwvwwwvwxwvwxwwwvwggewwwwfwwxwwwgwgwvxggwwwwgvgvwgwvgwxwxxvwgwwxhxwxwwxxwwwvwwvfwwwwwwhxwwwggwwgvwwwvwwwvxgvwgguwfwvfwwvwwxwwwwwwxxxwgwvwxxgvwwwwwwwxvxxvgwwwwwxwxwwgwwxgvvwwwwxxwxgWwwwvfxwwwwwxxhxwwwxxwwxxxwwfxwwwwxxfwxwgvwxxwxwwwwxxwwxhxwwxwxxwwxwxwxwwwwxxwUfuwwVffvgwggfffwwwwwgffffxwwwwxxwwwwfwxvwxwxxwwwwwwwwfxxwwwxwxwgfvffwxxwwgwvgxwvgffwxxwxvwwwgvwwwwxwfwgwxwwwfgwwvvwgehfgvwwwvwwvwwwwwwwgwvwwwvwxhvvfwwwwwxvwwwwgvfwwwgwewgvwwvwwwxgvwwwwwxwwwwvwwwwwwgwwwfwwwwwwwwwwwvwhvwwfwwwwwvwwwwwhvwfwvwgwwxwgwwwxxxxfwwwxwwxwwwwvwwwvvxxwxxwwgwhwwwwwxwvfwwvxwggwgewvwwwvvgfvwwfgwgWuwwxwgwvwwgwgwwwwwwwguwvwwwVwvwfwfgvfwvxwwxfwvgxwwwwwwgwwwwwgwwvwwwwgwvgwwvwwwwwWvvxwwwvwwwvvwwxxgwwggwwgvgwwwwwwgwvwgfwwgwxwgwfwxxwwwwwfwxwwwxwgwvgwwwwwwwwwxwvwgWwvwhgwxxwgwwgwwwwgvggvwxwxwwxwwwwhwwwvwwgvwvwvwwfwggvvwvwvvgwwwvgwwwwuvfwwwwvwwwWgfwwwVvwwgvwvggvgwwggwgwwwwwwwvwxxgvwwwwwwwwvvgwwggwvwwVvxwgwwwgwwgwwgwwwwfvwvggvfvfwwgggwwwUvwxwwwffwwwwwxgwwwwwxwgwwwvvgwwgvwwwfwwwwvwwVvvwwfvwgvwgwwvwwvwwvwfhwwwwwwwwwwwwwgwwgggwvxgwxwvvvvfwwvhhwxwwwwgxhgwgvwvwwfgwwgwxfwwfwxgvwwwwxxggwwwxxwwwwwwwwwwwxwwwwwwwwwxwfxvwwgwwxhwwwxwwxwxwgwWwhhgwwwwvwwwfgvxvvwxwhwwwwxxwxwwwgxxwggxwvvwxxwwwwwxwwwvVwwwxwxxwwfwwwxwwvwfxwwgwxvWxwwwggfwwwuwgwwghwwgvgwvvwwwuwvxxggwvwwvvvwwgvwwgwuxwgwxwwxwggwggxwxwgfxvwxwwvwwvwvwxggwwvwvwwwwwwgfwwhvvvxxgwxwwwvwwwxwwxwwwgvwwvwwwwwwwvvxhvfwxggwxwwxwwwwvwwxxgwxxfwgwvwvxxgfwwwxwwxwwxgWwwwwwxwwwwwwxwgwfvwwxxgwfwvffwfVufVfFwfwffgwwfVfwgVgffFgfvgvgffeVxgfvUvwggwwWfffwwgfxwwufvgwwfvwwwvffxvgfgvwWwgwxwfwxggxgwwfvxgVxwwfgfwwVfxwwvgwgvwfwvvxxgffwWwwvfgfwwggvwgegfwwfxwvggfvffuxwwwhwvwgwvwgfwgVxxwwwwwwwwWwffxwwwxwwxwwwwffwwggfVwxxwxwwwwhwxwxwgwgwwgxwwxgxwwgwggwwxxwwxvwxwwwfwgxwwxxwwxwhxwfwwgwwxwwxxxwxwgvxwxxxwwxxvwxwfwwxxwwwxwxxwxwxxxwwwxxwxxxxwwwwVgvwwVfgefffffvvgffvwvxgwgfvwwgvfvvwgggguvwgwwWevfvgwvgfwxwwwfwwwvgvgfwwvwwgwwwwwwfvgfvwgwvgUeefgfggfvgwvwWdeEgeeegwvggffUfffvVvgfvgufgfgwwwwgffwwwvwuvggwvfvwvwwwwwffvwwwgwwwwvvfvvfwvvgxwxwxwvxwwwxwwwwvgfVewfffewffwVfwxwwwwgVvggwwwwwvwvxgwwxwvwxwxwxwwgwfvvwwwvwwwxwgxwxgxwwwvxwwxwgxwfwvvgvhwwfxwgwwxwwxwwwgwxwxfwwgwwwwwwwxwwwhxwxfxxhxwwxxwxwwwwxwxvxxxwwxwxwxwxwwwwwxwwwxwxwwgxxwwwvwvvxxxhwwxwwxxxwggwhhvfwvxwggxwwwwxwwwwwwxgxvvwgfwwxwxwxxwhwhgwwwwvvxwwhxwvwwwwxwwwwwxwxwwwwwwwwwwwvwwwgxwxwxwwwwwwxxwwwgxwwwwwwxwxxxwwxxxxxxxxwwxwxxxgwwxwhxwhwxwwxwhwwwwwxxwwwwwwgwwwwgwwwwxvwgwwvgvvwwwwwwwhgfxgwgwwgwwvxvwwvgXwfwfegvgwwwwwwwwxwwwvwwwwhwwxwwwwwwgwfwwwwwwwxwxvwwwgwwwfvwvfwhwwvwfwxgxwwwwhxgvwwxhwxwwxhgwfwufhvxwxwwwxwxwwwvwhwwwwvwwfwwwxwwwxvfwfwgwgwwwwwgwgwwwxwwwwwxwwwwwwfwwxwwwxvvxwwwwxwwwwgwwggwxwgxvwwwwfwhxvwxvwwwxvwwxwwgwwghwvwgvgwgwxwwwwwwxgggwxwgwvwwvxwwwwgwwwwxxwwwwxwxxxfgggxvwxxwxxwwxwhwwxxxwwxxxxwwwwgxwxwwwhxwxxxwwwwwxwhxwwvwgwwwwwwwxgwwwwvxxxwvwxvwxghffwwwwwwhwvwwxvwwwwxwxwxwwgwwhvgwwvvxxwgwvwxxwwwwxwwwvgwwwvfwwvvvwwwwvgwwwwwwwwwxwxwwxwwvxwwwxwwxwwvhgwwxyxxxxxxwxwwwwwxwwxvxwxwvxwxhxwwwwxwwwwwvgwwwhgfwxwvxwgvwggfwwwvxwxwwxwwxgxwhgfxwwwxwxwxxxwxwwwwwwgxxwxvgvwwwxwwwgxwwwwwwwwwxxxxwwwwxwxxwhwwwxvxwwwxwwwxxwxwwxxwxxxxwxwxxvwxxwxwhwwwxxwwxuxwwggwwwvgwfvxwgwwwwgggwvvgfvffwwvfwwwvwvxwwwxwgwfvwggvwwxwxxgwwwxhwgwwvwwxwvwgwwfwfxwvvgxwxxwfgvvwwwwwwwxwxwwwxxwvvwwwwwxvgfwwggvwwwwwwwwwwwwwxxxxwxwxxxwxxwxxxwxxwxwwxwwwwgwwwxwwxwwwggwwxggwxwvwwvwegvwgvwxwgfxwwwwxwxxwxxwwwxxvvvwwvuxwwwfvwxwwwgVwvwwwxwfwxfwwxxxwgwwgwwwxgwvvwwvgwgwwwwwwwxfgxwgvwwwwgwfwwxwgxwwvvxwvwwgvuwxwwwxwwxwwxfxwwhvwwwvxwvwgwwwgwwwwwxxwwwwwwwwwxxwxxwwgwwwwwwwxxfwvWwvvwxxwwwxwxwwwwxwxxxwxxwgwwvvggwwwwwgwvxwwwvvWxvwwwwgwwwwwxwgwwwvwWwxwwwwgwvhwgwwgwwwxwwggxfwwvvwwwwwvhxwwxwwwwwwvvhwwxwxfxwxfxwwxvvwwwwwwvwwwxwxwwxwwvwwwwwxwwvxwvxwwwwwwxwwgwwwxwwwwwxwvwwwvvwvwwwvvxwwwwwwwxwwwxxxwwwwwwggvxxwwwwxwwwwgxwxwwwwwwwwhwwwwwwxwwvwwgwgwvgxgwxwwwwxxwvhwwwwwxwwwxwxwwxxwxwwwvwwwwwvwwxwwxxwxxxwxxwwwwwwxxvwwgwwwwwxwwwwvxwxwwwxwgvwxgwggwfgwgwwwwwuwwfvwwxgWvwfgvvuwwwVvvvwvwhvwvxxwhwvwvwwxwwwwwwxwwwwxxwwxgwvWvwfwvgvwwwwVufvvwxwggvwwwwvwxwwwwgwvwfxwxwwwwwwgwgvwggvwwfxwgvwvhfgfxxgvvwfxwwwgwfwwwwwwhwhwgwxwwwxfxwxxwwwwwgwwwxfwwxwwxwvxwwxxwwxwxgwwwwwvwwwggwwwwxvwwwfwxggvxwxwwvwvwgxwxxxwhwwxwxwwwwvvwwxxxxvwwwwwwwwgwwxvwxxwwvwwgwxwwwvwvwwwwwwgwwgwwwxwwxxxwvvwwwwxwwwwwwhwxwxwwgvwwwwwvwwwwwxxwxvwwwwwwwwxgxwwvwwwwwxwxwxwxwxxfvxwgwggfggvgwwgwwvvwwwfhvwfgWwfgguvwgwefvWwwwwhwwvWwxwwgwxgfwwwwwwxwwwwwvgwgvgfwvgwfvwwwwefggwvwwwwgvwfwwwgwwwgwwgwgwvwxxwwvgvvvwxffvvgwvwwhwwvXgvwvxwgwvwwwggwuWwwwvhxwwxxwwvxxwgwvhvwwwxxwwwwvwwgxxwwwxxvxwwwuufggwwgvwggwwwxhgwwgwvgWuffgwwwwgfvwvvwwvvghwvhwwuwWxwgfxggwwwwwwwxwwxwwvvxgwffgfwwVfwwWfvwgwvwxfwgfwxwvxgwwwxwxvwwgwvwxwxxxwwwwgvvwwfwwgwvwwvwgwvvwxxgwwghvxwgxxvvwwwgwvvgwwwwwxxwwwwwwxvwwxxwwwwgxxxvxxvwxwwwwggvwwvgxvgwfvgfxwgvwwwvggfwfvxfwgvfwgwwwwwxwwwhxvvwwgwwvwxwxwwxxwxwvxhwwfwwwvwwwxgwfxwwwxwvwwgwwwwwwwwwwwvwwwwwwwwggwwxwwwwwwgwwhwwvwwgwxxwwwwwwxwwwvwwwwwwwxgxwwxwwxwxwxxwwxwhwwwxwwwxxwwwwwwxwwxwwxwwwxxgxwxwwxwxxxxwwwxwfwwwwxwwwwxwxxwwwvwwwxwxxxwvwwxwxwxgwwwwgwwwwwhwxgvwxgwxxxwvvvwwwgwvwvwfwxgxwwgwwghwwwwxxwxxwwwxwwwwwxxwwwwwwwxwwwwxwxwwxwwwwxxwxwwwwwwwwwhwwwwwwxxwwxwwwwwxxwxwwhxwwxwvxxgwxwwxwwwwwgxxwxxxwwwwxxxxgwwwwwwxxwhxwxwwwxwwwwxwxwwxwwghwxxwxxxwwxxxvgvghwfwwwxfwwhgwwwwwwwggwwwwxwxwwxxfxvxwxwgxxvwxwwwxwxwwxxvwvvwwxvwwwwwxwvwwxwwwwwwwwxxwwxxwgwwwwxvwwxwvwwwxwwxwwxwwxwhhxxwvvxwxwxwhxwwwwwwxxwwwxwwhwgvghwwwwwwfgxwwgwfwwwwfwwwxwwwwxwwxvwwwwxwwvwwxwwwwwwxxwxwxwwxgvvwxxwvwwwwwwwwvvxwwwwxwxxwwwxwgwvwxvwgggwggwvwwwffwuffggvWVwvwwwgwwwvvgwwwwwuvfewwgvfwxfwxwwwwfwwwvwgxgffvwugvgwgWVvwvwwwgwwvgvxwwwwvwfvwwwwwwxwvxxwwwxhggggwgwwwvwgwwxuvwefwwgwxwwwhvvwvwvwwwwgwwgxwwxggwwwwwgwxwwgwfwwwvwwgxwxvwfgwwwwxhwxwxwwwwxxgwwwwgvwwwwvxvgvxxxwwwwwxwxxwwxwwwxxwwhwwwhwwwwwxxwwxwwwwxxwxvwxxgwwxwwxxggwwvwwfwwwwvwwvfgwvgxgwwgwwfxwwwwwwxwxxwwxgwwwhwwwxwxwwwxxxwxxxxwwwwwxwxwxxwxwxwwwwwhwwwwwwwwwwwxwxwxxwwxggwwwwwwvwfxwgvxwwxxffwwvefVwvgefgwwwwgxwwgwgwwwwwwvwwvfvgvwgwgwwwwwgwxwwwvwwxvffwwvfvgwggegwvwwxwwwwgxgxwwxvwwvwwwwwwwwvxwxwwwwgxvgwhvwwwwvwwwxuvwefvwgfwwwwwvwwgwxwwgwwwwgvwxwwxvwwwwxgwxwwwfvgwvwwwvwwwgwwxxhwwxxwwvvwgfvwggvVvgwvgvvwxwgfvwWgfVvwvefvgwwwgvwwgwwxwwvxwWwwWffwvxxhwwvwwwwvwwvwwwwxgggwwfwwwwxxxgxwwhwwwwxgwvgwwwwwwwwwwxxwwwwwwxhwxfxwwwgxwwwwwwgwggfvwwwwwwwwgwwgvwvwwwwvvxvwvwwgxwwwwxxxwwwwwwwxgwwwwgwfwggwwgxwxvwwxwvwwwwwwwgxwffwgvuVVwvwwfgwwwffwvuWVwgfgfwgxwwfwwvwwwwgwvxxwuwwufvwxxvwggxwgwwwgwwwwxwvvvggwwvgwwgxwwwwvwgxwgwwwwvgwvwwwwxwfwxwxxwwxwwvhxvgwwvgwwwwwwwuwfuwvgwwwfgwwwwfwxvvvwgvgwvxvggwwwxwwwxwwxwwxwwvfxwvwwgxwwxfhwwwwxgxwwwwwwwwgwwwwxgwwwwxxxvwwwwxwxwfwwxgwwwwgfwwwwxwwwxwxwxvwxgwwwwwwwxwwwgvwwwwwxxxxxwvwgxhgvvvgwwwwggvwwwxwwwwwwwwwwwwvwwfvwwwxxwxwgwxxwgxwwwxwwwwxwwxwxwxwxxxwwxwwwwwwxwxwwxwwxwwwwxhxxxwwwwwhwvwwwvwwgwxwvxgwwwwxfwwwVvwwgvWwwwwvwwfwwwwwwwwgxvwwwwwgwwvfwwgxwwwwwwgwwwgfvWvwwwggwwwwwxwvgwxxfwwgxwwwvwwwwwwfwvwvxwwwwwwhwgvgwxwwwgxgwwvwwwwwwwwfwxwwvwwwwwvwgvwwwxxwwwwwgxwwvwwwxxwgwwwwwgvwwwxwwxxxxwgwwwwwwvwwgxxgwwwwhwgvvfvwwwwfvwwwwwwxwwwwwwwxgwwfwfwwxwwwwwvwxgwwwwwfxwwwwwwvwxwwwwwwvgwwwxwwvvwwfhwxgwvwwgwwvwvwvgwxwwggwxgwvwwwgwwvwvwfwwwwvwwvxwfxwwxwwwwwwxxgwwgwwwwwwvxwwwwwxwwwwvwwghwwwvxwwwwxwgwwxwxwggwwwxwwwgwwwxwwwwvwwwwwwgwwwgvwwgwwwwgwwwwwwvwwxvwwgwgvxwvwvwwwwwgvgvwwwwwhxwxwwwwvwwwwwwgwwwwwxwwgvwwgvvxwwvwwfgggwwwwwvggwwhwhwwggvwwxwgvwvgvwwwwwwxwgwgvwwxhwxxhwwwwwgwxgwwwwwwwgwwwwwxwfwgwvxwxgwwwwvwhwwwwwwwxwwwxwvvwvwwwwgwwgwwwxghgwvwwwwwwwwwwvhgwwgwwwgwvvvgxwwwgwwwxwvwwxwxwwwfwwwxvfwwwwwwvwwwwvwxggvgvwwfwvwwwxwgwwwwwwgwfwvxwwgxwgxwxwvgvwwgwggwwhwwvwwxwxwwxwwwxwwwxggwwwwwwwwwwwwwwwwxwwwvgwxxwwwwwwwvwxxwwwwxwvwhxvwwwwwwwgwwwwwwvwwvwvwvgvgvwwgwgwwwwwwgwwvwvwgvgwwwwvwwwwwwvxgwwfxgwxwwwwgwwvvxxwwwwgwvgwxwwxvwxvhwwvwwwwwfwxvgwvwgwvgwxgwxwvwwwxwwwwvwwvwfvwvwwwwvwvwwwwwwwhgwwwwwwwwwxxxwxwgwwwwxwxvwvxwwwghwxxwwwxwwwwwwwhwgwxwwwvwxgwfwwwwwvfvewwwgwvwwwwwfwwwUwwvwfvwwwwwwfwwwwxwgfwwxxwwgwwwwxwgvwwgxwwxwwwwxgwwwwfwwgwxwwwwxwwwfwvvgwwwxvvwwwwwwwwwvwvxxwgxwgxxvwwvwwwgwxhwgvwwwwwwxwwgwwwxwhwwfwwwgxxwfvwwxwwwwwwwxxwgwwvfxxwwwwgxxwwwxxwwwxxwwwwwwxwgggwwwwwwvgfgwwwgfwwxgxgxwwxwvwgvvvwwwxwxwwwwxwvwwwwwxggwwxxwwxxxxwxwwwwwwxwwwxhvxwxwwxwxwvggvwwwwwxwvvwwxxxwwwwxwwxwxwxxxxxwxwwwwxxwxwxwwwwwxfwxwwxwvxwwwwwwgwwwwgwgugvxxwvwxvfwxvxwxfwxwxxxxxwhwwvxxvvwxwwwwxwwgwwwwwvwguwwvwvvwxwwwwxgxxxwwwwwgwwwxwvvwwwwwwxwwwwwwwxwwwwxwxwxggxwhwwhvwwxvvwwxvvgxwxwxwwwwhwwxvwwwxxwwwxghwgxwwgwwwwwvgxwxwxxwxxwvwxwwwwwwwwvvwwwwvwwvgwxfgwvwxwwvvwwwgwgWhxwvgvwwwwgwgwwwwwfwwvvvfxwgfgwwwwwwwxwvvhwuwvwwwwvxwwxxwgxxxwwwxvvwvvwgwwvfvwwwwhfggwwvwwgvwwwwfhgxwwwvgwwwgwxxwwwwwwuvwxwgvxwwwxwhwwgwvvhwxwgwwwwxgwvwwvfwwwfgevvfwvwxwgwwxwwwwvwxwwgxvwwfwvwwvwwwwvggwwwwvvwxwxwwwxwwvhWvwwvfwwvwgwggwgwwwwgwwhwvvvvvwxwwwwwwwggvvwgwwwwwxhxvwwwwvwwwvgwvvwvwwwwwgvvwvgwwfwxwvxhwhwwwwwxwxgxxxgfwwwfwxwvwxwwwwvwwggwhwxwwwxwwwxxxggvwfwwwweggggWvwhvfgvwxgvwwxwwwhgwwfvvwvgwfwgvwwwvwvvwfgvwgvVffevwwwwfvxwwfvxwwgvwwwfWvgwwwwgwwxfwfvwwxwwfwxwxwfwvvgvVgvewwwwvvwwwgwwgxwwwhwgwwwwwwwwwxwfvwxwxvhwwxvwwwgwwwggwwxwfVvwxwwwwxwhwwfwwwwwwvwgwvxwvwwfwwwwwgwxwxwwwxwgwwwgwwwvwwwwfvwwxgwwxxwxwxxwwwvwxgwwgwwwxvgwwwwwhwwvwwxwwgwxvwvwxwwwwwwhwgwwwwwvgwwvwvwxxxxwwwxvgwgwxxwwwvwwwwwwwwxwwwwgwwfwwwwwwwvwvwwwwwwwwwwwwwxgxwxxxwfgwwxwvwwwwwwxwwwwwvwxxwwwwwxxwxwgwgwxwwhwwwxwxggvwwwvwxwwxhwgwvfwwwwwwfwvwwwwwgghwgffwVwvwxwwwgxvvxwwwwwwfwwwwwwxwwxwwwxwgwwvwgvwVwvxwwvwwwwwxwwwxgxwwwwxwwwwxwxwwxgwwvwxwwwwwwwffwxxwgvxwgwwvgwxwvwwvwxvxxwwwxxxwwxxxxxhgwwwxwxxwgwwwwwxvggwgwgfwfwwgwxwgwhwfvffvgwwgwwwwwwwwxgvgwgxwgxwvwxxwwwwvvwwvwwwxwwwwwwwxwxwwxwxxxwwwwxxxwwwwxvwwwgvgwwxwxxxwxwwwwwwxxwxwxxxwwxxxxwwxwwxwgxwgwwxwwwxxwxgwggwfgwfWufvvfwxwwwwwggwwwWuffvfvwwwwwwgvgwvwvvwwwwwwUgfwwwwwvxxwwwwwwgwwhwxwgwwwgvgwvvwwwwxwgwwvxwwwwwwfwwwwwwwwwwwxwwxwwwvxvxwwwwwwwwgvgvwwwUgfxwwwwxxvfwfxxwvwvwwvxxwwgxgwfwfwwwwwwwxxwxxwwwwwwwwwggwxvgvvwwwhhxxwwwvwwwwwwwwxxxxwvwwxwwwxwwwwwxxxxvwvxwwwwvxwwxxwwwvfguwwwwwwwxwxwwwwwwwwwwwwwwwUfevvfffVfggfffvfwwwwwgvxwwwxvwvwwwwwfwwwwwxxxwwwwwwxgvxwxxwwxwwxxwfvffgfggwfwgwvgwggwffvhgfwwwgewgwgfvwfufwvfvWdfgfffwefvwwWffwgwfgwxwfgwvwwWfgffefvfwwwwwfUffgfwdvgfeggfgwwvggvgvUfwwggwvwggwwgfgfwggwfewwfffwfvwgVuVvfgwwUfvvwgwgwwhffgwfgwfvwwefvfwgwwwwwwWvUfwgwfgwwxwwugffwwwwwwxxhfvwwXffwxwwxwxwguwxgwwxwwgvwvwggwvwwgvvwwVvwwwggwvwwwvwwwwwvxwxwwxwwxxfvvwwvwwvvxwwwxxwggwfwwVwwwwghgwwwwwxwwwvwgfwwwwgxxwwwwvvvwvxwwvwxwvvwwwwwwgvvvxxfwwxwwxwwxvugggwvwvwwgvvwgwxwwwxfwgfwxggwxwvwxwxwwwwwwwxxxwxWgwwfggwwwwwwwgxwxwwwwwwwxwwgvgvwwwggggwwwwvvgvwvgwwwgxfgvvgxgfwwfwwwwwwxxwgvvffwwVuwwwwvxwxgwwwwwvwgfwwwgwfwwwwwwwggwwvwxxvwwwwwggwvwvvwwVvwvwwvwwwwwwvwVwwgwwgwgwwwxvWfvvgvvvVvwwwvwvhwwwwwxfwwwwwggwwvwwwfwwvwwwwwggfgvwwwwwwgewwggwgwvvwgwwwwwwxgwwwwwwwwwwwwwvfgwwxfhwvwwxwwwwewvfxgwwwxxxwxfvvwvwwvvwwwwxxwwwwgwfwvgwwvgwwwwwwwwwgwwxxwxxwxwfvwvwxgwwxwvwwwwggwvwhwwwwvwwxwwxwwVvvfgvgwgwgvwxxxxwxwxwwvggwgwwwwwwwwwwxxxwxxxwegwwwfwgwfwwwwwvxggwgwwwwwwwvvxwwwwgvvwwwguwevwgwwwvwxwhfwvxwwwwwwwxxxxxvggwwvvfvvwwwwwwxgwxwvwwvgewvvwfwvwwxwwwwxgvgwvwwwwwwwgwxgwwwvvwwuwvgwvwgwwwwwvwghwwwfvgwwwwwXvwfgvvvewwvwvvvhwwxwxwwwgxgvgwvwhwwwwwwwxwwvwwwxggxwxwwXgwgwgggwfwwvgwwwxwwwfvwgvgwgWwgwvwvxwwfvwggxfVgvwgwwwfwwxfwxwgwwvwfwwwvxwwwgwwvwwwwwwxwgwgwgvxwwxwxwwwwfxwwwwwxvwwwwwwwxwvgvwwwgwwwwxwwwwwwwwgwwvwwwxwxvwxwwvvgvvwwgwwxwwwvwwwxwwwxwvwwgvxwxwwwxgwwgwwwwxxwxvwxvwwgwwwwxxwwwwwxggwwfwwwxwwxgggwwvwwwwxxwvfwxwxwwwxwwgxwwgwwvvwxxxxwwwxxwxgvxxxxwxwvfwxwwxwvwwwxwwxxxxwwxxwxwxwxwxxxxggwwwxwvwwwvgwwwwwwvwwgxxvgvwxwwwffwwwwwwwgxxwxwxxwvwwwwwwwxxwxwwfgwxwxwwwwwwwwwvgxwxxwwxggvffwwwwgwvwgfvwwwwxwwgwwwffxwwwwwgwgwxwwxwwwwwxwwwxwxwwwwwxxwxwxwwwxwwwwwwwwwwwxwwwwwxwwwwwwxwwwwwwxhwvwvwwwgwwwwxwvwxxvgwwVwwWwggwwfwvwwxwwwggwxwxxwwwvwwwvwvfwwwgwxvwwxwwwxwffwWwgWwwxwwvwxxwgvwxgwwxwwwwwgwgwwwvwwxxhwwwxxgvwvwwfwxvvwwwwhwwgwwwxxfwwxxxwfvwwwgwvwwxwwvgwwwwgwwwxgvwwwwwwwhgwwwwgvfwwwwwwwwggwwvfvvgwxwwxwwwwwwxwxwwwxggvgvgwwxwwxwvwwwgwwvwxwwwwwwgvwxxwxwwxwwwxwwwxwwxwxwxwwvwwwhwwxgxxwwwwgwwgxvwwxgwwwwxwwxxwxgxvwxwxwwwwwwwwwwwxwwxwwxwwxxxwxwxwwvggwwxwxxwwwwwwxxwwxxwwwwwwwwwwvwwwwwwwgwvvgvwwgwxfwgwwwwwwwfwwvggwwwwwwwgwvgwfwwwwwwwwhwwvwwxwwwwwxwxwwwwwwwvxwwgwwwwxwwwwxwwxwwwfwvwvwwwwwwhwwvwhwxxwvgwwgwgvwwwwwwwwvvwvwxwwvwwwhwgvwwwwwxwwwwwxwxwxxwwwwxwwwwxwvwfwxwwwwwwwwvwxwwwwwwwxxxwwwwwwxxxwxxwwhwvwxwxwwxwwxwwgxwxvxwwxxwxxwwgwwgxxwwxxwwwwxxwxxwwwwxxwxwwwxxwxxwhxxgxwgwxwwhwwwxwxxxwwwwxwgxhwwwxwwwwxwwwwxwxxxxxwvgwwwxxwxxxwxvvwwxwwfwxwxvwwwxwvvvfwgxxwvgwwwwwxgwgwwvwxwwvwwwgwwwwhwwwwwwwwwwgwxgxwwfwwgwwwxwxxwwwwwxwwwxgwvxwwgxwgwwxwxwxwwxwwwwwvwfwfwwxwwwfwwgwwwwwwwwwwwwwwxwwwxwwwxwwxxxwwwwggwxwwxxwxxwvwwxwwxxxwxwfwwvgwvgVuxwwxwwvwvwwwgvwWewwvgwwwwgwwvvwfgwwvxhwwwwwfxwwwwwwwwwxxxwxwwvgxwwxwwwxxgxwwwgvwwwxwwgwwwxwwwhwxvgwwxgxwwgwxwwwwxwvgwwwwwgwwwgfwwwwgxwwxxwvvgwfxxxxwxwwwwwggwwfxwwwxwgxxwwxwwxxwwwxxwwxwwwwwwwwwwxxwxxwwwxwwwwwxwwwxwxwwwxwxwwwwxwwwxwwwwwwwwwwwwgwgxwwvwxgevfwwwgffwwwgwwwwwxwgwvwxwxwvvwwwgxwwvwgfegwvwxxxwwgvvwvvwwwwwfgwwwgwwwvfvwvwgvwghwvwwwgwwwwwwwwgwwwvgxwwwwgvwWvwwxfhwwwwwwwwxwxgfvwwwwwwwwwwwwwwwwwwwwgfgggwwwwwvvwhwwfgxwwwwwxwwwwwxvwwwwwxwggwwgwxwwwwvwggwwwwwfVgwgxwwuwvwxfgwwwgwwguwvwxgwvwgwxwwgxwwwgwwwevwgxxwxxwwwvwwgwwvgwwgvwvfuxwwvxvwwwfwhgwgwwvgvgwvwwwwfehwgwfwwgwwwwwfxwvwwwwwgfwVxvwwwxwgwffwwwwxxwwwwwgwvgwxwwgfggfwwxwwwfggxvxwgvwvwwwwwwxwgvwwfwwwwwwwxgwwwvwwwwwgwwfwvvwevwxhfugwvwWvwxwggvwwwwwxgwwvvwwgfgwgwwwxugfvwwwxwwwwwwwwwwgvgwwwxwwwwwwwwgwxwgvwfxwwgfwfwvwwvwgefwgxvwwgwwwwgvwWvwwwwggwwvvwwgwxwwwhugwwvxwwwwwwwvgwwwwwvggvgfwvwwgwfwhwxfwvwwwwwxwwwwxfwwwwwgwwwwwxwgwxxxwwxxxxxwwwxxxxwxwwxxxwxxxwxxxwxxxwxwwxwwxwxwwxxwwwxwxxxwxxwxwvwwwvvxwwwwwvfwwwvgwwgefwwwwhffwwwvwwwwvxwVxgwfwwwvwwwwwwwgfvwwxxwwwwwwwwwwwgvwwgwwwxwvwwxgwvgvfxwwwwvwvwwwvwWwwgwxwwgxwwwwwxgxggwwwwgwvwvwwvwxwwxvwXffgwvwxwgvwwgwwwwxwwwwwwwfvfwvwwwwgwvwgwxwwwwwwwwwfwvxwwgwwwwwvvwwxwwwxwwxgwhxwwxxxwwxwwwwhwhxxxwxxwxhxwgxhxxwwwwxxxwxwwwxxxxxxwwwwxwwwghwwxxwwwwwwxwwwvxxwwxxwxwxxwxxxwxwwwxxwxwwwxgwwwgvwwwxwxwwwxxgvwwwwxxwxwxxwgvwwxxwxwwwxwxxxwwwxvxxxwxwxxxxxwwxxxwwwxwwxwxwxgwxxwxxxxgxwxxxxxxxwxxwxwwwwwwwwwwwwfxxwwwxxxxwwwxwwwxxwwwxxxxwxxwxxxxwxwwxwxwxwwxwxyywwxwwwwxxxxxgufwfwwgwwxvgwxhffffgvfffwvvgwefwgwvvwwwvgwwvwUfvwvwwgvgvwwwgvwffwwwwwwxxhuwgfwwwgxwvggeUfffffVeffeVwvveVwgfffgggwvwwgwgffvwwwfwewvgwvgvwwvgwwgvfUwfgfvwgwgvwwwwvwwvwwwwwwgVevvfffwvwfwwwwvfffvwwgwxwxwxfffwwfwwxwwwwwwwwwfwwwwwwwwwxxxwwwwwwxxwgxxxfwwwxwwxxwwwwxwxwwxwwwfgwwxhwhwgvwwwwgwwhwwwxwwwwwgwwwwwwwwwwwwxhvxxvxgxwwwxwxxxwwwwwvwwwwwwwwwwxwxxxwwwwxxxwwwxxwxxxhgwxwgwwgwwxxgggwwxwvgwxxxggxhxxvxwwwwwxxwwwwxxxxhwwwwxhxxvggwvwwvwxwwwwwvvggwxwwwwwwwvwwwwxxxwwvxxhhxwwwwwwxwxxwxwwxxhwwwwgwwwwvwxxwwwwvxxwxwxwwxxxwxwxwwwxxwwwwfwgwxwvxwvggwwwxxgwxwvgwwwwwhwhwugggwvwwwgwgwgwwgwwwwwwgwwwwwvgvwwgwvxvwvhwwwwvgvvwvgwwwwgwwwwwgwwvwxxwwwvwxxxgwuxvgvXwvvxvwvwwwwwwwwwwwgwwvwxwwwwfwfwfwfwwvgfwvgwwwgvwgwgwvxhwvxwgwwxwxxxwwvwxwwwxxwwwwxfwgwgvXvxevxfwwxwwgvwwxfwxwwwvhvwfwxvwwwfwgwwwgwwwwwwwwhwgwxwxwgvwvwgugwfgxvwxwvwgvwvfxvwfwfvgwfwvwfwvfwvggvwgwwwwwwwgvgwvwxvwwwgvwgvwgwwwwwwwwwvwwwwwwwwwwvwgwwwwwxvwwvwxxxwxxgvwwhwwxwwxxwwwxwwwvvwxwvwwxwhxxxwvvxwwwvwgxxxfwxwwgwhhgwwwwwwwxwxxxwxwwxxvwwwwwwxxxxvwvwgwwgwxwwwwwwwwvgwwwxwhwvxwwwxwwxxxxhxhwvwxwwwwxxxwwwwxxxfwgwgwwwwxwwwxxwwwwwvxxwxxxwxxwwwxwxxwxwxwwfvwwxvxgxhxwwwwwxxwfwhxwwwgvgvhwwwxwxxxxxxwwwwwwwxxxxghwwwxwwwwxwwwwwwgwwxxwwwwwwwwxwwwwwxxxwwxxwxwwxwxwvwwwxxxwwwwwwwwxwwwxxwxwxwxwwwxxwxxXwwwwggwwvwwwwwfwgwfwwwwwwwvfvgwwgwfwwwxwvwgwgvwvwvwwwxxwxwwxwggwwwfwggwwwwfwwwwvvwggffwwffxwxxxwwxxvwvwgvgwwgwwwwxwxxxwwxxwwxxwwwwxwxxwxxwxwwhvwwwxxwwwxxwwwvfwxwwwwwwwwvwwvwxwwwgewgfvwwxwwwwvwxwxxxgwgxvwwvwwfxheVvwwwffwfhvvgwhefvewggwxxwwxfgguvgvvwwxvvwwwwwvwhwwxxevvvvwwwxxxwgwfghwwwghffvfwwwwxwwwfgffgvgwwwgufgwfvgwwwwwwxxxwwggvwwwxwxwwxwxwxxxxwwwwxwwxxwwwwxxwxfwwfwwwwxwwhhwwgxwxwxggvvwwgffwgwvwxfvwfggwxxwxwxvwwvvwvvwwwwwwwwhxvxvwvwwwxwwxxwwwwxwwwuvvvwgwwxwwwwhvwwwxxxwvhxwghwgwwxxxgxwwwwwwhwhxgvwxwwwxwwxxwwwxwwwxwwwwwwwfwwgvwwxwwwxxgwwvwwxwxxwwxxwwxfffwwwggfwwgwwwggwggvwxwwxxwhwwfwvfwwwwwwwwwhfwwxwxxxwxggwwxwxWvwwwgxwxwxggwvwvwxwvwxvwwxwwhwwxxgwgwvxvvvwffwgwvwwvwgwwvwwxvvwgxexwhvfwwfwwxvgwgwwxxwwgxxwwwvwwgfvfgwuwwvgfwvwgwwvwwvwwgwgwwwwwwwgwwwwwwwvwxxwggwwgwxwfwwvwgvwgwfvwwwwgwgxwxwwwvwwwwgwxwwhwvwxwwwwwxxwwwxwwwwwwfwwwxwwwhwwxwxwwwxxxxwxxwhwvgfwwwwfwwwxwxvwwwwgvwxwwvvwwwwwwwxwwwgVgwhvvxxxvvwwvwwwwwxvwvwwwwegfvwwvVfgwfwfhVggwgewvgwxwffwguwfwwwwvwwvwwxghVwwxwvwwwxwhwwggxwwgXfgvgffvwxwwfvwgvfvxxwwwwWvwgfxgvwghwxwwxwwvvfwwwxwfegwfefgwvvwvWwwfgwfvggwvuwwwggwfwwwvvwvvghvwwgwwwggvuwwwwwvgwwwhwwwwhvUvffwuvvuwVwwfvwwwfffffgvfvvfwvwvgWffwfvfvufvgvggvgggwgwwxwvewvvggwgvfvvwwggvewwwwvvgwwwgwwxwvgwwwhgwvwvwvwvwwxwgwwhwwwwxvxwwvgwgfwvwwwgwwwwwvwwwWfvggUgfvWwwWvwegwfwffggwgwvwwwvWwgwwgwvgwvvVwfwfgwvvfgwvwxwwwwgwwxwVwwwwvXffgvWwwgvvgggwgggvgffgfwfvgvfvuvVggvvgvwvwffggwffgfwwvwxwgxgwvvgwwwvwwvwfgwwwwwwwgwwxwWwwwwwwvggxwwhwwwwwgwwxggwgwwwxwxgwwxwwgghgwhwwwwwhxxwwwvwwxwvvwgfvvfwvgvvxWwwwgwvvvvwwxWgwfwwvwvvwgwgwvxfvwwwwwwvwwwwwxwxwgxwhwvffvwwvwwvwgwwwgwwwgwvwgwwwvwwwwgwwvgwwgwwwxwwxwwwwwxwvxwgxgwvwwvwwwwwwxwxxxgwxvwwwgwxxwwwwwwwwwwwxwwxwvvwxwwwxxxwwwxxwwwwwxwxxxvwwwxwxgwgxgxxwxxxwwwxwxxxxwxwxxwxwwxwgwxwwwxwxwxwgxwwwwxxwhgxggwgwwvvwwgxxgwgwvxgwwfwwwwggwwwwwwxwwxwxgxxxwwwxgwwxxwxxwwwxgxwwwxfwxgxwgwwwwxwgvwwwxwxwxxwwxwwwwwwwwwxwwxxwhvwwxxxvwxwwwwwwxwxwhwxwwwwwgxwxwwwxwxxwhwwwwxwvxvvhwfgwwwvwwwwxwwwwvwwwhgwgxwgwwwwwwwxxwwxwwwwxgwwwwxwxxxxxvgwgwwgwvgwxwvwgvwxwxxwxxwwxwvxwwwwwxwwxwxgwgwwwWxvvxwwxwgwwwwgxwxhvwwwwxxwvwwwhxwxxvxwxxwwxwwwxxhwwwxwwfhhgwwwxwxwxwgfgwgvwwwwwvwwwhxwgxxwwgxwwwwxwwxwwxwwwwxxwxwwxxwxxwwxgwxxwgwwwwwwwwvxxgvwwwwwwwfwvxwwxxwwwxwwwwxxwwxwwwwxwxxwxwwwwgfgvwwhwwgwwwgxggwvhxhghwwwwwwhwwgwwwwgxwxwwwwwwvxwwxvgwwfwgwgwwhgwwwwwwwwgxvggxgwwwvwwwwxfwfwwwwwgwwwwwwgxhwwhwwwwwxwwxfwxwgwwwxwwwwwwgxwgwwfxwwwwwvwwwwgwxwwxxxwxwwxwwxfxwewwxxxxvwwggwwvwwwwxwwwvvwwwwwvwxwvwwwxwwwwvfwwwfwvwwxxwwxxwgfvwgwvwwwvwwwwwwwxwwwwvwwwvwfwwwwgwwwwwwwxwwxxxwwxwwxwxwwxxvwxvhwfwwvwwwwxwwwwwwwxwxwwwwxxwxwwhwwxxwwwxwwxggwggfvgwhwwgwwwwhvwwwwhhwhwwgxwhwgwwwwhvwwxxwwwgwwxwghxwvgvwggwhwwwxxwwwghwgvvwwwwwvwwxxwxwfwvwwwvxwwxwgwwhxxwwfwwwwxwxvwfwwwxwwvxwwfwvwwwwxfwwwwwwwwxwhxvwwxxwwxxwxxxxwwwvvwffgevwuwugwgwwwwvfwvwwwvvwvgwvvgvwvfgwwvvvvwvwgwwwgwwxvwwwxvvwvwwvxxggwwvffugffvwwwvwwxwggwvwgvwgwvwwwwggwwwwwvvwwhwwxxwhxwxxwwxwxxxxwxvxwwwxwwwggwxwwgvgwxxwwxxxwxxxwwxxxxxxxxxgggvfXgevgwgggwgxvfggwvwhwwvwvwgxvggvWwwVwgwxwwwgwvwgwwwwwwxwgwgwxxgggwvwxgwfwwxxwwvvwWgffwfffwwwwwgwwwxwwwhwgwwggwwwgxgxwwwxxxwxwwxxxhwwxxxgvvwxwwwgwwfwggwwwwwwggwwvwxxwxxwwxxwxxwxwxxxxhwwhwwxwwwxgwwwxxwwwwwgwxxxwwwwwwwwfvwwwxwwwwxfwwwwxxwwxwxVvgvwwwwgffffwwwwgefwffgwfwwwwwwxgggUwvvxwwxwxwwwwxfvwwwxwwxxwxfwwwxwwwwVevgfwfwwxwxwfgfffwwwxwwwwwffgfvxwwwwxxwwwwwwwvwgwgwxwfwwwxwwwwwwwwwwwxwwwxxwgfwwhwwxwxwwxxwwwxxwwwxwwwxwfwgwwxwwwwwwvwwwwgfwggvwwfwwwwwwwhwxwvwvxwwgwwwwwwwwwwwgxwfwgwwwwwwwxhwwvwwwxwwwwwwwwhxwwwxwwvwwwwwwwwxxwwxwwwxwwxwwwwxwwwxxwwwwgvxhgfwgwwgvwwfxhwwwxwhghxxxwwxxwwwgwwxwwwwxwgwwxwxxxwwwgwxwwxxwwxwxwwwwwhvxwwwwwwwwxwwwxggggggwvvvwggwgwxggggwwwvvwvxwxvwgwxgwwwxwwwwwwwxwxwwwxwwxwxxxwwwwwwxwxxwwwwwgxgwwwwvwwxwwwwwwgwvwxwwxxxwxwhwwwwwwwwwwwwxxwwxwwwvvwwwwgwwwwwwwwwwwwxvxxwwwwxwwxxvxwwwwxwxfwwxwwwxxxwwwwwwvwwwgwwwvfwvfwwwgwggwwxxwfwwwwwwvwwwwxwgwwwwwwwwwxwwwxhxwwwxxwwwxwwwwwwwfwfwwxfvgvwwwwwwwhwvwxxwxxwwwwxwxwwwwwwwwwxwwwxwxwwwwwwfvfghwggwwvxfwwwvwwwwwwgwgwwwwwwwwwwgxwwwwwwwxwwwxvgggwvgxvwvwwwwwwwxwwwwvwvwvfwfwwxwwwwwvVfvVgwfvggggwwweWvVgwwVgegevwgwfwgwggvvxwwwwwwwwwgxvgwghwggwvxvwvwwwwwxwvfwgwvggvwvwwwxgwwwwgwwwxxxxxwvwxwwvwvwfwwwxwvfwwvwwwwwWxxgWwgvwwwvwgxxwgwwfwgwwvvgwwgwwwgwwwvwggwwvvgwgwwwwwgvxwfwwvwxwgfwwwxwwwxwgwwwfgwggwxxwwwwwgWwfVfvvfwfgwgwwvwvWgwwwggevwwwwwggfvwwwwwwwxxxxwxwgxxwxwgwxwwwwvxxxwwvvhwgwggwwwwwvvxwwwwwxwwgwwwvwxxwwwwxvxwgwxwwvxwwgwwwwwvgvwvWuvfggwwwwxffwwfgvgwggwwwwwwvWwwwvvwwfwwvWvwggwgwwgwxgwwwwgwwgwwvwgxggffwgwwxwwwwgvwgvVwvfffvfgwffvwgfwwWwwwwgwwfwwwwwwwgwfxwwwwwwwwfwwwwwhvxxwxwwwwwwwwwwgwgwwwgwgwxgvwwwvwvvwwffwwxxwxvwgvwvwwwhwwwwwwwxhwxwwxxwwgwxwwxwwxxxwwwwxwwhxfwwgxxxxvwwgwwwxxwxggxwxwwwxxxwwwwwwxwxxwxxxwhxxgwwwxxwxxxxggwxwwxxxwwxxxwxwwywxxxwwwxwxxwwxwwwwxwwxxwwwxwwwwwxxhxxfwgvxwxxwxwhwgxwwwxwgxxwvfvvwvgfvwwwvWggwvwgwwwgxwxwhwwwwwwxwwwwvwxhgwvxwwwwxxxwwwwxxxgxgwgxfgwwvwxwvvwxvvxwwwwwvghwwhxxwgvvwxxvwxxwwwwwwxwwwvxwvwwwxxggvwxxwwwwwgvwwwwwvwvhvwgwfwwwwwwwxwxxxwvwhgwvwwwwvwwwVVvfgvfgwwvvfvfghufwgwvgwvvwxffvwwggwghfwwwwgghugwwwwgxwxwggxxwxvfghvWwgvggxwvvvgxvvuwxgwxhwufwfhggwwwxwwwwggxxwwxwwvwwwxxwgwgxwvgwwwwgwxwvxwvwwwxwgvwwgfwwgwxwwwgwvewhgvggwxwvxxwwvxxwwwwwwgxgwxwxguvfvgfguwgfwfgwfwgffggvxfxfxwvwvwxgwvwxwwvwgwwewhwwwvwwwwvvvxwxxhggevWvgggvwxfwvhgvwewwxugwwhvwgvgwwxwvwfggxwxwwwwwwwvfvvfefvvgwgvvwxvwwvfevwvWwggvwvwwwwwvgwWffwwwvwwwuwwfvwwwwwwvwgxwgwwwwxwxxuVffvWwffwvvwvwgfxwggffvfvgffvfwxvwwvvwwwgvwxwwwwwgwwxwgwuggWevvwwwvvwwugvfvwwwwwvwvwvvggwwwxwwfgvfuwvgffvgfgwvwgWwvfwgfwwvwwwxgggfxwgwwwwvgxxhwxwxwwxwwwxwhxvwwhwxwwxfwxwwxwwwwfxwwxwxwwgwwxgwwxwwwwgxwwxwxwwxwxxwxwgvffwgwwfvwwwvWvwhgxwwwgwvvgxwwgwwwwwxxwwhxwxfwwxwxvvxxgwgwhvxwgvxvwwwfwxwfvwxwwgwxgwgxhwxwwwxxwhvxgvwxxvvwvffwvxwgwgxxwwvvvgwuxhgvwgxxvwwgvvwwwwwxwgwwwxxxwgxxxhwwwxvffvvwvgfwwgwwwvhvwwwfwwvwwwwwwwwwhwgxwwwwwwwwwwxwwwxuwwgvvwfwwwwgwvwwwgwxgwwxwwwwwwxwwwwxvwwwwwvxwxwwwgwwvxwxvwwwgwwvxwwxwwxwxwxggwvggvffwwvfwgwgwwvfgwggwvuwfhxgwwfewvwwwvwwggwwwwwwwwgwxvwwxwxgfvvwvvwgxhxxvwwwwgfwgwwwwwwwwwwgxwwwwwwwwvwxwwwwxxgwwwfwvwwwwwwwhwwwwwxwxhwxwxxxwxvvxvwgwwwwwxvwwwwwwwwxxgwwwwxxxxxxwxwwwxwgxxxwxvfggvUffvwwffwvvWwgfvefwgvwwfwgvwWwwwwuwwWegvgggwwgwwgffggwwxwvWwgxvgwwwwwwxwefgfvwfvgwwgwgxvwvfwvfgvfgffwfgxwgggwwgxwwgwwxwwwwfwwvwxwuwwgvfvwgxgwwwwhgfgwwwwwwWwgvwwwwwwxwgvgVfWggfwwvfvfwvwvwffwfgwxwwggwwgxwvghvwxwwwwvwvwxhxwwwwwxxwxwxxxwwwxxwxvwxvxwxxwwxwwxxxwxwxwwxwwwwxwwwxxxwwwxwwgxxxvxxxwwwxwxwwxwxwxwwwwwwxxwwxxwwwwwwwwwgxwgxwwwwwhfhfgwwwxgxwgwwwwgxwwwhvfwwgwxggfwvvgfvwwwVfvwWUvWwwVwvwfvwfwgwwwwXfwVwvwwwwvgwxwvvwxVgwwfwwxgwwgvwwxivwUwwgwwfxfgwvvwvwwwXwwewwxfwvvvwwxwfwwgwxvhhxwxxwggwhwwxwhwvxxxwwxxwwhwwwwwwxwxwwwxxwwwwwwwxxxwxwwwxxxhgwgvvwvxwgwgxxwwxxwgwxwwwghwhfgffvvfvfgwvgWvfgvwfvgwxVvggvhvwwwvxwwwwwwwxxwhwwgvvwvxgwwhxwxgwxxhvgVwvwewwxfgfhvgwvvvxhvwwvxwxwvgxgwhwwvwfwxgwxwwwwwwxvwgwwwwwwgwwwhxwvwvhvwxwwwfwwwwvvwxwwwfwgevwwwgvwgvwwwwwwvvxwvwwwwwwwwxfefevwWefvgwfwfvgefgugxgvgwwwwegwwwvwwwgwwfgwwwxwwwfwgevwxxgvwvxvwwwwwwUfVdwffuggVefvgwvweffvwwvwwwffvugxgwvXwggvwWgvgxgxwhfwwwwxxwhwgwfwwwxwvgxwwwxwhwwvvxwvxwwwwwwvwwwwwwXvgghwvxwwvvgwvwwxwwgwvxvwvwxvwvxwwWffeegvfevwwgvGeVVgvfegggeevfwwvgefwfwwvwwgwwwwhwwwwwWvgghwvxxxvvwvxwxvwwwxwWvVfhgvwhwfewwwwvwfwvwvwwggvfuggghXxwhwwwWfvgvxhxwhwwwxwwxxwwxgwwxwwxxhhwwxxwwwwwwwxxxwwwwwxwxxwvwgvvvvxwxwwhxwgwxxwwgxwwwwwwxxxffgfvvffvgggwvewVvwvgvxwggvhgwgfwvwvwwwvwxxxvwgvvvwxxwgxhgwwxxxffguvgwvxggfwghwVwwwwwvwvwvxgvvwhxwwwwvwxwxxgwgxgwwwxwxwvvgfwwwfwfvxWwwwxggfggxhxwgwwfVwwgwwvwvwfwvxfwvwwWxxwwxxwxwwwwgwhWVwwVwVvwwWwwfugfwgwwxggvwvWvwwvwwwwxwwwwwgwhxxwxvfvwxwwwgxxwwwwhuwgwvwfxvgvgwguxwgwwwwwvwhgwwxvgxvhxggwwwwgxwgxwxwhwwxwwxwvwwwgwwgxwwwwxwxwwwwwwxhwwgwwwxwwxxhxwwvwwwvvxwwwwwwwwxwwwwwwhxwwwxhxwwwwvxwwwxwwgwwxwwxxhwwxwhwwwwxxwwwxxwwwxxwwxxxxxwhwwwvwwwwxxwwwgwwwwxwwwgwwwwwwhvwwwwwwxxwfwwwwxwxwxwwwwxxwwwWvgvwffvwwwgffvXfwwwwfvgwxgfffwvfwwxwwfwwxwwxxhvwwwxxwfwwwxxwwgewvwwgfgwwvgwUvfwvvwwwgwwwxwvffwwwwxfgxwwwwgwwwwwwwwgwwwgvwwgxxwxxwxwxwxgwwwwwhvwvxwwwxwwwwwwwwwvxwwxwwxwwwwxgvwvwwwwgwgfwwwwwgfwgfgwwgwwwwwvwwwwwhgwwwwwwwwxxxwwwwwwwwvwwwwwwwwwwwwhgwwxwxxwxwfwwwwxwvwgwwwwgwwwxwwwwgwwwwwxwwwwxwwwwwxwxwwvwwwuvgwwggwvwgwggwwwwuwxhgwgwvwwwwwvvwwgwwfwvwxxwwvwfgwvxwvwvwwwggvwwwxwxwwxvwwwwwwwwxxwwwxwwgWffwwvffeggwwvfgwwvwwwwvvgwwwwwxwwwwgwggwwwwxxvvwwvwvxwwwxwxxwvvwwxhvwuwvwwxgwwwggufgvgwwwxwwwwwwvxwxgwxxwgxwxxwwxwwwgxwgwwwwwgfvgwwgwwwwwwwwwxwwwwwgwwwwwwxvwwwvggfwvxwwwwgwvvwfwxwwwwwvxwxhvwwwwwwwgwwvwwwwwxwwxwwwwwVvfvggvgefgwwvwfvwwwwxwwvgwwgfvwwwwwwwwwfvwwwwxhfwwwwvvfwwgvwxvxwwgvwxgwgefUwwwwgggvgegggWefwwvwvvxwwvxxxwxwxxwwvgvvwwwxwwwwwxfvwxwggwwwwwxwgvxwwwwwwwwxgxxxwxwwgwwwwwxwwwgwvxwxwwxwwwwwxwwwwvxwwwwwwxwwxgwvggvwwwgwvggwgwvvgwwwgwvgxgvvwwwwwvwwxvxxwxvxxxwxxxwwwwxxwwgxvwwxwwwxxwvwgwwwwwwwwwwwwwwwxwwxxwwwwwxxwwwwwwxwwwwhhfvgwwwwwxwvxwxxwxwgvxxwxwwvwwxwwvggwvghxwwwxwwvwwxwwxxwwwwwxxxwwgxwwwwwwwxwwxwvggwfwwvvvvggwxvwgwwwwwwvgwwwvwwwwvwwwwwwwwxwwxxwwwxxwwxwxwwxxwwwwvvggwwwwvwwvwgwvvwgwwwwxwxwxxxxxwwwwwxwwwwwwwwxwffwwvUggwvgwwVwgwgvvwwfwggwvwwwVwgwwwwggvwwffhwwwwfgwgwwwxvwwgvgvvwwwwwxwxgfgvvwwxwvgwxwwwwxwfewvggffgfvffvgwgwwwgwvggwwgwfgvwwwgwggwwwwwfwxwwwwgxvxwxwxxwwwwwwwwwxxwhWwwwwwfwwwwwggffwvvwwwwwxwggwwwxwxgvwwwwwwxwwvwwxwwwwwwwwwxwgwgwxxwwgwgwfwxxwxwwwxvwxxwxwvvxxxxwxwwwhxwwwvwxxwwwxxxxwwxwxxwwwwxwwxvvxxwwxxxxwwwxxwwwwxxxxxwwwwwxvwwwwvwwwvwwwxwhgwhvwxwwwwxhwwxwxwwvwxwwwwxxwwwwwwxwxwxwwwwxwxwwwwxxwWWwvWffwwfffggwegwwwwvfwwwwffgwwwwwxhgwgwwhwwwxwwwwxvwwwwwwwwhwxxxwwwwvgwwgvwgwwgfggwwwwwgwvwwwwvfgwwxxvgwwwxwvvvvxxwwwwwxxwxwgwwwvwwxwwwwvvvwwgwwxwwwwwvwwxxgwwwxwxxwwwwxwwxwwwwwxwwwvwwwwwxxwuuwvefvwvfffgwgvgwxwvgwwwxfgvvwwxwwvgwwwwwwwwxwxgwxxwwxwxwwwxxxwgxwWwgwwwvfwgwwwfgfwwwvgxxvwwwxwwxwfgwwhggwwwxgvvwwwwwwwwxgwggvfwwhwwxgvwwgwwxgWgwvfwwgwwwxggwfwvfwwwxwwexfwwfxvgwwggvwwwxxwwwwxvvwwwwhwhwwwWFvffeUfvWfffwexvwwvfgugvWfvvwfwwwwgfwvggwwfwvwwxwwewvwwfwvgwwggfwxwxwwxwwwwxdgvwfvvgfVgvWVufwvwgwwwwxwggwvfgugwfwwwgfVwwvwwwfvgwvwwwwwvxwwwxwwxwwwwxxxxwwxxwxvxwxxwfxxwwxwwwxwwxxxxwxxwxwxwwvxxwwwwxwwwxxwxwwwwhvwwxxwwwwwwwwxwxwxwxxxxwvwwgvwwwxxwwxgxxfxwgwwgwwffgwfwxwwwwfwwwWghvwgwwwwfvwgvwwgwfxwwwwgugvxwhvxggwxfvwwwwwxxxwwwvvwwgwfxxwwxxvwwGVgffVffvgUewfvtvvwfgfgfVwwgUuwgvgwwwwfvwvwwggwwwxwwugwgvwggxfvwwwwwwwhwwwufwwhvwWfvvgefwfvwxwwwwgvwfwfgfgfVxwwwwwWfwwgwwxwvgfwgwxwwwwgxwwxwwxwxxwxxwxxxwxxxwwxxwxwwfxxxxxxxxxxxwxwxxxxwxwwxwwwwxwxxxwxwwwxxxxwxxxxwwggxxxxwwxwwxwwxwwgxxxwxwxxwhxwwwxwggwgwwxwxwwgvwxvxxwwwgwxxwxxwwxwwwgxxxxxwxvxhixwxxxwwxwxxxxwwxxxxxxwwxwxwxxwwxxwxwwxxxwwwxwwhwhxxwxxxwwxwwxwwxxhwwxwxwwwxvwxwxwhxgxxhxwxwwwwxxwhgxwxxgxwwxxwwxxwwwxwxxwwwwwxwxwxxgwxixvxwxxwwxwwxxxxwxwwwxxwxxwwwxxxxxwwwwxxxvxxwwxwxwxgxwwwwxxwxwxwwxxwwwwwxwwwxwxwxxwhxwxxwxwgxfxwwxfgwgxwwxxxwwgwgwxwwwwxhxwwwwxwwwxxhwwwxwxwwhwwwVwwwxxwxwwvwwfgwvwvgwwwwvwwwwwwwwhwgvvwwwwwvwxwxvwvwwwwwwvwwxxxwwxxxhwxwwwwwwwhxwwxxgxwwxwwxgxwwgxgvwwwwwwxwwwxxwxxwwwwwxwxwxwwwxwvwgxvwgxxwxwwwwhwxwwwwwxxxxwwwwwxxxwxgwxwwwgwwvXgwwvwwxwwwwwgwwgvwfwvvwwwwwwwhwwwxwhwhwwwxhwhwwwwwxvwwxxxwvwxxwxwxxwxgxwwxxxwwvhgxxwwwwwwwwwgwwwwxxwwvvvwxwxwwwxwwwxwwxwxxwwwwwxwwxhgxxwxwwwxhxxxwwwxwwwwxxxwwwwxwwxgxwxxxxwgwwwwxxwxxxxwxxwgwwwxfggvwvwwwwwwwwwxxwxxgxgwggggxwgwwwwwxwxxwvxwxxxxxwhwwwxwwwwwwhvwggwwgxxxxgwwvvwxwxvvwwwwwxwwwwwwwwwwwxwwwxxwwgggvgggwvvwwgwxwwwgggwvwvwgwwvwvvvvwxxxwwxwxhxxwwxxxwxwxxwhVVvvfggwxwvwfvufvggffwwffwwwwwwxxwwwxwwvwgwwwgvxweewwgwgwwwwwwwwwhwwwhgwxwvwgwwwvxgwwwwwwwgggwfwgvwwxwvgwwwvwwwwxwxxwxxxxwxwwxxwvwxwxxwwxvwwwwwxwxwwwwwwxgwwxxwxwxwwxwwwwwwxxghwwxwwxwwvwwfvwfwhgwwwgvgvwwwxvxwwvggwwxgwvwxxwwxvwwxxwxxwwwwwxwwxxwxwwwxwwwwxxwvvwvwwgvxhvwwwhwhwwwwxwwwxwwwwwwwwwxwggvwggvwvvwxxxwxggvgwfwwwvwgwvgvvwwwwgxwxwxhxwwwwwwxwxxXfegeuvgwwxwgwwwwvevggffwwffwwwgwwwwxwwxwgwwwfvvwvvwxgvwwwvvvvwvgxxxwvgwgwxwwwhvwwvvwwwxvwwwxwwwvxwwgvwwwwxfwwvwxwwxwxwwxwxxwxxwvfwwgvwffwwwwwxxwwwwgfwwxwxhgvwwwwgwwwxvwwfxwwwwxxwhvfwfgwwwwwxxwwggxgwgwwwwwwwgvxwxgxxxwvwvwwwwwwxxxwwhgwwwwxxwwwhwvhhxwwwwwwwwxxxfwxfxwwwwwwxwwwwhgxwwwwwwxwwxxwhxwxxxxwxxxwxwwwwwwwgvwvgvwwxhvwwxwwgggwfvwxxwwfvwwwwxwwwwfxhwwwxwxxxxxfggvvvwwwwwxwxvvvhwxgwwwwvxwwvfwwhwwwwwwwwwwwggwwxwwvvwwwwwxwwvwgxhhwwwwwwwwwwvwxwhxxwwvwwwxvwwxwwwwwgxwwwwxxwwxwwwxxxxxxwxwxxxwwxwwxxxwxwvwwwwwwwwwwwwwwxwxwxxxfvwwwggwwgwwxvwwwwxxhvwwwwwewfffffgwvvwxwgvwwwwwvwwgfefvgWWvgwwwgwwwwwxwwwwxwxwxfvwwwggwxwfwwwggwxwwwxwgUfvvffffwwxwwwwwwwwwwwwwwxxwwwvffgfwggvgvwvfgfxwwwwgwwfwwxxvfgwwgwwwwgwvVwwwwwwxwwwxwgvwxwwwxwxwwwwxwgwxwwwxuWvvwghwwgwvffvwffgfgfvweggffvwwgvwwwwwwwfwfvwwwuwwwfggwggwwhvwwgVwgwwvwwvwgvgwwxwfwwwvwggwwwvwfwwgggwwwgwwwwgwvwvwvfvxxwxwwwwvwwxwwxvxvvwvxwxvwwgwwwwuxxwvwwwwggvvvwwwwwvwwwwwvgwvvwgwvwwwwwwwwwxxwwwwwxvxxvwxwvwwwvwwvewwgfwwwwgwgvwwggggVfwuvgvwfvgwgvwwwxwwvwgewgwuwgwhvfwvwwvwvvwvvgwwwwwwhwxwwxxhgfwxwfwwvwwwwgwwwwgwwwxwwgxvvwwxvvxvwwvwwwwxwwwwvwwxxwwxwwxgwgxgwwwwwwwxwwgwwwwxvwwwxxwwwgwwwwwwwwwwwxwwxhxwwwxxwwxxwwwvvwwxwwwwxgwwwwwwwwwwvfggvwvwgvwwxwxwwxxxgwwwwgwwwwwvwwwwvwwxwgwwwxwwxwxxxwwgvwwwwwxxwgfwfwwwwwwgvwwgvxxwwhwwgxwwwwwwwwwxwxwxxwwwwxwwxwwwwwwwwwxwfwwwxwwfhgvvwwwwwwwwwwwwvxgwwwwwwwwwwwxwwwwxwggwvvgwxxxxhgxxgwgwgxwwxxhvvfwhxfwwfwwfgwwgwvggegWvvgvfwfVvuuVvggwgwwWvvwgVvvwggfwgwwwwwwgwwwwwwgvvgwwwwwxgwwwwggwvxwwxxwgvfgwxwwgxwgwwwwgwwvxwvwwwwxfwwwgwwxwgwwwxwxwfggwgwwwwvgxxgwxwwwwwwwwwwwhhwwwwxxwhwxwwwwwwwwxwwwwwxwwxxxxxwxwxxwwwvfwgvfwwwvwwgwwwggwfggvvwvgvwwvvggwggwwxgvwxwxvvwwxwvwwwwwwwwgwwwwwwwwxxxxwxvwwwwwwwwvwhwwwwwwwxwvwwvwwgwwwvwwwwwwxxxxwxwwwwwwgxwwwwvwvxgwfwwwwwwwwwwwwwwwxwxvwxwwwgxgwwfwwwwwgxwxwwwgwwwxwxwgwvwwwwwwwxwwwggwgwgwgvgvwwwwwvwwwvwwwwxwvwwhxxxwwwwwvxwxwwwxwwwwxwwxxwhwwwwwwxvwxwwwgwxxwwwwwhwwwxwwwwwwxwxwvwxwxwwxwwwxwwwwxwwwwxwwxwwwwwwwwwgxgxvwxgwgwwxxhgxwxxxwxwwwxwwwwwxwwwwxwxxxxwwwxvwwwvhgxwxwxxwxxwxxxwxwxxwxxxxwwxxxxwwxwwxwwxwwxwvwxxwxwwwwwxxwxxwwwgwwwwxwwwwwwxwxwwxxxxxwxvwwwxxwxwwggwwvwwvwwwwwwggwvvgvgwxgwvwwwwgwvxxwgxwxgwxwwwwwwwxwwwwwwxxwxwwwxwxwfggvgvxwwfwwwvwfwwwwwxwwxxxxxwwwxwwwwwwwwwwxxwwwxxxxxwwxwwwxgwwwxwwfwwxxxxwxwxxxwwwwxwwwxwwxwxwwwvwwgwvxwwwgxwwwffvgwggfwwgwwwvwvvvwxwgwvvvwxgwwwwwwwgvwwwggwwwwvwwwxxgvwwwwwwwwwwwwvxwfwwwvwvvwwwwgvggwwwwwvwwwxwxwwwxxxwxwgxwvxwwxwxgwxxgwwvwxvwgwgxxwxwgwhvwwwgwvwwwwgxwwwwxwwwxwxwwvwwhxwwvwxwxwwvwwxxwwwvwxwwwwxwxxwxwWgfwvVfugffugVwfvvwwggwvwvugwgwfuwwvxgwwwvggwwwxvwxwxwwvwwgxwvwwxxwwvwwxxwwwvguwwwWxvwvvvgwgwfvwvgwvwwwwwvwwwwwxwwwwwvwwwwvgggwwwwggwxgwwwxwwgxwxvxxwxvwwgxwwwwgvwhwwwwwwxxwwwxgwvwwwgwggwwwwxwgwwwxwwhwwwxwxvwwgwxufvWgffwfVegWvgwfwwggwvwgfwwwvgggwwvgvwwwxxxwwwxwwxxwgwvwwwgwhgwwwwxwgwwwxwxVfevgVvwWVfvggvVfwwvgwwgwvwvwwgwvwxwwwwxhwwwwghfwvwwgwvwwwwxxwwwxxwwwxxwxgwwvgvwwwwgxwwwxgwxwwxwvwvwwwgwwfwwwwwxgwwxwxxwwwxxwwwwxwwxgWfwveVugffvVggefexfVxwvUfvfgwVfvvwxgwwwwxwvxwhxwwxxvwvwwwgwfwwwwwxgwwwxwxxxvvvwwwfwwvfgwwwggvwvwgwvwwgvwvwwwgvwxwwwwxxgwwwwghgvwwwgvvwgwwxwwxwwxwwwwwvgvwgwgwwwvwhwgwwvgwxwvxwxwwwwgwwvwxwwwxvwxwwwxwwgxwgxfwwwxvwwwvevWgVfwfefWfwgwuwwwWwvgvfwgwgvvwvwfwwwwwwwwwxxwxwxwwvwwgwwxvwwxwwxwwwwxwgvvwwgfwwvgewgwfwuwwvwgwwwwwwvwwwwxwxwwwwvwwwgxfgwwwwggxwwgwwwwvvwwwgwwwwwwwxvfwwwwwwxvxgwwwwxvwwwwwwwwfwwxxwwwxxwwwwxwwwwwwxxxwhfwfvgwvgfwwwwgwvfwvwwwwwwvwxwwgwggwwggwwwwxwxwwxwxwwwwwwxxwwxwxxwwxhwwgwgvvwwwwwwwvvgwgwvwvwwwwwxfxgwwxwxvwwwwxwwxwxwxwwwwwwwwwwwwgfxwwwwxwwwwvgfxwgfwwwwwwgvxhwwwwwxvwwffvwwwxwwxxxwwwwvwwwxwwfwxxwwwxwwwxwwwxwwxxxwwwvwwxfwwwxwffxwwwwwwxwxwwwwwxwxxwxxxwwxwwxxwwxwxwxxwwvfvwwVvgvxwfgxvwxwvxwwgwgvwgwwwwwgvwxwwwwxwwxwwxwfxwwwwwwwvwxwwwwvwwwgwgfwgvgwwwwxgwwWewVffvgfffewwWgwgfvwwwwwvwgvgggfvuwwwwwwvgwwwwxwwwwwwfwwxwvwwwwwwwwwxxwwwgwgwwvwwvwgwwwwxgfwgvwwwgvwwvwwxvwgxwwwwwwwgwwxwfvxvvxxxwwwxwhwwwvgwfwwxwvwwxwwxwxwwxwwwggvwwwwvwxwwxgwwwwwwwwxhwxwwwwwxgxwwwwwxxwhwwvwwwvwwxxwwvxxxffVVgvvffwuvwwvwxwwvgwvwfvhfwwvgwgwwwwwwvvwwwwwwwxwwwwwvxwwxwwwxwwwwwwxwhwwuwggfvggwvfgxgxfgwfvwwwxgwwwfvwwgwvwwwwwwgwwwhwwwvwwwwvwwxwvwwwgwwwwwvxwxwvwwxwwwhwwwgwwvwvwwwwwwwwwwwwwwgwxwwwwwwwwwwwxwwvwwgfvwwgwwwwwwxwXvffvvffevuwwwffxvvwvwwwwwxwgfgwwvgwgwwwwvfxwwwwwwwwgwgwxwwwwxxxwhwwwwwxwwvwWvhwffgfwwwgwwhwwfvvgwvvwvxwggxwwwgwwwwwvwwwwwwvvwwhvwwxwwgwxwxxxxxwxwgxxhxxxwxxxxxwxwwxxwxxxwxxxxwwwxwxxwwxwwxxxwwxwvxwwxwwxwxfhgwwxwwwwwwxxwwwwxxwwxwxxxxwxxwwwwwwxxfwwgxggxwwxxxwwvwfvvwgfgvwwxwwxwgvwwwhwwwxvwwvxwgwgvwwxwwwvwwwwgwwgwwxxwvwwwwwwwwxwgwwwwXvfvghxwgvwhwwwguffegfVvWfvwwVvwggfufwwwwwvgffwvwwwwwwwwgwwxwwwwwgwgwgxwwvwwwxwxwwwxwwwvwwwhwwwgwfwwwwwvwwfvwwgwwfvwxwwwgwgfwwwwwwxwwwvwggvxwwwwvwxxxxxxwxwxxxxxxxxxxxxxxxxwxxxwxxxxwwxwwxyxwwxxxxxxwxxwxwxxxwxwxxxxxwxxwxxwxxwwxxwxxwxwwxxxxxxxwxxxxxxwxxwxxxxxxxxxxxxxxxxxwxxxyxxxwxxxxxxxxwxxwxxxwxwgxxxxxwxxhvxxxwwwwwwwwwwxxxxwxwxwwwwxxwxxgxwwwhwwwwwxwhfwwxxwwxxwxwwxxwxwxwwxwxwwwwwwxhxvxxxwxwghhwwxxxvxwxwwxwwxwwwwwwxwwwxwwxwwxwwwxwxwxwwwhgxwvvxwwxxwgwwwwwwxwwwwwfwwuffwfwwgffvwwvgwvvXfuxgffvwgggvwwfwwxwxxxwwwwxwhgxxvvwwwwwwwxgwgvwgvgVvgguuvwggfwwwwwwwxwwwwwwwwwwwwwffgwxwvxxvfwwgfvvwfvvfwwwgwvwwwwwfwgwwwvgWvwwgwwwwwwhgvwwwwwwwxwxwwwvhwwwwwwxwwxxUwgggwvwXvwwvfwwwvfvfvgggwVffffvwggvwwgfwwwwgwwgggvwgwxwvgwwhgffwgwwvwvfwvwwwgwwxwgfwwwvwxwvwwwvwwwwwgwwwwwWfgvvffwwwwwwwhwwwwwwwxwxxwwhwgxwgxxvwggwwwwgwhhhvxwxxwwwwwwwwgvwxxxwwwwwwwxwwwwwwwwwxwwwwwxxwwwxxwxwxxwgfwgwwwvwwwwxxwwwggfwgwvvvvwfwwwgwgwwwwwwvwwgwxwxwwxwfgwwvvvwwwwwwxwwwxwxxxxvwwxwwwxxxxxwwwwvggggxgwwvvvwwvwhwxwxwwwwxwwwxwwxwxwxwwwwwwxwwwwxwwwwgwgwwxwwwwwwwwwwwxwwwwwwwgwgwwwwwxwwwwfvfwwwxwvfwfxxwgwgwwxfwvxxxxfgvgwxwwwwwgwwwwwwvfwvgvVvVvwgfxwgfgfwwwgwgwwwvwwwxvwwwwwwffwfgwwwvwwwwwwfwfxwwwgggwwwwxvwwwxwggvvUfUwwgvVvVvvgvwwgwwgwgggwgvwwgwxwxwwxwhwwxwwwxhwgfwwxxwxwgwwxwwwwwwwwwwwwxwxvxwxwwgxwxwxxwxvwwwwwxwwxxxggwwwwxwxvwxwxwwwwwwwfwggwfwvfwwwxwvgvfwwwgwfwvgxxwxwwwgwwwwwgwwwwwwxxwxgwvxwwwxwwwxxwwwwwwxgfwwvwwxwwwwwwwwwwwxxwwwxwwwwxxwwwxwwwxwwwwwwgwwwgwwwwwwwwwwwwWwxxwwwgwwfvwvwwwvwgwwwvvvvwwwxxwwxwhvwvwwwvxxwwxxWggwwwwvwwvvvggwwwvggwvgvuvefgvgwwwvgwwwwxwvvvvwvwwhwvxwwwwvwvvgwwwwvwvvwwwwxxxxvgfgwwwgwvwxxwxvwwwvwvwwguwegfvvwwwggwvwwwwxxxgwgwwxvhwxwwwwwgwgwwvwwgvwvwgwfwwgwwwxwvwwxgwfwwwwxwwwwwwvwwxwxwwvgwwwxxwwwxwxxwxhvwwwvwwxwxwggwvwfwgvgwwwwwvgwwwwxxwwvwwwwwxwwxwwxwwwwwwwwwwwwwwwxwxxvwxwwwwxxwvwwwvwwwwghwwwwxwwxwwgwwwxwxwxwwwwxxwwxwwwwwxwwwxwwgwwwwxwxxwhwgvwvwwxwwvggwxwxwwwwwgwwvxxxxxxwwxwxwxxxwxwxwxwwxvggxwxxwwxwwwxxxwwxxxxwwxxwwwxxxwgwwxvvwwxxwwfvwgwwwwxwwwuwvvfhfwwwgwvwxwxwwxwwwxwwevgfwwwwfgwvwwvxwggfwwwwvwfvgfwhfwfdfeefWUfvvvwwwfwwfwwgdgWUvwgfWffgvvgwwwffwwwwwxwwgwxwwwwxevgfwwwwfhwvxwwxwvgwwxwwwwefgVfvvvfhvugvwgwgfwwvwxwwwwwwxwwwfvefvfggvwfWwwwvwwxwwxggwwxxvwwwgwwwvwxwwwggvVvhwgwwwxxhwwvfwwxwxwwwwwWvgfgwgfwvvwwwwxwwvfghxwvgwwfwwwwfvgVVeEfgfVvvfhwwwwwvwwWvhfVvwvfgvuvvvfgwwwwggvffwwxwwwvwxWvhfgwwfwvvwwwxwwwfgvwwwwwFfgUVvvvggefvwwgwvwwvwxgvwwwwwxwwgvfWggggvvWffwwwvwxwxwwwxxwxwvwwwwwxwxwfwwvxwgwwwxwwxwwwxwxxxxvxwwwxwwwwxvwwwvwxwwvxwxwwxwgwUffewgfvwfvwxwwwxwwfwfgvgwfwwgwwwvvwwwwgwwwhwxwxxwwwwwvwwwwxxwxwwwwwxwwwwwgwxvewggvwgfgwvwvwwvxwxwwwxxwxwwvwwvgwgfwwgvgwvxxxwwxwwxwwwwxwxwxwxwwwwwwwfwwwwhwvxwwwxxwwwxxwwwxwwxwwwwvgwwxvxwwwxwxxwvwxxxvwxwxwxxwxwwxxwwwwwwxwwxxhvxxfxwhwxxwxvxwywwwxwwwxwwwwwwwwwwfwgwwwwxvwwwwwxwwxxxxwvwwwwgwxwwwwxvwwwwwvwxwwwwxwvwUffuvgfvfwvgwwwwwwgxuvvfvwwvvwwgvvwwvxwwwwwxwwwwxwwwwwxwwwwwwwxwwxwxwwwvvwfvgwvfwwvwwvvwwxxxwwwxwxwwgwwgfgvgxgwggwxwwxxwxxwxxxwxxwwxwwxxwxwxxwwwxwxxwwwwxwwxgxxwxvxwwwxxwwwxxxwwxxxwwwwwwwxwxxxwwxxwxwxgxhxxwwxxwwwxxxwxwxxwxvxwwxhgxwhvwxwxwxwgwhwxxxxxwxxwxxwxwwwxxwxxxxwxwxxxwwwvwwxwwxxxwxwxwwxwxxwxxwxxxwxwwwxwxxxxxwwwxxwhwxxwwxwxwwxwxwwgxwwxxgxhwxxgwwwxxxwgxxwwxwxwxwwxwwwwwxxwwwxxwxxwxxwwxwwxfwxwwwxxwxxxwxxwxwxxwxxwxxxwwvwhwxwxxwxwwxxgxxwxvwxxwxwxxwwwwwwxxxwwwxhxfwwxhxxvwxwxwvwwxgvwgvxxwwwwvwwwwxxvwwwwwggwgvwwwxwxwwxwgwwxxwxwxxgwwxwwwwgwxgxwwxxwwwwgwwwwwwwwwwwxwwwwgffVwwWefffgwwwwwVffwvvvgfvfwgwgwxwwgggwwwgwwwgwxxwxgwwxwwwwwgxwwwwwwwwwfwvwwwfvggvwwwwfxwwwwvvvfwwwwwwgwwwwgggwwxwwgwvxwvwwwwwgwvwgewfwwwwwwxwwwhgfwwgvgwwgvwwwxwxwxgvggwxvwwxxvwwwwwwwwvwgwwwwwwwwwvfwfwvwwwwwwwwgVuWvfVffffgvwwwwwvwvwfwwvwfwxhwgwwwwwgfwwwvwwgvwxwxxwwwgvwwwwvwwwwgwxwwwwvwwevvvwwwgfufwwwwwwwwwfggvwwxwwxwwwvwwwgwwfwwwwxvvwxwfvwwwfwwggfvwwxwwwwvwgwwgvvwwvwwwfwvvwxwwwwwvfwwxxxwwwxwvgwwxxgxwgwwwxwwwwwwWvfvwwxwwwwwxgxwwefffVfeuggvwwvgvgvwwwwwwwwwxgwghwgwwvgfwwghwggwwwvxwwwvgwwwhwwxxxwwgwwwwwwwwwgveVvfwwwwwwwwgvwwwgwwwgwfvwvwxxwwwvwwwwfvwwxwwwwwgwxvwgwgxxxwxxxxwxwxxwxxwxxxxwxxxxxwwwxxwwwxwwwwxwxxwwxwxxwwxxwxwxwvwwwgwwwwwxwwwwwwwwxwwwwwxgwwgvwgwwwwxwwwwvwwwxwxwwgwwxwwxxwgxwxwwwwwwxfgvwhwwwwwwwxwgwwVffvuwVfvfvwwvfgVffxgwwwgwwvgwxvggwvfwvwwwxgwwwwxwwwwwgwwxwxxwvgxwwxwwwwwwxvvggwhvwwwgwwgvwwwgvwgwvgggwwwvwwhvwwwwwgwwwwwwgwwvgwwvxwwwxxwggxxwxxxxxxxwxwwxwwxxwxxhxhxwwwwxwwxxwwxwwxxxwwwxwwxxwxwwwwwwwxwwxwwxwxwwvwxwwwwgwwxfhwxwxxwwfxvwxwwwwxxgvhwxxxxxhwwxwxgvxxwwxxwwxxxwwxwwwxwxwxxxwwxwxxwxxxwwwxwxxxwwxwxwwwxxwxwxxwwwxxxxxxxxwwwwwxxwxxvxwwxwxwwxgxxghvxxxwwwwwwxhhgxxxwwwxhhxxwwxxxxwxxxxwxwxwwxxwxxwxxxxxxwxwxxwwxwwxwwwxwwxwxwxyxwxxwxxwwwvwwggfwxwhwwwwwfvwwwvwwwvwwWvgwwwfgwwvwgvfxwwwwwwwwwwwwwwwvwgffgwvwwxgwvvwgwgfwwwhwwwwhfwwwgeffFwwffvwWffuwwgvgvfvvgwwwwgVffvfgwVffuwwwwgfgxwwwwwwvwwwwwwwxwwhffgwvwwwgwvvwgwfvgvwwvgggfwwWffuwgwvffevwwwwffwwwwwvwgwwwwwffwwwefVwwwwwwwwwwwxxwwxwxvxwxwxxwgwwwgwwfxgxxwxwwwwwwhvwxwxwxgvwwwwxwxwxxgwwwwwwxxwwxwwxxgwfwwgwwwwwwxwwxwxxxwwvvwwwwwwwwwxxwwxvwfxxxwwwwxxxwwxxwwwxxgvwwxxwwvwxwwwgxwwxxwxwwxxwwwgwwwxxwwxvwxwwgwgwhxwwxwwxxgxxwwwwwvvwwxxxwxxwwxxwwwxvwwwwxxxgwxwghxxxwwxwwwwxwwwwwwwwwwxxxxghxxwxxwwxxwwvwhgwwwwxwwwvwvwwwfxxxxxxwwwwgxwxxwxxwwwxwwxxwwwwwwxxxwxwwxxxxxxxxwxwxwwwxxwwxxwxxxxwwxxxwxxwxxxxwxwxwwwxxxwxwwwxxwwwwxxxwwwxwwxwwwxxxxxwxwxwxwxwxxxxxxxwxxwxwxxwxxwxhxwxwxxxxwwwwwgwfwxxwwwvwwxxwwwxwwwwxhhwwwwxwxwxwwwwwgxxxxwwxwwwwvwgvwgwxwwwwxwxxxxwxxwhxwwwwxwwwwwxxxvhxwxwxvwxxwwwwwwxwvhxxwxxwhvgwwwxwwwwxwwwwxxxwxwxxxwwxxwgwxwwxwgxwwggvwwxxxwxxxvwwwwwwwxxxxhwwwwwxgxxwwxwwwxwwwwxxwwgxxwwxgxxggxwwwxwvxxxwwxwwwxwwwwggxwwyvvxwxxwvxxxwwxwwxxvvvwwwwwwvwxfwgwwwwwxwwwxwwxwxxwwwwxwwxxxwwxxxwwwwxwxwyxxxxxwxwwxxxxwwwyxwwxxxx"
  },
  {
    "path": "examples/games/.Tables/TwstChce.ptb",
    "content": "wxhvffwxwwxgvwgffwxgfgyfwwTfexwWfeXffUVfFTxxxvfwwhgvxwgwfffwwweVfwxfgeThfeeVeFUxwwfgwfefVxwwgfexgeVdVfUEwwxeefhwfVevgVfeEVVDfgvffffvvDUggffffTEgvfUDETxwwwwwxyfwwvwwxwwwwwxwhwwwwwwwwwfwvwwwffxwwxwwwgwwwvgvwwwxwwwwwwwwwxwwwgwfwwxwwwvwvwwxvvwxwwwwvwxfvwwwhvwwgwwgwwwvgwvwffvvvwffwwwwwxgfwwwwwwwxfwwwwggxxwgwvwhwwggwgfvhwvwxwggwgfvwwxwgxxxwwxwwxhwwwwxhwwwxwwxxhgwwxwwhwvwwxwwxwxwwwwxxxwhvgxvwwwxxwWvfwxwwggvffwwxxwwwxwwxvwxhwvhgwgfwvxwwxxwggvvxwwWfggvwwvwwwwwvwwffwwwwwfUfVfwwwwwefwxwwxwxwwwgwwxwwwxxwwwwwgwwwxwwwwxvfgxwwwwhgwwwwffgwffvfwxeewxxwxgwvwwgwwwxwwwwgwwwxwxxxvwwvwwggfwwWVgwwwefxwwwwwgwwwwxwwxxwwwvwVgWwggfgwwfewwwxxwfwwwxfvfwwffgvvweegwgwgfvfwwvwvvwgffwgeeuvvWVefvVVefVxwwwwwwxxwgvxwvwwxwwwwwhwxwwvwxwwxwwgvgvwwgVefvgfggwwffwxwwxxwxgvwwwwwxxwwgvwgvfwvwgwwwwwwgffvwWeffvwgfwwwwxxwwwfwwgwwwwwwwwwgvxgUfwgfffgffffvwwwwfwgvwgwgwgffvwgffvgwWVvgwvgffgfwvfwvfwvvvgVUefvvUeUefeeUfwxxxwxgwwwwwfvwwwwxwwwwwwwwxxwxwwwwwxwxxwwwwwgvwwwwwfvwggxxwwwwwwwxwvfxhwxwvwvwxwwwggwwgvgfvfwwwvgwvwffxxwwwwwwwwwwwwwwxwvvwwwvfvvwwxwwwwwwgvvwwwwvwffxwggwwwxhgwwwwwgwvgwgfvgwvwgfvxwwwwwwxwwvwwwwwwxwxwwvwvwwwxwgwwvwxwwwvwfvvxxxwxvwwwwwwWewVfxxwwwxwwwwggvwwwwxwwvwwxwwwwffgwwwwvvwxvgvfVVwwxwwwwvwwwxxwwwgffxwxxvvwwwvffvVVxwwvwVewxxxwwwwwxwvwgfggVvwvwvffgwvfwwUefUewvgwwgvwffffgffUexxxwxxwwxxxwxxgvvhxxxwwwxxwggVgxxwwwxxvfgwwgfxxxwxwwxxxwvwxwggwwwvgwwffxxgxwwwxxwwxhgvxxwwwggufwwfvxxwgwxxwwxvvwwwwxwwwwwwXffugwgVvwwwwwxwwwgwgefffwxxwwwwxwwgvwwwwwwxwwwfwwwwhxwxvwwxwwvwvgvwwgwwwgffvwgfffvwWVxwwwxwwxfvwwwhwxwwwwfwwwwfffwfwxgfgfwWegvwwgfwxxwwgwwvxwwwwvwgvwxwgwfUffwfffvvwgfwhwwwwwwfwhwvgfgwwWffevxgfvfwvgUeffwfvvvvgVewgUfUvvgeeffgUevvxxvwxxwwwxwwwxggvxwwwwxwgxwwhvexwxwxvfgwwwvfxwwxvxwwwwwxwgwxwxwvxxwxvgwwxwwwwwxwwxwxxxwwhgvxvxwxwxgWfwwwfgwwhwvxwwhwwggffxwxwvwwWffuwwgfwxwvwwgfvwwWfvwgxxxwwwwxvwwgxxwwxwwwwwfwwxxwwwgwgwxfwgwwwvwwwwwwgwgwvgffffffexwwxwwwhwwxwwwvxwwxwwwwgvwfwxwwwhgwfWffevfgfwxxxwwwgfwxvwwwwwwgvxfwfwwgwwgffffUfvvwwwwxvgfffwvwwwwgwVvVfvfffvfwgvvggfwfgveVeeVwvvffvggggUfUUVVVwwxvxvwwwwwwvxwwwwxwwwxwwwvxwxwwwwwvgwxwwgvfwwwxugexxwwwwwvVfwwxwxwwwwwvxwwxwwxxwwwvgwwwwggUxwwwfgvxxwwvwwwfVxwxwwwwvfgxwwwxwwffvwwxxvffwwvgwfVVwwwwggfvwxwfvfxvvwvgVVwwvwVfUvwfwgggfVeuwfgfvwfWeuwggfffVxxxwwxwwxwwwvvxwwxwwxgwwwwxwxxwgvwvgvwwfwgffwwwwhffvgwwwweeffvvwwxwhxvwxwxwwxwwwvwwwwwwwvfffwgvgwwvwwwvvgffVVxwxxxwwwgvwgxwwfggfxwwwgwwvwvvgVeffwwwfwwVfVwgwwwvwvgvvwgfffgvwfgvVVVwgwfgVUeeegvwfgggffUffgvveUwwwxxwwxwxwfvwwxwwwwxwvvwxwxwxvwgwwwwgwfffwwvgfeewgwvvwwvgfwxwxwwwwxwwfxwvwwwwwwgvwwwffWugvwxfvfwwfffwwwffxwwxwwwvwwgwwvwgffwwwwfffvgwwgwwfVVvgxwwwWffvgwgvfwwwfwwfffwgfwWeVugvfgfgffUewfVVegwfeegwfUvvfxwxwwxxwwwwxxxffwxwwwwwwggxwwwwwwwxwwwxwwwgvwwwxwxxvxwwwwxxwwwxwwwxwwwfwwwwwwfwwwwxwwwwwwwwxvvxwxwwxwwwxxwxwwwwwgxwxwxgggggwwxxwwwgvvwwwwwxxwwwxwwgffvgfwfwwwwwwwfvvgfwfwvwffwwgfwwxwxwwxgwxwwwgggxgxwwwgxwwvwwxwxwvfwvxgvwvffwwwwwggwwwwgwvgffwwxwwwwwwxwwwwwwxwwwxwwxwwwvwvxxwxwwgggwwggxwxwwwwwxwwwwvgwwwwwgwwwffwwwwwxwwgvwwxwwxxwvfwwvvxxwwvxwwwvgwffvwwwvwwwgwffvwwxwwwwwxwwwxwwwwwxwwwWffuwwxwwwxwwwffwwfffxwxwwxwgVevwwxwxwwwwwwwxhgvvxwwgvwfffxwwgffwwxwwwxxwwffwwfUfwwwwwwgffwwwwwxwvgwwfffxxxwgffxgvfwfvgCD4fwffffwffwfffxwxwwxwwwwwxwwwxwwwxwwwwfwwwgvwwwwwwwwxwwwwwwwxxwvwwwwwwxhfvxxwwwwwwwwxwwwvvwxwwwxwxxwggwhgwwwwwxwgvfwwwfvwwxxwwwwwxwwwwwwwwwxwwwggwwwxwxxwwvvvgffvffwgvwwvffgfvwwwwwwggwwwwwfvxwxwwwwwxwxxwwwwwwwwwwwwwxwxwwvgwfwwxxwxwwwwgwfwwwwwwfggxxxwwwwxwxfwwvwwwwwxwwwvwwwwwwvfgfvwwxwxwgwvvvwwwwwwwxwwxvvwwwvvwvxwwwgwvgwxwwfwwvwgwwvfvfffwwxvgwxxvgwwwxwggwgwffwggwwffxwwwwxwxwwwwwvfgwwwxwwwwwwvxwwwwwwwvwwxwxwgwvwwxxxwvwwffvvffVVwxwwwwwwwvwxwwwwwwvwxwwxfwwwvgwwwvfffgfVVxwxwwgwgwwvxxxwwwwwwxwxwwwvwggvfvvUfVxxxwwwgwwwwwwwwgweegvfVfwvwvwwgwvwwgfgfffvvggfvgggffVVeUeUUxwwxwwwxxwgxwwwxvwwwwxxwxwwgvxwwwwwggvwwgwwfvgvfgVeffxxwxwwwwwwwfwxwwwwwgwggvwwwwwwgvwwwvwwvwvgffffffexxxwwwwgwgvwwwwxgwwwwwgwgffvgfffgfUgfwvfwfwwwvwwwwgwgwwWfVffffvvfwgvvfwvwvfwvffgggveVefgvUfVUeVVUVwwwwxwxwwwxwwwwgxxwwxwwxwwwggwxwgwvgffxgwwwwwxxxwxwgwfwxxwwwxvwwggVxxxwwvfggfxxwgwwwwxxwwwwvgwxwggwwwxxwwwwwvfggxwwgvVvfxwwwwwxwwwwwwwwxwwfVefVvwwffffexxwxwwggwwwwxxwwwxwwwwwxvvwwwwxxxwwxxxwfvvwwwwgfwwwwwwwwwxxwwxwwwwwwhfxwwwwwxwwxwwxwxwwwwwfwhgxxwwwwwwwwwwwwgvwwwwwgwwwwwwwwwxwxwwxxwxwwfwwwwvffwwwwwfwvwwwwwwffgfvwwwfggfvfffvxwwxwwwwwwxwxvfgwwwwwwwxwwxwxwfwfffwxfffwwwwwwwwxwwwwwwwfUfwwwxwwwwwwfffffwwwxwefVwwwwwwwwxxwxxxwwwffffwwfffxwwxwwwxwwwffefVwwwwfffwwhvwffxffxgvffG4CdfvffhfxxxwwwwxxwhwwxwwwxxwwxwvvwwxxwxwfvwxfwwwwwfffxgwfwvwwwwvvgeefgxwwxwwgxvwxwvwwxxwwxwwwwgvefVxwwwwvfwgvwvfffwwwxxxwwxwvwvwwwwvwvfffxfwwwvwvwwwwfffVVvwgwwvgVgVwwwwxwwgwffffvfffvwfgwffgwfggfUfUeUgvvggvggvvVVVeVeewxxxwxwwvvxwwxwwxffwwwxwwwwwwwwwwwwwxwwxxxwwwxvwvvvxxxwwwwggwwwxxwwwwxvwwfvwwwxxwwwwfvwwwwwwwwxxxwwwwwwwxwwwwxwwxxxwwwwxgwgggxxwwgwvwwwwwxvgwwwwwwwvwwfwwgfvwwgvgfvvfwwwwvwwgvgfgffvxwxwwxxwwwgwgwwxxwgxwwwwwwxxwwxwwwggwgvwxwfwgffwwvwVVvwwwwgffffvxxwxwwxwwgvwwxxwwxwwwwgwwwfwwffUwgvwgffvwvwgwwgvfxghxwwwwgwgwwfgvfxwwwgVevwgggwwffvwwwwwwfffwwwwfffvgvggwgwgeuwvvgVUewfwfgfeUVVvgvffgvfVUwfgggfUxxwxwwwwxxwxwwwwfgwxwxxwwwxwgwwxwxwhwvwwwfwwwxfffffveVwwwwxwxwvgwxxwwwwxxwxwhvwxxvgwwfgfwwweVxwxwwwwggvxwxxwgffvwwfgfwwfgfwgwUVwxwwhffxwwwwwwgwwxffwxwwwhvvwwvWfuwhwvwwXfuvfWeeffxwwwwwxgwwgvhvvxwxxgwgvwwgwwwxwwwwwWvguvxxgvgwwwgvgvvwwggvGffFevwxfwwVwgvwvgvehwffhwxxvwVwuWwguhwvgeGfeVfuVvvvhwffGeVvfwwxfwwwvgwgvhvWvegegfeVuf6UxwewfgvgwhwvGeVtefffgvwfwfgwwvwwefgTfVweWvwwwfwSUUSUUfwwxwwvwxvvwwxxvxwwwwxfewwxgvxvwwwwwwwwxwwegewxvwfufwVVwxxvxvwwvfwefvwxwwwwwwgwwgwxxWgfwwwwwfVuwxfgwfgwdfwhvwwwwwVfvgwwhvXvvgfwweVewvgfvVUuDUwgxwgggwwvwwwffvwwvwwWevUfwwwwWffwhxggwwgeuwgffgffGTevvgfFfVwgwxxvwwvxwxwhvwwggvwwwuvvhWgguwvwxvwgvhwWuwgfvvvwhgvgfWeffvgvWefVfvvvgvfwvwgVvgwvvxwxxwwxxhvwwwwwxffgwwwwwgfvwwwvvwvGVvwvvwfvfWWwgdffWVfweefgwgFffgSUfFfwwfdUVVvxwwwwwffwgvwwgvgfvgvuWegGVvfvvUVvwwwweUgeegvVFffffSTVfgvvSTvwwwxxxwwxwwwwwwwwwxxwwwwwxfvwxxwvggfvwwwwwxwwwxxffgweegwfwUfxvwwhvwgfgffgUffxxxwwwxvwwfwxxwgfvwfveegffeUfvfwewwxwhfeVwwUffwwwwgwhfvwffwgUeUgffffefvDUwwxwwxgveVVfuvgffgfwwUfgvgwgffvwggwwvggfgwGEeegwGTegfVUVeVxwxwxxxwxvwhwwxhfvxwwwfwgwwgwwwvxxvwxxxhvxgwwwvwwhwvwWVevwgwgwwgfvhxhvvvvggfwgevwwfxwxhwxgvwwffwffgfgvvgwhfvgvwWvwvffgwwwhfvwgwvvgwvfwVfVwWDTUgfefffvWfhgwvwxggvwgffwhfvwxhvxvgvgeUfvwgvwwvxfwfgEDUuvgefffwfvfvxwwxwwwwwwwgghxwwwxxwwwfvgxwwwxwwwwxwwwgefvwwfgvwffgwwwfUwxwwxxwwwwwwwvfgxxxxwwwxwwxxwwgvfvxwwwwwwwwwwvfgUfxwwwxwxgvvxwwxwwwWffxwwggwwwVfffvfUUxwxxwfwwwwwxxgvfwwwfvwwxwwvfwhvvfgvVUwwwwwwxggffWefVexxwxxwwwwwxwxxxxxwffwwwWevwhffwxwxwwxwwwUffwffwwwwxwxgffggwgfvxxwwwwgvwxhwwwwxwxxxxwwwwwxwxwxwhvfvxwwwwwhvvxwwwwwwTTwwfffhwwwhwwgvWUevwwWevxwxfwwwwwhvxxwggwxxwwfwwvgwfwUUfvgwUffffwvvwTTwwxwwwxwxwxwxwwfwwwwwhvvwgwxfvwhxwxwwfwwwfvwhwwwwwwvvevgwwwefgwwwwgwwvxfwwwwwVgfxwxxwggffwxwwgvwWeggwwwffwgwfwwwgxfwwgvgwvwvgUgfgfvwwhvgfvwvwfvDfUvwwwwDfUffxhwxwgugwwwwvgfwwvwwgwhfFdVewvwwHdVefggWvwfffgfVfvfgggvxvwxwxwgvwwwvvvwwwxwwwwwfggfgwvwxfwwxxwgfvvewwxwwgweVgwwwwugwfvfVfeVfuwgwwwwWvwfwfgfuvwwvxwwwwwwvwewgvfFgfwgwvvfwvuWfufgvgUfwwwwhegfevwwwwwVefWvxgwfgvuvggfufeeFUgfwwUfUVwwxwwwvgfgvuguVVfvvvvveWwfvgfwTEVdVwvfhwfgweVVVfefTEwwwwxxwxxwwxwwwwxwwggvvxwfgwwfffwggwwwwwwwffvgvwwwwWffuwwxwwwwwfffwwwUVwwwwwwvxfwgfwfvgfwwwxwwxwxwwxgvgwwwxwxwxwwwvwwwwwUVggfwwfwffwfVfuvVegefVUTEuVewwwgffUEUTvgfUUxwwwfvwgvfwwwvgwwwfffwggUVxfvwWfevgVUUfffFTtwhffvwhfffeETdffwxwvwxwwwwxvwwvhwwwgwvffwvwwXwvwwwwhwwxwwxwvwgvwvgwwuwwhwvwwWwfwwwgwwwwwwggwwwwVvgwvfwwxwwxwwwwwxwxvwgwgwxvxgvfwwgvvwvXvgfwwwvwgwwhvfWgvgVvgwUVewUvwgvvwfWeUfvfWfvwfwwwwwfgwwwwxvgwwgvvwwwhwwffgwUVegvvgvvgwfggUVewxwewfgvegfwxvxxwwxwwwxwwgwwwwwxwwwwwwgwwxwggxgggwwxwwwgwvwwwwefVwwwggwwweexxwwwgxwgvggfffwwwxxwwwwwxggxxwvVffgffVWwwvfgwggffwwfWVwwwxfffwgfwgwwgffwwwfVfewvfgvfgTTweewwwwgefvvvwfgfxwwwwggffwgwfFUUtwwvvgffFEuwgvfvwwWfuwwWVfwfwxwwxxwwxwfxwwwwwwwwvvvgvfvwwgvwwwwwwwwwxwwxggwfvwggwgfwhvvwwgfgfxxwwwwwvfvvwwwfwwxvwwwxwwwxwwxxwxfvwvwwhvxwwwhvvwhgvfwwwgfvxhgwWfUWUefwUwfffvwwfvgVfeVvvvgwggfwffwvwwwfwgfgwwwvvwxwgUewefwffUffuwwwwgwUeewxvggvefewwhxwxxxwxwwxgwhhwwwxxxwwwxgvwwgwwwwwwxwwwwwwwwwwxxwwwwwvwfffggwwvwvwwvwvxggvwgwgfxwwwwgfwwfvvwgggwxgffwwwvgwwvwwwvgvwwwwwwgxgwwgggvwwgfvwggfvwwhfvwwggveeVffwwwwwfffvwwvvwwhffvwvfgffvvwwvwwwwwwwXUUefuwxhfvvwgfgvwgffffggwgvgvwxxwwwwgvxxgxxwwwxxwwvfewxgVuxwfVwwxwwwxwwhwvwVewfWfxfhwvwwgVfvvwWexwwwgvxgxxvwxxwhwxwwwxgvwfgfwwxvwgwvfvxwgwwxvwggwgUSvvEFfwgvxwwwefuwWfvwwwgvgvfgwxwwxwwvvwxgwwgvvgwgvFFVfffSUwwwgfxwgggffwvwwxwwwwwwwxxxwwwggfwgvwfwwwwwwgwwxxhwvwwvwvfffggvfwwxwxfvvgwggwwwxwwgffvxgvgwwgwwxwwwwwwwxwwwgfwfgvvwxwwwwwwwwwgffwwwwgvwwfgwuVveVefWeUfwvxwwfwfffgggfwvwwwgVggfuvgwwwwxffgwwfgvwVevwgffWUUueVeUfgwwhvvhggvffwwwwwvfxwxxwwwwxxwwvfvwwgvfgwwwxwgwgvgwwwwwwxxwxwwwwvfwvgwgfVVgwvwgwfwxgwfwwwxwwwxxwwffhgvxwwwgfffwwxwxwwwfvgfwwfffwwxwvfvwvwvvffvvweevwgwwwffvWVvvfffEEDggvwWeeuwwvfvgwgffxgvvgwffffgwxxvgwwwwwwwwwgffwgEEDgffvffVVUfwgfgfwwwvgwwwwwwwvwwxxxwvxxwhvwgwwwxwwwwwwwwfgfxwwwwxwwgwgfxgxwwwWvWhwhvvWggvwgfUgUfFxwwwgxwwvwvfWfxxxxggxxwwwhwvxwwwwwxvfWgwVfeexvwwwwvffgfxgxwwfgvfwvwWVfwvVgVVVVTExxwwwwwvwwwgfwwgwgffwfffwvxwvwwwggvVVfwwwvwweWVfveffDUTwxvxwxwwwwhvfxwwhwwwvegvgwfwwwgwwwgwvxwwwwfwfgvwvwwwwwhvWfufvfgwxwwwgwwwgfwwgvewwxwvxwxwxWwgvhwhfwhvfwfgvfgvfgwwwwwwgewfgvgwwwwfwfwfgvgvwwgwvWeFTDefeVwvwwxfwwvwxfxwwhfWvuwvgwwwgwgwwwUvegvfgvvwgweVfwgwwDETUfvwxxwxwgxvwwxwfwggwwwwwwvfvwxfvfwvwwxvgxwfwfxwwWwwwwWwgggFfvVgfwvgwefuefwgvwwwgfwwWgfgvwwwxgwgwvgwwxvwwxggwvgwfwggxvVvfwwwxffghUvfgwgvwhfwwvggvETfVfffvwwTVefggxvhfwvwggVvfgwVvwhweffvwvfxefwuvwwwXffgwfegwuWeTVfffefGTuwwgwxwwxxxgxvxwgxwwggvfgwvwwvhgvwxxwwvxwxwwgwxgwWgwuvfwwwgvvfxxgwwxwwwwgfvvxxvwxwgwwwwwwwwggxwxwwwwghvvvwwgwwgwwggwgvvwwwwwwwvvwVWefefvvvWefUfvvvwvwvgxvfwxwvwgwgvvvvvgwwwwwuvWgwwwwwVggugveUVVfgvvgUfVugffgwwxwwwwgvwxxxwvwwwwvwgwwvwwxxwfxwwfwwxxxwwgwwWuwwwvwwxwUwfwwwgfxvwxwvwwguggwhwwwwgvwwwxxwwwxgxwxgvwwwwxWvfgwfggwwwwwhfuggwfwuvvffwwhfvwwgVffdfgvvfwwwFfVvwwggwxwggwgWugvwxwfuUwgfwvvwhVfwvgwwwgewfwfDVvvgfffwGdVfggwxwxgwwwwwwxxgffwggvvgxwwxxwwwwwwwxxwwwwwgeeffvvfxwfgvgfvwwgxxggfxwgvffwwhwwwwwwvwwvwxwwwwwwwwgUwwxwwwvgwwxxwwffxwwgwffvvwwxxvwwwwgVETUUuwvwwwUfffvwvvwwwwwwvfvfgfvwwwwgffvvwxffeeUwwwffwwffvffUUUTEwfwwwevwxwwghxwwwWVvxxvwwwwwwwvwgvvgwggxxwwwfvggwxwwgwxggvvwwgwfggwwggxxfEfvvxwwxwwwgxwvwuWVfwxxwwwxxxwwxWweewxgvwxwwvWVvggwvvwwwwwwvfeVfvwvvwwhffffxfvfWVvgfggw54TvfxwwwhVgefwwwvwxgufgwfggwwwggfweewgwwwWCCegffwvvhwvvwgUdfwgfvgvxwwwggwwwwwwwwwwwwwwwwwWfeffvwwwwwwvwwwwwwfggvvfwwxxgwggfgfvfwvwvwwwvvwxvwwgffwwwxwwwxwhfwwwffwxwwxwwwwgwwvgfgggvgwwwwgfwffgvgwggfffUeexfvxgfvwgVUVfffVeuxwwvwwwwvwwwwwwwgwwfgwvgwggvfwwffveVffeUeeVVwvffgxxvfUeUfVffwxxwggxwwwwwwxxwxxwxvvwwwwwwwwhgwwwwwwvgxgfvwwgggwwwwwwvwgxwwwwwfwwvwwwwwwwwvvwwgxwxwwwxwwxwxwwwwwxwwwwwwwwwwxxwxxwwwgvwwvvwwfgwwwwwwwwwwwgfvvwfgvvfwwggwwwfwwwgwgvgwwwwwvwvgwwwwwwvfwggvvgwwvwwvvgwgwwwvwwwwwgwwgwwwwwxwwxwxwwwwxwxwxwwwwwwhwvxwwvgwwwxxvvwwxwwgffWevxwxwwxxwgwwwwxwwhvvwxwwggwxwxwhwvwgvffffVevxwxwxwxwgvgxwwxwwwxxwhvfvwxhwwgfvxwxwwffvxwwhffvwgwwgffWewwwxwwxvgwUfwvwwfgwUffwvffUVvxxxwwxxxwvfxvvwwxwwwxwwfwxxwwhwvwvwefvxxwxwwwwwwvgwvxuvfefweexxwwxxwxwwwwgwvvvwwwxwwwwwffvghwWgvwwwwgVufwVUuvvvFfxxwxvvfwwffvxwwxwhvwwwwwvwwwggfvvvvffgxwhwWegfwwwffvvwUefVevDUxxhwwwWwggwwWVvgfVwwgWeVffGTedVxwhwwfwwwvvwgwwxwhwxxwxwvwwwwwgwwwVwwwwgvgvWfvvhuwwxfvfwhvwwHfvfvWfuVvwgfwxwxwwgvhfvwWvgwwwwwwffgggwvwwxwxwuwwwvwwWfuvgVfefffWevwvvVegewwXffvhfwwwwfwgUfwXuuffgeVWvvWfvwwfwvwefwWevwWvfgwWefVfvFTuvvvveWwvwfgwfgUffvTEVfwgTfUffDUefvwxwwxxwwwwwfvxwwwwwxwwwwxwwwwwwwvfgwwwwwxwwwwxffvwwvfgwwweVwxwwwwwwwwxxxwwxwwgfgwwxxwgvfwwwwVffwwwwffgVexxwxwwwwgwfwxxwwxwgwgwwwwgvfvfwwxwgvwwwwwfUfwwgffVffUUwwwwhvgwwwwwwgfxhgvffvWUuvfUVfexxwwvwwwWugxxwwxwwwxwvwwwWwgwWegvhwxfwwwwWwwXugfwgvwWugfgwxxgwvvgfwwgvwwwwwwgvwggwvwxwwvgwgfwwgwwghvvwwFffuvhgwwwwwWffwgufvxwwvwvwxWfwhufVvgfvgvvwwwggvfvhUwfgfvwhfffv6SEdvwgfwfvvwUwffvvfwfxwwwvw3UDwwwfvTfVffvwxwxwwxxxgvwvxwwwxwxxgxwwwwxgvvwgwwwwxxxwfwffvwwvwvxxxwwxxwwxwwwxwwwxVfvweVfveggwhvgwvwvUfefvwwgwwffVeVwxxffwwvwgwwwwwxxwxxfwfwfgwwwwxfwwvwgwvwxhwvvhvvSUDVfwwwwxVufefwhvgwvwwhgggwhvgffFTf6UefwwwhffxxxxxwgwwwvxwxwxvvwhxvwwxwxfwxxwwwwvvvfgwWfffwwwwxwwwwfggwfxhvvwwgvgvwGVvwvfwvwvwgwfxeuwwvuwfWgxwuvwhfwfvgvVVfhgxgwfgeefvWfvwfvwvvvWWggdfwwwwwgvgfvwwwwhvvvfwueVvvGVvVVvfvdf5fUVVvxgvvGfVdVvgvWVvvvgUWffwfffTffSTwweVWwxxeeVfgSTvvvwwxxwxwvfwwvxwwhwxxvwwxwxwxwvgwwffwwxwwwxwwwwwwfwxvwwwffwfwwvwghvhwwwwfwxwwxxfwvfvgwwXwgwWgvvwvwwfwffwwwwfxwvxxxwvvwffwvgwvxgvwvwwvwvgxwvfwwffwvwwwVvwvgUewwwwwffVUffwwefWwwwWgvWgfvfWUefvwwgevwwwWvgUeffVvwxxxhxwwwwxwwgwwwxxwwxwwwxwwwwwwvgxvfvgffwvfgeegxvvxgVevwggwggvffwxvvwwxwhfwwwwwwwwwwwwvwwwwwwwfUfxwwwggvwwwwwggwWVveewfwwwwgffvWVvxvvffvwwwwgefxggwwwwgfvgvvgwwVfewwgwgffvxggvfgvFEufgvwUDUwwwwwffvUfwwffffwwTTwwwfweexxwxxvxwwxwwgwxwxwwwwwwwwgwwxvwvxgvvwfWfgwwwwwWvVhwxvWfxwfgwfgwdfxxgxxvwgwxwwwgxwgWwwwxwwgfUxxwwwxwvWgwfvVVxfwwxwwwwVgfwhwwwwggvfvxvwwggwwVwVwgweVxgwxwgvVfUvgxfVwvwUgUfwfTEwwwwgvevwgvffvfFUxxwvwxfgeevvGfffVwvwxwwgwfwhvwxgvwwwvwvgwvwwfvwwwuvwhvfwwxgwgvgwxvxwxfWwffvgwvwwxvvwxwfwwxvvxvfgxwgfwwvfwwugFfgufgwwwwwewfgvUfwvWfvvfvwxfUwhvvgggVvffgwgfxvwgegfefwwhwgwggDUfweffgfhwwgfVeTvwvgvfVgfufwVvTVeugwefwwfWfxfweffTEvxwxwwxwgwwwxwwxxgwxwwwwxxwxwwxwwwwwwwwgwvwvwegfwvxwwwvhvfwgwvvwwwwvxfgwugxwvwwwwwwxvwxwwffvwvwwgwvWwwgwwwxugwvwwfwvgwwwwwwvWvvwvgwvfwwvwfgvwfwwxwwvgwwwwwfgwwwwxwfgwvwWgvwwWufvvggwVvUVefwfgvUVeefwvgfVeUvvxwwXeUVwfvgwvgwfgvfvfgwVvvxxwxwwwwwwwvvwwwhwwvxwfvvvfwwgwwwwwgefwxwwwgwfggwwgveevvgwwvvgwvxwwwxwwxxvvwwvwgfwxxvvvgfwvvwgVgwgwxwwwxgfuvwwwwvwgvxgvggeewxxxwwxwxwwgxufwgvvwvvwxggfwfvwvFEewfwwhvvvggTTvwwgfvffwFEevvfgfgVwffwfFEewxwvffVgfvvvxxwwwwwwggwwwwxwxwwwwxwwxwxwwwwwwwvvgwxwwxwwwwxwwwgwwwwxwwwxxwwwwhgwwwvgxhwvwwxwwwwwwwvfvgwwwgwwvvwwwgwwwggwwwwvwgvwwwwwwwvvfgwfwxxwwwwwwvwwfgxwvwwwvgwwwwwwvggfgvwwwwwwwwvvfwwggwwwfwgvgvvwgwwwgwwwwwggvwwvwgwwwvwwgwwxwxghvwxwwwwxwxgfgwwxghwwxwwwfwwffxwwwgffvgvvxwwfvvwwgvfffwgfgwfwgvvwxwwxwwwwwxxwxwwwgwwwggfxgwwwvfggvwwwwfvgvwwvgVVfvxwwgwfwwwhwvweewwhgfgfwvwvgwvgwvgfffvwwwwwwwwwWVvwwvfUUfgffgFDEuwwwwffggffwgffDTTwgwwwffvfwfgeefgffeVwwwwwwwwxwwwfwwwvfggxwwfxwwhxvfgwgxwvvfVggwgvffgfgvvwwfggwggwfggugwwxggxghxxwfxwxxwwvwgwwwvxwwgVfewwwgwxwwgwwwgfxffwwxwwvfggvvwwggfvfwwgxxxxfgggwwfvWgVFTUtgwwvggvefggVffufwgvgVfeufvguFTUTfvgwwvvwfwfvvfhfgfwxxxwgwwwwwwwwgwwwxwwxwgwwvfgwgwvgfgvwvwwwwwuvewxwwwgwwwxwgwwwwwxwxxwwwvffggxwvgwxwwVVwwfffxwwwvfwvvhvgfvwffwxhwwwgfgvwvvgfggvffwwxxwwwwgggvwxgvfwwwTEvgUUUwgwwwwfeguwwgfvffxwfUUffUUUvffDUwwvvfxwwvwgufwwvwxwxwgwwwwwhhwwggggwwxgvgggwxvgfvgwwwwxvvvvffgwwwwvwvgwwwwfwwvwxwwwwgxwwwwxxwwwwwwwwfwxwxgwwwwwwwwgfvggfvwwxwwwwwwgwwhwvwwxfwggwfgwwfwwvvgvvfxvfvffwgfwwwwxwwgwxvfvVVfvgefvffwwwwwwfffwwwvwWUuwhUeffgffvvvggvwhfvvxwwwvfwfwvxxwxwwgwwfxwgvvwhxwxvvghfxwWvgvwvwfWvfxvxxWvvgwxewwXwugeWfuVfdVvvxwxwwwwVwwguvxgwwwwwfwwvxgvwwfgwvhwvwwgfdfwvFfuwxwfEffgvewhwvwvgwwVwwhvgEfvfVdegvvxwxgvgeWvwwwfgwvgegeeWff6UgvwfhvWvwwweWvvgwwfVgwgwdVU5UeVSUxxgwwwxwwwfgvwwwxwwxwgwxxxwwxwvwwwfvegvhwhfgvfwgWwvgfwfgvfgvfwwwwwwxwwwvvgwxwwhgvVwvgvwwwwwvwwwgvwwfgvgvfgveVgvwxwwxwwwfwVvggvwwhvwwwwgvwhwfvgwveWwwwwwwwwwfgwvwgvgvfgvVeeffDETewwvwvwwwvgwWfevwgUgvfgvegwGTDewWfuxwwwxxwwwwwxwwwwwxxwwxwwwwxxfwwwggwfvfgfxwxxwxwwwgwvwvwwwwwwwvWeuwxwwwwwwvvxwwwgvfvxwwggfxwwffffgvwwwwwwwwwwwgVevwwwwgffVeuwfwgfvgwfffuVvxwwwwvgwwwgvfvfwwggwgffVeuVevwwUfvvvWfeeVTEUfegfWTEUUwwfgeVfwxfffffvgfffUVUDEeefffDExxxwwwxwwwwxxxwwwwwwwxxxwwwgvwgwxxwwwxwwwwwwxxffvwwxxxwwwwwxwwwwwgfvwVefgfwwwwxwwwgvVefggxwwggfgfffwwwwgfwwwxwxfwxwgvwwwwwxwggwwwwwxwxgwwvwwwTTfffgvwwwUVVeVwwxfgwvxhffvwfgwvWeeUfuwvvwGEuxwxxfwwwwggwwwwxwxwwwxwwxwwvvxwwvgffxwwwwwwwvwwfgvvfwwvffwwggwwwwwxxwxwwwvwwwwwwwgVuwgffvwwwwwwwgwvfwvgffgvfwfgfvvwwwxwfwgfwvffwwwxwwwwwwwwwgwwwvgwvgwvgvgwwgwfgfggfffvfeUewffffeUUeewwvffgfvwwffgfvfUVVUffeVVVUUffVfvxxxxwwwxwwwwwwwwxwwwxwwwwwwwxhffvgwfwvwwwwwxxwxxfwfvfgwwwwwwwwwwxwwwwwxvwhvwwxwwwfwffwwwgvwwwgvwwhwxxgvvfffgvfvfwwvgwwwwwwgffwwwfwfgwxwwvwxwxwwvfevVgwfffgvgwwwWVvvgwgwwVfveVUVefffwgffwvwvwgUfvfvwxhfvggWUUeUVeegggffwwgwwxxwwwwxxxwwwwwwwgwxwwwxxwwvwwfvxgvxffvfeexfwfvfVWxwwhvvfffwvVfeUwxwwwwxxgfvgvxwwwwwwwvvxwwxwffgwxwwwwwwhwwffuUfuxffxxwxwgVeeewwfUVgewxwgwwvgvvvgfvVfwwwwgffVUUwgxwgvvfvfvefffFUtwvgvfffwvwggUEFTEwwgwvwggvfvffeVeUewxwwxxwxfwwwwxwfgxwwvwvwwfwwxxwvgwwxewwfwwwwwgvwwwvwwxxVwffwfgwwwwwvxgvxwwggwhwwwxwgwvwwwxwVuwwwwwwwwxwwwvWVvwwwwgvewwwhgvgwwWfwgfvWuwwwxwwwwggevggvWVwfgFffefvfwffwwwwvfFefwwwvwVfvwhwvGdffffvugwwgwevvwwhvgdTffgxwwwwwwwwgvxwxwwwwwxwwwwwxxgwwgfvwwhvwvwwwgvwwwwhfwwvwxhvvgwwwwwxwwwwxxwwwwgfwwvvvwwfwvvwggwfvfgwwwhfgvwwwwwffvghwwggvwxhfvwvvffwwfwggfwwhfvwvwwwxgvwwhUegwwfffwgufWUveeWffvwgeVfwgwUefWggwwxVVUwffwWwVVfwwfwvugefwwwwxwwxwxvwgwgxefvwxxwxwvwwfvxvwwwxwxwwwgwxufvweggvvwVVxxwwxxxwgfvwffvwwwxwwwwwffvgwwgWvVgwwwfVufweVeffvDUxxwwwwvwwfgwwxxwhwgwvwwfgwwwgfvvwwffvgvhWgvfwwwfgwwwVUuWevdfxwxhwwgXvwgwwgeuwXffwvwGffefGTUeVxxwgxwewwfwgvwwWgfwxxxwwwwwwwvgwwfwwwggwgwwxhxwewvfwhvwWwggvWWfFgffvxwwwgxwwxVvVfUffvwwwvgggvvggwwvwfwwwufvwvwwWgfVeVfVVfgGTuwwwwgffwVvgwwwwwfgvwgvvWggWfeeVWWWfevwxwwuwwwgvwgffgwWVfVWfVevgwggvvggvvvuuvUffgefevwfVfdTUDUEfxxwxxxxwwwxvvwxwxwwxwyxxwxxwwwxxhgwwwxwffvwxwwwwvvUfwxwxwwxwfwvxxxwxwxvvvwxwwgffwwxffvwwvwwfffUexxwwwxvwwwxwwwwxwxvwwwfvfffwxxwwggwwxfffwxfvfvvwUfxhgwwxwxxxwWevgvggggWUfwwgfVefwwwwwwxfwwfvwfwggfvwxwwwwxwwwwxwwxxxwwwwwwxwwxwwxwwfwgwwxwwwwgwWUvxwwwwfwgffwfgvfeWvxwwhvfwwggfffvVevwwUffgwgUVfVTEeUffvWTEUUuwwwxwwwwwvffgvxwwwwvvwwwgfgffvwgwvgfgWUvwwwfwwwwwwwwgffvwwwwgVeVUwxfvfffwwweefffgveVfUeUDTfffffDTwxxwxwXwvhwvvwvgevvwxhhfwhgxxhwxwvhwxvvvugxhggwegwxedfuguefuuwVvwxhwggveFwhfuvhwwhwvwwwwvwvhgwvWVgwegvgeffwwfeuvvw5UwwwxwwvWwxvvugwwxhgwweFwxeetvWfvfvvfvwwhwvhggwwwvvgxfdfvvwFeXwvWVggwvwwgfhwfwwW5UugwWSeWffUfTfwxwwhwwwxwfgwwgwWfgxwvxwwwxxwwwxwgfghvxfvvgvWwgfgggfgggwhvwxwwwxweggvwwwfgwwwvewhwfhfwwgwvwwwwvvwWfewFDEewVffffgguxxwgxwwggwgvwwxwwgvfwVWgwwvgwgxwwwhwwwwwwwgwvwWWffwffggfgwvwvwvweefvwvwwwwweWDTTfuvVefvvgwgwxwxxwxhwwwvvgvxfufxxwwxwwwwwwwvxhwxxwhwxwvwwwxwgwWegwxvvvwvvvfugFfhgwvxwwwwxfvewxxwxxvhwwuvxfvxwgwWUfvgwxfwfvhUvUvevETxxxgxwvwwwgwwgxgfgvwwwwvwgfwUwvgVewxwwwgUfwgfwvugwwweewwwwgfgvwgfgfVgVDgggwfgfvgwgdVVVwhvwxxxwwfgwxWgwwgfgwgxwvwgwwggwwxxgwfhwgwgvwwxvvwhwvhxggwWfwvwxxfwwwwvfgvvWvugggwvfvwgvvxwfgggvgDUwgeffgfxgwgvVEVfwwgfwvgxwwxgwvwgghggeggvvvWvvhwwhvfVfvwgwvggwdfuwufggwvxggwwwgUgvVwgefegfxuvwevTeeufwVfwweffwgfufETfwwwwwwxwvwwwwgeggwvwfwvxwwxxwwxwwwxwwwxgwwxwxvxxxwgfgwwwwgvvvvxvvwwWvvwgwvvwvvwxvgfvvvgfvgwwwxvwvuwWUvwwgwfgggfwegUeevwfvvUeeVfwwwxwxwxwwwwwwgvwvgwwwwwvvvwwwwvvvgwwuwwgwggwwwwfwfuwwxwwwvvwgwggfVUVfwwwwXUVvegvgfggfwgeggwwfgfwxxxwwvxwwfwggwfgffxwxxwwwxwwxwwwwwwxwxwgwwgfvvuVfxwwggvfggwvgVeffwwVVxwwwxgvgffxwwwwwwwwwwwgwwwgvfvVfewwvggvvwggvfffVTggxxwwgwfwwvvxVVffvxwwwwwwwgwvgfVffwwwwwwfUfxwwwgwvwwwwwggvgeuwwgwffvfvwwwUDUUfwwwwwvwvVVffffwEEvvwwhwwwvgefgwgfvgvxxxxwwvgwwwwxxwxwgwvvwwwwwwgggvwwxvwvvhwvvvvFVgwvgwgvfwuvwWggffdwwvevgWxwwvugFfgvfeUe6eFfxwwfwVVUfdvvvVVxxwvhwgwgweuwvgxwwwwffwvgwxuvvwwguevvfFVvggvfvfVVvgvvggfeefwVfgvgFfVvvfffVVWVStwggVvxxwvVWfUSdeewxvxxwwwxwwxfwhgfxxwgxwxxvxxwwwxxxwgwgxxxwwwwwwwwggfwwwwwgxggvwxvwvwgwxwggfwwxgfhvwhgwghwwVwwwfUehfgwgwwgVUvwwgevfwxxxwwvgwghgvgxwvwwwvxwvggfwwfwgghwwvxvWwwxufwhvwxwwwggfgwwgwWfwweUeWwfvvufwfwwwfUewwwVwvfuffVwwwwgwxwwwgvgfvfvgfeexwwwwwxwvwxwwxwwxwwwfggwfWfffxeeVwwvvgvvfWvwwgfgVwwwfeewwwxwwwwxwvfwffxgwwgUUufvwwfffwhfufvvfETxwxgxwfwfxfUxwgeWwfwwvffxwvvvwgVewxwwggfvwxwwveVxvwgwwwVewwfwVFUtwvgwfffVDuwgfvvgwfUuvggUvfVwgfwxwvwwwxfuwgwgxwwgfwwwwgwxxwxwxgvwxxxwxhvwwwwxwwWvwgggwggfwxxwwwwxwfvugvvwgwvwVwvwwwwwwvwwwxhVffFfvhfvvwfvwwwgfffEvwwwvwfxwxxxgggWuwfwvxwwguvvWVwwwfgwgwhxwwUwwwwwwwvxwwxwwVVwxwxwgDfwxvuvVffffvvwgwwgVddwwgwfefgfwxwwwwxwwwvwwwfvwwxfgwwvxxxxwwwwwwwxwgwwwwxwxvgxwwwwwfgvvvxwvwgwwwwvwwffvxxvgwvgvgvggwvwwggwvvVffvwWufwgVVfUVVfevgvwvgeugwwwwwwxwwwwgfwxgvvfgvwwffvwvwxwxwvwwwfgwvfggwwwfggffwxxvwvwfwWeeUVuwwxhWgvgffvggVVfevWwwewwwwwwfwxwwfvxwfxgvfxxwwxxwwwgwwwvwxwxwwwwwwwwvwUggxwxwwxgwwwwwwvwxwwffwwwvwwhvfvvffwxfxvgwwfgETwwUUUwgwxxwwwwfvVwwgfwwxxwxwwwggwvfvvffgwwwwwwgvvvwwgfwxwweewwfffggxgwxhgwvwwgfvffwffgffUUUVUVDUwwvwgxwwfggWfwwvgvvwxwffwwxwwgwfgwwgwggwvxfvwxwghxwwwxwwwwvvgfvwgvwxwwwwwvwwwwfwwvwwxxgwvwwfvggwfwwgwvxwvwwxwwwvfwfeevffVvwwwxwwwfffffwwwgwwwwwwwxwwwwvhgfwvvfgvwwwxwvwffwwwfvxwwggfvwggfwwxwwwwwvwwwwgwgvvwggWUefffVUvfvwgwvxxxfggfvfwwwhvwwggggwgfxwvfgWvwwvhwxwhxgwgxwgwxgggfgvvfgvgvvvxvgggvwgggggvexgffwwgxwgggvvgwgxxwwgwggfuwWwfTUDwfuffVfwgggfgwvewwgxxxwxvhhwxfwwggfvfxgggvxwhwfwgvwwwgeeVxxwwwvwwgwwgwfvvfwfTUDwfwegeeVVfwgvvfwwfgfwghfgvvwwwxxwxwwwwwwvfgwwxwwxwwxwwwwwwwgvwwwwwxwwwwxwwwwwvfgffvVexwxxwwwwwgwfwxwwxwwwffwwxwgwgwwwwffewwgfffUfUUxxxwwwwwwxwwxwwxggfwwwwwwfgfwwwgfgwxwwvffwwwwwffeeVwwxwwwwwwwgvggvwhgfgfgUfgvVfUUexxwxgxwgwwuwwWvVxwwwwwwxxwhxwwwWvWvxxfwgxwwwvwXvWvugwgWvWvvvxxwwwwgwgevwgfWvwwwggvwwggwwfxgfggewegfwgwggf6T5dfffvxwwwgvvvfwgwxwgwwwguwhgggufgfgfWvwwxgwgvwwvwvwgwvxgxvGffeggwvvfggwvvfgvfwewewwgwdfUwwwgwCUCfffgxwxwwwvwxfwwwvxwxxwgwxxxwvxxfwwwwxwxwxxwfwvwwxwxffvgxxwwxxvvwwxfgwwvwwxfUvxwVfVgfggvwwvghww5UfWeggwwdedVfxxwwwxwxwwwxwwwxxwwfwvwvfwwxvvvgwhfwhwggwwwwUfffVgxwwvefvVewwgvgvvxhgwwgvgwfGfEfffffvWSexwwxhwvxwxvwwwwvfffxwxxwxwwwggxwwwwwwxwxwwxwwwvvgwfwwwwwfgfggvvvwwwwwwwgvxgvgvffvwwwwwgVuwgffgfwxwwgvvfvfgfgUVefffffUVUUxxwwwxwwwgwwwwwwwwwwwvwvvgvwwvgwwwvwvwwwxwwwwgwfvfgfvfgwwfvfvfwggwgfvffwwwfvffgfUVUUVffefVeUffeevwwwxxwwwxfvgvwffvwwxxwwwwwwwwxwwwwwwwwxwxxwwxwwfgwwwfwwwwvvvxwxwwwwwwwfvgwwfgvvvwgwvfwvwwfgwwwVgwwwXvfwwVffVevfvfgvwfUeegwwhvvwxxwxwwvwxxwwwxwwffVgwwvgffvvvvuxwggxwxvwxgfgffvvwggvwvfvvwwvWfegfwwwxhfgvvVUeffWVVwvWUVvwwvvwwxwxwvgwwwgwxxxwxxwxwwwxwwwxxwxwwwwgffxxxwwwwwxwxxvfwwwwwwwwwweVwgfffgwwvwxwwwvwgwVTTVVuwwwwgfffUvxxwwxwwxgwwxwwgwvgwvxxwwwwwwwwxwwwwxWfefgfwvgwfggffvxvgfffwxvvwxvgwvgeeUEEvvwwwVewwxxwvfwhgvwwwwwfffffwxxvwwwwwwwwwwwwfgvwwwwhfgvfwwfvwgvwwfgvffffvwwwwwvxvwwVVfgfwvwvwwwgvfgvvwgfwwgeUVUvwwgffgvffwwgDETffwwwwxwwwwwwgwgxfwvgwwwwfwwgvwwwfffwwwwfvwgvgfwwxwwffvwwvwweVfwwvggffffwgwwwGTDevgfwwwwffvwWfevwgUfwwgwxwxfwwwwwwgwgfVwxwvhwwgggwxwxwwwgghwwwwwwvvfgwwhvggwwgxwwVVvfwwwwwgxwgwgfwfVVwwgwxxxggvggvwwffgfgVTdwwvwwwgwfEEfggffwxwxxxwvggwvwxxxwwxgvvggwwwgxwfWwwwwggfgwefwwwxxwwfWfvwwwwwggwhwevfffvfVTdffwfvefwwggVTdfggfxxxxwxwwwwvvwwwwwwxxwwwwwwwwwwwwwghwwwwwwwwxwwwwwwxwwwwwwfwwwwvvwwwwvvvghwwwwwwwxwwwvfgwwvwgghwggwwwvvwwvwvwwwwwwwwxwwggvwfwwwwwwwwgwwvvwwgwwwvvwwwwwvvgvfxwwwwwwwwwggwvvwvwgwvwfvgwwwvwwwgggwwwwvgwwwgwvgwgwwwvwwggggVwwwgfwwWvuwwhwxwxwwxwwgvgvvwfwwwxgwgvvhvwwxVwvfwxxwWwwgwhvwXfvWewgfwwfwwgwfUVeFUdwwxwwgwxwgvwxwxvwwwdfgwfwwXfufUVuuVvfGevwfwhwfgfgwWefvvvvwwfweVggfffWfefegeVWefFTuwwwwfwewwxwgggffwwXvvWfvVfwwvwvvwefgfvwewvvgwUfeffefDUwwwxfwwhfuwwwewuffwxxxxfwwxvwwxxxwxvxfvwxxwggwgxwhvvfwvvwuuwEfgwewwwwgVdvegegSUUgvgxwfwwwwxVwwwgGfffEfgxffvvweveuefUfwxwwwvfxeweuvwwgvwwggvfgfheudfwfefdef5UwxhwggggwwxvvweweuvvvwfwxwggWwgwwgggWdvWfgwxhhfgVgWSeegwxwwxwxwgwwVwgvwhffxwwwxxxwwwgwxgxwwxvggfxwhffxhffwffguwhwwxwxwVwgvwXffwfwxvxgffwguwwwwffgugvgffgvWffgwvgvwfwhggffwgvwxffvgvwvXffggffgwwguxwvgfvxxgwvggwwgwwhvwwwwffvwxwwwwwVwvwefvffvfwffvVwfwwxvwxxwwxhvwfffwvffvwxxvwvvwxgxwwxgwvwwxwxfwfgwxfufwwvvgvwgVewvgwXevgfvfwxTTVxwwxwwxwwvvwUfxwhvgfvvgfwwfffwxeeVeegUewxwwwwvgwwfffffxwwwgeWvvfwwUUewweegffgETwxxxhwwvvgwfvgxfvgwwwfvgwwwgUfvxgwgvgfUvwgUfffwWDuwwwVgUVwwWgwwwwhvvwggWfvwXgvvghwwvgwuggvfwwwwwwgwwwgwwxwvvgwwwvvwgwwwwfwwggwwwwwwfgvwwvwvfggffwWffvwxvgwwwxwwwwufugggvvhgvgvVfffvfwxwfgvfwgfvhgwwgvwfgwwvvvgfvWgffffgfgwwwvwhvvwwxvwwhvvxwwhwgfgwwwxwxegwxuvvvwfvgvwwwwwffvwwwffvffwwxvxwwvwfgfevwfwvwxwxwgvwwwvvwwxxggwvgwhfwwwhwvwweweuvvwvwvvwgwgwfvgwwVeffvUffvvgfgWvgfwvfvvvWVvwhwgwwgVwTfTffggvwvvvvgwwwhVvvffvewggfwwgfgwwVVfefdefvwvwgeefgxvwhggxfuwdfevwfxvwfvwwwwggWfwvwxxxgHfFevVVfgeggwwvwvxwghwvwxwwwfvxhwwvwgvgwgwwwvgwvgwfwWugvfwhwwxwwxwfwffvwfffwfxxwwwgufwwwgfwwhwwuffgvgVfwWefwxhwwwxwwwwfwfwwweffwfxxwwxwgefvwwWfwfvwgVfxhfvwgggefvwUffggwhfwfggefffvgfghwxvwwfffxgxvwwwhfffwwXfwvvvggvweffffvfvwfffwvggwwevvwwwgfgxwwwvwwwhgwwwfvgwwwvgwggvwvwffvwwwwwwwwwwwwfggwgwgwwgfwwvxvwwwwfggwwwffgVvvvvgegvwefgxwwxwwwvgwwwwwfefvgfvvwwwwwfwevgvvwwwgvvxwwewwwuvwfUgfffufgvgewvguvwefvfvevggwwwxgfwwwfwwwxwwwwuwwwwwwVewvffwXffwwgfwvwgwVvwwwgxXfvvwxwxwwhwwxxwfwwfghwxhgvwhxxwxwvwwwxgwxxwhwxwwwwxwwwwxwggwvxgwgwwgfwwhvwewwegwwgwVUVvggvwhwvwgggfgvewfgUfeWfgwWfgwxWfgwgwgewfgvwhwvwwVggWvfwxuwvfvwwfwWUVvwvwwwVggfwxwvwwxffvhwwhwwxgwgwwwgewfgvwUfegwwuwevvVvwwvvfwwVvwvvVvVvvwwgwxwwxwwgfwwggfgfxwwxwvxwwwwwgvxxwwwwxwwwgvwwwwggvwwwwvfgxvgwwwwVVxfvwgfggwwVVTUEgvxwwwwwwxwwxwgeeeVwwwxuVfggefVfgfeVwwwggwwwwffffwwwwfgffwwwwefVwwvggffeEExvvxwwxggvvwvgwxwwwvgwvgxvxwgffvwwggffVTwwvwxwgffwfgeeffwwwvwxxwwVwwwwewwwwwwwvwwgwwgwwuwwgwwwxxvwwwwxwxfwwwuwvwuhwwgvWgVwxwwghwvgfFfvwwfdvwgvgwvwwwwgvwwwwwgwwhUfgwvwwwfwwwwfWfevwxwwwfwwxguvwgwfwvugVgfgdfefuwvhwwgfFfUfwwwwwxwwUfwvwxxxwgvWfvwxwwvxgwwwvwwUfeffvwvgwwwvgwwwweVfVvwxwwwgwxwgvwwwvfwwgwvwwxwxwwwvwwwxxxwwwwvxvwhwwwxxwwwxwfgvwgwwxwvwwwwVfwwvwffwwwVfuffwgfvwwxwwgvvxgfvwgeWgvwwwgvfwwgwvwwvgvvwgfwgvwwfwufggfvwgvfwvwfvVgufgfwgwuffwxggwwhvggwvgwgwvwgxvwwvgvgwvgvfgfvvwwwXwfwwgfgvggwfwfgwfgwwwgwwwwwwxwwwwwwwxwwwwxxxwwxwwwwwwwwwwwwwxxwwwwwxwwwwwwwwwxxwwwwxwwwwgfvwffwwwggwwggvwwwwfwwwwxwfwggwwvwgwwwwhgvvwwwwwwwwwwvvwwxwhwvvgfwffvvvfwwvvwgwwfffgvfwwvwwxwwwwxvwgwwxwwwxwwxwwvfwwvggffwwwvwgwwwwvgwxwxwwwwwwxwwgfgwwwwvvvwwwwwwwwwvvxwwwvwxvwxwwvwvwwxwwwxvwwxxwvvwwgvgwwvvgfgvvwegewwvgwwwfwfwfeegeefffVgfwwwgfwwwgfvwwvwxgfgfevfWwvgfwfvvggVfvffuvwvwvgvfWuvfvffvwwfUfffVeUgwwffUVufwffvggvvfgwvfggvgffgwwUvwwevwfvvgwvwgwwVeVeUgvgffwwWggvwWfVvvfwwgvggvvvwvwwwgwvwxwwhgvveWwwwwgggwxwxvgwwwxwwwwwwwxgwxwwgwwxwwwxvggwvgwvvgWgwwxwxwgwvgwxvfvgfweVxwvwggVvfvwwwxwwwwwgWfuwwwwevfWfegfgfvwWvWfgwwvwvggwffxwgffwwfffvwwfgfffwwffVVgwwwgggvvwgfvwxffvwgvwwwwwwgwxwwwwwgwwfgveewxwwvvfgwggeuegvfffwwvgwgwwvvwwxwggvwXvvWwvggwwwwgvvwwwwvwfvfxgwwgwgwwxwwwwwwwwvggvgfvfvggwwwwfWfwwvvuwvwgvwUVvwwwwwWfeVfwwwxxwwgfwfwwvfgVgfVfevwwwfvvgvvggffwwwwgfvwwwfvgvfgwgfvgvVVegfvxwgwggwgvvgweVevgwwvwwgfgvvwwxwgwfvvwwwwwvwggwwgffffguvefeVgwwvwwwwgwgvfvwgwwgwgwvwwgwfgwgvvwwwwwwwwgvfffgxwgwfwgwwwwwxxwxwxwgvvfgggfvfhvvwwxxwgwgvwwwwxwxwguUVwwgeuwwggvwvgwwxwwwwwwwgvgeVfweefwwwwwwwwgwwwwwfwvfWwwxwwvwggwWWuffVffeeUgvvwggwvVffugwwwwhwveVwwvufxwxwwwwgwwxwwwwUVwweefvgefevfvgfwwwwwgwwwgwxwgvfwwwwggfwxvwfwwwwwwwwwwwggvwvwwwwwxgvwwwxwxvgwgffvgwwfwwvxwwwxxvfvfWefwvwfgwwwwwghvvhfvwwwwwvfwgfffgggvvwvwvwwwvvvwxfgvvwwxfwxvwwvUfVUfffwwgfwxvwwfwwwwwwgxwwgvwwhgwvwwxxwwxxVUuwgwwgffgwvwwwvwwgwwwxxwwvwwvvgxwxhfwugvexwwxwwwvwvwwwwxxxwgwgvwwwwwwwwwwwxwvgvgwwWvgWvvgffxwwwwgfgegeUwgwwvewwXwwwxxvvfvfgfwfwwxwwwegeUfvvVvwgwwwwefwgfvwwgwgwgwgfwvggvgegveWeUVvwwxfwfwggwvwwhwwwwgvewwwWvvwxhxwggvffwewveggwvggvxwfgUVeegfgvwwfwggwwwgwwwfwffvgfxgwwwxwwwfwvvvwwvvwwhgvgwwvwwxxgwvwwfwwwwgvfgvffgwgwfVgwwwggvgVwUffffxwwvxewfwvwwwwwvvgffvfvfwfvvgwUfegfffwvwwvgWufVwUgufwwgxwxgwwvgVwewuwwVfffvufffwwfwhvgwwgUvgwfvUvfwvfvwgwwxvgvhwgwvgfffgeWwvgvffWfffvgffwwwwgwxgwwwwvgwgwxwwgwwwwwgffwwgwxgxwxvwxwwwwwwuVvWwvwxwgfgvuvwwvxwwgVVwwwfVVUhwwwwwgwfwvwwwwvwvwvgvWVUvvgwhWfVfvvwwwgvwwffwfwwvxwwvwwgvguUfVfvwwwWVUvuwwwwxwwwwwwwvggfvvwwwWVUfvvwwgwvwfwxxvwvgwfgvgvvfuVguvuggVgvwhwwxwwwvfwwwffwhvxxwwwwwwwwwfvwwwxxwwwwxxwwxwwwwvfvgwgvxxfffwwwgffwwwwfUfwvVeffwfgwwwwgwfffgwhgvhfvvvggeefgwfgghwefVvwwvwgffwwwffvwgfwwwwhvvwwwgvffeVfgvwwxeVVwwggwxhfwwggweefwwwwxxffgvwwXVfwwwwXffuwgfvwvffffwgwvvwgvvgwvwwvvwxwfwwwwggwxxxxwxwgwwwgwvwwwwwxxwwwxwxvwwvvvgwwwwwggwwwwwwuuwwwvfWgwfvVWfwgwwwwvuwwwwgvwgwfwvvwgvfvgggwvfWgvgwwvwwwvfgvvwvfggfgwvwfgvwfufuUfgfvfgwWVfvwwxwwxwxwwgvwwghwggwgwwwwfwfgfvvvgwwwgvvwwfWfvfvvvgwwufwwwwwwwwwxfwwwxgfvwvwvwwxwwwxwwwwwwwxwxxwwwxwwwxxwwwxxwwUfwwvwwwwxhvVfwwWVfWwwfwvwwgvggvwefwwwffwgwgwxgVwfguvwfwvwwuwwwwxXfvgwwfwwwwwwwwwwwwxXfvEUvwvwwwwwwwwwwwwxwwwxxxfwvwuvwfwxwwwWevwgwwxxxxxHUewgWgwwwxwwxwxwfwwwxgvxwwwwwvvwfvxwxwwxwwxxgwvwwwxwwwwwgvgwwwgwwwwwwwwwwgvvwwgwwffxwwvgffffwwvwwwwwfgwvgwvgvfffffhwfgwwvvwwgffffwwwwwwwfwgwvwwwwwfffffxgwgwwgwvgwfffffwwwwwwwwgxxxwwwwwwwwwvwvffxwvwvgwvgwwwfffffwxwwwwvgffvvvgfffwvfwwwhgvxxfgwwvwwvwgwwwgwhwwfvggwxwwfwwwwwwffffwxwfwwxxfwvwwvwwxxwuffhfvwwwgffwwvgwwwwxwwVvfgvwwwxWevvgwvwfgwwwgvegwwwxwWgvgwhVgwvvwwvfwUUefgwvgfwwwwffvgvfgwwxwwxgfwwgwwxwwwvegvwwwgfvvgxXeUvvgvfwwwvggwwwxhwwgvwwwwwgfwxwwwwwwXefwggxxwwxwwwhvwwwxwwfwxxxwwgvwwwxwwwXevwwwwhggwhvVefgwwgfwwvgffwwwgUfwfgvwfwwwfvggwfgvwwwwgfgvvVefwwgvfvhfvwgfwgfwgwffvgxxffvwwvwGTewvwwwwhgggwxfvwwfwvxfvgfgwwwvwxgvvvxwDUfgwgwvwwwUfwwfffwfvwwwwwwxxvwxxvwwwxxwwwxxxwxvxvwwwxxxwwwwwvwwwffwwxxwwwwxwwwwfUfgxxhgwwwxegvwxvgwvfgVfxxwwwwwxxwwwwwwwwwwwwxhgwvwwvfgwxvvwevvefxxwwwhwwwwwwwwxwwhvggfwwwhffvfxxwwwwwwgvwwxffxxwwxhxwhwwwwxgvwxffwgfgvwwwffhvgffxffxwwwgvwxwwwgvgfgffxwffwWevgffwxxUfvvffvwwwxxffgfhffwwwWevxwwfggvwgffwwfwxvwhvwwgwghvgffgvwhvwxvvUfwffvgwwwwwgffwffWewxvwwffvfwfwfwffvwwfwffvUffwwwwxhvwvwvfwwxwxxvwfxvfwwxxxxwwwwwwwwwwfwhhxwgvfwxwhvfwfwTfUfxxvwwwffwSUUvwwwefvfwxxhhwfvfwwxxxhwfwwwwwwwwwwvwxhwwwgfwefvfwwwSUUfwxxwggvwxhgvwhvggvGeVevggvwhvwwxxwxWvwvwwvvgwgvgvvxxwwxxxxwwwfwxwwwhfwwxfwvvwwwwXwggwfwgwvgvwgfwgWvvvevgggxguwwwvvwffWVfwWefvgfgwwwfgfWegwXffffgfffvwWfwwfwgvgwhvgwwwxwwgggwhuvwxxvggvgwxgwwwwfwwgfvwgfvffWfvffvWevffwfgwwgwvfwwfweeUVfVfwUffwgfvvvxxxwwfwwxwwWvwfwvwwwwxxwxwxwxxwwwxfwfvwwwxwwwwwewfwwwvvwvwwwgfewxwxgvgfwvwvwwwfgVevvwevfvwgfwwwgwgwgUfewefwUffwwvwwvwwhfwwgwfxuvwwwxxwxwxhfwewuvwgwvvwvwwgwwfwwgvgvxgewdfeeffwewwevvvwwwgwgvwgvwwxgwwwwXfFVfVfvgwWVfvwwgwwwwhvwwwfghghwwwxwxxxxxxwwxxwwwwwwwhggwwwxwwwwwwwwwgwwwvgwwwwfwgxwwTVwgfWVfffwwfwgwWeUUfvwggwgggVVwwwwvwxwwgwwwwxxwxwwwwfwwwxwgwxwxwwwwwwwwwGfVVfvwwwgfwgdwxwxvvwwwwvwvvwUefEewwggwwwwwwfvxxwwwvwwwffgwwwxxxwxwxwwwwxwwgwxwwfwfwwwfwwhgwwwvvvxxwwwwewwevwwfvwgwwwwwfvffwgffwwwvvffUffgfwfvWfVffwwwvffwfvegveffefwgfwwwfwffvwvwxwwvgwwwwwwwwwfwwvwwuwwwXfWevwwVvwwwvwwUfwefwwhgWfvgfvvgWffVvvwwvvwvwWvgfwgfgffxwwhwwwwxxwWWfxwxwxwxwxwxvwxwXWvvxwwwwxwggwwxwxhgwwwwwwwvwvwxwwwwwXWfvvgwwwwvwWUVvxwwgwwxdTVxwwhfwxWWfvwxhfvxxxwwwWWvvhxwwvwwwwxwwxghwwgfxggwwvwhfwwxeeghwxwwwwGFeuwxhgwgwwwuegfwUeeuegvvwwuefwwgwueffvwwwwgwugwwwwxvvvwewfxxxxwxxwwWwfwvgwwwwwhvwwwwwvvwewvvwwvhwwwfgwgwgwwwwvxvvvvgvehgwdVwfwwgfwWeffgWvfwvwffwewTfevwgwwgwwXgvwwwwwwwvwgvggvwwwvwegwvwvvwwxwwdfgvgwggwwdVvvgvwvgfvvvwxwwgfWwGevfvgfggwxwvgwFWVfvvxwgwwvvxwwxwxwfwxwwxvWguxwwwxwwwwxwwxwXfuxwwwwwxxwhwvwxwhwvwwwwwggwwwwvXguwgvwwwgwwWeUxwxfwguVfxwwxwxvGVduwwwvvwgwwwxwwwWfuvxvwwwgwwwxwwgwvwwgfgwgwwxwxvwwwdEVxwxxwxwWfufwfhvvfwwwuVgvwUVeuVgggwweVgwwwweVgfgvwxwgWvwwwfwfwWvwwwwwxxwwwwwxvwgxvwewfxgvwwwwwwxgwggxvwwewvwxwwfvwwvxwwgwWgwwwwfVwxhFeggvwvwgwgvgdfwvwgvggwwFefgvwgvwwwwvxwvxwwgwfgwwggvwvgwggwgwwxwwvgwuvvwxggWefvguvvVwgwvwfwTfevfvvwgvwugwgvfvfGgVfwwfgwwfggxwGeufwwwwxwxwgvwwwfwwwwgwgwwwxwwwxwwwwwfxwwgwgggwxvgxxvgwwwvVwgwwwwgxxguvwgvvwfgxfwxwwgffgvfgwffxvvwWfVvguvwxWwufexwwwWgVfwwgwVgevwgwwfgxwwggfwwwwxgxgwxwwgwgwwwwwwwvgfevfwfwefvgvvWffvwWfgggfgevffggeffwxgwvufvVvwwvgvwwvffwvvfgVwvxwwwggvwfwwwxwwfvvgwxxwxwxwwwgvwxvvgwxwwwxwhwvwwffvxvwwxfxwwxwgvvvfwvfwwwvvggwvffwffvwwVefgvgVevwWUfvvwwwfvwfwwfwwgVVfwwvwwwwwwgvvwggwwwxwgwvwxwfvwwwwxxfgfvwwfwvwhggfvfwveeffffvgwxeVfvwvfWeVfevwwwwWfeuwgfwvvgeefvgvwwwwwwwxxwxwwvvwvgfgxvgwggwwxxwwwxxwxxxwxvwwvwggwvwwvgwwwwhwwwgwwxwwxxwwwwhwvwwwwfgxwgwggwwVVwwwggvwgwggeufgfwfffgeugfggwgfwwxgvxwwwfxgwwgggwwwvgxxvvwwvwwgwgwxwwwxxwwgvveVggefVgvwggwwwgffwwxgvwffffeeVwwfffwwwwfgefVwwwfwwwwwwwwwwwxgwfgwwxwvvwwxxvwxxwwxxwWvwwwwwwxxxwwfwewgwxwxgvfwgwhgvvvwwwwvuWeVgvgUfgwvgwfWffvgvwwggVffvwgwfwvwvvwwwwxwwgvvwwxwvfwvwxxxvgfwevfwwwxvufgvvwwgxguvvwvvvgwwvvwwwxfvVeVfgfvgwwgwwxvWeVfwvwwwxvwgvxwxwxwwwwwfwwwxxwwgwvwxwwxxwwfwwwwwwggwxwwwwwwwwxwgxwwxvwwgfwwwwvwwwxxwwwvUUwxwwwwhgvvxwwVewvfffxwxxwwwgwvwwwWfuwgxxwwwwwwwgwwwwgwwgxwxwwwwxwwwxwveVwwfffxxxwwwggwwwwgUvwvwwgfvwgfffgfvUUwwvxwwgwwwfwwwwwwwwgwvwxfwxwxwwwwwwwwxwwwwwwggwwxxfwwwwwgvwwgvgwwwwwwvwwwwwwWffwxwhffwxwxwggvwxxfwwwwvwwfefwWggwgvwwwwfgfwwxVgvfxwxffwxwwefgefffggvgfgwfvffvxwwvgwVfvwWvvwwwwwxvgfvfwwwgevXwwWffffVwwgvwwgwwxxwhwwvwwxwxxwwwgvxxxwxwxxwxwvgxxwwxxxwxwwwxvfwxxxxxxwwwwwwxwwxwwxghwwwffwwgfvxxffwwwfvwxwwwwvvwwwwxwwwxwwwwwwxwwxwggwwwggvfwwwxwwwwwxwwwxfvvwwfgwwwwhgwwxwwwwwwwxffwwvfgffwwvfgwwwwxwwxwwwwwwwxxxwfwxxxwwwwwwwwwwxwxwwxhfvvwwxxwxwwxgwwwgwwwvwwwwwwgwwxwwwxwgwwgwvxgvvwEeeVfxwwwxwwwwwFfvgvwwwwweVfdfxwwwxwwgvwgvwxxwxwwwwgwwwxwwgvwxhwxhvvgvwwwUefgggwvgweVeVVxwxwwxwxhwvwwvwvXfUfggwvwGeuxxwhuxwwwxxwgvgwfwxxwxxwwwxxwgwwfwwvwvfggxxfwwvwwwvwugwgwggwgwvfvvgguwwgxgvgvgvgwwggwgwgeefVfVvwwwxgwvwvgvvwggfgfVgffgfVegxwhwvvfufwWwwwwxwxwgxgwvvvgggWwwwwvwfgfvfgvvgwgWufffVfffuvwhwvwvffgwvvvvfwVVvwfvfuggeeefgUfxxwwwfwwgvwwwwvgvxxxxxwxwxxwwwwvwfwVwwwwxwwwxxxwwwxVwvwwwxvgwvwvwgfVwwxfvhvwgwugwvwvxfufgwUfvgvwfwwwhvgggfwFfegvVwuwveVfgwwgwvwfwfwvwwxwwwxwxwhvwVwvwwfwvgwugwvwggwwwgvgwgUfVwvwwUfvwvufvgwgvwvgwwwwwwgwgwgeVfeVgfwwGfevwxvgxwgvxwwxxwggvxxwwwwggvwxhvwwwwxwwwwwwwwwgvxxxwxwggvfwxgvxgfwVTEuwwwwwwwwwwfggvvwwwwGUUdwvxxwwxxggvwxwxwxgvwwwwxwwwwwwwwwxwwwwwgwFUUtwwwwggvvfwxfwvfgvfgwwwfvfgEUTvgvfgwwgvwwwwwwwxxwwfwwwwwxwxxxwwxwwwfwwwwxwwwxwwwwwwwvfwwhffwwwhvvgvwvgvxvfvggfffwffwwwggwwvwwfwgXfvVwvwffvwwwxwwhvfggwvwfwwwwwxhVwfwvwwewvfwvwwwgwvgwgwgvwXffewwfgvwwvwgffvgwwgfvwwhwwwhvWgvgwwxwXgvwxxxwwxwwwwwxwwxwwwwxwwvvwwxgwwxwwhgwgfgwwgfwvgvwwwwxwwXfVvfwwwhgvvwxxgwwxwwxxvwwwwvwgvwwwwwxwwvwwwwwgefgvvwxXfgwwxfwgwvvxffgwfUfwwvvxwwxwwwvvwwxxwxvwgwvggwxwxwwwwfxvgvwfvvgwwwwfgwxwwwwwxgwwwvwgwwwgvwwwwxwxgwffgwwWVvwwxgfwwwgwwvvgUffWffuwwwwxwfwffvvgwfwwwwgvxwwfvggwwwfwwhwvwwwwxvwwwxfwgwwwfwffWVfffvgwwxweegfwfgvfxwwgfvwwgffffVfeugfwwwwwwwXffuwgvwwwxwffxwwwwhuwwxwwwxwxwxwwwwwggwvxwwwwgvwwwwxXwgvxgfvwwwwwwgfwwxWUfvvwUefvggwwwwgfvWfwhwfwwvgwwwuvwvhvvwwxvwwwwvvgfwwgwhwfwxxgvwxfwwXvfvhfvgfwufgwwfvgvfwWffvwwgwwwgfwUfvwfvvwwegfvwUfwwvwwwwwugffxwxxxwgwvgxwwwwxfwvvwxwwxxxxgwvgvvwwwxvvwwwxxwwggwwwxffvvwwxfwwgwggwwwgwvwxwwvwgvfvvVfuwwfffvvvggwgvggfffgVVeefwgwvfffgwgwvvvvwwvgwvvhwwwwwggwwwxfgfvfwwwwgwfUVwwWfeggwwffgfeewwwwgwfwwwvwWeVVfewvwwWVfvwgvfwggVVvwwggwwgvwwxxxgxvhwwxxwwfxwwxwXwgwxxgxxwhwgwwxxwwwwwxwxwWgvwwhvwVegVVvxwxwwwxwgvgfVwwwwxwwwwwgwwvxxvvgwwwwwwfUwvgwwgffWevxfwxwfwWffwhwwvwuvfxwvwgUUggvffWUfFThwwvwefwwwxwgggwwggggUfgdvxwwvwwwwfwxefveewwvvvffvFfffvffDUxwxxxxwwwwxwvwxwwxvvvyxxwxxwwwxxwhgwwwwxffvwxfffvwvVewxwwxwwwwxgvvxxwxxwxxwgffwxwwvwwwwffxwxxwxxvvwxwwxxgffvwwwxwvwwxfvffvfUewxxwgwgwxxwwwxfvfvvwVexwwgwhggwxwgUvwfgwwxhffgwWUfUfwxwxwxwVwwwwggWwxwxwwgvgwgwwwxwfxxwggggwhvvwwwgvGffvwggvgggWdwwgxfEfhvvWfggwhgxgxxhxguwxvvVdvgffwwVVGfgwgfwfwwvwgvWvgVgwwwfwwxvvwWvfvWfWfgVfVVgWSXvwxvxuuwWvvXWfVvGVffgwgewwfwuffwxvwwfvEfewSUUwwwUfeuv5UfwvwwwwxwwwgwxwxgvgwwwwwwwwwwwfvfwhhxwhxxwvwxwwxwgWugvggUvUwgvgvugfdwwwhwwfwwwxfvfxxxxvvwwxwwxgwwwvwxfwfwxgvgwfvffxxwwgwwfufxvgxwggfgwgwxfeUwgfvUgeeETxxwhgwgwxgegwvufwwwVVxxggegvwvwwgwgUvxgVgvVwWDugwgFfeUwxwxxwwwxvwhgwxgwvfwWwvwgfwwxwxxwwhfgwhvwwwwfvvgvwwgfggwWWfvwwxvwxwwwwwvgWvvgvgwwxwxhwxxwxwwfwwxvwhvvxvggwVWgwwwxwwvwwwwgvvgVgwgvwfwwwfvvWevwgVffvGDEegwwewhuwvwhwvhfggvffggfgwfwUgvwfvvvwevvwwgwvwDTTwvgweefUfwwwwwwvwwxfvwwxwhvvxxwwwxfvvwvffwvhwgvwwxwvvwwwwwXwWvwgfwdfUfvvxvvwvegVfxvgwwhVuvxfgvvvxwgwvwxvvwgfgwxxvwggegegeffvhwwvvvgwwwwWgwwxfgfvvgfgxvwgwgffTETeevgvwwfeffvvwwxwwxxfwvwfewvxvvvvwfwvwWgVffgvwhWwvfWvfVfVEVFTeWwwvhevxwwwxxwggxwwwwwwgffwxxwwvfvwwgfwwgffwwwxwxwwwxwwwwvgefVwwwwwwwwgffvwwWUvwxwwvfgwwfgffwfeVwwwwwwxwxwwwvfwwfvvwwxgwvwgfffgwWUvwwvwfggfwffwvgVeefeVEUTgVuwgfwVfUTEufwVUxwwfwxvwwwwwxwwwxgwwwwxWUwfwwfffvfUUeeefDTwxfeVwfffffDTffvggwwxxwwwgwxwwwvwwgwwwgvwffuvwwxxxxvxwxwwwxgwfwggwwwwwxwwwuwevwvvwgwwwwwhfvwwwwgwgfvvwxwwwxwxwwwwwwwwgwfggwwwwwwwwvvvgwvgwvgwwxwvvVwwgvvvvwUvfvWUVvvgwwfvvuVUeevvvVfvxwvwwgwwwwwvxvvvfvvVwgwfwggwgfffwWUVffggfgwwxgvWUVfeguwxxwxwxfwxffwwwwVgvxwwwxvfgwvvwggwwwxvvxwgwvgxwgwwwwxuefwfwxWVfvgfgvWwgUvwfwUfwegwwfVfvwwgwwwwwxwgxwWewhfgueugvvwgeWwgWgwghgevwwwvggwVwfWfvWfuwwwwfuvxwfwfVVvwfWffWgVDgwwxugvdfgwvxWWffvWgggwvfvfgggdTUggwfvuuvFewgfeevvvETvvVfVevxxwxwwxwwwwwwwwxxwwxwwxvgfwwwwwxwxvfwwxwwgfVvwxxxwwwwwvfffvvfUwxwwxwwwxwwxggvwxxwwxxxwwxwwwwfwxxwwwwggfwwfgxxwwxwwwwvfgxwwxwwwWffwwwfgfwffewvvUUxwwxwgfgvwwwwvfgxwwwwwwUfxwggvvgggvfgWUuxgxfwwgVuwwWevffxxxxwxwwxwwxxwwffwwxWevwgffwxwxxwxwxxgvwUfwwvfvwwxhwvwwgffwxwhfvxxwwwwxgfwwwwwxxwxxwxwfwwxwwwxwxhvgwvwxxwwwwxxgvhwwwwwwEEwwfffhvwwwwwvWVUfwwWevwwwwwwxxxxwgfgvwxxwwfwwxvvwfweUevvwUfxvgwwwfffEEwxwwxwwwxxxwvwvxwwgfwwxxwgvgvxwxwwwxvwvwgwwhvvwwwxwgguffwxwugfwwwwvwgvwfgwgwevexwwhwvvvfvxwwxgvWwgvwxvwhxvwvwwwxwgwwxwwwvgfvegfwwgvfgfwgwfgTfTgwwwwTfTffwwwxfxwWvVvwwwvwvwvwvvfvfwwfgfFeFuwwwHeFevvvVgffffwfVwgvvffvxwwwxwwwxxxwxwwghvwwwwVewwwwgffwwwwxvxwwwggwwfwwfggwfwwfvwgfvvwvwgwxwgvwgvwgvwgvfwxwxxwwwwxwwgwwwwgwwvwwxvgwwwvfwwwwwvggwwgwwgfffgfvvfgwUVexgwgfffgVeUfgfWUfxwfwwxvfvxwwgvfwwwgwwwwwvfVewwUVegfVffffveewgUVUxffvfffegfwwwvwwwwxwwvwxxwxxvwwwwvwwwwwwwwwwxwwwgggwwgvfwwwwwwgvwvwwwwwvwgwxxxwwwwvwgggwwvvvwxwwxxwwwggwvwwghgggwxwwwwwvvwwwwwwwwwwwwggwwwvwwwwwwwwwwggggwwvvfgvwvvvwwwxwwwwwhwwwxwwwwwwwxvvwwvgggwvwggggwvwvgwwwwwwwwgwwvwwwvxwggfgxwwwggxxwwwwvgwvwwggwwwhwwwxvVVwwwgxwwvvvwgwgfFevgwxhwggwvxwwxwwwfVxwvwgfVwwwwwxxxxwgvxwwffugwuwfggvfggwxxxwwwwwwWxwvvVVvgfvwxggfffhgvfV44uhvggwVVwfvwwxwhgeuwwfwvggwwVVwwxwvvwgfgECSwgwwwgeugffgfTevvgffwvgwwwwwxwwxwxwwwwwxwwwwwwgxvggffwvwwwwwfwvwwxxwxwwwgvfgwvwfgwfVfuxwwwwwgvfvwfvwwwwxwwgeuxwghgwgffhvwwwwwfvfwgfffvwwxwwwgwwwgwvwwwgfvwwwvgfffwffwffeUDEtwwwwwgwgfgvfeeUffwwwggfgfffvwwgvfwwwwfgvffvfgvggVfeffvfVDETevgwwwwwwwwgfgvwwfgxxxwwxwwxwxxwxwwxxwwvfVwxwgVuwefvvgwxxxvwwwwwfeVvwfufxwxwggwffefgwWexxxwvfgwwxxwwwghwxxxxwgwvvgwwvvvwwxxxwggwxxvwwvgxwwwwggwvfU5gweddwwwxwwgvfVxhgevwwvgwxfvfxwxwwgxxxxvxvgxfffvgfdTvvw5UwwwvfxwgvgffhwvwwwgwgwwgxwwwwggvvwwwfwfwwwwwwwwwwxwwvggffvwffgwfgxwvvwhvvwwxwwwwwfgvvwwwvgwwvvvxwwwwwwxwwgfgvuwggWgffwxfvvwxwwvwwwxfgfvhwwvgwvwufgeVUvVUVfffwwfvwgvvfwfwgwwvggvvwgggwwxwwwwxwwwwxVUuwWUVVeVVWfffwvvgfgxxxwgggvvwvvxwxxxfwwwffwxwwwxwxwwwwwgwfwwwxwxwwwwwxwwwwwwwxwxgvwwXgefgfVexwvwwwwgUffVfVxxxwwwgwwxxwwwwwfwxfhwggUfgffeVWewfwxfvggfvVfVvxwwwwwvfvggvgWffgffffVeUETxwwfwvfvgfhgvgvVVeVgefuwwwgwgwvfwvgwffffggwffgvgwUfdEUUVDUwxxxxwvwxxgwwwwwxwwwxgwfwvwwwwggwwhvfvxwwwvgwwwwwvwwgvwgweUffhghxxxwwggwffvfvxwxfxwwxwvfxwwwwwxgfvfvffvfxxvwwvggfggvfuwvwwwfggvgWfWwvfvVfffeUDTVgxwxwgvggfggxfgvwvfgvfvvvvVwwvwfwxvwfwwfWVefvgfggfWwvfVEDevfefxggvgwwgwhwvWwWwwxxwvWgwvufwWgwxwxwwgwgwvfgwggvgvVfVfvghgWfVfeggwwggvWwwvevffFvwxfwwwwxwwxwwwxwwvfvgvwwWvVgvgWggvgfdewgfwwggfuvwggfgeexwVVvvvgfdvfUFffdwwfU5feugwxwxvvvwwwwwhgwwwggggfgduwwgguUffxweeuVVvgvfefff5Efdegg5EvxwwwxwwwwwxxxwxvfvxffgwvxwwvwwwwwxwwwwwvveevfwwwvwhfffffwwwfwxwwvwwffgffxxwvwwwwvwwwwhgwwwwwwfvgfgvvxwwffgfvwxvgvwvfgffggwwxxwwwwwvUDgVewfwwwUUUffxwhwwwwwwwwwvwwwwwxWeggwwwgfvfvvwXeeuwgfvgvWUUeuffvvwWDewxwxxwggwwgwvghxwxwvgwfvggwwxxwhwwwghxxwxwvwhwvweggvwvwwgWwfwxxxxwgwwwfwgggvgxvwxxwvvwwxvwvwvvwwgggwfggvwgwvxwwwfxwwgggwwxxwwwwwfffwUfVewwggWfVeevwwwwwvvwvwwwwwgggvxwwfwwwwWvvewwwwwvugWvgVefUfvvffeeUWvgvgxwgwwxwwwxvhvwvxwxxwgvvwwwwwwxxgwwxwxwwwwxxwxxggwuWewewwwwwwwwwwvfwwgfvgvwewegwgxgwwwvgwwwwwggwvgfWvgfwvuWuwewwxvxwgwuwxvwwvvgffvgwwwggffFffTefwwwfvvgwwwhxwwxwxugwwvvfvgvvvwwwwvvgfewVvwwxggwwfGfDeFfffvfVggwvxvxxwwwxxwvvggvxxvwwwwwxwwwwwgwwwwwwwwgwxwwwwwwvvgxwwwwwwwwwgwVffeewwwwvgxwxwgeeffvxwwwwwwxwwwwwwwVVffewxwgwvvvwwgfgffvxwfvvhwvwgffvwwwwgvffffwwgfgvvwggvfeVVThgwxwvvefVxwxgwfgfgvfWfefvwwvffffwgwvvTUEEEwwwwwwwwgvfvfVVVevwwwwxxwwwwxwwwxwwwwwwwvfwwgfwvgvwvwxwwwvhxxwwwxgvvvvggwwwxwfgfgfvvvwwwwwgfvwgffwwvgwxxwwwwxwwwwxfffvfwwwwwxwxvgwvvfgvxggvvwgvgwwwwvefwUeUvUvWffVwwwvvffVfewfvgwwgvvgwwxfwvvvwwwgffvWwwWeUfVVgfwwgwwfgwwxhuWeUfevwwxwxwxwxxwwwwwwvwxwxwvwwgvwwwwwxxwwghxvwxxwwwwwwwwwwwgffwwwvgwwhggvvgggwwggwvfxgvgwwvwvfhvxggwwxxxgfvwxggvwfwwggvwwhgwwgvfwxgwgxwwwxgfvfwvffvwxfgwwwvwgeefffwvwwgfVvvwfwwwwffvwgwwwvhwwwwwwwwfgwwwxUUvffwxefUwwfgvgwffffwvwvfwfgxxwxxwwwxwwwwvgwxxwxwwxwfwwvwwxwwwwxvvwhwwwxwwvgvwvwwfvwffxxwwwwwwgwwwvgwxxwwxwwwwxwwwwwvgwwwwwxwwwwvwwxvvwwwgvwwgvgwgwwwvwvvwffvfwwffxxwwwwwwwwwxxvvwwwwwyxwwhwwwwwgfvhwfwwwhggfwgfvvvwwwvxgwwgvwhwwwwgwwfwwWwgfVwWUUvwwhvwhwwwxvwfwvwcUVxvxhwgGVeexwgvwwwgwVwWefvWVewwwwwwxxxxWwwvwxguwxxhvWvfwwwxwxvxwfwWeVvWVevhvwfffwdUVWevwWvfWe\u00164CSfggfvxxuwwwwgvwxwwXvWfgwxxwgwvwwvxUUevwwfwweUfweUfffwxxxwxxwxwggvwxxwwWefUfffvxxggwwxwfwwxxffxwwffffvwwvwffvfwwxfwgvwwwwfwfhffvxwxxwwxxwwxwxwwffxwwgfvfgvwwwwfwgvwgfxfwwwffvwfwghvgffxfwUfffvfwffvffvUfxwxwxxffxfvwxwwwwxfwgfvfwwwwwwffwwgwwxffwwgvgffhffWefffhvWewwhvxgwwfwxwwgwwgwgwvgvfvWfffWefgwwwhwwwwwwxvvwwfvwgwvwhgwwwWvwggvgfwwwwwwggvVegffwgffvwwxxxxwwggwfvwfwwxwwwwgvgwwwxwvwfwvfvWVfvWUefgfvvfffUffVUffWUeVfWUUUffVUgwwwwwwwhggvwvwwwhvwggwgwfgvxUgwwwfwgvwwfvggeffvgwfwfvffvfvwwgvwxwxwwvwvwvgvwvwwwwwggwgfvfvffvvfwwhxvwwwwwwhfghggfwfwgfvvwvwwfvfwwvvggwxwwwwgwwfvgfgfgvfvxxxxwwwwwxwwwxgwwwgwfwvgwfgvwvvvwfwwhwggvwffvwffwgvvgggvgfwgVVfvfUfUUfvvVUfffwxwwwgwwvwwwwwwwvwwwwwwgfgggfwffvvwgfvvwgvgfvggwwwgggfwwwxxwghvwwegxwwgggwhwwfwweggwfwgffvwggxwgggwhwwxvxvvwwwgwWFevwwxwGFeevxwwfgwegWvwwGVewwwvxhwwxxgvvxwwvwWwfvggwwgggwxwwfxggwfghwfwGFeugvvvxggvvwWvVv&$CSvfgwGVfefxvwwvvxgvfwfgwgwghwggwwwwxvxdTVvxvvwwwvxeTVffffvvvvfwgvwwwfvwwfvwwwxwwvwwggxvwwgfwgWwvfefUffwwwwwxwwvwfwwggvwwgwgvgvwwvwvWwfvfvgffwefvvvvgUevwvgVvUeVVfgvwwhwwwwwwfwugfgvfvwwgwwwwwWwvwvwfFfffgvvwffVefVevVfGeEeVfeefveVfevUfUEeVTUwvgvWwgfwgwvgfvgvwfgwVvwvwwfheWvfgvVvfWfVVfvwgvvggwWfgfvVfffwxxhwxwxxxwwhwxxgwwdfwwWeeWUfvwwxxxxwxwxvfwxfvwwwhwxgggfwwwwvvxwwwwwgwgggwwxwxxxxwwxxwwwwwxwwhhgwwwwwwwwwxggvggwwgwwTVwweefgvwgvwgvVUfvgwWTvwwxxxwwwxxwxxgwwvwwwwxvwvwwvgeefwwwFfxfwwwwvweewwwvvfwwwxwhvgxvvfxwwwwvwvWffgvvefvwefvxhvwxwvxvwvwfgfgvwWffwfgvwvwgufffvvwwwwvwfgvggfwegvxefvxxwhwwwwwvfwgwwgvgxfgwvwgwxfvvwwgggWfwhvwewwevvvUeWfVvWUVfUfvgefgvweefvwwVfwwwWwwXgwwvwwvwxvwgwvvVvgfVvvfwVfggfggvWfWfvfwwfwgfgvwvwxxgwwwwwwwxwwxxvwFfgWUvwWfUwxwwwhwxwxgfwvgvvxwwwwhfvgwggwwwwwwwfvwhwvxxxxwxxxwwwwxwxwwgwwvwxwwwgwvwwgwvwwwwEegweVfgfwwxwvgvWfUfwgGeuwxwwwwwwxwwwwgwvwwwxwgvxwwwgweVfvwwdfxwgwxwwvwvVVwxwwwgwwwxhvwxgwfwwvvfwwfevwvgVffvefvxgvwhfvvgwvwwwfffWffwWfgwvwfvffvvwgwwvgwgguvxwVwfwegvxxwhhwxgwwwwuwwWwvwwwxwxgwvwgvxgggfvwwvhVvfgefvwVwfeVeUeUfgwgvvwwUfeVfuffefwwvvgvgvgxwwxwwfvfgvvwgvvvfgffvfguWvfWggfvgufvffwwvWgfvgwvwwvvwwxwxwwwgwwwwgwgwwgvvwfgwVfwfvvUfVffwwgwwwwwgwxvvwwwvgfwfgvvvggfwwgwffWwgefgwvffFfgffvvwfffUfvwwvwwxxwwxwuwfwgxvgvvvwfgwVwggggwfvvWvUfvUVWvfwgVVfUTfVgVgTfefufvVfEeeUeVUVfVTugvvuwfxfvvxwwwgwwxwWwwwgwvwfvegUffvhevvevvVfwwvffvgwfgvvvVfVgwwggwxwwxwwwwwgwwwwwwwwwfwwvwwWeggwVveguwwwwwwxwgxwxwwwwhwwwvWfwwvfgvfVfwwfwggwwwwvfuwvfvwwfvfWvwxxwwwwwwwvwgwwwwwwwwwgvvgwwvgwwvvwgvvWuwwfwggvVVvVDfvwWdeffwgvfeFEfvvfwwVFUeVwwgvhwwvwwgwwfwwwwggwwwwwwWegfgvvWfgvggfvfwvVwuegvvgwwewuwgwhgwwxwvwwxxwhwxwwxwgwffvffgffvfvfvwwwwxwwxwwwwffwwfgffggfvwgwgwwgwwvwwwvxwxvwufggvgfuggfvxxxwxwxwwwfgwwuwvxwwxwwwgggvwxhugvfgffgwvwgffVgUfefvweVVWUvwgffvvfUUegggevhwfgvvwxwwwxgwwwgwwwwwvxfffgewfvffvffvfgvfvfwfwwwwwgffgwgwwwfwxwxwwwvwwxxwwwgwfwfgwgfvvvwfwvfwxwwxwwwUfwwwgwwxUfwxvwwwwwwwxwvvwgfvgvfgewgvefvwxwxwwwgwwgvwxggvgvvgwwxvvwwggvffvgvwfwvwgeDUUfffVgvWUUefufgfffvgffvfwvvwhvxwwgvwfwgxwwwwffgvfwvgvgfvgwwxwgfffvgvfwwgwwwxwwwwwxwxvgxxfwwwwwwxwwwffxvvxwwvfffvgvwwgwvwwwwwwwwweUVxfwwwwwgwFUUtwwwwwxxwwwffvgwwwvVVewwxxwwxwwhwvggggfffwxwwwwwwwwwxwwwffvvxwwfWVeugfvffff23#gwvwgffvfWVeeffffvhgvvgvfffxwwxxwwwwwwwwxwwwwweUVwwfffeUVffwwwwwwwwwwwwwwwxxwvgwwwwxwgxwvvwfffVxwWUUwwwfwwwxxwvxvvwVevvggvwwwwwvfwgwvwxwggwwwxxwwwwwwgfwwwwxwwwwwwwwxggwwxxvvxwwufwUUevgffgffxwfffffwxwwwwwgvvwwxwxwwwwwwwxwxgfwxwwhvfffwwwxwxwwwxwwxwwfvvwxhggwwwwxwwxffwggfwffvfffvfffggvwwvwxwwxwxffvwwffffvwwxwwvwwwxwwgwwwgwwguVgvfguewwggwwwwhwwWVwguwwwwgwgvxwvwxwxxvxxeevuwwVwffgwvWVUVffUVvfweUgffgvWvUeVfgvwwWggewwwuwwgwwvwgxwwwhgwXVufwewweWUfuuwvwfwfwwwfwgvwvwwvhwgxgwvxwwvvvgwwwgwgvwwvwgvVvfffxvwwwwVvfgwgxwxvgwvwwwgwdEVwwwwxeEffwxwhgwvwgvfvdEVxwwwxggwxxxxwgggxvwgwgvvgwfvvgxvgwwwwgfwwwwVwVvdUVwvvwvhfgwvwVvVvdVVVvvgwB#4fgxwwxvhvgwwwfwwwxWvfgwvgwvgxvxvhwvwwxHVduwwvhvvgfffwVVdevgvvwwwvxxvwxwvwwwwwwxgvwggvwfgfefvVfVvxxwgwvwvwxxgwvwvgvwwwggvwfWwggwvgvvwwwwwfwwfwfeevVVUwxwwxxwwwgxwwwxgvgwvwvfwgwwgwvwwvvwgwffVfeffvgffgfffefefufvVffVeUUUUVUVeuwvvwwgfwwwwwwwhwfvgwwwwgwwgvwwfvvwfuvufgvvfgfvvwfgefffgfwwwwwwxwwxwggwwwwwgwgwwwvvgfvfgfffggwwvfwgwwwfwwhfgxvffwwfgfggwvggfgvwvvwwvwxwwwxwvwwvgfffwvfvxxxwwwxwxwwwwwgxwwwwwwwxwgwvwwwwwwwwvgffwfvfwffwgfwwvvvfwfgUUfgfUeeefgvfUfffwxxwgwwwfvfwvgwvwfwwvvwfwgfvvfgffvvwggwfvwgvgvvfwvwggfwvwwwwwvxxwxwvwwgwwxwwgVewwWfeffxwxxwwgwxwwwwwwwwvvwwwwgwfvwxwxgwwwwwwgwwffxxxwwwxwwwwxwwwwwwvwwwwwwwvwwgwwwwwwffwvvwwwvwvwwwgVUeffvgvwwgffVUwwwwwwwwwwwwwwgwwwwwxwwwwwxwwwwwwwwwwggvfgeVwvgfwVewggfwxwwxwxwwwwggfwwwwgwvgfwvwfwvwxxxwwwwwwwwwwhffwwxwffvwwwxwwwfwvfvwgfffwvgwxxwwvwxwvvxwwwwwwfwvwgwwxgfggfvgffwwvvwffffffffvgfUefwfgwUVvfwvvvwwwwfgwwxfwwwwwwwvwgwffvwwwwgffvgvwwhvgwwvwwwwgwwvwwwvwxywxggwwxhwvgvwgiwvffvhfvwwwywggvgwwvwwwwwwwwgffvgwwwxgvgwwvvwghwwVfvfwgvfgwxwfwwwgvwxhgfgxfgxwvvgufwvgwfghgwwghwwVfvvvgvfvxwfgwwggwwwfegfVvgVvvwwXvgvwggfgfgwxvfWfgwvgwgvhgwwwwwwwwwxxwwwwwfffwvwwwvwwwxwwwxwwxwwwwwwwvvwwwffvgfgfffffvfwwvxwwwvxwvfvwwggfgfvwwwwwwwffvwgfwwvxwvwgffwxwwgvfffffxwxwwwxgfwvgwvwwxwwwwwwgwwgwvxWgfwxwhfevgffgvgweeVfUVfuvvwwfgwUVVUUfffefwwwgfwwWvwwwwxwwfggwwwewwfffgvffffvfVvgfwfvvffvwwggvgfwwwwwwfvxwwwwwwxwgvwfgwgfwvvgfggvwwwwxwwhwwwwwwwwwUfvwwwwwxXevwwgwwwxgwvwvfvffwvvgvgwwwwxxwwwwxhfwgwwwwvgvwxvwxwhhwhvfwfvgfugwVffWffVVfDUufweffefffWUewfVgvfvwvwfwwwwvwhwvhwfwvggwwhfwfvvwfgvfvvvwwwffwgwfvvwwvfvwxwxwwfwxwwxwwwwwxwvgwvwvwwgWvvvwUgUvvxwgwwwwwwwwwwwgwxwwwgwWfewgvwffwvwvfvvvwwwwxwVuwgwvvxvgfeuxxxwwwwwwxwgwgwwwgwwwwwwwwvhwvvvwvwwvVvwfvvwwvffuvVTevwGdfffwggfVVdUvgvwvfTdVewwwwvwvwwwwwgvgvgwwwwwvvvwvggufvfgfVufvggggwfgwuwVeggwvwVWwwwvxwxgvxxgwwhvfxxwwxwgvwwhwwwggVwxwWvWfvxwxwvgwhvwgXwugwhwvgvvHevwfuwwwwVwhvxgWvewxfwxfvwxwwxvxgwwfgwguhwvwwXvegwvgvwwwwgVvfeGe6UUuxwfwwwvfwhvgfHfeffgfeVte6UugvwwewdffvvgwXfuFeVuffffWewwfgwwvwwVgwTfwfWvgxegegvSUfgvxwwwxgxxxwwwwwwxwwwwwwwgwwwxfwewffvvhwwffxxgfvwffvffewwgwxvxffwffvxwxvxfwffvgxxxffgwvwwvwwvvwfwwwxwxfwewefvxxwhvgffwfvxvwwfwffvefvewwwwwWvgffxfwfwvvwewefvffvfwwwxwwwxwwwwgffWvwvgffgffgvWffWvgvwwxwvwvvfwgwwwhggxwwvvwwfwwwwwhggewwwwgvvXWgwXvwfwvfwxwwWgfwhwgXwwWewgvvwfwggwhvvgVfVvwxwwwxwwgwggvwwwwwuwvxwvVgfvwWgggffgevwfwvUfWfewGFUufvwwwvvuefWvfvVfVfffeVWVfFTuxwgwwxtffWfuWfggwVWWVWfVdgxwxuffwvwvwfgwxeffvvwDUewvVfUfxxwxxvxxwwxvwvwxxwwwxwwwwwwvwffvhwwgwwwvwfwwwwxwhwgwxvwuvfgfwwwwxUwvuvwwvwwwggvwvgfvwhxgwxwwwfvwwwwxwxwwvwxvwvwUUfwwwwwffgfvwwwfgvwweeUUfxwwwhwgwwwfweuUUffwwwwUffuvwwwxhwgvwwvwfwUffvwfxwUUffvwwhwgvwwwwgvwfwgfWuvgevWfgfwggWfgwxwxwwwgwxwxgwgwgwxwvwgwwxwwxwxuwhvvgVgxwwwxwwwhvwWvgwgwwwgwgewfgvvvwwgwWgvggfwvwwxWwvWwwwgvfwwxwvvwwwwwwgxgVggwwgewweggvvwgUVvgwwvwwvxWvfwWUVfvfVgggvgewhvvggwfvfWwvgggfwfUVvwwgewvgewvwvfvwvVvvwUeevwfvvvgVvfvvhwwwhvxhwgwfwvxwgwwwwfwxxwvvfwwwvwwwwwwgfffwwwfvgwgwxwwgxwvgwwvffwffvvwwwvgvevvgwhWegewUvufwwhwxfvwVwvvwwwfwghhwwgUgvwvgvUgfwvvgvwwwwgWefewfwfffwwgwhwxgwgefVwefgewffvuwwfwvffgwwwgfgvUffgvfvfwevfvvwgwwvgwgfffhgwggxxvXvVffffgffVgwgvwvhwxwxwwxxxwwwwwwwwgwwvwwwxwwwxfwwwxvvwwgvffgvxwwwvgvfgxxwwwwwwggwggvVVvhvvwwwxwwxwwvfffvfwwxwxwwwwwggvfgwhgwwwwwggwwfwwfgxeexwwvFUUthwvwwfwfffxwwwgefvwggwVffEEWVwwwwVfehgwwhfgvwWffUVvfUwwwfffvxgwwfffTTfvwwwxffwvweeffvwwvwwxxwxvwwwwwvwwgwwwwwuwvwvwwwWvwxwhugwwwwwwwwgvgXvwwfwwwxuwUfwvwwwvvwwgvwxwwevwfvwgwwwxwwfwwwwwwwxWevwgwwfwwwxvufvwwxvxfFffwwgdfwwfwvffvWfWwGeffffvxvwwewTefvwwwwvvwVevgwwwvgwwvgeefwwwwWevwgvwgwWfffwwgwwwWVfvwwwhgwWvvwwwgwxwgxwwgxwvwgwxwwwwwgwgxxxwwgvwwgwfwwwwxwwwwwwwgfgvwxxwwgwwvwwWfvxfgwfwwhvWgvvwffwvgwwwgwxxfvwwvwvgggwhwgfwgwgwwgwwhxwvwgefwwgvVfvvffwwfgvvwgvWfWfvfvfgWgvvwxVvvvfgufwgwgwffwwwgwwgwgwvwvwfvevwvwwwffgwwfgfvwfvwwwfwvgwvgvwhxxxwwxwxxvxwwgwwwxwxwgwwgxgvwxgxfvvfwxwwwxwwwwwxvwwwwgwvggfgwfwwhfxwwgvgwgWvxggxwwgvgwfggwwvwgffxwwwwwgwfwwwweghguwwfwwwVvUVevWwvwhegfvwwvgwgWvwvwwwUVefgxfvfugfWeVvxwgwwgwVgegvegveggwwvWvfgfwwuWeVVvvwwvvwwWvfvvVvVvfwwvwxwwwfwwwvwwwxhwfwwgvgwwfwwVvWvwfgwwwxggfvgwwvwffvgfffwwwxwwgffWwwxgvvxwvvfghxgfuggfwxwxwvwwwwwxggwgxfffxhwwxwfffvwgguvuffgwgfewVfVfwvwVfggefewvhgfwvffVfwffvvwwwfwvgeffwwwwwgwffVvwwhuvgwxffvggeffvvgfgxwwwvxgwfffVggvwwwwwwwwwwwxwwxwwwgwfvwvvwgffgwfwvwwvwwgwwvwwxvgfggwvvghwwggwwwvvffxwwwvwwwffwgfwxwwVwwwugwwxwwxfwwxwwwwgvvwxwfwwxwwwwwuwwwwwxfgegvvwVvvwufffevffVeggvgVfgvugfVwffwugwvwvfwWfvwggfvfwwxvgwwwugfwwxfefggwfVufwwgwfxwwfWgfvvwxWwgwwxxxwxxxwxxwwwwgwvxwwxgvwwwwwwwxvgwvvxwwwwfwwgwxwvvwxwwwwwwwxxwwgwwgfwwwwvwwvgxxwwwwvvwgvgxwwwggwwwwwwwwwgxwwwwgwwwwvwwgfvwffwffhwwgffvgfvwwwwfffwfwvgffxwwvfwwgfvgfvggvfffhgwfgffxwwgwvgfgvgwfffwwwwvvwffwfgwwggffwwwvfffwwgwwwwxwxwfwwwwwfwgwwggvvwwgxwvvghvwxwfvxvwfggfvxxwfwwvwwfwvwwwuffWgvgwwfevwvwwwwwwhfwegwwwwwwgvvwhwwxwgxxwwwwevvwfhvgwwwffwwvvufgVUevggwgffwwvvvfwfvwfwwwvwWevwhgwwvgwxwwfvuvvwwWUfwgfggfVgggxwgwgwwwxwxhwvgvwwwvgvvxxwxwwgvwvvwwwxwwwfwxxwwwxwxwwwUfxwgxxwwwwwwwwwWefvvxxwwgvVeffgwgfgwxhvwwvfwUfwvggvgwwxwfvwwxfwxwfwgvfggfvwgwwhgwwgffgwgvgwwgffffwvwwvwGTevvwwwwxhgwwgffwvwfwvwwWefvffgvwgwwgggvxvwDUvwwwxwvvvwUfvwwfffwwwwfxwwwwwwwwwwwwwwxwvwgvgffxfwwwfvfwwwffwwwwfvwwwwvvgfgfgvfwwwwwwfvfwgwxwxwwwggVwwwwwvwvgwwwfxwwwwwwwwwwwgUvfgvuwwwwxwwwgwxwwwWVUvxwgeewwgggvffeVVeWeeuvvwwgwfvefVggwwwvfwgUfvWfevwwwwwwwwgwwwwvgwfwwgfvWUVefVfefgvwwwwxwwwgwgwwwwwwwxwwfwwxxwwwwgfvwwwwwwxvvgvwwwwvfgwxgvgwwwwgvgffvwvwwxxwxxhvghwxwhxgvvffvwgvwgwwvfvwwwwgfvwxwfwwwvggwwxxwwxwxxxfUfwwwffgwwwwggffUVUfvwwfvwxwgvwwwgwwgwxgvffffwfggwwwvwxxvgvvgwwxhffwwwwwUUvggvwwvwwwwwvwwvwwxwwwwwwhwwwwwwwgvwwwvggfgwwgvvgwwwvfwwfVWwwggxvvgvfwwwvwggfffuvwVgwgvvwvwwwwgwvgwgfvgwvfgwwvvvwwwhvwvxwwwwfgwwwwfggwfgwwwwwxvwwwgwugeuWgvwwwweefgVUgfgvffvvvgvwUefwvvwwvvgvwffgvufVVfvvgwxvfvwwvvgfgvwwgvvwgVfvvfgWeffvUvxgfgvwwwvwwgwwwvwxvwwxxxxwvwvgxwvwhwgwvfwxxwhffgffvwwwwgvxwwwhwwffgwvfveVfuwfwwwxwwwfwwgffxwwwwwxwgwvxxwvwgwwwwwwfgwffwffvwUfxwwfffFVTxwwwwffVgewwwwggfvfVgeVUUFUhvwwxUfvffwwxwWgefgVfeeffVeuxwwfwfgwwgwfVeeVwwwwwvgveVfVevWTEuvgwwwwxxwwxwwgwwvwwwWgwxfwwvxfvWvwwwxvvvwwVfvvufgxwwwfggwvvwwwwwwwwgvgwgvwwwwffwwgfwwhfffwvgwxwwxxxwwgvxwwwvgfgwwgwwwwfvfgvwwwxwwvwwvgfffveffwwwgfgvgvvwffwvwwffffwefgvwxxwevwWgwvfvwfvvfveffvfwwwvwwhwwgegwfVvvwwwgffwxwxgffgfvwxwwwwwxwgxvvxgwvwwgwwgvgwwxxvggfwvXffwwxvfwwgwvgugwvwwgwwXvegwwwfvvwxgfgfheWwgvhfgvgffvgugvvwwvxgxhfvhdfwfwugxwXwfwwwhgwfUfgvVefvfwfvvwfwvwguvgeVfeVffwwFfefwuvwwegvwwfgWdfvvWvgvwGfVfwwwgggwwwxugfFfvgweVvvxtfevwegwwxwvvxxxwwwxxxvvwwwxwfwwwvwwwwwwxwwwwfwvgwwwwxwxhwwvvvgwwwwwwgwvwwwwuuwwhgggvwfvfggxxgwwwxvuwwwwwwwwxwwxwfwwwwwfwfwwvgxwwwwgfggvfueVgwfvwwfgwgfveueVfevvgwegfwwwfwgwgvgwvwvvfwwgwfvfWgfgwvwwfgfwvfgvwwwgvfwwgVwvufvvwwgvfvwgwwwwwgvxwxwwwxwwxwwwwxwwwwwwwwxxwxwgwwgffwwwwwwwWevxxwwxxvwwgVfwxffwuwgvwwwwxfwwwwfefvgwwwwwwwxgvwvggvwwWwvxwwefwuwgufwwwwwwxwwwxuwGUuwwgvvwwgvwwwwvwwffvxwfvgfWwwWvgwwWwvwxwUfwxwwxgwwEUwwwugwwwfwwwxxxxwxwwwwwxwxwgxwwxwwgvvwwwwwwwwwffwwvggwwwwxxwwxwvggffffwxxvvwwwgwffvwwwfffwwfgvwgwvvgfvvwwwvvvhfgwhwwwxgwxVVvffvwwvwvgwwwgVfuwgeVvfvgfvvwwwwwwvgffeeVvgwweefwwhffxhwvgggfvVVefVvxwvvvvgwwwgeUffuhwwwwgffgwfffffwgwvwwvwxwxxwwxwxwwgwgwwxwwfwxgvxwwwxwwwwgxvgwwwvwgUgvvwwfwxwwgwvwwhwwvwwfwwhvugwgxggwvvvxffwwgffwwwfgxwwwwwwwwwgfvwffvhwwwwwxwwgvgwwwwwwwfvfxwwwggUfevvffgwwfffffwxhffvvvgwwwWvefwwwwgwwVeegfwwwffwvgUVugffvfwgwfvfggwwwwxVVgvwvvgwwggfvxUWfvwffwwxwwwwwwxxxwwwwwwwwxwwwwwwwwwwwwwwwxxwwxwwwwwwwwwwwwwwxwwwwxwwwwwwffxwvxxwwwwvvgwxwwxxwxwfwxwwwwgwwvxwwwwwwwwwwgfvwwwggwwvfgwgggffvfgvwffwwvwgvvvfgvwgwwwwwgggwfwwvwwwxwwwwwwwwvfgwwgfvwgwwvfvwwggwvwwwwwwwxxwxwvvwwwxwwwwwwwwwwwxwxxxwvgfgwwxggwwwwgwwggvwwwwwwwwwvvwgvwwwggvwggegfggwwfWwggwvwwgwfvwgfvwfffvVegwwwwfgvwwgvvwgxwwgfffwfvvgwgvvwgwwVufgwWwfwwWfegVevffVffwggVUfffUfugwgfVUfvvfffgwVgvgwgfwveffvuvwVffvVwvgvgfvfgwvvgffUeeggUfvwwufwwwVfvfgvwwvwuvfvwfwwxwxwwwxwwwwwggvxwwxwwfggwxwxwwwwxvfgwwxwwgefvwwwfgfwwefVgvwUUwxxwxwwxwwwwwwxxwwwwwxxxxhvfwxwwwwwggwwwxvfxxwxwwwwwxfvxxwxwwwgfvwwwwwwVffgvfUfxwwwxwwwwwwwwvfgxfvfwwwfUxxwvvxgfwvwwgVuwggvvwWevfgWUefgxxxwwwwwwxwgwVVfffxhwwwwwwwwwwvwvggggvwwgffvxwxvwwwvfgwwgvggvfvffffeVFExxxxxwgggfwwxwwwwwwxwwwxwwvvwwwwwwhgwWVfefffgffxwwwxxwwwwgwxwwwwwwvvwxwwwwwwwwggwVffUVxwwwfgvfgxvhgwwvVffUVvffvwwwwwwwvwgvwfvfeefgfffwwwgvTUETTVevwwxwwxwgfwgwfvfwwwwwwwwwwwfvfhwwhwwwwfufvwxwgwWegvvgwUefgfvfVevETxxwxxwwvwwwvvvxxwgvxxgwxwwxgggwwwfwfxwvwgfwffxhxwhgwvwvgxwwfggwwwvhUvUgfwUvugFfvxxxwgVwxwvevxwvgwwweexwgVgvwwgwgwgdvffWvWgWDugwgUVVVhwwgwvfwuvwwuggggfdfvwhgxvxvuwwhWwuwvwefvvwgfwggfwgGffwdfvwgWVfgfTVVVvfwfSUVVwxxfxwvxgwgguwwwfwwwwwwwgvwwfgugxwwwwufuwwfvfvgVFxwxwxgwhwvwwgwfgvhggggfefegfwfefeVvwwwwwgvwwhvwwfwxwfwvfvVFvwwvgVfgfxwxVdfvvvvfUWfffTSWeVeeTSxwxwwwwxgggufUwfefgwvggwggvwwwwvgwgwvgwwwvWfegvwwwgwgVvveVvgVefwwguffugETwxwwwgfvwfxguvwwwwxwwvwwxwwwvfhxwwxVwvfUwwVvevfWeWgwfexwwxvwvgwwwgvwwwgfgvwgwxfeVxfeWwuwVexvgxxgvVwwvgwxfeWvWfdgvvgfvggfwgUffgwfvwfxfVfgWEetfwVDuVweEfUfwgxwwvwwefwwwwwefvxxwxwvwvgxwwwwgwvvwwuwxwgxgUfwhvvwfxgvwgfffW3DeggffvUfgfxxwwvfhgwwxfwwxwwwxxwwWwxwgvgWgfwgfwvwwefwwwwwwwwhxgxUfwwvvgwgxgwgvgFevwwfwvfwggwgwxxWevWwgwvfwgxwUfwwxggwvwvfVTfvwwwwhvwwvvf5CTvvgffWevfvwwxwwwwxxwxwwgvvxwxwxgvgyxwxwxwvgxwwxwxgfgvwwwwvwwffffvfVUxwwxwwwvwxxxwxxwwxxwwgwxxxwgffwwwffxxxxwxwwxxxwxxwxgffwwgffwwvggwgVewxwgfgwxwwwxgwgwvgVexxwxwfgxfwvgwfUuwgwwxgfvwgUfUfxxxwwxwvwwwggvxvwxxwwvUfwwWfvgfVwvwgwvxvwgwwgSUfwUfvggwxxwwggDfuvhVxxwwwwxxwwwxxhxwwwwwvgwgvwgwxxxwwwfwwxxgwvxwhwvwwwwxwgeVvgfVfgxxvwwwfVgvgwfVuxwvgxwwwxxwxxxgfgwgwvgwwfvwvgEdfvvvfffffxwwvgUSwwvwwvxgwwgwgfvgxwwgfgwxwwvgxwgvwwwfvghffxxxwvfwwwwugUfVwwwwwUfVfexxxxvwwvwvggwhxwvxxwwwxhwvwxgwffwfwvwgvwwgwvhgwwwvxxgxwwwgwvgxgwwwwwuwfvgwwvwvuggwwxwwgfwvwwwwwwwwxgvxwwxgvwwWfWefuwwwwWUfuVWwgewvfgfffWwvVwfwxwwwgwVewwwgffefuxwwwxwwxwwxwwwvvwfgxgfwgfgfefugvvwwfffffxhwvwffuwwfvVeUUExgvwxwwffwxwxxxwwwwxfwwwVeffgxxvwvwwgvweVfVxwwwxwwwwwwxxwwxwfVWxwxgvwwwwwgfvfVgfwvffUVxwxxgvvgvfvffuuWvwwwvvffwfwggUEFeUwvgwvwggfUfffvfUDxwwwwwwggfvgvwvfvgWfewwhwfvxwwgfwwfffwgvvhvwgwvgvvfwUfffUfUTEuUfwwvvfeVEUTvvvUUwwxwwwwwwvvwwgffwwwwwxwwwwwhvvwgffvwwvvwwwgvfwvgVUwxxwwwwwwwwwwwwwwgffwwxwwwvgefVwwwVUxwwhvwwwwxwxwwwwwwgwwVUhvwxWVffvfUUeffVDtwgffxxgffVfUDdffxwwwwxwwwfwxgvxfwwgvfxgvwwwwVexwwwgffwwgwwhgwwhfffhvwfgfgVVUgfvwhffvggeUufvfUxwwwwxwxwxvwwwwxxwxwwwwgwwvwwggvxwwwvgwwwwvwwwgwwvvwwxwxwwwgfwfwwwvffwvvhvvwwgwfvwvwvghwwfwwwvwxwwwxvfvxwfvvwwgggVevwUVUfvffeffgVfwwVVUxffgffVVfvxwhxwvhgfFuvwgvVwwwgvxwxwgwwgwgvwwwfwVgufwvVxgvhfVfvwwwfVvVwwvgguVUSxwwwwwWvwwWvgghfxhwhxgfTxxgwgTguwexgffxhvgwvggfxwwhwggvgwwwwwwgvgwfffFxwvggvgfTxvVxxwgeVfwVxfeWgwuWwvggexwwgUUUsxwwwvVgU5ugffvuwwgVfgfFugfwwxwwxwwvvgvwwggvwwfwvxxwwvwfwwwggvgvwwwvvgwggfwgwWffVUfvwfvgggvwfvggeUVugvwgwgvvwwwxwwwwwxwwwwwwxffvufwgwwhfwxwfgvwwewvwwxwwwxwwwwwhggfffwwvgggwwfwgwwfgvxwwwxwwvfwwwwgwvxwwwwwfwxxxgUUwfvffUVuVfvgwvwwVeUxwwgffvvvvgwxwvwfgvvwvvgvwwVwgVwwwwwvgwwwwxwwwxgWwwwggvwgfvvxgfuwwgffdfEfffwwwgvfwvwxwxwxggwgghwvwwgwxwxxgufwhWweuwuwwvggwfgwggwwxxwgwxxwwxgwvwwwwxwwwuWVwVxwxwwwwwwvWxxgwvfwvwwwfvgwxwxwwxwwvgGfddVtxwwxwfwgWffuvfffffwgwvfwgxxxxxxxwwgfwwwxwwwwxxwwfUwwgfvwwffvwwfxwxxwwvxgvTTwvVUVwwwxwwwwwgffvwwfVuxwwwxxxwwwxxxwxwxwwwfwfwggxxxxxwwwxwwwwwwxxwxwwwfUwwgffwgxwwvvwwfvwgfvxxwwwwfvfxxxwwwwxwwwwfwggwfVUVfffTTwwvgwwwvgfUwwwwwwwwwwgffvxxhwfwwwggwwwvvgvwwwvvvggwggfwvwxwvfwwgwweefUVeffeVfwfwwgvwuVVwVgfwwvwwwwwxxwwwxwwwxwwwwwwxwwwfffwvfwwwxwxvfwwgggfxwhxvwwwwxwwwggfgfvfvwwhvvgvwgvgxwxggvgvfwwxxwwwgwwwxvffvwvfgWVeefeeUeVvxwwwwxwWvfvuwwhwxxwwxwwwvVwvgxwwxwvgvwwfwvWxwfvwwggvwvfwwwxwvxwVgvgVuwfwfETDwgvwgVfvwwfgvgwvVxwwvwwxxwgwvgwxxwwhgvwfvgguWwxwvgwxwwwwwwwwwwxxwfgvwgwwwgfeWxgvwwfgvwwfgwwwgwhwwWvfgvfxxxwfgvgxvfgvfwvUwgETDwggvVfeVfUwggvfxvwwvxwwwvwwxxvwxwwxwwwwfWffwwwhxwxwgwWwhwxggwggfVvwxgvvfffwwWUewgfvWfeUUDwxgxvwwgxwwxwxwwwgwwwwwwxgwwwvxvwwWVvxgwgggfffUwwhwwgwwgxwwgwgxxwwwfWwwwwwfvUVVxxwxwwwfwxgwwgvgwgwfVgeefdxxwwfwvwwxgvffffvwwwwvfffFvffeeUETwwwwxwwxgxwwWVvggffvgwvwwwwvvfvwwvgwwgwwgffwfffvwwwfvfvfvvgfvwwwvWVFDEUUfefwxwwwwwwwwwwwxxvwxwwwwggvwvwwxhvwxwwgvgffvvgwwxwwxwwwwgfgwwwxgvgvwvfvvwwwwgwVVfvggvwwwwfgwwfwwwwwhfggvfffffgwfffggwwwwfffgffvfwwgweefwwwwwDTTfUgvvxwwwfwwwwgwwwxffffvxxwwffwffgwvwxfvxfgffvwgwgvwwwgwvDUVVvwwwxwUUUffxxxwwwwwwwxvwwwwwwvwwwwxxvvwwxwwgfvfvggwwwvffgfwwwwgwwwwggxwgxwvxxVVwfgwwwwwfffffxwxxwwxwwxwwwwvwwgwwwveuwvwwgfvgvwhgfvwgffgfWUUeWVfUuwWDexwwwwxvwvwgvwgvggegwwxxxwwffwwvvvwwwwwwfwfegvwgwwwvwwwvgfgVdVdgvfvVdVdfxwxwwwhxwxvwvgwgxwxvfvwfvgwgwwwxwwvxxugwwwxwxwwwxxwxwvwvwwxwwxwxwggggfvegvwwgvvuwwxwhvwggwgwwwwwgwwgufufvvgvgvvvffWvxwwfwWvvffEfEgfffvEfEvfffwxwxvggwxxwgvvvvwfvwgxhwwxwwwvwwfwwwxwwwwgvwffvvvgwwwxgwvwwgffeefffvfwwwVffwvxxwxwxxwwwwwwwwxwvvvxvfgwxxwwwwxwhvwwvfffgxwwvvfwgggfwxvwwwwvwxxwwxwgwwvwwffwwgwwwwwfvgwvwwwwwwwwwgwgvwwvxffvwgggwwgwxggvwvvxwwvwvgVUefvfffvgVefuwggvxwxwhwfwhgvUxggvfwwwxxwgvfwgvvvgvxwwgWwwggvfgvffvvgwwgfgFUdUVtgwgwgVfvfvwwvwwgwfxgxwvxvwgwwgxxwwgwvfguxgwwfgfgeffewvwwfwvgwwwwfxvxwfwwvgvxwgwvgwwgftfVuwuwgeWvfVwgvxggvxxwvwvWfvxwxwgwvgfwwvVfefgwwugxvfWgfVVdUUDvuggvfewhwvgwxwffgfgwwwwgwwwfwwgwffwggvvvWfggfuwhgVfefvwgwugfggvwfgEDUvexxxxwxvwvhwhwxxxfxwhxwxxhfwfvwwwxxvvwwhgfffvgwxxxwwgfgxwwxxfwwvwwwwwwwgwvwwgfUVfhvwxggvfvvwvfgwgwfgfggvgwewgwfvfvvfwvvWDTegvfwwgwvehfVeugfVfwvgwwwwwvvwxwvgfwwfgvwxwvgwgwwwwffvgwuwegvwwwvwwfgggwVvVeWVeUwwvwwfgvgfUVufwfVvwxwxvxwwxwxwwwxwwwxxwxwwwwwwwwwwwgvgwwxwwgwvfwvvgwgwgxxxxwxwxwwwwvgwWwvVwxwxwwwwwvgwvgwvgwxwwwvggvgxxwgxwxwgwwfgvWvvgggvfffwvfVeUgewgwvgwwwfVeUgfwexxwwwfgwvwwwwwwgvgwxwwwwvwwwgwwwwhgwwwwwwwwgwgvvwwggvvwvwwwvgvwwwwwwhvgwwxwxwwwvvwwwvhwwwwxwwxgwvvwwwwgwfwvwwwwgvhwwwwwxwxwwwwvwwxwwwwwwwwwwwgvvvwgwgvfwwgwvxwvwwwwwwwwwwwxwwgwwwxvgwgwwwfwvvwwgwwggwwfwwwwwwwfwvgwwwggwxvfxwxfvwwWVVuevwgvwwwwwfvwwgfgffvxwwxgvwfGfFefvwgxwwwvfggwggWgeeffwffWcV5EuxvwggvvwwWVVfuxwwxxwxgxwvffgwwgwxwggggvvfvvWVxwwggvvfGffevwwhgvvwfwxwggWgeevWwueVdV6EwweffwwvfhxgvWgWvvwgvggwggwggwwxfvwdegvWVwWgwefFffdeeewwfxwwwxwwwwwfUwfffvfgwwghgvefwfUUewhwvxwweVwxeefgggfwwWffufgwwfvvwvEUTvwwDTwwwxwwwwwwfUwwfeVxwwwwwwwxwwwxwwwwfwvgwffvgwwwffwxwwwwweVwfffxwwgfwgffvffwwfffvfEUTvwwDTwwxwwxwwvgvvwvggvgwwffxwwhffwwgffvwwWUvwgeVwwxWUffwVUUUfwwfgwwxxwgvgvgggwhwvvggwwwffufwVffwWffvvwwwhwwwhffwgfvgfwfffgfvwXffffWeffffffwwxxwgwgvggwggffvwxxwxfxwvwxwwfwxwwxwhfwvvwgwvwwwwggwwxvwgwwvvgvwVgvgVfwgeffVfeffffVfxwwvwwwwwhwwwxwwgxhfvgwwhwwvgwwfwvvwUwfwwfvvwUffwwwevffwfvevwwwwfgwwgwvfFwwvgVfgxwvvwwwwggvwwvffffwxwgXVgvveeWvuwhwfwgUgwwvuvFfUwgwhVefTSgghwvgFvwwvgVfFxxwxwwxhvuxxhxvfwufewwfwwgwggvhvvxwwWVwvfVuVwvfwwgwwffwvwuv5fUwfvgVefTSxvvxgwgfwfvwgvgvwgvgwfxeexvfwfdfvxxwwUvWFfxwvvvewWVvfwWFfVfhggfvwxwxfvvuvfWgfwgfwvggfvwUVuffFUevgfvvvwveVVfgwgfwgWfuefvweefWfewgfgGfVUffvwffwwhwgvvvvfUfVvwgfvvxwwxgwxxwhvwwvgwvxgVvfgeWvwWewfvfwvwuwvufgfwwgfvfgVuufvweVgWVewgefWVVTevvvgwggwwvwgwwggfvgeWfggewffwwwwuvvwWwuuvfvggwgwgfvEfegwxvwFevefvwhgvwwwvvgxhffgffvgwwhgvwwwgffvwwfffffgxhggfgvwgwwwffwhwwgwgvfUVUeeffwfwVeUwvgwvvgxhggvvwwvgwwwhhgvwwvvwwwxgfvgwhggvgvvfvfgwvwgwxfvvvwwwfwvvwfggwwffwxxwwgwgvfUeVeUvgwvwUeewvwvwwwgxwvgvvfgvwwvwgvgvfwwxgfvvgwwghfgvvggvvwfffffvfwwgxggwwgwxxwwwvuwwvhgwxwffwgwwxvvwvuggWgWUeuwuvwwgggwwvgwgWvvuv%DTggwhxvvgggSEvfvffvxxwwvvwvgWwwwvgwgxxxgwvuwwggwxgxwwwwhfvwwwwwwvvwwWggwwffggwvvvv6UdgWgxhfvWgWBDufwgfvxxwuvvwgfgxwxwwgwwfwwwwwwwwvwwgfvvwUUVgwvffwwgwvxwwgfvffwwwwwfvwwwggwwwhvvwffvgwwfvggfwggwfvvvgvgwgwhwwguwwwfgwvfvVfVgfevffvwwgwvdeEfffwgfwwxwwwwwwgvvvwfvwxxxxwwwxfgwwxvwfwvvwwwVwwwvgwwVwgwwguwvgfvwvfvffVgVevgfvwwfvvdeEffgvwfvfwwwwfxwgvvgwwwgvwvvwwfggfgfvggfvvffwfwgfgfvwwwhwgewwgwwhwwggxwwvwwvgwwwwgfwwwhwgwvgwuegwWggewvvwvwxwgwwfvwWVvwwvwUeVgvgwgUffwgfvvUggVwxxxwwvwwvggwgwwUwxxxwxxwwwwwwhvwxxwwwwwwxwwwwggwwwwwwxwwwwfwwgfwwvwVefgfwwWUfuxWUfufffVwxwvwgvwxwwgwwwvxwgwgvwwUeVwfvwgvwfvwfvwfvfvuwvxfvvufvwwxwwgUwwxwwwwfffwfwgfVvhvwwwfvVUUWevwwwwwweVfwfvhgffVTEuxwwwwwgwwffffffTDxwwwgUwwgvwwfVVwwxxxxxxgvwwwfgvvwwxwwwwwwwggffwWewxwwwwwfffwvwggvfVTEwwwwwwgggefVggfTDxfwwwgvgvvvwwwwwwwwwvgwffxwwwgvvvwgffveVVUxwwwwwWVuffVVUVewhgfgxwwfVuwwwfwwgvvhgwvwfUevgwVUfvWeevwfwwwwWfvwhgvwgfgUUvvUfVgfvgvvWfFdefvgfwxwwvgvwwgfwwgvwwvwwwwwwwwxwwgguvUgwwwwxwxwgvvwwgwwuffvwwgfvwwgwgwfWEdegDVffUwwgvwgfWeeuwwgfwgwwfvwfggwwwxwwwwgfwwwxxxgVgvwUggfwUVfwwvwwfwwwwwwfwwevwwfvwffwwwwgfwwfvwvgvffgvwfuvfgwfVwwwfeggwwgvwvwxfvfvfWwgfvwwXUfvvVvuVgfWfvfWhgVVeugwwvwwffwwxwwgvffwggwwxwxwwwgvggwwgfvvxwwwgwwwgfwgwvvwwWfffwwfwegwWevggWUfwvgvvVfeffvwfwgUfevvwwwwWgwVvvwwwwwwfWwgwvwfWgvWvvfWwvgffgwgvgfuwwwgwgfufwgwwwwggvwghgwuvgvwWwwwvvvwggvvvfwvvggfggvvgwvvwwvwwwwwvvfVFfffvfFfVgVwwwvvggvevuvffgvxxwggwuwwwwhwwwfwvwwxwxxhwwwwvwggwxwgwvwvxvwgwvxgwvvwfwggwxgvvfVFffevfFfVgVwwgvwfgfevvvgwgfxwwvvwWwgxxwgfwvwxxvwwvvxgfvvfWggvvfvggfgvwvffggxwwwgfgwvwvvVfeewwggfvwwwwvwwggwfVeevfffWVfffeeWwvggfvggwfvwwgwwfUUffVUugvgffwwffwffgwwffvwwwwgggvwwwffvvgwwwwwwxwwwwwwewwFFvwwvgwwUUwwgvggwwwwvvggwwwwwffwwgvwfffffffvvwgUUwwgffUUwfwgfgwwfvgEFvwwfwgwwUUwwwwwgwxxwwvvGFVUefvGFvuwgfvwwWUufvvvgwwwfvvwwwgwgfuhwgvffwvVgwvgfWwvvWfehwfvUEwwgetWvfweevffhwvwfWffWVfgeegfvVfegVEVuwvvwfFfvgvwxgwfdgffgwvwwfvuwxvwwxxxwwgVvvvwwFfVfwgvgfgwxwgvwwwgfwveggfggfwvfveVEuwwfdWwffVegfUUugvwwgVuvwggfvevvVfVvggvwfgvxwWwwwwwgefffFeUvfwvgGffwvvfVeegfgffwvgwwfvwffwwvwfgvwwwwufuffgvvffvUEuwgvVUffffgfVfvwwgvvUfffgweefVWUfTeuwvwvgvwUffeWWffwvwwvfWwgwwvVegggxgwwxxxwxwxwvvvggfguvvwfgggwvgwwVgewwgeVgwgwvvfvfggwfdfVfUfeeuwvwvfwgVefVVggfvfwwwvfWffuvevgfvhwwwgxVgegvgWggvdefWgvvfdVeVvggvwwvwhwuWwvwgwggwwvwxwweffwwwgfvwwwvgwhgffeUvwfWVuwfUfuvvfwwwhwvxwvwVfgfdEuVUeVwVvwwwwgwfTftvwfgvgxwwwfewwwgvwwgvvwxwwxgwwwwwwvfwwgggwxwwwggfwvwwwwxvvgvwwXguxfwfgVvUUffFeFggwwffgVefufwfgfwwwugwwgvgwhxwwxwwwewwxwggwfwgwggVVeVgwgvewvxwwxwwwwVvWwvwwvvwvvwwwggfvhgwwwwwwwgvvvfffgVfweevvfgwggggggvwwwwwweTTWVVVfuwfeefvggwvvgwwgwwwwwwgwgwxwwwvwwwwwgwxxwwwwxxwwffvwwwvvvxxwwxwgxwwgWVfwwwvvwwwwwfeeffffgfvfTTwwwwweefwgwwwwwvwvggvwwvwwvvwwxwwwwwUVvvwfwWffuffvwgwgfwvvwwwxxwwwwxxwxwgwxxwxwwxwwwwwwwvvwwgfwwwvwvuvfWVguvvwwvwwvwgwfguuwwwxwvfUVVwgwwgffggfeeVeeUgwwxwwwvwgwgwfvxwwwxxxwxxwgxwxgwwwwwvvwwvgwwwwwxwwwgwfwvvvwgwwwwfffgwgwgwueWVVeeeeeVgxxwwwwwwwwwwwwwwvvxwwggwwwgxvggggggvfwwggwfgfuvUVVvfuvvwgVexgwwgfwvfgevfgefwwvVfvwggdefwEUvVwwwfwvwgdfffefwgfwvwWevwwgdffvfUgTUVwvUUewwwwvxvfwwvgeeffvVfwwxxwxwwvwwxgwfWfwwwuwvwfwwffUfffgvwwgwfwgvgffVvvWgfgwvvhUfvwweefvfFfeegfvUFUfwgwggwgggvwwwwfwwefEffggffwffgfgwvgVfwvgeUvxgffdfgfvgvWdUfwgfxwwwvvgwwwwgffwwfffeVvwwvghfvvfffgfffffvwwwgffgwfgfeVfgvfxwffgwvgfffVS5efvwwWS5efvfwwwgvgfvwwgffeVvxwwwxwwxxwwxwwvfffwwwfvvgwgfffvwwggvwgwgffwwgffeVfgffwxffwwwgfffVS5ufvvgWS5efgvwwxwwfffgwgvvwwwwgffvvggfwgwvVfegwxVfefgvwVfefffffVfegfffwghwvwgvvwgwvfvwwgvghwghwvvwwffvwwfffffvgwgwgfvgwwggvwxhfwwvwwweUVVUffwgwUVevwwwvvvxvwgwfvgwwwfgvgxvwwwwxgwvwwggvwwgffgvwvgxxwwgwvhvfgfvfgwwgffwgfwgvwwvVUUVeffwgwVVUvwgwvwhggwvgvvvfggfvfgxhgvgvwwgfwvvwwwhvwgxgffvfffffwwvgwwfffvgWgvwwgwwgwfgWfgvfwuggfvwwwfeffgWgvfwwwwvvgggvxwfvvvgwvvvvfwgUVefeeVeWvgwfffegwwwxwwvfgvfwgvxwVwvxwwwwwgwxgxxuwwgugwfwwwvgwwwfwwwwgxwvwwvgggfvffvvefwwuvVwVVufeUVfgffwfVgvVwwwwvvxgfwwwwwwvggwffvvgwwgguvwffeguvgvxgegwvwfgffwwwwvfvWwvwvwwvwwwvvgghgfvwwwwfwgxfwwwwwffgvfvffwwgwggwgggwwvwfwvffwwffvwwgUUfffwfUUgxggwwxvwwwfggvvwwgwgwggxwwxvxxgvwwxwxwwwwvwwggwwwhwgxhvwwwxwgfvvvwvwwwvffwwffvvxfUUffgwfUUgwggvwxwvvwxwgxwxwvvwwwwwvvgwwgwxvvggfvvwgwvvxvvxvxgfvvwwvfgwwvwwxgwgwwgwxwwxwvvwwwwwwvwwvgggWfewwvgfvgfffuwvvwvwhxfwfffvWffgvefVffwgwggffvvwegfeffWvxxwwvwwgwwwffxwwxhwvwvgfgxwxwwvwwwwwwwwgwwvvvgwfwfgwggvgvffVfVwgvxgfffgffffffegvwxwvwvgfggwxxwvwgvwxwwwfwwvwvgfggvVwVVfVvfwwxwwwwwvegwfvfvewvvvwwgfgwwwweewwwwwwvvvgVVffggvfvegvgggwwxwwvwwwwwwfeeffFEevwfvfwwwwweeffgwwwwwwwwhvgwwwwvvvvwwwhxxxwwwwwwwwffggwwwwwwwvwgwwxwwgwwwxwwffvvvwwgvvUVVVvvwgeevfgwwTTVwggvwwwwgffggwwwwxwwvvwwwweVfgvwwWVfegvfwwwwwvvwvwxwxvvwgwxxgwwwghxwvvwvwwwhfvwwgwwwwgvfgffwvgfgwwgwvvgwwvwgggvwwVUegwUUfwwgfffvvvgffwgvggwxghgwwwwwvggggwwvwvwghwxwxggwwvvgwwgxwwwvggwwwwwwhwgwwwwwfhgffvwvVUegwUUfwgfffvvwgfvwwgvgvxxwwwwvwfwvwxwgxgwwfwwgggvffgwwvwfxwgwwwfffxwgvvvgwwwwvxxwvwvxxwxwwwwffgxwvxwxxxwwfwwhwxwwwvwUefwwxwgwgfgwwwwffgwwgffVewUexwvxxxxwwgwwxwwwwgvwwwxwwwvwxwwwgggwhwwwffxwwwwwwffgxwxwwwwwxwxggxwwwgggwwffwwxwgwWewwwwwfgfwwffgfvvUexwwwvwwwvwwvwWfvwggvvvwWVvvwWVfVVwgwfhWgewgvwfVfgwXvfwggvwwfWwVfgvWvfgwvwefvFeUwWfVvgvwfvwwfwfVevwgvfGfFeVffwWfvhvwwwwwvVVvwhvvwwvwwwwffgwfgwwxwhvuwvWwwvwxvwggVfeffwVfwwfvfwwWfgwgfvvwwvfwwfvgfewwxwugwWeVevvWfvgwwefvwffwWUvwgwwhfVTfeewgfwfvwwgvwUfffwwefvvVVfwwvwVefTUvwwxwwhwvvxxxgvwvuwefwgwffwxfwfvwxwgwvxwxVfvwweveffwwwxwwggwwvwfvefvfvgwUfgegwwwwwwxwggwggwgwxwwwwgwwwgwxgwhwwwwwffwwwwwwVvwewwwwxgfwwwfvwwwwwwwwwwwwvvegvwwwwvwwfvwfwhvWvwwfvffefffwfwwUfwffwhfgvvwwwwgvwWfgfgfvWefVffffgwWffwwwwghgvwvwvwggvwWVuvgfwwwvfvwwgfwwwwvwwgffgfvwWVuuwgwwwweUWffffgvvgfWWuevgfvwxwwxwwwwxwwggvvfwwggvwwwwwhxwvfwwgvhxwwwWVuuwwffgffvwwwwfvgwwgXVuwwwwwwvfhwwgfgvgwXVuevgffggvvfwgvhgfvwWWuugwfwVVuefvfwweUWwwwwwvfhfffveUWwwwffeUWffffxwwwwwvvwwwgffvffUWwuxffwxwwfvgwwfvwwxwwxgffgfgeUVvewwwwwwgvvgwfveeVvfvfgwvfgvwwwwwwxxwwwwwwgwwwwwwwwwwfwwwvwvwfwhwvwgwffeVeegvfgvwgvwvwwgggfwwwvfggwwwwwwwwxwwvvvffgfvwwwggwwvgfvvwhgvvhgffeVeeffffwggfgvggwhgffwwwwwwwwwwwWVUUfffvwfgfgwwggggwwwvgvvvvwvufwwggffvvufgewfwwvfwwgwggwgvuwuTVfgfwgVVvgfvwwvwVvwWVUfVTefwwgxgfwffwvwhfxwweegxwwwfwfvgvufxwuwwVgfhwwwwwgvgggefgUUvwwwwefvgVfwwwufhxvgvVgvffwffwwwfWgVfuxwvwwgweVgGfvwwwwfvwWfegfEVfwvfgvffgVvvvvwUffwwwgvwwvvfVfVVefUTwgwvfewxwwwwWgxwwwweUWwhwwvwwgwwwwgwwgWfvwwwwefUUWguvwwWfVVuuwwgvxwuUWVvwufwxxxxwghxvwxwwwvwwgwwwwwgwwwfwwwghwgwxuUWvewwwxwwwuveUWxwxwwwWWuuwvgwxwwwghfwxufwwvwWffewwwwuUWuvfwxeUWvexxxwWVuuwwvwWUuUgvxxwvvwgWVVuUgfWvxwwwggfwwwwwggvxgfwwghgwwwwwwgxggwvwwufwwXfvxgVfvgwvffvgVugggvwfwgxfVfvVwgfvwxxxxwwwxwvwvwwwgwvgvvgwwxwvvwwwvwwxwxwwwwwVgvwwgfwuwwhwvxhVwvxwwwwwVvwwwwxwwwwffwgwVwhgvvfwwVeggwwxvhwwgVgfgwwVvvfwxfvfvfVefgvwfexfvgwwwwvgvgfefuvwwwwfvgvwggwwwfvwxgfgwwvvwwwwwfwwwwwvwfWUfgvvvfwVfufffVeffgvvvffwgfwvfeefgwwfxwwwwwwwxwwxgwwfhgvxwwvgwwwwxwvfggwwwvwvwvwwwwwwffgwwvwvgUvhfwffwwWwugfvWefvgvwwffwfwwvweegwwvwwfvWVvfwfgvvfwwgwvwwVfvgwvwwWUvwgfggfgfwvwwgggxWUfvwwwwgfwgvwwgwxwhwwgfvfvxxgwwhvvwwWVvwwxwuwwwghuvvgVuxwgffgWeehgwfffufVfxfwwxgvvfgfvfuvWfxwwwxxwxxxvvwwgwgvxwwxvgwgwvvwffvxwxxwvwxvvwgwvwfvwvgfwxxfvwxfwwvvggwxwwxvvwghvvvvggwwggeevvfffwwwxhwvwfgfuvvgggvguwwfgwguVVfWgwufxgggwwvfggveVwwgwvvwfgvgWVvwvxffvvVgvgwfxwwwwgvgvffwwxhVUfwwWVeevUfewfvfUffwwwffggffwVeVfeVfgvwxxwggwwwwwwgwwfvvxwxwwwwgwwvgwgeuggvvgwwwwxgffUfwwwvwwufwxgfffwwwwwgwwfgUgvwfwxwwwwwwfwffgwwggvfeUvgffggwwwgwvevUUfvvwvwgfvfgfvgUeffWuvgwwwgffwwvgwWUUfggwwwwwwwvgfvgwwwfvgwwggVeVwxwWwfwwwwwwwwwwwwuUwgffgwvwFVeTWuwfwwwfwfgvffFVetwwwwgVeffvwwwwwwxxwwggvewffwwggwwwwwgwwwwgfUfwwwwwwwwxggvuwwfVuwfvwwvxwwwGfftwfwwwgwwwwxwwvFffhwwfgvefvffvwwfgdUFwwvwgvgvxGfftwwgVuwwffdUFwwwwwfUfffwwdfFxwfUvfWfffUwwwwwwxwuwwfwgUvwwgvWwuwwvvwwwgwwwwvwwwvffvfEfwwffEgUwfvvggfvvgwgvVdggfwvgwvEgfwxxwwxwwwxvxwwwwfghgwwvvgwwwwvwwwWvvwwwwfUwwwwvxxwfeWwvvgwfwffwwxgfwwwgwvwxwuwwwwwxxxWggwgVvfggfVvgwgufUwwgwvVwgfeVwwwggFevfvgwwwgTfexwVvwwvfwvggevvxwgvwxwgvvwgvvgwwugFvwwdffvhgfgwvwvfwwwwwwwfvffuuvgFuhgdVfgfffUfgVgefVfwgevvVwuwvuwwgvwwxwwwfhwxwxwfxgwwwwwwvwgwwxwwgufFwwfdfvwgvwwwwwwvgwxxgWwvVfvwxgvwfvvffwfwggwVgfvwffvvwwwwvwwvggWggfFvgfdfffgvgwvwgvffvfgwgffEfwVdewVwuggufguwgfffwvvwfgwfwwwfgvwwvvffggggfvfvvvgwgwwvvwuwheggwwvvwxvgwffgvvvvfgvggffefVfwvwVfvevgwfvgfvvwvwxwwwxwwwgwwwxwwguxxxfwwfvwggwwxwwvwvfgfgwfwvffwvwwwfuggXgxwvwWggWvvwwwwwgvvwwgVwvwgfvvwfxwvvfwwhxvxwfffVVvgwevweevfWgwvfwwwwwwwVVfgwfwfVwfwvuvwggggvwvwwwwvgwgxxxwwgxwvvwvexwwwwwgvffxwfvwfvwwwxgwvfvwffeUwvvwfgwfffuWVvfeffUUUwgxwvwfwvvwuvgfgvgwwffwxwxxwwvwvfxwfxxwxwgwvwgvfwvffVwxwvvwxgvwwggvvffxvxwvwwewuwgvgvggVfVxwxxwwwxvvvvgfggvggvvfeVVUVxwxvwwxwwvvwwwgvwvwwVUVwfVfVfffeUxwwwxwwvwwvvfgwwwwvvwWWVvxwgfewwggwuvvvgfVgggwvfvvWvgeFefxwgeUfwwvwffuVUUVVtfwvvwwwvvVvfwvvwgwwgvWvwwwfvgwgxwgWgvxwwfvwwgwvvvvVUewgugwvfwxwvvgfvwhwwGgffwwgefgwwwvwwUEvvwvggvvxwvvVwfxxvxwvffFEegfeWwffwwxwffWvewwwGEewxvwWUedVuwvwgwxwvwwwwgwvgvxvwwxhwvggxeewvvwwwgwwwgggvwwwvvvwwwwwhgffgwvwwgfwvwfffvvgeegggvwggwvwgwvwwvwwxxwwwxhwvvhfwwxfwfvwwvwhvwxWVvvvvfhwwgfwwwwwgwgwwxwffwvvwggfwwwggwwwffwwggwwwvwgfwxwwwxxfffvveegvvfggfvwwgwvxwvgwwwvvffgfwvvwwwgfgwwfvgwwwwwwgwfwxwwwxvwhgfxwwvvwwffVWwwhggxwwwwxgvfvvgwwfvwvgfvvUefVfxwXevwwwwwfvwggfvgwwUVVvgxwwwxwxwffwgwxwvvwgwwwvfgfwxgxxvfwgvgwwfggggvwwwVVfvfwwwwwwwfugffwxgwwwwfvvgggvwggfVfvfwfwwhfvvfwwvfegWweeggwUUUvfxfwwgwwwhffvvwgwwwgeefgVeeewWVuwxwwwuwwwwwwwwgggfFdvggfvxwwwvvvwgfvxwvgwWfwgfVwUFduwwhwwfgwwwwvwwgFdffvffWFdUfuwwwwxwxwwwgguvwwwwwwuwgwvwwxggwgvVgwwwwwgvwgfFdvwwgfvgwvwvwggvwWffuwwxwwgwwgwxwwwgguvgwwwWffUfuwwwffwwefVevfwvwwWwUFduffgfvwwwwvVgffwwefVeVwwfDfwwwffeDVeVffwwwwxffvhwgwfWvwVvfggwvgvvgwwwwgwwwwwxwwgXfEfuvffFfefgvgwfvgvggvfFffgfuvwvgdffvgwxgvhwwwwwgvfwwvwwwwgfvwvwgwwwvvwvwwvwffgvwgwffffggWvvwwxwwfFvwufwFgfvwwgwvwwxxwwFfggvWvwwwdffvwfwegwgvvuwgfeVeWgwffVfgWfevgvvwewvfgwfwgWvfgwfTfffVwvwwGeVfwVvwwxwwWVvxxvfwgggfvwvwgfxwxwwgvwvvgwgvvxffwxgWeUfuvgvvvgwvwwWVffvugwgwffffgvwgxwhwwwvwvwvxwwwWwhwevwhwwgwhwxwgwfvvgvvwvvwfgwwwvxggvfwxwvxxwxwggwvwvgwwwffgvgwgwveWvgxgffffvfggwvfffeVuwwegwfwwwxWwgvwegggVfVfUgvgvfvegwwxwwwvvxwwggggvuwuwwwhgfvfwwgvvhwwgwwxwggfggggfvfwfgwgfvffwgwwwgeeeewwwffWwgVwgwwgwwwWvwwwwwvxxxVeggwwwvvwwwvvvfwgWgwvfwwgvwvvhvwgwwwxwgggfgfffvvggwgvewgggwxffffvggwvwwwfgwwxUfwVgVgfwwwvffffvvffggvggwwxfggWvgggwwwwuwvxWVvfvgvvgwhvvwwgwwwgxxveggwgFefwwgfvwwufwwxwwgvfwwWfwvgghvgfUeuwGfewwwffvwfvwwffFEeuVgfwwgeWwxwwwgwggvfwwwVvwwgvvffvgggWfuvgegwwgxxvfgWFuefwwwwxvgwgxwwWfewwWVvvwvfgwwvwxwgffWUevgfgwxwegwxwfggeevwvfgWUeefgWvwwwTgvwvwUUvgwwxxwwggTTggwFVevggwwwwvwwwwwvvxvfwxhwfwvgvwwwugghwgwvvwfgwwfffvwwgfTffGUegwvfUffVfevwevvWfwvVwgwguvwwwwwwwgxxwwxwxwwwgxwwwvwwwwwxwwwWwgwuvwwwxxxgfwwwggwwwwgvwwwfUwfWwuwwvgUvVWfuvwwwwxxwwvwwwgwwwgwvgFefvTfvwfwvgwvvfggfgwvvwVvggevfEfvvWdefwvgwwvwwwwxwfffwwhwwwwxwxggwwvfwwvgggfvwgwvgggvgfwwwwfwwfvfwwwvggfvvvgfvgffeegwvggggwwhfvwwgvgwwwwxhwwvfggwwhwwwgwwfgwwwwwggvwwffwxwggwwvwhgwvwwwwxxxwwvwwfgWVvwwwgwwwfvwxwggfgvhWVvwwwhgvgvveegwwvwgvwwhfvvwwvvvxxvfvvggvffwwwfggwwvvgwwwwwxwfwgwwwxxwvxgvvewgfvwwfwwwfwwfvwwwwwwfggwwuVgffVwweUVeefufvwWwfgwwwgVVUeVwfgwvfvfwvwvvvxwxwwwwwvvgwwgfvwggvwwwwxwwwwgWufwvvgwfgfvwgwwwhvgwwggwffvgeeWvfxgfwwwgwwwgwgVVefVwgxwgvgwvgfUwvfgfevvfffUVfevffvghwwwvwwgUUUVugvwwvUwvggfffgffgfggfwvgwgwxgvvwgwwggxwwWVfvVETxxwwwwgwvwwwfgwwhgwwgffxwwwwweeghgwwgVeVVfffgeVVexwwwggxwwwwwwgffwxwwwwgwgvwwwwwvgfUfwwwwggvgvgeffffFEwwxwwxwxwwwwxwggvvwxwwwwwwggwggvfvxwwwfwvfgwxwggwwwwwwggvVVvxvwwwwwwxfffffwfvwgwweefffffTTvwfgwwggwgwgWeveVvgdTUggxxwwwvwwwxwfvwxwgvwwuguuvfwxwWWfvUfwgueuwwfuvvdfFewxwghwfwgvvwgvgfeewxxwxwwvgwvvvwfffvfgWVfvegwwVvevgfeeuefETwxwwwwghvvxwwwvvwgfgwxwwvuvvgvefwuvVfxxwgwvWwwwhwwvugvufvvgVexwwVgwggwwgxgUvfVfvgxgefWfVDuffwfgvvwhwwwwwfgXvvwXeVhxvwwxvewwgwwWwwfgWwwWfgwgvwxxwwwWvwvVeVfvfgfgffgewxwwwxwevwwfwgggvxvwhwwxwxwgvvvwvvgWvfwWfggwWUVfwgewwxwvxwggwhwxwxwxwvwwwgwVfggwvwwgwggexwwvwwhwvwwgwwwwVgwwwgewvwwvfwwvvwfvfwUeevvfVvguvfvVvvwvWwxwwfGfugguvVwwUSUwvgxwhwvxvgwwwhWwvwwvWhfegdVgxWwffgvwgwwWefgfeWfdfVewxwgwgxvWwwguVxxhwwxwvwvfhhvwwTfuvgvgffVwwfdVvvgUSxxgxgfwwxxwgwvWwgguVgwvggvggvwxhwxwfxvgwwvgwwuWwvgVdxxwxwVgvxvwewvfvxwfgugwW5ufwvVfEfwfWgvwgwfwvgvugWfuwgffghwxwvWgwfxwgwgwwwwvggfvwgfvwgwvfgwwvvwVfewgVfgffggfffwvwgxwgwuVvugVgexgWwvwwvgwvvwgwgWwvvWwwuwWfvgfgvvgVvfwwwfwxvxvgfwwvwgWvuvwhwfWvewfggwvggvgwwgwwfwwwwwwhvwgfgwvggffwwhwwegxvuwvwffvvgwgfefvvwgvfffffgvhgvwwwvwvvwgFffwwdfgvvxxwwwwfwvwwwwwwwwwwWvwwugwwwgfwwxwwwwhfweVeefvwwwvwwwwwvwwxwWgvwwvgfvwwgwwWwwwwvwwvwvugfWwwgwgffufUdfvfwvwVdfwwxgwwxwwxwxwwwwvgeVvufwxwwxwwxvwuwwhwgwwvgvgVugwwwwxguwwwwgwggwwwwwwgwwWfUVffVfvVvfwwwxgwxwghwwxwwveewwgfwwWUfuxhxwwwwhxghfwvwwwhwgwwfwwhwwvgvwUeVgwwfwwwgUfvfwgfwxxxwwfwwwgfwgfwwvwwwwwwgfgvgwvuevwVefhwvxwwwwWUfugwgWwvwxxwwgwxwwvwwwffggwwxwwwwwWUfuvxgfwxwuvvwWuvhwwxwwwwwffvggWwvfwwfvwvwVvggfwfuwWugwxvvgvwfuwvvwwefwwvwggvvwwwefvwfegwfwwwwwwwfwffwggvwxwvwwwwvwwwwfvgvvggwvwwwvwegfvwvuggwwxwgwvxwvgfgvegwgwwxwwwwfgVgfvfWvvvgwvvxvffegvvwwxxwwxgxfwwvwfwgwwgxwwxwvwvgfvwwfgxwwggvwwgvwwwwwxgwwwwxwgvfwwfgggffwgfvvgfwgfwwwxwvgVwwwwwgwxwvxwwwugvgwwxgVgvxwxvgvxxxgfgvwugwvgwgwgfgvWwvvgugfvfgwvwgVgvggwgfhvfwxxwxvggxxgfgxwwxxwwwwgwvvxvgfufhxvgfgxwgwgfgvVwxxwxfwwxxwxvvwxxvwgwwvgxgvgvfxxxvwffgfgfgvgfvhvVwwgwwfufwxfvffvfgvwfvfwwwguwwgvguwxwfwwgwgfwfweVeTEwwwwwxwwwwwvgxhfgfxwvgffgwfvxwWfeffwwxfUVvgveVvffVUwgwwwwgwwwwfffhwxwvgwgfxwgfVUVwwwwveVwwvffWfeUDxwxwwwgwvwfwwxwgfwxwffxwwwwfwgfvfxxwwwffwwxwfgxwfwwwffUwwwwffVuwwggffVUEwwwwwwvguffgVeVUwggfvhwwwvUfvgwWevwgggxwwwwwwvwffvvfggvfwwwgfvhvwhhgVVfwvvvhgvhwghffVefwgwvwxxgvfgwwwffvwwgvwwwwwgvvwwwwwfvgffwweefgvwwxwggVVevwwwwwwxxxxwxhgwgVVvwwvvxwwxwhvfgfvwwvxxwgfwwvvwgvwxxxwgffxwxwwffwxvgwVVfffwvwgwwwvfwwwfUffvwwwwwffwwwwwwwwwvvwwffvfgwxwwxfwwxwwwwwwwwwwwwwwwwwgvggvvwwvvwwwwwwwwwfwwwwxxwwwwwggvfwxxwwxwwwwwwwwwwvvwwgvvgvwffffvfgggwfwvvgwwwwwwwwwwwxxwwwwwwwwwwwwfwwwwwwxwwwwwwwwxwwwwwwwwwwfvwvvwwwxhgvwwhfvwwwwwwwwgvwwwwwwWWwvhwgwvewwfggvwgVvuwhgwwwwvuxxwgwwwwwvgwxwwxwgwvggvvgvggvggggwwfvewvwwvgwvgxgwvfvvwggwwfvvwvwwwwgvxwwwgVgvuewfgefggwwgwfgfVfugvwwwwxxxwgwwwwwwvhhxvxwfwwxwwwwwxxhwwwvvwgwvwwxwwwwxwgwxwwwvevggffvfgvggvfwvwfggWwwwwwgwfwwwwwvgvgwvvfVVffffVufegwvvwwwwwwwggvvwwfgvwwvwwwwgwwvwgwgvvgfvfgfgvgefefffgfwwugvuwgwwwxvVgugvvffvfwvwgwwwwgwgwxwvwgffVVUfeWwfffffvfweUgfgwugwvxxwvxwwwgeWwwggvWgvfgvgvvwffwfwwvgwwwwfggvvvgwvvVwwwuvvgvvwwfwwwffUfeWfWVugwgWwvfgffgvvgwwgwVvvgwwwgvgwvwwvewvfwffwwvwfVfvwwwxwfwwwxwxxwwgvvwfVxwvfWvvggvxwwvvghgvfeVfgfggWvwxwwfwvgwffwggvgwvwVwvfwxvgvwwwgfvwvgfeggffgffwvwwgwwfwvgwxxwwgxwwwgxggxvfwwxwvwvfgvxwwxwgwwwwvwwwvvfwwxwwgvgwvwwxwwvwvwwwwvVfvfwwgugxwwgfvfwffffwvwxwxwwwhvvwwwfwfVvgwwwfvVfgwxwwwwwwwwfgwwwvgWuxwgwwfwgvggfUwffVefvvwwwwWevwwwvggefwvwwwgfvwwffvvwfwwwwxwwwwfwwwgwvffffvVfuwwwwwvfgfgfffwvgwxwwwwwwvgwxgfvwwwwwwxvwffwwwxvgwwwwfgwwwwfwuwwwxwfgwwgwvwvfgwwwUfegvvffevefvxwvwwwwgwfvgwgwgwgvvxxvfeVfgWfuwvfgvwwfgvWvgwffvvfwfvefxgwfvwgxgWwVeFegfdeggwwfwwwvfwvgwwgwxgvvVwhgvwWfwvgwwxvxwgxWWfffVvgfdVwwvxwgvgvfVfugvgwwggwxxwxhgxwufFhwufgxwhxwvvgghwwwxwgvWvgguVwwvxxgxwwgwvhvwgwfFwvdeggfuVwefgewwvgxxwvwgxvwfefwwwwegvUwwwvgwwvwvgvgwvhfuwwvgxxwgfvwwwgxwvwvugggffvWwvvgwwvwwgwuwxvwxwwwegwfwwvgxwwwwxwwxwwwwufgGUuwwfwwwwwwwwwwwwwxwxwwwwxwwwwxwvgwwvwwWwvgwwwwwxvxxxxwwWfuwwvwwwxwxWUtxwfwWfuWwvvwwwxwwwwxwwwxwwvwxgvwwxwvwgffffffwwwwwwwgvwvggwwwwwwgggvgvvxwfwfwvggggvwwwgfffffffffwxwwwwgvwwwwvwwwxwwgvwwwwwwxwgwwwvwwgvwwwvffffffffffxxxwwwwwwwwwwwwwwwwwvwgwvwwvgfxxxwwwwvwxwwwwwwgwwwggwgfwwwwwwgwggvvwffwfgvgwwwvffffffffwxwfwxgggwwwwwwWevVVeefwwgwwwgwvgwxvwwXwvvuwgfvfwwwwwwfvfgvfwVgvfwffvvfeefwwwwwwwwwwgvvfwffvvvwwwwvwffgvwwfwwfwgvfwgwfwvfvvwVUUefffgfwwwgwxwwwgwwwwwwxwwxvwxhwfgwwwvwfgwwwvvvgwvwfgwwwwwwgvegwwvvvgWvgvffwgwwxvvwgwwwwwgffvvgvfffggUwwWffvvWuvwwwvwgvxfwWVfwwfffVVvwwwwxwgxwwwwwfwwvwwgvvfgwgvwxfwwwwwgwffVvwwwwgVfvevwxwvxwxgVffvfggvxgwwwfwwvgvVVwwvvxggwffvvffefVvwfggfVVvfvxxxxwgxgwvwxvvwhwwvwwwfffvwgxgffvevgwxfwwwwwgfffWwwvwwgffvfvxwggfffxwvfwfwwgwwvfefWffvfgwgfwwxwwwgwfvwwUVvwweUgggwwwwwwwwwwwfwwwwxggvwwvfwwwwwwxhwvwwgwwfUwwgvgwwwfeVwfwwwwwwxwvgwwwvewvgfgvwwwfffgvwWvfwxWguvwfvvfefUfffwwgVUVwwwxwwwwwxwwxwwxgxwwwwfUwwgwwwwxgfWwwxvfwxggwxwwwvfgfwvvwwwgffxwwwWVuwwwwhVfgwgvwwgUfvggfwxggvwgfvgggvvvwfvVvwfgeWfxwwwwwwwgvwwxxwwxvvwvwwwwgfvwwwwxwwwfwVfvWffwvgwfgfwwwwwxwwwvWwwggvWwfgvgwwggfvwvgwgfwewfuVwugffefffwVgvWffgwvgwwxxwwwwxwwwwwwwwwwwwgvvWwwwwwwwwgwgffwwxwwwvwvwwwwfgfwgwwwgwfeWwuvvvgwwfxfVvefwvwxwwffxwwwwWwffhwvgwxwgfffwwvgvwxxwwwwwWvvvfwwwwfgvwwvgwwwvfwwxwxxwfweVvuvvwwwvvwxxwwgvwgUgvgwvgwvwwwfvwwfgwwvwvfvgwwgwvfWffUUfvwfgvvvvvwwxgwvwxwwwwwwwwxxxgwfgfuvwwwwwwxwvgxxwwxhvgffwvwfgwvwxwgwgfvgwfwwxxhwXVugwgWgwfgfgwxwwgwvwwvwvVgwwxgfweUVuwwxwgxwfxwggwfvvwvfxwhxgwfgwvfvuwgvfgufwgwuVgfgvwwfUVvVvvwgxwfwwggvvguwwgwxwxwwxvvgwwgvVVeUvgwxwwwwwuvgefwvfxxwxxgwwwxwxvwwwwvfwwxwwwgfgvVwxwwwwwfgxwxwwwvwgwwwwwfvwwvfgfgwgxwwVeegevwgwgwwWgegufgegevvfeVwwwgfwvgwgffwwwvwwfgwgvgwffweVwwwwwwweVwwvwwwfvfwfgfgeVvwwvwvfffvwvwxwghgfwvvxhfgwgwggxwwwxwvgwwwwfwwFUdwfgwgwwwffgvgwvwhwwgwwwwxwggvvgfvfwvgwwvwwxwxvgvfvvwxwWfuwxwwwwwwgvgxwWfuwxxGUdfffgggwfwwgwwxgwwwwwfvfvgwfgvwgvfwwWfuwwwwwwxffgwwxwggwwxvwgvgwgvvwwvwvwgvgwwwwgfvfwfvvxwfvxxwwwwgwxgvgwhgvgwgwvgwwgwwwwwwgfwvweVwvwfwVeuwwgfvwwgwwgxwxwwxgwxwwwwwwgwvxwxxgvxfwvwxvwwvwgfhgwvxxxgwxhwwUUwvwwwwvwxffwwwfgwvwwwwvxwwfwxvgxwwfwwvgUefwfwwhwwxwxwwwwfvvhwxwvwwwvvgwwwwwwgwwwwwfffwgvwwfwVewwgwhwwfwwwvgUfUxwxxvgwxvvgwwwhxgffwfvfxVeffvveexwhwvgwwffgwwwwghffwwvwUvfwwfffefVUexxwwhvwwwwxgwwfwvvwwxgvwwfwwvwWVvwwfvwwwgffwwffgffvfWvwwgfvfgfwWUvwWvvfwgwvwvfvvwVfVwWfgwwwxWvwhfgggvweffwefvgvwwhvgXfWUVVgwgvwgWfgvfgffgWefwWfvvwwwhwvwhwwvwvvfgwxvwggfwwhwwfvWfvfwxhwwwufwxgwwgfgfgwefvxffvVvfhfgWvWVffwwvwvxxvwvwhwxwwxwhwwwwxxwxfwwxwwvwefvvwvwwvwefvwwggevvVfvvwwwfvhwuwwwwfvwvwdfTfgxwfwhvwWevfwfwfvvxwgvvxvwvwwwwxxwwwwwvxfWvvevwfwvvwgwwxvgwgwxfvwwwdVteegwwhwvwvvfgggwxXwVvgwvwvvffwuvegwgvwwwxxWvvwvgvwgwvwhvgwwwwwdVTfevwvvwfvvgxvwxhwfvvxwvwwwwxvwxwwxXwVvgvwwwwwwhvfgggvwwvwwwwwxwwwgGfuwhwwwvwvfvfegvfffwwXvvxeVvTfWfUwwfwvwwfwXvwxgwwWevvvwwwwwGefwgfggvwgwwwwwgwfgwwwugvfffffwgTfuwwwvwggwwwwwwgvfwxgwwgfvwwvggwwvewfwgwxwvwvvwhwwwgevvgvwvvxfeWgffwgdegwfVfeewwfwwvwwwwwwwvgwxxevwwxwxuwwwWwuwgwwwwwvvFUuwwwvggwwwwwggefwwuwvWVuWfVufegfvwhwffhvfWfvfgvwwvxwgfgXfvfgffvvwwffgwgfffwgefvwfvvegfweegwwwvgwVgVFTteUeffvwwgwwhwwvvvwwwweUgggvffwwUefgfvwevvfggwwwWwwVffUeffgvwgefgwWffvxgDEefeegeffvwfvvwuwgwggvwxevfggvUefvwfvwfvgvgffvwWwwwwhgwgfWfffwgwwwhfwwwxwwvfwwhfvwwvUUhvfgfgfvfgwwwvvffwfwggwxwwwvgwhgffvvgwxwwwwfvffVefevggwggvwwxhgfgvwwVVwwfgffwvwwwvvxxggwvwwgfwwvwwvwgvfgffggwwggwfwwgwxwwvvwxgvffvwgwvwwxwwgwffVffuwwgwvgwwwgwwwvxgwgggfwwwgwgvwwwwwwwwfvgwxwwwwwwvwvvfvfvffwvvgvgwwvwUevvwwvffvfgffvfvfvvvwfvwVevfgwUfeefvgwgfwxwwfwgvwwwgwvwwWUfvvwwvfgwgVefwwgvfvvwwwvffvwgwffvfUefwwxwxwwwwwwgwwwfgvvfvwwwwwwfvfwwgwvwwwggwwwvwwwfvwwfvwwggVVfvwwvgffgffeegVfvfwwxwwwwxvgxxwwwwwwwwvgwvwwwwgwvfvfggwxgeVwgvwwvwwwgwwuWwgxwggfWfvxhwvvgwgWfuxWVfvggwgvdfwugWwVwfVwvvgxhwwwgwggvufvgfuvgwwwgwgwwgwwgwwwwwwwgvugvgWfuxWFfwxwxwwwwwwhxwvvwwxguwhwvhgwgwvfwggwwwwvgwxgwvwfwggwweVwweefgwvgWwWwfVwvfwwgwxwvxxgvxxwwxxwwgxwwwugwxvuwvgfvwfvwwvwwvwgwwwwwvxvfuvwwvwfgwvgvvvgwxvwwwvwvgvfgwgugvwwwxwwxvxwxvvvggvvwwgwwvwvwvxwwwvwwwggwgWvvfgfgfuwwhwwxwwhvfggwwggegwwwwgwxwgxwwxwwwguvgVwfwgxxfgwgwwwgvxwwwxhwxgwfgxwwgwgwgwwgwwgxgwxwxwgVwfxwxfxwxwfwfUvxgvwvUfxwwwfwwWfevggfwffvwffWVffWefvwwwwxgwwgvwwwwxfffwvwgwfwxxwfxwgffvwwgwfgxwwfUewwfgwwWVewwwxwxxwwwhvwfvfwfgwxwhwvwwgfvfwvwwwwvgwgfwwxvvggfgUfvvUffwgxvvhvWfefffwwwwwwwwwwwvwxxxwwxvwxwwfwwvgwvvfgvfwwwwxvgwwxwfwvwvwwguUfwwfwwefvgffffffgwvweUwwwwWWuWffUfvwwwgfvwwwfwwwuwwwffwwgffVevfggewvffvwwvwvfwwwwwWffvgvWDDffgwvwgwxwwwwffxvwwWefffvwwffffwwffgwvvwwwWgfwgvwfUffwwufweffffwwwfUwwwwDDfUfgwvwwwwwVugfVvgwfwwwfwwwwwUwWugvWwwWefwwwvggvwwwwwwXuwvgwwwxgvWVuvgwfwfgeVwWvuwVgWwwfffgeVweegwVVfffxfgwvggwgwggfwWeuwwVVwvgwffgffwvfghgggwvwvxwWweVvVgxwggVUUvwvvwwwxwwwgwgfuvffggvfegvwwgwvwgggwwwwvgwffxvwgvgwgffwVfuvgffVfehfvwWVUvwgvgfVevvwwgwfvxvfvwwwvgwwwwwwxxvwwfvgUfeggwwfvugwxwwwwwvgwwwwxgwwfWfvwwvfuggvggfffefVwwwgfvwefwfgffvvfgwxwgwwggvvwvvvgwgvfvwXfvvwwvfvfveWufVgwgvwwvgwvvwefveVvvvTDWwwwggwwwxvvwwgwgvfgggfvvwwwvfvgwwffgwwWwwwwvgfvfWvvvvfwwwWfewwGEtuwgvvvfgwgvfwxwfeWxvwffggggwvwwwvfvVgwvvwxwwfgggffwuvggwwuwwwgfgwvwvwgwwwgvgwgvgfvvgwfveVdfgWfeffffgwhffgfgvffgwffvgxwffvgVwuwggwvWfuvgffwwWfuwgfgWweGvffgvvwvgfFvS5vffWfevvfgwwffffxwgfvwwhffvfffffvffgffvwwgwvfgvwxwwwfeVwffhffwvgxg7UcvfeVvdgWfefffgffvgxwwgwfwggffvggwwgfffvwxwwgfgxhfvffffgvvffwwwwgvvggffxwwwwvvgwvffxVuvfgvvwegwVgfffvvwvvvwwvwuwvfVgfvgwwwwxvwwggggvwwwwfeVfwvwwgggeeugvwxvwwvwwwgwwwUgwWWgvwfwwvggwgvwwwxxwudfffgxggxwffvgwwwwwwvvxwggwgwwwwwwxwteffvvwwgheUwwgvwwwwvvwxwvvwfwgwwwxwvwxwwwwwwUfVwwgwgwwxxxhwvgwwfwxxwxwxwWwgfvxxffvVUwwgfvwgvgfghvVgfVwvfwwggffgvwvvwxwwwhffgWfvffvgUUexwwwgfwvwgwwvgwwgwwhgvfVewwwgfwwfvgwwwxwwwwwwwfwfffffffxxxwwwwwvwvgwwwwwwgwwhggfgfggvffvfeVVxwvxxvwuwggfvgwvfwxxvfwwgvgwxwwwwwwgwwwvffgwwfgfffffewgxxwwewwwxvxvwevvwwxGfffxwffxwwwxvvwUUfVgwWefwwwwwggvwxxvgwwufgUefvVVfvfwwxwwvwfeVwwwwwvfgFWfuwwfUwwwwwwwxwwwwxxwvgefvfgwwwfxwwfgwwxxwxwgfvvxxffwwwuevETdwWVfvggxxxfffeVwwwwwffgwwwwwwwgwWevggwWfefgggwwwwwxgwwxgwvwxWfgvfwwwWfewffvfvggwwwgwwwVgvgwvggwwgwwwwvwwvwwxwwgxhVefvgffvwwfgggwfwwwwfwwwwhwwwWVffffvvwwgvwxwfvwwwwwgvwwhVfgfveVgwwfwhvwwwwxwxwwxggvfwwgwwhwwwxgUefggffwvwgvgwvwwgvwxwwgxvhgwwvwvwgvwxwwgxxwwxxgvvffwwwvgvwwwwwxwwwxwxvxwxvwxwwwWfvgVuvgwwgwFdfgwWwewfvwgwwwweffgwwwwwwfwffwUwvwwwwgvfwvwwVufgvfwggwDfVvwwgfuwvwwvgwwvFUffgwgwwxgwwggvxwwwxewwwwwwwwvwwWugwwfgffwvgwffuwwvvWuggwwwwgfwwvvwVvgfwfwwwwTeevwwwwwwwwwvwwxwgwggwgfwwggwwwwwvwwwwwwWvfwgvfwvwhvUwwVufvwWevgFevffwgffwwweevffffgVvwwfwvdfVeFffWwwwgwwwegvgvgwwwwwwfwvwwgdvwgvgWdfwWgffwwgwwgvVffgewffvveEVfgvwwwfwwvgvfwwgfgwgvffvuwwwwwwvegVvwvfvwvvwxwwggfwfVgwgvggwegewvgwvwgFffffuVfFfvewwwwwvwwwwwwwxxwwWwfggvwfwwxwvfgvwwvfvgwfwfftwgwVfdfwfwwgggwgwfwwgvwVfwfffgfwwxwfwwwwgfffwwfwwwwgvwgvwffwvwwwwwwgvwwwhfgUwvwwfwwwwwgwvwwgffffwUfffffwwxhwwwfwwwwwwwgvwwwwwwUfwwvwwffvwvwwwwwhgwwfwgwwwwwwwwwwwwxwheffwfwwUffwvgwwwwwwwxwwwfwwxUfwvxwwwwwwwwhvwwxxwwxhvvwvgwgwvWgvgwvgfvggvxwvveewwvgVffuwwwwxvgwvfhwVfeffxxgxxwwwwwwwwwwgwwxwggvvfvwgwwwffvwwwgfvwwweewhggVVfuwwxwxwwwxwwggwffwgggvwwfgvwfwwvgwvgvxwwfxggwwwwwwwwwwwvggwVVfffvxwwwWffwxhxwxwwwvxwwxwxwwwxxwxwvggvwwxgvgwwvvwvgwvwxfvvgwwwfggevfvvvwgfggWgWffvgwwwgfvwwwwWfwffgvfwwwvwxhwwgvwvwwwfvgfvgwvwwXffewwweVwwwwwwxwuwwggwffwWeVwwvwwWhxhgwgfgwxxvwwVgfwwwxgUfvgwwvfvwwwwgwgwwgfwwwwwvvgvwgwvgXUfvwvwweVgvgwwwxwvvxfwwxxvwwxwvwwwwwwxevfwwwwWgvwwwwxwXfewgvwwxfwvwwvuvwwuewWgwg6UuvvWfvgwvghxVfgvwhvwhwxWffvwWgwgxVgwwwwvvWfeUuffwwhFvvfwvUgfwww6UUvwWftggvgvwfvffwgwwvwxdVwxwvWhwgdfVVvvwgfvwwwfwwhVufwWgvgwwvgwwxvgwwff7EUUuvwwxhFvvwewwxxvwwwuvgvvvwhwxxgwhwdfffhwxvuwxeeffwWfvwwvuwwxfggvvwwgffwwgfvvfwwwvwvwvffwfwgvfvvfwwxwwwwwwwwwwxwgvwgfggvwwwwwvvwwvfgwxgwwxwvwwgfgvfgffvfvffggvgwxwvvwwwwwwfgggvwwwwwwwwxfvgwwwwxhwwxxwvwxwxvwfgffwvwgwwvwxwxffwwwwwwwwvggfwwxwwwwwwwxwgwwwwhwvvwffvvwwxwwxwwxxwwwwxffffgggwgFevvwwevggvwwgvfvggfwfvwvwgfgfxgvvwvwwfvgwwwgevgfwdVfvvewgfgwxWfugwwvwwhgfxgFfvgwweggfvwwwvvwgwvgwwvwwvwWuvffwwwwgvwwWVvvwwwwxhwvwgfwwwgwvgwgevWgwdVfvvvgvfvwwWfvwwggwwwhwhvwvwwwwfvwwwwwhgvxwfwwhfwfwvwefwwwwwwvfwwwwfvfwwwwwwggvfwwwwfWfeffuvgvfvwwwwwwvvwwfwvwxuWgvwwwwwwwwwwwwwwffgvwgvugwwwgffwvvvgwwvwwvwwvgwgfvVfueVvgvugwgwwwxwwxwweVgwffvgxwvgwwwvhwxwwwwwwwwwwvgwwgffwggvgxwvwvgvvwvgwwxhwffwgwvwwwxwwwxvgwwwxwwfwgggfwvwxwggwwgwvwwwwwwwwhxwwwxhwxggfwfvwwgfwxHdVuwhwwvhwwhwxwwvwwwgvwwGdVxwxfgwwwwvwwWegfvgfvguggfwxggwgwhwgxXvwwvvwwgfwwhffwxwxwvwevgxfwhfvgwGdVuwwhfvwwgwhwgwVfvxwwwwwwfvwgwwwwgvwggxwwxwwefgwwwxwgwFdVewwhgwwwfwwwwfvwfwwwwwgVgfffwfwUgfffwwwwvwgffvwxgvwfvegevwwwvwxwxwvwwxwwwgwwfgfgffgxwwwwwwwwfgffvggvwvvwufwwwwwfgwwwwgwxfwvwfvwwffwgwgevvgfvwxgwwhwgvwxfwvgfvwefefgfvwwwxwxwgwwfgwwfwvxwxwwwwwwwwvwwwwvvxvwwgwwwwgwgwfwwvfwwxvwfgufgvwvvgwgwfxwfwgxhwwwWfVgvfwxhXfvvwxvgwgwugfvxvxgUvwwWwWUVwgwwwwwwwwwwxwxvvggvgwWUVvxwwxwxfvvvvgffggwwvgggwwewvgvwwwwfwxwwwgfgwwwgvegwwgvgfwwgewwvxvvvwvgwWUVvxfgggVwgegwvxxvwxwwggwwwvwwwvxwgfgwwwxwwwwfwgwwwxwxvwwhwfwWUVvgggggwgfwwwvwfwvwwwwwWvwgfvvvuwVfwwgwgwgghvffffvvvwgGVfwwdeVvwxxvfwwgvwwwvgwwwwwwwWfwwevffwwfwxwxwggwwvwvvfwwgvvgwgfwwggvvvxwggvwvffvgwgwwffvvvefgfgwuwwwWwgvwwvvvfFefvvWvwFefvwwxggvvffvgxwwxwwgwvwwvvfvvwvvwgwvwvwuwwxhxgvwwwvfVugvvgwxVfgwvghgffwwwxfwvwhgffwgvvgfgfvwwxfgvfvwfWfvwwveffwfwgVvvvvvxwvfwwxwwwwhwwwwvfWfwfwgfvxwwfwxwwwfwgffVvwwggwwfvvwxvVguxwwgugxwgxvVwwwvfvffgfewwgwwWwwwwwwuwWvfwgggvwfVvwwwwwxxwxgeWwwwffxwwwwwwwwfwfWwwxwwgxwxgvvwwwxfwwWvfwggwvwgfvvgwwwwffwwvuwwwwxwwwwfgfegwvwgwffwwwwggwwwgvugufwg7UefwuwvvwvwvgxxxgwwwxuvwwVfwvwdfvvwwffxwxxwhvwuwfevwwwwwgvvfwwWFVfvwevwvxwggfggwegvwfvwwdewwWgggwwSUvwVvwewfwgwgwXFffvguvwvwwwwhvwxvfvvVfwwwwvvwwdfwwWggwwhevfgWvwdffvwgwgvgggVwgvwwxwxwXffVfgfwgvhgwwwwxwwgWfwwffwwvhwfxWefxwwxwwwwwwwgvghwwWUfugwfvwwgvwxxhxgfwvxxwwgfwvVwWwwwxwvhxwwgewvwugwWwwwwfgvwgwvgfwUfVwwwfwgxgfwvwwgfxwwwgxxwgWwxxxwwwwhwgwgvxwgwwfwVxwwwUfVhwwwvwwwgWwvwwfvwvxfvgwwwvgfvgfexgwwwxwvgwggvwwvwvvfgVGffwwxUfwwfwwwvvwggggwwvgvwgFfvwwhffvwfwwvewgvVvgwwuvvwuwfwvggfgwWwgxgdfxgggwvxwgfgwwvvwvfgWfewfvwwfgxwfgeefwgWwghgdfxgvxfffwxvxewwwwegfvwwxwxgffwggwwfgwwfgffwfvgfvwgwxhfWVvfgwgwxwhvwwxxvggvwxwwxgwwxvwhwwwxgwgvxxgxxwxwwhhvxwwwvwxwwwggwwwwwwgwgvxxwxgwxwxvgwxwwgwwgwgxgwhwvwvwwxwwwwwwvwwvwfvwgwgxxwvxwwwxwwwxwxwgxxwxxwgwwxwvxxgxwxgwwwwwvgxwwwwwxgxwwxwvwfwwfwvxwvwvwwwwwxwxxwxwwwwvfgvwxwxwwfvvfwwwwwwwwxwwwxwwwwxwwwwggwvgwgwvwggvvxwwwwwwwwwwwfwwxwwffwwwwwwvvwfwwwvxwwwwffwwwwwwwwgfvgvwwwwwwwwvvwfwvggwwwwwwffwwwxxwwwwwwxwwwwxxwfwwxwwwwhgwwwwwwwxwwwwxvfgwwwwwwwwwgfvwhgvvwwxwwwwwwwggvwwwwwvwwveWgvwvUVwgvVeuwgffwwwvuwwxgwWwvvvvhgwvfgwwwgufwVggfgvgggfgvvfguvvWgggvfgwggfvvWggvwwgfwxhwvwwgWffvevvwwWfvwwwwwgvvfVvgVeegvwwwvggwVeVvvgwvwwgWwxxvvgWfwgvvwwwgwewwwhWgwwgwgvgfwvwwwfWvffufgvvwwwxWffvgwwvgfWwxvuvffwvvvffWvgwuvvhwvfvgggwwxwwwfwffwwvwgfvwwwwwwxwwwwwwwwwxwwwxwwwwvhwwwwwvwwwwwwwwwhwwwwwvwwwwwwwxggvffwwwwgfvgwwwwgffxwwffwwwwwwffwvwwwwwwffwwwwwwwwwwwwwxgwwwvwwwvwwwwwwwwwxwwwwvwwxvwwwgvfwgwwwgwwxwwwwwwwvvwwwwwvwwgwwwwgwgwxwvxwwwwwxxxwwxvxwgwwgfgWgfgvewvfwwwgffgvwhwvxwxxwvxwxwwwwgvfwvvwwwhfVwggwvwwwvwvgwxWggVwxwwwwvwvwwwhgvwvgwfxxwwwfgvwuewwfhgwwwfwvWgwvvffvVwgvwwfwvwwvgwgvgwwvfwfxxwxwfgwwwwwvhxxgwwgwxwxwwwggvgvvfeVwwwxwgwxxgwvwwwwwwvuufeWwwwwfvgwwvvwvgwwwwvxwwggffgfuvwWggfwfWuffwgvgvfwwwvgfvvwwvxwfgwVgvgefgwvwfvgfvfvwwxWvvgwwwuwgwvvvfvwffvfvwgfgvwxfgwWWfevfvgwwxeffUffwwwxgffwgwvvfgvwwwwffwgfwgvfvwxfvfvwgwwwxgffwxwvwwwwwvfgffvvgwgffwwwwwwwwvwwwwwUfewgwwWwvgwvwwhgvvgwwxxxfwxwuvwwufvvwwVffvwggvvxwuvwwwwwggwwxwwhwwwVufvwggvgwgfvwwwwxgwVfgvwwwwxxgwwhvgwggwxgevwwgwwWfeeffvgfgggwwWUffwuffwfffwffwwwwxwfwhgwxgffwgwwwwffwwwwgwfwwwxxXVfewxvvwvwewVfvwwgwvwwwwwhgweUfwfwwxwvwxffgwwwfwwxxvwfvvvvfVWfuwhweewwwvwvvvvgfvwxwwwwwgwwVWfwgxweewgvwvvvfgfgwvwvfwgwvfgwxwvwwwvwvfgWVvwxwvvwwwxfggvxwwwfwwwvgwwffVegfUfuwfxfvwwgxwvgWVfxwvvwxwxvvvfffgwwwwvwxwwwwwwxwwfgWffwevwwwxwwgvgwwxvwWwxwvvgWfVvuuvwwwxwfwxwwwwwxfwfwWgvwgeevwvwfvgwwvghwfwwgwwwwvwgwwwwxefffwwgffwvvwgffWfgewfwvvwwwwwggvwwwwwwWwwwgVffwwwgwwhUfwwfwwgWevvXVvWffefwvwwwwwwhfvwwwvgxgfugwwwwgwwvwgvgugfwwwwxxwwwxgvwgefffgvwwgwwwvhvwwwwwxgfvvwwwwUffvwgvvxwwxxxwwwwwwwwgwwvwfwvgvFUtWfvvgwwwvvwgvfwwwwwwwwwwfVwvgwveVwwwwwfggwfvfggwwwwwwxwwxxxgwvgvWfugwfgwxwvwffgvhwvwwfwwwvTEfgVfuVgfgwwwwwvgwwwwvWfufgvgwwwwwwgwwwwwfgwwwwwwwggwgwxxvvfWwUfufgweVwwwwwvgxwwwxgwvvfggvwwgxvfgvvwvfwwwxwwwwxwwwgVewwxvvwwgfVeUvxwxwxxxwxwwgwwfgxwfwVUUwxxfwgwvwwWefggwwgvfgffffvgvvwwwwwwvgvfvxgwxvgwfggfefwwxwfwvwwxwwwgfvwvfwfVeUVVxwwxwwwwggfgfwxwwwwwxwgwwwwwwgwfvfwwxvgfwvxvvwgfvvgwwwVeUfVwwwwwwvwwwwwffvgwgvwwwfffwvfffggeUVwwgwfvfwwfvgvvgDUfvwwWfugxxwwggwwwwwWefwwgfvfwvwwwwxgvgvwwxVwgwfwuvvvwwwgVfvwfuwwgUffvvwwgfvgxwffvfwfwwwfwvwgegwwgUfwwwwvDUffvfwwwwgvwuwgUfegvwwwWwwvgvWwgwwwgwwwwfggwvfwwxffwgfVevvwgUfwxwwffffvvvwwwwwugwgvwwwWwgwwguggwwwxwWffwvwvwwvffvxwWUfvwXVvwwwwwxwxwwxwwwxxgwwgUfvXefwwwgffwwgvgfvwwgvwxgvwxxffvxwxhfwwwWevwwxggwgfgfvgfvffwfvfwxfgwwVefeuffgfvxwhVevwwxwhfwwwXevwwwfwwgfwwhvxwgwwwwwwxfgvwfvgfffvWevwwhffwwwwffwfwwxvwwffwfUfwwgwgwgwwwvgfffwwgwvgfwvvvgvwwwvwxxvwwxxwwhfwwwvvwwgwwwhwwgvwvgwvwvwwwxgwwwgggvwwxxvgwwvwvgwwwfgggwggvffgvggwwggwvgwvffgvxvvgwwgwxwvxwxxgwwwwvwwxxxwvvgwwvwwwgxwgwvwxhwwvwgwvwvgwwfwwgwggxwwvhgwwwfwwwwvwwxgfvgwgvvwwwvvwxgwwwvwwfdgggwwFegvwWvvuwwwvvwwwggwwwwvwxxgvwVefugWfvfgwgwgxfwwxewWfgfggwwhuwwxwvewvwwwWvwvwggwvwgVuwfvfDfUfvgwgewfwvfgwxTffvvgwWWvuwwfwxxwwwgvwwwgvvwwxvwwxwwwwwgfvwwgwxvwwwfwggfgwwUgffvgwXfefgwfwxhwwewwwwwwxgwwdVfvvgevwVwwxwhWwvwVVeVvgwgDfuvweVvfwxgwwxwgvwxwwxwwwwWffvvgeVwfwxvgxhwvxhvgeVwfwugwwwfwwwWweVvgfVfuwxvgwwvffVUfeffvVwevVuWvxgfvgwgvWeEVdfvWwvwwvwgwvgwVfuwxvgxwgvgxxxvgeVwvvwxxxwxfffwgwvgwhvVeVguvvgwvwguwwwwWfufggxwhwgfvgwgFfvvwVwwxwvwggwfgwgvggvvvwGEuvwwggvwxxwxwxwgwvgeevxhgvfwfwwwwvvgwxxggwwfwhfvwxghvgwhwwgfvxXVvwggffxwwwggfwvwffwwTTwwwgggfwvWVvwwwfwvxxffwgvvxXVvvwvwwxwwwxwvfgggwvwxhvwwxVVvwvvgwxggggxWVvwvwwhxgvfffgwgvwffwwxwwwxxgwgvfwwvxwwwwwvvwggffwwwwwwwwwwwwwwwwwwwxwwwwgfvwwwvgwwwvwvffvwgfvwxwwwwwwwwgwwwvwxxwwwwwwwwxxwwwwwwwgwwwwwwgwwgvwvvxgfvwwwxwwgwxwwwvgwwxvwwwwxwwwwwwxwwxwwwwwxwwwwwwwwwwwwwxxwwwfffwwwwwwwwwwvwwhwwvgfvwwwxgfvwwwwwwwwwwwvwwgwwwgvwvwXVVffVfvVfvewVvwwxwvgwgwwwwwwwxgwwxhgwwffwfwggwwwgfvgvvuwfggwwwwhwvwxwwhfvwwgwwfwwfwwwwWeefffwfffwvfwgefWvvegwwwefgvwwwggvwxfwhwvvwwvwwwwwfgwwwfwwfwfwwwxWwxxwxhfvvuvvvwvwVwgvvwwgfvgwwfwhvffvwwewfwwwvwxugfwwwwwwwwwxwxwwxxxxwwwxxwxwwefVhxxwvwwxxxggVgwxvvwxvfgwvgfexxxxwwwxxxwwxwwwwxwwwwwwwxxgxwvwwxxwggvwxwvgggufvvwVfxywwwxxxwwxwwwffxwwwxxfgwwwwfvwwxwgwgfvwwgfwwgwwgwxwwwxwwxhwwwgwwwhwvwvfwxFeuWVfwxxxwwwwwxwdfwwfvwwwwwwwwwWVfvxwgdvwwwwxwwwgvwxhvwxxxxxwwxvwwwxwwxgvwwwxxwxvgvvwgwwxwgUVwvfvhwhgwggVUffwwVVxxvxwwwhxwwwwgwwwwwwvwvwxUefwwggwxvvwwvvwEewwwwgwwwxwwwwvvxuegxfwxwwwvwwwfwUeexxxvwwxuegwwwwwxxvwvgdTVvxwwweegvvwwwwwwwwwvwuefxwxwxwwxwxxwhwggwwwwwwfvxvwwwwgwxxwwxwwuefxwxxwwwxxwwwguefwwfwdTVfvxxxhgwwwwwwwwvvwwwwwwgwVWfvwwwxWWvvwwwVWfVUVffWWvvvggwwvWwxwwvghwvwfgwXwvwvwweegffggUfwwwgwvwgfwwggvwwwfvggfvxgVvfwgfvvfwgUwwwvvvvXgfxwewxxxwwwwxxwgvxggwwvgwxwewvwxxgxvgwvwgggwwfwvhgvwwwgvwWguwffffgfVfvfffVwhwuwxgvwwxgwvgwvggvwgwgfweexgfwvVvggvwvvffVeVgwvfvgvgVegvwwfgxwwwwgwwuvvwwwwwvewwgGefvvVggvwxhvwhwvewwwwwwwfwgggwwgwTfvgfvvdffwwvvwwwxwxwgwwwwvwvxvvvxxxxxwxvwgwgwxwwwvgvvwvwguggwwgwwgxwwgwwgevwugfwgwgxwvgeVVdevgfvgvfugwhwwgxwvgwvwwwguvwwwwgvgwvgvWwwfxvgwxwggVGVffgwvhEvvwwvwwwgwxwwxwxvggvvwgfhvwxwwxwxweVwxgfffgvxwvgxwgvgvwwxxxfwfgVfefgvvvwwgfgfUxwwxvfvgwxwwgfhwhxxgxhwvwwwxgwhwfffgvxwghwgxwfwwwvgxwgvgvghvvwwwwwWfefgvgvgffgfUvhwwwffhwvgfhgvhfvhvwvgwfvfwwgwgvwxfvffvfVewvgvgvxwwvfwwxxgwwxwwwvffvfwwvfwfffgwwwvfVefwhwvxwwwwgvwxwwwwWgfUwvwwvwuwVvwVegfewwxwggwxwwwvwfvgxwwwwwwwxwwwwwwfwwwwwwwwwwgvwvwhxvwwwgwwgvggvffxWffVfvwwvggufvgfvgfuffewwhgwxwVwwwfwwwxvxvvwfuwwgfffwggwvwgVfffvxwvwvvggfgVwvVwVfhwxghxhwhgwxwvgvghwvwgEUvhxxwvggwhvgvhUSUxvwwwgwgVgvwwwfxwhxhggwxyxhxvgxwwwxxxwwwwwxwvwxhxvggwhvgwgfufhvwwwgxV5UuwwwfxwwxwwwxxwwwwwxwvgxvvgwwVTevvggvxvvgxvvggvxfvugwxggfxwvvwxvuwwwvggVgfgwweVvxfvwxhwvxwwwxfvwvvgGffwfVgwugwxguwvgeefgvwvwvhwwhwvvgwwvwxxxwxxxwgWwvwgwwvgwxvvwwxvuwwgwwhwwgwvugwwwwwveVVwfwwgwweVwwgvwvgfugwvwvwWwvwgwwwwxvvwxgvwwwxxWffwVVffwgVwvgwwwwwWFfvwwwwfwwgwwhwxwfwxwwwwhgvvwhwfwxgvxgfwVTEuwwxxwwhgvvwwwfwwxvfgxwxwwwwWETuwwgvxxxwwwxggvxxgvwwwwxxxxwwwwxwwwwxwxggvvxwwwfwwUDUwwxwwwxggvvwwwgvxvgwwwxwwxwwwxwwwgvvfgvgEUTvfgfwxvfgwwvfgwfwwwwvggwwxggvwxwgggfwvwvwvfwgffvwwgUffgfvvwwwxwwfgfwvvwwwwfvVefwwfgvwwwgwUVefevvvwwxwwwwxgfwwwwfwwxwwfvvwwwwwxwwwffvvvwgwwhwvxxwhwwvvwvgwgeewfffffgwxwvggeefvffgwxgfvwwfwxwxwwxwxwvvvwwfvfvgwgWfUfVVVfvfwwwggwwwwwWVevwwwwwvgwwwgfWwggwvvgWwhwuwffwVVwwvvfVVvwggwwghwvwfggwWvuwhfgfefhvfwgffvwwgggffwexwvgvgxvwfgwwxxxxwxwxwvvwhwxvvuwwvgwhgwxvxvgwwxwwwggvgfvwwwgvffgvvgWfvgggvgggUvwwWxwfgxwfwfgwwvggwgwwfvVVffeeexgvvevvvVexwfvgwvgfwvvgggvwwxwfxxwxwggwwwgwwgwgwwvvwwwwwfvweewwggggwwwgwfwvggeewxWVvfgvgvffwgvgxwwfffhvxxwgxvwwvwwwgvgwxxwxwvwwwwxwfvwwfwwxxwwvgwwwwvhwwwwwfgwvgwwhgvgwvwwfUfvfvvxwwfUfgvxwgwwgxwgvwwfwwxxwwwwwwggfffVeffvwwgVeufwwwwwgffvwwwwwwwhfgwuxxwwvgvgxwvwgwwwgwfveVwwgfvuxvggvwvWwvgxwvwwwwgWfevWvgvufWfuwwggwwvgwhwwvwxxxgvwgvwgxvwWwwwxwxxggwvvWwwughwwxwgwvwgwwxwgwwwwwhwvwggfgwufFvgfeVgwvxwWggwvVgggwvwwwvWxwvvxwxwgwvxwgwwxwwxfVwwfdVwgvufwvvgwvgfeVxwwwwvwwwxwvfvgxxfgwgwwvwfxgwwwwvfffgwfffvgwwwwxxwgwvwwwwufgVwfwwgxwffvwwvwwvwgwwxfgvggwwwgxxvxwxvuggwvwgwwvWwwvvgxwvwxwwwwgwwxwwufffwuvwxwvfwgwvwwgwwwvwwwxwwxxwwwwwvvgxxgwfffWwfwvgxwgwwgffWwvwxwxgwwwwwwwwvwwwwwfwwwxxwwgvhwvgeEwgvvgVfuwvfgxvwgwwxwfeUfgfeUxwxgwvwfvfwwfeuwwgxwwxwwwwwwxxwwwwwwwwfxxwwxxwxwxwwwxxxwxxwwwwwwfFwwfeVxxwwwwwwwggvwgFxxvgwwvwxwwxwwwwwwwwgwwvgwfeUwvgVTxxgxwwwvvxwvwwgwwwxwwxgfgvwwgfgxgwvxxwwwwwxffuwgVgwwwwvfgxwgwwwxwwxvwwfwvwwwwwwwwwwwwwxwwwwwVfvwggvwxwwgufxxwxwxwxwwgfvhggwVffegwwwhwxhwvwgvgwvwwxgwvfgwgwwwvwgwggVWvgveVgwWfegwwwvvwwxwxwwvhVfffgevvwwfwfwvfwgwgwwvwwwwxwwvfwxwxxwwwxwwxxwvgvvgvggefwxxxxwwxxxwvWxxwxwxgvvuwggVgvggwggvwxvwwgwwwvwxwwvgwwwevxwxxwwxxheVvfwefeVwwwgefxvgwwvwvwhvwwwwwvgwwxwxwwxxgwwwwwwwwwxwvwwwxUUvfgwwwwwwvgvvwxwxwwwwwwwUfvvwgwwwwfffUfxwxxwwwvwwwwwxwxxvwwwxwwwwwwvxwwwgwwwwwwwxwwvgwvgxxwxxgwwwwwfUwvgwwwwwffffUxwwvwwwwwwwwwvwwwvgxvwvwwwhvgvwwgwwggfffwfvgvwWUuwwgvvwwwwwwwxgvvwfggvwgvwwwgggfffvfVVvvwwwwhvwgggwwwgwhvgvvffvfwfVggfeVffVgfewxxwwwxwxgwfvffgvwwwxxwwwwwwwhwwwwwxwwwwwggwvhwvwwhwwhwvwwggwwwwWwvewwwwgwgveWWfWVfevxggxxvwgvwwwwwWgwgwvevwwwxvwvggwwvvufWvffwvfgwvgffefffVvvxwfwxxwxwwgwwvhwwvvvwwggwwwgfwwwVVvwwwwxwvvwwxvfwwwwwwvvwwxvgUffvffgvvwfUfgvxxwxgvwwwfgwwvwvxxwwxxwxxwwwwxxwgfwwwwxwfvvvwwwgwgwwvfgfwvvwwvxwgwvwwhVVfgvwfVVfvvfffgxxwwwxwxvwfwwwwhwfwwwwwwgvvwwwwgfvwwwwwwhffVefffvwWVevfwwxwwwgxwwwwwwwwwwfVvuxgvxwwwwvxwwgfUVuwxwxwwgVvwwxwwwfwxgwgVvuxwxWFetfxwwgxwwxwwxfWvuwxwxxwwwwxwhwvhwxwwggvwvgwvwwwgwwgwwxgWvwwgwwwxwgwVFetxwxgWfuvxwwwwvgxwwwxwgwwxwwwwwvwfeWwwwwveWwvvgfeWVeUgfveWwwggwgvvgwwwxwwwxfgwwwwvfgvwwVWfUvgeVwvgwxwxwugwxwvwggwwwwgwguvfgvwevvvvvwxwwwwxwwwgfwwfgxwwxxwwxgxgwvwxgfwwxwvgfevxwwwwxwggxwvfvgfgfwvgwhfVvgwvvgVwwgwwvwwwhwxwxwwxxwwgewxxVfewvvwWfuwwwgxwwgvfVvwgwwfhVfwxvvwwwwwwxwxVffvxgvvwwwwxxgvgwgwvwxwxgvgwhwwwxxfvwxwwwxvwWffffwwwxwVwvwxwwwghwxWffwxggwwwxwwwwwwwwwxgegfxvfxevffffgfvvxhgwvwwxxgvgwwwxwvwwxvwwvgffuffvwwxxgWgwwwwwwwxwwgwvgwwwwxwfgwxwwefwfwxxwuwxwfVwfwfffwwwuwwgvxvwvvxwvgvxxwwwwwwfwvwwfgfVuwwgffvfgvfwgxwxvgwwwvgfvfWVfggVfuwvwgwxvgfffffgwvwwgfgwxwwwfwfgwgxxxwfgvwwffvxwwxxwwwwwwvgwvwggvxwwwwfwvgggvfgVVeefuwwwwwgwfUvwggvgwwwwgfvxfwxwwxwwxvvwvgxwfgvwwfwWfeefeVeuwwgvvwvwwwwgVfufwwwxxwwwxwwwwwwwwwwwwwwgffwwffvwwxwwxwhvwwxxwwgvvfgwwwwxwwwwgvvwwxwwxxwwwwwxwwwwwwxxwxxwwwwggwwwwxwwhgwwwggwwwxxxwgwxwwgggvfxwwwwwwwxwggvwwwwxwxxwxxxggwwxwwffwwwwwxvfgwwffxwwwwxvfgwwxwwvfwxxwwwvwwwgggvgvwwVvvvgVtxvewvvgwwvwgwwgevwvgvwfwfggvvWeVVdefwwWfgwvxwwvwwvwwwgwwwxxxwxwwwwvwfWgwwgvgwvggwxwvxwwwghwwfwwwwwwfEwvfftwgvwfvggvfwgvwwvgwwwwhxwvwwVgxvgwvwwfwwwxwwgfvfEvuweghgGVvwgwvgvwfgggwwwwgwwxgvwxxwwwwwwwwhwvwwgvwwUfwwwGEevWUefwxwwwhwvxwxffwffwwwwwxwwwwgffvwwWevxwwwwwgwgvgffwxwwwwwxxxwxwhwwwxxwxwhvwwggwwwwwUfwwffvgvwwhvffvVUefgwGExwwvvwxxxxxwwxxwwwwxffvwwffwwvwwwxwwwwwUfwwwwfUfvwwxwwwwgfvvwfwwwgvwwgvwVefevUfeffxgxwwguwwxvwwwwgwWvWvwgfwwwvwdfTffvwwvwvwwxgvwgvgffvgeefxxxvxwwwxxwwwwxwwwwwwwwxwwvwwwwwVwwgwhewvgvvwwvwWwWwVevgevfwufvdfTefeefeggwwwgwwwwwwwxwwvwwwwwxgwwwxwwhwgwwwwwwwhwgfwwwwggvgwwwwwvfVvvwgwvxwfwggWgwfWfwwvwfDUVvFfFUVvwxwwgwvXwWgvgvwwxvvwgvffWffvgggWgvfewwwwwvgvffWvfwVffwxxwwxxwvwxwvgxxwgwwgwwhgwwvxwvwwfggvvwgVgvWgwvwvgevgWvevVEVfwfVffUgVDxwwwxvwwwxgwwwwwgwVwgvfwwfvvwvvwvwvgvxvvvgvvfvwvgwVfwfffvwwwwwfwwgvgvwfffwwwvfffgvvVVevfUVfffgwxwwwvvvwffvgfggwhwgvfgwvffUeevffvvUVevwwwwgfggffgvvfvggwxxwxxwwvxwvwggwxfvwvwwwvwwggwxvwgvwgwggffvfffgwvffwwwgfwgwgfvffUVevfgvgUeeffwwgghxxvwwvwwgvvwwgwgggwgvwhgwwwvwwwhwwvwgfffwwvwwghwggeGfvwwwvvhvvwwvfwggwwVfggwdfvefFfUwVVgvvvvfgwwxgwwhgvfvxfvwXfeWVffwfggggwwvwxgvuwwfVfwuwgEvvxwxxwxxxgvvgwxhgvwwgvwwggwgxwvwvxvgggewfVvgWvvugvvfuwWfewVFfffeEfVVggewxxvffhwwwgvwgvgwwgxvfwgewxvvvgxwwvxfvvwwgwwgwgwwFvdVhwwxuXwegfvfWwwfwggefvfvfFfefgdffdgwWwwgvvvwvwfvwSUwwWwwWwwdffgffwfgwvwfwwgwhwwfgwEVeudFwweugwxxxxwxuwwWwuwwwxhvfwxwwwfvwwwhwgfvfdffgvvwwdfvwgwwgxgBDffefgdffdgeugfvwwWwwwxwxwvwwwwwvwgxxWfvwwwwWwwWwwwwwgvgvvwwxxwhfwwgwxgwgwvxwwwwwwwwwwgfwgggwfvSUwvgWfewVDfwfwwhwvgggwgwUfvwUfvxwgxxfwggfevgxgfvwwxwvvvggxwxgffvwxxwwwxxxwxwxvwwwxxwxwwvwwxwvxwgwvhgvefvgFdVwxgwfwfwfVgffgV5xxgwxxwgwwxgwwwxgwwwwffugwwfexxwwwxwvwwwfUxvwvfgxwxhwwwwwwwwwwwvgffwwwffwwvwwwxwxwwwxwwwgfvwwwwwwwwwfwwwwxwxgxwwwwfgwxwwwxxxwxwwxwwwwxxwxwxwxwwwwwxwwxwfwwxvwwgfvwgvwwfgwwfwfffvwfwxwwwwxwxwxwwxvwhvvwxxwgwwwxxwxwwwxxxhwxhvgfgfvxwgwewwfggwgwxxggfWffggeVffffVVvvgewwvggwhwggwwFfvvxdfvwxVwgwfvwWwwvhgwgwxwwwhvuvvfgVvgvfvwwwxxwwxxwwxvwwvwxwwwwhwwxhxxxguwffgVvfvvvggVefvgfffwvFffvVVfFfffwgfvgvwwwvvwghwwgxhwghfxxvwfgfwwvwwfwwgfggvvwwgxvwvfeegwwgvxwwgwwwwgwvvffvVVvggfeefffffxwvxwwhgwfwvvwxfwwwWefvvwwwwvgwfvggweVfvwxxwwggfwwgfvgffUfxxwwwggwwgvwwwxwwwwwwwwwwwvfgvwwfwvfwgffffVefVevwfvfffffffgeUffgwwwvgwgvwwwwwwwwwwxwwwwwwgwghffvvgvvfwwwxwxwwwwwgvgwwwfWfvwwwvwfggwwxgewwwwxgWfwfUUufgFedwUVVvfggwhwvwWgWffvwUVeWefUgfvvgggfwFVFVgWwvwgwwvVfwwwgvvwgwgwwwxwwwxwwxwwfwwwvvwwwwwwxwwwwwwxwwwvffwwWvuwgwgggefUVvgdedgfvxgwfgvVVVeggguvxwvwwxvvvxwwwwwwwgwgwwxxwwvwwwvfwfgeeevvfgwwwgwxxwvwvfggwvveUfgxggvwhvwffvwxfvffVVeFWefTVUfdffggvwguwewwuwveUfWvfvWwgwUfwwvwgfwvwwvwxvwgfffgvgUwfwfwvwwxxwxxwwgfvhwwgwwxfvwwwUWvfgvgewfwvwwuffUeVeVvgWEfgvvwgUfdfefwwvwvfwgfvwhwwwgwwwxwwvwwwVevwgwwVeVvwfwxxwwvgwvvwxxwgwwhwwWwWVuxwgwvfwwwhgvwwwwgvgwVfefweVggVfeefuxvvwwxwwwwwwwWVvwwvwefVggvwwgwwwgvwvgwwgwwxwgvvUvwfggfwfVfxwxxxwwwvfwgvwxwwwwwxwxwxxgwwffwwfggwwwfvfWVuffufUeVggfwfVfuwgfgfVwffwxwwvgwwwvwwwwwwwwxwwwwwxvgwwfvwwwgwgwvgwwwwwwwwwgvwwxwwwwVdfvwwwwgwwWwwgfwwvfeweVVUfwGdffgvwwgwwwwwgvgwxufgfgvwwfgwefxwwxffvvvwwwwEVwgwgffUvgwvwwwwxwwwwwwwuwxVfwwgwwwfwxwvvgwwwwVVwggwvvfwwgvwdfgDVevffwgeUwwwwweUWevwwwwvwwfwwwxxvvxwwgxVfwwgwxhgfvwgwxwgfvxxwwwwxfeewwwfvhfggffwfvwvvgwheVwVgvgUeVfwVffgwwvfwvfvvvgvgwgVfvgwvwvvweeffggwgvwgwgwwwwhffxgVvwVffvwfgfwwwvvvvgxxfhhfffvwwgvvwgwvwwggvgxwwxhfvvfvfvvgwvvwWUUfvgefgvwUVVfefgfwwwwvfwghfvfwwvwvfvfgwwwgvxxxwwwXffefevwvvwgvwwfvwwwgwwwwwwwwwuvfvwwwWffwwwxwwwwwwxvwvwfUUuwwWUfwgffgwgvxwxgwwwwwwwfVegfefwwgwxwwgfwwwxwwwwwWgfwwwgfvwwwwwxxwwwwwxwwwwvwwwwxwwwwwwxwwwwxwxxggwwxxwwwwwwwvwvUUegVffuwfwwwvfWffwxwwwwwwwwwwwwwwwxwxwwgwwwwggffvvwwwwwwwwxxwwwwWgfwwxxwwfvwwwxvvwwwxggggVUUevvwfffwwvwvvfwwwwwwwwwggvgevfffwwvgwxwgwgvwwwxwxwwwgeffwwwfgvwwwwwwxwwwwxwwxhvvwwwwwwwxwxwwxxffgwwxggvwwgwWVeVUeUfffwwwwxwwwgfvvwvgwwwwwwgvwvwwwwxwwwxhegwwvuffwwvvwwxwwwwwxxwwwwwhefeVwwwfwvxgvwwvfwvwgvfffVfeVfveVfffeWfWfuhwvhfgwwwveVWfEUdWgweVvggvwvggggffwgwwweWUuWVuvgvffvgwhxwxxwwwgvfgwvwwgwwwwvfwwgxxwvxwVWfuWfueVvwwfwuC4ffUfeVfueVvgfeWvgvvggwfwgwwgwgwvgvwvgvgwwgxwwxwwwgvfwvfvwvvfwwggwwgwvwxwgwvwxvwxwvwwffvwwxwwwwxvgfwvwgfvvfvgeevwGUTUUwwwvvwxgwgwwxwwwwwgfvgwwgvfwvfwvwwVfWfvuxwwxvvwwwxgwwWUexxxxxwwwwwwxwwwxwwwwwxwxvvxwwwwgwffvwwwwwffffgwggfffffgfewUUUUExwwwwxxxxgwwwwwwwwwxwwwvgwwgfvfvfwxwwwgwvfffvfwgfffwUUfxwxgvggvffwvgwwgvUfgVefVefUfUfeefxwwwgvwffwwgwwwfwffVefwwwDUwwvvwUfffwvwwwwwwxhvvwgvVDUUVvfwxxxwwwwxxfvwwxhfwfgfffwvwwggfvwwwefUffwwfgwUeVefgvgUffwvww3DeffuegfwwxwwwwwwwfwxxwfwfwwwxwvgvwwgufwgwwwxwhvgwwggwgvggvwwggVevggwwfgxggwfwwgwwwvfvwwwwffgvwWefvwwwfwfwvgwgvwvwwfvwfgvfwhffwvwwgwgvgwwwwgvwfgwgfwfvWefwwwwfwvfwwgxxgvgfxgwxwfwwwwwvxvgwwwwwwwwwffvfvgfvvwwfvwwwvgwvffgffvfgffvwgfffwwwwwgwfwwvgwgwwhvwvwhvwwxfwfwwwfwvwvwwffvwwvwwwfwvxvwxvfevxwxwwwwwwfvvfwwxvvuwvffVVfWfvUfeVgvwhwwgxfvfwfgwwvvwwggwwgeefwfgweegwxvwwwwwwwggwggvvvfvWvwxwwxxwxxwwwwwxwwwwwwxwwwgwxggggfvgvvfwgvwfeeffVVvwwgvefvVfwVegwwUVfwwwwwwwxwwxwwwwwxvgxwxxwwgggfwwhgvvwwwhfwvvgwvgwxwvwwgwvfegwwgwwgwwvvwuwwwwwxfffwWwwUffugWeffwwwwwgwwfwWwwwwwewwwwegwwwegWfvwwWfugwwwwwxhggggWvvVfwegggvwxwwwwxwxwxxxwwwwwwwxwvwgvwxwwgwwxwwwwwhgvwffwfvWfwwwfdfgwvdVfgTeVUfwvGVefwffgvwwwwwwwwwwwwwhwwwwwxwhvwvgwxvwwxwffvwwwwvwfwwxffffwwvggwwffvfgwwhwvwggvgvvwgfffgwffwvwwgwvgwvwwvgwwwvghwgwxgfgvffvvgwwvvwxwvwvgffwgffvvgwwgvvvfxvwwwvwwwgvgvwfxvhwwvgwwwvvwgwvwvgvfwwwgvvgvfwvwgeVwxwwwwwgffeVfffvgwvvgvvgwgvwgwfxwgxwwwwgvxvgwhwxgwVfugwwwvhwgwwwhwvwgwggwvwwgxwgwUVvxvwxgggxwffvgwwwwWVvgffgeeffWVfVuvgwvxwgfggvvwfffwweefgwggggvwwGEugvwfvvwwxwwwVUUwwwvvVUfgvxwxxwxwxhffwvwwxwxwwxwwwwwwwwveegvfwggfvfwfVVfwvCCfUfwggffgvVVvvwgfvvwwwxwvvwwgwxwwxxwwwgvwwxwvvgvwwwvvgfwfgwgggvwxwwwwgwfxwwxvvffwwxxWfxxwvgvgwxvwfffUVfgffffffefVwggvwxwwwfgvwgfvgfgVfevgvvgxwweVvvfwwwwwwgffvgwfeVvggvxxxxwwwgwvwwwxxxwwwxgggvgwfvfvgwwfeVfffeUffueVwwgwweVfvfwvwvwgwwwwxxxxwwwwxxgfvwwwxgffvgvwwwwwwwwwwxwwxgwwwwxVffvgwgwwgfwwwwggvwwwxgfgwGUdVEUfUVVeefwgwvgggwwwwwgwwgUefvweffvvfVvfgvgWfvuwffgwwwggwgffgvwwefvgvwwwwwxgxwxwwxvwwwwxwwwwwxwxwxvvwgwwgwfwwgwWUVVefUffwfTeeVffwGfUfggefvwxxwwxwwwxxxxxwwwxXfffvvwegwwfwwwvggwvwwwgvvwwxvuwwwwwxwgwwwufwfufwwgWwwwewfgvxgwwfwgwUUfwwwwwxwfwwufwgwgwwVUffwwwxxwhwwvwwVfwxwxwwwwwhwgvvwwvwwvgxwwwewxgwxgvwwvffVUfwvgwvwwwwwfwffwwvfwwVUfffgwxwgfvwvfwwwvwffwfwwewhxwgvwhwwgfvgvgwgvwhwvgvhfvgwWfvwggwvwhwwwxxwwfwgggwwWgfvwvgvwwWvvvgfwwvwvggvwWUVwwvwwxvvwgvwggggwWUVvgwgfwwhwwwwwgwvwgfgwwxwwxwwwxwxwwwxwwwwwwwwwxwffgwgxhvwvuwwwWgeWUVvwvxvwvxevwwwvgggggUUVfgggegxffwxvvwwwvwvgwwggggfgguwgwxwwvwuvwwgwwwfvvwwwgwgvvVfVwgvvUvvvgggwxxwwUgwxfvgvefwgwggevfffvvwwvgwggvwVgwwfvgwwwgwwgwwwegwwffgfgvfwgvwwwvvghgvxxwwewwwewwwwwgxwvgxwwwgvwhwxgwxwwwwuvwwwwvhwggvwefwwefggwgwwwwwwwegwwevgewvfvuwwwvwwhfvhvvvwvgvvwwwevgwwwwgvvwgfwvwgwwwwwwwgfVfvvwxwXgwwvwwxwggwgvfwvwwwvwhVvvvgfvxwxvfxwgggfgvwwvgxwgwgDUvhvhwwwwxwwgDUvwwwfVvfggxxvwxwvxwVvwwwhwwwxwhwgwgvwxwwxwwwwfwwwggwxwvfxwggfDUgwhwwwwgvggDUvxgfwfVvgfvgwwwWvvxwfvffwvxgUfwwwgfgwwwWefwfvggvwwwwWfffvwffgvwgvwwggvfvwgfwfWgWfvwdfxvwgvewwgwgWvvvvfvfvwgFfvgwWufwwvvwvdfgvVgwvxxufwwfvwdfVwwwwwwvwwfWgVgwwdewxvwxxxwxxxvwwwwwwgggwfgwwfvwwwVvgwvVwggwVSUvwvvwwuggwWgwvxSUwwfvdeVvwvvwwwwWwwwwxxvwwwffevfwwWffwfgwgggfwwwxhwVfgvwxwXfwwfxwxfvvvgwgxvfdfgWwgvxvfvfxwwgfgwwgvggwggvwgffwxGfvfwwgvxvwfgvffffwvwhggwwgvgwgxvvdfwWwwvxwwffwgwggwxxVvwwwvVwffffwgwwxxvxxwwwVeVvxGfvfwwgvvxfwfvVeVVffvvwxfwwwxWwwuggVggvvfgWwvgxwgwvxwvfgwvwwxvvwhffgvweeggvwwgvvvvfvwgfwxxxfvffwffvfgWfvggwffvwfggwWgvxwhufwwfvgwvvgfgwhevvwwgwxuwUfwgvvwvfvwffwxwhfvwffwwwwwgvwwwgvwwwggwwwvgwwvvwwwfvvvgwvwvFVfwwgdewwVvwwvvgfWwWdfvvvwwVwwuwEffgvwwvwfggwwgvwvvwwwvgvggvwvvwwgfwwgfwffwfwfvvgvggfwxwhfwgfwwhwggwwgwxwwwwxhwxhgwwxwwvwfwgwwwwwwwwwgwwwhwwwwxwwwwwwgwhhhwwwgwxwxxxxwvvvwxwwwwgwwxwxxwfxwwwwvhwxxwxvxwxwxvvwwwwgwwfgxwhvwvwwwxwwwwxvxwgxfxwxwxvwwvwxwwxwwhwwfxxxwxvwvvwvwwwwvwxwwwgwgxwwxwwfgwwvwwwwwgvvwwgvvfvvfvfvwWgvvwvffvwwgvvgvvwwwffgwfgwgvwggwvgvwvegwwwwwfwwfwwvwwgwwgwvwwwfvwwhxxxxwwwwwwwwwgwxwxvvxwxwvwwwgwwWvvhgvgxfuwwefgvgwgfwvgwfeggfvwgwwwwvwhfvwgWwfgwwvvwxwfgwwwwwWffwgVvfvwgxxgwwvwgWvvhxwxhvgwgvxgvxwvwwfvwwxwwwggffvWfuwfvwfgvwwfefwfwwgwgvvwVUVxgwwwfwVeUxvxwwvwwgfvvfgWfvxxwwgxwwwwwwffwwxwxxxwxwwwwwwffxxwwwxgwwwwgvvffwwhgwwgUVwvvwwvgVeUxwwwgfwgfwvgwWVvwwweVvgfffxwwxfgvgggwvggfwfwwfffwwffffvfeUwwwwwwwwggwwvvwgwfwuUfvwwggvwwgUfvvxeeUfVfeWgffUfffuwfgWeVgvwffwwvwgvfwVefvWvwgVvwvwwffewvvwwwwuvwggvgwgUffvwwxwwxxvgwwxwxVevhwxfwxfwvwvwGWefgwgTfvwvvgfVwUTfffwwgVwwvwwUwTffvwwgwewWefvgwwfwwwfwvwgwwgffwXvwWeFfffxwwxgwwxhvgwvwwwwwwwwwwwwxwwwwxwwwwvgwwwwwwgwwwgwgvwwwwwwfwwwgffwwvgwwvwgxwwhffwwxwwwwxwwgwwwwxwwwwwwwxwwwwwwwwxwwwwwwxxwwwwwwxwxwwwwwwwxwwwwwwxwwwwfwwwwgfvwxwwwwxwwwwvvgffwvggxxwwhwvvwwwffvwwvwwwwwwhffwwxwwwwwffwgxwwwwwwwvxffwgwwwwxwwvxwwhvvwfwwwwwxwwvwwwfvffvfffwgvvwvvfgwggwgxgwvwwwwgvvgvggwwvvwvwwgwvgwwgwwwwwwwvgwgwwgwwvgwwwgwxxwxwvwggwxvwwwxgwwxwfggwwgwgvwvfwwvvvfffwwvwwvwvgwwwfwxgxvwvvwgvgwwvwwvwwwxxvwwwxxwfffwwvwfvwfwvvwwgwghwwwwxxwvwwwxffvwwggwgwwwvwwvwgwheUffffwVffewVffvwgfvvvvwfwvwwwwggfffgvvfwwVwWggwwgvvwwgwwhwwxgfwwvvwwwwwwxwvxwwvwwwwwxhWwgvwvgwgvwwxhgwwwwXUugffwfgfgvwwXefWvgegfxwfgfgwwwhgvwwwwwhfvgvwuwwwfgggwwhwvwxwxxhewugwwwvfwwwvwwxwfvgvwgvwwwwwwXevvffuewVWvvWfuwwvgwvwgfvgfwffgvgwvggvwvgwfggvwweVwvwvffvWfegxgeVfffvfvgwwgwwwwwwwgvfgvWfuwxvWwvwvwxwwwwwxwwwfgwwfwvfxwwwwggwvwWwwwwuvxwffgfGUtwgvgwwfTEwwggufwweVwwfvfvgwwvwvwwwvgwwfwvgxwvWvgvuvwxxwwwgwewfVgvwuwwWgvwwggwwwwwvhwwwwwfvgwvgwffeeggggwvvwgwfgwgvfxwvvwgfvvwgffvwWVvggvwwWVffvvvgwwggwxvWVwxvgxxxwggfeeggvwwwwwwwxwhwgwwhvvwwgvwxgxxwwgwwwxhfTTwwwgggvwvwwWVfvfTTfgwhgwxwwwggvvwwwwxxwgfvvvvfvgwxwwgwwxvwxwwwwfvvgffggwfvgvwwfxwxxgvgxwxvffwwgWfxxwvgxwwwvvfffffvgwvfgwgfwffVfuwweVwwwvwveVgffvffgvvgwxwwwwfvgwwwwwwgWfxwwvgwxwwwwwxwxxwvggffwvwgwxwxwwxwVWVvxxweVwwwwffffeevVffueVwxwfgfwfwwwwvggffwvfxwvgwxvfwwwxxgfvwvhgfVffugxwvwxwxxhwwvwwxWggvgwwwvvfgwwwgwwwwwxGfggGVeffTfffWwgwwWeefvwvWffwgvgWVeffffgfwwWfwvhfggwgwxgwwxhwwwguvvwwwgwwwwvwwvwgwwwwwvwxwgvgffwwgwwwwxxwwwwwwxgdegvwwVvvwwuwGVVWfgfvfwwVfvwxuwgvgwwwvwXfvwufvgWvwgwxwhwgfgwwxgTfwwWvwugewfgwxwwfvvwwwwwwwxxwfvxwfwwwwwxgvfvfwvggevxwwwggwgveufgwwvfxwwwvvfvevwwwhgwwwwwwfwvgwfvvwweVfwwwggvwwwwwxgvfwfgvxwwxxwvwxwwwgwwwwwwxwwvgwvgxwwwvfwwwgfvfuffvwwwwgfgwwgvwvgwvevfgwfVvvwwxWgwgwvvgwwwwwwfwefwvgwwwggwxxXWwwwgfvwxxggwvwwwwwWfufwwwwvggvgwgfvwwwfwffWefwwxgfvwhvggwwfvgfwwwxgwwgUffvWvgwwxgvwwwUfwwVeVuwwhfwwwgvgwxwgwwwxwfgfvWefwwwwwwwwwwwwwxwvvwwwwxxwwwwwhvwvwwwhvgwxgwwwfwVfFTewgfvwwwUfwwfvffwwwHTuwwWvgwwxwwfgwxwwgvwwwhvfwwhgfgxggwwwwggwfgvxfwwfwvgwvfvwxgwhgWvgwwWgwwvvwxWguvfWgvgwwwgVffwwufwwwwgvwfvuwwfgvevwwxwhfgwwwfgVgfefwxwwefvgwwwWgwwwwwwvhxgfuffgwvvwvvWwwxwvwwwwxwvgwgvwxwwwfvfguvvvggwvwwwVeuwfUVfvfwfwwwgvwvgwvgVfVeefggwvUfegwgfgwwfvfgfffWggvvwvgvuvvfvgwvwfffggvhgfvvgufWggwgwvVggwguwwwffwfgxwfvvwwWVvwvffwxwwggvvwgfgwvwwwWeefwXgfvwwwwvfwwxgwhVgvvwfwwguvfxwwfgvwwgvvwwXVvwwwwwwwwvwhfvvwwvwwwvvwwfxgfvwwhgwwwwxwwwWeevgXefwwwfgvfvxwfgUvwvwfwxXeefwffwwvvvwwffgfwvggwvwxvwwwwwfuwwxwxWwgwufgweVgwgwgwwwwxgvffwwwwxwggwwwwwwwfffwwggfvwwffwwwwwwwwwvwgwwwwwwwxwwwwxgwwvwvvwvgwwwwwwwwwwxwwxvffwwwwxwwwwxwwwwxwwwwxwwwwwwwwwwwxwwwwwwgwwxwwwwffwgwwwwwwwwwwwwxwffwgwwffwwwwwwwwwwwwwwxwwwwwwwwwwvwwwgwwwwwwxwwwxwxwwwxwwwwggwvxgwwxxfvfwwfgwffvwffvfwgwwxefwgwfwefvVefwwwgwwgeeffwfvwgwhvwwwwwgwwwfffffwwgvvwwwgwhfgvffvwffgvwgvxxvvxvwwgvvwvwxhfwgwxvwwffvwwwwgfwwxwwXwvgVevwgffwvghefgwvwwwwefVffvwgfvvgwwwxXVwgwgvgwfggvvvggvwwwxwwxXfvewfwvwwwxUfgwvvgwwvwwxwwffwwwwxgfwwxwwwwwwwwfvgfwwwwwggwwwwvvwwwwwwwvgwwwwwwggggvvxwwxwwwxwwwwwwwwxggwwwwwwvwgxwwwxwxxwwwwgwwxwxxxwxwwwxwggvxwwwvgvvgwvvwwgfvgvvwwwwvwgwwwwwvwgwwwwwwwwgwwvwfwwwwwwwvfgxwwwhffgwvwwwwggvvwwwwwwxxwwwwwwwwwwgfwgWwwwfvwwwffvwwhWgvvfvvfvfegVVvgwgufvvwwVfwwgwwWfvgefvvwwwevwwwwWevwwgwwhWwwwfvwwwwVgvwxvwwwwwwvwxwhfwwwwxhgvgwwxhufvvwwgfvxwvwhvwWfwevfwwefvxwwXfffwwfwxwwgufwwvwwfvwwxhwvfwxhffwwUevwgvwwwggwwwxgfvwwhwWwwvgvwwfwwvwgwewxxfWwwwUfuuggvgvggxgfvgefvwwffgwwgvgvwgfvwwgwvefwwwwgxfwwxvgvwwewwvwgffxwvfwwwwwwwwwwgwwvXvwxwfwxwwwwgvwxvfwwewfvwufgvWffvWfvvhWwwffwwwugwwvwwxVfvvwWwvwwgwwfgwwwvfwwxgvvwvwWfuwwgwwxgvgwggvhfwwwwwwwxwxwxwwwxwxwwxxwwgvgwwxwwwxxwwwwwxwwwwwxxwxwwwwxhvfwwxwgvwgfxxwwxwwwwwggvvxxwwxxwgfvxwwxwwffvwwwgefvwwvwfVeVUwwwxwxwwwvvxwwwwwwvfgxwxwwxwwwwfffUvxxwwwwwxwwwgfvvxwfgfefVfuxwfvxwwwwvfgeVwwwwgfgVegwfvfUUxwxwwxwwvgxVvfxwwxwwwwxgwwxhxvxwvwwwwwwgWugvvwwwvwwhfvfvvwVexwhwwgwggfufwhxvxwxwxguwxwvxwgxVeWugfxfwfwgfeUgegETxhxxwgwwvwwxxwwvfwwwxgvgwgfvUvuffdwxxwgWwwxwfvwwgeewwwVVwwwxfwvwgfgvgwgFvwgfgvhggffVgVDeeUwhwxwwwwUfgfvgUfxxwwwwwxgwfwxwwhvghvxgvwWevwgfvvwgeWfwwfUwwwfgwgfggfwfUfvxwxwwwwwxgfwwwfgwwfufgfvwgffvwWUUffwVDwwxwxxwwwwwwhfwwvvghgvWVfewVVvffwvVwxwxvwgxwwWVvvwgfvvwwgUvvwwwvffvwvvwgwvVevgTTVvvwUefffETfvxxwwxxwxwwwwxgwfxwwxwwxwxwxwwwwwgwxwxwwwwgwwwwfvfffwxxwwwvgxxxxwwgvgwwwxwwwwwwxgffwgfffffVUxxxxwxwwxxwxwxwwwwwgffwwvggvwfUwxxxwxgfgwwfffxgvwwvgfUxxwxwvgxwxwwwffxgwvfwfUuwgVeVeghxxxwwvvwhfvxgfwxxxwgxvxgxgwgwfwxwwwhfwxhfwfggfgvgwfwwwwvwvfvfggxgewvwxvwhwvxwgwgWfwuwwgfvgWffxgeffvGTUdgwfVvwwhwgfwfhxwvfwgvwggvxgfwfwvfwffwvVxwwwwwwvwgvwxhwwgwWVfugwgfxfgvwfvgfwvewvwxffwDUEfwwfveeVfegvxxwwxxxxgvvwwwwwwxxwxxwwxxwwwwwxwwxxxxvgvgvvwwxwwwwwxwwxxgwwwwvwwwxwWfuwwfffvfxvgwxwwwwwwvwTTUeVwwwvwfffVexxwwwxwxwxxwwwwwgffxxwwwwwwwwxwgwfgwwwweVfvfwwwxfvgffwhwfgwwxxgwvwgwfffVUfEEugwwhUvhxxvvvgwfwuwwvuggfggdfxxxwvgxwwwwwvwghwgwwUvwgwwwwwVuvgwvxwfwuwwffgfwVFvwhxwgwvwfegwgfwvvfuvwWgwwxewwfFvvfeeFfUfFvwxgvWVVcVufwVVwwhxgwwfwwwwwwwggwhwwxxvwvxgfwvfwVFvhwvvfvvVefhwxffgfUfvggVvwfwwVfgvvfffeeWTSgVfFwxvvVuVTSeewxgwwwwxgvgwwvwvgWefwxxvhwwfvgxxwxxxwgvwfwwxwwwgxwgvwwwWvvwwwwwwwwwfwgWffxxwxxwvfgfvwwvwfgfwfDUvvwwwwwvfFTefvgffxwxwwgvwxwgwwwwwwwgfxgvwwwfvgVevgvwwgggwgVvvwxwxvffewwwwwwgggvgVvffffgfDUfgfxwVvwwxgggDUffffwhxxxxxxgdVxvfwxgxwVgvxxghwfxhvwwugwwwxwxwewfGfuwugfvfxgwxwTfwgwvfxvfvxxwwwgvghwewvfguxwwvgxwxwgwwgguvgwwWefhxfwfffuxwVgugwV5ugwwxxvxwfwvhgxvWfeWhwuxgFfuxvgwvWwuVvwwvghfdfxwggwwfwvgwfEvWwwUSUvgwwwfegVewguVwvwUSgfgvVdvxwwxxwwxhfxwwwggffxxxxxgwhwwvwxwwwwgfgwxxwwwffwwwwgfxfwgwwgffxwwwgxgwwvgfVxxwwxwwwwwwgffwvwxwgfeewvwwWVfgVgVgffUDgwhgwwgxxvxxxgwfxwwgfWxwwwwvgeewfgvwwUUxgwwwgfgwfWgeufFwwwffxvwgufVVExwwwvwggftwwVVfVUwwwfxxwwvwwgfwgvfwwxxxwwwwwwwwxwxwwwwwwfgwwvgfwvvxwwvfgfvwwwfvxxwxvgvxxfvhvfvfvwgfxvgwwvgETvwUgfwfwwwwwWUUuwwhfvwwxxwwxwwwwwwwwxwwgwwxxwwwfwVuwwwgwwvvVVxxvvgxwxhvwwgffvwwgfvffwwvwgffUUUvgffuwxvffwweUeUDwwxwwwwwwwhvwwfwwfwffvwwwxxwwwwxwwwxwgwwwvwxwwwvgwwwvwfwvwwwwwvwwvwvgwwwwwwvvfffwWevwwwwwwfffhgvwwhffffvgfgfUeevwfvgUeeVUxwhgwwwwwhwvxwxwgfgwwvgwwgwwwwfvgvvwfvxxvfvvwwwgvvffwwvwwvfvwgvgWeVUUvwxWUVffffgfvffVffefgfgfeexgwxgwvwwvxwvxxfvvhwxxxvxgwwwwwwgvgvwfhwgwvwgwgwgvxwfvvwvvwwgvgwxwwgvwwwxwxfvvwffvxxxwgwfhfvwewwVUfxwvxxvwvwgUevwwgVvxwwxvwvwhwwwwwwwwxwwwfvwwwwvvgxgwuvgfgxgxwwwwxwgvuwwvhvfuwwVUfwugvfWfgffwwVUVwwwwewfWwfwewxwxgwwgggwwwwwgvgxxwwwwwwxxxwwxxwwwvvwvhvvwvhwwwwgwwwwwvgwwwwgvhwwwwwwwggwwwwwhwwgwwwwwwgxwwwvvvgwwwwvwvvfwwgvwwwggwwwwwxwwwwxwwwvxwwwwxwxxwxwwwwwxwxwxwhwwwwwwvgggwfwwwwwwwwwvfwwhwvwwvfwgwwgwwgwwwwvwvwwgvwwvvwwgwfwvwwgxxwwxwwwwfwvVxxwwwfgxwxwxgwxwwwwwvwwwwgwggvxwgwvwgfwvVwuxwwxwgxwwwxwvwwwwvfxxwwvfgevgwwVxwvggvWfuwwvgffVgwfwVDEtwwgwvfgvWvwxwwwxwfgwgxggvfhgvwufgvfggwvgvgwwwvggvfxwvwgVvuwwwxwfgvgwwguVETDwgwggvfwvwgfeVgufVewwwwwvwwvwwgVxgwwwwwVvfxwwwxxwxwxggxwwvvgwgwwewggWvfvvwgvgwwxxVvfwwxwwwWwgvwwVgVwwgvhwwwwwwvgxgfgfgfFSEshvwgwgvvVwVfffvfwwwwvVwVwwvwgvWwvwwwVwVvxwwVwVvvwgwwfwgWffgwwhwxwwgwggvgvvggvgWefdgvgvFSEcfvgwvxvwwwgguguwggvxxgvwwgvuVwgggvwfwvwvwwgwgxwxwgwvvvgwwwhwfwgggevVvffefwhwwgwfwvvwwgwxxwwgWwggvwwfgvvvfwxwfvwfgggffUDvfVdUwgxgwgwgffuwwvfvwvgxxxxvvwvhwwgwgvvVwxwvvxwgwwxwfggwvfFwwfuewxvwgwvwegvuWggVfvVwwffVgVVeEfufETfwvWwxvwfWfewfgwxgfwvwfgwfwwvvWwvuvxwwwwvgwxgwxxwxxwxxfgvwvvewgvwwfgwwUwWewgxwwvvwwwwvWvwxwgwgwgfgwwxwwwwwxwvfvfFfffdeffVwwwwggvfwwwwvxwgxxwxxxwxwwVwwwhwfvwfwgvgwwwxwxwwvvwwWuwwUfwwxxwwwwwwxwxwwfFdwgDVfVffffevggvxwVwwwgwgwvgwgxxxwwwwwxxwwWVvgfffvxxxxwwwwxwwwwhgwwwvvvwxxwwwggggwwwwwWVvfffefffgxggwfwwwfgffvxwwxwwwwwwwvwwwxgvwwvfgwwwgggvvffeVfffFExwwwxwwwwwwxwggwggwfvwhgvvvffueVeffxwwwwwwwwwwwwwwvvwgVevgvVVvwwwwwwwgfwwwfffwfwvgffgwgeeUDUfUTTvxwwwwwwwggxvweefgfwxwgwwwwxwwxwwxwwwwwwwwwwxxfwwwgvwfwwwxgvgwvfffwwwwfhwwwwwwffffffxgwwvwgwwfggvvwwwwwgffwwwfvfvggfeeVUVEEDffwwxwxwwwwggfwwxwxwwvfvwwgfggwgfggffffgfwwvwwvwwxwfwfwwvfwfwvffVVwwvvwfvwwwvwwwgfeuwgfvfffffwwWTDtgfUfxwwwxwwwwgvgffwgfgfeWvxwxxwwwwwwwwwwwwwwgggfgvwwwwwwggxwwffffvwwgwvfgfUwwwxgvwgfwgvvwgfxwwgfgwwgvfffvgUvwwVewfffVefUTEeVuwfVTEUUuwxxwxwwwwwwxwxwxwwwwwfwgwwxwwwgwgUuwwwwwwwwwwwwgffvgvwwgVefUwgvfVVwwwfffffgffffUeUEDfeVffEDxxwxxwwwwxvgwvfgwwxwwxwhvxwxwwwwwwwwwwwxgvxwxwfgwgwwxwgvgwvxwwxxwgwwfgwwwwwxfUvwfefgegwwwxhgwwggvUSVWfvwhxxFeFfewxgwwfwwwxwxxwwwwfxwgwxxgffxvxwwxhwvwgwffUeffwgwvggfVVewwwgvvvxhffvxwgvwffdedfvgwvhW5ewwwwghwwwgwvvggwvfgvxwwwwxwxxwxwwwwwvxwxwxwwxwwwwxwwwwwwwwwfwvgvvgwfwvgwwwvhwvwgewwwwvvgvwwvwggfvwvWwvvgvwwwggvfuVegeUVewvfwfUVeVxxxwgxxwxwxwwwxgxgwxfwwfwvxwfgvwwvVwwwwwwwwwwwugvWgvwvgwvgwvgwgwfgvfwgxwwwvggvffVeUwvfgeVeUgugfwwwwwwwwwwxhfffwwvgvvwwwxwxwwwwxwxwwwwwwwwwwwwxxwxgwfffgwgvffvvwvwwwxwwwwxgvgvwwvfgwwvwwggwvwfvvgvwVfevwgwvvwVffeUVfevUfwgWevwvwwwwhwxwxxwxwwvgvfgvgwwwwwvwxvwwwwxxwhwvfvfffvvvgvggwgxwvwffvvgvxwxwWwwVWVUUVfUffVfVwvgxwwxxwhwwxwgvVwwwhWfeffuxwxwwwwwwwgwwwffwwxgwvvguggvwweVWfexwxhwfwegvwfUweVfxxwwwfwwfxguwgfvewvfwvvwwwxwgwwgwwffUVfVwgwwgfvuwwfvufgUEtxggwwxgvxwwvxgvxwwffeWhvxwvwugugvffvdgvgvwxwwgfeVxwwwffxwwweVveVuwvvfVfVvvgvgUTFUDvvhvgfwgfeguWfUfTvgggxwwwfwxwvgvvwfwxwhwxvwvvwgfxxxwwwxxxwwwwwwwwwfffvwxwgwwvwvvfvvgfwxwxwwwwgffwvwgfwwwvxxwvgwwwwvwwVVfffffvwfwwwwvfVffwwwwvxwwwvwwxwxwwvgwwvwvwwwwwwwfffwwwfwgwwwgfvwwgwwvwxwwwwgfgwwwwvggvxggwWUeffffvvfwxwfwwwfgUeffwwwwwwwwwwgwwgwfwwggvfwwwwxwwwwwhwgwvxxxwwxggfwfvgvfwxgWvvwwwwwwewvwwwwhwggwfgfvwwvwwwgvggwfgvwwgefvxwvffwguggUvfvfgewwfUVugwwwxwwwwwwwwwfwwwwxggvwwwwwfwvwxfgvwvvgwgvhgfvgwvgwxwfgvwgwUUgffwwxxVeUwweVgfgWeVwvfvfvvvvwxvwxvwxwwwwwwffgxvwxxwwwgwgxwwxxgwwxwwxxwggwwwxgwwwwwgvxffvwxwxgwvwwVVVxxxwwwxggwwwxwwwgfvwvwwggfwwVgWfvfeUxxwxwwwwffgwwxwwwgffwvwwWVgwwggfffgeUwxgvwwwwwwwwgwwvvwffxwwwvwwwwvwggvVVvwvwwvwWfvvwgVVVVxghvxggwwwwgffwXuvwxwwvwwggggvwgvwwgfvwhwwwxvxvggwfvwwvvxgfgvWefvwwgfwgxvvvvgvgvVUfgWffwwwgfgvgwvwxwxfvwwvvwgUxwwgfWUevvwgvwwwwwwWfwwhfgvwfwefvwewwgfvhvgWVVUUevwgfxxwfvxvfwgwxwwhvWfffgwgfwfwxwwvvwUffwwwfvwwfffwwgUUfUevwwwwffxwwwgfwvwfgwwwhvwwvwwgwvhwwwfwwvwxxwgwwwvvvfgfwwfwwfwwweewxwhWewvvffUVfwXwwgwxvwwVfwvvxwhvggwvevffefffwVgwffgUfhwwgfwfvfwgwvwwxxwgwvgvveeffffwgwvefgfvxfwxxwhvwwwvwfwwvfwxffwvvwwWvgvvwxgfwgfWvguwWefVfgvggwXevvwwwwxxxwwwvuwxwwXVuwwxwwvwwwwgwwvwxxxxhgwwwwvvxwwgwwvvxWWuuvgVwgxwwwwgfegVvwWUuuvwwwxwwwwvwggWwwwgwhgVvwWVuuwxuvVWuUfwwwgWwwWVuuwxwwwuUWfVvwwuvfWWVuuvgVwxwxvwgwxxwwwWWuuwwvggWfwweUWgwwvvxfuwwUUWgwweveUWfuevwwwvvxxwxxxhgvgvwvggwgwwwwxwwgwwwwvwwwwwxxgwwwwwwwwxwwwwxvwuwVvwfgfwwwwwwxwuwvwwgfffffdVEvUwfwwhgxvgvvgwwvvwggWwfuwfffUfeVfvVgwVvwwwwwwwwgwvvgeVWwuvvwgwgwvvgwffdVFvVvfgwvfvvwwvwwwwwwwxxewUfeVgvwgwwwwwwgwWvfevfwwwwgwwwwHeVdefvvgvgfgvghwwvwvwxwwwwufwwwwgffwhwvgwvfxxwxwgwvwwffxxxwgwwgwwvvwhwggfVfvwxwxggwffvgvfwvvfeUwgfvgVfvwwwwfvxvfwwfvwWVvxvwgvwgfVfVUUugvfgwVwgfwwgffxwwwvUwvggwwgwwgVegVUfuxwwwggwwfwgwwgwwwwvfvgUfvxfwgffwgfwwwvwUeVxxwwwwvvgfffVefUewwvwgfvwhvfwwwwwgwgxwwwvfeUWwxwwvwggvwwvfwwwwwxxwwwwwvfhxvxwwwWVuuwwvfgvhwwvfhgvhffwfvggfvvwwwwffeUWwffxwwfvwwwwwwvwffgffvvwwwweUWfvfgxuUWffwgfwwwwvwveUWgvfwwgfVWuuwvfgvhvweUWgvgffwwgfwwgvwwwwvfhwfgxeUWffxwggVVuefwwwWVuefvwggvwwgfVVuefffwwWVvxwvfggfwwfvwwhwxwwwwgxWwgewwxwgwfwwhxwvwwfvghwxwfgwvfwwfwggwwgfvffvvvWguxgUfwxwwfwvvgggwveewwfegggwxxvggwgffvgwffwvwwggvwfwvhwffvgffgXgvxwewfggVffgvgUvxvvwwgvwgxwxwxhwwffvgwwfwugxgvvugVeffvwVewwWvwxwxwgvgfufvwwuwwwwwwWevgvwfwwwWwuwfgwgvwvvwgwwwxwwwwvxwwwvwWfuwwwwwugwwgwwvwfeWwwwwvvfGefgffffwwFUuwhwwxwwvwwwwwwwfvGefvgfggffvwgwvvwFVvgwvvvhvggwvgggwvVvWfUvwgwgffvvgWvvwfeVWfwwwfgXwwxwwwvwwwgvwwwVvwwwGfewgffWvvfwvgwwggwgTfuwwgwhevvfwwxgxggwxwwwgvwWwghvuvxwwwwvvwwwwwvwwwwwwhxxxhvwwwvwwwwwfggxgxwwxwwuvvwwWwfwgfvfewgVwwgfevvgvxfwwwxxvgwwwwfvwvfWfxwxwwvffgeuvgWvvwfvwwxwwwxvvvwfxfffvfVfwfwxvuwfguuvvvgfvwwwvvwfWvwwxwwwwwxwvwwwggvfvxfgwfvVVffggefxwggwwwwuffgfefvwvffvwwwxfvwwWVvwvffwwfwwwwgwwgvwfvvwwxxwwvxfwwghwxwwgvgffwwggwgwvwwffewvffgvwwgfwgEevgwhffvuFfevwwwwggwwwwwxffwfdfgfffwgvwfggvvufFfwvgfwgGfwwwgvuwFfvfugVeVffuwwgfwvWwwffVveVfgfwgwwgdvwgvgwwwwfxxVwfFfwwwvwfuwvgvgWdfwugffvwwgfvewwfgvgeTVwfvwgwgfvwwwwwfvvwwgwwgWffuwxwgxwwwffwwggwxwwxwwwxhWvvhwwwwwwwwwwwvwWffuxwgwgWvfUvwwwvffWWuwwvgVFdUwwwwgvwwwwwwwwuUwffgfeDVwwwfwffwwWffuwwgfvwvwwfvxwwwgFdfgfvwwwggfvwfvwWFduxwwwgFdfUvgvggwwfDfwvwwwwwhWvvgvgfvffwweDVwwwwfDfVewwefVwwwffvegVeffwfxwfwwwwvvwwgwwxwfvfvgwwwwwfgvwwwfwwxwwxwwwwwgwwwvfwhwwwwwwwvvgvwwwwxwffgvwwwvvvvfvVUvwvfVgewgvwwwwwwwwxgwfffwxgffvwffvVeffwvfgxvfVVgvgfwWevwwffWwuwfvwwggvvgwfweegvfwwgwvVgfwwvfvwhgfvvvwgvVeggwwvwwvfVWvwwWUvvfvhwwwgeeuwgfwwwwfvfgwvvvwgwfwvhvwxgffuwfgwvwxwwwwfgwwvgwffxwgvwwwwwwwggwxvwwwwwvgwffwfWguwfwvwvfxvwwwxgvgwVfeVvveXVuwgeVuwwwwwwfvxwvwgfWvVVwgVUVvWvwwwvfwvffvvgwgwvffwvvWVvxvegfWfueVffVfeggvvfevfgvvxwfvvgwhvfVVwgfUfgwwwwwwwwvfwwxwgwUVwwVUUffgffgffvvvgWvWwvwwvgfgwvwvwgvvwxvggwXVvvwwwwwwwwwvwgfwfgvwwxhggxxwwfvxweewwgfwwxwvfvvgwvwwwgxwvvfgwggfvfvwwgvwvggwvwgwwwwwxxffffgwwwvwweewffvwwfgwwxwxwggwgfvfvvwwwxvfffffgwwwgeevvgwfwfgwvxwwwwvvwwggwvwwffwwxwwfvwwhwgffggvwffwwwwvwwwhggfwvwwwwwfgwwwgwwffvxwwgvegwvggvwgfvfwgxfgvehwfxwwwufgeweewwwwhwfwvgwfvvVUfUwwwxwfwvwgvvvWwgVVgggeWVTgwuvgggffVewvfwgvwgwwwwvvgfvfeeUEVVwgwwwuvvgwfvwwfgfwvewvhwvhvfgufFvvffUVfEwwwwwvvvgfvgvfgfVfgfwuvwgfeVxxxhvvvxwWwvvwgWvwvvvVVfvfVfVVefUTwgwgxwwwvxvwfewvwvuvvwwFfVvwxvffwwwwwwwgffgggwufvvVgwgggfwwvewwwgwevvFVeggugvwgwwwgwvwxwxvwvfVUfxgVfTwwwgwgggvxwwfuwwgwvvffFEeffuVwfvwxwwffWgewwwVWfvxwweewwgvwvvvVUegguffeewgvufGvVwwwgwvvvVUefwffwwvwwwvvWwfxwwWUuwhwvGEUdVfvwgvwhwgwwxvxvwgwwwwvfgvvwxggffgvvgggfwfwwwwgfwwgwgvwwxvwxwwwwvwWvwwwwxfwwvwffwwwfgggvfwVfgxfwwwwgggfvfwwfggfgwfwvevvuwfgwwwggfVfufvgvveVgfvfwwgvwwvvfwgguvwuwxwggwwwgffvvfeeVwwfwWVfuwfgvwwwwwwwhgggwvfvggWfwwwvwggwvhxvvwgvveegvgvvwwwgfwwwevVwwgvgwvgvwvxgWVvwgfxwfxgvgwfufWvxfwwwwwwwggwffvwggwgxwwgweefgwxwxxvwvwgwuvugwvfgfgeVfufwggffefwwggwuVTfVehvuwwggvfufWvwgvvwgUfvfwwwfvgfvfdgggVFeefgvwwgfwwvfuffgwwvwwWUvvwwvfefggffWggFUVvfwwwvwheWwwwwvfgfgwvfgwVUeefwwhfgwggwwWeffwwgwvvgeeVffefewGUuwXwwwwwwwwwwwggfwGfftwwwwwwwwwwugvwwwwwwxwwwWgvvxwwwwvwgwwvvVgvfwvwwGffdfvwffvugvggwwWefFVetwvvwwffvwwwxwwxwwgwdfFvfvwwwwgfFVedvgVevwwvvvwwwggfVevwwWwfgfwwwwwgffVevWevgFVedfvwwwwwwufgwvwwgwwgwgVevwwWevwwwwufgwwwwwdfFfffffUfxwUfdUFffUfwwffwvwvvwwvxVVvvvffVgvxwwwhwfvwwwwgwwwwwxggwwwgxwggwxwwvwwxvwVVfgwfgwwwefVvwxvvgxvwgVUVfuUfVVexgwvwwwfffwwwxwfvwvfffvvffvUfgwUfVfgVfevwwxxWgvggvffwwwvfwvwwvwvggguVVfgffuwggUVVvwwgwwwfwwwwUvfwfgwwfgwgfvwgvgffvvvwgwwgvffwWeeuugvffwWeUewggwwwffxwwwwwwwwxggvvvvwxwwxhwgwvgvvgwxwwwfwwwxwxwwwwwwggwwwvwwwwwfgegvfgwxwwhvexxgVfffuxwwwwwggwhwvwwwgvwvfgwgwgffvevuhvvweffefvxvxwuxxxgvfvggvxwvhwvwwggfevuwwwvvffuVwwwxwwwwwwhwwwuvvwvwvfvvWvxwvfgffwwwwgfgwvvfgwgVfVfegvgvefevxwvvwwwwgwwggvffvvwwxxfwwwwwgwwvvxwxhgfxwwwvvxwvfwwggwxwffwwwwvvwxwgwwgvvwwwwgfgfffvwfwwfvxgwgvfwwwxwfgvggggwxgeeffgwvffggvwwwwwwwwgwgeevvwwggvvfwwwgeevvgwwfffvwgwwwvwggggvhwfvwwwweegwwwggggfvgggwwwwvwwgfffvwwwwwwfvwwwwwugvwwxwwWeevwWffvwwwwhxxwwgvewwgfwvgwwwwfugwvgfwvwxfgwwvfwwvgWUuufgggwwhvgvwxufgWhwwfVdvfWVuwwvgvvfevggggvewfVfwvvwwwVVVUeteggwwgvefvvwgwwGffvvhVvwwwffvwffwwfgFEuuVffvwweWvwxvwgvvxwuvGUvvgggwwhxefwwwTTgwwwxgvwwwUUvwwFeewvwvgggvwwwvvwxwwwgfvxwgeVvfWwuwwwwwwwwwwwwwvgwxgxwwwwwwwgwwwwvgVefffuewfwwwvvfgwggwgwfgvgffwwxgeUgfWfegwfxwgfvwwwwxwwwWVffwefvvgwwgwvvffgvgwvwwwfgvwgvwwwffwvfvfVefffeevfwhwvfffvggfwfwwwwgggwgfvvwwwxwwfvfwwwwwwvggvgxvvVVevvfeeugvwwwwwwwwwwvffgwwgvwggwwwgvvwwwVwWgwwwwgwwhgwwUvvwxggwwwwwwuggwwxwwxfgwwwvfgwgVgvgwvhhgwvwwvxvghgfwgvvgfvvfgfgvvgfggwwvvwwwwwhgfgeeeewwwfwgfwwwgfvevwewwwxfvfwvvfggffvwWufwffvfggffWfWvwvgffvwgvgwgWgffvfffxwgggwewhwgvvwwwwgufvvgweefgwfwgwvvWvwwwwwfgwvwwwxvwvgxwvgwWwvgvwwdfFvfwwwvwwwwwgwvwwxwgxxwgwxwwhwgwvWvfwwwwwwwwfFffFwwxwgvvwvfxvfveWwffvwdVFfevggfgwwwwwwwvwgffvgWffevfgfeVVfuewWwwWvwgvevgwggxwvgfvggvuvfgfgwvgwffFffFvggwffvfgvvffwwffffvwgvgguvwwwvwwvwwvvfWfdeVtwvwgfffvfgwufgugwuWvfgwfwwwggvxwhgfvwWVvwWeegwwwxwwxwvvvfWVvwWVuhwwwvwvwhhgvgvvgggvvgfvWVvwwfwfwwwgFfvgedvwfvwwwgfwwgffvgwxuvvwUffgwwwgfvgfgSUfvg6EvfwwwfFfvgevvxwhvffgxhVvxxvvgWgwwfvuggwxwxuvvwUffvggvwvWwgdUVeg7EvfwwfwVwwUwgefgggggwwxdeFffeedevxxwxwvwxxwwxwwwwwwfwwwwxwxxwwxxhwwxwwvwvwfwgwxgwgwxwxgwwwvwwfwwvwwwfvwgwwgwwfwvwUgwwWgwgwgeufwVfwwwwwgwgvfvvfvUUfvfUUfUffevwxwwwwwfwvwfvwwwwwwwwwwwwwwwwwwfxwvvwvwgwgwWugwvgwwffgeeUffUUfevxwhwhwwwgffgvwWggghfwgfwgfWUeVggfgxwwgfwwwUfwwwwgffwxwwwxxwxwxwUfwwgvWVfhvxwwgvwwgvvwwggwwwwgfwwfwwwwVexwwwWfevxgvfefgfwwWUVugfwwwwxwvwhffgVTEuwgfffffFDuwwVewwwwgffvxfwwwwwwfwwgfvwwgwvwwwgfvwgwwwwwvwgvfgVTEuvffggVeFDwwwwffwxwwwwwUewwVvefffUUfvfUeUevxxwwwvwwgwwWgwvvfwfxxwwgxxxgwggwwwuvgwvxvwhwwwwwwwuvfwwwwwwfggwwwwvxwwgWwwvvvgwvwWgwhgwvuvvUUVwuvgxhggvwvuvv$UDvvfvg5fTffxwwxggwwvvufwfxwxwwwwwwvvufvgwvwwwgwgwwvvwhXggvvvvvvv5fTvugwg$UDffwwgwgvgvwxvgwwwgwvgWUeeffvgvwgfvwwwxvgwwwwvvwwwwwvwwwxxwwwwvwwwgwgfggxwxwwhwgwgfwvwwwwwwwwggwggwwwvwvvxgvhffffwvwuefgwfffVfvgVvvwvwffffVfvgefvvgefvegfVwxwwvvwgvgvgvvwxwwgwwwgvggfvhvwxwwwgvhgvwvgfffgffvgUffgfVffffffwvwvwfvgwwwwwwwfufwVefWevfvgvvfufvxwvwgwffwwwgggvevuwffgxwwxxxxwgwwwwxvhwgWgvUfvwfvwwvvgwfxhfwgfvvwVfwvwVfugwwwwggffvwwgfVfVevvffgvgwVGUuffUVffgweegwgwwvwfUeevEeVVeVvffeWwvwfwWVfwfvvvffwwwwvgfxxfffefwVewwwVfuvwxwfwdfgwgwwfvgUfefUefUffvveeffvggVgWdgfwwvwvvwgXggTVffvgVvuWwgwwvgwwwwgwfvdfwfxgvwgevfwhvxwwxwwwdfwfwgvwgEffXgwvefvwgxhvxxVwvxwfvfwggwxggwheexwwhgwhfVuuwvfwwwggvwgffvvWwvuvwFeexgwgvufuxgefufG5uweewwhgvxwUfuhgwfvgvgxgwwfvvggwvfwVVvggvvuwv6UewgwwgvgvhgefufvF5wfggFffvWwgfvweeVwWwwxedgwgfeedvwvvvvvwggvvhwwfwwwfwwwvvghwhggwwwvwwxvgwgxxvfvgwwvvwgvfwhvfwvvwwfxvwwvwgwwvvwwwgghwgfvgwwggffxwwffwwfffvfwWVuwWUVvfvvwwffUVevwwvwfggfhxfvfgwwvvwfgfggfgwvvwgwxvfgvggvwvffWeewWeUvfvwvwgffUeevwwvwgfwwgvwgfffffffgwwwxvvggwxvggfvvgwgxwggfgfwvuwwwWwgfwwwwwxwwxxhwwwvuwwwgxwfwvvwwfwwvvwwxgwgvwwxgwfvwwxwggfwvwwvvwwwwgfwwwvvgvfggggfvvgFVvwwevfwwfgfffTffgffggUwffgwgvwvvwxgggfvvwvgwvgwwxggwewwxhgwwvwwhFVvwwevgfwfgVffTffgvvggevvfgvffvVvwvfwwffwwvvfvggfgvwfvgwvwvvwxwvvvgvwgvwwvvvfwwxwxwxxxxgvwgvxvwvvfffwfwhvwwwvwwwwgwwgfgfwwgwvwwwgwwvfgfwufwgffwvfefVfwfvwwhfffegvwfffffvfffVVfvfwwwwwwvvgwwwwxwxgwwwwxwvwwwwhwfggvwgwgwgWffefvwvwfVgveffffVffufwwwgvvfwgwwwgeeVgvgwwweeggfvvVgfgvhghwwwwwvvffwwwgfvwfeVfhwgwxwwwwxxxxvfvwfwgfvwgeVvwwwfgwwgwvhwwgfffwvwwgffffwwwvwvffwwwggvgfeVfgfffvfffgfffvvfvffff5USffvwvggfVS5uwwgfvvffwgwgfvwgeVvxfwgfwvwwwwwwgffvwwvggfffgvffvffff5USffwwwwgvVS5uvggfvwwgVfewvfffVfeffgwVfexfgVfeffgfgwwwgwffwgvvgfwfwvwffgwwwvwxxvgwwwxwwxwhgfwfwwwfggwfwwwwhwwwwwvvffgwwgwvfwgvwgwevgwwxwfwfvfvegwfWfgggwefwwfwwvfvueVgWffwUewffwvfUfeVvewghfwgVwgvwfWwwwwwwwwxwwwfuwfWwgwvegwvufufefggfevUevvvgwwvVVegfwvvvfWggfuwfwwwWvvfwWggvffvgwWfvfwgwwwxwwwggvwwfxwvwwwwwvvwxxwxxwxwxwwwfwwvwgwgwewuwwwwwwwwxwwxwvxxxwwwwggwwgwxwvwvxgwwgvwfwuewwfgWwgwevvWVvwvgvVfVwgwwgUeugwugefvfWvwwwwwxwwwwvwwwxwxwwwgxghxvwxwvwwgwgfwwwfvVUVwgwhgefuxgfgfUeeWwwvVUVwgffgggvuvgwggggvfwwhvuvfvxfwwwwgwggwffwwwwxwvwxghwwvxxvgwwwwwvvvvgvwvvwwwhwvwvvwgwwvvwwwwwwgwwwfwwwgggvvwwggwggffggvfvgwwgwvUUgffffvwgUUgwggwffggvggvwwwgwwgffvgfwwwwvwwwxxwvwghwvwgwgwwwvvUUgfffvvwgUUgwhgwffgfvwwwfffvwvwgfvvgvvvxgxgwvwwvvxxwvwwgwxwwwwvggwxvvgffwwwwwgwwwwwwgwxwwwxxwwgvwwwgwwwwwwvvwvwgffgwwwxgxwwwggwgvvgvvxwwgwwwgffuffvggWVfvvgEEefveefwwWVVVvevggwvwwvwwwwgwwgeewwggwwwwfwwwvvwxwwggvvwwwxwwwxgVVfwwTTwwwffgfffvVVvwwwfvwwWgweegwgfvwwfwwfeggwVfvvwwwwwwwwwvvvwvfffwxhhfvggwwvwvvgvwghwvvvwwxvfgvxhxvwwvgwwvfvffgggvvwvvwhgxwvggfgwxwvwvwfgvxhhwvggwwgffvxwwffwwfffwfffUegfeUuwvwwwgffVeUvwgwvgwgvxwwgfwvhwgwwvvffgwwvwvwwhwxwvgvfgxhwwffVUfgfUVuwwwwgwfVVUwwgwvgfvxwvgggfffvfwgfvwwffvvwvvwvgwhgwggxwvwggffwvwwwwwfvwghxwwwvhgxhvvvwwwvwggwfwgwgwwwvwfwwwxwxwwwgwfxgwwhvwwwvvwvvvgwwvvwfvfwwggfffwgwwfffffUUgfvgfvwvwwWUuvwwfwxxxwffwwgwggwwwwggwwwvvwwwgwxxwwggwvwvwgxwfffffUUgvvgfvwfwWUuvwvfwhgffvwgwwfffwvgwwvwwfhvwhvwwgwwwwxwwvgwfVvgguffvvgwfwfWvwwgwwxwwxfgfvGfvwwwffugwefvfwgwvfvwwvvFefwwwvvggvvwfUvffvWVwgwfvfVvVUdhwvVFwwvvWgeefgfVeUUdeegfwfwgffFgvwgvfgvvWgvwfvffuggffvfgwwfgvwfuVefwwwwwWwwfTUfgVfUUVudfwwWvvvgefWwwwwwfffVfTVegffwfeVeffgfdgvgwvgwgwvfwxxwwwgwvwwwxwwwwXfeffvwwwxwxxwwwwwwwwWfeVfuwwwvgwvgxwxwwwwgwvwwwfvfffgvxwwxwfwgVefeuhvfgwwgwfVVeUwvvwwgfggfwwgfgVefwwwvWTEEEtwwwxwwwxgVeffwwwfwggwxwwwwwgwwwfwffvxwwwwfffffwgfgfffgvwvWTEEExwwfgfwwxwwVgeeUwwwwwfffeUgfgeUUUvvwwvUfggvwgfggffufWgwvwxwwxxvwwxwwxxwvggvgffeeuffvwgwvgxwgwvufuwwfffgvVVfwwwgVfgwwwgvgfffdfWgwfdexwgEUgvuggvgvffgFVfveVewwwwwUTUVUWgvwwwwfwfvgVvffufwvwgwvwwwwvwvvvggfefvvFVfvgfgwgfWVFfffUfgggweeTUefwfvgffgfgwvgffvvftffwVfVeVfwvwwXdUfffwvwwwffwwfUvwwgvgvwwwwwwwvwwwwwgfwwwgfwvvwwwwxwwwxvgXvguuwwwwwhvvgwwvvvwwwwwgvwwhVfwvvggwfUevfWUVeevgfwxwfffgwfgWUeUefVfvWddfgvgwwWffwwgfvwwvwgwwwwwwwwwhfgfvwwwwvvvwxfvgwwUvggwuVFTVddffwwwWUefgfwvWfVVwwwxwggwwwgvwxwUVfvwggwwwufvxxwwwwfvwwwxgggvgvvgfgxwvxwxxwwwxwwwwwwgwvvvgggxxfwwxwvfwvvgwxwwwvgWgwwwwfvwvwwwghwwwufgwwggwffwvvfvgvggfvvwgfwvggvefeVfgedgfwFVfvgwvwgwWgwfwugggxgvwwhwvgwwwvgxhwwwgggwgwgfvvwgfwvffveffVWgedgwgFVfvfffgggvvffwwgvvfwggvfvffvgwwuvvxwggwwwfgwwwwfvvwwWVvwwwwwxwwhxwwwwwwwfvwggggwwwwwxwwwwfggfwwwwgwxwvwwwxwfgwxwwgwvwwwgwwwwfvvfeeVgfgvfwfVVfwwvfwwwFEefvfvWVvwwgfvvwwxwwgwwgggfvwvvxwwxgggfvvwwwwwvvwggggvfeegwwUVVVvvwGEuvwvevwwWvfefwwwwgxwwgvweegwgWffwwfwwwvwwxwwggwgwwwgefvwwffvwwwhwwwwwwwvwwwwxwWfvwwvgvvgwwwxwxwwxxwwvffvwvwwwwgfgwgxvfwwwwfgwwfgvwvfwfVVuwgeUVeVVvfwwWvvwwgvUeDVUVwfgvwFdVfvwvwwvgwvUgggwwwgxwwwwwwegvgwwxwWugwvgefwggwfvffUUFdVvfgvgVUffvvxgwvfwgwwwxwwxwwgvufwgUfeVwUvvwwggxwwxvffvWvffvvwggWvfvvwgwwwxwxxhwwggeVgvvvwWfffvfvwwfwefWfewhxgvwvwgfweufvwwffvgfUxwvvggVwvvvWffwVUvfWEefvvfVuwvfUggfwggVffeeFvfvgeeegvgvewwuwwgfgfvvvgwgvvfWfewhxgwvwggwvvvevvwwVfuwveUVgfwggWVfuVVfvwWdeewwwvvuWwufvgwxFVevwvugvwgfggwFgVwefgwwvwwgveggwwxwvfufgugwwwwwwvwwvwgggvggvwvggvWwwwgvwvgwwwugvWwwwwgugvwgffwvgwwwwvffvggfVvwwgvevvgwgvvwefUVeUVvvvvvgfwuffefwvgvvwwgvwgwgfvfffgwwwwwwwwvgwwvvfwgwfwwgffgwvufvfvUVeeVuvuwXggvfgfVgfgwefwfWgfvewvwwgfgvggWgfwuvvgwVvvgwgwwwwxXfVVvwwwgffwwgwgvwwwwxxxwwwwwwwwwxwwwgvfgggfvvwguwgUUwwwxwvwGFvvgvwwwgvwgggVVVvwvvgffwwgfwvwggeevffVVffvuggVUewwfffggVUeffwwfffvfvvwwwwwwwgwvwwgfvvwfvgfUUwwwwwuwGFvvwvwwwxwvgggfffwwUUfvfffffvvwWUefwfwwvwwUUddfggUUgwvfvgwwddfggWwwwwfvgwwwwxxwxhwwwwwwvvwwwxxywxxxxxwwwvvwwxwxwwwxvvwwwxwwwwwxxwwwxwwwwwvgxxwhwwxwwwvwwvwxwwwwfwwwgvgfvfwwwvvgvvffwxwxwwwvgwwxwxxwwxwvgwwwwwwwxwhfwwxwvwwvfwvwffygfwxwxwwwwvvxggvgwgfvwwgggfvxxwhwvwfwhvvvFFexhwxvxhwwwxxvxwwwvvxhgwwhwfwvvwhvvwghwwvfgwggwwwwgwwwwwugWvfvVFeuwvwwfwWvfwfffvWvvegggeTfWvfggwgv&$CcgwgfwwwxXvfwgggwxwvgwwwwXvgggggwfgwghwgvwxwvwvxdTVxwwwxwgwGVfegwwfvxvxvvvvxfffvvwfwwxdUVgvdTVfvwwwwxgwwxxwffwxwwvvwxxxxwwwxxwwwwwwwwwwwfwwwwwwwxxvwhwgwwwwwwvvwhwWeuwwdfUefwfgwwwgwwwvgTVUefvwgvweefEexxwwxwxwwxxxwwwwwwxvvwwxwwwwwwvxxwwwwwxfvvvfwxwvfvwggwhvgwwwxxxwwwwgwwfwWVfVVvgwwwhdvwwwwwwgwwwvgveeggfwVUfwwxxwxwwvwxwwwvwwxxwvgwvvwhgwwwfwgxwvwwwwwgwgwvwvwvffgVuvfffvwvfveffgfvgUffWgvvffffefVVefWUUefVUfeUfVUvwwfxxwxvwgwwwwwwwgvvvfgwwwwwgwgvwvxwwxvvggvgwwVwwwfgwgfwgfggwwffvvxwvgwvwfvfgfefgfwfvWuggvfvwhwvwwwvwwxwVwvvguffuvxwwxxxggwwwvxxgwxvgwvvwwxwxwwwxxvwuwwfwwwwvuwvvggvgwggVvfvfvgfufwgwgWfffgeffufvvwgvWwvgwgeVefeefeUfegUeeVfxhgvggvgwvwwxwxwwwxgfgvwfvvvgwfwgvgggevgwwwwgxwfgfvfvffgwfwfufwwVgfvgffgfvgvgfgwwXwfVvfVgwwvVvvgwfwwwxwwgwugweVgwfWVfxwxwwwxwxxwvgxgwwgwwWwxxxgwVwgVgwwwxwhwwwwwxvwvgweVhwuxVVfuwuwwffwwewVUVuWfwwvgfuvWfef6\u0014CcwvVgVFeefvxxvgxwwvgwwgwxxwwgwuwuVgvwxwgwwgxvwvwwxfwVFeuwvgW6eufwxvxeeVxwvwxwgeeVUeUffwvwwgvwggvvvvwgffffwgfvdfUffwxwvvwvxwwwwwwgwwxwwwwwgvwvvwgvWwgewwwvggvgwffwfvwwvwwvfvUVufguwgeVVfVwWfvgfwvuvfVeffufegFeUTefeeufVUeuffeVVdeUTwfwwxwwvgwgxwwwwggvgxwwwWwwWggwwgvfwvwvffwgwgfwvwwwwffwwfwvWgfvfewwgvffvfgegwgVVffwhvfwvVgfVvVgfVgVvxxgwvxxxwwwwvgghfwffgxxwwxxxwwwxwxwxhgwxfxwxwwxxfwfhgvxwfxwxwwwgvhvfwxxwwfhvgwwgwffgweVhWfugfgvgwveVvgfvfgwfffgfwffgffhfUvggwxwghwhvvwwxwwwxxwwghwgvgfvhvfwxwffxfvfxwxgxwgfgfvhvfwvgwwffwwfvffwfVewwffwwgvfwfVewwxwwwwwwwwhwggfvvgvwfvgwxxwwwwwwwghwwwxwwwwwwxwwwwwwxvwwwwvwwwwwvxwwvwvwfgvvgvvvgvwvvfwgfvggvffvvvfvvUUfgfwVefuVVvvfvvvvefVfvwffhgvwhwwwwwxwvvwfggwvhgwwgwwvvwwvgwvwgvvffwggfgvvfvvgvwfgwvwfwwgwgwfffgfggggwgfvvwhgffwvvwwggfvwwwwwwwwxgwwwwwwwwfwgvgxwxxxwgwxwwxwwwwwwxwxwgwwwwwwxwwxwwvwvwwwxwwwfvgvvUfwwgVuwgffvwfgUUvwfffwfwwwwwwwfffvgwWUwxwxvwwxwwwwwwxwxvwwwwwwwwwwwxxwwwvgwxxwxwwvvwwwfwwwvgwwwvfgwwwUfwwggxwgvwwwfUwwwwwwxwvvwgffwwwgfgugevvwwxxwxwwwwxxwwxwgxwwwwwwwwwwwwgvwwfgwwgwwgwwvwwwvgwwwwfwwvgwfvwgwfwuWevewWvegwgegwwVuvgfweeFfDfFeggwwwvvdUTVefvfUfwxxxwwxwwwwwfxwwwwggwwwvhvwvwgwwwwwvwwvgwvwwgfgwfewxwvvwgwfvvwwwvguWvUvWgvfgggggwvgvuwUvfgwwggfvvgvwwwwwgwfwUfwffwwfggffxxwwxwxxwxfwwgwvwwgvwxwwwwwwwggwfgwwxgvwfwwwwwfwfgwVVgwfwVVVegfgwfVgvvgfVVfVeufgffeeUgvufVUUeffVffVVfUuwwxwgxgwwwwxvvvgwhwwvxwwwggwwgwvwwwvwwgwxvwwvgxwwwvWgwggwvggvfvvvffefgvvwvuugvwwgffwfvgfwvwgfgfwxvwggwwgvweVvwvfffgwwwwxwwwwgxvwxwwwwwwwwwwvfgfgwwxwguwguwxwwffvvgvwwvffffvffvgfvvfffffvWUVwwWeffffvvfVUVUwggvgeUffewwwwxwwwwwxwwxwwvwwwvfwwgxwwwwvgxvwffwwgfwfwgwwwwwfwvfwwwvffxvgvffvffggvwwwVfwwwffvfvffvgwffgwgvwwxwwgwwvvvgvvfggvwffwvxxwwxxwwxwxwvwwwgwgvxwfwwhwwvgwxvvwggvwfwxwgwvgwwfwwwwgwvgwffxwvwfggvwffwfggfvvvfvfWVffgggefVWUuvvfgfwVfVuggfffxwwgwwwwwwwwwwwwxwwxwwwwgwwwwwwhwwwghvfwgvfwvwhvvvvgggvvgvvwgvgwvgfgvvfggwvgwffwwffgfgwwvgwvffxwwwwwwxvvvgfvwgffvvgvvvvwwxxxxwxxxxxwwwxxgwwwwwxwxxwvgvvwfwxwwvvvgfgwffffwwggwvgvgwggwvwgwwgvvfUVfwfffgggeUffvvgffgvggfvwwwwwwxxwvgwwwwwgwwggwfwwxwxvffwwwwwwxffwwwvwwwwwfwffvgvwwwwwwwwwwgfvgvwffwwwwwwwxxxwwwxvwvVwvWwwggVFeuxxvggxxwwwwvVwxwwwvfwvxguvgvgwvgxxwxvfwvwwwwgvgvxxvvfwfwwfgWFetwvVwwfwwfwfffvgguvVvfC2$gguxvgwfggFeugwvfvwvvwwxxwgwvhgwfvvwvgxwvwwgwgwvhwvwwxwwgwgeeFxwwxwwwxVFetgwvfgweUFgfffeTFgfggvgxxgvwvgwfwwvwwwwVfvfxwfvfwwgvgwvxwwvgxxggwwwwfwgfvwWgfvfgwgwfgvfwvgwwwwwVfvfhwgvfwwxvvvfffygffxwwwvegffvvvVfwvVxwwvvgevwwwwwggvwyxxwgwxvffwgvevfgwgwgxvvfwvgwwwwwgfvwwfgwwxwxwwgvvxwwhfvwghwwwgwwwwwwxwfxxwxwwwwxwwvwwvwgwfvfwfvWfvgwfVgvxwwxwwxxxwvwwwxwwwwwggvgfwwwvvwwxgwvgwvxxxwwhwgwfvvgfwggwfgvgvgfvfgwggwvwfgwVUUefVTEvegefffugfffffgfWwvfwxwwwxxwxhvwvvgwgvxxgwvxxwxwwwxWfuweVwvwwwwxwwwwwwwgxxhfffgvvfvffvvvvwwvgwwgvvfxwwwwwwwxxxwwwwwwgvwwwvvffeUVxwwxwwwwwwwwxhvwwwwfwwwwxwgvwwwwwvvwwwvvwxfffwxwwwvwwwfwffeUVxwvwwwvvfffffwwfwwgffffvfwffeUVfffff3\"3ffwwwxgwfwwwwxwwxxvvxwggwwwfwwwwfffwxfwwwwwwwwwfwwUDUwwwwweUVwwwwwwwwwwwwwwWVewwwwwwgffvwWVeuwhfwvvvvwgvvwvwfegUeUfUfVwwwxfwxvwwwwwxwwxwwvwfwfwxwvwwvhwwvwwWwWwwgvvgxgfgwvgxwwffgfgwgffffdfVuwWgwgfgfevfVVffeUfgfWeeffveveUUVVdVEeEVVTuwwxwwwwvwwgggwwwfwhwffwwfwfggwwugWvggvvwwwgwgfwuvwgvvwwgfvwfggvffgevwwfxvvvegwvgfuvWfvfvfffuvVfVefgfVfxwwgxwwwwwwfvgfffgfffwwwxxxwxxwwwwwwwwwwxwxxwxwwwwwfgvwwvwvwwvvwgggwwwgeevwffgvffwgvfgffffffgffgggwwgwgggWeUefUVUfUffffUVVfxwwwwxvwwvxwxwwwwwxxwwfgvfvwwwwwwuvWvgwwwwgvvwwwffwwwfwgfwvvffggggffgvffvvwwgffwvhfvffgffwvwVfwwgvwxwxwwvxwwwwgxxvwwgwvwwxwxwwwxgxwwwwwwwvxwgwxwwwwwwwwvwxwwggfxxwwwgwvxwwweUxxffdVVugwvwwgwvvggVVdVVuwwwwfVfeExxxwxwwwwwwwxwxxwgvwxxwwwwwwwxxwxvwxvfffwvxwwwwggfgwwwgwvvxxwvwxwwfwwgfeVVVwwwwwfdwgwvwwvvgfgwffwwvgfgwfwxxwwwwxwxxxwwwwwwgwxxhvwvgwxvwvhwwwxwwvgfvgfVwvwfvgfufggwffwgfgvwvvgUffVfffffgVUUefffwTEvegvuggvwxxwwwgwwwwwvwxvgxxxwfvgvvwwwwvgxwxxwwwwwwwxxxeVwxwwweVwvwwwxfffwfwwgvvfgvgxwwggffwffwvwxgwwwwxvgwwxwgvvwgwwwxxwwxwxxwwvwxxxwwwwwxwwwgvvwwwwwxxxxxvwwvxxgggwxwvwxWhwweUUvwgffwxfefvvgwwefVUefffwxwgfgvwwxwgwxxxwwwwwxwwwggvxwwwwwxxwxvwwwgvwWfegwfwhgwxxfgwwxwwvfwwfvfwwwwwwxwwwwwvgwwgvwxfwfuWVvVwwxwwwxwwxxwxwxwxwwwhwwwwwwwgwwwwwfggwgwgvwgwwwwvwwggfgvwwggfvWgvVvfguwwvuVwwguegvveVVedeUdwfwwgvwdFEfFfvffUvwwwxwwwwwwwwwwvwgvwggwwwwvwgwwvwwvgwwwfwuVfwggwwfvvgwgvwwwgvfwwggwwWVgfuuggvfwffvvgWguugufgwwwfwvgwgwvwwgfgwggvfUewwwWgvgwxhxgxxgwwwfxgwwxxwvwwwgwwxvvewWwvwggwwWwwhfwwVwwwVwVfvfvegwgffgvfffgfwffgVUufffUVvvgeWeffUVVVegwfgwvwwgwhwxvwwwvwwuwvvwggvwgwuxxwwwfwxWwwxwgwwffwwvwxwwwwhfvvwgfgvwWvgUgwvvvgvwgwuvxfvUgvwVuewwguwfxxgxwgggvgvfvvfgugvgfufwxwvxxwxgwggwgxxvggwgvfwgwvgvwwwggvfwwwgvvvwwwggwvfwuwxfWgufvfgvgfuwgfVfuffeVwgVeeWfvwgfVfeVvWwvwVeUfexxwwxxvggvwwwgwwwgxwwwWwfwxxwwugggwvfwwfgvgvggVgffvfwwwwfufwwfveweWfffvgvgWfwvwgvffvVgfwwfgwwfwwwhwvwhwvxvwvfwhwfgWVexhwwgwxxxfwwwwxvwwxgwxwvxvwwhwxhfvwwhgvgwgvfgvfvgvfvVffgVDTuwwwwfvWwwwWgwvwgfwvweUffggvhvvgfVDTeffWfwxvWgvhfvwhwvwwvwggvwhfvgwgefffvgfxxwxwvwwhwwhvwwwhfvwxhfwwffwwvwwfwfVfwvwewffwevfvxggwxwvwvwwfgvwwgfffffwwvwxgxwvwvvwwwwhxvwwvvwwxwwgxwvvvwwwwwvwfvfggvegvgwfWufefUfeffwwwwfwwVwfgfvffgvwvfffgffUvfwvgvUfefgvfvffwvgfWufewfwuvwwvxgvgvgfggewVwfwvewffvevffwwwwwwwwwxUvvvgfwuwwvvwgwwgwvwgvgwwgfwvgWfWgvgwwgwgfffvwvggwwhwwfgwvghvgwWVfwhwwxwwwxxwgwxwwwwwwwxwfvvxwwggwwwwxwwxwwwwWvuwfwgeVgvfwFDEuwuwwvghwvwgVgwgvvxwwfvvWvVvGDEuwVWgWWffUvvxvgxgwffgwxwwxwxfvvgvgwVffvwwvggfgwvhwwxwxvvxwghfgwwgxgfgwvwwvwevvxwfvvfwwwgvvfvwVwvvwwwgwwwwvfwwuvfggVVvwwdfEvfwvvwwgwvgwwwfvwgwxhxxgwgvwggwxwwxxhwgfwwwwvggwgvwgfhgfwwffuvvffgUUVfeUfFeewgwgWfgfwefffwgvfwgWgfevgfeTUEeVevVewUeffewgwggUvwwUfWwuwevwxWefeVwVeffVvffvVfufvvwvwuwwhwwvwgvvUVfeWvvvwxeefwghwgfffvvxwwgfwwwgfffvffvvggfvwgffwwwwhwwwvwwffgvvwgfgwwwxwwxwwwwwwwxwwwxxwwgwwxwxwwwwgwgwgwwxwfgvwwwxwWvfwfgvffgvvggfgvwvwwfgWfgvgfvgffvwwvwfvvgffvfggVffVffgwgfvwfgvgvwwvfWgggwvfwxwwgvVvgWfvvfgwvwgvwxgvvwxwwvwgwgvgggggwWvfwgwwxvgvwvvwwwwwwwuvfefwwwgwvegxwwwxwwwgwwwwgxwgvvfgfgvvxhwwwxxwvwwwwwxxwggwxwwxwxxwxwxxvgvvgwfgwwwxgfffwgwfevfegvffvwgggWXvvffvwffwgfgvwggwfxgfgegfvfffuvwffwghvfgfvfwwvwwwfgwwwwwwhegffuvwfwwwwwwwwfgwxxwgvfvwffwwwwwwwwggwwwwxwwxhfffwgfvwfhwwwwwwgwwggvwfgwugwvgwgEevhwxwxxhwwwwfxwxvwfwhwwwvvwgvwxwwwfwvxvwUfwgwwggvwffwufgwWwW3DuwfvxvwgvgwfgwvWfvguw5CTggvwgfwvwgFevfwgfvvvwwxwgxwUfxwwwwwfffhgwweffxwfwvUfgfwxwwwwWevxwwgxfwwwxwwwvwwWffwwvgVevfvwgvwwxwwWevvvvvwWwefwwwe7UewwwdfwwwwwwvuwwwwgXwuwwuwwuwhWwwwwvwwwwwuWgvVwwWwvWwvwwwwwxwgvfwfGfFggfBDvwfgwggvfxgffwwdffFfevffvgUVwwfgefgwwwwggvvwwgdfvwfvwvfWgvfwwgwwdFwxfvwdffdggwvwwwFffwgvwwwwfgeugxxGfugfxWffFvffwxvwxWVwxwhgwgfxwwgvwwggWWffwdewwHffVwwgvwxwwwwvwxwwwhhwwuvgvWgwwxgwgwwwwggfgwwwhwwxwhwVffwvweSUegVfgVfwguwvvwfggvffwg6UuvwevfevFVfggewGffevwewgvhxwwvewvwGffgwwfvwvwwfwWvffxgwvwxhfwwwxWwwwdfwWfgwwvXgggwwvxwhwwugvvwvgwxvvwwvfwvxfvwwwvwwwgwwwwvvwggvwwwvwfvfffgwwxwwxwvwwxgwwwwwwwwwgvwwxgwwwxwwwwvfvwfwwwwwwwgxxfwwvwgwfvwefvvfwfveUeffwWfwfwwwwgfVewgvfwwXVVfevvwgwffgfffgwvffUvugvwfufvfwffvwWwwfgufvvvwwfvwgefwwwweVevwwvvwvxwggvwxwwvggwfvwgwvgwwwghgggvgvwWfevwwwwwwwfvxggvvgwgvwfgffeffvvvUfwwgVfuvgUVvggvvxwwvgggwfegwwwfwwwxhwwggwwhwvwwfgwwwhwggvgwfwgwWwwgwgfffEUvVffeefVUFfgfgwfgvvgfgfwfffTUfvUUeWvvwvfgffVEVefggfvvFfwwgeugfFggdvfwVgfwugfvxWfFfeuffWfVvvwwwwdevgvUfhvxwwwhwgFfvwwhvwefwxufveVvewufvwwwgvugwwfwfegfwwwxwwvvwvwwfWefgfwUfwwfvvxvvvwwwwwwwwwwwhvwwfwvvwgwwwfwwwwwwwwxwwwxxvvfwffvfgfgDUvwffwfWuwgvwfgwwvvvVwgvVefvgwDUwwffwUfewvfwvvwwWevwwwfvwwwfwvfwfvgvvwwwVfwwvwfwwwwwwwwUfwwgvwwxxfwxwwfvwwwfxwfvgvfwwhvwwwhwwxxvgvwwwwxhwwxfvwwwwggwwvwveVgwvgfUguwwxghwwxwwwxxwwwwxxwwwvwwgwwxwwwwwwwwwguguwwwwxvggwggfwffweVwwgffUvvwffwfgxgwxgfgwWfuwwfffuVWguwgfvvgwVwvwwgfvwvfwwhwffffwvffvgvvfffwfwfffguxwvgwgxvgwxwwwfffvgxwwwxgwvwvwwwwgwvgvvVfgxwwwvwgwvwwgvgwwwwvxwgwvwwwefvgwvwxVgffgwgevfwvvwvvwvvwfwwvvgvvwvwwwwxxvwvvvwgwwggwwwwvwwxxxfwwvgwxfufgEWfVWvfTEfgfvvfgfWwfgVgwwvwtdfUefwggwhUVxfwveVffvwwwwwfggfxgvgvxwuegfVuvvgwgvvwxwwwvffeVgwxwvfffvgwwwwxvwxxwwfvvvwgfwwwVefwggwgfvwwwghvfVfuxxwwgwwffvwwvfwggvwUUfWwfffgvvvwgwwwgwvfvwwxxgwgvggvgwwwwgwwwwwxWwfwgfvgvhxgxwWuegFWvfFTTgwffefvVgffffffwVfffwWDUvwweVffwUVFeeeffwgvvwfgwwgXvwgwWwgfwwwtgvwwvWwwwfvgUeVufwvvhwgxwwwfwgxefwwwfvfvvWggwgfgwvxwgwwUffUgwgwwuvwwffgfwvvwwwvvwxxxvfvvwwvggVVvwwgTTwwfwvvvvvfwwhgwwwffgfwwgwxxvvwwwwvwggvvvvwwvfxvwvffwfwwxvvvgg54dwwgeevwgvgfgfvwxfvwwwwwwffUVVVefvffvxwwwvwffwwwwwwwWVvxwxffwwwweeffVUeVevvwxwgwxgggvgwwxggfvWVvwggvwxwwwwxWVvwgvvWVfVufgvvwwxwvwxxwwwwwVefwffwwfeefvvgeVfvgwvwWfggvgeuwwwfwvwxgvvwguwewgwwwhfwfvgvwfvvVwwvwwggwgwwwwxwXgffUTDUfvVfVeffvfgUfgwwwfWfgvwfWVeFUVUVVfvfgvwwffWVvfwgvggvgeffwvwfVvwvvWVvVeVffeefvguvvewggvwwwwwwwhVvWfvfwvvggwwxvUwgVvgwwwfgvhegvgvvwUffvweefgwwfguwwwwgvgfwwfwvggwwwfWvfVvueWwxwuwvxwwfwwwgwwxwwgvwvfvwhwxwhwxwfWgvwwwgxwuWggvwhwwhwwwfwfffWfeWfufVffwuvvffvffvwwwfgfffeVWveffVgfeVvffvgwfgefgvwwvvgfvgvvwxffwwwfeVggfffgwgegwggvgwhwwwwwxwfvgwgfffgwwgvwwxxwxwwwWvewffwvxffgggwwwxvfwvfwwgxwwxvgwwwggvxvgwvwwwgffVfuwgwxxwwvwwwwwxwwwxxwxwwwwwwwwwwvxwvwwwwwfgfwwwwgwgfvvvggwfggfeUDEtvfwhfwggfvfffwwwwwVVfffwwgfgVfeffffVDETfuhgwwfwxwgvvffvwwwgwgwvwwwwwvvvgvfgfVUugxwwgwwxwwwvvvwwggwfgvwwxwwwwwwwxwwfvfwwwfgvfggvwwfffvfffvwffwwwvxfgfvwwwffffvfwxfvxhwggwfgvwvwvxwwxhxvgvwxwwxgwffvwwwwwwwvffvwvwwxwfUvfvffVfgUfUfvfvwwvgvfgUvfgfgvggvfffffffgVvwwvwUfefvvgwwwwgWugUfVvvvvvgwffffgwggUvfwvwvUfvfvvvvgwgwwwwxxxwUvwvwefevfvwwwwwwwxhgfffgvwwhvWwwgwgwWvwwvwxggvwwfgwxfwfDUwwWefvwwwgvxfwhfwgvfvggwwxwwfwwghvwwgfgwwwfvffffgfvvvxfgwgxvefggwwgUfev6CdwgfWgwgUffvWffwgwWevgxUfvwgevWeVvvWUewwWVfvwwwfwgUfwwWevwwfvwwxUfwwfwfefwgWeuwwXWfvwwfxwwUfwwvwWefgghvwxggvwgwwffwwwwwxxvwgwxUfvwwuefwvvfvwwvwwwvgvwwwvvwhWVfvgeewfgxvgxwwxwwwwxxgwvhgwwvvwxfxxvwgxwwxwwwwffffvvwgfggvvTTgfgvfgggfgvvvffwwgeewxWVvvwffvvfgwwTTgfgfgwvwwwwwVVvwvvfgvggwfgxxwwwxgvwffgwxgvgwxwwwxwvvwxggvgwveewwgvvwxgwxvgfwwvwgwwwwwxhgwvvwvwgxxvwwwxxgvvwwvuwggvvFVvwwgfVfvvwgwvgwwwxwwxwvgfvwwgvwxxgwvwvvwwwgwvwgwwwxgVwwvxfTfvgwf5VeUv7UUefwWvvefvdVgfvwwgdffwwTfffwSUVUvwwGVeevWvgwwxwwxfefvwgfvgxxvgvwwvggvevVfdwgfwwggEvvfxfwwwvggvfVfgvwwwgfvgwwgvwwxwwvVwvgwwwwguwxeewfwwwvVdgggxfxvghwvwfwvVfuwwTEwvwhxvgggvfwvvgwwwvgxxxgwwvgwwwvfwgghwweVwvwvgwxwvgVgufffv6DsvgeVgvvvgwfVfuwwffgvwWTEwwgwvfggfVeVfefffwvvvvfgvwxwVfuwweVwwWeUxwgvwxweVeVveWwwxwwwwwwvwxgwwxffeVvvgwwwwvwxwvxWfegwvxxxwxXfugggVfufwwgwxwvvgwgvfwggvffffwwggvfvewxxwvXwghwgwwhwwwwvwWvwxfgvvvfhgwwwWwvvvwwwxvwxWgfVVwfffveffgfffwfeUvwfvVgfgeuVVevwvfffggvWfgfeeffgvwggvvwwWfvhwwffgVefwwegvvwffvwgvwgWuvwffwfwhfwfvxwwgwevfwwvwhvwwwgffvgUfvwgvefgggwvwwgfggfwvxwVegwwfgxwwwxvvugwvwwgVfuwwgeVugwvgwvuwvwWgwwwvwwwgwvXwwvgwwvvwvggwwvwWwwwwwwwwwwwxxwwvwvgfFUdfgfffvgfufgwwwgwwffvgwwwveVfvFUdfgfeVvwgwvfgfvfgugwvfVvvgwveVvgguwufggwfvvgggvVwxwvvgwgwwwwugfwfwvgwwvgguweVwwvwwwevfwwgwgwvggwwxwwgugwwwxwwxgwwwwwwffgfvgwgVvffvwfwgwvvvwwwxwwwgwwgwwwxxwwwwxxxxfvwwwuwwwgggwwwgwxxwxhffwgfffUeeUfefvvwwfvwvvwfggwwvwXUVffVfVvvvefffvvvWfefvgwwgwgfvwfvgvwggwwxhfgfwwfvwwxVwfwwgWvwgxwwwxwhvwwwxvwvxggwwhgwhwwwwwhvgfvvwwfwwvwxufwwwgwxwwvxwxwwggfwwwwvwwwwvvgwwwwwxxxwgvxvgvvvwxxwvgwwgvwgfwwwxgwxfwvvfffwgvwVeffwSUDefwfwhhvgffwwefefvfvfgwDVfSUwxxwwwwwwwfvwxxxwxwgwwwwxwwxwvxgxhwgwwxwweVffVvwfwwVufffxxwwwwwwwxvwgwwwwgfWVfuvwgwWffvwxwwfXgvwwwwfggvfwWffwwgvwxxwxuwgwvwgWwvwwxewwxxwwgwwwgwwwxxfgfWvvwfwveggffvgVffvdfvegGUdwWEVvgvwfgfwUfvWufwWffVgGUVfVvGTuvxvhgwfgWwwwwwvvwggwwgxwgwwwhgwvxxvvfwxveghvvggggvfVffgwgewvvvwfwvwvvVfvgvvvvvwgwfvvfvfwwxwxVvvvgvgfewfwvevgwwwxxxwxxwxgwwfvvvwvxxgvxwhwvvwfvvwwvwghxgedfvwwwfugVfuwTfgvWvgGefefdfeevwVfgvggWVggUfewTffegdefevwVvwgwgvvvvwfxvvwxwwwwhwwxfvfwvwvfvwgvwgwxfwhhhgwwUfvfvvvfveeffvwggghwwxwhwwxvxvgfgfggggwvWvwvvxwwwxwgwwwwvgwxwggwwxxwxwwwwxxhwvgwxxxxxxwwwwxwhgwwwwgwvxvgwvwxwwwgffvwvgwTTwwWfUUfugvvwwwvvwgwVfUUfuwwffffgFEuwxwwxwwwgwxxxxxxwwgwwxwwwxwwwwwwwxwgffffvxwwwgfwfUwwwwwxwxwwwwwwvwfvfVexwwwffwwwvveffhvfGfvfgvwvvwwwxxxwxwgwwgwwfguwfwwvwxwxxvwuwfwwwwwwwxgdTfgwwGFdfUVVweewfFffgvfTffgdfgfdfgffwWVvwBDwwdfgdffegvwfvwxwgguVffUwfvvwwwwwxXfvUwfvwwwwwwwfggvVwwfwwdfwwvwwSUfvguwwgwgwVwgfwwwwwxxwwwXfvfwVwwgwwwwwwxwwxwwwwwxwvgwwwwgxxxwxwwwxxwxxwwwwwwxxwxwxwwwwgxwxwwxxwxxvgvvwxgfgwwwwwxwwwwvffvwgfvgwwgwwwwwfvfffffvwwwxwfwwfxwwgwwxwwwxxwwwxwxwwwwwwxwwxxxwwwwwwwwgfvfwwwwxwwwwwwxwwwwxxfgwwwvwgxwxwwwgwffvgffgfwffvwgwvwwwwwgwwwxvwgwwhgwwwwfvfxxwgxxgwwvfxwwwvwgxgwffvfffgffgwvfvvgwgfWeuffgUefgfffvfvfffgVUVfvfwwfgwvgVeUvwwffvffvgwwvgvwgvwwfwwwvxgvwvwvvgwxvwwvwgvwvfvfffwgUVuwvwfvvfgUeegvfwvgwggwvwgwgffvvwwgggwvwwwgwxfxwgwwhwwwxwvggfffgveggvVwwvgxwwxxxwwwxwxgvwwwgvWwfgwgxwwvwfhhxgwxwwhxvvxffffwfgfugfvVgwfwgfffgffUefvVVvfFfffgfffvgFffvgfwWfUVfvfgwfwwwxwvxfvVwvgxgwwwwxwgwwwxxxwwxgxxhWwgfwdfvvwWwgwvHfvfwwgwgxfgvwffgvvwgvwwvwgvwgvwwgwgxwwvwvwvfvwWwvwuwvvwgxwwxxgwwxvwwWwwwxwvwxwwxwwwwwwxwvwwvwwwxwvwxwfweVvgvwgfvgvgeeffWfuWgveVvgfefvdfgwVvWVfvufuwUdfvwvufVuggevgwwggwxwwgvwwwwxwwxwwxxwwwwwvwwwwxwwxwvdfwwWwvgwwvgvwVdfxwwguwwvgwgwwfgwxwwwwwwwwgwgfwwgwwwwwxgwwxwwxwwgfvwfwwwxwgggfvvxwwxxxvwwhgwwwgvwxwwwwwxxxxwgwvwwxwgwgfwwwwvxwggWUfevDUgwwWVfgVUUugfwffffUUUxgwwgeuwwgffffvFUtxwgwxxxwgfvwwwwxwwwwxwwwwwwwwgvfggwfeuxwwwwwvwwwgvffvwfuwxfwffvwgwvffvffwwwwgwwgwwwffvfvwgfwvvfwwffwgvggvvwvwwwwfwwxgwgwwfvwwgvwwwwfwfwwwwfwvwgwhwxwwfwxvwfwxvxxffffgvwgfvgffvwfwvffffwwfffwwvwwvfwVevwgvgwffwvwvUffffwwwgwfwgvwvfggwvwwggwvwgvhwxwfwgwwwfwvwvwwhvwggfgwggwwfgxwfwfvvwvwxgvwvwwgWefwggwwwwgvwwggxhwwwvwwvwxwfffwfwgfvgvgfgwwxwwxwxwxwfgwwwwwhfwgvwwwwxwwhwgwwxwxxwwxxvfffgfwgUfgvgfvvghWfffffffVVfVevVefwwVVvwVefffffWevvwgVefwwxfwxfwxwXevwwwwxwxxgvwwwxwxwxVefwUfwwwfvgfggfgvwwxffwwwwwffvwwwwwxwwwwffwwwgfvwwwwwwwwwwwgguwfgwffgwvgvvfwwxwxwwwxwgwvggfvwgvgwwwwwxxwvwhwwwwwwxwxwwfgufwggvggwfvvvVwweVfUggfuffffeWffUfgVVfUfefuffgwweeVvgwwwwwwgfwggwwwwwwxwwwwwwxxwwwwwgwwwxxwxveegwfgwgwweewwgwxvvgvgxwwwggffwwwfgvgwvwwgggwvwvvwwwwwwgvvgwwffwwvvwgfwwwgwgwwwwfwwwxxvwgwxvwwwwwvwfvwgwwwxxwwwwwwwwxxxwxxhfewVggvfffvwgvvwwWTUVUeeTfEeffwGEeVfeeVVffUeUffVgWVffwwffwwgwwwfvwwgwvwwxwxwwwwxwwhwwwwxxxxwxhVfVwfeffvvfVfwwuvWfufggfgwwWfwegfwvvfwxgvwwwffgwvwwwwxwhwwwxgveVwWfuVfvwwffgvwxxxxwwxxxwwwwgfvgwwgwwxvghwvwwwxxwwwwgvwwxxxwxwxwUweVuVeuFUfgwgvvgfVfeVfueVeVeefVC4fwVfUWvfeVeVfefwgwvwvvggvvgvggwfgvgwwfffhvvwwxvgvggvvxxgeVwwWfugxwTEfffvgvgvvwwvwwwgwfvufggwfgwwwxwwwwvgwwggwfwwwwwwwwwWVvvffgwvgfWVfvvgwxwwwwxxgfvxvfwwxgwvwwwwwwwwwwwwxggwwfwwxvwWwVVfWeUgggwwWUegvffeewvfWVffVfvuVVfffCCffgvgwgwvwWVfgvVffuwggwvxffwxwvvwwvwwwwwvwwwxgfwwxxxwwwwFEefveefgghgwwgwwffvwwwfwvwwwfvvggvwfwwwgvgwwvvxwwfwgwwwwggxwwvgvvvgfgffgwvvfwwgwwgwvwvwggwwvgxggwfgwwwvvggwwvvgwggwvfwwwvwggwwwwxwfgeVfVfufwvvgwgwvwfWfewwwfgwwgvwvfffffvgffvvfwwgvwvggvfvvwvfvwwfvwgwhwvwfwgwwwwvwwwvwvhwvxvgwgvwxwvwwfffvvfgwwxvwvgwvgwwwgffwvfggwvgwwgwwggwvgwwgxhwwxwwxvvfggfggffufvvgfwfwwwvwwgwwwwwxwwxxgvuwwvwwwwwwwwwgwwwwwwwwwwwxxwwwwwxxXfggWUfvvvvfwfgwwwXUeVuwvgfvwgfwGFUFeUTfffvVfuggfvggvgwffvxwWgwwvwwgwwwwwgwgwvgwwwwwwwwxwwwxwwxwwwwXWeVefegwwwggwwgwwgwwwwwwwwxhffvwwfvfwwwwwwvwwwwwwxxxxwwwwffwwwwwggwgvfffggwwwxxwwwwwxwwwwvvwwwwxwwwwwwwwfwwwwwwwwwvwwwwWUewgvgffggvVueVfwVevffWUfefVVfwwwgvWfWfvgfvffffvUeeVfUUffvxwwwgfgwwfvwwwwwwwwwxxwxfvwxwwwwwfwwvxwwwwwgwgwwwfvwwgfweevwwfUfvwwwxwwwwxwwwwgwvwwgvwwwwvvwgfwgvwwwwwwwfgfvwvwWUfVeVefwwwwwwwwwhwxxwxfggffvWevwwwwfwfwwwgvgwwwwwwwwhwwvwhfUevwfvgfwUUVUefvwffffUfVfVeVfuvfvwfwUfggvUefefgv7CTfuVfevwvhfvwwwwfgvgwwwwffvwwwwwgvwxgfwwwhwwwwgvwfwDUfgfVeVefvvXefvwWggwwvfwggxgfwvgwvwvwhfgwwfwwwfwgwwwwggwwxgwufwwgVuvwwffwvvwwwgwwwwwwwwwxwwgvwwgfgveuwxxwwwwxxwwvwwvvwwwwwvvvwwVgvgwwwwfvvwwfVwvvvfuWFdufgUUeeegfgwwhvggggffUVeUefVwvfeddWfwvvfguwxggwwwwwwwwwwwwxwwvgwwwwxxwvvwwwfwvwVufWWgffUVeddvgvfvfUegwwwgvvggwwxxgghwvgwwwwVVVvffgwvwffwwwwwfwwxwwgwwwwhwwwwxwwwxwwxxwxxwxwwxwgwxgwvwxwwwwwwwxwwxwwwxxxwwxvegfwwwWvfwwggvwwWWgwgeVvwWUefvvefwfvxwwvfWUeufvgwwwgVevwwgwwWwwwxggvwwwwwwwwwwxwwwwvwwwwxwwwxxvwwfvwwxwvgUfvwvwwxgegvwwwwfvwwxwwwxwwwwwvxxwffgwwxwwwwxghwgfffvgwfUwVvgegwvwhxwhwwwxxwwxwVwvvWvgwuvwwwwxwxhwgffwvwvgxwwwvwxVgeVvfwfVwuvgffgvvvVfEEeeeVeVfdfUeVwgVfufwWeFeVfdeffwfwguvwvgwffvvgvgvxwhxwhwgffwvwwwxxvwwwvgvwgwvgxXeVegwvweVwfwwuvxwvwVfugxwwwwxxgxwXfugvvVvwgwgvwwwwwwwwgvVwvgwwVfvfvWwgvwwwwwwxwwwwwwwwwwgwwgfwwwwwxwvwwwxfggwwvxwxwhTfgfgfwFVeufWwgwGffgedfewWUvgwgTUfwwfgwwwTUFUVugfvvwwgfwwwhwwevgwwwwwhxxfgwwxwwwufWgvvwwwxwgwxffvxwwwUfffggggvvxgvghwwfvwwwwwwxuffvggvwwwxxwwggffwfwwxwvggfvvgvwwxxxxvgwvwwwgvvwxwwxwgwwwwgwxwwxgwwwfgeevwffgvwwffefVvffvWVffveefffgfffgVfUVfuwffffgfffffefVgfwwwwvwwvgwwgxwwwwwwwwwwvvwwxwxgvwwwwvfwwWfeVfwwwgwgvgwvggvgwvwxgffwwvwwwwwfvvwwwwxwfwhwghwwwgwfffwhVVvgffwfwgffggwvwgwgxvwgvgggxghhwvgfwgggfwvghfwfvvvwwwfvvwwhvvwwwgxxwXVfwgUfvfgwfffwwgheefufwUefvggwWfwWUfeffwwUVfvwwvWVeffgvwghfggfvgfwvvfwxgffgfwgwwgvwgwgwwhfvwwwgxXgwfvfvwwvwffuwfwwWffgwggwwwXvfvvwwefgwwfwwwwffwwwwfuwwwwwwwwwggfvwvwwffwwxfgvwwxxwwxxwwwwwwwwwwvwwxvgwwwgwwhwwxwwxvwwxwwwwfWvwvvwwefgwwffwwxvewgefVvweUggwWffvwXfewwWwweUggweVwwwfvgwwvvwwvwvwxvwwxgwwxwwxxwwvvxwxxwwfvwwgfvwwhwvufgvwvgwwgvwxvwWfwwwwwwhgwwxWvvwwwfwwwxgwxgvhwwwwfwwwwwgffvxxwwwwwwwwwggwwwwhwxxvgwxwxwwwhvwhfvwgfvwgvgfwhwwxwfvgfVfEEexxwhgwwxwwwwwffggfwwWVvffVUVeeVGTwxffxffwfgfvxwwvgeegwfvxWVeVfeffffvVUxwwxwfwhvwhgvwwWffgvwWevwwwwwwwfvwgfvUfvwUffvwwewUffDUUfuxwvgxwwwgvvwfgewvwwxwwgvwvwggvfvxxwwvwxwwwwwvwvwwvvwwvxfvfVvxwvwwhvwvwwegugUeewxwxwvwwxvwggwgwWwWvgggwwxwwwegUeevvffvxxwgxwfgvgvvgwgwgvfwwgufugfuvfgfuvVeeVvxwxwgwwwxwxvwwwwvfwwwwfvwwwwfwggwwwwhVggegvfgfWwwgegUVfegegxgWwxwugxvhwvwwWVgwhwvxvgwhwvwwvxwxwxhfhwXwvxvvwwgwWVgwggwgggwfwwwwvegvegWftwW5UwxvgxwxgwgwfhwwedfhvfwVffvwWVFggwVSuugxwwgwegWffgwwwhvhuefXftwgVVgwefgfFffUhwgxwxuuwxvhgwwgghggwgTwxwxevvwxvvvVvwxfuvwvw5UvvufvFevxwvwwvwhxxfVvwvffvgxwwwxxwgwwwwwwxwgwwvgwwxwxxwgxgwvvwfffwgwwffffuhwfwgwweVvwfffVefgwwgvwwvfwWevgvvwhwgfwvvvefVffvvffwVeffvwwwwvwfvfgvvwwwxxwwwwwwfvgVffwfwwfeffuwwwwgwwwwwfffWvfwfxwwffffvwwhwwvwwxwhfgvggggfffVffVwgvvgffwwhwxxvxvhgwvhfgwxxwxggwvhfgxwwwvwxhwxxwwxwwgwwwgwfvgvfwxwwwxvggwugVgxxwwwxwwwhvgwwvwgwvgfgfwfVgffgvewwxwvggwuwffgvgwvvgxwvggwuwgVgfwefgffhvfxhfwfxwhfgvwffhfvhvewvwwxfvfwfvfwwgvwwfufwwwWvfvfgvWvwgvvghwvwwwggfvvgfgvvwwwwxwwwwfwwxwwxwwgwwxwwwvwxwwwxwfgvwfvvfgwwwvwwwwuvwgwggfvfgvwfefwgwgvewfwwwwwffwwwwgwwfffgvvfvgvefvvvgwwxxwWffggvvvegfgwwxfgvfgevfefwwvvgwegxwwwwwwwwwwvfwvvwggwwfvwvwwwwgwgfgvwwwgwwwXvffgffvgffWgwwxwxwwhgwgwwvvwxvfwfgwfUfvxhgwwwwxwxwwxwfvwwvwwwxgvfxxxwvvvgfegwwwwwVwvwgfgvVwgVvwgggweVwfUwwfwVEetwvgwwxwwfwvggevfvgVefgfvwgeWvvfVfeVvUDuwwwvfxgwuVwugVwwwgufxgfwwUvuxgVveFvfEgxwwvWfugxwwfxgwvWwggwfUwwfefwwvgfegETxguvwwfewwVefvvwvvfxwgggfgveggewwwxvgfghwfugvfvvvwhwwxvvgxvvhGffggfwuwwxxfuwfwwvxfWfuhgfeVvwfvvwhwxwvgwxwwuvwVffgVVfvfVwxwfwvgedfwfwgggwfxwfVwfwwvggEfewgggwvWxwvvvVVdfwvwgwwvwVwvxggwwwxxwwvgeuvwfxgwGfvggwggWVgfwwvxgEvvxxxvgVvgexwgfwwwwxwwwugwwgvfWwwwwwxfwxwwxxwwwwxwwwwxwwwwwwwwwwwwwwggvWwwwwxgvwwwhwgvffvwgegwwVvfVvvwffvvwfwfwwgwgVfffwfWfewVwfffggVveWwggwvvggwwxwgwxwwgfvwfwvwvgvvwwwgfeVvwwwwgfvvwhgwgwwvwgfgfxfwwwwwgxwgwwwgfweffegggwvffwwuVguwwvwwfwxwwwwwvxwxwgwwwwwvgwxxwwgwwwwwvwvgxwwwxwwwwwwxwvwwwgwwwwwwwgwffwwfwgfwwvwfffffxgvxwxwwwwwwwwfwgwgffffvxwwvgwwwwvwfffffwwvxwwwwwfwgfxgggvgffffwfwwwfwvvwfffffwwwwwvwwwxxwwwwwxwvwwvggfxgvggggwgwvgffffwwwwwwwgvvgwffffvxwwvxxwwgfwwxwgvxwggvxxvwhwxxwvggvwxxxwvwhwwwwvwgwweeUxwwwwwwwggfvwhwfvwxwwvgfwwgeuwWVVuwwwwwxwvxgfgvhwvVWwweeUgwwwwwwfVVvgwwuvwgwwxwvwvggwwwvvgwwfeexwvwggxwVVVuggwfvxwgWwwffvxwwwxwwwvVWwhxwuvfgwxvuuwgvvewvvWfwwwvfwggwfvWfgwvwwWWxxvwvfwwvfgxvfvwggwxwwuwwgwwwwwxwwwvhxwwwwwwvgwxwvvwwvwxwxxgwgwgvfgvwVgwwuefwgvwxwwwgwxwwwvfgguevVVfffWwvvwfwfevvwwwwxwwxwvgwxvvwwgggwfwfwwwfgwgufvvgvvvvvwgwvwwwvvggwwwwwwwwwxgwvwwgufvWwfgvfgggvgwwgwfffwwwwwgfgwvwwwgvggvxwwwvwwgVxxwwffwfxggxwwwVxxwwvWwwvwwxxwwfwwwwwwvgwwwwfwvfguxwgwwvwvVvwxwvvVwvfxwwgeVuwgwgxxwwxwgguwgwgVeUggvwvfgggwvxwvVxwWvfxwxwfguwgwvfgfgwgfggeVuwwwwffvVhwwwwguvxwwwgwxwwwvwwwVvwgwfVeUxhxvwguvgfwxwfgfvggewggfgevgfVwwwfhwVwwwvgwwwvgwwwgXfvvgvgxxwwwwwwxwxvggwwwwhwxvgwxwwwwvuwwwwwegwVwwwufwxwvwwxwxwwwwxwuwwWUtwwwwwvfwwwwwwwvvwwwgwwwxwffwvwvvggvfwwWwwvWwxwvwffvuwwvxwwWfxwxwwxwwwwvxGUuwwwWfeWwwxxxwwwggwxxxwgwwwugfvgwgwwvVfWwgwvgwwwwxfgwvVwwwwwgxwwvgwwwwwwgwwwwwwwggvVgvxxgxwxgwfgwwgffxwgwvgxfwvfgwwgxwwwvwfefvwwvfgvgfwVUuggfwvhhwgwwwxwwhfgxhwvgxwwgvwwgwwxgvVfuVwvwwwgwwxfwwxvfwvwgwffvgwwxwwwwgUVwvwwgwxgvfxffvvwguggvxwwxvwffwgfffwwwvfwwwfwxwwwffvxwvwwvvgvgxxxwxwxwwVVfgffvvwgxxwxwggvwxwwxwwwfgVuwgwfUwwfvgwggvxwwwwwwwwwwffffvfVeewfwwwxwwfeVwwwwwggfxwwwfwxwffgVVfffVegxhwgwfgvggwgwvwwfgfwwgffwxwxwwwvgxwwwgfvwwgvVVffffVevfvxwwvxwwgwwgwwwggVfuxghwfvfgxxfwfwgwvwxggvgwfwvggxVfwwwwwgwvwhwhwwfvfvggfggwvxwxhwvgwwgxxxwwwfffwwgfwvwwgwwwvgxwwwwwwgvwgTEffvvvvwwxgwvgwvgwwgxweVwwwwgwVfevffggffwwwwvgwgwvfvvgwwxwwweVwwvvvxxwwwxxwxeVwgwvwTEfffwvwwwwwxgvgvgxxfwfWvwwvVvegwueWwhvugvgggwvWwhwhwvwvfvwxxxwgwwvvuVwwfwffwwuVhgvvhfwwvwgwwwvgvWfegwuvgwwfffwggwhwwwxwvwvfVWwvggWfvvWxfvfwhwuwwwggvwgffgwvwwwwwffgeVggffffwvvgwggefwwwvggffwvwfxwwggfvvgvxgvfwwwwxwgwgggewgVfvwvfffffffvvWwvgwvfgxgggwggvwwwwwxwwggwwgffvxwwxxwwhwvwwwxwwxwwwwwwxxwwvgxxwwwwwggwgwfgvvgvwwwwVVxwwggggVETxwwxwwxwwvwgwwwwwfffewwwwwgvfwfVefffVTggwwhgvwwffxvvwxVVgffxwwwgVevwgWfeeVfVwwwwwwwxwwwwgwvgfgvfgvfexxwxwvfwwwwfffffgwwgwwvVVfffffEEvxgggxwxgfvvwwffggwfwxwwwxwwwwwwwvfwwwxxxwwwgwxwwwwwwgfvwwwvgwxwvffwwwvvwwwwfwxwwwvvgUfgfvfexwwwxxwwfwwwwwxxfffvfgfggwwwwwwffeevfffgwwvwgxwwUgwfvvvwwwgfwwggwgUfwwgeuUfvfffevgwwwxwwfvwwgwfwwwwwuvvgwvgwvvvwwggvfvfggfwvxwWVVwxwwvWgVffvvwwwwwwwwwwwwggwwgufgwwwwxwwwwwwwgvwwwxxwwwwwwwwwwwwwwwwWefwwgvwwXgfwwwwfvwxwwVVVvwWeewfxfwgwwfvffvggwvvvwxffvwwevfefVeVvewgWVUvwwwwwwfghvvwwwvwwxvgwwwwwWefwwgwvwwWVffvwwwwxggwwwgvfvvgfgvvwxhffwwxwwfwwwwwwvvfwUVwwwfeegweefgfgwwwffxwwwwwwwwvvwfgxwwwwwxgvwwwwxxxwwwwwwwxxwwwwwwwxwwwwwwfwwwwwwwwwwwggwwwffvfgwwwxwwwwwwwwwffwwggwgvwggffvfgvfwfwvvgwwwwwwwwwwwwwwwxwwwwwwwwggwwwwfvfgwfwwwwwxxxwwwwwwwwxwwwwwwwxwwwgfvwwwwwxwgvwgfgwvwwwwwwgvwwwxwfgvwwwwwxgvgvxgvvgwwwwwwwgwwgffvvxwxwwwxxgwvxxwxxwwwgwvxwwxggvxfgwvwwwffgvwVfuwwwwwvvwgwvwwwwgfwvwffwwfwVVuwwWfugwwgwvwxwgvgwwfgvxwwwwwvwvfxfwgffgggwvgxggfwwwvgxxfwffvhxwgwwgwhwwffwwxwwxwwwUUwvwvfwgwwvwxgwxghwgwwwgwwwgvuwxvgwvfxxwxwwwfwvwwwwwwwxxwwxxwwxvgxxwxwwwheVfugwwwwwwgwwwgvvwgffdwwfFgvvwwwwwwuwgwgwvwfffvxfvvgwwvWfWfdUwWwvwfdewwwgwguwwvWwwwgwfwwwwxgwfeVfeVwxwwwvwwwwvgwwwxwwwWvgvuehwvwwuvxwwwWfeVfuwwxwwggwwwvgwfVffewgwwwxvwwwgvwwwwwwfwvfwwgfvfwvwhwxvgwgwwwxwfwwwwwxgvwgwwwwggvxwvfwwwwxwwwgwwgwvwfwvgwfgwWgVwwwwwWVfVfugvfgvwwwwwfvwwgfwgUefeUwgvvgwfgvvwfgfvgVwwWwvvxgfwgvvwgvwfffvgwwgWvgvffgfggVfuwgfuvwgvgvvugvwgwfwwwwwwgfvfwwxwvfgffwwwwwffVwvvvgwwWVgwwfffwvvUwwwfVwwgwvxwvgvfvegwwfwwgvwwwwffxwwhxxwwwfxwwhvwfwvggvwgxwvwwgwwvfwhwwwgggfuwwwvfwgvefwxwxxwwgwwxwvgfvevfWfvvfwxvgvfvegwvgxwgwwvxxwwfwwwvwwwgvgfguggvwwwhwvwvfgvwvugwvwwwgvvwghwxwxwwwwwfwwwwwggvwvggfvvggvWgvwwwvfgwwxwgggffvwwgwgfwvwxxwwffvvfVvevvgwwwwwgwwwwvfwwggvgxxwxxwwwwggvwwffwfwVgewvgwfvfVwggwwwgwgvfUfWfffffegufwwfvwwwwwxwxwgwwfffUVUVvfvffffvgvVfeWwfWwwvwgwwwwwvwwwfwggffevfwfvuwgwffegffvvgvvWwvgwWvvfgvgwvggvwwwVwggggwwgvwwgefffvfgUVwvwvevgweVgegwvwgwvuggvwwwwwfvxvwhwxwwwwvvUwfwfvwgvgwvvwvfvfwxwwvvhfxwhwxwwxwwwfwwwwwxUwfwwwwvwwWwwgwwevff3UDwxgwwwwwvxwwWugvvwwfgwwwVgfffffvwgwwwwvewfgTfVwwwwWwgvwwfvfwdfVefffw3UDffxxxhwWugwwwvgwvwfgwfwwvwxwwXugvwwwXegfgwggvwgwvgggufvwgfwwwWuwhwfwwwxgvggfgwhwwwwwfwgvWwWfgwwwwxxwgxwwxwxfvvxwwgwwhwgfgggxwvwxhwwvfwwfgWefwFDEwwwwwxgwxxwfwwxfvvgwvwvgwwgVfffgwvvwvggvgvVVfvxvwugwwuefWvfWWggvFDEefgWexxwwwwxwxwwxggwgfgwwwwwvvwvwfvwfvvgwwwfwvwwwfuvWvgvwwwegwwxwvvwwwfwfguvvvwwgwvWgvfgvwfvgxxwwxxwwwxvwwwvvgwvwxggwvwwxuggfgvvvvwwwwwwwwgggvffffgffvwxwwxxwxwwwwggWwvxwfgfgvgvfwfwuffwwwwwwwgvvffvwffvweffvfwggwgffwweffffvfvfvvffwwhwwwwwvwwfgvwvwwwwwWgwwXgvfwwwwgwwxwgvWffvwwhgwwvwwxwfhvhwwxwevhxwgfwwgvwwwwwuwggvwgWvwwgxxwwgwxxxhwwgfwvxxfwwgwgfwgvgfvveffgfvGTUtwxxwxhvwwhwwfvggfgwgeffwgfwfwwgfwvvfwgwfwWVfehfvgvwfvfgggwFTUthwfwVVfeVxxvxwvxgxwxggwvgfwvgwwfwfvgwxgxgwwVvgwvwfufvggufvfvffwwwwxxghwvfffgwvwwvwwgwWffvegvvfvgxxwxwvvwwvwgwwwxxfvwwfgfvgwwwwwVgfgWvvfgfwfvwhxxxwwwwwwwvvggfvwwwxegwwwwfgvuwwwwwwgvvgvvfgvvvxfffVvfggfwvfgwwvuwfgffvfwffgggwwxwfwwwwvfwwgfvwwgwwwgfwvwxxwgfwwwwxwgggvwfgwvvWwgwvwgdfwwgvffwwwwgxxfffwgvvwxwwgvwxwWwwwwwfvvvwxwwGfVVvwwxxfwwxWWffwvwdBDffGfvfwvxuwvwwWuwwWwwwGfvwxvwfFdfvFfvfuffwgwwgwwwwwfdfuw7UuwwgfvfxfgwwwTeEefVvffvwxhfwvwgwuwwwfugvfwwXuwwxXwwwwwefvvwwxfwxTfeewdfgfvfvwgwwffuvgwvwwWfewwwfUvwWwuwwuvvWffgwvufvwfvgvhwwhxxvwgwgvvvWeewWVfvvvxwvxuweVggwwwgwwfvUVfegVfeUvfEfewgwwwfwvwfwgwxwvfgfVfefgwfUwVveufVfvVvevwgFffxwweevvFevvufFUUfWUfvfewvUvgfvEUfVvgefvwgvgwgvwwwfghwwggwfvwvhfvwhfwffffvffwgfgwgfvvwhwffvfwwwwgwVfvwhwfwdfwwVwvwggwwwggggfgvvvgwWwgfwwguvvgVgwwwxWgwvwdfgWgvggwWwwvxwxxxwgwVvufufv6UewWfgfwwwwwwwxwwhgvgegvwfvwgwwxxwxhwffwxwxxwxWdfwwEVffVfwgGffvvufVwwFVfwgew6UeewWfgvfxvwfvwwwwwwxxhwggwwwxwhfvfwvwewfvwvvwwwwvwxwwvvwwwwgvegwwxvfwfWwveWgvvuwwvwggvvgwuvwwwffvwwwhxhwwvwvghwwggwwuVwwwuwxwfwwgvwgvWfeWffeWfwfefwgwwxxxvvwvuggwewfVfwugvgfvfvxgvvfvvgvwgffwvgvggwfffveVfwfffggfuVggfegwfwvfvffffwwwhxwwgffwxvwwvwwvwvwgWgfwffffwgwgfvwvwwgWwvgwwfwvwwggwgvwffvwgwgfgwwgwvwfvfvwgfwvfghfvgwfwffgxwwwxwwwwwwwwwhfgvxwwhwgwwvvvxwwwwghwwvVVgfvwfgvGTDewwxwxwxwwwwfwwwwgeVUwwhvfwwwvvvvggwvwffwwgwgvWfevgfvvfVVDETxwwwgffvwWfeffffVexwwwgwwwvwxwhvfwwwwwwwwwgvwxfffwwgwfffvffxwfgvwwvfwwwwwwwvveevfwgWevxwgUfwwwwvwggffwwgUffwfwwxhvwxwvwwwwwWefvgwwwffwwvwvfwwwxffwgVevhvW3DfffwvgwwwhvwfwfvvgwwwUevfgwwxUfwxwxUeuVgwwwwgFTuxwwUffwvwwvffUefvggfwVfwwvwvDUefffwvfwvfwWeffgwvwwwwxwfvvwwxVevxwgWeVfevwwxwwwhwgwxwhgvgvwwfvwvWwwgfwgUffvWvVvwwvwwwwfwgffgwwwwwwwxwwfwWwgvgwwVevfwwgvgvwwgWvWvwgwwwwwvVvgffwfffffGTUffwgvwwgwwwwxwhgvwwxfgvweegvgwvhvfwghwggwhgewgUfwwWefwvgfvvvwDUegwVefvfffWevvggffgwWvwwwwvwwxvwwgwwwxwxwwwvwwwWWvfwvwwvwwwwwwwfgvwwvwvwwvwwwwxxfffffwggfwwgweewwfgwwgwwvffggggvfvvgvwggwxwvvfwwwwvvxwgfwvweewxxvvhvgwwwfwfFEegggvvwwfggwxwxxwgwwxxvwfffvwwwwwvwgwxgvgwxwwwxvVVfgvgeewvggvTTffWVvfwvvfwfggeegwwggwwvwwfwwxwwgwxgwfggwwvwgwwvwwwwxxfwvwvwxwxvwwhxgffwwwwhfvvfwwfvgwwwxxgfwggvwfvvgwgwwvxwwxwxwxwxgwgwvwwwxfgwwwwwggxwghfgfWeffeUfVVffvvwwvvwwwxgwxwwwhVwfvwvfwwVvwwgwwhfgwwwwwhVfwfvwfwgfwvwVVeVffVfwvweffeffwVVvvwfggwgwgvgvwuwwggwwwhwvwwwwxhevvgvwxvfgwxvfwwwwvwxwvwxxxfwuVfvxvggeWfuuWwhvvvwwvxfgvfWguwfwggvfgxwgvxwwwwefxxwxwgxwuVwwfevhwwwxfwvgfVfeVfeufgfvvfwgwgfvvxwxwvvfeVgwfgfggguVffvvfwgwvvwvvgwwgfvfffwwffvvgfeVvwgfvgwvvVfffufwfwwfvfwwffwwgfvwxwwfwwvvwxwwwwwxgwffvVwwwwggwwwwxwwwWwgffwvwxgxfveVVxgxgVVexvfwwggffwggfwghvfWwevfWgeevegugwwxwxwwxhffvvgufUffwxwxwfwwwwwwfwwwwggwgvffvvfeVgfffvwuvwxwwxgwgwgggVVuffffwwwgwgvxgfwvvwgvwfxffvvwwffffgvgggffvffvfguVwgwfwWfeefufvvwwwwgewfvggwxwgxxgfwvwwvgwvwvgvhefUfggfgwwwxxwgwxgggwwgxuvvfwwvggWfuwwweVvgwwvwvvfUfvgwfeVwgwvvwgwvxhwvgvwgvvgVfUfegwvwwwwxwhvvwwwxgvge6DsgvfeVwwwfvggwhvvgvgvvwvUVffUfUWffwwxwwvgwvvwwwwgWfexwwTEvggvwuUUWfUfUVfvvgwhwvweVgugwfwwwfggfvwfvgfggxvfffvwwvVfuwgggffVWfvgvgwwwwgwxwwxwwgwwwGfWfvgxgvffvwwWfvgwxXgwwGVffuveggfgwwwwvvgvwhwgvwxggffvgfwvwgWgvwhwwgwwwwgvfwwhgvwWcSUuuggVufgUgvwwwwwvwhvwXgwgEffwTfggvvwgwxfwgfwvghvxdffvwwfgeggVw6FUFeUdVguvVVuwgewffvwwgfwvwxwwwfwvvevwwwwxwxhvwwgwwvxeewwTfgVvwwvewwgwwvwgwwfvgwwhwgfvwwwgffgvwwwfvffwwwvvxwwxwgwfgfffvvxwwxwwwgwwwxxgfvwwwwwwwgwwwwvgwffwvxwfwwwgfvwwgUfffUfgxvwxgwwwwwwxwvffggwvxwffwgwvvffVvfffvwwwfggvwUfvwUVvwwvwwgfvwwwUvwwegwUfffgeVvffwwwwwwwwwvxwwwwxxvwWVvwwwvwwwwxvggwwwwgvwwgvgvvwwwgwgevfwgwwwgffvxvwwwffwwxfvffvwwwgwwwfgvwwwfffffvfhwwvfwgwvwwwffwwwgwhwwggfvwgffwxgfvwwfffVfVeVeVwgwwwgwxfvwwgvwgwggwffwwVvffgwwXefvvggwwwvwxfUgVuVvVwwgwfgfvfffwwVeVuVvfVeffvWffgwwwxgwwgxwWugwfwwhufvwgwwwxggxwfwfwwvfwUgfgwfvvwffwvwwxhwgffgwfgwvfeuwwfFfvdfffgvfwgvfgvfgvvfxwwgwwwxvgvvwxvwwhvwwxwvgdedffwwwwufVgvfgVfvffffeefVUEUedwwefhwggwwvvwwVVwwhveVVfffvgfwffFfedgvugwvwwvVevgweVUfegffvvggffgwegTUTUefffgvUeUffxfwgvVwwwfwwwwvvfwvvgwwwwxwvWeVfvvwxwgWgvwWfVgvWgwvfgWgvfwwwvfvxfgwxwffwxWVvwwwwgvwwwwgvfxgfvwwxxxvvwwhwwwwwwwwxwxWVvwwgghgvhvfggWvwfeeww74dvvwhffwwwfggwgvwvvvvxwUUwwxgwgffvvWVvvWffuvfgwwgTTwwWVvfggewwwUewwwggVVffwffvwwgfvvwwgfvwggwgfgfgwwfwwggwvwwxweewwxwwvfgwweegwwefWwwgvgxwwxggvgxvvwwwwggvwweVvwggwwwwwwwfvfvguWvwxhgwgwvxvgwwvfgwfwvvgwwwweVwwwxwwvvvfwgFUdvffgfvgwvwwxwwwwwwxgvgwwgvvwxgfVvgwwwvgwwwwwwwwwgVfevfeVfvvweVwwWfufggTEfgguvvWfvggvvwvwwvwwwxxwwwfwwwwxwwwvwfwvgwgvvwxwgxwhwvfwwwxxgxvwwefvvvvwhxwffwvgfwwxvwgwwwefWvgfgvgxwwvvwvwvxxwxfgvxxvwfwgfwgwfgwgfvxwwwxwwgfevgwfgEDUUvVfffgwgvvvfwvvwvwwhffwwxgggweggUVfeVvvwwgwwwgwvgVuffwgffgwgUevwvwwwwTeUfefgFfvfgggxwwwgwvwxvvwfwwwgwvwvgxwwwhfgffvgwvwvwhxeVeVfwwwwxvvwwwxwvvfwvwxwgwggVWfvgfvfwwvvgwfvwwwvwufUvgwwwwxwgvwwgwwwvfwgwwwgwvxwgwwgvvgwgvvgwwvwwwgUUvggvwffffefwwwvxwwgwwwwwvgggfveVVuwwwfwwwwWwgegfgwvwggvgwwwwfvfffwffvwVVfgfvvwwgvgfvffgfeVVuwwxwwwwfwwgvwwhwxxwwwggfwvwwgwvfwfggvxfVfufgwwwvvgggwfwwwwVWefgxwwwVffwxvugwwwgggwgfefvfwefffffwwfvwwvggvwxwwhfwgfgefgxgvvhfggwWwgwwwwwgfvwwTVfvfwDEefgfvfvwwwvgvgwwwhgvGVUVwvwgwvwwvgxfWfvuwwwwweffuewVfewggvVgwGTVUffwvUVvwwfwFVeefffwvwwgwvvwwwvwWvwxghwgfwvxxgffgwvvweVvvwuwvwwwfwgwwefWwwwwhfWVfVwvxvvvweVfvwffgwxgfgwvefweVgwwfgwwfegwwfwguwvwwWfevvhwvwgfvwvfvwwugUwwvfwgfUfwfeffdUVVvTEgvfgfvWwvguwfwwwVfvvvffvwwWWvUfwwwegVwweefwufwfeVffwefwvgFeevwWeufgWfvUVfwweVfwfVvfgvfvvvwfwwwxguwfwvwwfwwwfvvwvfWfevvgvwwhWVfvfWvVvwgfwwxhgwwwxvwxwvwgwwwfwhwwwgfvxhvwxfwwwxwggvwwvwxwgvggvxwgvxxxvwwxwwwfwggwwgwvfwxwwwgfwgUUvwwwwwwxgwgfgwwvwfUfxwwwgffvwgUfgffVUfwwwxgvwWUfwvfvvxxwxWefvxgffgffVVwwwwwvwgxxwwgvwwwgffvgwWewwxwfwwwwwgwwffxwfwgfwwfvgvwffeevwfvvvvwgvvxwxvvwfvgxffxhgwwwxvvwwgwwwgfwxfwwwffgwxggwwxfwvwvwwvwfvwvwxwwvvfwwffwwvgVVvwffwvhwghvwfvwwvvwwwwgfvgwwwfwwvgwfwfUfwwwwxhfghvvUUwwvvfvwgfgwgvwwfgwwvwvfffvvvwwvwvggfvwggwvfgwvvwvwVUfwwwgwwgwgwwgggvwwwvwwggfwwxhvgfvgfvwwwwwwwvgwwxwwfwwgvgvwgvwwxxwwxwwwxwxhvwwhvgwwwwxxwwwxwwhgwwxwxhvxwwxfVfvxwgUffvWvGVfvwewgewVvGfVfvwWvwwxwwfwwfvWeVfvgwWgwWVffwwwvUfwvgvWVfgvxwxvvwfvgwgvwwvggwWvwwwgwwwfwvwwfwWfgwwggwwWfgwwxfwwwwwxfvwwewvwwfvwvwuvwgwvwvgvvwxwegxwwggwwvwvwVfgxwvwwwwggwvwwwwwwxwVwvvgwwvwwwwwxwwwvwVwgwwgwvwwgwTfvgwggfvffewEVfwWwgXevdVUffgwwfwgwggewwffveVfvgFvVeVgfwvgvfgguvfvwfvfvwwwwhvwwffvggwVvggwvgwwwwvggwwwwwwwdVvvvwweVfvvwwwvwggwxwvwvwwwwwwwxwXwWdWuvwwwwuWwgxwxwwvgwgwwwwwwgvwgwwwwwgwgwxwvxwwwwgxwxgvfxwwxwxgxwxefwwwfgffgWvfwWfwgwwvewfwgvfwwxvwwwvxwevVvgvgvgvwhwxxwxwwxgfwfvfvwgwwwwwwwxwVvfwgvwhvvxhgxwxwwwvwwwwfwgvfwxhvgghwwwwxwwvwfvwfwwvwevwvwwwvwwwhgwufwgfwwwgwwwxevffvwwffxxxwgvwvwwfwxwWwwxwwfvvxwxwxwxxvxvwwvwwwwwwgvugggwgVfefgfgfegvWwgWfvvwfvfuvvugghwgvgegefeefvhfvvfvfwgxwgVVuvgfggegwvgwxwwgxxvffgfegggwfwwfwwvwufwxgwfWwgvgefUeevggvfufgvgwgwgVgwwwhwgggggwfVgfVgfevwhwvvwwwwgwxwfgvwwwxvwwwgfgfwwvvwxwwwvwwwxwwwxwfwvgwwggvwwwwwwwwgwvxwwwwgwwwxwvhwwwwVVugfvwffvggfVUfvfeeweVggWfefvwgfvfwfvVvfwwwwWVvfgffvVVfvfgfvfwvfffgfffgwggfwwfggwvxxgvfwwwwwwgvwvwgVefveUfgvwwwwwfwwgwvvwfvfgwwwvvWwufwwwxVvewwwwgwwwvvfggwvvgvwfwwvgxhvwhwugwfwwuwggwhwvwvwggwhwwhwfxwwvwwwgvwgvxwxvwwwxfwwwwvfgGevwwwvgwudewhwvhwveVvgfvvwvwGefwffgwwwvvwwVdewvwggGfvhwwvgwwVdguvfgWvgvwwvwxgugwgfvgguvwwvwguvwggwwvxgwwwvfuwwwgwhvvxwwWvwfwwwwwwwgggwxwxVfwvwwxwwgvwghffvffweUWfVwgvwwwWwwxvwwvvgwgwwwwxxffvfgWffgfgwwWVfgfvfvwWgfwgfwWwgvxwwhfggWfvfefuUeGTTfgfwwvwfgVffvfwgWffefeffvvGTdwgfwWfVVvvfwxwXwegwevVfVUffwwWgvfgfgfwWVegggvVUffwgfwwwhWvvvwffeegWffwwfxgfffggfwwwxefuwfvwffwvxvvwwvgfvwwwwgvwwfvxwwffwwwwwggwwxgvwwwwfvxxxxwwwwwwwwwwwxgwwwwxwxwxwwgwwxwgwwwxxwvffwgfwwgxeeweUfxWevhvwfvfwfffwwWVvwgVevfwxwwwwwfffvgwwxwwfgxvweewvfUfgwwwwfhwvfvwwfwfvfgvgfwvgwwvgvvvgvfvwvxwxwwwfwgwwxwwggwwhgvgvgwwgvvgwwgwvxwgvwgvwwwwgvwwwwwwfwwwwwwwwwwxwwwwwwxwwwgvwwxwwwwwwwwwwwwwgvwwwfwwwwwxgfvwxwwwhggfwvfwwUfWeffVgvwfUwwwxfvwwgvwwgvgfwfvvwgwwgwxhffgwgwwxxvfvffwfeVevgwwgxwwffwwgvgvwwXefwghwwxxxfvgffVgvwwvvwwwwhvfwggwwgwwfwfwwvwwwwvwvwxgwwwwwwwvfvwwwwhwggvfugwgvffwwwvwevvfvvwwvfwwvggvvwfwwghwvwgwwwwgvvwhwvwwhvgwwwwwwwuxwwvwgvfwdVfuuvffvugffTfevGffWfudfvguvwgffwwWvFffvfwwgWfevgdffguvVwuvfvgfwwffffffWgwwwvwwvwWfgvfewxwwwvffgvweFwwgwffgvfFwwwvuwwgvvwvwwwgwfvfeFvwwxhggvfgwffGvgwwfgwgxvwvwwwwwwfwwwwhwvxxxwwwvxwhwwgvvwxgwwwwwwwwxxwwwwwvwxvfxwwwxgwwxxwwxhgvgffvfgvfgfgfgfvffvvwfvfwggvfwgffvvwvfwwwvwgfwwwwwxwvwwwggfvhvfwwgfvwwwfgvwwfvwwxwwggwvwwwwxwwwxxgfgvvfvgwwwwggvvgwwwxwwwwwfwwwwwwwxxffgwvwwggwxwwxwwxwvvwwvgwwwfhwvvwwwwwwvvgwxxggwvwwxwwwgwvhvvgvgwxweVwxwwgxwvgxwwwwwxvvwgggffWfuvffffvgfgwfwwwffwwwwwveVgwvwwgwvefwwgwwwgvwwwwggvvgfvufvggvwwffwwwwwgxweVvgwwwwwvwwwwwwvvgWwewvhxwfgwwwwwwwvwwwwgvfwfWwvwwggwwxgxwwwwvwxwwxwvwvuwwgfgwgwwwfvgwwwwwwxvfwgwxVfggwgxxxhwvwvvwvwwxxwwfwwwxwxfwgwwwwgwwxhegfWvwwfUfgwgvwgwgvfvufggvwwwwwWVevvwfwwwwVfuwgvvgvwgwgwxWgfwfffWgggwwwgffwfwvwwVfUfwgwwwwwxwwwwXVefugfwwwwfffwvwwgvwwwxwxXUfevfgwvwwwwxfgwfvwwwwwwwwxwxvwvewuuggggwwgVfvwUgwvxvUwwwxhwwvgwfwgwvgxvwfwwWuvwgwwvwwvwvxwwwgvwwwgwggwwwwuwvfgfUtwgwwvwwffgwVfvxwwvwvggvgwvgfgegVEVvwwwwwwwwfwgwggwvvfFxxwwwvgvgwwUwwwguffwwwgwwwwwvwwwwgvwvggWevfDevwxwgwgwwgvfwvgwvwgvxwUfvwvfWuVgfUwwvxwwwwwwwwfwVgWfghxweevwxWfwxhwwWWgwgfvwvvwgfgwwvxguuvwwwffvhwWgwWfgvwvwwwwhwwvxwwwhWwwgsEfvwwVUuwgwfgefgwfvvxhwwgSTfwdfgggvwxxgWUvuwwxgcefvwgUWuvgwvGgfFeeVwfgwgfwwwwgWvvwwvgggfUfwwdfgwwvxxWgWevewhvgeewxuvwdfVwfuvwwfvgwffhwwvhfgvvfvgggvwwwgvgvwvwwggvwfwwwvgwxvwgxwvgwgfwfwwvwwwxfvvwwgwgvwgvgvwgxxwwwwwxffvfedfvfggwwvfwwwffgfwwgvwvgfvVefufFefgwggvwgwwwvgwwwfvvwudfgfwfwwufwwwWeefwffvwxwwwuvgwwwwwwwweUfegFevvvgvwvgvwwvgwvfvvwffWfvwwgwfwgvwwwwhwvwwwwwwxgxfxwgfvfvxxwfvwwwvgffwfxwxwwwxwwwwxwxwwwwhggfgwwwwwhfwwwwwxwhvvgwwefvggwgvfwwgVufewgfvwwwefgefffwwwfvvgwvvgffgfffwvugVeevwxwwgffvwgUuffwwwffvwwwwhfvvvwgvwwgffvwwwwwwfwvwwvwgfvgvWfffvWUVewwwwwwwvxxwfffvxwwwggffvxffgugefwxvwwvwffwgwgwfvwfffvfwvfwwwwwwxwwvvvwwwgwwhwfwfgvvfhwxwgwwxxwgvwwwwwgwvvvfgwwfUexgfgwwWfWUfUeUwVVvgvgeeUffvfxwwvwgfVffufffwgfvUfeeUVfegggwvWWufvWfgvuuwwxvwwvvwwgvgffvvvfWwvgvfegwwggggfeeggwfwwwvvUVfvfwwgwwxvvwhgvwwggfWwvwfwwwwxwwgUVvvwvwwggfwffgfwgffgfVefwwxggvxffvwwgfffvwxgwwwUwgvgffgvwxwwfffwgffffffgfwwwxvwgfvgffvwfgfUfdf6SevgwgffvfwfffvfwwxffvffUfwwvVeffgww8SeffGgvfvwvffdUffvVeffgfgvgffffwwffgffvfgfvwwgffwwwWuwwwffffvWefvGgvVeffggwwxvwfwffvfwffwxwvwfffffgfvwvwfwvwwfwhhgwwgwvfwxwggvwfwgwgwxvgxwxxwwwwwwwwgwwwwwgvwxwxwwxxwwgwxwwwxvwwwwvgfUvvwwfgwweUeeVwfgvVVvffvfVefgvghggfgfveVfeVvfggVefwwwwwvgvwweVfeVxwwhwvgwvwwvfffgvgwvggvgwwwwwwxhwvwwwwffffffwwfwfwwfxgggwwvxxfwwggwvgwvfgvgwgwwwwwwgwwwwgwwwwwfwwwgwwwfgwvwfwwwwgwwgwwwvvwfgwwwwxvwwwxvwxvggwwwhwwwxwwxUffwwwUgvUfgwgwxgvwwvfwUfwvvwgvwwwwwwwxTUfvfwgWffvwgwwhwvwevfeffvgggwvwwfwvweffgfwgGfvwwggwwhfwgewwwwwVVfvgwwWevggwgXfwvwwwuwfwxwwefvwwvwwxxhgfgghvwvxffvfgwwwhhwxwwwwwwxwwwxwxfvwvgwwhwwhhwwvfgwxwwwgVvwwwxdUfwxUfwwwuuwWUfVvwefwwwWffwhwwwwWggDEeVfufwxeefwwgdfvwxffwwxXgvxgwWgvffgwwfwwxwvwwxWvwwgvvwwWvgeVeVffgwweefwwwxWefwvwhgwwWfewvgfgwwggwwxwwggggwggvvfvwvvfVgfvwwwwgfwwwwwvvwxggwvwwvvwvwgfgwwgwvggwvfvvwwwgggwgfvewvvwwfVgfgvUDTwvvgVffvuwgVfvwvfgfggvvggfWfvDTeVgggwwwwgVvvvwuwggwefwffefgfwewwgffvfffWwwwgggwvwgfwvwwvwwwwVfgfveffwwgfwxwewffWguvvwgwwvfvvwwwvfgwxWwwvxfvwvghwxgfWwgvwwwwwgwwwggwwfwwwxggwfvwwwgwwwfwvvwwwvwwwwwwwwwxvwvwvwwwwwgwwxhwvwvwvfwxgVfgfufgvwWvfffwwwvwwgWfwfwwvwgvgevgffwwhvgggwweVwwwvwwgffggfwVvfugwwwfwfwVevwwgwvfxufwwwgwwxfwwfggfvwwgvvfwfwxeVfwwwvwwvwgvggffxwwwwggwwwgwwwwwwxwwwwguWwuwffWVegwfgvwxwwgwvxffwwwwwgwxxwwwwvgwwgfvWwwfwvwwffwwgwVwuwxwwxxVgwUweWfUgffWDDgwffvvgWweVuffWwuwwgwwEDtwwffgwveUffVffewvwxwgwwwgWffwffgfffvvgwgfvffffwvwffVfuvgwwwwxwfwwxgfvgffwvvgvvwwgwgfvVgWffufwwweVgwvvgxwgwvxuWwwwvwwwwuwWugvxhxxvgxwgwxxwwwxwwwwwwwvwwwwgvwwfgewgwwwwWvWvwwvgwgwfgfwgweVxxwxvwwvwwgwxfxwxwwwWvxwwwhwuwwwwwwWVfgfweewfgwvwgfWfwwwwwxwfwvxfWgwwVgVwgffFxhvxwwwVuVuwvxwVfvfVVVfwfTEwwxwvwwgvfvwffftwgvevvWVfvfFUdfVxwxwxwgvgvgxwvxwxwwwwwvwwwwgfVeffUwfwwgvwwwwgwwVefuVfgfVfwwwwwxxxwwwxwwwxwxwwwwwgwfwwxwvwgxwwwwwwwwhgfVgeVffvwgvwffgffUxwwxffvggxfwhwfvfVgeVfeewvwvwvffWfwwwwgwfffVUUfffFUtgwwwgwvgwvgwffgeVgvfffvgwfgdEUTEUVuwwwxxxxwxwwwwwwwwwwwwxxxxxwwxwxwxwwxfwvwxxwwwxxvwvxwwfvvfgxwxwwwwwwxvfwxwxwwvfvwwwwwwxwwwffewwggfvffVewwwwwwwvfgwwwwwwggvvwxgffwwwwwwweVwwxwwgffwwwwfUfwwwfffeUUwwhgvvxwwwhxfgUwwvgvgfVUuwwwfVfexwxwxwwwwwggwwwwgvfvwwwxwwxxwwwwwvgggfwgfffuVvwwwwwwvgxwggvvfvwwwvfffVVwwxwxwwwwwwwwwwgfvwwgfgffwwwwwwwwwwgvwgVevwwwwgffVVuxvgwvwwgfgvfvxwxwwwwwwgwvwvwxwwwwvWVuWfuwweVgfgfVeVVTEeVufwVTEUUwwvgfffxwxxxfeVffvffVVUVUTDfffffTDxxxxwxxxxwggxwvfwwxxwwwxwwwwwxwxwgVVwwfffwwwwwxgwvVVwwffegggffwwwffxgxxxwwwwwwwwgwwwwwwwwwwwvwwxwwwwwwwwwwwwfgwwfUfwvgVVhgwhwwwwffffvvxwwgwvvvwxfUfvfveVvfgffwwwhwvggvvvfwgfffwwVfevfgEEggvwgffvwwwwwwwwgvwVETuwgVTtfffVeeexwwwxwwwxwwwwwwwwwwwfwwxxwxwwxwwwVVvvwhfggwvxwwwwwfwfvgffvvwvgwxwwwgwxgvwwwwwwwfgvgwffvwwwwwvfggwwwwwxwxwwgfvgVfevwvvvvvvwwwwwffxgvwgffvwwwxwgvfggfgfffvwwfgvggggvgfvwwwwvwwgeevVDEdvfVUufgfffvwvffeVvwwwwwwwwwffETDffveVgffwfwwvwxxwwwgwwwxwxwgvgwwwxwwwfxhvxgxwwwgffwwwgwwffwwwwgxwvwfgvgffxwwxhgxxxgwwgxxwwxwwwwwwgffwwxhvgvUUxvwwWVvvwfWgvgfdxwwwwwggfVxwwwxffwxwwggwwwwwfVVVwfwwwfVVxvwwgffwgfvUgeeUDhwxwefvxwvwuffUExwwwvvwgVuwwfeeFVxxxwwwxwxwwwwgwwwxwwxwwxwwvwgwgfvwgfgvwwwfvwwfvgggxwwgggfvvwxggvxxwwwxgwxxwwvfggfvxvgwwxxeevvvggxwxwwwwgffvggfvvvgwggvgfgvxwxwwwwwgwgxwwwwgewuwwwfwvwTEvwevewwwxxwwhwVUUuwwgfvffwwfvgffUUUvwgfWwUUfwwffgUDwwwwwwwwwxwxwwwwvwwwwwxxwwwxgvgvwwwvgffvxwwwwxvwvgwwwgwvwwwwwwwfwvgwgvwwxwggwwwwWewwwwwwwfffwvvgvfggwwwvgffwwwvwwffgwvxwwvvwxwvfffhwwxwwfvfxwgvvgfwwwwwwwggggffxgwfffvgwvfUVevfvgfUVeeUvwWeVeUvwxWUUfffvfvffefVVfgfvffVfxwxwwwWvxwwwwwwVfxwghhwxgfgfFewhwwwfvvevwegwFefgfxwwfvwvwvvfEegvwwhvxwgwwwwfvxwwwwgwfwwvgxgvwwfFfxxxwvvwwwffwvVftwwvgvwVwfwvfxVwgevVVgwwwuuVwwvffdeguwwwgvgegVewwfwwvfwveeffUUgvwwvVfguwwwU5UeVxwghfwgweFgWVvgU5xxwggvxwvxvgwhvwVuvvwxfxwwwxxwwwvuwwvvgfgWffdxwwwwwfgvUwwwxwvgfgvgfvwgVVFwhwxwxvwhwxwwgvxvuvxwWgwhwguggwfvfgfUgffwgvfVegffVvwwvgvvgwfVwvfwhvwwwwwxgvxwxwgfwwvgfwwfVFgVVwfffdeFeVVwxwgffFUfSwfwVVwvvwWgeugffffgVVTfgvUuwgeefVTTsvfxwxwwwhxxwwfwgwxxwwghwgwfvfwwgvxvwvwfUvxwwxwfwwhwvwvVwwwwfwxxwxwwxwwwwxwfwfvwwhwfwwvwggwxvVfwfwxwwwggewwwwwxwwwwvxgvwwfVvwwwwwvwgxwgvhfUwggwfvwfgwfwfwgfgwVEdwfwgwfvvgUDvwwgfvfffwVEdggfgfvVfgfhwVEdwxwfgwVvffggxwwxwwhfvxfwwwwgwVwxgwwwwwvwwwxwgvwVvgUvxgxwffVwVewwwfveVgfxgvWUwxxwfwgVfVxxwggwwfwwxwgwvfvwwwwggwggwwvwxgvgfeuwwwvVVwwwWgfffUwwgwwwwewfvfVwfwxwgfgewexwvfFfwfgwwVgfwfUxgvwffVuwwwwggVwgwfVvfVUDwvvfVVTtwvwfffVUEtvvweewgfVwffVefewxxxwwwwwxwwwwwwvhgwxvwvfwggwwwvfwggxfwwgvwgfvvfwwwxwwvwwgffgvfwwvwwhwwwwxxwwvghxwwwwvxwwfwwwwwxwwffwwwgwwwwxwwwvwgfvvwwvwwvwggfvxwfwfwgwwgxwwggfvwwgvwwgwgwwwgwggffVVwwfffwfwwwwwgffVvwwwwvUUxwvffgffffvgwvgxwfUexwwwwgvfgvgwxwxwwwwwwxwgwxwwwwxwwwwwwwxwvwwwvfvwwwfwgfxfgwgfvvfvwwgVwgexwwwwwvwxxxwwwxwwwwwxwwwwwwvfvgvgvwwwgggxwfvwgfwgffggfxgwxwggwwwgwffvwfwwgwwfwwwwwwwwgfwgfxwxwwwwxWgfvxgffwgVgeeVVVUwgvwgwffwgvwWUeeUwxwffvwgUfvfvfUuvvgfvvvwvxwgxwwxvgvwxwwwfwwgvwwvxwxwgwwvvfWewxwfhwwffwffgegefVfwxxxwggvwfwwvwvxxwxwgvvwwxwgvvgfwggvwxvfwwwgfdgvVWfwWwwxvugggvuwvffuwvuwwwfwwvfxgwwvgvfgWwxwgwwvvxgfwfwffUDffVFUwvxwwvgfffuwvggfvewwfWfgeVVEffVTExfwfWxxxwfwgWfVggwwgwxwxxfxwwgvwxvfwwwfwwwfxwgvfwwgguwvfWwwwwvgvfuvfwxvhwvgwwUxwwwVuxxxwwxgxxxwxwwwgvvxwwwwwwxxwwwwvWuvwfUwwwwwwwwxwwwwvwgwwwvxwwwfwxgwwwWvgfxwxwxwwfwwwgfwwvffffdvfVFfhvxwwwwfeggfwwwwgffuvggVgFdfffeDvfwwwvwwwgvwevwvxxxwxxvwxgfggxwwwwgvxwwwwwwxxwwwfVwwxwwwfvVvwfuwgwVwffxwxgvVwwwwfvwwwwwwxgvgvWuwwfwwwwwvwwvvwwvvgvwefFxwvwwffwwwgxgwvvwwWxwwwvwffWuwwuwfwgwwfwxgvWxwwgvWuvvgffgvfDU3wvwgfffxfvWuwgvfvgfwgDU3gfwfgefEffwgfwUwwwgfwxfwwwgxwxwxwwxwwwwwgxxxwwwxwxxwwwxwxxwwwgwfwwwxwxwfgfwwwwwwgffwwwxwwwxwwwxwgfxwwwwhvfxxwwggxwwgvffffUwxwwxwwggxxwxwwwwwwwgvwwgggfffUwwwwwwwwxwxfffxwgffgffeUxwwwwwwwvgffxxwwwffVuwvfVUVexwxgxvwfhxxfwwvwxwxxwffvvgwfwwwwxxxvwxvgvfvffwffwwwxxwwvvgwfwwxwwfwvwwvwxwwwwwgwwvwwvgvWfeewwgwgwvhwvvfvfwVvwggfhwwgvwfwgwfvfvwffwffwuwggWwVgvgfgvvgwvfeFUEdfVfvufwgwwwfvvVwvgffhfweVVvwvvgTUDfVfgxxxxxxwwxwwwxwxxwwwxxwwxxwwwxwfvwwwxxwxwxxxwgvwwwgvxxvgwwwxxwwwwwxxwwwwgfvwwVefgfwgvwxwhwvwwwVevgfwwxwfgfffwwwxgvwgwxxxwwxwwwwwwwxxwgffwwwwwwwfwwwwwwEEfffgwwgweVUeVwwfwwvhwvwwwfwwvVfUUfeffvWTtwxhwvxwwxwwwvxwwwwwwwwwxxwwxwwwwxwfgvwwvwvvfvwwwxwwwxwwgvwwwfvwwvgwwfvwvwgwxxwwgwwwxwwwvffvgwwuvwwxwwwwwwwgwgvwvvWwwvvvuvwfxwgwwvwwgguvggwwwxxgwwvwwwgwvfvwffwuvgwwwwfggfufwVfeUeWuwffeUefuwvwfwggxvxwwggfvgffVVUgggvfVVUvWvVwxxwwwwxwwwxwwwwxwwwwwxwwwwwwwxxgvfgwwffvgwwxwwxwwxggfffwgwwffgvwwfwwxwwwwwwxxxfwwwvwwwvfwfgvwgvwxwxwwwgggfwwfgfwgfffvwwwwvffwwwfwwvxxxwwxwgfwgwgvwwwwgfgVgvvwgfuwgVgUVUgVuffvwfVfewgwgfvwuwgwwvgfweUeweffUvwWeUvffuxwwwwxxxwxwwwwxwwxgxwwwxwggfwwvwgwwgvxwwwxwwwgvwfvxwwgvwxwwwxxwfxwxvwwwwwxgfVxWfeegvwwwwwvvggVuffugvwvVffVfuxwwfwwvwgwwwxwwwgvffxxwwvxvvvvxxwwwwvvWUcfEdwxhgVWffuxwffffwwwvfxwwfwggfeDU5gvgxgffxxwwwwwwxgwwggxwwwwxvxwwwgwwwxwgeggvwxwxxfvvgwxwgvwhwwfwxwwWVwwwwvwwwwggfxvfhxwwwegggxgvwwwfwvfwwwwggfwvwxwvVVwgwwwwgwxwgfggVxxvwxgvvfwuxgggfggfggfwfwgvwwgUfffuwwgvggfgvwggEEDwVwgwUvvfvgwwVTDtwvgwwwvevwffeuwWfuxxvwwvwwwgxgwgvwxvxgxwwvxwwgwxxwgwwvgffxvgwxgwwwfwgwwxvvgvwgwgfvwvxwxgxwxwwgwwfwwgvvwvwwWwfwffwxwwwvwvgvuwwgwvgxwwwwgfvwwwwwxgwwwxxwwwxgxwxwwgfvgvxwgwVfffUexwwwwwggVUvwgffuwWwwwfefWggffUeffwwwfWwwwwVfUUwfwVxwwxxwwxvvwwxwggxxxwxwwwwwxxgwwwwwgwwggwgfvgwxvwwwgxwwwgfwwwwwwggwwxwwxwwvvwwxwxxwgwwwxwvwwwwwvggwwvwwwfwgfwwwgwwwwgwwwwgwwwwwwwwggxwvxxwwwwwwxwwwxwvwwxwwwwwwwvvwvvwgvwwwwwwwgfwhfwgvwwvwvvwwgvvwwwwwvwwwgvwfvwgwwvwwvwwwxwfxwgxxwhfwgwewxxgvvxfwwwwWvwwwhwwfXvexvxWvvgwwwxvgvvwwhwvWvegwwwwvWvwhxVwwgfuwxwwxfwwvxwvgvuWwxwxhwvwghvgwvGfuvVvwwwfEfeWUSuwfhwgweVgxVwwgfdfEfvffeeWfwwfgveFfxwwfgwvffWdeWff6UwwfgwwgxegvegwVgwwgwdVfWvfgSUvwwgwxxxgxwwgwvxfwwwwxwwwwwvgwxxwwwwwwwfwfffxwwxwwwxwfwfwvfvvfvfgwgwxxwfvfffffgwxwvxvgwxxwxwwgvwwxvwvfvefvvfwUfxxwxgUvfffgdEUgvwwwwXgevVexwvffvffffeUfUVwwwwwwggfvffwwVfufgUVUuVfDUwwxffwwgwfwwwWevvWfVfwwWeVfVFTeuWwxxxwwwxwvwwfwwwvvwvgvgfvwwwxfvwvgvWvgxwxwxwwwwwvgvfvvwxvwvvWvwwvxwgvgfvgwvwxwwvwwhwwwwxwgwwwwwxwwwwhgvgwwgvwfwgWvgewwWeUvhfwgwwxvwwffwegeUvefvegveWvvvuwgwvwewvfewwhvvfwWeUvwwgvvgwwvfWvwwwwfwwegfvVVeuwwegffwegegvwwwwwxxwwwwwwwwwwgfwxfwwwwwwxwwwwggwwfffwxxxwvggwwvfgxwwggwwwwfwwwvxhgxwwgfwwgffxwwgwwwgwgxwwxwxxwwwfwwvfgwwvfgwggeewXVvwfggwwUDUeexwhgwffwwwwVfewwfVWfUffUxwfxwwwgefvgvwwfffwwfUfwfgTTxwwwhffvxxwwvvffggffvvwGEuwwffVVfwwwxwwwwgwwwvvggwwgfwwwwwwwwffgvvgfvwwgvwgfvwwwwwwgfvwhwvxfwwwwwvxwwwgvgwwwwfVewwgvvwwwfwwwwxwwwgvwwvwgwwwwxwvggvWvvwgwwwwfvfWefwgevvwwwfgwwvgwVevwgfeWeffvveegwggfwffffwffvwgfffwWfewwwgwgfvwffwvvfvvgwwvxwwUfgwwxvwUVvffvwwwwwwwwwxwwwwwwwxwwwxwwgvwwwwwwwwwwwwVfwwvwvgwxwwxwwwwfwUfefwwwwvwwwwgwfwwwwggfwfvwwwhvgffvfvwwggwwvvxwxwwwwwfvfvffvfvwxgfwwxwwgUUfwweefvwggvwxwwwwwgvUfeVfwwwwwvwwfwgffwwhggwwWVuefUUffvfwwfUfwwwwgvgvvvwxwwwXUVfefeeffwwwggwwxxxgxxxwwwxwgxxwwwggwwwwwwxvvvwvfwxwwgvwxvvvwwwwvwvUVVxwwwxwwwgfvvwwggvxwwwwvwvxgwwwvvwwwwxwwgwwgvfxwwvuwvffvxgwwxwwwuewwWgwvvfwwWVvwWeeuwwwgvwvVVfxgwxvvwgWeeuvvhgvxwweugvUVVwgxxwvwfgeevwwWgwwvwggwfvVggVWwufwwgfwwvwgggufvvvwvvxxxxwwxwwwuuxwwgwwwwuvwwwwfgwwhfvwvffwwwwwfxwwwwwwxwgvvgxggwgwvxwwwxwxgvwvgwwgvwxwxwvwwwwwwwfgwwgwvwwwxwwgwvwwwwwwgfwwwgevfweVgwgvwfgggwwwgvwvvgwfvfgwefwvwwfvVVgfWfeffwwxvgxfufVvvgwwwgfgvgvgWfgvvWfwwwwfgvfwwwwwgffgwwwwxxxwxwxxwwwwwwvxwfxwgxwwwwwvvxwfxwwxwwxggwwwwwwwwvgxwwwwgwwwwwgwgfvwxgvwvvwfxwwwwfwvfwwwxwwwwwwhwwwwwwwwxwwwwvvxxwvwwwggvwffwffwwggffvgffwvvfffhvwgfffhwvwwwgfvgfvgwfwfffwwwwgffvwwvggwgfgwfwfffwvvwfgwffwwggwwwffwwwfffvwggxwgwwwvfxxwxwhfwgfwwwwwwhwwfvgwvwwfvggffVegvxvwggevwwwwwWvwwfgfwWffVwwggxwwwVwxgfwWVwwfxwxwwwwgfxguxwvgwegvwvggxwWwwhveVwfUvwfwwvfUeEExwwwgVuvexwgwvFfwfvVVwVUeFvgvwfvVffUvvvwwvVVfffVVVgeTEwvggewwwvffeFUwxvwvgvvveWfefewwvxwwhwxwvxgwgwfvgfggfvewfgvvwvgfwxfefxgewwvfFfgvgvvxhxugwewvwwxxvxvgvwffVwxvwhwwfwwwvgwwWvgwvgwxfwxxhvwwWvewvgwwfVegwgUvffvfWwvgFevvfgwwVwxwvwVgfTvvvgwgwfVVfgweVfwfwwxgvgVVfdvgvgwggwwwFfeWfvgwvxwvVvwxvFeegvwwwwwxwwwwwxwwxxwwwwwxwffgvwwwwwxwwwwgfwwwWvvWwwwwxxwwwwwwgfvwvwwwxwwWwwxvwfvvvwwwwxwwvvfvwgffwvggvgwwgwvgwvwwvwgffxgwwgwhvxhwwwwwwfvvwfewwvVvvVfggvwwfgwvwwwfevffwwxwvVvwxffufvgefgegVuffvggWvvWwfggvwfggefgfgvwwggevwUffwwvwwwwewwwwxwgxwwgxxwwwhvwwgVvwwfwffwwwvwwgvgfwfwhgufwfwwvwgggwgwhgvwgwvwwvgwwwgwvwvwwwgwwwvwwwwwgwwwxfvwwghwwwxxwwwxwgvwwwvfewwvwfvwgfufwVvwfwvgggwfvghwuvwwwfwwvwwfgfwfugvfVgwfvwxwvvffguvwvxwfvwvgWggfggggggwwwvffgwxwwwggvfwwgvwwwwwxwwwwwwhwwgvgvwvwwwfvwwgfgwwgffgfgVugfwgwwffwwwfvgvgfvgvvgwWevWvwggwwvwfvvwwgwgwwwwwfwwfwvwwwxwwwwgwwgvgfgewwvvggwwwfwfwvgwwWvwwUfVgvVffeffwgvfwfvffVfwuwfvfewWggvwfgffgwgfUeWUffffvgVeffvWwffvWgwfgvwVUffffugevwvggvfwgUfwuvwvwwwgefwfwwwwxvwwwwwwwwggvwwxwwwwgvxgvwxwwwgwfwwwfwffwwwfvwfvwfvwgfwwwwwvwwwfwwgwwvwwvwvvWwuwfgxwvvgvfwgfgwvwwwvgfwvfgwvevVgwwwwwfgffvwwwwwfwvWwvewVVwwwwgfeugfvxwwfvgfgvvfefeuwgvfwgvvwgWeuwvwfVVVwfffgfvvxwwgvwvvgvwwgfffVwwwwgffwgggfffweegUwwvwgwwwxxvwwwvfvxgwxxvgwwvgfugwfwgxxWvwgwvfUwwghVuguvWgwgvvgwUfwfwhxwgwWevhvggvvwwwgvwgfvwwgwwgvgfgwwvwxwwgvwgwwgwwwgfgfvwwxxwgvgwxwggfwvwfUvwwggvgufffgffwffUfwfvwwwvgffgvwgggVfwgwwgvegVffuvwxwwgguwWwfgfvgwgwvgffvVvffffeffgvvwvvxvwuvxfwfwxwwxwxwxwwgwgffwffggwwwgwwffvffwwwvfvwwgvgxffVVxwvffwgwwwwgwwfxwwfwxwwvffwxgvwvwvwgfwwwwwwwwwwwwwfgwffffxwxxwwwwvxwwwffUwwwgVuwfwffhffVVfvfUfxgxxwggwwfwgvwfgfwffwffUVvwwwwwwgffeuxwwwwVVwwfUffffffwfgvfxwwgwwwwvgwgwwwwgfwhgwxwwxwgvxxvfvVevwgvgUvhvgvxwwfwffvvwgvvvwvgvvfvgwgfvgvxwggvwgwwxwwwwgUvxwwwwxgwwwfwxwwwxxwwwwwgUvwgvvwwwxxwxwfgffwwwgvwvwgwffvwffUvffvgvwvwgwwwwffwgwxfffVDuwgvvggvwgwwwwggxxwwhWDugwwvgUfffvwvwwwwwfxwwwfxwxxwhxwxxwxwvwxwfggvfgxwfwfhvfvwgwhwwwhvgwxwvvwvgwxwwwwxwwvwVwfgvfxxxwwxwwgxxfwfxghgvwhffvfVwvwxwwVwfgvevwxgvgvwggwVwwgfvVgvffvefwvxxxvgwgwwfwhvfvfgvefvfVwvxwwwxwgwfgffgfvgwwfgfwwwugfWfvgugwwwxwxggwwwwwwxgwwhwwfgvwxwwxfwwwwwwxgfggvffvgwwwxvwwwfvgwwgwfvwxwfgvwxwwWgxwgwvvvvVfvVgwwvgvwVwfvwwwwwwwwwwxwwvvfwfwwwggwgvgwwwwwvwwvgfvfffVfxwhfwvfvwwVgwVgfvvggfVfxwwwwwhfvwvwgvfvfgwfffVgfggvwwwxvwwvwwwwgvfvgegvuggfwgvfvgfvwwwwxwvxwgvwvwwwwvxwxxwxwvwwwxhxggfwgfewfwxwwhwvwvgffvwvwggfffvwfvwwwwwgfhfwwvfwxgwwfwwwfvwfUwwvwxwwwwwwgfffffgwwwvVfvvxgwWffwgffefUvwwwxwwwwwwgvfgfevgvwgfVfvuvvwxggvgfwvfeffUvvfgfgfVfvvxgwfgfwxxwwvwgggwfgfVffgfffwffWwxxwwwwvxwxwvwxwghwvwwwvwwwwgvwwwwwwwfwwfugggxxwxfwwwwwVewhwwwwxvWfvxwwwvwwxwVgwwwewwwwwwwwgwwvwuwgwwwwxxfwwwxgvgWwwuwgwVWgwvvwgfFfwwfdggvgwvwwxgwgxwVewgwwfxwwfVVwwffvggfvwvwwufuVFfguwgwVFVwwwwgUvvvwwwwgfeuxwgwwvgfefwwwvvWvvwwwwwwwwxwwwwgfvxwxwwgwxwggwwwwwgvxwwxxwwwwwgvwwwwwwxwwwwwwwwxwwwxwwwwwwwwwwxwwwwwwwwwwxwwwwwwwwwwwwwwwxwxwwwwwffwwwvfgvvwwwxwwwwwwwgfgwgvwwggvvwwwwwwvvwwffwfwwffffwvfgwgvggvvwwwwffwfwwwxxwwwwwfgwfgwwwwxvvwwwwwwxwwwwwwwwfwxwxwwhwgfwwwffwffwwwwwxhffwxwgvwgwxxwxwxwwgvvfwwwxxwxwfgvwwvfvwvgvwwxwwwwwggvgwwwwwgvwwwgwvffwgwgvxgwhwwwgfUfwvfvwwwwgfwvwwwggvffffwgwwhwfgwgffvxfwwgVeVUwgwgvwgwwwwwvwgfvwwwwwxxwXUuwvggvgwwwvwgwgxwvwwwgwwxwwxwfgwvfvhxwxwvwwWvwuwwgwxwvwgWfwfvwfwxwwwwwwwwfwwgvhwwvwvfeguxwgwwuxwxwfvvfwwvwwxgwwxwwgvgWvxwwwwwxwwwvwvggwgexwwwwffeVwfvxwwewffwxvvffvgvwwgeVeguwgwwvgeVVUwxxgwwvffwvvvfeguwfgWvwvxgwVVUvfwwxgvgfvVwfgvfvVvgvwwwxxwwxwxwwwxffewwwwxfggvVfwhhvfwXgvwwwwwwwwvwfwwxwwwwxgvvWwxwxxwwwwwwvwxffxwwgwxwwxxwwwwxxwwgUvwwwwxwwgwwxxgufwwwXWfwwwgwwgwffwfwwuwffwwgguvWwwgwxwwwUEuwwwwwwwwwxgfggwwwwwxgUvwxXTewuwwwwwwwxvwwxvvwwwwwwvwxwxwxxfwwwwwefvxfvwwwwwwVvvwgwgWgvwhVwwvwwwwxxwgwxwwwxfvvwwxvevwvfwxwwhgvhfwvwggfgwwvwwwwgvfvwgvwgwwhfwwxfwwvwxhgwwhgvwwgfvvvwgwxwwfwwwwhUvwvffwwwwevwuffwwffwgfvfWUuwvvfwwvvvxwwvUeggfwvxwwgwxffhwWfwwvgwxvgwwxxxxwwwwvgwxxwwxxwwxxwwwgwvgwwwwxwxxwwwwwwwvgwwwxxwwwwwwggwxwwwgvwgwxwwgwfwgwwgggwgwffwxwxwwxwwvwggwwwwwwxwwwwwxxwggwwxwwwwwvwwfwwwgvggvwvggwfgfffxxwwwxwgwfggxwwwwvgfvvvvvffvxxvxwvgxxggwwgwvxxwwwwwvxvxxgwvvgfgvGVdwfwgwvgwhgwwgxvgfgwvgwwwwwwvwwgwgewwhvvwwgwwgvgegvgffxvxgwwwdEVxvwwhwvwwGfeuwgwvwwwwfvgeweWVduxwwgvwwwxxfwvhwgugwvgvvgvwggwVvVveEfgfwvhwvge'4BcwvgvggvgwgffffgwfwwdEVwxwwdUVfgvgxwgwxwwwxwwxwxxxxwwvwwwfgvgwxxwwwwwwwwxxxwxwfwwxxxgwwwxwwwhwvxgdvwwUeeVewxxwwwwfgvgvwwgfggvvwvxwwwwwgwvgwxwvxwwwwwwwwwwwxwvgwwxwwwwwhfgwwwgwEeeVfgvwgveVeTVhvwwwwxhwwwwwvwwvWfeFfvwfwgeuwwwxwgfwwgvwgwwgwwvfgwfwwvwwwxwwwgweVeVUfeWefvwfwwwgwwgfwugvfwwwvWwwgwgwxgwwwwwwgwwwvvwwuvwfvgVfgfeefgvwwvwwugwwgwwwffgfgvvvfvVfffvfffdgfvggefuwghwfwgfgwWwfwvvvgwuvfvvgwWfVgfveeeVffEeVgeTfVgTeeUUFUuVvffWvwwwggfgwufgffVefWvefffgvfefxwwwxwwwwwwwwwwxwwvxwxwwxxwwwgffwfffwfffxwwxwwwwgwfvvgwwwvwwvwwvxggwwxwvwwwwwgwgfggffffffgffgfvwwwwwwwwvfwwvffffggwwfwvxwwxefgwfefffgwwwwxwxwxwwfvgWwwwwwwffwugggwwwgggvvWfUVffUVVUfffUeUefgfgvfffwfvwwgfgfgfvfegffgvwffwwgwwxwwxwxwwfxwgvwwwwwwxwwxxwwwwwwfwffwvvwWVexgwwwwwwvvvfffvwwxwwwwwxwwwwfwxwgvwwwvvwffxvvwgffvxwwwfwwwwxwwwWVeugvwwWETuwwxvvwffhvwwWVeggwwwwxhvgggffxwwwwwwwwxgfvwwwffffgfff6#2cvgffVVeefvwwwweUVwwwwwwwwwwweUVfffffwwwwxwwxxxwxgvwwxvxwfwwwvwwwwwxxxxxwVevwvvwvfffffxwwwwhvwwwwggvwfwwwxwggvgwwwwvwwwvwwvwwwvffwwgvfvfeVVfxgwwwxgvwvxwvgggwwvgggWwvfwffwwfwgveeUVVwxfggwvwwwwwwwwwggggwvwgffffWUVeeuffvfVVffufVfUUUeUgwffuuwvfwvgfefwvwwwvwfvggvfffgfgvxwxvwxwxvwxwxxwwwgwwgwwgvgvxwwwwwwwwxxwwxwwwwwvwwwwwxgwxxxwgwvUfwwgVuwgffxxwwxwvvwxxwwwwxgwvwxgwvwgwwvwwwwgvgvxwxwwwwwxwwwwwwwwwwgwwgwvwUUvgfffwgwwwwvgwfffvwwWUwwwwwwwwvfgvvwUfwwwwxwwwwvgfUvgwwxwwvgwxwwwxwgwwwwwwwwwwwwwxwwwwxxwfgvfwewfvwwegvwwvgvwwgwvwwwwvwwwvwwgggwwwfwwgvxwwxxwwxwgwwgUgwwgVvgwfWuwwewwfgvfwwvwvwwfVgfwggwwgvgvwwUwfwgUgfwwwwgvxvvwwvggwwwwwwwfwwwweFdWffvGdfeFUwwfgfvvTeeggwUfgfgUgvvWvgvvWuggwgVgfvvvfgvwUwfwwwxxwwxxwvvwxfwwxfwwwwwwwwwwgvfvfgvfvwxwwfwfwwggvfvwwwfgwvxxwwvvwwwvwVexhUfhvfwxffwwfgfwhgvwgvfvvgwvwfgvwwwfgvfvxwxxwfvwwwwxwhgwgvgvvgwvwfwVegvfgfwffhfvfgvffvfVfuwwwwfwfgvfgffhfeVwwfwfwhwwwfhfeVvgxwwwwwxwwwgwgwwwwwwwwxxwwwwxxwvwwvggvffvgfwwwwwwwwwxxwwwgwgwwxwwgwwwvwgwghvwxwxwwgwggwwgfvwvvffgfffwgfvvwffgvfvggvwvgfwgwwgvvwgffwwvwgvfvfggwwwfgfgwvxwxwwgwwvwggggwvgvgvvfVUUfVuggggvgveeefVfgvffwvfffgfvfgwvgfvwwffgfwwgwwgwfvwwwvwwwgxvwwgwwwwwwwwfwvvvfgwwgwwwwwgvfffFffvvvWfVvwugfwgwvguvwfgwfwggfwwfvwvwwffwgwgvwwwwwvwVfwgfwvevffUfwvwgwgfvgfwgvwwffwwwwvegfgfUgVUgVewgwVffVuwfwwwwwhwfwWwvfvwwgwwwuwVVTfgfWfeUdvevefeTfeefeeUUVUtgefvVVfwwvgwvfffgxfgWfgWffVwgffWfVwwxxwgggvvvwfwhvwxvwhwvxvwwwxwxvvffwvfwxvgefWfggvwwxfvgvwxwwvghvxwwxwggfggwwwvwwfwxvwgvvvfvgVvwvfefWfwgfwgwfvgvgwwvffWfvewhwfgfwwwfwfVwwgugWfwwwwwxgvwxwuwWgxwxxwwfwvvgUevgfUffuvgufeVVUwvwgwfVVfVffvVgfugVwgvgfufwwgvvfvvefwvffvxwvwwxwwxwwfwxwwwwwwwgwwwwxwwxwwxwwwxwwfvWuwgggvVuwvwwwwwwwwwfwwggvwfwwgvwgwwgwgwwwwwwwwwwwgggewwwwUvgwuevwvWwgefwfvxwwwwwvfwvfvwfgwgvgfvguggvwwvfuwwwwfwgvgwwvwvwwwwwwwvvwggvWVEvfVggVeEfDvwgvfvgVfFtwfgVugfWfvffwVwgfvuuwgWewgfggvwfgwUwgwwxxxvfgwvwwgwvwhwxwxxwgwwhxwhvvfvueVwwVwwgggwwwgwwvvWgWvwWwgwxwxwxvfwvvwghwgwwwxwfffgwfggffffgfvffwwwwxvwwffwwfgfxwwwvxwwwwuwgeVgfvwevgwWxvwvwgwfwwguwWwwwwgwxxxVUeefVegwvVVUffvgggUvggVVewwufWewvuwfgwwvvvwhvVuweguUvwwfgwwxgwwgwgewvxwwwwfvwwxvwwwgwwwgewgfwwwVWVduxfwgvwewggxwgwxvwwxwwwfvgvgwwgggwwwwvvwgewgvwgwgfffxgwwvwweVFgwwwvvwWVdtxwgwwgfggxgwgVVdxvvwfgfwggxxxwwwvgwwvvxvvwwwfvgegeC#$wvgwwvvVfVduwvfgxvxweEFxvfffeUFvfxvwggxwwwwgfwfvgwwgwvwwwwfxvwwwfwwxgvwwxxVffgxwggfwvwggfvvevvgwvggfxwwfwgghwwwggvwywxwvxxhxxvfffwhffxwwwwwgfvwwvfwwxxxwwggvwxwwVffgxwggfgwhgwgfvfVgvgwvggfxwxwvwgghhxwvvvfffewfewggxwwwgegVvwxwwwxwwwxwwgfvwvwvwxwwwwxxwwfwwwxwwfwwgwxwwxwwwwwwvgwwxwxwxwxffwfgvfvwVgvefwwgfwfwvgwwxfwwwxwvvgwwfwxwwwwxwhfgfgwvwfwggwvvgUvxwVewgwwwwwvwwwwwwwfgvggfvfwgwgvwvgggvwvgxxfwwwwwwxwgUDUfeUUvVgeffVfwufffvfvfvfwfgffvvgwfffgvfggwxgvwhwfggwwwwgwwwxxwwgwwvwxgvwgwwxxwwxxwwxxwewwvxgvVeeVVxxwxewwxWwwgxgvwxwfWvwwwxvwwgxgvwgwwwuwwfwwuffUVUxgwwxvxwwwvgve5VxvgweEVvgwwfgwguVeeVVxxwxfwwwxwugwguxxgWfwxxgvwwgUfvewgvffeEVVegWfC\u00134ffwxvxwvwXfeuxgwwvWeUewVfeugfvxxwwvwxwvwwwvwwwwwwwwwxwwxwgvwgvvffeUfUuwgvxwvgwvwwwwwwvvwgwwfwwwwfxwxxvwwgvvwwwgfvfwvffeffUwxxwwwvggwgwvgwfgvgwvwwegvvwgwwvvfVeffffwxwwwwxwwwgggvwvgvwwwvfwgwgffgfWffVffffvffUfUUfUUUUUegwwwgwvvwggffvfgfvwWewfvfgfVfvgfgwxwwwwgwwfwwgggwxggwxwwgxwhgxwwwvevgvWvfWvwxwwwxwxwwWwvWwgwwhwfwgggggvxwfgvvggxwwwvggeffvVffWfgwwwvguvvwfvfgfWffvwfwfgfwwwwvhvfggfVvfWfwwwwwxwggvgwghvfvwfwfgvvvwWvfvwvwwvgVUVfUVeVevVfeVfeffffvgvfwevgvgffwwewgefvegwfgevwvgwxxwgxxxxwxxwvwwwwxwwxwwxwwgwgwwvwwwwwxwxwwwwgxwwwwvvxwwwwxxwwxxwwwxwwxfdggUeeewwxwxgwwggvvvhwwwgwfvvxxwhwwwggvwvvwwwxxwxwxwxwwwwgvwxwwgwxwgvggwwwgEefeufvwwfeeUVtwvwgwwxxggwwwfwwwfVVfFwwgwweewwvgvxxwwwwxwxwggwxxwwwwwxgvfwffggvgwwfwvfwhgwgvwwwgwghxwxwwgvxwxwwwwvwwwwgwfgvvgfvgwvggwwwwwxwwxVewwhwVewgwwwwfvgvvfgwfWvfWfvwvgvwxwwgvwwwfwggvgwxVffeefffvfVETVfvWgUUvVgvfvvgffwfwvgfvvffwwwwwfvwvfwfvwgwfvxwxwvvwxwxwxxwxxwwxwxxwggwwxvvwwwwwwwxxwwwgfwwwwwxxwxwvgwxxwwhwxhXwwfffuwWUewvvgwwwvvgUfwvvwhwvxxxgwvwhgwwwwwwwwxxwwwwfvwwwwwxwxufgffwufWUevfffwgffvwwxfvwxwxwxwgfwxwfgfwwwxwwwxxwwvwvgwwwwwfwvwgvwwwwwxxwwxxwgwfwwgggfgfvgfwwfwvgwvwwwwgwgfwggwgvvgwwwwwwxwwwwvwwwwgfvggwfffvwffgfvggfwwvfvvvgwgfvwfgggwwgwvfwgwwvfffggxwwwwgwwwwwwwgxwwxwwwgwwwvvvffgeUffugvvvgggUUUfVggfffgggfwfvvfwwvfvvvwgfffvvvwwwwgfvxgwwwxwhgwfxxxwwxwxwwxxxxwxwhfwwgggvfgffwvwwwwwwwwxxwxvxfwwwgvhgwfwxxxxwxxwxggwwwwvgwfwvfwwwgwwffwwwwwhfwwwvxfgvfvvvwgfvwvvwxwwgvwwvwhgxwwwwgvhfffgvUefgwffffvffgUuwffwvvwgwwffwwwgvwwwwfwwwffwwwgfvwfwwwwwggwwwwwgwwxgwwxgwwwwxfvwufvxwfVvffwwwwxwwwwwwwgfwWvxwxxwwffvWwxwwwwwwwwwwwvffvgfvgfffffvwfgwwgfvwfggfwwffgwwwwwwfwggfvvfvwwwffffxwvxwxwwwwgfwggwxwwwwwggWUfwwWUffffwvfeeUfggwgfUeUfVwfffvfegfwwwwffwwggvffvffvgffgvxvwvxwwfvxwwfwwwWeVfevwwwxwxwwwwwxwwwwwWefffwxfwwwwwwwwwwgvgwvggggfwgwwxwwwwwwWfeffvxvggwwfvfeVeUwwwwwwgwgwggwffVeffgvfWTEETtwwwwwwwWfUVfvwwxvgwwwwwwwwwwgwfgwggfgfvwwxwwfgwgwxwwfffffffffVTEETxwwwwwwwwwvfvUVwwfgffffUVVgeUVUUvxvwwwggxvvwwgVVfxuUfxvfxxxwxwxwxhvvxwwVVwxeeugwwwvgxwggwvfvgfvvvvvvVVwwvgghvghvwfFwwvfewgvvwwwfgwwfffgwwuvWfVfWwfweguwgVedvv5ExgvwhvwfFwwfdefxwvghggWxxvuvfVvwgwvvggwgwwuvWfVvfgwwfwfgwVUcvfv5EhvWwWvgwWgwggefggfFvxwgduggfeedexxwwwvgwgwwvwwgwgwwxwxwxwwwwwwwwgwgxvwwwwwhwgwwhwwwwgxvwwgvwwwwgwgvwwgwfwwWgvfwguuvggVwwvwgwgwewugeuwWVUvfWfVfgffuvwgwwgwgvwvWgWwxwwwxwwwwwgwhwwwwwwwwvvwvwwwwxfvfwfvWfVvfVVUVVUfuwwgxvwvwxffvwwWggheUevgvfgvgvWgfgwwwwxgvwxwwhUvwwwwfVVwwwxwxwwwwwwgUwxwwfffwgvwwwwvgvwwwffwxwwwwwwffhxgfwwwwgVxwwwfffwfvffugvwwUeUffwwwwgffvgffgEUTwwvwfffEDwwwgVwwffeVxwfwwwgwwfwwwgfxxwwwwwffwvfxwggwfgvgwfgEUTwwwvwfUfEDxwwwgeWvwwgfgfUuwwgffffVUuwwgUeUewxvwgWevvwvVVfffvWfvvgxxxwwwvwxwwvfwvfWggfvfWgvwfgvwxwwffvefVVvwffgWwwwwwvWfvwvgfffWvfvWgvgwdevgFUuwWgwvfeefgvwdfffeegvgVeFUUvggwfwvwwvfFgffvgWgvwwggvwxwwgfuvfVFvvgvfggwvfggfdfgvgufVVUtwwfWWfUUVuwwwwgfffgfvdfgvvfvvwgvVfUedvvwgwUfeffwxxxwwwhwfgwxwfvvwwfwwvvxgwwxwwwwxwwwgwwxwfvgwwUgvvwwwwwwwwxhwwVwvvvwhwwvuugwggvwvwwwefvwwffwwgvgwgVeevgUVeeefUgwwgvwggWfgDVeUevVwwweddgfwwwwgfuwxvgvvgwwwwxwvwwwwwfgwvfwxxwvfvwxwffwxgvfgggfVUUeddggvvfUegfvWgvggwwvwxgWVwwgwvggWVVvevwxwwwvghgxwvwwgwvfgwwwgffvgeVfhwvwxxwxwwwxxvffwwvgfvwgeVvwwwfvwwgwvxfwwhffvvwwwgfffvvwgwwvffwwwgffwgeVfgffgffffvfffvffvffff5USffwxwvggfVS5uwwgfvvffwwfwfvwgeVvxwvvfvgwwwwwwxgffvwwvggffvfvffvffvf5USffvwxwwgfVS5uvggfwgwvVfegwfffVfeffvwVfexvfVfefffvgwwwgwgffxwwwwgfwfgvvfwwwxxwxvxwwwwgwgfwwvwfwfgvffwwwwgvgwwwwwggvwfwwgwvvffgwwgVghgvvwwvgfWvuvgfuvwwgVfggvwvvggUffveVfvwgggwfvUVVeevvwgggwwgvvfgvguvvwwxwwwwwwxwhxWwuvvwfgwvvuvgxuWgVgfvVffwgfwxvgUVUfevfvVwfwvuVggfwvwwgWfwvwuVgffxgwvgfgvvwvwwwwgwvvfwwggwvggffvxxxxxxwxfwwggwfvggvwgvwwfwwwwvwgfwwgwwwhvwvwwvxwwwggxwwwwgWwvgvfVwwfffVfvfevwgwvffegevgffVvwfffffWwevxwwxwgxwwffgxwwxwwwwwvwfggvwgxwwwwvwgfvwxfgfefhvvgfVVfwffffffvfvwgwffeewwwwwgvvWfwgvvfgeugfwwWfgfwvxxfwwgvwgdvxwwfwffFevxwwwxwwwgfdxwwwfwfvfeVfvwufwwxwxxwgvxfgfwWfggwggwgewgfwwgVUwwfvwwwgfwwfffwwgwvuffU5vxgwwwffwgffUfwfE5gegggwwvUVfgwwvvwfwgwwgfwgwgwffVVggwwvuweeExwwfgvwgffUgvUE5wfggwfwgvwWffFfewwgvxwgedwWefeedwwwvfhwvwggwhxfvgwwgwgwvvgxwghvwwvvxwwvfvwwgvwvgwgxwgfvgwfvvwvwwwxgxvvwvggwghwvwfgfhxvffwwgwvffwwffvwgffvwvgUeffUeegfxgwwgvVeUfwwvvwwwghxfvvvwwggwvfgfgwfgvwfvwxfxvvwfvxgwvwwgVUfwUVegfgwwgvVUVfwwwvwffwwffvfgfffvwvgwwxgwvwvwwvvffgxvxxwwwwgfwvwwvgwwWwwgfwxgxwwwvfvwwugwwWwvgvhwwwgvwgwvwxgwxvxwwggvwvwxwwgfwfwvwvvxwggvfvwwvvvfvgggfvvvgVgvwgdugfggfVfvfegfgwvfVdvgwvvwwwwwwggvgvhxwxfwwggwwxxggwvxwvgwwguwxgVgvwgdewgggfffvWegffgvfVdfgvffvfgfwfvwgwVwwvfwfvgfvwfwfvwvvgvwwwvwfuvgfwgvwwfvwfuwwvwwwwggwxwwxvgvwWfxfwwwevgvwwwxhgwvwwwwuwewwwwwfwvvgfvwwfwgfggvwfgffvfVvggwfuwwwgfgUUfufgVfUwfwwgfvvuffgWvgewwfwgfwwwgwfvwwwwwwwgwvwgvvfgfxwwwfwgvwVgUefegwVVewevvvwvvvffevgfwvfgvgWfgfgvwwwvfVwggWwVfwfwgvgVwgwgwwwxxefVVwwwwffvgggfwwvwwxxwwwwwwwwwwwwwwvvwwwffvwvVwwVUuwwwxgfwFFvwvwwwwwwvggfeVVwwwwffvwwwgwwfvfeegffVVffgwufUUvwgffvffUUffvwgffvgfwwvwwwwvvfvvwwffwwvfwwVUugvwwWwwFFwvwwwxwwwfggfffvwWUeggfffffwwvUUfvfvwgwwWUeddwfVUuvggggvwgddwfvwWwwgggvwwwxwwvvfffgVefVfwwwvfgfvwwwwxxgwxwxxWwgfggVvwvvvgfvfeffwwwWfewwwgvWVfhfwxwfvwvgffwgVwfgwwwwegfVwffvUEgwVVegfvfUuwgVefvegeufUVFuwfwgWWfvvgwfUvfWxwvwvggvvfvvgwgWfewvvwvgVvggvwgwwwfVuwgfUgvfgfdfeVVuwvgfgVfufvfggWVedwgwvWwugwgWfvTwffVfwgvhwvwwwxwwgfegffvwgvwwFfvWfxwgwwvxwwwwvVvvgvgvffwfWvwggwfevfgvxwggvggwwwxwfVdvgvwfUgffwwfvwfWfvWfvVEuxwgedgvvgWfVevfVTUeUugvwwwwwFfufVgguwwvffwgvwvVVffWfgwgwffvvfvxwfWwwWhwwxwfVewwffUwffeeUUdwvxvwgvVVffFfwfvgvfffeeVeffwffeEefvfvwvvwvwgvFfwvwgwwvfgxwfggfwgwvvwgwwwvfvwwwggwvvxwgffgvhgvvwggwvffgfgvvvwwvvxgwvvfghgvggxwvvwfwgggvwwgfvffwwgfvwgfffwfvUVffVVUwgwwwvwgUVuwwvwfwgfvxwwvwggwvvvfwgwvwwwvwwxhwvvfxgwgwfveUffVeUgfvhwwvwfeUuwwvwvgfxwwgvfffffgwvffwwwwfgxggffwgwvvwhhgwwwgvvfwvvwwwwwgvwxghwwwwvghvffvwwwwwghwfvwgwvwwwfwgwwwxwwhvxwhwwwgwgwwwgfvwvvgwxwwwwfwfvgvvffwvwgwfUUgfffvvfwUUwvwgvffwwfxgvgwwvfwwwwgggxvvwggwwwvvwwwggxwwwvgxwvxwwhwfUUgfffvffwUUwvwgffwwvwwwxxffvvwwggffvgwwgwvwgvwgwfwwfvwwxwvvxwwgwwwwvgvfwwxxwxxwwwwwwwvvwgwxwhxwhwxwwvwwwwvwwwgwfvwfwwvvxhwwwfwgvvvgvvggwwffufgeffevxfwxwgffffwffvgffffffeffUfvvwwgxxfwgvvfffvwwxwwwvhvwwwwgvwggfwgvwvwgwfVffffwgvwvVffefVffVfvuwwgwwxwgwwwwvgffWfwggvgVufgfVefWfgxwxwwgffxvvwwvgUfWfvgvxwgwxwwxxwwgxwwwwwwugVggfvffwhxwfwvfwfggwgwwwvfgVfuvfuwwggffvwvwvvVfgVgvfvwvfwWUVffEUvffwgwwvgdvgfgUfVfeVfUffgveVefgwvwgvvfeVfVvffvhxwgvwwhffwwfwwwfVVfuvVuwfwgwwvgeuwgfeVVgvVVUVfgeeVTwgwvwuvggwfvxgWvFvvuvuWggfwggeEvwffuwwwxwvwxgwwWgxwwvvvgwwxwxhxxwgwxggwwufvgwvgwwwwwwufggvwwwwgwgwwwwxwvwxwgWwwvvfvgvwWgggwvuvVVUuxuvxhggvvfwvuvFT%tvvwgVd6efxwwwggwwvvuvgwwxwwwwwwvvuwgvwvwwgwfvwwwvvhxWgvwvxvvvVd6uvewfFT%dfvwwgwgwvwwfwfwwwgfwfeUUffgwvwwffwgxwwggwvwwwwfwwwVfvggwxwwwwwvwwwxwwwweffwwffvwwwxwxwwwwxgwgfwffwwwwwvgvxwwhgfvwwvVuxwwfwhfvvfwfUewvVUfVUgggwwhevxfvgfUUfUeffwgffFTfgwwwvgvxwgfwgvghwwxwwwwwwwVwWewwxxwwgfwgWVvvwwfvwwgwfVDfFTgUwgvfUUfgvvwfwwwwwwwfwwgVwgUffUuwvwfwwgvewxvwgvvwwwvggwwvwwggwwwwwwxxwwxvggwfwvvgfwvgxxwvgvwwvvgWwwwvvxgwwwgvfwwwvwWvgvwuggvwgggfgwvfvvwfffvvwwfggvffedffVFvfuwgfWWvffwwwvwWwwwfggwwfwxvvwvwwwvwgvwwgwvxhwgfvvwwfggwvfedfeVFvfugfggVvfgfgggvvffgwwvvfgwgfwvevfvwgwffxwgwvwxwwhwggwxwwvvfgggwwwwxxwwxwwvwwxwwwwfeewwggwwwwwwwwhwgfgwwvggxxwwwwwxgwggwwwffvggwwwvwfwvfvffWfVVwgfvVVvfvvvwgWEEVVwfuVVwwfwwvwwwwwvwvwwwgwwwhwwwxxwwffwvgggxwwwwwfgfvwgeuwwgVVffvffEEwwwwfvwwuggevwfwfwwwwwheewgwfVvwvwgwwwwwwwfvwwfwwgwwvwvwVuxwwxxwwxwwwwfwwwxwwwvggwwwwwwwwwwwwwwwwxwwgvvvwwvwwwwwxwwwwwgvgWVwwgwvugvgVvgvvwwfgfUUwwfVUuwfvfffVufuxwgwwxwvwfwgwxwwwwwgxwgwwxwvwgvwvgwvwgVVffUwwvwggfvwvvWeVUufxwhgwvfwwgfffUUgWxgwgwvfgfwwfgWgfvxwhggwwwvvwwvvggwwwgwhhwxvvxwhgwwwwvwwffggwwwwxgwwwvvxgwggwxwwggwwwwwvwhwgwwwwwgvfffwwwfvggfvgwgfggfwvwwffffVUuwggffvwwwwUUgfvxvvxxgvwgwwwggggwvvvwxwwwwwhxxgwwxwwgwwfwvwgwffffVUewggffvwwvUUgvvwvvgfffvwgghfvvgvwgwvwvwgwggwwwgwwwwwwwvvvxwwggwwwwvwwwwwwxwwhxwwwwxxgggwwwwgfvwvwvwwwxvgfvvwwxhwvwwwvvfwwwgggwwgeuwwgffWgVVvvfvfgggVTdwwVVwwwfeefvgfgvvwwggfvwgwgghwgwwwvvwwwvvvwxgwwwwfvwwwwxwgwgeeefgEEvwvwvfeuwggeuwgwgVwwWfgVVvwvvwwwwwfxxfVwwwffuwwwvvxgwwfwxwgvxwhvwwgwvfwxvwxwxxwwxfwvfwxwxwgwfwvffxwxxwfwwwgvxwwwwwvggwwgvxhvxwwfwweVewwwwvwxwwwfgvxwwxwwhwwwwwwwgwxwfffvwvUfxgvwwvwfwwVUexgxxhvfxwxwfffxwffvefeVVxhxvwwgVewwwwfffwwfVufffUVxwxwgwwwwwwgvgfvxwwfgwggeewgfffvfxgffhwvvwfgwwgvwhgfwhvggwwwwvvwwgwwfvwxwvvgwfvxwggwwgvxvhxwwvgwfgwwwwgggvfgwwVUefgvvggwwwfvfvgwvwxwgffgvvggwvwxwgfgVUfwvwgwfgvgwWVfwggfwxvwfggwvwvgfvwgwwgfgvfgvwwvwwwxffwwvwwgvwwwwhvgVefgwwwwwwwwwwgwfggfwwvwwwvfvwxwwffwfffwwxxfwwggwxwxfvwgwvwwwwwwwwwwwwwwxwwxgvwwfwvwvxwxxxwwxwwwgvxvwxwxxwwxgfVfwwgvgvwUfeVfwgugfdvVwVwufvwfwwxvgwwgfVgegvgwvwwvwwwwwgfuwfwUfdVfxwwhvgwvgvwgwuwvfwvgwvwvwwwwwwhugwgggwUfeVffwugwufvgwxwhvgwfwxxwwwhuWwvgwfwvgwwgwwvgwggvgwgfvwgwfvgvwvgvvgwwwxwwwggwwwgwwwwgwvffxvwfgvfvvvwwwxxwgwfvvvxwvgwwwgwwfWeuvvwvfvuVWeguugwVVvUfgeevgvfvWVvgfvvfgwWUvwwvwhvgvffvvhwwfguUffVwwWeUeggwwwwwwwfVgffevvfwwvfvvgwggfwwwwefVWefvgeVffVeeuffggwfwvvVgvwgwwgxwvwvgVVewwxvwwwwvwwwwvfwhwffvwwgfvfwUwvfwwvffhfvgffffwwwxwvhvwVevffffvwfwgfvwwxfgffwwvffwwffvffgvffggffVeFfvUffgfvgffgfgfffwvwwffwwWugffwUffwvwUffgvtfgvwwgfG6SeffUffwvvfffffvwwwhffffffvfgwwwfvvwwgUfgfffvvwg3UfgtfgUfffvvwfwgffffwwhvwwxggvgffffvggwwhvgfgvwwvggvffwxwwggxwwgvfwgvwxwwxwwwwwwwvwwwgvfffxwwwwwgvfggxwxxwwwvxugfvxwwfeUwwgfvffgwfguefgvvwgffwgvwwwwvwwfeffVeUuwggfwgvwvgwvwgfUwwwfvVfwgfwwvwwwgfffffvwwwwggwwwgvxxwwvvwfvfffVeewwWggfvfvwgwwfffxwwwwgwwvffgffVfwvWvggvfgwgWvhwfwwwwwweggvgwvgvgwfwvwvgvwvwvwgvwvvwwfgegvwxgwwghvgwxwwwgwwwwWwwvgvgFeveggfvwwfefffwfdvwfgFfVeugwwgvwwgEfvfvwwwwwgwfdggvWgwwweVgwffvWvffTfegvwvwWgwgwwfvffgwuwwwVfgvggVvwwgfFffvgvwvgWvfwdffWfeewwwhfgvvvfwwhdVfwvfgvwxwvgwgtffwgwvwwhvvwwwwwwwxxhwwwwwgfxwwwxwwwwwwwggxxgwvwwwxwwxwxwwhxwwxhwwwwxwwxggfvwvgwgfeewgVevUffwgvfvgffvgwwfvwgfvfwwwwxwwwfwgvwxwwwwfgwwxgeuVVevhvwwvwvvwhvvwgfgvffgwgvwfwwwwVVwxfUfwwwggwgvgffvwwwwxfwwxvvvggvwwvfwgvwvwvwwvvwgwwwwwwwwwwwwwwwwwwwwwwwwwwfwwxwwgvwwwwwgvwxwwwwwwwwwfwxwgvwwwxffwwwwwwxwvvfgggvfVefeffwwgwfWugwwwfwwvwvfevgffvgwwgfvwwvwwvwfwwxgwggvwgfvUfUfufwwffwwgxwwxUffwvwfwfwwxxvfggvgvgxwxffwvwgwvgwvxvwvgvgvwgvwwwgwxwhwgfvwwwxwwwwwwwwhwuwxwfwgwwgvxvxwvxwhvwgggwwvwvwffwxwewvwgvwhvwxwwgwxvhvxvxvwxwwwwwfvvFfwwwfwvggTwgvgvgUvfgvfwxwwevgwvgwwwxwwwvhevwfgwwvEfwhwwfwwWetfhuwggWgvwvwgwxvewvgwfvwevwwwfwEfgwfgvvxwvwwgeTfwvgVwwwwwfvwgvwwwwwxgVvwwxfgwvwwxwwwWwvffgfvwffVffvvgwwwfwwvwwvwgwggwwgffvwuwVfVUvwvxfggfgUewfwWwgwxWfvxvvgvfgvvVfweegWeuVfVgvgvxwvghfgVffvwwwffvvgeWgevffgwvgvVffgvwhvwxfgevguVDTUVvgvwfvgfwefwgxUVggvgvVUvgvvfgwxvVffefefvfwVfgwwgDTuVfvgvwxgfvugwvgevxvgwfwwfwwfwwgvfwfwwwvvwwvwfvxwfwgfwwwfwwwwwwwwwwwxwxwwwwwwwwfgxwwvgwfwwwwwwgwvwwxwwgxwwwvwwwwvgUefgfvffgvvffvfgvVVwVewvfUfgfggUfgfUfvvwwvwwgfvwwggwwfwvfwfgvffwwffVfUfgfwwwgfgwvwwwgfwgwwwwwfwwwgvvfwfffgewfvwWfevwggfVgefwvfwggVgewwwwWwuwwwwvvfwggvwwvwggxvwwgvvWWuwwwwgfvwwgvwWwwwwwgfvwvxwwwwwwgfvufvgveVwxwgffwwwfwwwwwWugWvgvxwxwuWwVVeuffvgfvffffgwvweUvwwWWuffwgwwffggfvvvwffwwefVfvgWvwgwvgvefvefvgvDDgwvwffgfffvwvgwwVewgvffwxwgwvxWffwwGDtvgWgvffwgweVwxwefVwwwfgUvvgwwxwvgwwUwwuwwvgwvwWwuwwwwgvfwwfvwggwgwgvvvwwvvgwvvwwwwggwwvvgwvfgvffgvuvvwwwwvvgfggwxwgfvvvwgwwvwVwggVfwfvgVfufggvffvwVWffgwgfgvvfvxggfevfgVgvwvgvwwwggvVWvvwVvvWuDEwffgfuvvwWggfvgfffwwugvvvvwgwwvwgwwgwwWGTdfgfguefgfuwwwWwvvggwwwvxgfggwwugfwvwwwgfgwwewvwwwgggwvfwgwwwgwvwwwwwwvwgwwxvgwwwvwfwvvwxwwwwwvwvggvvvwxwwwwgwwwwwwxhgwgwvxvwxvxWffvfvvVveggfgvwwwvwwWgvwfwgwgwfffvvvwwwwgVefwwgwggvwvwvwefwVfffgfwwwwfUfvfwwwwgWfgfwwvhwwwwxxxeffgvwfgwwhVevvvwwgvwwwwwxvfffvwwwwwgxgxwxvvwwwwvwwwwwxxwgwVuWwewwgvwwwwgfwvUgwwfuwwwwgwgvvgvvggvgwXfvwWgWwwwwwvxvwwfwwwwwwgwxwwgvwfwwWwwffgfDwgxwwwwffwVfgvwvwwwwfvgfwgUgvfEdwwwxwwvwwvfvwgvwfveTwwwwwvwfgfvwWvwwwUgffxwxwwwwwwwvwwggwfwfvgegvUFewwwwwgwwgwgvwwwwvwvxwgWfwfWgVgVeeVwwwwxwgvwxvwvwwhuugwwWvufwxffwwxwuvVgfvvwwvgfggwwxvVguvgVgwvwwugwefwvgwwgwwwwvwxvvuww6feVgwgWUwvvvwVffgxhfvxwvwwVevfFgfvWgxxwvufUwwfw7FefwwgUUwwfvwtewdeeffggwgVwwvffwwvwwwvfwVStwGgfvwgwwwgfuVUwvfdvwXwvgeevWVwvwghfxhwfvwwvvvvgfwfwggwfgwvwwfwxwgvvwfwwggwwxwvwhwvfwvgwwfwwgwwwvvgwwggvwvwxvwwwwfwwwwhxgfvfFWfgfWfvwwfwwwgfgfvgvvvwwgwfXVdVgfUfwvvvfwfgvfwvwwvhwwwHVfffgfwwwvvwwgefvgvVVwxwwwwuvwwwwxwxwgXUdfvfVfvgwvfwggvfgwvwwwwwwggvVfwwwfgfwgwwwwxgvwhwwwwwwwhxgwwffgwfwwwwwwWvfgvwgWfxwwvwxwfwwfwwwxguvwgwffvxxwwwwxxgwwhwgwxwwgwwxwfWvwwwffggvVUwVfwvuwgvfgwVffWvwgvwwefwuggvVffWfgvghvUVevggwvgffgfvVevVfwwwwfwvxvvfvwfwgfwfwvVfwgwgxewgvggVffgfVvfgveVfwvwwxvwvvwvwwgvewvvfwwgvevwgvefgWfvwwvwgexgwwwfwegwwwgvvwxwwwwwwvwvvwwwwwwgwvvwvggVvxwwxxxxwwvwwxwwvggwWvwwVdvgfvwgwvfvVfvfvwWwUffTVefggwwwwgwgvwwwgUvvvwwgTfvfgwwwvwggwwVwffffVVFvxxwwgwvwvwfwfwwggfvvgwvguvwvxgwfwvguwfwVWffffvFUVffvwwwxwwwggwwwwwfwxWwWwuwwvwxUgTwhwwwxwgwxggwxwxwwwwghxxwwxwvwwwxwxvwwwwwwxwxwhwhfvxwxgVgwwwwhfvwfvfwwgwwvggfggwVwvwwwwwvwwwvhfwfvvwwgwgvxwxwgfwvvgVvfvugvwwxwwwwxhfvgwgVvxvwwxggwwwwwXfwVwvxfvvwwvwxwvwvwvxwghhgxwvwwvgwwxWwfwwvwfwwvfvwwwwwxwvwwfvvwxxwwwwwwwwxxwwfwwwfvwgvwwxwxwwwwgwwwxxwxgwwgvgVuwwwgVexwwgffeewgfggfgffeefUvwfwxxwwwwwwgfvgvwgvwfffvgfgwwgVUwwvVfewfwwwggwfwfvwfvwwwvfgfvwwvvvgvfgfvffUffUwvgffeuwwxwggwgvwvwgwggvwggggfwwwggwwgwwfgwwwgwwvwgwwggggwxwvwwgxxvvgwwwwwwwwwvvgwwwxwggwwwxwwggwgwxwgwxwxgUfgwvvWfvWffgffgwgvwWgggVgfwwwfwwfuwvwwwhUffwfwwVVgwvwwwwWuvWVgvgvxwggxgvwwwxXFfgfvgffwwwfwwxgwwvwwwwxGVffvxUVvwvfwwxuuwvwgvggwwwxwgefwwwhwwwvwxvvwxxggvhvwwvffwxwwwwwwxwwwxhxxgfvhfvwwvvwwwxfvwwwwxwgxevvgxwGffvwhfvxwWWwwUVfuvgevwwwefwwgwwwwefgUVfevfwwwXVfvwwwxFUfwwXfuwwugvgxwevgfvwvgwvwxxwgwwxuvwwffwwwueFDUfefgwxxXVfvwwUfvgwxwvvwxVevgwfgvwwvvwwwwxwvgvwgvwwfwxfwgvhhwwvgwxwwwhwwgvwxwwwgwwggwgvwwwwwwwgUvwwwxwgvxxxwxxxvvwvggfwwfwWfffwgvgvfwwwgffwwwwwwgvvUwfwwwwwwwxwfvwgwwxwwxggfvgffgfVevgfwwwwwgfvvwwwgvwwwVewgwwhwwwwwwvfgUvwvvwwwwwxxVfwgvwhvwwwwwfwwgfwvvgwuvvwwwwwxwwwfwwxvvvvggvvwggwvxxvwwvwwwwuwgwWhxvvgfwxxgwwgwvwwfwwwxwwgwxwvvxvxvwwxwwwhgevfWfwgggvuffvwwwffgwwwevgfwwwgfvWWvUfwwwfvwfwwgfvwwxwwwxVwwgfwvvWevwvwvvgfwfgwxvwguvwwhUvwwwvwwfvWgwUfwwwfvwwgwhUvwvgggwwXgwVgxUfwxwvvvxfvwwwwwwwxgfwwwxgwxwgwgwwxwwwwxwwwxwwwhwwwwwvwvxggxwwwwxwgwhgfwxwxwxxwgxwwxxwxxfvwfvfvvffwwgfwwwfvvfwfvgwfgwgvvfgwvfvvwgwgwgfwwwwwxwwvwfvfvfvvfggfvffgfgwwwfvxwwwxggwwwwwwwwvxxggfvvgfvwwgwxfgwwvwwwwwwwwwwgvggfvwxxwwwwwvwwggwwwwwwxvwwfxhvewWwwgwggwuvxwwxwxxxwxwwwwgwgfgfWffvxwxwuwvxwwwxwxxwvwvwgwfgfewggwfwfhwuwfFfwgwVDeeWeTvxwxgfwvVghfwhwvgfgfefvvWfvwfwwfwfffegfewxwxwvgwwwxvwvvhwwwvgwgvwfvfwefuwuvvggeWeGeUVffFTwxgxggwwfwvfxwefgvfgvvgwfwfgwfgvwwwwwvVggwwwvvfggwgwwwxxxwwwxgvwvhfwegugfxxxwhwfxwvxfgxhgwvwgvwwgeFfwwvwfvhgwvvvgwwfuggdfVfEfeVvxgxhvgwvwfggfvgvUfeVffgwvxwvwgvuwefewtfewxxwwhwwxffwwfgvwgfwwvwwgggvWfVvegVvVwugvUfdVfdfeegwwxxgxvhwwhwwhwgvVwgfvvwwgvfggwwwxwwvfvwwxgvwhvgvvwwwwxxxxwxwwgxwgwggwwxxgxxhgwwwvgvwwwwwwwwwgwfwwfwf5UgvWeFfEvxvhxgvwwvgUfvUvwgwggffefvxwxwgggvwgffwxwxxwwxwwxwwgwgvwgfwffvgvfeFVFvgggWffWSwwwwwvwwwwwgwwwwvVgfVfwwgwVefwwwvwgWfxwwgfwwvfwVVwwgwwxwwwwwwxwwwwfffwwUvggwwxwwwxwxwwgwfgwwwwwwggwwwfWgvvwgxfgwwgewxwvVvwVUUfvDeUVfvUvwggvguuggvUeVUfffffwEFfvwwwwwfVvwwfvggwwwwwwwwwwwxwgvfgxwwxxwwwwwwgfwwgfgvvgfeUeEFfffgggUUfufwwgfgvwwwvvgwwvgwvVeefgvwwvwhgfwxwwfgvwwwggwwwwwwwwwwwwxxxwwwwffgwvvfggwwwwwwwwwgvgwwwwwwwwwwwxuWeuwwvfgwwgvvwwgwUfeVfWefvfVVvwvwwwwwvwwgeuwgVefvfwwwgfwvwwfwfeWfwfvVVfvwwwwwxwwwwgvfwgxwwwwxxvxguvfwwwufvVeefVVUfvVVffffgvvwwwwvvwwxwwwwwwwfwvgvwvvwwwwwfwwgxxwwwfffgfgVevfwfwwwxwwwxwwwxwwxxwwvgUevUfUfvwgxfwgvwgxwwxwwgwvwgfwwwwwwxVfUfgvvgvwvgwwvwwfgffVefVfUfuefwDUgvgvgfgfUfUfegwUfvwvvvwvwgvVVUuUVfwvfvvwwgvvgxvxfgfwvwwwwwwwwwgUfgvgvwfgW3DefeefUfuefvfwwvgvgggvwgvggwwwvghfgwgfwgwwwwwxwwwwwxwwwgfwgwwwwvvwgvwwxxxxwfwggxwwwggfwwxwwwwxxwwgxwvxwwwgwgfvxwvwwwggfwfDUggfgeuwWUUgwwfvfwVVvxwwwggfwwwgvvgwgWvwwggwwwwVfUwxwxwxwwwwxwwwwwwwwgfvfffgUUUxwwwggfvwffffWVWDuwfwffvwgwvffvffxxwwwwvwgfwwwffwvvwwfwvvfwwgvwgvwfwwwwwgwfwvhgwwwgwvwvgvfwvwvgfwvwwvgxwwgvgwhxgwfwxwwwwvwffffgfwxfwgfvwvvwwffffwwgffwvvwwwgwfvvggwvwfwwgfvfgvwwwfwwgvvgfffwfwvffxwwgwgwwfwvwvwxfwfwwgwxvwwVefvgvgwUfwxwwwffffffwwvwWefwgwwgvgvwwvwwwgvgwwgxxwvwgwwwwwxvgfvwfvwfgwwwwgvwxxwxxxgfwgfggvgvfwwwwwwwwwwvwwwxxxhwwxxvffvxfwxUfxgvwxwXgfffVVfffffVefVevwUfwwwfvgvvffgvwwhfvwwggfwgffgvWevvgwwwwwxxwgvwxwxwxwwhVVvwwUffwVefffVeVevwggffwvwwwffwwwwwwvwwwffwwgfvwwwwwwxwwwwhwwvwgwwvwvxwwWwwgwwhwwwgwwvfvwwuwhwWvvgwxwwxwwwwwwxxgwwgwxwwwwgwwvgVewvvwwwwgfwgvgfUvwfwVeWffVfwWvvwgdvwvwxgwwWvgvwhwfFewgwfvwfwgvffeVfxxwwwwwwwxwwwwwwwwwwgwwxwVwvfgdVfevgwWwvWeWffWgeFevVwwvwwwwvwwwwvfwwwvwwwwvwgwfwxvwwwwwwwwffvwgwhwwwwvfvfvwwxxwwwxvxgffwgwfffvvvgwwhxwgwwwvvgwwvgggwgfvffgffwgwwfwvwwfwfUeffvWeevffffwvgfffgVVUgfvwvfvwVeUfvfwwffgfgggvfvvvwgvgwwwfxwfwwvwvvxfxvwwvwxgwfwfffffgUVevfwwgwwwffeUegggfvgwggwwvgwfffwwvwgggwhvwwwxwwvwggxvxwwwggfvwvwwewfwhwvgwwwxwwxwwxfffwwugfvVvgwvwgwxwwhfwwhwxghxxgfffwwwhwewfvgwhfffVffwUfffuVfvFffvwugwvwFfggwWwwgvxwhwffgvuffvWvwgvwxwxwwvxwxwgwwhwwxwxxfffffgdfwffVefwggvFfeVfvgvvggfwvwwfgfgwvggxvvwwfgwhwgxwxgwwvffvggvxxvwwggwvwxxwwxxwxxhwgvwvfxfwgwvwvwwwwwwxwwgwfwwwwwgvfeuxwwwgvxwwgwwwfgffvVVgvfeeffvgUvwwgffVVxfwwwwfwwwvvwgvwvgvfgffxwwfVffuwwwwwwwwwwxvvwfxxwwwwgfUvgfffeVVgfffVffwgfffgffgvwwffwffxwwwwvwgwwwwghwwgfwgxxwwwggvwhvfeVwwvfwvfggfwvgffgxwgwvggghhffvgvvffgwvwwvfgwvvvfwwgfvwwwhfvwwwwxeegwffggfgggvgvvxwVfeVgvWUffwvgwvgwufvfwwvgVfwvvgwfevgwvwwwxUfvfvvgffvwgfvwfvgvvgwhffgwwhwwwwwvweVfUevvgwgWVUfwvwvVVffvwvwgeevvfwgwfvwgwwwxwgffwewwxwwwwwxwwwvfvvwwggvwxwwwwwwwwxwwwwwxwwxhwwwgfvwwhvfwwwvvwwwwxwwwvwwwxwxxxhuvvggwwggwwwxgwxWggwUVUvvgfvggwfffxgwwwvfwevwfwwvxwxwfwggwwVffwwgvvxwwvwwwwxxwvvwwxwwxxwheUvwxffvwweUfUewfvwwwwwggwwgwwVgvgwwwwwwxwVvhwgvwwwwwxxwggwvvgvgwfwwfgwggwwwvwwgvwvwxwfgxgwhxgffvwwggfgvwwvwgvvwvfwwfwwwwvxwgxwwxvxfgVefvwwvgxwvgwgwgfUvwwgfvwwwgvvfvffvwwvfwgvghhwwggxgwwwffUvvgwgvgvwgwgwvvwwgwwwwgvgxgxgwwxggwwvfwfffffffvgvwwggxgfggfwgvwgwfwfwwvgfvwvwvfwwvfwwwvwwvwxvwwvggvfvfWwwwwwwwvwwwwvvvvwxxxwxwwxwxgfWfvgwvfwfwgwwwwwwwgwwwwwwxwwwxxwWgvvfWwwwwwvvwwwwWUVewwwefvwfwfWgeWVfUfwwwwvwwwwwwvvwwgwwWUfgvggvfwvvwwxwwggvwgwwwwwwwxwwwwwwwxGVdFVUEVffvvfvwfgfhUvwvfgfwwgfwgwxffwwwgfwwxgwxwwwhwwxxvxxwwwVVvgvvwwwxgfwwvwxwwwwxwwggfvfeufgwgvvvwwwwxwwwwwwxggwvxwgvwxewVVvvwvggxwffwwffeugfvVVgfufVfVVgvVTdggffwwwgfggwwwvwgwwufUuVUuwwvvvfggwgwwwwwwwxxffwwxxxwwwf44gffeegffVVwgefVwgvfgwwvwwwgvvvwfvgvwwwfgwwwvvwwgwgfgwwxwwwwfxwxgvwwwwvxxwwwwwwwfgwvxxwwgwvwxwwwwwwfxxwxwwwxwwwvvwgvwVewwWTTfUwwxwwwwwwwgffwfvwwwwgffVfuxgvxwwwwwvgffxxwxxxwwwwwwvwwwwwxwfvvgwwwgUfvfvfwffVfUUTxxxwxwwwwxwwwwwxwxxwfgfffwgwwweVwvwvvVfwwvwwuwfvgwvhvvwxxwxwhffwwvgfvFfvgwxxwwxvxxwwWwwwgwwwwvxgdEfxwwWWugffevvgffdfgfgEffvtffwWwgfgfwwfw5UwwuwwFfvgfvwwvwgwwgVvGUeDfuVvwwwvwxwXwwUwwxfgwxvgvwxggwfffdVgewFfwwvw$DvVftfffgwwwuwwwwfwwhwfwhevwwWwwwwxwfvwvwxxwwwwwwwwxwxwwxwwwwxwwxxwwwwwwxfwvxwwwwwwwwxwxwxvxwffwwxwhwwwwxwwxwwwvffvwgfvwvwwxwwwxwwgfvwwwwwwwfwwwgwwwwhfwwwwwxwwwxwwxwwwwxxwwwwwxgvwhwvwgfvwfgfwwgfffwwwxxwxwhfvxwgwwxwxwxvhxxhwgfffwwwvfwguWvgWwghxwxxwxwwvfWeeggvWvwgwwxwwwwhgvffwgwwvxwwwgwxfWVevxvfwgvffgxvfUfeUFVeEefFfvgvwwwfwvXVeVvgWwVewfwwgwwvvfwfffgvWuggvxxwfhwwffxgwwvxxwgwwxWVeugfUvwfWffVegWvVdwfwVFfwgvwgUvvxgwwxvwgUvgvwgewwwgvvwwwwwwwgvvewgxwgwwwwgvwwwwwxxwwwwwwwwwwgwwwVWwfvgvfwgwwwwwvwwvwxvwghVtfvgxwgwwuwwfwhFfveUVuvgdvwvwvwwwffwhefgvfvggevxgvvhgfwEWwfwVfewwvwwwggxuwxevxvhwvwwgwgdfgwwUVwwwdfWdewfWeuwwWvWvgwwfghwwwwwxWfwhwgvvgfxwxxwxwwgwgwwwwwfxwwvwxwxwwwwwwxxwxwwwvvwwxwwwwxwwxwwwwxxxwwwwwwwxwWggfvwwwufvxwwwwwuewgVUuwwVevffgfgwwwxwwwweVfgevwxxwvwfwwwvwwufvwwgfwwwwwwwwwwwxwwwwvwwwwxxwwwwWfghvwwgwgUUfUfvgwwwfvewwwwgvvwwwwwxwxwxwwwwggfvwwxxwxwxgfUvwwwxwwwfgfvwgwwwwxwxxwxwwxwVegffwwgevwfwwgvgvwxwwxwxwwwwxwwfxWweUvgfwxgvffwfwwgfVegVefUfUVfevfUvwwVewhwwfgfvwvWDewvgwfvwgWUehwvgfWDewvvwhfvffwxwxxxfxfxvfgeUfgv4CuVgvggUfwvfUvwvgfefwvgvfuwxwgvvgwggvwwwvwwggwwxwgwvgxwxwggWwwwfgwvxggfwgfwwxwwwwxgvfwvvfgvggvwvwxwwwvxwwwxwwxgwwxwvwwfgWfwgvwwwwwgfwwfeUfgfVWfgfvVVwggvfgeuwvwggwwxwwVVwgfwvxwwwfvwvvfgggvwuwxwwwwwxwwwwwwxwwwwgxfVVvffVefUeVVffwwwfWvgewwvwwwffvvxwwfvwvvwwvwvvvwwwgxwgvvwvvwvwfvvwvwwvfwwgwwwwvwwvvxwwgxxwxxxvgwggwwwgvgwwwwxwxxxwwwwwxwgevfgwwwwgvwwgvvwwXTUeTEfeUfeewfWfefwfVffgvfUvvgvfgfuvfwgWwwgWvgffvvwgfvwwwwwwwxwxwwvwwxxxwwXeUFfVEfffeeeeevffWUfwfgvewxWgfVvwgvfwxwfwvwwffwhwwxwxwgwvxxxwgwwgwwxwxxxxwwvxgwxwwwwxwwfxwwwwwxvffxwwwwgwvxgvwwwwwwwvffgwxxxwxwwwvffxwxwwwwvvwxhxgwwwxvgwwwwwvwwwffxwxwwgwgfeUwwxwwwgffwwwwvffwggvfweeVUwwxwwwggfwwwwfgfwgvvUgvfVUxwwwggvvwxwgwwggeuwxwgwwggeuwggfeeVxwwwxvwwxgfgwwwhgfwgwwwwwffggwgvwwgxgfvwWgWwhwwgvvxvgvgvxwwggWfVvfvgvvhggwwwwwxguvwgvfwxwfwgvvggwwwfgxwvfwgvhwvwvWffvwwhvvvgvvggVeewVffvwvwVfvguwvgeuhwggfVUUevggvvxwwfgwxvgwgvxwgWfUVUvwwgvwgwwwwfwefegwwfgwweUewgwfffUVwvwxwxwhwxwxxwwvwvwwffgvwwwvwgwvwwvwxfgvvvwwxvgwwwwggvwvgxwxfvffwwwVVwvwgvvxxfgvwfxwuwwwwgxgxvfuxwxxhvgwgwgxgwvfvhwwvvwvggxwwgffggUgeeewwwwvggwgfwVVuffgggwvffffgfwxwvfwvvfwffvffVgvvueffUfwhugwfwwwxxggggvfugvgWfVVefwWwguvwwwwwwwwwwwwwXgvvWxwwwwwuwwwgvwwwwwwwwgwwfvwGfftxwwwwvwgwfggGfftgwwwWgvffvvgfvwwgwgfvwwvgVevwggwwgfvwwwwwwwwwxufgwvwwwwwgwgVefwwWevuvggffwWewGVeTggvwfwwwwwwWefFVetwgvgfVeffvgwwwwwxdfFffvwgvgfgFVetwwWevwwwwdfFwwwwwufgffffdUFxwUffUfffUfwwwvwggwwwwwwxggwvgvfwwwwwgwwvfwwvwgwffvggVVfvuhvwwwgwwwxxfveeefVgwwwwvvvgwxvgvxwggfVvgfwwwwwxfwgvwffwwwwwvgwwhwwwwwwwfwgfvUgvvvvvxwvxwWVeffWUVVeevvwvwgvwvggfWeeeeUvWwvgfvfgwwffgggvfggfUfUfVfefgvfewwgwwwgfffgfvgwwgggvvWUVUVefgvvfWWwvwvwfwwwvgwxwhvVVwwwgggwuVvvwwwvfgwgvwvgwvvhvfWwfvgVgwgwxwxwwvvfvuVVfvwgfVgwwevvggfvwwwfWwwfvfgffuwvfWhwvwgVggWvvwxwwuwwxwvffUUvwgggwgffeVffgveEwwuwfUfvWeuwwwgwwgfffeVEuwvgWfggvffWfuwwvgfvvgfdvfEVvwwggvffgevggfgefewxwwvwgwwgffUfeeEUwvvgwVfwwwwwwwwxwwxwwwvVgvwffvwwwvvwwffwwwgvvwwfgwwwefVwwwwwvwwwwxwwwvVgwvwgwefVeVwXwwwwvwwwwwfgfDfwuwwwwwwwvgwwwxwwgggvgFdvwwwfwvwvVgwwwffggfvugvwvuWeDVwwvvwgfvffwxwwwfDfvfwwweDVeVWvfgfVwUFduwwvgwwwwwefVgfvffwwwwgFdffvxWFdUfuwgguvwwgfVffUfefvwwwwwxxwwxxxwgwggwxvvwwhwwwwwvvwgwvgwhxwgWgvwwwwwvwvvfxwxwwwwvgWvhwxegwgfvwfgxwxwwwwggvvvgwwxgvwvgwwwggwwfuvwxwwwwwwgwwwwwfvfVwwhvugVfvgvvffvhfefgwvwgggwfWWvWggfvwwvfgwwfufhvxwvhwwgWVvgwfewfgxvvffgfeevvvVfwfvfwwwgwwvvVfWfvwfwwwwxxxwwvwfwwwvgfgwwwggvfgwwwvwwvhvWvwvegwvfvwffhvwwgwwgffvwvffvwewvvwwgwgwfwggdvwuvgwwfftwvwgwwwwwwgwgwwGfvwgvgwewwfwwwwwfdfxgweWdfwvuffgxVfdfVfVevegwWwffwgvfevfVgewwufwfgfFffvgffwgWwfwggvgfdfgvvfwFefwgffVvgWwgvgwwwgfEVvfwgvgVgwegvwwxwwwxwhxwwwfwwgewwwwWwvvgwVwgfgwwfwgfwwwgwhwvgfxfwxwfwwwfwxfwvvwgfvgwxxfwwwfxwgvwgwxvgxwwggxwgvwvxwvvwffvwhwwffwxwvUvvffUxfwffgvvffxvwggvweffevwVVfuwwgVVgvvVfwvwwvvvfffvvggvvWvxvgvWvfVeggveVwwwgfwwfgwgufWwhwwxwwwwxwwwxgxwxwwWwwvvwvwhgfwwwvwWevwwwfwfwWwuwwwgUvvwwwwgwwwwxWvvVVwwvwxwwggxfvggvgwwvvxwvwxwwgwwwwwwwwugfwwwwwwwwxgwvguwgvwxgVdfwwgffffVUtwVwfUVvvwvggwggwfufffVVguvwwwfwWdfvfvfggwgwgwvfffetgwvgxgewvwwvgTvwffffwwvvggVvwwwgfEewvwxwwwwxwwxwxxwwwwwghvvwffxwwwgfxwwfvwwwwwgwgfwwvWWewwwwxguUVwwwfvxfvwghvvxffffwhvvwfgwwgwwwWWeewfgwwhvvwwwwwxwwfgwwvvxvwWWeuwghgghvffvvffgffwwwwWWeuffvwwgfuUWwvwfvwfwWWeuxffffgfvfggwvvvgvvwWWuughgWWeeffggfuUVwwwwwuUVffwwuUVwwwfffgffffxwwxwxwgvhwwwwxgvxwfvwgvwvwgwwwwgwwxxwwwuwfdwwwffgdvwwgwvVwwwwwwfdggvwwxwffFwgvhgffuwwfwwgevgfwvfvwwgwwgwwgwwffvggffgfwwgvwgwwvwgwgWvwguvvufTvhwffVfdffggwvvegwggvfdfgfwfgwfffFvgfVfwwfffgVfVwVewguvfwwuVfuvgvggEffffwvvwfeVdwvVwvfwwvuwwvfewvguwwwwwwwwwwwxwwwxwgwwwvvwwwwgvwwwwwwxvwffgfgUvwwuWwgfvfUwgveVvfvvwgvgvwgvvwvwfhwfwgfvwwwvwxggfwvvgwwhvvwwxwwwvwggwwvffgvxwwwwwgwgwwwwfvfgvvfgUwweVfgfffUfgfeVffvwgfwffwfvggvwgvvVVwwgfewfvwwvgwfgfgwvgwwwVUwhfeUgfvvfwvfwfwwgvfwwwwwwwwggwwfwvwxwwwwwwwwwgwWvxwwggvvwwuvVxwggwvxvfwuvWwwwwwwggfwwwvvwgfggwgwxfWfwwvgxwvfgfwffgfvggggvwvffgvwwvwwwwwvfffvvefwhwgwgwwwwggvvvxgwvwvffvvvgfgvvvWgfeffwvfgfffgVfwvgVvwvwvwwvVVfeevvwwgfffgwgugwwfuwwwwxfeuvfwgvefggwvgvwvfggwwwwwwwVwvwgwfgxvwwgVVxgwwwwwffwggfggVhwuxwwgvvfewgVgwwwfvwfgfvvVfgwgUfUwwwwwuwwgggvwfffUgwVvggVxxfwfwvvfuggfwwwwwfwvgwvwggWgfgfVVwwwgwwwufggvfUgeEfgfwwvweefufVugffFVfEwgvwwvfvwgvgvggffugUufVffeeTwwvwwwvwvgfvgWvfvgfggfVewgffUfeeUExwxgwxwwwgwwffVwgwwwwwxhgwfvwwgVwwvwxvvuggfgvvwvfWfggvvuFffuwwwffxvwwwfggeTuvfvWvwwxxwwvgwvgxwuwgWfevxwwVVwwwgvgwfvxwwfWwwgwvvfgVUuvvffwggwxxwwggwewhwwxfVeUxwgfEwfwvwvggVUuvffWfWfxxwwwVVggTgvwvwvffVTdffeWwffwxwxwfgWvexwwwxWTtgwgWUUeFfgwgvwvwgwxxwwwvwvgwvwwwxwwwwwxwwwguwvwwxvfffwwfxvwwwgwwggffgfgwvvvvwfwffvgwgwwwwfuvfwfwvfXwwfvxwwwvfgWgxggwwwuwwwguggvwwuvvxwggvfwgggwvwvvwwggguvgxwgwxgfgfwggwfvgvwfvfeegfffvwuvffeuwwwvwwwgwWvWgvffWffggvugffvfgfvuwwvwfwxgggVVwfvggwwwwgfwwVggxvwgfxgvwuwxwgxgwwwwwxxxffwgwxgvvxwfwwxwgfwggxwwwwwwwWfffvxwxfgwvwxgfvgggwwxwfVffgxgfvxvvgwwwffwWewwwwvwvvfgwfvxwvxfwwwwxvfwvgvvvfwgfVefgwvvvfvgwfVUfVfxwwxfvwgwxwgfvgwfUwwweVUvgwgwwheuwfwwfVfwWvffggvUUUfgxxvwwwwwwXfUuwvfwvwgfUfvfffvgWeuwwxxxxxgxvwvwwwwgwvwwwwwgxwwwwxwwvUWewwwwgwwwvwxgwwWWuuxgfvuhwwwxwwwwvuWWewgwwwvwwwwwgwwgwwxwvxwwwgxvwwwhgWWueuvwwgwwgfefUWUuwwwxwuUWvvuwwhggfUWeugWfvugwwgWwfwwwWWuefugWVWeeuxxxxgwwwwwvuUVfWwwuUVwwvVguUUfWVgwwwwwxxxwxxwwwwgwwwwggwwwwvwwwgwwwwxgwfggwfwwwfxwwwwwwxfvWwwwwgwvwvvguwxxwWwwwwwgUvgvgvWwuvwvwxvvgvghwwvwwwwwwvwwxgwUfwwwVwwwvuefwxwvwgfTfffffUgTwgvvvwvwvgwgfFefgvffgwvfgTwhwWvvvvvgwWfgeUfvwwffgwVeefwwwvgegwwwvwwwggVvWdfvffggwvWVFvfvwwwwxwxxwwwwwfwvgfvwxgwfxfwwvgwxwwgfwwwwggvwwxxwwwwwwwvvvfuwwwwwwwvfvwvvxxgxwfwwugfuxwwwxgwvvwwwgwwwxwwwwwwgwwwgfwvwvgWvguxwwhfVwwfeffuwwxgfhwvwwwfvffuwwgwfgVeguwfvwwfwwfgfffffugvwgugVefvwgfwffwwwwgffwggfwgfffUfVwwfgVfVvwxxwwxwxfvxvfwxwwxwgggvwgwvvwwwwwwwwvwwvvffgfwwwggwwwfvhwggwwwwvffwwwwxxwfgwwwgwvvVVgwwwfwwwwgfwwfwwgfwvvvgwVVwwwwfgwwwwwwwgvvgffgfvwvfwwgwfwvxxgffggwwvVVvgvwwvxxgggvvfwvxgffffwwwVVgvvgwvwwwvvfvwgwvvwwgvgwxgfvgfwwwwggfwwwwwwwwwwwwgfgfwwewwgxvwvxwwgfgwwwfuvgwxwwVVfwwgeewgwvfvxwggwwvvVUevgvwfwwxfWwwvuvfwwwFfVggfvwwgwggggfvvfuvwVfvvvxxwwxxwuvVdufVgwwwxvgwxgXwwfVUfwVftwwvffvxwffwwffVTtuVvfvwxweWvwvvfxxVgwwwvvVUufVfeuvwfVGgwwxwEEwgvwhxwwvwwUUwggVVdvgvwwvxwgwgwggwxwxwwwwggxwxwvgfwwwfgvwwwffwwxffvwWgvwfwwwwwfwfwwgvgvwvwwwwWewhfwgfxwvggvggfvgwVVggggewwwwwgvfwwwwvwvWVffgVevwvwwxxwgwwgfwwwwgfeUwwgVUgVVfUwfffUfUfeVvgfvvwffgfwxvvfewggwvVVvfeVUegvwwgwvwVgffwvgwggfvwwffVUvfffUUuvvfwgfvwvwwvwVuwvwvwwwxxggfgvwwxxgvvgwwwfwxfwvfwxwgggwwwvgeuwwgvvwwVVwxwwvwvvvhxfvwwgxxwvvwggwgwgvffvxwwgggfwwwwwwwxxwwvvwwggwwvgvvwwghfvwwwwfgwwwwfvffvwfgwvfffffwwwvgvvwwheuvgwvgvwgvwgggffwwvwgvgxwgeuwggwfwfgggwwvffwwwvwfwxggggvwwwwvgfwwwwxwwwwwwwwwwwwwwwwvvhwfvwwvgwwgfwwvvwwgvvwgwvgfwgwwwfvwwwwwggvffwwwwwgvgwwwggfvvgfvwwUfWwuwgvwwwwwwwwxvwwffwfvvggwwgeVveVvggwwwvvxgvfgvvfvwxUVVvewgfwwgvvvgwwwVVfvefwgwvggfwwgffwgffwgfgfeVfeVfggvvfvvgwVeeVVuwwwwwfgvwgvvggvgfvfwwwwwwvfxwvxwvxwwhxwwwxwwxwWewwwwWwgvgvWvffwwggvwwhvfxwhwfgvxvwwhvwwgvfgwwhwwxxvgwfvgvwfWfewwwwwxwvxwwwwwxwhvfwwhwvwwwxwwvfwwgvWeffGTDuxwwWvvweVggfwvhvfgeGTDUvuWexwxfwwwfgvwwwwhvfwfgfevvggwgwwfgvwwvgvvgwvwwwfWvwwvgfwvugwwwgwwwxxwwxwxwwxvwwwwVvwwfwwvwfvWfvgffgwgfwfwwwegwwwxwfwvvvvwfvwvwwgwfgwuvgwxwwwwwwwwvwfffvffvxwwwxxwwwxwwwvxwxwwwwwwgwvwwfvvwxwwwfgfgfffvffvvgwgfgefwvgffwwfgvffffweffffwwweggwfwgfwgvwwfvefgvfwwxwvwgwwxuvwwWgvvwgvgwvwwwWfffwwxwxgvxvwxgxwggwhwwgvvwfwwgfxvwfggvgxggxwwwWvWxhwwwwwwWvWwwxxhwgwwwwwvwwgwwfvguwgGfVuwwxxxvwwwvwxewexvwwfwgwwgggwxgxvwwWwwffguvv7T5txuwwwwwvwvgefv7T5dvfgfGffefxwwgxewexwwwgffvvffWfgggvwwwxegexweweggwgfvevvwfgvwvwwgggfffvwgfvwxwxwfwwgwvgwgwffgwfgfwvgfvfggwgxfFvwweeFgfwfwxwvwwwwwFVefWgvwxwdffvgfgefwvgwfUvvwUfUfewWgvxwgvvgvgwxfvxxhvWwwwfwwwwwwfwvggggwwvfffVEefeeeEVefgfgwgffvfwffEUUVUVvfvvTUeffwfuwWVfeeffdgvWgvffFVffwfvwwwXefvufwwwWgfvwgefvuVwvvwWgvgwfwvwwvvwwwwxxwwwwwgwvgvvwxwffgfwwfvfwffwfgvwgvggfhfxwwwwwwwwwggfwwggwwwgwvxfwwwwvgwgwVefvWVVgwxwwxwxwxwwwwwwwwwwvwvwxwwwwwVVwxxwvwwffvffWevwWgVvgfvwwwgwwwWevwWVfWufgfVgggffxvvvfwxvvwffvgffvgfVfwvgwvwggwwfwwwwwwwwwwfwvfewwwgwvvvgwgwwwvwwgwwxgwfwgwgvgvfffgwfgfvffwwfvfwgffgfvfvwwwwwffxwwxwwwgfgwffvgxvwvwxgvfwgwwhfegUvUvuwwwxwgvwwfwwvwvwwwggxwhwevgvvwUwvwvvwxwgffVefUfefewwvfffvfwfwggUfUvefvUfvfvevfgwvfffwgwxwwhUffgvgwVvvvvvwwgvgggvggwgwwXeggfgvfwwhggwvwvwgvvwwvwwwwwxwwwwwwvgfvvfvggvxfgvfvfffvwvwfwwgfggwwwwfvvxwxwwwwxggfvwwwwhwvwwfffwwvwwWVfgwwxxwwxwwwxwgwvwwwgwxwxwwwwwgfgwwwveegfwgwfvFDEuWVvgfffDTTxwwwgffvwWVfffffVuwgwwwvgUeVwwxvgwwwggffgwfwwwwffvvggwffffffwwwwwwxwwfvvwwgfvvgwfwxhvwgwwxwwxfuVgggffgvgUfwwvwvgWefxwUfwwwwfwWevwgwwwgwwffvfwwxxwgfwfGTuhvwUfwwvwwgwwwhvvfwfwvvwwfgVefvggwwfgwwwvwwxxwxxfWeVhfv3DfwfwvufwVeffffvwDUwwfwvefefffwwfwvgWevwgwwxUVwwwUfuegwwwVevxwwXeVVfvvwwwwggvwxhvwgvwwwvwwwvuwxwxwfwwugvgwwvgvwwfwgwwwvgfvwwgwfwfVvgvWeVwgwfvwxUfwxgugvgwwgvWwgwvwwwwvfuggVwgUfwwWefgwgwgwwwuvwwwxvvWwwwwvwwvwgwwwwwwwwxwgffwfDUfvffVffwFTegwfvuvvVeffgffWevvggffwvwgfgwfwvwefgvgvwWvfvwhgwxWgwfwwwugwwvwwwwfvvwwfwwwvwwwxwwxwgwwwhwwxwwhhwvhwfVvggfwwwwgwguffvvvfwgwfVuWvvWwxwwvxfgwvwxwwwxwWeghgwWwvxwwvwgffgwggvvwfffwwvwxhxvgwxwwvwwgffgwxvwhwwgwvwwvxwfUfgvgVuVffVfvffvfgUfvvfwfvvffgWegggvVfffwgvvVwegfewggvfgvWvggvfgfvgwvxfggfwevwvgfffwwwwwgwwvwvgwuvwfwfwwwuvwvvggwhxwvwwgffvuvgVfwgwvevfgwfvwVewgwfVuwwuWwwvgUeggeVfwuwxwgwvVWfvxvwgwwgvfvFfggfeuwgfEwwgwwfwwvgwvxgwxvwfwgwvwfxwgwfwwwggghgvgUVevgffUefUeFfgufEUWfeVegvvwfwVffUVEVwVfevgUvffgffgvwevguVfVefVguVvvffwxvgvffvffvgffggwvffwwwvffgwgvwwwggwgvvwufwxWggvxfwVfvffwwuggwggvgvwfdfxwgWvwwvgwwFfwvwuvgxWwxwxWfxvgwwwwgvugdVgfvFVxwugvwvwwwwwwxwxgwwgvwxvwgwxxxwvgwwxguefwvW5UfgegfvWfvvfdfwWg5UgwegfFVvguvgevhvgwfegvgwfwgvxxwxgwvgwxwxfugvgwvgvfwfgwwwwgwvwxwxgxwwwwwwvvgwwxwwwwwgwwwwgwgwfvvvfwWfwvwwWwVvwgvugvXgvffvfvwwwwggfwggwvggwvvxwwgvwwvwgwwwwwgfwfgwwwvgffvwwvxwwgwwxwwxwwwwwwwgvwxwwfgfwvwwxgwwVvUVwffwgvfffefgeuwvffffggvwgfeuvggfvwfVvugVwgfgvVVVwWwgvgfvwwewvwwwwvgggvfVVwwvxfwgfvghvggwfwwwwwgwwggvvgwvwwfwvwwwfwgvwUufgffeVgfffffwvgvegffxvwuwwwwfVfffwvwgwgwwwwwfvewwfgvwwffwwVgffwvWVeVwvfggvwgwwwwggvwwwwvwfgwwxgwxwwVwvgfwEWfFgvfEEfwvfftUfUTvvgvgWFUwwvgfVVffewgfwwtewVVevgwwxvgwwwwwgvufVgwwwfUfwWvwgffwvgwvwxwWgfuwxwgwgvwwvffwgwuvxVgwfgwwuwvwwhuVfVgfgVfvwwgvuvwfgvwVffwvgfuxggufwvxfVgwgvewffgvwvWwWgwwgfUfvgWgvVVffvgfuwvfvfwvfwuugwwwwhvvgwvggwxwfvgvgvfwuwxwhwwwWfffEETVvVfuvffTUfwwVVggveUVUfvVfvfvgfwggwfeffvvfgwwweeWeVfeVwfwWwwwwgfwVeeVfvggxwvvvvgVvvgwvgvvwuwvwxxxwvwggwwgvwwfwwvgvxgvuvgfefefwgwVegvggwggUvwfwVewwwxwvVefUvfgwvvhwwwwxwwfhwxwwggvggUvxfgETwwwgvgwfxfgvfvvgwwvffffgvggfwxwfvffvxvgxfE3dwwwVefvgfwwVeeUVUUfevVewwfwgvwWfwgwwwvVefVVUVfugvwwxwfwggwwxwwwffvwwgvgUVfufvvvvwwwwwxwxwwvwvwwWgwwwhwwxvgvxfwvvwxGgfeVFffwggufvfuwwwfffwwfevwgwhgvggvffvwgwvwgfgwevwwgwwwgfwwgtffvggvVvwgwevwwwvfwwwwxxwvvfwwwugvgvwwwwwvwwxhgS5UwvgeVuegvUFfT6VUEVgWvffvwgwffUuwwgwVvggvWTfgwtfegwvwwvghfwfvgxwhwegwwuwvVVgwwtfevxwwvvwwxwwvwgfxhfvgwuhwvvexwwwxwwxxVgfVvffuUvvgwVvfUeVfuwfwwgfvgvgWfvfgfVfVvwwxwwgvxwwwwgvwwwvgwfgvfgvfffwwvvWwvwxwwxhwgwvfgguwwwggfghwfwwvvwwxgffVgfffWgfvfvvfffvvffgvVVewgwffvWffUwgvwwuffVvuffgfwfggwwfwwwwvvvxvvhfevwvgfvwVgVvxfvwwvggvgwfwxxwwwgvwvxwwwwwggxwwhffwwwwwwwwfvugguxxxwvgufwfwxxwxwwxwvwvwwfgwffwgvwgggwvfgvWfexxxxxwvgwgxvxxwgwwwwwwvvgwffwvfwgfgvfwvffeFUEtxvghvfffgfwvfWfeuvvwfFUEdfwxwgwvgfwvwvgwwgvfwfffVfvxxxwhvhxhwvgfvhwwvgfwgwfhvgevWfWvwvwwvwwxwxxwggwwxvfffwvwvvVVvffvgfxwwhfgffgvwgwwxvvwwxfvxwfgvgfwwwwwwgfwwwfvfvgwhxxwwwwwwwwxwvffwxwgxwxwfwvwwxwWfvvgvgfvVvvgvfggfegffwfvfvwwvwfvffvvWwfxwwffvfwwwxfvwwwxwVvvWwwwwwwwwwwwhffwfvwvxwgxvwwwhwfgwwwwwwwvuwxwhWwwwwvwwwwgvfwhxgfvvwhfvwxggwgfvwwgdfwfwvvwfvwwgdvwfwwXgewxWgevwwwe5UvwgdvwwwxWwwwwVuwwWwwwuxxgwwwVugfWwwWvwwhwwxwxggwfFfdvFBtwffffgxfvwwwdfVdfwfVUvwhgevwwvwwFfvxVfgfgwwGdfwfGgfvvwwVfvhvwxvgwEfvgtffvwuVvwxfgwwgwwwggxxvvwfwxgvwxxgggvwwwgvUwgvfvvhwwwwwgUvwwgfvwgwgvxxffxwvVewwwxgvwxwwxwxwwggwwwgfUfgfVefgvvwwwxwwwwwwxxvwwwwwwxxwwwfxwwwwwxwxwwvvvgffggfETvgfwVewwgUvvfggufvggvETvgfgWvwggfvwwwfwwggvgvwwwfewhwwwwwxffwfwvwgwwwwvwwfwvwwwwwfgwwwvwxvvwwggvwwwvxfefwgwwfgfugfVwvwhhwffgvwhvwwxxvvwgfvwfffvfwwwvwwgwvwwgefvwggvVffvvwefwvgwggvvwfwgvwwxwvvwgvxfwwwwwwwvgxxhgwwxgfvEVfeeGTevfwuvgwUfwwwddfUfvWUvvfgvfvwwfggwfgwxveeWfewwwvvwwWVfvwhgwffwgfvxxvvwVevgwwwweefwwwxwwfwhggxwwvwxggwwggfwwwwgffvwgfwwwwgeuxwffwwwxwwxxxgfVVvfgxwwwwfgggvvwwfeuwwEEggvgffwvwggwwvwfwvvwhfvwxgwfgwwvfgggwvwgwuvvwFCcwwVVvvvWUVxwvwwwwffVVvffgfwwwvgfwwgUUwxggwxwwVVffefVgwwvvvvvvwwgeegvvxxwwwgeuwfVgfuwwwgwwwwwwvhxvvxxhwxxwvhvwxwhwvUvffvwwvvgvUvvfvggewwvUgUfvvwwxwVfwhwgxwwwxUvvgfewgwvfwwfffffwwgffwvvwgwhwvvhfwvvwgfvwwffwxwwwhvwwwwwvwxvvwhfVefvfvefUfvvffffwwVewggwgfffvfvVvvgvevwvffgvVefgwvggfvvvwUvvvgvvfwwwwffwwwgvggwwWvxwwwgwffvwWwwvwxgwwwfwwvvhvwggxwffffvfvfwvfgfggwgvggvvwwwVVwgvvvxfgwwwvvxgwggwxvvwVVxxxwxxwwfwvfeewgVVfwvvgxwgxxwxwwxwvwwwwwgxxxwwxxfVTdwwgggggvvfvVVfvVTtwfvVVwxwvvgfwwvvvfwgvwwffvgvwwwvghxwwgwwvwvwvvwvwxwwvvwgwwggwvwgwxwxwgvwfwvwwxwxxxwwwwhfvvgggwggwvvwvvggfggfgwfvwwwwhwvwxwgwwwvwwwxxvxvfvwxwhgfvVffwffgvvwvwwgvvgwwwwwwwxwhwuwgwfwxwfwwwwwxvvxwwhUfffffeeUevwgWVfVffUfwgweeUffvvgfvwgfwfvwfvffgwWvwxwfvvwwxwgugxwgwwxggfgvvxVgwvwwxfwwgwvxwwwwxxxwgwwgwxxwwwwwxwxxgwwwwwxwwvxwgfwvwfwgveVfxxxwhvfxwwwxwwwxwvgwwwwwVuxwvxfwwgvfgvwwuwwwgvgvfWvwxwxvgwvxhfgvwwwhwfgvvwwgvwvfwfvVeDETwwwxwgvfwwwgvfgvfwgwveffvwxwwwvhfgvfwwvVweVgVveWwDETeVwxvgvfwwwWvfgvwwgwvgwfgwwvfwwWvwxxvwxwfwwwxhwwwxvwxwfxxxxwwwwfwxgwxggvfgvWVexvxwxwvwwxhxwwggvggfgvgffwwwevggfwwwwwwwwugvVwvxwxxvwwxxxvggfgwggggvvgffefvVEDwgwgwwgwwvwggfwfffVfgfgvwvwfwwheUffffgffwvVEDegggewxxxwwwvwwvfvfhhxvfvwfxvfuVgVwvwwgxwgwxwwxwwgxfvhhwvwxxwvwwgvgwwvgwgffwvfwfffwwxxvwvwwwgxfgfgxwgwvwwvxwfVvvwgfgvgVwUvugwwwwwffwewgwfgfwwwwwxwwxfwgvgwUguwwfvvxwvfgWefVfUveffwfwgvwvhvfgVwewegfVwffvfwvfwgfffggwffvfUffwffwUgufffvwffgvwvhwfvwgwwwwgwwfuffffwwgwWgvgvwvgvwwvwwwfvwwwwxwwxwwwvvvwwwxwwwwwxgvwffwwwvgfewwwwwwvwgwgwwwwvfvwxwwgwgffxvwxfvwwgvwffvvfwgfvxffvgffwhxwwwwxxwwwwvfvwxvvwggvwwvgvgeewfvgVTDtgwwwwgwvwgvwgUeuwwvfvggvgvWVwwwwfffgffvVTDtwgffffeeUvwwwfgfwwwxwwwwwwffffgvvffggfgfwwvhvgwwgwxwxwgvgxwgvfwgxwxwvgfvgfwwgffvgfvffwwvfwwffwfwwxwwwffwwwwwxfwwgxwgvUgwgwhWvfUfUwfgwwgwgffgUgvgfvvwxwwgxwVfwxvwUgegfvwwffgfVefUfVgffwvfgfffwgvwgUffwfgwUgffwfwwvwfffgffwfffgUfwwvvwegefvvwwxgfvwwwwwwgvfvwhvWwggvwwWwwgwwwwgvwvwvvxwhwfwwfvwwggvwfwgfwhfgvgwvwxfwgUfvwGTewggwfgwwffgfvvfgfwxghvfvvufvvwfwgUfwwWevwwXgvwfVfgvWefvwwVevwwfwwxfvWefgvwwwxgvvxxggwwe3DgfWefvwvVewfwwwVUVfVfuvfwwwhvwwwwWevvUfvwgUUUeVfefvgwwWggwwgwwffvwgwwxwwwwUfffweVgwgvwwwxwggwvfvfffvwgvwwxgwwvgwfvfewwwgWfgvvvgwgWefgwwVewvVVefvwwwfwwwgvwWwgvfwwvfwwvwffgGfvhwxeewwFfvvffwxgvfvwfffwwgvgduwgVugwwwwfwfFfwwfwfFUegffeeefEVewevfvGffugweexwUffffgfvEffvwffgWTefVUUvffwvfgvVvUFUggfffgUvwXfvgefguWfvwwwgggevwwwgwufvgvwxvvgwwwfwxgggvwxwxwwvfxwwwwwwwwwwxxfUfwwwVefvfvfwvwwvgwwwwwwwxwwwwwxxgggvwwUfwwwgvvwwgvwfUwwwwgfgvgwvxgvwwwUfwxgvvxhvgvwwwxwwxhffvvgwFTevfgfggfgfwfwwwwgvwwwwwXfvwwgwwxwWeffvewfwvWevwgvgGTUvgggfwvgfwfvvwfwwwvwwvwvwwwwwvwvvxwgwwwggwwwwwwxwxwfwwvgwwwwwgwwwvwwwwwwfvgvvgwwwfffwwwwwxfgvwwwwvwvwfvwwwgwwgfgwevwgvfgveffvwguvfgvwwgwvVuwwwgwvfgvwfgwgvvwwwvwwvvwwugfvfUufgvgeffwevgwVwgggvfwfgUefwwwwwWvggwgVVwwfVVfvffvwffggwvvvvffUggvwvVVfvxhhggvwwwwgggwgfhvwwwwvwwvwxvwwffxhwvwfwwwvwxwxwwxwwwwfvwgwgwwegVTvxvwggwwgvxwxfUwwwgwwfvwvwwfxgghwxwwwwfUwwfgwgvhvwvgwvvwwwwwgVuxwwwwfwwwwwffwWwwvweVD3xwwwwwfffvwwxfUwvvwfvfVfvwuwgvVfE4SwwwwwwfwffVdfwfffxwwwfVuwgwgggfefgwgVuxwggwgvggwwwwvWwwwwgxuwwgwwwwwwwWVfwwwwxugwwWuwWwgUSuwwgFfwwwwwWwffwUwwugwxxwxwguwhwwxwwffwggfgwvwFfwwvgvggfgxhffwwxvgwgdvwgwgwfvwwuWfxgfdfwvG$DgfvvvwgwffgVwwvwFfwwhFdvFfvgvwgffvdTfffgfgfvwwwwUeuffwxwxgevwhwfhTfgdffgwwgwvxXwefvvwwgvwwwvfhwwWggvwuvwxwgvwxwxvwwwwwwwXWffwFfwgdewegwwwxxgwxwxffwwxwwhwvwgvgevhwwvFfvwgugwvgwWwvfvvvvvgwfwgdvwWwwxwuvvwghufwvwgxwggweVgufVSefewvvwxxfwwxvfgegwfwvwwhfwwfufgw5UfVvfdvvvwVgdegVgwVgggvWvvgwwwxwvgwwxgfwgvgvwxgwxxwxwwvWwwvwwwwfwwwgvWwgvvWvwwwwvWxwgwwxxfgUfwewVewwwggvgwvwwwwgWwwwwxwwwwxwwwwwwvwgvffewwfwVegvwWvgwwwwfwffgwwwwvgvwfwewwvwVexwxgvgwwwWvwwfVDevfgffgffWfwfvufgfwvvggvwwhwgewhgghwwhvETffgUfvfffvgwwWfVefgfgwvwgufwvwwgfwvvwwvwxwWvwvwwwwwwvwwwwwhwvvwxwxwxxwxwxxfvfvwwwggwwwvwwXfgffgvvvwvwggwvuwwwfwwxwwfwvwwxvxxwgfvvgfgwfggvwwfwwhvgwvgwvvvvwwgxvvgwwwxwwvwwxwwvvxwgwvhfffUffeUfeuwggfvfwwgfwwfuwvwwwxewvwxvwgeVVfeVVfgweUfffwwgffgfwggwvgfwfgwhgvwgvwwWfgwwvxwwwwwhWxgxfggwxwgguwwwxwwwggwwwvuvgxwvwwvvfvvffwwffgfggfxvfggwwwWvwwfwwxwwfwevfVugvffVfgwwvgvVVufhvvvWwfveevVgwwwgwggfffwfVewxwvwwwwwweffffffggVvgfWffwvwffwwffggUvgfwwwgwwffxgffuwVefggffggfvfgwVvwvfeewwvwfefggwvwwvgggvwfhgggUvwxwxwgwwwwvwggfwxwvxvxggwvfwfwwxwwwwxfwwfwfVvgwfUgUwwuwwwwfwfuwhwggwgwUwvwwfwhwffvgffwffwwhfwwwggffgwfwwgfvffvgfvgwfgfgfxwwwwwvxwwwfwfVewfffVfUvvuwfffgfVevgwvgxgwwgewvwwfvwxfffVuVefWfvgvfvwfgUvfefwfvwvxvgvvggVufgvvgfwxvxwxwgvxwgfxwgxxggwwgvwwvxggxwwxwfvggvvvwhfvwwggwfvfgeewwwEEwwfwvwvvwfvvwwgwffxwxgfwfwfwwxvvgvwgeuwffwxwwwgffvwwwfgxwwwwwgeevfgvxwxwxwwweGCcwvgVVwwwgfvUUgffeeVevvvwwwgwwgfwvvvuVUgeeffgffgwxwwwfgvfvwwwwwgeuwggvfeeWefggwwwwxwxwwwgwwwvVwvhgvgwfgwegwwvwuwwXfufgggvggvugwuwwgeVfufwffufggwgvvggvgvfgvvvfwwwwxuwwvwwwWfgVfeffvwvgfuvwxgWefvvgfwfuwwfwWfvgfgVwvgggfgwfwwvwwvwwUgWTDUffffVuVffgWffVVeVveVfvffgwwwwWvwwwwVwGVUVUeUfffufeuwgvgwfvwfwffgvgUfgveVfVvvgvvgwvwwfwgfgwfwwWvxxwxwxwwxgwwwwwwxwwwgwxwwwwxwwwxwxwwwvwwwwfvfffgfwwwwxwwxwgwwgwggfwgwwxwwVvwgfghgwwwgvfWwwwvwgvwVgfvvfvwxwwwhfwwvwggfwfwwgwwVgfgwwxwffwwwffvfffgfwxfvwfwwwvvVwgwgfvvggfVgwxggwvwgffvfwVffvvgwfffVffggffwwvwvwfwxwhwvwwufguvwwwwgfevgwwwvwwwvwxxwxwwwxvvwwwwxxwhxwwwwwwwwhwwfvgfgfgxvwxwhwxxgfwvvwwfwwwxfxfffxfvwwxfvgffwwwvgggweffeggfwwxxfvxwvwvwxfvwggfxwgvVgffegfgwfwwwxwwfvwwfvgfvwgewwWwvwwgvvvwwfvwhvfffeggfgfWwvgvffvwwwwwxwwwxwgwffvwwvfvvgvwwvhxwvgwwwWggwvwhxgwwvvwwgfwwfwwvwwfgwwvwvvfdfwwVVegdxgwwwgwfwgwgvwfvwwffwwfwhffWgwwvwWefwweVWwuwwvggeffwVgvfvwgwwxuwwggggUeeVfggwwvVVwvvfvVUeffVUVVVdwUfwgufeVwfgfffgveVVfufgewggWfwwvffgVgVgEUeVefVvVueVTfVwgffwfwvwwggfvwgffgfggffvfgfvgvwvvfwvvxxxgvwwvwwgvfwxgfgwwwfwfwwvfxgvgETwwgUvwvwwfvxgfvfgUvwvvwwwxxwvgvuevhxwgVewwgUvwwggvgffvwgUvwfwfwxgwxwwgUvwvgfvwhwvvxgXffgVewfG3tvfugvwVUwxwwwgUvvgUwgguuwwufwwwETggvfffUfvvfVvvvgfefwfxVewxwxwxxvggVegwwfVVwwggwwvgxxgvvwwwwfwxvvwggxwwwgvwxwwwwxwwvvggeegvVVwfghxxwwgwwwwxxwxvxxffffwwwwvfvwgVVwgfvvvfwffggfgvwvgfwwvvwvvggwwwvVVwxxvvwgVTdggggwffgwwwgvwgvgffwwwgwwvwvwgVVwgeuwgfEEgfvvvfgwffwwvgwvvwvwxwwgvwwwgwvvwgwwgwggwwvwxuvwwgvgfwwxvwxhvvwwggvwwwwwggggGffvwWvVgfwwvvwxgvwwwwfgwewwwwvwgwdfevwwfffvwgevvXwggdffevevvwwwvfwxwgwggffffvwgvguvwvwwwwgwwf55UeuWfUfVwvfwwwwfgxvuvgEfgTffwvgvwffTdfwwffvfvcTUeUvgWeegVwwwwwwwgewWvwwwwwggxVVvFegwwvxwfwvhhwwxwwwggxwwxwwwwwvvgwwvwwxwwwwwwvwwgfgvVefWUwwwwxvwwwwwwwwwxgwwwwfwUwgvwgfwwfhffgvwwvgfwgfwwwgfvfgvffwwwwgwfxwxwwwwwwwvwgggwffvgfvwwVevVehggwfgvfffvxwvfwhgvggwvfgVwgwffwwgUfveuwgwwwwwWewWfvffffwxvfwwvfwwwggVvwvwwwvwwwwwwfvwvwvggwwgwwxgwwwggwvXfvfggwvwggvfwgwwxeffvfwfuvvgwvwwvfwwwvwwwgvwwxwxvwwvvwgWffwfgfgxvfwwwwffgvwwUfgwfwwhwvgfwffwwgvvxxgfwvgwvwwwwwTVfvfvUDeegvfgggWfUVvwgwvfvwxwgxvffeuwwwxWwvGUfFfvgfUwxwwWUfffgvgwwgffgwfwUfwwwvgwfvwggwfVVwwwhgxwwgggwvwwvvwfwgvxwffwwwvwgvwwfwwgxvvvwefVWvUfvfgwwwwwvwwfwgwwhwWvhvfvwUWgfvvwffvwwuxwwvefffefgvffvgvfVfwxvwwwggwfvwfvfgvgWwwwutfvdVfgvEEvffGguwwwgvwwggveUwhwfwgxvvUfwwGVeuwWdegfWgwEeggvVVvvvffewwvgWevvuwwwwhWevwgffwvgwvwwgfwwwxgxwfwgvxwwwwwwgffvwgxwxwvwvwfvxxwgVefVUdwwwwwfvfVWxwwwgfvfffuVfUUEUwwwwxxwxgxvgwxxwwwwwwwwvwgvfggxwwxwwwgwwfvvfgffxwxgfvfgfxwwgfvggxwgwwvwwvvgveVfwwwfgeVVxgvwgfueVefvfffVVuwwwwwwvwgwVVfugwwfwfgggeVVVfeVTEuxwwxvfxxwwwwwwwvvfffwwwgxxwwxwwgxwwvvxxwwgeuvfvvTUEwwwwwwggwvgwwffewffffefVEExwwxxwwxwwwwwwxwwxwfwwwxxxwwxwwwwwwvgvvvfgwvggvwwwvwwvffvfxxwwwwgwwwwwwwwvgvfgvfgVVggxwwwWffuVVxwfvfwwVfeveVVewwggvxvwgwgwgeuwgffvxwgffffVTdffxwwwgwwwxvgxwwwgwvwgwwwgvwwwwwwwwwgwffgfvxgffvwfwwwwvgwgfvggffvwgffvwwffxxxxxwxxwwwwwvghwwwwgwvxwwwvwwwwxwggwwwgwwwwwgfvwwwgggwvwgggxwwxxwwwwvwwwwwwwgwvwwvfvxvvgwwwgfvfgffvfgffvwvffgvxwwgfwxwwwwwwfgwvfffvgwffwvgffffwwwvwxvfwhgvvgwwffwVfVwwvvwwwwgxwxwgvgvWfugVuwfwgUTFwvVwwgfveVfwfvfVfVggfeWfeVUDxxvvwwwxwgfwhvgwxhwwwwwwfwgwwwwwwfwuwfvvffWwwgwWgfffewggwwwVwguWvwxvwwVwwgfWwfwfgwwWfUweVxggwfUwwwwgvVwffGfeWfTxhwxgffxwwvvgeVvxgfvugwVEwwfgfVewwwwwwhwvwvfwvggfvwwfwvghgwvwvvvfwwvwgvxvwwwufWWVvwgVfugwvgfwxwvgVUvwfVVegfgfvfwwfwwgwxwwwwgwwfwwwwwgwfwxwwvvggvwwwwwgggvwwwgwwfwvwgWwvvwwWgfwggwfvevvwgvgwgwgvwvwVvwgfvvwwgwwgwvufwwvvggfvxwfvffgVfuvfvwwvfwxfvfvvUvggwwwwwwfefwwwwvfffVuwvwxxwgwffwvwgffvwwvfvwghwwwwwwggwwwwwwwvgwwVfuwweVgfgwvgvxgwvwggfffeeVwwwwwfeVwwxwwxwxwxwwwfgfvvvwwgvghwxwwvwgvfeeffgwgwwgwgvxwwffvxvgwvwvgwxwxwwwfvfffwwwxwvgwwhgfwxvfxgffeeefVvggvwgvgwvwwgffgwvxhgwwwWVVffeffvfvwwvwwgwwwgwxwgwvefggvxwfvfxwfwwgvwvwfgwguguuefwvgffwfefeggwfevvVffwgxxfvfggefevvfgvxwwwwvwwgvxwwwwvwxxwwwwwxxgwvvwfffxxwwvhgffvvwgWvgwwwwggfvvgvwwwffgWvfwgxwwwgwfffvwxggvwwwwfvgVffwwwxwwgwfffwwgWvwvwgwwvvffVfffvegffxxxwvvvgvfgvwwwwwffxwwwvvwwvvgwwwwxwwwwwwwwwwwwggwwwwffwwvfgwffgfvvfgvvvvwwvwgvfwfgvwgwwwwwxwwwwwwwwwwxwwfwwwxwwwwwwxxxwwvwgwwwwwwwwwwwwwwwwxwwwwwwxwwwwxwwwwwwwxwwwwwvvwwwwwwwwwwwvgvwgvfgwwgfvwwwwgfwwwgwvwwwwgwwwxwggwvxwwwxwgvggvwfWwwvxwvxwfvvwwvxwgxwgxxwwwwvfxvVxwwgUVvgguwgvfgufwwvwfUVwhwwgvvVhwwxwxwvwwwvwfwvWwxwvxwwwuwwwfwhgufwgvxwwwwxwfwwwwvVvfwWxxwwVgxgwwxwwgxwwwvguwwwwgwwVvgwuvvvgVeehgvxgfwxgfgvwwwVvvgwgVeUxwgfgvvggexhgwVwggfxvwgegfxwwgwewgwWvwwgwgWVwwwwgwxwwwgwvVvvVvwwfEUU5wfxgvfffewwhffVFwwwfgfWTU5xwfwgwhgfvgvxxwfxwwwxwewgwwvexvwggxwwgfwggwfwxwvWvvwVvfVwfwwvwvxwhwwWWxwwggxgffEgwvxwgVdvVuxfxgvVVwVffFgfffUwwwvewwwwvvfUUwwwfggguwVfVdgfwwwwwxwwwvgwwwwwewwwvvgwfvwwgvffvfvwgveVVwwfUuwgwfgwvVVfgfefVgfwwwvwVUfUuwfwwwwwwwwwwwwwwwwwwfwwwwwwxwwVewwwgwxwxxwwfgwevwwwwgfwwwvfxwwwxwwgfgfvwfwvwwwwwffvfwwxgwwwVewwwgwwgxwwwgffeuwwgwvgvwwwwwVUffUwwwwgwwwffxfVVfggwwwwWWvvwvwvvwgfvgfvxwgwwwwfwxwwgwwwwvfwwfvwwWfvVVggfvwxfuwvvgfWVfVVgvggfgVwwwxggxwwxxwwuwgwwwwwwxxfwwgvwgxwwwwwwwwwwggxxwwwwxwwfwgggwwwxwwwwwxwggwggxwxxgwvwwwggwwvffwevwfwfwgwwfwggwgfwgwfwefwewgvwwgvfvwwfvvfwwfvwwvfvwwwvwxwwwxgfvwwewwwfvwwwvuvwfvgwvwffvgwgvwwfvgefwvwVvwffvefVfffwewffvfufgvvuVugvvwvuwwxwwwwwwwxxwwwwwgvxwwwwxwwvfwwwwWwwwxwwwwvvwwwxgwgvwwwwwxgvvvvggwvfwwwvgwwgfwxvwwwxvwgwgvfVwwfgWwgvxwwvvwgfvwwxgfegvffWvUwwggwWwggfggxwvwhggwwwwwxwwfwfwfgvgffgfgUwwggwgfwwwgvgwwwwwgfffVufevVfVgwgvfffffffgwfVUVUvgffUwgWwfWwgwwwwxhwxwwxwwxvggvwwwvfwwwwhwvfvgfWugwvffwwvwggfwggggWwwwwwgwwgwgwwwgvwgewwwfwvwuwfgfwvgvvvwgwggwwffVgfugfgffvgvfwgWgfwvWvvgwvfffVfgvfVuwwffwuwfUewfuwwvwvgvuwwgvwwwgvwfegwVvgUwvVugvuwwgvxwfwvvxwwwwwfgwVwfUwwwgfffvffuwwVgffgwwWfgfwvgwwwwugvxxfxgvgvxwxwwgwwwegwfwxvwwvfWugvUgwfwgvwvvvhvwwvvvwvgwfwffwwwwggggwvwfwgvfhwwwgfvvwwgxwwwvggVuwgwffvVgffgvfvvwgfgvgwvgwwvvVffVgwvgwvWwfwgffffvfffxgxvxvvwwvvgwfwffvxwgfwfwggwwvuwwfvggvguwwwwffvwgwwvgfffVwffwfffvgfvwwxwwwgwfwgfvfVwgwwwwwgxwwwwxwgwwwxwxwgvwxxwvwgwfvvfxwwxwwgfwwgxwwwwgVwxgvvggvfWxwwwfgwwwvvwwwwwwxggwgvwvvwwxgfgVwffffuwgvfwwvvWwfgwwgwwwffvVfvvvffffwwwwwwxwwfuxwxwwwwwfgxwvwgVwwwgwwggvwwwvwwWwwwwwvwvwwfffFvwwfftwwvgfffvgVwVfeEvfvxvwwvwefVtwwvwwxwwwgxxwwwvwfwwwwwwwwwwxgvfUxggfWxxxxwwwwwvxwwxvgvWxwwguwwwwwwgvwfwWwfUwwwxwxvwguwwwggwffUvgfeVwwwwxwxwwwvwxwwwfUwwfeVwgffVwvgvVwwwwfwwxwwwgwgwwwwvuwffVvfugwwwfwwwgvwffwwwggvwwvgvwfgffwwwfwwxvgeffVUugvggvvfwwgvgwfwvgwfxwwwxwgvxxxwxwwwwgguxfvwwwwxwhwvwggvwwfguwwxwwxwxwgxwgxfvxwwfxwgvwfgfvgvwwvfxwwwgwwwxxxwvggVufvfwuwgwwwxxwwvgxwxwgUuwvwwffvfwuwvvgvwvfgwxvwxwwhxxwgwgvwwxfvgwvewxwgwxxwxwwwgwvwvwwxgvwWvVfeUewvgxwgwwwwwWwgwvewVvgffeUegxwwxwwwxxxwwgvwwwvvggwfxwxwvwvwwfwxwwwwxwffvwfgwvxwwgvfvgvxwxwxwwgwxwxwwvwwwwgwvfgwwhweveggVwfvgwwvwffeVuvfeguwgwwwgvgfwWwvgfvVwvggVwxwvVVfUvVvVvxxvgghwwwgfvggffvwgwwgvwxwwwgvwwwwwhwvwwwgfgVevfewxxvwwvwwwggfffvgfffffffWVwgwwwwwwxxwwgxwgxwwwwvfwwwwwwwwwwgvwvffxwwwwffwhgwwwwwvwgwwwvgWewgfwxwwwfxwwgvwgwwvwwgwvwWfwgwwwvwgUfvWuwwfvwggVefgVvffwgwwvvwgwwwxwgvUuwvffwffvfwxfgUvwffvwwwvvwxwwfgwxgwvggvwwwxwwwwwxxwwvffvxwwgfgwwgeeVUwgvxwfwwwwwweeVUuwvwwffVuvwvxxxxwxwwvxwvxxwxxgvwwggvwwxwwwwwwwwwwfVUuwwgggfvfvwwxwgxwvwvwgwwxwwwwwxwwvevfvwxwvvWuvuwwwwgwxfwwwgffVuwvwgfVUufvxwgfwgUwwxxwvfggwgwwfwfegVvwfwggVvxwwgvfwhvfgvgefwWxxvwwhxwwfxwgggvfVewvfUggfWwvwgfewwfvffefVVwfvwgfVFgwwvwxhwvvhwxvgvgfgvfwewgfgxfxxWwvvvfdgggvxhggWwwxwvgvvgfVxwgwwvwwwwfwwewggwfvwhgWVwggggxwguwgVwvfTwgfvVwwgVfFwgwgFvwvwwgevtwfgwwwfeuxfvvgguwxwwgfuxwwwfggvgfgvuwwwvxwxxwwwwwxvwwwgfVwwfgfgfuwgvxwvfvgvfvfegfegvgwfgvwwgwvwxxvxxwgwvwwwwvggfvxwxvwvwwgwwgvgvwvggvwfwvwwxvxwgwgwwgwvwwvwwwxwxwxwfwgvwwwwgwwvxwwwvxgwwwwgfgewvggfgvgvuvwvgwwgvfwvfwgxwwgwfwvgfwvVwvfwwvffwwvgvxwvgffUggfgfwvwfvgwxwwwxwwgvwwwwwwwwwffffwwwfwwgfwwwwwxgffUDwgfwfwwgwvgvxwvfwxxwwwwwfvhxwwgfgwvfUfwwgwgwxwgvgwfvffvgwfwxhwwgxxgVuwwwwwhwwwwwwfUwgfwwwxwxxxvfUwwvwwwwfgfvffvfwfwwgfvgwwwfVuwwvxxwXEtwwfffvwwfwxgvwwwgxxfxvxxgvffvwwwwxxwwwwwxwfwwwwguffgvwwfgffwxxvwwvgvffvffuguwxxxvxxwwxgxwxxgvffgwwwwghwwwxwffwgwvgvwwfwwwwvguffxxwgffxxxffwwffffvguwgvwwwVgfVxwgvgwvgffvffvgvxwwvgffwwwwwgfVwVwxwwgffwfgffwVwfwwwwwvvfgwgvggfwwwgvgwfwvgwwxwwwwfwwwgvfvwwgfUwgwwwfwfVVugvwwwffxwwfUwwgwwgxgwwwwwxwwxwfwxxgwwxwwgfffxwwwwgvwwxwxxwwvggxxgwgvxxwvfwgwwwffvgvwfwxxwgwwgwgxwwwffvgwwfvvfwvwxwfvgfxwgxffvwwwWUewvvwwvwvwwwwxwwvwxwwwgffeWwwhwfxxgvwwwwwwwxwwxxwwxwwxWWwwgwfwgWvwwvuwwxvfwwwwwWUtwwwwwwwgvxwgxxxwwwwwwxwhfewwwwgvgwwgvxwwfwwwwgwwvwwwwvxxwwwwvxhfvwwwwwwwxwgVxwwwwgwvgvxwwVwwgwgwfvwwefvwvwvxwxwUTwwwxwxwwwfxfUxwwgWwwwwvwxwwfwgwxfxwwwwvffgwwwfwwwxwwwvwggfwxwwfwwvvgUfUwwxwwwgffwvefVwwfffVgVeUxgvxgxwgvwwvggxfwwwwwvggxwxxvwwgxgxgwgwwwvvxwwfwwvgVVVwxwwxwvvwwwwwfwwwwwgfffeVxxxwxgeewggfwffffgfeexwgwwvwvvwfvggvwxvwwwwgfvvwVVfffghwfvxgfwfvxwvwwgvfvWgfvwwwvfveeffgvfvvvfvgwWfuwWvgvxwgffgwvffgfwxhwvgfWVfUvwgwvxhvwwwggwwxffwwwxxwwxwwxfvwwwxwxwwwwhvvwwhwvffwwVeuwgvgvxwgffwwvwgwfwwwwvgVfUUevvfwwxwwffwfwwgfxwvgwfffvwwwwwwwwwwwfvfvxwvxvwfffwvxffgefewwwwwwwwffwxggwfwwwwwgffwfwgUvgvfvfffwgwxgfwweeeVVwwwxfwwwwwweeefVwwvgwfffwxxwfvxxwwgwwwxwwxwwwwwwwxwxwvwwwwxwfwxwxwwvvwgvwvweeefVwvwwhwwwwxgwgfffvwwwwxgfwwwxgwxwhfgwwvfwwvgwfvfwgfgvfwwwhggwvvwhwvwwwfgvvwwvgvwvvwwgwwgggvwwgxwvwwwgfwwwvvvgWVuwfUfeegVeggvvvwffvfvfffwgeeugfvwwwwfVWgfwfweffgffeefvvgfgwwwwwfvgggvwwwwwwwwwwxwwwwwwwwwxwwvxxwwwvgwvgwwwwgwvffvfffffwvfvXfuwwwwgwgVVefgvfgwgfwfvwggwggvvggwgvfvwwvgwwwfvwwwwwwvvwwWwuwwwxggwwwgvWfewwxwwffwfwwvvgwvfwgvvwggwffgffevwwwWfvfvggVffwvffvgwxwggWEDuffefWwwgfvwwggwwxWDTfveVgefWwwfwwvxwwfvwwgwggwwvfvwvgwggwwwwvvwhwxwvvgggwwwvvvfxwwffgwwWvggfvgfvgVVfvfvWwgvfuwxgfwewffefvggwfvgwwuVgvwwffgggwwvwgffvfWwwfvgwwgwwwwggggvwwgfwvwgwvffgvuwwvgwewwwgwwwwuWvvWgvwwgvvvggefuuwuggvxwwvfewgvgwfwvwvwfUFwwgwgfvvwgvwwwwwwfgfgeeUtwggwwfvwgwvXguwfwwfwwgwvugugwwwhwwxwfgwwxvwwwxgwgwwwwvfwwwwvwwfwwwgwvdFhwwwwfwvwgvwxwgvwwfVgUdftwwgwvfgvgwWwxwwgwwgwuwgfgvwwwwwwwvgvwvgVvVwxwhwwwwwggvVguefUwwwfwgwxwgevgwvxvgwwwwwvwvVfgvwVdfUvwWwVefTfgwvffvwgwguffEVfwgvgghfVfevxvwvWggwfeVgGefvgwwvhwWxwwwwfwgwwggwxwwwwwvwwwxxgwwwevwwwxxxwwxxwgwvwvfguwfvwvvfgffwwfgggFuwvwwwwvwwwfUwwwggfvwxwvwgffvVgwxwwggwwfgwwgwvvwxggwfwwWwvwwTUvwwwwwwwwwxwuWwxwhwfwggfhwwwwvfwwfwxwfwwfWfuveevvfggfffefevvvvwwWVuxgVeewgffUwfeVggxfffgfeffwwwwwxgvwwvwxwwwwwvwwwxwxwwwwxxwwwwgwxwwwwwwvwxwwwvgwwwgVuwgVfuwwwffvgfffwgvxxwwwxgwwggwfwxwwvfwwffgxgxgwvgvfwvgwvwwvvxwfwwfgvfwvgwvwgwgwvwvgwwxwwwvwvvwwghwwwxwwwgfvgvgfgfggvfwvgwgfggffgvfvfvffgfffffwwwwwwvfwvwwwwgwwwwwwwvwxwwwwwwwwwwggggxwwvwwxwxvwwgwwwxxvfwwxxwxfhgfgfwffwwwwwwfvggvwwvgfvvvgwwwvwwwwwwxvvfggwwwvwwfvwwwwxwwwwwxwfwwxwwgwgvwwwwwwgfvvwxxwwwwxgwwgwwwwwwgvxwfwwvvggfVvvguwgufFvVgvuvvVewvVwfgfduwVgVegvfWgwwwwvvwggfeuwufwwxxfwvxwwfwxwvwwwxwwwwwwxwwxvwxgxwwwwvvwwxwgVewwfwvgfeuwggfuwvwgwwfwxwvfwvevwvwwwxfgwvgvggwwxwwvvvwvuwwvvgvwwwwgugggwgwvwxwgggxxxwWgvwwgvvffwgffhgffwfwVeffwhwwfffwvfggffgfffwhwgfUvwfF5SffggvvffffgUvvwVeffwwv5SvFgfgfvgwggvvwUxwwffgvvggxvwwhfvffffxwwxwwgffffvfvgvffxfvgwwwxwffgdUvfffVegfgffwWuwfgUfgtvffwwfgfVewhwggfwgggvffffgvfgffffwxwfffgfwwwwwgfvfgwvffvvgffgwgfvvwwwhfvvfgwvwfwWvggvwfvwgvwgwwwvefvgFegfUwfdwgfFvwufvffeWggfvWfeTfgfvwggvVvewVvwgfdvgvvgefdfwevvgwwvWhwfxwwwwvgvwgwvfwvggvwvvwvwwwwwwuwwxvwvfxwwwwxgVwfVvfghfvwgffvgVtwwfFwwewgvwwffvwwwwvvgvwgvugfwWvfewvwwggwwggfvwwwgvgfwfVfdwfwwggfdwfxwwffxxwwfwhvwgwgwwhffwwgvvWVuffvwufeggwggfevfwgggffewgxwUUffVvfuEDggggfewgWDtvvffefeggffegxgfVWwwwwuwvfvhfvvffewggwggwxgwwvwvwxwweUwggWvvvfvgfgggwuxxxhgwvfugVwwVfUefegggggewggVvwvffwvfVWffgggggfwwveggWVegvvgfgfghwUeggggggwwWgVvvvvgwwwvvvxgfvwvvwvxwvwfgvxWvwWuwwwwuUfwffggvgwwWwfVUWffwfUwwwWuwwVuDDvffgfvgvvgWGDTffUffUfgfvwwvgwgvwwwwwwwwwgvwwfwwwgfvwwwwuwwwffgwwwhwgvwUwfxwwgfvwwwwwwvgwWewffuffgfffvvgwgfvwwgfwwggfvxvwgfffVevvgugvgfffUffgwvgfffvwwvwwvwwwxwfUwwgwvwUwwgxwwwwwfgwvxwwwWwfwUggfwffvwwwwwvfgwvwfwgwffvfvvwgfgfwfwvghgeggGfffvfwwwwwefevwfvwwwWVdfgwggwfggfwwwwvvwvfvgvwggwvwwwwxfgwwvwwwvwgwfvvvgwgvwxwvwwggwwwwwxwwwevgFgfgvewwwwwVVevgvgwwvWVdvffwwwfggfwxgxueegWwwwvwgffwfxwwwwxwwwxxfVffwwwwgvwwwwwxwgvwwwgfwxwwhvvgwfgwgWvwwvxwgVwgvffwvWfgfewwugfwgwvfuffUgwvvfvfffvuvWffegefVVghhwwgvffvvfvvwwgfvwwewxwwwvfwgvxwxgwxgwwvxxwwvxvwwgxxwxwwwwwxwfeUwwwfvgffwugWffewfVVUwgvxwwvugvffvgvgvwgvgfvfffWwwxwvvfwwfwwvgwwvwvggVwfgfVgfVfVxwwwfxwvvvxwvwwggwvwvvgfggffxxgfwwwvewvUeVVwwWfewvwwwGWevxhVexwwwwuffUDtvVfevwvxwwwvefVVwxwxwgwfwxxwfwwwwwwwwwwxwwxwwfgvwwwxvwwwwGfffxwffxwwwxuwveVugVfevgfxwwwwgffVVwxwwwfweffvwvwvgwgvwwgwxwxgUvxgwvgVuvffwvwwwxwvxxwvvwwfvvgWwwwgfwfwwwwwwwwWvffgWgfgfvwwwfwwwWfVegwwwfwgwwwfeUfwwfUfgwwfwgwwwwfwwwvggwgggwvwwvvxxwwgegfxxwwhxgwhwggwvwvwwwwxwwgwWfffvgvgggWwwwgeUfwfffwwwvfwWvwwwfwwwwgffgfufUwwgwgwfwwwwwwwxWfuVefgwgfwwwvwfwwwvxxxxwwwwwwwxxghvvwfvwwxwfvwvvgfggggvvfwgwwwfvwggwwvggfgwvVVfggwwwwwxfgwvwxwffwgwgvwxwefVwwxffxwgfwwgvffgxwwggwwwvvgwwxxwxxgwwvwwvvgwgwvwgxgggwwvfgfwwwUUwffhwfwxfvwvvwwffwfgwvxwwUfVwxwvwwwfvwfwwvfvggwffwgwggfvwwwgwwfwwwgwffwvwwwwwgfvwfvvvwgfvwvgfvxvwwwfwwvffvgwffvgVUvwgvveefUVVvffgwwwfveUvfeUUuxwwgvfffwfffvwgVefUfeVfVUuvvwvfwxwvwwvxfvfwgfvwwwwggwwwwvgwfwwxwwwgwwwwwgfvvgwwvWWeggwvfvguwVuwvvwwgvwhfgeegvwffUugwffvwvwgffwfwgfvvvwwwwwfegVvgwvwvggxxwvfwwwwwwxwgvggewwvwgVfUwgwgwwwwwwwgvwwwwfwwwwwwxwggfvwwgvUgwwgvggwwgUvvfwffVevWgwgvwwgvgfvgvwhxffwhwwgghwwwwwwwwwwwwwwwwxwxwxwwwgvwwwxgvwwxxgvwwwxwffwwwwxxxgvfwffgVeVfwwgvgvvwwvgWfffwgwgfwgwwgvvwwhwfwfwwffwwwxwVewhwwhvwfwfwvwvwwwwwwwgwwfwwwwgwfvwwwwwgwwfxwvxgvxxWfwwvwggvxwfxwfwgfVuvfvwwwgVdwhwgfgUtwgwwwwggwgfEvvfvhwwwfeVtxvvWwxxvxwvwfwwxwvvvxgwgfwwwxvwxwfxwwvggwwvwwxwvgfdwwwgfevwgwxvhwgwwwevwvvwwwwgwVvwgWwwwvgvWvVggwvvwwvvgufvvwxgfwwwwwxwgfwguwwwgwgwwfwVwwgwwvgwwvwwwwxgwggfvgwwxwvegfwggwwWgvgvwwgfvwWfvWffvfwxwvwfvvvgvxwWffgvwhwfUwgwwwwhwvwwwwwxwwwwvwvxhgwwgwgvwvwxwwwwvgwwxwvwwxxwvhgwxhwfvgffgWwevfwwwfwwvfggwvgffvvwwwfUwwgggwxfwfgvhxgVewfwwwvegwwwwwwvfwwwhgwwwvwxwgfvwwwvxxwwwwwwufVwhxwVfuwxhVwwvwvuwghwVgfwxfhgww7FevwWUewfwvwwxwvfxxvfG5eftfwwwgUuuvuuggwwwWvuwhfwggwvfwvwggfvwwugwxxwgxugwfwvwgwwvwhgwg6feuvWWewvwfgvwgxwvwgUfftfWgUufwvdfvwxffwwwteWVfvvWgfvwxvwhxweewWgwgfgwfdwWgWfvffhxwwxwwvwwhwwxxwwwwhhxufwvvvVwwhggfwvwhwgvfvwfvwvgegWgvwwuVwfvvwxvwxxxgvxhwghwwwwvxgwwwwxwxxhxwxxwvwwhhwhwfxwxwxxhxxwgwfwwggvgfwwgwwwvfvgvwwwwvxxhgvwgwwhhwwwvgwVvvwxwwwxxgfwhhxxwwgwwwgwvwvuvxwgxxwwwvxwxwwwgwwvwwfwwwwwgwwwXgefgggvgwwuvfVwwwUfwwwuggVwvgvwGgfUewgvwwwwwxgVwvvxgwvgggwvwwwvwggfwwgxwgwwwhwwgwvvwxxxwgwxwgwwhVvfwwvufgfvwffvgggveewgwvwwVwwgUvwfwwhwwWvfffwgvwgxfhFvvvwwxWwvgvwxwfexxwgwwuwxhgwwwwgwwxwxwfwgwvvgvwwvwwvwwwggwgvvwwvgvwwffwwwwfVuffvffvfgfggfUwwgVvwvwwwfwvgwwwwgwgwwwgwfhvwgvwfwfxwhwvgwxwwwwxwwwfUxwgxwwwwwxgwwxwwwgfvvfvwfvegwggwfwwwfwwwwfwUwgwwxwwwwgwwffwgfVwwvwwwwxwgwwwwwwwgwwwgvfvgvuwwwgwwwwwwwghwwxwwxxgwwgfwwwggwwweewwwgvxxwwxwwwwwvwwugffVWCCxgwwvvfgwxwwweewwgfffefggvgfwgxgvgxvvxwfwgvggvggwvhxwwwggwxgxwwwweewxwwwwgwwvwfvVgUdvxvwwwgxxxgwxeewgwvvgvvgwwwwgvfvfEfwWwwwvvgVVCCevvffwwWVvvwvgwggwvvwwWVfwxxvvVfvvfwwgwwwwvfvxvfwhfvfvwwfggwfwwxgwwhwwwwwwxwwwwgffffVeVVgxwwfgwvvggvvfgvhwvffffegfvwwwvvwwxwwwgwwxgwwwwxffgfggfxwwwwwvwffwwwwwwfggvgwvxwvfwgvwwvVeUWfwwwwxwwwxwwwwvxwwvwwwUwfvwwvwwwgUgvuwffwwwwwVeeWfffgffwxwgwwxfwwwgvvgwgggwwvwwwwgevfwgwwvwwgwggfxwwvgfwwvgfffwvggxxwwxwwwwwvfvgVVwfgvGTDugvwwwfgvwwvwWVUvwwvggfwgvwwgfwwwxwwwwwwfvggfwgvgvffvxwwxwwgvxvwgvfwwxwgfwwwwxwwwffwfwgWfevwwfgvwwwwvwwwwwwwwxwwwgfwwwwfffgeegFTDuwgffVfefUvxwfwfffwxwwfgvfvwwfgfgvvffwwwwwwwvvwwvffvuwvwwgVuwveVWwuwwfvwgvwwgwgvwvgwxuVffeVevfeUFVewvfwwXfueVvfUffggfveWfeVgfvwwwvuwhwgwwvgvwvvgvgVvwvvegfggvvxggwwvwvVUfVVwugwweVggwvwgfFvvveeFgVxwvxxxwgfwwvgvgfwwwgggfwwwgvegwWfveuffuUTVVVfvWfgEVVefxwhfvfvvgwgfvfvgfvvvffvfgffvvwgwwwwwwwfgvvfwwfugfuvffvvwwwxxwwwgwxwwvwwwwvfeUegffwfffuwgvvgwwwwwwfegfVVuwefwfgWwgwwggwwwwxwwwgvwvwwwwwgfggWvgweuvggvgwxwvwwwgwwgwfgwgvvfwwwwwwvwvfgfwwgffwwwwwfwgxxwwwwvwxgfgwwwwgwgfvwwvgvgVVvwfgfffgVfefvfWuwfwwgvgvgxwwwwvvvfeVhfwwfwfgwwvwgXwvfuefvhgVVevvfwwgggwgwvhwugwvwwwwgvfgvffVffevfgggvfwgwwvvWffUvfggfvvwgfwwfgfwvwwgwWwwwxwVWwfhgfvUfwVegfffwxwxwvvvewfVVfwwgwgwwwwwwvwgffgfvfffgxwwwhxwwwhfvgufwwfvgvfwxwgvfewWvwvwffffvvfgfUfvgVefwwfwgwwffwhwwwxxgVffwfeuvwgfwgvxwwxggvfvwfuwwwhwfvvxwfwxvxxxxwvvggfexfvvfggVDTwgwwvfvVffxxxxwfvvgwwvwfvfgvxwfwgwxwwxwwwwwuwwwwwggfwvxxxwwvgfgxxwxxwwvvwfhhgvwvvwgwgfVexxwwvwfggxxwwwwwvfvvgffvwfvvEDUwgwhvfffxgVeufwfVwgfgwwwwgWfgvehwhxwhfgfgfwevvvvvvgvwgfvxxxeewwwwfvvvwwwghffwvvvgfwfVVVwgwCCwwfgwvgggfvggvvwUUwxwwxeefUfgwxggwwgvxhgwxxwvwwxwgggvwwgffxwwwwWVvxwwwwwvfvfgxfGEewwweewwgwfwffgfgfwgvwggxxxwwvgwwwwfxewvWVfgvfvvUexwwwffffgwwwwwWVvwxwWVfVuvvwwwwwggvxwwfwvwxwfgfffvwvwgfvwwWVfvvwwwfwxwwxwwxwxhgvvfTTvwgggfvwfwvwvgwxvwgfvwwgvwwwvwwgwwwxwvvwfggwggvvvfvfgggvvwvggwweexxhfwwwvgggwvxwxhggvveevxWVfgvwwgxwxxgwwwxxwxxFEuwvfffwVVffwfwVVfvwwvwwggwvvvgwwfwwxxgvwwwvwwxgwwgwwxwxxwwwgevwwwxvvgfgvwWfwxwwwwwwxxwwxxwvfvgwggffffgfwggvgvffwvvxwevwvgvwxwvVfwxwvxwwwxwwwwgwwgWvwgvwvgfgfgwvvwwggguwwwfwwfgfwgwwgfwwwfvwwwwvfffgfwwwxggvfwwxvwwxxwxwwgwwwfevwgfffefwvgfwggffggfvgfffwwhWgguvfwgfevwgwvwwwwwwwvvxwwvfwwfvggfvvVVxggftwwfFffgevhxvwVgwwwvvwvffVVvffVUdfeeEugeewfffgfvwfuwhfVeftvWffFuwffvfwwvwxwwgwwwvvwgffwvffvwgfvxgwedwffFfwfwwwwwgWewwwgfvVewwggVuvgeUvxfwwwgvwwfxfwwuwfwwwwgvvggfvUTgeUFUfgvvwvffffUUevfgfvVegwfVgfewVgvWgwfxwwfVwwwwwfVwwwfxvwwuwvgvggUfwfggegvgWwvvguuwhwgwwwwvxwffffvfgETfvfWfggvufgegvwgfxwwhwgfwgvwhvwvwwwwwfwxwxgvwuxgxggfvwfwwwwvwwwvVewfwfwwgwgvxxwguwgwgWwwwfgUfwVwVewwvgwVwwfwwwwwwwvwwwxwgwwwwwwwfgfvffUfvfvETwvfWwVefgfgwvvwufguwwvwfvwfwwvwwwgwwwwwwwwvwwxwwhgwvVfgwevwfgvwVuwvuwwvxwwwvxhwwvfgfewfUvfwVeffuvWvwfwegffwgvgevfgwvfvvgvgvwgwxvwwxwhvvwwVggfwwwggvfvwgvwwvUwwWxwhwwvxwwggvxvggwwffvvwgfffvwwwvwgwxwwhgvfvgwvwwwvxvfVeggvUffWffvgvgffwfgfvggffvwfvefffwwwwgwfWwfxvfggwwgwggwwvwwvfewxvfuVfVWffwvgffwvgwxfUgvwuvgvfggvwuwxwFVeVffVUDVvgvfefveUfuwwwgffggwwwgefVVWgwwvfgwewgwvggwvwuxxxVWfWgfggfwwwvvueffgvgwwvgwfgwvvwevggWWwfUVffwgffegvwvgfvvvfwWwwvgwvwgxwwgvggfwxxwdeeeUefwvvgVUwwgwffUWffgfvwffVevgvvwVvvvvvuwxxfgfewgwgvwvvwvxwwwgtfVfgwwgffwgVvwfvwwwwwwwvfwwxXWwe6USgvWfuefuugwwwgfwhxvfgTfetfvwggwgfxvuvwwgxgwfxfwgxGWufeffggggvwwwffvwvewgwvfwgvgvwggvfwwwwxwgwwFfffgggufvuwwwwwwxxggwfwvuvfxxwgwxfSEfwweUWfgdFUVuvgefvfvvwwwxwwweeVFgwwxwwwfwgVvgWwwwvgvgwxxvwwuvgwffgFvwgwgfwwgggwWfewvwwxWwwwWuwWwfD$twggfdfvgvgwfdvffDfftvwvxwhhwWfwgwgggvwwwwhwgwwxwuwwwwwfffvxwgfxwxxwvgfgFvwgvuuwvxwwgwgxxgfFvwwWUSwwwwwwvvfvewvwuwxwWuwWwxxwwxfgfdEfUefvegfwwwwffgfgxxwwgVvwxwvfEfftfvuegwvvwvvwvxwggwwXgvfffgvvffwwwhVvfwggvvvvvvwvgTETwgfeVvVvvffffWUfvveVfwvwvwwVvwvwwwwgwwwwwvwvvvwwxhVgVwwwfgfwwwfggfwfwvwggwgwfvgfwwwxwwwgevewwfffvgwwvvwgfwwwvvgwggwwvwwwwxWfUFfUVUgffwgwxwwgFwvvvgvwgffgfvgwfUwwweVfwxwvwfxwxwggwwxfxxvfwvUvfVugguxgwUwgffwwfgvfvwgxwxvwwfffVefVefgvewffffUfffWugfvvfwfwgfwgwwfwwfwgwwxvwwfwxhwvwxxvfWuvfvwgvggvfwfewwgWevfwwxwggxwxwgwggfvgffffwwwfgwffwfwxwwgvffwwxwwxwwwwwxvxffUgffguffeffwwwvgvggffxwgwgfvgvvwuwgvfvwwuwvwwwwwwgvwxgwwwgwwwUwxwgvgwfwvfwgxxwwwxwwwvwgfggvwgfUVTDwwwxwwfgwvwwfwvfvwwvffffuwvwgwxwwwhxwwwwgvwwwwWwfwvewxwwwwhwwhxvfvgwvvvfvwxwfxwvwfvfgfewxwwxwxxwwwwwvfvwvvwwvwxvgewWVwwwWfgeufvvfVTDTfxwwwggwwxwggvwwwvggfgggwgggVwfwVwxvwwwfffwwwgffffgfwwwwfgvhwwwwgwwgvggwgfevgffVeVewWvghwffwVvvgffgwwxwVewggfgwxwwgwwxghxwhwfwvgwwwwgfvgffffffvxwwgwgxwxffwwwwvffgfggwgvUvwggeWewWwwhwgvUwvwwwggwWfwhwggwwgfwvUfUffegfffvggwVefWffggvwwvxvxxwxUvvffvvwwfgwvvvvwhvvvgwvfwfeVwxwwgVevwhUvwgvfwxgvgwwgfwfgwvwxgvfVeefF3tvfwwwxwVewxevgUvvWUvwWguvwwvgxwxgvxxxgwxwwgwwgffvfgUvvvwwwxffwwwfgUvwvwghwvvwxwwfETwfgUvwvwvfwxwwxwgfgUfwvgfxwvwxxffvwwVfwgvufgUfwfVDuvfgfefwfxVewwvwxwgvwVewxweVfwwvggxvgxwxwfgvfevwwgFfwwwewggwwwfwxwwwwwwwxxxuefwfWfwvUSgVfggvwxxgwgwvgegggwfxxwghgwwwvvwgfgWgwvuxxxvfggwfvwuwvgggwvuxgWvwvvfdwvhxwwuxxwhxxxwwxWgFVffedgWgvwwxwxwwfvxwgwvxxxwggwgfdvgWFvevfvevvWgwUSgVfWggfvfgfwvwwwwwwxxVwwvvvvvxwwvvxwxwvwwwUefwxxweffvgwuwwwhfvwgwwfgwwvwgwxggvEVfdfGEefvvvfwwwwfgxvteWeuvgvwwwgVuvwwvvgwwwffwvwxwfwgggvffeefffvvvfvgwxgfggffVvfvwgwwwwwewwwWguVffvggVegvvwgvwguhwwwgwvwgwwfvvwugWwweegvgdUfEuvfWFufvfefvwggwffwggwwxxwgfwxfUwWvwggxfUgwwwwxwwwfWgvfwwwwfVuwffUxwwvxwfxfvvgwfwfwgguwffF4cwwfUvwfgVUwwfwwgfUfVvVVwfxwwwwfwwgwvvgxwwgvwwfvxxvwgVfVfwgfUwwfgwfwwwwwxgfUfUwfgfwwxgfwxvwwfVuwfUDgwghgfxfvwwgffggvvfxwwfgfwWUUwvgvwwvfUfUfVVfUvwggvWwwvwgVugfvwwxwwwvxgffwwfgeewwwwwgwwwvwgvffvhwfxwwfffvwwvwwxwwhwwxwwwgggeWfvwfwfvvvvvgvwwgewxwwgfvwwfwwwwvuwwwvwxxwxwwwhgwwVffwvggwVvfvvvxwfvwxwxwgwfvwfvxwgfwgfwgxfvwwfwgvxwwwwhgwwgwxvhffvwwgfwgWfgwVvfvvfvvgvffxvwwffwwgwwwxwgggwwwwxxwgfgwghgxxvvvvwfwggvwwwfUwwwfwwwvvwwgwwwwwwwxwfVEdwgggfvfgfgvwfvgffuwwwgfwwxwwwfwwwxwgwvwwwxwgggwwfwwwgwfvwwgwUwfxggwvfwwwgwwwwfxwfxfUxxwxwwwgfVuwwgfUvfggfwwgwvwwwgwwxwxxwwwwxwxwfUvfVEtvgufUwwgwfwVgwfgfgwvvgvwvwwvgwwwvwwfwwwwxwwxxwwxhfvggfwwfvvvgwfwgvffwwxwgwvwwwgWVVeVffffVVvvwgvWfwwguwhwfgvgwwgfwwwwwxwgvgwxwwwxwxgfvvvwvwgwgvwwwggxwvvwwxvgwxwwwwwwvhfwvegvffwgwfwwwfwwwvvxvWwgwgvwwwwheUVVfffgfgeeffvwwVVvwfvfwwggwffuwgxgvxgwwwwwvfxhwgwxwwgxwxxwvwwvgxgvwwwwfwgVUewfwxgwwwwfgxhvxwwfwwfeUwxwwffvwwxffUxggvffffVVwxvgxwxgwwwwvffwwwwwwwggvfwwxwvwwVVvwwwwfffhfUffffVUxwxwwwwfwfgxxwwwwwwwvwxxvvwvvggwxxwwwgffvxwwwwfwwvwgwvwfUxwwwhwgwwwwwgggfxxgvwwgvfvwggffeewgguvWgvvvgwwgwFUvwggfgWuwxfxwwwvgvgwwwxFdvvgggwxwwwwwwwvwWuwxwgWvgffwwwwfWwgwffewwwwvvwvwVuwwgwwffewfggwwgegwwvwfgwvwwwwgvfEVewvwvwwfwwvhgwvwwVWwwwxvwwwvwvgwwwggwwgwgwwgwwwwwUgwwfvvgwvwhwgggfFEfgwwvwfwwwvvwUvvwwwvwwxfeuwxwwfuvVevghghwwwfUfwwgvvfwwUVeeVxwvgxwxwwwwwxwwwfvwwweVeefxwwhwfgwwwwfgvffvgvvwvvvwwgwfgwwgvvwxwfvwvwgfvfeefgfgfeeggxhvfwhgvgeVeefggfvffeewwwwxwwvwwwwvvxxxwwxwwxwwwvwwwwgwwwfwwgvxwwwfffffvgwwwwfwfwwhwfgwwhgwwwxvfwwffgwvwggwvwwwvwvfwfWftvvWfffeWgffeVdfwwvggvwwvvfwwvwgvwwuefffgfffffXwwwwwwwwfWggfevvggwvgfvvfwfhwwwwggfwgvwvfgewfFveVgfdwvgwuwgvwwvgffFfffwgeVggefftVgwWvwwwewhwvwwfgwwwwwvxxwhxwwwuwwwvgvgwwfwGfvwwwwgvvGfuwwewgwffgvgwwwwvgvgFvfwxwhwgwvvfFfewvwgvfvggvwvwwwwwVweVwgwVEDdffffgwvwwvgwwwwwwffgxwwgffgfVffffgwvgffgfvwwwxwffeVgwvffwvwwvvxWvuWwgwveUvfffgwwuWwUgfveVwwwvwWVewwgwvwxWDDffefVffgwvwvwwwwwwwgwvwwffwuwwvgwwwwxhvguWwwffwwguvWuwvfggfvVgwffwwwvwffgvwefVgvwwWwuwxgwvxxWwwUWfuvgwgwwwwvgwxfwvvgvevgwefvfgeVwwfgfWfvwgfvwxxwfxwwvgvgxvggUVxwggfWfwgvvwxvvwfwgwfgfWfvxgxwgvwvwwvgvxwwwgwxwfufffwwgvfVwwufvVgffguhggvfgwefeVfuxvgvgfgfwwwwvWxwwwfgwxxxwwwwwvgwwxwgxwwfwvwxvggvgvefeUVewvWwfVgvfwwgvgfufwgwgwvvwgguffuffegvwggwwwvxwwvgVUvUgwwwgffUUeUvwwfwwwwwwwggwwgeVwvgWuwvvfWuggvgvwWgfgwwwffgvgvvwwwVfgwvwvffxvwvgwvwgfffvfwfeuwgfVVfUfvfxffvwgVUUfuwwwfgfvffefVVfevvwxgvxwvwgvffvgwwxwwwvggwgvwwwgxwfvgwvwwfgvVVefgvvvwwhvgeegvghwwwvxwfwwwwgvvwgUVvgggwvxwwwwxegvgwgwwxwgvwgvvvvgwwwgVtfEvewxwuwgwgwvvwfghwvvgwggftwgGVvwwfggvwvvfxvugWgwguwgvVgwwwwhwvvWwgxgwgvwweVvghwfwvfgvwwwfEwhVdewwwgwfwvfgvgwgwwfgxwxgwwxxvxwgwwxwwxwgvhwhvxwwwxvvewwWfgxwwghwwwgwvwwwgvfxgvgwVwvvgevwvwwwwwxwwwwwwxwwvwwgvvvwfgvvWfuffffvvfvwvgvwwwgwwxxwwggvugfvvfvgwvvweVwwwwwgwwffvgwwwwwwwwwwwwvgvwwvhwvvwwxwwwfgffwwwvgwwwwwvfVgwvwwggweVwwwvwwvvwwxwwwgwvhvvgvgwwvgwwwwwxeVxwxwwwwxvvfWwuwwgwwvgwwwwvgwxwwxwggvwgwwwwwfwwwxwggwfWwwxwxxwxvwwwgffwgfvwVVwhwwfwgVeuxwfwxwwwxwwwwwgwVVwvwfwvgVevxfvwwgfggfxgwwgvfwwvvgfgwvwwwwwgvxwvwwwwwgfwfgVugfffvwgvVVwwfffwwxwwwwgVevwvvxxvxwwwwwwxgxwhvxwwwwxwwwwwwwwvwvfwwvwfwvwxwwggvfvxwwwwggwwggwfwwgwwfgxwwfgxwwwgfvgwwwvwggvefgWgevwvVEDffwwuwwgfwwwwvvwwggvwuffgfvfVgfwvuwgwfvvfvwgwffggwwvffwwuwwvwwwvfggvevwvvgfffwwwgwffgvVgffgwvvgguffevwfwgfwwwwEDvVVwwugwwfvwwvggwgvvwwgwgvfffgWwggggggwwwwvfvwgfvfvffguegVwxvvufVwwfwwvwggvvffgwgvvxggwWwwvvvwwwxghfwwWwxvwwgvwwvvgVdwffvffwwvgefEuwwvxwgwggwwwwwwwgwfgvegggvwffgvgfvwwvggwvxwfwVvgxwwgvwgvwggewwgxwgwwwwfgVfweFfUwweVuwfvgfvwgvgevdwgvffeuxvgWfgeugvxvghvWxwwwwwvxwwwwwwgwvwwfwWxxwxwwWftwgeVgvfgwvvvwwvwwwwwwwwwvggwWUvTwwwwwWwuhwwxvwvwwvwwxwwxwxwwvwffvgffvdfvfVuvfU3gwfvwwfgfwwwffffwwdfgvfVufffUfvffgfffffvwwwwfffggfffxwwgffwwwhffwgffffwffUxwgvffvwgfffvfxwggfUgfV5sfffffgfxwgfUgwwvfGwfwgfwWwwffwfgwffgfvfwwwwffgffwfxwwvffwfUwwgVufgvwUwfvfGffgffxwgwvwgfffvfffvwwvgvwgfvgvwwvwwwffvgwwwgfggfUvTDwVUffufuggvwwwuxwgwggwwvwwwwgfVugVggeUuggvWeuvfVUwvfgvuvfgvfgwgvggwgwhfvvfVvUVgfvwuwgfgfVvfxwfgvxwfGEdfVfVveVgfuwvggffufgggwgxfVwvfgffvvgwvgvvfwWwfWeuwvggvfvggxxwffgfuwgffgvfgguwvghgffWfuggwwfVvgwvfffvwwvvxwwWwvfwwxwwvgxwgfhWwwwVvgffwwVfVuwwwfwvwggwgvwwfegwxhxwvwvUfffwfggwwwfeVwgvwwwxggfgVwvwwgxwxwwxfvwgvwwgfwvwwwxwwewgfggvgfwwwwweeVwwvgvgwgfUwwwgfwfwwwgwvvwgwwvwgxxwgwgwxwxwxgwgwgwwwxxwefffwugwwgfUvgwwwwfwwwwweVegvfvwwvwxwwwxxfuwfvwwwwxxwwwwffgwgvgeewwvvfvwvgfvhfvwggxxwxvvwwwggwUUvfxfvwgfwvggvgfffgvfxwvwwvwvwvwgvwwvwfgxvvwggxwggwgggfwgfwfxwvwwgwvwgvffwffUfwwwwwvvxwwwwwwwwwfxwfvwggfvxwvggwgwvfxxwwwwwggwxwvwgggvffwgfUehwxwgwvwggwvwxwwwgwwgfgwwfvgwffffwgwgxwwfwwwwvwwgvugVuvww6VUewwwfTwwggguuwgfwffwwfwgwgwv6UuegwgfVwvwggtffdeeuvwgwffwwwwwewgfwhvwVwfuxxggVxxwwgVfgfxgvfwwvfgVTsvWWVuwwwxwwfvfFxwwvWfffwwwgWwguvwegvwvwhwwgxwgwgxwwvvwfVuvUgVufgxwwwwvfFgwffeugggffdvWfhfvwwxwgwwwgwxgwwwWuvfVWgVWgvwwwvwxfvwwfvwwhwwxwwvxWWffffgwwvgvfwvefvwffFwwwvwgvvvwwxgwwxwwwfwwwgxwwwwwvxgVgVvwfwwggwxwgdUuwwfVwwfvwggvvwvwwxxxwhgggvwgwwwwxxwvvwwwgwwvwwwxxwwvxxxhfeewVfUvwvwvgvwwvwwwwvwXwffVwwgwWwfwwgxwgxwwxxxwwxwxgfwWffwwwwfvfwvUfgVvxxfvwwwwwwwwwvwwffvwwUegfvxxwhvwwwwwwffwgvffwwgfffwwghvfwwwfvwvgffwufvwwggffegffhwvwfvwewwwffffggfwggeUfwfwwwwwxggfvfxwwgfwwwwwwwwwgfghwwwwgfugfvwwffwfwwfwwgUeUwgxwwvwvwwhgffwuwwwwgffwxfffvxffuwwwvwVeuggwwffvffffVVuvvwwxxxxgwwwwwwwfgfvfgfvffvfgvhwwwwwwwgvfvwggggvvggwgvwwwfvwwwwwgwwwfvggvvggweVfeUfugfvwwwwffgvffgfvwgWfufffWfVfufwxwwwvggvgvvwwwwwwwwwwwwwwvwwwvgwvhwwwwggfgwwgvWevwwggWeuvffgfwvvwwwwwwvwfwwvgfgwggWwuxvwxgVvewwvgvhwwwvffwgwfffvffggfvffwgwxwxvvfwwgwwxwwgfvfgfffwwwwwwwwwxwhfgggwwvgfwwwwwxxwgwgxxvvwwxwxxwgvwfwffggfgwvvfwwwwwwwgffgfwwwfgwwwwwvwwwxwwwwwwwwwwxwxhwwgwxwfgwwxxwwwvvvwwwxgffgwvgfwwvwwwwwwvwwwwwwwxxwgvwwwwfwwhgfwwwwwwgvffuhwfgfUwwgeVfwgwwwwxxwxwwxgxwvwfUwwgfVfvgxwvwvgwgvwvwgvxwgwvwguxwvwwvxwwwfxwgvwgvgwVgwVwgeftgfuvgvwwgwvWwgeVugfuwwwgfVfuwxwhwgxxwgvwwwwxwwwwxvxxxwxwwwhwwvwvwfwwgwwvfuwwvgvwwvfguwxwVwwgwxwvWwvwfwwwwvfwgwvfwwgfgfxgfffggvwWvvFfffgwwwggwggwgvvwwwwgwxvvvwWfwFgffWwwwwwwfwvwxwWVVgWwwvffwwwwxvfvggfwvwwwwfwgwwgfvwfwwgfgvgxvffgvefgwvwwWfVvwwwwfEwvggvfxwvvwgfwvwgwgwwfvgwwwwwxgggwgxxvwgwwfwwwxewgevfwgwgfUvgwwgfEwgvgvfwvffwvwwgwfvwvgxfhfuwwwwwwxwwwxwfgfvuwvgwGVegVuwwvxwxwwwwwxwwwgxwGffvwhfvxwufwfxxwufgfvwggvwwxgwwxvvwvxxgffggvwwWWwgUfVuwgfuwwwegwwfWxwefFEdfeuwvwwgVfwwxxgwfgwvwvwxvwgvwgwxxwwxewvwvfxwwuwVfefeegvwwgVfuwwwxeVwggwwvgwfUwgggvfwwwvgxwwxwwwfvvgfggVugVuwfffwfWwwwwxwwxwwwwfxxwffVvvgvgffUwvwwwfwwgVvwvfwfwwffxwwxwgxxwwwwwwwwxwwwfwwxwwgvgvwxgwUwwwwfwwgvgffvgwvwfwxggfwgxwgvwwwwwwwwwwwxwwxwwwgfxwwwfwxwfxwwwwwwgwvfffgvvwfwfwwwvewwgwwgwgwgvgwwwwwvwwwfvvwwgwwwxwvwvxwwwwvwgvegfVfgfwwufgfwwwwvwwwwxgwwfwvwvxgVfgfvgvvfwuwwgvfvgfWwwwwgvvxhVuwwwwgwwwvgwgwvwwxvwvfwwwWwfwgvwwgvgwwfwVwfeVwwwfwfgwwgfwwvwwhwwwgwxwwwwwxvwwwwwgxgwwwwxwxwwhvgvvfggeVwwfvwwgvxgffvwwwgwxgwwggwwffwgwwwwwfgwvwwwwwxwxxwwVgwgvggufgvvfwgwvVwxwgwwwwgfwfgvvgvwwfwvwhvVwwggxwwwwgxwfwwvgxwgxwgwwvwxwwfvvwfwguwhvfxwgWvfwwgwgfwwwVwfgwxgxwwxwxwwwwxvfxxxxwhwwwxwgwgwwvghwvwwvfxgwwwwwgxwwwwwvgguwhvgwwwwxhwwwhxwwvwvfgxvgwxfvwwwwwhvvwwgwwwwwwwwwwwwvwwvvwwwwgwwvvggwvvvwwxwwwwwwwwwwgvgwwgfwwwwwxwwffwwwwvwvwvwfwwxwwxwwgwwwwgxxwxxwwgvvxwwwwwwwwwgggwgwwwxwxwwwwwwggwwwgggvwgwvgwwxwwwwwfwwwwwwwxwwvvwwwwwxxwxwxwwwvgxvwgxwxxfgwwwwwhwfffwfUegfvwgfVUevgegggvUfwwwwgvgffefvwwxvvfgfgUffvufwxwwwgwgwwffvfgvgwegugwuvwwwwgVfxgewfvfffefvfghgfwwwWUefgvwwwwvvwwggwwffwwvwgevfggugwvwwwfgWuffffwuvfwgwwwwWwgwfgfgvvwffvvgffgvwwwwwwgwvgUvwwugvefufwvvgfwwwwwxxgfgwwwvvwwgvgwwgxwwwgwggwwvwvfwwvggvwwwvfgwwwwgwwgvvwxxwfwgwvwwwwxwxwwwgvfggxwwwxwwwgwgghwwwwwgxwwwwwwwvwwwggxwvwwgwwwwwwwwxwwwwwgwwvwwwxwwvvwwggwggwwwwwvwwwxwwwxwvvfwgwwwwwwwxwwwgwgwwwwwwggwwxwwwwghwwxwwwwwwvfhgwgwwvxxwwwwwwvvvwwwwwvwwwgwxffUUefddwwwwVUuwffffggffUUWUuwwwUUwwgwvwwwwffvwwUUfvgWwwwwwwwwgvveefggwwwwwfvfwwfeddwwwwVUuwwfffggvFFfgffddffWwwgffwwggvvgffffvwgwvgwggwwwwwgvwffvwwUUfvggwwwwggwwwWwweefgfwwwwfvgwwgvwwwgffvwgfvffgwwffgwxvwgwwwxXVfvwwxxvwggWVvvwwugwwwvwfgwwvgWfvfgfvvfvffgfUvfgvvfWeuwweUVggfvvgwwwffeUVvgfwfWfwgfvwwxwfwfvewggfwwgWwwgwvvgvWfewuVvffgwfvwVvvwvgvffgfuwwgwwggvvfxwvggfvwwgvvwggfvVwwvgfgveVfvfggWwfWvuwwwxfuwgfuxgWwvwwgvfgwwfghvvvfwwvvwgguxgWwwwvWwvgvwwwvgwwvwwwwvxxwxwwfggvwwvwgwvwvwvwwgWfvgVffvvgvgWVfvfwwvwwgvfwvxwgffewwwxwvuWwgffefvvwwgvfwwwwxwxgffvwvvvvwwwxvxxWvufvggWfffugvvwwwfgwWgffvwwgwxfvwgxwwxwgeevwggwvgwvxvvwvgwVVfeewvwwvxvvwwwxheVvvffwwwwwwwxwvvggwwxxwhffvwvwwvvwwwwxggfwwvvwxwxxhwwvwwvwhwwwxxwvwwggvwgwwvvxwvxwwwwwwvvgwvwwwxwwwwwwwvwgvfwwwwwwwwgwwggwwwvvgwgxxwwwgwvxwwwwwwgwfhwwwwwxwvggwxwfwgvwvgwwwxwwwwwwwwwgvwxwwwwwwwwvwwxwwwxwwwggvxwfwxwwwwwwwggwwwffhwwwvvxwgwxwwgwwhvgxwxwwwwwgwxwwxwgvgxwwwgwwwxwvhxwwxwwvxXvuffuufvGVefwwxeevwvuegWgwggwgefwwwwVWffxwxUfxfwwefwFfewffgwfgwwvwfwfwwwvtvgWgVfxxwUVwgwvGvfwxwgfewwwvwwVevvgvgwwwwxxwwfvwwWWfVwwxdVgvvvvfVVvwwuwfffwwwvgevvwwvwwWeuwgfgwwfwxwvwVffxwwfvgwwwxgwgfwgwwwwgwwwwxgwwwfvfgfeffgffwWfvfggvvwxguWvgwvvWvvwwWggvwWguwfeggvggwgwwefwwwwwvwWfvwwgxxgwwheVwfgvvffvfwVwgvwWgvwffwgwgvvwwwffgwwfwwwvwgvwwwwwwwxwwwwxWgvgfvfVwgfvwwwewvwvwwfwgfvwxwwxxgwwhVvwvxvvwwvwgwfwwwwwxxfwwgwefwwvwwwwwwwwxgvwxxxhvgVUwfVevvfggggfVevWgvwfewefvfvwwVUwgwwvfwwgfVufffVwwwwvwgefgvwxwwwggWegWgvWgvgvgffvevwvfwffVUwVfwfevwwwgvffwgwwgwffgegwuwwwwfwgfwggwWgwwgfewVvfvffvfggwwwwwevwuvxwvvgwffwfwwffwgwwwgfgffgfvxwwgWwfvvgwvfwwgwwwfvwgvfwwwvvgwwwxwxwvwwwwvwwwwvgefddfVUuvUUwwwgfvwggfgfeddgffvFFfffdtwWwvUUwgvgfvwggfggffffffwfwwvwwwwfwfvwgwxgwwgfVUuvffwwwWUewvgfvwwwUUwwWUuvgWwwgVVwwffvwwwwwwwvvgfvwwwwwvffwwwWUuwwgffgvfffwgwwvgfvwwxggfvgvwggwwgwvVVVwwvfvwwwwwwwwwwffvwwxwwVVxxwwvVVgwuwvvwwxxwgvggwwvwwgghfegfguWvfwvVwugVvgvvwwfeVwfgfWwvggvgwwwwfffVgvgfgWwwwwvggfvwwgwggWvgwxwwwvvwxwfvfgVffgvfwgfggwwWwufwvvggwwwgvuwwfevhwwwgfwwwxwwwwwxwfvugwvfgffwwgvfgvvfwwwwwwgfwwwxwwwwwwwwxwugwffvwgwwwfwwxxgwwwxwfevvwwwwwgwgwxxwwwwxwxwxfwfVuvgfegffwwfgwvVewfevgffwffwfewwwgvwwfwffgfehguffgvvgfvwwgfvggwwwfffvxvwguwvvggvWVegfUvvfxvfgvgvUveUwgfhgvwwwwvfVvxwvUwfWwwwwgwvvxwgwvggugVveUvgvwgffffwuvVxwvfwvWwgwfvwvuwgwwvgwvwggWvwgfffvgwwwwwgwxwwvfwwvgwvfwfwwfxwwwgwwgwvwwgvwwgwgxwwwwwWedgvedWvEffVwfgffwwwwUefgfvfGuufeVwwvUfvFwegfVvxvvdgvUfewwwxgffwwwwwfwwwwxwduggUffVwvfVewwwwwVffWffwfexwwwuwwfVvwwwwwfvwwxwwwwwwxwwwTVwUgvgffwwwwwefveffwvwxgVuwxwwwvvfwfwxxxwefvfgfwwwwggewwwwwvwgwgwxwxevfwwwwxwwwwvwxwwgwwwwxxwxwwwweudggdevWWvvVUfvwgfvwwgdUvWffgWVfvwhvvwxWWfwFffvgfvwwwevvxwwwwvwgevwwwwwwwwwwWeegVGvgVffvwwWuwwGeuvffUvwgvvgUufwfgwwwuvffvffwgvxwwwwxGWewVfevxfgfwgeegwwfgwwwvwvfvwfwwxwwwwwwhdffwwfwwwufgVuwwwwwwwwxWgwvfwwwwgxwwxwwwwwwwgwwxwxwXuvgetvgvWeEvwxxfewggvuvffVfVvwwwwvwvxwwWfUuxwefwgwvfgvVVffvvfuwwwxwwfvVwwwxwuuvfWfVuwhfewgwgFWffxwxvgwwxwxwwvfUevgefvwwxwxxwwggfxxwwGVVfwxfUwxwgvwveEvffvgfgvwxwwwfggfxxwwvwwfVuwwvvvwgxwwwgwfxwvgwgwwvwgvvvvwwwwgwwwxxwwwUVufVGvvfUffvwwtUwgvwwGVfwfFVeVwwfwvvuggUeVvwwefvvvwwWfgWffuVfwfvfwwwggvwwwwwGVfweEVfvxvuffwugvUeffwxfgfgwwgvgWfvegfwwvgwwwggvwwwwwwgTffvweffwvwwWfvGVeffwwwvgwwwxgwvwwwwgwwWefvfwwwwwxwwwxwwwwwwxwxWwwvwwwwgfvwwwwwwxwvxxwwwxwwwxwhewgVevwfefffwguggggwwweffgufffvwvwxwgwvvfeewfvwwvgwvwfVVvwvwfwgwwfxgwgwxwgwwxfwvgefVegwuwgwfwgffVfwwwwwwgffUwvvwfggvwwwxwgxwwxxfeVfgvvwgwWxgfffwwvgvgwwggwgwwxxwwwxvffvwvfvfwvwgwwwwwxvwxwwwwvfvwgwwvwhgwgwvwxxxwxxfwwvwwvwgwwggwwwwwgfwvvwhxgwgwwvwwwwgwxwwwwwvvwvxwwwwwwwwwwwwwwfwwwwwgvwgwwgvxxwgfwwwwwfwwwwwwwwwwwwgwxvwwwwgfvwxwvwwwgwwwwwvgwwwwwxwwfvwwwwwwwwwxwwgwxwvwwwxfvwwwwwggwggwwwwwwwvxwwwfwwwggxxxxwgfwwwxxwwwwwgxwvwwwhfegfwfgvgvvWwugefgfvxweVgwwgvvWffgwwvgvvggvWUfWvwwwxxvvwvvxwgfwgwxffwgwwxwxvefwwvwgwfgVVfgwgwhvwhwwgefwwvxwvxwvvwvwxvxfgwwwwfffgwwwgvvfwvVffVwwwwvxwvvgvgvggwgxwwVVwwfwwxwxvvvwwxwggwwUfvgfvwxwvwxvwgwwhvvwgvwxwgwwvuuufvveewxwVVfwgUvwfwvdvghwxGwfwwgfuwwwxxWVfwWdfvgwwwwwgwvwWUfvfgwwhfVvwwveffwxGVewgeuvwgwwWgwvvgevwgfvwgxgwwxwufWdfvfgfwwxffwwxxWfVvWUvvgwvgwwwwvwgUvvfwwxhwfwwvwggxfwwxwfvfeugWgfvwwhveggwgwwgwgwvwwxgvwwvgvwwwwwwhwVwefVguvvWgffVgvfvwwwgffvwwwweWgvvvvgwgvvfgvWgvvvfgwggwwwwxgxXwvffwgwgvxxxwxwxfVvfwvgffgWwugewgwwvggvfVwvwfwwwgwwgwwwgvvgvggwwexwwggxwfggguffwfvfwxwgvwwwwWwwfewgwvfxwwwwxfwwwwwwwwgwfwfwwwvfxwwwwwwvgwwwxxwwhVvwwwvvxweetWfUefgggUfvtWVfvvvxdeggvwVgfufffuwggwwTUwufgfvwwgvvgwwgwwuffvvwwgguwwwggwxgetgfgxwEffugffvwwgewwfwfdWWevvhuvgwwvgxwtgVevwwhfvwwwwwwhgwwUffeggVuwwwvwwxwwwwuwgfuwwwfwwwwwwgevgwggwwufffvwwxVuwwwffwwXgwwwwxwgxxwwwxfvwxwwvwwwwwwxwXGgwfWgffwwUVuxVfgwvWWfgwwgdefxwfwwvwwdeexeVwwgwwwxwwxhwweVwvfvwgvvxWgvVuwweVtxxfVgwfvwwfefuwwwgwwfffwvfwwgwfVVgufwwwwwguxvwUfuwfVwvvggvwxwwxxxwgeUffewwwgvfwwWvfwfwwxgwgfEgfvwfwwgvfwxvwfwvwwwwxwwxwvwwvggvwxgwxwfwvgfweVgWwegwvvfgUvwgvufggwwhxwvwgewvgWgugvvfggfvwwwvwgxwVewhwxggwwwgxfvxgfegfgvfgwvuWgevgVwvwwvggfvvwfggwvffxwwwxxgwwwfwwwxhgfvwwwvgVVvwwvvgwwwffwwxvxwgwffwwwwfwvfgweewgxvxwgwvvgwwwfwxwwvxxwfvxxxgwwwwvxxhwwgvwwvhefwVvfgfffvfwgfwWggwvveffgfewvwwfvfwgwwwWfvfvvfvfvgxwwvwwfwfvvwwgwwwwxwwvgwwwwwwxugvWfuffwweffwfwwwWvvvwwwgWggwvvvwgefvgwwwwwxwxwgwwgwwfegugwfggwWwwgfwwvgfwugvwwgxwggwwfwwwvwwefevvwwwhwwwwwwgxxwvwwxwhfuwgwwxxwwwxxwwfeufWVfvWgwxvwwvwwxxheewvwwwggvwwgwvxgWwwvwvwwxgugwwwwwwuwgvwxXVvgfgwwuwvwwwxxvfwwwwwgvwwwXvwWgvwvwxwwwxwhgxwvwwwwwwhugwwwwuwwgwwxXvwWvgwvwxwxwwwhgvfwvgwwxxwfwxwxixgwwVUewwxgggfvUvfWgxggwwxwwwwxvfwffgfwffVVUwwwwwwwwwfwfgwwwggffwgwwWffwxwwxwgvwWwwffwgfgffUeVVfxwwwgfwwvwwwvvfwwgvwgwWVvwwwwxvwwwweffwvwwwwwwwxxwwhxwxfwwugwfwhvgvvwwwgvgfffffwwVfeefwxwwwxwwxvwgwwwwwvvwwwvvhwwwwwgVUuwwwwffgffwggfvwwxwwwxwwwwxxxwwwggfvffVfVuxwxwxwwwvvfgfwgvwvwwgwwvwwggvwwwwxwwgwvwwffgvfgeuwfffvwwwvwwwvwwggfwwwxwgffvhwgvwwgwxfxgwvwgwgwxvwxgggwwwxwwwwwwgvwgfwgwvvfgvwgvfgfffVvwfgvvwxwwwwwxwwwwgwvvvwgwgvggwvwwwvwgfDUwwwggvgfwfwfgwgvgwxwvgxxwwwwgfvffffwvwwwwwwwwxwxhwwUfvwwvwvwwvxwwfUfxwwwwwfwwwwWefgfgDUfvfffwwwwwgvwwgfwffggfwvgwvwwwfwxwwWevwwgwvwwxxxxxgwfwvwwxxwxxwUfgvwwggggffgvfgffvvvvfggwwwwgfgggxwwgwXefwwwwwxgwfwxfwxwuVUugffwffwwggvffwwwwwwxxwxxgxfvvvfwgfggUVuwwwwgvfxwvwgvwxwwwwvwvwwuVfuxwwwvxxwhwfvfgvefVeggffvUfwgvwwvgwwwgfwvfvvxwwwwgwvgwwwwwvVwwwggfgxwwwwwxgwfwwvwwxggwggwwwWvggffgfUVuwwfwvfgfgwwwwwgvgxxwwwwwwwgwwwwvxxwwwggfgvUdeVfeVfgfWeevvfgwfffwwvvhvvvwwwgwvVgwVfffUVvweeffgwgfgwwwgffffwwwwvggvvwwgvVeegwgwguegfvuwewwUfgFWeVUVfwfvwVfefVgwgwwgVegwwwwfefwwvwwfVwVVvfeVfwvvwwvwvwWwWuwWVvuwVwwfwfwfwwwufffvfwggvWTEfweefefVvffvvgwfefwvwvwwgvwxfhvwfgvwwxwxgwvfwwxvwvwgeVfwwwwfffvwhwwwwwvwwwxwwwxwhxvwVeVvwgffgwwwwwwxwxvwgwgwwwwwxxwwxxwuVvvwwxgwwwwwgwwwggvwUeUfgWgvfwwffwwwwwwxffgfvvvwwwwfwwwxwwwVeVwxhwvgxwwxwwgwwwwwwxwxfvvwwvgwwefVVefwfwwwwxfwwwwwfvvwwwwwwwwvwwwxggwwwwxxhwwgvvvffwVUeggwUUwwgwwvvvwwwvwwwxgwwfxwgWUugggUUvwgwwvvvfgfggvwwwwvgwwwwfwfwwwgffwgfvgxwffwfxwgffvwwwffwwgvvvwgfvwwvvwvgwxwwgwwvxvwffvgggffwvgwwwwvwwgwwvvvwxwvwwwwxxwwffgfgggvgwvvwwwwfffwfgvwwvwwghxwwwwgwwgvwgghwwwxhgvwvxxgvwvwgVUfuwvggwwffffwwwgffwwgwwwwwwwwxgeffeewVfVwfvgwfwgeVfwwwwfwgwwhwwvhwwwwgWfgvgwvwwwwwwwhUefvfweffvffwwwwgwvffwwwwwwwwgwvwwwwwwwgvwwvwwVwfgvwwwwwxvgwwgxgxxwhwwxwwwxWVvWvgfffwwffvwwfwWgfwwwfgwhwwvwxxwwgxgwwxvwxwwwxgvxwggwwfgUUvwwvfwvwwvgwvwwxwwxwvxwwxvgwfWfwwvwwvwgvwhffwwgxwwxvgwvwwxwvxgwffwwwwgwvwxxwwffffWeuvgffwfggvfwwgwvfwvvgwgwwwwxwxxwvgvvgfvwxvgwwwxwwwwwwxwwxwwxxxveVggfvvfvvvfwwwvwvgwfgwvwwvgvfwvwwwwwwwxxwwgwwwwwgxxxfwggfDvgfegvwwwUwwfuwwwvxxwhxwxwvwwffgxguwwvefeFtwwwwwvwwwwwfwwfwwwgwWuxfwgexxfxwwgwwvvfFfwwwwUwfgffxgwwwweggfwwxwxwfwwwwwwwfwffwhwxwwwggWwwwxwwwwxxhwxwxwwgwfwvwewwgwfefdxfwwgwfwgvWuvgfvfxwfvwgvwgxxwgvWwgwxwxwwwwwfwwxXgfggfeVfgvvgwvWVfwvwgvfeffvfwgwwggvgwxWfefgfgUVffugvvfwvfgggwvggggxvxgwwgvvxwxeefgffvggvggwgfwxwWfvfwvVVegvwwvffweefggwwggvxvwwxgfwgvwxgwwVVffffgVVwwwwwvvwvfgvwwvgvwhxwvwwgwhwufgeUfvgwvggfggwwwfffgfwwwwwveggwwvgwvwwvxvwwggxgwwxvvvwgfeUuwwwfggvwwevwvguewwwwgwwwhwfwVVefvfefvgvwwwwwwxvwheuwvwwxhgwwufffgwwwgvwxwwXVVgfVfvfwfwgvgvffwwgfwgwwvwvvwwwvwxwfhggvggvwwhfvwgwwwwxwwwxwhvvwwwwxxwXueVvwffvwvfffvvwwgufwwgwfwwwwfvwgwwwwxvxgwxwvwwwXfgwveffUgfffwgfgfvfwgwVfvfwvwxvvgwwxwxxwVffVfggffffgwvffwgVuwwvgggvgfxwwwvwwwxxxefwewvgwwfggwwvxxxefVfwffffwwwvgvvfvgwfwwwwfgwxwwwvwgxxwwwefgfwWgwwwvgxgggvvgvgwwwwgwxvxhwwvwwwxxxxevefgvfvvwffewwgwvvfwwgwwwvgwfvgwgwwxxxfwvwwwufvgWTufVVwwefwdfgfwwwffwwvxWwwwwwwXUfvDffUvVewwwgfvgfvggwweuwuvwwfwwwwwwwxgeuwgfwwfwvvgwgwGUefefUegffvgwWefFfvffwwwuffvwwwWuwwwwwggwwfvgvgggwwwgvwxwxwwwwgwwxwxwwwwxGdfVefUfwwwefeVuwwgfvfwwffwWVwfwwwwggwxwwwwwgfxgvwvxwwwwwxxwxgwww5gVVufgfeUewwgVwfwgwwwwwwwwwwxwwxxwwuvwvTetwwffvdegwVwwwwhxwwwWfwfexxwvwhvFgegggvggfvgwgvvwsFfEfUevgwfgwwfVevgfevwfgegfwwwwggwwwwwvgwfeVtggvgwuvvfwhwvxwvhwggggwffvgwfvvxFU5wwgffGVVffffgwVwfwufwfwxvwwgfufVuxwxgxfwwwgfuwwwxgwvwwgGfeUfVfdfwgffvVvwvfwvfvwwwxwwwhUVUgwvvggggVfuvggfwgeggvwxxwwwwxwwwwwwWgffvwwvgvvwgwvfwVFVewwwvfWfuwwwefffvfewhgvwwwvwwggvwwwwhffUwgvffggvgwvvfwwwgfwwwggggwghvwvwgfVWWfUDfgfvgwgvgwvgvwvfVfwwxwwfwgggfwhwggfwwwxxxwxwwwxwhvwwgduffVfVewwwggwwxwgvwwgwwvwwwwwxxwUVeTwvgeVwgfwgfggvvwgfggvwwwxwwwgwvwwwxwtuvgvvfvxwwwgwwxwUfUuwgffVwwwwwvwfffvgvwvvwgwwwxwwwwwwUVfdwwwvVwwwgggwwwwfghvwwwxwwwwwwufgfVufefgvwwxxwwwwWwwwwwxwvvvvvwxwfvggfwwwwwwxwwxwwwwVfwWfvvWefgffwvwwwwxxggfwggwwvwwvwxhVggfwwvwwwwwwgvwWwwwwwwwvwwwwwwwxXfvwgfwvfwxwwxwWVffvvwvfgwwwgufgvgwvwwvvwwxwwwwxwxhVwvfwwvwgwwxgwhwwwwwwwwwxXvvWgffgwwvvwwxwwwwwwxgwvgvxxwwvwxwwwwwxxxxwwwvgWUewwwwwffwvgfggfwgwvwwxxwwwxwxvwvvfgwfffwgwxxwgfwwvwwwwgfwgwwwwwwgfxwgffxwwwwgvhwufffffVeUUwWfwwwwwfwvwgvwwxwgvwggwggwwwvwwfwfvgvvgwwwwxhwxxwwxwghxxwgvuVfVwveffvwwwgwffwWfgggvgwwwvwwwgfvvwwvwwfwvwwgvxxvvwxvvwgwFTefgwweVfuVgUvvuwwuwwwwxxxwwwwwwxfgwVgwtgVdeWevwgwwgwxxuvgfvwwwfvwwggfwwwfefvvfwggwwfwvgwvgVgwffvTVUTfwvgvvgwwffwhweffevxghVvvwvfwwWWvgfvfvgeugfgvgfwWvhwwxfgvfwfwggggwwvfgwgUfvfvuWgfvvuWTdWeffVvwgwwgwxwwwxvfgwgfxwwvgvwwvffwwwwXhgfggVVVwvfVTdggVVvwvhgvwxvwwwxfgwwwwwwfeugwEEwwfxwwxwwvvwxwwfWwwwggwvwvxxfwfVwwgewxggwwwfffffffgfVVffuwgwwxwwvwggVVwfvwgwwwwwvwwwwwwfvvwwVVwvvxwwwwwwxwwggwwwwwwwvxggwwgffwvgVVfgvffggwwvwfugwwwwvvwwwwwxwvwwwvvwwgggwwwwwwwwwvwvwWedVwWxwWgfvwwfvwwvwwxxwgwxxwXgvgWfefgWVevvvuwwwwvgxxwwwgwxwgvxwwwgfdgvgwwgwwvwxfgGfufvfugWFuvvwvwwwwwuxgxvwWVuvgvWxvvhgvvFffwwWVuwwwvwxwwfxxxvwxfvwwxwwwwtfwwweVgwwvgfFvwffgguguxwwwfvhwwwwxxwxhxguxwgwgwgwhgwwwGUeFwwwgffewgfWgvfgfwwwwxvwxvxvgwfduUvgeVwwewwwwwwwhwweFwwugwgvfxVgwVwwwgfwvwgwgwwweffFfgVgVffgevgwgwgwwvwwgvVfgwvwfVgvfxvwwxwwwgevfwfvfwvwwwxwwxxwwwwWwvwgxwwwwxVggvgggvwgGvVfVwvvfVwwewvvwwwgwvwgwgxwwwwvvwWwgwxfgwvvvxgeevggwVfvvwwfwwwwwvwxgwwwxggVffvwgwvwxwwxwxvwwgwwwwwwwwwwwevggwwVgvxwwwgVvweuvewgWvwwgfwgxwwxxufWfwvwgwvwwwxwxhgwxfgwvwgwxxwwwwxvxxgwwxwxwuwfwwvgwxeffWwwwggvwxwvwwwhxwvwxwwxwxxwwfwxwwwwwwwwwwxxxwugUTvuwwgvwwwfwwwwxxwwwwxwxwuegvvgvwwwVwwfgwwwwwwwwwxfewwwxwwgxwwfUwwwwwxwvxwvVUtwgwfUgfwgWwwfwwgvwwwwwwxgwvwxwwWwwwwwwwwwwffwwvwwwxwwfxwxwxggwfwwgWvwgvwwwfwgWffwwvwgWwwwgfuwwwwwxwwwvxwgvxwxxwwxfgwgVvvgfwwfwwvwwwwwXffvggxwvxwwwwhUfwfwfwwwwwhvxgwgvgwxwwwwxxwwwxwgVuvgfwwfvwwwwhVwfvwwffwwwwwhvwhfwwwwvwwxxwwwwwwgegwewwegvwwgwgwgwwxxvwvxwxwWuvWffvfgwwvvwwwwhgwvwwwwhwwwwvwwwxwxxxwgxwxwwwxwwhfgwvvvwwvwwwwxgwwwxxxvfwvvwgxvwwwgwwhwhwgxwwwvgwwwxxxwwvvwfgggwwvvwwgwwxwxvvxwwwwwwwvwgwwwgwwxwywwwwwwfwwwhwwwxgwwvvwwwgwwggxxxgxwxwxxwxxxwxwvxggvxxwxwwwhwwwgffwfWfwwffwwffwgfVggwwhfvwWUVxwwwwwvvfggwwhfvgwVUVvgwgeuwgwwwwwfvwgfvwwxwwxwwwwvwxxxwwwwwgfvwwwggvwvfxwvwgfwWUVhgwwwwwvffxvwxwvwgVUVvfggfuxwweVxgvgwwxgfggwfffvvggffwwwwwwwwfffgwwwgwwfffwwwvvfvfUVwvvwwffwwwxwwwwggwwvwgwwgfwwwwwwffvvwwwwwxwwfgvgvvgwwwwwwwwwwwggwwvwgffvfwvwgwxwwwwxwwwwffwwwwwxxxwwwxwwwwxxxwwwwvwgwwwwwwwwwwvvwwwggwxwwwwwxwwwxwwggvfgwwwwwwwwwxwwwwwwfwwwwwvwgvfgwwwwwwwwwwwwwwwwwhffgwvwxwggvvwwwwwwvwvwxwgvwWfwvgfwwwfgwwvffgvwwwfggvfEEgvxwxvvfwwvvgEEwwwxwWfffvwgvwvwwgxgwgWfvfwxxvwwxwxwwvwwvvxwwwwwggwxxwvvwwvgxwwwfEEvxwxwwwwxgvxgEEvwwgxgWffvvhwwwwxgeegwfgfggvfWwwwwfwvwwffuxwvvfwvvgvwwfeuwvfffwvvxwwwggWvgwwvuwwhxgwwwwfvffWWgvgvvwwffuwwfWwwwwgvgVVuwweUfvfwvgwwggvvgwwffeVeewfgwvVfUwvwwvuwxggwwvufvWgwWwggwvvwgwhwwwggvfwuwwwwgfwwvfwgXggwvwwwwVgvwfvfgegwvfxwxwwxwwvefefgfwwggfVwvgufgwgwvVwfvfvvwvgvfffggfgwvfwgWvVwvxxfwuhgfffwvvwfggfvvgwWvwwggvwwwvwwhwvgwwvwwggffgvvwwgvfWvgfvvggvvgfggguwWgvhwvwfvxwvfgfugWfvwvggvghwwwwwwvwgwvfwwwwfgxwxxwwxwxwwwwwvwwwwxwhwvxwgwxwwgwwgwvfggvwggfvgwvwwwwwggvwfWvvgvfwwgvgvwhgffvfwwwvwwgwvwgWwvwwwwwfVwvegwfxwwfxhwgvefxxwwvwwvwVfufgwwvwwwxgWfefgugwvwfgvgwggfvfvgvgwvvfgwgGUdfgvgwwveVwwgwvvwgTEwwfvfegwvvwvwxwevwVWwwgWfuvVvgwvwwxwggwwwxwwwwwgwWwwwwwvfvwgwvvgwvguwwvwwggvvvgeVwvwfeVvxgwvwxwfffffvfeVwgwwvwwwuggwwxwwvgvggugvgwwwwwWwvwwgwVwwxxwgxwgwfVgvwwwgwVwwgxwgwgwvwxxvwvgxwwxwwwwfgVwgffwvVwwwgwvgwggvveWwwwwuxfUVugwwwgegVeUgwwfwvxvggufwvVvwxwgwgxwwwxwxvgwvwwwwxxwwwxwxwwvwgvfwxwwwwwwwgxwgfwwfvgxwvxgUVwgvwgwgVeUwxwxwfwvxwgwvgwwffgwffwwgvgxxwxwvgwxwgwvfgvWvwvwwgvfwgwvWgvvfexxwwwwwwvxwwvwewvffwwhgwvxwweVwwwvvffgggfgwfffvwfwfWWfexwVVwxwwwveVVVfgfvgfffwwxvfefVwwwwwwhgwvxweVxwwwxwwxwwwxxwwgfvxwxvgvggwwxwgWfewgeVwwwvwvvggfvwgggveVwwwvffvfwwwwwvggffvvwwvgwxvgwvxxgfvwwgfVffewwvwwxwvhxgxwgwxgvgfvwxwwwffwvxwwwwwxgwfffxwwwffwwgfvwwwwffwwwwgwwwwwgfvwwffwwwwgwwwxwwwwxwwwwwwwxwgwwwwwgxwxwwvwwwxwwwwwwwwxwwwwwwwwwwxwwgxxxwwwwwxgwxwgxwwwwwgwwvvwwwxvgwwwwwwvgwvwwwxwgxwwwwwwwwwwvwwwwwwwxwxwxvwgwwwvwwwwwwwvwxxwwwwgvwxvwwxxwvxwxgfwggvwfwwwwwfggfgggVwwfwvvwwWVwgfwvfvwwggvWfgffwgvwwwfuwfwwgwgwvgfgggVfwgwxwfwfwwxwgfgwfxwvxwxwwwwwxwwwvwwwvxwxxxxwggwwwwvvwwghvgfwvVwwwwwfvwwxwfwggggwwwfVVwwgxwwvugvgfuxwwwwwgwwgvwggwwwvvvwwvvuuwwggeuwwxwwwwwwgfwwwfgwvfhwfvggfxwvfwwgffffvvvffwgggfuwfwffgVFvwwfetwwgWvwvvgfwWffTwvvwwwWvwefFuggwvwxxfvwgfxxwfwgfvwwwwwfwwwfwwwxwwggwwgvfwxgwvwwvgwwvvwvgfWxwgvuwgggvwwwgfwWwfUwvwxgwfgVhgwwvwwvggvgwvvhvwggwwwgwgvgwwwgfhwvfgfvvvwvfgfwwvvfxwwgfwfxwfvvfwwwgwgwvwwvwgwxxwwvfvffvwwfgvgffggwgfgwfgwvwgggwwwfvgwffwwxgvgggwwwvwgwvxvwgwwwhwxwvwxwxxxwwxwxwgwwxwwvwwgwwgwxxxwfwwvxvwwgwxvwwvgwvvwvwwgwvgxxvwwwgwvwwvwwvwgwgvwwwvwgwwwgwwvxwxwffvwwwvgfggwvwwwwfwgxwwwwgwvwfgwVeghwvvwVwwgvwwwgevgfewffwfewwvfvwwfwfVvwfxwvwggfugguwgwVgfgxgwwggguwwwwwwwwggggwvvUwwhwxggfvgxwwwwvwwwgwwfwwwvWwwxwwwwxgwvevwfwwvwgggvgguwgvfwfgwwwwggfvxwwwvggwwgxwffwwvvVwwgwvgwxgwfvwwwwvfffvfVwwwwgwvWwvwwvvfwwxwwwwwwxwwvuwfwvwwWwwfwwwggwwwwvftggfvfFfVTfVwWwwgFfgewwgvVwwwwudfVegvgvwwfWVxwwwugfwwfwvxwvvwgwwvwwwvfwwwwggwwwwwvwxxwwwffvwwwwwwfwwwwwvwwVgfUwvgfVwggwfugVffvwvwxffUxvgvfvfwwfxwgxuwggvuwvfgfwfwwvgwvuwxfVtwwfgfwevguwwwwwwgWxwwgwwvfvwffggffwwfvfvwfgxhuvwVgfUfgfwgvwvxwgwfwUgVgwvfvggeffwxffgwvufffuwgvwvwwwwhvgwffwgfgfvwvwxgvvfwwwwxfwwxgfffwgfwvwvwwwwwwxxwwXgvgffVgwwggwgffvwwvfwwwvwgfvwwfwwwwwhwwXvvfvwwfxwwvwegvvggwgxwwXgffUgwvwgxwwvwxwVwfwggxwwhuwfUuwwgffVuwxwwffxwgeefUUfVegffgefffwWFfVtwwvfUwgvvgfweeEuWefVdwexwwwgffwwgwwgwvwwwgfVuwxwwfgxxgwgwvxwwwxxwwwffVugvvwwxxxvxxgwegfvwgvfUwwvwgfgefVefvvguwfwwwgwfwwVwgwwwfgVugfwwwVxwwwfvwgxwwgfvxwwwfVefftvgvgwvwgxwxwwxgwvwVgwwwffWwwwvwvxxwXgggfVfggfgvvfeugwguffvwwwfvwggefVwffVwvfvwwwwxfuwgggXgwwwfffwwvwvxxwwvvwwxwwwwwxxwxgwffgwvwxxwxxhegVvwwwfvwwwwVugffVfUwwwvgvxwwwwvvwwwwwxxvgffWvgwvvwwwxwwwwwxxgffvwwwvVUvwggfvxwwwxxwwwgwhfwgfvwwwegedwwvfWwwgfwwVvwvvgguwggfwvfvUUcgwfwWwgwvgwU5wwfetgWvvWwwxvfgWvwvgxwwgwfegfdvgvgWxwgwwwxxxwwwgfwvvggWvwwwxxwvgwvgwxxgevuwwffFwwwvgvfWggfftwWvfFwwwvfgWxvwwxwvwgwwefffgwwwxxwxxwwxwgfewffguvvggvggfgwvgwxxwxxxwwgxwwxxwgwxgxwwwwgVfxfvexwxwwWwwwguvfvwgwxwfwfffVUvwwwgwwwfwvgvgffwvwwgVUffvxwwwvxwwxwwwgvxwwxwwwwxwgxxggwxwwwvwxgvwwwgxwfxwgxwggVUxgwwvwwvxwwwgvwwxwgVUvgwxgwgwffgvvwwwwwgfvwgvggwgxwfgwwwffwgwwxwfwggxfwffwffVghfgwwgwggvfhVVwwwwwfggxvwwwvgfgffwwvgwvfwwgEEwfwwvggfvfvvxgwVVwxwwwEEwgfwwwxxgwvggwvfhVVvgwwvxwwxwxhxwfwvvvwggwwxwwwwwvvwwxggeeggfgwwwfwggvffegxVVwxwggwwvwvxhxvvvwwwfwwwwggvvfwvwxwwgvwxwhfvwfggggvggwxxgggvwvwwwvfvwfvvwxwgggwgeuxwwvvfvhwwggvwwwfvwvvghwWVVwwgVuwwvwfwgvwxfvfUvwvwfgfUuwvvvfxwwhggwgeuwwgxwwwwwwgfvwgwvvxwggwvwgfwwwvxwwwwxgxgWVVwgvuwgwvgvwwwwwevwffvvxwgwVvvfvwxggxwvvfvfvxgwvvwwvwgwwwxwWwwgfxwvwvwwWfwwvVVxwvwuxwwxwwwwwwwwwwwwwwwwxwwgwwgwwwwwgwwwwgwwfvwwwvwwwwffwwgwvwxxxvwwffwggwwxwwxwwgwwwwxwwwwwxwwwwwwwwxxwwwwwxwwwwwwwxwwwwwwwwxwwwwxxwwwwwwwwgvwwffwwgxxxwwwwwggwffxwgwgwxvwwwhgwwwwgfwwfwvwwxwwffwwgxwwwwgfxvwwwwxwwwxffvxvwwwwxwwwwxvwvwuwwgvwvgxhgwwuwffvxxfuwwgvgWgwUfewvxhwgwgVvgvwfvuvhwuwgwvWwwefffvwwgfuvhwwwvwgvwvgxwgwwvwvgwxwxwvwwvwvwwwxwwgwwwvwwgvwwxgwxggwhvwwWffvgffvwgwvvgwwwwvfwffxwgfvwwwwgvgvwgwwfgwwuffgvwwgwuwwwfgwhwwfgxwwgwwwwwwxeVwwwwvfwwgwfxwwhhvfgxwgwxggftgwWvggvfwwgfgvwwwfwvgvvwUfuwwfFwvvgvfwhgxxwvffUfeVwfxwvvxwgwwgwxffftgwWfvwwvvgvwhgxggvWxwwxwxgvVffwvfwhgvwwwgfffwgfFwvvwvfxwxwhwvfffvvfwgfwvghwggWgwugxwwWvfgvvvWvvwxvwgfvggwwxxgxhvvvggWfufwgwgvwfwwgvwwwvgwfxvfwxgVuwwfwvgvhwfgwwfwvfwwwgfVwwfvwWEtvwfgvwwUDwwwvgvfwwgVwwwvgwgwfvfgfxwfwwgVwwvwwwwxwwwwwwwwwwwwvxwwggwwwgwwwwvgxwgwfgfUvwwgwwvfVuwwgfwwwwgvWwgVuwxwvgxwwwwwvfxwgxwgwwggwwfvxvvvwfwfwvvxwgfgwwwwwxggwggfxwvxvwwgwxgxwwxwvxgwwwwwgvwvwwwwwgwwwhwwwwwwgwgvvwwvwvwhxxwxwvwgwwvxwxwxgwwwwxwxwgxwxxhwxvwgwwxhwxwwwgwxwwwwxwwwxwwgwxgwwwwvxwwxwhgwwwwwgwwwwwvwhhwxwxwxwwgxxwwwvhxwwvwwwhhwwxwhhwwxwxwffvwwgwgvwwvwgvwwwxwheefeVvgVffvgffuwgfefgewfewevwwWfvVvgfgwwwufvvwwggugvwwxhwwwfgwwvwwwwwwwgwwwxwwxvwwxgwgfwgggxwwwwuwhwwxxxhfvgvwgvvvwwwwgvwevfvfwwwgfvvuwwvvvwgvwwhvvfwgvgwwvgvvxxwwuwxwhwVgfwvvfgwwwxwwwxvWwwwwvvwwwgwwhwgefgwxwxxggvgwgfDfwwwwVugfwdffffgvwwwgUwVffWwwwwvwwwfwwwwwWvwwfgvvwwwwvwfwwwwwwffWfghwwxwwwwxxwwvwxwwwwwwggwwwfwxguwvggevvfFFexfwwwWvgfvwwwvWVvgvggvFeffvxwgvwwhvvwwwwwwgwWVwwwwvxvwwxwhvvhvwwwwgwvvwwxwwwevhwvWgfvgxwwwxwxgvwXwwwVWeuwfgvffVeevVfVvggfgWvuWgfwxwwggwxwvvgvwwgwwgvVvWfwwwwwghwwvwwwwwgfuwfgwxxxwwxwxxxwwwwwwwwxwwggwxxhuwfgvgfffvWeUvwwwfwvhfgfgfvwgggwfeVfgggevxvgxxvvvwwwwgvfwwwgfwwwwwwwxwwwwvwvwwwwvgwxwwvgwgwwvffxwgwxxwwfwwxvuUVfgffWeVUUfvegwwgfgwvwfvwwfgvwfwwwwwxwfwwwvgwfwvgwvwwwwvgwxgvwgvffwwwvvwxxwxwxwwwwhwxxwwwwwwwwwghvgwfgffwvvwwvfgwwgvgwwWffVvegwVgvgvegvfwwwgfwwhwwwwwfgwwxwvfgwwwwgvwwgwwhwwvvwwwgffwvhwxhwwwwwvggvwxxwwwxwwxxwwggwwfWUuvgfweewggffffvwffwffwwvwgfvvwfvgwwwwwwwwfffvwwwvgwwfwwwxwgwwfwwgwwfwwwwwwwwxxggwvwwwxwwwvwwwgxwfwwvvvvfhfvwgUevhwvwwfvvfffwfeffwgvwwfvffggggfwgfwxgwxwwwwxwgvwwwwwwggwwfwxwxxwwwxwwgfwwwwvxwxgwwvgfuffvwgwggwwfvwvwvgvvwFteVffvFfUUTVvwvvweVfVgugUfwwuwveffVffwwvgVfwwvwfffwvvwwwuwwggvfgwVeeewfwgxwxwwwwwwwwxgvgwffggfwvggwewgvgwVgwGvfgdUvwefWuWwfffvWwggTTwvefWeVVfffvgwwuvwgfvxwwwgfvwwwwwvwfvgwwwffwwwwgwgfwwwxwwwgfvvxwggvvwweeegffggggvgfvwffgwvwwheVffwvvUUffvggvvwgwvweefvvgwgvwgfvggvgwwefWffvwwvvwvxgwwwgefffffgVeevwgfuwwggwwvfwfwwwvwhvwvwgvvgvwwvgwfwwhwwhwfgVeUffVffVwgefwvvvfwwwefVefffgwvwwggwwwgfgwwvgwfwgvgvwwvvgxhgwwwhvewgwwgwvwvwwvvvwvvwwWvgfevvfwWVxxwvvwwwwfueeffffffgeeffVvffGEehgweevvgvwwvvWVfwgvwvwvwwwwwwgwwvwwwvwggggvwwweewwgwggxwwxxvfwwwwggwwwwwwwwwwwwgwwxgWVvgwwTTwwggwveefgfwgfvvvvwgwwffVwgvvwwvwwgWvwwwwvvwwxwvvgvwwggwwwwwggwfwvwwwwwwwwwwxxgwwwwwwwVggffgwwwgfwwwvwwwwxhVVUfVefffwevWgfwwfvvvvwwWfwwgwwwfwgvvfvwwwfwwwwxhfgvwgwwXWvwvffwwwxfffvwvwwvwxwwxwwxxwxvfwwwwwwwwwxwwwxxheUfvvfWffwvffgefVvfevwwwUgvwvgwgfffwwfwwwhwweewwvwwwwwwxxxwfwxxvwwwwwfgwvwvwwxwwxwxgwwxgveVgwwxwwwwxwwvgwfvTEvgvfGUtfgeVfffvgwfgwvvgwwvvvvvggvwggfwvgwwvvwvgwvwwwvgfwvwwWfuwwvwwwwvwwhwgxxwxxvwhwwgwxwxxwxfggfgfvvgwwwvwvffgvWfeffwfgvggvgwwvfvgvgwwvwwWfuwwgwwwgwwwvwxwvwxxWfuwwgwgvvwwxhwwxvwvvwwvxvxVggVexwwwgwxwvwgwfVgWUefUfwgfffvefvUuwffwwwvffffvfvxfwwfgvvgfwwwwwwvwwvvwgwwvwxwwwgewwwwvwwwffwwwxwwwxwfwwwfwxwwwxxwxwwvfggfgvwvfvfeUugfvgfgfVVUxwwwwwfwwvfvwVvvwgwwwwwwfvwxwwwwwwfwvfvwwwwwwwgwwwwwwwgfwgxxwxwwwwxwgfdgfwvwwgwwgwgfvwwxeTVgfvfVwvGFUVgvwvWgfgwwWfvwvxvwwfUuwwvfwWwwwWwvgvxwwvwwFffvwwgVUggwwwgwxwxwwwvwxffwgxwwwxgvwwwxwWeefwvfVUwfvfvvgvddfvgvvwgfwwxfUgVuwwvwxwwwuvwwwxwgvwwwfwwwwwguwwwxhvfwwgxwwwfwxwxxvxwefueggvvwwfwvvwvvwvwwhfeUfWfvfffvwgevwvfwgvffvvffffwwwvfwvwgfwxwvvwvgxwgfwwwwwWfvffWWwfwwvvwfvwfxvvwvwwvwxwwxgwggfwvxvvwfwwwwvwwxwwwXfggVffffffvvggeefwwWfgwvvfvfvwvgfwwwwwfgfvgfvvgwxwwvgUvwwwwwwxvghfwgwvxwfvwxgxvxgwxwwwxxhufguvwwwfwgvwgwwvwwwwwTufTdufVfVgfffffwVfgVfwgwvewwggfvgefgvgwwwvfegwggfwvwxgwwwwfvwwVggfwfwgfwwhwwgwxwwxgwxxwwwwWwwwvwwvxwxwwxwgxxxwFVWVwgvfUwfWgwdgeeVfgwvwffegwWgwgfgwggwwxvwwgFuwwuwwvwwwxxwwggfwggwwwuwwgvwwvvwxxvwvgvwwxwxxUVvwgfwvgfgwfgwvfwwwwHUefWFVeUgfefffuwwVVvgdfgevvwwwwXefWvgffwxwtUgvvwwgfvwwwwwxgfwwffwfvgwvvvwwwwwuwwgwwwwxxhvvhwwwxwxwwwxwwwwwxxwwwHTffUvVUvevvwwWdVFVeffwwwefffuwgVfevgvwwwxWVwfuvvgwwfvgvvwwggwwwwwxwWfvugfxwvggxxwwwwvvwwwwwwwwwwwxhUfvVfvfwVWvggvvwWwgwuvEVfUtUfUUVevggfwvfvfvVfeUggVfvvvfUfewgevwwgVfVgwvvwgwvwwvwxxffvgefgefVevgwVwvgfggwwwgwvvxhwwuegwwuwvgWgvgwwgfvwWwwuuxwefffUVuwgwffeVUUDgwfffVfefVvfgfewggvfvvgwvffffwfwwwwwwffggwfwgxwwggwwffwVfvvfvxvwxwxgwgwwwvvvvwgxxwgvGgfgewwwgwffhwfwggwvgw6gUVF6UevwfvfgVtwggUUevwwfVwffwwffegfvUfwwwvgwxwwggVvwwwgfhwwwgeVdwvvwgvgvvwuwwwwwwxwwwwwfgwvvvgfggxgvgvwwfgvgxwTeTwwwffvggevTffFffUSgWvwfwwwvveffwwfevtxvwwgevguVggxwxxwwwwwwvhvwwwwfWgfewwwVWfwxwxxxgxxgwfhuvvVwvwwgwwwwwwgwwwwweffWUfUewvfgVwgwwffgffwwwgwwwwwvfgfffvfwgwwvwwxwwwwwfxwvwwwVgVuwwfwwgwwwxwwwwwwwvxwwwwxwwVfVexwwffwgwvgufffUegvgfvwgwwwwwfwwfwwwvwwwwvwwgwwwxxwwwwxwxwwvwwxwgvfwgwgwwwwwwxwxxwwxVfwvggwgefwvxwwwwxwXVfwVfgWewguevwvwwgefgvwwfvwwwwWfvgfWwgwwvvgvxwwwwwxwxwgwxgfvwvwvvwxwwvwwxxgwgwwwwwxwxxxwheffvwwvgwwWgfVWgwvwwwvfvwwwwgvwgxwwgwwggwwwwwwxxwwwxwwggvwwwwgwwwwwwxwxwwwwwwwxxwxwwVewwxxwwxwgwwwwxwVEUwvvwgUffvUTvWwxvfwwwWgvwwwwwxwwwwwfwwxgwwxxgvwWwwwwwwwwwwwwxwwffwwgwwwwxxwwwxwxfxxxwxwwgwxgufwwwWgugfggwwwwvfwfgwuwffwwgwwWfvWwggwwxxfevwwwxwwwxxwwwgwwwwwfwwwxgVvxwwwwwwvwwxwvwwvfefvwwvwvggwgwggwvwhvgVTevWwwffwdVUevwwgfwvfffeegdfwvgwwWwvffwwwvffvvwwhevwvgwvxgffwgfwffgvffUvwvvwwxwwwxxwvfggfwxwwwwgfgfwwgxwwwxfgwVgwuvVUffeevvggvVgwggufWfgwvWDefeeffwxwgwvgwhwvwhwvwgewwwgvgwwwxwwgvxvgwxfvxxwvwwwfgvwwwhwvffwwfwwwvgfvwxffwvggffwwwwfffwwffgwfvwvvWUewwUUwwvhgwxwvxgwwwffwwvwwvwvwhggwgwwvfgffgwffwwvwwwgwwwxvwwvggvvwwwxhgvwwwwwwwwvxwwwvfVUuwgUUwwvwggwgfvwwwfffggfvggwwfgvvwggwwvvvvwggwwgfxvvggwvwvvxwvvwwwfxwwwwvwwgfwgwwggwwvvutgvwvgwhwwwwvvwgfwhudfvWgvVfevwWUvwwggwwWvvvwgUvvwvgwxwgvwwvwgfvwwwfgwvxwvggWwwWgevwgFwwwwwwwxhwwwwwgwvvwxwwwwwwwwgfvXWvwVfUvgWFugfwuwwvfwwwvWgUvwwgVwwwffvxwvwgwvvxwwvggwwwwvfwwwfvvxgwvvvwxxvvwxxwwwfvwwwgggwvwwwhWfgfwvwwwwwwwgwwgwVefUvfwVefVvffVwvfgwwggfvfgwfwwwwwwwwwwwwgwfgwwwwffwwwwwwffwgvvwgvgugfwwwwwwwwwxgwwwwxwwxhwwxwgwfxwwwwwwvwxefweefewVffgvvVffvwgwuwgVgVwfwvwffgwfwvvxvwgvwvwvxhwgfUhwvvgwwwwwwwvwvwwxwwwwxxxwvgxgwxwgwwxfUfwwfvwhfxfwwvwwwwhefwggwwffguwwfwwxgfwwfwwvwwwwxgvwgxwwxvwgwvwwwwwxwwhfewVfwwUgfvwgwxwhgvwvwwwxhvgwxwvwwgwwwxxxhfxVwguwgwvwxhewWwwvwwwuvffvwgwfvwwwwgxvwgwwxwxvwwgwwxgvwwxxxhwvwwwwwxxwgwwwwwwxwgvwffvxwwwwgvwxwwwwwwxvfUUvVVuvgfffffvgggvgvwwwwfwvwwgwwfvgwfvwwwwwwwxwfxhwgfwgwwwwgfvxxwwfvfwwwwwxwwvxxxwxwwwxwwwwxwxxwxvfVwwwwgwfwwgggfwwgVuwwvwfgfvggvfwwgvgfwgwwvgvwvwwwffxwgwgxwgwwwggvwwvgvwwwwwwvwwwwwxwwgvwwhxvxwwwhgvvggggvwwvvvgwwxfwwwvwwwxxhggwwxxvwxwwwhwwwwvwwvwwvgwwwwwwwxxwwwwywwxfwwvwvwvgwwgvwgggwwxwwgwwwwwwfwwxghwvwwwwxgwwxwwxgwxwwwxwwxwwwhfVwwfWwfvxgvwhxwgwwfVvwvuwffvWwgffwwfewfuwgwwvfxwxfwwwgvwwhwwwfwgwxxgwwxxgfwgfvwgvwWwggwxwvvwgwxgwwwxgwwwxhwwxxwwxwfvwgvwWwwvvwwwVwwwgwwwXwwfvwwwvfwgwwxfwwvwwwxwXwwwwxwwwwwwwwvwwhvwxwwvwxwwwxvxxwwwwfwwwwwvgfvxxwwwwwwwwxwwwgfxwgwfvgvxwxwwwxwwwwwxwxwwwgvvwwfxxxxwxwwwxwwwxwwwvxxxxwwwwwwxfvwwgwfvgvxwxwwxxwwwwwxwwwwwggvggffwwvwvwvvwwwwwwwvwvwxgfxwwwwwwwwvvxwwwwwwwwwggwwgufwwffvxxwwhffxvwgufghwwhgvgVffwvfvgWevwvwDUwwvvwwwwvwwgwwxfvwxwwwfwufwwwwgeffxwwgxgffwwgwhwwhgvgVfvgfvvgvwxxfwwvgffvwwgWefwvgUUvgvfvwxwvwwxwwggwwwwVwvgfvgwwxvwwgfgwgwwwfwwvxvgufgvvwwgvxhvggvwwwwxvgwwvxXffgvwgfvwVexxwwwhvgwwxfffxwfvvwhvgwwwxwwWWfgvWgVvfvwwxwwwwWevvwxxvwgwwvVevxwxgvwxgvwwgwwfwwgwgvgvvwwwxwwwxwwhwgwwwwwhwwwwwwwWWgvfWfVwfwxwxwWevwvxvwwhvwgwfuwwvvuwfffgvgvvgfWvfvgwwxxfvwxwxxgxfwwxvvwwgxwwwhgeufvuvvhggwffwgvufgwggeewwwwVVffffvfgwfggfVVfvffffwgwvvwwwwwvwfvvgwwwvfggffxwwfvvvWWgvgwwvevvWvwWwggffwvevwwwwwwwggWwvvhfvwwwwwvvwgwXvwvgggfffffvwfgwwuwvxgwwvwggvgwWfwvvfwwfgwvwwuvggwxwvxvfvwwWvwfffwvwwwwwfgwwwwwwxwwxgfgvvwwwxwhvwwwvgvwwffvwwwwvvgvwxwgweffvwwwvfwfwfggxgvvweffVeffvwwwgwwvgwwwwfwwgwwhgwwwwwwwgffgwwwvvgfxggwwwvvwvggfgfvwgwwwxwwwwvwgwxwgwxgvwgwvwUeVUgVfuwwwwvwwvwvfgfvwwwggvwwgvwwgffgvwvwfweffvgwwWwvvwwgwxwwgwwwwwwwvxfgwwwvwgwwwxwWWwvgVuUgwwWVuvwgwxwvvggvgwwvffvvwwwvwgvvwwVeegffwuvgvfvwgggwwfgvvgwhgwwvxfUvvUgwgfWuwwwgvwuWwVgfvvWwwVuefewxxwgwVffVeexwxwwwwfgVVewwffguwgwwhhxgwgfgvfvvgwwgvgwwfwufwgwwWwwfWvgvvgwgwuwfvfxwwgwwgwxxxwxwfgwgfgvwwwwxwgwfgfwggwvfwhvfwggvwvfgwffvgffxwwwwggwwwwfeevffgfWVfvvvggfvgvfgwvwwwwwwwgwwwvwwwwwfgwvvvxvvggvwwvwwvvvhwwhggvwwwwxgwwwwxwhgvwvwxwvhwwwwgffgvvVVfffvwvggwwwwvwwwhgggwvwggwwwvwwxwgffgvfffwvwwxwwwwXVvwwvvvwwwvvwwxwvwxggwwwxwxwxwxwwwwwffxxwwxwxwwvwwwggwxwwggxwxggvvwvvvfwxvfgwwwhfvxwwwwwxwwwxxwwwwwwffwxxxxwwxwwwwwxwwwwwwwwxwxwwwxggvvggwvfwvfgwwwhfvxwwxwwwwwwwwwxwwwwwwwgvwwwxwwxvvgwfxwwvvgxxwwwwxwwxwwxxwwwwxwfgfvWVgvgffwvwwfvwhwwhUVffgfwfuvwvgwwwwGvdVtffGfewwwwgVfgfwvwfvvffgwwwwhwgfgwwwXgfgffvwwwwwgfvwwwwvfvffwvfvwwgfgwwgvwwwvwwwwxwgvwwwwwwhXfeVeeeWffgwwwgfvwwwfwwvwfgwgwvwwwwwwvxwhggffvvwgwgffvwwwwhwfgwwfwwwhfvvwwwwfwfwwwxxwwwwhwwwvwwwwvgvwwffhwvwxvwxwgwuegvwvewxwggugvwhwgffwwwgffWvvWgxwffvvwvwwwxxxfwxxwwgwwwwffgwwxxwvxwgwwwvwxwwwvwwwxwxfwxfxghwxxgffvwwggfguvWgwwwffvgvwwxxxwvwhwwgwwxwgvvfwgwwvwgvvgggwwgwvggxwwwxwwfwwwwfwxwvxefvvgwwuwwwwwgwwwvwxhFeevggvfgwefgvvhUVewgweefdvwvwwwgvvgvggwwvwvwwxvwvhvhgwfgfgwwwwwwwwwwvWvgwwwwfwwfxwwwwwgwwxwwwwxxwwxwxwgVVVfwgeUefvwvwvvWgvfgwgwwwwwwxgvvvwvvxvvVWfffwwvwwwwwwxevwfwwwwxgwgwxgfwwfgwwwwwwgwwhegfWfvggWguvwwvfWggwvuggVVwffvfeuwwgfwgfvfffffvggwgwgfggvvwvvwgvwWwvwfuwgwwvwgfwguvgggwfvfvggfWhwvVguvvfvgwwgwwwgfwvvvvwvwwwwwwwwvWhvxvxwffvffeufgffvwfgggwwgvfvfwggxvwwwwwvwvwxfwhwgfwvffvvgvgWwwwvuwxvvwwwwwvvvfvwfwwwwwgvxwxwwwwwwxxwxwxuvwggfvfvwwwvwfgwgvwwgueVugwfgguwwgwwgfVeVffvggUvgfwfWwwvwvwxwvwwgwwwwwwwvgffWfxwvwwfwxxggevewgvvgwwwwwgggwwfxwwwxxwwwwvxWVvfffUvggVufwvvgvxwwwxxwvgggvwwwwwwwwwgefVgffUwgwvgwfvwwwfwwwwfwvwgwvvfwwwwwxwwgwxwvwxxwwwxxwwxxwhvfwfvefgggvgwwgwgwfwwwUffVvwggvvewfwgwwwegfUfeeeVggwwwfggwwwwwwwgwfgwwwvwfwvwwweuwffvgfwwgwfwxwgfffwvgvgfwwgfwvwwvwvgvwwwwwwwwwwgxwwfdWfDgfveFwgwwwfgfvgvwvfgfgVwgxwwwggvfwwwfffvffwvgwvfgwwxwwwgvwvwvvxwvfvvwwwgvghvgwwwwvwwwwgxxwwxwuttwWfvgWWwwegftwgvwwwxtTfexwwVffwwwwwww7VeVeffegwvvggveUvwwwwwwwfgwwwwfwwwxwwwxgVvvWGwwefvuwwgwwgewwvwwvwwwwwHfgGwwfwwwvvvwwwxgwwwwwXVggcffUfeggfwwvvvwwwwwxeUvwwvvwwwwwwwwHffFffvfgvwffvwwxgvvggwwXVewggggwwwwwwwwvwvgvxwxwwwhwwfegffvffxxwwwxwwgwewvfffVwgvxwwfgfgfVUuwgwfUvggfggwvwgwWfvvwwwxwxxwwwwwggwvggfwffwwxxwgffVwgvxwvggvfwwfwgfwvffwxxwxwwgWEtwgwfUwwwvgwgfwgwgvgvwwwwwwwwxwgwxwwvwfwffwfgvuwwxwvhwgwwgwvgxwwgvggwwvgvgvvffugxwwwxggwwggxxvvwwgwxxwhgwwggwvvwwvvwwxxvfwwwwwgwwwwgwwgwvvwwxwwwxxgwwwxggxvgwxwwggfgxfgwxxgxhffwwwxwwwywxvgwwwwwgvwxwwgwwggwgwwxwwxwvwwwgwwgffwwwwwwwxxwwwwwwwwwwvgwwwxwxxwxXeexweVgwffwWvwhwwwwxxeefffewwwwgwwwwxUdffufgfwffwwggwwewgfvwwgwwxxwwxxwxfvwwvvwfxWwwxfuvvvwgxxvwwwVgwgwvwXwwwwwwxwxduwffgfwgwwwwwffvvwwgvwhxwwwxwxwxVgwuvffvxvVgwvwxwvwxwwwwxwuwgfvwwwwvwwwvwwxxwxwxxvwvwgwffhxwwwwwhfvwwwvvfhwwxwwvwwfwwwwgwwgffvfWUvgvwwxxwwwxxwxvwxwxfwxwgvvwwwgffvxxxwwvwhfvwwwgggwwwfggfvffxxggxwhgxffxggvgffvwgUugvwwxgvwwxvxxgwwwwwwwfvwwwwwxffwfwwwwfwwvgfvgvgwvvwwxgvxxvgwgvxggvwggwwxwffgwggghgvvwvvggwwwwvwfffxwwwwwgffggwwwwfeuvvfffffvwfggwwwvvwwggggwwvgwwwwwwvwxwvgghwvwfvvwfwfggvhxvvvwwggwfwwwfgwwwwvhgwwwxwwwxwwwwfwfvgffVVVVvgfwwwfwvvwwwfgwwwxwfggwvwwvwwwxwvfgeugwffwwxwwffgwfvgvwwwxxvwxwwxvvxwwxxwwfwwuvwvgffuvxxxvfwwvgvwwxeUevwwgWvfvwvwwgfgweUfevVefggwvvwwwwxwfvgvvwwwwwwxwwwgfffgwgwfwwwgvwwwwegwvgvfuvwwwwgwhxwwvvwwwgvwwwhwxgfgwVfffUfUvfvwvwwgwwwwxvufvwwwxvwwwwvwhvvWfvgvwwwefffwwwWevwvgggwwggwgwxwwwwwwfgwwwwwwwgwxwhvhwfggfUwxvwvwwfgwwfggfwwfvxwfwwgwvfweWwwwfVfgWhwxgwwfUxgwwxwwffwhfUxwwwwfxwgwwgvwgwwfvfwwwxxwwwwxwxwwgwwgxwwwxgwwwgveVwwwfWfgVwwwxwxwfUwhwwxwwwvwgggfwwffvfewewfwgfggfwWwvwwwxgwwwxgwfwwgwwwxhwwUVvwhfwwgWwwvwfwwXVffvfxwvwwuwvwwxgfvwdfgewwwwwwgwhwwwxxvfvwwxgvwwxgVugWfwwfxwvwvwwxffwwegwwvwhuwgwwugwxhwwwxwhewfUgvdffffwwwWwgwwxxvwwwwgfvwwwxgugWvvwgwugwwvwxhffwwwwwwXwwwxvwwxxwffwwwwxxxwgwwxgxhxfVwwhuvgxggxggwwxvwwwwwwvvwwewfxffwxwgwxwxgxwfgwxwwwwwwwfVwwwhuggvvvuwgffVwweVxWwvxwXgweVwwwwwwwwvgewfwwffwxwgwxwxgxwvfwxwwwwwwwWwfwhgwwxWfweVwwwggwwwwxwhwxxxwxwxxwwxwwefvgggwfwvwwwwvgwwwwGfeVfWgfgwvvfgggVUefvwUVffvwvwwwXgvfwwgvvgwwggvwvwwfxxgwWwwwwwwvwwwgxwvwwgxwwVwfvvwwwwwwwwxwwwxwgwwxwwUfevwveUfFvwvwwggggwvxhxwwwgwfwwfwvxvwWfufuggwfgwwwwgfvwvwwxwwvwwxwfvwwxxgwwwvxxxxwwgfwXWWvffuhwwgwwwwWWffxhgvhftfgvwGffwwwwwgxfhwwfwffxwwwvfxfvvwWwwgwwWfvwhwfwwxwuwwxwxwwwwfdffvwGgvwwwwwgwwhfhwfgvhwwwewwufwwwwwgwwwwwwwwwwwwhvhfxwwgwwxwwfwvwgfvvfgwhwvgwwvvwwhufffgvgwwfwwwvvxVWfWVeVwwVfuwwwfvvwxfgwwwwgwgvwwwwxvwgvxgvvgfgxwwvgwwwwwxfffgwvvwwvgvgwwvwwwwvgwwxvwwxxgvwXffUfffwwffvwwwwfwvgggwwwwwvwwwvwxwwwwgeffwgvWwwvvfvgvwwvwvwhvgwxxwwvfxwwwwwwwwwxwvxwwwvwvxgxwwwwxwwwwwwxwwxwwxwwwwwwwwwwwxwwwwwwwwwgwwwgxxwwwfUfxwxwxwwvxvwggVwwvgvfgfexxwgwwgwxxwwwwxwwwxxwwffxwxwxwgwwxwvfggwgggvVfVxxwwxwwwwwgfxwwwvgvfvwwwwggfxwgwwxwwwvxwwxxxwxxxhwwwwwwwxwwwwwwvxwgwgwwwwxwwwwwwwxwwwgvwwwvvvwwwWUwggvvwwVewwggxwwwwwvgffvwwWfwwwwgvwwgwwwxwwxwxvwwwwwwwwggvwxweVwwvghwxxwwwwgffvwwgUvgwgwwvwfffwwvfwwwgfvwwgfvUUwwwxxxwfwxxwxxwwvfgxxxwwxwxvfgxxwxwxfwwwwxwxwwwwwwxwfxwxwwvfgxhvwfwfvgEUTwwwxwwwwwxwgvvfgwwwwwTUEvgwxwxwwvfgxwwwwfwwwwxwwwwwxwwxwwwwwwwvgTUEwwwwvfggvxhvggvhgvvwwgfgvVTEewfgvvwwfwwwwwggwwwfggvwwffvwxwwxwwwxwwwwwvfwgwwwfvvxxwxwwwwwwwwvwvhvgwwwwgwwggvxwwxwfxwwhwvwvvvvffggvwgefuxwwwwwggWvwwevuWgevuuvfVvwwwxfxwwwvfwvwxvgwwwwxxggwvwuxxwvvwfWfggvwfwwgvVfVvhgffugvffufvfVvffwwgggwgwvgvwvfvvffVgwwffgfWgewevxxwgwvvwxggwvwwwwvwgwxwxxwwgfgwvgvggvwxwwwwhwwvffvfwwwvgwwwwvgwvgwwwhwwwfwvgwwwgVfevfffgvffvfwxgwwvwvveefeVwfffgfffwvwwwggvvgwwvgwwxxwxwwffggwwwvgwfxwvfwwwwwgwwgeUvfVefeVgvgwfwwwvwggvvwfwvwwwfwwwgVUVfeUfvwgVfuwwgvwwxwwwwvwwwwvgwxwggwwxwwxwgwwwxwgwwxwwwwwxwwwggwwxgwwwxgvhwvfxxvwwvxwveExwffVfwwwwwvgvfVVeVVwwgvgfwfewwwxxxxwwwxxxwwwwxwxvwwxwwwwwwwwwwwwwwwwwgfdVfuwwwwggfFwwgwvgxxxwxwwwvgfeUVTxwwxwvvwwvwwewgwhwwfgwfwwwxxwwxwfgwgvveWwgwxggwvgwvgwhwxxwWvgvwwexwxxwwwwfgggwWVvwgwvvffVfVwvfwxgfffvuwwwgfgwvgwgffgfUwwgwgvwvvvgvgxwvwgvxwgwvwugwgwwwgvggvfxvfwwfWeffvwwvgwgvffvfffVvexWVfvwffvvggUfegvgxvwvevfgwfwvgfVuxwwwgwwwwwwwwwxgVvxwwxxwxxwwxwwwhxxvwgWvuxwwwwwwfxvwgvwvwwwgwvgwhwvwwxwwgVvuwvwwwhwvwgUVuxwwwvwfeWxwxggvxWFewxwfvwwgxxgWvuxwwwxwxwwwgwwxwgwvwwxwwfwweTFxxxxwwwxgWfwxwvvwvwwfeWwfVeUfeWgfwwveWxwwwvveWggwwwxwwvgwxwwggvwwfgvwwxwxxwxxwwwvxhvwwwgvgwwvgwvxxwwwwwfwgwvgxwwwwwvvvxgwhgvvgwgwvgwgvvwwweewwvwveeggvxvfvweewgvfwffffwwxfwgwxwvwwvvgwggwxwwwvwwvwgwwwwwxwwwwfWfuwwffvvfwwvgvvefVwwwfgffgVffuwgffvwwwwgfVVfuwwwgvwwwxwxwwwwvwwwwwgghguxwxxwxxwwwwwwwwgwwggeuwwwwwwghgxgwwxwvhwwwwxvvwvwfxxwwwggguuwgwwwwfwwgeUxwwwfwveEFwwggfuuwwggwxwxxwwggexwwwxxxwxwxwvvwwwwvvwwwwwgwwvVVwxwwwWVdvvfgvwfwwvVVwgVVUvVVvfwwvVWxwwwwvVWvvwgwxwwgvwwgwwwwwxfwgfwxxwwxwxxwwwgvwwgfwgvwxxwfwwvxwwxxwwxxwxwwggvwfwwwwggwwvwwxwwvvggwgfwwwVVwwwgwwwwgUvgvffvggwxwxwgfefVwggwfxvwvxgwgvgfwggxwfwgwwwwwwwxgwwwvwgwwwxvvffeugfwwfxwwxwVVfffggffwwwfvwwgffffVffuwgfvwwwwwxWfeuxwgvwxxwgwwgewggxgVwvvwWvxwxxxxwxwwwxwfxwfxwvvgvwvvwxxgwvwwvwVwxwxgwvwguwwgwggxwvgvwfvwVVwffwvvwffVuwVwvgffffwfwfffuwgvfvwgvfwwwfxwwwggvwwfwgwggxwwegwxvwwvwgvfvgfvxwgfvfVwwvwggfwwwgvgffVuffVVfVUwgwvvwfgfwhwgfwfefUwwfwfggxxxwfgwevwvgvwwvwgWxxxwxxxxwxxwgwgwwwfwwghwgwwgvwvvwwewwgxwxxwwgWwgwwwfwwgvwwwgggwvggfWvxvfUggggwfwwWvvwuwffdggVwfgxgfVVwvwwgwgwwwwewwwxwwwxwwvvxwwewwgwwwxgwgwgfUwwgVuvwfwvwewwgwfwxhgfWwvwgfVffeuwwwgfewwgwwwvfvuwwvwvxwggxwxwwggvwwwwwgwxvxvfwvxwxwwxwwggWwwvwwwwwxwwwfwgwvgwwvwvwfuxwgvxwwvgwuxgwvwwwwfvgeweFggWgxwwgvwgvfUwVVfEvgvwvgffxfewwwvgwwfwvWxwgwvwwwwwfxwwgxwwwvvguwwwgxwwWftwfvggvfgftvvggwwvgwvxwvwwgfvgVeGwfgvfvwgxvwWvfExgfwwwgwvwwwwwwfwwffwwvggvwwwgwxxwxwxwwwggwwwxwvvgvxwxxwwfwffvVwxxwgwvfwwwggwwwgxxufVUwgvfUwvwggffevgvgvvwffugfwgwwfgwwwgwwxwwgwwxwwwwxwwwwfvwVxwwxfgWggvggwwfWwggvgwwwwwwgwfgfVeggugvwwvwggfVefguwwxwwvgwwwxwwwwgvxwfxwwwwfffvxwfwwwwvxwfvfwwwxffxgfwfgffwwwvwvxwwwgvgvwwwwwfwxwwffwwfUxwgfvxwffvwwwfUhfgffxwffwvvffvwwgVuwwfwxxwffwgwwfhffxxwffffffwwwghvfUwwgffhgwxxwwxwffvffgVwwfgffxwgffgfffUhwgxwwwfxwfwfwfxwwwwwwWffvwggfwwxwwwwwwwwwxxwwwxwxwwVgffwwvfwwwevfefvfvfffvfwxgfwfgxxwwwgwgvxxwvxxwgwgvxwwfwxwwvgvfVvwgvfvwwwxwxwggvWxwwgwgvwwgxxwwwwwgvwwwwvwwwxwwgwfwxwvwwffewffgvwvwxxwwwwgVwwxwgVvwgwwffefffwwvwxwwwxwwwwugvxwxgvgfgwggwvxgwwvxwxwxhgwvggvxwwwhvvWvwwwVwfgxwgvwwxwwwxwwwwwwwfxwxwwwggwfvffvgffvwwwufvwvffwwgvgwWwwfwvwwxwwfwwwwwwwwwwwwwwwfgxxwxxxefvwgvfwwgvvwgwxwwwgwwxffwfwfWffxwwwfWwwfwwgxwgxwwwgwwxwwwwvxwwwwwwvwgwwwwxxxwxxwwwwwgvggwxxwwwwxwwxgwxwxxwggwwxwfxwxxwwwwwwwggfwVTfVVxxwxwwwwwwwwfdgggwwwwfVVfFghwwgfwwggwwwwxvwwwxwwwwwwgwwxwwxgwwvfwVUvgfvfwfwVVVeexxgvwwwvvxwwwgeeuvvwvvxWVtwwxwwwfwxwwwwwwvfvgfvwxwwxxxxwwwxwwwwwfvgvffvwxxwwwwwvwwwwwwvgwwgvwvwwfvwwwxwvxwgvwfvggwwwvfffffVuwwgwfgfggVvgwvgfffuffeffefuxwwxxgxwwgvwgwwgvxwwwwwvvwwwgwvwgufuwxwwwwwgwwuwwgWvfegVugVefuxwwwwgvffgwvwvfgfggwfVwwvwVffVvVffvwxxwwgggwwwvfggvggwgvxxwxwwwwwgwwgvvwgwwwwwhwwgfwwwwwwggfgfwgwggvwwwwwgvgfwggwwwgfffgfVeggfwwwvwgvgwwgVegfwfwVUwgffVewwwwgvwwxgwggxwwwwxwwwffgxgxwwggwxfwggwwwfvxgwwfVVfffggvfffVVwgvfwfvwfwwwwwwwgvwgVefeefUvgVfeuwwwwxgxgfxwfxhwgvxwxwhwghvgvxwwxxwgvwwxxwwwxxwwxfxwwvgvwfwfxwwgVeVhwgwwwgvgVUUsgwwwwffugwwvxwhvgvxxwxxwwwwwxxwwwxhwfwwwxwvgvffuhvwwWUUsgwwfwfgwxwfgwwwwfgUfEwfwfgwwfxwwxwwwxxwwwwwwwwwxwwxwwwxwwwwwwwwwwxwwwwxxggwwwwwvvwfgwwwwwwxxwxgvxxwwwggffwwffwxwwwwwwxwwggfvvwwwgfwxwwxwxxwvgxxwwwxwwxxwwfgxwwxwwwwwwxwgvfggwwvfwwwwwgfvwwwgfwwwwxxwwggvvxwwggvxwwxvwwxgwwxwxxxgwwxwwvwwwwvwwgvwwwwxwwwxxwwxwwwwwfvfxwfvvgwwwxxvwgfuvfuwwggvwwxwwxwxwwwwwwwwxvwgVfgvvwwwfguxwffwghxvgwfwghfUfwwvgwwxwwgfxwgwxwwwvvuwwwwwxxwwxwwwwgwxvwvwgfwvwgvwwwvvxvwvwxwvhwggvWwwgguwgwfwwwguwwwwfEvxgWfvvgwgwgvwgfEvvfvwvvvwwhfdwggggwwwxwhwxgwwwwgfwVxwgvhwwwxwvvhwwwwwgwVwwwegVugfeVdhvwvxwgwfvgegfgwgwgvfgwwfgvvffgUtxvWwwfwvwgevtwvwwxwhwvgvwwxxwwwwfwwwwxxxwwwxfwvwwwxwfvggwhxwgvxxxxwgxwxggvfwwvfvxwxwwwWwgWfUwwgeVugvgwvvwfgfvuxgwwwwgwwwfVwvwwfwwwwwxwxwvvxhwxwxwwxxgvxwwxgvwgvgfwffVwwfvgfgvwfvuwgwgwwwgwffUgwwgfwwgfgWffUxwgwwwwwfgVwgwxxxfgwVvgvwgxwwgwwgxxwxwxwxwgwvwvwfwvWgwfxxwgwgwvwwVwvWwxwwwgwvwwwfwwgvwgwwwgwwwvwwvfVeggVwvfgfUwwgVuwgfwfwVwfVwggwwgwgxxwwwwwfwvfwxwxxwwgwvwwVwwfwwwwwgwgwVwxwgvwguwffFfeVwfwfgvVwgwwgfeVftgvwxgVfuxwwvwgvgfuwvwwwwwgwwwvWxwxwxwwvgwuxwxwwxxxwxwwwxwwxwgwguvxwxwvwgwxgwvwxxwwgwWwgfWwvxwvwfWeeugwuwwwVwxgvfxwwgvvWgxwxwwwvWefuvwgwwgvwwgffwWefxxxvfwwwwwwghvvvgwvvgvvVwvwgxgvwwfggwgwwwgwWefuvvgfwwxghwwvvgwghwgxvfggwwxvgfggefvwwwgvwfvxxwxxwxfvfwggvwvfwwxwwxxwvwwwwxwwxxwwgvfwfgvxwxwxxwwvwwwwvgxvgwwwvvfuwwwggvxfvvvgWgxggwwwweufwfgwxwfwwgwvwvvwwwwfveVfwgwwwwwwggvgevfvfgfwwvwwwxwwwvwvufwwgvvgwfWgwwxwwgwgvwvgwfvwwvgxfuegffgwvwwhgwgwwwwgwvwwWWgvvvwwwxXfuvwgwwxwvwwfvwwwfvxwwwggfwwxwwxwxxxxwxwgwwwwgfgwxwwwwwwwgggwxwwwwwfvfvgVwgwwgvwwvffUUuvgwfvwwvfgefhwxggvwwwfwwgUVuwwvgffvVfvwwxffxwgggUVuwwxwwgvfwgfVeffxwvgwwfffvxvwxwwvvfwgvwgUVuwwwvfvVVwwvgfffwwwwwwwwggwwgfffffUewwvwgvwfxxfvggvvwxxgfwfvfgghgfvwwfwwwwfwwwwxwwwhgfgwfvfggxwxwwwvvwwvvgwvwwvgwggfvwffvfwwxgWfwwvegfgwggwfVvwvffffwwvvwxxwwvwwfvVfgwugxhVWgvwvvwgWFfwwedWggxvgwxwgwgwvwwvvgfwwfwgggwgwwvvwwggwuvwwufvFVfwugwgFVfwvwwgfwfvhxvvvxgfgvvwfwfwvvvvxggfwwwwwwgfwwffwwwwwwwwwxwwwxxxwxwwvvwwwwwgvwxwxxwwwwwgvwwwwwwwgfwwwwggwwwwgwvwwwffwvvwwwwwwwwwwwxggwwggvvwwwwwxwwwxwwvfwgvxwgvvwwwgvxwwwwwwwwgvwhgvvwwwwggwwwwwwfwgfvwggwvwwgvwwwwwxffwwfgwwwwwwwwwwvfgwwwwwwwwwwxwgvwwffvwfwhVVvwfvvgwwxwvwxwxwwwxwhVVvwwvfwwxgwxgwhwwvvgwgwwwwwvggvvvvwxhffwvweeggwwhwgggfffwwgwwweewxggwvgvvfvgwweegwxgvwwgFEugvvvgwwwvgxwwwhvvvvgfgwvgwxwxwweexxggwwwgTTvffgwvfwwwgwxgwvwwgvfwwwwxhfvfvfvwgwwfwwwxwxwfwwhgxwvxgvwwxwffvuxxhwxwvxfwwwvxxwwfvwwgwwwwwxxxvwvwwwwvwfggwgfvxwfwwxgwwWdVtvfwhgwwwffwfxwwwEfExwxwwvwgfvuggfwwvfhgvwWdVtwggfwggfgxhxwwugvxwwwgufegvxgwvwvgEfExwxwwwxgvvufvffwwgwVvVwwgggVvfffwgwggfgwgwgwwwfwvvvwvfvhfgwxwxeewwwwwvvfwwwwwwgffwgwwgggwwwxeewwwxvwwffvhwwwvvwwxxvvwwwxwvvfvWWVvwxgvewggwggvwxwgfvwwvgwwwWfwghvvwvfwwxfwVfwwwxvWWVvwwgVevwgwfvffgfwvwvvwwgwvvgwwgxwwwvvfWefvgwwwfvxfwUVfxxvwWfwwxwWwWfufvvwxwwxewxxfwwwwwvwwhwvfwvwwwwxxxgwwvwgwwwwvxxxwwwvwgvwwxhwwvwwwgwwxwxwxhgvwxxvwwxgvffvhvwgwvwxwgwgwggvgvffggwggvvwvgvvwwvwvggwwfgwwvwwvwwwgwvwgvvgwgvwvvwvgwwvwwxwgwfwvwxwwxwvwxwfgwvwvwgwwvggfvvwwxxvgwgwvffgvwvwxxwgwwgvgwwgvgwvvwwwwhggggggVuwwwvxxwWeghgghwfvwxwwwwfwxvwwwvfxwwgugWwxwxwvwwgvwhwwwxwwWgxvgfevvfwwgwwwWfgfgwfevwgwfvffwgwwwwwwwVffvvxwwvwgwgfgwgvggwwvvfwgwwwfefVggwwxgvgwwvxffffwwwwwwgVgwxgwwwwVvfuvwwwvwwwguwWwvgfwwwwfvfvffvgfuvxwwwwwwwvwwwwuvxwwvvwwufWwgggxwuwwgevwwuvwgggggwwuwxfwwwgwwwgvggevwwwwwxwvwfwvwxwgfwffVwwevwVgwgvvgVwgvwfvwgwfuffewwwfWvwwwwwwwWfgfffVgfwxwvwgvewwwwfvVUwwwgUewvfffwffgggVwggwfvwfgfvgfwfvwfuwvwfwVfwfVfUwfwwwvgwffeUvvgwwfffwgwffWfwgvwgVggxwvffwgwWfvWwhwwwwwwwwwwxwwwwxwwwwwxwwwwwwwwwwwwwxxwxwwwxwwwwwwxwwwwwwwwwwwxwwwwxxwwxwwwwwxvwwvwwfwwwwffwwwgwwwvwwwwwvwwggwvwgfvxvwvwwgwwwwwwwxwvgvwwwwwffwwxwwvgwvwwwwwwffwwwgwffwxwwhwxxwwwffvvgwvwwwwwxwxvwxwxhvxgfvwgwgfvwwgwwwwwwwwgwwwwgwwwgwwwfvwgfwwwxwxgwvgvwwgwwxvxxwwwwwfwwvwwwhwvvvwwxwwwghwwwwwwwwwwwvwfvfgvwgfwgfxwwggfvfwvevgvggvgwvvvwfvwvwfvfWwfwwwgvwgwwwwvfwxvfwgexwgvvvuwgwwgfwggxwgfvgvxwwggwvwwgVwwfffWwgwfwvvvxvwvvvvwwwvfeffWxwxhvfWwgvwwgxxgwgwgxwvfgvwvwuwwgwwgwggguwwgvwvvwwgwgwwwwxwwgwwWwggffxvwwwfwxwwxgguxwwwgwgxfuwwWfffvfwffwwgwwWgwWgVewfwfhwxvwffVfwwgffwwwwwwwggwhwxwVwgfwggvewvhwvefvvfvwwwwgwewwwwwvfgwfwwxxuffefvwwwwgfexwhwvwewgwxwwfVuwwwwggvvvvxwwgwvfwwxxwwwwwxwvwwvuvfwwwwggfwwwgwwwvwwwwwwgwgxwwxgwwwWvvwwwgwvwwwfwxwwvwgfvvwwwwwwwhtfgWgvwVfewggVvvfGfVdefevWgfwwvgeUvgfuggfvfffvvvwgwvwvwhgwwFgevwwVvuwgufwxwvxxwgfWvuwvgwwvfvwhTVgwfeWwwefwfvvvwfwvwwvwhwwVdWwgwwxxggfxwegxwgVvwwwwwwxvwwvgfffFvgxwuxvhhxwwvgvfwwhwxvwvxhwvfFvgxwuxwhxxvgeffvWvvvvwwxhxxvhxxxxwxvvgffgffwgwfdwgwgfwfvxwwgvwwwggwgfgfvfvfvwvwhhhxwwggwhvWfVuwwgfdwgwgwwuvffWwvgvwehxxwewwhxwggwgffUvfffeugvxxhgfgwgxxxwggvxwvggfffuuvwvgvwwwvxwvhxxfwvgffwggffvfwvvgwghvvfvgwwgxvwwvfwgfgffwvvfvwxhvggwwffwwwvgwgfwwXgvggVfewwgvfwgvwfVfvwgvvggUvwgvwgffffwgwwwvwwwwwfvwvwwxWefuwwfgfgwvgguWggfvvgwvvgvwwvfwwwwxXffWfeffggwvgwxwwwgfvwwvgxXgufvhgwVevgwgwvwvxxxxxwxwwgxXfWguVgvfvgVuuVvwfwwwwgwwwgvwwvwxxwwxwwvgVeggvwVxwwwgwgfwwvwwvgwwfwghwgwWwwVwwwxwvfwfvfgvwgvfUwwwwgffgfxgvwfgwgwggfffffVuffffUxwxggwfgwwxwwwwvVEdfgvwfwgxwwwwfwgvguwfuwfwgxwgxwxwxwwwfUDwwgVuffvvVwwgwgwfwwgwwvwwgvguffuwwwwwwvvwvwuwgwwvxxvwwwwwgwwvgwwwxwgwgwwvvgwwxxxwxwxwwwwwwxwwwwwgvvfvwwwwxwwxwwxwwwwwwwvvffwvwefvhwfxwvwwfgeUugwwwwfwvwVvvvvwwxwgvwgfwwgwwvvgwwwfeUegvxwwgwuggWeeUwwxwwggwvwgfvwvvwwvfvwffwuwvxwwgwgfgwgwvufguwffeUeguwgwwxwwwwwwggfwgwvxxwwWgwggwfvWfVggwfvwggvxwfwvwgVefvwhwwwwvwxxwwxwwwwwxwxwfvwgVegvwgwwggwwwwgxwvwwwwwgwggvwxwxwfgvggUfwwggugvwhwgwwgxgffvgvwxwwgvvUgUvwxVewwxwwfvggvwwwxwwfgwwgETfewgvxwfwwwwwgfwwwxgfvgfwhwxgvffwfvwwVewwwxwETgWvwwwwwwvvwfgvgwwvwvfvfwxhwfvwvvwwwweUvwxwggvghUvvxwugwxxxwwwxgvwxgxwggvfhUvvwwgvxvhUvvxfxwfwgeeUvWgvgVewwgfvgvgWffVVvfffUvgewvfgxVvwgwvfgUvvugfwvwvewwwgwvGVevggEvgvvVgvxwwwfgUvgvwfwgvwwgvegwWvwgwefVTvwvwUwwvgedvwvwffgWwxwwgwxVegxfFfwggvwxwgxwwwgwvwwwwxwwhxxxwxwhwwhxhwgwvgwwwwxxhwwxwgxwxhwxxxhxxwxgwvxwxwwwwwvwgxwvwxxwgwvwvwwwwwhxgxwwwwwxxwvxgwwwxxxwxvgwwvwwhwhwxxwwwwwvxgwwvxxhxhwhwwwxwgwvwvwwxwwhxhxhwwgxgwwxvxwgwwwwwwvvxwxwvuwwgvgwwxfwvwgfvwvuwwwwgwwwwwwxwwwfwvwgWvwwxxwvwwfggwwwxvuffgwwWfvvwgVwwvwfvffvvUVfgvwwfufWxwgvwwwfggVvwwgUvwvwwwggwwWfvwxgfvwwwwgwgvxxvwgWvwvwgxvwvgvwWwffwweVwfwvvgVvwvvvhwwffxxwgxxgwwxUewgwwfwfwfxwxxxwwhgffxxwfVuwwfwwwhhwwxwwwwwwxxwxwwfVuxwwfxwwxwfwxwfffwwvxwxxxwxwggffvxgfVuwwfUwwgvwgfffvwggfgfvgfUwwgwwwgfffgffwwxwggfgwwwxwUVvwfUwwwxwfxgvxwwfffhwgvfxwwwwwfffwgVxwggfVVfUfgfxwwgfvwwwgfvgwxxwhfwwfVevwvgvxwwwvgwfgwffgVgvgvuxgFwvwwvwxxwwxxgwgWwvgvewWFvwwwwwwfvxxwwgfgwwvvxxevvxhwvVwwwvffduwgWvwvvggewwvgfggwvvvfFvwwveggggWwfwgFwwvuvwxggwfvwuugW5uwvvwwwwvxxwxwWwgfwfevxwwWvwwUSghggWwgWFvwvvuvvxwwffewggwfxxxgVfwvvxxxgggxgWgwfwwxwwvgffwvgwwwxwwgwwxwwxwxwwwwwwwwwwwxvwxwwwffxwwwxwwwwwxvxwwwwwwwwxwwxwggwfffxwwwxwwgwwvgwwffvxwwffwwwwwwwwvgwwwwvvwwwxwwwfxwgxwwwwwwwwxwwgffwwwwwwwwwwwwwxwwwwxwwwxvwwggwwwwwffwwwwwwwxwwffwwwxwwwwwwwwwwwwvwgvwxwxvwwxwwxwxwwwvvxvwvggfvwggwwwwwhwwwxvwxwwwwxvvwwwwggwvfwwwwwwwwvWwwwgvvgvgwggwwXVfVfgwvfvvvwwgvwwgefffgveVvgvvvwfffvuwuwgwfgwfvvvwfvwvwwwXfgvUwefgfgvwgvfgvvvvxxxvWwgwwwgwwwXefgvvvfwxwuVvgvvvhgvwwwwwgweguwwwfvgwggwgxvfwgwwwwxwwxwxwxxxwxwgvwwwwwwwvgwxwwwwwwwwgvwvfffwxxwwwwxxwxwgwxwwgvwxwfwwwvgwwwwwgUvgvTTUVVwwwxwwwwwwfffggwwwwwfffeVwwwwwgvwggwxxwwggxwwwwwwwwwwxfgffwwwVefgfgfwggUVVTTwxwxwxwwxwwvwwwxxwgvfffvwwwwWfuwwxwwggfwwwvwwxfvwwwxxxxwwwvvxwgwWeewwwwxwwwwwwxwwwwwwwwgfwvvwwwgwxwgvwveegfvVEtwWUUxwwgfwwvfwwwvwwfvvgvfUvgwguwwvvwgvwgfvxvwhwwxwwxwwwwwwwwxwwffvwfffgfvwgfvfgVUUuUvVDuwwwwxwgwvwwwffwfgffwvwfvgffffgwvvwgfeexwwwfwwwgwvwwwwxxwwwxwwffffgfvefVwxxwxxwwwvvggwwwwwwwxwwwggffxwwxwvhgvgwwggvggfWVfffeefffgvwwwwhwvwVewwfgwfveVffwwvwwxfggvvgvwvggwwxwwxwwvgwghwwwwwxwxxwwvffgfwwhfffVeffefVffeVVffgfgwwwwwfwwxwwwwxwgfffvgvvgwgwwvwgxwxwwvwgvwwwxwwxwwwvvvwxxwxxxwfwvvwxwhgffxxwwxxxwxwxwwvwwxwvvgxwgvxwgvwffwwfgUSwgfVedetwgwwgwgxggUfuegwwVffffvwwwvwxxwwvgwxxwxxxwgwvhggvvwgvgwgfVfTftgvffvffU5xwwwgwwwxwxwwwvwwgwwfgefewwwxvVevxvwgueewxwhwvfvwffwwxxwwwxxwwwwwwwWVUeUeggvfgwwwhvwffwwxwwwwwwwwwweewxxggwwvffvgwwgWVfgffeefvefWffggfgwwwgeewwfgwTTfvgvwgwwgggvVVvffvwgvgwwxwwxwwvvgwxwwwwwwvvxfeegffwggvfCCvwefVeeffggwwwwgvggwwwgvwwwwwwhggvvgvwvvvfgwwwwwwwuffwwwVfvwwwwwwwwwwwwwwwxxxwwwwWfvvwgfwwwwwwwwwwwwxwwwvwwwwwxwwxwvwgwwwgvwwwvwgwwweUUuwfUffvvwwwwgwxfgVfeufvwwwgvwvwwxwgwvwwwwwwwwwwwwwwwwwwwxwxwxxfwwvgwwwegVUeVefgvwwhegvwwwwvwwwwwwxwvfwwwffgwwwwxwwwxwwwwfffvwwfgwggffwvggwwwwxxwwxvxggffgfggfvvvfwwwwvwwwgwwvwgvvhgxfwfwgwxwwgffwwwwxgxwvvvfgffWVuvffVUvffffvgffffwgeUuwvwfgvvfUVeggfvwwffvwggffvfgwvxwwxwwhxwvwvgxxwgwgxhwgfgvffffWeUvfvwwwwgvfVVUgvgffwgggwvwggffvvwgwggwvwwwwxwvwgwwhgwxwxffVwwwwwwggffwwwwwwxwwxxxwvfwvvgfggwuwvxwxwwwwwxwwxwwwxwwhwwwxvvWgwvwwwfgfgvvgVfuvffeUffWfuvggggveefgwggwwwwwXVvwvwvwwxfgvgvvvfggwvwvwwwwwvwwxwwxwxwgxxxvwxwgVVffvufVggVVffvwwWeVeevvwwwwfvvvwxxfvvgwfwwwvfwwxgwwvwwvwwwxwwwWweUvwwwggwwvfwwwwxwwxxxxwvfwvVguwfvffeVwwwwwxwwwwvfgwgwwwxwxvfwwfwwwhgwwwwwwwugVefVvfUvfVefweewwggvwwvwvwwfUfwwwwggfwwvwgwvgfvwwvvfvgxwwwwwwwwwwwwwfwwgwwxwwwwgeUwgfgfVfuveffVUVwwgfWgffvfwwwgvvvvxwwwwwwwgvwwgwvfwwwwwwwwwvwfggvVvwgvxvgfwwuvxwwxwxxwgffwwfwgvVffewwwxwwgxwgwxfwwwvvvwxfxfVwwwgxwwWwvhwuvfETwwvfFvVfeTuxfvfvgffVfwwxwvvgguvwfffuwgfwwvwwwfvffxwwwwwgwgwwxwvwuwggwvgWwgfgUVVEwgvgwfuvgvefeffUEwgvggfwgwfwgfvfvwgvwggwfwxffVwgwwgwvgfVegwvgvgwwhvwgwwwgvwvxwfgxwwvhxgwfgvvgVegvwgwwgvvwwggwggwhvggwwwwwgxwxvvgvgfwwwfwgvwvgwwgvfvwwgVewwggwvgvffvghwvwgfxhvwwggvwgwwgffwwwgffgvgwwwwwfwgwwwgvgwxxxgvggwgxwvgvffffgvfwwfwwgvfffffggwvwwfwfwwgfvwvwwvwxwfwwvwvwxvfgwgvwfeUvxgvggvghfvxvvwxxxwxwwggvfffvfwUwvfvwwxgwxvhfvwvfxwvwxgvffvwWvggvwwxVwwegGVeVVefUfEefdfeUvwwVewfwwfwVvwewfvwwvwWggvWgevfwVwwvwvfwxgwwwwwhfvwvwwwwvwwefVfwFewfweUfUvvegUvvvgfTfwgwwVewfwgwxxwvfwwwVexhwgVwwwwhwxvwxwwwfgffvwfvwVwxwxvxhwwwwxwxxwwxxvvfvfWggfguggwwwxwwwwwvwhwxvhxxxwwgfvwwgfwVwwvwwggegVevfffffffVWvfdvgvWwvvwfdxvwgxwuwgghxxwgvffwWggfgegwvwwxwhwwvwhxxvhhhxxhhfVevffFffeeffwfggvfdfgggggvgwfvgwvvwfvwvwxwgwvvwvxfxxwvvwggevfwwwwvgvwwggwwwwvgwxwxvwwhhgwwfgfewffvwwwwwxwwwwwwxgwwwwwhvvggvgwwwfwwwwwwvGTVeUfTeUUVvvvVfUffwefggvfVvgwvffVvvfvewwwwvwwgwvwgwgvwwvwxwxxwwwwwxwwwXUVFefVUgggeUfVvffgFeefvvevWfvffwhwwfwxxgwvxgeggwwxwwgwfwwhxxwwVffUgwfwgvvfwwwwgwxwwwxwhwwxxuWVuVUuvfwfgfgvvfggvwwwwwwwfwwghwwvwwxwvgffwgvfVugffwwwffVffVufffUfeWgfUwgfVuvwvUDfUwgVwffvfhvggwvgVueVuwvfUvwgxwwwgvgwwwwfwvvwghwxwwwwxwWD3wgfVeVvefUfVfeVwfgvvwfggwwgvffvwvgvgwwwwwwvvwgvvwvwgxxvwwxgxwGvfFUgffxwUwwwfvvfxwxwxxwhFVUgwVwwgFtfuuuwgxwvfxxwwwwWwwwxvvvxgggVvwgfwwuwgwgwvfffTvgffFvfffvtW5ugffdfggwWwwwwwufvvvwwwvwvfgfxwvvffFvwvwwwxwvwwwwwxWwwwgwwgFfffDBfVgvgwwwwfFvfuefvdgvwwfewwwgvxxwfgwwwuwwwwwWxwgggwwvwwwwfffffgvfvvwfxggwwwggwwfvwwgwhvwvxwgffffvgwwwwfgwfvwfwwwgvwgffwgwgwgwxgxwvhvvwfwwgvwgvwfwwxwwffffwwgffgwwwgwwffgvfvvfvwvxxgwgwwggwwxwvgwfwgwvfwfwwgvwvwwwwwvvvwfwxhwfhgwxvfUfVeffffvwwwwwwwfgwfwwfwggVugvwwvgvwgvwgwwvwvwwxvxwwgwwvgwfXVvggfgvfggvvvfwwffvhwgvvwwwxhfeffewvfgvwwgfffwfwwwwwvwvgvgggwwwXfvWvgfvggvvfwvwWUfUvwffVvgvwvffVVfvVfwggwgwvwwvvfwwvwwwvxgfvffvvvgvvwvwgvffvvgfwwwvgwwvwfwxwwxWUUVfUeegfffVvgvvwvgwvwvgwhWfeffgWgfvgwwwwwwwvvgwgxxxwxwwwwwxgwwwfVexwwwwgwvfvggwxgwwxxwxvwwxxwfwwfgwffffVVxwwwwwwwwwwwwwxwwxxwwgwwwvwvxwwwghxwwuwgwggUvwfgVefufVfwxvwwfwvwguwvgWwfdwgwVFfvwwwghwWgwfguwggxxwwwxwwwwwvwgwwwxwwwgwwxwwvvfgVgwevwewuVWgfdfVVVFVegwwxgwwwgwwwwvvfwgwwwwwvwxwvfwwwwwvwxWeUggfwgvvgvfwwwwwxxxxwxwwgffgweUUDewvggfgvwwfwhfvwwvfwhwfUwgvwwwwwgfvvwwfVefVefUfUffeuwfwwwETwggfUffvwvgUvvgvvvwwwwwgffgUfVvvvwgvwwwwwwwwwxfwwvvwhvvggvVewgweUfUfwvF3dguefefwvgvgwwwxgvwggwgwxxWfwxwwgvwggvwwvghwwgwgVgvwwgvvvhwVvwxwwgxwxwwwxxwwwxwwwwwfevwwgfwgvwxwwwwwwwxwwgvgfwwxwwwwwwwwgfuwvwfwwwfwVewuffVUewVVDfVUfgvwvgfvgfvgUVUfUewfwWefFTwgvwwffvwwgUwgvxwwxwwwwwwxwwvwgfxwxxwwgvwwgVfwxgffwfgwfVUfFTgfwgffUUfWwwwggwvvwwwhwwwwfvfffUevvwfwwfvfxwwwvfwxwgwwwwxwwwwxxwxwxwwxwhwwwwfvwwwwxwxwxxwwwwwwwwwwwwwxwxwwwwwwhgwwwffwwgfvwvwwwwxxwwgfvwwwwwwvvwxwxxwxwwwwfvwwxwxwxxwwwwwwxvvwwgfwxwwwgfvvvwfwvgfffxxwgfxxxwxxwxwxwwxxwgwwxhwgxxwxwggffxxwgVuwfwfxwxhxwwxwwwwgffffwffUhwvwwxwxxwwfxwxwwxxwwgwffwwxwggvgfwwwfwvffVVVffffffUffwfxwgwwhfUvfgfvfUwwwwffwwwwgvfgfwfvfxwgxwxxxwxwwvxwwwwxwxwgwffUwwgVuvwgVVfffUffUxwfgffwvwwgfwwwwwxwwwwxgfvwwwffwwwwwxwwwwwwevgwwxwfwvvwwvwxwwwwwxwxwwxwwxgwwwVffvwggvwwwxxwwwxvwggwwwxwwxvfgvwxggvwwwwwwWgwvUUevggfvfwwvfgxvwxwxfffVwvvwgwwwvvwwwxwfgfwwggvwwvwwwxwvgwgwwwwwxwheUvwwwwwweUVUfvvffvwwvfwwwgwwgexhxwwxxwwwvewggggwwxwwwwwxwwxwegfdwvgwgvwvggwggxxwwwxxxwxwvgfuvWgwwwVVfGwfxwggfwwvwfxwhwxwgwwfwgvVvvggggwwwvwgxvfVvgFfwefTgVVxvfhgVefeuvfvgggwfwggwgfgvgvhwwfvVfgWxwwggwwvvfxhvgvwhwwgxggewgfVefetvvweggWfVgWVVfFvVwxggfvwgwwvvfvxhvwwfvwwwvwvwvvwwggWfgwgwvvwwuwwwwwvfgwxwwwwxxxwxgegvuvvegfgwwwwwggvwwwwwwwwxgwwwwwwwxggffwvwwwwwvWwgwwwwUffuwweUfwwvvVwgWfevvwwwwVvwwwwgVuwwwwwvxhfgvvwvfVwfwgwwwwwwwwwxxxwwwxwgwwwwwHffGUeVevgwfFewfvVFuffvfvvwgwfwvwxffwwwwhwwvxxxxwxwfvwwxwwwweFfvwuwwvwgwgvhwwwwwwwwwwwwwwwxxufwftWgwfeVwxhWxwwgwvgwwfuxgxvvxxxgwwxgfguwwwwvwgwwfxeuggVVEgffdwgwWgfwgVvxgwwvfgwfffhwwgfvvgfuWwwwvfgwggwwhgwhwwvxxwwxhxxFgfvwWVuwwGgfeTgggeUwwwVwVwvwgVvwwhvvvggwvvxwwwwxwwwggfvwwgwwwwvVVVuxwwxwxxxwxgwwwwgfwwwwwwwwwwwwxwwwwwwwgfwwwwwgvvfgfvvVVfwwWEdvVUUuxvwffwwfffwfvwwgUffVUUegfFUtggxwxwvwwgvxwgxwxwwwwwwwwwwwxwvfwwvfwwgvwwwvwgwUfvgfVfwwxxwwwwgwvwwwffwfgffwgwvwgfffffgvwwgfVVxwwgfvvfvffefVxwxxxxxwxwwwgwwwwvgvwwxxwwwwxwwwggwwwwwwwwvvwwggffxgwvwgvgfvvvgwvffgeeffVVfffwwxfvffffffffffvffeVeeVefVfvwxggwwvgvxwvgxxwwwwxwwwvwwwgwwwvwwwxwwgwfgwwfgwwvwveVeefvvvgwwwwwwxxwwwwwfxwwgffwwfggwhgfwwwvwwgwvwwwwggwvwgffwxwxxxwwwxwwggwxwxwwwgwwxxxxwxwgwvxwxxvgxwwxwgwvwwwwEEgwVfUVVugwvwxwwffvggVfUVVuwwgwffgVTtxxxwwxgwfgwwxwwwwxxgwvwwxwwxwxwwwwwgffffvwwwgggfUwwwxwvwxwxwwwxxwwwfvfVewwwwffggwwWfvgwwwwfgvwwefgvwwwvwxwwwwxwxwwwwxwVvfwvvwwwwwwwwxwwxxwwvgwwwwwxwwgvhwwgwfWwwwfWuwwffgvwuggfVFdweUUVeVgffwWfffwgvfeUVUVwfgvgFdVfugwwgwwvfWegxwwxwwwwwwwwggvwwxwgvgwwgfffwgwvfvvwfeUFdVvUWugVUfwvwwwwfwwwwwwhgwvxggvfwgUfefwfxvggfgvwwwfWfuvgvffwgfwfVfvwwwgxwxwwwvfgwwvwwggwwwwwwwwwwwwwgwwwxwxwwwgwwvwwhvvWvgvwugwvveVvfWWfewfVffgvuvgwgfuggftweFVugeVfeWWfewwwvwWwxwvgwwwwxwwwwwwvgwwwwwwgwwwhgwvwwxwwgftwfFVfwugwwWgwvwwgwgwvfwxwwwwwgwggvvwvwwwwwwwwxwgwwwWueVwhgVFUdeUvwvvgwxxwwwxxvhgfgwvwfvgwwvghgvxhffvggvvwwwxxfweVwwwwffueVffwvvfWfeVfeeVeVfeVfeVfwfwwgwWC4eVfefeVveWvvggvwhwvgfvwwwwwwvxwwhwvxwwxvgwwwvvwwxwwwwTEwwgwvgwfeVffvvfeVwwwvwwwgwfwwgwgwvgwvxwwxXgvfgwfwwfwwxwwwvwxwgfggewffwvVwgvgfVfvwgxvxwxxwwvggxxvxvWwvwxwwwwgwxwwvgxxwgwvfggvhvuwvfwvfwwwwvffevTEvvVgftwfEVugWuvfgWVeEwgvwfffugvfVuWfVEtwwvvxxwuxgWwvxxwwwwvwxwxwvwwvwgwxwfwhgvfgvffefhxwwfwvxgWvvgwfVwvggvgxwgwfgvfgfxgggwvgwvgvwfewfwwwvggfeVggwffwfeVvwwvwgwwgvhwwvwvgxggwgfxfwwwwvwvwgwwgwfwxgvwgvwvwwwwwvwvvvgfgvfgwvffwwwwvfggfwwweVwwwvvvfgfffwffgwffwwwvvwffffgvxgwfwvwwwvvgvgwwvvgwwvwwwxxwvgvwwvvgwvvwxvwhfffwfgwwwwwvvfgvvhwwwgffwvgwgwvgwwwxwgwvfgwgxwxgwwvvvweVfewvgfuWfwffvfggxwxwwwxwxvggffwfwvhwfwxwwgffvgwgxgwwgvfffWvgVvWgwfgugwGgeVVeEVfUfeFfVEfufwffwfwUfUfeEfVfuggwVgwvwwuggvWwgwvVwwfwwxvgwwwgfvgwwxwgwwxUfewweVwfwgwfgugwgwgxwVwwwhvweVvfwwwxwwfwwweVwwwevgwxwxwwxwxwwwWVUvvfwvfvwfWefVVxwwwwxwwvwwfvwwgfwwwwwwwwwwwwxwgfxxwxwxwxwwfgvgwfwwfwwvvwwffvgfweVuvfffUfVfVeggfwgfUefeuwwffgffgVwfVfUUgfwwxwwwwggwwwwwwxwwwwwwwwfwwwwwwwwwgwwgfwwgeuwwvwwwwwfvwgwwgfUfwgwwgvwwwwwwwwggvgvwwwwwfwxwwvvwwwwwwwgffvfvfgfggfvvvfwgwwwwxxxxgwxwhwxwvgvwgffvwvggwwwvwwwgwvwgvvvxggwgvhgvwvgffwffvgfgfvwvvgwfVUfgfWVegfffffvfffvgUeewfvwwwffvfUVuwwffvwwwggwwvffgwwwwwvwvvxhvgwwxhwggwvgffvfVeUwfvvfgvwVUVffgwvwwgggwwvwgfffwvgwggwwvwwxgwwvgwxwvwwwxgffWwwfvwvvfgggwwewwxxwwwxwxwwgvvgfwwwwxwwwwwxwwwwwwvwwwxwxggwWfgwfvvvvgggwwfefvUgvfeVffueffWffvfeegWfUfffwwvVVeeewwwwwwvwgvvvghwvvvwgxwwwwwxwwwhwxwwwxwwwwvVVgwvvfggwVVwwwvggwvwwwwxgvvvfwggvfgwwxxvwffwwwwgwwwxwwvwxxWvfftgfefwewwwwegVtwwxxwwwxwgwwggvvwwvhvgwwfvwwfvwgxwgvvwwwxwvggewvfxwfggewgxfggegfVvfEwgeftVfufVuwfvVfeFgVvgefVtvvVgugguVvxgfwwgwwvvhwwwwxvwgwfwfvwwgxwfxxgVggffeVwgfvvfwxvgwvgggwggfgvfxwxwgvwVxvgxwggvgwvwvwvwwgggggfuggVfwVwvVgfggxwwwwwgwxxwwwxxxwwxvwwVwwgwwwwwvwwgwvwwwwgwwxxwwwwwwwwxwfvfgffwfgwffWwgwgwUgfVwvWeVwwwvfdeVTeevfgwgVEgwwfffEgffxffwwgwwgwwvwWwwwwwwwwwwwwxxwwgxxwwwwxwwxxuggefuwvwwwfUwwwwgvVwwwwwwxxffvwvgxwgvwwwxxxwvfvxwwxxwwwwwWdfvfWgvFVevgvwuxxvwwwwxwwwwwwwwwxxWwwwfvgwwwgwufwwwxvvfvuwgwwxxhwwxffwegwfWgfvwwwuwgVVwgdfFfgfUugwgdUewwvfwwwdUeUdvWegvwwwggwwwwwfwfwwwwxxvvvwwvwwwxhwxxxxefuwvfwxffvfvfwvwgwvghwwfWvvfwwxwxgfwwwwvvxwwxxwgwffffffffvvgfwwwggwfwwwfwvwwwwfxfxwgfggffwwvwvwwgwwfvwwgvvwfwvwvhwwxfwgwwhxvvwfwvfwwgfgfwgwwgffffgwgffwwwwgvfffVeVeffvwfxwgwgwwgwfwwwwvwwgvwwwwfwfxwwwwwvwwwvxgvwfwfxxxxgxxfgvvfwfvgvfgvvwxwxwgwvgxvwwwgvgvvwgVuvwvwwvgwgwvwxxxwwvwwffwVVvwfefffwvufvwhwwggfwggwhgwhffvgfvgfgggwwxfvwgwfffwwwvfvwwwvgwvgxXfvgefgffvwvgvvvwgWUfUvwfffugvgwVeeUfUUVgffvwvgvwvgfuwgvwgxfwfgfvwgwfwhwgfgfggvfwwwfwvwwwvwgxwWVfffgfVwvggwfwwwwvwvgwwgwwWfgffwwwfVwwvwufwwggxwwwwwfwwxwwvxwdgfEdVVufFtwwweweVvwwwxxwxxvefvgWwwwUxvfVgfwxwwwxwwwwUwvfwwxwxwvvfVfggfgfvfwgwvgffVdggffFvfvfFvD$gfffdWfffFwwvfFwgweVxwggfwggvwwvwgwWwfwwgxwwwwwwwgwWxfwxxwwwfFggVUcggvvfwwwwgwWwvvwwWwvgwffeggwwwxwwwwwwuggvwwuwvwwxwxwwwwwvgvxwfwxgwwvfffvwwwwxwxxwwwwwwxwwwggwxwwxwwwgwxwxwwwvvgxwwxwvwwvwwvvgwfgfUwgVUcVFtwggfwgfwgffuffugvffffETUxxwfxgwvfwxxwxxwwvxxhwwwwxhwgwwfxxVfUffvwwwfVWffwwwwxwwwwwwvwgwwwwwVvfeVwwvgfVvxwwwweVVwwwgfgWUVUUvfgxvwxxxxxwwxwggffgwvvwwxwwxhwwffwxgwwwwwwwwwwVVgwfvvvwffVVwgfggeegvfVVffufVggwfffeegvfVVgwwwv44vffefVwwxwwgvfgfgwwwvwwxxwxxwwggggwwwwwwwvxggvfffvwwgEEwwvwgVVvgfvvvwwgvwvvwwhvwwwwwwxvvvfgwgvhggwwggwwwwvevvwwwVfgwwgvvwwwwwwwwxxwwxxwwwxWwwvwgvvxwwwwwwwwwwwwgwwxwwwwxwwxwwvwvxxwgwwwwwwwwwgwweeVugWUegfvvfwgwwwwufVUevVvfvwwhVevwxwxwvwwwgwwxwwwwxwwwwwwwwwwxwgwxxwwwvwgUfwgvfvxwgfWvwwwwgwwxwwwxwwgfwwvffwwwwwwwwxxhxwggffwwgffVewfffhwvxwwxwxwwwwgvwffUwwwxwwxwwfxwwwwxwwwgffwwgfvfvwfgfxwgvfffffVffVVfUfgfUvwgVuwggfUffgffeehwgfUfwgwwwwwwvfgfwfwxwxwwwwwgxwgwxwxwwwgwfxwgwwhfUgfgfgfUwwwgfvwwwwgfvwwwwwwwwgfvwwvffwwwwwxwwwwwwwwfuwvgwwVgfvwgfvxwwwwxwwwwxwwxwwwfvwvwwwvxwwwwwxxxxwwvvxwxwxwwxvvfvwwggfvwggvwwfWwgVffuwVeuwfwuwgxweVwwwefVeuwfWfuwwfggvwwwxgwwwxgwvwwwwxwwwvwwwwwwvxwwhvvwxvgwwvwfvugggfwwwggwhwwvVwwwwwxwwgVwwwwvvxwwvgwxwwwgwvfwwxwfgwwwwwwwxwxxwxxwvwwwxwwxwwwxwxxwwwwwwwxwxxwxwwwxwgwwwwxwvvwwgfvwwffwvwgvfwwwwxwvgfffffwwwwwvvhvwxwwwwwxxwxxwwxwwwwwwxwxwwwwwxwwwffwvvwwxwwwwxwxxggvwxwxxxwxwgxwgwfwxwvwwgfeVuWVUgwfwfVUugfwwwxxwxwwwvxwxgvwwwvfvgvwwvwwggfgfxwwgxwgvxwwvwwwvxgvgfvgfUWfUwwfVewwfffVgfUfffVegeueVuwfD3vVVvgfVvgvfVuvfgfeewwhwfgfggfVuwwwwgwfwwxwwgxwwvxwwgwwgwwwwfVuwffUwwfwgfVwfVEdvfvfwewwwfvfxwwwfwggvwfwwvvvxxwwfwxgwgwwwwwwwxfgffvfgffwuvfgWwvvxwwwwwwxxxwfgvwxvwvWxwxwwwwxxwgwgxwwxxwwxgwfgfggfggevfwWgwvgeVefffffvfveVffFfgVfeVfefFwfwvfffvvfgvvgvwwgvwfwgvWwvggwwwwhwgwhgwgfvxvwWvgfftggwwWgvfFwvgvwhwggvwxhggvgwvggwwwxhwxxwggvgwvvwwffewfgwweffvfggvwwwwvwxwwxgxxwxxwwwwgfvwgwwwwwwwwwxwwwwwwwxxwxhvvwvvwwgwfwwvwvwwVDeVUVVUVeVtggFUVUVfVVwvfeVdfuVgVfefVvffwwxfvwwwwwwwgvgwwwwxwxwwwwxxxwwxhfeVfweVgvvffuwvwVgfufgvfgvwWwfffgwvfgwwwxvVgwfwwxwvvwwwxhwxwwgWVewwwwgwwwwVvfgfxfwwxxwxwwxwwwxgwxwvwffwwwxwxgvwxwwwwxvwgvvgWUUfvwgggvffvUVewffgfffeveVUVvxwwwwgffvvwwfvfgvfvVgwUVevvwwwggfwffffffvwwwwvwwwwwwfwwwwfgvfwgwwwwxwhvwwwwvwgvvgwfwgwwffwvwxwwxwhwwwxwwwwwwwwwgvvwxgwwvwwvwggfwwwwwwffvfwVgxggxwwwwxxvxhwggwwwwwwggwvwwwwwxwxfgfGftgwvfWwfVwFeFvvuWvvggftwgffvxwgwvgewegvwwgvggwefFeggvfvwwuWWffwVggwxwwwwxwwgwgwVwWvwwwgggwvxhwwwxwwwXvwwxwxgwgfgwxwwvggwwvwvwxwwwwvfegwxwvvgwwwxxwwxwwUfwwwgfvwwwwwwvxwxxxwxwxwxgwwwwwxwwwxfwvwwguTUwwwWfuWfvfwvwvwWefgvfEUvwuvwwffwwwwwwggevfwuvwfwvwvuvwwwxwWgvgwwfwwwwwwwxxhwwefvwwwwwwwxwxvwwwwwxxfwwwuwwfwwwwwwwwwgvgwwwwwwxxhefwwgxxxxwwwwxvwwvugfvwwwgfexwwwvgvwxwwwwxwxwxwwvgwwxwWwwwxxwwwxwxwwwvwvwwwhwVguWVexwffffhwfgVUVfwffveUggfgfUfvgfvwwwgwgwgfwfeVvhvfwfffgVfxvfwvUxxgggVwvwwwwwfvvxwwgfvwvxxwwwfwvgxgwwwwwwvwggfgwUfwxwgwwvwvwwwwwwvvwxwwwwwgwwgvwwvxwxxvxwggvfgfufffggfgfgUfvgvgwwwvwxwwwwwxwgwwvvvvwvvvwhwwwwgggvwffgvvgwvgwwwwxVdeVVgwWfggUVvweVffgwFgUVeVwwwwwefwfvewggwgDUfweVfuffvfvgwwxfffVVvfdfgwvvwvwxwgvxxxwgeggwwwwvwgvvvxwwffvggvwwwxWefgwvwwffvwwwwgvvwxwxwgxxwgvgfgwwxggwwwwvvwwgdffwgwwFUefggfvwwwvwwwxgwwwwhwwffgwwwwwgxvwwwwxfvgvvwwwxwwxhxwhTUgfwvvVUeufWfffwVgvwdTeVgffwfwwffwwwfwgdUFfVugfwvvwgggwwhwwwUfgwgvvgxxgvwwwwwxufgwwwwwwwxwxwxVwwwwwwxVwWUffwwwwghvgxwwugfwwwwwxxvfvxwvwwxhvvwvgwffvgffgwwffvvgwwwwvgwwwvwxwwgwggwgfvwxwffwggwvxwfgwwwwwvwxwggwwwvvfffWUuwgwUUvvgwwggffwwwffwwggvwffggfggvgvvvwggwffgwfwwwvwwVUewwwUUvvgwwvwwffwwwwvvvvhwgvvgwggwwwwwfffwwvwwwxhwvgvwgwxvwwgghvwvwwwwfvxwxhhxvwhwwwwghwefefgVVvgfwwvvwefWwgvxwffwgwwwfwxwxwwvwxhwwgvvwgwgwvwhgwwfwwgwwwfwgwwhwvwwwgxhVVefUffffffffgwvggfffvwwUffvfwvgffWfvefvwwfvvwwwwWfgvwwvgwhffgvfvgffvwgwwfwgUfvgwwwvwgvvwxgvvgwwwxhgwgvwfwwvxgvvwvwwhfwwwxwwxhvwvgwvwwwxwvxfgxwgwxgwvwgwffwhgfgwvwwvgwvgwvwxwwwxxwwxxxwgwwxxwwxwwxxxwhgxxWgeUvgvgffgwvgwvwvVfUVUufgffvuveffWvfgfWgwufwwfvwvgfuvwvwgvvgwwgvvwwfgfvvwwwhgvwwxwwgwfgvvvwxwwwvwxwvgwwgwfgwwvgwwvvwwwwxwwwgffwfgxwwwhxwgxwxwvgwgwgwwxwwwxxwwwgwwfvgvwwwwwgvwgvwwxxwwwwxwwwwwxwxwwwwgwxwxwxwwwwhhhgwwwwwvwwvgfvWUewgfxffwwwvVfVuwVVggwgfffgfffgfwfwfffewwwwggwgwfvfgvfvwffwwvwwgffgfvvwxwggwwwwgfgwwwwwwgwgvwwwwwwvfvfffwwgwxvwwwwwwwwgvxwvvfgwxwwwwvwgwgwxwxwwvwwwwgwgwvgwutgvWfegwwWFewwxwvgwwwwwwwgwxxwwwvgxwgfgwwwwwwwwwwwwggwxwxggvhfwudffVeUfwvWFUwgfwgVgefwwWUVfwwwwvWwUevwwwwwVgxxwxwgffgfwwwwxWvvfwwgUfwwvwvgwvwvwwwvgfwxwwwggvgfwxwwxvwwffvvwwwwfwwxfwvvwwwxfvvvwwwwvfwfwxwwvvwwvxxwwwwfvvwwfeuggfwWfvwwwfvgwwvwwwxgxvwwwxggwggwwwwfwwwwwvwwwwwwwuwvwwwwxxgwWudTVggvGVevfweewWWFVgfffefffwfegdefvwVvvwuefgevwfwvvwgwwfxgggwgWfwwgefvfwvwvwwwwxwwgTfvfwwxwWwxfevvwVvfgvvvwfvwvxvwwwwwvwwvwggggvwwwwwuxwgvwwwgwxwwvxxhffwvevfvfvVwgfgwwwwwwwgwwwwwgwwwwwwwwwwwgwwwvwwxxwwvwfwhxxwwwwwwxwgxxwUfVeVeVfvVgffwegwfUffVwfffewfgggefuufgfvwwfffwwggvwegwgggwwvgfvfgvgvwwwwwfwvgUvgwggwfwvwwwwvwwwxxvgvgwwwwwwwffwwwwwwwxwxwwwwvwwgwgwwwwxwxgwvwwwwwwxevvggeuwggvwfvvvwwfwwwgvfwwvwwWwxwwwxxhfvwffwvwgwwwxxvwgxwvxwwvwwwwwxwwxwwXUdvVEgeEvUegffvwwWUfveffdVVevwvWefFfeVfggwdVUevffgfvwwwwwwGVvfevfuwwgvwxgewfvfwVwwwvvvvuwwwgwwwwxwwHUuWvffgwwwefvgvwwhfvwwwwwxWggfgwwwwVwwwvxwwfwwwwwxwwwwwxhWwwwVgffvwgVfeuvWvfwfvwgvwwxwwwwwxwxxwggwvvwvwfwgwvgvvgxgvxwvhwvWvgwgfwfgvfxDgfUdfvgeUtwgwgvUfdVUVVVdwgvfwvgVEEwvWwgWeffUffffevgwffguwwwuUwfVfewwfVguwVfgwwwwvwwwwgffwffxwxwwwwwVefvwgfvgxgfffVgvvwgwwwvxvwgvfgfvwxxwwxwwwfgvvggvwwxxwwxwffvgVfuVfVVefwfvVwVvwvfvfwvgwwfgwwxvvvgggvfWwuwggwuvweugvwwvVfwfwWwWwwgwuwuuwvxGVeUfUVUgwvvfgfffeUEVUvwfefgVuvvfeVVgfETVgfwgwgvvfffvgvffeuwVfeeuvvVffgvfwvvfgvfffggvvgwgvwwwfwgwwwgwfVffufeVgwgugwwvwwVfvwwvwwwxhwgwfvgwfVvwvfgvvgxvxxxxwwwgwxgwWefffeegfVfeevwgfevfwwwfgggvfwfwwfwvwwwfvwfgvfwfwfwwfvwfwvggwwwwfhwwwvwvweffVVfUegfvfVvfwvVUVfegwvgfggwwveffUfevffgvwfggwwwgfwvgwwwwweffegwwwgwgwvvfwgfwvvvggwvvxgxgwfwvgxgxwefgffewvgggvvvxvwwfwwgwwxwwvwvvxxfwugwvwgvggwhxxxwwwfVvgVevwVUfvfwwvwvwwgfwggwxvwwvxxhfwwfwwvwxxxhvwggwgwwwwxxwxXfvwfewvewwvgxwxgfvfuwwfvwwwwWfgWffwggwwefwwwwwwwvvwwwhfwwfwwvwwwwwhwwggwwwwvfwwxwxwwxxgvwgwfwwwwwvwwwwwxxxwhwvgwwwwwwxwwxwxwwwxwxxgxwwwwgffwwwfwgfffwwwgwwxwwgwwxwwwwxwwgvwwwxxxwxxxwxwxwwwxxwwxgfUUxvwwwgggvVewgwgvfggffffVUvfwwgvffgfggvwgfwwwgwVeffwwgwvwwwwwvfggwgvwgwxxwgfwgwvgvxgwwvwhwwgwxwxwwwwfwxggvgwhfvfgwwwwvwwwwwwxxfvwxwvwxfwwwwwwxwwwhxwwvwwftVvgggWgvvfWdvwewwvwwwwxwxwwwwwwwwfgvwgwwgffvwvwfggvggwwwxvvvfvgvgggfwwVceuwwwFffuvgTegTfGgvffwcEVeuvwwevgwwffvWvdfffvgvWSegTVvggggwwVVgefWeugvwwxxwwwxxvwgvuwvguwvggVgfvvgxweggwwfefvvwwWfevwvwwxwwwwwwxxufvvxVfwhwwwwxefuvhwxXghwvwfVfwwwwfeuwwgfwgvghgfwvfwwxwwwwwvvxwVVwwwwwxwwwxwwggwwvwwwwwxVgVVwwwvVTtwwVVvwvffvffeeffffgfegggwgeuwggffgfwfuwgwvgvffwgvvvfeuggEEwwfxggxwwwwwggWfwwfwwxwwwwxxwgwwwvvwwwwwVVwwvwgwwwfvwwwwwvvwwwwxxxwwwwvvgwwwfvwwwwwwwwwvwvwwvuVvgWgvwwgUwvwwwxwwxxxwwwwwgvwwwwwwwwwwwwxwxgwwxwwhfeWfhwwWffvggUvwvfWvvVfuvgWUvvvwugwwwffxwwvfWUvvvwfwwgvvvggwgwvwwgfvwwvwwwwwxxwwgwwwwwxwwwvwxvvwwwvfwwvwgfvvvggwwfwwxwwwwvwxwwwxwwxvfwwwgvwxwwgwwhWVwvgWffwwxgfffvgvgwwvggwwwxwwwwxwwgwwgwwvgxwwwwwxwwgfwwwwxwwwVfUVvvfvefewfeVfwfffwVfwVgVfVwfwegVuggfvwwVffgfwvffWwwfwwwxwvvwwfvuwwggwvwgwwwwxxwxwVVwfwwwvwxvwgvwwwxgfgggwvvfgwvwwwwwwwwvxwwxxxxhgvwhwwwxgwwxwwvwwfwwgwwwfgwwwwwwvwxxwxxwgwwxxwwwwwwwxffwgwxfwvvfwwwwggwwvvvvvggwxwvvgxwwwxwvggggwwwwwwxwwwfwwvwwwxvwvfwvwwwwhwwwvwggwxwwxxwwwwwxwvwwxwwwxxxvgwgfwfUwwwwwvwwfUwwgvwwwxxwgwwwwwgvwwxwxxxxxwwwxwfxxxwwgfgUDvffvvgvwwgfwwgvVEtggvfUvffffgvfwgffvwfvwwvgfvgfUwgffvfwwvvgvwgvwwwfgvggwvwwwwwwwvwfUwxhwwwxwwgwgwfwwwgvgwvwffwwgwwwxxfvgfwghgVewvwwwwxwwwvhggfwwxxxwvxffwggVvwgfwwewvfwwwwxgWvggxwvxvwwwxhfwxfwfwwwggwwwwvwxxwxhVvwffwwewwvvvwwwwgfvguwvefvgwwxWvwWfgwwwwwvfvwxwwvwgwwxhewwfwwufvgvwWvwgwwwwwwvwwwxwwwwwhvwggvwwxewwwxxhwvwgwwxxxhvwwwvwwwwwvgwwwggwxwfWvwvwhfwgxwwgxwggwxxxwwxvvxuwgwvgwxgwxxxwxwvwxxwxxwxxwVVwfvvwgufgffwxweugWVfgwvvuwwwVfvwwgfvwWgvuvgwwgwwxxwwwwvvwgewfwvfwwwgwwwxwwgwvwwwwxxxwwwwVgvgwvwwgwwvewxwvxgwwvxgvwwwwxwwxwwwgwwwwwxxxxwwwxwgvwwwwwwwwffwwwwwxwwwffxwwwxwxxwwgvwwwxwwwwffwwfwwffwgffF4CtxwxwwfffxwwwgffvwgffVffefxwxwwxwwwwffxwwwxwxxwwxwwfffxwwwWffuwgfffffffwwwwvfgwwwwwwfUfwwwwwwhgwwvwwgwwggfgvvfvwwwhgwxywxgwwggvfggfgwwwwxxxwxxwwwxwwwwwwwxwwgfffgwwgwvgVvgvfwvffVhuVffevvwwvgwffvfgvggfvfwvgwfvewfvgwwgwwggwfegvwvwxwxwvwwwxgwwwfwvvgfffwgvggfgfwvvwfgewfvvwwxxwxgxwwwwwvxwwwggwxxgvxwwwxffvgwwwwwwgxvxxxgwwwwwwggxxxxxxggfxwwwwwwgxvwxwwfeffvgefVewwwwwwvwgvVvfwwwwwggvvwwwwwwwwggxwwxxwwwwwwvwgfggvvwwwwWfgwwwwwwgwvwwxxgwwffTTwggWWfwffwwgwwwgwwxwxxwxwggffggffvvgvwwwwwwwwxwwwvvwwwwwwwxwwwfVUUwvggVVvvfgwvwweVUeVUETTTeFeeveegWVwvufWVdevFWvffWgegwvwvvggggggffvvwvgwwwwwvgwwxgvvvwwfgwxwwgeefgfgfgvgfeUvfWfffeWveWfvgvwgwwgvwwhxvgwvwxwhgwwwvewvvwwwwwwwwxgUUevwwwWffwfgwgwvwwwxhwvxWvwvgfvfgwwwxwxwwwwwwwwwwgUUfuwwwWggvfgwfwvggvfTDEdfVfefggfffwwfwgwfUVfVfeffvvwWfevwwwxVufgvgvfgwwxwxvgwwxwwxwwxhfvfwwvgwwwUeVfVVfffvgwWVfvwwfgvwwwwwxwxwwvwwwwwwwwwwxwxwwxgwxWgfgwwwefvwwwwwwwwxwwwfwvwwwgwwxwwxwxwwwwxwWgvfwwwefvwwwwwwvgvfVUuvfeVfvfgvvxwwgwwgggUUfffgwwwvvgwwwwwfwvwwvwwwxxwwxxwwwwwwwvwxwwxwxxwwgfffvfwxwxvvgwwhwwwxxxwvwxgwxvwxwvwwheVUegffwvvfggggwvwwfxwwwxwxxxgfvfwggwWVvwwvwxwwvgwwxwfggwwwwfwgwxffFEegffgvvgfggwvvGfTTfeTUUUUedUvVfVvfUeVgufgffwefgVfvgfefgwvWffwwwgggWvvwwwwwwwwwxwwxwggwwxwwxwwwwwweffevdVVvuwVgWvvgWVvegwTgfwwvvwwwvwgwvvwwwwwhwwVgwwxgwgwwgwgwwwVvefwgvgggvwwwwwfwgwxxxxxwwwgggvvwwwwuwxwxxwxwwwxwxxwxxwVvfVvwwwgvvwfwwwfweVfVgfffVvgfffvfffwfwfffwffwwfvfvggffwvwwwvwwvgvvwwwwwuwxwxwwxwwwxxwxwvfggwfwwVwvvfwwvvgwgvuvgvvgvwwwwwwwxwwxwwxxwxwwwwwxwwwxwwvwwwhdEfVfuvvfuwggwgfvwwwxwxwxxhvwwgvWfwfwgWwwwwxxwwwgwvwvxxwxwwxghdUVfvgwfffffwvgfv7UeVcee5EevvefWUUgfgffVUgVUegvvwWgVUuvvwxwgffvfffwwgwgWwwwvwwwxwwwgwwwwwwxxxwhUfffguvfdgUfdwwfwVgfFvvgwhhwwvwwvgwxxwvgvufwvfgwxwvwhwxwgxvVVfwwwwwwggwgfwWwwgwwwxxxwgvwwwgwwgfwfwxxwxwxwwxwxxwwxxxwvVfewvgwwwwwwfvwWwfeefwfWfefffffwgwvfgfwwevwvwwggvgffWwvggvgwvwwwwwwffvwfwxxwwwwwxxxwwxxxwxvgvvfgffffwgvwwwgwffgfffgfwwwxwwwxwwwwwwxwwwwwwwwwxwwvwwwheddvfwwfgwwfwVgwuwwwwxxxwwxxhVWgwgwvwfvehfwxxwvhwvwwwwwwwgvfedeeffgggwvwgffwuW5VeefvSSdeufVguuffvVfvFfuevvwwvhEfgdvwfvfvwfvwfvfffgfwwwwxvwxwwwxvxwwxwwwgefVfvUWvUevevfvwgXUUWUvwgwwgwgwgwwxwggvgWfwgwwwgggwxgwhwfVUUvgvvfeegwwvwwgwgwxwwwxxxvfffwvvggggvvwxgvwwgwwwwggfwwwvxwghwxvffEEugfvwfuggwwwwvfTTTVUeUUVEVedVFegufffuVwVVgVgWdvWggugwvgwvffvvvvfgggwvvwwwwwwwwwwwggwwwwwwwwwweUVwffefeWgfVfgffugffwfgfugvwvwvfwwwvgwwwwwwwwgfgWwgwgwwwxxWeeUvgwfWgfwhVwwvwwxxxwxhwvgWgvwwwvvgwwwxwxwxwxxgwwxwxWeeVewfwWgfgwgwwvFGffVVeffWDtvffeffwwfUwgwvfgVffeufvwwgfeuwwwvgWwvwwgfvgwwxwwxxwwwwxxwwwhfffwweVgwwvgfVfVfefvwgVfuwwxwwvwwxgfxwwwwxwwvwwwwwwwwwwwhwwxwFVVVfvffffvwvwvwffwwwxxwwwxxxfwwgfffgfwgwugwwwwwxwxxwvwgwwwwwxwxwFVfFfwvWwefgWwgffSUT3feUeVvfgfueUUfgfveWUUWUfgwwvffvUexwvwwgfwfVwvwwwgwugwwwxwwxwvwwgvwxwwwhVdVfgfveGfVfVwgvvvgWvdfxvwhvwgvefwwxxxxgwwgxwfgwwgwhwwfwvwheuvggwwVggvwxwwwxwwwwwxhgwxgwfvwwxxvwxxwxwwwwwxheugggxwVvvvwwwwwxWVfveVeuffUvwwgeffwwvvwwweffUvvwvvwwwxwwgwffwvxgwxxwxwwvwwwwwxxhvfwwwvwwwvfgfvwwwwvwxwwwhwwwwwwxwwwwwwxxxxghxwfgfffvVvwgwwwgvxwfghwxxwxxffgugwvwwwghwgxwgxwgwwxxwwhxhwxfwvwwwfvvvwfvwwgfwwwueffhWfffgVwwgfgfffvffvguwvwfwgggvgwfwggxwffgwggvwwvfwwwwwxwwwwwwwwxxxwwxwwwfvffffgfvguvgwfwvgwggwfwvgwxwwwwwvwwwwwwhvwxwxhwwweeuf7GwwWVVuuwwffvwwgeewvxwWwwxwwXVeWvwefvwwwxwuwwwwwwwwwuwxwxxH7wwWfffuwwuUvxwwgcUUwwVUuwwww7VeGUUffeVfvVwxwwgfffexxwgVffuxwUguwwwxwwwwwwxuwwwxwwwwHff6UUUgeefffvxhWeVfuwwwwWwwfwwwwwwwwwwwwwfxwwxwwwwwwxfffwgwwwvvwxwwvxwxgwwwvwvwvwxwwxwxwxxwwxxwxxwwffwwgwwwvwwxwwvfffwwfffwvwwwfgvffwgwwwggwwgxwwwvwxwxwwgwwwvwwxwwwwwxwwxxxwwxfwgfvfwvwwgwgwvxxvwwwxwwxwwwwwwxwwxwwwwwwxxxxwxwwwxvefwxwwgwvwwwfwwwwvxxwwWwwwwgfvwwxxwxwwwwxwxvufvxwwggwwwwfwwwgfvgVevfVUevfwwwwgwwxxwwhffwvvgwwgvfvwwxwwWwwwwgfvwxxwxxwxxwwvwvwwggwwfwWUewvfgwwgffvwwgwxwxwwvxvxgwxwwwxgwxwffEEwwffvvfffggwgvwgwhwwxwxxxwwvvwwWffVgwwvwwwwwwwxwwwggxxwwwwwwwwwwVfUUwvvfwvfffggwggfUUEVdeEEUUVVdgfgevfefvgffVgfgfuVUWgegfevgvwwvfwggfVVvwwvwxwwwgwwxvxgggxvgwwgwgvxwWvvfeeufWWffVggwveFWvefutwgvwwwgxwvvggwgwwvvwwwwVvxwwwvgwwwhUUevggVfvwgvvgwvwxwxxwwwWgwgwfffgwwxwxwwwwwwxwwwwhUeUvwxWfvfvwefwvgggfTVedfFDevfgvfgwwfvwwweffeVfeVevwvWfevwwwwwVgvgwfgggwxwxvwxvwwwxwxwxxxxxhfvgwwffwwfffeVVfVfuwgWVfvwwwgwwwxfvwwwwgwwwwwwwwwwwwwxxvwffwwwwwwwghxwwwwwwvgxwwxxxfhwfwwvwwwwghvgvffuwwfefUfhwwxwwwwwwwvfggVwwxwwvfgwwwwvwwwvgwxwxxhwwxwwwwwwwgfvfgwwxwwgvVwwxwxxwvgwxxwhfvwwvxgwwwwwwwwxvxgwwwwwwxwxwxwwwwxxwxhfvgvvwgwvwwwvxhgffvvwffvvwwwgvgggfgwwxwvfgwwwwxvwwwwxwvwxgvwwwwwxxwxxwxxywwwwwxwxxxwxxhfwgvfwgwwfwwvwxxhwvwwwwwxwxwwxxxwwwwwwwwxwwwwwwwhfvwwFGffvxguVfffxxvfwwgxxvxgeffvVxfwxwwfxxxGFffvheegwffxuugVRDUfwTEfffFgehfGVvETVFeffxfUfvgvheffwegvhwfwxwGffhgxGffTEfUfegVdegvvwgfwwxhfvhfffwvxxfgvwwgeTVvfwwfwvfgffvwuvwwxxxwwxxxxxhfvfgwgvwffvfvwwwwwxxwwwgxwwwxwwwxgedFfvgvgwvvwwewwuV5TSegfcUVVvefgeVggfFefFgeWwgwvgVfftfvvgxfvwvwveWWgffwxxxwwwxwwxgwwwvgvwhgfVWgfUUVUWefffvwWWeUuvvwwwgxwfuwgwwwxxvgvwhwvxgxhwwvgwvgxxwwxVVvwvvwhvgwwwfxwgxxxvvwguwgwxvvwxwhxwxgxwwxwwwwVVwgvwgvvgxwfwxeevVVfUvfeVwwwggwvwgwvwgwvffwwwvgwxwwwwvvxguwgwwggwxwhxxwxgwwwwwwwVggvwgfvwwWvveVwwffwwwwwxwxwxwwxwwxwxxxxwwwWeUfuggvWvvwwgwvwvxwxwxxhwwfWfWwggvgwvvxwwxxwwwwwwxWeeVuwgvWffwwwwvwvFGffVTDfvVfufgffUfwwffwwvffffefeugwggfeuwwgfwVwgwxfgvgwwwwxwwwwwxwwwgeVewwffwvwfgffeVfewvwwgVfuwwvfwgwwwwxxwwwwwgwwwwwwxwwwxwwhxxwwxwvfxwxxwwwwvfgfxvwxxwxxwwwwwwwwwwfgffgxwxwwwwxwwwwgwwwwwfggfvvgfUwwwvwwffVVUwfwgwvwvfgffewwwwhggvvvwwwwffwfwwgVVUVVwhwwggvwvvgVUUxwwwwwwvfvwfUgvgwfgwvfffffvvwxvgwwwwwwwvffvggwfVVUVfxwwfwwwwwwwwgfffgwwwvwgffvvwffvgWeewwvwwwhxgwxwwwggWxwxwxwwwwwwwxvwwwwxgWwxwxwxwvwwxfhwxwwwwhgwefwfuvgwgwgfvVfVewwWxwgwuwgfgwwwwvgwhvvfwvwxxggwgVfVuwwgfwgvghwwWVVugfxxwwwwwvfggvwwgggggvehwwxwwvughwwwxwgwWfVuxwwfwghwvwwvvwwvhvgvvfwwgwvvfVfgvwwvfwwfgwxwhvwvgwwfvvwvgxwwvwwwxwwwxxwhvwfgwxgvvwxxxxxwwwgvvwwvwwwwwvvfWwwwggvfVgfwfvfwxvvgvwVWwwvvvwfwxvwwwvgwfWwwvvvfgevfvwgwwwwwwvffgfxwufvwxwwwxwwwvggWvufgwvvwvwvwwwwwhwhgwwfgwxwvwggeefwwwwwwvwvfgwwxwwwxwwwuUWfvwwwvgggvwwwwxvvwgvwwwwfxwwwwfgvwwvwxxwwxwxwwwwvwgwxvxwgwvxxwwwwwwwgwxwfgwxvwwwfwugfvxwwggUwxvweUVewwwwvVgwwgvggvwgwwvxgvgwVvwfUVuxvfwvWgvVfxwfwvgxxwwfUVuvgwwgwvxwgfvfwvxwfgvgwvVwhwvwwgvgwwvwfUVuxwwwvgwvfvwwvwgvfwwwwwwwvwggwfwugfexwguwvgwwwggwvgwhgfgwveVwwvwwgfgwwwwwwwwxwwwhwffvveVwwwwwwwwwgggwvvwwwwwwwgvvwxgvvgwgwfgfeTEwwgvwgwwghwffgwfwwvffvfwvwxwTEwwwwweVguvwwxgWfegwfvWwwwwwwgwvwwxwvfwwwwvffvghveVWwewvwxxfgwwwwweVgvvxwwxgwfggwwvwggxwxxwhggfwwxxwhfgwgwvuwwvuWfewwfeVgfwvgxwvwwxxwwfxwwwwxxwwfeVwfwvgxxgwxwfwVfufwgxgxwheUfewwgFeFwwVfugvVgffVeVffVvvVvgVwfwxugwvwUwEeeFVffvgwwgwwgWwvggffwwWfugvfwxvWxwwgwVfugvgwxwgvwwgVvvxvgwvwffVfuVggwgwwWgwwwwffwvwwhwuvxeVgvvfdfwvvxwxwhwwuvvuwfwwgwgxxfvwwfegwwuvwggwVwwwvvgvxxhgwxxwuvxgegwwwwwwgvwvvfxwgugvwVwgfwwvuvwfgVVuwfweUwwgfffgfewwwgVwwwwwwwfWffwfeVuvfwwgwvvgVeegwvwvggWvwwwvfvgfvWvvefgggvgwvwfwvgvWvffvgffgwvwvfWgvxgffuwxxwwfgfufwvwwvVgvgwfwefvfwwfvfgwxwVwxghfvvVwgwwwwwwwwwwwwwxwwwwwwxwwwwwwwwwwwwwwxwwwwwxwwwwxwwwwwwwwwwwwxwwwwwwxwwxwxwwhwwwfvwwwwwgfvwwwwwvwwwwwwvwwggggwwffwwvvwwxvgxxwwwxwwxwvxwvgwwwgfvwwgwgwwgwwvwwwgfvwwgxgfvwxwgwwxxxhffgwwwxwwwwwxwwvwwwwgxxffwwwffwwwwwwwwwwxwwgwwwwwghghwfggeWxwwfwuwwvhwuvggvvwwgvwwwgwwwwVguwxwfwvwxwwxxwwwvgwugxwwwxfwfVvfwvgfwwwgvefvWfvgfvfgwgwvwwvVxwgwwWfvvWwgfvgwwwuwwwwxwvfwvWgvwwwgwffhwgwgvwwgwwwffwefxwwwvfvxwwvVwwwwggfvvfwgvvgwwwfwvwwwgffgfWfvwwxxwgfwwwwWwvgwwgwwwwwwwwxwvxwvwgwvwfwguwhwvxxwgxwwwwwgwwvxgwfgfwwxwgwwwxxgwwwgxwwwgvvfwgfvwgfwwwfWeFwgfwwwvwwffvxfwgwwgUfDwhwgfvgggwwgfvxwfwwxwvwWeFwgwvfwfwffwwwgfWvwwwvWvfwwwvgUfDxwhwxvwwggfwwfvwwvwfgewwwvffgUffwxwwfwffwfwwfwwxwwwvgfwvfggwvvwwVVwxwwwggwwwgwwffwwwwvfxvvxwwVVwxwvxgffvwwwxwggwxwggwwwwvvfgWgeewweVwwwvwggvgxwwfgwwvvwwfwVevffwwwfwxfgeeegwWgeewvgVxwwvvfgfvfvvxgwggxwwvggwwvwvwwwwhguvwgggwfwwwgfvfuwwgxwuwgggguVWfvxwwwwwfxxwwwVwwvwwvwvvfwwgwggwwvwwgwwwxwxxxwvwwwwxwgwwwvwwwgwwwvvwgxgwgvffvggwgfwwvwvvgggggvwwgvvfffggwvvwgwggwwvvgfvhgwwvxhxxgwvgxgwgwgwwwvwvwvwvwgwwxgwvgwwwvxwxwgwwvvwxxwfwgwvvwvwwgwwvwgwxfwwggxffwvwwgwwgvwxvgvwwgfwwwwvwxwgxwxwwfwffwgwgfvwwxwxwwwxwwwxwwwwwwwwwxwvwwvwwxwwxvxwwwwwwxxvwwwwxwgwxwwwwwxvgvffwwwwgfvwvxwwwwvgfvxwwffwwwwwwffwgwwwwwffwwxwwwwwwwxwwwwwxwwxwvvwwwwvxwwwwwwwwwwwwwwwwgwgwwxxvvwwwwvwwgwvwfxwxwwwwxwgxwwxwwgwwwwwwwvwwwgwwwwwwwwgwvwwgfvwggwggwwvwwwwxwvwwvwwxvwwwwwxwxggwwvwwxvwwxxxfwvwwwWxvvvwvwxwgxwxXVffeVvgVgfufvguwxgeffewfffewvgggufVggfgwwufvgvwwgguwwwggxhgwgfwfvwwvvwwgvvfggvgwvgvwwwwwwwwhvwugWffwvwfgfgvwwwvvgwwgghfgvWwwfwVwwfwwwxgfwwwwwwxwvwxwhgwwwfwfguvwvfetwgVvwwvvgwwwxxwwefwvfftwgWxvwwfgwwwwxwxwggwfewfwvgxxfwvWvvgVWUcwgwWwvgvgguwvvfgwgwvfwU5wwwgughvVFwgwvegWwvgvxwwwwVvfewwfFwvggwgwwwwxwffwWgefwwxwxwggVwwgftggvfFvfwvugWxwgxvxwwgffuVfvgxxwgwwwvvWgvgggxxwwxuwwggvufvgfUwwvWvfvwwfufwugwvxwwxwwwwgfUWwwwgfguwwvwwwwvvfgwvwWwgwwwwgvvwwgvxgfwgfgUDgwvvgvfwwgfgfvwvgvgvwgvfVewwUDgffwgvwwvwwVvwwvwgwgggfwwwgVugvwwvwWvwfwfgvWwxwgwwgwwwvwgfVuffffgffvgvxwwgVuwggwvwwwwwewvgwfwwwgfVwvwuwxhwwwwgwWwwvxvwgvfvfftxxwwWhvvwwgfgwvwwvgxgxwffftxxvwWhvvwVfffgugggwwxwxgvwxvvvfVgVewwfFwwwwfgfgvxwwvgwwwvgvvfWfegfVfuvfwvgwwfhxwgffvwgfFwgwwfvgWggvwuvgvwVxxxwgwVwgvxvwvfgffgvgfwwwhwgwvgfxggfwwwgvffWfuvgwgvwwxxwgwwhwfvfgfgvwffvffwwfgvwxhvwgfwwwgvfwgwxwxgffgfwgvwvwxxhfffwwwgwwwfvvxxxwwvwxxxXfwwfUfWwgvgvvgvvhWffgveVwwfwvxwWffVfVfgwvvffwwvgwwvwxwwwWffVvwfgwvgwwxfuvfvfwWgwvfwvgwwxwgvwxwxgfffffwwwvwggvwwwwwgwxwvwwxWeVfggwvvWvvwxvvxwgwwgxwxwxxxwwwwwffxxwwwwwwggwfwwwwwxwxwwwxxwxxwwwxwwffwwwwxxwwwwwwwwwwwfwwwwfgwwwwwwfgfwfgxwwwxwwvvffwwwwwwwwwvvgvwwwwwwwwffwfwvggwxwwwwxwwwwvvvvwwxgwvwwwwwxwwwwwwwvfgwfwwwxxwwwxwwwwwwwxggwwwvfgwwwwwwwwgfwgvvwwwwwwwwwwxggvvwwwwwwvghvvwhxggfvwgeuxwgwwgxwxwwwwwfxgggvgfeuwgvfwxwxvwwvvwvvwwwwwgwgvvvgwwgggfwVTtwgwgwvwwffvfvwgwvvxwVVwwwvfvfvxgWTtwwgggwgxxgVVvvgvvggwxwwgvwvwvvvxxxvvxgwgfvwwvvxwVVxvfeevvhxvvxgwwgwgvwwxwgvwwfgxxffwgfvwvxxwffwgwhhgfgggggwggvfwxfgvvfxxfgwgwvwwwfwwwwwwgvvxfgvvfxwwxwgwvwwgggvfwwvvwgwvgwffgfvvwggedwwVFwvewwvvffvwgfVvfvwggwwwvvgWwwWfgfedwWwwffedwgwgwfuwwgVwffwwgwwfwwvvwfggwwfwwwvgwfvxwwwwwvvxgwwWfgvuewhfvfegwxfvvggvwxxgfwgvvggvwfvffggwwfgvwvffxwwgwfwxgVwwwwxwwwxwwwxxxwgwfxgVuwwwxwfwxgfwwxgxwvwwxwvffvhxwWfUwgeuwwwgwfgvfvggfvffwfVewffxwxfgVVvffggwwgVevwwgwgfUvwgVuwwvwgwfwxwfffvwwwgxwgxwvgvwfUxwwwwgfvgffgwwvffvwwxwffxwxwhwvffwfwfUfwwxwgwwvwxxxwgwwgwwvwwwwwhgwwhwwwxwhfwwwxwxwxwgwxwxwxvxwxwhwwgwwvwwwgwgwfvwgxwvwgwwwwwgwwxwxhgwwwggwgfwwxwwxwwwvwxwwvwxwwwxxwwgwgfwxxxvwxwwwhvhxxwgwwwwwwxvwwxwwwxxvxhvhxwwwxgvwwwwhwwwwuvwwfwwvwwwfgVvxwwvxwuvwwwwxgwvwwwwxxwxfffvxwwvxxwwxwxxvffwvwwvwxxxufgfgwwWffwgvvwhgvgfegffeuvvwwVfffxwwwwwefewvggfvuwhvgghgwwVfWwwgvvgwggwvwwwxvgvfuwgvwxxgwwXewfwvgwwwVfefuwwwvvgwwwwxhwvffwwvwwxxUVfwfwfwxwwvwxxwwwgwwvfwwgvwvwwwgwvfwwwgwxxxgxwwwggwwvwxwwgwfxwwxwwwhwvwwwwwgwwwwgwvfggfwfwgvwvVwvVwvfuwwfgfvgwvfxwfwgfegfuxvvgwvfwgxwfwvfwwwggwwvwwvfvffxvfwwwwvgwffvggwwwwwwfWwwwwfwwfgfgvuwwwxwgvgvwggwgvgwxgfegvuwxfgfwgwfwwxxvwwvxwggvgvwvWwwwvwwvxhefvwwxgvwvgwwwwxvwwwwwwvwwvwxfwuwvxxwgvgwwwxwvwwhwuwgvxxhWvwwewfvwgvfuwvgwugwvwfugfVxgWwwWffffwwwvguxwwhfugwvgwhuffgwwfffwvwggvwWvffgwwwvfvwwxwwguvgvwwwgwvgfVwfwvwwwxggfvggwwwwhgfwwfUwvfwwwwwwgwwwxwwxgvvxwwwgwwgWvgwvwwuwvwwggwwvwgwvwwwwvgwwwvwxwwwwvwvwwvfxwwwwwwhwhwwffwwwwwwwwvxfGggvvwgdgewwvVwwufTfdfvVwWfVwvwFfVvguuwWWvgvfwvwfgwvwvvxvuvwefewgfVgvvWwgwhwxxxwggVgvfwfxwwwewxWfWfWfufgfwgffxvwvfwwwvvxvwWftfgvwxxxwWvwguwwwVfwwwhwwvwgvwwxxwxwwxwgvwxwwwwwwwhwwxxxwxxwwwxwxxxxxxwgwgfwfgwwxgvwwffwxwwwwwxwwwwwwwwwwwwxwxwwwwwxwhvvfvwwwgvwwffwggwwwggwwwxwgfvwfwwwwwfwgfwwwwwwwwwxwxwwwwwgfwwxxwwwxwwwwwwwwwvvwwwwwggggvffwvwwxwwgxwffwwwwwfffwwwgwvfffvvfwfwxwwxhffwwwwwwxxggvvfwfvvfwggffwwgUefwvwgxxwgxwgfwwwwwwvxxvvwxwwwwxxwwfwfgwwwwwggffgvgUVwwvwgwwwgvwwgwwwffwvwgffvfwvwgwwvwfwwxxwwfwwwxwwvvvwwwgvwxhvgvgwxhwvhgwwwwwgfvfvxxggwwxggwwwwgfvxwwwgwwwgwwwwxgwgwhwgwwxhvgwgxxhvwxxeevwwwwffvfugfVgvwxwwvVwfvWvgwwwwwwwwvvgffwwxfgwwwwxxwxwwwfffVvgvVgvwgvwfwvfwfwgvgwwwvggvgwwwxwwwwwfwffvwhwgwwgwwxwwwwwwwwwfwvxwwwfwxgwvvgvvfghgvvfwgvvwfwvwvvvgxwwfggvvvwwwwhgwfgwwwvfgwwxvwxwggvxwwwwwwwwwxxhvxwgvffwfffVVveefvffwwxwggfvvvwwwwwwvfwwwwwwwhvfwfgwvvwgwwwwwwgggggffffeegfwwffwwwwxwgfffwggveefvwgwwwwvvhgggwvwwvwwwwwwvvgwwwwwggwxwwwxwxxhwgvwwxwwwwxxuvfvgffwwhwwgwwvwgwwwwxwVwwvwxgwwgvWvgvxwwvwwwwgwxwwxwwwwwwwxwwxwwxgwwxwwxwgTVfffwveUeefVVfwwgvvwufgfgfvwxxwwhwwvwwufgvgwgggfwggwwxxgvwUefEfVefwwgwwgwwvvwwUfWfgvwgfvwwwgwxgwwvwwwwfwwvfwhvggwhwgxwwvwwxvwwxwfvvwwwxxvvvxhVvffXwvgxxggfvwxwwvwwgvfgvhwfVfvwfwxgvfhgfwwwwwwvgxxxwfvgfvfwwwVwvfvgwgVUuwfeVfvgvhwfVfvvgwxfvgvvwxwwxwwwugvwffwwxvvwwwwwwgwwFUtwweVwvggvgwwwwhvwffgvegwgwvgwvwxwwfgxxwwwwwwvgvwvugwwxwxwwwwgwgwvgvxxwhwfVgfgwvfwwwwvvegggeWvfvgvvgWfvwggvfgwffvWvwwgWgvwwwwwvWveggWgvuwvwwwwfvwwwwWfggggwxfwwwxggWVffeegvffffgvfvwveewwwffgffvvwggggvvwwwwwwwwfwggvvvhfggwhfffwvvvggffvvwgWwwwfvWwgwxggfwgfvwwwvfwwwwWggwfwVwgvgwxwvwgggvvwvvgwgxwvvwwwfvwxwfgwwwxxxwwwxggwwxwxhvveVgvggwwvwxvgwgwwweVwgwwgwvvfvgwwwxxwwxwvgwwwxwwvwgwwwwwxwwxwvwwwfvfgWWgggvwfVwwfewwhvfxwvgxwvwwWfugwxwvwwwwvvxgWWfwhwvgVwwfevvfgfwVwfggwfgwxfevggwwggewxwwwWfugwwxxxwwvxgwgwvxwxhvvgwvwxwwwwgxxxgwweffvfwgwwgvgwwwgwfwwwgfVgfwfwVufvwgwwwwgwvgvwgwvxxwxfgwwwwwgwfxxwxwwgxwXVWfeefffUfVefwgwgvvewvvggwwwwwhWggvgwwwwgwgwwwwxwgwwwwxXfeVevfVfewwfwVffffgvwwwwUfevfwwgvwfwvwwwwggwfvfvwwwwwwwwwxxwwwwwwxhvfvwwwwvwwwwwwxwwvwwxwwwxwxhvVefgvxxwwxgvxwhwvvVewwvwwfwgfgvwwwgwgwwwgvxwwvxwgwwxwvwwwxwwwwgwxwwvffvWguvxwwvegvfVvxgfwxhgvwwgwwwgUvwgwwxxxxxgwwxvwWwuvwwgfefwvVvvWvvfgfgvvwvvwwVvfvwwgfVvxxfUvgwwxwxxgwggwxvhgfwxwxfwwvvwxxwwvwxxvwxwwefvefwwvwggvxxwfwvwwhfffwgfwVgwvwwevwwgwgvwgwfwwwwwwwwwggwwwwxfwvxwwWWfUfVVefgweUvfvwfvvVwwwvvwfwwwhwvggfgvwwwwwwwxxwxwwwwwwxhefffgwVeVefvwfvvWfvffwwwevgfwwwgUvwffwwwwgwwggvWgwxwwwwvwwxvgwwwwwxhgwgwwgfwwwwwwwwwxwxxvwwwwhfgggVvgVwwwvuevgggVwweWgggfgvvuevwggwwwwghvvfvwgVgggvxfgwwwwwwwwggggvwwwVwehvxwvvVVffffgfvwgggvvvggeegfvfgwwvvvvfwgwwwewWfggxwwvvwgvvvwwvgwffeevfvffgfwfvwfgwwwvuwWvffgggvvxwwwwxgvwwvgggwvvwwwgfwwfgvwwwvwgvgxfvvvfggwxwwxwwwwwwggwxwxwxxwwxwfuufwfvfggwwfgvwxfwvwefgvfgvgfvvwgvfwgfwwwfwvwfgwvwwwvwwxwwxwxvwwgwvwfwwwwwgVfeVFGffgfTwggFuwwgfvuvgvwgwvwwwgfVgwvfvwxwvgwfwvfvgwwwwvfXVeeffUgggVvwwwfgfwwffwxwvggfwfwwgvvwvwvvxgvfgvwvvgwwwfwwwwwvwvxwwwwgwvfvwwwvgwwwwgvwwxhggwwwgxwgffgggvwwvwgfwvggwxwxwfvvgvgggvfvvgwgwwgvwgfwwwwwwvvwwwxwwwwwfwwxxwxvvwevffUfVUwfufUwgwwwvgwfwgvggwwxvvgfgwfwwwwwgfxwwwwwgwvvxwefffVfuffwgwwwefffwfvvgwgwVwgwwvwgwwgxvvwfwwwwwvgxwggwfwwwwwwwwxwggvwwwxgwwwwvwxgxwwwwwwxgxwxxeUvvgeugVwfwvvwwwwhvvwgvwweggvgwxxggxvwguxxwxXvvWwwwxvgwwxwwxxgeefVefwTffffvfwgwgwwwewvvwwwxxgwwgwwwefvgwwwwwwxwxxHfvfewgvwwwvwwWvvWwvgwxwefvvfhwwgwwwwxwgffgwwwwxfwvwwwxxwxxxxXffwwwwwwxwxwgvwwwwxxxWeWWeuwwffuUvxwwxwwgwwfUguVuefvwWvwwwVWfUeVguxgwwwwgwgfgufffweeVuxwxxwwwwwwvvwffgUewwgffgwwVggfvxwvwwwvwfwvvfvfvwwgvwwhwfxgwwvvwhvgVVeggffwwgwWwvewgvfugvvwvwwwWwggffwwWwvwwfgvfvgvvxgxwwgwwgxggwgwwwgwvwvffvwvvwxwxwwwxfVvwwhxhegwvvvhVvwgfffuwweVuwxgevwwfgxXgwWfUgwwwwwwxwwwhgwwguwfvwwffxwwwxvwwwwwwiwwhgfwxwwwwxxxxwwwwwxewfvwffvwwwwXgwVfUgvwwwfgwwwwvwwwwxgwwhvfwxwwwwwxwwwwxwvwxwgwwwxwwwwwwYVfvwttwweevVwwGgvwwwxwfVgwvvwguwgwwwwwweefGwwWvgwwwwFvvvwwvvxGgvwwwxwvgwwwwwttfUcefVfVUggvvwvfVffvxwwwwwwwwwuUfvwgggwgwwwwwwwwwwwxwwxxecfVvvVvvfUgggFffvwgfvxGvfffgwggfwwwwfvgguwWefvwwwwwwwxwwwwwwwxuwVeffwwgwxgwfxwwwwwwwxwxxvgffwufxxwwxgfvvggefggvgwvgfevvfhxwwwwvwhffwwxgvxxwxfwxghvfvwgwufvwgwgVewwWDuwvggvgwvfgefwfwwwxwfvwwwwwwvwvwfxwgwuvwwggwgVevgVUewfvvwwwgvghwggfwwvwgvwvfguvxwgwwgwxwwwxvwwwwegwvggfwwgvxgwxwfwxgvwwwvggfWfxvgxwvggwfgfxwvvvfvwwggwwvwggghwwvvvvgggwwwhwfvvvwvgvgfwvxgfxwwvwhwwwxwhxvwwwwwwwfffgwvfgeeffffwfvxwwwwwgggffwwwxggwvvvvwgwggwwwwgwwwvwwwwxvgfvfvfVVVVvfvwwxwwgfvwxgVVfwwwffvgvgvvwwwwwwwwfvwwhgwwfwwgfwwvgwvwwwxxvxwwxwwvwwwxwhwgwwuvwugfvvwwgwwwwwwwwwvfvwvwgVwgvwwgggxwwfgwwwwwwwwxwwwwwwxxwvwwwwwxwxxxwwgVdefwgwUUfedfefwwwfgwvfwufffwxwwwgwgwxfvgggvwwvgwvhwhfwgeVVefVeewwgwvfwwwwwxweffuvxvguvwwgwgwgwvwwwwxxuffvgwwgwfvwgvwwgwgwxwwwwfgfgwwwvxwxxxwwffwxwwwwwxwwxwwwffwwwxwwwwwwxwwxxwxwwwwwwwwxwwwghwwwwvvvfvxwvfvfgwwwggwwggwxwwwwwwwwxffwwwxxxwwwwwggwvfvwvfvfgwwwxwwwgvvgvwwwxwvgwfgwwwwwwxxwwwwffwxwxxwwwwwxwwwxxxxxwwwxwxxufvfXWXgwwvvwwwxffvwVgvvwgwvxgWwwvwwvwxuwwwwuwxwXWgfffwwdfwtwgfvwwwufvhhhgvwwgvhhfvwwwhfwwdfftwgvwwwguwgwwwwuwgvwwwwwwwwwwwhwwgvggfxhvwwwgXgvhwwffwwwwwwxggggwwwxvgwvwxggxvhwffwvfxwxvvwxxwgwhxxiwffwxwwxywwwggwwwwwwvfwwxvwwwwvvwggwgwwgwxgwwxwxhwvvwwwvwwxwwwwwvvwwvgwwwgwwxwxhwwffwwwwwwwwwwwgwwxwhgwgwwxwgwwwwxwxgxxwwwxxxwfgvfwgvwwgwfwwwvwwwwhffgwggggwvvfggvwwvgwfwwfgwhwwxwwxgxvwwwwwwxwxgvvxwWgfffVffgwvfffUvwwwggvwwwfgwgwvxwgwwwfwwhwwwwgwhgwwwwwwwhUfUwwveVeWvwwgffWgvffwgwvgwgvvwWvwwvvwwwvggvvfwwwwgwxvhgvvvwwwwwgwwwwxwgfwwgwxwhwwxhxwwwwwxwWfgwwVVwvwXwwgxxwvxfUvwgvwgvxXwgvvwxxevgvwgwwwgewwwgwwgwwwfxxwwVVffftffvgWwwwvwwwwvwgvWwwwgwxfwvwgvvxgxwwwwgvxxwxxVevgewFffffwgwevwuwfwwWwgvvxxwffwwwvgxwvxxvwwwwxXwwwgwffwxwwwxuwxwwhfvxwwwwgwxwwhwwwwxvfufvffwvgwwggvfwvwvwwguewfvvgffvwwgvfvwfgwwfvgvgwvgxwvwwxwwwwfwvwvwwwwwwxgwfXeffUVVVgfVvvfVuwwgfgWwvwvwfwvwwgvvfgwvgwwvwwwwwwwgwgwwwwHGffgfEwwfVtwwgffvwwgfwwvgfvvgwvwvwgvwfwgfvfwgfWwwvwfwvfgvwvwwwfghxgfgwwwwgwxvwwwxvgwwgxvfxwwwxwgvwwvfewxwxfgvgwwwvwxvwxwvwxwwxwgwgxffwwVvgxxxwxwwwgwwwwwwvvwvgvfFdxwwwxfgVfWuegwgwUwwwgfdgvfffwwwwfxwwgwwxwwxVwfgvwxwvwhgwwwegvffuDfewwwwwxwwwgvfgwgwwwwUwgvxgvgwwwXugvguwwfggfwFfVfwvvfvwwwgwwwhvwwwwfvvvwxwWgggwwxwwxwWexxxwwwwwvwwwwxwwxwxxxwwwwwwwgfvvwxwxxxhvwxwxwhwxWVTwwwvfwuwgvwwwwwUfvgwFUefWwvwxwwwgwwgvwwggvwwwWwwwwwwwwefwevVvgvwwxxwwwxwvwgevwwwwwwgwwwxwwwwwffgwwfvgvWwvgufvwWwvwwwwfwwxwwwvwwefwwwvxxvwwwxwhhvwxWgeVxwwvwwxgxvfvwxwwxxwwxwxwwwwwWvvwwgwfvfxwwwwwwvgvwgxwwwxggWgUUwwwwgfffffgffvvgvffUfVgffeeuxfwwwwwwwfwvgvfvgwwwvvvwgwgvggvvgfggUeevwxwwxwwwwwwwvwfxxfvvvwvwwwffxwwwgggwfgfgUeewxvvufvvggwwwwgwwwxxxwwwgggwwwwvwwxwwwwufgvfWfvwweewxggwwwwvwvxwhwwhgwwwwwwgvfwwWVvfwxwwwwwwwwggwwwwwxvwwhvUVfhvvgTTggWVvvwfffvfffffVVvefvggwxvwwwwwgWVvfvwwwvwvwwwwwwvgeewwGEevwwwwwvvxwwwWgvwwggwwvwvxxVVvwvvgwwvgggffvffvwvvevwgwwwvvwwwwwxxwwwwvvwwwgvgwwwgwwwwwggwwgwffwwxwgwvwwxwwxxwwwwwvwwxwxwgfvvfvgwwwxxwwwxxxwwwwwwxxxgfUUwwwgfwvvwvgwvwfgwfWVeffffvfwwvgwwwxwxgfgvwwwwvgvvvgwvxwgWfuvgwgwvwwwhfvxxgwgvgwvwwgwwxvwxvfggvfwfgvweVwwwvwvfvfvwvwgwggvwwgwwwwxwxxhwvwwwwwvwxwwvwwwdfgevgwffwgfwwgwvvwwwwwwwwwwwxwwwhwvvVTfgwfwvVwgggvgvgwwgfggfvwwvhwfgwxSVVfgwwUUefvVfwgvGgvgcUeVfdvwwggfegwvwwwvfUffwwwWffwgvwwxwwwEdUfwgffEvvwwwwxxVvgVgevwwwgwgwwfhefvwwfwfuw4UefVvggffEvvgvwvxwwwwefwwxxwgefUfvwwwwwgwxwxwvwvfwxwxwwwwwggwwwwxwxwwwwxxxgwvwhvwvwwgwgwxxwwwwggwwghhxwgwwwwfvgUUwgfvgfvwwwgffgwWVvfvvffvwfffwfgwwvwgffvwwgxwwwwwwgwvxwfwfgvggwwffUfVgvvxxgwwwwwfgfwgwwwwvwgwwxwfvgfffefvwwggfwvfvgggwvfwxwvfwwvxwwwgggwgwwwwwxwwwgwwvvggwWGgwvwvwwwffwwwxggwwwwwwwwgwxxwgueguwwFfuwwwxwwwwwwwwwwfgwxwhwgfxxXFgffuvvvwwVevwgwwxeefufwVUvwwwwggwgffwwwwwgvwwxwgvgwvwwXeeVuwvFVewgwgfwwgwvvwwvwfgwxwwxgvgfwvwwwXwwgUfuwwwwggvxxwwWfgfgvwxwwhvvvwwwfvfvwwwwvvwwwxwwwgwwhgwwwWfewvgwwfwvwwvwwwwfgwwwwxvxwxgxvfvwegvwwfggwwwwwhwwxwwuwgwxwwwwwwEWdVvfwwVfvwwuffvvdUfWfvfffffgevgegwvWfffggvwvfwvwvwwwwwvwvewfTWvvgeVVwwgwwwwwgwxwwdVWwwwwfvvxFegvvWffuwWvvefgvwfggwwgvwwwwggwuwwvwxxfgwxgwvvwwgwxxwwxxwxwvwwffxwxxwwfwwvvxwxxwwxxwwwgfwgvvwwfwwvxxwwwwwxxxgxwxfwwveUuggwwfvwwgfgvfggVegffefWUevuwwfwwwgvvgwwwwwwxfwvgwvwwwgfwhgvfwgfvwvwwwgfwwwwxwwhfwwvgwwwgvvwwvfVVvfffWwwfwwwwvwefvegwfgwvwwgvwhwffwhxvhwxwvwwwfwwxxwgwxwxhwwgvwgffwgfvwvffxwwxfvvwgwwgwwwwvxwwxfwffvwvfffgwwwvxggwgwvwwxwghwxwwwwxfxwxwvvffvWUuwvfUUwwwwvggfvwwgffwwgvvgwgfvwwwgwgwvwwwgvxggxgVUuwvvUUwgwwvvwwfvvwwwhvggghwwvggwwfxwfxwwggwffffvgvffwxwwwgggwfwvvgwwwwfgwwwwwfwgvwwxxxwwgvvvufvvgVfuwgwvwgvvvwvwwhefvvgwwgwvwwwxwhfwwuWwfvvvggwwggfwgwwwwvfwvxvxvwwwwwxhVVefffvwfwfffvvwvgfffufvfevwggwggvggwgwgwgvvgwwwhfwwwxwwxXefffggffffvvggvfwUfgwwwwvgffwwwxwwvgwwWfeffgfgvwwfuvwwvggfgwgwwwhgwgvwggwwwxfvgwwxxxxxvwxwvgfUwwwwwwwfwwfwwvvxwgxwxxwwwwgVwwwvwwgxwvxwxwxwfwwgxxxxfgUDvvgvwgvwwwfwgfvVEtwfvfUgffffgwfwwwgvwvvwwxfvgfwfwwwgfwvffvfgvwwwfwwggwwwwwwvwwvwwfUwwgwxwxgwgffwgvfvfwvfUgvfgfwwgvgvgfwwwwgVuwwvvwggwwvfvwvwxghxwfVwwhVvwgfwfwvvwwggvwfgwvwwvwwhfwwfwwuvwwvxgwwgwwwwxxwwxhVvggewwewffgvwwwgfgvuwgefvwvwgvwgvgwwxufwwwxvwvwwxgfwwfwwegwwwwwgvwWwwwwwwvwwwwxwwwwwXvwWfvwwwwwvgwwwhgvvwwxwhgwwxwwgwwxwxgvwxxxxwxgggwxVggwvvhufwwwwxwwgwwvwwxvvgvggwgwwxgxxwwxwgwxwwywVVwfvvwguffxwgvwwweuwfvvUwgVgwwwVgvxhwvwwgwggVwwvwwxwxxxvvwgeffxxvgwwgwwxwwgxgwwxwwwwwwwWffvwgvvwxWvwWgwwwvgwwwvxwvwhvwwwwwwwwwwvwwwwwxxwwevfgWVfgffwvvwfvgffwwWffffggvvwwvwvggeeefgfffuwwwwgvwfgvgwvwwwwhxgvwvwvXffVfVfewwvvgwvwvvgUVewvvfgvfwvwgvfWfefvggwvgvvxxwwvvwwfwwwgeeUwgffVffvvvefgggvwvggwwgvhwvvvwvwvxWffWVefffgfggfgwwwwgvwvvwwwwgguwgwwwvwggwxhxfwxhhhwxgwwgvfweVwvfvwggwwwwxxfewfvvwhwhwwwxxUevfvwgwvwwwfvwfwwwwxwwwwxxefwvfvwgvwgwwwwxwfvffwwWfwwwxwwfwwvgvwwwwgxwwxxwwwxwVvwfxWwfwwxxwvwwfwwwgwxwwxvgxxwxwewvefvvvwgWwvwwxwfgwwvwwwvwgwwwxwwwwwwwwxxxxwxxxfvvfWefgeggfWguwwvwuwgefvgfwwwgvvggwwvxWfeVfvVfwugvgwvuVfwwwffwfwwvwuwWvwuwWxwwGUVfeVVVvgfeevvvwfFUeUufUfvvgvggffUfWfVfwwfeevgwwwwwvwwvwwWeeUfffgwvwfVfeffvgfvggvvvgwgvwwwwfvwwwxwfWEUdvffVfvegfvgfVfuwvgvvfgvggfewffvvwvfwwvvwgvgwvxwwxwwhvxwgwhxwwWffwwwwxgvwWwwhwvxxxxwwxxwwwwwvwwwfVgwfwxwwwxwwwwwhxxwxwwwfvWvWVUvfwvvxwgUvWfwffvwffgfVUfVexwwwwwfwwvwxwggwwfgfwgwgVuwwvgvffgvffUVexxwwwwwgvfxxwfwgfwwwwwvwfwhwwwxgfvwgvxfgvffvwfwgfVfefVwwwwwwgwvxwwxwwwfwxwwgwxvwvvwwvgWffvwgwgggwvgggxwvgffwwwwxwxfgfvgvVefvfgwwwvvwwhwvwfvfwvvwhfwwwwgwhFeUfffffvwedfegwvwfgvuwwdUVfuwwwvwggffgwxweffwwwwgefvgwwxegwfgwUUvvVVfvgwfwwwxvvgwgxxhewvfwwwwwgvvWfufwvgwvefvggwGTevfVVfvwxwwxfvwhwwwwfwvgwxwfgvwwwhwgwwfFfgwwwvwgwwfvhwgwwxvxwwwwvwwgdffggUVwwwgxwwwwxhxwfvwhfwxwwwxVEWfwvwwefWwfvwhvuvgfvFWfEVwgvgwwwwwuwhwwUVfwvWwgvgvwvvVeefvgUVvgfwwwwwgvWwwgwwxvgxxwwwxgfwwwgvvgHgvFffgweVwwvewewxwwwewwwwgwgxfvxwvhwwwvvvwwuffvwxvgvvwwwweuwvwgxwxwxwxwxwfgvvfgfvvwwwxwwwwwggvwwwwwxgfUUfgwwgvvwwgVwwvgfgvefeeWvfwgvgwggwwwvxxffggwwwgfwwvwvvhgvfVVewgfVfvgvwwwwxwxxwwWVvwvwxxwvWffVwgvewwgeVggvwwgfvvwvvvvxwwwwvwxxwwxwxgfwgwwwgxgxwxxxgxwfwwwxxwwgwwwxxxwvwwvwgwvwwwxxwxwwxwwgfgwwhvwgwwwwvvwgwvfvwggwwwxxwhwwggwwwwwwhvwgvgwgwwgxwiwwvwvgwwfwwwhwwwxgwwggwwwgwwvvxxwxwxwxxvxxxxwxwvwvwwufguwwwgwwwxwvwwwwvwwwxwwxwxwgwxxWeVwwgwhxwwwwwxxwxwwvwwwxwhevfegxwgffwwwwvwwWgggVUVvwfvuggwvfvwwvwwvfffvwfwwwwggwghwwVeVwwffvgwvvwwwwxwwwwvwwvxwxwwwwefvwwwgxwwfgVeeggfwwwwggwwxwwwgwwwwwxwxgfwwgwgvwwwwwxhgwgwfWffgwfwvgwwfwvwggwWwwxwwwwxwwwxxwwvgvvfVgueegfwxxwvgvfwgwwfgvggfguhgvgxdGfUuuegfVfwwVewWvfTeevfVwvVTwggVffvwgevvgwvfehwxffwhwggvxfdvwuggwveTfUgWwvvwgfwwwwwffwwwwvxxgfgwwWWwfwGEeVufgvffwWvfUgfgVffwwvwgfwwwxwhfvvwwgwwvvvwggvvwwvwvwWgfvvwwwwwxvvwwwgfvwvwwwwvwwwwxgfvWvwwwwgvvwwwvvgwgwwwwxwwxhwxwwWfUfugffgwwgwvfvwwgUffvwfefegvggvwwggwvgwwwwwwwwwwhfxwwwwwwWefVfwVfffwuvgvvwfeVwggvvwvwwxgvwwwwwwWffVvgfWwwgvguwwgggfvwgvfgxgwwwgwwwvgvxwgxwwwwvxwWfggwVVwwfvvgvvgwwfwwxfgwggwwwuwwxwxxvvvgfwfwwggwwwfgwxwwwxwhxwwwxwwwwwwwxEUfvetfVvgVwwgfwxwUevFVeVfVffwvwUfvtfVuwwwWffwfwwffwwwwwwTegUdfVgfgUwwwVwevfvfwwwgwfvuwxwvvxwwwwwwxTefefefvggGffUfwwwfUwwwgfvwuWffwvvhgwwwwwwxwgvwwwvxwxwwwwwxxwxwwgwwwvwvgvevxxwwwwwwwxwwwgvfwwxxwxggvfvfxvwwgwegegwgfUwfgvfVfUFUxxhwxxgwfxwvxxxwxxfxwxxwgvWfxwwwwwxwvffugewxwxxwwwgwgvvxgwwgvfgwgwfhwuvwgugUuVEfwwwvwfgwxwwgfwwwwvgvgffxwwgwwgwwfWfdfxwgwgWwVVVgfeVTEuxxwwwxwwxwwwwwvfgxwxwwwwwwvvfwwwwxgvvwxwwwgfVvwwwwgvwwefVfvfUUwxwxxwwxwwwwgvwwwwwxwwxxxwwwwwxwwwwwwwfgfvfgfUxwxwxwwwxwwxwwggfxwxxggfwwffewwwUfxwxgfgwwxxwwwwvvwwwgfwwwxwwgwfvhgfVuwwvfwwxgvfgvVUUefxxvwwgvwwgvgggffvxxwwwwwwwwwwwgwwwVVwfwxgffvxwwgwwxvfggfgvgeVvwgfffgvVTwwwwwxwwwxwvwxwwwxwwxxwwhfwxwwvfghgXgefgWffewvgfxxggxwwgwfwxwwwwwvgwxwwwWffuwgwvvwwgeuwvvwwxwwwgeuhvfvwgfVfwvgfvgwwwfgfwwwgvwwwVVfvTUEwwweVfffEEvgxwxwxwvxgxvwfgfVxxgwxwxwxfwwVwwwxgvwwwgfefvxwvwffwvwwVVVxfvgVWUeUDwxxwgxwxgwwgwwxwwwwwwwvxwwxwxwwfwvwwWVfvgfWwgffFwxxgwwgwxxgvwwwwwVgVwwwwfWeewwgwwwwwwvvwwgffgwvggeufUwwwwwffwvvwfffvwwffuffVEtwwVVffTwvfwwxwwggvgfvwgffwwwwwwvwwggvwvvgfwhwggeuwgffwgvvfgwwfgvgeuwWfUefFTDugwgfwwwxwwwwwwhvfwvxwxxwwwwwfvwvwvgfwhvfwwgfffvfggvwxwwwwwwwwwgwvvgwxgggvfwwwvvfwWfewwwwgwwvvgwwwwhvxvggvgffvwwwwgffvwfgffvfvfwwwwwvwDETwwwvgeVffUwwvxxwxwwfwwffwxfwffvxwwwfffggwvxwwgfvwgwffvwfwwxhwwwwgwwDUUUUwgwwfeuffwxxwgwwwwwxxvwwwwwwgwwwwxwxwwwvwwVVwwwwwwgwwgwwwwwwwxwwhggwvwweefffwwwwfgffwvvwwwwwxvvvfffgwwwwwffwvfwxgfffvvwxxgvwwgfVUfUUUEUdfvwwwfexxxwwxwwwwfvgvgwgvgvvwwwwvfwwggvwgffvvffwgvwffvweVfgUvfeUfEUTgUvwgvvWeVTEevvVUuxwxwwxwwxwwwwxwwwwxxwwwfwwwwwgwxxwwxwwwvwwWVuwwwwwwvvwwffvwwwwwwwfffxfwxwwwwWffuwwWVwwwfvwwfffwwxwvvwwvffwvWVfvxwffffwVUUeVfTDwwfVVxxxfffffTDffxwfwwwwxgxwggwwfffwwwwwwwwwwwweVfffwgvwwvgvgfvffvffgvgUVuwgwxwffffVeUfffeUwwwvwwwwwwwxxxwwwwwwwvgvvwwvxwwxwwwwwwffgvfggxwwwxxwxwwvwwwgvgvffvvwwxwvwvvfvgvvvvwwwwwwvwvfgwwwwwwwwwvwgwvgwfvvvggfVfeefVUVUfvwwffvgvfUVUVfffwwxwwxwvfvwgfxgfgffVxwwxwwwwwwxwggveVffxxwwgfVugfvwwfvfffxwgwWUVwvgfvffUEwwwxwwwwwwxwxwwwxwwwfwfffUVxggWfuwwgfvgvvgvgwwxwffxxwwwxwveVxwwggfxwwwwgvgVuXfwwvgvffxwxeVxwgvwwgfVuwfwgeTEwwwvgffgVUwgfffwvgUDgwvgffUxwwwxxwwwggxxwxwxwxwwgfxwwwwxwggvxxwxwwgvfvxwxwfgfwwfffwgweUxwwwxwwwxwwxwxxwxwwgvfxxwggxwwwfwwweVxwwxwxwgwxxwwwxgffwxwwwfxwwgggffeVwwwwwvxwwwwxgffxwffwwwvwwwfvvfWVwxxwwWfuwvWfeffxxwwxwxgwxwfxwgwxxwwvUfwxgevgefvgwwxwfwwwgggvg5UwwefuwwwgxvffDuxwgfxwwgxxwfxwwwhxxvwxwwwxgvxwhwwwwgvfvwxxwwwxwwwgxfwVewwfefwgxwvvgvevwggVuwxgvwwwgvwwwxfwwfvxwwvgvwwfgwgveFdvgvffxwggwhfffU5wxxwwxgwwwwwfwvgfxgwgvwxgvwggwvwgxxwgvgfhwvgfvwfwwwWvefUwwwwwefUfVxhwwxwhwwhvvxxwgwwxxwwvgwfvwwwwwwwgvwwwvgwvfgwwwwhvgwwxfwwwxwWwvWghwwgwvgfvhggvwwwfwffwvwxwwvwgggwgvwgwwguVfUuwwwwWfVewuugwuvvffwfwVfwefvwxwgwwwwwwVvwwvgwvwvfwxwfwwvwffwgwwwvuvgwvgwxgwwvfVgUggegvVVUwgvwwwfvggeUuvfffuxwxxvxwwwxwwxxxwwwwwwwwgwwgwwwgfwwxwvfgwwvvwgugwxwwwwwwwWwgvwwggWwgwwwvwwwvvwwwwvwwwwwwwwgfwfxwvgwwwwfwwwwvffxvVVUgvgggggfvVwvVVUwxwwVwggvfwfxxxxxxwvvwwwwwwwwxvwwwwwvgwwwwwwwvwvvvwwwwwwwgfggfwwwvvwgvwwwgxgfwwwwwwgvwwwwwwwwhgwwxxwwwwxwwwxxwwwwwwwwwxwwxwwxwwxvxxwxwwwwggwwggwwwwwwwwwwggfgwgwggwwgwwfwgfwwwwwwvwvfxwxwwwwggfwwwwwvfwwvwvwwvwgwwwvwvvwwfvwwwwwwfwwvwxwxwwfwfgvggwvwvgVwwxwgxwfwwxwwwfwwgxffwwwgfvffuxgfWffegwvwUEDugwgvvgfvfgwgwhwxxwgfvxwwxfxwvvfxwxgwffwgvfvwfwwgfvwgvgxxwwgxxxxgvhwxxwwvwwwvwgVeuwwwwvwwfgvxxwwffxvvwwffwwxwxgvvgvfUDTwgwvvwffgfvgfUVvvWfVvwwfhfwwvxwwwwfwwwvwwgWfxwwwvVwwwfgggwwVwwwwgvgwfwwfwgfVUTDtwwwwwggwfggffVfvWwxwwxxwxwggfxgxxxwxwwwgfwWwfwvfwggfxvwhgggfvgwwvxwwwwggxwvwwwgfgewwwwxwwwfggfggfwggvwgvfvweuxwxwwxwxwggwvwwwgwggfeuVuvfUTDdVugwwwvwwwvfvwvwvxwwxxwwwwfxwwwwwvxwwfUwwwgfwwffvvfxwxwwwwwxwvEEwffUUwwwwwwvwgffvwwgVuxwwwwwwxwwwxxxwwwwxwfgfxwwwwxwwwwwxwwwwwwwfUwgffwwxxwwgvgfvgwffvxgvwfwwwvgwwwwwxxwwwfxfffwffUUwvgEExwwggwwggfUwwwwwwwwwwfwfwwwwgfxwwwvwwwwvvgvwfwggwwwwffgffxwwwfxxwvgeffeUeefeVfWewwwfvwffwUwgvwgxxxfwxwwwxwxwwwwwwwxxwfwfwxwfxwwwwwwwgxwgwwwwwwwwxxwwwgfwfvwgfgvggxwgfxwwgvwhwvgvgfvwwwfwgfxgvfxwwwgwxxfUuggUVefffVuvfgfwwgfwwvwwuwwguxwwvwwgvxguwwwfggexwwgggwwwwwfvwvvwxwwhwfVuVffevxvwwwgwvVfwwwfgwefUvveffUFUtwxwwgvwggwvwwwwwwvwwwvfxwgvwWvwVwwhwvvfggdfgeevvwwwxwgffvvewwxwwvgfgfwxwxwuwgggeefeUfwwhwgfwWfwfvwwfgVugUeuVffugggwwhfgfwfvfVefVggwWVwgfeVeEEeFTExwxwwxwvvwwwWwfVuxxwgwwwwwwwgvwggwvwwwwwwVfgfefwgfwwfwggfggVufffffE4SfgxwwxhwwwgVuwxwwwxwxxwxvwfUwhwgvwxwWwgVuwgvggwwxwgggfwgvxvwwfwwgwwwfwwgvgwwgffEfggxhwwxewwfvwwgwxwWfgfevgfwwwvwfwfwvwwwgVTvwvfvfUgwvvwWD3evffvxwfgwwVfwwgfvvvgwfgwwgvhgxwgWxwvuwWvgWgwgfwvvwefFfgdfwxFfvwggeuffU5feuwffeEfewxwxxgxwwwwgxxxwwwxwgvxwwwwwxwwwgvwwwwgfgvwfvxfgexxfxwgxwvwfwWwgwfgfwfvfffVuvfxwffVefuwgvxwwfwWfxwwwgvgvwwgfvfWeetxfgvfFewwwwvfegggggVUfffE5vUVVVE5xxwxgvwwwfvwwvuggfwwwwxwffwwgfgwfwgxvfvwgUwgfggvhfvwwfwgETfVfgfwgwVVEvfwvxwwxwfwgvwgwxxwwvwggwxvxxgvxfxwwvwggwvxxwgVgwfwwwvwwwfwxfgxvwxwgvwvvwufdvVgwwgwWWfVfVghvxxVvvgggewgfgfwwvffVwgfwVvwuvwgfevxfVgwufeTefuffewVEtxwwxgwwwwgvwgwwgvVwxwwxwgwhgvxwggwgwwgwgfwfvVuwwvxwwgwwwvfvfVeFtgvgfVeFdfxxwxwwwwwwgxvwvxwhwgfxgwgwvwwfwwwwwgfvwgfWuxvwgxxwwxvwwwgvwwwwxwwwfvvfgguwvwwggfuwxgvgwwfwwwwwwvWwwwwxgggvwVvgxwwvfVggffUfDgffffUfDgffgwhxxwxvvvwxwhgfvgwwwfgwwxwwwwgvxwwvwwwxwwwgvggfvvwgggvwwwwwwggfVVffeffwwwfffwgxxwwhhwwvxwwwxwwhgwwwfvxvxwwwwwwwwwwgffgwwvvwvvwggwwvwwwxwwwwwwwwgxwwwwvwwffvgfwwwwwwwgwgwxfwwwwwwvggfvgvfffvwfxwwwwwfvwgwwwgwvgVUUfVeffvffgfvwwgvxwwwxwfxwewgvgwvewwxwfwvwxwwwwggfgxwwfVtvfgvwfgefVfwwgvveuwwwvfvVUUwxwwxxvwgvwfvhhfvwgwWxwgefVFgxxwvvWvwuegeeguxwwwxwwwguwVwwwwwwfgxxgvwfhwwvfffdVvvwxwfEfWTxwxwvvgwfvfffgxwwegWVwwwwgUU5U5wfhgfwwwwfvfVfEfUvwwwwwgwfwxhffwvwgwwwwgwgvwgvgfwwwwwgwfwwwggfwwwgfegwUefffwfvgewwfwgfVVUwfvwgxwwwwwwwxxxwwwwwwwwxwwfvwwwwwwwxxgvwgfwwwxwgvvwxxwxxxwwvhwffvfvwvvgwxwxggggfwgvwwgxwweffvwgwwxwwwfgwgeggfxwfVwgwfVUevUevfvwvwwffwxvfeUuvvwwvwwxgfwwxwxwvwwewwfwwwvhwwhwwwwwwwggwvgwewwgvfwefVvxwfgwwwgfdvvfffvwwWfFvwxwxwxxwwxxfwwvgvxwgwwwwwfwxwguwgfwwwwxwvxwgwfvwwxxwxhvwwwgvwwwgwxwwxUwwwwwwwgvWuwwvUwxgWfvwUgwfwwwwwgwvvggxwFdwgVwgwxwVfDgVfwggfffwgvvevgfgxxxvwxxwwgwwwxwwwxefVwwxwwwgwwwhvexxwggxwvfgvgwfVxxxwxvxwwgwwwxwxwxwwxwxxwxwxwwhwffwwxwwwxxwxwhgvxvxvgwxwgWfwggefxwxwwxwxwwwwwwwxwwwxvfwwggwxwwwwvwwwwgvfffxwfwwxwwxwwwwwvwwgfxWTvwXfevwxwwwvwwhwwwxwwFfwvgvwwwxwwwWfevwwGfvwwhxgfwxwvxxxwxxgxwwwxwxwwwvxwvwwwwwwwwxxgvwwgwggwwUewwffwxfhwwvvWfUfwvgeuwwwvxwwwxxwxwgwgwwwxwxwxwgweVevxvvwvgwxwxvgwTVwxwwfwwwxwxgwwuVgwwvwwwwgvwwwvwUVexwwvxgwwuVgwxxwwwxggvuVfgwwwwdEVggwwxwwwwweVgwxxxwwwwxxwhwvwwwwwwxwvgwwxwwwwxwvwwwweVgxwwxwxwxwwwvdEVwwvhveVgfgxgwxwwhwvwhwwwwwwwvgxvgvwwwwfWguvwwwWfuvwwgWguVeUvvVfufwgvvwwgfwwwwgwxwwwfxwgvvwwgfwwwffvgffggeevwwwwvgfwwhvvfwfwwwwfggfVvfgveffgfefveWfxwwwwwwfwwwvvxwxwwxwwwxxxvvwwgwwhvwwvvwxvuwwwWgvwwwfvxfwwhvfvwWwwWgggVwwheuvwguuvwvWfvwgwwwwwwwwxgwwxvvwwwgwwvvwfWgwwgwwfwwugfffVfgwveggggffvfvwwvvxxwwwxxwxgwwvvfwxwfwwwwxWVvwwfgvwwwwxwwwggwfgwwvvwxwwwwwxfvUffUfgvvgwfgfvgxxxwxvwgvgfvwvvgwxwwwxxwxxwxwxwfwwwwgwwfwwxwwwwxfxwwwfvwwfwwwgvwwxvxwwheefvfffeefgvfwgvhwwwwxxwxwfwvgwwvgfwwwxwwgfvwwwwgfwwwwwwwgfVVefffvgVefwvwwxwwwxxwwwgvxwwxgwvwvxwwxxwgUUwwxwggvwwwvwxxxwwwwwwwwgwWefffvwwwgwvWexwwwwgvxwwwwvwwwwxwwwvxwwwwwwxvwwwwfwxxwgxwxwwwwwxwwwwwwgVeffwwwwwwvfVugwwwwwvwwgwwwwwwwwwwwvwfwfwwvwwwgfwffffUUgwwwwgvwwguxxwwwggwgwgvwvfgwwgguwgfvggwwveeVVfxfVwgxvvvWgwwfvwghUgfewwgwffvfvggwfffufxxxfxwwwwgggxwwxxwwxxwWwwxgvxgvwgwwvggwvgwvfxwfwxwgvggvwwvwwgfffvvwwggwfvfggfVgeVwwwghgguvwxxxwggxgwvwwhgffvvWVfuvVeeVfwxvvwvggwvfvggggvwxwfwxxwwwxwwhgvvwhwfwxgvxgfwVTEuwxwxwhgvvwwxfwwwvfgxwxwwwwWETuwwgvxwwwwwggvxgvxwwwxxxxwwwwwwwwwwwxxhgvvxwwwfwwUDUwxwwwwggvvwwwgvxvgwwwwxxxxwwwwxwwwgvxvfgvgEUTvfgfwvfgwwvfgwfwwwwvfwwwwwwxhvwfvwwvgwwvvvfgffgfwUfwwfgvggvghvwvvwwfwwvUfgfwwgwwfUewwfgwvgUffwvwwwxxwfwxwwwwvgwwwxxwwgfwxwfxwwvgwwggwxwxwwwgxwwfwwwfwwgvVVfwgfffvvwffgfveVfgwxvwvwwgfwwwwwwwvgwwffvwvwfUfvWfeffWeffvwgwvwWVevwwwwwvvwwwwwxwwgxxgwhwvvfgvwwxfwfgUThhxvwhwvxfgvhU5UxvwxwwghvevwwgwwgwxfwhwvxwwwwxwwwwxxxwwwwxxfwhwvxggvhfWffwxwwfXUSuwwgwwhgvxwwwwxwxwwwwwwxvgggvVEevggvgxvggxxvggvgxwwgvwxxfwwxwwwvgvvfWvfwevwvhVegwvgvgwfxwhgwwvvWwwgvfdvfgvewgvwwgWveVfwWvwgwxwvwwwwWvgvwwwxwxxwwxwwewwwvwxwwwxwwgvvgwxxvvwwwgvgvwgwvgwvegUvwvwgvwwgVevWfwgvwgxvewgwwvwwwwxgvvWwvgwvwwvwfwwvgefweVfevwwwwwfwwwxWfdvwvxgwwwfvwwwgvwwvwwwwfwwwffwffggfxwwvffUvgvwgfxwwgvfvwewwwwvWewuwggUfwVwwvgfuwwwhvxwwwgwwwwfxxxwwxxwwwwggxwwWvwgfwvwxvwwwgvuwgfwgwxwwgwfffevhwgffVfwfwfgvevwgwfvveffuwwwwxwwgvvxwgwwwwwwwwvggfffVfwwwwvvgvffxwvWfgwvvVwwfvWfgvwwewxxwvwwwwvwgVvwwgffgwwfuxfTggwwwgwgwxvwwwgfvgvwgwfgvvvxfVewfeguwhwVFewgxwwwWxwwfgvwwwwxxwxwwwgwgxvewgvwwwxfwgwwgWwwgwwwvwwwwfdgggFuvwvwvgvwggwfwgxggfwwwwvxgwwgvuwxvgvghwwvwxwggwwWgfgetvgfvggTuwwfwvwvfvwvgvwwwxvgwwgvxwxwhwwwwfxwwvfwwvfvfUvgfgfvwwvffwwfwwwwwwgvwvvfVVgffVVwfwggfvwfffvxgwwvxwwwgfwfwwwwwvvxwwffxwxgvxwxwwvwvvwxwxgvggwfwgvwwwgffUugfvgffUgVuwwwfvwgwwvgwwwgxwwgfxwgffwwxwwvvxwwwxwwfVewwfUVgfffUwgvwwwffVVwwwwwwwfvgwwxwwwxwxxgvxwxwwwvgffxwwffwwxxwxwwwwwwwxwvfvwvvwwwwwfvwwwwxwwwwwwxwxxwgwxxwxxwxxwwxxxwwwvggxxxwwwwwwwwxwvgfggwwwwwgfwwxwwwwwwwwwxwvvwwwwxwwwggwwvggxwwwwxwwgffgvvwwxwwwxwgffgvvwwwwwwwwwfwwwxwgfxghwwvwwwggwVTxgfwgfeuwwfxwwwwvwfhfwVUwvVVVxwhwwvwwgfvwvVVvxwwxxwwxwwxwxxwwxvxvwgwxwwxxwwwwwwwwwvwwwwwwwwvwwwfdwwfVVxwwxxwwwvvvwwgftwwwwwgwgwwwwwwxxwxwwggwvVVVwggeEwxwxwxxgggwxxxwxwwxvwwfwffwxfvwwgwvgwwwxwwxxwwgVvwhvewwwxwwvfgxwxwwwwxwwxwwxwgwwwxwwxwwgevwggvwwxwxwgWfxxwxvwwvfwwwwwwwwwwwwwwfhxvgfVffexvwwxxwxwvwgwwfvwwwwggwxwwwxxghwvfWWgvwVevvgUfwvwggfgxwwwgwggfuffvVfvwwvfwfwwgwfwvwwfwwwxwwguxwwwwwxwwxwwwgvwwgVwwxwxwxwwgfxwwwwxwwfWfwvvuwgfwwwfwwvvwwvwwvwvfwgvwfgVfwwwwxgVegfgVfVewwwgVgxgvwhwwgwwggwwwwgxwwwxwwwwxwgvfwfwwgvwwxgfvxwVefgfwwxxwwfvgvfhfxxwxxwgvgvvvVefgffwwwfgfeVxwwwwxxgvfwfwwhwhwxwwwfggxfxfgvfxffhfwwwfvxwwxwgvfhfxggfvwwwxVefgfwwfwffgfeVwxwwfwfxwhwhwgvghwfgfvgwwfwfwwgvffwvwxvgvffwfvffwVfwwewxwwwxfwwgwfwwvewwgwwgggffeefUwhwxwfwfwvfwwwwwgfvgfwvwwwfgffgffgeVfwwwgvwgwwvvvwwfxxwxwvxWwgwwgvwxfwwvwggvwwvfvwgxxhwvevvvwVwxwwhwgfwgvwfvgwffvUffeffffvuwhwxxgvwwxwxvvwVvvgwvgxxwgvVVvgewfvggffwgfgwvvgfVUeVfgwvVwxwxhvwxwwVwgvwwwwwfvwhWfgggEfwgvxwwwvwWggwwwwwgwwvfvwxvwFfgvvgwEfvwvfgvwwxwxxvwwwwwvhwgVvxxxwwwvhvxwwgvwwwhwgWvwgwwxwwvxwvxgwwwfgwvfwvwewvwgvVeVfwgvvgfVFevwwgxvwvwxwgwgvwhvwwwWfvgwwxwuwfwwvhvwfvgvwwwffgTfvfgwWetvwgwwwgxwxxwxwwxwggeuwwwvxwwxwfwwwwfeUuwwwwvwxwggewwxwwghgwwvWVdwwggeegxwxwvxwxwgguxwxwxwwwwwwwggxxwwwxwvwwwxvxxvxwwwggugxwvwwwwwfgfuuwwWVddggwwwggwgwwwwwwwwvvvvwvwwgwvVWwwwxwvVVwggvvVWVVUvvvVVwwvfwwvfvxwxwxxwxWvxwxwfgvwvgWgUVgvVewggxwwxwwwfvwxwxwwwvvwgwwvgVgfvvwWgfgwvxwwwwwwwwxwxvvxwhwxxxwxwwwfwwxwwxxwwwVvxxwwwwwhfvgwgwfgvvfvfwwvhvegvgwwfewwgggwwwgxwfwwggvwxfwfVvxfUvfwvgUvwwwwgwwgfgfewwvgwggewgwxwwwwxxggwxfwwvwwxxggvwxfwwwxwVfvwgfvwwxvwwxfwxwvggevwevwwgffwwwwwwxgwvxxfwwxxwwwwwwxwwwwwwwwwxxwwwfwvfwwwwwvwghwWgfwgfwwwvvwxwwwxvwgVfvuwgvwffvxguffxgfxxefgffwvffwhvfvwwxVfwWwwwxwfwwfewWwfffvgwfwwxwwwwgvwwwVwwwwvgvwwwvfgugfUfgwfuwvgggwwfxwhwvgvwgwvgvvVgUfvuvwvwwxgxVewgwggwvwxwwwwwgvxwgggxwxwxxwxwVwwxvvxwxwwwxwwgwwggxgvgwwxhvgwwWgwgvfFvVgfeugvxwhgwgvgWfgWwvwwxwvVwfwwuxxwxxwgwwgwwggwgwgwwwvvgVfvuffdewwfwwvwwwxgfeuwwgwwwwxwwxwwwwwfwwghvfggffvgvffvfwwwwfgwwxvgvgwfhwvWWvfvwhwwwvvwfgfvwxwvxwxwwwxwwxfwwxxwxwwwwxxxxwxwwgwvxffwwxvgwvvggwWguffxxwwgwgwvwfvvwwvxwhgvWvwgwwxwxVwwvgwvvwgvffwgwgvwhwvWgwffwgwwxwxvWgwxxxwwggxxwvfvwgwvgwwggwxwfwwwwgeuxwvfwwgwwfvwwhvwwwwfgVVwgeuvfvgvgffffxvxwwvwfgxxxwwgwwwxwgwwfgwwwxxwhwxwwgwgvwxwfwwwxwwxwwwfwwwwxwwvwgfwgfwwfwwvvggfUfUfwwxwwfgfvgwxwwwwvwgfwxxwfwggxxxxwwwwwgffffVeufvwwgVefwvwwwwgffvxwwwwwwwwxhgwwggwxxWvwwgfWvuwxgfwwwwwwwgxfvwwgwwgvfUVeFUdxwxwfweVgwwwggftVefveWeuGfuwgwxwhwgwxgvwxwxwwfwwgvvxfwwxwWwwewgwvvghvuvvWfuvgwgvwggfgeevwwvvwwfgfxfwwwvuwwhfufvuWffwvvfvffeVfwfwwWfufegeefuVFUwxwhwwvgwgWveVwfVgwhwvffVfTEefvvwwgwxxxwWwfvegvwffvwwxwvgwVwwWwxwwwwVvfvUfexxwwhvwwwwfvvvffvVwffwUfeegwwwxxwwwvxwggwxwxxgwgwwxwwxxhwwwwwwwwwgvgWvwgwegxwwxwvwwvVgfggwwwxwwvwgvgvfwwwwwwwegvegwxxwvgfgwvvgwgwwwVvUVeegvegwgwwvwwvhgvgvfvwvegvvVvVeUfvVvfxxwwwwvwfvwwxvvwgffwhfgvwxwwwwwvvwfvheuwWETuxwxwwwuVfheuwgeVvvfffgVeVewxwwwxxwxwwwwwxwwgwxwwwgwghvwwwwvfgwwwwggvxwwgwvgeuvvwwwxwwwgffvhgwwvgwxxwwggvxgwvwwwgvwfwwwwfUfgvwwgffvwgfVfgvWTwwgfffxxwwvwwffxwfffwwvEEvgvffVVvwxwwwhwfwhxgfwwwwgggvwxwvwwwwwvwwwgvwefvwvefVVfwfwwhvwwwwwgvfVfwwwwwVffufwwvwxwfxwvwxwgwwwgvwvwfWVvwfwwhvxwwxwvfffffwwwwwVgvvfwwffweffgghwhwwvwwwwvfffwwhwfffufwvvxhgwfvfwvfeVVfvvfggVffvfxhgggvwxgfffvwggvfffefgvvwgwWgvxwwhvwwwfwwvvwgggwwgwwwwvwgvwwgwvwwwffgfvvgffvxgwfwgggffvgffvvfffvwwgfwxwwwwwwwwxgvxwwwwwwwxxwgwxwvwhwvwwwwwwwwgvwwwwwgvwwgwvxwwwwwwwxwwwgwwwggwwgwgfvwwwwvxwgwgfvwgffvgfffvgwffwvwxvgwxwwvgwwwffwffffwwwffwgfffgfwwwvhwvvwwxggVWwvvvfwxwfwwwwwwxgvgghxwwwWWVvVgwweVfwvfwwxwwvfvffeveVffwfggvfwwwwwwwwwgvgwwwxwwwwwwwgvvwfvwvgfwwwvvwgvwwggvvwffggVwgeggwwvwwwwgfvfwfvfgwwvwwwwxwfvwwfgwfvwwwwgwvwvfvwvwgvwweUgfvfffweVevgwfwwwgggffvwwwwvwgwgfWfffUvWegffgwwwwwxxwwwgfgxgvxxgffgfvxgvxwwwwwwxwwvvwffxVewggVUdgUvwwfgfffxfwwhfvwgfueVeUVxgvwxwwwvgxgwwxxwvxwxwgfgfVxxwvwvwwgvwgvfVuwwwxwwxwwgfffwwwwfgfgwxxgvxwwwwfvfggfvwwvfUVUxwwwweVvwgfvffuUEtwwwvVfVwwgggVfVUDgfvwwgfUwwwfUweuxwwwwwghvwxxffwwvwwvffwwwghgwffgwfgwgWevwwgUfvwfggfwVVvvhvvffxfwwgffUffwvwwxwwxwwxxwwwxwwfvwwwwwwwggvwhwvwwwxxwfwfffwwwgffgwwwffwwwfwvgwVVvvwvvfvxwwwffgwwxfwwgffvWfevgfwwwwfweUfwwxwwWVvwxwvgfffffgwgwwwgVexwggvgvvwwwwwwwwwwxwwwxwwwwwwgfxvgwwwwwxwxwwwwffwwggggvvgvwwwwvfgwwwvvgvwwwwwwwwwwwwxwxxwwxxwwwwwwwwwwwwwwwwxwwwwwwwwwwwwwwwxxwwxwwxvvxwggvwwwxwwwwwwxwwgvwxxwwwwgfwwwggwfwgggffwvffvgvggvvwwwwvfvfwwwwxwvgwxffwfwwwwwwwwwxwwwxwxwwwwewwvwxgvfgfxwvwfxxwgfgfwwewwwxgvfWfwWvwfwegvfvxwwfhfgvvgwfWfvgxwwvxwwxwxwxxxwwwgwxwgfhfxffwffgfvWwfxxvhvfgfxwwhwvxxfwfxvwhwwgwvgwgvwvxfgvewxfgfhvwgwfgfvWwwxwgvfvggvffvefwwwwwwwgwevffwfwuxxvwxwwgwgwwvwwwwfwwvwwwhvwgwfwvVVwwgvvwWfUuxvwgvgweVUwwwxwfwvgfUwfgvvxwwgwxwxxvwgwwwwwwgvfxvwWgwwgWuxwwwvwvwffvxwwvuwfwwwgvwgwfwxwwgwwwvffwwwwgwvWfUuwwgvvwvwWVgvfVexwxwvwfWfUuwwwvugwwwwfvgfvgevgvfWxwwgvwxwgwWefWggvwfwwwgwggvwxwwgwwwgwwwVfwwwxgfvfwwwwhggfwwvwVfwwvVfvfvgvwwwvvwVvhwvWggwvgvwgwvwwxxwxxxvwwfxwwvxwwxwwhwwwwfvwgvwxxwwwwwwhvwwwwfwhfwgvxvVgvgwwvwvwvwgvxwfghwvgvwgwhvfvweffgguvgfxwvgwgvvVfgwwxwfvvggfffgwfwvfwgvvgwewwwwgwfwwgwgwxxwwgwwgfxgvwxghwvvwfwxwvxggxwwgvgfvwgehguwgvwgeUuvfvwvfugWfxfvVgeUvxwwwvvefguwhwwwwvwwwvxwwwwwvwwwxwwfgwwwwwwxwvwwwfgxwvwgfxwwgvvgwwxwvwgxwwggvfvxwwwwwfgguvVvwvwgVVUvWwgwfvwvvguwwggvwvgfVVewwxwwwffvVgwgWfwwWvVwwfvVvVvwfvwwwwwwwxwwVewgfvVewwfhgUvfwgvwwfwfgwwwffgwwgwvgvgfwwgfvggfgwwgwVeffvwgwxwvwwfwxxwwxvhwxwwxwwgvxwwwwwgUwwwwxxxwwwgfxwfwfgvgwfvxxwvgvgvffwfwwvwgvwxgxgwffwwxfgvVDuwgwvgffxxwgwwwwgfwxwWDuwhvvgUfffvwfwvwwvwxwwvwwwwwgwvfwxgwgfvwwxfwxwwgfwxffhgfwwwwxwgggwgVewwwfvwwwvfwwvwvwhwgfgfvgfvwwwwfwwwwwwwgvwxxwxwggvwwwwwxgwwwwvvwgvwgwfgfvwvwxgwwggfxfwwvwwwxwwxwwxfwgvvwxxwfUfwgvwgwffVUvwvwfwxwwwwwfwwUUwgwwwxxwgwxffwwwwfgwgwwxwgxwwxxvgfevhvwgvxwhwvwfvvvVwhfgvfgvwgffgUvxggVefvggfuVvfEvegedvwvxwgwggwgfwgvwgxwwggxxxgxxxwfwwxwwwhwgvwVwwwveuwxxwfxwvwggwhwwggvVvxxfvhgVwxfFvWwvuvvvfxhvgggwhxwwvgveVfeffdufvxwwfwwvfVVwfwgggwwfufFfveeetfgwwwwwwvvxvwvwxfwwwwwwffwwgwwxwvgxfevggvgvwwgVvwVfuwxwufwwwwvwgffgfWvwWgwgwwvwfwwuwwvwwxwwwwwwxwxwxxwwwwwwwwwxxwwVewwwwvxxwwwwVgvxvfwwwwwwwwwwvgvwWgxwwwwfxvwxwxxwwWEUfvwgvwwxwwwwwwwwwwxwVexwwwvUTwWgwgvwxwxwxwwwwwwxxwxwwwwwfwvVehvwwwwwwgfgxggwwwgfwxwwwwwvgVufvwwwgvfegfUggfVegfvwwwwgVfwwwgggVuwgxwwvwwwwwhwwwwwxgwwwwwwwwwwvwgvwfuwfwgwvxwwwvxwwgwgfvvvffwwwfwwffwwfwwwwffxwxggwwwwwxgwwwfffgfvwvfeugfwwfffxxwffwwwwgvfvwggVuvvfgvfUefwwgfvxwwwvwgwxvwvxwfwwwwWvxxwVwwggefwwVwhwgvxxfwwwwfFewwwwVvVVUSuxeghwFefgffwwgfdvgggeufUVfwwxgwwfxxwwwfwwvwxghwwhfwxwwvvfwwuuwvVftwgxwwwVfwvewwxwwgggwgwwfvVwwvvveewxwhfgfgVTwwwfgwvvfgfdeffUUxwxwwgexwxvgWfvfxwwgfwgweFggVvVU5vvgwwgvwvwwwwwffgvvfvwfWfhvxvwgvguwgwwvfwwwgVeWvfffwwwgfwfgwvgffgwffvVefggfVvvwvwwxwhxvgwfgwwvxwwwwxvvgvwgwxwwwwgwvwvwxvwfwffgfgvgwwvUfvgWeWvvWgwhvvgUwvvgvhwgwVugggggvwgwhwvVwewwuwvwxvwwVfvVffgfvgwvvhvhegffgwugwggfffwvggfefffwfwwwwvwhwwwWvwguwwwvvvwxwwgwwwwwfwwwggwwfFfvwgdvvfwvwxxwfwwwvvgUvwvgvwwXfevwwwwvxxxxxwvwwwwgwwgwwwwuwwvwvxxWwwgwwwwfwwewfwxwgwUvwxxwwgvwwwefwfwwhwwwwwhUvvwfwxwgvuvxfwuggWvwgwvfveffTffvwvWfTvwwwwgwwgwwwwwvgwwVewgvfVfwgeVfwxvVwxwwwvgfwxwhwwgwwgwgfgwxffxwwwwwfwwwxxgwvgvVfwvgefVgwwwwwxwwggvVfffggvwgggVgwwxwwwxxwxwwwwwvvfwwgwffwvwgwfhvwwfxvxwvwvwgwwvffwwwwwwwwwwfvwwguwWgwxwxwwwwwwwfvgwgwwwwwwWwwfWevgvVwwufWfffvggfegVgvgfwgvvfUwvvgvgwvuwgVvfvvwvwwgfuvxwxwwwwvfggvwwwfvvwwefvxwwwwwwffewwwwfgvvwgffvwwwwgfwxxwvgUfwvgvwwgvuwwwgxxwxwxwxfwwwwwwgwwffwwgvwwxxwgvxffgfwwxfwwvwwvwgxWgvfwwevwvwwwwwxwwgfwvgwwwgvewwvfgwwgvhvefWUewvgffvvgwfwwgwffhxgwwxxwggxVUfgvfWwwwwgwxvgxwwxwgwwfvxwfvwwgfwwwwxwwwwwwgwwwwwwwvwweUuwwVVwvfwgvwwwwwggvfUfVVwwwwwwwgwfwwwwwwwwwwxwwwfvffwfwwwgvwgfwwfwwgggfgffwwwwwwfvwwwwvfuwwwgwggxwfxwwwwwfUwfVwwwwwwgwwWWewwfvwgffffVfUUggwwgfUfwwwwgUefeuwxwwwxvgfwfffUvfvwwxwwvwwwwxwgWgwggxvvwwhVfgufwvfwxwfxxwwxwwwggfwwvwggfffevwwwxgfvggxhWfguwffvfgfevwvgwxxxwwwwgwvwwewwfgwfvwwwwvvwwvwvwvxwwgvwgvwwwwwvvwwggvwgfwhfvwvwfxgfwxwwwgwwvwgwwwvfvxwwfwxwffvVfwwwfvwfffvwvgwfvwvxwgewWfwwwxxfgfwwvwgwgfgwfgfwffwwggggwwwfwwwwxwwggwwWWxwwwwvxwgWwwwwvfuwwwgfwfvVVwgvwfwfvwfvgvgwwggggwwgwfVwgxxwwxxxwxwwvwwwwfwwwwwwxwvvvwwvgwxwwxxwwwggwwwwwwvfvwhgggwwffxwwwwwfwxvxwxwxwhvwwwwgvxxgwfveuevfevgfwgggffVVwggwwwfvfwvfvfuwfvffvwvgvvgvwwwwwgguwwwwwwwwwgwffwwwvgwwwwwwwgfvwfwwwwwfvvwgfwwgeVfeVvveffvvvgwfffvgvvfwfvgefwugevwufgffwwxwwxxwwwwwgxwxvwvwwgwwwwvwggwgfwfwggwfwwwgvwVfwvwvuwwggWewgfgfffwwvwvfvwwVugWggfvfwwvffwgvgwvwwgfUvVUffvWgfUefvwuffvgffgvwwfVUVevWgfewgwfVwvgffwVfwgwwwvfgwgwgwxwgwgxvxvwwwweVewwgxwwwxxvwvxxxwxwwwvffgwxwwwgvfwwwwvVuwwgffvffUVwwgxwwwwwxvffxxwxxwwgvgwxwwwWwVwwwwfgvwwvfffvfUVxwwxwwvwwxxwwwwwxwwvwwvgvvffwwxwwwwgxwwwwwwfwvgffxxwxwwgwwwwgwwggevwwwgwwggfegvfeeeUwggfgWWvvggwfWwUTfvVefvggwwffwfuVwWfgwvgvgxgufWfgwwwwfgfwfwffdvwgwfWeFeVffggevfxwwwfgggwfuvwggfvwgwvgvgvvwgwvwwvwVfgwvfvgfvwgwVWeUfEewwhvvwwwwxgeugggwwwgfwwvgfvvwgggWvVeVuWwgefxwgWwxvuwwfhwffwWVfvwgguvgwwxvwvfgefewvVfggfVewwgwfeeEUgwwwgffxgggxwfuvwwVfeffxwwxxgwvvwxfwgwvwwuwgxfwufvxwwwxwgwvwfgfgufegwgwefvVvxwwwwwwwwxfgvgvwvvwwwwwgxwwvwfwwhWwgwfwffufufgvwveffffwwxxwwwvvwwwwxwwwwwwxggvwwwxwwwevvfgxgxwhwgxxwwwwwvguwwwwwvfvVwwwhvfwgwxwwggggufvfffWfVfefgfwvgefwggfuwwwvvwWWugffvWFduwxwwxwwvffwwwvvxwwwwgfwwvwgFdfgfwwwwxwwwgfvwWFdewwffgFdfUvwwwgwwgwwwwfvvWffuwwwugvwwwwwwwwwwwffwwefVuUwfwffgfWFduwwgfvwwwwxxhWvvgwwwwwxwvwxwvwWffuwwwwgWvfUvwgvvvegwgvwwwwwwgFdvgvgfvffwwefVwwwwvegVewweDVwwwfffDfVeffwwvvghvfgwwfffVWgeFVfdwwwxwvvgwwwwwwwwgxwXWvfgwvgvvfgfwvfgwfvggWgdfdffgfwggfvfgvwxvgxwwwfvwwWfFfvdvwwgwwvfgwwwvwgfvvvwguwWgffeVWfefVvfewvugvgxwgwwxwwvwwwwvfwwwxxugdfdffwwwwwgvvgwvwgwwwwgwwffvgguvffvffwvwgwvfWwVfggwgvwwfgwfGfEeVVgwgugffvfwwwxggwggfwfwfUVwvvgfVfwxxvwxwfghwvggwwwwgffxfwgWWwWewxwwwgvfvVVVuwwwgwgwvfwxwwwwwwfWxwwwffvvvwgfwwwwvgfwgfvxfwgvvgeefUUUuwvggwWgwfvxxwffxwwgwwxwxwwwgwfvfVfxwgwfgwvfvggxvxfwggwvgfVVfwwwwwggvfvwwvgfffxgwwvwwgeeUfeeVUwwwgwgfwwwwwgffWWuwvgwgvffdUFwwwwwevwwwwwwwwwwwvwwwwwvgwfgfUfwwwevWugvgvwwfffUffvwwwdUFffwxwwwgvwwwwwwgdfFwffvxwwggwwxwgfvwwgfFVetxwwwwwwwvdfFfwffUwwwwxwvfWwvwwwgwvwwvvvfWwwvwgdfFffwwvxwwwfVevxwwwwwgwwvfWwwwfUwwgffVevwwwwGVedfvwggvwwhVEffdffVuwwgeuwgffweWwgghfvWVVvwwvwwhwwhxwwwegWwfgwxwwvgggwhvffggfefhwvggWgwfgfvgvfUwxwwfgxxhvvwvgfwwvwxxgwvvggwvvVVwgfffgwwvgwwgWffgwwfwwxxxwvggwwvwgvgwvvxvwhgwgggvggwvvwggwgffvxwxwwwggwgwwfwvWwwwvuvWfeevvvWfxgvvwhwwvfVegfwgwfgvvgfXeUgufeVwwUfewgggwxwwgfvvgwfwwggeuwvvffvxfvuvfgWfevvwhweVvvvfeffVfevfvgwwxugwfgvffxwwwwvgfwxwwwwwxwwvfVwWVfwfffgVgwwvgwvweUegwvgwwwvwwwwwxwwweWgwfwgghwwwwvvvfwfwfwwwwxwwgVVfwgggvfwwwwwvwfUfwgwWVewVgWgffffggfwvwwWUUvgwwvgffwvvvwwhwvvggfvWfxwgevwgfewxwwwwwggvwwwwgwwwwxwwfwgwfwwfwffgvvWefwxwewfffevwfgfvxwwWwxxwfvgwevxwwwfwfxwvgwxwwgfgfvVewwwhwvwvgvevggguxhwxwxwwwgvvwwwwwvguwgwxvwwgwfvwwgwuwwwggxwwgwwwwxwwwwvevwwgvvgfwwgvgffVefgffVxwgfwwwfWvgffVwgvwwggggvgVeuwggffvVfuwwwwwwwwwwwwwvgvxwwvwvwwhfgwwwffffgVefffggvgfxwgwffeVfwfvwfxwwwwVfuxwwfffgWwuhvfvxwwgvwwwwwvggeevvvfvwwwwgwvgfffugwvwwwwwwwwwxwwvgfwWefvfwgwgwhwgwwffuVfvwvwhwwwwvvfvwgvwwwwwwgvffwwwgwgvvwwwwWeewffvfwvvgwfwwwwwWfUfvwwgxwwgwxwwvVfgVfxwwwWWUugxwwxwwxwwwvwgwwWgxwxwwWWeufevwwWguUVwwwgwVWWuuxfwevwwxwxwWgxwwWWeewwwwxwvwwwgggevwwxwvguwuvwWWegxgWWuufxxxxwhwwwwwwxuUWwwwwfxgwhwvxgwevxwwwgwwgvwwwWWuwxgwhwvfwwwwuUUxxwwvuUVWfxxuUVwwvgVvgWfgVwvgwfvxvgvuefUewwfUVVewwwwwgfwxwwwwwvuvfwwgwxffwwwfWvvwwefwvwwfeefgfwvgwveVUwgwvggwwvvfeuxvffggewgfwwwvgwfwwggfgggVegVvgffUxwvffvgfVfewgwwwwvvxwwwwxvwwgxwggvwwgwveewgfwvxxwefVwgwgUwxwwwwfvwvwfxgfgvwwwgfvwxwgVVuwUvwwwwVeUuwfffwffvfvwfvfvwvvvwwxwuwwvffffvffgVtwwUEvxwwxghwwfvvvwvwggvgvwgxgwwfgffveVwgeefwVvvvvewgugwwgVwwwwwwwwwfwwfgVuwwuWwwwgwwxwvwwwwwffvfEwggVdwfvwvvgwgvfgvvgwvwgwxxwwwxwgwueVwguefwwvwwwgwwwwwwxwwwwwWwwwvehgvwwggxwwwxxwweFwgeedvVvvvvfegvwggffwwwxgwvwgwxwwfwwgwggfwffgfvwgwwwvvwwxwvvfwfwfwwxwwwwfvgfvggwgwwfVVfffvwvgwffggfwvggwwwxwwwwxxwwwfheuggwwwwwvwgvwwggwwxwvVVvvfvwwggfffwwvfwwwwvwxxxwwxgggfwfgwwwwvwxwVVggwvgfwwhxvwffwwwfvwxwggwwwwggwwvxwxxgfvvfggvfvwwwfgwwwvfwgvwwwwwwgwwxhwhgfwhggfVUwgvgwvvfffuxwwwfgxvvwwvwgwgvwgVwwwxwwgfgvgfvfVVVUUUwfxwvgvwvwguwgvfvwxvvffxwwxgwvwVuwgfxxwwwgvwvvgUvgfgffUUwxwwwwwgwvwgwgvwffxxxwwwwvggwvgwfffUgwfvwgwggvwwwfwwvgfwfffVxwwwwgvvgwvfvwfwwfffwgffUfUUVUgwwxwvwwwwgfwgwuvggugwfUdfhvgVUwwwgwwwfgvuwvfgfggwgeWgeexwwfVwwwvvfVVVUevUfGwggxxggwggfgewwwwvwwhxGgffggVfwwwwwgwevxwwfgwwgwvvgfVTdffuVwffxwwwffWgewwxwfwgugwwfgwwwvuvwVetwwvggggxxhwggfwexxwwvgwVUuvfvWwggxwwwgfgfvxwxwWUuwgwWTdeFuwgwwwwwvxgwwgvgvwwwwvfvwwfgffgfgwwwwvwgvwfwwvwwwwwvvxwxhVVwwgwwwvwwwfeegvffwvfvfwvvwgwwwwwwgwwwwwffwfgwwvvvxwgvwfvfwvwwxwhfeuggffggvvfgfvvgwvvxwwwwwgxxwwwhvvvxxgfvwwggwxwgvvwwwwvvhwwgwwfvggVVxwvwwvwwwgvvvhwwxggffwffggwwwwfvwwfggwfwwwwwwwvwxwxgWgewgfvgvugwvWgfEeVVfvhwwwfvwwvwwwgfvgwgwvwwffwwWfvffwgwwwgffwVwgwVfvgfVUwhweUdfgwgxfwvwgvhvWfgWfhvfwwgwuWfgWfwwwvwgdfwfwgvgfgfvVeggfVFefVwwwwwhwVVwgfhxwhvfgfwxwgWwgWwvwwvfVVfWwwwwvwwfvwwfgvfvgewwWVUefVwwvwwfwvvwWfVvwvfvwffUffefVuwVUtwfvvhwfvvwwgwwgfffVWewwwxwwwfgvwgvvwwwwxgwwwwfvvWWeuwwwwwguUVfvfvfhggfVWuegggfvxwwwwwwwwhwvgvVWewgfwwvfvwwwwwwggfgfgfwwvwWWeefvwfVWuefvxwwwwwwghvwwwwwwfgwgvfhgwwWWeehggfvxwwgfhwgfxwwwghvvwwxfVWeefwwwwfggfwwwuUVfffguUVwwwffuUVffffxhvfwwwggwwgfUefvfgVgewwwwwgfvvwwfwwwwwggVugfffWwuwwfwwwwwvgwgfVVfvvfggwvfgewwwwwwwwwhwwfwwgfvvfwwwwwwwwfwwwgfgfwgvvggffVewffffvwfeVfgvwxwwwwxwwwwvwwwwxwwwwfgggwvvwgwwwvffwgvgvwwvwvwwgfVewgvffwgvuVfgxwwwfvwwwwwwgwfwwgUevfggfwvVfUvwgwfwwgfvwgeewggwgUwgfffUuxwwwwvxgwwvgwxxxwgfxwvffwgvvvvxxwfgwvwwfeeffvwwwvfgfufvwxwwgfxwwvwfvwxgwxgxwuwwgVwfxwwfwgexvfffffugfgwfgffVxxxwwxwwwgvwxwxwxwvvfvfvwwwwvwgvgwwxgwfwgvwvwgwwwgvgfvvvwwwVwwewxwgwfxgwVwgfffUgVwvfgffUghgfgwwggggvfgvgfgggvvvwwwgvwgfwgwwvxwwwxwgwwegWggwwwfwggvfvvwwgffVVvweVVwwewwwxwgwwxwwvfvvfffgfwvvUvvvwgggwwwVWfuefvgwwwffffwvvgfgvvfgvwwwguwwvxwwwwgggwwvfuXfwgfgvvvffwwwwvwvgVvvwvvhwggwwwwvgfxgvwgvwvvvfuwWvvvwwwvhwgeegggggwvwgfwwwvuvwuvvfhgveFevwWeewwwwwxwwgVgwwwfvvgwgxvGffvwgevwwwfvvwxffwxwffVTduVgfwwgeWwvwwhwwWVVwwgfuwgfwggggVvvfvfgWgfeuxxggfwwvfUUuvEvvvwwgfVwggwwvgvWwwwfwgwvvwwxggxwgvvVUuvVgvvxgvgwwuggxxgghwvwgUtvgwvvwxxfVwwxhwUUwwgwxvvwxvEEwwvVedgwwvvwwgvwggfwgwfgffvwVfEWgVfdwwfvvwvwwwwwgfwwghwfwwwwfFwWgfdvfvfVeffeWfvWgwwwufVwwevfewfwwxwwuVvwhwfgwwffwvwgwvwwwwwxxwvgvfFvuffdfwffwggvfggffvvwwfwwgxwwxwwhvhwvwgffvvguwwwvwwgffwwgvffwgwwwgFvWffdfwwfwxxwwgwfwwwwgvWfvwvefFuwufeTfwugwvgvvvwgfffvwwgvvwwvfhwfvggvggfvvvfvwffwwWwwxVggvwwvvwwfggwggfvffvwgVfuvffffwwfufguvwvgvfvfwvgvxwwwxwgwWxwwvvvvuwwwfwvfwwgwwwwgvwfVVffwfuwfvfvwwgeuwwwgWwwwwgwvWwwwxxwfvuwwggwwvvvvvvhgvfwggwhwxgwvfgfwgwgfgvuwgWhfvgvwwwxgfWggwvuVVwgfwgfwggghwvwwwxwvwfwhwwxwwggwxwWvfffffvwweFUvTwwwwwwwwwwwwgwwwwgwvgwvwweVWwuvffwwfvvvgwwgeFevdvggwvgvfhwxxwxvvwwgxxvgvwvwgwvvfwgggwwvfffwvVvVvgwwgfUfVVvWvwewwgwwwxwwxxwwxwwwwgxwggvwgwwwWwvexwwwwxwwwVwwwwvwgwwgfUvVVwwxwwwwxwwwfVdfEuwvwwgfgvggegVvwfvgvwwwwwvwWgfvxwvwgwwfvwfWeUvgwfwwgvwvwfewwgwfwwvgxvwwgwvwwwgwwvgwwvwwxwvgvWeUfvvgvvxwvxvWwgwUvwWeUwwxwxwwwxwxwhffwvgwwwwwhvfwggvvwvgWvwwwwwwfwwgvfwwvxgwvxugvwVwhvvwgWeUfvvWvvwwwwwwgwwwvxwhvfwwwhvwgwxwxvwugwwwvwwwggvwwwewfgvefvwgwfVfvvvvwvvwwwgevfwvgfvvUgwwvwgvfffefvwwggxxwxUvwwvgwwwvwwgwwwfvwwwgvVvvfwvffwwvgvxvvwwwgVffwuffwwwwhgvwxgwxwffvwgggwwgvwwwgwugfvgwwxghwxwwVwwwuwvwwwvgwwwwwVwwwuwwVvffwugfwxxgvwgwxxwwxwwvwugwwwwwwwwwwgfgwwgwfvwgfVwvwxwxWgffwwwwfxexxwwwvwhvwvWVUvgxuwxwwwVwwwugfgwwwwgwwWgvxwwwwwhwwgVUfvwwgWgvgvwxwwgxwffwwfvgVUwwxxxwxwwwxwgxxxvfvwvwffwgggfwwwguwwwwxwvggVwwfwgxwwwwwfvgVUvwgwgggfgfwgwxwvwxwwwvghwgwwgugwwvfvgwwvwfwgwvfvvvwVfvwgwfxggWgvwwuvwgvwffwwwfufVwWggvwwwgvefwwVfwwwxxWgwvveggwfgwxwhwwwwevefvfvwxwfVfvwwwuvwvwwVUvwfUefgfgggwwwxuwvvfwxgfvwggfgfvfgvvvffwfufWwvgwvwwwwwggvwvefgwfwwwgvwvgwfvefUfegvgwvVVevwwvwwwwgvwvfvwwVvwegwgfwvwvwhfffvvghvvfwWfWvvgvwWvgvugwhgwwvfuwgvgwvhwfgwvvwWwfwgvvwwwVWgwvvfggwwxwfghwvgvgwxvvwxxwwwgvfvWVfvwgwwggwwwwvgwfwvgvfWgvvwgffwwxwxwvxwwwwwvWgxwvvfvwwggwwWgfwwwwwwwwwfwgwvgfgwhvvwwwwvwguvwfVfgwfggwvgwvwxgwxwxwwghwwggwwxxwwWWxvfvggwwwwxxwguefwwwwwvvwgwwwggvfwvwfgvwwgfuwfwUfvwwvfwwfgfvvfwwwwwgxwgWevfgfwvwwUfwwgvwwgfgUwfwvUfwwwwwwwgwvwwgGTuVffwfwwwwwwwwwwxwwwfvxwwxxxxfvfwffwwwvwwwgwxwhWevfwfvvwwgUfxwgvwwwhDUfgewvfvwwwwwxwwwwwggwxwvwwwfwvwwwwwfxwggwwgfgggwxxxwwhvgfvggwhwwgvwwxfwfUwhwwfwwwvgfgwWeUuwhfwwfgwvhvwgffVvwfgwwxwwwgfvvhvwwwgVVUxwxwvfggggfvgwgevxxwwffwwxvvwgeUuwxwxxwxxwwfwVewwfffwxxvgwwgvvwvfffwvwwxwwxwffvwfwwvvVVUxxwxwwvwwgwfvfvfeuxwwwwgfgxxxwwxwvwwwgfwwwwfgfwfffffffVUwwgwwwwwvwwwwgwvvfeeUfwwwgWevwwWfffwvwgwuUfVVvfgfVUfffewgggvgwxUfwvvfwVefvWwggffwvxwegewvvwwwwwugwGWefwvgEfgwvggxwwwxxgvwwfwVefugwwfwxxfwvwgwxwwwggvgghUfwvweffFeUvgwwgUwwxvwwewdfevwwvwvWevwhwxxfwxfwfwwwWevgxgfFffVwgwwwhvgxxwhwwgwwwwvvwwwwwwwwwffwwgvgwwwwwwwwwwwgwwwgwgwgwwwxwwwxwwwxwvvwwwgwvwwgfvwwwwwwhwwvxwwwwwwwgffvwwwwwwwwwwwwwwxwxffvwwvwvwwffvwwwwxwgwwxwwxxxwwwwwwwwwwwxwwwxwwwwvvhfvwwhwgxhgwwvxwwxwwwwwxwwxwwwwxwwwwwwwxwxwwffwwwwwwxwvwgffwwwwwwwvgwxvfgfwwgwwgfwwwgwfvvffwwfvvfvwwfvgwWfvgvwwwwwgwfvggvwfwwwhfwvvwwwgwwfwgvwhwvVgwfwwgwwgewxgvgfvWvxvxxwwxwxwwgfvvgwuwwwwwfvwfgvgwwwwwvwwwwhwgvvgvwgwgvgefwfxvxwwhvgvvgvvVfwwwwwwwwwwvwwwxwgwgwvwgvwvwwvgevvhgefwwwxgwxxgguvvgffvfvxhvvwWfwwwevgwffgwvvvVfwgwgfvvfggvwfgxgvggfwwwfgggvfewuwxfxwWgVwxgwvgghvfgFVvwwfduwgwVwwwwwvgwwgvwwwxxwwggwfvwfwfwgwvwvwwfwwvvgwfgwxgvvggfwwuwfgggefdwuwwwwfwvVfFfwWwwvxwwggwxgwvxwhgwwwgvfgwvwvwfgwwvvvfgwgfvgffwhvgvwxvgvfgwxvwgwwxgxwxwwwwgwwwwwvgwwwgwvggwwxwwwxwwxwxwxwwwwwwwwxwxgwhvxwgxwwwxwgwvwxvwwwxhvwwwxwhwwxwvhwgwxwxwwhxwxgwxwwwwgwhgwvvwwxwwwwwxhwwhxwxxwwwgxwxwxgwxwxwvwgxwwvwwwgxwxwwfwfxwvxwwwgvvwwwwxvvwwwwwwwggwwwgfvxffwvvxwwwwwwwffwwwxxwxwwwwvvwwwwvfgwwwxwwwxwxwwwwwxwwxgfgvwwwgwvvwwxwxwwwwwwwwwvwggvggvxwwwwwwwxwggwwwxwwhwwvgfvwwggwfgwwwwgwwvwwwwgwwwwwwwwvwgxxwxwwxxwwxwwwffvfgwxwwwvggwwwwwwwxxxwwwwwwwwwvufvvuwwWfvfwwgVgwwvwwgvgwfwvVfeegfgfwgwfwvgwwxffwwfggeefvwwwWUfwvwwfwwwwwwwvuwwWfvvwgffwwwwgwwwwwwwvwxvwwwevwgwwggvxfwwgvxwfwvgwwxWfwwweVgfvwwgwgWVfxwwgffvgvxwvwwgvwxxgfxxwwgwVeuwgwwgffwwvxgwffwxxxwgwwfuvwgvwvgvfwWffvwgfvwgwuwwWwVeVgvwfwwvggwgwfVwwwwxxhffvwwgvwwwvwgefwgwwvgwxwwhvwvgggwVWfwvwfwggggwwwwwwwwwguegwwfgwwwvfffwvfwwwxwwwwxWwgwfffwwxgeevwffgxvuegffwwwwwxwwwwhfuwwwwxwwgvwwfwwwxhgwVefwvwwwwwwwxgfwwwvgvwxwwwwvvffwwffUvwwwVexwgwvfffffvwgwfvgvfwfggUvwgvxwwwwwfvfffUfvfvwwwwhwgvvgfwxwwwwwWfeuwwVexwwwwwwwwwxxwxgvgfvfwfwgfxxgvwwwwxxggUvxwgvwwwxwffvVVffVffufvwwxwVefwfwxxwwgvgfvfwvwwxwwwwgfvwxvgfVffuggwwgwwxwwwxGgvvfwwggUVfwgwfevwfvgWggvWFVffWwfvVdfwwwvfvwwwwvwwwwgffWffUfvwvwvggwwhufwgvfhwwwgdVvvwwfewwwwWwvwvwxwgwwwwvfWWffwwguwvxwwvgvfwxwweggwwwwvwwwwgWfvFfvVWvwvfvwwxggefwwwwWhwwwfffwwwvwwxwwxwwwwxgWvwwwwEfewfwguxwwwwwxwfgvxwwhfwggwggvffvvwwvVVxxvwvfhwgvwffgfwwwgwwvffeuvfwggxwwvvgggvfeuwgwVVxwwvggxwvhxwwgfVTtgvwggwwwwvwwwxwwwvggwvvgfwfgwwwwvxwxwffeuxwwgfxwwvEEwffeegggfxwwwwggwvwwwxxvwwvvvwwfwwwxwwwfwggxgfvgfwfvwwgggwvvvwgvwfwxxxwwwffwgvxwwgwwwwfgUDvwvvxxwxggxwwffvffwwxwgwvggexwwxfwwhwxwwwhgevwwxwfUDvfvwxxxxgfwwwffUDxhwxgvwwwwwwgvgguwgfwwwwggfUgwffvhxxxwxgwvwgewxgwwxwwwwfgewgfwffUDffwvwgwwgvxwxwwwwwfwwwwvwxwwwgvvwvgfgVewxwwwgvvgvwwgfevgffgwfVwgwfwfgdVwwwWfgwvgwwffgwwvwgvfggVvvgvgvuvwXFffwvxwwWgffgdvgxFfwwwhwWfvwuvgvwxwvwwvvuWwvg5UgvvgwxwxwgwxxwxvuwwwwxffxwxgwegfwxwxgvevwwXFVgwwwwWgwvwewgxFVwwvgw5UvguvgwxwgvwvvwgwvwxwxwfgvgewxxxwvvfwwhefwfgwvwxfWwfwwxWvffvwwvffwwvvgggwgFfwgfvwfffwhwwgfwwwgfgwvwhggWwvvhdfgwvwxfvhwwhffwvgfwgwfvwvvwwwwVFfwgUvwfwwhwggvvgvgwxwewxxWwxvegfwxvwuvvwvfgwhgwWwvwhdvgxgvwfvhffWevwfgfwwXfevvwwwVvxvvhfvgxewwhwfwxwwgfvgwxwxgwvxffwhuVfwhwgvxvgwgvffwwwxwwgwwgwwwvwxwfffwwwgffwwffwwwxwwwwhwwgwvxxwwwwwwwwggvgwwhwwwwxwvgwwxwwwwwwwgwffwwwwwwxwwwwwwwwxwwwwwwwwwxwwwwwgwwwwgwwxwvxwwwwwwffxvwxwwwwwwwwwwwffwvwwwffwxwwxwwwwwwwwwxwwwwwwwwxwwwwhwxhvxwwwwwwwwwwwwwgwwvwvvgwwgvfuvwgvfwgwvffwufgevwvhvvvwgfwfgwUefvvxwgfgwfgwvvgvvxxvggwwwwwwwffgfvxvgfvwwgwwwggffwWgvWfgvgfuvvgxvgwwvffwwwwhvfWwvWwwhfvgfwwwxvvwwxvggfgwffvvwgfxhuvgxwfgwwweffevwwhfvvggwggvvgwgwxfvvwwwwhfvwxwwXgwVwxfgwxvxvUfwgwvvwwgwvxxxggfghwggwwguevgxVVvwvgwfgwwgfvvwwvgvvwxwfeewwggwwgfxwwxwwvgfWvvegxwwvvvhwgwgfwwwgUevwhVVvwwwwwggfvwxwwwwvgggwgvfwwgggfgwwvfgwwwvwwwwwfeuwxggwwgfgxfvxxvgeVeeevgwwvwgwgggwwwwxwhggffwwwhwwwwwgvuwWvxxxwxwuwgVWfvwgggwwwufvfgWfuwggvwVevwwfvwvWgvffhgvggvfwwfvwfweVvwgvwwgUvwvggUfwffvhwvfgfvwggUvwgvfvwwwwggfgfwgvvgWDuwwgxwxwwwgwwwwfwwvgvwhwwwxfwwVwhvuwwgggfwguwwhUvwvwvVfwwETwgvwfwwwwvgUvvwgvfvwwfwwvfvwhvwWwgwvuwwwwwwvgwxwwugvgWwguxwfWfwwwxgxwwwwwvgwwwvwhvfffwwhwgwvwwggwwgwwgvvwfvffvwvfgwwfvvvwwwgwxwhwvgwvwvfwxgvwgxxwwvwgwwvwwgwwwwwggvvvwwvvgwgvwvwwvwxxwwwgwfvwvwwgwxwgwvwwwwwxgwwvwwgwgwwvvgwffvvvxgwwxwgwgwvwwvgwwxxwvvvgwxxwxwwvxwwxfvwvwwggfvwfvwgvwvvgxwxwwgwwwwwfeeevgwvgfggvwwvfwvwwwgfvwgffwUVfvfgffwgwgwwvhvwwwwxxhwvffvffvwvffwufwwwuwwwgwwhwwWUWvfgfvffvwwwxwgvwwwwwwwhvuggwfwwxwvfwvvxvvwwwhfwwwwwvwwvxwXeeWgvfgvvvfvvvwwwfvwwwwwxhwfggwWwwxwvvwwhvwwwhgfWvvwwVwwwwwwwwfgwwwgvwwgvxwwxxwgwwWffwwxwvgfwgvUVexwgxwwwwxxwwwwwvxvuwwwUgUVewwwxwgvfgwffvgwvwgwvfgwugwgfwwvvwwwwgwvgwwwgwgvgwwVvvgvwwwwxvgwwwgwvgwgvfgwUVefgxwwwwwwwfwfgvwxxwwgwgwwwwwwwwxwfgvvgwgwXvfvvwxvgwvWvvwfgwUVeegwxvwwxwwwwgvgWwvgwwgwugwgvfgwWfvwxwfwggfgwwwgvwwGeFuxxwgxwwfxwwxfgxxgvvwGeFufvwxwwwgvwwgvWgwggfWvVfvvwxvxxwxgvwvgwWgfvggwxhvvwgffxwwwwuffwfghwwxwGeFuhwwfwxhxxvgwWwgxwwwvwggwgwwwwwgwgwvvwwwgwxugfxvgxwwhwFeFegfgfwwxwvwvwwvgvvwvwwwvevevfvwxfvefffwwwwgwgffgwxwwgfwfvgwvffwwgwxwwxwwwxxgewfgfwugvwwxwxxwwwgwffufwfvvgwvvgwwwwfvwwwwwwfvgwfwvvgvfwfwVggwvgvwgvwvwwgwwvfvwfwwfwufgvwgvwwwwwvwfwgxvgvwwxwxwxwwwwwwvwwwgwvwwvwwgwxggwgxVfgvvgvfwuffvgvwwwvwfgwwwwhhwvwheVgffwhwWgvvwhvwgwfWevwvwxgvwggfWUUwwwwxxwxwxxwwwffxwwvVUVvgvxwgwvwwWefffvwgfggvvgfvgfwwwwgfxwwwgfvvxvwwgfhwvfgfVwfxwwfwvxwvwWUVfgwwwfgfffxwwvwxxwwgfgwwxxwwwxwxwgfwxwwgwwggvgvwwvwwhgwwWUVvwgfwfgfgewwwwffvwwwwwgwwvwvgffffffVUwwwvvwgVgVWvvffwwWefgvgfgwwvwwwwvwwxhwwvwwwwwvgvgfvfDUvwwwwfwgvwwxwxxfwvwvwewegwwxwwWffgwgvgeewUfwwvwwfgvghvgfgwvvwvgUffffvwwggffwvgUfffvwwwwvWvggvvUfwvwwwfwgwWwWvwwfvvwvwwwgwvwwwwvegwwgvgwwgDUwwvwvUfffvgwwwxgvWwWvwwwwwwgwwwWvWffwxwhwhwvgwwwwwwvfffwwwfUfwXefwwvwwxwwwwxxxwxxwxVVVwWevwwgvwfgwgvgffwghvwxwwwwxffvxwgUfxgvwwwgwvwfffgvgfwffwgfwwwwvwVefffffgvwwwhgfwwwxwgUfxwgvwwwgvwxgvgfvvwwwwwxwhffwwfvwwffVVfVeVevwxffwwwwffvwwxwfwwffgwfUfvwwwwwgwwvuvufwggfwwfwevwweggwwvuwwwxfgwvvwuggxgWUfwwwUevgffvvfvfggvgvvvfvvwffgevvgwegwvwuvfwwgWwvvwfVwgfuvwwgVfwwwwwwgfgVwwhvevwxwgwfveffwwvwwggvwwwvwfVgwwvwwgfwvvwwwxgfwwfwgfWwvwwgvgVffgeUvgvwwgwvfwUfegwvvwffvwhfvfVwvvgvuWwfwgfvhwWvvgggxwwwwgwffvwwvwwwwwvwwwwwwwwwxwwwxwwwxwwvwwwxwwgfvwwwwwxwwwwgxwwwwwwxwwwwwhwwgwgffwxwwwvvwwwwxwffwwffvwwwwwwwggwfwvwwwwwwwxwgwvwwwxwwwwwwxggfvwwxwwxwwwwwwwwxwwwwwwgxhwwhwwwwvwffwwwwwwwwwwhfvwwxwwxwwwwwwwwxvwfwwvwwxwwwwwwxwwvxxxxwwwwwwgfwwwwhgwwwwwwggwxwwxwwxwgvwhvvwwwxvfwwwwwfggvvwwwwwfwxwwwwwwwwwffwwwgfwwwwwwggwhfwwwwwwwwggwxwwwwwwwwwvfgxwwwxwwwwwwvwwwwfwwwwxwxxwwwwwfwwwwffwwwwwgvwggwwvvgwwwfwwwwxwgfvwggvvwwwxwwwwwggvwwwwwwwwwwwwxwwgfuwwvxxvwfWfUxwxxwwwwwwwwwffxhwwfwwVfVwwwfggwwgvvgwfwwwgwffwuvuwwwwwwggwuvwWvwwvuwwvfwxwwvefUxwwxwxwwfgwuvwggwwwxwwvwwfwVxxxxwwwwwvxxfwvwwvwxvfwugvwgvwgefUvwxxwwwwgwfvwfgfwwgvgfgwwggvgffVhwhvwwvgwhvvhwgwwvgwvvfvfgdfwvwffwxvwvvgwgwvxwggvgwwhWfdvwwgUfwxvwvwVwffgugxwwWwxxxWgfwvvwvxfvgwugvhFfghgwfgxwwfvwwvgwgwgfvwhwvwfvwhfvvfvwgxwwugvhFfwxgxffvvxgxVvwwhVwvgvwxxwgvfUffgwgwfvxfveVfxwxgvvwgwvgfVgefwxwwvgwxhhwggvxwwvwvvwwxwxwwwxvwxvwwwxxhxwggxxgwggwwwwgxgxwwxgwxxvwwvxwwwhgxwwvvxxwxwwwwvwggwwwwwvwwwwwwwhgwwgwwwwwvvxxwwwwwghwwvwwgwxwxxwxwwvxvxgxvvwxwwwxwwvwxwwwwghxxwhwgwgwwxxwwxgwhwwwwxxwxwxxwwwwwvgwwgfvwwwgvwwwgwwwwwwwwwwwwwwxggfvwwgwwwwwwvffvwgfvwwwvwwwgwwwwxwwhwwwwwwwwwwwwxwwwwwvwwwwwvwwwgvgwgfvwwwwwgwwxwvwwhwwxwgwwwxwwwwxwwxwwwwwwwxwwwwwwwxwwwxwwwwwwwwffvvxwwwwwwxwwvwggxhggfvwwwwgfvwwwwwwwwwxwvwwxxvwvxwxvwvvWVfefgwwfggvvgvwwwwvwwgwwwgwwwwwXffgUVwvfgvvwgvugggfwwxvfwvwwwxvvwxwwhfvwwggvwwvwwwwgUVffgvfffvwwfwvvfWgfvwgwffffwwfwuwwvwwwhwwwfwwvvwwwxwfvwwwggvuwvwwxfxwXeegggfgwwwuffvwfgvvwwwwwhVwfgwgwgfvwvwxwxWvwwwwwwwvwvxxwhwvfwfwggvwwfvfvxxVVwgvwxwgvwwxwvwfgVTtwwggwwvgggxwwvwxgwvgggvfvwwxwxwfwgfgvgfeuxggwwvvffvgvwgwwwwvgggwgeuxgwVVgfwwvggvxvxhwwgfeuxfgwwgwwxwwwwxgxwggvwvvgvvwxgEExgvvwwwVVfgwgfggwwwwvxxgwfffgfgwvxhggwwxwggvwwgvwvxxvvwffwvfgfWvwwwgUvfwvwwwvwwwwwxwxwwwggETwwwwfgevvvwgfwgvfvfggwxwwwwwwwvwvwvfwgVehwwwfwfvvgfgffwwwwfwwwgUfWugfggvwfwwwwwhUwwwwwwgVexwgfwfwwvwwwwwwwvggvggwwxwwgwvwwggUfgfETgWvxfwwwwgfwwwwwwwwvvggfgvwhgfggvwvvxwxxwvwgxwxwggvvgfWfuvwwVVhwwgvvwfgwffvwwwwwxwwwvWfUvwwwVVxgwgwvggvfvvvwggfwxwgwgfwvwxvwwvwgfggewgggwwwwgvfvxwwwfwwwggwfgwfugvgVwwwwhwwgfwwxgggeuwwggxwwwvggffvvvwwwwwxwxwgxwxwwvgfgVugffUufgxxwfwwgxxwgwfwwgWwwegeuggwwwwxwxwwfvwwfvwvWfwwguffggvffvwwwggvwvgwwwvgwwwwwwwheVgvgwgvwvwvgXfugfvfgfwvvfvwwwwwwwwwwxwwXwwwgfWvwgwwwwxWefwwUfwwfvwxghfffVfwwwgvgvwwwwwwwvwwxgxWfffwgwwwwxhvewgvwwvwvwwwxwwwxxXfeVffVwwgwgfvwxvgxwwwwwwxgUfgwggvfgvgvwwwxwwwwwxwwxwwwxwgggvvwfVfwwwgwvggvfuvfvhgfwxxwwgxwfwgxwxwwgwvggvVfvVfxhvwwwwwgwwffwffgwvgwvVvwxggWewwxgxwwVuvhvwwfvwvgfeffwgwwwwwgfgwgwwwgwwgwVvvffvggwwwwfwwwWvwWvxxwxwwwwxwgvxhwwvxwvWwxxwwwwwewwuwwvgwwwwVvvVvfggwxwwwwwwwgfvwgwuwgfggfwwvwwggevgwwfwwfwgvegWwwgFfwvgufwvwwvwxxxxwwvwwgWgwvWwfvWSewvwxwxffxvwwuwwxvwwhfewwgvfvvwfWgufgdvwvxwgfwgwfewvfwfwwuvwwFfvwfdffwghufwfwwVwwwwfVguvgduxvwgvwwxwxxwwwvfwvwfvwhgVwwuvwwFVvgwguwvwgXSefgwVwwfwggxfwxvWvwxVfvgwvgvxfVvwxfxgxxgffffgvwwguvxwVgvfvghgfwwgvwwwgvwwwxwvvwggdewwFVvguxwwwgvgwvwvgggwfvgwvvwvwvwxggggxwfvxxgfvgfwwvwfevggffwffwhwwuggwgggfvfewwwvvWewgwwwfvxwgfvgfxwwxwwwvvxwgggwvwwvgwfgvwgwWwwwwugwgwgggffVdggwgufVdgwwwwfvwfvxhwfwwffgfggggwfwfwgvfvwwgeeUvwwwgVeufgfvgvwwuvxxwwwwhvwwggwGVevvgTfgvwfxgvxvegUvgvwfwwwxgvwwwweUvghggvwwhUvggffVgeeffUvfuwvfgxffwgvfgUvwewVvwvwvewwwghggvvwhUvvgxxgvwwhUvwfwvvwgeffxwWuwgwvVgEuwvwVwwvgfTfwwhwVegxwxggvwffwWvfFfwxwgwxvwhwwgxgfffwwvvgwggwwvwwwwgxwvxxwwwwfvvvwgwfwgvwgwxxwggwgvwwvgwwwwgwwxggvgwwwwwgwvwvwvfgffvggwwgfggwwwvwggfwwgvvwgwvwwwvwwwwvwvwgwgwwvwxxxxgwggxwwwwvwxggwwwwggggffwvwgwwvgvwgvvwfwwgwvwwwwgfvgggggwvwwvwwwwvgwwdvvfwgwUVfvwfevvfwvwwwwwgvwwwgwwxhgwwFVvvwgewwWggvwxgwufgufwWwvwhvfwwuvfwwwwgfvwwwvwwwXfWwdVffTvfvwvgffwxvgwwhweUffvwfwefvfwwvwwwwVggwwwvwwgwvwwxwwxwfgfvwgwwxwwwhuffxwgvwvteefwwfgevwWwwvgwwVwwxvwwxwwwxwFevwugVvwfgvxxwxwgvvvWfvwfvgvwwggvWvvwwfwwwxwgwwwvvfuwgvwwgffgfwwgvwwfwwvvwWgwwfxwwwwvWfwwwgfwwfwxwwfggvwwewwwggwfwgfxggwfwfffeuxxwwwwwwwggwgwwwwwfxwwxwwfggfxwwwwwxvgwwwxwxxwggwwxgfwwvefvfuwwwwggwfgwvwgfwgxwuewfvwvwwggeuwwvvwwwwwvvwwwvvgfvgWvvwfgvvvweefvgwwfffwwvwggvwgfwwxugfufwvefwvggfvgfvgvwxwuugwgwxvvvgwwhfwvgfgwfgwvfvvwxfgwvgvuffUvxwggwgfffvwwvwwwwwwgfvwvwwwwhffvfgwffwwxhvvgwwgfwxwvvwwxwhfvwwwwXvvWVfffwxwvfvwwwgfvwfwvgXWvgwxVewggvwwxgfwgwxgwvxxxgWwwgWfvwvwguffwwWfwgwgWwwwwwwvwwxwvwwwguffwwffwxvgwwvhvxxwwVgwgwgvxvwvxvggwvvwxvvwxffxwfeeuvvffgfgvwwfgguwhUvwvWgvVfwwwgvwwwwwwvvwxvvwwwVgwgwwgvvxxgvxwvwwVWfugefggwwgvwgvffwwvgvvwgUuwvgwwhvgvgfvxgvxwgwxxhxfxwwwgvwgUvwWfevxwgvvwwwffevfVUUwwwwwxgVuwgffvxwwfgvvefVwwvwgwwgfWTEevfGTtwwwwwwwxwgUvwgffxxxwwxwxxwwwwwwwxfxwwfwwffwvgfvwwwwwgVuwgfeuwwfgwwfffwfvwgwwgfVTEeffFTwwwwwwwwwwgxwwwgfwfvwvffwwwwwwwwfffffvUVwwvgfwxwUVVfuUUUVvwvgwwxxwvxwgwwwffvgwggwgffwvWVffweffwgwvxwggvgvvgxfwwfgvfffvfgwxfffffefeefffgwxwxwwwxwggwwwwvwxxxwxvwwwwwhxwxvwgwvfvwwwgwwhvwwvggvgfffwgwvfwggfWwfVgwffffVffeffeVgwxxwwfvwxwwxxwwvvgvgfwwgvwvwwwwwxfWvWfvggvvvggfwwwguVfVfvfuvwwgvwvhvxwwwFfhwfwFfVvwvvwwwwfgwwgvfffvwxwVVxwgvVVWvwwvwwwhvvfgvvvUe6uwvffgVVVStvxwwwwfFfgwfwfgVvxxwxxxxgexxwxvwvvuvwgvgVggghgwvfvhVVxwwvVWfewvvgwxwvwwuvUeFvwvVWfVVVSxfwwgvvvwvwgggwwfggvhvgevvwhvgvxxwwwvvFVvgffdwvuVVweuFVVfwwvwghwgwwwwvfvgvffVfewwwvfvfgffgffffffwwwwffvwvffVfevffvxgfwvgwffff5USffwww5USffhggwwgwwffvwwffVfewwxwxwxwxwwwxwhvgffvwwfvgwvgwfffwwwfgwgwvffvwwfgVfevffvwhfvwwwvfff5USffgwv5USffxwgwxwwgffvwfvfwwwwwfffgwvgfhwwwfeVvgxheVffwvgeVffffffeVfgffvwwgvvxxwwwgwvgwwvwfWWwwxwvwwgvVWgwvvegWvwwwwwxwwwwggwwfvwhwxeeUwfvwWVVuwfVVfffwexwwwwwwvgxwvwwggvwxxxwwxxxwxxwwwwwwwwwwwwwggxxwwvvwwwgxwvwvgfwwgvwwwgvffgeuwfVVvwVVVuVWwevxxhxwvxwwxwgwwwvggwhxwvghwxwvfwhwvfvwgfwweeUfvfWgwvvgfWgvwvefhwwxwgwfffvFfwwufvgweVwwgGUefwdevewwgvfffwVgvgufvfUfwwgvwwwgEUfgUUeFffwuvUfwwxwgggwfWvvfffwvugwwxwwwwwgwgwvvggvwVfwfgvfwwefdwwfwvhwfgfvVVvwfegfeVfgwgwgwVVfgUdUVVgfvfdffwfgwwfuwWwwffwffvvgxefewwwwffevfUVfvfgwggwwgfVUFfgfgfffFwvgvxwhvwwwxwxUfxwwwwwwWVffxhvfvfVfgwwgvgUUuweVwwwxwwgffgfvgffgEUTwwwwgffvxgffvwwVDtxwwwUfwwwxwwgffvwwxxxwgvwwfwvvfwwggwwwwwwwwgfvweVwwhwvxgVfuggvgfgwEUThgwwwfgvwWffuwwVDthwwwvgvvvxwwgwxwwwwwxgfwwwwWfewwfffvvfUUwgffwwVUwwwVUVUvvvvwvwwwgvwwwVfwwvfwwfgfWeegvgUVvweeefXvuwwwvgwxvvvggWUevVfVuVfwvvffdedvvvfgwwwWgfvwwgffwwwgwwxvwxwwwwxwwxgvvvgggvwwxwxwwvgvwwwxwghwvwwwfgwxvwvuVvFedwFVFffgwwwwweWeeUvwvfgvgxgwuwWgWwwwwwwwwvvvwgwfvwvwwwXfWVVVgWvvwgwgwwwxwgwgguvwgfwgvuwwwwfwgfggvvgWggwgffggggfVwwgvuggwwfgwvgwwfgfgfvVeuwxfgvvfufVfgUVvvugXfVgvewwwvwwVggfwxgvVggwvgwwwwxwxxwfwwWwwuvvvwwvgwgWgwwwvgwfgwvgxwwggfwUeuggVgvvwvvWfVeVvvfwgVffvvvwwwggvgvffwwwwwvgwwgfwgwwvggWfwffvgWvvuvfgwfwvefwwwgwvevgwgwwwgwxwwwvxvwwwgwwfvwwgfwvfwwuvgwWVvgexwvwwwwwwgvvgvwgwwwgeUfUugwgwgWufwvfffVefWxwwwwwwwwwwwgvwwwxwxwxgwxwwwfxwhwwwxvwgwwgwwvwwvwgwgvwWewgwvgvffUvxwwwgfffgeVUeVUfWxwwwwwwfxwwwwxwwwwwwwggvwwwwfvfwfWfUevwwxvgvfvvewfgvvvewwvwxxwwwWggwxvvwwvgwwwvxggwWgwvvvUVUuwgWxxwwvvwvffwuvgggWEDRwvvgfvvfT5vgggfvxxwwggwgwwuvwffwxhxxxvwWgxwwffxvxwwwwwwfwwwwwwggwwwvuwvvgwwvggggFUcwuwwfwvUD$egfgfvxwwgWwgwvvxxwwwwfgfwwwwwwgwwwgwvwgeUUgfvffwwgfvwwgwvffwwwwwfgwwwwgwwgWwwwvvvwwfgggvvwvvfgggwgfwwvfwgvggwxvgfvWffefvfgVfFVwwvwffgefdgwvfwwhvwugwfgWwwwvgvxwwwwwwwvxxfxwwvgvgwwxwgvvvwwxwwwgwvwggwwvgvvWffffvVgVgFVwwwgvfgefdfgvfgwxwvwxgwwfwwggwxvwuvgwwxvffvfwfvvfggfgfwvgvfwVwwwxggfwwvvgwwvvvwxwwggxgvfwvgfffwwwVgfVwwfgfvwfffuwggwwxwwwwgggevvgVfffegwwwffVvwvvVfffvfuwwwgggvwfwfwvxxxxxwwfwgwxwvvffwwwwwwwggwvwgwwxwwwffvgfvggfffUwfwgffugffffffvfxwvwgxhwffxwwwwwxwwwwwvwvvgwgffUwgfwUwffgfwwgwfwwwgVxwwgfgVwwvggwwgwvwxwwgwwwwwwwggfgeevfegfggwgffwvvwwwVVwwwwwfEEfffeewgfVVwwwwwgfvffwwwwwwwwgwwwxvvffwwvwwhxxxwwwxwwggffwgwwwwwxwwvgwwwfxwvwvvggwwwwweVVgeuvvwggEEgfwgvVVvwewwvwwvgggvwwwwwgwxwxxwwwwwvxweeufvwfgfevVvwwwwwgwggwwwwgvwxgwwwwvgggfggwwwwgwggvwgwgfgfggwgffwwwwggwffwwvwwwgVUuvwUUvwvgffffvggffwhwggvxwvfwwwvffvvwgwgvwhgwxwvwxwvwwxwwvwvwvwwwfwwxxgxxxwvgwwwggwvvwvwhfVUuvwUUvxvgffffvgffvwwwwgwwvvwxggwwvwvvwwwwvwwxwxgwfgwffwwvvgvvwwvwxffwwvggvwgvvwxxgxwgfwwwgwfwwgvwwwwfvvwvffUuwggVUwffVUVgfvwwwffwwwvwfWeeDufVfUugvwwwwfvVfVDwwwgfvwwgwfwgWewwxgfxwwxwwwgwwwwwwvewwwwfvwwwxxwxgwgUwxwwgwgfuwwwwfxwwfgwffVUefefEtgfwwgfggefUgfgfwwwwfvwwggvwgxwwwxwvgfxwwxfWwwwgvgffUuwgvfuwfwVwwwwwwwwvwggxwvvwxwwvggxwwvvwvvwwgwwvfffggggfeeufggwvffwwwwwvvwwvfeUVVEEvwevvfvvwggeuwgwggwwwxxwwvVVwwwvvvwwwwwvxwwwxwwxwwwggfwgwwvwwxvvwwwwxxwvwgwwwwvwwwwgfvfffVVvfffeuwwwwWTdwgvwwwwgxwwffwwwvgxxxvwwwxwwWVfvwvwvVVfvewgvgwfgwwwwwxwvvwwxxvvffwwgffefWevggwwvffvwffuVUtgfveUwfvffvwfvgvuwWwwvffvUVgveeeVEuUfwggfewgvVVwgvwgwxwegvugvfggwgvvfwxvwwxxxwwvVfgwvwggWewwgvVvexhvwgfvgvvfuWfwgwgwvfveVgfefdVVueVwggvfwgfeVvwfgfvfgwwvvfgWvwgwfVvexhwwvwvfwwwvuffeFuveggvVFffuwvuWwxgwwfwggwwvwwvvxvwwwwggfgeUgeuwwgvwwwwgfwwwffffvhgvhgvwwgfdgVwvggvWwfWuwwuffUvwvxgfeFUTsxfxwwxgfwgeevUxxwwwwwvwggvgfxvwwhvgvvwfvwffexgvwgvwwgfdfVtwvwwwgfgfvvwuffUvvgwfVe6UTfxxgWwgVwwvxfffuwgvgvwvxxgvwVuvvwwffdVFhwwgvwgufVwvfVFVVwvffwwxxwvgwvgVgVevgvvvffwWUfgvWEUffvfffwvvwvWWfgfvgfwgwfefUVfevFfgwvwfVeeVefgvfgwgwwwuwwwgfgWfvffxwwwgwxwwhxvvwvwwgwggfwvgvgfvgeVgewwgvvfwwgfVfUvffwgwvefVUWfvVVgwwvvVUeUdffugwghxvfwwwxvwwwvgvffVugeVgegvwuvvwwgvufwfvuWwggvffEwxgwWeFfevvwvvvwwwvvxhxvgwfwfvwgvvvwxwwgffvwgffffvhhxffgfgvvwgwwvwxffwgwffVUfeUufvgvWeUvwvwvvvxwwgfvwvwfwfwhgghwvvvwwxwwvwwwgwxvvvgfwvfvvvxfhwwwwhhxwwgvvwfvwgwwwwxxffwgwvfWeUeUvfvwvgeUuwvvvvgxfgxvvvgvfvfwvvxggggwwwwfffgfxwggwvvwgfwgvfffwgwwfwhfffwvffwwwgxwwwwggfgvwffwvWfwwwgvefggVfwgvxwwvfvgVwfwgVgggwvvwfwgVgVfeffVVUwggVfUggwwxwwwvwgfwgfgvvffhwxwwxwgwwwxwvvwwgfwgvwwwgwwwvffgwvwgwwfvwwwfgfwWfWWgwgvfVggfvefWfVUvgfVVevWwxwwuwwevwwwwxwwvgwgVgwvwhvuvgvgevuvxfggevwvgfwfuwwwwvffvwvwvfwwwxwvwggvgwwwwvfgwgwwwwwvgfffvvfvwwvgghwwwvwgffwgvgffwvffwwwVUefvwgWUuwhfvgxvwxwwwgwvffvwwwwghwwvxxxwvxwggwxwwvvwwxgwvvwgwwwwwgwwfwwwvvvvwgvgffwvffwxfVUefvwfWUuwgvvgvvwwxwgwxwwwwwwvwwgvggwvggvffwxfwgwxfwwvxwffwwvgvvgxwwvxwgwxghwggwggwwfgvvxhgwwwvghwgwwwffvwwfffffwwvfwvwwvfwvgfggwvgwwffVUUeewwwvwVeUgwwwgggfvfvxhgfwwvvwvvvwghwhwwgggwvwvxgggfgfwgfggfgvfxggwgvvxhwgwwvgfgwhfvgvwffeUVeUwgwvwUeegwgggwwwwhgwwgvfwwgwhvfvvxwwgvfwgwwhwxggvgfvvggffffffgvgwvgwwfUvwvwgVVxwvvfgfffufwgVfhwfwedvwWEuguvfffwwfwfwVfwufgeexvVVgfvvgwfffdfUvwgVeTugvwwggVggvwffgvgfwwwwvwxwwwfVgffffUwgvwwwwvwuwvfvwwgfFgwwwfgfvgfuffdwwUEgwevgvffWefVuwwgUUuwwwwwggfVffTwgvwwwvwgvfvfwgfgfffgfdVfwggVVTwggfwggwffwfVVewxffxwwgfwhwvvvwwwwwwgwvfwwgfgwfvwvvgfggvvvvvwuwwgwWvgwvffgffffedfFugfwwgvffWwfUwvvgfwwwvvvwwggfwvvfxwwxxwxxwvvvwwwWxxwfwvgxwwvvvwxwvvwuwwwxgwwwgffgfffeedfFugfwwgwvfWvfevwfwfwxwvwvwwggxgvwggwwvvwvgxwvvvfvgffvfwfvgWvvwfvgfwwwwfggvwwggefeuwwvffwwwgvvvvwggfeeegffvVVfffeuvWwvffwwwwwvwwgggVUeffUUwfwffvwgffgfvwgggfwwwwwvgwwwwgfvwwwfwwwwwwwwwwXvwgFFgvwgvvwWUwwwwwxgwwwwvvvgfwgggfvwwwggfffffffwwvVUuwwgfVUugvwffvwgvwWFFwwwvfwVUuwwwwwggwwwxvvFFUUvfvFFwwuvfvwwUUwffgwvwwwffwwwwhxfVgwwfwwxwuwvxwvufwgfVvwwvgfdfVvDUTVewvxwvxffwugwxwxhfgwvwvfgufgfvfgweffefxwwwwwvwwwwfvfvfWfxwwxxgxwxwwwxxxwwWvxgwwvwwfwwwfwwfgVvffeffwgvwvwuVwfvgvfvfWeVufVfUFeTExwvwwhvwwxwvgwgvwwgwvxvwgvwgvgwvgvfgwwxvvxvfWffvvgwgvvwwgvwxxfwwxwwggwwwhvwwUfwfwWTtwWVUwwwxxwwhgwwxffwxvfvwwwwwwwwgffvwwWevwwwwgvwgwvwxwxwxvgwxwwwwxxwwwwfwwvwwgffvwwwUfwwffvgfwgwvgvWVUffgVTwwwxwxxhwwwwxxxxwwwwxffvwffwwwwwwxwwvwwUfwwwgwgwwwwwxhwwxWwwwvwwgvUfwgvgVevVgUfeffwxwgwvwfgwvwvwVwwvwXwggFfwwvwwfwdfevwgwwwwvwugwfwVwgxvgwxxxgwwwwwvhwwwwwwwxwwxvwwwwwwhvgwfwfffweVfwWvwuwvWgVgFffweVfVgdVeefwVvwxwwwwxwwwwwwwxwwvwwwwwxwvwwwwwvgwwwwwxwvgvgwwwwwgwfwwwvxwwgfvwwwwwgwwwvfwwvvgfvvfgfETwwgeUUUuwwvwxgwfvxgwwwwvgfwfgfWufvwwwwfgwfVwwxwggwgvxwwwggfxxxxxwxwxwwxxwwwxwwhvwwwggxwwwwvwWVUvgfwwwwvffwfffVUUuwfwVeffVEtwwwwwwxxwwxwwwwwwwwgvxfgfxxwwgwwwgfwfgfgwvffwwwwvfffwfUfwwwxwwwwwfffwwwvWuUffWefVefUfUfeVfwhvgwfgfwfvwwvUfgffvgwwwUfwwvwDUvfvvgwwwwwwggfvWevVfwwvwvxxxwwwwwwwwwxxxfwfwwxwwvwvxwxfhwWWUvDUfvvfweUfVefwggvg3DfwuVgUfeffvwwfwwhvwxxhfffvwwfwfwvxxWfgvwwwhwgvwwxwwgvgvggwvwwgwwgvwxwvfvwgwvwwfwgfwvvwwvwggfWevwwwfUfvwgfgwggvvfwwgvhwgwwwffwfwfxvwgffvgwgwxggwwwwwgvwwwwffffvgvvwgwwfwvwvvgxxgvwvwwwxfvwwfwgwwvwgxxwhvvwfUfgvgvgwwwvfwwwfwfwxffffffffvfwggfgwvggwwffwvxfwwwwwwwvgxwwgwxwxfwfwvwwfwvwwwxfffwvvwwgwvwwhwxhwvVgwwvwxgfxwwgvvwUggfufwfWUewVWEdfvUVffggwgwxegwwwgVuVUfvWefugvvwUgwffDVffggvwwvwggfvxwgVuwwfwwwwwxxwwxwwwwvwwgvvwwwwxwwfwwwwwwwgWfvwwwfvwwfwwvgvVUVfFdevfvxwfgwffUVVfvwevwwwgvwwhvwwwwwwxwwwwwwwwwgfwwgvvxvWeefgvgfwwgvwwwhwwgwgfwxgggffvhhwxvfwwwxguWvWvwgVWefeUfvUfTTVeFffvvfwggffvgxwfvWVvUfewwgvwwgwXefwwgwwvwhgxwUVvvfwfugvgwwwwwwwxxwgfffwvwwwwxhwgwwwwxwhvffvfwVugvgvgWWeVUfffewvUefwfwgGeFeffwwvvwhhffwwvwgxhwgwwwxxgUfwwvxUfuwfvwgwwvwvwwxwvvggwwwxvvffhwxwhggvwvwwxvgwfvVVvfeegfvVVgffffwgvwxwvwwwwvwwUfxwgvgggwfgwweefwxwvvvvwgwxxwwvggvgvwxfwvfwxxxxgwhwwwgwgwwwwwwxwwwwggffggfgwwfUffUfgffffVevfffgeUfwxvffffffvwwwwvvhwgwwwwwwwxwwwwwgfvwgggvwggggvwxvwwgvwwwwwwwxvxwwggwfwwwwfwxxfwhvvgwwfwf5UwgvgUvfWfDwwwwxwwwwgwfwvwUfgwefuxvwvwwgVfvwfgfvwxwwgxwxgwwwwvwxxwxxxxwwxwvwxvwggxwvwfgffvxfwVfgffFTwfvhvfwgvevwfVUwxxwwwwxwwwgwxwwwwwwvwwVfvwwvfVxwwwxwgxwwfUwgwwwxwxwwxwwwwwwvfvwffvwwgffwwvwwgxwwwwwwwxwwgfvwwwwwwxwxwwvwvwwxwwxwwwxwxfwwvxxxwxxwxwwwwwwwwwvwwxhwwwwwxfvwwwwwffvwgwgwfwxvwfvfffwwfxwwwwwwxxxwwwxwwwxwxwwwxxhfgwwwxwwhwxxwwhwwggvvwwgwVwwgwwwfgwvggfffVfvfffgffUVgevgVwwwwvhfgwxfdvgFfwwvuwfgwvwuwghwgwwwwgwWwffvfegfwvgwwxxwxwwxxxwvgxwwxvxwgfvxvhhxfWgvfvfugfgwggfffgvUffwvfdffggfgdfwfWfefvwwwgwwxvwxvxwgxxwxwxwxgwfvvwvgwwhvwvvxfvhvgwgxxxwxwvwffwwwwfvgfwwwxwvwgvvffefeegffffffefVwhUvxfgvxwxwfVevfvfgvgvVexwwwgvfggwwwwxwgwffwfwgfgvwhwxwwxwwwvwwwwwxxxxwhwxxxfgffwfwVegvgxvfeefffUVffuVewwghwVefgfwwvwgwxfwwwwxxwxwwxwgfvwwwwgffvgvwwwwwwwvwwwwwwwwwfgvvgwwvwggvgwwwwgwgwwWffvWEFeEUeeeUefwfgwfwwwwwfvwwwgeefgwUffgvfefwfvfgfuwWfvgwwwgwvwvgwggwwfwwwwvwhwwvwwxxwxwwxwwwwxxwwhffvuwfffvwwwwWUeVVfVVfwfdTffefVVUVvfgwfwwxwwgwwxwxwwwwxwwwwXVvfgvwvffwwvwxwgvggvwwwgwvxwxwwVVgwxvwwvwffgxwwwvVwVVvgfffeufgVVvUfvgggwwffwxwwfVVxwgffggwEEgfwffggwfwwwwwwwwwggeuffvwggfwgfxwxwxwwwwvwwxgwwwxwwwwxgwgweWUeWeuvvwwvfgf44vwfeeVevVVffvffwgwwvvfgwwvwghfwxwwwwwwwwwwxwwwwvfwfggwvvgfwwwgggwvvgvwwwwwwxwvgffvxxwwfVefvfxfwwwWffUffVegfffUfefgeewgvgfwwwgvwvwWDeVeVefWwwfwfwfffUvfvwfwgwxwwweVewgwgUfUvgvwhwwwwwxxxfwgwwwwfwgwxfwwwfwxwwwwwVUUwgfwfgUewffgUVfe4CfVVwfwfwvgfUfwvfgeugwvwwgvgfwgwgwxfvwwwwxwwxwvvgvggwfvwgvwfvwwgvxvxwggvwxwxwwwwvwgwwwwwgvwxwvwwxwxuvfgeVUUwgwUfwwvffVgvvwwwwwwxwwvgfgVuwgfVwwwxxwwwvwfvwwwwwwgwvwxwwwwxwwxwwxxwxxwwwxwwwwwwwwxwwwxxwxwxxwWgvfwwwfgwwwwwugfVUuwVffugfwwwfgfewwwwwwwwgwwwwwwwwwwwxwwwwwxwfvwwwwwwfgfvwxwwwwwxwwxwwxwwggwfvxxwwvfwwwwwwxwwWfwvWUUVvgwffvvwwgfvgwvwwgwwwxxggffVgfwvwvvvwxwwwfwgwwwxwwwgvfvwwwwfvwxwvwwwxwwwxgwvwgwwwwxwwwxxwwwheffvwwwfvwwxwWVeVUVUfvfvgfwwwvwwwwgvwwwwgwwwggxxwxwwwxxwwxxhWfwwvgwVvvwvxwwwwwwxwxwwwwwxxgeggwwwxwvvwwgwgfwwvVFfwfdfwegFeVfeWfgwfxwvgvvgwvgwhgvvffwfgvhvgwVefgweVfvxwwgvxxfggegvvVvxxxwwxxwfxhwfwfwgwwgwwfwgvugwwwgufevFewggvegegwewfegveWvVefFeeFfegwxwffxvxwwwhwgfggwwfwvwvwwgwffvvwgewwwvxvwvgwgvfgwgwwvfewvwxwWwwgwwvgfgwfhgdTfgfvfFfffgTfgdWWuwwwfVgfffwwuwww5UwWwgfgfgwggdvwvggfgwwwwgwffvfdffgwvwxxxwwxxxwWwwwwxwwvwxxvwfxwwwxfgugwwdDVUVwefwvwwwFfwhwfdffVweFBdgdVgffvvwwWWuwwwxvwwwxxffwfwwxwWwwwwwwVfwWwwwwwfwvgvwxxvvvwgwxwwvffwwwwwwwvwggwwffvfffggffgVUvgfVUfffvwvggfvgwfwvwvggwwgfgfgggfffUeewgfgvUVegwwwwxwwvggffgfffgwvxxwxhwxxwhxwvwwxghxwwvwwhxgvwwvwfwvffvfggfgwvvgfgvwgvwwvggfffUVefgwgfUeeffwxvwvvvggwhvwwvwggwwvvwwgxwvvvwwgwvvxwgwgxwvwwggffvvwwgwvvgwvvfwwwfwwgvwgvwwwfwwgffffgwwffffwgfvwvwvwvfwfwgfwwvwwvwgvvxwfwwffwvgfwgvfwxgwwfgggwwgfwfwgvwvgghvwwvwwwvwvwgvgwgwfwwfwwwxfwhfgwgwwvfgfvvfwvwwxwVewwwvfgUvvfgfvvvgfffwgfwwvgvwgxwgwwwwvxfwwwvvgxwvVewgwgvhxwgwwxgvgwwggwwwgwwvwxvvWwwwxwwvgvwfgwhvvvfvVgvffVVeVfgVguefwxwwwfvfgwwwwwggwwwvvwxgVVfwvwwVVwvvvvxwwwwxgwvffvgggfwwgvwxwxxwwwxwwwxwxgxwwxwhwvwwwwwwvvgvvgggfwgufVVfffeuwwgeVfgeeegVwwvvfuwwwwxxwwwxxwwwwwxwwvwwwxwffvvxwwvvwgwxwhvvgwggwwvwggwwwvffvvwwvwwwwfWwwvwwwwwwevvVwwwUUfuwfffwfgwwwuwwvwwvwxwxeewwwgwwwweUfevwwwvvwvwwwggwvfggwfVgfvgvwwwvxwwxxwwwxxwwwwxxwwxwvwwwwwwwxwwwXgggUgfvvfvwwgdTfwgfgvhfdTUeevfVefwffgwwwwwwwwxwwwvwfvwwwwwwwwwwggwgvxgwxwfffwgwwwwxvwwxxvggvxwwwvxwwwwwwwwwuwVUfeevgUvgfVeffUwvfwwwgfwwwwwwgwwwgeUffuwwwwwgwgfvwfwgwwgwwwwgfvwwwggwfwffwxxwxwwwfwwwwvwwwwwwwwwwwwwxgvVuwfggfwffVVwWffffUUfUuwwgvvWfgffgffVVfgwxwwfvwwwfwxwwwwxxxxwwwwgwwwwwwvvfwwgfwfwwwwwwwwwwwwwwxgwvgfguwwwwwvwwvwxwfwwwxhFevfVVUdfvedvvgwwwvwwvwxevwwghwwWgffvggvgfvxghefvvwxxwwwgeWwwwwvfvfwwfwwwwwxwwwwwxwhwggwwwwwxxvvgxxhTWwvgvfVugvxvHffGFUfvvgvfUuwwwwgUufUwwwwgwwWVgwxwwvvwxwxgvwgwxxhgfwwxVgvwvvxwwwwwwvfvwxwhfVWvgwfxggvggvgvwfgxwVVgwvufgeeVgvVevgwffggfggfwfwwgggwfwgefwvWfwfgvwwefwgwvgwwxffhwfvvfvfgvwgfwwvwwwgghgghfgwvwgfgwhfwggwwxfvxwwwwxevvguffwvffxwVVfufWeuwfWgwVewgvVVwwgfgfhfwvvvgffwhgfgvwxgwwwhwwwwuvfevwfgfvwXwfwgvvwwwgwwwwwxwwwxgvwfgvwwxvwwgwvvwgvwgwwwwwwgvfwwxgvxwgwVfUvxwwwwwvwwxxwwgvwwwfgffVfuwgwwwwxfwvggfxwwwxfwgwvxxxvwvwhgxwgwwwwvwgwwgvxwgwVeVuwwwwfffxwwvWffuwgffVvVVeuvwxwxfffwhvfwgfUfvffexwwwvwwgvvwvVVwwvwgwwwffwfvfgfffvwgvwwffxxwwxxVwwfgvwfVwwwffwugVfgwegvhgfwxwgUVfwuvfwfwfefvWffwVgwxugwfwUVefwfwwvVgwwevxwxgwwfgfxxvwwgvwxvwgxwvhwwwxwwxgvwwwwwxgffwvvgUffvuffwgfefvhffgVwhvwgVveVffgvwvwwgfgggwwvfwwxvxfguffvwggwwvwwhvwgvWffwvwxwwvWvfwvwxvVffWffgwwgvwvuxxwgwwvxfhwwwgvxfwwfwgvWefvfwxwwgFfwvgvGgVwwwxwwwwwwvgVgwvwvhwghuvfwwwfxxgvwvgugwwvgwggwvwvgggwfxgwgwwwhxwwvxxgwwxwwwgxgFewwgvGeuvgvwxgxvwwwvgTfvfwwgwvGeVfvewwvwewvwuvvvwfwvWggggfwwxWvwwwwwewfwxfvwwwvwvwwfgwwxvwghvVwgfgwxxwwfvwugwwfwvgvEfwgvggdfUfFfvWwvhfVggvefwwfffwfwwwwwgwwwTfwwffvdfVwwfwvwwvwwfgwvwwfgfwwfWvvvvwwgvwvwfwgvxxwwwwhwwwvwvggvwwWwwxxfwegfffWwffVwVFevVvgwgvWvgwffwwfFfgvVvefFfugvwvhfwwhfvfvuwwwvguwVfgwwwfwgfwwhfvgvgwwwvgwgvgdVvwhvgdfgvgwwwgvwwfvwxfwwfwghvgxwxvfwwwwwffwvwgfvwwwwfwgfvgffufwgwgvwwwwwwwfvWugwhfwwwhwwwwwvvwxwxwvwfvwvwwwwwwwxfvwwwwwxwwwwwwxWevgwxhvwwxwxxwffgffVefvfgfwwwwwwwwwwVefvggwgefwghwgwwwwwwfwwwwwwgfvwgwwXefwwhwwwwwfwwwwwwwwxwwwfvufwfwwgwvwvwxwWVwgeWwwwwgvwfxvgewuWwfggvwgevwwgwvvvxwfGfwxwwvvvwfvwxwwggwwfweWdfTwxwvvfvvgwgwfWwvvwvvwwfewWexwvwwvhwxgvvwwwwwwwwwgwvxvwwvvwvwvwvvwwvwwwFVuwgwgvffgfgwwwwwgwvfwegTVewxwwwwfvgwwugxwwwwwwuWwwfvfwwwwvvwwfwwgwWfgwxwxwwwwgfwVfWfUgWevwgxwwgwvgfvwvfwfvwgwwvwfgfvgwfUegVewVVwfgeeffwgfvgwveUWvWuvwWVvwwUegxwgggvfvvwfgvgffgwwxvwwgffwgwhvwvgffwwggwwwwwwwvgwvwfwwffwxwxwxwxxwwwwvggwwWVexgfvwWfWUUvffvgvVeVfexwwwgVefffvgVUefgwfggffevVfgwwxwwwwgvgvvggwgwwvvgvVgvwfwwxUfevwxgwgwwvwwwwwvwgwvfgwfwwwwwwwxgwxvwvfweVfgvvgvvVVffefegWevwwvgwweefwfwgfvgwwvwwxxwwwvgfffgvgvvwwwwfwxwfgwxwvvxxwxwxwwwwwwwwwwwwwvwxwwvwxwwfWeewwwggwxeUfvggVefvVfVvfwffvwheefwvwwfwgvfvgggwwvvwwwvffvvwwwwvvgwggvgfgggwwwwwgvxvggwwvwwxwVWuwwgvwwffwwwgvwwWwwwWVevwwwuUfefVugwwWwffvffgfffvvgwgfvwwfffUfgffgvwgfgwwWvggvwwwwwufgwffgVevwwwxwgffwwwwwhgfvUwwwewvgvwwwwwhvwwwxXuguffuffGDdvwvgWgfVfffwvwwGDtwwvggVeVevwwxwwgffUfwwvwvgffffwwgfvvgwwwxxUffwgwvUwvwwuwwfwwwgwvxwwwwwUwwwvgwgvhwfxwgwxwgwvfVfgfdvwewWvWvvWfxwfwwgVewveVfwgvvevfhvewgwxwgwgwwgwwgwwwwwwwwwfwwxgvwwgvxxwxxwwwwwwxwvwxwfwwwwxwgwxwxgvewwwVegveFfwwwfUvvWfevWvwwgvgvvWfvWwwgwvvwgwwegvwvgwgvwgvvgwwxfwwhwfwegwfgwuwwvxwwwxwwvwwfwgwhwvwxwvwwwwwvxwhwhWvvwgfvvgxvewvwvwfgvwwwfgfgwwwwwgfvgvwgwwwwvgwxvwvhvwwxxwvwwxwwwwwfwgwwwwfxwxgxwxhfwwwxwvgwwfvffgegwegwvXWvgvwhwwwwwhfwxfwfwwwwhgwfvhwxwwwwhewfwxwgwgwxgwwhwvwwwxwwhhwxvWvwxwxxvwfgvvwwwgvvhwvfwwwwwwvwUVvWevfeuUfggvgfvffffvvfggffgvgUVwwwwfggeVgfggfwwvwvwwfggwwhwwwfvwwgwwwvgvwwxwwhwwwwwwxwwwwxvgxwwwwgwvxgwwwwwwvffvwfvffwgeVewgfwwgvVfevffgvffuwwuVfvfffwgfvgwvwwgfwfgwwgwvxvwvwwwwwwvvfgeVwwgwwgfvgvwwuWwxwwwwwgwvvgwwwwwwwwwwwwwwwwwwwwwwvvffgwwgWuwwxfwwfwfVeggfvfgVfwwgfVgwwfvwgwwfgfvwvwgwwxvvwwvwwfwxwwwgvwwwwwwwwgvxwwwxwwwwfwxffwwwxfwwwwwwxxwwwwffggvgUfUfwuvvfvwffwhwwfwfwvwvwvhwvgwgfvgvVewhwfxwwwwfwwwvwgvgwggwwvwxwfggwwgvwhxwwwwwwwxwwxvwgwvwwxwxwwwwwwwxwwfgvgvfvfvvvgfgwvwvfgffwffgwwwwwggfgvvvwwwwgfggwwvwwwvwwwwwwgxwwwgxwwfwwvxwwggwwfgwwxxwxwwwwxwwwxxfwfffvvfggfvffvfgvfwwwggffgwwwwwwwwwwwwwvgfwvwwwwwfgwwwwwwwwvwxxwfwwggfvwvwgvxwxwwwwwxwwwwwfvfvggwvwfgwvgwfvwwwxwgffvfgfwffgvwwvgfGfVgugffvwwwwwgeTffwfwfgveUfvvwgvvwwvgwwgfvwggwggvwwgvwwvwvgwfwwwwvwggwvggwwwwwvvvwwwfgvgwwwxHffgeffwvvwwwwWeTfvwfwfgvfefgfwvwgvwwwwwwWffvWgwwwwgeevwwwxwwwgwwgVffwwwwfwwwwvwgfwwwgfwwxwwwwfwvfvvfwwvxwwxwffvuwffveVvwfvwwgffgfgVVuxwwffwwfwfwgvfffeVUUwwwwwgwwwvwgvgfwgwgfwwgxxgfwwfgfxxwxxwwwwwwwwwfwwwfwwwwwwxxwgfWfuwgwfgwwfwVwgfffvfVVfwwxxwggwvffgwwVvgwffgffwfffwwwgwxwwwfwwwwwxwwwfffvwgfgfgfffxwwwxwxvwvxvguggxvghxwxvfwxwfxwWgvvWUVfuwweevvwwwgtffwffvwxxwWgfWUffveVfwvwwxwwgvgfeuwwwghgfgvfvxgfxwwwwwwwwwwwwgxvhfgwwwwxwxwwgxdVewxgVuwxwwWwvWDTVgeVfgfwxwwgggfewwWhwVffgvvwwxgwxwgvwgwwxwVexvgwUffgvvgwwwwxwggwwggwwxxvwwvvwwwwwvwwwwxwgwxhuffvvufwwwwggvvwwfeugvvffwfgwwwfffvfWefwwgwwggwwwgggvwgvxvwwwvvfvwvwwxwvwxwfwvwgvwwwwxxwwgwvvwvwwfxwwwwxxxwxhweeffvgfwwfgwxwVfffgWevwvwfwgvwhwfwwwxwwwxfVefvfuvwggxwfwwwwgxwwwwvfgfvwwwvfwwwwwwxwxvwvxwwxwwxxwvvvxgfvwwwgfwxfggfvvvfxwwvgwvfwffwvxwwxgfffWUefvwwwxgwwwfvgffgvgfgwvWfVuwwfvxxwwfvwwvfgfwwwxggwwvvwgwxgwgwwwxvfwgwvwwvgwfwwgggwwgfwgWVfwfvwwxxwgvwxwwwgfvwvwfwwvVffuwwvwwwffwgwwvwfvwfgfwvvgvfwwvwwwwwwwwwxvgfwwgwggwffwvwfggvgffwwVvwgwhwwxxVwfwwgwwvFegUvwugVeEfwgfwwvggfgegfgffvwwwwvVevwwwfwgwwwwEfwgwfgvwgwfgwwwvwwggwgwvfewwwwxwwgggwwwwxxxvwwwwxxxwwxwwwfugwvwxwwegwvgfffffVTwgvfvggeugvgwvgufffVVfetvgxxgvgvwwgwgwwwwgvffguvgwvgxwwwwwwuwwgwuWwwvvggwwwwgUEwwwwwffvwwuwwfgffffgefwvwvfehfvwgwffgevxvwgVUuVvwefefwfwgfvgwffvgvfewvWgefefwghvfwwwwfwwWwfffWeeevwfwwgwgwwvvvwwwxfvgwWwxWeefgwfgufwfwwfhvfwWfgVfeUEDewfwfevgwVfvxvfefefvfGDewfWgevwgfwggVUvgvguffwfWeegvfwfwwWwffvgwfwwwvwvfgVfvgvwwwxvgvwxwxxwwwwwxgfwwwxxvwwwwgffwfgUvgvgffffwwvwgfwvVVefVwwvxwwwxwwwgfvgffwgxwwwfvwwwwffwwvvwwfwwwwwwwwxwwwwxwxgwwxwxwwxwwvwwxwwwwwwfvxgVVeVVwwwxwwwwvvxwVVefVgvwwwfffwxxfwwffwgvwvwwwgggfvwgggfwfwwfwwfvxwwfwwwvfwvvwvwgvwvvwwhvvfvvggwvwgxxvgwvvwwwxwxVvfvwwwfgfefwfwwwgvggugvffvuvwwgvfgfwgvwweUfuwwwgfvwwwwwxWwwwvwvwwfvwwwwuhxvwffwvwhggwgwvwwxxwxvwwwwwxxvgvewwfUvvgwwgwfgwwgvheUvvwwwWevwffwwwxgwvgWfwwwxwvfvfwwXefwwwwwxXWfgwxfvwwwwwwwxVewgfwwwfwgwwhhhwWWgwwwhuuvwwffggWwwwhefgwxfvxvuggcefvwUWwgggwwxuvvhfgVevFfvwxwvUevgWgWfwuefwWfwgwvwvgvvggwgfwwWgwwxxvwwWgwfvwgvwxwwwvwgcEfwwUUgggggvwwxwvwgww5EvFffgxxuUewGguwxgvwgFffVVwgfffwwwwwvvwhdfwuwhhfvfeewuwfVfgfwwwgxgfvwvfwffwwwUwfgwvfwfffgfvwffvfgfvvwfVegffdUffgffwgfvgvVewhwwUwwgvffUfgtfvfgwwwfffvVexgvgfffvvwwffffvwgfvwwwfwffgfwwvwwgfhffvfvwgfvF5SwfvfUffvvfggUfgf5SvFggfffvvwgUvvgvffwvffffffffgfvfgfvwwfvvfvwwwwwffffwhwffwhwggvvggvvggxwwffgffwgwwxwwgwwfgwwvwgwwggwggxvUgfweggvwggvWfwwgufgwvWfgfffgwfwwvfgUvvvggwWvwxwVVwgwwwwgwwgwvwwwgxwwwwgwvwhwwwwwvgwvvwvwwxwwwwwgxwwWuvwwWwfWfwgvwwdfgevvhwwwwwxVUggwwgvwvhwevfdfvwwwgvxffggwwwwwuvwuwxhevxwvxfwwwwfxwwwvxwvgvvwwfvwgwwggwvwffgwgufvVwfgfgfgvvfvxgwWgfvVfgfvffwWgfevwxgfwwvwevfvwfwffgWgguuwvwvvvgffggfwvvfuwwwwggwwwwvvwxgxwvvggffwwvwvfvvwwxwvxxhgWgfWwffWEDwvffuwWwUDtwwfVwwuvfvffgeuvvwxwwgvxvffvgggfwwvgffvvwWwwvwgwwgwwwggfgwwugfvwvuwwfgwwwwvgvvwfvwgxxwxxwxgwwwwwwwggxxwwgxxwwxwwwgwwvwwwwwwvgwwvwgvwvffwwwwgwgwwgwfwwfffxxwwwwwwwwggwwxxxxxxwwwwvwwxwxwwwwwxwwxwwwxwvgwwwwwwwgggwwgwvfffxwwxwwgwxwwwwwwwwwwwxwvvxxwwvggffxwwwwwvvwwgffgwxwwwxxwwwwvggffgWVewxwwwwgggffggffvwwgggfvfWVeugwvffgveUVgfvwgffff&33bffffxxwwgvxgwvwwwwwwxxwwxwwwxvvwwwwwhwvwwwgggffvxwwxvgwwxfwwwwxfwwvgTUEwwwwwwwwwWVeuwwwwwxwggxwwwxvwxxwfgffvwwwwwwwwwwwwwfffwwwwwwweUVwwwxweUVffwxxwwvwwwwwwwwvwggfvxwwgwwwfUvwweVfffwwwwgwgwwgfvwfwwwgvwwwgwvUUfffwgwwgfffUUwwwwwvxxxxwwxwwwgwwwwxwwwxwxwwwwwwwwxgwwxwwwwwxwwvgwxwwwvvwwfxwwxwwvwwwwwwwwwwwwwwwwxwgwvwwxggwwgvwwwwggvVfuwwwwgUvwvgggggwfwvffffFffgeevwggvwfvwfeggVggefevvVueUgVuwfUfffWfveeeUfUeEegVdeeWfeVdVfUEuwxxwxwwwwvwwwxwvwfwvwwwwxwwwvgwwfwgvgwWwfwuvvhwvvfvvvgwxwwvwvxgvxgwwggvwwwwfggvgwgwfvfwfvgvWwfVvxwwwWvwuwggvwwwvhvfgvvwwgwgfwwffgggvVgvgfevVffUwggvfgvVfevewwwwfwwwwwxvgwfwUvgWefgwwgvwwfgguwwvUgvUwwwgfgfwVfggufvvvvwgwvvwVVEefUdefDgffFTfVewxxwwwwxwwwgwwwwxwwxwxxwwwwwhfxvfwwwvwwwwwwgwwgwgwwwwwwwwwwwwwwWVfxxwgvvwvwvvwfwgwwwvwgvfwgwvwwgwwwvwwwwvgwggwvwwwwvgvggWVwVuvgWuvgvUgwwggffvvfwvgwfwvfwgxwwxxxwwwVwvVggvwWVetxxvwvgwvVwgvwfffvvgxvfggwwVFetggugvVwvgggfg5$CbgwgwVVftfxxvwxvVxwvwwfwvgxgxwwxwgwgwgvgwgvgvgwvwwgvwwfwwwwvvwxvgwwwwwwwwxxwvwfFeuxvgwVFetgggwwwgwvhhggwvgwwhwvgwvwwgeTVgxxgvgwfgeTFfffgfwvgwwgvwwwwvwwwwwVVvwgvwfvfVUVwwfwfVvggfgvvfVfVwffvwgwggeVfffgveffWVUUUuffvfffVffVfVVUVeUxxwgwwgwwwwwwxxxwwxwggwvwvwwfwggvwwwgwwwvgwxwgwwwvxwwwgwfwvwwwwfgwggggwggvfwwwwvfwvvgwxwwwwwfvwwwgwxwwvfvfvffvwfffeggwwwvgwfgvewegvgvxxxwwxxwwwgwwxwwxvgwfwwxwweUwwhftxfVVuvfgwxwwxwgwvwgveEvffeUwwvxwwgvwgVfugwgEwwwxxwxvwxxxwwwwgwvgxxwwwwwwwwwwwxxwxwxwwxfghgfgxxwwxvxwggvwwggwxxvwgwwwxwxxwwwwwwwgxwwfvgfeVwvwVVxwwgxxwwwwfdwwvvwwwwvVWfvxfwvfwffgwwwvgffgfvffvffgfggwfhfvvfwwfffuVUffegWUUvVewwfffwgeVVgvgfewxwwxxwwgwgxxwwxxwwwggvxgfwvwwwwwwwwgwWxwwewxwwxwwwxwwwwffvwwwgwwvfvwwgwgvfvffwwwxvwwhgvwxgwwgxwwvwxwvgwwwxvgfvffvgfvffgfffwgggfvguwwwwgfgvfgwhwwxwwvfvxwxwwwwvvxxgwwVUxvgFvwgeeuwwvxvwwwwwwvvwfvVTwfVVVwwwwwvwggfeuvwVVxwwwwwxxwwxxvwgxwwwwwxwwwxwwwwwgxfvxwwffwxxwwwwvvvwvvvhwxwwwwggwxwwwwwwwwwxwgvxwgwwvfVVgwgeewwwxxwwwwgfFwwwwwwggwfwxwggffffffvvwwwffvwfffffffvfWfevwwgfvgvffvggeVVVUUUvwvwwwgfeVeeVffffVxwwxxwwwwwwwxxwxxxxwwxwfvwwwvwwwwwvwggwgwgxwwwxwvxwwxgvwwwwgffwwvgfwwwwwfgffgwwfgxwwfvwgwfvwwwxxwwwwwVwwwwVgfggfffgffvffvgvwvffvfvwwwxfvgewvwwwwxgvwwwgwffwVeggwwfffvwwwfwfVvgfgwvfffVewVVwgfwgvgfVUefUufggVUUUgfvffVUefffVeffeUuxxxgvxwgwwvwwwwwxwwfwvvwwgwfxwwwwwwfvwwgwwwgwwxgwwwwwgwwgwwwwVxgwwgwxwggvgvvfxvwwxwwwfwvgvwgwwwwwgwvwvfvvffVwwvwffvfgfgwgUwggwfwwggfgfwwwwwwxwwwffwgwwvwfgfggwwvwggvgfvvvffvgfvwfvvfvwvwfwffgUUgggeuvffwfvfVUfvvgggfUfffxxwvgwxwwwxwwwwxwwxwxxwxwwwwwgwwwwwwwwxwwwwhxwwwwwgwvfwxwwwwwfhvfhgggvvwfvfwvvgggfggwwwgwgwgfxxwwvwgvxwfwggwwwgwvgwfgfvgfwffgvvwwfvvggggfvvwvvxgvvvwwwwggwgfwxwfvvVvgfwgvxvffuwwwfwfVvvfgfuwvffuvwVwfwfwwfgefVufVwgfeVgUewfgfugeUVuwwfVvwxxgwfvvxgvwghxxwwxvwgggvwgwgvfwgwgwwvxvgwwggwwgwxgwvwvggffgfWgffggvwfwwvwwffwwvwwwwvwWwvwgwwwwxxwgwwxwvfwVgVvfVvggvVfvfvwffvgVvwgwggvfwfxwwwwwfvwwgfvguvfgwfgvgfVgwwffwwffgvwgwfwfgfvwvvgvvfwfvwgUUUefeffggfUDfVvfWffwfWgffwfxwwxwwgwwxwwwwxwwwxxwxggvwgvxwgwfwwgvwggxxwxwwwxwwwxwfUwxwwwwwwfUwwwgwwxwgxxfwgxgwxwwwgwfghwwwxxwvfffvgfvgvgfvgwwggvwvvvfvxwwvwwwwwgwxwwfUxwegwgfVeuwwxvwffwwuwgvweUUuwfUwwfxxvgeVeugVufffUC3\u0014xgvwwvfugVVetfgefxwwfwxgxwwwvwwwxwxxwwWvwuwfggVxxxxwxwwwwwwfwxwxwwwvgwwfgeUFxgxwxwvwVVeswvgvwgvwWwVgvVxxwwxwwxwxwxvwfUVgVUUfUVffwwwgxxwwwgwfwwvwwvgggwxwwvwxwwvwwgeUUexwgffwwxfwgwvvxwwgxxwweffUUeffffvwfwxxwfgffwwwwgwwxwxxxxwwwwwwwfvwwwwwwxwwwwwxxwwwvwxxxwxvwwfVuwwgvvwgwvwfgwwwggvwwxwwwwxwwwxwxxxwwfvwwggvffwwwwxwwwwwwwvvgvwxgffffwwggwgvwvvvvgfgwfwwvwwwwvvgffffgwfvvvwwgwffUeffeUwfgffvgvwffffvgvfwvwwxwwwwxwwwhwwwvvwfvwgwxwwxwxxxwxwwwwxwffvwwffwwgwwwwwwwwxxxwgfggwwvwgxwwwwwwhffwfvwgfffwfvwgwwwwwwwwwwwwwwwwwxxvxxwwfwwggggfeEFwwxvwwfwwgwwfgefffwwWvwwwgfgeeUFwgegwVvwvvgggeeVFgfwggC#$vfxxvwwgwggwgggwwwxvxwxwvxwwfvxvgvwggggwghwggwwwwwwvgewgfxwwwwwwxwxvwveEFwvwggfEVwfxxwgwVwwfvwwwfwwwfggwggvgggwwfwwWVduggwwvffffwVVdtwggvwwwffgwvvfgewwveVeUefUvwwvwfgwWgwfffefVevwgffgffdffVVffeegVgVUfUufufffeUVdeVTVFUUtxwwxwwxxwvgvwwvfxwwxvwwwwwwwvwuwwwWwgvwwwgwfvvfwwvwvxwwwxwwwwwvwgvwwwwwgfvvfvfwwvwuvwfvgvgfffuwwwfwgwgfwfwfggvwuggvgWvwvhvwwwgfvfggVvfffVgeggVwvggVVfVfVgfwwgwvwwxwwwwgffgwegfgWfwwwfwvgwwVewwgeWgVwggwfwwUgvgVevgvvwwvvwgVfDVffEdeTgffUFeeVwxwvwwwwwwwwwwwwwxxwwwwxwwwwwwvvwwgwwggvwggwwwwwwvggvxxwwwwxwwxvXwfwWfvwgvwwgwggfwgwgwvwfwvwhvgvwwwfwxwwwwwfwgwwvwwwwwwVuewvUwfuvgVgWwwwfvwfvwfvwfgffwvwwxwwgvxwfwwwwgfhvffwfwfUxgVuffvxwfwhfwgvwwffvwgvfwfgffwgfVuffvgffvfffVuxxxwxwxhgvwwwxxxwwxwwwwvfhwgxwwffwxffwwwwgvxwxggxwgwwwwxwgxgfvffxffwffvgwfxwwxwfwwxwwwxffwffwgvwwwfhffwwxwghffwfwwgfvgfffUgfvwwfUxfgwvvwwwVuVgggvvewwwvgfgwgvfffvffwfvfgffUfwuwwggVgfwggUWeefVgeeVeVUffwfgeUwfgwfgwwwxhwwgwvvwwxxvwvwwuWvgwwwwwgwfxvwwWxgxwwgwfwgwwxwxwxwwwwxwxgffwwwwvffgffgwwwwuwgvguwxwwgwvvwwwwwWgxgwuUvgvwgVgueVuvwvwwgvwgugvfwvwxgxvwwvwghwgVgfvwggvwvwgiwvffxgfvwwghwvVgfvwggvwhvvVvwvVxwwvvfffvgegwwwgvguwxyxxgwvwxgwwxwwwfxwgxgvggvghxhwffWvwvfgvwgwvwyggvwwwxhwwwwwwxwwgfvvgvwxwvgvwgvfgxwgfwfvfuwvfgvxxwgwwxwffxwfwxhwgwwwwwwwwgxwwwwwwwxwwwvwwvgwWvxxwvewfggVvvwfwfVvwggfegfgfVgvVvggwfvfgfVgwvfVfVefeuwegvwwgeUVVUffWfVwxwwgxwfxwwwfxhxwwxwvwxwwWwggwwvwwxxwwwwgWxxgvvwgxxwfggxwvvfugfwfvffvwwwvxwggfgfVvwgwwwxwvgwfvvfvxwwxwwwfhwfvwgggvfgWfvfvWvvfefvuvgfvvffwwvxgfwugvgwwwvgfwwggfwvgwfwfvgfwwvwwgvfwvgwfvgwfvgvffwefvgwgfwvffUefVfeUUfggfffVvffVEtgvegvugxwwwwwwwwxwxwvxgwfwvxwxxgxwgwwwwhxwwxwxxwwwwvwwwwwwxwfUwwwwwwwgVwwvwwwwwwfvgwggvgwwwwwwgwxgwfffwgwvfgfggfgwgfxwggvfwwwvgwwxwxwgwgwxwwwfgvvgvwgvfgfgwwwwwwfvgfvggfffvgvgfvwgwgwgwffgeewvVUufgfgggffUfwfwvffUeffxwxwvvwwwvggwgwxwwxwxwxwvwggvvwvxwwfwggxwwgwvgwfxwvxxwxwwwwwwhgfxvvfvwgfvfwgwwggfwvvvvgwvwwgxwwwwwwxwwwxwwwwwgwwwwwfvgvgfffvwggfwvwvvfggvgwvwggfvwwwggwfwwxgwwgwwwgwvwgwfwvVewgvV5ufgdduwwwggwfgffvwfwfewfWfxfghvfffWddfvv7UxwwgvxxgxwwfvwxwxxwxvgwxxwhxwwwwxxwwwwwvvgwfUwwfefwgwhxvwgwefuvvgfxwgwwxwwwwxwwxwxwwxwwwwwgfewwUfxwgwwwxxvxgwwefvwvwfgvwwwwggwwwwfffwffwwuUeggfggUVfeVeUffgffwwfgUvfweVfwwwffffgvfvfugvfWgUeUVVeVfvfwwwwwwxwwvvwwwwwwwxwwwfwwwwwwwwwwwxwwwgwwwwxxgfwwwgfvwwwwwwwwwwgfgvwvwvwwwgweeefVwgwvwwwgfxwxwwwxwwwggwwwwvxwwwwxwwfgvwwwwwwwgwvwwwwwwvvvwgwvwwgfvwxxwwwwgvhgwwgfvvvgffvwwgETggVVVUUxvwwwwhgwwgUeugfwwvwUgggfffVUUuwgfvfffFTwwwwxwxwvxwgggwwwwwwxxwxwwwwwwgwwwwwgxwwxhvvvwfwwwwvwwxvwffvVuwgvvfgwvevxwwwwwxwwwxwwwwwwwwgvxwfgfvwwwwwgwxfgfgwvffwwwfvffvvwffwwwvffwgfvwvffgwvffvffgfwfUegfUefffffggfgvvvvfgvwgfvvwggfvvgvfffVVUwfwgwVeUffwwwwggwwgwvwwgffxxgxwwwhghwhvwwwwgwwhwxwwgwgvwgggfvwvwfgwggfvwhgwwvffwvffVeUgfgvfVVUwvwgggwgwvwgwwvwgwvgxhwwgvggwgwvwggwwwvwgxwgwvwgffvgvwvxwgggggfwwwwvwfgvvgvgvffWVfweevffVVffgfffvfwfggfvwgVefgfvffwffgfVegfVeeffVefffvfvxxgwwgwwfxxvxwwvvxwxxwwgxwxxgwwwwwwvwxwwwwgwwwgvwwgwwggwwwgvwgVuwgVfugvfwvgwvgwxwwvvxwwwwwwwwwxwvwwxwwffwwfwwwgvgxwxwwfvgwwwwwxwfwvwwwwweewwwggwwffveefvfgwWveevggfVVvffeefUgfwvVWVuUUwwvfgveefwgwwvwgCCffffgeefUfvfgwwgwwhgfgfwvwwgwwxwwxwwwwggwxgwgwwwxwwwwgwxxwvhffgwwggwwwxvTTxwggwgvgeefvffwffgvgwwwwwvwwhfxwwxxvwwwwwwwwxxwwgggwfvgggwfvwwxwhwvfwvwwwwwwwwvwwwgxxwwfwwwwxwwvvwxgvwTTwwfgVuwgUeuwwvwfxwwwgffvwfvfUwfVUVwwwxwwvvwwffffgFEuxxxwwwwxgvxxgwwxxwwwwxxxwwvwwwwwwxwxwgwvwwffwwfffxxwxwwwwxwfvvwwgVxxwwwwgxxxwwxxwwwwwwgffwwgfUwxwwwxwwxwffwwwwvwvwwwgwwwxwwwvwwxwvuvfegVUwvgUUwwffgVggvwwwvfwwwwwufvVUevgefwfvwwvwefVwwwwwwwwwxwvxwwwfwxxwwxxxxwwwwxwwwwwxwwwwwwxwwwwWwwgwwwvfwwwxvwwWevvwfvwfvwwxwwWffxwwwwwwwwvwwwwwwwwwxwwwxwxwxgfwwwwgwgfvvwxxwwwwwwwxwxwxwwggwWwwwxgfvvgwfggwgvvvgfgWVWvfffUfffWfVvuwvvwvfgggfwuvgVfeffevgwwVVfgfUfUVvwwwevvwwxxwwvfwwffwhxwfwvwwxxxwhwwwgwwxwwwxwwwxwwwwwvfwfvxwwwwwwVVvwweegwxggwgvwwfgwwxwfwvwxwwwwwwvwwxwwxwxwwwwxxfvvfwvwvvgwwgvwwwvfwwxwvgwvxwxvxegvvxxwgfewxfwxgvgVgvVfdvfEvwVgfdfefWVfwewwwgwuVfVFgwVfvVgUfedvvvgvgWVgegWgfFVvVwwxwwwgxwxvvfvwwhwxwxwxwfwgfwgwwvxwwfxfxwfwxgvvvwgwhvwvwgggvggfUvwfxxwggfvgggfVVgxwfgfwwfwwwwhwhwhxwfwwgggwvgfwwfvvfvwvwxwvwwvfuwwwxvfwgWfwwwfWewwgfvwwwgVfwgfVFTvWvWUufffUuvgfwwwgfuwwwgfwffVUffeVUwfwwxwfffefEtggvfuwwwwgvwwwfvwfwVuwwwwwxwwwwwwvwwwwfwwwwwwwwfvwwwwwvvVvxgwvwwwwwfgVUfffVDvUvwvwVugVfVewfvwvwwwwfwwwwwwwwwwwwwxfwxwwwgfwwwwfwvfVUwvwgfwwxgfwwgwfggfwxvwvffwfgfwwfwfvgvwhwvvfffffVgffeeffefVfgUfwfwffgvgxvvVefffUfvffVVwwwhvVeefVgwwvwwxwwwwwwfvfvwvwgwxwwwwwgwxvxwxxxwwxwxxwxfwxfVewwxxvVeffwfgwffVexwwwgvfwfwwwwxxfwwwxwxwxwwwxxgfvwwwvgffvgvwwwwwwwwwwwxwwwwwxwwvwggwxwgwwevgvwWwhwwvfvgVewvegfUwgfVeffewffwgvxgvgffeufFvwuveVVFwVwgffeugwevugfuVfwxwgwwuwxwhwwwwwvxvwxxwwxwwwvwwwgxwwwwwxxwwvwwgwvfwwvxwwwvwvfFvwvwfVfFwWvwwwwxwvwwwvgwwwwwwwwwwgxxwwwwwwwwwxwwvwvgwfwvwwggggwwwwwwwwwwwxwwwxvwvvfvwwwwggfgwwwgfxwwgwfuwvVffVwgWeUwvfwwVgfgwwgffwwwwxuffUVuwgvwgfUwwgwfUgfgwwwwwwwgwwwwwwfwwwwwwwwxwwxxxvwwwgwwxwvwxwwwxwfwwfwwwwvxwwxfwvfWfwwvwvffwwxwwfgwgwxxwvwggwwwwwwwxxxwxwxfVwwwwwwVvvwvwwwxwwwwvvxwwfvfgfgggggwffvevgwgfwwgufgWWvwUfUwwgfvvvVgvvUfvfgwgvwgTEfvwfUfggdEVVevffgfvvgwvwwwwggwwvgwuwwwwwwwwwwwxwwwxwwgwwwwwxwwwwwwwwxXgwwvwwwwwgwweUvwwvvwgwuVfVvwwwgwwwwwwwxxfwwwwwwxwwwwgvwwwwwxxwwxgwvffvwfwvwxxxwgwgvxxxwwwwxxwwwxxwwwgwwwwxwxxgvwgfwffvwwgffwwwwggwfwwwwxwxwwwwfffvffffwwxwgwwgwgxwwfxxwxxwwwwwxwxwxxwwxwxxxwwwwwwxwxwwxxwxxwgwwwwxwwxwxxwwgfvwwvwwwxxwwwwwwwxwwxwwwwwwwxwxwxxwxwwxxxwxwwwvfvwwwwwhwxwxxgfwWvwwwwefvvwwvWwfwvvGfegFVfdfgfUUvgwwwfdUfvgvuWgvwGVUFUdUeWVvvfvwwwwwfvvvvwwwxwwwwgvgvwwwwwwxwwwwwwwwwwgwwgwvvvhxxwxxwxhVwfwwwwwwwfgfVfvfewgfwwwwvfvvfwxhggWvefwgwwwwwwwxxgfvwwwwwvegwggfgwwwxxhwxxgwhvgfUwwxwggVvgVuffwwgwgUwfUffVefVufUfUfVVeWEdgUwggfwfgeD3fVeVeffefUwfvVWwgwfgwwgwfxwwgfvwwwwwfgwwxxwxxwwxxwfwwwwwvwwwwfxxwxwwxwxvvgvwfwfgfxwwvfUgfVEtfvvfUwwxwgwfwwgwggwwfffxgvgvvgxwgfxwwxxwwfugvvgvwvwgvwwvgvgwwwwvvwwwwxffWvwwwwgfwwwwgwffvefvvVfggegfdwgWEdeUtggewgvwfgffffuwfwwvWefVfwfwffuefWgvveeTEUtwgvxgxwuwwvwgvuxwxwwxwxwwvhwwxvuwwwwwwvgvxxfxxvgwgvwvwwgfwgfwggfgvufvwvfffefuwwwvvxwgwxwxwvwwxgvwvwxwxxgvwfwggwgfwgwwwfggvfVggfvgvfgvgffwwwWgUvwggVeVewfwfeVegfUffffVefeeVggwfwgfWUUUefggvgveefUfwvvVegvfwv4CeVfeVggwwwgfxxffVegvwwwxwwxwwwxwxgwgwfwwgvgvwxwwwwfwwxwwwwwghfwgvfwwgwwgvfUfUfvwETgvffvVewWfggwgwwxgwfwwwwhwwfvxvfvwgwwxwwxwvvfwhwxfvvvwwwwxfwwfgwvwwfvwwwwwwvvfwgwfwwgvvfvvggvwwvgffffgwgfffvwgfvwvwfgvfwwvggfvvfwvfwwffwgvvwgUvvfgUvwwgffvwvwwfwwwwwgvwfwfwwwwwvvvfxwwvwwfwgvwwxvgxwwvxgwwvgfwgghwwvwfvwvwvwvxgfxwwggfwwvvfwwvvfvgwvwgwgvwxvvfxwwvwfwxvwwfxvgwgvwwvgvhxwwvxVewgwwgvwwwgwwwgxvwvfwwwvvVfvfvwugfgwvvffffgffffVgfVefVWfvWvwffvugfgwgffdvfgFvvvfffgfgfgfUgwffVVwfwwwwwhgwgwwegvwggxxwwxwxxxxxhgwwvwwhhhwwhxxxhgwgwwgwegfxxggwugwWgfdgvwggfdwwhgwgvxvwgwwwwwwwhwxwgxxxwgwfwgvwwfvvwvwvvhwvwvxvxwffuVgfvghfwgfgvfggfwvwgeuggWgvVfeufgUvwvffgwUfvvggfvfugWgveevwweVfUvvvWVuvvgvffwvwhffwgwwfwgfgvvgwgwhggfvgfwwgfxvgggwxwwfwvwwwxgfwffggvvvgwvwugfwgfVwgwvgggvwwfVvwvvwvvxgffgwvwwwhwvvwfgwgfwvwwXvvvfwxwffxxxwwwfeggwgwwwwggWwwwwggwfwwwfvvgvffvwwvfgwwfvfUvvwwfVuwwgfgwgfwgffVuwgwfwwggffwwggvvwfgvfffffwfwfgvfwvvwwvwvgwvgvwfvwgwwvvgwwwwfwhgwfwwfwvwwwfvwgwgwwxxxxwxfgfvwwxgwgwwggwwxhwwxfgfffgwfwfxxfwvgwwfwggvgwwvwgwwwwwwfgxvwxwwgffvvgvgwwvwwgxgvwwvwwvgwwxxxwvfVvvwhgfdhgfwgwfvwvfgdEfggfffdvffEfftvFFdgwwvegUevuefFvwwDBfFgwggffvueFvvgfvegvwwwwvwwvwWwfvvvxxwwxxxwgwwuwvhhwxxxxwwwwwwwgWfxwwuUgfvvvwfvwwfdwgwwWwfvvwV5uwuwfvvwvvwWWufvgggwwwwwwwwxwwuwfgggfewWwgvgvwwwwwwxxwxwwwwxwwvfffvwVvWvwgVgewfwwgevfUVdEegVefUfUffFfvWewgvffwfgwfUfUeVeVdfVtfUvggwgffgwVvwgwvxggwWvwxwwfwVwwVwwwwwxxwwffvwvwwvwwxxwfwwgwwwggfvhwwfwfwhwwfuVfVuwwfwfwwxxgfUwwVvwgxwwfffvwvwwgwwwwgxwfVuwwwfVevwegwvgwwwwxgwwvwwwfgvggwwgwvgvgwvwgwwwwvgVvgVUeeEVUdEfVuvvVfffvfwvfvwwwwWdEVfeVUggVeVUffefVVfvgvvvwwgwgwwwwgwwvfwwvwwvwxwwgwxwxxwwwxwwwxwxwwxxwfvvwwwgvwwwgfVfwvefVwweVfwvvffVuvfvvgvwwwxwwvwwxwwxwwwxwwXgegvggvffxwwgwvvfgwgxwxwwxwgwwxwxwfwxwfwvfwxgvvwfeVVggfwgfwwwwwwwuwVgvffwgfvffeDUEwvvfhggvvwvgveVVfffgfDUEefxwvxwxwwgwwwhwwxxxwgwgxxwxxghvvxvwwgwwwgxvggvgwgwwxvefggxxgwvvxxwwgwwxxfggfxwvwwhgfvvwvwwgwvfggVffvfxxxwgvvvhxguvVwvwxwwvghfvvfxVgfvwggfxwgwwwvwfgfvwgVfuvgfvgvggvwffgfvfvvvggwfgeegVDEtxwwfvwwfeVgeuwgffffVDEdffVevwwgxwwwxwwwxwwwwxxvwxwwwwwggwwwwxwxwwwwwwvwfgvwwwgvgwxfvwgfgwwwxwfvwvxxwxwwwwfgvwgvwwwwwwwwwfvwwvxvggwVVVufgvfwwwwxwwwvgfwvgvfwwxwgffwwwwffffffvvwwvvwvwwwwwwggvfvwvfffvwfvgwgwgVwfgwwVgWggvWgfveUfvfVfvvfwvwggfvveeweVfffvfffgwuVvwxwwgwvwwwxwwgwwwwvwxwxgwxwwwwxxwwgwvwwwwwwfvvwwggwgwvwuhvuwfwgvfvfgfwvvgwwgvwwwwgvggfvvgwvwwwwwWwgfwwggWwWffwffwgveVewwwvwggghwvvwgwvwwwgwfWfefvxwgvvgwfwwwxggvwwgwwwewgfwgwvWeftwggvwvwfvwgvfwgvvwvewffwWwgGSEsgVvwwvfgfgxWwgFSEswwvwVffdfxgvxhvxwvwvxwwxgxwwwxgwwwgvgwggwwvwwhugvwgwwwvvxhwwgugwwwxxxhwwgughwwwvwvwxwxwvvVvfxwwwgffvhgugufwfgwwvwVvfxxwxgwgwwwVgVwvgvfVwVvvvvgfvwvvwwvffffggvvfwwgvhWfefgwfeUgfvewUfgeVgvgfffffvgfgVVefgVwVefvffvwffwfvvfgggwwwwwxwxgxwgguwwxxWxxwhwwwvxwgwvfwWvwwfwvfxfwwwgvwwwxgxwWgfgeVfvgggwwwvfwwxwwgfuwggwffVfVggxwwuvfVguwwfwwffwvwfwfvgfggxggfVfxgfwgwgevwxxwgwgfvwgwwfhvwwwwwwgvffgwwwwfeevwGEuvfwvvgfwwgffwwgfwwwwgwweCCvgWVvfwvgffwfvwwwUVUVffvvgwwwgvvvwwhgwwwwvxggwwgxvvvwvgfvwgvwvwgwwvfwgvwvfgvvwgfwgwwxwxwweewxhfvwwgfwxwwWVfgvvxxxwwxWVvwxwvgwxVUefVffuvvwwfwvvvwweefgwwgwwxeevfgefWwwwwxwwwwxwwvuwwvfgVVfhgwfdwwGVfffvuwfVwwggfegvfggVVUfgfWVeefFfUvvfVEUffTeuvevwVggfuVVVVgWfewgwvwwgxhhwvfwwwwgwwgvwvvggwxwwwgvwwfwwvgggwvfwgfvhvwVevwgwVewwWwuwwufUeggVvuwvxgwwvvfVVwgxgwwfugfVevefvVewVgefvggfVgewvhfvggfvffffvffvvgwxwvvwwwgvvfgvfwwvwwwwwgfgeevwVVvgfgwfffffgfvvvvfgfgwvvgfvvvwwFEeggfwfWVfvffvgwwWVvxwfwGEevvgfwfwwxgvxvvwfggwwgwwwwxwwwhxxwvhwxxxwwwwwwxxveewwwggfwwfwggwwweehxggvxwgwfgwvwxxhgwfffwvgwxwwwhwwgvwwwwvwgwvvggwwvvgwwfwwwvwwxxwxgwwwhwwvvfwwwwfVuwgwvgwfWeVgwvfwwfvgfwvwggfvgVugfvffwwVfWwfUwwgWefvvffwwgeVvwwwwgvWffwwwwwxxwwwgwwvxwgxwwwwwxwwvwwwwwUfwwwwwwwwwxvwwxwvvwwggffwfgfgxwwxwxwwgwffwwgfgwwwwgwwxvvfvgvfvwVfvvwffffwxvggwvwvggwgfevvwwwwwfwvgxwgvwwwwgwgxwwwgwwwgwxxgwwwfgfxgwfgfeuwwVuwwfwwuxwwgvvfuvfUwgvwgvfVTDtwfvgugeEEDxwgwvfvwfgeuweeVuwgwwwwwwwwwwwwxwxwvwwwwxwwggxxxvfxwwwwwwwxwfxxvxgwwvfxgwwggfwwwvxwvfwwvwwwwwfgvfVfwwwvfvwwvfvvgwwwvwwgWfwwggggwfvWwggfwwvgwggwgwwwwvvvggvgVDuxfwVewwggwvufvfgUVwvgfegvwgvfgUfwwW4CgfwfvwVeeUvfgvuwVehwwfwUUfVVwgwwwwwgvwwfwhwxgvvxvxhxfwxfwgvgfwggfvffvfvffgwwxwgfgwfgxxvggUvwfwVewwwxwvhfUvwwfvVewwwwgvvggxwxwgvfevgvwfwVexwwxwVUvVVwxwwwffvwwwwgUfgeuwvwgwwwgvwxxgwfvgwxwwwvwwwggggfvgVewwgUvvfvvvfgwgvgWuwwwfvvfgfvfgfvgWDevvvvewwwETfgggUvfvvfgUvvfwvegwwhgwwxxgvhgwfwwwwwwwwwwwwwhwwwxwwwxwwwgvwwwxwxwwxwwwwwVewwgfgwwvgUvxgvwxwwfwwwgfgwvwwwvfwwwVfwhwvfvfwwwwfwwwwwwxggfgvwhwgwwxwggwhgvwhwwxwxwgwxxxwwvvwwgvuWFVgfvfdwggWgvfewvggwWggfvvgggfU5uwgWfuvffgVfUSfgWFvuvvfuwvfgVfdWwgVgggwgvvgWgwxvugvxxxwwwwxwhwwwxxxwwvggwwwvfwwxxxxwhwxxwvvVwxwgfdwwwggwwuwggVwfdxxxwvuhxwwggwvgvvVvgvvvwvxxwwfgggxxwwvWvwwwvfgvvvvwvxwgvwvwwxwwvxwxxgvwgggfgffwvevfvgvggvwgfvgwgwvfwvvgggwwgUeefffeffVuvwWUVVfffffwwffefuwffVuwvgvvfwwwxxwwwwxwxvvwwwwgwgwfwwvvvwwxwWwwwwwgxhfwffwvfgwwwgvwwwvvwhgwgwwwgwwwwhfgfwvwewwhffwwwwwVwwwwvxgfvwfwgwvegwxwwwxgvxxgwxgxwwhxxvwwwfwwffvVuvVvxwgUwwWfwfffgffgfvvgwwfvfvfVufVufffVwwVffUfgfVufvvffgUgfVvggwgfvVwvgwwwggwfwvgxvwgvvwwwxwgwgwgVwxvWuvwvwwgvxwgggwxwgxvwfvgfvffxwwwwwfvxxwhwvwvffwvgffxwwwwwxffUvwvVvfwvffvfwggxgxwwxwgwxwgvVufvvxvvwvfwvgwxvgvvvfwwxxxxgwwwwxwwwwgfwvwfvfvwfgffvXgegvvwggffvvvegfwwffgvVvvvfwffgegfgfffgwwvwfffvvvwuvhfxwwwwvvwwwwwvwwwxxwwwwxhwvvwfhwgxxwxxwfwwwxgffgfwwxfwwvwwffwvvffggwxwwwwwxwffffgewWgwwwwwwfwwwwwwwwwwwwghfffgggggfwwxxwxwwwgwwwxwwvfwfggVexgvUDwwwwgevveffVuwgvffwwgwgeG4chfvfUwfgwfuUDfVefeffuwfwwgwfffwffwwfwfwfxwgxxwfwwwgwgvhgvwwwfwvgwvffVuwwwwvvfwxwfwvgwxfgVuxxwfUwwxwwwwvgVefvgvwfwxxwwwwgxwxwueUgVeVeWvvgxwxwwwwxwgxwwwfVuxwgvfVeVfuwgvgxwwxwwgwwwfgwggfvwgUVevwvgfvWfgvVUggVfffvfffVvgvvvFdTTuvfgfugffvFUEVVTeeVffgVuwgvvvgwvgfvvwwwgxwwvwfvwwgwfwgvvwwwwvwwfwwgwwvwefggwwwwxwfwwwgvwWwvgfwwwxgwgggfgfwwVfVxwwwwgwwvfvwGgwfUVgvefWwguwwwwwgwwvgwwgVewwefWffwggfwgwwwgwwVxxwwwwggwwxwwvvgwvvfwwwvffwgfffvggegwgwwwwgfWvgffvvUvwgfVefefVfffwvfgUgwfwffggvffVevgffVgffwwxfxxwwwwwxhgxgxwxwvxwggwvwgxgxwvwwwxxwgwwgffwwggwvUfgwfgvguwWgxxghUgfwwwwwwxwgvwggwWwgwxvvewVwvfwgvgvggfgugVffgfvggwwwvwgVwwvgwufwwfwfvvwvwggffvwfwfwwgwgvfgwwwgffgffffwvvgfUwffwwgwvffUgvfgffuffgfUfUfwffgvgwwVvwhwfffffvffUfwvgvevxwhgxxwwwgxgwgxvgxwwgwfvwfwwwwwwxwvgfvgvwwgfvwwwfwgWuwhwfegUvwfvxwVuwhwwwxwxwgVvvwfevwvvggvVuwgvffgfvwfgUvwffwfvwvwwwwwvgvwgvwWwwffwwwgffxgWwwwghffgfgffVwwwvfUfgwfUVfUgwffgwfwfvvggfvgfvfefVTeffVVVVTvffwwvVvfgffvUTUVUffggfVUEffwggfwwwwfxwwvwggwvvvxwwfWxvwggxwfwgfwvvgfwwwwwwfwwWwgvxwwwwfdvhwVVfgdwwwxwfwwwwfedufVwvwxwffFvggFfwxgfffEvWfgvgguVVfVefwfwgwgVfwevwvxwwgvewfVewefwvuwgfvuwgwwwwWwgVVgwwgUSwwgFvwwgwvfwhxwggfwhfwgGvfgfdvgG$dvvgdffxVUxxwvffFevvvfvwwgfuvxwwvWwwwgwuxwxgwwwwhwUwwwwWwwwwwvWwVxxwwWwfvwwugwwwwwwwwwggfvggFvvvvwwwwwxvggFvvvwfxfuxwvfuxwfDgggwgwfvwwfFwffvtgwxwfThggwgVWwfeghgffGwgwggxvfwwgwwggwewwwgfVewefUwvggwwfwwgwvwwwfffwwwffgfVEdwfffgfVgfUvggVuvggUDgfgffgfgvWgffwvwgwuwWwwgvwwfwxhwuggxwwwvwwwgwuwwwwwwgwvvwgwwwwxxxwwwwvwgfvVvwffUgwWwwexxgvvwewfwfwwgfUxxwwwvwwWgfwggwgvgfwfwwfwfxwgxvgvugwfvwwfwwwwwwvxwgwwwwgwwwwvwwwfvvwVevgfgwfVfeufWffwvweffewwwUgffgVgfwgWfvVEETffVfevfgeUfwwvffwfdUeUeufVVvvfwvwfwvgggvwugwvugwggVwuvwfwgvwwwgvgfgwwuxwxvgwgvvffgwwwwwvxgwwvVffvwVfvvgvVwgwvWwWufgfwgvVffwgwwwfxfuVfggvWWwgeffVefeegvwwwwwwxgwfgewggvgwxvgwWwVefVVgggwggvgvgwwvwwwwgfvwgwwwgfgffwwgewwfvwgwgvfufggvffvwfvvwgfgfffffwfffvgfvwvwwggffewggffVffwxwwwwwwwwwgwwxwwwwxwxxwgwgwwwvwwwxwwwwwxgvfwwgvwffggwwwgVwgfwfwgwwfvwxwwwgvvwgvvvWwgwfwVwffgfuwgvxwwggwvvwfgwwgwgvwvfWwwwgffuwvxwwvwxggvuwxwgWwwgfwwgdVvvvvgfvwgvufGfVvVfvuvvdfVfwwwwSUfvvgU5uVgueFff6UeUewwwfEvwgvvVFuveguvvxgxwfwvwwfwfxwgwwwwfwwwxxwwgvwfwwwwvggwwxwwwvvxwxvffewxwffvwwfwgggvfuwwwwgvxwfgfffwwvwwvxggwVfEgfwfvwgvwvgwggevwvhvvVwwwvgeewwvvwgwwgwWwxwwVfGgfxwgxwVfwfvvgweffgvfuwggfWgfvevwffgwwWfwhwuuVvdVfgfUDggfGfdxgUuvfWwvVewhgfUwwwfgfwwggwvwxxwwwvvwvvvwfwwvvvwfxxxgwgwwgwvvvwwwwwgvxxxwvgwwwfgfwwfxwgffwgwxwgwvgvwxwfvfwgwggwwWgewggwwwgggeVwwgvfgxwfeVxwvggUvwvvfwhVfuwgffwvwwxgwwvwfffwxwvvgvggfWVvgVTDtwwfvvgggfggfwffgvwwgwwgfvgffeuxwwfgwwfVVgfvwgffVVVTDdffVevwwwvwvgwwfgfwgvfwwvwxwxxwwwwwwwwwwvgvwfxvffwWeeuvggwwwxwwwwwwwxxwwwvgvwwwwvwfwvfvwwwgwwvwwwwxwxvfvwwgwwwwwwwgvwggfwwfwvwwwwwwfffwwxfggffffwwvvwfgwvwwggvwgvVVUfffefwwgggwwvwwwfvfWvvUwwwwwwvfggffffwwgfwwffgfvffwxvvvVVffgeefWevwwxeVwgvvvgvgfvfwgwwxxwvwwxwwwwwwgvVwguvwvgfwwwwufUefvfvgwwwfwwwwwwwwvwwwvwvfwgwfgvxvwwwwvvwvvgwwwgvxwwwwwwwwwwwwwvvfgvgwwwwvwwwvfwhfgwvwfwfgggxgxvWVfvfwwwgvhgvwgfgfgvfVxfvgFUEtwgvwfgwwWwwwwwWvfwvgwfwvvwVVfewvvvhgxvvvhffwFUEtwffgVVfeexwvwhwgVxwxgggvwxwhwwgvwfwxwgvvfxwvwffVgggvwwvfwxvwxwwwxwxwxxxwvvxwxgggvxwgwfwxwvvfxwggwvxvhwwgwwfxhwwvvexxwvvfWvwxvvfwvwWfvhvhffwgffgffevVffVVfffTUFeUffvfvfwggfgvvffvgwwggfVuvweVVfUwvVvggfvvffffUEVUEfggvfUeUffgwvfwwwVVvwdfFvfvggwxxvfuwwwvggffwGffTfveevgfwfufVefWvvwvwwxwwvwvgwvgxvgwxwwwxwwgVFffFwfwwefWgvxwfxxxgfgwvwfwwgvwvfwwWwwwwwggfugvuxwwgVwvfgVegfegwufgVwvwwwgvggughwgguVvfVWfugfVfvwxwvvwgwugggvwwfffgvgwwvgfvggfffVvevgfwfvwWfeggWfffffwffvffvwwfwuVvvWfwvfwWwvhxwwvwgwfgwuugggvvgwewffgfwvVfvfgvfwhwhwwwwgxvWvhxfwgwvwwWwwwwgwvwxgwxwhwgwvwwwwwwwvwwffwwgwfWwwvuggwvwwwvgwvgfffwvwgvwffwvwgvgveWgvvgffveVfeeVfvfvgwwgfgvgWvuvfvwfvvwvwwffvffffvvgvegvwgvwgxgeVfffufffvvwfvfxwggvWweWfuegwgvgvxxvfgvwgwgvwfeWgwfwwfwgeVfffvgfggvggvwwvxvwgvwhwxwwweWxgwgxwfVwwgefwxwwxwxxwwxwwwxvwwffwfgvwffwwwwwgwvwwWwwwwfwvwhfvWgwffvgwwwwxwwgWuxxwvvfUwvfwgfwVDEtxwvwwfxwfwwwwufguwwfvgxwfgfVfugguvWvfETDxgwxvVwuwgVvufgfVuxwvxwfxwxgvxvfgvwwwxxwxgwwgwwfwwfefxwwxwvgwxwfgvfgvgwwwxwwwxwhwggvfxwxwwvxwfgvgxvgxxwwwwwvgxwwwwwfgvwwwwwgwfwgwvfgufguwwvgxwxwwgvfwvgvwvufggvggVfUggfC4wwgfwwvgggVfegwVfVvwgvwfGUtxwweVvgwvvuvgWfUfeWgwUUwwvweVfeVwfwwwwwvggWfuwwweVvgwwhhwvhgvvgvgwvgwfVffwvfwweUwwweVfeWwwwwwgwvxwvggxgwvwwVfevfxvvgwwxweVvvgwwxwvfgffvvffvfvvwgwfwwxgVfuwwgwgffVvuwwwwvwgfwvxwwgvwwvwxwvfwvwwvfgfgfTEvwfgfggvvwwwgvggvfwwWwugxfgfggeVwwWfufgvFUtwwugvvfWfegvVgWfufgwfgwvxwvvwwwwfgwwWfewwvwwwwwvwwwwxxVfvwwvgwwfwfwvwwggvwxwwwwwwxxvgxvfwvwwgwveVwwgvvwwwxgwfxwwxwxwwgwwwxxwgvwwxwwxwwwxgvwvgwvvvfwwwwxvgwvwwwwwxxhwggfvgwwwfVuwwwffffvfUwwggwggwvwxwffgvfvgVuwgvgvwggVUwgUwwgVegfvgwwwwgVffwwwgVVffwwxwwwwgvffgfwffxvwxhxwwwwwwfwffgvvfexwwfgwvggxggfffwgxwwwwxxwwvxwwxwwwwvwwwwwvffwwwwffgwwwwwwwvfUwwwwxwwwxgwwwwwgwwwgvwfvvvwwggVvwxwvwwwwwvgvwwwwvgfvvuwwffeUVuVfVfevfeFuwwvewfWvvggfuwfggfvVVwwfftvvVFfgefUEgffUTgvuvggWufeVVegWffuvwwfwUfwwwWfuwvuWwwwgwgvwwvgvxgwWevfffWgfegvwgeWVfufgfeWvwvwwgxhxwfwggwvveUwWvVVwvvwhwwwfVfuwggwwxwwwfwwwgvxwgxfvwfwgvggwffwgvffffvffvffwgxwvvfwwvgwvfgfwwwffffwwwffvvfwvfEEwwvgfwgwwvfvfwvfgfggwvvvfeewgfVVwxvggvfgvffeuwgwEExwvgfVVvvvwgvgwwfggeuwvwgfwwwgfwwwxwxwwxvwgffvfwxgwfwxhwvwwwwwxwwwwvvxwggwfwwwVVxwwvwhxggxwgfwvwggxxgxxvwxgwwwxwwwxxvvvfgwgwwvwgwwgwwvwgxwwwxwwwgguwxwggffwvfwvggvffvxwvwvfwfWgwvwfggvwffwvfwwwwvffvfffvfffgfggfuwgffuwvgwvfgffvwxxwxwfvwwggggvfwuwwwxwxxwwfgvvWwfffWgggwvgvxwvvwwwwwwwxxwwxwwwvwwvvgvfgvgwvvxgwvwwfwwwwwwwwgwwwgwxwvfvwwxwwwwwgWwfffVwgwwwwvgwvxwvfWwwxwgwwxwwftfVvfww5WeVgweU5gvfuevuwwegvFguVffggwwwFVvvwwgffggvufcUVTeefvwwgVEwwvveeFguvvvfxwvwfgfewwwffwxgwwwwwwwwfxxuvffFufwfvwwgwwwgwfvfEhwvxffxwvxwvgwfxvfWfwvwvwwwffxwwwgwfvwgggfxwwwwwgvgvvwwwwwxwxggwvVxxvgeuwgwwvVvvwwwvxwggVtwxgvwggxgufgffugVWvVFUDggffufgvvwxWgfwfufwwgvvgxggwgVfWgwffvgwfTVuwfFgvveVUfefgvwvwwwgxvwwvwghwfwfwvfwggwvwwfvvvgxxguvvwvVwwwvffUffeegwwhwwwvxwgxxwwgwvvwxvwvffwwxfvfwvgwvwfwgvwxwwwvwvwwvxggwvwwwvvvxxwwwxgvfeVfVVwgxwvgwwffwggwwwwwgxufgVgwfgE4sxgffUffgwfvwgffVuwwwffwfwwfggVuxwgUDwfwwgvfeeVUEdffuffwwgwgwfgfggwfwfwfgfVuxwwfUxwxwwgwgvxgvwwgfwggwfUeVeUeguwwwxxwgvxwgxwwwwwxwwwfxxwwxwffgVuwvgvwwwwxwfwwgwwvwwgVufvwwvwfwwgfwggxxfVwwvwfVefeugvvgxwvwwwwwwxVWufffvwgDEEwwfeVvffgffgwwfVffvwfffefvggVeeVwwVffvwfgvVeeEeEUFffewwvwggggVuvgfggvwwhwwwfwuwefvwvwwfgwvvgwwwwggwFUegvufVwgvwvgwWwwvwwwwwvwfwvgvwvxwgggfvfwggwWvwxwfgffuxhwwwwwwwguwgwgvvfgwvvwwwxwxgffwwvwfeVwvgufVwwwvwvgxwwgwWwwwxfvffwwwVggfggugfwfwvfvwwwgguffvwgggvvfwggvggvvfxgvgvvffgegvfffffwwwugggvvfxwfxfvwwvgfvhwwxvfwvwgwwxwxxwxwwvvVgffgvWwvvgwwxwwwxwwwwwwwwvxxxxwxwvgfwwfgfggvwxxxwwxxwwwfwvwwgvfxwwwxwwwxwgfvwwggvwgggvhwgvwwgwwwwwwxwwwfvwwwvwgVwwgwwefFT5swxfwwgwvgwgfvvgvvwwVwvwwwfgVfVtwfvwwfVwffxwwgVfftwuwgFT5cfwwxwwwwwvvfvWwhwxwwwwxvwwwfgewvwwwfvwgvWeffvfxgxvwxgxvgwwwxwvwwwgwwwgvWuwxwwwgwgfwwvxgwwfvWuwgvwxgwwwfwwwwfgewwxwfwUwggggfvUgggfggVVfvwwgfuefgvvffffwffvfwgvfgeugfgeWufefffvwwggfgfgfVWvvfVfUfVvfggwwvvffvfgvfvwwuwhhwwggvVVefgwvfXwwxvwggwwvwvwwuUvfvwfwfgwgwfffwffwfwhvwwgxwgvWwwxvwxgwvwwwwgffwxvvfWffUwvvwwwwvgufvxfwwwhwwgfwgvvxvxvvvwhfegVewfwwwvghgwwvwhgfwwgwvvgvfvvfwwwfVVuwFCswfvwwgvgwgfgwwgfvwwwwwwfEEvwgeufgggvvwffwwwuwfeeggfUuwwggfvwwvvvxwxwffgeuwwwhggwwwffvwfwgvwwvwVVwvfggfvwfVUuxwWffegxxwxggwxwwwwfgwgeuwwwwhgvxwfvwwggvwgfvffwwfgwxwwgxwxwVVwwvwwvvvxVVwwufVwwvfgwwwwxwgwfggwVfvfffffwfUDgfVgwwwwwwvffvwfwwwwwwwwgfVewVfUwggffUwwfVuvggvfvfgffUDwgVgffwggwwWwvgvfVewfvVwwVuwwvwgwgwwxwxVgewxggvwvwfwfxggvfxwggwgxgwwuwgvxwwfgwwfwguwgefUwfgwwwfxwwwgwwewwwwwwwwgwwgwxwwwgxwwwvwwuVggvwwvwwwwwwwwgvwwvvwvwwwwwwxvfeVVfugfVgeFVeefFUdfggvvgwgwwVWfuffgfvwggwfUVffwffegwguffwweVfwfdeUVuwgVVufggfWvfwewxvgwgVVfvggfvxgWfwWwwvvgvgwwguVgvvvVwweuffVuwwgfvwwgVfwwfwWewgwwvwxxwvwfxvvWwwUeefvvwwfwfvwwgvfgvwevwwfwwvvvgvwwvwvwxwfgwggvvVwwVwfgwwvgxweVwgfwvfxxfeVgvwvwfwvguwfVtvffFDrwgfFvvvwxwwwxgffvxvfxwvuwwfftwwU5wwwFeUvgfwxgvffEvefvfwwwvvfxwgwwWwwwgfftwgvfwvfwWuwwwwWwwwwWgfDwxgWvggvfFvfvfFwgxfwwgwgwxwvwvwxwWwwwwwwxwxhvffFweVwgwvvwhwewWwxwwgvfxwgwWxwwwwWwwgVtWfuxggwgfugwfgftfvghxxgwgwfffwvgfgfUgfegffVuvwewwwwfffwwwvfgffvfffvUgvUwxgguwwefVegffUwffwfgWevfefvwgvffuwvxvwwgvfwwgfffvwwwgwfhwwwwwwwgffgewvfUwgfwhwfwwffwwwgwvwxhwgxgwgwvgwvxwfgwwfwxwwvwgfvwwwffwwWuxvvewwfhgwwwvwwgwwwxxvvUwgfwfwwfwffwgxvwxxgvfwwfgxwxwffVwwvgeVUSwfvfWwgfvVwwggvwwfwvfvfwWwvfweetwWfFffwvVfVFvvVUsgWvfFwgvvefWwwefvVhvwvgvfwexwwfFwwwvgwwwgxwwwwxwvwgfgewggvwfxxxwwgwvfxwxwwvvuhwfgWxwwfWwwvwxhwgWxwvgfFxvxwwwwwfvwvgwfxxxwwwwwwxwvfvwwxwvguggvgwwwgvwxxwwgwwwwgfvwffwfVeVVefUffffvwggwvwfwwgfggvwvwvwhgfwgfwgugvffwgWefVffVVvwvfVeVfggfVvgwwfwvvwwgfwffwwvvvwwxwvxgwwwwvwxxgvgewggfwgfwuwwwfvvwxwxwwwwwxxwxxxvvfwxwwwgwwvxwxwwwvxwhwxwvfwgvgwwwgvwwwxxwwggVwfwwwfgwvwvwxvgwgwgxxgxxvgUUwwwxffvwwwvvfvVUfwgfvggwwgfvfgeefffwwwwwggfwggwgwvwwhfvvwwgvffwgvggfVffvfwwwwvwwwwffffffgwwwwxwwwxwfvfwwgvwwwwwwvvgfwwwwwwxwwwwwwwwwggwwwwvxwgwwwwgwwgwfgwxwfffvghhxvvwwwwwhwwwgwwwwvgwwwxwxvvhggwwvwxwwwwwgwwgvwgwwfWWUuxwwwwgggffvfwVUVfWWefvffvfWfVevVVWvwwgwwwWvvwgffwxwfgwwfvvgvvwggWgfVUVfggwvvfxgwfgwffgfvwgfgvwxwwxxxxxxwwxwvvwwwwgfggwwgfwwwwwwwhwxwwvgggvwwvfwwxvvwhwvwwggwfggvwwwvfwwwwxxwwwwxwwxgvxxvvwwwwwwwwwwwwwvvvwxwvwgwwxgfvUUwwwwxvggvgUfwwvwwwvffvgfffffUefwvvgwgvwhfwffwwwwwfvwwgvgwwgUffgvvffgvwwvvggwxvwwggvggwwfwwwvwwxwwxhwwxxwgwgvwwhwwgwffvwwvwwxwwwxwwwfwwwwxvfwgwwwhxxfgwwvvvfwwwwwxgwwwwwxxxwwwwwxwwgvwwwxwwwwwwwxhfwwwwxxhwwwfvfFtwgwgwvegfvxgewgDVvvgVfwwfgfdwwwWeffvwwvffwhwwgevwgwwwwgvvwWfwgdevgvfvvUfggvxxgxwUwfVxgvwwVwvwwxxwwwwwwfwWewwxwwwwwwxwfwwwgwggxxxwgwgwwxfxwwxwvwwfgvxwwwwwwgwxxgwvvwxxwwwwwwwwwgfgfvwvuvxwxxgvwwgwgxwwvxwxwwwwxVseewvwwFgfVgwwTewwTfgftVvffw6WdFeUfwwwvWgvggvgdVvvewwtffeffwfwwfSUwwTfgffguvevwgwvwwVVgVgvfeUwwvwgwwwxwwwwwwwwvwwgWvhwwwugwvwwwVvgwfwhwwvfgfffwvgwfeffgfwwwwgfUwwfvvVwwwwwvwxgggvgvfggvfwgwvvfvgxwWfvgwxxwwwwwxwwxwgUgvhvhVwvwxvvdefvvgwggvwUTeugWevgfwtevggwwUeUgwVfvwwgwwwUTfvwWvvwxVgvuwwwefWfeffwwwwwwwwwwxvgwgwwwVeVvwggwgxwwwwvwxwwwwhfwvwvwwwxfgwggfvwwwwwhwwwwhxwwvvfwwgwwwfwvwxwwwfwffvgwfwwxwwwwhgwwwwwggwwgfvxwwwwwhvvvfwgwvwwxwwwvvwwfvwwwwxwXufeevgwgGEuwwweewvgvwgveffVVffffffvfVgfgWVvwwwfvwwfwwvffffggguwvwvwwggeeffggwwvwvfvgVVvhggTTvvggwhgfxwwwwxwvvWfggwvvwwwwxxwwwwwwwxwhgwxwxeewwwwwwwWVfwwvwwwvwxwgvvfwgwwwwwwwwhgwwwvwwwwwxwwwwwggwwwwwfggvvwwwwwwwwwwwwwwwwwwwxVGEefgvwwTUfvfwVVgvwewgVWwfVffeffdvVgVvgvefgwwwffgwvvwXfvFefeffwwfgwwvvwWvfvwwewwwgwwwfevwwwVffwgfgwvgwwwwxwxwwgTfwvfvvwwwwxwwuwwxwvvwwwwfvgwwwwggwgfvefvwgwwwvwwWvfwwgfgwxwwwwuwvwvwwwwwwxwwvwwxwfwwgwwvvvwwfwvwwgwwxwWwwwxVwUEwweWwVgvvvgwwgvwwweVvggfGUuwgeVwugwgfvxwwwwwwgwwvfWgwffvWwvvgwwgvwwwwuggwwxwwwugwfwwvgwwwwwwxwxwxxvwwhfuwgwwwwwwwwwwwxwwwxwwwwxxwvgxwwwvWwwvgwwwwwwxvxxwwxwhwgwxwxwwxxWfvwwgwgwgwgwwxwwwwwwxwwxxVwfUexwggfffwfwfvfgUVUwgffgVUwgfwfffffVuvVfwxwwwwwvfwwfwwfffVfefwxwfvwgfgvwfgfexwwgWexwwvvfvgfuwwwwwwwwgvwwwfvwwwwwwwwfvfgwvwwfwwwwwwuwfvggwffwUwwwwwwvwwwfwwwvwwwwwwxxwgvwwwwwxvxwguwwwwwwvwwwwfwvgwgxxwxxgxwwwxgfeWfwvwwWfffxvgUfwwvgwvuVvVfufwvWUVggvwvWgvwwwgUfxxxvfwUeuvgwgwfvwwwxwffvfvwxwwvwwwgvvwwwgffxwwwwwwxxxwxxwwvvwwwwwwwxwxwwwgwxxwgwwvwwxwwwwwwwvwwfffwgwgwgfwwxwgfwwfwwxwwvwwxwwwxwwwwwxxwfvwwwwwvwwgvxwxwwwvwxxwwwVfUeffvvgfVwVffuegevvfgvevVWfvVVfvfgffwfwgfgfwwvwguwwwgeffwwVgfwvuegvwwfgffwgwwvwgwwwwfgfwfwwwgfvwwgwwwwwwwxwwwhvfggwgwwwwwvWevwwwvxwvgxgwwwwwgwwwwwffvwwfwwwwwwwwvwwwwwxwwwwwwwwwxwgwwwwgvwxgwwwggwwwwwvgwwwgwxwwwwwxwgefeUeugwWfVfwfgfUfvgfvvuffevgVfVgfewfvwgfgffwgvwfxwgwwUffffgVwvvVvegwggwffwwwwgwwvvwwgfWvwwgvvwwwwggwwxwxxwxwwwVVwvvwwwwwxxwwwgxxwvwwgwwwwfwxxfvfggwgwvwfvfwwwwgwvwwwxxwwwgfwwwwxwwwxxwwwwxwfvwvwwgwwvwxwwwwxwUEegfgvvWTWeUgfdffewwwWVvwWVffTVfUfevfwwgfggvwwfvwwvwwGeUVeVfffwfdffevwwWfvwwgwgwwhgvwVFgfewwufwfwwwuwgwwwwwgfgWvuwfwwwvfwfvwwVwwwwwwgfvgfwwvwvwwxWdfVgvuWwwefvfvwwggvwxwwwwwhwwgwwwwxwwwwxwwxxvwxxxWgvvvwwwvfgxwwwwguwwwxwwxwggwwhEffUfwvfevvfUVuwgwgeefVgfftVeVfVuwwwfwwwvfvfVfuwfgfvvwVTEfwfwVVffgVvegffwgvvwwvgwwwwgefgeffdvwffwvgwxxwwwwxxfvVgwwxwwwwwggvgwfxxwwxwwgggwwwvggwgfwefVfwgvvgwwffgfxvgwwwwwxwwvvfwvwwgwwfwwwwwggwwfvgwfgvfgvxxwwxxwxxwgwwwvwwxwFgdUVwwwgEUdgwvvggwVfvUgffVFVTfwvvfVeuwvVfeewwewfvfgvwffUVffTTVffwgfwgvvvwuwgUfvuwwgwwfVfUvwweVvguwguwwwwwxwwwwvgWffvffggwwxwxwgwwwwwwwwwvwvggvwgwgvwvfffVfefVgwfvgwwwwffvwwxwvWvwfwffgwxfwfwwvfvgxgwvwwvfgvfgggffgwwwwxwxxxwwwwwwwhTegVvwwwVVeUgvwfVggwffdffgdUedwfefgwgwwfFWeewvfffwwwwwtUfffdvvVVwwfwwwwvvggvgvxwvwwwUfgvwxwvfwwxggwwwxxwwufwwwfwvwwwwwwwwxwwwxxxwffgvwwwwwxwgvwWVeuwuggvwwwwgwwgvvwvvgfgvwwwwwxwxwwxwxhwwfvwhwwguwwvggwwwwxwxgfwwvgwwgfgwvfwwwxwwwhvwwggggvvwvvvwwwhfvwwwwwwwwwwhwvgggvwwvvwxwwwxwwwxwwxhwgvwwvwwwwxxwwhgvgvwwwwwwxvwwwhvwwggwwxwwwwxxxwwwwwwwxwgwwwwwwxwwwwxxvfETwfwvgvfwwwgfvffwgwvgVewvfvgUfgfETfffxwgwwwwVewwwgwwwwvgvfvgfvVegvfgwffgfffgwwwwgxwwvfwwwggvgvwgfxwxxwvxxwwxfUvvwxvxwwwwxxwwwgwwgwxwwfwxwwwwxwwgvfwfwwvwwwwwwgvwffwgggvxxwfwxxxxxxwvwgwxxwwfvfhwhUwwggwwwxvwwwxwvwwfUTeffvfwfgwVfwefVUVfefVeegWgvUfgdUVUfwfgfgvfVweeWefwvwvvWgvVffgvefffgwvFTUfeffVgwggvgVWggffVvffeuwffvvwwxvfgwwwvwhwvggvfwwwvgwfvfwgfvwwgvggvweWwwgwvWvfvweWvvgwvfVwgwffufuwvgVuwwwwfwvuWWwgvxwwvwwwwUwVvwVwffwggwvxgvwxwvvwwxfewvgvwfxfvvwxfwgggffgggwwvvwVUuggUUwwvvwffvwwwffvwwfffwvvvwvgfvggffwwvwggwgffwgwffgfggvggwwwgfvgwwwwfvwwwWUeggUUwwvwwwwgwxwwvxgvgggwvwwfgggfgwgvwwwwvwgwxwwwgfvgxffxgvxwwxwvggwffwwfwgwvwwvhwxwwwvxwxwwvxgvggxwwwwwwxvwwwfwvxxgfwvwwwwwwwvxggvefeVffeffgffWfevfVUvvufeefgWwfWfvfggVuvwgfwwVVfvfVVvwwwufgvvffwwwefgVuwvfgvwwwffvwggfggWwggwvvggVvvwfgwvvgwvwwgwvvfwwvxhwvfwgvwvfgvwvwvxggvffgvvfwgwwguvfgvfxvwvfgVvwvwgvxwwvwvwwvfgwgxwgvvwgvwwvvwgwhgwvwxgvhhxgxwexgxwggwgwwwvWVfeVfefgffffefVggffgwvVfvWvvwWffevfffvvwvvwVfvfwWwwxvvfvfvwgvvwwWfWfgwvvfVgwvwvwxfvwgvfvvfffvgvfwwgfvxwwwwvwwxwvwwfgvwxxggveVgwvwfwwwwwxvvwvwwvwfwvwgvfwgwwvwxgfgwgwwvgwwwgxfwgwxvwxxwwfvgwwwwvxgwwwfgvwxxgwxxxxwvvhwxwwwxxfevggvvvWfwwfvvvwwwwwwgevwWggweffvvwgwwWfgwfwgvwwwwwhefgwxwwwugggvvwwwxxwwwwxevxgfwwUfvvfwwwwhgwvwwvwwwhuwgwwwwvwwwwwwwwxwwwhfwxfwgvwxxxXvwfwxwwxvgfvwvwwwwxxgvwwxxwwwwxwxwhwfwgwxwxxwgxwxwwxwxxxwuvVUvwwgfffgwwwfvgwwgvwffeVUuggffffUgvWvwgvwwwfgfwggWgVvwgfvggvwfvVgvVgfwwggvWwfwxwgwfgvwwwvfwggvfwwwxxxwwxwxwvwggvwwfwwgfxwwwwwwgwwxwwxgwwxwxhwwfwwwgvgwvxwwwxwgwfwwwvgwwxwxhwwxgxwwxxxwxwwggfvwwvgvfwgwwwwwwwwxwwxVVvfgwwwhefwvxxffvwwwwhWvwVVfWfgwuuvvwwwgfwgvwvgwxwXfvWgWfgwwvgwwwwxwhfvwwwwwxggwgewfvxwvfvwwwwwvxwwxxhwhwgwwwwwxwxxwwwxxwwewwvxvgvxwgvwWWffwwxvvxxwgvwgwwwwwgwgwxwxxxwxwxggwxwwvgwwwwwwxxwxwxxxwxwwxwwwhfVwvVfgvevwgufgxgwxxweVwvuvwgfwfwwgfwxwfuwgugWwwfgwUfgvwwvvwwWwvffwwvwvwwwwvfgwfvwgvwgwwwwwwvvwgwxgwxxffwwwwwwgwxvwxxwwwxxxxfvwgvwgxwwxxfwwvwwwxgxwgvxwwwwwwgwwwxwhwvwwxvwwxwwvwxxgwxxwwxwwwwwxxxxwvwwgvggfvfwwwggvwwffwwwgvxwwwwwwxwwwwfwwwxfvwwffwxwwwwwwwwwvffvvvggwwwwgggfwwxxxwwwxwwwwwwxwwwwxwwwwwwxwwwwwwwhgxxwxxxwwwxwwxwwwwxwwwwwwxwxwwwwwxwwfxwwwwwwwwwwwwwwwggwxwwwvvWgUVuvvfwffffwwwUevxewwWeeWwwwWguWffewUfufffvwvhUVwwuwvwgwgvgwgffwVgwuwwevvfwuwwwwufwgwwhxwWVuvwfwwgwwwhwwffgwwfwwwffgwxvwwfgfwwwvfwwvggwWxvgeWwwvwvvxffvxxgWvwugUfewwwwgxfvvwwwgwwwhgfvvfwvxvvhwvxwhwgffwxwxwwwggwxhwvwwwwwgfvvwwwwgfvgggvfgvvwgfvxwwwwwwwwwwwxwwxgfvwvfvfgvvwfwwvgvfwwwwwwwwwggvwwxwwwwxwwwwxwxwwxwwggwwggwxwwxxwwgfvwwwwwwwwwxwwwwxxwwwwxxwwxwxwwxxxxwwgfvwwwwwwwwwwwwwwwxwwwwwwwwwwwhgfvvvveefgwggffffvvgvgWgvvggwgeVwvfwvwwwfgffffgeefvgfwwffwwwwxwwwvfvvgvvuvVwwggwwVvevwggweVwvwevVwwfggvgfveewwgvgfvvwwfwwfwvwfwgvwuwVwggwwwvgWfwvgvfvvgvxvvwwWvgxwvfvvwwgwwwwwgwvfvwxvwfwwvvwwggfvvwwwggwvfgvxwfwwwwxwwwggwfwwwwwwwwwfvefgUVfvfvveefUVVevwwweewfvwwfgfgwfgfwgvwvwdTfdfFevwwgfvwwwvwfwwfffgfgwgfwwxwvvwwhvfwvgvgggvvwgwwwwwfvwvwgVggwvwwgwwgwvvggxfgwwwwwgwvvwgwwwhgxfvgvwgwvgxwfwvxwwwwvwgwwwwwwwwxgwfhfwgvwvwwwwfgfwffgWgvwxgfghvvgvwwvwgxwwwxxvfwwwfvwwwwwgVvffWvfgvgvgVUuwgeVvvffwvfvgvgffvgwfvvwwwwFUtwgeVvvwwfwwxgwggwgvgvfvegwwvxwvwwWxvgwxggfwxwwwwgvgwfffvgwvvfvvWxwwxwgwvwgwgwffwxwwwwxwxxgfwwwwwfwxxxvgvgfvfxxxwwwvgxwwwxwxvfwgvugwwwwwwwwwwwfwfVgxxwwwhwvgvggwvfxwxgwgggwffffffweegggfvfvwwfgvvghvvwwggwwwwgeefvfgfVVvfvvVVvwwffgggwxwgvwgfvwxwfgwwgwffwwwwhfvggggwvwwgvvxwwwwgfvwwggwvvwvgwwggwwwwggwvwwwwwxwvvghwvgfgwvvgwwwwwwwxgfwwxgxgwxwxwwvgwwwfvgwwwwgvwwgfwwwvgwwwwvxwwvvwwgwgwxxwwwxwwhvveVfvvfVWfvwgvgWwwwefveVwgvvgwvwgvgwwwWWfwhwvgVwwgefvvffwfggwwwvfwgefvWgvgwevxfvgggwvwxvwwxwwvvgwvxxvfwvwvwgWfuwfwxwwxwghvwgwxwwwwwwwgwwxgwwwwxxwvwxwwwwxWfuwvwwwwxwxwgxwvgwvxvwggfgwwvxwxwxxwxwwxfffggVgfVuUfuevVefwwwwgfgwfwvgffvwvfwgwwgvffeeVfffwwwwWVvgvgvwvwwfffwwvwggvgwwfwhvwwgwvvvvgvwxwwgwvvvfwgwvwgwhgfwvgvwgvwgfwwxwwwwvwwgxwgwwwvwgvwwghgvwvxwgvxwwwwwxwxxwxwggwwwwwwwwwgfvwwwgwwgxwxxwfgwwwwwwgvwwxxwwwwxwwwwhwgwVevfgfWguvxwwvegvgVfvvVewgfwwfwwvgvwwwWfevwwwvuwfgVgvggvfwffwwwguxwgVwgfwgfgVfxggvwwfwwxwhwwvfxgfxwwgwwxgUwxwgwxwxxwwxwgxxwggwfwxwxgwxgwwwxwwvwwwvxxwwxwwgwwwwwwfUvgwwfxxwwxgxxxgwfwwxgxfgwvwgwwxwxwwfgvfgWffvffffgweffUvwwgfvvvggvggwfggvfwwwUUfvgwUefuvwwgvvWgvVwvwwvfvvwwfhfvwvwwgwhwvwwgwwwwwfvwxvxgggwwwvfgvwvxwwwwwggwwwwvgvwxgvvwwwxwgggwxwfvwwwxwwggfwgvwwwxwwwwxxwxwvggvfgwgvwgwvhvvwwwwwwxwwvwwxhfvvwwwwwxwwwxwxwwwxwxwwgwggfwffvgeufeeffgfwffvwgggxfwvvwwggwwwfffvgfvggVVwfvgffwwgeuggvffwfggvxwwxwxwvwwfwfggwfwvffgwggwfvwvvgfwwwwwwwgfgwwwwvwgwfgfwgwvwwxwwxwwwwwwwwvvggfgwwvxwwxwwwwwwwgwxwwfgwvgwwwgxvvvvwgwggwwwwwggwwvxwwxwwvvwvwgwxwwwwwxwxwxwxuvwWWfdVVWfdVfUwggVvwwvvvgvvwfgwewwwwwVVfffeefwWVuwwfeffwwvewwwgggWvwwwwwwvwvgfvgwwvwwwwgwwwgVfvwwfvgwfwvgvwvwvxggwwwvvwgvghxwwfwvwwwwwwwwgwwwxxwwwwwwwwwwxwwgefwwwvgwwfwgwgvwwvxwwgvxwvvfwgfwwwxwxgxwvxxxwwxwxxXffvfeueVVfVefVeffwgfwgfffWvvwgevuwfwgwwweVfUfvfeVwgvvvUeVfgvgfgggffvfwwgwgwwwwwwwwwvwgwgwvwwgvggwwwfwwvgwvwVwxwwvwgfwvwwwwvgWwgxwwwwwwxwwgwfxwvvgxxwwvgwwwxhxgggxhwwxxxwwxwvwwfvvwwwwwvgwxwwgwwwwwwfvvwwwwvwvwwwwxwwxwvwwwxxxwxxUevggeefFeffUffvgvfwgwwfvwWfgwfvvwwwxxwWfwwdvwfvfwwwwWefVgwgwwwwvgggwgvgwwxxwxxwheuxgfwwfgwwwwxWgwwfgwwwwwxgeffwwwwwxwwwvwwwxxgWxxvvwvwwxXfvWwxwwxvgwxwwwwxhfwfwwwxxvfvwwxwxxWffvwwwgwwxxwwwwwxwxwxxxxgfwffvvwfffUuwwwffwfvwgvgffvffvggwwwggfwffVVuwgvffwwvwgwffwgffvgvvwwwvwgwwwwgvwgwwvwwwvgfxxwwwwwwwvvgxwwwwwwwwvwwvgwgvwfvwwwwxxwwxwwwffvxwwxwwwwwvvwwwvfvgxxvwfvwvwwfwvwxxwwxxwxwxwwwgxwwvvgvvgvgwvwxVfvwggwwgeffvwwgvwwwWfvwWVUfvwwffvwwxheffwwfvwwwwWvvVUfvvvwgwxwwwxfwwwwwwxhxxgevvvgxxxvwwwwwwhwwgfvwxwwwwwxxwwwwheggwvwXwwWUfwwxwwwxgwwwhwwhfgwwwwwwwwxxwwwxgwwxwwvwwwwxwwwwxxYfghvuuffdtwgvgfwwffwwwfggvvwwufwvgwwdtwgfffwwwfwwwVwwvwwwwwwWwwwfwwwwwwwwuuvvwWhwwwwVvgvxhvwfvfgfvwwwhwwxvvwgwwWwwWwwxwXwwwwvfffwvgvwwwwwxhfgfvwwgxvxwwwfwvfvgefwwwwgVewgWDewvggefvgfwhxwvfgVfvfwgfwgVevgWUevvvwvwxwfwvgwvwwfvwvwfgxgguvwufhwxwwhfvvwggvhxwvfgVfvvwwwwgvwwwwwgwvwfvwwgwuvwwhxwxwwvwhfvwwxwfwxxfwwfwhvfvwwgwwguwggwwxgwwwwgwwfvvxwgvwwwwvxfWfxgvxvggxwfwxvghgWggvvVVgffffvfVVfgwfvgfgggwvwuwfgffWwwwgvvgwvfffffwgfwwxwwgfvwwwWgggwvgfvwuggvwwvVVggguvvvgfwfgxvgvfvwwwVVffwgfwwwggvwfwggwwwvvggwwwgvfxgwwvveuvgwfWvwuwVwxwwvfXwwwgggxgfwwwwwgwxggwvgwvvwfvWwwxwwvwfvwewgvwgvwwwwxfvwwwfwxwvvwwxwwxwwfvwxveufgVeevwgwdEfdfVdvwwgufvvfwwggfvfggfvwfvggeUfeeeevwwwvvgwwfwvwvfvvfvgggfvwgwvwgvvfggxfgvvwwfwvgvgwvgvvuvgwwwgvvggwgwwwwvevfgvfwfvwgvfhwgvfgwwwgwvwwwvwwxgvwxwvwwvwwvxwwxwxwwgfwfgwgwwwvfwwgwwwvvwgwwwwggwgvwwgxwvvwwxgfwwwvgwwwwxwxwwwffVWwfvvWvvfvwwffwfWwwffwwwwgwwwwgxwwvvguffvwwvfwfWgwgxgwgvvwfwfwwgwfwfgwwgwghwfxvgwgwwwgvgvwWvwwwVxwghwvxwfwwwvwffxwgwwwxxwxwxwfwxwgwwgwxwwfhwgxwfwgvgxwwvwwvwwffxxwxwwxxwgwxwgwxwhxwwwwwwwwweevwFGWeVVvvcUfefvvffwgfugggwwVwwvwwwwxWVggevvcfVefwfgdvfwwfvwwdffffwggfvxgvwHGwwWFgvuwwegvwwwwuwwwwffvwwwwWwwgwwwwwxwgVuwwwwwvvvwvxwHVvguwwufvwwwxgtfgwwvgwwwtvvwwwggwxwwxhwwWwwwwwwggwwwxgVuwgvwwwWvwwwwxwgwwwwwfUwvfwwwxgggxxggxggwwwwxwvfwwwwgwwwggxggfgwfgxwwwwvgwwwvgwwwgwwxwxgwwffwwwwwxwwwwwggwwwvvwxwgxxxvvwgwwfwwwvxggwxwwgwwwgxwwwwxxxwwxxvgwvwwhxwxxxixffwxwxwwwgwvhwwxgwwwvxwwwxwwwhvxxxwwxwwwxweffVWWfUfVVefwveUffgvvgfvffgwwWwvvgfVwwwgefUfwvfffVewgfugVgfVefgwvgwfvwwgfvwwwwwvwwgwgwwgvvfwgwfwvwxwwWvfwwgwwgfvwwwwwwgwwwfwwwwxwwgvvxvwfwwwwwwwwwwgvxhxvxxhhgwwwwwxgwwggvwvwwgwwwgwgWwwwwgwvwwwxwfvwwwwwgwxwvxwxxxxwwwxwXgfwwVVfffuwgvvGfvgwwwweVwgfewwgwwggxwVdffewVwfffwgwUvwewgfvwwgwgggwxwgwxggwxVVxwuvxhwwgxgwxvuwwvxgwwvwwxfwvwwfwgwwwwvfwxxwfvwWvwgwvwxxewwuwhvwhwwxxwgxxwwVwwvwgfvxwvwxwwwwxwwwwwvhfvxwwwvxwxwwxwwwxwwuvvgVdffUVfffVUvvgeuwwvwvwuvwfgwwwxwguwhVWfFWfVvwfVuwwfufewwffwwwwwwfuwgvvvwxwhwwhfvwvhwwgwwvwwwwwWffgvvfwwvgxwufgwwfggwgwwgvvwvwxxwwwxwxgwwwwwvwwxwwwwwgwwwwwwxwwwxwwwwwvwvwgwfxvgwwfgxxvwxxwvwxwwgfwgwgwgvgxwgwwwxwxwgffwxwxvwwwggwwfUUwwffgvwwfeugfTEUUUwwwwwggvgvffxgwwwgvVgWvwwfffffffvffUUUDUxwwwwwwwwvvvfxxxxwwxwwwwwwwxwwwxwwwwwwvwwwgvwgxwwwwgwfwwwwvfvggvwvvfVvVufxxwwxwwfwwwwwwwwwwwxwwwgwfwwgfgfwwxwwwvggfffgfvfffwggwvwwwwhvgwvvgfffggwvveVvvgWUcwfFFvwwwwvwggwwwwfVvgfufhvvfgggwVFFffgVSwxwwwwwwwwxwwwggvwwxxxwxwwvxwwxwxwwxwvgwwgvwfwvxwfUgfVfwwvggwwvfVugxgfxxvvwwxxhxxvwwxwwwwWffwwwUfwwwvwgwwwvVfgvwuUVwwwfgvfgvwUgvgeefgvvgggvVWfefVeVefewwvvgvwffwwvfvvfggfvwgfgvUVvgeeffWeeUvufgfxwwwhvfwwwfgwwwwwxwwxwgvvwwxxwwwwwwwwxwvvwxgxwwxwwggwwwwwwfgwwwwgwgvVVwwwvwwgefVwvwgwwwwgwxwwwwwwwwwwwwvwwwxgwvwwwwwgwgwwxwwxwwggvwwwfggwwwwwwfvfguwwgwvVwffgwfwfffewfegvVgUDwwffdUVtwvfwvfwwvwgVgvWguwgvgfefwvegfEVewfggeVWVDuwwhvxfwwfxxvxvgwuxxwxxwxvwgwxwgxxwwgwwwvvgwgwxxvwvwxxwwugvggwvgvgggvffffuxwgwfgveVwwwxgwwxwwwwwxwxwWgwgwfxgvgwhwvghvwwvwxgvfgvvgfgwggvfegfeeVwwwggwVWeuUUfgvvffwfffWfeffeeVffuefWWfeWfueVwgwfwueVVffwfgwvC4vguefeVeeffwvvwwwwwwwhvgvgfgwvwwxwwxwhwxwwwgwvhwwhfgfgwwwwwvwgxwggfhwveVvfwwwveVWfewfghweVvgwvvTEgugffvvwwvgwwvhwxwwwvgwwvgwfwwwxwggfwvwxggwggwwxgwvgfggwwwwfwwwgwxgfffvggwfvvgfffvwvwwfgwvfwfgwvfffvwgfvgwwwvgvfwvwfvvgwwffvwxvggvwVfUfeffvwwwwwfgwgwwgwffwvgvfgwgxwgwwwwgvwwfxgxwgwfvwvwgwfwvwwfwgvggwhwwwwwvggwfwvwxwfgvwvwxgwfvvfgvwvwxvgwvwxwwwvgvgwvwvwwhgwhwwghxxvgvggwwvwxgwweVwvwgvwwvwvwxwwwhufwfvwwgggvwwwfewwgwgvwgVeFVtggfUUugVeVfWguxwwffwwgwgvffVVegVUfufewxgggvgFeFgvgvewwwvgwVvwxgvvvxwwwwwwxwxwwxwwwwwwgvwwwwwwwwxxwwwgvhwwwwwhwvxgvfwwVvWvffWVewfTfdwfwvfvguVUfVWvWwvwwxwvxwvwwwwwwwwwgvgxwwwwwvwwwvggfUfuvwfgvwwgvwwfwfgvgggggfvhxwfeVwvgfffwvvhwggfffffvffeeefVffuffgwvggvfwvgxgWfeffeVfvfVfuwwwgWVVffufxwvwxwxwvgwxWfewvxxwwxxxxwvgxwwxwwxxwxxwxxwwwwwxgvfgfwwfgwffgeVfvgfwvwxWfevgvwwwwwxwwgwwwwxwwxxxwwxwxwxffwwwwwfffwfwvwwwwwwwwxwwwwwwxwVvfFwwgVwfWfvwWwwvdeegggvVfdgfufFvWfuVfWvvhwvhvgwefveVgwUffFVvvVvgfdVggwufguVgewwwfggwwwvgwgwvgxwxxwxxxfggwvwfwwhwwwfwxwwwwvwwwvhvggwxwgeVwffwvfwfghfeVhwvfwvgxvwggvfvwgwxwwfwxfxfwgvvxvfgvvfwvgxwgwwWfwgxgwxhwwwgwwxwgxwwwgwwwwwgfffvwwgvwEEwwwgVugfVUuwfxwxxwwwgwvwgvfUvffUUwwwgvfvwwffvgwVTtxwwwwwxwwwwvxwxwwxwwwgxwxwxwwwxxxgwwwvwwwffwwfffwwwwwwwgfvwwgVxwxwwwwxxgwxxwxwwwwwgxxgffwwwfUwxxwwxwwxwwffwwwvugfwwwWvfvwwwgfwwwwwwvwggeVewwWUUvwvffgwwwxwwgwwwwvfwUUevffVwgwwwwfgefVwxwwwwwwWwwwwggfwwwwxxwwwwwxwwwwgwwwxwwwwwwxxwwwwwwxxxwgwwwwfwwxwwvwVevwwgfwwwxxxxwfggfewwwwwxwwwwwxxwwwwwwwwwwvwwwwhvfgfvxwwwwwwwwxxwwwwwggvfuwwwwggwfgwvvfvgWggwwUWgffgVfffVegeefgggwfwvvgvgggfufffVewwvfeufvgVfeuwwgfUuwxwwwgfxwwwwgvvxwwwwxwxwwwwwwwgwwwwwxwwwwwwgfvhwwwgvwfvfeuwwVVwvwvvgvwfvvvwwwwvwvwxwxgwxvwwwwwxwwxwxwwwgggfwgvfgwwvwgwwwgfwwwggxgwwwgxuffUvxwfvWuwgfffwfgwffvffTVVdgVefUfUffFVvgUwgvvVwfwwgUfTeVeVeeftffgvvwgfUgwVwwfwgvggfvxgvwfgwhwwxwxxwvwvgfhvwwwwwxxvwxgxwgwguwWvwfxwgwWufUggugvwwffUwwvwgwfgwWxgwvwvgfwwwwvwfwwxwxwwwgxwfVuggwvfVewgwwvwvwgwwwxwwwxvwxfVvgfwwwfVffvwwfgfvwwwgfwwVUVVDfUUfTVuggvvvggwwwwvwvgwWTVUfVeFgvVeeeevggfVevgffVvxwgwwvwfgwwwvgvwwwxwwhwxvxxxwwwgxwwwwwwwwwxxxwwwfwvgwvwwwwffefwgfVvwueVufwvgffufgvfgvwwxwwwxxxwwxxwwxxWffvggwvvVxwwgvvxgfxwgwwwwwfwxwwxFveFgxwxdGfdVVuugwwvuVggfVvfgfVfdvffFvdfvfftfgwgvfwvggD$vwgfdGfvfFffvfVwgwwvuVgfgxwvWgVgfuWwwwfwxwxwxxefgWwuwwggvwwwxwwwxwxxwwwwvggvwWwgxvfwfFwwggvgwwU5vfwffwWwuwwwfwvwwgwwuwghwwwwwwxwwwgfugvwfvwuWwwggvvwwwwwwxwwwwwwwxVweVuwwxwVUDxvfvgWVugvfvgVeffUgfUfVeVeVfuvfVwwwgffVuwgffVUfUD3ffVvgwgvwwfVugvfWvugvxggwfxvfwgfwwwwwwxwxvgfwfffgwfxxhgxxwwwwffxwfwwwwwwgwWEdfffUwffwgvwwgwfVuwwwwvwwxwwwwwfwwfxxwgvwxwwwwxwwwvwfwwgvegwggwfwfwfwwwvgxwwxwwwvwvfwwgggvwxwwwxwwwwwvgffwwwffwwwwgwwgvxxwwwxgvvfgfvgfffwwxxwwwwwwfxwgxfxwgwwwxwwwxwxwwxxxwxwwwwwxwwwwwxwwxxwwxxwwxxwwwxwwwgfvwwwgwwxwxwwwwwxwxwwxwwxwwxwwxwwxwhgvxwwwwwwwwxgvxxxxxwGevfvwwwgdUfufwvwewhwggvgUFfFewgVeegvwwfufgvvgvwuwwggGVeEUFUVgeufgvwwwwggvggvwwwwwwwWfwfwwwwwwwvwwwwwwwwxwWgvggVggwwvwxwxxwwwxxxxxwfvgwwwwwwWgfefgffgvgggvwxxwwwfgwhwvfwgwwvwwwxxhgVwwwfffgwwfwwwxwwwxgwgwxvfVVxxwwhvfvwwwfffvfUfvvffwfeegvfVVfffffxwwwgffvwfwfgwxwfffffgffffgfffffUfUffUVvfhxwxwgwxwwwfwwwgwwxxxwxwvvwwwwwwwwwwwwfwwwwwwvgwwxvwfwvgxxwwwwfvwfwwfwwwggfUwgffVVwgxwgwwxwwwwwwxwgxwfwwwwwwwwgfvwfvgvwvwvwvwwwwgwfvwvwwwgeeuxwwwfvvwwwUUeUegvvwgeuggfgVVfffeeWevvgwgfggeeffgggwvggwVVwwvfeeffgvFCcVefgfvwwxwgffwxwfgwvwxwxxxwxwxgffwwwxwwwvwxwwwwwwwgfwwxvvgvvwgwvfwwEEwfwfffvvwwgeuwffgfwwwwwggwwfwwwwxxwwxgwwwwxgggvwxwggwfvfwvxgvwwwwwwwgfvvwwxffgfwwxwfvvvvffgggfwgvvwffgfvfVeuvfeUfffvfvvgfvwgffgwvfgfwwgvfgggwfffVVUgfwvwVeUffwwwwwvwvwgfwgffwwfxxwwwgwwgwvfvxgwwgwwwwgvxfvwgxgwvvwwwxgwggffggwwfvvfgfvfffVeUwgggfVVUwgxhvhgwwwwwwgxhwvwwgwvwvvwvwgwvvxwwwgvwwwgfffvwvwgwwwfggfVuwwgvfwfgwfvggVuwwvvvgfgwwgvfwwgVuwgfgwfggfwwgfvwgwvfvwwffwwfvgffvvffwvvfffvwfwwwvffgwvvhwwwwwfgwgwxwgvxxvvwffwvwgwgvwwvwgwvwwwxgwwgggwwgvgvwgwwvwwwxgvgffvwvfgvxvvgvwwvvwwvwfxwvwwwvxwwgxxwwgwwfffwwgwfxwggwfhwfxwwwwgxwwwgxwgxfvffwwxwfvgeggvgWvfwwfvwgfgffVVfevfffveVvfgufgfwWvfgwvffFfwfftggffUvffeVffgwfwffwfxwwwwxfggvwVwxgxxwwxxxxwwwwwvxwxwxwwwwxwxwgwhxwwvgwfwVwgwvggwWwxvwxhgfFvgwwffFwgwvgxghwvhxwwwwwhwgvfvwwfgxhwwgxhhwhgvwgvgwwwwggwvfeuwffvffvwVffuwfvvxxfefwUgvgUeVfwffugwffwvffgvvfwvwgWeeevgwgvwweUUfefgffuggwggvxwgffwffwffggggwgwhwggwfhfvwgwgfgwwfffwvwwgwwxfwxhfwvwgfwgvgvxxfeVvwvwfwvwffufvgwvwvgwvwwwgfgfwwwffgvvvwwwwwxvwwWffgfwwwggwwwfVwvVwwvwwwvvxwwwwvgfUwwwwffwgvwfvgfeVwgwgwvfufVuwffUffVwvguwfwWvgwvgggVwwefdVVtwgwfgfWvWwfUfeVvVwwwwvfwxwwwwgwwfxwxxxwwwwwwwwwwwwwxwwwwxwwwxwxwwvwwwwgwwwggwfwwffdfVtwwwxwgwVwwVwwgwgxwwwvwwwwxwwwwwwwwgwwwwwvwvggvwvwwvvgvwwwwwwwwxvwwwwwwgWvwvwwwwefgvwwffvwwxwgggvfeffuwgeUuwfwgwvfgwwfgvwwgwWwwWVUffvwvfVuwwwgVugfvgwwwwxxwwfwvwwvwvwwxwwwwxxwwwxwwwgggwxxwwwxxwwwxxxvwwwwwgvxwwwgvvggVwgwwfwgxwxxgfvwgvwxxwwxgwgwwwwxwvwxwxhvVwwwwwfWwwfwwwxwwwgwvgwwxhfWggvvggvuvfugVggfgwwfggfuuvwefVwwfUwvfvvgfvgfwggVvwwFfUvvWedggFgfVUwggeFvffvfwwwwwgvuwwwwfwwwwwwwwwxwwxxxwxgwwwwvwwxwwwwfwwxwwwwwwxwwvwvvwwwwwWwwwWggwwWfugwWwgfVwwwvVwwwwwwxxwwwwwvxwwwwwwwwwwwxvwffwwvwvxxgvwwgwwwwwxxwwwwfwxwwwwxwwgvgvwgwvwffwgvgffw6DDswwwxwwwgvgwwwwwwfffxwwhffvwgVefffffxwwwwwwwxgvgwwwwwwwwxwxwwwgvgxwwwwwfUfwwxgffvwgfffffffwwwwwwwwxwwwefVxwwwxwvfgxwwwxvufvwwwggwwxwwfwwwwwvufggWefgfgUUfgffvgwvwxwwfwwwwwwxgfvwhgvwgwwwwwvwffvwwwwvwWwwwxwwffwwwwwwxwwxwwWwwwxwwffwwwwwgVUugggvwggwwwwvvfffwwxwwwwwwxxwxwxwvxhwwgvxxwwxwwxwwVfevgwxwwwwwwfvvvWwwwVVffgfweVfefVffffvwwwvvwgfwwWwwwwvwwwvwfwvffgvWgggvfgvWvvgvwgwwwwwwwgvfvvwgwwwxxxxxwxwxwxxxwxwxxxwxwxwwwvwwgfgwfwwvfvwwwfwvwwfffvgvffffffgfgvwwxwwxwxwxxwxwxwwwwwxwwwwwwwwwxwwwwxwwwwwxefUUvwwvggggffvvvvvgwffTTdFVeFEUUUUUEfefggggfvvvfvfwwvfeffggfugVUevfVguefVgfgfvfwwvvgvwfgfweewvwvwwwxxwwwwghgwwvwhwfwwxwwwwwgvwwgwwwWgfvufvvgwwuffWgVvwvggfTfuWgeeeGvVWwfvwwwwhgwwwwxwwwwwwwwwwwxwwwggwhxwwwwguvwvxwwgwwvwvgwwxfwwvwwxVFVVvwwwfvwfwwfffgVgwWFFfVVfgSSTSVVefugfvvwgfwfuwwWgwWVfWvwuvvwVdfvFfvVffvvGfvfxwwxgvwgfvfffvwffwwxxwxwwxxxwvwwwwwwxwxxwvwwwxwwxgvwfwveWVggffVfWfvffgwUUevVUvUWuvwWevuwwxxxvwwwwwwwxwwxvwvgwhhevwxvwwvwgwvxwwvgvwgxvgwxfwfvffvwxvgwgVvvfwwwwvgwwwVgVgfffWffwvwvgvfvvvfgwwwwwffggwfwggwgfgffgevfwvvwgvvxwvwvwgffguwgwwgwyyxxxwgxwwfvwxwwvwxxvggffgwvfwwwwwfvfgwvgvgwfvfffgevwgwvggvvwwwxwxwwwwxwwwwxwwxwwxwwwwfwwxxvxxwggwwwwwxhxwwgfFEewgwxWfuwvvwwgfvvwgVVUUfUUfUUTEFEedVufeevvwwvggvwvwVVVfuTfEgvwWVgfuggfvvggeWwgwgwxwfvvwvffggfvvwwwxxxwwwvvwwwwwwwwwwwxwwxwwwwggvvwvvfggfvgwfeVfvfeUVvfgfgfwffWffugveWvgxwwvvfwwvvwvwwwvwvgwwwxxvwwvwggwvvWvgwvwwggxwgwvwwwwxwwwgwffxwxwxwwwwvvxfvgfgfehwvefwwefVgxwwxwwwvvxwwggvwgVgwwwwwwwvfgwwwwxxwwwwxwwvgxxwxxxgxwwxwwwvgwwgvvwggvwwwwwwwgufwwwwxxxxxxxwxxwxvgxwwxxwWUVevxxwufgvvgWfwhgwWUVfEeUftffFTdfgfggufgwgvfwgggwWfffeffweefVfuwgwwgvVVfvwwwwwxxwhufwwwfwvvwwgwwxxhxvwwwwwwxwwwxuvwwwfgfvwwgwffffefvgfeVfVuwwvwgffVfuvxwwwwwwwwwwxxwwxwwxwvwwxwwxvwwwwwwwwfgwwwxwxwwwwwxfgvxxhwwxwwwwgwwgffgfVvxwgVfgvefVxwwxxwwwwgwwwvfvwgvewwwxwwwvfgwwwwwxhwwxwwwwwghxwxxwwwwxxwwwwghwwffwwggvwwwxwwwgWfwwwwwwwxxxxxwwvgxxwxWVeUvxwxefvvgwvgwfwvWVUefEUfvfgDDeffvfwufvwwfuvfgwvgfvWVfffeVfffwwwwwgUVfefwwwwwxxwugwwwwgfvgvwvwwxxwwwwwwxwxwwwxxwefwwwwggwgvwvfvfgVffffVVffvwwggVefeuwgwwhgwwwxwxwxwwwwwgwwwwxgwwwwwwwwfvwwwxxwwwwwxwxfeUUvwgxfgeuwffvwgwwvwffEEfUUEVTdUFUUVfTugvugfvwwggwwveEfgveeUfGwffWfVguwVgwvfwuwgwvxwvvvfgfvggggwggxwwwxxxwwfwxvvwwvvwvxwwwwvwhwwwxvfwvfgfvgggfwwfVVUvfffevVvVffgWgefgfwegfvwfwwwxvvwwwwwwwwwwwwwxxwxwwwwvvvwwvwwwwVvggwgwwwwvgwwwhwxwwFVfFvwwwXgevfvuwggwgfFVVV66eeUfUufF5eugffffggwvvgfgvvVUUgvfUUgwwffvfVeveWvwWeuuwwwwgvwVgwwvgwgvwvuwwxwxxwwvwvwwgwxxvxwwwwhgfffffvwgwwwwvUfVVwvfEgvgfWwfffvdWvwffvhxwvwwvwwwwwxwwwxxwxwxgwvwwwvgvegxwwvfxxwwxhxxwfwwgxgxUefUxwWggggvwwfwwvvwUeeVTFEDgfffUgfgvfWgfvgvwwgwwvvwfUfffefVVffffwwwwvvgeefwvwwxVwfugwvvfwwvgwxwvwxwwxxwwwxwwxWvwfwfwvfgwvgeeVffegfVfeffwwwwgwffeVwwwwwxwwwwwwwwxxwwwwwwfgvwwwwvwwwwwwwxwxwwwxxwxwwwgfvfwwxvgwgwwgwwxhfvwggwgvfffwgfvwwwvwwgwwwwwhfvgwggwwwfwgfwwwgwwxxxwwxwxwxvwggwwwgwxxxxwxwwwxxwwwwxwxwxxwxvwwgwwwwxhvwfvwwgxxvgvfvwwwgwwxwwwwwwwwwxxwwwxxxxwwxwwwwwxwxwwwwwwwwxxxuvgfvwwWgfvxwwwwwwxwwuvvffVUuwfvfUvfgffWgfvxwwwwwwxwwvvvVUuvfffvwwwwwxgwwfgwwwwwwwgwgvxwwwgwwxwwxwwxwxwxwgwgvxwwwvwwxwwwwvgfvwvffwwwwwxwwfgxwxwwwwwwxxxxxxwxxwwgwwwwgvwwwwxxFFgffvvwgeegvxffxxHGffVRDUuvgUEtfgfffeVvvffwxHVvFDUVvTfegfxxhfVffuhvwfvwgeffvxfgxwwgivwvgvxxheffvvVwGgfFUDffefVfgxwVfeVwgvhgvxxwhffwwfffffxfwwwxxxwfveegwvwwVvvfwwgwwwxwweevweUeVffWUffgwwwVfggwgwwwwxwweffUefffwwhvvwwwwwggxwwwwwwwwfgwfwgwgxwxwxvwwvwwxwwxwxwgvfgwxgwvwxffwfffvwwwwwvwwxwwwgwwwxwwvwvwwwwwwwxwxvwwwwwwwwxwwwxxwwxwvwghwwxgfvgwwffggwwwggfffXWfvffeVgfvwvwggwgwwfvgewvwvvggvfvvgwfvgfvvfgfgwvwfewxghwwggfgwwvfvvvwwxxxwxwxwwwxwwxwwwwwwwwwgwfgwwvgwVvfwvgfgvgfwggvggfvvfwfvwvvfewxxxwwwvhwxxwvwwwwwxwwxxwgwwwhxxwwwwwhgwwwwxffEEvwwxgvvvgvfggffvwvefUUfdTUVUeUUEEUfdwvvfwvfggffvvwvgffvffevWVVfgfgfvUVfveVvufwwvxgwwwwwvVWfffwwvwxxxwxxwwwvvwwwxxwwwwxwwwwwwwxwwwfwgwwwfVVfgwgwwVwueffvvggVVfWgwefEggTWvegwxwvwvgwwwwwwwhwwfgvwxwwvxwwvgwvfgWwwwwwxwvwfwvgwwgwgwwwVFfdvwwwxfgwfwwWvgvWwvWFfeUVfvSUfceUSdvWfvgwfgfffvwWwvWvuVgwVgvxwfeffGgfFefggGgfxwwgwgweWgvfuwfhfvxwxwwxxxgwxxwwgwwhwxwwghwwwxxfwvfwvffvffwfVffffgVgwxvuUefWgVUUuwgWgUuwwxwwgwwwgwwxwwwwwwxxggwwxwVgwxvvwwwwvvwfwfvwvxegfevwwwwfgvwfwwwwwvwgegfVuefffVfwffVfffvwfvwwwwwvgvwggffwwgfvfffwfwffgfwfwwgfvfwwvwwwfgvwwwwwwvwwWxxwxxwwxwxwxwxxwxxxwxwvwfvwwvwwwwwwWggfwwggvgvvwvwfgvWwggwfwgVwfwwwxwxwxwxwwwwwwwwwwwwwwwxwwxwwwwxwxxwWVvgwwwhfvwvwgwvwxXVvwVVfUegfeVegvwwgfgwwwxvfwxhwvgffvwwwwvgvwwwwxgvwwwwwxgxgewwvwwfgwwwwwihwwwwwxxxwwwwhewwvwvvvwwwwXvvVfUvvxwffvwwwwgfwwvwwxgxhwwxwwxwwwhwwwxwwwxwwwwxwwwwY7GwweefwuuwWVegxwffwwG7wwvwgSUewwUUwwwuuwgffVwUgww6VuvXvuwwGffUUeVfffxeefwweewfuvwXvVUwwffxwwWwwwwxwwxuwwuwwwxwwwwwwwxwxvuWffVwwvUxwwFffxgfx8WeUUfVVuVwwwfeVwwuwxuwwwxwwwxwwwwwufwwwwgwxwxxwwwwwwwwwwxxwwWVeUvxxxwuffwwwwggvgwvWVeVeEEDvvfdVefvvfvuggwwwvgfvgwvgffffeUfeVfvfwwwwgfVfevvwwwwxwhuwvwxvvffwvwvwxwxxxwwwwwxwxwwwwwxxxevewwwfvfwwvfvfVfeVefVVvgvwwwwgfffeuwwvwxhwvxwwxxwwwwwwxwwvgfwwwwvwwwwwwwxwwwwxwwxwwwxxffwwwgwwwvxwwwwffvgvvgggffgwffwwwggwwvwxgwwwxfvwvggvwwggwfgwwgwwxwwwwxwgwwwxwwwwwxxwwwwwxxxxwwxxgwgwwwwgwwxfwvvvwgwgwgvfxwwwfwxwwwwwwwwwwwxxxxxwxxwxxxwwxxwxwxxwwwwxwxwwwwwFVfeuwwgfffffggwgwgggFVff46VVUE5egfVevWfWVgggwvwvvehffUUUgfUWwwvvfegVWVefvwhWgVuwwwwxgfffgwwvwfvvgwuwwwwxxwwwwgvwwwwxxwxwwwxwwfwefwfwwvwwgwUfFUwgfVwgfvfegfgftvuwxfgfvwwwwgwvwhvxwwxwwxxxfgVwwgggwgwvwggwwwgwvgwfhvuUfwwwwwgwwwwVvwwffvvuUUgfffgfgfUfuUWfwgggxfgfvvfUVewwgfwwhvfwffwwfgwfvUVeVgwvvfwxwgxxwxwvwfggwwxxxwwxxwwhvxxxxwwxwwwfwwwxvvwffwwwwfffffgfwwgvwggwvgvwwwwgvfgggwwvwxwwwxxvvwgwwwwwwwwgfwfgvwwwwxwwwwwwwxwwwwwvxwhvvgwwwxvggfvxwwwwfwwxgffvvwwggVUugffffwVeeffwvwvwvwwVefvgwwwgvwwwfgvwwffgfgwvVefwwgvvfwgwwwwwwwxgvwwwxwwwxwxvwxxwwxwxxxwwxwwwwxxvfwwwwfvwvgwwwwggwfwxgvwwwxgfwwwgvvgwwxgfwvwvwwgfvxhwgwwgwwxxwwwwxxfwwwwwwxfgvwwwxxwwwvxgwfgwwwxwwwgvwvhwgwvvfwUUgwvwgeufvfffffvhfvgvvggwwfUegffwwwvwgvgvgffewxgvfvfvgfwwxxwwwwwwwwvgwwwwxwxxwhgghxwwwxwxwwwxxwvwwwgvwgwwgfvffwwvffwwwgwwgxwwfvvwfffwwwwwvwgvgwhfwwgvwggwxwwwwxwfvwwwwwggwgvvwwxxxxxwxgwwgvwwwwvwwwwxvwfwgfvvfwggwvwffgggfvvwwvffvgwwgffwwgffvggwvwgUUggWUuvwwgfvwvvfwwggggvffgfvwwwfggwwwwgvwwwffgwhffwwwwwwgwxwwfwwggvwwxwxhgwwvwwwxwwfwwwxgwwvUUggWUuvwwwwwxxvggfvvwgwwvwvwfxwvwwvvvgwvwgfwfwhgwvwwfwwwxvwwgfwwgvwvwwwhgwwvwwwwwvxfweVgvwgwxwvwwweVwwwvwfvTEvggfGUtvfeVffffgwfgfvfgwwwvwvvfwgvwwfvvffvgvvveVgffvvvwwgwwwgwvxwwwwwxvxxwwgxxxhwvxxxwgxxwwvwvgwfgwvvgwwgvgvvggxfwvgwwvgwwwvgwwgfgwwvgvvwWfuwxgxwwwwwvwwwwvwxxWfehgwvggwwgwxxwwgwwwwggwxfUVvfffwffvgeUfVvVvggwgTUeVgvgTUVUfefgfwgvvwUUVfffvWVfVVfvvgvwfvvETevfefgfVVffgwvvgfwgfuuwvvfwgewwVwwfgwvwwwvvxvwgXfwvuwuwwxgguwwffgwwewwUwwwXWvvfeefgfVvfwffVVwgvwwvwfVeWvfwgVvwwwgwwxhgvgvgvwwwfffgfvgwwvwwwwfgvgvgwgvgwvxwwwwfVfgvwgvfwgwxwfguwffvwggWfvwwwwwxgvveweUvVVugfvvfvfVfVfffvhwvfwfVVUwffwgfwfeVvwwxgvwgfgfgvgfevwwwgvxxwwwwwWxwwwxxwwwwwxwfwwwwwxwwwhxxwevWguhgvvwgfWwwfggggfugwwwwwwgwgvwwwgwwwwwhwvwwfvwwwggfgvgwwwvwwwwwwvvwwvwvvwwgwwwxwxwwgwfWWvvgwwwufwvWevwgwhVVgfeevuvvVUfwgvwguffwwVefwggwWgwgUefwfwwgfvwwwxgvffvwwxwgwwwwvwvwwwwwwwwwwwwxwxwwxwvwwwxwwwxwwwwhvvwvwgfvwwwwgwvgffwwfwwggvwwggvvwwwwhxwwvwwxwwwwwwxxwwgwwxwxwvwwwwxvfgwgwwwwwwwwxxwvwwwhVgfvffvwvgfgVvgwwwwwwwUfUfuevfeffvgeffvwfVvWUffugffgvvVevvwgffvgWfffwwvwugfwwgvwxvwwwwvwwwwwwwvxxwvwwwwxwwxwwvwwxwwwwwfwxwwgwwfggvgfvwwfwwwwgfwwwgfvwwwwwwvwwwwwwxwwxwwfvwfwgwvwwwvwUfgwvwxwwwwwfwwwwvghwwwwxvwwwwwxvxxwwwgUvxwwwffwwwwwwwwggwUEuggfwVevgWTuwuvVWvwwwufgfwwfwgffgvfuwWgwwwwwwgwfwwuvwfwxwwwwwvwxwwwwwxxwwxwxgvxwxgwwxxwwxWgvxwwvfwwwwwwgwwwgvwWwwwwwwfxvwwwwwwwhfewwwgwxwwwwwxwxwwwgvwwwgwVfhwwgwxwwwxwxxwwwwXwfVfvvwggeuwwwfgwwvwvevVVffeevfffffffvegWTtwwvVVwwwgvvggfvfffwWvVVxwwwvwgvffwvggwvfgxwvvxwVVwxwwwghvvxwwwwxwwwvvwwwgwwwwwwwwwxfgeexvvEEggwvvwgwgeuwwwgwggwwwwwgvwfxwgwwggguvvvggwwwwwwwwwwxwxxwvvwwwwwvfggwwwvwwwwwwxwwwwwwwwwfWvegfwwgufvvgvgvvwwwgXEWdVfffdWfefgfVvgVtUfvfwfuevwwVGfeVVffvvwvfewgwwVwvfwgwwgwxgwwwvgwvgwgvwwwwwwvvxwwwxwxxwvwWwwwvwwwwwwwwxgwwwgvVgvgwgevwgvfggeffggwvxwgewggvfwvgwwwwwwgwwvEfwwfgvwwwwwxxwwwWxwggwvfwvfwvwwwxwxwwwwuxxxwwwvxwxvwffvwwvwvgggvwfwwwvguveUfUUegVuffgfwgVfffvwfwfgwwwgVffwwgWvvvvvfgewgVwfwwgggVwfwxwvxwgwxwwhwwwwwxxwwxwwwxvxwwwwxxxwvwfvwgwgfwwggfwwfwwwgvwvvwfwwwggwwwxwgwwwwwwfvvwwfwwvfwwxwwwgxwwwwgffwvvwvwfwwwvxwwwwxwxwwwwxxfVwggwwgfwvvwvwvwxwXVfwVVfuevwVggwwwwgefwvwwffvxxwwXffWvufwgwwgfvwwwwxvwwwwwxwhgwwhuwwvxvgvwwvxwwxxhwwxwvxwwxxwwywgewfvwwfgvxwwwWfvgufwwwxvgwwwgwwvwwxhwwgwvxwwwwwxxxwwwxwggvwwwwvwwwwwwxwxwwxwwwwwwxhUfwgfVvgevwWefgwwwgxwVfwgvuwgfgfwwgvwwfuwgewgxvgxwVvvuwgfwwwWwgffgwwwgwwgwwfgxwfvwgvwgwwwvvwgwgxxwwfwwwwwhgwgwwxwwxxfvwgvwgwwwwwwfwwvwxwwxgwwvgwwwwxxxxgwwvwgvwxgwwgwwwxwxxvvgwwwwwxxxwwxwwxxwwFfffgwwwwdUevwwfffgwwwGVeWVFUdvwvffgWvvwfeUewvveVfvwfvfgfGfdUfWVvwfwwwgvwfvvwwxgwwwgfgfwwwwwwvvwwwwhwwggfgvwwwwxwxxxwxgUgfwwwwfwwfwWgUewugggwwwwwwwvfwxwfWwvfwwwwwwwwxwwwxxxwwewwggwvfwwgxgxwwwxxwxxgwxvgwwwvwwfvvwwwwwwxwwwvfwvvfggwwgvvgwxwffwwxgwwfwwwvgwfggwwvvhwwwwwwwxwwwwwgwwwxwxwxwwwwwxwwwgvwwhwwwwxgwwfgwwwwxwwxvxwvvgvwwwxwwwwwwwwwxgwwxwwxxVfgfVwwwgVVVwvgggvgewgFdWfEVeEfUefgvwvgwFeUFfgvwwvwVgfUVTdffeVffewWwvWgfugvvweggvwwgwgwvwggwfwwfwvgwvwwwxwwxwwxwvgvwfwVvvvxxgwvggwvfgxWffUuweffuwwvwUfVffVffgwfffvwwwvwvxhwwxWvfvffwgvvfwwvwwwwwwwwxwwggfwwvffwgwvfvfgwwwwwxwxwwwwwwwhwgfVwwgwxwwwwwgxgffvfufgfDwvgvvWuwwfFfffwvfvvwwefgVFdxxwwwwfwvfwwfgwgVuwVwfffedgfhxwgxxwhvwgghvxxxwxwxwwgwwgwvwwwwxwxwwwwwfvWwwwwffewWfxxfxwxVwwxwwwwwwwvwwggfwgxxwwgvgwgUwxwwwxwwxwwgfwwwgvxwvwwfggwgvuwxwwwwwwgvwwwgGVvvgwwwufwvggfTfvWwgg7eeefgvtfwcUEevvwwdffwwwUduvGgVVwfGffffvwgffvwWwfWSuveGgVfwgwwwgwffwgffwfgwwwwxwxwwwwwwwwhvwggwfvvvvfvwgwfwfvvgxheWfvwweUefgwwfvvggfVfwwwvVvwvwgVuwwwfvxwhgVwwvwwwwwwxxegwVfxwhwwwwxxVfwwwvxwxwwvWfvxfWewxfxhWGfwwggwwvwgeeWwwEfxWFffvvwweeVgvVUwwwvvvWUeVwgEVgfwgWwwevwwXwwVewwwfgwwwffvwxwggwvwwwvgwwgfxwwwwwwxwwgwwwwvwvwxwwwwwwwggwvfwvwguvfwwVewhwgwwwwxfwwhgwffwwwgvwwxwggggwvwfwxwgwwwgvwwggwwvfvwxvvwfvwwwvvxwgwwvvwgwfwwwxwwefuVgVffggwvfwwuWgfvvgfeUfgwwfffuffVfwvgfffUfffggfvvggffgwwgfwwweVffwwvgVwvgwvvwhgvgggwvwwgwgvggfxwwwwwwvxwwvggxvwvxxxwwvfwwwwgwvwwggfvfgfwfgfvwwvvgwwggfwxwvfwgwwffwwwwwgwgggfwwxxxvgfUvwwgwvwwvgxhwfwvxxgfxxwxwvwxgwwxwgxvhfVwwfgvwfewgvwgwwwvxwfVwgvewgvgVvwffxwwfuwgvwgwwggwwwVwwvwhvwXwwgfwwwwgxxxwwvxgVxwfvwhwgwxwvwvxgwgwwwwgxvxwhwwwwxwxxwfvwguwWvgfgwfwwuwxgwgwwfwwwfxxwwwvVwwvwwwhwwwwxwwwxwwwwvwxgxgxxwxgwwwwwwwxxeeevfeffffwwVVVfgVfvwwgeffUgwfVfUwvfvvwgggffVUVggffuWgfefvggvgwwwuffVufffvvwwwgwvwgfwvfggffwgfwfwwwggwgvwfvwgwxxgvgwhvgxwgfwwgvwvgwwwwXgwvffVwwvwvwgfuffxvvvxgwvgffuwgfwvwwgwwwgvwvwhvvxwvvvgvwgfwgxwgwwgxgwgvwvhhwgwVwwvwvggvwxwxwgfWffvggfvffwfgfwfVevgweFfUvTevvgVwwfUwwwfegwuggwvVUeVfVgvvfWDUfefwvgVwggvevgwgffwxwwwvgwvvwgwvvwvwfxxwwwxwxwwvfgwfvwwvvwwgfwwfxxxwwwxfuVffffgwfdwggffvuvgVvwvwwwvfxwwffwwwxgggxwvvwVvwwwvgwwwvwhgwfwwwwxfvwxfwvfvwwwvwwwvvwwfWgfVWfwwfffwwvgvgvwgWffUeVwffwfefevewwfufVvfgfVewvffgevUfgffwvfeffwwgwwfuwwwggwggwwwgwwwwvgvwxwvwxwxwxwxwwwwfgwwxwxwxwwwwxxhvgVvwwwvvwwwwvvwfgggfwwfvwvwxwfvwwwwwhwxwVVwxxvvwxwwxwwwwwxxwwgwwwvfwvwxwvwwwwwwgwXeewwfvvwffggwggfwwwwwwUTgfeefVefGVeefvwwEUgEUvVffvfwwwUffdUVfevgFVfeffwwffwwwwwwwxfvwvfvfgvggwvwwxxwWwwvwwwwwwvwwvwwwwwgxvwxwxxwwwwwdegVfgVvgwwxwwEWuewffvwWgfvfwwwffwxwwwwwxewfvvuvvwwgvWvfwwwvgxwwwwwufvvvwwgwvgwwwwgwugwwwwwwwwxwwwgxwfwwwggwfVVFUUxwwwwwwgwwwvvwwwggwwwwgffvxwwwwwwvggxgvwWffufgfffefFEwwwwwxgfxwgggvfxwwwgxwwwxwwwvvefVwwwxgfuUVfeVfvfVfwwxwwxxwwwwxwwwwwggxfwwggvvwggvvwwWVwwwxwwwwvxwvvggvvwvfwxvwgwwgwwgggeewwfffwwxfffffTTffxwgvwwgwxwgwwwfffffffwxwwwwwwvgwwwxwwxwwwwgvvvwwwwwgwfgwwwwwgwwgffffffffffwwwwwwwgvvvfgwxwwxwwgwgvwggwfggwwwwvgvgwvgffffffffffxxwwwwwwwwwwwwwwwwgvwwggwwwvfxxwwwwgwwwwwwwwwwwxvwwvgwffxwxxwwwgwvwwwfwffwwvwvfgwgffffffffvwxwwhwvfgwffhVuxWFUxwvxwvxwgwvvgwwwxwwwgffvgvwwwwveVhfvwgUUuwgeWfgfVDwwffxfvxgvgfvvxxwwxwwwwgwvgfxwweeVhVuwgffvgfgffWfeUwwxwhxwwvghgwwwvvgxwwxgVgwgggwwfUgwxxvvfxxwgggxgwwvwwwfvwgwwfeexwvwwwwWvwwfeewvfETfwfVeVewxwwwwvwwwVVvwwfvVUVxxwwwwgwxwwwgffwwxwwfwxwfvgggwwfxxgvwwwwvueVfVwwwwgVUVvuxxvwwwgwvwvgwgwxwwvgggxwvxwgwvxvwvwfVUVwwgwgVfVvfxwgwwwwhxwwxxwgwwwvvuWwVwwxwhfvfvuxwwwxwgwwwwwwwvffgwwhwwVUVvfwwggvvvvxwxwewegwggvwvevfWvvwvggWfwwxwvwxgvvwwwvVxgewfUVuvxwwwgxxxgwwvgwgggvwwVgggwgwvwwwwgguwfUVuwufvvVgwfwxwxgwvfxgxwgvvvgwghgwwgfwfwfwVwxgvVggvwvfgegfeVugwwVwxxxxwwxvxxwwwvwwwwggwxwwwwwwvfvxwwgwxgwgwxwxwvxwffvwwwVvvfwwfvgwvwuwgvwgewgVfUwwgegvVgegevwwvgwvvghwgWfufvwwVfgwxxwwwwvgwwwwwgxwwgfvvvffvwgvvwwwwxxwwgfffffuVvfffffvgwvwwwwwwWgegvwwgvgwxwwwwgfwwwwveVwwwwgugueVfgffgwwfvVwvgwvxwwxgwxxwgwvgwxxwwwwwvgugvggwvgwwwvwwfwxwwwwxvffwwwwffwgwwwwwvwgggUguxwwwvwwgggfUvffggfffwvggwxwxwwvwgewvVgfTwwggUUUxxwwfwwxwwwwfwvwxwwguVghgvwfwffefxwghfTguwwgvfVfT5uxgwwwgwexvgefvexwfxwgwwwfFuwwwgVvVwWvhwffvhfffdVveVuwxwxfgxhxwfwvgxxgxfwvxwgwvWweFuwxwgwVguVxxxgwvxvfwvgwvgwwgvVwwwggufUSwWvghxgfgvgfTgevwvvgwwwVWVfxwweUwwfvwwwwwgxwghgvffvggwgggwwwxwufwwwvguvfVffgWffuvUwgvwffUeVwvwwwwwwwggfxvfwwwwwwxwwxwwvgwwwwwwwwVfuwwgwwwfwwwwffeVwwwgvxxwwxxwwwwwvfggvwgvwvvfwxwvvfvfwwwxwwwWfuwwgwvgwwwfugwwxwwWVuwwwwgwfefuwwwgwwgVfgwfvffwxgwgwwWWgwvgwufwwggfVvuxwxwwwwvwxgwvwwggwvwvfxgggfwffWvwxvfwvggwVWffgegvgfVfuwwggwxwwwfxxwwwgwvwuvxwwhwwxwwwwggvwvvvfugwgvgvfwvgvgwvgwwgwxwwwxxxwvwwxwwwwwwxggwvgwxxwgwvwwwgwfgwgxwwwwgvxwxwwwwxxwfuffvfvgwwwfuwwwvfgvfgvgwvgvvwwwwwwxwvvggfwwfwwwgeVVexwwwgxxwvxwwwgVwwwvwgwffwgfwgwVvvevwvwfgwvwgxVVUvVhgwxfwxxwwugWfwvVwwwvxwwwWwgvwvvVgeUwxwwwwgffgfvgfvVwxwwwgwwfxxwwgvwwxxwgwwwwwwgwVvVxwwgvwwvevxwxwwwgwfwgvwwwvVwxwggwvvfwgffeUeguhwvwwfgvvgegegfgwhwvwxwvuVfgvgfvwffVuwwvwvggwgwvwfvWuvVfxwxfvgfvwvffVggffewvgggvwffVugfvfvwxwwvwwhwfvwwvgvwgxwwwwwwwfwwfwwffewfwwwwgffuwwwfuwgxxxgxwwwfwffwwggewfxwwwwfffvwwwffxvwwgxwfffwxwgwgffwwvfuggwxfffwgffVwwvgVxvggwvggffgfwgwwwwwwwffwwvvwwwffwwvfgwwxwwwwwwwwwwwwwxwwxwggvggwvvgffffgvvgfwwvwgggwfgvwgwwwwwwwwwwwwwwwwwhvwwwwxxxwwwggwwwwwwgvxwvfgwwvwgwwwwwwxwwwwwwwwwwwxwxwxwxwwwwwwwwxwwwwwwwwxxwwwwwwxvwgxxwwgvvwggwgfvwwwwwwwwwgwvwwxgwwwwxwwxwwxwvxwfwwewxxwffxxwwwxwwwwfwfwxvffvwgwfgffwggwffuwffvwwvWvwwwwfwwewgxwffvxvwfwxwffvwWvwwwfgfVwWvgvffxffvwvvgvxwhxwwxxxxgffxgffhffwffwWxwgwwgxwxwwvxvffwwvgvwwwggfVwwwwgffwexwgffgffwfxwwwewfwfwwfwgffggfwgwfUwwwwwwwwwvwwvwgvwwxwwwwgwgfwwvfwwgfwffUugvwwwfUxwwgffwwgwwxvwwwgwgvxgwgfxwwwxgwwwhfvfwwwxvwggfvwwfwvwfwgxwggffvgwxwwwwwfxxxwfgfxxvwvxwwxgwfwwgxwwwwwgwwxwwxxxwvvgxVUuwwwwfffgwvxwwgwwwwwxxwwwwgwwwwggVVWwwggVwxwgvwwvwwwxwwxwwxwxwWgwwgwfwgvwwwufvxwwwwwwwWEuvwvwwxwwwwxgvwxwwffwwvwwfxfVwwfwgvwwvvWvwwfwwggffgvgwuwvwxvwwxwwwwxxwwwxwwwwwxwwgVuvwwxxxwgwwfwxxwwwwvgwuwwwwwwUEgwgwxxwwwfUgwwwvWxwxxwwxwwwvvwvffFfwwgfdwwgwfwwwvwwWwwgwwvwwwwgwgWvxxwwfwwggggwefWfffeedwuxvwwgvfVfFwwgwwwvwVwxwwwewwwwgwgvxwwwwwwwwwvgvfVufgfeuxwwwxwwvwwgxxwwwwxgxwxxwwwwuwgvgvevuvwwgwwgwWwwxwvgVugvgfwwwwxxwxwgwwxxvwgwwwwvfVeffefeuVvwwwwvwwwvwvgwxwgxwgVwgfvfffxwwvgvwwvvxwwvfwwwxgwwwfvwfgevewwwgvvwwwfvgVUUffgggwgvwvvfvwvvwfvxwxxwvvfxwgvwwwvwgewwwwggxwvggvfUgvwgVwxwxwwgwwvvxwxwwfwxwwwwwwgfffwfwwgxwxwfvxwwwvxxwwwgfgwggVwxwwwwwwxwffwvwvgeUwgVwwgwfwvhwwwggfwwwxwwgWfwwfvgfvggvwgwgffVvwgwgggwuvggwwwvgfvwgvvfwwvgwffggffvfvvwfwffWwwgvgwwgwvwwxwwgfeggggxwvfWwwwwhwwwwwvfhvegfffuwwwwfgxvgWggfwwwwvxxwwwxwgwgwhwvwwgwvvvwwggwwwgvwwwwwvfxwvwvfgvfwxwwwwwgxwwxwgguwwffvwfggvffffvxwfwxwwwwwwwwwwwvvwfvgVewwvwgfVUVTtwxwvxwwxwwxwgvwfwgfgfwwgvwffVugfvwwgeWfefgwfffeugfgeefVUEwvvwgfxwxWvwwwewxgxwwwwwgwgwfwwgVevWUwwggeuwggftvfeVtwwxxwhvwwfxwwxgxwfxgvwwwwuWvgvvgfeVuxwwwxwwgVwwwvvffvgvwgegfefwxwgwVxgxwgffVfVxwxwgwggfUvfVgfUDvvggwgvwwwwwwWVVfufVVwwwwgwwvwwgwvgfvxfwwfvwwwffgvwgfwwggvfwwvfgfwvwgvUVffgVVVvgwwhwuvvwxfgwuvggwgwxwwxwwfwfwwwwevfgwvvfgxwgvffffVVwffwwwxxwgwvgwwwwwwgvgvvWgvwgvwwwvwwwwfvffWvggwwxwwwwfvwwvgwwwvgfwgfwwwwgwvvwxwgwfVwVfvfvwwwgffvwwwwffeVvuwvwvwwwffvggwgVewwgUvgfwwxwwxwwwwwfvwwgwwwggfvwgffwwfwfwxwgvwwvwgfffeegvwwWfeuwxwwxwwggvwhfvvwxwvwwwvvffvwfgvfwhvvfgeuwfffvwfWffuwvxxxwwwwwgvxxwwgvvwvvwwxgffvwwvgwxwxwvggeuwgvfvwggfxvxwffvgwwwvggwwVVwwgfffwgefVwwvfwwwwvwwfewwwwvfvwvfeffWxxwwwwgwwwxhxwwgvgfwfvfWwgfwxwgvwfgfvevfWvfwggffWwwxgvwwvfwwwwvwwgwwwwwwffgvxxgwwwwhwgwwwfgfgvwwfgewfWgggwgwwwxgwgwwxxwwwwwvfvwgwwwwhwgxwwwvxwhwwwfwvwvxwgwfvvggggvwgwfvvgvgwwwvvvwfgffvvvvvfwvvuwwwgwwwwffVuwwvfwfvwgfvwwwvxwwwwwwwgvwwvfwfvwvffgwgvwgwwxxwvgVEtwvffvwwvfwwwwfvxxwwwwwgVuwvwwfwxffVufwwwwwgwvfUwwgvgvffwffgvwwfvfxwxxwwfwwwghxwxwwxwwgVuxxwwxwfwwxvgvxwwvxvgvfvwwvgvxxfwfwxwfUwwwvxxwwgUDwgfffffwwwgwwwxxggwgfvfffVuwgfUgvfwxwwwwgwgxwgvhvfguxgfvwVWfewxwwfwwfwffVfeFgfvwgfeVxvwwgxwfVvgvwfxwgvgfwgugffggvggwexggwvwVgefEffEwgwwggvgwvwwwvxgwvxwwwxxwwwfwfwVguVxwwgwvgwvhwWwhxwvgfFwvVgghwvfwwwxgfdgVtxwwgwvgwvfgguVfuVvhwxgwwwwgfwfWfgwewwfwwgVeffvvwwxwfxwwxwvvwwfgwewvUvhgWugvuvWvwfegffwhwguwwuvwwvgfvugvggwwfwwwwwgffvvvwwVhvwhwgvwwvwgfwvfUfgVwwwfvwvfffvfvgfvwvhxvxwvggwvvwwgvwgvggfxwwwwwwvwvggffwwvVuvgUgwfhvgggvgvwwvggvgwvgewgWwgwggffVwfwvxhgfgfgfffgffvwgvfwffgfguvggvVwgvfVwwwvwwfwgvwgffwwgwwguxwwvfwwwvWfwVffffufvfvUvgwvWvewfgvvVwvwwwxvgwwgwwwwvvfxwwxwwwvgwwwwwfVvgfgguwwxwwwwfvffwvgxwwxwwwwwwwwfxfwwvwvwwgvwwxxgwgwwgvgfwwwwwfvwwwwuwxxwwwwwvvwwwxwvVewvwgefuwwfgfwggggvwxgggvwwwwwfgvfwgffffVfeuVfWvwgvwwwwwgxwwwwvwwfwgfvvUggffvwwfgffffffvggfVUVugvUVugwefwvgwwwwwwwwvwwvgwwwfwwggfwwwwfvwwxwvvgffefeffgfgvffwvvfwwvugwuwvgwwwxwwwgwvwwvVwwVwvfgvgwvgfwwvwvvwgwVuwfgfwggggvwwggefvgwfwwvwgfUfVvgVffwwgvfgwveUwfWwwgwffvWwwwvwwgffxxwwwwgfwfvFEexwvvxwwggwwfvfgfxvwwwvgVwxwvhvgvvvwvwgVgwvwxwFEeffwxwfwwxgwwwgvFEegwxwwwxwwwwwvweevgfwwwgvWgvfggvfwwvxxwfwvfVgwwvxwgwwwxwfVgwfwhwFEefvxwwwvwwvvwxxwvggwwwwvvxxwwwvvwwfvvfefgwvwwvvwvvvwgeewxgfvvgfUvxxwvvwwgfvwWeUvwxfvwfgwggfvgefvwwwwxvwgffwxwwwwfggwfwwwvwvVeUfgfWVvxwvwgfwgwxgvwVeUxwwwwxwwxVewwwgfwfxwvgwwgfffvfgfwwwwggvwggfvxwwwggffgxgvxvfgwWeUvgwgVvxwwwgwxwxwwwwggfwwwwfwwwwwwvfwfffwwwwvwwfgfwwwwgfffUeggvwwvfwwwwwxxfwfvwwvggwwffxwwwvvffwwwwwwxwwwwvvxvwgwwwwwwwwwwwffwwvwgvvvfwvwgwwwwwwwwwwwggwwwvgxxxxwwwxwxwwwwxwwwwwwfvfgwwvwgwwwwxwxwwwffxwwwwwwwwwxxwvvxwwwwwvfgwwxwwxxwxwwwxwwwwxvwgxwxwwwwwwwwxwwwwwwwgffgvvwxwgwvvwwwwgvhVxxwwwvwwffxhwgfUefwxWwhwwwewwwWwfgvwwwxwwhwevvgwwxxwwgwgwfwgfUevhwwwwfvffvxwwwfxwgxwggUewxwxwwwwwgvgfgxwgfwvwvxxfvvwwwWxwgwwwwxwgvxwwxwfgwwxxwxgUevwwwwgvugxxxvwvwvhwxwwwwxwvvwwvWxvwvgfgvwwxhwgwvwwgfgwvgfehwgwffggvvvwvwggggwgfTTwwgwwhfvwvxwggfvfvvwgwwggfgxwgeewwxfvgfggwvwTTwwwweegvgwwwwggvgWVfgwgvfgwgwxwxhxxwwwwvggwwwvvwwgwxfwfggwxwggggvfgeegwwveeggfgvxxvvwgwxeegwwgwwwfggvgwvwwwwwwwggwgffvgvvwwwfwwwxxhvgvvxgwvvgwxwvfgvvgfgwwWfUwwWVvwwvvggfxwwgvfwwgwvgwvwwgeewxggwwwgwvvgwxfgVfeUfefxwgwwgwgggwvWfuwwXVvvwfwwwffwwwwwvwwfgwvfhwwfgggvvwggvwwvvwwwhwwgeexxggwwwgwvwwxgfWgfewvwwwwfwvgxfgwwwwxfggfvwwwwwwwxwuwfwwwxgvgwwufVwwfeWwwwwxwhfffvvvfvVFfwwgedwwWggvvvvggfvwgwfevvfvgvggfxxwvfwgfgwwuggfggdfuwuwwggwvvFfVWwgvwvfvgVwxwwfuwfggwwwwgwvwwwfxwwwgvggwgwvvwwwwggfwfwgvgwwwggvxxvfgfgwwuggvwwevuvhgxvvVfggwxwvwwggwwwvfwwwvgwgwvwggwvgggxvvfgfvvwvvfgvwwfwxxgvvvgvxgfgffvwgwwvvgwvwfggwwvwfggvwgwvvvvfffvwfwvvvwwgwgwwvwgwxgffvwgwhwggwvggwvwvwwgwwwgxfwvwwggwgwwwwgxwxwhwfwvwwgwgxwwgwvwwwwxwwvwwwxwvggwgvwvwgwwwgwxxvwwfgvgwwwwwwxxvvwgwwwxxgwxwxgwfwwwfffgwwwgwwwvgwwxwxwfwwvwwxggvegwvgvggfWgvvgwwgffwxvfwgwvWWwwvvgvggwvwgwwwgvfwvewwgwvfwvfvwgefwwwvhgwvwvwxwfwgggggvgwwggWwhwwwwwwwwgwfgWwxwfvuvwwwwvgxgvwwwwwwhwvggwwgwfwvfwxwwwwwvvwffeVwwwwvgwwwwxgwxwgwxwwvhxwxwwWWgwgVvegwwwwgwvgwwfvvwwwwxwxxwwWwgfvxgwvVuxvwWwwgeUewwfwggewwgwfwwwvvvwgvxwwxwwwwvfvgewwvgwVVUgwxwfvxvvvuwffguxwgwgwfxwwgwfgeUwwwxwwxwwwwgffgwwgfwwwvfwwwvvvgwgewvwxvwwwwwvvwgwvwfVVUwwwwvwwwvvwffgvwvxwxwggfwxxwvwwwwwwwgvwvwwggvwgwgWggffVxxxwwwwwVxwwwgwgwvvffwwWgUvxwheewwwwvffgwffwvgffgvfwfgxfwwwVewwwxwvgffeeUfvgfgfxwwxwffefVxwwwwwggUfwwgVexwgwwwxwxwwxxxwwfvgfvfwwwgvxxgvghwwxxgxfwwxVewwwwwwwffvfgvvvgfxwwhwVefgfwxwwwxwgfwwxgvxxgvwwvwxgfvwhwwffVffuwwwwwvxwgwwxgvgfvxwwwwffwgwwwxwwwwgwffvhwwwffwwgfvwwwwffwwwwwxvxwwgfvwwffwxwwwwvwwwwwwwwwwwwxwwwxwvwwgxwwwwxwvwwwwwwxwxwwwxwwwwwwwwgwwwwwgwwwxwwwxvgwwxwwwwgwwvvfwwwwwxwwwwgwvwwwwwwvvxwwwwwwwwwhwwwwwwwwwwvxxvwwgwwgwwwwxwwwwwwwgvgwxwwgxvwvwgxwwxgwwvwghxvwwvvgwwgwwwwwwwhwwwxwwvwvxhxvwwvgwwwvwhhxwwwxhxxwxwvwwgwwxwwwwwhxxxwxwwhhxwvwgwwwwwxxwxgxxxwwwxxxwwxwhwwvwwwhwwwwwwxgwxwxxhwwwxwgwwwxxxwxhwwgwwxwgwwwwxwhwwwxwxwxfeeVvgwwhefvefvuVwgwwgfvwWfgvVfevgffvvwvfwwvwwvwwgwXffWgvfvwwwuVfgwwwggvvxwwgwwggfgvvwwfgwgwwwgwwwwwwgwxwgvfgwvvvwxwvWggwwgvwhgwwwxvwwwwgvffgfwuwwwgggWwwwffvvwvwwhgggwvwfxwwwfwwxWwxhfvvfxwwwewwwggwwguwwgggwwwwwwxwhfwwfwwwvvgVfWEtwwwfwwfvwwfwgffgvgvwwxwwvwgvgVxwgfwwggUDxwwfvwwgfUvfgwVwfxwwxwwwvvfvwgfvWvwwfUxwgwwwwwwwwxwwwgfxwwwwwvgfwfwffwxxxwwvfggvgVwwwfxwggvfwwgVuwwwfUwUgwfwfwxwxwwwwgwwwwwwwwwwwgwfggxfwwwvvgvgfvvxwgvwwwwfggwvwwwxfwvWfwwwWgUSvwvvWwfwwvfwfgvgvvwvfwgwVvvvvVedwxwfVwgwwvWFvwvUSWgggWwwwwvvVvvvxwvwgVvfuvwwgFvgwwvvwwvwxxwwgffwuwvfgVwxwwwwwwxwVfdgxfWwgvwvgFfgffuWwggWwwwvgFwwvvvxwwwxvvvfVggwfwwwwwwvwwxxvvgvggWfegggfgVggvxxxxxxwwggwwgeefUuwwvFfFuwgwfUwvvgguwfUVeVegffvVffvwVffVuhvwfxwxwgewUVVtgeefdffwwwgwVwwgwwgwgvwwgefvwwwfUwfvwgwwfxwwwwxwwffVugfwwwfxxwevwgwxwwwfgVuhwwfxwxgffffVeguvguwfwwxgwfgwWwwgwwvwfgVugvwggxwxgxwgVwwvgffffftwwvwvhwxxwwvwuxxWgwfVgwwweffwwfgvwvwgvwgWffvfeegggfwwvgvfuvxwwgwwwXeVfwfffgggfWvwvvwwwvwwwXgwwgevewwwfgvwwwwvvgwwwwwwwxhvfwfuwfggwwwwxwwwwxgvffvxwwgxwgeVUfewfwwwfgwwwwvgvwwwwwggfwwfxwwgwwwwxheUgwgfvffvwggwwwwwwwgxwwxxxxvffvwwwvxwfwwxgefvgWgwwgfwwgggfgwffugggwwgxwwwwvgvggggwgvfwvvvwvwghwfegggfVgwwwwwvxwgwwwwgfgfffgxwxxwwwxwxgfvffgvwwwwwwwwwvvWgwggwwxwgwwxwwwgfggvwwwwwfwvwwfwvwfwgfwgvvVgfwxwwwwxwvwxwxwxwxwwwgwwghwgwgwwhvgVvggufwgwwvwgfuvwvxgevvfwwwvwfgwvgvffWDuwgWffwhwgfgvvfgfwvvwwxwvWvffgUvwvwwfgwwVewwvfewwwwvWDuvvgvfvxWgvWvgwwwVevfgfwwvwwwwxvwxvwwwwwgwWvxwwfwfwwxfwvwwevwwuwwwgvvVfUvwvgvfgxwVewxwgUffvvwgfvvfvfvwwwuwgwwwwwwwfwvwwewfvvwvgwwWwwwgWvwxxwggwwgvwWvwwwwwfWfwhwghgWgvwwgWwgvwfUewwVUfgfWggvvvwwfVwwwfewwwwvgvvwwgwvfVwgfwwwfwvgwwffVVfUwfgwvVVewgwwgWwwwwvfvwfWfwVfgwwuwwggggwfggvwvwevwefgfggwffgfvffwggwgwwwvwggvgVwxwxwfvwwvfgVgfVxwwwgfVfwgwgfwwwwwfuwgwwxvewwvwfwfvwgwwfuwfuvxwewfffgfvwgvgewfvwvvvwvvfvvgggwWfdwwgUvvvvfvxwwgwfvwwfvwvvhxwwwuhgFwvfvxgfxxxwgfVuvvwfgfeuxwwvgwwwffdvggfvvvwgwvgxvwgxgwvvVwvuwhwwVwfvwwWwvfwxvhxvgwuhgFwwxgfhxwggfvwvvffvvfxgwwwguxxwvghfwVvvvxwwwffxhwwxxggwfvwggfVWwgwvhvgwwgwvwwwwwvwwffvwwwwwxwwwwwwwwwwgwwwwggwgwxwwwwwwwxwwgxvwwwxvwwffxwwwwxwwwvgxvwwwwwwwwgfvwwwfwwgwwwwxwwwxwxxwgffwwwwwwfffwwxwwwgwwgxwwxxwxxwwwwwwwwwxxwwxwwwwgwvffwwwvwgwxwgxwxwwwwwwwwwxwwwxwwwwwxxwwxwwwgfwwwwwwgggfvwwwwwwwwggwvevwwfwggwwvVfuvgwfwgwuwwgwgvUgvgUfwwgweffwgwwwxhuVwxwwwwweVffvwwffvgwwwwxfwgwfwwVffwgffvvwwwwvwwvgwwwwgffgwwwwwwxuVwfvvfggvwwwwwwhwwfwewgwwwhvwwwwvwgxxfffVvvwvfwwwwwhwwwwwvWvgvvvwwwxxwwhwvfvwwwwwwwxxwVegwfgggwwwwxwwgvgfevgvwfVwwgwvwfffWvvvUwffvggvwvfVwwggwWvxwfwwgwWwwewgwVvgfwwwwwwWwgwwwfgWwvvggwvfuwwgwvwffggxvfwwxwwwxwvwwffvggvvuwgvwwwwwfvgwggwgwVuwwgwwhggwgfwgwVvgvvxwwwggwwwwwgffgwwwwwwgvwvwvxxwwwxgxwxwwwgfvwvufvwwffvuwvwwwwwwxgvvvwwxwgGfgwgwwgdgevwwvVvwwuwgWwgffvfewudVfFuwwvuwvwwwfgwwwvwWvgFgffewwgfgvxwvWWvvwvuwxxgwvwefevwveVfwwvgvvgwwxwvwwwwwgWfuwvggfvfwxxgvuvwwxvwvwwwwfvwwwgwgWffvewxgvfvxwwfVuvwvvfxhwwwffwwwwwwwwwgvvwxhguwwwwwfTfwVggfwwwhwwxxwWgwxwhfWwvvfgfwfvwegVgvvehwvgfwvveVuvggwfvfwwxfvwgvffwvgfxVffvwhfvvgWwvfexwwvfwwwgwgvggvvufwvgfgwfexgwgvfvwvwxvwwxxwfwfuvggwwggvgfxwwwuxhwgwvfvggvggwvvfxxggfvwgfvwwggwffwgxwwwwwwwgxfvfwgfgwvwwxwwwvxxxwwwuggVuwvggwwvgwxWwgwxwwxwxgvwwffwwwxgvwgeeuxwvwwwwwgvgvvfwxwvwgvwgUUxwwgffwhwwhffxwvffefUVvwfwwwfxwwgwgvvxwxwvwwwwwvfxwwwwfffwwwwwwvwhwwvvwfVwvwwxwwgffvxwwwxwxwvvxvvwvwggxwwvwwWVfhxwgffvwgVefffVVwwxggwwwwwwfwgffxgwwgwgeewfwffvfvxvUvwufvxxwghwgDfwfgwwvevxxwxhwwwwffwvggwgwwwEVvwffgwwwwwwwwvwVwwwwwUwffvgwwvguwguwgvwwwwgvgWWvwwggxfwfewwfgwwwwWewwhvfwgfwxvgwgvFEffwwvwfhfuwgwvvwwWvWwwwwvwgvwwwwwwgwwgfwwggwwwvwwgewwhvwvfvwwvvwgvVFUwwwvwwvwwwwgvWvVwwwvwwhvewwxxfgeeWfuwwwfwfWevwwgVewwgvWfevvwxxwwwxwxwwwwwfUevwggWfewfwwvgwwfgfgvvwwgwvgfvvwwwffwwwwwwwwgwvvwwffffvgfWVfeevwwxfwvxvwfgfvgvwwwwwgfffvwxwwwfwwhfgvwwwwxwxwwwwwwwvwxvwwwffwvfxwfggUfeevfgvfVfevwwwgvvgwwvgwwxvvggwfgvwwvwgvwvwwggwwgwUefggfgfffvfvggfwwvwxwxwwvwwwvgwggfvvfffVVVvwwwwwxwwwgffwfwgfvgwvggwwwgwfvwwwgfwfwgvwwwgggggUveeVegfgvvwhgvwwfwwUewwffwUfgvfggwvvwxwwggvwwwvgggxxwwwwxwwwwwgxvwwgwvwwvwwwfvwgvwgfvvvfwwfVVffVgffVWvgwgvwgfwvwwwwvwgwggguVwvwfwuWwwwhgwvwwhfgvwwwffffgffwwwwvwwxxfvwwwggwwvvffvfffgfgfvvwxwwwwwxwfgfgwwwgfwwwvwwxxvwgwwwwwxwwwwwwhvwvvfvfgggvvvgwgwvvwwxwggffwwwggvvwwvwgwwwhwwwxxxwffgwwwwwwwxxxvxgwvwwwxffggvvwgfvwwwwwwwwwwvwwxxwwxxwwwfffggvwwwwwwwxxxxfgWwffwwwVeuwwffgfvwxvfxwwwxwwwwwwwwgVevwgfvgevwfwxxwwwwfffffffwwwwggvwwwghgfxxwggwwwfgfuggfgfuvfwwgffgfexwwwwfvvwfffUVUwwwwgwfwwvwwwwwxvfgffxwwxwwvfgvgxwwwwwwxvgvfxxxwvVwwvfffeUfwwwvgvffwfhwwwgfvxwxgwwVwwgfffffgVvwwggwwwgwwfFugfvwwvvffegvffwvgwxwvwwwwwggwwwwgffwwevggffTfuwfwwwffgwvxwfwvwwgwvwVvggxwwVvxgvhwwwxVwwwvgVdfUwWgVufwvgUvwvVdggfwwggwwwwfwwwwwwvgwgwvwwvxwwggevvxwwwwwwgwvxxgwwxguwvxwwfwwvffEgfgghgVvugvuvfVfugvwwwuWwuvvwwwEgUwwxwwgwwwfwwwwwwwvfvwffwVVvhwwvgwgfUfwwffwxxxwwwwwwwwWVvwxwvfwfUVvfwwggvfggwgfwwgwvgwfwgvwwwwxxxvxxxwwwwwwggvxgfUwffffwwwwffwgvwvwgxwwxvwfvfwwwwwgwvxxxvvxwwwgwxwwwwwwxwwxwwxwxwwwWVvgfffvwwxwvgwfUfwwwxwwgvwvwfgwwwvgwfwxwfwxxwwgvvfwwwwwggfVgfWwvfwvffVffvuvgwggwwwwvvwwggwwuefuffGEdgwuwgggvfvvwgwwgffgwvwgfvuwwvwwwwggfwwvfwwvggwggwvwvvfufvfgffwvgggvvfvfveWfVvwxvwgWvvwfuvwggvufwffggfgwwwwgfvfvvwVgwggggwvwggwwwhvVWffvfvvgvwGEtwwuwggfVvuwwgwfvvfVwwfvgwxvgwwvvvWwwgwwwwwwxvfgwwwuwwfvgwfwxwwfdwvVFgwwfwgwxgvvwvfhwgwfwwgxfTwwvFUvgwggwggvvwexgWvvugwgfWwwwwgvwgxwwvxvxgwwgUxfwgvgvggfwwwwfgwgVwwwwwwvwggghwwgxwVxwfwvwfwwvwgwvwfxfwwwgxwxwwwwgFuwgeTvgvwgwwvggfwgggxWwxfewfvvvwwfvwxwwwwxxwwwwwwxwgwwfggwvwvfuwgvwfffvvvgwwgwgwwxxwwxfwwwffvwffgffUfvvvwwwwwVewgwwwwfwwwgfvvwvwwwxwfwwgvgvwffxwfffwwwvfwwwwwwwwgWugfwgwwfwwwwwfwvwwwxwgwvwwvwfwwwwwwwwgvxwwwxhUvvxwwwwwggvfeggwwwwwwwgUfwvwvwwwwwwwwxwgfwgvvwwwggvwxwxxwxvWgxxxxvwwffweUfuewwfvwggUwWevxwwwwwggwwwwwwguvevgVvfwwUVUfWfwwwfgwvwggffvfexwwwwwgfwgwvffxwgvxfvwvwvvgfvWVfgVueewffgfwVUgfwgfvfvVVwwxwvggwgfxgfwgvxgwgfvwvgvfgfwwwwwvggxvvgvgfxwxxwwwwwgvfUxwgfVfUuffwfVfewwefVgfvggwgfwfeUxwwgwwwwwvvvvVvxwwwvgwwvwwwggvuggwgfgwfwwgvwvwwwxwwxwvxwvggegwvwfvfvvvuvfwwgexxwwgwvwvwvxwvgwxxwxwwwgggwvwgfvgxWwwvvgvwvwvxghwwwfvwwvwwvxwxwwhwwxxwwgfxxwwgxwxwugvwgfhwggwWwvwwvvxwwvwvwgwwwhhggWwwvxhxxwgwhxhwwxwwwwvvvffffufVuvfwfwgwwwwfwxwwwgwwwxwggVugfvwffUwfWwfUwwwgwgvffwfxwgfxwwxwxwwwwwwwwwwwwwwwxwwfwgfwwwwUxwgwgfgfgfvwvwgfgVwwwwgwfwwgxxxwvwwwwxwwwfwwxwwwffxwwwwwfwwwwwfxwwxwvffwgvgwwvvvfxwxwgwfxwhxxggwgwwvgfvgvwwwwwwwwgvwgwwwwxwwxwvwwguvfVffvfgufgwfwwwwvwwwwwfwvwfwwwxWffvefffwvwwwgfVggvwwwwfVefwvwwxwwwwwxvwwvwwvwwvwwwxxVwwfvwfwwgwwvgfUfvvvvgwgffvgvwvwwwwwwvxgwwgvvfwgwwwwwvgwwwwxgwgwgwwvwxwXfUvwfgvwwwffvvvwwvfwwvxwxfffvvwwwwwwgwwxwwfwwwwgwxwhxwxwxffvvwfwVUxwvfgfvgfwvfwggwwvvwgwwvgeewgwvfwggfgwffggvfvvfwvwwwwgwvgwgwwfwvvvvxwgvxwwvfxffgwfgxwgwvwfwggwwvffvffUewwwwxwgvvggwggwwggwxxwgfwfggwvggwgwvvwwwhxwggwwwgwwwwfgfvgfVevxwwxwwwwwwgwvgwwwwwwwfvvggwfvgfffwwwwwwwwwgvwvgvVWwgWgwwWcUuvwgfVvvwgwfWgWvfvfvwvvgwgwwgcUUwwwfVtwwggFWfGeeffgwwwguwfxgfvfwvwwhhwguffwwfWwwwfegfwvfvwggWgfUgwUfWwwxffgfvtxwgvevegWwwwwVwgWgfgwgxwwgwwwgwwhgwgTSfvUVWwgwwwwwgfvxwffdwffheeVwffggwwxwwgWvwgWwxvgwveWvfuefvvgfwvfvwgfvwwwgvwwvgwwwwxueWvugwwvgwxgWfdwgffvwwgvfvxggwwxxwwfxwwwvvfgwwwgwwwvxxxefWvwvfwwwfwwxffUvWVVvwgwwwfwwfwvxwwwwgwvwwvgwwwwwxgwvwgwwwgwvwvxxxwwxxxxxGfevwWVuvwfwwgfxxhwwwxwwfxuWgVvwwvgvwvwwvwgwwwwwwvwgffwvVwhgvhgfwwWUffuwwfVwwxwvxwxgvgvgfgfggfwggUffuvwvvwfvwfwwwfvgvwfvgfufwwvwgxxwxwwwxVwvfvgwvwvfvWgVvvevvfwwgvghvwfgVfvefVwwufeUewvxxwwvewwgwffxxxvwxwxxgwvwwwwwvwxwfggeggfggVfvfvVwgvgfeuvwxwgvwxvwvwxvfWfggwvwgvfWfwwgWfvvfVgvfwvwfVdxwwggfVfgVffffgwvgvgwfwgwvgwggwggwVWfffgWffVfExwvwwuwwwgwggfvffgWvvwvfevgfguhwwwwwgvVwggvwfFvwfgfdVewgWwwwwwgdvvfwgvwwwgwFefgfwguwwwxwwvgwwfvfggVwxwwvwxwwwwgwhwgwfwwuvgwgvwwwgfffdgegwgWvffffFVfuwVwwfwgvfwgvFvwvffwfvwvwwfeFfwfwvwwwfgweUvwffuffffffvvgwwwwwxwwwxvgfvwxwwgvVffefFDtvgwvwwffffwxwgffUvvvgfvwvwvgwwguUwwwwwffwwwfwwuwWWuwwweUffvwvwgfvggfgWvgfvwWffefvwfwwvgwvwgvWfvgfVfuwwwwwwwgvxffvUwvewfwwwwWwuufwwweVwxwefffvwvGDtvgWffuwwgvWuwWwwwwwxwuWVegwvwgwvggwvxwwwxxwffgfevwwgvwfUfVVwwwwwwwxwwwwxwwgvvWvwfUfVFhwgwxgvwvvxwwvgwWwfwgggwgxwwgwvxvgxwwvwwgvwWvfFvwewegfWgxfxwgwwwvwfveggVwvwwgwwgwwwwwgvwwfgwgxwwxwwwxvgxgwwwwxwxhwgwvwwgvwvuwwfUfVVwegwggfWwvwwWvwvwwwwvwvgvvvvvvvgwwwxwggvvvggfffggwwdfuegvfwwwwfvhwvxgwvvwgwwvxgvwwdfveffgwwwgwwwgvwwxwxeffWwwWVvwwvwxhfwfggwwgwvvgwfwwgfwvvgvffwwvvVvfWfvwvxgwfFufwvffVufwwwwxgvgvwwvwgvwwwwvwhwwgvwxwvgwgwwwggwvwvxwWvfgfgvgwwweFuvwvffVvwvvwwwxggvgvwhwvfvwfwwwhfewwwwwwwwwwxwhhxwVgwvwgdfvwxffwwxghgfwwwwwxwwwxwvwwdVueVwwwXwfhwwxWfwffwgwvgwgwwxwhgwvxxvfwwfwwuugWeVVwwfewwwWgfwwfwwWgfVefVVwvwwwfeVwwxhvfvffwwwhxxwhxvfvwwwwwhwwWfuxwvwWwvEDfVVffwwwfeVwxgUvwvvwxgwxgVuwvvvfvwwgwwxwwwwWgggVfwfeweUuVfWvvvvwwgvxwvwwvwgggwwwVEDvvegVVVuvvvWVugfUegggwffgwvvfVvwfgvvxgxgfvhfewfvgfvfvwvfgfegfwgwfvwvgffwvfeggfgfvgwvvvVffuuvwxwvfewwuffVUvvwwWwgffugxgggvgWUvvvvvvfgfgVffeEDfVWgVvgvvgVvvfvvvvxwffgvggwfewgxgggwwuwggwxwvfgggwwhggwvvVvfwfWgfgWwfffwwwwWwwwvguhhxwgfxwgvgwvgVwwfUwgwgwwvgfUvwgwvvexwwvfxxwwgwxvfwvvvwwwxhwvwvwxxgugvwwgvfgfwwwfwfuVgfwwgwfgvwxwfUwwwwwwxwvwwwgwwgvxwwgxvwwgwgwvwvwxxwwwxgwfuggUvwvgwfwwxxhfUwwwgvgxwugwfvwwgVuwwgfgWwwwwxwfwvwwgwwgfvgffFgfgfUgffVevffwgfvhffwffhfvwwwGgffgU3wffVuvgffffffvfwwwgfffvffvgwwwfgvwwgfvxwfxffvwwWugvfgffvgfgfvgwwvgVuwwfUggfgfvgwwvWufffgvtwvwffffUxgffwwvggvffffxwwxgffvvwwwwffffvV5sfffUgfffVegfgvdfvwgwwvgvffffgwfwfwwfvfwwffxwgxwgwfwfgffwvhgxwgwvffggvvfvwvgeeDTTwwwgxvwwwwwwwxwwwgfwvvfffvwwwhvgfgwwwwwvgvwvgwvUUffwwwfgwwwwwvvgffeefhgvvvgvwfvfgffxwwwwgffffvwwgfeefeefffDTTeVwxxwwwwwwwwhwxxwgfgwwwvwxwwwwwwwwgwwwwwwwfwwwwvgvvwwxfvvwwwwhvgfgwxwwgfffvvwwwwwvfwwgfgvwgffwwwwvwgvvwwgwfWgfvwU44xxwgxxwwwwwwwwwxvvvVVxvwwwhvvvxwwxgfVwwgffvVVwfvgvvwwvwvWggvwfFUwwfwwgwffwfgwvgvvgwwfTfgfuwgggvwU44ugggfwvwhxhvwggxwwgwwvxwvgggwwvggwVVwvwwwwhwvvxwxxxxvVVwwxwwgwwwvvwxvvwgeuggwwffuwwwgeegfggggvwwwvfgwwwgWfuffffveewwwxwhwwgwwwxwwvhwvxwwfgffvvfwgvhwvwvgggffvevfggfffvwgwwwggvgwvWfuwgfweuewxvwggvffwxgvfweWwwwvgWgweVwwvffffeufwwwffxxwxxwwwwvwwwwwwwxwxwgwwewewwwwwvwgwwwxwwwwgwwxwvvwffvvfwwwggwvwgggwwwwgwwxvwvfgVvwwwvgwwvvwwwwwvwWguwvfgeVwgfwVDEtxwvxwwwxwwwwxvwvgxxfwvfgvwgwwwgwvxwgwfffuxwfgvfgvgwxwvwfwvghgvwfVfuvgwvgwwuwwVgvgggvwguWggvgUDEtwwfgfVveUxwwwvwwwxxxxxwwwxwwwgwwfgvwxwwxwwxwwxwvfgvxgwvfgvgwwwwgvvxwxwvgwwwggvVwvfwegvfwfwvwgvvggvfffWffWfueVffguwxvwwgxxggwvwwwwwvvwwxgggvffffwwwfvVgvfxwgxgeVvwvvvffwvgwwwgwwwfWgeVguvVwwuwwwwgffffffwffvfeVWgevgVfgeVfgvvffffufwvvgwwxfxwfwfwxwwuWwgfwgxwufvxwvvwwwwwwwwhwwvxwxwxgfwxwvvfffvfwwwxWgeggggwfgvwwhwfggvggwvggwvwfgwvefvuxvgeC4ffVfufggwvxvggvggvvwggwwxwwfeVwWfuwxwWfwwwwUeUfUWvfvwwxwgxwwwwwvxwwgeVfwFUtgwgwwwfeVgwffvggwVfvwwffgvwEUTfeVffwvfggfwvfwwxxwggwvwwvwwxvgxxwgvVfugwgvxhgwwgfxwwxwxwwVfegwfwxxxgwwwhwxeVgvwxxgwwweVvvgeefgvwwwwhvfefwvfffVVfgVfUTffFeUvwvfwxvggwwwevwvggWVvxwwfdvGffvffwgVVvffwfdwxFfVveWwfVfVwvffvfgVfugwwfUwvVeewggfhvgvffwgfgwvVVUdfVEVeffvwfvvgfVUUgvfffwxwvwxwwfwwvgvgwwgwvvwvgwfgvfwwwwuwwwfgetwfFfvwwwxwwvgfUgxwwwfgfewgWwVfuWvfWfvgvxwfvuwwgvfvuwwwgggwuggwffffffgFUdwfVgfwwwUxwxwwgvwwwvwwveVvvgfgewvWgWVvvvgvgvwggvxwfxggvfwwgxvgwwwwfeVwwwVfewegwwvffwwgwwgwvwwgVfevfvffvfWfuwvvgGUdfgfWgwvwwvgwWgwvhwguwggwwwwwwwwwwwwwvwgwxxxwwgwfvgeVgwwgwwWggwvgwwxwwWvfewwvwvggvwwvwwwwgwvwwwxwwwwwwxwxwwwwvVvggfgfvvfgwfvfwxwwwwxxwwwwvwwhwvvfvvgugvvfwgfgggwvvgwVfegxwwfwwxwxwgwggvgfvwgwwfvfwwfuggvwgwfwffvffwwgfeVffffvffvgwggvfwvgffwwwwwwwvwwwgwwgfgxgwvwwwwwwwxwwwgwxwvfWvwvfwfgvgwxwvwgwgxwgwvveVfvxwgWvwxwvgwvwwwgwgxwwwwwwhwfggfgfVvgfhwfvVEDuxwvxxgxwwggwwfWxgxxxwgfvgvwgwgffexwwwgfwgwwgfvfvwhwfvgwwfwwvvfVeuwwWwgfwwwwggwuvvwfffUDTvgvwfvwfVeuffffwvxwxwwwhwwwxwxwwfgxxwgfvxvwwvxwvgxwwxwwffwwgxwwwxfwwxhwfexwwwgwffgVxxwffwgwVwfhfxfvvfggvvvgffeuwwW44wgvvvxggwwwgxvfwgffwfvwgfvwwVVxxwwwwwgfffggggwVVwwvUUfUfwwvvwwvggVTtwwgVVwwgwfgwffwxffwwwwwggfeeuwvgfvffxwwwUVvffwwwwwxxvvxwwgwwwwfggvffvgvwwgxgwgvvwwvxwxxwgeuwwwgfwwvfggeuwwggeeWevxwwwwwwwfxggvvwwwwwgwfffffgggfggvwWTdgfhwvxwwvwxxwwxxwgwgVVwwgvfggwvwvxhgvwvfvgfvxgwwwwxwwwwwxgwwggvgvVVwgeegvggggvgfvvfvvwgvvfvwxEEvfvfeevvwggeewgwwfvwvxwgggwvvvxxgwwwwwvxhxwwwgeuwxggxwxvvwhgvfgwwxggfwggwgvwgwwwvxwwgwwvwwvxhwwxxxxwwggvvwffVEdwffvfwgwffwggwwwwwgwwwwxwwwfvwwwfUwwwfwvfevgvgvwwwwfwwxwgvfwwwxwwxwvwwwfgVewfvfUwwgvfgggfwgvwUwwxvgvUDggfVuvguwewwwfffUgwfgwfwgwxgvxwfggxwxwwwwfwwwgwwwxxwwwxwxxwwfwwwfwwwfUxwwwfxwfwwvgvgwwgvgwwwwwxhgwwwwhwwxxgvfvffvwVVeVVVVffffvwgwwwwwgwhwwwwxxgfwwfvgvwvvwxgfwewwwVwwfvvwvhwwfvxwwwwwfwwffwgfwgevfwvwfgfggwwgvwvwwgWeffefeVwffeeefvwfWfvfwvwwvwvxwwxwwxwwvvwwvgvgvwvxwwwuwxxxhwvvwwgwwvwwgwvwvxxvxwhvgfWwwwwfxvwvwwgfwwgwvwxwxxwxwwfgffvfguegvvgfgwvfgxwwxwwvwwxxwwwgvgfvfxwwwggvVwwwgvwxwvfffwvWwxwwwwwwgwwwwggvggvwhvfvgegfvhguggwgwffgvfvwgfvgwevfvVfvfggwvwffhvxxwwvwxwxwxvgxggwwwwhggwvwxxwgfgwwwxwvfwgwffwwxwwgfvggvwwwxwwwvwwwwhwvgffwxgwvgfwvVeffUfgVffgVufvfvxfvvfxgwxwwvvwfgfUwwUwhwVvfwfvVefffUgfgwgwgvvwvfvvwvfwvgwwwxvvffvwwgfffvgvfggUggvwgggvvfvvVffffUgfVvfwwwwffvffvwvwwwvggwwvxxwwwvgffgwgwxwwwvxgfvwwwwxxwVuwwfVfvVhwwwwwwwwxwwwwfwwWfffvfwwVwvwwgxgwgxwwwwxxWwfVfwwfdFDbgvvfFwgwgfvwwWvwwwXwuwwwWwuwgfftwwwvfwgwvfvdFggffdGfvufwwvfwgwvwxvgwwwwfgfTwwwU5wwwwwfffvxxwvfwxwdeUVfdgfgfeffwxwvfwffwwwxwgxwwwwwWxwwwwugggvwvgxuWxxxwwWwuwwwwwwwffdgfWguwwxwgwwfxWftgWgefeGfvgwvfvxwghwggvgxxgVfwVfggVdTEuvVgfegvfgfgwgwvgvvwfwwvxxgfvgwgvwvwxXvvfUffgeefgguxwwwggwgwwgwwhwwxgegVvwggfvgvgwVfvevgvwfvwwwFVVUfUeVgffgftwvgvwgwvwwwwwwwgvxxwwwvhwwvwwwfvvwgwwxwhxxvvwwxxwhwwfwfgfwvggfvxxwwwwwwgfwwgfUvfeefffwwwvvwwwgwvgxxwwfwxwgwwgwgfwwfvvfWffUVffVgwwwxwwgwxwwvwwwxwfVWfwwfwfgffwwwwfwgvwwwwugfVgwvevgfVVVwgwwggwwwvwwwfggffffwwwwvwvgVfvweewwgwgfvwfffgwvvffVVfVVffggUwwwgvwwwwwwvwfwxwwwwgwwwwwwwwfgvwwfwgwwgwfvwvwgggwwgvwwwfgwggwwxvwwwwwgvfwwfvwvvvgvgfwvgfeuwwgvvvwwfWfefggfeVggffffggwwxgWwxwvwwvwwggfgwwufVevggvvwwwggfxvvevVufwggffwwfgggvfvwfwwwffffvfvfhgweWvfwvVuffgUVfuwgwgfwwffVevffUfffwffgvvwwhwwxwxvwwgxwwwgwwxwfvfwexggvvwfhwgwxwgxwffwfwwwgvwwwfuwgfVVvwggxgwwgwvwwgfwfVvgvveewwvgffxwwxwwfgffgWveefeUegffUVedvwwgwgvwwwvvgwgwvvwwwgUvwgfUWwuwVewwfveVvgVfffvefUWfegvfgwwwgWwwwfeeggfFfvTvvgvwfuwgfVwffgVfwvwfuWVffgUEeeTfWwfefeUVfvwwxhwgwgvxwwwwfhfwwwvgvwvwgwvfwfvhwgggxwvvxwvwWeUuefwgwwvfeVvwxwfffgfvwxxwgffvgffgffgfvvwggvwwfvgwgvvufvWvfffUvwG4cvwvwwgxvfhwfwgvgvgwvwwwgfUwgfVwwfwvweUxwwvgfVvvwfVwwgVvuwwwvvfxwwgUDwgfVuwgvgwfffUuggfuvwvugvvUUwwggVeVuwfeVewwfVfuwwxhwwwfvwgfxxfgvfwvwfffffgvgwwwfgvwvwwwwwfwwhfVfwfVuwwgvvwhwwfUwwgwwxxgfgxwffwwwfeWgwvwgwgwwwwwfwffVuevfVUswggVgefwxwfwwwwwxwwwwvwgwguwwfFwvggwggwwxgwfvVwfwgxwwvfxwwwggwwWgeTfffFwufvvvvwwfwWvfwvffVFwwfftgVfU5ggwvegVgefwvuxfwgfwvewgWwwwxxxxwgfgwvgwwwxwgxwwgVxwvugwvwWwgvfFxwxvxvwgvvhwgwvxxgwgwugwvggwwgwwwwffvwwUevfwvgDEEevVffgfwvwwgwffgwwwwwxxxwfuwuwffvwwxvgvwwvggvdvWUfWeVwvwwwgxwwwvvwVwvWVfUvwfffgvfgvgeffffffuggVeeuwwwgwgfdUTVdfVVfugfvfgwwwwwfgvgwwwvxxwgwuxwwfwwvwvgfvwwxwgxwwxfgfxwggvfvwfgvVwgfuwwxgwwgwwffwfvvwxwwvgxfUvUfwvgwwguwwwxxwhwvfwvVvffegWuvgfUffVwwgxxvwwgwvgvvgugWefwwfwvWgwVwgvguffvgwegwfwfgvffvVwfwxwgvgwgwgvvwfffffwwWvvwvwwvffvffgUgggVegfegvwfgggffffggfgffwhvwwwwxgxxgxwwwgwwgxgwwgwwwwfvfxvwgUwwwgvwwwghggwwxwwwvgxvwwwfugvugvwwfffvgvxvwgwwwvwfggvvwggfUfwfWVffdUfeegUEdfvvfVwvxVwvwfwWfwfwvwxweVfvwgfffwwxgWVvWeVfgwwwfgegwgWgffVfuwwwgfgwgUVfvvgffugvwvveVgvwwegfvvvvWfvFeUVVwvvfVuwwffWVufVvvgvgvVwgfwWwwvwxxgvwevgggwvwfwvgwxxwwvfgwwwgwwVgfVfwvwvgewWWwgfgwvvvgfvVfwwuvfUwvfvvvxxvgwvghwwxwfeVwvwfwgfwwfGfVuugucUffwU5gfUgxwwwgwwvgwwvvwwffuwffxwWvfwwwwvhxgfwdVfwgvggvvdehvgWwwvwwgtVfggffwfVutevvfVggffwww6VUvwWetgVFffVUwwwfEwffgwVxwvwvwvvgwfwxwwwwwwwxwvgvggwwggwwufxvggVwgfvgwgwgwfwwwvgfvvwfwxwwwgeugvwwwwgGVfWvfgwwvwxWgwgvwffvwgwvwwxgvwwggfvgvxxwwxxwwwxwwwwwxwwxxxxwwwwxxwxwwwwwwwwgfwwgwxwwwgvxwgvfvgvwxwwwwwwgwwwwffggfwwwwwwwwggwwgvwwgfxxxwxxwxxxxwwwxwxwwwwwxwwwwwfxxxwxwwxwwwwwwxwwggwwwwxwwwwwvvwwgwefvgvfggWevwwwDUvwvgwwfwgxggvgeffwffwxxwgwxffvwwwgwwwgwwxfwwwxxfgufwwwwwwgeffgWefwfgUUvwffwgxgwfgeffwfgvwgwfvvwgwwwgvwxvgwfwufggxwxwxwgxgffwwvwwxgwwwxwwgewwwvvwvwfvgwwwxgvxxxxgvfwffvwwgvxwwgvggvwhwWffwxhwwfvwvffvvWevxwwWWfgvWgVfgfgvwxvfwwgvfwwwwfwxxwgwwxwxwxwwXevwgwwwxxgxwvwvVevwwwVVfgwVgWfwvwfwwfvgvgwwwwwvvvwxewewgfvfvwwvgvVfgfggwxxwgfwxwvwvwwwwwxfwWefwgwxwwxgwhvxwwxwwwwwvgwxwxwhwwwwwwxfgxvxwxfwwvvgwwwwxwxxgvffgwvvvWVfffvffvvfwggvfvwxwgggwffwwwwwghfwwwwvvvvgwwvvwwggwwxwvwvvgwwvvwwwgwwwwvvvgfgfWVveefffvghhgwvgvvvwwwwwveegwvxwvxwffwwfvwffgwfxwwwwghwwvgvwffvgvvvvwwfwwwwxwfvwwgwwfvgwvwwwwwwwwhfwgwwwwxwxvwxwhwwxgwwxxwxwwxhgwfwwwxxwwwwxueUeffVfgfvweUfefWefvvwwfwwwwxfvwgvWwvwxwxwfwfwgvwwxvwwwxvwwxvwgfwwwgvwwxxwwwhffvffvwVeVVfefvgfguvwvwwVfgwvwwWfwffgvwwwwUefvfvvgfvgwwwwwwwgvxwfwwwgvwwwwvwwvwwwwfwgvwgwWgwwxwwwxwggvwwgwhgwwwxwxwwhwwvwwwvwwwxxfvwvwwwwwxwwwxxhggvgfwffvwwgVeuvgffwfwgwwwxwggwwwwwwwwxxwgfvxwwwwwgwwwxxxxxxgvgvwvvvxwwxwwwwgvffvgwfVVuwwffwfwvggggfvggwwgfvwffwwwwgvwffvgvvgwwwfwwvwwwwggfwxwwwwwgvgwwxwgwwwggvgxxwxwwwwwvvxggwwgfvwgwfgwwxhwvgwvfgwwxvvVVfgfgggffgwvfggfvfwVvfVgwffgvfwwWVvfwvuevwvvgVwgwuvgfgwwvggwgwgwwvfwvWwvwwevwgWggggffvgffffWVfvwveevgwvgwggvwwwgfvvvvfgwfwwxwwwwgWgwwuvwwwvvggfuhgggvgwffwwwvvfvvwwwxvvxfggvwwwwwgxhgwvvvfwvwwVwwuvxwgwwwwxgwvfgwgvvwxgvgxwxwxxxxwwxwwwwxwwxeuvgwwfffgvfWwvffwwvugvvgvWwfhwvvWwwwwghwwxwgwwvwvwgfvxwgxwfwxwvwwwxwxxwwwfffgffgwuvfwwvugwgwwxwwwgwwwwvwggwfwvgwwvwvvgvgwvwvvgxgwgwxwgxwvwvwfgfvwwwxwgxwvwwxwwxwxgwxfxxwvxgwvwfxxwwwwwwxxghwxwxeEVffwWwWeeVudfWffwwgwgffwgwvgefvfvfwwxxwwwwwwwgwwxhgwvggwwwvvgwgwggxgwwgxwhggwVfeeeffVVugwgwwvuggvgwwwwfwXffvufvvvwxVgvwwwwwwwfwwwwxhfvwwwwwwwwwxWffwvgvwwvwwgvwwggwxwggwwxxgwwwwwwwwwxwwxwwxwxxwwvfvwvvvvwwwxwwwwvxwwxwwxvwwwwffggfwwwxgfvvvfgwwwwwvvwxvvwwwxxxwxwwwwxwgfvwwwwwxwwxwwwwwwwwwffggfwwwgfggvfgwwwxwwwwwwwxwwfwwwwwwwwxwfxvggwwxwwvggxxwwwxwxwwxxgfvwwwwxwxxxwwwwwwwwwwxwxxwwwxxxwwxwxwwwwwwxwwxfVeeVWfvwFFewgwdTffvwwgfgvggfwggwfwwuvwwgffwvwfvwwgwwhvvgfwVgfgvvvwvwwwgvfvfwwwXfwffVVegggeefeuwwwvfgfwwfgfvwfvgwvgfggfwwfvfwwwwfgffwvwwwxgfgwwfwwgvwwwwwfvgwwfwwgwvwwwgwvvwwwwgwhwwggwwwvxwgvwxwwxwwwwwwghfwgwwwfgvhvwwwxhwwgwxwvwwwwwxxwfwffvwggfgeugeefgffvvffwgfvgfvwvwwwwwwwggvwfvwggfgvvvgfwfwfvvgwwgwwwwvwwwwwwwwgwggvgffffvVVggvwfgwvfvggwwwwwvffgwfffvgwVVwwwvfwxwvwwwwgwvvwwgfggwwvwwgwwwvvwwggggwwvggwwwwvxwwwwwwwwwwwwwgfhxvxwwwwvvvggwwxwxwwwwwxwwxfveffffgWWfuWVevggUvwwgvwwgggvwvvwwwgvxfgwwvvwxwfwwwxffwwfvwwwwgwgvvwvwxvwwwgvvgfVfUgffvggfvwwgffvwwfwgwvvwvguVgwvffgwwvgwgvwvggvwvwwggwwwwwwwfwvggwgvvgwwwwwwwwwwwgxwwwxvfwwwwwxwxgwvvwxxwwwwwgfwwwwwwwxwwxwgxgwgwwxwwxgWTffVvvvgeVeUfffVVgwwvwffwgufgfvfvvgwgxgwwgxwgwgwwwwufwgwvwfwggfwwgvwwgwvwwxwvwWUgfUgfdeVwgwvwgwwwfwvvWwxvvefWgvuwwgggffwwwwwggwgxwwwwwwwwvwwwgwxvwgggwwhxwvgwgwgwwgvwwwwxwwwwwxwwgxwwwwwxwwgvvwgwwwvxwxwxwwvfwxwxxxuuefffgGfvgdwwffvwwwwwuhxVvghhWvwwvwwwxfwvfffvwwwwwxhfwhFfffdwwfwvwwwwgufwvwwwgwwXvwWvgwwwwwvwwwwwwwwwwwhgwwvwwxwxffvwwfwvgvwwhXwwWwwwwxwXfffxwwwfwwwxwhuggfegfffVUuwfwfUwgwffuwffffuwgwwfwffvffvxxwwxwwvwgwVwwvwfggwwwwvgxwwwwwwxwfwvfgWEtwwwfUwgwggfffuwfwwfggfwgvfgvgfgvuwvwwggwwwwgghwvgfwwwxwgwwfwwfgvgvwwxwxwwwxwgwwwwwwgvwgvgvffxxxxxxwwwgvwvffugvgvfwwvgxwwxxxggwwggwvfwwwwwvwwwwggwwggwgvwwfwwwxxvgwxxwwwwhwvgwgwwwwwwxwxxwwwhgwxvvwwwxwgvwwwwggfvxvfvwxgwwgffwwwwwwwxxwwwwwxxwwvvwwgwxxggwgvwwwwgwxwwwwxxwhxgffwwwxxxxwwxwgvxwwwwwwxxxwXeeffUfvwTeffefffwvgwwgeewevvgwwwwxwwwxfvvgvwWwwwxeffwvwwwwwgwwwwwxxxxxxvfwwetggvwgwvgfwwwefggvvwwwxwxUfffggwwgVgwgwwwwvwxxwxxwwvvgWgwwwxfwfvwgvvwxhxwwwwxxxwxxxVgvvxhwwwxXwwxwxwwwwxuggfvgwwwwwwwwwwxxxwxxxwuvvfgWUeggwwfffgWUvvuwwufwxwvgwwwvgffwwvhwwgwugWewvvvwwgfhgwvghfwvwwwwfwvvhVguVewgfffvwgUuwewWWvwwwuVgffuUvwvwxWfwWwwgwfgvffVwwugwvvwXgwgxwvwwVuwfvwhwwxwvwwfvwggfwwfhwvfwhVwxwxhfwwxWvgeUvwwgwwxxwwwggxwvxwfgfwwvgwxwwhggVVvugggvfffffgfVVvwfgeWfwwwgfvvffVVvvvgxvvvevvgfggwwwwwwwvvwgfgfvxvvgggvfwwwhwvfggwvvfvvgffffvvvWwwvvvggVfgwwwwxwwvvuvgvffwwwwwfgfwvwguwwWwevwvvgVgwwguvgwwwuwwggggvwvvvvgvwvwfugwwWvwvvwwgggwwxgfgwvwwwwwxvwwxwxvvxxwwwwwhvfwgwwwxwhggwwxvfefvffvwfgwfffUeffvwwwfwwwwwwvggvfgvgxwwwwvwwvwfgxwwwwgvgwwwvvwwwwgwvwwgwwwhfvvvggwUVeuefUvwwwvgwvfwvffgwwvgvvggwfgvxvuegvwwvgfvwggwwwxwwxvggvwfwwwwvwxwvwvvffvgwgwfvwwwwwwwxwwwwxwvfwvhxgwwwwwxwwwvwvwwwwwwxfvwwwwgwwwwxvgfgvfggfUvgwveVvwwgWvvVfxwfwxwwgvfwwgwxvgvxwwvwwvgwgxxxwxwfUgwgwxxxvwxfgxfUwgveVwwwfWfvVwwgvwfvwfwgwwwgvfwxggffgevvwfwgwwVvwVgvgwxwwgwwxwgwwxwxwwfUgwwwxwwwwvwwwxxwxwxwwvwgwwxwwgwwwxwgvvxwwwxxhgvwwvvwwxxxxUVfffgvwgfgwewwtvgfwwwWVvgvwuwwvgwwwxWgwwvvvwxhvwhwwxxfvwwwxhgwxwxwxhUvwfewfTffeffwfwwgvxxewvvvvwwxwXuggggwgwxefvgwwwwwfhwwwxgVwwfwwvgwxwXvwwwvxffvwwxwwwwwwxxhuwgxxwwufwwxxxwwxxxWgwwxwwwwwffwvwwxwwwxwgggwwVfwwvvwgefvxgvwwhxxxvwwwwwwheggxvwgwwxgxwfvwwwwwwwwVfwwvwheffwwgvwwuvwWfUfwwffxxVggwwgvwWvvVewhwfwwxwwwwxvguvfwgxgwxwxgwwgfwwwwwwWwwxwXwwVewwvwwwwwxvwwxwxxgwwxwwwwxVfeVfVgfwVfefvveUVVvwwgfwgvgwgfwvvgfWwwwwvfwvwfvgwwwwwwvwgwwvvwwwvgfwwwxgvwvwvwxWWvgvFVdwwvdEffvwwgffggwwggvgvgfgvfgvfffwggwgwwwvvgfgvwwwwxgfwfvwvgvwwwfvggwfvfggfvgwgwwwgWvvfwwhwgfwvwwwwwwwxwwwwwwvhfwfwwgwvfghgwwwwwvwwxgwwwwwxWGGVeefwgecUVfgWggffgggGGwwvwwuwgwwffwwwuuwGfvWwwvfwwWwwwwWfuwwgwwwwwwggwxgvwwfevweegWvv6VeffvgvVvwgwwgwwwwxwdgfdfffvwfgfvwwxwffggwwxtuwWvgVwwfgxwwgwwwwggwxWwwwwxwweVwwwwvvwdfwtwwvvwwhwfwwwwwvvxwwxwuwwgwwwXfuwwwggxwvwwwwhfwweueVeffgffeVVeVvwffvfvwwvwfwwfgwgwxgwuwxwwwwwwfvxvgvwwwvwvwggWwwvwwgvgwwwwxwwxhfvfUVgfffUvwfVuwffegVvwwwwfwvwwWeVevfffwvwfwfgvwfvwvwwwwwwwwhwgwwfwgxxwvwwwwfxwvwwfvwwwwvxxwwwwxwgfxhggxwwwxwwxxxwxwgwwgfwvwwgxwwwwxwgxwwwwwwwxwwwgvUUxwwggfvfvvvUfVxwwxxwwwwwwxwwwwwvwffffffgwwwxwxwwgwvgfvwgvvwwwfwgwwwvfvwgwwwwgvffwwwgfvvgweegffffvvwhvwwhvvvffwgvwfwVfffvvfvxxwxwxwwwwvvwhhxwxxhwwxwggwwwwwwwvwwfwwwwwvwwgwwwwwgwgxgffffwwfwwwwwwwxwwwwwgwwvvwfvxvgwwfwwxwgfwwfFTuwwwffwffffgwwwgwvwxwxhwwxwwwvfwfvgvgggwwwwwwwwvvWefwwwgwwgwwwxfWewwwwvwwwWefwwwwUfvfgFTevfffvwwwfwUffgwfvfwfggfffvvgfgvwwxwfwwwwwwxwwxwxhvwgwwwxhwwxgvwwwwwxwfvggwwgvggwgggvgvghfghgwwwwwxUfwggwwxvwwgxwhhwvwWvUVhwfffvfwfgVeUhwwxwwwwxwxgWuvfgggvufwwxwwwwwwwfwvwfwxgvfvvvhwWwffwwxfevwwwwfwvvgvfWeufffgfeewfwwhgggwffvgVfewwvwvgffVfwwgwvwxwxwuwwwxwwwwwxxxxxwwvwvxwxxWvwfgxwwwgwwvggggeuwwwvwvwvwwwwwwwwgxxxxwxvxwwgwvggwvwwxwxwxvvvweVVvwwwgTTgwWVvvwvffgfvwwxwwwwxxvvfeefgGEevwggwwwwwgggVgvwwwwwxwwwxhwfVvwwwgeewwgfwvvgffffeefgfffefwffvwvwvvwfggfwevWVvvwgfvfwwxwxvvwwXVvwwwwwwwwwxxwggwvwwwxwwxxwwwxvwwwwgWVvvwggwwwwfvwwwwwvvwvwwwxwwwwwvvwwwfgwwwwwwwwwwgwwgWgUVvxggffvwfvgwvwwwgxxxwwwwxwxwwwgggvwgvfgvfwwvhvvxwwxwwwvfgvgwwwwxwvwxgwffvwwwgwfgvgvvwuggfVUeeVffgugufWggewvVgfffwwwvffggugwvwgvwxgwwxxxxwxwwwvwxxxwvgwwwwgxwvgwwwvgvgwvgxwwwgffwwgwwwwgwwwwhwvgxvvwwwgxwvuwwwDVefvvwTTevgfwgVuvwvwvwwwwwxwwwwxhgwweeVewUfvWgggwwwwwxegffffvgwwwwwwwwwweffVwugfeegvgvvfvWfvwdTVfUevfgwgVevwvvgffwEEeffefvweVuvWgwwwvfwgvwgwfwggwgWwfwfwgwfwfvvwwvhgfgwhfffwwvwwwefUfvfggfvgxwvwhwwvwvfgwwwxxwvfffgfvwwwxwwwwwwhwwwvfvdFfgfwWgwvvWFfEvwwxvhxwwwvgfuXwwwvggvWwwgwwwxwwwwvgVwWwwwgvgxvvwefwffwwwwwwVggfGfvgwvuWwwfffwwfwgWwVdfwwwgwfvgVwVfvgfvxhxxxwwvgxwxwwxwwwgwwggxxwxxwxgvwVxwwwvfggxwwwwwwwwwxwvvggvvwfuxwxwfwwgwwvwwxxwwwwweVfffVVffuefvffVUfvVfwwffggggwvvwfwvwwwhvvwuwgVffwwfwgwvfvgfwvvwfwgwhwxhgwfwgwxxwXVffgeVffwwVVfvvwwgufvuvgVfegwvwWgvWeVfvvvwfffgwwwggffgvwwwwgffwvvffwgvwwxggvgvggwwvwvwfxgxwvwwwxXvvfeffwvwwfgvxvwxfwvfwwxwwwgvwfwvugvvwvxwwvxgwwxwgVWgwVfeUwfvgUfffveVfwfggwwwwxvwxwxxwwwgVgfwwvvwvwwwwwwwhwxeefwwxwvwxgWffvfwvffvwxvggwweUfgfwfvgefwfwUffuvWgfvwgevfvfvwffvwwwwwwvvwwwwwxvgwwwwxwwwxxwwfvwwxwwwxfvfvwggvgwwvwvvgvwvwwwwwwgvvvxwwxgwwhwwgwwxwvwwgvVUuggvxgwvwgUvwvwxvwxwvwwxxgwvggvwwwfwwvvvwffgwwhwwwxfwwvxwxxwvwwwffvxfvwgvwwhfvwwgfffwffvfWUvgvvgfggfVewffwfwwwwvwfvgvvwvwwvwwwwxwwxfwwwwwwwwwxxwxxwxxxwxvfwwwgfwgfwwxgwfwxwwwwwvwwgvwwfvwwwwwxwwwxwwwxwgwxwhhvvgwvvffgWUewvwUUggwwvwwvgwgwwwwvwwxvvvWUuwwgUUggwwvvggvfvvfwgwwwhgvwwwvxvwwvwxgwffvgffwwvffggwwvfgfvwwwffwwggvwgggvfffvgwffxwwgvggfwfwwwwgwgfvwwffhwvvwwhwwgwhwhghgwggwwwwwwxwwffvvwggwwwgwwvwvxgwwfwgwwgwwwwwvvfwgwxwvwhwffvvgUfUfefffWveefugvgwvwwgwwwwwwwwxxxwwgvffggfvwwwwgfvwVegwwwwvvwvwwwwvwgwxwhVwfvfwwvgfvewwwwwWeVfufvfffvgwfWffVgvVwvwvvevwwvfgffwwwwfwhwwgwwwwwwwxxxwwwgvwxxvwvwwxwwxwggfvwgwwwwfwwwwwwwwwwwwwwgwwgwwwvwwxvxgwgxvwxwwxwxwwxwewUEuufvvWvwwwfgwgwwwwxxwxxuvwwwgwwwfwwwgwwwwwwwwwxwfVwwgwxwxxwwfUwwwgfvwwwwgwwvVEuggvfUwgwvWggVwwwgvvwvffwfwvWwwgwwwvWxwxwwwwxwwxxwxwxxwfwgwxxxwwfwxwgvwwwgwwwwWwwwxwhwwwwgVvwwvwwwwwwwgvwwwxwxxVffvgVfwWefwfwwvvwxwxhfwxggwvwwvxxwhfwwfwwvwwwwwhvfgwvxwwwwwwwxwwwxxhUfwgevwewwufvwwxWfwfvwwfvvwwwwXufVffvwwwvvvvwwwwgwwwgwwhfwwfwwvwwhwwgwvwxvwwxgwxhvwgfwwxwvwwwwxwwwwxxxhgwwxwwwwwwwwvwwwxwxwwgwwfgwgvvfgvvwxwwwxwgxxxwwvvwwvwwwwggvxwhwwvwxwfwwwvwxgvgwwwwwwxwvvggwvfwwggwwggwvwwwwgwvggwxfwwwxwwwxwxvwwxwxywwwwwxwfwwxwxwwggwwxxxwwwwvwxxwwwwxwfwwgGWfffUUdvwveUfwgwgfwwgwwvwwwwwxwgefUwwwfgwwwwfvgfvwvvfggwgwwxwwwwwvwwwxGWwfgUVdwwwvVvwgUeUvwwgVvgvwwggWVfUfvfgfwWwxxwwwwwwwwwwxggvfwwwgwwwwvgwwwvvfhgwwwwxwwwwwhwgfffwfwvgwwwwgwwwwxwhvfvvvwwvvgggwxwwwwvwwwwxxwxwhfvgwefvwefggvwgwwwwwwwufwvvwgwgwwwxVefgvwgwwfwwxxewwvwwwwwwgwwwwwwwwwefwwevwfvvgwwwwwweeffwvgvggwwwefvegfwwvwgwwxwwwwwwwwwfvwfwgwwxfwwvwwwxwxwwxxVwgvfgwvvwgwwxwwxwwxxwxxvwfwwxwvwxwxwxxwxwfvggFeVfUeeUfggwwvwffeuwwwvwwxwwxxxwXffFfvVffvgwgwffgufwwggvvwxwgwwwwwwvwWfgffffUvgfgvfwvwvFVeVvVegwvwwwwWVEduffWfvfvgvgffeuwvgwvwvvxwwwggvvwwvvfxwvfgvwwvgwwwwvvvwhwvfwgxxxhefufgffwgvfvgwwwvwwwxwwwxvfwfgvfwwwwvgwwxwxxwwwwwwhxwwwgWUUfvvwvfwfgfVVUvhxwwwwxxwwvgfvwfvwwffgffxxxwwwwwvfwwwwwfwvwwwvwfwwgWVewwwwwwvwwgefgfvvfufffgfeVgVUxxwwwwfvwVvwwgfggfffwgfVVUggwwvxwwgwffxxwwwwxwwwgvwxxvwgggwwgwwgvwgwxwgvwggwfwwwwffwgxxwwwwwxxwfvwwxwwwwwwwwvwwvfffvWFeUvegvfgwUUffVfevffwfwvxgwvvwggwwWffVuggfeevfggwvvgfgvwgwgvfgvwwgfvvfwwwgwfVeegfWvffweUfegwvgUgfufwTUVefwfgwvWfvffvfweefvgvfWDevVVfefwwwgwVWwfvVwVwggwuwwwgwuwuevwuwxwXvfvgfwWwguvgfWfVvwwffewgwwWfewgwwwgvwgxefgwgwvvhfwwggwwwxggfvgwxgwgwwfVVgvvgeffwwVevgwgwwwxwxwwxwwwgvvgwxffwwwxwwxwwxgwwgwwwwwxvwwxwgWVvwwwwufgxxVehvvvgueVggVUwgvggvwwgfwwwXgwVUwgvffwwvgfwwwwxvwvwwwwwwwxxwxwxwgwwwwwwwgwwwwgvvxxhwvffwgvfgwwwvvwxwwgvvwwwwwxhwwxvwxwggwwxwxwvfvwwUdEvggvEVevfWVwuwvwvwwwxggwwwxwwwffuvggVvvfvwwwwwwwfwgEvvfvwxuwwhvuWvwwwVgfvgffwwgVffeffdWvfvfeguffwgvvgwwdVfVvvvwVvuwvvvwxwwwgwvvgwfwwwwwwwwwwxxxwgwWwvwwwwvwwxvgwwgwvwwwfVffwvwVvvfvwvwwxwggvxwwwwwxgwwxvvggvwgwWwwwhgwwVVfwvgufgwwffwxwggxwwxxxwwxxvvgewfwwfgwwwgwwwhwwwgwwwwwxwwwwgVwgvvwhvwfxvwwxxevvWvfUgwWgwwwVgvwwwgwwWgfgWwwvffwxwwwwwxwvhuwgwvgwwwxxwgxwwgxxxwwfwwvxvxxXgvVgwxvgwwwwwvxxvwvwwwxwxxwwxwgvwwwwwwwxwwwvvwwWdeveWgvVVUwvffeggvvwwwxwgwwxwXwwVvfwwgggxwufwwwwwxwgvwvwwwwwxxxwhdvffgggGVUvwgfvwwGgfWeVEvwvfvggwdUvwwvgwwvvfffdvWugxhwfwwgwwwfvfwwwhxwvgvwxwxwvwggvwwwxgwxvwuwwwwvwvweUuggvwxxxvgxwwfggwwwxxxvWwwfwvwxwxwgwwe7eevugwdfvwwUdVFgwgwwwwwwwwxwwwxwwvuffeWfwweUwfwgwwwwxWvwxufwgwwwxxWfggfGVvwvfwufgvvfTgWwvcTfvgFgveUwwvGffvwW5eetVwfffwfwffgWggwVgggvwgggvffvgwxxwvfgvwgwgvvvfgvvvwgfgxffevwXfewgfwvvfwwwvVwwvwwwwgVvwwwxefexvwxwwwwxwfvuxvxefufVffVeefffffefvvvvggvvwfwwxfwwwgwwxgvffvgffgvgvgwwvwgfUfwgwvvwfgxxgwvwwwwXfvgeVgfvwgvwwwuwhfVfVvwwfffgvwvffgVgfgVwwfvfvwwwwgfuwwvvggwwgvwggwgwxxgvwvwfvgwwwwwvxxxgwwwwgxxhggfwggfxwwwwfwwwwgvhwwwxgwgvfxwgwwhwvxvgwxwxvwxxXgfgwUEvfUevVTuFVvffwwwgfwggwwuxwwwwwxeuwGfvVfgfwwwfvvfvfvwwwXvguvwwwewwwwwwxwVVwwvvwgvvfwggvwwwUdeVffVgffUwgwEUfdeffvwwWfffUgfvfewgvwwwwfvwgvgfwgwgxwgwwvwxwwgwwwwwgwwxwxTffevffvwwWwUfwxwwvfwwwxwwweggvwwwWvwwxwwwwggvwwvwxfwwwxxwwwgwhwwwwwgvxwfwVeVuwxgvwwwxwxwvwwfgvgwgxwwwggfxwwwwwwfffxwwwffWfffVffeUhwwwxgvxwgwfVVvgwxxwwxggwwwxwxfeewgfgvfffvfgfewgwwhwvwggwwwwwwwvvxwwwgffvwwwwvgvgUxxwwvxxwwwwwgvwhvvwwwwfvwvvvwggfwxwwfwwwffwwvVVffvwuffwfggwfvwwgVevwewfvvfwwwWgvfeffgfvfwhvvxwwvwfvfvwgfvwgfvvfgxxuwvfgeVVvvwgvfvggffxwwUewwfwfxxwxwwwwwwwxgfvwgwgwgvwwwfffffwvwwwxxwwxwggxwgffwwgfvwgwwvfVwwvvfvgVUUwvwgwhvvxwwwxwwwvvvwwwgxwhwxwwgvfvwwwvxvggfvwhugfffevvxwvgfvwgfvwgxwVVwgvVVfuwwwwvgwfggwVfeffvxwwfwwvvwwwgwvwwxwwwwwgeeffvwggwWffuwwgvfxvwwVVwvgvWffwwwwxxwwwwwgvwxvwvwggvvwgfgggwgfgwgvxxxvxwwwwwwwvwwgwwwwwggvgfgwwxwgffwwgwxwxwhwwwxwwwxxwxwxwggvvwwxvvgwwvgwvvwvwfvvvwwfwwgvUVgwwvxwWgWveVfgVUUwgffwgwfgeeeVVVgffxwgfwwvffwggffffgwvwgvgfeVwwVUVffVfefUfvvgwvguWgevWvvfvwWvWwwwxwwggwwwvwvwfgfvxwfwfvewwwggvvVfgwwwwvwwgwvvfwggfgwvgwwggwfxveUgfgffeegwgvgwvwfvwxwwwwwwwgwvggfgxwwvgvwwwwggwwvwwxgwfeVuvwwgwegvgwgwwvfvvwgwvweVgeVgffwfWwvwwwwwwfvgvwWwuggwxwwwwwwwgwvwxwwwvwvgxwfffwvgwfvvgxwhxgxwwwgvvgfefWfevvwwxwwwgwvwwwxxgwvvghwWfuwwfxgfvgxwwxwwwwwwwwwwwwwxggwgwwvgwfgffvfwWgvgwwgwwvwxxwxvgwgfvwwxxgwvwwwwxwxvwvgwwwvgwwwxxwgfvgwwwwwgvwwwwxggvgxfgwgwgWVfwgfgvvfghggfwvgvwwwgwvgwwwvvwxvfwffwvgwwwggwwvgffefVwwwwvwwwwffhgvWUwwfggfgwxwwvwwggwwvwvfxwwwvfwwfffggvfwgwvwwvvgwxgwvwwfgvffgvfxwgvgwvwgffefUwwxwwwfgxwxwgwxwgwwwgggwvfwxvwwwfwwwwwwffwvxwxwfwwfwwgggvfvffvwwwwwgwfwfVtggvwfffgwVefVggEVfvgegfUwfFwgfftWwvfgwwwwwfwvVgvgwfwvffVgewgvwgFffguvgeFfvVgvvwvWfexwwffffgffvwvwvfwvwfvwggvWgvfuvVfgwxwwwwwgwgfvfwvwgvwguhwwxwwgvvgvgFvwwfTWwgwwwwwvgvgvwwvffvwwwwwwvWwwxgwwxxwwwvfgwgvwfwfGffvfwwgFfewfwgwxwwvgfgwvwfwfvfVwwwwgWfehwvvWwxfdVvwwgggwegwufFvWvufwgwvxxwvgxwvvvvgWfeweWgvwgwwugwwfeVwvvgwvgvWfuhwvgwxfeVxwwxxwwxwwvgwwfwvggvwwwvgwwuvwvgwhxwvxvgwwvwvwggvuwvgwwgxwvwvggufwvwwwwxwxvwhwxxwxxvvwwxwhwxwgwgwvggvwwwvwxwWwxwgwggvvwhwfgfvvgffveVtff7UcgvfgwghffwvgvfffgffvgxwffwffVfewvgxgWfefgffww7UcfffgVfeGvvvwwfwvgwFveVfvfWfefvfffwwffgfffwwgfvvffvgfvvffffvwwgfffgvwxwwwguWvghfvwggwvWfuvguWvdgWfuwwfgffvgxgfgvgwgfffwwfvfgvffvwxgwvwgxhfvffvgffvffwwvvggwffgvvwwwwwwgvffhwfVevwwgvvvwgVUwwfUVvwgfggeugffgfgfffUwwfvwwvgxwwgvvhwfVugffeugfxgvggffUgffwwwwfhwfwwwwfUwwfVVxwxwwwwwwwwwfvwggfwfwggwfwgfwggwwwwwvwxwwwwwfwgvgfvwgffvxwxxhgwwfvwgwwwvgwwwwwxgwwwwxwwwvwwwwwgwxwvvvvvfvgvwwwwwvxxwwgvwwwvwfvfgxwwwfgfgfgfvvffgfvgwwvgfgfwgvfvvvwgvgwxxwwwxwhvwgfgffwwwwwwvxwxfvwgwwwwwwgwfgfwwwfffvvwwwvggwvvwwxwwwwggggfwwvwwwwxgvvwwwxwwwwxxwwwwwwwwwwwgffgwvvwvvvxgvvwwwwgwwxwggwwwwwxxfxwwxwgwwxwwvgvwvwwwwwwwwwxxvffwwxxxvweFfwwgvffvgfvvWwgeedwvVWfugVteVwWvvvvxwvwwvwgwwvfewffwfwVVfvwfwggVdguefwvegvwwgvvVvwfvwgvfgffwwvvxwvwwwwwwwwffxgvwvvewwfwwgwvxwwvwvvxggxguxgwwwwvwwfEwvvgvgwwfUwggvfwwwwwwwwgwxwwxwwgVwwwwwgwvxxwwxwwwuvvUEwwwgwwfwwwwwuWwwwwvwxwwwwvvgwvwwfwfUggfgfffvgfvwgfgwwgffwwwgvwwgxwfwwgwwgwwwwffuwwfUxwfwwwgvwgvwwwwvvwwvwgvwffggVwgfgvwgfwwfwwwxwwwwgVuwfffxwgwwwwwwwvwwwwwwvwwxfwwfwgvgxwvfgvwwwfxwwwwwWuwwvgwwwwwwgvwfUxwxwwwwwwwxwwwvfwgwwfxwwfWwwxwwgwgwvxwwwgxevwgwwfggvgguwgvfwufvwgvfwewwvvfxgwwgxwwxwwwxvuvffwuwwhgwvgxwwvgxwwxwwwgggwfggvvgwwwgwwwxwwgvVwwvwwghwvfwwxwgxwwxxvxxwwwgvwgggvwgxwvgwggwwwvwgxwvfwxxwwgxwwwvwwWgvwvgxhhwwwvwwhhwxxwwWegvvvwwWufwufWwwvgwwwwwfgvgefWggwwwxwgvwxwwwwwvwxwHVeevfwwgvwgfuwwggwwhxwxxgvwwVfgfuffgwvwvfwfwwgwwwwvxwXgffgfwwgvwgfdwvwwwvgxxxxggwgvggwwwwxxgfeevgwgwvwVfewuxwvwwfwwwxhwvgwgwwwwwvxwwwwxxxXfVvgwvwwgxwwxwWwvwxvvwwxwwhfwwVvwgVfgVefgvvfwgvfVwvvgvffuwwvfgwWgvVwwwvxxwfWwfvffvVgfugeVfufhgvfggffvwgvwwwfffgUuxgvfwwvgVwhwwwgxwvwgwgfggvgfgfuvvxwvwgwvwgxgwgwwgxxwwwgvfvwfgfufeUVuwfxwhwfwfgfVwvWwfgwwwwwwxwxwwxxwgxwxwwgvwvffuwvffufgeVvxvwvwggwvwvwwvvgVwwfghgvtUfvwWfwwwghwwVUfVuwgefuwwwwwvffxfgwwwWggWTDffeefwfuwxxxwfVfuwwwghxxgtffwffvwxxwwwwwwwwwxwwxXhvWfffwwwvhwxwxxfwwwvwxwxvvgxwgwwWwgVfUwgeefggvxwwxggfVfuwwwwgxwggfwwwvxxxvwwxfUxwvvweVgvfvvwwwxwvgxwvgwwwhegfguwwwfUfuvwvvgwwwwgfgwgufgvfwvwwfgwwwfvgvwwwwwwwwVfUvwWfeggwvgwgwwgvgwwwwwvvwgfefvwveggvgwwwVfgvwwxhwxffUfvevvwwvwwvgxwwwgwwxwwvvwfwwwxxwgwwVffvgVfuwwgvgwVwwvgxwwwwwvwgvwvwvwwwgwxwxxwwegVfevwfvuwwgggwwwwvwwwwxxxwxwwufvwvevwgwggwvwWEfgfvuwguxwwwwgvgffuwfwwwfefwwvvfWWwwwwwwfwwwvwwVvgfwffwvgUVtwvxvUhxwxwwvvgDvwfxhvxxwwvwwwvfwwwxWuwwvwwwwwwwvVwwwgvfvgvwxfwgvwwwgvvWuwwwwfwgvwwwUvvffgvwvVfFtwvwwxwwxvwwfwwwgwwfwwwwgwwfwwwwgvxwvxwwxfgUwwwvwwwWWfvwggVfwfUxwvVUwwwhwgffwvgfffgfeUwvgfwgVuvvffUVVvvfxwwvwwwfgwwwvfwwwwwgffWfugfvgvfffgfeVgfewfvvwwwvfffvfffgfgvfwxvxwwxwwwwwwxwfwfvwgfwwwwwwwvfwfvgwvwwwwgvxwwgfgvwwwwwwwgUvwgfgwfgvwvVUvgffvvggwxwwwwwvwwwwxwwxwhwvgwvwwwwwwwwgwvvwxvuWvgwfgfwxwwwveVfvwwgwfufvvwvvwggWVfefFTtwWwwvfvggfgfguffvvxgwwggfVggffvvwwwvvvwwfgwxweefvfwgGTtwWWWfvvxwgvvgffufggvffuwWvwggwxwwvvwxgwwvwggffwwvfvvfvwggfvwgwwWwwwwwgwfgwwvvvwvvgvfxwfWwgefvfvVWvffuwgwggwvwwvwggggxwgfvfvwVvvvwgwwggvfggfwggggxvwwwvfgfwguwvgwwwuwwgwwwgfxwvgwwwwvgvxgeFVeGwxwfwgvgVwfwfgvfxwwgxvgvwgwwwwwvgwvxgeFVfEwfwwggvfxvgxwWwwvvgvwwfFvfExwxwvwgggxgfwwgxwvuwfewvggwffvWgwVwvvwwwxvgxxwgwgwgwwwgvwwufVvgwwwwwwvgwvxgwwwxwwgwxwgvggwgwwxggvfwvwxwwwwgwevguwgvgwwwwwwwgVggvgwwgfwwegfeffvwwxwggwwwguvgfwvwwwwvwxwvvwfvvwvwxgwgfvvwfwwxeVewvwwgfvgwwgxgxgwwgfwfegfvguvvwwwvwwwxwvwvgwwhwfgfwxxxvfugvwwWfuwgwwwwxwwxwwgwwvwgxhvvfvgwwvvfVuvvgggfvwwvwwwhwwwgwwwwvwgxxwggwxxhggwwwxwvgwwgvwffwwwxvwwwwwgWgwwgWfWvvwgSUuwwdVfvwhhwwgegfxvfwxwevexxfWwvwggfwxwwwxhgwE5vUUvgwwvdfwWWwgvvgWsUevwfVvvwvvwvfvfwgwgxwvGffwwhfvwwGWfVVwwvugvwvvvwvwgefvxgWvwgwvwfwwhgWeVvUewwwvdfgvWwvwxxwxXwgvfxwvwgwwxvwwgeugfvxxWwwgfdhfvfVwwwWwvWvgVuwwwwUDDwwfffffvvgWwvWUWffwwUwwgVuwwvuUfwwfwfffwwWWeVffDDfUfwgvwwwgfvwwvvgwwwwwgvgffwffefffvvgwwwwwwwxffwxhgfvfUffgwvwwgfwwgfvwgvwwxwwwfwwwgfvwwwwuggvwwffwwggfgwvgeffVevvwvgvwgfwUwfxwwwwwwgfvvgwwwWuwUwwxwwfUwwggwvwwwfwwWxxwUgwvwfwgffgfvfwhguvfvwGgfffwwwgfwfvvwgvwfwfgfwfwwwgvgvwgvgwvwffwuggfuwwWwffvwwweFgvfwvgxwvvwgfugfwwGgVfgwwwgvvwxwwgwwwwwwwuveeuwggwwwfwffxwwxwwxfvgfwwwwgwgwwVwgvgVfugwWwfgfwgeFgvfvwvxfwfvwvvvwhxwwwxwwwgwwwwvvwvgfvvwwgfuwwwwwxwgwwvfvhvwwwwwvffuwgwVwUVgTDfvefuggvgffxvfvfVhgvwvhwwgVUgfVwwefvggwFEtwgfVwvfffefeWfefuwhvfgwwwwwuWfWvfVWeeguggvwggwgwwvwvwxwgUugggVvfgWeegvggfgvggvghwgwvffVwfffvgwvffuwgvVxwfgfvwvfgffvggfWfwwwfuwgVUwvfxweggggvxxwggvfvwffVwvfwWxwwwvfxwffwwfwgxwwvggfxwhweUevwxggwxwhVufvefwwuffwgfggfgUeffUffwwwxxxfwwuwwwggwwwvvwfvwwvwwfwUwfvwwwwvgwhgfghvgffgvUeewxxwwxwxwfwwhvvwwwwwwwwwwgfwfvvvgwwwwxfewwggvwggvwwgfgvgvxfgwffVfeggwefwwwwwwhxxwwwwxggwwxewwwxxwwgvwwwwxwwwvwwhggwgwwwgWWUwgwwwfgwwwfvfwgfgwggfvfffufgVUUeVggwwwhvwwhxwwxwwfwwwgvwwgwwhvggwggwwwwggwvfwvwgfffwfwwwxxwwwwxwxxwfgwwvwwwwffwwwxwgggwxwwxfwvwwgvgfgwvwgvgwwfvvwwUfWvVfggfffwWgggvxgxxwxwwxwgvxxwxxgwwwwwwfwwvvvwffvwwwwvvwwhgfDfhwxhvgWfvUwwwvuvgwVfwwwgfdvfwUwfffxwhvxwvvwvwxxwwxwwugwwfvvfxwwwwwgwwwwgwXvgvfvVgwgVddgxwxwhwwwwxhvwgggwvwwwwwwwxweuwwgvwwgfwwwwwfewVwxwgvggfwvgwgfVdwxgvvgeufgwxxgwxxxxwxwwwwwwvgwfwffwgwgwwxxxxxwxwwwvVwvwxxvwggxwvvffvwgvwgvvvUUwwWUuvwwggfvwwwfffwwgfvvgvwvwffwwhfvvvvgvwgwxwwgffvwwwwxvwwgxvvgwwvvgUUvgWUuvwwwwwgwwwxvwvvxfgwvwwgwwfgggvvvwwwvvvwxwwvvvfffwgfvvwwgfvwvvwwwgggfwvfgfvvwvffwgxwxvvvwwwwwvwvvhhwwxwwwxwwwwwwvxxgvwwwggwwgwvgfwwvxWvTUxwxvhwVwwwvgwwwwwwweVvgwgWUtfgeVvuwxxwwxwwvwwwvgxwwwwhwxvgwxwwwvwwuwxwwwwxegwVggvvWwwwvvxwxxwxvwwXfxwwwwwwwwwwwvwxxwwwwxwwffwwwwvvvggwvwgWwwufwwwvvffvuwwwvwhwvwxxxwxwwwvgfuwwwwgwvhxxxxxwwgwwxwwxgwwfTVevwgwgfwgedfVvfffgwweffVwwwdUffVevwwwwvvvwvwwvfwwgWgffwgwwwwwVfffggwhgvgwwwwxfgvfvvwUUVfggwgVfuwwxwxxwxhgwwwgxxVvvfgvgwwwwwxwwwgwfwfeVfgffwgwfVfgvgvwwvgEUdufffgwfVfegwwggvwvvvvwgvvwwwwgwxvwxfvxvgwxvvwwwxfgfvvvwwwxwxwwwhuvUUfwwgffgfvvfwwfvfuvfUfVefWgvffvfVuVwgwwxxwwfvgvgwgfwffwvvwwgwwwwvgwwwwvwwwvfgvhfwvvvgVeUwxwwxwxxwwwxwwwvfvwwgvfxgvwwwwwwwgguwwwvwwwgffwvfggfffUVwwwWvgwwgvfgvgvvwwxgwgvwwwwxwwwxvvwwwwwfwvwwwwwgwwgwwxxwxwwxwVEVfwgwwwufguwxfvvwgwxhFfgffvftevEVewgvwwvwwvwwfvvwhwhwwgeUwwgvvWwwwgwWwgfwwxgwwWuefvwfVVeggfvwvxwwxwwXwwwvwwwwxwgvwwxhwvwwwxhdffvvvWVuwwwwGgvgdfvgvvvgVuwwvwggvUfwvxwhwwhfgwgwvwxwxwwwwxxfvwwewvwwxwwwvwwwgvwwXVfeVfvvwwfwffffvffgvwwVfugufvfVffwwffwvgwgvggwgvwgwwgvfwvgwvwxgfgvwwwvwwwvwxxefvffeggeffffffgwvgwvgwwhwxwwwfgvfvfvwwxwwweVgwvvwwwwwuVwgfgfvwwwgvVufvwWfvvggfgvfgvwvfwwwwvwvfwgwvgwxhvwvgwwwvwwwwwxfvfwwvhgvwwxhwxwhwxxwwwxggVDuwvwxggvwwwvfwfgvvwgfUvgfvwVeffWDeffvwwwwfwwwwwwgggvffwwfwwwwfwwvgwvwfgwvvwfgfwwwvfgfvwvwgwxvwwxwwgVewwwgwwxwwwwgwwwvwwwVexwwwvwwwwvwgUffwffffvwwwfwwfffgfvwwfvwxxgvgwwgwxxwxwwxfvwwwgVewwwgwxvxvhwwwwvgwXveVVvgfgVTtxvfVVggwgvfwfVfffffffVVfgfgewgeuwggxwwwwwgwgeuvfwgvwwwvwwgwwvwwwwwvwvggeuwwwEEgwwvvhwwxgfxwwxwwwwfuwwwwggwwwxggwgvxxwxxgwfvwwwVVwwwwfvgwvffeegfvffwxvgwggvwewwvwgwwxvvwwwwwwwwwwwwwvxwvvwwwwwvvwfvwwwwwwgwwwxxwwwwwwwwfVVeegwwwfggwwwfuvwgwwWggfVfVfeWffvgvgwwfwfwvwwwwwxhfvvgggwwwwfvvwgwwwvgwgwXVwggeUfwgvfevfvffwvwwxwwxxwwgVVwvwwwwwxxwxwfxxhvfwvfwgfvwxwgWeufgfffwwwefvgwwfwefwfwwvwwwwwgfwwwwwwwwxwwwxxfvwwvwwgwwgwwwwwwwwhfvUUvxwwfwgvwwvwfwwwwgvwffvfUeffvffwfvvgwwgvwwwwxwwwvvfwwvgvwwwwfwwgvgxwhwxwvwwwvfVuwgwvwwwwgwwxwvxwwvwvwgwwwwwvffxwgxwwxgxxwwgfvxfvwfxwwwwgfUwwggvwwvgfvffvgwfwwgvvgwvwwwxxwwxwwwwxxxxwxwgvfvwwwwwwwwwwvhwwwwwwxxxxxgfgwwgxhvwwvwwwwxfwwggvvvwgfgwwwwxvwwwhwwwvvxvwxwwwhwwwgvwwvwfvgwwwwwwhwwgwgwgxwwxvwwvwxvwvwwwgvwgvvwwxwwgwwwwwfwwwxwxwwwxwwwxvwxwwxwwwxwwxwwwhVfgwVgwxevfguffwwwwwwVfwwuvgWfffwvfwwwfwgfwgwwxwefwvxwwwwxhvwwfwwvwwxwgfwvfvwWvvfwwwwwwwvvwgwwgwxwfwwvwwwwXwwwwwwwwwxwfvwWfwgwvwwxwVgwvxwwwwXgffgwwvwwxwwwwxfwxxwhwwwwxwxfvgwwwxxxwwwxxhwwxwwwwxxxVffVwgwwwfffwwwvgwwxwwWgwVfUeUvwvfWfgwvwvvwwwxwgwwwwwwggfgfffvfwwwwwwwxwvvwvwwxgwwwgefUwvffvwwwvvwwxwxxwwgwvwwwgwwwxxwwwwwwxefUwwwwgvxfwfVeUffgfgwgvwwwwgwvwvwwwwwwvwwwwwxwwwwxfvwwwgwwvfwwwwxwwwwwwwxxwxwheegvvvwVffgwwhfwwwwwwufvwfeWWvgWufwvwwwVfvwwhwwxwwfwveVgvwvwgwwxwwfwxwwwwvxwVfffwxhwfwwxwwgwwwxxxxvwfwwwwwwxxxxwwwwwwwwfvvgwgvwwwwuwgUggfvwwgwfwwxwxvfgwwxwwwwwxfwwxxwxxwwxxwwxvgwwxwhwvwwwwwxwxwwwwwwwwxxw7egeewwwWeUVvvffvuwgwwFfwV6FUVvfTfwvgvvwwgffggvxwvgvwvfVeffgegwwwffwwfvwwvwwwvwhwwwWtVEvwggfvwggVtwwwwwwwwwwxggwuVgwwvvewwwxwxwwwxgfeeFwwfwgvvvwgEVUSffffguvgfvwggVdwfwwvgggwvfwggggvvfxxwgvgwgvvfvxwfVwwfuewwwwwvufxwwxgxxxfxxwxvxwfUUwxwwgfvwwwwvffvffwggfgggvgfvwgVVfffwwwwxwwwvgwwwwgggvwwwwwvwgwwwwgfffvgwwxwwwvwwgffgffUexwwwxwwxwxwxxwfgvvvgfxwxwwwwwgwfwwwwwwwfwwvwwwwfwgvxwwwfgvfggwgvwffffvwvffefgxxhgwwwvxwwhwwwwwwwwvgwxwwwwggwwgvwwxwwwwwwvfwfwwwvfGdUfwgwgVVfvwwUeVvWvwgWfffffvegwTTVVewvwvgwggvwvgvgwvgvvWVfffxvffvwgwwXffvggwwxxWwwwegwfgwdTewVgfuwwxwwwwwwwxwWffgwwwwvvwwwxhvfwfvwwwwwvfvuVwfeufgwgfgvWffuwewwfUvwfwfVTdfVVgfuwwxfwfwwfgvfuwfghvwwfvvgxhgwwwwfgvgvwwwwwwvfgwvffwwwwXfVVfvfggwvvgvvWvwVfvwvVVgfwvvfufVfwUfwwvvvfgvfgfggwwwfgvfgvwwWvvVfwgwfgwvvwvwwfVffwffgeefffVUvWvvvwgwgggwfwxggvvwvvvhvvfwvgwgwwhvwvwxfffgeVfwwVVwwwWgfvvfvvwwWgvUfvgwffwwwffvwwgwvxgwhgvfwvwwvwvwwvwfguwxvxgxwgwwvgwgwvwwxvxxfVeVugwwwvwwwwfffgfvwwwfegfggvUfeufffvvvvwwvvwwwwwwxwwwwwwwwwfffwwwgvwwwwwwwgfvggVguVffvWfVvvfwwxvwwwwwwwhwggwvwvwvfgVuwwwgwwwvgwhgwwgwwfgvWvwwguVgwwffgwgefvgvvvgWvvgvwvwwwwxwwwwgvwgwwwwxwhwvwwwwvxwwxxwwgwwhwxwhwvxwgfVgwgfwxfvwgvwgwwwwwwfUgwvvwWfwfwwfvwxwfxhvwgwwwwfwvxwwwhwwgvxwwwwwwwxVfgvfwXufgwwwvwxvgwgwwwxfwwwwwxhwfwgwxwwwxxxfuwguvWwwvfxwUgwvwwvwxWvfffgwwvvwwwgwwgwxwxwhwwwgwwwwxvwxwwwwxxxgwwwwwwwxxftefvvwwfgwwVeVwwwvvgxwtugVwvgVUVvwgfuwwgxwwvfgwwwwvxxxfwvwwgwwxfwfffgwwwxxwwwxvwwVWgwVVEvwfVufvwwwxwgwwwxwgvvvxwwwxwwfwvvwgfvwvxwwwwwWgwwVfEwwggxxwufvxxwwwwwfvUfuffvwwwwwwwgwvvxwwwwwwvwgfvwwwwhggggxwwwgwxwxwfgwgwwvfwwwwwxxxhUFfUvffwvffWVfVvveefgweVgeudUfegVgvVUgggWfuwwggwufvgWweefvvWevwwgwvevwgwefwgwggwffgvfefvugfwvVUfVVgvvfwvxwgwwxwvfgwvfgfvwwwwvfvwvvwfxwwgwfwffuVfvWfgvfUwggWffufWEdfeewvgfvggfeggfWffwgwwvuWgewuvgwuwwWWwgvwxxgfvwggevvwfwwwfgvxwvwggwhvgwvxwgvFWeVdwwwwffVwwwvfuwvfgVfgwUFvffffeffvevgufwfwwwwwvwvwwgwwfgfvVwwgwwfwwwwgfuwxvfgvggvwgdWVwwfeVugvgWwvxwwwgwxwwwgfEwwwwuwwwwxvwfgxwxegfwwwfgfwwgWvvFfVvVwwffgfwwwggfuwgvgWwwwwwwWwwwvwwwxxwwwwvxxxwwfwwwwvggwwgwwuxvwwwxwgwfxwxXTUfgvfvweufWvwGfvfvwweewwdUfUeVVffvfwwgffwgvwgvgvwwUffufgvvwxGfffvwwwuWwwwwwxwvfwvEdfVefWVugewwwWwwwvxwxwwfgvuuvewwwhggfvwxwfwwwwwwwwfvgfwwgvvvwwwwDffUfefuwwWVefewwwfffwfgwgxwfwvwgwxwwwxwxwwwwwxxwxwufwewwwgvvxhgwhwwvvwwwwwxwxwwwwfgwwggvwxwfvwwxwgvvwgvgwxwgvwxxgwwwwwwwwwvwgfgwwxwwwxwwwwvgwwwwwwgvwwwwwgwwwxvvwgwwgvwwwwwxwwwwwwwvwwhgwwwwgwhgwxwvwwgvwwwgwwwwxwwwgggwwvwwwwxwwwxxwwwwvvwwwwwgvwwwwwxwwvvwwwwxwwwwgggwvwvvgwxwwxxgwwxwvgxwwwvwfgwwwwwhwwgwfwgxwvvwvwwwwxwvvgwvgxwwwwwwwwwwwwvgvvxwwwwxvvvxggxxfwwwwwwvvwwwwwwvgwgvgwxxwwwvwggwwvwwgwwfxgwxwwwwwwwwwwgwgwwwwwwwwwwvvwwwwwwgwwfgwwwvwwxwwwwwwwggwwvvwggvwvwgwwwhwwwwhwwwwwwwwvvwwwwxwxhhwwwwwwwxxvgggwxxwwwhwwwvgVevfWeevvvfgVefvVgvwfgfvwwwvVfgffvgwwgvfwugvWeefVggvwvwwwvwgfegfWwvgvVgwggwwwwvWfvwvgvfwffVeWvvvfgufvWeuwgwwwwwwwwxvvwfevwgwvVuVgvWfwgvwegfVfgfffggvvwwwwwvewwgfffggfffgwvfwvwvgwwwvwwvgwguvwWgwgffggfwwvvwfgwwwvvwvwwwxxwwfwfwwvwxvwvwwgwwwgfwvwwwvwwhwwggwwwwwvwvhwvwxfwwwwvwwwwhwwwwwwvvgwgwwwwwwwwwwwwwgwgwwxwgvwwwvwwfvwwggvwwwwwwgwxwwwwwwwwwgwwwvvxwwxwgwvvvwwgvwwxwxwwwwvwxwxwwwvfgvgxwwxwwwwwwwgggwwxwwwhwwwwwwggwfwwxwwwvhwwwvwwvxxxwfwxwgvwxvwwwwwwwxxwgvVWfwfgwfvvwuugVefvgwgVfgfwwevwfffwwvgvvwvvfeeVwgwxhggwvwwwxfffwwwxgvwgwwwxhVgvgvvvuewfffgwwwgwxvwwfevwgwxgwwwvvxwwxVevgwwhwgfwvwhwwwvfvVVfwvgwggvgvwwvwVVfwhwgwwvwvwwhgwgvwwwvgfvwwwgfgggwwwxvwwvwgwxfvgwwwwgwgwvXGgfwWgegwwxXEevweffwvWWvfvwxdVvwwwfwxwhUfewefgvwwvwwwwwhgvUVVffwwxfvvwwWgffwgUeuwfegwvvwwgUfvvwvwwwffwgwxwwwxgffeefuvfvwwWgwwxhTVvweVwwgwwwwwhwweVfvwwwwgvvxgvwfwhvwwxWfgTfgfvvgwfvvwfwgwgwwgwxgwxhwvwwgfwwwwwxwgeFFffVUuvUUwwwgffwffvgfEFfgffvddffFFvuwwvUUwwwgfvwgfvggffffffwfwggvwwvgwwvwwfwwwgfVUuvffwwwWUuwwfvvwwwUUwwWUuvgWwwgeevvffwwwwwwwwxwwffvwwwwwvffwgvWUuwwfvfwggfffvgwwgfvwwvvgfvgvwvwwgwwWeewwffvggwwwwwwwwfvwwwwweeggweeWwvgwwwwgwwvvgvwwwvvhfeewweugffffWwWfvfwwwwfevfgfvfgwWvgvwwwwgfgggwVeguwvwwvwwfvgggvwgwwvxwugfxwwwxwvffvfVwggvgvfvvgvwWWgwwwgvvvvgvwvwweffwgwwwvwwfwwwwwVfvvfggvfvgwwfwwfwfwvwwwwwwwwwvfwwwwwwvxUfvwgwwwwwwwxvfwwwwvwgwwXffvwwwwxxwxwxxwwfwgfufWfewvgvffWvugfWfgvWVUwfggeUxwggvgwggvfveVhgvvfWwfWfvwwwwvfwWgugWwvxwWgvgwvfgvgffvefwffhvfgegvfwefwffgwvwwgwwgfvfgwwffggvvwggvwfgwwWgwgWgfwgeUgffwvVvvVgvwwwwwuggfvwvfvvwgvggwwggWvvfgvwvuwhgvwWwvwwgwvgvwwwvgvfwvvwwvwgwggwwxwvwwvwwvwwwwwgwggvvgwgxvfvwwwwwwwwgwwwwgwwwwwwwwwwwwvwwvwwwwwgwwgwggwwwvvwgxwwwxwxwwwwwggwgfgwwwwwwgfxwwgfgvwvxwgwxwwwwwwgwwwfwwwwwwgwwwwwwwwwwwggwgwgvwwxwwwwwwhgwwwxvggwwggfwgwwwxwwwwwfwwwxxwwwwwfwwwwwwwgwxwwwwwfvwwwwwxvvwvweWgeWWgvveVfxVevgwggWgfvugwvwwfevvwwwhtUfwxfeugwwhvfWFefwfgvwvvwwwhfgvgvwwgGwfwuVfwxxeTvwvfgtvgxwgfuwwxwxwwgUewwfgvwvwwwxgffVvxxwwufVwVUwwvggwwgVVgfwwevfvwwwhfVvfwwhgwgUfwwfwvwwwwxwgwfwwhgwgwvwwfwvgvwxwwwgwwgwxwwwwhvWVwfVfgvuuwvvffwVvwgwfggfwvvvuuvwwggvwvffvgefwggfgwxwWwwwwgvvhgVfwgwwwwwwxfVWvvufgfffWwgfwwwvuvwffggwfwwwwgggvvhuwwwhwwgvwgvwwwxxgvwvvvfvuggvfgvwvWgwwwfwwhwwffwgwgwxwxwxffwwwgvvwwhwwfwwwwwwwxwwwwxwvvgevwwwwwxwxwwwwfxxxVfffgfggfufvfgvvffgwwWfvWVfgvvwvwfvgwwwgffvvvvvWwgvvvggfggvwwwwwvfwwwwwwwwwwwwwXvwVWfgevwuggwfwwwfuvvwvvgWwwwvvWgfgfewwwwwwwwwwgxwwxWfvfvwfffvWwwwgvVgwfwwgggggwwwwwvwwwWwgfffwvxwwwgwxwwwwwxxgfewxwwwwgwgxwxwvwwwxxwxxhVVgveefwuvwgwgwwxwwVVvgwwwwvfwwwvgwwvuwhwwgwwwxxVwwvwwwxxWwfwwwxeewfvvxWwwgwwwxggvwwwwwfwwxwexwufwwhwwwwxwwxvvwgwWwwwxVwwvwwwXwwfwwwwexwewvwhwwwwwxxwvfgvxgwvxxgwwwxxfufwfugvUgvWfffwvvvvwwgvwgfgwwfefxwwxgwWgwVfeVgwvwvhwgVfuwwwwwwwvvvgfxxxxwxgevffgfgvVVwgvwwwwVfwgvffwwwwxggfeuwhvgvwvwvwvwfwwxwgwxgggfeefwwuwgxwffvwwwgwwfvvwvfwwwwxwxxxhffvwgggxwwgwvwvwwxxwxwwfgwgwwvxwxwxwwgwgvxwvwgwxheffvufwfvVVvwfgwwvfwgwugvevefvvggwwvgwxfefvgggvvwewwwfwvvgWVfvwwwvwwxwfwhgwwhxvggveffuwWgwvfvxxgfffwwgxwwwwxgvvfvggfvwfvwwwxwwwvxgxwwxxfeVuwgfwvguwwhgwfvggfvwvwwvxxxvvwwxwxwgwvfggVevvvxxwxwwwwxxwgxwgggfvwwgwwwvwgwxxwxxUggfFggwfueUwxgexwvgWgggeefVwwgwwvwwwWueFwxwgfwfggfffVVvggvVgvvvwxwwgwWwwWWwfftVVwxwfVwwvdVfwwvfwxwgwwgfUwwwvfwwwxwwgwvgxgufUxwgfuwwgVggfeFwgfwfvgvwxgwvfgwwwggvweUwgffewwwxxwwwfgxxxwgwfwgwwwwgwvfwvwwwgwwwwgwwxXdegvetvvUfUVgggffwwwwwUevfdVfeeWggvwwgxUffFwgfuWwwwwweWeefvvfvgfgfwwwwvgwwxwwdeguEffVwfgffxwwwwUgefvffgfwxwwugffevwwwwwwwwwxwwwwwwwwxwTVfVwVgvfgggdffUfevwwwggvwwxwwwgwwwxweVvfvvwfwgggfwwwwwwgwwwwwegvvwwwwwgwwwwwwwxwwwwwxwwxvgVUvgffvwfffgvugVUffuwggewwwgfvufVUvwvvgfwVvfVfffgvvwxwwffwfwvwwvwwvfVgwugfvgwgwfUgfvvggffgUfwuvwgvwwwfVffvwvwxwggffvvgwwgwwgvwVvwufwuwwwgWewfwvfgfvgevwwhwwVuvWvwwwgwvgVvgvfwufwvvxgfgfwggwwwwwwegfffvvgvfwwwwxwwwgvgwwgwwwfvfwwwgwwwwgvwgvwgwffwfVfgwuugvvgfgfewhgVgvxvwgvwhwwfewgwfvgwwggfVVvwwgwxwwwfvwggwgwxwffwwfgwwVWfwvfgvvWVwVegwgvvgwWgwffwvwxxvvwfwwhgggwwwffwwvwwxwvvfvvVWvffwwwwwvwxvhwwggwwVewhwvfvwgwxvwvwxwggvgwvgVVgwwvvwxvwxxfvwxggwvwwxwgxwgwwvgfVUUffdtwwwgUUwwgffwfffVUuxUUwwwWUuwwvgwwwwgffwgVUeggvuwwwwwwwwvwgeevfvvvwwgggvwgVfdtwfwgUUwwgffwffgFFvfffddfvwWwffvwwgwvwvfffffwwfvvxgwwgwwwwwwgffwwWUeggvvvvwwwwwwwuwgeewfvwwwgfgvwwvfvwwffwvvwffvwggfvwgfwwvwwxxVVwwvxxvwvggVVwwfgwuwwwwvggwwXWWfvgWffwvwhdUveewhwgGwfwwgdvgwefwxxvxwUfvxVUgwvgwwwwwxhgwVeggvwwgggxgWgevwxeVvwVeggwwvgwuggwwfewxwVgvwhwfwgwffTggfwvwxwgfvwwuwxeVvfTgwfgwwwgwxwwVUggfwvxxVffwwgvfvhgfwwgwweeWvwwfwxwgWfvgwfwwwgxwwxgwwvwvvvwwwwvxvffvfefwegvgfgfvvvwuwgvewguwwwVggwvvvuwgfgwWefgfwffvwwwvwvwxwwxewffvwxwwxxwgwwhevfvfggVgfvgfgvwxgwwgewfvwfgvwwwvwgwwwwwwvfvgvwwwgwwwwwwgwwfevVvwuvvgwwvwwwwgwufffuwwwwwwgwwhvwwgwwxwvgewvggxvwwwggwxgxwwwwwgxwfVwwwvvwwwXWFggVUfgvvwWefFvgUwwwwFVwVgwWeVfvfvfwwvfGeeVwVfgwvfvwvwgwwwXgefvggwvfwwwwwwxwFVwfvvwWeVUggffwwwVvwGVefgWwfwVvvvgvwWvUffgfvvfwwwwwwxvvxWdfVwfffwwwgwwwwwwwWvffewwwwwxwwwwwwVgvvwgwxwHffUfwwwwfwwwwwxugwwwwwgwxxxwxwhvvwwwwvwwwxwwxfwffvwfVvgffhvfwVffegvfvgVugffwwfwwgfuwwfgffwvUwfwgffwuggvwwffvvghggvgwvwwvwegfvwfwfUuVVUwffvgfwfwfuVVUxwwwffgvwwvgffwvgVvgfxwwgwwvwwgwvwvuwfgfUxgffgwfvgvvfvwvVwgWwwggvwvvwfwwvgwuwwvVuwfVwfWwwwwvvuwwwvfgwvgvwwfwwggfwwggwgwgwwwxwwhwwwgvwwwvWeUfvedugVefgwvHfeugfxwedvgffwfuwGVeuvgxxFeffwWffvgwwwegwdUfwvwgwfwwwxffwwwwwwtevvVtUgwwWfffwwwwVfvvvxWfVfgwwfgwuffvvwwggwwwxwvVwwfwwwwVeffwwWeVvvwwwegveffvvwgggwweWfwfwwwwvwwefuwwwwwwwwxwwfgwwwwwwxuwwvwwhfwwwvwwxxwwvwwwxxwwwxweedugedvWWfwFffvwhfvwwgtuvfVfvVfvwWfvwWWggVffvwWevwwwuwwxfvwwvwWfvwwwwwwxwwwwxWeufVGVwVgfggfwfgEWgffwvwgVxggdvgwwffwxwuggVwwgwxwxwwwGWgvVwUvwgfvwwgefgwwegwwwvgggvwwwgwwfwwgefgxwUvwwwugffwwggwwxffwWwvgfwxwvwxwwwwwwxxwwvwxwwwwxxw\b\u0000"
  },
  {
    "path": "examples/games/.Tables/TwstFlip.ptb",
    "content": "pwwgVUVUfFFUvffgeVUUwgvvffgwggwfVVDvffgfvgxwwvffgwwwfxwxwVUVUgETfvVegwffwwVewfvvwwwwwwvVegfwwfwwwwuxwwwwvxvxhxgfFFUvVegfgvxwwwvVegwggwwwwwwwgvwwxwwfvvwwwxwxwwwwvffgwffwwwwvxxwwwwwwgwwxwwvwwwwuwvwxvwvwxwxwvwxveVUUwVewvVegwwwwgETffvvwwffwhwvVegwwwwwwwwxfwwfvguxxhvwgvfvvwwggwwwgfvvwhwvwwwwwwwfvwwxwxxwwgwwxxwxvgvffgwwwwwwwwwxwffwwvwvxwvwwxwwwxvwwxuwwwxggvwwgwggwwwwwwvwhwwwwwvwwwwvxwgwwxgwwxgvxwhhffVVDvVegwgvwwwwvVegwwwfxwwwvxgvvwwfwvwwwwvxxwxxwvffgfwwfwxwwuwwwwwvwxwgwwwxwwxvwvwwwxvwwwwwwfvgwwwwfvvvwxwwwwwxwvwfwwxhwwffxwwuxwvwvwxxxwwxwvvwvwwwwxwxwwiygvffgwwwwwwxwxfwwfwguwxgwwwwwwxwwwwgwwwgvwwhwwwwfvxvxwxwvvgwwwwxgxgvwwvwwwwwxwgwwwhwwwwhhfxwxwxwwuxxxwgvwwxwvxxwwxwwgvwwwwyivhxgwwwxvxhvxvgghhfwxxwwffiyghwhhfyivfwwfvwfvvwvgfvfvwwvgvfvvwwwwwfgvvwwwvwwwfgvwvvwgwwwxxgwwgwwvvfvwvwwggwgwwvwwwvvwvwvvvwwwwwwgwvwwwwwwwvwvwwvvfgfwwvwwwffvwvvgwwwwwwxwwxxwxwwxxwwwvvwvwwwwwwwfvxwwwxwwwwwxwwxxxwwwvwwwvvvfggwwwgwwwwgwgvwwggwwggwwwwwwxgwgvvwwwwwwvwwgwxwwwxxwwwxwxxxwwxwwxxxxxxxwxxxwggfvwwxwwwvwwwwwwwwwxxwxwwxwxxwxxxxxwwwxwwwxxxxxwxxwxxwwxwxxhwwxxxwwwvgvvwwwvwwwvgvwwwwgwwwwwwwwvxwwfwwgxwwwwvwvvxwwwgwwwwwwwwxwvvwxxwwwxwwwxxwxwvvwwwwwxxwxxwwxxwwwwwwwxwwxxwxwwxxwwwwxwxxxxxxxwvvwxxwwgwwwwwxxgwgvwwwwwxvwgwwxxwwwxxwwwwggwwwwxxxxxwwwxxwwwxxwxxwwwxwxwwwwwxwwwwwwxwwxxxxxxwxxxxwggxxxxwxxxhxxxxxxwxyxxvwwuvvxfvvwfgfWvvfVewffvwwwwwwwwwwvgxwvwwwwwxxwwwvxxwwfWwfvgwfwfwgwvvwxxgwwwxwxxwwwwwwwvwwwwwwhxxwwwgxwwwwvwfgwhhwgfwwgvxwwwwwwwxwwxxxwwwwwxwxwfwwxxxxwxxxwxxxfxggwvvwvwwxWfwwxxvffwwxwxwwwwwwwwwwwxwhvwwxxxwvgwxxwwwxwwwxxxxxxwwxxwxwxxwxxwwwxwwwwxxxwwfxxxwxxxxxwxxxwgxxxxgwxffxxwxxwfwfwvwffwwwvwfgwxxwwvwwwwwxvwfwgfwxxgvxxwwhwwwvwvwwwvwwwwwxwxwxwwwxwwwxwxwwwwxxwxwwwxwxwxwxxxhwwxvwxxwxxwwxwwxxwxxxxwwwwwgwwwwwwvwwxhwxvwwwxwwwxwwwwwwwwxxxwwwwxxwxxwwxwxwwwwwxxxhwxhxwxwwgwxxwxxxwwwwxxxxwwxwwwwxxwvwfufffUfvVWvvfuegfWvueWfuffwVuuwefeufgvvfvuefvfvugWwvwwgwgfwwfefvugfvfvfvfvwwvwwwwwwwfwgewgfguvWvwugwffwvwvvwwvwwwvwufUfwffevgvwvwvVfwgwvwwwwwxwxgvgwvgwfwgwvwvwxwgwwwwwvgwwwwwggwgwuffvwgwwgwwwwwwwfvwwhvwwwvwwwwwwwwwwvwwwxffwwfvvfVgvwvwwvUfwvvwvvfwvwwwvvggfvvvgugvwwwWfvvvgvvwgwvgfwwwwxxwgwwwwwwxgvwxxwwwwwwgwxvwwwvwwxxwghwvwvwwvwwvvxwvWfggwvwwvwwwgfwwwwwwwxxxxxfwfwwxwwxwxwwwwwwhxxwvwwwxwwxxwwvxxwgwwwwwxwxwxwvwwwxffwfVffvvgwwwwwfffwwwgvwwwxwfwvwwvwgfvvhwgwwwgwwwwwwvwvwgvvvgwvfwwwvwgwvwwgwwwwwggwfwwwgwvwggwwgvwgwxwwwgvxwwwxxxwwxwwvwwwxxwwwwwwxhvwxwxwwwxwxwwwwwwwvwwhwvwwxwwxxwxwxxwvggwvwwvwxwwgggwwvwwgwxwwwvwwwwxwxxwxwwvuwxwxwxwwhwwwxvwwxwxxwwwxxwwwgvwxwvwhgxwwgwwxgwxwvxxwwxwvwxwxwwwwvxwgxwxxvxhxwwxwxwxxwxwwwwxwxxxwwwuwwxvevvgvvfwfvvwgwgeUfuffgwvvvveffguwwfvvvfUfvggvvvwgwvwwvvvweffwwwwvwffwwwfuvwwfwwvfwwwwwgvwvwwvwwwxwvwvwwwvvwwwwwwvvwwwfvUUwvwfvvvfwvwwwwwxwxwvxwwwfwxwwvwvxxgvwwwwfwwfwwvwvwxvxxxxvwxxxxvwxwwwvfgxwvfffwwfwwwwvufwxwwwwgvwxwvwwwwwwvvwwwfwwxxvvwxwxwwwwwvwxwxfxwgxwwwwxxwvvwxwwwwwwwwwwwwwxwwwvwwwwwwwxxxxgwwwxxwfwwxxwvwxwwxwwxxwxxxwwwvwwwfgvgvwvxwffVffwwvvwvwwvvwwwwwwwxwwxwwwwwgwwvwwwvwxwwwvwvwvwwwwwwwwwwxwxwwwwwwxwwwwxwxwwwwxwwwxwxxwxwvgwwwwwxwwwvwwwwwxwwwwwwwwwxwwgwwwwxxwwxwxxwxxwwwxwxwxvwxxxwxxfwwxwxxxxxxwwxxxxxxwxxvwwgvwwfvwvggwgvwwwfgvfggwwwgvwvfwwgwwvfvffgwvwwwwxgvxwgvvfwvwwfvgwwwwwwxwwgvggwwvxwwwwxxwwwwxwwgwwxxwvwgwwwvwwwxwggvvwwwfvwwgwwwwwwwvxwwwwgwgwwwwxwwwwwgwvvwxwwwwwxxxwgwwwwxxwwxwxxxxwxwwwwwwwwwwggwwwvgwwwwwffwggwwhwfwwxwxfvxxwgfvgwwfwwxwwxwxwxwxwwwwxwwxxxwxxxxwwxxwwwwxxwwwxwwwwwfgwgxwwvwxwggfhwwxwwvwwxwxxvwwwxxwxxxhwxxwwwgwxxxwwwxxxwwgwwwxwwwwwgwxgfwwwwwgwgwwwwwvwwwwwfwwgwgwwxxwwxwvwwwxwwwwwwwxxwxxwfwwwxwxwwxwgwwxxwxxwxwxxxxxxxxxxxwxxhxwwxwxxxxwxxxwwwwhxwwwgfhwfvgxxxgwgxxxwwwwwxwwxwxgwgwgxxxfxwwwxhhxxwxwwxxxxxvwgwwwvgwwwxwxxxwxxwwwxxxwwwxxxxwxwxxxxxwwxxxwwwwwxugwxUvfgUvuwefveffgVguvUVfvVvfwefveUgevfgvvgwuwfguufvvVvwwwvvvvvveewVwffguvvfwvfwwffvwfgvwfvevvfwvWwfxgwvwvwwwgwwwvwwwfwvvffvffffgwwwvfffugwwgwwwwwgxvwvwvwvggvhwwwxwwwwwwvgxgwwwwvgwwffwwfwwxgwvwgwwwwwuwwvwwwwgxwwxxwwwwxwwwwwgvwvvvfvwewggvvwfefvvwwwWfvvvvwwugfwwwwgwuxvwwwffgvwvvgewvgWfwwwwxwwwxwwwwwvwwwxxhwwwxxgwwwwvwwvxxwwxxwvwxgfwgwgwvwwvwvwgfvgxwwwgwvwwvwgfwwgwwwwvwxhxxxwwgwwwwxfwwvwwgwwwxwgwvwwxwwxwwwwwgwhwxxwxhwxxgwwwwhwevvevfewfwvwwwvfVfgwvwgwvgwwwxvgvwwwwgwvwwvgxvwwxwgvwwgwwvgwwfwefwvwvvgwwxhwvxwwwwwvwfwwgwwxwwwvwwxwhwwwvxgxwwxxxvwwwwhwwwvwwxxxwwvxwwwxxxhxxxwvwxwwxwwxwvwwgwvgxxwwxgxxwxwwxxxwwfwwwvwwwwwWgfwwwwwwvwvvxgvvxwfvxwwwxxxwwvxhxgxwwxwwwwwwwwxvxvgwwhwwwwwwwwwxgwwxwxwwwxwwxxwxwgwwxwxwxxgwwwwwxxxwxwxwxxxwxxwxxxhwxxxxxxxwxxwxwwxxwwwwxwwwuwvwwwvvfwwwwfvvwwwfvfvwvxfwvvwwwvffgwwgvvvfvwwxwwxwwfvxwgwfvffwvwgwwhhvwvxwwwvvfvvvwxwwxvwwwwwxwwwwwwwwwwwxgvwwxxwvwxwwwvwwwghwxwxwwxwwxwwxxxwvvwwxwwxwwwxwwwwwwxwwxwxwwwwwwwwwwwwwgwxwwfwvwwwgwwwxxwxvvvwwhxwwvxxxxxwxxxwwwwwwxxxwwwwxvwxvwxxxwwwxwxwxxxwwxxxwhxxhxxwwvxwwwwwwwwwwwvwwwwwwgwxwwxwwwwwxxxfwxgwwwwwwwwfwxwwwxvwxwwwgxwxxgwwwwwwwxwxwxxxwxwwwxxxxwwxwxxxxxxwwwwwwwwwxxxwwwxxvwxwxxxxxwxxgxxxxxxgxxwhwwwwxxxxwxxxxxwxxxwxxxwxxugwggwVevwugfevvwVffvUefefwffvwggevwvwwfvvvvwvgggwwfvwwvgwwwxwwfwvgwgvwveVgwxxefwgwvgwvwwvvwxwgxwxwvwxgwvwxwwwwwfvwxfguffwgvffggwwfvwwwwwxwwwgxwxfvwwxxxvvxwxwwwxwxwvwxwwwxwwwwxwwvwwxwwxwvwwwxwwwwvxwwwwwvgfwewgvwwvwvVgwwwwvvfvxwvwwwwvwvwvxxwwxxxwxwwvwxgvgwwwgvvwwwwwwxwxvfwwwwwwwxwwxwxxwxxwvwwwwwvxwvgxwwgwwwwgvxwxxxxwwwxxxxwwxxwxgxxwxxwwwwwwwwvgvvvvvgwefgvffwgvufwwwwxwwvvvwxwxxwxwwxwxwwfwwwwwwwfwwwxwxwwwwwwxwwxwxxxvwxxwwwvwwwfvxwhwwxxxwxxxxxxxwxxwwwxxwxwwwxxxxxwvxwfgwwvwwwxgwwwwwwwwxxxxwwxxxxxwxxwvvwwwwwwxxwxxxxwxxxxwwxxwgxxxwwvwxwwxwxhvwwxxxwwxxxxxyhvxxxwxugwwfvvwgfvwffgwwxwwxwwwgvwfvwgvfgvffgxwxwwwwgwwwgwgxwxwwwxwwvwwwfvwwwwxwxwwwwgwwgvvwxxwxhwwxxxwwwxgwgwwwwwvwwwwxwwwgwwwwhgwxwwxxwwxwwwxxxwwwwwwwvwxwgwwxxwxwwfvgwwffggvwwwvhfvwwwwwvfggwwxwxwxgvvwwwwxxxwxwgwxxxxwxxxxxxxwxxwwggwwwwwwhwwwwwxwxwxwwxxxwxwxwxxwhwwwwxwxxxxwvxxhwwxxwwxwwwwvwwgwwwwwwwxwwwwxxwwwvwwxxfwwwwwxwxwwwwwwwwwxxxxwwwvwxwwxxxxxxxwwwwwwxxxxwxwwxxwxxwxxwfwgwxxxwxwwwwwxxwxvxwwwxxxxxgwxxwxxvxxxxxxwxxvwwxwwxwxxwwxxwxxxxxxxxxxwxxwxxxxxuwvgVvvwevewUfVvwVffvufvVwfffvwvgwgwwgwfwvwgVvvvwgwfvvgvwvwwwwvveevwvgfvgvfvwwwwwwvwwxgwwwwwwgvwwgwxxwwwwvfwvvfffwffwvwfWvvwgwvwwwxwwwgvfwvwwwxvwxwwxvwwwgvwwgwwwwxwwgxwggxwxwwxwxxxxwwveVvwvVwfvwfwwvxwvwvwvgwvwwvgwwgwgwggwwwxwwwwwgvgwwwwwvvvwxfgwwwxwwwwxwwwwxwwwxxxxwxwwwwwwwwwwgwwgwwwwwwxhgwxwwwgxxwxwwxwxwwxxgwxxxxwwxxwxwwwwwwevfvvggvgfuwvgvfwfvvwxwwwxwxwgvvwwwwxxwxxwfwvwwwwwwwxwvwxwwvwxwwwwwwwwvgxxxwwwwfvwwwwxgxwxxwxwxxwxwwxvxwxwxwwwxxxxwxxwfwfwwwwwwxwwwwxxwwwwwwwxxxwxwwgwxxwxwwxwxxxxxxxwvxwwwxgxwwwxwwwwxxxgxwxxxwxxyxgxxwxxuwvxVffvUuvwUfevUfvvVWvvegfefvwVvfVfWvufgvvevwUVvvfvvhvuwwwgwgvwgffVvevwuvfgvgfwgwwwvvvwvwgwufvfgfgvuwegwgwwwwwgggvwwwufwgffgfffufwvvwwwfffvwwxwvwxwvwxvgwwwwwxvvgvvhxgvwxwwxwwwwxvwwwfvwwfgvwvwggwwvvwwwhwwvvwwwvvfwwvwwvwvwhwvwwwwwwxwfxxwwvwgvvgvwfVfwfvfwvVVwgwfwfuggfgvwfVgvgwwwufwvwwwgwfggwwwggwwfvwhwwwxxwwwwwwwwwwwxxhwwgwgxwwwwhwwgwxwwvxwgxxxvwvgvvwwfwwxwwwwfwhgxwwfwwxxwuwgwwwwwwwwwxwxwgwwwxwvxwwwwxvwwxxwwwwxwwvwvwwwxwwwhwhxxwxwvwVvvVffefgwwvvwvvVfwvvwwwvwxwwwxvgvgwwxvvwwvwxwwwwwxwxgwvgxvwwxwfwwufgwwxwwgwvwwwwwwwwwgvvvvwgwxwwwxwwwgfxxxhvxxxwwxvxwwwwxvwwxvwxxhwwwxwgxxxxwhwxwhwgwxxxwvwxwxwwwwwxxxvwwxxwxwwxwxwxhwxxvwvwvwwfvwhwwwwfewhhgwxwggwvwfwwxgwxwwxgwwxwxwwxwxwwxwwwwvxwgwwwwwwxwwhwgxwwwxwvwwwxwxwxwxxxhwwwgwxwwwvwxwxgwwxxwvvwgxwxxwwwxxxxxxxwxxxxxwxxxwxwxxwwwxwwwwwwwfvvwfvwffgwvwwgveffuevfufwUeevfWvfgvwvfgwvvvfggwgwgwwfffveggwwxwwwwvwxwwwwwwfvfvvvxwgwgggwwwxwwwwxwggwvvwxWffwfwwwwvffvufwwfgvfwwwwwwxwxwxgwxwwxwwxxgvgvwxwwwwwwwwwwwwwwwwwvwwxxxwwxwwxwxwhvwwwfggfvvwwwvfwwwvvwwwwwgvwwuffevvwvgvwwwwwwwwwvvwggwfvxwwwwwwwwvxwxxxwxxxvwvwwwgfwwwwxxwxwxwwwwvwwwwwvwwwgvwwwwwwxwwgxgxwxwwfvxwwxxxwwwwwwwwwwxxwxxwwxxwxxwxxwwhwwwfVWvvvgwwgwguuwvwwxvwwvvwwwwvxwwvwxwwxwwwvwwxxwwwxwxwwwwvwwxxxwwwwxwxxwwgxwwxwwwxwwwxxwwxwxxxxxxhhwxxxxxxxxgggvwvwwxvwwxwggwgwxxwxvwwvwxxwwvgwwxxxxwvvxxgwxxxxxywxwwxwywwxxxwxwvwxxxxwwxwxvxwxwxxxxywyxxwxxwwxxugwggvwvvvgfuvfvuwfffuvwvgwvwgVuvgefvwwgwfvfwefVgfeggvvwvgwgwwvvwfwwwwwveVxvwgwwwvvvgwgwwwwxwgfugwvgwwwwwwwwwfgvvwwefgvgfvgwwxwwfwfwwwxfwvwxVwvvwwwwwxwxwvvwwxgwwvvwxwxwhwwwwwwxwxxwwwwwwxwwwwvfvwwwwwxvVgwwwwgwxxwevwvvwwwvwwwxfwfvxwvwvwgwwwvgvwwwwwxwwwwxxwxxxxwfvwwxwwwxvfwwwxxvgwgxwwxwwwwxwwwhwgxwwwxxvxwwwxwwxxxwwwwxxwwwxwxwvxxwwxwxxxxxxxxxxvgvwfguwwwxvwvffwvwgvwwvggwgvvwwxgvvwwwwwxwwwwvwwwwwwvwwwxgwwwwwwwgwwwwwwvxxgvxwhwxwxwxxwwxwxxxxwxwwxxxwxxxxxwxwxwwvwwwwwgwvxxwxwwwxwxwxxxwwwvxwghwwxxwwwwxxxwwxwxxwgwwxgwwxxxwwvwxgxxxwwxxxwhxwxhwxwwwwgwvwwxggvwwvwxgvgvwwvvwwwvxxwwwxgvgwwvxwgwgxwxwwwwwwwwxwwwhvxwwggvwwgwwwwwwwxwxwwgwxwwgvwxxwxwwvwxwvwxwwxwxxwwxxxwwxxxwxxxxwxwxxhgwxhvxwxwxwxxxxxxxxxwxxxxwxwxxwwwwxwgxwwxwwxxxwxwwwwxwwxwwxxwwxxxwwxxxwxxxwxxwxwxxwxwxxxwxxxxxxwxwwwwwxwxwhxxgxxwxxxxxxxxxvxgxwxwxxxxwxwwhxxgxwwwwvwxgwwwwwxxxxwwxwxwxxwxxxwwxxxxwvgxwhvxwxwwwwxxxxwwxxxxgxgxxxxxxxwyxwwxxxxxxxxxxwwxxxxxwwwwxwwwxxxxxxhxwhhwhxwxxxxxxxxxxxhwxxxxxwxxxxxxxxxvwwfvvfwwfgvfvvxwvgfgvfwwwfvvwffvwvwwwwwvwfgfwwwwvwwxgvwgwwwwgfwvwwfwwwwgwwvwwwwvvfvwvwwwwxwvwwwwvwwfwxgwvfwwfgvwwwwwfgvwwwwwwxvwwwwwvwwhhwwwwvwwwwwwwwgvwwwwwwwwwwwwxwwwhwwxwwxwvwwxwwwfvwvxwwfwvwwvwxgwwwwwvfvwwwwwwvfgwvwwwwwwvwgvwwfwwwgwxvxwwwfxxwwwwxxxwwwwxwxxxwvwwwwxwgwxwwwwwwwxwwxxgwwxwwwwwxwwxwfwwwwwwxwxwwwxxxwwxxxwxxwxxxwxwwwfwvfvxvwvgffwgwxwwwwwvwwwwwwvwwwwxwwwfgwwwwxwxwfvwwwxxxwxxwwwwwwxxwwwwxxxwwwwwwwwwwwxwwxwxxxxwwwxwwxxxvwxwxwwwxwfxxxxxwwxxxwxfwfvxwxwxvwwwwwwxwwxwwwxwxwxxwwwxwwxxxwwwfxxxxwwwwwxxwxxwwwxxxwgxwwwxxwxwfwxwxwxxxxwwxxxwxxxxxwxwsxfvxfwwwvvgfvxgvwvvgwwwwwvvwvvgVDDewwwwvvgwwwwwwwwvgfwwwgvwvgwwwwgvwgwgvvvwwwgvwwwwgwxvgwwwgxxwwwwwwwwwwwwwwwwxwwwwwwgvgfwwwwggwwxwwwwwwxxxwwwwwwxwgvgwwxwgwwwxwwwvwxgxwwwwxfwwxgwgvvvxwwwwvwwhgvwvvwwgwgwwwggwvvvxwwwwxxwxgvwwwhwxxxxwwxvgxxxwhwxxwhxwxvvwxxwxwwvxwwwwxwxvwxvwgxxwxwhwxwwwwwwxwwxwwxwwwxvgxwxwxwxwwwwwwgwgvgfwwwxgwxwwwwwwwwwwwwwwwwfwwwwxwwxwxwwvwxwxwgxvwxvwxgwwxxwwwwxwxwwwxxwxwxgwxxffwwwwxwxwxwwwwwwwwxwwwxxxwwwwwxxxvxxxxxxxxxwxvgwvwgwxvwhxwwwxwwwwxxxgwwwwxwxwwwwvxxxxvxxxxxxwwxwxvgxwwxxxvxxxxxxxxxxxxwyxxwxwwgggwwwwvvvggwwwwwggwwwwfggwwgwgwwwgwwwvwggwvwxvxwxxwwwxwwxxwhxwvxgwxwwwwwwwwwwwwxxwxwwwwwwwwvxwwgwwwwwwvwwgxwgwgwwwxvgwxxxwwxxwwvwwhwwwhxxxxxwxwxxxgwxxhwwgxxwwxxhwwwgwwwxwwwwwwwwxwwwxwwxwxwwxwxwwxxwxxwxwggwxxwxwxxxxwwxwxgwwxwwwhxwwxhxxxwxxwxwwxwxxwwxxwwxgggxvvwggwvgxwwwxvxwxxvxxwvxwwwwxwwwwxwwwxwxxwxwwxxxxxxgxwxxxxwwwwwxxxxxxwxwwwwgwxxwwwxxwwwxxxwwxwxxwxxxwxxxxxxxxxxxxxxyyxxxvwwvwvwfwvxvvfvwvwwvfvvvwvwwwvvwfvfgwwvwvwfwwwvwfvxwxwwwwvwvwvvwfwfvwwwwwwwwwxgwwhwwfwvvfvfvxwwwwwwfxwwwwvxwvvvwgwwvfwgxwgwwwwwwwvwwwwwwwgvwwwwvwwwwwwwxwwwfwgvwwwwwwgxwxwwvvfwwgwwxhxwwwvxwvvfvgvwfwwwwwgvwwxgwwxwwgvvvwwwwwwwwwwxwvwxwwgxxxxxwwwwwwwwxwxxwwxwwwwwxxxxxwvwwwwwwvvwwwvxxxxwwwwxwxxwxxxxxwwxwwxwwhhxwwwwvxwxwxhxxxwwhxwhwwvwwgwfwwwwwwwgvwwwwvwwwwwgwfwwvwwwwwwwvwwwxwwwwvfvvfgvwxxxhxxwwwwwgvwwxxxxwwxgwfwxxxxxxwxxxxxxxxxxwhxwwxwxxwwxwxwxxxxxwxwwwwwwgwwwwwwxwxwxwwxwfwwwwwvwxwwxxwwwxxwwxhhxwxwxxwwwgwvvxxxwxgwwwxxxxwxxxxwxxxwxiwxwwxxxxwxxxxwwxwxxxxwxwwxxgwwfeuvffUgefuuffuffguuVguvffweuuwegffgvvuvwweVfufuvvfuvxwwvfwfwvfUwfvevgwfgfgggwvgwwvwwwwvvvvuvfgvuvwwvvfvvgvgvvvwwwvfwffUwvfewvgvwwwwfVfvvwwwvwxwgvwvvvwwvvwwvgwvfwwwwwvwwwwwvgwwufvwvvwwvwvwwvvwxgxwwwvfwwfwwxwwwwwwfwwxwvwfwvgfwufvwwwwffVvwwvwgvffwwfgevwfvwwuvwvwwwfuggvwgwuwvfguwhwwwwwwwgwwgxgwwxwwwwwwgwwvxwwwxvgwwhhwwvvwvwwwfvwgfwvuwfwwwwwvwhwgwwwwwwwwwwwggwxwwwwwwwwwwxxgwwxwwwxwwgwwxvwhwvxwwwxwwwwwwxfwfffffvwvwvvwVffvwwwwwwwwwfgwvwwvfgwwwwvwwvwwgwwvwwwvgvgvwwvwxwgvvwwwxwvwwwwxwwvwwwvwwxwxwwWxwwwwwvxwwxxwwwhwwwxwwvhxwxwgwxwxwwwxwxxxxwwvwxwxwwvwwwxwvwwvwvxwwxvvwvvvwwwfvwwwwwgvvwxvwwgwwxggwfwwxvwwxgwxwwwvvggwwvwvwxxwxgxxwwwxwwwwwwxwvwvwgwvgwwvwwwhwwwwwwxwwxwxxwvwxxwwhwxxwwwxgwwwxxxwxxxxwxxwwwxwxwxwxxwxwwuwwxfvvwVvvvefUugxgvwvfgwfgfwgvvxvfgfWvvvvgvfVUvfvwfwgvwgwvffvvffwwwwwfwwxwwwvfWwvwwgwgwgwvwwxwwwwwxwwwfwwwfUgvwwfvxwgwUvwwwxxgvwfwwwwwvxgxxxwwxxwwwwwwwwwxwwgwwxwxwwwwwwwwgwwxxxxwxwwwvwvfwefffvuwvggwfwwwwwwwwwfwvwfwwwvwvgwwwwwwwwwgvwhwvhvvwwwwwwwgwvwwgxxxxwwfxwxwvwwvvwxxxwxwxwwwfwvwvwwvxwxfwwxwwfwwwgxwwvgxxxgxxwvxwxxxxfwwxgwhxxwwxwwxxwxxwxxwwxxxwxgwwwffvgvwvvwwvfeffwwvvwwggwwwwwwwxwxwxwwxwwwvgwwwxvxwwxwwwwxxwwxwxwwxxxxwwwhwwwwwxwwhwxxwwxwxwxxxwwxxwwwwxwxxxxwwxxwwxxfxxxxxwxxwwvwwxwhhwwwvwwwgvvwxhvwxwwwxwwxwwwxxwwxwwvwwxxxwwxxxxxxxwwxwxwxxwxwwxxxxxxxwwhgwxxxxwwwxxxwxxwxwwxxxxxwxxxwwfwwwwwwwfwwvVevwwwwwwfvvwvfvvgwgwwvgfwwvwwwwvvwvvwwwwwwgwvvgwwwxxwgvgwvvvvwwwxvwwwwxxwxwxwxfvvvwvgxvvvvgwxxwgvggvwwffwvwwwwxgwwwwwxxwgvwwwwwwwwxxvwwwwwwvwvwwwxxwwwwwgvggwvwwwwggwgwwwwwwgvwvwwwwwwgvvgwxvwwxwvgwwwwwxxxxwwwwxwwxwxvwxwwwwwgwwwgwxwwwvwwwxwwvwwwxxxxwwwxxxxvxxxgxwwxxwxwwxwwwwwwwxwwwwxwxxfwwwxwwwgwwvvwxgggvwxwwwwxwxxxxwwggxxxxwxwxwxxxwhwwxxxxxvxxxxxxxwwxxwwwwwwwwwxxxxxwwxwxxvvxwxxwxxxxwxxxxwwvxwwgfffxvxxxxxxxxxwxwwwwwxwxxxfwwwwwvwfwvvfwgwwwvfwwwwwvwwwfwwwfwwwvwfwwwwwwxxwwxwwwxwwwxxvxwgwwwxwxwxwwxwwwwwxvwxfwwwwfwxwfwwwffwxxwxxwxxwwwxwwxwwwxwxxwxxxwxwwxgwwwwwxwwwxvwwxwwxwxwxwwwwvwwxxwwxxwwwwfxxwxxxwwxwwxxwwwxwxwxwxwxwxwwwwxxwxxxxxxwxxxxxxwwwwvwxvwwvwgwwwwwwwgxxwwwxxvwwwwxxwwgwwxwxxxxxxwxxwxxwwxwxxwxxwwwvwxxxxwxxxxwxxxwxxxwxwwxxwxxxxxwxvvwwwwwgvwgvxF5StwgvwfwwwwwwwwgvwwwxwwwgvwwvvwxwxwwgvwwwwhgvxxwwwwwXgvwwgvwwwwwwvxxxwwwwwvwwwwwwwvwvwxwwwwwggvvxwxvwggvvfwwwwvxwxwwwxwgvwvwvhgwgxwwvgwwwwwwvwwxwxwwvxhwgwxwwwwvwxxwwxxxfwwwwwwwXgvxwwwwwhgvwgwgwwwwwgwxxwwwwwxvwwwwwgwwvwwwwxhWuxwwwwxxwwhxwxxfwwxwwwwhhwwwxwwwwwwgwxwwvxwvwwxhxwxwwxwxwwwwwgxfwxxxwwwxxxwxxxxxxwxgvwwwwhwwwwwwxxwggvvxxwxfvggvvwvvwwfxgxwwxxwwwwwvhwwwxwwwgwwwwvwwwxwwgwwwhwxhwwvxxwxwvwxgwwwwxxxwxgvxxwwwxvxxwxhwgwwwwvwxvhwwwwwwwxxxxxxxxxwwwwhwwwwgwwwxhvwwwvwwvwvxwxxwxwwxxwwwwxxhxwhwwxwwwwwwwxwxgvwwwfxwwwxxxxxxxxwwxxwwxxwwxyuwvgfuvwgvvxvgwgvwvfffugWfvwwvvevuveefwvwwvvvwegfvefvffvwvwvwwwwvvewwwvwvgfwwwwwwxxwewgvffwggwwvxwgwwwxgwwwxxvwwwwwevfvvwxwwfgvvvfvwwwffwwevwgfvwwwwwwwwwxwvwvwwwxwwwvwwwgwwwwwwwwwwwwxxgxxxxxwvwxveVfwwwvwxwggwvwwwxwgwvvwvvufvwwhxwvwwvgwwxwwwwwwvgvwwwwwwwwwxxwxxxxwfwvwxfgwwwxxxxxwwxwxxwggwvvwvwwwwxxxhwwwwwxwwxxwwwwwwwxxwwxxwvxwwxxwxwxxxxxwxxvvvwvffwwwxgwxfWvwwvvxvwxwvvvvvvwvvvwxxwwwwwwxvwwvwgwwxwxwxwxwwwxwwwvwxwwhxxgwxwwwvvxwvwxxwwxwwxxxxxwxwxxxxxxwwxxvvxwxxwxxwwxwwwwgxwwxwgwwwxwwvxxwwxxwwwxwxgwwwwxwwwxxxxxwwwvxxwwwxvwwwxxwxwxxwxxxxwxwxxwwwxxxxxxwwxxvwvwvvwwgvgwwwwvwwvgwwgwvwgvgxxwwwgvwxgwvwwwxxwwwvxwwwwxxwwwwxxwxwwwwxxwxwxwwxxwwxxwxwwvwwwwxwxwwvxwxxxwwxwxxwxwxwwwwwhhwwxwxgwxxvxxxxvwwwwwwwwwvxwwvwwwgwgwgwwwwgwwwwwwwvwvwxwxxxwwwxxxwxwwxxxwxxxxwgwxwwhgwwxxxxxxwxxwxxwwxxwxwvvwwwwwwxwxvwwxwxxwwxwxwwxxwwwwwwwwxwxxxxxxwxwxgvxxxxyxxwxxwxwvvxxwwwxxwvxwxxwwwwwxxxxwxxxxxxxxwxwwxxxxxxxxxxxxwwwwvfvwvfVfvvwwvwfvffeugffuwvvfwfguvwgvUVVvgvvffvgwvwgwwwvwfwfggwwwwfvvwvvwwwwgwgwuffwwwwgvgwgxvwVvvwwggwwwwfxvwgwvwfgwwfxWfffuvfwwxwxwfgvvwwwwwxwxfwwwxxwwxwxwwgwgwwwwxwwwwwwgwgwwxxxxwwwgxxwxxwwxwxvfxvxwwwxwwwvvVwwwfffwvwvwwwwwffgwwwgvwxgvvwwwgwvwwggwwwxxwvwxwwwwxxwxxgwwxvwxwwwgwxxxfwwwxwwgvgwwwwhwgwwwwwxwwwwwwwwwwxxwvxwwxwxxxxwwwwwwwwxxwxxxwxwwwxwwwxxwwxxxxwwwwwwvvggxvfuevuuwvwwwxvwwwwwwwwwxgvxxgvxwxwgvvxwwwgwxxgvwwwvvwxxgwgwxwhwxxwhgwgwgwxxxxwwwwxwvxxwwxwwxwxwwxwxwwxwwxxxgwxxwwwwwwxgwwxwwwwxxxwxxxxxwwgwwwwwxwwvvxxxwvxyxwxxxwhxxxywwwxxwwxxxwxxghhwxxxxxxxxywxxxxxyxxxwxwxwvwwVuvwWvfwugVgvfwfwwwfggwfwwvwwguvgvwwwwwwvwwwwwwxVuvwfwfwVUvwvwvufwwwwwWvgwxwwvvvgvuvwwvwwwxxwwwwwwwwwvWvfwwVUvuxgwwwxfgwwwvwwwwxxhvwvwfwgwwwwwxwxxwwxwwwwxxugVwvwwwxxxxvuvwwxwxxgwwgwhwxxgwxgwwwxwxxgvfwvufwfgwwvuvwwwwwwwgvxwxwvwwwgvxwwxvxxxxxxfwwwwwwwvwwwxwxwwwxxwwwxxgwxwwxwwxxwwxwxwwwfgWvgwwxxgwgvxwwwxxwwwwwwgvwxvxxwwwwgwfwwxwwxhwxwxxxxxwwwxwxxxwxxxxxwxxwwwvwvvvvwvwgwwvwgwwwwwwwwvwwxwwhwxwxxwxxxxwguvgvuvfwghwxwwgvxwwwgvxwwwwxwwwwwwwxxwwwwwwgvwwwwvwwwwwxgwxxwwxwxvxxxxwwwwwwwwwxwxxwxxwwwwwxxwxwxwxvwwxwxxhwwwwwxxwwwwwwwwxwvwwwwxwwgxxxwxwxxxwxwxwwwwwwwxwwwxwwwxwxwxwwwwxwwxxwwwwxwwwwxwwxwxxxwwxxxwxwwxxwwwwxwwxwwwvxxxxxxwwwwxxxxwwwwwxxxwxxwwxwxxwuffwefwvcefwfefvfvvvwVewcfevfuvwUwwfuwwwwvvwugvfggvvvwwxfvvvfTcTefvfFVfvvvwfwwxVuuwwGVhuwwwvggwwfwwwgwwgfxwwwvwUvvfwvwfVfwfwwwfgvwvggwVfugwwvwwwvwwvguwwxxwwxwxxvvfwffgwfvvvwwwgvvwwgwwwwxwwwwwwwxxwwgxvwwwwvwfvvvfffwwwuTewwwwwefVwwwxwguuwwgwwwgvwwxgwfwwwwwwgxxhxwvfwwwwvwgvxwwwwxwgWwhxwwwwwxhwxgxwgxwxxwhxwgfvxwvwwvgwWfuwwwwwwwVwwwxwxxwwxwxgvxxwwgxwwwxxvwxvwwxwwvxxxwwwwxhgwwxxxgxxxxwwxvwxxdvwvvvwvwfwfwvtvvwvwwvwwwvgwfvwwwvggvhxwwwwefvwvVwwvfvwwwgvwwwWvwwwwwgwvwwwwvwwwwwxwxwwwwwgwwwwwwvwvwvwwwwxwuxwxwwwxwwxwxwwwghwxxwwwwwwwwxwwuxvwwwxwwwvxvwwwwwxxwxwwwwxxxwwwwxfvvfwvxgvwxwvvvwxwxwwxwhxxwxxxvxxwgwhwwxxwwwwwwxxgwwvwwwxxwwwgxwwxwxwwwwxxxxwwgwwxwxxxxvgxwwxhxwwxxgWwxxxxwxxxxwwxxfwxxwwwwwwvxwxwwxwwxwwwwwwvwwhugfgwwxEeuwvgvGvevfgwweggvgwvfgggvwwwuwwxwvvefwwwwwwwwwFfvvfffwUgfufedvwFEwhwwgvuxwwwudVwvwwwwvvwuwwhgvehwvwgwxwwxeVffgvwgwvgfevxegVwwvwwgwwwfwvvwwxwvxwwxwwwxxxwxwxwffVvVvfwgwwwWghgwwxwWgwwxwwwwvvwvwvxgwwwwxwxfwwvxwvwwxwwvvgwggffWfwwxfdugvgvwwgwwwwfvxwxfgwwwwwwwwxwxwwwgwxvvwwwwwgwhwhwgfxwwwwwwwwvwwwxxwwwwwvfggxwwwxwVuxgwgfvfwxgvwgWhvwxxxvwxxwwwxxxxwxwwwwfgwwwwgwwwwhWxxvwwwxgwwwwxxxxwwvwxxxxffvwvwwuwwwxufewwwxwwwgwwwwxxwwwxwgggghxxwvVdwvwfwgwvvfwwwvufhwwvwwwwxgvwxwwwwxxwwxxvvxgggwxwvxwwwvwvxwwwwxwvwwwhxwxwwwxxxwgxwwxhgwvvvwwwwwvxwwxwwfvvxwgxwwwwwxxxxwgvxxxxxwwgwwwfvwxggfwxwxwwvhvwgwxxwxwwxxwxwxwxxvwwwwwwwvwwggxxxhwvwgvxxxwxwwvwwvwwwhxxwwhhwwwwggwwxwxwgxxxwwxwxxxxxwvxwwwwxxwxwwwwxwwwwxxxxwwwxwwwxwwwxxxxwcffvVvuwffvffvVfufvgvgv6UuvwwfevufFdfvxwwfvvwvfguwvwwwefvwfffVveueGfuufwvvffwwfwvddvvfvveVeecevuwvfwwwvvfwvvwvwwwwwfhwfevvffVfvVeuvwvwvVFfwvwvwvgfgwgfVevgvggfwxwwwxgwvwxvgwwwwwufVvegwufvwwwwvwffgvxgwwvgvwhwvfgvwvwvwfgvwwwfwxgwwwxxwvwvvfvgwuuvfgwwveewvwgwwfgvvfvwwwwwtfvvwwwwvwwggwvvwwgwvvwwxwwwwgwwxvwVgwwgwwwwgvwxvvxvwwwxwwwwewwwwfffwwwgvwwwwvvvvgvgwvwxwwwgwwwwgwxxwwwwwwwvwvwgwwwwwwwwvwwwewvwgfwxwwvwVvwgwwxwxwgwxwvxxxvvfwxwxwxwwwvvvwfvvgwwwuwwvUfvwvwwvvwxvggvwwwxwwxvvvwwwwxwxwwffwVvgwwvvwffvwwvgwhxgwwwwvwvwwwWwxwxwwhgxhwwwwwwwvwwxwxwwvvxvwgfwxxxxxxwuxwwxxwwwwxxxwwxvwwvwwwwwvwwgvwxgwwxwwwwwwhxwwwwwxwgwgwwxwxwVvwwwgwwwwwgxxvvwwwwxxwxwwwgwwwhxxwhwvwwwhwxwgxwwwgwwwfwwWwwwwfwvwxwxvwWwwwghxwvwxwwwvwwxxxvhxwwvwwhwxwgwxxwwgwxxxwwxxwxwxwvxwwwwwxgxwwxxwwvwwwwwwwxwxwxvwwxwwwxwxtfwwfwxeuwgfTuvvfwwvefewfwwfvvgvfgwgvwwwwvdffuegwUvvwVvwwvvwvfUTvwwwweTvuwvwwfUgfwvvwuwggvvwewfwvwwxeevgwwwwvVfwwwwwfvwgwwwwwwwUeVwvwwwfwwwwwvfwwwwwxwwxEgugvwwwwwxvfUwwwwxVevgxgvwfwwwwfvwvgvxwwwvfwwgwgxxwwwwhevvvwwwvggwVfwggfwvwwwxuevgwvwwwxvwfwxwfvxwwgxwwwwwvwwwxwwwxxgvwxxwggxwwxwwwfxxxvwwxxwvwgwvwwwvvgvxwwwvwwgwwgvvwxwgxvxgwxwgvwgvxwwwxgvxxwwgxxxwxvxxwxxwxwwewvwwwvwxvfvvgwwgwxuwwVvxwwxxvxxvvevevwvexgxfvwwxwvwvwwwwvwwvgwwwwwwvWwwxxgvxwwwxxwuwxwxwvvxwwvxwwwwxxwvvvwwwxwfxwwwwxxwxxwfxwwwxwvwwvwxwxVwwwwwvwvxxxxxwwwvvwxxwxvwwxxxxxwwxxwgvWxwwfwxxVxwhxvwvwxxvvwxwwxxxxwwwxwxxwxwwwwxwyvwxxwxxxvxxgxewxxthgwfvwwWvvwvgvguvgvfgvfFTvfgvgguwhvgwwvgWwvxfWevgwvwwvvhvxwVvwwvfwfgvwgwwxwVgwvgvfggvwwVevfwwgvwgwwgvxgwggvvwgVvvwwgwvwgwwwgvggfwwwwxfFTvfwwwwgwgxwxvgxwxwhwxxxhwwgwwgxwwwwxvgvgwwwgwvwxvwffvgwXewwwwwwgwwwwwwxxwwwwwxvwwwwxwwwwwwwgvvwwfwhggwvwwwwwwgvvwwghxxwwwxxxgxgwwwxxwgxxxgwxxwwwwwxxxwhwgxwgwwxwwxxwwxwghgwhxxxxwxgfvgwwwwwxhwxwwwhxwxhwxvwxhhxwxwwwwxwxxwwxxxwxxxgwwxxxwwxxxhxxwwxxxvxxxxxxwwxxgwxwvwgwxgWugwwwxwwhwwwhwwwwxxxwxwxwwxxxwwgxwgvwxwxxwfgvfwxwwxwwgwxwwwxxvwwwwwxwxxwxwwxwwxxxxwxxwwxwxgxxxxwwwxwwxxwxxxxxgwxwxxxxwwwgwwwwxxxwxxxwxgvgwxhvwxxwWwxwxxxwxwxxwwxhvxwxwxhxhxXgwwwwxxhxxxwxxhxwxxxxxwhwvxhwxghxvhwghxwxwxwwwwwxxhxwwxxwxxxxxxxhxwxxxxxxxwxxwxxwgxwwgwgwwwgwwVuuwvwgvWvvwVwvgwvgwwgwwxwewWwwwhwwwxxUvuwvugvfgwwwVwgwgwwgvuvwwxvWUvgwugwxwwwwxwxwwwvgvewwwvwvgwwfWUwwxvgxxwxugfgwgwwggxwxxwwwwxgxwwxwxuwWevwgwwxvgwxwwxhwxwwxwwwwghhwwwwwgwwxwwwwwgwxwwwwwvugwwgwfvwgwwwwxgwwfuvxwwwwvwwvwgwwwwxxxxwwwvxwwxwwxwwwwwxxxwwxwwwxxxwvxxwwwvgwwwwxxWwfwxxwgvxwwwwhxxxvxwwggxwxwxwwwwgwxxwwxwxwwxwwxwwxxgwxxwgxwxwxxwxwxwwvwwwwwwwvvfwxxxwwvwvwwwwwwxwwwwxwwwhxxwvguggvgwwVgwwwwwxwuwhgwhwxwwxwxvxwwwwwxwwgwwwxwwxxwwwxwxxxwxxxxwwfxhwwwwxxwxvxwvwwxwwwwgwwxwwxwwwxwxwwwwwxwwxxwwxwwxxwwgxxwwwwwwwwwxxwhwwxxwwvwwwwwwwwwxwvwxxwxwxwwwwwxxwxxxxxwwxwwwwxxxxxwwxwxxwwwgwxwxxwwxgwxxwwxwwxwwwwwwwxxwwxxwtvgwgwwwVfefwwVfvvggeffvwvfvvwwgvwvVevwvgvwfwvwvvgwwwffvvvwgvvgewwwfgfwvvwwffwwwwxuwwwvwvwvvvwghWwwwwvwxwwwvvvwvvwwvgfVwwvggwwwwVvvwwxwgfwwwxffVVxgxwwxwvxvhwwxhwwvwwgvwvvwxwxwgfwwgvwwwwxvvxxwwgwgwvwxwwwxwwwxxxwgvwwxwwwwwWvfgwgwwwwxwwwwwxvwwwwxwvfxwwvwwvxxwxxvwwwxxxwwgwwxxxxwwxhxwxvxwwxwwwwxwwgwxwxgwwxvxxgwxxwwwwwwgfwxwwwwwwwxhwwwgWxxwwwwwxxwgxxwxxxxwwwxwxwwxhxwxwxgwwwxwgwfgvxwvwgggwggwwvgxwwwwwwwwfxxwwxwwwxxwxwwwgwuwwwxwxwvvwwwwwwxwwxxwwwxwwvwwwwwxxwxwvhvwwwwwfxwwwxxxwxhwvwwxvxxxxxxxxxxvxwgwxwxwwxwwwxwwxwxxwwxhvwxxxxgwwxxwwxwxxwxxwwwwhwxwxxvgwxxhwxwgxwxhxwwwgwwvwxwxxwxxgwxwwxwxxwwxwwhwxwxgxxwxwwxwxwxwxxxxxwwxxxxxxwwwxwwwxwxwwwxtwgxvwgwfwwwffgfwfwfgvgvgfgwvwwwwHgfwwgwwvvxGffwggffwwgwwwgwfxgffvfwwggvwgxgwvwwwWwwgwvwwwxgvwxvwgxwggwwvxwwxfwvwGgfuwwwvwgwGffwwwwgvwwxwggvwwgwwhxwwwwwxxxxwVwgfwwwgwwwwwwwvhxwwwxxwwwvxxxwxxwwxvwxgwwgxwwwxgwwwxxvvwwXxwvXxwxgxwwhwvvxwwwhgvwxwvwwwwwwwxxxgwwxwxwwxwxxxxwxxxwxgxwwxfvxvvxhwwvgwwxxxxxwwwwwwwwwwwxwxxxwxxxxwvxwxxxxxxxwvwwwwggwwwwgwgvhwvvwvgwxwgwwwwwxwxwwhwxvwwxwwwxxgwvwwxwwuwhgwgxWxwvvvgwwwxxgxwgxxvxxxwxwwwxwxwxxwwwwxwxxwwwxvxwwhgxxxwxwxxxxwxhwxwxxwwxwwxwwwwxxwxxxxwxxxxgxwwgvxwvvwXxvewwgxxwwxwxwwxxxxwwwxvxxwvxxwgwxxxxxxgxxwxxwxxgxxxwxwxwwwxwxxxxwvxwxxwxvvxxxwxxxwwxxxdgvwTevwUuewTfevfwwffwfevgvvvwTuvweVvfwgvffwvffwwwwwgvwwwxxxggfwUdefefvwVffffwgwggwwwwwvvfUdeVVvfvhwWfwwwwwwwwwwxwwevuffevwfgwVvdvvvwvfwvwvwxwwxxwgwwvfwwwwwwgwwgwwvxxwgxwvxhffeefevewwxgwwhgvwwwwuwwxwwwgwgwwgvvwWwxwwxhvxvxwxwwxwwvwwxgeVwtevwfwfwWdfwgwWuVvgwvWvevwwwwgwgvxgwgwWvgvgwvwxxwwwvwwwvwwvwvVvxxxxwgxxwwwvwxwwewwhvwwxvwxwxvwwxxwwvgwgvgvgvvwwgwvggwgvwwxgxwwxwvgwwwwhwvwwxwxwxwxwxwxwvwxvwuxhwwwwwgvwxwgwwwxwwgvwhxxwwhxhwwhxevuwufuvuwwwguwevwgwwwgwuwwwxwgwvvuwwwwwwwwwxfuvufffwfvwxwvvvxgvvwxwwggufwwvwwhxwwwhxwwxxvxwwwwvvwxwxwwxwwwwgwwxxwwwwxwxxwxwwwwvxxxxwwxvfwwwxwwfwwxwxwgwwgwwxxxwwgvfwxwwxuwwgvvwgwwxfgwwxvxwwwwwwwxxvwwxwxxwwwwxxwwwwgwxwwggxwwwxxwxwvwxxwwvxwxxxwxwxxgxxgwxxxvxwwwwwwwxwwxwxuwwwwwxxxhwxhxxwxwwwxwhvxxvwwvwwvxwxwxwxxvwwxwdUUvfvvUvdwvEUffuvugfuUfgvvEvuwufvuwfxvwxvEevgvuwfwvvwVuugtVfveUfvTuevtVvvgwvxfvwwffwfeevegwvufwfwgwTuvvxgvuvwgwwvVvewuUTffgVvvvgVeEevgvuwwwxwgwxegVwwwwwwxwwwuVgwvwwxfxefevUvvgvgvvvwwfvfxwVewwwwxwfvvvvwwwwwwwgwwvxxfvvwvwwefVwfvuvwwwxevvwwwwwvggevwwvxVfwwgwvwwwwwwvwvwvwwwgwvwxwwwwvgvwwwwwvwwwgwxxgwwvwwwwwwwvUfvgvwwwvwwVvfxgwwwwwxwwvxxxgxfwvwvwwwwxvvwvwwgwwvgwwvwwwgwwvwgxvgwwxxwhxgevvwfgvvvfgwwvwvfvvwwwwwwxgffwvwwwwxvwwxwwwxgVvvfuwgvwwwggvwxwwwwwwggwxvwxwxwwwhwxwxwxxvwwxvwxwwwxvwwvwwxwxxwwwwwwwwwvxxxxxwwxwwwwwwwwxxwxvxxwxxwxxxwxxfwwfwwgwwwwvxwxwxwxxgwxwxwvxxwwwxxwwxxxxwwwxwwxxwwwxwxwgwwwwwwwxwhwwwxgwwwwvgxwhwgwwwxwvwxwwxxwxwvxxgxxxggwwwxgwwwxxxwwwwxwwwxwgvwwhwggwwwxwwxhwgwxwugVxgwwwVvxVvggvwwgVwVvWVvwwwwwxvuvwvwwwwwwvWfWgwwgwwgfwwVwvgewvwvfwvhvgvxwxxvwvwxxwwgwvgwvwwgwfwwwwwxwfWwvwxwgwvwvwgwWvWvfvwfwvgwwWvwwwxwVfWuwwwwwwwvwwwvwwvxxwxxgwgggvwfwvwwwwxfgwwgwhwxxwwgwwwwwwxwwwwxxxwxwwvxwgwwwwwwufggggwwxxwwwwwhwwvwgwwgxwwwwxwxxvwwxxxwgwxwgwxwgxxwxxxxxgwwxxxxxxwxwxxxxwxxwxwwwgwuwwvwxggwwwwxwxxvwvxwwwwwwxwxxwwvwwxgwxwwwwxxxwxxxxxwxwhxwxxxwwwxfgggwwwuwwvwwgwwwWvxvwgwxxxwwxvvxwwxvwwhxxxxxwwwvwwwwwvvvxwuxhhwvgxxwwwwwvwwxfwwwwwwhxwgwxxwxwwxwgwwxwwwhxwggwxxwwxwwhwxwxxxxxwxwvwwxwwwxwwwxxxxxwwxvwwxwvxvvxgwwxxwxwhxgxxwvwvwgxxwwwwwxxxxxwwwwwhxwxxxhxxhxwwwxxxwwxwxwxxwxhxgwxxxxwwwxxxxxxwxxxxxwxyxxwxwwxxuvfgfvvwfvvfwwevvwwVuvvWvwvvwdtufdgvvwwwwvwffvvfvvfvwhwgvvwvfwvwgwwwwvEdvvvwwvwwwweevvfvvwvwwxwvVfewWewwwwwxfuuwvwfvwwwvvwwgwgwwwfwwxxwfffVvuvvwwwwwwwgwwwxxxuffwvvwwvwwvwwwgvwxwxwffvwwwwxxwwxxwwxxxwxwxwvwwuevgevfwwffwxwwwwwhwwwvfgvvggxvgvxggwwwwwwwwwxxxxxvwwxwwwxxwxwxwwxxwyvvfwwgwwxxxxwwvwxxxwxwffgwuvwxxwwwwwwwwxwwfwwwwxwgwxwwxxvwwwwwwvwwwxwxxwxwwxwwwwwvwxvwxxwxxxxwuuwuwgwvwgvxgwwwwxwwvwfwvxwxwwwwvvwwvwwvwwxvfwvxhvgwwwvvwwgwwwwwgxwwwwgwwxwgxwxgwwwxxxwwxwwwwwxwwxwwggwwwwxxxvxwwwxwwwwwwvxwwxxxwwvwgwwwxwvvgxwwggxhwvwwxxxwwxxwxxwwvwwwgwwwxwwwxxwgxwxwwwwwwxxwwwxxwwxxhgxvgwxxxwwvxxxwwwxxxwwhxwxwxxwxxvwwxgwxxuggvfwwwwxvvgvgvwweffwevwvwwwvwuwhvwgwfuvwvfvvwvffewwwgwwgwvvwwguwvvWuwwfwwwuwxwwwwvwwgvwwwwwfvwfufwwvwvxwwvgvwxgfwwwgfwvwffwvvvwwwwgwxuwwWwwwvwwwwwwvgvwugxhxxwwwwxwwwxwwhvwxwuxwvwwxwwwwvwwwwhvwhwwwwgvwvvwwwwgwwwhwwgwwxxwxvwwxwxxwwwxwwuwwgwvwwvvvvwwxwwxwwxxwwwwwxwwxvvwhwwxwxxxxxxvwuwwwxwwvwxwxwwwwgfwwxwwwxwwxgxgwxxwwxwwxxwxxxwwxvxxwwgxwwxwgwwhwwxxxvvwwwvwwvwgWwvwvWvwwwxwwwxvwxwwxwxwwwxxxwwvgwvwgwwwvvvwxgwwwwxwxxvwwwxwwwwwwxwwwxwwwwwwwxwxgwvwxwxxwwxwwxwxwwxxwxxwwwwxxwxwwxwxwxxwwxwwvxxwwxgxwgwwvwvgwwvfwwxwwwwwwvgxxwxxxxxwxxxwwxxxxxwgwwxxgxwwhhwwxxwwxwxwxxxxwwwxxwwxwxwxwxxwvxxvwwgvvwvwgvvwwwvxvwfvgfweefwwwwgfgvvgvfwguwfVgewvwxwwwxggwvvwfgwwVefwggvvwxgfwwgvvvvgfwwwwwwwwvwwfgwgwxwwwwwwffwgvwfwvwgfgvfhgvwvwwgffwwwwwwwfvvwwxwwwxxxxxxwwvgwwwwwxxwxggwwfxwwwxwvvwwxwxxxwxwhxwxxwwwxwwxggxwwxvfwvfguwvwwwwwwwwwwwgvgwwwxxwwxxwwwwwhwwxwxwgwxwwwxxwwwxwxwwwwxwwxwvwxwwwxxxwvxgwwxvwgwvxxxwwxwxxxxwxvxxwwwxwxxxwxwwgvxxxwwxwwxxxxwwwgwwggwwfwgfhvwwwxxxwgwwwhwwfwwhgwxwwwxwwwwwwwwwwhfwxwwgwxwxgwxgwwvwwxxxwwwxxxxxwwxwgwxxxxxxxwxwxxxxxxgvhwxwwwwwwhwwgvxwwwxxwxxwwxxxxwwwxwwxwxwwxxxxxxxxxxxxxxxxwxwgwwwwwxxxxxxxxxwxwxxxwxxxwxxxxwxxxxywxwxxxwxwvwgVvuufwwxvgfwgvvwwfvgwwgvwwWuuUefgvwFVvvvwfvvwvvwgvvhwhwxgvvvvffvugvfvwwffwvvwgvvggxvguffffvvvwwfwwgwwgvwvwgxgWwgwvvwwvwfwggvwwwxvgwwwvwgwxwwxgVGgvuwUgWUvhwwgwxgwhwxxgwwVwfwvwwxwVwwwwwuxgxuwwwvwgwwvggwxwwwvwwvwwxwewwwwwwwwVwwwfgwwWgfwwvgwwhwvxwwvwwwwvwvvxxwgwvwwvvwvwwgwwwvwwgwwwvxgwwxxwxwxwxxwxwwwwwwhwxwvwwwwwwxxgwwfwxvwggwxgxwwwwwvgxvwwxwvgwwhwhwWwwwgVwgwxwwwhwgxgwxxwwgxwwgxxwwwgxwxgwgwwwwwxwwvxfxxxxxxwgvWgvvwvgwwwwwxwwwwxwwxxvvwvvwwwwwxwwvxxxwwwwwevwwxxvvwvwWvvxggwxxxwwwwwxwxxwwxxwxxxwwxwxwgvvwwWwwwxxgwwwxxxxxwwvvvxwxxxwxwxxxwwxwwwxwxvwfwxxxwxwxwwwxxxxxwxxxwxwhgwxxvxfvxwxxxwxxwwxxwwwwwwxwxxxxxhhxvxxxxwxxwxxxxwhwvwwxwxxgxfhxxxwxxxxwwxxxvxwxhwwwwwxxxxxxxxxxwxxxxwwgxxwxxxxhxwxxewvxgwvvvwgwvuvvvwfvwvvwvvvwgxvewegWwfgwevfwfgwwfuewwwwxvvwfvvvguvfwwwwvgwwgwwwfvwwvguvvwvvvfvwvwvfvvwwvwvwwgwwwwxvwvvwwvvvwfggvfvwwgvuwvwwwgWwwxwwgvwvwxggfvuwvxxgwgwwwwwwgvvwwgwwvgwfvwwwxwwvwwwwfwwwwvWwfwxvwxwwwwwxwwwxvwwwwvwvgwgvwwxgxwxwvwwwxwwwwwwwwwwwwgwgwgxwhvwxwxwwwxgxwxwxwxxwwwxwxxvwwxwwwwwwvuxwwwwxxgwxxwwwwxwxvwwxwxwwwgwwwgwwxwwxwxwwxxwwxxxwwwwxwxhwwwwwwxwwhwwwxwvgwwwwvvwxvvvgwwxwxwwwvgvwxwwvwxwwwwwwwwwxwvwuwwvgwxvwwVwwwvxwwwwwwxvwxwggwwwwxwwwxwwxwxwwwxwgxxwwwwgwwvwxxwwxwwwxxxxxwwxxwwwxxwwwvwwwxwwwxxxwxxxxwwwwwwxfxhgwwwwwwwgwxwwwxxwxxvwxwwwwxxxwxwgxxhwxxxwwxxxxxwxhwxwxxxxwwxxxxxwxxxxwwxxwwwwxxxwxxwdwgggfwxvvvggvgffwfffwfgfvfwwxWvwwvgfwvwwwfvvhVUDvfgfwffwvwxgvwgfwgfvwfvwxfgfwwxhwwvwfwgwfgfwvwvvvfvwgwfwfffgfwfwguwxggvgxwggfwfwxVgevwwwwwwxwgxWUDvwvwgwgwxwxvwgWwgwwgxxwxxxwwgwwvwwwxuwwwgwvxgwfwwgvxwwwgWvgwwxwhugwwxwxwxwxxwwwxgfgwvgwwgffwwwwwwvxgvwwwwwxgvfxxxxwwxwwxwfwwwwwwwwxwxwwxwxwwwxwvwwxxwwwxxxxwwwhxwhwwxwxwfgxxwwwwwwwwvxxhvxxwvwwwwxxhwxwwwxwwwwxwwxwwxxxxxwwxhxvwxxxxxwxvwxwxxxwwhwwwxwwwwxgggvwwwwwvxxwgvwxwxxxxwwxwxwxwxxwxwgwvwvxgvwxxxgvwwxvxuxwwxxwwvwwxgxxwwwwhwhwwxwxwwwwxhwwxxgvvwxhvwxwgxxhwwwhxxwxwwfxxxwxwwwxwwxxwxwgxwxxxxxxwxxxxxxwxxxxxwwfwxxxgwwwxwwxfwhwwxfxwxwxxwxwgwxxgwwxxwwwxgvxxwxxxxxwxwhxxxwxghwwxxwxvxxxxwwvwhhxwxhwwhxwxxxxxxxxxxxhxxxwxxxwxvxxxwxxwwwwVvuwwgVvwfVvwwvgvwgfvfwwwwwFtuvtfgvxwwwwwwvffvfvvgvwxxVvufwWTvfefwgvvWwwvwwxwwwwxwxwvgevWtgvvggvgwwwfwVveuwwwvxwxgxvwWeVvdgVvwgvvwwwgwgwfvwwwwghvgfgxwwhwxftwwwhwxxfvGufwfgvvwwwxvggvvvhvwxwwwwwvxvwwwwxwwwwwxhvwvwwwxwwwvvwvgfgvwggwwwgfxwhvwwwxwvvgveuvwwwxxxgvWuwxuwvwwwwwxwwgvwwwxwwvxvhwwwwwwwxgxxvgfwxwxvwwxwwvxwwwvwxgwvwgwwfwwxgwxvgvxuxxwwxxvGvvxhgxxwxwxfXuwwxxgvVvwxgwwwxwwwxwvxxxxxxvhgwxwwgwhwxwxwwvvvgfvwxxxgwwxwwxxwxwvgvvwwxxvwwXgWufvvWwwwwwxwwwgwxgwxgwvwvwvgwwwwwvwvwwwwwwwwwgwgvxwwhwwwgwxxxwwvwvwxgwwwwvhwvwgwwwxxwwwwwggxwwwwhxwxvhxxwgwwwwxwwxwwgwwxwwxwwgXxwwwwwwhwxxxwwwxvgwwwgxwxxhwwxxxwxwwvxwwwuxwhwxxgvvxxwxxxwwwhxxwxxxxwxwxwxxwxwxhwhxwwwwwwgxwxwgwhxwhxwwvgwxwhwwxwfvwhtgfvWvugfvvveUDvfvvwuWfvvffgvuwfuvugfufvvgWvvvVwvgvwwvwvwxwwfwfgwwevvfWfvvvwvwvxwwgvwvvvxwvvewuvvvgugfwvgugwvxvwfwvxfwwwwwwwwgffevgUDwgfvvgwwvwgwwwwggvwfwvgwwwwwxwxwvwxwwgwwwwvwxwvwfvewggvvwwwwgvwwwfwwwxwvvvwxwuwwhuwwuxwvwwwxwxxgwvwwwfwwwffwvwwVfvvwwwvwwvwvwwgvwwWwgwwwwgvvgvhwgxgwxxwxwwwwwvwxwwwwwxwxwwgxwwxwxwwxwxxhwxwwwwvhwwwwwwfgwwgwwwwxxwWvwxgWwxxxwwwuxwwxwxvxwvwwxwxxxwxwwvwhgwwxwwwuwwwwxwxxwxwxxxxvxxwwwvvfwgvvgwvgwgxwvvwxxwwfwwwwwwwwxwfwwwwwxxhwvwxxgggwwwgvwwxwvgwxwvwxwwwvwwuwwwwxwWgwvwwwwwwhwxwggwwguwwgxwwgwwvxxwgxwwwwgwgxwwwwxxxxwwxxwwxxxwwwgwvwxwxwhxwvwxwxxxwwwwvxwwvfwwgwxwgvwwwwgxxxwxwxwwwwwwwxvwwxwvwxxxwhgwxxxwwxwxvwxxgwxwwwgxwwxwgXwwxwxxxXxwxwxwxhxwwwwxwxgxhxwwxwxxwxxhwwxxwxxwxxwxwxxxxxxxxwxxxxxwtwvwFvefEwfvdVVfewvwgVVvvwWvffWgwgvgwwvwwfvwfgfwgvegguwwgggfwwfffdvwffvfUUgfxvvwggfgwgvvgfggfgwfgvWfwvvwwwfwfvWxWGwwwwwgwfvvxVgVwgwwfwfwvWvfwFVhvfxwXwgwwwwwwwwvwwwwgwxxwxxwwxxxgxwfvvggwWvwwvgwggwfWwxxwwwwfgwvwfwwxwxwwwxwvhwvwvwwxvgwgfwwfggwgvggvwwwgggvVwwwugwhgvwvwVvwhwfwgwxvvgvvxwvfwgxwwxwfwwwwwwwvwhwxggwwgwgxvxwwgwwwgwwgxwgWhgwwxxxggwgwgwwwWwwwWwwwwwwgwhgwgvwgFhwxxwxwgxxxwxgvxhwwwwxgwwhxwwwxwxwgwggwxxxwhhfxwwwwxwwwxwxwwxwwwxxxgwxwxxxwVvvgugvwwwvwwwvwwwgvwwgfwvxxgwxvwwwwwwwwvwwwhxwxxxxxgvfvwgfwvwwvvggwwguxxwgwxwwwgwgffwwgwhxwxwwxwwwgxxvwwgwgvxxwxwwgvwvwwghxxhgxxxwxxxgwwxxxwxhwhwwwxwxwhwwxxvwwvxwxwxwxwwxxhxwgvxxfwwwwwwwgxxgwgxvgfwhuxwwggwxhxwxwxwwwxhxWwwwxhxxgwwwwxwxxwwwgvwwxhwxwxgwxgwVwxexxwwwwxwwwxwvxhwxxxwxwwwxxwwxwhwxxxxwxxxxwxxxxwxxwwxwwwwhvxxxhxxvhwvwxwxvxxwwwhxxxxvfxgwxggwgvwxxWugwvxgvwWwfwvwewwgugvwgxfwwfvvvwwvugwwhgwvugwvvwwwvgwwwgwfwwwgwvwvvwwwwvgfghwvwwhxwwwvxWufuxwwwwWwfwvwfwwwxxwgwwfwwwwvgwxvwhxwxxgwfwwwwwxxwwwvwhvxwgwxvxwxxwwwwwwxwxxwghwxwwfwwwxwxvxuwwwwuwwwwxxwwhwwxxxxwxxwwxxwxxxxgxwgwxxwwxxhvxwxxgwwwuvxwwxvwvxhwhwwwxxxxwxxgwvxwxxwvxwxxxxwwwxxwwxxhxxxgvgwwvhwggwwwwwxwxwwxvxxxxwwwwwxxxwwwxwvxxxwfgwwvxwwwvwgxwxxwvvwwxwwwhvxxgxxwhxwwwwwwxwwxwwvxxxxwwwwwxxxwuvxgwxwhwwxwvxwwxxwwwxxgxvwxxxxhxwxwxwwxxxxxwxxxxxxwxwxywxxxxxxwwxxxhxxuvwwgwgvwwvwdwwwfvfgvvgfwwfvTwvwvfvvvvwwvwwwvvwvdvfwvwwvwwwvwwgtvWvwwwfvwwwwwvgwvvWwvwwgwvwuwwwwwgwwwvWvwvggwwwwwwwwvwfvwwvwvwwvgwvugwwwwwwgxwWwwvwfwwxgfvwwwfgxxwwwwwwwwwvxxgvvwgwwvxvwvuwwxwwwxwwwwwwxxwxwwwxvwwwvwgvwwwwwwvwwwwwwvwgwwwwxvwwwwtvfwxwwwgwwwwfxwwwxwxwgxxwwvwvwvxwxwXwwwwgxwwwwwvwwxuvvxxwvvxxwwwwwwVxwwwxwxwhwxxxwgwxxxwwxwwvxxxxxxxwwuwvwwggwwwwwvwuwxxxwwwxwwwwvwhwxwwwwxwwwgwwwwwwvxwwwgxwwwvwwwgwwwwwgxvxwxwxwwxxhxxwxwwwwwwwwgxxxxwxgxxxxwwxwxxxwxwwxxxwwwxxvwxxwwwxvwxxxwwwxwxxxwvgwxwwxwwwxxxxxwxwwxxxxwwwwwwwwwxfxxwwxwxgxwxxwwwxxxxxxwxxxxxxwwwfwwwwwwwXwwWvtfgVVuwvwwgvXVvuvvhgwwveWfuwuggwxxwwgwvvvgvvwwwwwuwwVuwwwgwwgghxhVvwuvvwvwvwwwfeffwgvvwwvwgvwguxwwwxgWVufwVFwwxwwwvwwwwvxwwgvvwgvwwwwwwwgwwwwgwfvwvvgwwxgwfwxgwwwwvgwggvwgwwxvxvgwwggwwxxwwwwwxxwwwhwwwxwfwvwwwwwwwvwwwwgwghewwwwwwwgvwvxwuwwwwxxwxwhwwwxwwwxwwxxwwhxfwwwwwxwwwxwwxgxgwwwvwgwvwwwwxxwwwxwwwgwwwxxxwwvhwvhxxwwwwwxwwhvwxwXWxxwgxwwwxxwxxgwvxwwwwwwwwwwxxwxxhwvwxfvgxwwxxvgwwxgwgxwxwwwwxxgwxxxwgwxwwwwwwgwvgvxxgwwwxxgwwwwvwwfwwxwvghwxwwxxwwwggwvxxxxxgwgxwwxxhwwwxwxwxwwwxhxwwxxwwwxwwxwxxwwxxwxwwwgwgwxxxwxwxwxwwxwggxgwvxxxxxwwxxxwwxxwxxxxxghwwwxwfgxxwvxxwxwwxwxwxxwxxwwxxxxxxxwxxxxxxxxxxxxwwwwxxxxwxswwgVvfwvvgwwguwuvvwvwfwvffwvgwwgvvwVFSufggwwwvwvgewggwggvxvxwgvvwvgfwwwwvwuuvvgvfWwvwvwgwgegwgfwwwefgwxuwwwvvwgVdvuhwwwwwwvwgWFSuwwgwwvwvfewgvwwwwxgggwfgwhgwxxfwwgwxgwwwxwxwxgwwwvgfxfgevvwwwwhwwwghWtvhvwwgwwvwgwwwwxvwwgfvxwwwxgxgwwwwwwwwwguwwgwgfwgwWwwwvxwwgwguwwwvfwwxwxwwwvwwvgwxwxgwwwwwwvwwwvxxwwwgxwvvxxwvwwwxwwxxwvxxvxxwxwwgugwwwgxvwwwvfxwfwwxgwwvhwwvwwxxwwxhxwvwwwwxxxxvwwwwwwxwxwwxwvwxxhxgwxxwxwwvwwgxxwxxxxxwxwwwgvgvwwxggwwvwwwwwwwwwvwwwwwxwgwxxwwvvwvvwwwxgwwwwxgvgwhxxgwvwwwwwgwxxwhxwxwxwxwwwwwwwwwxxxxxwvwxwvwxwwxwwwwwwwxwwvwwxxwwfuwxwuxwgwxxwwxvxwwwwwxxwxwwwwwwxwwguwgvvxwxwwghwvwxwwxxhwvxwxwwxgwwxwwxwxhvwxxxwxvwxxxvxwhgwxxwxxwxwwwwxgxgwxwhwxxvwwxxwxxxwxhwwxwgwxxwxxwwxxvxgxwxxxwwwwxwwxxxxwwwwxxxxwxuwfxwwwwfWvVwvvwwwgwwvvvwwwgvuwWvVgwfvxwvVgevvevvxfvvwwgwvwwwewwfwvgwgvwgfWggwgwffwwvwvvwvwfvvwwwwfxvwwwvewgwfVvVfwgvvwvvfgvvwwxwWvVvwwffwvxVvwwvxwxgwVwwvwwwxxVgvwwxwwfwwwwwwwxwxwvxwwwxxwhwgxwwxwwggxwwwwxxxxgwvxwwwwxvwwwxwgwxwxwwwwwxxwxxxwxxgvxwwwxxwxhxvwwvwwgvwwwxxwwvxwwfwxwxxwxxxfwhwwwwxvwxxxwxxwwwgwvxwwxwfwwwgwxwgvwgxxvwvxggwwwwxwgxwxwfgwXgwwxxwxwvwfxvwvwwwwwgxvxxgVwxwwxwwxwgwxxwwwwwgwwwxwwxwwxxxwxxxxxxxxxwvwxxxxwwxgvxgxxxxxvwxxxggyxwxxxxwwxwxxxxxwxwwxwxxxwxxxxwxwxxxxxvxwwwwwwwwvwwwwwwwxwwwwgwvwwvxgwwwwwwwvwvxwwgwgwgwwwgwxxxwvxwwwgwwwwwvxgwxwxwxxhwwwxwwvwxwwwwwwwwgxxwwwwgwwwhwxwxxwxwxwgxwwxxxwxwwxwwxwwxgwwwxxwwhwxwxxwwwgwwxwgxgwxxwwxxwwxhwxwxxxxxwwwwwwgwxwwwxwxxxwxwxxxwhwwwwxvwwwxxxxwxxwwxxwxxwwwxwxwwxwwxxxwxwxxwxwxxxwhxhwxxwxxxxwwxxwxwwxwxxxxxxxxwxwxxwwxwwxwxwxwxwwwvwxwxwxxxxxxwwxwwxvxwxvxxgwxxwwxxwwwxxwwwxwxxxxxxxwxxgxwxwxxxwxxxxxxxxxwxwwwxwxwwxwwxxxwvxxxwxxwxxxxxxxwyxwxxwxxxwxxxxxxxwxxwxxxxxxxwxwwxxxwxxwvwwevwvUuvxeuvwvwwwwwwxwVfwwwfvwvgvfwvgwwwvwwgwwvwwwvwevwvufvgeewwwwvfwwwwwWgvwwwxfwxvwwwwvwwvwwwwwxwwxwwwxwUuvxgeewVvwwvxvgvwwvwwfufwhgvvWvfewwwwwwwwxxwvweuvwwwwwvxxvwwxwvxwvwwguwvwxwgwhwwxwxxvwwwvfwvgvwvwwwwwwwgwwwwwxwwxwwwwxxwxwxwwwwxwwwwwvwwxwvxwxwwxwwwxwxwwwxxxxxwVfWgvfufwwvwwwwwxwwwwgvgwwgxwwwxwwwwxwwwwwwxhgwgwwwwxwwxxwxwwxxwwxwwwwfvwvfwxvvWvguwwwwwwgvwxwwwwwwwxggvfwvwwfewvwxwxwxwgwwxwwwxxxxwwwxxxwxxvgwwwwvwwwgwxgxwwxxwxxwxxxxxwxwvwwvwwwwwwxwwwwxwwxwwxwxxxxxwwxwgwwwwxwwhwwwwwwwxgwwxwwxwvwwwxwwxwwxxxxxxwxwxxxxxxxwwxxwwvwwwxwwxwxwwxwxxxxxwwwwxwwwwwxwvwwxxxwxxwwxwwwwxxwxxxxxwwxufvgwweffvgvwdvfgwvwfefvwfwvfvfwwvwwvgwxwwvvFewwwwwgvwtevgffuweevwffvwwTdwvhwwvwwuxuVfwvwfwwvwvxgfuwvvxwwwwwwwTuewvvgvfveuUfvugwvwvwwgwwuwwfwvwwwwxvvwgwwwxwwevvvfudvvwwwwuvhvuvwfvwwgwwwwwvgwhxwwwwwwxwwvxxwwvwwwwvvwwwxwwfffwwefvwwwwwvwwwwxwxxvwgfwwwxxvwwwwwfwvwwxwwvwxgvwwhwvuwxxwwwwwxwwgwwxxfvvxxxwvgvwggfVvgvwfdegwwwwvuhxwwwgxxwwfwwwgwxhxvwxvvwxvgvwfgwxwvwwwwwwwwwgxwvwhvvxwxxxwvwvgvwwfggvwwvvwwxueFwwwxgwwwwwwwhwwwxgxwxxvfVwfwgwwwwwwxvevwwxwwxwvwwwwwgwwxxvvggwwwwxwwuwwxfvwwwxwvvwwwgwwwxwxgwwxwxxwxwwwwwwwwwxwwwwwxgvxwwxvwwwwwwwgggwwwxwvgwxwxwwhwwwxxxwwwxxwwwwxwwwwwwwwxxxxxwwggwwfwwgxwvvxwghxwwwxghwgvwxxwvwxwuwwhgwxwwxxwxxxxwhhxvvxvwwwwwwwwxwwxwxwwexxfgwxxwvxxwxwwwwxwdeegffwfFVUgdfeuWfvhggvvfVfufffvfwwwvVgvwgvwwvugFfvUvwwhfwvwwVvvgVfewfUevdeVvvfvwxWWwfggwggvwwfgeffwwwuvvwgwwgwwwwvwwxwhwfvvxfVfweWFuvfvUFUUgvxfgWgwfuxvwxxvwwwwxxwvwvgwwgvxffVVvvvefgfvwggVxwwgwvhxhwwwggvgwvwuwwwwwgwwvuxwgwwwwwVvguwwuefvvwwwgfgwwgwwugfwwwwwgwuwwwwvwxUfwwxgwgfwxxgxwgwwfwxvwwwwwwwwggwgwwxgwwhwxwfwwxxxgwgxwwgwxgwhxxxxwWwwwwfgVwgwxfwffwhVvgwwgvwvgwwgVfwfvvwwwwwwvhvwvhwwxwwxhwfvgxxwwhvgWffwvgwwxwxgxgwwwhwxwxwwwxwwxgwwgwwxhwxgxgxgwgwvgVvwffwgfwwgWufggvwvvwgwvwgfwwwwwwwwwwwwxwfvwwxwxwWUvdfWwguwwvwwgwwwgwvwwvxwxwwhwwwgwwhwwxxxwxwgwxwwxwwwwwwvxgvwvfxwwwwwwwwwxxxwxwwvxwxxwfwwxxvgwwuxxwgxwvxxwwxwwxxwwxgxxxwxxwxwwgwvwxwuvwwUggwxwwwvwwxwwwvgwxwxwxxxwwwxXgwwgxxfwwxwwwwvgvwwxxxxwhxwhxxwWwwwwwhggwgwvxhxwxwwwwwvxxxxwwuwxfwwwgvwwgwxxxwwwwxxhwwxxxwvxxwwhwwwwwhwwwxwxhwwwgxvvwxwxhxxhwhxxxxwxvwwvvwwgwwwwwxfuvvwvvwwvgwgwxeuuwvVvwvwwwveuwwvwwwwxefvwvevwwwgwwwuVwwwgwgwwwhveuffuvwwwwwwwwwwwwwvxUuvwwwwvvWwwwvUvwwwwvewvwwwVvwuevvgwwwwvwwwwwwxvwuuwwvwwgvuwhwwwwxgwfvwwwwwvwxwgwwwwxxwxwxxxxxfvwxwxxwfevxwwwwwwwwvwwxwwwwvwxxvwwwwwwwwwwxxwfwwwxwwxxwwgwxwxwwwwwwwwwxwwxxgwwxxxvfuwwwwxwhvxxVfvvwwxgvwwwxwfufwwxwwxwxwwwwwwwwxvwwwgwwvwxwwwwwwwwxwwwwwwxvxwxxxxwxwwwxwwwvxwwwwwgwwwxxxvvWhwgwwxwVwwwgwxwwvgwwwwwwwwwwvwhwxxwufwvwvwvxxxxwfvxwwwwxxxvwwvwwwwxxxwwwwwwxxxxwwwxxxxxwxwwxwwwgwwwwxxfxxwxxwwwwwwwxwxwxwwwwwxxxwwvwxxxwwxxwxgwxxxwwwwxxxwhxxxxxxwwxwxwxxxwwxxwxwwxwwxvwwwwxxwwwxxwwxvxxhxxxxwxwvxwwwwwxxwwwxxxwvwwwxwwwwxwwwwxwxsfwgwvvvvfgwvffwvvvuvvvvvSEvwfwwvvvfwvvvfvwwuwwvuguwwwwvgwwwfwvuwuvwwSEvvfwwvevvvgvvfwgwugwvuguwfvwvwwwwgvwwwwugwwwxvwwgfgwfwwvwvvwwwwwwffwwwwvwwwwwwwwvwgwwugvwwwwgwwwwwwwgfgxwwvvfwefvgvfvgwwxuvwwugwwwwwvwxwvdwwfwgvgvfwwvwwwwwwwwwwvwwwwvwxwffwwwwfwvwwwwwvwxwwwgwvwwwwvwwwwxfvfwvwwwgvwwwwgxwwwwwxwvgvwwxugwwxwwgwwwugxwxwwwwhwwwwwuwwxwxwefwvwwwwwfxwwxwwvuwwgxxxdvwfwhvwvvxwwwwxwwxwwxugwwwwfwxxwwxxwwxvxwxxwxvwwfufwvvwwvwwugwwwwwvvxwxxwwvwwvwwwwwwwwwxwxxxwwugvgwwwvvwwwwwwwgwwxwwxvgwwwwwwhvwwwwwwvvxxwwxwwgwgvwwwwwwxwhxxwxvwxxhvxxgwwwwwwwwwgwxxwwxwwxgxxwwxxwugwgxwwwwgwxxxxwvwwwxwwwwxwwvwwxxwwwgxxxxxwwhhxvwxwxvxwwgwvwwwwwgwwxvvwwwxxwwwxxwxvgwxwxxxwxwxxxxwxxxxwxwwwxwwxxwwwxwvxwuwgwfvvxefgwffwwcewwgdfveffgfwwvvwwfgggwvwwvvvxfwffvfwfwvwevvwggdwvvfgvvwwGffvu7guuvvwvwgwwvxvwwwwvwxxwwwwwghwwwwwwffwwuwwwvwvwwwwfWfvvwwwfffwvwwwfwwfwxfxwvvwgwWwwhWfwwggvgfwgwwwwwwwwwwhvwhwgvvVwuwwwwxwwwwvwvwxxgwWvwwwwwvfvewvwwfgvwfWvwghfvuvxgwwwwwwvwwwwvwxfwgwxxvhwgvgwgVwxxxwxvWgfxhxgwhxwwxxwgwxxxxwxhxwwwxxwgwwgvwxhwwwxfwwwwwuwgwgvwvuxwfxvwwwwvwwxwwxxxxwxxxhxwfvxgwWgxxwxvvwhwhwwxxwuwwvwwgwvwxvuwggwvgWgwgwvwwwvgxwwwwwvvgwwwwwwxgwgxgvwgxfgwwvwxwwwwwxxvgwxwwhwfwuxggwwxfwwxwgWfwwxxvwwwxwwxwwwwwhvxxxwwvxxwgxxxxwwwhwxwwvwwxxxwxwgxwwxwwwgvwwwxxxggxxwfxxxgxwwwxwxxvwwwgwvwxvwwwwxxxxxxxxwwwhxxxwwwwhvxxxxgwxwwwvwhhfwwxwghxxwxwxxxwwwxwxxwxwwwgwgwwwvwxxxxwxxvwwxxwxwxxgwxxvwvwwxxxgxwveffwfvvwdtvwuffwewvwvwwwfVewvwwwcuvweUewvwfgwwvwtgewfvvwgxvwwevvwVVcwfvffvvwvfFdvvfgWwuvfvwVvfffGffvwfwvwvhfwwwwVwfwwhwxvwTevdfvwvWfvvxcfvwfuvxVeugxwwxvgfwVvuwgwvgwfwgwwxxwwxvwvwwwgeffVVvvguvwwxvwVfvwGuvvwvwxxwwffvxvwffxwwwwgwwfvwxwwwgwxggvwggvvgvuwwwwVVegwxwvvewvwwwefgwvxgwwwfffwwwvwwwwxxwwggghwwwgwwvwgghwxxgvwwwxgwwxwwwwwwwxwwvwxxwwwxwhwvgfvfvvfwwhwwwUvvvwwgvwwgWwwwxgvwhwvhxWwwxwxwwhwwwwwxxwwxwwwvxwgwwwxgvwxwgwwxgwwwxwwxvxhwxwxxwwwxwxgwfvwwvwvwvvvgwvxvvwwgwwgxwwvfvwvwwxwwwgvhwxwxxwvffwugvwwwxvwwvvvxhwwwwvwwvwwwwxvxxvwwwhwwwxwwvwwxvxwxgfwwxwwxguxwxwwwwwwwwwwvwxxwvxxwwxwwwwwwwwxwxgwuugwxwxwxwwvxxvwvwxwwxxwxwwwxwwwxwwxxxwwxwwxwwwwfwvwwxwwxfvvwxwwwwwwxxvwxxxxxgwwgvwxxxxwxwwxxvwxwxwxwxxwwwxxvvvxxgwwwwwwwxgwuxvwwxwwwwwwxxwwwxxxxwwwxgwwwwwxxxwwxxwwfxwwxwxxwgxwvwwxxxfwwwxxwxxwwhuxxwwvwwxwxwxwxxvwxxwwwwwvwxuvwxvwhvwgugfvhwvxgvfvwvwwhufgfwwgwvgwgvvwwwvwxhvvghvgufvwwwwgwwwvwwvwvvwwxgugvwwwwwwggwwgwxwwwvwgwvwwwwWwwfwvwvWwwwvgwxwgwwuwgwgwuwwgvwvwwwVvwwvwwwwwgwxvwvwfxwxwwwxxxxwwwwwvgvvwgvwxwgvwwvxxgwwwwxwxvwwwwwxwwxxwwhxwvwxwxwxxxwwxxvxwxwvxwxxwwwwvfwgwwwwwwvwgfxwuwxxwxxvvwxvwxwxxwwwxhxwwwxxwxxwwxxxxwxgwwxwxgxwwwwwwwxxwwxwwwxxvwhwwewwwwwwuvwwxwwwwwwvwvxhxxwxxwwwvxwxxxwxxxwxwwwwwwwwxwwxxxxxwwwxvvwxxwwwxxvxxvwwxxwxwwxxwxxhxxxxxwxwwwwxxwxvxxgwwxxgxxtvvwgffvvfffVfegwwgwUgeugvxVwvxfVvwvfwfwxfVevgwwxvvvwwfvvwwwvwgvevvvwwvffwwvxddffgwgwvfwwwxwhfwwwwfwvwwwxwwvwvxvfvvwfwgvgwgVgFugwwxfvvwwxfVewwgfwxwggggxvwgvwxfffgvwgwvUegfgggwwwwwggwvgwwxxxxwvwwwwxwxvxvwwwxwgvvwvwwfwvuuwwvfwwxvvwwwfvfwwwwxwwvvwwwxwwwwwwwwxxwwwwwgwwwwwwwxwxxwxxxxwwwwwxghwwggxvwWfvvwwwgfvvwxxwwggwwwwvgwwxwxxwxxwxxwwxwgwwwwwwwxwwxxxxwwgxwgwfgwwxxwxwwxxwwwwwwxxwxwwxwggVuwgvwxgffvwgwgwwwgvwvxgwgwwwwwwwwxxwwwggfwwwxuvgxxgwffvgwwwwwhxxxwxhwvxwxwwwxhwwwxxvwvgvwxgwwxxvwxwwxxwwgwwxxxwgwwxwwxxwhwwgxwwwxwxvxwxxxwwxxwxwxfwvgwwxxwvxvwwvwwxxwfwwghxwwxxxwwxwwwxwxwxwxwwxvxxxwwxxwwxxxxgxgwxwwxwwwwwwgwwxxwvxwwxxxwxwxxxwwxxxwxwwwwwhgxwhwxxwwxxxwwxwwvuwwxeefwvwgwgWufwwwgvwwwgwwwwVugeVtgvwwwwvwfvwfvgufvwxweuvwgUtwffvwfVvwvfvgwwwwwwxxwhdevvvfvvwvgvwwhvwwvwvwwxwxvEtfwEugvvgvvvwwfvgwfvwwxffvfwxgwgwhwxftwvfxxxwwwdfgffwwwwvvwvgVvuwwXxvwwwvvwwwwxgwwwxfxgwwwvgwvgwwwwvwwwwwwwwfvwwwvwwhvwvwvfvgwwxgwfxwvwwgwfxfvwgwwwwwwxxhwxxxxwwwxvgvvwwgxxxwwwxwxxwxxwwfffweuVvgwxvgvWuwwvwwxwGvvwvgxwwxwVhvwwwxgwwgfvfwwwxwXvvwwwwxwxxwgwhwgwwvwwwgvhhwwxwgwvwgevfVvxwwwwvvwwwhwgwxwwgvgwvwwxwwwwxwwxxgefwfVwwwwwwwwvwxwhwwxwwwwwvwwwgxwwvxgwxwwwxhwvwwgvwvwxwwwwwxwwwwwwxgwwxxxwxwwwwwvvwxwgwwxwwwwgxwwwxwxwwxvggxwwwvwxwgvxwwwxgwwwwwxxxxxwwxxxxxgwwwwxwvggwxxwwxwhxxxxwhwhwwwwxxwxvwxhwwxxwgvwwwxgvwwgwwxwwwhxxxxwvwhvxvwwwwwwwwxgwxxxxxxxxwxwwwgxtvVwTfWfdegwVffwewwwvevwvggwfgvfvvwuVvvUfwfvwvvfvwgvwwfgvvvwhvfvfeewVefvdffwwffwvgxwwwwwwwwwwguvfvvfFfuevvhwgwwwgwwxxwwUwvxeffvvgewfwVwegwVwwvvvwwwwtfwvvwfvgwwwwgvhwwwwwxfwwwfggfuvwvwvvvgwfwvwwwgfxwwwwxwwwvvwwwwwwhxvgwwxwwfwxxhwwgugfwwvuwfggwvvugvvwwwwwevvwwguxvgvwvvvwgvwvvfvwwvwwvxvwvxvvwwwwwghvwwvxgwwwghwwxxwwvwgvwwwvhwxgwxhxwxxxxvvwwwuvggwwvgwvdwwwvwvgvvgvwwwwwwvwxwxwwxwwwxwwgwwwwgwxwwgwvwwwxwgwvxwxxwhxvxxxgwwxwxgxwwwvwvwftwwvwggegwvgfwvggvwwwxwwvwwfwwwgwwwwwwwxxwxxwvwgwfvwwfwwwwwwwwxwvgwwxwwvwwgwxvgxxwxvxWwghwhwvwwvvwwwxvwxfwgxvwxxxwwxwxxwwxwxwwgxwwxgxwwwfwvwwwwxwwwwwxwvxwwwwxwxwwxwvgxxxxwuwwgvwvwwvwVvwwxwwwwwxwwwwxwwxwwwxwvxxxwxxvwwxwhvwwxXxxxhxxxwxwwxgwgwxxhhvxxwwwhwwwwxwwwxwxxxxwwwwwxgxxxxgxwwxwxgwwwxwhwxxwxxvwxwxxxwhwxxwwxvwwxwvwxewhxfwvwvwwwgufvwwxwwwwWvwffgwvxwWufwwwvwWugwghvvuwwXwxfwvwWuevwfwwfvewWugwxxwvWwwgwwgwwvfwwuwwwvwhvxxhwxwgxgwwwwwwgvvwwwWwvwgvwwgwvfvwfxwwwvwgwwwwwxwwxvwwxxwgvwwffvwvvwwewvwWwgwgwwxgwxwwwxxwwwxxhxwxxwwxxuwwvgvwwhvwwxhwfxvwwgwxwuvwvwwwvfwwwwwwwwfxgwwxvgwwwgwvwwxxxyhvwwxxxxgwvxwwwwxwwwwxxxxxhgxwxvxwwwewwwgvhVwvwfwwvfxefwwwvxxwwwwwwxwxwgwwwxwwwvwwgwwwwxfwwxwxxxwwwwwxxxhxxxvwwvvwwwvggwgvwwwwwxgxwhxwwwwgwwxxwwwfhwwvwwwwggvgxwwwxwxxwhvwwwwwxxwwwwxxxwwwwwwxvwfxwhwwwxhxxwwwwwwxxwwwxwxxwwxxxxxxxxxxwxwxwwvggwxwwvxxxwwxgwfwxwwxvwwxvxxxxwwxxxwxxxwwwwwxwxxxxxgxxxwxxwwhwxxwxwxvxvxxwxxxxxwxxxwwxwxxxwyxvwxxxxwxtvwhvwwwwwhgfggwwxwvvwgdWwvvwwvffgvwfwvwwgdWgvwvwwxvhwgvvxvwvwgdWwfvggvwvgghwwwgdVvvvvwwxwwgwgwwwwxwxxwfwwvvwwfxgwgxwfwwvwvwwvvxxwwwgwxxgwvxwgvxhxxvwhwxgugvvvvwwwwgwgxwgwwwxxwggvvwwggxwwwxxxxvwxwgwwfwwwgwvwgwwvxwwugwwfwwvvxwwxxgwwvwwwugwwwwxwwwwwhvwwwuhwhwvxhwxxxxwwwxwugxhxxgxfwwwwwwwxvvvgfwwxwxwxwvwuxgwvgwvvxxwwgxwxwgxwwwvwwxxxwwwhwxxwxwwxwwxwwwwwwwxwxxigwvwwwwwwwuhwwwxwxxwgwwxwwxxwwwwwwxgvxvgwwvxfvgwwwwwwwwwwwwwwwxwxwwxxxhfwxxwwxxxxxxwxwxwhxwxwxxxxxxxxxxxwwwwwwxxxgxxwwwxwxxwwwwxwwwuwvwxxgwxwxxwwxwxwxxxxxxwxxhwxywxwwxvwxwxxwxwxxxwxxwxxwxxwwxxxxwxxxxxwxxxwvwwxwwxwvwwgwwvwgvwvwwwvwwwwwwwwwwvwwwwwwwvgwwwgvwxwwwwwwhwvvwvwwwwgxwwgwwvwwxwxwwwwvwxwwgvvwwwwwwwxxwwwwwwwwxwhvwgwwwvvwxxwwwwwwxwwxwxxwwwwwxwvwgvwwwwwwvgwvxwxwxxwwhwxwxhxwxxxxxwxwvxwxxxxxwwwwwxwwvgwvwvwwwxwwwwxxxxwxxwxxxxwwwxwxwwwwwwwwxwxwxxxwxwxwwxxxxwxwwwxxxxxxxxxxxwwwwwxwxxxwxwxxxwxxxwxwxwxxxxxxxxwxxxxxxwxxxxxxwxwxfvwvfwwwfwwevgwwfvwfvwffgvfvwvvfvgvvvvwfDUvvggvvwwvvwgwgvwfvvgfwwvwwwgDUvvgwwvfwwwvwgvUfwwvwvvvwvvvwwfVgwwfvxwvwwvwwfvvwfwvgwvwfffvwfvggwvxgvfxwwwwgwwwxvwwwgvwwfWfwvxxwvwvxwwvwwwuxvwfVfwwVvgxwxwxwvwxgwwwvwwwwgwwwwxxgwwwwwwwgvvwwwwwwgvwwwwwvxwwxwwwwwwwwwvwwvwwvgwhwxxwwwwwxwwwxwxxgwxwwxwwvwwwwwwgwvwwgvwvwwfwwwgxwvxwxwvwwwwxvwxgvwwwhvwwvghxvfuwwwwwxvwwwgvxwxwwxxvxwwwwxvwwwhxfwwxwxwwvwwwwwvwwghwxfwwxwxwwwwwfwwxwwgwgxwwwwxfwwxwwgwxwxgxgxwwxwxfvvggwwxwxwfgwxwwwhwwwwwwvxgvhxwwxgwxwwwwwwwxwxwvxxxxgwxxwwxvxwwgxhgwwwxwxxwxxxwgwwxxxwxwwxxwxxwxfwwvwwwwwwxwxxxwxxxxxxwvwxxxxwvwxwxxxhxwwhxwwwxwwvhwgvvhyxxvxxvxvwwxxxwxxxwxxwwwwxxwxwxvwwxxwwxtvvgvfwvfwgwfvvvggwfevwfwvwwvvwwvfTUvvvvwwggeevgwwvvwwvgggeufvwvvwvgvvwvwwwwwwwvvggTUugfwvwwwvwwwgwvvgwwhwwggwwgvvvfwgwvwVvwwvgxgfvwwxwvvwwwwvwvgfxwfwxwwwwwwxwwfvwuvvwwvwwvfwwxvvxugwwugfwgwwgvwxwwwwxxwwwwgwgwwggwwwwwxwvvxwwfggwwwxwfevvxvwwwwwhvwwwgxwwwwwwvvwvwwwvwxxwwwxwxwwxxwhwwwwvwxwwxwxwwwxwxwwwwvvwwvwuwwwvvxwwxvwxvwwwwxwwhwwxgwxwxxwwxwwxwwwxvwxwwvxwxxxxxgwwwwwvwwxwxgwxwwvvwxxwwfvvwwwwwwwwvwvwwwxwvwwwvwvggvhxvwwxgvhwXwxwwwwwwxwxxxwwwxwwvwwxwvxxxhwgwxxxwvxwxxxwhvxwxwxxxxxxxwxwxxxvwwxwwvwwxhwxxxwgwwvwxxwxxwvxwxghxhxXhhxwhxxxwxxwgwxxwxxxxwxxxxxxxhxhwwxxxhxwxxtwghvvwwvwvwwwxeufgwvwfgfwghtuvfgwwwgeUwwwwffUvVwwwwgwwvxvgvvwufgewwhwvfvwwgxvwwhgxWeUvwwxfGgevxeeewwwwvwwwxwfvvxVwwewgwwxvvwufwvxwwwwwggfwuvwwwwwxxgVwggxwwwgwwwxfvgvvwgwvvxvvvwwgwxwgxwwwxgwvwwwwwghwxhgwwgwwxwwgwvvvvwwwwwwwwwgvwwxwwwgxxwgwwvvwvgvwgvwwgfwwwwwxwgwxxwxgxxhwwwxwwxwwggvxxwwwwxxxxwxwwwxuugwxxxfvwwwwwvfxwxwxvwwvwwwwxgvxvvgxxxwxwwwxwwwwxxwwxxwwxxxxxxhxxwwxwxgwwwwvwwvwwxwwuwwwwXwwwwwwgwgwwwwxwwwwxvvwwwxwxwgvfwvwvwwwwwwwwwwWxwxghwwwfxhwxxxxgwvwxwwvwwxvwxwwwxwwxxxwwxxwgxvwwxwwxwwxwxxwxxvwgwwgwxxxwxxwxxwwxwwxxxwwxxwwxxxhgxxxxxxxxwwhwxxwxxxxwxvwxxwxwxwwxxxwwxxxwxwwxwxxxxwuwggwggxfvwwxwxvffwvfvfgwgwwxwwfvvvffvvvggffwwvfgfggwhxwvvwfvveuvwwgvwggwwwwwwfwwwwvvwvwgvgwwwfvfwxwwwxwhwwxwhwwwwxvxgwwwgwWgwvxVwuwwxxwwgvwwwwffwwwwwgwwwvwwxxxwwgwwvwggwwvwwwgxgwvxgvxgwwxwhhwwvwwwxwxwxgghxxwwxxwwwwvxxwwwvgwwwvgwwgwvgxxwwwxwwvxxwwvwhgxxwwgwwxwxxxwxxfwwxwxgwggwxhwvxxxwwxxhxwxxxxwhxwhxwwgwxgwxxxggwwwgwwxwwxxwhwvxvhwxwxwwwgwvxxwxxwxwxxwhwxwwwxwxwxhxhxxxwxwwwwwxwwwxhwvvwgxvxwwwwwwwwgfxwwwxxwgVvuxgvxwwwxxwxwxwxwxxvxxxxwxxwwxwxxwxxxxwwxxxxwwxxxxxxwxwxwwxxvxxxxxxxxwwxxxxwwwwgxxwwxwxwwxwwxxwxxxxwxwxwwxwxwxwxxxxwxxwxxwxxxxxxwwxxxxwxxxxwxxwwxxxxxxxwvwwxwxwxwwwxxsvfwVfeVgvewfFVvgvwwwwwwfWfwwvgfvfuefVdwvgfvfwveWufvfvxwxfvwfffvgvvvvgfwwwwwvwwgxwwgwwgeVfcuVuwggwwwvvwwwwgvwwxwwwfwfwfV6tfVevfwffwwgvvgwwxxwwvgwwgfuwfwvxfgvwgwxwxxwwfffvdvVufwwwwvgvvhwvvwwgvgwvwwwwwgwwwwwwxgwvuxwxwfvvfvvvwvVgvfwwgvffgwfvwvwghfvgvfwwwwvwtfwwwwwwwwwwwwwxwxvwwhwvxfwwwwwxwwxwwwxhvvwwwvwwwwwwvwwwwwwwwxwwffGuwuwgvvwwwxeewgfwvwxwgwxvvxggwwwwxgwwwwxwgfwwwwxwwwwwVvwwwfgwwwgwwxvwwwxxgwUwxxwwxwwwwwwxwwwxwvvwVfvvwhwgWwwgvvwvwugfwwwvwwwwgvwwwwwvxwvwxwgfwWvwgwwxwwxwwwwwwwxwwuvgwwwwXgwwwgxxwhwwxxwwwwwwwwwwfwxwxwwxxxwwwwwvwxwxwwxwwxxxxwxwxwxvwfwgxvhxwwwxxvwxhwwxwgxxxxwwxxxwvgfvvgwfwwwWvwwxwwwwwwwgwwwwxwxwwwhwgwwgxwwwwwwxwxwxxxfvxwxwxxhxwhxggwxwwwvwwwwwxgwxwwvwwxxxwxvxxxwxxwhwwxxxxxhwxxxxvhwwwxxwwxwwxwWxxxxwwwxwxwvwxxfwxxtgwxevvwewffeTTvuwvwveuwwfvwfffgvvvffvvvvuwwfvvvwwvvvvvwwwwwwvgTTvwfvwvgfvwvvvwggwwwgvwwvgvvvwugwugwwvvwfvwwwvvWwwwvVvffguvwwwfvfuvvwugfgwwwgUwgwwvwgwwwwfxxgwvwwvwwxxwwwuwvwvfevvgwvvvxwwfugwwwwfvvvwwvwvwxwguwwwwwwxvwvwwvguwfvvwgwxVvwwwfwvwvwwfWwwwwvwvwvwwwvvwwwwhvwwwwwwwvxwwwwwwxvvgwwxwwxwvwwxwwwwwxwxvwwggxwwxwwvxvvwwvwwwwvwwgwwwvfwvvWuwvwwwwwvvwwwvwwvwwwxwwwwwwwwwwfggwvwxxuhwwwxwxxxxwxxxwvwfwwvvvwvvwwwwwwwwwvwwxgwgwvvwwwwwxwwwwwwwwvwhwhwgvvvwwwfxwwwxwwWwwvggwxwwwwwwwwwwwwXhwgxgxwwgwwvvwwwgwxxxwwwxwWwwXwwxwwwhxwwwvgxwxxwwwxxxxxxxxxwwwxxwwxwvvvwwwxwwxwwwwwwwwwgxwxxwxwgvwxwwxwwxwwwWwwfvxxxwXwwxwwwhwwgxvwvWwxwwxwwwxxxxwxwxwxwwxxwxxxxxwwxxxxxxxxxvvwwwwwxxwwxwxxxTvVvTeewevewvVdvTeefwfeVeffwgwwvUvugefevuvwwvvveEUvwggfewwwvUveggeeffVdvWvfgeeVwhgffvwwwgugfUTvegfguvvwgfwwWgfwgvXwgvwwwfxUfvvffUvdgevUvdweVVwggWfwvxwxewdWvvwwvwwvgFvuhwhvxxvwwxvwfvVwvfeweguwgwevgffgwgfgxgvwwwgfffvwwwugwVvxggwgvwwVwxwwwVvfwwvfwggfwwvwwffwxwwwwvwwgwfgfvgwwwwwgwfwwwwwwhwxxxxxwggwgwxwvwwvwwwwwwxhwwwxxwwwwwwwwxwxxwgwhwxxxwgxxxgvWwwvgwfwuwwwvhvggwwxgwwgwwwfwxwxwwwwwhxxxxwxwwwgwwwwwxfxwwwwgxxxwwwwwwwxwxxxwwwwwwwxwwfxvvvgevwwgvxegfvgwwwfuxxxvuwvVvxwxfvxxxvxxxvgewwvgvvfgfgwwwxgewwwvwxgewvgvfwwxwwwxewwwwvxxvwwvwwvwvwvxwwxwwvhwvgwwxwxgxxwvwwwgwwwwwxwvwxxwxwxgwwxvxwhxgwxwvwwgwvwwwwwwwvwxwgwxxvwxwwwwxwxwwwwwwvwxgwgwgwwxxvxxxxwxwxxwxwvwwxxwwxwwvwwwwwwvwwxwxxwgwwfwxxhxwwwwxhwwwxwwwwwwfxxwxwwwxwwwxvwhwgwxwuwgxttvwfwwwvwwwuwwefwfvwvweufweffvwvwgwvvfwwgvvgwwwwwuvWvfvvwwwWuvFgtwwxwwwxvvvwuvvfwwwvwxwwwwvgwxwwgxvfwwwwfuwfwxvgvwuwwwwwgvwvwwvwVvgwfwffgxxwwwwwwxwwgwwvvwfvvfwwwwwwwgxwwggfwvwvwwwwwwxwwwwggwwwvxwvfvvwvffvwvggwwWuwwwwwxwwvvvvvxwwvxvwwwwwwwwwwwwwwvgWuwwxxwghfhxwxxwwwwwwwwxwwxwwhxwwwxwwwwvwwguwwwwgwxwwwwwwxvgwvwwwwwwwwwwwwwwwwhwwwwwxwgwxwwwwgwxwwwwwwvwwxxgxwwvvfwwwwwgwwwwfwxwwxwxwuvwwwgwhxwwwwwxxxxvxwwwwwwwxwxxxxggvvhwwgwxwgxxwwwwWgvwxgwxxwwvwfwwwwxxxwxxgwxwwxxhxwwxwxxxwwwwxwxxxhwwxxwxvxwxwxwxwwwwwvwwgxxwwwgwwwwwwwwxgwwwwhgxwxwwxxxxxhxxwxywxwhhwwxwxwxwwwwwwwxxwwxxwwwwwxwxxxxvxxxwwxwxwxgxxwxwwwwwwwwwhvvwwxuwwvwwwxgugvwwfvvhufwwgefwgwwgvwfvWwuggwwgvvvuwgufxvvvwwgefwwwwwwvxwwvvgvfgwvvvwwwwwgufvwwvwxwwxgwwvuwxwwxgfwvwvwgwwxwwwwwWvwxwxgvwxwwxvfwvvuwvwxxgvwvgwfwvwwgfvgxwxxxwwwwhxwwxwwwffxwfwxwgwwwwwwwwwwwwxwvwxxwxvvvwwwvhvxvvwxguxxwxwxxwwwwxfxxxxgwvwvxwwvxwwvxwwwwvvvwvfwvwwxggwxvxwvwxwxvwgwvuvgwwhxxwwvhwxwwvwgxwxwxwxwwxvfwxwgxxwwxwxwwwwwvwwwxwxxwwwxwwwxxwxwwvwwwwvvwwxwvwwwxxwxvwwwwxwwvwwwxxxhwxwwwwxxxxwxxxxwwwwwwwwwxvxxxwvwwxxxxxwvgywgwwxxxxwwwvxxxxxxxxxxxxvxwxuwwwvwwfgwvfvvgvwguuwwgWwwfgVgvwfvfvgwvvvwfgfwfeuuwvwwwwwwwwwwwuwwvgwggwgffwwWfgwxwwxwvwvgvgeffwwvwwvwwgggwvVvVwwxwgwvvwvvfwWghuwfWvfVfvwwwvwwwfwwwwwwvwgfwwvwwwwwxwwwgvfgwvxwwxxgwgxwxxxwgggwwxvxgwwvxvxxwgxggxgxwwwwxwwwwvxwggwwwwgwwwwgwwvwwvvvvgwwvgwwwfxwwwxwvwvwwwwxwwxwxwwgwxwxxxwwxxxgwwwwwwwwxvxvgvvgwgwwhwwwgwxvwvwgwwwwxwgwwWgvgwwwhguwxwgwxvxvwwwfwwwewwwwwwxxwwxwwwwwwwxvxwwxhvgxfgwxxwwvwwxwwwhwxxWwwxxwwwwxwwwxxwwggwwwgwwwxxxwwwwwwwwxwXwwwxxvwwwwwxxwxwxwwwwwwwgwxwxxxWxwxgxwwwwwwxwggxwhxgvxwxwxwwxwgxxwwwwwxwxxxwvwxxwwwhxwwxxwwwwxxgwxxwxxxwxwxxxwxwxwxwwwxwwxvxwwxwwvvxwvwxwxwxxxxxxwwxwxxwxxxvxwwwxxxxwhghxxxwwwwxxxxxxwxxxxxwxxxwxxwxxxwwwwwwgwtfvwgwvwvvvxgVuvwwvxgvwffffuvgUfdfgVevgwwgwwwdffuevufgvxfvvwwwuwhgvwgwggffvggfffwwxwvfeevvgggfvvwxtuefwvuvwxwwxwewuwfWTvwwwwwefffvuwwwwwUfFfgVVwwwwwwfuvwVwwwwwfgeggvggwvwfgvwwwvwxwwwefVfwwvwxwwwxwgwwghwfxxwfuwwgvwwwfvwuwwwwwuvvxxfxevwvvwwwwwwxwwwgwvxwxwwwvwwwwvwwwwwvwwwxxvxwgwvgwgvwvxwwhwvxvvwwxxvxwwxewVggfgvvwxwwgxhwwwwvwgvvxwwwxwwwvWWwggfwwwwvxhvvfwvgvxvxgxxwwxwxhwxvvwgwwwxxxgfgfwxgwvhxvwxwwwgggxwfxwwwfgVvvfgwxwwgwwxxwwxwwvwwwwgWVhwhhxxxxuefgxvwvxxxxwfvwwwwxxwwvgwxxwwwwwxwxwwwxwwwwwwxxxxvxwwxhxvxxxwxxxwxxvwxxxxwwxxwwwfvvwgxwvwxxwwwhwfvvwwxxwwwvxgxxwvxxxwyxvghgxxxwxhwwxwwuxxggxxwgwwxwwxwxwwxwwwxwxxwxxxxwwvgwxxwwwxwxxwxvxxwxxxwhwwxvxuwxwxxtwwwwwwgvwwxfWfvvvwvWfvvwVgwwwvvwgvevvvwwUffvwvwvwvfvuvwwwwwwwvewgvfwwwfgwfwwvwvfwvgwgvwfwvwvwvvwgfwwwwdvfvvgwwfggvgwwwwgwFwgvgfvgggvuwwwwwwwwwwgwdwggwwwwwvvwwwwwwwwwwwwwwvwvwgwxvwvwwvwwVvxwwwvwwgwgwvwwgxwwwwwwewxxxwwwwwwgxvvwhwfwwwgwwwwggwwgwwvwxwvwwwxvwwwhwwwwwxwwwxwwwwwwxhwgwwgwvwxwwwwwxwwxxwhwwhwwwhxxwwVwvxwwwxwwwwwwwwwxvwwuwhwwxwvwxwwvxwxwwxwwwxwgwwxwwwwxxwwxvwwvxhwwwwwfwwwwwwwvfwwxxvwwwwwwwxwwxwwwgxwxwwwgwhFvhxxwwwvwwwxwwwwxwwwwhwwwwgvwwwwwxwxxwxwxxxxxxwxxxxwwwwxwxwxxwwwxwwwxwxwgwwwgwwwxwvwwxxxxwwxwwwwwxwxxwxxxxwxxxwxxwwxxxxxxxwwxxwxwxvhwxxxxxxwxwxxwxxgyxwwwxxxuxwwwwwvwgwfwvwwwffwfwvwUffvwwwwwfVwwgfwwwguvwwVVggvwugwwxwwwevgvwwvvwwgvwfggvUfwvwevggwvwwwfgfwwwxwwvgfwwwfguwwxwwwwwwguwwxwxgwvwvwVggvgwwfvwwgVvwwwvwgwuvugwxgwwwwwwgwwwvxwwWwWvgvwxwxwwwwwwhggwwwxxwwxxvwwxxggwwwgwfxxwwwwgwwvvwxwwxwvwwgwwwvwxwwwxwwxWgwvwvxxxwxwgwwwxxwvwxxwxwxxwxxwwwwwxvwwvxvhwxwxxwwWwgxwwwggwxwvxwgwvhgfwwgwvvwgwvxvwxvxwgwvwwwwxwgwgwwwwxwxxxxwwwwxwhxxxwxxxwxwgwwwwwxwvwxxvwwwwwvvwwwgvwxWwwwgwwxgvwwwwwxfwxxWvwwvxwwwvwgwgxhwwxwwwwxwxwxwwxxwwwxwwxxxxxvwxwwwxxxxvxwxwxgxwxxwxxxvxxvxwxxxxwwxxwxwwvxwwwwwwwxgxwwxwgwhwxxwhxxvwxwxxxwxxwwwxxwgxwwxhwvxxxxgxxxxxwxwyxxxwxxhxwxxxxxwxwxwhugfFfvvVffgffVvvwwxwwgggxwwwfgffvwvVdwvwvxvvwwgwwwwwwwgwgwwxfffwvwgwVvfwwwwxwwxwwwwwvwwvwfwwvwwwwwwgwwwxEeuwUgfuvgfgwwvvgvvwwVuxgwwuwwgwvvwwwwwfvwxwwwxxwvgvfedvevxwWghwggfwwwgwgwwwxfwwwxvxwgvwwxwxGvevwFEwegVwgwwxfWfwgwhwfvfwhWxufewvufhwvwwwxwwgfwxwggxgxxwwwwfgwwhwwwvwwwWgwwxhxgvxwwxwwvwwfvvwxwwxxhxxweggvgvuxgwwwwxwfdugwgfwgWhvwwwwwwwwxhxwvhvwwvwwwwwgwvwwwfwvwwwvvgvwxwwwvwxxgwwggvwxxwgwxxgvxwwfgggudVwvwwxvwwgwwwxxwwwwxwwwwgxwwxxxxxxxvwwwvwwwwvvwvxwwwwvwwxwxwxxwwwwwwwwxwxxxxxwuwwxwvvwxwwgwfvxwwwxxxxwwwxxxxwxwxwvwwwvuwwhxwwwxvwwxxwvvxxxwxxvwwxwwwvefwgvehwwwxwxwxfgwwwwxwwxwwvwwxxggggxwwxwwxwvwwwxxwwwwwwvwgxxfwwvwwwwxwwxxxxwggwxwvxhggvxwxxhxxwwwxxwwwwxwwxwwwxwwwwxxgghxxxxwhhwxwwwxexwxwwxwvfwwxxxxwwwwwxxvwxwdVVguvfdUVvffeufwffggvvdVfufffgfwwwgfdvwgvwfwvvevUwvwwuvxvwwevvgvfwufVvWfgwuwwwwgwgwwwwwwwwvUwfwwvwxfwxWwwxwvgwxvxwfvvUUdeduufWgvffewUvggvfwWfxvwvwwwwwxxvvvxvwvwwxxfevwegvwffwvwvwvwwgvwfwvfVwfvxvgwwwwwwvxwgwhwwwxxwevvvvgfwfVUvfggwVVfwWWwFVegggvwwvfvwwvwuwxvwwxVffwwwwwvgxwwwhhgwwwggwgwwwgwwhxwfgwwxwwwwxwwfwwxxwvhgvwxwwWxxxxxxwgwwwwwfefewxwVgffxwwevvgggwhvvwgwgggvvwwuwwwwgwwuwwvwwxwwgwfgvvwvwvgwgwxwwhxwvuffwwwxwwwwgwwwxxvwxwxxwvwvvgwwwuvuwffwwvvwvevvfgggvwfxggwwfvwxwwwwwwwwwwwgfwxwwxwxwvwwUggwwvuwvwwxgwxwwwwxxwwwgvxwwwwxwwxgxxwxgXwxxxxxwwwvwvgwxwwwwwwxfwwxgxwwwxwwxwxgxwxwvuwxxxxvwvwxfwwwwwxvwwwwxwxwwxxwwUuvwwwvvwuwvwxFWfwwwgwvwwgwhwxwxwxwhwhwwwwgwwgxxwwxxfwwxwhvgvwWwwwwwwhwwxxxwxwwwxhwwwgwwggxxvxxwwxwuwggwxfwwxvwxgwwxwwwxwxvwxwxwvwxwwwwwwwvwhwwxwwxwgwvwxxwxwvwwgwwwUvuwfeVwvgwwwxegWwwwwfwvgwwvvwvwwvwxgfgwwwvxwwvhxwgwwwwwvgvwwwxvwfwxgwwwvwwwwwwwwwwxxxxxxxwwwUvuvgvwVwgffuwgVVwwwvwwvvvugvwwxwxxwfexwwxxwwwxwvwfewwxffuwwxuvgxwxwxgwwwwgwgwxwwvwgwhwxxwxwwVwvgvwfgVVwuvgxugfwwwwwwwxwwwxfhwxwwwwvwwwxwwgwwxwxwxwwgwxwwwwxwxwwvwwxwxwwwwxxgwxwwxwwxxxxxxhwxxxwwxegWwgwwwvgwwwwwxxgwxxxwvuxxwxvxwwgxwwwwwwwwvvwwwwxwwwwwhwxxxxwwwxxwwxwwwfwvgwwwvugvwgwgfhwxxwvuxwhwwhvxwwwwxxwxwwvwwwwxwxwwwwwwxwxxvxwwwxwxvwvwwwxvwvwwxxxwxvxxwwwxxxxxxxwwwvwxwwxwwwxwwxxxwwwwxxxxwwxwwwwxgfgwwwxxfexgwhwgwwxxhwwwgxwwwxwxxxxxxxxwwwwwvxxxxxwwxxxxwwxwxxxxwwxxwxxxxwwxxxwwvhxwwwwwxwwgwwwwwxxwxxwxwwwwxwwxwvwwxwxwwwwwwwxwxxTegvEeefVevweffwEeewwVfVvFevvwwgUuvveUTvuwgwVwweVfvwggfgvvxgwefvwwffwgfvwwvwwwfgwwwwvwwvxwffvvvfwwwwxwvwwwwwwwwxxxUvfgeeedVvvfvwfUfvwgguUdvwwVwdguvduvwvxxwgwvwwwgxxvwvxwgugwgggwfuwwwvwwgvwwvwwgwhwwfwwwhxwwxxwxxxwwwUevvgVVVfFefwvwgVVfwghfgvWfwWvgfEUvwgWfWvvxwgvwVfgvwgvXwfvwwfwxvwgwwwwwwxghwwwwgxwxwgwwxxxwwwwwwwvhxwgwwxwwxxwxxxfegwvffvVugwxgvwgefwwfvggVwvwgwffvfwwgvwwgexwxwwWwghVwwgvwwgwwwvwxwfxxwwwwwwxxwwwwwwwwwwwxwwxxxwxwwfgvefvvvwwfuvVvvwwwvvxgugwfvwxxxxevxgxxxwvwwwwvxwxgwwwxvwwwwxgwwwxxxwwxxxwxwxwxwxxwvwvxwvwwwgwxwxwvwvwvxxwxwvwvwxwwxwxvwxwwwwwfwwxwwxwxhwwxwvVvvwwwgvwgwwvwvxVvwffvwgxxVvwwVwxwxxxgfgwwwwgwwxwgwwgvwwwxxwgwxxghgwxxwwxgwwwxwwhxxxxwwxxwxgwwwwwwvwvwwhwxgwxwwxgwxxvwwxwvxwvwxxxwwwwwxwwxxwwfwwwwgwwvwwxsfgwvwvwvevwffuweefewwwwfedvwvvffvWvuVuwvgfveefdfvxffvwxwxfvvfvffvvevfwvgvggwxgwfwwvwvfvgvGfhwvwwwwwfwwxwwwwxwwwwffwwwvwfVevvwwfcetgvxffwfwwvwvwvfvwwxvufwwxxfgvwwwftfVehvvvwgwwWuwwwfvwwgwwvvwwwwwwxwwgvxwfghwgwwwwfvwwwwvgvvwxgwfffwvwwggvfwwvwgeVfgwwxwggwww6VuWwvwvwgwwwwxwwxxwwxwwhgxwwwwvxwwwwxwfwvhxgwwxwwxwwwwwxxxwwgwwwwxxwvwwwfffvgvfwwwxwFVvWhgwvgwgwvgxvvwxxwwvwxwwwwvvwWwwwwwwwwwvwwwwvxwwewvxwwgfwwwxxwwwxxwwvUwwwwwwwwwvgwuvvwxwvgwfevwgwgxxwxufvwwxwwwwwxgwwwgwggwgwwxvfvvuwvwfwwwxxwggwxwwwwxwwvwwwxwhwxxxwxgwwwxgwwwwwwwwwwwxwwwxwwfwxwwwwxwxwwxwxxwwgxxxxwxwxxvwvwwwxwwwvxxxwxwwhxhwxxgwfvwwwxwwwxuwvvwwwwwwxxwwWgvwvxgwXxxxwwwXwwhwwwwxxwwwwxwxwxxxxxhwxxwxxfxgwwvwxxxwwwxggwwwxwhwxxfvwwgwwwwvxxvhwxxxwxxwwwwgxwwxwxxwwwxuwwwxwwwxwwfwgwtwvxWvwwVfwfwgfVvvwvWVweEEvwfffvvvgvggwvxgugvwfgfvwvvgwfwxwxwgwwhxgewfgggvwxvWvwwfwwwwgxwfwWwhwgwvwgvwvwxwwvwwwwxhwwwwwwefvxuggwwwvwwxfWvvwgufffvxwUvwgwxwvvwwwwwxwxggwwwhgwfwwwwgwgfwgwwxugwwwwwwggWgwwwwwwwgvwwwxwwwvwwgwwwwwwwwgwggvwgfwwgwggEEvwggwgfggwgwgvggwgwwxWwgwwwhwWwghwggWvwgfxvhwhxwwxwwwwwwwghwgwxwwxxxgggwwxwwwwxxxxwxgxwwvwxxhwxxwhwggxxggugwwxwxhggwwwgefgwWfgwggvwfgvvwuxwwwgxgwwwwwwgwxvxwwwwvhxwfhxhwxwwxxxWxggwwwxxxwxxvxxxwxwwfwwwwwggwwvggwwwwgwwwxxwvgwggwwwxwwxvxwhwwwxwwwwxxxwhwwwggwxwhwwxwwhwgwxwxwxwwwwxgxgwxxxwxgxxxwwxxxxwwhvxxwxxgwwwhwwgwxxwWwxwxwwxxXxxwxhwxwxwwwxxxwxxxwwxwxxxxxxxxxxwxxwgggwWwwfwxwwvxgwwwwghgxwxwwwwwwwwxvxwxxXwwgxwwwwvwxxhxwxxwxwxvxxxwWwXwwxxwxxxxwwfwxhxwwxwxwWxxxggxxwhwhwxwxwwxgxwwxxxxxxwgwgwwwwxxxxxxxxwxwxxwxwwxxxxxxwxxxxggxxwwwxwwxwxxwxxxxxuwwxfwwwggwwwwvVfewgwgwgWuwwwxeguVfwgwwwwfvwVvGvfgvWgwxwgwgwwgfwwwwwvxwgwwxwwxwwwhwxvwwgvvfwhwwwgfgvwxgwhwfTftwfvgwvgvwEvWvfwvhgwvwhfgfftwvgwwxfwvxfwxwwwfffwvWvWvwxxwVVugwgwwgwtvvwVXvwwgwvhvxwwwhwwxvVvuwvgfgfgfwwwwgGUwwwwxfvVwxhwhdgVvgwwgwgvgxwxgvfgwxgwwwxhwxgfwggwxxwwwxwwxwwwxxxxxhhxwgvvvwXwxxxwwhvxxwwwwxwdvfeuvwwvwxxxfwfwxwvgwggwwwvxfxwxgxwwvwwwvwwwwvwvffvxwXwwwxwgwwwwxxwgvwxwxvwwwgwvwvwwwvhwggwVvwgxvxwxvefvwhwwwwwwwxxwgvxwxwxvvwwwwxwwwxxvvvvxvwgxwwxwwwwwwgwxxwwwwxwxxxxxxxxxvvxwwwxwxxvwvghwwwxwxwwxxwwxxwxwwwgwvvwvwxwxxxxwwvwwvxwwxxhwwxghwggfVwwwvwwwxwxfwVwhwhwxwwwwwwvwwwvxxwwvxwhwgwwwhwxwwwwwxwgxwxxxgwghwxhxxxwwhhxwxxwxxwwwwwxwgwwwwwwxvwwggwwxwwwwxvxxwxwwwwxwxwwwwxhwvwxwvwwxxwwxwwghtegwVwwwFgewvvvwEWffvgVwVffwfvgxfvvwvgfwvfUwfvgxugevwvwfwvgvwghWfgwgggwfvvwVvvwwWgwwwwwguvxwWvxvgvwgvfwggwgvxgvhwwgwwggvwUvwewvvVvwgvvxeffvewwfVwwwwwwtwfvvfvvwwfgwvxwwwwwwwwwwvwgwgwdwvwwvgvvwvuvwwgvvxwvvwwwwwwwvxwwwwxwwwwxvwgvfxwffwVfVvwwwwfVVwgxgwFffwwwwwwWvwgxffFWwxwxgvfgwwwgegghwwxvwgxgwwhggwwxwwwwvwhwgwxxxwwwvvwxwghxwvwwxxhxwgxxfvvwwvwgvwgwwwfvuwwfvxvwvfwwxwwvxwwwwwhhxwvwwwwfwwvvwxgwvwwwwwgwxwvwgwwwgwwxwxxxxxwgxxvwvwwwgvwwvfvwvvwggwwfwGwggvVwgxxwxwgwwwwwwwvxxwxwfwxwwxwxwwxwWwewvwgwwxwxwvwvxwwvwwwxxwwxxwxvxwxxwwxwxxwwxxvwwfwwwvwxgvxwxvxvwxwxwwwwwxxvwvwxwwwwwwxxhwxwwwwxxxwwwwwwxwxxxwvvwwxxvxwxvvwwwwfwwxxxfwvwwvgwwwwwhxwxwwxwxwvxxhgwvxwwgWxwgxghhhwxxwxxwwxxxxxwgwXxhhwghxxxxxhxxgxxxxwwwxwhgxxwwvxwwwfwxwwxxvwwwwxxxwwwxwvxxwxhxwwxwwwwvgxxwwwxwwwwhxxxgxxwwxvwwxwvwxwxxxwxxwewxgwwgwwwWwgfvwwwwwwgfWfgfwgxwWvWwxwguwWfWwhggwvwwwxwxwhwgwvgfvxxxwWwhxwgwwwvwwxWwwwwxwwwfhxwvgwxwwvwfwhwgwwwwgwgwwwfvwgggwwgguvwwfwwwwgwxwxxwxxxxvwxvwwxwwwxwwwwgwxvfxxxVwwwfwwvvewVwfwwxwxwwwwwxhvxxxwgwwwwwfvwwWvWwwfwgwWwWVWvwxxwfevwgxwwgwwgxxxWwwwwvxgwfwhxwxvxwhvwwwxxgwxxwwvhwgwxwgxxxxywghwxxwggxxxwwxgwxwwwxxwwwxgxxgwgwVvwwgxwwvfvfwWxwgvxwwwxxvxwxxxwxxwhwwxhwwwwvwxxxwxwwwxwwxwvwwxxfwwwwxwxhxxxxgwgwgwgwwxwggwwwwxvwgxgwhhwxxxxwwxgwwwxxwgwwxwxwwfwwvwggwxvxxwgwwwxxgxwxxxxwxwwxfwxwxxwxwxwvxxxwxxxxxxxhwxxxvxhwxvwxxxxxxwwwgxgxgwwwwxfwhwwwwxwvxgwhxgwwxwwxxwwxwwxwxwwwxxxwxxwwxwxwwxxvxhwxxxwxxwwwwwwwxwwwxwxxxxwxwwwxxxwxwxxwwxwwyxgwxxxxxwtggweefvfvfgUVvuvwvwwfffvvevwfVevwfgwgvvwfgevwwfwwxvvvwvwffgwgvvwwxwWwuwwwxwgfgwvwwwwxwxfwxwwwwwwwfvvwVdvuvwvfvvwfvwvwwvwfVewvggvfwxwgvwwgxgwvuwfvvwwwgvxwfvvwxwwgxxwwwgvwwwxwwgwhwxwwwxwwfvvwvffgVgvFfdfwgwwwvwgwvwgvwwfgwwwfgxfhwwgwwwxwwwwwxwxwgvxxwwxvwwwwwwwxwxwxwwwwwxxxxxwxwwwxwwxwgvxxvhwxxxxfffUgefvwxwwwwvwvgvvwvxvwggvwwwwxxgwwwxwwxxgvxwwwwwxwvwwxvfwvwwxwxwwxwwwwxxwwxwxwwwwwwxxgffvuvwwwwgevwwgvgwgwgvvwwwwwwwxxwgwxwwxwxfgwwvwwxgwvwgwxxwxxwfwwwxxwwgxxxxhwxvgwvwwwgxvvwxxxwwwwvwwxwxxwxwwwwxwgxwvwwxwwxwwxxwgfvfvfvWgvwwxhwwwwwxwvwxxxxxwxwwwgwwwhwhxwxxxwwwwgxwwxwxxwxxwwwxxwxxxxvgxwxxwxxxxxwvwxwwwwxwwwvwxwxxwxvwwxxxxxwwwwxxwhwvwwwxwwwwwxwwwgxweffwVvwwFvtwfVewfvvwvwwwuffwgwww6vuwtVvwvfwgvvxweVUwfvvwwvwwwxvvgwVVeggWggevxggvvwwxwwwwwwgwwfVfffhvwwxwwwwvvwwwwvwxxxxwEvexcgfwvfueuevdgfwfvugvxwwxvfvwvwwvvwvvgwweuvwxwwxfwwwwvvfvvUvvgfwwwvwWfvvxwvwvwwwwwwvwvwwwuwwxgwhwwwwwxwwwVvvwfFdvffgfvwWWV6ewgfhgwvgvgfwVfgffwwwgfwwwhwhffGfwwefvgwhwvxwwvxgvhhwgwwgwgwvwhxwxwwggxwvwwwxgwwwwwxwwwwwwxxwhwxxhhweffefgvvuwvgwwevVgwWtvwgwwxwfvffwvfwwwgwvfwwwxwwgwwxwvwwwvwwvwxwwwvwwgwgxwxwvwwwxwxwxwxvwfwvwvwgvggvvgwwwwgwvvwwwvgfwvvwwxgwwxwxhxwwhxwfgwfvvwwwwwwwxwxwwxxxwgwwxgxwxxgxwgwwwvwxvuwwwwwwvfxwxwwxwwwwwwwwwxgwxwwwwgxwwwwwxwwxwwwxxxwwxwgwxwxwwxxwxwwxwvwxxxfwxwwvwvffwgvvxwwwgwwWvgwxwwvwxwwgwwwwwxgwgwwwgxwwxwwhwxxxxvxxxwwxwxgxvwxwwxxgwxgwwwwxwwxwhwgWwxXwwwwwxwgwxxwvuwvwxxwxwuvwgvwwwwxwxwxwwwxwwwxwxwxwwwwwwwwxwxwxwhxwfxwWwwwwvwxxxxxwxwvwwxwwwwwvwuwgxfvgwxgfggwwxgxgvWgvwxxwwgvwgwfwwwvhfWgwvwhwggxxwwwgwggggvwvxwgwxxwhwxwgxgwwgwxhwwwwxwxwwhwxxxwxgwxwwfwwwuwxggwwgvwxuwxwwvgwvwvvwwhuxwxwxwhuwxwwwwvwwwfvvwwvxwwwwfxwxwuxwgvwxxxxxxxgvvgwwwgfWvwvvxhghgwwgwwwwwwxxgvWvwgwwwwwxwgwwgwwxwxwwxxwwwwvxxwhwxhhxxxxxgwxwgxxwxxxxxgwgwwvwewvxwxgwwwwwwgxxgwgxwwwfwwxxxxxhvwwwhxxwwxwxxxwwxwwxxxwxxxwxwwxhxwwwgwhwwwxwgxxxxxwwvwwxwxwwxgxwxwvxxwXwxxxwwxxxxxxvxwvwxxwxxxwxxwwwwvxxxxxxxwwwxxxxxxxwxxwxxwxxxvxxxxxgxxhwxwWwvwwwwxwwxwVwwwxxwxwwvxvhxxxwxxxhwxwxxxxxxxhxxwxxxwxxxxwxwwwxwwwxwwwxwxxxxxxxxxxxxxxwxwxxxxxgxxxtgfwgwwggvvfffvvwwxgvwgWefvuvUdffdffugwwvvgVevVuvfvwwwxfuwuwwwwwWvvxwgvwwwxfvwxfxewgwgxwwwvxgwvwwxwwwwxwVuwweffvwwwwfEufuvwwwwxwwUdffvuxwwxwwwfVgewhewwwwwxweewwgxgvxwwhvvfgvxwwwXwxwvgvWuhwwwwwwwwwwggfwvvfvvwgffvhgvfwfwwWwwggfwwgvxwhvfVVvGeuffvxwwgggvwWgvvwwwxxwgwgwwwwvwxgxwwwxhwwwwxwvvwvxggwvwgwxwwgvwxwwwhgxxxfVvfvgwvwxvvgvwgwwvwwwwVVffwvwxwwwxhwgwwvwhfxwxwgfvwxwwgxhwvgvxwxgxxgvvwffgwwvxwwxxwvxvgwwwwfevxfwwxgvvgfvvwwwxxwwwvwwgxwxwwxxwwxwwxxxwwwwvwvxwfvvwxwxwwhfgvwwhvwxxhwxvxxwwxwwxwwxwwwxwxxwwxxgxwwwwxwxxxxxwwhxwwwwxxwwwwvxvwxxgeuWfevxxxhwhxwgvxxwfvwwhggxxhwxwwxwhwxwxwvgvxwhwxxwxxwxygwWwxwgwxxxxwgxvxhwwxxxwxxvwxxvxwxwxxxxwxxxwxxwxwxwwgxhwxvxwwxxWwwwxxtwwwgvvwgwwvewwwwvvfuvffuvwwwgvwvgwwvggwfuvggVggvwxwfUfwwwxwwwwfwvvwwwvwwhwgwwgwgwwgwwxgwwwwwvwwxwxgwhwwwxwxxwwxwwwvvvwgvwwwwgdwvuvwvfxxxwwwwwwvvwvwgwwwwwvdwwwwwwwwwwexwwwwwwwwvwwwwxwxvwwuxwwwwxxvwwwvwxxwwwxgfwwgfgfvwvwVgwwwvgwwwfwgvwfgwwFfvhwfgwwvfggvwgvvgwwwxwxgvwwwwgxxwwxggwwxwwwwxwhxxwwwwhwxwwxhwwxwxwhwxxxwxxxwwwwgwwgwgxwwwwvgwewvwgwwwvwvgwwwwxwwxvxwxxvxwwexxwwwxwwwvxxwwwwwxwwwxxwxxxvwwxxxxgwwwxxxwwfwfwwwwwwwwgwwxgwwwwwxwvxwwxwxwwwxwwwxvwwxxxvvwwwwwwhwwwxwxxwwwxwwwxwwwwxwxvgwxwwxwxxxxwxxxxxgxxxwhwxxxxxxxwwwdvwhxwvxxwxwgwwxwwxxwhwhwwwxxwwxwwxxwxwxxxxwxxxhwwxxxxxxxxxwxxxwwxxxxwwwwxwxxxxwxwwxwwwxwxwwxxxvwxywxwwuwgwwxgwxfgwwwwwwwffwgfwwUffgwwwwggWwwfvvwvwefwwVVvwwwuwvxxwwwwwwvvwxvgwgwwvfwxwwxwhvwwwwwwxWvhwwwvxwwxvxwxgvwwwwwgwwxvwwWvwegggvvwxwgfwwevvuwgwxgxgwwuwvxvwwwvxwvxwvwvxwvwhfvwwvxgwvvwvxwwxwvgvvwwxwwwwwxwgvwvgvwUwfgwVwfgggwvvwwgVgggwwgfgwfwwxuwwxwfwvwfwgwwwwwwxxwwxxwvwwwxwxxwxxxwxxxwvxxxxwwwwhwxxvxwwwwWvwxxwxxwgvxxxwwwwwuWwgwwxwwwgwwgwgxvwwwwwxwxxxgvvwxhwwwwwxwwvgwwxxxxwxwwwwxwxxxwwxwhxwxwwwxxxxwwvxwwwgwwxvvxxgwgwwwgwwwwuwwwvvxxvwwwwwxxxwxwvxwwxwwxwwwwxwwwxwhwxwvxxwgxxwwxwxxxxwxxvwxwxxxwwxxgxxxxxxxwxxyxwxxxwfwwwguvwgxhwxwvhwwgxxwxwwwwwxxwxhxwwxxwxwxxwxwxwwwwwxgwxxxxxxxwxwxxwxxxgxhhwxgxxgxgxxxxwxwxxwxxwxggxxxxxxwxhwwxxxxxxwxxxwxwtvwhVfuvgvwxffvgwvwwwgwwwxwgGvuffUfvgUVwwgwgwwwewwwwwwxgwxgvvgwgvwwwwwwwwwwwwwxgxxwwvwvvwxgvgwwwgwvwfvwwwfvvvwguevwwwwVwwfvwwwwwgfvwegwvwwwwwvwwWwvhwxxgwwwwwxfwvwwxfwxWguxwwwvwvxwwwvwvvgxwwhwvvxgvgxvgfwfVvwgwxvWwwxgxwhwwvxWUVvVeewfgGVvxwwwwwwxwxgxxxwwwwvhxwhxwvwwxxwwxxxxxwwgggwwwxxxxxxxwxxwxfvggvvwvvwwvgwvwwvxvxxwwwvvwwwvwwvwhwwvwwwxwxwhxvxwwwwxwwwwwxxwwwwxwwxxxxvxxxxxxwwwwgwwWwwwxwwwwwgwwwxwxwwgvwwgvwwwwwwwwwxwwxxwwgvwxwxwxvwxxxxxxwwxxxxwwxwxxwwxgxhxwwgxwwwwxxwwxwxxxxxxwwvwxwxxxxxwwxxwxxwxwwxxgfgwwwwxgwwwwxxgwwuwxwwxgwwxxxfwxwggxxxxxhxwwxxwxxwxxxwxhxvxxwxxxxxxhwwxxxwxxxxxxwxxxxgxxwwxvhxxxxxwxxwxxxwxwwwxxxxxxwxwxxwxxxxxxwwxhxuxwwwxvgvgfvgwvffwfwgfwgxvwwgfvvggfggffwfwfwwxfvvgvvwxwwvgwgxvwwwwwwwwgwwggwgxwwwwvgxwwvwwwxwgwxwxwwguwgwweuwwwgxvvwwwwwgvvwwwfwfwwwxwwwwvxwwwwxxwvwvvwwxwgwwvwwxwvwwwwwwwxvwxvwhwgvwfggwwwwwggwvwgwVvuwfwwwwggwwxwgwgwwwxwwvvwwhwgffxhwwwxxfwwgwxxwgwgxxwxhwgxxwhxxxhxwwxwxxxwxxwvxgwwwvgwvwvwwgvwwxxvvvwwwwxwgwwwvhgwwxwvwxwxxwhwxwwwwxhwxxwxwxxxhxwwxwwxxvwwxwvvwwwvwwwfxwwwwwwwxwvxxwwwwvxwxwxwxxxwxwwwxxwwxxwxxwwwwwwxxxxwxxxxxxxxxxwxxxwxxxxxwwxxvwwxvxvwxeuvwwxwwxgxxxxwwxxxxwxxxxwxwxxxwxwwxxxxwxhwxxxxxxxxwxwxxwwxwxxwgxxxxxxxxwxxwxwxxxxxxwxxgwxwxwwxwwwxxtggggggwfgwwwwfgwfgfgVfgggwwggwwggVVvgggwvxfUEgwgwgwwvxwwgwwwgggwvwfggxgwwxwxwwwwwwwxwVfgwwxgwwwwhwgvwxvxwwwhwwxvwgwVwgwfvwvvfgggvgxgxwwvwxwxwggwwfwvwwwwxwwwxwwwvfvxwwxwwwgxvxwwvvxwgwvxwxwxuwwwxvxxwwgwxxwwhwxwwwxwxxwwwwggghgggwfwgvwwwwgWVgwwwgvwhggggUEhgwxgwwxwxwhWfgwwgggwwgwxwwxwggwwwxxgxwxxxwgwwwxwwxwwhxwhhwwxwwwwxxwxwwgxxwxhwxxwfwggwfwwxuxvwWvvwxggxvhwwxwxWfgwwxxgvwwgwhwxxxwwwwxwwwxxxxwgwgwxwgxxxxxwxxxwxwxxwgxhwwxwxwxvxwwwgfwwwxwgggwwhwhwwwwwvxvxxxgwwxxwwwxwxxwggwwxxywxhxwwxxxhhwxxwvxxwxwxxwxxgxwwwxgxwwwxwxwgxwxxxwvxxhxwwxxxwxxxxxxwxxxxwwgvhvxxhwxggggxwXvwwxwwwxwwxxxxxwwwxhxxwxxgxwhxxxhwxxxgxhXxhxhxhxxxghxxwhxwxxwXxgxxxxxwxhxxhwgxxwxxxxxxxxwxwhwxxxxxxwxwhxxhxxhxxxxhxxxvwwfvugwwgwwvgwgvwwggwwwwxvxwxVuuwewWvxwwwwwhvgewwvwwvxxfwvfgVxxwwwwwwxwwxxxwwvwwxgwwwwvwwwwwwwxwhwwxwUvuwvgUvuggwegwwwwwwwwwwwwwVwgugwwwwwxwwVvvvwwxwgwvWfwevfghwggwgwwwwwxwxxxxwwffuwwhwwwxwxwxwwwwxwwVvfwuXewhwwwwgwvgVwwwvvwwwxwhvWVwwwwwwwxhgfufgwxwwwxwwxxxwwfwwgwwwxxwhwwwxxxxwwwwwwxhvwxwwxxxwwwxuwWwwwwvuvxgfwwwvwxhvwwxwwwwwvwxwxwxvwwxxwwgwwxwxwwgwwwwwxvwwwxxwhxwwwwwxxxxwwxwvwwwwwwgwxvwxwwxxwwwwxvugewwwwxxwhvwwvxwwwwwwvwwxwxwwwhxxxxgwvxwwwwwwwxgwwxwwwxxwwwxxwxxxwxxwxwwgwxwxwwwxxxwwwxxwvxwxwxxxwwxvwwwxwvgwwwwgwwxwwwwwxwxxwWwfgwgfxxxxwwwgvwwwxxxxxxwwxwhxxxxwxwxxxxxxxxwwxwxxwxxwxxwwxwwxwxwwgwxfwxxwwwxxxwwxwwwwwwwwxwxxwwwxwvwwxwwwwwxwwwwxxswfggvvWggfwvT5vwvvgvggvvffwwwfwgvvfvvWuvgfwwgvwwggwwwwwuwwwgwwwwwfvwffwwvwwwgxwwwwxwwxwwwwvffvxwwvwwwggwwwwgwwwxgwwxvgfwwffwwggwwwwwfwwvwwwgwwwwwwwwvvwwwxvwvwwfvgwuwxwwwwwwgwxwwwwVwfgwwfwWwwwwwwwwxwwvdwgfwwgwvvuxwhgxxxwxwfvwWvgVvwT5vgwfvwgWwhgvggwfwwvWwvvWugwwwwwvwwxwxwvfxwvWwwxwggwwxwxwwgvgwwwvWwgwxwxwxwxxwwxwvWxvxwhwwxxwwxwhwwxwwxvfgwWwvwgvfvwwwVvfvvWwwwxwwvwvxvwfwwgvgwwwwdwwfgwwwxwwwwwvWwxwwwfxxwwwwxxwwwxwxxgwgxwxwwxxwfwvWwvwgwvvfWwwwwxwwvwxwwwwgwwwxgwwxwwwxwxwwxwvWwwwgwwxvxxxxwxwgxwwwwwgwwwxwwhwxxxwxxxvwvwwwwwwwwgwwwxxhgwxxxwgxxwwxwwxwxxwvvxwxwxxhwxxxhwxwwvWwwwwwvxwxwxgwgwwxwgvwxwxwxggwwwwwhgxxwxwwwvwxgwwxwxxwwhxxxxwwwxgxxhgxxxxxgwxxwgwxwwxxgwwggxgxwwwwvwxwwxxwwxxwwwwvxwxwwwxvxxwxwxwxwxwxwxwwxxvxwwxxwwwwuvww6wewVgfweffgfvvgfFvfwfwfwwggwwfffwfwwgwfwxgxvggwfxgvvvxxwfevxfguwwfwggvuwhgxhgfgwgxwwwwwwfwxwwxggwwgxwxvwxxwhxfwfwffuvvgwfffwuwwwgwwwwwwwvwwwfwwgwvhfxfwgwhWwxwhwgwwgfwwwwwuvwwgxwxwwwxvvwgxuvxwwfhxwwxwvwwxxwVvvwGffvvfggWvvwgFvwWg7WgwvwvhwgwgwxwwwwwwwwxwwgwxwxvhvwxwwwgvgggWfwxxxwvxgwexxhwxxhwxxwxwxgwxxwxwxwxhwhxxxxwxWwfwwwwwvfwvwwvvgxwwwhgwwwvvvewwuwvwxwwwwwwxwwxxvWwgxvwwwhwvwxxwxfxvvxhwxxwxuvxghwwwxxxhwwgwwuwgwwvvuvgvwWgwwwwwgxwgwvwgxvxvxwwwwwwxgvvwxxwwxwwgwxvgxxwfxwxwvxxxxxwxwxxgwwwvxxwxxwwxgxwgxwwwxwwwwwvxwxwhwxxxxxxwwvwxxxxwxwgxhwwxwgwxwxwxwwwxxxxwxwwgxwwxwvxxwwwvxwvvwxwxwgxwwwhwhfwgwvwvxwwwwfWxxxwxxxvxwwxwxxxgwWgfwfxwxgxwxxwwwhxxwwwwxxxxxxxhxgxxxghwxxgwwwhxxxhfwxwwwvxhwwwxxxwxxxwxgwhxwwwgvxxxxxxxhwwxxvgwxxxwwxxxwxxxwxwgvwgwwggxwwvuwxwgwwwhfWgwwgfvgvWwgwVfwfugxvwwxgwwwguvgwxgvwwwwfwffwwxxwwxwxvxhwxhwwwwwvwwwxvwgwwwxxwvwhwhvgvwwxgwfvxxwvwwvwWwwvXxwwwwwwvxwxwuwvvwxxwggvvwwxwxwwwxvwfvxwvvwvvwwvwwwwvwgvuvxxwguvwgfVxggvwwwggfWxwwwwwxxwwvvgvvfuggwvxxwxfwggwwhvwwwwwwxggxxwwwgxWxxhwxxxxxxxwwwwwgvxwxvwxfxxwgxhxwvwfvwvggwgwguvwgwxfxxxwwvxxxwwxxhfvgxwwwwgwwggwwxxwxwwxgwfxwwwvhxxwwwwgxwhwxxxwxxwwxxwwwxxxwwxwwxxwwxxxxxwwwwhwwxwhwwxxxvwxxxxvxwxxwxxwwxywvxxwxwxxxxxxxxxwxwxvxxwxyxxxxwhwvwggwwxxxxwwwxwxwgwwwgwwwxxxwwxxxxwxvxxxxxxxwgwygwxxxxxxwxwxwwwhxxwxxxxxxxvxxxxxxxxwxxxxuwwgvgwfgwwuvwwwvwgWWwvgfwgfevvwffvwvwvwwvwffgfueWgvvwwwwwxwvvwxwwwxwwwxxwwwwvwvxwgwgwvwwwgvvxwwwwvwfwgwwvgvwwgxfgufuwwwwggffVgvuhwgwwwwvwfwwwwxwfwwwvwwvwxwwvvwvwwgwwwwwwwvuvwxugwwvfwwvgwwwwwxxwwewwwxwwwwwgffwwgwgwwxwwWwwfWvwggwxgwwvgvgvggwwwvwwxwxVffwvgeVvwwwwggwwwxwwxwwwxwxwxxxwwgxxvwwwwgvwwwgxwgwwwwwwhwgvggxhgwwwwwwwxwxvfvvxwvgvxwxvvgwvwvvwxgwxvgxvwvwwwwgwwwgwwwwhxgwwvfwwwxwwvwwxwuwwwwwwwvvxvwwwwwwxwwwwwxxwwwwwwwwxwwxwwxwvxxxxwwxwwxwwwwwwwwxwxwwvvgxxvwxxwxxwxxwwxxwxwwwxghwwwxwxwxxxxwxxxwwwwwwxwwwxwxwvwwwwxxuwwxxwwxhxwgwggwwwggxwxxxwwxwxxwxwxxxxwwwxxxgxhvxwxxxwwwxwxxxhwvwwwwxwxwwwxxxxwxxwvwxxxwwxxxxwwxxxwwwxgwwuvwxWwxfwwwwgfwGvtwwfVvwwwgwhVfuwvwfwwgvwwweffvwvggvvwxxwwfvvwgwvvxwwwwxvffxWwWgwwwgwvgwwxwwwgvvwwwwgwxwwwwfwwwuwwwfwwvwwWfwwgwggvgwwwgVvwvwwwvffwfwwwwwwgwwxgwhwuxwwwwvwwwwwwvxvwwvwwwwwwxwwwwwwwwwwwwWvxwWuggwxwwWfgggFGwwxwwxvggwwwwxwwwgwwWvvfvhvwwwxxggwgwwhgfwxwxwxxWgWxxhxwxxwwwwwxwxwxwwwwxxhwwxwxwwgwwvwwxhfvxwgfwgwwgwxwwwggfwwvgwxwwwwwwwwwwwgwvvwvxxxwwwgwwwxgwxxxwwxwwwxxxwwxxwwwwwgxhvgfvwwwxfwwxwxwvwwwxwxwwxwhWwwwhvwgwwwwhwxxvxwgwwxvxwxxxwxwgwwwwxgwxwwwwwhwvxwwwwxwxwgfwxxxxwxxvwwxwwxxxwwxwwwxxwwwxxxxwxwhwxxhxwxwwvxxwxwwwwwxxwxxxwwxxgxvghvwwwwwvwxwgxwwwvxxgWgxxwwwxxhxxxxwxxxxxyxwxxxxxwwxhwwwwxhwhxxwwxwwwwwxxxxxxxxxxwhwxwwxvxxwxwwwwwxwxwxgxxwxwwxxwxwxwxwwhwwwgvwxwxwxVgvwfwwwwgfwfwvgwgffwwfgfgfwvgfUDgxgvgwvwvgfggvvgwvxvwgwwwwwgvvwwwvwgvwwwwwwwwxwxwwwwwwvwwwwwwwvwvhvxwwfvvwfgfwgwxwxvvfgwfgvvgfwxvxfxwwwwvwvwwxgvvwwffuwwwwxwvxwvvwgwvwwwwwwxwhxghggfxvwwwxwwxuwwwvvwxxxvgwggUDvgwfwgwfwwgfvgwgwgwwwwwggvfUwfgVwgwvgwwgwwwvgwgfxvwgwgwwxwwwvxwwwxwxwwgwwxwwwwxxxwwwgwwwwfwgwgxxvwwgwwxgwgwxxxwvgwxffVwgwwwwxwwxwgegugwwxwgwwxwwwgwxgwwwvwwwxgwwwxwvwwwwwwxwwvxxhfwxwxwwwgwhgwwwwwwxxwfvxwxxwwwwwvwwfwwwwxwwxgxwwxwfwvwxwwwxwgvxxxwxwwfwwwwwwvxwwxxxxxwxwxxxxxxgxwxwgwwwvwgwxxxwxwwxvwwxvhxvwxwxwxxxwxxxwxxgffwgwxwwxxggvwwwhwxwwwwwvwxwwxvxhwwwvvxwwxxxxxxxwwwxxwxwwwxxhwxhhwgxhgxxggyhxxwggxgxxwwwwxxxxvwwxxwxxwwxxwwxxwxwxwxwxxxwxwxwxwwwgwxtwghvwwxwwguFgwwwwggwgvfwvvhwwguFgwgfwxwgvffvwvgwwvwwgwggwwwfwxvwwwvwgwwwwvWwwwfwwvwwxwwwwvvwvWwwvxxwwwwfwwfwfwwxwggwwwvgvgwvgxwwwvvwghvwwvwxvxwxxwfgvgwwwxwwwgwfwwxxxwwgwwvwvxwuvwwggvwvwvvvgwgguFvhwvgwwgghwvfvwwgeFvgwwwxwwxgvvgxwwwwwxxwxwwwhgwwxhwwhwgxxxwWxxhwwwhxxxxwvWvxxxxgvWvgwgwgvgwwvwwwwwwvvvxxxgwxxvwwgxwwxwwxhxwxwwgwxwwwwwwwxxwwwwwwxxwwxvwWwwwwwwgwwhwwxwxxwwxwxwwwvwwwxwwxxwhwgwwwwxxwwxhguxwwwxxwxwxwxxwxxxhwfwxwwxxwxwxxhwxxxwxxwwxxwxwwwxxggfgvwwwwhvvwxwwvwwwwwwwxxwwxwwwxwxxxxhxwxxhwyxwxxwxwwxxxxgxxxwxwxwwwxxxwwwxvxxwxxwwwxxxwxxwxxxhwxxhgwwwxwxgwggwwwxgwwxgwgwwwgwwxwwgwxxxwxwwwwwxwwwxwwwhxwxxgwxxxwhxwwxgwgwwwwxwxggxxwxwxxxwxwgxwxwxwwwgxgxwwwwggwwxwwwwwxxxxwwwwwwwxwwxxwxxgghwwxwwxwxgwxwwgwwwxxxxxwwwwgwgxwwxgwgxxvvwwxwwhwwwwhwgwwhxwgxwxxwgxwwgwwxxxwxxwxhxxwxhxhwwwxxxxxxwxgxxxxxhxxwwxxxhxgxvvxxwxxxxwghwxxwwwwwwwxxwwxxxwxxxxxxxxxxwxxxwxxxxxxxwxwwwxxwwwwwxxwwxwwxxxxxxwxxwxxwwxxxwxxwwxxwhxxxxwxxxxxwxwwxxxxxxxxxxxxxxxxwxxxxxxxwxxxxxwxxxxwhxxxxwxxxwxxxwxxxxxhxxxxwxxxxwxxxwxxxxxxxxxwxxxxxxxxxxxxxxxxxxwxxdeegVvvgfvvxffVVvggwwfgVwfvgxgwgwwWUvwwwwwwgwfwwxwvvxxffwfVfewfVfwVvvvuwwfwxgwxxwwhvgVvdfWwwwfwwxvwxwwwwxwwhwFVUgfUeveWFuefgfuefvvwwwfwfvgwffwguwwwxvgwuvwvgvwxxwwwwdfeudeVvvfvvwggvwwwwwwwfwhWffwgfwvwwgvxwwwwxxxwwhwWfvhvfvwUFUVxwwgfgwwggwVvgwvgwwwgWuwwwggvwvuxxwUggwxxwhuwxwwxwggvvxWWwUgvxgwvhwgwwgwwxwgvwxwxgfggvwvwwfxwwgxwvxwwwxwhxfwwwxhwwfVfufggwfgWgxhwwugfwgwwhvgwwxgwwwvvwvxwxwwwwxxwvwwxxwWwgvwwwgxfffvggvwwfuxwggvwwwwxwgVfwwhwxgwvwwhwwwwxwwwvwwgwvvwxfwwwwfgvwxgwvwwgwfwwfvwxwwgfwxwwgwwxwvVgveffwxvuwwuwwxxxvwwwxwwwwwgxxxwwxhggxxhxwgvwwwuwwwwwwgwwvgwgxwwwwwwwwwwwhwxgwxwwgwxwwxhwvuvvwwxwwvwxwwgwwwxgwwwwwwxxwxxxvwwxxwgFfvgwwgxwvwuxwUfwwxgwhvhvwwgwwwwxwxxwxxwwxxxwwwxhxwhwhxUvwwwwwwvgwwgwwxgwgxxxxvhwwxhwfvwgwvwxxXgwxwxxhfwvwwxgvwwfwxxwWwxwwxxgxwwxwwxxwwgxwwxxxvwwwhwxwgxwwwwhwgxxwxxxxwxxwwwxwxuffwgfwxUvvxggffvvgwfgvfgwgxwFvwfggwwxwwegfwwwwxwwxxfvvguVEwfgvwuufwvggwwwxgvwwwwwtgggvvxwuwwvwvwwwgwxwxw6fewfffwffewwvvTfVvwvwfvvgwgwxvfwwvvwwwvwhvgvfwhxwwwxwcVfvVVfweufvwwwVeuuwwuvwwxwxhwwwvwwwwwwxwxwwwwhwgwhwwwwxwwVwfgvxgvfgwwvwwf6ExwwwfgfwvwwxvggwfvwgvwxxgwVwwwwuxvxfxhwVewwwwwgggwwwxwfwwwwxwwvwxhxvwwvwwxwxxxxhxwguwwxxwgvxwXwffVvxwwxfwwwwxxfVFfgvxwwwghxxxfvwxxwwxwxhxgxxwwxwgxwxwxxfvuwwwwwgwwwwwethxxhwxwwwxwxwxxhxxwxwgwwwxwwxxwvUwgWWwwwwxxuwwwwwwwxxxvwvwxwxgwwwwxhugvvfwxvwuwvwwgwxvwxxwwvvwxxgxxxxwwxwwxwwwxwwwgwgxvxwwwwfwxxwwhxxxwwwvwxwwxxxwxwwwxwxwwgvvwwvwwwwwxwwhgwwxwxwwwwwwwwxgwwwxwwgwwWfwwgwwgwwgggxwxhwwxxgxfvwxxWgwgwwXxwwxwxwwwwfggxwwwwxwwxgwwfvxxwwgwwgxxxhhwwxwxwwwwwxwwwwwwxgvwwwxxxxxgxwxwxgxxxxxxvxgxhhgwxxxxxwxxwxxxwxwxhxxxwvwwxhwwxwxwwxwwxwxwvwwhwxxxhvwWwwfgggwvxwgggfgxvwhvwwwwwwxhwwvggwwwxxxxxhvwwwgggvwVgvwgwwwxwwxwwxwxhwggWwwxwxwwwwxhxWwwggvwgfgvwwwfggwvwwwwgxvwwxgggfwwxgwwxwxgwgxxxxwxfggVgvwvwwwxhwwwvwgwgxwxxwxwwwxwwxwxwwwgxwwxxxgwvxgwwwfggwwvgVgwxxwggWwxwwwwggwxxwwhwxhhwhwwwxwhxwxxwggxwwxwvwwwgwgwxxwxxxxvwwxhXwwwwxhwxxxxxxwwgXwxwxxxxxgfgwwxwwgxxwxggWwvwwxvxxxwwxxxxwwxxxxxwxxxxxxxxvwwxhvwwxxwxxwwwhXwwwxxxwxxxxxxxhvwwgggggwwwxwggwwxxxggwwhxxwhxxxwwwwWwwxfwwxwwxwxwxhwxwwvxxwxwxwxxxwwwwhwwwxwxgwwwxwwhxxwwxwhxwxxwxhxwhxwxxxhwwwxwxxwwwxhxxxxxxxwwxxwwwxxwxwxhwvggwwgwgxwgxhwhxwwxxwxxxxhxxxxhxxyxxxxxhxxwwwxhxxxwwwwwgXwxxxxxxxwwwxwhxwxxxxxyxxxxxwxxxxxxwhxwxxxxwwxwxxxxxwxxxwxxxwxxxxxxxxwhwxxhwhxxxwtfvwWvvxwwwxwwwfvvwwgwwgUfwWuvwugWwwxwvWffvwgxxwfwwuwwvgVgwwxgffvwvwweugfxfveffwwhwxgvvvxxwwwxwwwFeefuvwwwvfxfUfvgwfwfvvWwUfFgwxwwxfefVvwgwwxxwTffvwwhggwgvxwUdggxfwwwfgwwxvevwgvXwvxwwwvxgvvfxwxgwvwwgvgwffvvwwWwwwwxwxhvxxwfGUgwffwwgwfvvgvvxxwxxxgvwwwwfvggxwwhhfxhhvwwxxwVvvwxxvwwwwwwwgwwxxwxxwhwgVevvvwwwwgwvgfwgvwwwxwxxgggfVVwwwwwxwwwgwwwwwxxVefwwwxwwwxhgVwwxwwxxgwfwwggfxxwxgfvxwvgwfwwwwwxggwxgvvwwwfwwgvxgwwhwxxxffffuwwxxvvvvhxwxxxwvwwwgvxwwxxwwwwxwxwxhvxvxwxxwwxwxwxwxwxxwwwxwwxwhgxfxwxxwxwxvwwxwwwwxwwwwxxxhvxwwVufvvwxwwwwgvwwwwxhxwwwwxwXwxwxhwvxxxxgxxxevfwhgwwxggvhvxwxxxxwwxwwhxxwgwwxhwxxwwvwwxwwxxxwwxgwvxwxwwwwhxxwwxwxxgwwxxwwxwxwwxwxwxvgwxwWwwxeggfwwwfwfwwgwwffwwgwwvgguvgwgvvhwvgwwwwvwvwwvfuvgwwwwwvgvfwwgvwwwgwvwwvgfwgfwwvggwwwwwgwvwvvgwxwxwwwwwwwwwxxhwwwwwgvwwvgwvgfwwwgwfgwwfuvgwfgvhvwvvffvvxgwvfxwwvwfvwwwwgwwwxwxwvgvgvvwvwwwwwxgfvvwvwgwwwwwxvwvfwwwwwxwvxwwwwvvwxwwxwgwwwwwvgwvxhxgwgwwggxwggwwwwwwwVfwwwgWwfwxgwgwgwggwwgwwwwwwxwxwvgwxwxvwwwwwwwwgwgxxxwgwwxwwwwxxwwxxwwwwggwghwhggghxwwwWgwwxwvwgxwxgvwwhgwfwwwwxgwvgvwwwwwxgxwwhvgxwwgwxwwwxwwwwwwwwwhxxhwfhwvxwxvxxwxxxfxxwwwwxwhwwwwwwwxwwwxxwvxwwwwwvwxwugxxwwwhwfwwwwgxwxwwwxvwwwxvfwvwvxwxwwvwwwwwwwxwwxwwwgwwxwwgxwwwwgwwxwwwwxgvgwxwwxwwwwhvwwwxwwwgwwfxxwxgwwwgwxxxwwgxwxvxxxwwwxxwwxxxxxwvxwwxvvwxwwwwvwxxhvwxwwwxfwwwwxwxxhwgwxwwxxwhxwxvhxwxghhxwwwwvxwwxwwxwxwxwwhxwvhwwwxxggwwwhwhwxxwwwxhvvwxgWvwxwxwxxwwxwhxwxxwxxwwvwhggxxxxwhwxwxhxxxwxxxwxxxwwwwxwwxxwgwxxxvwxfwxhwxfggwfgwxFwvwuwwgvwwwgfwdwfvgufgfwfWvwwxvfwwwfffgggvgfwwvvwwgwwgfgvuWvwgfuwwwwwvgfhWuwfvfgfffgwggvxvfvwwwggwggWvwwwhwgufgwxgfvwfgvVvvwfVeggggvVefWwgvgwgwwwwwxvefwwgvwwwvwuxwwvwvWggvgfgwtvvwUuwvffWwwfwFugvwvtguvwvwwwwwwvwwwhwwwwxwffvxwgwwgwvwwxgGfgggwgfwfwvfvvgfgwwwwwggWgwwvxewgwxwwXvwhwhwwxwwwxwwxgvwwgwwgwvwwxhVgwfxghwgwgwwwxxxwwwwWwhgwgxHhvwwwwwwvwvfWwwfwgvwgwwxwffggwwwgvgwfxgvwwvwxwgxgwwwwwhwxxgwxwwwwwwwgwggwgvwwwxwwwwWwgxXxwwufwxgwxuxwwgwwwwwwwwwwwxxxvwwwWvwvwhwgwxfwwwwwwwhvwxwhwwwwwwgwwvwhxwxwxxhxwgvwwgfwwwvwxwgwwwwgxxwvwwwxfuwgvwgxwwvxxxwwwwxwvwwgwwxvwxfwvxvxwgwwxwwgvxwvxxwwxwwxxwxgwxwvvwwwvwwwwwwwwwvhwwxwgvxwwxwwwxwwwwhwwvhwwwwgwwhwwfwwxxggwwwhwxxwwxxwxwhghxwwxwxhwwwxwwhxwwwxwhxgwvwxxwgvxhxhhwwwwwxgwwxwxxxxwXwgxgxwxwhxwwxxwgwwwhwhwxxhwxhhgwwvxxwwxgwxwxwwwxxhxwxwwgvwwgwxwgxwwwwwhxwxxwxwwwvwwwwwwvVffwwwgwwxwwvgwxgwvggghgvvwfhVvfgfwvxvgfWwwxvwwxwwvwgwvfwggfgwwwwgwwxxwguvxxgxffevvvvwuwxwwwwgwwwwwwwwwwxxgxVuvwegffffwuxfgggwhgvwwvwvgffwvwggvvwxvgvvwwwwwwwwvwwwwwfgvfwvwfwvfwwvugwxgvgwwvgvvwwwwwvwgwwxvvgwwwgwxvwwwVvvxvgvwgfvfWxwVwwwwxhvwxgwwxfgggwwxgvwwxxwggxgwwwxwxxVfxwwwxgwghxwxwwwxxxxwgwxwxfvvhwgvwxgvxxxwwwxxxxygxfgfgvwxwwggwhwvvwwxgwxwgxwxwwwgwxwxwgwxwxwgxxxgxwwxvVvvwwxwwwxwxwxvxgxxwxwwxwvwwxwwwwwwwxxgwwxwwxwwvwxwwwxvgwgxwwggwvxwwwxwxwxwhfwwwgwvwwxwwxxwvwwwwxxwwwwxxxvxwwgvwwxhxxvgwgxxgxwxwwgvgxwwgxxxwxwxxwgwwxvxvxvwwxxwwwwwwxhhwvwwwwxwwwvwwwxwxwxwwvgwwxwxwgvwwWxvwxwvxwhvwwxxwgxxwxxxxwwwxxxxgxwwwwwxgwwwxwwxgxwxxwwxxxxxxgxxwwwwxhgwxxwxfuwxfxwxxxwwwwxxxgwgwvxxwxxhxvhwxwxwwwxxgxxxxwxxwwxxwxxwwxwwxxxxxuwwgwgfwwvwvwgfwvfffwwvwWwfvwwgwvfwgwxvgvwwvvvgvwvvwwwvvxwgwwwwvewxwwfgxwwUwgvwgwVwvwwwwwwwfvhwwwwvwxxwgwwwwwxvxvwxwfwwfwguxgwvfwxwvguwfwwxffvxwvwvfgvvwvgwfwwwwwfvwwwwwwwwwwwvuwwwwwvwxwewfwgwwwwwxwwwwwgwxwwxwgwvfxvwwwwwwwggwffwwwWwgwxfVwwwvwwVwvwxvwfxwxwwvwwwvwggxwwwwgghwwwgxvfwxwfxwxxwvgxwxxgwwwxxxwgwwxwwxxxxhhxgwxhwxxwwwwfhvwvwxwfwgxxxvxvwwwxwwhwwgwxwxwvxwhwxwxxwxxvwwhxgxxwwfwwgxwxwwwxwwwxxwxxwwxxwxxxxxxwxxwxwwwfwwwvxgwwwwvwwwxgxwxwxwwwvwwxxwwxxxxwwwwvwxgwwwwxwwxwwwwwwwwwxxwxxxxwwxxxwwwxwwwxwvxvwxwxxwvwwwxwfwwxvxxxxxwxxwgxxwxxxvwwxwwxxwwwxxwwwhwvwxwxwwwvwvwwwwwxwwvwvwwwxwxxhxwgxxxxxxxgwxxxxxxxwwwwgwwwxwxwxxxxxwwxxxwwxxhxwxxxxxwxxhgxwxxxwwwwwxxhwxxxgwwwwhwxxgxxxwxxvwwwxwxgwxwxwxhhxxhgxxwwhwwwwwxwwxxxwwxwwxwwxuwwxwwvgxvxwwwgwwvwvgggwgvxwwwwwgwwwvxxwWffvwwwwwwwxwwgwvxxwggwgwfhWgfxwxxggwwwwwWgfwwwxgwwgxgwgwxxvwxxwwgwvxwggwhvuwxWffgvxuwwxxwvgwwwwxvwxxwwwxwuxggWwxewfxwwwxgwgxwxwvwwxgwvgxwxhwvxwwwwxwxwwgxfwgwwwwwwwwwWWgwxwwgfgxxxgwWffwwxhwwWvgghwgwgxxhxwgwwwwwwwvgxwwhwwwxxwwxhvXxxhxwwwwxxxxwwxgxggwwxxxwghxxwWffwxfwxgvghhwwwxgXwgxxwwwgxhwgwwxwgvggxwxxwvxggwgwwwxxwxxwxhwxxxwwxwwvxxxwxwwxgwwvgwwwxwwwwxwgxxwyxhxwwwgwxhwfxWgwxhxxgwhwxwwwwxxxxxxxxxwxwwhxvxwgwwxxxxwwxwwxxxwxgxxxxxxwxxxwxwxwwxwxwwxwxxxwxxxxvwxwXxvxxxwxVgghxwhwwwxxhxwxxxxihggxhxwwwwXxxwxwxxhxwgwwwwhhXxwxwwgxvhxvwxwwwgxxxxwwwxxxwxxfxwxxxxwhxxxxxhxxxxwxwwwxxxwfxxxxuvfgfvwwVwuxvwgwgwwwfwwfvwwwUvvwuffwwwxxvvwxwffwvwwwwwxxfvvwvgguvwwwwvxgVwxgxfvvwgwvwvvwwwuvgwwxwxwwEfdwegVvfvvgwvwvfgfvvgxwvfffvvgfwwwwwwvvwxvwvhwwxdgvvfvvwgwxwgvggvvvwwvxwwweufwwxwwwwxhwwwwwgwvxxxfvuwfFTwwgwgwfgvggxwfgwwvwxwgwggwwwvvwxvxwwwwvwxwxxxwxwgWewfwvwwwxgwwxwwwxxwxwggwwgvwwxwwwxwwwxxxxwxwhfgfvfgVVvwwwxwwwwwwvxwxwwxwwwwwxwwwwxwxxvxxxwwxfxxwxfffwwVuwxxwgwwwwwxwxwwxxwgwxwwxxxxwwxwwxfvvwwxwgggVwwxwxwwwgwxxxwxwxxxvggwwwwvvwwxwvvwxfwvvwxwxxwxxxxwwwwwwvxwwxwxgwhvwxwvxwwvwxxwxxxwwwwxxxwxwxxwwwxfwwxwxwvwxwxwwxwwxwxxwxvWvgwwwfwgwxwwvxxwxxxhxxwwxxxwxxxxwxxwgxvxfwwwwwwwxxxxxwwwywhwwwxxwwxxxxwwxxxwwwgxxwwxwwxxxwxxwxxwxwxwhvwxwwxxwwxxxwwxxwwxvwxgxxuWWwFvvvWwwevfwgwwwwgvvwwgvwwvvwvgwvfgvwgfvwvVwwvvgwwwxwwwwWvvwffewwvggvwvugWwwwwfgwxxwxufwgwuwgwwwwwwwwwvwwwwwwxwhggwfwvwvguvfvwWvegvwwgvvxwvwvwwvgwvfufwgwgwwwgvvwxvWwvvwwwwgwfvweeuwuvgwvvgvwwwwwhwwwwgvvvwwfvwuwvWvuvvvxwwwvgxwgwwwgggwwWvwgwgxgfgwxwGgfwwxwgwwvvwvgwxVggwwwwwgvvxgfgwwwgwfxwwwwwggwwgwgwwwwwxvwwxwxwwwxgxwwvwwxxgwwwwxwWxwwwxwxgghxWxvwwvgggwwgWwwwwwgwgvgwwgxwwhhwwwwewxvhwwvwwxxwxwgwgxwgWgwvwxwwwwwwghwwwvwwvwfwvwxxwxvxwwwgwwggwwxxvvwxwvwwvgwgwgwwgwvwwwxwvxwhxxwxwwxxwwwwxwxwwxxwxvwwwwwvvwwvvwxwvwwwxwwwxwxwxwwxxxwwwwwwxwvgvvwwwgvwgwwwwvwwgwxwwwwxwwwhwxwwxhwxwwwwwwxwxwwvwwwwvwhxwwxwwwxwwwxwwwwwwgxxwwxwWwgvvxWgxfxwvwxxwwwwxxxxwxhxwwxxxxhxxwxxwxxhwwwxwwgwwvwwxxwxwwxxxxhwxwxxwwxwxwwxwhxxhxwxhxwwxvwwxwwwwwwwxwwwxxvwwwgwxwwwwwxwxwXxwxxxxwwxxxxxwwxwwwxxwwxvwhwwvxwxxxwwxxxwxxxwwxxvgxxgwvwwwwwggffwvwwgfgwgfvgwxwwwgwvvvxwvvhggwggxgvwxwwgxwxgVwvfwxgvvxwwfgxxvvwxwhwwvwgwwxgwvwhwxwxwwwxxxxwxwwwwWgvvwvfwfwwgvfggfgwxgwxxxvwwgxwwwgwwwhwxwwxwwwgvfwwxvwwfwwwwwgwwvhfwvwxxvwxwxxggxwwwxwvwwggfxvggevvwgwWgwhwwvwxXgvxwwvggwwgvxwxwxxxwhwxvxhxxxgwwghhvvwWwwwxwhhwxxwgvxxxxwwxgwxxwxxxwxwxxwxxhWgvwgWwwwgwxxwwwwgxxwfwxxwwwxxwxxxxxxxwhvwwxgggwwwgxwwwwwwwxxwwxwxwwxwxxhwwxwxxxwxfxgwwwxwxwwwggfgwxwwwxwgwxwxxxxwgwwwwwwxwxxhwxxvxwxwxxwwgwwwwwwxxwxwxwwwxwxxxxxxxwwwwxwwwwxxxxwxxxwwwxwghwfwhwxwxwxxwwwwwxxxhxxwwxxwhwxxxwxxxgxxxxwwxxwxxxxwxxxxxxwxwwxxxwxxxwwxxxxxxxxxwwwwxxhxxxwxxwxxxxxwwxwwxxxxxxxwxxxxxxwvwxxwwwwwwwwwxwwwwwwwxwwvwwxwwwwgwwwwwwwwvvwwwwwxwxwxwfvwxgwwxwvwvwxwwwwxwwggwvxwwxxwwxwwwwwwwwgvwwgwwwwgvwwwwwwwwxxggwgwwwwwwfwxwwwwwxwxxxgwwvvwwxwwxwwvvwxwwwwwwgwwwwxwwwwwwwwxwwwwwwwgvwxgwwwwvwwxwwwxwxgwfwvwwxwggwxwxwwwwxwxxwwwvxxxwxhxxxxxwwwwgwwwxxxxwxxxxwxggwwxxxwwxwwwwwxxwwwwfwwxwxwxxxwwxxwwwgxxxxwxxwwwwwwxwwxxwwxwxxxwwxxwwxxxxxxwwxwxwxxwxxxxwwwxwwwxxxwxxxxxwwxxxxwxwwwwxwwxxwxxwwxyxxxxxxxwxxxxxxxwwxxxxxxxxxxwxxxxxxxxxxxxwxxxxwwxwxxxxwwVvwvWwwwugvfgwwfwwvfvwfvwfgwwvfwwwwwfvvwvVvweevvVuvwvgwwwwwfvvwwfvwvwvvwwwvvwwuvwgwffwwvvggwvwwvwwwfwwwwwwwgwwggvvggffvgfwevvwvVvveevuvvwfxwwwwfwweefwfvvxwxfuvwwvwgwwwwxgwwvvggwvwvvvxwuvwwvwwfwwwwxwvfwwwwwwwwwxwvwxwwwvwwvefwwwgvwgwwwvwwwVwxwgwwwwgvwvwgwwfwvgfwgvxwgwwwWewwgvwxwxwwwxgvhgwwwwxxwxggxvxwgvwwWgwwwxwxgwwwwxwwxxwxvwgwwwgwwxxwxwwwwwfwwwwxxwwwwwwxwwvxwxwxxggxwwwxxxxxxwwwwwwxwxxwwwwxwxwwxxwwxwwxwxwwwwgwwvwwwgwwxgwwvwwwwwwxxwxvvwwxwxxwwxxxxxwxwwwwwwxwwxxxwxwwwxxxxxxwwwgwwxwwwwhwwwwxxxwwxwxxwwxwwwxwxwwwwxwggxxxwwwwwwvxwwxwvfwvxxxvvxwwxxxxwvxxxxxxxxwxxwxwxxxxwxwwxxxxwxwxxxxxwxhxxwxxxwwxwxxwxxxxxxwwxwxwwwxxxwwxxxxxwgxwxxxwxxxxwwwwxxxfwwvWwwxfvvxwwgggghwfgwgVwgvgwgwwxvxwwwwxfxvWgvwwwwvvwwWwgwwwwgwwwwwwgwwvxwxwwvfwwwwwgwfggwggwvwxwgfggxhhwxxxxxwwwxvwgwwvxfWfwwwgfwvwxwgwvvggwwwfwxwxxwvvwwhgwhwxxwxggvgwxgwwwwwvvvwwwwwwwwwwwwwwggwwwxxwwwwwwwvwxwwwwxxgwxwgwwwwgggvgvWggWxWwgxwwwwwwwwwxwxwxwwWwgwWwwwxgwxxwgwwxxxwgxwwwwxxwvWwxxxxhxxxwwwwwwxxwwxwwwwvVwghxgxgwxwhwwwgwwxwwwxxxwgwWwgwvwwwwgwwwwwxxhwgxwwwwwwwwwgwgvwwgwwwxwxwxwwwwwWwwxxhwwwwhwwwhwwhxwwxxgxwxwwwxxgwxxgwwxwggvwwwwwxxwwxxxwwwwxxwxxwwwwxxfvvwxxxwhgwwwxxwxvvwxxxxxwxxxwxhwxwwwwxwxxxxgxxxwxxwxwwxwxxxxxwxwwwxwwxxwwxwvwwwwwwwxwwxxwxhgwxwwxxggwgxhwxxxxwxwxxxxxwxxxxxxxxwwxxfxwwwxxxwwxghwwwxhgwxxxwxwwxxxxwxwhvwwwhhwwxvxgghxwgwxwwxxwwggwxxxxxxxxxgxxwxxxxxwxwwwwxxxwxwwxwvwxwwxxwxxwxxevwfwgwgwwvgwfwgwwwvgwwwwfuvhWwgwvgfxwwwxwwwgwevgxgwwwvwwfwvwwgewxgwgwwwwxwwwwvwgwwwwxwwwvgwWgwwxgxWxvwwwwhxxwhggwwegvwfwwgvwvggvUvfwfvwxwwgvfvfvgggfwfwwgfgwwwwXgxwwgwwwwwvvwvfwwfvwgwvwwwgwxwfwwvwwwfwwwxwwxwwwwwwvxwwxgwwwxwgwwWvwwxwfvwwwwgwxwhwwwwwvgwwWwfwwgwxwggghwwwvxxgxwxwgwxwwwgwwwwwxgwxxwwxxwxwwwwgwfXwwxxxWwwwxhhwxhhwgvvgwwwgvwvxwwfwvxWxfwwwxwgwgwvghxwwxwwwvgvXwgwwwxwwwgwvwgxwwwwwwwxwxwwwxwghwxwxwxxxxxwxxhvxwgwwwxwxwgxxxwvvgxxwxxxwvwxgwwxhwwxwxvgwfvwwwwwwwwwxwwwvwwxwxwxxxxxhxxxxwwwgxvgwwxwxxwwwvwxwxwwxxxgwwwwwwxxwwwxxwxxgvvxgxwxwxxwhwwxxwwxxxxwxwxxxxfwXwwwwgvxwgvvxgxwwxxwwwwwxwxwwxxxxhwwxwwwhwwvwxxwwxxxxxxxhwxgwxvwhwgwwwxxxwwxwwgWvxwxxxwwxxgxxwxxxxxxwxxwxwfwxxxxxxxwvxhvxxxxwxwwxwxwwxwwhwwxwegVwgwxgwwvgvVvugwwwvwvgwwwgvwwggvwfuwwwwwuggwgwvxfvuwvwwWvvwegfvwwwvwvgvwwxxgwvwwwwgvgwvwwwwfwwwwggfvwvwwwgwxxwgwwwwwwwwfwwvWvwvvxfvfhvgvwufuwgvwgvwvwwfVvugvwxvvwgvwwfvvgvwwvwwwwxevvwwwwwfvvwgwvvufvwgvuwWwwwvwfwwvwwvuwwwwwwxwgwvgwwgxwggwwwWWfvwwxxggwWvxvwwgwvwwxhvwxwgwwwgwwwgwgwwwxxwwwwgxwgggxgwgwxgwwwwwwwwwxwXxfgxwgxxwwxfxfwgggfwwxfvwwxwxgwfxwwwhwwwwwhggwvgxwxwwwxxxwwvhwwwwwxwxxxxwwwvwvvxwwwwgwwwvxxwxwwhwwxxgwwxwvgxwxwwgwwxwxwwwwwwwwxwwwxwgxxxxwggxwwwxxwxvgwfwxwxgwxgwxwvwxwwwwwwwvwwwxwwwwxwwvfxxvvxxwxxxwwwwwfwwxxxwgwwxwwxwwxxwwwwwwwwwxwvxxxxwwxxxwwwxxxwwwwhvwwxxwWwwwhwgwxxwgvvxwxxxxxwwwxxxxwwxwwwwhwxxxWwwgxhvxwxxwxxgxxxwxwxwxxxwxwxwvxxxwhxwwwgxwvxwxxwxxwxwhxvxxxgwxwxxxxxxwxwwgxxxgwwwxxwxwwxxxxwwvxwhwwxhvxvgfwxwxXvggwwwwgwwwxwwvggwffwwgwgwwwUfewfwwwxhwvfxwgxhwwwxxxfwxxxwwxwxwwxwxxxgwwhwxxxwwwwwgwvxwhwwxwwvxgUVfwgxwwwxwxwxfwwfvwwUuvhxwwwwwxwxwxvwwgvwwwhwxvxwwxhxhwwwwwwfwwwgwwwvwwxxxxxvxwwxwwwxwxwxwwwgfwwxggwwwhwwwwxxxwwwwhwxwwwwhwxxgwwhgwwwxxwxxxXvgwwwwwwxxxxfwvxxxxxxxwhxxxxxxgxwwwxggxvwxwxxxxwwhhxvwwwwwwwwxwxxxxwxhvwxvxwwxfvwxhwwwwwwxhhwhxwxxfvwxxwxwwwhxxwwxwwwxwvvxxwxxwxxwwwxxwxxhwwwwxwwwhwwffwwwwwxxxxwxghxwxxxhxvwxwwxwxxxwxxxxxxwxwwwxxwwwxxwwxxwwxwwwxwxxxxxxxxwwxxwwxxxxvxwxwxwwwwxxxxxxxxhfhxxgxxxwwwxwwxxxxxwgwwxxxwwwxxxwxxxxxxyhxxwhxwxxxxxwxxxxwxxxxxwxxxxxxxxwxxxwxxxwxwxxuhhwgwvgxwwgeWgwwwwwgwwwfhxghWvgwvxwwwgvwwWgwxwxwwwwgwuggwvgwwwwgxxxvxxvvwgwwwxgwxwfwwxxxvxxxWvwWeWvwwgwwwvwwVgxwxwxxxvWwvhgwxxxvhxwxxvvgwwvxwwxwwwwvwwxxxxxxxwfvuhvwxhwxxwwxxxWuggfVfeWvfwVwvgwwwwhwxgvWwvvgwgwgwhwwxwxwwgwgWwxxwxgwfwwwwfwvwvgwxxxxxxvxxxwvwwwWgghwgwwhwxxxfxhxxwhxyxfeWgwWwgwfwwwxwwwxgvgwxwhhwxwxwxxxhwxwwxgwwvwvgwwxxwwxwwxhwxvwgwwwxhwxwwxxxwxxxxxxXvhxwxxwhXwxgxxxwxwxxxwvwwgwwxgwxxxwwhwgwwgwxxxvxxxxxwwwwwwwxxhxxxxxxxwwxwxxxxxxwxxvxxxwxxxwxwxxwxwwwvhwhwwxxxwvggwVwxwwwwwXwxwXwxxxwxvxxwxwxxgxxwwvwgwwwxwwxxxxhgxxwwxxwhxxxhwxxxxxwxwxwxxwxxwxxxxwxxxxxxhwwwyxwwxwxwwhxwxwxxgXgwxhxUwfwgvVwfwfgefVwfvwwgwvugfwwfgUvvgvfvwgwvgvvwfwvvwWuxwxwwgfwggfwfvVwgffgwfgwhwggvfwwwgwvwgwgwwgfuvwvwfwvgwwwwwwwwfvfgegewvwffwvwuvfwwvfvwwvwvwfvvvwvwvwfwxwgwxuuvwgwvwxwxgwfguvvfwwwfwwfwggvvwwgvwwwwvgwwgvfuvvgwwxxwwvwwwggwwwwxfvvwgxgvvwfwgfgwvwgfwgvgfgwwwwgvwvwwwggfwwgwxwwvwwwvhxvwgwgwwwvgfgwwwwvgvhwhgwwhwwxwxxfhgwwwwwwwwwxwwgwvvgxxggfgxwXwxwfgvwwggwwwxwwgwvwwwwwgxfgwwwxwwwgwwwwgwwvwxwvwxxxwxxwwfwgvxvxwwwxwwwwxhwvwxxvwwwxgxwwxgwxgwwxXgwxwwwwxwvgwwgvvwwvvvgfwwwwwwwwwxvwwvvvwxvwxxxxwwxxxwwwwvwevvgvfwwgfxwwwxwvxxwwvwwwwwwhxxwxwwwxxwxWwwvwhgvxwwvxwwwwwgwxgwwwwxwxwvfxwxwxxwwwxwwwwgxgxwvwxwwxxxwxxwwgxwwfxwwwvwwwwwvwxxvguvwvwwwgvfwwvwwwxxwVvwwxwwvwxxwggxxxxwxxwxgwxwwwwggwwwxwxwgxwwgvwwwWgwwxxXgwxgxgwwwxwgwxxgxwxXwwwfwgWgWvwxhxgxwwxxwgwwwxvWwwwwwxwwwwwxwwhwwwwxxwhgwwwxxxwwwwwxhgwwwxwwxwxvwwwxgvguxwxxxufwwWvgfwwxwgggwvxwgWwvwwwwwgwgwwgxxwxgwwwhgwgwvwgwxvxxwgwwVVwvwgwgvewwgfwvwghwwxwwgwggwwfwvxwwwwgvvxxxggvxxwwwwWvvvuVVwfwvfwvwvfVwvfvfvwxwexfgwuvvvwxfwwxWgwxhvwwwwwxxxgwwwVwewwwfwvggwgwvwwwWwvwwgwvvgvvvuwwvwwxwwwxwwwxewwfwgwwwfgVwwggwhvwwVVwhwfwwwfhxghwgwwgxfwhwwxwwWwwgwxwxwvwwxwwggwvwwxhwwwwwgwvgwwxwxwwhxwgwwxwxwxwxxxwxxwhwwwxxxxwfVVwwgfwwwxwxxgwgwxwgWvxgwvwwgwfxwxvwwxwxxwxwwwgxwxwgwwgwvwgxvgvwfxwwvxwhwwwgvgwwwwwwxwwfwvxxxwxwxwwwwvxvvwwvgwwxwwxwwwwwxwxwxxxwxwwxxgwwwwxwxxwwwwwwxwwxxwwgwxxwxxxwwxxwxxxwxxwhwxxvwwwwxwwwwgfxwwwwWxxxgwwwwwxwxxhxxwwXxwxgwxvxwwxwxwgwxwwwwwxxhwxxwwxhwwwxwwxhwxxxwwwxwwvwwwwxwwwwhwxxxxwwxwxxwxhxwxxxwxwxgxxwxgwxxxxwxwxwwwwxxxxxwxxxwwvxhxxwxxggvxhxxwxxwvwxwxwwxvxxwwwxwxwwxxxxwwhwwxwxxxxxxhxxgxxwhxwwxgxxgxwwxwxxxxwxxxwwwwxvgggvgwwwwgwwwwwfvxwgvwvfgWuwefwggwwwffwvvvvwgvxhwxgvvxvwfvwvwvwwwwgwgvwwxfgvfvwfvvvwwwvwgvvwwwwwwxgvvvvfwvgvfwhwwwwwwfgvwvwfwwwwvwwvgvfvefwuwwwgvuwwwwgugwwwwgwwvvvffwwwwwwxwwfwwvvWwgwwxvweuvwvwvwwvwwffwveewvwwwwwvvvwwWuwwwgvfwwwvwgwgvwwwwxwwgvggwgwgwgwWfwxxwfwwggfggwxwwhwwwvwwhvwwgwxxvvxwwwxwgwXhuwvfvfwffvxwggwwwxvwwghvxwfgxwgwggwgwwvwxxwxxwvwgwvwwwwxxwxgwvwwxwwvxxwwxwxhvwwgggwgwgwwwwgwgvgwgvxwxwxvwhxvxfwwwvwgwwfvgwwxwwwgwwhvxxvvhxwwwwwxhwwgwxxxgwvxxwxwhwvwxxwwwxwxvwxwxwxxwxwwwwwwgxxwwwwwwwwwwwwxxxxwwxwxwwwvxwwwwvwvwwwwwwwwwfwxxwxwwxxwwwwwxwvwwwvxwvgwwwwxhwgwwgwxhxxxhwxwwxwxxxxwxxwxwwwxxwwxwwwwwxxxxxhhwxxxggwwwhhhgwxwwgwxhgwxxxwwgwxwxxxgxgwxwxgwwxxwwwxxxxxwwxxwxwxxwxxxwwxxwgvwxxvwxwwwwwwuwwgvwwwwwvwwuvwgvvwwwwvwwwwwwwwwvwgwxvfgwuvwwwvxwwwwvwwwWvxxwxwfvxwwwwxwxfwwgwwwwwvxxgfvwgwwwwwwgwVgxgfxwwfffvwvfUwwhxxvgvwwwwwwgvghvwxxxgwwwwvwwwvgwwvwxxvwgvwwxwwxwwwwwvwwwgwwwwxxgWwwwwxwwxwxgxwvggwwwwwgwgxVfgwgWwvvwgxwxwwwxwwxwhxwwwwwxwwxxwwxwguwwXwwxwxwxgvgvxxxwxhgWwwwwwwxxxfgggwwxwxwwxwgwwwwwxxwwwwwxwwxwwwVxxwxxwvgvwxwwxxwwwxxwwwxwwwhwxxwwxwwwgxxxxwxxxwxxxxxwxwwxwwwwxxxwwwhxxwwgwwwwxxwxxxxxwxwxwwwxwwxxwxxxwwhwwxwwwwxxxwwxxxwxxxxwwxhxxwxwwxxxxxxxxvwxxxwxxxwxwwxxxxwxxwhxvxxhvxwxxxxxxxwwxxwwwxxxwwxwxxxwwvwhxvwwgwxwwgguwwgUedgxwxvxwhvhwwwxwwgeefxwxwwxxxwwwwwvwxwwgvgxwwvwwxgwxwgwxxwwwxgwxxgxxwxwwhwxwwwxffwwxwggUdegwwxuxwwwgwwfwwxxwxgvwwwhwxwwwwwvwwwvvxwwgvwwwgwvxxwwwwwwxxgwwwwwxxwgwwwxxwxwgwxvgvwghwwwwxwwxwwwxwfwwxwwxxxXwhxxwxwxxwwwxhvgwwwwfvuxgwwxwxxxgxxxvhwwvvwhwxxxxxwwxwwxhxwwwwgwwwfwwxwxwwwxxwwxxxxwxxwxwwxwwwwxwxxwfuvxwwwxxwwwxxwwxwwxxwwxxxwgxxxwwwxwwwvxwweefxxxwxwwwyxxwwwxwwxxwwxwxwxwwwwwxxxxwwxxwxxxwxwwxwxxxwxxxwxxxxxxwxxxxxwwxxxxxxxxwwwxwwwwxxwxxwwxxxxxxxxxwwxwxxhxxxxwxhwvvwxxxxwxxxxxxxxxxxxxxxxwxWxxxxxwxxxxxxxxxxxhxwxxxxxxxxxyxxxxwwxxxxxwgvxwwwwxxvxwxwwwwwxfvvwffgwwwwxggwgwgwwwhxwhwwgwfxxwwwwwwwxgwvxwxgxvwwxxxfvvwwxwwfvvwvgfwwwwvgghwgwgwvwwxxgvgvwhgxwwvwxwwwxwwgvwwwwxwwxfvvwxvgwxxwwwvxxwxwwwhvxgffwxwxwxwggxwgxwxwxwxfgfgwfgwgwxwhvwwxxxxwxhwxwxwwwwgxwxwwwwxyxxwxhgwwvgvwxwhwhxhgxxxfvfgwfgwxxwvwxvwwxxxxwhxwxxxxxhxwxxwwwvwxwwwwxwxhgxwxvwwxxxxwwxxwwxwxwxvxxwwxxxgwwwwhxwwwxygvwxxxwxxgvwxwxxwxxxwxxxxwwxwxxgxhxwxgxwvwxxxhxxwwgwxxxxxxxxxxwwwxwxhwxywwxxxwyxgwgxwxxhxwwwwwxxhxxwwxwxwhgxxxxxxxhxxxwgxgxxxxxxwxxxwxxxxxxxhxxxxxxwxxxxxuggwgwhxxwwfggwvwgeWgwwwwwgwgwwvvgVvUvufugwvvvwwffwgwgxwwvwwwwwwwwxwwwwxxxwvwvuwwvxhwfvxwwxwgxwWwwweUwwwvwvwvvwgvxwwvwwvwvwUufwvwggwvvxhwwvxghuwfvvwwvwxwvwxhwwwwwwwwgvvwwwvwwgwxgguwvwwvwxwxgvhwggfgwwwwwvwwxwgxgwxxxwwvwwvwwwwwwwvwxfvwwwxwwwwggxwhxhuWfwvgwxxxxwwwxxwxxxvwwwwhwxwgwXwwwgxxhwXxwvxxxvfwgwwwwxwhvwwwwwwxwxwwwwwwwhxwxwxxwhgxgxxxxxgwwwxxxxfwwxwxxwwxwwwxxvxxwwwhwwfwwwwxxxxvxxxxxfwwwwwwxvvwvwwxxvwffwwwxxxxxwxwxvwwhvxxxxxxwxwwwxwxxxxwwwxwxxxxxxxgxxxxxwxxwxxwxwwwwhwxwxxxgwwxwhgvwwwxwxxxwwxwwwxxwxwwwxxxxvwxxxxxxxwxxwwxxwxxxwxwxxhwxwxwxxxxwxwxxwwwxxxxwxxxxxxxxvxxxxwxgxhwxxxhxwwwgxwwwfgxvwggfvwwwfVVwxvwggvvgvgwwvvfwDfewwvvwwwgwwwggfhwwwwvwwwwfwvggwwwwgwwwwwxfwxwwwxfwwxwgxxxwxxgwgwggvvwwvwvwwwvDefgwwhwwvwhVewvvwwwwxwwgvfwvwvxxwwvwvwwfwvwwxxwvxfwwwgwvgxvwwwvgwvwgwwwwwwwwxwxwwwxwxwwwwwgwxgvxgggvwggvwwwwxxvwgxwwxgwxvwhxxfwwwxwgwwxxxgxxhvgwwxvggxwwxwhwXwxxwhwgUwvxxxwxxxxxxxwwgwvggxhwwxxwxgxwwgwwxwwfwwwgwvgwxxwgwwwxxwwwwxwwwxgxhxwxUvwxxxxxwxwwwxwwwwwwxxxwxxxxwxxxxxgvwhwxwwwwxwwwwwwfVVwwxwxxxwwxxwwxxwxxwwxwwwwwwwwwxxwwhxwxxxxwwxwgxwwxwxwwxwwxgwxxwwxwxxxwxxghwxxwhgwxwwxxxgwwwwxxxxxxxxxwxxxxxxxxxwxxxxhwwxwxwxxxwyxxxfwxxwwxxwwggxxwxxxwxxghxxxwxxxxxxwwxwhwxxxxxfwxxxxxwwwhxwxwxxwxxwwxxxxhxwxxxxwxxxwwxwxwxwvwwfwwwxwfxwvgxxwwxxfwwhwxvwwwwxxgwxxuvvxWwfgxwwwwggwvwxxxxwfwvwwvwwxxwwwxxfvvwvgwwwwwxwxvwvwwwwwxxwffwvwwwwxgwwwxfgffwfwvwfwfwwwxxwwwwgwwvwvwwwxwwwwwxwxwWvvgwvvgwwxWfwwxxxwwwxxfgwwwwxxxwvwwwxxfVewwxxghhwxxwxxvxxxxxxxxwxwxxhxwxhwxwxwffvwwgfwxwffwwxwwwwfxgwxwvwwwxwwxvwwwwwwwwwwwxwgvxxxxwxxxffwwwwwwxwwwwwwwwwwwxxxwxxxxwxwxwwwxwwxwxxwwwwwwwwwwwwwxwvwfwxwxwwwxxhxwvgxwwwwwwwwxwwxxwvwvwwxxxwxwwxwwwwwwwwxwwwwwxwgfwxwwwxwwhxxwxxwwwhxwwxxwxwhxxxgvxwxxxwxxxwwvxxxvwwxxxwxxxwxwxxwwxxxxwwwwxwwwwwwweffxvvfUvvwfffggfvxwwwfffgwffwwwwwwgwgwffwwvwwvgfwwwvwwxWwfwffvwgffvvwwwvwwwwwwwvwwxwvwwffvwfvWwvgwvwwwxwwgxwxxgvfffwvfgwfffwwwwvvvfwwwwwwwwgwwwwxwwvvwwwwwxwwvwgwwwwwwwvfvvvwwwwvxwwvwwwwwwvvwwwwwxwwgwwwwwwwfwwwwwufwwvwwwgffvgwwfgfwwwwwgwwwgwwwffwwgwWgxwgfwhwvwxggwwgxgwffwwwwfWWfwxwxxwwwxvgxwwxhhwwwwwwwwwwxvwxwwwxwgggxwwywwxvgfwwwwwvwxwgwvwwggwwgwwwwwxwwwfwwxwghwwwwhwwwhwxwxxwxwwwwxwwwwwwwwwwxwxvxwwxxggwxxwwgxwwwvvwwfvwffvgwwgfwwwwwggwxffvwwwwxxgxxxwwwvffwvwwwvwgxvxwwwgwhwvwxxwxgvvwwxxwwwxhwxwhxvxwwwwwwxwxwwwwwxwxxxwxxxxxwwwxgwwwwwgwxwwwxwxxwxwghxxwxwwwxvffwwwwggwxgwwgwwwwvhxghxxxwxwwwxhwxgggwhxwxwxxxhgxfwwwhwxhwhxwhxwxhhwxxhwxxxwxhhwhwwhhwwhwwffwwwvxxwxgwwwwxwwwwxxxxhgxwwxxwwwxxwwxwxxxwxxwhxxxxxwwhxwwxxvwxwvxwwwwuvwwfhhffwwwgwwHeVfwwwwffwwggfgvwwwwwgwgwwwwwwxxvww7ffwwwfwgxhwwxwgwwwwxxwxwwxfwxwwxxwxwxwwwwwwxwfhhfwwwwgvwwwwxwwwvvwwwwxuwwxxwwfwwwwfwwwwwwfwwwfwgxwwwdwgxwwwgwvxuxfwwwwxgwwwwxvwxwgwwxxxxgwwhwwwxwwwww7ffgwwfgwxwxwwxxwxwxwwwfxwwwwwwwxxHeVxwgwwvvwgwvxgwwiXggwxwxxwwwwxxxxxwxxxxxwxxwxwwfwwwwwwwwwxuxfgwggwxdvwxfwwwwgxwxvwwxxxwwwxwgwwffwxxwxuwwfwwwxwxwxxwfwwwvgwwwwhwwwhxwwwwwggfwwxxxwxgwwxxwwwwgxwwwwwwwwwwwhwgvwwfwxwwfwwwwxxxxwxvwhwfwxwxvwwxfxhwxxxwwwxxwwxwxwxxwwxwwwwxhxxwxxwxxwxxwwwwxwwvwxwwwxxxxwwvwwxxwxxxxwwxxgwgwwxwfwwwgfxwxxxwwwhwxwxxxxxfwxfhxwgwwxwwwwwwwwwxwwwwxxwxwxwwwhfxhwwxxwxwfhxwivgwwwwwwwwwwwxxwwxgwwwxxxxwgwwxwwxxxxxwxwwxwwxxwwwwwxwxxwwwwxxvugwwvwwvvvwxgvgVvwwwgfwgggwWwgwvgvwvwwwwwwhwvwxwgvwxVvwgevwgfgwwvwggvgwwwgwwwxwvwwwvvgfwwxwgwwwwgvwgxxxxVvwwvgvvvvwgwwuVWvwfvgfvwgwwhvvvwfwvxwwvwwxgwwwwfwwwwwwugfwvffvgfvwwgvwwwwvwgwwgwxwwVfvvgfvgwwwxxxxfvwwxvwevwwwvwwgggwgwxgewvwxvwwvvwwwwgvggvfwwwhwhwwxxxgvvgggxWwxxwwxwwxggwhwwwWxgxwhwwhfxxhwxxxxwwvwxWfwWxwxwxwwxhwxxxxxxvggfvvwggwwxwgeewgfwfwwwwhwwfwvxwvwwxfvwwwwwwwwwvwwxvwwwgvwwwxxgwwxgwfwxxwxvxwxVwvxwwgwwwwwwwxwwwwxwwwwwwwwgwwwwwwwxxxxwxwxxxwwwwwwwwxvwwwwvwwxxxgxxxxxwwwxwwwxwwxwxgxhxxwwwwxxwxwwxwwxwxghwwhxxhwwwxxwwxxwxwxwvxwhwwxwwxxxwwxwhxvvwwxwwwwwgwvwxwwxhwwwxxwxwwwxwxxwxxwwwwwxxwwwxwwxwxxxxwgxxxxxxxwxwwwxgwxxhwxgxhxwxxwwwwxxxvxwwwvwwxwxwwwxwwhxxxxxxxwwwwwxxxxxxhgwxwwwwxxwxxwhwvwvwxxwwxxxuwwwgwvwwwwvvvwwgwwwVegvwwwwwwgvvwwvwwwfgwwegvwwwwxgwwwwuvwgfewwwwhvwgwwwwgwwvWwgwxfwwwwwwwwwwwwwgvgxwxwuwwwvgvwgvfvwdvwweevwVvwvvvwxwwwuvgwwwwvwwwwwguwwxwvhuvwvweVvwfgwvewwfvfuwwwvtwfwwxvxwwwwwwvxwxhgwwwgwfxwwvwvxgwwwgevwwwwwvuWgwwxwwfwwwxwwgwegvwxwwgvxxwwwwxwwwwxwxwwvwwvvwgwvWgxwvwwxwhhxxxwgXhwxwxwxxwvwwxWwvxVwvwwxeffwwwvvegwwvvxwwgwwhVwwvxwwuwwwwhhwgxwwvvwwvwwwwwwxwfwfxwwuvgxvgvvxhwwxwwwvxvwwhwwwxhxvwwhvwwwwwwwwxwvwwwwwwwwxhgwvxxwwwwwwwwwwwxxwhwxvxxwxxvxwxxxwwvwgwwwwxwwwwwwwwwwwwhxxxxwwWxwwwwwwxwwwwxvxxwwwxxwxwwwxxwwwwwxwwwwxwwvgxxgwwwxxxxxwwwxxgwxxxfxwxxxwwxxxxxxxxxxwwvxxxwxxxxhhxxxwwwwhgxxwwxwwwwwxwwwxwwxwwwxxxwgxwhgwwxxwwwwwxxwxxwxwwxxhwwwwxwxxxwwwxwxuwwgwfwvvvwwwEevwwWvgfvwwwfwggfwxwxwvfgwwgwwguvxwxhGvvwgvVwWvwwwgwwXfwgGwfwwxwwwhvxfwwwxwvvxwwxxwgwwwxwxwxhgVvwwgwwwgwwvffwggwwvfvwwwwwwwwwwgvwxwvxwvgfwwxxxvgvwwxvwwxfwwggvgwwxwwwgwwwuwwwwwxwwwwwxwwwweuvwvgfwwxggvVvwgXVvwwwxxgwwfgwwwvfwxgggxxxvxxwxWvwhwvwxwxwxwVFWVxxhxwxxxwwfwhxxxwwvhxwwwwhxhhgwhXvxwvgvwgwgxwxgewvwwwvwvwwwggwwvwwgxgwxvwwwghhhxwxxgwwgwwxxwwxxwfwwxxxgwgfwvwwxxxhxxgwgwwwwxxwvxgugxwwvwwwwwwwvwwxwxgwwvxxxxwxxwxxxxwwuwwwxwwwwwwwxwhwxxxwwwxxxxxxwxxxwwgxwhwxwvgwwxxxwxxgwgwxxwxxwxxxwxwgxxwxhwwxxwxwxxwwxhxxwwwwwxxwxwgvwwfwwwxwwxxxgwhwxxxxgxxxwxwhxhxxxxxxxwhwxxhxxhxywwxxxgxvxwwhxxxxxxwxwwgXwhwwwxwvwwxwwwxxwwwwxwxxxxwvxxwwwwwwwxxxwxwwwxwgxxxwwwgxghxwwxwxgxvgxhwxwwxgwxxwfwvgwvwwwxwwgvwwwxwwxfwwxwwxwuwwWwfwwwwggwguvwhwvwwwfwvWvvwvwwgwvuwhgwewwwwwwgvfvgwwwwwwwwwxvhwwfvvwfgfwvvwwwwwfvwfwwwVvwxwwwxfvfewfwwwwwwgvxwggxhwwwfwuvvgfvvwxgwwwwwwhvWwwUwwvvvwxwxgwwwxwwwxfgwwuwWvvwggfvwxgfvwgwwfwwwgwgVgvwwgwwxwwwwhfwghwxwwxxxxxwgvvxwhhwwwxwhwxwwwxxgwwfxxwhwvxwhwxxxwxxxxxxxwfgfwfvfwfvwwwgxUexWwwwvwvwgxwfwwxwwxxxxwxvuwxXgwwfwwwhwwwgwwhwhwxwvwfwwxggfwwwwwxwhgxwxgfwwxwwwxxfwxwwwwwxwwwwwxgwxwwwxxwwwxwxxxwwxvxhwwxgwgxxxxwxwxwwxwwwxgxxwwvwwwxwwwwwxwxxxhwwxxwxxwxxwwgwxxvwwxwwxxxvxwwwxxxxwxxxwxxxgwwwwwgwggwxxxwwxwwxwxhwxxxxwwwxxwxwxwxwxxxxxxxxwwwxxgwwxxwwwwxhwwwxxxxwvgwwwxwxwhxxwwxwwwhxwxwwwxwhxxwwxxxxwwxwxwxwxxxwxtwxxwwwwwwXwwwwwwwWwwwwwwXwXeVvwwWgwvwwwwwwxwwwwxwwGvfwggwwwxxvgwxhxwWwvwxwwwwgwxhwwxwwwwwwvwwwwwgWvwwxvwxxwwwwwvwwwwwwwxwwxwWvvwwwxwwwxwwvgwxgwuxwxxwvwxvwxvwwgwwwwwwhxXwfxwgwwwxxwwwwhwHvfwxwwwwwxhwxxxwWeVwxxwwvgxhwgwxxxxxwwxyxxwvgxhxwhxxwxxWwgwwwvwwfwwgwxwwxwwxvwxwvxwxuwwgwwxwwwxwwvghhwxfwwwwwgxwwwxxxxwwwxwwwwwxwwxxwgwwxxwwwxxwwwxwxwxxWwwwwwwvgwxhwwgwxwwwxvxxxxxxxwwvxwwwxwxwwxxwxhwxwwwvvxxwwvxxhwwwxgwxwwWwgwwwxwwwwhwxxxwvxwxwxxgxxxwwvghhwwxghwwxwwxxxxxwxxxwxwxvxxwxxxxwxxxwwvwhwxxxxwvxxxwxgfxgwgwwwgwvvwvwgxwfwxGggwgwwwxwwgwwwfwwwgwgwvxwxwwwwvgggwwwgvxgggxfwwwgwggghwwfGvvfwwxwwwwxwxwwwwxugwgWvwwxxxwwfwwwwvwuwwwggWfwvgwwfwxwxwwvxuxfxvfgvwvwwxvvfxwvwwhwwwwfwgxggvxfwwxvwtfvwGvwvxxwwwvgwwxXwxwwwwwgxwwwgvwwwwwwxvvwwwWwwwwxwFvxxxwgvgwwxxxwggwwwgwxxwwwxgwwxwwxxwxxhgxxwwwwxxwwwWxwwxghwwwwwxhwwhxxxwxvxxhwwxwwxxhwwxwxxxxxxxwxvgwxvwvgvhxgxfvvxwvwwvwwfwgvxwwxvxwwxwuwwwxhguwwxwwwuxwWwxwwwgwvwhgwwwwwwxwxxwxwwwxxXwwxxwxwxwwwwxwwxWfgwwhwxwwwxwxwwwxxxwxwxwwwxwwgwwxwxwWwwxwxxwxwwwxwxxwwhxwwxwxwgxwxwwxxxwxxxxxxxxwgwwwxxwxwxxxwxwwxwwxxwxxxwxxxxxwwxwxxxxxwxwgwwxxxxxxxxxxxxwhxxxxyxxgxwxxxxxxxxxgwhwxxxxxxwxxxxxvxxxwxxxxxwxwhwwxxxxwxxxxwxxxwxxxxxxwxwxxxxxxxxwxxxxxxwxxxxxwwwwwwxxwxwwwtwxwwwwwwwxWwwwwwwwxXwxwwwwWwvvXeVvwwwXwxhwwwwwxxwwwwwwvwXfwwwwhwxxwhwHfgwwwwwxxwhxwxwwwwwgguwwxgwwwgwwwwwwwwwwxwwwxxwwvxwwxwwWvwwwfwgwwwxwwwgwxwxwxgwuwwgvwwwwxwwwxxxwwwwgwvwGfggwgxwwwxwhxwWgwhwgwwwxxxwxwhwxwxxwxWeVwwgwvwvxwwxwxxxxxxxyxvwvxhwxwxhxxxxxhxWgggwgwwwuwxwwwgwxwxwxwwvxgwvwxwxwgxxxxwwvwvfxwwxwwvhxwwxxxwxwwwwxxwwxxxwxxxxwwwgwwxwwxwwxwwxxxxxwwwxwwxxxxWvwwwwwxwwwhxwyxwwxxvxgwxxxxwxwwwwwgwxxwxxwxhxwxxxxwwvwxxxxxxwxwxwwxgxWwwgwgwxwwwhwwgwxxxwxwxvxxxxxxxwxwvwvgxxxhxwxwhwwxwxwxxwxwxxxxxxxxwvwvxxxvxxxwwwwxwxwxxxwxwvxwxxxwxxxxvxwxxxxhgxfvwggwvwxGvvvwwwwwfxvwgwwgwwgvwwwwwwwwwwvwgwxfwwwvvvwxwwgdwuwwvgvwvwgxxwwwwwxwvvvwwvxwwhwwwwwxwwwxvxfwwwgfuwuwwwfwwwggwgwvxwwwvWxgfvfvgwwwhfvxxwgvwwxwwwwvwvxfvvvvvxwwgvwwwgwvxfwvvuwwwvwwvuwwwxxwxxwwvwwgvwggvvxfvGgwgvxvwhwfwwwfwwxwwwWwgvwwwwwwwxWwgxxxxwxwxwwwvwhwwwwuhwwhwxxwwwxxwwxxxwvxwxwwwwxxwxxhxwxwfvwxGvfwfwwvxxvvgGwgvwxwwwggwgwwwwwwxwXwgwgwwwxwwxwuwggwwwxwwwwuwghwwwxwwwwwwxxwxxwwxwwWvfwwwwwwwwwwwhwxxwxwwwwxxxxwvxxwwwxxxxxwxxhxxxxyxxgxxwwxwwxxwgxxwwxxwxwxwxwwgwxxwwxwxwxxxxwxxxxwxxwwwwwWwvwwxxwwxwxxwwxwwxwxxwhwxxwwxwxvwwxxxvwxxxxwxhwxxwxxxwxwxxwwwxxxxwxwwxhwxxxwxxxxwxwxxwxxxxwwxwxxxxwxwwwxwwwxwxfgwgwwwwwwfwwxvvwxwwxwvwwxwwWwwggWwhwwWfwwwwhgwggwwwWwggfwgfvfwwwWggwvwwxgwgxwgVgvfgwxwwxwwwxwgwwhwxxwwxhxxwfvvwwgfwvwgewvffvwfwwwwwwxwwwxffggwxvwwwxxwwVfwwgwwwxgxffvwUefwvwvgwwffvwWwwwwvvxwfwwuwxxhxfwxwwxwgwxwgwwfvwxwWgvgwVwwwWXgwghwwgwxwxwwgfgwwxwwvxhgwgwwxxxwxwxwwxgggxwwwxwxwwgwwfwhhwxxxxhxwxxwwhgxwxwxxxxxwhxxxxwfWwvwwwfvvwuwggvxwwwhvwUwxwvvgwwxwgwxwxxwwxxfxvhxwhwwwwwvwwfwwwfwwwwhwhgvvwxwhwxwvxwwwwwwgxfxxfwxwxwwwwwvwwwxwxxwwwwwwwxxxwxxxghxvwgxwgwxwwwwwxwxwxwwwwwxxwxxwxxwxxxxwwwwwwwxwgwxwxxwxxxxxxhwxxwwxwxxwwwhwwwwvxgwxwxxwwwwxwxhwxxwwxwxvgwxwwxghxxxxxxxxwxxxwwwxxwwxwxxvxxxxwwxwwxxxwwxxxgxxxwxxxwwxxhxxwwwxxxwwxwgwwwwxwxxvwvxxxxwwwxxxxxxxxwxxwxwwxxxxxwwxwxxwxwxwuwwwxwwgvwwwwhvgxvwVfgvwwVuvxggwvwwwgwvfgvwxwwxxhfwvwwwwwxvwxwwhwgwwwxfwwwfuwwwwwwxwwxwhwwwxvewwwwwwwwxwgwVfgvfuwwvvvxxgfgwwxwwxgvwwuvvxfvxwwwfwvvwwxwwxgwvwwwwwgwwwgwwfwwwvxeuwwwxxwwhvgxwVfwgxfwwhwwwwxwwvxufWfwvwwuxgwvwhvwxgwxwhxxfwfwwvgwwwxwwwwxxxxwxxhxvwggwwwhvxwxxxwgxhxwxxxwwwVvwwgvwxvgvuwwgvwwwxhxwxwWvwuwWvxxgwwwfgwwwxfvwwwwvwwvwwwwxwwwwwwxwxxvwvfvgwxwxxwwwhvwxhfxxwwwwwvwgwhwwxwwxwxxwwwxxxxxwxxxxxxxxwxxxwwxxwwgxxxxxwwxwvgxwwfgxxxxxxwwxwxxwxxwwwfgvgwwwwxfwgwwxxvwwxxxxwwxwwxxxxxyxxwwwwxwyxxxxhxgfwwxwwxxxwxwxxxxwxwhwxwxxwxwxxxxxvwxwvwwwwwvwwwwfwxwwwwwwwwvwwwwwfwwWfwuwgwgwwgwwwwwwfvwxvwxwVewwwxwwwxwwgfwwwwwwgwxwwxxgfgwwxxwhwwxvvwvvwwwgvvwxwVvvgvwgwwwwwwwwuwvvwxfvwgwfvwwwwhxwwvfvwwwvwxffwvwwvwvxwxvwwfwwwxxvwwwwvuwxwwxwwwwwggwwwwhxvwhwxvwfwffwwxwxffWWvwxwxxwxwwwwwxwwwxwwxwwwwwxxwwwxwgwfxhwxxhxwgxgxxwwxxwgxwwfwwgwvxhWwufWfwuwgvwvwfwwxvwwxwxxvxxvwvwwfvwxwfwwwwwfwwwxxwxxxgvwwxwwwwwwxxwxwwwxwgwwvwxxxxxwwxxwxwwwwxwwxxwxwxwwwxwxxxxwwxxxwvxwgwxxwwxxxwxxwxgwxxxwxxwxwxxwwwwwxxxxxwxwwhhxwxxwwxwxxwxxwxwwxxyyxwwxxxxwwwxxxwwxxxxxxvwxxwwwwwxwxwxxxwxxxvwxxxxxwwxxxwxwwxxxxwwwwxgwwwvxwwwvxhxxwvwvWvwUfvxwwvwwvwxvgwwwwWvwUfvxwfwgwwwwwxwxwvwwwwwwxhgfwwxvWwhuwxwhwwvwxwwwWxwxfwxxwxxwwxgwvxwwwwxgfgeffwwwwwwvwwfvvxwwvwwwxxxwxwwwwwwvwwwwxfghuwwxvwvvwwwwxwvghwxgwxwwwxvwwhfwvwxWgwwwxwghwwwxwwfwfwwwggwxwxxgghwghgwwwxhwgwwxwUvvggwwvwhxwwxhxxwxwUfvgxhwwxxxxxxxwxhxxhxxwwxxgwwwwwxvxxwwxwxggxwgwwwwxxxgxxvwxgvwxwwwxfggwwxwwwwwxxxwxxwwwwwwwxhwwwhxwxwxgwxxxxxxvwwwwgfggwxhwxxxwwxxxxwwxxwxwwxxwgxxvwxxwwwwvxxwwxxxxwwxxxwxwxwxxxxwxxxwxxwxwwxxwxwvxxwwxhwxgxxxxxxhvxxxxxxhxhxxxxxxfggwwxxhxxxwwyxyxxxhxxwxhxxxxxxxxwwwwgxxxxwxxgxwwxxxwxxhxwxwxxxxxxxxhxxxwxuwwwwwwwwwwwgxwwwwwwwwvwxwUffwwvwwhgvxvxwwgwfvvwgxwxxWgfwgxvwwggwgwwwwwgwwwxxgfwwwwWxvxwvgwxwxwxwwxxwfwwfwggxwwwwwwwvvxwwwwwvwwfwwwvwwwwxxwwwwwgwwwxwwwwvwwwvwwwxwwfwwxgwxwxwwwwwvxwxvxwxwxwgxxufgwgvwwwvwvwwwggwwwwxxxgwfwgvwwxWgwxwwwwxxxwxxwxgvggwwwwgxggxwwxgxxwfWWfwxwxxxxxwxwwhhfwxvwwfwwwwwxwwvxxwvxwwwwwxwvwwxxvxxhwgxwxxwxxwwwwgxwvwwgwwwwwwwxwwwwwxwwxxwxwxxxwwwxwvwwwwxgwwwwwwwxwwwxwxwwxwgfvxxwxwwxwxxxwxxwwvvxxxxwxxxwwwxxxxwwxwwxwxxwwwxwwxxxxgwxwxwxwwwxwxwwxxwwxxxwfvwxwxwxxxwgxwxxxwwvvwwwwxxxxxxxxxxxwwggxwhxxywxxxwxxwyxwxhxhxwhxxwxwwwwvwwwwwwxxwwwwxxwxxgxxxxxxwwxxwwwwwwxxxywxxuwwxvgwwwxxgwwwgwgwgwwwgwwwwwwwwwwwwvwwgvvvfwgwwwwgfvxxgwwWwvwgwwwwxgvwfwgwhwxwwxfwwwwwvvfwhwwwwxwvwxwxxwfvvgwwwwwfvvgwwwvvwfvvxwwwvgvvwwwwwwwgvxgvxwwwwwwwvvgfvfwfvvwxwwvwwxwvwwwwwwwwwfuvvwwwwgvxwwgxwfwxwwwwwvwwxgwgfgwwwhxWgwwwwgxwxwxwwxfwwwwwgfvwxxwwwwxwgxwhxxwwxxwwwxwhxxwxxxhwxxwwxxxxxwwwwxxxwwxxxxxxwxxhvvggwwfvvwwwwffvwwwgwwwwwwwfvuwgvxwwwvwwwxfwwwgwhwxwwvvwwwwwxwwwwwwwwwwxwwwwwxwwwwwxxwwxwwwwwwwwvvwxwxwxwwxwxxxwwxxxwwxxwxxwxwwwxwwxxxxxxxxwwwwwxwwwwxxwxwgxgwxxgxwgxwwxxvvwywwxwwxwxwwwxxwxxxxxxwhwxwwxxxwwxwxxwxxxxxxwxxxxxxxwxyxxxxxwxyxxxwxxxxxwwwwvwywwvwwwxwwxxxxxwxwxwxwwwxwxxxwwxwwvwwxwxxgwwxggfwwwwwvfgwgwwwwwwxxwwwwgwwxxfwwgwwwwwwfwwwwwxhwwwwwwhwwxxwwxwwwxwvwgwxwgxwwwwvxwwxxvwwxwvvvxwwwwwwvvxwxxwwwfwwwwwxxwxwwwxwwwwwgxvxwwwxxxvxwwwvxwwwwwhxwwwxwxxhwwwxxwwwxwwwxgwxxgxxwxgxwwgxwwwwwxwwfwwwwxxwwwfwwwxwxwwxxwxxywxwxxxwwwwxwxwxwgxvwxwwwxwwxgxwwxxgwxwxxwwwwxwxwwwxxwwxxxxxxxxwwwxxxwwxxwxwxxxxxxxxwwwxxwywxxxxwxxxwwwwwwxwwxwxwxxwwwwwwxwxxxxxxwwwyxwxwxxxxxxxxwwxwxxxyxxxxyxxxxxxxxwwwxwwwxxxxwxxxxxxwxxxuwwTvewwvvxggfwvfwxwguvwwwwwxfwvfwvwwvvugwfxvwwxwvwxhVvuxgegvfwwxgwwwwvgwXgevxgwwfvgvgfvvwwwxxxwxxwewvwfwfggwwfwvwgwwwvwwggxwwwwwwwwwvvwvwvfwwvxvgvwvwegwvvgwwvxwwwxwxxwwvwgwvwwwgvxvwwvhhxwwtvvwXwfWwgwwxwwgegwvwGfwwgwwxwhvfwwwgwwvvwxwwxwxwwxwhxvxgueWFewwxxwxwwhgxhwwxxxwwwfwwwhwgwhwXhghxhhvwxxwvgvwvvgvgwwwhwgwwwwfwwwwwWwwxwwwxwxwwwxwwxwxwwvwwwwfwwxxvgwfgxwxxwxwwwgwwwwwxgxxvhxhxwvwvuvwwgwwwwwxwwwgwxwxxgwwxwxxgxwxxxxxwgvfwwwwwwxwxxxvwwwhxgxxwxhxvwvvwvwxxwxxxwxxwwxwwvxxxwxwxwwwwxxxwxxwwxvwwxwwwwwxwxwxwWwwwwwwwxwxxwxwwwxxhwxxxxxwwwxwwgxxxxhwwxwxxwwwhxwwxhxggxhxxxyxxxxwwxhwXgwxxwxgwwxxhwwwxwxwxwwwwxxwxxwxwxwwxwxwwxwxwwxgvxxwwwgwxhwwwxxgxwwvxwgvxwwhxuwvwewvwgwvgvvgwwgwfvwgvgwwWvwvvwwxwwgwgvgwwwvwwwxVwvwgwVvgvvwvvwwwgwwvxwwwgwwwgvvvvvvvvhwwwwfwwwgvWwxwwxwewvwuuevvggfwvvvgvwvfvwwgwwwvvwgvwwwwvwwwwwwfvwfwwwwvvvveewvwgwwwwwfvvwgwffwwwfvwvwwwwwxwwggwwwwwfxwwvevwggvgvfwwgwggVwxwgwwvwwwwvwwwwwwwwxxggvfgwggwwgxxxvvwhwfwxWvwxwwhwxxxxwhxxwwwvxxwwxxWwfWxhxwwwxxxufvwwwwvvfxwvwwgffgwwggwvwvwwefvgwwwhxwxvfvvfvwhxgxwwwwvwwfxxvwxwevwwwxwgxxwvxwvwwwwwwxwwwwwwvwwwxwwwwxwwxvwwwwxwwwxxwwxxwwwwwxwwxwxwwwwwwwxwxxwwggwwwwwwwwxxxwwwxwwwwwwwhwxxwwxwwxwgwxwhxxwwxxwwxwwwwxwwwvxxwwxxwwvxwwxxwwxwxwxwwwvwwxxgwxxxwvwwxxxwwwwxwwxwxgwxwxxxxwxwvxxxxwwxxxxwxxxwwxgxwwxwvxwhwxwwwxwwvwwxhwxwwxxgxhxwwhwvwxwxwxxwxxxwxvxwwxvwwwwhxwwxgwxxuwwwgwvwgwwxVvVvvwhgwwwwgwxwwwwwwfwvwwgwwwwgggVvgwwwwvxwwfggVwvgwxgWuvwxwwwwwvwwwwwwwwfwVvgwwwxvwwxxxwwggwxwwwWwwwdwgwwgvewvgvgvVvewfvwvwgxwwwwwvwwwWgvwuxwwvwwwwvvwwxVffwevwwexvwuvwwgwvwxwvvwgwxuwwwVwwvvwwhwhhwxwxwwxwwwxhhggVfwwgwwwgWwwwgwwwwxwxgWwwvxwwwwwwwxxfwwwgxggwwwwxwwwwwvwgxwxwwgWxxwwwxgxxvxxgwgwwxxxwgxwwxwxhxhXwxxwuwggwewewvhuwwwgewxfxgffxvwgwtfwwgwxwwwvwwhxvwwwwvgwvwfxwfwwwxwvuvvwwwxwxhxwxvgvxgxgwwwxwwxhxwwxwwgwxvxhxwwwhwgwvwwxwwwwwxwvwxwwwwwvwhxxwwwvwwwwgvxwxwxxxxxxxxwwwfwgwxwxwxxxxxxxxhgwwwxwwwwwghwwwwwxxxxwwwwwxxhwWxxwwwxwwwxwwwxxwwxwxwxxwxwvwxxwwxxxgwxxwwwxwwxwxxwwxwwwxwxwxhxxxxxxxwgxxvwwwwxxwgxxwxxxxxxxxwxhxwwwwhxhxxhvxxxxwwwwxwwwwxxxwwxxhxgxwwxxwwwwwxwwwxxxwxwwwxxwwwxwwhxxxxwxhxwwxxwwhwwwwwxxwxxwhxwWdFhxfwwwwwwwgwwxwxxgwwwvvwwxwhwvwxxHuWwwxwwwwwxxwwwwwxxxwwwwxwwwwwwwwwxwwwwwfwxwwwwxgvwwwwwwxwgwwxxwxxxwwwwwwwwwwwvwwxxuxwvwvxwxHuWwxwwwhgwwxwwwxwwwwwwwxxxwwwxxxwxWdFxwwwfxxxwwwyxgxxxwvvwwwxwwwwwxxwwgwwwwwwwxwxwwwxwwwuwwxxxxvxwgvwxxfwwwxxwxxxxxwxxxvxvwgwwwwxxwwxxwxwxwxxxwxwxwxhxwwwwxxwwwwxwxwxxwxwxxxxxwxwxwwwwxwxwwxwwxxxxxxwxhxwwwwwxwwwwwxwwxxxxxxwvvwwxxxwwxwwwxyxxwwwxxxxxywxxxxwwxxxxxxwxxwwwxwxvvxfuwfwwwwgwwwfwufhgvvgwwwwwwwwvwwwwwfwwwvwwwggwfwwwxwwfwwwvwwvwgwwwwgwwfwxwgwwwgwxwwwwvwwwwwvwvwwwwwwwwuwgwwwwwwwuvwwwffwwwwxwwhvwwfwwfwwwwfwwwwwwwwwvwwgwwwwwwwwwvvwwexxxuwxwvwvwxxwwwwwxgwwxxwwfwwwwwwgwxwfxwgwxwgwwwgxxwgwwwwwgxwwwxwwwgwwgwwwgwwwwxwwxfwwxxwxwfwwxxwwxxwxxwgwfxxwxwxwwvfggwwwxwxvwxwvgwwwwxxwgwwwhewwwxwuxwwwxhxwxvgwwvwxwwwxxwhwwwwwgxfwwxxvwvfhhwvxwwwwwwxxwxwwwwwxwwwwxxwwwxwwxxxwxxxwwvwwwwxxgxxxxvwwwxwwwwxwxxxwxwxxxwwwhwxwxwwwxxwxwwxxwwwwwwwwxxxxwwxxxhwxxxwwxxwxwwxfwwwxhvwwxwwwxwxgwwwwxxwxxxxxwhxxwwwxxwwxxwxxxyxxxxxwxxxwhxwxhwxgxxxwwwxwwwxxwhxwwwhxwfxxxwvwxwwxwxwwwxwxxwwwvwxwwwgwwxxwwwwwxxfgwwwwwhVewfwvwvvwwwwvgvxxwwvgvwggwwwxwwxgWfvgwvwwwwggvwwWfwwxxxwwgwwwvwgwvwxgwwhxxwvwwxgxgvwwwvvwwwwvfwgwvwffwwfvwgvhxwwwwwwwwwxwwwgvhxwwwwwvvgwwwwvwwwfwwxxwgwxxwvvwwwwvwwwxwwxwxwwxwwwwgvxggvggwwxwwWgfwWwfwwwxxwwgwwwxxhxgxwxwxgggwwxgwwgwxwgxgxvghhvwwxwwhhghxwxwwxxwxxwxwxxxxxxwxxwhhwxxxxxwwwwwwwfwwwwxwxggvwxwgvwwvwgwwwwxvwxwwwwwxwwxwwwvwwwwwwwwxwgwwxwxxfgwxwwwxwwwwwxvwxxxwwgffxwwxxwwwxxxwxgwwgxxxxwvxwwxxxxwxxwxxhxxxwxxwxxvxxwwwwxwxwxxxwxwwxxxwwxvwwxxxhxhwxwxwvwxwxwgxxvxgwxxwwxwxxxxxwxxxxxxhxwxxgwxwwyxxywxxxxxxxhxxwwwwhxxxxwwwwghxwwwxxhxwxwvxxwxgwvxwxwxwxxxwwxxvxxxgfvwgwwxwwxxxwwvwfwwwwwwwwwwwwWwfuwwwwgwwvwwwwgvfwwxwwwwxgxvwwwwvxwxxwxwwwxwhwvwwffWfuwxxwxxffwvwwxxwgwvgwgevwgvwwwwvwwvwvvgwwwwwugwvfwvwfwvvxwhwwxxwxxwxwwvwuuwfvvwxwvwwfwWwfuhgvwwfwwvxwxwwwvvwvxxxxwwwwxwVewxxgwxwwfwgwxwwwxwxxgwfvgfhwwgxxwhwwwwwwxxwwxwxwxwwwwwwwwwxwwwwwwxwwxwxwwgfwvgxxwxwxxxwxhxxvxffwfgwvvwgwwwgwwwvwwfxvxwwxxwguwwxxwwwxxxxfwvwwfwwxwxwwfwxxwwxgvwxxwwwwxxwxxwwxxwwwgwwvwwxxwxxxwwxwwxyxwhwxwxwxxwxwxxxxxwwgwxwwwxxxwxwxvxxxxxwxwxgwgwxwwwwxxxxwxxxxwxwxgxwwwxwwwwwxxwxxxwwxxwxxxwwxwxxxwwxwwxxwxxxxxyyxwwwwxwxwwxxxxwwxwxwxhxwxwxwxxxwxxwxxwwxxwxwwxxhwxvwWwgvwwwwgvwgwUvfwvwwWwgxvgwwwfvwwgUvfwwwxwwwwwwwxvuwhwgxwgwwwfvwwwwwxwfwwvgvwgwwfwwwwvgwwxwxwgvfvwwwgxwVffwwwwwwwvwwwwwwwwwfvgvxwwwwwwwxxwvwwwvggxvwwwwwxgvwxvwvxwwwwxhfvwwwgWwxgwwxwxwwwhxWwxwwxWwgxwwwwxxwfxwwxxxhvwwxhwUvvvxxxwxwwwhgwwvxwwUvfvxwxxxhxxwwhxxxwxwwwfgwwxwvhwWwwwxxgvwgwwhwwxvxwwxxvxwxvxfggwwxwwwxwwxxxwhwwwwwwwxwwxwwxhxwvwxxgxxwxxgwfggwwwhxwxwwwwxxxvxwwwxxxxxvhxxxxxhxxwwwwxxxwxwxxxxxxwwwwxwgwxwxwwvxxxxxwxwwgxxwwxxgwxxxxxwwwgwxxxxfggwxwwwxxhyyxxhxxxxxxwxxxwwxwxxxxxwwwwxxxxgxxxwxxxxxxxywxuxwwwwwwxwgwxwhvggwgegfgwwwwvxvvwVgWggfgwwvwwwwwxxfxxwwwhvgwhwhewfvwxwxwgwxvvwwwwvwgwwWWffhwgxuxgxwwvwwwwfwuwewhwegfgwwvggxxfvvwvwwxwfgvwxuggxwwwwwwwvuvwvwvwwhewvwwgvwvxxxwwuvwgwwwWgwwuhwfgwxxxwgxwwgwvwwwhhfwhwwwwwxwfwwWfwwxwwwwwwwwxxhxwxwxwfwxwxvwwwxwxfwwgxxxxxwwxhgwggwxwxgvwwxwhxhxxwxxfhwvvwwwxxwvgwvxwxwwwxwxwwwvwwvhwwxfxwVwuwwfwvwwwwwwwgxwwgwwwxwhwwwxvgwwwwxwhfgvwhwgxxxwhfwwvvwwwwxhwhwxwxxxxwwxxwwwxwwgfgwwgxxfgwwxxxxxwxxxgwwxxxxwwwxwwxwvvxvxwfvxhxxxwvxfxwwwwxwwxxxhxxxxwxwwxxxxxwxxxxxwxxxwxxxxxxwxwxxxwxwxxxxxywxwxxxxxxwwwxxxxxyxwwxhxwwxxxxxwxxxxxxwwxwxxxwxwxxxxxufvtevgTuewevvvvwwfwvwvgvvvwxfggvvfVwuwwxwwwvwwwwwwwvwwgwwffuwvvgfudvwwwxwggfvgvwwwvfwgwfvwwwwwwwwwwwxweffveevwvfvvwwwvvwwwwvwVvfgwvwwxwwwwwwwwgxxxwxgvwffvweuwuvhwxwwxgvgvwxwvwwxwxwxgxxxwwxwdvfgwTdwUfvuvuvfffwwwfdegwwwueFwvevwvvwwwgwwwwwgguwwhwexxwvwvhwwgwvwwfvwhwwwwwwwwxwwxwwwwwxwwwgwfgfefvvwwvwwwwefvwwvuwwvuhwwwggwwwxgwxvgwxfwwgxwwwwfwvuxgwwgwwwwwwwxxxwwxwvwwvwwwxwxxxxfvfwuVfwuwwwwvwwwwwwhvwwwwwgvwwvvwxxwwvwwvwffwvvgwwwxwwwgxvxwwwwwxhwxwxvxxvgwxwwvwwwwhxwwxxwxxwhgwwxwwghxxxwwwwvvxwxwwxvwxwwxwxwxgxxxwhhxvFewgfuvvwgwwwxgfwwwgwwfwwwvwvwwwxvvgwwxwwwxgxvvxwwwwwwwwvvxwwwwvxwxxxxgwxgvxgwwwwwwwwxxhwvwwwgvwwwwxwxvwwwfvvxhxvwwgxwwxxxwwwwgvwwwwwwwwwwxxwxwxxxwwwxwxwwxxwwwxwvwwvfvwufvwwvfevuwfwwuevvfwwwvwwwggwgwwwwWvvwwwwwwxxvfvwwwwfwvwvvvfWwwwwgvuwxwwwgxwxwgwgwgufvwfwvwuvwwwwUevwwvwwwvgwwwwwwwwwwxfwvwwwwxxwvfvvwwuvvxwwwvwwwwwwwgwwvwvwwevuwvfWwwUevuvvffwwwwwwvwwwwvggwwwxwvwwxwwvuvgwxwwwxwvwxfwwwwwwwvwxwwwwwwwxxwwxxxvwxwwxxwxwxwxxwwxwwuevgvuwwwvwwvwwwxxwvwxxvxwvxwxwwwxwxxvfwwxwwwwxxwwwwxxxxxxwxwwwwwvwwwgvgwwwwwwvggvwxvwxwwwvwwwwwxwxwxxwwgxwwwwwwxwxvxxxwwxwwgwgwwxwwwwwgwvwwwxxxwvxxxxwwwwxxxwwxwxwwwxwxxwwwwxwxwwwwxwwxwxxwwxwwwwwwwxwWvvwgwgfwvwvwvvuvgxwwxwwwxwwwxwwwwxwhwwwwwwwwwwwwwwxwxwxwxwwxxxwxwwhwwwwxwwwwxwgwwxwwxxwwxxwwwwwxwwwwwwwwwxxxxwvwxxwwwwxxwwxxwxwwwwwxwxxxwuffwfvvg6fewcVfvVwfgwVewffVvfvuwUwugvwxwwgvvwwWfwfggxgvwxwxgfwxuVEwfffwVVfwvxgvwwwwxwwxwwwgWWvfwxwgwgwvwwgwwwwwwwwxxhxUvvxfgvwffeweufvfgwwgggwfwwwwgwwwwvwuwxvxwwgwwxwxxxxggfuufwwvvwwwVvwwwwxwwxxwwwwxxvwwwwwwwxgwxgxfvvgvggwTfVveuuwf6EfwwfVFfwethuwwwwgwwfwxxwgggxwfvxwxwwvwwwfgwwxwvwwuvwxwwwwwxgvxxxhwwwwxvwxxwwhwxhxwxgxxxhwvfgwgvwfvvgwxwxfgfwwwvwwwwgxwwwwxxwhxgwwwwwgwxxwxwgxwwwwwwgwxhwwvwwxxhxvhxxxxxxwwxxxxxgxwgxxFvwtggvfwwwvwvggwwwvfvwxwxwvwvvvwwwwxwfvxxxvxgxwwxfgggvvxvvwwwwfvwwwxxwxxhwxwxxgvwhhwwxwwxwwuwwvwwwxwgvwxwxxxwxwxxxwwxxwxwwwwwwwxxwxwhhgwwwxwwwhvxwwxxhxhxgxxxxxwxxxwwxWgwxxxegfwvwvwgvfwwwhgwVwwguwxwwwgwwgwwwwxwxwwxgwwgwwwwwwxxwxwxwwwwxwwgwhxwgwwwwwxxwxwgwxwwwwxXxwwxwxwvwwwwxxwwwwhwwwuxvgvxwxwxwwxxwxwxwwwxwxwwwxxxhxxwxwwxwwxfxhXwxxwvxhwwxwwgwwwwwwwxwwwwwwvwvwVggvwfeuvwvvwfwefvwwwwdutgvffvvwwvwvtvffvgwwwwxwvvwwfvvvwwvwvfvgwxvwwwwvvgvvWvWwwvwxwVvuwwWwxwwwuVeggvwwwgvwwxdevvfwvwgwwwxvhvfvfwtwwwxvwwwxvvwgggwxwwwfwwWxwvxxxgtvvfhuwvxwwweuvfwgwwffVwwxwwwEuvwwxwvvvuxgwgeugteevWvgvwvwxvvvvwwwwfwwvvxwwvwvwwwwwgwwgwwwwwghxgvfwwgwgwwvwwwxwwwvftguvvvggwvwxffwvgwwggwwwwwvgwwwwwvwwwgwwwwwwwvVvgxgwwwxhwvwxxwwwxvvwgwwxhxwwwwvwggwwwxwvfvvwwwvgvwxxgwwxxwgxxwwvvwwwwwwwwxwwwwwvwwwxxwxxwwwxxwwwwvwwxxvgwgwhwwwxxwwwvgwwxxwxgwgwxxvvvwwwhxxwxxxwxxxwxxwxwxwwwxwwwgWuwgwwwwwwxfvvuhgwwwxxvvwwwhwwwxwwwvgwggvwxxwwwwwwghwwwgghxwxwwxxwhWxwwvwxwxwwwxwvxhwwwwwxgwwwxxvwxvxwwwwwvhwxwvwwgwxwxwxwwwwxfwgvwvwwxtfvvfvvwfvvgvffuuvvufuveDUvvuvwfugvwevugfvgvwwufvvwvwvvWgwwvvwwwfewfwwvwwfwwgwvwfvwwgwwvwwvvvvugwwvwvwvwvwgwwwwxwwwvvggDUvwwwfVfvwvwwwfggvwgvfwwwvwwwwwwwvwgvxwvwwwwxwxwfwuvwwwwwwxxvwwvvWwhxwwwvwvwwxwxuwwwffwvwwgvvufgvwgwVwvwwvfvvgvwvvwVuwvWfgwvfwgvvvvfwwvWvgwwwwwwwwwxwvwwxwwgwxwwwwxwwxwwwwxwhwxwwwghwwwwwgvvwvvggwwxxfevwwfwwwwwwwvggwuwvwWwwxWwwwwwxwxxwxwwwwgwwwxvxwwWxwxwwxwxxwxxgxwxxxwwwvwwgvvwvfgvwgvvwvxwfwfwwwwwwhwwwwwwwwwwvfgvvwvwvwwhwwwwwxwwwwwwxwwwwwgwvwvwvwvxwgwwugwxwvwwgwwwwwwwwwwgvwxxwwxwwwxxxxxwhwxwvxwxwwwxwwxxwwxwxvvvwvwvxwvwwwgwwwwvwwgwwvwwwwWxwhuwwwwwwwxgwwvwxhgxwwwxwwgxwwwxvxwwwvxwwwxxwxwwxvwxvwwwgwwxwxxxwwwxxxwxwvxwwxxwxxxxwxxwxxxxxxwtgwwVvwwTfwgvuwdevfgeevdeefgffuvwvffvwvwwvwuxvwvwvevvfvwwvvgvwggvwfvvvVvwgwfwwgwvwggwWwgwvfgwwevxvgwgvwwxgggwwgwfvfvvvguwwvwfvVevfFweffwwwwgwwwwvwwwvhwwwwwwxwwwxxxwwvwwwuwwgvwvvwwwwwvhwwuwgwdwxxvxvwvxwxwvxwxwhwxxwxwfwwffgvwffvvgwgfFfvwggffUUvvfvggvfwffwgfvwxwwwfvguWuGvwwwwgwwxwwxxhwwwwwgwwgxfwwxgwgwwwxggwwgwgwwvwxwgwwxhWvwxxvvgwwgxvWwgwwfvvvgfwWwgwgwwwfvvwwwhwxwgfwwxgwhgwwwwwvwhwxwwwwwwwwxwhhfvgwvwwwwwxxxwwwwwvxwwwxevvvwvwvwgwwwvxugvwwgwfwvwwxvwgwwvwxwxwwwwwwxwwxxxwwwvgwvxfwuwwwwggxwwvvwwwwwwwxxhuwwxxvwwvwvghxxxvgwgwvwhwwwhxvxxxwwxxwxwxxxxxhgwwwwxxwwxxxxwxwxwxwwxxxxwwxxxwxxxwwgfgvwgwWgwwxwxwwfgwxwgvvggwgwwvfxxwwxxfwwgxwwvwwxwxvwwwwxwwwwwxxhxwwgwgwvhwwwxwvVwwwwwevwwxxxvwwxgwwwwhwwhwxxxxwwxxxwwxxggxfxxwxwwwxgvxvwwxwvwxfvwxxwgwdUUvfugUdvwufUfvgufvvUTfvvvxTuvwvVTvufwxwfwugfvuvxgwvwgfvvwuwgeefwVvvwvwwxwwfvxwwwwvvvewfwwwvwwwVvxwvvwwwxeevweVTvfevvwwuEUfvuvwggvewwvxeevwwVuvwwwwfxwwxgwwwwxvfUvefvwwgwwxvvwwvwwxwxwwwxfgwwxxwwxvgwwvxxeuuvtgevefUvfwvxtfevvvwEeugwffwfVVvEvuggfuwuwgVgwxgvfvwwvwwgvgwgwwwxwvgwvwwwwwvxvxwwwxwvwwwwwwwwwgwxvxvwwwweVfvffvgvggwwwUvvvwVevwwxwwfvvgxvwwwxxxvwwwwgwwxxgxvwvwwxwvwvgwwxwgwxwwvgwgwvxwwwvxxxxhvVvvwvgfvvvfwwwwfgvvwxwwvwwgffgwxwwwwwvwwwxwfwwwvwvwxwwfwwwwxvxwwwwxwwxwxwgxxxvwwxwwvwwwwxwvxwgwxxxwwwgwwwwxxwwxxwwxwwxwwwwxxwgwvxxvwwgxvvxwwwwxggevvvwvwvwxwfuwxwwxwgwwwvwgxwwhwgxwxxxxxwwxxwwxwwwwwxxxxwgwxxwwwwxwwwwwwxwwwwvxvxwwhwwxvwwhvwxwxwwwwwxwgxwwwxwxxxxxwxxxxxxwwwxwwwwwgvwxwxwhvvwxwwxwwwhvwxwuevxvwvwevVugvwwwevwVvgewvwwwwWufvwwwwgwfvgWwvwwvwwwgwwwvwgvvwwwwwwwwwvwwxxwfuvwwwwwgwwwwxxvvwwxxgwwxwvvwwwwfvWugvgwwwvvwwvwwufvxwVufwwvwwwwwwxWwwwvvwwwwwvwxwvxwxxvuwwwwwxwvgwgxwwxwwxwxwwewvgvvgwgvwvVvwxwfvwwwwwvwwwwgwwvxwgwggwufwfxwwxxwxvwxvwwwwxxxwvxxvwwxwxxxxxxwwwgvwfwgwfvwwxvvgwgwwwwwxwwvwxxxwwwwwwhxxwwwwxwvwwxwwvwxxxwxwwwxwwwwxxxxwwvwwgwwwuvfvvvwwwWwwxvvwwwvxwwxwgxwxvwwwvwwwxvxwxgwwxwxvgxxxgxvwwwgxvxwhwwwwxxwwxgwvwxwvwwwwxwxwxwwwxwxxxxwwxxwwxxxxwxxxxxxwwwuwwvwxgxxgwwwhwvvgwwwwwxfwwwxvwwxwwgwwwwwwxhxwwwwwwhxwxxwxwxwwwxhvwxxwxxwxxwwgwwxwwwwxxxxxxxxxxxyxwwwwdgvwfwwxUeuwevgEvewfwffTVfvgvvwEvuwvffwwgvvwvwegefwwwwffwwxgwwWfFwtgVwegvhgeVwvWwWffwwwugvewgwvWwgvvvwwgwwgvgwwvwwVuvxvwgwvfwwwvfVfvgwfgedvgwwxwwvwvwwwwwwwvwgwfwgxgwwgxwvgwwgvhvvvwwwgvgvggvwvxwgwwwvxwxwwwwwxgwwxwwgwwxvfgwfwhegfwvwwwUVFfvgwxefffwgwvfFUwwwwfvwwxVVVgwhwwwfuwhwwxwwgwgxxwvwwvwwvxxxxegwwxwwvxxgwwxwwwVwwxwggwwxxwfVfvwvwVwwwwVefgwWwwgwwhwgwwvwwxhwuxxwwgggwgxgwwwwwwwvgwgxwwwvWwxwgwwwwwwwhvxhxwxwghwxhxxwwVuvwewguwwwvuwwuWfvvwwwvwuwwwwvwwwxwxguvwxwwwwhuwwfgxvvwvvvwwwwwwwwwwwxxwxxwwwxxwxgwwwwwwwwwgwvxwwvwwwhxwwwwxxhxwwXwwgwwxxxxxwxwxxvwwwwwgxwwwwxhxwwwWwwwxxfgWgvvxwfwWfffxgvvvwwwgwvWwfxwwhxxwgwhwxwwwvxwwwwxxwwxwwwvxwxwxwgvwwghhxwxwxxwxwxwxvxvwwxwxwxwvwfwwwxhwwfxvwxwxwxwwfxwgwggxwwwxwxxwxxhxgwxwgxwhwwgwvwxgwwwwwvwxeuuwvwwwvguwgwwvvwgwwgwevwveuwwvwwwwwwvgwwwwwxxxwwwvvvWwwwvfwgwwwwxwxwwvwfvuvwwwgwwwwwwwvevwfUuwvwvggwgwwwxwxwxufvgwwwwggwxwxwgwwvxxwxwwvgufwwwxwxwvxvwwxxxxwwwwvwgxgwxwxxwwwwUuvwVvwvvfvuvhvvWwwgwwwwxvwwxvUuvwwwxxwxvuwvwwwxwwvxvvwwwwgwwxwwxwwxxxwwxxxwwwwwwwwwwwxvxxxxxwwuuwvwvwxwxVvwxwwxwgwxwwxwwxwwwxxwvwhxwwwvwwwgwwwwwwwxxxxwxxxwwxvwwxxxgxxwwxwwwvwwvfgwxwwwwwwxwxxwvgwwwwwwxxwwwwwwwwwxwwwwwwwvwwxwwwwwxxxwxwvwwwwwwxwxwwwwxxwwfwgxwwwwxxwxwgxxwxxxwwwxwwwxwxxxxxxwxwgwwwwxxwxxxvWvegwwwwxvvgvwwwxxxwxWwgxwwwwgwwwwwwxxxxwwvwwwwwwgwxwxwwxwxwxwwxxwwxwwxxwwwxwhwwwvwhwwwxwwxwwxwwwwxwwxwxxwxxvwwxxxwwwwwxxxwwwxwwwwwwxxwtvgwevfgeeffeffvvwwwvvxwwwvxfvvwvfwvVewvvvwgvwwvxgvwvwwwxwuwvwwwvwwwwgvfgwwwxwxwwwwfvgwwwgwwwwwxwxwvwvvwvvvgefevvwgwwwwwwwxwwfvwwwfVfevwwwwgwxxvxwhwwvvwwwxwvxxgxwwwwwwwwfvwwgwuwwhwwwwxfvfgfgwvVvwwffwvvwvgwxwfwvwwwxuwwwwwwgvvwwwwgvwwwwgxgxWgvvxxwwvwvwwxxwxwxwxxgxwwxwwwxxwxwwxhwxwwvwwvfwgwvwwwvvwwgvwwwxvvwwxwwgwwxxwwwwggxwwwwwvxwxwxwxxwwwwxxwxhwwwwgwwwvfwvwvvvvwgwvvwxwvxxvxwwwwwwwfwwxwwxwwwvwwwwwgwxxwxwwwwvvxxwwxwvgwwwwwfwwxwxxxwxvwwgxxxwxxxxxwxwwwxwvxhwwxwwxwxwxxwwxwwwgvxwwwwwxvuwxwwwwwxwwxwwwwhwxwwwxxxwxwwvwwxwwxwwgwxwwwgvxwxxxxxwwwxxwvxxwxxxvxwxwwxxgwwxwxxxwxxwwwxxhwwwwxxxxxwwwwwwwwwwwxtvwxffwwfwwwgvgggwwfgvfvffwggwwwwGffwvwwfwxHfvwggfwvvhwgwxwvwgwgwvwgwwwxxxwwXwvXwwwxvvxwxxhxwvwwxfvwwGffwwwvwvxGfvuwwwwggwwwwggvwwwvwwxwwwxxxwwgwgxvxfvvwvwwxhwxwxxwwwwwvwwwggvwgffgwwwgfwxvgxwgwfwWwwggwwgxvwvvwwwwgwwvvwxxwhgvwwwgwwgwwwwxxxxwwxxxwwwxwxxwxwxxxxxVvwwvwvwwxwfwwwhwwwwwxwwxwvxxwwxxwxhxxwwwxxwwwgwxwxxxxwwxxhxxxwxxxvwwwwgvwwwwgvwgvxgwhgwxgwxwwvwwwwwwwwvwwwwwxxxgwgwvxvewwgxwxXxvvwxxwwwwwwwxxxxwxwwwwwwwwxvwwxwxwwxxhvxxxxwxxxxwwxwwxwwvwxxxwxxxgxxwggwxvgwwwvxggwwWwvuwxhvwwxwvxgwgwxwxxxwgxxgwxvxxgxwxxwxxwxwwxxxxxxxxvxwxwxwwxxwwwwxxxwwxwxxxxxxxwxxxwwxxxxxxxxwxxxwxxufwxwvvwxfwxwggvwwwwvwwWegwwwvuvwggVvgfwvfvgWegVvvvwewwwxwvvxwwwwhvwwwwxxggwgwwwwgwwwwwxxwwevwgggwVeggwvwgfwgfvvfwwWegvewvwfwwwwfvvxxxhgvvwwwwvwwwxxwwgfwwxxwxxwwxxvvwwwgvwfwfgWxwVwwvwvvgvwwffwfvvwgvwfgwvwwwwvxwwwxxwwwxwwwxwxxxxxvvwxwxwxxwxxgewevgwwwwfwvwwwwwxwxwwvwwwwwwwxxwxxfxhwwwwxwxgwxwxxxxwxwwwwwxwwggwvwwwxfvxvwxgxxgwwvvvwxxwxwwgxxxxxwwvvxgxxxggwwwvxgxewwwxwxwwvwwwwxxwwxwxwxwxwwfwgxwxvXwvwwxwxwvxvxwfgwwwxwwxxwxxgwgvxxxxywxwxwwxxwxwwxxwxxwwxxwxxxxxwxxwxxxvwwwwwwwwwwwwwwwwvwwwvvwwwvvwwwwwwvwwwwvvgwwwvwwxvwwvwwwwxwwwwwwxwwvwwwwxwwwwvwwwwxwwwvwxwwwwwvwwwwxwwwwxwwwwwxwwxxwxwwwwwvwxgwxwvwvwwwxxwwwwwvwxvxwwwwwwwwwwwwxwwwxwxxxxxxwwwwxxwwwwxxwwwwwwgwwhwwxwxwgvwwwxwxxwwwxxxwwxxxxxxxwwxxxwwwwwwwwwvwwxwwxwwwwwxgxxwxvxwwxxxwwxxxxxxxxxwxxwwxwwxwxvwwwwxwxvwwwwxxwwxwxgxxwxxwxwxxxxxwxxxxwxxxwxxwxxwxwxwxxwwxxxwxxwswwgWvvwggvwvffwefvwvfwwwWvwgwgwvvvwvVvwfvvwvvV5duvwgvwvwwvwwwwwwfvwwWvwwgwwwwvWwwwgwxxwwgwWvwwwgfwwwwwwwgwgwgwxvwwvvvVfwwvwwwwxW5duvwvwwvwvggfwgvwwwfxwwvwwghwwxwwvxwwwWvwvwfvwgvwwwxfwwvwwvwwvwwvwwwwhwxxwwxxwxvvvwvvgvwwwwwvvvfvwfwWgguwWwVvgwfvwwvvwvwuwwwewfgFevuwxwwwwwwwwxwgxxgwvwwwwhgwwwvxwgwwxhwvxwwwwxxxgxxxxwvfvxwwwvgwwgwfegghGuvwwhhwghwvwxwfvwwwxxwwvxwgwxwgwxgvgwxxgwwwwxwgwwwwhxxxwwxxwxwwxxwgwhgwxxxwwwwvwvwwvwvgvwgwwwxxwwwwwvwwxwwwwwxgxxwWvwwwvwwwvvvxhwxvwxxwxwggwwxwwxxwwwwwwxwxwwwxwxwxvwwvwwwwwxwwwxwwgwxwwwwwwxwgxwwxxwhwwwxwgxvvwxwwwxxwwwgwwwwwwwwxwxgvwgxgvgvgxwgwwhxxwxxwwwgwwxhxwxwxgxgwxxwwxxxxgxwxvwxxwxwvwwxwxxvwwwfuhwuwxxgwwxwwxxwxwwwwwwxgwxwwwwwxwwwwxwwwxwwwxxxhxxdvwgvffwgvvxffvvvwffffwggvfwwuwvwVDUvvwwwfwfgvfvwffgwfvvwhwwwgffggwwwwxfvwwwvwwvvvwwwwwhvfvwxfwwwxwwxxwwwvgvVVvvffwwwwvvwwwwwvwxWDUvvwWvwwgxwxxwwvvwvwxwgwxfwwwwgwwwvxxvxxhwxwwvwwwwwwwxwxwwwwwwxvwvvffvwfwgwvwfvwwhxwfwvfvwwffvwfffvgvfwwWvwgvwgffwgfwwgxwwwwxwwwwwwwxxxxxxwgwwwwwhxxwhwxwwwxwxxxxwwvwvvwwwwgvxwvwwgfwwuwwwwwwxvvWvwwxwWgxxwwxwwxxwxxxwxwxxwxwxwxxhgxxxxwxwwxxxxxxxgwwgvvvwwwwwxwwwwhwwwvxxwgvwwwxwxwwwxxwwfwvwwwfwwwxxwwxwfwwwwgwxxvwwwvvvwxvwwwxgwwwxxxxwwwwfwxxwxhxxwwwwwvvxwxwxhwxwxwxxxxxxwxxwwvvvwvwvuwwgvwwgxxwwxwwwwwxgwwhxvwhxxxwxwwhggxwxwxwxxwxxxxwxhvwwhwwwvwxwxwwxwxxxxxwwxxxxxxxwvxxwwwwggvvgfwwvwvweuvWwfwvfvwvwvwuuuUvwgwedvvvvevfvgvwgwvfwwxwwwwvuwwwvwwwewfwwgfgwwgwwwgwgwwggxvwwvwwvwwvgwwwhvwwvwgwvwvwvggvvwvfwwwvwwwwwwwxgtevwUWgUwvuvwvvwwwxxxvvwwwwvwgwvwvgxwwxwgvwvwwwwuwwvwwhwwwwgexvvvgfwfugvwvgxvffvggfwvwvvvxvWvvwwvgvvwgvWffffvgwwwwfwwwghxwvwwwwwwxvxxwxwgxwwwwwwwwxwgwwwwwwwvwwfxgwwewwwgwxxvefwwwWwxwwxxxWwwwwgwwvggwwxVvvwwwvwwwxwwwwvwgwwwwwwgwvwvvwwwwxwgwfxwwxwvvuwwwwvgwwgvvwwwwwwxvwgvwwwwwgwxgwxwxfvxvwwxvwwwxxwxxwwxwwwwwgvvxuwwwwwxwvwwxxwvwgxvwxxwxxwxxxxxwwxxvxwxxwwhxxxhwxwwwwxxwwwwuvvvxgxVwvwgwvwgxwxxwwwxwxxwhxwwwwxxwxxxwwxwwvxxxxwxxwgwxxwwvwfwvwwxwxfwhwwwxwxhxwxwxxwxwxxxxwxwxwvwxwxxxxxxwxegwxWvvggvvwvwgvwhwgfwggwgvvwvvwfeuvwfeuwvwVfwgwfwgVwwwxwvwvwwwwwxwgxgggwxgwxwwgwwwwxwwwvXwwxwwwwwwxxvgwwwwfvvvvwwvuvwvgwfwvwgvvwvwwwuvwfuvwvwvgwvgwwxwvxxwvgwwwxwwxguwwgwwwxwwxwwxxwwwwwwwwgwwgwwxxxwgwxwxwgvwwwwvvgvwwwfgXgwgwWfvwfwgwvWvgvfxgvvfvgwwgwvxvxwwvgwwxgwwwwwxwgxxhgwxwwwxwwwxxwwvxxxwwwwwgwgxgwwxwwwvvxfwgwgwwgwwwwfwvhwxvwufwwwxwwwwwxxwxwwwwwwwwxwwwwxxxwxxxxwxwwwwxwhwwhwwwwvwwwxwwwwvggvvvwvxwwwwgwwwwwwgwxxvvwwxwwwwwwwwfwwwwwxhwvxwwwvwxwxxwwwxwxxxgwxxwwwxwwxxwwwxwwxwwwwxwgwwvgwwwwwwxxxxxxxwxwxwwwxxxxxxxxxxxwxxwwvwhgwwxgghgxWwwxVwwwwxxxxwxwwwwwhxwgxwwxwwwxgwvwwxxgxxwxxxxhwxwxwxxxwxxwxxxwxwxxwxwwxwvwwxwxxwwxxwxwwxxxxxxxwxxwxwwxwxwxxxtwfwEvugVuxeVfwfwfwwvwfvfwwfvvvdffuwgvwUvvwvvfVgwwwwgxwwwwwfevwwwwvwhgVvwggfwgvvwxugVgfwwwwvwwvvwwxfwvwxfvUeVwwwwwfwwwwwvgwwwwwxwwfgwTugvwwxwwwwwwwwvxxxxwvvwggvgxwwgwwwvwxwxwwwgwvvvwvgwvvvwxxxwwxxvewvwegEufEUvfgUfvwgvwwvwwwwwwggwuvwVvevVfwwvfewvvvwwwwwvwwxwwwwwwwwwwwxwxgvwxwvwxxxxxxwvgwfwxwxgwwxwxxxwxwvUfevevwwwwwfwwxgvxxwwxfwvvwfwgvxxvxvwvwwwxggvxwxwwxgwxxxwxxxwxwxxwgxxxxwwVwvgfvgwvxvwwvwwwwxxxuwwgwwevxxgvwwewwwvwxgwwwwxgwwvxxwxvxxwxvwwwuwwwxwxxxgxvwwxwwxxxxvxxwwxxvgwwxgvwhwxwwwwwxxxwxxvgVfwvwgexgVvwxgwwvxwwwxwvxwwwwxvxwwwvxWvwwwgxxwwwxxxxxgwxwvWvxwxwfwwxewvvxfxwwwwvwwwxwxxxwxxfwxwxxwxxwwxxwxwwwwxwwxygxwxgxgwxVxtvwvvuvuvvwfEdvfwvwvvfvvgvfvgvvwufVuvvuvwvvvwvwvvwwwvvwwwwwwfwgvwwvwwwwgvgwxwwwwgvwwvvwgwwgwwxwvwwfEdvgfvwwwgvwgvfwwwwwwwxvvwwwvwwwwwwgxwwxfvwwwwwhgwgwwwxxxxwwxwhxwvxwwwwwxewvwwvewfgvwvvgwvwfgvgfvwwwVevfwwvvggwwvvwwvwvvwevvvvwvvwwwvwwwwvwxwxwxxxxxxwxxgwvwwgvwwxxxwwxhxwxwxwxvgvfvfvvvwwwwvwwwwVwwgwwwvwwxwwwwwwxxwwwwwvxwxwwwxxwvwwwwxxxxxxxxxgxwxwxwwvwgWuwwvwwgwvwwwxwwwhwwwwxxwwwwxwwgvuwvxxvwxwwwwxvwxwxxwxwwxwwwxwxwwwwwxvxwwwxxxxwwwvwwgwwvxwwxhwwxxwxwwxhgwwfxwwwwvwvgvfxwxwxgxwwxwwvxwwwwwwvwxxxwxxxwxxwxwxwwvxxxwwvwxwwwwwxwwwvxxwwxxxwxxxwwcffveufffvfhvUcueuvwvgvgfgfxwvwfveWvvfuvwwwfefFdfwwvwfvvwvxwwvwvvfwvwvVwegvfgxwgWuxwwvwfgvvGvfgwwvwwfvwwwwwwwvwggfvegvdefvVeuwgvffeffwwvggvwwwvgfVevvvwwfwwwwwvgvvggwwwxxwxfffgvvgvvwwhgwwwwxgvgwwwwwwvwwwwwwwwxwvwwxvwgwwxwvfffevffweftuFvdhvWVwwfgWwfgvgfveVeegwfgwfvwwww6veWvgwwwgwwhfwvxwwwgwgwvwvewwgwxxgwxwwwwvwwwwwwwxxxwwewgvwwwwgxvgwxwuefvfgfgfwvwvgvVwgWxwvwwgwwwwhgfvgwhfwfgvwxwwvgwwwgxxwwxxwwwwfvwvwwwvVwwwwwwwgwwegwvwwxgfvxwxwwxwwghwxvxwwwgvgvfUvgwwwvxwgfvwvwwwuwvwvvvgvgwwwwxgwwwwwxhxwxwwwvewvwwwwwwvxwxvwwwwxggvwwwwgwxxwwxwwwwwwwxwwwvvwwfvwwvxvwwwxxwwwwwxwxWwxxxxwwwwxgwxwwvwwwgxxhwxxwhwwgwxwwgxxwwwffwfvfwwvvxwgegvwwhggxwwwwwgwgwhwxwhwwwWxghxwwwwgwwwwwgwwxwfxxwhxwwwxxghwwuwwwwWwwhwwwfgwhvwxvgwgwxwwgwwwxgwgwgwwxvxwwxxxwwwwwwwwwhwwxwxwwwwxwwwwxgvxxwxwxwwwxwxwwwwwvwwgwwwwxwwwwutvfwwwwwwgwfwwgeeuwwwvveuvgefuuwwwvvwguvgxwwwwwwfvwwwwwxwwwwwwwwwgwwvwwwwVwxvxwgwgvwwwwwuwvvxgeuuwwwwWvfVwdwwwwwwgwvvvwxwwwwxwvwgvwxwwwwwvvwwwwxwwwwwvwwwxwwwgvwwgwwwhxwXwuwxwwxvvwgwWewwwwgwvvgvvwwwvwuwwhVvWwffefwxxgwvgwgvvvwwwwvwwwwwwwwxwwxxwxwwwxwwxhfwwxwwwwwwwxwwxgvwxgwwwvgwgwvfwwvwwwwxwvfvgwwwwgvgwvvwvwwgwxvvwwvwgwxxxwwxwvwwwvxxxvwwwwwwwwwwwwwxwvwxxfvvvwvwxwxwwwgvxxwwwvwxwwvwxwwwwxwwwgwvxxgwvwxwxwwwgvxxxvwggwwxhwwhwwwxwxwxwxhwwxxwwxwxwxwxxwxwwxxwwwwvwwwvvwxwxwgggxxwwgwwvvwwxwfxwwwxwxwxgwxwwfwvxvwxwxwwwwxxwxxwxwxxxxwwwwxwwvwvwxwxxxxwwxxwwwvvwwvWfwvvwgwgWvWwwvVwwfggvvwxvwwgvWvwvwWfwwxwwwfhwwxvwwwwxxguwwwwwwwwwuwhwwwvWfwxwwwwWfWuwwvfwwwwwvwgwwvwvxxfwwwwxgwwxwwxwugxwgvwxwwwxxwxvwvgggwvwfwwWgwwwvxwwwxwggwwgfgxwwwwxgwvwgwvwwxwwwxvwxwvhxvxwwxwxwxxgfwwvwwwwwwxvwwwxvwwwwwxxxvxxwwwxvwgxwvxwwxwwxwxxxwwgwwwgwxwgvgwwwXwvwwwwwgwwxxxwvxwughwwwwwwxxvwwwxxwwwwxxxvwhgwwwwwwxwxxxwxxxwxwxxxwwwxfxxxvwgwwvwxwwwwgxwxwxwggvwxxxvxgxxxwxwxwxxwxwwwwgxxwxxxwxwwwxwwxuwgwwfgwwgvfvwvwvvvfvwwFwwvfEhvwwvwgvwgwwwvwvgfvgvdfgwwwvwwwwgvxwgwwwwwwwxwhxwwgwwgwwwwgwwwwwwwwwwwvvwgGfwwvwwvwvwgwwwwwwvfwvgguwgwwvwxwwuwvvfwwwxxgfwxwfwgxwwwwwxxvwgWvhxxwgxvwxVwwwxwwwwxwwxwwvwwwwWwgwgWvwwGvvwgvwwvfwvwwgwxgwuwvgwgwwwwWwwwgwvwwxvwwwxwwxxwwwxwfxvwxwxwxxxwwvXwwwvxwwxgwwxgwxxwwxwwxwvvvhwvwxvxwwwwwvwxxxgxvwxwwwxwwwuxwxwxwwwxxwgwwxxxxxwxwxxxxxxxxxxwvwxXxxwwwxwwvwxwwWvwwvWvwwxxxwwwwwwwwwhwxwwvwxhwwwxwwwwxxhxxgwxwwwwwxwhxwwvvwxwxxxxxwwxwxwwxwwxwwxwvwxxxxxgwxxwxwfxxxwwwxxwwvxgwwwwgxgxwxwwwxhwwwxxwxvwwxwxwgwwwxxvvxxxwxwwwxxwxwxwhxxxxxwxwxxxwwwwwxxwwxxwxwxxwwxwwwwxxxxxgwxxxxxxxxxxwxxxxxxufggVvvwfvvgufvvwwWevvwfwwvvwFutffgfvwwwwgwdgvvfvvfgwwwwvwfwfggVwhwwugVwwwfwwwwvvfwwwgvgwwggvvwwwxvvwxxfuuwwwvgwwwwxwxvfwvwwwfgvwwfffwwwwgwwxwweuvgwwvxxxxwffwwwwwxxxvuwgwwwwxwxwfwwwvwwwwwwwwwgwxxxwvvvwvFTvvvwwwwvwvwfgvwwwwxwwegVvgfVVgwwwxwfvvwwVuwxwwwvwwxwwwxxxwwwwxwygfvxgwwwwxxxwwvwxxxwxxxuffwwwvwgxgwvwwgvwwxxxwwfvfwwxwxhxxxxwxwwxxxwwxwwgwwxwwxxwwwwwxwxwxwvhwxxxwxxxxxxgwxxwWuwwvvxwwuvwwwwvvwwvfwwwwwwvwxxvvwwvvvwwwwxxxwvvvxwxxwwxwxxwwwvwwwxvxwxxxxwwwwhwwvwwxwwwwwwwwwhxvwxwwxwxwvxvwhwgxxxwvwgwgwfggwvgwwxgwwwwgwvwxwxwwxgwhwwwwvwgwxwxwxwxhvxxwxwwwwwwgwxxwxwvwxvwwvxwwxxwwwxxwwwwwwxxwwxvwxxxwwwwxwxxwxhxwwxwxxwvwgwuvvgvgwwwwgVgwfwwfVfvvgwwvwwvwvgfvvwwgffVuwgwfvuwwwwwwwwvwwwvwvwwwxxwwwxwxwwvvwwwvxgvwwxxwwWwgwwwfwfwvwwwwvgwfgvvwfvwwxwxuwwgvgwwwvwxuwwuvwwwwwwxxwgwvwwwxWwxxwxwwwwxwwwwfwxwgwggwxwxvwwvWwWwwWvwwwuwggwxwfwgvxwwwwvwwffuwwwwwvxwvvwwwgfxgwwgvgwwwwwwwxwwxxxwwgvwwxxhxxxwwxxxxwwwuwwwwwwwwgvxwxwwwwwvwwvvwhwxwwvwvvxwwwwxwwwxwwvwwwgwwwxwghhwwhxuvwxgwuwvxvwgwwwvgwvwwwwwwwwwhxwgwwxwwxxvwxwwgvwxxvwwxvwwgwwwwxwxxxfxvwvwwxwwvwxwxwwwxvwwwwwwxwxwwxxwwxxxxwxxwwwwwxxxxwwxxxwvggwvvwwwwvwgwwwwwvxwvwwxwwwxwxwxwwwwwwwwxxxwxxxxwvwwxxxwwhwwgwwwxwxwwxwwwxxxwxwxxwgwxwxxwxxwxxxxxwgxwvwwwvwgwvgwfvvvwvfwvvwgVfewwwwgwWvvgvwwvxgvffgVVfwwgvwfvwfwxwwxwgwwgwWvxwwgwgwwwxwwwwwgxwwwxwwxwwgvfwgvwgvwwfhfghfvfvwwwfvfwxwwxxwwfvxxwwwwwwxvwxxwwwwxgwgxxxwxwggxxxgxwwxxwvwxwwwwVevwggwvgwvfgwvfgwgwfwgxgvwwvwwwwwwggvffwvgwwxwwwwwwwxwwxwwvxwwxhwwwwwxxwwwwxwxvwwwxwwwwwwwwxwwwfxggwgwvwwxxwwwvwxxwxxvxwxwwwxwxwxwxwxxwxhwxwgvwwxxxxwwwwwwfwwvxwwgwvhfgvwxwxvwfwwwwxwhxvwhwxwwwxxwwxwwxwwxwggxwwwwxwwwwxxwxxwwwwxxwxwxwwxxxwxxxgwwxxxxwwwxwxxwwxwwxwwxwwwwwwhwfxwxwvwhxgxwwgxwxxxgwwwxxxwxxxxxxxxxxxwwgxxwxxxwwwxwxxxwxxxxxhvvwxxxxwwxxxwxxyxxxxxwwwxxxfwwgwwwvvwvvvwwwwwwggwwwwvwwwwwgwwxfvwgwwfgfwvwwwvvxxfvxwvgvvvxwwwxwwwwwxwwxfvvwvvfwwwwvfgwwwwwxwwxvwwwwwwxxwwwwwxxxwwwvgfvvwvwvwwwwwwgwwwxwwxxxvwwwwgwxxxxgwxxwwxfvwwggffvfvxgwwxxwwvwxwvgvwwwxwwwwgvwwxxwxxxwvgwgwwwvvwwwwwgwxwwxwwwxxwwwwwwwwwxwwwwwwwwwwxhxvfvvvwwwgwwwxwgvwwwwwwxxgwwwxwvxxwxwxvwwxxxxxwwwvvwwwwggwwxwwxwwwvwxwxxgwwxxxwwwvwwxwwwgwxwwwxwwxfgvvvvwwwgwwxxwwvxwwwwxxwxxvwwwwwwwxxwwwwxwwwfxwwwxwxvwwwwwgwxwxwxgwxxwxxxwwwwwwxxwxwxxxxfgvvwwwxwwgvvwxxxwgxxwxwwwwxxwvvwwwwwxxxxwwwwxxwxxxhwwxxwwvvxxxwwwggwgwwwwvwwwwvwwxxxxwwwxwxwwwwxxxxxvwwwwgwxxxwwxxwwwvvxxxwggwwxyxxqwwwgvwwfvvfvVevvwvwgxvVevwwwwwwwwvwwwWwwuwwvvwwwfxwwgxgvwwgVewffvfuuvgxwwuuvvfwuwgwvwwTvwvwfvfvwuUwwwewwxwxwwvufvvfffvw4CuwvewffvwggwwevwVewggvwwfvwvvwvvwfwgxwggwxxwvVevfuuvwvewwwwegfvwfuwxgvgwwwvvvwvvvwvffwxwwgwwwwxwvxvwvwgxwffvgfvwgVewwuuxfuuguvwwvwwUwwwwvffwxEwvgewwvxwuwvwWgxwuuwggwfuwwuuxffXWfwfwwfwwfwxwwwvfxwwxwwgVevvVevvvfwwevwxgvgfuugWfwwwwexwwwxvvgxwggwwwwwwxvwvgffwxgwxwwwwuwgwVewwwwuvwwfwwxwwwxgvwwwwxvfwwwwwxwgvgvwwxwwwwwwwvwwggvvvvvwwfwwxvvgwwwVewvwwwwwvvxxwwfhhvwwwTvwvwwfvwvUwwwfwxwwwxvwvwwvvwwwwvxwgwwhgxwwWwwuwfvfwvvwvvwwvffxwggwfwwwwvvwwwWxxwggwwXXwwxwwvvwuvvvffwwxwwvwwwwwwwwwwwwvxxxwghxwwwwvwwwxvwwwUwwwwfwgxwEwvgfxwwxvwxwgwvxwwggwwghxwxvwwwwgwwfewwxwwgewwwwvvgvvxxgwwXXwwvwXxxwwxwwgxwxggwwwwvxwuxwwggffwwwxwwwwhgwwwvwwwgxxwxxxwwwxwwvuwxxwxwvxwvwWVevxgwxwwfhhxwwwxwwwxwwwwwwwweffxWwfwfffwvfvufwwwffwvgfwxxwvvwvffwwwwwxvffwfwwwwwwxwvvfffvwvfgwvvwwvwwwwwwwwwwwxwwwfvwvwwwwwgwwwwwhwxwvxxxUvvwgffvfffwwwvxgffvfWWfwvwwwffvwgwwggwxhwxxwxxwfffgvwwwwwwvwwvwgwwwxwxxwxwwvgwxvxxwwwgwwhxwwxhxgfvxvwwwvvfwwwwwfgfwxwwwgwvwwwwwgfwwwwxwwwggwwwhxwxgwwxxxwwwwwwwwwwwwvvwwwwwxvgxwggwwwwwwwwgwhwwwxwwwvhhhwwwxwxwwfffgvwwxwwwgwgwwwwwxwgwwwwggwwvwwwxxghxxxhwwwhxwffwwvwwwwwwwxgwwhhwwwwxxxxwxxxxwxwwwwwwwffwxwwwffwwwwxwwwxffwxxxwxxwxxxxxwgwgvwfwwvvgwwwwwwwfwvxwvgvvxwwxwwxhhvwwffwvWwvwwwwwgwWgwwxwxwxxwwwwwxxghxwwxwhgxwvgwvwwxwwwwxwvwxwwgwxxxwxxxwhwxhwwxwwwvgwwxwvwgwwfgfwhwwxwghwgwxgxwwxggghhwwxxvxwfwwwwgxwwwwwwvwxggwwwhxwwxxwxhwwwwwhxwwwwwwwwwvwwwwggwwgxwwwwwhgxwxwhxxxxxwxxhwwxxwwwwxxxgvwwwwgxgywwxwxwwwwxvxxxwxhgxffuffweevffwwwvwvVvvgwfwvwwwwwVvevufUuuwwwwuwwwvwgwwxwxfvvgwvfvwvfgfvvgvwwvwfvvwgwgvgfgvvfvwvwvwWvuwwwgwuxwwwwVvwfvVeuwUffwwgvUfwvwfwfffwwVufvvefvvwwwwvwwgwggxxgwwxgxxwfUffvvwvvwwwgvwuewfvwgxwwwwwWvgvfwvwwvwvwwwwgwvvwxxfuvgwgvwwgfwvuwwVgvxghwWuwxvwwvwfuguvwvfwvwwvgwwwvwwwwwvgfwwwwgvwwwwgwwwwwwxwgxxxvwwvwwwgvwwwxwxwwwwwxwwwwxwwwwfWffvvgWwfgwxwxfvvfwwvgwhwwvgvvvxfwgvgwwgwwvfwfwwggwxwxwffgwwwwwhwwwwwgwvwwxwwwwwwvwwwxwwwxwxxwxxwxwgfxwwwvwwwuvwwxxggwewwhwwgxwwwwwwwwxwWuwwwwxwwwwgwvwwwwwxxvvwwvvwwxhxwxwxwwxxwxxvfwvgwwvwwgvwxWwvfwxwxwgxxwwwwgwwwWwwwxwxwwwxvgwwxxwxwvxxwwvxwxwwwgvgxgwgwvwxwxxwwvgvxwxwwvhwWxxWvgwwwvwwwxvwvwvuwwwhwxwgxxwxxwxwwhwwxwwxgvwvwxwxwxxhxvxghvwwwwwxgwgxxxwwxwwxwxwwgwvxwwvhwwxwwwwwvwgwwhXwxwhwwggxxwwxxxhwWxwwxwxvxwxwwxxxvxwxxwwxvwgxxwxxwwhxxwxxxxwefvwwwwvvwwvvffvwfwgvvgvwvwvvvvvwVuvwwwewwvwwgvwwwvwwvgwvvfvvvvvwwvvvfgvwwwvwvvwwvwwfwgwvvvwwwwwwwwwxwwvwwwvvvgggffvvvwggvvwfwwgggvffwwwwwwwfvvvwwvwvwvwxwgwgwxxwxxvwwwgwwvvwwxwwgfggwvwgwwwwwxwwvvwhwgwxwwwwwvvwwwwwvvwwwvggwwvwweuvwwgwwfwwwwvwfxwwgvwwwgwfwwvvvwwwvwgwgwwwwgvgwgwwwwwgwhwwvwxwxwxxwwwgggwwvwwwwwgvgvwwvvwwxwvvwvwvwgwgvwwgwvvvwxxwwwwgwwwwwwgggwxgwgwxxwxwwwxxvvxwghwwwxxwwxxhwwwwwwwwwxwxxxwwwwwvvvwwwwwxwgwwvwwwwvwvvvwwvwwwwxxxxwwwwxwvvwxwwwwxwwxwwwxxwwwvvwwwxxwwwwwwwxfwwwvwvvxhhwwwwxwwwwhwfgvvxwggxwwwggxxwxvwwgwwgwgwvggvwwgwxxwxwhvwwxwwwwwwwxxwwwvwVvuxgxwwhwgvxxwxfvwwxfxwwwvwwwhwxwxxwvwhgwwwwxxwhwgwwwwwxwwxwwwvxwxgwvxwwxvwxwgwxwgwwxxgwwgwxwxwwwxxwwwxgxwwwwwxwvgwxwwwgxfxgwrfwgwwvgvggwwgwffuVggwvfWefwwwwvwfgwwwvvvFeewwwwwwxwVgggwgvvfgvefvvwWvgwwwWWvfwwgwfvgwfvfvvdwwvfvffwgwguwwwxvffgwvWvvwwwggvwf$CvwgvwgwvwwwwwvwgwuwwgwgwxwwvwwwxvwgvgwwwwfFefwfwgvvwxwggwvwxgwvwgvfuwwwvvwwwwwgvgwwwwwgvgwvwwwvvwfwgwwvwwwVwwWvgxgwvVUwgwwwwgfVwvxguxfevgwwwvdwwvxwxgwwxwwgxwvvvwfwwgWfwgwhwWuwgwwvvwwwwwgvhwwwwFewwxwggwxwgvwWugwwwxwwwxxwgewfxwwwwgwggvwwwuvwwwwwwgvgwwwgwvWvvwhvxxvvwvxvwxgvwwhwwFevwwwwwfwxvwvwwxwwwxwwgwwwwgvxgwwfwFevwxxwWvvvwgwvwvwwwgxxwwxxxwwwxwggwwwwewwwwggxvgxwwwxwwwfwwhwxwvwxxwxwwxvxfgwvwvxwwwwgwwvvwwhwwgxwwwwxxxwxxghwwwgwwxxwwvwwwwvwvwwwwwwxwfuwwxwwwwwvwwwxxgxwgvwxwwwxwxwwhwwvfwxwVwwwwxhwxxVxwxxwvxxvgxwgwxxgxxwwwwgwvxvvvwgwghgwwxgxwvhvxvwvvhwwwgvgxgwwwwwwxxxxxwwvxwwxxgxwwwxvxwwgwwgxwWvvxgwxwxwvxwwxwxxwwwwxxxhwwwwxwgxwgvwwxwxgwuVvwewfwUufwuwwdVfwuffweffvgwxfvvvvvtwfwwvvwuwgwwwfwvvxxegvgvvegvwugwdvwuvvvwvwwfugwgvvfuVuwvvwwwwwwvvvuvwwwwwwwwxeffwfffufvvvwwweVfvwggwVfwvwwwgfffwffWvfvwwwwgwvfvgwWwwwwxxvVffdfwwffvwfvwwvufvwuwhwfwvwfwvewvwuwwwvwguwwwwuwwvxwwwwwwwwwefwwfffwfgffwwhfffwwgwfffevvgvwvffwfvffuwwwxfuvwvwwwfgwwwwwxgfexvwvwfwvwggwxwwwgvvgwgwwhwfgwfvgwxwxwxwgwwwwwwwxwwvwwwgegfwgggwguvwggwwevuwwwwfvWewwwwWwVvvwvhwhwxwvgvwwgfwxvvvwxfgWwggwwwgvwwwgwwvvwxgxwwwwgwwxwvxuwxxxwwwwwxxwxfvwxxwwwwvwfvuvwwvgwwwvxvguwvgwvfwxwwvwwwwwwvgwwgvwwgwxxvgtwfwevvwwvwwgvvwvvwwwwwwgwvwwxwwwwxhwwwwwwxwgwvgwwwwwxuvvgfgfwwxwxwgwwfvwxwxwxxhxwwwfwwwwwwhwxwwwwwhxvhwwfewwwwwwwwgwvxwxghvvgvwwgxwfggxxwxwwgxvWvwvgvfuwwgWfvwwvvwvwwwwwxwvvwxwwwxwwwxxwwwgvgwwwxwwwvwwwwfwgwwwxwwXhwxwxwwvxwwxwXhwwwggvgvwwwwgvxwwwwxfwwwwwwxwxwwvwwxwwvwwgwgwvwxXgwxwfhhwwvwxwwwgwwxxwwvwwwwwwhwvxxxxwxxhwwwxxwwwwxghtgvwwgwvvwvwfVfgwwwwvvwwxefvvwwwwfuvwvgwwwwwgwwxvvwvwwvuvvwvwwggxwwvvvwxvwfxwxgvwvwwwwwwwwwwwwwwwxwffvvvwwgwvwwweffwwfwwwxvvfwxgWffguwgvvwxwwwvxwvvwfwwwwwvwhwgvwwgwwwwwwwvwwwwgwxwxwvwwwxwwxxxxwwwwwgvvgwxxwfvwwxfvwwxxwggxwxgvwwxxgvuwxwwwwwwxvvwwwwfxxwgwwxxwwgfxwwwwwwwwggxwwWwwwwgggvxhxwwgwwwvxwwwxxwxvwfwxxwxwwwxxXwwwwxxgwwwxwxvwwgwwxwxvxvvuwwgwxwvgwxwwwwvwhwwWhgwgvxxxwvwxwwvvvwwwvwwvgwwwwwxwwwwwxwwxwxwwxwwvwvwvwxwwwxwvxwwwwxxxxxxxwwxxwwfufwwgvvxxxwwwvwxwwxxgfffwgwgwwwxxxvxwwwwvxvwvwhxwwxwwxwwxxxxvxwwwvgwvwwxwwgwwwwwwxxxwwwxwwxxhxwvxwxxvwvvwwwxwxwxxwwwxwwxvwgxwwxgwwwxxxxwxwwwxwxwwwwwxxxwwgxxxwwwwxwxwxhwwwwxwwwwxxwwuWVwfvwwewvwuwvVvvfggvwufgvgfvwgvwvfUwvgwvuwvxwgffwuvffuwgxgvWvvgfeffwwffugwwgwwVvwWwvwvgvwgwwvfuwwwwvvwfvwwvwwwgwvwwwwwfhVvvwvguwwwfvwwxvgffwvwVvvgwgwVvfvgvvwwWwwvxvgfvVgwwwwvxwfxwhfwfwfwwwgvwvgwwWwfwwgwwgfwwfvVwvvwxwwwgwgwvwwgxxxVwxwhwwwWwvwvWfwvggwwwxgfggwwvwfuvgwwfwuwgwwxfwvwvxxVfvwwwxvgvwvgwwvwgwwxwggvwgwwwWvwhxfggwggwgwvggxwwwhhgvwvxWwhxxhWwWwgxgvfwwgwfxfwvvwxWgfwwwwwwwvwxwwwgwwwxxxfvwgxwwwwwhhWwwvwxxgxfwwwwwgwwwwwwhfxxxXfxxwwwwwwvwhxWvwxhwfxxwwvwfwuwvxgvvwvvgWwwvwwfggvffwwggwxvxxvgwwvwwxwwvxgwwwuwuvwwwwwwwwvhwvfgxvhfwwxwgxwwwxgwxwwwxwxvxwuvxhgvwwxVvwxwxfvfggxxwgwxxwwwwwwxxwwxwxxxxxxWwgxwwgwwxvxwwwwxxfVxwvwxfxxwwgwwvwxxwxxhxwxxxxhwgwwxxxvhvwxxwwvwwxwwvvhxwwwxhwxwvwwwwxwxxwxxhxwwwvvxwhgwhwwwwwwhgxhwwwwxwwvwxwwxwwwhxwwwxwxvwwvwwwfvvxwwwvvvghwwwwxwxwwwwwwwxvgxwhhxwhxxwxxwwwwwwwhwgwxxxwxxvwvwxgxwwwxxwwwwwxxvwwwxytgvwffVvvvwgwggwwwwwwgwwVvfgvwvwwWfwwgwwwwwwgwgwwwwwgfwvwvfvwwgvwxxxwxwvvvuvwvwvwwwwwxxwwxxwxfvfgeffggwfwwxvwwwwwwwwxvfgvvvwvfWfxxwwxxwwWvwgwxgwwvwgfwwwwwxwwwwvxwxwxxxxwwwvwwggwxwxwgwwwwwxxxgvwwwvvvwggvvwwWgwwgwhxgxwfwwwwwwvwwwvgxwwwwwwxwwwxxvwgwwgwxfwfvwwwwxxxxwwwwwwuwvwgvvgwwwwwvxwxhwvfwwvwvxgwxwwwwwwwhvwhxxwwwwxwvwwwwwxwxwwwgwwxwxgxxxguvwvxvwhwwwvwwxwwgxwwvvhWvxwxwxwvwxwwxgvgvwvwvwwwwwwwwhwxwwwwwwxwwxxxxwxxvwwvvwwvxwwvwwwxwxwwwwwwxxwxwhxxxwxwWffwwwxwvggwxwxwgxxxxxwvfffwwwxvxwxhwxxxgvxwwgwwwxxxxxxxxwwwwwwwxwwxxwxxwxwgwwwwwxvxwwgwxgwxwxxxwwxwxwxxxxxxxxxxwxwvvgwvwwwxwxxxwxxwwwxwvwxxxwghwhxxxwwwxvgwwvxwwwxxhxxxxwwxxxwxxwxxwxgwwwxwxxwxwxxxhwxxwwwwwwxwxwwxxueuwevvfVvwwuvfvfwvwggvwugwvvfwvvwwfvvwvvfufwvUfwfuwgWvwgvvuvwwgvfgvvvfvuvvfuwwvwwwwwwfwwuvwevfwfvwwgwgvwwwwvvvwwgevvwvfvwfwevvvvWvwfvwwgwwvwwVfgvfVvvwwWwvwfvvvwwwwwvgghwxfwwufgwfvwgwgwwvfwwwwwwxwwwvwwwwwwwfwggwvwxWhwxwxxxxuvgwvwwfwfwuvwwgVfwvVwfufvvgvwgwwvwvwwwvwvwwwfwuwwvwwvfwvwfwwwvwvWwvvgvwgwwxvhfgwwvwwwggvgxwuhvwwWvwwwhhxuxwvgxgvffwwufwvvwwfvwfwwwwvwwvwvwwfgevwwvwxwvwwhwwvwwVxwvvwXwxwvfxxwfxvwwwxwwwwwXxfwwwwwwwgwfwvWwwhxwhwvwfwvuvvvwgfvugwwvwwgvwxvffwvwvvxwgvwxwhxwwgwwvgwvvwvwwwwwxwwwwvwwwwwxwwxwwxvwewvvgwffggWvwwxhxxxgwwgwxwwwwWxwwwxxwxxwgwwfvvvvwgwvwxxwwwwwxwwwwhwvxvxwhwwwxwxxvvwwvwWwvwghwuwwwfggwwwwxfwxwxxvxwvxwwxxwwxwwwxwxxwvvwwgwwwwvwwhwwwwwgwwwwwwxwxwgwxwxwxwxwxhgwwwvwwVwvwwwwwvvwwfxfxxwgwwhxhxwxwxhwvwwxxxwwwgwwxxgwwwwwxwxhxhgwgxxwwwwwxgwwwwwwxxugewFfVwUfuweffvVfwwuffwuwwvwfvvxuvwtfwwfvwvggwwwwvvwvVwfwfffwffvfefgfffwwwgffwwvgvwvffwfvuwfuwfwvwffvxvwwwwxwxwwwVffwefevugfvewfgfffwggwgwwwwwwgfffwwfvgfwvwwwwwfWfggxwWwwxgxxgefvwVuvwvvuwfugevggwwwwgwvwwwwwuVwgvgvwwxwvvgvgwhwfgwwxxwxVvgvwgWvvWwwufvvVgggvwwvdwgwgvvfeWgvvWgwwwwwwWvwxvwwwwwwxwwgVfxwwwxfvwwwwvgvwwgggggwvxwwhfvfwgwhwwwwxwwvwgwxwxwwwwgwvwVffgfugfvfwwwfvFwfwwwWhfwgwwwfgVvwwwWwwvwhwwwwuwwwwxvwvwuwwwwwfWgwwggwwgvwwwwvgwvwxgwwgwwwwwvWwfvwwwwwwgwxxwxwwxwxwfvxvWvwvwvfxuwgwgwggwvwwwwvwwvvxwvwvwxxxwwxwwxwvxwvguwuvfwfuvwwwgvgxwggwwvwwxwwgwvwvwvwwwxwwwwwxxgwxwwwwugggfwvxwwxwhffgwwxwwvwwwwfwwwwxwwwhwwwwhwxhghxwwxffwwxwwgwxxxgwwvwwwwxwxwxwwvwgwwvwwwwxfwvhwXxvxwwhwwxvGvwvvvxgwwwwwwfewgwggwvwwxgwwgwwwhwxwvwwwwhwwwggwwwwwwwxgwwxwwvwxwwwfwwxhXwwwxwgxwwxxwwwwgwvwwwwhXwgxgxvgvwwxVwxvwxwxwgvgwwwwwhhggwgwvwxwhxwxvhxfgghxwhwxxwwwwvwwvxhxxxhxwwxwxwxxwwxwwxghhwhwxwxdvvfvwwwwwgwwwwgvfgwwFvgvwwvuwuwvwwwwwwvwhwvwvvwvtwwvwvwwwwvuvwVvwwwwvwwwgwgvwwwwwvwwvwfgwuwvvwvgwxgwvvvwwvfwggvwwvwvfgWvwffvgwwwwfwvwwvvwvwwwwwwwfevwgwxxwwwwgwgwVwwwwxwwgwwwwwWwwxxwvfwvvwwwvwxwxwgwvwwwfggwgggvvggfwvwwwgwvvwVwwwwdvwwvfwwwwvvvwvvwwwwuwwgwwvwwwvgwwwwwvwxwwwwwwwgwwwwwwwxwvwwwwvwhhwxwvxvwwVwwvuwvwwwxwwvwwwugvwwxwwgvgfuwwWwwwwwwwwxxwwxWvggvwxwvvwwhwxwwwwxxwxwhvwwwgwwwgwwwwwwwwwxwwwwwwwfxwwwwwxwvwwwwwwwwxwwwxwvgwwvwwgwwwwxxwfvwwwxwwxxxwfwwwgxgwwwxhwwwwxxhxwwvwwgvvxwxxxwxhhhwxxxxwvwwvuxvwxwxwxuxxwwgwwwxwxwwwwwwwwFgwxwgxxgxwwwwwwwxwwxwxwwxwwxhxxwxwwxvwxwxxxvwxwxhwwxvwxwxxwwwhwwwwwwfwxwwxwwwwwwwxxxwxgwvwhwxwxxxwxxxxxxwwxvxxwxxxgwxxwwwxxxwxxxxxxwxvwxxufvwwvwvxwVfffvfwgvvvwwvufwguvuvuwwwfgvvwwwvvwfvvwvwvfwwfvvfgvwwwwggvwvwwvuwwwwvwfvwvgvwggwwwfvvwwwwwwvwwvwfvwxvguwgvgwwvwggwwvvwfvuxwxwvvwvvwwwggwwwvvvgwwwwwwwwvgfvwwxwxxvuwvwwxwwgxvgwvgvwxvwgxwwwxwvvfwwvgvggwgvfwvgwggwvwwwxvgwwvvvwvwxvgwuvwwwwvvwfwvxwfvwwwwwwwxxwwhgxgwxhwhvwuvwxwxuwwxwwxwwwwwwwwwgghwwvgwwxfvuvwxwwxwgxvwvwhwwvxwwggvfwfwwwwwgwxxwwxxwwxwvwwwgxvwwwxgxffggxwwwwwxxwxwwwxwwvwxvvvvwvwwwxwvwwwwwwwwwwwvwwwxxxwgwwvwfvwwwwwwwwwwwwwvxxwxwxgwwwwxwxvwxxxwwwwwwgxxxxhwwwvvvxwgxvxwuwwwggwxxxwwwvwwwwxwvwxfxwxwxxwxxwwvwwwwwwgwwWxgwwxwwxxwwgwwwxwxwwwxwvxvwwwwxxwwxwxwwxwxwwwwwwhwwwgxwgxwwwxxxgvwewxwxxwwwvwgxwxxxwwwgxxwwwxwwxxwxxwwxwwwwxxxxwghwxwwwwwuggwfvwVwwuwwfvgwFdvVvfwvwfuwgegfvwwwvvgvwgvvvgfgwwwgvwfvvwwfvvwwwvgfwfgwwgwvwwxfvwuwvvvfvfwwwvxwwvwwgwwwwwwwwwwgffwgvfvvwgfwgvvwgwwgwgfWvwfuuwfwwvwwxfvgwwgggwwwxwgwwvwwwvwwgwwxwgwhxwhvxwfwwvgwwwwhggxwxwWwwwhwxhwxwwwwwwfgwfwvxvgggvwwwwgwwvwwgvvwgfxuwwfwvxvgwwgwwwfvwxhvwxwwwxgwwwvxwxwgwwwwwwwwwwwvwvwwhxwhggwwxgxgwwgwvwwwwxxwwwhgxwwwgggwwxvgwwgwxwxwwwwWwwwwwwxxxwwxwgwxwwwwxwxgwghwxxxxwhwwfxhwxxgwxxxwxwxxwxgwwwwwwgwwvvgwxxvvxxxwwwwwwxwwgwwxwxwxwwwxxwxgvwwwwwwxxwwxwxwwxwwxwxxwwxwwwwxwxwggwxwxxxwxwfwxxxgxwxwwwwxwxwxxwxwgwxwxwxxwxwwwwxwgwxxwgxxxwwwvghwxxxwxxwwxxwxwwxwwwwwwxxwwwwxwxxwxxwwwxxwwxxxwwxwxwxxxxxxgwvxgwwwxxxwwwwwwwwwxwwwxwwxxxxwwxxxxxwvwwxwwxhxwxxwwxxwwxxxwwwxxxwwxwvvwwwwwwwwvvwwwwwwwwwvvfvWvvgwwfwwwxvguvwwwwwwwxxfwwwwgvwwwfvwgvwfvxeuuxvwvgvwvfwvwvgwxwwfvvugwfwwfwgwvfggwvgvwggvwvxvvgvwwwwfwxvgxxf5SfvvvvwggwwwwgvvgxWuxwwwwwwfWvwvwvwwwxwfvwWvwwwwwxxxfwfwgvgvwwwwwghvfgvvwgxxxfwwwwgvwwwwVuxwgvfvfvxugwvgvwfvvxgvwvfwwfgfwuwvwwwwwggwwwwfvxfwwvwwwfvwwhvwwwwwwggwvWvxwwwwwxwwvguxwwwwxwwgvfguwfvwwwwxwxwwgvwhguwxwxwxxffwwggfwxwwgwvvgvgvxghwwxxxwwwwugwwwxxxxuwvwwwxxwwwWuwwgwwwwxxwghxWuxxxxwwwwwwwwhVewwwwwwxwwxggvwwwwwwwwwwxwwwwgwwfvwxvwweuvwwwwwwwxhwgwxwxwwwxwwwwwwwwwwwwxxgwwfvgvwwwwxwwwgvgwwwwwxwwwwggfwwwfwxwwhwwwwwwwxxwwwwwwxxwfwwfwwwwwwwxwwwwxwxvvgwwwxxwxgwwVuxwwfvxvwwwvwxwwwwgwwwxwwxwwwwwwwxwxwwwxwwxxfuwwxwwwuhwwwwwwwwiwwxxwwwggfwxxwwwwwwxxwwwfwwfxwwwwwxwwxwwwxxxwxwwwwxggvwxxwxwwxwxxwwggwwwwxwwgwvwgvxwwwxwxxxwxxwwwxvgvwwgwUvvwugvwwgwwgvxugvwfwwwUvvwvwewgvwwvggvVwwwgvvwwwwwwvewwwwgwwgvwxgwwvwwgfwvwwfvwwwgfvwvwwwewxxuvgvUgfwugvwgvewwwugvwvvwVwwwxwgvfvvwWWfwwwwfvvwxwwwwwwwwwwvwwvwwwvwgvwwvgwvwwwvxwuwvxvwwvgwwwfwwewvgwwwwwwgvwwwwvwVgwgwwwgwwfvwwgwwvwwwxxWvwvfxVwwwfvvvUvvwwwwwwwwxwxwwxxxwwxxfwxvwxxvwxgwwwwfwvxwwwwxvwwgwxwxgwwwwgvwwwgwvvwwwvwwfwwgwxgvwwwWvwewwgvwwwxwwvxxxwwwxwwvxxwwwwxxxxfwwwfwxxwfwvwwwxvxwfwwwxvwwwwgxxxxxxwwwvvwwwuwwwwwuwgwwxvxggwwwwwxxxwxwwxxwwxxwvwxxxwxwwvwwxxxwwwwggwxxwwwwxxxwwwxxxvwwgxwxxxwwvwwwVhwxxwwvxxxwxxwxxwxxwwwxwwuxwuwxggvwwwvwwwwwxgxxvwxxwxxxxwwwwwwxxwwxwxxxgxxxxwggUxgxywxxwxxwxwxwxxwwwxwvgxwwxxxwxwvwxwVwwxwxwwgxxwxwxxxxhxxxxwxwwxxxxxxxwwxxwxwwwxxwwwxxxxuwwxVvwwwwwvggwewvwvvgvvvwfvvwfwwwwwfwVewwfwwfwfwwwfwwwwwwwwVvwwwwvvvwgwwwgWwwgfwwwwwwwvuvvvwfwggxxwxxwwwvwxxggvwgvwVufwggvwwwwefuwwgvxwwwvvwwwwwwwxwvvwxxxwwxwwwwxwwwwwvwfvggwxwwxwgwwwgvwvvxwwwwwxwfvwxxxwwwvwwwwwwwwwgwwwwwwwgxVgxwvWwgvvwfwwwwwwggvuwhxxwwxgxxvwgfwwwgwwwwxxwwwwwwwwwxxwgwwxwwwwwwwwwwwxwgvxwgvvxwxwxxwwvgghwwwwxxgwwhvwwwwwwxxxfvggwgwgwvvxxxwwwxgwwwxwxwwwwwvfwwwxxxwxxwwfwwxwxxwwfwwwgvxwxxxwxxwxxxxhwwwwwxfvwwfwwwfvxwwxwwwwwxwwxwwwxxwxwxwwwwwwwwgxxxwwwwwxwwxwxwxxxxwwwwwwwxwwwwvwxwwxwwwvxwwwwwxxxwxxxxxxxwxwxwwwwwwwwvxxxxwwwwwwwwhxxxxwwvwwwxwwwxwwxgxwwxwwwwwxwxxxxwwxwxxxxwwxwwxxxxwwwxwwwwwxxxxwwwhwxwwwxwxwxxwwxwwwwxxwxxwxvxwwxxxxhgxxwwxwxwxxwxxwwwxvxwxwxxwgwxxwwwxwwxwyrwfgfufegggwfVufwvwvgwvvwwvwwwwwvfvVdewgwwwwvwwwwgxwgwvfwgugvwwwewUvwwvwwggewxwxwwwfvfvevvdwwvevwwwwvuxwvfgfwf4BvwwwgvvwwvguvwvgwvvwwwwwwggwwvwwwgvwgvgwuwwgwxwwwwwwWugvwefwwwwwvgwwwxwwwxwvwvwwvuwwwvvwgvgvwwwwuvvwwweggvwgugfgvufvwwgvvwwwuVvfgwwvfvwvffvfgvxuwwffvxwwvgdwwvwxgwwwwWgfgvgwWuwwxgwwwvhwxfwgwwvvwwVdwgvhvwwwwwwwxvwwwwgvfVdfvvwwvvvwwxvvwfwxwvvxxwgfwuwwvvwwwwwwgvgwwvxwxwwvgvxxwwwgwvgwVdvgvwwwfxwgxwwwwhwwxvgwvwwwwwgvwxwwwxwwvwwfwguvwxwwvxwVdvgwvxxxvwwwwwwwghwwxwwwwwVwfwwgwwhxxxxegwgvhxwwwxxvghfwvvwvvwwwwwxwwwvwxhgxwvxxwwwwwwgxwwgxwwxwxhgwwwwwvwxxxvxwwwwxwwxvuvvxwwvwxwwvgwxwxwgwvwgwvVxwxwwwwwxvgxxwwwwwfwxwwwwxwxhwwxgxvhwwwwwvgvhxxwvwxvwghwgvgxxwvgxwvgvwwxgvwgxvhwwwwwwxwwwwwxvfwuwvxxwxxwwxxwwwwwvwvxxxvwwgwwwxwwxwwxvwwxwwhwwwwwxxxhwwwvwwgvwwhvwxuffwevvvfwwwwwgwVveffwvgwwwwheevguwwuwwvwwuUfuwvwwwwfvuvwvevwfvwuwuwgvwhgwguwwgwvfwuwvvgwfxvwhwvvuwwwwvxwwwwewvfvfUwfUwfffvVeuwwvffwwvwwVugfvvgwvwwwwwwgVvfggwgwxxwffufvvfufwvwvhfvvvwwvwwxwvwvgvvvwffvhwwfvwvwgwvwwgwwfvvvvgvwwfgfvvwwfgvwvwvfgwvgvfvuuvwgvwwuwvvvfwvwwwgwwwvfvwvwwvwvwxwgwwwwwwwwxwxxgwvwwwwwwwwwxwxwwwvwvwxwwxwwwwffUWwefgwvwwwfvvwwggwgvwxwwwugvxvwwhwgwvxvwfvwgwwwvwxwffvwwvvwhwxxwwwwwxwwwwwxwwwwwwxwwwxxwgwxwwwwgwvwwfvwwWwwwgwvwwwwwvwxwVwwwwxwguwwvgwwvwwwvwwwWwwgwhvwwwwwwwxwxvwfvuvwfgwwvwwgvwwwxvxwxxwwwwvhwwwwwxwxwwwwWxvxvxwwwwvvwwwwvwwwhwwwvwvwwwwhxwxwwwgwvuwhxwWuvvwwwwwwwwxxwwwwwwxxggwwxwwxxvwgxwxwwwxvvxwwxwhggxwvxhgxwxwwwwwwgwwwgxxwxwxxxwgwxvvgwwwggwwxxgvwwwwwwvwxwxwgvguwhwxwwxwxwgxxvxwxwwwxxxxvvwwwxxwxxwegffvfwgvwvvgvwwwwwfgwggwwvggvvgvwwvwwwwwvwwWevwvwVwwvxvwgwvwvvvwggwVvuwwxwwwwvwwwxwxvwwwfwvwvwwffwwvwvwxwhvwwwgwvwggvvwwfwggwfwfwgffvvgggvvggwwwwwgfvgxwwgwgwxgwwgxwgxwwxwgvggwvggwvwwgvwgwwxwwggxxwwwgggwvwwwwwxwwwwwggvwgxgwgfvxfgvvwgwwvvwvggwwwggvvxwwgwhfwwwwgvvxwgwwgwwxwxwwwwwwgwwgvgvwwgwwwwgxghwvwwhwwxhwwwxwxwgxwwwvwvxxwggwwxhwwwvwwvgfvgwvwwwwwwwgwwwggxwxwwxwhvwgxxxhhwwwwxxhxwwxwwghxvxwvgwwwwwxwxxhgwxxwxwwwwwwxwhwxxxxxxhwxwwwwwwwwwwwwgxwwwggvwwghwwwwgvggwwxgwwwwwxxwxwxwwweuvgwwwwxvxxhwvvvwwxwfwvwwxxxfwwwxwxwxwwwgvwgwwwwfwwwxwxxxhwhfvvgwwwxwxxwxgvxgxxxgxxxwwvgxwvxgwxxwxwwxxwxwgwxxwwwxgwgwxxxwgwwwwwxwwwgxwxwxxwxxxwxhxxxvgxwxwwwhhwwxwxwwxwxwxwxgwxhwxwwxxghwxxxxwxxwwwxwwwwhwhwwxgwwggwwgxwvwvxwgwxgxxwxgggxwwwxwwwxwxwvhwwwxwwxwxwvwxwwxxxhxxwwxwwwvwxwwxxgwgfxvwxuwwvuwfwfvgwufxgvgfwfwffwvwwxwvxvwwwwwwwvxwwwwwwwvxwwwgvwwfwwxwwfwwgwwxwwwwwwwfuufwggwwfwwwvvwffUfwwhvwwvvwwwwgwwwwwxxwwwgwxxwwxwvwwgwwwwwxxvwwvwwwxxwxwwxwxwwwwwvwvgwxwwwhwwwfwxxwwwfwwwxwxwxvwwxwxwwxwwwwwwwwwwwxwwwwwwwxxwxxwfwwgwwxwwvwwwwwwxwwwvwwgwwvwwxwwwxwxwxwxgwvwwwxxhwwwwwfvvwwxxxxwxhhfxxxwwwxwwxwwwvwwwxwgwwwwxvwwwxwwvwwwwwvwxwxxwwwwwwxxwxwwxwwgvvxwgWwgwuxwxwwwwwwwxxwxwxxxxwxxxwxwwwwwxwwwwxwgwxxxwwgwwvwwxxxxwwxxwwwwxwxxwxwxwxwwwwxwxxxxwxwxxwwwwwwwwwwxxwwxwxwwxwwxxwwwwwgwwxxxxxwxwwwwxwwwwwwwwwwwxwwfwwxvgfvvgwwwgwwfvvvwwwvwwvwwvvwwwvwwwVewfvvvwwwwwwfvggvwxwwvvwwwwwfwgwgwvwxwxwwwwwwvvfvvwwvwvwvxgwvwwwwgvwwwgvvxwwwwwwgvvwvvfwwwxwvgwVuvvwfwvwevuggvwgwwwxxwwwwwwwwxwwwgwwwwgxwxwwwwvwvxvwgwwwwwggwvgwxxwfvwwwwwwxxwgwvwwggwwxxxxwwwwgvwwfvvxvwxwwvwgvvwxwwwgwghwwwxwwxwxxwwwxwxwxxxwwwwwgxwggvxwwwgwgwhhwxwwwxxwwwwgwwwxwwwwwwgwxxwwwxwwwwgwxggwwxwvwggwggwxxxxxwwvwxxxwgwxxwxxxwwwwwxxwxwwwwxxwwwvxwgwfwxfvwwwwfvxxxwwxwwxxxxwwwxwwwxgxwwwwwxxwxwxxwwwxwwwwwwwwwwwwwwxxxxxxxxxgwxxwxxwxwwwwwxwxwxwxxxxxwwxwxwxxxxwwgwwxwwwwwxxwwxxwwwxxwwxwwwwxwwwwwxxxxxxxxxxxxxxwwwwxxwgxwwwwxxxwxxyxvwwwxxxvwwwwxvwwfufwwvvwuwvwffuwwwwgugwwfvvfwvvwfgvxwwwfgvwggwwwwxxwwfwwvvvvwvwwvwvfvvwwwvwvvggwvewwvvvfwwwvwvwvgvvwgwvfvwvvwfwwwwfwvgwvwwgwvgwvgwwggwvvwvhgvwwvgwwwxwgwgxwwxwxwwwwvwvvvwwwwvwgvvwxwvfwwwwuwvwwvvvwfwxxvwvvvfxwwwvxwwfwwvgfvvgwwvvvwggvwwwgwvwwggwewgwvvvwwvwwvgwgfvwggwfvgwgfwwxwwwwwwvvwwwfwwwwxvgxwxwfwwwwwwwwwwwwxxgwwvwwwwwggwvwwgwvgxwgwwvvvwwwwxwwwwgvvwxgwfhgwxwugwvwgvxgxwvwvfwwgxfwvwxxwwwgxwwvwhwgwxxwxvwwwwxwwvwwxwwgwwwxwxxwwwwwwwfvwwwwvwwwwwxwxxwwwxwwwxwwwwxvwvvvvxwfxwvvwxxvwwxxhfwvxxxxwxxxvxwggvwxgwvwfxwwwwwxgwxwwwhxvwwwwwwwwwwwwfwxwwwwwfwxxwwvwxwxgxwwhwxgwwwwwxwxgwgwwxhwwxwhxvxwxwvvwgvxxwxgvwgxgwxfwxxhxfwgxgxxxwgxwhxwgggwvfwwxxwxxxxwwxhhfxxwxwwwxwwwwwwfwwxwwwgwwwxwwwwxxwwxxxgxwvwxxxhwxgwwwwwxxwhwgwwhxxwvxwxwgxwxwwxxwxwxwwwvwwxwwwwxwgwfwwxugffvffgvwwwvwwwgvvwfegfuwvvuxvwwuwwwfvvwuhgwvvwfvgxvxwgwfwwfvgwvwwvxvgvvgwvvvxwxwxvwvwWvwgwwgfgvvwwwwvvxvwwxvwfwvwvvwgvgwvfWvWvwwvgwwgwxwggwgvvvwgwvwwwwgvwwxwwwxwwxwxvxvwgvuwfwxwwxxwxxggwvwvwffgwwgwwwwwwwxgwvxgwfxggvwfgvguwwgfvxwvwwwwwwwwvfwfvvwvwvvwwwvgwgwwgwwwwvwwgfwwhwvwwwxhwxwwxxxvwwxxhgwvuxxwwwuxwwgwvwwxwwwwwwxwhwwvfvgwugxxwhxxwgwxxwwwxxwxggvvwvxwwvwxgxvwwgwxxwwxwwgwxwwwwxwwxggxxxvxwwwwxgfvwwfxxwxwwxxwvggxwwwwgwgwgxwwgwwwgwwwwwxwxwwwwxxwwwwwwwxgvwwxxwuxwwgwxwxxwvwwxwxwwwwxgwwxwwxwvwwhxxwxwwwwggvxxxggwxgxxwwhwxxxwwwgwgexxxxxxxxwwxwwwwwwxxwwvvghxxxwXvfwvhgxwxxhwwwwwwxxxwxwxwxwxwxwwgwxwwwwwwvxwgwxxxxwxwxxxxxwxxwwxwwwvwwwhwwwxwwvxwWwwwwwvxxwwwvvwxwxxxwxhwvwxxhxwfwxxwxxxwwxxwwxwhwxxxxxwxwwwwxxxwwwwwxwwxwghuvvwfvvewwvgefvwwFduwwfvwwfwuvgvwvwwvgfwefvvvvgwvvxwwwwvhvfwvwwwwwwvvgwfvwwwvwvwwfvwvfgwwwvvvwvwvwuxwwfvwwwwfvwwgvvwwgffvvvwfvvwwvgfguwfvvfwwwvwfuuwwvwgvwwxwxxgwwwwgwwwvwwxgwwwxwgvvwwwwwwvxwwwwvwvwuwwxxwwxwvvwvfvwgfwgwfggwwgfwgwwwvwwxfwggwxwgvfxwwwwWvwgvwwgfwwwwwwxgwvwwwxwwwxxwwggwwwwwwwxwvwxwwxwwwwxghvgwwxxhvxwwvwwwwhwwvwwwvhvwwghxvwfwwhwxwxwhwwhvwvwwwWwvxgxhwwxxwxwhwxvwwgvwwwwwwgxxwxwwfxwwxwvwxwvwwvxwxwwvvwwvgxwvwwwwwwwwwwwwwxxwwwwwwwwwwwwwwwwwwggwwwwxwxwwxwwwfwxgwxxwxxwxwwwwxvwwvwwwxwwgxwwwwwwwwwwwwxxxwxxxxwwxwvvwxwwwwwwwxxxxwwxwxwwwwwwwwwwwxxwxwxxxxwxwwxxwxvwwxxxxwwwwxwxxxxwxwxgwgggwxwwwvxwwwxxwxhxwxxwxwwxwxwwwhdggwwvwwwwwgdfwvxvvfwwvwvwvwguwwwgwwwwgwtwugwwgwvxwwvvxwgwwgwfwvvvvwgwvfggwwwvvvvwxewwxwwgvgwfvwwwFwvhwggwwxwwwuwgwvwfuvvggvwvwwxvwfwffgwwvgwxwfwwgwwefgwwwwgwvgwxvwwwwwxwwewgwwwwxwwwgwugwvWvwwwwvgvfwuxwwwwwwggwwuwxvWvwxwwxgwwwvxwwwgevwvxwWgvwgwwwwwwwwwwgwgvwxwuxxgfwvgwgxwvxwgvwwwwwwwvxwwwwvwvxwxxvwwwwwgwwwgwwwxwxwgwwwwxhhwwwvwxwgwvwwwgwwwxwwxwwgewwwWwwwxxwhfvwxwxwwgxxwgxvwgwxwxxxwvwwwxwwwvwwhhwgwwwxxvwwxwwwgwwwhwwxxwwxhwxxfwwwwwxwwwxwwwwwgwwwxwwxwwwxxhwwxxwwwvwwxdvxxvxxwxwwwwwwxwwwwwxxxhxwwwwfwwwxvwwxhwgwxwwwhwwhgwxwhxwxxwgvvhhwxxwfxwxxxwwxwwxwwwxwwxwgxwvxxwxxxwwhxxxxxwgwvwxxwvxwxwxvwwxxwwxxxwxxxwwxxxfwgwwxxwwxxxxxxxwwxxgwxxgwxwwxxxwxxwxwxwgxwxhwwxwwwwgwwxgxxwxguxxwWxwxwvwwwwwxxwxwwwwxwxxxxxxxxwgwvxwxwwwxxwxwxwxgxxxuffwfvvvUvvvvfwvwfwvfgfvvwxdvwefvwwwwwwfvvwwwwxefwvfTcfwvwffgwvvvwwwxwvwvwwxvvvwvVwwvwvuxvfwvxwwwxxxfcefwTefvfVfwfvvvfffwwvwwvgwwvxvwfwvfvwwvwwwwwgvwxxxvwfefvfFVffwwwwwwgwwgvxwxxfwvwwwwxxwwxwgwgxfvvvvvvwfgvwvvwuTewwwWfuwwwwwtvvgvwwwuxwvvvwvwwwwxxwwVewfwwxvggwwgwwwwwwwwxwwwxhgwvwwWvwwxvxvwwxwxwxxwxhxwcfevVuuwVfugwwxefVwwgWwwwwVwwwvwwwwwwwwwwwxwwwgxwwwwwfuvwwGVhwwvwwwwwxwhxwwwwxxxwwwwgwxwwxxhxxwwwvUwuwwwwwwwguuwwwwxxvgwvwwwwxwwxxxxxxwfuwvggvwwwwwwgwwxhxgxfvwvwwxxwwwxwgWwwxwwwwwwwfvwxxwwgvwwwxwxwwwwwwwwwwwxxvxxxxwwvvwwwwwxxgxgxxvgwxghwxxxwxxwugvwgwguwwgwfxwgxvxxwwwxgvhwxxxwgwwxwxxwwfggwgfxxxwwwgxwwwwwxxwgxwvwxwwwwxwwwwwhwxxxwxxwwwvvvwwwxwvwwwwgwhwwxwwwgwwwwwwwwxwwwvwwxwwvwxxwwxxhxxwxxxwwwwwwxxxgwwxxwhxvvwuwwgvfvwwvvfvvvwvwvvvwwwxwwwwwxwwxvvwgvefvvvWgwgwwwwxxwwvwxwwwwvvhwxwwxwwwwwwxwuwwfvvgvfwgwggvwwwvwgwwwvwwxgvvvgwvwwxxfwwxwxwxgvfvWgwwgwvxwwvwwxwxwwxwwwxxxvwgwwwggvwwwwvwwwevgwwwvvwwxwxuwwwxwxwvvwxxwwwvwvwwxwwxxwwvgXhwwwwwxxwwwXgwxxxfvvwvwgwwwwxevgwwwvgwwwwwwvwxxxwwxwwxwwvwxwwwvwwxwwwXhwwxxxxwxxxvwwvvgvvwvvwwwwwxvvxwwxwwvvvhwxvgwxwwwxwwwvxxxxhwwwwvwwxwwwxxwxwxxwxwxhwxwxwxxwxxxwxxxxxxwwxwwwwwwfwwuwwwwwwxxwwxxwxwvwwwwwwwwxwwwxxwxXgwwwxxxxhwxwwwwwwwwxxwxxwwwxwxwwwxwwwxxwwxxxwhwwwdVVgevvfvvfevwevvvgwwfeffgvvgwwwvwwwwwwvwUuvfwwwvuvfgvfwUUdegvwvgfwwggwewxwvwvwwuvuUggwvwvguwxxwwwvxwhuwwxwwdUVvufVveduuffwfVUvgwwwVgffvgwffwwvuwwxxxvwuwvgvwggwwwwffeuWfgwfWgvvwvwfggwgwwhxwwwgwwvvwvwwxwwwwvwvwvwxWwwwxwvfwffuwwffewvwVVfwxwfevvgxwwhvevvgwwwxxFWfwwwwwfwwxwhwwggvvwwgwUvgwgvwWWwgwwxggwhxwvfgggxwwwfwwfwwwwwgwhwvwxgxwwdVfugwwwgvffwFVegwwwwvvwguffwvwfxwxxxgxwwvwwgwxxxwwxxwfffgwwwwWfxvfVwggvwxwwwgggwwxggwwwwgwwwxvwwhwxwxwwgwvfwwwwwvvwfvxwvffwwxvvwwwwwfvvxwwwwwwgfdvUwfwvwwvgwvwwvxwvhuwwwgwwxwwxwwwwwwxwxxhwxwgvwwvwxwwwxwwwwuwxgvwxwwwgwwxwwwwwxwwwwhwhwwgwxvfwfwxxvvwwvwwxwwWxwwxvwwwxgxxwwwwwvvevWwwvxvxwVffwxxxuwwwxwxwwwxwxxxwwgggxwxxUwvwxwvgvwvwgwhwwwwwxxvwwxxwgfgXwgwxwwgxxwxwuvxwxwxwwxvgxwwgwwwwgvwwxwwxxxwwwxxwwvxxxwvwwvxwxxwwwhhwwwwvxwxxxxxxwxxwwxwxwuwfwvvwfwwvwwuvvwuvwwvvwwwvwvwvwxwxvwwvwvvwwvwwvwvwwwweewwvvwwfwfevwfwwvwvhwwvwuwwvwwwwgwvfxwwwxwwwuvvgvefwfgwgwueewgvfffvwwVwxfwvuuwgwwwwwgvvxgwfwwxxfeewvgwwwwvvwwfgwxvwWwhxwvwvfwwwwwwgwwwgwwxgwxxwvwwfvwvvwwwwweewggwvevwwvwwgwvwvvvwwxvwfvwxvgwwwwwxwvvwwgvwwwwwxgwwwwxwwwgwvwwxwhwxxwwxxwwwwwgwwwvvwwwfwwvwweewwwuwwvvvwvvwgvvvgwwwwwwxuwwvwexwwwxfwxvvwwwwwvfwxvwwgggxgwgwvwwwwwwwwwxxxvfvwwgwwwxvwwwwwwwxwvwvwwwxwxwwwwxwwwwgxxwwwwwwwxwvwwxwwxwwwwhxwwxwxxxgxvwwfwxwwwwxxwwwwWwxxggxwwwwwwXwvxwwxxwvxwwvwwwgxwxwwxxwwxwxwwwwhxxwxvxwwwwgwwwwwwwwxxxxwxwxwxxwwwhxxxvwwxwwxxxxxwwwwwwgxvvgxwxwxxxwwwwxxwxwwghwwwwwwxhwhwxwwwwxxwwwxwhxgwxgxxwxwwwxxwwwwwxuwvwwwwwwwwvvwvwvwguVfhvwwvwwwWvgwugwwggwuuvvwvfuVvwgefxwwwfVwwgugwvvgwwwvwwwxxvgwwwuvwwuvwvwwwvwwwxWuVvegwwwvwugvwxgxwxfuVwwvfwwxwhvWwwgvgwwwwxwwxxwwxwwwwwvwgwvvgxxgWwxvwwwxvwgfwwgwvvwwwxwxxgfwxfwgxvwwwwxwvgwxxwwvwxfwghwwvughxwhwwyvvggwwwxwvwwxwwwwwxfuvxwwxvwwxxvwwgwwwxwwvgwxwwvwxxwhxwxvwwwxxwwwwvXgwwxxwwvgwwwxxvVwwxwwwwwwxwgxwgwwwwxwwwxwxwxwxwxxwwwwxwxxxxwwxxwwxxwwgwvwwvwwxwwvvxxxwvwwxxxwwgxwwxxxwvwwhxvwwxwxxxhwhwvwxxxxxwwxwvwwwwwwwwwxxxwwwxwxxxvxvwUfwwfvwffwvufvwvVvwwwvveefwwfvUvvvvfwwxvwuuvgfwgvwgvgxwwwggwwfvwfvwvwwwgggwvgvffwggwgvwvwwwvwwwgwxxwggfwwvwxggwwffvvufgwvfwwvwweVvwwfvgfvwwvfwvvwgWvuwfwwxgvwwggwwwwvxxgwfgvwgwxwwwwgwgwvwwgwwwxxfxvwwwvwgwwwxwwwwwwvwwgwxvfwwvffegwvfvwgfvwwwhvvffvwvwwvvwfwxvufwwwwwgwvwvwvgwwwwwxgwwwwghwwwwwwwwgfgvwhvgvhfxvwwvvgxwwwxfxgwwwwwxgxvwgwwXwwfWvvvvwwfwwwwwvgfvwwgvwwwfgvwwvgufxvwwwwxwwvvgwvwgwxwwxfxvwfwxwwwxvwwwxxgwgvxwhgwwxxwwwvwwgxwwvwxwXxvwwwwwvvvfvwvhwwwwvwvwwwwwvwgwxxvwgwwxwvgwvwxxwwwgvewvwwwwwwfwwgxwwvxwxggwwwwxwwwxxwgwvwxvwwxvwwwwwxwvwwvwwwxwxwwgxwhwwxxwwwwvfxwwxxvxgxwwwxxwwwwxWvwwvwxwxwwwwxwxwxhwxwwxxwwwgwwfxwgfwgxVvvvwwxwwxgwvwxwwwwxwwvwwwwhwWxwwwhgvxgxwwxxgwwgxxwwgXxvwWwvgwwwxXxwxxgvuwgwwfwwgwuwvwvwxvxxxwwwwwfwxwxxwwwxvxvxwgwvwwwwggWwwwxwwwwwwwwghwhvxwwwxwgvgxgxwwxxwwWxwwxufggvwwweuwfwgfwvwfwwvvwwwwUvvwwffwwxwwwwuffwwvwgwvfuvwvvvwwvfwgwfEdwwvfwvvwxxwwvgwwwwgwvwxvwwwvxwxvxxxwwTdfwvvffggveevvfvgvvwwwvffwvvwfwvwwfvvvgwwwwwffvvwwwxgwwwfVgewgwxwwwxwwwwwwvwxwxwfxwwwwxxwfvvwevuwgwvvvvwwvwxfggwWgvwgvwvvwwwwwwwxwgVuwwxwwwwwxfvwxwwxhvwxwggwwwwxwwxxwwwgvwxxxwwhdgvvvvggvwwgxfvvwwgwvxvwwwhVfuwwxwgwwxxwwwwvwwwfffwwwwxxwwwWewxwwwgwxxwwvwxxwwxwwxxwfxgevwwxvwgwwwvxwwwwxwwvxvguwwgfwxvwwwxwwvwwxxxggxwxxwwxwwwwvhwgwvwwvwxwwwwxxwvwwxwwwxxhxwwgwwxxwwxxwwwwxxwwvhwxxwwwvvvwwvvxgvxxwwwxwwwfvwxwxxxxvwxxwxfwwwwwwwxwwhxwwwxxxxxwxwxwxwwxwxwwwxwfwwxwwxxxxwwwhvwxxwxxwwwwxwwwwwwxxxvwxxxxxvxuuuwvwwuwwvwgwdvvgwvwefgwvwvwvvwvwefgvwwwwvwvvwvvvvvfwwwwwvwwwgvfwwguwfwwgvvwGwvvgwwwvwvwgvvveggwwwwggwgfvgwwwwwxfwfvwwvwwvgfwwvwvWvvvvuevvvhwwvwvvgwvvgwwvxwwffuwvwuvwwgwgwwvvvvvvuwwwwwhvwwvwvwxwvwwwwwwwewwvgvwwvwgvwwgwuwxwuvvwuuvwvgfwgfVfwwwwwvwvgwxuwfwvwwvwwwwwhvuwwwwwwwwwwvwghwwwwxwgwwgxxwwwwggwwwwgwwwxgwwwvwwwwwwwxxWgxvwggwxWwwwfwgwwxWgvwwxwwVuewwwwhvvgvwgggwvwvxwwxgWxgxfwguwvwXgvugwxwwwvfwwwxxwwwgwwvxwwvwwxvwvvwwggxwxxwgwwxgwwxwxwvvxwwgwwgwwvwxvvwwwxwxwwwwwwwwwxwxwwuwwvugwxvvvxwwwfxwwwwxxwhwwxhwvxvvwwvwvwvvwxwwgwwwwvxwxwwxwxwwwwwwwwwwxwwwhwwgwwwvwwwwwwwwwwwvwwwwwwwwxXwxwxxwwxxvwwggvwwwwwwwvxvhwwwwxxwwwwwxwwwwwxwwwwwwwwxwgwwvhxwxwwxwxwwxwxwhwwwwxwxxxvwwwwwwwvxwwwxwwxwwxxwxwwxvxwxwwwwwxwvxxxxxwwwxwgwwxxwwxxxxxxwxwwxxhwwxxvvxfvwwwwwwgvwvvwwwfvgfvfgvwwwwhvvvgvwvggwwggwvvxwwgwwguwvvvwwvgfvxvhwwVvvwXgvxwwxxwwvgvhgggwhxwxwxwxxxwwwwwgvvgwvwWgvfggfffwwgwxgvwwwwwwxwgwwwxxwwwWgvwwwwwwfwxwWgwgwgwxxwwwxxwxvxxxxwxxwvwxwfwvwfxgwvxevwvxvvvwxwwwgwwxvwxvwwwwwxvwhxwxgwwhwgwvwgvvhhxhwxWwwwxxwxwxxwxxwwgwxwxxxxwgvwwwgwwvxfwwgxwwfwxwfwgwxvwxwxwxvxgwwwxwgxvwwgxwgwwwwxxwwwwwwwwwwwxwxxwxfgxvwwxwwgwwfwgwwwwwxxvwwxgwwwwwwxfhwxwxwwxxxhwwhwwxwwwxxwwxvwwwxxwwwwwxxxxwxxxwwxxxwwwwxxwxxxxwxxxhxwwxwwxxwwwxvwwxhwwxgxxxxxwxwwxxxwxxxgxxxxwwxwxxxwxwwxxxwxxxwxwwwxxxwwwxwxwxxwxwwxxxxwwxwxxxxxwxxxxxxxxwxuwwxvwwgvvxgwvwwgwvgwwwvvwwwwWffwgwxwwwwwwvgwwwwwwvfxwWvuwwwvgfgwwwwwxwwwwxvwWffugvvwgxxwwhvwwwxxvvwWffwgWwwwvvvvWwxwvgwwwwgwuxwwwxwxxWffvgvfwwxwxhwwxvgwgwxwwxvwwwwvwgWfvgwvvwgwxwxwvfwwwwWfvvgwwvwwxwwwxgwgxwwwwvwwwwwvwvxgXwwwxwwxwxwhxwwwwgwvwxwwwhgxxgxwguvvgwVfwvwwxwwwwwwxvwggwwvwwxwwxwwwvgvvgwvgwwwxxwxwgxxxwxhxwwxwwwwvgwwvxwwwxwvwwwvwwwwwxvwweggwxwwxvxxwwwxxgvwwwxwXwwvwwxxxvxwwwxwvxxxwxxxxwxwgwwxwwxxxxwfwxhwxxxxwwwuwgwwwxvwhgfxwxwwwwxxxxwxwwwwhwxwxXhgwwwhwhvxgxvwwwwwxwxwxwwxxxwxxxxwxxwhwwwxxwxfxvfevwvwwvvvfwwwwvwgwvvvvwvfvffvgwwfevuwwwvwevvwwewwfvvwvvgvwxwxfWgwwxfvvwgvvwvwwwvwwxwvwxxxxevuwfvvfffwvwvwefvvwWvxwvfvgwvwvvggwgwwfvwwwwwwwggwwwwffvwvvwwgwvwwgvwvwvwhwxwwwvwwgwwgwwxwxxxvwxvwwvvwvwwgfvvvuwfgwwxxwvwwxvxfVfvvwwwWwwwwxgvvwwwwwwwwwgfexwwwvwvwvxwwwxwhwxxwfvvwwwvxwgvwxxgxxyvxxfgvwuvvfvwxwvfvwwwvvfhwxwgvvvwvwvvvwwvwwwwwwgwwwvxxwwevvwvxwwxxwwwwwwwvxxwvwwxwwwwwwxwxwwxvxxwwvwvwwwxwgwvwwwhgwvwwwwgxxwxwwvwvwwwwwvwgvWvwwwxwvwwxxxxvxwgwwxwxvwwggxwxwgvvxvwxxwwwvwxwxwwgwwvgwxvxxfwuwwwwxwvfwxxvxwxvxxxxxxwxwfgwwvwxwwwxwwxxxxwwvwxwwwxxxwxwwxxxxxwwwwwwxwwxwwvwxgwwxxxxwwxxxgxxhwvwwwxgwwwwwwwxvgwwhxxvwgwxxwwwwxwwwwwxvwxxxgxwxxxwwxwxwxxxwwxwwxxwwwxxuwwfvwfwvwwvuwwvgwffwfwvvwfwvwvvwfvgvwvgvwwvvwwvxgwvwwvvxwxvwvwgffwewwuwwevwxwfwwvwvxwxwhxvfwxvxgwwwvwgwwwxwwwwgwwgwxgfwwfvWvwggwfvfwWvxfwwfxwwwgwvvfwvfwgwgfwwwwgwvwwwwwwwxwfgwgwwwfgwwxwggxwwxwwhxgxwwxwvwxwhwxwwwwxxgwxxgxxwwwwwUgwfwevwwvwVxggwwvwxxwwwwwfwwwgwwvwxvggwhwwwwxwxwwxxvwfxwgvfwxxgwwwwxwxxxxxxxwvwwxwvxxxxwxwxwwxhwhhwwxwgwVfwwwvwxwwwxWwwwgwxwwwwwxwwwxfgwxwwxwwwgxxwwwwwggxwfwwvwxxwwwwwxwxwxxxwxwxxxwwxwwxxxxwxxwfwwwwwwwwwwvvxgxxwvwxwwwwwgwwxwwxxxvgwgvwwwwwxwwwwwxwwxwxvwxxwxwxxxxxxxvwwwwxxvwxgwwfwvwxwwwxwxwxgxwgxxxwxxxxxxxwxxxxxwwwwwxxxvxxwhxxvxwxvwxxwxxgwxwwxwgwwwwvwxwwwxwwxwxxwwwwwwxwxwwxwxwxxwxxwgwxwwxwwwxwwxxxxwxxhwxwxhxvwwwwxxwxxxxwgwwxwwwwwwwxxxxxxxxwxxxwxxxwhgwwxwwxwwxwxwhxvwwxwhhhhwwxwxwwxwwwxwwxxwvxwxwwvvwwwwwwwxfvvwgvwwwwwwxfvfvwwwwxvxvwvvwwwgffgwwwwxffvgwwgwwwwvfwvxxwfvvwgwwwwgwwvfvvgwwwvvxgvgvgwvwxwxwwwwxxffggwwwxxvfwvvwxxwxwhwxxwwwwwwwxwvvwgfwwwwwggfvvwxwwwwxxwwwwwwwwwwvxxxwwxhxvwvwvwwhxvwhxvxwvwvfvvwwwwwwggxwwxxwwxwxwwgxxxwwwvwwwwxwxxwhxvwwxvwwxwxwxwwwxwwwvxgwwxwwwwwwwxwxwwvgwwwwwxxwwhxwwxxwwxxvxvvwwxxxxxxgwxvxxwxwxwxxvvwwwwxxxvwvxxxxxwwwhxxwwhwvwxxhxxxxwwvwxxxxxxxxxwxuvvwvvwwxwgwwvwguVwvfwwwxvwvuwvvevvwffwwgwgvvwUuvfxvwvvvwwxvfwvwwvvxgwwwwwxwwvwwfwvwwwwwwvwggwwwwwwwgxhwuwwvgwwwwgwUVgwvgwwwvwwwvvUfuwvvhgvwwwwvvwgxvfxgwwwwwwwxwgxwwwwwhwwwwwwwgvxwwxvwwwxxxxhwxxxvwwwwwwwwgwwwwwwxwvgwfvxwvwWwxwwxwvxwhuWwwwxvwwxfvwxxxxgwhwvwwwgwxgwwwhhxwxXwwxufwgwwwwxwgvxhwxwvwwwwwwvvvwugwwwvwwxxwwhvwvwggxwfwwwwxxwxxwwxwxxgxfwwwxwxxwwwhxwwvxwwwwwvxfvvwwwxxwwwffwxgwxwwwwwvvxxwwwwxxxxwwwwxwwwwwxxxxxwwgxxxwxwxxwxxxxxxxwxwwxxxwwxxwvwhxxwxxwxgxxxxxwxxwvxxxwxxwxwwwxhwxxxwwxwwwxwxxxwxwwxvxwxwxwhxwwxxxgxxxxwxxvwxwvvxwwvwwwwgwgfvwfwfVVwvwvfgwgvgwvvxggvvDefwwwwwwwwxgvvvwwvxwwwwwwwwwgggvvxgwgwfwwwwvwxwgxwxvwwhxxvxxxvwwgwwxwwwggvvDfevgvwwwgwwhVewvvwwwvwgvwfgwwwxwwvwgwfwwwwwxxwgwggwgwwwghwwwwwwxxwwwwgxwxvwwwwwwwhwwvwwwgfvfvwvwvwwwvwwwwxfwwwwxwfwxvwxwgxwhvgwxwwgggwwwwhxwXxhwvUvwwvwwxwwxwxgggxxxxwvwwfwwwwxgfvwwggwgwgxwwwgvwwwwgwxxvwxwwxxwwwxwxwUwvwwxwxwxxhxwwwwxwwwxwwhxxxxgvxxwxwwwwwwxwwxwwfVVwwwxwwwxwxwxxxwwwwxwxxwwxwwxxxfwwwwwxxwxvwxxwwxwgwxxxxhwxwxwxwxxwxwxxfwxxwwwwwwwxwwwwwxwwhwwwxxwxvxwxxwxwxwwggxxxxxxxwwghxxxxxwxwwwwvwxwxxwwwxxgxwwxxxxxwxxxwxwxxxxxwxxxwxwwxwwxxeevweuvvvwwxvgwvwwwwvgvvwwwvvwuvvwwWfwfuvwwvvvvvwwwwwvwwwwwvvwvwvfwvwwwvwWwuwgxvgwguxgwvvwwwwvwgwwxwwvwwhwwgvvwwxvguwwwffvwwwwvvfwwvgvwuWfweuvvgvwwvwggvwvvvhwxxwfwvwgvvvfwfvwwwwwfwwwwwhwwxwhvvvwvvwwwwwxwxwxwwwwxwxxuvvwvgvwvwwvvwefvwxwwvxwwwwgvgvvfwwfwwvwwwwvwvwxwwwwgwxhwwwwggvwgwxgvwwwxwxxgxwwwwwgwgxwxxffwxwwwxwwxXfwfggVvvwwvwwfxgvvvwwwwwwwxwwgggfugvfwwwWWgwuhwgvwwvwwwwxwwwwwwwxvwvxwxvgwhwwgwwwxwwwwwgvwgwxwwxxxwxxhvxwwwwxwxwxwwwwwwwwwwggxxwvwwwxxwguwwwxwwhvwwwwvvvwwxxwwxxxwwwwhwgfxxwwxwwwxggxwxxwxwwwwwwvwwwwxwxxfwwxxxwvwvwhwxxwxxvwwxwxxgxwxxhgxwxwwxxxxvwvvwwwxfgwxwxxxvxwwwwwxwwwhwwgxxxwwwxWwwgxwhwhxgxwxxxxxxwxxwwvxxwwwwwgwwwwxxwwwxxxxxxhwxwxwwwxxwwxxxhxxwxwxgwxxxxwwvwxwxxxwwxxxwwxwxvwwwxvgwwwwXvgvfvwgwwwwwwvvvvUefwwwxvwwwwffwxfwwgwvwfvwwwwwwwhwwwwxwwwwwgwwwwwwwxwhwvwxwxxvvwgeUwwwwwwwfgwwvwwxfwwwwwUvuvwwgfwvwwwxwwhvwwwxwwwvxwwwhwgxwwwfwvxxwwhwwxxxxwwwwxwwhwwfwfhgwwxxvwxxwvwwwwxwwwxhwxwxwwwwXvgfvwwwwxxwhwwwxxxxxxxgxxwwgwhwxwwxxvvxwvwwwwwwwwhwvwwwfwwwxwwgwwwxwgwxwgxwxxxwxfwvwxxwwxwwwxwwxvvxxwwxwxwxxxwwwwwwwwwwwxhwwwwffwxwwxvfxwxwwwwxxxxwwgwxwwwwwxwwxwwxxxxwwwwwxwwwxxxxwxxxwxxxxwxxxxwvwxgwwwxxwwxxxwwwxxxwhyxxwwxxhxwwxwwwxxwxhvxwxxxxxwxxxxwxxwxxxxwxwxewgfgwwvwwwwwwfgwwwgwgvwvfvuugwwwwvxwwvwwwvfvVgvwwxwvxwwwwwwgfwguvwwwvwwwwwwwwwwwwwggvufwwvgwgwhwwwwwvxvwxvwgwggvfwwfwvegvwUfvwvwvgxwwgvgffvwwwffwwwvwwgggvwvxwfvxwwwgvvfvwvwvwwvwwwWfwvwwwgwvvwvwvgvwwwwwxxxwXvwxwwxwfvwwwwwxwvvwwxwVvwwvwwvwwwwwxwwwgwwxvwwxgwguwxwhguxhwwwvxvxvwwwwxwwwxwxxwwwxwwxwwgwwwxwwwxwxfXhhxWxwhwgwvvwxwwxwwgvwfwwwgfwgfwwxgwwwwwwxwwxwxfwwwgxwwwwvxwwgwwwxxwwwwvxwgxxwwwwxwxvwwxxwxhgxwxxxxxgwwwwwwxwgvvvxwxgwwwwwwwgxxxhwwvvvvwwwwxxvxvwwxxwwwwxxxwwwwwwxwhwxxxwxxwwwwwgwwxxwwvvxvwxwwwxxvwwwwwwwxwwwxxuvwxxxwwvxwxxxxfwwxwxxwxxwvwvwwwwxfvwwxwwwxwwwgwwxhxhwxwxxxxxxxxxwvwxwxxxxhxwwxxxxwxwvxxxxxxgwwwghwwwwwxxwvvvwxxwxxvvxwwhwxwwxxxwwxxxfxxxxxhvxxxxwwxxhxxwvxwxwxwxxwwhxwxhwwtgfwfvvwwwwwUvuvvwwvwwwfwxuvuwvfuwwxuuvfwvvwxvvwwwwuwgfwhgwgvwxwwfvvwxxwfUtvfwgwwxvvfwfvgvxxwdeefffUvwgwfvvxuwgvfwwfwuUdfffeewwxxwwvwvvwxwgVevwgvfwwwwwgwvwwgvwxvgxvvVfewwvwwwwxwwwwwwwxwwfwgffvvevVgufuwwwwvwvwwfveffvvvgwxwwxwwwhwwwxgvwwhhffgvvhwgwwwwxwxxwevvwwwvwwwxwxgwxwwwwxwTffvUgdvvwgxwxfgwwxwfwggwwxwgVvwwgwxwxgwggvvvfxwxxxefewgwewwxwwwxwwxxwhxxxvwXfwfggxxxxwggfxgwhwvwxfwwxgvxvvwwwwgwwxwfwwwwxvxvvwwWewgwgwwxwfvvxwwwwxhwwwwvwxxwxwxvwxxwwvxwwxxwwvwwwwxwwwwwwwxwwwvwwwxxwwwwwggxxwxxwwwwwxxxxvwwxwxfffgvvgxwwxfuwxxxwxgwwwxxggwxwhxVfvwhgwxwxxxvwxxxgggxwxwxvwwxxwwhwxxwvwwwwfxwvwxwwwxhxxxxwwwwgxwwxwwwwwxxwxwwwxwvvuwxxxevvfwfwffwwvvvfwwwwvwwwvwWgvwvvvvwwvwwwwwwwwvgfvuvwvwwxxvvwwwwwvwvwvvvwgwwwvxgwxhvwwwwwfewvwvufwwwvwwwvwwvgxvwwwvwvwfwvwvfvwwgfgvwvfvuvwgwwgwvfgwvfwvvwfwwwfvvwwwgxwwvxwwwvuwvwvwwwvvwwwwwhwvfxwwggvwvwvvwwwgwwwxwwgwwwxwvfvwvfvwvwwgvvwgvwwfgwwwvwwwwwwwvwwwwvwxwgvwgwwwwwwwwwwwxwwgwwwwgvwwwvgwwwwwwxxxwvwwwvwgxwwggvwwwwwhgwwxwhwwvgvvvfggwwxwxwwvvvwwwggwwwxwxwgwvxwwwwwwwwfwwwvvwvwwwwwwfwvxxwwwwwxwghxwxxfxwwwwwwxxwxwwwwwwhwwxwvwwwwwwwwwwWggxxfwwwwwvvwwwwwxxwxwgfwxwwwxwwwwwhwvwvwwwwwwhgwxwgwxwwwwwvgvwwwwwxwvwwwxwwwvgwxwxxxxxwwfgwwxwxwwuvwwwwwxwwxwxxwwxggwwvwhwxxvwfwwvwgwxwgwwwwwwxwxwwwwwwxwwgwwwgwxgwwhwwwwhwxxhvwwxwwxxwwwxxwwwwhwwvwxxggwxghwxvxvwwwxxxwwgwxhxxxwwwwvwhxvwxxwwxggwxxwwwxxwxxwxxwxwhxwfwxxxvwwgxwwxfvvwvwvwdvwwdfwvfwgwfvwuwwvfuvfwxfffgwgfwwfguwvvgvfwwwvwgwfvfgftgwvwwffwwwvvwgvgwwvgfvgvfwVgwwvWgvvwwwwwwxwwXwgwxwwfwgfVegfgvefeuggfwvgggevvwwgvgwwvwvwvwguxwwwwgwwewfwwwvgvufwfgfvgwvvwvfwwfvwwwgwwwvgwwwvwggwwwxwwwxvxwxwwwwwwwvwwvwwwwuguwuwuffgvgfgvufwvvfffvfwwgwvgxvwwwvvgwvvWfwggwWwwwxwwvwvwvwVwvfwxwxhgwwghgwvgwwhwvgwwwwwwwwxhHgwWwwwgwwWvvvfWfwGvvwugvwvgfwwwfFUwWvggtWgwwhwhwwwxxvwwwwwwhgwwhwhxvgwvwwugwhwwwfuwwxvvxXwwwwxxvwWxwwwwwwwwvhwwwgwxxhxwwwwufwwwwwwvvgwwwwwvwwxwwwwwwvvwwwwxxxwhxvwfwwvwwwwwwwwxxvgwwxwwwwwwwxgwxwwxwxhxwwwxwfvwvwwwvwgwwxgwvwxwwvgwxwwvwxwgxgwwwvwwwwwxwwwwvwhxxhhvxwwgxxxwwxxxwxxhwwxwxwhvvwwwfwwwgwwgwwvwvxvwwwxwfWwxxxhxwwgwggxhwvwhwxwwwgghggwwwwwwwxhhwxxwxwvwwxxwwxXwwwxxwhwgvvwwwxwwwvwxxwwgwwwxwxvvwwxwxxwxwxwwwwwwwwvwwxwwwxgwgxhwwvxwxwwwxwwxwxwxwxwvwwuwwwuwgwwwwwwvgwgvvwgwwwvwwwwvvfwwgwvwwwwwvuwvwwwwgwwxuvwwwwwxwwwvwwwwxvwvvvwegfwvgwxvwgwwwwgwuvxxwxwvfffvxfvxwwwvewfvUwwhxvgvwvgvwwwxxwwwvxxxxgwufggvwxxwwwwwwwwxxwwvwwwwwwxxxwxwwwhwwhwvwxfwvgwwuwwwwxwxwxxxwfwfvwwvwwvwwwgwwwgwwwwwwwwwxxwwwxwwwxwwvwuwgvgvxwxxxwwxxwwgwwwwgvwhwxwvxwgxwwxwvvgwxwxwxxwwwwwxwxwwwewvgvxxxxwwxxwwxwxwwwxxwwwxwxwwwwwwwvxxwxxxwxxwwwwwwxwxwwxwxxwwwwwgwwxxwxwxxwwwwxxxxxxxxxxxxwwwwxwhwhxgxgxwwwxxxxwwwxxxwxwxwwwxxxgwxxxwxxxxxwwwxwwwxxxxxwxxwwxxxxwwwxxxwwxxwxxxvxwwwvwwvwwwvvuvwwUdevwwwwhgwvwveefwwxwwxvgwwwwwwwwwgvgwwwxwxwwwwwfwwxwxxwwwwwvvxffwwwwwUedvwwuwwwwvvwvwwxwwwfwwwxxwxwwwgwwwwwxwwfwxxwwwxwxxxwxxxwxwwwwwwxwxwwwxwwvwwwwwvgvgwwvwwvwwwxxxvwxvwwwxwhvgwfuvxxxwwwwxxggwxwxhvwwvvwxwwxxwwhwwxwwwvwwvwvwwwwwvvwwvvxxwwwwwxxwwwxwwxvwwgxwwxxxfvuwwwxwwwwwxwwwvxxxwwxxxvwwwwwweefxwwxwwwwxxwxxwwwwxxhxwwxxwxxwxwxwwwxwwxxxxxxxxxxwxxhwxxxxxxxxxxwxxwwwxwwwxwwxxxwwxwwwwwwvvwxxwxxxwxxxxxxWxxwxwxxxxxxxwwxwwwwwyxxxxwwvvvwwwwxwgvvgvwwgfxwvwwwfvvuuwfwfwvwggewfggvvgwwxxgvvwwwgwvwwwwwwWuwvgwggwfwxwwgvvvwfwwvvWwfwwwvgwwgvfgwwwwgfvwwvfvwwwwwvgvfwwvfwwwwwwgwvgvvuvwwuxvfevfwwwguwwwwwwwwvvwwwvvwwxwxvwwgwwgwxwxxwvwvwvvwvwvwwwwgwvwwxxwwvwvwwvfwvwvwgggxwgwwgvwwfgvgfwvvvwwwwwxxfvvgwwwwvwvggwhgwwwwgwwvwwwhwgxxgvhXWwfvgwgwvwfwvffwfwhggvwgwxvwgwwvwfwwwwwwwvwgfvfwggWwwwxwvxVvuwfwfvwxgwwwwhvgwwVweghwxwwwwwvwgwwgvwfwwgvgxhgwgwwwvwwwgwxxwxxfgvwhxgxwwgvwwwwwgwwwxxwvxwvvwxwwxxwwxvwwvxhxxwwwwxxwxwxwwwwxwwwgwxwxxwwwwwxxwwwxwxvgwwwfwwwwxwvwxxxwxgvxwwxxxvwwxxwwwwwwwwxxwwgxwwwwxwxxwxwwxwwwxwwwwwwxwgwwwwxxxwxwxwxwxwwhhwxxgwvwwwghvxwhhxhwvwwwwwwwwwwwxwvwgxxwwwvwxghwwwxxxwxwwwxxxxwxxvwwxxxwggxwwwwwxfwwvvggfvvgweuwwwvfwwvwvgvwvwwvvuvwwwxgwvxvwwwwwfxwwwwgvvvwxvvxWuxwvxvWvvwwwwwvwwwwwwwWvxwwwxwwwwwwuwxwvxwwwwffuwwxwwwvvvwwgwfgwwvvvvvwvvwfwwxwwwwvwwxwwwvwwguwwwwwwwxwwwvvxxvwwwwxwwwwgwwwvgwwwwwvwwxugwwgwwvgwwwfvwwwwxwwwwwwwwwwgfwwfgvvvwxxwxvwgvghwxxxwwvwwWvwvwxwxxxwxxwwxxxwwwwwvwegwxvxwwwwgxwwwwhwwggvwvvgvwwwwwvwwwwwwwwwwwwwwwxwwwwxxxgvxwwwgwwwwvwwwwwuwxxwwwwxwwhxwwwwhwwwwxgwxwwhwxxwxwxxwvwwvvwwwxvgwwwwxxwwwwhwwxwxxxxxvwgvwwxvwxwxxwwxxxxwxxxwxwfxxxwwxxwxwxwxwxwwwxxvxwwxxwxwxvxxwxwwgwvwwvxxxxwxxxwxwfvvwwxwxxxhwvwwwxwxxxxwxxgvwxwwwwwwxwwxxxhxvwgxwwxwxwhwvvxxwwwwgwvwwxxxwwwwwwxwxgwwwxwwxxwwwwxwwxxwwxxxxwwwwwwgwxwwxxxwwxxvwxwwwwwwwwxwwwwwwwxwwwgwwwwwwwwwwwwwwvwgwvwwwxxwwwwwwwwvwwgvgwwxwwxwwxwvwwwxwxwxwfvwwwwwwgxvxxwwwwwgvwwwvwwwgvwwwwwwwxwxgwvwwwwwwwfxxvwwwwwwgwvwwwwxwwwxwxwwwfwwwwxxxwwxwxxxxwwxgvwwwwgfwwwvwxwxwwvwwwwxvvwxwwwwxxwxwwwxvxxxwwwwwxxxxwgwwwxgwwgwvwxwwgwvwwwwwwwwvwwxwwxwwwwwwwwxwwxwwwvxwxxwxwwwwxxwxxwwwxwxxwwwwwxxxwwwwxxxwwxxxxxwwxwxwwwwxxwwxwxxxxxxxxxxxwxwxxxxxxwwxwxxxxxwwxxxxxxwwwxxxxxwxwwxwxwwxxxxxxxxxwwfgwuwwwvgfwewvgwwfwugvfwvfvwwvgewwxwwevuwvwfwVvegfvvwvwvwVwfwwwexwwvwwwwwwgvwgxwwvwgwgvwwvwvwwwvwfxgwgfvwxWwVwggwwggvvvgevgwfgwvffgfVveWVvvwxwwwwwfwfvuwfvgxwwVfewwwggxxwxwwvvwwwwwvwwwwxwwwxwwfwwxwwwwwwxvvxxwxxwgwwwwxwxxwwwwxvwwwwgfwvuwfggwgvwwwvgxvwfwfwwwfwwvwwxvggvvwwwwwwgwwgwvxwwxwvvgxvwwwxggwwxwvwvwgwwwwxwxxWxvwwwxwwxxwgwwwvuwwwvgwfwggvvwwgwvgxwxwwgwfwwwgxwxxvwwwwwwwxwxwxwgwwwwwwxwxwxwwxwwxxwwxwxwwwwwwwxxxxxwxvwwgwwvwxvwwvwwwwwwwxwxwgwwwgwwxxxxwwvgvwxvxfxxwwxxwvwxxxxxxwxxxwwwwhwwxxxwwgwwwwwwxwwxxxwwxwxwwxwxwxxwxwxxwxxxxxxxxwwwwxwxwxxxwwwwxxwxxwwwwwwxxxwxwwxxxxxwxxxxxxwwxxwxxxwwxxwwxxxxwxwwxxwxwgwvxxxwwwwgwwwwxxwxxxvwxwxwxxwxxxwwgxUvuwgvewuwWwwwgvwgwvgwgwwwvwvguwwgwwwwwwwvwxwxwwgwvugwwvwevwwxwwwwwxxwwwggvgwwwgwwggwwwvfgvgwgwwwwwwwwxwwwwwwwxwwxxxwwwwxwwxwgwwwwwwwxvwxxxxxxwxwxVuuwVwgfWUwgwvugwwwvWwfwwxwvvfVgwxwwwxwwwwwwwwxxgwxvwgwgwwwxxwwxwwxwwxxwwxwwwwxwxwwwwwwxwxxwwvWvgvuvgxhwxgwfvxwwxwgvxwwxxxwxxxwxwxwwvwxxxwxvwvwwxxwxwwwwxwwwxwwwxxxwxwwwVwvgvWUvugfgwxwwwgwwwwwwwhxgwvwvuwhwwfwwwwxxwxwxxwvggwugwgwwwghwwxxxxxxwwwgwhwxhwwwxxwxxwwwwgwwxwwggxhwwgwwxwwxxvgxwwwxwwwwwwwwxwwwwxwwwwxwwwgxxwwxwxwwxwxxxxwwwwwewWwxxwwwwwfuvxwwwwggwxwwxxvxwxvxwwhwwwwgwwxxwwwhwxwwxgxxwwxxxxwwwwwwwwvxwwwxwwwwwwwwxwwvwwvxxxwxxwxhwwwwxwxxxwxwxxwvwxwwwwwwwwwxxxwxwxxwxxxxxxwufggfuvwTdfwffvvfvvwgVuwdgvvfffwfxvguwwwwwgvvvwfwwwwvwwwvvvvvfwwwxevwxwwvvggwwwxgevwwgvhwgwwvvxwwwxwfwwweuwwwvfgggwwuwgwwwwvwwfwwwxgvxwxwxfwgfwgwvwvxwgxxwwwxxvwxwxwwhxwfwvwfEdweevvfVgevvvfvwxfvvwwWewvwgwvwwwwvwxwwwwwwwwxxwwxfwwwfvgwgwxwwwwgxwwwxwwwxxwxwxxxwxvvwwvfwvvvwwwwwvwxhvwvxvwwgwvwvwwxwwwxxxxwwhwwvwxxwwxwwxwxwwwhxxxxvwxxxvwUvvwwwvgvffwwwwfggwwggwVfuwwwvwwwwwwvwwfvwxwxwwxxwffwwwwwvvwvWgvwwwwxwxwgwwxxwxwwwxxwwxxwxwxxwwxgwvfwwxwxgvwwwwxxwxwxwvhwwwwwwwwxvwwwfxwxxwwxxwwxggxxxxxxuffwvwwwfvvvwwvvwwwgvwwwwwxwvxhxxwvwxwxwwwxwvwvxwxgwwwwxxxwvwwxxwwwxwxxgwvvxwwwwwxwwwwwwwwxxwxwxwvxxwwxwxwhwxxwwwxuwwxgwgwTftwfffwVvuwfwggdvfffvxggwVvvvvxwwvvwgfVwwwwwwwwwxfwwwwgffvgwvWvWvgfgwxxeuvwwXwwvwgvxvwwxvwxwwwvwxwwwwwggwwwwwvgvvfgfwwwwwvwxwxxgxwwxwwgxwxvwwwwvwwvxwwxxwwwwxwwxxwgwvxwxwxwxxxxwxwxxxxVfewwgwwEvWvVVuggGUwxwwwfwfwwwwxvefvwwwvwvgxwwfwVwxgwgwggwhwvwgwgwxwwxfwvhwgwwwwxxxxxxwxwwhwwwwghwvwwhwhhwxwxwxwvgWuwwwhgwvwwgfvVwxhhvgwggvwwwwwwxwwxwvxwxwwhxwwwwwxwxvhwxhwhxwggwwxwxxxwxwwwwwxxwwwwxeguVwwgvfgftvvwdgVvvvvwwvwxvwgvwwwwxxwvwwwhxvxxfwgvfwhftwVXvgwwgXwxxfxwwxwxwxxwxwvxhxwxwxwwwwwwvgwwwwwgvgwxgwgwwxwxwhxwwvxxwwfvwwwgxgwxwxxxwxwwvxxxxwxxxwxVvGvfgvwfwvhvxgvfgwhvxvwwwwvwwvvwwxwxwwwxwhwgwwwwwwwfgvWxgwvxfwwwhwxgwxwvwwwwxxwwwwwxwwwgwxhwxwwwxhwwwwwwvhwwwxxxgxwgwwfwwwwxvwxgxwvwvwxxxvwghwghwxwghcffvVfeveVvvVvfwVvuwvgvgfFdfvwwwffvVVSwvxwwefffvvwxwfvvwwvwwvvfwfgvvfdwvvfgwgxvvvwwwwfwvuevvwvwuuwwvwvwwwgvvvfwfeewVwffwgfvwwwwvwwwwgwwvwxxwxwwxuwwwvwvxwwgwvvvuwvvwwwwggwwwwwxxwwxwvwxwwwxvxwwxwvxwxwxvffVfvffwUVefvfwvfUvvgwveSvvvgwwUgdvddvfwwgwwwvewvffvwwgwwwfwwwwvwwwwwwwxwwwxvwwgvxwxwwvvwwwvexwxuwwvxwwwwgfwwwwwffwfvvvgfwgvvugwfgwwwWxwffwwwvgwxxhvwwwwwxwxwwvwwwwgwwwwwwuwhwwxwvgwvgxwvwvwxxvgvwwugxwwwefvvffEgfVevgwvwffVfvgwwvwfgwhwhVVewvggggvwwwwgvwwwwvhwwwwwvffffwwwwvwwwwwwwwxgvhwwgwfwvxwfwwxvwwwwwwxwwgwwvwwwfwwxwwwwgwxvxxWwwxxwwxwgfxwxxxxwwwxxwwwwwwvvhwwvwvwwxvwwxwwxvwwwxwxxwwwxwefVwvfvfgvvvwfxwUvvxwvwvgwwwxvvvvwvgvvgvvxwxxwgwwxgwvwwxxxwwwxwgfwxwxfvgwwwwwhwwwgvwxvwwfwwuxxwwugwvwwvxwwwwgvvwwxwxwvwwhxgwwwxxwwxxxwwxwwwxwvwhxwwwxwwwwxxxwxwwxgwwxgxvwwwwwwxwwwwwwwxxwxgwxwtgvvwvwetuwvffwetuvfvvfefufwwwwUuuguvgwgvvwvwdVfufvwwfvvhwwwwwwdfuuvwvwgvWweVvwWvWwwwgwvgvtevwvfggvxwgvvggvWwgwvwwVuvwvwwwvwxeVvwwwvwVvwwwwxuwwwWwvwwwwxuwwwwwxuwwvvhwwwwfwvwgwxxwevwwxxwwxwwwwwwwwwwgwvfvvxvEewwwweTfewwgfevUwgwufvvwwvwffxwwxffefggwwwgewwvwwvwwvxvwwxvwvwwxwwWgwhwwfwwwvwxwxfWwxwvwwvewfvwvuvxwfegfhgvwwwxvxvwhwxvwwwwggwgwvxwwwwhwwvwwwxwxwxwwwxwxwwghwvwwgVuwfvwwwvwwvfVfvvfwvvvwvwxwvfwvwwwwwwwvwFfugwwwwwgxwvgwvggvwwxwvgvggwgvwvxwwfwvwwwgwgwxwwhwwwwwwxwwwxxwwxxxvvwwwvwwxwexwgwwvwxxwwwwvxwwxwwwxxwgwwxwwwwwuwwxwxwwwxwvvwxwxxwvVfvwvwwwwhVevfwWwwwfwvfwxwvwxwwuxxwwwwfwwwgwwwxwwvwwvwvwgxWwwwwwhvgwxvwxxwwwwwwxwwwwvgwwvwxxwxwvvvwxwwwwwgxwxxxwxvvxwfhwgwxxgxxxxwwvwvwxwgwgxwxwfwwwwwswwgfuwwfwvwvWfwfvugvggwV6TuwwfvvvwgvffwvwfvvvwWvwwvwvgwwwxwwwwwwgfwwWvwgwwwwwwwwvWwgwwwgwgwWvvgwxvvvxuwxwwgxwwgxwxxgwwgwwwvxgwwwwwvgvwwvwwxwwxwwxhwxgvwwwwwxxxxgwWvwvwgxwwwxgfwwhwxvxgwwxwxwwwxwgwwxwgfwvwfvgwwgfwfwwwvgfwwfvuWggggFevwwwvwgwwvxuxvwWVwwwWfguwxwwwwwwxxwwwvwggxxwwxwhgwxwwgxwwvhgwwxxwxgwwwxwwxxxxwgwwwwwwvwxhxgfwwxgvgwwwgxgwwwwxwxxxwxgxxwgxwxwvxhwxxwwgwxwhwwxxxwxwgxwwxwwxxwxvwgwvVfwwggfwwvwW6TuvwvwxwwfxwxwwgwwwhxwgwxgwgwwxwxghwvwxxwWvgggwgwwwvwwwwvwxggwxwwwwvwwhwgwwxxggwwxxwxwwwwxgxwwwxwwxwwxxwxwxxvxxxxwxwwwxwwxxgwxwwwwwwwwuxxwhxgwwxwwwwxvwgwxxwwwwwxwxxxwgfwwwgwgwwgfWfvfhGuvwwhwxvwwwwvhvxwwwxxxvxgxghxvxwxgwvxxgwwxxxwxwwwwwxgxvxxwwwwvwhgwxwxxwxxwwhuhwwwxxxwuwxxwxhxvwwwwxxxwwxwwwwxxwxxxwxxxxwxxwwxxwwwxwxvwwfwvgvwwwvwevuwvwwgWvwvwwxfwugwvfwvwvgwegVgwvgwwwxfwvggwwwvwvxvegwwwwxwgwgwxvwvvvwxwevwwxwhwwvwwwvwvwffwwwxwwxwvgwwwwwwwxwxxwxwwxwwxvwwwvwvxwxwwwxwxwwxwxwxxwxxwevuwvegwffwwwwVggwwwwVgvwvwxxgVUwgwexgwwwwwxgwwxwxwwwwgwwvwwwwwxwwxxwxwwwwxxwxxwvwwwxwwwwxxxwxwwwwwxxwwgWvwwgwgwwxwVgvwwxxwxwwuvfxgwgwwwxwxxwxxvxwxwxwwwwvwwxwxwvwxxwwwxwxxxxwwwxwwwwxxxwwfwugvwvvvgwwwxwgVUwvwwwuvfxwxwxuxgwwwxwwwwwwxwwxvgxwwxwvfvwwwwxwgwexxwwwgwgwwwxwhwxxvxgxwxwvwvwxwxwxxxgwwwwxxwwxwxxxwwwwwhwwwvwxwwwxwgwwxwxwwxxwxxwxwwwwxxxwwwwwwwwwxxegVevwwwwxwgwwxxwwxvxwwwxvxgxwvwwwwwxwwwgwvgxwwwxwxwwwwxxwvgwxwwwwwwhwxvxwwwwwxxwxwwwxxwwwwwwwwwwwxxwwwgwwwwwwwwxxwwxxxwwxxwwxxwsvwhfgvxUWUwvvwVVuwwggevfvvvwwvwvwvwgfTwffwvgfwvwvwvfgwxvwwwwgwewvwwwfwwwgWwfvwgwwwvgwwwwwwfwwwwwvwwvvhwwwwgwvwwfwVxgwwfvwwgggvxvxwxwvgwxwvgwwwwwwwwwxwwxxwhfvxwxwxwgwvwwwwxvxwxgwfxwwwwwfgvwvvvfWvwwfwfffwvfwffffvgwwugvgwvfvwwwxgVvvvwwfwwvvwwgvwwwvxxwwxwwwwxwwwwxwxwxxwwxvxwxwvwwwwwvvxwwwwfuwwwwxwvuvwwwvwwwwwhhwwxwwxvxxwgxwxxwwxwwwxwwxwhwwxwvxxwvvxxwxxwwwxwwxwxvvwwvwvgvEgwvvggwgwwwVwvwwxgwgvwvxwUUVhwwwwwxvxvwwwvwgxwwxwwvwwgxwvxvgxxvgwxwwvxvwxwwuwxfwwxwhwvgWhxxggvwxxggwwwwwvxwxwwwuxxwwxwwwwxwxxxwwwxwhwwxwwwwvxxwwxwwwwwwvuwwuwwgwgvugWwwvwgwgwwwwvxwwwvggxWgwwxwwxxwwxwwxwvxxwxggxwxwxxwhwwwhhgxxwwwwwwxwvwxxwxxxwxvwxhwwwxxvvxxxwxxwxxxxwxwxxxxwxxxxwxgxxwgxxwxwwwfwwwwwxxwxuwfxfwxfwwffwvfwvxgvwgugvgWwwwwWggwgxwwvWugvWgwwvvxxwwwvvwwwwwwhwgwxwuwwwXwwhwvxxwwvwXwwxxgwwwwwwwgvgwWwwwwggwxxxwxxxxfxxwxxxxvxwwwxwxgwXwwvxwwwwxgxxxxxwwvgwgwvgvfwVwwwgwvvwwgxvvggwvgwwhwwwgwwwxwxwwwxxxhxwxwwghgwwwxwwwxxwwwxxhxwwxxxwxxxwwwgwhwvxxgwwgwwvwvwgvwxhxwxvxwwxxxgvxhhxxwxxxwxwxxwhxxfwxWggwwvwwgxWeguvggwgvvwxxxwwwwwgwgwxxxwwwwwgwwwwxggxugwhvwwwwwxxxwxxvxxwwwgwwxxhxhxwwxwwhwxwxxxxxxxxwxxxxxxxywxgggfxgvwwwgwwgxwxwwxxwwwwxxxwxxwxxxwgvxhxwwxxxxxxxwgxxvwwxxwxxwxwwwgwxxxxxxxxwxxwxxxxxwxxxxwxxxtvvweduwfvfwTffvwvfwwvfvfwuveuuVfvwgvwfuuwwgfwvvwgwwxwwwwwfeuevgvwghevvwggfgwvwxggvwwvwwwvxvxwwvwggwxxxwfuvffvwuwwvwvwwwwvfuvgwfwwwwwwwxxvwwwvuvwgwwxwwxwxxwxvwwwxxxwwxxxvvuwUduvewgeufvfvwwvwwwfwvwwwwwfEUvuffeguvgvfewwwwwwfwwwwwwwwwwwwwwwwgggwvwxwxxwxwxgvwxwvwxxxwxwfevvvvwvwwwwwvuvxgwwgwwxvwxWuvwxwxgxwwwwxxwwwwxwvvWxxwggxwxxwwxxfueVuwfgwWudvwwvwvwwvwwxvwwwwwwvvwxwwwwwwwxxwxwxxfwgvfwgfwvwvgvwwwxwxwwxxwwwvwwxhvwvwxxwxxvxwuwwgwwwxxxxwwxwwxxxxxxxxvwwwxxwvgwwvxwxwwwwxxwxvwxxgxxxxvVVevevvwvvvwvxgvxwwfxwwwvvwgvxxxxwwwwwwxwwgvxwxxwwxxxxwwwwvxxwxxwxfwwvwxvvwwxwxxvwwxxwxxxxxxwgxxwwwxxwyxwwxwhwhxxwxxdUUvefvVutwfUdwffvugfefvVwwFuugeeeggwewwhfUTgfwwvwxvvwfvvwuvwfwfvvuvvwwwxwvuwwvufVvfuvwvwwvwwwfvwwwwwwwfuvwffvwwffwvfgvvwwvwwwwwxvvfwvwwxwwwxxvwwwxwvwwgwwwwwxxwvvxwxwwwxxwwwwxwwxwwvxUvewdfuwfUfveduwdfewgvwguvxgveeevvvwevwguvwUdugwffwvwgvwgvwvgwwwgwwxwvwvwwwwwgwwgwvgwwwwwwwvwwvxwwxgfuvfwvxwwvwwhVvvxxwwwxxxwvwvwwvwxxwwwhxwwxwxwxwwwxwxwwwxwwwxwwwxxxwwvwxxwwhwwwxwwwwwwxwgvVvugeUdvugVvewgWeEUgVwvwvwxvgwxfgVvwwwwwhgwvfWgwvwwxwxwfeewfugwwvgwvgwvxwwvxwvwxwgwxwxxxwwwwwxxwwwwvwwwwxwwgwvxwvxxxxxwxxwxxwwwhwwxwxxxxxxwvwwxxwwvxxxxwxwwxxwxxggwgwwwwxeVfvfvgffvwuwfuewwVevwwwgwgfwvwwwwwxwwwxxwwxfvwvwvwvwvvgwwvwwxxwwvwxwxwwwxvxxhvvwwxwxwwwwhwwxwwwwxxwxxwxwwxxwwxxxwxwxwwwwgvxxxgvhwwxxxxwwxwhvwxggwfwwwVwvwgevvwwwwwgwgfWfvwgwggfwwgggvffvgfWwwwxghWwwwwwwfwgwvvwxxwgxxwxwxwxwxwxwwwwxwxxxgwwxwhxxwwwgwwvwxfwggwwgvwfxxxwxxgxxxxggwwhwwxxxwwvwwxgwhwxwxxwwhwxvgxxxgwvwwgvwffwfvvwwWgwwgvwwwwwggwvegvwxvhwhwgxwwgfwwxwxwwwfvxwwxxxxxwwwxxxwxxxxxxwxxwxwwvgwxvwgvxwvuwxwwxwxxvhwxxxwxwwwxxxvwwhwxwxxyxwxwxxxxxxwxVwwgwfwvgfWuvvuwgggfvgggggvxffWvvwwvvwwxwwxhwgwvxvgwxvwgwwwxxxwxwwxwghwwwwxwxwgxhWgxxwwwxxwwhwxxxxwxxxxwwxxyxxwwgWgvuvVwwvxwwgwwwwxwwwwxxxwxvvwwxxwxwfxhxwwhxxwwxxxxxxxxwwxwwwwxxxwxwxwxxxxxxxxxxxwxxxxuffwffvwwuuugvvevvwVewwVvwwvfesvfcVfvwwwfvwwfefvevvwgvwxwxgvguTewwUwgwgfvwwwwwwwwgwwwwvffvfuvVwgwgwwgwwwwwwwxwwgftvtfwvwvffvfwwvwgxwxvggwvwwwwwwwgvwwwxxvgwwwvfwfvwwxwwggvwxwwwvxgfwvwwwgxxwvxxxvxffvwvfwwuwwwgwwv4ewvwwvfgfwdefuUvuwgwgwwfffTgTgvwxxgwwwwfgwwwwwxwgwwwxwwxgxwgwwxwwVwwgvxwxvxwgxgufvvvwvwwvwwwxvvwuwguwwgwxwwwwfvwvgvxwwwwwxgwwxwwwgwwwwwwwvwwwvwwxwwwuxwxwwhxwwgwwxwvwwwwvwfuwvgvvwwwuwvwvgwvwvwfwvwxwvfevVvevvwwwxwvvwgwwwxxwfvVwuvwxvwwgxwwwwxwxwwvfwgxgwwWwwwwwwwwwwxgwwxwWwxwxxgvwwwxxxxwxwvwwwwwxwwwwwwwwwwwxvxfwwxwwwwxxwxxgwwxVwghxwwxxwwwvvxwxgvfgwfvwuwxvvvfwwvwvwwwwgffvwwwhwwvwxwwwgwwxwxwwxwwwwwwwwwwwhgwvxvwgwwwvxxxxvwxxwwWwwxxxxxexwhvwwxwxwwwwwwwwvxwwwwwxwxwxwwwxxxxwhxwxhggWwxwwwwwwwwwxwwwvwwgxwwggwvfewwvvvvvwgwfvwvuvwvvvfvwwfvwuwVvUvvgwgwfvwwwVfvwwwwwvwvwwwwwxvwwgxhwwwwwwwwwwwxwwxwuhwwvxxwvwwwvgwwxfwwwwwwwvgfvgwfwvwxwwwxwvwxwhwwwxxvwwxwwwxwwwwwwwvwwxwwwwvxwxwxwwwwxwwxxxwwgwwwwwgvwxwwvWvfvvfexwvwvvvwvwwvvgwwvwffgwvgwwfuwgvvwvvgwwwwxgwxwxwgxhxxxxwxwwxwxxvxwwxxxwwxwvvxwvwwwwhwuwvwwuxwwwxwfhwgxvwwxxwwwxwxwwwhgxxwwxvwwxwxhxwxxhxxxxxwxwwwwfwfvwwVwVvvwvgwvvvwxwwwxwvwwVwvwvgvwvwvhfvwwwwwxggwwwwxuwwwwwwwxwxwwwxwwwxvwwwgwvwxwwwwwwwxwxwxwwwwxwwxwxxxwwwgwwvxxxxwwwwxxxwwvwxxxwwxxxwwxxwxxwxxwwxwwwvvgwwhgwgwxvvwvwwxwwwwwwvwwxwwfwugvwwwwwvwwwwxxwwxwxxxwxxxxxxwwxxxvwxwxxwwxwwgxwxwwgxwxwwxxxgwwwwwxxxwxwxwxxwxxxxwxwxwwxxxxxxwxuvwwVgggvxwfvwvwfxfvfwffvwdfgvwfwwvgfwvvwwvwwwwtvwfGWvwvwwvwwwwggvwwwwvwwgwwwgvwgwgdwgxvwwwwwwwwwwwwgxwwvwwwwwgxwwxxwwwwwguwxvWwwwvxxxxwwwgwxxwwwgwwwwxxwwxgwwwwwwwwwwwhxvwvhwxxxwwxwxxwhwgxwgwwxgwwwvwvguwgGvwvwwgwuwwwwvwvwuvvwWwwwgwfwwvvwwggwxwwwwwwxwwxwfxwwuwxwxxwvwwwvwghxxwgxxxwwxwxwwwwvwwhwwwgwwxgwwwhwwxwxwvwxwwwfwxxwwwxwxxxxwxwwxxxxxwwwwxxxxwxvxwwxfwvwwuwfwvvfggwuvwggvgwgggwgwwwwwwwwxxvwwgxwwxxxwwwxwwgwxXfxxxgewxwwxwwwxwxhwxwwxgwwxxwxxxxxwxwwxwxwwwxgwgwxwgwxwwxxxxwwxwwxxxxxxhxhxxxhxwwfgwgwwwxwxwwwxwwvwuxwwwgwwvxwxwwxxwgxwwwxwwwxxxxxxwgwwXxwxwxwwxwxwwwxxxwxxwwxhwwxxxwwxxxwwxwxxxxwwxxwwxxtvgwffuvfvvwvggwwvwwwfwgvwvwVfefeffvfVefwgwvwxfwxgvgwwwwxwxgwWwwwwfwgwgvwvvwwxwwwwwwvwwvwwwgwxwwwxwxwgwfgwwfgwwvwvxwwwxwwxwxxvwggvwggwwwxwwwxwwxwwgwwvxgxwwwxxxxwwwwwwxxwxgxhxwwhwwwffvvfgwuwwwwwwxfwgwwvgvwwvwwvWfwfwwffvwwwwwxgwggwwwwhVfvwwxwwwxxvwhwxxxwwwwgxwgwwxwwwxxxxxvxwwwwwfvwgwwwWwwwwwwwwwwwwwxwxxxwwxwwwvwwwwxwwwgxxxwxwxxxxwvxvxwwwvwxwxwxwhvwwxwfwwwvwfwgfwwwwwgwwwwwvwxgwxgfVfvuwffVVvxvwwwxxwhxxwvwwvvwvxwxwwwwxxwxwwxwxwvwwgfwwwWgxxwwxwwxvhvwwwgxvwxwwxxxxwxwggwwhxxxwxxxxwxwwxwxxxwxxwxgwwwwxxwxvwwgwvhfwxwfwvxwgvwxwwxvwwvwwxxwwgwxwxwwwgwvxxxwwwxwwhxwxwxwxxwwxwwwwwxwxxwvwxxwwwhxxxwwwgwwxwxhwxxxwxwxwxwwwwwxwxwwxwxwwxxxxxxxwxxuwfgvwvewwxffvvvwvgefgugevwwwwevvwgwfVgfvvgvwwwevvwvwwxwwwwwvvwwgwvwvwgxwwwgwwwgvxwwwxwfvwwwwwwwuwwwwwvxwwVwwwwvvwwvgwwvvwwwwwvwvwwwhwxwwhwwxwwwxwwxwwwwwxgwxwgwvgwhwxwgvwwwwxxwxwwvwwwwwfwwuwuvwwevvgwfwwvwxvvwvwvwwWvwuwwwwwwvxwvvwwwwvvvvgwgwwwwwwvvwxwwwwxxwxwxwxxwwxwgvgvwwvwxwwxvwwgwwwxwxwwwwwwwwwxxgwwwwwwxwwwwgxxxxwwwwxxxxxvwfvvuwwgvwvwvvfvwwgwuuvgwgwwgwvwwwvxgvvwwxwwwwwxwxvwvwwwwwxwwvuwxwhwwwwxwxwvvxwxvxxwxxxwxvwwwwwwwwvwwxwxxxxxxxxxxwwxxwwwxxwwwxxwwxxxxxxxwwVwxvwwwgwwwwwvwggwfwwwgwwhwvxwwwxwwxvxwvwwwwwvxxwghwwxxwxwxwxwhxwwxwxwwxwxxxwxwwxwxwxxwxwxxxxxxdgfwfvvwefvfvuwVwewegewegfvwvwffvwfffefvwgvwweEEvVwvwggvuwxwxgwvwwfevwwfwfwwggwvvwwvwvwvxvgwgggwwxwwugwxgxgvvwxgwxvwwxxwwwwwxwwgwggwvvVfgghwwwwwwwwwggvwvwwwwxwggwfwxwwxvwwwfggwvxwwwxwwgxxwwxwwwwwuwvgvwwxxwwxwxwwvxwxxfgvfggvwwVuvwfwgWgwwxgwfvgwvggwfvVgfwwguwfvhgwffvwfxwwvWvgwwwwvwwwwwwwxwwwwwxxwwxxhxxgwwwxwwgxwxxxxvwxwxxxxwxwxwwxwfwvxwvwxvwwwwvwxgwxuwwwwwwwvwwwxwwxwWxxvgxwwwxxxwwxxgxgxxwxwxwxxwwxxwgxwxwwwxwwxhxwxxxxxxwxwxxwwgwvvgfggvwwfVfvgwwwvwgwwgwgEEwwvwwwwwgwwwggwfwwghxwwxgggwuxwwwfxwwwwfwwxgXgwwwwwwxxwwxhwwwxxxwxgwvgwxwwwwwwxWwwvxwgvxwwwhxwwwwwwwgwxxhxwwxwwwwwwhwxgwwxxwxwhxxwxxwxxwhwxwvwgwvxwwxexwwVvvgwggwvWwxwwwxggvvwxwwXvwxxxwwwwggwxwwxxxxwwwxwxxwhwxxwWxwxwwghwxxxxwxgxxwxxxxxxwgxwxwwwxwwgxwhxxwwxxxxwxxwxxxxgwxxxxxxxxxwxxxxwxxwxxwxxxwwxwxxxugfVgtgwvffvefwwvwvwvvvwwwwwwUutvewfvwwwvwwxvgvgwwfwwwwwvgevwwvwvvvwwwxwwwwwwvvgTvfvfvwwwggfvgvwwxwwfvvvuVfwwwwxfwwwwxgwwwfuwwwwxwwffwgxxwxwwgwvvvwwwxwwwxwxwwxgwwvvwvhvwwwxvwxvwfftvwVDwudVwVfgvffvwxvwvwwwvwgUgfuVvwfwwwxwEfvfwwwwwgXwgwwgwvgwwwwxxwhwxxxwvvwwgfwwwwwwwwwxwwwxfgvFeweggwxwwxwfggvwgwgwwwxgwwggvwwwwwwxvwwvvwfwwwwwwwwwfwwwvwwgwhwxwwxwvwwvwwxxxwfwvvxgvwwwfvefugVvwwwwwwvwgwvwwwggwxxvgfwwvwwxwxxwevxvgwxwxwvvfvvgwwwwxwwwgvwhxxwVuxwVgxwhgwgvxwxxxwxxgwwvwwwwhxwxwvvwwwwxxfwwwxxvxxxwwwxgwgvxwwxxwwwwxxhxwxxxwxxxffxffVvwvwvxxwwfvugwwewgwwwfvwwwwwxwxxwxwegwgwwwwwxwgwggxVxxxgwwwwwwwxxwwwwvwwxwwwxxxwvxxxxgxwxwwwxvxxwvwwwfvwwwwwwgvwwxxxxwxvxwxwwxwxxwwwwwxwwwwxwxxwwgxwfwwxwxxxxwwxwwxxxtwgffwvfvwuwfEEuvvvvffvvgfwgvvffvwfgfvvwwwvfvvwgvwvwffwhwwwwffwwwwgxgfvwwxwwxwwwgwwwwfvgwvwvwvxfxgwwxwwwggwfvwgvwwwwwwwgwwwxwxwwwwwwwwwwwxwxxwxggwwvwvvwwwwwwwxxwwvgvwwwvxwwxxxgvwfwvgfvvgfvfvffvwgwwggfwwvggfvwgwwxfvwvwWvwvvwvwgvwggvxxhwwwwwwwwwwgwxxwwwxxwwwwxxxxxvxwxxxwxxwvgwvxwwwwwwgwwhwwxxhvvwuxwwwxgxwvwxxxwxggxxwxwxxwwxxwwxxxgxwhvvgfWfugEEuwwfuwfwwwwvwgwwgwvggwwxwwvwxwwwwgxwhwwwwxggwgwwwwwwwxhvxgwwwwwxwxvxxxxwwxwhwwxwwwxwxwwfwvwwgwggwwwxhvwhxxxxxwgwwwwhwwxxwwxgwwxxxwwwhgwxxwgwhxxwwwggvwgwfuxwwgwwwwggvwwxxwwwwgvwwXvgwuwwwwwwxxxxxwwxwxwwxwwxhwvxxxxwxwwxxxxvwwwwgxxwwwxxwwwwxwxvxwwxxxxxxxwwxxxxwvwxwxtwwxFgewVfuwUgevvvvxWfUvfxfuwggwwwwwvwwwwwuwwxuwgVxvvwxwxwwgvvwwwgwwwxwwwwwwwghwgvwwxvgwwguvxwwxwvwxwwwuwwwgvfxvwvwxwwxwvxwwwxgvwxwwxwxwvvxhxxxwwwwwwwwxxxwxgxxvxxwwwxwwxhgxxxggvwgVuvWweffffgvwwwgwvfwwggvwwwwwwggvwwxWwwwhgVvwwwgwwwwwwwxwwvwxwxwwxxwxwwwwxgvwgxxxwwwxwwwwwhhvvwxgwwwwwwwvwwvwxvfwwgxvxwhwwwwgvxwwwxwxxwwxxxwxwxxwwxxgxggwxxxxxxxwwxwghxxvxwwxfwxWgUvwvwwfwvwgWvgfFWgwwwgvxwxwwwwxwxwwxwxwxvxwxxwgwvwwxwwgfwwhvwwwwwwwvxxxwxWWxwwxwwwhwwxwwhwwwwwwxwwwwxgvgwwwwgvvwxwxwwxxvxxxwxxxxxwxxxxxxxxxxxxwwxxxxxxwxxxxxwxgwvwvwvwwfgvwvwwwwxhwvgvwgwwwvvggwxgwhwxwgwwgwwxwwwxxxgxwwxvwwxwwxwxxhwwxxxhxvwgwxxxvxxxxxxxwwxgxxwxwxwxwwwxwxxwvxxxxwxxxxxwwxwwxxxxxwxwwwxxxwxxwwxwxwgwgvvgwwwwWffwvwgvgvXgfwggfwvvwwvgwwgwwvvvfwfvvfwwgxwxxwvwhxwwwwwwwxhwvwxwvvwwwvxwxxhxwuwwwwwwwwwggwvwvxwwhxfwvwwwwxxwwwgwwwxwwwwvwxwwwwwxwvvwxwxwwwxhxuxwuwwfwxwwxwxxxxwwvwwgvvwgwwwggvxwvgwwwwxxvwffwvwwvvwvxwvvwvgwwwgwxxxxgvwwwxwxxxxxwxwxxwxwwvwwvxwwwxxwxxwwxwvggxwwwgxwuxxxwgvvwxwfwxgwwwxxxxvwvxxxxxwwwwxxxvxxxxxwvwwgvvwWffwgvwwwxWgftwwwwwxxwwwwvwwwfwxxwvwgwxwwxxwxwvwwxxwxvwhvxvwvwxxxxxxwxwwxwwwhhxwwxxxwwwvxwwxxxwwwxwxwxwxxxxwxxxgwwxhxxxxxfwggwwwxwwvvwxxwvwwxwwwwvwxwxxwwwwxxxwwwxwxxwxwwwxwgwwwwwxwxhxxwwwxxxxwwxxxxwwxwwwwxxwxwxwxxxwwxxwxgwvwwgwwwwwguwfwvwfggwwvfvVfewvgwvvfvgwvwwvvweuvfvxxwwwvwwgwgwwgwwwwwwvwwgffwwwwwwwwwguwvwwxwwwxwgwvvgvfxwvwwhwwwwxwwwxwxvwwwwxwwwwxxwvxxwxwwwwwwxwwxwwwxwwxwxwVegvvvwwwwwvwvfgvfggvwvfvvwvwwwwwwwgvvwvvvwwxwwwwwxxxwwwwwwwwwwwwwwwvhwwwxwxwwxwwxwwvwwwwvvvwwwwwwwwxwxwwwvwxxwxxxwvxxxwwxxwwxxxxwxwxwwvfwwwwxwvfvgfwwwwwwxwgvwgvwwvvxgvvwggfgvxwwwwwxxxxwwxvwgxvwvxxwghxwxxwwxxwwwwwwwxxxxwxhxxxxwwxwxxxxxwxwwxxwwxxwgxwxwvwwwvvvwxwwwwwxwvvwxwwxwwwwxxwwxxgwgxxxxxwgvwxxxxvwxwwwwxhgxwwxwxxxxwwxwxtgwwguvwvwfxvgfvVfdggfUvvwvwVwfggetgfwWvwwuwwdfUffvWfvvvwwfgwwvwgvvwxfwvvgwvvvwwgggvwwxfwgvwffwvWvvvwwggwwWwgxvvvgvfvewgwgwwhwvwwwugvwwgggwwwxwvwwgwwfwwxgwwwxxgwwwxwwwwwvgwvxwxxwwwwwxhxhwxxWvwwVgvwwwxwxgwxwwvxwffwfhwvwvfvgfvgfFfvwggfgvVvwxWEgffwwgvggvwwwwxUvfUvgfgvwwwwwwgwwwwxhxxwxwxwfgwxgxxhwxxvwhewwwwwwwfwwvwwwgwwgwvwwxwfgfgvwWwggwhxwgwwfxxwgvwwfwwhwwvwwxwxwxvvggwwwgxwwwwxwwvwwxwhwxxwxwwwxggwvWwxwwxwwwxxwgwgxwvuwgwwfvwvguwwwwvfgVgfVGwwwxwxwwvwfvgvgwwxwxgvvgwxugwwxwwwvvwwxxhwhwwwvwwvgxwwxxwvwwuxgwgvvwwgwwwuwwhHgxwxwwvwwvgvwxxwwxwgvgwggwwwvwxgwwxwwxhgxvwxxwxxwxwxwwwwxwwwgxwxxwxwwwwwxwxwwwhgwvwwxwfvfwwggVwwvxfwvwgvWwwwgxgwwgwgwggwwwwxgwwwhwwxwwwwwwggfxxwvxwxwwxwwxxwwwwfgwxwwvwwwxxxxwwwxxwwxvwxxwwvhxxgwxxwwvwhgvgxxxwvwwxwhwwxwxhxvwwfxgvgwxwgwtxfwewfwufwfWevvvvwfvfwvwvwgwvwfwuwfFTvfwVfgwvgvgvfvfwxvxwwwwwvvwgvvwxwwwxfhwvwwwhwgvvwwwefwxgxwvwwwxvwxwwvvxgWuwwwwwwgwwwvwwwxwwgwvwgwwwwxvxwwgxxwxxgvvwuxvwwvxxwwgwvxxxxhxwwwwxgxxWvvuwwvewvwwggvvfvvgfgvvwfwggVwvgvvgwvvwwgxvwwwvwgVewvxgwgwvwwvwwwwwwvwxfvxwxwwxvwwwxwvwxxxxwwxvwwxwxwxwvwhwwhwvvwhgvhwvxwwwwwwwxwwwxxwwxvxgxwwxwwwwxwwxwxxwwxxvxxxxwxxxhvwvxfFTvvvwwxfwwgvwvvwgvwwhwgfvwwgvxvxwxwxwwwxwxxxwxwxgfvxvgvwxxwvwvwxwxvxwwwwwwwxxhghxxxwxwxxxgwwwxxxwxwxgwwvxwxxxxwgxxwxwxwwwwwwvwxxxxxggvxwxwxhxxwwhxwxxxhxxxxxxxxxwxhwwhwxvgvfvfvwwwwwwwwwvwwXewvwwhwwwgwwwwxxxwwwxwhwwwwwxxgxwwxwvwgxwxxxwxwxwwwwxwwwhwwhwxxwwwvxvxwwgwxxwwwwwxxxxxwwwvwxwgxwwwxxwxxgVwvwvwwwwgvVwwvwwgVxvewwwwfwguxfvWvwwwwgggvvgvvuwwgwwvwwgwwwwfvwvwwwwwwvwwwxwxxwwwwwwhwewggwgwgxwwwwwxVwwwwhwwwvwfwwvwggxwwwvguxgwwxwuwvwgvwwwxwvxgxwwwwwxwwwwxwwwhgwxgxwxxgxwwvuvgvwwvwwwvWfwwwwfwvwvVwvgwgwwwwgvwgfwwwwvwvxwxxwgxwvwwwxwwxxxxxwvvxxxwwwwwwwWwwwwxwvwwhxvvwwwwvgwwxvvwwvxfwwwwwwxwwwwxxxwxwxwwwxgxxgvwxxwxwwwwwgwvwgvvwfvVvwwwvwgwwwVwwuwwwgvWuwvwwwwwwxgvxxwvwxxwwwwwxxWwvwwwwwvwxwwwwxgvwwwxwwwhgwwwwwvxwwhxwxxxwwxxgxxwwwwwxxxwxwwxxxxwxwxwwgwvvvwwxxgwvvwgvwwvxwgvvwxwwwxxwwwwxwwxxgwwwxwwxwxgwwxwxwxxwwwxxwwxwwxxwxwxxwvwwxwxxwxxxxxxywwxxxxwvxwwwwwxfwxvxwwwwwwwxwwwvwwvgwxwwwwwwwwwvwvwwwgwvwgwwwvwxxwxwvwxwwxxwxxwxxwwwwwwwgwwvwwwwwwwwxwxxxwxwwwwxwxwxwgwwwwxhwwxwxxwwwwxwxxxxwxwxwxgxwxwwwwxwxxxxwxxwwwwwxxxwwwxxvwwgwwgwwwwxwwwwwwwwvxgwwvxvxxwwwxwwwwwxxxxwxwxwxwxxwwwxxwwxxxxwxxxxxvwwwwwxwxvvxwxwxxxwhwxxxwxxwxwxxxwwxxxxxxxwxxxxxxxxxwxxxwwxxxxxwxwwvxwxwwxwxwwvwwxvxwvwwxwwwwwxwxwwxxwxxxwxwvwwwwwxxvxxwxwwxxwxwxwxxwxwxxhxvwxwxxxwxxwwxwxxxxxwxgwxwxvxwwhxxxxwwwxxxxxxwwxvxwxhwxxxwhxxxxwxxwxxxxxxxxwxxxxwgwxwwxxxxxwxxwxxxxxxwxweffwevvwTeveffggvwwggvgfvwwvxfvwwvffwvxwxgwufwvxxvwwxfvvwVVcwdfvwVVvvggvvghwfvvwgwwvwvwugvwgfugwwwxwxwxxxfwdtvwfvffvWfguvwgvuwwgwfwwhwxgvvvwwxwwxxwxwxwxwuffwvvwvvvxwxvwwwwwwvwgwwwvwxgwvxvwwwwxwxwwwxxwxxwxxwewvwfFdvcfvwVfvVVegghUvvvwgwwvvwvvvguxvxxfvvwxxwwwwwxxwwvwwwvffuvxwGuvwxwwxxwwgvxgwwwgwwxhwwwxvwvwxwwwxxvxgwwhufVewgWwuVeugvwvwvvegvwwwwgWwxwgxwwvwwwwwxwwwwwvvxxwwxxwvwwwvfvwxwwxxxwwwvwwwxgwwwxwxwwwvwxxwxwxxgwwwxxxwvwwcuvwVvffvgfwffvxwefwwxgvwhvxhvfvwwwwwwwwwwwxvwxwwwwwxxeUewfGffVvuwvwfgwvxwwwwwvhwxvwwwxvxwvwxwwwxxwwxxwxwxvwfgvwfwgwvgfxwwgwwwwwxWwwxxwxvwxwvxwwxxxxgwuwwxwwvwvwvhwfwwwgwwxwwxwxxwwwwhxwwxxxgwxvwwfxxvwtgewfwwwgwwxwfvfffwvwwwhwwwwxgvhwwwwwwwwwgwxwwwxwxxfvvwwVwfxwwxwxwwwwwvxxwwwwwwxwxwwwwxwvwxxwwwxxwwwwgxvwwwhvwvwwgwwwwwwwxwwxxxwxvwwwwxwxxxwxwwgxwvwwxvwwwgxxxwhwwwxwgwxwxwxwwwwwwwxxwwvwwwxdUUvfvvweevwvfUveuuvvgweVfvgxVvvwfwwvwwxwggevwwwwxfuguwgeVTvefvtgevgwffvvwvvgfvwvwwwvwxwwvvwwwxxxxwwUdvweefwfevvwwgefUvwwxgvggwwvvfwvwwwxwvwvwxxwxwwxwufUVvvwwwwwxfwvxwvgwwwxwvwwwwxwwwwxwwgwwfvgvwwuEUfvvwtfevwvwUvvvvgwfgvvfwwxwvwwfuwxxwwwwwwwwwufvxwwvuvwwvwvvwwwwwVewwxwxxxwxwwwxwggvwvUTffvxggvewxwEeugwvvwwxwgwwwvwxwgwgwxwgwxxwwxwvvvxwwwwwwvxxwwffwxvxxwwxwwxxxvwwwwwwwwxxwhvTuvwvvveevwwwxfVVvwwwfvvgwwvgffvxwwxxvwgxwwxwvwxvVTvewfwwVuvfgwwEvugxwvwxvgwgwgwxwwgwvwwwwhwwwxwufwxwwwwwxxgfuwwwwwwwvxwwwwwgxvwgxwxxwxwfwvwwwwfxwwxuwgwwwwxxxwwwxwwxvxvxwugfVvxwwxvVgwwgwvwwwwvxwwvwwxwwvxxxxwwhwxxwvuvxwvgwwgwwxgvxvxwwgxxwwwxwxxwxwwwwxxwhvgwvwwvxxfvwwvwwwxxgxxwwwwwxxxwwxvxwvwgwwwxxvwwgwwwxxhvwxxxwxwwhvxxwvVfwvwgVuvwfgvVvvxVfxfgfVvvwwwxwhfvxwwvxwxwwwwwfuwxvhwxfwwwwvfwegffwvwvgvwwwxgvwxwxwwwwvwwwgvvxvwwvgwxgwfxwwxwwgwwxggffffwfwvwgfvgwgwwggwxwxwxwgwwwxhwxxwwwxwxwxwwvgwwuxfwfWxhxwxwhwxvwwxxxwxwwxxxxgwxwwgwfggwvugwVwwwwwxwvvwxgxvgwvwwvgwwwwgvwwwwxwwwwgxxgwwxxwgwhwxgvwwxxxxwwxgxwxgxxwwwgwxhhWxvgxwxxxgxxwxvggguvxgvwwgwhvwxgwxwxwgwwxwxxgwwxwvxxwwwgxghxgxvwwvgwwxwxxwxwwxxxwxxwxxwwgvvwffevvgfgvvwfggfvvhwwwgvwwxggwwvwwwgvwhvwwxxvxwxxfhVvvvvwfwvwwwwwgwwxwgvwwxwwvxwwvgwwwxxwgxxgxwxwxfgfuwxggvvvwgwgvwwxgwxwgwwwwwwwxxwwgxwxxxxxwvxwwwwwxvgwxvxxvxxxwxxxxxwwwxxwwxwvgfgwwwvvwwvgwwggwwwwxwgwwxxwwwwwxwvxxwwwxhwxwWwwxwwwwwwwwwwgwxgwwxxxxxxgxgxwwxxxwgwwwwwxhgwwxvwwwwwxwwvwxvwwxwxxwwwwxxwwxwxxxgxxxxxxwxgxwwwwwwxxygxxvxxxxxwxxxuffvgwvvvvvwvgwfuvwwwhgvffwhxwetvfgfwxwwvwxuffgwwWwxguvwvVeevvwfvvwfFdvxgfvwxxwwsfvvfeuwWvxwwffuwwvwwxxwwesvwwefvfvwwwxffgewwxvwwxwwxwvgfwvfwwwwwwxwfvvvgwwwwtWfwfffffwwxhwvvwwvwwxwwwvwwgwwwwwwwwgggxwwwwxfvvwggvvvgwwwwxv6euxwvguwvwxwtfvvfvwfwhxffuuwwvwuxhwhxwgvwwwxwwwwvxwxwffwxxvwgwwevwgwgwwxwxwvgWtwwxwvgvwwXvuUevgvwwvwxgffdwwwwhwwwxwVvuwgwhvwwxvggxwwwxwwfvvwgwwwvwwwgvugxxwxwwwwwwwwwwxwwxxxwwwxxwxwwwwdtvwwVwvfwvffgfwwwgwwxwxvgewfwwwxxxewvwxgxwxwgvVevVvgvvvwwxwWvuwvwvwgwwwwUvevwwgWwwwwwxvgwwwwxwxwxxwvgggwwwxxwwxgvwgwwwxwhwxwVxvgwfwwxWxgwwwxvxwvwxwwwxhwvwwwwwxxxxwwggwwwxvwxwxvgwwxwwwxwgxwwwhxxgxuffwwwwwgvwxxxvfwwwvwgvwxwwxgwxwwwwxxxwhwwvwxwwwwwwwvwwwvwwwwwxwvfvwxhwxhxxwwwwwwwwwwwwxxwwwwxwwvwwwgwwwwxwxxxxxxhgwgxvwwgvwvggxxwwwwwggxwwwgxwvwwxwxwvxxhwwwxgxwwwwwwgxwwwxvwwwxwwvwwwwgxuFefvvvgvvvwewwfuvfgfwfgWvguwuvgvvvfvgvwgwvugVwvvhufvuvwwVvvwvuUvgvveugwfffwgfuweuvwvwvwtwuwgfdvtvwwuwgvgvvwvwfvvwwwvwvfvvxvgfwfgvwwwweVfvwfwwWvfWgwwevwgfgvwgwxwwWffVvwvwwwwwwfgwvvvgvwwwwwwwgfugwgvfwxwvwwwvwwwvwwgwwwgegwvvwwwxgfvwvffvffwvuwvvegfgfuwvdwghwvuffwVwuweuwvvhwwfwuwvwwfffgvvgvwgwwwwwgwwwxwhwwvwwvvfvxwwxwwfwxwgvwvwvgvwwwvwwggwwvxwxvvwwWgvvvxgvvxwgvvWgvxewwwwwwwfwgwwwhwwwwwgwwggwwwvwwwwxwwwwwwxgwwwvwwwxwwhgvggfxwwwwwwvwwwxgwwwwgwwuwgxvwgwwxfugvfvfvfvwvWfvwfgweVfvwevwggwvwwWwwgwgveWwwwvwwggwwwwgfvevwWvvwvwwgvffgfwwuwwgwxfvwwvwwwwwvwvgwwVwwwwwwwfvwwwwvwwwwwwfwwwwgvvwvxwvwwfxgxwwgwxwwwhvgwwwewgxggwxvxxxvvwwwhvgwgwwvxvwgvxvxvwfwxwggxwxvhhhwvwxwwxvgwwvwwwvwwwwvwffvgwWfwwwgwvwwvvwxwfvgwhWvwvwwxwgwwvwwwxxwgwwwwwwwwwwxwvxgwwhUwgvgwxwwwwvwwwwwvwgxwgwfxhvvwwwwgvghwxfvxvwVwwwwwvwxwwwwwxggxwxwgwWhwwwwxwwxwxxwxwwwwxgwwwxxxxfxvgxxxxwuvxxxfffwfvfvfvvxffgVVefvfwfeVfwvgwwfvvwvgwxvxwwwfwgwevgwwgvfvgfgfwfvfwffwwvgfwfweggvvgfwfwvgewvwvwfvvwwwgwwwwwvwxgwwgwwVfVgvfgwegWvwwxfggfwxfgwvwxwxgugggwwwwvwxxVwvgxxwhwwwwxegwwfgvwwwwxgvvwwghvgwwxvwxwwwwxxwwxwwxwxxxwxxffvwffgwvfgvgvwvffwWvvvfffwvfwwfWfwgfwxgwwfvgwwwwgwxwwwwgwwwgwwwxgwwwxwggxxhwwwwwhwvwwwwwxwwwwhxwwxhxxwwwvwwgfwwwxwwggfxwxVfvvwgwgvgwwvvxwgwxhwwvxxggggxWWfxgxwgxwxwwvxgwxxwxxhhwwgwwwxwxxwwwwvwwwxwwvwffUgvggxegWwwwwffgfxxwggvvwxxfuwggxwwgwxxWvvhwxwgwwxvfwwwgwwgvvgvxwWvvwxgwfwgwwwwvwwwwgwgwwhwwwgggwgXWfxxxgwxwwwgwwwwxwfxvwxwwwgvxgvvwxwxwwwwxwwgwwWgxwwgxwvxwwxwxghWffxwghhwxwwwwwhgwwxwxxhggwwwxxxxwugwgwwwgwwxxggwvwxwhwgwvwwwxhwxwxxxwwxwwwwxwgwxxxwvwwwwwwgwwvwwwwvxwwxvwwwwvvxwxxhxwxwwwwvhxxwwwxwxvwvwgwwxwwxwxxghwXgfxwfhgxxwwxxxggwwwwxwwwhhgxwwxxwwwwwwxwxwwwxxxwxvvxwwwwxxwwvxwwwwxwwwvwwwrwggvvwgvwwwhffwvwwwxfhgvvvwxvwvwfxfvwuWwxwxwhfvwwxwwxwgvvwwUuwvxwwevfwwfvgwvvvvwvwvxvgfevfwwxvwvWxfvwwwwwxgxwVggvwwvxwwWFDwwvwvgfvvwwWfwwhgxgVEgwvwwgwwxwxwxgxxwwwhfevfwwwvwwgxfvvxwgwwhvxwxwwwxwxwwwwwxwwwxvvwxfwvwwfvvgffvvxwUuwgwfuvgvwwxvxwwfvwwhwwwxgfuvggwwwXwgxgWwwxgwvvvwwwgwgwwxWvggwwwwvvwwvwfwwxwwgwvwgxwwwvxggWefhgvvvvwWfwwwhvfuvgvggwwwWxwwwwgwwxgwwhwwgfwwxwxwxgwwwhxvvwxvwvxhgxxvwwxwwwwwwwvwxgxwwwwxwxxwxwwgxwxxvwvwvgfgVEwxwvxwwvvwwgwwxgWFDvwuvwwwgwwxgwwwxfxxwwfxfvevfwgwvwwxfvwwvwfwxgxwwvwuvwWwwgwwwvwwhvwwwwwggxxwuWwxvwwwgwwxhwwwwxwwwhwwwxwwwgwgwxhfgxxwxwwwxxwxxwxwxvWxwxwwwwwxgwgwwgfwxwwxwwvwxxwxxwvvwxwxwhfwwxwhffvwxwwxwfuvgvwgxwwxxwxgwwwwhvxwvvwwgxxwwwwxvwwwwwxgwwxgwwwwwxwxwwgxfxwwwwwwxwxxvwwxxxxwwwxgxxwvvwwXwwvxggwwwxwxxwwggxxwwhfwwwwwxxxxwwxwxwVgwxgxgWgWehxxwxxxxwwxxxwxfwvwwxwwwgvgxvdwwwvwxvfvwwwwvvwwvfvwfwwffvgwfxwvvvxvwuvvwvwvwvwffvgGgvfvgwxvgwwwvvwwhwwxwwvwxwwfwvwxwwfgwvvgwvvgwwgwfgvwwwvxhvvvgxwwgwxwxwwwwwxhxxxwxvwgwvwwwxwxhwwvxgwwwvggwwwwwxxhwwwwgwvxvwvwwvwfgvwwwfUvwWfufvvvwwwhwvwwwvxhvwxwwwwwvwwwwffxwgwfwwwwwwwhwwwxwwgwxwvwwwxwwwvxwwxxwgxvwxvvfwwxxfvwwxwvwfgfwwxggwwxxwvxgwwgxwgvwwxxwwwvwwgxwwwgggwgxwwhwwxwgxxwxxvwwwwwgwwfwwvvggvvwwffvwvxvxggwwwwvwwvfwwxxxxwwxfhvwwwvvgvwwwhfwvwggxvwuwxWwwwwvwwxwwwwxwxwxxwwwvvwwwgvwwwxwwwvvgwxvwvwwgxfxxxwxxxvxwxgwxxgfxwhxwxxwxxwwgwwwxxvxxxwxwwxwxxwvwwwwxwwwxxxgvvwxwwvvWgwwwxwvxwgwwwwwwwxwwwwxwwwgwvvwwxwvwwwwwgwwWwhwxxxxvxwwxwxwwwxwxwfxxxwgxxvxwvgwvwxxwwxxwxxwwwxxwxxwxfvwwwwwxhwxwwxwxwwwwwwxwxxxegVwgxvwvxwxwVvfwwhwwugvwwwwgxwxwgvwvwVWVvwhgvvfwxfwvwwfuvgvvvwxegewxvwwfvwwwwwgvgvvwxgwwwwVwvwwhgwwxwxxwwwgxgwwVWfwxUVfvwwxwwwwwwwghfvwwxvwwxwwwgwWwxwwwwxxwwwwgwwxwwvwwxfwwxwhxwgvxwwwwxfxxfwxwxxwxxwxwxxxwwgwwwgvgwggwfVfwwwgevwxgvggwwwxwvxgwvwwhwvgwwxxwwwvwwxwwwwxwwxgwxwxghwwxhWvwwxhxwfwwxxwwxgwhxwwwhxgwgwgwxgfwwvxvvwgwwxgvwwwxvwxwwxwxwgxxwwwwxxxxxwxwwxwwwwxwxwxxxwwwwgxgwvvwwwxwxwxxwwwwxxxxwwxwvvwwwwggfwfVUwwgxwgwwvwWWvgwvvwwwwwwhgggwwwwxxxvwffwxvwwwwxwxwfwgwwXwxfwwwvwwwxwgxxxwwxwwxxxwvgUvwwwvvhwVgvegwwgfwwxxggwwwvxwwwxxggwwxxxxxwwwwwwwvxxwxxwxwwxwwwwwgwxxxxwwhwwxwwwxxwwgwwwwxfvgwxwwwWwwvwwwvgxxwxhwwxvwwwwwxxwwfwxwwvxwxwgfwwhxwhwwwwwvwxxxwxgxxhxxwwxwvwwhwvgggxxxxxwhxwxhxxxxxxwxwwwvwxxxwxxxwwxhwxwhwwxxwxxxxxwxwxdUUvUevwfvuwgWfvfvvwvwvvwwwwweuvvefevwwwgwfVVwfvgxfvfxdVfwfgvvevvvwwgwwxwvvxxwweUTgfeuwgxwwwwwvvwvwvwwwxetuwffUvwffwwgffwvwwxwwwwxuevvfvfwwwxxwxwwxgwxxwegfvvuhgwwwwxguxwwvxxxwwggwvwwxxwxgwwxxxVvfxdWfwfgfwfvwuwgwwxvwwwweFUvfvvgwwwwxfuvgwwxwxxxxwufvvvwwwxwwwxwwwwwxevwwwVevxxwhwwgwxwxxwwgvxfFUwVudwwvxwwhguvgxgwwwxwwwxVgwuuhwwwvvwvvwwvgwvwxxxewwxgvwwxxxxxwwgwhwxxwwwvwvxwwgxxxwwwvxxwxxgxgduuveVVvvfgwgvwwuefvvwxwxxfevvvwfgwxxxwwxwwgwwwxxwwxfEUgUudvgwwxwhfvxgwxxxgWfvwwwwwwxwwxwwxwgvwxwxwvvwVwvvwwwwgxgwwwwwwxxwwwwxwwwwxxxxxxwgxvxgwvvwvwxxxwwxwvxvxwhwwwxxwxxxwxwxxwwwweVVgvwgwwxwfvuwvgxwxwxwwhwwxwwwxwwgxwwwxxxfwwwffwwxwwwwwwhwxwwwwwwgwwxxxwwxxwwxxxhwgVwwuwgwvwwwwwwwxwwhwwvwwxwwwwxxxwvwgwvgwwxxwwwxwwxxxgwgwxxxwxxhxgxxxuVVvfuwVetvtfVvfuvgvvufvvwwwfuuwuwwuwwwgvvwuhwwwvwetuwWffvugVfgfguvWvVewgwwwwgwxwgwwuwwgvfgVvuwvgvwfvvwgggwwwwwvwwwVveguggwvfwwfwuwvfvuwfvvwgwugwgwxwwgvwwxwvvwxwxxwxuwwvwvfwwwwwgvxxggwvxwwwvuwwwwxwwwwxwxguuwuWVuWVwfvfguGVwwwwwvvgwwvwugvgvuwFevwvWgwVevgwwgwfvgvwwwvgvwwvwwgwwwgwwwwhvwwwwwwwwwxwwwwggfwwvwvwwxxgvgxwwwwgvwvggfwfgfvwwgwwffwwwgvwwwwgxxgwvgwxwwxwwwwvgWwwhhfgfxxgvwfvwxwvwxwxwvwxwxwwwwvwwwwvxwwwxwwwwxxxfudgtwfugwwWfutgwgwvwfuuwggwfwwvwwwgwxwwxxxxxxvvwWvuWfufvwwfvwwwXgwwxwwwwwwwwwwggwxwggwgwwwwggfxwuwhwwvwgwwxvwxwfevvhwwhwwxxxwvvxwwwgwwwwwxvwfgxxwfvxvgwvxwxwwwwwvwwwwxxwxwxwwwwfwvxwwwwwgwxwxtwvfvvWvvwhgwWvvxxwvwwwwwwvgwxxxwwxxwwxxwwgvwwWgwwwgwwwwxwwxwwwxwwwwwwwwwxwwwxwwxwwxxwVvfxwhwwgwwxwxwggwvwxwwwwwxxxxvgwvxwwxvvwwxxwwxxwxwwwwxxwxwxwwgvxxwxxwxwwhwwgwxwwwuxwwwxwwuuvwfggwwwxwwwwWfwvwwwgwwwwwvgggwwwwggwxWwvxxwwxvvugVfvuvfwwwxxwwwwwxwwfgvwwhWWgvvwgxwwwwwWwhWwwwwxwwggwvWvvwwgfxxxgwxwxxhxwwwvwxwwgvxwxwgwwxwxxwwxwggwwwxwwwuggxwxxxgwwvvwwgwwxwwwxwwxxxxwwwwxvfvWffuvvwwfwwwwwfvwwggwxwfwxwwxggvexxxvwwxwgwwwwhgwwwwwwwwgwhwwxxwwwxxwxwWhvxvwxwwwwxxxhwwxxxwhhwwgvvvwwgwwwuhgwwxwvxvwgwgWfwwwwwxxxwgwwxxwgxxxwxwxvhgwgxwwevwxxxhvfwwwxXhwwwwhhxvxxxwxwwhxxwwxwwhwwggfggwWvffwWgwwgwgwgwwxxxhgfwvwwvwgwwwwwwwxwxxwWguwgwgggwuwfwwxwxhwvxwggvxwxxxgwwxwhgxxwxvghxwxwwwwwxwgxwvwwxwxgWwvwwxxxxwxwgvxwxwxxxxxwWwwwxxxxgxwxfwhxhwwvwxxwwxxxggwvwwwwvuwgxfwwgwwxvvwxvgwgwwxxvvxxxhxxxxxxwwwghgvwgwxxwgfgwhxhxfwhwwxxwxwwwwxxxxxwwxxfwvwxxwxwwwwwxwxxxxwxgxxvxxwxxxxxxxxwxvwxxxwwxxhhwxxxwwxxxxxvgwvutvxwvwvfvxwwwvwwwfggvggwvvfvwwvwfgwwwhwwgwwvvxvwxgvwwveuwvwwgwvwgWwewwwwwvgvffvwvwwgwwwwwxwwgxhwggwwvwwvwfwwvwvwwwgvvwwwvwxwggfvvvvwwwwxwxggwhwwgxxvwwfwvwvwwwwxwxxwwxxxxwwwvvWgxwxggwwxxwwwwwxgffvvwxxwwxwewwgvdgvwwgwwvgwwvvgwfxvxxgvwwwhwgwxggwxgvxwxwwwwxwwfhvxxwwxwxwwwwwwwxgwxxhwwwwxgwwwhxwxxwvhvvgvvwxwxwxgwgvwxwwwwgvwvvWwwwwwggwwwxgxwxWwwwwwxxwwwwwwxxwwwwwwwvvwwwwVwhwwwxxgxwwxvxwwwwwxvvgwxfwwwwwwggwvvvwwgwgvvvwwwggxwvwgwwxwxxxwhwvvvwwvxgwhwwxgwwxxwhvvwvvgfvxxgwwvxxxwggwwxxwwgfwgwhvgxwvwwxxxxxwwvgwwxwxwxwhwxxwxhxwwgwhvhwxxxxxxgxwxwxwhgwvwxxwxxxxwxxwhwwgwwwwgwgwwwwvxxxxwhwwwvwfwwgxgwxxgxwxwxwwxwvxxxhwwwxwvvxwwgfxwvwxwwgwxwwfvhhwxxhwwwwgxxwwxwwgwxwwwwxgxxxhwwwxwwhgwgxxvwxwwgvxwxwwxwgwyuwwwvfgvvwvvwwwfwggfVuwgwweufgvfwwwwvwwevVvuwvwwweufgVvuwwxwwwvtfvuwwvwwvewweefgwwxvwwgvuwwwwwVvuvevgXwvgxvwwhvvgwwwwgwwwwwwgvfvvwwwwxvvwwfvvwwgwgvxwfvvwvhwvxwwfvxwwwvxwwwwxxfwvwvwfwxvwwwvwwxwwwwwwwwwwvxwwxxxvwxgwwxvwwxvuvwvuwvwgvdgeuffwwwwwwgvuwwvwxVfuwvgxgwvwxvwwgvgVwwwwwwwwwxxwxxwwwxwwxwxwwwxxwwxhwwwwwxwxwwwwxwWwwvvxgwvwwwvvwwgwwwwwvwvxwxwwwwwwwxxhxwwxgxwvwwwwxxwwwxwwwgvwwwxxxwwxwxwhwwwwwwxgwwwxwfvxwwwwvvwwfvvwwgwwgvfvvwvwhvxwwfvvwwwvgvxwwwwwvwwwwwwwwwwwwwgwwwgvwgvxxwwwxwxwwwhwwwxwwxwwgwvwwxwwgvxhwxxwwgvxwwxwwwxwxwwxwwwxxwwgwwwwwxxwwwwxxwwxwwwwgxxxwwxwxwwxwwxxwgwxxwwwvwxwvwwwwwwwgvwwvwwgxwxwwgvvwxwwwwwwwwwwxwwwwwwwwwxwwxwwwwxwwvwxwxwwwwxxwgvxwwxwgvwxwwxxwwwxwxxxwwwxwwhwxxxxwxwwwxxwwwxwxgwgxxxxxxwwwxwwwxxxwxwwxvwwwxxxwhvwxwwxwxwwxwwwtVefvvwVwvwvwvwfffwuWfgffwwfvvwvvvwfgFwXvwgwwxUgFvvvvwgwvwvgwVvvwufevvfffuuweWvgevfweuvwvwvgWvWwWvwgvwvxwwufwwwgwgwhvxwgwwfvvxgwgwvwwvwuwUWfwwvfvfwvwwxvwffvvFwffwvwwwgwFwfgwgwggwwvxwVwwwgwxewvwgwfwvvfwwgwwwwwwwwwvWgvvvwvwvwvwwxwgxwwvwwwwwWgfwugfgefgVvuwvfvgfugwvdwgvgwggfWvgwwgvwwxwwfewwwgwwwXwwwwwvwwgwxwfvwwwggwvwwwwwwwxwwwgwwwxggwwwwwgwwwggggwwggggwgwwwxgggwwwgwxwxgvwvvwwggVwhwxwfwfWwwgxggxvwwwwvwwwxwgwgvWwwwwwxwgvvwxhxhwgwhgvwwwgxvxwwvwgwvwhgwwwwggwwgxWxwwwxUvuxggfwvwwgvwfWfvwfvwwgwfwxwwffvwWwegwwwwgwwwVfegwhwgfxvwxwvwgfwvfwgvwwgfgwwwgwfWxxwfgvfwfwwwwwgwgvwwwgxwwwgwwggwwgwxfwwwxwxwwvxfwwwXwwvwfxgxwvwwgvwwwwxgwvwwwhwgwwwwwwxwwwwwvxxwwWvgwhhVxwxgwwvwxxwwwxwvgwwwgwwxwgvwxewwwwwvwvwhwwevhwwwwwvwvxfwgvvwvxvvhwwxwwwhwxwfwwwwwwfwwwwgwwvgwxwwwhgwgwfxfxxvwwwwhgwhwxwfwwwwwwwgxxhxwwwwxxwvwwwwxwWvgxhhWwxwwwvwvwwxxwwxgwgxwvhwwwwwwgxxwwxwwwwxgxwxxwxwwxxwwwwwwwwvvwxwwweVdeffweugxegVffvwwgfxffwgfgwfgvwfwVvvgvwfuvwuvwVwvxggwuvwwfwvvfufguffwWvvwvffVwvvWvuwfwwgvffwtvgvuevwfvfvufwwgxvxvxvwgvwvevffgewfwgVwVgffgvggwvwgwwwffvWgVgwwwwwggfvvVvwfwwgxwwxwfwvfvfvfwwwfwwvwwwggggxwwxwgvwwwwwwgvvgvvwwwwgwwfwwgxvuwwwfvuwvffvtWwwfwvwfUWVwvvFgvffggwfgvweuvwvtwwvwwwuuvgvgwwewgwgfwwwvxgwwwvwwgwwwwgwgfwgwgvwwwwfwwwvxwwwxwwwxwhwhgwgvwvxfwwggfwfvgfgwwwwwwwfuvVwwvwwwwggwgfwuwwwwhvgwgwxxwvwwghgwggwwWwvwwwwvxgwwxhwvwwwwXXgwwwwwggwwwxwgwwvwwxhwwwxwwgwwhvwxfvwefevfwgfgUfvgfwvwwvgvvfgwfgvfwUgwgvwwwwwwwwWwwfwxwxxxgwewfwVwwwwvgwwwfwWwfwxvwwwwwfwwwwwwwwwgwxwwwxxwggwwwggwwwwwfwvwgwuwxfgwwxwxwwxxhgvwwvfwwgwhvggxwwwxwvwwxwxwvfwvwxxwwvvwwuwwwwxuwgvgwgwwxwhgwwxxxxvxwxwwwvwvVwfvwvwwegfvgwggvgvwxwhgwxwvwwgxwwwwwwwwwwwvwwxwgwxwxwgxfwvwwWwwwgwwxwhhfxwwgwhwwwxwxwwwwwwhwwxxwwxwwhwwxfgwwvxxxxvwwwggwhhhgwwhvhhwwwwhgwxwwxxgwxhwwwwwvwwxwwwxwwwxwvvhwffwxwxwxxxxxxxxwwxxxwxefUwUvUvvwuxvUvvfgvwuwwgwwwEfuvefvuwwwTuvwdfVwwvwwfwvwvgeUwvwegTugvevevugUwwwwVwvwwwgwugUwfwgwevtvfvgvfvfgwgwwvwewwwwEvfgdwvvwwwwdgggwvwwwxxuwvwUvvwwwxgwxVwvwwfxwxxxtgwfuwgwvwxwxfvwxgwwwfwwwwwwxwxwwwxfwgwwwwwxfvxvVewuwwfvvwegVwwvwfwfgwwfvvgfwwvVvuwwwwwewVwwwvwvgvwwvwwvgvwgwgwwwxxgvwwwwxwgwfgvwvwwwvwwwwwgwwwxwwwvwwwvvwxwgvwfvwvvvwwwwwgwgVwUwwxewwwfwwwwxUvwxwwwxxwggfvvwvwwwwwxwvwwxwwwwwwwewwxwwwwwwwgwwxxwxxwwwxwwwxwxwxVvegugwuwvfwwwuwfwVvvwgvvxwvvvwfvvwwgwgwwxgvwvxxwxvwfvvvvgwfwVwVgvfgwgvwwxwwgfvvwwwgwxwwvhffwwvwxwwxxugwefvfwwxwxxvwgwvxvwxwwxgwwwxvwgwggvggwxwwwwxwxwfuggwfwwfxwwwxvwvwwxwwwvxwxwwwfwvwwwxwxwwwxwxuwwgxVwwwwwfwxxxggwwwwxxgvgwxwxwxwwwwwwxxwwvwxxxvwwxxwfvwvwwgwwwwwxgwxxwvxwwwwwwwwfvxwgwwxxxwwwwfwvwwwwwxwxxwxwvgwvxhwxwwxwxxwwwxwwwwwwxgvxxxwxwwxwwgxwwwwwxxwwvxxxfvvgwwwffvgggwgfVgvEfuwgwwwWdwwwuvvwegvVfvwgwwxgxwgwwwwwuvxwvfvfwwhwwgxwxgWwwfvwwwgVwwwwwvuwvvggwgWufwgvgxwgwwwggWdvgxwvvxfxvVvuwwwvwwgxwwwwxwwvwhxwwxxxwxxxxxwwxwVwgvwwxwwwwewwwWfuvwxxhwvvwwwvxwwxggwwwxhwwxvwxffvwgfwgfvgxggwwwwwgfwwvggwfgwwwwwwvvwwgwwwggvvfwwwwgwwwwgwhwwgwwhwxwgwghwwwXfxwwxgwvxwgwxhwgwxxhxwgxwgxhxgxxxwhwwwxvvwwwfvxwxwxgwwwwwwvwwgwwgxgvxxwxwwwxwwwwxwxxgvxwwxxwxvxxgwwxwwwwwwxxhwwwxwwxxxgxwwvwwxxxxxxwwwhgwwxgWevhvwvwgwfwfEgvggfwxwxvxgwwxgxxgwwxgxgvvxxxwhwwxxwxxwwwfwwhvwxvwggfwwwfgwxvxxwvwwgwwwwxxxwwwwxxwxgxwwwwhvwwgxwxwwwxxwwwxwxwxgwxwwvxxwxfwwwxwxgxxwfwwxxwwxwwwvvfwxxwhwgwwhwxxxxxhwwwxxxxxwxwxxxwhvgwvwwwgwgwfvwwggvfvwxwxWhgxhwxwxwxhwwgxhwxgxxwwwwwxhgwwwwwwxvxwxwwwxvxwwxgxgwwhxxwwxxgwvxwgxxxwxvwwxxvwvxxxxxvxwxxxwhxxwxxxxxxvvvxxxxwxxxxhwwhwwxwwxxwhxwvwwvwwxwxwwwxxgwxxxugVvfvuggvfgUxwxvwwxwvgxgwwugvvgvxfgfwwxwwwwwwwxwwwvvfevwwvgwvwgvwwwxwxvgwgewvvvwvwvwwxgxgxxxwfwwwfVUgguwxffwwwwwggwwwxxggfwwwvwvwwgwwxvxxwxxwxwgwgvvvggwgwvwwwwwwxwxxwwwvxwwuwwxvxwxwxvwxgvvwuWfvvgvgvuwwVvvxwwwwxwxfwvgvvvvwvwvxxwwvwwwwwgxxxxxwgwwxwwgwwwwxgwxwxwxhxwfxxvwwwwxvvwwwhwwxwxWhxxwxvgggwwhwvxxxwwvxwwVwwwwvwwwhgwwgxwxxwwwwxxxxwxvxwvvvwfwwwxfwxxxxwwwwwwxwxxxwxxwwgefeughfvwwvWwwwwwwWwwxwxfgewwwwwwwgwxwwwwxwwxxxwwwgvvvgwwwwwwwwvwwgxxxwwvwvvwwwwxwhxwwgxwvwwxxhwfWVgVevwwvvwwhvwvwwwwvxgwxwvwgwvvvwwxxxxwwvwwvwfghwxwxwwwgwwxxxgwxxxwxwxxwwwwvwhwgxxwvwvxhhwxwgvwxwwxwwwuwwxxxxxwgwwwwwwwxwwxwxwxwvgxxwxwvvwwwxxwwxwxwxhxwwwwxwxwxxwwvwxwwwwwwgwxwwwwwxwxxwxxhwxgwwxwxxhxxwwxwxxxxxxxxxxdVefvvffvwwegFufvvwugegvgFfvwwgvuwvvvvwhuwgwvwvgwwfvvwwvwvwwgwufvfvggvVvuvvvugfguvvggwvwwvwuvftvgvfwvwxuwVvuwvwvgwxwwwwwVuwfgevvfvvVvefwgfvfwwvWwegwxvgvwwwggvwwwwfxvgwvxwxwwwwwvxgwwewwegvfwvwxvwwwwwwwwvhwvwwvvfwxgvwwvxwwwwxvvxwxwwwwwfvuwugufwvWuvuwveVfwfuvgfwuwwvgvffeuvwfwvhvwUvvwvgwgvxwwwwwvvwwgvwwwwwwwwffwxwwxxwfwwwggvvvwwwwwwwwwwfvwwgwwgwwwvwwwwwgfwwwvwgvvggwvvgvwggVwwwwwwgwwvxxxgwgvwwgggwhgvgwfwwwwwvvwwxgwwwwgwwwvwwggvwfvxgwvxggwwxwxwwwwvxwwwwwfvwugeuffvvgvdgwwgvfgwggfdgwwvgvwwgvvwvwwwgwwvWvwwwhwwgwvxgwwwffwwwwwewvwwwwwgwgwfWwhwxgxvwxvwgvvgwWvgxgwvggvwwwwwwxwvxwvvwwvgwvwwwwvwwhxvwwwxxhvxwwgvwgxwxwwgwwxwvxxxgxwxxwwgugvwwxvwvwxWfxxwwwwwvwwxwwwxwxxwwwvwwxvvvwwufvwggguvwxxgvwwvwvgwwvwguvwwwwwvgwwwwwwggvwgwwxwgwwwwwwwwvgwgwxwwvvgwwgvxvgwvwxWvvwwwhwxwxfwxgvxwwwwwwwwwwguhwvwwwhwwwwwgWfxxwwwwgxwxgwxgwwxwxxxwxgwxvvwxwvwwwxwxxwwxwgwwwwxwwwwvwwxsfvwgwfgfgfwfgVvgwfgvgfgVvwvgvvffgVvhwfgVvgwxwwxwfgffvwfwfffvfwvwvxvwvwwhvwwvwgwfffvfwfxwwugwfwvxwxgwwggwfvvvgU5vwxwxgwwwfU5vwwxgxwvxwwxwwwvvwvxwgwgwvxhwxwwwxxxfgVvwwfwvwwxvwfwwxwwvxwwvwvwwvwvxwxvhwgwgxwwgfffvhwwfffvgvwvggwwgwgvgwxgwfffvwvwxwwxxxgvvwvwgwuwhwwwxfwwwwwwxxfvwwwwWwwwxghwwVwwwfvvvwwgWwxhwvwwwWwwghwhwwxxfvggVfgvvxgvwxvwfwgvvwwwwgwxwwwwvvgwxxwxwwxxwvxvhgxhwwwgwwwwwfvvxxwWwxvwwfwxwWwxgwwwwxvxwwwhwxxxwxwgwwxwwwxxwwffvwfU5vwxwwgvwgU5vwwxhgwxxvxxwwxwwgwxwwwwwvwvxwxwgwxxggVffwvwvvxxfwfvwwwwgxwxwxvwvvwwxwwwwwwwvggwggwwgwxwwwvgwwwvxggwvwwfwgwwwwwgwwxxgxwwxwfwwwxfwwgwxvxwxxwwwwgwxvvwwxxwwwwvwwxvvwgxgwwwxwhhxwwggwwxfgVvwvwwvwxxvgwwgwgwgwwwvgwvxvxwxwwxwhwwgwwxwvwwxfvwxwWxwwvwxwWwxwwgwwgwwwwhwxwwwwxxwgwwhgxwxwgxwwhwxxvwwwxxxwwwgwwwvwggwwwwxwhgwwghwwwhwwxxwxxfgwwxwwhwwwxwhxghvwwxxfvwxwwxwxxvffvVfeefvvwvwgvffvgfvvgwvweufxfvwufevvxgwvvfwvwvwwwwgvfvvvvffwvgevvvvgvvfvfguwvvvwwwgvvffvvfwwwxwwgvwvvvvwwxxwwVvfVfvffuwgfewwfwxxgwxwvwwxwguwVfwvwwvwwwwwwgwhwxxxuwvwgvvwvwxwgwwvwxwgwwwwwwwgwvwwwxwxwwwwwvvgvgfwvWfwwwvwvgfvWvfggvwwwgwwvfgvfwfwgxwxgxvvvvvggvvwwwwwwvwwwwxggwvwwxxwvwwvxgxxwxvwwwwwwwxxwxwwwwvwxgwvwwvwwvvvwfwuwwwwwwfvwwwvhwvgwwgvxgfUfwfwwwvwxvxwvxwgwwwwxwwxwvwwgwwxwvvwwxwgwwxxvxwwwwwvxwwwwxwhwwwvwfwwwwwvwfveVfwffuwfgvewvvfwghwwwvwxwguwVgwvwgwxwwwwwwxwgxwxwvvvffuvwwwffxwwwwwvgggwhgUgvfvwvwgwwwxxvwxxwxvxwxgwvvvwwwwhwwwvwxwxwxwwgWwwxvwwhwwwxxwwhwwwxvwwwwhwwxhfxxxggewxwfwwwwgggwxxwxxwwwwvxwwwxwxuwvvfwvwgwxwwgvvvwghwwwxwwwxvwvwwwxwxxxvwwwxwwxwwwwwwxwfxwxxgwwwvwwwxwwwwxwwgxwgwwhwwxxgfwxxxghhexwwfwwwwxwggwxxxxxxwvwxwwxwwwxwwxwwwfwwwgwwvwxwwgwwxxwxwxwwxwvwwuxwwwwxwwwvwwfxwwwwwwwwwweuwwwgewfguwvwfvvwwwwwvwxwwwwvvwvvwwwwfvwwwwwxwxgwffvvvwgWfvvwwfuwwwvvwxwggwwgwwegfwwwwwfwwwgvwwwxwvwfvwwvgwvgfgegwwwwxwvwvvxwwwxwwvxvwgwwvwwwfwwwwgwwvgvxwxwxwwwwwwvfwwxvVwxwxwwgwwwwWgfevwwxwguewfugwxwwwgwxwxVwwwgwewwwwxwvwwxxwvgwwwxxwwwgvxwwwwwwxxvwwegxwwxwwuwgxgwwvfwwvfgwxwwvxwxuggwwgwfxwfwwwwfvgwwwwvwfhgvwwxwwwwxwwvxgwgfxxwwwxwwwwgfxwwwwvwwgxwvwwwwgwwvxgwvfwuwwgxwxwgvwwwwwxwvvwwgxwwwvxwwwvwvwgwwwvwggxxfgwvexxgwwxxwwwgwuwgwvxwxgwwwxwwwxxwwxxgxxwwxwgvvwxxxwwwwxwwwxxxxwwwwwgwvxwwxwwfwwwwwwxwgxxwwwwwwwwwwwxwfwvvwwwwwwwxvwxxxxwevwxwewwxwgwwwxxxfxvgfwxwxwwuwxxxwwgxxxwxwxvgvgwwwwxxxwwvwxxvxxwxxwwxwxvwggwwwwvwwgggvwgvwwwwwvgwwwwggvxfwgwxwVvwwVUwvvwwgvvxwwwvwwwwwwwwvfvwwwwwwwwwxgwwwwvwvwggwwvwwgwgvwwwvwgwgwxfwwvwxwwgfwgwwwgwwwwwwwgwxgfUgwwWugxxhghwwgwwxwxxwwwwvhwwvwvwxwwxwgxxxxwvgwwwgfwwwwwvxwwwxwwwwwxwgwwgwwwwwwwvvgwwwwwwwwwwwwwgwwwwwwxwwwgvvwvwwfvvwwwxxxwwxxwwwwgwxxwwxwwxwwhxfxwvwxwgvxxghxwfwwwvxhxgxwwwwgwwwwwvvwgwxwwxgwxwgxxwgwwxvxwgxwxxwxwxhwwwwvxwxggxwwxxwxgwwxxxgvwxwwwwwgxxxwwgwvvxwvxwxwwwgwwxwgwwwwwwwwwwwvVVgvxVvvhvxxxwgwxwwwxwvwwwwwwwwxwwwxwwvwwxvwxwxxwwwwxgwvwxxwwxwxwwwxxwwxxwwwwwxwwxxxwwwwxxwwxxwwxwwwwwwwvxxwxxxhwxxxwwwxxxwwxxxwxwwgwxxxgwwwwwwwvxwwwwxwxxxwhvxxwvgvhhwwxwxwwxwxwxxhxwxgwfxwxxxwwwxxhwxxwhwhwvwwxxxxxwxwwxwwwxxgwwxwvwwxxxwxxxxwxwfwxxgxwwxxxwxwxwwgwvwwxwxwxvvfefuwwwgxwvwgwfexwhfwwwwevuwfgfvxwwuvwvgvfvuwgwxvwwvwvuwvwvvwvwwwgwwwwwwwwxfwffwwwwvwwwwVwgwxgxwwwwxvfwvwvwfwwvvxvwfVfvffwvwxfgfwwgwxwgxxwfwvwwwwvwxwvgfwwghvxwwwxwwvwwwwwwwwwvvwwwxwgwxwhvwvgwwwwwvvwvgvggwvgwfgwwwwwwwxgwegfvvwvwxwgvvwwxwwvhwwxwwwwwvwwgvgxuwwwxwwwwxxvwfxxgwwgxgwgxgwxwxggxwwfhVvwvwwwxxwgfvwwwgvwwxxggvvwwxvgxxwwwwwwwwwwwgwuwxwvwwwxwwwwwxwwxwvwwwwxgwxxgwhwwwgwxgwwxwwvwggfwwxwgwwgfvwfxwxxxvffvwwgggwxgvwxwwwwwwfwfvvwwwgxwwevwwvxxxxwwvwvwwxwgwwhxhwvwxwxxwvgfvwvwwwxxvwxxgwxwggvvwxwgxwwgxvwgwwwwxxwwwwxwxgwwwwxxwwwgwwxwxxxxxxhxwxwxwxxxwgwwvXwwxwwwwxwvwwxwwxxhxxxxvghwwxgfwwvhxwxgxwwxxvwxxwwwxwwgxxwxxwxxxgwxxxxwwwwwwwxwxwhwgwxwxwhwwgwxxxwxxwxxwhwhwwxxwwwwhwgxxxxxwwwwvfwwvugvfwvgfwGefvuvwwvwVgvgwwwvwVfvVutvfuwwwxwgwxwfwvggwwvwgffxwwwwgwvggvvwgfwvgvwwwwvwwvfwfvwvggvvwwwwwvwvwVggxwvfvwWWegudvxwgxwgvhvwvvvwxwxxwwvwghwwxgwwwghvvvvwxgwgvgwvwggvfxwvwwgvwwwxwwwwwwvxgexxwvxgwwvwwxvwwwgwvwfwWwxvwwvuwgWuffxwwwwuwwxwgvgfvvgwfvwfuwwwxwgwwgwwfwxwgwxwfxwwvxxWxxvgxgvwfwvxwvxxwwwxwgwhwvxwvxxvxwwwvwvwwxwwwfwwgggwwwvxxvvwxhwwwwwxvwxgwxwwwwwxwxwwvwvxwwwwwwwxgvxxxxxwxwwxxwgxvwwwwwxvxwgwxxwgfhwxwwwgGevVvuwwwwxwwwxwgwwwwgwwgwxwwhwvxwwhwwwvwvwxwwvwwgwwwwxwwxggvxwwgwwxwxvwxwwwwwwwxwhwwwhwwwwvgvwxwxwwwvwxvwwvwwvxxwxwwwwxvxxwxwwxwwxwxgwwxgwwwhhwwwwwxvxwxwxwwuvwhwxxwxxvwvggVvugwwwwgwwwxwxxwwwwwxhwvxwgxxhwwwwwxwxxxgwxwgxxgxxxxxxwxwxwxwwwxwwwwwwhxwwhgxxwwvfgwwwgxxxwxxxxxwvwwxgwxwxwwwxxwvxxwxwxxwvwwxxxhwxwwgxwxwvwggwwvvvwVUwwwvwwwwwfwgvvwwvwwwvwvwxwfwgwfvwwgwVvuvxwwwfwwwvxwwvwfgvxwwwwwwwwwwwwwvwwwwwwvxgfvwfgwwwwwwwwxwwwvwwwvffUwxgxgxwwwwwgvxwxwwgwgwwwfewwxwwwwwxwxwwwwwwfvvxwwwwwwxwxwxwvwxwfwwwwxxxvvxwgwwwwwwwgwwvwvwwwwwwwwwvggwvwgwwwwwwgwwgwfvwvwwvxwwgwvxvxwxwxgxwwgwwwwwwwxwwwxwhxgvxxxwxwxwvwgwxwwwwgwhhvxhfwxwgxwxwwwwwwwwwvvwxxwwxfxxwhwvwxwxwwwwxxwhxwxwwwwxxxwwgwvxwhhvwxwwgxvwgxxwwxvxvwwwwvwVVwfhgwgwwwwwwvxwwgwvwgwwwVwexxwwwwwwvxxxxwwwwwgxwvwvxxfvwxwxwvxwxxvwwvxvvvxwwwxwxwxxxwvwxwwwwwwwxwxxxgwwwxwwxxwxwxxwxwwwxwwwwwwxxxxxwwxwwwwwwxwwwxwvxwwvvwwxxxwxwwwwwwwxwxwxvxxxvwvwxwhwwgwwwwvxwvgvwwxwwwhwxwgwwwwwwxxwxxxwxwxggwxwvwxwxwwgwxwwwwxxwxxhwwwgvwhxxwwxxwwwxxxvxwwvwxxxxxwxwwwxwwxwwxxwxwwgwwxwxwwxxvwugwxvvvvvffvwvgvwvvwwwxfwgwwevvevgwwvxvwwwfwwwwwgwxxUvfgveewfffwwfvfvwwwwxgwvwwwvfewfwegxwxwwwvwwwxwxxxUvuwVwffgwfwwewgwwwwwvwxwgfwvwfwvwxxwxwvxwxefvfguvwwvfwwxgvvwwvwwvwgwvwwvwvvxvwwwwwvxeffgvfwfffugwvwfefvwfvgxwwxwfVfgwwxwwwwxwWgfwgwwxxwxVguvvfwwgwwgwwvwwwxxhwwwwxwwgwvwhwvxhwwwvwwwwwwwhwwgwwxwUVfvffvwgwwwwwwWfvvwwwgwvwwgwvgwwwwvwwxgwwvwwwwwwwwxVvfwfgvwwwgxuwwvvwwxxgwwvwgwwgwwwwxwvwxxvgvvxwwwxxefvefvevvwvwvwwugfwwwfwwghwvgvfwwwxgvvxxgwwxUgevvfwvvwvwwgwwwwvwwwwwxxwwwwwgwwxwvxwxwwfvxxwwxwwwfgvvWwfxggvhxwwgwuxwvxvwxhxhwxgwvwwwwwwxgxwwwxxwwxwxxxgwuwgwvwwwwxxxwvwwwxxxxwxgwvgxwxwxxwxxwxxwfguuvwwwwwwwwwffgvwwwgwwwwvwwvxwwvxwwxxwxxwfvvgwwwwwwxwwwwvvgxxwwxfwxwgwwxwxxxwhxgxwxhwVvwvwwwvgxwwewvgwvwwwvwhvwwhwhxwxxxwwxxwxwxwwvfwvgwwwgWfwxgwwgwgwwwwxxwxwwwxwwwuVvwegvgeffwVffefwwgfexegfwfgWwfvvgtwuvvgewvWvwvwwfwwewfwvvegfffdfwwfffwvwvwgggwggwwuvwwfwevfgfwwwwwvgvwwfwwwwwxxUufwvwuufvvffvwfgffwvwguvwwgvwvgwvwwwxwxwwfugwxwwvwuwwgwdvvwwwfvwwfwwhggwxggwwwwgwwwvxvwwwgwwwgwwwgwwwxwwwdVfwwuvveVfvvufvfffwwwwevuwwvvwvguwgvvfvwvxwxWfvwxwwwvwwwwwuffwvwvwwggwwuwhwgwfgvvgwwwxgxwvgwvwvvwxwxghvwvvwXhwxwwhweffvwfugVfwvwfwvffevwgwfvWewwwgfwwwwwxxhvgvwvwwwxwxwvwwgvxgwxwgvvwwwgwfwvvgvwwhwfwwwwwwxwwxwwwgwxwwwwgxwwxwwvwgxxxfvvfuVfffwewvwvffwgwfvWwVvvxuwvwwvwwxfwwwwvvwxxwwxwvwxxvvvuwvffWvuwwwfvfgwxvwvhxxxwwwwwwwwwhfggwwwxwXhwwxXghwwtwfwvwwwfvwwvwfuwwxwxwhwwwwwwwvgwxhwwwwwwggwxwfwxxwwvvwwwwwwgguwwwwxwgwwxwxxwxwwwwwwxwxxxxwvgvwhhwuwgvvvuwvfvwwuwfuvwwwwvgvwfvwgvwwxwwwwwwgvwwwwwvwwwwwwvwwwgwWwvxwvwwwwwxwwgfwxxwwwwgwvwhxvxwwgwgvxxwwxfwvwwwwwwwwwwwfgwwwvwwxvvvwwvwgwwhwgxwwxwwwwggvxxwwxxxvwwwwwwwxwgwxwgwxxwwwxwfwwwwxwwhfwvfwvfvvwfwuuwgvvxfgfwwwwgwwwxwwwwggwxwwwwgwvWvfgfwvvgWvvwwhhwfvfwwwhwwvxhvwwxxvwwwxxxvgxwwwxvwvvvwfvggfwwxwfvwwwhwwwwwwwxwwxwwgxxxwwwwwgwwgwwwvwxvwxhwxwgxxwvxwxwxxwxxvwwwwvuwfvwgwwwgfvwwwwUexwfwwwwwgwgwwwwwggwwwxwxwhxxwwxwhgwfwwwwwwhgwwxxWwwwxggwxxwwxxxxxxxgxxwwxwwfwwxewwwVvwxvWwwfwwwgwwfvwvwfwwwgwxxwvwwwwxwxwwxwwwwwwwxUwgwgxxgxwwwxxxxwxxxwuwwgvffvfwvvvVgvwhwvfwwwhgxwwwxxxwwwwwxwxwwwxwWwfwvgwwewfwwxwxwwgwxwhxwwxwxgfxwxhxxxhwwwhxxwwwwwwwwgwwwxwwwxxwwxwwxxwxxxhwxxxwggwwwwwgwxwwhxxxwxvxwxxwwxwxxwwwguvwwvxwgwwwfwgxwxuwxwwxwwwwwxxxxxwwwxwwxxwhwvwxgxhwxfghwxxxxXgwwxfwxgxwxxwwxxwxxwxxwhxwvhwwwwxxxxfwwxwxxxxxxwxwwwwwwwxxxwxwwwhxxxxxufvvvvwfffgWWvvffvfwwwWWewgwxvvvwvwfwwwvwwfguxwwwwwvwwfffvVWvvvgvwwwwVWuuwwgwvwvxvwvvwwwvgwwwvwwwwwwwhvwxfvwwwwwfWWfvvwxvgwwwwwwvwwxwwvvxwffwwvwwwgwwwvgwwxvxVWvgwfwwvwvwwwwxwwvwvwwwvwwwvwwwwwvxxxwxwwfvwwvwwffwgvvwfguuvwwwvgwhwwgwwgvvvwgwxgwwgggwwgvwwxgwhvwwxvwxwgwxwxgwwxhwvwxhxvwwwwfwvwwxwxxwgwhwwwwhwggxxwwvggwfvwwwvwhwwwwvwwvgwvwfgvwgwvfvvhvxwwgwwwwwwgwwgvwwwxwxwwwwxwwwwwxgvwwxfwvwwggwwxwwwxxxvwwwfvffvvvfWWuvwwwvgvwxvwfwvhwhggeuvgwwwwwwwwwwxxwxWWevwgvgwvxxwfxvwxxwhwwxvwwwgvfwwwwxxxwwwwxwwxfgwwwxwxxwxvwvwvxwwwxxwhxwhwwxwwwvxwxwwwwvwxwwxwhwwgwwwvwvwwwwhwxfxwxwgwwvwxwxxxwhgxwvwwxxwwgguuvvwwvwwxwwwwwxggwxgwwxwwwhwwwxwvgwwxwxwxxxwwwvwxvwxvhwhxvwhxvwwxwhwwwwgwvxxvxwxwxwxwvwgxwwxxwwwwwxxxwwwvwxwgxwwwxwwwwwwwxxxxxwxwwwxfwwxxwgvwxwxwvwxxwwghwxggwxgwxgwwwwgvxewvwvfwgwwvwvwvwwwwfvvvfwwgvwvwvxwvwwvwxgvfwvfwvgwxwfvwgvwxwvvwwwwWVevuVfvvfwvwvwwwvwvgwwwgwwxfvwwvxxwwvwwwgfgwvwvwuuwwevwwwwwwwwwxwxvwvwwwwvvwfwwwxvfwvwwvwwvwwvwwwwwwxwwwwwwvwwvvfgwwwWfuvuVwvfwwwvvwwwwwwvwwxvfwwwvwgvwwwxxxwwhwgwwwwwwvxwwwvvwvwxwwwwwxwwwwxwwxxhwxxwfwwwvuwxguvvwguvwfgxwwwvvwwwwwwvwwwwwwwwvhhwwwgwwwvwvxwxwwvvwgvwwxxwwhxwxxhwwwwwwvvwvwxwvvwwwgUvgWvuwvfvwwwvxwwxwwwwwwwgwwwwhfwgxxxvwwwwwvwwhwwxwwwwwwwvwwwgxgwxwvwwwxwwxwwxxwwvwwwwwxwwwwwxxxxwxxxxxxxhwwwwwwwwxxwxwxxhwwwxxxxxwwxvwwwwwxwwwwvvgvxwwwwwwwwvxwxxwwxwwwwxgvxwwwxxxghwxwxwwwxwwwhwwxvwxgxwwwwxwwwwxwvvxxhxxwxxxwwxxxwwxxhxwwxwwwxxxwxxwwxwwxxufwwgwwxfvuwgfueVVfveewefvwvwwTvwwwfvvwvuefevwwvvuwfwwwxfffvvefufvwvfvggfvvwWVweVfwgvvfVgVweWgwfwwvwvvfgWvwgggWxvwwwgeevwwgfvwvvgwdVffvwwgwvvwvxvwfggfxwwxwfvvwxwhwwxwwfwwggvgguwwwxxgggvgWwgwwvxwwWvWvwfvWwwxwxwWwwwwwgwwwwxvxeffwwgvwgufwgweEUvgggwfffgwwwgvggwwxvwwvVgfvvwwxfvvwwwwvVVxfgwfgwwgvgwWWfxxhgfwWfgevgvVvwgvwwghwwwfghxvwvhwxgvfWfvfvvwgWvgwgwwVVfeggwgvfwgfVwwfwvgxwvwwxwxwfggfggwgfwwuvwggwhwwxgwwwwgxfgwwgxvxgwwggvfgwwxwwwxwxwxwxwwghwxwfvwwgwwwwwgwwwgvvgvvgfffvfvwfvvwvvxgwewxvwwgwxxggfgwxewwwvwwhwwgvwvwgvwwgwgwVVgghgwWwvgwgxuvwvwgvgwwxwhwggwwwehxwGgwwwwufwfvwwgvgwwxwvwfwwxwvxwxwwvwxwwwxxxgwxwwgwghwxwwwgwwwwwwwwwgxwxwVwwwfwvvxvwwgwgxxxwwxxwxwwffwwwwwxwvvwvwgwWwwfwwvvvwwxffxwxwwxwwwwwwvhvgvvvwxwvwwggwwxwwwxgxWvwGhhvwvxwxwwwgxxgvvxxggvwxwWwxwwwwwwwgvwwwwwwxwwwwwgwgwwwwwvwwwwvxwxwxwwgwwwxwgwvwxwwvxwwxhwwwvwgxghxwwwxvwwxxhxwxvggwwwwwhwwvwvguwwvgfwvwwWguvgwwwwwxvwwwwegfwWgewwwwwgWguvwwwwxvgfwWguvwvvgwwWguvwwwwwgwevWwwwvwwxwxwwwvwwvwvvwwxfwwwgxwvvvxgwwwWguvwwwwxwwwwwgvwxxgWguvgwwwxxwwwwhwwwvxwwwwwwxwvxwwxxwwvgwwWguvfwwwwwwwvwvwwuvvwgwwvwwwwwvwwxgwguwwgwwxhwwxxwwwwxwgxwhwwwwwxgwwwXwwxxwwwxwxxwvwwxXhwxxwxxvwwwwvvvxvxuvvwgwwwewwwxwwxwwwxwwwgwwgwwwxwxxxwxwxwxwwwwwwgwwwwwgXwxwwxxwxxwxvxxwxwwegfwgweWguvwwwwvwwxxwwwxxWguwwwwxxxwwwwwwxxxWgevWwwwwwwwwwwwwwwwwwwwxgwxwwxhwxxxxwwwwwvwwxvwwxxwxgwwgxxwxwxxgwxxxxgwwxxwxxwwwxwwgwwxwxwwwgwgxwvwwvxwwxxxxxxxwwxwWguwwwwvxwuwwwwxwxwxwwwwxgwxxxwxxxxxxxwxwvwwwxwwgvwxgwwxXhwxxxwxwwxhwwxxwxwxxxxxwwxxwwxxxwhwwxxwxwxwxwxxxxxxwwxwxwxwwvxxwgwxxwxxwxwwwxxwwwxwwxxvxewuwwwwwgwfwwfvvwxwgwfvvvgwwvvwwwwffvvwwvwgwwfwfxwvffvvwwwfgfwwxwwgwwwfffwwgWvxwevvggwwxxxfwgwvfvwwwwxuegwgvwwwwwwvwwvwwwxxwwwxwuwvwhwxwxfvWwvxxwwwwxvvwwxwwvwwwwuwwwgwwwwxwvxwxxxwwwvwwxwwwvvwgwvvVfwwxgvwvwxwvvwwwwhfvvxwvwwwvwwwwwwwwwwwwwwgvwwhwWwwwwxgwwyxxxxfwvfwvvgwwxwfufwwvgwwvwwwwwfxwwgwwwwwxwxgwwwwxwwwxxxfvwwwwgwxxwxwwxwxvvwxwwgfUwgffvgwwwfffxwgvwwwwwwgvxxwwwwhwxwxwgvUvwfwwgwxfvVvxghxxxwwwwwwwxxwvxwwxxwxhwxwwwwxwwwxwwwwwwwwwwvhwxxxwwwxwxxvwwxwwxwwhwvxwwxxwxfvwwwwvwxxxxxxxwxxwvwwwwwvwwwwwwxwwwwvxwxwwwwwwwgxxwwgvwwxwwxWwwgxwwwwgvwxxxxxxxxgxxwwwxwwwxxxwwwwxxwxvwwwwwxxwxwxwwxwwxwxxxxxxxxuvgwgwvwfwwgggfvvwwwgfggfwvvwwvwwwvwwwwwwvvfwgwwwwwwvwfwvwvwwwwggvwfWewvgwwggfhwwxfgwgvwwxhxwwvwweuggvvwxwwgwxxwxwxwxxgvwgwwgWguwwgfgggwwwgvwwgwgwvxggwgwgwUgvvwxwwgwwwwwxwwvwwwwvwwwvwwgwvwwwwxwwwwwhwwvwwwxxhwxwwwwwwgwwwwghgwxvgvwgvwwVvfwfwwwxgwwwwgwwwxgeuvwwwxxwvWxwwwgwwvxwghfvwwxwwgwwwwhggvggvwwwxwxxwxxwwxxvvxxxxwwwwwWwvxxVvuwwwwgvwwwxwwwwwxwxxwWxwwxwxxxxwhgwxxgwwxxxwxwwwwgwwxwvgwxwxxwwwxwwxwhxwxwwxxvgwwgwwWguvvxfwwgwgvgwwwgwwwwxgwwgwUgwwwwxxxwxwxwwgfwwvwwwwwwhwwgwxwwxwwhxgwhwvxgwwwvggwxxwxhwwxwxxwgwwgxwwgwgxwvwxwgwxwwxhwxxxwxxwxfwwwwwxwxwxwwvwxwhwwhwvxwxxwxxxxwxxxxxxxxxxwwggxwwxwwvwwwwxhwwgwwwwwwwwhxxwwwwwxwxxxhwxwxgvwwxwgxxxwwwwxxwghwxwxxxxwwwwgwxwwxxxxhwwxxxxxwwwwwxwwwwvwwxxwxxxxxxwxwwxwhxxxxvwwxhxwwwwxhxxxxxwufveefvevwWvwwvwwwwvxgwwwvvvffvvggwwvwwwwwwwgwwwwwwwxfwvxffevgfvevgvwwwwxwwxwwwwfwvwfwwwwWggvxwxxwwxxxxwvvvwfffwwvvvvwwwgwwwwxwwuwwwwwwgwwwxwgwwwwwffggwvwwxwwxwwxwvwgfwxwhxxwhxxxwxwvgvwfffwfgwwfvvwwfggwwwvvwxgvwfvvwvvwgwwwwwwVgwwfwwwxwwwwwwwfgwwgwhwwwwxwfxxxwgxwwwwwwwwxhxvxxxxuwwfuvwwwwwwWfwwwwwwxwfwwgvgwwwgfwwxwwxwwwxwvxwhxxgwwwgwgxwgwvxxxxwwfwvwvwwgxxwxxxewwvVuvvgwwwvgwwgwwwwvwwhxxwfegwvuhxfwwxwxwxxxxgffwegfgwggwwwwwwxxwxxxhwwgwwwgxwxxgwxwxxwfgwvwgwxgwwwwwwxwwwxwvxvxxxwxxxxxxxwwxwWfwfwvgxwxwwwxwxxwwxhxxxwwwwxxxxwwxwvwwvwwwwwwvxfvwxwwxwwwwvgwwwwxxwxwwwwwwwwxxywwwffwwvwxgxwwxwxwxxwwwgvxwvxwwwxfwxvwwwwxwwxwxwwwwwwwxxxxxwxxwwxxxwxxxxxwwwxwwwwwxwxxxxhwxwwxxxxwxwxwwxuvvwwwwvwwwWffwfwwwwuvwffwwwwxwwvwvvvvfgvwwwwfwfvvvwwwwxwgvgVewWgwgwwwWgwvvxwxwwwwvhgweevgwgwwwxgwxwwxvwwxwggwvwxvvwwwwwfvwwxwwxwwWvwfuvwwwgwxgwxxwwwwwvwvwwwwvwwvvwwwwxxxwwwwgwwxvxwxwxxwvvvwWgvgVewwwgvwwgvwgXuvwwwvwvwweevvwvghhwvwwgvwxwwwXgwwwxxgwvwwhxwwhvxXhwxxwhwxxwhxxxxxwxxhgvwwwwuuvvvwwwwxvvwwwgwwwwgxwgwvhwuwhxvwxwwwwwwwwwwwwxwgwwwxwgxxxxwxgfhvwxvwwwvxxwxxwwwxvwguvwgeuvvgVuwgvwvxwfvfwwwxwwwwwwgfewwwxxxwwxxxgfvwXgwfvfgXhwwwxhxwvgwwxwxhhvxwxwwxwxwgwwvwvfwwwfwwwwxwwvxgxwwwxxgxxxxxfwwvwwwxxwhxxwgxxwxwwxwxwwwwwwwvwwwfvvwxwwgvwwwwxwwwxxxwhwghwxwxhwhwwxxxxhxxxwxxwgwwwvwwwwwwxwxwwxxwwwwxxwxwwgxwwwxwwxvwwwxxwtgvgggwvgfwfwwwfWWwwwwwGfvwwfvvwfVevwwwwGVevgwvwwwxxwfWWwwwvxGgvvwwwfgvgwwwwwwwwGVevwwgxwwvvwxwgwwxxwwwxxwgfgwfwwwwwwgwGgvgwwwxwgxwxwwhwwwvwxwwwwxwxxwwwwxxwwGgfgwwwwwvvxwwwwwxxwxwxwvvwvwwwwxwxhvwwwvggwwwwxfwwfuuwgwxwghvwwwWwvwgVeffwwwwwvxwwwxwXwwwvwwwxxxwwwwwhgxvwWwwwxwghxhwhwxggvvvwwWwwwwwwhwwwwgxhwxhxxwfwwwfuuxvwvgvhgwwwWwwwvgxxwhwxgwxwwwgxxxwwxwwxxgwgxxxwwwxWgwwwvwwhwwwwxgggwxwwxwhwwhxwwwxwxxwxwwwvfvvwgVefwwwvwGVevgwvwwwxgxxwgvvwwwwwwwxwwgwwgxwxwwwwwGVevwxwwwwwwwwgwwxwgxxwwgwwxwxwgwwxxwwwxxwwxwxwwwwwgwxwwwwgwwwwxwxhxwwwwwwwwwxhgxxhwwwwwxwvwwwwwwvwvxwxxhxgwwwwwxwvwwwxwxxxxwwfVevfwwwwxwgwWwwwvgwwhwwgwwxwxwxxxwxxxhxxwgwxxvvwwXwwwwxwxwxwwhxwwhxwwwvxhhxwwxwwwxxxwxwwvxwwwwvxxvwxxhwhwwwwwwwxxxxxwwwwwxwxxwxwxxwxwxwxxwxxwwwwgwwwwxwxxwxxwxxugwwvfgwvwwguvvwvwwwvwgvfwvvwuwwgwgfvvxvwwwvwwvuwvwwxwwwvwgftggwxvwwwwwufwuwwgxwwwvfwwwgwwwwxgwwwvxxwxwxgwwvfvvwvwvwvfwvtgvwwwvwWwxvuwwvwwwggvxwuxwwwwhxwwwwwgvvwwwwWwwwfwxxwwgwvuwwxwwxxgwwwwwxhwwvwwwfguuwwgwwwvfvwufwuwvwvwvwggwwvvwwvvxgvgwwvwwwuwvwwvwxxwvwwxwwwwwwwxwwwxwwwgwvvvhwxwgxwhwxhxwxwwwfwwfuwwwwhxfwwwtwvwwvwvuwwgwxwwxxwwwwwwXwgxfwwwgvwwwwxvwwwwwwXxwgxwwxgwwwwvwfwxxxxxxgwwxwwwwxvwvwwduwvwwwwwwwggfvtwvwwwhvfgfwfvwvxwwwxwwwxxwWwwwvgvwwwwwwwwWwwwhwwxwxvwwhwwwgwxvwwxwxwwxwxwhfxwwvwxwxwwhwwwxxwxhxwwwwwwwwwxxwxwxxxwwwwwxxgwwwwwxhwwwwwwwwxxxxxwwwxgxhxxxxwxwxxxwxxhwwwfwwvwwxgwwwwwwxxwxwwwwwvwwxwwwwxxxvxwxxxvxwhxxgwwwwwhwwgwvwwwwxxxwxwwwwwwxxhwwxxxwxwwwwwwxwwxwwwxxhwxxxwxwwxwxxwxxxwxxxwwhwgwwxxwxtvfvggvwgwwvvwwvwwfvwwvwwwvvweuvwwwewwffvuwvwuvwwwwwvggvwfwfvwwwwvvfvwgfwvwwwwwwwffduvwwdfwvwggwvwvwwwwwvvvfvwwwwwvgwxvuxfwuvxwxwuwxwwvuwwwvvwwvwxwvwxxwwgvvwuwgwwwgvwwvwwwxwwwvvvwwwxvwwwwxwvwxvwhvwwwwwwvvwvwwwwwwwufVgvwvwwwwvwwwegfdwwwwdfwvwwwvfgvvfwvwwvwwwvvwwwxwwwwgggwvwwwxwwgwxvwwgwwwwwwwwwgxvwgwxwuvvvvvwwvdvxwvwwgwwwvvwwwwuwwwvvwwvgwvxwwuwxwwwxwvgxxwwwwwxwxhwwwwxxgwxwwwwwxxwxwwwwwwwwxvxwfwvvwwwwwwwwvwwwwwwwwxwUvvvwWgvuvxwxvgffvwvxwxxxgvfwvfhwwxxgxvxwwgxxwxvvvvwwwwvwwxwxwwwwgwxxxxwxwxwwwgxwwwxwwwwgwhxwxxwwwwvwwwxxwhwxxwwhxwvwwwwxwxxwwxwwwxwwxwvwxxxxxwxwxwwwxxxxwvwfwwvfxwwvgwwvwvxxwxvwvxwwwxwvwxwwxxxwxwwwwxxxxxwwwWwwxuwxvxwwxwwxxwwwxwwwwxxxwvwfwhxxgwwwwwwwwxxwwxxwwwwxwwxxwwwwxwxwWxwvxxwxwxwwxxwxwwxvvwffVvwwwxgfvvwwvwwvfwwwwwvvvwwwgfVfwwwwVvwvgvwfgWwwwgwwwwwwwgwvwfwvfuwvwwwgvgxvwwxwwwwwgwwewwwvwfwwwwwwwgwwgxwwwwwgvxwVgwwwhwvwvvwvWwfvwwfuwvwwwxwvWvgxgvwwwwgvwwWxwwfwwfWwwwwvguwvwvxwwwwhwxwwwwwwwwvwwwxvwfwxxwgwxwwgwwgfvwwwwVfwvfwvfvgwguwvgwvwVwgwwwguwvwvffwwwgggwwwwWwwwxxxwhwgwwwwggxwgxgxwhxwwhwwwwwxgxwhwwxxwxwxwwwghwwWwxwwxvwwxvxwwwwwwxwvwgwwwwvwgwvvgwxwXwwwwvwwwxxxwxxxhwwwxwxxhxwgxghhwwwvwwwxxwvvxwwgwfvwwxwvwwwwwwgwwwvwwwxggwvgvgwwxwwvwwwwwxhwwwxwwwwvwwxwwwxxwxxwwwgwxwxwwwwwwwghwwgxxxwxwwwxxwwwwwxwwwhxxxwwwwwxxxxwwxwwwwxwwwxxwxxxxwhwxwwwxxxwwwxwwwwxxxwggwvxwwwwxwhvwwxxwvwwwwgvwwwwwxwwwwwxwxwxxxwxwxwxxwwhwwxxwxxwxwxxwxgwwwxhxwxwxwxwwwxxwwxxxxwwxwwwxxwwxxwxxxwxxxwxxwxxxwxwwxwwxxwwwxwxxxwuffwevfwwwwgufvfwvgfwgWuvwvfewfgefvvwgvwfeefwgffwfvewgvewfvwvgwwvgvwwwvgwvwxwwfeefffwggewgwwwuegvgwvwgwwxVfugVggwwwvgvvgfgwwwwvwwwwxefvwfwwwwgwxwgvwgwwwvwxxwxuwwfwgxwwwvgxVwuwwwwwwwwwwfgfvvgwgxgxvwwxwwggwgxeefvwgvwwgfgwvgfgwwwwxvwxhwxVVewfvfwwwvgwwxfvvwwwwwwxwxhwweggxwfwWwxuwxgwwxwwwwwwxhwvvggwgwwxxxhwvwhwxwhvhxwUVVwewvwguvwxwfgfwgwgwvvwxxgfevvfwgvwwwWwwggfvvwwgxxvgwgvwggwwxwwwxxxxxwwwwgwxxxwxwxwwwwwhwwgghwhwxwWwwwggxwwwWwwwvvwwgfwvxvwwwwfgvwvwvwxwgeegwegwvgwwxvxvvwwwhwwwxwwvwwuuwvxxwwgxfvvwxgwwwhwffggfwvhwxwgWgvxwxwxwgwvxwuwwvvvwxfwwwxgvwwwwwgwwxgwwwwwvhxwwwxxwwwxwwwxxxxxwvwvvxwwwxwxuxwwwwxxxwwwgwxxwwxxxvvwwxvgwevwwwwhwvgvwwwwwwxxwvfwxwwwwwxwwgvwwwwxwwwgwvvwxwwhwwvhhwwhxwwwgWgwgwxwxwwxwxxwxxgfwxfvwwwxwwxxwvwxwwwvxxwwxvwwxwwxxwwwwwxwwxxwxvwwxxwwxwxxxxxwwwwwxwwwxxwuvwewvevwwfeUwfvwwvxfefeuuvvvgdVwvwfwgvvwgfUTvuvgvgwfwvwvvwgvvgfvdvefwwvevvwfvwwvvwWWvvwefvwfwWgwwvgeuVwfuwhxwgvwwvfuvfeffUwUufxfVfevvwfuvvvhvwgfUgfvvwwwwvwwgvVtuxWvwgvwwgwwwffgfvvgvwwvwwwgfxvfggvwxwwxwvvwwuwwwwxwxwvxgwwwvxwwuvwwWuvefwvevwwGvvfwvwTvuvvfugvdVweuuwfwwggvveevwvfvwvfwewwwhvwwwvwwwwwwvwxwwwwwwggvwxWhvvxwwfwwwgwxwvwvwwhxvgwvwwvvwwvvwgwvwvwgwguwwwwwfuxgggwwwwvvxwwxwxwgfVevhfwgwwggfVwgwvvwvxvwwxxwwwvwwwwgwxwghgxwwxhwgwvxxfhwvwfxfwhxgwfgvwwwwwwwvguwevvwVvvvwwgggwwVguwgwvwwgfvxwxggxxxxwxwwfgvwwwwwwwVvwgfwGwwxxvxwxhwwwxhxwxxxxxwxwxwvvvxwxgwvxgvwwwvwwxgxwwwwwgxwwhvwwwwxxgxwggxgwxvfwwwxxwvxwwvwwWVwxxvvwxxwxgwxwwwxwwxwwxwgvwwuvvwggwwvwxuvwwvvhgwwwvgwwwgwwwwxxxvwwwwxxxxvwgvwvxhhwWwwgwHxugxvwxwxxxwxhwxwwwxxwxwwwxwwxwwwvwxxwwwwgvwwwwwxwwwwwwwwwwwxwwxvwvvwxxwwxwwwwwvxwvwwxvxxwxwwwwwhwxwwwxxwxxvwwwxgwvvfwfgvvwgxvwwwfwefvwwgwwwwwvvwwugfwgwvvwwfvvwwggggvvxwwuvwwggvwwwwgvwwwwwxvhwwwvwwvxvwwwxwxgwxwwxwwgxfwgwwvwwvwwgwwwghwvvwfwgwwffwwwwhxxxwwwghwfxvwfwwhwwxwwwwgwvwxwwxxxxxhwwwwwggwwgvwwwwgvwxvvwwfwvgwwvgwwvufvwufvwvxwxgfwwgxwwwgvwhxwwxwxwwwwvwwwxwxxhxwgwgwwxwxxhwxwxxwxxxxxxxwwwfwwwgfwvvwwwwggwfwwwwwwxxwwvxhxwgwxwwwwwwwxxwwxwwxwfwwxxwxhxvwxwxxhxxwxxxxxwxxhwxwwwwwuggwvvwwvwvwwxwwvwvwwwwwwwxwwwwwxxxxxwwvvxwxwwwvxxwwwxxwxxwxwwxwxwxwxxwxxxxxxwxwwwwwfwxxxxwwwxxwxwxxwxxwxwwwxwxvxwxhwwwxxxxwxwgwxwxgwuvvwwxwwxxwvwwwwxwxxxwxxwwxxwxxxxxwwwwxwxxxxwxxwwwxxwwxxwxxwwxwwwgwxwxhwwwxwxwwxwwxxwhwxxxxwwxxxxwxxugwefffeuvwVgevwwwvffxwgvwwgwVvvvfeuwwffvfwwguvwvwfxwvgvwWfuvgvfvwffvvwvhffvfwvxwfwuwvweffvfwvwgwfvgwvwwgwwxvxwvfuvwefevgwgwvwwgwwwwwvwwwwwfvwvvwwvwwwwxwxxwvwvfgfwfvwgwgvgwwwgvwwfwwwwfwuwwvwwwxxxvwwggxweffwUVewwwvwfwfvwVfvwvvgwwwvwwgfvwgvwvwwwwwvwwwgwwwwwwvgfwggfwwgehwfwvgxwxwwwxwwwwghvvgwwxwwwwvwwgXvgwhwvUgfVfffvffwwgfvVwhwwWvgwwwfvvfvvvwwwwxxwwwwwvwugvvxvwxvwwwgwvWwxwwvgwgwxwwgwxgxwgxwwwgwxwgwwgxwwwwgwwvvwvvVfuvvwwxfwfwwwgvggwvwxhvwgvgfgvwwvwwgwgwgxxwwxwxxwwwwwegfvvwvgvxwgwwxwgwwgwWXvwvggwxgxxwvwvXxvxhxwxuvfvggwwwxvwgwwuxxxxwwxxwfwwgvuwwxxwwxxxxxxxwwvwvgwgWwwgxwxwwxxwhxwwxvwwfxxxwwxhwxwxvwvfwggfvwwggwvwwwwggwwwgwwvwfwwxwfvxxwwwwwxvwwvhvVwgwwwxggwwxxwxWwwxwwwfwwwwwwwXwwwwwwwwwwgwxxwuwwxwwwwwwwwwwxwxxwwhxwwwwwwwwwwxgwxxxxwwwwwwhwwwxwxwwxxwgxwwxwwxwxwxxtfgwvfgfevugWfduvwgwvwwwgfdvwwwvwvfWffuwwwwwuwvwwwwxwggffwwuwVfduwgwwvwgwwwwwwwwwvwVffuwvvwvwwwwwvwvwwvxwvgfwVffuwxwxwwuwvwwvwgvxwwwgvwwwwwwwxwwwvxwwwxwxxwWffufwwwwxwwgvxvxxwwwwwwuxwxxwwwwwxwwwwxwxwwwvvvvwwgfdvwwwvgvwwvwwwvwwgvfvuwvwvwxwwwevuwgvfvvwwwxxvwwwwwwwwwwgwwwxwwhvfvxxxwvwwwwwvwhxwgfvwxwgwwxuwvwvvwwwwwwwevuwgfvwwxwxwwgvwvwwxwxxwwuwwgwxwgwxxxxwxvwxxgwgvfvxxxwwwwwwxgvxwxwwwhxwwwgwwwvwefuwVfduwwvwwwggfdvwwwxwwwwwwwwvxwxwwwwwvxwxwxwWfduwwwgwgwwxxwxwwxxwwvxwwwwwxxwwwxxxxxwwxwwxwvwwgwwwwxwxgwwwxwwwgvwxxwwwxwxwxwxxgxxwxwxwwwgwwxxxwxxwxwgwwwwgvwwwwwwwwxwxwwxwwwgfdvwwwwwwxxxgwwwhvfvwxxwvvvwwwxvwwxwwxwwwwwwxvwwwxxwwxxgvfvwxwxxxwwxxwwgwwgwwwgxwwvwvwwwvhwwwxwwwxwgwxxwxgwwwwxxwwxxxxwxxwwxwwwwwxxwxwvwxwwwxwxxxwxwewvwggwwvwwgVgfwwgwgvgvhvgwWwfvWwVwwgwwwvvwvvgWwwwwwxwwwwwggTwwgfwfffwwwwxuvWgwvwggggwwwggfgwuwwwwwvwgghxxhxwfwGgfvvhwvvxvxvggFgwwwxgxvwwwwxvwwwwwWwxxwvwwgwxwgvwwgewgwvwwvxggxvwhgxwuwwxwwxxwwwxwxhwwgwwwwwgwvggFwvwgWvWwvwvuvwgwGgvwfwWvvwhwuhwxfwvwwWwvwgwwwwhwwwwwwwwvwffvwwxwxwwwvgxgwfwwwgwgwxxwwwwwwwwwhxgwwxwvfwgwGwfgfwuxvwvwgwvgwGwvwwhgxwhgxxgwwwwxgwvxwwguwwwffwwggvwwwxwwwwwxxxxgxwwxwwwwxxvxxgxwxxwvvgFgevwxwwvwwgvgwFgwxxvxwwwvxwvwwwwxwwxwxxxwwwvfvwgggwxwwxgwvvwwhhhxxwwwwxwvgvxwwxxwxuwwhwhxxwwwwvwwuwwwwwxwwwwxwwwwwxvxxxxxwxwxgxxxxwwwwwwgwwwwhwxwxhwxwvxwxvxwwxxxhxxwxwgwfVwfgwwxwwwvvwwwWgxwwxwxfwxwwgxwwwxwxxhwxgwwxxwwgwxvggwwwwwwwwxxxwxxxwxwwxwwgxwxwxwwxxwxwwxxxxxxwuwwxxxxwxwwwwwvwxwxxwxxxwwwxwwwwxwwwwxwxxwxxwwwwxxxxxxwwuwvwvuvwwwvwwwvvuxwfvwwwwvvuwfwfwwwwwwugfwwwgwwwxvvuwguvvvwwwggvgggxvxevUwUwvfwgxgwwwvwwxvvwwxxfwgfwfwwwwwwwvwwwvwwwwwxwwvvwgvwwwwxxxgxvxwwwxxwxwgfwfwwwwwwwwxwwwxxgvwwvwvwwwxwvwwwwwwwwfwwwvwwwwwwgwvwevvxwwvgwwwwxwvgvfvvwwxwffwfvwwwgxwwxwwgfwhwwwxwwxxwwxvwwxwfwgvgvvfxwwxxwvwghwwwxxwxvgwwwvvwgwwwvfggwvvUwwxwwgwgvwwgwwhxwfgfwwwvwwxhwvwwwvVwxwxwvwfwxggvwwggxwwwwwxxxfvvxxwwwxxwxwvwwgwfwxwwwwvfwguxwxwffwwwvvxwwxfwvxxgwwxxhwgwffwwwxxxwwwvxvxxxvvfwwwwwxxwxxxwwgwhWwxwwxxvgwxxxxwgwwwwwxxxxgxwwwvwwxwwhwhwwhwgwwwxwwxwwwwwhxwvxwwxvwwwwwxxwvgwwvwwxgwwwgxwwxxwwwvvxwxwvwgwgwwhwwxhwwhxwwguwwwgwxwxwxxwwwggwgxvgxxwhWwxwwxxwwwxxxwwxwgxwwwwwxwwwvhxxxwxxgxxwwwxxxxwxwwgwwwwwwgxxwxwxxxfwwwvfwgwgvwwwwvwwvvwwwwwwwwewfwvgvvwguwvwgfvvguvwfvgwwwvxgwwwgwuwwwwvwwwgwgvwvwwwwwwgvwvfvvvwwgwwvwwwvvgwgwwwvwwxvgwuwhwvvvvwvwwvvwwwevwwwwggwwwvvvvwxgwwwxvvghwwwghvwvwwvwwwwwwwwwvxwwwwvwwwwwvxwvxxxwxxwvxwwgwwvwwvvwwfwvwvwvevgvwgfwwufvvvvwwwwgvwvvvwevwxwhgwgwwwwwwwxwvwxwwwwwwwwwgxwvxvwvwvwwxxxwwwwwwwwvxxvxxxxwwgvvwwwwxxxgwwgwgVwxwxwvxfwwxwvxwwxwwvvxuwgwggxwvwxxwvwfxxwwwwxwwwwxxwuwxxwxwwxxxxwwwwhwvwxvwwwvvwxwvwwwgvwwwwwwwwgfwwwxvvxxwevwwvwxxwwxwwwvwvwwxwwwwwxxwwxvwvwwgwwwwgxxxwwfwxwwwvwwxwwvwwwwwxxwwwxwxxxxxxxwxxwxwxxwwwwwwwxxxwwwxhxwfwwwvwxwxxwwxwwxvgvvwxwxwwwwevwxvxwwwwwxxwxxxwxxwwwwxhwwxwxxwxxwwvxhwwxwxxxwwfwwwwwwvvxwwwvxxxxxxvgwgxxwxxxwxwwwwwgxwxwwxxwxwxxwwxxwxwwxvwxvvwwfvxgUUfgfvfgufgVevvgvgvwVVdvwxefdvWUfvwggvUuuwggfvwwwgvuwwwefewwggvwwwgfuufwhgvwggvweffvdevuwgvvwwhgugvwgvwfwwvxWWdvwgffvewWWevwwwwEeuwwwvgwgvwVuuwfwxvgwwWvvgggwwugxxwwgwwwwfvfwvwvhwvwwwgxhgwxwwwxwfVwwxfwwwxxwwvxwwwwwxxwwxvwwwgeevvWfeuvvgUfvxgwvfTgwgVffgVvuefvfgufwfweuvvwfvfvwvwwgwwgxwgxwwwwwxwvgwwhwxwvWwwwxxwwewggxwxghwwgwwhwvhhgvwhgwxvwwwfvwuwwxwfwggfvvwwwhvfgvgfeEwvxvwwwwxwwvvwwfWVVwvwfhwuwgwwwxwgxwwwwwWwwwwwhwwwgwwUwxwxwwxwxwwwggxgfwvxwWtvwwwfwgwVvuwggvwWfvgvvwxvwwwxfvuwVwuxwwxEguwxhwgvxwwwwwwwvvwfVwvwwwwwwwhwvwwxxwwwwgvvwwwwfwWhxxwxvxwgxxwwxwwwwxwwwxwgwwxgwwwwxxwggwvwxxxxxxwwwwxwxgwxwwxwvwvwwwwhxwwwwxwwxxggxxxxxwxwwgvwwgwvvwxwgVgwhgvwgwwwxwwgvwwwwgvwxwwgwwwxwvgfxwxwxwwwwxhwxwxwwwwxxxhwvwwxwwgwwwxxwvWwwwxwxwghwwwwvxfgvwvxwwxwvwvxxwwvvwfwvwxwgwwxxwgwxwwvvwxwexwwwwxgwwxwxxxwxxvxwwxwwxwwgxxxgwgvwwxdwfvvwwvvxwwvvwwxvwgfwwwvwvwgffvwgwwgwgwgfevwwvewgwwxwfwgwvwfwgxwwwvwwwwvwwwfwxwwgwgdfwfvdvggvwwwvwwwvvgwwwwxxxwwwwxwwfvvxwwwvvwxwwwwghwgwxvWWfwwwwWwVgxwxvwwwwgvwxwwwxwwwwvwvwfwwwwvvwfwwgwwxxwvwvwvwvwwxgwxxxxwwxwwwwwvwwwwvwwggwvdvxvgvwwwvvwvwwwwwwwvVwWwfwVwxvwWxgwwgvwvwwwgwvxxwvwwvwwvwwwwwwwwwwwxwxwwxwwwwwwugxwxwgwwwhxwwxxxxvwwvgggvdwxwwxxwxwwvwwwwvwxwwgWwvwvwwxxWgwxwgvwwwwwwgxvvwwwwwgwwwvgxxvwwxxggwwwwxwvxwhwhwxwwxxwxvgwxwwwwwwvwvwwwwwwwgwwwghxwwWWvwwwfWwVgwxwgwwwwxwxwxvwWwwwgWxwwwwwwvwwwxxxxwwwwvwwwwgvwxxwwxxwgwxwwwwwgxxwgwwxwwwwwwxwwwxxxwxwxgxxgwvwgwwxxxvxwfxxwxwxxxxxxxxwwxxxwwvwfvwvxvxwwwwwxxxxxwxggwwwxwgwxxxvwwvhwwwxxxxwwgwgwgvvxwxxxxxxxwwwxvxwvxxwwwgwwxwwxwwxwwwwwwxxxwwhwwwxxwwxxxwwxwxxwxwwwwxxxwwwxwgxwxwwxxwwwwxxxwwxxwwxwxxwwxxvvwgwwgwfvvvggggggWfvvwfgwggvvgwvxggvegwvfvxwwwwvxgwwwxwwwvvwwwvfvwwwWwvvwgvwwwwvvvwwvwxwxwwgxwgvwwwwvvwgwwevgvfvwgxvwxvvevwvwvxwwwwwwxgwwwxWgvvwwwwwxwwwwxwxvvwhxwwwxwwwvxwxvwwwwvwgvwvvvwgfvwvwfvvwgwwwxwxvvwvvwwwgfwvgwvwwwwvgwvwxwwxwvwwwxwwwwxwhhxxvxgxxxxwvxxwwxxwwwwwvwwwxfwvxgvwgwvgwwwwxxgwwwwwwwwxxwhxwwxwxwxvwwwxwwwxwwwxwwxxxwxwvvwwwvwgWwwwwwgwvvwwxwgvwwxgwwwxwxwgxxwxgxwwwwwhwgwxxwvwwwwxxwxxwxwwwwwwwwxxwwxxwxxhxwxwxwwwxxxwwvwwxwxxxwwwwwwvvwwvwwhwxwwwxwxvxwwxxwwxxwhwxxxwxwxwxxxhxxxwxwwwwxxwwxwxxwgwwxwxwxxxxxxwxxwxxxxwxxwxwxxwxuwwwwxwwxuwwvwvwfgfwgffvggfvwvwgwfwwwwvfvUfwfggwwgwxwvxfwwvwvxfVUeffVwhgfwwwxfwUwvvwwxUgfwgxgxfvwwwewfwxgvxVffggVVwwwxxwwwwwxwwwvwgwwxwvwwvxvwxvxghffxwwwxwwwxvwwxgxggwwxwwwgvvwwwwvgwgwfwuwfvxgxfwwwvwvuwwxwxVewgwVwvwgwxwwwwwxwwxwwgvxvwfwvvxxxxxwwxhgwvwxvvvxvwxgwfwvwgwvhwwxwwvwwwwvxwwwVexgVwwwfxuwfwuxvhxwwxwvwvwhxwwwwvwxwvwwwwwwwwgxfwxgwvxvxwwxvwxwwwwwgwxwxxwxwwwwxwwgwxwxwxWVfggVVwwwwxwxwwxxwwwxxxfvfghwwxxxfggfwwhwxxvwwwwxxxwwwwxxwwxxwxwwxwwwwwxwwxwwxxwwwxwwxxwvwxwwwxxxxxwxxxxwwwxxxxxxwxwwwxwwwwwvwwwxxgwvwxxgxxxwxwxxxxxwvwxwxwxwwxxwxwwgvwxwxxwfxhhwxxxxwxwxxxwfxwxxwghxwxxwgxwwxwwwxxxwhwxggxxwxgvwhwxxxxwxwxxwxxwxxxxxvwwxwwxtvvwfvvwfvvwfffgvvwwwvwWwwwxwggfvwvgwfwvwwwxwwxxgwwvwfwggvwvwwwxxfvvwwxwggVwwwxgvwxwgwxwxwffvvgvevvgwgwfwvwwwwwwxxuwguvgxwxwxwwxwxxwfffvvwwgvuuwwwwgxxvwxxgwxxxwxwwwVfegvffVgFuUegfvfwgwwwfvvwwwggffvffvggwwhwwwvxwxvxwwwwwwhgwwgwwwvxgwwxgggwwxwwxxwwxwwgwgwwwwxxgxwwvwxxwgwwxxwhUgeuddfffvvwwwwwvvwwxggwgwfgwwwwwhvwxwwvwwxxwxwvwxxgvxgwgwxggwvwwwxxwwwvwwxgvwxxxwxwxxwwxwwwwVwvxwvfwfVewgwwxwfvwxgwwxxvxgxwxwwvxwfwwxxxxfVvwwxwwgxxfwxxxwxwxwwwgwhxxxxgxxxwxxwvfwhfwfwxwvwwwwwwxxxwwwwwvxwwxxwxwfwxwwxwwwxwwwxxwwwxwhxwfVevwfwvggggwxwxvvwwwwwxwxxwwwwwwxwwwgwwwxxwxgxgwxwxwgwwxwwwxxvvxvwwxwghwwwxxxwxwwwxhwxxwxxxxwvvvwwwvwwgvwwwxwwwggwgwwxwwwxwxwwwxvwvxvxwwwxwwwxxwxxwwdgvwgwwVuvxwvgwvfgwwwgwfVfwwvVuvwuwwwwwfgWwwwxwwwfwwxWfFwvwgwgvhfwhgxxvwvwgwgxewgfgxwwgvvxxwxwxUeuwtgVwwvfwvvvwegfwwvwVwwwuwwwvwxwfwxwxwxevgegvhwwvwwgvwwwwvwwwwvuwwvwwwxwxwxwwEvewgeVwfVfvvgvgUVFfwwvxVefgvWwxuWfvvvvwgwvxxvwWfffwwvxvwfwxwxxfwffvWwWgwfggvwvvgwxxxxwWwwwgwvwwwwwwwvwwwwxgvvwxwxwwxhxgTVfvffwwedvgxwgefffeggwwhwwwwvwuwwwwwgxwvwwwgvhwwfwxwgvvwwugvwwxwwwgwvwwxwgwwwwwwwwwhxwwwgwvwwggEvuwewgwwwvwwvxfFUwwvvwwxwhvwwvwwwwwwxWwfxhxvwxwhvffwvWwgvwwwxwwwwwxxgwhxhwwxxwxwhxwwhxwxwxwwwgvvvwwwwwwwfvwxwuxxwxxxxhxwwwhxxxwwgwvwvwvwwvwwxwwxwwxwwwxwwxwwwxwxwfxvegefwgwwgwfwgwwVVVgwVwwgggwghwxguvwxwwWwwwwgwxwxwwgwwxgwwwwgvgwgxxwwwhwwxwggxghxxxwwxwxXwwgxhwxxwxggxwffwwvgwwgwwwfuwgwwwwwwwwgwwwwxxxwwwvxwwxwwgxxhwwxxxwwwwhxxvxwvwwwwwuwwxgwvgwvxggWgxfwwgwwWffgvggwvxwwwwwhwvwxwwxwwwgxxxwwvxxwwggwxgwwwwwwwxxwxxxxwgwxxvxxXxvxxxhgxvxggwwhvewfxwwwwwvgfwwxwwhwxxxwxxwxwwwgwfhuwxwwwxwwwxwwxvxxfxwxwxgwxxwhgwwvWgfWffgwgxWWghwwwgvghggwggwwvWgwxgwwwxwVgghwwwhwwxxxwvgxwxxgvxwxwwxwwxxwwhwwwghxxgxwxxwhwhXxxxxxwggwggwwuwwxvwwxgfgxxhvXwxwwwwhwxxxwwwxxwxwxxxgvxwwwxgwxxgwxxhxgxxwwxwxhxwxwwfwwwwwWgfwvgwvgxWffwwwwXwgxwxwxwwwwxwwwxxxxxwwwgwwwwxwwwxwxhwwwxxxxxwwwwxwxxwxwigxxxwxwwvxgwwvwxvxwwhwxxwwwxhwwxxxxxxvhxxxxwgxxwwxgxwwxxxwxwhvxWffgwgwwwwxwxwWvggggwwgxhwxxgxxxxgxxggxwwhxwvwwwxxvwwxwhwgwxxxgwwxxxxxxxhxwxxxfxwwwwxxuxgxxwghxwxwxwyxwxxwwwxxwwwwwhxxwwwhxxxxXxxwxxsfgwfffwggwxfgfwfvvwxwwgfwwwwgvvgfvFwwwgfffvwxhwvwvwfffgwVvwuwwwwwwxwxwwxxWwgWehVwwwxgxwwgxvxxxwfVvgfvgvegfwwvgeVfwvwvuwgvvwvwfwwwwwwwxgwwxxgwxxwxVuVwfdhvwxwgwvwwwxwvxgwwwwwwxwvxwwwwwxwVfUfvfwwgfewvvwhfffhwwwvwewgxFf5vWuwwgwwxwwfTvWggWwwhwwwwwxwwwwwwxhwgwgxwwwgwwwwxwwwwwwxwwgvxggfwgwxhgwvxwxxxwwxhwWEfVfwvwwgwwwweSvWwvwwwwWwfVwvvwwhvwwxwvwwwwWwvWxvwxwgvxwwwxwwwwxggwgwwwwxwwvwwwwggfxwwvgWvwwwwwwwvVwvgfvewfgwwfgvwxgwvwwxfVevfwvwwwwwvvwwwwxfwgwvgevvfvwvgxwwwwwwvxwwwwxwwwvwwgwxxxxwwhxxwxwwwvggwwwwwwwwwwfwwwwwuxwgvwwwwwwwwwwvwxwxxxxwxwvvwwwwvwwvwwwxwwxwxwwxxwwxxvxxwxxwffTvwvfwwwxvfggxvvwwwxhhwggffgwwgggwgwhvxxfgxxwwwvwgwfwwxwxxwwvwhxvxwxxvwxwxwxwgwxwgwvxwwxxwxfvvgwwxwvwvwxxwgwvwxwwxwxxvgvvwxwvxwwxwwwwwwwxwxwwwwxwwwgwwwwwxwwwwwxxwwxwgwvxxvgwwgvwggffvvvfwwfwfwwxweVgvvvwggvvwwgwwwwwxgvuxvggVvvhwwwxwvwwfwwvgwggwgwvxvwwxwfwwwgxwwggwxwxgwxvgvxwxgwxxvwVuvvgwgwwvvxfgfgwwgffgwvxxwwguwwwxxvxgwwxxwwgwwwwuwgwvwwfxvwwvvvggwxgwwwvfvhvwxwxvwwxwwwgwxwwgfwgvgwuVgvvwwheVffWuffffVuwgvgvggwuwhgwvwggvwgVvwgfgVwgfvgvwgwwxxwvxwgwwhgwwxwwwhwxgwwxwwfwwwwfwgwxvxwwgwxwvwwhVvwwxxxvvfgwvvgwgwvxvfffvwgvWvvxwwvxwwgwxwwvxwwxfgvwxwgwwgvwgvwwwhwwvwwwxxwvwwvgwgfuxvxwwxwwwwgvxwwuhwweuhwwxwvwvwwwwgvwwwwwwvgwwwwwwwwwwwgvwvwgvhvxxwwxxvxxwxxwgwwwvwwxwvvxwwwxwxxgwgvwwwwxwhfwxxwgwxvxwxxwvwfwwhvwwvxwvvwgwxwvxxxxwhvxwxwhghvxwxxvhwwwwwvgwxwvxwwwwvwuxfxxvwwvwhvxwwxhvwxwwuwwhgwfgwwwxwwgxxwwxwwgvxwwvwwwwwxvgwwwxvwxwwxwxwfwxwhwxwxggwwgwvgwxwwxxxwwxwwxwwxgwhxxwwxwggWxggxwhwxxxwgwwxWvwwwvwvwxwxxxvxwvxwgxwwxwxwxwxxwwwwwwwwvwwwxvwhwxvxuwwxwwwguxgxwwvghwUwwvxwgwvgWwgwwxVgfxvwwvwwwwvwwefwwgfwwgwxvgvwwewfwwwggWgwwwgwvxvwwggwuvwwVvxwwwwxgxwWwwwxwwgwwwwwwxuxwgwwwwwhuwwwgwgxvwvwvgwxwwuwggwwwwwgfwwwwvwuwwwwuwxwwvwwvwxwxwgfwxwxwwwwwwxwwxvggxwwwxwwwhwwwxggwvggxwwwwwwwgwwwXgfweWfvGvvwWgfvwVVvFVfgwfwgfwgwfgvwgwwwdwwgffgwgwgtgwvhwwgxxwxwhxxggwggwxvxwxxwhwgvgxwhWwwwxwwwxvgwwwxxxwwwhxhwwwgwwwwwwfvwwfgwxevwfvvwfeffwgvWvVvvuwfwwxfvwwwwwwvwvwwwwwwwwwwxwwwxgxwwgxvfwwwwwwxhxwggvgwhvuwxwwwvwxwxwxwwUwxvgwwwWwfwwxwXvgwgwwvfwxwwwwwwxwwvwvfgwwxvgwwhvwxxhwwwwwhxwwxvwwwwxwwWvwxwxhwgwxxwxxwwwxxwxxxxxwwwwvxwwwgwwwwwxwwhfwxwxWxwwvxxxxhwWwwwWxvwwwwxwwwwxxwwhwxwwxwwwxxgxwxxxwxwxvwgvfwvwgwfwfwwgWfwwgfgvgwwwvwwvwgwxwwwxgxwwwwwwvwxvwxwxggwxwwvxWwwwwxwxwwxxxwwxxXggwwxwwwwxxvxxwwxxwxgwxxhxwwwwgwxwwwxvxwwwxwxxwfhwwwgwwwwxwwwwvgxxxxwwxvwxwxxxwwwhxwywxwxwgxxwxwhxwwwxwxegVwfwvwwwgxwwwwgwwwwvwgwgwwwwwvvwvwfvgUwwwwwwgfwxwvwwxxgxwfugwwgwwxwgvwxgwxwxwwwwfwxvwwwwwwwwwxvwvxvgvVWfwwgwgwwwgfwxwggfvwwwvvhwwvxwwvxwxhwwwxwxwvvwxwxvwwxgwwxwwvxxxxwwxwxxwxwxwhVvfwegewUVfvfwwxfVfwwxgwvvwgwwwwfVUwfwVgvexwxfvgwgfwwvgggwxwhwhwwxvwwwwxwwhxwwxwxwwxggxgwwwgxgwwXgwwwwxwxwwhxwhxxxwugvfvwwwwwwwgvxgevwghwwvwwwvvwwwgwwwxfwgfwwwwwwwWwwwwwwxxwhwxwwwwwwwgwwwwwxgvxhWxvwxwxwvwwwxxgvwxwxwgxvgvghfvwxfxggwvwwxwwxxwWWvvwggwwwxxwwvgwvxhwxwvwxwwxxfwwxhxwfwxxgwvwwxwvxxxxxwxwxxxxxxgvwgwwvwwxwxwxwvwwxxwgwvwwwwgxwwwwhwwxxxxxxvwwwwwwxwxxwxxwwwxxxxxwxxVWVVwvwgwWwxxgwvwwxgwwwwwwwwhgggwwxggwwhwwvwwwgxxhwxwxwvwhwhgwxwwwxwhwhxwxxxxxxxwwwwxwxwwwwxxxwwvxgvvfwxwxwwxwxvgwwwwhxwxwxwwwxxxwxwwwwxwxxwxwxxwxxwxwxwxxxxxwxxxxxwxxxwxuxvxwwwwwwwvgvgwwgwwwwgfwvewgggwwvgwgwgwwwwwwwwuffgwwwwxwxwwgvhvwwvwgxhwwwwxwwwwgwhxwxwwwwwxxxxxxwwwgwvvgwgvwwwfwuvgxfgwxwwwwvxvwxwgwvhgxwwxwxvvvvwwwgwwwxwxwxxxxwxxwwvwwwgvxVffvgwgvffgwwwwffvggwwwwwfwggwwgfvwxwvwwvhwwvwxwwhvgxwxfwgwgwwxwwwxxxwwgwwxwwxxxwxhwxxxwxxxgwvvwvwgfwxxvwvwwwwwwwwgwwggxwwxxwvwwwvwwgwwwwxxwxwwwwgxwxxwwwxxxwxxxwxxwwxxvwwwwwwgggwggvuwhgwvwxwwxvgfwwwwwxxxwwxwgwwgvwgwgxwwxxxxxxxwxxxwxxwxxxxwwvwxwvxfwwwxwxhxwvxwwxwvwwxxxxwwwwvxxwxxxwwwxwWwwwwwwwWfwgwwgvwxgxwxvwvxggwxwwwxxwwxwwxxgxhwwwwxxwwwxwwvwwxxwwxxxxwwxxxxxxwxxwxxgxxxxxxwxxwxvwwwxwwwwxxgxxxxxxxxxxwxwwwxxxxxxwxxxuwwxxwwgxwwwxwhvwwwxgwgwxxgxvgwggwgwwxgvVwwwxxwwxwxxxxxwwgwggwhwgwwxgwhvwxwwxxxwxgwgghvxxwwxxwxwxxxwwwgxwgwhwwwxwwxggvwwwxfwwwxgwwwwwwwxxwxwwxwxwwxgwwxwwxuxfwwwwxxvxwwwwwxxwwxxxxxxwxvxwhvwgwhvggvwfwwgfgvwwvwfwwwwxxxggVgwwhwwwxxxwggwhxxxvwxxxwwxwxwwxwwxxwwvwxwxxxxhxxgxwxxxgwxxxxhxxwxwihxxxxgwgwwxfwwvxwfwwwwxxxuwwwwwgwwxwxhwxvhxwwwxwxxhwwwwwxxxxwxwxwwwxxxxhxxwwwgxxxwwxwwxhxxxwwxwxgxvgwggwwwwwggVgxwxgwwxgxgvgxwxwhwwhwwgwxxgwgghvxwwwxxwgwwhxxgwxhxxwxwxxwxxxxxxwhxgwgwxwwxxwxwwwxwxxxwxvhwxwxwxwxxxvwwxwxxwxwxwxwxxxxwxhxxwwwxhwxxxxxxxxxxgvVwxwxwwxggwhxwxwwxwxxxhwwhwxxvwwxvxxwhwxxxwwxwxxxxxxxxxihxxxhwwwwgxxxxwhwxwxwxwwxwwxxvwxxxxwwxxwxwxxxwxxwxxxwwwxvxxxwwwxwxxhxxwxxxxxwxtggwguvwfvufgVwwwwwwwwvwwwfxveewfwfvwwwwxwvxfwgwvwwgvuxhgVvgxwwwwwgwgxvwwgwwwwwwffvwevwuwwgwxugVvhgwxwwvfwgwvwxxfvwwwxvwxffgfvwwfuxgwwxvvwwxwxwgwwxwxwxxxVudwUWFvfgfwgvvwwVfwwwwuvxwwxueVuVevgWwwwhggwfvgvxvwvwxwwwfwwvgwwwwvwxxwvwwggfxwwxxwwvwxgvxwxwwxxxwyxhTffvVfuggwwwwwvwvvvvwgwwxgvuudugvggwwwhxwgvxgxwwwxwvuhwwwwxgxwuxvvxwgxvvvwwfwwwxwwwVuxfUTvvwvWvhvwwxwwxwwwwwwwwvxwwwxwxwxwwfvwwwwwwvxggwvxxwxxxxxxwxxxxvwgvwvvuvwwxhwgxxxwwwgvxxxxxxwwwgwwwwxwxxxxwwxwwxwxxxwufevWffVfwxhgwwwxgvwwwwvvwwggwwxxwwwgwxwghwvxxxwvvxwwfwwwwwwwxxxwxxxwwwwhwvwxxwxxgxxxxfuuwvVfwxxwvwwwvwxxxwwwwwxxxxxxxgvwxwxwwwwxwwwxwxwwvhxwxxgWwWvvwgwwvffwgwvwwvwggxwwxgvxvvwvggvfvwwwgwwggxwgwwwhwwwwwwvwwwfwwwwwwwxgwwwvgxxgwvxxxxxxfwvxvvvwwwwvfvvuwgwwvwvvwvhwxvwwvwvxwxxwwwwwwgvxwhxwwgwxxvwwvwvwwwwvxwwvwwwwvwxwwwxwxwwxwxxxggvwvVefgwWfugggwwvfwgwvwuwwgggwVvvwggfvvwgggwwwehgwvhxwwwwhwwwwwwwwwxvwvxwxwwwwxxwwwwxgxxwwvxwwxwhxxwxwxxxxwvvwwuuvvuuvvgwwfvwwwgwwwwwvwwwwvxvwvvgvvwwvxwwwvxwvxwxwwgwwwwwvwxxwwxgwxxxwwwwxwwwvxxgvfgwfwwgvvwvvwwgwggWhwwwwwxwvwwwvwxgwwwxgwxwxwxvxwwxxgwvwvwgwvxwxwwwxxxxxxxxxhxxxxwxwxxxwwvvfgwhwxvwwwwwwxwxgvvwwwwvvwxxwhxwwwxxwgwvwwfxvwgwxxwgwwxxxwwwxwxwwgxxxxfwwfwghggwwvxwxvvxvwgxwwxxxxxwvwwxxwwwwwxxxhwxwwhwwwxxwxwvwwwxwgwwwxxwxxxwxxhxhwxhhwxxwxxwxxwwgwwvwwvwwfwxxwvvwxxwxwwwwxwwwxwwvwxwwxxxwwwwwxwvxxvxwgwwwwwwgvfvvxwxwwwvwxxwwwwwwwwvxwwxwwwxvwwxxwxwwwxwxwwwxwxxwwwxxxxxxxwwwwxgwwwwwwgwwwwxxwwxvwxwxwxxxxxwwxwwwwxxxxxwxwwwwwggwwwgvwfvfhxwvwggfwwwwwwwgvwwxghwwxwxxwxwxxwwxxwxwwwwwwwwxxwxwxwxxxwwwxwxxxwxxhwwfvwwwxwwwwwwwxwxwxwxwwwwwxwxwxxwxxwxxxwwwxxwwwxxxxxxwxxwywwxgfwxwvwwxgwwwxwhwwwxvwxxxxxxxxxwwxxxxxxxxxxxxxxwwxwvgwwwxwxwxxxwxxxxxxxwxxgwvgwggwxwwwwwxxxwxwwxwxxxwwwxxxwxxxwxxxxwxxxwwxxwxxwwwxxxxxxxxxxyxxxxxgwwwxwxyxxxxwwxxxxxxgwgvvwgvwxgwwwwwwgvwwxvwuvgwxvxwfgvgwgwwwvxwvewgwhxwwwwxxxwvwwwwxwwwwxgxxxwxgwwwwwxwwwwwxxwxxwwwxvvvxwwwwwwwwvvuwgwgwxxxwxwwwwwwwxwgwxwxwxgxwgvwwxxxxgxwxxxxgwwwfgewwvvwwwwwWwwwvgwwwwwwxVVwVvvgwwfexwwwwggwhvwwwhwxwwxwgxwxwwxxxwwxwxxxxywwgwwwwwxwwhwwvwxwxxwxxxxwWgwgwwhwxwgvwgwwwgxxwwwWfwwwxxxxwhgxwwxxgwwwxwwxhxwwxwxwwxxxwxxxxwwwwwwfwwxwwxwugxxwgggvvwwwwwwxwwwwxxxxxwxxwwxgvwvwxxxwxvwxxxxxxxxxxwwgwwxxwwxwwxxwxxwwwwxwwxxwwxwwxxwxxwxwxggvvgwwgxvvhwwwwxxwwggvvgwxwgxxxwxwwwwxxxgxwwxxxwwxxxxxxxwwxwxwxhxxxxxxxwwvvwxwxxxxxwwxxxwxxwwwxxwxwwxxwwxxxvwwxWeggfwvfvfVvvhufwffvffwvgfveUgwwvvwUfvwffwfVvfffvwwwwwwgwwfwwWwwwwwwggwghwwwwwwwxwgwgwwwwwwwwwwwwxxwxwwvwegvwvgwggvvfgwgufvwfwwwwxvWwwffwwfvwwxwWggwhwxgvwwwxwwwwxwwxwwwxxwxxxxxxwgWgWevvgfwUffwgUwffgvffgfgwwwgegweVWgUuvwwxwhVffwgwvgwwwwfwwwwwWwvggwwwgxxwxwwvxwwwxwgxhwxxwxfwwxwwwxwwwxhwgwwvgvwggvvwwwwfwvwwvxvwwwwvwwwVwfgwgwwwxvwgwwwwwwgwxwwwwwwxwwwwwxwxxxwghxxwxwxvvvgvwvwwwgvwggwvvwwwwwvwvwwwgwwwwwwwwwwwwwhvgxxwxxwhwwwvxwxvwwxgxxwwwwwwxwgxxxxxwxxwxvvwwwwwfwwxvxwwwwhwwwxwwxwwwxwwxwxxwxxvxwwxxxvwwwwvxwwwwwwxwwwwxvwwwxwhvwgwwxwwwxwwxwgwwxxwwwxwwxxwwxxxxwhwxxxxxxwxwxxwxwwxxxxwxwwwxwxxxxwxwxwxxxwwxwxxwxwxwwwxwwxxxwxwxxxwvvgvgvwxwvxfwwgvvgggfgvffguvwgwfwvwwwvwxfxvggwvwwwvvwgwwxwxvwVvwwvwxwwggwhvwxgwwwgwwgwwxwwvwxgwwxxxxxxwxxwwgvwxvgvwxwwwvxvfwwwwgvwxwxwwgwgwxgwwwwwxfwvwgxgxwwhwwvvwwwwxwwwgvxhwxwwfvwxwwwwwxwwxxwwwwxhxxwgggwfggvfwwfvwwffWvggwgffgxgWwffffwggwwgvwgwwwgfffvwgfwvxwhwwwgwwxxgwhwxxxWwhwxgxwwgvhvxxwwvxxwhwwxhwvwgwwwwwxhhhxwxxwgggwwwgwxgwwwvwxgwwwwgwgwwwvwfwgfvwwwwvwxhvwwwgwwwwwwwvwwwwwhwwwwxwwwwwwwwxgxwwxvvvxxwxxwwwwvwwvwwhvvwwwwfwgwxwwWgwfxwvwwhvgfwwgWxgwgwxxwvwvwwxxggwwwhwwxwwwhwwwvwvxwgwwxwgxxxhxxwwwwwwxxxwxxxwxxwwxvxwwwxwwwhgfgwwwgwwgxwwwwwxxwwwgwwgvxvxvwwxxxwhwxxwgfxwwwvwwwxxxxvgxghwvwwgWgvvwwwwhwwfggggwwwwwwwxwhgwwvxwwwxwxxwwxxwwwgxwwgwhxxwwwXwxwwwwxhwxvhhgxwgwwwxxhxwgxwwwxxxwxxwgwwxxxwxwxwgwgwxwxwwwwwvxwwxwwxwwgwwwxwwxwxvxxxwxxwwwvwxxwxfwwwwxgwvxwxuwfvwwwwvwfxwwwwwwwwwgwwfvvwfwwwvgfwwwvxgwwwwvfvvwwWvxwxxwwwwwwvwvxgWvxwwwxwvxgwwhxwggwwwgwxwxxwwwxwwwwxfvvxfvvwwwxwgwvvgwwgwvwgwwgewwgwxwguwwwxxwxwvwwuwvwwwfvwwxwwwxwwxvvwwxxwwwxxwwxwwwwwgwwwvgfwfggwVgwvwgwxfvvwfvvxwwwgvgfwfggfWwwwwxfwvwwxwgwwggwwwwwxwxwwwwfwwwwwwwwxwwxgxwxggwwxwwwvxwwxxxwwhwwxxwxxxwxfwvwewwwwxwwvwwxwwgwwwwfgwwvwwwwwwwxwwxwwwwvwwwwwvxxfwwwwwwwwwwwxxwwxgwvxwwfwwxwxwwwwwwwvvwwwxgvxxwwwwwwvwgfwwxvwfxvwwwwwxxwxgwwwwwwhvhxxxwxwxwxvxxxwxwggwwwwxuwwxwwxwxwwwwxxwwxxwxxwwxgvwwvvwxwwxwxgwwwxxwwwwwwwwhxxwxxfwxxxwwwxxwwxwwwvgxwwxwwwxgfvvxwwwwwwxxwxwwwggfvwwwwwwxuxwwvxhwwwxwwwgxgwvxxwwwwwwwhxwxxxxxxgxvgxxwxwxwwxxwxxxwxxwxwwhxvwxgxwwgvwxuvwwwwwxwwwxxwwxwxxxwwxwxxvwwwfwxxxxwwxwxwxwgvvxufFwgfuwWwggwfxggugwvfvfwwvwwwwvgvwfwwwfwfwfvvWfgvwfgvgfgwwvwgfvwwwfwwwgwwxfwwhgwvwgwggwWwwgwvwxgvwvwxwwwwwwVvfxdvfvwwvwfefvgfwgwvwxvwgxgwwgwgwvgVwuwwwwvgwvgwxewwwwwwwxvwvvwvwwxwgvgvwvxwwvwvwwvwvwwfgwVvfwwvwgffwvwgfFewvwvgVuvwewfwfgfWvfwvgevwwgFfffvwwvwwWwwwwwwxvxwxxxggxwvwwgwwwhwwgwwhhwvwwwwwwgwwwwwwwwvxwwgwwgxxgweefvvwfwggwwwdffwvvwgwwwwgwwvtvvvwwxwfgwxxwugvggvxvfwvgwgwxvwxxwwwwwvwwwwwwwwwvvwwwwwwwwvvggvwwvfwwwfvwvwgwvwwwVgvwgWfvwxwxwgvwwwfxwvgvwwxwwxgxwwxxwxwwwfvwgxwwwwwgwxgxwgxwwwfwvxwxxxhxxxxwxxwwwvxwwwfwvwwxvwwwvWvwxwxxvwggwwwxgxvwxwgxvwwxwwxxwwgwwwxwhwwguxxwxwwwwwgxxwxwxxvgguvwfwwhxwxfwVxwvfwvwwwgxgxggfgwxxwwwxgwwwwwxxwwwwwxgxxxwxhwwwgxwwwxgxxwwxwhhxxwgwgxxxhfwgwwxvxxwwwxgwfwuwwuwwwfwwguwwwwhxwvwwxwxxwxwxwwwwwwwwxwxvwwxxxwwwwwvxwwvwvwxwwwxgwxxwwWxggxwvwwgwgwhfgfggwwwwwwwxxwxwwwWgwgvwwwwwwwwfVvgwwwwxxgvxwxwwxXwwwwxwxwwxgvwwwxxxxwxwwxxwxwxwxwwwwfvxwwxwxwvvxvxwxwwwxwgvgxwxwgxwxxxxwwxxxwwwfvvxwwwxwxxwuxwwwwwwxxwxxxgfxgWggwwwwgwgEVvwwWxwwwxwwwwwgwwvwvxffvWwhwwwwwwwwwwxwWwwwxgwwwwwwxxxxwxxwxxwxwwwwxwwxxwwwxwxwxwwggxwxxvwxwwwwvwvxvxwxwwxwwxwwvwgxxwgwwgwwhwxxwwwxwxwwxxxhxwwwwvxwxxvxxxxwxxxwxwxwwwxwwwwwwxgwwwwggwxwxwwwwwxwwwwwwxxwgwxwwxxxxxxwxxwwxxxxwxwvwhwwxxxxxwxhfgwwwxxwwgxxxwwxxxwxxwhwxhxxxhwwwwwxxxwwxwxwxwxgwwwwxgwhxhxxwxwwxwgwwwxxwxxxxxxxxxwxxwxwwwxxwwxxwxxxvwxxxxxxwwhwxxxwxwhxxxxxxxwxxgxxxxxxxxxxxwgwfggvxgvgvxwxxvwwwvwxgxwgwfwxwwwwwwwgvxxwxwwgvwwwwxxxhhxvwxxxwxxwxxxgxwgxfvwwwwwwxxwwxwwfwwwxwwxxwxwwwfvwxxwxwywwwxwxxxxvwxxxxgwfgfvggggxvwgwvwgwfwwhxxghgvwwwwvwxxgvvxwwwxwxxxvwwxwxgwwhxhxxwwwwwwxwwxxxxxhxxgggvwwxwwwxwwwwwwwxwxxwxwvvxvxwwvhwxxxwwxxxxgvxwxxwgxwxxwxxwxwwxwxwxhvxwwfgvggwfgwwxxwgxxxhgwwwwwxwxxhxwwxwfwxwwhxvwhywxwxxxwxxwxwwwgwwxwxxgwgxxxxwwwxxxxxwvxxxxxxxgxxxwwxxxxxgvgvvxgwgwfgwxxxxwgxxxxxwwwwwxxvwvxxxxwxxxxxxvgwxwxhwxwxxwxwwxxwxxwxwwwwwwwxxwwxxxxxxxwwxxwxhxwxxhwxfwwgvfwwwwwfgfwvwgvwvwwwwwxfwwwvwewvwwvxgxwfvfwgvwxwwxwwxwVwwwwwwvwgxwwxhwwwgxxwvwwwgwxgwxhwxxxwgvwfwwwwwgVwwwwwwvxwxwwwwxVwvxgvwvxwwxvxwwfwxwwxwxvwwvwuwvwxwwwxwwxvxwxwwvwxwxwxwwwxxgwxwxxvvggfffwvgUwUgfffvVwgwvfgfwwfwUggwvewfgfvvwvwxfgwWgfwvwwgwwvwwvwwhgwwwwxgwfgwwwwxxwxxwxxwvwWwgwwxwwwwwgvxxxxwwgwxxggwffwggfwwwwwwvwvwwgwvxwwwwwwwwfxwwwwxwhwxwxwwwwwwxwwwwwwgwgwhgxxwwwwwwxwwvvxwvwxvwwwwwwwWgwwxwwwwwgvwwggwwxwwwwwgvwwwwwxwxwwxgwwwwwxwwgwxwwwwwwwwxxxwgxwxxvwwwwwvgwwwwxwwwwwxxwuxxxwwwwwxxwwwwhwwxwgwxwwhwxwwwxwwwxwwwwgwwwwgvhWgvwgWwwxvvxwwwwwwwwwvwwxvwwwwxwffwwwwxhwwwwwwwxwxwwghxwxwwxwwwxxgggwxwxwwxwxxxwwxxwwwxwhwxvwxvvxxwwwxwgwwwwxxxwxxhfwwxwwwwwwwwxxxfwxxwwwwwxxwxvwggwwwwvwfwWwgvwgwfwwwhwwwfwwgggwxvvwvxfwgwgwgxgwwvwxxxxgvgwgvvwwxwwwwxwwvwwhxvwfgwwxgvwxwwwwxwxwwgwggWwwxwwwvxggfgwWgwwxvwwhwwwxxxgwwxxwxwgwwwvwwxwgwxwwvxwwxxwxwwvgwwwxwxxgwfwfffVgfvwfgfVfwgwwvuvvwwxfhVVffvwwgwvwvwvxgvwhwhgxwwgghxvwgwwhwwwggwwwvwggwwwxxxhwwwwwxhwvwwxhwuxgxWxwxwgwgxhwgxvwxxwxfggwfwfwwfvwwwwwgvfwwwgxvfwgwwggvwwvgwwxwwwfxxvhwgwwxwgwwwvxvvgwgwwxwwxwwvxwwwxwwwvxxwxfxwwwxxvwgwvwxxwwggfvwwwxvgggwWwvxwwuxxwxwxwgwvxwwxggwwxxgwxwwggwvwwxxwwgxfvxxxwxwxgwwxwwwwwwwwhwxxhhxxwwxwxewwwxxxwwxfvwxwfxxxwwwxxxxxxxwwxxxxxxxvwhwxwxxwxwxhgvwxxxxxwwxwxwwggfwgxfwgwwxxwxWwgwxWgwgwhxwwggwvxvxwwgwxxxvwwwwxwxxwxxwxwgwwwwwgwhvwxgxxwvxwxxxgwWwgwxxxxwxwhhwxxwwwwwwwxwuwwwxwwhwgvwwwwwwxwxxgwxxxxwxwxxwxxwwwwvxxxhwxwwghvxwxwhwxwxwwwvvwVwgvwfwwvggfwgwwwwfwggwvwwwwwgwuwufvwgvwgvwvwwwvgwwgwvwwwwwvgfvwwwgwwgvxxxwgvwfwfxwwxxwgwwvvhxwwgwxvvvwewwwxgwwwvwwwfwvwgvwvwvgvwxvxxgwgwwxwwwwhwwwwwwwxvwwxxwwgxxwwwwfvwxxwxvxwwwvxwxwwxwwwgwwfgVvuvwwgvffgVwvwgfewvvwwggvVvvVgeVgvwxuwwVfevwgfVugwwgwvgwwhwwwgwwxwggwwxwxxxwxxxxvwwwwgweggwwwhwvwwxwwxggwwwwwxgvvwfeuegwgxwwvwwwguWvwwwwwvuuwwvgvvwwwvvvvwufgwwwwxwwwvvwxgvwwxwwxfwwxwvwwwwwwwuvwxxwwgwwgwuvwfvvwvfvhgewwwvwwwwxxwwwwwwwhgwgxwwwwwwggwxvxwwwwxxxxwwwwwwwwwxwwxxgxxwwwwvxwvwxxwvxwxxwwwwxwxgvwwwxhhxewwgvwvxxwwwhxvwgxfxwwwwxxwxxwxwvxwwwwwgxwxxvwxxwggwwggvvwxxxwwgwvwwwwwxwwwwwgwgwgxwwwgxwxwwvwxwxwwwvwwxwwwwwwwxxwgwvxhgwwxxwwwwVwvwwwwwwwwxhvwxhxwwwwxwwvwvgxvxvxwxxwwwwvwwxvwwxxxwwwvwwxwxwwwgwwxwwxwwwvwxwwxwxvwwwVuvgvwwvwwwvwgvgwggwgwwwgwwwvwvwgvwvvwwxwWgwwvgwwvxwxwxwwwwwwvxwxwwwwwwwwwwhxvwwwwwwwwwxwwwwwwwxwxwwwvxvvgwwwwvwgfwgvwwxvwwvwxvwxxwxgwwxwvwxxwxwwgwwwwwwgwwwxwxxwvwxwwxxwwwvwvfwgwvgWwwwwvvgfwvvwWegwwWxwwgvWfvfwvvgwxxwxVuwWwwvvgxgwwwggwvwwwwwwgxwwgfvwxwwxxxwwwvgvwwgwwxwxwvhwwxxwxwwwwgfwwwwwvxwguwgwvwwwxwwfwvwwvxwxxxwgvxwwwwwwwwgvwwwxwwwwwfwwwxwgxwwxwwwwxwwxxxwwxwxwxwwxwxwvvvwgvwwxwWgwwgwxwxxvxvwvxwwxgvwwwgwvxxxxwwwwwwwxxxxxwwxwxwxwxxgwwwxxxxxxxxwwxxwwvxwxwwwwxwwxwvwhwwwwwwwvwxwxxwxwwxxxwxwxxfwwwxwxwwxfgwvfwvgwxxwxgvvWxwwxwxwwwxgwwxvxwvwxgwwvxwwwxxwvxxwwwwwwwgxwxgwxwwxxwxxgwwwxgxwhxxwwhvxxwwwgxwvgxwxxwwwwwxvxwwwxxwxxwxwxwxxwxwwxxwxxxxfwxwxxxxwwwxvxggxXvxugwwxwwwVWvwggfeeghwfwghwwvgwwwxwwWeffgwwgwwxwwgxgwvxwvwvvfxxwwxxwwgvwxxxhvwhwxxxgwwfgwxwvwwwwvWeWgwwhwwvfxwxxwwxxhwxxxwwwxxwfvfxwxwhvxwwwvxxwxwxvxhwxwwxwwgvgUVwfvvwgWgwfeegfwggvgffwgwwgvVgggwvxxwffvgwWggwwxwwgfxwxxwwwwwggxwfwwwxxxhhxxxwgvxxwxgwxxxgwxxxwwxwwwgvwgfgxxwwwfvvwgWgvvwxwwvwfwwwxwhvwxxwwwxwwVwwwxgvwwxvxxwwvxxwxwxxwxxwwwvwwwwwxxxwxxwwgvgvwxwwvwwxvggvwggwwwxxvxwvgxwwxgwwxxwxxwxwwwxywxxwwxwwgxxxwwwyxxwxxxhwwvwwvwxwxgvgwxxwwwwwxxxxgwxxwwwwxxwxxxxxxxfwxxwgvwwwwwwxxxgwwhxgwwwxhvwxwwxwwwfxwwwwwxwxwwwxwwgxvwwxhhxxxxxxwxwwxxxxwxwxwwwvxwwwwxwxxxfwhxxvwvxxxxwxxwwxxwxwwxxxxwxhxwxhxxxxwxwxwufwWwexxwgvggwwwggwvwwwhwwgwuxfuVwwwxwwxvvgwgvwgxwwwwwvwvwvxggxuxwgwvvxhxvwwwwxxvxvxxwxwwxWfvvgwwwxvvwvwwwwwxvwuwwwxxxVfwxxxxvwwwwgxxxvvvxhwgvgxfgwxhvxxxwhgxxxgwfwgfVhggwvWgWwwwwwgwvwwgxguVuwwvWwwwxwgwwwvgwwxwxwxgwgwwxwwxxWwwxxwxhgwuhwvgvxwxwwwxxxwxxxxwvguwwvgwxxwxwwvwwwegwwgwwfgxwwwxwxvwwwvwxwxwwuhwwVgwwxxgxxwvxxwxwxxwhwwwxvwwvxwxwfuVvwxwwwgwvvwfvxvwwxwwggwvgwwwxxwwxwxxxwwwxvxwxgxxvxhxxxxwxwwgwxwxxxwvxwwwvwxwxxxvxwhwxvhxxxgwvxxxxxvxxxgxxxwwxxxvxwgwwxxxxwxwhwvguVgvvWwwwwwwwvwwvgwwxwxwwwxwwwxxwxwwwwgxvhwvWvxxwwxxwhxxxwvxwxwxxwxxwwgwhwwxxwwgxwwxywxxwvxwwxxgxxxxxxxxuwwggwwwxgffxgwvwwvgvwwwwwxxwxvxvvggffwefufvxgwvvhgvwwwwxwwwgvwxxwwvgxwwxwwwwwxwxwwwwwwxwwxwxxwwwwwwwwwwwwxwwwwwwwwwwwvwvxgvgxwwwwuuhwwwwwxxwxxwwwxwwwwxwxxwwwwuuwwwxwxwvwgwfwwTEvwffwwfvgvwwwghvwvwwvwgwwfvgevegxvggvggwwgvgggwxwwxwwwwwxxwxwxwwxwxxwwwwxwxwwgxhxgxwxxwxwwxxwvwwgwvxfwvwwwxwwwxwxgwwwwwvvvxwvgwgwwwwwfhwwfxvwwgwwgxwgwxxwxwwxwwxwxwvxfwxxxxxwgvgwxwwwvwgwwxwhwgwwwvhwxvfwwwxwwwwvvwwwwwxxxwwxwxwxwvxwxgwxwwgwwxxwxwxwwwwxxxxvgvvwvwwxwxwxwwwwwxxxwxwwwxxvhxxwxxhxwwwxwwxxwxxxxwxxxxxxwxwwwgwwwwgwggxgwxwwgwwhxwwwwwwwxwwwxwwwwxwxvvxxxwxxxwxxxxxhxwxwxxxxxwxxwwwxwwxwwwwxhhxwvvwwwwwwwxxxxxxwwwwwwwxxwwwxwwwwwxwxhwwxwwxxwwxvxxxwwgxwvvwxwhgfwghwfffwgvxwwwwwwvwvwvUffwwwxwvxwwwwwwwfxxxfggwfwxwxhwwxxwwwxxwxwwgwwxwwgwwvfvfgvvxxwxvvxwxwxxgwxxwxxvxxwwwwwwxwvwvxxxwhxxxwwxxwwvvwwgxxgfwvfwwegugxhwUfvgwvghwgfwwUVwwvwwgxwwgwwwvwwgwxwwwwvgxwwwgwvvwwxxwhwgxwwwwxxwvxwwwvxxxhwxxxxwvxxwwwugufgwwwwgxgvwwxwgwvwxfwxxwxxxxwxwwxwwwvxvwwxwxwxxxwvxwxwxxxwhwxwxwwxwwwwxwwgwxwwvghgvwfvwwwxwxwhwwwxxwwwwwxwxwxxxhxwxvxwwxwwxxwxxxxwxxxwvwxxwxwxxwwwxhwwwwfwwxxwvxwvvxxwwxwxxwwwxxxxxxxxxwwwfwfxwwwwwhwwwwwxgwwwxwxwwwwwwwwxxwwxxwwvxxxgwhxxxxxxwxxyxxxwxhxgwwxfxgwwxwwwwxwwxxxxwxwxxxwwxwxxxxxxxxxxwugwgwwxfvwxwxwwwwwgvgwvwwwwwwwwfwwwwwfgwwxwgwwwfwfguvwxvgfwwwwvgvwwvwwvxVevwvgwffwwwewgvgvvwwwxvvvvwwwwwxwwwxwxugfgvwgwxwwwvwwvxgwwwwxgwxxwxevvwveVvffwwwxvVgwwwwwvgxxefgvfwwwfvxxwwwwxxwwxxxVffvgwxxggwwwwvwwwwwxwwwwffwgxwhxwwwwxxxwxyUefefwgfvwwwxwvvfvxvfwgwwwxgxxvufwwxwwwxwwwxxxxwhvhefwfwvgwwwwxwxwxwvwwwwgvwwwwxwwwwxxwxxxwwwvfvwvwwvwwwvwwwwwwwwwxxwxxggevvwxgxwxvwxxwwwxxxxxwwvwwwgxfvwwwwwvwvxwwwxxxxvvvwxxxxxwxxwxxxfvvvwxwxxxxwwxwxxwxxxxvwvgvwxvvxwwxxwxwwxxxvxwxxgxxwwggwwgwvwwxwwxxwxxwwwwxwxxvxwwvvxwfvwwxwwwxvxwxwwxwwwwxxxwwwwwxxwvgwwwwwxwwvwxxwxxxwwxwxxwwvxuWVwWvvVvvwfwfwWwvwwgwfwwgxffwvxgwvxwgwwxvhvwvvxfvvxxwfvwwgfevguwfwwwvWfwwxwggwfxwwwwuwvwwuwuvxvxwwxxwhgwwwwwwewvwffwwwwfgvwvgggvfwvvwgwxgvuvwwhgvwwwwwwvwhwwwvvwwuwvffugvwwxvgwwwwwxwgwwwxwwwwvwvwwwwwxxxfwxwwwwhVvvfwwgwvgfWwfgfggwWvwWgfwwhfxvgWwwvhVvwxVxwvwvvhwwhgvghwgwxggvwwVvwfwvwwwgwwwvwhxfgwwwwxxXfwwvwwvfgwxwxfxxwwxhwwwwwwxxwxufgvWwvwVvvgwgfwfuvggwggwwvwxxwwwfggxvhfvfgxwwgwxhwwwxxwxvwgfvwvgvwwgwwfvwwfwwgwvxwwwwwvfffwgxxwwvxwvwwwvxvwgvwgwwvVvfvVwvuwgggxgwwwwwvwwgwwgwxwwwwwwwwwxgxvfUwfuwwgvvwvwxwwwxwwwhxxxwhxwxwwxxwxwxxwwwwwwwxvgwvwwvwWwwwwgwfwvwhgfvwgxWvwgwxgxwwwxxhxxwxwwwxvgxwuwvxvwfvvxvggwvvxxvwvxwxvxwwwwxxwwxxxwhxwwwwwwgfwwvwfvVgwwgxVfvwxWwhwwwwhwfxxvgxgwwxwxxhxhxwwwhhxxxfwuvwwgwwwwwxxVwwwxvxxhWhhWwxwwwxwxxxxwgwxxwwhvwwffuwvwwwvxwfxwhwgvwvwWwgwvwvwwwwxxWwwxxvwwxxwwgxgvwwfhxwhwwgwwvxgvxxwvwxwwxwxgxwwxxwwvwwwxxyfxgwgwwfwwwfwgxwwxxwwwvgwxwwuxwxwxwwwxwxwwggwhxwxxxgwwwwgvxwvwggvxvvwwxxvwvwWwwwwxwwwgxwwxwxxxxxxxxgwgggxuwwwfwwxwwWwwwwWgvhwxwwxwgwwxxwwxxxxxwxwvvwfwwwgvwwwwxxwwxxgxwwwxwxwwwxxxxxvwgxgwgggWfwtfvwwFvghwwfvvxgwvwWfgwwWwwxwwxxxxwxxwxxxxxwfwxghwwvgwwGvwxxxwwwwxwvwwhgwwhwxxwxxxwxwxxxxxxxxxxxwGggfGvvfwxvxxgvgwhwwhvwwwwwwwwxxxxxxxxxwxvxxxwxwwwgwwfwwxwxwwwwwwxxxxxxwfwwxwxwxxwhxxwwwwwwxwwwvxuxvgwwggxvxgvxwwxwxxxxxxxxxwwgwxwxfxvwxXwwwxhwwwxxwxwxxxyxxxxwwwwwwwwfgvwwxwwgwxxwxwwvxwwxwxwxwxxwxxxxxxwfwwwxvwwxwwwwwwxxxhwxwwwgwwwxgxxwxgwgwugwgvvfxgxwgwwxwxwuwwwwwxwwxxwxxxwxxwhxxvxwxWvwwvwwgvwwxxxxxxhxXwxxwwxwxxxxxxwwwwwwwwxxwwhwwwxxhxxxguwwxxxwwhxwxxxxxwxxxwvggxwwwwwwwwgxxwxwxwwxxwxxxwxxxxggwvwxwwwwgwwvvgvwwvwWwwxwwwvwfwxxwwwwgwwwwwgwvwwwwvgvwgwggwwwwwwwwgwxwwwxwgwwwwwwxvwgvwxwxwwxwgvwwwfWwgguwwvvwGfwwwxgwwwwwwggegwuwwwwwxxxgvwwwxwxxxwVfwwfwwwvxwvwxwvwwwwwvxxwwxvwvwxvwwwxxhwxwxwwwfvwxwgwwvgwfwwvvggwwfwwwwgwwwgvgggwFwvgwwgwwwgvwgwgwgwhhxwhvwgggwwwwgwwwwvwwwwwwwxwwwwgwgwwwxxwwwvwwfxhwxfgwxwwwgffvgwugwggwxwgfvgwWwgwwwgxfwwwwwwvxxwvvxgxvgwwxfwxxwwwwfwwvgwwwwxxvwvvvgwwxvxwhxwwwgwgwwwwwwgxwwxwwhwwwwwxfwwwwfwwwwvvwxwwwwxxwwxwwwwhxxxxwxxxwxxxwvgvwwwxxvwvwxwwvxfxwwxxwxxxwwwxxxxwxwwvwgugweWwwhxvtfgxwwvxwgweWxxWgxxxxxwwxgxvgwxwuvgwwgwwxwwwwwwvxwwwwxwwhwxxxwwwwvwwwgwdwvxwwhwxvgwxwwwwwxxwgvggwwxwxwwxxxwxxhxwxxwwwwwwwwxwxxwwwxxgxxxxxwgxwwwhxxxxxwxwwxwwwwvgwWwwxwxwvwwwuxwwwwxwxwgwxxxxwxwxwxxwvwwwxwxwxvwwwxxwwwvwwwwwxxxwwwwwxeffwfwvvvvgfwUwggwwvgvVvwvvvwvvwwgwwwuwvwfwvwfwgvwvwgvvwwxwwfwgwffewgvwfuuwgfwvgfwfvwwwfwgfgfvwvwgwvwvwgwggggwwwxxwwwwwfvwwgufwxwfvvvwfVvwwvvwUddwwxvwuwgwewgvwwwwwxfffvvwwgwwwgwvvwufvwfuuxwvgfffvfvwgwfwwvfwvfvfvwwwwxwwwwwfwxggvvwgwgvgvFewfwVefwffvvVUefgfwvfgwwfwwwVvwwxwwVvuwgwwwVVwwwwwwwvwwvgwvwvfwhwwWwggvXewggwgfwghWwgwfvwwxwxwvwwgwwwwxggwxgwwxwwwvegwwvvwVfuwxwwgUddggwvgwfwWwgwgvvvvwwhgwwwwfvwwwwgwwwwwwwfvvwvwgwwvwwwgewwwwWwvwvvfwwwvxwwwwgwxfxwwggvwhwgewfvwvvwwwwvwwfvgvVvwgwvxvfvwhwwwwvvwgvwwxwfvwxwxwxwxwvwwvwfgvwwwwwgwwwwwvwwwWvxwwxwwggwgvvwwxwwwggwwvxwxXvxvwhwvwwwfwwvvguwvwwxwvwgwwxgwvvwwfgvvwvxvwgwxwwWvvvwgxfwwwvwwVvwxvwwwwwwwwwvwwgwxvxvfwwvwwgwwwwxwwWwgvxvxwvgffvgfgwhhwwgVfvhgwwvghhvxxVvxgwghggwgwxhwxgwxgwwxwvwwhwgwwwxwwwvxWwxxfxwxxxwwwxxwhgvxwgwwwgwwgwxwwgfxwxwvwwwxvwwwxhwgevwwwhvwwxwwxxxwgwwWwwwwwxwwwxvwwxxwwwwwxwwwwwwwgxwxwwwvwgwxwwwwxvwwxwewwxxvwwxwxfggwgwwwxfwvwxwwwgwwhwwfwxwvwxwffwwwvvwwwxvxwvvxfwfvgvgwgVegfgvxwfwxxxxwgfxfxxwwvxwwxfwvwwxxwxxxwxwfwgwvwwwfvvxvgfwwwgwwhwgwwwwgwwxhvvgwwhvwwwxxwwwvwwwwwwgvxwvxgwwxwwwgwwxwwwwwwwwxwxwxxxxxwwwwxgwvwwwgwwfgwfxgggwggwxWwuwWgwuwggwxwwwwgwwxxwxggggwxwvxwxxxwggwwggwxffwwxfwwggggwxxxggwxxwwwwgwxxwxwxxxvxwxghhxhhwghwhwwvwgwwwwxgvvwxwgfvfgfgfvwfwxxvwwgwxxwwwwxxwwgwxxwwwgwwgwwwwgwwwwwwvgwvgxwxvvggvwwwwwwwvwwwwxwwxwxwwvggvxfxwxwwxWfwugwhgvwxwwwxwwxxwxxwxwffwwwwwvxxwwfwwwgxwxwwwxwxxxxxwxwwxxhwxgwvxxgfggwwwxwwxxwwwhxxxvxxxgwvwwwhwvwxgwxwvwwwwxwxwwxvfwwgxghfxwwvxxwxxxwwxwwwwxgwvwwvxvgwwfxwwxxwwWWxwxgxxfwwxxwhwxhxwwxxxwwhwxxwxggfhwxhwgwhxxxxxghxwwxxxxxgwxwwggxhwwwwgwvxwwgwxwxwwwwwghgwwwxvwwxxxwwhwhwxwwhwwhvwwwxxvxwwwxwxxxxxwxvwwwwgxwgwwwvxwxwxxuvgwwwwwwgwwvwwwwwwvxwwwgwwxvgwwgfwxwfwwxxwwgvwhwwwxwgwvwggvwwwgwwgwwwghwwxxwgwwwvwgwwwwxgwxxxhxfwwgfWewWguwwvwwwghfvwWwvxwxwWguvwwwwwgxwxwxgxwwwgxxxxxggfvgwwwwgwwvwgwxwxwwxwwvxfwwhwwwwvxwxxwwxxvwvvwwggfhfggwgwvgvwgwwwVvuwwgwwwgwwwgwgwgxwxwhwvwwwwwwwwwwxhwgfwwxgwwwvwwwgvwwwhwwwgxwvgvgwxwwwwwhwwwxhxxxwwxwwggfwfgwggvwwwxwVvfwggvgvwwwgwxwwwgwxwwhvwxvxwwgwwghwwwvwvvwwvwwxgwgwwwfwwwgvxwwwxwwxgwwgwwxwwwwxwxwwwxhvwwwhxwwvxgwwxgwwwwwxxwwxghwvxwxwwwxxxxwxxvwwvwwgwgwhwwwwxwxwwwwxgwxxwxwwwweugggwUgwwvgwwwxxwWxxwwgwUgwwwxhxhxwwxxxxvvfwvvwxvvwwwxgxwxwwxwwvggwxwxwwwwgxxgwwwwwgwwxwwwxxeuvwxwwxwxhxwwwwxxxwxxxxxxwwwxwxwwxxxwwwxxwxgwwhwwxxxxxxxxxxwxhwxwxxwxxxxwwvwfwwxwxwwwwxwwwvWxvvxxwhgwwwxwxwxxxxhwxxxxvwvxgvxwwwgxxxxwxxwwxwxxwxxwUwwwxwxgwxwwVvvwwxgxgwwgwwwxgwwwxfwxwwwxvgwwwwxwgvxwxxVvwwvfvwxgxwvvwwwWwwwgvxwxwxuwwgwvwwvwwwwwwwwxgwgfvwwwgxwwwwvfggwwxvwwxxxxwwfxwwxgwhxwgvvXwxxwwwuwvgwvxwwwxwwwvwwvwvxwwwxfwgwgxvvvxwxwxwuwvwgwwwhwgvwwwghwgFfvxhwgevgxwwvWfvxvwwgwwWguwxwwxwgxxxwvwxhwgwwvxxxwWwwxgVwwwwxgwgwwgvwwvwxxwvwxwVwWwwWWvvxwWfugxxwwwwwxwwxwuwwxxwwwwxvxwhwwwwwwwhgwwwvxwwxwxxwvwwvwvgwwwwwuwxwwxxwwwwxxwwvxfwwwwwvwvwwfwfwwvuvvwxwwwwwwwhwxwwxxxxxwwwwwwwvxwgguxwwxxhwwwwwxxxxxwxxwwvxxxwwwxxxxxvVvgwwwwwwxwgvxwfxgwwwwvwwwwwxwxwgxhxwwwxwwwvvwxxxxwwgwxgxwwvwvvwxgwxwwxxxwgwwxvwwxxxgvgwhxxwxwxxxwxwwwxxxxxvxwgxhwwwwxxgwwxvwwwxvxwwwxwxxxwxwxwwggvwwwwxxwxxwxwgfXxwgwwwxwggwwwwwgvgxwhxxxwwxwxwwwfvwwwwxwwwxxwwwwxxvxwwwwwwwxwxwgxvwgxwggfwgwwxwxghwhwwxwxwxwvwwxwvwxxwwwwwhgwwxwwfxwxwxxwwfwwvwvwxgvwwwwwwgwxwxxxwwvwwwxwxwfhfwwhwxwwwwgwwhwfwwwwwwwwvhvxwxfwwhxxwwxvwxwwfxwvwwxwwwxwwfwwwxxwwxwxxwwxwxgxvwwxwxwhwxwwxwXwgwwwgvwhwxwwwxwvgxxgwwxwhwwxwxxwwwhxwwwgxwxwwwwwwwwwxgwwwxxxxhgwxwwwxxwwwxwxxxwvxgxxxghxwwxxwggfwfwwgwwhwwgvwhxxhgwwxxwwwwfvxwvwwgxwwxxxwxxxwgwwxvwvwfwfwwxwwwxwwwwwxxvwvwwwwwwwwxwxwxgvwwwwwwwxwvwxxwfvxwxwxxwwhwxxxxxxghwwwwxxwgxxwwwxwxwwxxxwwwwhwwwwwwvhwxgwwwxwxvwwgvwxwwhxwwxwwwwxwxxwxwvwxwxwwgvxwxwxwxxwvxwwwwxxwwxxhxwxxxwxwvwxfwwhxxhwwxxgxxxxwwwwxxxwxxhxwxwxwwxxwwxwxxxwwwxxxxghwxwxwwxwxwxxxwwvwxxxwwxxwwwhxwwxxwwxxwwvwxxwxxxxwwwvvwxxwwwxxwxxwwxwxxwexxggvvxgggwxxgwgvwwwwwxwggvwwwwxxgwvwvxxxgxgwgwgfvwvwwwwhwxxwwwgwwwwwwhxwxxxgwwfgwwxggwwghgwhvwwwxxxvhwgvwwwvwgwxwxwxwwwggvgwwwvxwwxxxvwwxxhwwwwgvwvwxxxxxgvwwxvwwwXVeggWfgwfwhggxwvxwxwxxwwgwwevwxgwgwwxwvhgvwxgxhxgufwwggvgxwxwwwxwwxxxfwwWwxxwwwxxWgWgwvwvvwwxxxwvwxxwxgVevhxwwhxxxwwxhwwxgwwxxgwwwwwwxwwxxwwhxwxwwxwxgwxxgvwwgwwfwwwxwwwxxwwxwxwuvwwwxwxwixxwwvWwvwwwxxxxxxxxxxwhxxhxwxwwvwggfgvwwwwwxxwxgxwwwvwxwxwxwxxxxxxxwxwvwwgvwwwgwxxxxxwxxxxxxxxgxwfvwgvwvxwwwxhxxxxxxwxvwxwxxwxxxwwxhxxxfwgwwwwxxxxxxxxhwxwwwgwxhwgffwxggxwxhvxwxxxxxxwxwxxwvxxxxxxwwwwwgvxxxwwxxwuwwgwwwfwgwwggxwvwwfwwgwgwwwxwgwwwwghwxwvvgxwwwxwvvhxxwwvwWwvfwwvwwwwgvwwwwwwwxxgwvvvwvvwvwgwwwxwhwxxwwfgwwgwfwVeUuuwfwwwwwwUvvwgxvvvwwvfwfwwvxgvvvwwwwhxxwxwwgvwvvvxUvvwgvwxwwwwxxwwwxvvwwwwuwwxwwwwwwwxxwwwvwwwwETgfwfffwWgwfvgwgvvggwwwgwwUwwwwfvwgwxwwwwxwxxwvxhfxxfwwfgvwwwwwwxwwwwwwxxwwxwwwwwwxwggvwwxhxgwwwwxwxgwwvvxfffwUuuwgvXgwwwwwwgwgxfwwwgvvxwwwvwwwwwxwwwwxwxwwvxwwwgwvwvfwwwxwwwwwwwVewwxwwvgxwwwxxwwwwfwwwwgxwwvwvggwvvvggwwxwxhvvwwxwxwwwwggfgwxxwwwxxxxwxwwgwwwwwgvvwwwwwwwwwwwwwxxwhxwwwwwwwxwwwhwwxgwxwvfwfwwvwwwwvvwgwgwuwwxxxgwvwwxxxwxwwhwwhwwwxgwwvvvfxxwwwwxxwwxwwwxwwwwwwhwwxwwhxxwxwwwUwwwwfvwwxwwgvwxxgwwxwxwwgwggfxxwxxxxwwxxxxwxwwwwxwwwxwwwwwhxxwwwwxwwwxxwxxwwwxxxwwhwwxxxwwxwwwxwwwwwvvgwwvvwwvxwgxhvxwwwwxxwwhwwwxwxwwxwvxwxwxwvwwwfwwwwwwwvwwwwwuggwgwvgwwwwwwxwwwhhwwwwwwgwxwwwwwwvwwwggfwwxfwwwxfwwwgwgwwwwgwvxgwwxhwxgwvxxxwgvwxwwxfwwwwxxxxwxxxwgwwwgVewwgxgwvgVewxwwwwxwxgWVvfvvhwfvxwhhffvhxwxxwffggwxwxwxwwgvxhxgxxxffvxwxwwwhxwxxxxxxwgwwwxWgvwvvWvuxgXgwgXwgvwwwwvwggWwgwwwvwwgvxwhgXwhxwgvwxwwxghwgWxgwxfvxwvwwwgWwxwwwwwxxxxwgwxxgxgwwxwwxwhwwwxwhhxxhxxxwwWffwwwwxgwvxwwwxwgWwggwwvwxwxgwxgVgWwxxwhwwwwwxgxxXxwhxwxxwxxwwwwxXgWwwwxxwxgxxxwxxhXxwwwwfvwwwhxxvwwxxhhhwwwxgwxwxwwgwwwxwwwggwwwwwxxwvwxhxxwwwwvxwwgvwxxxxwwwwghghwwgxxwwwwxxxxxxwwwxxgxxxxxxxxwwggvVvehfvuxwhWwVvehxxwxxgxwvvefXxxwwwxwxxxxxxfvvgwwggxwxwwwxwxxxxxwxxwwwwxxxxxxxwwxxxxwwxwhggwwxuvwxhgghwhxwxwxxgxwxwwwxxxxxwxwwxxhxxxwwxfwxhwxvxxwwwgwxxxxwhwxxxxxxxxwxxxgxxxhwwxggfgxgwwwhxhggwxgxxhxwwgwxwhhxxwhhxhxwwxwgxwwwwxwwwxxwxhgvwhxvwxxwxxwwwuwwwfvVwwwfwWvWwwwgwwwwwggvwwwwwwvfvvvwwgwwwwwgfwwwgwwwwxwgwwwfvwgvwwwwwwgvgvwwwxwwgwwwuwwfwgwvxfvvvxxxxgwwwWvvwwfgvfgvwvwwvwvvwwvxwhxwwwDuufwwxxwfwwwwhvxxxvvxvuwwffvfwwwuwxvvwwvvwgwwwwwwfvvwwwwxwwxxwwwwxxwvvgwgVgvfwwgwvwwVwwgVwwwwgwwwwvFewffVvgevwfgvvfwwxXfwwvwxwwwxwgwwwgwwgwwwwxwwxwgvwfwwwxxwggwwwwwwxhwwwwfxgxhgxwxwxxwfwDuefvwvwwwxwfwwwgfwwwwwwwwwfuvwwwwXxxwwwwwwxxvfwwwwwwwxwgwwwwwwxwwwwwwwxxwgwvxwwxwxwfwwwvwvxguxgxvwvwwwwvwxuffwwwwwwwwwwWwxwxxxvwewwwxxwwxfgwgxxwxwxwwvgwwwwwwxwwwxwwhwwxhgwxwgwxwxwxxxwxfxwgwwwwgwwwwhwgwwxwgwwwwhgvvwwgwxwxxxwwwwxgxgwhgxgxgvwvgwwwxwwxwhxwwwwxxxwwxxwwhxwwwffwvgwxxxwfgwgxwwwxxxwxxfwwwwwwwxwwwxxxxxwwwxxwwxxxgvwwwhxxxwxvxwxwxwxxxfxxwwwxxwwxwwxwxxwwxwxxgvwwwfwxxwgxgwwwxwxwwxxhgwhxwwxwxxwxfwxxwxwwwxgwhvwwwwxuwwwgwvgvwwwwvvgwffgvxwgwwwffgwvggvvwwwwwvggwgvgwwwwwxwwgwwvVegwvwwwvffgvgvwwfvvxxxffwgvwwwwwwwwwvgwwwwxvwxwwwgvvfvggvfwvwwwfgvggwvwwgwwwgwGvwevuwgwgwxUeugwwwwvxgwwxwwffwwgvwwvwxwwwwvvfwwwwwwwevuwtwwgvvwgwwwwvwvwxwwxwwwgwvvffgvwgwwwwww6egvwvfvxvwgvgfgwfvvfgwwwgwfffvfgvwgwhxwxffggvwwwvwwwxxgvgwxwwwgvxggvxwgvwwxwxgvgwxgwwvwgvwwwwhfhwvvfwwgwvvwxwxwfvffwwvwwwxwwvwvUeugwwwwvwwwxwxxvgwGwwgvwwxgwxgvwvwwwwwxwwvgvvgvwwxvwvwwwwwwvwvwwgxhxwwwgvwgtwwxwvwvgwwvvgwwwwwgwwgwwwwWwWwwvggwwxfvwxvxvwxwxwwxhxwwwvwwxwwvwwgwwwxxwwwvwwwwwwvgwxgvwwxxxwwhwwxwwvwwwwwwwgvwwvgwvvgwvgvxwxvhwwvwvvvwxhwwxvwwwxwgxwwwxgwwwwxwgvwwwwvwxwwvxwwwhxxwwxwxwwwfvwWwWxfvxwwhfxhxxxwgvwwwwxwxxhwwwxwgwhwwwxhggwvwwwwwxxwwfvwwhvwwwxwvwwwgwxwhwxvgwwgwgwxwwhwgwxxwwwxvwxwwxwvxwvxxggvwwxvwvvwwwwwwxwxwxwxwwxxxwwwwwvwwxxwxwvxfwwxwwwwwwxwwwxwxxwwxwvwwxwhgVvuxhwgvvwWwwghfwwwXwwvwxgWvgwwwwwuhwxxgwwwhwgfgwwgxghvwgxwwwwxWwwwwwxwwwxwvgxvxwxwxwxwxwxwwgxwwxvxwwgggwwhWfwwwwgfwwwvwxwgwwwwwuvhwwvwwwhwwgxwwXwwwxwwvfggwugvwwwxwwwwxxwwwwvxwwwwxxwwwxxwwxgWwwwvvvvwhgvwWwxWwgwxGvwgwWWgwxwwwwwgwvfwwvggwggxwgwwgvggwwwxgwwwvhwxwwghwwgwxxwgwggwxxwhwhxxxxVvwghwwwxxxwwwxxwwhwwgxxhxgxwwfxwwwwwwwwwxgwguwhwggwgwwxwxgvwWwwwggxfwwwwxxwwwggwgxgwxVvwvgvxwxwvxwwvxfgxwxxwwwwxuwwvxwhwwxxwxwwvhwgfxwghxvWwwwwxwvwxxwwhwwfwxwwhwxvwwgwwxgxwxghgxwvxwwxxgxxvxwgwxwxxwxwwvxxvwxwxwxhwxWwxwwxxxwwwwWwxggxwwxwwuwxwxxvxwwwXwwgxxxxwwwwxxwxwwhxxwwhxxwxxwwwwxwvwwxwgWwwxwxxwhwwwwwxgvwxwxghwxxwxwxwxwwwxwxxwxxwxwgxxxxxwxwxwwxwxhxvxxwxxxwxxhxgxxxxxwxwxxwgwxxxxwwwwwgwwxxhxxxxxxhxxhxxxwxgwxwxwwxwxwxxgwwxvxxwwwxxxxhxgxgxwxwxxxxxugfgvggwhugwvgwgfxwwwgwgvwffvxxxgwuvhwwwwxwwxwxxvwwwggfwvwvwxvxvgvwwwfwvxvguwwvxvvwxwfwwgwwvwvVwwfvvwwgwwvgwwVwwfuxwxwwfwvfwwwxwwhxvwgwwxhxxwxxxwwwuxfvwfxwwxwfwvwwwwgwwwgwvxvwxwwhwvgxvvggwwwwwfffgwgvvfwfgfwgggxxgwvwwwwwxxwwfwwWwfwgwvgwwwVwvwwwgwWwgfxxwggvwgxwwwwfwwwwfwvxhwwxvwxxwwgwgxxxwxhxwwxxxwxwggxxwwxxfwwfvvwwwgwxwfwuxwwwxwwgxxwxfgvwvxwxgwfwxwfgggwwwwxwwxwfwwwwwwwwwxwgxgwwwwwwwwwxwwwxwwgwhxxwwxwwwwwwwxwwxvwvgvxwwvwgwwwwxxxWvgxgwxwwwgxxwwxxxwVfwwwwwxwfwxxwwwwwwgxwxxxwxxxuwwwgfwwwwwwwxwwwxuxwxxxxwxwwgwvvwgxwxhfwwwhxghwfxwxwvvgwwwvwwwxxvhwwwwwxwwxwwwxwwxxwxgxwhwvwwwghvwwewvwwwxwwgwwxhwwxxfwWgxwxwxxwxwxwxwwxxwxVwvvwwwwxwxwwxhhxxxwwxxwggxxxxxxxggxxxxfvvwgwwwxxxgwghwgwvwxwgxwwwwwgxxggxxxwwwhxwwxxvxwvwwwxxxwxhwwwwwwxwvwxwwxxwxwwxxxwxhhdggwVvwgwfxvggwgwwvxwvvfwfwvWvvxugvwwwwuwxvgggvvvvfhuwwwgvvwwwwgffWwvxvwggwwgwxvggffvvwxwwghWvwwwwwghwgxVvvufvgWvfvvhvwvgvwwvwxvwhwgWvvvvheevgwxhwuexuwgwwwwwwwwvwvVwvxfvwwgwuwwwwwxwwgvxvwwwwxwwvxxwwgwwwwxwwxgfwwxgwgGewWfvwgggwwwwwWgvwvhwvgGuwgvvwgvgxvwvXWguwvhwgvwfXwxfxvwxxwxgwwhwwwxxxxxhwwwxxxwwwwwwwwwxwxxwGWgwwwwwhxwxGWhhgwvgggwvwFgewwxwwWfvxwgggvxwwghwwWfdgwwwwwwHwvwwvhgwwwwwvwwwwwxwvxwwwhwwwwwwxxgwxwwxwwwwgwwwwxwWggwwwwwwwwghwwgwwwvwwwwwvwxwgvwvwwwguwgwwxwwwvfxwwxxwvwxwxwwwwwxwwwwVwdwgfwwwwwhGwugxwxxxxwwwwgwxwxxhxwwwxxxwxxxuvwxfvfwvwxvvgwuwwxvwwwxgwweuwvwwwhxxgwwvwwxxwgwgwwvxwxxxwwgwxwwwwxwwwwxxwxgwvxxwwwwwwxwgvhwvwvwvvwxwWgvxXhgvwxxxwxwfwvxxxxgwxwwwwxhxwwxxxwxxwxgwwxxvxxxwwwwwxxwxxhwxxxxxwxwxxwgwxwwwhhwwwwwxwwwwxxxvhgwwwfwxwwwgwggxxwxwwhwxxwwwwxfhwwwwxxhxxwxwwwxwxgwxwgwxwxwxwwxvwwxxvwvwwWwvxgvwfxwvvwwggwwwxXgwgxVvwgfwwwhvxgwwwggwwfwxfwfwhwwwgwvgwgvwwxwwwggwwwwwwwwghvwxwwxwwxwwxxwxgwwhwwghxgwxgggvxwgwxfgWwfvwxWwvwwhxwwfgwwxxvwwxwwhgwwxwxhwwhwvwwwwwvwwwwxvwwvxwxvxvwwxvwxwfxwwwwxhwwwgwvfwgwvwwxgwewfwggwxhggggvvwgwgwwWfgwvwWwWguxwwgwwwxwgwggwxwwgwgwfwgwgwWwwwxxghwxxxgwxgxwxwgxxxhwwwwxxxwhxxhwxxwxxxwxWhwfwhwwxwxwgwwWwxvwwgwvgwggvwhwxgwgwxvxgwwgxwxhgwvvwxgwfwxxwwwwxfwwwxhwwwwwwwwwxwxxhwwvxxxhwxwxwwwxvwgwxwgwuwgwWwxxwWwvwxghwwxxgxvwxwwxwxwwxwxwxwwwgxgxwwwwwxfxgxxxhhwwxgxwxxwxgxxxwgwxxwgvwwgwgxwxwwvwggwvwhwwxxxvxwghwwwwwxxhgwwxwxxvxwwwxxxxwxxwvxgwxxxwxxxhwxhxwwxghxxxxgxwwwwgxwhxvwxwxWwwwhwxwwxwxwxhwwxwxxxxwxgwxwwwxxxwxxxxgwwhxwxwxwwxxhhhwxwxxgyxxxwgwwwxxxxwxgwwxWxwwwxxwxwxxxxwxxwwxwxxxghhwxxwxwwwwwwxxwxwxxxxxwwxxxwwgwxxwxfgfwgwvgvxWwgwwwggxwwvwwfgwvwfggwvxvwggwwgvhwwwwwwgtvwfwwwwuvwwvwwwwwwvwgwvfwwwgwwxvwwwxwwfwwwgwUwwwewwgwxwgwwwwwwewwVwwgvwgvwxxfvxxxxwxwxgwxvxfwwwvwvwwwwwwwwwwxxvwvwvwuwwwxwwwvwxwwwfwfwgwgwvwwwgwWgggfgwgwgwvxwwwwvwVFgfwwgvwvwwwfwwwGwffwxwxwxwwwwwxwwgwwvwxgxwxwwwxxwwxxwwgegwggwxwxwwxhwxuwwhwwxwwxwxvwfwUwfwvxwwwvwwVwUwwwwxwxggvxvwwwwxxwxwxgXwwvwxwwwvgwvwfwvwwwvwxxwxwxwxwxwwwwwvwwwxxwuwwwxvxwwGwvvvxwhvwwggwxgwwwwgwwxxwwxwwxxxwxxwwefwgwwwwwxwwwwhwxwxwvwxwxvwxxxxwxxwwwxvxgvgfgwwgwuwwvxwxwwxwxxxuvwxvwwwvxxwhwwwxxxxxwxwgwxvwwwgfwwwwwxgwxwwwwwxwwwhwxwwhwwwwwxwwxwvxgwvgwGgfwwwwwwwwhxxhxxxwxwwxwwwwhwxxwwxxxxwxwwwxgwvuwxwhwwfwwwxxxxxwwwwwgxxxwhwwwxxxwxwxwwwxwwvwvxwwvxwwwwgxxxffxxxxwwwxwxwwhxxhxwwxxwxwxwwvxxwwxxxxwxxwwwwwwwxwwwwwwxwwxwxtvfwvfvvwwvfgvwvwgwvvvwwxfvwwfwwwwvwvwfwwxwgfxxxwvfvvvwvwwgwxvwwwhwwwwgxwwxvwgVwwxwgwwxwfvxgxwxxxxxxfwffdwWVfwvwgfdwgwxvvwxxwWwgwvwwwwvwgwvxgwxxwwxwgUgwuwfwvwwwwwwwwwwwxwxwwwghwvxwwxwwwwwxwwxxwgwvwvgfwwwgwxxggfVgvwvgggwvwwwWgwwgvwwwgwxxxFvhwwwwxwvxwwWvwgxgvggwwxxwwggwwwwxxwgxvwxwWwVwxvwgxxwxxwwvhwwwvwwwxgfwewvggvgffwwggvhwwwwxwwwwwwgwvwwxwhwwxvwgwwwwwwwxwwgwwxwxfwwvwWwgwffxxggwwxxvwxxwfvwxwwxwwfgwwwwwvxvwgvwwwxvvwxwwxwwvhxwxwwwxxwxvwxwgwwxwvvwwwwhwwxWwxwhxxhwvwxwwwwwwwxwxxxxvwwwgvdgvuWgwwwgvdgxwwxwwxwwxwWvwwwwwxxwwwxWwxwwwwwxxwfewwwwwwwwwwwxwwxwxgwwwwwwxxwvwgwwwwwwwxhxvwwwxwwgwhwxxgwuwxwxxgxxwvwwgwwwxxxwgwwwwxwwgxxxgwWxwgwgxxgwwwwwwwgwxxwxxxwwwxxxxxwgwuwwwwxwxxwwwgwwwwhwxxwwgwxxvwxwwXwwwwwwwwxwvwxwxwwvwxwuxwwxwwwwwxwwwwwuwggvwwwxgwggvwwgwwxwgwwwxwgxwwhWgwWgwwwvxxwxwxxwwwwwwvxgxgwxwxxxwgWwgwxgvxxwxwxwwyhgvxeWwwwgwxxhwwwvwwwwxwxwwwxvwhwxwxxxwgwwwwwxwxwxwxwxxwxxwwxxxwxwwwwvgvxhwxWfwwgxwxwwwwvwwxwwvgwgwwxWgwwWwwwxxxgwwxwxggwwgvxwxhwwwhwxxwxwwgwxxwwwxxxwxwxxwxxgwxxxvWwwwfggwvwxwxwwwwwxwvwwvgwwwxwxwxxxxxxwwxxgwvwwwgwwwxwwwwxxwxxwwwxwhwwxwxwwxwxxwxxwwxwwgwxwwwwvxwwwxxwwxgxxxxxxhwxxxwgwwvgwwwxvxwxwyxxwhwxxxxwxxxxwwwwvxwwwxvvwghxxvwxwuxwwxxhxhxxxwxhgwxwxwxxwwxhxxhxggxwxwxwxxxxxxxwxxwwwwwwxxxwwgwvxhxhwxxhwxwwxxxxxxxgxxgwxxxwwxhxxxwwxxwxxwwxwwxwxwwxwxxwxwxxwhwwwwxwxwxwxxwgxxxyhxxwxxwwxxxxvwvxhwxwwxwxxxxfwxwwwxxxwwwxwwwwxxxwwgwfwvhgwwvxxwgxwgvwwvwxgxwgwwwwxwwwxwxxwvwwwwvxhwwxgwwgwggxwxwwxwggxxwxxwggwgggxwwxxewvwgwhwvwwwwwxxxvwwwwwwwwxgvvhgwwwwwwxvxxwxwwxwvwwVewgwwvwxwwhwvwwwwxgvxxxwgWfwgvfgwxwwxuegwwggwwxxwwwvvwxwwwxxwxwwwxwwwxxwxwgfwwwwvwxxwxWgguwwwxxxWgguggfxgVvewgxgxxwwwgvvwvwwxvxgwwxxwwgwgwwxxwvwxxxwwwwwwwxwhxxwwwwwxxgwwxwwwwgvvxwvwwwwxxwwwxxxxxxxwgwxxxhwwwwwwgxwwwxgfvwwwwwxxwwxwxxwvwwxwxwwxgvwxxwxxxwwxxwxwwwvxwwxxwxxwwwwwxxxwwhxxxxxxxwwwwwwxxhwxvxxwwwwgwxxxwvwvwxgvxwwwvxwgxxxwxwxxxwhWwvxwxgwxwwwxwwxwxwwwxwwwvgxVvvwvgfuwxgwvwfwwwvvwwwwwgwfwgwxugwwvwwwvvwxgwwvxwwfvwvwwhvwwwwwvgwwwwwwwwvxggvwvwvxvggvwwgwwhwwwxwwwwwgvvxwwVvxfWwvhvwggvfwwwwhwwwgwwgwuwgwwwwwwwvwwwwwxwwvvxwwwvwwvwwfwwwwwxwggxvxvwfvvwwwwwuwwwwwxwwwvuvwwgwwxWfgwwwggwwwvVwggfxgvvwVgwvgvVhwxgVvwgvwgwvgxfxwwxwwwxwwWxwgxwxwwgwwwwxxwxhfwwwvgwwxgxwxwwfwgvwwwgghwwxwfwwvwvwwvvwhvwxguvggwhuxhgwwWwwxwwgwwwwwwwwvwwwwvwwwwwgwwvxwwxxxwggwwwgxwwgxxwxwwwxwwwxgwwwwwvwwxxwxwgxgwWvhwwwvxggwwwwwwwwwgwhwwwwwgwvxxwwwwgfwvxwwvgwxxwwwxwwwwxwxwvxwwhwwwxwxwvxvwwwwwwwwxwwvhxwgvwxwugxwvwhwwgwwhwxxwwhwwhwxwwxwvvwxwwvwwxwxwxwwvgxhgxwvwxwwwxxgwxwxxwxxxwwvwfwvwxwwxwgwwxwwfxxxwwxwwwxwxxxxgwxgxxwwhxhgwxwwwxgxxxxwxxgvxwxxxwxxwwhwwxgwwxvxwhwwwxgwgwxwvwxxgwwwxxwwgwwfwxwwwxwwvwxwxxwXxxxwwxhvwxxxwwwvxgxwwwxwwxwxwwuwxwwxuxwwgwgwgwwfgewfgggwwwwfgfwvvvggwwvVVwwxggxfgfwfwggWwvwwwwwwXWuwwwggwvwggvwwWwxxfWgfgFvvxWvvxwvvwgwWhxxxvwgwwwgFfvvwvwvwwxWVewfvgWvvfgxwgvwwxfvfggwwvwxxfvwwwxhwwxwgfgfwWwwxfwfxwgfvwwwggxwxwwfvwwwwxwxwwwxxwxwwgwwgwvwvwgGtfwxfwgvvwW7ugwggggvvvggfWwgWwVffggvvhvxwwgfgvggeGewxvgwwwwxwwwwwwwwwwwwxwvxxghvvvgGGwwwwWwgghwxgwwgvvwxh8VhvwxhWvwwggWVeggwwxwwgwWfUvwhv8wgxwwuvggvxwxgxvgwxwwwwwxxvvvgvxwwxwvvwwwwxgwgWwwwxwvghHWxwwwhwwvwwhwwxvwwwwwwxxxgXvwwvxwvvwvwwwwgxfwgvwwwggfwvvvgwxwwgxwewfwwwvxxgxgvwggwwwWwuwwwwwwwwwWwhxxwwVevwXxwxwwwwxhhwxwwwxwgvvgvwgghfvfxvxwguwxvggfwgwwwwvwxgvwwghwwgggwwvhvgwwxwxwwwwxxxwxwwwwwwvwwxwwxxwgwxwwwwwvvwxxggwugwvgxwxffwuxxwWxxwxwwwhwwxwgxgxxwwwwxxwwwfgxxwwgvgwhvhwxwxxwwuhhhWxxxwxxwwxvxwxgvxxxgwwwxggxxwgwwxvgwxxwxwxwwxvxxwwwxwxvwghwxwwwwwxxwwwwwwwxwXwwxwhxxxxwwxwxwxhwxxhgwwwwwvvwwwghwhwxwwxwxwvegxvwxfxwwwwhxwhxxxwgwwgwwxwwxwxgxvxhvwwwwxwgwvwxwwwxxxwxvxghfxxwxwwwwxxwwwwwwxwwwwwxwwxwxwxvxxwwwwwwgwwxwxfhvggwxgxxxxwwxhwwxwwfwxwwwxwgxxwgxxxxwwvxxwxwgwxgfwwxwwwgxhwgwvwgwxxwwhwgwfwwwhwhwxghgxwxxwxhhwwxgwvwwxxwxxwwxxwxwxxwwwwvggxxxxxvwvxhxhxxwwhwgwvgwwwwwwwwxhhwxvwvhxxwgwwwwwhxxgwwwgvxwgwwwxvxvwgxxvxwwxwxwvwxxxxgwwxwvwxwxwxwxxxhwxxxxwwwwwwgxxxxxxxgwvwvxwxxwwxxxywwxxxxxxhvwgxwwgxwwwxwxxwxxxwhwwvwxxwwxvxxwxxwwwwxxxwxhxxxxgwwxxvwyxwwwgxxxwwxwwwxxxxxxxxhxxxxwwwwxxxwxxxxxxxxwwwxxvwxxhwxxxxxwwhxwwwxwwwgxxwwwxwxxvwwEvgvxvgvwwwvfwwfwvwggwgvwwvwgvvvwxwxgwgvwfvwxxwwvwwwwewwwwwwxwwwvwwvwwwvvwwvwvxvvxwwgvwhgxwxfwgfwwvvgwwwgvwgvfwxwfxwggwwfwvwwwwgWwvwvwwwwxwvwwwvfwwwwwwxxwfwvwgwwgwwuwwxwggwuvwwxevvxhVexwwgwwwwwgfwgwFgfgwwvxggvgfwwxwwvgwwgwfgfxfxvxfvwxvwwgxwWwgwvxwwwxwwvxwxwgxwwxwwwwvgwxgwvwwwwwwwwxxwxgvhwvfwwvfwgggwwvxgwvxfxwwwwgggwgwwvxgwwfwwffwWgwwvxwwwgwgwvgwwwwwxwvwwvwwwgwgvxwwwwwwwwxwvwgvwwwwwwggvwxwgwgggvwwgvhwwvxgfwfwwgxxgvxvxxxxwwwwwwwxwvwxwxxwvwwwwvxgxwxxxwwvwwhwxwwxwwxwwhggvwwggvvwxgvxhfwvwwwxxwvxvwxxwwwwwwwwwwhgxwwxxwgwwwxxwwwwwwwxwwwwvwwwwwxgwxxwwhhgxwxwwgwgwxxwwgwwxxwxwwhhhwxwwxxwwxwxxwwxwxwwxwxxwxxxxhxwwxwxwxxxwxxwwhgwwgxwwwgwwwxwxwgvxxxwgxxwwxvwxyxwwxwxwwxxxxwxwwwxwwwvxxwhwxwxhxgfgwwwxwwhwgwgwwxxwgxwxwwwghWwggwxgvxwwhwwwwVWgvgwwxwghgxxwwxwxgwwwwwwwxwgvwxxgxxwwxgwgwggxxwgwwxVgvwhxwgwwxwxxwvxwwwwwwwxxgwwwxxwxxwgwwwwxwwwxxwwxwxwwwwwxwxxwxxxxxxwwwvxvxgwwwwwwxfhhvWgwwxgxwwxxxwwwgwwgwhgwvxxwhgwfggxgwgxxwxxxhwgxxwxgvxhxgxwgwwxhgxwwxwwVwwgxwgxxxxwwwxWvyxwxxwxxxxwggvwvgwgwgvhwwwgWgxfgwxxwwwwVgwgxxwxwxxwwxwgxxxwxwwVxwghxwxwwwwwwgwgxwwxwwwwxwwhwgwxwxwxwwxwxxhhwxxwhwxwxgwgxxxxxxxwwwxxxxwxWxwgwxxwwxwvxwxwxxwwxxxxxxwxxxggwwwXxxxwxwwwgxxwgwxhxxhwxwxwxxxxgwgxvwxwwwxxxxxwxxxxxxxxxwwxxxwwxwwwwxxxwwxghxxghxwwwwvxxxwxxwhxxxxwxhwxxwvhxxxwhwxxgxxxwxxxwxxwwxxxxxwxwxwgwwxxxhxwwxxxhxxwxxwwxwxxyxhxwxxxwwxwwxxxxxxwxxwxxtwgxgwwwfwvwVwgvwxhgvgxwwwwwwwwgwwxwhwxgxwvxwvwgwgwfxGgfufwwwgwwwxwwxwwggvwwxxwxxwxxwxwxfwwwgffwwwgwwgxwvwwfvxwxwwwwwwwwwgvxwwxffgvfwwvwgwwwwwwwwwxwuwhwxwxwxvxwxwxxfwfwggvwGffwwvxgwwwwwvvxxxwgwggwgxxwwwwwxvvwgwxxwxxwxfgvgxgwwwwwhxwwwxxxxxhwwxxxxvhwvWxwvxwXxvxxxxxgvgvwwwgvwwxvvwwgwwvgwwwvvwvvvvxwwwwewwggxxxwvxxfgwvWwwwxwxXxwvxwxxxwgwxgwwwxxxwxwwwwgwvggvwwXxwxwwxxwgwwhgxwwxwHgfwwwxwwwxxwxwwwwxxxwxxxwwwgwgvwxgwwhvxgxxxxxgxwgxxxwwxxwxwvvxvwgxxwxxxxwxwwxxxxwxwxxgxxwGffwgwwwxwwwxwxxhwxvxxxwwxxwwggfgwwwxxxxwhwvxxxwwxxvwxxwwxxxxxxxxfwvxwxxwxvxwwxwwwxwwxwxxxxwwvwwxwwwwwvwxxwxwxwxwxvxvvxgwwwwwwWgvvwxgwwwgvwgxvfgwxwwwxwwxxxwxfvwwguwwgvwwwwwfwhwwwwwwgxvwwwwxxxwxxxwxxxxwwwwvvvvgwwwvwfxgwvgwwgxwwxwwxxwxwwwxwgvwwwvvwfwxgwvwgvvxwwwwxwwwxxvvwwgfvxWgvwWgwxevwvhhxfwwgwwwgwwfhwxvwwwvwwxgxxwwxxwwxwwfvvhwwfggfgwvxhwxgxwwwxxwfwgwxwwxxhwxxwxxgfvVvvwffwwgwxvvvWwwwfwxwwwwwwwwwxwwxwxwxwwwwxxfgvwXgvgwxwwwwxwxxfwwwxwwwxxxxwwwxwwxgxwwgwxwgwwwwwgxxxwxxhvvxxwvwwxwwxxxwxwxwxxxxxxwxwxwvgwvgwwwxvwxwvwxxxxwxxwxxxvwvvhwwxvxwwxwxwxxxwxwxxggwgggwwgwxxvwwgwxwxxxvwhwxxhxxxxwxwgghxwxwwxxxwwwwxwxxvxgwwwwhxxxxwxxwxwwvvxwxwxwxvwhxxwwxwwxwxwxxwwxxxwwxwxwxwxxwwwxxewxwxwwwwwwwfvwwxxggwgwwvwxgwwgwwxwwxwwwwxwwwxgwwhwggwggwxWvWwxxVvwwxxwxgwgwxwxwxfxxgxgxxwxwgwwwwvgwwwvwwfwwwvgxwwwxwgwwwwxgwwwxwxWwgfvxxfvwfxxxgwWwhwgwwwvwwxwxfwwwxxwxxfvwwxwWgggVwwwWVWvxwgxfvfwwvwwwggwvwgwxvxfwhwxwwwwwxwxwwwwwwwhxwwwggfwwvwxxwxxxyWxwgxxwwwxgwxwxwhwwwwxxwxxxyxgfWgwwuvwwvewfevwwghwvxwwfwwvwgxvxvxxxvwvxgwxwwxwxwfgfwwvwwfwwVwfwgxwwxxwxxwwxwgwxwxwwhxxxvwwxgwxgxwxWwwwgwxgwwwggvxwxxhhgwwgwwxxxWvWwwwxwxwxwxwgxxxxxxxxhwxwxxwwwhwxxxwxwwwwxwxwwwWwwwwwwxxxxxxxxxxxxguwfhxxxwxhwvxxgwwxxxxxwWfWxwvgvwxvxxgwfwxwwwhwwxxwwxgxxxxwwxwwxxxwhggwxwwvwwxxwgwhxwxxxxhxgwwwxxxhxwxwxwxwvwvwfwwwwxwwwvxwhwwwwwwwxxxwwwwxhwgwwwvwwwxgxxxxxxwwwwwvwwwgwgwwwwwwwwwgwvgvwwwwvvxwwvgwwvvwxwwxwwxgwfwwvwvwwgwvvgxvwwxxxxvwvxvwvwwxwwxwwwwxwxwwxfgfwvvfgwfgvxvfwwvvwgvwwgwggVvwvwxwxwwwwvwvxwxwfwefvvgvwvvuvwwwwxwvwwwwwuwwwxwvwuwwxwxxwwxxwwvwwwgvfwffwwfwwgffwwggwfvwvxwwgufwwfgvwwvfwgwvgvxwvwvwgwwwxxvwggwwwxwwhxwgwxwxhfwxghxwgwwfwwgxxxvwgwwwwxhhwwhwxxvxevwdevwgvvxuwwdewvxfvwuewwwvwwfwhdvwwwwxvvvtwwwwgwwwuwwvhfgwwgvwxfwwWvwwwwwghxvgvfvgwwvwvvwgvwwwwfwvwhwwxwxfwwvwwwwwwwvwxwwwvxwwwwvwgwfxwxwwvxhhwhvvwwhwwwxwwxwhhwvgwwxgwxxxxhxwguwwvvvgggwwxxvwxwwfwgxvvffwwhxwwvwxxxwwwvgwwwwxwxxwxxwwxwwwwwxwwxxxxgvwwgxvwwxxggvvgwwwwxwwwxvxvwwwwxwxxxwxgwgwhhxxwwxwgxhwgwvxyvwhWxgwxhxgxwgwxhxxxfwwfwvxvgvwwvxxwwwvwwvxxwxxxhwwwwwwxwwxxgxwwwxwwwgwwwxxxwwxvwwwwwwxvwgwwwvgfwwfwwfgwvwxxwvwwvwvwxwgggvwwvgwxVevwwwwfvwwvwwxggwwwwvwwvfvwwvvgwvwwvwwwxwwwwxwwxwvwwwgwwvwwxwfVvwggwxwwxwxvwwvwgwwxxfwwxwwwwwwwxfvwwwwwxvvfwvwwvwvwwwxwxxgwxwwxxvgwggwwwVwwwwgggvfvwgfVwwwwwwfvwwvwwwwwxxwWfwwwxxwwwwhhwwfwwvwwxwwwvxwxxwgVuxwxxwxxwxfwwxxxxxhhwxwvxwgxhwxwVwwwwwwgvwwxwWUvwvgwvwwgvxwvwxwgwwwxwwhvxxwwxxxwgwwvwwxwggwwwwxgwvwxwxwwwvwxwxxxwxwwwwwwwxwwwwfwvwwwwWwvwgwwwvxvxwwwxxvwxxxhgwwwxxxwwxxwvwgwxwwwxxhwwvwwwwwxxxwwxwwhhwwxxvwvwwwxhwvwxwvwwvwwgwxwwwxwxwwwwwwwxwwwxwwvwxwwwxwxxxwwxxxvgwwgwwwxxwVwwwwxwxwhxwwxxwxxwxxwwxxwxxwxwwxwwwvhwwxxgwwxwwgwxwxgwwxwwxxxhhxwxwghwxxwwxgxgwxxwxxwxwwxvwwwwxwwwwxxwxxxxxwwwwxwxvxvwxxwwwwxxwwwwxwxxxwuwvwwgwfxfwwgwwwwwwwvWwvwvwvxgffxxgwvwvgfwWgwwwwwWxwwggvwhwvwfgvxwwwwhwwwwgwxvggfwwwFVvwwgwgxgwwxwwwwxxhfwvvwwwxgWUgwvfgfvWgvwgvwwwwwxwxvwwvwwwxwxwwwwwwwwwwxwwwwwFVvwwwwxwwgwgwwwggwhxxwwwwwvwwgxwwwwxwxwwxwxwwewwxggvwggwxfxvxffvvwgwwVWevwWwwvfgwVvgxwwwxwxgx5FevggwggxgwxwhgggwwwWwwwwwgwxwwgWxgwxHwxxgwvxwWgwxgvwwwxwgwwgxwwxwxwxxhgvwvgwVfvxgvvwvwww5FevwWfwvggwwvvwvwxwhgxwwwfwwxxwwgwwwwgwwwwvwwwWgwwhgwxwxwwwwxgwgxhgwxwwxuwwwxxwxhwwwxwwwgwxxwwvwwwwgwgvxwwwwWvwwwxwwxwxxhWUwwvwwwwgwwxwxwxxxwgwwfgvwwxwgxwwgwxwhxxxwvwgwwwwxxxxwwxuvwvgxvwwxvwwvwxwxwvwwxxwwxxwgxwwxwxxxwxfvwvwwxxxwgxxwxwvxwwwwhxxwhxwxxwxwxxuwwwwwxgwxwxxwwxxwvwvwwggxwhgWuvwWwxwxxwxwxgvvxgxwxwxwxwwxwwwxwxxwxgxwwvwwwvwwwwxwxwxhwghhwxxxxwxwwxxxxwwxxfwwwwwxwxuxxwvxwxwwwwxwxwxwwwwwhwxwwxvwwwwwxwwwxgwwxwwwwxwxwxgxxwhwwxvwwwxhxgvwwxvwxhxxwxxxwfwxfwwwxxwxuwfxwwxxxwhxwxwwwgvxfwxgwwwwwxgggwgvxwgwxfwxwvvgwwvxwwvgxwgwhhhWggwwxgxfxhxwwxxxxfwwwwwwwwwgwvwgwxwwvwggwgvxxwxxffwvwwwwwwwxwxgvfhgwvxxxwgxxwxxxxwwwxxxfwvxhwggvggwwVwwwgwwwWeguugwhxhwgwwxxxxxxxgvwwxwwWwXwwwwgwxgwwvxxxvggwhvwwxxgxwxwxgugvuwwwwwvxwwvvwwwwwwvwwxgvvwwwwwxwxxxgxwxgWwwXwwwwgxvvxxgvwxwwxxxxxwwxxxxwxwxwwhwggwwxgggwvwwwhxxwwwwhwwwWggvxxxxxxgwwhxxhwwwxxwxvwxxwgxwwwwwwxvxgwgwxxwwxxwwvwxxgwxxwxwxxxxwxxWugvwxxfxxxwwxwwxhxwwxxxwxxvWgwXwwxwxwxxwxxwwvxxwwwvvxxwxwwxxxwxxywxxxxwxxxxxwxxxxxxxxxwwuwwwwwwwgvwggvwwvwwwwwwwwvwwgvgwxwwwwfwggwwxwwwxxwxfwggGwvvgwwwwwwgwvwvwvxwvwgwvgxwxwxwwwwxxwwxwwwfvwfugfgfwvwvwggwVvvwwxwgfvfvwugwvvvvggwvxwxvxxvwffvvgvwvwwhgwvvgwwvwwxxwxwvvvwxwvwwwvwggxwwfwgghwfggwwwwwGfgfvvvwgfwgwwxxgxvwwvxwwwxxwxgvgwxxwhwwwwwxwwgwvwhgwwxxwxvwwwxwxhwgwxwxgwxxwxxvxxwvhxwwxxwhxxwvvvvvxfewwfwvVfugwwwwgwwgwwwuvvxwwwwvvhgwhwuvwfwwwgwwwvwvwwffxwvxwwwwxxwwvwvwwxwhwwfxwxxgvwxfxwfwwhxvwxwfvwwwwwwwxvwvwwwwfwvxwwxhwvfxvwwwwxxwxfwvwwwxwwgxwwwwxxgwxxxfwxhxwwwxwwxgwxwxhxxvxfwwvvwxwxxgvxwwxwwwXxhwwwwwwxvwwxxxvxwhgwxxxwwxwfwwwgxxwxwwggWgxxhwxwwwwxxxwgxxgwgwwxgwhxwwwxxxwxwwwwwwxwwwxwxghxxwxxwwwxhwwxxxxwwxxxhxhxxhvxxxxxwxxxwxvwvhwxvwxxfxwwwxwwwwwxwxxwwxxwvxwxxwxwxxwxxxvwwxwxxwwwwwwxxwxgwwxxwvwxwxxwxwwwgwwxwwvwwvgwwxwwxxwxxwwwhxwwxwxxxwwxwxxwwwwxxvgwwxxxwxxxvhxxhwwwxwxwwwxxwxwwwvwwwggwxxwwwxxxxxxxwwxxxwwwxxxvxxwwwxgwwxxxxwgwwwwwwwwvxxwgwvwwwwwxwwwwvwwwxgxwwwwxhgxxxxwwwxxvwwwwwwxvwwwhxwgxxxxwxxvxhxxxvxwiywxvwwvgwwggwwxwwgxgwxxxwxxxxxwxxgxwgvgwwxxxgwxwwwwwxxxgwwxxwxwwxwwwxwxwvwwwxxvxxxxwwwxxwwxxxwxwxgxxhxyxxwxwwxwwwxwxxwwyxxwxxxxxxxxxxwwvhxxxxxxxwxxvxxxwxwwwxxgxxwhxhwwxxwwhgxwiyxxxxwxwxgwxwwwwxxxwxgxwwxxxwxxxxxwgwxvwwwwwwwhwwwxwwxwwwwwxggwwxgxwxwxxfvvxgwwvwwwxwwxxwwwxwvwwwxwxxwwxwgvwxwwwxwxwwxwwwgxxxxxwwxwwwxxwwwxwxxwwxhwxwwxvwwwgwvwwvfwvwxxwwwwwwxwxxxfvvgwvwwxwwxwxxwxxxxxxwxwwwwggfwwwwwwxwwxxwxxxwwwxxxxxwxxwxxwxxwwgvffvwwwwwwwxwwxwwwwgwwxwgwwwxxxwwxgxwwxwwxwxxwxxxhhwwwxxxxxwwxwgvwwxxwwwwwxwxxwxwxxwxxxxwwwwxxwxxxxxxwxxxyxxwxwwwgwwxxxxwhwvwxxxgwwwxxxxxxxwwwwwgxwxxwxwxxxxxwxwxwxxxxxwwwxwwxxwxwxxxyxxwxxwxxxxwvwwxwxwxxxxwxwxxxxwxxxxxyuwwwwwwwwwgvwwwwwwvvxxgwwhwwgwvwwwfvwwwvuwhgxuwwwwxwwwwfwwfvwxwxwwwxxwwwwvufwwuvwwwxhwxhhxxWvuwWffggwvwwwgfevwwxwwwxxxfvvwwwwggwwwwvggwwgwxwfufwvwvwvvwwwwxwwwwwwwwvgwwvwgxxxwgwxwwhwwwxwvgfwvwgwvwvWgwwwwwwwgVwwvvgwvwxhxxWgwwgwggxxgxwxwwwwwwxxxxwgxxxwxwwxxxghXwwgwwgwwxwxwxxwxhxhfhxhwfvvwWvvwuvvwuvWfvxgwwuvvxfvwufvfuvwxwvwwwwufwwwfgvwfwwwwvwgwvxwhvfWwwwwwxgwvwwxgwgvxwxgvwgggxwwwvwwgwwwfxxwwwwwwvfwhWgvxxxhfvwwwvgxxxwwwxwwvvgwwvwwxxxwwxxxxxwxwwwxxxxwxxwxxxxxxvvvvvgVwvgwwvwugWgxwwwxxgwvggwxwgwwxxwxxuvwwwwwvxwxxwwwwwxxxxxwxxwwwwwgxwwwxgwwxwgxwwxgxxwwvwxxxxwxwwwxxxxwxwxgwxhxwwwwwWwhwxxxxhwxxxxhxxxxghgxxwwxxxvwwwxwwwxvvvwxwwwwwwwwwwwxwghwxwhwvxgwxWhwhwwwxwwwwwxwxwxwwgwvwxhwvwwwwxwxxwwwwwxxwwwxwwwxwxxxxxxwhwvwwwwwwxxxxxxhxxwwwwxhxhwxxxxhxwxxxwwwwwwwwwwwwwwwwxwxwwwxwwxxwwxwwvgxwwwxxwhxwwwwxxxxxxxwwwwwxwwwxwwwgxgwwwxwxxxwwwwxfwxwwwxxwxxxxxwwwwxxxxwwfwwwwxxgwxwwxxxxwxxxhxhxxxwhxxxxhwxxxhwxxwxgwgfwwwgwwwxwwwxxxghwhwxwwwxwwxxxxxxxxxxwxwwwwxwwwgwxwwwwxxwxxxwxxxxxhxxxwxxxwxxwgwvwwwxwwxxxxxxwxwxwwxwwwxxwxyxxxwyxxwwwwwwxwwxwxxvwxxxxxwgwwwxwwxwwxwxxxwxxwxwwxxwxwxwxwxxxxxxxxxxxxwxwghwwxwxxxxxxwxhxhxxxxxxxxxwxwwwwwwxxxxwxxxxwxxgxwxxxwwuwwvwwwwxwwvxwwwwgxhwwgwwwwvwwwwxgWwwWgwwxgvgguwwgwwwwxwxwVgfwxhwwwwxwxxwwvwwxwggxxxwvfwwWvwwxwvgvwwvwwxwxwvwwwxgwwwwwvwwwwwwwwWxvxwwwxwwxxxwxwwwwwhxuwgwhvvwwwxwwxewwwwwwwwwwxwxfffvgwwvwwwvwwfvfgvgwxwxxggvwwwxwwgwwxwwwwxwxxxyfWWvwvwwwxwxwwxwxxxwffggvvxwxxguvfgvgvxwwxgfvwxwxwwwxxwxwwxwxxVwwwwwwvwwgWwvwxwxxvwwwgxwhwxwwxwwwwwwhwwxwwwxgfvwwwwxxwwwwvwxxwxxgxwwwxwwxxxwwxxxwwgvwwxwwvwwwwxxwxxvwwvvhxxwxwwwxwxwwwvwwxwwwxxwxgxxxxwxxxxgwwwwwxxgxwxxxwxxxxxggxwxxxxxxwwxwxxvwwwxwvgxwwxxxwxwwwwxxxxwxgxxxxxxuwwwvwwwwxwvvgfwWvxgvgwwwhwwwwfvxgwgvwgwWwvvwvgwwgwwgvwwgvffguwfwfwgwwwgwgfvxwhwwgfvwwwwwwwwwwwwwvhxxvvwffvhwgfwfgvwgwwvwvwwwgwvwgwVvwxwwfwwwwvvwgwwxghwwxwfwvvuwwwwxwvvwwvxxwwwwwxgvwgwwwwwwwvwxxggfwxwgvxfgvfxwffgfwgwgVuwxwwxgewvvwgwvgxgggggvvwggwwvwwWwwwwwfwwhwfwwwxwwwhvvxwxwwxxWxxxxwwwwxwvxxxXfwwgwhgwxhhwhwwfgwwvvwVvwxvwwwgvvwfVwfvwwxxgxwgwwwgwwvwwvwwwwggvwfwwwwgwwhvwwwwvgvwwwwxwwwwwwwvhwxxwxwwwwxghvwwwxxxwwwgwwwwgwvxwwwwwvwwwwwwwwwwwfwuwwxxwxwwvwgwwwhhwgvwfvuvwwxwwvvgwwhxxwvwwxxxgxxxwwxxwxhvwwguwgwwwggvvwvuggfwwvgvvwwwxwwwhwwxwwxgwvvvxvvvwwxwhfwxwxvxvwxwxwwxwxvwxxwxwwwwvwgwxwxxwfvwwwggwxxxwwwxwxwwwxxgwwxwgxvwhxxxwwwxwwwxxhxwxwxwwxhhxwxhwxwxwwxxwgwwwwwxxxxxwgwvwwwwgwgwwgxgwwwgxwxgxwwwxwxwxfxvxgwxwxwvwwxgxwvwwxwwwwwwxwwwxxwwwwvwwwgxwvwgwfwgwggfwvhgfvwxxgwxfggwgwwXvwwgVwwvwwxwxxwgwvwvwgvwwewgwgewvwgxvvwwhfwhhgwwwwwxwwwwWwwhvwgxgxwgxxwfgwgwvfvgxWfgwwfwwfvwwggwwwwwwvwwgwwxwxwxvxwxvxgwvfvwvxwwfwxXewwwwfgwwwwwxwwwxwwwwwwwwgwwhewvffvwfvgxhVgwfwwxvvwwwwwgWvwwwwwgwwwxwwxfvgvgwXwwwwxxxwvwwwwwfwxvxwwgwxwwwvhhgwggXVwgxgxwwgxxwwxwxwwXXhggxxhvwWwvvvwxfwwwwxwfvwgwvwwwwwwfwwfwwxwwwfgwwwxxwwwhwwvwxwgwvwwwwxwgvwwwwwwvxWhfgwwwffwwxwxwxwgxxvxgwvvwvwwwvwwwgwwhgwvwwvwwxhwwwwwwwwxxxxxwxxxwwewgwfwvxwxwxxwwhxhxxvxwwwwhxexwxwvwxwvwxxxhwwwfwwxwwwwxxwxwwwwwxxgwwwgvxwwwwhxwewxxxxwxxxwfxwvgvwwxwxvxwfwvhhwwxhwwwhwwxxwxxghwxxxvxfwxwwxxxhxwxvwxhhgwxxxvwxxxxxwxxwgxxxwxvwwgvggwwwvwxwxwgxhgxxxxwwvwwxxwwwxxwxxwxwvxxxxxxxwgxwxvxwwfgwxxwxgwvwwuwgxfwwwhgwgwxgwhwwgvgwwfwwvwwgwvxwxwffwwwxwxwxwgWxwwvXwwwXwwfwwwwwhxxwwwvwwxxxxxwwxxxxxwfvvwwxgvggxvVvwwxgxwxgffWwvwfvvwwwxfwvwvhwgwfwwwxgwwgvwvvwvuwvwvxwwwwgwwxxwgwwgwxwwwvgWxWwguWwwwwwwwggfwwwvvxxxggwgvwgfvwwwwxwvwxwxxxwwxwwgwwwfgwxwxxwwgwwxxxxxxxvwwxhxwgwxwwxxwwxwwwxxwxhxwxgfvfeugvxvgvwwuxwwwwwxwxxvxfegwxvwwwhgwxxwvgvxwxxxgevwvwvwxgwvwwwwwhwwwwxxxwvwxwwxvxxxxwxfxwwxvwwxwfxfxxxwvwxwggwvxxwwwwgwvxwwwxwvvxxwwwwwwwxxxwwvwvxxwxxwxxxxxxwwwxvxyxgwvvwwwwwwxwwwxwwxwfvvvwxWwxwxxxwxgwfwwwwgwwgxvxhVxxxxxxxxwxwwxwgwwwwwwwwxwxwvwxvxwxxgwwxxxxxyxxxxxxxxwwxwwxxxwwwxwxfgwwwwvwwxwwwxxxxxxwwwwxwwxhwwxwxxxxxwwwxwwewwvgwwwwWwgwwwwgvxwwvgwwvwwxgvgwwffwxwvvwgxwwwxhwxwwwgwvgwvwwwwwwwwxwvwwxwhuwfgwvxxwwhvwwxwxwwwxxwwwwgwwvxwgwwwvuvhwwfvwwwxhwgvwfwwwwwwwwxwvwgwvwwxxxgwfwvwvwfwwvwwxxwwwwxgfxwvwwwwwwwwvwfVvgwguwwfwgwggvwwgwfwwxgwxffevvwwwwwwgvWvwwxwxwwwghwwxuwfwwwwhxwwwxwxwxxwxxxwwwhxWxwxwhhwwwwhxxwxWfhwfwwVwwgwwwwwwvwwWgvgwwgwwwwevfwuwxwfwgwwgvwwwwwfgvwxwwgwvwwwwxxwwwwxxvwxwxwvxwwwggfwvwwxxxwwwwwwwvwwwwwgvwxVgvvxgxwwwxgwwxxwwxxxwyxxguxvwwxVgvwwwwxxxxxwwxwhxxwxxxxxxvxwvwuwfvxxvvwgwwvwwwhwwwwxwvwxxxwwxxxxwxxxfwwwxxxxxwxxwxwxwxwxwxxvwwwwwgwwwxWwfwwwwxwwxgxxwxxhxxxwwxwxxxwxxwxwxwhxxxwxxhxxxxxxxxxvxxwxwxhxxwgwwwvwwwwwxxwwxxxwxxxxwxwwgxwwwwxhwwwxxxwwxxxxxxxxxxxwxwuwgwwwxwwwwggwgwgwwwwwwwwwxwwwwwwgwwwggwgwxwgwwwxgwgWwvwwwWgvggvghgwwxxxwgvwxvWwwghwghwxvhwxxvvwwvgfwxfgfFwwvwxgwxwxwxvwwgwwgxwwxxwwwwxwxxxwwgxgfwvWgvwwwwwxgxvxxvvvxxwwxxwgxwxwwwwwvwfxgwgwwwewxgWvwwwgwgwvxwxgwwwgwFWuvwwwgwwxgWfwXwwwhwgwxxwwwgwgwwxvgwgwgxwwgwhwxhhwwgxhgwggghxwwwwWxhghxxxwwxwwxwvwggwevvxvxgwwgwwgvxgvhwfwwwFVufwxvggwwxvwwwhwhwwwwwwgfvgwhwwwgwwwxfwwhwxwxxxwxvxwxxwwwvxxwwwwwxwwfFwwhwgggwxvfwxxhgxwxxxwwxxxxwwwwwwwxwwxxxwwwwxxvxwxwwhxxxxxxwxxwwwwwxwxxxfvvwwhvwwxwwwxxwwxxwxwxxxwxxwxxwwgwxvxwwwwwxxxxwwhwxxxxwxwwwxxvxwxxxwxwwfwwwwwwwxvghxxwwgwxwxggvgxhwhxxxxxwxwxxxxwxwhwgxgwxwwxxxhxxwwwxwxxxxxwwxxxxxxxxwwwxxxwvwxvwwxxxwwwwwvwxxxxxxxwxwxwwxwwwxwxwwxwxxwxwxxwwxxwwwxxwxuwwewvwwwwghwwwhwfxxwxxwwwfggxxwwxxxwhwwgwxxfwvWvVxwwxwxxwwwhfwWewvwgwxxxwwwxhxxwvvvfvgwxxwwwvxwwwgwwxxwwwWwxxhwvxxxxgwwwvfgwxwwwxghvguwfvgwxyvxwgxuwvWfVgwgvwgwwggxxwwvwwxhwxgggvgvgwwwxwfwvwwwggwxxhxwggfwwxwwwwwwwxhwwxgwgWwgwfgxwxxfggwxwxhwwxxfugVvgvwwxwwgxgwwgwgwvwwxwgfwvwxwxxxwvvwwgwgwxxWgwvggwgwxwhwxwxwxwxxxfwwxwwhxxVgvwggxwwhwfwhgwvwgffwWvwxvxxxwxwxWvWwwxwwxhxwxxwxxxxxxxxxxxxhwgvwxxxwwwwwwxwxyyxgwwwxxxvwxwxwgvwwwwwhhvxxwwxwxxxxxXvVwwgwxwxxxwxxgwxxwvwwvwwwxxwgWvxxwwhxwgxvwwxwxxxxhxwxwwxwxxxvwgwhwwwwwxhwgxxxwgvwwxxwhwgvxxwxxxwwxwxxufggwwwwwxwggwwwxwwwwgwwwvwwwgwwwvwvwwwvgwwgwwxxvxhwwwwvuwwwgwgwgwwxwwwxxxwwvvggwvvgwvwwwwWgwwwxwxxwuwvwvfFwwgwfwgwwwewwwwwwvwwwwwvfwgwxxgwvwwxxxwwwxwwvwwfwwwvxwgwwwwxwwxwVgwvwwwxwwxxxxxfwwwvgvwwwggfvvgggwwwgwFVuvgwwvvvvWwwwwwwwghwwfugwgxWgvwxwxgxgwhxhwwgwwwgwxwwwgwwwxwgxwhwxwwfgwgwgwwxXwwxxwwwwxWxxxxwwwvwfgwvwFVuvvxvgwvwwwwgVwwwxwwgVuwwvwvwvgwxwfwWwggwgxwxwwxgwwvvwgwxwxwvgwwwwhwwwwwvwxwxgwvwwxwvwwxwwxwvwxgwwwwwgxggvwwwfFwwxwwwxxwwwwwwwvxwxxwvxwxxxwxwwgwwvwwgxwxxwxxwxhxxwxwgwxxhxwwwxxxxvxxwwxwwwuwwxfvwwxwgxvxuwwhxwwwwgwxwxxxxwgwwwwwxxwwgvwwxwwwfwxxwwhwvxwhwfhwxxxxwwwxgwwxwwggvwwvwggwwwxxwwwhxwxgwwwxwhwxxxwvwxwxwwxxhxxxwwwwxwwwwxxgxgwxwxxwxxwxghwxwwxwxxwxxwwhwwwwxvhwwxgwxvwxxxgvwwxwxwwwwwhwwwwwgwwvwwxwwxwwwwxwwwwxwxxwwxwvxwgxxvwwwwwwwxwwgvwwwgwwxhwhwwgwgwwxwwWwwxwwfwWwgwxgfxwwhwxvfgwwvwwwhwwwxxhwwwhwxwXwwvxwxevwxfgxxwxwwxwvwwWwgvwwVwewWvwwwwwfvxwwwwwgvVvfxxxwxgvxgwwwxwxgwwgwwwgwvwwwxvvwgxwxvwwggfvwxwxxwxvwxwwwxvwwgwwffwWwgvfvfghgwwwwhwwwvxhwwgwgfwggevwwwwgwvwxwxwxggwfwwgwxxggvgwgxgfxhxwhhxvxxxvvwgwxwhwxghvgxwxxwxhwgwxwhwwggvweevvVfefwgvvfvwxgwggwgvwwwwwfwggvwvwxwxgxgWwewxffxvfwgxxwgwgvxgxwvxwhhfwxwwxwvwwwgwvxxvwwggwfggfwgwVwgwvwwfwwwwVwfxxvxvxvxVwfxxgwwwwwgfwxwwgwwwgwxxxxwvwxxwxwxxxyhxxwwwfvwwxhfwwwwhxwxxwxwwxxxxvxxxxwwewvwxwxxxxxwxxhwwwwwxxwxhgxxgwwwwgwfxgwgwwggwwwwxwwxwwxwxxxhwwwvgwxwwwgxwhwvxxhxivxxwhxwwxwxgfxxwwwxhwxwvwwxwfwevxwwxwwxwxwwwwwxwxwxxxxwwwxwwxxwwxwwxwhxhwwwwwvwxxwwwwxvwwxgwwwwwvxxwxfgwwwwwwxvwvvfwwwwwwvwgxxwxwwvvwwwxvxxxwwwwvgwwxxwxwxvwxwwhxgxwxvfvxwwwxwwwvvvgwwvwxwwvwwxxwwwwwxwwxwxwwxxwvwxhgwwxwwwwxwwxvxxvwvxxffwwfwwxwwfwwvvfgwwwxwgffvwfwwvxwwxgwwwhfwwxxvffggwwxxwwhwwxwwxxxfvgwwvgghxxwwxfxxhxvxxxvfgwvwwvwwxwwwvvwvggxxvwgwwwvwwxxxxwwhwwvxxwxvwvwgwggghvwwghwvxwwvwxvwxwxwxxwxxxwvvxwwwxgwwxwwxwxxxxwwwwvxxxxxwxxwwwxwvwxwxwwwwwwxwxwxxvxxwwxwwxwwwxwwwvxwwwxwwwxgyxxxwxwxwxxxhvwxwwwwwxwgxxxwxwwxwgwgwxxxxxwwxwxwwxxwwwxwxxxxgwxwgwxwwxxwxgvwwxxvwgwfwvwwwgevwhgwgvvvVfgwfvvwwwwfewhwgvwwgfvwvwwwfvxwwwgwxvWtgwgvgvgfvwvwwwxwwgwwxwwWgvvwufgwfwwwfvwwwwvgwwwwwwgvVvwwwgwgwfwvwvwgwwwwwwwwvvwuvxvwwevwgwwvwwwwwwwvvwwgwwxvwgvgfwwwwuvfwwwwwwvwwwwvwwwweVwguvvffvwWtggwvfvffwwvwGwvuevgwvvwwwwvwevwwgwgWwwxwxwxhwvwxwxhwvwhvxwGwwwwwgwwghXvvwgwgvfWwvxwwgggwvxwwGewwhwXvxgwgfvvgxvxwwvvwwwwvfwvwwwvwfvwvvvwwffwwwwvwwvvwwwwwxwggwwwwwwwwgwxxwwvwwxwwghWuxwxwwwvwwwxggwwhvwwwxwgvfxxvwgwwwvwxvwxwxwfvvxwxxfwvwwwxuxwxwwwwwwwwgfwwvvwwgXxxwfwvwxhvxxxxxxxgwwwvwwwxwvgxwwvwxxwgwwwwgwxxgwvwwxwxwwwxvvwwwwhwwxwwxxvxxwxwxvwwvwwwvwWwwwwwwwxwwwgxwWgwxfwwvxxxxxwgwgwwwwxwhgwxwgxxxxwwggxhvhxxwwhwwxwWwhhxwvwwwVvwxwgwxwxwwwxwgwwwwwwxxxxxxxxgwwwwwxwxwxwxxxwwwxwhwwwwxgwxvwwwwwwwwgfVwxwwwwgwgvfgwwwwwwxgfWxxvgfgwwwgwvwwxwwgghfgWvgwwvxwwgxxgwwwwxhxgfggvwxvvwwwggxwxhwwwxxwwwgefgvvvwgvVvgwgfevugwwvvwxxfvugwxFfuhgwvwwxwxwwgfgvewwevvwvwwwgvfwwwwwwwwwxfVfvxewhwuwvvwwvxwxVwxxwwgwhgfgvWvgewvVfvwgwgvwvwxggWfVvgvfwvvvxwxxWewWhwhgwwxwhfvwwgwwwxxvwfwxwhxxwwhxwgwxwwwfgwxwwwxwwhgvXwgWghvwwwwxwwgfevfuwgwvxvwwVTvggfWVvuvuggvdUVdWfwugvxwxvgwwwwwhxwuvuwvwwxvwvwwwwwwvehgggghUgxugwUwwugwwgwwvwggwwxgwvvexwwvgxxxfwugwgwwgwwwgxxwwwxfwuhewvxwxxxxxxgggwgvxvwxwxwgwwxwxwxwwewvxwxwwxwxxxxwwwwvvwwxxwuwwwvgwwxvvxxwxxwwwwwwhxhxwxwxfxwwxxxxxxwwwvhwwwggxxxxxwxxhfwwwvxwxvxxwgvxwwwwwxvxwwwwvxwxxxxxwvwxxwxxvgwgxxxwxxwxhwwghxwxvwxxxwwxwgxxxwgxxuhwvwwvvvvxwwwwxwwwxwwwwwxxxwwhvwxfwxwwwwxwwwwxwxwwvwwhxwfvuwxxvwwxvwgxgvwwxwxwwgwwggwvwwwffvwggwwwxfwwxgwwwxhvxgwvgwwwwwwwhxWguxxwvfvxgwvwxxwwwvwxwwwwwxxvgwvgwwgxvwxvvwwwgwvwgxwvwxwgVvwwwxwwwwwwxwxwwhwwvwfwwwwwVgwvwvxwwwwwwwwfwwxxgvwwgwfwwwwFVtuwwwfwwwfvvwgwwwwfvffevwvxgxwwgwwggvxwhxxwxxwgwfwgggvvwwwwxwhwwxWwxxwfvgwxwwwxxwwwxwxgxxxwwgwFVtuvwgxwfvfwgfwwwghxwwgwvwwwwwwwgxwgxwxwwvwwxwhwfwvwwgwxwwxxwwwwwwwwwwxxvwhwvwvwxwxxwwwxwggvxgVwvxwwwwwwxxxxwxwwwwwwxwxxxwwvxxxwxgwwyxwwxxxxwxxhxxhxwxxxxxxwwwwwwwwwwxwwwxgwxvgwwwxgxvgxwxwgwwwxxvwwwwwwwwxxwxhwvxxxxwwxxxwwvwVffvwwwxxxxwwwxhvxwxwxxwwwxxxxxxwxwwgvxwwwwxwwxxwwxxxwxxwxxxxwxwwwxxxgxwxwxwwwxhwxxxwvwxvwwwwwxxwxxxwxwwwwxwxxxxwxgxxxwwxwwxxwwwxwwwxwwwwwxwwwxxxxwwwxxwxxxwwwxxwxwxxxwgwwxwxxfwwxxwxxwwxwvfwwfwwwwwwgwvwwwwgxwvwwfwxvxwvxxxwwwwwwvgwwxwwwwxxxwvwvwwwvxwwwxxwxxwxwxwwwwwwwwwwxwwwwxwwwwxwxwwwxwxwwwwxwxwxwwxwxxwwwxwwwxxxwxxyxwwgwxxwxxxwwwwxxwxxwwvfwwwwwwwwwgvwgxwwwxxwxwwvwwwwxxwwwwwwwxxwfwwxxxxxwxxxwwwxwwwxwvwwgwxxwxvwxxxxwwwxwwxxwwxwwxxfwxwxxxwxxxxwvvwwwxxwxvwvwxxwxxwxxxwwwwwxwxwxwxwgxxxwxwxxxxgxwwxwxwxxxwwwxxxwxwxgxxyxxwxxxxxxxwxxxwvxwxxwxxwwxwwxxxwxwxwwwwxvxWwxgwwhwgxfxxwfgxvfxwwgwwxwwxfvgwxwxwgggxvwwwvhwhxwxwfwfgwwwxxfgwwxfxxwxxhxxwwwwwxwwwwwxgxgwhxxvwhxwwgxgwxwwxvwxgfwwwwxwxxwxwxxwwwwxxwxxgvxwwwwxwwwxggggxgxxgWwwxgwxwxwwwwfxwwxwwwxxxxxwwxgUwhfUwvwhWfgwvwfwwxfgggwhffwvhvfwwwgxfvvxwwWgwxgwggwhgUfwwxUwwwghhfwwxwxwhhxgwxxwfffgxXwwxwhhwxXxgwxxxxxhwxxgxwgwvVwwgwfwfwggvwXgwwwwwwghwvvgwwwgwxhwwgwwwvwwXwxxhwfwwwgwxwwwwgwgwxxxxxwghwvgxvwxWwwwwwgxwxgwwhwfxfxxxgwxwxxwxxwwwhxwwxwwxxxwWwxxxxxwxhxygwxwwxxwxxxxxxwhxwxvgwwwxwfwwwwxxxwgwxwwxxxxxxxxwxxgwxxxxxxxwhxxxxxxwxwwyxwxwwwxvwwwxxhwwxwghwxhwwwxwxxhwxxxxxxxxxxxWgvwxvwxwwxxwxxxwxxxxxxxwxwxhxxxxxwxwxwxwwwxxwxxwxxwxxgwxxxwhxxxwwxxxxwwuwvwfvxwwwwvvwwwwvwwwwwwwwwfwwwwwwwwxwwwgwwwwwwxwwwwwwwxwwvvfwfvfwwwwwwwwxxxxxwwvwxwxxwxxwwwfwvwwxxwwxxwwwwwxxxxxfvvwgwwgvwwwxwgwxxwwwwwwxwwgvwxxwxwwwwwxxxxwwhhwxxwwwxwwxxxxwxwwwwxxfvfvwvxwvwxwwfwvwwvwxwwwxxxxgxwvwvxwwwwwwxxxhwwxxxxwfwvvvvfwwvwwxgwwxvwxxwwwgxwwwxwwwvvvwwwwwwwwxxxxxxvffgxwwghwxxxwxxxhxxxxxfwxwwxxwxgxxxwwgvxxwxwxxwwwwxxgwxxxxvvfvwwwwxwwvvvwwwxwvgwwwwvwwxwxvwwwwwwwwwwxxxxxhxxxwwxxwwxhwwwwwwwxwwwxwwwxxwxxwwxwwxxtgvwvwvwffvvvwfwwwwwvvwwgwwvvuwvvvwwvwwfufwwwvxwwwvwwwgwwvuvwwwwwwwgvwwwwvxwgwwwvwwwwxxgwvvvvwgwvvwvgwfwwwxwvwwvwgvvvvwxxwwvwvwwwwhwxxxxxwxxwwxxxxxxxxfVfgwggeffgvwwfvwwgwwvwfwvgwvgwwwwwwwwvwvwgwvwvwvvgwwwwwwxwwwxwwwwwgwwxxxwxxwxwwwwxwvxvwxhwxwwxxwxwwvvvvvwfwwwwfvwwgfxwwwwwxwwwxwwwgwwwwxxxwwxxvwwxwwwwxxxwxxwvwwwwwxxwwxwefvvfxwvvfwvwwggwwwXwwwhwwwwxxgfffxwwxwxwwhwwwwxgvwxwwwgxwxwwwwxxwwxxxwwxxwxwwwwwwfuwvwgWffwxwgvwwwgggwwWhgwwgwwxwxxwwxwxwwvwwwwguwxwvxxxwwxwxwxxxgwwxwxxwwwvgwwwwwwgvvwwwwgvuwwWwwvwwggvxxwxwwxwwwxwxwwxwwxwwwxxwwwwwwxwwxwwxwwwwgwwxxxwvxxxvxvwxwwgwwwwwxxxwwwggvxwxvwwxxxhxwgxxxwwxvwxwvxwvxwxhxwxxwwwxwxtwxwwwwwwwwWvvwwwwWeVWwgwwvgwwwWwwxwwwwvWwgwwvgwwxwwwxwwwvwwwwxhxwxxwwwhhwxwwwwvvxxwwwhhwxwwwGvfwwwwwxXwfwwvgvwxwxxXwwwwwwxxhxxwwwwwwxxxwwwwggwwgWvvgwxwgwwwgwxwfwwfwwgwwvgwxwwxvxwwwwgvxxwxxwwwwxxwwxgwwxxwxxxgwxwxxwhwwgwxxhwhwwxxWwwvgwxvwxuxwxwwwxwwxwwxwwgwwwwwhxxxwhxwxxhwyxxwwxxwxxwwxxwvxwwwWwvwwwwwvwHvfwvgvwxwwxxwxxwwwxwxxXwwxwwvwxwxxhwxwvwxxxxXeVvwwwwwwvwwwxwhvxwxxwwxxwwwwxxxwxwxgwxxxxWgwvgwxwwvwwwwxxwuwwgwwwxvwxhwwxxwxwwwwhwwxwwwghwxwwxxwxxwxxwwxgxxwvwwwxxxwxxxwwwwwxxxxxxwwwwwxwxxxwxxxhgefvgvwvwevwwvwwgvwwwwwwffvwggwfvwwuwwvwvwvwggwwgwwexwwvwwvfwwwvvwwwwwxwwxwwwvwuvwwwwwwxwwxwffwxvfwwVfwgvgwvwwvwwwgwwuwwwvfwgwwxgfwwxwxxwwwwwvuvxwxwwwwwxxvwgwwwgvxwxeevfvffvfewuwvwwfVfvwvvvgufffwwvvffevvwwvwgvwwwwvvfwwvgvgwfwwgwwwwvwgwwgwxwwggwwhwwwvwwwxwwxwwwwxwwwwwgwxffvvfwwwgWvwwwwvvwwwwwwwhwfxgwwwvwvxxwxwwwgvvwwwwwwwwwvwvwwwwwwwwwgxvwxwwwwxxxwxvvwwvuwvwvvwwwvxwwxwfvgwwwfxwggwwwwxwhwwxvvxxxxgxwxwxxwwwvvwwgwxwwxvxxxwwwxwxxwwvvwwvwhhvwxwwgexxwxxwwhxgwggwwwwgvxxxwwwwwwxxxwxwwxgxwxxwxxwxxwxwwwvwufvvwwvwvwvevgxwwvwwxwxwwvfwwwwwwwwwwvwxwgwwwxwwwwgwxgvwxgwwwwwhwgwxwwxvwgxwwwxhxxwvwhwvwwwwwwxvwwwwwxwxgwwwwxwwxxxxwwxgwwwwxwxxxwxwxwwvwwxwxwwtwwwvxwvvvvvwwwftvwgwwwwwwwwwfwwvxvwwvgvwvwvwwwvvxewwwwxvwwwwwwwwwwwwvvxwvxwwxwwwwwwgfxwxwwuwxwvfgwwwwhwwfwwxwxwfwwwwxwwwvwwxwxxwwwwwxxvxwwwwwwwxxwvfwwwvwgVuwfggegwgvvvgffwwvugwwfdfwfwwvhvwwvwwwvwwgvwwwvwwwvwwwwwwwvwxwwwwwwwvxwxgwwwwwwwwwwwxhwwxvvwvwvvffwwwwwfwwwwvvvwwwuwwgxhxwwwwwwgxwwwxwwwwwxwwxxxxwwxwwxxwwwwwwwwwwgwvwvwvwwvdfgwwwwxwwvvxxvwvwvwxxvxwwxgwwwwgwwvxwwwxxwxxwxwwxwwxgvvwxwuwxvwwhwxxxgxwwxgwxxhwxxwxwwwxxxxxxwwxxwfwFwvgguwwfwvwvwvwwexwwwwwwxgvvwwhwwwwwwxwxwxwwxvxwwwwxwxxxhwxxxwwwwwwxxwxxwxwvwhwwwxwwwwwxxxwxxwxwxxxxxwxxxxwwxxwxwwwwwefggvwwgvwvvvvVevgwffwfvwwwwgwwfwfwwwwvvvwgxwwxffvgvwwgvwwfvffvfvwwwfvgvwgwwwfvfwwvwvwwwwwgxwxxxwwWvvvgvgwgvvwwwgvgwWwvwvwwxwwwwvwwwvwwxwghwxwxwwgvfwwwwwwwwgxxwwxxxwwwwxwwxxwwwwxwgwxhwwwffvgvwwfvvwgvwwfvgvgvwwwfgwfwwwvwfvgvwwwwwwwwwgwwfvwwvwwwwwwwwwxwxwwxwxxxwwvwwwwwwwwwwwgwwxxxwxwxxfvwwwwvwwwwggwvxwgwwfvvxwfwwwxwwwgwwvwvwwxwwxwwwwwxwwxxwvwxxwhxvxwxwwwfwvwvwwxhwxwvfugwwvgvgwwwwgvgwwgWwghxwwfvwwxvwwxgwwwwxxxwxwxwgvfwwxwxwwxwgwxxxwwgvwxwxwwwwxxwwxwxwxxwxwwhffvwvwwwwwgVgVwhxxwxxwwwwwxwxwxxxxwxwwhhfhvvwxwxxxxwvhxwxwxxwvvxxwfwhwxxfxgwwvwgvwxwwxxwwwvggxvwwgwgxxwwwwvxxxwgwwvggfwwghxhwgwwwwxxxwwvxvvwgwhwwgxwxwxxvwwhwxwwwgvxwxwxwxwwxwxwxxwwxxwxxwxwwwwwxwxhwgvxwwxhwxwwxxxwwwwwxwxwwxxhwwwxwgxewuwfwfxfwfvWvwwwwwfwvgwwvvwgvUwwwwhwvwvwwwgvwwwwxwwwwwvfgwvwvxxwwfwvwxwwvwxwxwwwxwxwgwffvvfvwxwwwwvvwwwwvgwwwgfUfwwgwwxwwxwwvwwxxxwwwwwwwwwxwxgwvwxwxwwxwxwwwxwxfvvwfgfwuegvvwwvVfwwwwwfufwwwxgffvfvVvwwwwwxfvwwwwWwwgwwwwwxxwgwwxwgvxwwwxwwwwxxgwwwxghwwwwwwxwwxwwxxwwfvvvwwgwwwwvwwgvwvgvwvgwwfvwfffxxwvhwwwwwvxwwgvxvxgwwwwwwwwwxwwhwvwwxwxwwxvwxwvvwfffwvwwuwwwvvwWwwwwwggvwwwwwxxwwwxwwwxxxwxwwvwwgwwwwwwwwwwwxxwxxxwwfwgWvwxxwwwxwhwwfwxwwgvwvxwxxwwxxxwwwxwxxwxxxwxxxxfvvevvgwuwvvxwxfvvgwwwgwxwwwwwwxvwwxxxwwwgxwwwxxxxwwvgwwwhxxwxwvwyxwxwhxwxwwxgxwwwxxwgwxwxwxwwwvxxwwwwwxwxwxhwxxxwxwxxwwxxwxxwxwwxxxsvwvwwwgwvwvwxwfwgwwxwwvwgwgfexwwfvwwwxwwxwxffwgvwvgwwxvwwwwwwfwxxvwwwwxwvvwwwwXuUvwwwvvwwvfhwhguwwwgwwxxwxwxxxgwgvvwwwwwwxwwwwwxwwwwwwgwwxvwvwwvgvvwwwwxwFfwwwxfvwwwwvwgwwwwwxwgvvwwwxgxwwwxwwwwwwwxxgwwwwwxwwwwwwvwxwwwwxxvwfwgvvfhwfvwwwwwwvwhxwxwxwwwxxwvwvggwvxxwwxwwwwwxwwwxxwxxvxwwwxxwxwvgxfwwwwvwwwhguwwvwgwwxwXuUwwvwwwwvgghwwwwxgwfwwwwwwwwwwwwwwvwvwwwxxwgfewwgwwwwxwwwxxwwwvwxfwwxwxxxxwxwxwwxxwwwvwxxxwvwxwhwwxxfxfvwvwxxwgvvwwwwwwvgwvggghwwxwxwhwxvgxwxxxxwwxwwwwwgwxgwvxfwwwwxxwxxwxwxwwwxxwxwxwwxwxgxwwxwxxwxfxxwvxxxvwxwxxwxxxwwxUwwwVvwwgfvuwvgwwwwvwVwWgwwwfwwwwwwwwvxwwvvwgwwwvwwwxwwxwxvfvwwwgwvxhwgxhwgwwvxwwwwwwxxwxxwxxxwxxxwgwxwxgxgxwwwwxvwwwwwvWWvvwxwvwvwvwwwxxxvwwxgwwxxwwwwvwwwwwwghwxxxxwxxwwwxwxxxxxxwxxwxVvvwvwwvfggvwwgFfvwWwwWfugvwwvfwfwgguxvVvgwwgwgvgwvwwwwgfXwwfvwxgxwWwwwwxvwvxxhwgxgxxwwwvgwwwxwwwwxghxxxvxxwwwwwgwwgwgvxvwwxwwwevgxVwwwwwxwwwwvuvvxhwwxwxwwxwxwwwgwxwwwwwxwxwxxxxxfwwwwwxwwxwuwwxwwwgvxwvwvxxwxxwwwxwwgwwwuwwwwfgwvWfvgwgwuwwxwwwwwwfxgvwwwwxggwxxxfgwvxwwxgxxwxxwwwwwwwwwxxxxwwwxwwwgwhvvvwwgwwwwxxwwhwxvwwgwxxwwwwxvwxwvxwwwgwxxxwwwxxwxxwwvgwwwwwwgvvXxwxWguwvwwvvxwhwwwxwwxxxxwxwgwvxwxwxwgvgwwwwxwwwwuwxwwxwwwxwxhxxgxxwhwxwgvxwxgxxwxwgxwvwwwwwxxxwwwhwggxwxxwwwwvwxxxxwwhwvxxxxxwxxwwxxwwxgvwwwgggwvwvwxxgwxwfgwWVeuwwwwgwxwwwxxxgvwwxwwwxwwwwwxwxwxwwxwxwwggwwhgvwwxwxxXffuwwwfwwwwwwxxgwwwwxwwwxxwxxxxvwvwxVewwwxwvwxwwwxwxxwwxfwwxxwxwxwwwwwxxxxwwxxwwxwwxxwwwwxyxgwxwvwwxxxwwxwwxxwwwwxwxxxxxxxxwxxwwxxwhwwwwxxxxxwxwwfwwXffuwxwwwxxwwhgvwwwvvwxxxxxgwxwwxwwwxwxxxxwWVeuwfwwwxxxxxxxwvvwxxwwxxxxxxwwwxxxxxwwwxxwwxgwxfwwxwwwxxwwxwxxxwwxxxxxxwxwwxxxxwwwwwwxxwxxwxwwxxhwwwwwwwwxwxxxwwxwxxwyxxwxwxxwegwwwvwwWuvvwvgfWwvwvvwwwvgwvvwvffwwgwfwxwwvwwwwxvhvvgwwwvwxwxwxwgwxwwwwwxwxxxxxgfuxvvgwvwvgwvwxwwxwwvwvxwwwwwxwwwwwvwwwxwwwxxwgwwxxxxvvggXVegfwvwvvwwwfvwgggwvwwwxwfwwfvwvgfgvguvwwgwwwgwgwwgwgwgvwwxggwwxxwxwhhxxwwwwhgwxxxxxxxwwwgvvwvfwwwgwxwwxwwwxwwwwvwwvxxxwwxxxwxxwwwwxxxxxxvvwwvwvwveVgwwwfwwwwwwwgwwxwxhwxwxvgwwwxwwxwgwxwxxxwvgwwwwvvwxxwxxwwgwwxxwxxxxxgwvvwgwxwwxvwwwVwvvwvwwvwwwWwwvwvwwxWwvxwwxxvwwxhxwwwwxxgxwwwwhwxxgxgxgvwwxwxxwxwwxxxxvvwxwwvwxwwxwwwwxxwxxwvxxgxxxxxwxxwxugfgvgwgvvwuwwfvwwwwwwfwvwwVwwgwwgwfwvfwgffwwwwfwfWwxwgwwxwvfwwwuwfwwwwwxxwgwwfwvwxwxwwxwxwxwxwVwvxfwvwwgwwwwxggfvwgwxxwggwwwwwwxxvwwwggwwxxwxwwgwwgvwxwwwwwxxxxxxxwhwwxwwxwwxVfegfffwffffvuwfVfvfwgwfggwwwvgVgWvgwwwggwwvwwwVfgvfwwvfgwgwwwgwxvwwwvwwwwwxwwxwwfwxwxxxxwvwxwhwxwxwwwwxxwxxwhxwwhxxWwgwfvvwgvgwwVgvghwwwwwwggwgwvxwwwwwwwxwvwxxxwwwwwwxwxxgvwxwwxxwxwwxhwgxxxwvwxvwwwxxhxxwxxxxxgvgfgguwwfwwvfgwwwxgwwfgxwwwVfvwhgxwgwwwwxxxxwwwwewgwgwwwwwxxwxxxxxwwwwgxxgwvwvwwwxwvwvwfwgWvxwxhvwxhfxxxwwwxxxxxxwwwwxwxwwxvwxxxxxxwxwwxxwxxxwxwwxxfgfvwvvwwwwxvwvfwwwwxwwwxxxfvwwvvwWwwwxxwxwxwwghgwgwwwwwwvwwwfwwxwwwxwxxhghxxwwwwwwxwxxxwwxwxwwxgwwwwxwwwwwwwvxhxwwwwxwwxgwwxxxxxgxwxwxxxwwwwwxwxxxxwxywwwxwuvvvwwwwvwfwwwwwwwwgvwwfuwwwgwwwwwwwvgwwwxxvwwxwwwxwxwwwvwwwwxxwwxxxwxhgvvwfwwvgwxwwwwxwwwvgvgwggwwxwxwhxwxwwwwwwwwxxxxxwxwxwwwvwwuwgvgwwwvwwfwwfvwfeuvwvwwwgVvwvvvwfvwhwxwwwwvvwgwwwwwwxwwwwwwgwxgwgwxxwwvhwxwgwvxwxwwxxxxxxwvwwvgxxwwxxgwwwwvwwxwwxwvvvgvwxwxxxgwwufxwwxgxxxxwxwgxwxwwwwxxxwwwwwwwwvwxwgvwwwgwwwweuggwwwwwwxxxxxwwwwwwwwwvwxwxwwxwgwvwxxwwwwxxwxvwwwvhxxwwxxxxxxxxyxxxwwxxwwxwwwwgvwwVuwwwwxxwgwgwvwxvvxxxxxxhwxwwxhxwwwwxxxxhwwxxxxxwwxwwwwxxwwwvwxwwvxxxxwwwxwxxxxxxxwxhwxxxwwwxwxxxxuwwuguvwwvvwwwwwvwwwwgwgwvwxfguwvwvwvwgwfuwwvwwwwvwvwxwwvgfwwxvwgxgxwwwvvwwwxwwxvxwwwwwvwwuwwwwwwwfVvwwvwwwxwvvfvwhgwgwgWwwwxfwxxwvvwwxwwxwwwxwwwwwxxwwxxwfuvwvwwvvvvuvggFfvwwwWgvwvvwwwvfggwvwfgvWwvwweewgfwwwfvWvwgvvwwwwWwwwgxgwhxwxwwwxwvwwwwwgvxwwgwwwwwwwvgwwwwwwwwwxuuwgfwwwvwxwxwfVwwxwwgwxxwgwwwvfwwxxwwwxwxwxvxvwwuwwxvxwxwwxwgxwvvwvwvvwvwwwvwwwwwwwwwwwwwwvwvugWwxwwxwvwwwwgwxwwwwwwwwwxwxxwwwwgxwgvwvxxwwhgwwfvwwxxwxwwxxwxxxxxwxxwwxwwvwwwwxxwwxxwwwfvwgVwfwhgvvfwwwwwwwwwwwwwwwxwwxwwwwwwwvwvwxwwwwwwwhwwxwwwxwwxxxvgvxgwgwxwwwwuxwwxwgvwgwvxxwwgvwxwhwfwxxwwwwwwwxwxxxwwwxfxwxwwwhwwvwxxwwgvxwwvwwwwxgwgvvwvxwxwwgwwgwxvfvvwwvgvvwvggvgvxgwxvfvvwwwwwwxxwvwwvvwxwwwwxwwwwfwwwwwxwxxxwxxwwwxwwwhwgwgwwvwwxwgwwvwgwwwwwwwgwwxxwgwwwxxwwxwwxwwxwxwwwxwxwwwwwwwxxwwwwxxwwwwvwwwhwwgvwxwWwvgvggfxxwgwwwgwgvwgvwwvwwwhvgwgwwwwxgvwxwxwhhxwwvgwxxwxxwvwxxwwvgxvwxxvxwwxxvwxwwvxggxwvwxwvwwwxwwgwwxvfwwwxvwgwwwxwwxwwxwwwwxwwxxwxwwgwxxxwxwvwwxwxwgxxwwwxwwwvxwwwwwwwwvwwwxwgwwwwwxwwhxxwxxwwwwwgxxxwwhwxgwwwwwxwxwxxxxxxwwwwvxwwwxwwxxxxwxwwwwwxfvxwxwxxwxwwwfvxwxwxxwwxxxxxxvwvwwxxxxxxwxwxxxxxwwxxwxwwvwwgghxwwwwwxwwgwwwwwwwwvhxxvxwgwwwwwwwwgwxwwwwxxwxwxwwxxwwwxwwvxwvxwhxxwvxxwvwwwwwwwxxwxwwxxwxxxxwwvxwxxwwxxwxxwwhxwwwwwwxwxwxxwwxhwxwwxwwwxxwhwhxxtgvwvwvwvwfwwvwwwwwvwgvwwvfvfgvvvwggegwwwwgwwewvwwwwhwwwewwwvwvwgvvwwxwxvwwwwwwwwwvwxvwxfvegvwwwwwwwfwvwwxxwxwVvffwwxffgfwwuxwgwwwxxhwwwvxgwxxxwxwwxwxwxwxwwwgxvvxxwwxxwxwwxffvVgfwvgwwwwwxwgfwwwwgvvwwfwvwuffgwwwwwvwvwvwvvvhwwwwwvwwwgwwwwxxwwwxwvwxwwxwxwwwwwwhvwwgxwhwwwxxwxwvgwwwwwwwwxwwevwwwWwwwwxwwxfvwwwwwwwwxvwwgfvwxxwxwwwwwwwwxxxwwwgwxxwfwwxwwxxgwwxwxhwwxwxwwxvvgwvwgvwwwvgwvhxxgwvgwvvwggvwwwxvwxwwggfwwxxxxxwwwwxwvxwxxwxxxwwggevwwvwxvgvwwwvwhwwxwxwvfgVwxwwwxxwwwvxhxVwxxwwwvwwwwxxwxwxwgxxguxxgwxwwwwxwwwwwffwvwwgvvxwfvwgwwwwwvwvxwxwwwwxxxwwwwxxxwxwwxxvwwwxwxwxwwwxwwwxxwwwvwxwwwgxxwwwwvvgvvwxwwxwxwxxhwxxwwvwwwxwwxxwxwwfwxwwxwxwwwvvwvwfwxvggwwwwvggwwxwvvfwvvgwwwvfwwwxwwwwvwwxgxxwxwxwwxwwwxwwhwwwwwxwwxwwfwwwwgwvwwwvwxwwwxxwgvwwwwvwggwwwwwgwxwwxxwxwxwxxxwvxxxxxvwxwwwvgggwxwfgwwwwwfwwxwwgvfwwvxgvwwwwvgwvwwvwgwvfvvxxxhwxwxwwxxxxxxvwwxwxwwwwwxwvwxwwwxvvxwxxvwwwwwwxwvwxwxwwhxxwwwvwwhxwvxwxwwxxwhwwxxxgwhxxxxwxxgwvwwvwgvwwwwgwwwwxwwvwwwgwgwgvvwwwxwwxxwxwxwxwxxxwwvxwxwwwwwxgwvwxwwxwxhwwvwvxxxvxxvwxwwwwwvxfwxwwwgwwwwwwxwgwwwgwgxxxwhxxwwwwwwxhwxxwwwwhxxxwxxwxxxxwwxxwwxxxxwwwwwwxwxxxxxxwxwxxxxxxyxxxxwxxxggWvwfwwvgWvWfvugvwwgwwwvwvwwxvwvfvwwvwggwwvwvwwwxxxgxwvwvwgvhxwgxxwugwwwwvxxwxxxgxxxxwgxWwgxxwvXwwwwwwxwxgxwwwwwwxxwwxwgxvwwhwwwwhwxxxwwwwxgxxwwwwgwfwwwwvwgevwvgwwwghwgevwgvxwwfwwwwwwvvwvxwwwvwxvwxgwwwwxxxwwwwgwwwxxwwxwxxxwwwxwxwwxxxgwwwxxxxhxxgwwgwvwwwwvwggwwwxwwwvxxxxxvwhwwfwxxxwxwwxxxxwxxxhwxxxxxwwxgwwwxxwwwxggwfwwwwwwxvhwwvxwwxwggwvxwwwxwwxwvvwxxgwxxwvxgvwxxwwxwgxxwvvwvwxxwwxwvgvxxwwwwxwxwvwxxxxwwxxxwxwxxxwwxxwxwwvvwwfvwwgwwwwgwwwwghxgwwwxxwxxxhxxxwxwhwwxxwxxxxxwxxxxwwxvwwxwwxwwxxxwwxwxxxxxgwxxwxxxwxxxxxxwwxxxxxxxxxxuwwevevgwfwvwwwwwwvwwwgwvwvwvwxvwvwwvwvwwwwwwwwwvwwvwvxwwwwwwvvwwwxwxgwuwgvgvwxxwxwwwwgwgwuwwwvwxwwwxwxxxxxgwwxwxhgwwwwxwxwxwxwwvgvgvwvwgvwwvvwwwgxvwvwvwwwwvwvwwgvgwvwwwwwxwwvwgwgwvwwwgwwwwvxxwxxxwwwxwvxxwxxxwwxwxwxwwwvvwwwwwwgxxvwxxvwwwwwxgwxwwgwwwxxgwwwwwgwxwxwwwxxxxxxwwwxxwxxwxwwwuvwwgvgvgwwwhwwvwwwWgwxwwwwwwwxxxxgwwwxwwxxxxwvwxxxwvvgVewwwxwwwwwxxwxwgwwxxhxgwxxxxwwwwwxxxwgxxxxvxhvxwxxwwwwxwfwwwwwwwwxwhfwxwxwgxwwwwwgwwxwwwwxvwwwxxxwxwxxwxwxwvwxwwwwxxwwwwwwwwxwxxwxxwwwxxxwxwwxxwwxwxvvwxwwxxvxxwxxxxxxxwxxxuwuvvvvgwvxwuewvwwwwwwgwwgvwvugwwwwggvwvwwwwwxwxwwwwvfxwwwxwwwwxwwvgwxwxhvvwwwxwwfwvvffwwgwwwwvwgwwwwwxwwwgwwwuwwxwxgwwwxwgwxwwwwwwwwxwxxwwvwwwvwxwxfvvwvfvvgffvfvfuvVfwwwwwwwwwwwweufWgwvwwwwwgvwVvvwwwwgwwwxvwwxwwvwwhwgwwwwwxwwvwgxxwwwwwwwxwxgwhwxwxfwfffuwwwwwfwwwvvwxwxWwgwwwvwwwxwvvwwwwwwwwwvwwwxvvhxxwxwvwwwwwhxwwxxxwxwxvwvvwfweewfvwwwfwwwwvwwwxwxvwgwwxwgwwxwwvgwvxxxwwwwwwwxvwwxxxwxwwwwwxwxxxxwxxxwvvwwgewwgvvwwhwwwxwwwwwwwxgwgwxxxxwxwxxwwxxxwxxfwfvwwwvfffhxxgvgwwvvwvwwwgvwwwxwwwvhwxwwvgwwgvwwwhxwwwxwxxxwxwxxwxwxxwvxxxxwxwWwxgwwwxxxwwwwxwxxvgwwxxxxxxwwxwwwwxxwxwxwxxwxxxevwwwvwwwfwWwwxwwwwxwgwvgwwvwwwvwwwxvwwxxgwwwwwxwxwgwxgwwxwxwxwwwwwwxwxwxxwwxwwwwwgwwwWfuvwxwwwwxxxwgvwxwwwxwwwxxxwxwxwwwgwwwwxxxxwxwwxxgwwwevwwwWfvfwvwwggwgffwwwwwvwggwwwgwwgfwwxVvuwvwwwwwwwxwwwwwwwgwxhwwwxwwxwwxggxwxwhgwwhwwxxxxwxwhxxxwwwwgvgvwxveuvwwwxhvwwwwvwgxwvxgxwxwwwwvwxgwwxxwxxxxwxxwwxwxxxgwxxwxgvvgvwfwvwxhxvwwxxwhxwxvxwwxxwwwwwwxxxwwxwwwxwxwxwxwxxwwwxwvvwwwwwvhxxxwwwvxxwxxxxxxhxwwxwwwxxwxxxxxwwwvhfgvwxxwwvwwwxgwwwvhwugwxwxxxwxxwxxwwwxxxwxwgxwxxxxxgxxxxwxxxvwwwxwwwwwwwwwwxxwwxgwwwxwxxwxwxxxxwxwxxxxhxwxxwwwwxxxxwwwwwwxwwgwwwwwwgeVgvwvgwwwwwwgwfxwwvwgvwvgwwxwwxwxwwwwwxxxwwwwxxvwwgwwwwwwwxxvxwwwgwvxwwwXvfvhwwwwwwwwgwwwwwwwxwxxhwwwxxwwxxwgwwxxxxxxxxwwwwwgwvwwwwwgwgwwwwgwwwwwwWvwwgwwxvxgwwgvxwvvwwxwwwxwwxxxwwfwwwxwxxvxwgwwxwwwxwwxxxggwuwxgwxxwwwwxxvxxxgwvxxgwuwwgwwxxxxwxvwxwvxxxxwhxhxvwxwxwxwwwwxxxgxgwwwWvfxwhvvvgwwxwwwwwwhwxwwxxwwxxheVuwwwwxxxwwxwgwwwvwwxwwxxxwxwxxwwxgwwwwgwwwwwwwwwwxxwwxwwwxxhwwxxgwxwxwxwxxvxxwxxwxxwxwwwxwvxwwwxxwxxxxxwxwwwwwwwwwwxxxxwxwwxxxwwxvwwxwvgegwvwwwwfeWgfuwwgwvwgvwwxwgfwvgwwgwwwgvwvwwwxxvxwvxxxhxxwgwwgfxwxwWxwwwwwxgwwxxwvwggwwvvwvvwwwwwwwwwwwwhwwgwxxwxwxwxxwwxwwwwwfvxwxvwwwvfwwwggwwwwwvgwwxwwfwvxwgwwwvwVvwggwfwxwwwVvwgwwhvwwwwwxxwwwvwxwwwxxxvwwwwwwwwwwwwwwwwxxwwwgwvwwxxxwwwwwwwvwwvxxvvvwhwwhwxwfxwwvwwxxwxxxxxxwxwwxwxwxxwxxwgwwwxxwwwwvwvwwwwxxxwwgwxwwwxxgxwwwxwwxwxxxgwxwxxwwwxwxwxhwwxwxwwxwxwvvwvwwwxvgxxxxwwxwxxwwwwxwxwxwxwxxxwxwwwwgwxwwxgwwwwfwxgxgwwwwwxxwwwvxwwhhwwxxvxwxwwxxwwxwxwvwwxwxxxvwwxxwxxxxwwxxxxxxwxxxxxxxxwxwvwvwvwwuVwwwxwffvgvgvvvwvwuWgwwwwvgvfvgwwvwxwwxwwwwwwvwxgwwwxgwxwwwvwwxwvwxwwvxwwfWwwwxwgvwwhgwwxwwgwwxgwwwwxwxxhxwxwwwwxwxxxwwxwxwwxxxxxwwxgffvvfwffvwgWvvffffffvwwguWwvfxfvvgvgvgvwxwfvvgwguWvwxwgvxxwwwwwwwwxwgxwwxxwxwwxwvwwxxwgxxxwxwxwwxgwwghwwfwfgvwwwwxvwfvvwwwvWwwwwwgwwwvxxwwhvwgxwwxwwwwxgwwwwxwgwwxwwwwxigwxwwwxxxwxgvwwxxwxwwxwwxxvWwwxwwggvxgwvwxwwxwxwwwwwxwvwwwxwxxwxwwxxxwxxxxxxxwxwxwwwxxwwwxxwwwwxxxxxxxwwxxxwxxxxwxwwggvvvgxwwxwfvvwwwvWvwwxwwwwxwwwwwvgwwwgwwwwwxgwwwwwwwxxxhwvxwwxxwwgvxwxxxwwxwwwwwxwxwwxwxwxxwwwwwxwwxwxwwxwwwwwxwxxvwxwwwxxwxxwwxgwwwxwwwewwvwwwwggxwgwfwegvggwwvwwvgwVvwgfwvfvwvgwvvwwwwwwxxgxxwfxwxwwwwwxwxwwgvwwwxwwwxwxxwwwfwwvwgxwwwwwwxgvvwwxwvxvVgvefwwxwwwwvwxggxvvwwxxwxwvwggwwwwxwwvggvvxVeewggwgvvxgfwgwfgwuwwwwvvwvvgwvwvgvfwxghgwwwwxwvwvwgwgwgvwxhxwwwxwxhvxxwvwxwxwxvwwxxwxxxwwwvwwwvvwvuwwwvwgwgwwxwvwvwvvxwxxgwgwgwwxwwwxwxvxgxwwxwxwwxxwvwxxhwgxgvxwwggewwvwwvgwxvwwxwfvvwwwwwwxwxwwxxwvwwwxwwwxgwxxwwwwwwwvgwxwxxwxxxvwgwvwwwvwxxxwgxxxxwfwxwvxwwfvgwvgwwwfxwxwwwxwwwggwxwwwgvxxxwxxxwxxwwwxxxwxxwxxxgwxgwwgxwwxwxxgwwxwwwvxwwxxxxxxxxwwxxxvwwwwgvgwwwwwwwwfvvwwwgvgwgwwwwwwwwwwfvvwwwxxxwxwxwxwwwwwwgwxwwxwxxwwvxxwxwxxwvhwwwxwwwwwhwxwwwwwwwwwwxxwxwxwxxxxxxxxwxxwgvwwwwwwwwwwwgvwwgvwxwwwwwwwwwwwwwwwwxxgvwwwwwwwwwxxxwwwwwwxxwwxwwwxxxwwxwxxxwwwwwwwxwwwxwwxxxwxxwwwxxwwwwxxxxxxxxxxxxwxxxxxwxwvxwxwgwxwwxwwxwgwxwwxgwwwwxxxwwxwxxwwwxxxxwwxxwxxwwxwwfvwxxxxfvvwwxxxwwwwxwxxxwwwxxwwwxgwxwwwxxwwwwwxwxwxwwxxwxxxxwxxxwwwxwwwwwwxxxwwxxwxxxwxwwxxxdwwgwgwwwwwvwfwwwfwwvwvgxwwwfgvvvwwfwFwwwggwwvwwwwwwwfwwwvxwgwwwwwwwxxgWwwwgxxwxxgwgxwwwwwwwxwwwwxwxgwgwwvxvvwxwwvwfwvwgwxwwFgvfwwwwwwxxgxwxwwvgwxhwwxxxWwwgwwwwwxxwwgwvgwxgwwvvgfdgugwffgvwwwvwvwwgwWevvfvhvgwvxwwgvvgvxWgwwgwwwwxgwxwwxhwwwxwwwxwwwwxwwwwvxwwxwxhwwwwwxwwgwwwxxwxxhwvvxvdvwwwwwxxwvvvwwxgxvwxwwwevwvxvgvvxwvvxwWwhwwwwwwgxwwwwxwxxwwxwhxwwxxxwxwwxhxxwxwwxggvxwvwwwwuwgwgwwhwwwgfvxwxwwxwvvgwwhxxwfwwwxwwxwwwxxxwxxxxwwxwxxxhwxwxxwxwwwwwxxuwxwxwvxgvxggwxwwxxwwgxxwxxwxxxwwwwwwxxxxxhxxvxgwvwfwxhgwgwwggwvwwwwgwwxwgvvgwxwwxxvwwwWxvwhxxgwwxwwwwxwxxxxxwwxwxxxxwxwwxgwwxwhwxxxwwwwwvwxxxwwxwwxxxwgxwxxxxxwwxwxwwwxxtvgwffvvwvvwvwwxxxxgwwwwgwfgwwwvhvvxxhxxwxxxgwwwvwgvwvgvwwgvwxxwvxwgwuwwwgvwxxxVfefvgewgfVvvwxwwxwxvwwxvwggwwwxwwwfwxxhwxxwxwwwwfgwwwxwwwwxxgwxwxxwxxwgxwwVfvvfwvvgggfwwwWvwwxgwwwgwggvvwwgwwwxhxwwwxxxggvwwwwwwgvwfgwxxxvxxxwxwwwwwwxwwxxxxwwhwxeffvwffwVvvwwwwgwwwwwgxgwxxxxwvwwxxxwwwxwwgwwxwxgxwvwwwxwxxwxwxwwwwgxwwxxwxxxvwxxxfvvwuwwwwgfwvvwwwwxwwxwxwwwwwwhwvwwxwwwgvwvwvwwwxxwwxxxxwwwwwwwxwwxwwxwxwvVevvvwffVVxwwgvwwwwwxwgfwxhxwwwwfxwvxxxwwxxwwwxwvwvgghWxgwgwvwxhxwxwwwxxxwwvwwxwwxwwhwxvwfwwwxwwxwxwwvfxxvxwwwwwxwxwwxwwxwxwxwxwwvwvwxwvxwwwwwxwxhwgwwwwxxxxxxxxgwwxwwwvvgwwwvhwwxwwwvwwwwwwgWwxwwxxwxxxxxwvgxwwwwwvvvxhwwwwvxxwwxxwxwxwxwwwxxuuuwvwwwfvwwvvvuvvwwwwfwgwwwvxwwuvxvvgwwvwwwwxwwwxvwwgvfwvwwvvvuuvwxwgwwxvfwwwwwvwwvwwvgwwvuwwwguwvgfwuwwwwvgwwgxWgvwwwgwwugvwvvwwwwgvwwxxxxxvwgwfwwwvwwwhfwgxwwwwxwwxxgwxwxwwwwxxxxdvvggvvwvWvvwwvfVfwwggwVuewwwwgwwvvvvgwwwwwwwwwgwwvvwwwwwwxwvwGwvvvvwvwxwwwwwwwwwwhwwvxwxxwwwwvxwwwvwwhxwwwwgwefgwvgwuevvwvwwvwvggwwwvvgvwwvwvvwwfwxwwwwwwvxwwwwvwxxwvwvwwvwvhwwwwwwxxgwwggwxwxxwxwwwwwxvhxxwwwwvvwvwgvwvvwweuwfwwvwgwvwvwwwwxwwwwwwwwwwxwxxxvwevvvgwvwwvgwvwwwwwvxwvvwxwwwwwxxxwxxfgvweggwvgwwvwwvwwwwwwxwxgWwggxwwwxxwwxXwwwwwxwwxwwwwwwwgvxwwvwgwwhxWgxgxwxxwhwwxwwwxxxxwxvwvvgwgffuwvwwvuwwxvwfwguwgwwwwwxwwwwxwxwwwxxwvvvfvgvwuvgwuwwwwggwvwXxgwwwwwxwwxxwwwwwhwwxvxhwwxvvfwwwwwwwgwxwwwwwxWwgvugwxwxwxhwhxxwwwwxwwwwwwwxfwwgwwwvwghwwwxwvwxwwwxwwwwxtegwWfgwUvwvwgwgvfxvwgfvvwgvwwwWwvwwwvvwwxxwxwfwwxVwwwgggwewvgwdwwffwxgwwwvwvwwwvfvwewvwfwwwxwxwwFgewfvvwvVvwvwwVfVvwhgggvwgwwvvwggwwxwwwxxfwwxwxwxvvvwVvvwgvvxvgvvwwwwwwxwwwgwxgwwwxwvwxhwxwxxxxxxwEWffwWgweffvwvuvfVVwwwwfvuwwvwfwGwvwvgvxwwwfwvwxwgvwwwwwhxvgVwwwwwewwwwggxgwwvwhwfvxgwwggvxwwwxvxxxxwvgwwXxwxxxxgVffwguvxfVwwvvxwFffwwgwxvwvfwgwVwgxvwvwxwwwwwwwhhwgxwwwxxfvgxwWvxwwwwvvwwwwwxxwwwxwwxwxwwxxwwwwhxwxhxxxwwfvvwvgvwtwfwwwwWvwwvvwvxwgwwxwxwwxxxvxxwxvgfwgvfwvvwwwwgxwxwwxwwwwwwwwwxxhxwxvwwvfUwggwgfvvvxwffFWwghwwwhxxxwwwvxxwwxxwvxxgxxhxwwxwfvgxvxwwfwwwxwxxwhxwxxwxxwxwxvxxxvxwvxhgwxxwxvwxugegvhgwvxwxwgvfgvwwvwwwgxwfwxwxxwwvvxwwwwxwwwwwxvwvwwwgwwwwwwwwwgxxhxwfwwxvwwxwxwxvwxwwwgWxwhgxxwvgxxxfwvgwgwwwwwegghwgxvvwvwwxwxwwwxxvxgxghwwvxxwwxxvwghgvwwwwxvwwwxxwxgwwwxxxwwwxhhwwwwwfvvvvevefvxuwwvUffvwxvwfvwvvxvgvxwwwvuwvwwwxvwwxwwvvwevwwvfuvwwwuvwvwwvwwwvwxwwwfuvgwwxxwwvwwwwwwxwveVVffvgffvfwwwvfvfwwggfuvwhwhvvvuvvwxxxwwwwvvwxwvhwwwxwvvwuvfgvwwvwxvuvwwwhvfwvgxfwwwgvvwwxxxwwwhgvxvgwvvvwuewvvvvwwwweevvvvwwvvvvwgvvvwvvwvwwvgvwgxwwwgwwvwgwggwgvvwwwvwwwgwvwwwwwvwxwwgvwvvgwvgwwwwwwwxwwxwxgwwwwwwweVuvvvwwgfvvwwvwvvggxwwhwgwggwvvgvvwwvxwwwwwgwgwgxvwwwxwwhvgwwxwwwwwwxwxwwwxwxwwvvvwwwwwwwxgxwwxxwvhxxwxwfvfvfwwvfgwvwvvvvwwwwwwwgxwvfvvwwwwvxvvwxvwxxvgvvwwvvwwwwwvwwwwwvwwwfvwvwwvxwwxggwxwfxgvgwgwwvvevvwwwgwgwwwgwwgwhwggVuvvwwvgwwxwwxgvgWfwwwxwwguxxwgvwwwwwxwwhwWxufgUxwxxwwwwWWfwwwxwwwwwgwxxwwwxxfvwwwwwwvwxvvvwxwwwwwwvwwvxwwwwxxxxwwwxwxwvwwwwxwwwwwwxwxwxwwxwxwwxxwwwxxwwwxxxxxxfwgxwwwvwwhwfgxxwwxggxvwwgxwhvwvhxwxxwxxxwwghwwwwwwvwxwwwwwgwwwhwvwwwvwvwwgxwwxxwwhxwxwwwwwxudfwgwwxfvvvvfuvvwwffwwwfuvgwwvwgxufVwvvvwvxevwgwgfvvvwwwvwwgwwvwuxwwvvfwvuwvwwvwvwvvwuwwwxwfgwxwgwwgvwvwffvwwvwvfwfwvvwwgwwhxxxxFwfwvxwwxwxvvvwguwvwvxwfuwvwwwxwxvWvwvwwgxwwwxwwwwwwwxufwgwwvwuvgwvxvFevwgvwvvuwwvugffvvwvWwwwwvgfdhwwgwvwwfwwgwwvfwfwwWvvwwfvgvwwwgwvfwxxvwwvvwvwvxxxxwwwwfwwxvwwwuwhwwvVvggwwwxwwfdffwvwwwwwwwfvwXwwxwxxwugvgfgwwwwwwwxgvvxwwwxvwuwgxwvwwxwwxuwwgxuxwwxgvxxgvwwwvvvuxwxxwffgxxwvvxwxvwwwwwwwfvvwuxwxxvvvgwwwwxxwggwwwwwvwwxvvvwvwwwwxwwwxwwwwwxwwvvwwwxvgxwxhuwffwwwvwwwghvwgwgvwvwgwwwwwwhfgxxwxxwxwxxxvvfvwwwwxwwwwhwxwwwwwfwxvgxxggwwwwxwxxwwxxvggwwgvxwVuvwwvwwvwwwfvwwxwhvxwwwvwwwwwhfwwwwvwvvwwwwxggxuvvvwwfvvxwxwxfxgwWwwwwwggxexwxgwXvfvgwwwwxxxwxvwwWgwxwwwwwvgvgwxxggxwgwfggwvgxxvhwvwwwwxxxvxwwwwxvwwwxwwwxvvxxxwxxxgwwxvwxwxdwvwwfxgvuxwffvfvxwgwwvgWwgwggwwgvxvgvtxuhwgwxfVwwwwwwwGtwvwfgwwgwWwwwfwxwwwvwwwwvwwvwgfwxtwwguwxvgwwvxwwwxuwfvwvgvgEfwVvfgvWvvwwwwvvgWwvwwgwvvvwfvgxwwwggwxwxxwwwwxwwgwwfggwgwwvwxgvwwwgwwgxxwwwgvxxxvhwgwwwwvhxxxxwgwvxvgwfffvgvfww&TvggvgVuufvwwgvgvwugwgwtguwwwfuvxfgvwugwvggvfvwwgvwwgwwvwgwWgvvwwwgfwgvwwfggwwwvwwhWvxwgewefwvwgxVwvxwgwgtvUVwgwwgFUdWwwwgvfwgwwwwgwGvwfgvvWvxwwgwgwwwxwgwwgwwvwwwxwwwwvgwhwgwwwfgvwwgggwfwwhgwxwwwwuxxwxwwwwwwxgwvggxwwwvwfwwwwvggwvxugvwfwwxwgxxgWwwwwgvvwwvwwwwgxwxwxxvwwwwgwwxwvvwwfxgxxwwwwwwxxxfwhwwxwxvwxxhwwwwgwvwxfwwwwwwGvvxfgwgwwguwwvwwvwvwxgxgxgwwgvgvwwwwwvguwewvwvxwgxvwgfgvwwwwwwwxxwwvwwwggxXwwxxwwwwxfgwvwwwhwvXwwwfvwgwwwwwgwwwwWeuWwxwvgfwxwwvhxWwwwggvxwvwwgvwwvwwgwwwgwuwvvwxhWwwxwwxwxxvghwwwwvgwwgwxwvwxwwvwwwgwwxwvwwgxwwvgwwxwwwwvwwhuwwwwwxwwwwgggwwgwfvgwxxwgvxwwvwefwwhwxwwwwxuwgvwwvwxwxxwwwwwwwxXvwwwvwvwvsvwhwwwfwVxwhfgvwwwwwwwvvwwvwgggvwxwwwwvxxxfgvxgwegwwfvxvvvwwvxfuwxwvwvxwwxxxwvuwxwvwxUWUwwvwwfvwwwxwfWvxwwxwwwwgvEwwvggwwxwuwwxgwvvwwfwwgxwwwfwwwxwxwhgwvwwgxwgwgxxhwxgVVuwwgWggvxgwvfffwwwvuvwwwvggwwvxwwwxgvugwxwxwwxxxwggwfvwvxwxwwvfwxwwwwvxwgwwwvgxwwvxwhWwwxwhxvvwgevfvgwwwwvwffffwwwwwvxxwVwvwxvgwxwwxwvwgwwwwhxxxwxxvvwvgwwgwxwvgwwxwxwwvvwxgwxwwwwwgwwwhgxxxwxwwvwwwwwvgxugvwxhhwwxwgvvwwuwvxwwvwvwwfwwwvgwvxwwxxwwvxxvwxxwwwxwwxfwgfTwwwwwwwxwxfvwwxvxwwxxxwwUUVwwuwxwwvxwvggwwwwxxxwffwwwvwwwgwwxgVwxwvvxxwwxhxfxwxWgwwxwxwvgfwwvvhwxfxvvvwwwgxwwwwwwwwxxwwxwxxxwwvwvwwwwwwwwfwwwxxxwwxwhwwwwxwxwvwxwwxxvfgwwgwxwwwwwvvwwwwwvxvwvgWhwxwwxwwxxwxxwxvwvwwxwgvvvxxwwwxwwxxxwxwwxxxwxxvwfwwfwwwwvwwwwvvvwwvvwwxvvxwwwvxggxwwvwxwwwwvwwwwgvxwwxwvvwwwxwwxwxwvwxxfvwwxwvvxvgvwwxfvwwwwwwwwwwwwhgvxwwwvxwwwwxxwwwvvxwvwwgwxvwxwwwvxxwxwwxwwwwxwwvwwgvvgvwwvwwwvvwwwwfvwwhwvwwwwwwvvvwwwgwgwwwwxgwwwgwgwfwwwwxwxwwwwwxwwwwwwxwvxgvwgvxwwxwggwgwvxxwvvvwfvwwgwxvfvwwwwwvwgwfvvxwwvxwwwxwwwwwwgvwxxwwwwxwwwwwxwhwwwgwxxwwxfxxwwwwwwwxwvvwwvwwwwwvwwwwxfvvxwvxvgxxwwxwwwwwxwwwwwxwxvvvwwwvwwwwvxwwvwxfgwwxwwwxwwxxxwwwwxwhgvxxvvvwgvwxwwxxwxxwwwwxwxxxxwwxxxxxwwwxxwwwwwgwgvxwxwwxwwxwwxxxwwxxvxgwwvxxwgwwwwwwwwwwwwwwwxwxxxxwwwwxxxwxwxgxxwwwwwwxwwwxgwxwggwgvwwwwwwwxxxxxfwwxwwwvvwxxwwxwwgwwgwvxxwxwwwwxxxxwxwxwxwwxwxxgwfwxxwwxwxxxwxwxwuwfwggfvvwffwgggwvvvvfxwwgxwvxffwgwgwwwxvwvhxwwwwGwvvwfufvvhwfwhgwvvxwvwwwwwwxwwvwwgxwwhwwwxxxvwwwgwwgfggvwggwwfewwxwwwwwxgwxvwxxwxxgwxxxvwwxwgvwwwwfwvwvwwhwwwwxxwxfwvwxxxvxxwxxwhxxwwxxggvwwgwvwggwvGfgfvwwwVfugwwvwwvwfwxgvxwgwwwxxxxhfxwwxxwwvwwvwvgwvgwwvvvwxwxwwwwvwwxwwwhxwwxgWgxxxhxwxwwwwwwwvxVvvwvwwgfwghwggwwgwhwwfwvwwwXxxhwxwxhvwwwxwwwwwwwvwwxwgxxwxwwxxwxwxwwwfxxwwxwwxhwwxwwwwxwxxwvwwgwvfvfwvvgxvgwxuvvxwhwvwxwwwwwwwxxwwxxwgvggxwvwuvwxwwvxxwxwwwwxxgvfxvwwxgwwxwwwxxxwxwxwxgwvvwvwwwxxvxvvhgwxfwwwxwvwwwwxxxwxgwwwwwvvgwwwxwxxwvwhwuxwfxwxxxxxxwxwxvwfwgwwxgwvwgvgwhxwvwfwwwhfwvwwvxwxxghxxwwxxgwwxwwvxwxgxxwhwxxwwwgwxvwwxhhgwwxxxwxwxwwwxwvgxwwwwhxwwvwwxwxwwxxxxwgxxwxwxxvxxwxwwxxwwwxwwxwvwwffvxwxwxxxwxwuvwvvgwfvwvwgwwwwwwwwvwwffwwwwwgwxwvxwxxxwvvwwgwvuvwfvwwxwxwgxwwvgvwwwwwxwwwxvwwfwvwwwWvugwwwwwwwwgvvvwgwwwhvwwfvwwwwwvxxwvvxvvwwgwvwwwvwxwwwwwwwxgggwxxwwxwuvvwvVevggwWvugwgwwwwwgvwxwvwwgfwwfgwgfvvvwxwgvwwvwwfvwvwwgwwfvwwvwwwvwwwwwwwwwwxwvvWgvvwxwxgvwwwwxxwxxwxwwvffwuufvgvfgwvwfwwwvgwxwwwwvwwwvvwvwxvwxwwvxvwwgwwxxwwwuwwvwxwwvwwwwwwhvxxwwxwwxwxxxxxwvvgvvwvwwwvwwgwxgxxvwwwvwwvvwxhwwvvwwwwvgvxwxxxwvwxwwwwxxwvvvvvfggwxxwgggxxxxxwwwgxxwwvwwwwwwxxwxwwxxxhhhwwxwwgwvwwvwwwgxxxxxxxxgxxwwxwggxxxxxxvwgevvwgvwvxwvxwgwwwwwwwhwwvwxwwxxxwwwwxwwggevwwwwgvxwwwxwwxgvwwxwwxxwxwwxwwxwgxgfwvwvvwgwwwwgwvwgwwwxwwwwhwvxxwxwxxhwxxxxwxwwwwwwxxxwxxxxwxxxwxwxwwwxxxwwxxueevvuuweevvvvvfvxvgvwuwwvvxfduvtgwuwwefvvwgvwvxfvwxwfuxuetugwfwfwvVewwhwgvvxwtwvuvvfvehwvvfwvwwwwgwwwetegueuwvwfwfvwffvwwgwfwxxgwuwvwuvvxwxwgwvwfuxwvwxwxxxwugfwvvvfvvwwwwgwwgwwwwgwxwxfuuwwwwwwwwwwwwwwwxwxxxxwxxxfuwueuuvvwffwvuevwvwgwgwgfwtfwfvvxwwvvwwwuuvuwvuwvwvvwwwvgvvwwwwfuvwwgvwvwwwwwxwxvggxwwvvwwxgwwvwwvwwvwxxwwwwwxgvtefvffvvfwxwwvwvvuuwwvwwwwwwwxuufxwvwwwwfwgwwwwwwwxwwgwwwwgwwwvxwwvwwxwxwwxwwwvvwxvwxxwwwwwxwwwwxwfuuwugvuwvvvwvuwwwwwwuvxvwwfwwvwwvvxwwwwwwxwxuwevevwvvwvuvfvvwxvwwwxwwwwwxwvvwgvwwwwwwwgxwuwwwdvewwgwgwwweuvwwgwwwxwxwxxgwwwwvwgwggxwxwwwwfgxwwhVutwfvgvwgffwwwwwwxxxxxhxgfwvxwwxwggfwwxgwuwwvuvwvwwwvfvvwvvfwwwwvwxgwwwxwvvwwwwxwwwwvwwwvwwwwwgvvwgxgwwxwwwxxxxxxwwwwwwwxxvvvwvvuwwwxwwxvgvwgwwxwwxwwxxxwwwxwwvxxxxxxwwfuwwwxxgwwwwgvwxxxxxxwwxxwxxwxwwwxwwevvWuvwwvwgfeugwgwwgwggVfwvXgwgfggwvwwuwwgwwgvuxgwgwxgggxwedwWgwfwvwggwxwwxwwwwwWwwUvvwwgwvwwhwwwgWwwwhwwggVgwgfevfwwgwgwvxxwwxwwhgvvwwwxxwxwwxwxxhgvwWvfwwwwWwhgwwxxhwwxwwwxwvfwxwwgxgxwhwWfewggwVfvvFeuwwefgwwwgvgwWwfgfWgfwwuvwvvfvVvwwwwvWwxwxwgxfwgfgwwwfhggwwwwxwhwwwxxxxfwvwgXgwwwwwwgwwwWHgxxxwwgggvVvfxfvvxvxwwWvgwgwgHgwhwwxgxwwwwwxxwwxwwxwwwwwwwwfwwwggwWxxxgxhwwwxhXwwxwxxwwxxwwwxxxxhxxxxxwvwvfVfgvvtvwgxgfvhgwwxwwwxwhwvwwxwwwwhwwwwxxgVvwewvwwwwxfvggWwfxwggxwxxxxgwwwgxxxwwwvxxwxxxwxwfvuwwgwhwwwvwwgwwhxxxxxxxgxwwwwgwwgxxxxxwwxxwxwvwwxfuvvxwwgwvwwxhhwwxwwxwxxwwwxxwxxxxVggWvvwfwvfuvVwfvgwggvxxwwwwfvxxwwwxwxwwxxhhwwwwfvwwwgghwxwwwvgvwxWXwxwxwgwxxwwwwvwwxxxxxwxwvxwwwwwwwvwwwxgwfxwxwwxxxxxwhxhxWwwxxwwwxwvwxvwwwxxhhwxxwwhwxxgvxxhuevvfuwwwwvgwwwxwwwgwwwwwwvwfwxwwwwwfwwwwgwxxwxvvxufvwxwwwgwwxwwwwxwwwvwwwwwxwvwvwvxxwwhwwfvwwvgwwwWvwwwwwfvwwwugewVwfvwwwwxwxvfwwwgwxwwxgfwwgwwwwvwvwwxwwgfwwwgvgwhxwxxwwxxxeevwvgvwwwwwvwfwwwgwfwuwwwwwevWvfvuwfwgwvvvvwhwwwgxwxwxhwwwwxwwwvwWwuxxvwvxhvfwwwwwwwfwwwwgwxfwhxwwwxwufwwfvwgwwfwwwwgwwwfwxwweevwvvvwwgwwwwwvgwgwvwxvxwvvwvwwwwwxwxfwwgwwwxwwxxvwgwwwgwxxwwwxwwxwwwwvwwwxwvgwwwvxxxwwwvwwwxwxwwwgvvxvxxvxwvgvgwwxxwwwwxwvvwwwwwxwwwwxxwwwgewvwwvwxxwvvwwxwxwwwvwvwvwWXwxxxwwwwwxgxggwwwwwwwgwxxgggWxxwwgxwhwwwwxwwxwxxvwvvwxxgvvwwvwvxwwxffvfxgvwxxxwwwwwwwwwvwwwwwwgwxvgxxvxwxhwvgvwwwggwxxvxgwxwgevvwwvwxxwxxwgwwhghgwxxwvwggWfwxxwxxwwxwxwwxwwvwwhwwwwgwgxwxgxxwwwwxxwgxwxuUfUvfvvuvwffwvwwgwwVvwvwvvwtwwvfwfvvwwVvwwvwwgwvwwgwwwwvwfvvuugwvwvwgwwwwwwwvvwwvuxwwvwwvfwxvwwwwwxewvwxvVvwwgvwwwwwVvwvvgvuvgwxwhvgwwVfwgfgvwwwxvvugfwwwxxXwxwgwfwwexvwwwxwwwgwfwwwxghgfxwxvwwgwwxwwwwwgxvwxfvvwvwwwfwgevxvggwvgwwvdvwffwwwwvvwefvudvwwwfuwvgfgwwewguwvwvwwwwuwwvwwfxwxhxwgwxwwvvvwfwgwwwwvwwwwwwwvwgwexvvwvwwVuwwwwxxwvdvgwfggwgwghffffdwwvwwwgwxxvwuwwwwwwvxwwwwvwxxggxwvxwvxhgxwwwwgvwxwxwxwxwwgwgxwvwgvvwggVwxwVvwvwwwwwxwwgwwwfvvgvwwvwuvwxwxfxwxwfwvvwxwvxwwgwwhxxgwwwwwxhwxwwwxxxgwxxxwxxxwdvwwwwgwvwfwwwwwwfgxhwfgvwvxxgxxwxwggwxWxghgxwxxwgvwvwxhwwxgxxehhwxxwwwwwwwwwgwhvxwxxwxwwggvFwxwwffvxwfgwwwwgxwwwwwwwwwgwgwvwwwwxgxxwwxwwwwuxwwvwwwxwgwvxwwxxghwwxxwwwxwgxwwwwxgwwxwwxxewvwwwwxwwwwgwxwvwxxwxwxxhhwwwwhxxwxwxwwwwwwwwvwwxxxwxevwwxxwwwwwxxxxxxwwxufwfuvwfvvwufvuuwwfevgVvwwfffvvgfwwwwvfffvvvwwuwwfwgwwfwuvvwwvuwfvxvggwvvvvwvfwuewvgwwxvwwwwwxwhwhwwggfwwgwvwgvwegvwfWvwwwvwvvwwgxfvfgvwwvuwvwggfwwxwwhgwXwxwwggwevvwfvwwwxwvwxxwXwwwxwwgxwwfwgvxwwvwgxwxgwxgWgxvgwvvwvuggwwwvfgfvVvWvufevweevvgfwfvvgewwvgvwfuvwgvwvvwwggvvwwvwgwwwfwwxwfwwwfwvwwwxwggwwwgfwwwwwvvwwwgwvwwwhhwwvWhvwggxwwvwgfvwvWwvfvwwegvfffwwgvwgwwwxgwwfuwwfgwfvwxwxwvgfwwfxhgvwwgvwwwwxwvgggwwwgwwgghvvhgwxwwwwwwvxgwgwwwxvxgwwwwxwwwwwwwwvwvwxwwuvwgXvwwvfwgvwwwwewggfvvwwwwwwvwwgxwvwxfxwvwwwwvfwfvxvxfwwxwwhxwwwvgvwwxwvwvxwxxwxxhxxxwwwxwwvwwwufwwgwwWwfwwggwhwwwUxwgVwfwwvhxxwwxhwwwwWwhwgggvgwwfwwwwwfwhxhggvhvwgvxwwxwwwwfxwgWgwwwxwwxwgxvhwwfxwgvvwvwwgWvvwggWwwwwwfwewwvxgwggvwwwxxxxxwwwwhxxwwwxvvxgwgwwvvhvwwwhgwwwxwwwwvggvwwwwxxwfwxxwxwxwwfwvvwwhvwwxwWgvgwfxhxgwwwwgwwwwwwgwxwwwxxwwwxwwxwwxxvxxvwgwxxwhwxgwwwxwwwhhvvwwwwwwwwxxxwxxwwugfwvvvuwxvwwwxhwwwhwvwwvuewvwwfwwvwgwwwwwwhwwwwwwuwxwwwwwwwwwwxwxgwwwwvvwwvxwxwvwwxgxxxevguwwgwvwwwwgwvwwxwwvgvwfwwwggguxwgvwwvgwxggxxwwwvggvwwwwxwwxxwxwxvwvwWwgwxvwxhwxxwwxxggwxggvvugwvwvwxwWwwwgwxwwwvggvwvWvwwvvwwwfwwwwwgwvvwXvwgwwwWgvwwxvxwwvhwxwgwwwwwxxxwwxWggwwwxwwwuxwwvuwwwwwgwxwwxxwwugwfwwwfuwxwxfwwwwhwwwvwxwwwvvwwxwwwwwwxwwguXwvxgwgxwwwwhuwwwwxgwwwgwxwwxxwvwguwwxxvxwwxwxwxwxuwwewvwghvwwwwxwwvWwwhwwvuvwxwwgwwxwwwwxwxxhgxvwwgwwwwuwwwwwwxwxxywwwwwwgwwxwwxwwxwwwxxwwwwggwgwwgwxgwwxhwxWwwxxwxwxwwWvfwwwwwgxxwxhwxgwwxxxxwwwwvwwwwxxwwwxxwxxwfxwxhvxgxxxxwvwwvwwxwwxwwwwwwvwwwxwwwxwvwxxwxwwwxwxwxxwxxwxwWwwwgvvxwxwxxhxwhWwxxwwxxwxxwwwxxwxxwwwgwwwwwxxwwxxgxwwgWwwxxwxwxxxxxxwwxwhxwwhxxwwxvwgwuvgwxxwwwwwxxwwxxxwxxwufvwvwweuvxfffffvgvvxuggvwwvfuvwfefwvvvwufffwffxguevvwwwvwwvvwwvvwfvwvxwwgwgvwvvwwvwfvwfvvvwwwfwwwwvwvwwggvfwggeewvwwewfwgfuwfffwfvvwwwvwwgvfvgwgvgwxXgvvxgwwhgwvwwvwfvvvwwxvvvwgwwwxwwwgvwwwgwxvgwwgwxxwxWvxwwxufwxvwvxvgvwfvfwffwwvwwffvwwwvwfefgeevwffegwvvfvvwgvwwuvgvhwvgwxwwwvwggwwwwwwwxwxwwwwwwxwvvwwwwwwvwwhwvxwvwwxxwwwwwwwvfufweewwugvvgwwvevfvgvwgevwvggvwgvwwxvgvwwXwwwvwgwgWvwwvwwxwwgvwgxxxvwwvwxxwwxwwwwvwvxwWvwgwwwwwWvhxwwwwfwwwgfvwwwfvwggvwvwwgvwwvwxggvwvwgeewwxvfvvxwwwgwvxwwwwvwuwwvwwewvgvwwwwwwxwgwwxwxxwwwwxxgwwwwwwxgwvwggfwwxwgeufvhwvwwwwgwhvxvvwwgwwxwxwwwwfwhwwggxgvvwxwwwxxxvwvhgvwxwvwvwxhvxwwwxhxxwwhxwwwwvxxvwwvwggvwvxxwfwugwvwfgvwwwWuxxwfwgwxwwvhxwwwwgvfwwvwWvvwvxgwgvwxxxgwwwxwxwxxxwxwwxwvxwwxgwxwfvwwwxvxwxxxwfxwgwwwwggxwwwwwxwwwxxxwwwwxhwxvxwhwvwhwxwwwxwxvwxxxwwwxwvxxxxwxwxxwxugwWvfwuvgfgvvxvwwvfwgwuwgwwvWvwwwfgwvxggfvVgvwvuvwfwxgwxwugvVuwvwwwwggwvxvwwxwvgggfwgvwwfuxuxwwgvgwwhxwwgwxvvWwwfgfwvwffgxgUfvgvfgWffXvwwwvgfvwvwwwgwwevVgvhwxxgwwwvgvVwvwwvwwwhwgwggvgwhvxwwxwwwgwvwxvwxwxvxwvwgxggxwxwwwVgvhfffvggwfvwwfegffgeffevgvgwgv6dvgvvwgvvwfgwEfugvWvwugwvwWgwvggwgvgVwwwwgfggfghhXwgwgvgvgVwvgwwxhwfwwwgwwwWvgwhgxwghWhuxfEevVfvgfvwxvww5fdWvWfgwgxvxwxgvwwwggwgwgwwwfgfgVwgxwwwwvwwwgvvwwwgwwwwxvwvwWvgwgggxwggvvghgwvvwwgxwxvwwxwhxxxxwwwfwxfgfwwxgvgvwggwvhwwhwwvwwvwxwwwwwggwxxwwxwvggwvgwwwwwfwfwwWwwxhvwwwwxwwwxwwxwwxwwvwwwwwwvvwxgwvxwwgxvvggwwwWxwxwWwfxwgwwwwwwvvwxghxxhxwvxvwwwvwvxvxvxwxvwwgwgxxwwwfvxuwwhwwgwuvwxwwwxwwxwwxggfwGvuhwwwwwWvvhwgfgwfwvwvwwvwxwxggwwwwwwwxwwwwhwwxwxwwwVwwxxwwwwxwwwgwgggwWwXwfwfvwxwwwwwwwxwwxgwxwhwwwwwwwwwwwvvxvwwgwxwwwxffgwgWggwxvwvwwwwwxxwxwwwwwvwgwwwwwwwvwwwfwgwwhxwxwwvwwxxwwgXwxwvxwwwwxwxwhwwwfvwxwwxwghwwxvwgvvgwwgwvfvfwfwwgwwgxxfvwvvgwxwgwwwxxgwvwvwuwwvwxwwwxxvwxxvwwgwgvvWuvwxxVgdwgeUuwvwvwwwwgwwwwgfwwxwfvvvvwwwwxwxgwwwwxxxxwwwvwwwwwxgwwgewwwxxwxvxxxwxwVfuvvgfwwwWwwwwwgvwxxvwxwVwgwfwvwgvxwgvvwwwvwxxwgxwgwWuwwwxxwxwhxvvvwgwwwxgwwwwwwxxxwfeevUvufgwvxxwfvwwwwxxwvwevvwvwwxwxvgxwwwxxxwuvwwwwwxwxwfvxxxxwxxwwxwwwvvwvfuvwwxwwvwwwwxhvwwwxwxuvwvwvwxwwxxxwwwwwwhwwwxwwxxxwwwwwwwweUvwfVFwwxwwvvgxgvwxxxwwwwwvwhxxxxxwxxwwwxgxwxxwvxxxxwxxxxxggwvxxwxvgwxxvfvwvxwwwwwwwwxwxxwwgxwvwwxvxwwgfwwwwwhxvxwxxxxxwwwwwwxvwwwwwwxwwwhvxwwwwxggwwxwwxxwxwwvwwwgwwxxxwhwxwvxxxwwwxwwxwwwwwxxxgxwuwwfwuxwwwwvVfgvwvwvhvggfgfvuwvvfwwwwvfwvfgfvegxwgwwgwwvvvwhwwvwwvggxvgwvwhxwxVewwwwvvwxuxgwwwwuwwxxxwxgvgwvTVgvfufgwwwwwVwgwxvxvgvwfwUgwgwxwgwxgwwxxwwwwwfgwvwxgvgwvwfwwxvwwvewwwvwxxxxwwwwwwxxfvuwvfvvw6dwUvdwwVwgwuwgvvgvVfwvfvfvuvVvfwvwgwfvwgfgwwUvwwvggfwfvwwwvwgfwwffwgwgwwxwWwgxxwwgvvwwwwgvgwwwwgfvwwgvgfwggwguxwTUwFfSgwwgwwwWgwufvfvgwwgwwhwfwwghwxvwwvwwxwewwggwxwxwxwxxxwwfvgfvfwxwwgwxwxxgwwwxxwwvwwwWfxxhwxxhwwvwwfwwxxxwvwuvfwwwwwvwgwVgxwvwxwxgwvwwvwwwwwwvfxwwvxwwwxvwwvvuwwvvwwwvfwwxggxwxwvvgvwhwxwwxwwwwxwwggvwvwwfgwXwvxggwwvgwWwhxwwwvwxhxwgwwvxwwwgxwxxxggwwxwwwwvwgwwxxwxwwxxwwgwxxvxwxvWgvxwxwgWvgxwwwwgvVvwgegwvwxxVvdggVUwwgwgwxvgwwwwwwxxwhwwwwwwgwwxvgwxxfvwvfgwgwxvvvvhgfxwxhwwxwwwfwwgwwxwwwwwwxwwfgvwwvgwwwwwwxxxwwxfgxvwhvfxxxxwwxwwwwwgwwxwwvxxwxvgwwxwwwwwwxwxwwwfgxxxgwxxgwwwxvwvwhxvwwvwxvvggwwwwwffwvvwwfvgewvvwwwwwgwwfwwwwwxvxgxwvvvfgwvwwfwwxwxwwwxfwfwwwfwwwvwwxwwwxfxwxxwvwvwvvvwwvwwvxvwvwwwxwxwxxxvwwwgvwwvvegvgwggwwwfvwwxxgxwwvvwwwwwwwwxgwwwxwhxxwwwwwwugvxwwwwfwwwhwxwxwwwwwwvwxxwxwxwxwwxxvvwgffwvfwevvvgvggwwwgwgvwwvwwgggwvwwfvvwhwvfvwhxvwvxffwwwwwwwvwwgwvgwwwgwxwhwwvgwxxwxxwvvwvxxwvwwxvwvwwxwxwgwwwgxxhwwfwwvvgwugvhvwwwefvxwxwgwxhwwvwwvwgwvwxhwxwwhwwxwgxwwfxwwgwwwvwvxwyhgwwxxxwwhxxwxwwxxwxxxwwxxwwvwwvvwfwvgfvvwfwuvwwwwwwwwvxgxwwvwwwwwvwfwxxwwwwvxwwwugvwgxwwwvwwwwvxxxfwwxwxwwvxxxwwxxwxgwwfwwxwwvgggwwvvgvgvwgxwxgvxwvxwwwxxwwxhwhxggwwhgxxxfgxxgxvvwwwwvwwwwvwxgxxgwghwxgxgwwwxhwghxxxxxwwfwwwggvhghgfwwwxwhvwxwwwgwwxwxwgwwwwggwvhgwxvwhwvgvwgwgxvwwwwxxxxxwhxwwxwxwxxwwxgwwxwxxxgwwwxwwvxgwwwwwgwwxxwhwwwwwwwwwwxwxwwxhgxxwwxxwwxgwwxxvwwvwxxwxxxxgwwwvxxwxxxwxxwxuwwwVxwxwgwwVgwwxwwwvwgxgfvgwvvvhwwwvwwwxwxxwxwwggwfxwwwXwwwwwvxxxvfuewxwevwxwvwgxxxwvwvwgwvwxwgxwwwwwwwgwwwxwwffuvffwwwxhwwwxxxvvvvwwwwxwwxwwwxxwxxwgvvwgvgwxxwxwvwgwwwhwvgWwguwvwwwwwwgwvwfgwwwwwwUvfvwvgwwwfwgwvwwwgxwwhwwwwxxwvvwwxwxwwwwwwwxxxvgwwxwfWgvwwvwfwgwxxwwxxwfxwggwuwwhwwwxWxwvxvxwxwxwwwxxwxxwwxvxvgwwwhxvwwwwwwwgwwwxwgxxwwxwwxxwvguwwwwvxwxwgvgfwgvwxxxwxwxfwwxwwwwwwxhwwgwvvvvwwxwwwwxwxwwwwfvvwwggwxxxxhhwxxxwwwxxxwxxwxwxvxxwvvwwXgxxwxwwggwxxgwgwwwwgvwwwwxxwxxgvvgvwwwwwxwxxxxxwwwxwwwxvxwwxxwxhwwxhhwxxwxxwxwwxwxwwxxwxxxwxxwwxwxwxwwwxwwhxxxhwxxwwwvxwfwxwwxWufgvwwwwfffwfwvfvvvvfvuwwgewwwvvwuwwwvvfwwvwwwwgwvwuwhwwvgvwwwwvfvwwwwwvvuvwwwvwwwgwvxvvwuxvgvvvwwfuxfugvvvwfvwwvwvvvwxwhwgvwfwgvfwvwwgffvvwgvwwwwwfwwwwwwwwwvwwwfvvwxgwwwgwwvuwvwwwwwwgxgfhwwwwvvwwwfvfwwvwvuwwvgwvvfvtwevwwwfvwvwvvwwfvwwwwvvwgufwvxgvwwwwvwvwwwxwwwvwgwwwwwwgwgwvwwwwhwwwwwwgwvwxwwvgvgwwvwfvwwwvuwwwgwvfwuwwwgwwvfxwwufugwwwwwwxwwwhgufwewwwwwvxxwwwwwwwxwhfwwxwxvwwwwwwfvxwwwwvgwwwwvxwwwwgfwwgggwwwwvvgwwwwewwwgvwwwwvvwwgwwfwwwxwwwwwwwwwwwwwwwxwxwwvwvwwwwxwwvgwwxwgwxxwwwgvwgwwwwhwwwxxxwgwhwvwuvwwgxvfwwwxXxwwgWwxVgxxwwwWwxwxxhgwwxwwwxxhwxgwwgvwwwwvwgwvxxwxwwvWwwvwwwwwwwwwVwhvwwwwwwwwwwwfxwwwxwwWwvwwwwvwwwgwwwwxwxwvwwvxwwwxwxxvwxwwwwxwxwxwvwwwwwxxwgxgvwwwwvwwwxhwgwwwxgWwwgwxwxwxwxxwvwwwwwwwwwwwwwwgvwwwwxfwwwvfwwvwvwvvwwhwwwwwgwfvvwwgwwgxvgfwwvwwwxxwvwvwwwfwwwgwwwwwwhwvgwwwvvgvwwwwwwvwvxwvwwwwvxwgwwxfwvvxfvwwwwwvvwhfwgwgfwevhxvwvvgwwwwwwxfvgwxwwwxwwwwfxvwvvvwwwwxvvwgxwwxwgwwwvwwwwwxwxgwwgxxwwwwwwgwvwvgwfgvwwwwwfffwfggwwwvxwwfwffgwgwwvwxvxggevgfggvvgwggwwxwggwwwwwvvwggwwgwvfgwwwvgwgfvvgwwvwwwxfwvgvvhxwvwwxhwvvgwuvvfwwwwwwwgeffvwgfwwfwwvvfvwwwxgwwxwxwxggwwwwwwgxwxwvwvwwvwwxxxwwwfxhggwwwwwwvwxvwwxwwxwwvwhwvwwxxwfwggfwwgwggwwxwvwwvwwwxfevxwwxxwxxwgvwxvvwvxwwvwgxxwfxxwfvvwwwwwwwwwwxwwwwwwxwwwwwwwghwgxwhwwhwwwwgfvwxxhwhwwxwwwwxxxhwxwgwwwwwwvwwwxwhxgxxxxwwwxgwgwwxwgxwxwxvwggwgwwxwwwwgvggxxwwxxvwxfwwxxxwxwwwxwwwxxwwgxxwghvwwxwxwwgwwgxhwwgwxwwwwwwxhwwwxwghgwwxwwgwwxgwwwxwwwxwwgwwwwxwwwvwxvwxhxwxwxwwfxxwxwxvwxxhxxwxxxxwwwwvwvvxhwwxxguxvwvfwfvhvwwwvxwwfwwwwwwwgvwgfwxwfgwvwwwwvgwWuwwwwwgvwwvwvxWuwvvwwwxxwwwwvvwwWwuxwwwwwwvxwxxgwgvwwgvwwxwwxwwwwwwwwwvwxwgUewfvfgvgwwwwwgvfgwgwwxxwwxxwwwwwwwwgwwwvwgwxvwxxhwwvwxwwwwwxwxwxxvwxwxwwxxxxgvvxw6SvgwfvwvfwgggvvwwfwwwvvwwUvuwWvuwvgwwwvvgvxwgvwwwghvwwwwfwvwwwwwwwwfwwwwwgwwgwgxwwwwgwgvwwhgwvwwxgghffvvwWxvUUwwwwwgwfgwvxwvfwwwwgvwgxwwgEfdfvwgWvgwxwwvwwwvggvwwwwxwwwvwwwwwxwwvwwwxxgwgxvwxwwwwgvwwwwwxwxwwggxxwxwwwgwvwwgwvwgvwvwwwwwwgwwwwwwxxwwvwwgvxwwwxwxxxwwwwwwwxwwxwwwwxwwvwxwwgwxwxwvxxwwwwwwvXwuwwxvxgvvwwxwgwwxwwwggvvwvwvhhwxwgvvwxxxwfgwfwwwwxgwwvwxhwvxwwwxxxwxgvwwxwxwwhwgxvxvgvwwwVvegwwfwwxwwwwxwxgfhwxwwgfwwxwwwxwwxwxvfwvvxwwwwvxwhwxxwxwxwwwwhwxgwxgxwwwgwvwxwwwfgwvwwvwwwxwwwvwxxwxwxwwwgwwwwwwwxwxgwwxxwgwwvwwwxwfvwwwwwxwgvgwvwxhwwwwvwhxwxwwwvwfwvwwwwvvwvggvfvwwwwwgvggvuxwvggwfvwgvwffvvvegfwwxgvwwxvvWgwvxgVuwxwwffvxxvfwgwwvwwwwwvwwwxvfwvwwvvwwwxxwgwxwvxggwgefvwwvwxxwwgwwwwwwwxfvvwwwwwxgugxvgwggugxwwwwxxxgvwgxwxxfwwvwxxwwwxxgwvgwvwxfgvfwvxwvvxwwwvvwwwffVvwvvwvgvwwxxVvuwgwgfgwwwxwwwwgvwxgwfuxgvwwwgvhwgfvgXVfvuwwwwwwxwwwgvxxxwwwgxxfvvfvwfxwxgvugxvgWwwwwxwxwwvxwgwwwxxwvgwwxxwxxwgwhfwwxwxwwgfxhgxxwwwwwxxwxwwwxwwxxwwvwwwxvwwfugwvvwwxwwwxwwwxwewwwwwxxxgggugwwwwgvvfvwxvwwvwxwwwwwwxwwxwwwwvwwwxgwxgvwwgwwwvwwgwwwwxwgwwxwxxwxxwvxwhxxgvwwxxwxwgwwxwxwgxvwxwgvwvgvugwxxgwwwvgvwxxwwfwxwxwxwgfvwxxxxwwwxvgwgvwxwwwwwhhfwwxxwxxxwxwxxxxxwwwxvwwwvwwxxwxxhwwxxxxwxxwwvwxxwxwwwwxwwxxwxxxwxxxwwxwwxgvxwWvwGwvtgfWvxwwwwuxwfuuwWwxvvwfvuwuwfVffUvvwxwfwgwwgthugwwwWuwwwwwwwwgwwgufgwxfwxwwgvwwwxwwxxvwxxxggwvxwffwVxvfhwfgVwffvvwwwvggVwfuvxgvwwwwfvgxwvhwwhxwwwwffvvwgwwwxgxgvxxxwwwgxwWWwwWgwwwxWhfwxxGgXggwwgwvfwxWwvxguwfvggVwwvgvvVwggUwfwfvfgggfwxwwffvggwgVvvxfwwvgggfxwwwxXwfwxwwwhxwwhwgwvwgxwwxxwgxwfvgwxwxxhvVwfvwWwwfgvggffvwwGwxwwwwwwwfvwvwXwwwxxvwwxwvwhwwxxwgwwwwwgwwxxwwwxwwwgvwxxwxxxxwwwvxxwgxwhgwxxWfhuwwvvwvwvwweuuwwwvxwgwvvwvwvvvxxvwgvwwwwxxxwwwgwuwfvwwWvvwxwgwxwwhggvwwhwwxgwwwxxxWwhwxwvwwwfuvvffvgwxgvUvwwwwgwwwgxwhVfvfwwxxgwhvggggggXgwhfhxvwvxxhvwxwgxxuwxhfwwwgwwxvwxvxxhwwhwxgwhvwXvxwxgfwvxwvwwexwgfwwwwwwvxxwxxxwxwwxxxwxvxhwwwwxvwxxwxggxwwxwwwxgxxwxvxxwxwxwxwfvvxwwxxxxwxwwvwgxxwwvxxxwwhwxwgwwxhwxxwxwwxwvxwxxwwvxwvwwwxxwwxwgxwwuvwxvvgvwgvwwwwxwwwwwvwwxhwwxwwwwwwvwhhvgwvwvwwwwwvhxwvxwgwwewwwxxwwxwwvwgufvwwwVvwgvvwvwfxxxwwwwwwxvgugwwwwWwwxwwwxgwxfvhgwwwwfwwvwwgvwwxwgwwwwwxhxwwuvwwwwwwvwxxwxwwvxvwwvvwvwwwgxwxxwwwxwwxwwxxwwxhxxgvfwvvWwwxgvwxwwvwgwwwwwwwwvxwwxwxvwvwwxwvwwvxxxxfxwwwxvxwwgugwvgwvgwwvxwwxxxwvwxxxxhufvwwxwwwwxxxwwwxxxxxggfwwwwwgwwfxwwxuwxxwxvxxxwxvxxgwvwuwxxxwwhxxgwgggwwgwgwwwvwwvxwwwwxvwwxxvvwwgwxwxxxxwwwwxxxxxxxxwxxgwvwxwwuwwxwvvwxvwxwwxxwhwwwxxxxxxwwxuevxwvwvvwwwwwewxvwgvwwvwwwwwwwwwwwwwxwxxxvwvwgvvwwwfvvwxvgvxfwgwxvwwvwwxgwvwuwhxwevwwwWugvwvxvgwvwfvwwwgwwwwxvxwxwxwvwxwxxVugwwwgwwwwxxgvwwxuvwxgxxwwxxvwwwwwvwvvwwvuwwvVvwwwxxvvgwwvwfvvgwwvwwgwwwwwwwwgwxxevwwxxvwwuwwwxxwxgwwxxxwvwwwxwxwxhwvhxwyVvgwfuvfvxwvfvwwvwwwxxwwwWwwxvgxxwxwwxvgwxxxwwxwewvwwwwwgwwwxxwwvvwxgxwxxxwwwxwwwwwwgVufgxwwvvwwvwxwvwwwxwxwwwwxwwWufwwwwwvwwwwxwxxxxwwvxwwwwxwxxwvwwwwwwwwwwwgwwxwwwwxwggwxxxfwwwwwgwfxxvwxxwvxwxwxxxxvgWwvwWwwwwxwgwggxwwwwwxvxwwxxvwwxwxxvwwvwxxvxwwufwxxwhxxwxxwxhwwxxwwghvwwwwggwvwwwfxwwwwwwxvwwwxwwwwxxwwwxwxxwwxxxxxwwxxxuwwwwwfwwfwwvggwfvfwxfhvwfwwgfwwwwwvwwwxvvwvwgwxxwxwxgwgfvewxwguxuwwwfwwvwxwxwxvxgwxwvxwwxwwwwxhhhwwvwwwfgwvwwvwwWwfxwfwgxwwwwwwgvwxwwwwwxwxwwxxxhgvwggxwfwxwwxwgwxxxxxvxxwwwvwwxxxxwwxxxxxxgfwvfwUwgvguwewfwfVwwwvgxvwwwwxxwwwwwwwvwwwvwvxwwxwwwwxxwwffwwvwgwfwwxgwwwvwwwxxxwwhwxxxgxwwxwwwxxwwwxxxwhwhwwvwWwVwvwffvxwwwxVwvgwwwwwgwwxwxwwwxwfwwwxxwxxxxgwwwfvwwwwwwwvwwwwxxxxwwxwxxwxwwwwwxwhxwhxxxgwvfwwfvfgwwwvwfxgwwwvxxwxwwwwwvxgwxxxxwwgwxvhwwvvwgwwxwxwwxwhwxxxwxxxxhwvxxxxxwwxxvwxvgvwwwvvgwfxwwxwvwwxxxwxxxxvwwwxxxxxxxxhgwxxwvvwxxwwwwwgwvwvwhhwxxvxxxxwwxxwxxxxgwwxwvgvwwgwwwfvwfxvwggxwxgwxwwhwxxxwwxwxwgwxwxxxwxwxgwxwvvwwwwwxwwwwwwwwghwxgxwxxxwwxwwwxxxxxwwxwwvvxvxvwwwwwwwghwwxxwwxwwxwwxxwwwxwxxxwwwwwwxwwgwwxwwwwgxwwwxxxwwxvwgwwxwhxvxxfvwwwwwxxvvwvvhvvwwugwwxwwwvwwgwwgvvwgvwxgwvvvvgxvwvvvfwwwwwvgxvxxfwwwvvxwxwgdVwwwwwwwxwwwwwwfwwxwxgtVvwwwxxxwwxwwvgxvfvvxwxwxxxwvwwwwvwvwwxwvgwwgwgvvhxxwwfwwwwwxxxwxffwxwvwxwwwxwfwwwwwhvgxxxgwfwxwwwxxwvgwwwvvvwxwxxwwvwxxhxxxffffwwwwvwwxffwwwugwwxwgxgvuxgwxwxxvwwgwwwxxwwvgvwwugwvwxxwxwwxxhwxxxxxvxwwwwwxxxwwwhwwvvwwwwwgtVwwxwwvwgxxgtVwwwwwvhwwxwxwxyxxxgvwfwwxxxwwwwwwhvvwvxxwxvwxxwxgwwwwxxwxxvgwwxwwxwvfwwwwwuwfwgvwgxxwvgwxwwwwwwwxwwxfgwwugwwxwhwxxwwwxwxhxwxgxwwxvwwwwwvwxxwwxxxxwxvxwvwxwxwwxvwxwxwxxwxwvwwwwwgxwdwgwwvwwwvfvvfvwwwvuwwwxvvwwwvwwvvvwwvwxwwwwxxwvvwwwsVwwuwvwwwwuvgwvwwwwwwwvwwwuwvwwwvuwwwwvwwvxfwvvvwgfgevueefvguwwwwfwwfwwwvwgfwfwgvwhfgwvxvxwgwwgwwevvvwvwwvwXwwwwwwxwxgguwwwvwwxwwxxvwxvwxxhfgfwgfwwwffwwwwgcVggwwwffwwwwwvwwwvugwwwvvwwwxguvwwwvgwwwwvwwxgwwwxxgvxgwgwggwwwwgxxvwxwvwhxwwwwxvvwwwwgwwhxwhwvwvwwwueefwwvvvvwwwgwvwWwwwfwtwuvwuwwxwxwwwvfwvvvvwxwwwwwwwgwwwwwvwwwwwwwwgwwwxxfwvvxvwvgVwwvwwwwwwwwwvwuvgwwwwwWvwvwwwvwvvvvwvvhxwgwwwxxwwxxwwwvvwWwvwxxgwwwwwwwwwwwhxvxwwwxwwxhwwxvwwfwwwwwgwwwwwwwwwvvxwwwwfxgwgvgwwgggxxvfwwxwwwwxxxxxxxwwwxwwxxvvwxwxxwxwwghvwwwwwwwwwwwwfwwwwwvwwwvwvvvvwwwwwwhxhwxwwwxwxwwwwwgwwwwvxwwvwwwghxwgwwxxgwxwwwxvxwgxwwwwgxxwwwvwxgwwwwwwwvwxvwwxgwwwwxwgwxxwwwwxwgxxwxxvvwwxhxwwwwwwwwwwxwwwvwggwgvvvwgvwwwxhvwwwvwwgwwgvfwwwwwwfwgvwwwwwxwvwwgvwvwfdVvwwgvxxgwvwvwwwwwwwdVfwwxwwvwvwwxwwwwvwwwwwwgvfwwwfwwgwvgfwwxwwgvvvwwfwwwwgwwxxwwwxwwvwugvxwwwwxxxxxwxwxxwwwgwxwxxwxxwxfwvwgvgwwfwugwgffwwfwvdUvwxvvgfWfwegwxwwwxdVfwgwgfwgwwwhwwwwgvvwwxwwfxhXxwwWxxxvvgwwgwwxwwxwhhwwwhxxhxwxwfgfVwvufvgvgvwUfvghvvfvvwwxvgwgwwwxwwwwgxgggwwWgxwwfwwfgwhwwgwwwwwwwxhwhxwwwwgwwxwhwwxhvwwwwwwwwvwvwwwvwwhwvwwhvfwwfwwwxxxxxwvwugvwvwwwwxwxwwxwxxxxxywwxwxwgwwwxxxwwwxxfgxwwwwxvwwxxwwxwghxgwwwxxwwxwxhhxxxxxwwwxxgwwxxwxwfwwgwwwwfxvwefvvvvwgwwgwwfgvxwxvwxwwwwwhwxxwxwwwwffxwwwwwhxxxwvgxhwwvhvwvwxxxwWhvwxxwwxhwwwgwwwxwwvwwwwwwwhgwwvgwwxwwwwhhwxwxwhwfvvvwewxxvxxwxwwwwyxwwwvwxxvwwxhxwvfwvwvvwxwxvwvwvwfxwgxvwwvwwwfhvwwwggfxvwwwwwwfxwxxwxwwwuvwwfgwvwvwgwfwxvwwwgwwvvwwwhxwwxgwxxwxfvwgvvwvwgwvwwwxfgvwwwwvfwwvwwwfvgvwwxwwxwwwxvvwwwgwwgxvvwvwvgwwxhwwwwwxxwwwvwwhwxxxxwvxwwdwwffvvvgwwwvxfUvwhwfvwwgxwvggfwvwwvvgwxxgvvwwwwxvwwvwxgGgvwgwgwwwwWfuwwxxwvwwvvwwggxwxwwgwxwwwwxwvxhwvfvwfvgfgvwvggwfvvvwwgfgfwwgggffvwvwuwvwvwwwxvvWggwwWgwvwxwwwwvwxvgwwvxwwwwhwxwvwxggwgvxvxxWwwxvwwwxwhwxxwwvwwwhvvwwwvwwwwwxggwwgxfxwvxwvfwvvgxwxwwwwwwwwxxxwxxwvwvwwgwxhwvxwxxwhwwvwwvwwxxwxxwxwgxxxvxwxxwwfwwwwhxwxwxhwwvwwxwvwwwwxxvwwxwxffvwwxwwwwwwvwxvxgwgfwwxxwxxxwwwwwxwxwwwwgwfxwwvwwgwwwxwgxxxxxwxxwwwwxwxwwwwwxwvvvxwxhxwvwwvwwwwgvwwxxxwwwwvvxgwwxxwwwwwxxwxxwfwxxxwwwfxxwwxxxwxxwxxwxxxwwwwfxwhwwwwwwwwxwxwxwwvwwxwwwwxwwwwwxwwwxxwwwxxxwxfwwwxxxxwwwwwfwwwvwwwwwfxwwvxwxwwxxxwfwwwwfwwwxwwfwxwxxwxwwwvwfwwvxwxwwvwwwwxxwwvxwvwwwwwxxwxhwwwwxxwwwwxwxwyxwwxxwwxwxxxwwxxxxxxwwwwwwwwwwvwxwwxxwwwxvxxxwxwxxxwxxwwxxxwfxfwwwxxxwwxxwxwxxwxwwwwxwwvwwxwwwxxwxxwxwxvxxxxxwxwxwfwxwwvwwxvxxwwwxxxxwvwxxwxwxwxwxwwwwwxwwwwxxwxxwxxwxxxxxxxwxwwxxxxxxwxxwwxxwxxxwxxxxuxvxwwwgxvvwwhvggwvwvwwwgwwwwvwwWwwwwwwwxvwwwwwgvwvvvvwgvxxwxvwvwwwwwgvwwxwwwwwwxwwwwxwwwwhvwwgwgvwVfffwgwgfwwwgggwvxfvWfwgvwxwwwwwvgvwgxvwwwwvgwggwwxxxggwgxwxxwwwxxxvgwwhwwwfwgwwwvffgwwwvwvwxwggwwwwxwxgvwxwwwwxxgwwwwwxwuvgxxwxwwwwxxxwwwwxxwvuwhxwxhxxgxwxxxxxxgxxxwgfwwwwfgwxwxffvgwwgwwwwwwgwvxwvwvwvxxwwxxxxvewggwwxxxgwwwwxgwwwxwxxxxwwwwggwxxxxxxggwhxwwwwwfwwggxwxwxvxxwwwxxxwwvgwwxvxvwwxwggwxxxwxxxxwxwxxwxxwxgwgwwwxwgwgfvwwvwxxgfwxwxvxwwwxxxgxxxxwwwwwwwwxxhwwxwxxwxwwwwwwwxvhgwvwwxvwwgwxwwxxxxwxxxxxxuffgxxxxwxwvhxxwwwwxwwxxwxxgxhwxxxwwwxxwwwwvwwxxxwxwxxwwxwwwxwxwxwxwwxwwxwwxxxxwxxwxxxvvwvvwwwwwwwwwxwwxwwvewwvwuvgwwwxwfxxwxwwwxwvugwvvvxvwxwxxgvvvwwwWhvwvwwwevwwwffwvwvwwwvfvgwwxwgufuewwwxwgwgxxgufgwwxvvwwwxxvggxwwwwwxxxfwwwwgvgwwwgfwwwwwwfvvuvgwwwwwxvvwxwwwvwwwgwwxxgwuwxxwxywfgvvwwwxxwxxggVvfvvwfwvxwgwvxwwvwwxguvwvwwvwvwxwwwfvwwwwfwwwwwxxxxwvxwxxxxwxwwvwvvvxwxwwwwwwwhwfufwwxxgufgwggwwwxxwxxwxxxgvvvvwvxgxvwwxxgxvvwxwwwvWhwfxwwwwhxxwwxwxwgwfwwvVwxxwwxwvxgwvwggwxxwwwwvwwxxwwwxxwwwxwxxxfvfxvwgwxxxwwwxwwxxxxxxxxxwxxegguefwvgvvvvggwfvgwgfwwwwvwVvvwwwvVwgfwvwgwwwwvgwwwfVwwvugvwvvxwwwwxhwwwgvefwgwwvvwwwufwvgvwwwxwwwvvVgfvwfvfvvWwvfwwwxfgvvfwwwgwwwwwwxxwxwggevvgvwwgwwwwwwwxwvwwvxxxwwxwxxwwuvuwvvwgveefvwFVwvwwwufvwgwvWvefuvvwfuvwwwwwVvwwwvvhfgWvwgwwvvwwwvvwgvwHwwxwwxhxwXhwfvgvwgwwhwgfwvvxXWwhhwhwxfWVduewVfvwvwwfvwwgwvwWwggxGvwvWfvwwwvxwfvggwwwwwggwhxwfvwWfwgwxxxwwwwwxxwxxwwwxwwwwxwgxxwwvwwvwvfvuwwvWwwfvwwwwwxxxwwfvxxvwwwwxwgwwewvwwwwhwwwgwwwgxxwwxxwwxxxwxxxxxwxvwwWvwwxwwwwgwxwwxxxxxxwwwwvwhwxwwwgxxxxxvwvwwxhwwwwwwxxwxxwxxxhhxhxfvvwfwwvvvwwwwwUvvxgvwwfgwwwgwwxxwwwxgxxwxwhxwxvuvwgwWwxwwwwuvwHWvhwxhxwwhhwxwWwwxxxwxxxWwwvfgvwwwwgwwwwwgwxwxwwwwwwxwwvhwwwgxwwwwwvvwxwxgfxwxwhwwwxxvxwwwwwwxxxwwwgvwwwwxwwxwwwxwwwwwwwwwwxxwwvwwwwwwxxwxwxwwwxwxwxwwwwwxwwvwwwwxwxwwwwwwxxwwwwwwwxxwxwwwxwwhwxxwxxxxwwwxxwwxwwwxwwwwfwwwhgwwfwwxgxgwwwwgggwwxxxwwwwwvwxvwgxxhgwwvwwwxxgxxxxhxxwwxxwxxxwxxxwxxhwxxxggwwwwwwwwwwgwwwxxwwwwwwxxwwwxxxxwwxxwxwwxxwwxwwxxxhxxxwxgwxxxxxwwwwwwwwxxwwxxwxxwxwxxwxxxxwwxwwwwwwwwxxxxwxxwxxxxwyxxxwwwwxwwwxxxxxxxwwwfwxxxwxwxwhwwxxxxxxwxwwxwxxhhxwxxxwxxxxwwxwwwwwxwhwxhxxxxxxxxxxxxwwxxwxwwxxxxxwvwwgwwwwvwfwwxgwwvvxwwxxwwwvwwwxvwxwwvvwxwgwhwxxxxfwvvvvvwwwxxwxwgwxwwvwxwwvwxwwwvxxxwwfwwxwxxwvwwgxvwwwwwwwgwwxxfwwwwxxwwwwwwvvwwvxwwwvxxfwxwwwwwwgwwwwwxwfgwxxwwwgwwvgwxwgvwgwwwwhwwwwxwxxwxxxxvwxgwwxxxwwwwwxwxxwhwvxwwwvwxxffwwwwxvxwwwvvxvhvwxgxwwxwgwwxghwwvwwwvwxwwxxxwxwwxxxxwwwvwwwwwwwwwwwwxwwxvxwwwwwwxxxwwwwxxxwvxxxxxvwgwwxwvwwwxwvwgxwwwwxxxxvwvgxxxxxxxggwxxxwwgwwwwxxwwwwxxwxxxwwxxwwvwwxxxwwwwwxwxxxwxxwxxxxwwwxwwxwxxxwxxxwxwxwxxwxxxxwxxxxxxxwxwxgxvwvwvvvwvwuwwgwvwwwwwwvwwwvvwvwwvvwwwwwhgvhuvhvwwXvwwhxwwwxxgvwwwwwwxwxxwggxwxxwwuvvvwfuvwgfvwfxxvwwfvvwwwwwfuwvwwgxhvvxgwwwxwwuxgxwxvvwxxvhxwwxwxwwhwwwwwwvwvvwwxwevwwgvwuwwwwwvvvvvwwwwvwgwwwwvwwwwwgvwwxxwwgvvvwwwwxwwwwxwxwwxwwvwgwxvxwxxgwxwvxvugxfvwwwwvvvwvhvwgwgwvwwgwvwwwwxwwfvwwwwvwggxxwxwxxvwxwwxwwxwxwwxxwwxwwvwxwvwwgvwwwwwwvxxwxxxgxxwwuxxxxxwxxwxwxwxhxwxxwwhxxfvvvfwwwwxgwvxwwvvhwwwxxxxvwxhxxvvwwwwxxxvxwwxxwxxxxwxxxwwvguvvwwxwxxxwvvwxwxxxxwxwvxxxxxxwxxxxxwwxxxwvwxwxwxxwxwxwxxhwwxxwxxxwxvxxxxxxxugwgvgwgwfwwwvvwwxwwwvwwvwwgvwvvvwwgwuwffwvwgwgwxgxwwwwxgwvwwdfvwwwfwxggxwvvxvvwgvwwwwggwwvwwwxwwwvvwgvfwwwgvuwvwwgvwwudfWwwwwwvuvwwvwxwvvwgwgwgwgxwwvwwwwvwwvwvvwvwwvwwgwgxhgwwwwwwwwwxwwxwxxxxwwvgWwwvvgWvuvwwwfvgwfwwwvgwwwggwdfwwvwwvwvxwwwwVvgfwfgvwwwvwwwwwgvwwwwwwwwxwgfgghwfxwwxwvwwgWwwvwWwwwuwgwgwwgxxxvwwwgxwgfwvefuwwwvxwedfWvfwwvwwwvwxvuwvwwgxwwvvgggvwwxwwwxvwgwwxwwvwwwwwwgggwxxxwwwxwwgwxuwwwwvwwgvwxxxxwvwwxwwxwvvwwwwvwgxgwwwwgwxvxwxxwwwvwwwwfwwxwxwwwwxwvgwwwwxxxxhwxhwxwwvxwxxwwxxxxxhxwwwwwwwgvwwwwwvvwWwgxxwwwgwxgxwxwxxwwhwvwwwwwwwxwwxxxwwxxxhwwxwwxwwwxhxxwxwxwxxwwwvuwgwwwwgvwxvxxwvwxwwwwwxxwxwwwgwgwhxwxwggxxwhxxwwwwwgwgwwwxwwxwxwxwwhwxhwxwxxxxwwvwwwwxxwwgwwwwxwwxxvwwwxxxwxwhwwxxwwwwwgwxhxxwxxxwxwxwvwwxxwuwwvwgwwwwwwwxwxxvwwvwwwwfvvwwfvwwwwwwwwxwhgevwgxwvwxtgwwxwvxwhwvwwxwwwwwxggxwxwxwwwggvwwfvvwvwwwWwwvvwgvvvwwweefggwwxwwwggvwxwgwvwwwxwgwwgwwgvhwwxhwxwxvgfwgtfvvwwxvfwwgevwwgvvwxwwxwvwwgwwwwwwxwwwwxwwwwxhwxwxwwwwgfwwxwwwxxwgwwxwvwxwwxwwwvwwwxwxwwhhwwxwxxwwwvfwVvvwwggvwhvvwwwwweuffwwwgvwxwvwvwgwvxxwwxwxwwvvwvvvwwwxwgwxgwxvxxxwxxxwwwwxwxxxxxxvwwvvwwwwgwwvwvvwwxxwwgwwwgwxwhvxxwwvvwxwwxhxwhwxxwxwxxxwwwxffwwwwwwwwwwwxwwxxvvvvwwwwgxxvxwwwxwwvxwwxxwwxwxxwxxxxxxxwwwwxfvwwwxxwwxxhwxwwxhwvxwxwxxxxwxxwwghwwxwwxxwwwhxxxxxwwwxwgwwwxwwwwwxwxwwwwwgwxxxwxwwwxxxxxwxwwxxxwxxxwxxxxwxxvwwwgvwwwwggWvfwwwgvwgwgvvwvhwwwvWwwwvwvwfvwwhgwxwvwgxwfwwufwwgwhxxefwwgwgvwvvwwwvxvxvvvxfvgxxxvgwgwwvgwvwfwguevvwgvxwwvwfwwwwvwwvwwwwwxwxxwgvvvwwxvwwgvgvwwwwwxxxwxwgxwxwxwwwxxfvvwWevvvWvfwvgwwfwwgvvvwxwwwwwfVufwgvvwwwgvefwwgvwgwwgwxxwwwwwwwxxvwvxwgwwwxhgvgwhhfvwvxwwwwhxxwxvgWhxvxxwxwfgfvvvwWvuwwweuvwgvwwwgfvxwfvvwfwwvwwvxwggvgwwwwwgwwwwwegvvwwfwwwwwwxgvwfwxwwxxwwxxxwwwwxxvgwgggwwwvgvewgwwwwxxwwvgvxwxwxxwwvvwwwgvwwvvwwvvwxxxwxxxwxwxwvwvwwwvwxgwvxwxxxwwwwwvwxxwwwwwwwxwxwwwvvwgwxwxwwxxxxxwxwwxwxxxxwwwxxwxwwvgfvgwxvwfwwwgfvwxwxwwvwwwwxwwwxwwwwxxxevwxvfwxgvvgxXhexxwxxxxxvwxwxhwgvwwwxxwwwwvgwwxxxwwxwwxvwwwxwwxxxxwvwwxgxwwwwxwxwxxxxwwxwxxwxtwwwvwwvwwwvwwvwwgwxgvwefwvwwvwfvwvwfewwVwevexwxwwwwgwewwwdvWwxxgwwggvwxxguvwwgvfvgxuwwwwvvxgxwhwvwxxxwxhgfvwwxvwgfvwgfvgwfgwxUwvxgwgvxWgwfvvwvvFvvwwwwwxghxwwwvgwwWvgwfwwwxvwwwhgwxhwxxwwfvgvwgxxxxwxwwxxhvwwhvwwwwgggwvwwvvvfgfgwggvegfgwfgggfvfwwgfwwwwvfvgwWffvwwwwwwwwwwggwggUvwxhwwvwfhwgxgxwwwwXwgwggxhwwgwhwxgggfvxwgwwxxwwwwvxwwgwwwfwwggwVvggWgggwwxgwgwwfvwhwwwgxwvxwgwvxgghwwwwhwwfggxwwfwxxxwwwgwwwggvxxxwwwwvwxwwxvvxwxxwgwxwwvvwvwwwvvvvwfwwvxwwwxgfvwwvwwUvwxwvxwwxwxxxwxwTvWwvxwvxfwxwvfwxgxhwfwxwwxxxxxvhxwgvxvwvwwwvxgvuxghwwwxwgwwxwwwwwwwwfhvgxhxwxwxxvwwgwwwxwvgxxwwuxxxXwxxwxwwwwwxxvxwxxwxxwgwwwwwfwwwfwwwwUwgxgvvgwwwwwhfwxxgwwwwwxxwxwwgxwUwvxwwwwwxxwxwwwxhxwxhwwxxwxwwxxxwwxxxwwwxwxvxwxwwxxwxhwwxxwxxxxggwwwxxwwxwxwvwxhxwwxwwxwwwwxwwxxxxxuxgxwwvwwwwwggvwwwwwxgwxhwwwwwvwwggwwxwwxwwwwwwwuxwggxwwwxxwxwxwvvwvxwwxwhxxvwfvuwwffwfwwwwwgwwwxwvwuwwwxwwvxwxwxwwxwwgwwwwwxwwwwxwxxwxwwvwxxxxxwfwvwvWfvvgwvgxgwwwvgvwwwwfwwvwvwwvxwxvwwwxxwxwvwvgwgwvwhwwwwwwxvwxwwuvgwwwwxxwwwwxwxxxxwwvffvewfwvwwxwwxwwwwxxwgwwwxwwwwxxxxxxxxuvgvggvxxwwwxwxxwxxwvxwxxwxxxxxvvwwfwwxwwwxwwwxxxwwwwxwwxwxwwxxvwwwwwwxxxxxxxwwwwvhxxwwfwvgWggwwwwxhwwwxxwxvxwwwwwxwxxxxwxxxwvwwxwxxwwwwwxwwwxwxxxxxxwwwwwwwwwxwxxwwwxxwwwwwwwxxwwwwwxvuwgwwxxwxgwwwxwwxwwxxxwwvwwxxwxwwxgxxwhvwxwxxxxwxxwwwwwwvxwxxxxxxwwwxuwvvvvwwuvvwwwwwvwwwvvwwwwwxwwwwwvwvwwwvvwwwvwwxvwwvwwwgwwwxwwvwwdfuwwxvxwxxxwwggvvwwwvvvgvwwwvwvxvvwvwwvduVgxwwwwfwwwwxxwwvwvvwvfwwwvxwwwvxwwwwwwhxxvwwxwxxxwwggwfgvfdfwgvvwwgwwgvvvwwvwwgfwvwgwwwwwvvwwwwwvwwwwwwwwwwwwwwgggxwvwxxghvxxxxwwwwxvwgwvwxxwwwxxgvvxxxxwwgduVfvvwwwgfvuwfvvhwxwwwxvwwwwgxwwgwvwwxwwwwwwxvwvxwwwwwxwwwwxvwwwxxgwwxwwvwwwggvwwwvgfwwwwwxwwwvwwvxxugwwxxxwvwwhwwwwwxwwxxwwhwwgxxgxxxxxwwwgvwwwwwvxwwgxwXwxxxxevwwhwxxxwxxwwxwxwwwvxxxwgvxwxhwwxgwxwywvwwwvgwwwwxxugwxxwwwxvwwwxxwwwwwwwxxwwgwhwwwxggxwxxxwhwxwfwxwxwwwxxxvvwxxwwvwwwwwwwwwxhxxxxwxxxwxwwwwwwxxwwxwwwwxwwwvwwxgwgxwVwfwxwxwxgwgwwWwwwgwvwxgwwvwvggvgwgVfvgvxuxwwgggwwwgwwwgwvwwwuvwwgwvwxwwwwwwwgwfwvwwgwxwwgwwwgwvxwxvvwwvwxwwwwxxwuxxwwwwvwwwwwxvwwxwxxxwxxxxxwxxvuvvwgwfVffugfggfVvfwvwvwwguwffevfvgwwwxfvfwwgvwwxxwgfxvwwwvWVfxwuwfwgwhhwxwvwxxwfVffwwvwwggvhxxwwxwfwvUgegwwvuwfVvewwgeguwhxvvwwvuwgxwxxwwvguvfwwgwwfwfwfwgwewvwxvfwwgvwxxgwwwxvwxvwwxxwgwxxvxwxvvgwWwgwwwxhwgwxWgwwwwwwxxxxgwgwwwwwwgwxxxwwvxwxxhxxxxxwwwvwwuwxwwwwxxxwwwwxwxxwvwxwhwxhxxxwwwxwxxvxwxxwxxwxxwxxxxwvwwxxxxxwWwgvfwfgwwwxgwvwxwvxvxwxxwvxwwxvwxwwwxxxxwxVgwxvxwwwgvxxxwxwwvxxwxfxwwwwxxwwwxwvwvwuwwwxxwwvwwwwwxgwvwgxwxwvwwxxxwwwwxxvxwwwvxxxvwwwwwwfgwwwhvgvgvvgvvvwvvwxwwwwgwvvwvwwxwxwvwwwwwxwwwwuewvwwgfwwwwwuewvwwwxwwvwvevgvwwwwwwwwwvvwvxxxxgvwvwvvxwwwwxxwwxhvwwwwxvvgwwwwxxxxxvwwvfvwWfeewvwfgwvvwfvwwwvguwwwuefwwwwwwwgvvxvwvwwwgxxvvgvvwfvgwwvwwwwwxwgwgxwwvvwwxwXxgwwwxhxwhgwyvfffuevwwgwhvWwvwvvewxxgvgVeuffvwwxxwwwgwwwwvwwxvxxfvvwwwwwxgxxwwvxwxwwgwwwxvwwxvwwxwwuwhwwwwxwxxxwwvwvvxwxxgwwwwwxvvgxfxwxwxxwxwwwxgwwxwxwxhwwggxwwwwxwwwwwxxxwxxxxxwxwxxwxxxwxwxwhwwxxwxxwwwwvvwfwgwwwwvwwvwxwwvwwwxvwvwxgwwxxxfvvxwwxwxwwxxxxwxwwgxwXhvxwxhxwgwxxxxhwwwfwxgwfgwwwwwxxxwxwwxwfxvxxwxwwwxwwwwhwwxxwwwwxwwwwwwwwwfwwxwvfwwvwxwwxxxxwwwwxwxwvfvwwhwwwwwxxwxvwwwwwwwwvwvwwwwvwvwwwvxvwwwxwwxwxxwwwwxxxwvwwwxwxwwvwwxvxwwwxwwwwwwwwwwxvwwwwwwwwwwxwwggwwwwvwxxwwxxwwxxxwwvwwwxwwwvxxxxwwwwwwwvwwwwwwwwwvwwwvvxxwwwwwwwxxwxxwwwwwxxxwwwvxwxwxxxxwwxwxwxwwxvvwwwxxxwwxxxxxwwxxxwwwwxxxwwwxxxvwwwxxxwwxwwwwxwxxxwxxxwwwwxwwxwxwwxwwxxxxwxxxwwwwwwxwwxwxxwwwxwwxwwxwxwwxwxwxxwewwwwwwgwvwfuvvwwxwgfwwfgvufgwwvwgwwvwwggwgvvwwgwwwwxwgwwwwvvwgwgwwwxxgvfwwxwgwwvwevfwvwgwfvvwwwxxwgwwxxhwvwvwggWwvwgfwvxwfgwfvvwVwvxvWhwgvwwgwwxwgwggfwgwwxwwwwwwwwvvvwxvwwwwxgwgxhegwwgxwwwwwhwwwwxxhxwwxxxwwgggwffvgwvvvfvwVfvgwwwwvwwxwvffffvffvevvwwfxwvfvfwgwwvfwvwvwwwwwwfwwwgwvwwvwvwxwwwvwvwxwgvwvwgwfwfxwwhvwxxwWfxgfxXxwhvvwvgwwvfgwwxwwwwfvvwgwfuwwxgwfgfwxvwwfgwfwwxfwgwggwxxwxwwwwvvwwwwwwwgxwwwwwgwxwewgxwwwgxvvwwwvwwwhhwgwgwxxwwwwxwvwwwwwggVwvwwfvwgxxgwgwvwwwwxxfwwxxxwwwxxhxwgwvvwvwwwxxwwhxxxvegwwwwwxwwwwxxvxwwgxwwwwwxwxxxwwgwxhwxXhxgwwwgwwwxwxwxxxxwwxgWxfxxwwgwxwwwwwwwwxvhxxxxwwxxxwxwhwwxwxgxxxwwwwwwgwwvgxwwwwfwwxgwwxwgfwwxxvggxwwggxwwxxxwwwgxxwwxfwgwwwvhxxgxxwwxxxwxxwxxwwxwxhxwxxxwwxwgxwvwxwwwxwwxwxwwwwxwwhxgwwwwvwwwxxwwwwwxwwwwxwxxwxxhxwxxwwvxwwxvwxxwxwwwwxwxwwwwwwwwxwwwxwxxxxwwwwgwvwwxwwwwwgwwxwwwwwwwwwwvxwgvwwwwxxxwxvwwxxwxwwwgxwwxgwwwxwwgwwwwwgwvgwwgwwxwwwwwwxxwwwxwwwwxwwwwwwwxwxxwwwxxwwwwwgvwxwwfvwwwwxwgvwwwwxvvwwxxwwwvwxwxvwwxxwwwwxxwxwwwxwxxwwggvvwxxgwwwwwvxxwwvwxwwxxwwxwwwwxxxxwvvwwwwwwxwxwwxxxwxwxwxwwwxxxwwwwwxgxwxxgwwxwvxwwxwxxwwwwwxwwwxxwxxwwwxwwxwwxwwxxwggwxwwwwwwxwxxwxxxxxwxwwwwwxwwwwxxxxwxwwxxvvwxwwwxxxwwxwxxvxwwxxwxwxxxwxwxwxxxxuwvvwwwffwwvwwwvwwwfvgwvvvwvwfwfufwvwgvvwwwvxwhwxvwwVxwfwwwxwffxwgwwwxwvvgwwwvvwwxxeggwvwwwvxWvuwufvwfwVvuwgwvvwgvxhwxwxgfufwwwwvgfwwxxwwwwwwwxvwgwgwwxwxfvvxwwwxwwxgvfwwxwxxhvxxwwwxhwxwvwvfxwvwggfwgvwggVwwwfwwwgguvwwvvvwwvxwgwwvgwvwwvwwxvwwvwwxwfgwgfwgwwwuwwwvwwxvxwghhvefwxvwxvwwhvgvwwxggvwxXvwxuwwfvvgfwvwgxwgfgwggfvwwwwwwwgwvwxwwvgwvxgwwwwwvgxxhwwwfvvwhwfwwvxhwwwwxxvxxhxwxxwwwwwxvwxwxxwwwxxwxwvwwwwxgwfvwwwwwgvvfwxhxwwwwwwxxwxhxwxxhwwwwvfwxeffxwvwxhwxwwwwxwxwxxwwxvgvxwxxxxgguwwwvwwggwwwwwwwxxxvwwwwwwxwwwwwxwgwvxwwwgvwxxwwggxwwxxwwxwxxhwxvwfvvwwxhwvvwgvwxwwwwvwwwwwwxxwxxwxxxxwwVvwwwwwwwwhvwwxxwxxwwgxwwxhwxhwxxwxxwwwxwxwwxxvgwwxxwwwxwxxxwwvvxxvxxxxvwwwxxxyxxuwfwwwwwvwwwxwUgwwwwwwggvfwwgwwvwvfVwvwwfxxxwxgxvugwvwwwwfvwwugwwxxxgvxwwwwwwwxgxhwxvvwhwfwwvfwwvgvwwwWvUwgwwvwwwgffWwvxwwwwxxfvwvwwXwhxwgxwwgwwxfxwwwgwwwxwwwwwxgxwxwxwhxwwxhWvwwwwhfUwWwgwuwwfwfwwwwwwvgvvvgvwwwvwwwfwvvwgwvwvwwwgwvwwwwwwgxwfwwwfwwwwvhfwwxxvxwwwwwgwwWwwwvhwwwhghwwwwhxwggwwwwfwwwUwgxwwwwfwwwwvwVwwvwwwwxwwwgvwxhwxgwwwxwwwvwWwwwxwwwfgwwuwwxwwwwxhxvwwwwwwwwwvxwwwwxwxwxgwxxhwwxwxxwWwwwwwwhwvvgwgwwgwxwwfgwwwxwwwwxwhxxxgwwxxevgwwxgwwxgxwwwxwxwxxxxxxwxgwfwwvwwwwwgwwvxwwgguwvwxXxwxwwhxwxhvxxxxvwwwxxxxxxxwxxwxwxvxwhxxwxxxwxwxwgxwvwwwwxwvxwhwgwwwwwxfwwxxwwwxxwxxxwxxwfwwxwwxwwwxxwyxxxgxxxxwxxwhwwwwwxxxxwxwwwwgvxwwxwxwxxxwwxxwxwxxwxwwxxwxxxwxxxxxxxvwwefvwUuvwuuwfvwxwfwwvfuwvwwwwwvwvgwvwwwgwwwwwwvwxvvwvevwwwwvwwwxwxwwwwwgwxwwwwwvwwwwwwwwxwwxwwgwwwwwvvWgvuxwwxxxwhvwvwwwwwxxxxxwxxwwwxgwwwwwwwhxxwxwwxxxxxwfuvvuVvUvwwwwfevwwgwVfvvwwwwgwwwwvwwwfwwvwwhwwwwxwvvwwwwgwwwwxgwxwwxwwxwwwwhwwwwxxxxxxwvgwwgwwvewvfvwwwwwwxwgvwwwwwwxxxxwxxxxxxwxgwxwhwwwwwwwwwwwxwxwwxxxwxxxwxwxxweuuwveuVvwuwvwxvwwxwwwwfufwwwwvvWufwvwwwwwwxwwxvxxvwvVvwffuvevvgwgwwwwwwwxwwhwgwvwvxxxwwxwhwwvwwwwwwwwwwvwxwwxwxxwwxxxxxxxxxxwwwvwwwwwwxxxwxvxwxwxxxxwwwwxwxwwxeuwwwwwvwwxwvwwwxgwwwwxxxVwwwfvxxwwxwxwxxwwxwwwwvwwwwwwxwwwwwxwwxwwgwwwwwwxwgwxwwvxwwwxwwwvwwxxxxwwwxxwxwxwxxwxxwwwwxxvwxxwxxwwxwwxwxxxwwxxwxwwxwwwwvvwuVegvvweuvfwvwvftguvVvgwvwgwwvwwwwvvvgWuwwwwvxwxwwvwvwfvgvwwgggwgwwwwwvvvgxgwgwwvwwvwwwhwgwghwhvwwVggvvwwgvwxffVwwwggwvwwwxwxwwwwxxwwwwwwwwwvwfwvwwwxwwwxwwwwgxhwwxxwxwweuvwvfvgdevvwfwwwEuvwwwffwvwvwvfvvwwwvgwgwxfvvuggwxggwxvvwfwxfwvwWxwwxwwwgwxxwwxwwwxxwhghxwwwwwwefvvwwgwwwwvxvvvughwggwwwxwwhwwwxwwwxwwxxxxwxwwwwwwxvhxxgxgwgxgwwwwwwxxwxxxxxwvwdutgvvgvvfvtvveugtvfwwvvvvgvvwwvgwxvvwwhxvxwwvffvvWvWfwtwfhueevWwgwgwwgwwwwwwwxwwhwWwwwvwwwwwwxwvgvwgwwwxxxxxwwwxwxwxvwvvwxwvwxwwvwxxwxwwwwfwgtvfVvuwvvxvvvvwvwwwwxgwwxxwxgwwxvgwgwvwxwwwvwvfvgwWwwwwwwwwwwgwwwhxwxwwwwgwgvwxwxvhwwwwwxwxwwfwwxwwwwwwxwgxwxxwwwxwwwvvxwwvwwxxxxwwwwwxwxtfvwwfwwFeefTffvgwvwxgvwgVevVefwfwwfffwwgxwVuevfwwwvwwxWvvxuwwuvwwwhwgvwwwvvwwwwxwwwfuwwwfxfvvhgwwxwwxwwwwwxvgVwwvggwgwffvggwwwwwxggwxwxwwwxwwwxxwwwwgwwxfxgvxwfvvwxwgxhwxxxxxxggvxxwfvvwgffvfUfvUdggwWwwwhhfwvgfgVwwxgvvvvvhvxwxwwwgvhvxwwxwwwgwwvwwgwfwxfwwwwxwxhwgvwxwvwwhxvxwxvwwwwwwxxxgwvxwwgUeugffvvwfgxhvhvwwwwxwwxxwwxxxxwxxxxwxfwxfvWwwwxvxxwxxwxxgggxxwvwwhxwxWuvweffUfFevwfGUVvvwgfVVwfwfwwwwwxwxwwwxwwwxwwxwwwwwxugWwwhgwxgvXgwffxxvwwwwggfgvxgvxwwxwxwwwwwXwwwhhxvgwwxwwwvwwwwwwwxxxgwxxxwxxxwxwxwwxxxwwwwwwwxhwwwvWfgvvvfefVwwvxgwfvwgwwwgwwxgfvwwxwwwxhvxxgwwxwwfvwgxxwwvwggvvfvgvxxwwwwxwvhwwxxwvxxgxhwxxgWwxwxwwxwvxxxwxxwxxxxwxwwwxxwxxwxxhwxgwxxxwhwxxxwxwwwvwwvfvwwwvvevwwwwwfgvvwweuwwfevwvwgwwuewvwwwxvgwwwvwwvwwwwvvvwxxxwwwwvgvwwwvwxwwwwvwwvfvwwwvxwwgvxwxwxxfvWwwgwgwxVwxhwxwwvwwwwwwwwwxwwwwxwwxxwxvevwvvvgvwwwufvwwwwwvwwwwUfvgwvgwwwwwwwwwwwwwvwwxxxwwwwxxxwxwwwwxxgxwvwwwwwwxxgwwwxxwfgvxwwwxwwwvwxgwwuvwvxvxxxvwwxxwwwwvwwwwxwwxwwwxwwxxxwwxwxwwwweuwvgvwfvWwwwxwUfvvwwwuvwxwfvwevvgwwvxxfwxfwwwvwwfewwwgwgwwwgwvwwwvxvwxevvgxxhgwgwxwwxwvwvwvwxwxgwwwwxxxxxwwxhxwwwxwwwgwwwxwwwwwwxxwwvxxgwwwxwwwwwxuewvwwVwxxwwwgwwvwwxwxfwwgwxwwwxwxxwwwwwwxwvhxwwwwwxxxwwxfwxwxwwxxxwwxwwwxvgwwwwxxwvwwwwwwwwwxwwwwwwxwwxxxxwwwvwwwwwxwwwwwxwtfwgwvwfwfwwwUfvfwvfevvTUwvwvwvvgwvvfwvvwffwwfwwwvgwwwwwgwfwwVfwvwgwwxwxwvwwwwwvvwvfwwwvxwwwwwwwwwgwwvwfvwwwvfwwfwvvwwwwwwvwwwgxwwwxxxvwwvwvwwxwwgwxwvwxxwwwwffwfwvwTUwvgwUvwvwwguwfwfwgfvwvwwwwwvwwggfwwfwhwvwwwwwwfwwxwwwwxwwwvwwwwwvwwxwwwxwwwwwwwvxxgvxxwwwvwwgwwxwfwfwXvxxxhxwxgwwwwwwwwxvwxxvxxwgwevxxwxxvxxwvvxxxwwvvvvwuwfwvwvgfwvvvwwwwwvwgfvfwwxwwwvwwwgfwwwwwvwwwxvvvwwwwwxwvwvwwwhwwwuwwwhwwwwxwwxxwwxvwwwxxxxxxxxwxxwgxwwwxwxxwxxvxxvvwvvwvguwfxwfuwwfwwwvxvwxwwuwwvgvxvgwvwxwxwwgxwwwxwxvwwxwwvwxxxgwxwwgxxxwwwwwwvxxwwxxxwvwgxgwwhxwxxwxxxwxxwwhxxxwxwwvwwgwWueuvgvvvdtwwgefeffvggwvwvvwwfvwwvwwwvwvwwwwfgwwwwxfvvwgwvggwxwvwvffwWxWfwwwwwwvwwwwwwxwwwwwgwxwwwwwwwxwvwewgwwwgwxwwwvwwgwwwwwwvfxxwxxwxxhwwwvwwxwwwwwwxvwwxwxwwwggwwwwwxvxxwVuwWuvfwwwwwWfgvFwdfegwvgwfwwwwwgwwwxwxwwwwxwxwgxvwgwggfwwwwwwWxVwhwwwwxvwwxwxwxwwwxxxxwxwwwwwwwwwvwgwwwwwxwxwvwwgxewwgxxwwgwxxxhgxxwwxhwwxwxwggxwwwwxhwwxxywxwwwwvvwuwwwfwvwwwxwVvwwgwggffgwwwxvwfwwxwxgvwvgvwWwwxxxwgwwwwxhvwwwwwwwwwgwxwxvwwxwwwwuvwwwwwwwwwwxhwgwxwwwwxxwwwwwxgvgxwwwxwxwvwwxxwwxhwxxwwwwxxxxwvwwwxwxxwxwxgxvxwwxgwwvgwvgwwwwgfwgxwwhwwwxwwggfgwxxwwwwwwwwggfwfxwwwwwxwwxxwwwxwxgwgwwgwxxhxxwxwxwwwxwxwwwxfgwwxvwxwwxwxvwxwxwxxwxwwwwwxwxwxvwxxxxwwwhxxwxwwgwxxwwuffvguvwesvwtWfwfvvwvwwwuUevfvvwdtvwvVevvggghwvwuffwwvwwgwwwwxgwvvvVeeweffffggvvxwgvwgwwwwVwVvgwwwwwwwwwwwwvwwwxwxwvvvwvvwvfvwffvgwwwwwvwvwvwvfwvvxxwxxxgvwwwwwxxxvxxvgwfvvwwwxwwxhwwxxwxwxwwvvwwxwxxwwxxxxwxxxhfuvwfFdvffgewvvwv6euffgffdgvugffgfwWvugvwgggvfwwvfvwgwghwwwwwhgxgwwxwvwxwvwwwwwxxwwwwgwvwvwwwxwwwwvwgxhwxvwxgvffwfvwvwwxwxguwvxxvwhwwxwwwwwxwgwwwhwxxvwxvwxwxhxxwgxwhxwxxwwwwxwwwwxwgwwwxwwwwxwwwVxvwxwxwwwvwwwwetvsfvvvgfwwvwtfvvevwVvuwwwwvgeUvevgwfwvgwwgwxwwwvggxwwgxfgfwfeuwvfwwgwfvwgwgwgwhwwwfwwwgWwxWxxwwwwwwxwwwwwxwwWvxwwwwwwwwfwhwxvwwxwwwwxwwwwgwwwwxwwxwwwwxvwxwwwxwwwwxwxwvxxxxxwxwxwgxxxwwggxvwwwuffffufvvgggxffuugWtwvggxwwwewvwvgwwvxwvwwwhwhwwxxwwwwwgxgwwwwvwvgwwwwwvwwxwvxxxxgwwwxxvwwwxwwvWwwwwwwuxhwgvwwwwwwxxwxxwxwwwxxwwwxwwwwwwwxxxwwwxhxwgXvxwwwwwwwgxxwwxgxwwwvwwwvwgxvwgwvwfwwgtVwvwwwfwwfffvgvwwhwgtVgvwfgwwwvffgwvwwwxvwwxwgwwvvvwwwwwvwwwhfwwwugwwvvwwwwwwwwwugwwwvwxwwhwgxwxxxwwvwvgxwwvvwxxwwwxxxwwwwwxxvxxvvwxwwxwxwxxgwwxwxwwwwxxuwwxxxfvwgvwgdVwwvgvgwwwfffwwwwxgtVwvhwwfwgvwwwwwxgwvwwwxvgwgwxwugxhwwxwwghwwxxwwvvvgwwwvvhwwwwwxwwxxxwwwwxxxxxxxxxxxxvwxxxwxxwgxxxxwxwvvwvvwwwfvwfwwvgwwgvvxwvwwhvvgwwvgwwvxwxwvvvfwwvxwwwxwvvvuxgwwwxwxvwvwxwxwxwvwwvwhvvwwwxxxwwxwxwxwwxyxxwwwxhxwwwwwxxxxwxxwwugwvgfwwffwxwwvwvwwgwwxgwxvwwwwwwxgxxwwwwxxvwxwxxxwvwxxwwxxxwxxwxwwwwwwwgwwxxwwxhxwxxxwxwxxxxxwxxxwwwxxwsfgwvwvwfVvgVuVwVfUfwwwwEfVfgvxVwvgvgevwvgvvffTvvwgfvvgwxfffwffffvgvfdhvfwwwwxhwvwwwwxfvewvfvwgwwwwwwvfwwfwwxwwwwggwxgwVegfvwxgfewwgwgwgwwwwfgvgxwwwwwvwwwwxwvwvxfgfwvwuwwwvwgvvwhxwwwwwwwxgwwwwwwwwwvxwxxwxxfvvwwwgeVfwvwfffgwwweSvWgwgwfgvwwwvwwwfwwvfggwwvwwgwwwwwxwwwxwvwwwxwhwwwwxwwwvwwwwwxgwvxwwwwwwwwxxvvwhxvvwxwgwwwgfwwxwvuwgvxvwewwwwwwwWxwwvwwxwuxwwwxxwxxwxwwwwwwwxxvgwwgxxwwwfwwwxwwwwhhwgvwxxxgvvgWwgvwvwwFf5vgvxVwvvwwfVevwvwgvwxwxgffgwxwxvgvvwwfvFWehfwwwwWuwwggfwwhggffwvwwgwxwwwwwwxwwwxwgwxwvwwwwwwVwwwwwwxgwwvwwxwwxxwwxwwgggwxxwwxxgwwxwxwwxwwgwxxwvwvwwxwwxxwxwfffvgxgwwvxfTvWhgwvwwwwgWvwwvvwwwwvwvxwgwhgwvwwwwwxwwxwwgxxwwwggWwxwxxWwvWwwwwwwxhxxwxwxxwvxxfxwwwgwhwxvgwwwwhwwxwwxxvwwfwgxxxxxxgxxxxwvxxxwxxwxxwwwwxhwWwxwwvwwwwxwwwwwwxwxxxufvftfgfvvgvVdwwwwwvwwvwwwwwwfevffefvwvwvwgxvvgwvvgwxwvwvffvfwwvwvvwwwwwwgwvvwwfuvvgwvwwwxwwwwwwwwhwxwwwfvfueFwwwwwxwwgwwwxwwwwwwgwhwxvwwxwvwwwwwvwvwwwwwxxxvwwvwgwvwwwwwwwwxwxwxwetgvwDewufewVgvvVvvxvwvgvgfwwuevvwvwgwwwwwwfvvvexgxxwwwwvgwvwvxxwwwwvwxhwwwhwgwwwwVwwxwfvwgvxxxwvfVwefvwxxxfwgwvvgwwxwwwwvwwwwwwwwvwxwwxvwwwxxwwwwwxwwggwfwwgwwwwwxwxxxwwxwvxxwvfwxfwgvxwwwUtugUfvuuwwvvgwvvggwvwgvwwwvfvwwwwwxwxweuwwwvwxvgvTvfffwvwwvwggfwwwgvVvVwgxhxvwgvwwxwxxxwxxwwwfwwwwwxwxwfvxwwwwxxwwxwxwxxxhwxwxfxwwgfwwwxwxxwwxwwwxwwxxfwwxwefwvevwwxwwwEfvgfvvgwgwwwvwwwwxxxxvxewgwwvwwfwwvwwwwwhvgwvgvwwwxwxvwgvvwvwwgwxxwgxwxgwxxxwxgwwwwfxwwxwwwwfwwwxxwxxwxxwwwvwxwwwwxvfvwwwxxwwwxwxwxxfxxwggeufgedgwfVVvvvwwvwwwwvwvuwgvwvgfwUVvwwwwwwwghwwwgwxffwwwgvwwwvwfwvxwwwwxvwgfwwwwwwvgxgwwwwxvwwwgwxwuwwwwgvvvwwgwwWxwwwxwwwwxwwwwwxwwxwwwxwwwwxxxxvwwxwxgwxwwwwxxxwxxwxgvvvfvwgUVuUuvfvWwwvwwxwwxwvWfvwvwVfdvwwxwwxfwvxwxwwwvxxgwgwfwwwxxxxwvhwxxwxwxwxxwxxxwfgvwwwwwwxwwwWwwxwvwwxwwggwgxvwxxxwhhwxgwxxxwwxwxgxhgwxxxwxxwxwwxxxxwwfvwVvwwwgfvwvegvwwgvwvewxwuwgwwwwwwwwgwwwxwwwxxgwwxwwwvvvwvwwwvguuggwwwwgwwwxxwvxxhwwwhvxxxwxvvwwxwvvxwxvxxxxwxxwxxxxwxxvwxxxxxxwwxxxxxxwxvvgfvwwgwvwwwgwvwwvwwwxwgwvwghwwgxxwwwwwggwxxxwwxwwwwwxxxwwwxxxwwwwwwxxwvwvwxxwvwwxxgwwxxxxwvwxxxxxxxxxxwwxxxwvwxwxxxxuwxwWvwgvvfvWfvwgfvwgwwuwggwwxXegwwwxWugwWggvvxwgvwwwwvvwwwvwwxwwxwhwwwxhwwgffwwwwvvwwhxwvwxgwgwwwgvwxwhwwxwxwwwwgwxhvxxxwxxxwwxwhxxwgwwvwxhxgwxvxwxwvxxwxxxxwxVvwwWeffvgwegvgWegwwxwwfvvgvxwhfwwwgwwvvwwxwxxwwwwwwwwhfwwxwvwwxgvwwwxxvwxxWwgxvwwxwwwwxxhgxwgxggwwwvwwvwxwwxwwxxwxwxxwvwxwxwxxwxhwxxwwxvxxxxxyvwxxwwwgvvvwwwfwfuwvWwvuwfwxxwwvwwwxwwxvwwwxxxwfvwwwvvwgwwwwfvvwvwevgwwwxvwwwgxhwxwwxxwxwxxwvwgwwxhxxxxwxwxxwxwwxwxxxxxfvvvgvwuwvwxVvwwgwxffvgwwxwxxgwxwxxxxxwxxxwwgwwvwgxvwvxxwxvxgvhwwxxxxxxxwxwxwwxxwxxxxxxxxxxxxxxwwxxxvwwvfwwxxgwgxgxvwhegvvwwgvwfgwvvvvwwguggvwwfxvwxwwxwvwgwwwvxggwwxxwwwvxwwfwvwwwxxwxwwvwwwwwxxxwwxxwwvxvwwwxxggwwwxxvxxxgwwwwwxvwwxvwwuxxwwwhwwvxxwxgvgxwwwvgugwwvvxfxwfwwwvwxwwgegvfwwwwwwwwwwwxwxxwwwxwxwwwhvwxxwwvwwxvxwwxxxxxxwxvvuwwvwwuvwxwwxwwwwwxwgwxhxwxwxxxgwxxwxwwvwvvwvgwwwfxwgwvgvwxwwvxwwwvwxwgwuwvxwwxwxwwwwvwxwgwwxwwwvwguwvvwvvxxxwwwwxxxxwxxxwxxxwxxwwxwwxxwxwvwvwwwgvwwwwvwwwwwgwwvvwxvvwwxxxgvxxwgwwwxxxwxxwxxxxvxwxwwwwwwxxxxwxxwxwxxvxwxxxxxwwwvxgwvwgvwwwwwvwwwwwwwwwwvwwwwvwwvwwwwwwwwvwxgwxvxwwwgxgwwwwgwwxwwwwwwwwxwxwwwwwwwwxwxwwwwwwxwwxxwwwxwxwxxwwxhxwxwxwvvwwxwvxwwvwwwwgwwwvwwvwvfwxwwxxwgwvwwwxxwxhxvwwxgxwwxxxwxxwwxxwwwxvwwwwxwxxwwwwxxwwxwxxxxxxxxwwwvwwvwvwwvwwgwwwvwxwwwwwxvwwfwwgwwwvwwwwwgxwxvwwwwwxxwwxwwxwxxxwwwxxxxvfwwwwwwgwwwwwxwwwwxwwxwxxxxxwwxwxxxxwxxwxxxxxxxxxxxxxwvwguwwfgvwvfwwfuvwvUvwffvvfgwwgefggfvVvwvvweDUvfggfgwgwwxxwfwxfuwwgvvwwvWvwgwwggwwwwxgvfwgvwgwvwxwwwvwggWwwwwwwwvvxwwwwfwwwwvfwwwgwwwwwwwwwvfwwxgwwgwwwxwvgxwwxxgwfwgwwwvgvwxwwvxwwwwwvxwxwwwxwwwxwhxwgwwgfwwvfwwwvwgDUvwwwfwevwfwWwfvwwgwgwuwvwvxwgfwfwgwgfvwgggxwgwwwwwwwxwwxvwwwxxggwwwwwwfxwxgxwgwwxfwgxwwwwwfxfwgfwwwwWwwwwwvwwwfxgwwwwxwwxvvwwvxwWwwvwxwwwwxwwwwwwwxwwwuwwwwwxvxvxwxwwwXwwgxvxwwggvwwvfvgufwwwxvgwvwfWvvugggwvwgwfwwwwwwwwwwwxfvgwWVwwwwwxwgwfvwhvwwwwwwwfwXwwwvwwwvwugwwwxwwwwwvwwwwxwvwwxwxwxwvwwgwxwuwgwxwxxwxvxwwXxgxwwwxxwxwxwwxxwxxxxxxwxugwwxgwfvwwuwwVfwfwVvgwgwxwwwwwhwwwwvwwxgfwwgggwxgVwwwwxvgwwxxwvwxWxwwxxxwwfhhwxxfxwwxfwwwvxwwhxxxxxwgwgwwwxwwwwxxxxxwwwxxwgwxxwwxxxwwxfwwxxwwxwwxxxxwgxxsvvgfVwwffgwVugwfgwwffwwgfwwwwvvwffSEwvfvwvwwgvffwvwwvuwwwwwwwvwwgvvwwwvfvgvwwwwwwwvwwwwffwvwwvwwwwgwwxxwwwwwwvwwggwugwfwwwxvegxwwwwvwwwwvvwfwwwvwwwvwwwwxxxwugwwwvwvwwwvwwwwxwxgwvwwwwwwxxvwxwxgVvwfevwVugwwvwwwewwvfxgfwvwugwgSEwvvgvvwwwwwvvwvwugwwwgwvwwwvgwgwugwwxwwwwxwwwwwwxugxwhgwwxxwwvwwxwugwwwwwvwhwwwvwvwwgwwwgwwfwwwwwhvxwxwwwwxwwwwgwxwwxvwggxvwgwvxgxxxwxwwwwvwwwwwwwvwvfwffwfwggwfwwvwgwwWwwwwwwwfwwwwwwvwvwwgfgwwwwwwwwwwwhxxxwwwvevvgxdvwfwwwwwxgwwwwvwwwwhfwwwxwwwxxwwwwvwwxxwwwwwhwxxwwwwwxhwhwvwhxwxxwwxwwwhwxxwxwxxwhhwxhwwxvfgwvuwwgwxvvvwfufvxugxdwwfwvwwfvgvwwwwgvgwwwwwwxvwwgwwwwwxugxwwxxwxwxxxwxwwxwxxvwvhxxvwwwwwxwwxwxxxwwwwgwwwxwwxwxhxxwwxxxwwhxwwwxxxxxwxwwwwwxxwwxvwwwwwtfWwwuvwfvvwvfvwvdeVvevwefuvwvwutvfvwfwveewgvvvffugvvvfvwvwgguwfwfwvvgvwfvwvwVwwwwwwffwvwwvwfvfuvwwfwgvxVvwWvwgwwgvwwvgfwwgwwwvtwvwvghgwgwwxvwggwwwwgwwwwuvwxwwxxxvuwxvvuwxwxwvwxwwwwwwwwvwwxxwwxwwwwxxxfvvwffwgWvwwvUfvvwvffwvwwwgfefuwwwwfVvdwwftvfwwwwfwfwxwvwwwxhvwgwwwwwxwggwwwvgwfwxgxwgwwxxwxgxvwgwvwxwwxwxvvvwwvgwvwwxvwWwvwwwvxwxfwwwwvwfvgwwwwxxgvwwWxwwwgxvxwxwgwfxgxvwvwgguwewvtvvffeffvwvuxvvwwwwvWfwfvwgvfxgwggvvWwwwwwwwwwwwxvvwwtvwvwwwxwwwewgwgvwwwwwwwwvxfgvwvwWxwvwhwhwvxwwwwxwwuwxwxwxgvxwwwxwvwwwwwwxxwhxwwxxwxwxwwwxwxwxxxvxwxwwvwwwwwwwxvwfvwwwVwwevvwgfwvwwwgwwggfwwwxxwwwgxwgfwvgxwwwfxgxwxgvwwwvwwwgwxwghwwwwxxwwxwwwwwhxwxwvxvxvwwwwxwxvwwwxwwwvgwwxvxwwxwwxwwxxxxxxxgwwwxwvxvxxwwwxxgxwxxwxwwtwwwfvwwgvwxvgwwwwgwfgewgVggvwwwwgWvfwwVfvwvgewwvweggevwwxwwxwvvwwxwvwwwvxwwwgwwxwwvgvwwwgwvwwwwwwgxwwwfwxwwwxwwwwwwwwwwwwgwwwwxwxwwggwvwxwxwwhwhxwxwxwwwwxwxwxwwwvwwwwwxwwwgwxxxwxwxxxgxxwxxwwwwggvvgwvfdgwVgwvgwwgfwwvvgwwfggvfwgwwfwvfgwggwwgvwwwxwvwxgxwxwhwwxwxvwwxwwxwwxwxwxvwwwwgwvxxxgxhxwxwxwxwwxxgdxwwxxxwwwxwxwwwxwxvxwwghxwhxxxxxwwxwxxxwwwwxxxxxxwxxwgwwwwwwwwxvwfwwwwfwwwwgGVwvwGwvgwxxwgvwwwwwwvvwwwwgwhwwxwwwxxwwgXwwwWwxwxxhwxgwwwwxwwwxxwwxvwwxwwwhxwxgxwwxwwwxwxgwxvwxxxwxxwxxxxxwxwxxxwxhwwxxxxxxxxwxxwwwfwwwwvgwwxwvgwwggWwvxwWwhxwhwxwxwwwwwhwwvwwwwwxxxxwxwwhxhwxxgxxxwxxxxxgwxxwxwwxxxxxxwxwxwwxwxwxwxwwxwwxwxwxxxxxxwwxxxxwxxxgxxxxxxxtfwwVvefguwfVevwwwgwvfuwvwffvvUWfuwfgwfvwwfffgvxvvxwxfwvwvvvwfvvvwwvwwwxxwvxwvgwfxwwwwwxuuwwwwxwxwxxwwxxwwgffvfxgwwwgVwwgvwwwwuwgwwwwwwwwwwwwvwwvgwfwxwwxwgwhxxwgwvwwwxxwwwxxvfvvwfffwfgwvgwvwgwwgwwwwwwwwgVgvddffhwxfwgwwvvwwwwgwwxxhvwwwxwwvwwwwwwwxxxwxwvwwwwwwxwwghxxwwxwxxwgffvfvxxwxxwwwwwxwwwgvwgwxgwwwwxwxgxwwxwwwhwwwxwvgxxxwxxxwwwwwxxxxwwwxxfvvwVgFuvVevwwfffwgwvwwwhwhwvwvfvvwgvwgvwwwxwxvwWfvvwwvwwfvvwxxwwgxxwxwxwwhvxwwwvwwwgwwwwwwgwvxwwwwwvwgxwxwwwvwxxxxwxxwxwxxwwwwxxxwvwxwwxhwxwwvfffueefwvwxwwvwwwfvxxhvwwwwwwwwxgwwwwwvxwgvvwwwwxwwgxwwwwxwxxxwwwxxwwgwfgxxxxwwwgwwxwxvwvxwxwxwxwvwxxxxxxxxwwwwxwwggxwxwxwxgxxxwwxwwwwgwxvuvgvfvwfTTvfvwwfvffvvvggwvvwwfvwgvvvvwwvwwvfvfvvwvvwwwwwwgvwwwwvwwwgvwwwwwwwvgwwvwgwwwwwwwwwwwwgwvvgwgwwvxwwwxgvvvwwwwxwwxxwwxxvvvwwxwxxvwwxwwxwxxwwwwwwgvggTTvveewvvvegfvwwvwvvgwwfvwwvvvvvwvvfwwwvwwwvwwwvwgvvwwwvwwwwvwwwwgwvvwwwwwxvvwxwwvwwwvwwvwwxwxwwxwvwxfvwvvgwwwwxwvghwwgxgwvwwwgwwwxwwwwxxwwwwwgxgfwwwxvwgwxwwwwvvhvxfvvwvfvvwwwwvwvwvgwvvfgwwvgevwwxwgwxgwvwgvgvwvwwxwxvwvwvvvvwwwwwwwguwwwvvwxwwwwxwfxwxwwwvxwwxwwxwfgwgwwxxwxxxgwxwxwwxwwwxxwgwwfvvewwxwwwwwwfugwwwvwwvwwvwwxwxwvwwxuhwwwwwgwwwwvwwwvwwwfxhhvwwwvvwwwwwwwxvwwwwwxwwwwwwwxxxwxxhxxwxxwxxxxvwxwwvwxwxxdfWuUdefVueweUTvUtufgVfWeVfvwggfVuvguffvuvwwguvfFewwgvwfvwgwfvugwffwfgfvgwvgwfgwwxwxwwvwwwwwwgfvgwwwxwhwgwwxwwhwxwxwwgxegfvugwgvxvWfwwvwguxhwvwwWvxxwxgvxhwwxxwwgwvwwwwwwwvwwxwgwxwxxxwxwxxxxxwxwwVueggUfVfEUvwggegUffxggfguffgvWfFevvvwfuwwgvwgfguwWvgwgfwgwgxwggwwwwwwwwwvgwwhxxxwwxwwwxgwwxwwvxwwhwgwwwxwwxxxvWfwwvwgwwXgwgwgwxWfwwfgvwgwwvwgwwxxxvgfxwgwwxxvwxxwwgvxwxwwwwhxgwwwxwwwwxwxxxxwvxwvxhxwwxwfeuvefUdguvVdwfVVvwwWfgwwwhvwdWfvgvwvwxvwFuugwXgwwwhwwwwvWvwvwfgvvwwhvwwgwxgwwxwxwWvvwwxhwxwwxgwgxxxxwxwvwgwxgxxwvxgwwxwwwwxxxwgxxxvgwxwxhxxwvwxwxwwxwxwxhwxvxxxwhwwwxwwxwggwxwvfWvfwfffvvvwgvwVvwfwgfgwWwggvxWWuvvxgvwwfuxwxwgWgvwgggxgxwwwgwgwxwwwwwwxxwwwxhgwwwxwxwwxxxwwwxwxxwvgwwxwxxgwvwwwxxwvwwvwvxxhwwxxwwxhxxwwhxwxxxwxxxvxxwxxwwvxxxxwhwgwgggwxuwgwusvvwfgwfggffvwgdfvwwfvvvvuvfufffwvwwwvvvvvwfvwfwwvwwVvgvguvwwwwwvgfghfwwwvwgggewwwwhwwvwwwvwxwvwvgwvwVgwwwwwvwwwwwwwguwwvwwgvgxwwwwvwwwxxwgvwwwwvxxxxxfwwwxxwwwgwwvwwxwwfuvwgfftgwwwwwwwGfvwUwcwvwgvfggfuwwwwwwwwvvwwvggwwwwwvgwfgewwwgXggxxvwwxwvwxvwxxxvvwwxwgwwwwxwwwvvvwvwxwhwggVvwwggxwhxwwwvWwvhwwgxgxwxwwgxwvgwwvwxvxxwwwwxwxhxwwxvxwwwvvvvvvfgevfwwvfwuwwwwvwwwvwvxVfgwfvvfwvvwwwwvwwwwxgwwwfwvvwwvwwgwwwxxgwwwvwwuwgwvgwwwxwvxxgwxwwwwvwwxhxgwxgwxxxxxwwwxwxwxgwxxwwvwxwwwxwwwxwwwxxxwwxhwxwvvuwwwwuwwwwwgwvwwgwxwwgvWvwvvgwwwwwwwwwvfgVwgwxwggwxwwxhxvwgxwvxxwwxvfwxxxwwwwwwxhwuwwwwxwxwxxwwvwvwxxhgxwxwxxvwwwgwxwxxwxwwxwwwhwwwxwwwggwxwhwwvwwxvgvwwwxvwguggvvwwwwwgeggwfwvwwwvwwuvwgegvvvfvwwxuwwxvwxWwwwwxuwwwgvgxwwwwwvghvwvwwxvxwvwxwwgwvvvwwvxvwvwvwxxwwfwwwwwxwxwwwgwxwxwwvwxwwgwwwwwwvvwwxhwxwvwvxwwwxxxgvvwgugwwwvwgUguwwwvvwvwvwvvwwvwuwuwwwVvvgwwvwgwwvwxvwwhwvwwwvwwxwwwxwwwgxxvwvwxwxvvwfxwxwwwwgxwwwwvvwvwwwxvvvwwwwwxwwwvwwwxxwwhgwhxwwxxwwxxxxwwxxwwwxwwwwwwwwwvwwvwwwwfwwgwvwwxwwwwwwgvvxwwxwxgwuwvxwvwwwwxwwvwwxwwuvwfwwvxwwwxvwwvwwgvhVwvuvvwwwwwvwwwwxwwvxwxwwxxxxxxwxxhxxwwvwvguvwwwxxfvvvwwewgxhvvwwvxwwxwvwwwxwwwgwwwwwwgwwxwwwwwwvvwwxwwxwwxwwwwwwxwxwxwxwwwxxxwwwwwwvxwwuxwwvwwwwwwewvwwwwwffwwfVwfwgUwvvgwvwgfvwwggvfeufwwwwvxxwwhvxwwwwxxxggwwwgwwgxwwwwwfwwwwwwwvhugvgwwwwgwwxwgwxxvwgwwvwwwvwwwxwvwwxwvwwwxWwwwxgwxwxwxwxxwwwwhwhvwwwxwxwwxwwwwxwxwxwwgvwwgwvgvwfwWgwfvfgwggwgggvgvwveuvwvwwwwfwwwwevgwxwwwwwxxwwwwwwwwwxvxwwwxwwxxwwwwwvwwxvwwwwguhxwwwwhvwwwwhgwgwwwwwwxxwwvhwxxxwwwgwuxxfgxwwwwxwwwwxvxwxxhxwwwxwhhxwwwwxxxxwxvwwwvwggVWgvwwWvwwfufxvwxwvwxwwvxgwwxgwwwfvwxxwwwhgwxxvxwwvxxgfvvhwgwvwhwxwwhwwxwwhvvgwhwwwxwxwwwhxxxxxfwxxxxxxwwxxxwxxxxxxxwwxwwwwwguWwwxxxwwwgvwvxgxwxwwwxwwxhhxvxwwxwwxwwwvxxxwwvgwwvxxwwxwxxwxwwwwvwxwwwxxwwxxxghxgxvwxxxwwwwwxxxxxxwxhwwxwxxxwxwwxxhwwwhtUfffevwvvwgfdvvffvggvvfvewvuuwVvdUVfevwgvwfxvTVfvffvfVwwvwwgvexwvfvgwvvuuvuwwwwwvvuwxxwvgeefwguwfgwwwvwvwwwwwwxwvwwvgWwVwwgfwwwfgVwwfvfwwwfvwffwfwwwwwwwwxvwvgwwwwxxwwwgwwuufwxwwwwwxwwwwxxxweewwwwwwwxwwvwwwgwwwwxfvewvfvwgvfwwfwvVfuwxwUfuvfwwwwfUevwvvfWwwwwwedvVwgvvvgxwxgvwwwwwwfwvwwvgvxvwwvxwwwwvwwwwfwgvwwuwwwwxxwwwwgwwwgWUwwwgwxxwwvtvVwvwwwwwhwwvuwvwxwwggwwwvwwgwgwxwwwwvwxwgwwxwvwwwwwgwxfxxvgvwwxwWwvwwwwwwwwwfvweVTfwgxwwvfevguvgxxvwvwUgEvwvfVwwwgwxfvVvwxxxwxvgVvvvuggvxvhvwwvxwgvwvwxvwvggvwvwwwwxwwwfgfwvewxwwhxwwwvgvwgxxxwxwwvxwvxwhxwwwwwwxxvxwwxxxxvwxwwxxwvvwxxxxvwvwxxwxxwwxwwwxwwwxvfVxvuwgwvwuwffuwgwfwwwwwveffxxvwwwwgwvwggwgwfggwfxxvvgvwvwwxwwwwvwwgxgwwwxvwvgwxwvwwvfwufxvwwxgxgvwuwwxwwvxgvwxwwwwhwhxwwgwwwxwxxxgwwwwwwxxvwwgxxvwgxxxwwwwwvwgvvxxvwwwxwuwxwwwvwwgfwwvvffwwggwvwwvhvfvffwgvfgfvvwwvvffvwwfwwwvgxxwwvgwwwwwgwwxwwwwwvwwwwvwxwwvwwwwwgwfwxxxgwwxvvwwxfwwwwwwwxxwvxwwwwwvwwhwwwvxxxxwwwxxwvwxwxwwwwwxwxwwgvwwfwxwwwwfwwwwvvvwgwxwgvfwwwwwwvwvwwxeuvwvwwvgfvgwxgxwwxxwgwwwxxfxxwwxwwwvgwxhxxwxwxxwwxhxwwxxVuwxwwxwwwvwwwwwwwxwxwwgwxxwwwxwxwxxxgwwwxgwWgvwwvwhwwgvwwwwwxwwWvuwvvvvwwxwwwwwwwxxwwgwwvxvwwwxxvwwgvxwxvgxwwwwwxwwwwxwxxxwxwxxxxwxxxwxwxxxxwwxwwhwvwwwvwxwwgwwwwxgvwffwwvhwgwwxwwwhvxwwxwxgwxwwxxxgxwxxxxxxwxwwwwxhhwwxxxwwxwwxwxxxxxxxxwxwxwxgwwwxxwwxxxwxxxewwgvwvfwvvgfvvwwwwUwvvfgUVvvwvvwwVwvwvvwwwvfvvgWffvwwvwwxwwwwfwwgwwwvwwwxwwgwgwwvxxwwwwwxwfvwwwwvwwwhgwwvgvwwwwxwfvwwwwwwwwxwwxwwwwxWwxxwwvwwxxwwxwwxxxxvxwwwxwwwwwwwxwxfwwxxxxxxxxwxwwvvwxwwwwwffvvgvgwwvfwWwgwgefuvfffuWwgwgxwwwvwwwwwwwwfxgwwvwwwgwvwwwwwwwwwwgvwwxwwwwxwwvxwwwwxhwwwwwxwwgxhwgfwvxfwwwwwwwwguwwxwwwwgwwxgwwfwxxwxxwvxwxxwwwvxxxxxwxwwwxxxwwxfvxxwxxwxxwwwwwvvvguwwvwvvwfwffvewvvwfwwvwWwxgwwvwXwvvvgwxvwxwwxwgvwvwxgvxxvgwwgwewwxxuwwvwwwwwvvhwwwwwwxWxvvwwxgwxwxxwxwwxvxwxwwwxxxxwwxxwwxwwwxwxxxxxxwwwwwxwwvvwwfwfgxwvgwxxwfgwwxwxvxgwvxxxgwhwxwwwwwwwwxwwwvxwwwxgwggwwwxwuwwwwxxxxxwwwxxvfxwwwwwxwwwwvxxwxxwwvyxxvwxwwxxxxxxwwwxwxwxwwxxwvwgfwwfUfwwggwffwwwwwvwvwwwwwffwfvwgvvxwwxwvgwvxxfufffefvffegwuffvvxxwvwwwhxVffvvvgwwwxgwvwwwwxwwfUfvugfvgvfvwfVgvwgwwvvxxwvwvgwwwvfwwxwwvwxxvxVWvvvfvfwvwgwwwvwwwwwvwwxwwwwwvwxwwwwwwwxfuegvfvwvVfwgwwwvUfwwwwWfgwwxfffgwvwxwwwwgggxwxwxxwfWvuwvwwgwvwwwwwvvwvxggwvxwwvwwwwgwxwwvwwvwwvxwwwwvwxweWfuwwwwwwwwfvwvfwvvwwwvxxwgvwwwwwwwwwwwwgxxwxwffwwfwgxwxgwhvwwwvxxwwwgwwxwggwxxhwxwwwxwwVuuwewgvgwvwwvggwwwwgfwwfwvfwwwwwvwwgwefeufguvgwfwwvwfvvvwwwwwwwwwwwwvwwgwvwwwvwwxwwvwwwvwfgvvWvwgwvwwwwguggwxwwxxxwxwgfvwgwwwwwxwxxwvxwgwfvuugwfvwxwwwwvwwwvwwxxxxvhwgwxhxxwxwhxwxwefvfwvwgwwwwwWfvvwvwwfwwvgwwwgvwxwwvgxxxxfvugvvwwwwwvwvgvvxxwgfwwxwwwgwvwgwxwwuwxwwwgwvxhWwvwvwwwvgwwwgwvwwxwwwwxwwxwxxwxwxgxwxxwwgwvwuwwwwxgfwhwwxxwwvwwgxwxwwhwxwwwuffwfvvgVvwffUffuvgvgfwfWfwffgwxwWuvfwvvxWvgvgwvxweevfwvfvvVeufvvwwgvwwwwfvvgwwwwwgfwwgwwxwwgwwwvwwvxwxvfwwwwvfwUfvvwwwgfwgvwwWwfgwhwxwwxvwwgvxwwvwwwxhwwxwxvwvgfvfwwgwgvwvuwwwwxwxwwwwwwwwwwvwxxwwwxvxwwwVvvgvgvwvUfuewfwVgvgwwfvvfwgwvvwgwvwWwvfwgvwvwvwxwxwwwvwxwfwvwwvwfvwgxghwwwwwwwvwwwwuwwwxgxguwwxhxvwgxxvwvwwfvvwwfffxwwWuwxxwggwhxwvwwwwwxwgwgwvwhwxghvwwhXxwxwwwgwgwwVwwwvwwxxxvwwvgwxxxxvxxwwxwxwwwxVvevvgfufvvWvgvwfuwwvwvvvxwwwggwvwwwwwgxxwgxwwwwxwhwwxufUugvvfefvvvfwvguvwwwgvfwgvwvewwvvwwwwWwvgvxwxgwwggvwguwwvwvwwwwwwvfwwwwxgwwwwhwwgwxhxwwwxxwxxwwgxxxwwxxwwvwvwwwvwvwwxwwgwwxwwxwxwxwxxwxxxwxxwuwwWvuwgwggvwwwvgwwwwvfwfwxwxwwwwwwwwvhwhwwwxxxhwhxwvwwwgwxxgwwgwwwwxwwwwggxwwwxwwxvgwWwwwxwWxwxgwwxuxwwwxgvvwvwwwwxwwxwwxxwwxxxxxwwwxwxwxwxwwwxxwxxwwwwwwwxxxwxwxxwxwxwxxwugwwVvwVvwwugfwevwwxggvggwwwggwvwwwwxwxwwwwxwwwwwxvwwvgevwvgvvffvwvwwwhwwfvvwvwwwwwwwwvwwwxwvwgwvwxwwxxxxxvvwxgfgvvvgfvgggwWxgggwwxxgwwwxwxxwwxwwxxxxxhgvgwwvwwgwwwwgvwgwxxwhxwwxgwxxxwxhwxxwxvxgwVvwwggvuVWvwwwgewvwwhfgeewwfwxwxgxxwwwxhwwgxwwwvxwwgfwgwwwfvgwvwgwxvwxxgfwfxwxvxxxwxxxwwwwwxxxwwwgggwgwwfvwgwwgwwvvwhwxwwwwxwxVxwxwxxxxxxwwwWwgwxwwwhvxwwVwwwgxxxwhwwwxxxxxghxwwxxxwvgvwwwvvwfvvggvwvwxfwvxvxwwwwwwwwxwwxwwwxxwxwwwwxxvwvwvvgffwvxvgfvfwwwWfwWwvgwwwwwwwwwhwwxxwwxgwxwxxwwwwwvwgwwwhwhwxwwxwwwxxhwxwxxwwhwhwwwxwgwxxxwxxxwxwfwxwwxxhxxwwhwxvwwwhwwwwgwwwxxgvvgxwwvwwwwwwwwwwwvwwxgxhxxxvwxwvwgvwgwfwfvwggxWxhwwwwwxwwwwxgxhwwvwwxxwxxxxwwxwgvxxxwwwwwxwxxwxxxwwvwwwxxxwwxwxxwxwxxwvwwxwwxxxwwxvwwxxwxwwxwwwxxwwwvwvguvfgWvgvwfwwwgWfwvwwwwvwwwwxwxwgWvwwwwgxwvwvvgwwgwwwuwgWvuwwwwwwwwwvvwwvfuwwwwwxwwwwwwwwwxfwxwguvfwgwwgWvwwwwWgwwwwxwwwgWvuwwwxwwxxwxwxwgWvwuwwwwwwwwwwxxwwwwwxwwwxwxwxxwxgvwfgWvuwWgwwgWvwwwvwuxwwvgwwwwgwwwwvwvwwxxwwxwwwwwwwwwwwwxwwwwxxexwwwwwvxxwxxwxwwvwxxgxwxwgWfwwwwwwxwxwvwuwwwxxvwwwwwxxvwwwxxxxxxwwvwwwwvwwxwxwwxxexvwwgxxwwwwwwwwwwwxwwvwwvgWvuwwwvgwxwwwwwgxvwxfwwxwwwxwwwvwxwwxvwwfuwwwwwwxwwwwwwwvwwwxwwfwwuwwvwwwfxxwxwwwwxwxwwwwxwwwwxwwwxgwwxxwxxvwwwxwwwwfxxwxwxxxwwxxwxwxwxwwwwwxxwwwwwwxxwxwxwxxxxwxwxgWvwwwwxxxwwvwvxwwvwxwwxxwxxxxxxwwxwxwwxwwwwxxwwwxxxwwwwvwwwxwwxwwwgxxwwgwwxfwxwxwxxwxgxwxxwwxwwwxxxxwxwxgxxxwxwxwxwxxwxwwxxwxwwwxwxwwxxwuwvwvwwwwwwgwvwwvvwfwvwggfvufwwwwvvvxwwgewvvVwwwvwwxwvwwvfvwwwvvvwwwVWvvvUwvvvwwguwwwwgvgwwvwgwwwgwwvwwvgvwxwvwggvfwwwTvwfGvvgfvgwwwvwvwwwxxwwwwwwhvxwxwwvxwwvwwwxwwfvwwvwwwxxwwwxvwwwwxxxwwxwxxwvwwwwwwwgwwwwWFvvUwvvvwvvwwvvwwgwwvwxwwvxwwwxwwgwgxwwwwvwxvwxwxwfgxwhvwwwwwxxvxxwwwwwxwwvgwwwuwwwWxwvxgvwvwgwwxgxwwwwwwgxwwwxwwxwhwwwwgghwxwgwgwxwwwwwwgwxxxwxgwfxxxwwwwwwxxxfwxvvvwuxgvvvfwvtfwguvwwwwwwvwwwwgvwwvwvxwxwfwwwfwuvwwWuvvwgtwwwvwggvwgwwwwgwwwwwwwwvwwxwwwwwwxxwwwgwxxwwwwwwwxwwgxgxwgwxwwxwwwwwwwwwwwxwghwwwxwvwwwxxxxxwhgwhxwxwwwwwfxxfwwwvwwwwwwwvxxwwwwgwwxwwgwwvxwwxvxxxwwxxvwwxxvgvwgwWwxhwwwwwwwwxwwwwxxgwvwwwgwxwxwwwwxwgxwxwxwwgwwxwwwxwwwxxwxwwwwxwxxxwwwwwwwwxwxuwvwwwffuwwWvfeffffwfUvgvwweuvwwgvggvfWfuwwwgfvvgwxwfuvfwfevvwvwwuVeugfwwvgvwwggwgwwwwvwwwwwgfvgvwwgwwwwwwgfwwwwgwvgwvgfVvuwvwfgvvvxuxwwwwvvxvwwwwxwgvvgxhvwwgvxwvgwwvwwffxvwvfgwggfgxwvvwwwwwxwwwwfwwwwvgwgvwvvvwugwwgwvwgVvuhfgffevfwwwgfgvfwvgvvwwhwgfggxggwgggvxgxwvgfwvwvwwgwgxwwghfwxxfwfgwVwWggwvxwwxwwwvxggvxxxwwwxwxgwwwwwwwwvwvwgxwgevfxggvwfwfwugwwwxgxgxwvgvxwXWxwwfwwwwwwvwxwuhgxVxxwwwxxwwwvwwxwuwwxwxwggxwwevvwwwvwggwwweVfvwwxwgfwwuhxwwggxwwvgwwwxwwvwxwxegfvfxffwvwgwxffefxwwVvwwwgewvfvwfvwwwwwwxggfwggwgwwwvwufgWwwwgwgxxwvwfxwwuwxxxvwxwxwxxxwxvwgxhhwwwwwwwwxwwxwhwggxwxwgwwwwwwxxxwwxwWxwwxwwwwxvgwwwwWvwvxgvvfwgvwwgwwwwgghvvxwghwwgwgvwwwwxxwxwwvwwwxvvxwxxwxwwgwVwwwgwvxgwwgwxwwxxgxxvwwgxwgwwggwxgvwhvwhxwwgVxwxwwvwwwwhxgwxxwwxxwwwwxxwwwwwwwwwwxwxwwgxgvwwhxwwwwxwwxwxwwwwxwwxxufvfffvfvwwVWvfvwwvwwxvggwwxwfvffWWegwwwgwwgguuwwvwwxxwxxvvvwVWvvwwwfgwfvwwvwxwfvwwwwvvvfvwgwwvwvvvwwxvwwwwwgvfffgvgvWWfvwwffwggwxwvwhwWWuvgwvxwxwwvwwxvhwwxxwxWWvvwwwwvwxvwvwvvwwxgwwwxwvwwwxxxwxvwwxwhxxwwwxwffvfVWuuvgwwwwfguuwwxwvwwwwwwvgvwfxvwvwvwhwwwwvwwvvwwwwwwwwwwxwwvvwwhwvvgwvxgvwxvwxxwwwxfwxghxvwxwgxxwwWWegwvwvwwwwvgwxwfgvwwxwfwvxwhwxxwxwxwgwwwxwwghwgwxwvxxwwvvwwhwwhxvwgwvhwhwwxhxwgwxgxwwxwwxgvvvwvwvvxwwwvwgwwgwwwwfvvhfwvggeuvwwwhwwxwwwxhwwwwwwgwxvwfwvwwwffwwwvvvvwfwvwvxwwwwgvgwgvfwwwwvvwxwwwwwgwvwwwgwwwvvgwwwvwwwwgwxwxwxgwwwgwwxwwwwwxxxxwhwwxxvxxxxgwwwwvwwwwgwwxwgwwwwwwwwxxxwwxhgwxwxwxxxwfguwwgwwwvxggghwwwgwwxwwwwwwwxwvgwwwxwxwwxwwwwwwvgwxwwwhwwgxxwwwwwvwvwwxwwwwwgwwwvwhwxwxgvwwggvwwvwwxxxwwxwwxxwwxwxxxwvxfvwwvwxxvxwwxgwhxxwwwxwwxxfxwhwxwwgxwxefvwvwffwxwwwweevfgwwffvvwwvwvuwwwwwwvvwwwwvwugwwvwwgvwvwvfvfwwvuvvffvwwvwfwwwvwwvwvvvvwwwvwwfvvwxgvwwwwwwwwevwwwwwVfxfewugwwgWvwwwwwvwghhvxxwvwvxwxwvwwvvwwgwxwwwvwwgwwwwwwwxwwxwwxwgwwxwxgvwwwwvgwvwwwfVfvxwwwvvwwwwfvxwwwwgexwvevgwwwvwxxwwwwwwxwwvxxwvvvggwwwgxvgxxxwxwwvhwwwwxwffvwwwwwgguffwwwwwhwxwwwfxwxwxwwxwwgxwxgwxwggwxwwvfwwvhwwfxgwxwxxwwwxwwfvwwwwwuwwwgvffwwvwwwwwggwvxxwwhxvfwwwxwwwxwuwwvwuvwvfwwwwevvwwwxwvwvwwxwwwxwgwgggxwwwwvwwwxvwvwvwwgwwvwgwxwxxwxxxwhwwxxwwwwwgxwwwvwwxgvwwwwwwxxwwxwwxwwwwxwwwwxwggwwgfvwvvfwwwwvvvvxxgxwxvwxxhxxxxwxwwwwxwwxxwwwvgwwgvvwwxxxgwvxxxwgwwwxgxwgwwewwwxxvgwfwgwwwwwwxwxxxxwwwwxwvwxwxwxwwxwwwxxwxwwwwwhwwggwwwgvwwwVffvwxvwggffvwfwwfwwvgwwvwwuvgwgwwwwwwvgxwwvwxvgvwwfWwwwfwwgwwggwwgwugvgwwwwfwvwwwguwwgwdwvwwwwwWwvwwwwwwgwggguwwvxvgwwwgwwggwwwxwwwgweWwxxwwwxwxwxwwgwgwwwvvwvwxfwwvwwwxwxvwvvvxxwwhxwhwxxwwxwxwvvgwwwwGfwvwwvggwvwwwgfvgvvgwwxwvwvvtfgwwwvgwxwxxgvwwwwxwvwwwwwwwwwxwwwvwfwwwwwWwgwxvwwwxwxwxwwwwwwxxuxwxvwwvwWgwgwwwxxwwgwwwxwwwwgxwhxxwwwwwvxwwxxwxxxwwwwwwxxwwwwwwwxvwwgvwxfwwwwwvxwwwgvwxwwwwxwggewvwxgggwwwgwwwwwgwgwxwvxfxgweWwxwwggwwgxwxwxwwwvwfgwwwgwuwvwwFwvggwwwvxxwwwwwwwwwwxxxWghwxwxwwhxwgwvwwwwxxwwwwwwxwwgwxxvvxwgxhxxwxxxxxxxwwxxxxwwxwwwwxvwwxxxwwwwwgxwwxxxxxwxwwxxxxxxxxwgwwgvwxgvwwxhwgvwgvwwfvgwwxwxwxwwwxgwxxxxwwwwwwwwgwxwxwxwwgwgxhwxfwwhwxxwxxxvgwwvhxwxwwxwxwwwvwxxxwhhxfgwxxwwwwxxxxxwwwxxxwwwwxwxwwwxwhxwwwwwwwxwxxwwxxuWwvfvvwfvwxffwwwwwxwgwwwgwwgwgffwvwggwwwhwxxwwhwwxwvwvfewvvwfwxwwxwwwxgwwwfwwvgvwhwgwwxgwwwwwxvvwgffvwvwwwwxwwwwvwxwwxwVVfffwgwgxwwwxwxxxxwvwwwwwwwwvwxxwwwwxxgwwwgwwwwxxxwxxxgvgvgfvvfffufwfgwxwwgvvfwwwwgwgwVwxwwwwwxxxxxwwwwwwwwwxwwxvwxwwwwwwwwwgxvwxxxxwxgxxxwVWffvWwwwwxwwxwgwwxxwvfwxxgxwxxgwxxxwwxwwgwgwwwexwxwxxxwxwxwwwxwgwgwwwwxxwxuufwvwwugwwwgwgwvwvwvvwwwwwwwxwwwwwwwwxxxvgwevgvwwvwggvwgwxhwwvwvvwvwgwxgwwwwxwvwwwxxxwxwwwwwwwxxwwvwxwwxxwwwwwxxxxwxvwxwgwwwxxxxxxwwwwvxwwwwwxxxwxwxxxwhwxxxxxxvvWvvwwwuwwxwwvwxwwwwxvxxwwxwwwwxxwxwxuwxxxxxxwwwwwwwgxwwwwwxhwwxxxwgxvvwwxxxxxxwxxxgwvghgwxxxxwwxwwxxwwwxxxxhxywxxwwxxxwwwwxxxxxxxxtfgvvwwfwfVwwvfvvwxwUvvwwwvvvwvwwwvuwwwwvvwwwwefwwwwxvvwfvevgFfvvvwwwvwwwwwwwgfwfwwgwwwvdvvwvwwwWxwWwgwwxwwvwwgvwwvwwweugfgfvwwwwfvwxgwwwwxwwwwgWuvwwwxvxxxwwxwvggvwggvwwwwgwggwxwwwvwwwwwwgwxwvfvfvwfFfwgvvvggwvgvvvuwwwfwvvwvwwwwvdvvwwwgwwwwwwxwvwvvwwwgvvwwgwwwwwwxwwwwwgxvwwxwxwwgxwwxwwwxwhxgwxwxWwwfggxvfvwwwwxgvwxwwgwwxwWwvvhxxwwwxxwxwgxwxwwwxwwwwwWxwwwwwwxWwwwxxxxgxwxxwwxxhwwwwwfvwwvwuwwvvwwvvwewwwwvwwwWwuvwwvwgwxwwwwxxwwvfwdvvvwvvwwfvvxwwwwfwvgwvwwgwuwwXwwwxwwwwwwxwwxwwwgwwwxwxwwwgxwvwwxxwwxxwxxvxxxxvwxwwxxwwxxxwfgwwvwwxwwwwwxxwvxxwwwwwxxxwxwxfwvwvwvvwwwxxewwvvwxgxwfwgwwxwwwwwxxxwwxwwgwwxgxwwwwwwwwwwwvxwwwwgwxwwgwwxwwwwxwwwwwhwxwxxxwxwvwwvwxxwxwxwwxwwwwxxxwxwxwwwxxxxxwxwwwwuxwwxvxwxwxwwxxwwxtvfwwvwggfgwugwwvfgfvwwwWffuwVufwgFfvwwxxwwxWFfuwwwwwxwwggwwvgvwugwwVuvwvvwwvwwwvgfgvgFfvvwwwwxxwwwwxwgfgvwwxwVuvvgFfvwwxwwwxVFfuwwxwwxxwwgwwwxgwxxwwwwgwwxwxxwxwwxgFfvwwvwvvwwwwwwwhfgvwwwwwxwxwwwxwxwwxxxwwwvwggffvwgwVffugvwwWwwwwwwfwwwgVFfuwwwwwvwvwwwvxhxxwvxwxwwvwwwwwvwwvwgfhvwwwwxwxwvgxxxwwwxhfgvwvwwwxvxhxxwwwxvxwWFfuxwwwwwxwwwwwgwhwwgwwwwvwwwxwxhxxxwwwwwwxgfgvwxwwwvgwxxwxwwwvwwxwwwwvwvhvhwvxvxxgvwfugwwwgvwgwxVffugwwxwwwxvwxxwwgvxgwwxwwwxwwxxwxwwxxwugwwVuvwwvuwwggvwxgfhvwxwgwwwwwwwwhwxwwwwxwxgwxxwwxwxwxwwwxwhwgwwxwxgwxwwxhwwwgwwxxxwxxwwwgwxwwwwwvwwwwwxvhxwgwwwxxxvwxxwxxxhxxxwxgxxwxWffugwwwvxwwvvwhwwuhwwwwxwwvxwxxwwxwwwxxxwxxwwwwwgfgvxwwwwxvwhwxwwwwwgwwwwwwwxxvxxxxxhwxgwwwxwwwwwwwwwwxwwwhwxxhwwwwxwxwwxgwwwwxwxxgwhwhwwxxwwxxxxwxxxxxwwxwvxxwxxyxwwxxwwwgwgvwwvwwfgvvwwwwgwwvfwvwvvgvfwwvwwwvxwvwvvwvvwvwxwwgVvuwwxwvvwvvvewuwfxwvvxvwvwvvwvxwvwvwwwvvwwgxwwwgxgeuvxwwwwwvwwgWvuwwwwwwfwfgwgwwvxwwwwwxwxxwxvwwvfwgwwwwxwxwwwvwwxwwwwwwvwxvvwgVeuwvwvfwvwvfewewvwvvwfwvfwvwwvwxwwwwwvwwwwxwxxwxvwwwwxxwxwxvwvwwwvwwwwvfvwwwwwxxvwwwwwxwxwxxhgwwwvwwwwgggwvxxwvwxwvgwvwwgwwxwwhwwwwwxvwxwxxxwxwwwxwwxwxwwwwwvwwwgwxfwgxxxvwxxwxxwwvwwvwguuwwwwwvvxwgfvuvvwwgwwwuwwwgwwwvwfuwwwvwvwxwwguvwxwvxuwwvfwwwwwwwwwhwgwwgwxxvfwxwvwwwxwwxxxxwxwwxwgwwwwwxwxxxxxwwxxxwxgwwwwwwwxwwxxwxwxxxfxwxwwxwxvwvvwvvfwwgvwvwwxxwwwwxvxwxwxwvwwwwxxwwwwwwvxwwgwxxwxxxwfwwwxxwwvwwxgvvgwxwwwwwxxxwxwxxxxxwwxwwwwxwxxvwfwwwxwxwwxxwwxxxwwxxxwwwwxxxufwwwvvwwwxwwwwwwwwewwfwvwvwwwffgfwwffvwwffuwwwvfwfwvwvwwgwwffwgvwwgwvwhwxvgVewvgeevwgwwwxewuwvxvwwwvwgvwxwwwwwwewvxvwwwwwwgUvvfvgVWfwxwgVwVwwwfxwwwwwwwwwwvwwwvvwwwffwwwwwwxwwxxvxxxwwwwwwwwwwwwVwwwexvwfvgVevveevwwwwewwwwxfwwfwgwwwxwxwwexxxwwvwxwwwvvwwwwgwvwewvxgvvwfvvwvwwgwxvxexwwvwxxvffgxxwwxwwwVhvxfwxxxwwwxwwxwfxgvvwxgxxxxxwvxwwhwwwwwwwwwwvwwffvxfwuxxvwwwwevwwvvvwwxwwvxwxwwwwvvwwgwvvxeuwwwgwxhwxwwvwwewwwwwwwvhxvwwwxwwvvwwxvwgvwwxwxwfwgwgwwwgwgxxgxwwvwwwxxvxwxwwwwfwxxwwwwwwxwwwwvvwwwwwgvwwwwwwxvwwwwxxvwxwvwxwwwwwwxggxwwwxxxxxxxwwvwwxwvwxxwxxvwxwwwwgxgfgwwwwwwwxxxvwxwwvwxxwwxxxxxxxxwwwxhwwwxgvxwwwxxwhvwxxwxxwwwwwxvgxwvgfwwgggvwwwhgwfwfwwevvwwxgwfvwwxfxvfwgvggxvxwxxvwxwfvvxwgvwggwgfwgvvwwgwvwgvwwfxvvgwwwfvwwwwwvwwwggwvwxvwwwwhxwvxvwxwwwgwwghxwwgffwwwxvxxwggwxwxxwggvwwvwwwwxwxvxwfgwwwwxwxxxxxxxhxxxxxggwwwgwfvwwfxwwwxwwvgwgxwwwvvfwwvwwxwxgwwwxwwvxwwwxxxvwhxxwwwggvxwwvwwvvwwwwxxxwxxwxxwwwwwwwwxxxwwxwgvwwxxxwgxxwwxwwxxwxgxxxvxxxxwwxxwwwxvwwwxwxxxwxxwwwwxxwwwwxwwggwwghwwwwwwwgvvevgvevwxwvwwwfvvxgwxgxfwwwgxvxwxwxwwgvwgwwwwwwwvwfwxwvxwvwgwwwxhwwwwxwgwvxxwwxwwxwxwwxxxwgxxxwxxxwwxxwwwwwwxwxxxhxwwxxxxxxxwwhhxxwxwgvwwwvvwwwxwvwxgxwvxgwxwxxwwwxwxwvxxxxwxwxwxxwwxxwvhxxxwxxxwxxwwxxgwxwxxxwwwwwwxwxxxwxxxwxxwwxxxxwxxxxwxxwxxxxxxwxxxufuwvuvvvvvguwgufvVfvvGvwgvwfuvfugfvufwgwvwfffwvvVwuxwftvevffvvWvwfwuvgewwwwwfwwxwwefevVuvwvvwwvwwefwgwfwwxwwwwwfvwvffwvwwvwwfeWggvgwwwwwwvffvgguWwvvwxgwguvwvXwwwwuwgevvwvwgwgwfVwwwgwgwwwxwfgwgvgvwwwwgwwwwWwwvvvxwxwwxguvgvffvuvwwgvvvVgggvwwWfvgwggwvffwwvfgvvfwwwwvtvvwwvvwwwwvwuffwwggvwfwvwfwwgvwwwfwfwfwwwxewwwfwxxwxwxxwxwuwgxwvfxfxwvfwfvgwwwwwguwxxvwvxwwwevfvVgwgwwgwgWuwwwxwwwffxvxvwwwvwwwwwwxvwwwwwwwgwvvvwwVgwwfgwvxwwwwwxxwwxvxwxxeuugfgfvwvWxvWwgvvwwwwxhxefvwewvwxwwwxfvvvwgvwvwxxgwwweffvVfvffvvwwwVwgvwwvwwwwxwwvfuvVvWfwgwvgwgvvwwwgwgvwvvxtggwevvgwgwvwwxwvwwxwwwgwwggvvvwwhwwxxxggwvvxwwwwxxwwwgwvwvvwwxwwwwvwwwxwvxwwwwwwwfhwwxxhwvhwwwwwgwvhxxghuwwwfwgwwwgGgvgwvvvwwwwxwvwwwwvvwwvwxxwvvwvwwwgwwwhwwxxwvvgvwwxwwwwwggvwxggvwwxgwhxwwwgwwwwwxwwxwgvgwvwwwwgxxwfwwwwwwwxwxvwwxwwwvwwwwvgvwwwxgxxwvxxhhuwvwxwwxwwwwwwvwwwwwxwwwgwwwhxwxxxgxgvwxwwwwgxhhuvwfvxfvwgVVguwgwwwdVvVduwvuvwvefvggwvwvgvUVvUuwfwvwvgwvfuwggtwvdVweuvvwWugvvwUuwvfvwvefwVduwvwwvVvvgevwvvVvgggvvwgwwwxvWvwwwwfvvvgvvfuvwWvvwxgggwwffuwwgwvxxgwwwwggwwxxwwwvwvfuwwwvvwfuwwfwgwhwwxwwvvwwwvxwxwwwvwvxxwvwgwwfwueuvWggvwfuvwfuvvuwfgfvvvvwwvfWxggVdfgvvwWwgwgwfwwwxwwwwxvwwvwwgwwwwwxgwvvwgxvwwwwvwvwwgwgxvvwwgxexgwwwwwgvvwxxwgvvvwvvFxwxvwwwwwwwwhgwxxwwwhwxwxxxwvwwwexxwgvwvWwtwxxghxvwxgxxvvwxwxwxwWxffewVVfTuwvVffuvwfvvwvguxvVVvefvwwgwwwvwveugvhvwgwgwwwvwvvwwuwvwgwegffvwxwwxwvwwwwwvgwvwvwfxwwggVfvwgwwwvvggWfgwvwxfgvwwwwwwwfwwgwwwxxxhwxwwvxxwxvwxgggwvxwghwwvvxhwwfwwxwxwwxwwxwwwwwwxwxgwwvwwwwvwwwwwwwwwwxvvwvvfgvhvvwwvxgfvfwvvfguwwwwgwwwfwwvwgxwxxwwxwwwwxwwgwwvwwwwwwxgxvvwwwgvxwhvwggxxwhwwwwhgxwxwwwxfhgWvhwwgxxwxxxxwxvwwvwgWWxxwwxxwxwhwxxxwhwxfwxwwxxwgwwwxwxwxgwwwxwwgwwxxwxxwwwwwxwvxwfwwgwwwguvggfvvfwwgwfwwVgvewvwwwfxwwwvwgvvvgfwwwwwwguwwgwwgwxgvvwgWwvgvwwwgwvgwfvwVvwgWvwevgvvfwvwwfwwwfwggwWwwxfvgvwgvvgewwvggwwwwwwwgwgwxgxwwwwhgwwxwxwvwxxwwhxwxVgvewvwwwvxwwxwwwwwxwwgxwxwwwwwxwxwwgwwvwwwvgwgvwwvwwwWwvgfwffwvfvgwwxxwgwvgwwgvwwwwwwwwxwwwxwwxwwwwvwwwwwwwwwwwwgvwxwfwwxgwwhxxwwxxxwxwwhxxwwwwxxwxwwwwwxvwxxgvwwwwwwwxggwwgxwxxxwwxwxxwxwgxxwhwxxwwxgwwxwwwwxxxxxgxxfwxxwxxwwvxxwxwwwwwwvwwwwvuwvxVwvwvvwwggwwghwwgxvwewwvgvwxwxfvwwwwwxxwwwxggvwwwfwvvxVxwwwwxgwgXgxwwwwgvwwwwxwwwxgvwxwgwwwgwxwwxvwxwwwwwvwxwwxwxxwwxxxxwwxwxwxwwxwwxxxwwgxxxwwxgwxwxhvwxwgxwxwxxxxwxxxwxxghvwwwwvwxwxxfwwxgwwwwxgwxvwwhxxxxxxwwwwxwxgwwwvwwwwwwxxwwwwhxhxXwwwwwxgwvxxwwxwxxwxwwwwxwwxwxhxwxxwxghwxvwwwwwwwwwwxxwwxxxxxxxxxxwwxxxxxwxxwxwxxxxxxxuvvwfefUvtuweVfvwvwvUfwwfvggwwVvvwufvvgwguwgwVvwvwgugwfuvfeUTvgvggfufwgvwwwvfwvwwwwwegfvffwvvfwvwvwwwhxwwwwwgfffvwvgwffwwgvffwwvwXgwfvgvfwwwvgwggwgvgxvxhwwwgvwwwwvWfvgwgwwwwvvwwxwwgfwvvgwffwvxwxvwwwvwwwwwvxxffvfgfvvvgVuwfvVvefgwwUwuvewwfgufvwfuveWvvwhwufvgvgfwffgwwwggfUwwggUgfWvwgggvwxfwhwvwhgxvwvvvwvvVvwwgwwgwvfvWhfxwvxgvwgvwvveegvwwWggwvgxwvVwvgvwxgGwvwxvgwhxwgxxwwgvWwvwwwfwwwwwgwvwEwgxwxwWwwxhxfghwvwwwwwwwwxxggwwxwgvxgwvwxwweuvvdfefvwffvvwwgfwvgwgvxwhvgwfwwwvwxwwwwvvvhwwxwxxwxfgevfVeegvfwfwfffvvwwwvfxwwwfvgwfuvvvgwwwwvvwwvwvvvuwwxvwevvvggwvwwxwwggvvxwwwxwxwwfgwgvvwwxwxwwwxxxwwxwhwwgvwvwwvgxwwgwvwwwwwwwxwwwwvwwwwwwhwwxwwwwwwwwxgwwvwwwgvfgwuxwwwugwvwwufvvWvwwwgWwvvgwwxwwwwwwgwWxwwhxxwfvwwwfwxwwwwfwwgxgwxwwggwwwxwwggxwwwwggvvvfwxwwwvwgwwgxwWwwxxxwwwwwwggwwvgxxxwwwgwxwxwxhgxxwwhxwwgvxgwwwwgxxwvwxwxvwwxgwxhwwwhxwwxwwvvwvgtgvwvvUfvvwgVetwwvfwwwwfVevgwvwgvwfgfvwwwwvwwvwwxxwvwfwvwgVefwwwwwwwfwvvwxwwuvwwwvwwvwwUvwwgwuvxwwwfvvwgVetgvwwwggVefgwvwwwvwwwwgwwwwwwxwwxxwwxwwfVevwwvwwwwwvvwwwwuxwvvwvwwwwwhxxwxvwwwvvUvgvgVetwwwvgwwwvwwgxxwwggvwwwgwxwxwvwwwwwwwxwwxxwwwwwgvvwwwwgxwfxfwwwuxxgvxxvwwwxvwwwuwgxfxvxvxwgVetwwwgwwwvxxxwwwwxwgwxwwwwxwxxwvgxxwwxxwwxwwwxxvvwwxwwgxwwwxwwuxxvwgxxwvwxvxwxwwwwxxvwvfggvwxwwwvwwgxxwwwwwwwwgwwwwwwxwvwxwwxxwwvwwvwwvwwwUvwwwwuxwwwvwwwwwwfgvgxwvvwxwwwxwwwgwwwwwggxxwxxwwxwxwgwwgxwxxwwxxwxwwwgwxxxwwwwwvxwxvgwxxxwwwvwwwxwvwwxxwxwwwggfwwxgwwxwwvwgwvgwwgwwxxwhxgxwwwgwwwwwwwxwwwwwwwwwvuwxgfxwgwxwwgxwwwvwwwgwwwwwxwwxwxwwwxxxvwwxgwhwxxwwwwwxxhxxxxwwwfwxwwwwxxxwwwwxwwxxwxwwxwwwwwxxwwwwuwwgvwwgvwwfVWwwxvgfvwgggvfgwwxgffwwwwuwwwfgfgxxxwwwgvwgwwWvuhwgvWvvwuwwgWvvwwwgvxgwvwgwfwxwhgvxwxxwxwwwwWfexwxxwwxwwgggVVwxxwxwwwxwwxwwxxxxwwwgwvwwvwwvwxxgwxxxwwwwxxwwxxwxxxwwwxvVUvWWvguufgwwfeVfgvxxgvfwwxggfwgxgwwwwwxxxwwxwwwgfvwvwwwggvgwxwhfwwwvwgwgwgxxwwwhwxxvwvxgxwxhgxwwwffgwfffxwxwxwvvxxgxxwwwxwwwxwxxxxvvxwwwwwwgwgggwxxwxvwxwxfwxxwxwwwvxxxxwwwxVffwwwwggggVVxwwxhwxwwwwwwxgvxwxwwxxwwvwwwWuhWvwvgwwfwxwgXvhxhxxvwwxwwxwwvwwwxxXvvwwxxvwwwxwwxvwwwwxxxwwxwxxxxwxwwwxxxxwwxxfwwxwxgwwxxxxxxxxxwfwvwwhgffxxxghvwxxxwxxwvwxxxvxwxxwxwxxvwwwwhgvwhwwwvwwwwwxxwhxxxwxwhwwwxgxxxxwwxxwwwxxxxwxxwwxwxwxxwwwwwwxwxxxwwwxxwwxwxvgwvxwwggvwfwvwwxwfvvwvgfvwwwvWwwwgwwgwwwvwwwfvvwwwwvwVwwwwwgwwfvwuuwwxwgwwvwwvvwwwwuwxvgvwwwwwwfgxgwvwxwvfggvvxwwxfgwwxfwwxxwwxxwewwvgwxxgwwwwwwxxvgwwxwwxwwwwxwvwxxwxgwwfwuwxwwwVwwfvgxwvgfvfvvgwvvxgvvggggwwxwwwwwwxwwxwwfwwxxgwvvwwwwuwwwxxwwwwgwxgxwwwwgguwwwgxxwvwvwgwxwwxguvgwwwhxhxwwxgggwwxxxgwvwxvwwwwwxwwxxwwgvwxuvwwwhwhwhgvxwxwwwwgfxxwwggwwwwxwxxwvwvvvwwwwwgxwxvwwwwvwvvwwxxwuvwgwwfxxwxxvuwvgwwvxxwvwuwwvvwxgxwwwwxwxwxxxwwgwwwxxxxxwwxvxxxxyxxwwwxxxxxgwxxwwxwvvxxwwxwwgwwxwxxwwgwvxxxwwwwwvxwgxwvxwwwwwfxxwwwxxwxwwwwxwvwxwuxgwwwwfwxgxwwwwxxxwwxghwwwwfwxwwxxxxwwxwwwxxxwxwgxvwwxxxxvgwwwgwwvwwgwxwwgvwwwgwwvwfvwgfWgvwwfvwvgvvvvwguwfwgwwxvwvgwwvvwvvwwvvvwwfuwvwxwvwgvgwfuwvwgvwwwwwgwwvxwwxxvwwwvgwwwwwwxwWwxwwwwwwxxwwvgvwwxwxvvwwwwxwgWwwwwwxxvvwxxxxwxwxwxhxxwxxxwhwgvwxwwvwwfwvwwwwxvwvwxwwWwvwvvwwwwxvwvwwwxwxxwxwwwwxwwwwxxxvxxvxvwwwwgxwxxwwwwwxwxgwwwwwxwwxxwwwwwwxxxwwwwxwwwwwxwxwwwxxwwxxwxwwxwwwxxwwwwxxwxgwwwxvvvvvwxwwvvwwgwhwvwwvxwxvxwwwvwgvwwwwwwwwwwwwvvwwwxgwxxwwwxgwwwwwwfwxvwvvwxxfwwwxwxxwwwxwwxwxxwxwxxxxwwwwgxwxwxxxxxwxwwxvvvvxwvxwxvxwxvwwxwvxwxwxwwwxxwwwxxwgwxwwhwvxwxwwxxwxgwwxwgwxwxwxxxxxxxwwwgxxxxwwwxxwwwwxxwxxxxwwwhxxwwywgfvfvvxgeeuvvwwfWvffFeuwgwfgvxgVevxUuuwgUUgvgvFevfggfvwvwwgeevwfueevwgUfvwhwveewfgfvgvgetvveWfvvgwweevwgfefvggvwwwvwxwgvgwWutvwggggweVvvwxxvgwgwfwwWuwvxwwVvuwwhwwwwxwwwwgvwvwvegvwwwvwgwvxgvvwwwggxgwvvwwwvwwvwxwwxgwwwxwwwwwwgvvwgvvvvwwwVwvwgggfevfxWvfwWgeuwgetvvvxguvvvxgvvuvxggvwgwxvwwgwwfgwfwxvxgwWwxwxgxfwwwwwwwwhvxwwfxgwgwXgwwwwvhvwgwwwwwfwxwwgvgxgwvwwwwxvgwgvuwxwvwVwxwxxwwwwxhwwxwwwxwwwwvxwgwxxxxhwvwxwxwwvxwvwfwwwxwwhwwwwwgvgwxgWeuwgvwfwewgGeuwwwwUvuwwwvvwgfUutvvvxewVvvgwgwgvwvwxxwwgggfgvvvwvvwwWvwwwwgvwwwgfVUvwfvfwwwvwwwvvgVWFfwwVxvvwxwwwvgwwwwwhwwwxgxwxwxgwwwwwwwxxwxxxxxgwxxwwwxwgwvxfxwxwwxvxwxwwwfwwvxgwwwwxwgxwwgvvwwwvuwwwwwgwwuwvxwwggwgxXgvxxvwwxwgvvwwxwwwxxxwfxvwxggwwwxvwwwwvwwwwxxwwggwxwgxxgxwwwxgfwwxwxwgxwwvxwwwWwwWWwfxwGxgvwhwxwxvgxxxxwxxxxxwxwwxxxghwxhwgxwwxhwxxxwxwwwwwwxwxgwgwwwxgxwwgwgwwuvgwvvwwwvwwwwwvgwvwwgfvwwvwwxwvfwwgfvwwwwgvwgwgfvvwwfvwggwwwwwvgvwwveuvwwwwvwvwwwwwwwggfvuggwvvWwwvxvwwvxgwwgwwvwhwwvwxgwwwwwvwvwvgxwxxgWvuwwwgWwfWxwwhvwgxxhxxxxwwvwwwwwwwwwgwwxwvwwwgwhxxxvwxwwwwxwxwwwwwwgffxxwvwwwgwgvvwwwvwxwwvWevwvfvuufgxwwwvwvwwwvwwxgxggwwwwvwvwxxwwwfwxxwxwvvwwgvfxwwwxwwwgxxxwwwwgfwwwwggxwxxvwxwxwwhwwgwwwwwwgwwwxxwwxhxwxgwvwfxwvwwwwwwxxwwwxwwwxxxwgxwwfwgwxxwwwwwwxgxwhfwfvxgxwwwwgwwvwwwvgwwvgWvvwvwWwfWxwwxwgwwgvggxxwhwwwVvuwwwxxwxwwwwwwgxwxwguwvwwwwWwxwwfwxwxwwgwwvwxwwvgxwwxwwwwwxwxxxxxwxgwgxxxxwxxghwxvvwwxxxwxwxxxwxxwxgwxxxwxxgwwxxwgwwwwhwwxwwwxvwwwwhwhgwwwxwgwxwxwwwwgwwwwxxxxxxwvwwwvwwxxxvxwxhxwwxwxwxwwvwxxwxwxwxxxwxwxwwxwgxxxwwwwwwwgxxwxwwwxgwwxxwxvwxgxxxhwwxwxwwwxxhwwgxxvvwgwwwwwgwvgvwffvVwfgwffewvvVwwwwwwwwwwwwwgfvvvfwfvuwwwvwwwgfvvwwvugvvvvggfwvvvgwwwwwfgwwwwugvwuwvwwwwfvuggwfwwwwuwwwwwwgwvwwwfvwwwwvvwgwwwwxvwwwwwwxxgwwxvwhwxxwwxggvxvwvwwwwwwxwwwxwwwwvwwwxwwwwxxxwxxwwwwwwwwgwwvwwwwwwgwvfwvwuvwwwwffgwwwwwvxwhxufvwwwwvwwvwwwwwwvwgxvxgwvgwwwwwxwxwwxxxwwwwvxwwxwwwwwwxwwwxwxvwwwwwgwwwgxwwxwwwxwxvwwwwwwxwwhwwxwxwxwvwwwxxwxwxwgwxggwwwwwxwwvwvwufvwvwvwvuvvvwvugwxwugxvwufvwgwvxwfxfwwwwwwwgwvwwxvvxwwgwvvwxvuxwwwwgwwxuxgwwvvwhwwxvwwvwwfwgwvxxxxxwwwwwwwxwvwxvxxxwwwwxxxxxwxxwwxwwwwxxwwxxwxxxwxwxwxwwxxwwfwuwwwxxwwgwwwgvwxwwwhugvwwxwwgxwwwgwxwwwwhwhwxwxxwxxwxwwxwhxxwxxwwwhwvwxwvxwhxwwxwwxxxxxwxwwxwxwxxwwwwxxxxwxxwxxwwwxxwxwwwwwxxxwxxxwwxxxxwugwvwhgvxvgwwwvvwgvgwgWuwvwVwvgwvhvwvwwwwvgfuwwvWgwwwxwxwwvwwguvggwgwwwgwgwuwfwuwwwWwvwfevwwgxvvwgwgvtwwwGfxvwwgwgvgxwgvvxwwwxfWftgwfGgwwxwxwwvwwwxgwwxxxwxxwxwwggfwwwwvxwgvegwwWggwwwxxxwxwgvxxxxwwwwwwwwwwxwwwwwwvgwwwGVvvugWgwffwfgwgfwgwxwwgfvvfwwfguwwwxwwwwwwwxvwwvwwwwwwwwwwwvgwgvfwxgwwwxwwwgffwvhvwwwwgwgfgwggvwwxwwwwgfggwxwwgwwxxxhwvggvxxwwxwxvwwwxwwwgwxxvggwxwxwwwwwwxxwxxvwwwwwwxwwwxwwwvxvhwwwwuxggftgwfFwxwxwvxvxwwvxwwvwwggwxxgwwwxwxwwvwgvgwvvxgwdgwwGvwgvwWvwwwgwwvxwwgvgwwxfwwwuwwwxwwvxwxgwwxwwwxxxwvwwwwxwwwxuwwwwwwxxwwxwgwwxxwxxwwwxxwwwwxwwwxwxxWwwxwgwxxwwxwvwggxwwWwwfwxghwxwwwwxxxxwwwwgvwxxgxwwwxfwwfgwvwgwfwxgwwwxwhwwwwxwwwxxxxwwwxxwxxwxxwxvwxhwhgwxxwxwwwwxwwwgxxvxvwwxwwwwxxxwgxwxwwxwxxxxxxwwwxwwwwxxxwxxwwwxcffvfffVfevvufVvwvwvwfffwwwvvvwffwwwwvwwgwvwwwwwxVvuwveuffVfegwuvvfwgwwwwwwwwwfvvVvgwwvwvwgwhwvwwxwvffveGfuvVeufvwwvgwvvwwgvwvwwgwwwvvwwxwwwxwxwwxxffvufwvvwvwwwvwuuxwwwwwwwewvwuwwwwxwwwwxwgxxxwVfufvffwvVFfffgvvfgwwgwwvvvvwgfwvUfvffvwwvvxwvwVvwwwwwgvwwwwvgvgwfwvwvwvxgwwwvxvwgvgxwwvwvwwvgvwwgvwgwwwwhxwxgxv6UuddvwvgfvgveewvVgwwvwwVvwwvwhxggfwwxwwwfwwvwwwwvwwvfvvgwgwhwvwgwwwgxwwwgwwvwxwwwwxxxgwgxxwWwhxfevueVeefVevfgvwfgvvwwwwgwwwxwxvggvwvxxwwxvvwwwwxxwwfFdfcevugvggvwvwfvwgvwwgwgwvwwwwwwWxwuxwwwwwwfwvwgvwwvxwwwvfwfwxfgvwwwxwxxxwxwwwwwwwwxwxwwwwfvvwwwvwwwxwwwwvvxvwwvxxxxxwxwxxhxwxwxvxxwwwxvfguvfwvgwvwfwtfvvwwwwwwwvvfvvvwwwwwwxwwwgwWwwwgwxwxwxwvwwvwvwxvgxgwwwwwxwwwwvwxwwhgxxwwwwwgxxwvwwxwefwwwwwwwwwvwwwewwwvwwxwxwwxxhxwwwhxxhxwwxwwwvwwfhwwxxggwvwwgwwwwwxwwwwwxwwxwhwvwxxxwxuwfwvwwwuvvgfeewvwwvvwgwwwvvwwwwwvwwwwvwwwvwwwxwhvvwweewvefwvgwwwfvwwgvwvvwwwwwwwwwwwfwxwwwwgwwxwwxxgwfwwwvvwfgwwwvvwwwwwfwwvfwxwwwwwwwwxwgxwwwwxwxgxvwwwfwgwvvwwwwwxvwwvwwxwxxwxxuvvfevwueewwfgwweewgwweewwgggvwvwvwwwwwwwwxxxwwgxwxwwuvwfwwgvffxvwWggwwwxwuwwxgwgwwwwWxxwwxxwhwwwwvvvwfvwwwhxvevwwwwgvvvwwvwwwxwxwwxxgwxwwwwwwwwwwwvhVwxwvwwvwwwvvvwgwwwxwxwgxwxwxxxxwwvwvwwvwfwvuvfwgwvwwwvvvgwwwwwwwwwwwwwwgxwxhxxwwvwuwwvuwgwwwvvvxwhwwwwwwwwwwXhxwxvvgwhwwxwxwwwwwwwxwxwwxxhxwxwxxxwxwxwvwwwgwwwwwgwwvwxwxxvwxwwwvxxwwwwvwvfxwgvvxwgwfvwwwxuwwvfvwwxwxxwwxwwxwwwxvvwwwwxgwwxgwxvgxwwwwexwwgwwwxgxwvxvwwhxxwwvwwwwfwwxxwwwwwxwwgxxxxxxvwwxxwwwwxwfwxxvxxxwxTegvefvwUvfggugwUevvxvwgfegwwgwwgvwvwwxxwvVvwwwwxEeefwffweeegggwgVVVwwwwvffvwvwxefvvwwvxwvvwxwvwwwgvwwwwwxxwVevwgfvwdVvvfuwwfFewwxgVugwwfxvwwwwvwgvwxwwweffwwvwwfvwwvwfwvwhwwwxgvwxwwwfuxxxwxvwgwxwvwwwxEeewwfgwfUfvwgvwgVVfwgxgefwwwwvVvgwwwwvwwwvwvwgvwwwwwVfVwwwgguwvwwghfwxwfvgxxwvwwwxvwwwwxwxVvwwxxghwxxwvFevwvwUdvwwgwhgvWfwgwwgVwvwwvvwwgwwwwffvhgwxgwwfwvwwgwvxwwVwwwwWvgxxxwwgwfwwwxgxxwxwfwwwgxxxxwxwwUuvvffvvdguvfwfEUvwwwwfvfwwugwgwvxVvwwxwxweUTvvfwwduvwwhwgWfwwvhwgvwwwwfvwwwxwvwwwwVwgwwgwxwuwgwwwvxxwwWvvxxwgewxwxxxwxwxwxxgVwwwxwxwgxxwgvwwgxwxwwwxxxxwvxxxwwhweVfvvwwwwvwwwVfgvwwxwwWwgxxxevwxxxhgfgwxxxvwwwwggfwwwwwgxxxxwgvXwxxhVwwwxxgxwxwxwwwwgxwwxxwvxvwgvvxwxxvwwfvwwxgvwwxxwxwvwxwwxxwxwgwxxwvxwwwwfwxxwfxxwxwwwggwvxtwwwvvwfwVWfwvwgvfgwwvwwvfvgwwwwvggUvfvgwxwwwvwgwwwwwwvvwfgREvgwwguwwwgcVvwxvvvwwwwvvwffuwvwwwvxvvwvwwwxvvwwwVWfgwwgwwwwwfvwgxwwwwwwwwwwwwgvvwwwvvwvfwwwwvwwxwwvwguwwwwwvvvfwwwwwwxwvuxgvvvwwwvgvvwwvxvwgvfgwgcVvfvwgvfwwgREvhxwufvwwwxxwwwfvvwwwwvwwuwwwwwwvvwwwvwwwxvxwwwwwwhxwXwfwvwxwwxwwgvvwxwwvxwxwwxwxwvxwxwwvfvgvvwwwwwwxwufvwwfwvuexwvexgggwvvvxwvvwwwvxwvwwguvwxwwwwwwwwwvuxgwwxxwxwvexgxwwwgwvvxwxwvwxfxwhwwwhwxwvggUvvwfwwwvvvwwwfwxwwggwvwgwwwwwwwwwwwwwvvwwxwvfvgfuwvwgvvwwwvvwwgvvwvvvxwwwwuvwvwxewvwxvgvvvwwwxwwxwwwwwvwwxwwvxwxwwwvwxxxxwwWwwwvxvvwgvvwvxwvvwwvwxewwwwgxwxwvwgvvwvvfwvwwwuwwxwwxwvxwfxwwwvwxwwevxvgwfwxwxhwwwwwwwwwvxvwwwwxwvwwhwwwvgvxxgvgwXwwvwwxwwwwxvwwwvxwguvwwhvvwvvwwwxfwxvwwxvvwwwxwgvvwwxwwwxwwxwwxwwxwwWwxwxhwxwxfvwwxwxwhwvvwvwwwwfvvwvwwgwggwwwwvfwvwgxwwwwwvwwvwwwvgwfvvvwwvffwvxwvwvwwgwewvvwwwwvuwwxwvvvvgwwwxwuwwxvwvvxvvvwwfVfvvxwvvwgWwwgwwwxxgvwwwwwwwvxwfwwvwvvwwwgvvwwvwvwwvwvwwwvgwhwwvvwwgwwwwfwvfwgvVfvwvwwwuwvhwwwfvwwhwgvwwwfvwvwwwwgvwxxhfwvvwwwvuwwwwvgwwgxgxxwfwuwwwxvvxhfvwwxwwwwwwxvvwvwwwwwvwxgfwwgwgvwwwvgwvwwwxwwxgwwgwwxwxwwxwwvvxwxgwwwffwxxvwwxwwxxwwwxwgwwxwgwwgvvwwwxffvwvwgwvwwgwwvwxwwxxfwwggwxwwxwxvuwwwwwwwgvgvvwwggwxwvvwwwwwwwxxxwwwwwvwvwhwwwwwwvvwwvwgwwxxwxwxxghwxwvvwwhwxvwvwuwwwwwwxwwwwwwwuwwfwuwwwwwgwgwwwxwwwxxvhgwgxvwxwvxwxwxxxvvgxwgxwxwxwwxxwxwfwwxwxvxxvvwxvxxwwxxwvwgvwwxwwwxxwwwvwwxvxwwwwxxxxgwwvvwwwwwuevwvgwfffwvuwvfvggvfwwvUvfwvwvvuvwvgexgwfvwuvvwgfgweuvfwwwvvvwvffwffufvUvvfWevugwfvUvvggvVufvwffvwfwwwgvgfgvvfwwfWwwfwwWvvtwvVfwvfwvuvwuffvgevfgvvVvwwxvwweuwvvxxvWwvwvwwgxxwwfgwgvgffvwffvwfvwgwgwwxwxWwgwgvvxvgwwewwwfwvhgxwggwxwwwxwvfvwvfwwfVvevewevGfffvwwfewewWwfvfvvvvwwfwvwwwvfvwwgvwwgwwewhgwfwwwwxwfwgggwwfgvgxghggwfWxfvvxwfggwwgwuwgvwxhxwwwxgxwvxwgvvwwwwvfgwvvwfvewWwgwggvwvwvwgvvvgwxewwvxwwgwfgwgwgwxwvwwvwvwwwwwwvwvxggfwhWxewgwfxfwwwwxwxxwwwuxvxxgwxxxwgxuewwfefwvfffvvwwvfeffvvegvfggvxvvwdvvwewwwxWfgvhvhvgwxxgwgVfvvfwwgfwwvwwwvvfgvfgGwvxwggvvVuwgVwwvwwwhvwWxWvghhwfxwwwwwwwwwwwvxwxxvgwxwxhxwxwwxgwxvxxwwxgxwfwwxfvwvvwgvgwwwwwwwwxwwggwwxxvxxxwvwwxxwwvxwwwwwxWvwxxxfgvwwwwfvwvwwwevvgwgwgwwggwvwvvwwwwvwfwwwhwwgwgwgwwvwvgwggxwfhwwvgvwgWwGxvwwgwxwwwxwwwxxwwxwfvwwgwwgwgwhVvvgwvwxwwwwwwgwwvxwwwwwwwwxwvwwxxwwwwvxwwwvgxxwwxwggwvxwwhxgvhxgwvxwxxvwwwwwgwxwxwwxwhwxxhgwhxwwgcffvvwwvfwgwvffVfwwffwvwefvvvffwwwwwwefVwwwwxgvwxVfevvvfwfeewvvuwvffwwwwvfvvvwwwgffEgffwwfwwvvvfvfwgfwvwwwwweVvvfgvvVwfvvwUVefwwwwgfwwwwfVevwwvwxhgvvvxwxwxwxxxwVvfwfdwvfwwwwgvfwvwwwxgwwwugwvwwwwwwwwwwwvwfxfvgxxwwVvuwvfggfvwgwfUvwwwvvugwhffVfwwwgwxwvwwUvvwwwwwvwxgwwvgvgwgxwwwwwvgwvxvwwfgwwxwvgwwxgvhvxxwxvxwvwwhwwwhxgxgxfFdfvvvwvwwwxxeSvvwgvxwwwWvgwvvwfgwwWwwwwvgwwwgvwwvwwvwwwwwwwwwwwxwvgwwwxwwxwfgwhwhgwxxxwwxvwxwxxwwwffvfwvgwwvwxUgdvvvwwfwwxwVVewfwvxwwxwxvvvwvwwwVVSwuevvvwwwwddvwvexwvgvwvvgggwfwwgfxvwwwvgvfwwuwxxwxvxwwwxxwxxfwwgwxwxxwxgvwxwxxvgvvxxwwxwwwefvwwwxvxwwwuwwvhxvwwwwvwwxxxwxxwxxxwwwwwwwffvuuuwwwwwxvewvxwwwvwgvgvwwwwwwwxwgwwugwvwxwwxxvwxwwwvwvwwvffvwwgwwwwwwuwwvhwxwwwxwxgwvwwvxvwhwxfvvwvwwvxxwxwgwfwwxwxgxwwwwgwxwwwxwwxwwxgwwwgvvwwwxvwwfwwwwwwwwwvwwwxxwwwwxwfvvvwvvwveVVvvwvvvwggwgeVuvvgwwwfvfvgvvgwgguxfvwwvwwvwvwveveevwwffvguvfguewvvvwwvvwwxwwwvfwwvwwwwvvxwgwwwwwwwwwwhxwwfvxvfuffvvwwvvvwvwgfvvwwwvfgvvwevvwvwwwwvwxwwwwfgwwwuwwvwwwfwwwvwxwwwwwwgwwvwxwvwwwwwwwgwwxwwxxwgvUffuvwvvfvfvuvweevvwvwvvggwxvvvvvwwwwgwwxwwhvvvwwxwxgwwwvwxwwvwwwggwwhvvwwwwxwwhwwwwwwwwwgwwWxuxwwxwgxvhwvvwfwwvwfuvwvfwvvvvvwwvwwgwgxwxwwwgwvwwgwhfgUwwwxwwwwgwwwvvwxwwwhwhgxfwgxwwggwvwwxwvwwfwggVxwxxwxwxxwhvwvvxfuvvvwwwvvvwvwvvvgvvvvvwfvvvwvuvvwwwwwwvwwwxwvhvwwvgvvgwuvvgvvwvvwvgwvgwwvxwwwwwwwvwvgWWfwvxxwwxwxgxwxwwxxwxxxwxwwvwwwwwwwwwwvxwwwwwwwwxxxwxwxxwwvwwwwwwxxwgvwwwwwwxgxxwxwwwxwwwxxwuwvwvvwxwwwgxxwwxwgwgwwxvvwwxxgwwwwxxxwxxxwwgwhxvwwwwwvhhgvwwwgwxgwwgxvxwxvwggwvgWfwgwxwwxxxhwwwwxwwxvwwwxwwvwwwwwwwxvhxxxxwwwwxxwwwxfwgxwwwwxwwwxwwwxwvgwwgwwwwwhwxxfxgxwwwxxwxwwwwxwvwwwxfgfwfwvwwwxvevwfgwwfwhvvwwguvgwgvwwxgwfwwwxwwwggwfvvfefvvgvfwwggwdevwgvwxwvwwhwwwvvwwgxvwgwhfwvwxwgwwvgwfgvwffwwwwgvvxfwwwwwwwxvgggwxwhxgxwwwwvwwgvxvvfwwxwwhuwwWvwwwwwwwxwxxxxwwxwwwwwgwvvfwwuvwwgffwxwgwdewvwwwgwvwxwxxvwxggvvxwgvgwwwwvgxvvvwwwxwggwxwxhxfvwhxvwwwhxwxwxgwwwxhwvwxwwgwwwxgvwwvfvwvfwxguewwgvfvwvhwfwxwwwgwvxwvxwvgxxxwgwwwwxwwghxwwvwwgwwxgxxxyxwwvwwvwvxggVwwufwwgwwfwhvwvwwwwwvgvvffwwwvwhwgwwwvvwvwvwvwuwwfgvwfwwgdvwwvwgvvwwwxwwhwwwwwWxgwvwwvwvxwxxwwxwvxxxwwxwwgwfxgxwxxhxgxxwwwvwwxxwvwfwgwvwgwvvvwwwxwwxxwwvxxwwxxxgwwwwwwwwuwwxvgvwwwxtwwwfwvwwvvwwxvwgwxxxxwvvwwwxvwvxwxxxwvwhhwgwwhwwxxxxxxxwwwxhhwwwxxwwwxwwxwwxvwgwwwhwwuwwhxhxwwxxxwwxwxwxwwwwxxxvxvhxwxhwxwwxxxwxwvvwvfwwvwxfvvwxgwwwwvwvwxwgfvwwwxwwwwxvvwwwgwgwxwvgwffewgfvvfvwwwwvwwwwwgwwwgvvwugwwfwvwgvwvfxwvwwxhggwwvVfvwwwvfwwgvvwgwwgvvwwvwwxwwxwxwgxwwwwwwWvvwwwxvxfwgwwwwwwwwvwuwwwvhxwxwwxxvwwwfffguvwffwwgvgwwwwvwwwwwvgfvvfxwVwwwxWwwvvwwwwxgwxwhxwgfwvwwgvWwvwvwxwwxwxhxwwxwxxuvwxugfwwwwwxwxxwghgxwfuwgfwvwvwwwwwgwwwwggwvxwvgwwwvxwxwwxxwwwwxgwgxxxxxwwwwfhgwvwwvhxwxwxxwwwxwwvxwxgxwxvxwfwwVfewwvwvwvfwvwwwxwwwwwvvwwwwwwxwwuxxwfvwwvwvvwwwwwfwwwwwwvgwwwwvwwvwwwwwxwwxwhwxwwxwwgvvwwwvvuvxwxwfwwwvxxxxwwxxxxxxvwwwvwgwwvvxwwwwxwxxxwxwwxxggvvfwvwwwvwvvwwwwvvxwwxvxvvwvwwxvwwwwvwvgwwvxwxvxxwhxwwxxgxwvxwwxxxwxxhhwxxwwgvwvgwxxwuwxxxxvxxxwwhwwwwwvwxvxwxgwwwxxwxxvvwwwwwxwwxxsgfwvffffvvggevfffgfwwwwfevvfvvfvfwfevvwvgwgevffvwxwxxwvfwvvvvwfSUvvvvwvgwxwwfwwxuwgSUvvwwvwwgwwwfvwxuwwwwwwffgwfffvwwxvwvfffvfwvwgwxgwwwwwwvggwwwgvwvwfvfevvvvvvwxxwwwgwwwewwwwwwwgwvwwwxwgwwxxwwvwvwwwwwvfwvvwwgSUvvvvvfwwwxwwfwwxuwwfSUvwvwwwwgxxfvwwxuwwwxwxvgwgwwwwwwggwwvhwgwwgxwwwwwvwwwgwxwwwwgwwvwxwfevvvvwvwwwvfwwfvwwwuwwwgwwfwvvwgvwwfvxwfwwvwwvxgxwwwvxwvwvxwwvwgvvwwxwwfwvwgxgxwvvxxgwwgwwvxwwwwwgvwvvvffffvwwwvwfffvgvvwgwwwwwwvwwxfvwgvwwwxwvxxgxfevvvvvwvvwvvxfvwwuwwwvwwwvwwwwwfwwgwgwvvvwvwwwxwwxwxxwwwvxwwxwwxxhwxxxvwxxwwxwwwxxxgfwwuwwwwwxvwwxwwwxwxxxwxvwwwvwxwxvwwxwwxfevvwwvwvgwxffwwuvwvgwxwhwwwwvwwxwvwwwwwwwwwvwwhvwwxvwvvwwwxwwwwvwwhgwvgwwwwvxwvwwxxwggwwvwgwvgwvwwxxvwwwvuvxwwvwgxwxwwwwwwwxxwxwwwxxwwxwxwwxwfxxwwwxggwxgfwxwxxwwxwwxxwvxvwwxWvvwwwxfgwvwwfvxwwwffwwvwWvwvwxwwwgvwwVxvxwwwwxgefwvwweevwwvwfgwwxwvwwgvwhvwvvwwwwxwwxxxgwwwgvxxwxxvwxVffvwwwvwxfvggVWfwvwxwwwwxwxvwwxxxxhvwgvwgvwwguwxwgwwxgwwxxwwxvwwxgwxxxwxxxvwxgfwgfwwUegvgehgwwwwwvwgVwwWvwwffwvwvwwxwhwwwwgxxwwxxwxxgfwwgwwwVvgvgwhxwxxxwgxwwWxvxgwxxwwwxxxxwxxxVfwWfgvvwufwguxxWwwwwxgfwxwuxxwguwwxxwwwhvxwwWwwwWvwwxgvwwwxxwxhwxxwxwwwxwwxwwwxfVfvwgwvxgwhffVfxxvwxwwwwxwxwwwxvxxwwwwgwwvffvwwwwufgvvwwggvhxwgwvwxvwwvvwwxxfwxxgwwvwwxwwwwxWvwwwxxwwxxvwhxxwgwxuxxvwwfwxxwxxwwxxxxxxxxxxggwgvfvwvxuvwxgwwwwgwwxxgxwwvwwwwxwxxwxxxwgvvwgvwwwwwxxwxwxxxwxgwwwxwhgwxxwwwxxwwhwxwvwvwxxxxwwxxxxxxxxxxxwxwwhwggvxxwxxxwuggwwvwwwwwwwwvwwwfwwwwwvfugwwwwvvwwwwvUfvvvwwgwwxwhvewwUfwvgwwwwvevvwwwvwwxwuUfwuuvvwwxwwgvwwfwwfwxwxwwwfwxwgwvwwwgwwwwwwwVgwvfvgwwwwxxgvvvwwwwgwwxwwvwvvwwwwvwvwwwwxfvwewwwwwwwwwwwvvwxwxwwvvwwfvwgwwwwwwUfwgwwvwgwwwvefwvvwwvvwwxwwvwvwgwwwxxxwxgwewwwgvwwwxvvxvwwxxwfgfgwuwwwwwXxxhxvwWwxgvxwxwwwfwfvwxwxwwewwwgwxwvvgwugwwwxxWwgwwwgwxwhwxxvvwwxvgxxgwwwxwwxwggxwgxwwvxgxwxwwxwwgwwvhgxxwvwvvwwwwwwfwwgvxwwwwfwvvwwvwwwwxwwvvwwwvwfwevwvwwwwwxvvxwwwgxxwwxwvvvwvfwwwwgwwxwxwvwwxxwxwwwwwxwwvwwwxxvwwwwxxxwwxxxwvwwxxxxwxwwvwwvxwxxwwxvvwwwwxwxwgvgvvxwxwwwvwwwxvvwuvwxwxxgwwwvwwxwwwvhxgwxxwwvuxvvgwxxvxwgxxwwwwxxwgvvwwwxwwwgwwxwxwwwwwxwwwwxvfxxhxwvwwwwwxxwxwwxVwwxwgxwxvvwwwwwwwvggweewwwwwwwwvvwwvvwwvfvwwwwxwwwvwfvweuwwwwwwwwwwwwgeevvwwvwgvwuuvwwwwxxwwvvvwvgwwwxwwwwwvwwwwwgwgwwwwwvwwwffwwwgwvwwwgwvwwgvwwwwwwwwwwwwxhvwhwwwwxwwwwwxwwwvfwwwwwwwwwvfwwwwwwwxwwwxwvxgwxxwwwwggeevwwwwvwgfwwfuvwwwwgwwwfvvwwvwwwwwwwvwwwwwwwwwwwwwwgwwvwxwgfvwxwwgwgwwwwxgwwwwxhwgwgwwhwwwwxwwwwvwwvwgwwwvwwfxfxwwwwwwwwwxxwwwgwwwxwhwwwwwxwwgwxwwwwxgxvxxwwxwxgwwxgwgwwxwwxwwwwwwvwwwvwxvwvwwwwwwhwwwwwvwwwwwvgwvwhwwwwxwwwwwvwvwfwwvwwwwfwwwwxwgwvwwwwgwfwwwwxwwxwwwwwwwwxxvwwgvxwxwwwvxwxxwwwwxxxwwvwvwvwhxwwwwwwvxvwwwwvwwwvvwwwwwwvwfvwwvvvwxwwwwxvwvxwwvwggvwxwxwwwxwxwwwvwgxfxxxwxwvxhwwwvwwwwwwvwxwwwxwxwxvxwwxwxwhxfwwxwxgwwwwwxxwwxwwfwwxwwvxvfxxwwgwwggwgveggggVwwgwdVgffwwvugvwvUdvwwvwvvgwwevgxwwxgwvvwwdVwvvwwwfwxgwvvwwvwwwfwwfwvweuwwwwgwwwxwvwwwwxwvwwwwwxgfwwwfvwwffgwwwvwVuwggxwwwevwxgxvxvwgxwgvxwxgwwgwwwwfuwwwgvwwvxhvwwvwwfwwwwwvxwwxxhwvwwwxxwwxwwgvwwefvewxfwwwwhwvvwwwvgwugvvfwwVdwwgxwwfwxwwwwgwwwwxxwwhwwgwwwwwwwvxwhwvwwwxggxwvwxwwwwwxwxhxwgwwxwwvvwwwfuwwvvwwwvwxgwxxvwvvwVfwvwwwwxwwxgxwwxvwxwxwghwxwvwfxwwxVxwxwwVgwwxhwwxxvxvgxwxxwwwgfuwwwfgwwwfgfwfwwvvfwfvvwwwwwwfvwwwwxfwwwfwwxwxwwxwvwwfvvwgvwewwwvwwwgxvwgfvwwvwvwhwwxwwwgxgwwwwgwxxwgvwwwvxwywwxwwwxxxxxwwxhwwxwwhwxwwwwwwwwwwwwwwwxxxxxgwfgxvfwwfvwwfvgwwwwgewgvgwwwwwwxwwwwwxwwwwwgxxxwxwwwwwwxhvwwwxwxxhgwwwxgvwxxxwwxwgwwxxghwxxfwwwxxwwwfgxwwvwwwxwwxwwxwhgwxVxxwxwwwwxwxxwwxfxxgwhWxwgffwvfvwwfggvfvwfwwwwwvffgvfwxefWVeVuvvwvggwwvvwwvwvVvxvgwxefgeeevvffwwfvwwevwwvwwwvwwwxffvgvvggwwwvxwhevwwwxwwgwxxwfwxvfwwffwvwwvVvgfwwgvwwxwvfwgfwvfuwwgwhwwwvfwwwwwwxvwxegwwvvwwwwvwwwwwwwwvwwwwvgxxhwxhwwwxwwwxxwhweVgveuvwvvvwwwwwuvwvvvwwvwxwwwwwvfvfvvwwggwwwwhfuggxwwwxwgxwxwwwvvwwwwwwxhxgwwwwwxxwxxxwwwggwwgwwwgxvwwhwgwWwuhwvvgvvfwwwvxwgwxwvvwgwfgvxwxwxwfuwgwwwgwhxxwwfwvwwxwghUwxvwvwwwwgxgxwxvxwxwwxwwgwwxfxwgwhgwvwfgVxwwvxgxfwxwwhwvxwfvxffwfvffwwvVvvwwgvwxxwwwvfvfgvvfuvwwgghwvwwwwxvwwwwwwxfggffwwwwgwwwwgwwwwgwwgvwwxwevvwwwvgwvgwwhwfvvwwvWXfgwwwxwgwwgxxwwxxwwwwxwxwwwxxwwwxxwxxwwwwwxwhwwwwgwxxwxxwxxwwwwwxxwgvwwwwwwwxwxwxvwxxwwxwxuwwwwwwfwwxwvwwwwwhwwwwxwxxwvvwwgwwxwwhwxwwwwxwxxxhwvwwxhhxwxwwxwwwwxgwwhhwxwxvhwgxvwgWfhgwhhvwxwwgwwgvxwwwwwwwxwwxwwwwxwxwxxxwxgwwxwwxwwwxxwwwxwwvxgwwwwgxwwvwvwxxwwvvwwwwwwvwfvwwwwwwwwwvvwveuvvwggvvwwwwwwwwwUfvvwgwwwwwwwwwgwwvvvvvwwwwgUfvevvwvwwwwwwwwwwwwgwwwwwwwfwwgwwgwvwwwwgwhvwwwwwvgwwgwvwxxvwwwwwwwwwwxwwwwwwxwxwxfvwwhwxhxvxxwwwfwvgwvvwwggwwvwhwwwwwvwvwgxwxxwvwxxwwwwwwwvwvvwwwwwgUfveuwwwvwvwwvgwvwwwwxwwwwwvwwhwwwgwwwwgwwxwwwwwvgvwwxwwgwwgwwxwwwxxwwwxwgwgwxhvhwxwwwgvwwwwwwwwwwvwwvwvwwwwxxwxwwwxwxxvxwvwxgwvgwxwwgwwxwxwwwwwwggvwxwwwxvwgwxxxxxwgwwwgvwwwwwgxwffwgwwwwwwwxwwwvwwwwwwxwwvwwgvwgwwwvwwgwgwwwwwfwwgwgvwwxwgwwhvwwwwwwxxwwgwwvwxwwxwwwvhwwvwxxwwvwxwxxxxwwwxwfvwwxwxwwwwwwwwwxwwwxwwgwwwwxwvggggwgwwwhwwwwwxxwwvwxxwwwxwxxwxwwxwxwxxwwxhhwvwxgwwxxwgwwxwxxxwwvwvxwwwwwvhxwgvvhwwwwxwxxxwxwwgwwxvhwwxxwwvwxgxwxxxxwxuUvwfvgvgvvwvfvwffwvwwwxfdwwefwwgvWgvfgwfgwfwwwgTfwTevvvvwvwvggfwwveewufwevvwfVegvwgwvFwvWwwwfVewfffgvvwggwwvFwfGvwVwwvgwwgwvuvwgffwfvewwuUgweufwvwwxffwwfvgfuwvwvgWvvgwwwgvwwwgwwgvWwWggwwxwwwfWvwVgwwvgwwwvwwwgwxvwwwwwggwxwxwwwwgwgwwwfwwgvfvwvegvfvwfEfvwwwwfVwugwfvwVvvwwvwvvwgwwwwfVgeWwvevfwgxwxgwwwxgvwhfwwvwfgwxxwwfwghhvVvvghwgvwXxxvWwvVwhvgxfxwwVvwfvwgwwvvggwfWwguwwvfvwwgwwxwxvwVwwvfwwwxwwggxxfwwgwvwvwwwwwxwgxwvwwxgwuwwwwvwwwXxgwgxexfwvwwhfxwwwhwxwwevwfffwuvvuvwfefwTvgxvwwxvwvwgwvwfwuvvwvxVwfwwvwxwwwwwwwxggvwegvwvwwxgvwvWgwGvxvfxwwwwvvwwwwwhwvgWgwgvwwwxwwXwwwgwvvwvxwgwvwwxgxwgwvwxwwxwwvwwxwwwxwwvxwghgwwwxwwwwxvwwwxwwwwwfwwwgggwvwvwwvgwwwwwxgwwwgxgwwwwwwxwgvwgxvwvwwxVggvfgvfvwvwwxwvwxwxwxvwvwwwxgwxwwxwwxxwwwVwwxwgwwxwwwWwwgwwhgvvwwgwwvgwgxxwWxvxwwwvXwxwwxhwwfwgwwvxxxfwvwgfwwwxggwvgwwwxgwxwwwfhwgxvwwwwxxxwwxwxxxxwggxwwwwwxwgwxwxwwgwxxxxxwwwhgxxxdufueeuvvvfufuvvxvwgwvwwfuegvufvvwvwugvwwwvwwUutfgfUfvfuvgwwwvfwwwwwvwwfeevewvfvwwvwwgwwvwwwwxwxeeuwfUTvuwvvwffvvwwwwwwxdWvvfvvgvwxvvvwefevvfufvuwvfvwvwwwwwwwvwwwwwugwhwvwwwwxUedfgfUVefvvwvwwwffwwwwwgwwwvwveUfffwfvwwwwwvfvwwvwwxxwgfeWggfwvwwxfuwwwxxxvwwwgwwWwfwfvgwwwwxwvwxxwxwxxweEUvwggVvvwvwvvwvgwgwwwwwwedwwgvwxgwxgwwwhwwwwgwggfgvWwwwgwwwwwwwxwwwgwvxvuxwgwwxwwxwgwvxevuvfVdvwwgxwfvvwgwwwxdfuvuvugvvuvvwvwfVdwvgfWvvvfvvwwwwvwwxwxvduuvgvuvwvwxwwvgwxxwwwvvuwgwfuwxxwxxxxgwxwWfxwwwwxwfvwwfvwwxwwxwwwwwhwxgxhwwxwwuffvgvvwuvwwvvwwwxwwvxxwvvwxgvwxwwwwwxwwhwwwwvgwwgugwwvwwwxwwxxxwwvwwggvwxwxxwwwxwvvwvvvuxwgvwwxxxwxwwwxxwgxwgxwwvxxxxwxvwvvwvxxxwgwwxxwxwwwwwxxxwwvwxxueuwvfvvvwfWwdevvfvgwwwvvfweduvfwvwvtvvvwvfvwvfvwvuvvwvvwvgwgwvfwfedvgfuwvVfevfvwwwwwgwwwWgwefufwvVvuvvgwvvvgfvvgggvwwwwxgwvuvvefvvgwwgvugvffvvuggwvwvwwufwvWfvwwwwwfuwxwwgwwwwwwgvwwfufwwxwhwvwfgvfxwwwwwwvxvgwvgwwhwwwwwwwgwwwwvwvvvVefvVevvfgtvUfwwvwgfvffgvwTuvvvfwtvvgwwgwgfuvwwwwuwwxvwwwgvwwvwwffvewggwUwxxwwhwgvhxgvfwvgfwXhhvfwwvgxfhxwxwwgvvwvwevvwwwwwguvvgwtwwgwwWwwwvxwvgWwwwgwvvwwwwwgvgvgxwwuwwwwexwvhwwWwwhwwggwxwwwwwwvvwwgxuxwwwwwgwwvxwwwvevwwuuewvvvvfwewwffveuvggvxwwwgufvwVwvvvwwwuuvxwwvgwgwwfwwfuwwgfvvwvxwwwfvvWwguxwxwwggvwvgwgvwXhgxgvwvvvwgggwwwwvxwwgwwxvxwggwxxwxxxwxvvwwxwwwwxvwxwxwwwxxwwwvxvwwvvxgxwvwwwwwxwfxxwwfxxvwwggxwxwhwwwvwgvxxvwugvvuvwwwxwwgwevwvuwvwwwwwwwvwvwwwxxwwvwxxwwggwwwvgwvwgxwvwwWgggvwxwwgwxhxxwwwwwxuwwwWgvxwwwxgwwhvvwfwwwwwvwwvwgwhwwgvwwwwvfxwxxwwwwxwwxwxxwwwwwwwvwxxxhwwwxxwwwwwwgxxwwvwwxvxxgwwxxxxwxwvhwwxxVuvfVFUuvwwVUdvvWgvwgfWWuvvwgwvvgwggvgwwwwvwwgfuwfvvwfwxxvVgeWuegfevvuffvgfvghguwgwwwgfufdfgvfwvvfgwwfvWwwvxwwvvwxgefwwwwvvggfvffwwwwwwwvwwgvvwwwwxxwwwwvwxwwfwwewfvgveffvwwxwvWggvwfvwwwwwvwwwxxwxwwwvFWfgffVVtewvffvgeuwwggvvfgvxvwWvvvveuwwvwwewgvhvwgwwwwwvvhhWfwgwvwvWxghvxwhxwwgguwgwwxvfWxvwvxvhHhewXwvgfueevwwgwwwgfgfwgvgfvgwfwwwvgvwwwgfvvwxwwwwwwWXUgwwvwwwxgfWwwwWfuxwgWXVgwhwwfxwggfgwwwwxghfhwwwwwxuwgggfewwwvuwwwWuuwfvgvfvwwwxwgvwwvwgwwxwvwwxxgffwdfgvvwwgvuwwggwwweWwwvwwwfwxWuegwwwxxwwwHGewXvwwwwwwwwxwwwwwxwxvxxwgxwxxxxxxhwxwxwwwgwvwxxwxxvwxgwwwwvwwwxwhwxxwwwxwxwwvxxhwxffvvvvfwwvwwgvweggxwvgwwwwwfwwwwwvwxxxgvhwhgvwxwwwwwwwxgugxvgwvwwhWHexXvgwvwWWuxxwgxXXvxvvghwwwwwwwxxwxvxggfwwwxwxxxwwwwxxxxxwvwxxwwhhfxwwwxwxwhvwwxwxhwwwwwwwwxxxxhxxvgwxwvwwwvxwvwvwvxfwvwxvgvvfuvwwWvwvwfgwvvvwfvwxwwwwwwffvvwwggvvwgwwxwgxwxxxgvvvwudvvvxwvwvuwwwwwgwxwwxxwvwxuvvwwwwwvwxgwwwvvwgwxgggVwfffggwwvgwwwvwgvgvvvwwwwwwwxvxwwwwtwwwvwwwwwgvvwwwxwwgwfgvwvwhwvwgggwwwfxwvwxfvfgetvvggwwvgwfevvvwvvwwwxwwwwwfwwwwwwvfwvwgxxhxxgvvwxfvwxwwxwwxgxvxxwxwwggwgvvvwxvgvwwvwwfwwxwuggvwwtvwvggwfwwuwwwfwgwwwwwvvfwxgwwxxwwwxxwwfwwxwgwwwwwvxwwwwwhwwxwwxwwhvvvvwwxwwwwgwwwwwxxhwggfvwwvgfvwwwwxvwgvfvwvwwwwxvwfhgvwvwwuuvwwvwwwgwfgvgwxwwxfgvgxxxwwxgvwxwxxwxxxvwwvwgwwwxwwwghxxuwwwxxwwwwwxwxwwwwvvwxxvwwwwwgxxwwfvwwwwxxxvfwvwuwwxwxxvxwwgxxwxxxvyxwvvwwwxvxwwwwxwWwwxxwgwwvwgvwxwwwxwwvwgxxxxxxffxwxxwxwvwwwxwwwwxwwxxxwxxxhwwxxwxvhxwxwxxxwwwxwwgVfwgvwwwwwvwwgfugwwvwvwwfvwdVgvfuvuffwvfduuvwxxwwwxvvwgugwgwwgwvwwwgvvwvxwwwwefvvwwdvuwguvwwgwwwwwwwvvwwwvfwfvwgvvvwwggwxwwfwwxxwwgvfwwwwxwwvfwvvvgwwwwvvwvwwwgwwwwwgvwuwvwwwwvvwfwwwwxwgwwvvwvvwwwwwfwwwhwvgvvwwvwwwdVwveuvwwwvvwwwvwwwwwgwvwwxxwwgxwwxvvxwwwgvwxwxvwwwvwvwwwwwxxvwwwwhwvvxxhwwwwvwwvwwwwfvvwwgwvwwgvvwxguwvwfggwwwxwwwwwwwxxwgwwwwhgxwxwhwxxwwwwxxwvwwxgvwvwvvfvwwwwvvvgwwwvvwwxwfwwuwvxwwvvvwwfxxwvwwvwwgvwVwwvwvgxwvvwwvwwwwvwvwwvfWwvxfwvwwxvxwwxxxwwxwxwwwhwxwwwvvvwxvxvxwwxxwwgwwwxwvwwvvwvwwvwxwwwwhwwwwwvwwuvvvwvxwwwwxvwwwwxgxwxxxxgxxwwhhXwwxwxwwwxxwwxwgvggwwvewvwewwxxxwwxwwwwxxxwwwxxwxvgwwvxgwwxxgwxwwwwxwxhwwwwwffewwfwewvgvwVvvfVVEwgfWwvgvfvvwvuwwgewuwwwwfEeuwgwvgvwxwvfgTwUvvffwwwevggffVwgwfuuvwxvwfvTguvfwfwvwvffwfxvwWwwwwxwwuggwUwugvwvwwVfvvfvggwwwfwgwgvxwwwxwuwwwwwwxxffvvwefvwwfffvwgxgwgwgxwxgwfvwwwwwwgxwxwgvwvwwvwwwwvVgewfvfvegvvwfwUgexXxfvdvfwfvWfevvwwwvvvwfewfxghwfxxvwwfwghwfwwwvgxghVxwhxfgWXhdwgwvxwwxwgwXwXxfgfwhvxuwffvwwwfwxgwvdvfwWgWwUgexWgDwvwwwwwwVwvwvwwxxvwwwwwwxggwhxUxWvgWhEwWwUxfwgxxwwxwwwfwvxfxevvwvwwgfvwgvwxwefvvvvvgwgwwwwwwwxvvgwgwwwxwwxxwVvwfvgwwwwwweuvvwfvfgfvvWWUwwwvwvvwwxwxwgfgvgwgwgwwvwwwvxwwwwwwxxxvxhwwwxwwxxxxhwwxxwwxxxwwwwhgfxwhwxwxwvwxwwwwxxwxwwwxvwwvvvwgvwwgevgxgwWvvwvwwwwwwxwwxxxxgVgfwgxfgxvwwwwwxgxhgfxgfWhXUwggfxwwvwwwxwhvxhwgWxehwwfwwwwwwxxxwwwxwgwvxwwgwvxhwwwxwwwwfxwwwxvwwwwxxwvxwxwwxxgwwggfxvwvgwwwxxwxwwvwvxgwwwuevwvvfgevwwufwwwfgvvvvwvWfvwvffvvfeugxwveuwfuwwvgwwfvvvwwvfvwvfgdgffvvvvwvvvwvvvwfvwwwvwvVfufuVfvvgwvWwwfuVgvgwuggwwwxhguuwvfVfgvvwfwevefvfVfwftvwhvgfffgfwfgvuvxwvwvvwwgvxgxwxwhfgvfufwgvwxwwgwwwwwwwvgwgwwwvgvfvwvwwhfwgxxwWwgwvwwgwvgwfvwwfWevufvwgfvvvffwwegvfvvvfwwffVvfefwuwvvwgwweefwuggvVwvgwgwWvvgvfvvwwgvwwwwwgwvgxwvvwgvgwvfwgwgwwwvvhhuwWwvgwwgfevfvggfwhvwvvwvvvfGvuwexguWvwvvgwxfwwuwvfvwwwwwfwvwvxwwfwwWwxwwwwwgvvxgwtwwwvvxvvwwwgwwwxxfwfwhxgwfgxfwdvweffwvwwgwuwvfewegfvuuvvgwfvvwfgVwewxwxvuwwwwwhwwxwxggvwvfgwfwwvxwwgwwvuvWgfwvgwfgvggwwvgWwfwwgvvwvvgvwwggxwwwwwwfwwvwwwxwxwwwgwwwwvwwwxgxwgwwxwwvxwhgwgvvxwwvwxwwwxwwwwwwwgwwwxhwwwwwwxwwwwvwvwwvwgvwfwvvfwfvwxfwgwgvwwvwvwvwwwwffvvvxwxuwvxwvfvvwwuggwxgxwgwwwvvffxxwwvwwwXhuxxwxwvgwwwwggvxxxwwwgwxvvwWwwwevgvwwwwwxwwwwvwgwwggvwwwwxWvwwwwxxwwwxwwwwwxvvxvwwwwwwwwxgxhvgxhwwwwwxwvwwwwwxwxwwwhwxgwxhwwwwvwwvwfwuwfvwgvwugwuwwxwwwwwxwvwvvvvvwwwwwxwfwvwuwxvwwvvwwvwvfvvwwwvvvgwwwvwwwxxueufwvuvvxxwwwwgwwwwxffefffVwvxvwgwwxxwxxvwwwxwwwwwwwvwwvwwfgvgwwvwwwwvwxwwxxwxvwwvvgwxwwvwhvwwxwvwefwvvvvvwwgvwwvwwgxwwwxwweuvvwgvwwwxwwwvwgwuxvwvxxvwvwxxwwwwvxwwwxxxwfugwxvwwxgwwvvvwwwwfvvvgvfwvwwwxvwxwwwwevfwwwvvwwwggwvxwwxxwgvwxwwwwwwwwwxgwwxwwwwvvgwwgwvffvgfUwgwwwwwxvwwwxvvvvwwwxxwxvgufxwuwvwxwvvxwuwwfvuvvvwvuwvwwxfwuxxvxwwxwwwxwxwwxxwxwxxfwxxwwwwwwxvxwxwxvgwwwwvwwwwvwxvwvwxwvwvwwxwxxvxwwwwxwwwwuwxxxwguwxxwxxxxxwxwwvxxgwwwwwxxxwwxhwwxxwwxxwfgwwxxwxwxwxxxvxxwwuxxvuwwvvwvwvwgvwvvfwwvgvwwwwFVduvwgwwwwwvgwVfuvvgwFVteVfuvwxwwwxwvvgwwwwUeuvwwxwhwffvvwxwgfvwwxUeuwwwvwwwwffvxggfwwwwwwvwwwfWwwgfwvwvgWwFVtuwwwwwwwwgwvwVfuvvwwggvxwxwvwwgwwwxwggffwwwwvvwwwwwxvfxwwwwwwwwwwwwwwvwwwwwxwhwgwxxvwwwwwwwwwwfvvwfwgxggvUuuvhwfgwwwwfvvwwgwwwwwUeuvhwggwwwwgwwxwwwxfvvgwgwwwwxvWxwgfxhgfvwhwggwgxxwwwwgvwhgxxwwxgwwwwwwwwwwwwwgvfgxwggwwgwxwwfwgwxxxxfwgwwvgxxwwwwwwvxgwvwwwgwwwwwwxfxxxgwuwwxwwwwgwvwvxxxwvwfxxwxvwVwwgvvwvVwFVtuvwwwwwgfwwwVfuvvwwggwwxwwwvwwgwwwwfwfgwwvvvwwwwxwggwxwxwwwwwwwwgwwvvhwwwwwwwhgwxxfxxwwwwwvwxxwxwwwwwwxwxwxxxwwxvwwwxxxxwwxwwwxwwwwxwwwwwxxwxxwwhwfxxwwwxwwwwwwwwwwxwggffghwgwwwwwxgwwwwwxwwgwxgwwhhxxwwwwwwwwwxgwvwhwhwwwwxxgxgwxwwxwxxxwhxvwwwwwwuwwvwxxwxxxxxxwwxxxwwwwwxwggwxxwxwxxwwwwxwxxwwwwwgvwwwxwhxxxwgwwxxxwwxxxwwwvwwgvxwvwwwgwwwwxwxxwwwwwgwwwvwxwwxwwwwwwxgvwwwgvgwwwwwxwxwwxxfvwvfwwwvwvvwwggwxwwwwwxxwwwwwwwxxgfhxwvggwvwwwwwxxwwwxwxxgwxwwxwxxgvwwfvgwggvwwwwvgwwwwwfgwgxhgfwwwwwwxxwfvghhwxxxwfgwwvwwxxxwwwwxxwwxxwwwxxxxxxxxxwxwxvfgwwwwwfvwwgwffwgwwxwvwwwwgwgwgxwxxxwxxgwgxwxwxwgwwwxwwgwgwwwgwwhxwgwwwwwxwxxxxxwwwwgvwvggwwwwwwxwfwwxxgfhxwvfwwwxwwwwwvfwwwwvxwvxxwxwxxwwwxwxxwxwxxxxxgwwvwwwwwwwxfvxwwxwwwxwxxxxxwxfvxxwwxxwxxxwwwwwxxxwwwxxvwwwwffgwwwwwgwgxwxgfvgwwxwvwxxxfwwgwgwwgwgwgwwxxxwwwvwwxwwgwwwwxxxwwfxwxwwgwwwxxxwwgxxwxwwwwwxwxwwxwwwwwxxwxwxxxhxvgxxwxxxwwwwwwxvwwxwwxwhxfxwwwrfwgVgggffgwfFefvvwfwwxwwWugvvwvgwwfggwfgwvwwwwhwwwwwwwwxvxwwwvgwgvvvWvvwfwwgwwwgxwwwwxxvwxwFevwwwwvxvvwgwxwxwxvggwfgvwwwggvvwvwwwvvvwwwxgvwwxewwwwwvfwvxxxxwwgwefvvgvwxwgVwwfwxwwhwxwwgwwwxvvvxwwwffuVwWvgf$CvgwvwwWvgwgWfgewfwFevwWvvwwggwvvwwwwwwVwwwgwgvxwwwxxggwvwwwWwgvwxgwvxgwvwgwhxwwwwwwwvwgxvgxwhxwwwxhhgwwxxxhfWefWvfwgwvwwgvVUwgwWuwwgwgwfwxwvwwwwwwfuwwwwxggxwwwwwwwgwfwwwfuwwwwwgwgvwwxwwwgxxwwxxxwwwwxwvwfvgwwvwgwvvwwgfwvvwwuvwvwvvwfwwwwwwwwVxvhvxwxvwggwfvfwuwwwwVwvxwwwwwwwwwwxwwwhxxxwvwwwwxxwvwvvxwwgxwwvvvwgwgwgvgggvhwgvgwwxwwxwxxxxgvxxwwgwgvwvdwwvwxwwuxwwwwwwwgxvghwxwvhwwxwwxvFeefvffwvwwwwwwfevgwFewwgwvgwwwxwwxwxxwwwggvwgxwgwgvgWvvxwxwwwwwgwgwxvgvgwwwvwxwgWvvwwxxxwwwwxxxwwwxxgxggwxgwwxuwwwgvgwvwdwwvgwxhvxgvwwxwwvwxwxwwwxwwwxvwwwwwwxwxgwgvxxwxwvxwxwxwwuwwGvvwVvwwvgvweuvxWvvgvwgwwxwwwuwvgwwwwgvwhwxwwxxwwgwfgvVwgwwwwxwvgwhwvggwwvwwwxwwxxxxxwxhxwgwvvWvwwgwwvwwxfwwxwxwxwgwxxwwwwwwwwxxhxxxwvwwwwgwwvfwwgwxwxwxwwxxwwxxxxywwwEevwXfwffwgggvggvVvVFWVgewvwfwwwwvwwwwxgwgwxxfwwwwwwwwgxgwWvgGwfgwwvwwxwwgXVxxhwwwxxxwxwhwxwwxhxxxxwxhxwgfvwwwxwfvwwwwgvwwwxwxvwvwgwgfwwxxwwxxgxvxxxwxwwwwwhwwwwwwwuxxxxwwwwvwxxxwwxxxxxwwfwgvxfwwwwwwwgwwfwfwggwwwxxgwwwwxwxwgwhwhvxxggfwxwwxgvwxwwwxgwwwhxxxvwwxhxvxxxxwwwxxxxxxxxwxvwxwvvxwwwvfwwvhgxgxgxxxxwxgxxwwwgwvwwxxvxwwxxwwxwgxxwxxxxwxxxxwwxhwxfgwwwgwwwvgwwgggwwwhvwwwwwwwxwxxxwwgxwwxwxwhwgXwwwwwxgwwwxfwwxwwxxxxhhgghhhxxwwxxxwhwgxxxwxhxhwwwwxxxgwxxguvxwxxvxwhXvxvxxwxxxxxxwvwwxwwxhwxhgxxwwxwxwwxxgugxxwhxxxwxwwuwvfuvfgfwwvgwgvwvvgfwwwwwwfwwevvwegfufgwwxvgwwvwwgvwwwwwwwfewwgwvwvvwvwvwwwvwwwwwvvfxWwwwwxwwwwxvhwwwwffuwvvwwvgwfugwwwwgwvwvwwggffwvwgwgWvwvxwxvwwwwWvvwwwvgfxvgwvwwgxwwgxwxwuwwwwgwxxxwhvxxwxwhxxwfeffuVeufVvuwvfggVvuwghfgevfhgxVeVfvffefwvwfwgggvvfwgwVwwgVxwwgffwgfwwwvwfwgghfgfwxxggxxwwwxwxwwVxwxwxwwgvwwwwgxwxwxgvfUvvgvwgvvvfgfevfxfwfvwfwwwxxgfwwvwwwwuwxgwwgwwwvxgwvwwhgvwwwggxuxwxwwwwgwVfwuwuhxgewvxxwwwwggwwgwxweuvwwgwwwwwvvwgfgwWgggwwwvwwwgfvwfvwxwhvvxwxwwwwhwwwgvwwvwvvxwwwvfwvwvxwwwxgwxwugxvwwwxwwwxxwghwxxgwwxwggwvwwwwxgvvwwxwxgwwxwwwwwxxxwwwxgxxwwxwvwwwwxwwwwhwwwvxwvwwxxwwxxxwxxwwfWfugfvggvvgwwfwgfggxggvgvxxwggvgwggfwxvwgwWxgwgvvwwgxwwwxwwwgvwwgxhvwwwwvxggwxxxwwXWxwwwwxwggwgxhhwwwxwwwwxwgwwwwfvvgwwwwgggggvwwxwxwvwwwwwwwwxxwwgxxwwxwwwwvxwwxgxwxgwwxwxvwwwwwwxwxwgwxwwxxuWwvgvwvuvwwfgwggwgwewwufwfvuwgfwwwfewwvguvwgffvwwfwgfvwwuwwwwwwwuuwwfwvwfgwvwgwwfwghewwfgwwgwvwvwwxwwwwwwghxwwwwwuwfvwvwwwwvgfwvwfwvfwwwwwwwvwvgwuvwwxxvxwvwwwwwwwvvwwwwgwwwvxwwwfgvfxwgwvwwwvwwwwwxxwwwwwvvwwvWffvffggVwvwevwWWwufUvggfvgwVfegvvgwgwwxwwffwfffwVufgwwgxgvwwggwvwwxvxWvwwwxwhgfwvxgxUgvwfwwwWvwxxwwwvgwWxwwwgwxwwwffwvwwvfgvwwxfggfvgvgwffwfwxgwvwwxwwxxgxwwwwwwwhwgwwwwwvwwwwxwwwvxwfggfwfwfwwfgwxxwwvwxxwxwwwwwwwwwvuwvgwwvwgvwvfVvwewwvewwvwxwwwvwgwvwgwVwwvvhvwxwwhxwwgwvxvvvxwwwvgguwvxxwgwwgWggvxhgxwgwwwhwwvgwvvvxvwvwgvxuwwvwwvxwwxuxxgwwwwwvwwwwfgwxvwwwfwwgwvwxxwwwxvxwvxxxwvxvxxvffgfgwwefwgwfewvvfwfwgvvwwgvvwwxwvxgvwwWxwfggwfxXgwwwxfwxwvvwwxgWwwvwwhvwwwgxxfwgwgxxwwwxwhvwwwgxxwwwwwwgxghgfwvfwwvwuwguvgwwggwwwwwwvxwgwxxwwwxxgwwwuwxwwvxxwwxwwwwgwwwwwwwwxxxwwxwvwxxxwcvgvgfwggVWfvvwwvgffwWwggWvWwwwvgfgUvwgwwxvwvwwWvVwwgwgfwgwwwwgfwgx6ewvgwvhvwxwGvgwghwwwvwwwwfgwwgvwgvwwwwwwwwgwwwwwxwwxgVWfvgwvwwvvvvfgWwwwggwwwwxwwwvwwvwuwwgfwgwxwxugwxxwvvwwhvwxvvvvfxfgwwgwwxwwxwxvwvgwwwygvwuvuwwxxxwwwwxwxxvgffwGvgvfgWgwwgW\u0014CuwwgvWvfvwfvvvfgWwfwwwWgVxxfugvggfwvWvwgvwwwWwgwghwwwgwwxwwwgvxwxWggwwwvwgwwwwxwxwwwwwwwwhvhwwgwgvwwxgwgWvWwwwvgwwwwxwWvfvggvVwVtwgfwgxwvVvvwwxhvwwwWwwguxvxwwwwvwwwwwxwxvwvwfvvwwwvVtwxfhwwwwxwgxwwWuwxhvwwhwwwgfgUfgwwwwvgwvfgWwgwwgfwgwwwxvfvwwvxuwwwvwwwxwugwxxwvwgwgvwwwwwygwfwwwwxwxwwwxwfvwfghgvxwewuwwxwgwhwxxxwxxwxgvwwvwvwwWgVxwwwvVvvgxwwvxvxwxyxfWfwxxxgwwxxxvwvwwwwwuwwuvuwxxwwwwwwxhwuwwewuwxxwwwxgwwvvxxwWvVwwgwgfwgwxxfugvwhvhvwwwWuwwvwwwxwfWfwxgwvXgwGfwWvxvxwwwgwwwwwwxwxxwwwggfwwwgwWwwxhwxwgwhwxxxgwvGfwXfhvxwwwvxwgfwgxugwwxwvWvwgvwwguxvwwugwxxxwwwxvWvxvxwwxxxxwwwwwwxxxwxxgvwwxgwvxwhwwwxxwxxxxxxvxwwvxwxxufwwfffveevwfwweffwvVVxfWfvggwhwwgwwgvwufwwwwfwwwgggvwxwgwwxvefwgfggvwgvwfgwfvvwwwxgwwgvwgfvwwwwwwwwxwwxwwwwxhwfvuwufvwvwvgguwguffgwwgWvgwwwvvgvwwwgvgwwwvvwwwxwwxwgfuvfvgvgwwwxxwgwgvgwgwwwgxfvvggwgwwwxgxwvwgxwwwwwveVVfgfvvdVffgggveEUvwWWfVVfegwwgfffvVVggwvwfwxwVgwWwWvwGwgwgwgxgveewwWVwvwwggWwggggwxxhggwgxvxgfvwfhgwWwwxwwwfwfwwhhvwwwwhxwwefvweVfwwvvwwwvxfffggfwWvfwgwwggvvwvwvgwvxwvvvvvwvxwwvwwwxvvwwgvvfvxvwwwWvwwwfgefVwwvfgwvxwgxuwxwxvwwxxwwwwwwTvwwVgVwfggWvwgvgvgvVfwvgwxwwgwvwvwwvwwwffxwgxvxwxxhwfveWgwfxfvWwgwwxvwgxwwxwewxgvgwxwwgwgxwxwwxgvvxwxwxwvwvfwwwwwxvwvwwgvwwxxwxwvwwgwxwhwxxxxxwwxxggwgwxvuvwvvxwwxwwvhwwxwxwwxxwggwxgwwwwwvwwwxggwwefevfgWvfvvwWwwwVgfvwwfgfggfwghwggfgwwehxwwgxxwwwvhxwWwwgwvwwwwwvvwgggxwhwwgwvwwxhxvggwgxwfwxewxwGgwghwxwwvgvvxwwwxhwwuwfwWxvwwwwwwxfvvwwvhwfwwvwwwwvwxwvwxwwwwwvwwxwwgxwwvxwwwxgvuvwgwwwwwhwwwwwwgfvwwwwvwvgefggvwwWvvvgvfffvgwwwfvwwwwfugwgvfhffvwxvwgvwwxxwxwwwxgvwwfvfgvgwwvwwxwxwwxwvgvwwvwvwwxxwxxxwhgvwfvfgvvwwwfvvwwwvwwwwgwwwxwxwwxxwwxwwxwwvvvvvwwwwwwwwgvwwwwxxwwwxwwxxwwvxvvwVevgfvgvgvgwwgfvgvxwxggwvwvwxgvgwgwxgVgVwvhwvggwgwxwxwxwwwffwwWwvxxgvwwxxxwgwxwhwwgWxxwhxwxwxvwwhwxxxfvwwgwwwvwwwwxxwfgwwwvwfvvxvxwwghwwgxxwxxwvgwgwgxwwxwwwwwwxwxwwfwwwwwxwfxwxvxxwvxxwwxxxwgwwfvfwwwvwwxvwfvwwwwwwwwwfvwxwxwwwxwwvxwxwwxxwwxfwfwwwvwwwwwxgvwwwwxwwwfwwwxwwwwxwxxxxxxwxwwwwwvwvwxwwwwwwwwgwwvwvvwwwxxwxwgwwvwwwwwxwwvvwwwxwwwwwwwvwwxwxwfvwxxxvwgwwwgwghwxwggwwfgwwxwvwxhwxgwwwwxwxxwwhwggfwhwxwwxhwwxwwxxwxwxwxhvwwvxxwxwxwwxxxwxxxwwxxfwghxwhwxwffvgxxwxwwwwwxwxwxwxhhfxgwhwwgwgvwwwwwwwwwwwwxxwwwvwxwwwhvwgwwvgvxxfggvvxfwgwvwwgwvwggwwvwgwgwwggvwffwxhvwwwvgwggfgwvxvwwwwfwfvwwwwwwwwgwggwxwwwxwwwxfxwwwwwxwxwwfxhwwgxxvgwvgvwfvgvxwfgffwwgvvwwgwwwxwvgwvxxwwwwwwxwxwwwwwxgwvxwvxwfxxfwwxwgwwwwwxxxwxxvxxxhxwxfwvgVegvgfgwwxgggwggggfvfgvgwvWfwuwfwgfggfwwgwwWWwgwhwwwwwxxxwxwwfgvxwwwwwwgggwxwxxfgfvgxwgwhwwgwxghfxwxgxxxxghgwxxwgwwwfwxgwwwwWwuwxggwwfwxxvvggvwxwwxwxwwvxxghwwwxvhwwxxxhwxwwwWgwuxxwxvwwgvwxwxwwxxxxxwwxwfwxwgfxgwwwwwwwggwwwwggwxwwwwwwwwwhxwfwwxvwwwwwvfxxwwwxxwwwwxxxwwwwwwxwxwxxxxxxxxxxxxwwgwxwwwvxgwwwgwwwxwxwwxvwwwxvxxxwwhwxxxgwhwxwfwwxwxhxxxwxxxvxxwwwwxxxxgwwxhxwxwhwgwfwwfwvwvvgwwxxxggggwxghwgwxxwwxxwxxxvwwwwwwwwxxwggxxwwwwwvvwwxxwhvwxxwwxwhxhhxwwwxwxwxwhwvwwxgxwwhwhwwvxwwwxwxxxwwxwvxwxwghwwwxxgwwvwhwxwxwvxwwxwxwwwwwxxxwhwwwwvgxxwwvxxwxwwhxxuwwgvgvvuwwwxwwwwwwwvwxwvvwwWwvwwwxgwwwwwxwvxwvxwwxwxwwwwwvwvwvxxwwwxxwxwxwwgwxwwwwxxwxxxwxxxxwvwgwgwwwxwgwgxxwgwwwwxwxwwxxxxwvwgwwwxwwxwwwwxwwxwwxxwxVevgvgwwgvgvwvvwwgwwwxwxwwxgvgvfwwwgVgVwxwwxwwxhxxwxwwgwwgvwwwwgWxghxxxxwxwwWwvhfxwxxxxxxxxxxfgwgwvwwwxwwwwwwvxxwhvxwxgwwwxwwwwwwhxxxwwwxhwvxgwvwwgvxxxxwxwxxxwwxvxwwxxxxgxwxwvwvwwwvgwwgwwvwxxxxwwwwxxxxxwwgwvwwxxwwxwwxwxwwwwwwxwxwwwwwwxwvxwwxwxwwxxwvwwxwwwwxxwvxwwwwwwxxwwwxxvgwvvwwwxxwwwwgwxxxwwxxxxxwwwwwwwvxwwxxwhvwwxgxvhxxhxgxgvwwxxwgwxxxwxxwwxxxxwxxxxxxxhwxxgvwwwwxwxxxxwxxxwwxhvxxwwwwwwwxxxxwwwwxxxxxwwwgvxxxwxffvwffwwfwwwvfwwwwwwwwfwwwwgvwgwxwggwvvwvwwwfVvvwWgwwvwwgfvwwwwvwvwwwwxwwwwgwvvwwwwxwwvwxwwwwxwxvvvwwwwwwgwwfwvwwgwwghvwfwwwgwwvxwxwxwwwwxwgwvvwwwwwwwwwxwwxwxxwxwxwwvwggvwwgUwUfwwwGvvwwxwgvwwvfwwGgwvvGwvgfgvvwwwwgwwwhwvxfwxwvvxvgwwvwwwVUwwgwwwwxwwwwxxxwwgxwhhwwfxfxwhxxxgxwxxWvwvWwvVwwvwwwuwwvxwwwwxvwwwuwwvwxwwxwfwwxwwhwfwwwwwwVwwwwxvwwxwvxwwxwuxgxwwhwxwwwwxvvwwvewwwewvvgggwvgewgvwwwxwxwwwwvxwwwxwvxwwwwwwwwgwxwfwwwfxvwvXgxwWwxwwwwxxwxxxwwxwwvgwvgwvwwwgwwwwwwvwwwxvxhwvxwxwxwwxxwwwwwwwvwwwwwxwwwwwxvxxwwwwwwwxwxwxfvvwdfgwvvwvwwwfwwxgwvxuxwwwwwwvwwwwwwwwwhwwwxwgwwwhhwxwwvvGfwfxwxwvwwwwwxwhwwvwxWwxxwxxxwxxwwxxwwwxwwwxwwgvwwwvwxwxhxwxwxwwwwwwhwwxwwwwwwvwwwxwxwwwwxwwwwxwwxwvwuwvVffwfvuwUfvgvgwvfvwvgwgwwwgvwgvgwufgwwxwwwwgwwggvwxwwwwwwxwfewwvewhvwggxgwvwwxgwxxwvwgwwxwuwxwwwwgwwxxwhwwwwVvuwwgwwgvwgffwgfgwgwVfvwwwvwwxfwvxwwxwxgvwwwvwwwgxxwgvvwwwwvvxvwgwfgwwhwwfxgxgwxgwwwwxxxwwwwxgwWwwxwwVfffUVeweVfvefffWWfvxggfffgwggwWVWfvfgwvgggwwhwgVfgghgxVgvwWwgxwvffxgvwgxwwwhwwWgfhfxxxwgvwwgwwgggwwhwgxxxxwxwxhwgxxwxwxwhhwwVVvvffwgwwvhwfvvgfwfhfwwgvwvwgvwffwwwvvwxwggxwWgvxwgxvwxwwxwgwwvwwgwwxwwfwgxfwwwxwwwwwxvwxgwwwgwwxfwwxxWwxxwwxwwxwevvgfwgwfwgvfgugwwwgwxfuwxwwgvggwhwgwgwwgwxwxfwvxwwxxxwWvwwvxwwwxgwwvvwwwgxwvxxwxwvgwfghxxxwhwgxwxwXxxwwfwwwwwfvwwwwxxwwwvwwvwxwxxxwxxgxwwwxxwwfwxwwxwgxwgxwwwwxxxwxxhwwwxwwxxfWVvwvggvwgvwwwVffghgggwgwwhgwwfvgwfhwwWwwxwhvvvwxwwwxfxwvxgvwwwhwghwWvggwxvwwXggwgwvwvwxwXwhwxxxwwwgxXgxwwxwxxffvwwwwwwgwwwgfwvxwwwxxwvwghwwhwwwxxxxwxwwwwwwxwvwxwxghgwwwvxhxxwwwwwwwxxxxwwwxxufvwwvwwvvwwgwwwwwfwwvWfwvfwgfvwvgvvwgwwwwxwwwwvfwuwhwxgvwwxvxfvxwwvwxwwwwwwfwwwvxvvwwwwwwxvwxxwwxfxwvvuvgwwvxvvwwvVfgwfwggwxgwwxwvxwxwvwvwxwwwwwvgwwvvwwwwwxvwgwxvwxwwwxwwvvwwwfxwwwxwwfvwwwfwgVvvvewgWVgggvvwvwwwgweggggffwvwvwvwwxgVfvggwgwhxxwvxwxwhwwgggwwgwwxwwwwwhhhfwvvwxxgfwhwxwxwxhghfxwxgwgfwffwewvwwwwvwwvvwfwfwvwwwfwwvwvwwvxxvhvwwxwwwxwwhwgvwwwwgvwwwwvxvxgwfwwgwwvwwxwwxwwxvvwwvvwffwwwwfwgwwvvwffwwgxwvxevwwwvwwxxwwwgxwxxwwxVwvwgwgwwxwxxwwgwwxgwxgwxhxwwxwwwwwwwwvwwwxwxwwvwwwxwwwwwwxwwwwxwxwxxwxwvwwguwwwxwguwxwwwxxxwhwxgxwgwxfvwwwvxfwwfwwwwvwvwgwwwggevwvfvwwwwgwwwwwvgwwhvwxwwwxwwxwwxxwxxxwwxgxXwvgggwxxghwwwwwwwwwwvvwvxxxxwwxwwwwwwfvvwwxwwfwxwwxwxwxwxwfxwwxxwwwwwxxwwwgwwwxfwgwxvfwgwxvwwffwvvwwwgwvvgwvfghwvvvvwwvvwwvwvvwwwfwwvvwvwwwwvvvvxwwwwwvwwwvggwhhvwwwwwwwxxwwxxwwwwwwwvwwwvfvwvwwwxvwfwwwgwwwwwwwwvwwwgwwwgvvwwxvwwwwwwvvxxwwwxwwxxwxxwxwwwxwwwwxwwwxwvvwwVefWggugwgwfwvwfwfwWwugwgvfvwvwgfwfvwwfffvvfgwwwwwwwwwwwvvgwhgxwwhwvgwwxwxgwwwwwxwwwgwwxxghfffvvxxxgvwfxfwwvvvwwwwwfwfvgwxwwwfgwvvwwvwwwwwwxgwwwwwwxwwxwfwwwwxxxxxwwwfvwxxgwgwxwvvxwwvwxwwwwxwvwvwvgvwwfvwfggvvgwxwwgffvxvvwwwxfvwwwgwwwwwwxwwwxfvwxwgwhxggwgwxfwxfxxwwhwwwwxxxwwvwwwxwwwgwwgwhwwwwxxxvwwxwwvvxwwhxxwwwwxxwwwwxwwvxwxwxvxxwwwxxwwwgwgwwgwggvwxxuuwwxfwwwhvgvwvwwwwxwwwhwggwfgxwgxxgxwgvxwxxwwWgwuxwxxwwxhxwwxwxxwxggwxwxgvxxgwwwwwwxxwwxwwfvwwwwxwvwxhwwvxwwwgwwgxwwwxwwxxwwwwwwxwwwxxwfwxwfvgwwxxwwwwwwgwwwvgwwgvwwxVewwgvfvvwwvwwvgwwwwwwwwwwwgvfvvwwwwwvxxwxxxwfgwwwxwwwwgvxwwwwxxwwwxwwwwwwwvgvfvwwwwvwxwvwfwwwwwwvxwwfwwwwwxwwwwgxwwxwxxxxwxxxxxwwxxwffwwgwvVuvfxgwwwwwwvwwvwgggwwVefwgvwwvhwgwwwvxwgxwxwwwwwwwwwwxwwwxwwxxwxwwxwwwwwwwwwwwwwxxxxxwxywxwvfvwxwwwvwwwvxxvggwwxwwvhwvwvwxwwwgwwfwwwxwwxwvwwwxxwxxwwxxxwxwvwxwwxxwwwwwvxwwvvwvgvgvvwwvxwvwxwwwwwgwwwwxvwxwwxxwxxxxwwwwvwxxxwxwxxwxwxwxwxxxwwvwwxwxvwxgxxwvwwxwwxvwxwwxxwxvxwwxxwxwxxxwwwywxggvwfwwxvwxhwwvhvggwwgxwwxvxxwwxwxxwwhwwxwhgxxwwxwwxxxwxxwxxxxxwxxxwwxhwwwhwxvwxxwxxwwvxwxwwwxwgfwgxxxwwxwwwxxxwxwwxwxxwxvxwxxwfwxvwxxxxrgggwevfwfgwwgwggfwwwxwwgwwwwgvvffFeffgwvwwwwWuggwfwwwwwvgwwggvwgFewwwwxwgwwxwwgwwhwwfWvwgwwhgwxvxwwwwgwwwgggwfgwfxxwvgfvfwwwvugwwwggfwwwwwwwwwwxVwwwvwvgxwwhxggwfvvwxgvuwwwwwwwwvwfwWwwxwxwwxwwwwvwwwwwxwwwwgxwxeVfgwWvggWvwwgwvwWvgwggegwwWwgwgf$CvvvwwfwwwwwwwWfgggFewvwxwwggwvwWwwwgvxvgwwwhggwgwxgxxfvwwghgwwwhwwxwwwwwwwxxwhVFegfffvwwwwwwVfvgwFewwwfvgwggwwwwwwwvwwhgwggwwwvwwfuwwwxwwwwwgwgwwxwgwwwgwwgwwwgwvxwwxwwfuwwwwxwwwvffgvwxguvwwwfwfwxxwwwgfvwwwwwwgwwwwvgvxwwhxwgwfvegwxwxwxwvxwhgwxxvwfvvwxxwgwxwwxwxxxxxxvwwxxvgwvfvwwwegvhxwwwgwgwgvgxxhwwwgvgxwxwhwwwgvwedwwvwxvvuxwwwxvxwwwxwwxwxxwfhxxxxwwwxwwwfVuffuwvgwwwxwwWevWwWuwgxxxhwwvvwwghwwwxwxWvvwwgwggwggvwwwwwwxggwgwwwwxwwxwwwxxhwxwvwwxWvvwxwhwwgvwwwxwwwwwxuwwwwxdwwvwvxxxwwwgvggwwwwgwwgvxwgvgxgxwwgxwvxxgxwwgvxwwwwwwwwxxwxxxwwxvxwgvwwfvvgvwvwwxwgwvgvxwwwxffvwvwvggvgfwggvwwwwvgvgwwxwgvwwvwvwwwwwxvwwwwgwgxwxwwwwwwvxwxwxxwxwwgvgwwwvwvwvgwwwxvgwwwwwxwgwgwvvwwwvwwgwwgwggvwgwvwwxvggfgvwxvvwwwxvwwwxvwvgwgwgwwwwwxwwwwgvwwwvwxgwgggvwwvgvwvfgwvfwwvWwwgfwgggwgwgwwvfgwgwvgwggfwwxwwfwgwgwwgwxfxwwwxxgxgwxgxwxxwwxwxwwxxwwggwxxxwxwwgxxwxwgxwxxwxwvwwgwwwvwwwwwwvhvgwwwvwggwgwfxvwwwwwvwwwgwwvwwwvvxwvxwxwxwwwxxwxgxwfvwggvwwxvvwwwwxwwvwwfwwwvwwfwvwwvwvvwgwfwwxvgwwwwwgfwwwwvxvgwwwvwwhwgwgwwwhwgwwwgvfwfwxgwvxwwxwwwwgwvwvgvwwwgwvwxvxxwwxxwgwwwxwvxhxwwvwhwwwwxwwxwxwwxwxwwwwxwwwxxwxwwwwwwxwwxxwwxwwgwwxwwwwxvgffwvwwvxwwxxxwwvwvxwxfxxwwvwwgvwgwhwxgggxvgwwwwwgvwwwgwwxwwwwwxwxwwgwwxgwwfwgvwgwhxwwwwxwwwxwxwxwwgwhwgvvwhgwgwwwxxxhxwxxwxxfhxwxgwwxxgxgwhwwxwxxxxxwxwwwwwwwxwwwwwxxwwgxxxwxwwxwwwwxwwvwwvwvwxwwwxwvwwwwwwwgwvwvwwwwvwfwfvwgfwxfffwfvwwgvwwvwwwgggwVvwfgvwweVgfvvggfvwwwgvvxwwxwxwwwwwxxVufxwwxwwwwVuvwwwwgwvwxwwxwwwwwwvwxxfewwwwwwvhgwfwgvwwwvwwvgwwvvvvwwvwwwwwwxvwwxwxwxwwwvwhwxwxwghwwwwwwwwxwwgxhwxxwxwwwwwWVvvvffgFdVggWfvffgfUeuffWvwggwfvfwfvvwwgvggggwggwwwhwhwvggvwwwwfwxgxwwvwwwwwwwxxhgwwxwwxwxwwxwwxwwwgwxxhwwwwwxwxfgwffwgvwwwvgwwgwwwwwvwvfwvvfwvxwwwwwwhuwgwxvwwvxwvxvwxxxgwxwwwvgxgwxwvvwxxxxxwvwxxxwwgwxggwgwwwwwgfwgwwwWgwwxvgwhxgwwvwvwxwwwxxxxwwxxwxwwwwwxwxvwxwwxxxwwwwxwxxxhxwxxwwwwwwxwhwxwxvgwwxwwwwxhvxwxwwwxxwxwgxxvwxxwwxxxxxwwwwgfhggwxvhwwwggggggxgwwxwvwWxxxxvhxwwwwxwwwwhwvxwwxxwwwwwxwxxwxgwxwxxxxxxwxwwxwxxxwxxxwwxxxxxxxwgwwwwwxxxwwxvxxwgxxgvxvwwwwwwwwgwwxwwxwxxvwhxwwwwwwxhvwxwwxxwxxxwswwwfvfvwfgfgVegwwwwwffwwwwwwwxwgggfwVefwxwwwwwwwwxwwwgvxwwwwwVewwwwwvwwxETxwxwwwwxwwwwwwvwwxwwxwwxxxxwxxxwwgffwvfgwwwvwfwwwwwwxggvxwvxwwfwfvwwwuvwvvwwwwuwwwxwwwwgwgwgwwwwxwxxxxwvvwgwwwwxwwwwwwhfvgvffvgf#2vwfggfvwwwVewwgwgvgwwwgwwwfgggvvwwggfwWvwwwvgwgwwwwxwgvxwffwwwgvwgxvwwwgxwwxhxwxxgxwggwwwgwxxgvwwwwhwwwwwxwwgVegfwvwgfwwffxgwwwwwgwwfvwgfvgwfvvVvwvvwwwveuvwwxxwwxwwxwwwwvwgwxfvwwxxxvxwwgvwwweuvwwwxwwwwghwwxwwxvggfwvfgwxwvvfvwwwwgwvgwvxwxwwwwvwvvgwwuwgwwwvxuwwwxxwwwwwvwvgvwwxwvwwxwwxwwxwvwwxwwwwxwxxxxfvwgvwxwggfwwwvgewwwwxwwxwxwwvwwxvfuwxxwwwxwwwwwwwgvvvwwwuwwwwxxwwwwwwfvxxwwuwwwwwwwwwwxxfvxxwwxffxwVefvvvwffwgwgfwvwxwwwggxwwVvuwgvwgffxvWfwfwvxxwwfvvxwwwwxwwwwwwvwwxwwVvuwxwhxwhwxhwwgwxfvvxwwwwxwxxxggvxwwvwwwwwguwuwggvwwwwvwvwxwwxwuvwfvwwxwxwwxxxvvxxwwxxwxwwgvxxwwgvwgvgxuggwfvffwwwvwgvwfvufUfwvwwwgwhVvugvwweggvwwxfVvvwfggvwxwwvwvfVwvwwvvwgvwgxwfwwwwwxwfvvwgvvvwwwwfvvwwwxgwxwwwwvgutwvevugwvwvwgvgvWfgfvhvwxvfwvuwgwwxwwxvfvwwwwwxvwgfwvuVwvxwvgvwvwwwghwwwvwhgvvvugvwwxwvvwwwxwxwwwffeUggfvfffvgevVeEUvwggUwvwuwwgEdVffwvgfgggwgwWfeVVwwwfwgwgxgwgvfUwvwwUgffwxgwVwvwfwhwggwxhfwgvwwWwfxwwwggwwgwfhgxwwwwwxwvefevwvfevfwfvugvuffwvvgwvgwwxufvvwwwwuxwwgwffwfxwwfwwggwwvwgwwfwgwvwwgxtwwwxggvwfgwwwhwwwvxwwfxwwfwgvvwxxvxxevvwugfwfvgwwvwvVwvvggwgxwwwvwvuvwgvgwgwwvfwWwwwxwxwxwwgefgvgvgvwvwvwgwxgfwwgxggwvgwxwwwxwxwgwwxgggwwwwwwvuvvxwgvwwgwvxvwwgvwxgxvgwxwxxxwwwwxwxwwwwwvufwvwxwwwwfwgwwvwwwwwwxwwxwwwwwxwvwgugfvfvuVgwfwvwvhffvfwggVfxfwhwwwfwwwwvwxgwhwgxvgggwgwvgwwwgwxxwvwgwffxgxxwWgwxwwghWfxwwxxvwvwwwwguxxxwgxgvvWvfgwwwwxwxvwuvwwugxvwvwfvhwwvxwvwwwwwwwwwwwwxwvvxwwwwwxvwwgvxwwvwwwxwwxxgvvwwxwxxwvwwgwvwwvwwwvgugfwgwwwgvvxfgvwwwwxwggwwwwwhwvhgwvxggwwgwwwwxvVvwggvgWhwvxwwxwxgwwwwgwwgxgfxxwwwwwxxgwwxwfwxgwxvwgwwwxxxwwxgwgxwffwwwhguwwwggfwwwwxwwwwfvvvwwwwwvvvxhwxxhwwwxvuvwwwxwwxfxwxwxwxxwvwgwvwwwxxxgwxwgvvwwhgwwfwfgvfggVgvvggfvgVwgwfgWfvWgvghwwxwwwgwwwWgwggwhwwwxwgwhwwxwwwhgvwwxwxxxxwxgxhgfwvwgwgwxwxvxwfhgxhgxwxgwgwwgvvwguwvgfwwvvwgwgwwwwwwwvggwxvwwwxwwwxwhwwwgwvxghwxxwwxxxxwhxxuwvwfwwxxwwxxwwwxxxwxxwgxhwwxwwxgvWwfwgwvwvwvwgwggfXgwwxxwwgwvwhwxwwxvwxxhgxxxxwxwvgwfwwwgwxvwwwwwgwxgxxwxxwwwxgwxwhhxwxxxxwwwwxwwwvwvxwwwxxwwwxvxwwwxwxwxwxxwxwxxxwxxwxxwxwvwwwgwWwwwxwwxWvxhxxxxxwxxxxwxxwwxwvwgggfVggwwgvwvwgwwwfwggxhhwwwgwwwxwxhwwhhwgxwwxxxxxxxxwvghwwgwgwwwwwwwhxgwxxwxxwfxwwwgvxwxxxxwxhwggxxxwwgxwvwxxwwwwwwxxxxxwvxgwwxxxxwxgfxwxwxxwxwwxwxxxwxhxxxwvvwwxwxwxgwwxwxuwwftwwwwxwwuwVuwxWvwgvwgguvwvgvwgwwxvgvwxvwxxwwxxvwvwufvwwgxwwwwvgwgggwwwvgwwwxwwwxvwwxvwfvxvvwwwwxxgwwfggxfxgwwwwwwxwwxwwvwgwvggvwwxwxxwvwwwvwwwwgvwwwwxwvxxwgxxwVtugxggwwvwwwwgufvgUfEwvvwvxwxvggfvfwgwfwxxwWvggwggwwwxhxgwWvwfgGxwgxWgexgxwwvgwwwxwxwxxgwwwwxwxxwxwvgwvwwwgxwwxwwgwfwhwwgwgxwweggwxwwwxxxxvwwwwwwwwwxwwwxwxxwxwxvxwgxfwhxwwvvwwwxwvffwwwxvwfwwwwguwwwwwxwwvwwgwwwwwwwwwgwxwxwxwvwwwwwwgwwwxwxwwvvwwwxxwxwwxwwwgfwwwwwxghwvgwxhxxwwwxwvwvxwxwgxwxwxxxwwxwwxxwvwxxwwwxxwvwwgwgfvxwwwxxwxwwvwwxxwxwhggvvwwxvgwxxxvwvwwfgvwxwxwwwxwgxxxwwwxwwxxxxwwwwwwwWwxxxxxxwxwwgxwwVvwxxxxwgewwxwvwwxwvwxwxvhxxggwvwxwxxxxxwwwxxgwxxgwVfwxwvvvwgfvwgwvgvvgvvwwwgvgfvvwwwwvxvffvweVgfvwvwwwwvwffvwwwxwxwwwwxgwwwxwwwwwwwwwvwwxxVuvwwxwVuvwxwwxwxxwwwvwvhvvvwvwgwuwwxwwxwwvvwwwwxwwvhvwwwxwxxwwwwwwxwxxwxvwwxwwxxwwxxxwwwxgWfuwgwfvvvgVvvgfffwvwfwgwvvffgFdvefvvwwgvgUeegvWvvggggwvxwgxvwwvxwwwwwwwwggwxxxvxwxgwwgwwwxwwwwgwxxwwwwwwxwxwwwhfwfwxxwgwffwvwxwwwwvvxvgwwhwwxwwwvgWwwvvwwwxwwwwwxxxwwxwxwwxxwwwvxwwxxwxwwwxxvwxhvuwwvgwwfwhgwfvggwwxxxwvwgwvwvxwwwwwvwwvwwxxwwxxwvwxwwwxwxwxwgxxwxwvvxwwhgxwxxxwwwwxwxxxxxxwxgxhvwxxwwwwxwxwxwgwxvwwwwxwwwxhxxwgvxxxwwxwvgwgfvgwxwxvwvwwwwvwwxgxwxwwvwvgwwxvgWxwxfggwgwfghwwwgwhxxxxgxxxhxxhxwxxwxwwgwwxwwwgwwxvwgwvwvxxxxxwhwxwgwwwwxwwxwwxwwwgvxvxwwxwwwxivwxxhxwxxwvwwxxwwwwwwwxwuwgfwgwwvvuvwvwhwwvvgfwgwVwwxvwewwxwvfvwWggwwxhwwwwwwfgwwwwvwwwwwxwwwwxxwxxwwwgwwwwwwwwxwwxwxwxxwwwwwwxwfvwxwwwxwugwgwwwwwwfxwwxxwxwvgwgWxwwgvwfwwgwwfvxxwwwwwwwwxxwxWguwwuxxwwwxwxxxhgxwxWvwgwgwuWgfvfwvWgeWvvgvgfevvxwwwggfvVvwgvwwhwxVvfgxwwwwwxwwwxwhwgxxgwwwxxwxwxxwxwxwwhwwwwwwxwgvwwxwxxxxwwwxhhgwwwfwwwwwgwwwvwwwwwwwwvgewwwggwwxwwwwwggfwwwwwxwxwwfxfxxxwwhggwxgxxwWwwxwwwwwxwgwgfuwwwgfwxwwwvWwwwhgxwvwVxwwwwxwwwgwwgvxwwgvwggwwwgWwxxwwwwxwwxwwgxvgxxwwwwwxxxWxwxxguwwwxwxxxwhxwwwxxxxxwxxxxgxxwXxxwwwxwxwxxwwwxwwvxxgwxxxwwwgwwgfwwwvwhgwwxwxwwvwwxwhffwwwxwgwxvxxwwwwwwxggWvwwwwgxwwxxxhWxwxxxwwxwwxxwwxhhhgwxwXwwxhxvggwgvwWxwxwwwxwwwxwxwxwxxwxwhxxxwwhwwwxhwwxywwwwxxwwhxxwwgwwxvgfvgvvgxvwwwgwwxwwwwwefgWvwwvvwvggwvxggwwwvwwvvwwgwvwxvwxwwwgfwwfwwwwvwwxwwwwwwxwwwxwvwwwwwgwwwvwxwgwvwvgWwwxwxwgwuwvfvwxxwvuwgvvhwwwxwwgvwwwxwxwxwwwwwwxvwvvwxwwwgxuwwxxwxvwxgWxwxxwwwxxwwwwvgvxwwgvggwtwwfGgGvwxwwwwwwvxwgwWWguuggvgfvxwwgvwwvggwgwhgxxxwfwwwvgxwwgwfwvwwxwwhwwwvwvWWuwxxxhhggwwwwwxwxxxgxvwfvgvtfwvwwwwwwvwwvvxwwwwggwvxvwwwwxxxwguwwwwwwxgvwwwgfxgggdxxxwwwwxwxvwwwxwwxwwgwwwxwwxwgwxWwwwwgvxvwwwvxwwvvwvvwwgvwvxxxgwwvwwwwgvxwwxfxwwwxhwgwgvwxxxxwwwxwwwxxxxwwxxxxwxwxxxxxxxxwwhwgwwvxxxvxwwwhwxwwwwxgwwwwwvwxwvwvwwxwxwwwwxwwxwwwxxxxwxgwwxxhwhwwwxwxxwwxwwwwgwwfWgxvxwxxxWwxgwxxwgwwgwufwwwwewwwxwvwwwwxwwxhggwwwwxxwxvxxwwxxwxwwWgwxwwXhwwxwwhxwwxwxwxxwxhvwwwwxwwxxxxxgxwwwwxwwvwwwxxvwwwxxxwxxxwgwxxwwwxgxwxwwxvwwxvwgvwwvwwvvWfwwwwwUUwvwfwUgvxwwfwvVvgvxvwvvvwvugvgvguxwwwwwxvfwwwwfwwwwwwwwgwgwwwwwwvvwvwgwwvxxwwwwwwuWwvwvwwwwwwugvfwvwwfvwwvwvwwwwxvwwvwwwwwwvwwwwxwwwwgwwxwwwwwvxxwwxwwxwwxvwwxwwwwggvwwwwwUUwwggfUefgwwvWwgvwwwwwwwwwxVeufwwvWugwwvwvwvfxwwfwxwwwwwwwxxwxwvxwgvwvxwwwvxwwwwwwvwwxhvvgvghwxwwwwwwwwwwxwwwuvwgwwWwgwvfwwwwwwwwwwewvvwxwwgwwxvwwwxwxwwxxwwgxfwxgxwwwxxwwwwxxwwwwwwwuWwwxgwwvwwwvgegwwvxewxvwvwwwvgxwwgwwgfwvxwxgwwwwwwwvwwxxwxxwhwxxxwxwxxwxxxxxwwwwxwwwwwxxgxwxwwwxgxvwwfxwwwxwxwhxwgxxxwwwwwwwwwwxwxxxxwwwxwwwwxwxxwwxwwwwwwwwxwwxwxwgguwwxuWexwvxwvwwwwxxwwwwwwxxxxxwvwxghgxwwgwwxwwvxwxvxwxxxxwwxhhgwxxwwxxxwxwxwwxwxxgwxhxvwxxvxxwxxwwwwwwwxwvxwxwxxxwwxwvwwgxwxwwxxwwxwxwxwwwwgxxwwxwxxxwgwwweWwwgvgwgvwgwfewwfwgwgWwvgfvggwggwuxwfgwwwvhgguwegggWwvxgvvwwwwwwwwwUwvgwvvvwwwxgxwwhwwwwwwwgggwfgwhwwvxwxggwgxgWvfxxwwwwWwvxvgwwwwuvxfefwWwwggwfggwggwwvvwwwwvWwvgvwxvwxwxxvgvwgwxvwghwvugxgwgwxwwvfwwgwwwwvhxxxwgwhwwwgvwwwfwgffWVfgffwwwgVwwuWWgffgfggVvffggvgWwwwgwwxVfvWwgffufgwxgwgwwgxwvwhgfgwwwwWwwvwxxgvxghxwwWgxwwxwhWwxwwxxwgggvxWXgwwwvxwwwvffgwvvgwwvxwvwWvfgfgggvfwvfvuggwvwxgvxwwWggvwwwgvwwwvwxvgvwwxgwxxxfvwwwghhwwwwwvwwgwwuxwgvwxwwvwgwgxwwwfvvwWwwvwgvwvuwgggvgwggwwwwvxvwwvwgxwwwxxwvvwwwwwwwwwvwwwfwwwwwwwggwvwwvhghwxxwxvwxwwhwxwwvghwwggwxvxwwvvwvgvxwxxwfvewwwwxwwgwfwxxwwxvgwwxxwwwwvvgwvwhwwggwwxggxxgxwwwwwvvwxxXwwxgxwxfggvwwgxfwxwwxwfffvgvgwwwwxwwvwvfhxwwWwxwxgwffwxfvwwvwxwwwgwwwxxwxwwhwvhwfghggwxvwwwwwwwhxvwxwwxwxgwwgxfgxwwwwwwvvxvvwgwwwguvgwwwwfwwwuuxxxwhxwwwwwwwxwwxvwwxxwwwxwxwgxwwxwwwwxxwxwxwwxgwWwwwxxthgwVvwwgwwvgvwwwwgxxgfwwgwxgxwwxwgvgwhxfvwwvfwwgvgwwwwwwxxvgwwxxwvgvwxwwxgwxwvhWvvwfgvwggfwgwvwgvgwwwwxwwgwwxxwwxhvwwgxvgvgwwxwwwxwxvwvwxxwxxxxxwxxxxxwxxwwxhxwguvgwVgwfFTvffvgwfwwwwwhwxgwwgWuwfxwxxWwxhxwxxxvfgvvgvffwwwwXewhggxxxxwwxxxgwwwgvfxwwwwwgxwxxxwwxwxxfFTvggvwwgwgwwwwvwwwhwwhwwxxwwhwxwwxwxwwwwxxxwwxfgvgwVevxwxwwwwwgxwxwxxwwwhxwgxxxxwhwwguwhfwwvgxwgwwwgvgwwhwxxhxwwwxxxwxxxwvgwwgvwgxwwwvwwxwwvwxwwwgwxxxwxxxxxxhxvgWwwghwxwwxghxxwxhhxxxvwwxwwwxxwwxwvxvxgwxxxxxwwxwxwxxxxwwxwwwxhwhxxxfWevggvvhwwgwwwwwwxghgwxwxxxxwxxvxwwvxwwvxwxxwgwvwwgVvwwgwxvwxxghxwwwxxwwwxwwwwwwxxwxxxwxhhwxxxwvvhvwwxwwwwxgwxxwxxxxxxwxwxxxxxwxhxxxxxvxwgwvwwwxwxwwxxxwxwwxxxgxxXghUfwwggwffvvfgvvfwgwwwfWvwfwxwvvwgvxgxwgwwxgxwvxfvwwfvwufgwwgwxwvfwghwvvvwwwwxvfvwewvwvwwwwfxwwwxwxvxwwwffwvfvwvfwwfegwwwwwwfwwvwwvhwwwwwxgfxgwxwwufvwvwwwwvwwwwwgvfvwwwwwwwvwxxgwwwwwwwxxwwwgxwgxxwwwvVvwgggweVvwwgwvgfvwgfgvgfvwwgvxwvwvfwwgwvwwwxVvvvxwwgwwwwghwwwvvvgvfwfvgwwgwwwhvwhwgvwwhgwwwwxwwvwvwWvwwwxXxvwfwxhveefwfwggfvwwwwxvffvvgvhwwfgwwxxwvwgxwwwxwwvwwxgwWwvwxxwxwwwfvwgvwvfwvxfxvwvwwfxvwwvwwwwxxxggxwwwxwwvwxgwwwwxwxUvvvvwwvwgwwwvvwvwwgufxvwgxxwwwwvxwvfwwwvwwWvuwvwfwxvvgxvwwwvwwwwwwhwwwwwxxXxwvxgvgxvwwgwfwgwwwvufwwwxwxgxgwwxxxwwwxwxxwgxgxwuuxxwxxwwwwfxgwwwwwwxwwwwwwvwxwvwgvuwvwxxvgfwwggfgvwwwwwwwgwwwwwvvgwvwxwwvgxxfxwwxwwwhwgwwwwwwwgvwwwvggwwwwvvwvwxgxvvwgwXxvwwwgwvwhwxwWxwwfwwggWWxgvgxwxwwvxwwgwvgwwwgwwxwwwvwxwxvxwwxxwwgwwwwwwwggwwxgwxwwwxXwwxfxvwwxwwwwxvxwwhgvuwvwwxtwvxgwwhefvxwgwwwwgwhxwugwwwwwfwwwggvxxwgggwxwxwxxWvwwxgewugggfwwggvwxwwxwxhvhxwwwwwxwhwwxwWwwvxxxxxxVfwffggwwwgwwxwgfwwwwwggfhggwwxwxfwxwxwWxxxxwgfgvwxvwwxugwwwgwgwghwwwwxhwwwwwhwxxxwxwvxwXwxwxVvvwvWvwfWvvwwwwgEEvgwxwgefgxwwvggwgwxgwwxxgwwwwxxwwgwgxxxvWVwwfwwwgufggWwggwwxxwWfgxxxWwwwgwxwwhwwwwwghgxxxxwwwggeEEvwwgxffvxgwwwgfggxgggwggvxggwwwwxxgwxxxwxwxwwfwxxxwfffwfwWwUvwwwwwwgwgwwxwwfwwxwvgwwwwWwxwwwwwxhxxxxwvvvgwhwgwxwgvggwwwwxgvvwxxwggwxxwxxwwwwwxwxxwvggwgwvwvvwwvwwgwwxxxxwuxwwxwxwwwxgxgwwxxxxwxvxxwWxxxwxwvxgugvwwwwxwxWwgwxgxwwgxwwxwxxxxwxxXxxggwxwwgvwvwxwwxwwwwwhwwvwxxvxvxwhxwxxxwwgxxxwxfgfvwvwwggwwvwwWwghxhwgwwxxwwwwxgxxxXxxwxwwwwhwhwxxwxwvvgwwxhwhgwgwwwwggWxxwhwwwwxwwwwwwwxxxhwxxwvwxxxwxwwxwxwxxwfwxwwwfvwgfwggxgwxxxxwxxwwwxxhxwxgwxxwxwwwwwwwwwxvhxggvxwwhwwhxwwxxxwxxuevwvvvwvtwfgvfvwwfwwgvvwwvwuewwgVfvwwwwvwvfgvgwggwvwwvgwfvffwvVfwwgvgvfwwwwwxwwwvwwwfefwvfwwwvwgwwwwgxwwxwwhxgvffwffufvfwvffvwfVvewfwgwvfwwwvvfffgfwwwwvgwfvwvfhwwwwwwhxvuwvvUvvuvwffvwveweggwwgwwvxgvvwwvwwwwwwwwwwwwwvgvgwwgfvggfWevuffvfvwgvGfffgvgvvwfgfwhvfefvvfgwvxwwwxevvgwgWvxwwwvxwvfwwugwfgevfwgwwfvwwxghvewWWxefvvevfgGwxxwwggwgwgwGxvwwwwxxvwvUvfvUvvgvvVxwxfeweggwfwgwgwgwfgvfgwvxvgwwwxxwwgwwgwwwxwwwwwvwvggvVvwwxWwgwwWwfWxfgvwvxfwwgvxwggxwxvgwvwxwwwvwwgwvuvwufvwvwwgvvxvfvvvxwvwwvvwvvhxxxxvvwwxwwxxwxwxvgeffvweuwvgwwvvvwwfggvvvwxwdvvwVuwgwxwwwvwwwwwwxxwwwvwxgwfwwwvvxewwwfwvgwgwxexxewwVwwvxxxwwvwfwwxwxwwwwxwfvwgvgxvwfwwwwvwgwuwwwwwuwxwwgwxvxwwwhfvvgxxhwuvvwfgvvWwvwvhgxfvwwwgvwvxwwxvxxWfgwhvwvxxwwwwwwgwwwgwwwxxxhgfgwfwwfvwwwggwgvwwxhxwgwfggwvhvhWxWvwwxgwxWgwgwwgwwggweuvWwwfgxxwwgwwewwxgwgwgxxxwvgwxghhwxwfwvwxwgwhhxwfwwwwwWvxwwwxwwhgxwvxwxwvgxxgwfxwxfxxvwvVvvgwvxwgfvgwxxwxvwwxwwvwvwfwxwgVwvwWwgvwwgvxwwwgwvxgxwwxwgvwfuvwwVwwvwwffwvwfxwwvxwxwvgvwwwwwwxwwgwwwxxxxvvwvwgwwwwvwwvffvhwwwvwxxwvwwwwxwwwxvwwgvvwwwvxxwwvwwwvwvwwvxwvwgwgwvxwwwvxwwwxwwxwwxwwvwwxwwwwvwffwwwvwhvgfwwvfegvxfxwwfvfvhgvggfvgvwfwwwvwwwwwgwwxwwfvfwfxwWwvxgwfwgwwwxwvfwwwgwwhwwwhwghvwgwgxwxgxwxwwvwvfwwwxwvwgxfvffwwwwwwwwwwvvvwxxvgwxhfwwgwwxvxwwxxwvgwwwwwwgwxxxwfvwgfwwvwwvvwwwvxwvwwwwwgxwwxfwwxwwvwwXwgwwwxxxwvwwxwwwxvwwvwxwwvxgvvwxXwwwwvvwwwwwwwgwhwgwwwwwwxwvwwwgwvxxwwgfwwgwwxvxxwvwwxxwwwwxhwxgwwxwwwfvvwxgxxwwwgwwvvwwwxxwwwwwxxwvwvxwvwxgwvffwwxwgxggvfgvhvwwwwwvxxxwxwgxgwwwxxhwwwwwxVvwwwxwvxwwxwgWwfxwwgwxwxwhgwxwwwwwggwgxwfgxghfwwwwxxxxxwwgxwwwwwvxxwxwgwvwfwvwxgwwwhwgwxxxwwwxwwxwgwwwwxvwwwwxwgwvxgwwgwgxxvhxhvvxgfwwvwwwguvwffguggwgvggvwwwhwwxwwvwxxwwwwwwhvvxwvvvgwwvwggfgwghgvvgwxwwvwvwvwxwwwwxwgwxwxwwwwwgfwwvgwwwwgwwwxvgwgfvvgxwwxvgwwwhvxwwvxxwwgwxgwwwxwgwxvwwwvwwwwxxfvfgwxxvvwwwxwwvwwvwxwwxwwwxxwvvxhxvwguvwggfgvgwgfvfggwvxwwwxwwxwggewwxwgwvwgvwvxxwwxxwwwgwwwxwxwffgwghfvvgwxxvxwwwxxxwgwwgwfxvgwvvwxwgwwxhhvwhhwxwhgwgxwwwxuggwgvvgxwwxvwwwxwwxgwwghxwguwwxgwxhwwwghxvwwwxwvgwwxwwwwgvgwxwwvgwwxwwwggewfxvguwwwwxwwwxvvwvwwxvxwwxwxwwgvwwvwwhvwwwwxwgwvvxgwxwwxxxxwwxwgwxwxwwwwwhwvvxvwxgwvwwxwhwwwxvxxxxvwvwhwxwwxfwwwwgwxwwwvxwwxwgvwgwwwghvwvxxxxgwwxxggwhhxxwxgwvwwvwxwxwwwvxxxhhvxvwwwxvwwxwvwvgwxvgxgxgggfwvwvwxwwwxwgwxxwwwxxwhhwwwxxwgwxwhwxxggxgxxxhwxwxxwxxwwwwgwxxgwwvvwwwgxwhgwvgwwxwwxwwxwwgwhhggghwxwhwxwwxgxwwwxwwxwxhxwwwwgxwwxwxwwwxfwwxxwxfwxxwwxxxwwwwwwgwxvwxwxwwwxwwwwwwwggwvvwwxgxxwswwgwwwwwwgwwWvwfwvwwwwwgwwvvwgwwWvwwwwgfwwvxhfuwwwgfwwwvxvwgxfvgwxxwwwwwwxhwxvVfwgggwwxuxwwgwxgwwuhwxfwvwwWvgwwwwwwgfwwvwwvwxxwwggfgwwwgxwwxwhgwwxxxwwwxxxvWfwwgwwwwwxgfwwwggxhxwgwwwvwvwwwxwwxgwgfxwxxwwfvugwwwwvgvwfwwvgfwxwwxgfwwxwW6TuwwvwxwwxwWfvfwwwwuwxxxxvggwwwvWwvwwhwxvwfvuwhgxgvghwwvwvwxggwxxwhGuvxgxwxhxwV6TuwgwwxwwxxWgggwxwwwwwgxxxxwwfxwwxwxwwwwwhwxvxxvwwxwwfvwgwgwwxhgwgFevgxwxgwwxwxwwxvxxxvwwwwxvvwgwWvwxgwwwwwvwwwxwwgwwvxxxvwwwxwwwwvffwvgwxvxwxvwgwhgwwxwgxwwwwhwxgwvhvxwwvxxvwfvvvvxwwwwvxxwxwwxhxwgwgwwxxwwwwwwhgxwwxxvvuwxwwwxuxvwxwxxxwwxgwwwwxwwxxxwwwwxwWvwwwgwwwWVwwgwwwwxgwxgwwxxxwwxxwxvxgxwxxwwwwvwvxwwgxxxxgwwWfgxwxxwgxwwxghggwgwxwwxghwxwxgwwwxwxwxwuwxwwxxwwvwwxxwwwwxxvxxxxxwxgggwwxxxxxxxwxwwxxwwxgwwwwxdwvwwwfvwwgwwgwvxvwwvUVwwwwwvwfwwwgwvguwfgwvgvwwwwgxwwwwfxwGtwvgvfggwvgwgvwwgwwgvgwhwwwwgwvwxewwwwvwwgwwxwvwefgvuxvwfgEfwgwwfffvgwwvFUdWwgwwvggwfwwwvwvxhwvXwwwgvwwgwwhwffgwwgVvfgvwxggvfwwgwWwwwwfgwvxxwwwwgwwwwuwxwwwvfvxwWwwvWvvvwwww&TvgvvwgvfwvwwgugvwvvwwGvvxvwfvwvvwxvgwwxwwwwgwwwfwxwwwwgwwgggvgwwgfgwwwggwffwwxwfxgxfggfgwwwhWwwxwwwwxuwvgWwwwwvvgWxxwwVuufwgvwwgwGwwhgwgxxxwgwwgvwwwwgxwwwvwwgvwgwgvwwwwvwwvwwgwfggvwfwxwwguwwwwwwwwhuwwvwxgwwvwwgwgvgvwwwvgvvWxwwgWwwwwwvwwwxWeuWxwwwwwwxxwgwvwgvvvwvxxwugwwwhWvxwwwwuxwwwwxxxwvwxwwvwxwxxvgxwwwwwwvxvfwxfvgxxvhgwtgvxwggwgxwxgvvwfwhvwxgwwwgvgfwhwwwgggwwwgvtxtwwwwwwgwuwwwewefwwwwwwwvwwwxgxgxxwwwwvwwwxuhwguwxggwxwfuvxwvwgxwgwwwxwwwgxwxgwwXwvhxWgwwggwXvwwgwxvgwwwxxwwvfgvwxVwvwwgwgwvxvwxgvgvwxxwwwwgwxwfvgwwvwfVwwvxwwwwwhxugwvxwgwwvwwggxwxwxxhwwwwwgvxvwxwxxwvwwwxuwwxwxxxwggvfgtwxwwwxvwwwwwwwwxwvwwwvwgvvuwvWxwwfwvvwwwewwxggwwvgwWgwwwgwwvgxwwwwvwvwwwwwwxxwwgwggvwwwwxFVvwggvwwWwVfvxhgwxgwgfgvwvwwxwhxwgvwwwwxwxwhwfxhwvwgWUwwwggwxwwwwgvvwwxwvxwwwxvwwvxwgxwxwxwwwxfwwfgvgwvxwwfxvxgwxwvwwwwwwwwgxwxwxhxwhwxwwvwgwwwxwwwfgfvgwgwffvvwgWx5FevxgwgwWvwwgwwvwwwxxgWuvxhwgwwhwwwxhwwwwwhwwWgvwwwggwgwwgwxHwWfwxhgwwwxxwhxxwwxwwWwxhhwxwwxxgvwvWwwwgwgvwwwhxVWevwxxgvggwwxwwwwxxwxxwxxuwxxxxxvwwxvwvwxvggwwwxxwwwwWwwwvxwwvvxuwwwxxxxwgxwwwxwxxwxwwwvwvxfwwwwxvwwvvfgwWgwxwvwxwxxhWUvwxwxwgvvxwwxwxxhxxgffFVvwwwvwwgxVvgxgvwwwhgxwxhwwwvwgwxxwwwgxwxxxxwwwwxwxxxxgwwgwwwxwwwwwxwxwwwfwwxwwwwwwwxfvxgwxwxwxxgwwxwvwvwgxwxwwxwxgxwgwwwxxwwwwxwvwwxwwxfwwwxwwfwxgfwgwwxwwwwxw5FevwgxwwwgwgwxxgwwxxxwxxxwxxwwwxwwxwwwxfwwWgwwwwwwwwwxwggwgwxwwwwgwwwxwxwwgxxwwxxwxuxxwxwwwwxxwwwxgxgwxwxxwwwwvwxxwxuwxwwxxwvxwwxxxwwhxwwwwxwhghgvwvwwwwwxwvwvxxwvgxwwxgwxfwwggvvvvwgfwwwwwgvwwwwwwwwxWgvwwwgwxwvwgxwxwvfegwwwwgvwxvvwwwwwwwwwwgvwwwwwwxvwwxwwwwwwvUvwwvwfwwxwwwwwwgwvxwwwvxxwwxvxwwxxxwvwwwvwfwwwwxvwwwwxwwwwvxwwwxxwwwwwfxxvfvwfffwfwwwfgwvxewwghwguwwgvwwWvxwwWgwwvwvgwwwwxwxxxwwwwxwgvwvvwfgwxwvwwwwxwxvwxwwwxwgwvwwwwwwxwwwxxwvggwwhwwxxxffvUfgfewwwwwwwwwwgfwgwwwxxxwwwwhvwhwwxwxwxwxwwgwwwwwfUwgwewwwwwwwwxxwwvwvxghxvxwwuvwwxwxxxwwfwwwggwvvwfwgwhwvxxxwwwwwwwxwwwwxwwxgwfgwwfwwxxxwwgvxwxxwwwwwxxwxxwxxwgwwwwwxgfvvwwwwwhvwwxwwxxxwvhwwwwxwxwxxxxxxwxxvwvvwwgwwxwwxwgwwwxxwxwxwwwwxwxwxwgvxwvVwVfwvgvwwwxwgwwwWvwwwxwxxwgwgwffwxxxwwwxwwxxxwhxffvwWfvwwxwwwwwxxwxxgxwxhgwwwwwxxwhwfwgwwxwxwwhwvwvxwxvxxxxxwxxgwwwwwwxwhxwxwwxxxwwwwwwxwwvwwxwwwxwxvxxwwwxwwxwhxxgwxxdVefuvweuwwfvwvuwfvwwgewwwvvwfvwvwwugwxwwwwfwwwwxwxxfvvwefewwfvvggvgufvgxxwwwwwxwgwwwvwvvvxwvwwwwwwgwwghwwwxwwxfwvwwuguvgfvvvvvgegvwwwxfvwwwwfgfvvuggwgvwwwgwewwwwvxvwwxwwxvdvfuwxuewvwwwwvvwxxfwwvwwfgvdfvvwvwvwwwwxwwxvvwwwxwxxfvvfuWvffVvvwvwwvgfggwwwVggwhguVvufwvvwvvwwWvhfwwwgwgwWvgxwxguVvgfvuvfwwgwvvVWvvvwxxxwwwwwgggfwgvwgwwwXxWgfgfwWvxvgWxfwwedvugwugeevfhvwWvvgwfwfgwwgwwvdvvwxxvwwwwhwwvwwwwvwgwvgfwvwwgwgwggwgwwwgwwwgwvgwwgxvwgwggwxhxgwwwgxuvwwxxvuvwvffvwwwvufggvvwgwfhxvwwvvuwwwvwgwvxwwwgwxwxvwvwUvvwvvwgwgeuvwwhwgwgwwwuwvwwvvvwvwxxwgvwggxwwwxwwwWwfvwxwwwwgvwvfvwxwwwwvhwggwgwwwvwvwxwxwgwggxvxwfxwxhwwwxwvwvwwwwwvwwwwwwwvwwwwwwwwwggwgwwxxvgwwwwwwwwwxvgwwvggvVvuwwgggxxGgvgwwwgwgwhwgvvvwwwwwgwggxgxwgwwhwwwwwgwxfvvwvwvgwwwgwgfvgwgwgwwgwxhwxgxwwwwwgwxwxgxxxggggxwhwwwgxvvwwgwfxvwgwvwWwwfwgwwwwgwwvwwwxwwxxwvWwgwxxwvhwwwwwgwgwwxxwwwxwwwwwwgwwwwxwxgvwwwxwxgxxugwwgwvvxwvwgwwwwxwwgggvwhxwxgwwwhgvwvwxwgwwwvwxxwwwwwwwxvwwwwfuvwgxwwwxxwwwxwwwwWgwwgwwxwwwxwxxxxwxgwwxffFwwgwgwvxwxgwggvwwxwxwwgwwwwxwwwwvxwwwwhxwwxwwwgwvgvwwwvxhxgxwwgwwwxwxxwwxxwhxhxgwgvhwvfvgggwFVufxhgwwwwwwfvwxwwgwgwvwvwvgwxwwwwhxhxxwxxwwwgxhgwggvwfgghwwxxxxxgwhgxxxwwxxhxwxxXwwwwxxwxxwxwxxwuggwvvvwggvgwwgwwwxxxwvvxxwwxwxfghwxxvwxwwxxxgxvxxxxgvwwwgwgwwwwwxxxxxwxxwwxvwvxwexxhwgxxwxgwfgwgwwwwfFwwwwwwxwxxwgwxxwwxwwxwwggwvxfwxvwwxxwxwvgwwxWgwwwxxxxxxxxxxxwxwxxwwwxxwwvwwhxxgxwvxwxwxxxxxxhgxxxhxxgvvwxwwxxwwwxwxxgxvwwvxxxxxwxwxxwxxxxwwwwwwggwwFVuvwxvxWwwxxgxwwxwhxgwwvxwxwhxxxwxxfwxxxwxwgwwwwwwwwxwwwxxhgxxhwwxxwxwwwwxxwxwxxxxwwwxxvxwwwwwxwxwwxxvxwxxwxxwxhxwxwxwxxxvwwxwwxwwwwwwvwxwwxwxxxxwxxwwxxxxwfwwvwuwvwvxwwwwwgwwxhwwwwwwwgvxwwggwwvwwfxwxxwuwwwwvwgwwwxwvvxvvwwvxwwwwwxwwxwxwxwwvwwvvxwwwwwwwwwwwwwxwxvfwwwwwwwxwwwhwwvwwfwgwxxwwwwwwwwwxwxwwwwxwwvvwwhxxxvwwwffgwwvgfwfvvwgfwvgwwuwfwgwxxwvVvvfwgwwwxxwxwWwgwWwwxxwxwwfgwxwxwwwvxgfwuwwxhwhxvwggvwwwwxwwwwggwwwxvwgwvxwwfVwwvgwfwwwwxwxwgwWvWggwxxgvfwwwwxwwwwxxwxxwxwxgxvwwwwwvfxxxxwWwwvvwxwwwxwfwwwgxwwwxxwgwwxwwfvwwwwhwvwwwxwwxwvvwxgwxwwxxwwvwwwwwwwwwwwxwxgvgwxxwhxwxxwwwwwwwwwvwwgxxxwxwwxxxxgvwxwxwxwxwwvxxxxwfvwxxxwxxwwwwxwwwgwwwwwwwwxwxwwwWgfwwvwwxxxxVwWhxxwwwgwwwwwgxxwwwwwwwwgvwvwwwwwxxhxvwgxwxxwwwwggwwwwwxwwxgwvwwhwwwggvwxwxxxxgxxvwwxxwvvgxwwxvwwgxxxgxwwwwxxvwhwwxvgwwwwxxxxxxwxxtwwwwvvwfwugwWvwvwggwvfwgvwwgvhvgfwWvwVvwvgwwvwwvuggwwfwwgvwvevwvxugvvgvxwvxwwvgwgvvvwfwwwwgvwvgvwvwgwwwwwxwvfwWfvvwgwvvwvgwwwwvwwvwgwfvvwFgugvxhgWevWwgwvggwfhwgfvwwwvwvuxwwUdvwgwwgwxwwvfvwxwvvwwwwwwwuxxxwwvwvvvwwgfgwgwwffwwwFvwwvgfvevwwwwwEugfvvwggvWwhwWfvvhvgwwwwwWwwxvwwwwvwwxwxgwgvuwvwwxwhwWgxvwfwwwwwgwwgwgxexxgvwvvWhVhgwwwfwwvvvevwgvwwwguvwggwuwgwwgfvvvwwwwHgwwhwwwwgxgwwwvgwxwwwwfxwxwwwwvwwxwwggwxWgdwwgwwwhwwwvhwfvwwvvVvgwvwvwwwwwwwxggwvwwwwwwgwxwwwwxwwwfuwwvvwwwxxgwxwgwwwgwxuwwwgvhgvwvxwwwwvwwwwwwgwhwwwvwxwxvwwfwwvwwwhvvxgwxvxwwgwxwwxwwwwvvxxxvwxgwvxwwwxwxwwxwxwwwvxxxwvwwwwvwwwwxwugwgvwxWfvwxxwwwwgwwwwxwwxwwxgwfxwwhgggwxwxxvgwwwwgxwgwhwwwwghxxwxxwxwwgwwwxxwxwwWwgwwwfxwwxwxxvwwwhgwgwhvxwwwwhwwxxvwwxvwxwxgxwwwxghxxxwwwxwxwgWwWvgwxwwwwwwwwwxxvwwvvwvvwwwgwwgxxwwwwuwwWvfgwwwxvgwegvwgVexvFvwgfvvwvxvfWwvwgwfvxwVfffwwWvwvwxwwWwggVvwfWgwfwwwevwwWwfvwwgggfgvvfgvgfxggwwvfxwfgwWxxwwwvgwwwggvvwfwvvwfWUvVguvwvwvvgwwgfvwfvvgwwwxwwwwfvwwWwwfvwxwwvwgfwgvgvwhvvwfwvuuwvvwgxwvwveuvwwwwwwgxwwxwwhwgxwxwvvwugwxgEtvfWvgffvwgVwwgWwgWUwgwWwWvFfvufvwfuwwvwwxfVvwhfwWwxwwvxxgwwxwWxwvwhwghwVgwxwgxgwgwfXgeffwggvgwwxwwgwxwvWHXVwfxwWfvwwffgfvvwvxwgwwffggwgvHwwwwgwWWvxvvxwggvwvwfwgwgwwwwggxfwwwwvwWwwwxwgwwfxGXdgwwwwwxwwgxwwxvwxhwwXvwwwxwwwxwggghxwwvwfvwvfwwvwgfwvgvwvwxwxvxwwgwxxxxwwxxhwwwfwWfwwvvvhvffwvvvfWxxxwwgwgwwvhwhwxxwwwwwggwxwxgwwxwwxWwwwwgwxgwwwwgwwvwxwghvwxgwwwvwwwwwwggxgwwwwwwwwgvfwwwxwxhxvxwwwxwwwwxxwwwvxwwhvwwwwvWgWwgggwxxggwGUvgxWgghhvgvvwwxwxwgwwvwwwwwwvxxXhgxWxwgwwwwwgwxgxwxgwwhhfwxxxgwxxxhhwwwxwwwwwhhwhggwwWgxgwwwvgwxwwxgwxgxwwhfwwwxwhgwwwwwxxHxxxwwwxwwggwxwwxxwhvwwxxwwvxxWwwwvgwwvgwwwxuhwfvwwvgwvgvwxwwwxwwxgvwgwvxvUUwwwgwvwwwwwwwxgwgwwgwwfvvwwwxwwxwWuwvvxxwwwwwwwwfwwgfwvwwvwvwgwvwwwvgwvwgwxvvwwvwwgfhwgwwwwwgvwwgwUevFedffgvxwwwwwwxwgvwxwxxhxwwwfwgwwwwwwxwwwxwhgwwxgwvwfwfgvwwwwwxhwwvxxwwwghxxwxwgwfwwgw6SvgwwwwwgvwwfvxwwgwwgvwwwwwxVwuwgwxwwwxvwwwxwwxwwwwggwwgvfwwvwwwxwfwwwwwwgwwwxgvwwxxwwwgwxwgxwwwhwwxxwgxhwvxhwwgfwVuuwwvwwhwwvwxwwvhxxxxwwgfvfgvwgWwgwxwwwwwwwxvxxvwvwxwvwwgvxwgxwwwxwwghfxhxwwwwvwwfwfvfwwvwwxwwxwwxvwvxgvwvwgvwVvegwvwwwwwwwwwxxwxwgwfgwwxwwwwxxxxwwwvvwxwwwxwxwwxwwxgxwwvwwvwxgwwxxwwwhwvwxxxwwwxwwxwVwuwgvxwgfwWuwwwgwxxgxwvwvwhwvwghwxwvxwwwxwwxxwxWwuxvwwwwxxxxfvvwxxwwwxwvwxwwwwxwxwwxxwwgxvwvhvwvvvwvwwfwwhvwwwwwwxxxwwxxwwwgwxhwxwxwxwxxxxwwwgwvgwvwwwxvwwvxxxxxvxwxgvwwwwxwwxxwxgwwwgwwwgwxwxvxwwwxwwwfvvvwvwwwxxxwwwwgwvwxxxwxwwwwwwwwxxxwwxwxxwhwvvxvwgwWxwwwwvwwwxgggxwxwxxxgwxdfwggwvfvvwfggfgwvfwwuVwwffwgVwfwvfwwfvwuvwwgVvgfwgfuuwugwwfgwevefwgwVvvvwgwwvvwwvwwgwhvevvvwwvfvuwwgwvwwwvgwwvwvwhwfvwgefwwwvfvefvegwfgvwfvwfgvgwWffgwwVftwfwvVfufwefwgewwwwgvVvvvdeuvfwwwwwvvvwwvgwUfxvwvuwfvwguvxwwwwwwwvwwgwuxwugwfwgfVewwEuwfvwwfffWgfgfVevgffwgvfvvffgwVfggwgwWffvwgwwfvggVxvwvwwxefwvvgwgwvgvggwhwwwgwfwwwgwwwwwwWvggwWgVwfwgwWhvwgwehgwvegfvwfvvvwwwxfewvWvwfwfwfgwwfevgwwgvwvGwwwwuvgfgwvwvwgvvwwwvwwwwgwwwgwxwvxwwwvgxvwwwwwvfgwvwXgTgwxwxxwgwwvvwwfvxefewvxgwgwvwggwgggwgvvwuwwhwvfvwwvgwwwwhgwvvggvwxwvvwvwfwffwwuwghevwwvggvwwfwgvwwwxwwwugwvvwwwxwwhgwgwvwfwwxuwwwfwwwwgfvuwwuxwwwwwvwxvwgwgwvwxgxwvgxwwwwwwxwgvwfvwxuwvwwwwxwvwwwwvwwwwhwwwvwxxfhwwwwwvvvwwwwvggwwwgwWvgwgxgwfvgwffwgfgxwgwghVfvwxwwwhWWgxgxwwwxxgggwxwwwwwwwwxxgwwwgfwhvgwvwfwvwwxwxxwwwfgwwwhwxwxwwxwgwfwwxwvxwghxWgugvwwgwwwwwwgwhwgwxxxwWvxwwwwhxwgvxxgwvxxwxwvxwwwfwxwwwwgwvwvwwwwvwxwfwwvxwwxvwwwvgwwfvwxggWwxfffhxgxwgwwggxWwvwwwwfxwwffgwwwxgvxwwwgwvwgfwwgwfwgfwwgwxvfwwgwwvffxgwwxwwxvwxfgvhwxxxwhwxgxVvxugwwwxwvvhgfggfvggwwxwwwwwwwwwfwwxwwwgxwxwwvwvwwwxwxwugwgvwxfwgwhwvwwwfwhgwxwwgwgwfwwggwxwwuugvwwWwxwxwwvgfvgwgwggfvgwhvVwgWfwwffvWfwwgvWvwwwwxwwwwwwwwggggwfggvgwvxwwwggxgvwgwwxwgxwWvvgvXwxwgwwXwfggwxxgxwxwwwwwwWgwWwghfggxvwvWvwgwvgfvwgxhwwgfggwgVWvwwwgfxwwgghwvwwwxwwuwwwhwwgvwxwwfwvfvwwwfxvgwxwwwvfgvfggehvwhxhwxwvvwxwvwuwwwgvwwxwvvhvwuxgwxwhwvxwgwwwgxwwgwwxwxwwxwxwwvwxwwwwwxxwwwWfxwwwwwwxwfvwgwgwwwxxwwwwwgvwwwxvvwwxwwwwwwwwwwwxwvwwwwxvgwfxwgvxvvxfwwxxwgwhwvvwvxxwwwwxxwhwxwggfvgvweewgvvxVwwwwwfvxwvfwwxxwxgxwwwwxwgwfwwwwwxwwwxwwgVvgxgwxxxwwwwwgwxxxvxxwxwxwwgwxwwxwggggxxvxxgwxxgwwgwhgWwwwxxgfwgxxxwxwwwwwhhwxvwwvxwwwwxvxwwvwwwgxxhwxwwwxeuwvwwxxxwvwwwvhwwxvwxvwwxwhwwwwwwwxxwuwvxwvwfwxvhvwwwyxwxwvgvwwwxxgfwwwwwwxggxwfvvwwvwxxwwwvxwxwwvgvfwggfwgxwwgvgvwwxgwxxxvwvwwxxwxwwwwxwxxwgvfwvVVwwggvwwwwwwwwwvxxvgwwwwwwwwxwgvhwgxfgfgwgwwwwvwwvwgxxxwwghwwwwwvwxuwwwwwwwxwggvuvgEEvwvwwvgwgvxvwwgwwwwvgfvfvvVhwxxwgvwxvwwwwxgwgfwwvgxwgwwgwwwwwwxxwxxwggfvvwWfgxwxwxxwghhgxxxxwfEEgvvVvwwwxgwwwwggwwxxwfwgvwwwxwwvwwxwwvwwwxwwfxwggvvgfwvvxvwwgwgxwwgxwwxhvVvvwvwwfwvxwgvxggwwxwvvwwggvggxwwwxwwwwwwwvwxwxxwwwxvwwwwvwwwxwwwxwwxhgvvvuwwxwxxxxwxgxgvgwfwwwxxgvxwgxxvgwgxwwgwxxwxwxwwgvwvwgwxwxxwwvxxxvwwxwwxvxwxwgfwgwvgxwwxwgwxwwgwwxwwwhgwwwxgwxhxwwxwwwwgvffwwggwwwwxwwxxwxwwhgwwwxxxxxwfxxxwgwvwwwgwxxxwwxwwhxwwwxvwxwxwwwxxxvwgwvwwwwhxwwxhxxxwgwwxxwxeggfufwgwvgWgufwxwwwxwwwWwvgvgfwwxwgvwwwwwwwvwxvgfuwwggwvwfwfwvwwwwxwwxxwwxwwwwwwufwwwwwhwwwwxvwgfxwwwxggvvxvgVwgwvwvfwwwvfwwwwxwvgvfwxfgxhwuwxwwgwgxwwvwfwwwvgfwwvwgwwwwwgwwxhgwvgwwwwwwwwwwwwwfvwwwffuwwgfwvWfwwvvgwgwwgwvwwvwxxwwwvWfvfvfggvvwvwvvfgwvwxwgwgvggwxggwgvvwxwwwhgwfgwwgvwxxwwhggxwwxwwggxwwWwwwwwwWxfwxxwxwxvVfwffwwwwwwwfwvwwwvggwxwwwwwggwgvwwwxwwwvwwwwwfwwwwwwgwvxvwvgwxwvwvgfxwwwgxvxwwxwwwxwwwwggvxwwwwvxwwhxwxwvWwvvWwhwvvxwwwwwxxwwxvxugwwvxwvvggwwxvxwxwwgxwwwgvewvwwvvwwgvwwxvhwvwwwwwvgwwwwxwxxwxwggwwhwvvvwwfuhwvwwxhwwwgwwxwwwvwwvxvwwvwwwwwuwwxvwgxwwxwwwwvwwwwwwwwwxwwwggwwwwwuwwvvxxwxwvfvvwhuuwxwwxvwgfgwvwwwwvwwvwwwwwwwxxgxgwvwhxwxhwwwwwxggwxwxvwwxwwwwgwwwwwwwWwwwwwwhWgwxwwwxxwwgxxwwhhwwwwgxVVxwxvxwwxxwvhwwwghwwwxxwwwwwwwwvwVvvwxxwwxwwwhvwwwwwvxwxhxwvxwwwwvxfwwvwwwwvvewuwwgvfggvggUEvwwfgwwwwwgfvwwvwwxwgfwxfvxwgwfwvwVuvwwxxwwwwgffwwgffffgwgxwwvgvwgxgwvwWuuwWgfuvxuwwwwwwwvwxvwxwwwvvgxwVevvggFdSgwgwfwggguhwwwvwwwvwfhwvwwwwfvwwwgvxxhxxwvwvefUhfvxfwgwwxxwwxwwwwwvgvxwwgwxxhvwwwwwxwwxwfvvwvwwwvVfgv5DvfvvgfWgwwWgfffvgwWfgggfvgvgwguwxvggwfvwgxggwugwwwvxvggwwggwfvggvwggwwgwxgwWxwwfxwxgfgwwhwfwxwgwgwwxwxwwXwvxfxwhwvgffvfeVgUduwwwVvfwxxffgvwwwwfffwvvwwwwgxwxxwwwvwwwvvfwggwvevwwwfefewwwfwvwwvwfvvwhxwvxwxwwvxwwwxwwwvgxvwxggfwwwwgvugwfgwwwwwVvdgwwwgfvugwxgwfxxxwwwxwvfffwwfvuwgwwwfxwwghvxxwwwvvwwxxwwwwxxhwvvwwwxxxwwwwxwwwxfvfwguxvvvwVwgxwwwXvxwxxwwwgvxwwxxwwxxwvxhhwwxwwwvwgvuvwwwvwwvwwwwwwwxwwxwwvxxvxgwvwvvwhxhwXxwwgxvWfwwgfwfwwgxfffwxWvhuwggxwwwwwwxxwxxwwxwwwwhwwxvwgwwfvwxhwwgwwgwwffwwxgwwhgxwwwgwgvwxhwfwugwwwfgvwxxvwgwvwwxgxgewwvvwwwgwwwwvhxwwwvwwwvwwxxxxhgwwwwwwxxxxvwxwvwxwwwwgvwxwwwvvwxwgxxwwwwwguxxgvxwxwfufgxwhwgvxwwwvvwxxwgwwhvxxwgwwfxwgwgwvvwwgwwwxwwwwxgvvwhvxwxxwxxwwwwxwwwxwwwwwxgvwwwwxwvwwwfvgwxWfwwwwxxxxwwxwfvwxwxwfgvfgxxxwgVgwvwwvwvxwxxwxvxwwwwvxxwgwwwxvxwwwxwwwwwxwvwxwwxwxxxwwgwggvwgvffufwgwwvfgxwxwwvwvwFVtuwwwwwxwgvwgwvwwxxvwxwgwvvwxwwxhvwwvwxWyxwxxxwgwvwwgfwwxgxxgwgxwxwxxwxwwfvVfvfwwwxxvwgwxwwxwxwvwwwwwxxwwwwwgwxxxgxvxxwvwgvvxwxxxwwwvwwvxwwggwwxwhwxhvxwxxwwwxgVwwwwwxfwvwxxxwwhwwgxxxxwwxwwwgfvvwxwWgvwxxxxwwgxxhxxwxxwxwwhgwxxwxxxwxxwxvwxwwwwgwhwwwxvxwxxwwhwwxwwxxxwgxwvxxwwwwxxwwxwxwvwwFVtuhxxwwwwwxxhwwxwwwxwwxxxxwwwwwgwvwwwwvxwxwwxwxxvxwxwxxvwwwwxxxxvxxwxxwxwvxxxhvwwxwxwwhxwgxxxwxxwxwxxxwggwxvwwxxgwwwufwvfvvfwvwwevvgwugwVegwgvuvfvvwvwwwVevwwgvvwffwvgfvgguvxxwwgvvwTewvvvuwuwgwfvwwfwvgvwwvhwgvfvwuwwwuwxwwvwwvwfwgwwwwwvvwvFfwfewwvvwfwuWVuggvvggwwewvwvwfwwwvwvwwwwuxvxwwwxwwwggwgwuftwweufvwwWvvwwvugfvvwgfwuvvwxwxxwxgfwwwfhwwwvwwwvvwgwfvwvUuvwfwvx4efggwffeggxfgFwfffffvfvvwwwxxwgvfvgvGugwwvxwwvgwwxvwvfvwxxgFfhvwwhggufXhEwwwwwwwVwwwgwwhwvgwhhTgfwwhWvwffvvvvVgvwwxgwffuwvu7wwggfvfwvwwwwfwvwxwvvgwwwggwwwwvwwwwgwwwUwvgwvwvffXhcgwfhfwvwwwwwxxxwwwggvxwwwvvvwggwwfvvgvwwwwwvvwwvwxwxvvwwwwwwwwwwxwwvvhwwwwwwwwvgwwvgvwvwvgwvwwwfvvvwgwxgwwxvxwwwwwwwwwwwwwwwvwvwxwxggvvwxwgwwwvxwwgwwwgwwxvwxgwwxvghgxwwgwgwxwwxwwwwwvwwwfwxwffwwwwwwvwwwwwvwwwwgvVfuvwwxxgvVwgfgwwxwgxfwwwxxwwWwwwxwxwwwwwVwwwwvwwgwxwvwwwgxhxxgwwvxxxxUwwwxwwxwvwwwwwxwxxggwwwfwwwgwgwvwvwwghxwwwvwwwxwwvxhgXvwfxwwgwgxwxxwwwxwvwwxwwxxwxxwhgwxvwgxgwvgwgwwxxxxwwwwvvwwwwwvgvwvuwwggWfwwxfgwwwwggwwxggwwvfwwfgwWfwwfxwFUvwvvwgvgxwwwwxgvwxWegvvfwgvwwxvgffggvwwwvgwwgwwwvwuwvWvgWwwwwvxxxwwvwgwwgggwxwgvwgFufwvgggwggwwggwWvhwvwxw5edWwwhwwgwwxwwxfgwwwwwwwwxwvwVvfWxwxhwwxwxwWvxwwwxwhxvxwxggwwvwwxvwwwwfwvgfwgwggwwggvwwWwfgvwgxwxw6TvgvwwfvxvwhfvwggVvwuwwvwwwwwgvwwwwgvggwwwfwwwgxwXxwwwhgugvvVwwgwxwgwgwvwggfxxhwgwgwxwvwwWffwwwgwvwevfgxWvgwhxwwggetugxwwwwwgxwwxWwwwwxxwxwwwvwVwxxwwxwhvxgvwwvxwwxvxwwvwwwwwwggwwwwvfwvgvwwwxvvwvxgggwggvgvggvwwwgxxxwwxwGuuhxvxwWwvhwwwxxxxxggvgwwgxxwwwwewwvwwggxwxwgwwxgwwxxhwxxwxhggvwgvxgwwwxwgvhgvwxxguwgwwWhxhwguwxwwxwxxvgwwhwwwxwfvfwwxwwwwwwwwwhgwwwhhwhxxxwvwvwwgwwvwgxvfvgfwfwfwgwxwgwwghhxxhwwgwvxxhwwwgwxgwxhwwwhvgxwvwwwwxwwxwwwwwxwgxgXvgwfxxwwxwwgwxwxgwghhfgWvwgVvxwwwvvxffwwwxwhxxwggwwwvxwwwwvxwwxwxwwwwgwgwgwvxxwwwwwwwxhvxwhxwxgxwwwxhwwxxxwvwgwxwgfgwwwVvgvxvwwfvwvgfxvwwgwwwvfUwwhvgwwfwvfwvvfwwhxwwwxvwgwwvuwhwxxwwwvwwfUwvwxgwfwwxwwwwwwwwwwwgvwvfuwgxwxfvwxxxfgxxwwwxfwwgwvvwwgwwvvwgvwUwvwwwxfwwgwggxwwgwvxwwgwwguwwwxxxwvwgwUvgvwgwwvwwwwxwwwwwvwvwwwfwuwvvwxxwgwwxwwgwgwwxfwvfvwwgvgvxwwvwgwVVwxwwgWvwwxfggwfwwxwwwgwwwgwwveugggwfuwxwwgwvVVwwxgwWwwgwggwwxwiwvwwgggvguuwhwfgugwvxwwwxwwvghwwhxgwwxwvfgwwxwwwwwwwvxVvwvxggfwgvwwvvfxwvwwxwwghxwwegwwvvvwwwwwwVwwwgwvfwwwhwwwxhggvwfxvwwgvuwwfvwwwwvwwwvggwwvwwvvvxfvhvwxxwwwwwewwwxwxwvwgwwwwwxwwhxwwxwwxxhvvwuwwwxwwvvwwwxwwhxwwvwxwgvwxxgwwwwwhwgvwwgwwwvwwwvwwwwvxvwuwwvwxvgggvwwghxwxwwxwwgxwxwxhxwwwwvuwwwwwxwwvwxwgvvwvwwwfwxwwwwwgwvvwxgwwxfvwwvvvwxvwgwwwxxgwvgwwghggwwwgwhggwwgwxgxxxwxxwgwwwxvwxwwwwwxwgfwxvfggxwwwgvwwwxwhxfwwxxxxwwxvvxfggwvxggfwwgvwwgwgwwggwxwwwwwvxwwwxvxxvwwwvwwwwxwxwxxxxxwwwwwxgwwxfvwwfxwwwwwwwxwwwwwvxvxwwxwwwwwvxxfxwvugwwwwgxwvgwwvewwwgwwwwwffwwwwwvwwwwwwxgggvwvwgwwxxwgvwvwwvvvwwwwxvwwwfgwwvwWgvwxxxwvfvgwwxwgwvwxevugwwvwwxwwxwgwwwgwwwvwgxwfFwwwwewxwwwwwwwvwwwwgwwwwwWwvxxwvgxwwvwfwgwwwwvxxxgwwwwxfwwwxxxwguxwwwwwxgwxvxwwwuwwwwvwgwvwggwxgwwxgwgfggfwfvwwgwwwwwwgwwgvwwwgxxwxFVufwfwvwgwwxfwxwwxvwgwwwvgggwwghwfwhwwhxggvwwhwwvxxWxxwvggwwxwxwwwwvggwwggwwgxgefvwwwfwwwgwwvggvwwwwxwwgvfwgwwxwwwvvwwgwxwxwwwwhfgwhwwggxwwwgwgwwvvxwwwwwwxwvwwxwfFwwwxgwwwwxxwwwgwvxgxwxvwwwxwxxxwxxxvwwvgxwwWgvxwgwuwwxwwxwxxewwvwwxwxwvxwgwwxxxxxwgwwwxxwxwvwwwwwuxxwwwwwgwwwxwxxxwwgxwvwwxguvvxwxxwwwwwwuvxhvwxxwwwxfwggwxxwwwggvxfwxwgwwvwwwxhwwwxFWufhxxxhxxwvwwwxwwwwwgwgwwwgxxwxgwwvwgvxxwxwxwwwwxwxgxwwxxxxxxvxwwwxwwwvvwwwwgwwwxxwwgxwxwwwwwwwwwxxxwxvwwxwwvwxxgwwwwxwwxwvwwwuxgWvwxgwxgfghwggwwhvwgfghwwguwxwxgvwwgfwwwwwgwwwwwwwgwwwvggwwxvgwfwvwwxwhwwwwwxxwgwwxvxwwwwfwxwwwgwhwhgwvwwwwgwwwwxfgewgfwwvxwgfgvfhxgwgwwwwfwwggwwwxwvgwwxxxwwwhwxvwhwhwwxxvwwwwwxgwwxgxvwwxxxfwwwgxwwwwwgwvwwwxhxgxxxwxggxwgvwgghvwXxWfwVwfggwvggWVwhwgwvggvvwhgggwfgwhgWwhggxghVvwxwxxwWxwwhwhwwgwhgwwWxxxwxxxwgwhxxggwwxghwgghwwxhhwxgxwhxgvgwgwvgwvwXwwggvvgwwwWxxWwwwgwghxxgwxxfgxgwxxgxvwwxwwwwxgwwxwXwwxhgxwvwxgxxWgxwwxwhwxhxwgxwwwhwwxwwgwwfxxxwxgxwgvhwgxgwwgguvxxwvhwvwxwwwxwgvwxwxwwwwxwxvwwwgwgwwxxwwwwwgxxxgvwhwwxxvxgxvwwxxxhwgwwwwxxxwhwxgwwwvwwxwwwwgwxwwxwwxwxwwxwxxwwwhxhwwgxwwxxwwwwwwxxxxwwxwxgxgwwwwwwwxxxwwvwwhxgxvxxwwxxxwwxwgvghhwwxyxgwvwgWgwxwwwxhwhxhwghwxggwxwhfxxwwxxxxhwwxwxxxwwwxwwxxwwxwwxxgwxxxxwwxxwwxxgwggghgxxwwwxwxxhxhgwxxwxxgVxxwwwwxxxxhxghwfwwxwwwxwhwwxxwxwxwxxxxxxxvxxxxxxxxxgwgxwwxuwgwevvwffwwWfwwfvegvggwwgwxvwwgvwgxwwwwfxxxxxfvvxggdwuwwwggvwvwgVvwxhxwvwxfgwwwxxxxxxxxwefgwvvfgvwvgfwwwfgwxxxwwxvuwvwxwwxxgxxxwxffwwvvwwwwwwgwwwvwwxwxggwwwwxwxxxvcewwGffvfWfvwwwwfWvwvWgffwwwxwxxvgWgwwxxwwwwwxwwxwwwhwxwwxgdfvu7guvwwwwwwhghfxhwwxhxwwgwvgwxwhwgxwwxxxxxxxwxeffguvvwfffwvwhwvuvxxgwuwgwfvxgvwwwwwhvxwxxwwwwwwwwxxfwwvvwgvwwwgvvVgwwhxwgvwwWvgxwfwuxxwwwwgvwwwhvxwgwxvwwfwwvxfwwwuwwwwwwwxvuxgxwwwxwvxvgxxxxgggvwfwxwwxvwwxwwxwwgxwgwwxxxvwvwwwwwfxwwwwwgwxfwvvggwxxgwwxwwwvvvvxvwxxwwvwvwxxxxxvwwxfwxxwwxxwwwwgwwfwffwwwwvvwvwxxfwxwxvwwvwhwwwwwxwxwvwhwgwxxvfwwghgwWgwWvgwxhxwwwvwhwwwwxgwgWfwhwxggvwxvhfwwwxgxfwwwwwwwxvwwxwxxxwwwxxwwwwxwvwvwwwwwwhwwvhwxwwwuwwgxgxvwwvxxwwghxxwxvtgwwvwfvvwwvfwwfxwwxgwwhevvvwwwvwwwgfgvvwwwwVvwwggvwvguwwwfgvxhwwgxwxwvwvvgwvwvgwxwgwWwxwxxxTfwgfvvwwvwuwwwffvwwwwvWwgwwwgwwvxhxxxxwgwwxwwvuwvVvwfvgvwvvgwggwwgwwwwwwvxfwuwwxwwxvdevfgwfwVevvwwwfFfvxfwwfvvvwwwxugvwwwwwvgwgxxxwfgwwwxwwxxwwwgeevwgwvfFwewwvhwggfxggfwWwhhfwgwfggwvwhxwxwxwgxhxwgwwxgdeefwggffwwwwuwfUUvwgwwwgwgvgwvwvwwxwwwxwxwvvggwgwgwwhwvgffuwWwgwwggwdvfvgwxggwwwfwwwxvwwvhxvwxwgwwwvwhxvwwvwvwvwwwwwxgvfwwwvvwwwwxwgvwxxvfxhwxxxxffvwfgwwvwxvxvffwggwgwxxwwvwwwwxwwxxwwwwxwwvwwevxwwvhwvxfvwxwwvhwxwxwxxxwwxxxwxxvwvwuxvgwwwwxwvwwwwxwwgwxwwwxwwxxfvvwvwgvwwwwwxwxfvgugwwfwwxwwwwwxxwxwxxfwwgvVwwwwxxwvevvxgggwxwhwWuGxhWvgwhgwvxwwxhuxxxxxwxxxwwvwwwggxxxfvwwwwwwxxwvwwwwxwwwwwwxwwwwxhgxwwxwewwvvggwfvxxxxwwgwwxvvwwvwxxxxxwwwwxvwfxgwfggwgwwgfgwxWggvffvxwwwxvfWwgwggWwgwxwwvhwwwwxwwwxwfgwxfgvgfvwgfgwwgwwxwfwgwgvvwvvwwgvwwvwwwwwhxhwgvFwvwuWvwfgvtvvwwwgwgvwwvwgwwwwhwfwwwgwwxwgwwhgwvwwhwwwuwwgfuwVvvwUuwvvwwxgwwgwwxwxwwwgwxvwxwvwxwwwwwxxwxxgwgvwwwwwwfVegffWwgGfgwvwwffggwWwgfwwwgwwwfwvxwwfwwxgvxhhwxwgwgfwvgfhgggvwfwFggwgxhwwwgxXxwwwwwwgxxvxwwwvxggxhhwxhhgxwwdwfvWuwfVefWugvwfwfwVgwfvgwfwufwhvwxwvwgwwhwwxwwwwwwwwwvxwwwgufgvfgfwgvgvtguvfvvxghwxgvwxgwwhwwwxfxwwgwgvhwxxxgwxwhxfwffgwwgwwvwgfgwgwgwwvwxxuxwwwuwvxxwwwxwxwxwxgwxxfWvwggvxwwwxvwwwwwwwwwxxwgxwwgwwgvwgwvxxwxxwxxxxwwxwwxvvvwwwggWgxwwgwwwwwwwgxwwwhgXwwxwxwwfwwwfvwefwwvwwwwvxwwWwwwhwwwwwwvxwwwwwhxgxgwwwvfffgwwgggvwwwhewgwhgwgwxxgwwwwwvwhxxxxwxwwwxwxwxwxwwggvgwggWwvwwwwxwwXxHhvwxwxxxxwxxxgwwwxhwhxwxhwfwwvwwwuxwwxvwhwwwwwwwvwwwwwxwvwwwxwwxxwxwvvwwhwguwvwvwhwwxwwvwwwwwwxxhxwvwwhwwwhxgwwwwgwfvvwwwwxwvwVuwgwwwwwwvvwwgwwwxxwgwwvwwwWugwvwvwxwwWuggfwwxhuwwwwwxhwwgwwwxxxveuvgggwxwewwwvfwwwwwwvwgwfwvvwwwwwvgwwwwxvwvvvwvwwgwwwxvwwwwwwwwwxwwwwxwwwwwxwwwxwwxxdtwwvffwwgwwwWfgwWxVwxwVvwwwggvgxxgfwgwwxwwxxgefwWxWxwwxwxvFwdwhxwxwwgwgwxwxxwxxwxwwhwxgxwxvxweffvfwwwvwwwwfegwwwwwvwgggffgvwwxwwxvwwwwxwgwwwxwwggwvwwwwgwwggvgwwxvwgxexwwwwxwwwwwxwwwwwgggwxwhxwvvwvwwwwwfwwwwvwuvwvwxfgwxxhxxxwfvwwwwwwwwwwxwxwwfwwxwwwwxwxxwwxxxxwxwxwvwwwxvfxwwgwwwxwwgxwxhwwwxwwwwxwwwwwwvwwxwxwxwwxxwwgwwxwxwxwwxwwwwwgvwwwwwxwwxwxxxgvwvwwwxwgwwwwxwwwfwwwxwxwwxvwwxxxwxxhgywgvwWhwgwxhwxwggfxwwxwxwxgwwgwxxxwxwxwwxxwxxvxwwxxwwwxwwwwhwwxwgxvwwxwwwwwxxxwwwxwwwwxfxwwfgwwtwwgvwwwwwwgvuvwwwwvvwfvwwvvvvwgfwwwvwwgVwvvgggwwxwwwuwvgfvwwvfwwfuwfwwwvWxwvwvxvwgwggwgUgwgxvwgvwfwwwvwxxxhvwvwwwvvwETvvvwvffwvfvvVuuffvwwwfwwwvgwwfwxwVvwwgwwvwhvgwwgwfvUSwwvwwvvdwgfvwwxxwxgwwwwwxwwwwxwwxvwwwxwwgvwwgwwwvWfwwwvwfVVvgWwgfUdvwWwgggfwwfvgwvwwxfDvvwfvgwgwvwgxwwwxggfwgfxwWwWwuxwGxfwWxwxvwwvvwwgwwhxxvxvxwxxxvxwwvwgvwwUVwvdvwvvfwwTBuvgWwvvwwfwwwwwfwgvwxwgxvwwwvwgwwvwwgwwvggwwwwvwwwwfgvwwhwgfxwwxfxwgwhwwvwwwwwwwxwxwvvwvvwwwwwwvvvwvwwegwwwvwwgfwwwwwvwvwxgxgvggwwwxgwwwxxwWwgwvwvUgwvwgvgvwxwwxgxwwvwwxxfgwwxfwwxwwwwvwgwwwgwwwevwwvvwfgwvwvgwfwvvwwwwxxxwgxwwwvwxwgwwgwwxgvxvvwwvwxwwwxgwwwgwwgwwvxxffwxwwgwwwxwwxwvxgfvwvvwvwvwwxvUfvwWwwwwwwwwfgwwxwwwxxxggvwwgwvwhwxxwwwwvwgwvwxwhgxgxgxhxwxwgwxxwxwwxwwxGgwvwvwwGwxvwwwvwwwvvwwwwwvwvwwwfwvgwxwxxwvwwvgwxwwwwwwxwwwwffwwwgxwvvwwwxvwxgwwxggggxgvgwggxxvwwxwwwwwuwxvwwvxvwwwwwfvwwwwwwxvwggwwgwwvwwggvwwxxvvwwxwwxxwwwxwxwwwggvwwwxwwwgfvwxxwffwwxxwwwwxwwwwxwxhxxxxwxxwwfvwwwxggwwwwwggwggwvgfwwwgxwwwwwwwwwwwhwgxgwxwwwgxxwwwwwwwwwxwwgvxxxwxxwxwxgwxvxxxhxvwxgvwwwwgfvwwggwwgvwgvwggvggwvxgwwwwwwwxwxwwwwgwwxwxxwwwwxwxwxvwxxwggwvxxxwggvgxwwwgwxvghxwwxxwwhxwwwxxxhwgxvxxggwffwwgfwwwxxggwvwwwgwvxwwwwwgwgwgwwwwvwwwxhgwwxxwwwgwwxwgxwwxgwwxvwwwwwxwxxxwwxwwwxgxwgwwvvwwxwwwwwxwwwwwghxwgwgxwxwwxwwxxwxxwwxwxxggvwwwxwwwwxgwwxwwwxwgxxxwxwxxgwxxxxvxwwxxwxxwwwwwwxxwwxwwhwwwwwwxxxxgxwwxhgvvvxwwvwwxwwwwvxwwxxxwxwwxvwwwxxhxwhwgxxgwwxxxwwwwxgxwxgwxxxwxwgxxxwxwxwwxxxxxgwxxhxvwxxxhxhgxwxxxxxgxwwwxxxxwxxwxwgwwwxwxwwwwwwwwwgxvwwxgwwwwxxvxwxvwxwxwxxwxxwwgxxxgvxwxwxxxwwvwxxwxxhgvwxgxfffwfvgVfVgegwwffvwgwwgfwwwgxffUgvfwwxwwvxugwvwwwgwwwfvfvfgfwvfgwfgvwffgwwgwwxwwwxvggxwgwwwgwwwwgwwwwwwxwwfvvxfvfwegWwwvfgwwxggfxwwvxegWgvvgwwxxgwwgwwwwxwxffgffwwvwwxwxvgvwgwwwwxgwwwwwvxwwxxxvwwxwxxwwwVVefvgfwfggfgvvwvffwxwggVfvvxxwxffgfWvvwwfxvghggwvwwvxghxxxwvfwffwegwxfwghWvvvxxhwgwgxhhwxxwgxgwfwxwWffwxwhwwxvwXgfxvvxeVfwgvvggwvwvgwwfffwwwwwvgwwwgwgvvwwgwwwwgxwghwgwvwwwxwfhwwwvgwwfwfwxwxgxvwxvfwwwhwvvxwwxxxfwwvwvxghwxwwwwxwvvxgxxwfvvwvgewuggwwfWfwvwwwwgwuwgwwwvvwwwwhwxwxxwxxwxxvgwxvwvwgwwwwwxxgfwxwwxwxhxxgxwwgwgwxwxwhgwwxxxhxwxggwwwvvxfvwvwwxgwwwwwvwwwgwxwhwwwwwxwwxxwwwwxwwwwwvwwwwxxwwwwxxwvxwwwxwxwwwwwwxwwwwwxfwgwgwwwVwvgwxwxfvgwhxwwggggwwWvvhgggwwwgxhggwxwgvhxhhgwwwevgwwvwxxwhxxwwwwgxhxxWWfwwxwggXWfwwWgwwwxwxxxxwwwxwwxvwwwwxgwwwwxxwxwwxwwxxwwwwxxxxwwxxxwxvxwwgvwgwwwxwwwvwwgxvwxgwgxwxwwwvwwwvwgvwwvwwwvwfwvwhwwwfgffgwwwwvwxwwwwfwwffxgwwxxgwggvwwwwwugvxgvgwwgVwvhwwwwwugvwwxwxgwwwwwwwwxvxxvvvwvwfgvfwwwwfwvvufvggwwwvwvwvwgwwwxwfxwwhwwvwwxwgvwdVvwwwwugwwwxvgvwwwwwxxwvwxxwwwwxwgvwfwxxxgffwwwfxUfvgwxhwvwwwwxwwwefvvxwvgwwwwwwhvxxgwwgwvxxwxwfwvhXhvvfwhwhxwwxxwxvvwgxhwhgwyxwwwvwvgfwwwxdUvwxwwWvvwwxwwwwvwxxfhhwwgwwvwvgwwwvwwwwwwxwwxwxvvgxxxvxvgwgwwgxwxwwhvwxwwvgwwwwwgvvwwfWfwvgwwwgwwwxhvfwwwwxfgvxwvwwwwxxgvfwdVfwvwwgwegwxgwwxwwxwhwwxwxxxxxwxxxxwhhwvwwwxfwwwwwxwwwfwxvwwvwxwWhvxwwwwwwvwwxwxwhhwwgxwxwwwwwwwwxfwgvwwxwwgwwxdVfwwwhgggwxwwxxxxxxgwwwhxxwwxwhwhxvwwwwwwxxxwgwgfxxwwWghvxxywwxwwwxwxxwxhfvvwwwxwwwwwxxwghxwxwwwxghxxwwwvwvwxwwxwwwxwfwwwwxxwwxgwxwwwwevgWwggwgxwwwwgwwwxxwxfvwwwwwxUwxwwwwwwwvwgvwwvxwwwxwxwgwwxgwuvwvwwwxXgfwwhxxfgwxgxwvgwwwhxvxxfwvwWwwwvxwwxxVgfxvwwvgwxwwxeWfvggwevwwgxwWwwwxwwwgwwwwgwfwwxwxwxwxxwwwvwwVvxwwuvggxGvvwggwxfvvwvfwwfwwxvwwwwwxxfwwwwxxxwhvwwwwwwwwggwwwwxWgfvvxwxfeffwwwwwXvgwwwwxwwhgWfwxwwxfhwwxwwvwwxgxwwwwwwwwhwVVvxwhwgvWxhxwwgwwxwwWwwhwxwwwgfgxXgwgwwywxefwwWwwwgfwwwwwxFVfgwgvgvVvvggvgvfwxvwxfwxwxwwvgwwgwwwwxwxwgfwwxwwgwwvwggwwfwgxwhWuwfwhvuwwwwwxhxWxwwwvwwxwwwwwwggwxwwwuwwvfwgwwwwxwwxwwxwwwvxxvwxxwvxxwvgvwwwwuggxfgvwwwwxfvwxwvgwxxxxxwgwxvxxgxxxwwewwxwxwwwgwwwvgwwwwwwwwvfgwxxwgxwwwxwwxxxxwhxwfwwwuxwvwwwdwwwxxxwwvwwwvwwxwwxhwwxgxwwwxgwggWggwwwwvwxwgffgwwwhvwwwwxwvgwxxWwwxwwwwwxxwwwwgwwhwxwgwwwgwgxhwwwwwwxwwhwxwWxvxwvwxvhxwwxvwxwvxuwfwtgwvwgwwwwxvwxxxxwxwxwxwwwwvwwwwxwxwhwwgwwwwwxwwxhwxwwwwxggwxgwxxtwwxvvgwvfvwwwwwwxwwwwwwfwggwwwwwggwwgxwgvvfgvwxwwwxggxwwxxwwwwgguwwwwvggwxxwwwwwxxxxeufwvwuxwwxwwvwvwgwwwwwgwwfwvxgxxvfwvwwxwwffgwfwwxwwgwxwwgvxxvwwvvwwwwxxwwxxxwxdegwgWevgwwwvwwgggwwwxwwxxwWUvvwwvgwgxgwwwxwwwxxxxxWUfvwgwwwgxgxwhwwwwxxxwxwxxvFfuhgwgwwxwxxwgwxhxwxxUVvvVfffwvxvfxwwwwxwwwwvgxvfvwwvgwwwwwwwxwwgwwwxxWgwvggvwxwwwwwgvwxgxgwxwxwwgvxwvwgxxggwxWxuhgwxwwwwwwwwwwwxvvwgwgwwxwwvvxxxwwwWwuwwwgxxwwwxwwwxwxwwwvxwwwxxxwxwwwgwxxwxwvuxwwxwxwxwxxxwwwxxwgvvwwwxwwwgwxxwvwxwxwwwgxxwwwwgwwgwvwxwxwvwwxxwwxwgwxwvwxxwxxvwxwvVhvVhxwxwwwgxhhgwhxvwwxwwgwxxhxxwwhwxwwxxwxWwwgwvxwxxvxwwxwxwhvxxxwwxvwwwxwxxwWwwwxwvxwxxwwwxwxwxxxxwfwfgwvvgwwxfwwwwwwwwwwwwwwfgwwgwfwxwwvwvwwWwgvvxgvwwxgwvwvvvwwvvVvfwwwwwxxhwwwfWwvvwfwvwxwwxwvwwwwwgwxfxfVwwggWvgwfwwwvvwwwwwgwvxvvvwvvvwwwwwwwxvwwwgwwvxwfwvwvwgwwwhwxwwwwwwwwvwwwgxwwwwwxwgwxwvwgwvwfwfvwgvwggvwffwwgwwvWvgwvwwvfwwwwwvvggwvggwwhxgwwwxvxwwwwgwgwwwwwfwwgwfxwgwgxwxhyvwwwwwwhgvxhwwxfwxxxxvxxvVvwgvvvVvgvvwwwwvwwwwwgfwxwwvhfvvwvxhvgvwwgxvwxwvxwxwwgwxwwwwvwwgvxwwgwgwwxgxwwxwvvxwwvxwwwwwwxwxxwwxwvwvwgwvwwwvwwvgwgvwwwwwwhwwwwwxwxwxxwwxxxxfwvgvfwvwwwwwgwwxwwxwwxwxfwgvwwxgwwxwxwwhvxwxwfvvxwwwwxgwwxxwxxxwwxxwxxvwwhhxvxxwxvxwwwwhfwvfwvwwwgwxwwwwwwvgfxxwwvwxvvgwwxgwvwgwxvgwvwxgwwvwxxxxgwwwwwhwxwwxwwxxwhxxwgxxxxgwwhgwwhwwhwwxxgwwxwwxwwgghwxxxxwwgxwhxhxwgvvxwwwwwxvgwgvwwwxwwgwwwggwgwwwwxxwwxfwwwwwxxwxxxxwwxwwxvwwhgxvvfwwwxwwxwgwwwwxggvwwhwwwvwgwwfgwxwgwwwwxwVvgwwwgvwVvwxwwxhxwhwvwWwgfwvhwwwhxgwvxxwxwwxvwwxfwwwwwvwwwxxhwxwhwwwWvwvwweeffgwwvgvwvvwxwgvxwwfwwwfwwvxxxxxgvwwvwfvwgvwwwhgxvwwwxwefwwwwwxxxxwwwwwwgwgwffwWvwvVvegxfgwxxvvwwwxwgggwwgwwfvwwxwwwvxwwwxwwxwhwwwhwwwwwwgvwghxwxwhgwxhhfxwwxgxgwwwhwwxgwxixghxwhxwwgwwffvveewwwgvvgwwwgvfwwwxvwxgfxvxwwhxwxxwwwwhgxxwwxwwhwwwwwwwwwwhwwxxgwgvxgwwgxwxxxwwxwxxhxwwwwgwwwxgvwwgvfwvXwwggwwfwvwxwwxxxgwwxxWvwvvwwvvvxxfgxwxwxvwgfefwwxxvxxxxxxhxwwxwwVvwwVvwxxxxwwxxxwhxvfwxxwwvxwwwwwwvwxwxxwwxwWwwfgwvefvgwgvgwxxwxhwxwwgggvxxwwwxxxwgxfxwwxwgxxxwxgwwwvwWVxwxwhxwgxwwgfvxxhxwxxwwhyxxgwwxxgfwxwwwwxwwxxvvhvxvwwxwxwwxwwxxvwgfwffvwwxghwwxxgewxwxxxfwwwgxwwwwwwwhfwwwwfvwwvvffwwwwwxvwffwgxxwwwxgvfwwxgwxxvxwwwvvgxxwwwgwwwwwwxvvgxwhxxvvwwwwwgwwvwwgvvwwwwwggvweefgwxwwwvxwwwwvwwwxwvxvvwuewvwxwwwwwvwxxxxxxxxwvwgfgwguwvfwwVfwvwwwwwwwfevUfvgxggwwwwwwwxwxwxffwwwXwgwwxwxxwxwgxwxwfWwWfwgwxxwhhwxwxxxwxxxywvvweefgwxwxwvwvxWxvwgfwwwfwwwxwxhwxgwwwxvfwwhvwwxwwxwvwwxvvxxxwwwgwwwwxxwwxwxxwhwxxwwwwwgehwwwvfwwxvvvgwvxxwvwwwwwxwwwxwwgvgvvvwwxwuewvwwhxwwxwxxhwwwwwxxwwwwwgwgwwxxxwhxegvwwxwxxwwwwxwwxwxxxfxwxwxwwxwxgvfuevvvwwwxwwwvwwxgwwwwwggvxhwwwwxxxwxxvfwgWvgwxxwxxxxxywwyxxxvgVgxgvxwxwwxwvwwxwwwgwwxwwvxwwwwwvxwxxwxwxxxxyxwwwwfwxxuxwwwxwwfvwwuvxwvvvffwvhvgevevvvvwvuguevgwwwfgwvvvvfwwgfvxgwwfVwvfvwwgvfvwwvvgwwffvgvwwwxvwwfwffwgvwfwwwwwwgwggfwxwwwxxwxwwuwwwuwvfwwtvwwwwfwwwfwuwfvvwwwwwuvvvvwwwvwguwvfwwwwwvwwxwwwxwwwvwwwwxxwwxxwfgwwweVwxeffgwwhUgwvfwwfgvwwwXwdfwWVwwuvvwgggfwwvhwwgxgvgwfgwvgvvgvwWwfvwhggvwfXhUwWwXewghwxXxfgvvgHhfXwfYwxvguwvwfwgfvwxfwvfhwxgwwgwwvfuwwwxwvwwvwwxwwwgvwhwxwgwwhvxgwwwwxvxvfxhwgvwwhxwvwwwwxxwxgghwwfwWwwggwwwwfxgvxwWvwwwvwwwwgvgwwwwxwwwxxwxgwwwwfwvuvwwwwxuugwwwwhxxxxvuvwwwhxxwwxxxxwhhxxhwxwwwwwwwwwwhwxwxxwwwvwxwwxwxwxwwwwwxhwxxwwxxxwwwxxwxxwvuvwuwxgwufwxwwxwhxuvvwwwxwwwwhxwxgwXhvhxXhwwwgfwwwxgxwgwvghxfhxvXwwvxwxWhwwxwHgghWvvvWwwwwwwxwwwwwwgxwwxxxxwxxgwwwxwwwxwwwwfhxxxxxwwwwvwxxgxxwfgxwuwvwuwwwwwvwggvvwwvwgvwvfvwwwvwvvwxvgwvwexgVvggWgwgvvgwwwfgewgvxgfwwfwwvfvwgwwvvvvwwwwfwvwwwwffvwvwgwwwwwwgwwwwvgwvvgwwwgwg5dwfVgwfvwwwwwgwfuuvwxxEfuwwwwwvwwvwxwwVvwwvwwUdwwwvgvwwwxwgwgxvwwfewxwwvwxwwwxwgwvwxwwxvwgwwwgvwffwwwvewwgvxwgwwwfwwxggGeffUvvWfwwvwwxffuvxgvwvgwxxgxwwgwgwwwxwwwvwgwggWwXhhxwheggwvwxgwwwXxgwvxWvghwwwhwwwxwwwgEewgUwvvewwxgfvwgfwggwxwvfeTSufwvvgwwwwwwwxWgwfgwwwwvfwwwwwwwwwwwvhfwWfvwxvwvxwgevwwvxwwvgwwvxwvvwwwwwwwgwvwvfvwxxVuxvwwwwgwgwwvfgwwxxwwwwxvwxxgwwxxwxxwhhxfgwffgwvfwwwwwwfwwgwwhwxwwwwwVvwwxgwwwwwwxxhvhxwxvxfwvvxhgvxwwgwxxxwgxgvwwwhwxvwvwwwwgwxwwwwxwhufvegwvwwwxwgwwggwwgxxvxxwxxwxxxwwwfwvggfvfvwxxgfwwxwwwxxwhggwfwvwwxhxwgwhwxxgwwwxvxvggwvwwwxwwwgxxwxxXfwvxxxwwxwxxwwxxhXvxwgwvhwwwxxxwxffwxwwvwgewwwwvwvvxxwwwwgwwwwxvwxwxgwxwwewxvwwwgxwwwwwwwwxwvwwxvfwxwwwvxwwxxwexxwwfvvxuwffvwwvxvgvvvwwwwwwwvvwwvwwggwwvwwwgvwwwvwvwvwwwwxwvvxvfvvwwwwgwwvwwwwvfwvvfwvwwwvvwwwwwwwwfvvwwxwwxxwfwwfwgwwwwfvwvgwvvwwwwwwwwEdgUvuwwfwvwwwvwwgvxvwwvwxgwvgweuvwwwwwwddwfvwwwwwwwwwwwhgwwhwvwwwxwwwhwvvwgVVwvwweUwuwfwwfggfwwvwwwwwwgvwUeevwvwwgwwgwwwgvxwwxxwwxxxwwwgvfwwwwwxhwwwwvWwwwxxxwwwgggfwhwhwwwwxwvhwwhwwwvwwvUUgcSeuwfwwvwweuvwwfvgvgwgvwxgvwwwfwgvwwwxvvgwvwwxwwvwvwgwwwwwvwwwwwgwwgwwwwhvwwxwvgwwgvwwwwwxxxwgwwxwxgvwvwwwvwwwwwwgvwwvgwwgwxvxxxwwwwwwwvwxwwxwxxhhwwvwfwgwwwxvwvfxvwhxwxxgwwwxwxwxwxxxwwxxwwwwwvwwwvvwwxvvwvwgwwxwvwwvwwwvwwwwwxwxwwxxwhvvvfwhvxvvwwwwxgwwwwwwvxwxwxwxwxwwwwvgwwvVwuggwwvwvvwwggwwwxxwwwxwwxwwxxxxxwxwgxwwwggwwxhwwwwxgwwxWxxxxxxfxXWhfwwhxxwwxxwwwvwvwwwxwwwvwxwwwvwvwwvwwwxxxwxwxwwwwwvwwwxwwwvwhwwxwxxwwwvxwwxwwxwwwgwxxgxvwwvwvwvvxwgvwwwwvxvwgfvwfvxxgvfwvvgwwvwxVgwwvwvwwvwxxxxfwwvwvvwWfvfwxwvwvgwwwwwvwvxfvwgwhwwwwgwxfwvvwwvxwvxxwwfvvwvgvwvwwfvxWffffvwwwvwvxfvwwwvwgfwwxhgvvwwwvwgwvwwfvwwwwwwxvwxwwvwvfwwxxxwxwwwvwwwwwxwxwwwvwwwwwvwfwfwwwwwwwwfwwwgffgwfwwgfwvwwwfwfwggvwfwgwhVfgfgwwhwwxwwwwgwvfxwwxwhwhggwfwvfgxwwxwvwfgvwwxwhhxfvwghxvwwwgxwvfvwvwxwVvgwwVfwgfgvwwwwwgvgvvvwwwfwwwxxwwgwgwvvwwwwwwwwgwwwgwwwwxwxxffwvvhwwxgwwwxwgwwwwwxwvvvxwwwvwwgxxgfgwfwwwwxwwwxgvwwwwxwwwxwxxwwwVwvwgwwgwwwwwwwgwwwwxwwvwgwwwwwwxwxxwxwwxwxxxxhxwfxwwwgwwwwxwxgwwwwxwggwxxxwxxwwxhxhxvvgwvxwvvwwvwxwwxvwxwxwwwwwwwwxxwwwwwwgwwwxxwwgwgwwwgwxxgwVggwwwwhwgwgwxwgwxxxxwxwvwgxhhhwwgwhvgxhgwxxwwwxwxxwxxwxwwvwgwxwwxxgwxxgwwwhxxfgwwwwwwwwwxxwwgwwxxwvwhxwxwwxwwwvwgxwvwhwxwwwwwwxwwwvvggwffffWwwuwwwgvwwggwxwggwgwwewvfwfgwwWwgfvgfffwvwwwgfwwwxxgvwwWWewwwfwwxVwwggxgfwwwwhvwwvfwwwVvwwwwgwwwxwwxxwwgwxwwfwwwwwvwgwwwewwfvggvwwwwwwvgVxgwvxfvfWuwvwWwvwwwwxgwhwxwgwwVvwxwwwwwwvWwvwwgwwwvxxwwwwvuwwwwwgwwWwwXgwwxxwxwxxxxvwwgwFfgwggwvfvfgFfwvVwvfVwgwvvxWvwffvxwwwwvwwhgVvwwgvgvvxhwWwwhgwxgwewwgwwgwwVvvwxXwxgxxxgXhgwwwwgwwgxWxvhxxhwhwxxxxxgwwwggFfvfgwgWuffgFfvwwggwgwwgvwwwwgwxwwwwxgxgwwvXwwwgggwwvwwxgwwgwwgxgxgwewwwhgwwxwwxxwwxxwxwxhgwwwwwwgxwwxxwxgvhwvwwwwwvwxgvggWwwfvwvxwwfwwwwwxxgwxwxxwhhwwxwfgwwwwwxgwvwvvxgwwxxwxguwwwwwwgxxxwwwwxxxxxwxwxwvwwwwgxwwgwxwwgwvwgwxxwxxwwwwhxxgxwwghwxwggwfwwxwxwxxwwgxwwwwxxwxwxwxxvwwxwgxwwwwvwwwggwwvvxwxwxgWgwXxgwhwxhgxggvxwwwhhwxhxhxwhhgggxxwxxhxwxfvvxxxxxwwwxwwxxhhvxhgwwxxwxwwhwxwxvgwwwwhgXxwxxwwxxwwwxwvwwwwvxWwwhgwgwwwwwwxxwxghwwxwxxwhwwwwwxxwwxxxxwwxxwxwxxhgxxwwxwxvxwwxwxxvwwwxwwwwwvgWwwgfwfvxwwfwgwwwhwwxxwxvvxfvwwgwwwwwxxwxwxwwwwwvwgvuvwwxwgwvwgvwwwwgxxvwwwvvwwwgwwvwwxwxwwxwWwvwffuwwgvwwvgvwwwwwwwxwwwvgwwuuwwwwgxwwgvhwwwwvxwwwxvwwwVfufwwwxwwgwxwwwwwgwvfvwwxwwwwwvwwxvgfwWfuvxWfvwgwfwfvvwwgwwwwwwxxwvfwwUVfvwwwwwgwwwwwghxwwxwwwvvggWgfwxwwwwwwxwwwxxgxhgwvwwwWvWxxxhxwwghhwwxwxxxufvwWfUfwwwwwxwvgvgwWgfwwwwfuxgvvfgvwfxxwwwwvwxWgwwwwxwwxwwvwvggfWwwwwvwwgwwxwggxhxxxgxvwwvvuwfgwvwwwxwwgWwvxvwxwgwwvwwwwwwwwwwxwxxwwwuwxwwxwxvwvxwxxwhwgwvvgwgwwwxwwwwwxgvwvwwxhwwxxwwwwgvxvvwwwggvwxwwxwwwvxxwwwwwgwwwvwxwxxwxxhxwwgwvwuwvwwwxwwvwwwwxxxxvwwwwwxxhxwwgfvwhxwgfvfgfgvwxwxwxwxwwghxwxvwxxwgwvxwxgwvxxwwwwwwggxgwwwwxhgxwxxxxxwwxxhwgwwXhvxwwwxwxgwwxwwvwewwwxxvxwgxvwxxxvwvwwwwwwwgwfwxxwwvwwwwgxgxxwxwwwwvwwwwgwwuwwgwwwvgffvwwwwgwvwvgwfgwvgwvfuwxvwewwfgfwvvuvxwwwwfwvfvuwwwvgwfvwxwgwwxwxwwwvfwfffwegwvwwfwwwgwwwgwvvvvDSvvvvUudwwfvfgvvfvwwwfwwwfwvuwwgfvxwxwgvwwwwxwwfvvfvfvvuvwwwggwxwwfwwxwwgedvvuvwgvwxwwxvwwwwwwwwwvfvvvfegwVevfVevgffwxggwVUfwVgvgfvwwfgwffvwggwfwfwhwwgvwwwwgwgwwwwwgWffgwvxffgwvwvxwvWxwwwwfgwwwwxguhwwwXwwgwvwhwhwvwwxxwwgTUvfvvvdSdvwwVfffvvvwgfvwwxfeVvuvvvwxvggwwwwwuvwwwfwfgwwxwggwwvwwwfugwwwvwfffwvvxwvwwwgwgfvxwwwwwwwwwwgwvwggvwvwgwvuwgfvvwwwwvvwWufwgwvvxwhvwwwwvvwxxxwxwwxhxxvgxwwvfwvvfvwwwwwxwwwwxxwwwvfwwwwwvhwxwwwwxwxxghxwgxwxvwuwvwwwgfvuwghxvwvxwxxwghwhwgwgvwgwWfevuwuwvwvhwwvwwxfwfwxwwvwvwxwwvwwwwwwwvwfvwvgvwgfwwwWWwvhfwwwvwwxwxhfuvxxwhwxxxwwwwwwfWggxwxwxxfvwwxvvwwwgwwwgvxwxwwXgxwwxxxwxwwwhwxwwxxxwxwwwvvXwfvvvvwwwwxxwuwwwwwgwgwwwxwwvxwxwwwxxwwwwwvvxwvfvxwfwxxwxvgxxxwwggwvwghgwvwgvwgwwwgwvwwwvvvxVgWgWFfgwvgWfggVVwgghfwwwwwxWgwvfgfvwwwwwgffwwwwwwwxxggWggWVwggffgwgggfghggfwvwxwgWWWwVgghwwvxwggwwwxhvxxwwWwvwVVGwwwwwwgwfgVvwwggxxwwwwgwwvwwwxxgwwxxxxwxxwWgWvggfgwwwwwfwwwgwxxwwxxwghfvxwwwwwgxwwxwxwxxxwwwxfFVUgffVgfVwVvewWVWgxWhfVfwgxfvWgVfwgfvwwwwxwwwFgfgxWvgggwwwhhfwfvWwgggfwfwggfgghWwhxgwWXWefgvgxgwgwxwxggfwVwWxHWVwgxwhwgwVFUvgffgggvxwfvgWffggwWgVgfxfWWWwwwwgvwwwgWgwgwggxwwhwwggxwgWwgwwwgvghwgggWxggghwwfwwwxwwfwwxvwwgwwwXghgvwwwwgwgvvggvwgvwwwxffWwwgwwxwgvwwfxwgwxwhxwgWfwVgwgwwwxwwggfwxghvxwwhgfvwwghghxxxxhwwXXgwxwwwxwwgxwwwxwfxxwwwvwxhxxwwwwxwwxxxwwwfwxhxxwxwxwxwwxwxwxxwwwhxxgvgwVwuwgwggfvFgfgxfgWfwgwwggfwvwxwgxwwxwxWVWgwWWWwwwwfvvwhwggwgwwwXWUwgfWhHVwxxwhwwwwhgwwghgwhxxwxvwGHVxgggxwwvgwwwwwxxwwghgvwhxwwwwxxxxxxgxhxwwwwxxxwwwxwwgwwvgwxwXwhvwwwxxwwwwwXwgwwxxxuxwwgwwvwgwvwvwxwvwwVvvwwwwgwfxwvwwgwwwgwwwuxxxvggvwwgeuwwgwgwwggghvwxwggwewvvwvwwwwwwwwwwxwxwwxwgVwwwwwvvwwfxwwwuvwwxwgggvfvvwwwwwwwwwwwvuwwwwgwwvwwvwvwxxwwwwwwwxwwxxxwwwuwwwwwwvwwwxwwwwwwwxuwwwvxVuwwvwwgvvwwUvvwWfgwvwwwxwgVwgWvwwwwwvgwwxgwwvwxwwwwfxgwwgwgewwxwxxgxfxvwxwxxxwwWwwwwgwwwXxxhuxwxwxghwwwwwwxggggwvugwwwwvwgevwwwgwvwwwwwVfvvwgwvwxwwwwwwxwvvxwwwwxxwwwvxwvwxxwvwfwwwxwfwxvvwgwwwvwwwwgxwwwwwwghwwwwwvwwwwwwwwwxwxwwwwwvwwxwwxxwxwgfuwvwwwwxwwwwwxxwwvwwvwwxwwxwwhxwwwwwwwxgwwwvwwwWxxhwwwwwxwxwwgxwwXuwvwwwwwxxwwwwwxwwxwxuwwwwwxwxwwwwgxwwwwvfwvwwwwwwvxxxxwxwggwwwvwxxxwwwvhhwxwxxxwwwwwxxwwxwwxxyxwxwhwgWwxxvxwWxwgvwwxwvwwgwwxxwxxwvwxXwgwwxxxhvwwwwxxxxwWwwvwwxhwgwggwxxxwwxxwwxxwxwwgwhxwhgXwexwxwwwgwvwwfwwwwvwvwwxvvwgvgwwwxgfgwwwwgvgfevgwwwfwwwwwwwxfgwvgvwgxfvxwwvwwxwgfVWwvgvwvwwxWfvwhwgwxwwwxxwwwwgfgwwwvvwgefugwwfvwwxxwwwfugwxgdUuVwwugwwhweggvwufwwfvwvxwwwxwwgwefvwuvxvxwwvwufwwwvxxxwwwwvwwgwwvwfVfwxwwvwgxwwfgufvfvwvvwuxxFevWxfwfwxwwwwvwwhxwwwwgwwwgwghwwwwyxgwfgvwwwwwvgxxwgegVxXXfwxxwhwwwwfgvxvwgvwxvWUwgxvwUgwgvWwedgwvwgwwvgwwwvwgxvvxhwwwvxxwxvwxwxvxfxxhfwhxwvwwvvwwuwxgxxwwgwhgwwvwxvwwgvgwvwxwugvwvvwxxxwwgvfvuwwxfwwwwwwxgefvwwufvwwwuwvfxxgvwxvwvvwwwwxxxxwwgxvgWwwxwxxxxgvwwfwwxwxwuxwwhwvxwxwfwxxwxwwgfwxwwxvwxxwgxwxfxwxxggvfwwwwwwhxvwvwxvwwgxwxwwefuwwxvxwwxxxxVwVwvWxxxxxxwvwwxwxxxxwgxxwxwwxgwvwxggwxxhhxxvfGgwuugwwwvwvwwxwxwwwxwwwwxxxvwxxxxxxwexgxwwwwwxxwgfxwwwwxxwwwxxwUxgwtgxxevwgvvhgvwVWfwwwggwwefvgwvgwfwgvwwwwxwwvxgfffwggVgvxwwhxwwxwffwgegguwgxfwwwgvwwwwwwfhfvwggwwwvwxvxwwgwggggWxwxwwwwwwwgwwvhwvvvxwgUggwfFgvvxwwwgwxwwwwfwwwgwxvwegxxwwvwwwwwfvwgvxgxwvvwwgwgFwxwwwwfwfvhvxxwwwxxwwwGfxxwwwxwwvxwfvwgVVwgevgwFfwwgvggewgwwxWwVefwwfWvfvwwwwwuwwwwgwgwwwgwgxwwwxgvwvvvxwwwWxgxwxwxgxwgwwwggvgwgxFgwwgwhgwhwvgxGxfgxxvvwwgvuggfFWvwwwwvvvxhvgfwgwfwvwgWwwvwufwhwwvwwxxghwwfgwfwwwwwwgwwwVxxgxwwvwwvgWhgxwwxxwwwwxvxgghtxvxfwxwgwxwgvwxwwxwgvgwvvwvvgwvgwwwxwwxxxwwfwwgwwWxwxwwwwxWwggwwgwwgvwxwvxxgwhxxxxwVvwWwgwxwxwxvwxwwwwgwxhxhwhxwgvxxxxwwWfvxxxwwxwfwWwwwwvxwwwxgwxvwwwWvvxvwwwxwvwxvvvvwghxxwwwxwwwwxwwxwxwwvxfwgwvwvwwgxwwxwwgwwwwwgxwwwwhggvwwxgxgghwggwhwxwwxhfwxwwxwgwwwxwhhgxxwxxwxhvxxvwvxwwwwwWwgxxwwhwxgwwwggwwhvwxwwhxxhgxgvxwwxgxvwhwwhwwwxwwvxwggwxwwwgwxwwxvgxWwhxxxwwxgvwwwwwxxhwwwwwxgwxwxxwgwxxwwvwffvwwgvwxvwvxwfwwwwwxfvwgwwfwwxxwwxgwwvwwgwwxwwwwvwwxvxxvwwwxwwwxwxxgvfwvwgwwgwxhxgwwgwhwwwxxwwVwuxvwfwxwvxvfvwfgwgwwxwwvvvgvgwwxwwxxwxeuvwwwvwvxxxwwvvvwvfwgwwwfwvwwhwwwwwwvVwvwggxwwxwxfvvvwwwvvwvwvgwWuwwwwwwfwfwvgwgxwwwwwfgvgwgvwwwxffggwgvgwxxxxxwfvwwgvgwwxhwwwgxxwxxxfvggwwvwwxxhvwfwWhxvwxxxxuvvfwwvggvwwwffvwfggfwwgwfVffgwxwwvgwwwwwvgwwvvvggwwgxffwwwvffxxxwxwwwwwwgwfwwwwxwvwwwgwwgggwwgxxwwuevvvvwgvwwwwwwwwgvggwwwgwxvwwwxvwwxgvwwgvwwwwwvwvwwwgxxwwvwwxwwwwvwvxwvxxxwvwgfWwxwwwwvxwxxwxhhwvwwwxxwvwwwxwwwgwhwxwwvwwwwgxggwwwwxwuwvwfxxxwwgwwxwwxwwwgwvvwvwwxgvwwhhwwxwwwwwwwwxxxwwwwwxxwfwggxwwgxxwxhghXxewwxwvwwxgwwxxxxvxwgwxxxwwwxwwwxwvwwvvwxwuwwwxwwwwxwwwvxwwwwxxgxwxvxxxwghwvxwgxwxxwwwwwwvwxwwgwwvwxwugfvvvfxfvvggfffVwVwwwwwufwwwwwgguxwffvwgfwfwwwuwgvfwfwfgwgwghgfwgwfvwwufwfwvwggvvwwwwvwwwggwggfvvwfgwvwwgwvxwwwwvgwgwhwgfvwvgfvwwfwgwuxwfwvvVvgvwgggvgwvvwfwgWwxwvffwfwwwugfgvwwwwfwuwuwwwwfwvwwwgwwwwwxvwvvvwwfwwWvwwvwwwfwvWgwwvvwwwVevwVvWfvvwVugfegvfwwwwxwWwfvggfvvfvwgwxhfvwfgvffwvwhwgwvwwgfuwwwwwxwwwWVwfwhwwvwwwgxhwvwwvgwwfwwhxwwwwwWgWvwXxfiwwwwgfWwuvgvwwgvgVguwwwWvwwwwgvVgwfWvfwwxfwggwugvvvvwgwwwwwwwgvwvwwwwghggwggwgVxwxwwxwgwwwghgwwxvwgwuxwvwvwwwwwwVwvwwwgwwvgvgvgvwxvgwuwvwwxwhwfwxxwxwgwghhgvwwvwwwvwxhxfvvgvxgwwgwwxxwvvwwwwwwhxxxgwgwxggvwxxgwwxwwvwgwvxwxvxvwwxxwgwvwxwwwwxxwvgwwxxxvwwfwwvvxxwwwwwwwvwwxxwxxxvwwwwxwgwwxwwwwxvxfwvfgwvWwwwxwwxfwvwgwwvwwwwxxWfuvwwgwwgxwwwxwwwwvwwwwxxwwwwwwwwhxXfuwgwwghgxxxhxvxwhwxWwghwhwwwxfxwwwwXfwwwwwwwxgvwghwvwwvwwwvwgvwwwgwwhxwxgwxwwwwxwwwwwvwwwfwwgwwxgwwwvxxxvgwwwhwgwvxwgvwvwwvxxuwwwVwvvvgwgvffwfwvwggfwvwgwfWgfwwwfewwxvvwgfwVwwxwwwgvxwwgwgxhfvgggvwvwgvwwwwwWwwwwfwgwwfwfvvwgxvwwwwxwfvwwgwvgwwgvwwgwwwwvfegvwwfvwfwwwVgWVfwwwvffwvxwgwvggwwwxgwwfwwwwwwwgwvwfvgwewwwwvwwvvWwvWwwwwffWVgfgxwxwwwwvwgwwgwwgwwwxgvwgwVewgVfwvvfghVfxggfvffgfwgwWwVfwffwwffwwwwwgVfwvwwwWfwwwwghgwwgwwgfwfvhvwfwgwwxvWgwwWWgevvwxwwhgwwwwvwgwghhwwggvhvvxgVvvwvvwVwwwwghVvWVggwWfffwwwgfVvvwgvfwgxWggvwwvvgwwwgwwwgwwwwfgwwwwwxwwgggXfwVgexfffwxxxxwwwxghwwgwwghgwwwwwwwwwwwvwwwgvwggwwhgfvgxwwggwgxwgwwwfwwwxwxwwhwvwvwvwgwewvvwwvvfwgwwxwwgwffxvexxvwvwwhwwxwxxxgwwxwvhwvvxgwvwwxwwgwwwwwwwxwwwwwxwwwwxwwxxxxwwxwxvwggwwwwfwvwvwwgwwvwwwwgewwgwxgwxxvwwvwxwwwgxwwgwwwwwxwwwwgxgwvwwwxwxfwwwhwwgwwwxxwwvhxwvwhgwxwwgXwwwwxwxwwgwwwwwwxwxghwhvgwxwwwwxhwhwwgwwwgwfwwxxhhwghxvhwwwhwhwxxgxxfwwwwwwwwvwhWwwgxvhhgvgwwgwwxWhwwwwffwxxwhwxvgwxxvvwxwxgwxwvhxexxwvwxhgwwvwwggxwfwwwwtfwwVvwwfvvfUwwwwwwwwvwgvxewvevvxwwvvvwwwxfwxvvwvwgwwhevvvwwwvwwwvwwevwvwwvwxweufUTvwwwwwwwvwwwwwwvvewwxwwxxxxwwwgfwwwwwwxwvggxwxwxxgxxxwvwhxTuvveTvuUeVwVevgwVfwwwvvgvgvxvfvvfvwwwuwxfVwwwwxvwvwwwxwfwwvwvwwvwwwxgvwggfxxwwxwgwwxwvwwxxwwwwxxxxyvefewfUgffwwwwfwwwvwwxgvwwvwwwgxxgvwwwwvwxxvvwwfwwwvvwwwwwxxxwgwwxwwxwwwvvxwxxwxxfvvguwgwvfwfvwuevgggvvwxuwwwvwwvxwxwwwxvfggvvwwwwvgwvwxwxvVvxwwvvxxxxxxwgvwewfwwxwwgvxwwwxwgxxwwxgxxxxxxxvwwwvvwwxxwwwxwxxwwwxwwxxxdffueevgEgugvfwwvwfwwwfxvxgwxvxwwwwwwfxwwwvgvWxwwwgxegwwwwwvgwgxwfxxwxwxxvWwwwwvwwfxweUvvwvVfwwwwwxxvxwwvwwgvwwxwxxxwxwxwxxwwwwwwxgxwxxwgwwvgxwxVxxxuwuuvuvwfuVwwwgfwvvgvwwgwvgwwwwwwgwwwgvwwwvwwwvwvvwwwwvwxgwwwwwvwxwwwfuVvwvwvfwwgwvvfwgwwwxwwwwwwwxxxwwwwwwxxwhgxxxvxwvxxxwxxwxxxxvvwvgefWuVvvWwwgWwwwwwwvwwvgwXgvVwwwwwwvwwvwwwwwvwxwwweggvgwxxwxxwwxwwxwxwhxvxxwwguVfVwwwwwwwwvwwwwvgwwwwwwwwwxwwwxfhgugwxxxxwxwwwxwwvvvgwvwuwvwgwwvwfuvvwxwxvwxxxxwwwwvgwfwwxfxwxxwxxvxwvxvwwwwvwxxgwwgwxhxwwxwxxxxhwwwvwwxxxvhwxxwwxWvgwvgwwgwwxvwwwwvugvwvwwwxxwgxxwwxxwvwwhwxugwwuvxwwwxhxwxxxwwxxwwxxwwwwvwwggwwwhwwxwxwwxxxygxxsfgwfvvfffwwftffvwwwxxfffvwwwvgvfvvwwwvwfvwwwwwxxvwvwvffwvwVehwwwwwxgvwvwwuvuwvwwwwwxxwwxwvevwvvevfVevvvvwvgvvwwhgfwwwwwwvwfwwwwxvwwwwxwxfvwxxffuwfwvgvwwgwwwxgwxwwwxwvxwxwvgwxxwwwwxwxxxxxeefevggwfcetWuwwfffwvxwFVvWwewvwfevggwwxwwwuwvvhwxwgwwwwwwwwxgwgvxwfvwvwwwwwhgwvxwwwgwgxwwwwvwwwwxwxxwwwxuwfedvfwwvffwfwwggvfxwfwgwggfwxxwxwfwwwxfxgvxwwwvvwvwwgwwwwvwvhxwvgxwwwxwwxxwwxxffvWfvgvvwvwvvgeVfgwwxvvwxxxufvvwwwwwwxxxWgvwwvhwxwwvuVuGfhvwwgwwxwwxwxwwwxwwxwxwhxwxvxwvwxxxwvgwvwfvwwwwwwggwwwwwwwvwxwwwwwwxxxwwwgwXxxwwxwfvwwwwwxxwwwwxxxxwwxgwxgwxwxxxxxxwwxxeefdfwwxvufwgvx6VuWwwgwwwwwvUwwwwwgwwwwgxwwhxwwwXxggwwwwfvxwwwwxxwfghwvwvwwwxvvwWwwwwgxgwwxxxhwxwwhwwwwwwfwffvwwxfgvwwgwwgwxwvwwwwwwgwgwwwxwxwwxwgxgwxwxwwwwwwwwwwwwxwwwwwwwxwwxxgwxxwhwfvwwvwwwvvxwfwvwwgwvvvvwvwvvgwvuwwvwwwwwwvxwvvwxwwxwvgvvvwvwwwwwwwwwwwxwxwgvwwwwwxvxxxwxwwfvwvvwwfwvvuwwvwgwwvwwwwhwuwwwxwwhwvvwwwwwfwgwwxwfwxwwgwwxvxxvxxvvwvvfffVfgvvwvVfvwvgwgfwfwffvvgvvvvwwwvwfwuwvgwvwgvxwwwwwvxwvvxwwvwwvwwwgwgwgxxvwvwgwwggvwuwwwwwxvwwwwwfvvvwvvvwvwwwuwvxgvwwwwwwvwwxgwwgwgwgxwxwwwwvwwwwggWwvhwwxxvgxwwgwvwwwwgwwewvwgwwfvwfwuwvwwxwwvwwwwwxxwxxxggwvwwwwwvwwwwhwwwwwxwvwwwwxxwwwwxxwwwvuwwxwgvwxvvwxwwxwwwxwwwxxxwxwxwwxwxwwxhfwwxxwwxxxxxwwxxwvfwvvvvvgvwwvgwfvwvvwwgwwggwfwwgwwwwxxvhgwwfwwwgwwwgxgwwwwwwhwwwwwxwwwxwwgwxwvwvxghwgxxwxvvvwwwwwwxwuwwvwgvwwwwwxwwxwwwxwhwxwvwvxwwwvwwxvwvxxxhfwxxwwxwvwwxxwwwwwxwwwvwwwgwxwufvwwwwwwxwvwvxgvwwxwwwwwwxwwvwwvwvggvxvxxwxwwwvxvwvwwxwwxwwwwvwwvgwevvwwfwwvwwwwvwwxwvwxwwvwvgxwfwvxwwwwwwxgwxwxwwggvxvwevwfwgfgvvwwwwfgwwgvvwwwwwvwxwvvwwwwxwxwxxvwvvwwwxxxwxwxfwwxwxwwwxvwwwgwwufvxwxwfwxwwfgxwxwwwgwwwwxwwxxwwwwwvwwwxfwgwxgxwxwwwvxvwwwvwwwgvvwwxwwwxwwwxxwwwwwxwwxwvwwwwwxwwwwwxwxwwwwwvwvwwxwwwwwwwwwxxwxxxwgxwwxwwxxwxvwxxvxxwxxxwwwxxvwxgvwwwxwvwxgwvvwwwwxwgxwwwwgwwxxuxxwxwwxwwwxwxwwxwxwwwgwxwwxwwvxwwxwxwwwwwwwxwwwxwxxwwwwwxxxwwwxwxwwwxxwfvgwgvwvvwvvwwffwwwfvfvfwgwwwfwvwwwgwfvvffVvwwfwwwwgwxxxwfuvwwgwwwvwwvwwfxwwxwwwxwvwxvxvwxgwwxwxwvwxxxwxvwwwVwwwwvvwwhvgfwWwvwvwgwgwwwwvxxwxwgxgxwxxwwxwxwwvvwwwwvxwwvxgxxxxwxwxwxxwwxwvwfffwvvffvwvwgfegvwfwgfvffwfvwvwwgvvwgfwwwwwggvfgWwfwgwgwwwxwwfxhwwwgwxfxwwwwwwwgfXwxXwwgwwvvgvhvxwwxwwwwgVwvwwvxwvwvxwwfvfwxwvwwwwwvgwwxwwwwwwwgwwwwvxvwWwwxwxxwvhgfwwwwwwwwwvvxxxxxxwwgvwvgvwvwwwvxvggwgwwvvvwvvwwvwwwvwwxwwwvwxxwgwwwwgwwwwwxwwwxfvhxxwwwwwwwxxwwxxxwhgwwvxwvxwwwwwxwwxgvwfwwwhvgwxvxwwgwwwwxwxwgxwwwfgwwwwxvwwwwxwwwghvhfwxwvxxwhwxwxwwwwvvxwgwvwwggvvwwwvwwvwwwgwgwgwwwwwwwvwwgwxhvwvxgwwwggwgwxggwwxgxwwwxwwwxwwwwxwxgxvwgwxwwwwwwxgwwvxxhwxwfwwwgwgwwxxxvxxwwwgwxwxwxwwxxwwwwxwvwxwwwwgxgxwxwwvwwxwwvwxwvwxxwwwwwxgwwxhhxtgvvwwwVuvwuwwgwvfwvwwvewwwwVuwwvgwwwwwvVfvwwgwwvwwdfuvwvvhvvxvxfvwfvwvggwxvwvwvwvwxetuwuvwvwwvwwvEevwwvuvhwwvwvwxwwxxwwwwgvwxxgxvffwwgvWwxwwwwwwxvwxwwwvwxwxxxwghxxwxwxxetuvweVveVvwfwvweTfevwwfegfwvwfVfvvgvgvvwwwxVevfWwwvvvwxwwfvvfwWvWwwvwgwwwgxwhgvwwwvfwvgwgvwwvwwwwwWwwwwwhxwwvefufwwwgVvwwxfevUwWgwwwxwxwvvwvwvwwxwuwwwfwvvgwwwwvwwwwwvgvwwxxwwgwhwwxvxxwwwxxwwwexwxfwxwgxwUuugtevwuwwweufvvfwwvwvfwfwvwgwwxwvwxvwxxuvgvfgWwvwvwwwvwwvwwvwwwwgwwwxwwxxwwgvgvxwwwxffxwxhwxwwwwwgwvwwxwwuxxxwxgwvwvwwwxxwwxwwxwxwxwvwxxxvxwwwvvxgxdVfugvvguwwwffefxfWvwwwwghFfugwwhwwwvwxwwfwwwwwfhwwxwfvwwgvWwwwwwwwggwwwxwwwggwvwwwwwwwvwwwwgwxwffvvhgwvwwwwwgewvwwgwwwwwwwwxwwxxwwwwwwwwwwwxwwwvwwvxwggxxxwwwxwwvgwwwwudfwevwgfgwxvvvwufwgwvfvVvgvvxwvvvvwvvwvvfvvggwwwvwvfvgvhwvgwwxwgfvwgwguwwwvwfwgwwwvvgwwwwxwwvvwwwwwwwfvvvvwwgvwvwvwuvgwWvvwwxwxvuxwwvgxwwwwgvxwwwxxwwxvvwwvvwxwwvxwwfwwwxxwxxwxhxwwxggxxwxxxvxfuvvwwgffvfuwvvFevvgvwfdffuwgxwffggwwuwffwwwhVuvwuvvvvwwWwwwwwwwwwwvwwwwxwgvwwwgwvwwvgxxwwwwwvwxwwwvwwwwfgwxvwffwvwuvfwfwvvuwvfwwwwwwxwwvvxwvwwwwwwvwwwvvxwwwwwwxwwvwvxvwwvxxvwwwwwxwxvwwxghvfxwwxwfuvvfvwwWvwugffwvfvwXuwwwwvvvwgwgfwxvwxwwvgwwxgwwwvuwgwvwwvvwvwvwwgxuxwvwvwvgwwxfvgwvvxvwvwwvwhxxgxwvWwwvxxwxwwwwwvwwgwxxggxwxgwxxggxxwxgxwxxwwxwwvxxwwxxwwxwwwxwwwwhvxWwwxwxufVvwvFwfwwwwgfdhwwfwugvggvxwfvvwwwhfgwwwwwwvwwwggwfgxgwwvvwvxwwwwwwgwwxvwfgwwxgvwwxwwxxwxwxwwwwwgxexgwvgwxvwvvwvuwwwxwwxvwwfwwuwwwwwwwuxwwwxwxwxxwwwhwxgwxxxxwxwxwwgwhwwwxgxxwxwxxxxxfwwXwxvwwwVevwvwwwfvwvgwgwfwwwVwwgwwvwwfwgwwwvwvwwwvgwwwwvgwxwwwwwxwwwgwwwwwgwwvwwxwwwwwwxwvwxxxwwwxwwwgwhwwxwwwvwgfvwwvwwVwwwwvgvwwggwwwwxhwvxwwxxxxxwwwwvwwxwxwwxwwwxwxxxwwwxwwxwwxwwxgwwxxvvgfwggwwfVvwvvfwgggvwgVuWUvwgwvwwWwvvwgwwvwxwVwwxwwgwxxvwxwfwwwwvwggwxvwwfvwgxwxvgwxwxwgwwxwwwwvwwwwwxwwwxxwwfgwvwvfwwxvwfVwwxwxvwwwwwwvxwxwwvwxwxwxgwwvwwwwxxwvwwwxvwwwwxwxgvxxhwwxwwhxwxwwwwwxvwvvgwvwwwwxwfvwfwwvwvvxwvwgwwxwxxxwxwwvwvwwvwwxwvwwwxxxwwxwwwwwxwxxxwwwvvwgwwxxgwwwxxxgwwwwxxwxxwwwwxxhhxxwwwwxwwxxwxxxwhhwxxxwxxxwwxxwxxxwxwxxwggwwwfwwxwWfwwxwvxwwhvwwwvwxwwxwwxwghwxxwxxgvwwwxwwwwwwxwxxwwgxxxwwwwxxwhhwxwwxwxxxxxxxwvgwwwwwwwhwxwwxxwxxwxxxwxwwwxxxwwxxhhwxxxwwwhxwwxgxwvfwvvwxgvvwwxxwgwwwvvvgvgvwwwwwwwwxgvwwxwwwgxwwwxxwwxvxwvvgvvwwwwwwwwxwxvxvgvgvfwvwxxxxxwwxfwwxxwxxvxwxxxxxyhvfwvfvggfvgwwgwgwfvwwwwfwggxwwwxwwfwxwvxxxwgvwwwwwwwxxgwxwvxwwxxwxvxgvgvwvvwwwwxwwwxwwxvfwvwwvwwwwxwxxwgxwvwxxwwwxxwwxwgvvwxwwvvxwwwgwwwwwwxxxwxwwvvvwwwxxvwxwwxxwwwxwwgwhxxwwvgwxxxxxwxxxxxwxwwxhxxxxxwgfwwwwfwwvwwwwwwxwwwwwwvgwwwwxwwvvwwwxwxwxxxxwxxwwxwxwxwwwwwvwxxwwwxxxxxxwxwxxxhxxwuevvvvvwfwwwvvvwwwgwwvwgvwvwwvwwwfeuwwwwwvwvvwwxgwwwxwgewwwwvgvwwwwwwwwwvwwwvwwwvxwxwxvvvgvgWvwvwgwwwwvgwwwxhgfvwvwvwgwxxwwxxwxhwwwwwvwxwwwwhwfwwuwxxwvxwxxwwxfuvvufuvfUevwwvVfvwwvgvvvwggveVfuwvwveVgwxggvwwwwwvfwggwwgwgwxwwwvwwVwxwxwwxfwxwwwgwgwxxwwwwwxgvwvxwxxfUvvuvwwfxfwvvwwwvwvwwwfwwvwuxxwwvwwgwwwwwwxxwwxwggwfwwwxxwwgxxgxwxxxwwxwwxwwwwwwvxvwwvgvgfvwwvwgvwwwwxgwwfVvwxhwvvwvxgvwhwwhxwwwwgwwwxwwwwwxwxxwxwwwwvwxwwhvgvxgvwwwvwvwxgwxxwwwgxxxwwwwwwwwwwhwxxxxxwxwwxxxxxxwwxxxxwxxxugvgvvwwwwgwvwVvwgwgvwWwwwwwwwwwwgvwwggvwwwwvwwwgwvwgwwwwwwwwwgvwwgvxxWxhwvwwwwWwwxgwwwxwwffgwwwxvwxvgwwwhwwwxwxvwxxxwxwxwwxxwxxxwxwwxxwxxxwwwxwxxxuvxfvwwgwxwfgwwwwwwgvwwhxWgvggvwwwwfgwwvwwxwggwuvwgwwwwwwxwvwxxwwwwwxwhwwwxwxwwwwwwxgxxxwwxxwwwwvxvwfwfvwwxxwgwwwxxxwwwwwwwwwwwwxxxwwxxwvvwvwwxxwxxgwxxxxxxxwxwvwwvfuvfWgfevwwWwvgwwwgwwgvxvwwfwwwwvgWvwxxwwwwxwwwwwwvxwwxxwwgwwwvwwwwwxwxwwwxxwxwxwxwxwvhwxwwwggvwgvffwwxwxvgwxwwwwxxwwwxwwhwxwxxxwgxwwxwxwhwwxwwwxwwxwxwwvwxxxxxwwwwfwwwvwxxgWgvwwwgxxxwwwwwwwwwwwxwwwhxwxwxxwgxwvwwxhwwwxxxwwxwwvwwwwwwwxwxxxxwxxwwwxxhxxwxxwxxxxwxxxxxxxxwgwgvwguwhwxgvwxwwwwxxwvhwwhwxxwxwgxwwxwxxwxxwwwwxxxxxwxxwxwwwwxwxxxxwxwwvwgwwxwwwxwwwwwxxxxxxxxwxwxxxxxxxwxwwxxxwwwwvgwwwwvwvwgwwvwxwwwxvvwwewwvxvgffgfwvwwvxxwwgxwwwvwwwvwxxwuwxvwfwwwxwxwwwwwwfvwwwgffwwwwxwwvgwwwxwwwwuvwxwggwwwwwwwxwwwxxhwwwwvwxxxwwxwvgwwfvgwwvwugwVwwvxwwefwwggffwvvwwwwgfvwgwfwxwwxwvgxwwxwfwwwxwwxvxwxevvwxxxwwwwgffwvwvwvwgewvwgwvgxwwwwwwwvxxwvvxxxvxxwwvwxwwxwwxvwvwvxxxwxwxxxwxwxxxxxvvwwgwwwwxwwwvgwwwwwwwgvvvxxxvxxwwwvfvxvwwwxwwxxwwwwwwxvwxhwvwwvwwwxwwhwvwwvwwwxwuxwxxvxxwxxvxxwxyxxxxggwwvwgwgwgvfgWwxwxxxwwwwwwwwxwwxwxxvvwwwxxvwwvvwwwxwxxvxxwwwwwwxxxvxwfwwxuxwwxwxxxxwwxvxxwxwxwxxwvxwwwwwwvwvhfgwwwwwwwvwwwVwwgvwwvfwvwwwwffvWwwxwxgvxxwwhWxwxwxwxwxwgvwwwwxwxwxxxwwwwwwwwwwvwwwwhwwxwwwwwwwwwwwwxwvgxwwxxwwwxxwxxxwxwwwwgxvwfgVwwgwwvwwgEVvwwuwwwwwxxwwwwwwwvfVvgwgwwwwwwwwwwWwwwxgwwwwwwxwwxxwwwfwwxxwwwwwwwwwwwwvwwwwwwwgxxvxwxwwxxxwfxwxxwwwxxxxwwxwxwwwwwwxwxxxwxxxxwwwwxwwwwwxwwwwhwwwfgvvwxfwxxwwxwwwwwwxxwxwxwwwwfwxwxwwwxfgxwwwhwwxxxxwwwhgxxxxxhhwxwxxxxwwyvwxwwwwvgvxwwxxxgxwvwwvwwgwwxwhxwwwwwxwxxwxwwwwxwwhwxxwwxuwxwwwwwvxwwgxxxxwgxwwwxxxxxxwxxxxxxwwwxwxwwwvhwvvwwwxxgUgwwwwVegfvuugwwhwwvgvwwfwUfvfwxwgwwxwvwxwwgvwgxxxfggwgfwxwxxgwwxxxwwxxwfgvwwfwwgvvwvwwxwwwwwwwxxwwwwwwxxxgxxwwwxxxxwxxwxxwxwwwwxwwwgvwwwgwwffwuwVwvUfvfffvgwVwgwUVvfvvwgvwvwwwfvvffvgwwxwvwfwwwwwwgvxxwxgwwwgxhxwxwwgwgwfxxxhwxwwwwwwwgvwwwwwwwfwxgwwwghxwwwwxwxxwwwvgxxxxwxwwwxwgwxvwxwwwhxgwwwwwxxxxxwxxwwxwfgxxwfwgwwwWewexwwgxwwwwwxgxxwwwxxxwfvvwxhvxwhwwxxvxwxwwxwxwxwhwwvgwwwwwwwgvhxxwwgfxxXxwxxwxxwxxxxxvwxxxxxxxxxxxwwggvfwwwwgwfvvwgVwvwwgwWwwxwwwwwvwxwgggwxwfxgvwwgxxwvwxxwxxwxwxxxwwgwxwwxxwwxxwxwwxxfwwwxwxwwghgxwwwxwxxxxxxgwgxhxxxgwwwxxwwxxxwxhxxxvewxfuwwfvvwgvvwwwvwgwwwfwvwvffwffwwgvvwfwwwwwwwgwgwwwwvwvwwwxwwwxwwwwwvvwxxwvvvxxxxwvwvvvwwgwwgwwfewvwwggvwfwwwwvwwxwwwwwwvxxwwgwvwvwxxxwxwwxxxwwvxxgxwxwxxxwvvwgvVewfwvfuvwwgwfwwvwvwwufvfgweewgvvgfvvwgvvwwuwwvgwwgwwwwwwwwwxwgwvxxxwxxwxxxwxwwwwvwxwwgwwwwwwxwxwvwwwfvgwwxwgwxvwwxvwwgwwvwgwwwwwxxwwxwwxwwwwwwvwwxxvwwxxwxwwwvwxxfwxxvvwvwfwvwwvwwuvwvwwwvwgwgwwwfwfgwwwwwwwgwgwwvwwxxwwvvwwwwgwwxxwwwwwwwxwgwwwwgvxxxwxffgvvfwwwgwwwwwwxwwxxwwgvwwxwxxwgwwfvwxwxhgxxwfvxwwxxwgxgwwwwxvxxxwxxwxwxxxvwgwVwewvwwfxwgvvxwvwwvxwwwgxVwewvgwxvwfhgwvwwwgwwwwwhxwxxwwvwwxwgwxxxgwwxxxgvwxvwwwxxxwgxvwxxwxwwwwgvwwfwwwwgwvxwwxwxwxfwwgwwwwwxxwxxxwxwvwwwwwwxwxwwwgxwwxwxxwwwvwwwvvgvvwwgvgwvvfgwgwffvwffvefegwwwwwxgvwwwwxwgvxwxwwvgwwwwwwwwwwwwwwwwwwwwxxwwwvvwwwwwwwwwxwgwwxxwxgwggwvwwwvwwwxxwxwwwvwwwvxxwxxwwwxwvxwvvwvgTEwwgwwvfvvgvwwgvgfwvgvwwwffwggefuvvwhvwvwgxwfwvwwwwwwwwgwwxwwxwwwxxwwwwwvvwxxxwxwxxwvwwwwwwwwwwwvwwwhwwwwwgwgxwwxxxwwhhvxwwwwwxwxvwwxxwxxwwwwwwxgwwwwwwwvwwwxwgwwuuvgxwwwwwgvvwwwwwwwwwxwwwxwwwwuwwwwwwgwxwxwwwwwwhvgwvwvwwwxxwwwwwxwwxxwwwxxhxvwxvxwxxxvwxxwwxxxxwxxwvwwvvwfwwwwvhgwwvwvgvvvwvvvwwwxwwgwwwxxwwwxwwxwwhwxxgvwwwxwvvwxxxxwvwvgwxxxwxwwwwwwvwvwxwwxwwwxwwxwwwxwxxwxxxxwxwwxxxwxxxxxxwwxwxxxvgwwgfwwfvwwwgwwggggwwxwffwfewfvgfvvfwwwwevweVgvggvwwwwwwvxgwwgvgwuvwwvxfxwwwfvxwvwwfwxgwwwgwxvgwwgwgxwxxxwgwgwwwwwggvvwwvgwwwwwxwwwwxwwgvwwwwvfxvwwxwwwwxwwxvgwvwwwwwwwwwwxxwxwwxvfwxxwwfxxwhxghwxwxxgfwgvgwffwWgweVffVegvfvwWgfgVeVgwwgwvvwwwgvvfvVewgvggfvwgfwwwxwgwxwvvwwgggwwxwxhxxwvwwgewwwgxgwvwwwwwvxgwwxxwxwwwfgwwwwvwxwwwgvhwwwvwxvxvxwwwvwwwwwwxwxwwwwwxxhwwwxfwvfwwwxwwxxwwwxwxvwxxwwxwxwewvxvwggxwwwwvguwwVvwvgwwwuwgffvwfwwvwxhxwwwwfwxwwwwgvvffxwvwwwwwxuvwgwwwfvhvfgvwwwxfwwwwwvfvvwwxwxwwwvxwwxgwgwxvwwvuwxwxxwwghxvwwghvxwwfwwxgxwwvwghwgwgwwwvwwvgvwwwvxxwwgwgvwwuxwxvwwhvxwXggwxwggwvfgfgwwwwgwvwfvffwgvWwgwwgfwwwwggxgwxggvwvwhwhwwwxvwwgxgwwxwwgwwwvgvwWfgxxxwwwwxhwhvxwuhwxwwwxxWwvwvwwxwxwxwwfwwwgxwwwwxwwwwwwwxxwwwwxxxvwwwxwxxxvuggwxxvhwxwwfgwgwWvxwwgtwfwfvvwwwwfvfvwwwwvwvwwwxfvvwfffwvwwvuwwwwxxwwwwvwwevwwwvwwxwvxfvwgwvwfvvwwxxxwxvuwwvfwfvxwwgfxwwwwxwvVevwvwwwwvwwvwxxxvWfxwwwxwwhwvxxwxxwwxxxxvxwwwwwxeevffffgffvffvgvggwvwwfwwwVdvuWeefgwgwfvvwwvwwwwwxgwvwvwwvwwwgwgwwwwxwxxxwwvwwfwvwvwwxwwxxxwvwxvxfVevgwggwwxgwvwwwwwvwvwfwfwwwgwwwxwwwwwxxwwwvwwwwwwwwvwvwhwxwwwvwwwxwxfvfggvevuvwgwvvwvxwwxvwwvgwwwxwwxwxwxfffgwvwwwxwvxWwuwxxwwwvxwwxxwwwvfwxwfwwwwwwhwwwwwwxvvxxwvwxxxwgvwwxxwxxwwxwxxgwwxxxxwxwwxxUfuuFfdfwwwxwgfxwwwxgwwwwfvvwwwwwwgxwwvvfwvxwhxwwvvwvwwwgwwwwwwwwwwwxwvggwxwwwwgwwxxwwvxfwvwwwvwwwwwwwgwwwwgvwxwwwwxxwwwgxxwwvwxxwwxxwwwwwwvguvvwwvwwvvwvfvwwwwwwwwwvfgwvwgwvwwvwwvwwwwwfvvwfuxwwwwwwwvwfwwwwwwwgwxwwxwwvvvuwvwxxwgwwwwwxwwxwwvwwvwwwwvvwwvwxwxwxxwwfvwwvfxxwwwwxxwwwfwwwwwwxxxxwwwwwwxxxxwxxwxwxgvwvwwvfvwvfvwwfffgwwfvvwwwwwgwwvfwvwufgwuwwwvwfvwwwwgwgwvwwwwxwwwwxwwwwvwhwwwxwwxwvvwwwwwwwxwxwhwwgwvwxwwwfvwwvwwwvgwvwxvxwwwwgwwwuwwwwwwwvxwwxxxwxwfwwwxxwwwwxxxvxwxwwxxwwvfvwvwfwvwwfuwwvwwvggwwxwwwwwwvwwhwwxgvwwvwuwvxwwwwxgwxxxwwvxwwwwwxwwxwwwvxvwwwwwxwhvwxvwxxwwwwxwwxvxxwwwxwwxxwwuwxhwvwwxwwwxwwvwwwxxwwwxwxfvwvwvvwvuwwwvwwwwwwvxwwgwwwwwvwwxxwwwwwwwwwvvgwwwxvwwvvwwwwwwwwwwwxwwwwhgwxxxwxwwwwxwwwxvwgwxxwgggvxwwxuvwxxxxwwxwxxwwwxwwwxxxxwxwxwxwgvgfwxwxwwwxxxxvuvwgfgwuvwwugfwwvwwwgggvwwwwwvgvwwwfvvwgvxgwwwvvwwwwvvwwwxwvwwgfvvxwvvvwgvwxwvgxwwxwwwwvwwwhgwwfvxfuvvwvwwwwwwxwwxwwwwwwwwwwgxwwwgwvwvwwxgwwxwwwwwwwwwwwhwwxxgwxhwxxwxxxxxxxxwfgwWWfvfWfwuUffgWgvvgWfeuffgfvWvwwffgvgvwewwgwgxwvwgugwwvfwwwwhwgwwwwwwwvufxwwwxwwwgwvwwwvwhwwwvvvxwwxwxgwwwwwgvwfwwwwgfwvwvwwvwwggwwwwwwwxwvwwwxxwxvwxwwwwwwxwwxwvxwwwxwwwwwwufgvhxvwwwxvvwwwwxxwwxxxxwxgwgvvwfwvwvwvvgwwwvwwvwvvwwwvuwgwwwvwvvwwhwwwwwhwwwwwvvwgxwwwgwwwwgwxwxwwxxwwxwwxwwwwwwvwwwwwgwfwvwwxxxwwwggwgwvxhhXghxghwwxxxvxwwxwwxwxwwxwxwgxxxhxxwhwfwgUfVgWwuwfgvwgwwwwguWfwggwufwwxwgwwwgvxwwwwgwwwxwxwwxgwwwwwuwgwwxwxhhwxvwxgwuvxwxvvwwxwwwhwwxwvwggfwwwgwwwwwvwwxxwwwwvwxhxwwwwvhwxxwvxxwwxxxwxxwwxwwwwxwwwxwxxxxxwxwxhwxxxwxwxxxwhwwvwwxwxwwfvwwwwwxwwwwwxgvwxwgwxwwxwwwwwwwxxwxwwwwwwwxwwwxxxxwwxfvxwwvwwwxxwwvwvgxwxxxxvxwwxwxwxxxxwwwwwgwvwgvwgvxwvwggfwwxxwwgvwffvwwxwwwwwwxwwxwwxwwwwwwxxwwxxwxxwwwwxwwwxwwvwfwvwwwwwxwwwwxwxwwxxwxwwxxwwwwwwxxxwwwxxxxxwvwwxvwwwwxxwwwgwwwxxwxwxwxwxwwxxxxxxxwxxxwxwwwwvxxvwxxxwxxwwgvvwwwwwxxxxxwwwxwwwwwwxxxxwwwxwxwwxxwxxwwwxxxwwxvwwxxxxxwwxxxxxxxxwwwxvwwwwwwxfvvvwvfuufwvwwvwggfvvfwwxgwwwxgxwwvvfwwxxwwvwxvvxxwxwvwwwxxwgfvwfvxwxwxwvwwxwwwwgxwwxxwwxwxwwwxxwwvxfvwwUVvwwwxgfeugwvwwvwwgvggwufugwwwxggvwfvwwwwvgwwwwwwwwwvwxxwhxvwwwvwgwvxwwxxwwwwvvvwwwhwwwwwwwwwxwwwwwwxwxxwwwxwwxxwvwwxxxxwwwwwxwwvffvvwwwwwxxvwwxwxvhwwwvwwxxwwxwwvxwvwxwxwxgxhwwwxxwxhxwwwwwxwxwxxxgwxwwwugegwxxvwgwwxgvwwxwwwwwwwxwwxfgwwwhvwwwxwwxxwgxwvxxwxwwxwwwwvxhxxwwwwxwxxwxwwwxwwxwwxxwxwxwxxxxwwxvewwwvwvvxvgvwwvwwwgwwewfwgwwvufvwwwvuwwvvwuggvgvwggwxwwwwwuwwwwxwwwwxwxgwvwwxxgvwwguxwwwwuwwxwwgxxwuxvgwwwwxwvwWgwwwgwvgxwhwwwwvwfgwvwwgwgwwwwwxgwwwwhgwxvxwwWxwwwxwwwwwwwwgxwvwxxwwvwwxfvuvvwvvvvggfvufwgUffwfwgwgeVvvftwwwvwwwwfdvVwgggdgwwwfxwwwwgwwwwwwwwxxgwwgwxgvvwhgwvvgwwwwwgvgxWxvwwwgwwwwfvwwvvvwggwwvvwVwfvgwwwwxwfwvvwvvwwwwwvwwvgwwgwwwwwgwvvwwwwwuxwvwwwwhxuwxxvwwxwwxwwwvvvwxxwwwwwwwvwvvvwvwuwwuwwfwwwwwwgwwwwggwwuwwwwvxwgvwgwwvwxwxhwwwwwwwxwwvwwwwwgwxxgwfwwxwgwwwwwvwxwwxwwwwwxxwwxwwhwxwuxwgWwgwwwxxwwxvwxvxwxWwwwxxxxxgwwwhwwwwwxxwxgxxwxxwxxvwgvwvggwvVfffwgvWvwwwwwwwgvuxvwfvwwwwvwwwfWfwWhfwWwwwxwwwwxvwxwwwwwwxgwwwgxgwvgwxwwwvvfwgWgwxxwwxwwwvwwvwvwwvgvwwwgxwwwxwxxxwxwgwwwwwgwxwwwxwwxwxwxhwwxwwwgwgwwxxwxvwwfvwvwvvwvvuvwgvwwwfvvvwwwwvfvwxgvwwvwwwwwgvwxwwwxxxuvwwvwwvwvvwwwwwxhwwwwvwwxwxvxhwxwwxwxwwwwwwuwwwwwgvwgvwgwvwwxwwwwgwxwxwxxwwxgwwwwwwwwwxwwxwwwvwwxxwwwwggvvvffvwwvvfuvvufvvfgwgvvwfvuveuwveeffvvwxwwgvwgvuufvwwgvwwwwgwwfgvwwvwuwwwwwwgvwwwwwwvvfwxwwwwxxwwwwvxvwgvwwwewwwwffwwwwwwwwwwwwwwwvxwwwwwvvxwwxwwwwxxxxgwwwxwxwwvwfwwwxwwxwwxxxxwwvfvwvwwvvvvwwwwwwvvwxwwvwwuvwvwxwwwwwwuwwwvxwwuwvwxwwwwwxxxvwwwwwwwwxxwvwwwxxxwwwvgwwwxwwxxwwxwwuxvxwwwwwuwxwwxxxwwxwxxxwwvxxwwwxgwwxxwwwwwxwxwwgvwwvvwfvvvwvwwwvvwwvwwwwwwwwwvwwwwwwgxwwvwwwwwwwwxwwwwwwwvwvwxwwwwwwwxxffxxxwghwwwwxxvxgwxwxwwxwwwxwxwwwxggvvxwwxxxxxwxwwwwwxxxxxxwwwwwxxxxwwwwgvwwhxxxwwwwwgvwwvgwwwvgwwwvwwwfgufwwwxvgwvwvwwwwwfvwWgvgwwwwwvgvxxwwxwwwwwxwgvwwvwxxwwwxwwwwvwwwwwwhvWgwxxxwxfwgwvxwfwvwwwxwwxxxwwgwwwxxxwxwxwwxwxwwwvgvwwvvwwwfvffgwwwwgwwgfffwgvgvwgfxffvgwwwvwwvwwxwvgxwgxwxwwxwwxwxwxwwvvvwwvvwvwwxxxwxxwwwuwwwwwwwxxgvwwvxwvwvgewgwwwwxxwvwwvgwwxwwwwwxwwwwwwxwwvwwxxwwwwwwfwwwvwwhgwgwvgvhwxxwvwwvwwvvwvgwwwxvwxwvwwwwxwwxxwxxwwwvwwwwxgxwvvwxvwxwxwvwwxwxwxxwxxxwwxxgwvvwvwxvwgxwvwvwwwwwvwwgwwwwfvwhxxwgwxxxwwwwvwxwwwwwwvxxwwxwxwwxwwwxxwwxwwxxwwwwwwxxxwvwwvxwwxxwwxxxwwwwxxwxxxxxxwwwwwWgffwguVWvfvfWxvVvvggfffWgwgvgfwwfwfuugvgfgvfgfvvgwwwwwwwhgggwhvwwvwwgwxxwfwxwwxwWwwwwwwwwwwwwwwwwwxxxwwgvxvgvwwwwwwfwwgwvxwwwwxvgwgwwgvwwwwwwwwwwgwgwxxwxwwgwhwwwwxwwhwwxxwxxxwxxwgxxwwxxxxwwgweggVuwfWvgfuUgWWgvfffuvfwwvfwggfuufVuuwwggfffwwwvwwwwwvvwxxwxgWxwgxxvxggxwxwxxxwwwwhwxwvwxwvvwwhwxwwwwwwxhxvwwwhwwwwwwxxwwwwwxxgwwwxwwvwwwwwwxwwwxwgvxxwwxwxwxwxxwwwxxwwxvxwwwwxwwxxxxwwxwgwugvvvWwwgvvgvgwfgwehwgwVwgvhvwvvgggvwwxgwwgxwwxxxvvwwwxwwwxxxxwwwxwwxwxxxwwwxwxxgwvxwwxwwgxxwxxwwwxwwwwwxhwwhwwxwxwwwxxxwwxwxwwwxxxhwxxxwxvvvwvggggWwwfgwggwvwvwgwwwwvvggwxxwxxwxvwwwgwwwwxwvwxxxwxwwxwwwwxxxwwxxwxvxxwwwwxwxwxwwxwxxxxwwxwxxwwwxxxwxxxxxxxxwxxxxxxwwxxxxwxxhwxwsfwgfwvugfgwvvfwvwwwwwwwwwwwfwuggwwugwwwwxxxwvvvwuvwfwwvefvgwvwxgxuwxwwufwvgwwwwxwgxwgxxxwvfgwwSEvwvvwvfvgwffwwwwwxxwvvwwvwwwwwxxwxvffwvfwwwwwwwwxwwwwxwxwwxwvwvwgwwwxxwwvvvuvevvwffwuvwwwfwvwvgvefwvugwwugwwwwwgvwwwwgwxxwwhwwvvvvvgvwwwvugwwwwwwwxwwwwwwwwwwwgwwwwwgxxhxvwxxxvSEvvfwgwwwwwwwwvwugwwfxwwfwwvvxwwxwwwxwxwwwfwwwugwwwwwwvwxxwwwxwwxwxxwxxwwxwxxxwwwxvxwxvvvfvuguvwgwvwgwwvwwxwwvgwxwvwvgwvvwfvwwudwwfvwwwwuxwwvwwwwwwhxwwwgwvwwxxwvfvwwvwwgvwwwgvgwvwgwwgxvvwwwwhxxgwwwwxwxwwxwuwwwwgwwgwwwxwwxxxxwwvwwwxvxxwxwwwwxxwwvuguvwwwwwvfwwfvfwugxdvwfwxxwwwwwwwwgwwxwvxwwwwugwwwwwvwwwwvwxwwwhvwxwwwxwwvxwxxwwxvxxwwvgwwwxwgfgwwwwwwwgwwhwvvxvwwxxxvxxhvxvwwxvxxwwvwwxwwwwwvwwwwwwwxxxxwwwtfvvvvwwwwwvwfwffwvwwwwgwxwwwwfgwvxvvwxhwwfvvwwfevguvwwwgvwwwxvvwwwvwvvwwvxwwwvwgxwxxfvvgwfwgDUwwwwvufwvwwvvggwgwgvvvwwgxxxvwvxvwxvffwvwvwwwwxxgvwgxwwgwwxxwwwvwxxwwwxuuvvwfwwfVfvvwwvwVwvwfevwwxvvfgwwhwugwwhwvwwwxwwvwwwxxufuvgwvwwvwwvWwwvxwwfwwxwwWvwgwwwxxwvgwwgxwwgxxeDUvfvwwwfggwfvvgwwwwwwxwxvvwvwwvwwxwxwwvwwwxwvuvwgwwvwghxvwvwxwwvgwwxwxgwwwwwfugvwwvfwwwwvwVuwgwxwfwwwwwwwgwwxvxxxxxxvwevvvvvwwvvwvwvxwwwuwvwxxfwwwwwwxwvwwwwwwwwxxugfvugwwwwwwwwxWfgwwxwWwwxxwwwwwwwwwwxwwWwvxxgvwwvwwwwvwxvfwwhwwxgxwhxwwwxxwhxxwxxufvvwvwwgvxugvvvxwwWwwwxwwwwwwwwgvwxwuwwwwwxwvwvwvwgwvwwwwvfwwwgwwwxwwgwxwwwwwwwxvxxvvWgwwwwwxwvWvghwxwxxwwvwwxxxgwxwxwwwxwxwwwwwwxwwvvwwvwxwwegggvfwgvwwvgvgwwwwwwwWgwwwwwwvxvfwwwgxhvwwxWvwxxfwwwwgvwvgwgvvwwwxwxwxwwwwwwwvwwwwxvwxwwxxwfwfwwwgvgfwvwwvgwvwvgwwvwghwwvxxgvgxxwwwxwxwxwxxxwwgwwwvwwwwgwwwwxxhxgxwxxwxxxhwvwxwwxwwxxwxxxxxffwwvgffgwwgfvvwgwwvwwwgvwwfhwvwxwwvwwxwwwwwwfwwwhwwxwxwwwgwwwgfwfuvgwvwgggxwwwwwhgwfxwxvugxwwwwwhvxxwwwwxwhxwxwxwvggwvggwfgvwwwggwwwgwgwwwwxxwxwwwwxwwwwwxxxwxvhwxwxuvgwwwwwhvwwwxvwwwwxxxwxgwvxxxhwxwxwxxhwwwxwgvvhwgwvvfwvwVfwgwwxgvwwfxwfwwwwgxxgwxxwxwvgvwvvfvvxfwwwwgwwwwwxwwwwwgwwwwfwvxwggwwvwxwgwwwwgwxgwvfwwwWwfwxxwwwwxgwxwwwgxwxxxwwwxxwwwhwhggxxxxwvwwxwwxwwvxwvxxxxwwxwwhhwwxwwgxwxxvvwhxwxhwxxvwxvwwvwwwwwfvwwwwgwgwwggvgxwwwwwxwwwwgwwxwwvhxwxwwwxxwfwxfuvgwwwwwwgwvvwwgwgwghwwgwwxwwxwwgwgwwwxghhxhvhwxhwwwwxxhwwwwxwwgwwhgggxwwwwwvwwwxxvwxwwvwxwxwvwwwwxwxwxwgwwwhxwwxwxxwxwxxwwxxwwvxghwxtfwgwwwgwvwvwwffwfwwwvwvwxwwvvwwwxxwwvvwwwwxwvwfwfwfvwvwwfwvxwwwgxvvvwuvwxwvvwvxwxwwwfwwwVfwwwvwTUwwxwwxwfwwwguwfxwxxwUfwvwvwwwvgwwxvwvwxvwxvxxwxwhvfwvgwwfwxwwwUvwvwwwfwfxwggfwvvvwwwfuwwvwwvwxxfevxwxwwfwgwvwwwwwwXwevvwwwxxfwwxwgxgxvTUvwvvwwguwfvwwvvxxwwwwwwwvxvwvwwwvwvwwwxwfwgxwxxwwwxwxwxxxxwhxwwvvgwwvvwwwfvwvwwxhvwgvwxwwwgwwxwvvwvfwwvwwwwwxwwxxxvfvvwxxuwwxwxwfwwwvwwvwwwwxxxfwwxwwhxxxvgvxwgxxwwvvwwvxwwwgwwgwwwwwwwxxwxvxxxxffwwwwgfwwvxwwwvvvwuwwwvgwxwwwvwfwwwwwwgxxxwwfwhxgvwwwxxwwhwwxvwxwwxwwvgwwwgwwwwwvwwxxwwgfwwwxxwgxxwxwwwwxwwxxxwwwwwwxxwwwgxvwvwwvwvwvvwwwwvvwwwwfvwxvvxgwggwwwwxgvxxvwvvvxwwxwvwxwxwwxwxvwwvvwwwxwgwwwvwvwxhwxwwvwwvvwwwwgvxwvgwwwvwvgwxxvwvwwwwwwgwwwwvfwwwwwwgwxxwwwxwxwwwwgxwwwwwwwxxxhwwwxxwwwwxxwvvwvwvgwwwwwgvVwwfwvwvwgwwwwwwgwwvvwwwwgvwwwwwgvwxwwxwxwvwxwwfwvwwxvwgwvwwwwwhwfgwwgwwwwfhwhwwwwwfvwwwvgwwwwwvwgvwgwwxwgvgwwwwwxfghwwwxvgwxwwwwxwxxwxwxxwwxxwwwvxwwwwvwvxwwxwxwwwvfxgwwwvvxvwwvwvwwwwwwwgvgwwwwxvxwgwxwwxxxwgwvvwwwxhwgwwwwwwwwwvwwvvxwgwwwxwvwfvwwvxwwggwwwwgwwxvvwwhwwxfvxwwxwgwxwwwwxhwgggwgxwxwwwxwgwwwwxwwwwfgwghwxwxvxwwwwwwwxwfwgvvwwwwwwwvfwwgvwwgwwwwwwwwvgwxxwwxhfwwgwwwggwwwwfwwwxvwvwwwwwwwwwfxvgwfxgwwvwfvwgggvvwwggxgfgwxwfwgvxxhwxwwwgxxwwghwhwxwwwwxxwwgwgxwwwwwgwxwwxwgwxwwvwwxxwvwxwwwwxwwwxwvxwwwxwfwwwfwgwxtwwwuwvwvwwwfvgvwwxwwwwUVwwvwvwgwvwwwvvgfvwwwvwvvwwwgvwwgfvwwvvUSwgwwwxggvdvwwwwfwegvUgwevwwwvvwgwvwwwwwxvwwwwvfwwETvwvwvWfwfwgfvvfgvwwwwvvwwvvvwvwvwwxvwvwxgwwgvwfuwvvwwvwwvwxwWwwwhwwwgvwxwwxwhgwwwxguvwwfwwwvffwvdwfVVvwWwuTBuvgfxwgfwwgvwxfgwvwwxgvUfvxgxgwfwvgggwwvvvWxwvfvvgfvwgWwgxwGgWwvwxfwwwvwwxgwvgwwwgwWwwxhxwgwxwxgvwfvwvwvxVuufwxxwfUdvxfwWvwwfxwgwwvwwfwvwwwwwxwgxxwgwgwvvvvwgfvwxwWwgxwxvwwwwhwwvxgxxwwvwwwgwwwwwwxvwwvwwggwwwgwwggfwwwvvwfwgwwwgvvwwxwvxxfgwxwxvgwxgxxgfwgUgwfwwwwwwfvwwgvwxwwwwgxfgxxffwwxwwxwwwwwvwwwwvgxvwvgwwwxwwgwvwwwhwgxvxwxgwwwwwxxwgxwwwwwxwxGgwwxwxwwwwwgvfwxwwxxxvwwwvwvvwxfwxwwgwxxggwvwwwwwgVwwfwwVvwwwxfDvvxvxwwgwwvvwwgwwxwwvwxwwxvwwgwvwwffwuwxvvgwvwwgwwwwxvwfvgxxxvvwwgwwwwwwxwwwvwgwwwwwvwhGwxvwwvggwwxxvwhvwwwwgwvxwwvwwvgvvvxwgwgwwxwxxwwwvgxwwwxwwxhvgwwgxwwwgwgvwgwwwwwWwwwgwxgvxwvxwwwwwvvvxuFeVvvwfvvxfgwgfvwgwwwWgvxgwfugwgfvwwvvgwgwwxfvvvvuUvgfwvvvgvffwwwgvvxwwvvfevwwvwwwwvwwwwwwwwwxwgvvvvgvvfgvvwwwvffwwwwgvvwwvfvWvvwwfwwhvgwvwwwwwwgvgxxwwewweugwwwwwwwwwvuwvxwhxwwxwfvwvwwgwwwgwwwvwwwxwhwxxwfuvffffweVfvgfugvegfwwvwgvvWwhgvvWfvvffggvvwwvxvffvgvxgwfvxvwwwgfwgfuwwfwwwgvfgfuwwvvfgvxeggfwffwwuvxwwgvwWfwhUwVwwxgwfgWveuvwWvfWwxwvvdwgvxwwwwwwxwwwgweVwwgvwwfxvxvwwwgwgvwwwvguwvwvwgwwewwwhwvxwwfwwwfwwwfvwewxfvxgxwwwvwgwxwwuvgtwuwvwgvwwwuffwwxwgwwvwwvwgwwvwwgfwwvvwwxwwxxxxvvvfgfdvfgvvwwVwuwwgvwwhwwwxgwgwvwwwwwwxwwxxwwwwwwwwfxvgvgvwtvwwwgwgwweuwvvwwwwgwwwWwvwvgwhvgwggfvgwvwwwxggxxgwvuwgvxwwwgvhwwvgvwwwggwgwgwwwVwwwwxwxvhWvwwwvwxwxwxxugVgvvwWffVegfwuwwwvwwwwvwwuwgveWwwwwewghhvwwgxwgwwwvvhvwfvvwvwvvvwwfwggwwwwwgxvwwwvwwfvxgghwvxwgwgwfWhwuvxufvvwwwwwwwwwwffgvwvxwxwwwwgwwggwwwwxvwxwwvwwxhwwuvwwvwvwwxvgvwxvvwwwwwwxwwwwvwwxxxwxwxxwvvwwxxdwgvvwwvvvwwefgfwwxvwvwwwwwwwwwvwwwxvwwwwwwwwwvxwwvwsVwwgfvvvwgfwwgwwwwwwgwwwvvwwwwwwgwwwwxvvwwwwuwgevvwwvwffwwwxxueefwwwwvwWwfwwwxxwwwwvxxgwwvfvvwwwueefwXwwwgvxwwwwvwuvwxxwwwgxxwwwwwvwwxhxvfvwwuvvguwwwgcVggwgwvvvvwwwwvgwwgwwwwxxwfwwwgwwwwwwwwgwvwwwwwwgwwwggwwwwgwwwwwwwwwwwwxwwwwwwhxwwwvwwvuwwwwfwwfwxwffwwwwwgwvwWgwwwWvwwwwwvwwgwwxvwwwwwwxwwwwwwwxwwwxxvwwwwxvwwwwwxwwvwxxgxgwvvwvwwvwgggvwwwwxfwtwxwvwwwwvvxwxxvvvvwwwwwwvwuwfwuwwwvugwwvwhuvwfwvvvvvvwhwwwwvvwwwwwxwwwwwvwfwgvwwxwwvvxwwwuwwxwvvhxfxgxwwwwhwwwxxwgxwvvwwvwhwwxxwwwxwxvvxwxwxwvxwwgvxxxvxwxxvwwvuwwfgvwguvwwwwwwwvvwvggwwwwxgwwgwxwhwgxwwwwvwxwwvwwvxxvwwwvggwwfwvvVwwxxwwggwwxwwwwwwxwgwwwwwwvxvxwgxxwwwwhxwvvwvwxxxvgwwxgxxxwwxxwfwwwghvwhwwxwwwwwxxhwwxfhwxwxwvgwwwfwwVuvuwggfwgwwxxvfgwwhwvwvwwvwvwfgwgwvgwvwgvwgvgwvgwwvwwvgwwvxwvvgwwvwwwwwwxwwvgwwxwxvvwgffvggwgwwfxuVgvwgwwwgwvwwwxgvwwwvvfwwhwxwwgxwwxwxwxhwxvvvfwgwvvxvwwvwwhhgwwxvxwvwwwwxvwwvxwwxxxwwxxxuwfwfvxfgfvvvgeVffxwwwfffvwwvgvgwwwwwxwvxwwwgvxwwvxwvwwwwxwvwwxgwwggwxgWuffhwwgvWwgfuwwwwxwvwwwvxwwvxwwxwgxweVgvwfwwffgwwffVuxgwwvvxwxvxwwwwxxvwgwuxfwwwwxgwhxwwwvvwgwgxwvxwwvwgvgxwwwvxwwxwwgwgwxwvxxvwxvxxwwwguxgvvwwgxwvggfwwwwgwxwwgvvxxxgwwxwxwxwgxwwgwwgwxwgufvhvwuwhwfwgwwvxwwwwvwwwwwxwwwvwwxvggxwxxwvwwwxwxwwwxwxgwvwwxvxwwxfgvxgvhxhvhvxwwxwwWxggwwghgvuxgwxvxvwxvwggvwwwgwgvwxwwuvxwhfwxwxwxxwxwxwwwwwwvgggvxxgwwxwgVvwxwvwwgwwhwxwwxxwhghvwxfwxwhwxxwwUwVvvhwxgwwxxwwgwgfgVwhVvgvwgwxvxxwgwhvxwwwuhwxwxwvwwvxwwwxxwwgwxwwgfvwwxxeuxwxxvxwxxvhwwhxggwgwwxwwwvwxvwwwwwgvwgxvvwhwwxxwgwxxwwwgwwWvwwwxgwtvwfgfwwwgxgwwwwwwvvxgxgvvvwwwwwwwxvvxwwwwxgvgvvwwwwvwwfvwxwwwfwvwwwwwxwvxxxwguwwvfvvwgvwwxwwwwwwgvxgTTuvfwWwgwwwwwwxhxvfvwvwfwwwwwxwwwwxwxggwwwwxxxxwxxwxxxfvwfvfvvgfwvvvwwffxwwwwvwwvffuuvvwfvwwvwxwwgwxwwgwwxwxwvffvwwvwgxwwgwwwwwxxwwwwwwvvvxgwwwgwhgxhvxfTTuffvfwwwwwwwwgwwgwxwwfwWwwvvwwwwwxxwwxwwvvvfvvvwwwwwxxxxvwwwwxwxxwwxxxfvwfwgwgvwwvwwwxwvvvwwxvwwwwxwwwgvgvwwwwwgvwxwxwwuwwwwxwwwxxxwvwwwfwvgwwwxgfvvxxwxxxwwgwggxxgxwxffwwvvvxxwwxxwxhwwwxwxxwwwxxgffvvvwwwwwuwwwwwwwwvvxvwwwgvwxvwwxxwwxgwvwwvwvvwvxwxxfvwxxxwwwvwxwwwhwwwwxwgvfgwguwwxwwgwhgwxxgwwghvwwxwwwxxwwxxxwxxxxwwxvwwxxxxuwwfuvwvwwUEwvwwgfwwwwwfwgwvwvgewxgvwwvwwfvxwvwxwwwvvxwwewwwvuwfwvgvgwwvwgwxwwvedvvwvwxfvvwfvwgxvwgwwwwwwFcwgvwwvwwvfwwvwwwwwwwvwwwXgxxwvxwgwxxxvgvvvvvwwvwwwwvwxgwwwwwvwwvgxwhxxxxxwvwxgxwfuwvgfvveEdSfvwggvwvwwwfwvggffufgwvevwfwvwwwwguvwwfggvwwwfvgwwvuwwwVwwvgfgvvxvwwWfwwxgxweggUewwvWwvhfwvgghfwwxxvfeUdvwffuvwwwWwvwwffwvvxgwwvwxxxvgwwvwwwvxgxwwxxvfgvvfewgxhwwwxwxwxwwgwvxvwxwxxwwwxwwxwxfuvwvgfvgvwfwwvVevvvwgwwggwwwgxwwwwwvwxwwwvwgxwvxwwvxwvvffwvvvwewwgwwwvwwgwwwvwwwfvwwwwwgwvxvxwwwwwwwvvvggwwwefvwwgwvwwvgwvvwvwvwxhxwwwwxhwwvxwxwwxwhwwgxxgWghgwvUwgwxxwwwxggwxwwwxwxvwwvxvggwwwwwwwxwfgvwwwwxvfgwfuvgfUwvwxwwwwwwwgewwwwWwfwvwwxwwxxwgwwvvwfwwvxvxwfevxfwvwwvwvxwwuwwxgfgwwwxfwwwxgwwxwwwxwwwwwwWvgwwgfwvvwwxwwxwwuvwwgwfxxxhwwwwxvwwgxwxxwxwxwxwwvwwvwgggfxxxxxvgxWvxxwwwxwwwwwggvwwgwwvwwxuvffwwwWvwwvfwwwwwhwgwvwwgvwwwwvwwwwwwxwvwwwwwwwwvwxwwwxgvvwwVwwwwvwgxwvwwwwwwxwwwwdfwvwgwwgvwxwxvxwwxxwwwwwvwwwvduVgwwxwgwwwwwxxvvvvgwfxwxwwgwwxxwxxwxwwvwduVgwwwwwxxxwwxxxwwwwwwhwxwxhxxwxhxwxhvwwwvgvwvdfwvvwwwWgwwgwwwfwwvvwwwvwwwxwWwwghwwvwwvxxwwwwwwwwgwwwwwwvwVwwxwxwxgwwwxhwwwwxwwwvWwvgwxwxxwxwwxwwvvvvfgfgwwvggvgwwxwwwvwgwvvgwwwgxwvwwxwgwxgxwwwfwwwwgwwvwgwwwvxwwwxwwwgxwwwwwwwxxhxxwgxgwxvggwwwewuwvvgfgwegwwwxwwwvwwwwwwwxwhwwxvwwgwfguwvvwfuwwugwwwwwwwwwvvwwxxwgwwwxxwwwwwwwwwwvwvwvxgwggwxXwxwwwwxwxxwhxhwwhfwxwgvwwvwwxxwwwxxxxxxxxxxhxwwwgxxwhhwwxwvwwuwwwwfvwvgwwvvwxgvwwvwxwvvwxwvxwxwxvwwwwgwxvwhxxhwvvwwgugwwxvwgvwwxxWxxxxxwgxwwxwwxwgwwwgwxxwwxwxwgvwwgwwxxwxwwwwwxwxwxwwgwwxxxxwwwxwwxxwxxxxxgxxgvwwwwxwwwwxxwxwxxwxwxxxwuwwgvwfwwgxwwwwgwxvwwwwwwwwwwwgvxwxvwxwxwwwevwwwwxhtgxxwwxxwwvwwhwwwwwwwxxwwxxwwwwwvwwwgvwvwwwwxgvxwveefgfvwwxwwwvhwwxwwwwwgxxwxwwxxweuffwvwgxwwxwhwxwxxxxwwvwggdgvwfwwwwevvgwwfwvxwggvvvvvvvggxwwwfwwwwwxhvwwwgwxwwwwgvwgxwvxvwfxxwwwgwwwxwxgwxffwwwvwwgvwxgwgwwwxxwxwwfwgwwwgwwxwgxfvxwwwwvxwwxwwwxfwxxxwwwwwxxxxxwwwwwwwvvvwxwwxwwxVwwwwwxgwwxxvvwwvvwwwxvvwxwwxWwvvwwxwwwwxwxwwwwwwgwxwwhwxwwfvwxwwwxgxxxxwwxxwwxxwwxgxwxxwwwwwwxwxxwxxwwwxxwxvvwvwwxwvxwwwwwwwfvwvwwwwwgfwxxxxxxwvxgwxwwhvwwxvvxgwwhxwxxwxxgxxvfwxwwwwxxxwwxwwwxwwwxvhhwwxwwxxxxxwwxxwwxxxwxwwwwxwwxwwwvwwwwvvvfwxvwvwwwvwegwwwwvvwwfwwvwuvfvwwvuvwvwwvvvvvwwwvwwfuwwwvvvwvvvwxwgvwwwwwwvvwvvwvwfvwwfwvvwwvvvgwvwvfvuvwwwXwugwvwgwwgwggVwgwwvwvwwwwwvgxwwvvwwwhwgwwwxwwwhxvxxwwwwwwvfwwvwwvwgwewwwvwvwuwxwvwefvvfwvvwvwwwgwvwwwvxwgxvwwwgwwwvwxwfwvxwwwgwwgvwwwwwwwvvwwwgwwwwwwwwvvwvvwgvwggwuvxgwvwwxfvfxwxgwwwWwwwwwfwwgwwwwwwwxfwwwwwwgfxfwwwwwgggWxwgxvxwwxwwvwwwwwwwvvwgvwwvwvwwwvwwwwwwwwwwwxwxxwwvhwvwwwvwwwwwwwxxxxwwxxwwvwxwwxxvgwwwgwxwvvvhwwgwwwwwxwwxwxxxwwhwxwwxwwwwxwwwwxgxwxwxxwwxwxwgwwwwwwxvwwvwxvwxwvwwvgvwwvxwwvwwxwxwwxvxwwgwwvvxwwwwwwwxxwwxfwwxvwwwwxvxxxxwwwxwwvvwwvxwwwxxwvwgwxwwxwxxxxxwvvwgwxgxwwxxwgxwxwwwwwxxvywvgwwvvwwvvxVvxffwgfwwwggwwffuxugwwvvWvwgvvwwwwgvwwggwgwwwgwgvwxwwwgxvugwwgvwwfvgvvfwwgghwwwxwwwgwffwwxvgvWvwwvgwwgvwxwwwwwvvwggwwgfhwvwwgxvwwwvwwwwwwwwxgxwxxvwwxwwvwxvxwvxwgwhxxfffwggvwvwgfvwvWggfewwffwWwwwfwfgwwvwvvvwgvgfwffgvfgxwwwwwxgxwwvxwgxwwgwwguwgWwgwwWwfffwgvvxfgvwwvuwevWwhWfxvxwxwffgvfgvwxwwwwfwfwgwUwvwwxgvvwvgvxwwwxwxgwgwgvwwwfwxvwwwwwwxxwwwwwfggxggfwwwxwwvwwwwgwwwgvwxwvvhwgvwgwvwwgfvvwvwwwwxwwwvxwwwgfvwgwxwwxgWwvwvvwwwxwwfwgxwxxxvwfgwvxvuuxgwwwgwgwwwwwwxvvwwwxvwwwxwwwwxwwvwwxxxwwvwvwxfwgwwxwwwxwWwwxxxxfxwwwvwxvwxvwvwwwwwwwwxwxxwwxwwuuxwxxwWwwwwwwvgwwwwgwvhwwxwwfVvgwgwwwwwwwvwxwwwfwhgwwwxvwwwgfwwUwwvhwgwwwxwwwwwvwwfhhWwwwwxfvwwxwvwvxwwggfhvwgxgewWvgvvgwwxwxwxfgwwxvggfwwwvwwwxwxwxxwwwggwfhwwxwfwwwxxxwwwwwxxxwvhwxwxwwvwgwwfgvWwxgwwyvwwguwwvvwxvwwwfvwwvwvgvwwvfwwvfvvgvgwvwvwwwwgwgwwvvvvvvwvwwwwvwwwwwwwwwfvwwwwfwwwwwgxwwxvgwwxwvwvvwvvvvvwgvgvwwvwvwwvwvwwgwggvvvwwwwvwwwgwwxwwhwxwwwwvwwvwgwwwvwxwxwxxxvwwwwvgwwgwwwwwxwwxwwhwxwxwxuwvwffvfwwwvwvfwwvvwugvvvwffwwwvwwwfwwwwwwvwgwvwvwgfwwwhwvwvVwwwgvwwwwxwxvwvxwwwwwvwfwwwvwggwwxwgwwxgxwwgxgwhwwvfvvwwwfvvwwgxwwwwvwggvwfwgwfvvwwxwwwwwfwwwwwwfxwwggvwwghwwwvwgxwwwwxwxvggwwvwfvwwgxwxwwwwwwwwwgwwxwgwwwwxvwwvwwvvwwwwvwfwwwwwvwxwgvfvvwxxxwwxxwwvgvvgwwwwwwvxwwwwvwvwvwwgvwfvwxxwvwwwvvgwwwwxvvgvfwwwwwxwvvwwvxwwxwgggwwwgwwgxxgwwhwwwwwwwwxxxwxgwfwvfwggwxvvwvwwgvwwvwwfwwxwgwvvxwwxxxxwwvwgfxwvwwwvvwgwwwwwvwxwvwxwwxwwwxvgwwwwwwwwvwwwgwgvfxxvwxvvwwwwwwgwwgwgwwgvwwxhfwwwwggvwxgggwwwvwxwfggwwvvgwgwvwwwwwwxwwwwwgwxwghwxwwwvwwwwwwwfwwxxwwwwwwwwwvwwvxwgwwvwgxwwwxvwhwwxwwwxwfwxgwhxxwxwwxxugwgvwvwvgvegvfwwfvvwuwguwvgvwwwwvwwfFUvfvwwfwwwgwwfwgvWvfvvvfwwvffvgwgedwxwwwvfvvvuvwgwwvxfevgwvwwvxwwvwwwwfvvvwwwwf6dwvevwvwxwwwwvfvwwwwhgWwwxgvwwwfvwwwxxxwvWvwgvwwvwxwxwfvwwwxgwvgwwwvvwfwxwwwhwxxwfwwwvxwxwxwfvwwvwvvwvxffWfwffffewwgwVgVVvwfwvggvvwgwgdSufwWvgvfgvwWvwwvvwvfwvwwVuffffVwfvgggWffwvgwgwwwWxwwvVvgwgwfwfwVwxwgfvvgvwvwvgxxedugwWvgwwwwwvxwffuuwgxgvgwwxwgfgVgwwxwwwxwvuvghwwwxwvWvwwfwvwwwgwvwwvxxwwgwwwwwwwuwvWexwxvwwxvfwwvvxgwwwvvvgwwwvvwxwgvwwwwwxvwwwvfvgwwwvfwwwwgvvwwwwgwwwwwgwggvwhwvwwwwwvxwwvwwwwwxxwvvgVvxwwwwxwwfvwwwggwwwwwxxhwgwwwwwwwwwwWgwvwvxwwgwxxwgxvggwxuwwwwwxfgwwwwgwwwwxwwxvxwfwvwgwwwhhwxvwwwggwwxvggwwwvgxwwxVfvgwgwggggwfwgfUfvxwwxxhwwwgxvwwwvwwuvwwuwvhgwwxxgvgwgvgvggwwwwwwvwwwwwwVwhvwwvwfvwwwwxVwvwvwwhwegwwxWwfwwxwwxgwwwxxhwwwwxwwwgwxwwwgxxvggxwgwxxwwgwwwwVgxwwwwwxxvxwvwwwwxxwwxvwvwvghsgwwfvwwfewvfvgfvhvggwfgwwwwgeuvggvwvfgVvgggwwwwFvvgxwfvwwffwguwvfgvWewwwwgvvwvgwwwguwvwgwgwwxvwwxwwgwxhwwwwwfwwfvgwVewVvwWvwwgwvfvwwwwxwwwvuwvgwwvwggwugwwgwvxwgwwwvfwvgfvwxwwwwwgwwwvgwxvwwvwvvxxxxwwvgwwwxhwwxwwwwhwwxgvvhvffvVwvfvvgvggvgvwgVdvVgWwvfgvwgvfesuvvgwwefwgffgvffhegugfwgvwwwggvwwvfvvgwgvvghvxxwvwwwwwwwwwggwxgvgwvvvggwfwxwwwghghuwvggwwwvwVuvxwwwwfvwgWfguxwwwwvwwfutwwwwuwwWxwwvwgvgxwvgxwwxwwwvwvvwwwwvwwwgwgwhwwxXguwwwghwvvfwwxwwxwhfwfxvwhxwfvvhvwvwxwwwwugwwvwxffwxhwwvhfgxgvxxxgvvwwwwvwwwwwxgwwwGvhwwvxxWuwwwfgwgvxwwvwgvwxwwvgwwxwvwwxwwwwxwgwwgvwvwwWvvwVvvxvxwwFwVxwgwwwwvwvgwxwxwwgvgfhgxwhxwgwhggfwxwggwwxwwxxwwxwwwxwxxxwvwwwxxxxwgxghwwxfwhwwvhwvgvwwvxwgf6tuWhWvwffgvvvwggwvhwxwgwvvhwwxghwwwwwvwwgvwxghwwhvwwvvwwwwwgggxxxgvxwwxgvwwhwfwwxghwwwxwxxfvxxfxxwwwxwggwhvwwwwwwhwwxxggWVxwxwwxxXxwwxwwxwwwxwwxgxxxggwwwxwwwxxxxwwwvgxxgwwxxuggwwvwwwwgfwwwwwwwfwhwfwfvwvgwvgwxvwwwvvwxwwxwwwwwvwggwgwwwwwwwxgwwvwxgwwwxwwwhxxwvvwvgfwwwxvwwgwfwwwwxwxwwgwvwwwwwwxgxxwwxwfgwwwxwwxwwwwxwwvxwwwwxxxxxxwxxxgvwvwwvgfwwgwwvwwwgwwwwwwwxxvfwwuvwvwugxwguwwwwwwuxwxxxxwwwwfvvwwvwxxxvvwwwxxwxwvwvxwwgwgwwxwxvwwhwvwwwxwvgfwwfffwwwwwvwwwgwwxxwwwwufwwwwwhwwwwwwvwwwxvvwwwwvwwwwvwwxxxxwxwwxwvwxwwxwxwxxxwwxxwwvvwvwfvwgfwwwvxgwvvwwwxxwwxwxwxwwwxwwwfvwwwwvwxxwwhxxwwgwwwwwwxxxxwwwxwxwwxwwgwwwwuwgfxxwwvxwwxxhxvwwwwxwwxxwxwxxwwwwwwxxxwfuxwwvvxwwxwwwwwxxxxwwwwxwxwwwwwxxxwxgvxwvxwwfuvwwxuxwwguxwwwwwwwxxxxwwwxwwxghwwgxfwxfvvwwwwgxwxwxwvwxwggwxxxxwwvvvwwwwwxwxwvvxgfwxwwvwwhgwxxwwwwwxxxwwxxhxhxhxwgxwwwvvwwxwwwwxwxxwxxxwwxgvgxvxvwxwxwwwwxxevvfufwvvvvfevufwvvwvfwwvvwuwvvwvwwgwgvxwwwwwwwvfuwwwvwvwfwwwvwwwwvwwwwxwwwwwgwwwvwwwwwwwwwwwvwvfuwwwvvwwwwvfwwwwwfwwwwvwwwwwwwvwxxwvvxwwwwxwxwwwwvwwwwwwwxxwwwwwwwwwwwwxwwxwwxwwwwxwffuwwfvwvevwffwwvvwvvvwwvwvvgwgvugfwggfuwwVvwwwwvwvwwwvhwwvvwwwfvwwvggwwgvwwwgxxggwwwwwwwwwgwgwvwvwWhvwgwvhwvvuvwvvvwxwwffvwwhwvfvvwwwgvfwvvwgwxhxwxwvwvwWwwwwwwwwwvwwwxwwwwwwwvwwwxghvhxvxwwwgvgxxwvwwwxwwwwwwwwwuwvfuvvgvvwvwwwwwwwwwuwvwwvwvxxvxuwwwvwwgvwfgwwwuwwwwwwwwwwwwwwwvwwwwuxwwxvwwxwwwvfvvwwggfvwvvvwfvwwwxwwxxwwxxwhxvwwvvvwvwwwxwwxwwxxxxwxxxxwxwvwwgvwvwvxhwwwwxxwfvwwwwvwwwwwwxxwwwwxvgvffvvfwvwwWwfwwvwgvvwgwvwvwvwxwxwwwgwxwwgwxxvvxfwwvwwwwvwwwwgwwfwvvwfxWfwwwwhxwwggwwvvVggwggwxeehWWVwvgwvhwvxwwwwwWwwwwwwwwvwvwxwwwwwxwwwwwvwwxgvwgwwxwxwwxwvxwwxwgxwxvwwxwxwwwxwggwuWVwgvwggvuxwgvvwfvwvwwwgvwwuwVwvwvWwvwwwwwWfwvvwwwvwwgvfvvfUwvffvvvugvgfwxwvwwwwwwffvvewhvwvwwfvvxvwwwwxgfwuvVevvwvwgwvwgWfwfevwwwxgwhvggvgwwwvwwwwvhgvwwwWvvxxwwhvfgwffvfvvwwwwgvwwwhvwvwwxwwvvgwwxxwwxxhxxxxwwgvfgvVefvfVvwwvVfFVvgwwfwuffwwweuVWwvvvWwxvwwvwfgggwvvwwvwwwwwwwwvvguvgwhtwwwwxwwfgvfxgwvVvuvvgwuwwvwfWvwuxgwwwwxfwgwwVFvggfGvuvvwwwgfVVgwvUxwhwwufewwwwvwgwwvwwwxggvwwvwvxVudggwgTwgwxwwuWwvexxhvxwwwwwwwwwgwwwwwvxgwwwwgwvxwwwwwvfvwwugguwfwwwffWwgfwwvwxwugfwwxwwwwgvwwxwxfvgxwvgfwfvuwfwuwxgvfvvxfwwvwwwwwWvuwxxwwxvwwwwgxgwhwwwwwvvgwggvwuvfwwvgWggvwxwXvwvwxxgWevwgvwwwwwwxxwgwgXxgWgwggxwvvwwwvwvwwvgvwwwwxhwxgwwxxwwvwvgwgwvwwwxwvggwhggwvwvvgGvgwfGgvxgvVWvxvfvwvgwvwwvhwxwwgxxwWwwwwwgvugwwwuxwwwwwwgvvvxgfxwwwgwwvxwwgxwwwxvwgvvwgxwwwwwvwwxfwvxwwvgwwwwwwwvvgggxhhgwxxwwvwwwwwxghxwxwxvwvgwwwvwwwvvwxgxwxxwwxwwwvxwfwwwwwvxwwwxwwwfwwggvvwwwwwvfwwxxwwwgwwwwgwvwvUUgwwwwwwvwvwwwgxwxwvwvvwwvgvvwwwwwwwwfwvwvwveuvwvvwwddwwwxxwwxwvwwgvwwwwwwwfwwwwggwwwwwwEdgvwvwgvwvwwwwwxwgvwxwxxwxwgwwwwwwwxfvwgwgxxgwwwvwwxwvwxxwwxxxvvvwwfUvwwwwvVwuvfwvgggvwvvgwwvvwgvSSvewvwwvgwweuvwwvwwwxfwgwwwwwwfffwwwgwggvfwvxXgxwxgvvwwwfvgvwxgwgwwfvwgxgxwxgxwwwvvUeufwwwwwwwwvvfxhgwVuuwwvvgwgwwxxwwwwwwwxxwwgvwwgvwwxxwxwwwgwxxgvxwxwwwwxwwxgvwxwwvwvwwwgvwwvvwwwgwwwwwxhwwwvwwvgvxwwxwwwwwxwxgwwwwgwwwwwvfwvwwwxwxxwvwwwxwvvwwwwwwwwwwwwxxvwwvwwgwwxwwhwxXWvwvvwwwwwwwxwwwxgxwwxwxxwwwwwxxwgwwwwhxwwwxwxfwwwvgwwxxwxwwwxwvwwwwgvgvuUvuwwvwwgwwwwhwxwwfvvxvwwwwwgwvwwwwfwvvwvxxvvwwwwwwwwwwwwwwxwwhWxvwwxvvwvwwwvwwwwvwvwxxfgwwvwwvwxxxwxwwwwwwwxxhhvvwwwfxgwxhwxwwwwgwwvwxgxwwwwhhwxwwxwwxwwgwwvhvwxwxvffxvxuvwwwvwwwvwvwvwwwvvwgwggwvwwvwwwwgwwgffwgwwxwwwwwvwdfwwvwwvwwwwwvfvvwwwvwwwgwxwwwvwxfgwvwwwgwfvfwgwxvwwfwwwxxedfWwwwxwxwwwxwxutfWxwvhwwxxxwxwxwxxxwvwvgvwfwvwwwwwWvvwwwvgwwdfvwwwfvvwwwwwwwgwvwwwwxwwwxxgwwwwvwxfxwxvgwwwwgxwwwhfxxwvwxwwwwfwwfwgxwwxvvwVwfwwwwwwwwvwxwgwwwgwxwxwxwxwxwvwhwxwuxwxxwwxwxwwxwwwgxwxwwwwxwwvwvhwwxvwgfvwwwwwxwvwvwgxgvvwvwwvxvvwwwwwwwwwvXxxwwgwwwxwWhwwwwwwxxxxwwfwxxwxxwxwwwwxxwxwwwhwxwxwxwwxwgwgwwxwwwwwwvvwvvwxwwfwxwxwwvxwwxwggwwxwwwxxwwxwvwhwvwwwxwwwxwvvwxxwgxwwwwgvhxwggxwwwxwxxxwxwwwwxwfxwxwxwxxwwwwxwxxwwwwxwxwxwxtwwwvdvxwwwvgwvuvwwgvwggWuvVwvxfvvvwwgvwwWvfugggvwwxwwfwvwfwuwgewvvvggwwwwWwwhwvfwwgvwwwwxvwxfvwwgxuwwwxwwhwvvwwWTwwWfgvvwvgwvwwwgwwvWwwWwfvwfvxggwwxwwgvvggWvwwxwwgwvwfwwxwwxwvfuwhgwfwwwgwfwvgxwwgwwwwwxwvwwwwxwwuvgwgvuvgvwfewgwVuvetfgvwwwggwTwfgwgvvxwwwgwvgvgfwggvgwvwfwfwwwwfwwwvwvxwwuwvwwwwvWwwwfgxfwgxgwfvwwxxwvwvwgwwgwuxgwgwvwgwgvgvwgwfwwxwwguuvgwFwvWvwwwwwwwwxwgwxxwwwwxwwhgwvwwwxhwxwwwvgxwwgwuwwvwwfxvvhwgwhwxwxwwvwwfwvwxggxwwgwwvwhwhwuxwfvgvgVwwvgwwwxggwwwxvxwgwgwxwxwwwwxwvvvgvxhwwvvwwwgxxxxggWxvwwwvxhgwwwwgwgvwxwwvwgwggvhWfxwgwwvvxhwwwWxghUhfwwwwgwwxwwwwwwwxgwWhVwggxwwvvwwxwxxgxwxhwxxxxwfwwgwwxhwwvxxwvwxxxxwxwvwwwwwgFuuhwwwwgwuxggfgxxwwwwwgxgwhvwwwxwxgvwggxxwxwwxwwwgvwwwwwwwxwxxggxxwxwwwwxxwwxgwwwxwwfgwwwxxgwvgwwwgxxwxwwwxwfxhXFwxwhwwvwwwwwwxxwwwxxwxwwwgwxwxxxxwwwwxwwwxgwgwwwxwwgwwwwwxwxuvwwwwwwwwxugvvwwvwvwvgwwwwvvggvwxwwwhuxwgwwvhxxwvvgfvwxwfwwxwwxwwxwwgvgvwwgwxxwgwwwwwxwwwwuggwwxgwwwwwwwwwwgwwwwxffvggwfwwwwwxwvwwxvwxwwvwwgfwwwwwvwwwxwwwvwgvgwwwwxwwwxwwxvwvvgwwvwxwwwwWfwwwwfvvxxugvvwwvwhwfwgfgwvwgxgwhwgwgwwwwevgxwwgwwwxwwwwwfuugwhguwxwxwwwgwxwxwwvwvgfwvwvxwgxwwwvWvvXwxwvwgwvgfxxwwwwwwvwwvxwwxvvgxwwvxxxxvwgxfwwwxewxwhuxvwxxwwxwwvxwguxwwxwvwwwxxwwvwwwxxwwxwwxxwwwwvvxwwxxwwwwwwxxwgvwwxwwxwxwwxwxxwwwxwwgwugwwxwxwvwxxwxgxwxhgvvgwxwwgxwgwwwxwxwxwwwwvwvwwxxwxxxxxwhwxxwwgwwwwxxxxhwvxvwvwwxxvxwwwvwwwwwwxxxvgvwvxwwwwwwxvvwwwxxfefwwxvwwwwwwxwwwxwwxwvxwwgwwwxgwxwwvwwwxxwxwwwwvwhwxWvxxwWxwwwwwgfxxxwxxxwwwxvvwwxvwxgxxwwwwwxwhwwhwgwxwwwvvwvtwwugWwwxffvvgfwvgwwvevwwvfVugufwwfwweuvgwwwuvvfTwwgVwwvvwvUfwwwvvxwwgvfvevwwvvvgwxvvuwwvgwwwwwwwwuvvguwwvfvfuugwWwwgwvwwgvwWevVwwvwvxhfvwwwfwvwfxwxwfwfwgvwwwgwwwwwwwgxwxwxvgvwwevwghvvwxwwwwwwfxwwwvvxwfgwvgffvvwwUVwwvggvvevfvuvgvveuffdtvwgwweVuwgwgfuwvvfwVfvxwvwwfwxwwexwwwvxwwwwwwxxwvwwwxwwvxwehhhVvvvggwgvwwwvxfvwvffwuffVvwxehgvvfgwwtvwwxxxwgVuvwwxfwwWwxvvwxvwwwfwwwvwwxwwwwvwwwwwwevwvwxxwvwwwvwwwfwxgwtxxvhwwwwgwxxwwvwtwvvexgvuwwevvwwvxwvwvxwvwwwwuxwvwwxxwxwwwvfvwwuwxVuxwewwxwwwwwwwvwwwgfwwwwwvwwwvwwuvuxVvehvgwxwvggwwgwwxwxxwggwuwwxwvvxwvghgfwwxvxvwwwggfxwgwvwxxwwxxxwwwwxwvwhhvgwgvwvxugwwwwvuxwEdgfvwxwwfvxgevwwxwwwwxwwvwvxwwwgwggvwwwgwgvxwgwvggwxwwwgwxwfxwwwxwwxvxfwgwxwwwwwwuxvwwxvvwxvwwxwwwxgwwxwwwxwxwxwxwvwgWVhxvvvwwwwwwwwwwwxvwwwxwwwwwwwxwwxwvgwwvxwwxWwxgtfwvfugwfvwvfuvuUvvvgvwvvgfufVwgvxvgfwwwwfvvffvwVvfggvwwvwwxwfguwvfwwfwvwuwgvwvfwgfgvwggwwvvgefwwwvwxvvvwvvwwwwgwwwvggvwgvvvvvwvwfwwGUwwwfwguvwfWwgewfwfgwfvwwwggvwwwwwXvwggxgwwvgvuvfwgwvwwwfwwvwwvWxxwgwwwwwxvwvfgwvvwvwXgwwgwgxwffvwvVfvwfVfwvVfVgfUtffffvwwgvvvWfffvwgwwwvvwwffuwgWvgUvgwfwvgewwwxwvgwwwggwvgfvwghvvgwuwggugwwgxgwVgxwwhwwvhgffwWhfgwwgxvwfwVvffuwfwvwwgvggvggvvfGwgfwwfevvwwwwvhgwwuxggvwwwwwwwgxwwwwhwwwxwwwgwwwwguwgvwhhvxwwwwhwwxwwwgwvhwwwwvwvxghuXvgvwgwvwwgwfgVuwvfwwvgvgvfggwvwvwwwewwgwvfwvwxguvwwwvgwwgvwwxwwvvfvWvwwvwfwwwuwwgwwwwvvwgvvwwgwwvwwwwxwwwwxVvvwwwwvfgvwwuwwgwvwvggwfwwvgwwwgwfWfWvfwwwXgvhwfwwwfgxXXfwwfxhgwwvwwwvwwxwwxwwwxggvwwwxxxwvvxwwxhxwxwwxwWfwvvxwffwgwWwfggwvwwxwwgwwwwgfgwwWuwwwWFuugwxwhwhvwgxxvwwwgwwfwwwvwwvxwwwwvwwwwwwxwwvwvxuwxxXvwhvxwxwvwwxgwwwwwwwgwwgwwwwwwxwgwxvwwgxvgwwxwwxwvwwwgxhGUwwvxxwwxwwxhwvwvvwxxwwwhwwwwxxgwwxwxxwwxwxwwwwgwwhwxwxwwxvgfxwwhwgwwwgxxuwwxwvwwwwwwwfvwxwwxwwwfwwvwwwgwwwwvggwwwvvvvwwwvwxwwwwxwwfgwvwwwxwxxxevvgeffvwwwvvfgvvwwwvgvwwwwxvvfwwwwwwwvxxxwxwxwwxwvxvwxwwxxxfvvwvwffvUgvwwvffwwwwwwwxwvwffwwwwwxxwwwwgwgfwwwUwvwwwfwfwwxwwwxwVffwwvwvxwwwwwwwwwxwxxfxeUfufuvwfvwfwfwwwvwxwvwwwxwwvvwwwvwxxwwxffgwwfwwvwvwvwwwxwwwwwvwvwwwwxvvvvfwvfwvuffwxwvvwwxvefwwwwvwxvwxwwxxwwwxwwwxfgugvwvwwwwxwwgvwgxxwxxwwwwxwxxxxwwfvwwvwxxxwxxwwxxxwwwwxwwwxxvvfwwwxwxxvwvwwwgwwwwwxwwwwwwwwwxwxwUfvgwvwvwwwwwxxwwwwxwxxwwwwxwxgvvvwwwvxxxwwvvwvvwxxwxwwxwwwxwxxxwgvvwwxxwwwfxwwwwwwwxwvefvvvfvvggvwwvvwwwvwwgvggwxxwwwwvwwxvwwwwhwwwwwwwvvvgffvwgwwwwwgvwwwxvvvfwwwgwwxxxxvvwvvwwvvwvvwwvvwwgwvvwwwwvwwvwvvwgvwwgwvwwvvvvvggvvxwwwwwwwxwwxxwwxwxhhwxxxwwffvwfgvwfwwgfggvggwgvgwvvwvvvxwwwxwwwwxwwwgwvVvuxwvwwxvwxgfwgwwwvgggvwvwgwvwwgwwwvwgghwgwwvwwxwxggvghgwwxwxwvvgvwvvwffwwwwwweuvwwwwgwgvwwwxwwwwwwwwwwwwgxwwwwgwwwwvwvwvwwwwwwwxwwgwwhwwgwvxwvwxxwhwfwxhwwxxxvvvvfwfvvwvvwfwwwvvwxwwvvvgvvxwxgvwwwwVuwgwvwwwhwwvvwxwxxwwwwxwgwhvwxxwhgwxwvgvwwwvvvvwvwfxxwxwwwwhwwvvvwwxwxfwwxwxewwwwwwwgwwwxxwgwwwwwwwwgxwwgwwxwvwwwwwwvwxwxgvwwwwgwwwwwwwwwwxxwwwwwwvwwxwwwxgwwwwgxgvwwwwxgwgwwwgwggwwgggxwxxxxxwwggxwwxfxwwwxgwxfxgwvwwwwvwxxwwwfwwvwvwwxxwwwwwxwxwwvwwwwwxwwvgwwwwvwxxvvwwwwwgwxwwwxwxwwvxwuwwwwwuwwwuvwwfxwwwvwwxvvwwwwvwwwwwwwxwwgwwuvwvgvvwewwwxwWwvxvwwwwwwwwgwxwxwxxwwwvwwgfewwgvVvwvwvxxwwVwvwwwwxhvwwwwwwwvgxxxwwwwwvwwwfvwfgwgwwwvwxwwwwxxxxwwxxvvwwhvdvwwvewwgevwwwvveffwfwfwwwwwwwwwwwgwwwwvxwxwwxxwgwwwwgwweevwfvfwwwwwgwwvvxwwwwxwwwxwwwwxvxxxxwwxxVegvwwgwVvwvuwwwvuWgwvWegwwuvgwvxwxxwwwwwwwwwvWvvwxvtwfwwxwgxwwvvxxvgwwwwwxxxwxxxwxwwwwgwxwwwwwxwfwwvwwwwgvvxwhwwwxxwwxwwxhgvvfwwwuvgwvxwwxxwhwwhhwwxvxhwxwwxxxhwwwwwvwwwwwwwwwhVwwvwwxwwwwwxxgwxhxwxwwwwwwwvwwwwwwgwxxxwwwwvxwxhwxxxxxxxxxwxwxfgwwwwwwwwgwvxegvwxwguwwwvwwhgwxwwxxfxwwwwwgxwhxxwegvwgvguwwwxhgxwwgXhwwhhwwwwvxvxwwWxwwxxxhggwwwxwwwxxxwwvxxwxwxwgxxhxxxwwwwxxxwxgwwxwwvhwgwwwxxxwwwxvxxwwwwwxxxxxwwxuwvwwvwwwvwvxvwwwgxwwwwuhwxfwxfwwxwwwwwwvxwwgxvwwwvfvwwggwwvwwwwwwwwwWwgvvvwfwwwwwwwxxwwxwwwgwwvvvfwwxwgwwwvxwvwgwuxuvwwwwwfxxwwxwvwwvwwwwwwwwwwxvxwxgvvwWxxwwxwxwxxwvvwfVWvvwTvwwfvwWFvwxwgvwvwwvfwvuvvwwgwxgfwwxvwwwwwwwwwwvwgvUwvfGvvwvwvUwvxwwgwtfwggtwwxwhwwvwxxvxwxwgfvvvwwgfvgwwxvvwvfgxwwwxgwwwguvwwvwwwwwwxwwwgvwggxufwwguwwwwwxwvwhvxwwwwwwggvwwwwvwwwwWxwxwwwwgvwwwwvvwwwwwwxxwwxwwwvxwwxxvvvgwwvwwxwwgwwwxwxgwggwwxxhwxwvxvwwxvwwwvxxvgxwwfvwwwwxxxwwwwwwwwwgwwxwwwxwxxwwwxxxxwwgwwgwxgxxwwgwwwgwgewvwgwwwwwwxxwvwwwwwxwwvwwwgxwhwwxwwxwwwxwwvVwwwvwwwhxwwxwxhwwwwwwwvwwwwxwwgwwgwwwwwwwwwvwwvgvvxwxwxxwwwwwvwgwwxvxwwwwxwwwhxwwvxxxgwxwwwxwxwxxwwxwwgggxxwxwvwwwwwwwxwwxvwwwxxgwwuwwwwwwvvvvwwwxwwwwwwwwvvxwxwwwwwgwwwwwwwgwwwvwwvvwwxxxvwwxxwxwwgwwwgxwxugwwwfvvvwgwwxvwxwwxxwwxwwwwwxfgwwghxwxwhxxwxwuwwwwwugwwfgwvfvvvgwwwgwwwxwwwvgwxwwwwgwwwwwxwwwgwwfvwgvgwwxwwevwgwwwxwwwwwhvwhxwwxwwwvvwwvwvvwhxwgwwwevwuxwvwwxxwxxwgvgwvvwwvgwxwxwvwwuxwwxwwwxxwxwxwxwwvwwwwgwwvwwwwwwxwwwxwxwxwxwwxwxvgwxwwxxwwgxwxxwxxhwxwxxvwwwwwwwxwwgxxxxxwwxwwxwwwwxxxxwxxxxxwgxxxwwxxxxwwvwwxwwxwghvwxwwxwwwxwwgxxwxwwwwwhwxwwwxwxhxxwhxwxxwxwwxxxxwwwhhwwvvvxwwwxwwxwgvxwxxhwwxwwwhhwwxxwwxwwxwwwwxgwwxwwxwxxxxwxwvwuWwvwwwwwuwwvvvwwvvwwffwvwvwwvuwwwgwvgvffgvvwfwwvxxwgvwvwuuwfvwwwwwWffggwwwvwwxvgwwvxvvfgwwwxgvwwxwuvwwfwvvwwgwwvffgvwwfgvwwwwvwvvvxxvwwxvefwWwwvuwwwwfgwwfgwwvwvxwgVwvxvxWwwxvxwgvwwwwvvwwwgwwwhvgwggwgwvgfwvwwwevwvwwwfggffggvfVvggugvxwfwwfewvwwwguvgwgwwwewwwgwwfwvfgWWwuxwhvgvgfwfwewwwvxuwwvgwvvfwfxxfwggwwwwufwfwfwgfwwwvfxfUvggfwvwffwwfwwvewwxwgwwvwxwgvvwgwgwwwwvuwhewwwwwwwgwvgfvgxgxUfwxgfgwvwxwwgxwxwwwwgvxxwwwwwwgfwwfgwwvwvwwwVfegvwfwvxwwwWwxvwwwxvxxwfewgwvwgwuwvgvvgwwwWwwxxwwvvwggvuxwxxwvxwhvwgwxxwvgvwvwwxwwwgwwvwxxwwxwxgwvwxhgvxwgvwwwwxwwxwuvwgwxxwwxwwwwwxgxwxwxgwxxgvxwWxwgxxwxxwffvwwwwwvxwxffwfvgwwwwwwwVwwgwwwxfggwwwwwgwxwwfwgwwwvwxwffwVwWxwwwhwwwwwvvhwwhwwwwvxwfxXgwwgxwwuvwxfvwwghxwwwwwufgwwwgwgwwwwvwxwwwwvxwwwxghgwxxuwwwwwwwwwwvwgxgxwwwwwwwhxvgwwfvxxfwxwfwvwwxwewvfvwvvvwvwwwwwfwwwwvvgwwwxwwwwwvwwxwwwwwwvgvwxwwfvvhwwgwwvwxwwhfwxwwwwxwxxfwgwwvvwgfwwfgwwgwwvuwxwwwvvwgxwwwwwwxgwhwvwwwwwgwvwxwwwwwwgvwwwwxxxxwwwwvxwxvwvwWVevwvwvfWfuvvxwwuvvwvxgUvvwwwwvwwwxvvgvwwxwwwwwwwuVfvuuwwwvwwuVwvwguvwxwgWvuwwxwxxxwxwxwwfvvvfwvevwvwfwwwvvwvwfgxwvvwwvfvvwwhwwwxwxwwwghwvvxwxxvfwwwvwwwwwvwvvwwwxwwwwvgvwwwwwxwxwxhwwwwwxwxxhxgvwwvwwwwvwwwvwwwvxwwwwwwwxvwvxvgwwwwwwwwvwwwxwwxwwwwxwwxwwxwvwwwgwwxwwwwwwwwxwwwwwwvwwxwxwvwxwxwxwwwxvwvwwhxxvwwxxxxxxhxxxwxgvfwfvwvwwfwwwxwwwwwxxwwwwwwxwwwxwwxwvfwvwvxvwwxwwvwxxwwhwwwgxgwxxxxvwxwxgwxxwwwgvwwhwwwwwwwxwvxxxxwxxxwwwwwwwwwxxxxxvhhwwwwwxxhwwxwwgxwxxtwwwwwvvfwwwvvvwwwwwwxwwwfwxwwvwwwvvwwwwwvwwwwvwvvwwwwgwxwwxxFwvghxvxxewwgfgVuwwwwffwwwwwgwwwgvvwwguwwwwwxwvvwwwxwxxwxxfggwvwwwwxwwvwwwxvxxvvvxvwwwuwwwegwgxwwwfwwwwvwgwwvxwuwfwvwwwwwwwxwwwwwwwwxwvwwvvvgwwwwvvxxvwwxwxvwwwwxwftvwwfgwwxffwwwwwvvwwwxxvdfgvwwhxvwxwxxxwwgwwwwwwhxvxwvugxuwwwwwwwwxxwexxhxwwwwwwwwwwfwxggxhwwwxxwwwwwxxwxxwwwvwfwwwdfwfwwxwxgxxwwxxxxxwwwwfvxwxwwwvhwwwwxwwvvxxwwxxgvvwwxxwwwwvxwxvwwwwwwxxvwxxwwhwwwvwwvxwfwwvwwwwwwwwwgwxvwvwxgwxwwwwwxwvgvwwwwwwwxvwwgwxhwxwwwxwwxxxxhwwwwwwxxwxxxwvwxwvwwwwwvxwxxxwxxxxvwwwxwwxwwvwwxxwxwxwxwwxefffwgwfvwwvvwvvwgwvwwvegwwfvvfvwwvwvwwwvwxvgvwwvwwwwwfwvffewgufwufvwwgvgvgwvwvvwwvwgvvwwfgvwfwwvvwwffvghwgwxwwvvgvwxwffuuvFewwvfwVfuwwwvwwwvwwwwvguwwwwwfgwhwwwvwwwxwwwvgfwfuuwvvvwxwvgfwhwwWxwwgwwgewfvgwgwwvwwxwwwvhwwxwwxhwwwwUwgggfwfVvwfffvVefwwggvUddgwwwwvVvwwwwvwvwgwwggVfvwvxWgevwwgxwwwvgvgfwwvvwfvwgffvvXewggwvgWwvgwvxwwwWwwxgwxvhgwwwxxfwwhvxwwwvVvwfvwwUddwwfwVUefgwgfwfwWwvvfvfvwvxwwwvvwxvfvghxwxxwwvwgvvvwwfwgwxvwwvfwgfwvwghWwgwgwwwhwwxwwgwfgvwwvhvxxxwwxwwxvvwwfgfuwgwvfgwwwgwfvvvvvxwwgwvwvxVvwxxwxxxwwwwgwwwvwvwewgvfvfvfwwwvwwxwwhwwvvgvvwvwgwwgxwhgvwgxvwwuwvwgwvwwwwwVvwwwxwvgwwwwgwwgvwwxwwwxwwgwgxwgwwwWwxwefwvwvwgwwxwwwxwwwwgwwxfxwwxwggwwwWvwwhggwwwgwwwwwfwgwgggfffvxwwVvuwwwwwfvwwwggvwfvwwvxvvwgxwwgwxhwwgwwxwwxxvvwvwgwwwvwwgwwwgwwwxggwwwgwhwxwxwxXvxfwWwgvwxgwxwwwxvwwxgvvwxxwwwfwVVwwxgwwwwwwgewxwxvwwwvxvxgwgfwwxwwxwwwwwwwgwxggwwwwxwwwwwwxwvwhwwwVxwwxwxwxwxwxegxwvwwwwwwwwwwwwwwxxwxwvxwxwwwwwwwwwxwwwwwvvwwwVvuxwwxwwwxwxwwwvwxxwxwxwwwwfuvwwwgwwvwwwvwxxvgvfvgwwwwwxxxxwxxwwwwwwwxwxwwxwwxvwwwxxxwwvwwewgwwvwvgvxvwwwgwwwwgxgvwvgwvwwwwwxvwxxxwwwvffwwwxwwwwvgxwvwwvwwvwwxwxxvfuwfvwwuufgvxwwxxwxwwwwwwfgwgxhxwwxxwxwwxxxvwgvvwgxvwwwxwxwhuwvvxwwxxvwwwwwwwwwwxwwgxxwxxwwwwwwxxweuvwwwxwxxxwwwwxxxxxxwxxwwgwvfwwwwgwvwxwxwwwxwxwxwwwwwwwxxwxwxxxxwwxwvwwvwwvwvvwwwwwwxwxwvxxxxxwxwxvxxxwwxvwwvwwwwxvwxwwxhxxxxvwwwwxwwwhxxxxxxxxxwvxwwxxxwxwxwhxxxxxxwxwxxwxwwwwwwxxxwxxwwwuvwwwwwvvvwuwwwvwwvvvwwxwwwwwwgwwvvwvwvvwwvwxwwwwwgvwwwxwvvwwgwwxwwhxwwxwxwwvvwwwwwvvwwwwwwwwwwwwwxvhxvxwwwvwwwwwxwxwxwwwwwwxwxxgwwvvwvgvewuwfvxwwvwwwwwvwwwvwwwwwwwvwwvwwwxwwwwxvwvwwwwwvwwwwvwwxwwwxxwwwhwvwxvwxxwxxwxxgvwufwvwwxwvwwxwwwwvwxxwwvxvwxwwxvwwwwwwvxwwxwgwwuxwwvxwwvwvwvwwwgwuvwwwxwwwwwwxwwvuuwwwwwwwxxxwwhwwwxxxwwugwwvxwxvvxxxwxxxwxxwwxwxxwvxwxxvwxxxxhxwxwvvwwwwvwxwwwwxxwwxwwwwwwwxxwwxxxwxwxvxxxwxxwxxxugxwxxwxxwxwxwwxwwxxwxxwwxxwvwwxxxwwxxwxxxegwwvwwwfwxfvwwwwwwwwwgwgwffwgvvgfwwxwwfgvwgwwwwxwggguvgvvwwwwxwwwvhwwwgvwvvwwxwxwvvwgwxhxgwwvvvvvwfuwwfvwwvxvwwwwxwwwwwwvwxxwwwwwxxgwwwvggvuwwwvwwhwvxwwwvxxxxxwxwwwwwwwxhxwhxxxxxvwgwwvwwGfvvtfwvgEvwwwwxwegwwvvvFVvvefwvwwxxwggvxvggwwwxwwwgvguvwwvFgvgtwwWWvvxxwxvgxxvvFwvwuwgwwwwxwwhxxxwwwxxwVfvwdvwwgvvgwwfffwwffvvwxwwwwvwwwuwwwwuwwwxwwwwwwwwwvWwwgtwgwvxvwxwvvghxgvgwwxwxwwxwwwwgwxxxwxwxxwwxfvxvfwwvwwvgwwwwwfwvvwfwvxwwwxgxwvgwfvwuwwwvwxwwwwvwxwwxxwxgxxwxwxhxhxxwwvwwvwwvwwxwxxuwwxxwwwvwwvxwxwxggxgxgwxwwwwwwvvwwvwwgwwvxhxwwwhxxwxxwxvxxwxhhwxxxxxWewwuvvwwwvfgvwwvgwwwxwvwwxxwwwxxwwxwwwwgWgwwuwwwvvwwvvhwxhvwwwxvxxwwwxxwwwxWwwwwxxwwwwvwxuwxwwxwxwxuwwwwwwwwwwxxxwxwwxwxxgwxwwxwwwwwwxwuxwwxwxxxgwwwxwxwxwwwxxxwwxxwxxwwvvwwxxwwwxwxvgwgwvvwfvvvvwwxwwwvwwwwxwwwwwvgwvwxwwwvwxwwxxwvwwvwvwwwxxwwxwvwwxwxxvvwwwvwwxvwwxwwwwwwwwwwwwwwxwxxwxwvvwffvxgwvwxwwwwvxvxwvgwwvfwwvvwwwwwxxwwwvgwwvwwxwwwvxwwwxxwvwwfwvgxxwwwxxwvfwvvvwwwwgwfwxvwwvvvwwvwvxwwxwwxwwwxxgwxwvxvwwvvxxwwwxwvhhwvxvwgwwwxwggwvwwvxxvwxwxxwfwwxxvwxwxvwwwxwwxwwxwxwxxxwwvgvwwxwwvvwwxxxxwxxvxvvvwxvhgwxyxwxywxgwwxgxwwxwxwvvwxxwwxwwxxwxwwwxxvwxgvwwxxwxxwvwwwxwwgwwwxvwwvwwvwwxfwwwgvvevwwwwgwvwuvwwwvwwwvwwwwxwwfwwwWwwwgvgwgxwwvwwwwvwwgwwevwvwwwwwvxwevgwxwwwxwwvwxwggvwwwwwwwxxwwwwwwwxxxwvwwxvwgwwhvVwwwwxgwwwvvgvuwwwwgwwwwWwvwvwwwhwwwxwwwvwxwwvwvgxwfxvfxwwwxwgxwwvfwxwwwvwgwwwwvfwvguwgwwwvwwwxwvwwwwwfxxxwvxvwxwvvwywwwwxvwwvxwwwwwvwgvwwwwwvvxwwwxxvggwxwwwxxfvvwwwfhvvxwwwvwwxwxwxwwwwxxxxwwwxxvvwxwxxxwwwxxwxxwwwwxxvfwxwhwxxxxxwxwwxvwvwxwxwxwwwwwwxwwwwwwwxwxwvwwwwxxwxwwxxwwwxxwwwwxxxgxwwwxwwxxvvxxxwxxwwvwwwvxwxwwwxwxxwxwwxxwwvwwxxwxxwwxwwxxxxwxwwxvwwvwffuvxvwwevwgwVvgwfgwwfwwvwwxwfggwvwwwfgwwuwxgwwwwxxxgwxvweewwvwvfvwgvwwvvwgwxgvwfhevwevwwWwwvwwwxwvwgxxxgxwevwxgwwwwwwwwVvwUwvgggvfwgwgwgvwvwgvwvwgwwwwxxwwwxwwwfwwvwwwwgwwwwwvxwwxhwggwwwxwwfwwwvxxwxwxwvwwwfwvfwvfxvgVfwwWgfvVwwufwvewvevxwffwwwwgewwwgwwwvxgggwxfwxwfwvgfwxwvwwvgwwxegwwgWxwwvwxvwwwgwwwwgxxxwwwgwuggwgwfxwxgUvwfvwwgwfwvwvwwvwwgwxuwxfWwwwwxvwwxwvwwgwwwwwvwxwwwwwhxvwgxvxvxwwxwwwxxxwwxwgxwxxxxwvwvwwwwwvwvgwwvfgwwxxwwwwvwwxwwgvggwxxxxxwwwvwwwwvvvwwwwwvgxwxxvvfxgwgwwwwwwxwxwhhvxxwwwgwwwvvwxxwwgwwwwwgwvhxgxwwgvxwwwwxwxwxgxwxhwgwxxwgvgwwxxwxgxxwgwgxxxxxwwwhxvwhwhxxwvgwwwwWwwxxwwggxwwvvwwwxxgwwwvxvfwvwxwwwhwwwwxxvwxwwwxxwwxwwhgXvxwxgxwhxvxwwwwwwwxwvxwhxwwvwhgwfvxwxxvwgvxxWgwxxxwwwwwwxwwvxxwwwxwhwxxxxwxwxwxxxxwwwxfwwxxvgwxtfwwvwwwwwwwvwwwwgxwgwwwxvvwwwvuwwwvwwwgvwxwwwgwvvvwvvwwwwwwwwxfwVvwvwvwxwwxwwwvwwwwxxwuvwwwwwvwwwwvwwwwwgwwwwvwwuvwwvgwvfvxgwwwwwxxgvwvfwwwwwgvwwgwwwwwwVgwfwwwhxwxwwxwwvvwwvfgwwgvdgVwwvwwwwwvxxvwvvvufwwwwgwxwwgWvwwgWvwhxwvvfwwvwwwxwwwwwwwwwwxhxwfgwfgugwxwxwxwwwwWhwgWxwwvugwwvdwwwwwgvggwwwwvwvwvfwwwwuwggvwxwvvvwwwwwxwxvvwwfwwwvwvwwfwxfwwxwwwwwgwhuxxfwwwxwwwxwwwvwwwwwwfvwwfwwfuvwvwwwxwgvvwwwwwxwwxhwwftggvwvxwxvwwvxwwwxwwwwwwwwhxwwwxwwxxxxwwwwfwwgwwwwwuwwwwwxxwwwwwwwwwwxxxwvwwxxxwtvwwwwxhwxxwxwwwhxxxxwwvwwxwvwvxfwfwwwwwwwxwxwwxwxvgwwwxwwwhxxwwwwwwxwxwwvwvwwvwwwwxwwwxxwxxxwgwggwgvwhwxwwxxxwwgwwwvgwwwwwwxwwwgwxvwwwxxwvwwwwwxxxwwxxxxwwvwuwwxwwwgxxvwwwxwwxxwwwxxgxxswwwgvwvwvfwfwvgwwwfwwvvwwwwgfvwwwwvwwvvuvvvgwvwggvvvwwwwvwwvuvgxuvuwffwwwffvwwwgvvwwVvwvvvwgwwgffwwvxwvgwgvvvvwwfvwVewuvwwwgvwwvwwuuwghwwvWuwfvvwwwuwgguvgwwwwvwwgwwwwWvvuwvvwwwwvfvgwvwwwhwhuwwfvwfwxwwxxxwwwxwwwvvvwvwwwffvvffvwffwvwggvefvvfvvfVfvfVvvVutwfwhVfwvfugvwwwgwfvgwwwwwvffgwgvwfgwwvvwgwwwwWhgvfvwvvwwguhgwugvgvggfgwvxwfxfewvfwwdtvwwgwvuwfwewfwxgvfwwesuwwwwwvvWwwwwvwwfwuvwwwwwxwwvvwwxvhwwwwwwwwwgwggwwwvgvxwxwwvxwxWwxwxvwwwwgvwwwfvwvwxwwwvwuvgwwwwwwvwvwwxwvxwwxhvwxwwvxsuvuuwWwwwvtdwwwgwxwwwwvggwwgwxwxwxxwxxwxxwxwvwewfxwwwwvwwxwvwwvxwwfWhuwxwxwwwWwuwwwwvgwfwxwwwwwwwwvxwxwwvwxwXwxwxgvfwwuuvvwxtuvvgvvgwwwwxvgvvwhwwwwxwhwwwwhwgwwwwxvwWvvwwxwwgwwvxghwxxxxwxwwwwxwxxwxwwwxxwxxwvvwgwvxwwxvwwwvwwwwwwwwwvgwwggvwxgwwxgwgwgwwxwvxvwvgwwwwwxwwvwwvwwwwxxvwxgwwwfwwgvwwuugxXfwgvwwugwwfvwfwvvwvfuwvvwwwgwwwwvvwwwwxwwWdfvfvdfwwwuwwwgwwufwwwwwgwvwfvgvvwvxwwwhxggwxxfwwxvwwwwvwwwwwwvfgggvwwwwwgewwffwvvwwxwgwwwgxvfgxxwwwvgwgwwxwwwwwwwhwvwxgwvgvwxxwggwxwxxwxwxfvwvgdvfwvvwdfgfgefvvffvuvgwwwfgvfvwggwwvwwwgwwvgggvwwwwwhvwxwgvwvgwvxwvvwhgxwhxvwxxxvwwfxwwhvwwhxxgwwxwwfvvgvvwvwwvfvxffwWgewxwwwgfwfwgwxffwwwwwxwgwwxggwxwwxwgxwxxwwghxvhxwxxwvwwwwgxxwwvxxvxwxwwwwvwwwwxwwgwwugwvwgwwwwgwxwwwwxvwwwwxwxwwxxhwxxwwuVhwwWwgwwwxxwwwxxwwwxxxxxxxxxwxxwwwwvgwwwvvwxvxgwwxxvwwwwwxxxwwwwxxxwxwwxxvwgxxxwwxxwxhfwwwxwxxxwwxwwxxhxxgwgwwvgwwgwwwwfvgwgwwxfwgwwwvwwwxwxwwhxwxgxvxxhxxvhwgwvxwxhxxxxwxhgxhwwxxxxxgwxwhxvXwhvvvwxxwwxxvwxxwwxwwwxxwwwxxxwxhxwxxxwwxxxwwwxxwwxwxxxgwwxgxxgxxxfwxxwwufvwvvvwvwvwwxwgwwwwvvwvvwwvwvgwwgwwwwwwgvewwwvvwxfvwxwwwxxwwvvwwvwwwwwwwwwvwwwwwxwvvvwwffwwvuwwwwwwwwwhuwvvvwwvwwwxvwwvwwxwwwwfgvewwwwwwwwwwwwgxwxxwvwwhwwxxwwxwvwwwwvwwffwvvvwwvwwhwgvuwxwWfwwvVfvgvwgwwfwwwgwwguwxwwvvwggvvvfgwgvwwxxxwxxwxxwvfgfvwgvwwwwwwwvxgxwwWxgxfgvwvfvvvuwvfvwvwwvwvvwwfwwvfwvwvgwwxwvwwwvwwwxwwwxvwwwvfwwwvwvxvwghfwxxwwwwwwwwxwwwvwxwxfwhxvvwgfuvwwvwwwwwvvgxxwvvwwxwwxxwvgewvwwwgvvwwwwwfhxxwhwgwwwxwxxwxwwxwwvwwwgwwwwwwvwwgwxxwwwxxxxwwxxwxhuhwvwxgxwxwxwxxxxwxxwwgwvuvgvfvvvwwfwwwvxwwvwxgwxwwxwxvwgwwwgwgxxxggvvgvWwvgwxwwggxwvhxvxwgxxxxvxvwxwwxxwfvwwwwvvwvwwxwwwwwwwwvvwwxvwwwwxvwwxwxwxxwvwwwwwxwgwwvwxxwwxxgwwwwwwwwvwuwwwwwwfvfwxwwwwwwwwgvwwvwwxxwvwwwgwwwwwwwwwvwwvwvwgwgvvwxwwvvvvwwxwxfwwwwwwwvwvwvuuvwxwwwvwgwwwxwwwwwwwuvwwwwwwvvvvwxxWwhwfwxwwxxxwxxhxxwwvwvwvUeWVfwfffwvwvvvfwvvwwvvwVfffgfwwuuwvvwxwwvfvvfVefvVgeguvvwwvwxwfvVgexwwxwvvwxgwfuevuufwwxwuuvwvvvvwxvwwvvwxwwxwxvwvwxvwwfwxxwvfvvvvxxwwwuvvwwvvwwwwwwvwwwvxwwhwwwwwfwwwwwvwwwwwgvwwwxxxxwxuwwvwwwwxxfwxvwxxvvwwwxwwwvxxxxwwwwwwwwxvwwwxxxwxwwvwxwwxxwwwwxxvxxwwwwxwxxxwxxwwwxxxwxgffggfwwwvvxwwwxwwwxxwwwwwgffwwwgxvwwvvhxvwxxwwwvvwxxfwxxwwvwxvvwwwvgwwxgwxxwxxgwwxxxwxwwxwxwwwwwxwxwxwvwxwwtwwfwgvgwwgvvfwwgxwxvwwwfvvwgwwwgvvvwwvvvwgwwxfvvwwwwxxxwwvvvvgwwvwfeewwwxwvwwuuwxvwwwvwfffwwwgwwwfwwwwwgwwwwvvwwvggfVefvfvwgwwfvvgwwxwxwwwvvvwfvfwgwvwwgwxxxwgxxxxvwwwfeewwwwwgvwuuwwvgxxxwvvwwwwwwhwxwvwxwxxgxxxfwfgwgvgvvgfvUSSwvgggwggvfeewxfvfvggwUUfgfvwwvwfvvwwfwfwwgvvwwwxwgggfvvvwgffwvwhxXwxgghgfffvwwffghvwvgwwwwggxwxwwhvxfwxvfgUSSwffvgwwgfeewwfvfwvwvwwggfwwwgwwwwwfwwgxwgwwwxwxfxwfvvwxgffwwwwvxxgwxghfxwxxhxxwwgwwhgggwvxxgxwxfwwvwwwvvvwxwvwfwwgwwfvfwgvxxwwwwwfwvwvvwwwfxwxwgwwxwwgwwxfvvwwwgxwvwfwwwwvwgwxvfwwfggwhwxwwwgwwwWXwwwwvwwvvfwffvwwwwwwgwxhgwwxwhghvwvvwwhwxwxwxgwxhxxwxxwxwvwwwwxwgwvxwwxxwwhgxxxxxwfwwvwwwwxhwwXWwwxxwwgggwUUfgvvwwwvfffwwffgwwwwvwwhfvwxwwxwwwwwwfwgwwwgxwwxwwwfvvwwwffxxvwwwwwxgxwwwxxvxxwxwxxwwwvwxwwxwwgwHwwwxwvgvvwwwgggwwfwwxwwgwgwwwxgggwhwwwwwxxwxgvxwxwwhwxxgwvwxxxfwxwwgxwfxxwfwwwxwwwxgwwwxwwvwuwwwwxxvvwwwwvwwxwwwgvvvwwwwxwvwwwwxwvVwvwwwwgwvwwwwwwxwgwwxvxwvvgwVvwwwwfxwwxgffwuxgwvvgwxwwvgwvwwwwwwwwxwxgxwvwvwwwwvxvhwwwxwxwxvgxvvgwfxfwfvwxwwuvxvvvuwwvvwvvvwwgwwxwxvgggvwgwwwwwgwxwxwvfufwgvwwwwwwwgwwwwfewvegVxwwwwwwgwxwgwugxwvvvgxwvfwfvwvwhwgxwxwxfwwvvvhxwuuvwvwwwwwxwvwwwwvwxwxwwwwvvwxxxwxvwwxxxvwwwvwwwxwxxuvvwwgwxwxxxwfvwwwxxxxwwwwxgwxxxwwwwvxwwvwwwvwhxwvwvvevwwwxwwwwxwwxxwxwwxvwxwwxwxwwwwwvfufwwxxvvwhxvwxxxxfwwxwwfwghxwwwwxgxvwwwxxvwxxwwwxxwxxwwwvwwxwwwxwwwxwxvtwwvvwwfVwvwhwvvwwvvwwvwvwwwgvwwgwwvwwvvwgwvwwxgwvwwwvfvwuvvxguvfvvvwwxwxwwvvfwwwwgwwuuxwvwwwxwvwwxfvwwwwvwgvuwVwvwwgwfvwwfwvwvwwwwwwgwwxwgwvwwxgwvvwwuxwwwwvwwwgwxxwwxhwxxxxwwwuvwwvwwfVgwUguguwwwuwvwxVwwwvvwwwgwwwfwwuuwwwvxfwwvwwxxwwguwwwwwwwxWwwwwfvwwwvxwwwvwhgxwuvwwwgxwxwxxxvwwwuwfvwxwvwwgwwdgwgvwfwwwxwvvwgxwwgwgwwWwxwhwvvxwxehwfwxxwvwywvxwwwhwxwxwwwwvwxwxwwwwwwwvvvwxwxwwvwwwwwwxwwgwvwvwvwwwwewvwxwwvvwwwwhwwvwwwxxwgwvxufwxwxwgvwwhxxxfwwwwwxwwxgwwxxxwxwgxxwxwwwwxxxxwwxxxxhgwwxxxwwxxxwwwwwwwwxgwwwwwwwxhugvwwwwxxwxwwwwwwwwwwwwwwwwwxhuwwwwwwwxxwhxwwgwwXxvxxwgwwgwwxwwuvwxxwwxwwxwwwhxxwwxwwxhxxxxwwwxxwxwxxfxxwwxxxwxxhwxxvtwwvwwwwwwfvvwwwhgwwgfwwwvewwwwvfwwxgfvwwgvvwvxxgwwwwevgxwfwgvvvwvwwwwwgvwwvxwwWggvwfvwwwwvwwwgwwxwvfwwwVgwgVtwvvuwwGuvwgwwvvwwvwvVvvwvwwwwvxwvuwwvgfWvwwfwgwgwvvvfvwgwwfwgwxgxxxwwwvwxwwwxxwwwwxwxwxwvwwgVvwwwwvvWvugUugfevgfvwwgwWwfgwgvwfvwwgwvgwffgfxwwWvvwwwgWwwWwwwwwuwwgfwgwvgxvWvvwWggvwgfvvuvWwgwggWxgggwXxufWgxguwvvvwudvfvvwwwwutffwgwGvgwwwvvvwvwwwvwwvwwwwfwwwvwwwwwwvgxwwwwwwfgwxxxfxggwxwwvxwxwwwvvwggwxvwghwwwwgwvwwwgvvwwvwggwwwwwvwvwvgwwwwwxvwwuvwgwgwwxwgvwwvwgvufwxfgwgvxxgwxwxwwtuwvgwgxwxhvwxwwhwxwxxwwwxvwwxxwwvvwwxxxwwwwWxtwwwxxxwhwwwHxuwwhwwghwwwxwwxwxhwvwxwhwxwwxwwxxxxwhvwwwwwwfwwuvwwwvgwwxgwgwwwxxwwuvwwwwwwwxwwxgwwwwxwwwwwwxxwwwwxgwwwwgwwwhhgwxwwwxwwgwwwhfxhwwwghgwhwwgwvgxwwxwwgwwwxwwgggwXxuwxxwvwwwxwwwwwwgxwwxvwwvwwwwxwvwwwwxwwxwwvxxgwwwxvxwvwgwxwwxuwwwvvwgvwwwwwwwwvwwvwwgwvwwvwvvwvwvwvuwwwwvvwwwxwvwuwvuwwwwvfvwgvwxwwwwxwwgvwvwvvwwwwvwvvwwwwwxxwwwwvVdwvwwvvwwwwvwwvvxwwgxwwwevvwfwvwwxfvwwxwwxwwwwvwwvfvxwfvwxwgxwvvwgwwwxxxhwvxwxwfvvWgvevuffwvfvvwfvwwwvwwwwwgwguUddgwwwwwvwfffvwwxwvwgghwwwvwvwvuwuxwwwvwvwgvwfwwgxwwgwwwwvvvxgwhvvvwgwgwvxwvfvffvVwuvwwwwwwegwwwwwwwwwUddwwwWwvwxwxwwwwvvwwwxwgxxvwvvxvvuxwwwvxwhgwwwwhvwwvvwwhvxxxwwwwwwvwxxuxvwwwwwgvwgvwwwvwwxxvwwgvwwvwvxxwwwwwxxwwwwwgwwgwwwwwwwwxwwhgwvvwwwwwwwwxwxxwwwwwwxxxwxxvvwewvvxxwxwxwwwvxxwxxwwxwwxxxwwwxxhgxgwwxxhvwwwvvwwxxwwwxxwwhhwxxwxwwxwxhgxwwxwwwwwvwWgwvwwwwwxwwwwwxwxwwxxwgffvwwwwwhxxxxwwwwwxwwxxvwvwwwwwxxwwwwxxwxhgxxwgwwwxwgxxxwwwwxXxwwwwvfgvvwwxxwwggwxxwxwxwwwwxxxwwwxwxWvxxwxwwwxwxxwxxxxgwxwxwxgxwwxwwhvvvvwwwwgvwwwwgvwuwwvgwvwwwfwgwvwwwvwgwvvvwwxwwwwvuhuwwwwwwfvvwwwuvwwwwvwvwwwgwwxxvWwWvwwwxxvvwfuwwvwwwwvwvfwvwwwvwwwvwwwvwgxggxwgwwwvwwwwwwwwwwwhghwgxwwvwwvwxvwwwxwxwvgwgfwefvvvwfwwvhwvuvwwwgvgwvgvfwwvvwgwwwvwhwwwwwwvwvvwgvvwwwxvgvwwxvhxwgwwvvwxwgwwxwwwwhxwxwwwvwwvfvwwvhvwvwvwwuvfwvwgwwwvvvwvwhgwuwwwwwgwwWxvxwwgwwxwgxwwwwwxxwxwxvwxwvxwuwwxwvwwhvxwvwwwvwvwxvwwuwwwwwwxvwwwwxwwwwxwxwvwxwvfwwwwxxwwgwwxwwwwxwxwxxgwwfvwwfwwwxxvvwvwxvwhwxwwwwwxwwvxvwwwxxxxxvwxxxxxxwwwhwxwhvxxxwwwwgvwwxwwvgwwwwwvwwvvwwxwxhhgwxwxwwxxxxvwwxwwxwvxxxhxxhxwgxxxhxhghwwwwwvwwxxgwwwgwvwxgwxwwwwwvwxwxwwwwwxwvwwxxwwwwwxwwwuwwgwgwwvwwfwwfvwwwwwvvufgwwwwvwwvwwfwwefugwwwwwvwvwwvwvwvwvwvwvfwwvwwwvgvgwxwwvxfvvwwwwwwffvgxwwwwxxwwwwwvxwwwwwwfvefegvwwWuwvwxvvvwwxffvggxwwwgwvxwxwfvvwvvwwwffvgwwwwwwwvwxxhwwgxxwwwwwwwwxxxvwwwfwwgvggwvwvvgvgwVfwwwxwffVewwWgvvwffvgwwwwxxgDddfxvuwvwwwwwwwwxwwvwugugwhxwwwxwxgwwwWxwefufwwwwgvxwwxwvxvuwxwXuvgwwwvwggwffvgwvwxwDddfxwewwwxwwfffvgwwwwwwxwwwvwxgwwwxwwwwwwxefugxwwwwxwwxwewxwXuwwwwhwwwvwwwxxfwwwwwxgwwxwvwwvwvwwwwwxvwvugugwwwwwwfwwwwwgwwxxxxwwwxwhfwvwvwgwwwvgvghwwwwwxxwwxxwwxwwwhgfwxxxwxxxwwwxwwwwwwwxxwwwwwwwhvxxwwwwfwvwwwgxxwwxwhgwwwwwvgwwwwxwhhfxxgwgwwxwxxwxxxxxxxwxwxwwwwfvgvgwwwxwwwwffVewwwWxhwxfxxxxxwwwwwwwwwwwwweguhwxwxgwwxwWxwgvXgxxwwxwwwwwwwghwwggwwvwwwxwwxxwvxxwwvgwwwwwggwwwhwwwwxxwwwwwxxwxgvxxxwwwwxxwwwwwwxgwwwxxxwxwwwvwgwxwwxwwwVvufWeVvfvGuwvvwwwgvvwggvVvwwvvgWuwwwwwvwgwwwwgvvxwwVvuwwWTvdgVvfwfgvgfgwwwwwfwwxgwvgfvfvvWgwgvwgwwwxvgxwxwgwgVvfefwwgvvvwwvwgxwwvwxwwxwxwwwwxwwwwwxwwwxxwwfVvgvvWvwwwwxvggwwxvhgwxwwwxxwxwwhwwwxxwwwwxxwwwvgwwvwgwgwgvvvwgfwwwvgvxwvgwwwgwgxgwwgxwwwwhgwhvwgfwxwwfvwwhvwxwwwxuxxxxxwwxxgwwwwxwwxxhwxxwxwvfwwwxwwwxhvwwwwxgxwwxxwwxwxwwxxxhxwwwwxwvgghwwwwwxwxxvxxvxxxwxxxwwgwxxwxxFtuvevWtvgfwvxvvgvgfwGvvxvhgvgvgwvwwvwvgxgxwxwwtfggvvggxvwwweuvwxwhgxwvwwvwvgwxgwwwXxwwvwxwxvgwvxwwgvgwwwwxwwwwxvxwxwwwwhxxwwwwwwwfwhwxwwwxxxxwwxxwxxwxvwwxwwwxvffvVveuftwwhvwgvWuwwvfXuwgwwwwwwwxwwwuxxwxhwhwfvvwwwwhwvwwwwxuwxwwwwhwXvwvwvvhwwwhwhwhxwgvwxvxwxxxwvwwwvwxxxwwhxwxwxxwxwfvxgxvwxwwwwxgwxwxwwwxxxwwwhtgfwvvwwdeefgVevwwfwxgvwTffvefewfwwwWewwwvwwfffVfvwvwxfvvwwwuwffUvwgvfgffvwhhfUgdvgwewxgvwgwgvwxgvvghgwwwwwwwwgfwwgwwwvevfgvvvwgxwxwwxvvwwxwxwwxxwxwwwwUvhgfvvxwwwVgufhwgwwxfgwxwxxwwxxxxwuvvwgvuwggwvwuwwwwwwwwwwwwfvvxwwwwwfuwvwfxwwxwwvwxwwvfwwwgvwwwvwxxwfwxxwgwwxwwwwvwwggxxxwvwxwwwwfvvwfxvvwwwggwhxxwxxwxxxgggxfwxxxwwugxvfvxxwwxwgxvxhwwwxxwxgxuvuwfUtUdfvVfeeffevvwVvwwXfwfwwwwwwwwwwwwwwxwxwwwxxwvfuvfwgffeewwvwvvvgwwvwwgwxfggwwxvxwwwwxvwwxhxwwwwwxwwxwwwxwwwxgxxxvwxwxxxxwxxwxxvxwwwxxwwxxxwxxwuuvvfwfvwwwwwxgwggwggfvvwxwwwxggwwhwxwwwwvvfwvvvgvvvwwwwxwwxwvvvfxgwwxvwxvxwhxwguwxwxwwwhwwwxxwxxhwwwwxxxxxwxwxwwwwxvwxxxwxwxwxvwwfwvUvuwvWfwVvfwwwfwuwWgwwxwwwgwwwvxwwgwxwvgwxwwwgwxfvugfgVvgUevfguXewgwwwwwwwxwwwxvwwvwwwwwwxwwwwwgxwhxfwwwgwxxwvughwgwhwwwxxvuvxgwxwwwwxxwwxxwvgwwwwwgweggwgwwwgwwhwgfwwwwwxxwxxxwxxgvwwxwwwwwwvgVwwxxwwvwwxvwxxwxwgwwxwwwwwwwxwxwwwxxwwggwwwwwwwwxwxwwwvxxhvwwwwwwwxxwxwxxxxxxwwwxxxwwwxvwwwxwxxxwhwwxxxxxxwvxwxxwwwwwxxwwxwhwwwwwxwwxxwxwwwVuuwvwwxVwguffuwvWVwwwwwwvwwwvugwwwwwvxWwfgxwwxwxxwvewWgwwwgwwwhwwwwwwxhvwwxewwwhxxwwxwwgfxwxxwwwwvxwwwvwwwwxwxwwwxxwwxxwxxxwwxxxxxxxxxxxwwwwwhwwwwwwxhgxxwxxwwxwwwwvgewwwwxVvvvwxwfufgxwwwxvwwxxwhvxxxwwgvxxwwwwwxwvwwhwwwwwwwxwwwwxwwwvxgwwxvwwwwxxwwwwwwwvxxwwxwxwwxxwwvwxwxwxxxxwxwwwwwxxwgwwwxxxwwwxwwwwxxwxxdufuUutfeeuwefevUedfgfeWeEUvwggfevuvfVdwuwgwfvwuffvwvgwvvuxwveeuvgfUffUTvvfufgfUVggfwggVgvWfVdvgfWfuwwfvwgvvwwgugwgvwvwvvvfuuwvvuefvvwvwwvvwvwwvvxwxuvwwxxxvfuvgwwvwwvfvwvwwxfuwwvwwwgwgxvfvxwxwwwwvwvxxxwgfuvvwvfwffvvwvwwwffwwwxvvwvwwwwwfvvvwwxwvwwwwwwwxwwwxvwgwwwwwwwwwwwwwxgwgwwwgwwwvwxwxwwvxwwwwxxwvwwwwvwwwgwwxvwwwwwxwwxxwxxxxwxwwwxwwvwvwgwwwwwwwwxwxvxwxwxxwwgwfuegfeevdWvvvwwweUfwWwfedwgwdfuvduuvgwxwhwvvwwvwxwgwwwvufvewvffvvgwwugffwfwfvgwgvwvxvuuvuggvuvwWfxgxhxgvwwggvxwwxxxvwvwwvwhvwwwwxgwxxwvwvxwvvvwwwxwvwwwwxgwgwwvwxwwwwxwwugvgwwvvvvwwwwvfwvwwwhxwuvvwwvgxwwwxwwxxxxwwwwvwwwwwvwwxxwwwwxvwwxxwwwxwwwwwxxxwvwwxxvwwxwwwwgwwwxhwwwvvwwxwwwxxxwxxwgwvxwvvwwwvvxxtwfwwvuwvWfeevfwvwwfVevwvwfvfgfffwvfwgvUfuuvvfwvwwfvvwwwvwwvfwxwwwfffvwwgwggwwwgvevgwvwxwfwwxFfdfwvwwwvwvwwwwevfvxwwhgffvwgwgwwxwwuvwwwxwwwwxwwwwxwwgwwxwfvwwwxwffvgwwwwwvgwvwvxwwhwxxwgwwwxfvwwvwwwgfwvxvggwxgwvwwvwvWwuwwwwwwxfwwwwwwwwxwxwwxwwvwwwwwvwhxwwxwwwxwwwwwgwxvwvvxwwfwwxwwvxxxxgwxgwwwwwwwwwxxwxxwwxxwvwvxwwwwxwwwwxfvvwfvwvVevwwVdvuwvwwfwfwwvgwwvvxwfvvwwxwgvwfffgwwvwxxWeefwfwvwwwvwwwxvxwvwwxwwwwwvggxwwwwwvvwwwgwwgwwwwwxwgxwwxwwwvwxwgwvwwwxxxxxxxwwxwwvuwfvvwwvwxvxfvvwxwwwwwwwxwxwwvwwgwwwwgwwwwwwxwwwwvwxxxwwwwxwxwxxxwwvfwvwxxvwxxxxxwwwwwwwvwxxxxxwhxxwwxgxwwxxxxgwvxvxwwxwwwxwwvxwxwxgvfwgvfwfgfgvuvwgffEEggvvwvvwvwwgxgvgvwwgfwgvffgwvwvwgwvgvggfwvVVwgwgwgEEvwwvggvvVgfwwggvwwvwgwfwvwgwgwvgwwggwwgwwvwwwwxgxwwggwwwwvwxwgvwvvggwwwxxxwwxwxxwwxgfwgvvwwvwvgwwgwwxxvwwxwwxwxgwxwwwwxwwxwwwwwgvwwwwwwwgvwwwwgwwwgwgwwwwvxxwgwxxwwwwhwwwwxwwwvvwgxxvwwwwxxwggwxwwgxwwxwwgwvxwwgwxxwxhxwwxwxgggwxxxxxgwwwxwxxxwwwxxxxwwwwwxhxwxxvgwwghwwxwgwfwxhwhgvgxxwwwxxfvvwvwvwwwwwwvgfvgfvvgvwwvVvvwwvvvwgxvwwxhgwwhgwvwxxwwvwwwxwwwwwvfvvVwWfgwxwwwvwwwwvwuwwwwgwwxwwxxwgwwxxxwwwxhwxxwvwwfwvxwxwxwgwxxxwwwwxwxwxwxwxxwwxwxxxxxwhxxxwvxwwwwgvhuwwwgvwxxwgvwwwgvxwxxwwxwwxwfwxxwwxwgwwwvwwwhhgxwwfggwwxwxvxwxwwwxxxwxxwvwwxwxxxxxwwxxwxwwxxxxxwxwggxwwxwugfwwwfvvvwwgwfftvwwgvFewwwwwfvefwvvgwwgwgffVvgwgggxxxVgtgvgevuVfwvvvwVDwwvgeggwfwugVvfvvgvwwwvxwvwxVxwxwwwwwwwvffwwvwwwwudVwwwwxwwwwwwwwwhxvxxxwxvwvefwwvvvwxwxwVfgwwxxwfgwvwwwwwwwxwxwvxwwgwwwxxwxwwwvwwwwfwwwwxvffvxwgvwggwvwgwwwwvwwwxfvugwwwwvwwwwwxvwvvxwwxwxwwwxvhwgwwhwvwwwgvwwwewxxfvwwvwwwwwgwxgwvwwwxxwxwwggwwhxwwxwgwwwwwwwxxwwwwwwwwwwfwwwvwgxwxgwwxwvxxxwxxfwwfvwwgvwUutvvvguwwvvwUgfuvvwwggvwwwvgfVuxwwwwwwwwwwgxwewfvTvfvwvhvwVvwgfwwwvwwwwvwwVgxxvwxwwxwvwwxxfwwwwwfvwxwwfwwwwwwwwxxxwxwxxwxhxwwxxxxxxwxxvwwxwwwfwxwwwxwfwxwhxxwxwwxvgvwggffwxEfvfwwwvwwvvvxevxgwgxxwwegwwxxvxwxxgwwvgvwgvwwwwwxwwvwgvvgwvxwxxxxwgwwxwvxwwfwxxwwgwxfwwwwxxxxwwfwwxxwxwxwwwwxwwxwxvwXwgfgwwwwxxwxxwxfxwxwxxwxxxvwggwvwVgdwwwwvVfuvwgfeevwuvwvvwwwwweUvwwwvfvwgwwwhwvxvvgvwugeUuwwvgfwxwgUvufwwwvfuvwwhwfVFxgxwvxfwvxwwxxwwwwgwwvwvwvwwwwwWwwWgwvxwxwwwxwwwwxwwxwwwwwwwwwvfvwxwwwxwwwuwwxwxwwwvwwxwvvxwvwwhwxggwxfwfwwwwwgwwgwwgvwwxxfvwfvwwwwwxgxgvwwwxxvwwwwxwgwxxwwgfxxvwwwwxxhvwxwxxxxxwxxwwwgvwxwwxwxxwwxxxxwxwxxxxxwxxxwxwxwhxvxxwvxwxxwwxxxxxxwwwfvwvwwwfvvgewVwgwvvwwevvwuvwwwwwwwxxgwwwwwwvwwwwvvggwvvwwwwfwvwgwwwvwwxxwvwwvwhgwvgxwwwwgwwxwgvwwgvwxwvwxxxwxwxwgvxwxxxxwxxwxwwxxxxvwxwwwWuvgwwwwxvgvvwgwwwvgwwxwxvwvwwwxxxxwxwxxxwwwwwxwwwwwgwwwwwhwgxwxxxwxvwxxxwxxxxxwxxxxxwxxxxwxxxwwxvxwxuwwfwvvvvgwwuwvggfwfugWgwvwwWvWhwgvXvVwgWvwwwgvewvwWvVfvgwwvfgWfVwxwwVvgvggwhwfwwgvwwwwwwwgwxxwwxwxwwxwwwxwxxwwgwgwwwwwxgwhgwxwwxxxxwhxxxghwxwxwwvxxwvwgwwwxwwgxxwwvwwwxxxwwwwxwwwwwwwwgghwwgwwhwxwgffxhwwwwhxwxwgvwgwhwgvhwfwgwwxghxxwwxgwgwxwxwWvxwwxhvxgwxhwwwxxwxxwhxvvwwxgwvwwxxwxvxwxxxwxxxxhwxwxwgxxxyyxgxwwwwfwWwwwguwgggvgWwfwfwxxwwxxwwwxwvwvwwwxxxfggewvwWwfvggvgwgwfvwxwxwwxxwxwwvxwxhxxwgwxxwxwgxwwxhxxxxxxwxxxxxhywxwxxxxwxxxxwhwwwwvxvxwfwvwfggwvvwwVgvwxwvwxwxxwxhxwwgxwwxwwgxhxxxgwwggxwxgwgggxxxxxwwxxwxwxxxxwxxhwwwxxxxwxxxxwhxwxxxxxxxxsvfweUfffvVvEeffgvwwwwwwVeWwvvevwvfEfvwvgfvvvvVvvggwxgvxxwxfvvxfffgeVfVvSuwwwvwwwwvwgvwwfgvwggfvwwwfwwvxwwgwgwwwwxwwwvwggVfwefvwwgwgewwwgvgwwwhfvxwwwwwwwwgvgxgwwwxgwfvwgewwgwuvwwWwxwwwwwgxxwwgxwxwwwWwwxxwwwwwfffwvwfwfvgvwvwfffwxwfdwwwxfVgwwfvwvwwwgvfwwfxwwwwwwwwwwwwwwvwwwgwwwwwwwwwwwwwggxggwwwwwgxwwxwwwxgwgwwffvwgwvwvwxwwxguwwxwwwxwgwxwvwwwwwxxwwwwxxxxwwgxxwwwxvxgwfwxxwwvwwwwxwxwhvxwwxwwgwxxxvvvvFSfvvgwwevwgWvwvvwwwfVevvffvvvwvgvvwvwwwxwxwwfffvfvTuvwwwwwwvhwvvvxvvWwwvvwwwvhwgwwwwwwxwvwggxwwwwwvwwwwwwgwewwxxwxxwxwxgvvwxwwwxwwwxwxwwwxvwxvxxxgwwwwwwxfvwvxxwxxxxxgfdguwuwfwwwwuegfvwwxvgffvwwwwxwwwwwwxgwwvxwwxvwxwxwwxwwguvwxxuvwuwvwxwwwwwwwwwwxgxxfxwxwxxxwxwwwvwxvwwwwxwgwwxvwwwxvwwxxwxxwwxxwhwwwwxwwxxwhuwxwwvxwwwwwwwwwwxwxuffvfvvwVvswuVUvvvuwvwwwtfuwfvvwFvtwuffwvvvgvwwwvVevwwvwvwwwfvuwvVcufvfevffFfFdvffhwvvwgWggfvffgwfwvwvvwvgwvWWvgfwxvgwwwgvvwvwvwvgfwwvwvwgwwwgffxgwvwfvvwwxwxgvwwwxxxvvffwvwuggwwwwfvwxgwwwwwwwvwwwwxxwvwwvwxhwvxwvvwgggvvwfVvvwvVeewfffgwwwwwewwwwwwwwevvwwgwwwwwxwwwwgwgwwwwwwghxwwxgwxxwwwwvwwggwwwxvwwwgvxhxwxwwwxxvvwvwwwwxfvvwxwwwwhxwwgxwxxxvwwxxxwwwxxxwwxwwwwwxwxwwwgwwwxwxxwwwxxwxVgwghwwwwwwwwwVtgtgfvvfvweuvwsgfvVvwwvwwwwvVvvwvfwwvvvxUevgwwwvwvwwgwufffufWfvgvvvfufhgGuwgvvxwwwVvwwwwwvwvwwwvvwvwwxwwwwxwwfwwwwwwgwuvwxwwwwwwwwwwxwvwwwwwwwwwwwxxxuwuwwwwwwwwvwvwwxwxxwxwwwxwwwxwwwwxxxwwwwffvwfvwgfwwvhfuewgvwwwvxwxwwxwfwwwwuxwwwvwWwwwwxwwxwvwwwgwwvvxwgwwwwxgwwwvxvwwxxxwwxwwxxwvwgwxwwxwxxwwwxgxwwwxxxxxxxwvvxxxwxwwvwxgwwwxwxvwxwwwxwgxxwwwwwgxwwwxwxgwxwgwwwvgwggwwvwfwwfffwvwwwfwgeGgvgwwhwwfggwgfgwwwgeGfgwxwgwgfvwvwvwgeFfwfwgwgwfhwvwvwxwxgeGfgwgxwwxxxvwwxxwwhwwwgxxwwvwxwvXggxxwvwxwwwwxxxxwxxwxwwwwhghvxwwwxwwwgvvvwxwwwxxwxwwwxxxxwwwgwwggfwwwwvwwwgwwwwvWwwggwwwxwwwgwhwwwwvWwxxxxwwwxwxwgvwwwwvWwggwxxvxhxwwwvXwwxhwxxgxwxwwxwwgwvxhgxwxxwwwwxuxwwxxwxxxxxxhwwxxxgxxxvxxwxxxxxxxwxxxxxwggwwfwwwwvvxwgggwgwfvxgxwghwvvwhgvxwxwxwhwvvxwxxwvWfwffwxvwwgwvvwgwwwwxwxvwwwwwvxwgxwwwhggxwwwxxwwxwwxxwxxwwxxxxwxyxxwxwwwwwxxxwxhxwxwxxxwggwwwwxuvwgwfxwggvvxxwwhxxwxvgwgwxwxxxwwwxxwgxwwwwwgxwwwwxxvxxxxxxxxwwxwwxxxwwxxxxwwxwgwxwwwxxxxwxxwxxxxxwxxxwwxxxxwxxxwhtfUfgffgwvvwfVgwfegggvvgFfvguuwedvUTfevwgvwewwVVfvfvfffvxhvwwfevwvfeugfgfvufvgfwwwxUwfwwwwwwfVUvVvdeuwwvvwwvvfwgvvwwwggwvwvfevwwfvwwWewwwvffxwwwwgfwffwgwgwwwwwxwwfwwwwvwxxxxwgUuwgvtewwwhwgwwwwgwwwwwgWvwwvwwgxvgwxwwwxwvwwwwwvevuwwggwgwuwfgvwwwgguugxgwgefVwwwvwvwwwxvwufwwwwxvvwxwwwgxgwvwxwwwwfwwvgwgwwwwvwwwwwvwvwwwvwwfxxxwwwWwwwwvwwwwxwxwxwuufxwwwxwwwwxVVwwwwwwxwwwwwwwgwxwgwxwvwwwwwwwwxfwgxwvwxgxxvgvwwwwgwwwxuxwwwwwwxfvwvVfvfwxvxeEevugvwxwvgwwUTvvfgwwwxwfvegewghwxwxveffufwvvwwwwuvwwvfuxwwwwgfefvvwgwwwgvwgxxgwwwgfwxfwwwwwxvxxgvgwvwvxwxwxhwwxgxxxxwwwwwwxxxxxwwwvxxwuwwvgwxwwxwwhwwgwxxxwwwvwxvevvwvvvvxwguvvwgvwvgwwvgvvfvxwwwxwxwvgwwfvwVwwwwxxgvvwwgwwxwwvgwwxgxwwwwggwvgfuwfwwxwvxwwxggwgxvvgxxxxwwwvvwwxxxxxwwxxwxwxwgvwwwhwxxwwwxwwvwxxvxxwwwxgwgxwwwwvhxwvwwgxgwwgxwxuxwwvwhwvwwvvwwvffwwfvwvwwvvwgfwfgfvfwvgfwvgggfffwwhwwfwwwfggwwwgvwwvwgwwwwgvwfVvuwwwvgggfgwwwwvwwvwwxxxwvwwwwwwvfwwwvvxxwwxxwwwwwwvvxwwwxeuwxxwwwwxwwhvwwwxwwxxwwwxwwwxwwwwwxwwwwwwvgwwgwggwwwvwhwwwwxwxwwvwxwwvfwgwwxxwxwwxxwwwwfwgwwwxwvwxxwxxvxwhxwwwwxgwwxxxwgwwwxxxxxwwwwxxwxvwxwxxwwxxxwxwxwxvxwxxwxxwwgvwwwwguwvvwwvwwwwwgvvgwwwuuvwwwwwwxxwwvwwwwvwwfwwvwwvvwwxfwvwwwwwvwwwxvwwwwwwwxxxxxxxxwxxxxxxwxxwwwwxxxxxxwxxwvwwwwxwwwvvgwxvvxwwghxxwwwvwxxwhwvwxxxwwwxxvhxxwxhhwwwxwxwwxxxxwxwxxwwxxxxwxxxxxwvwwwxxxwxwxwxewwgwwwfvwxvvfvwvgwwUvvfvvUvVgwvvhvgfvgwfwvwwewwgWgfgwwwvwwxwwwwwwuvgvgfvufwffvvgwVwvwffWfWwwvgwwwfgwwwvwwwwwxwvwxwwwwggwwwwwxvwwwwxfwwxwwwwwwxuxwxwwwxxxwvwwxxwwxgxwwwwxwwvuwgwwwwwvwwwwxwwfxwxwxxwxxwwxxxxwwgxhvwwwwxwwvvwwfwwwgwwwvwwwghxxwwwgwxfvwgwwvwxwwwxwhwwxwvwvwwwwwxwwwwwwwwwxwwvwvwwgwwxxwwgwwvwfgwwxhxwwwwhxxfwwwwwwxxxwxxwxwwxwfwwxxwxxxvxxxwxwxxxvwwxxwxxwxwwxwfxvxxxxwwxxxwxwxwwwgvwwfwwwvvwvWvfvfVgvwgfwwvuwvwgvwwxvwwvwvxvxwwwwwffwvwvwhwxwwxgwgvwwfwvwwxvvwwwxgxwxgwwwxxwwxwhxvxxxwwwwwxxxwxwxwxvwxwxxwwwwgwyxwxwxxgwvwvwwxwgxxwxgvwgVwwvvWwwgwwwvwwwwwwwvuvxgwwwxgwxwwwwwwxwwvwwwwwhxwgvwvxWwwwwwwwxwwwxxhxfgxwwxwxwwwxwxxxxxxwxxxwxxxxxxwwwxxxxhwwwwtufwgedefvvweWfwvuwvgVwvgfwgvwwWvtfvffuvVVwgvfwvfwwvvgvvgwggfvgvfUvggufwfgwffwxwvgwwhwwwgffVufvtffvVFwffwwwwwwwwxwwwxwvwvwvwGvwwvvwvvfvwwgvwwwwxvvwgwugwgwwwxwwwxwxxwwxvvwwgvvwwwxvxwwgwwvgwwxwvuwvwwwwwgwxxfgwxvwxxwfxvvwufwwewvgvwffxwwfvwwwwfwvgwwgwvfwvevwwwfvxhfvuwguwvxvwwwgwwwggwwwwwxwvwgwwgxwgfwvwxhgvwxxwxxwvwWxgwwwwguvwxwwwwxwwwvwxxxwxwxwwwhwwxxwwwgxwwwwxwwuvvvxxxxxfvwvgwwwxvxwxgxvuweffvtgggvwegwwuvffxwwwvfuwvvvuvfvwwwwfvwwwwwgwxgwwwvfwVvvwewxvwwwgwwwfvwwxvwwvvwfwfgwgwwgfgxwwwwwwxvwgwwvvwxxwWhwwwwxvwwwwwxxwxxxxxxwxwwxhwxwxgwwhvwwwwwwwxwwxxvgwwxwxwwxxvwxxxxwwxvwgwVgwwwwwwxwGwvggwgwwxwwwwwvwvwwvxwwwxfgvwvwuwxxwhwxxwvwgxvwwwwwxvxwwhwwwxxwwwxwxgwxwwwxwgwwwxxxxxwwxwxwwwxwhwwxvwwxxwgwxxxxxxwggwxxxxxxgwwwxxxwxxwxwxxwvxwwxtwwwwgwwvwvgvefwvwfVvwvwvwvvwwwwvVvvwfwVggVuvwvwwevfwvwwxwwwwvewvwvvvwfwwvvvgwgwfdvvvgwwvfwggwvwwfwwwvfvwwgvwwfgggxwvwwwwwwwwwwwwwgwwwwwwvvwxwwwwvwwwxwxwwwwwvdwwwwwhhxgxwwxhxxwwvxwxwxwgwwwwxwggwwwvwwvwxwwvggxwwggwwwxwxwgwwwwwfxwwwwwwwxwwwwwxwwwwxwvxwgwwwhxwwwwvvxwxxxvxwwwwwvwwxwwwxwwwxwwwwwxwxxgwxgwxxwwwxxwwwwxgwxwwxwwxwwwwwwtvwwwwtvwvvfwevwwfwwwwwgvvwwvwgwwwwwwwwxwwwwwxxwwwgwgwwvwvvwwwfwguvwwwwuwwwwwhwwwxwwwxgwwwwwxwvxwgwxwwwxxxxxwwxwxxxxxxwwxwwwwwwxwwxwxxwxxxxwxxwvwuwwwwwxgwwwwwxxwxwwwgwvxwwwwxhxwwwxwgxxwwxwxwxwvxxxwxxwxwwxwxwxhwxxxwxwxhxxhxxwxxxxxxxwxvxxxxxxxxsgggfwgwfgfwgwffwVwfwfwVvWwwwwxgwvfvffwvgfwWwwwfT5wgwwggwwvwwwvvVwwwVwVvWwfwgfgVwgxfvwwvwwvWwgT5wgwvggwwwwxwgggvgwvWwxwwwvwwggvvVxfwwwvwwvWwwwwwwwwvwggwwwvxwxwfwwxwwwxwvWwwvgwwvwxwwwwwwwxwgwwvwwfwxwwwhwwxwwxwwxvxwwvwwgwwgwwwvwgggwwwwwfvvwxhwffwwxwxgwwwwgwwxxwwwwwgwvwwxwwxhwwwgwgvxwwvWwwwwwwwxxwwwwvwxvWxxxxwxvwwvWwwvwvwxwwgwwwxxwwwxvwxwwwvwvxxxwwwxwwwwxgwwwggwwgxggwxwgxvxxwwwwwwwwxxwwwhxgwgvwffwwvfvwuwwwffwwwgwvwxwwwwwwfwwwwwgvwwwwwhwwwwwwwwwfvgxxwvvfwffugvwdwwfgwuwxvWxvggwwwvwfgvgwwxwgvgxwwwgwwwwwwgwwwwwwxxxwgwwwwwxwwwwvxxhwwwxwwhxxwwxwwxwwwxwxwgwwwwxwxwhxxhwhwxwwxwwwwxvxgvegwwwwdwgfwghwwwwwwwhxwwghwxwwfwwxwwwwxxxwwwxxwwxvWxxxxxwxwxwxxxwxhxxgwgwxwgwwwxxwwwxwwxwxxxwxxwxwxhxwwwxxwwwxxxxxwwxwwwwwxxxxxwwgwwgvewgvfwwvfvwwvwwwwwgwgwwVuwuwVvvgwwggwwVfwwwvwwxwgvewugfxvvwvwvggwwwwwwwxwwwfUvwwwvwwwwwgwvwgwwwwxwwxxgvfwxvvgwwwxwwwfugwewwxwxwwgvxwvfvwvwwxwwwxxvwxwwWvhwgwxwwwgvwxxwwwvwvggwwwwvwwwxxxwwvgvwwwgwwwwxgwwwxxwwwwwwwxwxxvwxxxxxwgwwwwvwwxxxxwwwxxwgwwwwwwwxwxxxxxwwhwxwxwwwxwwxgwwxwwwwwxwwwwxxwxwxxwwwwwVuwwfUvfugwWvhvgvwgwwwwwwwfwgfwxwwwwwVvvvfvxxgwuwVvwwwewwgwwwwvwhwfwxxxwhwwwwvxwxxwwwvgwwvwwwwxgwxwxxxwwwhwxwwxwwxggwwwgwxwxwwwwxxwwwwwxwwwxwwwwwVfvwgwwgvwgvwwxxwwwxwwxwxVvvvwwvxwxwvwxwwwwwwxwxgwwwxxwfwxxxwwwwwwwwvwwwxwwxwwxxwwwwvxxwwwwvwwwwxwxxwxxxwwgwwwwxwwxwwwwwxtwfggwfgwwfwvUEwwvffgVwfUwwvgwvvvfwfwfwgvwwggwwfwgvwxwwffwgUwUEvwufwwfvwwvwwvvwwfgfwgvvfwwvwwwgwwwwwwwfhxwgwwwxvwwwfwwwgwvgfwfwgxwwwxgwxwwwwwxwxvxwxwwgwwffwwxghwvxwXxxxxxwwwwxxwxwwwvxwwwwvgwwwfegwxwwfxwwwvwhwwwgwvwwwwwwwgwvfwwwwgwxwxwwfwwwvwwwwgwwwwwwwwxxwxwwwgwwxwxwwggxwwxwwgwwgxwwvwhgxwwxwxxwgwwxxxwxxwvxwgxxvvwVxhwvgxxXxxgxxxwwvwggwfvwwfwwwvwguxvggwgwwvvwgwfwwfvwfgxwwwwwxwxvwgfwuwvwufwgvgwvgwfwwxwwwvxvwvgvxwwxwuhwwgwxxgxwxwwxwwvxxxwxvxxwxgwwxwxwxxgvxwwxwwxwxxwwwwgvwwxxwwhvwxwwwvxxwgwuwwwwwhwwvxwwwxwwwwwxwwwwgwwvwwxwxxwvwwwxgxwxwxwxhwxwxgwwxwxwxxwxxxhgxxxwxxwxgwxxwwxvwwFwtwVvuveffvuuxgfVvggvwggwvvwvwwwwwgvwwwgfwwfxwvwwwxwxeuxWvfvwfwfgewwWugwFFwwwvhvwwfwwxwwgwwwxwwwwwxwwxxxggwwwwvwwwxVwwvwwhgwwxwgwxvwwwwwgfxwwxwxwwwwwwhwvvgwwwwxwxwwwwwxgVxxwvwxxxwhxvwwvwfvvwvffgwvxfwwggwwxWuwwvxwwwwvxwwwxwwvxwwwwwxwwxxwwwwwwvwxWewwwwwwwxggfwhwxxwgxwwxwxwwwxwxxwwxwxwwwwgwwwwwwwwxwxwxwwvxgwvwxwxxwxwxwgxxwxxwxxwxgvhwxxwwxxwwxxxwxxwyxwwwwwwxwvvwwgewfgwvffvuwwwwwgvwwwwwwxvwxvwvgwwfwwgwgWwxxgwwvvwfvgwgwwwwxvwxxwwhwxwwgwvfvwxwwwwwwxxwggfwwfwwwvvvwwwwxwwxxwwxxxwwgwwxwxhxwwxxwwwwxwwvxwxxxxxwgwxxwwxxwxwxwwxwwwwwwvwwgwgwwwvwwxwxwwwxwwwwwwwwWvwwwwxwxwwwwgwwwwwwxwwwxwwwwgwwxwxwxvwhvwhxxwwwxwwxxxxwwxwwfvwxxxxvwxxxwxwwwxgxxwvxwxxwxxxwwxxxxwxwwxxgxxwhxwxwwwxwxxxgwxvxvvvvwwvxgvVwwwwwwwgvWxwgfwwvwgvVxwgwwxwwggvvfWwvxWwvvvwgvUuwwwgwvggvWwwwvwxwvwggwevvvwwuwxwgwwvWwxwvhxwwvwwwwvwwfwxhwwgwwwxwwwwwvwwgxwxxxwwxxwwwvvgwvwwwwxvgwwwwwxwwwvwwwgxxxwwxxwwxwxwWxwugxgwxwgwwvwwwwxwwwvgwwvgwwvggwvwwvwwvhwxvgxxgwwgwwhgxwwwwwwxwxwwgwwfwwwwwwxxwgvxwxvxgvwwwvwvgwwwxxwwwwwxxwwxxxvwxvwxxxwxwwwwxxxxxhwxwxwwwxwxxxhwxwwwwwfwwgwwwwgwwggxwwwwwwwwvuwwwwwwwvvvvwvwxwwwgvfvvgxwwwxvxvvuwwxwexxgvvxwwxwxwwxwgwxwwwxwwxwwwwhgwhwwgxwxwwxwwwwwxxwwwxxwwwwxwwxwwwvuwxwxwxvxfwwvwxwwxwgwvewwxxwwwwwvgvuggxxxvwwwvwwxxwwwhwwwwvvxwwxwwwxwxxxxxxxxxxxxwwxxwwwxxxxxxxwwhxwvwwxuwwwwwwwwwwefwwvwwffwwwVvfgwUwvxwvvvwfvwwwxvwvvfuefgwgwwwvuwwvvvgwvwgvwwvffvwvfwvvgvgvwfwwwwvwwwwguegwgVgwwwwwwwvwvwwwvwwvwgwxwwwwwvwwxwgwxwuwwxwvwxwwwxwwgwwgwwwwwvuwvwwwxfxwwwwxwxxvghgwwgwxwwwwwvwwwwwwwwvvvwwwxwwfwwwwwwguvwwxwwwwwwwwxwwwwwwvwwwwvwwhwwvxwwvwwwwwgwWwwwxwvwxwwwwhwwhgwwxwwxwxwwwwxxwwwvxwwwwwxwxxxxwwxxwwvxwwwwguwgevwvwgwuffuvgwgwwwwvwwvwgwgfwwwwwwwwwvwwgwuguwgvxxwwwxvwwwwwwwwwwvxxwwxwwxxxxxhxfxwxxvwwxwxwwwxxxwxxxwxxwwwvvwvwxfvvvxwvvwwwwwwxwwwggvwxwwxwwvwvxwxvxwwwwxwwwwgwwxxwwwghwwvxwwxxxwxxxxxwxxwwwhwxxwxxwwwwwuvwwfvwwgfwwhwfWvsggfFvfvvfgvggvufvggvwwgwfwwufffwvfwwvxvwwfvuwwftvwvwwvxgfftwwU6wwwwhwgvvfggwvwwwwxwxwfwuwvxvgwxwwwwwxwgvwwgwwwxwxvewgxwwhwwwwwxgwWwwgvgvwwwvwhwwwwwvvwwwvvgxwxwhxwwgwwwwwggexwvwwxxxwxwwvxvggwWgxwwxvwevvgxfwwwwwwvWvvxhgfwvxxwvwvvgwwvwwxxxwVwwwxwvwwgvgwXgvxwxxwgfVxgxxwxxgwwxwvvwxgwxxgxwwghwxwwxwxxxvxxwfwxwgwwwxwwvwwxwwxxxwwvwwwgwxvvxhhvxxxwxwxwwwwwwwxgwvggvvguwwwfwwwvxfVvvwwvwgfwwgVfwvwwwwwvwfvvfvwwwvxxvwgguvwgWwwwwwwwwwwwgwxwwvgugvwhwwwvwwvxwwvvxwfVgwwwwgxvwxgwxxxxgwwwwxxhwxxwvwwwxxwxxxwwwvwxxwvwwxwwgxwxgxxvwwxwxwwwgwwwwfxgwXwwvvwwxwxvxwwvwwwgwwwxvvxuvwwhvwxwwgxwxxwxwwxgxwvvxwwwwxxwhfvwwXwwwWwwwxxxwxwwwgwxxwwwwwwwwxxwwxxxxwwwwxwxwxwwwhwxwwgwvwxwxwwwvxvgwwfvuwfvgwfgfvvwuwvgUwvwfwfwgwvfeveUDvVxgwvwvggffggfgwvxwwxwwgwgUDvvwfwweggwfwwwwfwvwwwfWwgfwvwffwwugfwggwwgvwwvgwgwvgwvvvwfwwwfwwwwwwwwgwwwwwwwwvwfwwwvwxxwwwxgwgxwgxxxvgwfwwvwwwwwwwwwwuwfghwwwwvvwxwxwWxhgwxwwwwwwgwwwfwvguwwxvvwwwxWfwvwwvgwvwwgvwfwwgvwwwwvvwwvvWvwwwwwxwvwwvwwwwxvxwwwwxxwwxgwwwwwxwfgxvwwwfwfwwwwvwwxwfwwfvvxwwwvxgwwwxgwwwwxxxwxxwwwgwxwwxwwxhhxwwwwwwwwxvgxwwwwwWxwwwxwXwggxxxggwxgwwXgwxxwxxfvvfguvwwvwwvvuwfWggvvvwwwxfwwwwfvvwwwwwwwweuwwxxwwwuwvwewfffwvwwwvxgwwgeguxwwwwwwwgwfwwwgwxvwwwvggwxVxwvwwwvxwxwuxwwxvwwxwvwwvwxwwxwwwwvgxxwwhxwwwxxwxwxxwxxwxwgwxxwxwwvwwwwxwwfwvwwfXvwwwwvwwvwwwwvxuwvwwwwwwwxwwxxwwwvxwxwxwxvvwxWwxwxwwfwxwfxxxxwhwwwfgvxwwwxwwxxwwxxxwxxxxwxwxxwwwwfxwwwxwvxwwxxxwgwgwxwhvVgfxxgwgvwgwvwvvxgvWwggvwxfgwvfvvwgwwwhvgvxfgvWwwvwwwvwwfwwvwgwwxgvVvwwwwwwfwwwwwxwwxwgvxxhwxwwwwxhwxvvwxwxwvwwxwvxwvwvuwgwxwgwuwxxwwwwxvwwwwxwxwwgwvgwwxwwwgxxwwvwgwwwfwvxwxxgwwwhwwwxwwxwwhgwxxxwwwwwhwwgwwxxxgwxxwxwwwuxwxxvwxxwwvxwwwwvxwxxxxwwwvxxxxwxxxwwvxwwvvwvgwwwggvvwwfwwgwwwgwgwwgwxwuxwwwwgwwvwvvgwwwwwwgwwwwwgvwwvxvxxxxwxxxxwwwxxxwxxwwxxwxxxxxxxwwwwxwwxxwxxxwxwvxxwwhwxwvwwgwwwwwuxwxxvvwvvxgwvxxvxvxwxwwxgwwwxxxxxvxwwwwxwxxwxxxwxxxxxxxxwwwwwwvwwxwwwxvvwxgwgwgwwwxwwwxgwwwwwwwgwwvwwwwwwvgwxwwgwwhwwxwwvwwgwwgwwgvwgxwwwfxwwwwgxxxxxxwwxxwwwwwwwxxwxxwwwwwwwwxxxwvxwwwxwwxwwxwxwxxwxvwxwwxwxxwvwxgvxvhxhwwwwwwxwwwxxxgxwxwwwxxwxxwxxwvhxxxxgwxxwxwxxxwwhwxxwwxxwxxwxwwxxxwxxwxxxwxwxxxwxwxxxxxxwwwwgwwwwxgwvwggxwxxxwxwwwwwwvwxxgxxgwghwwxwwfwwxwxwwwwwxxxxxxwwwwxwxxxwxxwwwxwxxwxwwxxxxwwxxwwwxwwxwwfhwxgwgxwxxwxxxxwxwwwvvxxxxxxwxxxwxxwxxxxxxxxxxxwxxxwwxxxxxxxxxxxxxxsvfwfvwfwfwfffvfvvfwwxffGwwwvvwgfwwwwwxvgfvwwwxghVfeVffffV6tdvVuvvvwwxvwuwuwwwVvwVfvWvwgwwxvwvgwwxwxwwwwwgvewvgvvfVevfwwwvVgvwhwvgvvwwwwvwhwwxwwfwgfwwwxvwwxxfFVvvvgffwffwvgfwwgxfwwwwxfgwwwwwfxvwxxfvxwwgvwwwwwwwgvvvffwweewwgwgWxwwwxhxWvwwxwxxwxwwwwwwwwvwvvhwvvgwwxwwwgfwwwwgvwwwwwxwwwxwwwxwxvxxwWfWfwwgxwgwwxwfvwvxwwwwvwxvwvwvwxwwxwwxxxxwxxwvgwgwwxwwwgvwghxhvxwgwwwwwwxxxxwwhxxxfvfugeVfvgwwgwvfvgvvwwxvvxxxugfuvgwwwwwvwxgwwwhxxxwwefVdcuVugfuwwwwwfwwwvwwgggwUwwwwvwwwXwvwxhwwwwxggwhwwxwwvgwggwfwvxwgwwwwvwwwwwwwwxxwwwwwgwwxwxwwxwxwxxwfvfwwwvfgvwwwwwwvwwxgwwwxgvwwwwwxwgwwxxvwveWuvwwgxtfwwwwwxwwwwwgxxwxxxxxwwhwwvxxxxfvwwgvwgwvuwwwwwwwgfwwwwvxwhwwxxwwxwgwwwwhwxxfwxfvxwwxxwxxwwwwxwwxwwvxxxwxxwgxwwwxxwxwwwxwwwxwwwwwwwwwxwwwxwxwwxwwwxvxtwfwwwwwfvvvwewvwwwwwvUfgVwvwwvwxxvgVwwvvxxEvugwfeUeVwggvgegEuwwwxevevgvxvgfvewwwwuvgwwfwvwwwxxfwxwwVuxvwwwwwwxfEUvwwwwwxwgwwwwxgexxxwwwxeVfwwwvwfwwwwwgwfgUfxgvwwwfwwxgvxvwxwgvwgxxwwwwfwhgVvwwvwwvwvwgvxwvwwwxxvwwgwxVvwvwwwxfwwvwggfgwwwxwxwwwvwxxxgvxwvwwwwwwxxgwwxwxygwfvwgvvwwwwwwwxxxxxwxxhwvxgwxfwwwxxwwgwwggwxxwxwwxxwwxxxxgxvwxwwwxwxxxfvvvugVwfgwvvvwuvwvgfwvxuwwgwxwwwvxxwwwxdffugfwwTugvvgVvevwfwxvwfwwxgwwvwwxwwwxwwwwvWvxxfwgxwgvwwwwwxwwvVfwwwxgvxxwwxxxxvxxgUvvwvwwwwwwvvwvfewgwwxxwxwxxxwwxwxwvvfvvwwwwwxxxvvvwwvxgevxvxxxwwvxxVgwxfwvxxwwxwwwwxxxvwvxxxvwwwxWvwwfwwxVwwwgxxvwwxwwwwxxxxxwxwwwxxwxvwxxwvwwwwxwxwwgxxgxxewxuhhwwwwWvwvvgWuggwffeWgwwvxxwvwwwwwxvwvgxwwvxwxwwxwgwvggwuWeWvwwvxgfVwwwwgwWwwvgwXvhgwwwwwxgwVwwgwwxxwwxwwggwvwwgwwxfeWvfwvgwfwwxxxwxwxxxxwwwwxwhgeWgwwwwwwwwwwfwVwwvgwwwxwwxxxwwwwwxxxwgwwwwgvwwvwvgwxxxwwxwxwwhgwxhxwxxXwxxxxwwgxxxVgxwxxxwwwxxgvgwwxXwxxwxxxwxwXwxhgxwwwwwvxwxwxxxxhwxxvxwhhwxgwhxxxxxxxxwxxfhxxxxxwgvWwxxxhxwxwwxwxwghvvwvWwfvuhvvgwwvwwwxvwxxgwxxxxwxxxxxxWvgwgwwwvhvwxgwgwwWggwxwxgwwwxwwwgwwwxvxxwxvxwwxgwgwxhwxhwwxhwgxxxhwxwxxxwwwwhxxxgwgvxwxxwxwwhwxwxxxxxwwfwwvhxwwwgxxxfhwwxxxvwvhxxxhxhXWgwxxxxwwxxwgWxhxxwwxwxxxxxwhwwwxwxwwgwxxwvxxxxwxxwhxxxxxxxxwxxxxxwyhxxwxxxwxyxxxxxxgxxxtfwwfwvwxwwvgwfvvwwwxwgfwwwfvvwvwWgwwxxfffwwxwwxxwVvefvvvgffvfwxfffwwvwfvfvhwwVgFufvvwvxwwwwueefwwgwxvwwggguwwfvfxgwwwfgwwwxxwwvVevwvwwwwwvwxvxwxfVevvvwwwwxwvgwvwwwxxxwvgwwffwwwvwxxwwwwwwxwwxwwvwwwgVgwgwwwxwwwxfwgfvvwgxxxvwxwxwxwwwgwwxxwwgvwhxxgwwxxwwxwxxwwvwxxwwwwvwwwfvxxxwvwxgvfuwvwwwwwwxwwhgxxxwwxxxwwwxxxwvwxwwwwwwwxwvwwgxwhwxwxwxhvwwxxwffvvvgwuwgggVgvwwvwgxwwvwvwxwwwwwxxxUWfufxwwwwvwddffwwwxgwwwfvvwwwhvvwxhwwwwwgwfgxwwwfgwwwwwwwwhwxfwwxwwwxxgvxxxgwwxxxxwfvwwwwxwwwwwgwwwwghwxxwgvwwwwvxxwwwwxxwfffuuwwwwxxvvwwxxwxgxxwwwwwxvxxxxwwgvxwwxwvwwwwwwgwwwwwxwwgwwxwxwwwgvvwwwgvvxwxwxwxxvwwxxxwxxxwwxwwwwxxwwxhvwxxxwwwvwgwwuggwwwwwvvwfgwvwwwwwwvgfwvvwwvwwwwgwwfuxvxwfvvwwwvwxwwwvwwvwvgfwwwwvgfwfvvwwfffwwvwvwfvfvwwwuwwwvvwfuvwwwgwhgwwwwwwggwwwxvxwwwgwwvwwwwwwwgfwwwgfxxwwwxxwxxxxwxwgfgwwwgxwwwvwwxxxvwvwwvwwwvwxwwxuxwwwxwwwwxwwwwwwwwwfwwwgwwvwwwwwwvxgxxwvxwwwwguxwvwwxxxwwwwwxwwwwwwwwgwwxxwvvwwwwwxwxxwwwwxwggxxwwxwwwwfwwwxwxwxxxxwwwhxxxxwwwwwwxxxxgvhwfwwxxxxwxxwwwxxxxwwhxvwwwxxxxxxhgxfvwgwwwgvxvfwwvwvwufwwwxwwgwwwwxwxxwwwxhvxvgwvwvwxwvwwwwwwwuvwxwwgwwwwvwxwwwwwwxwwwwwwwvvvxvwgwgwwwwxxvwwgwwhxwwxxxxxwwwxwwwwwhxwgxwxwxxugxwwxwxwxwwxxxxwxxwwxxvwwwwgxxxxguwwxvwwwxxxwwwwxxxxwxghxwxwwwwwwvvwxwwxwwwxwwwwwhwvwwwwwxwwwxwwwgvxwwwvvvvwwwxwwhxxxuxwxwwwvwwxwwwxwwwwwxwgxxgfwxwxxxwgvxxxxwwxvxxwwxxwfwxwxxvgWwwwvwWwvwvwwwvgfwwvvgufvwwvwvgwwwgwvwgvxgwvwwgfvwwwwvwwwwgfwgvuvffuwVfufWfuvgWgfWfUfggfWvwwvgwvvwuwvwfgfgwwggewwgwfwfvxwwxwgvwwxWfvwxwwwwwwwwwwwwwgwwwwggwvwxwxgwxxxwwwwfwwgwvwwvgwxwwwgwfwwwwwxwvvwwwwwxwwvwxwxwwxwxwwwxvwwgwwgvvwgwfvvxwwgvggwwwwwwxvwxwxhvxwwwwwhwwwwwwwwxwwwgwwwWgfxwggwwxwwwwwvwwwwwwghgxwgxvwgxgwwwwwxwwwwwxxgwwwxhxxwxxxxxwxxxxxxxxxxxwxgxxvwwwwwwwxxwxhgwfuxxgxvwwwwwxvxwxxxwxxwvvxwwwvvgwwgwvvfwwwvwwgvvwwvuwxgvwwwwwwvwxwxxhvwxwwfvwvwwwuuwwfvwUVfvwWvWfgvwvuwfwwvwwgwwwwwxwwgwwvwwwggwwwwgxwxwwwwwxxfxxwgwvxwxxhxxhxgwvXhvvwwwvwwwwwgwwxhxwwwwwwvwwwvwxxwwwwxgvhwwwwwwwgvwxxwwvxxxwxwxwwwxwwxwwwwwwxxwxwxwwwwwwvghxwhhwWgwwgWwvwxwwxwgfvwgwvxxgwwwwwwgwwxwvxwwwxwxwwwxwxvwxxxhxhxxxwwwwwxwwwxwxwwxxxwxwxwwhwwwugVvwwwvfwwwgwggvvwwgwwvggxvxwwgwwgvfWVvwwwwwgwwwwwwwfvugvfevfVUvvvguWfvxwwggwwhwvvvefeuvvgwgVevvwfgwvwwwwwxwxxgwgvwwvggugwgwvgvwwwwvxwghfvwwwwvvhhwgwwxwfgUgwvwwxffvwwwgvuwwxgwxxwfwwwvWwwwwwwhvwxwxxxwwxxwwvxwxxgvwwwwwwVvxwwvxwwwwwwvwvwwwvwwxwwxxwxvwwwwgwxwxvxwwxwxwwVxfwwwwwwgwwvxxwvxwvgwwwwxwwwxgwxwwwwxhxwfwwxWwxxxgwxwwxhhxwhvgxwxvwwxxwwxfwxxvwxxwxwxwwwgwwxxwwwxxgwwgwgggfvxvgvwwwwvwwxwwfgevwvvwgwxxwxwgwxwwxugvewvvwwwvwwuwvvvwwxvvwhgwwwwwwwwwvwwwwvvvxgwgvwvvwwwwwwwxvgvxvwwvwwwxvxvwvxwwwgxxwwwwxwhwwxxxwwwxwxxxfgfwvwvwgwxwxwwwhwwxwxgwxwwxxxxxwwxwxwwxwwxxvwwwxwxwwxxxwgxwxwwwwwxxwxxwwwwgxgxvxxvwwwwgxWhwwxwwwwvwwxwuwwxwxwxhxxwxwxxwxxxxxxxxwwxxxxwxxxxhxwxxwxwxxxwxxxwxxxwhwwxxxwxxxxuxgxwwwwvwwwxfwvwwvwvwvfuvgvvvwxvwfwvwvwwwvuwgwwvwwwwwwwvwwwufvuwwgwvWfvgwgwfvewggvwfwwwwwgWggwwxwwwwwwwwxxwvwwwwxwwwfwwvgvwhfwvwxxwxwwwwwwxxwwwxxxwxwwxwggvggxfwfwwwxwvgwwwwxwwwwwxxxxxhwwwxwxgwxwwwwwwwwwxgwwwwxxwwwwxxwwwxwwgxxxwwxxwxwwwgwxwwwvwwwwwwxxwxxxxwxwwwwwwhvwwxgwwxxgvwwxvwxxxxxxwxxxxxwxhxwwwxwwxwwwwxvxwwwxwwwvwxwwwvfwwuvgwgwxwwwwwwwwwwwwwwwxwxxwwvvwvvwuwxxvwvwwwwwvxwwwvwxwxwxxwxwwxxwwxwwwwxxxwwvxxxwwxwwxxhwxwxxwwxxggwwwxwwxwwwwwxxwxxxxxwwwvvxwwwwxxxwwhxwwwwxxxxxxxxwxxwwxxwwwxwxwwxwxwxxxxxxxxxxxxxxxxxwxwxxwxxxwwxxwwwgxwwwwgwfgxvwggggvxhvxwwxwxwxwgvgvvgwwwwwgwfggvwgxfvfvwfvgwxvwwxwxxwwwfwfwwvxxvxgwxwwwgvxwwwwwxgggwxgwwwxggvgxwxgwfgxhxxxgvgvwxwwwxxwxvwgwwhwxwgwfgwwgwwxxwxwxwwxwxxxxwxwvwxwwwwxhxvwxxxxxxvwhwwgwwwwwxxwghxgwgxxwwwwwhxvwyfwwhhxwxxxxyxxxxxxxxhxvwxgxwxxxxwxwxwxhxxxwwxxxwxxxwwwwxghgvwwvvxxgwwwxxwwwwgwfwxfwwwwwwwwwwvxxwxwwwwwxwgwgwxxwwxxxwwxwxwxxxwwwvhwxxwxxxxxxvwvxxxxwxwwwwxxvwxxxwwwxxxwxwxwwwwwxvgvvxxxxxwxxwxxxxxwhgvxxxwxxwwwxxxwwwxhwxxxxwxxwwxwxxwxxxwxhxxxxxwxxxxxxxxxxxxxxxxxwxtgvvvvwfevuwvwVwwwwwgwuwwwwweuwvfewwvwxwvgwgwwwwxxVutgefEeegewfgefweVvgwwfvwwgwwffevevefgvwvggwgvgvwuwwhwxwwVutwvVTwgwguguwgvgwwwwxxwgwwwwwwwvhwxgwxwhvxxxgeWfffveUewvwwxhwwwwvwvuwxwwgwvgwwfvwwxxwwwhwxxvxvvwwuwwxgwvwvgwgfvwwfFuxvgvxxfwggvwwwxwggvwgvxxfggfwwvwvwwhgvwwvWuxwgwxxwwgwfgwwuwwgwwwgvwvwwwwwwwxgvffwwwwwwwwvguxxgwxwwxwxvwxhxxxwwwxwxhwxvwwwwwxvwwxwxvwvgvxwhwwwwwhxxwfwxewvxwxwwxxwxUuuvugfvuwwwghtgVwfwwxVxxwfgwwvwvwxxwxfvwwgwxxxxdfeufeffWwvwxwvvvvxufwwxwgwdufvwwfwwxwwhfwwxwhwwwwwvwxwwgvffwwhwvvwhwxxwwwwWwxgwwxxwvxwxxwxwwvfvvwVvwwwwgwggwxwvxwwwwwwwwxwwxwwwwwwxwwxuvgwvwwuvwwwxgfvwgxvxwxwgwwwwwwxgwxxwwwfwvwgwvwwwxwgwvgugwwxwwwwwwwgwxwwwwvwvwwwwwwxfgvwwwwxwxxwxxwxwwwxxwgxwxwxwxggxxxxxwgvwwwvwxxvxwwwxwwwvxgwwwwvwxxxvwwwxwufFwWwfvfwgvgegVwvvwfgvggwgvwgvvvwwggwgvfvggvwvwwgfvgvwvfvugvVdvfgfffdfwvwgvgwfwuguvwxwffevuwWfwfvwwWvwgwuggvwwwhwwwwfvvxwgWgwgvwwwvwgwvWggwgwxvuwvvgxgwwxwxxwwwwwxwwfwfgvWgwffwwwguwxwfgwxwwxwwwvvvwwwwwwwwxwvxvgwwwwwvwwwwvwwvvwwfvvwfwvwuxwxwggwxwwwwxwvwwxvwgwxxwxwwxwxwwvgwwvwwgwwxwwwwgwwwxwgxxgwwgwwwwvxwgxwxwwwfwwxwxxgwggwvgwxwwwwgwxwfxwxwxwxhxwxwwggxwxgxwwxwwvwvwwwxwwvvxwvhwxwvxfhggwxwwxxwwfugufvfwgwfwvfgwvxuwvuwwwwgwwwgvwgwggvgxfwxxwwuefvdfdfwwugvggvwxwfwwwwwvvwvfgwwwvwfgvfwvwwwwwvwwwxwvvxwgwWwwxhwxwgwwgvgwwwwwxwxvxwgxvvwwgxwgxvxwxgwvgvwwfwxwwwwwuwwwuwwwxwwxuwxwxwwxwwwvwxwwxwvwgvwvwwxwuvwvgwwvxwwvuxxxxwvgwwgwghxxwwfxhggvgxwvxwvwwvwfwgwvwxwvxwwwwxgvxwwwwwwxggwgwwxwgVxwwwvxwvxwwxvxxxxwwxxwxwxwwwxwxvwwwwxwxwwWwhwxxxwgwwwxgwxwhwwxxxxxfwxwxxxxwwwvwwwgwgvgwwwwwewevewwwfwfwgvwwgwfwwvwvvgwvwgwwwwwwgwwwxwwgfgwgvvvfgewuvUwgwvwwVgWgfvwggwwwwuvwwVwwvxwxggwwxwwgxwxwvggwxwwevhwvwvwfwgwwwwgxgwvwwxwvwxxwwxxxxxwxfwvvfwVwwwvxwwwfvxxxwxvxwwwwwvxwwwxwvwxwxwgwxwvxwwxwwwgwwgwwwwwwwwwgwwwwwwwwvxwwgwwwwxwxxxhwwwxwwwxwwfwfwvvvwgvxvwwvwwxxwxvwwxwxwwgwwwwwvwxwxxwxwwxwwwxxwwwwwwwwwwxxxwgwwxwxwxwxwxwwxxwxxxwwgwwwxgwxxwwxwwwxxvvwgwxwxwvxxxhwxwwwwhwxwwxwxwxgwxwgfwvwwwvwvvgwfwxwwgxvwwvwxxwgwxxxwxwwvvuwfwfwwwwvwwwxgwxhxwwwwxgwxwwxxwxxwwhgwxxxwvxxwwwxvwwgwwwgwxxxxxxvwxxwxwwxwxwxxhxwwwgwgxwwxwwxwxwxwwwxwwxxxxwxxwxwwxxwwgwwvwgwxxwgwwwxxwxwxxwwxwwwwwxwxxwxxvwvwwwwwwwxwwxwwxgxxxwxwxwwxxxxxwxxxwhhwxxxxwwwwxxwwwxxhhwxxwxwxxxwxxxxxwwxwxwxxxxxxxxhhwwxwwxxxxwwhxwwxhxvxhwwwvwvvwvhwwwwwwxwwwvwvgwfugfwwwwgfwwwgvwwwxvguvgvwwwwxwwwvwxvffgwggvwwgvwwwwwwwwfhxgffffvfvggwfwgwwwvgvwwwvxxxwxwwvwwwgwhwwwugwxxwxwfgwwgwxfxwwvwxxwwxxxwwwuvvwwwwhwwwwwxwvxxwvgvwevgwwwxwwwwwwvvxxxxxwwvvwgxwwwxxwxvwvwwwxwxxxwwgxxxxxxwwvgwwxwvwxxwxxwxwxwxwwvvgwwgwhxwwwvxgwwwxvwwxwxxxwxxhxwxwwxwwwwxwxxwxwwwwwwxxwxwxwgxxwwxwwxwhwvwwwvgwfwvwghvwwwxxwwgwvvwgwxwvwwvxxwxggwgvwwwvvvwwggvwwwwwwxwwwwwfwvwwwvwxwwxxwwvwxxwgwwwxxxwxwxgwxxhvgxgwgxwxxwxwxwxwxxhwwwwgwxwxwxwgxwxwxwwxxhxwwvwxxgxwxwwxxxxxwxxxxxwxxwxwxxwwxxwvxwwxwxwwxwwwxwwxxwwwwxxxxwxxxwxhxwxxxxxxxwxxwxwxxwxwwxxwxxxwwxxxxxxwwwffvufwvvvvugfxegvuuevfffuvwvvfvwfwwfvvvvfvvfvvfuuvwwwwwwgVguuwufvfvufgevuvfvfvufUwgwfwvvvfffeuuwwwwwfuufwwwvxwgwvvwvvwwfwwwwwwwvgvvvwwwwxvgvwwwwwwwwxxwwgwggvwwwwxwxwvwwwwwwwwwwwwwwwwxvwxwwvwwxwwwwxwxwwwwwvxvwxxwwwwwwvwgwwgvvwxfwwvxwwxwwuwwwwwwwwwwwwwwwxwwxwgvwvxwwgxuxwwvwxwwwwwwwwwwwvwwwwvvxxxxwxvwwwwwwwwwxwwxxxwwwvxwwwvwwwxwwxwwwxxxxwxwxwxwwxvwvwvfvwuwwwgeugvvvewvvvvwgvgwvwwvvvwxggvvwwwxxgwvxwgvvgwvvgguvwxggvwvgwwwwxfwwwwggvvvwwwxxxxwxxwwvwwwwxxwwghvwwxxwvvwxwxxwwwwwwwhxwwxxwxwwhwxxxwxxwxwxwwxwwwxxxxxwxwwxxwxxwwxxwxwwwxwwwwwxwxwwxwxwwwwxxxwxxwxxwxwxwxwwgwxxwxxwwxhxwwxwwwwxxxxwxxxxwwhxwxxxxwxxxxxxxxxxxwxwhwxwxwxxxxxvwwgxwvvwwxwfwvgwgvwvWgfvvgwwwwvwwwwvvvwvgfwwxgwwwvvggvfWvwgwvvvhvffvggfwgufgwgfuvWVwvwvvfvvwvwwggeefvWWfwwgwwwwwwwgvwwwwwwwhuwwggwgwgwxxwxwwxxxwgwwhwwwgvwwwwwwwxxwwwVwwwwwffwwwwwhwwvwwwwxwwvwhwxwwwgxwxwvwgwwvwxgWwwwwvwwxxwwwwwwwxgwwxwwxvxhwxvwwwwwvvwgvwxwwfxwwwwguwwwwxwwxwwwwgwggfxxwwwxxgxwvwxwwwxxwwwwxxwwwwwgxxxwxwwwxxwhwxghwwwwwwxwwwvfwxwwxxxxxxwxxwxwxxwvxfwvxwwvxgggvwwvxwwgwwwxwwwgwwwgwxwwwvuwwhWwwwgxwgggvwgwgwwwvfgwwgwwwxwwwwwwvwvxwwxwgwwwwwwwwwwwwwwwwwwwwhwxwgwgwxxxxwxwxxxwxxwwxwwugxWwxwwwxxxxxwxwxwhwwwxwxxxvvvvxxxwwwxxxxxhxwwwxwxxwxWvwwxwwwxxxgwwxwxwwwxxwwwgwwxwxxxxxwwwxwwwwxwwgvwwwxxwfxfxwxwvhwwwwxxvvwwwwxxxwxxxhwxxwwgxxwwwxwxwwxgvvwwhxwwwwwwwxxxwwwwwwxwhxwxhxxvwwwxxxxwwwxvvwvwvggvfwvwfwfvwfwwwwwwvwfewfgvfevevwwwwwwvfgwvvgwVvwwgwxvwfvefeffwffwvuvwvegegugwgvfVevewfVvVgwvwggfwwgwwgvgwgvvvwfwvgwwvwvwggvwwwwwwwwwwgwwxhwxwvwvgwwgfxxwxwwwwwwwhxxwxwgfwvwgwgwwvvwvwwxhwwwhwxvwwwgwwwwwxwwwxwfwwwhxwxwwwvwwvfxuwgfvvwvwwwwvwxgwwwfxvwwvwwxxvwxwvwgwvhxxwwwwxwwwvvwxgwwvwxxwvvghgwVwwwvxwvwhwwwwxwvvxxxwwwwghwggwwwwwxwwxxwwwwwwxwgfwxxxxxwwxwxhvhwwfXxgwfwxwwxwvwwwxwxwhwwxwgvxwegwwvxxwwxxwwgvwuwevwfgfwxwgxwvwvwwfwWwvhwwwwvvvfwwwwwgwfwfxxhwwwwvvfffvfwwvwwvwfwgwwgvWgwwvwfwwgwvvwwgwgxhxwwwvvwvwxwgwwgwhwwhgWhgwwhxxvwwfwvvwhghxhgwwhxxxgwwwwxwxxwgwwxfxwwxwwwxhxwxgxwwwxxwwwxxwwxxxxwxxwwwwwwuwgfvgwxwxwvwwwwwffgvwwwgfvvwwxvxwvwxwwgxwhwwwgwgwgwgwxvxxgwwxgWwfwgwxwwwwxwwvuxhxwwwWwwvwgwvhxxvvwwvgwgwwgwwwWwwxggwxvwvxggwwxhwxwxwxwwxwvxuvxhxxxxgwhxvwhvwwvwwfxwxxXwuvvwvxvwVxgwvwfvxwwvfwuwgwvvwwwfwwvxwfwfwfwwwwvvffwwwxvvvwwxvgwvvwwvwwfvwwvwvVefwwgfvuwuxfvfwvgwvwggvfvvwVwevuwwvwggwgwgwvwwwvxwggvwfVvwwxwwggvwwwwwwwvwgxxfwwwwxwxxwwvwwvwvwwxgwwfgwgwwwgwwwvvwwwwwxxwxxwwwwwwwwwwwgwwgwwwxwwwwwwgxxxwvvwvwvwwwwwxwvxwwwwwwgwxwwwwxwxwwxwgwwwwwwxgwxxwwvwxxgvwwwxxwxxxxwwxxgxvxxwxwwxwwwwxvwwxwxvxxxwwxwxxxxfxwvxxxxwxxgvwuwgvwwgwvvfwwgwwwgwwwvwwwvwwwwwwgwffwvxvwwwwwxvvwwvvvgwwvxweewwwwgwfwwgweewwwwvfwhwhwvwvxvwwwvvwwwxxfxxwwwwfwwwwwfvggxwxgwxxwxwvwfwvxwxwhxvvwxwwwxvwwwvxwfxwxwvwxwvvwwwwwwxfwwgxwwwxwwwwxwwvxxgvwwxwxwwwwwwwvwwxxwwwxvvwwwwxwxxxwwgwwgwwgwxgvwxxxxxxwwgwwwxxggwwwxwfxvxwwgxwvwxxxwxxxxwxwgwxwxwxwxwgwwwxwwwwxwvxxxwwxxwwwgwvwhwwvxgwwvhgvgwvvgfgwvwxwwwwwffvvwvwffvxwVefvwwxgwvgvgvwwwvwvwfggTEwwgggvfxgwgwwffgvwwVufgwwfvwggxgxxxvhwhwwwwwwxwwwxwxwwwxvwgxwvwwwxxwghvvwwwxxxxwgvwhwwwxxwwwwgwvxwwwwwxxwwwwxwwwhwwxwwwwgvwwxwxvxhxxwxwxxvgwxwwwwgvwwxwwwwwwxwwwwwwwwwxxwxwxxxxwwwxvwxwwwwwwxwxwxxxwxwwhwxwxwwxxxwxvgxxwxwxxvxwwwxgxxxxwxxwwxgwwxwxwxxwwxwwxwxgwxxxwxwwwwwvxxxxwwwhwwwwWuxwwxwvwwxgwwvxvxwwwwwwvvgwwwwwwwxxwwwwxxxvwwvwxfwwvxvvgvwwxgwwgwhhvvwgvvwwwwwvwwwwwwwwwxxwwxhvgwwxwwwwxxxgvwwxxwxwwwwxwwwhxxxvwxxxxxgxxgvwxwwwwxxwwwxxxwxxwwwxxwxwwxwxxwwwwwWxxwwwxwwwxxvwwwxxxxxxxwwwwxwxvvwxxwxxgwwxhwxxwhvwgvgwxwwxwwxxxxxwwwgwxxxwxwxxxwxxxwxxxxxxxxxxxwhxxwwwxxxxxwwhwwvhwwfWvxxwwwwwgwwxxwwgwgwwgvwwwwwhwxwwhwwvgvfvwgVwfvggvgwwwwfwxwwgvvwvvwwwwwwwwwwvwxxhwwgVwvgwfwwwgxvwxwwgwwwvwvwwwxwxxxhxxxwfWvwfvwfwwwxwwxwxwvxwxwxwwwxwxxxxwwggvwwgwwwghhvvwwwgvwwxxwvwxwwwxxxwgwwwxvwxwwhxxgxfwwwwwwwwwwvxgxwwgwfwxxwhvvxgwwwxgwxwxwxwxxxxwwxxwwwgxwvwwxfwygwwxxxxxwwwgvvwwwvxwxwgvwwwwywwwwxwwxxwwxxwwgwgwvvwwvwwxwwwwwxggwwuwhwgxxwwwwxwwwwxwwgvwwwwwwwxxwwwxwhwgxxxxwwwwxxxxwxwwwwwxwwxwwwxxxxxwwxwxwwwwxxxwvwwwxwwwwxxwwxxwwxxxhwwhwwwxhxwxwwwvxwxxxxwwwwwxwwxxgxxwxvwxxxwxxgxxxwwxwxxxxgwxwwwxxxxxxxxwwwxxwxxhwwxxwxwxfvgwfwfwgwvgvwfvvwwgffvwwvwwwfwxvffvwwfwwwvwwewvwfvwwvxwwvffvVvvffvffvffwfvwwfvwwvvwgfwvwwvvfvwfwxwgvvvwgwufwwwgwwgwwvwhvgfwgwwwvvwwewwwWggwwxwxvwxwwxgvwxwvwxwxwxwwgwevwvffwwvxwwwwvwwwvvxwwwgxgxwwwwwwwwwgxxxgwwwwxvxwwwgwwvwwwfgWwwfwvwwwwwwwgxwxgwwwvvwgxxxwwwxfwwwwwwwwfwwwxvwgfwxggvxvwwxwwwxwwvwgwwhxwwvwwgwwgwwxgvxxxxxxhxwxxwxxxxwwxwhwWwggxxwwwwwxwfwwxwwxxxvxwwwgxxxwvvwvvvwwgwgvvwvgvwwgwwvxgvwxwwvxwwvwwggwwxwxwwwwwwwvvwwvwvvvwwwvwwwvwwvgwgwwwwwwwwvxgwwwxhwgxxvwwvwgvgvwgwwvxvwvfwwwvwvxxwwwwwhwwxhvxhwwgwwfwxwwgxwxwwwgwwwwvvxxwwxxxwwxwwwxxwxwwwwwxxxwxwwxggvwxhxvwfvxwwxxwwwhwwwxwwwxwxwwgwwxwwghwxwxxxwgwwwxwwgwwwxxwvwxwvwwwhxwwgxwwwwwwwwxfwgwvwvwwwwvwwwfxwwhggwwxwvxxxxwxwgxwhxwwwxhwgxwxxwwwwxgwxwgxwvwxxwxwhwwwwwxxwgxfwggwwvwvvvwgvwwvwwggwwfwvgvwwwwhwgwvvwWwxvwgwwxxwgwvgvfevffevfwvffwgvwvvvwxfwfgffuwwgwvwwwgggvgghgggwwhxvwxxwwwwfvxwwvwwgfguwgvwwvwvwwWwwxwxwwhwxwxwwgfvwwuggvwvwwwhwvgxxXgvxwwxwwwvwwvgwvwwxwxwxgwwxxwxwwwwvggwwwwwvgxwwwwvwxwwgvwwhxvwwwxxxxxwwwwwvwgxvwwwvgwxvwwgwgwxxgwwvvwwwwxgwhwvwwvwgxxxxuwxwwwfwvxwxxxgwvwxwwwwwfhwxxwwxxxwwxgxxxggxwwvwhxwwgwuxvvwwxgxxxxvxxxwwhvxwwwxwgxhxwxvwxwgfwxvwvwwwVvwwfWwxxwxwxwwwxgwwxhwxwxvwfvfwvgvwvwgwwggvvgwgwvwvhgwfwwvvvwwwwwwwwfwgwwxwwvvwwwxxxwuvwxggwwwwxwxwxwwwxwxwxxwwwwwgvwwwwxWwwwwwwxvxxwwwxgwxwwxxwhwvxwgwvwhwwwwwxxgwwwwwwvwhwxxwgwwxwwwhwxwwxxwxgxwxwwwxwwwxwwgwwwxxwwwhwghwxvhgwvxxwwvgxxwxxgwvwwxwwxxxwwwhwxhxfxwwxxxxxxwwxxxxxwxgwwhxfwvwxwgwxxwxvxxwxwwwwvwVwwvwwgvwwVfwvwwvwwvgvwwgwgufuvvvwWgwvwvwwvwvvwvvwwwwwvwggfuvwgvfwffxgfufgwUgvvvwwvgegevfvdewwvwdwvwfwtwwvvgwwwxfwwuwhugwwwwvvvwvwwwwvgxwhwwXwvwvfwggwwvwwwwwwxwxvfwgwgwvevwwwwgvvwwgfgwvwfwwgwvgvwvwwwwxwwvwwvwwwxwvwwvvwwwwwwwwwwvwwWwxwvwgvwwwwuwwwvuxwwgxwxxxwwxwwwwwwwgwvgwwwxxwvgwvwgvgvwvwwwwvwvvxWgwwwwwwwwwxxvxxwxwwWwvwxwwvwxwwwwwwwgxwwwgwwwwwwwwwwuxhWvwxxvxwwgwvwwwwwwwxwwwwxgwvxwvgwwfwuwwvwwvgwwwwwwWwwxwgwvwvwvvxwwwwWwwgwwvwhwvvwvefffvwxvwwwwvvwgvWvhxwwwwvuvffuwwwwwuwwvfwvufhwgwwwwhwwwwwhwxwwuwwwwhxxgwuwwgwvwvxwxwwxwuxwhwwwwwvxvvvgwvxwwwwwvwwhwxwwvwxxxwxxwxwwwwwvwwwwwwwwxwwwwgwhvwxxxvwxwwwwwfwwwvhvwxwxxwwwwwwwwxwwxvxwvwxxwwvgwfvwwxxxvvwvWhvwwgwwwghxwwwxxwxwwwwxxxwwxhxxxxwgxwwxwxwxwwwxxwxxwxwwwwxwvwxwhwvxxxwfvwwwwwwvwwxwwwwwwwwwwxwwwwwgvwwvwwwwwwxgwwgvwxwwwwvvwggfxggxwwgvwwwwwwxwffgwwwwwwwwwxggfwwwwxwxwvxwxgvwxgxwgwwwwxwxwwfgxwwwxwwwxwwxwwwwwwwxxwxwwwwxwwxxwxxxwwxwwxxwwwwxxwxwwwxwxwwwxxxwxwwxxwxxxxxxxxxwwwwwwxwxwwxxxxxxxwgwxwwxgwwwwwxvwxwxwwwxwxwwwwwwvvvwwwwxwwwwwxwwxwwxxxxxxwxwwgxwwwvxxxwgwwxxxxxwxxwxwxxwxxwxxxxwxwxwxwxxwwwxxxxwxxwxxxxxxwxwxxxwxwwhvxvgwwxwxxgfvwwwwfuufxwgxvwgwwwxgxfvvfwvwwwgxxvweUwwvwxgfwfuevgwwwvwwgvvvwvggwwhwxwwWufvwgfwwxxxgwgwxgxfwxxwwwgwgfwgxwxwxxwwwwwgwxxwgxwwwwwwxxgvgwwwwxwwwwxxxxwwwwwwwwwxxwxxvwwxwwxwvvfxxwwgvxxgwhxxxxwxwwxwwwxxgwxwwhxxhgwwwwgxhwwxhxvwxxxxgxwwwxxxxxhxwxxwwhwxxxxxxwxwxwxxxxwwxwwwxgxwxxxxxwhxxwwxwgwhxwxwwwfvfghxwxxgwxwwwxhxwxwxghxwwwwwgwxwxwWegvxgvwvwwwwxxwwxwwxwfxvxwwwxgwwxwxxxhwxgxxwwxwwxxxwwwwwhxxxwvxxxwxxhwwwwxwxxwwwwwwxwgwwxxwwxxwxxxxxhxwxxxwwgxgwwxwxwwxxxxhxvxwwxxxwxwwgwwwxxwxwxxxxxxgwxxwxwxxxwxwxxxxwwwwwhwvghwxvwwwgvxwwvwwwwhwwgvwgffwgwwgwwVvwfggxwgvwwwegwwvwefwgfwxvwwuvwwggffvfgwwwwwwvgwwvfxwwwwwwgffwxwwxwgfwwwwwxhwvgwwugwwxxwwwhwxxwxgffvwegwvvwwvgwwvvwwwwwwgvwxgxgwxwxxxwgwwwwvxwhuwxwwxxwwvxxgwwfxhxwwwwxwvgxwwwhxgwwwxxwwxwfxVgvxxwwxwxwxxxxwgwvwwxwwwwwwxxwxhwwwxxxxwwgwxxxxxwxwvwwxwgvxxvxhwwwxwwxwwwwxxxxvhvwwwwwwxwwwwvgwgwwwxwwhvxvgvgxxgwvvvfwwwwwvvhvWxvwxwwwxwwwwwwwwxgwwwxwwvxxxwwwwgwwxuwwxxvxwwxxgwxwwwwxvwwwxwfuxwwwxxxwwwwwwxgfgxwxwvxxxhwwxxxxxwxwwwvxxwxhgvxxxgwwxvwwxxwwgxxxwwxwxvxwxxxwxxxgxxyxxwxxxxwxwxxvxwxxxwxwxxxxxxwwvgwwwwwxwghvfwxwwwwwxwvwfvwwewfvfuvwwwwwwvwvwwwgwfgeTvwwvwwwwwgwewwWgwwwwwwwwwwfvVvwxwWwwwgwwwwwxvwwwwxwxwxgwwxwhwwxwwwwwwwwwxwxwwwvvwwwwwwxwwwxxxwwxwwxgwxvwwwvwxwwwwxwxwfwxxxxwwxxwwxwhxuxwxgvwwxwwxwwvwvwxwxwwwxwvxxwwwwxwwwxxwwwfwwwxwwxwxwxxwwwwwxwxxxwwwxxxxwxxxwxxwxwxgxwxxwwwxwwwhwxxwwxxhwxxxxwwwwxwwwwxwwwxwwxxwwwfwvvgwfxxwxwwxxvwwxgvggwwwwwxxwxgwwwwwwvwxwvxwwwwwwxvfwwxwxxwwxxxwwxxwhhxxxxhgwgxwgxxxxwwxxwxwwwwxwwwwwwwxwfxxxxxwwwwxwwwwhxwxwxwxxwxhwxxwwwwwwWwgxwxxwxxwxxxxxyxxxxxwwxxxxxwwxwxxxwwwwxwwxwxwwwvgvUwvwgegefguxwwfhwwvwuwvwUvffvwvxwwvwwwwwwevwwvwfvfvgwgwUvfffwfWwwegweUvwvfgvwvhwwwfvvwfgfgvwwgwfwwfxwwvwfgvwvggxwhxwxwxwwwwwwxxxwwwwhwwvwgvwwfwwwvxwwwwxwvwxxwwwwwxgwxwwvxxxwwxwwgxxwwvfwwwgfggwvvwxwxwvxxwwwxxxwwxwwxvvxwwwwwwgxwgxwwwgxxwwwgxwfxwwxxwwwwxxxwxxxxxxwxxxxxwwwxwxwxxwwwgxxxxwwxgxwxvxwwwwxwxwxxxwwwgwwwxwwwwvfuweVfwhxvxxwwwxxwxxvwwwwwvwfvvwwwwwxwvvfgwevwhvwvwuwvwwwwwwwwvggwwxfhwwvwwwwwxxxvwwgvhxwwvfxxxxxxwxxxfwwwwwwxwxxvhvxwwwxxxxxgvwxxxxwxvwxfvghwwxwxxxgxxwxwxwxwwwvwvwxxwxwwxwgxxxxxgwxxxxwwxwwgwxwxwwxxwxwwxxxxwxxvwxxxxxxxxxxxwxvxxxwwwwxxwxvwwwwwwwwvxxwwwvvxwwvwxwwvwwxwwwxwwwgwwwwxvwvwvwvwvvvfwgvfvgwwwwwwwwhhgwfwwvfvxwxwwwwxhxxxxfwvxwvvwwgwwwwwvwfwwvvwxwwwwwvfxxwxwwhxvvffwfvwvfwwwgwwwwwwxwwvwwwvwwgvgvwxxwxwxwwxwvwvwwwwgxwxwgvwxwwxxwxxxxxwvfwwwwgwwwwwxxxwwwxxxwwxxwxvvvwwwxwwwxwgwwxxxwxvwhxxwwxxwxvwwwgwwhwwvwwvxwwgxwwxwwwwxxwxwxwxwxxxwvvwwwfwwwwwvfvvvwwhgwwwwwxxfwwwxwxfvfvvfvwwgvwwgwwwwwwxxwxxxfwwvgvwxxxwwvwwgwwxwxwgwwvfvxwwwwwwwwwxxwwwwxxxxxwxxwwwwxwwxwwwwwwhxxwxvvxivwfwwwvhwvwwxxxxwwwwxwxxwxxxwwvwwwfwwwwxwwxwwgxxxxwwvwwxgxwwxxwxwwxfvxxwwxxxwwxwhwwxxwwwwwgwxwwxwxwwwwvxwxxxxwwwwwfwhxwwxxwxxrwfggwvffgfwwWugeggvwwwfVdfgwvgvwwfwwwfwvvwwwgwvwwwwwwxvwfufewgugf4BvvwefwgugwWgfvvwwwVdvwguvwwVwwvvwvwwgwvwwvgwwwwwxwgggwvwwwwwwgwwwfgvgvgvvvwgvwwxfwwwwwxxxVxvhwxvwhfVufewUvvvwwwwvgufvwwWuwwxvvwwfwwvxwxwwvwxwwxxwvfwuwwwwwvwvwwvwvguvwwwwgvvwxgwwfwxwgxwVdvgwvwwwwxvwvxwwxgwvvwggwvgwxwwwwwwuwwvhxwvvwwwwgwvwwhwxhxwxvgxghwxwxxxxwwvewxvvwxwVvfgwxfwxxwghwwxxxgxwwwxwwgvgwwxhwwwwwxwwwwwvwvwwwvfgwfwuwxxxxxvxxwxwwwwxxwxwwwwwvfwfvwwggwvuwvwvwvvwwvvwvgwvwewwwwwxvfwxvgxwwwwvvVdefvevwwvwwwvvffvfwVdwwwwwvwwwwwgwgwwguvvwwwvgvvwvwwgwvwwgvwgvggvxgvhwgvgwwwvhxxxwwvwwxxxvwgvwwwdwwvwgvgvuwwvwwwvxgvwwwwgwxxwwxwwwwvevwwuwwwwwffvxwwwwwxwwwxwwwwwxwwwvwxhgvwggwwwhwwwwwwwvwguvvwwwvgwwxvvgvxwxwxxvwxwgwwwxxvxwwvguwxwwwdwwvwwwxwwwghgxhgwxwxgxhwwxwwxwxwvwwwwwxgwgvwwwwxhwwvhwwxxuwwVvuxewvwvgvwtvvwxguvgvwvwwwwgvvwvwxwwWwwwwhwwwwTvewgegvfwfgvwegXwfeWFevvgvwwfwwgwwfwwwvwvwwwwwwxwwwxxxgvwvvxfwwxgwwwvWwgwwwxgwwwxxwwwwwxxwwxxhwxxwggfwgwwwfwvwvgwwwxwwxwxwhwgvgwfxwwwxxxwxxxggxwwvfwxwvggwwwvxgegwwwhgwgxwwwgwwxxwxwwxhxgwxwguwXgevwwgwwwvwGfxhwwwxxwxxxwxxwxwxxhxxxwxwhwvwwwvxgxxwxwwgwwwfwwwxwwxwwxxyxxwwwwxwwwwxwwwxwhxxxwwwwWwwgxxxxxwwxxxxwxxwxxfwvgwwfwwwwvwgwvfwwwfwwxwgwwvwwvwwwxhwxgxfwvwvgvwvvvwwwwwgwwwwhwwwwwwxwwwhxwwwxwwgwXgwwwwwgfwgvwvvwgwhwxwxgxxxxxgxwwxxxwxwvxvvuvxwxwXhgxvhxxwwxxxgwwxwgwfxvwwwvwvvwwwwhxwwwxxhgxwxwxxxwwgvwwxxxxfwwvhhxwxhhvwwxxwwxhvxwxhwwhwwwxwvxwwvwxvxwwwxwxwxvwxxxxxwwxxwxwxwhwxhxwxwwhxvxwwwvuvxxxwxxxwwxwxxuvvwfuvfwwwgvwwffvffUwwgvwwwgeuvvfgevevvvwvvwwwfvgwwxwfefUeUTvfffvwwvWgfvvwggUvveewvwEdfeffVeevggwwwvgwgvfwwwfgxwWwgvvtuwgvgwvfvvgVugfWvgvwwwgxvwfgvfwvwwxwgwuxwxwwwwxxxgeVfvgfufgwffgwgwfvVwgggWggwxwWfvvwfwffxwwgwgwvwwwuwwfxwwwwvwwgvwwwgwwwvefvwxfwvgwwxwgffvvwgvvxwwwgwvwwgwwwwwwgvUfwwwvfvffwwvvwgwwUwhxwvVhxfwvgwwwvfwwwwwwwwufxgwwggwxxwvwfvwvwwvwxwwwuvewvwhwvgvghwvgvxwwxwxxwwvvWvxwwwvgwxwggwwwwwwXgwgfwvwwfggxvwxgGwwxwhwwfvwwfwwwwgggxxxwxvVvvwwegfvgvgwufvwwvvvwvwxwwwvgwgwfugwgvwWwvvwwwxwwwwxufvvfvffvfwwffwfuvewvvVvgwhwwwfwwwvvvgvwvwwwgwwwwgggwgwxgwwvwvgwvxwxWvvvwwgxwgxxggvwxwwwwxwwwhxxwwxwhwguwgvfwvggwvwwwhwuwwgxxwwxwwwwwvvwxwwwxwwwwwxwwVvwvgvgxwvwfvgvwvfwwgvgvwvvwwvwwwxwwwwwwggvwxhwhxwvwwwwvxwwgfwfvWhfWwvxgwvhwwvvvuxxwwwwgwWvvfwgxxwwxguhxhwwwfgwwxwvwwwfvwxxwwwxwxwhwwxxwwxwwwwwvvgwwwwwgvxxwggxgvwwwwwxxwxvwwwggwwhxxwwvwhwvgufvwwwwvvvwwwwvwwwwvvwfgvwvwvvwvgewwwvwuhwgwvvvgvwwvwvvvwgvewwfffgvewvwggvvvfvvwwvfgfuvvwwwwwvwuvgvWwvgwwwwwwvwwwwwwwwffwvfgwvuwwwwwgvvgwwwxfvvwxwwwxwvwwvvwvuwwwwwvvvwgvwwvfvwwvwvvwwwwwwwgxvwwwwggwwwxxfvwwwwwwwwwvxxxwvwwvxvwwwwwvwwfwxwvvwwgwwgwxwwwwwgwwhwxxwvvghfwwvvfhwxwwwvxvhxvxvwwvwwwxwwxgvuwwwwfwxxwgxxgwxwwvxwgxwwwxxwwxwwhuwxxwxwxxwwwvfwwxxwhwxxwwxxxwxvwvvvvwwwvvvwwWfwwvfgwvwwwwvgwwgwxxvxwwwwvvvwwwvwwvhvVfvfvwgvgwwwwwvwwwwwxxwwvwxwxxwwwwwwwxwwgvwvwwxwxwwxxxwxwxwxxwwxgwwvwwxxgwwwwwwwvxwwxxxvwfvxwwvgwwwvvwwfwwwwvxvwwwwxwwxxgwwwwwwwwwgwwwwwvwxgwwgxwvwwwxfwwxwxwxwgwgwvvxxwwwwwwwguwwWxgxwhxxwxxwwxxxwwvwxwxwxwxwwxxxwwwxwxhggvwwxwwswwwwwwwwgffwwwwffvgwffwgVegwxwwvggfwwwwwxvvwVefwwwwwwwfvfvwVewwvfggwgwf#2vwwgvfwvwwwvwwvfgwvwvwggfwwwvvvwwwvwwguwvvwfgfwwwwwwwgwfggwgxvgfwwgwxwxwgvwwwwuwwwffwgwxwwuwgxxgVegvwwvwfwwwfvwwwwwgffxfvwvvfvwxwvvgewwxxwwgfVvuwgvwwwwwwwxETwwwwwwwVewxwwgwwwxwwwwwwwwwvwxxwwwxxwwffwxwxwwxggxwxxwgwgxhwwwgxxvgwvwxwwxwwwwwwwgwhxvwvwxwwwwwwwwvxxvgwwxwxwwxwgwvxwxwwwwxfvxgxwwwhwxxwgvwwxwwxwvxxwwgwwxgfvwwgvwxwwxwvwxwwxwwVvuwhwwwxwgggfwwwwwwvvwwfggxwgggfvgwwwwwwwvwwxuwwwgvwggwxuvwxxwVefwwvfwfvgwwgvvwwwwgwfveuvwvwvvxwwvfuwwwwffxfvvfvwwwwxwwxwwwwwxwggfwxxvVvwwwxwgwwwwxxxwwwwvWfwxwwwwgvwwwwwwxwuvwwwWvwgvwwvvwwwuwgwwxxfwvxwxwxwwwwwxvvwwwwwwvgwwwwvwgwwxwwxfvxxwwxxxwxwgvxwwwxxxwwwwwhwgwwhweuvwhwwwvxxxxwwwxwwfvvxggvwwggvxwxuwwwfvwwxwwwwwwxxwxwwuwwwfvwwwwxffwwwxwwxxxxwxgvgvxxwwwxwxxxwgvgvxwxwvxxugwvgvwfuvwvwveffwvgfwUgfvwwwvwvvwwwwuvfvwvvwvvwwvwwwwwefffWfuvefevfgfwUVewggfVfffgwvWVfuvegfvvggwgwgWfwgghvVwwgwxgweuvwgvfgwgfvwwwvwwwgevffwwxwvwwxvwvwwwwgfvwwgwwwxxxxxxVgevvwffwvwgwgvfwfvhwfwwgfvwvgwfwfwgvxxvwgxwwggwwxggwuwwwwwvvwwgwgwwwVfvgxwVwgwxwwgwgwwwwuxvwwwwwwwwwwvffxvhffwwwwgvwvwvvxhwwWwwgwvggwxwgxxxxwwwwgxxwxwwhwwwgvvfwvwvwfgwwwwwwvgwxgvwwwgwwxxxwhgwwxWwwwwwxwwwgwxwfwwwwwwwwvwwgxwwwwfvxwgxhvwwWXxwfxwwxwgwwxwwwwxwVvvvuwvwwwffwufvwwwgvfvvxwwgvgvwwwgvvwvwwfwwwwxxfeueffvvwvvwwvwgvwvhvvgvwwwwgwfgvwvggwuwwwfxfwwwwwxwgwwffwvwwwwxwwwxwxxwxwgwvwwxgxxxxwwxwwwwxxxwfvfwgwfvwvwxxwwwwwwwwwwwggwxxwwwwwwwwgugwvwwwwvwvwwvwwvwxwwgwgxwvwxxxhfvxXwwhxxwvwvwwgwxwwwggwwgwgXvugvvwwgxwwvXxvxxwxwwwwwwxfwxvxxwwwgwxwxwxhxwxxxxwwwwwwxwxwxwvwxwwwwhwvvwxwvxxwxwwwxwwxwwwwxxuwwwwwwgwuwxgwvgvgwgwwwwgwwuvwwxgwxwvwwwxwvwwwwwwevevwwvgvgvwxwvwvwwwwvvwwgvgvwwvgVexxfwwwwwwxwwgwwwvwxxxgvwwvwwgwwwxwwxwxxwxfwvwvxwxwwhgwvvwwxxwwwwwwgwhwwwwxwgwwwwxwxwxvwwwwwwwwwgwwgxgxxwwvwwwwwxxwxwxxwxxwwwvwwgwuwvwvwxxxvxwwwWgxxwxxhfxxxxxwwgwvwwwxwwwxxwwxwwxwwwxxwvwxwvwvwxxxxxwxxvwxwgxwwwwvwwwvwxwwgvwvvwxxwwxxwxxwxxxvwvvwwxwxgwvwxxwwwwwxwwwxwvgwhvwwwwwxwvxwxxwxwwwwwxwwwwxgwxwwwwxxxgwwwxwwxxxvwvwxwxwxxxxwwwwhxgwxxwwxwwvwwwwvwxwwwxxwxwwwwwwxvxxwgwgwxgwwxxxxxxxwwwxxxwxwvwwwwxwxwwwwxxwwxxwwxwxxxwwxxxwwwxwvvfgfwwwfwwwfwwwfwfwwwwwvwfwwvgwvxwwwefvxgvwwgwvgwvuwwvwvxxgwvwgtvgwUvwvwgwgwwxwwUwfwvwfwGwvvwgwwvgfgwgfgwGgwxwhvxwwwgvxwfwwwwwwwvwwwgwwvvxvvxwwwwgwwwwfwwvxwwWwgwwuewwgwwgwWgwxgxwwwwhvwwwxuwwvwwwwwwfwwwwvwwwxwwggfwxwwwvwwwvwwggwwwxwxwwwwwwwwgxxxwggxvwwwgwwwwwwwgwgwwxxVwUwxxwwxgwwhwwxgwhxxhxxxxffxxwwvwwwwgwvxwwwwxwwwxwxxwwxxxxxxxwxxwwfvwwwewxxvwwwwwxxwwwxwxxwxxwxxxuvwwwxwxxwxwwgwvwgwvwVwwvwvwvwVgegwggvxwxwwwvwxvwxwwwwxwwwxwxwwwwfggwfwwgvwuwwFgfwggwxvwwwwwwwgwwxwxwxwwwhwwwwwwwgxwwhxwwwvxvwgwgwxwgvwwxwwwxxwwvwxwvwxvxxxwwhwxxxwhxhxwxwwgwxvwxxvwwwxhwxwwxwwxxwhwwhwxwwwwwwgwwvfvxxwfwwwxuwwwxgXwxxxxwxxwwwxxxxxxxwwwgvhwwwxxwxwwvGwffhwwwwvwxwuxwxxwxxxwwwxxxwxwxwxxwwwxwwwxwwxgwwxwwxwxwwxwwxwwxwgwwxwwwxwwwxwxvxwwxwxxwxwwwwxxwxwxwvxwwxwxwwxevffvfvuvvgfwgwvwvwwwwgfgwwxfguwvvwvhffxwwgfgwwgwwwxevevfvgvgvgvwggfvgvwwwvwwgxgvgwgvvvgVexwwwwgvwwgwhxwxwvwvxfggwgggwgwwffgwwxwwwxwgwwwwwwwxwwwwxxwxfwgwgfwwwvwwgfvwwgwwwvwwxxvwwggvwxxwwwwxwgxwvwxgxwwvwvwvwwgvgwwwffgwwxxxwvgvwxgvwwxwxwwxwxhhwffwvwvwwwWgxvwwxxxxxxwxwgwuxwgwwxhxxxxxhwxwwxxvggvvwvwwwxwwgwwwxxwwwxxwxxwwxwwxwwwgvxgxxxxwwwfwwwxwwfxxwxwwwwwxxxwxwxxxwxhgxhhgxwvwwvfwvwwwvwwwffgwwwwwwxxwfwvwvwwwwwxxwwxwwxwwvvwvwwfwgwwgwwwvgwwxwwgwhvwwwgfvwxxwxxwxwwxwwxhwwhwwwwwwwwwwvwwwvwgwwxwgvwgwwxwwvwwxxwwwwwxgwxwxwfvfvwwxwxwxxxxwwwxhwxwxhhfwxwwvxvhwvffwwvwvwwwxwwwvwwwwwwhfwwwwwwxwwxwwwxxxxwwwvwwvwxxxwwxwxwxwhxhwxxwhgwxwxxwxwxfwwxgvxwwwwxgwwxwwxwwwwxgxxxwxwxxwfhxxvwxwwwwwxwwwwwwwxxxwwxxvwwxxgwwhgxvvwwxgxwxfvvvvwwfgwwvvwwgvgwvwvwwvwwvvvxvwvvvwwffwvgfgwwwvwwwfvwxgvvwvfvffvvgVegvggvvwwvwvvWwfuwWwuvgfvwwwwwwfxwwvhfwwgwxxvwwvfwgfvvvwvgvfwfwvvwwvwwwwwvvwwwgxwwwwwwwwvwuuwwvwwwwfxwwfxvvwwwvvvvvwwwwwwxxgxwwgwxvwwvwwvwwwwwffwvwgwwwwwwwfxwfxwwvwwwwwwwvxwwwvwgwwwffvvfvgwwwwgxgwxwgxwgxxwvghwwwgxxhgfxhwwwfgwgvwxwfwwhgxwwwwwxxxwxwhvxxwwWwvuwwvwxwxxwwwgvwxxxxwxxhwwxxxwwxxhwfwwvvwgwwwvwwfvxwwwvwwwwwwwwfwwwwwvwxwhwwwwfwwvggvggvwwwvxfvwwwvhwxwwwwwxvwwwwwxwggwwwwxwwwwwgwvwxwwxxwvwwwxwgwxwwwwxvwhwxxxxvwxxxwwwvwxwwxxxwxwhgwwxhxwwgwxxwwxgwwwxgwwwwwwwfxwxwxwxwwwwxxxwwwxwvwvvwwwwgwwwwxhxwxxwwwwvwwhwwxxwwwwvgxwfxwxwwxwwxvxxwwwxgwhxwxwwwxxxwgxvwxwwwwwhhwwxxhwwwwxwvvxxwxxhwxxwwwvxuwfwVffwVvewffuvfffgveexfwwvwgwgwwfwwuwfvvwwgvwwgvwwwwVVVfeUTvdfefefVVggfvwWWfvggggwwgfffvvWwwwwvfwwvgegVvWwgGwwVwxgvfuvwgfWvgwvvWvugfwfwgwvugwwwwvvgwvgwvgvwwgwwwwwxwwxwegfwfffvwvvwvwfgVfVwgwfWwgwxwgwvgwvgvhgvwxgxwwvwgwgwxvwwvgwvvwwwgvwwfvfvvwvfVxgfwvvgxwwgwvwwwwfvwwxwwggwxwwxwwwwwhxwvVVwvggwgwwvgwvgwVWwhgwugxvvfwvfwwfwwxwxwwwwhwvWhhgwwwfhwwgWfwwggwgxwwvwgvfvgxggwwxwxgfgvvwwgwwxwwwwgvwwxxghxgwggwwxwxwwvgwfwVwgggfxgfVwWwgvvfwxgxwxwxxwwwwwxgWxhwwvxwwEwvwgvgfvvfvwvVevwgvgeuvwwwwwvffwvwvwgvwwvwxwxwhxxeVfvefggfvvwfvvffWggwfwgWwwwwhgwvfgvwgwhxwwgwwggwVwhWwwwxwwwvgwgwxwwxvwwxfwwvwwgwxxwwgwwvwwwxwgwwwhgxvxxxgWfwwfggwwwfwwWgwwhvwwwwvwwwhwvgxwwwwxxwwwxwxgwgfvwwfwVgWwwggfugwwwxxVwwwwwwxwwgvgwvggvgwwwvwgvwwxwhvwgvwvvgxxhgwgwwxfwwVwgvggwhgwwGwvxwwxwwwwWxwgwwxwvgwvxwhxwwxxwwhxwwgwwwxwggwvwxwwvwgwwhwxwwwwwuwgwgwhxgvgxvwwwwhwwvwwvwxvwxwwwwwxfwvgewuwwwfvvwvvvfvvvgvwwuvwwVfwvwgvvuwevvgwgwhvvvwwvfwuvwvugwwwwfwwwevwWfegvffvgffwWuufwfwfvvVvffgevfuwwwvuvfwvgvuwfvfwxwxwgvuvwffVwwwwvxvwvuwwvWvfwggvwuvwvgwvwvwwvwwvwwwvxgvffgufvvwvwvwfvwvvvfvvggwwvfWvvggvwwvvwwwwxvwgwgwwuvwvwwwwwvvwvvwwwwwUwwwwgwvwwwwgvvwvwgvwvwfxfwgxuvvwxwwwwwvwxwvwwvgfwvvhwwvgwwwWwwuvwxwgvvvwwwwwgxwWXWvwxxwxwwwgwgWvgwwvvwvwgwvwwgfwwxwgwghwgxgwwwwwhwxvwhvvwwwwgwxxwwwwwxghhwfxgwgwgwwuwwgvwwxwwxfgwgxxwwxvgvwuwwgvvvvgwwwvvwvgwvWwwgwxvwwwvvwwwwwwwggwwwwwxwvwfvvvwffffwwwwwwgwvgvgwwxwwgwfvwffwuxwwwvwwvfwxwvwwwvgwfvxwxwxxxvvewwwxwwgwwfxwxgwxwwxwwxwwxxxxgwggwvvuvgwvwwwxvgwwwwfwwvWwuwwwxwxwxwwwwwwfwgwwwwwwxwwwwvvhgvwwxxwvvvwwvxwwwwgwvwxwgwvwwwvwfxwvxwwvghvwhwwwwwwwwvwwvwwwwwvxwxvfxxwwwvwwvvwxxvwwgxvwxxxxgxwwxvwxvxwwwXwwvxhwvwwwwxvwxwxwwxwxwwxhxwwxwxgwxxwxhwwxuwwwxxxvfvvwwvwwfVvvvvwwwwwwvvvWwwvvwvwwvvvwwvvvvwgwwvvwwwvwgvgggtwgwvtwwwgwvwvwwwwfwtwgwuuvwvwvgvfgwgvuuvvvvwvwwxvvwwwwvwxwgwxvuvWvwfwwWgwvwvwwwwwwxvvgwxwwwwwwvfwvwvwwvwwwvtvfgwvwwwwwwvvvwuxwwwxggvwwwwwwwxwvwxwwwwvwwwfwwwwwfvwwwwwwwwxwwwwxwxgwwwwwgvwwwfwwwwvwwwvxwhwvwvwwfwwvwwwwwwwxxxvvuuuxwwghvxwwvvwxwvvwxwWwwwwhvwxwwwwxvWwxwxxwwvfwwxwwwgvvdxwgwwwwwwvwwxwwwxvwwwxwuxxwxwvvwggwvwgvwwwwvgwwvvxxgwwwwwwvwwwxgwfvxwwwvwuwvvxwwfwuvwwxvwwvwfuwvwwewwwwwwwwwwwxwwwwxwwvwwgwwwgxgwwwxvwxwxxwwwgwwxwxgxxwxwwwvwwwxxvwwwxwwwwggxwwwwvwwwxvvwwwwxxwxwxxxwwxxwwvvvxxxxwwwwwwxwwwwvuwwxwwhwwwwwwxxwwxwwwxxxwwwwwxxwvwwwhxwwwxwwhxwxwwwxxxxxwxxwxwxxvwxxwxwxgwxxwwwwvwvwxwwwwgwwgvfwwvwvwwUUwvfuUvgwfwwvggwggxgvgvvgeguvhvxwuwwwwUUwggvUfevwwwwwggfwwwwwgwWwgveuefwwwwuwvwwwwwwgwWwxgvwwwwwwwvgwwwvuwuWvgfwwwwgfwwxgwgwwwwhxwwgwxxxvwxxxwwwwwWwvvwwwvwwwwwwwXwWxwwwxvfwwwexwvwwwwwgxwxwgxwwwwwwwwwwwxwwwvwxfgwwwwwfwwgwxwwwwvxxwxxwvvxwwxvvwxwwwwfgwwwwfwxxgwxxwxwxxwxwwwgwgwvxgwwvwgvgvxwwwwhxgwwwwhwwwxwwwxwwxgwwwxgwwwwwwxwxwwwwxvxxxxxxxwxwxvgwwxwwwxwxvxwxxgfxwwxhwxwwxwwwwwwxxwwxwwxwxwwwwvwwvwuwugegvwvxewxvgwvwggvwxwwwxwfvwwwvwwwwwvugwwwewvwwwwwWWwwvwwwwwwwgxwwwxwwvxwwwvghxxwwxwwxwwxwxgxvxxxfwxxwwxxxxwxwxvxwxxwwxwwxwvwwwwwwxxwwxgwwxwxwwxxxgxwxhwwwwxxwxwxwvwxxwxhxwwwxxwwxxxxwxxwxwwwwwwgxwwvwxxxwwvwxxwwxhhvxwwxxwgwwwwwxxhgwxgxwwxxwwwxwwxwwxxxwxwxxwwxxwxwxxwxwxwwwwxwwxwxwwxxwwwwvxwgxxxwwwxxxxxwwwyrvvgvfgwwgfwwxvwwvefwwwwwvwwwxvvvfwWugfwvvwwwfVdfvfwwwwwxwVfVvwguggguwvwwuwgugwggVwwggwwvgf4BvugfvfwwwvxwgwvwgVdwwwwwwwvggwggffgufwvfwwwwvxhvwwvwgewwwwwwwgxwfwwwvgwwwwxwxhxVVdgevfvwwwwxwffffgwVdwwwwgwgvvwwwgwvwvwwhfuwwwwwwwvwvwwwgwgwwwvwgVdwwggvwwwvwwwwwwfguwwwwvwxvwwvwwvxwwgwvvwhwvwvgwgwwWwwvgvgwxxxfgwwvxwwwwxhxwhwvwwwwwxwwxgwvguwwwwwfvgwwwwggfwwuwwwwwwxwwwxgwwwwwwwwvwwhwwwwgwwwwwgwwwvgxwgwwxwxhhwfwuwwwwwvwgxxwwwwvwfvwwwwxwfgvffwxvuhwwwgwwwwwwwxwfwvwvgvxgxwwhfWefuveuvwwgfwugwWuwwwwwhwgwvwwwvgwwxvvgwwvwvuvvwwwwggwVwhwfvxgvhwxwwwwgvwgvgxwwhwwgvgwwhwwgvwwwdwwvwxxxuwwwvwxwwxwgvgvvwgwxgxvwwwgvwxwvwwvwvwxxfevvwvwwwxgfwxgwvxxxxwwwwxwgxxgwxwxgwwwwwwwwwgwvgwxxwxwwwvwwxvwvwwxwwuvvwxhwwwwVuwhgdwwvwwwgvxwwwxwxxwxfxwxwwxwwwhxxwwwxgwxwhxgwwgvvhwwwwwwwwwwwxvxwwwfvvvvgvxvwvwwwvvgwwwwfvfwgvwggvgvgvvgwwwwvwfvwwwvwvwvwuwvvfwvwgvvgvwvwfvgwfwwwvwvvfwwwfvwggfgwfvvwvwwvwwwwxwxwvwwwvwvwwvgwgwvgwwwwwwwwvvwgwvwvvwgwwggwvwgwwwwvgvfvvwwwvwvwwxgwvwwvwvwwwwwvwgvwfwwwgxwwwvwgxgwvwwwwwgxxwvvwvwvwwwwwvgwwwgvwwwxwxwwwgxwwwwxxwwwgwgwxwxwwxvwxxgvxwwxwxwwvwgxxxxwwgxxwwwxgwxxwxwxvwwwwxgvwvgwgvwwxgwwvwxvxxwxwvwwwwwwwgwwwvvwgwwfwxxvwwwwggwvxwvwgvxxwxwwfwxwxgwxwwwwwwhgwfxwwvwvwvwvvwwvwfwvgwwwwfwwwgwxvgwwwgwwwhwgwwwwwvwwvggwfhvwwvgvwwwwgvwvxvwvwwvgwwwvwwwvwwwxggwwwwwwwwfvwgwwhwwwwwwwwwxwwwwwxwxxwwwwwwwxwwxwxwxwxwwwwwvhwwwwxxxwwwxwwwxwxwwwwwwxwgxxxwxfwvwwwvwvvwvgwgwwwwwgwwgwxwxxhwvwwwxgwwgwwwghwwgxwhxwxwghwwxwwwvggwwxwgwwwxwxxxxwxvxxhwghwwxfvwxwxxwvxwwxgfgfwwwxwwvxgwxxxfhxwwvwxxwwxwxwwwxxxxwwgwxwxwxwxwwxgvwwwxwvwwxgwwwwxwwxgvwwwwwwwvfwwfwvwfwvwwwfwvvgwgwfffwvggwewvgfvvweVgvvvfgvwwwwfvvxwwwwwgfuvvffgUuefWgevfgffdVdvfguwgwvvggwfvvwwwhffvwgwvwwgvgwgvvfxhwvfwwwwwxewwwvghwvwvwwvwvwwwxgwvwvxxwxvvwwxvxwwxxwwfwvvwwwgwwwvwfvfwfvwgwwvwvwgwfgwwxgwwhwhwxvwwhwxvwxuwgvwwwwxevuwwwwwwwwwefuwwwwvwwwxxgwwgwwwwwxxxwgwwwwwxgwwvwwfwwwhwwgwxwxwwxwvxwwxwwwwxwwxhxwwwwxwxwxwwwwwxwvxhvwwwwwwwwhgxwwwxxwhwwwwxvxwxwxwxgxvwwwgvwgxxxwwvwxwgxwvfvwwwxwwwgvwwwWwvwgwvhvwxwwwwvwwwwxgxxxxvwxwwwwwggvvwgwwxvhfvgvvxvwwwwvuwxghvwxxwwwwwwwwwxwxwwwwwwwxhxwgvwxwwwwhxgxwwwwwwvvvwxxwxgwwvxwwwwwwwgwxwwwxwwwwwwxwwwwxxxvxwxxwxwxxwwhxxxwwxwxwxxwwwwwxxxxwgxwwwxxxxxwxxwxxwwvwwwwwwxxxgvxxwxxxxwxxwwxxwxwwwxhvwxwwwhxgwxwwwxwcvgvgfgfvWVfgguWvwfvwwugvwgwwwwgvgfUwguVwxvwfvvvwwwgwwgvwwwwwwgfgfW4AuvvfWufvgwgtgwgwgvwwvwgfvvvfWfgugwgWevguwwwfwgfvwxxvwvwvWVfvvfWwhwvwwwvwvvwwwvgvvxwhwwgwvwfvgwxuwvwwxwwxuwwxxwgguWufvgvwwwvxewwwwghvgwhwewthvwfvvwwwvgevvuxwuwwwxwvwvwfvwgtgvwvvwwwgxVcwwgwvwwwwfwvwwgwwvwvwxvvwwwwwwwwwwwwwugwgwgwwwvhvgwgxwWwwwwwwgwwgwwghxwwwvwvwwwwwgwwwwwwxwvvwgwvwwvgvvxwhwwvwwwvffwvgvwxwxxvxwxwwwwgwwwWuvwXxwwwgwgfvwhwewthwwwwwwwgwvgxfxwwuwuxxgwvxwwwxwwxxwhxwwwvgfUvvfWwgwvwfvfwvwwwgwvwxxwwwgwwvwwvuwvfvwwhwuwwxxwwguVfgugvwfvvwwwwgwwwghwxxuwuxwwvwvvwffuwuvwhwtfwgwvwwxwgWegwxvgevvwvwxwwwvxwxgwwvffuwxywwvwxxvxXvwfvvguwuwvvuxvwvwxwwvxwwuwvuvwwxxxxwvwwgxxxvvwwwwfwwwxxwvvwwwwwwgwxwwfvwwhwvwxxwfvgvhwwVuwwXxwgwwgfvwwwxuwwwwwwwgwwwwwxxwhwtfwxxvvwwvhwwXfwgwxvwgvwwxxuwwwxwwwwwwwwwWuvwwhxuwwgwgxVuwwwgxwwwxwwwwvwvwxxwvwwwxwvXxwwwxxwvwxXxxXxwxvwxugwvwvgvwfwwwwwfvufvfvwvwvwwfwVvvwvwvuvfvvwefvwwvwwwwwffefggeufgeuvvefuVeuwhgfwfvvhvVefevvvvfwwvfwvwVfeffwwvVwxvgwwvfufwuwvwwvgwvxvwgwwvwfxwhgwwvvuvwwwgvvxwfwfgvwxxxwwfgUfvefvvvgvfwwgvgwxwfffxvwxwvwfwwwvwwwWxhwgvwwwwxvvxgwwwwwwvwgwvwwwwgwVfxwvgwvwwwwwgwwwwuwwgfwvwxwxwwwwffwgffwwvfxxvgvwfwwxwxvgxxwwxwwwgvwxwxwwxwwVwwwvxwwxxvvwguvvwwwvvwvwgwwwvwfvwWwwwvxxxhwwvxxwwwwvwvwwhwwxWwwfWwxvgxwgewxwuxxwgwvxwxvwegwvwwwwxVvuwgvfwwwvwwwvwwgWvgvwwgwwwvwvvgwwwwhfwvfwwxwwwffuuvgfvvvvvgvxvvfvxvvvwfwwgwvggwgvwvxwggwgfvwgwwvwxWxwwvvvvvwgwwwxxgwwwxwxwxwwwwwxxxxwwwwxgxxxxwwwfvvvgvvvwxvxxwwwwxwwxgxwwgxwwwwwxwvwwwwwgvgwfggvwwgwvwwwgwwwwwwxWvwvwwgwvhwwwxhwxwwwwwwvxvvwxgwwXuvwwgxxwwwwgxxwwwwwwwwwhhwwwwvwgvxvwwwwxgwwwwwxgwxwwwwgwwxxxwxxwwxwxwwwwwxgwxvwwwwwxxwvwxxxxwwwwwwwwvwxvwwwxxuwuvvwgvWvwuwffvwvgwwVwwvfwguwvwfwfgfwgwgfwvwwVfwwwfvWwvvuwwgwwgwgVwvffgfvUvWffuwWWvwVgggfgwfeefwffwwgwuvfwvvvvfwfVwwwxgvwwuxgwfvvwwfwwwfwgwwfgwwgwwwwvgwggwwwwwvuwgwwxxhwwxfwfvfggffggwffwwwgvgvgwxwxfxwvwvxwwwwwwXxvwwwwxwhwwxgwwwwwwwwxgwwfvwwfvwWWwwgwwfvhwVwfwvwwwwwgwvxvvwwwxxwxwxwwwwwgwgwwwxwvwgwfvvgwxwhxgWxgUvwvfxggvwxwgwwwwwWwxWwwwwxwwwwggwwvwwvfwwwwxfgwgwwwggwwwwxwhwwwxhvxxwwwwgwwwvwfxvgwwwwwfwwwxxwffhxvwvfwxhwwwxxwxwwwwgwwwxwwxguwvefvwwggwewvwvwwewvwvxvwwwwewvvwwvwwgwxwgghgxxwhhwvffgfwegVwfwgvvfwgwvwffgxwwgwggwwfvvwgxgwwwwxgwxfXxvwxWwfwwgwvvvwwwxvgvxuwwvvxwxxwhwwwxwwxuxxwwwggxxwfwfwwuvgwuwwwwxvhxwwggwxgxwxwvxhxvwxxwxwwwwgwWwwwwwvwvuggvvxxwgwvwxgxwwwvxwwvuxwwvgxwhgxvvwhwwxvvxgwvxwwwgWwwvwwgvwxgxxfwhwgxwwwxxwwwwxwwwgvhhwgwvwxgxfvwxvxwwfwwxvxwxxxwggxwwxxwwgxwxgxwxxxwvgxvwxwgwxwwwxxxwwwwwwxwwxxxwxwxxxxhxgwhwxwuwweuwwxwwgvfwtwxguwWwwxwvvvuwvgvwwvwwvgvwwvweutvgfWvwgwwwvvwxvvvfUTwwwvwxvvvfugvvwwfwwgwfvwvvwxwxhvwvfgwwfwwwfvhgwvvxgwwwwwwvvwxwxwwwxwxgvwvvwwfwwxwgwwwvwwgxwwgwwVvwgvwwwxxxwxwwwwwwwxwgwgwvgwvwxxwfWvxgwvwwwgwwwvwwwwwvwwvxxwxgwgugWVxwgftgwgwwgvwwwwwxxwwwwxwgwxxwvvvwwvwxwwwwwwvxxwwvvwvwxwwwvwxhwwwwxwwwwxxgfxwgxwwvvwwffvxwwwxwxwxxvwfwwwwvwwwxwvwuxwwwwxgwwwwwgwwxxwwwxwxwwwfvvwvwwwwwwxxwwxxhwvvvvwvgwwwxwwggwgfgxwwgxvwwwxhfwwgwgwxxxwwxgxxwxxwwxwgxxxwhevwwwxgwVxxxgwwwwxgwxwvxvwwwwxwwwvwwwxwwvwwxwxvwwwwwwwwxwxxwgwxwwxwxwwwwwwxxxwxwWwwwvwxwvxxwwwxwwwxwxxwxxxwxgwwwgwxwvxgxxxwwwggxxxxwxxwwxgwwhxwgxxewfxxxvggwvvvwvwggfvvvfwwvwvvgvvwwwxwvvwwwweVgfvwvffvwwvffvwwwwwwggevwwvwwvfgfuuvffffvvgwwvvvffgUeevfvvwxvgdvdVvguvwgvgvwggwvwgvxwwwwgvwwgWxgxwwwwwxgwwwwxwxwgvgwwxwxwwwwwgfwwxwffwfvxxwwwwgvwwvhwhgvwvxvwvwWwwxwwwwwwxwvwwwwwwwwwwwwxwgwwwxevuwxwxeugxwwxwwwwxxvwxwwwwxxxwvxgwwgwgwwwxxgxwvwwvxwwxwwwwwvwwxwxwwwwxxwxwwwwwwwwxxgwwwxxxxxwwxwxxwwwwwwwwxwxxwxwxwwxwxxxxwwgwxwwwvvhwvfvwvwwwuwwggvfwwxxwwwvvwwvwwgwvwwvwwwxwvwvwwvwwxwwvvfvwgwwgvwxwvwwfvvwggwwwvwvwvfwvuwxgwxxxxwxghxgxxwwwxwwwwxwxvxwgwwxwwwxwwxwwvwwxvvwwwwwxvwwwwwwwwgwwhgwwwxwxwwgxvgwwwwwxwhwxxwxgxhxxwxwwxwwwwgwgwwvvwwvwgxxwxxxwhxxwxwwwxxvvxxxwwxixgwxwhxwxwxwwwwxwvwxwwwwuwxgvwwwwxvfvvwfvhwwvvWgwwgewwvgfwwwwvVwwgWvwhwxwwgvguVvggffvegwuWgvgvfvwuxwwwgfvefvvvwvwwwwgvVwxwwwhwwwwwwvWxwwwgfwwgwwwwwwwfxwvwxwwgvwWxwgwggwwwvwwwwwwwwwfwwxwwwvwwgvVwwwwwwwwwwvwghggfwwxwwxwwwwwwwwwwwwwvfxwxwwwvwxwxwwwwwwwwwxvwwwwwwxwwwwwxxwwxxxvwwxwhvxxwwwxwxwwhwxwxwwwwwwwxxxwvwvwhhwwfwwwxfvxwwgwwwwxwwxwuvuxwwxuxxxxwxwhxvwwwuvxxwhwvwwxxwxffwvgxwwwxwwgvwwxuxxwxwwfuwwxwugxvwfvwwwwwwxwwgVxwwwwxvxwwwgwwgxwgwgwwwvwwfwwvwwxvwwvwwwwwghwfhfwwwwwwxvwwwwwwvxvWggxwwwgxxwxwwxxwxhwwwxxxxwxxxvxxwXxwwwwxxwxwxxwwwxwhxwxwwxwxwwxhxxwvvwwwuwxwwwwwvxwwxwxggvxxwxxxxwwxWwwxwxgxWwxxxhwwxwwwxxxwxxWwxwwxxhgwwxxgwghhvgwvXwwuxxxxxwwwwwxwhxxxwxwwxxwwxxvxvxxxxwxwwxywwhwwwwxhwwwvxxwxvwfgwvwgwxvwvvwwwvvwffwggfwvvgvwgwvggvwvwwwwfwwvwwvwwwgvwwwfvWvvuwwWWwVefwwffvwvwvgvgffvfgvwffwwwwwvwfwvwvwwfwwwvxwwfwvwwwwgfwwwgwwvxwxwwwvvvxwgwvwxwwwvwwxwxwxwwfwwwwffwwxwwgvvwxggwwwfvvwgwvwvwwwwxwwwwwwwwwwwwwwgwhgxvwvggwvvwwwwvwwwwwwxwwgwwwwwwwwwxhwwxwwwvvwhvxwggvvwwxwwhwwwwwfgfvwwxxwvfwwwgxxvhgfhwgwwxwwxxxwxvwxxwxxwwxwxwxxwwwwxwwxwwxhfwwwxwxxwxwxfgwxwxxvwhvwxxwxgxvwwwxxwwxwwxgvwxwwvwvfwxwwvgvvvvvfvwxxwfvfwvwgvwwxwfvwwvwwxwxwxwwwwvwWwuwvwvwxvwvxwfwxxhgvwvxvvwwwwvxxxvwwfxgwwhwwgxwwxwwwwvwxxvwgwwxwwxwhwwwwxwvwwwgvwxxxwwwxxwwwxxxvxwwwwfxxxwwxwwxwwgxwwwwwvwgwxvxxwwvwxxfwvxvvwxxwhvwwxwhxfwwwwwfxxvxvxWwvuxxxwxxxwxwwxwwxxvxwwxwxvwxwwxgvxxvwwxwwxwwxhwwxwwggxxxwhxwxxwwwwxxwwvxwxwxxwxwwwwwxwxwxwwwfxhwwxwwxgwgxfwxxwwvwvwvwwwwgvwwwwxVewvwvwfvvwwwvwwgvwwwwwwwwvwvwfvvwwwwwvxxxxwvwwvvwwvwwffwwwwwevufvxwggwvwvwwwvwvwxwwefewvwgvxwwwwwwwvgvwxwwwwxwwwfwvwwxvwwvxwwwwwhxwfwwwfxwwvwwwwxgwxvwwwwwwfwvvhvgvwwwvwvwxxwwxwvwwwfwwgwwxwwvwwxxwwwfxwwwwwwxvvwxxwwwxxwwwwwwxwwwxwwwwwwxwxxwxwwxxwwwwwywxwvwwxwwwxxxxxxxwxxxxwwwwwgxwxxwwwwwxwwxxxxwxwwvxxwwxvgvvwwwwwvvvwwvvwvwvwwwwwwgwwxwwvwwxwwwvwwfwwxvvwvggvwvwwvwwwwwwwxwvwgwwwxwwwwxgvwgwxvwwxwxxwxxgxwwwwxxwwxxvwvwfvwwwwwxxwxxxwwwwwxxwxwvwwwxxwwwxxxxwxwwwwxwwxxxwwxxxwwxxwxwwwxxwvwwvxxwxwwwxxwwxxwwxxxwxvwxwxxfxwgwxugfwwwwgvwvfuwwwvwwwfwwwvgwfvfvwwwwwwwvwhwuvgvvgfwwwxwfwvwWveggevwwvwwxfwvvgggwevwwvegvvgvfVgwvwwxfwfggwvgvwwxwxvwfvwgwvwvvwxwggugVfwvxfwgwvxwvwwvwwvwwvxwxwwwxgwfwwvwwwvxwfwfwfVvwgfwxwxwvwwwfwghwgxwwvgwwgwwwxxgfwxwgwgxgwxwvxwwwwwwwwwwvwwfwxxgwvwgwwxwhxxwhwwwvwgwhxwwvwwwvwwfggxwxwhxxwgxfwxhgfxwwxwvwvgwwwgwwxwwvvwxgwwwvwxwwwvxxwfxvwwwxxwwwxwwhwxwwwwwxwgwwxvvxxvgwgwgwfwwvxwwwwwwwvwxggxxwxgvgwwwwwfwwwffwgwvffwxvxwgwwwwvwwxVwvxgxxwwxwwvxfwwwwvwxvwfwvwwwgvfwwwgwvVwvxwwwwwxwwxhgvgfwgwgwvwwwwwwwxxwwxgwwvxwwwxwwwwwwwxwxxwxxwxwwwxgwwwvwxwxxwwxvgwxwwwwgfwwwwgfxwxwxwwwxxvxxevwwxwwwvwwvwwxwxxgwgwwwwwxwwwwwxwxxxxxwvxwwxxwxwwXwvwwwxwvggwwwgwwwwxxxwxwgwWxgwWxwwwxxxxwwwxhxxvxwwwxwwxwwxwxxxxfwwwwxwwvwwwxfwwgwTvVvUvegUfvvfvVwVvfwxwgggvWwwwgwvvvgewwwgwwwwwTeewgeefffUvvfewwvfwwgwvgwwwwvgewwvgwvwvwwvwwwwvwxwwevewfVddgeveguwggfwwxwvfwuwwxfxvwwvvwvwwwxwwwvVdvvWvfUvdwgwevwvwwwvwwwvhwwgvxfgfwvgwwwgwwwwwwfTeefgeeVeVVgffgwffwwwwwvggwwwgxegfvgwwwwvxwwwwvwgwgwvwwxxwwfeVwhgfwggWwgfgxwwwxwxgwxxwgwwwxgewwwwxxwgwwxxvxwxxweffwfvwwfwvxxgvwwwvwhwwwwgwwwwfuxwwvxwvwxxxxxwgwwxgwwvwgugwxewwwgfwgwxxwwwwwwxxvwxgwxxwxxwwwfwwUvugfUTvdWvvffvwfgfvwwwwfwxwuwvewvwvxwxvxwxxxwefevegfgwwvwwwuggwwwwwwxwxxVvxgvfwhgwwxwxxhxwuvwwuvvwvwVvwxxwwxwwxwxwwxvvvvwgfwgxggwwxxwwwwwwvwxwwweEUvwWgfFvuhwgvwgwfwwgwhwwhwwwfvxwxewgwwvxwhwwwxvwwxwwxhwwggfwgvXwhvxwVwwwwwwxxxxxxwxxxvwwwvxwxxgwxwxxwwxhwgwxewwwgvwxvwxwwwhwwgxxwwxxxgxwwwwwvwwfxwxvwwxxxxxxwxwfxxxvwxwvwwvwcffvwvwfvegffffffevxwuefvwwwgvgwwvwxwwwwwffwgwwgwxxwxeuffvvfwvdefgvvgvffwwwgwfgfgwfvwvfUvewvwwvvxgfvfwwwwgwwgwwwwfvfhvwvvVeuvvweftugwvwfwvwvwwgwwwwwwwxwvvxwwwxvUcuVwegwgvfwhgwFvdhvewvgvwvVwwvxwwwfvwwwvwwgxwfxwwweuvwvfgfeffwwwxvWVwgwVwgWwwwwwgfvvxwvxwwgegvwxwhwxgwwwxgvgvgxwgwwvggvgwwfgxxgwxwvwwwgwvwwxvwvwxxhwwhggxwwwgwgvxfgfWuxgvwwwwwWwfgxwwwwgwwwwegwwuwwwwwxxxwxxghwwxxwxwvwwwvwwvgwwwvgfvwvwwhgwvwvwwxgxwwwwwwuvxxfveWfgvvfVevvwwweVeewwwwfvgwwxvvvgvwxwhgwgwwwwxxwxwvvfuGvfgvvwwwwwwgwfgwwwhfwgfvxgvgwwwgwwwwwwgwhwwwWwxwwxvwwwwfwwxwfvwxxxfgvwwxwwwxwwxxwwwwwwxwwwfevwwwwwwwvwwwwwwewxwwwwxwwxxxwwhhwwwwwwfFdffvwvgvvwxv6veWgvwvgwwwwghgwwwwwxWwxwgxwwwWwwfgwwwvwwwwvwwwwwggwgvgwwwwwwgxwxwwxwwwxxwxghxwhvwgwwfvvwwwwwwxwwxwgwgxvgxwwvxxhxwxxwwwwxvhwwvxwvwggxwxwvwhfwwxwxxwwwwxwwwwwwwgwwwxwufwwgwWvvvgwwwgwwwwggwfVVwgwvwwwwwwvwwwwxxwgwxwvwxwhWvgwVVwuVVwVwewfgVwvwwxwgfwgxvgvgwwwwxwwxwxwgwvwxxxwxwxwwfwwxvwgwfwvwwfwwggwhwwwwxvwfxwxwwwwwwwwwwxwxwwxvxxgwgggvewfwvwvggwhvwwwwgwxxwwvxwxwwxxwwgxwwwwxwwwxwwxgwvxwgfwvfVwgwvwwVVwwvgwgwgwwhwwwwwwgwfxwwwwxxwwwhwxxxwxwxgxwwgWwvwghvfvfwwWwhwfwwxwxxwgWwgvxwxxxwwwWhwwxxxwxwwxwvwwwwxvwxvwwwwfhwwhxvxgwgwwwxxxxxxxxwxxxwwwwwgwwexgwvvxghwgvwwwwwxxxxxxgwxwxwwxwxxwgwgggwwfgwugvvvwgwwwwxgwfxwxwwwxwwwwwwxhxwxwvxwhwwxxxwwwgfwvxvvvuwwvgxfwwxwxwxvwfwvxwwxxwxwxwwwxwxhxxwxxxxxwxwwwxwwxhwwxwxxxwxwxxxxwxxxxwwhxwxwxxgwwwwfwwxwwwwwxxwxwghxxxxxxxxxxwhgwgvvxWgwxwxwwWwwgxxwhwxwwxwwwxwxxwwXxhwxwxwggvxxhxwwgwvwxxgghvwwxewwxwxwwwwgxwwwvwwwhwxwxgxxwwxgxxhxxxgxgwxvxxwwwwwwwvwwxxxxwgwxvwxwwxvxwxwxxwwvxxwwwwxxxfwxwxwwvxxxxwxxdfWufvuggxwwgwVuegxwggvWfxxfeuvwvWvvwwvfWvwwwggwxUdefwffwegfvvwwgUfVwwwwwwvwwwgvefUwvwfgwxvwxwfwffwgwwwxxwVuewfgfvugwwfEUvwwwwgwxwxdguvgvvgxxfvvvxwxwxxxeUTvgwvggvxwwwwggewvgwXgwwwwVdwwwhxwvxwwxwgvwwwxgwxvUtufwfgwvWfwvwwgUffwwhgwgwwhxfVVvvwwggwwxwxVvwfwwwvwwxxwxgVfWwxwxwwvwxwgwxggfxxxxWfwgwwwwWfwxgwwwwwwgfgxxwwxxxweVfvwwvwguxxwguffwwxwwfgvwxgwwwwxwwxxhwWwgwwvwwggfwwwwhwxxxgvWwwwgwwwwwhvwxwxxwwxvgvxWwxwvwwvVuvgwgfvvwwwfFexgwwvwxdWfvWvvwgxxxWuvvhgwvxxxxuffvgwwwWvxxvvvwxwwvwgwwxgvwwxhwxxwhwxgvwwwxwhwwxxxwuvwwxxfuwxwxxxxvwxwwwwfuxwxhwguvwhwwxwgvwwwhxxwvxxvwxxvwxwxwgfFewgwwxgvxwxxxgfguwgwwvgfwvxhFuuggwggwxwwxgWgvwxxxwwxhwggwgvwwwhwhwxwWvgwxwxwgxwwXgwxxxxxwxwggwwgggwwwxxxwgfvwxwxwxwxwgfwwxwwxwxwwwhxxxgwxxwwgwwwxxwwgwgxxxvwwhwwwxwxwxwvhxxuWVwgvfvgfwuvfgwgvfgwwwwVFvVudgfvwwvgfwvgwwvvwvgGvgvugfwvxvwvggvwgvfUwvVevffvfvVefwwvvggfGgwgTuggfvuwggvwwwvgwfGwwwuwwvgwwwvgvuxvffvvwvwvvwwvfVvguvvuvvwgwuwffwuuvfwwvwgxwwwwwwwwwwgvvvvuggwvwwwgwwvVgwhtwwwxwwuwwwwxgvwvgWwvgvvxwwwwwwwvvvwwfvwvgfwgWfwvwwwfFVvwwwwgfVVWwveffWwfvvxggvwwwwwgvVWgvvvvgggxgxwvwwxwfevwhvwvgwwfxwwgwvUxxhvgfwfwwvxwXxhwvxvfxgfxhhgxxwwgvwvwwwwwwwufffgvfxwxwwwwvwwvwvwxgwwvwvxwwwwxwxwwwuwwwwxgwhxwwwwwexgwvhwwuwwwwxwwwwxxgWxxwwgwvwgwwvxwwwvxVwvwwffvvggvvvuVWwVvuvfewwwwwgugfWvuevwgvwvgwxwwvwwwwfwwvWwvewhgwwwgwwvvvWvgwuwwwwwwwwxwxxwvwwwwgwvvhwgxwwwwvvwvwvwwxwxwvwgwvxgwwwxvwwwwwxwwwxxwwwwvwwwwvhxwvwwvwvwfwwvwwwwwwwwwwxxwxwwvwwwwwxwWfwfvvxgvwwxwfggWvwuwwwwgwvgvwgxgwgwgXvggwgxxwgvvwxghwwwvvwwvwwwwWxhxgwvxgwwxggvxwwwwxwxhwwxgWghggwWwwwgxwwxwxfwwwvwwwvvxxxxvwwvwwxfwwvwwwfvwwggvwvwwwwvwwxxwwhwwwwwwgwvxvgxwwwvxwwwxxVgWggWgWwvwWgWvfFVUwfvWVFUvwwgggwgvgWfwwxwwfgvgwfvvwgwwwxxgWFfgWVwVVGwggfggffVwggggffgxwgWvggvVgwggxwxhVwuwhwggwwxwwwgwvggfwwwwwwgfVwfwfwggvxwgwwwgvwwwwxxgwwgwwwxxwwgWffgwgwwgwwwfwVvewggfgwfvgwgvgwwwxwxwwwxwggfvwXWUxwgwwvggVVggfgfgVvwwgwWVWgghWWffghwgffWggfwfxwxwFgfgwgfWwghgwxwwgghhggwwggxxwwxWhfwhgwWggWwwgwxghxxwxfgWhHVgvwhXwhvfwwfwvwxxxxVfwgxgwWgVgfxgggwvxwwwwwxwfwgwwxxwxwwwwwxxwgwwwwghxfvWXWexfWWhwwfxhgfvwxwggfhwwwwwwwwWgwvWWWwwgwfvxgVfwfgvgWwwwwwwxwgvvwwwxwxwvwxwhgwxxxxfgfvVgghwvwwwwwgfvwxgwgwgvwwwfwwwghghhxxwxxwgxwwghgwwwwwwwwwwgxwwwxwxwxwwxvxxwwxwhxxxxwwwvxwxxwwxwwwggfwwwxwwwwwxxwxvwgffwwggwgwwxwxwFgfgwVwWgWgwgwwwfxwxhwwwxwwwWVWgwGHVxXwgwwwwwwxhxxxxxxWvgxHWVgwggXghggwXXgxxxwhxxwWWWxggggxhxwwwvxxwxwwwggwwwgxwxvwwwxwwxwwwxwwvwwxxxwwxwxwhhfhwgwwwhwhxwwwwwwwwxxxsfvwfgfffvvvfgVvgfffwwwwggVffvvxffvwggVfwvgxwfgVvfvwxwwgwfgvwfwgU5vwwfwvhwwwwxxgvvxxwWwfU5vfwvwwwwvwwwvwxwWxxwxfgfwfffvwxwxvwfffvfvwwgvwxxvwwxwwvvxxggwwgwvwxxwwhwxfgfgVvfwvwgwwwwxvwgvwwwWwvwfwwfwgvwxfwvwwfwxvvxvwvwxxvwwwgwfgvxvwfU5vfwwxvggwwwgvvwxwWgU5vfvwwgwwwwgwwgxwWwwwxxwwvgvwwhwwxwwvwgwxghwwwgwxgwwwxwwwgwwwgxxwwwgwxwwgxxwwhfgVvvwwgxwxwgvgwwVwwxwwwwwxhgwxxwxwwxxwwvwgwwwwgwgwwwwwvvwgwvxwwvwwxgwwwfwwvvvxvxwxvwgxwwxvvwvgwwwwwvxwgvvffffvwxwwvwwfffvvvvwgwxxwxwwvvwwxwfwgxwvxwhwxwghxghfgVvfwfxwvvvwvxwvwxwgWwxwxwwhwxwwwxwwwwgwwvxwwwwgwwwvwwxhwwwvwxwwxxhwwxxxxxgwxwwwxxwwxxfvwugwxwgwvxxwvwwvxwxwwwwwwwwxwhwwxxxwwwxfgVvfwvxgwvxhwgvvwwwWwvhgxgwwxwwvwvggwfwwghxwwwhwwgwwhhgwwwwxgwxwxgwhwxgwgxvwgwwghwhwwwwwwvxwggwwwxvggwgwwxgxghwwwxwwwwwwxwuwhwhwwxgwwxxwxwgwgwxxwwxwvwxwwhxxwggwxxwwwxfxfvwwwwxxwwxwwxgwvwwxgwwwwwwuvvwwgfxfwvfwfwgwgwgwwwxWwgvwxVgwwwgwgVgwfwwvwwgwfvwwwUgeggwewWwgwwwwwwvwwfwfgwxvxxwwgxwfvgvwwwVffvWVfwwvvwxwwwwxxwwvwvwVwfvxuxgwxwwxugfgxwuwuwfvfwxwuwvwxwwvwuwwwxwwwgwwgwvwwgfVfwgwVvewwgvwhwgwgwxwwxwxgwvwwgvxwwxxxxwxggwwwgwxwvfwhhwwgegxxgwwxWgxwxxwvxxxwxwwgwgwwgwvxxvwvwxwvwuwhxwwxwxxwvxwxvwxwwWwwwwxxwguwxxwvvwxwxxwwxxwxxwwwwwwgwvvwffefVffwvvwxwwwwwwxxwvxwwwwwgwvvwwwwvxvfvgwwvwuwgxvwwwxwwxvxwxwwxwxuvwwwxwwwwxxwwvxwxxxwxxwxwxwwvgxxxxxwwxxgwwvgwvwwwwxxfvfwggvhuvfwgwxxxvwxwvwwxvwxfxwgwvwvxwwvggxwwwxxwxwgvwxxwwwxxvhxhwxxwwwwwwgxwwwvwuxxxwxwxwxgwwfxwxxxxxxhxxxxxxxwwxvxwwvvxxxwxwxxxvwgxxxgwwgwgwfwgwwfggwxwgxxwwgwxwxvggfwgwwwwwwwwwvxgwwwgvgggWwwwvwfffhwwwfwfwwwwvggfgwvwewwwwhwgxfwwwgxwuwxxhwwvwwgvwxwwxVgfggwwwfvwxvvvwwwxxxxxxwgwwxwhvwwxxwwfwWvwwxwwvxwgwvwfgwvwgwwwwgwgwwxvwwgwwxxxxwxwxgwwhwgvwwwwggfxwwvfVfwgwwwgvfwwxwwgggwxfvxfvwxwxwxWwgwxxwvwgvwghvgwfwxwwgwWgxwwxgwwvxxxhwwgxxwWwvxxxwxwfhgvxWgxwwwwwxwxwwwvwwwwxwuvvwwwwwvfwwvwwuxwxxxwwgwhxxwhwwwhxxvwxwwxfhwxgwwgxwwxwxxgwwxwwgxgxwfwwvwfwhwwVVfhwvwgvwwwxwwwxwwxwwwxgwvxwWwwxxhwxggggwwxwwvgwfvwwwxhwvgwwvxgwvxwwwxxxxvxwwgwxgwxwxvgvxwgwvwuxgxwxxwxfwwxwwxxxxgwxxxxxxvwvxwxxxvwvxWxwxgwwhxxxwxxxwxwwwxfwgwwwwwgwwxwgvwhwgwgwwwfxwwwgwwxwxwwwxwvwwwhhwxxwxxwwgwgxxwxxwxxwxwhgxxhwxxvhxxvxgwxxhhxxxxxxwwxwxxwwxxwgwwwwwgggxvwwwwwxwxxxwxxwwvvwxwxhxvwxxwxgwwgwvwxwwxwwwcffvfVffgwfxwffwgwwxxwggwxwvxVvfgeefwwxwwvvxvffwwwwwwxwxeuvwfgUggfwguvvvvfwwwhvwxwhfeffwvUgvwwxgwwwwwwwwwwgwgwVvVgUVefVfwvwfxfgvvwwwwgwvxwwwfVevvvvgxwwwvwwwxxxxwfFdfVvSgwwvwwwwWgvvxwgvxwgwgggfwvvwvwwuwwwwhwwggwwhvwweefgvffwfVVwfvvgvfgwwwwgguvwwwwgfTfggvfffwwwgfwfwwfvwvxgwwwwvgvggwgghwwxwxfgwxgxxxgwwhwwwxwwgwgwxgwwvwxhvxgvhwwhwxwgvxVfgwgwfghwfxxvfwdgwwwxwwwgwwwWvvwwwhfxwwwwxwwwwfvvwwgwwgwwwvwvwwwwfwwwwwwxwwxwwhvwwhwxgxwwgwxwwwwffgUFvvgwwfwwfgwgwvwgwwVVewgvvwwwwxxfvwvwwwxxfgfgwegWwwwvxwWuxxwwwwwxxxggvwvwwwvwwxwwxwwwwWwggxxwxvwwfwwvwxwxwxwxxxxwxxvvxvgvvwxwwwxxxxxxxxwxwwfvvwwwvgxwvwwhwfwwgxwwwwwxwxxxwxvwxwwwwxvwxV5ewFdggwxwggWvegwVgxwwwgwggggvvgvwfvxwxwxfwfwwWgwwwwxxxgxwwfgfwvwxwwwwwgwwxgwxwgwWwwgwhwggxwvwwwxwwgwxwhwxVfwwwwwxvxxwWwwgxvxxvwwwwxwxxwwgwwxwwwwwwxxwhwwfwwxwwwvggwxwwgwwxwwxxxwwxwwxgwxwwxwxwxfggvgvvwgVeeeWevwvvwgwvgvwggwgwwvfffwgvwvgwvwxvgvwvxvugwwgfUfegVvvgffggvvuwgvwvwgvuwxwxvggvgvvwwwgwwggwwwxwxxwwhwwwfvvhgvfgfvvfgvWfwvwgwwxwwwvvfwvwVvvwfwggvwxwwwvwwwwwwvfwgvvgfvuwwwvgwvwwwgwwvwfvwwwwvwwwwwvhxwwvwwgwwxgfUwwwvgveVuwVvfgfggwvwewgwgwvwWfvvxwwwvwfwwwwwwvwgwwhxwvwwwwwxxwgxwxwvxwxgwvwwgwvxwwhwvwwxwwwwhwwwhwwwwhwwxvwxxggxxwxwwwxWWhxwvuwwwwwwfwwwwgwwgwwwwwgvxwxxwvwxwwgxxxwwwwwxwwwwvgwxwxgwhxwggxwwwwwvxgfwwwvxwxwggexwvwwfxwxwxwgvvggwvgggvggWfgvwgwwwxvggwfggwvwWvvwgwhgvwxwwxxwwwwgwwuhwwggwvwwvggwxwwxxwwwwgwvxwxxgwwvwxxxwxxwwwwxwwvwxwxxwwwwxwwwwxwwwwvwwwxwwwxxxwxxwwxwxxwvxwwgwxwwwwwwwwwvxxxxwxwwwwxxxwfvwxxwwwwxvgvgwvgWvvxwgwxgwgxggwggggwwwxhwwwgwxgwgxwxwwhvxwxwxWWfgxwgwwxwwwggwhwxggwwwgxwxghgxwxxgxwhwxwgWgfhwwwxggwxxxwvxwhxwwwvwxgvwwwwwwxwwwwwwxwvxxxwxwxxxwwwxwwwwwwgwwxwwwwwxwwwwvwvxwxwxwwwfvwwxxwwgwwgwwwffgwewgwxwxxgfhwfwgwfwxgwgwwWvfwwxhggwwgxgwghwxwwwwwgffwvwfwFwegggwgwwWwvwwwwgwwgxvvggwvxvxvwxxxwgxxwwwgxfwfwgfwvvvwgwwwxvwvfwwwwxwwxgggvxwwxhwxgxghwfwvgvwvxuwVwwwfwggwvfvgwvxwxwxfwwxvxhvvwwwxwxwgwgfgwvfgFvewgfwwggwVvfggwgxwwgvvxwwvwgfgwwwhxgwxhwwwxxwwwggwgvwxgfwgxggxwhwwxxxhgxwwxgwwwxxwxvwwhhxwxwxxwwwwwfwwvvuwwwwvwxwwhgguwvwwwxwwxxwxwxwwxwggxxwwgwwvwwvwxxhwxwwwgwwxxxxgxxwwyxxxgwwuwfwgevfwvgwxvwwwwvgwwwwwwwxgfvfwxxwgvxvwxhwxwgxghwwgvgxwwwwtwwwwwxwwwxuwwxfvwwwvxvwwgxxvwxxwxxwvxwvwwwxwxxxwxwwvfwxgxhvwwxhwwvvwwwhwwuwwwwhwwwxwxxxhxwwwwxxxxxxwgwfvgwgvwwdwgwgvwwfwwguwwggwggwwxhwhwhgwwgwxwxugxwwwwwwxhgwvhxgwwvgwxwwgwwwxxhhxwxxxhwwxxwwwxxxhwwxxxxhxxxxxwxxwvwxfvwwxxhvvgwwxxggwwwwvwwxwwgwwwwxwxxxwwxwvxxwxgxxwwwhwxwxwwwxxxwwwfuwwxwvgwguwxgfwwwghwgWwwvgwwxwwwxwwwgvvgwxwxwwfVhwggwvwwwgwvvgwwxggvwwwgwVvugwxwwxwvwxwwgvwxxwwwxfVfwwwwvxfffewwvxvvwgwxwxwwwwxxwxwwwwgwwvfvvgwxxwgwvwgvfwxvwwwefgvwwgwvwxxwwwhwwwxwwwwggwwgugvfgwfXwvwwwvxwhwwwggvWuefgwwwvxxvwwwwWgvxxxxwwxwgvwhxwgWgwwwwvhxhvxxxxwwwwgwWfgwxxwxwxxwwxxwgxxwgwfvgvwxxwwvwwwgwwxwwgwxwgwwwxvxxgvwwxvwggwgvwxwwxxwxwwxwxwwwwwwwxxxvwxwxhwxxxxwvffwwwxvvggfgUvwgwwwgwwwwxxxxxxwxxhvxxwwggvwwwvxwwwwgxgwwxxxwgwxwwxxxwwxxwxwfuwwvwwwwxxxxxxwwxxwwxwwxxxwwwwxxwxxwwgfwxxxwxxwxxvgggugfwxvwXwwxWwwxwxwxgvugguwwWvwwxxwgvwhfvxwxxwwwWwWvwxxxxwxxxxxwxxxxxxhvwxxxxwgwxxxxhxxwwfwxwwwwwwxvxgwgwxxwxxwwxxwxwwxxxgxxuxxwhwgxxxuwwgwfwwwvvwwwgwvgvgvwvgwddVWggwwvwvwvgweufgwwwdtVVeufgwxwwwwwfgwwwUuugxwwgggfvghfwgwwwwUuegwwgxwwwwfvvwhvwgwwwwvwwwwvuvwwfvwwwwufwdtVWwvwwxwwwvwvveufgvwwgwwvxwwvwwgwwwwvfvvwwwwwvwwwwwwxvwgwwwwfwwgvvwfgwwwxwwwwwvxwwwwxwxwwwwfvvwwgggwwhfUuegxvwfvwwxfvfxwwgwwwwUuewxvvfwwwwwvwxxwwwfvvxxvwfwwwxxgWgvwwxhxvfvwwvwvwxgwxwhvwghwvwxwxhvwwwwwwwwwwwwvfgfwgfgvwwwwwwwwwxwgwwwxxgwwwwgwxwwwxwwxvvwwwfwwwwgxxvwwwwwWwwxwggwfxwwwwgwxgxwwegwvwgwwvewwdtVWgvxwxwwfvvwweufgvwwgwwwxwxwwvwwgxwwwwvfgfwwwwwwwwwwwwgwgwxwwxvwwwwhxwwvxwwwwwwwwwwgwwwgwwwxxwwxxwwwwwwwwxwxwxxxwwwgwxxwxwwxwwwwxwvvwxxxwxwxwxwwwwxwwwwwwwwgwxffwvxvwgvgxwwxwwwwwwwwwgghxxxxwvwwwghwwwwxfxvvwwwgwxwwwhwxhgxwwxxhwxwwwwwxhgwxgxxxwwWhhwwxwxwxxxxxwxwwwxxwwwwwxwxwwxwxwxwwwhfwxwxwwwxwwwggxxwwwhxwwwghxxwwwwwxwxxugVwwgfgVwvwvfugfvvvggwuwfwgvwffvvhfwWwxgwfvvxfWVggwgwVuwvwwvfwvwvffwugfwfvvgfVuvwgegvvfgfwwffgefVwfWwvvwwvgVwfWggvVgwwewwguWwugvfVvvwgfvtwffegffVwfewhggfffggwvwgvuxvxffwvgvxgwwwwxgVfvgwvgfxvwWefgvvvfgGwgwugugvwgvwwwfwwuwvwwvxwwfvwfvxfwvgvggwfgffwvwfFvggvvwgvvwwwgvVWffWgVggwgggwwwWfVggWwgWwwfxhxvggwwwgwxwhggvfvghwgwgvwwxgggwgwgwvwxvwwWgggwfxhhWxgwwwvwfgvwwwwvwvwxvwffuwwgwgwvwwwvwvgvfwwxuwfxwgwgwvwwhvvwwvwvwfwxvgxxwwwwwwhwWxwgGwwwvgwvgvwwfxwwwfvwwwvxxvwffwFwvxvVfwvwwWvuxeffwVfggvuwwvxvwfggwgwuxVwwwfVgwwwwhwxwwxfhwvgwgfvwvgwwgfvwwgwwfwwwwffvvgvgfvuxwvvxwvwxwuwvxwxxwwwwwwwvwwwfwxwxxxwxgwwwwwwwwwvvhwwxxwvwxvwvvvwvvwwxgwwwwwwwgwvwwwwwuvhwwwwwwwxwvxxwwxxgwwgwggvwvwwxfwwxgwfvggfwvgWWvwwvfwvgggxvgwWwxfwgxwgwggvgwwgwggwwvwwwvwwwfxxxwggfxhXWhwwxgwgwwwhgwwhxWwwwwgggxggwxwwVvwvgxwwwvwxwwgwvwwwwwwwwxwwwwwxvwxwwxwgxwxwxwwgwwvvwwwvhvwwwwhwwwxwwvwwvwwwwvxwwwwwwwugUwfwfgvvvwfwFwfgvgwwwxvgfwVwfwvWvvgfEwfwvgvwvvfwEvegfwwwvgwgfwwvffTvvvVvfwVWvgfwwwwwfvwgfwvwgevfgVVgwvvvwfgwvwwWgwewwwwxwvgvuwuvUwgfggffwVfuwVwwwxwxfwfwuvvvvufwvwwwfvxwwwgvgwgvwwvwgewvwgfvwwwvfvwWvwuwxgvfwvwvwwwwwxwgVxfwxwgwvwvwfwwvwfwfVeguwfgwFgvVVwggwwVvvwWwwwfVewgwFfgwvvwgwgfffvGwgVgwxwwgwwwwwgfwvwvfhwgwxwwfwwvxhhgevvvWgwVxwXxgfhvwvhwgxxgxxwvwufvWwwwvxvugvVwvwwwwxwwwwvwwwxvwwwvwwwvxwwwwwgwvgwwwvvwwgwvxwwwwuwvwxwwxwvwxwwxwvwwwXwhwfwxgVhwxvxwwwxwfvwwVvwffVwugggfffwEgvWvwwxwxvgwwefwwfuwgwwwwvvwwwwgxvgwxwwwwgvweggggwxvgwvvxwfgvfwxxxwxwwgwwxxvgwwwxwwxwxwwwxwvwxwwvwvwwwwxwvvwvwxgxwwwvwvwgwwwwxwgwwwxwwvwwfwwwfwvgvxggwwgxgwwwvwgwwwwwfxxxxwwhvwxwwggvwggWwgwwfxVvgwGgvgxgwwwwwgwvwwwwxwvgWwgwwwwwhwXwwvgwgvgxwewwWwwgwwgwvwwvxwwhwvxwwxgwwvwvgwXvwxxWghwwxxxwxwwxxxwwfwxwwwfwwwwwgwvwwvggwwwwwvwxgwgwgwwwwwwxwwgwwxvwwwxwxwwwwxvwwvgwwwxwwgwwwxxxxvwfwfvfwwwfgggfgvfwvwwgwffwgfwVWfevwgvgwgeveWevwwvgvwwvwvxVgVguwgvvggwgxwwegWwgwvwwwwwwwwwvgfffguvvwgwxxwggwvwxwwwwwhxwwfwvgefwfvvwvwfwvwfwgwwxwwvwfwwwfwuwwwwwvwfgvwfwwvhwvvgvwvgwxvwggwgwfwwwvfwvxxwwfuwwwfvwwvhwhgUwvwwwxwwxvVgfVewgwfwfwwwvwegVvgwwxfwvwxwxfgfgVwvwwwwgwwgggvvxwxxwxhwxxwxwwvwwwwwwwxwxgwvwwxwxxxxxxxwwgwvwwhwhwwxwWWwwgwgwxxgghxwvexvwwvgvwwwwwhwwwwwwwgwwwxwxxxhwxxwwgwgwwxwhxwwwvwxwwxvwwxwfwwwgwwvxvwxwwvhxgfwgfewwwxwggwxwwvxxvwfvvgeffgvwvfxfwgwwxfwwxxwwwvgfwvwfvuwvwwwfvggwwwxwvvhwwwuwwwwvwfwwxwwwwwwwwwwwhxxwwvvwxwwxwwhwxxxwwvwwxxwwwwxvwxvwwwwxwwxxwwwxwxwxwwwwwxwwxwxwvwwwxwwgvwwwwxwwwwwwwxwwwwxvwxxwfvvvwwwwgwwgwgfwfwwwvwwwwwwxxVvvwfggwgwggXWfwgwgxwxwhwwgwwwwvxxwwwhwxwhhwwwhwgxwwwxxwxghxhhgwWgfwxwwxggwxxxhvxwhwwwwxxxwwwvwwwwwxvwvwxwwxwxwwxwwwwwgwwwxwwwxxvvxwwhxwwwxwwwvgwxxxwwvxwxwwxvwgwwwwwgwxvwgvwwwwwwwwfwgVvuxggwvwfUwwxwvwwwvwgwgwvxwwwxwwwwwwwwgfUvvwgwwvgwwgVwuwwwwwwgwgwwggwwxwwwgwwwwwwhwwwwwwwgwwwwvwwwgwwwhwgwgxwggwwwwwwwwxfwvwwwwwwxwhwwwxxvgwgwgwhwwxvxwwwwwxwhgwwwwwxwwvxxxwxvvwvwxwwxwxxvwwwwgwwgfUvvwggwwwwggvVvvwwwwxwwwwwwwfwwxwwwwwwgwwgwwgwwgwxxwwgwxxxxgwxwwxwwxghwxwhxwgwgxwwvxwwghwgwwxhwxxwwwhxgwxwwxwwwwwwgwvwvxxfwggwvwwxxghwwwwwwwvxwxwvvwxxxwvwwxwwwwwxxxwwgwwxxgggwwwwxwxxxxxwvvwvxwwwwxwffwwwwwwwgwgxgwxwgwwwxwwwgwwwwxvgwwxwgvwwwwxwwxxwwgggxwwxwxwvwwxgwvgwhhwwwwwxvxwxxwwwwxxxxxxwwwxxxxwwwwywwgxwxvxxhwxgxwwwxxwxvxwxxxwwwwhvvwgxhwwwvwwwwwwxwwvwwwgfwwxvwwxvwwxwwgxgxwgwxwwwgxwwwxxxwwgwwhghxxxxwwwwwxwxwwhxwxxwgxwwwxwhgxxwxwxxxxxxgwwwgwwxxxxxwxwgxwwwxwwxxxwwfvwwxwxwxwxwwxwxwwxxwxxxwxvwxxwwvwvwwxxfwggwvgxxwwwgfvxwwwwwwwvwvwxvwfvxwwwwwwgwvwxgxwgwwgwwvvfevwwfvwwugwwwwwvwfwvhxwwwgffwvgvvwwgvwwhwwwxwwxwwhxfwvvffexwgvwvgggxvwxwgwuwxvvwvwwwwwwxwwxxwvvwgvvfwwvwvwwwwwwwwwvgxxxxvvwvwgwwgwxxxwwwxxwxwwxwwwwwvwvffwgfhwvgwvgwxvwgwvwwwxgwwVvgvvgwuvwxWwwgwwwgwwwwhwxwgwggwgvwguwxxXgxwwwwgxwwxxxwwfWwgwxggwwwwwwwxxwxhxfwwwfvvvwgvwvxwwwvwwgwwwxvxwxvwvwxvxvwhwwwxwvgxfwwvwxwwxwxxgwfxxwxwxhgwwwxwxxwhwwvwfgfvwwwvwwgvwwvvhwwhvwxwfwwvwxwwxgwghwxwxxxxwxwwwfuwwWwwwvgwwwwwwxxxwwwvvwwxgwwxwvxxxhwgwvwxwxwvhxxgwwwwxwxwhgwxwvxgwvwwggwwwwvhwvwxxxwwxwwxxvxxwxvwWgvgghwxwxwwwwvwgwwxgxwggwwwwwwwwxwhwwwhwwwvgxxwxwxvwhggxwxwxgwxxxxxxxgxhxhwxwwfwwxvxxwwxxwxxxgwwgwwwwxxxuwgxwwwxxxwwwxxwhxvwxwxxxxwwxxxgwwxxwxgwvwxwwugVwfgvvffwvgUfgwgfvwfwvwWvwwvggvuwuggwxwvVvuxvVvvgfwfvwfwwwgvfwvftffgeefweVvwfwfwvwgweVwwufvgffwvwwwfggwwegvvwgwgwwwwvhwvgtwuffvvwfvvvvevfewvvefWvwvwwxvwwuvwwgvxvxVuwvhwwgwwwgvvgwvfwvfwwvgwwwvwVWwvvwvgwvwvwwgwewwgvgggvvfwvwwhwwvgvvwfVuvfWffgvUgvffwWwgfgvUgggvVugfwfvggfwwwWwwffvfwfwwfgvgwWwgwwffvgvwwfvgwvfwwwxxvhgwvwxWfgvwgvwghwwxwvwxfgxhwwwgWxgwxfxvfwvvfvfwwxwvgvwwvwfgfwugwwvvvvvxexwwwwvwvwwggwxfwwwwwvwwgwfhwwwvwwgfvwwwxWVwxvvxwfwwxvxxwxwwwvwwwuvWwewvVffvfffvfvvffVwfvvVgwvwgvxvwgufvVwwvwvxFvvwvghhwxgwfgvVvvvfwvgwwgwwwwwwvgwXwwvvwwgvwwvwwvxwfwwhwwvgwwwwwvgwwwwwwvwwvxvwwwxwwwxwxvxfwwwwwwxwvvwwfvwgvwwwwwwwwwwwwwwwvwwwwgwwwwwwwwwwgwvvvxvvwgfevgfvvvwfwgwxgwfwvvfGvwwwwggxgvwgwVwwvvhhwVwWguWxghwwxfxvwvwxvWfwwwgwwvwwxGggggxhwwwwwwgwwwxwwgwhwxxxwwvfgxevvgvwxwwwxvxvwwxwvvwwgwvwwwwxgxwwwwwxwvwxxwwvwwuvxwwwxvwwwwwgxgxgwvxvwwxwwwxwxxvwwwvtwwwggfwwWVfvgfggwvfwwgwwwggwwwwgggUwwggwxwwxvgfgwwwwwwxggfwgT%vfwggWvfwge6vxxhwgwfwwwxwwwfwwuwwwxxhwgwvwwwwgwgwvwwWVffwggwwwwwwgwwgwwwwwxwwwwwgwfxwwwvwwvggwhwwvwgxxwwvgfgWvfwwwwuVwgwvwwwfvwwgxevvwggwgwgwvvuxghwvwgwvwwxwgwvfge6vgwwggwvwgT%vxwgWwwwwwvwgfgwvgwwxwxhxfwugwxwwgxgwvwwwgwxxhwwwwwwfvxwghXwwwxxwwwwxwxwwxxxwwhxvwgggwxxwwhxvwxwwwwgggwfwwwxwwWwwwwwwxgvgxuvgvgvwwgwxwwhwhxvgvvxvwwwwwwxwwgxevwwxxwwgxuvxwwwxvwhxfwxwwwgxvwhxwvwxxwwgggUwwwfwwwvwggvwgfwwxwgvgwxvwwwwwwxwwvwgwwwxwwxxxxwwwwggwwuwgwfxwgwgwvgxwwxvwwhxfwwwxexgxxhfwvwxxXgvwwwwwxwwxwwwgwwwxxxwwgxwwwxhxwvwhxxxxxxuwwwxxhwvwvvuwxhxhxvwwxwwvwgfwwwxgwvwvwxxxxvgfggwvwwvggxgfwuggggwwwhwgxvwwwwxvwxxvwhxgwvwugXwXgvgVwwxwwwwwwwwwhwwhwvwwxwxxwwhxvghxwwwXgvwxxxvwxXgvgXwwvxxxwwwwxgwvwggwvwwgxhxvwvvxvwxxwwxxVwvxwxxwgwvwxxwwwxwgwvwxwwvxxwwxxwwwuwxxxwxwxxwwxwfwVfVVTwgvgwvgvwwfVwfvWwgevfvvwgwuwfVTuwxwwvwvxgwVuwwggwxwggVVwvUevvVgvdfwgffxXfgwvfwgfWfgVvfwefgvwfwwwgxxvhxwwvwwguvwfevgvvwwwwUugvfvwvwwxfwwvwwuwwwwvvwwwwxwffvgvdfxwwvUewwwfwvuWxxvwgWDwvwwwevwxwwxxwwwvwxwgggfEgffVfwfwWvuwwgUvwwgfwvevxwgfvvEufwffwvwwgwffxwgWwgwxwwwfghgewwwgxvfWxwhfwhxhghXFwwggwwvXxvfwxxwwwxXfxxhgufgfvfwvvgwwwvwwefxwvgxffwgfgwwxwgvwvxwwwwwwgwwgwwwwwwwxgugwvwwWUwgxhWTxhUxwfgxwwfgxwwgvwxxfewwgwwwfVvwgvvxggfgvvgwwwvwwwwgvvxxwxxwwwwvwxxwxwvwwvvevvvwgvgvvwxwvWvxwwwwwwwgvefxwwxvxwwxgfxxxvwwwwwwwwxgxwwwxgwxwwwhxwwwxxwwwwvvxwwvwwvwwhwwwwwxfwxwwwvwwwwwwvwgeVvugwwwggfvwvfvwgffwxwwxWWUwwwgwfvgwxwwxwggwgwgvgwwvwwwxfvWxwggfxxxgxXhUxghfxwwvwwwxvxWVxhxwwwwwhghwwfwxhwwwwwxwwghfhwwxwwxwwwwgwwwwwggfxxvgwwxwxwxwgvwwwxxxwgwxxxwwwxvwvwvwvxxwwvxwfvwwvwxgwwgvwxgvvvffxvwguwfguwgwvvgwvwwxwwvgvvwwgwgwvfvwwwfvwwwfvvffvegvwgwvwwVvtgwgvvwvxwwwvwvwwwwwgwvuggwxvwxgwwggevwxfgfvwfxvwvwwwggwvvwvwwxwwvvvgvwwfguwvvwvwuwwxvgwwwwtwgvwwfvwwfwwgwwwwwwvwgwwxwffvwwxvvvggxgvggwgwuwgxwwxWvdgwwwgvhwwxwwwxwfgwwwhwwwfwxgwwwvxxvgwvxwwxxxwxwxgfwxgghxwxxwwwxvvwwxgwxwvvgwwwxxvwwwwwwwwgxwwtwwwvvvwxwxwgfwwxwwxwvwwfwwwxwwvwwwxwwwwwghwwwwwwwwwvwwwwwvggvwwxwwhwvvgwwgvfwxfvwwwxxxgwwwgwwwwxxwvvxwwgxwxwfvxvwfwwxwwwguwwxwxxxvvvwfxwgxgwxxwxxwxxgvwwwwwwxvvwvwwvvwxxgwwxwfxfwwwwxwwwxvwwgwxhgvfwvwxfwxvvwgwwwvwhgwwxwugWwfvgvhwwwxxvhwxxxxwwgxxgxygwwxwwxxgxxgwwwWwwxwwwwwwwxhxvvwwxwwvxwxhxwwxWwwwxwwwwwxxxxhxwwxwwwhxxxwxwxxwxxvxwwxwxxwwwwghwfvWwwVgfwvwgwgwwwvgwfwgvfWgxgFuugweFfvwffuxhwxxgwwwwfwwggwvvvwwggwwhgwwwwwgwweFwgwvwVvuxwwwgxvxwwgwwwxwwwvwxxwfgwwxxgvvwwggwfwvvxxwvvwxwwvvfwhxfwwwwwwwwwxwwgwfvvwwxwwggwwxxgwxwxgwggwuxwvxxgxwxxwgfvxxwwwwwwwggvWwgwvgxggwxwwvvwwvxwwwwfVWwvhFuvhhwwgwvwwxhgwxgwwwwxhwwwhxxwgwgxwxgwxxggwxwgwwwgwxwwwwgxvwwgwxhwwwxxghwwwfgwgwvgwwwxwwwgvvvwwwgxwwwvgwvxxwxwwxwwwuwvgfwxxwwxwwwwxwwwxxwxwwhwvgwwxxwhwwvwxwwwxwwxxwxgvxxgxwxggwwwgvwvfgvvwwwwvxwwfwwgvvwxvxWwfwxwwxvwwgwwwwxwvxwwwwgvwwwhhwhxwwvwWvvxwxwxvxwxwvwgwwwxwgxxxxgwxgwxxxxwxwxwwxxwwxyxwwxxxxxwwxxxwxxwwwwwxxxwvxxxwxvwwxgwwvwwewwgvvxxvgwwwxvwxxxwxggwxvxwwwxwwgxwwggWfwgwfwxwhwhxgwxwxhxxXhwxwxxwwxwxgggwhxwvhwxwxwwVgwghxVxhxwwwwxxxvvgwxhxvxxwwwwwgxgwwwxgwxgwxwxwxwxxxxwxwxxxxwwwxfwxwwuvvwwwvwwwwwxwwwvwwfwwwwwvxfguwvfUvvwwvwwwwwvgwvwwwxwhgvwwfUwgwwwgwwgfwvwwgwwwhwwvfVwwwvgxvvwwwxgwvwwxvwwwxwvwwfwwvwwxwwwxwwvvwwxhhxwVwvvgvgwwwwxvwfgvwwxwwxgxwwwxfwwwewwwfvwxwgwwgvvwuvwxwwWwwxwwvxwxxwvwgwexvgVvvwvgwwxwfUwwwwwwwxwufUwgwwfwwwwWvugwhwfwxwgxwxwwwVwgxvgxwxxwggxwwwwxxxwffgvxwgWwwwXwxwwWwwgxgxxxwxwwwghwvgwwxwgvwxwwwwxfvwwhwwxwwwewwwgvwwwwwwgwvwxwwxxxxwvxxggwwxwxvvxwhvxwwvxgwhvXwwgwgwxxwwwvwwwfwwxwwwwvwgwvxvxwxxwfgwwwxwwwhwwgwwgggwwxxxgvwwgggwwxxxwwgwgxxwwwxvxgwxxwvwwWwvwxxwwwvwxwxxvwwxwwxwxwxwxwxxwwxxxxxwvvxwvwwwxwwvwwxwwwwwwxwghwwhxwxxfxxwxwwfgxvxxwwwxxxVwvgwwwgwwxwxwwgvvwhwwwgxxxwvwfwgwwwxwwxxvwwxxghxwxxxwwwgwwgwwxwWgxvxxwxxxgxxwggvwwwwxxxwxwwvxxwxwxxxxwwvxxxvxxwwxwxwwgvwwwxxwwwxwxxwwwwVwxvxxvwgwwwwwwgvvvwgwwwwwwwwwwVVgvwwvxfwgwwwwwwfwgwVuwwvwwwwwwwwwvgwfwwwwwwwvgVVvfvuwwvwwwwfvwgwwwwwwwwwwwwvwwwwwwwgwwwvwwwwgwwwwvwwffwwvvxwgvwwwwgwwwwwwwwwwwwwwwwwwwwgwwgvxxfwvwwxwfwwwwwwwxwwwxwwwwwwwwwwwvwwwwwgwgwgwwwgVVvWvuwwvwxwwvvwgwwwwwwxwwwgwgwwwvgwwwvwwwgwxvxxxwxxxwwwvxhwwxvfwgvwwxwwvgwwwxwwwwwgwhwwxxwxwwwxwwwwwwwwwwwvfwgwfxwwwwxwxxwwxwxxvvwwwxwxxwwwxwwxwxgxggxwwwwwxwvwxwvxwwwvwwwwxwgvwwwwwwwgwxwwgwwhwwwwwwvwwwwwwwvwwwwwvvhwwwwwwvfxwwwwvxxgwvwwgwvvxxxwwwwwvxwvvwxwvvgxwwwxwxvwwxvwwwwgxxwwwwwxxvxxxxwwwxwxxxwxxwwxwxwvxxwxxxwwfwwwxwvwwwwgvwwwwwwxwwwfxwxfwvxxxwvwxwwwxxwwhwxwvxwwxwwvfwwwxwxxwwvwwwwxwxgfxwxxxxxxxwwxghxwwwxxwwwxwwgwgwvwhwvgwxwxwwwxwxwvgwwxwwvwxxwwxwwwxwwvgwxxxfwxfwwxxwvggevwgvweFwwgwwvwvvVvffwwxwwgvwxgVvxvvWvgwgwUvdwxvxwwxwxwfwwfVgwvwgwgwhwwgewwggwvWvwfwwedwwxggwfwxwwwwxvxwwwwwwfvfwwwewugwfwvwwfwvwvvxwwwgwxvvwxVwvgwgvxvwvwwwwvwvxwgwufwgwxvxwwgwvefwxwwwxwwwvhwxgwvwwxwvwwfweFwgwxwggwwgggwvwwwgwwwfwwwwVuwwwwfvwwwwgwwwwggwwwxhwxwwgwwgwwwgwwhwxwhwxwwxxwvxxgwxwhxwwwwgwwgxxxhwhwwxwwvwwvvwvwfuwvwwwwghxwwwwvwfwxwvxwwwwwgwwwwxwwwxhwxwxxwwxvhxwewwvfwvewwxhxwxxvxwvxwwxxwwvxvfuwwwwfwwwfvvwvfwgfvwffgxwwwwwwfwwwwwxfwvwwfwwhxwwwvfxfgvwfwvexxwgwfwwwwgwvvvwwwwxwwxwwwwwxwgwwxwwwxwvwvwvvwwwxywwwxxwxxxwwwwxxwwxxxwvwxwxfxgwwwwwwxxxxwwxxwhvwwwewwgwwwvvwvxxfvvwwwgexwwggwfgwwxwvwhxwwwgwxgvwxwwwxwwwwxxwxhwwwwxwxxhxvgwwwxgvxwwxxvwxwwxxxxxhxwgxwfwxwwxxwxwwwwwwwwwwwwwxxxwwwxxxvxxwwxxxxwhxwwwwwfxxxvgxwxwuuwwxgwwwwwwwwwvwwwwfwfwwgwwwvgwxxwwwvvwwxwxfvvwvfffUgwwwvfwwwwwvwvwxgwwffwwwwwwxxwxwwVvvvvvfvwwwwxeffgwvwvxhvgvwxwxxxwhwxxxefUufwwfvxwwgwfvuwwwgxwxfwxxwwwvvwvxwxwwwhwxxxxgxwwwwgwwvggwxwxwwvfwxxwxwwvwxxxxgvwfwwxUvwwxwxwfwwwxwfwwxwweffwwwwxxwwxxfwwgvxwwxwwwvfgwwwxwwwwwwxwwgxxxwvwxxxxvwxxwxfgfwwwxgwwwwwwfwwwwvgwvwxwwxhvwxwxxgvvxvfWvwfwvwffxxxxwggxwxwxxxvfgwvwwgwwwwwwxwxxgwxwwwxwwwxxwwwxwwxwwfWvwgwgwwwwxvwvgvwxwwwwxxxwxwxxxxxvvvgwgwvvxxxwwwwvvwxxwwwxwwwwxvfVwwxwgxxwwwwxwvxxwhwxwxxwwwxxUvfvwwwxxwwwwgvxxwxxxwxwwwwwxxxxwwxxwxxwfwgwxwxxwhwvxwxwxwxwwxwwxxwwhxvwwwwfxwwhvvwxwwxxxxwwwhxxwgwegfgwvwggvvwgvggfvxwwgvwwvxwwwwwwwxwxwgwwxgwwxwfvfwvvvwwwfwgwvgfgvvgvwvgfvvgwwwweuvwwwwvwwwwxgwgxwvxwvgvwggwggwgwvwvwgwwgwgwvwwwwggwgvwggxwvwxxhwwvxwxvvgvVvuwfwfwwgvwwvvwwwwgwwwwwwxwwwwwwwwwxgwwwwxwwwgwxwwwwwwwxwwgffvgwwxvggxghwwgwxwxggwfwwwxxgxxxgxxwxxxhwfgwwvwvgggwwggwwwgwvwwwggxhgwvwwgxvxwxwxwwxwxghwxgggxxwwggwwxvvggxxwgvvxwhwwxwxwxxwhwwxxxhwxxxwxxxxxwwwwvgwxvwwwwwwwggwwgwxhwwwxwxwwgxhwwhfxxxwwwxgvvgwwfwwgfvgwvhfwxhvwgwwvggvvvvgwxhxxwxwwvwwvwvwgxwwwwwwwwwwwxwgxxxwwwwwwvwwxwwwxwgwxxxwwwwwwwvwxvwwwwfgwgwxwwgvvxxwwhhxwhwxgwfxxxwvgxwxwxwwwwvwfwwvwxwwgwwvwwwwxwwwwvwwwxwwxwwwwwxwxwWewvwxgwwwwgwvxxwwxxhxxxxwwxxxwxgxgwwhhwhwhwvhwxgwgvwvwwhvwgxwgwggvwxwxggwxwwxxhwxxxxfwvxgxgwxwxwwwxwwxfxvVwwwwxwwgxwwwwxhwwghwwwwxwxxgxxxwwxgwwwwwvxvwgwvwwxgwwwwgwwwxwwxwwwxxxxwwxgxuwwwwfWwwwvwwxwwxwwwuwggwvwhxwwwhgwxwwxxxwwwxxwwgwvwggVwdwgwVffwhhgwvwggwewfxwfwwwvwwwwwwwwwwxwgxwwwwxxwgwwxvgwxwgvevwwgVfwxwxwewvhwwwxhwgwgvxwwwwxwwxwwVvVvgWuvewvgexvwwgwwwgWuwwwwvuvwvxwwwxxwxxxwwvwhwxwvgvuvwwgWwxxwwgewxvwwwwwxwxwwghxxwwwxxxwxxxwwgwwwwwwwVvewwgwvwwgwwxgfxgfxwxhwwwxxxwwwwwxwxwwwxxxxxhxghxxwgwvwwwfvwwxwwwxxxvfxvwxwwxxxwxxxwxwxxxwxxxwwwwwwvwgxwvvwxgWxxgwgwtfxvgwxxwxwxwxxwwwwwwwwfwwwwwgwxwwvxgwwxwwvxgxxwwwwwwwxwxhxxhxfwvwVvgwwwvuwwwwwwwxxwggwxgwwvwxfwwvwxhxwwwwxxwwwgwwwxwwwVwwvwwwxwwxwwwwwwgwxxxwxxxhwxwwwvwvxxwwwwwxwwxxxxxwwxgggwxxWgvwwwhfwwwxwxhvwxhxwxxxhxxwgxhxxwwxwwwhwVvgwxwwguxwwwhhwgxggxhXwwhxvwwxwvxxwWgwxxvwhvxwwxwwwwwgwxvwwwxwxwwwwxwwwwgwxwhxxxxxwwxxxxwvxwwwwwvwxwwxwxwwvvxxxxxwwwwwxwwuwwwwwwwwwwxwwwffgwgwgwwxvwwwwvwwvwwwwwwgvwwwwgvWfegwvwvVUgfvwwfffggwVffWuhwwxwxhgffwhgvxwwgvwwwgwwxwxwvWWvvwwxwxxxwwwwWvwwwxxxxwhwwxwwxfVWWvuhxwwxvwguufwggvwxvwwvgwwvwwfwxgwvwwwxwwwxwgvwwgwvwxgwwgwxwvvxggfwxwwxwxwhvwwwwwxvgfvWvvwggVVxgwfeVfxwxxgwxfggVVwgXvxxwxgwxxxwxxwhxxwgguwwxxgvxhfwwxxwxxwhxhwwxxxxxwxxgvfgwgWvxxxwwxgvwvwgwwxwwxhwxxvwxwxxwvwxwwxxwwwwwxvwwwwxwwfwwwgwgwxwwxwxxxgffgvxwwxwxggfxxwwxwwwwwwxxxhwxxwwwgwwwxxxwwhwxwwxwwwxwwxxxxvxwwwwwxwwvwgwwwgxxvwvwxxvwxvwwwxxxxwxuwwfwxwwxgwwxgxwxxxxgvxwxxwwwxxxxxgwxwwwfgfwhgvxxxwxwwwxhgvvxwxxwxwXvvwxxxwfwxxxxxxgxxwxxxxwxxxxwwwwwxxwwxxxwxxxxxxwxwxwwwxwwwwwvwxwxwwtwwwwvvwwvvwwwfgwgwxvfgfvvwvwwwgwwxvwwwwwgggfvvwgvvwxfwgvvvvgggffeewvgvvwgggUSSwxgffvvvfvvwvvfwwxwgwUUfwwffwwggwvwgwwgwwvwVewwgfvfvvvffvgwwwxwwwgxffvwwvxgvvwxxggwwxxxvvffeewfvfvwwgvUSSwwgffwwgwwvvwfwwvwwwwwwwwvvwwwfwfwwwgwwxwgwwwuuwvgggwvwfeewxxgwwgwwfwwwwgwxwxxwfffwwwxgwxwwxwwgxwxwvwfvvgwvgwggvhxXwfvfxghffvfwwvwghgwwhgwffgxwwgwgwxwfxvwwwwuuwwwxxxfeewwxggwvwvxwxxgvwwxwhxxxxwwwwwxxvwwxgxwffvvwxvwwxwxwxfvfhgfwwghxxxwwxvghvxwfvwwhxxwggwwgwwwwwvwwwvvvggffvwgfwwxwwwwwfwvvwwwvwfvwxxwxxhwwwwxgvvfffwvvvwwwwwwUUfwffgwgwgwwfwvwwfgwhwwwwwxwwwvwwwxwwwvwwwwgfvfwwwhgfvwhvwwwwwhggwvvwgwhxwwxwwwxxwxgwvvvwwwwgwvwwxwvwvwvgwwfwgwvwwwxwxhwwwwwwxxgvgwwxfwwwwgwwxfvvwwwggwgxwxxgfxwwgwxhwXWwwfwgwwgwxwxwwxwfvvwwwgxxxwxxgwfwfxwxwgwwwxwxwxwgwwxxwwxwwwgHwwwwwvwwwxwwwgxxxxwwgwhvxwxxfwwgwwwWXwxxwxwxwwxwxhwwxxwwvxxxfwvvwwxfwxfxwwxwwwwwxwvwwwwwvxugfwwxgxwwxgvvwxwggwwxwwxgvwvgwwwwwwggxwvgxxwgwwwwxgwffwvuvwwhgwwhwwgvvwxxxwWwfwfwwwvwvxgwWgfVgghwwwvwxxwgvvxwwwwwwhwwxwfwfxwwguwhxxugwvgwxwwwwwgwwggwxfgvwgwwgguwwwxfgvfgwhgvvgfwwvwfwvwvwwwxxwwxvwvwgwwwxwwwwwxxgfwwxwgVgwwxwwvvwwwvwgwwwgwwxwgwwwwwwwxwwxwxxwggwxxwggfwxwvvggxxxxgwgwxxwggfXwxgxvxwwwxWvfwgghxgwwwwwxwwwwwwwwwwwxxfvgVwxgwwwwwxxwgwwxxwwxwxxhhxxwxxxxxwxhwvhxxgwwwwxxwwgwfxhgfwwvgwwxwwxxwwxwxwhwwwxwfxwvhgwvxwxwwwvgWfvwvwggwxxgwwxxxxxgwwxwxxxxwggwfwxfvvwgwWgvgwgwxvwwxxwxvwgwxwwxxwxwwwgvgwvvwgwwgwxvwwwvwhwwxwwxwwxhwxhhxxxwxhwxwxxwxxxwwwxvwgwwwwwxwwwxvxwwxwgwwxwwxxwxvVvwwwxvvvxxxgwwwfhwhwwxhwwvwxxxxxxxxxxwhhwxwxhxwxwxwxggvgxxwhwxgwWgwggxhgwgwvxxhgxxwwwwxxwwxxgxwwwgggfgwwWhwwxxgwxwxxghwxxxxwwwxxxxxxxxxxvxwxgwhwwhwwwgwwxwxxwxwxwxwvwwvxxxwwwwxewvwwwwfwgvwgwwwwwwwfwgwwffwvvgwvfvwwwgwfwwgwwggwwggTwGgfvwgewwwgwwwwGwfgwggvFgevwgggwwwwwVwfgxvggxxxwwvwwgwgfwvhwgwvggwvfwuxwwwxwxwwxwvwwwgwwxwwwxxxxwwwVgfwfffwvvxvwFwvwwffvvwvwwwwwvwwwxuwwwwwwwwwwwwwwuwwwgwwwxvxvwvgWvwwgwvwwxwgvgwvvwwxhwvvwwxwxxxwgvguvWgggFgxggWwvwxwxgwGwxxxggwFgwwhhwwwwxwwwWgxxwxxwxwvhvwvwwxvuvwwwwvvwwhxwhwxwwxhwxwxwwwxxgwWwwgggwxgxvwhgwGggxggxwhwwxxxxwwwwxwwxwxxxwxwwvwfvgwwwvwwgvwfwwfwwgxxvxwwxvvxfwxwwxxxwWwVwggfgwwxwWvvwwgwgxwwwwvxwwxxxwxwwxwwwxwwwgwwxvwwuwwxhwwxxgwwwwvwwwvgxvxwwwgxgxxwwwwvuwwwwwwwwuhwxwwwwwwxwvxwwxxwxxwwwxxxvwvwwvWwxxxfwvwwwwwxxvxwxwxxwxwxgxxhwxwxxxxxxxvgWwwgghxwwwwxwwWwwhxggwvxxgxwxwuwwhxxxxwwxxhwwxxwwwxxwwwwwwxxhvwwgwxhvwgwwwwwgwxxxwhxxwxgwxxwwxwwxwwwwwwhxwvuwwxwxwwxxxwwwxxwwwevwxwwwwxwxgwwwwwwwwwwwvxwxwwwxwwwwxwwwwwwvwxwgwwgwwwevwwwgwxgvgwxgxgvwvvwwwxwvhgwwwxwwwxgwwwgwwWfvhwwwvwxvgvxwwwwfgvwwxfwWwwWfuvwfwvwxwwvwwwfwvwwvhwwxxwxwxxxwwxxwwxwwwxwggwxwweuvxxwxwxhwxxxwvwwxxwwxxwwwxwxwwxxgffwxggwwwxxxvwwxwwxwxgwxxxggwwhwxwwwxxwwwwxwxxwxwwwwvxxxwxxwgwvwwxvwggxwhvwxxwhxwxvxhwugxwxxgwwwwxwwwwhgwwwwxwwxxwxwxwwxxwxvwwwgvwxwxgwwwhwwvwxwwxvxwxwxxxxvxwwwvwwxwxwwwxwgfwxxgxwvxwwxxxwwwwxvwwwwxxwxxxxxxxwwxwwxxxwwVvuwxwxxxwwwxxxxwxxwxgwwxwwxxvwwwwhxgxwxgwwwwxxhxxxxwwwxxxxwwwwxxxwwwwxwxxxxxwwxwxwxwwwxxwwxwwwwxxuwgxwxgvxwgwwwwwwxgvWwwgwvwxgwwvwwgwxwxxgwxhwwwxgvwxwweWwwwvgvgwwwfgwwgwwwgwgwwwwwvxwxwwwwwxxwwwvwwwxwwwwwwwxhwxgvxgwvwwwxwxwwxvwwwxxxwwxxhxwxvgwgwvxgwxxWfwwxhwxwxwwwwwvxvvwwxxwwxwgvwgxgwxhwwxwgxwwwwwwxxxwwwghxhgwvxxxwwxwxhwgwxwxwwvwwxwxwwwhwwxwvwxxwwxxwxxvxxhhxhwxxwxxwgwxwxwxwwwxxwwwvwxxwwwwwxwwyxxwxxgxxxxxwwgwxwwxwxwwxwwwvxxgwwughwxxwxxwwxgWwxwxwvgwgwxgwwwwhwxxhwxwxwwwxyhwwgxgwxwxgwwxxwwwxwwxxxxwxxwwwwxwwhgvxwxvxWgwxxwxwxxxxxxxxxxwxwwxxwWgxwxwwwwxxwxxwwxwxwxxxxxwxwWgwhwxxxWwwwwxxwxxxwxxhwxhxhxxxxxwxxwwxxwwxwwwxxxwxxxxxxwwxxxxxxwxxxgxwxxxwvxyxxxgwxwxxxxxhxxwxxxxwhgwwxxxxwwwxxtwwgwfwwwxvxgwxxwxgwghwwwwxfwwwxwwvwwxwxxwxgvgewvgwWwwwfwxwgwwwwwwxwwgfvwwuwwwwwwvwwgwxxwxxxggWewwfvfwfwxwVwwwxwwvwvuwxvggwxwwwwwwwxxwxxfgGfwfwfwgwvwwwwwxwwwvxxxxgfdvvxwvwwhxxxwxhwwxwxgwwwhgvwgggxwwwwwxxxwwwwdvwvwwxxhvwhxhxxxwwwgvvvwwxgwgwvwwwwwxxwwwyxxxgwwxgwxxxwxxhwwwxxxwwggfgvxwxwxwwwwxwgwxwxxxwwwvxhwxwxxhxvxwxwwgwvxWgwwhhwuwwxwxvwxwwwwwwexxwxxxxwwwfwxwxxgwwwxxwvwwxxwwwwwxxxxwwwwxxvwwgwwwwfwwwwggwxwwwhxwgvwxwxwgwxxxwxwwwwxwfwwvwwxwwwxvwxxwxwvwgggxvwxwxxxxwwxxxwwxwvxvwwxxwxxxxwwwvxxwxxwxxhxxwwwFwffwfwwgxwxwwxwxxxxwwxvxwxxxxxxxxwxgvgwvwwgwwxwwwwwwwhxwxwxxwwxxwwwxwhxxxxxwwwwwvwvxwwxxxwxwwwwxxgwwhwxxxwyxwxxwvwwwwwvwwxwxxxhxwxwxwwwwxxxeffgwvvfwvwvvVwfgwwwwgwvwgwvfgfvwvxvvwwwgwwwwggwwxgwxwwUgwvVfVwfgewUddvgwfwgggfffgwwwwvgewvfVgwwvvggVwwwwgwgWwwgwxgwgvxvVdwxfweufwgwgwfvwfuuwgwwwgwwfwggugwvwwwwwwhwxwwwwwwwwwvgeweeUfUddwwwfWfwvwgvwfwwfwvvfgvfwvvwggwwwvwwxwvfvvwwwfgwgvggfWwwvvwfVfwgwggWvfwwwggvwgwfvfvfwwgxwxfvgwhxwgvwxwxwwxwgwgfvfgwvvwggwggfgwXwVgfwggxwWgvvwhwvwwwgwhwgwwwWwxxfwxgxwwwvfvwfwgvvwxwwgfuuwhwwWxgwgwgwVwvfvwwvwwxwhxwwvwxwxwwwwgwwwgvvwgwfvwgwwwgvwwfgwhguwfvwwwwwwxvwgfgxwwwvxwwwwvwgwvwfwvwuvwwgvvgffvwwgfgvxwxwevxgvwwxvwwxxxwwwwfvweuvwfffgfwgwwggvwwwwwwwgggwvfwgwhvwggwwxwgwxwgwwwwxgugwwewvwwwwgxwwvvwwwwvwwgwwwvgwgwxgwxwWwwwwwgwwxwwxVwvvvwVwewwwwwwwwwgwfwxVvwwgwwwgwwvwgfxxgwgwwwfwwwVgwgwxwhgvwwvwwxffgvwwxgvxxvwxgxgwhgggwwghgwgwxxwgwgvwwgwwwvwwgwgwxgwwwggwwwwxwwxwxwgxwfxwwgwXxgxwwWvwvwxwfvwwwwwwxwwvvwwgwwwwxfwwxggwwWwgwwwwggwwvwwwwwwwwwwwwwgwwxwwwwwxwwwxvvwvwwwwwewwhwxxwwwegwgwwgwxfwfwvxwxwvwgwwwxgvvwwwwwwwwgwwxxwwwwwgvwwWWfvwwgWvvwWVevgwxwgfxxgxggUggvgwwvwxwwgwwwwxwxwxxwwxfgwwfwvwfvgwuwggwwgwwwwxwwggwwwwwxwxgxwwghxfggfwwwVvwwvfxgwfgvwgvvwhwvvwwfvgwxwwwwwxvvvwwhxhgwwwwvxvxgwhwwwxgwgxhhxfxgxwwwgxwwwwxxwhwfxxwwxxxwxwwWwVgWwuwgxWvWfVgwxhwwgwxwwvvWWhxxxxwwwhwxxxxxxwxwwwwgxwwxvvwxxxgwwwwwwwwwxwvxwwwwwxwxxxxgwxxwgwfwvwgwwxXwwwwgwwgwxxwwwvwgvwwwwwwwwxxwxwwxwxxwvwvwwxwwgwwxwwgxwxwvwvwwxwwwxwwxxgfgwfwwwgwxxwwfwvhxwxwwxxwxxwwwwwwxwwwxxwxwxxwxwwgwxwwwwwwwgxwwwxwwxxvxxxxwxwwxwwwhwwxwvwgwgwxwwwwxxxwhxwwxwwwxxxwwgxxwvgwxhwwgwwwxwxgwgwwwwxwxxwwxhwxxxxwxhwwxwwhwgwfgxgwvwhhwwwxgxhxxxwwxwhwwxxwxxxxxxvgxwwgwxgxwxwvwxxxxvwwxxxxwxwwwxxxhxxxxxxgwwhxxwwxwxxwwvxwwxhwwxwwxwwwxxwwxwwvxwuwwwvfwwvwwggvgwwwwwwhfwWfvwwwwwfwvwxwwwxxwVufvwwvwfwwvwfewvgwfVfVvvvwwxwwgvgvwxwWgggwDddfwwwwvwfvfvxWgwxxgwwwwwwwxwfwvwwwggwxVefvxwxxwwWuwfvfvgvvwwwvvgwgwwxwxxwwvvwDddfwwvxwwfvfvxVwwxwwwffvfvvwgwwwwwwwwwwwwwwwwwwwwvgvwfwvgwwgvgvwgwwgwwwgvwwwxwgwxfvfvxwwwwxxfvvwxwwwwxxwxwxxwwwxwwwWugvwwwWwvwwxwgwhxxwVuffxWgwggwgwgwwwwwXwWwwxgwxgwfvfvgvxwfvvwwwwwwwwxwwgwwwwwwwxgxxghwwwxxwwxwwVufvxVwwwxwwwwxwwwXwWxwwwwxwvwwwxxxfxxwwwwxwvwwxwxgwwxvgwwwwwwwvgwwWugvwxwwwvwwwwwwxwfxxxwwwwfwfVfVwwwxgvgvwwwWwwwwwfwwwxxwwwxxxxwwwwxwwwwxwwwwwwwwxwwxwwwvwwwwwwfvwwwwwxxwwwwwxgghwxxgwwwwvwxxwwwwwvwvwwwgwvwwwwwwwwxxgvhwwxwxwwfwgvgvvwwwwwgvwwxxhwwxwxxhwwwxxwwwxxxxwwxxwxxghfxwxVugwwWxxvvxwxwwxxgwXvhxwwhgwwwwwgwwwwxxwxvwxxgvwxxgwxwwwxgwwxhhfwwxxxxxxxwxwxwwxwxxwwwwwwwwxwwwvxwxwxxgwgwwwwwwwxuwwwwwwggwwwwvgwvvwgwwwwwgxwvwxvwWwhwgwwwggwvwxgvwwwxfvvuwgfuffwwwwgVgvwwwggvfgwwgwWvfffgwwwwvwgUddvwwwwhgwxhgwwwwwwwwvwgwwvFewwvwgwvvwxvxwwwfvwfvwwwxxVvvwwwwxvgfwgewwvuwwfvfewwwwwwwwwwwUddwwwwgwwwxwwwwWwvvwwgwwvWwgvwwwwwxwWgwxxwwwfvgxwhwgwgvgwvwwwwgwxwvvwwxwwxxxxwgwwgvwwwuxwwggvwWgwgfxwwwxwxwvwwwvwggxxxgxxxwggvwwggxhwgxwwwwfvwwfvgxwvwxwgxwxwvvwxxxxwxxwgwwxwhgxhxxwgvwgxgxwwwxgguhwvwwwwgwwwwwxhwgxwvvwwwgxwWwgvwwwwwvwwwvwwvvxxvwwwwwgvwxvwvwwxwxwwvuwwwwwwwwwxwwvvwwxwxxxxwxxwvffgwwwhwwwwxwwwwwxxxvwgwwgwxxxxVvwgxhwxwwxwwwwxwxxxwwvwwhxvxgwwwgwwfgvvwggwwwwwwwxwxwwwwguwwwwwgwwwwwxwwgwxwwwxwghwgwvwwwwwwxwxxxxwwwwwwxxwxxwxxxgvwwwxwxhxvwwwwxxwxwwxxwgwwwwgXxwwwwxxxwwwwgwxxhhwvwxwxwxwwxwwxxwxxhxvwxwwxwwwxwxwxwxxwwxxwxxxxwxvwwwvxxwxwwwxvgxgwwwwxwwWwgvwwhvvwvwhgvwgwxwvhwggwwgwwwfwwgvxwvwxxxwggxwwfwwfVvWwvwwfvgwhggvxwgvgwvghwwxwvvxwwwwgwfhwwghwxgwvwxgvxwgwwwgwgwwxwWfgwfXwwhwxgwwxvwwvvwxxwwwvwwxvwxgxvvwwgvwwwwgwwgggvfXwgWfgwwwwggwvgwvxwgwxuwwvxwhwxWgwwwwwwwwxwgfhwWWvwWggwwwwwwwwwxwwwggwWxhwghxxwgwwwWwgwwxxhxxxwxggwwhgwwwxwhggwgxhghxgxggwwvvwwwhwwhxwhxwwxwxgxxhhxwxwwwwwxgxwwwwxxwwwwhxwgxhwwgwxhxwwxvxxhwxxvxxwwwwxwxxwwxxxxwxhxgxxxwwwwwgxxwvgwwxwwxwvxwxWhxgxxwxxwxwgwwxxwwxwgwWwwwxwvwgwwxxwwhwxxwxwxwxwxxxxwxxwwgwghgwwgwwwgwxwhwwwxwxwggwwxgxwxwxxxxwxxxwxwhhhxxwgwvxxwwwhfwhxxvxxxxxxwxgwxwxxwwwvwxxhxxwxwxwxxgwxwwxwwxwwgggxxvxwxvwwwwxwwvwxwwwgwfxgwxwhwxxxxwwxxxwxwhxxwxwxxxhwwxxwxgxxxwfggwwxxxxwwhhxxhxxxxhxwxgxxxxhhxvhxwxxwxghhwxhxxwwwxwvxxxwxxxxxxwhvxwxxxxxxxwhwwwxxxxxhghwxwxwwwxwwxxwgwwxxxxxwwwwxwwwwtwfwwvwwwwwvwwvxwvwxwwwwwgwvwwvwwhhwwwWgwgxxvwxwgvwgwewwxwwvwwfgggwwwvdvxxgwvggwWggwwvWxgwWwfwwwgwwxxhwWwvxwwgwwwgwwwxwwwwwvxwwxwwwgwfxvvwvxwwwWvwwwgxwvxuwvwvgvvwwwwggdwwwwwxxwxvwgwfwvwgwggvwxwwwWwwwxwgwxwgwxvxwwhgwwxwggwwwwwvxfewvwwwggwwxwwvxwwwwwxxwvfgwwwwhwxwwwxwwvwxwwhwwxhwfwgfwwwWxxwxxxWwgvWwxwhvwxwgwgwgvvwwwwwwgwfxwwvwxxwwwxewgfxwxwxhxxwwxwxwwxxwxgvwwwxfwgwwxwwfwxwfwgxwwwhwwwwxxfxwwvhwWwwwxwwvwwwwwWfvwwgwwwfwgwxfwwxwgvvwwxwwwwxwxxxxwxxwvgwxwwwwwxwwffwwxhwxxwwgwgwwwxwwxhxxwwwwwwwxxxxwwwwwwWwxwwxwwxfwwvxwwwwxwxxwwwwwwgwwxxxxwwwwxxxhxxwwggwgxwxwwxxxwxwwgwwwwwwxxxwvwwwxwwxwwxxwwGfgwwgxwwvvgwvxxxwxxwwwwwwwxwhxxwwxwxwwxxxwxxgvwwwxxwwwxxwXgwwxxwxxwxxhwgxwghxwwhwvwvgwgxhwxwxwwwGwvwwxwxxxwhxwwwwwgxxxxwxhhwwxxxxwvxwwxgxxwWwwxxwgwwxxxwxwxxwwwxxgwxxswwwgwgwwvxvwgvwvgwwfwffwwwwwvfwvwvvgwxwvvgwgwwwvvguvgvwwwgvvwfwfvfgfvVvfgvwwwwgggfvfwfggfVgfewfgetuwwwwgfvVgfvWvwfhwvfvgvvwwgvwwVewWwuvwgfwwvwWwvwwwvWuwWvvwwwvwwgfvgwwwwuvwgxwwwfwVgwufFvtwwggwfwwwVfwhvwgwfwVuswvwwfvxgWwwwxwwwwwvuwwwwwwwvwwffvgxfvhwWgwwwfWvWwwwgvwgwffhgvwxgwgewvgwhwvgwwgxgwgwwwvwwgfgwwwwwwvwfvwhggwgfhhWvgvfxgxggwWvhxwggwggwgggfxwgWxfwxwgugfggwwwxwwgwuggxwvwxwwhWwwxxxxwxwwxfwgfwwwxwxwwxwxwwwwxwxxwgvwggwwwwwxhvwhvwwwxxvwxwwxxxwxgvgxwuwxvwwhvwwwwwWgvxwvwvwvwwfvwwwwwwwwwwwvxwxhwvgxwhgxwwxfwwGvuggvwwwwWuxggggxwvxvgvxwxwwwwwxwwwwwwhvwhwwxwxwwVwwxgwxwgwwfxxxxwxgxwxwxwxwwwWWwgwwwhfhWWwwwwgxvwwvwwwwxwwvwvwxwwwwwwvwwwggggwwvwgvwwwxgxvxxxGwdhWWwwxww7vuWwvwwwgwwwggvxwxwxxxwwxgxwxxwwxxwxgwgwwvwxwxxxWgghgwxwxwxxxwxxwwxwwxwxwwwxwwxxxhxwvgwgxwwwwxwfhwxwwgxwxxxwxwxgxwwgxxvwwxxXxwxgwxwwxxwxwvgwxwvxxwwxwwwxxvvxwwwvxwxWgufwwvwwvwwwXwfggwgwWwgwfwvfwvwwvWfwgwvwwggwwwwxgwvwxwxfwvggfVvwggwWgvhggFfgffgFgffwxhwwvfwwgxvwgwgwgwgvfwwvggvhwwwwwxfwwwxwwwgvwvwvwwwggfvwwwhwxwwghVwwgwfwfgvxfghwwxwvxvwwxwxxfggfwfxgwwgwxwvvvwWvhegfxwgwfwwfhxwxfwfwggwwvxwwgwxwwxxwwxwwWwvgfWwfwWfFwwgwFwfwwwxwggwwwwgwvxgxvwwvfvhxxxvxhxxxxxhwgxgwvxgwggxxwhwvgwhxxgxxhwxxgwxxxwwxhxfxxwgwxwgwxxxxwhwgxwwwwxwwwwwwxwxgwgvhwvwxwwwggxgxwwxxwgxwwvwxxxgxwwxhxvxwxxxxxxwxgxhwwwvwwgxwwxxxgwwgxxwgxxwxwxwwhgxwwwwwgwwwgwWwggwwwwwgwwwxgwwxhwwwwxwxwxwxwxxxwwvwgwgxwwgwfwxggwgxgwwxwxwfwwwgwwwxxwwhxxxxwxxxggwxxxxxwhwgvxhwgwwggwwgxxwvxwwwwxwwxxwwwxwxxxxwwxgwvwxxwwxxwwwxxwxwxvwwxwxxwxhwxxwwwhwwwwxwwxwwWhVwxxxxWwhgxxxxxxxxxxxxwwwxxxwxxxwxxwgwhxxxxwhxhxwggwxwhxvhxxxwxxxxxhgwghhxxxxxxXwhxwggwxxwwwgxxwhxfxwwwxxxwwxwxvxxwxxxwwwxxvxwxxhxxwwwwxvxxxvxfwxxwwuwuvgwwgwwuxfwfvwwwwwgwwggwwvwguwvffggwfwwwvwgwvxvxvwvwgvwgVwgwfvfggfwxggwwwwwfxvgvefvfwegvvuvgwvugwwwgwwfwxwgwWvwvffgvwwfggwwfvxwvwvwwwwwwwgVwfvwuwgvvWwwvwxvxwwuwfffvUvfwwwwffwwwfvgwfvvfwwfwgwewwgvvwwxvwwwxxxwgwwgvxwwxvwvgWfffwgwwgwWWwvgwwwwwwwxvwvfwgwgvxvhxwwvwxgxxxxwwwwVwuwWWwwfgvgvgwgwxwhxfgxwffwwewvwffuwwvwggwwxgxxxfxwggwwwwvfwvwVgwwgwxwxwfvxgWwgwhxvwvwvxgxwvxwxgxwwwvwhwgxwwxwxguwggfgwwwwfxwvhwVwxgUwwggvfwvwwgwgxxwwxwxwwvxwwxwwwwvwfwwfeevgwwvxfwvwvwvfwwxwwwgwwhwvxhxuxwxxxxxfgfwfwffgwwwwwwwwxggwhwwwewfvvwwwvwxwwvwwwwwgwgwwgwgwwwwXxgwvwxwxwxxwxvvwwgxgwxxwxwgxwwwgxwxwxfwvwuvfwwwwvwwvxwgwwhwwwwvwwwwwwwxwxwhgvxgxxxxwVfwvvvvvuwwwxvvwwwwwWwxhvwwggwxxgwxuxxwwggxvvhhwgwxxhxwwfvfwfVgwwwhwwwxxwwxWwxxwwwwwgghfXxvwwwgwWwwhwwwvwxxwgwWwvvwwxxxgwxwxwwwwwxwgxxwwxWwgxxwxgxvhwuwwwxgvhwwxwwwwwwxwwwwgwwxhhwfwwwfwwwvvxfvwxgxxwugwwgwwwvxwwwuwwvwwvwwgxwhfwwwwxwwvfwwgwwwxgwvfWgdwgEwvwvgVguvxxwwwvfwxwwvwfvfwwwwgwwwwWvvwxwgwxvxwwwwwwvwxvwfgwgwgwvwwgwwxwgWwxfwwwxwWwvxxxxxwxwhggfgwvgvvfvwwggwvwfvwwwwwwvWvwwwwwwwvgwwvwvvwwgwwwwwwwwxvgwwwuvgfwxwxwvwwxwgvggwwwwwwwfwxwxwxxwwgggwUgfvGgxwggwUgxxxwwgwwxGwfvwhgwwxwgwGwxxxgxhwxxwwwgwwwwxwwxxgwwwwvwxxxwvvgxwwxxwWxwxxwwWwfwxgwwxwwwwgwWwhgwxwwwXwwwwwwwxwxxgggwxuxwvwwgwvvxwwwwwvwwwwwwxwgwwwxwwwxxgwVvwvxwwwwwwwwgwwwwwxwgwwwxwgwwhwwxwwxwxwxwxgxwwgwgxwhvwvvwwfxgwwwxwxwwwxwwwxxwxxwvwwwwvwwgxwvgvxwwgxwwwvxxxwvwwwwwwwwwxvwwxxxwggwwvgwwxxwgwgwwwxxxxwvwxxxxgxgxxxhxwxwwxxwgwVwxxwwhwwwwxgwxxwxxwxwwwwwxgwwgwxwwxwwwwhwwxwwwgxxwwxwwxwwxxxwwgxwwxxxwxwwxwwgwwvgxvwgwwwwwwwwwvwvxwxvwxxwwxxwwwwwwwvwwgwxwwxhhwuxhgwwgwvxwwwxwgvwxwwwwxxwgvxhwhwwwwwxxhwuxvgfvuwvwwwgwwwwwgwgwxgfwwxwwwvxwwwxwxxgwgxhwxwwwwhgwuwvwxgvwwwgwfgxwvwxxwwhwvwwhwxxxxxxwgwvwwgwgvwvxxwvwwwxxexwxuwvwwwxhxvvxxxxwwvxwwwwwwgwvwwwwhwxwgxwwwwxhvvwhgwwxxxwxxxxxwxwwwwwgwgwwfgwxxexwgxxxhwwxgxvwhgwhxgwwxwwxwwxwxxhwxwwwxxwxgfwxwxwwwwxgxxwxwxxxxwxxhxwgvwwxwvwxuwxhvxvwxwxxxwwwxwxwxwxwxwxxwwwwwxxwvwvwhhgwxxwwwhwwwwwxxhxwxxwwxxwwxvxwwwgwwhxgwwxwxwwwwxxwwwxxwxwwxwxgwwxwwwwxhwvwxhxxwxwxxxwwxxwyxgxxxxxxxwxgvwxxwwvvxxwxwxwxwxxwwwwxhxxhxwwwwxhwgwghwxwxxwxwxwxwhxxwyxgxhxxyxxxxwwxxxhwwxhwxxxxxxwxxxwxhwxxhxwxwxxwwxxxxhxwwxxxhyxxwxgxwwxwxxxxwwwxxxwxgxxxxwwxwxxwxxwwwxwvwwxwwwxxwwwxwwxxxgxxuxwxwwwwwxxggxxxwwhvxvxxwwxwwgvvwwhxwxhfxghxxwxvgwvfwgwgfxwugvgvwwvxxguvwwwvwvxwvwxwxwgewxgwvwwwwfwvvvwwxfvvvwxxfuwvwvxfwVwwwwwggeexwgwwvwxxwwuxvgvvvxwwwxwgwxxxxxhhxwwwxxgwvvwwxwwwxwevwwwwwwxxxvgxwwvggwwxwxgvxwwwxwguffwxwwhwwxwwwgvwxgwxwxwwgwxwwwxwwxvvwwxwgwwxwgvwwvxhwwwwvwwwgwffwhxxwwwgvwvxxwfwWvuwgvvwgwwwwwwgwxwwvwwwxwwwwxwxxgvwwgxwxwwgwwwxwwwxxwgevgxxwwwxwwxwwxwxvwwwwwwxxxxfwgwwwxwwxwwgwhxwxxxgwwwxwxwwvxxwxwwxwgwvwwxxwxxwxwxWvvwhxwxxwxgwxxguffxggwxxwxwwxhgxwfwwwwfgwxwxwgxxwxxwxxxwwwxvxwxvwhgwwwxxwwxwxhvwxwwwwxxwxwxxxwxwvwgwvwwwgwtwhgwvefgvwwvwwwgwwgvwwwvwvwwgwvvwgwxgwvuwwvUuwefwuwwwgvwuwxgxvwVwwwWwuwwwgwwxwvgwvwwgfwwfwwwgwvvwxgfxwgwxgwuewwwwwxwgwxfwwwwwwfhwwgwxwwgvxwvvwwwwvwwfgwvgwuxgwwdwxwvfwwwvwwwxgvwxwxvwwuwxgwwwwvwggWvhwugwvwwfgxfgxvvxwwwggWuxhwwxxwhwfwxwvgxwwwxwwxwwwwhwwwwxxvvwuwwwxfwWwwwxvXxWvwghxwwwwwwwwvxxgwxxxvwwvvwwhxxwvwwxuxgwwxwwhwxwvwxxvxwwwhXxxwwwhvgxhwxhvwxwexxwwfywxvwxwhwwwwwwwxwvxxwxxwxgwxwwwwwgvwxwxxxxxxhwgwwxwwwwxwhwxwwggwwwvwwwwwxxwwwxwwwwxxhxWxgxwxwwwwwxwwwwvxwwwwwwxwwvxwgghwxxhWfwxwwxxxxfwxwwxwxwwwxgwxwxxWvwwwwwxhxxxwwxwxwxwxxxxhxwwxwxwxwxxgwhwegwwxwvwwwwxwgxhwwvxxwxxwvxhwxwwwxwwxgxwwwxwwwwxxxxwwxwxwwwxhxWhxxxwwgwwxXgxwwgwwgwxwxxwhwxxwgxxwxwwwxxwxwwxxxxghwxxxxxwwxxwxxxwxxxxxfxxxwwwxxxxxxxwxwxxgxytwwwwwwwwfvwwwvwhhvwwgfvwvwVwwwggfwhwwvwfgwwvgghvwxwxgWUwwwvvvfwggewvefggvWWwwvWwvfwfgffgwwvvwgwvwvfxwwWwvgwxgwuwwWtvxggwvwgGewwwgwguwvgwVxggwuwwwwxvwgvwwvfvWvwwwfvvggwWftfgvwvwvwWvdfwwvGwxwwwvvgwvwwxwwwgwxvwxwwfwwwxvwwwwwhwwgwxfwwgwwgwgVgwwwvvvvgxwwWggvwvwwxwwwwxwfwvhxgwfvwwwwVvxxwwwggwwwWvwgWwwWwggWwvwfxgggwfggxvvgvwwhWfvvgWWwxXWXgguxWvwwwvfgwwhvxxgvvfxxxgwwvwwwwxvhwxwwwxwxwwxwwxxxxxwxgwwwwwxvwxwwwggwhggxxfwwwfxwwvxxwxwvvxwvvwxvwwwghwwwwvwvhwwghvwwwgvwwgvvwwwwgwxwxggwwwWwvxhvxwxwxwwgwhgwwxgwgwwwgwgwWvxwxwwwwfwxwvgwxwwwxwWwvwgxwwwwxxhwwwwhwwwxwwxwwwwxwwxgwwxxwwwgwwxxxxwwvwxWGxwwhwxwxxwwxwwxHWxxwhwwwvvgwxwxwwwgwxXWwwxxxwhvwxwwwwwxwxxwgxwwwgwxwhgwgHfuhwwggwgxxgwfgwwGwugwwhwxhxxwgvwxxxwxgxwxxwxxwwwwxhgwxwwwwwwxxghwwgwwxwxwgwxvghwxhxwwxwhwfhwwgwwxggwwxhwxwwwxwwxvhxwhgxwxwhxwwwxxxwxxwxwxwhxgwwxwwwwwxwhxwxgwwwxhwwwxgwvgxwwgwxwwwxvwgwvwwhwwxwwxxwxwxwggxwgwxwgwgvvxwfwwwvwwxvewwxwwvwvwewxvwgwxwgxwwhwhwxwxvvgvuwwWgwwgwwhwwwwwgwxwwwwwwgwwvwxgwgwwwwwwvewxwxwwvevxvxxwwwxwxxxxxwxxwwggwfgwwvwvwgxWwxwxwxwwvwwxwwxvxwxwxfxwwwvxwwwvwwwwwwgWxwwxvxwwwfwvgvwWwwgxwxxxwxxxwwxwgxwxxwfwvhwggxxwxxgxxfwwhgfxxwgxwwwxwwxhxwxwxwwgvvwwxxwgwxxwwwxxwwwywxxwwwwxwvwxgvxwxwwxgywxxxwwxxxvhwvwwxwxxwxxxxwwgwwwwxwwgvgvxxxxxwggvxwxwwxwxwxwxwgvxwxwxwhwxxxwxwwwwwwwwxxwwwxwwxxgvwwwxwxxxxxxwwwwwwxxxxwxxwxxgvxwwvxwwvxxxwwxwwwwwwxwxwwxgfhfxwxxxwvxxgvwxwwwvwwwxwxwxwxwwxxxxwvwxxwwwwxwxxwwxxxwxxwxwwwwwwxvxxwxxwwxxxgfxwhxxxwxxwxxxxxwwwwgwxwxxxwxxwwxwxwwwxwxvxwVwvvfvuwvfwwwvfwgegvwwwwfwgwwwvfwgxvwvwwwwfwwugwwwxwwvwgfewvwfgVwwxfwwgWfgxfgwfWwvwVvvwewfwfxwggVxvwwwvwwxwwvgwVwvwgewxwvgvgwwwwUgwwwvwfgwwvwgwwwvvwvvxwxwwvxwvwwxuxvvUgwfxxwgvwvwgfwxwwwfgwwvxxuwgwuvwwwgwwwwwxfwvxwgwgvwwgwwgwVVwwvwggfggwgfhgVwwwwwWwxxVvwwwgggwxxgwxwfxgwgwvwfwxwgwwfgxxVgwwgwxWwwvwxwgwxwgxwwxxgwxxwwwwxvwxwwxwwgwxxwwwwfwwwwvwwwghxwvgwxwwxfwxwxwxxwxwwwgxwvwwwwwwwwvwxggwwvwxxhgxxwwxgwwxwvxxxxwwwxwwxwwvwvwvwwxwwxvwwwggfwgwxxwwwwwwvgwwwxxxvxvgxxxxxwgwwwvxgwwxwwwxwWxwggwwhwwgwwvwxxhvwxxxgvxfwwwwwwwxwxxvwwgwgwvwghwwwwwwgxxwxgxwwvxwwxwxhxwvxxxgwwwwxgwxfvggxxxwxxgWwgwxxwwxwxwwwwwwxvwwwwwwwwgwwwgwgvggwxxggxfxxwxxwwxxxgvwwwhhgwwwwwwwwwwxwwhxhgxwwxxgwxXggxxwwxwwxhwxxwwhxxwwwwwgvxxxvwxwgxxxxxvwvwwwgvwgxxwxwwxhhxxhwwxxwxgxgwxxxwwxxxxxhwwwxxxxxwwfxxvwxwwgwxxxwwxwwxxwxwwvgwvxxvgxxwgxxwvxwxwxfggwwgwvxvxwgvwxxwwxwvwxvxfgfxwxgwxgwvwvwwwwwwvxwgwfxxxvwwwxgwwxwwxwwwxxvgwwwvwxwxxxxxwvwwgwvwvwwwxxvwfvwxwwxwgvgfwvwwwggwvwxwgxwvxhxwwwxxwwwxgwwhgwxxxwwxwgxwxwwwxxwxgwxxwwxxvgwwggwxwwwwxxxwwxwxxwgwwxwxwgxxwxfwxvhxxxwxwwxxwwxwwwwwxwxwwxxwwxwwxxxxwwwxxwvxxxvwxxvwwwgvxxwwghhxxgwxvxwwgwxxwwwhxxvxxwwvwvxwxwvxwvgwxxxxwxxxwxxxvwxxwwxxfwxxvwgwwxxxxhwhxgvwwxxxwwxxwwwwxwxvwvggwxvxxvhwwxxxxxhwxxwxxxxgvxvxxhxvwhxxywhwgxyxwxwxwwxxxwgxxgwxwxwwwxxxxwwyxxwvxwxxxwxxxxxwxwtwvwfwwffvvxgxwgwxwwxwgwwhxVvvggvfvvwwwwwwgwwwhwxFvefffdvVgVfvvggfwwwfwgwwwwwwxugvwwgfwgwgvwxwxwwwwwxwxxxxwwwEwfvwffvwgwwgwWvfggwwwwWwwwxwwwvwvwwxxgxwwwhdVVffUUgfwfwwwvgwgvwwvwwWwwgwggwwvwvvggwxwwwhwwxxwwgvxwwvxewvwfxvvvWvwgggvwhwwwwwxxxwwgvwwgugvwvxxgwgxwwwxxxhgVVvwggffwFVgwfWwwggxgwgwhwhhfwwgfxxwgwwghvwwvgxhwxwwxxvvwWgwgvhvfxwxxwgvVwgwwggwgvxwwwwvwxwxvxfwhuxwxxwhhvffWvgfgwXwgwwwfwwugwgxvwgFwxwwxxgwwgwxhgwxxwwggwwxxxwvwgwggfgwwwwwgwvwwhgxwwhwwxwxwxvgfxxwxgwxxxxvgwwfgvWwwwfwwxvwvwgwwxxwxwwwwwfwwgxwxwxwhgwVwwxxxwxvwwfwvwvwwxVvwgwwgxxxwwwhxxxwxxhxxxwvxxwfvwvwwwwwwwwwwhwwxwwwwwwwxwwgxwxwxexxwfgfwfwfvgwxxwfwgwgxwgxgvxxxwvwwxwwwwwwwwwwxxxwhxgvegWxWGxwxvhwvxvvgWhgxhwwgwxwhxwwwgxxgvxxhxWwxwwxwxxxxguwwwwxwwwvvvxwwwxxwwxgwxxxxxxwxhxwwwxwxvfxwgggwwgwxxxwwxvvfwgxggwxwxxxxwhwfhxxxwvxwwgwxfvvwfvffwgvufwvwwvwwwxWvvvvgwvuvwwxwwwwwhvwwwwwvwvwgftgfVegfgfvwwwwwwvwfWfwwwugfwwwfwwfvwxwvwwwgghwwwvdvwwwvwwfgvgwvuguwvwvwGvvwwhwwwwvwwvwwwwfwwwggwwxwwwxdfwvffwwefeuvwvfuwufVwvfugvwwfuwwvwwwwvwwvwgwwwwwwwwwwwfwgwvggfwwwfvfgvwxwvgfwwxvvvgwwwwgwwxhxxgwwvwxvwxxgwgwfvwvwgvvgggwwwggfgxhwwfFxXwwwwwxxvggwhhvwvxhhwxwwgxhwwuwwgwwevvwwwwvufwgwwgUwWvwwwvwwwvwxvwwxxwwwwxvxwvfuvvgfvwgvgvgwvvffhgwggtWxxvwwxwxwwwvxwwxwfxwvwxvvfwxgvfwwwvwwwvfvfwvgwwgwWxwwwwwgwgWwwwxwxwfffgVgwwvwvwwgwgwvhwvgwhwwwwwwvwwwwxxxxxwwwxwwxwgvWgvggwwwgxwwwhwwwwwwvwxgxwwxwwxhxXwwwfwwvwwuxwxwwvwwwwwwwwxxvhwwwwxwwvwxxxwwwwwxwxfguwwwwwwwwwxvxvvgwwxvwwwwgwxwwxwxwgxxxwgwggxxwxxwxwxvvgvxwwXgwwwxwwvvWhHgwwwhxhxwxhxwgwxxhxhhwwxwwxfwwwwgwxewfwwwfwgwWwwgwwhwwwxxwwwwwxwvwhgvwwwwvvwgwwwwwvgwwwwgwWwgwwwhxwhxwvwwwxwxvwwwwuvwwfevxfwfwgwwgVvvwgvgWwfwwxgwwvwfxwxxvvwxxxwwxx6wewfguwffuvfwwwGffvggWfwwwwxwxvuvgwxwwwwwwxwxwwwwhwxxwwVgfwwfwgvgwwwvfggwxxvfwvwWvxxwwxgxwwxxxxxxeffggvufffwuvwwWvvwxwvvwwfxvvgwwwxvxwwwwhwhwwwwwxxwfvvwhguwwwgxwgFvwxgwevvgxwwgxxxwxxfwgwxxxxxxwgfFvxhgfgwwwxwwWg7WxxhwwwhxhwwgwwxwhxxxvwvxxxwxgwxwfwfwgwwwwwwxgwvwwxgwwwxxvwgxwxxwxxxwwxxxhxgfwwggxwwvwwwvvwvhwgxhwvvvewxuvxvxgwwwxxxwwwwfWhxgwwwgvwgwwfwwwwfwwgxuwgwxxxwwwuwvxwwwvxwvxxxxxxxvxffwffwxgwvhvxwwwwwwxwxvwxghwwwwwxxwwxxwwgxwxxxghwxxxxwwgwwwxffhxwwwgwxxwwwwxgvvxxxxwwxwvxwxgwxxgwfwxgxwwxwwwxwwwwxwxxwwwvwxwxwwxwgxvggwwfwwxgwxxwwwxxxxwwxxxwgxxxxghxxxhwwxggwfxgxwxgwhWwvwwwxvhxhwvWwghwwwwggxwgxhwwwwwWgfhfwxvgggvvvwxwxxvwxhxxxxvwwgwxxxwwvwfxwxwwwwxxwwvxxwxwhxwhwxwwwwxwxwhwvwwuwvgxxwwgwxwxgxwvxhvVuvvVgevvwxfwwvFWfwvvhgfuwwwuwgggffwwwwwwffvvwwwwwwfVFUWueggefwewfvgffVhWfeevwxgfWgfewdfgvwwwgwvwvvfwxgugwwwwhhfuvwwfevvwwwVtewwgwvwgwwwwwwwvvwwwxxwxwvwxwxxxwVUdvuffvvvggvefvffvwvWwgfgWfuuwwwgvuwxwxwgvwvgwvwxwwvWgvgfvggfvfvwwgeuwxghvfwgvxwgWuuwwggwwwveggwwhvxwxwwgfWhguffwwxwvWwggvxwhgfvgWXVfvgvwweWwwxwxgwxwvgWHexggfhvwwWuvvwgwwwwwvfgvxwwwfwwgwfvwwwxvxwwwwwwwxwwxwgwvwgwwvwggvxvwWgguwvgvhwwfwwwxvwwwxwgvwwwwfwwXvgwxwwvgwgfufwgvwvvvvwgwwwwwxwgvfwxxxwwwwvxxhwgvgwdfgvvwfvwweuwwxvfWgfvvwggfwwvWuegwxhwxwvwwWWuxxwwwwwwwfwwwwwvxwxwgwwwwxwxxxwwwwwvwwwvwxxwwvwvwwwwwxxxwxxgxxxwwgfuwvfgwwwvwwewgvxvhwwwxghfgwwxxwwxxwxwgvhXXvxxwxxfvvwwfvWwwvwwxxwhvwgHhewWXUhwwwwvwwHGexhwxwwvwhgvxvvgxwvxxfwwxxwwwwwwxwxxwxhwxxhxwxxvxwwwwwwwwwXwvgwwvwxxxXvwxwhwxwwwwwxvuvwvwfvwwwfgwwwhwfwwwxgvwwwvwfwgwxwwwwwxwgfgwwgfvxfuvwwwwWWfvwgwwwwgfwwvwfwwwwwwwwwxxxUfVggwwwvwwwuvwwvxwvwvwwfWfwwwwwwvwvwwwvwvwvvwgwvxwWwuwwwwwwxxwwxwugfwvvvwwwwwwhwuUffwvufwwvwufvvgwgxfwwxwwfgvwuwgwwwwwwwvwwwgvwwxwxgWgvxwwwwwgggvwwwvwvwwxwgwwwwxwvwxwxxwgggwxwwwxwxgvgWfxwwwwwhxvwwvwwwgxxxxwwwguWxhhwxhxxxxvwwwvwwweuffwwwwwwwwvvwwwwwxwfwgxvwxwwxwwvggxwwwwwwxhgfvWgwvxwvwxvvwwvwwwggxwggwufgwuvwwwwvwwxwwwwwxvwwwwwwxwwwuwgwxwwxxwxvhwxhwxwfvvwgxwwxffgvwvwhxwxwxgwwxgwvxxwvvwxxxwgvxwwwgwvwgvwwwwvvwxwwxwwwxhxgwwwwxxwvwxwgwvwwewwvvxwxvwwwxgwwwxxwwvvwvwwxxgwgxwxwwwwxxvvwxxwhvxwwhwwwwxxxwwwwwhgxxwvwgxgwwwwxxwwhwxwwhXgxwwwgwxwvwxxwxwvvwwgwxxxugwwwwwwwwxwxgwwwxwwhxhwwxggfwxhwxwwwwxwxxvfwwgvvxwwwwwhwwwghwwxwwwgxuwwwwwwgxvwvvwwwggwwgffvfwggvwxwvfxgvuvWfwfvwxgewwwxwwgvfggffwwVevefUhvVfgggwfeVgwvevggfwffwwfvfwvwwwwgfwhwwgvvwwwgvgvgwgfvggfvxv5DvfvggUduwwwwfwwwfvguxvwwfwwwgwwgwxwwgUEvfffgFdSgfwgwfvvgvwggwwVefegvuguwgwvvvwvwwwgxwwffwwwwwvvwwwfgwgxwgwwfWgwwwgwvfwxwwwfgwwwfxVwgxwwwfffwwwxgvhxwxwgxwwwwwwvgfwggxxwwwWgfxgwWxffgwfwvwwwwwwghwwwXwwxWvhwwhgwwvxwwwgfvvwgxguhxwwffvgxwwfvwwwwwvVvdgvxxwvxwxxwwxuwggxwwwwwwwwwwvwgwvwwwvwwwvwWfgxwxgwfffwfvvwwwwvvxwwwwwvxwwwgwgvwvwguxwxwWuwwwgvxggfvfgwwwvvwhwgwwxxgvxxxwwwwxhwxxgvwgfwuwWgvwfhwwgwgvgwhwfwwwxwfvuwwwwwwxvxgwxxwfwuxxxwxxfuvxwvwxxhguwxxwgwwgvxwgxxhxwvwvvwxgwwxhgwwfufvxuwwwwwwvwwwvggwwgwwxwxwwvwxwvvwxxwwxwwxwfgvwwwfwgwwwwwfvwwwxfvwgxwxwxxxwwwgwfxwwwxvxhhhxhwwwwwwxxvwwxxgxwfwvwvwxwwgwwxggwwXwvwwwvxwxxwxxwwwwxwXxhwwwgwvxxhwVuvwvwxwvxxhxwfugwwxfxwwwwwvwwwxwwwwxvwwwxvwxgwxxwwvvxxwvvwwvxvhwvwvvgxwxwwwvwgxgwwgxwvvxtwwxwwgvfxwwggvwwwwwwwwwxfwxgwvwwwwxgwvxxgxwxwFgewgvvwvwvwwgVuwxwwwwvwxwWgUvwxwwwxgvxwvwvwwxwxVfuwwwgxwwxwvWwvwxwvwxwxxwvwwgfwgwwfgvwwxxwwUgevwwwwvwefffwxwwvfwgxggfwvwwhvwwwwxvwvwwwxwxwwxvvvxxwwxwwwwxfgvwxxwwgxvwgWvwwwwwgvvxxxwwwxwxwxxxxWfUvwwwwwxgvxxwxwwgwxwxwhxxgfFWwwvxwxwxhwvgxhwwxxfxfwghwgxxvvfwwwwwwxxxgwwxxwwwxxxvwgwwxxxxwxuwggwgvwxwxxwwggvwxgvwwwxxwwgvxxWWxxvxwwwvvhxvwwvwwwwwwwxvwxwwwwwgxgvxwxwxwxwxwggxwvwwgwwwxwwggxxwwwwwghwwxxxxxwxgwgwxxxxwxwwwguxvwwxwwxwxxwwxwwxxxxwhwxxwxxxuwvxwvwxwxvwxwhwxxwvxxwxuwwwxvxwWwwwwwwxxwwwxwwxwxxxxxgwxxxxxwxgVxwvwxhxwxhghgVhhvwwxxwxwxwhwwxxxwwgwwxwwxxxvvwwwxxxvwwwvwxwvxwwwxwxxwgxxxwwxwxwxuwwwxwxgwwwxgwwxxwxxwwxxxwwxxwwxffwwwwxvwwwwwwvvwgwwwwfwwwfxvwwvwwugxwwvvvwwfgvwwvwwxvvwwfwfwwgvwugvxffwvvwwgvvgwwwgwvwfwvwgxgggwwwwwwwgwgxgxvwfwwfwwvvwwwwfwewvgugvhwwvvgwwwwvvgwvwwgvhwgwwwwwvvgewwwvwegvgfwwvvvgwwwgvwwwwvfvvwvwwvgvwwwvghxvwwgwvvwwwxwwwggwhwvggwwxwhefvxxwfwuvwwvxgxwxwxggfwwwwwwwxxxwxwwwgwxfxwwwfxwwwgwwwvgwxwgyhgwwwwxxfwgvxxxgwxwhxxxxxwhwxxwwfwxxvwwxxgvwwwxxwwxhwwxwwwwwwvxwghvwxwxwhwwwwxgwwwwwwwvwxgxwwvwwgxxwvwwvxxwvxgxxwxwwwwxgwwgxwwxwwwwvxwxvwvwwwwwwggwvwvxwwvwwhwwxxwxwwxwxwwwxvxgvvwwvvwwvwxvwwxwvwgwvxxvwwwwwwxgwxwxxwwxwwxxwvwwwwwfvvwxwxwxwwvxxhwhwwwgwwxgxhwxvvvvxvwwwwxxwhwvwvwhwxwvwxwwxggwwwwwwxgxxxfgwvwwgwwwwxwxvfvwwxwxwxwxwxfwxxxwwhgxhwgggwwxwwxxwxxvwwwxxwhwxwhxvwwgwwhwwxxwxwxgwxxxhxxxvhgwxxxwwwfwwxwxxwxxvxfwwgxxwgwxxwwwwfgxxxxvwhgwwxwxwxxxxwwfwwwxhwwxwwwvxwfwwxgxwvwxgxwwxwwhwwwgwwwwgwwwgggvwfwgwgwwwwwewvgwwwvgwevxxwwwwgvxvfWwgvgwwwwffwwxxgeevvxxwggwvwwwgfvwxwwwgwxwwwwxxxwwwwwgwwwwgwvWwgvgvgwVfefwgvxwwfwwxxfwgxwwxgwwvwwwVwewwwwxfvfggxgfwgvvgxwvfxwwwxhxxxgwwhwvxwxwwxxhwhwwwWvwvvwhgwwxhfvwxxwwwgwwwfwxwxgwwxxhwwwwwhxhwwxxhwwwwwgxwxwwhwxwhgwgghhfwwgwwwwhxhwggxivwxwxhwwgwgwwfvxvwwwvxhxvxwgvwwxwwVwfxxxxwwwwwxxwwwwwwxhwxwwwwwwgghwwxxvwwwwxwvwxvxxxwxxwwwwwxhxwwvwwwXwwwgvfvwgwgvwgwfwgwvwxwxxwwxxxxWwwvxwxVvfxxwxfwggxwhgvwvwgwvvxvxxwxxwxwwxgfxwwxwwevxxevwwxwxxxxwxwxhgwxxxfwwxxwxwwwghvgwxvwwwxxxwwwwWwgfggvxwxgwvwxwxxgxggwfVwfxxxvxwxxxhwxxwxwxgxxwxgwwwvwxwxwxwxhwgWweggfyhxxxxhwxwvwwwvfwxwwwxgwxwwxwgwxxxwwxwxwwxwxwvwxxvggwfhwwffxvVxwfwwvuvwvwwwvgwfwgwvxwxwwwwwwwUwvvwvwxwwwwwwwwwvwwwwgwwwWfvvwvvwffefwwwwgwxwwwwwwwwggvfWwwwfwwwwxwwxwwhxxwefgefuvvwvxVvwvwwvgwwwwvwuxwvfwwwwwvwwxwwwwxwwwwwwwewfwdfVvvwfwvgevuwwwwgvgwwwxvvgvgwfvwvwfwwwwwgxvwwwxwwwvwwXfvwvgwwfwggWwwxhwwgxwvwvwfvwwgvwwwhWwwwxxxxwwgwwVVgwwwwwgvWxgwxwhwwwhxhwwwgwwfvgwwhwwgwxwwWXxvwwxwywxvwwtvvwwuwfggwevgwvxvvvxgwfwfwwfwwwwwxxwvwwwxwxxvwfwwwfgwgwwhwufxwwghwuvgwwguwwwwwwvwxWwwwwwhxxxwwwxwvvwfvwwuwwwwwwwwwwgwwwgwvgwxwwxxxxxwguvgvffvwwvvwwwvwwwwwwhwxwwxgwgxwwwwWxwwxwxxhwxwVwwvwwwwwxwwwwwwvwvwxwxwwfvvwwwxhxwwwxwxgwwwvtwvvfxwwwuwwwgwhxvwwwxxwxxxwwwxwvgvfvgwwuwfgwwwwwxgvxxwxxwvwwvxxxvxxxgwxgxxxxxxwwwvwwvgwwgwwwwwwhwhwwwwxwhgxwgwxWgwgwxxhxwxwxwxfwwwdwwvxwwvwwuwwxxwwxwgwwwxxvwxwhwxwwwwvwxvwwwwvxwhwhwwwwwwwwwxwhgwvxwwxxxwvwwxfffwfvfweVfvgwfwfgvxgwwewvwwgfUfvuwvwwvwwxvwfwgwwwgwxxeeVfvffwfvvfevfgvfvwgwvvvvwxwxfvffvwggwxfgxvhuvvwwgwxxvhxxwfvvvvfeuvvfgffgwwwwwxwgwxeuvvwwxwwwxwvvvvwvwxwefewfffwvvwwvwvwvvvvwwwwvwvwwwgvvvwwwvvwwgfwwwvwwwwgwwwwffvgfvfwvvfwwwxwffvwwwgxfvgwwxxvvvxvwwwwwgwxxwwgwwwxwwwxwwxvwffuvvgxxwfwwvgfewvxxhvwhhhwwxvwwhwwwgXfxwvfwxwgfWfxggxfvfgvgwgwwwxxfwfwgwwwwxxgwwwwwxxxwvwgwwxwwwxwgwgwvwfwxwggvffwwxhwwwvwxwxfwwwxxvvgwwvwwwggxhwwxfvvwffuwuvvwgvVvwgwwwwwxwxxuvwwgwvxwwwwxwxwwwwxxfvwwfgvwevwvgvvgvwwwhwwwwxwwxuvvwwgwwghhvgvvwgxhxghvwwwvxvwxwvxwgwfvwwwwxwwwvwwwxwwwwwwwwwwxxwwwwxwwwwwwvwwwxwwwwxwwxwxxwvxxwvwvxvwfvwwwwgvwwwwxwwxxxxvwxwwxwxggwgvwwxhwwghwwgwVvvwwwgxwhWWfwgwwxhxxxxwxwwwgwxxwWwvxwwxvWXfxwwwwwwxgwwwwwxwwxxvwwwhwwxwwgxxwwwxxwxwwwwwwwwwwwgvwwxwxgxwwgwwwgwxgwxwgwwwxgwxwwvwxxvvwfvwwgwwxffvgwwxhwwwwwgfwghxwwxwwfwxxxvwwwgffxwwwwxxhwwgffwwwfUvfvwgvwfwxxxwxhwwgVvfgxwxwwxwwxwwwxgwgxwwwwgvvwwwfgfgWvfvvfwgvxwwwgwwwvgwwwfvwwwwgwwgwxwxwhxxxxwwwwwFvUwvwfwvwgwgvwxwwWwxwwwwvwwxwgxxfwgvwxwwghwwxvgwxgvgwwwwwevwgwgwgxWvghwhwwwwvwwwwwxwwxxWvgwwwhwxxgxxxhxgwwfgwwgghggfgxwhxxXxwxhwhwhhvwggwxxwghwxxxwxhxhwxyhxgwgWwgwwxvgvwFvVwwwhxwxxwwwwxvxxwxwwxxhxxxwxxgwwxgggxwwvvwwwwxxgxwwxvwxxwwhxgwwwxwxhgxxxwvvwwxffuwgggwwgxwwwgwgwwwwwxhfgfvgwwwxwwwwwgxxxwfvwFfVwwgwwgvxggwwwhwhwwxxwwwwwhxxhwwxxwxwxxxvxxwwxwwxfwxwwxwwxwwxxfwvhwxgxxxxwhWgwwxxwwwwxxgwwwwwxwwxxxhwxwxxxxxwvhxvwwwxggfgwVwggwwwwxxFfVwgwwxgwhhwxwwwxxxxxwhhwxwxxxxxxxvxgwwwgvwfwxxwWwvwxxwxxxwxhgxxxwxxwwxwwfggyxxxwwwwwwwxxxwwxgxwgwwwhhwwxxwwxhwwwxxwxxwwwxxwwwxxwfwwxxxwxwwwxxwwwxvVwwxxwwxvfwwvvvwwwfwvwwxfwgxwwfwvvgwwvwxxwwfwwwgwwwwgvwvwfvwwwwwwWuwxwgvwfwwwxwwfgvgfgfvwwwxwvgwwgvgxweuwvgfwxwwvfwwfwgvwvwgwvvgvVvuwwwvvwwwgwwwxwwuggffvfwvvwwxwgwvwvfvvfxwwwfeffvvwvwvwvwvwwwwwgvvvwwwvwwwxvwwwgxxwwwwgwwxwxxxxgfgwvwwvwwgwggwwwwwhxwxwgfwwwwvxwwhwxwvgvxxhxxfgggwwwfWxxwxxxwwgwxhgxhxgxxvggfvwwvwwwfvwwwwwwwwwgevwwfggvwxwxxvgvxwwwgxwwxfwfwwwwwxhxwwwwwfgfxwgfwwxwxgwwwwgWvegvwwvwxvvwgwvxgvxwwwwwwwwvvvhwvwwwwvxxwggwwxxwwgvwxxwxwvwwvwvwwwgwvghwwwxwwwwwwwwxwxwwwwxgwwwwxwxwwfguvwxwhxwwxgwxwxvwwxwwxxwwwwvxxxxxxwwwwwvwgwwuwwwwvwwwwwwwwwwwgvgvwwxwxwwwwwwvwxwxgwwwgwwxxxxxxwwgwxgxfgwvxvhxwwxxwwgxXVxwxxwwgwgxwwxxxxxgxwwvxxwwwgwwvxwwwwwwwwvgxvwxwuhwwgwwxwxgfwwxxwwgxvwhgxxwwvxxxvwwwwwwgwwwwwxwgwgxwwxufvvfwVefvvvwfWwgfvwwwwgffwwwwvuguvwvwfvwfwgvwffvffwwfwwwvwhgwvwwWegwgefwwwwVevfgeguvfgwwWwgfgfwvffwvvwwghvvfggfgfwhwwggfvwwwfwfwwvwvvfvvgVvgvuwvvgvwvffwfgwuufvggvwfwwwwwvhwvxwfveugwvwvwwwwuuwgwuwvgvgwvgevfwuugvvwwfwwwwvxxfgwvvwggwwwwvwfvggvvwfWwgwwwwgfwwwwwfvwwvxgwvvvvwfwggvwvgfvvwwwwwwxxwwwhvwvwefwwwwwwwwgfwuwhwwvwwwWhxwgwwgwwwWwwhwxXfgwwfxWggxwxwiwwwwwwfvwwWwxwwxwfuwwwvwwwwwxwgvwxvwwfwwWwWvvvwgwhfwxhwvwwwxvwvgwvxgvwhxwwwxwxgwegvxxwwwgwwgWxghwwwgwwwwvxxwvwxvwwwwwvgwwvvVgwwgvghvwxwxxvwvwwfgwwwwvgWwwxwxhhhvfgwfvwwuwwwwwwwfwgggwwvxwwxWxfWvwwwwwwgwwwwhxgwvwwxwxwxhwgvvwxxxwvwwgwwxxgwwgwwwxwhxxvxwwwxvwvwwxwwwwgwwxggwggxvwwwgwhgwwvwwxwgxwwwxhwwwwxxwwwwvwwfvvvgwwxvwgwwwvvwxxwxxwgvwgvwwwwhwxxxwwxwgggxxxgwwwwxuvwwwwhxxxwwwwwhgvXxfhxvwhwfxxhgwXwfwWxwwwwwhwwwwwfwxwwwwxxwxxwgxvxwvxwwwwxhxvwxgwwwwxwxxwwwwxwgvxwgxwgwwxxwwwfwwxvwvxvwxgvwggwxgxxwwwgwwxwxuwwwfvwwgwgvvvwwevwggfvwvffwfgWfwwwfvwwxwxwwwvwVfewwgvvwwgwvhfexgfewfgffwVewvfgggfvvwwvWwfewewfgfwfwfwwwfwfwwwwWwwwgwhgvwwwwfwwwvwwfwwwvVfgeWgefvwvffwvwvwwvgwwwwvvwfwwwwxwwxggeveWveewwfffwwvvwgwvWwvwhwgwfevvxvwxwvwwwwgvfggvwgWvgwwvgwwwwwggvwwfwwhgfgwwWwggwggwwfwgffwvwgwwwxwgggwggwgwwwgwwvwvwwwgwffwggwwWxwwvxxgWhwgfxgWVgwvxwwvggxwwgggxwwhxhhwwwwghggxggwwwvwgVwwwwwfgvwWgwWwwwvfWfevfxwwggwwwwwgwgxwgwwwxwvwwgwwxvgwwwwwgVVwfwgxXgfwxwxfffwxvwwvwxwvwwwxxwhwvwhwxwwwwwwvvwwwxwfvwgwwghxvvgwwgwvfwwwwgxwvxwwxwwwwhgwwwwfwwwgwwwwwvgxwhwwgwwxwxwgxhxwwwxgwwvwwwwwghwwxwwXgwwwwxvgxvwwwwwvvwwwwwwxwxwwwwwwwwwxwwxwwwwxxggwvwxwwwwwwvvwgwgxwwwhhvwWhwgwwgwxwwxxwwwwhWwhxwffgwgxwfgwwVvwggwxfggwwwwwwgwvfxgVxxxvwwhwwxgxwggxwwxwwhxwwgxxwxhvwvxvwwwhwhwwhwwwwgfwwwxxhwwvxhgghhwhwxhwwfxfvwwwwgwwwgxwvwwgVwwvgwwxvwwvwxwwwwxgxwwgwwwwgxwxwwxgwwxxxvxghVxgxxwgwhxvgwwwwwgwfwvwwvwwwwwggvfwggvwwxwggwgvwfxvvfvxVwvwgwwwwvwgggvwwgwxxxfwwwgffgwwfvwfgwwwwwwfwwwhwwwfwhfwegffxwfvwwwvvgwgwwhxwhxwwfvvwWffvwwwwxvgvwfvfwfvvxwvfvvvwggwfvwwgwwwwgwwwhgwwvgfwewfvevvwwwgxwwfgvwwwwggvvvgwwvvwwwxxwwwwwwfgwwwwwvwwfwwgvgwgWgfwwvgwggwwwwwfxwwxfhgwfvwgxwwwwxgxvhwwwgwxgwxxhwxwwxvwvwgfwxwxxwwgxfwwfgghxwhwxgwgfgfwggxwhwwwvwxwxxhgxhxxwfwgwwvgwvxxwwwwfwwxwwwwxwwwvwwxgwwxwvxwwxwhwwwxwwhfwwvwwwfwfvwxxxxxwxgwwwxhvwwxxxwvxwwwwwgwvxxxwwxgwvxxxwwgvfwwxxwwwwgfwwvxxxxwwwxwwwwwwwxwvvwwxxwwwwwgwwvwwwgwxwwwxgwwwxxwgegvgwxgwwhwxxwxwwwxvwxxwxwvwwwwxwfwxxwxwgwwwwwxxvgxwwwwxxxxvwfwvxxwwwxwhwwxxxwxwwwwvxwgwhwwwxxVgwwwwwwwwwwwwgxwwggxxwxwxwggwwxwwxwwxxxxxwwwwxxwxxwhwwvhwwgxghwgxxwvhvxhhxxwwhwxggwwwxxwxvxwwxxhxwwxxwwgvvxgwxwggwhwwgxwwgwxxxwwwwwxwxwwxwxxwxwwvvwxwwwwxxgwwxxwwwxwwwwgwxwvvvwvwvwuwwwvvffffgwvxuwwwwwgwVvwffffwwwuvfwwvfwgwwwvvfvwwxgwwvgfdwwvvwfVwwfdggwVggvffggwvxguwvvVwwwwwvghfvfwgvgvwwhwwWwfwwewwvxwgwwwwwfgvvvwwwwwwwvevxuvwwffvugwwvvwwwwxugwwhxwwvvdvfwvgwugwwgdvffwvvwuffggwwwwwgvwwwwgwvwwwwwggvwgwwvwvwxwewwwvfwWVuwggfwwxwxwwhwgwwwwwvVwwxwggwfwwwxwwwgwwxwhwvxgwvwwgwxgvewwXwggwwVhXvwwhhxwgxxwvwwxhwwxWgxwvwgwwuvwwwwwxwgxewvwwvwwwwvwwwwgwuwwxgwwWxxwwwwxwwwXwvvwwwwgwxwwgwwghwvwgVwwwxwwvghwxxwwxwwwwwwvvgvgwwwfvxwwgwvwWwgxwxwgxxwwvwwwwwxfxwwxxwhhwvwwwvgWwgvhxwxvwgwXvwwwxgvvgwxhhwhxxxwwwwhggvxhxxxvxwvwvwxwwwwwgwwxxvwvwxxwwgwwxgxwwwwwwwWwwwwwwwwwwwwvwgvxvwwwwwhwxxwwxhgwwwwxxxxwwwgvwwwxxfwgwgwwxggwwwgxWwwwwxxxxhwwwgxxwwwwhwwwxxwwxxxhxvfggxhhgwwwwwxwxwhwvxwgxxwhwwXwgwwwxwvwggwwwwxwfwwxwxwxwwwwxxwgwwwhwxxxxgwxxwwxhxvwxxxwwxwxwwwgwxwwwxgwwwwxwwwxufwgvgwwwwfwvwwxwwvgvgwvwgwwxwgwwvxwwwwgwvwgvwwwvgwwwgwvxwwfwvwwwvwwgeewfggfVwUWwwwwwgvwvwwwwvxwwxUeegwgvxwwvwwwfwwxvwvwwwwwfvwwgwvwfvwwwwwFTggwwwwfxvwwvUuvwgvxvwwwwgxwvUUgVvuwwwfwvxvw6eSWwgfgvxwwvwvvwvwwxgwvwwwwwvgwwfgxxwwvvvwwvgxvgwwwwwwggwfgfggwgwfgwvwwwxxwwggwfvvxwwwxwwwwxwwxxwxwxxxwxwwwwwwwwwwwwwxwvgfgWwhxxxwwgwvxgwhxwhwwggwfhwhwwwwwwwxwvwvFdhwwwwxwwVvuwwgfwwwwwxwwxvwwwxgxwwwxwwwxxwhwwwwwwxwwwwxwwwxwwwwgwxhwgvwwvvwvwgvwxwwxxwwwgwwwwwxgvwvwvwxwvgwgvwwwwwgwwwxvxwxwwwwwvwxwwwxwxxxxhgxwwgwvxvwgwxwgwVWwhvgvxxwwxwwwwxwwwwxvxwwxxxxxwwwwgwvxgvxwwxxgwwwvwxgwxwxwwvwgwxxxwwwwxxwwgwwxwwwxhgwwwxvwwwxgwvgwwwwwhwwwhvwwvwwwwxwwwwxxxxxwwgwwgwwgxfgwxwwxfgwwwxhvwxxxvwwwxxxwxwwxxxxxwxwxwwwgwxwwxhxwgwwxxgxwxwwWxxxxxxhwXxuwxxxfxwhfwxxgvwwwvxwwwxfwxhxgxwgvwwwvxxxwwwxwxwwxwxwvwwxxxxwxhwwwxwwwwgxwwgwwxxwwwvxwwhvwvwweuxwwwwwwfvvwwwvwwgxwxwvvwgwwvwwwxwwvwxwwFwtwWvfwvwwwvffwxWewwxwgewvwfvvvvwwwgwwwxxxxxxVvuvvwfwwxVhwvvgwvxwwwwwwwwfgwgwgwwwvxgwwwwwxxwxeffvfgewwwvwgwwfwwwwwwwxgvvffvwwwxwwxwxxvwwxwwgwxvwwwuuxwWuwhgwwxggwxggfwxwhuwwwvwxwwxxxwxwwxwxxxxggfVgwFFwwxwxwxWuwhxwxwwwgvxwwhxwxwgwwxwxvxxwxxwvggwwwwgwwwwwwwvxwxwwvxxwwwwwwxwwxwxxwwwwwxwhvwggvhvwxvwwxgVwwwwxwgxgwvxxwwwwxwgwvxxwwwwwwwwhvwwwvvwwfwwwxxvxwxwwwwvwxfvgwxWvwwhxvwwwwwxwwwxxxxvwvgwxwwwxwwwwxxxwwxgxwwgwwgwgfvwxwxwwxwwxwwwwxxwwxwwxwxwwxwvwwwwxxwvxwwxxxxwwwvxwwgfwxwwwwwxxwwwwwxwxxwfwwwxxwxxwwwwxxxwxxwwxwfxwwxwxhxvwwxwxwwxwgyxwgwgWwggfhxwwxgwwxwwxxxwxxwvwwwwxwwvwxxwxwxxwwwwwxwwwwxwwxgwxwxxxggwwwwwwwwwxwxwwwxwxxfwwxwwwwwwfvwwwxtwwWwvwwwwwgfwvwvwwgwvwgvwvvggwgwewxwvvwgwgwfgvvwwxxwwvwvwfeevvfuwfdUggwwwvwWvwvwwwwuggfvwfvDgvvwwwwvvwvfxwgfgwxxwvwwvwvffwwETveuufwgggvfggvwgfwwwevwgwgwvwvfwwwwwvwfwwvwwvweUwEuBggvfvwwfgvdwgwuvxwwwwwwwwfvwwvwwvvwvwvvxwxgwwvwwwggwwwwwugfwwwwfgwgvwggfwgxWwwufwwggwvvwwwfwvvxwxvgUwwxgwgxvxhxgxwwwwwWWfgwfxwfWgvxxwGxhwWxwgwvwgxgwwxwhwwgwwgxxgxxxgwgvwwgfgdwwvwwwUSwggfwwxvxxvwwwwwwwxwwwwxwwxwgxxwwwvwgfwgvwgwwwwwfxwfhwwhwwvwwwgwvwxwxvggwwwwwwwwwggwwxgwgwfwwwwvwwvxwvVwwwgwwxxxvxgvvwvwwwxxxvwwxxxxWwwggfwgfUggvwwwxwwgvwwwuwwxwwwfgwvwwgwwwxwxxwxwwvgxvwxwwwfwggwvvwwfvVvwwxggxwgwwwwwwgxwgxwgwxwwgwxwxwxgvxgwvwwwfvvxwvwxxwxwwvxwwxwwxwgwvwvxffwwxwwgwwwwwwwwwwgvggwwvwvgwxggUwwwggxxvxwxwgwwwwwwxxgwwfgwwwgfwwvwwwvwwxvgwxxxxwxvgxwvxhwxhwvwwxwwvwwGxvwwwvwxwwGwvwgwwwgvxwwgvxxwwwwwwwwvwgwwvxxwxwxxwxwxxffwwxwgxwwvxwvgvwgxwgvwwxwgxgvwvxxxguwxwwwwwxvwxwgxwwxvxvwwwwwwfvxgwvwwwxxgwwxwwwgwgwwwxwxwxwwwggvwwxwgvxxxwxwwwwwgvwvvwvwggggfwwgggwggxxvwwwwwvwwwwwwwwwxwwwxxwwxwwfvxwvvwgwvvwfwwwwxvwggwwwwvwwwwwwhvwwxwwwwwwxwvxwvxgwvvwggvwfwwgwfwfwwwwgwxxwwwwwgvwwwwxwwwwwxvxhxvwvxxwwwwwggfwwwwxfwfwggvxxxwxwwwxxxxwwxhxwwwxwxxwxwwxxxwxwxwxxgwwgggvwggwwwgxxxwxvxxxxwgxhgxxxwwhwxggwwxhxxwwwxxwxwwggwwwwxxwwwxxwwwxwxwxxwxvxhgvxxgvwwgwxxvwwvwxwwwxxxxwgwxwxwxwxxxwvxwwgwwxxxxxwxxwwggwwwwwwwwwwwgvxwwxhgwxwxwwwwwwxwxxxwxxwxwxvwwwwhvwwwxhxxxxxxwvwgxxxwvxxwxwwwxwxwwwwxwxwwwwwxwwhwxxwwwxxvwxwxxxhgvwwwwwwwwwwwwxwxxwxggxwgwwwwxxvwwwwgggvwwxwwwwwwxvwxwwwwxxvxxxxwxwvxxvwxwxxxxwxxwxwwxxxwvxxhxvxxxhxxxhgxwxxxxwvwxwwwxxxxwxvgvxwwwwvxwwwwvxxwwxxxwwxxxwgxwxxxxxwxxwwvxxwwxwxwxxxgvgwxxwxhgvwxxvxwwwwwgwxxghvwwggwwgwwwfwvgvwwwgVfvwwwwfwwgvfvwwwvvxwxwwwffewwwvgwvwwgwxwwvwxwwfgfWvdveuguwwfwvgxwffhxwwwwwwgfVuwwwgwwgvfvwwfgvwxwwwFuUehwwxxfuvwWwgxgwwvfvuwUvgwgvwwvvxwgUgWvwVdvvwvwxxgggwwwwvvwwvwwwwxgfwvggwwxvfwwgwvxwgefuvfwgvwxxwwuvwvhvwwwwwxxwwwgwwwgvwwwvwwwwxhwxxhwxwxyvwgfggvVVwgxgwxxwwwwwXXfxxwhwwwwvVfwvgWfwwwvvwxwwwwxxgwVvfwvWwfxxxxxugvwwwgwwwwwgxgfgwwhxhwhxfxwxgwwgwvwgwxwvvwhwwWhwvwxwgwwxwvWxwwxgvggvwggwwwgvfwxxwfuvwwwwwxxwgfggvwwwwgxwwwwwxwgwxxhwxwVufwVewwwwxxxwgxxWvxxxxxfwwhxvvwwwxxxhwxxxuwwwwhgwgvwwwwxwwxwwwwwxvwxwxxxxxxxevwgfVWvwfWvfwvwgwwgwxwxxxgvwxwvwxwxwxxvwwwgWgwxwwwvwxwhgxxxwxwhwxxxwxxxxxggwwgGfvhxxgwwggwwWWhwfxwwwwxgwfxxxxwwxwxxwxxwgxfwgvwwhgwfxxwwwxwwwxxxwUvwxxvwwGwxxewgfwwvvwfVvvvvwvvwwuevvwvwwfvgfffwvvvwwwwggewvwwwhwvwwfdwgeewvwevwgfwwvgvvvevwwWwVefWwwwgvfwwwwgwfwuwwvgwwwwwxgwwwwwUvgvwvvvwwvwvfwdgvvwwwgwvwwfwwwwwxvVwgwhwwwvhwgvugvvuvwwwvfvfgdhvgfwxwwwwvvuwwgwwwgfvWwfwwfwwvwwxwwwwxwfwgvVwwwwffwwggvwuvwwwfhgfwwwgvwwvxwxxvwgwgvvWvxwxwwwwwxgwgvvxwgxvgwxwgwwwWwwwvvgvhgwggwwgxgxwvFxGfwghwxggwwwwgwvwvvwxwwvfwgvwFgXwxwwwfwxxhwwxwfgvwGwfxwwxwwxxwwwvwgwggwwwwwVhWvwwgxwwwwgxgwwxvfwxvhgGxvwvxxwwxwvwvvggwwwwgvvwwwgvwxxxwwuwgwwwfwwwwwxwWvfvwwvwwwwxgwxwwwgvwwwwxgwwwwhvvvwwvvwgxwhxfwxxxwwvgwxwuvfxwvvxxwwwwwfuwwwwxxxvxwwgwwgxwxxwwvvvhxggwwwwxwhvwwwxgwvwwwwwwwxwwvxvgwwwvgxxvwwvxwvhwxxxxxxwevwwwwwwxxhWwhgwgwwwvxhwwwxwwhxgwwvwxxwwhhvxxvgwxwwhwwWvgvwwwwgwwwxwwwuvvxwxwxwgvwxwgvvgwvxwwwxwxwwwwwwwxwvwxwwxwxguwxwwvxxxgvwwwwhxwwwwxwxwwvxwxvwwwxuwgvwwgwgevwwgwxgwwwwvwwxwwxwwvwxxwugfwwwgwwwvxggwwwgwgUvwwgwwvwxWewwfWvvvvwwxwxwevwgwgwwwxvwwvvWwxwvwwhxwwwwfwwwfwxwwgwwwevwwwwWwvwgwgggvwwwxwwwxuxwfvvwwwwvxwwwwvgvvvvewvwwwwwgwvvwWwxwgwxgwwwwefvvwwwwwxwwwwgxwvgxvwwwwxxvwvwghvwxvwgWVwxhggwwgwxwvvwwwwwwxwwxVvwgwxxwwgwwxxxwvwxxgfwxwwxxwxvgwVxxgwxxxxxwwwWwxwwwwwXwwwwwxwghgwhxWwwgwwwwwwwxxwwwvgxwxwwwwxwwWwwwwvwwwwxwwxwxwwxwxwwWwwwgwwwxwxwgxgwwxwxfwvfwggwwwwwwwgwwhwhwvwghwwwwwhwwwwwwgwxwwwwwwwxwwwvwwxxwxwwxwgwwwwgwxwxfvwwxxwwvwgwwxxwxxwwxgwghhwxxwwxxgwwwxxvwxwwWxwhxwwwxxxwxwxwwwvxwhgwwwgxwxwxwwvwwXvxwxvxwxwvwxwwwWwwxxwgWfwwwwxxgwwxxwwwwxxwwwvxxwwxxwwwwwgwxxhwxwwwwwwwxxwxxwxwwxwwxxyxwwhwxWwxgwxwWgwgwgxhwWwxwwxwwvwxwwwwwxwwwxuxwwwwwxxxxwwwwxwxvwwxwgwxxxwwwggwxwxxwwgwwgwwXhxVwxuwwgwwggwxvgfwwwwwgvwggvwvwwgwvggegxwvvvvvwvvvgWwVwwwwgwwgvxfwfwwwfwwgvwwwgwwevwxxxggVtffufguwfwvwvxfvUgxgvwvwwxxgwgwgggFSwxwfwvvwvwfgVwvwxwxwwwwvTufwWwvxvxwwfuxwwwwxxgxwwgVTwvvfwgewwvxvwUggwfgxwxwfvVEuSfwwWvwvwwxwxgvfwvwwwwwwvwgfVvgfgwfgvvgwgvxwwgwwwfwwxwwwwfvwwgwffxxwgwwwwwwwvwxvwwwwwwvwgguwwxwhhhwgwxwXwwgghwVvwggxgugwwwXwwwwgwwwwggxwwwwgewvwvwUdwwgwwvwwwgwwvwvwfexwxwxvxwxwxxwwwwwggwxwwvfwwwwfuvwwwwxvwwwwwxwgwhvfggVwwgwwwwwwxvwwwgvwgvwwvwvwgfvxwwwvgxwgvwxWewvwfwwwxwxwvwwgwxwwwxxhhwwxggvwfwgxxvvffxwwwwxwghvwwfgwxxwwxwwxgxwwgwxgxxvvgxwxfvwwxwgxhwxgvgwwxwwwgwxxwxwwxwhwwxwgvwwWfwfewwwxgxxwwwwvggwvxwwwwwvwxwxxwwwxgwwvhwVxvfwwwfwgwfxwwfgfwgwwhwwwwwwwwewvxxxwxxhwwvwhxgwwwwxggggwxwxxwwwxvvwwwxXxfwxgxxwwwxwwggxxxxwwxhwwwXgxwfvwgvxwwwvevxwwgwvwwxhvxxxwhwxwwwfwxxwwwwxgwwxvgwwwxgwwwwwfwwwwxwwxwgvwwfVvxwwxwwwwwwwvxhwfwwwfvwwvxxwgwwwxgvffffwwwwvwwxegwWwwwgvfwfvwwgfwwwwfgVwwwgvwUvfvwwwwwxgvwvwwwvwwwwgwvwwvwwxwggwgwxwxwwxVfevwwwvwgwxxwwvwgwvwvwxxVefgWxwxvwvfwwxwxfgwxwwwwwwwwwwxgwwgvvgfgwwwxvwxxwwwgvvwwxxvwwxwwwxxxxxfwxxwxXwxxfwwwxxwggwwxxwwfWwxwxwxxxxWwfgxxwwhhwyxwwgWwegwgvxwwxxxwwxxxxwgwwxxgwfwxwxwvhwgwxwgwwxgxxwwwxwxxwxxwvwwwwwwwwwwwwhwwwwVvgvvvwfvxgxwwgwwwxwwwxwwhwgfgwwgxxWvegwwgwwwwxvwxwwwwwxxxxxxwgvxvwxwhwxxxxwxwxvwxwwwwwwxxvxhVvvxwxxwwxgwwwwxwwwgwwgxxwwwwwwvxxgvgWwegwxxgvvwwwwxhwwwxxxwhwwwxhxwgwfvxxxxwWvgwyxwwxxxyxxxwhxgVgvxwwghgwwwxwwxwwwxxfxwxxxwwxwwxxxxwwwxhyxwwwxxxwxfwwwWxwxwfwfgWxvweVgvfwvwhvgvgggvvwguvvggvgwwwfvugVfwwvfgwgxwwfwgwhvUwxfVfvghweVwgwfwfwgwwwwXwfFwvfghWvxwxwguwVwwgwhvxwgxxxxxwwwgGwwWfwwwwWwwwwwgfwwxfwwWWvvgwwxwxwfvvxhgwxwwwvwgwWvghfwfwvxwwwwfvxxXgwfvwwgfwuwwxwxwxgwvgwwwwxwvxwwxfwVgvwvwgfgvwvwfwgwfvfxgwwgwgwwwfwwwvvwvhwwwffwwvvffwwwwxxxgvgwwvfwgvgggwgffwgxhxggwgWhXUwWwgggghxxwxwXfXwVgxhHfxXfYwvgwWgwwwwwwgfxxwwwxwwwwgwxwxwwxxwwxxwwwgwxxgfwwwwvwhggwhvxxwghwvwxxwwfwxwvgwvwwxwxWwwgxwwxxxwguwxhvwwXfwwggwxwwgvwwwwxxvwxxwwwgxwwxgWfxWwwxwxWwvxwxhxghwwxhWgvwhgwxwwxhhwwwxwhXgwxhhXwxxwwwxwhwwxwwwwwxxwwxxwxwwwxwxxvxxwxwxxxxwwxxwxwwwwwwvwwxwxgwwwwwwwWguwWwvxxHwfgwwwhwwwxxxxgWwvxxxxxxxwwxwhhxwxwxhxwwwggwgwxwxxhggxfwxxhfxxgwXwwvxxwxhgxhxwwWwwxhWwWggvHxvhwwwwwxxwwxwxwxxxxxxxwwwwxwwxxxwwxwwwxwwxwhfgwxgwxxwggxWwxfwgwwfwfwffUwvgwwvwfwwwwwvvwwwwwfwffwvgvxwvvvwvwwxfeuvvfUwvfewufvvgfwwwwvwwwwwxfffvgvwwwvvwwxxwxwwxwffUgfvevvgvwvvufvwgwfvwxgwwvwvwwwvxxwxwfvwgwxxefuugwfgwwwwwwvwwwwwggfwxwvvwwxwgwwhwwxwwwwxxwwwxxxffuffggfVfwvwffVvvuwfwwxVffvvvwwwwwgvvwwxwwxxxwfguugwvgvvwwwvvwwvwxgwwwwwwgwwwwxwvxwwvwvwwxvwwwwwvwxxxwVguvwwvwwvwwxggvffwwwvwwwwwwwwhwgwwwwxwwwffwwwwvxwgxwwwwwfgxhwgxvwwwwwxwxwxggwxwhweuuwvvvvwvvvfwevwwwwwwwwhfgwwvwwxwxfwwxvwwxegfuvfgvwwwffvwwwwgwwwwwvvwwwwvwgvwvxfgvvvuvvvwwwwxuvwwvxwwwxwwvfgwwxwxwwvwxgwgxwwwxuvwwwwvvvgwwwvwwwwwxwwwwxxwwxwwvwxwxeVfufvvgvfwwwwwwfuggwwwwgwwwwwvwwwwwwwwvwwwvvgwgwwwxfuvvvgvvwwwfwwvwgwwxvgwxwwvwwWxwwxwvggwwwvwwwxfuvxvwwwvwwxuwvfgwwwwwxgwwxxxwvwwhxwxwwvvfwwwwwguwhhhwwwvwwwwxxwwxvwwwwuffwfvuvewvfffufvvvvfvwffUwffvwguvwfvvvwwWuvvxgwevvvwvevvfUfvvfvgvwvwwWwefwwvvwgwwvguvwfwwwvvvwwwwxwxvvxwfwwwwfvwwfUufwvwfgvwvwgwvwwhwwwvwgwwvwwwwwgwwwwgwuwuwfffwvhfvvwxwgwwxxwwvwwwwwgwhwwwhggwwggxwVvefwgvwvVeufvvvwfgvwwwfvvwwwwwwfvvwwvwwwwvwwxxwvwwxwgfwhgwwwvfwwvwvwwwwwwggxwwwwWwWwwxwvxwwxhgxxgvxxvvgwguwfwwvwwxvfgwxwwgvwwwwxwwwwgvxwxwwwwwwxwwxwwwwhwgwwwVwvwvwvgxxgxwwwwwhxwxxgwxwwwxeevgvfwuugfvgvvvfvwvwwugvxwwwgwvvwwwvwwhgwwxwwwwwwuwwwvvvgwvvwffuuvwwwwwvwwwwxwwwwwhwwxwwwwvwwxuwwgwfxwwwwvhwgvwwwwwxhwwwwxwwvwwwwxwxwwxgwxwxxvwwvwhwwwgwuwwxwwgwvxwxwwwwxwwxwwxxuUfuvvuwVvfgfvwvvvvfwvwvvwfvxwgVwwwwwwWwgwvvwggxxwgvgvvwwvwwwwgwgwvwvwwwxwwgwwwwwwxxvxvuwxwxwwxwxuwwwwvxwwgwwwgwwgwxwwvwxwwxwxwwhwxxhwxxwwwwwxxwwwwwwwwxwxwwxwxwxxwuwvwVwvwewvwvvvevwxvvufvwwwwvvwwwwwwwwwxvwwwxwwwewvwgwVvuuevveewggvwhwfwwwwwfxwwwwwhwwwvxxgvxwxwgwvgvvvggvwgwgvfwxWvvvfxxvwwwwxwwxwxxxxxwxxgvvwvvwfwvvwwwwwwgwwxwvwwxwewxxxxxwxwxxwgwwgwwgwvgvfvvwggVwwwhwgffgvwwwwwwwwggwwxxwvwwwwwwvxxxwfvwwvxwwvfvgwffxwgwxxxwwggxwgxxwwxwwwwxxxxxwwwxgvgwwgwwgwwwvwwxwhwvwvxxwvwxxwvxxwxhwvxwwwWvwwwgwwvwwwwxxwwwexwxwgxxxxwwvvvvvvvwgfvwvwwwwwvfvvwwwwwwwwwxwwwwwxwwwxxwxwwvvvvvwwwvwwwwwwwxxwwwwwwwwwwwxxwxggvwxwwhwwwvwwwwxwgwwwxwwwwxxwwxxwxhxwwgwgwwwwwwwwgxxxxhxwxwwwxxhxxwxwxwwvgwwfwwwfvwgwggvfWwfWvfvvvwwwwwxwwxwwwxwwxwvhwwhxwvwgvWfwwwwwwgwggxhxwfvwxwwwwxwxwwxxgxwvwwwxwwxwfxwwgwwxxhxwxwxwxwxwxhwxgwwxwwxwwwwvxxxgxwwwxwwwwwwxxxxxxtgvwvwffvvwfVevwvvUwwwwgVetvvwwvwvfvwwvwxwggfwwxxwwxwvvUwvwgVetwwvvgvwgwwwgxwwggvwwvwwwgwwwwwwwwxwxxwfvvwgVefgvwwgVetvvwwwwwvgxwxwwwwwwwxgwwwwwwwwgVetwwwwwwgwwwwwvwwgxxwwwwwwwggwwxwwxxxwxwwvfwwwgVefwvvwgwwxwfxwwwxwwuvwwUvwxxvxwwwvwwwvuvwwwwwwwwwfgwvwwwwuwvxfwxwgxxvgwwwuwxxwxvggwwxgfxgxxwfVevwvvwwwxwwgwwwuwxwwgxxxwxwwvgwwxwgwhwxxwgwvwxwwuvwvxxwwxxgwwwxwwwxwgxxxgwxwxwgvwfvwwwwwggvvxxwxxwwwwwwwwgxwwwwwxwgxwwwwwxwgfvwvwwwgwvwvwwwxvwxvwwvwwxvwwxwwxxhwwwwwwwwwwwwgwxwwwvgwxvwgwwwwxwwwxwwvxxxxwwvwwwxwwwwhwxxvxxxwwwwwwwfxxwhxwwwwwxvwwvUvwxxxwvwwwwwuwwxxwwwxgvgwxwwvwgxwwgwfwxxwwwwwgwuwxwxvwwwwwgxfxwwwwwvxwvwgwxxwwwwwwwwxxvxwwxwwxwxvxvxwwxwxwwvwwxxwwgwwwwwwwwwwwwxxxwwxxxxxwwxwwxxwwwwwwxuwwwwvwvwwvvvwvwvfvvfuevfvvwwuwwwwvgffwgffwwwwvwvuuvvvvUefVefvuufvvfwwvwwwxggfwwwvwwwwwwvwwxwWVfvVgewwxwwwwxwwxwwxfvfvwgwxxwfffgxwxwwwxwwxwwwwgxvwwxwwxwgvwwvwWwwvwvuvvwuuvwuvvvwwwfwvwwxvvwvvvvwwxwwwwwvwxgwwhwfwvvfwwwvvvwwvvwwgvxvwwwxwxxwwhxvwvgwwwwwwwvwxxvvwwvwvwxwwwxxxxxwwwxwwxwxwwgvwwvvwxwfvwwwwxwxxxxxgwxwwvvwwwwVffvVgewwwxvvwwwwwwwwwwxwvwwvwxfgfxwvwvwxvwwxwxwxwwwxxwwwwvwxwwxwwwxxwxxwxwxxxwxwxwxxwwxwwxxxxwvwwwfwuvwhuuwvvvwvwvxwwwxxwwxwwwvvwgwwvwxgwwwwwwwwwwxxwwvvwxxvwwwvxwwwxxwwwwwwgwfwxhxxxxxxxfwxxwwwwxwwxwwwwxwwxxwxuggwwvwgutwwgfffeUvfUwefevvwgwevvwwgewvvuugfvwvwvwuvxvwfvffvfVvevuwvuVggfvvwwUwvfewfwgugfwfgvguvvxfwvwfvuVgwffwwuwgvwwwvwvwgwwvxfffvgffwvfwfwvwfvgvgvwgvwxwgwfwxgxgxvwxwwvwgvwwvvvwvwwvgvgevVxgwVvugwgxtwwvwvwvwgwwwfvwvhxwWgwwwfvufwgvwgvgwvweEUvwvwfvuffwwwwvVwgwvxffvfwxwwvwfvxwwxUfwgxwfvWfgwwghwggUwhwvvgxggwvvgwxgfvwwgwgwggVghWfhwwvxgvvwwwwwfvhwwwwvwuwggwwvgvwfggwgxwwgvwxwwfxfwxwwxwvwvwgwhwwxvwxvwhgwwgExhfwwxuwwwwwxgggxvvwhwwwxxvwwwwwwxVvugwfvvfwvvdVffwgvwfvvwwhvwvwvggwwfwwwvwwwwwwxvwwvwgvuwvugvwvgfwWwfwwwuwwwvuvwgwxwxwwwvwwwguwwwxeggvvvgwwxwwxgggwxwwxwwgxwwfvgwgwwxwxxwwxxgwxxxwwwxwvwvwwxwwwwwwxwvvgwWwggwwxwwwwxxwwwhwgxgxfVvvfvvwvfvwwfeVVwgwfffwfwfwgvfwWwgwwwwwxwwvggggvvWwvvxwgwfgwwxgwwwwwwwwfhgxwxwwfvvwwwxxgggxwxwwwgwvvfgwwwwvwwgvwxwxwwwxwxwwgwgwwwwwwggwxwxwwwwwwwwwxgwwwwwwwvwwwwwvxvwwxgwgxwvwwxvxxwxwwwwvwggwxxwxwxwwvgtfgwggffvgfwWffuwwvvvwwwuwvwwefuwWfduwwxwxwwgfdvwwwwwwxxvfgfwwuwVffufwwwvvwwwwwwvvwxvVfduwwwgwvwwgwwwwwxxvhwwevugVfduwxwxwxwgfdvwwwwwwxxwwvwgwwwgwxwwxwwxwwxwwWfduwgwwwwwwwwwwwwgwwwwgxxwwwxxxxxwxwwwvwgwvwgwuwvwgvgvwgwwwevuwgvfvgfdvwxwwwxwxxwgwwwgvfvwwxxwvwwwwwwwwvwvxvxwvwwxwwgfvxxxwwwxxwxgwxwghvfvwxwwxwgxwgfdvwwwwgvxxwwvwwhvfvwwxwwwwwwwwwwxwwwwxxxxwxxvwwwwvwwwwwgvfvxxxwxwwgwxgxwwvxwwwgwgvxwwxgvwvfVffuwgvwwwwuwvwvwwvwvxwxwwwwvwxwwwvvwwxwwxwWffuwvvwwwwuxwvwwvwwwwwwwxwwwwwvwxwwwwwwvwwwwxxwwwxwvwwxwhxwwwvwwwwwwxwgwwxxwxwwwwwwwxwwwwwwwwhxwxxwwwwxwxxxwxwxxvwwxgwwwwxuwvwvwvwvxxwevuwgfvuwwggwwwwwwwwxwxwwxwwwxwwgxwwxxxwwwwwwwwxgvfvwxwwxwgwvwwxxxxgwxwwwwwwvxwwwxvwxwwxwvwwgwwwxxvxwxxxxwxwvxxwwxwxxwwxxxxxwwxwxwwxwxwwvwxuwuvwwwwfwvwwfvvwxvwwfwfvwwvwvwwvvwfwfvwwwwwwvvvvfvffwvfvvxwffuwwxvvvwfwwwwwgewwwvwxwxwxxgwvxxwwwwgwwgffvwvwwwwwhweewwwwgvxfffhxxwwwuewwwwwwfvfuhwgwxxwwfvwwxvwwxxxwxxxxvwwvwxwwvwgwwxvVfwwfwxwvwwwfwvwwwhgvgwwxwgwwxxwwwwwwwxxwwwwwwwwwvwwwwwxxxwxwvvxxwvxxwwgwwxwwwwwwwwwvwxvwwwwwwxwvwxxxxxwwgvxwwwwexwwwxwwxwxxwwwxwwgvxwxxwwwvwwgwwvwufWvwgWwgwhvwgwwwwwwwwxwwwxxwwwxvuggwxwwuwwwvgwvwxxwwwwxwwwxwxwxwxwwWwwwwwxwxwwxwwwwwwwwvwwwxgwxxwwxwvhwxxwgghxgvwwxwxwxwxwxxxxwwvwvvvwgwwVvvgwvvwxwwwvgwgwgwxvgwwgwwwwwwwxwwwwwxwgwxwwwhwwwwxwvxxxwxxgvwwxxwwwxwwgwxwxwwwwxxxxwwhxxxxwxxwwxwwwwxxxxxtvfwvffwwgUgwvwvwgxfwegwwxwvxwxwvvwwwwfewvwggwwwgwuwwwwxwvfvvvwffdgwuwvgfwgvggwvggwxfwvwgvvwwgvdgwwwwwwxwwwwwwvwvvwvwwwWVfwvwwgwwwxvgffwvwwwwwwvuWgwwwwwxgxxwxwwvfgwxfwvwwwwxxggxwwgwwgWwxvvhwwwwwwwhxxxgwxxwxgvwvwwwgfdwwwwfVgvgwwwgvhgwffwxwwxWwgvdgwwwvwwwWxwgwwgwwwvwvwgwhwwwgwxwwwwvggwxxwwwwwxxggwxwwxwhxwwxwxwwgwgxwwwhxwuvvvwwgxvvwwgwvgxvwxwwwwxvxxwwxwwhwxgwwxwwxwwxxxxwxwwwWxwWwwwwwxhxhwwxwxwxxgwwwxxwfvwvwgwWwwwwgwwVwxgwvwvwxwxwvwxWvwwxwuwwwwwgwxwwfVwwxgwvwghwgvwwvwgxwxxwfvwwwwwwwwxgwxwxwwgwwxxwwwwwwwgwwwwvxwwwgwxxwwhwwxwwxwwwxxwxgxxxwvxwwvwwxwvwxwwxxxxwwwxwxxwxwwwwxwxxxwxwvwffvxgwvxwwFvhvhwvwgwwwfgvwxwwxWwwwxvwwgwwwxwwXwwwwwxgxwxgwxwxwwwwwwwvwwwwwwwxwxxxwwwwwxxxwwwgfxxxxwwxwvwwwwwxwwgxwwwxxxxxwwwwxxxxxwxxxwxwwWxgwwwxxxwwwegfVveffwffgfvwvwwvwwwwwwvwwguwwwguwgwvwwvwwwwvwwwwxvvwffevvwvvwvvwwwwwwxwwwwxwwgfgvevwgwVgwwwwxwwxwxwwvewfwVuwfevvWwwwwvwwxxxwxwwwvwwvghhgwxxwvxxwffvvfufwwwvwwwhxwwxwwxwxwwwfwwwwxxwvxwvwwxxvwvgvffvvwffwwwwfgwvwwwuvgvwwvgwvfvvwwvwwwxwwgwvxxgvwwwwwxwwwwwvvgxwwgwxwwwggxxggvxxwwvwwwwhxxwwwgwwwvwwgxwwgvwxvwwwwwwwwwwwwxxxwvwwxxwxwggwfwwvwwwxfvxhwvxxwwwwxxxwwxxwfwvwvffuwwwwwwwwwvwwwvxwgwvgwfxwhwwwwxgxwxwxxxwwvvwvvfvfwwwwwxwggvgvvwxxxgwxxxxhwxwvgwwwvvvwxxwxwwwwxxhwxwwwwwxwvxwxxwwxvwwVvwvfwxwwwwwxwwgwxxwwxwxwwxwxgwwuwwVvvwwfvwvgwguwgwwwwwxwwwwwwwwwgvwgwwwgwvxwgwwwwgwgwxwxvvvwwwwxwxwxgwwggxxxwgwxwwwvxvwwwwxxxwwxwwwvwxwwxxwwwwwxwxwxwxxxwwwxxwxwwxxwxxxwwwwwhxwwwxvvfwvvwvwgffvwwwvvwwfewwfwfwwwwvwgwwwvwvvxvwwwwvuvwwvvvvvvwwftvvfvwwwgwwwwwvwvvgwwwgwggftvvwwwgwgwgwwwxwwwwwwvwvgWvwggwgvwwgwwwvwwwxwwwwwvewuwxwxwwxxwxwxvuwwgwwvwwwwwwgvwwwwxxhwwwwwwxwwwwxxwxxvwwwwvwwvwwufwvuwvvgvwvwgwwfwwvwvwwfwwFwgvuxuwwgwwwwwwwwvwwwvwvwwwwfwwwwwwugwwwwxwwwwwvxwgwwwwwwwxxxuwwwxxxwwxwgwwvfwwgwvwgwvwxwwwwwgxwvggvwxwwxxwxxwwwxxwwwvwvwwwwfwwwwxwxwgwwwvgxvwxwxxxwwwwwgvvwgVvwwwwwwwgwwwwvgvwwwvwgwvewuxwxgfxgxwwwwwwwwwvwvwvvvwvwvwvwvwvvwwfxxwwwwwxgwxwwxxwwwwwwgwwxwwwvgwwxwgwhwhxwxxxwxxxxxxwhwxwvxwhxxxwgfwwwwwxxxwxwxxwwxwvfwdvwvvuwwvwvwwwgwwwvwwwwwwwwwwxxuggwwwwxxwhwxwvwwwwwwvwwvgwwfwwhxwwxwwxxhwxvxvxwwxxhxwwwwxvwwxwwwxwwwxvxxwgwwwwxxwxwxxxwxxxxxxxxxxwwxxwxwxwwwwxwxwwwwwwxwwxxxxxxwxwxxugffwvwfwvwvvvwfffgvwwxVguwxwffvfgWvugxwwwxwWVuwwgwwgwwfvfffWvuvwvwwvwVWuuwwwwwwwwwvgvwwwwwwvgwxgwxfgxgwxwhxvwfffvfwfgWfuvwwvvgvxwgwwxwWWuwwvwwwwxgwggghwwxxWVuwvvwwvwwvfvhwggxwxxwwxwxwwfgvwwwwxwwhxwwxwwvgvvwvxwwwwwffwvwVguvgxwwvfwhwxwvggfgvwxwwwwggwxwgwwwgvwggwwwxwvwwwwwvwvvwwxhxwvxwwvggwxgwxgwwwwxvxwxxhgwxfxwwWguvgwvxgwwwwwwwwwxgvgwwwgwwwxxwvwwxhxxhwxwwwwwwgwwwxwwvwwggwxgxxhgxvwxxwhxxvxhwwwwxwxxxwwvwxvgvvwgwwgvwfvvvgwwwwwwvwwfgwgVvuwwwwwwwgwwwhwwwwxxvwfWvvgvvwwwwvxwwxhwwwvxwxwwwvwvwwxwwwxwhxwxxxwwwwxwvvxwwvwgwwwgwgwwwxwxwwvwwwwxhwxwxwwwxxgxxwxvxwwwwggwgwwxwvwxwhggxxwxvwwxwwxwfxwxwxgwxwwgvfwwgvvwffwvwwgwwwfgwwwgwwgwggwwwwwwwvwwwxgfgwwwgggxwwgwxwwxwxwvwvwvwwwwwwhhhxxwxwxwxwvwwwwxwwwvwwvxwwgwwwwwwwwxggwwwwwwwxwwwxxwxxxxwxwxxvwwwwgvwgxwxxwwwwwxwwxwwwxfxhgwxxuwvvwvwgvvwuvuwwgvgvwvwwvewgvwvfvugwvwwvgwvwuwwwwwwxwwwwetvwwwvvfwfwwwgguuvwwfwgwfvwfvvfwwuwwwvwwfwgxgwwvgvffutvwvwwwgvvfwtxwwwwvwwgwwwwxxwxxxxwwgvfwwgwfwwwvvgwvxgwwwgwwxwwxggwvwhxwwggwxwvwwwvwwvvvwfuwwwWvvuwwvwwuwwvfwvtvwvvxgwVwvwwtwfvvwwwgwwwwwwwwgwwgwgwgwxwwwwwwgwgfwgffwxwwwwwgwwwxhvgwwwvwvvvevvwvxfwwwwuwgxwgwwwxvxhxwwwwxwwgwxwxwwwwvxvggxwwwwxxwwxwxwwwwwwwxxgwxxwwwwwwwvgfvtwwwvwvfwdwuwwvgvwgwxwwwwwwvwvwwgwwxwwguwwfwwwvgwvhwwwwvwwwwxwwxgwvwwwwgxxxxwwwwwxwxgwgwwwuwwwwwwwwwwwwxgwwwwhwwhwwhvwwwgwwwwwvwxxgxwxvvwvvdwvgvwxvwwtwvvvwuvwvwvwwgwxwwxwwgfwwgwxuxwwfwwfgfwwxwwgwxgxwgwxwwwwwwwwwxwwxwxxwxxwwwxwxwxgwwwxxwwwwxuwwwxxwwwxwwvxwwgxwwxxwwwwwwxwwxwxwwwwuvgwvvwwwwvwvwwgwvwwfvwwwvgwwwfvwwfvwwwwfwvvwfvvgwvwvwvvwvwwwwwgvvxwvwvwfvfxwwwwwvwwvVuvwwvgWfuvwgwwfvgwwwwwxgvwwvwgwwwvwwgwgvwvwwwgguuwvvufwuwwwvwwwfvwgwvxwwwwwvxwwxwwvwwwwwhwwwxwwvfwwgxwvxxwwwwwwwwwgwwwwvgvwgvwwVvuwwxwvwgwvvvwxvfuvvvwwvugwwgwwwvwxwfgwwwvwwwhxxwwxwgvwwwwxwwgvfwxghhwwwwxwwwwxgwwwwxgwwwwwvwwwxxxwwwvwwwwwwxgwxgwwwxxwwwwwwwwwvwxwwwgwwwgxwwfxwwxxxxwvwvvwvwvffwwvwwwwwwxwvgguwvufwugvxgvwwwvwvxwwxwhwwvwwwwwwwvwwwwwwvwwwwwvwgwwxxwwwwwwwwwxwwwxwvvwwxwxxwxvvwxwxxvxxwwwwwxxxwgxwwvwwwwwvwwxwhwxxxxwwwwwwwwweuvwwwwgwxxwvuwwxuwwvwwvwwwwwxwwwfvwwvwwwxxwxwwgwwxhwxxgwwwwxxwxvwwxwwwvxxxxxwvwwxwxwxwxwxxxxwvwgxwxvwxxxxwxgwwxwxxwwwwxhgvwgfvfewgwwfVfvwwwwvfwvgvwwvvewwwggfvwwwwfuvxwwwwgwfxwwxwwwvwwwwwwvvwgwwwvuwwwwgxwfgwwwwwwwffwvWvfwwvvwwvxwwwwxwwwxxwwwwwxfwgwwvgwvwwwwwwwggwwwwwwwxvwwwwxwxxgwwwvwxhwhxwwwwwgwwwxwwwwwgxxwwwwgxxwxwwwxwxwxwvwwwwwxwwwwwvgfvwwWggwwwfggwgvvvgvvgwfwgwwwwfuvhWvwxfxwwWvgwgwvwwwwwuwxxwxxvxwvwwwwxwgwgxgxxxvxwwxhwwwwxwwwxxwgxxxxwwwghvhwwgwwwwgvxwxxwwxxwxwxwxwwxwxwwxwxwvxxwwxxxwxwxwwxwxxwxxwxxwwwwxgwxwgwwgvwwwwxxwxhvwwvgwuxfguvvWwgvvwgvwwwwuggwfwwwvvwwxvwWvfwwwwwhfxgwfWwwwgwwwvwwwxxwgxwwwWvgwwvxgxwwwwwwwwwwwxwxxgwwwwxxwwwxxvwxwwwwwwxxwxxxxxwxxwxxwwxwxxwhxxwwwxwwxwxxwxwwwxwwgvguvvwxgxwhwxwwwwwvwxxwuxvwxvwwvwghfgwwwxgwwxwxwxvxwwxxwxhwwxwxxxxxxxwxxxhwhwwwxwwwgxvwhwhwwxwxwxwxwxxwxwxxxxxxwwwwxxwxwwxwwxxxxwwwwxxxwwwuWfwvfuggvxvgtwgvugfevvWvwvwvxfvuffffuwfgwuufvvwvvewvwwvvuvvveguwgwuvfvvffvvwvwvvgwvvwvffgvtgvvvfwwwwwvwfwgwvwwwwvwfvwfuVvwwwwwvffwvvgvgwwwwwvffvvvuwwvvwwhvuguvwwxwvwvwfvuwwwwgwfvvvwwwwwVgvfeuwwwwwgwffwvgwxwgwuxgvfvtVgwVwvguwfwwvffvwwwfuwgxwweVfvVwfvgvwwwevuwwwfwwwgwwwwxuffwvwvwwwfgwwfwwgggwwffwwfwxwVwwwfwWgwxxxffwwxwxgxwwxxwuvwfwVwgwxxvwVvvwwxvwgvwwwxwwfwgvwwuwwxwwxwvgvwgvvxvwwwwwwwwxvwwwxwwwggvwwwxwwwwxwhxgvwxwVhwwwwggxgwvwwfxwwxwwxVuuvvwuvgwwwffvvvvwuwxegfwfvvgwwvwxVvwwwgvwwxvwwwuwwtvgvvwwvwwwfwgwvvwwwwwvwvwgvwgwwwwwwgwvwwwvxxxwwwxtvvwwwvwvgwwwvVvvxwwvwwxwgwvgvvwvgwxwxwwwwwggwwwwfwwwvwwxwxwwwwwxwwwwwgxwxvgvwwwgWvwwxvxwxwwwhweffvegwgfvwwwwevffwgwvwwwxwxwgufggggwwgvwvgVugfwgwwwgvwvxwvxggvwwwwwxwvvgvwgggxwwwwwwwggwggwwxwvwxwwwwwwxwxvwwxvwwwwwvwvgwvgwwwwxwwwwwwwwwwwwxxxgxfwhwwwvwggwwxwxvwwwwwwwwvwwwwxxhwwwwwggxvgwhxuwgvuwfvwweFvfvwvwgeeeudwgvuwveUvvvvwfvwwvfVUuwgvwvvwvvgxggvwwwfufvugwwvfvuwVvuuwWfggfefdvwfvuwwvggvvwvwgWxxvgwwfwwwvgvvwwwuvgvguwfvuwfvgwvggwwvwwxwwggwxwxfufwwvwgxxwwxvvvvgxwxwvgvwwggFxwwwwwwxwwxgxxwwwwwhxwhfwuxwWuveFwUuwgGvwvvvwVvugvgfwvfVwVwvggwwgggvveudwvgegVgggwgwwvwwwvwwggwwwwwwwgwwgwxggwwwwwgwwwgwgwwgvxxgVwxggwwwwwgvfwuwwwgwwfwuxwfgvhwxxwxwvwgxxwxwxwwwvwwvgwxxwwvxgwgvxxxwxwwwewWGxwxxxgvgxwvxwxxhgwxwxwuvfeweeffvvwfVffvuwEuwvWvxveevVuvwwgwgvwwVvfwvgwwwgvwvwwvfgffvwgwvwuwwwvvvfggvxgwwgwwwfwwwwxvxwwxvwxxwwwxxwxxxfwwwwwwfvggwwwwwwhxwwwwvvwxvwwgvwvwgxvvhwwvwwvxxgwwWguwwxwxxwxhwwwwwfxhxwwvwgwfwvvwxvwhwWvwwwwwevhfwwwgvvwwvvwwwwvWgfvwXfwvwgvVgfggwwvwwvxwwwwwhwgvwwwwggxggwvvxwwxwhwwvhwwwfwvxuvwwxwxwwwwwwfwxwwxwxxwwxxxwxwwwxwwwwwxwxvwwgwwwwvxwgvwxxwwxxwxxwwwgwxwvwxxwwwxwwwwggxwwwxwxwfwwfwwvvvuvVgvvwwwwwfwggfvVvwwwfwfwwvvwvwuwwwwwwwwgvvvwvwwvwwwwuvwgvwfwfgwgwgvwfxwwvwfvgwwxgwwwwgvwwwwgxwxwwwxgwwwxvvxgwvwvxvwgwgvwwwwVwwgwwvxgwwwvwgwxxwwwxwwhxwxwxxxwwwvwvwgwxwwgwwwwwxxvwwvwxwwwwwwxxxgxxwvwwvwwgwufvwgggwggwgvgwVwggWwgfwwwgfwwxuwVgvgfvwgvwxwwfxgxwwxwwwgwwvwwwwwwwwwgwwwwwfwwgwwwwwxwwwwhwxhxxxwVgvwwwwwxwVwgwwxvxwwwwwwwxxwgxxwwxxwwxwvwwxgwwxxvwwwwwfwxwwvwwxxxwxwxwwwVgwwwgwvwgwvwwgwvwWvwgwwggwfwvwvwvxVwwgwwwxwhwwwggfwwgxwxwwwwwwgxwwwxxvwgwxwxxwxxwgwxxwxwwxxwxwwwwvwwxxgxwwxwwxwwxxwxwxxwwxwwwxxxwxwwxxxxxwxwwwwxvhhgwxwwxwxwwwwwwxxwxwwxggvwwwwgvgwwwfwwgvwXVhwwgwgwwwwwwwwgxwwxxvwwvgwwgwwxhhxwwwwwwwwXwwwwwxwvvxwwwxwxwxxwwxwxwwwvxwxgxxwhxgwwvwxxxxwwxxwxwxxxxxxwwxxxxxwwxxxwxxxugwffeffufwfgUwwwffwwguvwvwVvuwffuuvvfvvvwgvwwwvgwwvwvgggeuuwvwfvefvwggffvvwwwhwwgvfvgfvvvvwgvvvgwfgxvvwwwxgwvwfwfgeuwvgvvvgwvwwwvfwvvxWwwwwvvvvgwwwwxvgvxgwwwxvwwwwwvvefwvxvfwwwwwgxxvgwvwwfWvwgvxxxgxxwwgwXuwxgwfvufuVeuvwggvgwwVfvwfwgwwwxvgwwvwvvfvwwwwwvwwvwwgwxwwwwwxvfvwwhgfwwvxwffxwvgwxwvwxwgewgWvxvvvwwwxwwwgwxxwwwgxwvvwvwfvvwfxfxvwvwwxvgfvwgvwwfwwxwxxgwwwwwwgwwxwxwwfwhvVwhgwwxwwwwxxwwWxwwgwwgwvwxwwxwwxWxxwwxxxxVvvwefevwvvvwfwwgwwxwwwwwuxxwvwggwwwwgvwwwwxwvwvvvvfuvwwwvwwwwwgvwvwgwvvvgvwvwwxxwvwwwwxwwuvfwwvfwwgvwwWxuwwxwxxxgwxwggxwwwwhhwxwwwwvvwwvwVvxwhwgxwwxhwxwwwhwxxwgwwwwwxwwefvfefffwfgvwwwgfxwwVwwvxvwegfwvfgfvwwwwwwwxvhwwvwgvwxvwxwwvwwwvVvwxwxvvwvwwwvxwwwvwwwgwwvxgxxwvwwxhxvwvwwwwxvgxxxgwwxwxxwwwwwxwwxWxxxwwwwxwwwwwwwwwwvwwwwwwwwxxvvwwxwwwwwwwwwwxwwxxwwvwvfvvufgfuwwvgwwwgguwwvwwwgguwwwwwvvwwwwwvwvfgguwvuwwvWgguuwwxwwxxwwvwvwwvgvwwwwwwwxwwwvvufwvugguwxwwwwvwwwwwwxxwwgguuwxwwwwwwxwgfuwwvWwxwwxxwwwwwxwwxgwwwvwwwwwwwwvggguuwwvwwwwwvwvwwwwuwwwvvwwvwwwwwwwwwffwuwwxwwxwwwwwwwxwwwxwwwwwxwxwwxxVwwxwwvwxgwwwwvxwXxxwwgguwwwwwxxwuwxwwwwxwwwwwwwxwwxwxxwwwvwxxwwxwwgwwvxxVxwxwwvxwwwwwxwwxwwwxwwwvwvgguuwwvwwvwwwwwwvvwxwwwwfwwwwwvwwgguwwvgwwwwwxwwvwxwwxxwxwxwwwwwwwvwwwxvwwwwwwwwwwwxxxwwwfwwxwxwwwwvwwwwwfxgwxwxwwwwwxxxxxwxvwwvwwwwwwwwwwwfwuwwwwvwxwwxwfwwxwwwfxxwxuwwvwwwxwwwwwwwxwwxwxwXxwwwwvwwwwvwwwwwwwwwxwwxxwxwwwwxwxwxwwwxxwwxwwwxwwwwwwwwwxugwwgwvfwwwvggfgwwwwwggwwgwWwfwwwgwVvxgxwvwgggwVwwwxwgwwWgdwxvwgwvgwwwwgwUgwwwxgwgwvwvxwwgwwwwwvxxwwwwvwvxwgEwfgvvfvwxvgfvGgxwwwxwwvxwwwwwwvwgwwwwhxxwwwwuvwvgwgwwgwwwuxwgxxwwwwwwwwgxwwgxxxwwwwxwwvxwwvwVguvwgwvgwvwvgfwgwUggwwwgwWwwvwwgwhvwwvgvgwgwwxgwgxwwwwvwxxwwwwgfvwxwxxxxwwvhgwwwwwwvxwwgwwxxwxxxxwxvwgwvfwwwwwwvwwwgwwxwwwwxvwxwxxxxwxwxwwwxxwhxwwxwgwwwvxwgwxxxwxwxwwfxwwxwvwwwxxfwvwfvWwxWvwvggGwfvvvgwwXwwgwgwwvxxxwxwxgwwwgwwxxwwwfwwfwwwwwwhgwwwwgwwwxwwvwxxwgwxwwvwwxwwgwwwxwwwwwwwxwwwwwxwwxwgxwwxgwwxwgxwwwwwwvwwwwwvwxwxwxwxwwwwwwxwwwvwfwwWvvwWwvxgwwwfwgwGwxwWxgggwhwwxwwwwwgxxhwwxwgwwvwwgxwgwxxvwvvxwxxxgxwwxuwwxwwwwxvwxhxwwwwwwwgwwwwxxvxxwwwxwxhwxxwxwvwxwxxxwxxwwxgxxxwxwwwxwhxxxxwwxxwxwwxxxxwxwwwxwwvwvvvwwwxwwgwfvvwfvvwvwuwwwvvfvvwgwwwxwwvwwxewvvwwfuwwfwwxwvfvvgvvwvxgwwfvvvxvgvgxxwwuwvfwwwvgvwggxwwwxwvvffwgwwwwvvvxfwwxxxxwwvvuwwvgxwwwwvxwghwwvvuvwwxhwwwwwggvxwwvwwwewwwvwgfvwwwwwgxxwwgfwwvwwwwwwWuhwggwwgxwwwwwfwxwwwwwwvwvvwwwgwwwxwwwwuwgxhwxwwwwwVvwxwxwwwwvvxxwwgvwwwwwxxwwwgwwwxwggwwxwwvwxwwwwwvvhwvwwwxwwuxghgxwwwwwvxwwfvxwwwwwvwwgvwwxxwwgvvwwgwxxwvwwwvwxwwxwvxxwwwwwxxgwgxvxwxxxxvwxwwwwwwwxxvwwwwwvyhxxxxwwwfwxwxxwgwwwwgxfwxwwwxwhwwxxwwvwvuwwxxwvvwgwwfxwguwvWwwvxxhxvwvwwvvwwxxxwwwwxwwxwwwxwfxxxwwwwuwxxvwxxvwxwgxxxxwxwwxxxwxwxwwxwvvxwwwwwxwwxvwwwvxxxvxvwwwvwvwwwvwwvvwwwwwvwvwfwvvvgvvwwvwuffvugvvwfvwvwwwfvwwwvgwgvwwwwwwvwwwwwuwvwgwwwwgvwxwwwvwwwwuwwwwwvwvwwwwwwxxwgwgwvwwwxxvvwwwxwwvwwwwwwwwwwwwxwwxwwxwwwwwwwwwhwvgwwvfwugwgvgwvwgvwgwwvwgvwwwwfwugwwvwgwwvwgvwvxwwwwwwwwxvwxxvwxxgwwxwwwxwwvwxwwxwxgwugvwwwwxwxwwxxwwxwxwwwxwxxwxxwwwwxwwwwwxwxwwggvwgwwwwgvvgxwgwxgwvwxvvwvwwwwvwxwwwxwgvxwgxwwgvvxwvwwvxwwwxxxwwxxxwwwwwwxwwwxxxwwxwwxxwwvwwxwwwwwwwwwwvvwwwxxwwwwwgxwwfwvwvwfxwwwwvvwwwwwwwwxwwxgxxwwhgwxwwwwxwgwwxxwxvwxwwxxwxwwvxxxxxxwwwxxxwwxwxxxxxwwxwxgwvwgvfVduvvfffgufgVVuwwgfvvgUUxdvefgVevvgvgUuuwgfvvwwwwwevwgvvfvefwgvvwggvgwvwxgufwvuWvvgVtguggVwuvxgvvvggvwvvwwvvxvwevvwwgvvwgVutugxggwhvweuvwuuwwwxfwwwwwvwwwwwxwvvvvfwwwwwwwwwxwvvwwgvwvuvwvxwVxwwwwwxwwwwxxwwvwgfUvwWfVwefgVVvwwhgVvewggfgvVvVvewufgvvvvGvvVgVffvwvwwwwgwxvxxwgwwfwwxwwvxwvWwvfxgfwwwwxwvgwxvwwwgwwwwgXwwwfhwgwgvwwwggvvxwwwggvwVxgvvwwwvvgxwgvwxwxwwwwxwwwvwgxwhgwwwwwxwwwvxwwxwwhggwwxwwvxwxvwwxwxfXwwwxwxhwwwwhvvvwgVtuwgvwUuvwgVuuwwwwfewwwgwvwfvevvvgvvgwwUtugwwvgehwwxwwwwvwgvwuwvvwgwwxhgvwwwxwwvvvwfgwwxxwwwwwggwwxxvwxwwwwxvwwxwwwgwxgwwxwxwvwwwxxxwxwwwwwgxwxwwxwvvxvvxwwxxwhwxxxwwgxgxwxxhwxwxwwgvvuwvwgwxvwwwfvggwwgvwgwvVfUgwwgggwwwwxffgweFWfgwwxVgvwwwgwwgxwwwwwwwxxxvwgwvxfvwwwxwWwwwwfwxgwxwuuwvwtvvwvxwwwxwhfxwxxwxxwwfwvxvwxwxwwwgwhwgxgggwwwWxwwwxxwxwwxwxwxwvxgwxwwxwvwwhvwxvwwxuwfwwwwxwwwxfwvvwwwVwwwwwvxwwvwwffugwfwgwffwffwwwfvfwxwxwwwxewwwwwvfwwwwwVwwwxxvgVewwwVVegwwfgvxxwwxwxwwwvxwwVvxwwwwwwwgvwvwwwxwwggUvvwVeeWfffvvwwwwwxxwgfvxvVgwwvwxwxwwvwvxffvwVwwxfxhgwwwxgwwgvwwvwwvwwgwwvxffhwvgVewwwVegwxgxwvvxwVuwxxgxwvwfwwVwwwxwvxwvxwwxwwxwwwwvvxwwgxgvwVwwxgvvwwwwwwvwwwwwwwxgvwwwxffwwxwwxwxwwvwxwxxwfwxvwxxwggwwxxvwghxxwwxxwwwwfwxwfuwxwwwwfvwwgxwgwgvwVvwwgxwwwwxwvwxwwwwvwvwwwxwgvwwwwwwvwwwwxvwwxgwwxxwwwwwxxgvxwwvgwwxwwvvwwxvxwfwvwxvwwxvwvwvxwwvwwxwwwgwwxwxxwxwwhxxwwwwwVuwwwgghgvwwvwwvxxwwxwgwwwwwxVwxhgxxxwgwwwwwwwwwgwwxxvwxxxwwxxxxxwxwwvgwwvwxxfvxxwwwwwvwwvwxwxwxwwwwxfwwwxxxwwwwxwxxggwxxxxwwxwwwwxhwgwwwxvvwwwwwvwwfwgvfgfwggvwvegwxwvvwfwwvxwgfvgvvfxwfwwwvwvvgwvwwxwwfwvwwvwwwvgwwvwxwgwfhwwwwxwvvvwwwwgwwwwgwwvwwwgxfwgvvxwxfwwwxwxwwwwwwwwwwwwxvwvxxxwwvxwwwxvxxxgwwxwvgwvxwxgwvxwgfvvwfvvvwwwvvwgvwfwvwgvxwwwgwfwwwvgwwwvvwwxwwwvxvvwxwxwgwxwwwvwxwwwwgvxwwxgxvwwwwvxxwvxwvwwfwgxxxxxxwwwxxwxxwvxwxwwwwwwwxxwwwwwwwhwwwwvwgvgwwgvewgwwgvevwwwwxgwwwwfwwwvwxxwxfvvgxvgxwwgvwvwgvwwvwwwxvxwxwxwgwwwwxgxwwwwwxgwwxxwwxwwwxxwwxwxxxwxwwxxxxxwxxwwwwwvwxwxvvwwwgfwxxwwxvwwvxwwxhxgwwvvwxwwwwwwxwvwxwxwxhxwwxwxgwwwwwxwwwxxwwwwxhxwwwxwxwwxxxxhxwwxxwxxxwxxxxwxwxxyxxwvgwxgwwvwvwvwwxwwwvfvgwfgwvvvwwgwwgwxvwvwfgwvgwvvwgvwwgvwwgwwvggVeufweVgfwxgwwfwwwwwwgwwgwfgwwgwwxxwvwgwvwwwgWVvvWWwwwwwwwwwfwwwwwxfwgvwwwxvxwgwwxggvwwgwwwvwwgxwvwvxwgxwwwwwvwwgxwwwwwhxwwwvxgwwwxfwggeugweWwvvwvxgxvgwwwwggwwvvwvwgwwwgvwwxwvhwwwwwwvwwgxwwvwwwwgwwwwwwwxwfwgwxxwwxgxxvwwwwwxwhgwfvhxxxxwwwvwvxwxwwwwwwwxwxwxxwxwxwwwxwwwwxwwwgwwxgvwwgxxxwfwxxwwxvxxwwwwwgWwuwwvxvgwfvvwwgwwwgvuxwWwxwvwwvwgvvfxgvhwwgwwwwwwwwxxwwxwggwwxwwwwwwwxwwwwgwwwxxwvwwxwwxwwwwxwxxxxvwwwwwwxwxxwxxwwwwwwxgwwxfwwhgwwwxwvwwfwuwgxWvvxwxwxvxWwwwwhwwwvxwfgwwwgwwwwxvfwwwgxwwxxgxxxxwwxxxwgwwgfwwwxgvwwvxwxwwwwxxxwxwxxxwwwwxxxwwfxwxgwwxwwxwxwxwwwxxxhwxxxxwxxwwwwxtgfvfwfgwwwgwvwgwvwwwwwfwxwwwwxgggwwwvfwxxxWvugwwevffevfvewwwfwwgwwgwvvvfgwwwwguwwgwwwxxwwwxwxwfvvvvfWgUDggvvwwfwwvwwwwwwhgwgvvgvwwgxvwxgwxxhxxeUDvfvvvwgfvwwwwfwvwxwwxxwwgwvgwxwvwwgwwxwhxwwxwwxxfvvwwvwvvggvwwVfwwwWvwwxwwggwxwvxgvwvwwwwuWfvxwwgwwvwwwfwvvwwxwxgWwwuxwvvwvwxwvwwwxxgwxwxgxvffvwvvgwwwwwxwvwxwwgwxwwwxxwxwgxxwwxhxgvuwvxwvwggwvvwvwxwwxxwwxwwgxwxxwxwxwfuvvewuvwfvwxvwwxwxwwwxwwfvwwwwwwxwxgxwxxxugfvvvgwvgwuwgvwwwwuxwxwwwwuwwwgwgxwwwwwwwxwxxufvvugfwwwwwwhuwWwgwxwxwwxxwwwwwxwWwwwxxxwwwwgxwxgWvvvgugwxwxwwwwxhwwxxwxwgwwxxwxvwXxhxvVwvwvxwvwxuxwvgvvgxwwwvxwvwxfwwvwwxxwwwwwxwwwxwwxxwxgvwwvwfwwwgwwwwvhwgwvwwxxxxwwwwwwwxxvxvwxwxxxwxvwvwvxfwwwwvxwxgwhwwwxxvwxxhhwxwwxwxxwXxxxxwwwwwwwxxxxxwxwwxxxwvwxwgxxwhgxwxwxwevvvwwwvwvwwvuwvfvwwxwwvgvwwwwwvgwwuvwvwfwwvfwfwwwvwfwvwvwvwvfvgwwwvvfgfwvwwfwxwwwwwwwwvwwwhwwwwwwffwwvwvvvfvwwwvvwvwwgvwgwwxxwwwwwvgvwxwgwxxxxxwvvvvwgwwgfgwwwwwgvvwwvgwxwwxwwwwxwwwwwwxwxhvwxwxfwwwwwvwvwwgvwwvvvwwwwwwwwwwwxxgwwxwwgxwxxwvwvxgwfvuvhwvfwfgwwwwwwwggxwgWgwwwwvwxwwwwwxxwxhwxwwwvwxhvwgwwxwwwvwwxwwwxhxwgxwwwxwxwwxxxhxWgvwwwwwgwwggwwwwxxwwxwgxxhwxwxwwwwwvvvwfewvfgvwvwwwvvwwwvxxfxfwvwwwvwwwxxvwwvvwvwvfwvvwwwwwwvwgwwwwwwwwwvwgwxwwxwwwwwwwfwwwwufwwvvwfwwgvwxwwwwwwwxxwwvwwxxggxwwhwwwwxxwwwwwvwwwwwwwxwggvwwwxwvwwwwxxxwwvwxxvwhwvgwwvfvvxwgvwgwwwwfwwwwwwwwwwfwvwgwwggwxvwxxvwwfvuvwwvgwwwgwgwwwwwhgwwvvwwwwxhggwwhwwgwxxgxwwwvwxxwwvwwwwwwxwvwhwwxwwxxwxxgwhwxxggwgxwwxxvvwwwxwwxwwwwwhwwwxxwwgwxxwwwhvxxxwxswfggwwwvgfwwwwfvwWwxwvfgwwwwfwvWwxxwwwvWwxvwgvvWwwfvwffwVwfgvgVvwgvgWwvwvWwwvWwwwgvwvxwwwwwxwwhxwwwggfwwffwwggwwwT5vwwwgvfvxwvwgwwxwwwwvxxxxxwxvT5vwvwwwwwwfwgwfvvWwwwwwwfxwvvwwxwxwxxxwwwxwwvvgwwgxfwwvWwwgWwgVvfvxwwfWwvwwgwgwwxgxwxwvggvwwwwwwwgwwwwhgvgwxwxvWwwwwwwxxxxxwwwxwxwgxxhgwwwvxvffwxwwwwwwwwgwfwwxwxwwxxxwwwvwxgwxvwxxxxxxwwwwwfwxwwwwwwwxwwvWwxwwwwvwxwwwwxwxxgxwwxxgvvfwwvvvwwvvvWuxwvxwwxwwgxvvxggwwxwvvWuffvxwwxdwgfgwwwwvWxvwfwwxwwwwwwwwwxwgwvxvgfwwwvvwvwwwgwwvwvxwgvgxggwwwwxxxwxwwhxwwxxvwwxwgvwwwwgwfvgwvvwxwxwhwwwwwwgwxgwwhgxhgxxxgxxxwgggwwwwuwxuxwvfxwxxdwwfxwxwgwwxwxwxxwxwxwwwwggwxwwwwwwgwwwwwhgwvWwwwxwgwwwwxwwwxwwxwvwxxgxwwwwuwwwwxwwgxxxwxwghwwxxwxwhwxxxwgxhwgwwwwwxwwwwgwwxwxwwxwgwwxwwxwwwxwxxwxxxxwxwxueuwwvfwvuvwgvwvwvvvwwwgvvwuwevwwwfuwvxwwwvxvwugwvwwwwxxwvfvvfedvvefvwfufvVefvwwfwvwewwweuuewwgfvwvwwvgvvugxwvvwwvwwwvwfWgfuwvgwwwwxvVevfvewvvwwxwvhvvvvvwvxgwwxvxgxvwwwwwWwgwhwwwdevvVfegvugwvfgtggwUwwwwwWfwewwwwvxwgwvwwxwwgggwwggvfvgvfvwvffvhwvwvUfwwguvvwwhwwffvfvvgwwwgwevwxwvwwxxwwwwwwwvugfgvfwvwgxxwwgwtwggeuvgWwguxxwwxwfvwvuwgwwwvfwwvvvfwgwwwgwvwxwwfvffhwgvwwgwxwgvxxwxxxxxxwvwxhxxwxxwweduvWgwevwwwwwgvwThxgwwWwwwwwwgwwggwxvvwwwwwwxwwwwwwxvfwvwfufwufwwvxuvvvfwwwwwwufvvwvwwxfxxvwwwwxwxwxxgwvtvvvVvuvvgwvfwtvgfvxvvwwwgwwwvwuwwwwxwxvwvvvgwWfvwvgwwvvgwwXwvgWgxuVwvvgvwXwwwggxvwwwWgvwxxwxfvwvvvgwwwwhwwgwghhvwwwgxwwvwwwhgxwxxxwwwxxvfvwfvvfuwxwwfuvwfwwvwvvwwwuuvxgvwwxvxwhwwwwxwwwwwxwvvuvvgggvwwwwwwwwugxfwwwwgwwvwwvvvwwxwwwwvvwxxgwwvwxhwwwvvwwwwwgwwwgwwwxvhxwwgvgxwwvgwggggwxwwwwgvwwgghvvwxxhwxvgwgxgwwwwwwwwwwgxwvgxwwvwwfwwwwxxwxxwwwvfwwwwxuvvwwwwwwxwfwwwvwwwxwfvfwwfvwvwwwvwvwvvwvvwxwwwvwwwvwwwvwvfvwwwwwwwvwvwfvwuwxvwuwxwvuwwwwwuvwxwvvwfwwwvwvfvwxwwwwwvwxxwvwvwwwwwwvwwwxwxvfvwwwwwwwwwfffwvwgwwwwwfuwxwwxwhhwvwwwwwwwwxxwwwwwwwwvvwwwgwwhwvwwvwwvwxwwvxwwxwwwwwgwxwvwxxfvvwwwxvwxwwvgxgwwxvwwwwxwwgwwhgwxwxwvfwwxwxwwwwxwwxwwxgxxxwwwwwxxxgvgwvwxwwxxwxxwwgwwxwwgwwxxxwwwxwwwvwxwxxwwggwvvwfvwwvfwvwvvwwwwwwwwxwwwvwvuwwwwwwufgwwwwuwwxwwvwwvxwwwxxfwwvwwvvfxwuwwwwxwvxwwwxxwwwwwwwwwwxwxwwvwwwxxxxxxwvwwxwwwwwxwwwwxvxxwvwgwwwwwwxfvwhwwvxwwwvwwwwxxxwwxwwwwwwxxxwwfvvwwgwwxwxxwwwggwvwxxxxhwwwwwxxfvwvvgwggwwxwxfuwwwwxwwxwwgwvwxxwwwwxwxwwwwwwxgvxxxxxxwxwxgvwwwwwxwvgwwxxwvwwwxxegggfuwgvvxvwfwffuwggwvVfgwvxWwwgvvwwwvwgwwwvxwxwwfufwwggwvgVwwvgwgfwgvvwwffwvwvgvvWewvwfuhvwwfgwvwgwwwwwhvwgwvwfwwgwvfwwvWfwxwwwwwwwwxwvwhwvvwvwwwwwwwwwwxxwvgWfwvwwvwgwwvvghgwfwwfwvgfwvvxwwgvxhwwwwvwwwwWwwwwwvgufwwwwvfwwwwwgwwgwwwvwwxwwwwwwwxwwwxwvwwwwwwvhwxwxxwxwwxwvfwwwggwvwgvwwvgggxvwwwxvhwvwwgwwggwwwwwhWgwwghhxwvwwxwwwwwwwvwxxxwwwxwwxwwxwwxwwwxwwwwwxxwxwwwxwxwwwwxwwxwxhgxwwwhggwwwgxwwwvxwwwwwwvwwwgxgwwwxwWwwwwwvgvwvWfvxwwxgwgxwwugwvwvxuwwwvwhxxxwwvxvgvufwwfwxvgfvfgwwggvwwwwggwvxgwwvwwvvxwwwgwwwfwwvgfwwwfgwwgvvwxwwxwwvxwwvvgwwxvwwwxxxhwxxwwwwwxwhwwxhwwwwvwvvwWwwwvwwwvgwwwxwwwxwvwhhwwwwwwwgvwwwxwuwxwwwfgwwwwwwwwwxwwxvxxwxuwwfvvwwwwwwwwgvwwvvwwwwvwgfwwgwwwwvwxwWxfwfwwhxwxwwggwxvwghuuxggwxVVVvvewwvwxwwgxfvwgwgvwxxwwwwxwwgxwwhxwwxwxwxwxxwwxwxvwwxgwwwwggwxxwxwwvwwvvwwwwxvwwxxxwtwgfwwwwgggvwfwwwwvgvvgxggwxwwwwxwgwwwwwfwvfwffgwfvwwvwvgfvwwwgwvxgxfWfuwgwwfwvwgwwxgvwxwxwwgxxwwvwuwwwwwgvvvvgfvwwwwwgEEuwwwwgwxxgwfuwxxwfEEuwgxwwwwfvffwwgwwwwxwwwfuwwxggwwwxwwwwwwxvvvgfwwwwwvwgwgwwxwwfhvwwwgwwwxxxwvffvvwwxwgwwwwwgxhwwxxwwwwwxgxhvwhgwggvhwvwwxxvgfwwwxwwwxgfwwxwwwxxwvwgwhxwxwwxxwxxgvvfwwwwxwxvggxxhxxwgwwwxxxxwwxxwxfvwgwxwwwfvwwvvwwvggwwwxwwwxvxwwfgfvwwwwwwvgvgwwxwwwuxwwwwwxxwxwggwgvwwwvwvwwwfvgwwwfvwvxxwxgxxxwwvxvxwXvgxwxxvfvvwvwwwwwvwWvwxxxvxwvgwxwxxxwwwhwwxxwgvvwvxwwwxvvwxwwxwwwxwwwxxuwwwxxxwwvwfxgwxwwwvwgvxxxxwwgxhwwxhwwwwwwxxffwwxxxxxwggvxwxwhwhwwwwwwxxxxxvxhwwwxxgxxhxxxwwxxxxxuwwgwgwwwwfvuwwfvwwTUwwwfvwvwvwwvwwvvVvwfvgwwwxwwfwuxwvvvvTVwwfgvfvvwwvwFfSggfvfuvfwvvuwwwfgwgwgegwvfgwwwwwfgwwwwwhwgvwvww6dwgfwwwgwxwwwwwvwXwvwxwvwwgxxxvVfwvwfufgxgvUvdwwffwwwwWgwwwvvwwxggxwxwxxwxvvxwwxxgvwvgwwwgwvwVwgwgwgwufxwxwgwwvfwwwvwxxVvdgvvfgxvxgwwvwgxvgwwVwwfwgwuwwxwWvfvgxgwVgxwxgggwWwwgVUwhgfwhvfxxvhvwvwhgwwgvvgwgwwgwwwwvwxxwhgwwgwgxwxhxxxgwggfgxwxxvxxvVfwxxwwwhwxxwwxgwxwwxxwxvgwwxwwwfvuwVevgvwvwwvvfvgvvwfwwgwvwwvwxwvvwvwvxwwwwxwxwwwwxvwvvfwwwwwfwUgewwwfvuvwwwghwxwwWfwvwgvxhxxvwwwwwfwwwgwvwwwwvvwxwgwvwxVvfwvgwwvwwvxxhwwwwwhwgwWgvxxwwgwwxwhxvwvfwuxgwxwxxvwgwwwgfwwxwxxhwwxwvxwxwhwwwxwwvxxwvwxvfgwwwgwxxwwfvwgvwwgewwgwwvwwvfxwwwwgxwgwwwwwwwwxvgvvggfveuwwxgwwwwfgwwvgfwgwxwwfwwxwwwxwxxWvgwgwwxwwwwxwwgxxxwxwwUvwwggwxwxwwwxvxwwxwwxggwxwwwxvgfgvwwwwwwwgwwxgvxxxvggfguxxxxxxwwxggvwwxwwwwgwxxwvwwxwwufghwwwuwvwwwvfwwwwhxhvwfgwwvgwwwwwgwwwwwwggwwwwwwwwwxwgwwwwvuwvfFwwwfwvgvwwwgwgwvwvwgwwwgwvwuwwvwwxwwxwwxvhwwwwwxwwwgwwwwwgwwgwFVuvxwxxggwgxxfwxggvwwwxwwxwwwgggwgwfwgwvxwggfvvxwwwvxvgwvgvwwwxvwwxwwwfwvwxgxgwxwwwgwwwewwwwgggwgwwwwvwwwwwwfFwxwxwgxwxxggwwxgwvwxxwxwwxwwwxwwwwwwxwwwwgwxwgwwgVwhwwxwwxwxvxuwwwwxxwxwxgvwxxwwwgwxwxFVuvxwhwwwwwwwwxhwhxhwwhxxwwxwwwwxxwwwvwwgwwvxwwxwwgwvxwwwxxwwwvxwxxxwxxvwvvgwwwVgwvvvfgwVuwwwxwxwwwwxwwwxwgwwwxwwvxwwwgwgwvwvfwvwwWwwwgwgwvwvwgwvwvgwxxghwwxwghwwwwwgxwwvgwvgwxwxwwwwwxXvgwxwwxxwhwxfhwhwxxwwhwxvwvwvwwwwwxwghwwwwxxwwvwwxxxwwwxxxxxxxwxwxwwwwvWgwgwvwfugwwwwwfwWwxwwxwvxwxxxxvwxwxwxxwwgwwwwgwwwwxwwxxxgxWgxWxggwgwvwwxxxxwgwwxwwwwwvwwwgwwxwxxxxvwxwxxxxwxwxxvxxwwwwwwxxxhxhxxvxxwwwwxxxxgxgwwwwxxwxwxwxxxxwwvwvwvwfvevuxvvfwwfwwwxuvwwwwwvgfwvgwwvwwgwvvwvwxxwwffefefffvfffgvxwwwgvvvwgwgvwvwwgwgwgvwvwwwxxwwhwxwwvffguvevgwwwwggvvwwwgwfwwwxgwgwwgwfwwwwxwvvwwxxwxxwgevevfVfWfgfwvgwwwfwxwvwxwxvwwwwwwwwwggwxxxwgwxufwxhwvwvvvwvvwvwvvvvwvwvwwvwwwvwwwwwwwgwwwwvgvwwwwufufvwwvwgvWgwwwgwgwfgWwwwxwwvxhwvwvxwwwxwwwgxhwvfgwgwwgvxgvwxhwvwvwxwwxgwwwwxwwxgwxxxwxwxvwxWgwvvwgvgghxwxvwwvwwxwxwwgwwwxwgwwxgwwgvxwwxgvuvvvwvvvwwwgvwfwwwhwxwgvvwwxxwwgwxvxwvvvvvVwgwwwvwvvxgwwwwwxwwfwwwgwwxxwwvUwhwwwxvvwwwwwwwfwwgxxwxvvvvwwwvwwxxugxvxvwgxxhwwwwfvvwvwwxxxwxwwexWwxggwvxwxvwgwwxwwhhxwxwwvwwwuwugxwgwxvwwwfgfgvwwwhwvwwghwxwwwwwvgxwvwwwgevvgvfVwhxvwvvwvwwVhgwgwwxwgxxwwxvwvwxgwwxwwWwwvvuvggvwgvwvgwvwgwwwvxwwWwgxxwwwwwwwwfhwxhwwwgwwvwvvwwwvwxvxwgwhxwwgwwwwwwwXxuwvwvwgwhuVdvvfwfvvwvuvevvwwvwfwvgwfuvvwvwwwwfvvvwxgfvufvvVfefevvvvufffwwvwwvufvwvvvfuvfvfvvvvwfgvgffvvvwwgvwwwvvvgvffwfgvvvvxvgvvwwwgwwwxwwvgfwwvwwwfwwgvguvvwwwwggxxxwfuvvgwdvufvuwwwwVvuwvwwwwvwwwvewewwwgvwwfwwwgwwgwggxvgxfvvgvffvfvwgvvUWwwwvgvvvwwvfgwwvwwwVvwwwwwvwwwwxwwfvwvufwwwfwggevufwwggfwgvfggfwfhwhufgwwwVwfwwuhwUwggxwvwwVwgwugwwwwxwVguwwhwwwwwxwfvwwgwwwxwwhvwwgwxwwgwwxwvuwwvgwwewwwfvgwwwwfwwwwwwfwgewvwxgwwwfxgxvwxwwWvvuffwvvwwwgwtWwwwgwwwvwwvvwwvvwwgxwwwvwwwxfwxxuevfuwwuffewwwvvvvwwgwwehvwuwwvevuvwwewxgvwxwwwwvxwhxwxvgvwVwugwwghwwwgGwvwvwxgwwxwwxwWwfvgwwggxgxvvgwggwwwxgwvxxWvfxfvfvwwwwwwwvwwwwxvwwwwwvxwvwgwwvwxxwgwxwwwwxxwhwxvggfeuwwfvgxwwwvdfgwgvwvwxwwgxwvvwwwwwwwwwxwwwwwwwwhfggwvvvwwfvhwvwwwwvfwvwggwwvgggwwwvgwwgxvWxwwfwggfwhgwWvvvwhvwwwwwgwvuvwvgvgwwghxwgvwwvWwxwwwxwwwVwwwgwwxwvuwgwgvgwwwwxwwgwgxggwxwwxwwwwwxxxwwwgwgvwwxxdvwffgwgvvxvgwgwvwxwxwVwwwwwwwvwwwgxwwwgwwwwwwwxwwxxxgvfwge6gvWvwgvvgwgWvgwwwwwwwwvwvwwfwwwwwwwwvwxwxwgxxwwwwwwffwggVWeefwwWwxwgwwgwwwwxgwwwfwwxgwWwwgxwxwwvwWfwfwfwwfwwgWwwwxwwwgwxwxwgwwvWwvwwwxwwvwwxwgwxwxwwwvwxgwfwwfvwwwwe7wxwgxgvvwwxwgwwwwwxwhxwgvxgwwwwxwwxvxgwhwvwwwwwwwwwgxwgggxvwwwxwwwwwwwxwwwwwwwwvwwwxwwxxhwwxwwvgfwwwxWeefxwwgwwwgxgxwxxXwwgwuxwxwwwwwgxwvwxwvwwxxwwwxwwwwwwwwwwwwxxxgxxwwgwwvwxxxvwwwxvxwwgvwvwwwvvwftwwvwwxwvgxxxwwggvvgwvvwwwwwxwhxxwxvwwvvuwfgxwwvgwuwwwwwvxxwgvwvvwwxxhgwwgwwwwwxxwxgxwxwxwxwwvwgfgwxuxwwgwxwwwvwwxxxxwvvwwwhfggwxxxxwwwxwxwwwwwwwwvwgxvvxgwxxhwxxwxgxxwxwwvxhxwhxxgxxgwwgwgguwfwxuwgwwuxwwghuwwwfvwggvvgwwxwwwwwxwxwxhhwxxgvwwwwgwwgwgwxgxfvwgwgwwhwgwvwexwwxxwxwxggxwwgwwxwwwwwxwwvvhwwwxvxwhxwwwxwwvxgwxwxwxxxgwgwxgxwvhxxxwxvwwgwxwwwxfwhwhxxwwwxwwfxhwwxwuwgvvvwwwwvgwwwwgwwwWvwwwvwgwwvxwwwggvwwguxwvvvwfuwwxwfvvwgwwwwwwxxxugvvvgfwfwwvwwvwwvxwgxwuwvwwwxwvwwwgwwwwwvwwwxwxfgfgwwvwwwwwxwvfwwgxxwvfvwWvgwvwxwwwvghgXwwxwvvwgvfvwwvwwwxhxwwwwwwvvvwwwwwwgfwfwxwwgvvwwwwgxwvvwwwwxwwwwvgvwwwVgvwxwwwwwwxwhwwwfuuvwwwgwxwwwgwvuxxwwxxwgwwvwwwwxwgwfwxwxwwwvwwwwwwwxgvgwwwxwggvvxwgxwwxwwvxfxxgwxVwwvxxxwhwWwwvwxgwwwxwWvwwwxwwwwwwxgwwwxxvgwwvwwvxwwwwwwwwgvgwvwgwwwvwwwwwfxxwwwvwwwxvvuwvwwxxxxwvvvvwwwwwwwxxxxxwvwxvxxwwwwwuvhwxgwwwxuwwwwwfvwwwvhxxwxxxwwwwwwwwwwxgvwxwwxvgwwxwxxwwxwxwwwwwVfwxxwwwwwgwwwwwwwgwxwwgwvwgxwxxxxwwwhwhwxwwwvwwxwwvwxwxwwvwwxxxxhgwwwhwhxxvxwwxvxvwxhhwwwwwxwwwxwwvxxxwwwwgwtwvfvwwvvwffvuuvgwgwgexuwffgVvuvvwwwwfweuvwwwvvweUvfvvvvVwvfwwvwvfvvwvgfuvgvvewuvFvtwxwvVfufwfvugwwegwfewvuxWWgwgwvvwwvWvwwWwfvfwgvwVuvfvwwwvgvxwfewwfwwhwvffvvvfevwvwwxwfufgwwtVhwxvevuwvwvwwWwwwgwhfwwwfxwgwwwvugvfUwevwgvEfwxwwwwvvwwwhgvgfgwuwgvvvwxwVwvwvwvwwxvwwwgfwwwwwfxwwwwvwwvwwxwwewxgwwwvgggxVwhwwwgxwwvvgwghhexgfwfwwwwwgwwwwwfvwwwgxwgxwgvvxwwwwggfxwwxewwwwvhgwxwwwxvgwwwwwwwwgwwvwxgwwwVxwwfwwwwwxxxgwwgGwvhwxxwvwwwevwvtgwvVvvwguxwgwvxwwwuwxxwwvwwxwvxwuwfgfvwwwTdvxVvvwwwwwwwvvvvwwvwvwgwwwwwwvvwuhvwwgwgwxeevgwwgwgxwxvvuwwwwvvwvwggfwwvwvwvghfxxwggvwwwwwwxwxgwwwxwvwwxwgvwwWgewwwwxgwwwwhxvwwwgweuwuxxxfvwwwVwwxwwwwwwxwwwhwwwvwwgwwwvwvfwWwvvwwwvgwxwwwvgwxfxwxwwwgwwxgwwugxfwwxwwwwwvwxxxxxxwxwwxwwgvwwhhgwwwwwwxguvxgvwgwgwwwwwxwwxwwwwwxwguwgwvxgwxwwtwfvWvUgfvwvvgfguwvgvwvWfvffuewvgfgfwwwwvwvwvfvwefvvfvvhvwwxfvfwfvefweffvfwvfevUftffvwewgvvvfuffwuvwwwgvwvffwvvWvgUvwwfwgvVvwvhwUtwvggwvvuwgggwfwwgfwwhfWwVvwvwvwwvfhvvwgffwvwwwXwwwgwgwwgevgvvfvwwvwffufwvfgGwgvgwfwVgwvwwwwwgwwuwwwgwhwwwvgggwwwgfWgwgvwwfvwvvwfgwfgwfguwwgwwvvVvgvwgwxwfwwwwwwgvggwwvwvwwwxfwvvwgwvWwwwgvwhggggwgggWvwwvhfvfgwwvwwvxwvVwhWfwwgxwgfvgvfwwgvvwwxhWfvwwgwWwwxwgxwwwvwgvvgwfwgwwwxwgXwvwgwwwwwgvwXwwwwwwwgxhhgwgwWwwwwwwhgWwwwwwvvwwggXvgvwwgvwwgwvgvugwvvwwfevvfvvfwwvwwwewwvvuwfwwvwvvwxwgwgvwxxgwwfvwwvwwwvvwwwuwuufwvwfvgwwwwwwuduuvwwwgwgwwvwwwwhwfwwvxxgwgxxvwwvfwwvvwwwwwgWwwxgwgvxgwWffufvwwfwgggwfwwxwXXXffwwhwvwgwwwwwgwwwwvwgggGhUwwxgwwwwwwwwvgwxxwhghwwwwwgwfwwwuvwwwwgfguwwgwgxwwvvwvvvwwXwwwwgwgwwwwvxwwVxgwwwfggwwwwvWwwwwxwvwwwXxgwvwwvwxgwwwgwwwwwwwxwwgxhwwwwwwwgvwgwwxwwwxxxwwwwgwwgggwwxwvgxxwxwwvgwwxwWwfwfxxxwwwwxxwwxgxwwwwgxwwwwwxwhvwfwvxvgwwwwxxuwvgevwvxwgfvvvxvwfwvgwuwvwuxfUdvwwwwfwwvgvfwvwgwwwwvwfvwfuffvwgfewwwgwfffgwwvVgeevFuSfvvggvvfvwwfgwgugwwvgwWgwwfFcwvwwgwwgfvgvewwwwwwwvgfvwvwwghuwwwwwwhwxfvwwxxxxwggfvVudvwvvwwwwvwvgwgugwxvwfufWgvfVxggwwxxwvgxgwwxwwwwwfwxvffvgfvVdwguggwgvgwfwxwwwvgfvfvevvwwvwwgvuwwwgwvxxvwwwWfffgfwwgfggvwfVvwwVxggufwfgvgegwwwWwwfewvgwwgfwxwwhwvguwfwvwgwwxggvwvwwgwwxwwwgvwwwfwwxwhxwwfwwhvwxwxxwxgvuvvguwwxwxwvwwxwfwxwxwxvwwwvwgwwwwxvwwxwwWwvwfwwxvvVugvgwwwxwwvggvvwgvwwvwwwwwwwgwwwvvvevfvgggvvwwwwwwvgwwfgwhfUfwwwxxhwwwvwwxggxxvxwwwgggfwvwwwwwwwwwevwvvwwwxwwgwwwgvwwwwwxxwxwwwwvwWwvgggevwwewvwxwwvwwhwWfxwwwxxwvwwgwwwwwvwwxxxxxxwwwwvxhvgfvvvwgwfxwwwwvwwwwwwgwwwwwgvvvhvwwwgwwwwwxwgwhwwwwxWwvwvwvggwwvwwwugwhgvgvgxhwxwwvwwwxwwxxvwwxwwwvfwVwvwwvwfwvwwwwuxwwwwwvwwwxwwgxwhhwggwwwvwgxfwwxgxwwxwwvvxwwwexxwwxhgwwXvxwvwwwwwvxwwxvwwwgwgwxgwwxxgxswvwvvffewwvfwfwvwvvvvgfwwwvVvuxvvvvfdvvvggvwwwwwevvwvvvvvvvvwevevdevffvwvvfvvvgwuvfgvVwfvVusgffewvgffvfvvwvwvguffwwguwwVewfvwwgfgwwggevxwwwxwwwvuwvgwgwvwgguwwvwwvxwgxwwvvvwfwvvevuxwwwwvwwWvfuwwwwwwvwftuwwgvguwwWwwwwwvwvwwgxfwvhvVuwgwWvgvwwffwwwwvfvvwvwvwwwvwvxwwWvwwwvwwwwvwwwwgvvgwgvwvwxwvwwwvvvvvgfvwwwwwwwwgwvfxgvgwhgvwvvwwwxwwvvghxWwgwwwwvfvxgwvfvwvwwwvwwwwvwwgvwwwxggwwhwxwwwwwwwxxwwwwwvgwwwgXWvgwvwwhwwwvwwwwvwwffwxwwhxvvfxgxwwwwfvvuwvwwwfwfvgwgwwwwwwvfvvvwvvvwwwvwwwwwvwvcutuwvfvfvvvwhguwwfvgwvvvvwwwgvwwwwwxwxwwgvvwwvwwdVwevvwwwvuvvwwwvvwwwvvhwxwhwvwvggfwxgwwvhfvwxwfgwvvwfwwwwwvwwwhxwwwwxwvWgeXhxxwwwxgwwwuwuwwwxgvxtvwvfwvwvwwvvxwvwvwgwwwwwwwwwvwwwgvwvwvwwwgwxxvgwwwggvwvvwvwwhgwxhwwwxvgwwwxfxwwvgwxxwwxxwwwwwwxwwvwwwxxwwwxgvfwwxxxxxhxwwxxvwwxwwwwwxwgwwvwxxwxxwwvwwxxwvvxxvxwwfvwgwvvgvvwuwwxgwvwwwwwxgwfwvwwvgvvwvgfwwxvvwwwvwWvwwvwfwfwwwvvhfgfgwvWgwvxgwfwfwwwvvwfwvvwfwwvwwxgwwwwwwwwgwvgwwgwgvwvwvggvgwwgvwvhwxvwggvvwwwvwwwxwgwvwxwwhwxxwwwwvgfwwwfvvwgwgfgwwwwwggwxvxwwgfgwvwwwwfwwwfvvgwxxwwxwxwwwwwvgvvxvxwvwwwwxvggwxwwwwwxwwwfwgxfwwvwvwwwwxwwxwwwgvwwwxgwwxwwwgxvwwgwVwxxgwwgwwwwgwwfwxwxwvwwxgvwwggxxgwgwwwwwvwwxxwwggwwxwxvwwxwvwwvwxxwwwwxwgwwgwhwwwwxwwxwwxwwxxvxvwgwwxgwxxwgxwwhvfwvwwgxwwvwwwwwwvwxwwwwxwwwwgwwfwwvwwwwxvwwvxwhwvwwvxwxwgvwxfvvwhwxxwwvwwwgwvwwwwwgwvwwgxwxwwwwggwvwxwwwvvhwwwgwwwwfvgvwvvxwwwxwfwwhwgwxwxxxgwvvwwwwwwwxxxxgwwgwwwwvwwwvwvvwwwwwgwxwwwwwwwxvxwwxwwwvwwwwwwwfwwwxwwwxwwwwxwvvgvwwxwwxwxwggxvwwwwxgvwwgwwxwvwxvwwwgwgfwvwgwvxwggwgwwgxwwvwvwvxgwwwgwwwwxfwhwwgxwwwgxvwggwgggfvvwgwwwvwfvwvgwwwwvwwfvwgxgwggxwwfwxwxxxwfvxvvwgwgwwwwwgwxvwxwwxwwgwwgwvwwwwwwxwvwwfxwwxtwfgwffxvwwwwgwwwvwwfwwgwvwvwgvwgxxwwwwwwwwxgwfgwgUwfwwffgwwwwvwwwxwggwfvfwuwwxgwgvwwgwxwwwfwwUEwwwwwxwfewwgxwwfvwufwwxwxxvUEvwufgwvggwxwgwxwxvwwwwgvwwxxwwwvwxxwwvfwwfvgfhwvwwfwwwvwvvwgugwvgwhvwwwwfgVwwvwwfwxwXxwwwwwhgwVxvgwfwxwxxgvxwwxwxxwfUwvvgxxwvwwwxwwxhgwgwwvxwwvxxxwwvgwwfgwxxhwwxxwwwwxwxwxxxwxwwvvvfwgvwwxxwgwvxwwxwvvwwwxwgwwvwxfwfvfwxwwwwwwwgxvggwvxvwwuwwwwwgwfwvwgwxwxwwwwxxfwwvgvxxxwwwhwxgxxxwwgvwwwgwwwwxwwwgxwxwXfvwwwxwwxvwwwxwxhxwggwwwwwwxxwvfxwwgwxxgfguhwwxvxwxwxhxwwwfwwwfhwxvxwwwwwwggwxxxxxwwgwwwwxwwgvwxwgwvxwgwxwwxxwwwwxxxxwxxwwwxgxwwwwxwxwxxwwxxxwxgwwwxgxvwwgvwwvvwwgfwgvwwwwwwxgvwwvvvvwvxwwxgvwvwevwvwwwvvwgwwfgwwwvxwwwwwwvvwgvwwhwgvwwxwwwwxwxwvwvvwvwvwwgvxvvwwwvwwwxvgwwgfwwwvwwwgwwwxwwwwwwwxwgfwwwvvxvvwwxwwwggwwwwwxvvvwwwwxfwwwwwwwgvwvhxwwgvwwgwwxwwggxwwwxvwwwwwwwxxwxggvgwwwwgwvwwwwwwfgwvwwggwwwxxwwgwwxwwvwwwhwwxwwxwwfgfwwxwwwwwwwwvwwwwwwxwwxwxxwhwxwxxwhwwxwxwxxwwwxwxwxwgwxwwxxwwwwgxvwxwwwvxfvwwxwwgvwwwwvgwwvvvvwwwwxxxxwxwvwwxxwxwwvwwxwwvvwgfwwwwwwwwwvwwhwwwgvwwvwwhwwwwxxwwgwvfwfwwwvvgvwwwvwxfwwxwwwxwxxvwwwhwxxvgwxwgxgwvwwwwvvwhwgwwwgwwwxwxhwwxxwxxwwwwvgwwxwwwgwwwxxvwwvvwwwwwwwwwggxwwwwwvxwxxwxwgwwvgxgfwgwwwxvwwxxwwxwwgvwvgwwxwwfhwwxfvxwwwgwvxgwvgwwgfwgxfvgggfwwwwwxwwwwwvhxwwggfwwxwwxvwfwwwwwxxwwwxgggwwxxxwvwxwwwvwwwxwwwwwwxfwwwwvwvwwfwwxtwwvwvwwwvwweUwwwugxwwwwgfwvwgwggfwwwgwvwggwwwvwwgvxxwWwvwfeevvffwEuBgfwwwwwWWgdwgfwgwfwgfUgfwggwwfvvwvxvgwwgvgvwwwvfuwwETvgvfwfgwfgwfwvwgvwwwwvgvwwwvvvxwvgwxwxxxvxxwwgxwwgfwfdUgeuufvwwfgvwxwfWwwgwwwwvxwxwwwwfvwxxxwxvwwgvwvwvwgwwwwgggvdwggfwgvUSwwwwfwvVgvwVvwwxwwggUwgxwvwwwxwgwgwvvwWvgvfggwuvgxWwxxwGggfwxwfwwwgwwuwwxggvxwwwwgxhwwwwvxgvwgvwvwwgvwxwwwufwxhwWwxvhwwwwxwxxwxwwxgxxvxhwvwwvwvvgwwuggfwwwwwwggxwgxxhwwvxxvxwwwgwwwwgwxwxwwgwwxgwgfvwwwwwfvwvvwwvwgvwwwwwgvfgwwvwvxgwwwxvxxxxggwefvDgevwwwvwwwfwxgwwwgwvwvwvwwgwwgxffwwwwwvwwxwxuwwxwvvvwwgwgwwvvvvxwwxwhwwwxwxvwwwwwwxwgwxwwwwxwGxvxwxwxwwwvwgwwwvvvwvwvwvxwwgxwwwvggxxxwxxwgwgwxgwwwwwvxxwwxgwfwvfxfwwwvxwxvgUwwwgwxwwwwwvxwxxwwwwfgwxwwffwvwxwgvvwgfgwwvwgwwvwxgwxxgwxwgwwwwwwxwwvwwgwwwwwwgGwvwxwgxwwxwxxfwwwwwggxvxxxgxxwggwxxgxvxwxwwwwfwwggxwwwxxwwwvvwwvgwwwxhxgwgvwwwwxxWwwwxwxgvxgvwvwwwwwwvvxuwgwgwgxwwggwwgwwgwwwxwgvvvwwwvwwwwwwxgfwfvwwvxxwwwvgwguvwwfvvgvwwwgwwwwxwwfFvwwwvfvvwwwwwwwwhgwwwwwwxwwgwxxfgwfvwgwwgfxgxxwxvwwVfduwxwxwxfwhwwxxwwwfwgwvewwxwwxwfvwhfxwxwwwwwwgwxxxwwxwvxxwwgwwxxwwwxwwgwfFwwwwwgwwvwxwxhvgfwwvwwxxxgwwhvxwxwwwwwwwggxxxxxwhwfwxgvwwwwfwhvxxwwhwwxgxwxwwwwwWftuxxxhwxxwvxwwxxxxxwxxxxwxxwwxwxuxwxxxvxwhwxwxwxxwwvwxwxxwxwwxwxwwxxwwxwwwgvwxxxfvwxwgwvwwwxxwwwwgvwwvxwwwxwwfvxwwxwwvxxvwwxwwwxxwwwgxxwwwwgwxxxwwvwwwWxwwwxwwfwxxxwxxwxxxwwxwwwwwvwxvgxxgxhwwwxxxwxxwwxxwxxxwfxwwxwgvvxxxgwvwgvxxwxwvvxgwxxwwxxxwwxwwxwxgwxxwxxwhgxxwwwvvwwwwvwxxxxxxwwwwxwwxxxwwwxwgwwwwxwgwwxxwxwwwwxwwwxxwwwwwxwxxxwxtwwwgvuwwwwvvgdgwgvwvwvuvuewvwguwgvwvwfggfguvwvgwxwwvuvwWevvgvwgwwwwgvuVftvfwevgwvTwvfwvgvfwwvwvvvvgwxvgwwvvwwffwvvwvwvvwfuwvwuwEuwwwwvvvvwwwWwgfwvvvvvwgwwgwfvxvWwwwwwgvvuugwwfwgwWvwvvwvFwwxwvwwwwwwwwgwwwwwwwwggwwwxhwwwfgvvvwwVvwwwwwfuwwwugvhxwvwfwfvwwwwwwvwvwwvuvxwxwwwwwwwvwwwvgwwwfwwfwwgwWxwwuxgfwxgvwwvwwwwgvwgfwxwgWgwgwwggwvvfwuwwwwwwwfwwvfwxvwgfwgxwgxwwwwxgwwgwwxwwwxwxwwwwvxwwvggwgwwfwgWhvwwhwwfgwwgxwwgwhwvgwxwwxwwvvevuwwwwwwwvwvfvvxgwvvwvgxxwwwwwwxwwvwwvuwduuxgwwwvvvfwwwwwxwwwwwgwgxxgvggwvwwwwwwwvgvufwxxWvvgwwwwvwhgUfwwwgwwwwggwwwgwhWewwwwwgwvwvvwwfxwxwwwwwgXhdwxwhwwvwwxwwwwxxwxwwwxxwwwvvwvvgvgwwghwgxvuwxwgghxxvwwwwvgwvwwxwgwwwwwwxwwxxwwgvwgxvwwwxwwwwwwgxwwwxwwfwvwxwvwwxxxwwwwgwxfhwgwwxhxxwxxwvwxxwvwxwwxxwxwwwxwwvwwwwxwgwgwwwwwwvxwwwwwvvhwfwwwwwvwgvwxwwwxwvwwvwvwvgwwwwvvUUgwwwwwwwwgvvwvwfvwwwwwvvvwUfvvggggwVWwwvvvwvVvuwwwvwwf5vSVwwgwvwvwwwgwwvwwwfwwxwwwwwwgvwwgwvwwwwwFTgwwvwvwgvwwwgvwvwwwwxwgwvwwwwwxxUuefggfwwwghweuuwwxwwwvwwwgggwwwwxxxwwgxwwwwvghwfgwggwwwwwgvwwxxvgwFdhgvwwwVvuwwxxwwxxwxwxwwgwfgwwwvxgwfffxxhXwhvgxwvgwvwwgfwvwgxwvwgfgxxgvwgwwwwvwfvwwwxxxwwwvgwxxxvwwvxxwwxwxxwxgwxxxwwxvwvwwwxwxwgvwxwwvxxgvxwwwwwxwxxwwxgvwxwgwwwwgwgvxwvwwwwwwwvwghwwwwwvvxgwwgwxwwwwxxxwvvgvvwwwwwwWvUWwxhvwwwwfvvvwwxwwgwvxvxwwwfwwwgwvvxwwwxvwwwgwwxwhxxXxugwgwhgwwwwwvwwwwxwxwxwxwwwvwwgwwxxwwwgwwwwwwxxxvvwwwxwwvhwwfgxwwgwxxwwvxwwwwgwfgwwxvwwwwwwxwxxxwxwxwwwwwwwvhwwxwwwgwvwwxgwvwwwwwwhwxwwwwxwwxwwWxvwwxwwxgwwwwgvwvgwvwwfwxwxwxwwxxwwxhwgwwwxfwwwxxwxxxwwxwgwgwwwgwxwwvwxwwxhxwwwwwxwxxxwwvwggfwgwfxwvvwvwfwfvgvwvvwgwvwwfwgexwffuvguwxwwwuwvvvvwghwfffvvugwwgfwfuwvvvfwewvvfwwwwfwvfvwffgvgvwwvwwfgvfwgvwwwwvwxvguwwwwvffwwvvgvwgxwwwwwgfwgvxxwwvvxhgwwxwvxxfvfwwffgwwwgwgfvwwvUwxwwggxvwwxvwwwxwwxvgvxvwvwxwvfwvvvwwwvwxvwwwwvvvwvwwvvuwvwgwfwwxhwwvvwgvwfvgvwwwxvwvwuvwxgwwvwwvxuwwwvwxwWffwfvwgVWgvwxvwvgfwWhfhvwWxxwvwwwwwxwwvwxvwwwwxxgwwxgwxwxxxwwhvxgwwhvhxxwwwwvfgwxwwwwwggfwwwwwgwwvvwxgwvhwwwwXxgwwwxvgggfvvxwwwwwwvwvwwwwxwvvfwwwwwwxgwvxxxvwwwfvVvwwwvvwwwvwwwwwwwwvvwwwfwgxwxwxwwvfwwwwUwxggwwwwwgwwwvwwwwxwxwxxxxwwvwwwwfvwwxvxwxuwwwxwfgvxfwvwwwxxxvwgvvwfwwwvwwwvwxxwwxwwfhwwxwgwfxwuvwfxwxwvvwvwwwwvwfgxxxvwxvwwwwgvwgwwWuhwwwxwvvwwfwxwwwwwwwvwxhhuwwwwxgfwxwxwvvwweuwvwwvgxxvgfvvwwwwwwwvxwxwvwwwwwgvwxwwwwuwwwxwxvvxWuxwwwxxwwwwwwxwvxxhwwwwwxwwfvxvwxghgxwgxuwwwwwuwwxvxxwwvvwvfxwwwwxwgwwgvwwwvwwwwwwwwwwwvvwgVvwwfwvxgvFvvwwfxwwwggvwwgvvhwgvgwwfwgxvwwwwwwgxwggwwgwxwwwvvwxwxgwwwgfvwxVfevwwxwxxwfwfgwwggwxwvwwgxwwwxwwwwfvvfwwwwxwwwgxvwxxwwhvGwwwxwwgVxxxwwwwwgwwxwwxxwxwwwwxwwxhwgxwwwwxwgwwvwxvvxxhwxvxwwwgwwgfxwxwgwwwwwhvxxxwwxxwwxwVfufwhxwwxwwggxxwwxxwwxwwwwwgwxwfxwxwxwxxhwwxxxxwwwwwxwwwxgvvwwwwvwwwwwwxexwxwgwwwwgwvgwwwhwwwfvwwxwxwxxxvxwvwfxwxxwwxwwwvxxwwwwwwxxwwxfwvwxwxwgxxxwwwxwxxgfwxwwwxxxxwxwwwwwxxwwxwxhwxgxwwwxghvwgwvwwxgwwxxwwvxuwxxwvwgwwwxwxxxwvxwhxwxvwxvwxwxvgxwxxhwvwwxxvxwwxwxwwxgwwxwwxxwwxxxwxxwxwxxwwxwwxxwwxwxwwxwwwwgfxwwxwgwvwxwxwgghwvwwvxwfwwwhvufwvVwwvwgwvwxgwwwwwwVwwwgwuwwfgwwwvgwwvvxxwvwfVvwwvwgwvgvvgfwwgwwwwgxwxgvhwfwgwvgwggwgvwfwvwxggwwgwuvWvwwxwggfgwwggwwXwggevwgwuxvvhwvgwvxggwvgwxwfgfhwxwfwwwWwwwwxwgxwwvwwwwwwvxvwgwwgfuwgWwwwvwwvvgwxhwxgvvhgvgxxgvwwwxwwwwwwxwwxvwwwvxwvwwwgwwwxwfxggwwxwwwgwxwwxwwxwwwwwwgvhxwwwwvwwhwvxxwvxxggwwwwwxgvwxwwxvwxxwwxwhwxhgwxwwwxwwxwgxwwwwwxfxxffwwxxhwxggxgguwwxwvxxwxwwxwggwwwwvwwgwgwwgwvwxxwwvxwwwwwwxwxwxwwwwwwvvwwwvwxvxvwwgxwhwxggwhxvwwwvxvwwxwhwgwXgwwhxwxvwxwvgwgxwwggwgwxghhwxwwxwwwwwhxxxxwxxwwwwxwwxxwxwgvxwxgwvxwxwwhwghwxwxwwxxxgwvvxxxgwwxwxxxxwhwwwgwwwwhwwxxwwvxxxhxxwxwxxwxxxxxwxxxwhwwgwxxxwwwxwxxwxxwxwwxwxfxxxhwxxxxwwwwxwgwwxwxvxxwxwwxxwxvwxxwxwxwxwwxxwwxwxwwwxxgwwxxxwgxxxwhxwwxxwwxxxxxxwxxwgtgwxwwwvVvfuwvwvwwwwwwvwwwfwwgvvvwwvvwwxwevvwgTTvfguvvfevvguwvxwwwwwwwwvvvwvwwwvwwwwvgvwwwxxewffwfvwwwwvgfvvwwwwvwwfvvfxwwwxwwwWxxxxxxeTTvvgfvfvfwvvvwgwxvvggwwwggwwwwwxgwxwxwwfwxxuwvwwvvvuvvxwxVvwwwxwvfwvwwwwwwWwxxxxwwxvxwxwxxxxxveuwwggwwugfwfugwwfwwxvvWxxuwwwvwvgwwwwwwwwxxwwxvvwfvwwgvgwwwwwvwvwvwuwvwhwwwgwxxwwwwXwxwwwfffwwvgwgUwwfwwfWwxwwwwwwwwxgwgwwwwwWwxwwwwxxwgvvvvvvwgwwvvvwwwwwwvwvvwwwwxxwwwwxwffvvugwvwgwwvwwwvwxwvwwxwwwwwwwwXwxxxxgxhwwwvvuugwwwwwvwvwvxvwwxxwwwXxxwwwxxgxvxwxwwfvvwffxxxwgwwwwggxxwhwxwwxwwvxxvvvwvwwgwvwuwwvvwwxwvwwxwxwwwwgxwwxxgvWwxwwwvvvwvvWwvwwwwwwwhwxvwwwxxwwwwwgxwwhwwwxwxwwwxwvvwwwwwxxxvwwwwvxwwwvvwhwgwwxwxxwwvwwwvwwwwxvvwwwwhwwxxxwwxtvwwwwvwwxfvewvwwvvgvwwxvwgvwgwvwxwvvuvwwffEdvwwvewwwwwfvfvxwvwgWuuwwwwfxxxxuvvwwgvgfvwwwwfgvwvwxvvwwwwvvxwxwgwwxwxfEdvwwvwwwgvwhvvgwwxwwwwwwwwxwxwwwwwxwwwwfwvwwwwwgvgwgwvwfxvwwwxxgwvwwwvvwvxwxxvvfvgvfwwwwwgvgfxxxwVwxxvwwwxwwwxwwgvfxxwwwwvvgvgwxwwwxxxvwwxxwwgwxxwwwxxhxxwxwxfvgvwwwwxxwwVevxxgwwwwwwhwxvwwwxxxvwuwgvvvwwfwwvwwvwwxxwwxxxwxwxwfVuvwwwwvxwvvgggvwwwwwxwvwwwwxgwvxwvuvvwhwwvwwwxxxgwxxwwwwxwxxwwvvvwwwxwvwwxxwwxxxxxxwxwwvwvwgwwwvxwvwvvxxwwwwxwxwwwxhwvxxvvwwgwwgwwwwevvxhxwvxwxwwwwwxwxwwwwwwxwvwxwvvwwxwxxwxwwwwwvwwxwwwxvvwwxwxwwwvvUwfwgfwfvfgfguvwgxgwwwfgvwwfwvgwwvwxwvwgvghxgxxxgvVwggfwegewvvfwgvvwvgfgwwggwgvxwwgvevvgwwvxwxwwfwwvxwwgwwxwhgwfwfgfvVwvwfwwfwfwgwwwwwvxwwvvfwwxxxwwwxvwwwxefVwgffgfwvwwfwgfgwvvgvhwwxwxwwwvvwwgwwwwxxwxwwwWgxwgxxwwfvwwfguvfwgvvwwgfwwhgwwwgwwwxvgfwfxwgwxwgxVvwwwwxwwwwwwxwgwvwhwgwvfvwgvwgvgfwhwvwwhwvwwwwwwxgwwwwfxwwvxXgxvWwhgugfwgvfwwwvwwwwvgwwwwwxwwwwgwxxvwwwwvxxwwxxwwxxwwxgxwwwwwfgwwgwvwfvgwwgwgvwxxfhxfgwwwwxwwvwxwwwgggwwwwwUvvgvwgvvwvfuvwwgwwwwwxxvwwwwvvxxwxxxwvfvwwgwwvwvwvvgwwggfwwwwwwwgxwwwvvwwwhfxwwwwwxxwgwwwxwgwgfufwxwxxwwgwwwxgwwwxgvwxxxwxwwvwxxxxwwxvwvgvvwvwwgwxwwwxwwgwwgwwwxvwxxwwxxwxwxggxwwwxwwxvwfwfwuuvwvwwwwwvwvvgxvwxgwwxxxwxxwwwxvwxwwxXwwwgvgvvwvgwwgwvwggwwwwvxggwvwxXgwxwwxWwxwguvwwggwwfwhwuxWuxwwwxwxwwhxfgxwxxwxwwwxxxwvwwwwgwvwwwxgWgwwxwxwwwwwgwxfvvwgwXwxwxxwwxwwhgvxgxwwwxwWvwxwwxxwxwwwwwwwxvvwgvgwwxfvwfvvwvwggwwwwwwwvuvgwgvwwgvwwxgTTvwvwwvvwwvfvvvwvwwfvvevwwwxwvvfvwwwwwwvvveewwwwggwwgxgwwwwvvwwwwxvwwfTTvwwwgwwxxvvvewvvwwwxfwwvwvwvwwwvxwwxwwwwwfwwwvfvwgvgwvwgfvwwwwvghvgwwwwwwwxwwxwwfvwwwwwvwwvwvwwxwwgwxvvvfgwgxwxwfughhvwxwffvwwxwwwxvgwwvvwxxgwgwwwuwwwwxwwwwvwwwvwvvggwvgxgvwwfvwwwvwvwvgevvvwfgwxwwwvwvvxxwwvvwwwvvxwvvvwwwxwwwxwxwwvwwwwxwfvwvwwwwvvwvwvwwwwwwwgwwwgwwxwxwwwxhxgvvgwwxxvfwwvwgvvxgwwwwwvwxxwwvvwwwwwwvwwwxwwwvwwxwxwxxwxvwwwwxwwwvwwxwwxwhvgvgxxwxuhwwwxxvfvfwwwwwwvwgwxwwwxvwwfxxxxwwwxxxxvvwwxxvvwwwvxwxvwwxxwwvwvvwwwxwwvwwwwxxgwwwevvvfuwvwwwffuwwvuvwwwuwwgvwfvwwvwwvgvwwwwwgfufwwwvwvfuwwwvwfvwvvwwwvvvxwwwvfuvfgwvvvwgvwvffvvvwwvgwvvwgvvvvwfwwwvvwwwvevwfvwwxwvgvwwufvwvxfwwwghwwxvfewwvwwwwwwwwwffwwvggwwfwwwvvwvwwwwwwwhwwvwwwwfwwvxwxwvufwwwwvfwwwxwvvwwwfvwwwwwwwwwwwxwwwWwfwvvwfwwwwxwvvvwvwwwwwxwwvvvwgvwhwvfxghvwwwwwwxxwwxxwwvwgxWfwwWwxwvfwwwwfwwwwwvwvwwgvvwwhxvwwwwwxxwfvwvvwwwwwwwwwxwvvwxwwwwwvwwvgwgxxggwgvfxwwwwwwwhxvwwwwgwvhxwwwvguwwwwwwvugwwwwvvguwvvwvvvwvwwvwwwvwxwxvvwgwwwwwwwfwggwwwwwgwvgxxwwvwwwwwwwggwvwwxvwwwwwvwwwwfuwwgxhwvwwwvuxwwvwwwwwvwxwwvvxwwwxwwgvwxxxwwwwwgwxwxwxxxvwxwwxwxwwwVggwwwwxwgvwwwvvxxwVvwwvwvwvwvwwwwxvwxwwxwgwxwwggwxwwggxwwwwwwwwwwwxwwwvwwWhvwWwwwwxwwwvxxxwxxwwgwxxeewwwwwwwwwwvwwwgwvwwwwwwuwwfvvwxxxxwwxvvxhWWwwvwwwwwxwxxwwvhwhwvwwwvwwvwwggwxwxfwwvVwwxuwwwfwvvvvwfvvvfvvwwwwgTUvwvwwwwwvxevuwwfvwfvwwfvwxxgwwwfvuwvDSvfvfvvfegwgWffvvvwfuggfvvfwvvvwuuwvwvgvwxvvwvvvwwxvgvwwvvvvvuwVevfgwvdSdvwwwvwwwfvwwvwvhgfwwwgwwwxxxwgffvgwfUudwvwwwfVevxffgwwVwfffwvvwwgwwwwwwwgxxwwggwwwwvwxwfvggwgffwwvwvfffvwvvwWuwwwwfvuvwwWWwvvxwxuwwwwvwggwvwwgwwfgvvxwwfxggwxwvWvvwgxwvfwgwxwwwgxfwhfwwwwXgwwgwhgwvgwxwfvwwVUfxwwfvwwwwwgvvwwxxhfwxwvwwxwwxgwwwvwgfgwvxwwwwwfxwwgwVgvwwfgxfeVwgfvxwhwwwxvwwwvxwxhxxwxwwvvgwwvfwwwwedvvgfvwwwwwvuvvxwwvwvfwvxwfuvxwxwxwvfuwfffwfwuvwgwfgwxguhvwxwwwwwwwwwwwxxvwxxwwhwwgwwxegwvuvwxffvwwwwXvggwwwwvvvhwxwwwhwxwxwwwxxwwgvwewvwwwgwwxggwwwgwwwwwwgwxxxwxwghwvwxxxxxwwwwvwfgwfwfvxvwfwfwwvwhuvwwwvwgwxwwwwxhwwwwwwwxwwvvxwwwfwvwwgwxwgwwwhwwgwhwvwfwfgvwvwxhwxxgwgwwwwwfWwwvvwvfvvvuvxwwwvwwwwvwwwwwgwwxwgwxxhxwgvwgwwggxwXxwvwwwgwwwxwwwwwgwgxxwwwggwvuvgxgxwwWfvxwxxwfvxdVegwufVuwewwfvuwvwwgwgfwwvvwfvwwwfwvxwvwwuwwwwwwfvvfvfvgfgevegvugufvwwwwwvwwxgugeufwwwwvvwwgugfvwgwvgwguhxwvfvwwgvVvvfvvfwvwwvWuwwwgvvgwwffvvwwewwvgwvwwgguvwgwxwvwwwegFuuvvvVvefxvwvuwvwwffgwwwgwgvdgvwwwvwwwxvwvwxxwwvvwwhwfvvwugfgwgfvwwweVfwwxwvvgvwwvwwwgvwwgwwvwwgvgwwwwwwwxwxugeguvvgfwwvwwwwfuvgwxwggVwggvfgwggwfWwhxxWfwwvwgvxvgWfxwwvgFgwvWwegvhwfwuxwfwwwwwwfvgfdgwhvwwwxxwwvgwwgwvwxxwwfvwwwwvwwxvgvwwvwwvgwwggwwgwxgwwvgwxgxxxhvwwvwxWvwwgvuwuvfvwwvfwxvffvvvwwvxvwwvwxwwwvwwguvwvwgxwxwvvvvtvgvwggvgvwweuvwwwwxxwvgvvwxvwgvwgxwwwwwwwwwhwxgwgwwhuwfwvwwwwvxwfwvwwwwgwgvxggwvwwwgvvxwxxwvgwwxwxfxgwwwwwxgwvwwxuwfxvwwhvwwwfvwwggwxwgwwvgwWvwwxxwwwwxxwwvgwwVvuwgwvxwxvUvvwwwggwhgxwwwWvwwgxgwgwwwwwggvgvxxxwwwwfvvwvwvgwxwwvxwvgwgwwgwvgwfwvxwhwwvggvxwvwvwwgwwxwwxwvwwxwwwwwvxwwwvxwwwwvwwwwwwwwgwvwwwwxxxgwxvxwgwwwwgwxvwwvwwwwwxgwwwwwwwvwwwwwxgwwwxxwxxvwwwwvvwxuwvvwwgwvvwwggwwwwwgvwvvwwwwwvwvwwwgwvvwwwvvxvwgvvwwvfwwfgvwwwwduVfxwwgvwwhwwgvwxwwvghwxxwwwwwvwwwvwwvwwfdfwwgggvvwwwwwvwwwwwwwwwwwwvwxuvvwwwwvvgvvxgvvwxwvwwgwxwwgfwxvxwxwxxxggwwwwwgwwwwwwwwgwwxfvuwwwwwwwwwgxugwxwxwwwxwvwxwvwvxwvxwgvxgfvvhxwwxxxwwXxwxxxxwwwwwwwwwwvvvwwvvwhvxwxwvwwwwhwxxxgwwhxxwvvwwwvwwwvwwxxxwwxwwvxevxwxvwwxhwwdfwvwgfwwwwwvwwwwxxwwvwwwwxwwwwuwwduVgwwhvwgwxvwwgxgwwvwwhxwxxfwxwwxwxxwwwgwvwwgwwxwxghxxxxwwwvwwwxxwwwxxwwxxxgwwwwwwvwfwvvvwwwvwwxvwwugwxxxxwwwxxxwvwwwxwwwwwwwwxxgwwwxxxwxxwxgwwwwwwxxwvvwxxwxxxwxvwwvvxxwwwwgxwxwwxxxxxwwwwwwxwwwwvxxwwwwxxwxxwxxwxwxwyfwwxwwgvwvwwvvggwvwgwfwwwwwwxgwwwwwWgvwghvwgvfwxwVfwwwvwuwfffwwhgwfwgggwgwWgwwwwwwwvgwwgWwxwxxvwwwwwwwwwwwwgvwxvgUwwwwxfwwhgxwxwxwwxwxvwwvwfgfwwwVwwwwwwxUgffgwfgwwwwxwwwwwwwwwgwvxwxwwwwwvvwgwwwwwxfvVwwwwwvwvwwwgvgwxwwxwwwwwxxxxwwwgvwxwwxvxwxvxwxgwvfxxwxwwgwwwwwwggxwwwwwhwwwwwgggwwwwxxxvwwwhwwwwgfwwxwvxwwxwwwwwxxxwwwvwwxwxwfwwxwwwwxVwwvwfwUgxxwwwwwvvxwwwuxxwxvwxwgwfwwwgxxwvxgxgwvvwwwfxwwwwwwxwwxwwwxwxwvwevwwwvwvxwxewfgWwgwwwwxwwwgvwwxwwffwwxwwxxwvgwwwxwxfvvwwxwwxwhvwwwwwwxxwxxxwwwvxxgvxwwvwxwwwwxwxxwwwwwwxhwwwgxwwwwfwxfgwwgvxwxwwxwwxgwwwxxwwxxwwwfvfwxhwwxwxgwWgfwxxxwwwwxvwxwgxxwwwwwwwwwxhfwwxgvwxxxxwxwxxwvwwgwwgwwwxwxwxwwwwgvwxwwxxwwwwxxwwvwxxgwwwwwwwwxvhhxwhwxxswwgfvwwwgwwwwvwwwwwwwwguwwvggwwfvwwwwwguwvwfuvvvfvwvgvwvwfwwwwwwwfwwxwWEcuuvffwwuwwvwwwwwwxwxfvwwwfvwgwwwwwvwguwvwwwxwwvvfvwwvwxwwwxvwwwxwxxwhVEcuuggvwwwwwgwwgwwwwxwwfwwwwwxwvwxwvwwwxxfwuwfvgwwgwxwwwwwfvwwxwggwxwxvfewwgwwwxuxwvggwxwvwuxvvvwwvfWwwvwxgvgwvwuwghwvwhwgvwwhWtvxxwxvvwxvxxwwvfuwfwwwwwhxwwgwgxvxwgxgwwwvwwfvwwwxwvwwxxwhgxwwwfwggVdvwwhgwwwvgxgwvwxhwwxwvwvwwwwxxgwvvwwwwvwwwwguwvwxwvwwwwxxxwvwwwgwwxwguwuwVwwwwvwwvgwwwwxxxwvwwggwwxwxwwxxwwxvfwvwvwwxwxgvvwhwwwxvwwwwwwwwxgwhvwxwvwwwuwwxwwxxwxxwwxxgwwvwwwwxwxxxvffwggwwghgwghwvwxwxxwgwwxvgxwxxwwxhwwgxgwxxwwvgwfugxxwxvxwwgwxxgwxhwwvhgvxwwxvgwxwwxwgvxugwwxuwxxwxwwwxwvwxxwwwwwwwwwxwwwvxxgxxxxvwvwwwwxwwwxwdgwvvwfvwveUwwwwvwwwwvwwwwwgfwwfwvvwvwwvwwvwvwgugwwwgvfwEbvvguvvfvwwwuwvvvwgwwwvwwgugvwfvwwvGgvwvwgvwvwgxgwwwwvuvfffvgfTwddUuvfwvwwgvwwwwvwvvvvwfwwwvwwgwxwwwgvgwxwwvuvweuufggvuwwvGwwwwgvwxwwwhwvwgwwgwwvwwwvwxxwwvwvwgxgwwfwvwvvgvvwwvwGtwvwvwfggwvwvhwwwwwwgwwwwwgwvwwgehwgewfwwvwvvgvwwwwgwwwwwfwvwfgwwgvwgffwwgwwwfgwwwwfgwWwxfghwWwwffvfvwefvvwwwvwwvwwvWvwgwfvwvwwwwwwwxxwwuwgwxxwvwvvwwggwwxwvfvwwwwgfvxwxxwxwwwwvuwhxWwxwwxhxwwwwwvvwvgvwwvvvvuwwgwwwgvxwwgwuuueuwvwwwwwwwwwwwxxwxuwfvuvwgwgvwuwwggwwwwwwwvvWwvwvwwxvwwvwxXwgwvgvtwvfgvwvgfwvwgghxwxvvvwvfvwvwgwggvfwxhwhwwwwvwwxwfwVwuwvvwwwwwvwvwwgwwxgvxwwxvvxwwxxwhwvwwwwgwxvwwguwgvvwvwwwwvvwwWvwuwwwwwwwghwwwwwxvxvwwgwwxwvwfgvwwxxwgwwvwvwwVgxwwgggwxwwwvvgvgfvgwgxwxwwwwwvwvtvuwwwwwwwwwtwxwVewfxgwwwwwwgxwwwgwwwwhwwvgxwxwvvgfwxwwxxxwuxwGvxwwwwwvxwwgwwwwvvxwwwwvwwvxugwVwwfvwgvwvuwxwgwvwwwwuwgwwwwgvvxwwwxgwwgwwwwwwxvwwwfgfvffvvSeFgxwwwwWgvgwwxwvgwguvuWgwwvwwwwwgwwxwgwxxwxwfxxgwvxgUuvvvwhgwwwwwwwwwxwwvwwvxgwwgwwwxwwxwxwxvwueeWgvwvwvvvwwgwwwgwxxwwxwwwwxxwwxwvxxxxxWwxwgwwggvwwwwxevfggvwwWwdvVwhwvxgvwwggwwwwxfvgwvwwwwxxwhwwwwwwwgwuvgwwfuwwwhwgwHwvwghxvwwwwwuxxxwwwxwxhhhwxxwwxgvwfwwfvxvvwxvwwwfvgxgwwwwwwwxwwwwxwhwvxxwwxxhvxwgvwwwwuwwwwxwvgxvggwxvwwwwxwWwwxwwxxgwwwxwxxwxwwxvwgvvfwwgwwvfwwwuwgwvwwhUuvvvwwxwxxvwwxxwxhgwfSeFgwwwwvwwvwwwvwwwvxwvwwwwwxwxwwxxwxwwwxxxfwwxvwwwwwwwwwwfwgwxxwwxwxwwwwwwxwfvvwwwwxwwxxxxgxxwwwgvwwwwwwwwwxxxwxxxvxwxxxxxhxwwwxxxwWwgwwxxgffegvwvwxwvxdvVwgwgwwvwxwhxwwvwxgwxxxwwwwvwxxwwwwxwuwgxgwvgwwwwwwwvwwwxwwwwxxxwwwwwxxwwxgwxxwxWxwhwgvwwvxwxxwxwwvxxwgwwxwwwwwwxwhwvwxxwwxxxfwwwwxxfwwxwhwvwwvwwwxhxhgvwwwwwwgwwgvxwgvwwuwvwvwVvwwwwwwwwwgwvgwwffwwwgvvvwwwvwwwgwwwvwwwxwvvwwwfvgxwvwgwwvvvwvwffxxvwwwwwvwwduVfwgwwwvwwvgwwwfvwxfwvwwwdfwwwwwwxwvwwwwVggwwwwwgwuvwwwgwgxxwwwwvwwwxwwvvvvfegvwwvwwwgwwvwwwfxxxwwgvvgwvwfgwwxxwwwwwvwvwvgwfwgvwwwuvgwwgwvwvwwwvxwxxxwfgvVuvvwwgxwwwvwwwgwwvwxxwxxxwwvwwvwwwgwwwvvhwxfvgwxhvvwvwvvvwvWwwwwwxwwxxwxwvfwwvwwwwvwxwwxvwwwfwxxxxwvuvwwxgwwwwwwwuwwxxwxwgxwwvwgwfgxwwwgvwvwwhwwwwwwwwvgwwwgxvwhwwxgwwxwwwwvwwdfwwwwwxwwwgwwvwxxxvvwwwxxwxxwvwvwwgfwvvwwwwwwwduWfvwwwxhwwhhwwwxwgwwwvgwwwxwwwwwuwxwwwwgwxwvwxwxxxxwwwxgwwxxxxwvvwwwwwwwxxwwwwgwwgxwwvwwwwwwwwwwxxvwwvvuwwuvgxwwvwxwwxwxwxxxVwwvwxwxxxvwxwvwwxxwxxxvwwwwwggwvxgxxwgwxwwwvxwxwxwwhwxhxvuxwwwwwvgxwuwgxxxxhvwxfgwwwxxxxgxhwwwwxvwvwxxxxwwwxxxvwwwvwxwwxwwwwxuvvvwwgwuwvwvvwfvvfvwwfvwwwvwwwwWvwwwwvgwwwwwvgxfuwwvvvvwvwgvefwvwvuvVwwvfwvvvvwwvgvvwvwvWvghgewwfvwfvgwfVvvfvwvwwvwwfwvwwvwgwwwwwwxxwwwvvvwvvvvvwwvxxWvvwvwwwWwwgwwwvwgwgwfwwwgwvwxgvwvwwwvwwxwgwwwvvvwwwhwvfwwxvwwwgxwwhfwwwwwwwwggwwwwwgvwwwvwwvhwvwwxwwxuwwWwwwxxwvwgwwwwgxgwxvghhwxwhvhxgwwvwwwvwwxwwggwwwwxfxwwgwwwxwxwgwxwwhwgxwvwxxvwwvxwgwwxwwWxvvwwwwxwwgwwfwxwwgwwwvwxwvvuwvvwwvvvwvwvwvwwwwwgwwxwxwwwwvvwwwwwxvgvuvgxxwwwwwwhvwhwxhfxxwwgxvxxwwwwwvwwvwwwwgwwwwwwwwwxxxvwxwwxwwwwxxwwwxhwxwwwgxehxvwwxxxwwwxwhfhxhvxwwwwwgwwwwvwwxwgwwwvwxxvvwwwxvgwwwwgwwwvxwwwwwwwxwxwwwwxvwxxgxwhvwxwgvvxwwwwwwwxwwwwwwvgxwwwwwwxgxwvwxwvwwwwwxxwxxwxvxwxgvwxxwwxvwwvwwwvfwgfwvgvUfwwgwvwwfwfvwvvwwwwwvfgwwuvwwwwgvfwweewgwuwvwwgvgwwvwwvvxvfgwwfwguevvwwwuwwwwwgwvfwvwwgwfwwvwgvwvwwwwggwUvwwwvwgwfwgvwvwwvvvwwxxvwxwuxwwxwwwvvfwewvgwwwwwgvwwwxwxvvfgwxwvvfvwwewvwvwhwwwwwxwgvvwwwwxwvwwwwvxwxwwwwUfwxwwwvfwwwwwwgvwgwvwxwgufwxfgfxwwveewwxwwuwwvwwgwgxwixwvvwggggvuuwwwwuxvwwxhvhfwgghgwgwxwwwwvvwwwwxwgwwwUgvgwwwwgwwgvwwwfwwwwwwxxwxugwvvgwwxgwwfwewwwxvgwwwgggwfxwvfwwwwvwvuxwwwvwvxwwgwxwvfwvwgwwvwxxvvfvxwwxwwvwhxwewwwxwwvvwwwwwwwwwxwwxxwxxxvwgxvvwvwwgwvwggwwwvwhxxwwgvwgwwwvwgxwwwwvxwvxwwxwwxwgwvwwwvwwvwwuhwwwvgvvvvwxwwxxwvwhwxgwwwxwwwwwxvwxwxwxwgwxwvwwvwwwxwxwxwvxxfwgwwxwwwwwwxgwwwxwwxxguwwxwwhwgwvxwwgwwwwvwvwwgvwwwhvwxgwwwfgwwwwxgwwwxwxfggwxhfwggxwwxggxvwvwggxvwvvwfggwgvwwfwwwwvxvwxwwxgvwwuwxwgwgwwxwwfwwxwxxgwxgfwwwwwgxwwvwgwvfwwwwxwwxwwhwwxwxxwggwxvxwwwgxwxfxwwwvwvwfffvgwwfwvxvwgwuxvguwxfvfwfwxvvvwwwwwwwwwwvvfvvweggfvvfvfuwwvuwfwvwfwwgvguwvggvwwwwvwvvwwwwvfgwwwwwwevgvfwwvwwuwvwvvfvgvwwwwwwvwxfwwvwwwwwwwgwwwxwwxwwvguwvgfvfwvvvwwwvvwvwevWxwwvxfwwggwwwwwwwwxgwwvwvwwuwfwhvvvwwgwfwwwvgfwgwfvwfwwwvwvffxfvgwwwwxvwwwxvwxgwvvxuvvvvwwwwvwvvwvwxwvwwXfvwgWwvWxwxwvxggxvwwhgfwwwwxwuwvgwwwfwwwwvwvfwggwwvgwwfwwgvwwwxwwgvxwwWwWuxwgxfwvwfgvfwvxwvwfvxggVwwwgxwxgwvvwvwwuwvhvwwxgxgwwwwuvwwvwvwwwwwwwvvwwxwwwwxwvwwxwwwwxwwxwwwfwvvVvwwwwwwxwvxwwwwwwwwgwvwwvwxxwwwhwwvfwwwwvgfgwwgvxvxwxwwwgwwxwvwgvxwxxwwxxwwxgwwwwvxxxwwwwgxxwwwwvwewWvwwxwwwxwxvhwvwhxvhfuxfwvvwwwwwwwvwwwwwwwwwvgwwwxxwwwwwwwwgvwwwwwgggwwgvxwwwgvxwghuvxwxfvvwxwhwxwwvwwvxxwwxwvwgvwwwwfvgvgVxwVexwgfwxgwwwxwwggfxwwxxwxxwgwwwwuwxwxwwxwwwwgwxfwvvxgwhxwwwuwwwgvwwwfvwwwwxvgvvvwvvwwwwwwxwvwvvUUwwwvvwwwwfwwvwgvwvwvwww5cwvfwwwvwwgvwwwwwVWxwwxwwwwvwwwwwvxwwwvwwwvvwwvvvwgwwwwwvfwwgwVUvwwfvgwxddefwgvwwwwwhwfvwwwvwvwxeuuwwgwhwxwwwvffvvwwwwwwvxgvwwvvwWxvxwwwxxwvwwwWuwwwxwwfggwvvwwwwwwwwggwwfvwwvxxfwwvvwwwwwgvvwwwvvwfwwwwvwwwxwwwvgfwwwgwwwggwxwwwwwwgwhgwwwgwxvwwxhwwwwwwwwwwwfgwwwxgwwwxvvwwffwvwwwhwxvwwwwgwwwgwvwgwwvwwxxxxhwvwgxhgfwwwxwwgwwwwgfwxhvwwffwwwwgwwvvwwgwgvwwwwvgwwwwweevvwwwwwwwxvfwvwwxxvgwgwwwvwwgvvxwwwwfwwhwwwwwwxwxvvwxwvxwwwwwxgwvwwuuwvvwgeuwwwwgwfvwxwxgwwvwwvhhxwgwwwxwwwxgwxwvfgwwwwwxxvgwwvvwwwwwwwwwwxxwxwwwxwxxxwwwwwwwwgwvwwgwxwwgwwwwwxxxwvwgvwwwwxwwwwwwvwxxwwwvwwvxggxwwwxxxwgwgwwxwwgxwxwwwwvwwwuuwxwxwxwvwwwfvvwxwwvwxwxxwgxvwwwwwwwwwxxvwxxxwwwvwgXuxvwwvwwwwxgxgxxxxwvgwdwffgwfvvwuwewvwggvwfwfvvfwfvefwwggewgfwfuuwvwfvwfvWwvwuwvwfwvfffWwWTwevevfVewvgfffwvwfwfgvgfvfvfwegfvvvvVfgfwgwwfwwvWvwfwvxvvVwwgwfvwgfVwfvgwfevffgvgwfuffuwetfwewwwfwgwewfgfgwVwvgevvVfwegfvvgwwffwvxWwgfwwwxfwgwfvevuvgfvgwGwwvvwhwgxwggwwwwvwgfgwwwvwwvwvweVgfwvvwevvgwwvhvgVwvwgvfxwgwwgwvwwgwguwwgghwwvwwxgggwgwgxwwvfVwfghxwwggwgwwwvwwwwwfgvxvgwwgVwwwWwhWgwgWehxvwvgggvvxfwwxUFuegwgwgwwwwfvxwguwwwugwwxuwfwgggwwvwwwwuwvwvwwxwwwwwwgwwwwwwggxggwwxgwwvxhfwxvwgXEvwgwggwxxwgwwxwxfvvvwvvwvvvweVfwvggwvvwwuwwhwfgvwggwvxwgwwvvggwwwhwgvvvwfgvwugvwfvwwgwwfwfggvwvgwevfwwwwuWvxwxwwxxvxxgvgwwwxfvxfwwuwwWwwwuhwwwxwgwwwgwvxwvvxxgwwxwwghwgwwwwxgwxvwfwwugvwwvxhwwwxwxgxwwgwWxvwwvhhhwwwwxxwggxxgwwhwWgvwxvgwwVvwfwwvwwffwxwvgguvwhfgwhgwwxwwwxwWwgwwgxwxwwhwvxvwgvfwwwwxwxwgwxvvwwwwwwfhwggxwfgwwxwxxhwwwwfwwwwxxwxwxxgwwvwgwwwugwwvwfwgxgwwwwwwxwwwwwwwxxfvwwwwvwwvghwwwvxxwwwwwwwxgwwxgggwwfwwwwwgwwxxwwfwwwwgwgxfvgwwwvfwvwgwevxwwwxwwvwWwvvwwwvvvxwwvwgwwxwfwfwfvVvhvgfwvffwwgxfwwwgggvvvwwvwvwvfwvfvxwwwwwxxwwgwvgvffvwgwwwvxwwvwwwwwxxwwgwvvvwwwwvxxwwxwwvwwwwvwfffvfwwvvwwwwwwwwwwwwgvvwwwvwvwvxwwxxgwfxxgwvvwfwfvwwewwvwfgWwwfgwwwwvgvwwvxwwxxwwwwwwxwxwgffwwfvwwWgwwvwfwwxgxwfwwwgwwwvgwwwhxwwhxwvwhggwgxwvwwwwvvgwwxvxwwvwwxvwvxxwwvwgwwwwxxwwwwwwxwxwwwvwxvwwwwgfwwxvwwwgwwgfxxxxwwxgvwwwwhvxxxwwwwxvwxwvxwfwxvwwxwxgxwwwxxhxxwxwwwvxhxwwwwwxxxvffvvfwxgvwwwwwwggvwvxgwwwwwgwwwxxhxwxxwhvwwvwfwwwwgxvxwxvwwvwxhwwxxwxwwgxwwxwwwfwwwxwgxwwwgxwxwwxxwxwwgwgxxfwxwgwwwwgxvwwvvvwwvwxxgwxwwxxwwggwwvwwwwgwwxgwwxwwwwwwhxwwxewvwgwufxwxgwwwvwxwxxwwxxxxwxvwgvxwxwgvwghwxfwwwwxfvwwwgxwwwvwgwvwgxwwgvwwwwxhxwxgwxhwwgxwwvxwwgwwxwwxvxxxwwwhwhwwwwgwwgwxxxwvwvgvvvuwvwfwuvvwvvffgvwwwvvvvwvwvwwxwwwwwwwwwwxvvuwwvvvwvgwwgfvgwwwffvvwvvewwwwxwvvwwwwvvwwwwwgvxxxwwvwfwvwvgwvwwwvwvwfvvvwwwvwvwwwgwwvwwxwgxwvwxwvwuvvwwwwwwvvvvgwwgvwwwvwuwwgwwxvwhwxwwwwgvwvwwwwvvgfvgvwvwvvvvgwvwggwwwwvxwwwwwwwgwwvxvwwwwwwffgwwwfvvvgwwgwgxwwvwxfgvvwgwwwvwwxgwwwhwvhhgwwvwwwffvvwwwvwwwgwwvwwgwwxwwwwhvwgvxwwvwxvvvwvvevwvwvwuwwwwwxfgwwwwxwwwwvgxwwvxxwwwwvwxvwvwwwwwwgvxwvvwggwwxwwvxwxxwwwxwwwwwxvwwxwwgwwwxwwwwwxwwvxwwgxxwxxwwvgxwxwxvvwwvwvwhwwvwwwwwvgxwgxxwxvhwxgwgxwvwwwwwwxwwxwwwwxgwhxwxwwxxwxxwfwwwfwhwxwwvvwwgwwgwwvwwvxxwxwfwxwwxwgvwhwvwwwwwwwgxwvwwgvwwwvxhwvgvxwwwxwxwwvhwwwwwxwhwgvvvwwvxxxwvwvwwhhgwwwwvwwwvgxxgwfwhgvwhgvvxhggwwxxwwvwwwwwwwwwwvwxwxwxwxgxwvwxwvwvgwugVwgvfwgtwwgvvgvvwwwffxvwvwwWwewfgvwwwwvwggfevvwvgvwxwwfgvvvftfuffvgwvffVuvfvgvfwvvgwfhvVffVvvvwvvwwgfvvwxvWwwwxwxvwffwfgeevwfvwvffWffwwfvfvfwwwwvvffffwvgwwwwwwvwfwfwwvxvwvgUffweVvvvewwvggvUggwvfwxwwgfvfvvwwgvxvwwwgwxwgwwwxwwwwwgwgfvwfwvfewwwwvffwwwwwvgvvwwwffVwwwwwwwwwgwfwvwvvwgxgvwfwfwvwvvefvwVWWwgfxxvhwwvwxWVfvvVwwvgwxwwwwvvfGwxGgwgwvxgwvwWvgweVWvwwvgvUggwvwfgfwwxvvgwvwwXwwwwwvwwvwwwgggwwwwvxwwvgwwufvwwxvwvgggvVxWfugwwxwfwgvxvvwwxwxwwgwwggxxhwwxgvwgvuwvgfvwwwvwugfwgvvvvwvwggvwwgvwwwxwuggwfwvwuvwwvwwfvggwgvwvvxxvufvwvwwvxwwwgwwgwwwwwwxxwvwwfggvgwefwwwghwexwwxVwwvxwfwwwVwwvwxwwwxwwwVvuxgwwexvxwwgvWwwfwxwvwwxwvwvxwfwwvhhwgwhvwxxwxvVvgvvwVuwgggvfvfwwxfgvwvwxwwFvvwwhwwwwwwwwgVwWgwxxxwwvwwxxvgfwgwgwvhwwvfwvfwwfxhwwggwwvvghvgwwwxwvwvuWxgwwvwuvwfvwwwwvgwwhgvgwwgWxfwwwwwuhwxwwwvwvvxhwwxfgxvxwfwwwhwvwwwwvwWwgxgwxwwvgwvgwwfvvwfxevvwvuwwwwwvwwwvgvWgfwvxvfwwvwfwfwvwUdvwxvvvwfuwwvvwfwwfwwgvwwwvgvwvvvfvwwWfvwwvwxwEcvfwvvfvuwwvvwvwggewvxwhwwwwvwwgWdfwvgwvgvvwwgvvvvwxwwgwvSdeuwvwwwvwuvwwwwwwwfufVfvvwvwwxwwwvxgugxwgwvVutvwwWwwwgxwwwwwwwxxwwwwwwgvwxVufgfvgvwwvxvvvvfvwwwvwvwugvugwvxvwwwwwwwuwhvwvwwwgvwwwwvgggwxwwwwwwvwXwwfghWvvvewvvfwwgvgwwwxwghxwwwggxgwwfwvwefvuwwwwxwwwwxwhwxgwwxwuvwvwhwwwxwwvwwgvvxwwwwvexgvwxwxxxwgwwwxvwhwgxwwvwwwwgwfgxwwwwwvwgwvgwgwxxgwvvvvvvwvgvvxwwwvvvxwwwuvwxtuuwwwxvwxxvvfvwvwwvvxxxffwwhhwwwwvwwvxwwvxvhwwwwwggxwwwvwuvvvxxxvvwwWwxhwvuwvwvwwxwwwwwxxxwfwfwwvwwwxwwhwxvwwxvxwvwwvwwwwvwxgvwwwwgvVwwgwvwwvwvwgwwwwwvwwwxhwvggwwxgggwgwwgwwwxwgwxwgfwwwXggwwwwxwwwwfWggwgvxwwwvxwwwevvhxgvfvwwwxxwwwfwxwwhwvwwwwhwxxvwwxgvwwgwvvwwxfwwxwvhgwwwwwxwwwxwwxvwwgwwwXvvgwwevxfvxwwwvwfgwvxvwwwwvwwwgvwvgwwwwwxvwwvwwvvvwwwwwvwwvwgvxwwvvvwfvvfuffxxwwvgwwvwvvwwwwwdtVWgwwwwwvwwwvfwwxxwgfgfvxwevwwvgvvwwwgwgfwvvwwwevffwwwwwwvwwwwwwxggwwwxvxwxxxxwwwwxwwwwwwwwggwwxwwwvwwwufhwxfvvwwwwxxxvwwgwwyxwwvvwwWgwxxwvvwwwvwwxgwxwwfvwxwxvxwwwxvwwwwwwvwxxgwxwwxwwwwwwwxwvwxxxwvwxwwwwxwgvvxvwxgwwxwxwxwvwgxgwxwwxevwwwfvwwwwwwwwwvwwxwxvwwwwxxdtVWwwwxxwwwwxwwwwxwwwwxwwwwvvwwxwwwwxwwwggxwwwxhgwwvxxwwxwhwxwxwxvwvwuggxfvvwwhwxwxxvwwwvvwwwwxwwwvwwgwwxxwwxwvxwxxgwxwwwwwvwxwwvwwwwxxwwxwxxwwwxwxwxxxvgvwwxwwgwwuwfvvuwvwwvwwgvufvvfwVeggVvgvfgwwvwfwfvwwvvuwVevvvfvvvvwwgwvvxVCfvWUvfgevwgfwvwgfwwfgxvfFwfffvfvggwvwuwvwfvffgvGwwxxvwwvvwwwfuwVfwvvvvvfduuVvwvggwwewwgvwuwwvxwxwwwfwvwwvwwwwgwvwffvwffWvvwwwggvvewWg7wxgvvffwvwvvgwfxwvwwwwwwwgwvxwwwwgwwvggwgfwvgguvwvwwVEwwwfgwwuvvwgvgfwvwwuxwxvwwwuwwwgfwxwxwwwwvgwxhfggvfwgWvfwvxwwwhxvFhXTwwwwhgwgwwxwvwfwwwwVwhhExwgwhxuvwwvugwvwVfuggvfwtwvvWfwwWxgwfwvuxgwfwxxwvwwvwwwhfwxwwwwgwwwfgfwxvwgfwxwUhX6xwgghwfvxwwwvxxwxwwvwwwggwwgvwvgwwwwvvgvwwwgfgwwgwxxwgwwwwwwvxwgxwxwvwwwwwwwxgvvVvwwwwwweufgfvgxxxgfwwwwwwwWwwwwwvwxwwewwwxwwgwwwvvvwgwwwwvwvwwgwxgwwvwwwxggvxxwwwvgwwxhvwgwwwvxwvwvwwwgxhhvxxwwwgwwwXwgfhwwxgwwgwwwxgwxwwwwwwwvvwwvxgwwwgvwvgwgxxxwwfgvgvwwgwwwxwxgwwwwwwwwwwwvwwgwxxhwwwwwgxxUxxvxwwwvwgwwxwwwwvgwwwwwfwxvvwwxgwwwxxwwxxwwwwfxwxwffwxwwwwxwwgwwwwxwxgxxwwwxwvvxwgvwxwxwvvhwvwwxxwwwvwggxwwwwgvgwwfwwvwwwwvxxxwwugwwvwwwwwwwwgwvxxxfwwgvwwvwwwwffgwfvgwfwwfvgwwvvwwWfvvwwwvgevwwWvwxwxxfgwwwwuwwxxwwwvwwwwwxwwwggwwwwwwwxwxvwfwwwwwwwwwwwxxxfwewwwguwwwwwxgwgfvvugwxggfwwwwwwxwxvxwwwxwvxxwwuwwvwwxggvwwxwwwxvwgwwxwwwvxwwwwwwxwvfwvwfWwvwxxwxwwwwxxxhgwggggwvwwwwggwwwwxwgwwwxwwvxwwwwwxwwxwwfvwwwxxwxwwwwwwxxgwwwhvxgwwwwwwwwuwxxwwgfxvgxxwwwxfwwwgwwwxwwgwxxwxwfvwwwwxwwxwvwxwwwwwvwxgwvwxwvuwVuwwxwfwwgxxwwvwwwwwwgxwwwwwwxxxwwwwxwwvxxxxgwwwxvvxwxwvxwwwxxxwxwvvwgxxxwwxwvwxvxgxvxgwwvxwwxxxwwgwwwwxwxwwwwwwxxggvwxxwxxxxxwwxxwwwwwvwvgwvwwxwwxwwwwxxwxhgxwgwvwwwvwwxwwwwhwwwvvfvwxxxwwwxwwwwhxwhvwxwwwwwxwwxwwxwgwvwxwwhwwwxgvwxwxxwxwxwxxtwwwwvwfuwvvwfwvvwvvwwguvwvwvvvwvwguwguvvfvwwvwevwxvwgvvwwgdwwwvwgvewwfvgwgvffwfwwxwwwWTgfvvvvguwwwWfvvwvwvwwwWwxwxwwwggwfuwwwwfgwgvwgwvvvwwvwwvuveudugvgwvffvvwwwvvvggwfwwfwvvuwVwvvwxvwgvggwvuvwwwxwvfvvgwwhwHwgwwwwwwvvwwwgwfwugvvvgVwvwgvwvvwvxwwvwvvvwwfhvwgvvvgvgvwwwwwxwwwvwwwgwugwwWwwvwwwwxwvgxggwwfwxhgwxwgxhWewwwggvwgwxgVhwvwvwwUvdwguwxgwvwxvwwwxwwwwwwhwwxwvgfwwuwgwvwvxwvwwwwwfwwwwxwgxwwxwwggwgWFhwwvwwwwxwxwvvgegwgwwwfwwwvgwvwwwwvvwwwwwwvvwxwwwwwwxuwvwwwwuvfwwwwvwvgwwwwwvfwwvvgwxgwwxwvwwwvwgwwwhwfwwwxwxvwvxvxwwvwwvvwwwwwwvxxxgvwwxvgwwwvvwvwwwwhxwvvwwvwwxwxwwwggwuwxwWxgxwwhwvwxwwvwwvvwxfuwvwwwwxwwvwwwgvhwwwwuwwwwvwwvwvgwwvwwwxwxxwwxvhwwgwwxxwxwxxwwxwwwfwwugwwvxwxwwvwwxwxwwxwwvxxwwxxxwwwwxxwwwwwvwvwxvxwwwwwxwwwwwxwxvwvwggwwwwwwggwwvwwuwwVvgwwwwvgdwufvvgVexvwvvvfgwxvgwfewwvuvwfwuvfwfwfvvwwWwggwewfguguwUvgGTvvwWvfvfwwwuWvfdvfvVwfwuwwxwWvfwhwfWvwwxwxvvwwwfUuvwwfwwvgggvveugggwvxvwvwggfwfwvwwwwvwwfvvvWwwfwwwwwwvvwfffgfvwxvwwwwvvfgwgvHwvwwwguuvfxwggxvvxwwvvgwwwgwwvwgXwwWvwgVwfvufwvxggewwWwwwfwwvvgfgvvgxfwfxxfvgvfwvWgwvwwwwggwwxvwghwwwwvfwxWwwvggwVgXVffwxgwWwwwxfwggvgXHewgwwWgfwfvwvWuwgvwvwvvwggwwfvxwvgVvuwwwhwxvxxxwwwwwwxgwwwvxgwfwwwgwwfwgwwwgWXGFwxwwwwwwwxwhwxxwgwwwwxgwXxgwwxwwwxvwgfwwwvwgvgfwwvxgxfwvgvwvxwxwxwwxgwxxvwwwwxvvutvUvvxwvugwvxvuggxvwvvvwwxwgwxgwwvxwwhXvwwwwWhwwvwwwwwgwwuwwwwgwvxgwgxwxwwwgvwwwwgwwwvgxwxwwwwwwvwxxxvxvwwgwwwvxwvwxwfxXwwxxwwxwxwwxxwhwvHXxwwwwffwfggvxxxxuwfwvfgWvxvwgwwvwwxwwxwxvwhwggwwwwgwwxwwgwxwvwxwxwxwwwghhfvwxhxwvxwhhwwxwxwxwhhwhvvwwwwuvwxxwvwfwxxhgwwwwwwwxwwwwwxxwwxhwgvxwwxwwxwwgwvhwgwwxxwwvxxxgwwvwxxwwxWwxwvwxgtfvwfvvwewuwfgefuwwwvewVvvfwwwwgWVwhxwwwwvxwxgwvwwwuwfWTggvgwgvwwwggfgvgvggghwhwwvxfvvwxxwxwwvvvxhgvvwwgwwwwwvwvvxvxwfhxxwxgwgVuwgwgwwwvwfvwwwwwwxwxgxwwwxxxwxxxyxvwxvwwvgffvefffgvwuwwvwwwwgxxwwfgVuefgwwxwvwghgxwxwxxwxgvwggffvuwwwvwwwwxxhwwxwxvvfgxvwvwwxxwxxwxxwwwwxvfffffwwwwxuvvxvwwvhwwxxxxwxhwwxxfuvgxwvwwwwwxxfxxwwgxvxwxwxwxwhwfxUfdffeevUfFefVfevwgwvgvvxvwgwgwfvwwwvwxvvwwuxwxgVevvgggfgVVwwvwvvwwwgvwwwwwwwxwwwwwwwxxggwxxxgwwfvwwxwwwwwwvxwxwwwxxwwxxxxxxxxwxxxwhgwwwvwxwwwwxwwxwwwhwvwvxxgxwxxxwwwxxxwwxdffutueffuvgwwwgxvvwWWfgfwwwvwvgvwwwvgwwxwwvxevufwvuvwVwghwfwwxxwggfxgwwwwwxxwwxgxwvguwxgvwxwwwwxxvxvxwwwwwwvhxwxwwxxxwwxwxwxwwwwxwxvxhvwxxxxxxufggwwvwfuuwwffvvvwvwwuffwgwwxWuwvvwwwwwwwvwgwwxvwwwwVvvwfwfwwvgwwwwvFTvxwwwvwwwwvwvvvvwwwwgwfgwxwvxwxwfvggVwwwwxxvvwwwwxgxxvxwwwwgxxxvguwhwwwxwxxwwvwxxwxwwwwwxhxvwvhvwfvvwugVvfwvvuwgvwfwgwvwwwuvwwwvwxwgwwxwxxwwxwWevwwwwwwfwwwgvwwwwgvwxwwwxxwwxwxgxwwxhvwfwfwwgvwwwwwxxwwxxwxvvxxwwwxxwvvwwwwxwxwwwyxxwwwwwxwvxxwwwwwxFutfvvfffffwwwegVvgfvxfvfwvhwxvfwvxxvxvwgwvwwxwwwwwfgfvwwwwwwwvwgfVVgwwwxwxxxwwwwwhwgxwwwwwwwwwwgvggwwxwwwgwwwwxhxxxxwvxwwwxxwwxxgwwwwwwwwwxwxxwxxxxxxwxxwhwwvxwxxwdgvvggvveuvgwwgfvvwwvwwxwwgwxwvwwwxxxgwhwwgwwxvwwfvvfwwwwwvwxwVuwxxxxxxwwxwxxwwwvxxxvwgwxvvwxxxxxwwxxwxwxxwwwwwwgwxwxxgwwxxxxwwwxwwxwxvwxwxwhwwfvvwwwgvhvxwxwwfvfwwvwxwwxwwxxwwwwxwgxxgvxgwfvgfwwwgffwwggwfgxwwxwwwwxxgwgwxwxxwwgxwxxwwwwwwxwxwwxxwxxhwxxxwwwwwvgxwwxxwxxwwxwwwxvxyhxywwxxxvxwwwghwfvvwwggwwxvwxwxwxwgvwxwxxxxxwxwwwwxgwgwxvgxwgxyxvwxhgwxxxxxxxxxwwhgxxwwgwvxvwwwwxxwwxxxwwwxxxxxhwxwxxxxxwxwxxhgxxxxxxxxgyxxfvvwgxvgvgvwwfgfwwvgwhxvwwxgwwgvwxwvwgwgxxxxxxffgwwxwhwvxgwfgvwxwxwwxwxxwxxxxwxxwwwxgxwwxwgwxxxhxxhxhxxwxgxwxwhxxxwxxwxgwgwfvvwvwxxwvwwxwhwhhxwxwxxxxwwwxxxxxgwwwwxwwwwxxxxhgxxwhxxwwxxxhxwwwxhwxxxwxxxxxwxwxwxxwxxxxxhtUffgvexwwvgwwgwfvewwwwgWUwwvwfvwvgVvwwwvvfVvvgwwfevwvfvWwVwwuufvfvwwwwfwwgwxwgeVTvvugvgvwwxwxvuwvwvwuwwwwwwvvwgwvwgfwgvfwvwxwwfwgvxgxgwvwwxwwxxgfdvvuuvwwwxwwwwwfwwvgxwwxwvgxwwvhvwxxwxwxuwwwwvxvvffvuwwfgVwwwvVfuvxvvtvVwwwwvfevwvxwwxffuwwwgwwvwwgggvvwwwvwfvfxwwwwxwUwwvwvwwwgguvwgvwvxwvwvvwgwfxgwxgvwxxvwfvewvuwxwwwxfuvfxwwwwhwxfgxxvwxxwwwwxwgxvuuwxwvgwfvxxwewwwwwwwwvxxvwvwxvwvwhxxwwwxvwwxxVvdUeefwwffwewwwfUevwvwwuwvwvgvwUgEvggwwxxveffwvgwhwhwwwwVfevguwffwwwwwwwvvfwwfxwwwxwWwvfVvwvwwwwwvwvwxxvwwxwvxwwvwgvwgwwwwwwwxwWwwwgvggwvwwwwwwxxxwxwwwgwwwgwgfxvwvwxwvwwwwwuwwwwwwgwxwwwxxxwwvwvTVfvwvwwvwvwwedvVwwwwvwwgwwfvfgvxwxwvwggfwufwwxvxxffvfwwwgwwgwwwgvvxxwwgwVvwfwvewwwwxwgwfxvwwxvwwVwwwxwwwwvgxwwwwgwxwwxxxwxwxxxwwggwwxgxxxwvwwwvxxwwxxgvwwwwwwwwxwhxxwxfxxgvgwxwuvwwvvgwwugwvwvvgwgwgvgfvvgwwvxwwwwxwwwwvwvwvefwxwwwvwwwwwfvgwwwwgfwwvwwwwwvwvxwwvwguvvxgwugvwwwxwxvwwvwxvwwwwwxwxgwwwwwxwevgxxwgxxwwwwwxwxvwhwxufwwwwwwwwwxwwxxxvwxxwxxxwxxwwwwwxgvvwwxwwwwwwvwwWfwgwwwwvWvwgxwvwwwwvwxwwvwwxWvgwvwxwwwwgwwwwwxwvXxfwwwwxxwxxxwwwxwwwxxwWxvwvwwwwxfvvxwwwwxwwwwwxxgwhwwxxwwxxwxgwwxwwxwxwvwgwxxxwgxwxhwxxxxwvwwwwwwvvwgvffvgwwvwugvvfuugwvgfxewwwvwgvvgwwgwvgvwxwwgwgfwwggvwgvwgwfwgvgwwwvwwhguxxxwhuvwwwxwwwvxwwwwwxxxwwwxwwwwgwxwwwwwwwhwfwwxwwwwxwwxxwwwwxxxwwwxgwxxwhuxxwxxwxwwwxxwxgxwgwxxwxxhwgwgwwwvwwwwgfgwwwwgvwwvvwwwxwwwwwxvvwwvwwwwxwwhwvwwwxvxwwvwgwxwxwxwwxwxxwhwwwxwwwghxxwwxgwxwwvxwxxxwvxxxvwxwxwxvhwwxwxxwwwxwwxfwxvwfwwwVwuxvvvvwvgfvwuvvfffwwwwwgvxwvwgwhwwgwfwggwwxgxfvwwwvwvwfwwvfwwWuwwgvgwwvgwvffwwgwwwwwgfWwxwwvvwvxwwgwwwwxvgvwxvxgwwwwwgvwxxxwvwwwxxxxxwxvxxwvxwwwwwfwxhwwwxwwwxwwxwwxwwvxvwwvfvwfwvwfwvwwwgffvwwwwwvggvwvwwwwwwgvwwxhghvghwvwfwxwwfgwgwhwwgwgxfggfgwfwwwgwwgxvxwgxgghhwwXxewwvvxwgwwwwxwwwxwwxwwxwxwwgwwwwxwwxxwwwwwwwwxwwwxxxwwvvwwvwwwxxfwfxwvxhhxwxwxxwxxfvwggvfwvgvVwvwfgvgvggwVffgwwwgwxvvwwxwuwwwwwwvwwuwwwwwwwwwfwvwgwgwwxggxwgvwwvwwwxwwwwggwwwwvwwvwfxwwxgwxwwwwvwxxwgwxwwxwwxwwxvgwwgwwgwxwxxwxxwwxwxwwwxhxxwxwxxxhvwwwxxwwwxxxxwxxxwwwgwwvgwwgeuvwfvvvffggwfwWvgwwuevvvwwxwwvwwvwwgwwwwvxwwvxgwwwwgwwhwwwwvwwwwvwgvghxvvvvgvvgvvxwvwwwxwwxgwwwwvwwvxxvwxxxwxxgwwwgvxxxwwxxxxxwxwxxxxwwxwwwxxwxxgxwwwwwwwwwwxwvfewvfwvwvgfwvvwwwvfhVvwuwwvwfwfvgfwwwgwgfgwxxwfuwwvuwvwfwwghvgvwwwvwxwvwggfwvvwvwvwwxwwvXwwvxxxxwwvwvwwvvxwggwgvwwwwxwwwwwwwhgxwvwvwvxvwwwxvggxuxxwgwxwgwgxwwxxxgwxwxwxwwxvwgwwwgwfVfvwwvwwfgwwwwfvwwwwwwwgfevwvwxwwwwwwxgxwwwwxwhfexwwwffwwwwwwwxwwwgvwxwvwfxwvxxgxxwvwwwwhwwhfwwvwwwwwwwwwwxwxxwxwwwwxwxwwwwwwxxwwwxgwxxvxxgwvxxxxwwxwwxxxwxxevuwfwffgfvvwwegfwfxgvvwwwwwvffvvwvwggvvwgwwwwvwwhwgwwwwfgffwwwwwgwwxwgvvwxgwxxgwwwggwxwgwxwgxwxxhxxwwxhwvxwwwvxwgxwxwvwwwgvgxxgwgwwwhxwwgxxxxxxwwxwxuvwwwwwxwhxwxgwxxwhxxhxxxxxwwvgvVwgwfwvwvwvgvvwgxgwwwwwwwwggvwwvvwgwhxwxvgwgxxhwwgxxfvuwxgxwwwgwwxwwxwxwwwwxgxwwwxwwwwxwxwhwwwxxgwxgwwwwwvwwvhwwggwwwwwwwwxxwxxwxxxvwxvxwwwxwwwxwwgxwwxwxxxxxxxwwwwwwgxwwwwwwwwwwwwgvvwwwwwwxwwwwwxwwxwvvwxvxwwwwwwwwxgwxwwwgvwvwgvvwwwwwwxgwwxwwwwwxwwwwwwwxxwxxwxwxwxwwwxxwxxxwxwwwxwvwwgwwwfvwvwwgwwwwxxgwwwwxwwwwwxxwwwwwwwwxwwwvxxwwxxwwxxwxxxxxxwwxxxxxxxxxxxxwwwwwgvwgwvwwwwwgvwwwwwwwvwwxwwvwwwggwxxwwwwgwvwwwxgwwgwxwwwxxxwwxwxwxxwxwwwxwxxwwxxwwwxxwwxxwwxwxxxxxxwwxxwwxxxwxxxxwwwvwwwwwwvvwwwwwwwwwwxwwxwwxwwxwxwwgwxwwwxxwwwxxwxwxxwxxxxxxxxxxxxwwwxxxxwxxufwwwvwWfvwwgwfwgwgwvguwwuhwxwwwwvxwwwguVvhwgwhvxWwexvwvvvgwwwgxgfVwwxwwwvgwwVfuVvxvxwvwwxxgvvWwvWvwwwxxwxgwwxhgwxwxxwxwwxgxwwwxgvggxuxxgwvWxWwwxgwwwxxxxxxwwwxxwggwwxwgvvwvvvxgWwwwwvwwxgwvvvxvxwhvxwwvwwxwxxxxwggwvwwwhwgwwwwxwwegxgwfvxhxxwxvhwgwvgwxwwwgwvwwvvxwvgwvxwwwgwxxvxxwhxxxwhwwhxwxgxwwgxxhgwwwwxxxwxgwwxwxxxgwuxvwwvwufgguVuwuhfgvxxwwgxwwwvxxwwwxwwxxfuVwwxwwwxwwvWwvgvxwwwxwgwvggxxwwwvxxwwwxxvwxxwwwxxwxxxwwwxxxxxwxwwwwxxxhwwxwwxwwxxxwxxwxxxyxvvgvxVfwvxxgwwwwvwhwwwxwxxvxwwwwxwwwgvwxwxxxxwwvgwxxxwwvwwwxxxgwgxxwxgxwxhgxwxwxxxwwxvwxxxxxhwxxwwwwxxxxwxwxxxxwvxxwxvxwuffwfvfwfvtxugfvvvvwvfvwfwwwfuwvvfwwwwuwxwgfxwxwgvegvVCvwfwgwvWfxgwwxwwvvwvwwxvwvvgvvfvvwexwvwxwwwwxxgvwuuuwwwvgwwwvwwwUwwwxwxwwwWwwxwxxxhwgewwvfvwwvxwwwvxgwxxuwwwvxvwwxxwwxwgwxwewwwfvfwvwfwtwfgvwwuVEwwwxfvwwwgwvgvvfwvxuwwxeuwgwwwwwwwwxxwVewwvwgwwWvwwwwwxxwwwwwwwwvfwgwwwwwvwwwwhwvxvxuugvvwwhffxwxvwvvwwwwgxwxWvwwxxvwwxwxxxwwxxxwvffvwwxwwwwwwwwxxwxxvvxwwwwwvxwwwwwxwwgxwgwwwwVvsfdfVuvvvwfwvgvffvvwwfvwxxxvVfvfvfwgwwwwwwfgwwvwgxxwxffVvfffEvvwwxwxwwwgvxvxxwgwvvwwwwgxwwxwwwwvwxvgwwxwwvwvwwwxwxwwwwgvxwgxwgwxxwwxwwxwwwxwxxwxwwvwvvwxvxgxwwwwwvxwwwwxxvfwvxwxwxcfevUuvwgwwxggfvuewewwwwxwwwveevgxwwwwwwxvwgwwWwxvxwxwxwxwwVvvwEvgwwxwwwvwwxwxwgxgwxwwvwxwwxwxxwwwwxxvfwvwwxwwxwwxwvwvwhxwwwwxxwwvwwwwwwwwwxxxwwwwvxwxvwwwwwwxwwvxxvxwvwxwwwwxwxxwwvwvxugVvVvewfwvxuwfwgvwwwgwfwgvwwwwvgwwVvwVvvwvgvwwvwwwwwvwwwwwwfwguwvwxwwvwwWWwvwwwvwvwvvvvwgwvwwwvwwwhxxgggwwgvwwwwwwxwwwfwwwwwxwvwwwxxwxhxwxxwgxxxxwhvwwuwfvwwwwxxwgvwxxwwxwxwxxwxwfwuwvgvwwvgfwvvugfxwvwwwvwxwvwwgwgwwgwwgxvwwwwwwwwwgxhwwwwwgfwwwwwxwfxxwwxwwwxxwwwwgwwgvwxhgvwxxxxggguxxxvwvwvxwwwwwwxxvxwfxwxwwxxxxwhwxwxwwwwwwwwewwwwwhxgxxxwwwxwhwxxwwwwvguuVvwVvewwwwfwwvwfwgwwwwffggvwwvvwgwvvxvgvwgwhvxxwwwfgvggwfwvxvwwvwwwgxwxwwvvvwwwwwwwxxwxwwwghxxwwwwhwfwhwwwwwwvwwwfwwgwhvxwxxwxxwxwxxxwwwxwwxxvwwvwxwxxwgxxwwxwwwxwxxxvxwgxvxxxxxwvfwfuvwefwgvggwgxwwwwwgvvwwwgwwwfvvvuwXufwwwwwgwvwwwwwwwwwxwwwwxvwvwgvgwwfxwxwwvxxwwwxwvxwwwwwxvwwwxggwwxwwwwwwxwxxxhwwwxxxxwwxgxwxwxxwxwxwwwhwwwwxwwxxwwwwvxuwwWgwwgwwfvfvgvggvwwwwewwwwwwxwwwwvwgwwwgwvwwwwvxwwwxwvwxwVwvwfwvvufwxhwwwwwwwwgwuvwwwxwwwwwgvxxgwxxvwxxxwwwwwxxxwwxvwwgwwwwwxwxxwxxxxwxvwwwwxxwxvxxxxxxxxgwwxhggwwvvxvvvgwWwxwwwwvwwwwvwwgwgwwwxxwwwvxhxxwwwwwwwuwvwgvgvxxwxxxxwwxuxxwwvxxxwwxwxxvxxxwwxxhxxxwwwxwxxxwxwxxxxhwxwwwwyyxxxwxxxxxwwgfffvvgvwvfgwvefWWgwwwvwgfwxgxwxwwwwhxwvgwuwvffwwvwwwwwwwwwwwwwhwwxwxxwwxwwxhwwwwwwgwwwwhwwxxxvxwxxwwxwwxxgwxxxwwhwwxxxgxxxxxxhxwwwvvwwgwvxwfwwgxwwxwwwxwxxxwvxgwwxxwgWwgvgwwxwwxxwxxwwxwwxxxhxxxxwxwxwwxwxwwxxxwxxxwxxwxxxwxxxwwxwwxwwxxwwgffwggfwvgvwwgfgvvvvwvwvvwwgwwwvwWwvgvwfwwwgvvvwfwwwwwwgfvvvuvggwwvvvvvwwwwwxwwwgwwWwgvwvwwwwxvvwwhwvwvwvvwwwwwwwwwwvxgxwgwxwwwwwwvwxxwwgxwxxvgwgwwwwxwwwxxxwwwwwxxxxwwwxxwxgwxxxwwwxwuugwggwwwvuvwwvwgxvwvwwwwgggvuwgwwvhwxwwwwwwwxwwvvwvwgwwvxwvwwxxxwwwwxxhxvwwwwvxwxxwwxwxwwfwxwgwwwwxwxxxxwwwwwxwxxwwwwwwwwxwwxxxwxwwwhwwwwxxwwxwxxwxwwwxwxwxggwwwwwwxwwwffwvWvwvffwwvWvwwvwvwwwwxggwfvvwfgvwwwwvvwwhxwwwwwwvhvvwvwwgwxwgvwwwwgxvwvwvgwwgxwwxwhwwxwwgwwxwwwwgwwwwxwhgwxwwwwwxxwwxgxwhxwwwxwwwxwxwxxwwwwxwgxxxvgwwxwxxxhwxxxxhwxxwwxggwguvgwwwvhwvwuwwwwxvwwvxxgwwwwwwwwwwwxwwwwgwvwxwvfwxwwxwxxwwwwwxwwwwwxwwxwxxxxwxxwwwxgwwxwwwwxwwwxgxvwwxwwxxxwwxwxxwxwxxwwxxwwxxxwwfwwwwwwxggwwxwxxxxwxxwwgvvgwvvfuwvfuwwvvwvvvweevvwwuwvfvwwwwevuwegvvffwfvvwvwvwvuvvvuwwwvwwwvwwgvwgvwwuvuwwvwwwwwvwvwvwvwwwgvwvwwvwwwvgwwvghwwVwwwwwwwwwwgwwwxwwxxwgxwwvwwwvxwxxxxwwxxxxxwwwwwvwwwvvvvvwwvvfwvvwvvggwwwwwfvewwwvwwwvgwwwwxwvwwwwggxwwwvwvwwwwvwwwxgwwuxwwwvfgxvwwxwvxxxwwxwxxxxwwwwwwxvwxxwwwxxxxxwxwxxxxwwwxxwwwwxxxxwxwwxxxxxxhwvvggffuwwvvwevvwvfveUvveuvfwvwgwvvvfgwffvwwxfuvwxwwwwwwwxvwgwwwwwwwwfwwwwwvvwgwwwwvwwwxwwxwxwxwwxxwxwwwhwxwxxwwwvwwwxwxwxwxxwxxxwwxwwxwwwxxxwxxxwxwwxxxwwwwxxxxxwwwewwwvvwvvwwvvggwvwwwwwwwwwvgwwwvvxvwwwwwwwgwwwwwwwxwwwwxwwwwwxwxxxwwwwxwxxwwwwxhgwgwxwxwxxwxxxxwwwxwxxxxxwxwxxxxwwxwgwwuggufvvxfuewvggwfwvWgwvwvfvwgvwxgvfgugfwvwxeuufVvgwghgvvwxwwwwgwgfwvwwgwwwwfwvvgfgwggfgwwxvwgwwvwwgxxwfvvwgvwwxwvwggwgxvgfwfxxwwgwgwwwwwggwxwxwvhwwvwxwwggwwwxxwwwxxwgvvvuwwwwxwwwfvwhwwwxxwwggwwwwwwwwwwwxxwfwgwxwgwvhwvfvwgxvxwgfvxwgvwwwvvwvwvfWvfwvgVvvwwxfwffwwgwvgwwwwwwwwvxwwfwwvxvgwgvgfxxhwwwwxwhgwwwwwwwwwwvvvgvghggwwwgxwuwgwwvvxwwwxwfufwwwxwwgxwwWghwwvwxgwwxwwxggwwwxwxxgvxwhwwxxwxWxwwgxhWwwwhwggwwvxxwgxxwwewwgWwvwxwvuwfvfgufgwfvweuwwuWfvfgwggvwwwgwvfgggwwwvvxxwxgvvwfggwwvwwwxhvgvwwgwwwwwwggwvwwwwwxvwwwwwwgwwwvxxwwwxhwhgwwwvxxxwvxwvwgwgwwwwvxvxvxxwwwwxxwxwwwgwwwxwxxwxxhwxvgwwxxxxxwwxvxwWwxwxxwwxxxwxwxwxgxwwwxwxwwvWvfwvwVvvvwwwfvwgwgvwvvgwwwvvgwwggwwwwxvxwvvgwwfwwwxhghwgwgwwwxwvwgvwxhxvxwvwxwuvxwwgwwxxhwxwxxwwxwwxwxvwxgxwwxhxxwxwwgwgwwwwwewwxxxxhxhxwwwgwxwwwxwwwxxwvgxwwfxxwxwxwgxgxwwxxxwwwwewfvvvvffwfwwwwvvwwwvxgvgevfwgvvgvwfwwwwwwwwwvwvuwgfwwxgwwwwvwwwvwwfewwwfwwwvvwwgxwwvgfwvwwwvvgwugwwvxxgvwwwwwxwwvwvwwxwgggxwwwwvwhwxxxxxwwwxwwgwgvxxwwvxxwwxghvgvwvvwwwxwwxwxwgfgwwxwwwwwwxxxwxvwgwwfwvgvgfwwvwwwwwgvwgwwfgfwwwwwxwwgvwggwvxgwvwwwwwwwwxwwwwwwwwwwvwwwvwwwgggwwwwwwwwwwwfvwwgwwvgxxwwwxffxwxxwwxxwwxxwvvvvvwwwwwwwwgwwwwwwwwwgwwwxwwxxwwxwxxwwxghwwxwwhxxwxwwvwxxxxwwxxfhvxwxwxgwwgwxwxxxxxxxvwwvwvwvwvvvfgfwwvfwvevfwfvwwwwgvgfwvgwfggfwwwwwwwgwhvxhwwwxwwwwewvwvwvwvwvvwwwhwvfwwwwwvwgwwwwwwwgwxwwxwwhwvwgwxwwwwwxwwgwgwwxvgwgwhwwhwxxggxgvwwxxxwwxwwxxwwwgwuxwwwwxxwxxvwhwwxwwxwwwvfwxxwvgvfgvvfwwwwfwvwwvwgvwwfwwwwvwwwwwwwxwxwwwwgwwgwwwxwwwwwfxvvvxwwwwwwwwhwwwxwwwxwxxxwxwwwwxwgwxxwwxxwvwwwxvwwxwxwhwxhwgwwwwxxxwwwvvxwxxfwwxwwxwwxvwxwwwxwxwgwwxwwwwhxwxuwUwwwvfwwwvvufftwwwgfwvwfwgwwwvvwwvgvvwwwufgvvwfwvvwwwwwwvwwvfvvvwfvwwwfvwxgGwwvwgfhwguwwvwwvufwwwgwvgwwvwwwwwwwvvwvwwxwwwvwxxwwwwxwwwwwgwwxwwwwgwvwwwxxwwuvwwwxwxwwxfvwxwwwxwwwuhwwxxxxwvvgwxwfwuwuwVuvvgwwwvVfvwwwwWwvwwwwwwvgwvvwwvwxwgvgvwxwxwwwwwgvwwwgwwvwwwwwwwwwfwwwxxgwwgfwwvxwwwwwwhwuwwwvxwvwwuxwwvwwvwwwxxwvwwxwxwwxwxwxwwgxwwxwwwfwwxgxwwwxwwwwxwgwwvxwgxwwxxwwwxwwwxvxwwxxwxwxgvvwwwfwvwvwwvWvfvwevvgfwuwvfvwgwwxwwvgvwwVwegvgwvwwhwwwgvwffwfxuwvwwvgwwfwwgwvxvwwxWgwwuwggvwwgvwwgwwwwxwwwfwwvwwwwwxwwwwwvwwwvxxvxxxvwfwwwwwxxwwwwxxxwvwxwwwwgwwwwwwwxwwgwwxxwwwwwwwxxxuwxwxwxwwwwwxxvvwwwxvvwwvxwUuvvwwgVvwvgWwvuwgwwwwvWxvfvgwwgwhefwwwwxwxwwggvxwfxwwwwwgvwwwwwgxgwwxvxxwwfwwvwwwwxwwvwxwxwwvwwwwxwwwxwwwwxxxwxwvwxwxwwwwwwwxvgwxwxxwwwwgwwxwwvwxxwxxxwwwwwwxxuwfwgwvwWwfewvxfxguVwgwfvwwxwxwwwfgVwfwwfwvfwwwVeewwwxgfxwwwfwwvvvwwwfwxgwvwwwxwwwvfxwvxwwwwwwggwwwwxxwwvwxwgwxwwwwwwxhgfwwxwxxfxfwwfxwwwwxhwwxwwxfxxwwwwwwxxxwxxwfvwwwvgwfvxwgwwxwwvuxwxwxgwwwwfwxwxwwwwxxwwhxwvxhuWwwwvfxwggvwxxwwgxwgwvxxxxwxwgxhuwwxxxwxWwxxvwgxxxwxxfxwxxwwwvwwwxxxxwxxxwwxwwxxwxxwxxwwwuxvgwvwwfwwwUVvvgxgvwwvxvxwwwweuugxggwvwwxwxvwggwghwwwwwwxgvxwhwwwwxxwwwwwwxwxxwwwwvwxwhwwxgwwxwwwwwwhxwwxwxxxwwxxwxwxxxxwwxxwxxxwxxwxwwxxxxxwggwwxfwvwugwwgvxxwxvgvxwgwwxwxwwwwgwxxvwwwwwwwxfwvxxwgxwwxxxxxxxxwwwwxxxxwwwxwwxxwvvwxxxwwxwwwxwvwwwwwwwwxxwhwxvxhwhwwxxxxwxvwxvxwxwwwwgvwwwwwgffwgwwvggwvwvwwhvwgwvgwwwwwwwwwgvxxxwxwxhwvgwwegffvwegwwwvxwwwwwxxwgvwwwvvfwxxvwwwxxxgwxxhwxgwwvwxwwvxwhwwwxwwwwwvvwwwefwxvhuwxgwxvxwwwwwwxvwxwwgvxwgfwgfwwvgxwwwwwwxhwwwwvwwvvwwvxxgfgwxxwwxxxwwvwwxvwwwwwwwvvwxxwxxwwxwxgwgwhvWxxwwwfxwxwwgxxgxwwwwwuvwxwwvxxwfxwwwwxvwwvxxxxxhwwwwghwxgxVxhxwxwxwgxxxhwwgvwgffwvgwwwwwwfgvxwwwwwwhvwwwwwxuxwwxxxwgffvfgwugwgvxxwwxwxuwwxwgwwwwwxwxghxxxxxwxwwxwxxyxxxwwgwwxwxgwwvwxxwxwwVwvgwwhwxwwwxwwgwxxxgvgwwwvxwwwwwwwxwxxvwfgwwvfwxwwxxxxxxxwwxxgxvxgxwxxwxxxxxxxwxwxwxvxxxxxwxxwwxvxxxhwxxfwwvwffwvwfwewwuwwvfwvxwwwwwfvwwvuwwwvvwwwgvwvgfvgwwwwgwfvwwwwwwguwvwvwfWwwwwwwuwwwVuxwwgxwwwwwvwwxxvwwvxgwfxwwwwwxgwvwxxwxwwwvxxxxwwxxxxwwfvwwwxgvxwwxxwwwxxwxxxwxwwxwwxwwuggwwvwgggwgfwwxwwwwfvgfwwfwwggwwwxwwwwwwwwwxwwwwvwvwwWwwwwvvugxwwwwwwwxvgxwvwxwxwvwwwxxwwwwwhwwwfvvwwwwxwxwxxxxwxxxxxxxhghxwxwwwwwwxggxxhgxwwwwwwwvxgxggxwwhvwgwwwvgevvwffwwwvwgwgggwwwwxfwwwvwwvvxxvxvwgwvwxwvwxgwvwwWvwwwwwwxgwvwwxwwgwwwwwwwwxwvgwwvxxwwvwwxwxwwwwxwxwwwxgwwvwgxxwwxxwxwwwwxxxfwxxwvxwwggwxwxwxxxwxwxwgvfgwwwwwwwwwwvwwwwwwhvwgwxgwvwwwwwwwwwwwxwxwwwvwwwuwwwxwvxwwxwgxgxwxwwwxxxxxxwwxhwwwxwwwwxxxxwwwwwwwwxxxwxxwwvwxxwwxxwwxxwwwxwxwwwwwvwxxuvvwgvwwwfwxfwgwexwwVwwwggwvwwvwvwwxwwvvxwwfvwwxwwvxvwwwwvwwfUwwwvwwwewvgVvgxvghwvgxwwwwfwgggwvwwvwwgxvxxghwwwwgwwwxwvwvxwxwxxxxwxwwwxxwwxwxwwwxwxxxwxwwgwwwxwwgwwxxwxwwvwwwxxxxvwxxxxxxwwxwwvwgfwwwvvfvwwfUwwgggvwxxggvwgwwwwwxvwwVwvgwwgwwxxxwwwwwfwvwwgwwxxwgwwwxwwxwwwwxwvxvxgwwwxwwwwgwgxwwwwwwwhhwwwwwwwxwwxvwxgxxwwwxwwxxwvxwwhxwgvvxwxxwxvxxwxwxwwxwwxwfguwvfVwVwvvwuvufUwffgvfvwwhvxfgwwwxxwwwwwgvvwWgxwwvxwvfUvwwvggvgwxwwgwwfxwgWwhwwwwvwwxvxgwxwwxwghwvxxwxxwwvwwxvvwwwwWwwwwwXxwwxgwwwwxxhwwwwgxxxgxvvwwwwxwxvwwwwwxwhvhwwxwxhxxxxwxxwxxwwwwvgwvwfgvwwxwwWvugwwWwewwwXwwggwwgvwwwwwxxvwfwggvwwwxVwxgwvwwxvwwxwwvxwxwhwfwgxggvwwgwggwWwvxxfxxgwwwwwxwxwvwwxwwxgxwvwxwgxxxwwwxxwwwxxwxxxxwwxwwxxwwxwhxwvxwwwxwxwwxwwwxgwxxxxgxvwfvvwvwgvvfffwvvwgfwvguvgwfvgvtwdggvwhwwvvxuwwewfgwvvwvvwwfvvwgdfwvfvwuvgwwwfvwwwwwwWwwgwgvvgwwfVvgwwwwffvwgwwwvwgvwwvwwvgwgwwwwwwxwxwxvvvwwwvxwxwvwxwgvxvwvwwwxwwwwwwxwgxxwxxgwfwwwwwhgwwwxxvwvwvwwfwwwwwvvfvwwggvgvggfgvvwwfWuguwugewgvvwwwVwvvfvfgfvwwXvgwwwvwwwwwvgxwvfwxhwwhwdvwvwfwvevxwxwwwwwwwfxwfwwwWwgwwwgwwvwwxxxwvgwvwwvwfhxwvvwwgwxhwwxvwwggwggwhwxwwwwfxwwxwwwxwfxwwxwwgwvwwwwwxXwwwxxwxwvwxgwwvvvVefwwvwvwvwwfvvwgvfwwwwgwxvgvevUfwuxwfvuwwgvguvvvvgwwvvVwvvffvwwwwgvwgvwwwgwwwwxvvgxfwvgwwwvwwxwwwgxwvwgxwwwwwxwgvwwwwxwvwxwxwwxwwvwwwvxwwxgxwwwxgwxxwxvxxwwwwhxwxgxxxwxgfwgwgxgwwxxwxxwxwwxwwgwfuvvvVwwhvwvfgvvGvwwwwgwftwwugvwwgwwxeuwutVwgwfwwgwwfgwwugXwxwwwwgwwxwuwwghwwgwewwgwwwwvgwwxwwxwwwwwugwxwwxfwxwgxwwwwwwwwvwwwxxwwwgwwwwwgxvxwxgxwwwxwgxgxgwwwxvwwxwwwwvxwxgwwwhxvvvgwwvwgvvwwxwwxwfgwvwwgfwgwwwfwwwwwgwvvwwgfvvvgfwwwwvwwWwwxwwgfvwvgwvwfwvwfvwwgwvgfuvwxgvwxwxwxvwwxwwwwwvvxxxxwwwxxwwxvwxwwwwvgwxwxwvxwwxwwxwwggvwxwwxgVwxvwvwwwwvvwvwwwxxfvwwxwxxgxxwwwgwwwwfwvxxvwvwgvxxxxwwwuwwxgxwwwwwxxwwwxxxxxwwwxwwxvxwwxwxxxwxwxxwwwwgvxhwwwwgvwfffwwgxvwvgwwvwxwwxgvvgwvxxwwgvwwwwwxwwwVwwvxxwwwwvwvwvwwxwxwwwwxwxxxxxwvxxwxxxxwxwwwxxxxwxwwvxwxwwwxxwxwxwxxwwgvwwwwwvwwwvxwwvvwvwxxwwvwxvwvvwwwxxwggwwxwwwwwvwwwxxwvwwwxxxwwwwwxwxwxxxxxxxwwxwxxxxwwwxwwwwxwwwxxxxwxwwwxxxvxwhwvwgxwxvfgwwwgggfggvvVttfxvwwwwvgfwwwggfvvUwxwwwxxwwgwfvwxwwvvwwwwwwgwfxwwgxwgwwvwwwwwvwwwhvxxhwwxvwwwwwwxxwwxxfvvUxxxxxwwxwxwxxwwwvwwwxwxxxxxwxwwxwxwwxxhhwwwxwwvwwwwwwwwwwggfgvfwwvwgwxwwwwvwwwxvwxgwwwvwxxxwgxvgwwwguwwwgwxwxwVxwwwwfwfwwwwxwvwhwxfxxwwwwwwxxxxxwwwwwwgxxwxwwxwwvxxxwxxwxxwfxxxwxxxxxwxxxwwgxxghxwxxwgwxVevfxggvvetdfgvwxvgwvwwwgxwwwvwwgvwwwgwwwxwfwwwxwwvvwwwwwwwwwhwgwfxxwxxwgwxwwwwvxwwwgxwxwxwxxwwgxxwwxgxxwxhwxxwxxwxxwxwwxxxxxxxxwwxxxxxxwhhwgvxxwvwwwvvwxxwwwgvvwwgwfvwxxwwwxhwwwxvxhxwwgwwwwwwwvuwwxwxxwhwwwwwxwxgvxxwwxwwhwwxxwxwxxxxwxxwxwxxxxwgxwxwwwxxwwwwxwxvwxxxwxxwxxxxxwwxgvwgxvxvwfgxvxwfwwwxwwwuxwvfwwwxvwfgxwxwwwxgvwwvewwfxgwwwvwwwwwwwvwfwwvVwgwxggwxwwwgwwgxvxwwfwwfwvwwfwwwxwxwwfwwxwwwwxwwxwvwfxgwvwwxxxwxwwwwvgxwgvwwgwxwgxvxwwwvwwfwwxwwgwwwwuwgwwgvvwwxwwxgvuvgwxwfwwwwxxwxwwwwwwgwxxVvwwwwwwxxwwwvgxxVwxwwwwwwwwxwwuwwgwvwwwxxwwvwxxwxxxwwxxxxxxvwxwwwwxwwgwxxVwxxwwxxwxwgwxwxwwxwwuxvwfwwfwvgwgvvvwwwwvwxxwvfwwgwwwxwvwwwwwxwxwvfwwvVwwxwwwxwwwwxwwgwwwwwxxwxwxwxxwwwgwxgwxxxxwwgwwwwwwwxxxwwwwxxgwxwxxxwxwxwxxxvwfgwwwwvgvuvwwvgwwxxwxwvwwxwxwxxxvgxwwxxxwxwxgxwxxwwwwxwwgxxVxwwwwwxwxwwxxwwwgwwxgwwxwxxxxwxwxxxwxxxwxwwxwxwxwwwxwwwxvxxwwwxwwxvxwxwwwwxwwvwvwxvgwwxwwvwgvxwwfwfVuufvgfwwwgfwwfwvxwwxwvwwwwxwvwxwwwwgwvxxwvggfwwwwwwwwwwwxxwxvxwwxwxxvwwwwwwwfwwwfwwfxhxxgwwwwhhxwwwwwvxxxxwwxwwxwwhxwwwgwwwxwwwvvxwvwwxxxvvxwwwwwwxvggvwxgwwwwwwwwxwwwwxwgwgggwwwwhwvwxwwwfwvwxwxvxxwhwwxwwwwxxxxwwgxxwxxxxxxgvwweUvwwwwwwxvwvgvvvwxwwxwwwweewvwwgfwxxwwwxwxwwwxwwvvwxfwwwvwvxxvwwwxwgwxxwwwwwwwxwwwwwwwwwwwwxwwxwxwwwwxwwxwwwxxxwxxxxxxxxxxvwwwwwvvwwxwgxgvwwxvvwxfwwwwvwwxwwwvxwwxxwvvwgxwxxxwxxxxxxwwxxxxwfwxxwwxwxxwwwxxxwwxxgwxxxxwxxwxxxgxxwxxxwwwxxwwwxwxwvwxwxwxwwgwwwWwfwvxwUgffhvwwgxgwwvwwEuefwwxwwxwwwfwxwwexWxwwwwwwvwxwwwwwwwwwxwwgvwvwwxxwwwxvxwxwwwwwwUggfwwhxwwxwxwxxxxxwwxxwxxwwwwwwxhxxxgwxxxwwXwwwxwwwvgwwvvgwvxxxgwwgwwwwwxwfvwwxgwwxwwwhvgxwxfwwwwwwwwwwxxgwxxvwVvwxwwxwwxvwxgxxwxxwwwwwwxxxwwwxxxxwwwxxwwxxxwwwwfxxwxxxxxxxxxwxwxwxwxxwxwvxwwfgwvvwvwwwwTuefgwwhxvwxffvwxwxwwxuxwwwxwwwwwwwxwxwvwwvxwwxwwwwxxwxwwuxxxxxxwxxwxwxxxwxxxwxwwxxwxwwxxwxxvwxxwxxxxwwxxxvwwvwvwwwxxfwwgwvwvxgwwvxxuwxwwwwwwvwwxxwwwxwwevwwwwwxgwwwwxwxxxwwxxxwxwwxwwxvxxxxwwxxxwwxxxxwwxxxxxxwwwwxxwwxxuwvgwwwwwwwvwvvwxwvgvwggwwvvwvwwwwxwxwwwwwxfuvwvveevfvwwwxveVwwwwwvvwxxwvffvwgvvxxxwwwxxwwgvvxwwwvwxwwfwwwwwwwvwwwwxwxgxxvgwgvwwwwvwxwxxwvgwxwxwwxxxwvwvvgfwfgvvwggwwxwwfWvwwvwwxxxxfffuwwwwvvfvwwwvwxxwwwvvxwxwxxwgwwxxwxgWfvwwwwxxxxwxvwwxwxxxxwwvvxxwwwgwwgwvxxwhwxxwxwwwxwwwwwevuvewgvffwwwwwvwvfwvwwwwxwxvvvwxwxvvxxeefffwgevwgwwvufvxfgwwxwxvvvwwwwvwwxvxxwwvwxwvwwgwwfvwwwwwwhwwxwxxxvvvwwxxxwwxxwxxxwxvvvwvxwwwwwwwxwxxxxwwwxxwxxegfgwwwwwxxgxvwxxxwwxwwhxxwxxwxwwxxvefvxgwwwwwxxxwvgwwwxwwwwxxwwwgwxwwxgwwwxwwffvwwxxxxwwxwwwxwxxxxxwwwxvwvvwwwwwwwxxxvxwwwxvwwwxugfgwfwfwvvxvwgwfxgfwvfvwwxwwwwxwwwXvwwWwwwwfvffwfvwvvwgvuwggvwwhwvgwugwwgwvggwwwwgwgwgefwvhwwwwwwvxxwggwvgvgffgvwwwxxwhxwxwwwxwwxgxvxxwxwvwwwwvxwvfWwxwguwxhwxxwwwwwwwxxwxxxwxxwxwwwvwwvgvvWvwwwgfvxwwxgwxxwgwgvwwxxhwwgwxwvvwhwxwgvvvgwvwvgxxwxwvwxxvwxwwwxgggwgvwwhxxxwwwwwxxxwxwxxwfevvxwwgwwwwwxxwxxxxxxxxxxwxxwxxxxxgfuwwxwxwxxxggwwwhgwxggwwwxxxxxwxvvuxvwvwwggwwvwvfwwvuxvvwvvxwwguxwwwwwxxwxxhwvwxwwvwwWvwgvvvvwfffvvwxwwwxwwwwwwwwwgxwwgwggvwwwwxwxwwwxxwwuwwwgwwgwvgwvwvvuxwvwxgxgfvwwwwwxxwxxxwxwwhxwfxxxfvvwwgfwwwwwgwwwwvwgwvxwwwxwxxxxggxwvwwwwuhggvvwgvwwwgwgwwxvwfxwxwvwxgwwvvwxwwxxwwwxwvvwwwwvwxwwwwwwwwwwwwwgxwxwwwwxxxwghwwghwwwxwwxfvgxvxvwwxwwxgwvgwwwwwxwwwwwwxwwhwxxwxwxwwxwgvxwwxvwxwxxwvwwhwwxxwxxxxwwxxxwxwvxwxhvwwwxgwvgwvwwwwxwwwwvxffwvwwxgwgwxwxwxxwwwgwwxgxvwwgevuuwfwVewwwwwfwfgwwfwgwwvwhwxwwwwwwwxwwwxwwwxwwwwgvvvwxxxgwxwwwvwxwwxxxxwvxwwwwwwvwxwwwwwvwxxwwwxxxwwvxxwvwwwwfwfwgwxwgwwwwfwwxwxwxvxwwxxxxwfwwxwwwvwvvWwfuwxwwwxwgwwwxxwxxwxwxxxxxwxxxxxxwxwwwxwgwhwxwxwwxxxyyxwxwwwwhwvwwwwgvwwwxxvwxgvxxxxxxxwxxwwwwwfugwvfwwgwfwwgfwfxwxxwxxwwxwxwxxwwwwwwxWwfufWfufwvwvxvgfhwvgvxwwwwwxxxxxxwwxwwwwwwxxfwvvwxwwwgxwxxwxxxwxxwxxwgwwwxxxwhwwvxxwhxwguwxwxxxxxxxvwwffwwvwwwwwxwxwxxxwwwxwxwwwhxwxwwgvvwwxxvxwwxxxxwwwwxwwxxwxwwxxgwxwwxwfwwxwxwxxxxwwxxhxxxwygwxwxxwwxwxwxwwwxwxxxwuvgwwwwwwvwhxxwwwwwwgwwwgfwvwwwhwwwxwwxvwgwwvwwwvwxvvwwvgvwwwvvwwwgffwwvwwwwgwwwwfwfVvuwwvgvwwxwwwhwwvwxwggxwvwwwvwxgwxxwvvwxgxwxvxgwwxxwwxxwwwxwxxxxxwwwveuvwwwwwwwwwwgxwwxxxwwwxwwwxwxxwxwwwxxvwwgwvwwwwwwvwwwgvvwfvwxwwgwwwwwxwxxwwwwxhwgfvwvwvwvgwgwwwxxwxwwwwwvwwwwgwwxxxwxvwwwxhxwwwgwwvwwwwwxwxwvwxwwhxxwwvgxwwxxxwhwxwxxxwvwwxwwxwwxwwxwwwgxwwvxwxxxwhxwwvfwwgggWvuxwvwvWevvvwwwwwwgxgWvguwwxgwxgwwwwxwxwwxwwgfvfvugwwwgwwgwwvfvwgvfwwgwwfvwvwvwwwwgwxwwvwwwwwwwgwvWwfWhxuufgxwwwxwgwWwfWwWwgxxgwxwxxwxwgvwgvWwxwwxxvxwwwwxwxxxwwxxwwfxxxxwwwwxxwgfwvxhvwgwxwvwvwxwwwxhwwwgwxxxwxxwgwwxwxgwwxhwwvvwwvwwvxxwwwwwwwwgxxwxgwwwwgvwxwwwxxggwwwxxxgxfvwgxghxwxwvwwxxwwvwfwwxgggxxgwwwxxxxxwxxwxgwwwgwxxwxgxgwwxwxwhvwhxxxwxxuwwwwvwuwwwwwwwfvvWwwvwvfvvwvvuxwwwgvvwwwwvvwWvwvwwwwvwvvwgwvuwvVdwwvwgvevvwvuffvVxvvuvwwwwgewvvvwwgwvwwwwwfgvvwvwwwwvwwvfvuffwwuwuvwxwwwwwwxxwwwwwxxwxwxwwwwvfvwvvwxwvfvvxwwwwwwwwwgvwxwxwxxwwxwwwwxxwwwwvwgvwwwvfvwwfvvwvwwegwvxwgvwwwwwvwxwwwwwwxwwwvwwxwwwvvxwgwwwvgvwfwwwwwhgwwvwwwwxxxwxwwxwxxxwwggwxxwgwwwwxwwxwwwwwgwwwwxwwxxhhwwwxhgxxxvxwwgwwgxwwwwwwwxhgwwwxxxwxxwxwxwxwwvgvwvxwwwwvvwwgugwwwUddwhvwvwwvvwwwwxxgffvxwgxwgwxwvvwvvwevvwgwwUddgwvvvwwWwvvwgvwwwwwwxxwwwwxwwwwwwwxwwwxwxwwwwwvfwvwwwwwwxgwvwwhvvwvxwwxwxxhgwwhwgxxxwwxgxvwvwwwxxwvwwhvxwxxxxwxwxxwxhgxwxxxxwxwvuwwvvwwfvwxxfffvvvwgwwwwwwwwwwwwwwxwxxxwwwwwxwxwwwvwwwxwhwvwwxwwgwvwvvwwvwwwwxgwwwwwwwwwxWvwvwwwxwxxwvwgxwwxwxxxxxxwxwwxwwxXxxxwhwxxxwghwwgxxwwxxxhvwxwxwvgfvxwwgwvwwwxvvgvxwfwvwfvgfxgvxgwhwwwwwgggxhwgvvgwgfvgWwvvwwwgvwwvggvtfgggdvwwwgvwgwwvwxwwwfWwwwwvwwwwxvwwwwfwwxwggwtxwwgwvwxxvxwxxxxgxvxxwxwwxxxwgwwwwwxwxwwwwfGwfwwwwxwwwvvxxxvxwwxxxxwxxxwwxvwwwgwggGvwwvwwwvwwwwvvwwwwxwwwhxwWwvxxxwwwwxwwwuwvfxuwwxwwwxwwvvxwxvwgvwwwwwxwwwwxgwxxwwxxgxwwefwwwxvwxxwwwvwhxwwwwwvxxxxwwxxxxxxwxxwxgWvwwwxxwxxwgwwwgxwwxxxxgwgwwgxwwwwvvwwxwwvuwvwwWWwwvwgwvxxwwgwwwwwxgwwufwwWgwwwgwxvggwvwwwgvvxgWguugvWWuvwwwgwwwvwwxxxwwwwwwwxwwxwwvxgwhwwwxwgvgfwxxxwxxxxwwwwwgxwxvwxxhwewwwXhwwxwwvwxgwwwwgwxwwxxwvxwwhhggwgxwvxwwxxwvhwxwxwwgvwwvwgvwwwgvwwwwwwuwwgwwxxxwwwxvwwhxwwwxwxvwwgwvwwxwxxvggwwxwwwwwxWwfxxxvwwwxxwwxxwxwwxwwxwvwxwxwxwwgwhgxxxgxgvwwwwwxxxxwxwwwxwwwxxwxvvwvwxwwwwwwwxxxxwwwwhwwxwwwxhwwxdwffwgwwwwxwwvwvwwvwwvggwwgwwwwwvwWwvwwwvwwwwwwxvvwvwfwwwfvvwfwwwvwvwwvgvdwwwvgvwvwwwgwwwggwfvwgwgwwwwgxwvvxgxwvxwwwwggwwwwxwwxwwwWxwxxwwvxxwwvwwvwwvvwvdvxwwwwxwxxxvwwwwwwgwxxxvxgvxwwxvwwxwwwwxwvvwvgvwwwwwwwvwwwwwgwwvwxwwvxwxwhwwwwxvwgwvwwwwwgfwwgwwvvxwxwwwvxxgwwwgwwwxvxwfwwwxxxxwxxwxwwwfwwfwxhwgwwwvwwwwwxwgwhxxxwwxxwxxxxwxwxwwwwgwxvxxwwwwwxwwgwwxwwxwwwwxwxxwxxxxvwvwwgdWWfvwvwwvVwwwwWwvwwxwWWvwwvwwwxwxxggwwwwwxwwxxgffvfwfvwwwwvwvwWwfwwwugvwwvxwwwwfwwwgwxxwxwvxwvxwwwwgwwdvggWwVgwxgVwxxxxWghwhwWwVgvwxxwxxgwxxwxxwxgwgwvwwwxwxwxxvwWxwxwwxwgxwwxwwwxxxxxxxwwxgfevwwwvwwxxwgwwggwwwvwwwxxgwwxxwxxvwwgwwwwxwwxvwwvvvgwwwgvwxwvwvwhxwwwwwwxvwwxwgwxgwwvhwwxwwxwwwxxewgwwwwxwxwwwwwgwwxxxgxvgwxwwxwxwxxxxwxxwwxxxxwwwwxwxxwwxwwwwwvxxwxvwwvwwwwwxgwxxxwwxxewxgxwwfgggvvwgvwvwwwxwwwwwwwwwwfvxwgwwwvwwxwfwwvwgxvvxVeexhxwvvwxggexwwwwvgggwvgxxwgxwwxwwgxwxgxwwwwggwwwvuwvwwwxwwwwxgxwwwwwwxxwgvvxxwxgvwwwxxxfwwwxxxgwfwwwwwxxwgfxhvwwvwvgwxxwxxwxgwxwegvxwxwgvvwgwfxgwxvwxxxwwwwxwwxggwwwwvgwuwgxwwwxxwxxwwvxwwgwwwvxwwxwxwxwvwwvgvxvgwvwvvwvwvwvwwxwwxwfvwgwwfwggwxgwVvwwVgvewgwvwxwxvvxxxwvvvwwvwwxwvwxxxwwvwgwxfwwvgvfwxvwxxwwwwwgwwwwwwwxxwxfwvfwwwxwwxghwgwxxwxxxwgvxxxvwvwxwwwxgwwwgwgwxhwgwwxwvwxxgxxgwvwwvwwwvwwxxxwxwxwxgvxwxwwxvwwwxxwvwvxxwwxwwvxxxxxxwwwxxwwgwgwwwxxfxwxxxwxwxwwgwwwxwhwgwwwxgwvxhvwwxwxwwwwwwxwwwwwwhwxvwxvwfxgfwgwvwgwvgwxvwxwwvwgxwwxwwgwxxvwgxwxgxxwwwxwwwwwxxwwwgxxxxxhxxwwwxwwgxxxwxvxxxwxwxwhfwwwwxhwxwwwwwwwgxxxhxwwxwwxxhxxxxgwxxwxwgwwwggwvwxxwwxhhxvwxxwxxxxwwxwxhwxwgwwwwxwgwxxwwxxyxwxxxxwxwwxxxwxxwxxwxxxxwxwxxfhvxwwhwwwwvvwvhwwxxxwwxwhwwwxxxxwwgxvwwwwggwgxgwfwggxxwxwvwwwwwvwgwxxwwwxxhvwwxgxwwhxxxwgwwwxxwwgxxxxxwwwxxxxxhxwwwxxxxwhwxxxvwwxxxxvxxwxwwwwxxxghwvxhwhxgwwxxxxxxxxwwwgwvwwwwxwwvxgxwxhxxgwwxwxxwvwxhxwxwxxwhxxxwxwwgvvwxxxxxxxxxwwwxwwwxxhhxwxxyuwwufvuwwwvwvwvwwwxxgwhgwwxwvxwwwfxwgwvwxxwwwwwwwwvwgfdvfgewWwuvxwgxxgvxxxxwvwwwvvgwvgwwxwgxwvxxwxxxwwvvwvggvwwwwwxxxwwxxvgwefwwxvxxwxxwxxxwwvvwvgwwwvxwxwxvwwwxwwxhxxwwxwwwxvvuwvwwuwwwwwwvfvwwwugwwxxxxgwgwvwwxwxggxxwwxxxwxwvwwwwuwgfwwwxxgvwxhwwxxxgwwfwwvxgxwwwwxwxwhwwwwWvvwwxwxwwwxwxwxgwxxhxxwxwwhwxfgwvwwwxwwxhxwxgwwxwwwxwwwfxxxwxxfvvvfgwggfVwwwwwwwwwwwxxwwwwwhvhxwwwxxwwwfwWVwevuwwwxwgwxxwwxxwwxwgguuwwwwwwwwwxwwwxwwggwwfvguwgvwxwgwwwwwwwwwwxgwwwwwwvwxwwwwxwwvvwwwwvwwgfWxwfxgwfxwxwwwxgxxxxwvxxxxxwwwwugwwvwfwvxwxgvwgwwxhxWwwxwwwwwwwfwhwwxwhxxgxvwvhwwwvwfwwwxwwwvxwhwgxxwwhxwwwwwxxwwxxwwWwxwgxwggwwwwgwvwwxxhwxggxwxxvwhxwxxxhwxwgvwwxxwvxwxggwgwwxwwwwwwwxxxwxwvxwxxxvxwxuwwvvwgvvvfvwfwvwwhfvffwfwvwvggvwvxwvwwwwwwwwxwwwvwwwxwxwwggvwwVcwvfvffvffvfvvgvwgfvxvgvvwwvwfvwvvvwgvwwxfwgwwwhwxwgvgwwwvwvwfgwggwwwwvwgwwxwwvwwWuvvwwwwxwwxxxhxxwvvwfvgwwvwwwfvxgggwwwwvgwwWuxhwwwxxwwxxxwfwgwfvfvvvvvvwhvVevwvwvwvwwwwwgwvfvxwwwwvwwgwwwwwxwxfvfvwvgvgwwgwwvwvwxwwwxwwvwvwvwwwwwfwvgvgggwwvwxwgxgwwwxwwwwgwwxwwwvwwwwwwxwxwxwwwxwgxgwxvxvwxwxwxwxgwgwwvwwwvvwvwwwgwwvgvxvxvwxwwwwwwxxhvwxwgxwxwxgwwwwfgfwgvfwwgtwUuevfwfvwvhVuvwwwwwvvvwvgwwwvgvxgwwvwwwwggxxwwwvvvwfffgUuevvwvGggwwgwwwwwwwgwggwwwwvwwwwwwxvgwwwwwwvwwwfwgwvgwwvwwwwwwwgvgwvgxwwxgxfwvwxxhwxwwwgxgxwgwwxxwhwwwgwvvwwwvwwwhwfwwwwwwwwwwxxwwhvwxwxvvvvfvgVuvwwwwwvwvwwwxtwwggvwwwwwwwxvgxwwwwwwwwwwxxxwhwwwvgvwfgvwwwwwwgwgwwwxvwvwgvwwwGvwwvhwwwvwwxwxwxwwxxwwwwxwvxwhxxxwwwwxgxxxgxhwgxwxwwxwxwgxggwwhxhwwwxwxwwxwgwwwxhgwwwwwhvvxvxxwwwxwtfggwvxgvvxvgggggxvwgwgggwwfvwxvfwwwgwfgfgwwxgwwwwgwvwfvevvwvxgdxvgfwvwggvwvwwwwxwwgwwgvxwwvgxwwxxggwwwWwwwxWwgwxwxwwxwwwxfwgwxwwwvgwwxwfwwfhwhxwwxfwgwvwwfuwvwwgwwwwxwwgxwxwwwwwwwgxwwhxxxwgxwgggxvwwwfwggvxvfwwwxwwuwxwvvwwwwgwwvwwvxwwxwxwwxwgwwwvwguvhwvwfgwwwwgwwhxwwwxwhwvxwxwwxxwwgwxwWxxwwxggxwwxwwWwwxxwvwxxxgwwxwwwwwxwwwwxxwhxxxhwxwwvwwxwevwxwwwwxwwwxgwwwgxxwhxxxwhxxwxwxxwgxwwxwwvvgFfwwWxgvwfFfwwvgwvwwvxwgUgvwxwwwwxwgvvwxxvxxwfWggfxgwvwvwgwvwggwwwwwxxwwwwgfgfvxwxwxwwwwwwxgwwwwwwwvwwwFwfggwuxwxWwFwfgwwwwwwwwxwuvgWwwwwxwwxvwwxwxwxxWwvwwwgwwwgwwWwxxwwgwwwwgxwxwxxwxxwwWVwwwwwwwwWwvwwxxwwhvxwwwgvwwvxwwxwwxwwwxxxwxxxwwvwgggfvwgwggwhgwxxggghwgwwwvgwxwwxwxwwwwxxXxxwxxwwxVwwfwwxwwxwwwxwxxxxwxgwvwxxxxwwxwwxxwwwwwwgwwwwxwwwhwwxxWwwwwwwxxxwwwwxwxweffwuegvvwwvwgvgwvwgwgwwwvgvwwgvxvfuwugwwfwvwvgfwfvwwgvvwwxwwvvgwvefuvwvvVvuwwgvgffvvwvvwwwwvvVdwUfeevvuwvvuuwgvvvwxwxwwwwfvvxvfuwwwfwwvvvwwgvwgxxxwwgwwfvwvgwwvwwxfwgvwxvxxxxgxwwvwfgveVvwffvfvxwvvxxwwgwfvffwwxfwxwhxxvxvwwxvfwxwwvvgwvvvgfwwgfvVfvgvwfgvwwwwwvwvwvvvwgwvwvwxUvvwwvvgvwgwwwwwvwwwgwfwggvwwwwwfwvxuvewwwwxwffwwggwgfgxwwwxwvxwwVwWfwgxwwwwvwwgwwggwxgvvvwwwWwfwvgwWwgwvxwwwxwwgxwxwwvwwxgwwwwfxwxwvwwwWxwwwwgxwfggwxgwfwwwwwwwwxwgwghxwxwxwwwwgxwwvvvwvfuvuwgwffvfwegvfwwwwevgvwwgxggDuufwwwwfvwwwhwwxxwwwwhvufwDuefffwwvvwvfwwwwgwfwgwwgVvuvwvvWwwvwwwwxwwgwwgvwxxwwvwwwvwgwgwwvvwgwfvwwwgvwxghxxgWvwvwfwwwxwgwxwwwvgwfwgwWgWgvwwevvwwxwwwwxgwgwggwhwvwwwgwwwwwWwwxxvxgwwwvvwffvfguxwxfuwvvvwfffgvwwwUwwvvxxgvxgwgfwwgvwwxxwffgwvwwwwfxwgwfwvwgwgxuwwxwxvwgwwfggwwwwgxWfwWggwwwxvwwgwvwwhxgxwvwxwgwxwwggwguwwwwvhgxwxxxhxwgwwgwwxwwwWwwxwwvwwwwxhwwwwxwwwxvwwwwxwwVwgxWghxwwxwwgxxuwwvwwwwwvwxwvwwvwvwwwwwxxwvvgwwgxvvfwwfwwwwfwvxwvwwwwvwwvwwwwETvvvgwuuwwwwwvvfwwfwwvfggfvvfwwvvwwvwwwgwwvwwwxwgwwxwwwggfwwvwfwfxvwwvxxwxfvwxwwwxwwwxfwggfxxwwuuwwwgxxxwwfwwvwwwwwxwwwxwwwxgwxwxwwgwwwgvwgwwwgwwwwwfxxxwvwwwwwfwwwxvwwvwwwxvwgxxxwvwwwwwwwwgvvvxxwwwgwwwwwwwxwvwvxxwwxwwwwwwxgvhwvwwvwwwwwwwwxwwwfwvwwwwwxwhxxgwwxxwxwwxxwwwwwwwwwwwwwxwwwwwwgxwxxwwvxwwxxwwxwwxwwxxwvvvvwwvfwwfvwwwggwwwwfwwgwwgVefuuwwvvxxxUuuwvxgxwwwfwwwwvwfvwwxxwfvvfwwwwwwwxwUuuwwgvvwwwxxwxgvXwvvwwfxgvfwwwwvwhfwwgwwgvxwwwgwvvwwwxxxxxxvwwwxxwgxxwxxgxfwvxwgxwwxwwwxvgxgxxwvwwxxxwxxxxwxvwwwwvwwwwfvxwwwwwfwwxxxwwxwwfuuwxwwwxxvwvwwwwwwwwwwwwxwwxwgwvwwwwwgxwxwwgxwwwwxvwwvvwwVevwwwvvxfwgwwxxxxvfvgxxxwwwxwxwwxxxxxxhxwxwxxxgwgxxxwwwhgwwwwwxxxwwwwwwxvxvwxfxwvvwvwwgggwfwxgwguxwggwwgwgwvxgvxvwgwgvfxvgvwvwfxvwwwwwfvwwgfwvgfgwfgVevgwfGvwxhgvwwgwvvvgwgwfhgwwwwwvxggwxxxhwwwwwwxgwfxgfgwxwgvvwvwfwwhhwxwxwffxwwhwxwwvgxxwxxxxwwxvwvxwwhxwwgxwwhwxxfxxwwwhwxwxwwwhgxxwwxxwvwwwxwwgxwxwWggwwwwvwxwgvxwwfwwxgwwxfxxfwxhxwwwxwgxxgwxgwgxwwwwwwXxwwwxgwxwgvwwxwvxxvfwwwwxwwwwwwwhxwwwxwgwxwgxwxwxwwxhxwxggxwgwxwxxxxwwwxwxxwxwwxxxwxxxwwxxxwwwxwxwxwwxxvwwxxxxxxxxwxgvwwgwwfgwuwwgfwfwggwwgvwwwwgwxvxvvwxwwwvwhggxwwxgvvwxvwwxvwgwwvvwWffvwhhgwgwxgwwvwfhwwxwgwwfwwgwwwxxwwgfwghwwxxwfwvwwvwxwxwgfgxgxwxxvxxvvxxhhxxwxwwwxggxxhxhwxwwxxxwxwhxwgxhwxxgwgxxxwwvxxxxxwwwhxxxhxwhxfwwhWwxvWwwvvwfwgvwxxgwxxxxvwwxwxwwwxhwwhgxgwwwgwwxxvwwwxxvwwwgwwwxwgxxwwxhxwwwvwxxhxwxwwwwwxwxwxxxwxxxxwxwxwwwwxgwwxxwxxvxwwxwwhgwxxxhvxwwwwxwxxwwhwwxxxxxwxxxwwxgugUwgwuwgvvvhvfguxwwvvxgwfwwfvuwvwwvxwfvwvggvhwgwvwxwffewwvfffwVfgwwwgwgwwuggwwggfgfgwufvuwvfgghfwfxwuwwvgwvxuwgwwgwwwxgwwvwvhwwxxxffguwwvwwwvwwwwgwgwwwwggffvuvfxgwggwwwwugxwhwwxwwfvfWwwwwwxwvhwgwgvggwvvvwvgewugwxwgVfxwgwWwwwwxfwvWvwgvgvwwwvvwwwwwvxwwwwwwgvvgwwwgwwwwxwxfwwuxhgfwfggxxwvgvvwwwwwwxwwwwwwgwhgWhwgxwwvVVwvwxxvxwxuvvwwwgxwxwxwfwvwwxwxwxwvxxvwwwhxhwwwwWfvwgwwxwwwxwwgwxWgwxxxwxwwwwxxvVwwxghxwWxwwxhwwvwxguvwvwffxgxgwwwvvvvfvuwwxvwgggfvwgxvvggwwfwvwwgxwwxwwevfwevfwvwgfwgwgwuwwwgfhwhwwxfvewwgwwvfgfgxwgfwxxwwwxgwxvwfwvwgvvwwxvxxxgwvxfxhxxxxwwwwuvvwfwwwxhwgwwwgwgxwuwgxxwVvvvgvwvvwxwwvwwwwwguwxxxxvwwfxwggwwxxxwWxwxwgxxxgwwwwgvwwxwVvfvwwvwwwwwwwwxwwwwxvwxvwvwwwwwhxgghfwvvwggwffgxwwvgvwwgwvgwxhwgwvwgxwxwwxvxggwhxwwwgwgvwgwwvwwwwxfggwvgxwwxxwwxhvhwgxwwwwwwxxgWwhxwwwwwgxgvwgvwwwwwxgggxgvwxwwvwwxgxxwxwvxwxwgwwxxxxtwfvgwvfuwvwfvvwxwugvwfwwgvgvfgwwwfggvwfwgvwvwxuwwwvwvwwfvwWtvWwuvwxgwwwwwfwvwvxvgwWdvgwuvvvgggWfwuvfxvwgwWhwgwxwgvwwwwwwxwgwwvwwfwhwwxwwwwuwfwfwwwxxwvwwwxwwwxxxwwgvguvgfvwwwwgxvwhxfuwxxwvgfwwxwwxhxwwxwxwwxwwfwvwvwgwgffwuwwwwwfvwwwwwffwwwxwggguwwhwwggwwhvwxxwgwwwwwvxwwxgwwwwwgwwwwwwxwwxwWGxwwvxwxwxWGxxfvwwWwdwggwhGvugxgwxwxwwvwvvwwxxhxwwwgxxwwxwwwwxwwwwhxxwxxwwwxxwxxwhhwwhwxxgwxxxxxwwwgxfwvgwwguUwgufvvwvwfgwuwgwgguvwxeufvwwwxffwvgwwhwwwwvwffuvFwefvxfwgwvwwwfgwwwwgwwWvtfvxwwwwHvwwwwxwwxwvvvwwwwwwwvvwgUwwvwvwwvwwwwwvwwwxxgwfvvgvxxwhxwwhxvxwxwwgwxwhxwwwvxfwwhwxwwvxwxgwwgxxwhgwwxwxwwwwxwxxxwvxwwvgwWwfvxvxwguwwwwwvwwwwwwvwwwxxwwxvwwwxxgwwwwxwwxwwwwwwgwwwwwwwxxwhwwwwwwgvxgxxxwxgWxwvwwwwwxwwxvwwwwwwxxwxfxwwwwwhxwwhwwxxxwxwhxwwxxwxgwwgxwxwwxwwgxwxwwhwgxwwwxwwwgxwwwugwVvvxVwwewvuvhwvwgwggwwxfwwvvwwggxggwwgvgfwwwvvxwxgwevwwwwfwvgWvvewwwvwggWwwgvxvwgwxgewggfffWfvgwwvxhxgxwxgwwwvvgwfgwwgvwgwWwwwxWwvxwwfxvwwxvwwwggwwxxwxxwgxxhwgwwwwwvwwxwwxgvvwhwwgwwgvwwwwxxxhwxhhwwwxxgxwfwxvwwwvxgwwwgggggwgwvwvwxvwvgwwwwwgwwwxwwwgwwwwfwfwxwwxwwwxwwvxwwwxfwgvwxWwwwwvwvwwwgwwwgxxwxgxwvhwxwwhhgxwwwwxwvxwwwwxgxxwgwgxxwwwhxxwxgxwwwxwwggxwxxxxxxwgwxxwwwxxxwwwxwwvxgxhwgxwwvwxxxwwxwxgwwgxxxxhwwwxfvwfwgwwwgwwwggWwfwvgWwvwwwwxhvVwgwwwvwwxwwfgxwwwgwwwfxwfwwvewfwwwxfwxvwwwWgvwwgwwgwwvgwwghwwwwwwwwvwxwxXwwwwwxxwwwfgvwxfwwhwwwwWxwwwgwxxxwggwwhwwxwhwxwxxgxwwwwhwhxxvwwgwwfhwwxgxxgxwxxwwvwwwxxxxxwWwwxwxhwxxwwwvwwwvvxgwxuxwfwwwwwxfggwvwwxgxwvwwwxxwwxxxwxhgwvxxxxxxwgvwwwwgvwwgwwxwxwxwxgwwxwxwwwxwwxxwxwwgxxxxxhhxxxwxxwwwxgxwxxxxxwgwwxgwhwwwwxxwwwwhgxxwgxgwwxhxxwxwWgwwwwxwxxxxxxxhxwwxxxwxWwgxxxwhvwfgvwwvxfwwwwxwwwgwfwwwwwvwwvwwxwwwxwwvxvxwxwgwvwwwfvwwfwwwffwwgwwvvwxwwxwwvfWwuwwwwvxwwvwWwvuxwwxwgwxWvvuvwwwwxhgxwhvxxxwxwvwvwxwxxxxxvwvwwWWwwwwvwxwgwxxwxwwxxvwxvxxxxxxwvwwVefgfwgvvwvgggvvxvwxvgvvwvgwwwwfwvwxwwxxwwwwvvwwffwwgwxggwvvwwwxfgvvvvxwfwxwwwwfxvvwxxwhwwwwwffwvwvwvxwwwwwxwwhxwwxwfvxxxxxxxwxwwwxggfwvgwxwwfwwxxxxvwxxxhgwhwwwxhxwwxwwxwvvgvgfwwwvvvwgvwwwwwwwhvwwfvvwvxwwwwxvwxxwgwxwwvwgwfvfgvvxwvwwwwfgfvwxwxxxwxfwvwvvwwxwwwwxwhvxwwgxwfvgvwffwgwvwwwwxwwxwxgxvwgvwwwwvwgxwxxwxxwhxhwgvwwwwwvwxwwxwwwgxwvfxwwwwwxwvxxxwwwwxvxwwxvwwwvwwwwwwwwwwwwgwwxxwfvvwwwfwwxwwxxwwxwwfwfwvwvwwxwwwwwwxxvxwwxwxwwwvwfxgwgvwvwwwwxgvxwwwgwgxwvwwvwwfwxwwwwwwxhgfwwwxgwxwxwhwwwxxwgwxfxxvwxxfwvwwwwwxwwwwhwhxhvwxwxwwgxwxwvxxxwwwvxxuwfwxwwwwvxwgfvgwfwwwwwwwwwwwwwwwwwwwwwvwwwwwxewwVvxvVwgvwwVwwvwxxwfwfwvwvwwvgwvwwVuwwgwwvwxggxwwwwwwxwwwgwwvwwvwwwwwwxxwwwxwxwwggxxwwxfwvfwwwwxwvwxwvwvwfuwxwxwwhxvwxwwwvvwwwwgvwwwgxwvwwwxxwwwwwgvwwvvwwgvwxxxwxxwwVwwwVvwxwwvwwvxwwxgvggfvwwwwxwgwvwwxwwwwwxxwwwwwwwwwwwxwxffwwwwwwgwwvvxxxxxwvxxxvwwvxhwvxwwwwxxxvxvwxwwwwxwxxxwwvwgVeggUvffvgVexwwffwwgwwwwxfwvwgwxwxfwwffuwwwVvwVewVwwwwwvvwxwggvwvwwwxvwxwwwwwwvwwwwwwgwfwVegeWfwwVegxwwwxVvwxgwwxxwxVwgwxxxgwffwwffxfwxgxwghwgwvxwxhgwvwxwwffgvxfvvxwvvxgvwxwwxxwwxxwvwxxxxwhwgwwwxwwwwwhgxwVuwVvxwwwwwwwwvxwwhxwgxfvwwwwfvfwxwwwwwwxxgwwwxxxwvwxxxxwwxxwwxwwxxwxwwxxwxxwvwxgvvxwxwgvxwwwwwwwxvwwwwvwwwgwwgwvxxwwwxwwvwgxwgvwxxgvxxgfwvwgfwgwhwwvwewwwvgwfgwwwvxwgwgvwxgvwwwxwxgvwwwvhfxxwwxwhxwxwxvwxgwwwwwwxwxvwxwwxwwxwxwxwwxxxwxxwgwgwwvwwwxwfwxwwwhwxwvxxwxwxxwxwxwgwwwvwwgWwvhxxxgwgvwxxwxxxxwvxxwwxwxwxxwgxwwhwvewgxWwxwwwggwgwywxgvxxwxwxxwwxgvxxxwxxwxxwwgxwwhwxxxwxvxxxwxxxxxxxxxwxxwxgwxwxvwxwxwxxgwwwxxwwwxwwxxxwgvgvuxwwwvwwwfxxfwwwwxxxxxwwwwwwwwvwwwwxwxwwgvvwwWgwvevwxwwvgvwhgfxwwxvggvwwwwwwwwwwwwwwxwfwwgwxvxwxvwWwxxwgwhwvwxwwxxxwxxvxwxwwwvwhxwwxwgxwwywxwxwxxwxxxwwwwwwxwxxwxwxwwxxxwxxxwwwwxxwxvewwwgwwxxxwxfxxwxhxwwxxwxwwwxxwxxwxxwwxwwxwwwxxwxxwwxwxwwwwxxxwxxwxxxwwwwxxxxxxwwwwxxxvxgvwwwxhwwvxxwwwwxwwxfxwvvwwvwxwwwwxwgvWwwwxwwgwftwvfuwxwwgfxwvvwwwuxwwgevfvwwxwxwftwvwgwvxwwwwfwxxxwwwhxwxXwwvvxxwvvwhwxxxwwgvwvwwwxwugvwxwxgfwguwwwxwwwwxwwxwwvwvvwwwwwwgvwwxwwwwwwvwgwwwwxgvvwwWxxwvvwxwwxwvxwxwvvwwwwwwvwvwvwwxwwwxgvwxxxfxxwxwwwgwwxxwwxgxxwhvwxxwxxxxWxxwwxwxxwwwwxxwwwvwxwwxxxxwhxvgwxxxxwgwgxuxwwwwwWwxwwfvwwWwwvwwuwwwgfxxwxwvwwxwxxwxxgwfvwvgwwwwxgfvtwwfxxwwgvvwwwxwwxwgwwxwxwwwvwwxxvxwwwwwxwwxxgvvvvxwwxwxwxwwwwxxwxxxwwwwwwgwxxwwxwwhwwwwhXwvxxxxxxwwxwxxxvvwwwwxxwvvwwwwwxxwxgxxxhwvwxwwwxwxxwwwvwwxvwwvxwwxwxwwxwwvvxwwwwwxwgwwwvvwwwwxwwwxxwgxxxwxwwwxwwwxxvxwwwxxxwwwvwfxxxxwxwwwxwwwwwwxxxwwwxwxxwwwwvvwwgvuxwwvguwwwvvwvvvvwvgwvxwWhvwwxvxwwvgwwvwxxfvvwvvwgewwwwgwvwxffgwvwwxwgwxgwfwvwwweWwfguvgwwgvuxwwxwwwxwwWwxwxwvwgwwwwwwxwgwwwxwWwvwwxhxwxwwwwwwwuwxwwwwvxwvwwvxxhwxwwwwhxwxwwwwgxwwwwwwxwwwhvwxgwwwvvxwxgwwgwwwxwxvwwwwwwwwwwwvhwvxggwwgxwggwvgwwxgxwgwwvgwwvwwxxwwwwwuxwvwwxxwwwwxvgxxvgxgxwxwwxxxvxxxwwvxxwxxgwwhwwwxwxwwvxvfxwwwxwwxxhwxwxwwxgwwxwxwvxvwVvwvfwvwwwfvvwwwxgxwgwuwxvwxgwvwvwwwgvwwwwxvwwvfwwgwvfxgwuwxgwggxwxwwgwwvwfwwwwwwvgvwhwxxwwvgxvgwxgvwvwgxxvhxwvwvgwhwxxxxxwwwxwwwwwxxwxwvwwwxwwwwxuwwhwxwwwxxhhxxwwwxwwwwwgxxxwxxxwwwxxgwwwvhwwwvwwwgvwwwwwxwxgwgwwwwxwxwgxwwxvwwgxwwwwwwwgxwwxwhgwwxxxxwxwxwgwwxvwgxxgxwxxwhxxxxxwwwxwhvwxxxwxxwwxwxwwxwxwxxxwxxgxwxxwxxuxwwwvffgwvvgfvwwvgwwwwvfUwwvfgwwwvgfvwxgfwuvWfvfvgwWvvwwgvwwwWsewwVwvgvfgGtfwwgffvefwWfFwhgwfgvwffwewvfwvwwgfVvxwwwwvwvwwxwgfvxWgfwxwhgvfvwghxxhwgvwvxwxvwwxwxxgwxgxwfwvVvvwvwxwwewvxxwWwgxvwfxvwxwwwwvxwwxwwxwwwwwvgwwwwggvwvfvfwxWuuwwwftwwWfwwgWgwxxgwvwxhgWvxwhxwwwxwwxgwwwwwwwfwvwwwwxxgwwgehW6whfwvxvxvvwwwwwwxHFwwvxxguvwgwwwwWfuhwwwwwvwwwwXwxXfWwuwwhxwxxwwxxwwwxwwwWwhhwwwwfhvhxXfxgwgxwgwxwxwwwxwwxxwxxwwwwvwwwvwwVeuwwwvvvgfdvvvVgfvfgwgvgwwfvggwwwwwxwwwwxwhwwwgwwfVguVvvgwwVweehv7xgwvfwgwvwwvwwvwwwwwwgwewgwwwwwwfwwxwfvgwvvgwghfwfwvxwgwvxwwwggwvgxwxvwwwgvwxhhvxgggxwvxhvwvxvwwwxwwwwxxwxwwwwwxwxwwgwvxwxxwwwxwwxwghwwwwxxvgfvgvvxgvvxxwxwuwwwggwwwwggvgwxxwxwxxwxwhxwwwwwwwxhxwwwxgwggxgwwwgVxXFgwwxvwuwxwxwwwwwxfxwwwwxxhwwvwwwgvwwxxxxxvwxxxwwwxxwxwwwgwwwwxwxwxxgwvxwxwwwwwwxxxwxxvwxxxxgxwwxxwwxwvvwxvwvwwxwwwxvxwxwxvvwwwxxvxhwvwhwgxwwwwwwwxwgxvwwxwwwwgfvwxvxvwwxwwvwxwxxwhwvwxugxwwwvwxwwwwvwxvxwxvwvfwwwvxwwgwwxwxwwxwwxwwhwgxwwxwwwgxgwwxxwwwwfwvwgwxwxxwxxwxgxwwwvwwwwvxxxwfwwxxwxxwwwwwwxwxwwwwxwwgxgwwxgvwxwxxxwxwwvvwxwgwhgwwwwhgwwwxwwwvwwxvwxwxxxxxggwwwwxggxwwxwwwwxwwwxhwwxwgxvxvxxxxxxxwxwwvxxwxwxxxwwxwwxxwwwxxwxxxggxwxxxwxwxxwxwwxwxxwxwwwxvwwwwwwfwwxwwwwwwwvhfwfwggwwwxhvvxwwvwgfvvfwfwvwxwvvxggvxxwxwfwwwvwwgxxwwwwwwxwwwxvxwwvxwgwxwwxxwwwxwxwggwvwwgxwxwgwwxwxxvwwwvwwwwgxxxwwxwxxxwwxxxwgwwxxwxxxxwwwxwxwgwhwwwwwxxwxhwwwxxxvxwxxxwvwwxwwxwwwwgwxwwwwwwwxvvwwwvwwxxvxxhwwwgxxwxxwwxxxwwwhxhwwxxwxxxwwxwwwxwwwxxxwwxwwwxwxgwwxwwwxvwxxxxgxxwuxwxVuwgfwgufgxwwwxvhvwwwwwwfwvvwwxuugwxfwwuvwwwwgfvwxgtwgwvwwwfwgxfwwwVWwfvwvwfwwuwwvwwfvwwgwwugwwwwwxwwwwggxvwuwxvwvwwgfwwwgwwhwxxvxwgvwwwgwxhgvvxwxxwwxwxvwxvvwwxwxwwwxwwxwxxwwvvwwxxwwwwwxxwxwwvwxxwgwwhvvwwwwwgfxwvwwwwwxwwwwwwvwgxwxwvwwuxxwwwgxvwwfgvwwwgwxgwwwwwxvvwwgwxfwxvhwwxgvwwwwwwwwxwwwxwwxxxwvxxhvxwvxwgwxxxxwwxwxwwwxwgwwwvwhxwwvwwvxwxxxxxwwxgwxwxxwwwwxgevwwvwgwvxwwwgwwwwxwgwwwfwvvwegwwwXgwvvwxgwewwvxwufwvwVwwwxwwwwwwfwgwwwwggwwwwwvxgvfwgvwxgwwwwwwwwxvxwwWwewwxxWvuxwxggwxxwwgxwwwxhwxxwxwwxwxxxxwwvwhwwvxhwwwgwxwxxxvxxwwxwwxhxwxwxwwwwxwfwggwwwwvxwwwwxgxxwwwxxVugvwvwwgwwwgwvvwxxxwwxxxxvgvwhvggXwwwxwxwwfwxxxgwwwwxxgwwwxwwwwwVwwgxgwwxwwxxxwxxwxxwgwwxwxgxwxxgvxxxwxgxxxgwwxwwxxuwggwvxwwxwwegwvxxwgxwvwxxwxwxwwggwxgwggwvvwhxwwwwwwvwvwvwwuwvgvxxwxwvwxwxvwgwwwvwuhxfwuhwxwwwwvwgxvxwwwwxwwgwwwxxwxwxwxwxxwxxgwwxxhxxwxwwgvwwxwwwwxgvxxxgwxxwxxxxwwwvxxwwwwxgvgwuwxwwxwxwvxwxwxwwwxgvxwgwxxwxwxwwxgxwvxwwwwwvxwhwxwwwxwgvxxwxwvxwgwxxxwxwwxwgwwvxwxwwvwxwwwxgxwxxxwxxxxxwvxxxwwwxwwxxwwxxwxwxxxxhwxwwwwxxxwxxgvxxxvhxwwvxewugwwwwwwwwwwwhwxwvxxxwgvwuwwwwwwwvwwfwghgxwwwxwxxwgwvwwxwxwxxwxhwxxgxwwwvghxxvhgwwgwxxxwwwwwxwxhfxwWxwwxvwwxxwgxwwxxxgwxxxwxxwxwwhwxwwvwwxxxwxwxwwxxwxxxwxxxwwxxgwvwxwxwwwwwgwxwwxwwwwwwxhwxxwwxxwxxwwxwvxhwxxxwhwwxwwvwxhxxwwxwxhwxwxhxxgwxxwxgwxwwwxxxxxswwggvvwwvwgvgfxwwwwwwwwguvwwwwgwwvwwwfwguwvhVvfwvgfwWFSufgevwwwwwwwgwwwwwwwvgvwvwvvwwwuwgvvwxxwxxwvvgwwwwwwgwvwwwguvgxwxwxwxgwwwwxxwxvwwwxwguwvwuuwvwwwhwwgwwwvvwwwxgwwwxwwxwwxuvvwvvgvvfewwwwgwgfwxxwwwwvfxwvwgwwwwwwxuxwwwgxvwxxxvwfwfWwvgvwwhWtvgwWwwgxwfwxxhvwwwxgvgxgwhwvxxxvwxxxwvffwwvwgwwhvwwwvxwvvwxgxgwxwwhxxxxwxwxwhxwxhwvgwwwgegxggwgxwwgxxwwwvhxwwwxxgwwvwxwxxhgwwxwgvvwwgfwgwfgwwvwguvwwwwvwxwwwwwvvwwxwvwwwxwwxxwgwVFSuwwefwhgwwgwwwwvwxwwwxxvwwwwwwwgxwwvxwwwxwxxwxfggwgwxxxfwwwwxfwwxwwxhwgwwxxwwwwwvxxwxxxwwxwwvwuwwwgwxvwxwxxxwxxxwwwwwxwxwwwxvgewwvvwgwwwwgfwwwvwvvwwwxxwxhxwxwwxwxwxgwwxgxvxgxxggwggVdvxwxvxwwwwvgxxvwwxxwgwxwvwwwwwwxxgxgvxuhwwwxgwwxwxwxxwxxxxwxxxwxxwwwxwwxwxwxxwxvxwwwwwwgxgxgxwxwxwxwwwwxhwxwfwwvwwwwwwwwvugwwwwvwggvvwwwvwxxxxwxvwxwwwwwwvgggvvvffuwwwgugwwvwWvwwvvgwwuwwvvvwgvwwxxfvvwwwwwxxxwfvvwxvwxwwwgwwvwxwvwwxxwwwwxxwxwxwxgwevxWuwwvwwwwwfvwxwwwwwwwwxxwxxwxxxwuwwxwvxvvwwxwwwwxxwvwxwwvvwwwwxwwwxxxwvfwvWvvwgwfwwvvxwwxxwwwwhxwgwwxwxwwgwvxxhxvwwxwwwvwwwwwgxxwwwwwwxwwwwwwxxxwwxwgxwxwwwwvgvwwvwwwvvvwwwwwwwxxwwwwhwwwxwxwwhwvwwwxggvwwwwwwvvvwxwgfwwwwwwwwwwwxwwwwxwxwwwxvvuvwwWvwvvwwwwwfgvvwegwxwwxgwwwwwxwwvxxwxwhwwxwwwwxxwwfwgwwvvwxwxwwxxwhwxxxwwxwxxgwvxwxwxwvgwxwxvxwwxxwwxxwxxvvxxvwwwwwwwwwvwgvwwgvxwhwxwxxxvxxxxwxxwwwwwwwwwuwwvwwwwvghgxwwgxwxxxxwxwwxxxwwwwfxwwxwwxwwwwwwwxxwwxxwxxgvwgwwxwxwvxwwwxxxhwwwwxxwfxxwxvwxxxwxwwwwfvvwvxwvgwgwwwvgwxwxwwwwwfwwwxgfxxwwwwVgvwwgvfgfwvvwgUDvvxwwffVwvwwwwvwwwwwvfwgwwwxxfwwwvwwgwxgwgwfwwxwxgwwwwwwfwwxwxwxxxxwgfwwvwxvvvwwgwfwwwgwwxwxwwwwwwgwwxxwxwwvxxfwvgwgvfgwwwwwgfvwxwwwxvxwxwwvxggvwwwxwwgfwwwwfgvvwxwhgwgwwwwgegxhfwxgxwxxxwwwwhxxhwxxwxwfwwwwwgfwxxgwwwwxxugwwxwwwxwxwxwxhhxxxfgfgwxwxvxfxghgwwggxwwwxwxwwxxxxxxwwwwwwfwvgwwwwwwwwgfxvfUwwgwwgwwwgwfwwxwvwxwgxhwxxwxfUDwwvwvwvwvwwwfgVwwwfwwxwwwhgwwxwvwwxwwxgxxgwwgxgvwwwxgxwgwvggwgwgwvwxxxxxvxhgyhxxxwwgwvwwvwxwwgwxxvwwxwwxxwwwwxxwwvgfwwwvwwuwwwwwvgwgwgwwwwwwxwwxwxxxxxxvwggwgggvvvwvhffuwvvwgfxwxgwvwwwxwfgvxgxwvhxvwvxwwxgxwwgwvxvxwwwwwxxvwgwgwxxvxwxxxxxxxxxxvwgwxwxgwwxxxwgwwxxwwxwwgxxwxuevwfvwvuuwvfgvfvwwvvgfevwwfdvwggvwwwwwwgvfwgwwwgvwwwvvfgfgdgfVfgfufwfWevgvfvfvggwwWeffwvfgwfwvxwwvvfwvvfwwwwwwevwwffvvvwgvwxufvwvwfwxwwvwwfwwwvvwxfvwfxxwxwwxufwwvvvwfwewwgwgfvvwgvwwhvwwwwggwuwvxwwwwwxfwwwwwwwgwfgvvvvwvefvwwwwvffwwwwvvwvvvxvfewgwwwwxwwgwgvvwwwvwgxhvgvvvwvvvwfVfwwwvgwegvwgvvfGgwtegfvvuvWwxwwwwwwvwXhuwwggxhwwvWffvwwftvwwgwfvvvwvgvuwewwuuvgfwvwxwwwgwwvwvwxxwvwwwwwvwvfwvwvhvgwwvgfwwfxwvxguWwvvgwgwfgwgwwxhwwwfxwvwxWwxfvvVfuffffgvfvwfVvfvwgvvwvvvxvvfvvwvggwwwwwwwfvvvgwwwvwwwvfeuguVfvfwfgvwwhefwugwvfgwxwwwgfgVwwwvgvwwwxwxwggvwwwwwwxwvvgwvvuvxfwgwvvwwgfwwuwwwewxWwfwxwxwwuwvxxxxwwwxweuwWwwfwvwxxgwwewgwwvfxxfwxwwgvgxwgwxwxwwwxwxwfuwwuVgvvvwwwWwefwuwwvvvwwwwfwhvuwvwvwwwvvfvvwgwwwwwwwhvgwwgwuggvxgwvwggvVhhuwwfxgwwwwvgvwxwwvwwwwugxvvwxvwxfvvgwwwgxwgwwvgwWwvwvwfgxwhwwgwvxvwgwxgWwwwvxgvwwvxhgwxwhvgwwgwWgwwvxfwwxwxgxwwwhggvwxwevvwwxhvwwwwxxwwwxgwggvvwgwgvgfvwwwwwwwwvvwwwwfvwvxuvwwuwwwwvffvwwfwwwewwvwwvuwvwvgwwwxwfvvwvwvwwwwwwvvwwwvwwwwwwwwvgvwwwwwvvxwxvwvwwxvvuwwvwwwgvwxwvfuvwvwuwffwxwvwwwwxwwwxwxxvvvwwgvwvufvwwwwwwwwxwwwwwwxvvwwwxxxwgvwwwwwgwvxwvfgwwwwwwwwvwfwwwwxxxwwvwvwwwwwwxwwxwwwwwwxgvvgvwwwwvvwxwwxxwwwxwwwwfvvvxhwwwwvwfvuwwwwwxwwwxwxxvxwwwwwwwxfxggvwxwwwwwwwwwveuwwwwwwwvwwwwwxwvwfxvxxvfvvwwxwgwwwveefwvvfvxwxwwwuvwwwwuxvxgwwwwwwxxwxxwwwxgwxfvvwwxwwwxxvwxwwwxxwgghwwwwwvwwvxhxxxxwwwwwwvxxwwwxxwwwwwwxwwwxgvwwwwwxgvwgwvxwwwwwwwwwxwvwwwwxxxxxvwwwxwwxwxwwvuufxxwxwwwuwvwwuwxwwwwwwvxgxwgvwwxxvwwgwwwvwwxwwwwxxwwxgvwwxwxwwxhxxxwwwwwwvwwwxvxxxwvvxxxxxwwwwxwwxwxvwwwwvwfwwgvwgwvfvwvVVwvfgwVwwwfvhhvwvwwvvvwxwgfwwwfxwfvwvwfUwwvvwUvgvwgvgwxgwwxwwgwvfvwxvwuwwwvwuwwvwgwxvfgwwvxwwgfxvwxwgwgvxwWwwgwwwwwwwxwwxwwwwwwgxwwwwwvwwgwfwwwvvwwvwwvwgwggwvxhwwwwwwvvwvwxwwxxwgvwxwgwwwwxwwgvwwwwVVwwwxwVvwvxhggwwwwwxvwvwxgwvgwwwxvxwwxvfUwwwwUwvwwxwwxwwgiwvxggfvwfwwewxwwhuwwwgvwwghwhxfxvwwwwwwhvwwwwwxwwwWvwwwwgwgvwxvwwxxvwvwvwggwwwwxxwwwgwwfwwwfwwvwvwxfggggvwvvfwwgvwxwvwwxvggwwfwwgwhxxwwvwwvxwvfwwgvwgwgwwfwwfwwguuwxwvwuwwwgvwxgvwxwggwwxvvxwwxvxwvvfwvfuwgxwwuwvvxwwwhwfgwxwfvwwwwwwwgvwwghwwwwgwxfggwwxwxwwhxwgxwxgwvxwxxgwwwugwwghwwvwxxxxwxgwgxxxvxggxxxxxwwwwwxfwwwgwgwwvxwwxwwwwgwwwvvwwxxfwwwwwwwvwgwvwxgwwgwxwwveugwxwwegwwwwvgwhwwwxwxwgwwgvwwwwxgvxxwvuwxxfguwwgwgwggwfvghwvvvwgwwvxwwxwhwwgxwgwwwxvwgwgwwwxfxwhwxxxwwxxwxuwxwwhxgwwwwwwvwwxgvwwxwxhxfvwxwwwwggwfvwvxwwwxxwfwwgwwwxwwvvxxgwwxwwwwvwwxxwwtxfwwwwvvxxgvvvuwwvwxwwwvwvxxgfgwgvvgvwwwvewfwwvvgWuvwuwvewwwwwvwwfFTvvxvwwxxwfvfvxwvwvxwufwwgvwwwxvwwwwvhwxwvvwgvxxxwwwgxxwfWevvwxwwvwggvvwxfvwhwwwxfwwxxwxwxwxwwwwwgvvvwwwwgwwvxfvvvvwxwwgvwvwvgwwhwwvwxxvxxfvfwwxfhwwvwxwgfgvxwhgvhxxwwvvwwxwxvxwxxxwwXewxwwwgwwvwvwwvwwwvwfwxwwwvxwxgvxwxwhvwwxwxwwgwvwwwhwxwwgwggVwxvwwwwxvvwwhwwwxxwxwhwwwwwxxfwuwwgvgwvvxvgvvwwwwxwgfvwwwgxxxxhgwwxwwwxfFTvvwwwwgwxgwvvwxwwxwwwwgvxxhxwxxxxxwwwxwwwwwwfwVefwwxxwwgxvwxwxxxxxvxghwxwxxxxxxwhwwxxxfgwwxgxwxhxvwwxwwxxwxwxxxxwwxwwwxhwxxvgvwvvxwwwwvwxxwvxwxxwwwwxwwxhwhwwxxwxgvfvwwwxwwgwxgVewwxvgxxxwxwwvwwwwwwfwxvwxxxgxvxgwwwxwwxhxxxxwxxxhwxxxwwxvxwwwwxxWgwvwwxwwxwxxxgxgxwwuxvwwgvwwwwwgvvxwwwvUUwwwvwwgwwwgwfvgvfwvgwvwwwwvfwwgvwwgvwwwww6SfwvwwwwvwwwwvwwvXwuwwwwwwvxwvwwwwfwvwwxwgvgwwwwwgwfgwwgvwwwwxwwwxVvegwwwxwvhvwvxwxwwwwfvwwwwwwvxwxwwvwwwwxvxgwwwwfwwwxwwgvwwvxWuwwwwwvwgvfwfwwwvfwvwwwwwwwxwgvvwvwwwxvxwvwgwvwwwfwwvvwwwwxvwgggvwwwgwwwgxxgwgwwwwwwwxwgxhwvwwwwhwxxwxxhwwwwwwxwvwxxvwwwwgvwggxvwwwwxwwxxwwwxxxwxwxwwwwwwwxwwxwhwwfwwwwgxxwwgxwwwxxwwwwwgwxxwxwxwwwgwvgvwwvgUewvwxvvwwwwwwEfdfwgvwwwvgvvxwxgfhwwwhwwwwwhwgfwvwwfvfgwwwwUvuwgwgvwgWwwvwwwxwvwgvwwwxwwxgwwwxwxwxwWwuxvgwwxwxWvuwvwwhvgwxwwxgvxwwgvhhxwwgfwxgxwxgwwxfgwvwwwwwwwwxxvgwwgwvwwwwxwwwwxwxwxwwxxwwwwwwwgvfgvwxwvvgwxgvwwwwggwxwwgxwwwwwgwvwwgwwwwvgwvxwxwgwwwxwvxwgghfvggvxxwxwxxwvvvwhwxwwxxwwvwwvwWuwxxxwwxvwwwfvvwwwwwwwwxxxwwxxxgxvwxwwwxwfwgwwxxwxxxghvwWxxwgwxwwwwfxvffvwvwwxhvxvgwwwvwwxwgwwwgwfwvwwwvwwwxvwwwvwwwgvvwxvwgxgwvvgwwvwfwgwfwfwggFVtuwgwxggvxxxwwwwVffvxwwwwxvwwggwgxvwwwwwgvvwvwgwwxgVwwwwwwxwwxwwvwwwwwxvwwFVtuwwwxxwxxwwwvxwwxwwxxwxwxwwwvwwwVgwwwwhwfvfwwwwxwwgwwwwwwxwwwwwxxxxwwgwhxgwvwwvwfwwwwxWwgfwwwwwwyxwwxgwwxhvxxwwxgxwwwgWgugxwvfvvwwxwwgwwxwxwxwxxwgwvwxxvwxxgwwwxwhxwwxvxxxxxwxxwxwxwxxwwwvfwgVwwwfvfvggwvwwhwwxwxxvgwwxxxxwxffvvxgwvwwwwwwwffevwxwwwwwvwwwwxxwxhwvwxwxwgvwxxwwvxwxwwwgvwxwwhxxgxvxxwxwwxgwxwwwgxwwxwwhxgwxwwxwwvwwwwwgwwxwwgxwxxwwxxxxwxxwxxxxxwhwwxfwwxxwwwwxwxfwggvxwxwwvxwxwxxxxwwxxxxwwgwwwwwxwhxwxgxwwxwxxxgwwwxxxxxwwxwwxwxxwhxgxwxxxwhwwxwwxxxwvvgvvggwvwvgwvwxwxwwxvwgwwvxwwgvuvvxwwhwwwwwwwwxxvvvvfufvvwfvwwwwvwxwvvvwwwhvgffggvvgfwwvgwxghwxxxwxwwvfwwwwvwwwxwwxxwwfwwwwxwwxwgwwxxxvfffgfgwxwwwvgwggvwxxwgwgvwwwwwxwgwwwxhvwvfvvvvgvwwgvewvvwwwwwwwwvuwgwwwwxxgvwwwxgxgfvgvwgvwwwvwwvgvwxwwhxgwwgwugxwwwwgxwwxxhvwxvgwfwgxwfwwfwvwwvwwwgxgwxxuwwwxwwwwwgwwwwwwwhxgwwwwwhxwxwwxvvuwgwufwxwwfvgxwwxxxwxwwfggwxxwwxxwxwwxgwxwwwwwxxvfwwfffwwvwwfwvwwwvwwxvgwxwxgwvwwwwwxwwwwwvxxwwvvvfffgfvwwwwvwwwwwwwxxwhwvwgwwwwvwwwwwwwvxvgwwwgxvwvvvwwwxhwwxwwwxxwwgwwwxxwwxxxwxxxwwwvvwvwhwxwhxwgwxxwwhxxwwxwgwwgxgxxwxxwgxwvwwvwgwvwwgwwvwwwwwwwwwwxwvwvxwwwwxwxwwxxwwfwxwwvwwfvwgvxwwwwxxhhwwwvwgwwwwgwvvwxwxwxhxxwxxxfwwwgwxwxgwwvwgggwwwwxwgwxwxxwwwxvwxgxgwxvwvwwwwvwwwwwwxwwvxxwwwfxwwwhxxwxxwxwhvwwxxtVeufgwfvvgvvevvwvwwgVwwwwwwUuvewwwvxwwwfvwfwwwwwwfffwvgfgUfuwwvvwegugwwvwgfvwwwvhffuvwvefwwwwgugvwwwwxggugxgwevwwevfvwwwvfffwvwVvwwvxwvwwgwgwwxwwgwgwxvvwgxxwfwfwgwdvfvwwwwxVvuwwwwxwwwwxwwvwwgfwwgvwwgfwwxwxxxfxwvwwfvvwufvggvwwwwwvuVfvxxwwvwwxvvgfvwwwwfwwxgwfvwwvwwwwwwwufugfguwwfvgwvvVVfvwwwwwvwhvgwwvfwwwwwhwhhugfwWwwgfwhhexwxvgwweuvwguwwwvvfuuwwxvggfwwxhvvwwwwgwxwxwxwvxfwwxwwxwwxwwfvvwvwvgwgwwwffvgwgwwwvwwwgxgwwwwfwxgwwwgwgfgxgwwgvvwgufvfgfvuwwvWugwwwwuvgggwwfgfwvvvwgwwvvwwffwwwwwwwgwwwUdvvfwewdfwvvwwwWwfwgvvgxwvwgweefvwwxvwwwgwhwwhvxwwwvxwwvwwgwvvwwwvwgvvvvwwwwwvgwwxghwwwwwvxwxxwgwgvwvwwxfwwxgwwwvvwwwwwgwwvwvguwgxvwgvwwwwxfxvwxxwxwwgwvwxwwfdvvwwdfwfhuvwxvvwvgwwvvwwuewvvgvwwwwxwwwwwwgwxwwwgvvwwwvwwwvgwvwwvgwgwvwvxguxwwgwwfwwhvwwwwwwvxwwwvwwwwwwwvwwwwvwwvwwwwwxvwwwgwwwwwxwgxwgxwxwwxwwwwgwxgwvvxvwwwwxwxhwwxwwgwwwwxwwwwwwxgwwwwxwvwwwvwvxuwvgWgwwvvwgwfvwwwwwwgwgwwvwwwvwwwwwwwvwwvgwggwwwxxgwvwwgfgwwgwVfduwwfxvgfvgwwvgvvwxwvwwvgwwwgwwvwwhxwwwwxwxvxwvwWxgwwwvwwfFwwwwgvwxwwwwxvwxxwhxxwwwwgwgvwWfduvwwwgvxxwwxhhwxwwvwgwgwxxwwwxwvgvwwggggfgwVufwggwwgwwwwvwwgwwvwwwgwuvwwvwxwwhwwwxwxxwxwwxwwwwfwvwvwvwfwvxgwhwxfwxvxxxwwgwwxgxvwWwxwwxxhhwgvxxwxwfwwwWwvwvuvxxwxwvwwxwvwxwwwwgwvwxwwxwwxxxxxwxxxwwwvwwvwgwxwwxwvxhxvwwxgxwwxwxxxxxxxwhxxvwvxwfFwwgwguwvwgwWgwwwgxwxwwwxwwwwwwvxvwwgxwwxwxxwwwxfwfegvfgwvvvvvgvwgxgwwgwwxwxxwwfwwwwgwxwwxwxwhxwxhwwwvgvwwwgwvwwwxWwwwwwwwvwwxxxwxwxxxwwxwwxwvwvwwwwvwwwwwxxxwwwvxwwxwwwxxwwxwhxxwxvggwwwvwWvxvxwvwvxwhgwwwwwWwwwgwwwwxwxgwwxwxwxwwwgxwggwwwhfgwwvggwwwwgwxxgxxxxxgwwxwwwwgvwwwxxxxxxwxwwxwWwxwwwwwwwghxwWgwwwwvvxxwxwxxxxxwxhwxxgxwgwwwwvwvwxwwxwxwxwwwxxxwxwwwwuvvuvvwvgwwwvwwwvwwwvwgvwffvvvguxvvgvvwvvvxxfvwuwfvvgvwwffuwwwfvvgvfwvfwxwwgufuvfwvvvwwwwwwgwvgvwwwxwwffeuwvvwfwwwvwwwvwwwfwgevgwvwwwxvgfwwwwgvwgwwgwggfwwwwxxwwwvwvwvvgwvxvwwwwwwwxvwwwwfvvwfgvfvwxvvwfvwwwfguvwwwxuvfwfvwwwvhwwwwvwwwwxxwwwwggwwgwgwwwwwwxgfgvhhwwwhxufwgvwgvwwgwxvwvwwgwxhggwxuxhxvvvwvwwxwvwwwvgwwwwxwuVwuwvwwwwxvwxwxwvwxxwvgvwvvgwwwwwwugwwxhwvwgwvwvvwwwvvwvwgwxwwVgwwxhwuxwhvfvvvufvvvvvwwwwwwwwwxgxfvvvwwvwwwwxwvwwwxwuefvffwfvwgwwwgwvfggvgwxxwgwuvvvwwgggwwwwwwwwxwwwgxxwwvhwxeggwvwxwvwwwxwxxgvwxxxxwxxhxwwwvxwxvwvvgvwvwxxwwwxwxwwwvgwxwwgwwwxwxxxwxwwwgwwwxwxufvwfvwvwwwhwwvwwwwxwwwwwvvwwwgwwwwxxwwwgwgwwxwgxxvgwwvwwwxvwwwgvwgvwfwxxvfvvwwfwwxxxwgwhwvxwwxwxwwVuxvwwxwwvwwhxxvvgwwwwVwwxgwgwwhxxxwxxwwxwxwwwwwwwwxwxgvwwvvxwxuwwguwwxwhvwwxwwxgwwwxtvvgvvgvugwfuwgvvvvvwfvvvwfvfvvwuvuwwfvwUvvwfwfvvfvvuwwuwvwwvfvffVffvwfvvvvVevvgffvvvfgwwfwUtwevevvveffwfWvvvwvvvfwwvWvxwgvxvwfxwfgwuVfvwwvfwvwvvggvxgwfwvwwvwvwgwvwwwgwwgwhwvwfwvvvgfvuvxxwxwwwgvvvfxwxwwgwvwugvvvwxVWwwxgvwfgwhvwwwvvwwvvevvwweVgffwwwvvwwwgwgwwvfwwfvvwgwwffuwwvguwwgvwgwwwwvwfwwwwvvgvevvxwvwwwWgwewvvgwvgvwgwWgvwgwfwwgwwgWexwvvgwwfuvwvwwwwgvgwvggwxwwggwvvvwwwWwgwwvwggwfgggxwggwwwwwgwwwxgwwwwfvgwwwwxwxxxgwvwwhhwwwwxxxgvgwwwwwxvvwvufwwgeevvgwefvgvvvwvvvuvvfggwvvvFvuvuwwvVffgvgvffgwVggWvvufufvvevfvevggvvwgvwewggwgxvffvwwvvvgwGvwgwwwwwvvvwwwwvvwwwxvvhwwwwhwwuwwugwwgfwwwwwwuxwwxgwxwwxxwwgwgwwxwvwgwvwugvwfhwwwwvwwwwvwwxgxwwhgwwwxwwwvxxhWwwvgwwwxffwfvwevwwxxUdvvwgwgvvwfwvgwwvvwuuwwwwwwwwwhvvwwwwwewvgwwwxwwwfvgxxgwwwwgfwvwhxvwwwwwwgwwwxGWefvwxgwwwwwwwvwwwxwxwwgxwwvwvwvwwgwwwvhxugwvwwhhwvwwwwwwwwxwwhxwwwwwgwwxwxgwwwgwvwwwxwwvvwvvwgfwwwwwwevvwWwfwvwwwfvvvfffwwVeggVewfwfvvwwwWgvwgwwevwgevxffwvfwvwvxvvgwhTcggffgfgvgwfvwwgfvfffvwgvHfUuwuvffvvwwuwvwvgwvhvfGwwwwxwwwvhgwwwwhwwwgfvwfwwwvgwwvgvwvwwwwwvhwwwwxwwwwwwwvgvfwvWwwwxwwwwVfuvxgfhxxwwwvuwvxwwwwwwuvwwwxxhhvxwwgwggwvwfvwffvvwwwTewvgwvuwwwgvwgVfwwvwvwuwwwwuwgwvxvgwxwwwxwwvgwgxfwwwwxgwfhwwwwwhgwwWGWffvwvgWvfwwxwvwvvhxgGXHewwxvhwvwwwfwvffwxvxwvwwgvgwgwwxhwwwwfwxvgwxwwhwwwvwwghwwwxwwwwfwwgwwwxwwvvxwwhXWwwvwwwvvwxhwxxwwwwgwvxhwhwwxgwfwwwWvvwgvwwewffdVweuvwwvvxwwwVfwfwfwvwwwxwfgwWwwfvwwwwwgggffwfWwfvwwvvgwffWwwVw7vwwxwwggfwvxwgfwvwwwxgfgfvxxwwvwwwwwfwvwwwwvhwhgwwxwxwhwwvxhhwwgwwwvwwwxgwwxgwxgwwxwvwvwvwwvwwwvhvvwwwxwhwwwxxgwvwfxghxxvwwxwwXvwxxwwvxWwvwvvwwewwwvvvtvvwfuggvwwwwfeevgghxxxxgwwwwWwghgwxxfwwwwwggfggwxxwgWwW8hewxxwwwvgxwwhhvwwgwwxwgxvhvvvxwxvvwvwvgwxwxxwxxwwwxwhhwwwgvwwwwxwgxwvxwwxwffwwwxwwwxvxgwxwgwwxxxhwvwwwwwgvwvxwgwgvvwvvhwvgwwtgwgvwgvwgfwvvwwwwwwwwvwvwgvvxveUwwwvWwgwwvwwwwwWvwvvxwxfwvgFRwugvwvvvwwuwfwvwvvwvwwfguwfwvgggwtvwvwwvwwvwwgwhwxwxwwWwvvgvwwuUwUvgvwwgwwvwwxwxwwwvfwVwfwwxwwwwgwwxwxwxwwxexvevwwwgwvvWuvwwvwgxwxwwfwwvvwxwhwwvxwxwxxwwwvxxxvwugwgvwvwwwwwwxwGtwvwvwwwwvwwgvgvwwfwWwwwwwvvfwvguvWfggwwvwgwfvwvwwwwvvwvgwggwvgwxvuwwwwwwwvwhghwxwwwwwfwgfvggfwXwwvwguwwgwwwxwxwvwgwwgWwwhxgwfvwwvxwwwfxwwxwwvwWwwwhwwwwxwwvxvgvvxwwgwvwvwvhwuvwwxwxwwwwgvgvgvvgvwgxwwgwwwwvwwVvwfffvvwfgVwfggwgvwfwwwwgwedvEvTewvvwvwwgvwvxwwvwgwwwhwvwVwUfewwwwwwhwwwxwgvwxxwxwxvvWgwwvGwwvwvwwwxxwwwggvwvwwvvvhwGwfwfwvwvgfwWvvxwgwxfxxxvvvguwvhvwgwwgfhwhxxwwwgwwwxwvvvuewvwxwwgvxvxwwwxwgxwhvwwwwwxvwwwwwxxxxwxvwwwvxwfffwvggwxwwwxwwfwwwvWvxxWwwxfvegwwwwxxxwxwvwghwghwxgwwvwfxvwwgxwwwwvwwwvwgfwwwwgxgwxvghwwvxuvwxxxwwvwwFvwuwwwwgxwwxwxtwxwWefgwgxgxxwuwwxwwwwwhwxxxwwxgwwwgxfwwwggfvvxwwvwwXwwwwGvwwfwwxwwxwwwwfwxxwwgwwwvtwwwvwwffxfwvfwwwwwfxfgfvwwwWvfwvvvwguwevgwguvwvwfvuvwxfvwwwftwwUtgffwwgfgvgggfvvwvwvwwwvwevwvgwVvwwwWvvvvwwwwxvWwwggxvfugwxgwwvvggvgwwgwwvxwxwvwwwwwwwwxfvwwxwwwwxuwvwwwwgvggwwvvwwwwvwwwwvwfwuvwxwwwxfhwwvwwwwwwvxwgfwwegvwvwvfwvwgvwvvfgvwvgvwevvwvgvgfwvwxwwwwwwxwvwwwufwwvwwvxhgvwwwwwwwwwggfwwwxwxvXwwggXexwvghxvWgvxwvvvwxvvxwvvxwxuvvwwgxuwwwgwwwfwwwxgvhwwwwwwwxxxvgvwwwvwwwwxxwwxwwwgwwwvwwugvwxxwwhhwwgwwwwxxwwwwwwfwgwvewUvwfgvwwgfvvwgwvwwgegwwWvdvgwvfvvgwfwwwvggwhfgwvvwewvwffvwwxvfwWwvvwwwxwwgvufwwwwgHwxwvvwwwwhwfwwwxvxvvxvwvwwwwvwvwwvxwwfgxxwwgxwwvxhwwwwvxxwxwxgwfxvwwwgwxWgvxwwxwwvvwwwhxgwxxwwgvwwxxxwxwwxfwwduuvvwwwwwvwwwwxvfvwWwwuwwgvxxxxwwvwwwxxvvwwfwvxwxwwwhwxxwxwxwgxvwvwwwggxxwHgehwwxwwxwwwwwwxwwwwvxwwxgwwwxwwxwxxwxxwwwwhxgxvwxxwxxggwwwwwwwwwwfwgwxwwwwwwxwwewfewvgfwuwgvwevvghxwfgvwwwwfwvvwwwgfxgwwwvwVwxwwfwwhwVvvvwwvwfgewwvvhwgfwgwvwfvfgvwwvgewvwwfwvwgwgvfwgwxwwwfgwwwvvfwuwwwewvfwvvWwwwgwxwwwgwwwfwgwwvwfwwwwwwvxwwvwgwwvgwwwwwwfvvwwwwwxwwxwfwwwwwwwgxwvvwxxwgwwwwVwvvwwwwwwwwwxwwfwwwwvuwvfwggvggwwxxwwxwxgvvwwxwwwxvwwgwwwfxwwvxwwwwwwwfwvwvgvxwwgghhuwxwwxxwwxwwwwhwvfxwhfwwwuxwwgvwwfxxwxguvwfxvwwwxvwwwffwwwwwwxwggwgwwwwwwxfwwwxwwwwwxwwgwwwvwxwgVwwgfUxwwxwwxwxwwwwwWwxxwfwwfvwvvvwfgvuwwfgVfwwgvvxwwwhgwvwwwwfvfwwwgxwhwwffevwwwuwfxwwwwfwwfwvggfwwvwwvwwwwwxwwwxwwvvxxgwwhwwgwvwwwvwwffwxuwwVfxwwwhvwxwvxgwvwwwwwwvwwwwwwxhgwwwwxwwwgwvxvvxvwxwwwwggwwxwvfwxxwwxwwwwwxwxwxwwwxwxvggwwxfwxxwgwgwwxxgfxhwwwwwvvxwxxwwwfvvxvwgwxhgwwwwwwgvwxwwwwxwxwxwvgwggxvwwgghxgxwwxwvxwwxwvgggxwwwgwwwvWwwwuwwfvvwfwwwwggfwwxUwxxwwwxwwwxwwwwwwgxwwwwwxwwwwxgwwwfwhwwvhxwvfwwvwwwxwwwgwwwgwwgwwwwgwwvvgwfwfwwvwwwfxwwfvvuwvwvwwwwwvwwwvfvuwgUDvvwfwwwvwvguwwvwvvxwwwfguvewffwwvxwwvgwwwwvxwxxxwfvgwvwfwwwfwwwxvwwwwwwwwwwvfwvwwxxxwxxfgfvwegwwwwwwwvwwwxvwvxvgwwvvwwvxxwuwwwwxwxwvwuwgwfwwwwwwwuxWfwxwwwxgwxwuwfgwxwhxfwvvvwwwwwvgUwwwwfwwgwwfgvwwvwxwwwwWggvwgegwxvwwwwwwfXxWwwxwwfvwfwwvwwwwhwwgwvwxwwxgwwWvvwwuxwwwxxvwwxwwxxwfwgwwwfWwwwwwwwgxgwwwxwwwxfwwwwwxwvwxwwwvwxwxwwwvfevwgfwvwfvvwvwfwwwwwwxwxwXwwwwwxxwvwwfwxxweUDvvwffwwwxwxwwgxwfgxwggxfvvgwfwwvwxxwwwvwxwfxVxgwwwugvwxwWvwxvwxwxxggwwwwwgwwxwxxxxvwvfwggxwwxhwwwwwfxxwwwxgwwxvxgwxvxggfwwgvwgwxvvwwfwwgwwwXwwwwwwxuwvwxwhwwfggfwwvgxgwgwwwwwvvWwwwxwwxgwweuwvggwwxwwwwwwwwxxwxgwvxwgwxwgwwgvwwvwwwwxxxwwxxwxxwwxwfxxwwxvgxxxvwwwwwxxwfhhxxwwwVxwxwxxgwxxvwvwfffvwxfvfvvwxvwvwwwwwgwwwggwgvxwuvwvwwwwwwfwfvvvugvguwwwffwwvvwuvwwwwvfgggfvfvVvwwwwfwvwwfxvwwfwwwwwxwgvwwgwgwwxvwxgwxwwxvxwwwgwwwwwxwxwxwvxwxwvvwfwfuwwvwwgwwwwwvwwwwwwwwvwwxwwwwwvgwvwwvvvffwgfvwvvwvwvwwwwwvvvwwwxvwwvvwwvwvwxxhwfwfwewwvvwwvUvwvxuwxvwggfwvwwwvwxwxwgvvwvwxhhuwwwwwgexvvfwgvwxwwwwwwvwwwwwwwwwwwxxwwwwwwwwgvwxwwwwfwwwfwgxggvvxwWfxxwwwwxxwfwwwvwxgfwwfuwvfwwwwxvwuwvwfwfvgwwwgwwwxwwwvwvwvwwwfgxwxwxwwwxwwvguwvwffwgfwxvwgwfwwgVWxgwxvvwvvfwvwwwwwwvwxxxvwwvvuwwwfvxvxwgvgwgvwwxwwxgvwwxxxgwwwwfwgfvwwxwxwwxwxwxgwwvwxxwwxhwwxvwxvhwwwxxwxxwvwwweuwvvvxhgxuwvwvwwwvvxvgvxvvwvgfwwhvwwwXgwxwwvxwxxwwwgvwwvgWuxwgxvvvwfgvfhgwwvwvwgvwwWhfxgwwxgwwvxvfwuwwfhwwgwwxxvwwwuwgwgvxwxwvfvgvhvwWhvhwwxxxwwwwxwwxwgWuhgfvxxwwwhwwwwwvxxfwvwwwxxwxxvvUwxfwfxwwwxvwwwuwwwwgwgwgggVTwwgfVwwvwgewfwwwwwxggxfwfxvfwgggwfvwxxgwwgwgvxgFSwvvfwvgfwgguvwvwwfuvwwvgvwfwvvewwwwwfwxwxwgwwwwgwxfwfwxwgewgwfwwxwUdwwwwxwgggxxgwfxxwwvxwxgwvgfwwwfwfwvwvxgvvghhwgwxvwvwxxwxgxxwwwxvwwvwxvwwwwgvwvwvwvwUgwgvxhwgwwwvwwwwwxWevvfffvwwwfgfwvwwwevxwgwwwwgvwwwgwfgVwgwfgwwgwxwXwwgxwgwvwfxwwwwxwgwwvggwwhxXxfwgwvxgwwggvwevwvwxxwxwwfwwwggwwvwhvfwwwxxhgwvwwwwwxgwwwwwwvwwxxxgwxwwwfvVwxwwhwVwvwggVwwxwghvwxgvxwwwwwwwxxwxhfwgwvgVtfwwvEuSfwwfvvwggfexwgwwxwwwfggwwxwwvwewvxwwxvxwwwggegfufgTufwwwWwwgwxgugwxwxwwwwvwwwwwwgxwxxwwggxxwwxwuwfwWwvxvwvwffxwwwXvxwxwxvwgwxxxwxxxxwxxxxwvvvvvwvxvxwwwxxwgwwwwxxwwgvwwxwxwwwxxhwxxwgvwvvfvUgfuxwxgwwwwwgwwwwgvwwwwwxxwhwwxwvwwwxhwxvwwvgWwxgvwwwwwvfwvwwwwwwwwggwvwwxgxwwwxwgwwhxghwwwwwfVvwwxxxwwwvwxvwggwxvwgxwgwgvwwvhwwwwwXgwVwwxgwgxwwwwwvwwwwxwwwwwvfvxhhwxgxWVxgxwfvxgwwvwwwvwxwuwwwvvwwwwvwwgfvwvwvxhwwwwwwwwwuvwwwxwwvwffvvwguWgvuxwwwwwVwwwgxxvgfgfvVesdvwwwwgwwwvgxwvgxwgwwwvvfwhWUfvwvwwvwuvgxwghwvwwxwwwxgwwwwwxwvgvvVesdwvwwwwwvwwvwxxwwwgwwwwgwwwwwxwvwwwwwwwwgwgvvwwgxhwgvvwwwgvvvvwwwwwwfuvwwwxwwfvtuwvvhwwwhwwwwwwwvwwwwuwxwwvwFwxgxxfgwuvwgewxxwwwwwwggxhgwxwxgvwwffvuggwwxwvfvtuwvwvwxhwxwwgwwxfwxxwwwwgwwwgwwwwwwvwwvfxwwwwwxxwxxwwxxwwwwwwwwgwwvvwxwwxwxhwvxwvvvxwwxxgwvwwwwwxxgWUfwvwwfwwwxwwwwwwxwwxxxwvwuWfuewwxwwwwgwwgxwvwvwvwfwwwwvwxwxwwwXxwwxxxgwwwwwwwxwwwhxwwwxwwwwwwgwwgghgwwwwxwxgxwxwxgvxxwxxwwwXxwwwwwwwwwwwvxwwwvwxxxhvwwhvwggvvwwvwhwxwgwwvwwwxwwhgwxwxwwwxhvwgvwwwwuwwxxwwxvggwwwxxwwwwwfgwxxvwwxwwxwwxuwwgwxgxxxgwxgwxxgwwhwxwwhwxvwwvwxxwwgwwxxwwwwxxwwxxwvwxwxggxwwxwvwhxgvvwvwxxwxvwwwwwwwwxxwxgwxuwwguvvgwwwfefwegVevfwuvvvvvwwwvftwwwvvwufwvfgvvvvvwwwwvwvuvffdwfvvugEtvwwfufuwvxvvVvgufuweuuvvwwxwfvvvwwuWwwwwwxwgwwfvwvgvwwwffvwwxwwxwvwwxwwwfwxwvvvxwwwxwweewduxgwwwwegxwegwxwxgevwgfxgwwvwxwwvfwvwwwwwwxwwguwevwfgvvvwvwfuvwwwgvfvvwvVvwevvwfvxxvwwvwwfgwwvvwgwwwwvwvvvvxgwWwwuwvgwgvfhXTvwggwvgwwwvgxvVxXhewwwgwfvuwvvvfvvwwwvwuvvfgWxvgwwwfvvxwwxxxwfhwwwwgwwwxwwvwwwvxwvwxwwfwwwghhfxwfxwfwxwxwwwwxgwxwvwwwwvwwvwfWUvwfvvvvvwggvvWfuvfvfwgwwewvvvgwwwwwvwwvvwvwvwwwwwvwgwgffvvfffuxvwffgvvgvGvwwwwwvwwwvwwxgwvwwhwwwvxwwWvwwwxwwvwwwwgfwuwwwgwwwvxwvgwwwgwwvxxwwwvxwggwwxxwwwwvvwwwwwwwwwwvwfwxgghxvwwgwwwwxxwwwxvuvwwwfwgvuuweuvwgvfwvvwgwwwwwwvvwxwwwxxgvvwvgxwgwvvwwvvwgwwfwwxwxvwvwWHgTwwvxvuwxxgxwwwwwwwgwwwxwxxxxwvvvwgxvxwhvwwwxwwwwwwwxwwwwxwxwxxgwwvwwggxvwvwwxuwwxwxxxwwwwxwwwfwwwxuwwgwggvwwwvfwfgwwwwwgfwgvvwfwfxggfwvxevuwgUEvgwwwfvxxwwvwwvwevggfvvvfwvfegwggevwvgxwfwfECwfvfvuvwuwvwfvfwwgegvwfwgwwgwwvfwwwggvgwgfvwwwwVwxwvwwxFvegwwwxVwfwwwxwxwxxvgewfvvfvwwxwwwwgwwfgugxxwhwfvvuwggwxxfxwwgxwxwwwwwgwwwwwwwgxwWuwwwwwffvgwgwwugWwwggfwwgevwvwwfvffgwvxuwwwggwwwwvvwwwgwvvvxwwwwxfxwvWxggvxgwuvvfghwwgwxwhxwvvwggxgwwwwvhgwwfggwgwwwwwvvvvwggwwwwxxwwfvxvwwwhwwxuwgwggwwfwwgwwvvwwwgxggwwxwwfwggvWwvgwvwwwgwxwwwxxvgwgggggwgvgvfwevgvwwvwwwfvvgVewwvfggggwxxgvwfVfxfwwxwg4vdVgwwwvwwxwxwgffvvwvfwwwevfVxffgwwwgwwTuuvvwwwwwwhwwwgwwXfggfwxxgfwwxwugfvggfvvgwwWgwwwwWvxxwwwxxwxvfwwwxwwwwwwvwuwvvvvwwwwwwfwxgwxwvwwhwwxxwffwwwwwgvwwwffgwwxvvwxwVfVxxwwwwgwwwwfvxwxwxwhgxgvwgvwgwwwvwwfvwwvfgxwxwhwxwwgVgwvgwvxgwxwgwwgwgxwxxwgwwxeWhfgfvwhwwwevVwwwxxwxxxvgvwwwwxxxxvwghxvxxwwwwgfwwgwwwvwggwvwUvwxwwwwggxvwxvwgwgxwwwxwwxwwwgwwwVvUwfwwUvxfvxvvewvwvwvwvwfvwwffhwxvwxwwvwvvuwfwwxwvwwwfwfgwxewvwgwvxwwwwwwgffwxwwgwvwwwwgvwvgwwwvwvwwwxfvfgWwfgxwxwwvwvwwwwwwwvwggvwwwxwvgwwvwxwwxwvwxxwxwwwxvwwwwwwwwwwfwwxxvwwwwwwxwwgxxxwxxwxvgwxfvwwgffvwwwwggwxwgwwvwvwvwfwfwwwxwwwxwwvwwwwwwwffhwxwwggvwwfwwgxwwwwxxggfvfwwwwfvwvxwwvgwwgwvhwfwwwxvgwvwwwxwwwxxxxwwwvwxxvxvvxwvvwhwwgfwwwgwxwwwwwgwxwxvwwvwxggxwwwwxwvwvwwgfgwwgvxwxwwwfvvwvvvwvgvgwwwvwvwfvfwvwxwvwwwgwwwgwwwxwwwwvwvwwxxwvuwfwwwwwwvwwxfwfwwwwfxxvxvwwgwwwvvxwghwwxvwwwuwvwvxwwwwwxvwvwxwwgwvwvxvfggwwwghxxxwwwwwvhxwwwxhgwvwwwwxwwxxxwxwwwvvxwvwwwxwwwxxwwxwhxxxvvxwxvwwwfvfgwvwxxwwgwwvwgvxwwwvwwwwwwwhvxvxwxwxfwxfwfWwfgxwxxxwwxwwgwvhwwwxwvwvwuwvwvhxwxxxvxwxwwgwwvwgxwwwwxvgvwwhwfgfwwwfwxxvxwwwxhvvxwxgwwxfwwxxwwxwxwwwwwwwwgvwvwwwgwvwxfwxvwwwvwwvwvvwwgwvwwwwxgwwwwvwwwfwgvwwwvwvwvwvwxwxvfxxfwwwgwggfgwwwwwvgwwxwvwwfvfwwvvwwgxVfduxwwxwwwwwwwwfFwwwgggwwwwwwwwvvwvxxwwvwwxwwwwuwvwwwwwvvxvwwxxvVftuxwghhwwxwwwxwwwwwwxwvwwwwwhwwxwgwuxxwwwwwxwwwevvwxwwwwwwvwwwwxxwwxfvxwggwxxwvwwxfwwWwwffxwwwwxxwwwgggwuwxgvwwwxwxuvxwwwwwvwxxxxxwwvwxgxwxwwwwwwxvwwwwwwwwxvwwwwwwwwwvwxgwwvwgwvfFvwgwfwwwxxwxwwvwwwwwgvwwxwvxwvuwfwwwwvgfwxfvwwhxwwxwhwvgwfvwvwwxvwwhwwwwhxwvxxxghwgxwvwwwxxwxxxwvwwwwxwxwwxvhwwwwwwwxwxwwxwwwwwxwxwwgwxgwxwhgwxgvwwwwhgxwwvwxxgwvwwvwvwwgwxgwwgwxwwwwwxvwvxxuxxwwxxwwwhxxwxxvwwhwwxxwwwxwwxxwwwwwwwxxwxwwwxxwwxwwwwxxxwvwwwxwxgxwxuxggfvxvwgfwvuwwwfwgWvwwwwwvxwhvwwxwwwvwwgfvwfgxwvwwwwvvhxgewwxvgwfgwgvgveggwfwwxfWgwfgwfwfwvwwxfgvVwhwVXxxfhhWfgwwgxwxvvvwwxgwwfwvwxwxwxwevwvwwxwwwffxgxwxwxxwwgxwgwvwwfxxwgvfgxwVhxhvvwwvwwwghwxyxwwwxwggxxwwvwwwwhwwxgvvwfwxwwvwwwwwgwvwhwwwwwvwxxwgwvgxwgwwwwgwwvwvwwwfgwfxwxvvxxWwwwwXxxggxwfwgwxwwwwgxwvwxvwxwwxwhvxxfwhwwwwwxvxwwwwwgwgwwwwxvgwvwxvxgwwwxxgwvxvwxwxxvxxwxxxxxwgxwwxxwwxxwwwwfwwwvwxwwxxgwxwwwxwwwgfwggwvwfWfffggwxxwwgfwxwwwvvwgwgwwxwvxgxwwgxvwvfwfwwghwwggwfwwwwWxwhvxwwvWwxxWgwgwxwwxwwhwwgwxhvwwxvwwgwgwgxwxwvwxwwxwwxvxvwwwwxwxwxwvwxwwwxwxwwwwwwxwwwwxhWgxhvxwxgxxwwxghvxhgwwxwxxxxwxvwvwwwgwwxwvwwhwvwvxwxvgvxwwxwwgxwwwwwhxwghwwxwwwwvxxgxgxwvwxWwxxhWwwxwwhwggwwwwxhhwwhgxwwwgxwxxwwwwxwwxvgwxxwxwvgxxvwwwwxwwxgxwwwwwxxxxxwxwwwwwgvxxxhwwxwxxxxwxxwxvwwwwgwwwgwvwgwwwxwwxgvgwwwwwgvvwwwwwwwvvxwvvwfwwfggwwwwwwxwwwwwwvxwwwwxwxywfvwfggwwfwxvvVwvwwvggwxxvfVwwwwxwwwwwwwxwhwxxvgwxxwwxfvvwfvvWffwwwfffwwwwgwxwfuegvwwvgwwxwvxxxxwvwwvvwfuvfgwgwwvwxwwwxxxwvuuwwvvwxxwwwxwwxwwxyxwhhwyfvfwwwwwxwxxvwwxwxwxwwxwwwvwxxgwwxxxfeuggwgwwxwxxwwwwwxwwwwxwwwxwxwxxxwxffuwufffgvwgffggwwwwvwwgwxwxxwxhxxxvvfwwwwwvwxxwwwxwwxxwwwhwxxxxxfgugvgwwwwxxwwwgvvwwxwwwwwxxwxxxywxvwgvgxvwwxwxwxwwxxwwxwwwxxxwwxUVVvVvvwfwwwxvgvvwgwvxwxxgvxwhgwxwgwwgwxxwwxxwxgvvfwggwxxfxvxwwwxxxwxwxxxwxggwgwwxwxwwwwxxxwxfvgwwwwwwxwgwvwfwwwxxxwvxxxwxxwxxwvwfxvwwxwwggwxwwwwwxwxxxwwgxdgggwwgwvwwwewgwwwvwwwvwwvwxwwwwfwfxwxgwwwxgwxwwwvgwffuvvgwwvxwwwwwwwwgwwwxfvwwxxxwvwxxwxxxxwwwwwvvggvwwwxwgewvxwwxwxwwwvwwxwxwvxxxxgxxwgdvvwgvwwxwwwvwvxwwwwxwwwwwwxhxwwxwxxxwwxxxxfwvxwvfgvwfgwugwWgvwwvwwwgevwwhwxwdvwgwwxwvwwxxgwwxguxwgvvfwgwwwwffgwvWvwgwvxwxwwwWhwgwwxxxvxxwwwwxxxwxxgxxwWwvwvwvvvvwwvgwwwwwwwxvwwwwwwwxwwxwwhwwwxwxwxxwxvwvwwxewwxwfwvgvwwwwwwxxwxvwxwwwwhxwxxxwwvwwwwguwwxwwwwgwfwuxwwgwwgwwhfvwwwwwgwwgwxgxwvwxwxxwwxwwggvgwefgwwgvwxwgwwxwxxwwwwwwxwwxwhxxxxwxwwxwwwwwwfvwwwwwwwwwwuxwxwxwwgxgwwwxwwwxwxwxwwxxwxxxgwtwwwggxwgxwgxwwxxxxxxwxwxwxugwwFwvhgwvgwwuwgfwvwwwwvwgwhwwwwxwwxwgvvwwhxfwggxwxwxwwxgwvxwggwwxvwxvWvgwgxhhwxwxwxxwxhxxhxhhwxxxwwxhwwwwgxwwvwxwwwwwxwxwvwwvwxwwwxwwxxwxxwwwvxwwuwwwxwxxwgxwgxxhxwxwwwxxuxwwwxgxwwwxxwffhwfwvwxwwxxwwvxwwwxwxwwwwwxfwwvvuvwxwgxwxwxvvwwwwwwwwwxwwxxxwxwwxxwwwwwvwvwwgwvwwwwxxwwgxxxwxwgwwfwuwwwhvwwwxwxwvxwwwxxxxyxwxwhvgewhwewvwhhffwwggwvxwgwwhfwgfgvfxwwxxwwxwxxwxxhvgwhwhegfgwgvwwhwwxxxwxwwwxwhwwvvwwvxvxxxxxxxxxwxxwgwgewfvwwvxxwwwxxwwwxwxwwwwwwgxwwxxwxxxxwegfgwxwxvggxxwwxwfwxhgwwwxwxxwfvxwxxxxwxwwwgwxxfvuvwwWfwwggwvwwvgwhwhfgwwwxwwwxwwvvvwwvwvwgwwwwxwwxwxgvhwwwwxwxxxxxxhxxxxxxxxxvvwwvwwxwWgwvwxwxxxxxxyxwgwwfgwwwwwxhxxxVgWWWffvwxuhwwwwwwxwhfxwfgvwwwxxxhxxxwwxxxxggfghwgxuggxfgwxxhxhxxVwuwhwgwxxxxxxxxwxwhxxwwvwuxwxwxxwxgwwwxxwwwwwxwxwxxxxwxugwvwwvwgvgxwggwwwxwwwwgfgwwwwgwvxvwgvwxwwvwfwwfvwxgwhwguwgvfwwwwwwwxggvwwxvhwgwwwgwggxgwhgvxvggwvxwwvxwwwvvwwvwwwvvvxwwwxwxvgwgwwwxwgwwwwwwxwwwuxxwxgxxwvwhgwwwwvvwwgwfWftgvegwGVvwwwwwgfxvggggftgwdgwwxwxWwwfgwfwwxxwxwxxwgvggwuwgwfGwwWgvugWwwggwxwgwfFwwGvwwwxxwwwxghxgwxwwxxwgWufwuwgwwgwffwwvgwxwxwwwwxwxxwxxwxwwwxwwxxwvwVwwWwxwgwwfgwgvwgwwwwxwgvwwwwwwwwwhwxwwwwvgwvwfxwwwwgfwfwxwxxwxxwvxvWvwvwwwwxxxwwwwwgwxwwvhvevwwwxxxgwxgwwwxhxxwwwwgwxwwwwwxxxwxxvwwwvgxvvwwwwwwxwwvgxvvxwwwwvxwxxwwwwwwxxvwwxxxwwwwvwgwxxwggwwgvwwvwwgwwgxxwgxxxxvgfugvtwgwwxvxxxfvvfgffwxxwwwwwgwxvgwwuwwwWwwxvwxwwwxwwwwwxxwwvWwwGfxxxwwwwfgvhvwxwxwwxgwxfwwwwxwgwxgxxwxxxxxwwgwwxvwwxwwwuwwwwwwwxvwwwxwwxwwwxwwxxwwwxxwxwxwxwgwxwxwwwxwwgwwxwwxwwuwwxwwxwxwxwuwwwvwvwwwxwfwwgwwwxwggwefugvwwwhfwwgwwwfeguhwwwxxgwgwwwvwwvxfvvwvggwwwvwffvgxwwwvwvwvwvwwxwwwwwvgvgwxwxwwwwvwvwvwwwwvvvwvugugwvwwxwwwgwwwwwxwwwwxxwxxwwxwfwvwvwwwwwvgvgwhxwwwwxwwwxxwhhfwwwwgwwxwwfvwvfwwwwfvffvgwVfwxwwwDddfxwewvwvvgvgwwwwxxgffVewxwWvxxwwwwwwwvwwwefegwwwwwwxwxwxgxwewxwXuugughwwhvwgwwwwWxwwwvgwxgwvvvgvgvwffVewwwWwwwwwwwwwwwwwxxxgvwwwwwufgwxwwwwwwWxwxwwfhwwxxwwwwwhwxXgwwwwwwwvxwWuwvwxgvvwefufffvgwwvwwwwwxfwvwxwxfxxwggwwxxxwfvvwvwxxhffvgwwwwwwwwwwwfxwwxwwgxwxxxwxwwhwwxwwvwwwwvvvwwwgwwwwgvxwwwxwxxfwwwwwwwxxxwwwwwwwwvwvwwwwxxxwxxgwxwvwwwwwhgfxxxxwxxwwwfwwffvgffvgwwwwDddfxvuwvwxgwwwgwwwxxwwxwxxxxwwwwghwwwwwgwxefugxwwwgxwwwwwxvuwxwXuwwwxxgwwxxxxwhgwwxwwwwwwgxxwwwwwwxwgwvxxxvvwvgwwwwwwxwxwxxwwwxwwwwgwwxgvwwxwxwwwwwwwwwvwwxwwxxwwvwwwwvxxeWwwwwwwWwvxgvwwwfwwwgxvffggvwWwwwwfvwvgwfggvgwwwwvvxvwwgvgwwwUwvgwgwxgffwvwhwvvgwxgvwgwwwwgvxvwwwgxxxwvvwxxwwgvwgvgwvwwwvwWVfggfgwwwvxwxvwvwwwwxxfwxxgwwwfewvvwwuvxghwvffwwwwwWwvwxxfvuwggwwhwwwxwwhwwwgxwfwgwxgfefwugwgVwwwvwWvfgwwwggggvvwwfvwggwwfffvhwfuvgwwxwgwgWwxwwhWwwgxgwwuWWxxgfggghhwgwggvhghewwwwxggvgvgghggwwwfxwwxvgfvwwwwggwgffgvxghvfwvwwwwwwwwxxwwwwwxvwwwwwggwgwwwwfgxwwvfggVxwwWfvuvwwwwvxxxwwwgwxxwwvwwwwuwwgwuxgggwgwgfwwvffggxwwgggwwuvwwxvwxfwxgxwwvfhwwwuxxxxwxwfgwfgwhgwwgwwwgvgWxwhWwvxwgvvwgxwwhwxwwwwxwwhxvwxwhwwwvhwwvvvwwwvhwwwgwxwwxgvwxwwwwwxwwwvWwxwwxwwxwgguwxwxwwvxwwxwxxwxwwWvxxwxvvxwxgxwxwwxegggggwgWwvgxxwgVfvWgggvggvwwgwgwvvwvghgwwwxxwffwgwwgwwwgwWwvxxgWvvwxwhwwwgffxWXgwwgvxwwwwwwwwggxxwXwwxfvwxfgxwxwWwwgvvwfxxvwxwwgufgwwwwvwwwwfwwwwxvxwwxgxwvwxwwwwxwwwwwwxxvvwxgwgxwwwvwxvvvwwvwwwvwvvwxwwwwwwxxuwwgwwwvwwwwwwwxvwwwwvwwwwwxfvfwxwxwwwwwgvwwxxwwxxwvxewfvxvwgvwwxwvxwwwwwwgghwwwxvwwgxwwwxfwwwxwxvwwwwwgvwwwxwxwwwxwxwxxuwwvwvxgvxvxwvxvwwwwxwxxxwwwxxxwxxwwxwvwvwfVUVffghffgwgwfwvvVexgxfwWVffggfwwxwgwvwxwfxwxxwxxfgfweffVggVVxwwfwuwxxxgVwxgwggVVwwhwwxwxxgxhhwxxwhwgffwhgfwwwxwfvxxxwwwwvxvwwwxxxxxxxwxxwvggfwwwxxwxwgxfwxhgfxuwxwwwvwwwxxxwxxggxxvwvwfwUwwwwwwwwvwwvwfwuxwxvwxwxwwxwwxxxxwxwxxxxgwfvvxvuwxvvvvhxwwxxwwxxxwxxxwwwwwxvwwxvwxwwwwwwxwxwwxwxxxwwvwxwwwwxxwxxxwwxwwxxwxwxfvUUgfwvgxgVewgwfwvwvwgwxwwwwwxxvwxwwwvwxfxwgvvwfwfggxgxwgwgwwxgwVwvwgwhxwwxxwxxwwxxwwxxwwxwxxxwwhwxwwgfvwxvwgwvhwwwwxwxxxxwwwxghxxwwwwxwwxwwvwxwxwxxwxwxxdwwwwwwxwxgwvgwxgwvvxwwwxfwxwwvxgwggwwxgwwwfwwwxgxwxgwwxwwvdvwwgggwwwwwxvwfwwwxwhxgwwwwwxwwwvvxhwwwwwwxvxwwxwxxxhgwxxxwwwwvxxwgfdgwxwxxwwvwwwwxxwwxwwwvwfxwggwgwvgwugwfwwxvvvwwwwwwuwwuwxwxwgwwgwwwwwxwwwwwwwwwvxxhwfgvwwwwwxgxxwxwgwwxxxxwgwvwwwvwxwfwwwwvvwwxwwvwwxwwvwxxwwxgwwhwxxwvwwwgxwxxvwvgwxxwxxvwwgwwvwwwwwwwxxwxgwwxwxwxwxgWwvwWwwwWevxwwxevwgfvvxggwwwgvvgxxwxwwxwwfwwwfwgvfvhwxhwvxvhxwxwwxwwxwxwxwxxwwxgvvgxxvwgwwvgwwwwgvvwxxxxwwwwxxxwxxxxwwvwwwxxxwwwvxwwwxwwxwvwxxxxwxwfwFgwFgvfwgvvggwwwvxwxwwwvvgxxwwgxhvwwwxxgxwxwwwggxwwwwwwvxWgxxWwhxhwwhhwxwxxwxWxvwxxwxwxxgwwwwwxxwwwwxwwxxxxwxxhxwxvwwwwwwwgwwwxhwwwxxxxxwxxvxxwhwwgwggwwvxvxhwgggvwVxwgwxWxwggwwwwwvwgwwhwxwwVwggwwxgwwwxxwxvgwghxwwgwxwwwXwxxwwxhxxxxxhxxwxhWgvxxwwwwwwxgvxwgvhwxwxwxwxxxxxwwxgfgwwgwwxwxfhhhxgxwwwwxxwxwxxxxwwxwgwwwxwgVgvwxwwxvWgwwgwwwgWwwgwhhwxwvwwwgxwwwxghwxxxhxwwxxwwhgxhxwgwxwwxgxwxhggxfggxxxwxwxxxwgxxxhxxgxgxxxwxxxhwgwxwwwxwwwxxwwwxxwwwxhwwxxxxhxxxxgwwxwxwxwxxwwxxwwxwwwwwwwwxxxwhxxxwwwxxwgxgwwvxwwwwgwVwwgVgwgwwwxgwwhwxxxwwvxwxwxwxxwwxwwwwwwxwwgwhxwgxxxwxgxxxxxwxxwwxxxxxyxwwwwwwwxxwgwvxxxwxxwxwwxxxxxwxwxxxwxxxghwxwxxxxxwhxwwxxxxxxWwggvwgwwwxxxgwfgwxWvwxwhwgwwwxwgwxxwhxxwwxhwgwxxxgxxxwgxgwyxwgxxwxxxxgxvwwxxwxxxxxxwxxgvxxxwxwwgxxwxxwxxwxxwxxwxwhwxwxwxwwwwxxwxxxxxxwwwxxxxxxugxvwwvwwxxvwwxxwwwxxwvxxwwwxwwwwwwwwwwwxxwxwwfwwgvwwwxwxxxwwxwwxweuwwwwwwxxwwywwvxgwwvxwwxwwwwxvwwxxwwwwxwxxwwVvuwwwwwwxwxxxxxwyxwxxgwwwuvwvhgvggxxwgwwvwwxxhwwgvgvvwwwxxwwwwxwwhxxxxxwwwfwvfvxwwwxgwwwxghxxxxgwvwxwwwxwxwwvxwxxfwwwwvxfwxxxwwxvwwwxhxwvvwxxxwwxxwxxwxwwxvwvxvwwwwwwwxwwxwwvxxxxwxwxgxxwwxxwxggewvgvgvvvwxgwxvwwxxwwvwxwwwxwwgwxwxxxwwxwwwwwwxgwxwxxxwwwwxwxwxxxwwvwwfwvwwxwxwwxxwwwgxwvxxxxwwwxwwwwwxxxxwxxxxwxxfwWgvvwvgwvvwxwwxxwxwwxxwVguvxgxhgxxxxxwxxxxwwgvxvwggxwhWxfwwwxxxxwxxwxgxvxhxxwwxwxxhwwwwxxxxxwxwxxwxwxxhwwxwxwwwxwxwwwwxxwxuwwwggvwvwwwwfwwgwwwvwvwWwvwwwwvwwwwxvvwvwwgwvvvwvxxgwWwwwewgwgvfwwwwgvxxwwgwvwwwxwwfwgvwwgwwxwwwxgwxxxxwwwfwwvwwgvwwwgvwvwwwwwwxwwwwwvwvwwxwwxxwwwwgwwvgwvwwwwwwwwwwwwwwxwxwwwwwwxwxxfxwwxwfVvwgvevwguDeufwgfwwgwfvffwwxwuffwfwfgwwwwwxfwvwwxwwwhvxxgxxwfwwvwvwVwwvwwgwfwvwvwgwgfvwggwwgguwxwwwxwgxxgvxwwhxwwwxxwfuwvvwwfvgfwwwwwwwwwuwxwwwwwwwwxwwwhxxwxwxxxwwwwxvwvwwwwwvwhwwwwxwxxwxwwxwxxxxwwwxhxvxhxwwwwwvVdwxwwwfvuwgwwwvwgwfvvxwwxwgfwwwvvvwwxwwxxwhwxwwwwfwwfwwwwvfvvxxxxgxxxggfwgvxxxwwxhxxxxwxxwvwgvvewwwxwwwwgxxxwwxgvwxwxwxwwxhxvwwxwxgwwgwvwwxxwwwxxwwxxwwxwhwvxwxwfxwxwxwwvgffVfgDuufwwwXWwwfwwwwwwwfwwwVwwwwwwwwwvxwwgxxwxxwxwwwgwvwfwXwfwwgxfwwwxgxxhxvwwwwwwgxwwwwxxgvxwwwxxxwwxxwwwgwfgvvwwwwvxxwwwfwwWvwxwxwxwwxwwwxwwxwwxwwgvwxwxxwwxwxvxxxuwvwgwwwwvxfwwwwvxwgxwwwwwwgwxwwhfxwwwWwwwxgwhxwwwwvwvgfwvwffwwhwwwwxwxuwwXwwhwgvwwwwwwxwxwWwwxxwhxgwwwvwvxxwgwvxwwwxwwwvxwwxwwxwxxwwxxwxxvwfwwvgwwwwgwxwxxxxxwvwwvxwxwhwwwwwxxgxwxxggfwfWvufggwfwuwgGfxxwwvvvxxwgwwWFwfwwgwwgwhwgvgwxxwxwwwwwxwwwwggWwfWggtgwwGvWwfWxwwwxfwxgwvvfGwxhwxxxxwhwxwhxxxxxxxxwggWvwwwhwwvwxgwxwxxwwwxxwwwwwwwwxxwxwhhwwwxwgwwxxwgwvWwxgwwxgwwvwxxxwwwwvwwwwwhxwwwwwwwvxwwwwwwwxwgwwgwvwwuxguwwhwwwwgxwvwvvfwwxwwwwwxwwhxwxwhwxxxhwwwgwwwvwvvgwxwXvwwxhwxxxwxxwxwxxxwwxxwxxxwxgxgxvxwwvxwwxwwgxhwxwwxxxxwvxxxwwxvgwhxxwwwwxwvwwwhwwwvxwxxxwwwhxwwwxxwwxvwxwxwggfgwvwgwuxwwvxgwfwvgxvuwwxgfwwffwgwwxwwwxwwxwwxgwgwwvhxgxgwugwwWvwWwwxgfwxgxxhhxwwxwXwwxwwxwxwwwhxwxwwxxxxxwxwgwwxgvgwwwwwwwwwwxwxgwvwwxvwvwxwwwwxhwwwhwwxwwxxwwwxwxwwvwwwgxwwhwwxwvxwxwwwwwxxxxwxwtwwwvfvwvwwgwfwgwwxwwvfvvwwfwwfvfvwwfwvwvwwwfvvwwwwxwwgxvwfgwwvwfvvfwwxgwwxwvvwwwgwwvwUvvfwwvwxwwUwwwxxgwwwwwxgwwwvwfwfwwwvvwwgwwfvvvwwwwwvwvvfwwwwxvxfxxwwwgwwwxwwwvfvvwwwvvgwvvwwwggwwwwwgwwvwvwwfxwxxgxwwUwwwwfvgfgvwffwUggUvfwgwwgffvvwggggggf3uuUfvwgwgUvvfhgfgwxwggwvwxwxwgwffvvgwffgvwwxVwvwgxwxwfvfwgfvgxxhvwwvgwvghgfwghggwgfwUggUgvwwwxfvvfwffgwgggwgwwfvwwwvwgxwwwwwwwwgwwwwwwwfvvwgvvgwxwwwgwwwxgxwwwwwvhwwwwwvwxwwwxwgwxwwxgxwwfwgfvwxwfwvwwgwwffvwwwgxwwVefvfvfvvvwwvvwwxgwgxwxwvwwwUvvffwwwwUwwwwxggxgwwwwgvwwxwgwgwxxwwwwggvwwfwvvfwwwwvxxwwgxvwxfwfvvgwwwwxxxxwwgxxhfwxwvwwwwwgwwvwwwwwwwgwwwUwxvwwwxwxxxwwxvvxxxwffg3uuUgvwggwUvvfggfgwgxwwvwwffvgvwwhwwwwwvvgwgwwhxwwwxfwfvvwhfvgxxwwwgwxvwxghfgxxxxwgxwwxhwhxfgwvxwwxxxggwfvwwvwwgxwwwwwwwvwvwwwwgwvwvvwgvxgwwggwxvvwwwxwwwwwgxwvvwwwxwvxwfxwxgwxvvwwxeffwvvvfvvwwgggvwwwgwvhwwvwgvvwvwgvwwwvwxvfWwfwggvwvxwxwxgwggvfevvwgwvvvgwgvgwwfgffvgxxwfwvVvfwugwvfwvwwfwwwwwggxwxwwwgwvwvfvwxwvxvgwvwgggevxxwuvwwvvwwfwfwfxwwwwwwwwwvvwvwvwwfvwvvwwwwwgfwvevfvfvvwgwwvxwgwwwgvxwgwweuvwggvWfwwwgwvfVuwwgffvgVwwhWvWfvfvffggwwvwwhDeufwwwwwgVvxwwgwwvgvwvfvvwwwwWfvfgxgWexgwvggwfwwwvwgfwwxgxwgwwvfwxgWxwgvxwwwvvwwgwffwwgwvxeuvwwwwwwxfwwwvfvffuwxvwggvwxxvwgvwwgfwwwxwvwvwwwwvwwguwwwvwwxfwwvwwvwwgwwwxxvgvwuwwvwgwwxwvvwwgwwvwwgwvFewfwwvwfgwxwwxvvUwuwvgwwwweuvgwwvwvwwwwwxwvfvwUvvwfgwgwgwwwxxwwVxgxxwwfwvwxwvgwwwwwgwxwwgwgWvxgxwwxuwvwvvwwvwwgwwwguvwgwwwwfwwxvwwwxxwwxwvwwwvwwwuxvuvvvwvvwxwwwfwwxwvwvxfwvwwgwwwwguwwwwxxxxghwgwwvxvWfwgvvwfwvgvwwUefVgvwfffxxwwDuufwggwwfwgghxwggWfggwvwwVvwfwvwwgggwgxwgxwgggvxWwfhvwxwwwwwfwwvgwgfgwwxwgwgwwwxxxwwfvwwvwxwwxxvwxvWguwwxgwwxwvwwvvxwwgxwwwwxfuwwxwwwwwwwvwxwxwwwwwxwwwwwxwxwwwwxfwuvuxwxwwwxxvxwgggwwwwwhhgfuwwWfgwfgwWwwVvwvwwwhwvwwvxwfgwgwwgwvwwwwxvgwwfUwxgVvgvuxggvvwgwwwxwwggwwggwfhwwwWwxhxwwggwgfxwxxwggwwxvwwwwwwwwvgwwgwvfwgwxvhwgwxwwvxwwvxwxwxvxwxwxxwxwwwwwwvxhvgwvwvxwwxwwvgxwxwgfwxvwfxxwxwwwxwgwxwwwwgwwwwhgwfgWwhvuwwVfvwggVWvwgwgwwfgghwfggvgwxwwgwvXwvVwwwhgwvwhggwgwgggwwxxxgwwwvgxhWgxxwhwxwgvgwwgwwxwgxwwxwxwgxxxWxxwxxhwxwwwvwwXgwxvhgwxvwgwwfwwgwwwwxwwwwwwwxxxwwwxgxhwxwwwwwwwwwwxwwwxxxxgwwgwwggxxgexxwwwwxhgxxxxxwxgvwwwwggwgwxwWfWwgWwwwhwxwwxwwwggwwfxwwwfwhvgggwwxwwxxwwgwwgwvwhxwwwxwxgwwwxxxwwvxwwwggwgwwgwxxxwxxvxxxhwwwwxwgwxwwwwgwwwgxwxwxwxggwwxxwwxwwwwxhgxxgxwvwxvwhvgwwwgxhxxwgwgxhxxxvxxwvwwwxwxwxuhwwfwxgwwwwgwWvgXwgfwwXwxxwwxgwhwxWwxvxggvxwhgwggfwxxwxgwwxwgwwxxwxwwxwwwwxggwgxxxwxgwwwxxwwwwxwxwggxwhxxwxgxwxvxwwwhvwxwVxxwwxwvxxwwxxxwwxxwxxxxxwvxwwxxxwwwxwxxwwwwxxwwxugffvvxwwxwwvgwvwwgwwwwxggvvvwwxwwwwvwgvgxvwwwxwwwwwvwfwwfvwxwwwghwxxgffvwwwgwvvwwwvwvwxwxxgwfwfwwhfvwfwgwggwgwgxwggfwvxfwvvgwxgwwwwwwxwWevwwhwwwfwvwwvwwxxxhvgwvwgxwgwwgwwwwxwxwvgfvvgvgvwwxwwwwvfwwgvwveuwwxgwwggwgfwfwwwgxwvgwfwvwhwgxwxhxwvgghwwgwwvgwxwwgwwwvgwxhwxxfwvgfwwggxwxwxgfwwggxxwfwwxxwvwwwwwwwwxxwgvwwwxwgwwwwwwxwvwwxvwwxwwwxwwwwwwwwwxwgvwwgvwwxwwwxxxwwhvwwxxfhxwgwwxwxwfwwwxwgwwxwgwfxvwvfvxgwvxvwgwwwgwwwwfxgwwwwvxgxwwfxgwvwvwfwwwgwvwwwgxwvxwwffvwwxvxxxxxwxwxvwxxwwvvggxwwxgxxxwxxwxwxvwwwfvwvxgvvwvwxwxwhwxhvwfxfwxxwwxwwxwgxwwxWvuwxxwwwxwwwxxhwwwwxwggxgxwwwxgwwxfvgwfwwwwxwwwwwVvuwwwwgwwxwxwxgvvgwwwwwwwwwwvwgvwwwxwxwhwwwgwgwwwgwwwgxwwwhwwxxwvxwhgwwwwwxwwhhgwwxwwggwxggwwwwwvwwwwxwfwwvfwwvwwwwwwxxxwwxwwxwxxxwwwwvhwwwwgwxwgwvwwwwwwxxwwvxwxxwwxswwwgvgwgvvwgwvwwvgwggwfvgggwwgwxvvvvwxwewfwvwgwgwwfvgxvwwwfwwxgwevwgwgufwgffwggwgfhgxvwvgxfwUxvwvwwwfffxwwwgxwvgwxgvvgxgvwwwwwgxfwvwxwvwwwwwxwhwwwfvvwwxxfwguvwwwxwwwxwwwVwSwggvwwgGdgwvwwwwwwwwuuwwvxwwxwwwwwxfwvwvwwwvgffvfWfggvwwgfgufgfvWvfgfvfvvgTuvwgghfvegfwffwwwgfgwgwwwvggwfvgwwfwwvgwvggwxgfwgffwvvhgwgfgugwxWgwwwwxhvVwxggvvwvwwWuxgvxwgVwdwwwffwxwwgwgfwvxwxwwwhwwwgwwwxxxwxxwwfxwxwwwgwwvxwxfxxxwxxwxwxxwwxxxwgwxwxwxwfwvwwgfvWuwFvfwgvwgwwwgguxwwwwwVewgwuwvwwxuvwgWguwwgxvwwgwxwwwWvWwfwgwufwgfhwfhgxwvwwwwxwgwvwwwxwwwxwwhgwwwwvxgvwwvwxwwvwwxwwhwwxwvxwwxvVVwxwwxwwWWwwwwwvgfxvxwxwwwwwwwxgwwxwxxwwxwvwxxwxgwvxfgWgwvg5vuwwwwwWgfwggWgfwwgVwwwFvtwwhvwvxgWwwwwwwxhgwvgwwwwxwxwwfwwwwxgxgvwwwwwwwwhxwwxWwxwxhxwvxwxwwwhwgxhvxwwvfvwgwgwwxwvwfwwgwwxwwxwvwvvwwxwwgfwxgwwxwwwwwxxvwxwwvgwhwwwvxwwxwxwxwwwwwwwgwwxwxwxwxGwvwgwwxvwwfwwxhwvvwwgwggvwgwvwwefwgvwwwwhgwwgwvxgwwwwxhgwwwgvfwwfgxvggwVgxghWuxhxxwVxvwfxwwxvxwxwvgwvwxwxwwwxxwwwwwxgwwwwvwxvwvfwvxwxvxvwwxwwwxwwwxxwxwxwxwxwxhggwvfwwxwvvgwWxfgwwxxhwwvwxwwxwxxxxwxwwwxwxxwxwVwwwWwgwwwgwvwWVWwWvwwWwuwgwhgwefwwhwwwgwggwVwwxfwxWgxwwwwxxwwWvwwhWwxwwxwgxgwggxWxwgwwwwwwwwxXwghxxwghwxxyxxxwxwxwgwwwwxwwhvwvvwxwwwwwxwwwwwwwwwxwwwxwwxxxXvwwwwwwwwwxxwxxwwwvwwwwwxwwwwwgwwvwxWvwgWxxxxwhwxxxgvwvvwwhgvvxvvwWWfwwwwwwwwhxgfwwwwgggfxwwwxgxwxwgwxxwxgvwvwwwxwxvxwwfwwwWxwxvxXgwhxwxhwhxwxxwxwxxxwwxxxxvxfwuhwwgwwwghxxwxvwxwxvwxxwxxwxhghwxwxxwxwxxxxwwxxwwxwwxwwxhxxwxwfwxwxxwxxfwwVwxwwwxwxgwwwGwwfvvwxwVwwfwghxxxgxgwxwwgwgwhghhwwwxwggxfxXwxgxxwwwxxgxxxwxxwgxwwhwhhxxxhxwfxxxiwwxwxxxfwuxxxwxxwwwwxxwxxxxxxwxxxxxxgxxgxwwvxwxxxwwxwwwhhwxwxgvxxwxugfwfwvwfgwfxxxwhwvgwwhwxgvwwvxwwwwvwwwwwwxxwwwwWvevwgwwwvwgfwwwwwgwwwwgwwfwwwwwxwxwxwxxxwxxxwwgvwggevvwvwwvxwxwvwgwwwwxwwwwwvxwxvxxwxwwvfuwwwvwvwxwfwgwhxwgwfwwwxvwwxwwxxxxxwvxwxwwwwvwwxfwwggufwfVgxgxwwvwvvwwxvvwffwfwvwgwwvgwxevwwxwwgwWxwxwwfwvvgggVfvwgfwxwwwxgwxxvggwvfwwgvvxwwwwwwxwxxwxgwWxxwwvgwevwvwxwvwvwwwvwgwgfwfwwwxwwvxwwxwxfwgwfvwwvexfwxwvwxwwfgwxwwwfxvxwgwvwwwgfwwvwwwwfvwgvvggwvxwwfwwwwwgxwwvxwwvwgVwvxwwwwwXwvwxxxwwwwvfVgwvwghwwwwxwhxwxwwwwwwwwwwxwwwxwwwwwwvwwvwwvwgxwvxxfxwwwvwwwxwwwwwxxxxwwvhwuwxwwwwwwxxhgxxwxwwwvgvvfwfgvwwvgwwwwfwgxfwvwwwwwvwVwvxvgfwxxwggwgvggwwxwwxgfwgwvgvxwxgwwxxgwxhgfxxwwxgggxxgwgwxwwfxwxwwwwwhxfwwvwwxwvwgwxwwwxxwvwwwwxgwxwwxwwxvwwwxwxwxwhxwvxwwxwxwxgwwwxwwwwvgwwvgvwvgwwwwxwvwwxwxwvwgwwwwwwwhgwwwwwwwwwgwxwgvwgwxggvvxgvhwwwxwxwxvvvwxwxwwxgxwxxwgwwwgvwwwwwwxwwxxfxwwwvwwxxwvwwwvgwwwgwwxfwwwwhxwwwwwwwwwxvwvwgVeugWVwwvwggeuwvwgwfvxwwwwggvhgwwwwxfwuwxgxwxwxwxwwxwwfweVvvWWwgxgweWwghxwwWwuwwwgwxwgxWvxxxwxxwwxwwwvfvgfwwwwwwwvvwxwwxxxwwwvxwwxxvxwxwwwwxgwfgxgwwwwvwvvxgxvwxwgvgwwwxwxwxvxxxxxxwvvvwfwwfxwgvgwwwwgwwwxgwfvwvwwWwwxwxhwwgwwwwwwxwwwwwwwwwwvwvwwwxxwwwwhgwwxwxwwgwwwgwwwwwgwwwvwwgxgwxwwwwwwwwxxxxvwwwwxwvgwxwvxwwwxwxwwvxwgwwxxvwfgwfgfwgvwwgwvvwfwgwwxwwxxwfgvuxgwwwxwwfgwfwwwfxwwwgwvgwwgwwwwxxwwwvwgwxxwwwwwwwwWwgwwxwxxgwwgwxgvxgwwvwxvwwhxwwgvxgwxxxwwxxwwxwwwxwwwwwvwxwxwwwwxxwxvwwwwwxvwfwvfvxwxxxxwgvwgwwvwfxwwwvgwwxwwwxwwxxwwxgvwggwgvxwvxwwxwwxxwwxwwxvwxxgwwgxwwxxwgwxwxvxxwxxxwxxwvwwwwxwwhgwxvhhvwxvxxhxwwvwxvxwxxwgwxwwxxwxxxvxgwvxfgfvgwwgvgxxwwwwxwwwwxxxgwwvxfwxxxhwwvwhxwxwxxvgxwxwvwfwvxwgxxxwwxwxvxvxwxwxvwwxxxxxxywxxxxxwgwxwwwwxwxwxwvxxwhwgxxwgxgwxwxwgxxxwwwxxwgwvgwwwxyxxxwvxvwvwxgwvwwwwgwwxxwvwwwxxwgwwxwhwxwxwyxxwwwwwxxxxxxwxwxwwwxxxxwxwxwvxwvwwgxgxxxwwxxwwxxxxwxwwwwxxxxxfgggwfxgwvwvxgwfwxvwxgvwwwxxxhwwxxxxwgwwxwwxxvwwhxxxwhxxxxhxxwhvwxxgwvxvwwxxwwwxxwxxxxxxxxgwwvxwwwxwxxvvxvxwuwwwwwxwvwfwhwwwwwwwwuwuwgwxfwwwwwwgwvwwwwwwgxwwVwwxwxwxwxxwwwwxxxvgvuvvwgxwvuwvwwwxwxwwwwxgwwxxwwxwggwwvwxxxgwwwwxwwwwwvxgwwwvwwfwvvwwwwwwgxxxvgwuvvwhwwwgwwwgwgwvwxxfwwwxwxwgVvvwgwwvwwxhwtwgvWwvgwwwxwwxfvuffxwfwxwwwwwwwvwwwgwwwwwwwwwwwxgxwwwVvugfxgfwwwwxxfgwvwgwxwwvxvgwvwwwwwwhxvvugxxwgvxvwwwwwgwxwvxxxwuwwwwgwfwwwxvvugwxgfhwxwxwwgxwVwwuxwwgwvwwwwwwfwwwwwwwwvwwfevxwgwvwxwwgwvxxwgvgfwwxwwxxvuvwwwwxwxxxwvwwwwwwvwwhwxwxxwgvvxvhwvwwwwxwxxxxxxwwvwwwwwwwwxwwxxvxhwwwxfwwuxwwwxwwwwwxgwwxwwvwwwwwwxxwxxwwwvwxwwwxffWuwwwvvxWgvuwxhWwwxxgufwuwwwxxxxwwuhwvVgwwwxxxwxwwwxgWxxxxxxwwxwxxwgwxwxwgwGgfwwxwxxwxfwwxvgxwwwwwxxxwvwwxwxwxwxvxxwxvwvwxvvwxxwwxxwxwwwxwwwxvgwwwwvxxwxwgxxxwwxxwwwvwwgffwwwfwWwvxggewvwwwwwgvvwwgvvgewgwvwwwwuggwvwxwwxwxwfFgwvfgwgwwWwwwwgwwwvvgfgvtggvwgwgwugwwwwhwvwwwgwwgwwwwwwwxwvwwegxwwwxwxwwxwwwwwhwwwgxhwwwxvhwuVxwwwwwwwxxxxwwxwgexxwwxwwwwwwwwwgvfwggFfwfgfwvggfVvfwffwwgwvggwwfwgfdfwvwgvxvwgevwgwwwgvwwwwgvvwwgwwxwgwgvwxwfwgwwwwfgxgwhgxxwgvxwgxxgwxwgwwwgwwwvgwwxxwwvgwwvxxxggwwwggxwgwwhxwvwfwwgwhwwvgwvvxwwwwgwvxhgxgxgvwwhgxxxxwvwwxwvwvwwwwhVwvwwxwggvfwwwghxwwgwgwgvfgwwwgvwwwxwwvhggxwwwwgvgwwhxxwwwwwhxxvwxwxxwxwxwwxxwgwxwxwxhgxxxwxxvxwvhwwwxwgvxwwxxwxwwxxxwwxxwxwxxvwxwwxwxxxvxwxxxggvgxxwwwwwwwxwxwvwffvwwggggwxgvgWgexwxwwwgwwfwgfxvggvwwwwxwwggvwwxfwxxwxxwgwxwxwwhhxvxxgxgwxxwxxwwgxwwwhwwxwwgwgxxxgwxxxwwxxwxwxwwwxxwxxxwgxwxgwxwwwwxwwwxvwhwwxxgxwxxxxvxxwxxgwwwxwwxwvfwvwwxxhvvwgfvvwggwwwxggfwxvwxwfvwvgWwhwxwvxvgxwgVgwgvvgfwwwgwwgwwwwwhwvgxvvwfvgwwwwxvwwwwwfwxwwWwwxgwwxvxggvwwwwwwxwhvvwwwwguwwgfwwwWvgvxwwvwwxggxwwwxgvwxwwwfvWwdwvwvwxfvxxgwwhxwwVdvwvgxgxvwwwwwxxwwwwwWfvwfgwgfgwgWUevgfgfffxwwWgwwwvwVWwgvwwvgwfvwgwgwWvwgwwXwvxwxwwwWvwgfvwVWwwggwwVxfwgwWWwwWwgvwgwvwxwXufvwgWwxgfghvexguwwwwgwwggwuwwxvwwwvgxgwgwxwvxwwwguxwxwwwwwxwwxwwwxwwxvwwxwwxwxwwxwwxggvwgxwfvwfxwwfwwvwwwvxwvwwwwxwxwwxwwwwWdvxgvwvwgGuwwwwgWwvwvfvWxgWwvxwwwvwgwvwfwvWvxxggwgwgwfgfwggxwxwwvvvxwgwxwwxwgvxwgwwwwxwwxwwxwxxxxwvwwwwvxxxwxwwwwxwxwvwWGxhwwwxxwwwwwwxwGWwwwhwxhwhwwwxwwxvwxggxwwxxgwwxwwxxwxxxwxxwgvwfwFgegfwwxwxwxFgevwgwGwxwwwvvwgwvxwxwwwwgxgxwxvgwwfwgwgxwxwwwwwwxfhxwwwwgwwhwxghwggxwxwwvxwwwwggwghwwggwwwxfhwwwwhwgxwwxwwwhwxwwxwxwfwgwWWwwwxvwxwwwwwwxxhgwvxwxwwvwxxhwwwwwwxxvwwwgwvxhwwxgwxvwwvwguwgwwwwgxwwwwwxggwwvwvxgvxvwuwwwwwxvwwwvgwvwwvxwxgwvxwvwvxwgvwwxgvxxxxwwxxvwwwwvghwxxwxhhwwxvwvwwwgwuwvxwxwhxwwwvwxxwgwxwxwwxxxwwewwuwwxxwwwwxwwwvxwvhxwxxwwxgwvxvgvwwgwwwwwxwwwwvxwwvwxxwwewufwghgwwwxwxwwgwxwgwxxxwgxxxwxwwxxgvxwxwhwxwxxwgwwwgxwwgwxxxgwwxwxwhwwwvwvwxxxwvxxwwwwwxwxwwxwxxwxwxwwxxwxwxwxxwxxxxwwxxwxwwxwxxwxxwxxvwwxwxgwwwwgvxgxhwwgwvwwwwxwxwxwwwvwgwxwxwgwwwwxwxxxxxwwxwwwwwxxwxxwwwxxhwwwgvwuhxwwxgvxxxxwwwhwxwxwxxwwxhwxxwgwxxxxxwwvxxwxxwxhwxxgwgfwuhgwwxxwwgwxwgwwxxwvxxwxfxwhxxwwxwwxxgwvwxwwxxhwvxxwxxxwxxxwxxhwxWxwxxwxhxxvwhwxxwxwxxwwxxwxwwwxwxxwxxxwwvwxwxwxwxxggxxwwxxvvVwvWvwvvwwwvwghvwwgwgvxwwgvwwwvvvwwwwWwgxvvwwwwwxwwxgwewwgwwvwwgfwwvwwvWwwguxwWwwwwwfgxwgxwwwwwxvwvwgwvwwwwwwgxwwuwwxxwwwwgxwvvxxwwwwwxwxwwxvwvwwvwxwwwxxwwxwxwvgvgxwwwxwwvxwwwvwvgvgfvgvggfgwggwwfgwvwwgggfVwfvxfwwwwhgwuwwgvgwwwwvwwwxgwwfvfwwwxwgwfwxfgwgwggwwvwxvgwvwxxxxgxxxxvwxxwxxwwwwvwvwxwfgwxvwxwvwwxwwwwxwwhfvwvxxgxwwwxwvwvxxxggxwwghvvwxhwxxxwvvhwwwwfvggewwgwwwwwvwgVgwvwhwwwwvwgxggwwxxhwvwwxgwwwwvwwwwwwwwvgwwxwhxxwfwvxxxwwwwwwhgxwxxxgxxxwxwvfvwvxwhgvwgwxwwwxwwwxwwwwxxwxwwvwxgwwwxxxxxxxvwxwxwhwwxxwxvwxwwxfwwfVggwfwxwhvwvwgwVgwwwxwgWwwgxwgxWwvwwwwwwggwwgwwgxwwwxxwxxvhhxwwxWwxxwxxwwwwvxxgvwxwxxwwwwxxwxwggxxxwwwvwxxxxxwwwwwgggxxxvwxxwwwvwwxxwxxwwwxwvxxwwxwwxxxhwvggxwxwhxvWvwwwwxwwwxvxwxvhxwwxwxxgwvwgwvxgwxwgxwgwgxwwwwwwwgwwwxwwwwwhwwwxxwvwwwggwxwwxwxwggxvxxwwwxvhwxwxwwxxgwwxwxwxwwwhxvxwxwwwgxwwxxwxwwxxwwwhwxxxwwvwwWvwwwwwxwwwwgfgfwwwvgwwwgxugwwgxwfwwwxxxwwwgwxwwwwwwwwxwwgwxvhxwwwwvgxgwxxgvxxggwghwxgwxwwxwwWwghxwxwwxwwwwwwxxwwwxxgvwwwwwwxxwxwgwxwwxwgwwwwxvxxwwxwxxwwgxxxgwwwwwxxgxwxwxwwxxxxxwvvwxvhwwwhwwwxxugwwgwghwwxwxxxxxgwxgwvxwhxwxxxxxwwwwxwgxwfwxgxxgxxxxwxhxgxxwwwxwxxwwhwwwwxwwxwgwwwwwgwxxwwgxxxwxwxxxwxwwxwgxwxxwwwwxwxwxgwvwvwwwgwwxxwwwgWwgwxxwwgwvxhxgwwwXwhxwgwgwvxggwwxwxxxwwxwhxwxwwxxxxwhxgxxxwxXwxwwxxgwxxwwwvwwwxwgwxxwvwxxxwwwxhxwxwwwwxwwwwwwwwwvxxwgxwxwgwxwvxwwxxgwwwhwxxxxxwwxwwwvxxxxwxxwwwwxwvxwhwxwxxxwxxxxwgwxxwwwxwwwwwxwxxwwwwxwxxxwxwwyxvwwwgwxwxwwwxwxxwwxxwxxxxwwwwwwxwwgwgwwwhxxxxwwwwxxxxwxwwxxwxwwwvxgxwwwxxwwxhwxxwwvwxwwxxxxwxxwwwgwxxxwxxwxxxwwxvxxxxxxxxwgwvwwxwxxwwgxwxxxxwwxxwxwxxwxxxwxwxwvxxhwxwwgwxwwxxxxxxwgwwwxxwxxwwwxwxwxwxxxxxxxwwwwwwvwxwxwxxwwwxxxxxwwvwwxwwxxxxwwxwxxxxvxwwwwwgwwwwwxhwwwxwxxwwxwxxwwxxxxwxgwgwwwwwxxhwxwwxxxwxxxxvxgxwwxxxwwwgwwwgxxwwxvwwxwxwxwxwwxxwxxxwgwwwwwwxxwwwxxwxxwwVwfwggvvvvwwwwxxwgwwwwwwvwwwwvwwxxwxwwwfgwwwexvgevwwwwvwwwwxwwvuwwxwgwwvgvwhwxxxwwxwxwuwwwwwvwgwfvwwwgfvvwwvgxwxvwxvwwxxwxvgfwwwwwgwvfwwxwvuwgxvwfwwwxxxxxxxwxxwewvgwgvfgfwwwxfggwwwggvvwxwvwwfxwwgwwwwwwxwxwxwwfwwgxVveWwwfwgvwwxgwwgwwxwwwwwwxwwwwwxwwxxxwgwvxugvwwvwVvvwwxwwvggwwvgxxwxwxxwwxwxxvwfwvfgwgvxwwwwwwxvwxwwxwwxwxxxxxwxxvwwwwvwwwfwwwwfwfwvwvwgwfwwxwgwvwwxxxwwxxvgewvwwwfvuwxvvxwwfwgwwwwwgxwxwwwwwxxxxxxxwwxwwvwfxfvgxwwvwwxwxwxwwwxxxxwwwwwwxwevuwgwgxwwxxwxvxxvwwwxwwwwxxwwxvwfwfvwxVfewwgwggvvWxvwwwwwxxxgwwxxxwxwxwxxwxxxxwVvegWwVwwwggwwwwwwwwwxwwwwxxxwxxxwxxwxxxxxxxwgwxxfvvwggwxxwxxwxwwgwwxwxwxxxxxwxwxwwxxxwwxwvwvwwwwxwwgwvxwwgwwwwxxhxwxwwwwxxgwgxxxwhxgxxxxxxxxxwxhgwwxgwgxggghwwxxhxvvxxxxwwxxxxwxxxxxxwxwxxxxwwwxgwgxxxwxwxxxwwwxxxxxxgwgxwhwxvvwxhxxxwwxxwwxgwwxwwwwgwwxwxwxhwwwghxxxxwxwwxxhxxxxxwxgwxgwggwwxwxgwwhwwwxwxxxxwwwwwxxwwxxwxxxwxxwxxxxxwxgwwwwwxwwwwhxxwwxxxwwwxwxxxxgwwwwxwwwwwgwwgxxwwwxxwxwxwxxxgwwxxxxxxwwxwwhxwwxxxwwgggxwxxwgxwxgxxwxwxxxxxxxxwxxxwxwwxxwxxwwhxxxxxxxwxxwwxwxxxxwwxwwxwxwwgxxhxxxxxxxxxxxxxxwwxwwwxwgxwxwwwwwgwxxwxwxxxxxxxxxwxxxxxxxxwwwxwwxwwxxwxxxxxwxxxxxhxxxxwwwxwxxxwxwxxxuwwwwwxwwwxwwwwxwwgwvwwxwwxwwxwgwvwxwxwvvwvwvvgwfWwggffwwwwwxwwwwwwgvwVwfwfgwwxwwwwhwhxwwwwvwgwwwwwgfwwwwwwwfvvwwwwwwgwwvwwxwwwwwwxxxwgvvwvUeuvwvwvvfvvgwgwwwwwwwvvvvwwxxwwxwwxxwwwvfwwwwxvgWwwwwwwfwgwwwgvfgwxfwvVwwwwwvwwxggffwxxgxxxwwxwvgvwwhwfFVtuwxvfxggvxvWxwggxxxgFVtuxwggxxwwwwxghwgxgwwwwhxwwwfvvwwwwxwUuuvxwgfwwgwwvwwwxxwwwwwxwwxwwxwxFVduxwgfwwwwwwwhwfgxhgxwwfuwwwwxwwwwwwwwwxgggxvwgwvwwxwwgwwwwwwwwfvwwgwxwxwwgfwwwwwwwxwwwwwxwxwgwwwwUeuwwvwwwwwfvvwhwggxxxwwwwwwwwgwwwwwxwxxxwxwvgwwwvVfuvwvwwgwwgfwggwvVfuvwvvhxwwwxwgwxwhxvwxxwwVfuvwwwwvwwgwwwwwwwxxwwwwwvvwwgwwwxxwgwwwxwvgwffvgvxwxwUeuvwwgvvgxxxxgwwxwwwwxxxxxwwhhxxwwwwxxwxxxFVtexggfwxwhwghwggwhgxwwwwvwwwwhgwwwhwfwwwwwuwwwwwVfuvwwwwvwwgwxxvwwwwxxwwwwwwfxvwwgxxxxxwwwwwvxwxwwwxwwvwwwwgwwxgwvxxwwfxvwwwwxwxwwwwwwhgvxwgwwgwexxvwwwxwgwwwxxwxvvxxwxWgfgggvgvhwwggVuwxgWhwwwxxwwugvvwwwgwvxwwwvwvgxwwwxxfwgwhvwwwwwxwfWvxwgwwwwxvWwwxwwgggWxwxxuVWvwvwwwwgfuUxxvxxwxwgvvgxwwwwfwxwxxfvfWwgwwfwwwwgWWxggwwwwwxvvgwfxxxgxgwggwwwxxwxvVvxxwfgwvxhwwgvffxwxwxxgwxwgwehwwxxwxxxwwvwwxxxwwxxxvggwxwwwwxfuvfxxxwwwxwwwwgwVwxxwwxwvwgxxxxxfffWwwxxvgxwwwvfwwvwwgwwwxxwwwwwwxgwgwWwwwgxxwggwwhwwvhvwwwwwvvggwxxxwwxvgfwwwwwwgvxfuufwxwvwwwxwwvvggwwwwwxxwwxxwxxwwfwwwwwwwwxVuuwwxwxxxgvwxwxxvwwxwfuugwwwwwwxwgwgwvvxwxwwwxxxwxxxxxxvgfwwwwwwxgfffwwhwwwxwgwwgwxxhwxxvwwwwwxxwhwgvfgwwwgwgwxwwxwwwvxwwwgvxxxxwwxwwwhwhwgwwwwwxxxfvvgxxxwxxxwwwwwwwwwxwxxxwxwxxxwxwxxwwwwwxxwwxwwwvvwxhxxwwvvwwxwxxwvwxuxggwwwwxwhwggxvwxwvgwgwwxxwxvwwhwxwwwxwhwwwxWvwxvggwfgehwwxwgvxxwWgwvgxwXwwxgwwgwxgwwwwwgvghwxwxwxwxwgwxwxvwgfxvwwwggxwwhwvwXwxhgxwgwwxwvwwwxxxhwwxxxxhxwgfgwfwwwvxwwwxhvwXwhwwwwgxwvwgvhxxwxwwxyxxwwwxhgxwghvwwxwgfgwwxxWfwgwhggvvgxgxwgxwwwwwwgwxgwvwxwwwxxwxxxxwggwwhwwgvfhgxvwVwfgwwWwwwWxWggwwgwwgxwxwwgxgwgWgxxwwxxgVxxxvwhvwwwwxxgwwxgwvgxxxwxxWxwwxguvxxxxwwwwwwxxwwxxwwxxxgfgxwgwgwwxxfwgWVxxxwwwwgwhwxwvgvwxwxwwwwxxxgwwwxhwwxvxwwfwwgxwhwgwhwghxhxhwhwwwxwwxxhwhxxxxxxxxwguwwwwwwwwwgwvgxxggxxgwvwxwxxwxxxwxhxxwwhxgxxwxwfwxggwwwwggvvwwwxgwxxfgxwwwvxgwvwghxhwfxgvwwwwgwxwvwvwhgghwggxgwwwxwxvwwwwwwxggxwwwwxwgfwwhwhgwwxwwxgwfgghwwwxxghwwxgvwxwxxxwhxhxgxwxwhxxgwxwwwgwgxwwwwgwvwxxwhxgxwhgWxhhwxvwwwwgwxwhwgwhwwvxxwfxxwgggxwwwgwwwwwwwwhwxxwxwhggxgxwxwwwwwfwwwwwgxwwwxxxwxxhgxhxwwwwgwwwxvxghVhxgwxxwxxxxxwxxxwwvxwwxwxxwxxxxvwxxwwvxwxwxwwwxvxwgwwwwwxxwvwxwgxwwwwxxwwwxxxwxwvxxxwwhxxwxfwxwxwwxxxvxwxwwxwxwwwxxxvxwwwwwxwxwwwwwxwxxwwwvwwwxxxxwxwwwwxxwwxwwwgwwxvvxxxwxvwwhxwwwxxwxxwxwxxwxgwwwxwgwwwxwxxxxxwvwxxvvwxxxxwxxwwvxwwwxxwwxwxwxxwxxxxxwwxwwvgwwhwxwwwwxxwxwhxxwwxvxxxxxwwxwwwwxwxwwwwwwxxwwxxwxxwwwgwxxwxwwvxxxxxwwxwxxhxxxwwwwwwwwwxgwwwwxwwxxwxwxwwvwvwwxwxvxwxxxwwxwxwxxxxxxvwwwwwwxxxwwvxxxxwwxwwxxxxxwxxxgwvwwwxwxwxwwxxwxwxxxxwwgwxwhxwxwgwwwwxwwxwwxwxxxxxxxxxxxxxxxxvwxxwxwwwwxxxwwxwxwxxwxwgwgwvxwwfgwvfggfVwfvgwwwWfhwwwvwwwwvxwxgvxfvvxwWvwwgtwfffvvwwxWwxwwwWwwwwgwuwwgwuwfuvvxhvwfwvxhwwwwwwGwvhuwVxgwwvxgwxfgvwxxvvwfvffvgxwvwwxxxxtgfgwwvfhwxgxuwfvXwfwgwwvwwwwxgvwgvwxxwvWvxwWuwfggvxggVxwgffvwxwwvwwWvvwUvwwxxuwwexxxwwxwxwxwwwwwwwVwffxxwwwwvgwwwwGwwgveuuwxwgwwwgwxhfwgfwxggwvwgxwwuxwwwwwvvwwgxvvVwhxwwxwwwxwwvxxwwwwgwwwwwwxwwxxvfuuwwgwwwvgwWWggUwhwwwwwxwwgwhgxwhVgwwxwwwvxWwwgugVwwfwfvgwvwwfvxxvvgvfvfwwxvwwvwwxxxwxvfgwxfuvxwWgfggggxwwwvxxwwvwwwhwxxgxvxxgxxwvwwvwfwxgvwwwwfwxxxwXwwwvvvxwwxwhxhwwxwxxwxwhwwxxfvuwwwwwwxWhwwfwwwxxvxxxvwgwvgghwxxvxwgwuwfgvwwfvgxfwfvgggxwfvwwxwgxgvwwwxgggxgwwxwwxxwxwwxwxwVffwxwwwvhxxGgwgVvvgwwvwhwhgwwxxWwgXghvwxxxwxwhwgxUvvwxxvwwwhXgvxfxwxwwxwxxwxhwwhfXvwxxxxwwwxwfwxxxgxwwgwwwwvgxhvxwxxxwhxvxwxvxxwwwwwwwhgUgxwfwwwwWxgwwxvWgvwxwgwWwxxwfgxgwxggxgUfwwxgwvVwgwhwfwxvgwwxwwwxxwxxgwwfwxwggxwhfUwwwwwgxwwwxfxxxwxxwxvxxwhwhwgwwwwxvgxxUwvwghhwfwwgwxxwxxwxwwwxgxfxxxfwxggWwhWffwwxfwgggwxxgwxfwwwxxhwwxwwxxxwxxxwfgwwxfwwwwxgwgwvwwxwhvwXgxxxxwxwxhwxxxxwwghxwxxwgxvfxxwxwxxwxfwwxhxgwwwwwxwghxxhxxwxxwwxfxwwwxxhxwxwwwfgggxxwwwghwvwygwxwgxhwxxxxgwxxwwxxwfxwhffffwvvggxvwxxwxwwxwxwwxwxxxxwxwwwwwwwwfwvhgxXwwwwgxWwwwwxxwxxwwxxxxwxfwxwwwxxxwvfwwxwhwxhwwwxxxxwxhxxxwvgwxwwwwxxwwwgxhwxwgwwhxxxwwxxwxwxwwxggwxfvvxXxgwwwwvwgxxwwxxxyxwxxxwxgggxxgwvxxxwwWgxxxxwwXwxgxxxwxxxxwxxxhxxxxwwvwwwhxxwwxwxgwxhwwxxhwwwxhxwwxxwxxxxvhwhvwhxwwxxggwxxwxxxxvwwxwWgvwwvghwwwgwwwwwxxwgvxvwwwwhwwwwwhxwfvVggwUfwvgwwfggwvwxghwxwwwwvvwwwwwfxgwwhwxxxwvwfxgwfvhvwvvggwwuwxgxwxwwwgwwwwxxwxxwfgffgffwwfwvwwwwwwxwgwwxwwwwwxwwwxxvxwxxugehWgVvegvwgvgwwwfxwWgwwwxxwvgvwxvwgvwwwwxvxxxwwwxxwxwhfWwfgfgWfgwgwxxhgwxwwwxxwwgvwxxgwxwwxxwwxxvxxxxxxwwvgfUffwvvggwwwwwwwgxwwwxwgwgwwwxwxwxxxxxxxwxwxxwwfwfggwwwwxwxwwvwwwwxwxwwwxwwwwgvvwwwhxwwwxxvwvvfxgvVwvwuwwwVfwhvwxxgxwxwxxwwwvwwxwwxxwwxxwxfwfeffwwgWvvwxgwwxwwxxxxwwwwwwwxwxxxwwwggwUvuwfwvxwwwwwxwxvwwwwwxxwxxxwxxxwxfvfwwwwwwxwxwwwxwxxwwwwwxxwwxxevUwVWVvfwfwgwxgvwwhwxxwvwwxxxwhwwwwwxxwxfvVfggwgwxxhwwwwwwxwxxxxwxhvgvwwwxwwxxxxUvfwwwhwxxxwwwxwfwwxxxwwxwwxxwxxwxgxxwxwwxwwwwfwwwvvwvwxxwwxwxxxxxwwxxxxxxxxxxuwwgwwvwxwwwwwxwfwxxvxvwxwwggxwxwwghxfgwvvvFwwwxwvxvwVwwwwgwwwwxwwwwvwvwwggwwwwwxwwxwwxxxxwgwvgvwWwgvgvvwWwxxfxvwwwwwwgwxwxwwwwwwxxwwwwvwwwwwfvvwxgvwwwwwwwfvvwvwwxxwwwwvwwwwxwgwfvvvgWwwwwwxwxvfGwwwgvwwxxwwwwwwvwwwghwwgwxxwwwxwwxwfWeVfufgwvwwxwwVfevwwxvxwwwwwxgwvwvxwwxhxxwwxwwwwwwxwxwwvwwwgwvfvvwxvgwwwxwxxxwwfvwwxwwxwwwwwwwwwwVfuvwwgwwvgxwwvvwwgxwwwwwwwgvwxvwwwvwwxwwwwvxwwwvwxwwgwfwvwWwvwwwwvwWxxwwwwwwwwgvgvvvxxgwxvwxxxxwvwwwwwvfvwwwwwgvwxxvxxwxwfvvwwwwxwwwxxhwwxxxwxwxxwgVeufwghwvwxeuvghwwwxxwvwwwxwwwwwwwwwxwxwweuvwvgVvwwwwvgxgwwwwxwwxwvwwxwwwxwxwwxxwwwwxwgwwgwfvvwwgwwwwwwwwxxwgxxxxxfvvwwwxwxwxxgxgxxwxxwwhwgVfuvvwwgwhwwhxvwwhxxwxwgxwhwwwgwgwwwwwxwgvwwhwwwgvwvxwwxweuvwvvgvwwxwwwevgXwwwwxxxwxvwwxwwwxwwwxwwxwxwwxwxwwwwwxwgxwwwwxuwxxwwxwwwwxxwwxwwwvxhwwwwxxhggxwxxgxwhwxxyxwwxhfwwxWxvgwvwwgvwhwgVwxfgvgXwgwwwwwwxwgxgxggwhwwxxwxxxxxhxwgxxvxgxgfvxhwggwvwwxwxwWvxfwxxxxhxxxxxxgwhwwuxfvxvvwwwxxwxwwhwxxwxxvxxxxxwxxxxwwvxwhgwwhWWxgxhgWwgwgxwxxxwwgggxgvvxvwhxxxwxwxxxxwwWwwgwgWwvvwxghwxhxxxwWgwxxwhwxxxhgxxxwxxxxxvxxxxvxgwwgvwwwwhwxwwxxxgwwxxwhxwhxxxxhxgwwwwwwwxfxwgwwxwwxwxxwxwxhwxwxxwxxwxhxxxxwggvxwggwwxgwgwgwxxvvxwhxxwxxgwvxwvvxwwxxxwxwxxxxxwwgwwwxfwuxfwgwxwxxwxxwxxwwxxgwhwxxxxxwxwgwwwggwvwwwwwxwxwxxghwxvxwxxxwwxhxxwwwxwxwwwvhwgvxwxwwxghwwwxgxwxxwhwxxxwwwgvwwfxggwwwwxgxxwxwxxxwwxhxwwwxxwxxwxxgwvwwxgwxgwwwgvxgxgxxxxwwxxwxxxxwhwxxxxxxxwvwgwwvwxwwwxwwxvxxwxwxxxxxxxxxxxxwwwxxxxxgwvgwgvxxxxwxwxxxxwwwwwwvwxwwgvugxxwgwwggvvwwwwxxwxvvwwwwwxwwgufwvwfvVwwwwwwwgvwwxXvxxvgfggvvwwwgwxwwwwwxwwxxvvwxvggvgwwgwwgvwwhwxxwggwgwvgwxwwwwxxxxxvggwggvvwwwvwxvvwwhwuxwVvufwwwwwxwwvxwxwwxwvvvhvwwwgwwvxxWgwxwwgwxwwwfWfwVwwwwhxxxxwwwwwxwxxwxwggwhwvxwwwwwwxxwhwxgxxwxwxwVvUgwwgwwwwhxvwggwxwwwxxxvWfwgwwgwxwvwwwwwvxwxVvvwwgwxwfwwxwwwxxwVvegwwwwxwxwwgWuwwwwxwwggwwwxwwvwwxwwxxwuwwwgfghwwxwwgwwgfxhwwwgggwgwwxwwvwxxxwegvgwgwxwwwxgwwwwxxvxxxfvuwxhwwwxwxxxvwwxwwgwwxxgwgxwwxxwfvfxxxwwxxxxwxwwxwfvvwwwgwxxxxwwhvxwwxxxwwxwwxwwwwxwxxxxxwxvgfwVwwwwwxxxwwwwgxvxxxxxggfwwggxxxxwwxxxxxxgffwwhwxxxxwgwgvxxxxxxwwwxwwwxxxwwxwxwxwVuvwhwxxwwgxxxxwwxwxwxgxwxxwwwwwwwwvgwwwgwvwxwxwxxwwwwwvwxxwxxvggwwxwwvvwgvwwwwgvwwwwxvffwwwxgwwvwwgfvwxwwvwwwgetwwvevgvwvwwgfuwwwxgwfvfwwwVvewwgvwwWvwgwwvWwgwxwxwwewwVewwwvwfwwvwgvwwwwgfvwwwgwvwwwvwgwwwugwgxhxxwvwvwvguuvvwvgffwwwwffvWwwxwggvwwvgwxwfwwwwggwgwwwuwwwwwwvwVewwwwvuvwgefvVvvgvwwwwgVevvgVfvwgwgwwvfwwwvgvgfVwwxwxggvwwxwgfvwxwwwgvfwvwwwwwwwwfwhggxgwwfVvgwvvwxwGWwwwgwgGEgwwwhwgwwvggvvwwwvwwvfvvwfFwvwwhwwgvwvxxwwhxwfwxwvwhgvwwxvwwwwwgwVwwwwgxfwwgfxgXTwgwwhwggwwwhgvwwwgggvwwguwwwxfgvwxvfuwxwwfvvwvfwwgvvwwwwwwwevwwvgwvwwwwwgwwwxuhwgxxxwxvvwvfvvvwwwwgvwgwwwvwgWxwwwgwvvwxwwgfxxxwwwwwgwwvxwxvwwwwgvwwwwxxwwvvvwvwxwgwxwwwugwwgvwxgXfwxgWVxxhwwwhwvwvwgexxgwwvwvwggdwhvwxwwwwvwwwhvguxwwvwwwxvwfwvvgwVvvwgvwvwuwgvgvvwgVwgwwXwgwwwwvwwwwxxgxwgwgwwwxgwvwwxgwxwvwwwgfxwxxXggvwfvwWgUxwwvXvwvxwhwwhvxwgwfvwgxfwwgwwwWgwxfwwfxxxgxwfvwwwWgewwhwwvxxwwwfgwvWvwfxwvxxxwvwfvxwwwWgwgwwvwfwvwgwvxwwgwgwxwwxuuvxwwvvgvvwwwwwwxxwwfwwwwwwwfgwwxwwxwwwvwwVvwwxwwwwfuwxwwwxwvvwwfueudwvvxxwgweuvwwwggwvggfgvgVuuxugwgwwwwxwwgxgwxwwvwwwwvwwwgvVuxwggwwwwfuxwwwwwwwfwwwVdwwwwwwxwxwvhwwxwxwwgvfvfVvwwwwwvvwwwwwggwwwgwWwvxfxwwuwwgwxwvxwxvwvvvvuwwwxwwwwwVfVvuwwwwwwwwwfduhvwgwwfwwgwwwEvwuwvgfwvwggwhvwgvghwwxwwwwwxwfvwwugvwwgwwgggggwwwhWWwvwxwwxwvxwvwhVVwhwhxxgwwwwwwwgvvwwvvwwVvwxxwvvvxgwgwwwxgwggvwfwwuxwWwxvwwwwwwwguwgwvwwwwwvxwgxwwwwgwgwwwxwwVhVVvxwwvvwvggefwwxxvwwvgwvewxwwvgvVuwwwgwvxfuuxxvwwwxfwxVuwwgwwwxwvwvgwxhwwgvwuvfwVvxxwwvwwxwhvwwxwwgfwwwxxwuwxXwwwwxxwhwvxwwguvxfvwgdwgvwxvwxwvwxxgfgvvwwwxwxgfxxxghwxwxwwgvvfxxwuwvwvwwwxxxvwwwvggegtuwwwwxhwuwwwwvwgwfwggfwwwEvvwxxfewggwgwuxvwgfhggwwwwwwgxhxgwwxwwgxwwgwwgvgfwwwvxwwvxwgwgwggwwwwggxxggghffuvwwwgxvxXhfwwwxwwvhfwWvfVWwvfwexxgwxgwwxwwwvwxwwgWffuvwgwwwvWhfgxwwwxuvhvwfvxwwvggwwgfvwvwwwwwwwfvgewwxwwvvwwwvwwuvvwvxwggfwgehwxgxwxwgfgwwfwgvwfgguvwwwfvwwggwwvwgwxwxguxggVvwwWwhwWuwxxfwuwxxwwvffgvfvuuwwxwgvxwxwwxXwwwwxWwfggvvgxgxwWvgwvwgwxwwwgVxfwvfvvgxxgxxwhwwwxuggvvfgfwvxwxwwvwvwgxwfwwxxwwvvgwwwwxhfwwxwhhxwxgxxxggxwgwuxwxWwewwgvwgGvwxwWwvwxwwvffwwwuefvwwwxxfvvwwwgwxhvwwxxwwwwgwgwUuvwwgfwwwwxwwxxxwgwxxhggfegwwGwwwgwvwgwxxwwwhxghhgwwuhwwvffgwwxwhwvvwxwvxxgxxhevwwgwwwgxxwxXgxwxhxwvwwffehggVwwWxxwwxwwvwxgxxwWxwgwhvgwxhVxxvxxgGwxfhvwxvgwvxgvvwgwwxgXvfwgxwxgWxgvvfvfvxwwwxhxxuxwfvwWgwwwwwwwwwxxwvxwxwxwxwfvwxwxwxwxxgwxhwxxxwwwxvxvxxgvfwwxwxwvxwwxxwxwxgwvxwXwwhxxgwxxwwwxxxxwvwfuuwvhghwxxxhwwwwxhxwxgwwxghgxxwxhXgwhwuwxdgfgewgWvwghwwwxgguwwxxhxxxfghwgxgwxwxgwxxxxwxhxwhxUvvwwWVvwgwhxxwxhwwxhxhhwxwwgwgwwwwhWggxxwxwWXwxwgwxgVvvwgggwhwxxwwwwwxxwxxhhxwxxwwwvwhgxwgxhWvwXwxggwgwgwwxgwxhvxwxxwxwxwxxhxvxgwwxxfwfwwwwvwwwwgvwvffwfwvvwwwwwwwwxwgwfwvxwwvwvwwwgefvvvggwgwwVewfvewfvuvfgfWwwwwvwwwwvgwwwevwwWgVgwfgwwhwfvvwvvvwwgwwwvVvfwvwgwwuxvgwxwwwwwwwwwwwxfvvwgWgwwwgxgxwvwvvgvgwwwwwwwvfvuwfwgWvwwwwhwvvwvwwvwwwgwwvWwwxwhuwxwgwwwwvwwvwwvwwwvwEvvVwvvVvugvwugvgwwwxwgwhwxwvevggggvgwWwwXgwwwwvwwwwxwvwwwgfwvvwwwwvfufwWGFwxwwggwwfwwwwvwggvgxxhfwxWGxwgvvgwwwvwwwxwwgffvwvwgWgwggwgxwwwwxwwxwxvxwgvwwgwvwxxwxvwwvwfggwxwhggvgwggwWWegwgwwgwwwwhwwxvwwwxxgehvwugggvfwgvwwwwgwwwVewfwvgwuwvgwgwwwwwxhvvxggfwvwgxhwwwvgfgwgfwvxgxwwfwvwfggGvwwxgwfwwwvwwhwwwvgwxxxxvxhhwxwwxvgwwwvwvwvgwwuwvwwhXVwwwxwhwvwxwgwxxxxwhgVvxgvvxvvwvvwwxhxwfwwfwWgewghwwxxxwgxvgvwxwvhwwgvweggvwwwwwwgwgwwwwUgvwvfvVgxwgwWxwwvxwwxxxxxwwxwfgfgwgwfwwgggwwwwwwgwggwwvxwWwggwvWHWVxgwfwxxwwwwwwwwvwwxwxwhhvXwggwfvWfwwxvgwwwxwwhwwVwggwHhfwgwwwwwwxwwwwxvwwxwvhgxXvgvgvwvxwwvgwvwwgvwxxwwhWgwvwwxwgwxxwvfwggwwvveuwwwgwxvwwwgwwwwxwfwwwxwxffxwgwwxwwfwgwgvxxxgwwxwwVxuwgxgwwwvfwwwwgxfwwwwwwfwfwxwwvgwxgvwhxhwgxxgxgwxvxgvxwwwwxgfVwwwxgwwwwggwvxwxwwwxwgfhwgxwxxxwxwfWwgwvxwwvwgwvhwxwxxwvwgwfhxwgxxwwxwwwxwxgxhwxxwwwgvhvwgwvwghwgwwgWwhwwwgwwxxwwwggwgxgwgxVwxwxwgwxgwxxxxwxgwwwwwfwgwgwgwxxxxwxgggwhgwvxwxghxghxxwwhhhhggwhhxxxwvggggxwwwwgwwwwwwgvwxwxVgwxwxwwhxxgxwgxxhgggvwwwgwwxwwwwwxwwgxwwhwwwwwwxuvwwwggwggwwwwwwhwwxxwwwxwwxwwgvwwxwwxgwggwwgwxxwxwwggwxxwhxwxggxwxwxvxwxxhwwffwgwvwwvxxggwwhxxgwxxggvvwwxxwxvxxxwhxgxxxxxwwwwwgwfxwwxxxgwfwwxwwwxwvwxfwuxwhwwwxxwwwwWwXwfwxwgwvwvwxxwxwwgwwwggfxxvwwwwwXxwwwwwwwwxwwxxxxxxwwwwwgWvvxgwwxxxVwwxwgwxvxxwxwxgwgxxwwwhhxxgxxxwxxwwxwxxgxvwwgwwxwxxwxhxwwwxghhxvwwxwxghwxwwxxxhxxxggwxxxxxwgVhfwwwwwxxxxggxxvxwxwxfwxwwxwgxxwxxwxwwwwgwwxvwvxgxvwwxfgxwxwxxxwxwwwWgfgwwxwxxwwwwwvgxwxvwxxwwxwwxxgxwxwwwwxwxwvxxwwxxwvwxwxwwgwghxxxwwxxxxxwvwwgwwwwxwxwwxxxxwxwwwwhwwxwxhxwwwxxwwwxwxvvwwxxwwwxwvxxwxwxwxgfwwwwfhxxxxxwxgwxwwvwwwwxwwwxgvxxwxxxwwvwxwwwxxwwxgwxxwxwwgwgwwgwxvhxgwxwgxwwxgxxxwwwwwgwwxxwxhwxxwgxwwwxwwxxwxxwwwgvxwwwwxwwwxxxwwxwxxwxxxxwxgwwgxxxwwxwwwxxxxxxxxxxxxwwwwwwxwxwxxxxxxxxwwwwwwwwxxwwxwxwxwwgfxwwwwwxgxhxxwwwwxxwwvwwwgwxxwxwxwwxwxxxwwwwwwwxwvxxwxxxwwxxxxvwxxwxxvxxxwwwxxxxwxxwgwxxxwwwwwgvhvwgwvxxwwwvwwxvwwxgvxwwgwxwwwxxgfxwwVwwfwuxvwgwwxvwwwhwxwgwggwvwwvgwxgwwwwhwxwxwxwwwxwwgwgvvhwgwwvxwvxxwwwwwxvxwgxvxwwwxxwxxxwgxwgwuwwvgwvfuwwvwxwwwwvwvwwwwgxwxxwxxvxwvwwfgwwggwgwvxgWwwwgwwvxxfwgwgxwhgwgwwhwwwvxwwxwwxxwhxwxwwvggvwggwwvwwwxggxxffgwwgwxggxghghxxhxxfxxxwwwggwwvvfwvwwvgwvvgxwfwwwwwwvwxwhwxwxwxwxxhwhwvwxxwvxggwxwfwxhwxggwwxxxwwhxvwwwxwwxwxwxxwxwvxwfVvwwggfhxgwwxgvwxhwvxwwwwvxxwwwxxxxwxxxwxxwwwfwwvwwuvwxwfvvhwwwgxwxggwwvwwwhgwvvxxxwwwxxwwwgwvgWvwwwwWgvgwxwwwxvwxgguwwxwxwxxxxxxxxwwxxwxxxhvufvvwxwgwwwwxxxwwxxwwwwhwgxwgwxwwxwwxxwvVwgfwgfgxwggvwxwwwxwhxwvxwxwxxwwwxxxgwwxwxwwwxxwvwwgwwwggxwwvwwxwwwwwwxhgxxwwwwXgwwwwxwwxxxxwhwxwxxwgwvwwwwgwwXwwwwwgvhwxwwxwwwhxwxwxxxwwwgvxgwwgxgwxwxwggewwwwwxwwwxwvvwwxwhwwxxxwxwxwfwgwxxwwgwWvfwVggvgwgwWwwgwxxwxgxxwxwwwwwwwwwwxfwfghvUwwgGghfwvwvwwvfwgwwxxgfwguwWfxwwxxxWguwggwgwxxxWxvwxfVwwWfwvgfggvggwwwwwwxhvWwwwwWwvxwxwxwwxeVgvfvghfwwxwwvwvwgwgfwwvwwwxwxhwwxxxxhgxwwwfwvwweVwwwWwwwfvfwgwfwgxgfxhggwXfWwvxxwwxwHwfggxfwwwxxwwhvggwfwwwwwxxXgfvfxhxgxwwwwhvwwgwxhxwwwwwwwwwwhxxhfwxwxxwhvggfwgwgfwwfgwwggwgWxwwxxwggghwwxxwwwwxxxgwxxfgvvwwwwXwxfvwwgwgwhXUwwhwvwxwwxhWwxxwvxxxgXwwvxgguvwfFwwwWfwuwwwfwWwgwwxxwwgvgvwxwwWwvxxxwxwxvggvvfghWvvgwxwxwwwvggggxwfwwwwhgwwxhgxxxgwgwwwWvxwwxwxgwvwvhhxxwwxwxwvwwwxwwwxxxhxwwxwxxwfvwxwgwxwvgwwwxwXfgwvwxxxhhxwxxxWwwgugVuwVwfvvxwffwXwVgwxxwxwxvwxwwwxwxxvxwwxxhWwwwgxfwwvwgwhhgwwwxwvvfxhHfwwWwwxwhXgxxwgwwwhhxWggvwWwxfgwvxwgwxwwwvxfwwwxXfxxgxwwwwxhhxwwxwxHxvxfgxwwxxxwvwwwxwxxxYwvwwxwgxwXwwxwhxwhwwxwxwwhwxxxWVxXgwvxxgxwxxwwxxwwwxwvhvgxgehxgwvwxhgwvwxxxwwxgwvfgwvvwxwxwwvXwwxxwxxxxwhfxxwwwxxxwffxwwxxwwfwgwxwgwhwhwvxxwxwfvwwwwxxgxxguxxxgwwwxwwxgxxwxwuxxWVhggwxggwvwxwxwxgggVwwvwvwxxxwggwwhwxxwgggwvwxwwxhgwvwxwghxxwvvwvWgxwxwwxgwwwxxwwxwxwgfwwxxwwwwWvwwwwwwgxxxwxxxxWxxwwvfwwWgxwxxwhwwwxxwxvxwXwxwwwxgxxwxwxhfxghxwwhhwuuwwxwwwgxxxxxvhxwwwxxhwghwwvwxwwxxgvxxxwwwwwwwwwggxvhgvvvxxhxwxwgxxxwxwwwgwwxwwxxwwxwvwwwxgwxxwxwxvwxgxxvwxxgwxwxxxxxgxvguuwxxwwvwgfxxxxhwwfwwxwxxwxvxwwhxxxvvwvwffwwxxxhwgxxwywxgxxxwxwggxxhwxxwwwxhwxxxwwvwgwhxwwwxwxxvxwwwwwhxxxxxxxxxxvggwvxxwgxwxwxwwwxxxxwvwwwwxwwwwwwwwwwwwwgwwwwwwwwwvfwwwVxwggfwfvwxwwwwwwwwwvvwgvvwwwwwwwwwwwvwwvfwfeTfvfutxfwgwVvuwvwgwugwgxwvvwwwwwgwwwvwwggwfwxgvwwgvUvwfvgwgVxgxxuwwgwwgwwfuvfvvwvxwwwwvvwwwgvwxwwwvfuhwwvwwhwwwvwwwffxgvgvgwwxfwxwvggwwwwfwwwxwggvfvwxwwVveuvwUuwwxgvEuvgwwgguwvgwhwwxwwwwwwvvwwxvgwwwwwffwwwxxwgvvvwwwwvfxwwwwwwugvwxwXVhgWVgwgwwgvwvwwwvvxxfuwgxwgwwwxgwvfvvwwwWwxwvwwwxgwwwwwgewwvvwwwwvvxxwwhwwvxwwwwfgwvxvvvxwgwxgfhgeWfgwwgvXffvwwwUwwwwwwfwwwwxwwwvwwwvwwxwvvwwxwgvevfvxvwVuxwwwwtwwvxwwvwwfgwwvwwwvvwwxwvgvwvwwwfvwwxuxwWgwxxwwxgvhxwguwwxgwfwxxvvwvwwvwwwxwfvxxwwxhwtwfxghgxgggvvxxgwwwwvgwwxvwgwwwwgwwxewuwfwxgwgheXvwwhwWffuwvVgwgvvwwfwxxffgvwwwgvxwvxwVvuvwvxuwwgvhxwwwwwwwWvxgwwVfwwgwvwwwvgvxwwhxwwwwwwwwxwvfwwwvvxwgwhWwwXhfGgwwxwwXfUfwwFfwwuwxwxxxxvwvvxwwwwwvwexxwgxhwxXwvWwxvwwwGufvgwVvxwwwwwwwgwxwvwfwwwwwgwfuwwwhhgVvgvwwwvvgwduvvwxgvfWwwwwwwvvgwvgvwxgwxxxwwwwWxxwwwwxgwWvwwwgwxxwgvvwvwgvwhegxdgweVwwvgguwwhgvwwWwgvhgwwggwgxwhfwxwwxwxXgvxwgggvguwwfFwwwwXgxxwwwwWwxwwWvvwwwwwxxwugVgvvhwwvxwguwWxgWewwwxxwVfvwwgwwwxwxxwwxwxgvfgvgwwwWvwWwuvxVWvfwwgguhwwvfwwFxwvxxwxwhwvfhxggwwwxvgfvgwwgxwwggwvgxxfgwhggwwwwxwwwwxxwxwwxWggxgwwwwxgfwfwwgwwwwwxvgfwwffwhgxxffwewxxwxxwxwwhwwhxwwwfvwgfwgxwfwvghgFwgVgwfuwxfxwxxwxwwwwwwwwwuhwuwgvfxhvguwxfVvwfgwwxxwwwwWwwwxwvgvwwxxwwwxxwxwvwfwwfwvwwwwwvvgwwgVwhvxxwggwvhwxwxwwwwwggxxgwxvgwwwvggwwwwxxfuxxwvwxwwxxvwwwxwwxwwxgwxgxwxxxwwvvvwwvwxwwvxwgghWgghhwwxwwwxgwxwhvwxwevevgvwwwxvfggwgfxwwxhgwvvxwxxxwxvxxwxwxgxxwwwwwwfwvwwwwwxwxgwwwWXXVwWghwwuhgxxxxxwwxwvgwhwvwgxffvwwwxxwwxwghgWhgWwwwxwxxxxwvgwgwvxwwxwvwwwwvxxwwxiwxuhgwgwwxxxwxwgwxwuxgvvhgwgxwwwvwvwwwhwwxxvwwvwvwxvwxvwwvxwwwxgfxgewwgxgwvwwwwwfgwwwxxxwxwgffwfwwwgwwwwwvwxgxxwwvxvwxvwxvwfxhwwwfxvxxxwggwghgwwwwwggxwwwwwgfwgwfgvvwxwgxgvwxvvwwxxwgwvwwwggxwxwwwwxwvwxvgwgvvuwwgvwxgvfgvwfwxxWwwwwgxwwfWfgwfwwxwvwwwvwxWwwxxwxxxwwfwgvegwwfwxwVhxwwvwwwXwgwxxwwffgwwwWwxwwxhWgwhwvxxhWxwvghwwgWvgwfwvwxxhwwwwxxggwwxxwwgwxwhxwxhvwvxwwwxxxwwwwwxfWwxwvvwwgwvxwfwxvgwwfxxwvxwwwxvxxwxvgxwwhvwwwxwvxgwfxwwvwwhwwgwwvwwwgfvWwvwwwxgvxwwwggwwxxwhvwgwfwevwwwwwxwwxwwwxwxxWwxwxxxwwxwwwxwwxxwwxwfwvwvwwxwghwvwwgvxgwwvvgwgwxghvwwgwxhgxxwwvwwxfgwwwwxwxxwxwvwwwxvwgwwxwwxwvwxwwhwwhwwwgfvVwffxyxgwvgwxvwxwxwwgwwxwwhxwxhgwwwgxwwwwwxwxvwfhwVXgxwxwwwxwgwxwwgwvxxxgwxwvxwwgwwwxwwxhxwgwgxxxvgxwvxxfhwxxxwggwwwgxwhvvwxwwgxwwxhvwxwxxhwwxwxxwxxwwwwwhWfwwxxwwvwxxfxwwxgxwxxwwwxvgvvwxWwwwxxwwwgxwwwxwxhfgwvwxxfwvxwwgwwhwVwwgvwwxfwwwgvwvhwwxVwxfvwxwwxugwwxxwwwwwgvwwxgwfwwvgvwxwgfwwfwwxwwwvwvwxwwwwwwwxwwwgwvxwwfwhwxxwvxwwwvvwxwxvfwxwgwxgxwwgVwwwwwfxxwhgwwwxgwfxwgwwxxxxhwwwWwwgxgxxxxwwgvxwwwwgguwxwXhvxhhwwxggwxwxwxwwgwxxwwxgwxwwwxxWvwxxxhwxxwvwgvwwwwxhxgwvwxwhwwxxwxgwwvxvxgxxxwwxwwwgxxwxxwwxwgxxgxvxggwvwguxwxgwwvvxgvxxwwwxvxggvwvwxgwwwwgxxwhgwwwwxhwxwgxwwgwxxhwwgwwxwwxgwvwxhgwwxxwxxwfwvwgwwwwxxggwxwwwwxwwxxwxwxxxwxxwgxxwgxWwwxxwxwxwwgvxxgwwwfvwxwxxwwwvwwxxwgxxxwwwwwwwwhhgwxwwxxwwwwhxxxxxxxwwwwxxhxwvwxwwwgwxxwxgxgxxxvxwgwhwxwhhxxxwvwwgwxVwxwwxxxwwxxwxwwxwxxxgwxfwwxwxwxxwwwwwxwvvxwxvxgwwxwWwhwxwgwwgwgxwxxwgxwwvxgwxvxxwxwxwxwhwxwwwxwwhfwwwwxwwwxwwxwxuxxwwxwwwwwxvxwwwwxxhxwwxhxxxxwxxwxwxxwgwwwhwwwWwwgvxwhxwxxxxwwxxxxxxvxgxxxxxgwgwgfwwwwxwwgvxXwwxwvvwxxxxvxgxxwwxxxwwxxwxwxxhxwwxxwvxwxxxhwxwfwwxwwwxwxxwuwwwwxxwxxxxwxwxwgxwwhwvvwwuwwwxwxxxwxvxxwxuwwxxxxxwxxhxwxxxxxvxwwwxxxxxyxxhxwxxwxwwwwxxxxxwvxgxxwxyxhxwxxxxwwvxgxxwxxxxwxwxvxxwxwxxwwwxwxwxxxxwxhxxwxxhwxvxwxwxxwxwvvxvxuxxwwxxxxwxxuwwxxxwxxwwwxwxxwxxwwxvxgxxwxwxxxxxxwxxwxxxvxgxwxwxxxwxxwxwxxuxwwxwwwwwwxxwwggwgwwwxfxvhxwwwwwwewguwwwgwxxggxwgwxwwxwvwxxxwxwwxxvwxxxvwvgvwwxwxwwwwwgwwwwvxwwxxWvwwxxwwxgwfwwvvwgwvvxwwgwfxxxwvwgxwvwwwwvxwxwxwxwxvwwwgvwwvwWwWvxwwwxxwwvxxwwvwwwvxxgxwvxxwgxxhxwffwfggvVggvgvwxwwgwxwxhgfwxxwvwwwwgwxwxxwxwwwxxxxwfwvwUfwvgwwxwwvvwxwwgwwwwxgvgxhxxwwwwwxxxUffvwevgwfvwwwwxwwxxvvwgwhwxWwwwxwvwxxvwwxxwxwxxwwwwgwvwwgVwxwvwwwwwxwwwwwxwxxwfVwwwfgvwwwhwwgwxvxvxxgwwxxwwxggwxwgffwwwggwwwvwwwxwxxywwwwwxwwvwwwwvwxvxvxxwxwwxguvwvgfwgwuvxxwwwhwxvxwxxwxgvxwvxwxwwxxwVVgwwfgugwxwwxxwwxwxxwgwvwwgwwwwwxxwwxwxgwhhxxwxgvwuwwxgxvWgwwWwgwwwxxxxwxwugwwwwwwwvwvxxwwwwxwwwwwxxxwvxwhvwwwwwwwwwwwwwwwxxxwxxxxwvwgvgvfwwxwVexwxxwfwwwxxxxwwxxxxgwvwwgvwgvwgwwxwwwwvxwwwwwxxgwffvwfgvwwwgxgwvwwvfxwxwwxwwxxwwxwvvvwwxwfhfxxwgwvxwggwwxgwxwwwwwwxxwxxxvfwvwxwgghfvxwggfgwvwxgwvwxwxhvhfgggxxhwfxxxxxyvwgwwfvwwxxxgfgwhwwwxwxvwxwxwxwxxxxVfewgwWvwfvfxwgwfwwwxwwwwgvwwxwwvwxhvvwwwxwwxwwwgxgvwxxwvwxxvwwwhxgwWwgwgxxwwxxwwvwwwwxxwwfwwwxwwxgxwwwwgwvvgvwwwxfvxwwwwwwwxxxxwwwwxxwgxxxxwwvxwwxvwxvxwwxxwxxxgvfwwwwwwwggvfwwvxwxwxwwxwxxxxxxxwfgVVgxwwwwxwfwvgwxwwxwwxhxvwxxwwxxxgwwxwwxwwwwxfwwxwvwxwwxwwwxwwhwxwxgwwxxwxxxwwxxxwwwwwwwwxwwwwwwwxwxwxxxwgwwwgwvwwwxwxhvggxwUvwxwwwwxgwxxxxwggxxwxxwwgxggfggvvfwvwwwwwwwxwgwxxxwwwwwwxwxxxxxxxxwhwwwwwxxwgwxvggwxxwxxwwwxwxxwwfwwvvwvwwvxgvxxwwwwwwwwwxxxwxxfgxvwwwwwwwvfwwwgggvwwxwfwwwwxwwwwwwwxxwwwxhwwxxxwxxxhxwxggffwvgDefggwvgwggvhwXgwvgwwwwfVVwxwwhxgwxxgwwxxwxxwwxxvwwwgwwwwwhxvwwwwwxxwwxxwxxwxwxxxwwwwxxxwxfVVwwgwwwwvwwwwvxxvwhwgwgxwxwxxwxghhxwxxvwwwwxhVewgwgxwUwvxwwwxxxxwwxxxwyxwxxggvvfwxvvwvwwxgwxxwxxwwxxwxxxwxwgvgwwwwwxgwxvwxxxwwxwxxxwxxxxwwwwxwwwwwhxxxxxxxxwwxxxxxxfxwvvfwfwwgvwwwfwwwwwgwwwxxxwwxwxxgxxxwxxxxxxwxDfewxwgxfwvwwxwxwgwvggxwxgxxgvxxwhwxxwwwxwwxwvvxxwvxxwxwxxxhwwxhxwhwxgxwxxxwwxwhxxwwwwxxgwwvwwwgxxxwxwxwxxwwhxxxxwwwewwwwwwwwwwwwwwwwxxvvwgxwwwwwwwwxgvwvwwfwxwfwxwffvwwwwwwxxvguvwvxxwwxwwxxfwvwgwvwwwvgvgwwwwguxwwwwxgwxwwwvwwwxvgfvwwvwwwwwwwwwwvfwwgvwwxxwwvwvvvxxvwwvwwwvxwwwvwwwwwxwwwxwwwWwwwwwwxxwfwgwwxxwfwfgwwwxvxxxxwUwvwwgwwwxwxwxgwgexwwwgwxwwffvegwewvxwxwvggwgwxxwxvfggwwwwfuvfwwwwxgxwvvwwxxwxwwxgwwwxwwwUVvvwvxxWwfwwffuWxwwvwwffvfwwuwwvwwwxxwfgxwuwwvwvvxwwwxxxwgwgxwwwvwWwwxxxwwwwwyxwwVwwwxwwwvwxxxxwwwwwxxxxxwwxwwwvxwxwxxxxvvwvfvwwxxxxxvwwwhwwwxxxxgwwvhwwxvxgwxxxwwxvwwwwwwwwxxwwwwwwvwvwwwwxvxwxwwvfvvwwwxwwwwfxwwgxwxXwvvwxwxxxwwxxvgWfwwhxxxwwxgwwxhwxwxxwvgwxWxvvwxxxxgwxvfxwfvwwgwwvxvvwwgfwvwwwwvwxwwxxhwxwwwwwvwwxgvwwvxwvwxwgwvxfwvwwwwxgwxwwwwwxxtfwvwfgugvwvgvffvwwwwxwVvwwwxwgwwwvvwwvwfwgwwwwwvwwxfugwwvfwgvvuvfwvVfvwvgwffuwwwwgfgVvfvuwwwwvwWwfgvwwwgxvgxgwfvwwfwvvvwgwvwwfVwwggfwvwwwuwvWvwgwvwwxgwvwwwwxwwxwwxwvfuvvwuwvwfwwwfwvVwvgwgvgwwgufwwwvwvgwwxwxwwwwvwwxwvxxwwuUvvgvwvwGUwfwwvfVgffvwggvggwgvwvgvfwwwgwfwwwwgwwwvxuwwwwgxwxwvgvwfwgfwwfwwwvWUtffhvvgvvfGhhvgvfguwwgwvgxggvwgfgxxXvxhGUwwwgvvggvwgguvwxxffvwwuwwgfxwwgwvwwwwwwwgwwwxwwWuwhwwvxwwhfufVgwwvfWwgwgvvgguwwfewwhwvwwwwvvwwfWfxxwvwwwWvxwxwwxwgvxvgewgewwwwvWffgwwgvvwwwxwwewwgvvwWvfwvxFuugxwvwwxwwwxwwvgfwfwwwfwfgwwxfvwgxgwVwwvhwgwvgwvwgwwwXwwxwxwhwxgxhwvxvgwwwvwxwfvvwvfwwwvgxwwgwwuhwwwfwwvwwgvhhxwhvwwwwwwvvfxwfvvvvvwwwwggwvwwfhwwvxggvwvwvvwxwwxwfwwxgxxvwwwgwxwffvwvvwgvwwvvwvfuwghgffwwwwxghuguvwwwwwwfgwwxwwwwgwwgwxwwwhwgVvfgwwwgwwwXwXgwWvgUwWhfwwwgXvgvwwvgwxVvxXXfWfwwwfwwwwwhwwwwwgvwwwvwggwgwvgwfgwwgxwwwgwvwwgvwwwwwfxvvxwwwvwwxwwgvwwxwwvgxgwwgxwwvgexvwfwwhwvwwxwvfghgwwfwvxgwxwxxuwwwgwgxwwwwgwvwvwgwwggVvvwgwwwwwvwvvxfwvwwwwwwxgwwwgwxVwvvhfvgvfegfvgwwVewwwgwvvwwwfgwwvvwgwgwvwvwwggxgwhwhwwwxvvvgwgggvwvwwewgVfwfwfvVwwwwwwwwwewvvwwwvwwvgwxwwvwxwxvffwvwgvfvwwwwvvvfghvwfwwghwxwgvwwvvxwwvwwwxwxwwwwhWwgfwvwwwwwfwwwwwvvhVfxwgwwVvWVwggwggwfwgwgwwwwgfwwwwxhwgxvwxwvggfwwWwwVgWVWwvWggfvxvWggwWgXfwhgwxwwwwwwewwghwwgwhwwhhghxexvwgwwwfwfwwwwwwwffgfgwwWfffwwVgefvgwfwxwwxgwwwwgwwwvxfWgfgwwfvffwffWVwgwWWgewwgfxfffgxwwfxvwwwwxxxxwwgwfwgwwwvwwwfvvxwgfwVfwvvwVvvwxxggwexxwwvwwvhxwxgwwwxhgwfevwgxgwvgxffwwxwwhwgvfxxwgxxvwwwxvwxwwvwhxhhwxWhwwwvwwxvwwggwwxwwffwwgwwgwwxgwgwvwwhwwxxwgwxwghxvwwwwwvvwwxwwwxwwwwgwwwvxWgghwwwwwwxwxxwwwgXwhwwffgwgfwfvwwgwwwvwgVfwvwgwgvwwgwwgfwwxwxwxgxwwwwwxwhwwxxwgxwVwwxgwvgfwwwwgwwwwWhhwvvgwhgwwwxwxxxgwvwgggwwwxwwhwxxhwfwwwwgwwgwwwwgwwfwwwwggvwwwwwwwxwvwwwwgwwwgxxxwvxwwvwwgwwwxgwghghvvxgwwwwwhwvhwwwwxwwwxfvwwvwgwwfwvwwwwgwwwxwwxwxxvwwwwwwwxwxwwwwwwhxgwwvwwvxwwvwwwwwwxwxwwwxwwvwgxwwwwwwxwxxxwxxvvwwvwffUfvwgwwgxwwwwwwwVVwvwwwwxwwwwxxxxwwxwwwVUwfgvxwxgxvxvwvwgwwwwwwgwfhvxxwxxxvxxwxxwxwwwwvwwwwwgxwwwwwwwwwwwwvvwxwvxgwgfvwxgwwxwwxvwvwxggwwxxxwxwwwwwwwwwwwwwwxwwwwxwwxwwxwhhvwwwwwxwwxwwwxwvwxwhwxwvxxvwfwgwwwwgvxwxwwvggwxwhfxxwxwwwwvxvxwxxxwwwwgwxwxxwwgwvvwwwvwwxwwxwwvwgxgvwhwvgxvwwwgwxxvwxwvvwwwwwgwwvwwvwwwwwgwgvwwwwxxxwwvwgwwvxxwwwvxxxxvwvwwwwwwxwwwwxwxwxwwwwxvxwxwwwxwvxfewfwwgwvwgxwwgVwexvvxwwxwvgvwwwxxwfwgfvwwxwwgwwxwwwxwwwwwwwwwwxxxgwfvfgwwwfvwvwwgwwxxxwwwxwwwwxxxwwwxxxwwwgwwwwwwwwwxwwvxhhvwhxxwwvxxwxxxxwxwhwxhwwxwxwxxVvuwwwxxwxxvvwwgwxhfwwxwwxxxxwxxwwgwwwgwwvwvxwwwwxxwvxvxwgxwwwvxxxvwwwwwwvwwuwwxgfwgxwwwwxwffwwwfgwwxgwwfwwwgxwfwwxwxfwxvuwvfwhfUwwwwUwgxwuwxwWwxxwwvxxxvwwwwxxxxxwwwgwvwwvgwWwgwfwwwwwwwwwwevgwwwwxxwwwwxwwwvwwgvwwxuwwfwvhwfwwxwwwwwwxwwgxwwxwwwwwwfwwWvfxwwfwwfwwxwwvwwwxhwvgwwwwxvxwwxxwwwwxxxwUvwwUwgwwgwwwwxvxVwwvhxvvgwxgvxwxwhwgwyxwgvwgwwugwwwvwwwvgvvwwwwwwwwwwwgwwwxxwwwxxxxwwwwwxwwwgxwwwvgvwwwgwxwwwwwwgwxxwgguxwwwxxgwwxgxxgffwwwwvwwWwwgvwxwwvxwwwwwvwxvxfwxxwwgvfvxWwvxxgxwwfwvhhwxwwwwfgwxxXwxxxxwxwwwwwwwwwwxwxwvvwwwwgwwwxwwwwxxwwhxwwwxxxxxxxwgwwwxxwgwvwhgxwxwxxwxwxwxxwwwvwwxgxfvwhxwwvwwwhwwwwwvgwxxwwwxxwhxxwxxxwwxxxvfVwhwxvwwXxhWvgwvwwhxwwWwwhwwwxwhxxxwxhvxwxxwhwwxxxxvwwvvwhwwwggwwwxwxxxwxxxwxxxwxfxxxwhwxwwwwgwwwwxxxgxxvwwwwwxvxxwwxxwwwgxxwwwwwvwxxxxwvwxwwwwwwxfxwxwwwwgwwwwwxgfwwgwugufwwwgwxwxxfwfxxwwgxxgxwwwwxwwwvfwwvgwwxwhwxwxwvxxxwvvwfxwgxwegugvwxwxwvxxxxwwwxgwwwwxwxxwwvvwvxxhwwxxwwwgwxxghgwwwwhwhxxwhgfwfggwfvfgxxwUfvgwhxgvwxvwfvxvxwxhwwwwxxxwwwwxwxghwfwxvvxhwvghwgxwxwwvwwwxwwwxxfffwwxwxxxxwwgfwwwgwvxwxwxwhwwwwwwgwwxxxxgvxxhwvwwUVwwxwxwxxwwfwxwwxxxwwwwwxvxwwvwxwvxfwxwxxxwxxxxwxyxxwxwwvxwxxwgxwwxwxxwwwwxxxxxwxwwwxxwwwvxxxxwhwxxwwvxwwwwvwvwwgwxgwwwxxhwwxwxwwwxxwxxxxxUffwxxxxwwwvwwgxxxxwwxwxxwxxxxwvvxxxwwwhxgxwxxwwwxwxxvwxwwwvwwwxxwxxwwxxwvxwxvvwwvgxxwvxwwwwxxwwxuwgwvwwwxwwwwvwwwwwxwxwwxwwwwwwwwxgfwggtwgwWxvwwxgwwxwwhwxfvvwwwwxwwxwfxxxxxvxvwwxgwwwxwwwwwfxwwWwwvwwwxxwhwwwwfgfwwwuwwxvwwggwwwxgwvxxxvvvuwxwxwvwwwxegggwwwxwwwggvwxwwwwwxxwxfgwfgwxxxxwwwxxxxffgwgwwvgwWwxxvwwgxwxxxxgwWwvvwgwwwxxwgwVxxxwxxwfwggugwwxwwwvwxwwuwwxwfvwgwwxxxgwXxxwxFgfgwgwxwwwgwFgxwwgwxwwwwwvvgwwxxwxwwwxwxwwwwwwfwwwguwvwxxwgwhgxwwvwvwwxwxxxxwgGwfwwgwwwwwwwxgwxxxvxxwvxxxvwxxwwxxvwgwwwwvwwwxwxxvwwwwxwwxwwxwxwxxwxwxxxxxxwwvwgwwwgwwxwxxxwwgwwwxwwwwvxxwwwvfvwgwvuwxwwwwwxvwxxxxwwwwvxwxwxxwxxxxfWGgvwwgxxwfxwwwgwxxwxwxxvwxwxgwxxxwwxwxxxxgwwwwxxgwxwxwxwxxwwxxxwwxgxwxwxwwwvwwwwwwwwwwgwxxwxwxxwxxxxwxxvxxxxuwfggwwwxggfwwwwwggwvwwxwwwvwwxwfvwwwwgvwwxhWwuwggfVfgufwfwwgfxwwfggwwxwgggwuvvwwwfwvwvfwwxwwwhwxxhwwfvvwuvvwwgvwfwvwvxwfwwfvwghvwwvvvwWwfwvwwxfvwxwXwwwgwggewfvewwvvwwwwxgvvxwvvwwwwxgghwvwvwwwwwwwwUwwwxwwwwvwwfvuwvwgvggwgwWgfWwvvwwwVvvwxgwgvgwwxfwgwwwvwwhwfvwgxwgfwwgxxgfgVgvWWwwwggwgggggwwwwxxxwXxhggwfvwgxvWgwvhxhvxwwhvwwwghvxwvwugfwvwfVvgwegvfwuvxwwfwwwwwwwvwvuwvwwggwwWxWwvvxfghvgwfxhwfffegVvxwgxwgwvxwvwgwfxwwxxwwwxwewwfVgwewwvwwwggwvvwxwwgvxgwfxgffwuwfWwwwwwvwxwwwwwwvvwvwwfwhwvvwgxvvwhgffffvuwvwfwfwwfwwwhwwgwgxwwwvwxwwwxwWxwwxxwWgvwxwwwVwwwuvwvwwvwwwvwwvxwvwwwwwxvwwwxwwwwxwvgwxwxxwxwwfwwwwwuwvwwggxwXwgwgwxwwggWgvwwwwxfxwgvxwwxxxwwwwwwwgwffvvvfvgwfwvfVvwxwggwfwhgggxwfvvwgvwgwgxhwwwvwxwgwwwwwxwvwwgvvwgwgvxwwhghgwwhghWgxgxwwwwxgwvxwwwwhxwxwhxxxxwwwxwxxgxvgvwvwxgvwvvxhwgwwwxvwwgwwxxwhwwxwfxxwxxwwwwfgvvvwwwxwwxwwggfwgwwxwwwgwwgvgwwxwwwvwvwwwwgwvxxwWgwwwggwgwggwwwwwgwvgvxwxwwwxwwfwxwgwxwwgvhvewWvfwfwvxgwVvwwxwwwfwgwxhwvfvwgwwvxwwxxwgxwxwxgwgwfgfwggwfwwwgwgwfxwggxwwwwwwwxfvwxxxwwxhfvgwvwfvwwwwwgwvwhwvgwxwvwwgwwwxhxxwxxwxwvfwxgwhwVvfwvgwvwwgwwwwfwvxvwvwgwwwwgvxxVgwwxwwxvxxxxxxgwfvfwwwwfwggwwwxgwxghXwVwxhWfgwwhxhxxghxwwhxhhvxhwxgwgfwfgvfgvwwVgwwxwwgwwwwvwwvwwxxwxxxxxxxhwxxxwgxwwwwgwxvwwfwhwfhxXgefwgwwffwwxxhxwxwwxwwgxhxwgwVwxvwWwgwgxwfwwhwvwwxgvwwwwwhwwwwwwfwwxgxxxXwgwfgvgvwwxwwwWwxwwXxwgwxxxxwwwxwxxwxxwvwxvwwwwwxfxvwwwxxwwwxxxwxwxxwwxwxwwxxxxwxxgwwwxwwvxwwwvxxxxgwxwvvwxxxxvxgvgwfvvwwwvwwwxwwwwwwxwwgxxxwwhwwwwwxwwxxwxxxwvwVwgxwXwwxwhwwhwgghXvwwwxgxxxhgwwwwxwgxhxxwgwwxfgwwwwwvwwwwwxxwxwwwxwxwxwxwxwxvxwxxwxxvwwvvxgwhwgwwwgwxxxxxgwVvwxuwwwwgfwwxwxwwwvwwwwxwgwwvfgvwwfwvvxwwwwwwfwwwwwwwwxwwwgfewwgVwwvxxgvvwwwvxwxwvfwfvvwwwgwxwwwwwvxgxxxxvgfffvwwvwwgwwgvwwvuvhxwvxvvvvwwgwvwwwwwxxwxhgwwwwfwfvvgwvwwwwwxxxwWwxxxxxwwwwfgvwgvwwgwwwwwfwxxwwwwwwgffwwvwwwwwwfwwwvvxgvwwgwwwwwVvfggxgwwwwwgwxwwxwwwwxwwwwgfwwwvwvwwwhwggwvxwwwhxwwfvvwWggvwhwhvwwgxWgwxxxwxxwvwgfVfvgvwxxfuvgwggvwwxxxwwgwxfwwwwwxwxwvhgvwwwwvfwvwgwwvxxwwwwgwxwxgxffggxwwgwvwxfwvvghuwwwxwvwwgvwwwxgwvwwgwwwwwwwwgwgwvxwwxxfwgwvwgwxxhxwwwghwhxxgvfvwwwvvfwxwwvgwwxxgvwwwxxWwxxwxxxhxxhxxvwwvvwwwwwwwgwvwgvxvwxwxwvwwgfwvfxwwhxwwgwgwwxxgxwwwwvvgwvxwxwxwwxwuwwwwwwxxwwwwwwxwwxvvewffwggxwwwwgxxwhxxvgvwwwwwwwwxxwxwxwwxxxevgghgwgxwhgwwxwgxxhwhxwxwwhwXwghvxhvxxxXhgxxxxwxgfxwvxxwxvfwvhwwvwwxvxwwwwwhwwxxxwwxxwxwwwwwvwwxxvxwxgxfwvwwgxwwwgwwwwvxwxxwxxwvwwwwwwwwwvwwwwxwwwvwvvwwwwvvxuvwwgvwfwwwvvvvwwxwwwwwwwvvwwvvgggxwwgwgwvwwwvgwwwgfwevgwwwwwvwgwwwwxwwwwfegvevwWffwvwevwvwggvTvvegexvwguwvgwfwvfwfudfuwwwVvuwgwwwwvwwwefuuugwvwxwwvvxwwggvvwvfvgwwwwwwwwvwwwgwvwwggwwxwwgvffwwwwwgwfwwwfwvxfxwWfvwvwwfwgggwwwwwwwwwwwwxwvggwwgvvgwwwgxwwwwvgvwwvwwwvwwwwhwggwvwwwwwwfweuvweuwxVduwugvwwwwwwwweuvwxdxwgxxwvvwwwgvwwvwvgwwvvwwwwwwwgvwvwgxWhuwwguheexvvhfvxgxfWffuwwvhffugvVtVxwwwwfwwwwvwvxwvggwwvwvvwwwwwxvwwvvxvwgfwwvwwuwxwwxwwwwwfvwwwwwwwwwwxwwhxxvxwwwwwwxxxwwxxwwgwwwwxwwTvweuwWeuuvwvuwwgggVewwgxxhWfuwXhXfwhWvwwwfuvvwvvwwxwwgvwwwwwwvgggwvgwgwwgwxwhhwgwwxWfggwxgwwwvvwwwfwwwfxwwfvgvwwwfwwgwvgfwwxwvwwwwwwgwwwxggwwxgwwwwgwvhwxwwwwxwwwgxwwxxwxgwwwxgwhgwxgWwwhghwfwxgwWvvwevxugwgdwwwxwguwvgwVhewwxgfwwuwwgxhvwgxfgwwwwwwwwwxxgwxwvwhwxwwgwWwwgwvwvvgguVwhxwgvgwhwfggWefeggwvwggwvwwwwggvwwvgwvgvfwwxfwwwWgwwwwwgwgffwwwwvgwwxxfffwwVEwggfgwwvwgfwwwweufgxwwhfFfGvvwvwwwwxxfWfwWxwWwwxxxxgwwwfgfwwfwfgffgwwwwwwwwxxgwgwVwwwwwwxgwwxwxvxvxwgVewWwwwwvwwhfffggwwWxwwwwvwgwwgvwxwwwvwwxvwwxwxxwwxxvwwwwufwwwgfwgwwwfvwxh6EghxgffvwuwvwWggwgwvwfvwwvwvxfwWfgvfgvwwwggxwwVeggwggwwfwvwvgwfggwwhxfvhWXweewWfvWgwwhwhhwwwe7h8VwwhwhgwwfggvgwwxwwxvwfvgvxwvfwwwwwvwgVwxwggvvwhwxxwvvgwxgwxgwgwwffwggwgggxwwwwwwwgvHWGfwuvwwggwvwwhwwfxhxgxgwgwvwwhvwxgwvwvggwwwVwfwvgvwfwfWUwfwvggxhwfewVvevwwxwwwfvwgwxfwxxggVxWgwwwwvwgwgghvGxxhxwfwgxwxxWwxgwwwxgwxggwwxwhgwgwwWwxwwwwwwxhgwvwwwwwwwuxwwwgwwxxvwwwxgwfxwvxwwxxxgvwgfvwwwxwwwwwwwwwwwxwgxwxwxxvwwwwxwwxgwwxxxxwxwxxwwhWgvwgvwwgwvwvxWfvfggufwwxwwxxwffwwgxgwwwwwxxgwhhgxgxgvwfwfgvggwxxwhgwhfgGHXVxhhghwwWwwfwhgvwgxwwffwffgghggvXwgvwxVvwwhwwvxwwwwugwwgvwggwwwggwwxwvwwwwgxwvxxxxwwxgwwxwxgvvxxwxwwwwwwwwwhxwwhXwvgwxvwwgwvfwwgwwwwwwwgwgwvxgwtwwwewgwvgwfwwvgwvwwwwxwwxwxfwwwwgvvwvvwgfwvxwxwwwxxxevwwgVuwvgVWvwvwfwvwwwfwwwxwwfwvwUgvwvwgxwgufwhwwxxxxwvwwvfwvwvgwwwvvxwgvfuwwfvwwwwwfxvwwgwwhwxhxxwguvgfggwfwwhfvvxwwvwwwgwxwfwfwwxwwwwgxxwwxvhxvxxwwwvdfwWgvwgxvwwgwWvvwvwwvffwxwgvwwGUwvwfwgfvwwwgvwwvvgwhwwgwwhwwgvwdufggwgwgwfhwwWwwgwWvwwhxxhgwwgwfwvHwxvxhGVgwvhwhhwxhgwwwwwffwfgvwwgxgvwvwwfvwvwwwwxxxvvwwwwwwgwwwxwvwhgwwwwhxuvfgwwgwwxwvggWvwwWxvgwwvvwvwwXwhvvgWewwwwvwxwxggxxwwxwxwwvgvwexwUdwwWfwvgwwvvxwwwgevwwvguhxxwwwwxwwxxxxfwfwvwwgwwwhwgxgwwgwxxwgwWwwgwXwwWxxwwwwxfhwxwwxwwwwvwwxwgvwhvwwwwwwhxxxgwwvvWwwwwwwwwwvwhwwxwwwwvwvwfwvwwxxxxwwwxwxgvxwwxvwxwxxwwwfxwwxwwgxfwvuvfvfvfwwwwffxXwwwwhxwxxwfwvwwxwxwwvwxxxwgwwXxvxwhwegUwGwvVwxhxxwwgwxhhvxxggxwwwwwwXvwxwXWfhwwvwhhvXwggwwgwwvgwvwwxwwwwwwwfwxwwwwvxwxwxwwwwwwwxwwxwwwvwxhwxxvggvwwxxwxwwwgwwvwgwgwwhwxwxhwggwwgxhwxwwvufgvwwwwwwwwgwvwwwwwvggwwwwvwwwwggfwwwwvwxxGvwwuwfvwwwxggfggxfwvuwwwwgewwwwvwwgwxwwwwwwwxwwwwxwevvwvwfwwwvvwvwvwwwvwwwxwwgvwewwwgwuwwhxWvvvwxuxwwwwwfuwfwuvwwwwgwvwgwwwwwgwwvfvvwwgwfwxwxwwvwgvvwwwUvvgvwgwwwwwfgwwwwwwwwxwwgfgwwwwwwwwgwVgxwwwwhwwwwwhfwwwgwfgwwwfwFgwwwwgwwWvwxwvwwwxwhxwgxxwwwwgxxhwxhvxxvuwwvvwgwvwwwvggvwwwvvwwxwwwwwfvfgwwvwWvwwwUgggwvwwWwvvwwfggwvwggwwfwwxveggwwwhwwwgWwxwxvhxwgwuwwvwxwwwfwvwwwwwxwhwfwvwwwwvwwwwgwwwgxvxgewwvvwxxxWwvwwxwwxwhwwffgxwwwhwwWwvwgwwwxxxfvgwgwgwwhhwvwhvwhhxxwwwwwvwwwwwxvwfvxwgxgwwgxxvvvwwwwwwwwwxhvwwxwwxwwxwvwwfwvxfwwwwwwgwwwwwwwwxxwwwgfgvxuwwxgwvwwvwwwvgfgvvwfwwwVwwgwxwggxwvwfwvwwxxwxwhxxwgwvgwxwwxxwwfwfxwwxWgxxgxvgwwggwxxwxxwhwxxvxxwxwwXwxhxxxwxwvwwwwwwwxxxfvxgfwxwxxxwvwwwwwwxwwxwvwwwxxwxvwwwxgxgvwwwxvwwxwwvxxvwwvxwuwuxxwwwwuhwwwgxwfwwwwhxxwgvxwwwwwwhwvwxxwwgwwwgwwvxvxwwghwvfwwwvxvwxwwgwvwwxwxwwvwwxwwgwwwxwxwwfwhwwwwxhwxxwWxwxuwvwxwuvwggwgxvxwwwxvxwwwhwxwwwwwxxwwxwxgxwWwxxwwwvwggwvwffxewwwfxvwvwwfwwwwxwwwvwfwfwwvxxhgwwgxwwwxgvxgwwwwwvfwwxwwwxvwvwwwwwhwwfuvgxwwgxwxxxwwwxxwxwwwvwxwwxwwggxwxwxwgwwxhwwggwwwwvxwwxxxxxhvxxhxxggxxxwxwwuxwwgwfxvxwgvvgfgfvuxwgwvwwwvwwwwwwwgvvwwwxwxxxwxgvhvgwxuwgwxgwxwwfxgghxfwghvvwgvwxwXwxwwwwggwwwwxwxwwwxfxwxvwuwwxwfwfxfxwxwwwvhxvwvxwvvxwvwxxxwxhxwgxggwwwwwvxxxvxwhwwhxgwwwxxxwwwxgwxxwxxxwxxwvwxfwwxvwwwwvwvwxgwwgwxgwwhgwhxgwxhxxwwxwwvxwhvwwwvxxxxxgwwwxvfwhhwfvgwxxwvwgwwwwwvwwwwgwvwgWwwxwgwgwwwhwxxwwxxxvwwgxxwvxxxwxxxxxxwgwwwwvxwgwwwwhwhwwxxxwxXxwgwxxwxwxhxxwWwwwxhwxwwwxxwwuwwwvgxhxvwvxwwxxgwwwwgwvwwwwwwhwwwxxfvxwwwxwxwxwwxuxvvwxhxhwwwwxxxxwwwxvvwxwwwwwwwwwwgvwwwwwgxwwvwhwwvfwwxxwvwvwwxxxwxwwwevwfwfwgxxwwxwwxxgwwwfvvwwwwwxvwxxwxwwxwwvwxwwxwwvvxxxwwwwwwwxwxxwxxvwxwwfvfvwvwwvxvfwxwxwwwwwxwxxwxwxwwvgwgwfgvwwwwwwgwwwwxwxxgxwwvfvvfvwwxxfvggxxwxxxgvUwUvffwvggxwvwfggwwgxxxxvuweVgwevwgvhvhvhwwxxxxxxwvwgfwfWxwhxxvvwxwgxxwwwfwhwhvwxxwxxgwwegefwwegxwxwwwwxwxwxwxwxwxvxvwuwwvwwxgxxvwwwguxweUvwxwwwxxwvwwgxxxwwfwxxxxxwwfwvfgwwwgxxxwvwwxxxxxxwxxxhwwvvwvhwwxxwxwwwxxwxwwwwxxxxwwwwwwwxxwxxwxuwvwfvvwwwwxwgxwfxwwxxwxwwwxxxwxwwgwxxxxwUvfffgfgwhwvxxwwxxwwxwxvvggwwxxgvwxxwxwxxxvwvxvwwwxwwxxxxxxwxxwwxxxwwwxxxwwvwgwfvwwwwwwwwwfwwwxwuwwWwgvwwwwffwwWvgwwxfvwvfwwwwwxvvvuwwvwwfwwgwvwVvgwgwewfUuvfgfvwgVwvwWuwgwwfwgfwtvUvvwwxxxfwfgxwvwxwwwwfgugwwfwxvwfvughwwgvwwvxwwwwvxvgvxxwxwxxwvgdwuwUvwwvgwwwfwvxwwvfwgwwvwvwgwwwwxxxwxwxwufvvgGTvggvvvvfgggewwxWwvwvwwgWgvugwvuwgwwwuwfwwwwgvwfwwgwvgVexvwWveuggwgvHwWwwvgvwggXGFgfwxvugwwwgvxwvvfgWhhfxxhghwgwvwvfvfwgwvxwvwwwfwgwVwwfvwxwwwvxgxvwwvxwxwvxvvwxhwwxxwvvfgwwuWvwvwwwguwvvggXVxwvgwwwgxfwvvvwgwfxXwwgwwxwvwwwwvxwxvgvfdvggfwuvfgvvffwVvuwwwvgvwwxgxwxwxxwvwwxxwwxxwfefvVwfwvwfxwggxfwxgwWwwhxwhwvxwwgwxwwwgwxwwwhhwwxwgwwvwwvfwuwwwwgxvvfwwwxvxxxwgxwxgwwvvwxwwxwxwxwxwwwwxxuvwwxwvwwxwwvxxwxfwxxwwwwwwxxwwwxwwxwxwwxxwwwxfwuvWvfwfvvvvgwfvgvggvgwwwwwxgwgwwwgwwwhwvvwhhhwwxWwxwfwfwhwfWWwwfwwgwfwvWXHewxgwXxgwxxhXvvgxwHXwggwhvvhwgvwxfvvwwxwwwwwvwgwvwwgwwwwwxvwwwwwwxwwxwwwwwwwwvxgvwwwxvwwvvgXwwwgWgfwvxgwwwwxWhwwwwwgwwxuwxwwwxwwwvwwwxwvxhwwwvwwxwwwvfxwwwwgwwwwwwxwxxvggexwfwfvfwwwvwwfxwwgvwvwhwwwfwfgvwvwvwxwwvxxwxwwvwgvwfVwwwvxweFwwwgwfuwxwxwwfwvwxxvwvhxwxweFgwvwewuwggwxwwgwvwxwwfvvexxwvwvxxwwwxwxxwwgwgwggwfwufwwggwwhwwwwxvhwvfwgwfwvwxwxfvvwwxwxwwxxwhwvwwhwwwvwwgwxwggxwhghxwegfvwwwwgwwfxgwwwgxhxvwwwwxwwvvVgewfwvwvxwwgwvwwxwwxwwwwvfffgxwwwwexwwgwwwwwwwvffwwggvvxgwvewwgwxxwvwwvwwvewwwwwvvvxywwwwwggwfxgvwwwfwxwvWvwwwfwxwwfwxxgwfwxwxhwwwwwwxxgwxwwwxxwwgvwfwwgwxwwwwwxwhxwxwxfwwxwxxxwxwwxxvwxxwxgedwvwxwwVuwwwwvxwxvxwwwxwwxwwxvwhwxwwxwwxVvxwxgvwxwwwwwgwwvwwxwxxwxxvvvWvgwfwVwvvhwfvwwwgxwwwwxwwfwvwwwwxxwwwgxxxwgxwgwgwxwwwgwgxgwwwgwxxhwgwwwxxwwwfwwwgwxxwhvwwxgvhxwxxxwUvdwwxvxvxwwwghwwwxvxvhxwxwwwwwwwwxwgxwxuxvxwwwwvwvwgwwwxwwvwfuwwwxxxewwxfvuvwgwwgwvwgvwwwwwwwxwxwwwWgvwxwvwwwwwgwfuwwxwWvvwfdwfwvwwwvwxvvwxwvgwxxwwWVgfwwfuvgxgxvvwwwgwgwxxxwwvwgvgVegwwwvwvxfvvgwfvvvugwwvwgwuwwwwxvvxhwwwxwggfffwuwwvuwwfwwwgvxgwfwxwwxwvvvxvwhxxwxggxhwwxwgwwxwwwffwwfvwggvgvwwwffwgwxvwwfwwwvwwwvwggFffvwxwwfwwvgwwWvwxwhwwwwfwgwgvwwvwwwxgwgwxwgwvgxxwggFghvgfxxwxxxwgwgFxheffwwxgvwvwwwgwWgwwxxwwvvgvGwvxewwwwwwwfWwggwwwwfgvGvfwwwxwwwwgWfwwvgwxwwxvwwwfVhgtwwwgwwwvvWggwhfwxwwgwxwwggGhwgwxwwwwfxwfUvwgwwwvwuffwwvvxvfwuxwxfvxwwhwxxXvgefwuwfvwwwxwwwwwwxxgxhxgfvwgwvgxwhwvwxwwwwgwfvwvwwwwxvwwwwwfxwwwwgugwwhwgxwxgxwwwxhgwwwxvvwwwgwwgggwxwxvgvwwwxwhhvhxxwwwxwxwxwvgvUewfvgvwwxwwuwfwwwwWwwwgffwwwwwwxxxxxgwxvwhwwgxwvgwfwwwWxxwggwwgwxxwwxwxxwwwgvwgwvwWvwxvwwwxwxwwwxxwwwwwgwwwwwwxxwfvxwxwwfhgwxwwgvwwwxwxwwwwwxwgvwwhwwvwwhuwxwwxwxfwwwvxvgwwwwvwwgwxwvwvwwwxvwxvgwxxwwwwwwvwwgwwwgwwwwwwvwwvwvgvwwwwwwwwxvvwvwvGuwvfwgwwweVwwwvwuwwxwggufvvwvxwwwwwfvwwwwgwwxxwvwwxwwfvxvvvvvwwwewwvvwxxgwvvgxxvwfwxwxwwxgfegwufvwggvuvwvfVwxwwvuvwvwwgxwwvwwwwvwwwwwfwwgwwwgwvwwvGewxwwwgwwwvwgwvvvvwvvvxwxgwvwxwwgwxwwxgwfvwwwgwwXfwvwwgxwWxgvvwvwgvgfxxwxxwgwvgxXehxwxhwgfvgvvwvvvwwgvuwwvvwwgwfgfuwxxwfwwwwwxxxwwvwwwvgwwxwxvwvwVwgWtwwwgxwvwxwvwwwwxwxgwwvwxwgwwwxxwwvwwvgxxwgwVvxwfvwwxxxwwwwwgwhwvwwwvxxxwwggVvwffwvfvvgxwGxwwwwwxwwxwvwwgwwwwwxwwgwwwxwgwvwwxwwwvxwwxgxwgvhgvwxwxxxggvwwwwxwwwvwwgwvxwwwvxwwwwwxxvwwwwxfwwxxvfgwvwwvwfwvfwwgwxwvwwwhxxwwgwwwgwwwfwggxwwWwxxxwwwwgGxhexhhwxwwwxwwwgxxwxggggwhwwxwgfvxwwwwxwxwwvxwwwgwwvxwwxxxxwxwxfwwwwwxwxwwwxwwxgxgwxwhxhgxwwwwwxvwwwxwfwwwuxwwgwwwwwgwwwfWwxwwwxwwwwvwvwvxgxxxgxvwwwvxhgwWgwhwgvwwwgwwgwxwwxxwgwxggxwwvwufwwwuvwuwwwwwwwgxwxwwghwwxwgfwhwwwxwWwwwwwxwxxwwvxvwxvxxwvwxvxwxwhwwvghwwwuwwvwwwwwxwwwfxwxxwwwvwwvxwwwwwwwxwxwwwwxwwwxwxwgxwwwwwwwwgwxwxvgwvwwxfxvvvgwgfvwwwfwwxuhwWwwwhwgxvwxxwxxxwxwwvwwwwgwwwfwgxxgwxxwwhwxwxggwwwwwwggwhwWggwgwwgxwXwwxwWxwgwvxgwvwwgwwwxgwwvvwwwggwwxxwwWwxgxwvwvvwwwvxwwwgxwwwwvXwwwxwgvwxgwxxwfwwwgxwWwwgxwgvxwwwwvwguwwhwwxwwghvvwwwuxwwwwwwwwwxhuvwwwwwwvwxxxwxvwwvwwwxwxxgwwxwxgwxwxwwwxwgwhgwwwxwggxwvxxwxwwwxwwxwxwwwwxwxwxhwxwwwwwxwvwxwxwwxfuwxwxvWxwggwfgwwwwwxwxxwWwwvwwwguvwwwxwwwwxwxxwWwwxxwgwwwxwxxwwwxwwwWwwwwwwwwwvwvxWxwwfwwvvgwwxwxwxwxvxgxxxwwxxxwwxwxhgwwxxwgxxwgwwvfwgwxxwhwwwxxhgxxxxwxwxwxWwxxhhXhwwxwwhwgwxwwxxwwuxwxwwwuwxwwwxfwwwwxuxwWwwwwxxwvxxwxvwwwxwxhwwxxwxwwwwgxxwgwwwwwwgwwfxgWvwwgxwwwwxwwxwwwwhvgxwfxxwwvxwwwxxwvwwevwwwvwwfvxwxXwwxwxwwxwwfwwxwxvwvwwwwxxxwxwxwxwxwxwxwfwwwwxgwvwwxwwxwvxxwwxwwwexwwxwwvwwwwxvwvwxwxxxvxxgxxxwgwwwWxwwwwwwgwwwwwwwxxxwwwvwwvxwxxfwwwwwwwxwwWwfwwwwwUggfwvvgxxgxxwwxxTuefxwwwxwgwvwwxwxxvxwwvwwwwwvxwwxxxxgwwhxwxxxvxgxxwwxxUgffxwwwxxgxxvwxxwwwxxvwwwwwxxwwvxwxxwhvwwhxwwwwVvwwxxxffxxxxxxwwwgwwwwxxgwwwxwwvwxwxwwuwxxxgwwxwhxwwwxxwwxwxwwwxxxwwxwwwwxxgxwwwwxwwwxwwxvwwgvwvxwxxwfvwwwxvwxxwwwxuxwxwwvwxxEuefwwxxxwxgwxgxxxxuxwwxxxwxxxwxxwxwwxwwxxxxxxwwxxwxwwwwwwxxxxwwxxwwxwwwxwwwxwwwxwwwxxwwgwwwgwgwwwwwwwwvhwwwwxfwwxwwvvxwwwwxwxwxwVwwvfwwxvwgvwgvwvgwwxwxwxwhwxgwvwxfwwwgwwxvwwhwxwWwvgvfwvwwgwwwwvxwwwwwwgwxvwxgxwwxwxwxwxwvxuwwgvhwxxwwvxwxwwewwwwwwfxfvwxxvwvwwwwvvwUxvxwwvxwwwwgwwwwwvxwwVvwvwwgwgwvxwwvwgwwwvwwwwgwwwwgvvgxhgxwwhxxwwwfwwwwxxxwgwwwgxwVwxfgffwwgvwggwxxwvwxwWxhVwxxgwwgwfvwwwwvwvvuuwwfxwxwvwgwxwwwwgvxwwxhvgwWvhwwgxvvvgxgxhwvwgfxxfgwwwxxwvxwwxwuwfwwwwxwwwwvwfgvwwxwwgwxwxwvgvxwvwwwxwwwwgwwwwwwgwwhwxfwwwvxvwwwwxwxwghwwgwxwxxvwxwxwwgxwxxwhwxwhvwwwwwwfwvwwvvwgwxgxwgwwwvxwwwwgwhxxxvwxwwwxhhwwWxggxfwgxwxfxwwxgwxwwvwwggwxxwwwgvxwwxwwgwwfxvwggwwwwxxxwwwxxwwhuwwwwwwwxwwxwgwgxwwgwxwxwxwgfwxggwhxwywwwwxwxwxxxwwwwvxgxgwwwgwvxwwxxhwfxgwvwwgxvhxgxvwhwxvwxwxxwwwxggwvwwwwwxxvwxwwvvwgwgwhwwwwwwwwvwwwxwwhxfwvwwwwwvwgxgggwwwwwwwwwvwxwxwwxwwwwwwwxwxgwgxxgxgghvxwgvwwwwwwwwwwwwxxgwwwxwxwvwwxxwgwxwvwxxwgwgvwwgwwxxvxwwwxvwxxwxxgxwwxwxvxwxxwwwwwwgvwwfvwxwwwvwwwwwwxxxwwwwwwwwwwwwgwgvgxxxwvgwwwwxxwwwwxwxgxwwwwwxgwwxvxxxwwwwwwwwxxwwfwvgwxxhwggxxhgvxgwhwwwxgxgggwgwxyxwxwgwxwvwxwwwvvwwwwhwggwwhwwwwwwxwwvvwwvxxxwxhggxxvgvwxwwxxgxwwxwwxxwwxxhgwhwwwvwwwxwgxvwgwxxwvhxwwwwwxwwwxwxvwvwwxvxgwwwwwwwwwxwwwxgwxxwxwxwwwwxwwxxwxgxhwwwxxwwwxwxxxwxwxxwwwwvwwxwwwwwwxgwwvvgxvwwxwxxxxxxhxwxwgvwwwxxxgwwwxggwwgwxxxxwxxxxwwxwxwxwgwxwwxwwxgwgwvxxxxxwvgxxxxxxxxwxwwwwwgwgxwwxwxxxgwwxxyxwwxhghxwxwxxhxxwxwxgwwxxvwvxwwvxxwgwgxxwwwxwxxwwxwwxwgwxwxxxwwxxwwxxwwxwvgvwwxwxwwwgvwwwwxwuwfxgwvwwvewgwVwxwwhxvxfwwwxwgxvwxxxvwxxwwwwwwegwfwwvwhwgwwvwgwvgxxxgVwxxxxxxxwfwwfVvVwwxwwwwwwwxwwwxxwvxWvVwvgfwxxxwxxwxwfxwwwxxwvvwwgvgvvwVgvwwggwgvwhwwwwwfgwxwwxwwxwggwxwwwgwwgvvfgwxwwxwwxwwgwXgwwwxxxyxwwwvvvfWgvvwwfwwwxxxwwxwxwxxgxxwwwgwgxwwxxxxxxxgwxwxxxxgvuwwffwWvVvwwgwvgvxwwvvvwwvxxwwwxwwwwxwxWvVwvwwwfwwxwwxgxwwwxxxxxxgwfvvvwfwwxwwwwwwxvfxvwgwxwvVvwvxxwxwxxxwwxgevvfvvwVvwwvxwwvwwwwxfwxwvxvwwwgxvxgxwxxxxxevvxwwwvxwxwxwwxxxggwwwxxxxwfvvfxvwwgwxwxwwwwxxwwwwxxxwxxxwwxxvwxwwwwwwwwgwvwwxwgwwwwwvwwwwwxxxxwwwwwwwwwgvwwwwwxggwvxwwwxwxwxxwwxwwwwwwwvwwvvwwxxwxxwwwwwwxwwwwwwxxxxwwwwwgvwgvwwwgfwwxvgwvwxxwwxxxxwxwgwwxwwwwwwwvxwwwxwxwxxwwxxxxwxxxwwwwxwwxwxwxwxwxxwwwxxxwxgwwwwxwxwwwwxwwxxwwwvwgwvwfwwvwwwwwvwwxwwwwwwwwwwwxxwwwwwxwwwwwwwwwxxwxxwwwwxwwwwfwxwxxwxwwwxxxwwwxwxxxxxxxwwwxxxwvwfvwwvwwwwwxvvwxgwwwwwxwxxxxwxwxxwxxxgwvwwwwwwwwxxwwwxwwwxxxxxxwwxwwgxvwxwxxwwxxxxxxxwxxxwxxtwghgwwwfwfvvvwxwgvWwwxxvwhwhwfggxxwwwvwwggwwwfgvggwgwwhgvgwhxwwWgwwfgvwhxwxxwwwwfwfwwguFwwxgxwwwwwwwwwxguFwxvwwwxwxvhwhwwwwxxwwxxxxgwwwwwvwggwwwwvgwwwhwggvgwgwwwgxwwwxxwxhvvxhwwwwxwwggwwgwwwvggwfwgghxxxwwvwxwwhxhgwxwxwwxwwyxwxvgvfwwvgwwxwvfvwWwwwwwwwwwxuxwxxvxxwvvhwvWwvgxxxwwwwxxhwvwwwwhxwwwxwwwwfwwwgwgeFwwwvvxwwxxxxwwxwwwwxwxxguFwwvwvvwvgwwhxxxxwwxwxwxxwgwgfwxwwghvwvwxwgwwwxwwxwwwwwxxwxwxwgwwvwwxwwxxxxxwwxxxxxvffwvvvwuvwgvvgwvWvwwgwwwvwwwxwxxwwxwxxgxxwwxxvwvgwvWwxwgxwwvxwwxxwxwxwwwxxwwwwvwwvvxwgvwwxxxxwwwxxxxwxwxxwxxwwxxwvwwxxxxxxxxwxhwwwwwxwwwwvwwwgwwvggwvwvvvxfwvwwwwuwwwfwgwwvwwvwwvwvvwwxwwvvgwwfwuxwxwwwvwxwwwxwvwwvwuwwwhvwgwuwwwwxxxwxxxxwvwwxvwwwxwxwvxwxxgwxwxvxwwwxxwxfwuwwvvffefgvgwefvwvfvvvwgvwvffvgufwxwvwvwwguwwxwxfvwwwvwfffVwwvwwvvvxxvgvfxwwvgfUxwuwwwxwvwxxwhwxxvgvwuvfvvwwvvwwwvwwwwwvwxwwvwxwxgwuwwvxwwgvwxxwvwwwgwwwxxwwxwvvvvwgvwwvwwwwwvwwwwwwwvvxwvxwxxwxwwwgwwwwwxgxwwxwwxwxwxxwwwvwwwxxwwwxxwxwwxvwxwxgwwuwwxwwxxwxxwwxwxxxxwxwxxwwwxfvwxwxxxxwvwvueufvwvwweuvvwfugevfwwvwwuvvwxxvgwwvxwwvwfgwuxxvvvvwvuvwvvwgvwwxvwwwxwwvwvwxwxwwwxxwxvwwwvxxwxwgwwwwxvvwwwwuwvwxwgwwwwwwwxxwxvwxwwxwwwwvwwwwwvvgwwwuwwwwxwwvgwvwwwwwwwwwvwwgwgvwxwwwwwwwwwfvwvwvwwwwwwwgvwgvwwwvvgxwwwwxwwxvwgvxxxwwvgwxwwwwfxwxxwwwwvwwxwxwxwwxwwvgxwwwhvwxvffgwxwwgvwwwhgwwvwwwwwvwvwxwwvwxwwwvxwwwWgwxwwwwxwwvwgwvwwxgxwwwwwxwwwvwwwwxxxgwwxwxwwgvhxwvwwgxfgufwxwgxwvwvwxxxwwwwxwxwwwxxwgvxfwwfffwvvvgewgwvwvvxfvwhwwwxwxxvgwwvgwxwgvgwwvwwxwwvwwwxxwxxwxwvwvwvxwfwxvwgfwwwvwvvxxxwgxxxwwwwxxwwwxvxxvwxwwwxxxxxwfvwwwwvwwffvgwvwwwvwwwxxwvgwxxwvwxxwwwxwwwwwwWgvgwxwwwwvxxxwvgwwwxwwwxwvwxxxwwwxxwwxwwvwwxwwwwxxwwwwxxwwwwxxxwwxwxxwwxwxugwgvwvgwwvwfwgwvwxwwvggwwvvwxvwwvwgwguwwggwwwxvxwxvwwwwwvvwggwwggwxvwgwwgwwgwwfFgxwwwwxvvxgvxgxwwwwgxvwwwwwwwwvxgwwwwwvgwwgxwxwwWgvxwwfwxxwwxwwxwvgwxvwvwgxxxxxgggxwwwxwxwxxwxgwwvwwvewwfgwfFwgwwwwgfggwwggefvwhfgwxggwuwvwwwwwwgwwvwvwgvwwwwwvwwwgwwvwwwwewxfwgfwfhwfwwwfwhwwwwwwxwwwwuwwuvwwwvxxwwgwwwwwwWgvwwxwwwwxvwwgwhwwwwgwggxwxwxxxxhxwxxxwwfxxxwwwxxwwwwwwhxgwwvxwwxxxwwwhwwwxxwfwwwwvfvwwvguxwwgwgvwwggvwwgwgwwwewwwwgvwxxFWufwxwwwgxwgwwwwwvwgwwxwwwwwwwwgvwhwwwwwwgwvxvwwwwwxhwwxwxwwwwwgwwgwwwxgwwgxvxxWwxwvvxwgxwxxwxwxwwxxxhxwwwwwxwwwxvwxwwwwxxwxxxwwgwwwxxwwxxxwxwgggvevugWwvxvxwFVufvggwvfwgwwwvwwvxwwgxwfwgvwwwgxwwwwvwwvwwwvwxwvwwuwwfwvwxwwwxwvwwxwxgwwvwwgwxwwwwxxwwxwwgwwxwxwwgxwwwgwwxwwwxxxxxxxxxwwxxxxwxwwwwvwxfwwwwxxxxxwgwxxgVwgwwwwxwwvuxwgwwwwwgwvwwwwwxwwwwwggwwwwxvwvwwwfvVwwxwvxvgvxWwwxxgvvwwwxwwhgwwwvvvxwxwwwwvwwwgxwwwwvwvwwwxwxfvVxwwxwwwwgvVwwwhwwwwwwwwxwxvwwwwxxxxxxxwwvwwwvwvwfwwwvWfwxwwwvwwwwwvwgwWwvwwwvxwxgwvvwxgwwvwwxxwgVxwwwvwxwwwwxhxvvxgwwVwwwwwwgvwxwywvewwwxgwwfwvxxwwwxwuwwwwhwwxwxwwfwwxxgxwxwwvVwxxwwvxgwxwwwvxwxwguxwwwwwwvwwvgwvvxgwwvgvWuvwxxxwxgvvwxwxfvWwwguxhgwxvwxxwvwwxwwxxxxwwvwwwwgwwgwwwwgxvwwvwwwwwwxxwwwwwggghwxxvwxxxxwxxxxvvgewggwuwgxwgfwwfwwgvxwxggxwxwwwwwwxwxwxxxxxvvuwwgwvwgxxgwwwwwwwwwwxwvwxwxwxwwgwwgxwvwvwvwwwxwvwwwxxxvwwwwwxwxwxwwwxxwxxxwvwwwgvwwwxguggwvgwgvwfvvwgwwwvggwwwvgvwvvgwwwwwwvvxvvwvwvwxxgfvwhfwwwgugvwwxwhgvuggvwxvwwvgWgxgxvfgvwfuxfxwwxvwwwxgwwxwwgvwvxgwgwfwvxgvwwxxwxwwwwgvxxxxxwwfvwgVuwgefggugwvvwwgvgvugwwgffugwvfvwgvwgvwwgwwwwwwwvwwxwwwwwwxwwvwxwwxwwhxvgWxhgvvwxvwwwgxxwwvgvhhfxxwxxwgvgffvxwvwwwxwvvwwgfvwwwwxwxvwwwwxwwxxxxgvuxxvfwxxxxwwffgXVxwxxwwwxvxxwwxhwwvggwwvwwggvVvwvfvuwwwvxwwwwxwwwwgwwgfwxwxxwxxxwgwfwwwwwwgxvwvgwwwwgwwwwwwxxwxvwwwvwwwwwwvwwwwwwwxwwwwwwxwwxxwxxwxxgvwwwxvwxxxwxxxwxxwxxwxxwxwxxxwxwffvfwvwfvvwfwwvVvuwwwgvvgwwwwwewwwwgwwwgxvgfvwxxxwvwwxwwvvegwvvwwwwxgwgfxxxwxwwwwxwwxwxxxxxxfwwwwwxxwwgwwwwwgxxwwxxwxxwwxxwwxwxwwwxwxgvwxxxwgwxxxwwwxxxxxxxxwxxwwwxwwwwxwxwxwvfwfwwxwwvvwwwxwxwwwxwxwxwvfwwvwwxwwwwwxxxxxxxwxxxxxxwxwwfgwwwwwwwwxxwxwxxxwxxwxwwwxwwxwwwxxxxxwxxgxxwwwwwwwwwwwwwxwwwxgvwwwwxxwwfwwxwgxwwwxvxwxxxxwwxxgwwxxxwwxgxwwwwwxxwxwxxxwxxwxwvwwwxwxwxxwwxwxwxxwwxwxyxwxwwxwxxwwxxwwxxxwgwwvwvwwwwwgvwwvwwwxwvwvwwwxgxwxxwwwwwxgxwwwxwxwxxwwgwxxxwwxxwxyxwwwxwvwvxwwwwxxxxxwxxxxwwxxwwwxwxxxxwwxxxxwwwwfwwfwxwxwwwwwwwwwwwwwxvwxwxxxxgxwxxxwwwwwxwxxwxvxwxwxxwxxxwwxwwwwwxxwwwxxwvxxxxwxwxxwxxxxxxxxwwxwwxxxvwvwwwwwwWwvwwgwvxwwwwggvwxwwvwgwvxgwwwwwwwuwxgvvwwwwwwwwxxwgvwwxwxxxwvwvwggwwwwhwwwwxxxxwwwwxxwxxxxwgwwwwwgwwvxxxxwwxxwxwxxvvvwfVvwvggxvwxgwwxgwvvwwwfhwgvvwwwxgvwwwhwwwxgwgwwvwvgwuvgwwgxwxxhxxwWgwxwwxxwwwxxgwxxwxxxwwgwwwwwwwwwwxwwwxwwxxwwxwxxvxxwwxxwxwxWgvwwxwxxwwwxwxyxxxxxwwvxxwvVwewwufwgwwgwwvwvvvvvvwwwwxxwxwgwwwwvwwgxwwwwwwwwwwxxxxvwvwfwVwwwwxxxwwwwxxwwwwwvxxwwxxwwxhxwwxwxwxwwxxxwxxwxwxxxxxwvfevvvwwxwwwwxwwwwwwwvvvwxwxwwwxxxxxwwgwevgwvwxgxwxxwxxxxxwwwwwvwwwxwxxwwwwgxwwwwxxxwwwwwxxxxxwxxwxxwxxvwvvvwwvwvgvvwvwvwvwwwwwwwwwwvwfvwwwxwxvwxwwwwwwVwvwvwwgwhfgwxxwvvvwwvwwwwwwgvwwvvwxwgwwwwgwwwgxxxxwfwxvvxwxxxxwvfvvwwvwwwwwwwxvgxxwwWvtfgfvfwvvvwvWVwwhfvwwwxwwvvgwvwwfgwwxwgvvwwxvvwwxwwgwwvgFgwvwhvvvwWVwxxwwwwwwgwwwvwwwwvxwvwxwxxgwxgvgfwwwvwwxvwxwwwwwwwwwwwwvwxvvwhxxxwwvvvwwvwxwwwwwwwxxwwxwwxxxwwxwwwxwvwgvwvwwvvvwvgvgvwwwwwwwvwgwwwvwwwwwwwgwvgvxgxwxxhwgxwwvwvwvgwwgwwwwxwxxvxwwwvhgwxxxwxxxwwwgwxfgwwwwwwgwxwxxxwgwhwwwwvwvxwxwxxwgxwxxwwgxvgwgvwwwwxhwxhwxwxxxwwxwxhwwxwwxwxvgfwgvvfvvgvwuwfvfwwwgvuggwVwwvvvgvfwwvwvwvwxvfvvwgwfvvwwvwwwgwwwgwwxwuwwgwgwwwwwgwvwwwgxxgwvvwxxwvwfwgwvxxwwxvwgwwwvwwwvwwxwvxvwwwxwwwvwwgwxxxwxvxwvwwggwxwxwxwwxxwxwwvxwwwwhvwwgwwgwggvwwgwwxwxxwwwxwwxxvwxgxxxxxwfxvwfwfwwxxxwvxwxxwwvwxwxxxxxwgwxxgwxxwwhxwwxxwwwxwwxwwwxwvxxxxxxwgwvxgwwgwwwwwggwwwwxwwxwgwwwwhwvwwggwhxwwwwxxwvgxxwxwwgfwwwwwxwwvxwxxxwwwwwwhwwwwwxxwwxwxxxwxwwvwwwvwwwwwwxwxwwwxwxxxxxvwwwxwwwxxxxxxvxxwxxwxxgvwwvwxwwgvfwxgwfxxxwxwxwxwgxwhvwxvwwwwxwvwwwwwwxwxwwxwxwxxxxwxxwfvwxxvwggwwxxxxwwxwwxwwxxxvvgwwhvgxwxxxxxxxwwhwwwfwxvhgvvggwxwwwxwwvwxwwxxvwxgxxwxwwxghwxxxwxwwvwxwvwwwwwxwwwxxwwxwxxxwxvxwwwwxxwxxxwxxwxwxxwxwwwwxxxwxwwxhwwwxwxxxxwwwwwwvvwwwvwfggggwvwvwwwwffwgwvwwwvvgvwfvwxxwwwfgvgWwvvwwggwxwwwguwwwuwvwwwxwvwwhfvfgwwvvwwwwvvwwvwwwfgwwwwwwvwwxxxxgwwwvgwwxwwwwwxxwxwgwwwvwwxgggwwwwgwwwxvffwwWWgwwwwwwvWgvgwvvwwwwvguwvvuvvwwwwwwwvwxwwwwwwxwvggvwwvvwvwwwgwwwxwwwwxxwwvwwwvwxwwwwwwgwwgwwvgvwwwwgwwwxxvwggwwxwxwfwwgvwvxxwhwxwgwxgwwxwgwvwwwwxwxwwwwgxxxxwwwwwxxwwwxgxwwwxvwwwwvvwwwwwuwwvwwwwwgwvvwwwwwxwvvwwwxxxgxvvwwwvwxwwwwwwxvvwwwwxwwxxwhxwwxvgvwvwwwwvxxwgwwwxwxxgxvwgfgwwwwwwwxxfwwxwxxxwwgfgxwwwwwwwwwggxxwwwgwwxwwxxxxvuwwvuvwwwxwxwwvvwwwwvwxxwxfvgwwwgwhxwwwxwgwwhxwwwwgvvwwwwwwxwwwwxwwwwwwxxwwwwwxxfwwvwxwwwgvwxwwxwwwwwwwwwwwwwxwwxxwwxwhwwwwxxxgwxwxwxxwxwwxwxwwgwvwwvvwwwgwwvgWgwWvwwwwvvvvwvwwwgggevvwxwwwwwvugvgvvxvwgwvwxwvvwwwgvtuwwuwwfwxwwwwVvxwgwvwfwgwxfvwvwwgwvxguwwvxwwvvxvxwvwwwwwwwwgutuwvvwwwwvxwvfwwhvfwvwwwxvxwvxxxwwwwwfwvgfvvwfvwwfgwwgfgvvvgffuvwwfgfwwvvwwvvufwvvfwwwwwwwwwvwwfwvwwfxwwfhwwfwfgfvwwwgguwhwwvxwhgwvxwwwgwWxwwwxwwwwwwwvvwwvxgwwuvwwffwxxgwxwvwwwwwxxxwwwhwxxxvuwwwwwwwxxxwwwxwgxwwwwxxwxwvxxwgvvxwgvxwuwvvgvwvgfwwwwwwfvwvvvvfwvwvwxgwvgwwxwvgwwguwvvwwgfwwvwgwvxwxwhvwvvwwwxxwxvwxwxwgvvwwvwwwwvxevwwgvfxwxwwwvwwwwwhxgfwxwwxxhxhwwxxgwwwvgwwwwuxwxuxwwwxxwwxwxxxgxxvwwxvwwwvwwgfwwwwgevvwfwevvgwvxwwfvwwhwxgwvwwxvwwxgwwwgwwhgwwvfwvvwxxgxxxwwgwwwwgfwwwhwwxwxwxgxvwxwwwwwxwwwxxwwwwxgxxxxwwxxfwwwxxwxxwwwwvwwwwwwxxwxxxxwwxuwwwwwwvxvvwwwwwfvwwfwwfvwwvvwwvwVvwwvxgfgVgvvwwwgwwxwwvwwwwfwwwvwfvuvxgvwvxwwxwgwvwwwwwwvvvwfvwwxxwgxwwxwvwwwwgwwgwvwvxwevgwwwwvwxwwwwwvwwwxgfvwxwhxwxxgwwvvwvwgvuwwxwxxhwxxgwwwhxwwwwxxhwwxwvwwgwfgffwfffvffVggVfwwvwwfvvvgwwvwwvfwfvgwvwfwvgwwwhwvgvwvvwwvwwwwxwvvvwvwwvvvgwwxwwwxwWffvwwgggwvxvwwgvwvwhxwwxWxwfvwwwwwwhxxxwvwhvwgwwwgwwwwxwwhwgxwxxxxwgwxwxxwfvxgwwwxxwwwvwxwxwwxwvwwhxxxgwxgvxxxwxxhwvwvwwewvvgvwwfgwfvvwwfwvvwffvwvvwwgwxwwxwvvwwwXwwxwxwwxwwwvwwwwwwvwwwwxgwwwwxgwxwwgxhhXvxwwxwvwvwwwgwwwwwwgwxwxhwwxgxhgWvwxwwwwwxWhxgwxwwwxvwwwwwwwxwhxwwwxxxwwxxxwwwwhxxxvxxwxxxwxwwvwfgwfgggvgfwwfvvwWvvvvvwvwvgwvwwwwwfgwfwwxwwxwhggwwxgwwfwwwwwwvgwwgggWwwwfwvwvwwwgwwxwwwgwwwhxxxwwxwwxwvxwwwwwhwgxwwwxxxwxxxxxwwxxwxwwwxwxwwwxwgwvxxgxxwwwxxxxwwxhxxfwVwuffwwfwfwvfwgffvwvvvwwgwfvwxwfwwvwwvvwwwwwwwwvgwefwxggfugwwfwxwgugvgvwwvvwugwwgvwwwwwxxwwvxxxxxwvwfxfwegxvfvxgwwgvvwwwwxwgevxgwwxwxwwxwwwvvuwwxwwwwwwwwwvxxwxwwwwgwxxxhwwwxwxewuwvwfxffVfwuwwEfwwwvwguvwwfgwvefugVvvwwwwwfwugwwvVfewvwhwxwwvwwvwffxwwgfxwwwgwfwxwUgvwwgFgwhgvxgwxwVxwfxvvvwfvvvvxwvwwxxfuwwxevxvxwfwvwwwwwwxwxwxwfgwwxwxwxwvVvwwgwWwwfwwVwxhExxxxwxwxwwxxwwwwwxgwvwxvwgwffvufgvvwxgwvffwwwxwggffvwwgvwxwwwwwxxhxwwgVvwvgwvwxwfxwwwwwwxwwgvxxwxxxvwwfuwxwwwwwgwwxwgwwwwwwwwwgxgxxwwxxwxwwfxxwwwwwwwwxxhwwwwhwxwxxxxxxgfUvUvtvftwfVvwgvvwwwvvvvgfwwwxfuvgvxwwgwwwwwxwgexwgwgwvwgwgVwwggewwwwwwwwwwwwwxxgwwvxwxxxwwxxxxwvwuwffgwwwwxxwvwwwwwxwgwwxwxwwxwwhwhwwgwwwwwwgxxggvwwwwxxxvxxwxwwvxxwxwwwwxuwwvfgwvxvwwvwvvwgwvwwvggvwvvxVvvvwvvwwfgvwgwwvgvvwwwwwffhwwWfuwwgwxvvwwwgwxwgwwxwvwvxxgvvwwwwwfwwwwwfwwwvwvwVvvwwwxxwvxhxwxxvgwvwwxxxxVfexwvwwwxhwxxwxwxvxxxwxxxwvgfwxwvwfwwfwvwgevwxwwwwfgwwvwwfvvwwgfwxwgwwwvvwgguwwwgwwwxvvwhvgfvuxvwvwwwgxwwwgvwwhfwvvvwwuwwwxxxgvxxwgxhfwguwwvfvvwwwwwfwwgvwxxxfwhwwwwwxwwwgwwwwxfuvwwwwwxxwxwgvxxwxwwwwxwxxvxxwxxxwxwuevwwvevvvwfwwwwvwxwwxvvxevwwvwwwvgvvgxwwwwwxxfvwwwwwgwvvfxwwwwxxwwxxhvxwwwgvxxvxwwvuvwwwxwvwwwwwwxwwwwvwwwwgxwwwxxwxxxgwxggxwwgvxxxwxhxxxxxxwhxwxwvxxuwwffvwvwwhwwwgvwfgfvvwwwvhxwvvvwvgxxgwvxwxhwwwwwgwwwxvwwwfvvwxvvvxwwwwwwxhwwxxwwfwxxxxxgwwhvwxwwvwxgwxwwxgxwwxxwwwwxxwxxxxxhwwwxgxwwhxxxxhwxxxwxwxtvwvwwvwvwwvfwvgwxvvwwwwxwwwgfwxwfgwvwWwwwwwwwgwvwwu6wvwwWwwwwVwxggWwvwwwvwwwWwwvwwxwwxwwwwwwwwvxvxwwwwgwwwwgfwfwvgwwwwxwvwxxwxguwfgwwwvwwWwwgxwwxxwvwwxgvxwwwggwwxwxwwwwwvwwXwxwwxxwvwwwxxwxvwwvvvvfwggvvwwwWwvvwe6fwvwwVvwwwwvgwffwwwwvwgwwwwgvvgwxwwwwwwvxwxwxwwgwxwggwvwvwhwvwwwwwxvgxwwxgvxwwwwgwwwwgxgwxxgxvwwwwwxfwfwwwwgwwhwwwwwhwwxuwwxwxwwwwgxwvxxwvwwwxwwwwwwwwwwvwxwxwgxwgxwgwwwwwvwwwwwwxwxxgxvwxwfvwwfvvvwtvxvguwwwwxvvhxgwwgVUgefwvvxwgwffwgwwvwgwwvwvufwvwvhuwwwwwwwwwvwwwxwwfwwWwwwxwwwxwxxxxwvvxvgfwwwwwwwwwxwwwxwwwfwwfwvvxwwwgvfwxhvwwxhwhwvwxwwxwwxwvwvxxxxwwwwwwxxxxxxxxwxxxxwhvwvwwwtvvwuwgfwfwwwwgewwxvvfwUgefwxwxuxwwxwxwwwgWwwwfwwwwwwwwxwxwgwxvvfwwwwwwwwwvgvwxvxwwwxhwwxwxwgxwxgvxvwgxwxwwwwwwxwwwwvwwwwwwwwgwxhwxwwxvwgwxwxhxxwwwxxgwwwxgwwwxxxwvxvgwwxgxxwwxxwxwgwvgvwxxwvwxwwxwwwwwvxwwgxxwwwwwwvxvwwgxfwgvwvuwgwvhgwuxwwvvwwvwwhwxxwxwgvWxxgwxgwwwxwwvgwvvwxwwxxhvVwwvhwwxwwxxwwxxwwwgfxwwwvxwwgwuwwgxxwwxvwwwwgggwwwxwxxwwvwwwxgwxxgwwwfwwwxxxwxxwwxxwwvvvwwwwgwxgwwwwgvwwvwghwwvwwhvxwxxwfwwwwwwxgwvwwwxwgwwwwwgwwxxxwwxvvxgvVvxvwwwwwfgwwwxwwwgvwwwxxxgvWwwwwvxwvxxxwgwwxxxwggvwwwxvwwxvwgwvxvxwxwxuxwxxxwxfgwxwxxwxxxxxwvffwwvwwxwwwgwwxgwxwwxgwxxxxwvvwxxwxxvvwwwwwhwxxxxwwxxvxvvxxxgwwwxwvxwwwxxuxwxxxxgwvxvxwhxwwxxxwwxwxxuwwwwvvwwwfwfwwhwgwwwxwwwwgfwxgwvwwxxxvwgVvwggwhvGxwwwwhwwwgwxxwwhvwxwhwxwwxxwwfxwwggwwwwxvxwwwwwwwwvwxxgwvwxwwvwvxggwxxwwgxwxwwxxxxwwxwwwxvwvfgvFvwwgwwvwwwgVwwvxwwwgwwwwgwvgwwwxwwwgwwxvwxgwwxxwwwvwwfxwwwgxwwxxxwxvvxxwwxwfxwwwwwwwxxwxvwwwxwxwxwwvvwwwxxxgvvwhwwxxxxwvxwgwxxwwwwxhwwwwwwwxwxxxwwwggvwxgwwfvwwgwxvxVfufwxwwfvwfwvwxwxuwvgxwxxwwxwgvwwwwwgvfwwxwwwhvwwwxwxwxwxwwxwwwgvvhfvwwwwwwxwxwwxwxwwwwwxwwghwxxxhwxxxwwvwwxwxxwxgwxxxxxxxxxwxwwwgvgVfevwwwgwwgfwwgghwwexvxwxwwgxvwgwvwwxxwxwxwwwfwwwxvwwwxwxxxwwxvwfwxwwwwwxxvwwwwwwgxvxwxxxwxwwgwwxxxwxxwxxwwxxxwwwxwwxxwxxxxxwwwvwgvwvwgwwwxxfwggwfwwwgfgxxwgwwgvggwfvwwxxxwwwxevwwvwxgwxxwWwegxwwwwwxwxwwWwegxxwwxwwgwWwwvvwwwxXwwxwhwwgvwwxxxwwwwwwwwxxgvvxxvwxxxwxxwxwvxgvfwwwwVefgfgfwwwgvxhwgwwVvWvegwwwwwwwggvvwWvgwwwwwxhhwffvwwgwvwgWwwwxxxwgwwxwggvvvwwgwwxwwgwwyxwxxfywwwgfwwvwxwxvwgwwxxxwwxgwfvxwwwxxvwwxxxxxfvwwwwwxwgvwxxxwwxwxxgxvwxxhVxxyxwwvxfgVgwgvfwwwwfWwwxwwwwwgwwwwvvhwwxxwwwxwgwwwwxwxgvvxwxxwwxxxwwxxwwwgvwxwwxfwwxwxxxwxxwwwxxxwwwwxhxxxwxxxgwwxgwxxxxxxxwwxxxwxxxwxvffUvfvVfevxwvwwWwfgwgwwvwwwwwxgvxvwwwwxwgVgvwxfwffwwwwwwwvwxwxxwxwwwwwxwwhwwwxwwwwwwwwwwgwxwwwwwwhhwxwwhwxvxxhxwghgwxxWxxwwwwxxxyxwwhwxxxwxwxwxwwwxwxwxxxwwgwwwwxxwwxwwwxwxvxwwwxxwxxxwwwwwxxxxwxxwxxwxwwwwxxwxwwwwxwxxxwxwwwxxxwxxwxxxwwwwwwgwwxxgwvwvwwwwfwwwwwwvvwwwwxvwvwwwgxwgxxgxgwvwwxwwxwwxwxwwgvwxxgwwhxwwxxwwwwwvxxgwxwgwwwxwwxwvwwxwxxwwwhxxgwwxwxxxxwwwwwwwwwwwwwxwwxxxwwwwwwwvwwxxwwxwwxwxwwxwxwxwxxgxwxxwwwwwwwxxwxxxwwwwwwxwwwwwwwwwwwwwxxxxwgwwwxxwwwwwvxwwxxwwwwwxxwwxwwxxwwxwxxwwxvwgvxwwwxxxxwwwwwxwxxwvxgwxwwwwxxxwxwwxxwxxwxwwwuwvwvfwwxuugwgfwvewwwvxwwwgwwwwwwwwwwvvxwexvwwwvvwvwwvvwvwwwwwwwgwuwwvxgwwwxhuwwwgvvxwvwvgwwwwgwwwvwwxwxwvwxvxwwxvwwwwxwwwxwgxxwgvuvxwxxxxwxwwwxvwxeevwwvwvwvwggwwwwwwwvwwwvvwvwuwgewfwwwwwvvvwfgvgvwwwwwgvvvwwwwwWxfgwvwwxwwvwwgwvvwvgwwgfwwwwwwvwvwgwxwwwwvwwxwvwxvwvgwxwwvwxwxxwwwwxwxwxxwxwvwwwxxwwwxwxwwwwxwwwwwwvwwwwvfvvvuwguwwwuvvvvwwWwvvvwwwwwxxvwwwwgvxwxwwgwwwwvwwgxwvwhewwwwwwxwxwwwwxwxxvvwxgwvwwWwvwxwwgvwwwwgxwwwwxwxXfxxhwwwwwxvxxwxxxxwwhwxxwwwxwwgvwwvwuvgvwgxvwwwfwwugwwwwwWwwwwggwwwwvwwxwwwwwwxwwwxwxwwvgwxWwwvwwwwwwxhgxvwwwxwwxwwxwwwwgwwxwxxxxwwwwxhvwxwxxwxxxwxhwwwwxwxwwwwwwxxvvwwwvwwwwvfvwxwxxgvvwwwvwfwvwwwgwwwwwwwwwwwvxvwxwwvwwwgwwwfvtVgvwxvwwwwwwvvvfvtWxwwvwvwwwwwwwwwwwwwwhvfwxwwgghwwxxvwvwwwwvvfwwxxxxxxwwgvwugwwwwxwwxwwxxxwvvxwxxxwwxwvvvwwvgvvVvvwvgwffvgwggfvtVgvwfwggwgwwwwwVvtWxwfgwwgwxwwxwwvwwhwwvgwwvvwvwVxvgxwgvxgwwwwwfxwwWwhwxwgwwggwwvwwvvgxwfvegvwggwwgwwwgwhvwwxvwwwxwxwgwgwxwxwwgvhwgwwgxwxwvggvwxwhxwgvwxwgVwxwgxxvwxxwvwwwwwwwfwwvxwggwwggwwwvxwgvfwwxwvxxgvwgxxxwwwxwwwgvwgwxwwwxwwwwxxxxxwwxwwwwwxxwwxwxxxwwwwvwwxxxvhxgxxxgxwxhxwxwwxwxxxxwhwwwxwxwwxhhxxvfvvwwwgwwfeughwffwwfwgwufgugvgvwwwwxwgvwgwfgxxwxwvwwwfgxgvwxvvxgxhvwvwwwvwwwxwwwwxwwhwwwwwxwxwwwwfwxwwwwfxwxvvwfwwvwwwxgwwvwxwfxwvwxxwwwwxwhxxxxwvwxxwwwwwwwvvfwwwwwwwwwwvwwgwwvwwvwuwfwhxwwwwwvwvhxwwwwwvxxfwwfFwuwwxwvwwgxgxgwwwvxxgwxwwxwxxwwvwwgwwvwwwwwwgwuxwxwwvvgfxvgwgwxxxwvwwgwwwwxxwwxwwwgwwxxghhwwxwhgxwgwvgfgwgggwwvvwhwwwxfvgvwwwwwvfFvfvwwwwwgwwwgwvwwwwwwwwwwwwwwwwwxvwxwxwgwwxxvwgwfhxwwgxwvwwwxgvxwhwwxwxgwvgwwwwxxgwugwwwwwwwxwwwxwwwwwwxxwxwwwvxwvwvxxwxxwxwwwxxwxhwvwxwhwxwwxwwwwwfvwwvVftuwwwvwwuvxwwwwvgwfvxwxwxwwgxvwvxxwvwwwffwwvvxwgwxxfwwxvwwxxwwgvwwgwvhwwwWwwwwwwwwvwxwwwuxxxwwvwwxxxwwwwxxwxxwxwvwVfduwwvwhwwevvwwffwwwwwwgvwvwwhwvwwwwvwxxwwwwwgxvwxwwwxwxwxwvwwwxwwwwwwxwgwvxxwwwwvwvxwwwwwwwwwwxxvxwwwxwwwxxxwxwxwwwxwxwwxxwxxxvxxwwwwxxwwhwxwxxwwvhwwwwwvwxxvwwwwxwxwwxwghwwwwwwwwxxxwwwwwvwwxxxwhwxxhwwwxwwwwxxwwwwxwwwhwxwxxxwxxxxxwxwwhwwwwxwhxxwwxwgwvvgwwwvwgwwwwwxxxwxxwwvwwwxwwwxxxwwxxwxwwwxwxxwxxxhwwwxwxxxwgxxxwxxxwxxwwwxxxwwwwwwwxwgwgwvwwxxwxwwwghwgwvwwwxxwvvwxwwwxxxxxwxxwvwgwwwxxwxxwwxxvwwxvwwxxwxxxwxwwwwwxwwgwwxwxxxwwwxxxwxwxwxxxwxxwxxxwwwxghxwxxxwwwxxxxxwxxxwxxwxxgxwvggwwwwwwwvfwwwWwwwgwgwvwwwvxgwgvwgwwgwwvwwwwwhhvvhwVwwgvwwxxwgwgxxxwhxwggvxwwwxxwxxwxxwwwgwwwwwxgxgxwwwwxxwvwgwxwwwgwgxxxhxwxWvwwxxwxxxxxxgxxxhxxxxxwxwvwwwxwxfwgwfwgwvxwgVwwgvgwwxgwvxggwwwgwggwWwwwwwwxwwvwwgxwwwgvwvwwwwwxwxwwwvgwvwwwwxwxxwwwwwgwwwwwvhgvwwwfxwwwguxwxwwxwwxxgxwxwxxxwwxwxwwhwxxwwwxVxwgfwhwhggguwWvwvxgxxggxgwvwwxwwgvxhgwgxgVwwxwwxfwwwwxwXhxxxwwwxxhgxxwxxwwxxxvxhffvwfwwxxwvwwxvxhxxhwxwvvwhwwxxwgwwxxxxgwvwxwwxwwxwhwwxxwwxgxxwwxxfxugwvwwwvvgwfxxggvwgvwwgxgvxwwwwwxxwxxwfvwwwwhwgwhwwwvxwvwwxwgwwxwwwxwxxwfxwxxxwwwxxwxwxxwxwxhxwwxhwwxxxxxxxwxwwwxxhwwxxxxxxwxxtwwwwwwwwwwwwwwwxwwVwwxwwwwwwwxxwwwgwvewgwFwvwvwwwwwwvxwwwwggvwgwxwvwwxgvfwgvwgwgxvwwwwwfwhwwwwwwxfWfwwwfgfwxvwvwhxhwwxwxwwwwxwxwxxwxvvvwgwfwvggvwwvwfwwgwwwwgwwFvhxwxwxxgwxxwxvxwvWfvwvwvgvuwwwVvwwgwwwwwwwwwwwvxxwxwwwxwxxwhwxxgvwVfwvgwwwwxwwwwwggwvwwwwxwwwfwwxwxwvxxxgwwwwgvwwwvwwgwwgxwxvwwxvwvxxwwwwxvvwfwvwwwwwgwgwwwwwwwuxwwwwxwwxxygvevwvvgwdwvwvwxwxwxwwwxwxxvvvwwgfwggwwwgxwvwwwwhwwwwwxwxwxxxxxxwwUffwwwwwwwwxxxwxwvwxwxwwxxwxvwvwdvfwvvwwwwvwwwhwwwvwwxwwxxwwwxwxwxxxvwvvvgwwwwehwwwhwwxwwwvwwwwxxxwwwwxwwwwwfvuvwfggwwwwwxxxwwxwhxvxwxhwgwwhwxxwxxxwxxxwwwvgwwwwwwwxwxwxwxwwwxuvvwwwwxwgvwwvwwwwwwxwxwvgwwxgvgwwvfwfwvwWwWwwwwwwuxwuvvvwxwxgwvwwwwwwwwwvwwwwWvwwwwxgwwxwxvxwgVwvwwwwvxwwuwwwwuwvxwwgvxwwwwxxwgwfwvwwgwfWwwggwxwwxwwwvwgwwxwwwxwwvwxwwxwxwfVfwxxwgvvwxxxwfwxxwwgxwwvgxvwwvwwgwwxxwwxxwxvvgwwfvwwwgvxwvxwxwwwvwxwwwwvxxxxwwvwxwxxwxxwwwwwwwwwwwwwvwwwwxwvwwwuwwwwxvwwgvwwwvwvwwwgwxwvwvwvgfvvwwgvgwwwwffuwwwvvwwgwwwwwwwwwxwwxxvvwwwwwvwwfwwwwwxwhwwwxwwhwxwxxwwxwwwxxwgffVvxgvxxwgvxwxxxwxxwxwxxxxxuwwuwwwgvvwhxxwwvwghgwxfwxxxxwxwwwgwwxxuvgwwgxwvvxhwwwxwwxvwvxwwxwwwwhwwwggfvuwwwWwwwwwwxwfxgwwwxwwhxwwxxwwgwxwxwwwwgwwwwxxwgvgxxxxwxxxxxwwwxxuggwgxWwwuwfgvhhuWvffwxxxxxwwxhvwxxgwhwwvweUvvwggfwvwgwxxxfwxwxwxxgvxxxxxwwwwwwwwwfgwgwxwwwwwxwwwxwwwxxwfgwwvwvwxwwwwwxxxxwhxwwwxxwgwvwwwwvwvvwxvwwxwwwvwwwxwwwwvwxxxxwxxxxxwxxxvgeWxwwwvwghwwwgxxxwwwwwwxvvwxwxxxwxxxgwwwxvwwgwxwxxwxxxwvhwwwwwxxwwwwxxwxwwwwwwxxwwxxwwwwwwxwxwgwgvwvvwwgvvwvwwvwwwwwvwxxvwxwwwxwwvuwvwvwwwvvwwwwwwhhxxxwvxxwhwwxxxwxxwvgVvwvxUufwwwgwwwwwwxwgwxwxwwwffwxxxxxwxxwxxxxwxgxUvufhwvwggxggvwxwXwxwhhwwxxxxxxxxxwxwwhugwfvwvvxuwvwfvwwwwggxgxfwxxggwxwxxwxxxvvvwxwwhwwwvwwxwwxxhwxxxxwwwwxwwwwwwxxxxhwffwxwvxghxwwggXxwvgwwwwxxxxxxxxxwxhwxxwxgwgxwwxxwhxxxxxxxxxvxxxxwxxuwwwxwwxwxwxhgwwgwxwhgwxxxwwwvggvwgvwwxwwxgwWwwxwwvwwwwwvwxxwwwwxwfwxxxgvwxwvwxxwgfvgwxvvxxxwwwxwgxwwwwvwvxvxwxwwwxwwwvwwwwwxxwwfwwwwVuwwhwwwwxwxxgwwwxxwxxvffwwgwwfwwwwwwwvvwxxfxwwxgvwwxxvwwxgvxgwwgwwggxwwwwwxvwgwxxwwxwwwwwwwfxwxwwvwwwvwxwxwgxwwwxwfxxxwwxwvhwwwxxvwvfwwwwvwwwgvxwwvhxxxvfvwwvwvxwwwwvwWvuwxxxxxwwffwgwxxwwwvwvgwwxvvvvwxvxwgwwxxxxvfgfwwvwwwxwwxxhwwwwwxgxwxxwwxvvwwwwwwweuvwxxwwwxxxwwxxwwxwxxxwvvwgwfvwwwwvwwvxwxwgwwwwwwxxhvxwwwxwxwxffvwwwhwxgfvgxwxwxwwwwwwxwxwwxwwxhhxxwfxxwwwxgwwwxxxwwwxwwxwwwxwwwuvvwuvwfwvvxfvvffwwwvwwwvuxwvwuxwgwvvwwxvwvvwfTwvguwfwgwfgwxwvwwuffwwvtwvvfvwVvehxEdgvgxvwwwvtwwwgVwwwvvwwvgfwfwVvwwwwexgwuvgwxxfvwgwwxwwwxwugWwvvwfvfwgfvvwxwwexehwwwevuwxwvgwwxwwxwwwxgwwwxvUfuugwwwwwUVxwwwgvvfvwvwwwVuxgwwxxfvwgwwwwwwwffvwwwwWwwwwwgwwvgvxwwgwwtxxwvevvwwewwgwwxwxgevxwfxwwwxwvgfwvvxgwvwxwgvvewwwwvwwxwwwvwvxxxwxwwxwwwwxwvgwwwwgwgvwxwxvvfvuxxwvxxwgwwwvwwwwwxwgxwwxwwwxxvevfvWevgvvgvvwwwVuvwwfwvxwwgwuwwwwwxxvwxwwvvwwevwwVwwweeuffxwwvwxfxgwtwvwwwvwwxwvwxwvwwvwxfxwvgwvfvvvgwvwvvwgdtvwxwehwwWxxvwwuxwwvxwvwhhvvxwwwgwwgWVwvxwVugwxvxhhvvgwwehhVwxvhwwvgfwghgfgwgwgxwwhxvwufwvuwwfvwwxwwVuwgvvvgvwxvwwwwwxwwwwwxvvwvxwggvwwvvwxWwfwwvgwwwwfwwwwwwgfugwgvwwwfgwxwxwvwxvwwugwwwwwwwwwwxeuvgwwvwffxwvwwwvwwwvxxwwwvwwggfwwwwgwguxvwwwgwwwwwxwxwwvfwVxfvwwwxwwuvxwgvvxwwwxwwugfvgfwgfvwwwwvvwwwwgwgfgvwvwwwvwwxwfwfwvwwwwwxvvvfxwfvwvgfvfwuwwVevfuwwWwuvwwwVwvwvwwwwvwwvvfgwvwwwwgvwwwffvvgwufwwwfwuwwVvwwwxgvwwwghwwvwxgwvxxWwwwwwhwgwwgwgfffwvwgwuxwwwWfvvwwwWgvggggwhxxwxwwwxwwxxXfhwvwfVwVggvvwfwfwvwwVugVwfwVguwwggwvgfvvgvxwwwwfwvwuwgwwwvxgwwwwwwwwwvvVvwwgwfegvhwwvwwWvwgVvgvvxgwvwwvwgwwvwghgwwwvwwvwufwvwwwgvwwwwfwwwwwwgwwwxwgvwgwxxwxxwwwwxxxwgvxxwwwwgggggwxwxwWxhwwgvVxwwxwxxwwgwwxxWfhxvwwxvgguxwggvgwvwvwfvgvwwvgwfWwxwgvgwvvwvwxxxuvwxwhwgwgwwffvfvvwvvwvvwwgfvvgwwfvfwwwguwwwwwwwxwgwxWwwhxwwwhwwgfwfgwvfwgWfwwWfvwgwwhwwxfhgwvwwxwwhwxxvwwwwwgghwxgwgwvxfwwwwwwxwvvwwwxhxwwwggwwxvwhxxxwvgwxwxwwhwwxwwwuwgvgwvxffwvwwfvwfwwwWugvvwgwuwfwxgwgwwwxgwwxwwwxfxwgvwfwfwwwwwfwwwwfgvffgWvvvwgxwvxwxxggvxxwxwwwwvwwwwwwxwwvwwfgwgvgwgugfgwvWgwvwhwXxfwwwwwvwwwgwgwxxvwwxwwwXfwwvxwghwhwgvwwwwgwviwwwwwwwhhggwwwwvxxxwwwwwxwwgwwvwghvwwvwwwgwwwwwvwwgwhwwhwwxwhwwwwwwvfxwfwVggvvvwwxvwwwfvwvvxwwfhwwwvwwwxwwwuvwwwwwhgxwwwvvggxwvxgwwgwxwgwwwxwvwwhwwxhwxxxxxugvwwvwfvwwgvwvwfwxwfxwwwwwxwwwvwxwxxvwxwwwwfwgffxWWegwvwwWwxwwvwfwwwwgGevwvwwgvwgwwwvgxxgwvfgwxxwvvgfwwwwgudvggvfxvwxxWwgggxgvVvuwgwwwxwxgwgVvuxwgwwgxxwGegwvxwgxwvuwxxvgwwwvxxxxwwwwxwwxwwwgwwxxgxxwxfvuvggvvxwgwvgWufxgvxxvxwxwwxgwvwwwgxxxwwwwvwwgfwvhvwwwgfxwwwfwvwxxwwwxwgvxxvwwwwxxxxxxxVgvvgvvvvvwwwwuvxwvhwgwwwwwgwwwxxwvwgwwwwwwwxwwxwwwxxwwxxwgwgwwxwvwwvhhwwwxxxwxwxxwvwwvwvwwvxxwwwwwwgvgxwwwwxxvwwxvwxxwxwxwxwwxxxhVfvfwfvwvwgwvfvvgwxwgvwxgwwwgwxxwwwwwwwwwwwwwxgwxwwVutvwvgghwwxgewfvwwhwvwxwwxwwhwwxvwxxhwvwxwwgxfuwwvvwwxgwxxwvfuwwxwvwwwwvxwgwvwwwxxwvxxwgwwwwwwxwwwwvwwxgwxwgxxvxxwxwxxxwwxxwwxxxwhxxxwuwvwuwvwgvwvfxwfuwwfvvwwwwxgwwvwVvwxwwwvvwwVufvwgwxwvwgwgfvvghwfwvwwwwvguwgvwfvvwwwwwwwxvvwwxwfwfwwggffwgwfwvwwvxwxgwfwwwvwxxwxwwwxxvffwwwwwxVvuxwxwgvwwwuwgxwhwfvwxwghwxxvwwffwgfvvggVwwvwgfgwwwwwwwweffgwwwwwwvvhvwwxwwxxvwwvwxwgwvvwxwwwwwwwxvggfvxxvgvvxwvwwwwwggwgvwxxwxxvgwwwwfwwwgvxxwfwwwxwgwwwwxxhfwxxhwxxxxwwwxxwwwwvgwvxwvhwxwxgvgguhhvwwwgxwxhxxwwxvwwvwwwxvvgwxgfwvwwefwwvwxwwwwwwwwwgxvwvwwwfuwxwvvvwxvwxwwvwwwwxwwwxwwxwwxxwfwvvwfwwxwvxxvwgwvwxvwwwxwxwwxxwwwxxwxhwwwxfufwwxxwwvgxhvwgwwwhvxgwwxxxxwwwwxwxxwxxyvwgeggfwwxxxwvgwvgvwwwwwwxwwxvwwxxwxhwvvwwwvwwxwwwwwwvwxggvwvgxwwxhgvxwxxwxxxwvxwvxwwwwxhwwxvwwxXvxxhwwxxwxxwgwvhwxxwxxxwhwxWvwxxwwvwwwxwwxwxxhwxxxxwxwwxuwwwwwxxgwfwwwvwwgxwwwxxvgvxwgwxvvwwggwwgvwwwwwTEvwwwxgwvxwgwvwgwvwvwwwxwwwxxwwwwwxwxwwwffxfwvwxxwwxvwxwxwgwgwxxwwwgffxxwwwwxwwfwxwxwwxwwwhwgxwxwxgxxwwgwvwwvgxwxwwwwvgvwwwwwxxwwwwwxxwwwxgwxxwxxxwvgvwwxwwwwxwxwwghxwxgwwxwvhwxgwxwwxxxwwwgxhxxxxwwwwwwwwwwwwxvwvwwxwwwxwvfwxxwwxwxxwwxxwxwwwwwwvxwwwwxwwwgwwhxxxwwwxvxwxwwuuwgwwwwxvvvxwwxwwwxwwwwxxwxwwxvvgwvwvxwwfvgwxwwvgvxfwwwwxxwwwxxwwwxwwhwgffwwwwwgvgxwevegwgxwgwwxxxvvwwxwxxxxxwwwwxwwwxwxwefufwxwwwwwxwxvghxgxwwwxxwwwxvhxxwxwxwxwvxgwxuuxwgvggwxxwfhwwgwwxwxwxwwwwwwwwwxxwvvhwxxwhwwvwwgvxwwfxvwvgxxwwwxxwxwxwxxxwgvwwwwwwxwgggwxxwgwwxwwhxwwwvvhhxwwwxwwxwxwwxwwxwxwxxxwwxxxwwxwvvvwvwwvgwwwwwwwwwwwwvxxwwwwxwgxfVwvgwuwxwgxgwwvwvvwwwwwxwxgvvguwxhwwwwgwwwewwvwwwwxwwwwwxvgWgvwfvwxxwwwxxxwxwwwwwwxxwwwxxgxwfwewwwfwxwvwgwwxwwvxvffwvwvgwwwwWwxwxxxxwgfwwwvgfgvwvwwuwxgxgwxwgvvwvwgvgwwvvwwwwxwwwxwwxwwvggfvgwwwwwwwwwxxwxwwwevvwxvwwxwwwxwxxxxwwwvvgvxwwwwwwwwwwwxxwxxxwwwwwxxxwxwgxfwvwvvgwwwwfwwwwwwvwwwvwwxwwwxwwvfwuvgwxwwwvwxxxxxfwvwwwwwwvxxwxwuewvfgfwwwhwwgwwxwxwxxwxxwxxgvgwfWwgxwxwwgxwxwxwwfVgvwvwwwwwhwvwwwxxwvgxwwwxxxxwxfwgwvwwgwwvwwwxwwwxxevwwwwwwwwwwgwxxwxxxfwvwvwgvwwwxwwwvwwwgwwxwwwwwvwwxwwwwxwxwxwUvvvvwvwwxwxwWwgxwxxvgwhgwxxxwwwwhwxvxwwwwxwvwwwvvwxwwwwwwwwwxxxufUfvvwwwvwwgwwwwvgwwwfwwvxwvwxwVwwwfwuxwxwwwwvvvvwwgegvdvggwwxfxwwwvxxwvwgefvfwwwwwwgvwxgxwvxgwxVgvuxwwfgwgvwwwgfwuwgwwxwxwvvdwwgwwwwwxwwxhxxxwgegdggvuvwxvwwwwxwgwwwhxvwwwwwwwgwxxxxhxvhhwwUfvgvwwvgewewuwgwwwwxwewgwwgvvvvFwvwvxwwgvwwgwvgwwgwwxvwwgwgwwvvvwvfgwwvvwhwxxfwgwvwwvfwwwwfwwxgwxxwxwxxVwgwffVvwwwwwguuxgwwxwxxgxvewwwxvwxfxwvwwwxwwwwvwwffwwwhxhgfwwwxwwhgvxxxwwvxwhxwxxvxwxgvwwwvwvwfffwggwwvvfwxwwwvwwfvgwwwwwxwxwxxwxxwwgewwufwguvvvxwufwwxwwwxwwxwwvwvuwwwwwwxWwxwwxwxxwwxhgxxvwfVvfWfvgwwwwgwvwxgxwwwxwgxwwfvvvwxwgxwxwwwwhgwxwwwwxxvwwxweXwwwgwwwgVxgxxwfwwwxwxxxwxwwxxxtwwwvvwewfvdwwvwuvvfwwwxvwvgwwwwwwwvghxwxwwwwwxwwwxwwwwwwvwvfvgfwwwwwwvwwwwwwgwwvwxvxghgvxwwgxwgwwxxxwwwfvvwdwgwwwxwxwwvwvwwwwxxwxvwwvwwggwgvhwwxxxwwgwxvwwgwugwwwxvxwxwVxxgvwxxwxwwwxvwwwxxxxwuwwvwfgwfwvvwvwwwfwwfwwwwwwwwwxwwwvwgwgwwwgvvxvvfxfvffgwgvvvwwwvgxvwwvxwwxwwwgfwvxvvgwwggvhhwwwwwwwxvfhvwewvgwWwwwwwxwwwxxwwvwvwwgwwgwwxwxxfwxggvgewuxwwvwvwwxvvfxxxWxxwxwgxwvvfwwxxxxwxvxxxwwvxwhvvfgfwvvwgfgfwwhfguvxvgvwggwwvwvuwwvwwfuvgxhhwwwwxwvwguxwwgvvwwgfwefwgwwwwvwwvxwwgwwwxwwgwxguxwvgwwhxxhhxgwwwwgggxfwffwxvwwwffwxwwwhwxwxwwxwwxwwwxgxgxwwxxwwwxwwxwwwwwxwwxwwvvxgwxxwhxxwwxwwwwwxxwxwwgwwxxhwxxxwwwgwVvwwvvwwwvwxwwwwwwxwwvvvxwgwxxwwwxwwwguwvvvwgvwwvvvwxwwxgwwxxwwwgxvwwwxwxxwxxxxxwvwgvwfwhvwwvwwwxxgwxgwggxhggwwwgxwwwxfxxgwwgwxwwxxwwggwvwwWwvhwwvwgwhhhwgxxxxwxwhxxxwxvwgxhxxxwxxwxxwgfggwxewvwwvwfvxwwwwwwxwfuwhwwwwwwxxwwxxwxxxwxxwxxwvvwgwvwhvwwwfwwhwwwghwvwwwvwwvvwwwxhxxxwvgwwxxxwxxwvwvgvvgwwwwxwwwwwwwXxfwwwwwwwwxwxwwxhwvxxxwwxxwgwwwvwwwwwwwwwvxxghwxwxxxwxhwwwvxwwgvxwwwwwwwxwwwwwwwwwgwxwguwvvvvxwwwgwxvwvwwvfwwwwhxwgwwwwvfvwwugxxgwwfwvwwwvvgvvvegVvwwwwwvwwwwvwWwxxwwwgggfvxgfwvgvwwfwvvwxwgvxvfwxwwwxgxxvxxwxwwvuvvvvgvuwxwxxwfvvxxwfwvxggxfxxxxwxwwwwwxvwwwfvfvwwwvvwwWgwwfgvtuWwwwwhwwwvwhvwwxwwvwugwggwvgwwgwvwwgwfwvwfwfwwggwxfwfgwwxvwvvwwfewxvvxxwvwvvwgwfxwWxwwgwwvfwwvwwvvvgxwwfwwwxxwwuhwwwvxxxxwvwfxxxwxwxwxxvwugffugwxwgxgwvwwwvhwxwwwwwwwxvwxwwxhwgwwxxgwwxvwwwwwvwwwwvuwgfwxwgfwvfwwxxwvvwxxxwvwgufgwxwwwwxwwwxxgggwwwgwxwxwxxvwxggwvvxvwxxwwuwwwhxwwxxgvxgxwvwwwwwxxfxwxgxwxxVvgwwwwxxwxxxhwwxwxxxwxggxwwhxwwgwgxwxwgwwgwffgwgvxwwvtvWhwwvgwwxxwwvgwwxgwwxwwxwxxwwwwxvvwggfwwwhwwewvxwguwxgxwvwwwvwxxxxxwwwwwwxxxhwwgvwwwgwwxfwwxwggwxxfgwwwxwggxfwwxxwvxxvwxwwwwwwwwggwwwxxxwxwwgwwgwhxxvvvgwwvgwwwwwwgvwwwwvwvvwvxwwvwvgwwwvwvwvwwggfVvwwgwfvgwwgwwwvwwwwwwvwfvwfwvgvgwvgfwgwvwwwvfwvvgwwwwfgwwwwwgwwwxgwwwgwxwwwwwwwvvwwwxwwwxxwxxxxxwxwwwgwwwwwwwgwwwwfwwwwxwwgwwwwwwwvwwgwwxxwwwwgxwxxwwVewwVewvvvwgGVwvvfwvuugwwvVvWfevvwvwvwfwwffvvgwvwfvvwexWwvwgvwevvvvvwvfwFvufwwwwwfgfWXgEvvvwvvwVvgwwwgWVvvwWwgWUggFwwvvwgwgvuwfwxgwwVgvgwgvfvfvfxgffvvwvWwwxwxgwwgvwgXvwgwgwwvvvwwevewfvvwhwgfwvghvwggghvwwVwvxwXvxwwhwwwwggXwgvhgxwwwwvvgwwwvvwfwwwwgwwvwvwvwwgwwwwwwwvwgwwhwxwwwgvvwwwvwvwwwwwvwwgwwwwgwxvwwgwWwwgwwwwxwxgwxwgwxgfwwgxwwwvgwwwwwxwhwggwggwwwxwwwwwwwwggwgxwggxxxhwxxwwwwxxwwwwxhxwwxwxwvwwwxwwwxxxxwwhxwwwghxwwxwxxgwggvgvffwevfwvvwvweevwfgegwwfwghgvvwxvwwwuwvwxwwfwvwfwhwgwwwgwwvvfwvfvVuwvgwghgvwugwGgTxwwWwwwuwgwggWgexxwwgwvwwwwwwvwwwfgwvvwwxfwuwvGwuwgwvgvvvvwwgwwXgfWwgfwwwgfwvhvguWvuxwwgwgggwxgxgwwVhvwwwwwfxxwggwwwhhfxwgwufvwxtggwvvhvvvwvwwfvxwwwvfwwwwwgvwfwfwwxwvfWvwwwwvwxwwvggevefufevvvvvVevgvegwwwvwwwwwfVvUvdgwwuwwgvgvwwwwgxgwwgwvuvvvgVwvfwvwfgfwwwwxfuvgxwwwVvVwvxwwwwvxxVfvgfggfhxwgxfgggwvwwwvxwxwgvvfwwwWxwwwwwwvvgvwgfwxvfvwwwwxvgwxhgwxwvwxvvvhwgwvfwxfvuxvffVwwvfgvvvwxwgvfWwfvwgvxwwWvfgxwwwugvwwwwwvggwfwwwwvwfwvgggfgfxxwvvggfxvfvvvvgwwvguxvwwwvwgwgexwfgwwwgwwvvwWfgwwxwxwwwfvvgwgggxwxxxwvVvvvwwwwwevgggxwwwwwwwgfwgwwvgvvggxgwvgwwfxwgVgwwwwuggfwgvwwwwwvwxggwwwwwxfvvwwgwvvwwvvxwGUwwvgguwvxgwvwvvwwuwvfvfwwwwgwgwwxwffwfufwvvwwvwggvvwwwvfwvvxxveffvwwwwwxwgwwwwwwwgwhxufwxwgfwfvgwwvhwwuggevfvhwgweWwhhwduvguwhwxwvxhhwvwvGWGVwxwwggwgwuwuwwgwwgvxgwwgwWwWgVxhwgwwwfwvVwwwwxwxgxwwwwwwwwxvgwhwwuWgwfwwxfvwwvwwVevgggwgvgxvvvwwgvvxwXWuwwgwwxwggwwwxwwwvxggfvggwgwwgwfvvggfwgwwwfvvwvvgvfvvwwwgwwwwvvgwwwwgwwwwUvvwwwvwvxwwwgffwWwgWgwwwxwuwwvXwwwwxwvwwwggwwfwgwhvvxugwwxwvvwwhxvvgwxxxhwvwwxwvWggegwvwvwgwwxwwxswvwffwffwfxvwvfwwgvwwwvvvwfvvvwfwvwwefvvgwwwwwwvhwxwffvfwfwuwvwTvSwvWewwgvguwuwwwwwguwvvfwgtWwwfwwwgwwwvgxwwxgweuwfgvvhfgfwvwgwwwwgwxwwwwwEvvwvwxvwfwxwfxxwxwvwfvufvfwvwwwgwwgwvfxwxwfWwfwwgvgxwhxxxwxxvxvhfvxxvvvwfffvgwfwvwffwwwgwedxwxvvwfvggwwwfwuwwwgvfwfgwwwxwwxwwwvwfvwfwvwxxguvwwgwffwwvfwwwgfwgwvWvfuwwvgxvxgwwwxwwvxwwwwwwgvvgggvvvwxguwwwwfwwxwwgwxvVvwxvwwxxwxxxwwfhhwxxwwwwwfvfvwwwxxvwwgwxwwwwwwwwwwgwgxgwwxwgwwxwwxgxwxwwevvfvuwwxwvwguwvvwvwwwvhvxwVeweuwfuwvwvvvwwwxxxwwwwvfwdfUvvvvfvfvvvwhxwwgvxxgwfvvxwwwgwwwwwwwgwvxXwexxwwxwvvfSevwfvxvwgxvwfxxgvgvwvwwxgwvwvuwwWgwgwwgVVwvgwwwwgvfwwxfvdwVffvwwwwwwxxxvwwgfwxwgxvxwgwxwwhffxxxwwvhxvgvxwxffvfvfwwwggfuvfffvwvwfwwwevxwwwwvxwwwwwxwwvwwwfwwwxgwwgwgwuvwxvxvvgwvwvwwwwwgwwwvwwwvwwwgwgxvggwwwwwwvwwxdvexvwvwwwggxgwwfgwwgxwwvwvvwgwhwwwffwxxwwwwxwxwvxwugfgwwvwwvwwxxuvwgvwwwwwxwxwxwxxvxxugfwvvwvvwwwgwgxwxvwwgvwvvvwwwwgvxvvVvwfvvwxwvwgwvwwgfufwwvwwxwwwvvwwfuwfUvwfvvvwwwxwWvugwvvxwwwggVvvwvvvxfwwvfVfgwvweuwgvgwwfwxwwwvxgwwwvwwwwxxvfVvvvvwvwxwVvugwwwwvxxwwgvvvwwgwgxhvwwgwgxxwwwwffvgwvwwgvvvuwvggvwwwwuvwwwgwgevfwvwVvevwvfvevwwvvhvxwwwwwwwvwfwwwgvwfwwwwwvvgxwfvvfwwwvxwvvxhfwwgfwwwwxxgxvvffvfvvfvwxvxfvvwxwvwfxwfgxwgwwgwxwwhwwguwwxwwfvhwxvwxwxwwxwwgvwwwwwxwxvvxgwguxxxvxxvwwgewxxVvwwwvwxwwwvgvwwvgwwwwwwgwvvvvwfwvweghvxwwxwvffvvvgvwvwwfvvvwgwvvwwwxwvvuvxwwwwggwgwwvxgwxwwwwxxwffvwUvwfwxxeVfvxvwwgggwxggvwwgwwxwwwxwwwWwwvwxwwgwwuvwwwwgxwwxwgwvvxggwwwwvwxXwwvwxwwgwwwwxxwufwvvwgvwwwxwwfvvgwwwwfgvwwfvvwxxwwwwgwewgvwwwwgwvwxwwfwvwgwxwgwwwwvwxwwwwwwwwwwvwxwxxhvgwxvvwgwxvxxxgUvgvvwvwggwwxwevgwwwwwvgggxwwwhwxwhxvgwwwvwwxwwwwvxwvwwwwwgfxxxxwvfxwwwvxxwwxwwxxwwxxvxwwvwwvxwgwwhvwwgggwwwwgwuxwxwwwwwgxvWxwhwfwwvefwgggUwwwwwwwwwvxwwgwgggvfwxewwwwexwxwxhxxwxxwwwwwgvwwwwwwwwwwfgwwwwwxxvwwxwxwwwwwxwhwwwwxxwwwxxxwwggxwwwwwwwwgxwxwwgWwwwwxWwwwwwwwvwwwxwwxwxxxxwwwgwxvxwwgwwvwxgVggwwwwgwfgfwfvvwwwvwwwgxxwwxwvwwxwfgwwwgxfxwvwwwwwwwwwgvvwwwxwxwwwwXxgWwwvxWxwwwwvgwuvwwgWxxXgxxwgxxwuxwwvwwwvwwfwvgwxwuwxwwwwxxxwxwwgwwgwxgwwWxwwxxwxvgxwgwxwwwwhxgWxhwwwxxwxxuwwxxwxwwwwxwxwxwwvwwxwwxwwfwwwhwvxvxuxwwwwxwvwwwvwwwwxwwhhxxwxwwfgwfggvwvwfgwxwwWxxwwxgwwwwwxwwwVxxvwwwwhxwwwxwwxwwwhvwwwwhWxwhwgwggxxWwxwgwwwwwwwfwxwxxwwwwxwxxwxxwwwuwwwvgwwwvxxwxxgwxxxxwwwxxwwhxwxxxxxxwxvxwwwxwwwhvwWwvXggvwfwxgXgfwwwwxvxxwxgxxvwwwgwwxxwgwwvxwxwvxfggvXwwgxufwwwhwxWhxwwgxxwhwxwwwxwgwxxxxWwwxwwxxwwwwwxvxwxwhxwgxwWwwgWgwxxhwwxwgwxxwxghvxxwxxxwxxvwxhvgxwwvxwxxwwxxwwxwwwwwwwwxwxxgwfxwxwxgwwxwvxwxvwxvfwgwwwwwwvggeTvwxgxvhxuxxwxwwwwwwxwwxwgwwhwwwwvwwwwwwvxwwwwwwxwwgvgxwxxwxxwxxxwwwwwwwxwhwwxwxwwwgxxwxxxwggwewxwwwwwxgvwwxxwxxwwwwwwwwxxxhvfwwWwwwwwxwxxxwwwwwwxwxwwxxwwwwxwxxwxwwgwwwwwwwxxwwxhwwwxxxwwhwxxxxxwwwwwxxwwwfxxwxxwwxxxxwxxxwwwwwxwwwfxwwwxxwwgwwwwwfxwxwvwfvwwwwvvwxxwwxwxwwfwwwxwwwwwxwwewfvVvwwwwxxvwvwwxwxwvvgwwvwxwhwxxxwfvfuwxwWwwxwxxwxxxwxwhxxxwyxxvwwwwwgwwwwxwxxwwwhwfxvxwxxwxwWwxxxxxwwwwwwwwxxxxwwwwxxgxxxwwwxxwwgxxwwvwvwwxvwwwxwwwwwwxxxwxwhgwxwxwwwwwwwxxxwwxxwwwxtwwwgvvwwwwwfwwfwvwwwvwwvwwvuwvwwvwxwwwwwwxwvwwgdwwggvvuwugvvgwugUvdwwwvgegwwwwhwfwvwwvwxwwxwwfuwvwwvwwfuVwvvvgVwguwwfwguvfwwwxwwhwvvwxwwxwwxvwfgvewwwwwxvwwvwWwxgwwwwwwwwwxvxwvxxwwwwvvwwfvgwfggvgwgvwwwvwwvwwwfwvwvwvxvwwfuwwxvhvxwwwvvwwgvfwgvwgwvuvvwwwxvwxwgwwvggwwwvxwwvwvwwwwgwxwwwxwwgufwfwgwvvvwwwwvxwvgwwxwwwvvwwwxwwwxwxxwxvwvwwxwwvwwvxwvxwwxggxwxwwwwwvxwwwxwxxxvvvwWTgwwvfvvgvwvwwfwwwwwgwvvfwvwwwgvwxwwxwwvwgvwvfvvuveuwwvvwxhgwwwgwvwwvwwwwgwuwwxwwwwgwguwvvgudugvhwHwfhwxwghwgWFwwwvgwvxwxwgvhwwfxxwwwwguvwwwWgwvfwgwvwgxhWewxwhwwwwwxgwxxgWxgwwwwwwwwwwwvfvfvvwfvvwwwwvvvgwwwgvgfwvwvvwxwxwvwwuwwwugwwwvwwggwwvwvwvwwwvvwwvvgvwgvwgwuwwwwwvwwwxvgxwwvwwvxwvwxwwevwwwWvgvwwwwwwwxgVgwvwwxwwwwvwwwwhwvwvgxwwvxwvwwxvwwxwxgwfwgxwwwhwvwvxwxwxgwwvvwwwvvwwvwgwwwwvwwwwgwwwwwxwwxxwwwwwwwwwgvxxwwwwwgwfwwwgwwggwgxvxwwwwwxwxwgvwvfxxvwxwwwwwvwgvvwwwwwwvxwgxxwxwwwwwwwwwwwwxwwwvvwgwwwwvwvwxfwwwxxwwwwxwwwvxxvwwxwwxwwwwgVVvwffwvwgVVvwvxwvfwxgwgwgwvwwwxxwwfxwwwxwhxwwwwwwfvuwwwvwxwfWvuwhwwgwfxggxwwwgwvwgxxwwwxfwwxgfwvgxwwwVVwvwvxwwvwwxvfxwxwgwvxxxxwxvxxwwxwgvwwwwfwgvwwwxwwvwgvwwwhwxwwxwwxxwxxxwxwvxvwgwwwwwwvwgwwxwwxwwwwwwwwwvxxvwxxxxxwwfwgwwwgwwxwwwwwwwwvgwwwvwwwwwxxwwxwwwvgwwwwwwwwwwwxwwxwwwwxxwxwvwwwvxwwxxwxxxwwghxwxwxwxwwwwwwwwwwwwwwwxwwwwwxwwwvvxwhwxwwwwxxfwgwwwvwwwwwwwwgwgwwwgwxwvwwvwwvxxxwvxwwxxwwfwxVuwwwwwwwwwwwvgwhwwxxvvxwwwwwxwvvxwwfwwxwwwxwvgwfwvwwwwgwwwwwvwwwvxxwwwwwwvwvvgxwwxwvfwwwgwwxwwwwwwwwwvwwwwwwwgxwwwxwwwhwwwwxwxvwwwxwgwvwxvwfwwvgwgfxvwwwvwvwwvvxwxvwwvvxgwfwwwwgwvwvwvwvwwfdvgvgwwvevuvwwwwwwuwwfvtvwvwugwuwwxwxwvxgggefwxguwwwwgvvxvwvwxxwwxwwgVwwvwvwwxuwwwxwxxxxxwvffvfwvuwvwxhwwwwfwxwgggwuwvxuwhxxwwvwwxhwwxxwffffwfdgwvwwwwvvwWeWwvgwvvvfwvwwwffdvwwgxwwvuwwwwfwwvxxwwwvvvfwuwwvuxxguwwfxwewwvhwfvvfgwwfwwgwxfvwwvwxhgwwxxwwwvfwfvvwvwwgvvwvwwgwwwwgwwggvwvxwxxwxxwfwwwwxwwwwxxxwvwwwgvgwxffwwwxgxwwxxwwwwwwgfxxgwwxwwxwwwxwgwuwwfwwwwxvwwwwwwvwwwwwwwwVgwvwwwwwwwwhxwwxxwwwfvvvvvwvvwvxwgxxxhgwvwwwwfwxwwwwwwwwwwwwuwwwwwwwwwffwwuxwhwhwwfvVgwwgwxwwxwwwwVxxwfwvwxxhwwvwvwgxwxwwwgwwhxxxwgvgwwwwggxxxgwwuwwwffgvvwxwwwvwgwwVwgwvxwwxwwvwuffgwxvxgwwwwXgvwxwxwxwwwwvggwvgxwwvwwwxhexWwgwwwwwwvwwhwxxwwwwwgwwxxwfwfvwwgxwxvwwwghwuwgwgwwugwwwxwvwwwwwgWwwwxwwwwwwuwwfxxwwwxwvwwwwwvxxwxxwxwwwwwxwwwwwwvvvvxwWwwwwwxvxwgvvwwwwvwxxwvgwvxgxuvvgugxvgwwghwwwwvxuwvwxxwevwgvwwwwwwwwxwWwwwwxxffwwwwwxxvwvwxwwwwwfvuvvxwwwwxwwvgwvgxfvuwxVxxwvwvvxwxxwvwxwwwwxwxwwwwwwwwgvvvgwgvxwwwwwxxwwevxgvwxwgwwwwxwwwxxwgvwxwwwwxwwwwwwwvwwwwwgwvgwwgwgwwvxwwgvexgwwwvxwvwwwwxxxwvwwwgwwvwwwvwxwwgwwwxxvwxwwvxwxxxxwwxxwwxwxxwwvvwwwxxwwwwxwwwwwvwwwwwwWvwwwwxwwwxvvxwxwwwwwwwxxwvwwwxwxxwvvvxxvwuxwwxwxwwwwwxwxxwxwvwwwxhwwwwxvwgwvwwwwwwghvwwxwhgwwhhfwwxwxgvgxwgxwxwwwgvWwwfwxwxwwwwvxxwxwxwgvwwxxxxxxwvwwwvvgxxwvwxwwwxwwfvvwwwxgvwwwxxxwwxwvvxwwxwxwwwxxxxwwwwxxwwwwwwxwwwwwwwwxxwwwwghguxxwxwxwxwwwxhwxhggwhwwwwxgxxwgwxxhxwgxxvxwvwxwxvwxxxxxvwxwwxvwwgwwggwwwxggwwxuwuxwwwwwwvwgxvxwxwxwgwfgvxwwuwwwgwxvwwwwwfwfwfwvwwvxwwhvvwvxgfxxxgwgxwwwwhwwwxwgwwwwxwxxxwxvwgwwfwvwwwxxxwWhxwwwgxvwxwwwwwwwgwwwwgxwgvwwwwvghgxxwwwxwxwwxxgxgvwvWwwwwwwwfgwvwwwwvxwwvwgwwxwvxuwwwgwvwuwgwxwgxwwwxwgwwxwwwvgwwwwxwgxwgwWhvwfgfvxxxxwgfwwghxvgxgwxxvvgwxxvxgwxxxwwwvxwwvwxwgwwwwvwwwwwvwwvxwxwwwwgwgwwwxxxwwhxxggxwxwwwwxXwwwgvxwxxwfgxwvwgxwvwwwxwwxgwwwwxwwwxwgxwgvwwwwgvhwxgvwwwgxvxwwwwwfwwxwwwwgxxgxwwwuxwvxhwwwwxwhgvvwwwwwxwewgwxvwwgxwwwxwwwgwxwwwwwwxxhxxvxfxxfwwggggxhhfwvwvxwwwgxwwwxxwwwwxwxgwxxwxgwxwwxxwwwwvwwwxgvgvxxgvwxwwxgwwwwhgxvxwvwwwhxvwuwwvxwwwxvehwwxxvgwwxhvwwwwwwggxxwhwwvxwwgwvwvwgxuwxxwwgwwvfhwgwvwwxwvfxwwxxwxxfhwgwwwwwwwwgxgwxxxwwxWWgwxwvhwwxxxxwwwwxxwwwwfxwwwxfhvxgvvwgwxwxxvvxwwwxxwgwwxxvgwwwwgvwwwxwwvwwvvwwxxwwwvxxvwwwgvwwwwweUxwwwwwwwwgxxxxwwxwwwwwwhxwxgfvwwvvwwwwwvvwwxxxxwwvwxwvwwwwwxxwwwxfwwxwxwwvwwxwwwwhhgwwwwwxxwwxvwwwwxxwgwxxwxwwxvgwwgwwwxwwwwwwvwgwvgvwvwwwwxgvxxxxgwwwxwvxfxwwwwwxwxvvvwxxxxxwwxvxwwxxxwwvwxwvwwwvwvxwxxwxwwxvwxvwxxxxxwgvxggfwvxwwwwvxwwwwwfwxxwwwwwwwwvxwgwwwxxxwwwxwxfwfwwwwfwwfxxwwxwgxeewwgwwxwvwwfwxxxwVuufwwxxxggxxvwwgxxwwwxwwwxxwxwvgfwwxhxxvvwwwhxxfwxwwwxxvxwwxgxxwwwgxwxwwxwwwwxxxwwwwwwxxxwxwxwxwfwwfxvxxwwhwvwxxwxwxwwwxxxwxxwvxwwxwwwwxwwwwwwwwgwwwxwxwwxwxwwvwwwwggxwxwxwwwwwwvwgvwwgvwwwvxwwwwvwgvwwvgfgwwwgwwvwwwgwwgwwwvxwwxxxvwwwwxwwxxgxwvwwwxwwwwgwxwxwwxvwxxxwwxwxggxwwwxwwgvwwvxxwwvxfxwwwwwggwwwwvxwxwwwxvwwwxwwxwwxxwwwwwxwwgxwxgwvhfwwwwgwwwgwgwwvvgghwvwxwxwxwvxwxwwwgwvxgwvwwxwwwfxwwxwwxxxxwwxxwwwghfgwvwxwxwwwxxwwwxwxvwwvwwwxvwgwwwwwwxwxwwxvwwxwwgvxxwwxxxwwwwvwwxvwwwwgwwwxwxwwgxvxwwxxxwwggvwwwxvxwwwgwwfxxwwvwwwwgwxgwxgwxxwxwxgwvwxxwxwwwgxwxwxxxxwxxxxxwgfgwwwxwwxwwvvwwxwvxwxgxxwxwgwvwhwvxwxwwwxwwxggvwwwggxwwwxvgvwxwxgwxgwvwwwwxgwwvxxgxxwwhwvwxxwxxwwxxwxxwxxhwwggwwwwxwwxwwxxwxxxxxwxwxxvxwwxwwVwgvvxwxwgxxwgwgxwxvxvwxwwwwgxwwwxxwgwwvfwfwvwwwewwwwwfwwfvvvvwwgwwwwwgvxwgxxhvwwwgwxvwgwwwwwvwwwxwwgxgxwwwxwwxhwwxwxwxwfxwwwgwgvwwwwxwwxxwgwxhwxwwxwwfhwwgwxxgwvvwwwwwgvwvxwwwwwVvwwwgwvwvwgfvgvxwghwwwWwwfxwgfwvwwgwgwgwwwwvgwwwwfxfvwvwwxwVvvuuxxfgwvwwgvwwxggvwggxggxvhwhwwvhwwwwxgwxwgwgwwxfgwwfwwwxwwwxwvvxfwwwwwhxwxgxwwwwwxwxvwxgxxvvxwwffxwxxwvwxxxvwggxwwxxxywvwhwwwxwhwxxwwvwvwgwwgwxwwwwwxwxwxfwwwwwxxvwwwfwwgwvwwxwxwwwvwwwvwggvwgwxwuwwxgxwwxxwxwxwxxvwwwxwxfwwxvwUvwwwxwxwwwfgwwwwgxwgwxgwwwhxxxwwwxwwwvwwgwxwxwwgxwvwwgwwwwwwwxwwwxwwwwxhxvxwwwwxvxvxwwwwwwwxwWvxwwxwwgwwhwxxvxwwwwuwwwvxgxggwfwvwwxvwwhuwwgvgvvxhVwxhvgwwvwwxwhwwgwvwwgwwwwgwwwvwwwwwwwxwWvhwxwgxhgxxgwwWfgvfwwwxwhxgwxwwgwvwwwxwxwvxxwwwwxwwhwvhwwwhvwxxvwxxxwgwxwwxwwwwwxxvxwxvwvwwvvwwwwwwwxxwwgvwwwwxgvwvvxvvwwxwwwwwwwwwwwwxgvgwwwwhhwwvwxwxwwwwxxxwxwwwwxxxwxwxwwwwxxwxwxwwxwxwwvwwwwwvwxwvxhgwxvwwwxwxwvxxxwvwwxxwwwxxwwxxxxxxxxgwwxxwwxxggwgwxwwwwxxwxxxxgwvwxwwxwwxwgwwwxxwwxgvgwwxwxxwwgxxwxxxxxxxwxwxwxwwxxwxwxxwwgvwxxxvwxxwyxwwxxwxgwwxxwwwxxwxwxxwxxxwvwxxwwxwvwvxxxxwxwwwwxxwwwxxxwxwwwxxxxxwxwvxxxxwuvvwwwwwwgwwvvwxgwwvwxxvwxwwwvwwvxwfvvvhvfvwwwvfvwvwwwwvwwggwwwvvwwwwwewwfwvwgvgwwgfwwwxwwwwwwxxxxxxvgewwvwwwwwgwwxwwhwhvxwxxxwwwwxxfvwwwwwgffvwfggwwwxxwwvwwxvwxwwwgxwwwwwxwwwwFdvvgwvvvwwxgwgfwwwgwwvhwgvwvvwwxwwwwwwwwxwwwxxhuwwfvwfvvwwwwxgwwwgwwvwwgwwwwwwwxwwwwwxxwwxxxfvwwwwvwwvgwgvvwwxwwwhxvwvgxwwwwxxxxwfwuvvwwfguwvwwfwgwwxfwwwwwwwfwxxwxxgvwfvwfvvwwwgwxwwhwxwgvwwwxxxwwxxxwwxgxwvwwvffwwwvxgvfxvwxwxwhxwwwwgwxxwwxwvgfwgwwwwvwwwwwwwwwwwxwwhxwxwxxwwxxggefvvvvwfuuwvwvwWvwgwwwwvwvwwwfwwwxxxxxwwwwgwwxwxvvvgvwvwwvwguwwvwwgxghvwwWwxwwwwwwxwxwwxxwwwwwwvvxuxwwvwwxxxwwfwwwgwwxvxgxwxwwwwwwwwwwwwxwxwwwfvwwxxxwwwwxhvxhwwwwxvwxwwvhwxwwwwxwwwwxhvwwwwfggwwwxwfggwxhxvugvfwwhfvwxhwfgwxgxxvxwwwgxwxvwwhvwwwwwwwUvvvwwxwwwxwxxWwgwgwwxxwgWwxxxwxwxxwwxxwvwwxwggxwvwwxgwwxwwwvwxgwwwwwwwwwxxwwwgvwwwVffwwvgwxwxwhhwWwxxwfggwxxxwxxxgwxxwxxxwgwfvwwwwwgxwwwgwwvwwxxhwwwwhxxxxwgwxxhxxxxxUvfwwwxwwwvwhxWwxwwgvwgwwxwxvwxxyxwwwvwwwfwwvwwwwwxwUvfvwwwwwxwxyWwgvgwwwwxwxWwxhwxwwxxwxxwxxxvgwvwgwwgvgxwwwxxwxvxwwhwwxxhxywwfvwwwwwxxhxxxxxxxwwgfwwwfvgwwxxxwwwxxhwwxxxvxxxxxwxxUvfwvgvwvxwfxwhxvxwxxwvwwxxxxxwwwgxxwwwwxwvxxwxxvwxxxhxxwxwxwxwwwwwxwwwwxxxwxxxxxxwxxxxgxvvwwwwgwggwwwwwwwwwwwvwwxvvxxxwfwuwwwwgwwwfvvwwwwwvxvwwwwgwvxwxwvwuxwwwwwwwxxwxxxwwwgwwvugwgwvwwwwvwwgwwxwxwfgwvwwwwwwxxxxxwvgvwvvvvvwwwwwwwwwxvxxwvvwvwvwxwxwxxwxwxxxwxwffvVggfwfvwwwwgwvxgvwwwvwvuvuxvwwxwgwwwxwwwfgwvvvgwwwvxwfwvwvgwwwgwwvvvwwwwwxvxwxwgwwxwxwwffewwwvwgwwwuvwwwwwwwwgxxwvuggwxxxxvwxwwhxwxwxxxwvvVwwfgwwwxwwwwwfwxwxwwxwxwxwuwxuxxwwwxwwhxxwxwwwwwwwwwwxwwfgwxwwwggxvwgwwwwxugvwxxwxxxwwwwugvwvwwwvwwwwxwwwufvwwxxwwxwwwwwwxwwwwwwuwvwwwwwvxwxwxvxgggwvxvvwhxxxwgxwwhwxxxwwwwwwwwxxxwwhxxxxwwwwfxwwxxwwwwvwxxgfvvfvugwwxwwufvwwwwwwwwwfwwwvwwxxwxxgwxxxwxxxvfwggwvwhwxxwwwvwwxwwwvwwwxwwwwwvxxxwfvufwwwxxxwxvwwvxwwwwhwwxwwgwfwgwwwwhwhwhxwwwwwwvwwuwwxxwwwwwxwwwvwvxxwxwxvvwwvvwwwvgwvvwwwwvwwvwxwwvwwvwwvvwwvuwfuwwwwwgfvwgvvfvgwwvxwwfwwwgxwxwwhuwwwvwwwwwefvvwwwwwvxwvfwwwwwxvwwxwwxwwwgwwwwwwhvvxvghvwwwwvwxxxxwwxwvxgvwwwwfvwwvwgwfwwvwwvwvwwwvwwwwwxvvwxxvgwxxxwwwwwxwgvvwwwvfwhwgvhwvxvhwuvfxxwuwwwxwwvxvwwwwhxwgwvwvwwuwwuvvwwxuvwwxwwvwgxwxwwgwwxxxwvwxhwwvgwwwwwvwwwwgvggwwwwvvwwxvwxwwwxwvxgxvwwvwwvwwvgwvvwvvwvxwvwvwxvwwxwxwwfwvwwwwvwwwvvfwxwgwhxwuwwhxxxwgxxwwgwvwgwwvwgwxvwvvwwgwuwwwwxwwwwwxxxwwwwwwwvwxxxgwwgxwwwwwxwxwxxwwhwhhhwwwwgwvWwgxwwwwwwwgwvwwwwwxwwxwgwxxhgvxvvWvwwwgwwxwwvwhhxwWxvhvxwwxxgwxhvxwxwhwwwvwwxwwwxwwwwwxwxwwgwvwxwwwwvxwxwwxwwxxvwwwvwwwwxwfvxxxxwwwvwwwwwwwwwwwxvfwwwvwwwwwwxwwwwwwwvwwgvwwxvfwuWwvwwwwwwxwwwwwwwxuWwwwvwwwwwwwxwxwxxwvwwvwwwvwvwggvfwwwwwxwxgwwwwwwxwwxvxwxxwxvWffwwwwwwxwwwwwxwwwxwwwwwwvwxwwxwxxxwwwwwwwwwwwwwUUwwwwwuvwgxxwwwwwxxwxwwxxxgguwxwwwwwxwxwUUwwwwwugvfwgwggfxxwwwWgxfvgegxwhgxvwxuWxhhgwwwwwwvwfwgwwvwwwxUefgxwvxwgwwxgwwvxwxxxwwxexwvwxxxwvxwwUgvxgwwwfvwwwwwwwvWwgvvfxwewxwxfxwxwxwvwwwwxgwwfwwwwwvwwwgvwvwwwwwvwvwxwwwwwxxxxwxxwvVvwvvvwvxwwwwxwwwwwxxwwwxwxxwxwxwwwwxwxxwgvwwwxwwwwwvxwwwwwwwvgxxxwxwwwwxxwwxxwwxwxxvwvwwxwxwxwwwwwwwwwxwwwwwxxxxxwxxxwxxwvvvwgvwwwwVeufwvwewvxxwgwwwxxwwxwvwxgwxvwwgvugwwvvxwwvWwxhvvwxwwwwgfwwwwwhxwgxwghgxhxvgxvgvgxxwwwugwwvgvgwgwwwvxwxwxxxxwxwwgwxxwxwuxwwwwwwwwxvvwvwhwxwxwgwwgxwxwwwwwxvxxwwvvwwwwgxWgvvwwxwxwwwvgwwwwwwxwgwwvxwgvvwwwwvwxwwwwhxwwvwwxxwwxwwwhwxgwgwgwwwwwwwwgvwvwwwvwwxwvwxgwwxwvvxxwxxfvvxwwvvwwwxvvvwxwwwxwwgxwwwwwxwvgggwwvvgwwwwwgfvwwwfwvxxwWwwwwwwwwxwwxvwwxwxwwwxgggwwwevgvwvwfvxwhgvwgxvwwwghwgwxwwxxwhwxxxxwxwxwWfvvfvfvwxvwhxwvwwwwvvwxxwwwwxhxvwfgwwwgxvwxgwwwxgwwxwwwwxwvxxwxxwgWwvwxvvvvwxwxvxwwxwwwxvxxgvvvwgevwvhxvvwgxxwwgxhvwxxxgwvwwwvxwwwvvxxxgwxwvwwwwxwwxwwxxxvxwwwwxwwwgxwxwwxwxggvvvvwwwwwwwfwvwvwwwwxgwwxxxwwxxwxxwegwvwvxgwwwvgwvwxxwxxwwxwxxwwxwxxwwxfvwxwwxxwxwwwvwwwwwwxwwxxwxxwwxxwwxxxwxgwvwxxxxxxvxxxwxxxxwxxwxwxwwwwwwwwwwwxwxwvwgvwwwxwvwwwxwwwwgvxwhwwxwwwwwwwwwxwxwxxfvwwxxwgwxwwxwwwwwwwxxxxwgwwwxxwwxwwwwwwwwxxwwxwwwxwwwwwwwxgvwwxwxwxxwxgwxwwwwgwxwwgvwxwxwxxxwxxxxxxxxwfvvwwwwwxxwwwwwxwgwxxwwwxxwxwwgvxhwxwwwwwwxwxwwxfvvxwwwxxgwwwwwwwwxxxxxxwxgwwwxwwwwgwwxxwwwxxwwwwwwwwwwwwxwxwxwwwwwwxxxxxwwwxxxxwxwwwwwwvwwxgvwxwxxxxxxxxwxwwxxfvvwxxwxwwwwwwxxwwwwxwwxwxxxxxwwxwxxwwwwwxxwxxwwxxxxwwxxxwxwvwwwvwwfwvevvxwgxfwwgwvwwwwwwwxwwwwwwwwwwvwEvwwewgffwwwhVexwWwvfwgwwggvwwxwhggwwwxgwxhxyxwgvxwwwwwvwwwwggwvxgggwwwwxwwvvwwxxwwgwwvgvwwwvgwwxxwwwwwwwxwwxwvgwwgwhgwhhxxwgxxwwwvfwxwwwgwfwwgfwwwvvxgwwwvwggwgvvwxwwgxwxwwxwwxwwxwwfwwwvwvwgvvwggwFgxwxwvxfxwwgwgvwwxwxxxgvxxwwwgwxwwwgwxvwgwvwfwxwwfgwwgxwwwwwgvgvhwvxhgwwwgwxwxwwxgwgwwfxgwvxggxwwwwgggxwwwvwwwfwwxxxwwxwxwxvwvwggwuvgfwvgwgwwxgfwvxvwwxwgwxxxwgwxwwvvwwwwfwwwwwxwxgwwvxwwwwfwgxwxwwwwxxxvwwwgvvwvxvwwxwwvgvwgwwfwwwxwgxwxxxwvwwwxwhxwwxxxwvvwxvvxwwgwggwwwwwwwwfxxwxvxxxwxgwwwWwvwwugwfgwwwxfwWgwvwgvwvwwxwwwwhwxwxwgxgvwgvwvwwwvwfxfxxwxwwvxgvxvxwhwxwwwvhhxxxwwwfvhgwxwwvxfvgvhwwwgwwxxxxwwwwxwwxwxwwxxwxwxvwwxwxvwwvwwwwwxwwwxxwxxvwwwwwwwwwvxwxxxwwwwxwwwwwwwwwwwwxwgvwwxxwwwwuwwvwgwxxxwxwwxwwvwwwxxwwxxxxxxvgwgwwwhxwvgwxxxwwwwvvhgfvwxwwwgwvvxfwgwwwxxxwwwxwwwxwxwxxxwwvwwwwwwvwgwhwwxwwwgwwwwwxxwxwwxwwwwwwvwgvgvgwwwwgwwwwwxxwwwxxxwwwwwvwwxxxwxxwxwxxwwvgwvwvvwwvvwwgwgwxgwxwwwwwwwwwxwwxwxxxxwxwfvvwwwvwwxgwwwgwwxwxvwwxwwgwwwwwwwwgwwwxxxxwgvgwxvwgwwwvfwwxwxwwvfvxwxwwxwgwvvvwgwwwwxxxxwwwwxwwxwxxhggvvwvwwwgwvxwgwwwwwxxwxwwwvvwgxwwwxxwwwwywwwwwwgxwwxxwwwxxxxxxwwwwwwxwxxxwxwxwxxvgwvvwwwwwwwxfwwwwgwgwxwxwxwwwwwvxxwwgwwxwfvvwwwvwwwxwwwgwxwwwwwwvwwwwvxxxxwxxwxgwxxxwhvvvwwwxxwwwhvxwxwxwxwgxxwwwxwxxwxxwxwvwhxxwwgwwxwwxxxxxwvwwxxwwxxxxxxgwwxxwxwwgvvxwwfwwwwvwwwewvxwvwwwwxvwwgxwwwweuvxgtwhfuwvwuggwvgwvwwxwwvwuvwhwwwuhhxxhvwwwuxwvvwwwgwwwwvvwwxxvwvwvwxwxwvwxxwvwgvwfwwwwvwwwwhxxxwwwvwwxwxwxvwwwvvvwwwwwwfvwwvwfvvvgvxwfvwwwuwvvxwwxwgvWwuwwwvwvvwvwxwwwwwwwgfxvwwwxwwwvghxxgxgwhwxhvwvugwwvwwwvwvwwugvwxvwxwxxwxwxwwxwwuwwwwwwwgxwwuwxxwwwxwwwwwwxxwwxxxvwxxwwvwwvvwwvvwvuwwwxewvwwxwwwwuwgwwvwwxxwwggugvwwvwwwwwxwwhxxwhwgwwwwwXxxvxwWgwxxwwvwgvwvugvfwgvwxwwxwvwwxwwxvxwxwxgwxwwwwuwwgwwXwxgvwxxhvWgwxgwxwxxxgwwxxxfwwfwwgwwwwwwwwwgwwvwwwuxwwfwwxwwwwwxxwwxgwwwwvvvwwvwxwgwvwxwwgwwwxwgwwxwwwwvwwwvxwwwwwwvgwwwvwwwwvwwwwwwwwwvxxwwwvwxwxxwgwwwwwwwgwxwwwgwxwwxxxwxwwwxvwgwgwwvxvwgwwwwwwwxfwuwxwvwghvwwxwwwxwwxwxwvwwvwfvvwuxvwwwwgvxgxwwxxwwwwwwvwwwwwxxwxwwxxwwwwwwwwwwwvwwfgwwgvwugwwxwwwwxxwxwwxxhwxwxwwwwvwugfwugwwxwwxxwwwwxwwwvwvwwwwwxxxwwxxfVfgwfvvVwvwuwggwwhwxwwwgxxxfwgwxvxwxwxwwvxxwwxwxwfgwfgvwfwvwwwwwgxggwvgwxwhxwwwwgwxwhxxxwwwwgxxxxxxwwxxggfvefwwvvwvwwfwugwwwwgwxxwvwwwwwxwwwxwwxxxwgvgggwwwwxwvwwxwwxxhwwwwwwgwwxwwxwwxxwwwwwvwwegwhgvwwwwvwwhwxwwxgggwvwvxwwwxwwwxxwxwwxvgvwfwfwvwvwwwwwwwhwwwxxwwwwvwwwwwxwxwxxxhwxwxwxxwwwwvuwvvwwgggwxwxxwxvwwhwwxwwxxxwhwxwxgxhwxwwwxwwwwhfwxwwhwxwxwxvgxwxxwxwwxwxwxxxffewwwxugvwxwVwwwwwwwvwxwvhxvgvxwwwxxwwwwwgxxwxwxwwfWgwwvvgWwwwwgwwgxxxwwgxxxwwwwxxwwwwxxwwwxxxxevwvxwvwhwwwvvvfwwwvwxxwfxwgwxwxwwxwwxgxwwxwxwgwwwuwwwxvwwwwwxwwwxwwwwwwwxwwwvwvwwwvwwwwwvgvwvvwwwwwwwvvwuwwvxwwvwwwxvufwwfevvwvwwvvggvwvwvwwxwxwfuugvwwwvwvwwxwwwwxxwxwwwwfuvwwwwvwxevvvwwvvwwxwgwvvwwwwgvwwvwwxgwxxwvfwuwvvwwgwgwwxwhwxwwvwwwwwxxwwxxxwxwxgxwvggwwvwvwwwwwwUfwvgwvwvwwwwwwwwwfwwwxwxvwwvwwvwvwvwwxgwfugwggevvwfwfwwggwwxugwgwgxxvugwuwfvwwwwgwwxegwwwgxvwwgvxwxwuvwwwvvwvuvxvwwwgvwwxwvwwvwwxwwwwwwwhxxwuwwwwvwvwgwwwwwvwgxwwgwfwvwwwwwwxwvwxwxwxevwfvvwwwwwvwvvvwxxgwvwvwwwvgwwwxxwwvfwvvwxwwwwvwwghxvwwfvwhgxxxwgwvwwxxwwvvvvwvwxxwwwwuwwgxwxwxwvwgwWwvwwwwgwxgwwxgwwwvwwwgwxhxwwwxxwxwwxfxwwxgxxxxxwwwvwwfwvwvwhwvfwwvwwvfwgxVwwwxwwvwwwgwxwxgvwwvwegwvwxwxwvgvwfxxugwwxvvvgvgwvxvwwxxgxwxwxxxwvwwwwwxwwwxwwwwwwwfwwggxwwwwgwwwwwwwwwwwvxwwxwxvxwxwwwwwwwwvwwxvwwgwwwwwwwwwfvwvwxwwwvvwwwwvwwvwwwxvwvuwvuwgvwVevwwwwwvxwfvwvvwgwfwfwvwvhwxwfwvxfvvwvfvvgwgxxwfwuwwwvxwwwgwwhwwwvwwvfwwxgwwvwwxxwvwwvvwxwxwwwwvxwwwwxgwxwvggwwgfwwwfvwwgvwwwvwfwwfvwwwwxwvvwwvwwxwwwwvvwvwwwgvwwwxwvfwtxwxwxwwhwwwwwfvfvwgvxxwwvwwwwvwxxvxwvwwvwwvwvfwvwwwwwhwwvuwwvwuwxxxvuwfgwwgwxvvwwgvxwxxxwvvvxxwfvwwwvxwxvwvvwwwvxxwvvwwwwvwvwvvwxwwwwvgvwxgfwxwwxwvvgvwwwgwwwwwwwgxwwvxwwgxhwvwwxxhwwwwwgvvwwwwxwvgwwxwvxwgwvxhwwwgwwfwwwxwwgwwwxxwwxwwwwxxwwgwhwvwhxwhgwwhxvvvwfwwffwwvwvvgwwvwwwwwxvvwwhwxxgwwwxxgfwfwgwwwwvvgwwxwwxwxvvxwxwvxxwxwgwfwxxxwxffwxxfvwgfxwwwwxwxwwwwwxwgwwvxwxxwwwwwwwwwwwwwgwvxwxwtwwvwvwwwxffexgxgwwwgvwwggwwffexxuwuwwgvwgwvfvvwwxxgvVewgvwgwvvVexwgwgvvwwgwvwwgvwvvgwfvvwtgwgwvwwwvvHxwwwwgfexvgwwwwgvwwwwwwvwgwxghxgvwfvvwwxwwwwxxwwxwxwwgvvvgwwwvvgxWgwvwwwfgxxxwwwwwuwwwwwvgwxXxwxhvVgvwwvxgVffgwfVewwgvggvwwwvggVfwffggvwwdgufvvwgwwvgtvhwwwwwwwwgwgwwwwvwggwwgvxx7wfwgwwgvwwwwvvwguwwgvwvwwgggwwgvxwxwxwvwfVffwgfwwwxuVegvvwgvvwggxWwWgggwvxdwgfwxgxwwwuwwwwgwwwwxwvwwwwgwvwgwgwxgwgWvggwwwgwgxwxvgvxxwwwvwwvvwxwhwghvVvwwwwxgfehxvvwwgvwwwwwwwwwxxvgwwwfvvwwwggwwwxgwwxxxxwwgvgwvvwwwwuwwwvvwwwvvgxXwvwgwwxVxxwxwvxxwxxxhufxxvwvwfvvwwvxfvvwuwwgxwwxwwgfvvwxgwxgwwwwxwxwgxwxwwwwwfvvwtgwwwxwxwwxHxwwxxhegvwwxwwwxwxwgwxhfWvxwwxfVfwffvvvwdvwfggvwvwgguwwwwwwgwwwuVegvwwwwxwxVwgwVxwwwvwwwwwggwgwgxwwgwwgwvwgwgxwxhvwwxgwwgewxgwwvxxwxhvgwhufvwwwWuwwdWvfwxxxwwwtvhwgvwwggwgxwwwwwwwwwwvxwxvwhwgxxgwxwwxxwwwwxwwvwwwxwxwxgwwhegwwxxwvwwwwwxwwhfWwwwwwvxuwfwwwwwwwvxhvxwwwwwwwxwfwwwvxwfwwvvfvgwwvwfgfvwfwvwgfxwxwwwwfwwwwxwwxwwuvfwvwwxwwvvwwwwvguvwvwvwvxxvvvxwwxxwgvxgvwwvwxvwwwvxwwwxwfvfwwxxgxwwvwvxwwfvvxwwwwwwgwvfwvxwwwwxwxgffwwvfwwvvwwwwwwwxwwgFdgwvvfwwwwvwwfwxwgwwwwxwfwvwwxgwxxwxxwwvgwxgvwxwhegffwvwwwwxxgewwwwwwwwwwxwxUvvwvwvwxxwxvwvwwhfwwgwwfgvwvwvwwwxwwwvwwgxwhfwwwxwwggwwuwwwwwwuxxwxwwwwwgvuvwvxwwwfvwwwxxwgvwwwwwwxwxvfuvxvwwwwwwwwwxxwwvwxwxxwxwxxwhxxvxxvwwfvhwwwwwfvvwxvgvvwvxwxvwwgxxxxxvwvfwwwvwxwwwwwxwxxwwvxwwwwxxwxwxxwvxxwxhuwwgvwfwwvwvwwwvwxwxfvvwwwwwxwwwwvwwgwwwwxxwwxgvvwwwvwwwxxwwwwwxxwxxwwvhwwghwxwxvxwxwwxfwwuwwwxwwwwwvwwvwvwwxwxwwwwxwwxwwwwwvxvxgwwvwwvvvwwxwwwxgwwwwwwxxwwxwgwwwwwxxvwwwxwwvwwwwwgwxwgwwwwwvwwwwwvwxxgvvvgwwwvvwwvhwwwxwxwgwwvwvwwwxxwxgxwxwwwwxwwvwwwwwwgwwvwgwwwwwwwgwwvwwxvhvvwwwxxvgwwwwvvwfwwwwwwwwxwggxwwxgwvwwvxxwhwwxwwwwwwxwwwwfgwwwgwwwxwvvxxwxxxwxwwwgwwwxwhwgwwwwxwxwxwxxwvxxxwxwgwwvwwhwwxxwhhfwwgwxgwxhvxwwvwgwwvwwvfgwwwwwxwvvwwwwwwhwwwvgwvvwvwwxwvxvwwwwwxxwwwwwwwhvvvvxxgvxwwwwwwxvvwwxwwxxxwwxwwwwvwwwwwwwwgwwwvvwwwxwwgwvxggwvwxwwxxxggwwwwfvwvvwgwwwwwwwgwxwxwgwwwwxwxxxxxwhvxxxxwvwvwwgvgwxxhwxwfvvwwwgxwwxwxwwgggwwwxhvwwwwxhxxwxwwwhgfxxwgxxwxwwxxwxwwwwwvvwvxwxfgvwwwwfgwwvwvwwvxvwxwgwgwxwxfwwwgwxxhwwxwwwwwwwxwgwwwgfwfwxxwhxxwwxxxxwhvhwwxwwxwwwwwwhwvxwvwvwwhwwxwxwxxwvhxwwgwxhxxwgvwvwxwwwwwwxxxxwxwwxxxuwwwwwevuwfwggwwvvvvwfvwwwwwwwwwwxwwvwvwwwwvxhvgWvgwfwvgvxuwfwwwvwwwgfgfwuwvwwguwwfwgwvgwwwxXvwxvxwvwwwxWwvwwffgvwwwwwwfwfvwwwwfwwwwwwwxwwxwwxxwwgggwwxvxgwvwwwwwxxhxghvvwhvggwxwvxxxwwfvwwwgwgfwuwwwvwwwwVvwwvwwvvvwufuwwgvxvwwwwvwwwwwwwgwuwwxfggvgwxxgvwwvgwfwvwewvgwgwwvwXvwvWwwggwffwwxwxwxwHxwvwwwhhxwwgwxwwwgggwwwWwwwuwwwvwfwgwggdgvfwwwwwuwfwxwwxwgvghwwxwhwwwgvwwwwwxvwwxwwghvwvggvvwfwvwvwxgxwfxvgvwwXxxwhhwgwwwwwgxgwWwvvgwwgWvwvwwwwwwxwgwxwvwxwwwwxwxxwxwwwxewwwwwwwgwwwgwhxwxwwvxuWwwhhwxhxxwvwvgwfwwxwvxwwvwwxxwXwwwvwxwwvxvxxwxxxwxxwxwwwxwxwhwwxwxxxxwvwvvXxxwvgwwgxwwwxxvwwgwfgwwfwwvvwdgvfvwwwwuvuwwwwhwggwvxwxgwhwwwxxgvgwhxwwWwwgwvxgwwgvxxvwwvwgvhWwxwwxwvwwwxxwxxwwwxxxxwwhvwwgvwwwfwwxugwwwwwwvwxgwxxhwguvwwxwwxwwwxwxxwwWwxvwxxwghxxwwwfwxwhhxvwgwwwwxhwgwwggwwgvwwwxwwxxwwwxgwwwwxwwwwxwvxwwwxwxvwvwxwvvgvwxvwvxxwvwvgvwwwwwvxvxxxvwwwwwvvwxwwwwwwwgvwfwwwxxwwwgvwwvwwwxwwwwwwwxwxxwwwwwffwwwwfwvxxwwwwwwwwvvwgvwwwxwxVewwwwwfwvwvhvgwwxxwxxwvvvwvggvwgvwfvwxxxwxwxwxvwvwevufwxvwwfxwwwwwxwwwvvwvwwxwwwxwwxxwvwfvvwvxwgvwwwvwwxwwxwvwvvwwvvwwwwxwxwwxwwvwgwvwvxwwvwwwwxwxwwwwwxwxwwwgvvwwwwxwwwwwwwwwwwxxwwwwvwvwwwwhxwwwxwxxwwgwwwxxxxxxxwxxxwwwwxwwxwxwwxxxxxxxwxwxwxxxxxvwvwefewfwwwvwvvwxwwwxxxwwwvwxwwwwxwwwwfxwfvvwvwgfxwwwwfwwxxwxxxxwwvwwggxwwwwxwxxwwxwwwwvxwvwwgwxwwwwwvxxxwwwwwxxwvwxgwvxwwwwwwwxxywwwwwxwwwwwxvvvwwwvxwgxvwwvwgvwxwwwwwwwwfwvwwwwgwvwwwwwwvwgvwvwwwwxwwwxwvxhwwvwwvwwwxwxvxwvxgwwgvwxvwxwxwwfwvvwgwgwvxvvxwgvewwvgwxwxxwgvfgwvwwwwwwwwwgfvwxwxwvxxwwgwwwwwwwxwxvvwxwwwwwxgfwwxwwwgwwxvwvvwfvxwgwvwwgvevxvxxwxxwwwgfxhxwxwxggvfwvwvwxvvwwwwwwwwwwxwxwxwxxwxwwwxxxxwwvegwvwwxxwwwvvxwwwxgwwwgxwwxvxwxwxwvwwwvgxfwvwgvwwwvwfwgxxxwwwwwwwvxxxxwvwfgwwgvxwfwvwxwxxwwfwwwwwwwxxxwhwwwvwvwwgvxwwxxwwwvwwwxxxwwxhgwxwvxxwxwxxvwwwgwxwxxwxxwwwxxywgfgwfhfwwwxxwfgvwwwhfvvxgwwwwxxvgvvwwwxwxxgwwwvxxwgxvgxxwvvwxxwwwxfwxwwwgwwwwwxxwxwgxwwxwwwwxxwwxxxwvwxvvwwxwwwxvxwwwvwVwvuxvvxwgxwfxxwwwvwwvwgwwwxvfvwwwwwwgwxVwvvgfewwgevUgwgvgwgwxwwwwwwvwvwvxgwwwgwggxwwwwxxxxxwwfvuvwfwxwwfxwwgvwfgwxwwwvwxwwxwgwvwwwwhxxxwvfwgVwvgvxwgwwgwxwgxwwwxggwxwwxwghxxxhgxxxxwwvfwxfwgwwvwvwVVwwwfgwwfwwwvwvwwwwWxwwwwxgwwxwwxvwvwxhwwwgegwgWfwwUgwgfwwvwgxxVgwwwvxxhgggfwwggwwwwgxgWwwgwgxgwwwgvwxvwwgxfgwwwxwgfgwwgwwwwgxxwwgwxwhwxxwgwxvggxXggwgxxwwfwwfWwvwfgwwfggwgfxWwhxwxgxwwwgwxgxxwwwxxgxxxwxxgwwvwVvwwvwwvxhgVwwvwvgwwwxwwwvwwvxgxfxwwxwwwxhxxwwvfwvwewwgwxuwwwxwgxwvwwvwxxhxwwwxwxwxwxhwhxwgxvwfwfxwwvvgwuwwWwwxwgwwxfxxgwwvwxxwwwwxwwxxwwxhwwfxxvwwwwggwvwxxxwwwxxxwxxxgxhxwwxxxhxxxwvwxwfVxvwvvxwwgwVvwxxgwwxwxwwwxxvxfwvxxwxgvwwxwwwxgwwwwuwwvwwxwwwwwwwggxxwxwxxwvxvgwwwwxgwvwhhgwwgxggwwwxwwvxwvwxfgwwwwwwwgwxwxxxwwxwwwxwwwvxxxwxwxvgwwwxwxxgwxvwxxxwwxgwxwwwwvwxgxxwwxxwxwxwgxwwvvfwwwwwwvvfwvxwewwvxgfwwvwwvfvwxwwwgwwwwggwwxxgfuevxwwwwwwxgxxxwwxgvwwfhwwwuxxwwwwxwxxwwxwwxxwwwvxxvwxhwxwwxgwwwwwwxxwwgwvwxwxgxgxxwxxgvwwwwwwvvfwwwwgxvwfuvfwxggxxwxuwvxwwxwxxwvwwvvwxwxxgwxxwxwffvvwxxwwxwxxxwwfuvwfgxwwwvvwwgwgwwxwwvvwxwwxwvwwwwwwhwxwwwfuewxwwwwwxxxgvwwghvwwxxwwxxwwwxxxxxvgwwvvxhvwwwxxvwwgwvxxgwwwxivwgvwxxxxwvwwxwgwxxxwgwgvvwwgwwwgwwvxvwwwwxxxwwgwxwxvxxwxwfuvwwwxwvwxuvxxwxwwwwwvxxxgfwwwwxwwxwwwwwxxgwwxxxgxxxwwhxxwwwwxxwwwxxwfwwxxwxwgwwwwwwwwwwwwwwwwgwvxvuuvvwwwwwxvwfvwfvwwwxgwwfewvvvguwgwwvwwwvwwwxXgvwvwuvwvvvvwgvvvfuwvwwwfwxwuwvwwwggwwwwxwwfwfwwvwwwwwwxvwxxwxxwwwwwvuwwwwwwwfhgvwwwwggwxWXxxxWwhwgwgwwgwwwfvwgvwwwvwwWfwgwwwwwwvwwwuwwwwwvwfwwwwwwfwvwugewvwfwwgxgvwgwwvfwwfwwwwwggWwwgxwgvvvwuwvfwGxgwvwvWwgwvwxwvxwwwwfgwgwwgvvwwxgwwvwgxVwvhgwgvwdgvfwgwgwwuwwwgwgwWwwvwwvxwwwfxxxxxxwwwgwvewxwxwgvxwwwfwwxwxwxwwxwvwgwgwwwgxwuwwgvwwgvwwwwxwxwwwvvxwwwwvvfvwxwwxwxxvwgwwxvgvvwwwwwwxwwwwwvwgxwwwghvgvvwwwwvwwwwxwgwwwwWwxxwvxwwwvxwwxgwxwxwxwwwXxxwwwxwwwghwwxvhwwgvwwwfwvwhwgxhxxwfwvwwVwwxvvwvvwvwfxfxwwwwuwwuwwwwwxwwghdgvfwwwwxwggwwwwwwxvwhhwgvwwffgwxvwwwxwwwgwhvWuxvwvvgwgxwwwxgwgwuxxxxwwvwxgwxwxxgwxuugwwwwwwwwwwxwfxxuwgwwwwghvwxxxxvwvgwxxwwgwxvwwewhgfwwxvvwwvwxwvuxxwhvwwvxgvxwwwvwwwwwwgwvwxgwwwgwwxwwwxwgWewfwggwvuxwwwxgvvwwxwwWvuvfvxxgwvxwxwwxgwwwfxvwwwwwwwgwhxxfwwvwwWwxwxXxxgvwvwwfwwwwwwhwwxwwxwwgvwvwxwwwwxwwgwxxwwxwwgvwwwwwvwwvwwwwwgxgxgwvvwwgwwwwggwwwwhfwwwwgwwwwxwxwxwwwwwwwwwwxvvxgxgxwwwwwwxgewwwhvwxxwxwwwwwhWvwwwwhxwwvwwwwxvwvwvwwwvwwwwwwuvwwxuvwwwvwwxhxgwxwwwwwwgxwhwvwgwwgwxgvxwfvvgwwwfwgvwvxxwuxwvwwwgwxwgvxxwvwwwwwwgwwvuxxWxwvwvwwwhxvwxgvwvxwvfvwvwxwwwgxwwwxhxgwwwxxwxwwwxwxwxxwwhxxuuwxwwfvvwwhwwgvwwxwxxwxwwwxwxgvxwwgWvvvxwwwxxgxxwwwwxwwwwxxwxwxwwwwwxxwxwgxvwxxwvwwwuxgwvwvwvwwwuxwhgwwwvvwwwuvxvwwwwwWwvgXwwwwvwwvxghwxwwwgwwxxwXwxwvwwvxxhguvxgwgvwwhhvvwWvwwvxxwvwwxxwxwwwwxggwvxwwwwwwwwWwxwxvxwxgvxvwhwxhwwwhwxwxuxwxfvwggxwxvwwgwxvwxwvwwvxwxvxwvwwxwvvwwwwwxVuwxgtwvwuxvvwhvvwwfgwwhxgevufwwwWwhwwxxxwxxgvgfgwvwwxvwwwwwvwwxxwwwvvwVwewwwwvwxwxwwxwgufwwfwwvwxwxwwwgxxwwgwwwxxxWxhwwxxxvwwwVxgxwwgxfwwgfwwwwgfwxgwwvvwvxwwwwwvuxwfwgggvwwxwxwxvhwwVWwwwxwwxwvwwwwxxhwvwwgwwwfwwxggwgwwwwhvggwggvwwwfvwgwwhxwxwwwwxvvvxwxwwwwxgwwwxxwxwxvxwwXwwwxgwwxwwwwvwfwwxxvxwwwxwwwgvxwxxwgwwwggwwgxxxwwxxwxwxfwwuwxwgvvwwwwwxfwgwxxxxwwfwwwwwvxgxwxxxvvwwvvwwwxwwxvhxxwwvvwwwvxwxxwxxwwxwxgwxuwwfvwgwxwwvwgwwxwwwxgegwgvfhwwwwfwxxwxwugwwgxhwwxwxxgvxwxwwwXwgvxxxwwxxVxxxwxwxfwwuggvwxxwvwwwwwxwgwvwxgwwxwwxugvwgwwwgwwwwuwwwwvxwxwxwwwwuxwwwxwxxvwxwwwxwhxvwwwwwxwwvwwwxwxvwxwwwwgwwwgwwwwwxxwgwwxxxxxwwgwwwwwxxxwwgxwwwewwwxxwxwgwggxwwwgvwxwwwvwxxwwwvgvfwwwxwwwwwwvgvwvvwfvuwwwgvgtwwwwwwgvwwwwwvwwwxwwwwwwwwwXgwvwwwwxwwxwwwgvwgwgvfwwwxxwwwwfvxwwwwwwwvxwxwxwwwwwwwgxhwwwwxggvwxwwxwvxwwwgxhwxwgvwxwgvwwgvwwwvgvwwwwgwwwwwwwgvwwwwuxwwvwwwxwwugvwgvxxwwwwwwwfwwwxggwwwwHvwhwxwwvvwvguwgxxxwgxxxwgvwwxwwvgvvwwwxxvwxgwwwvwhuwwxgwwwwwwgwgwugvwwgwvwxxwfwwwwxwwwwwwwwwwwxwxgwxgvxwxxwvxwgwwggwxwxwwwwwfxwvwgvwvvwwwwvxwgvwgwwxvwwxwxwwwwwvxwxwwwwvgwgxwgxhwxxwxxxxwxvwwwwwwwwuwgwgwxwvwwxhxwwwxgwwxxwwXuxwxxxwgxxxxvwgwxxvgvgwvwwwwwwgwvwwxwgugvwwwggwxwwwwxuwxwxhxxxvxxwvvwwwwvxwxwxwwxxxwwgwvwxvwwxxxxgwxvwxwxhhwwxwxfvwxxwhwugvwgvwwwxwwxxxwwgwxxxwxwxwuwwxwxwggvxxwwxwwxvwxxxxvxxxwvvwwxvwvwgvwxgxwwwvwfvwwwwxwgwwfwwxwxwvwVwvgwegwvvwgfvwwfvwwvvxggewwwwvfvwxfVgxvhwxxxwWvwwgwwwvgvgfwwwwvwxwwwvwvxxgwfwhxwwxxxwvvwwwvwwwwxgfgxwgxxgggwwwgwwwhxxxwhxWwxxxwwvwwgfwwgxwwwwggwwfwwfgxwwwvwxwhgvwxxvwvwxxwxwwwwwwghvwwwvwwwuwxxwwwfgxfgwxvwwggVgxxwfgwxxvwgwVgxwwwwggxwvxwgwwvWwxxwxwvwwgwxwvhvvwvwvxwwwxwwwwwwvxgxxgvxwwguxwwwvwggggwwxwwhwwxxwwxwwxwhxwgWxgvwwwwxwWwwgvggfVwwwvwwwwwwvwwwwwxwwwwwwgxwxxgvwwwwwgxwxwfvxxvgwxwxhwwgxhwwxxwgxwxxwxvxwwvvwfgvvxwwfwwwvwwxxggwwgxwwxvwWwvwwwwxxwwwvwwxwxxwwhxxxhfxwxxhxxwwwwwxwwWwgxwwwwvgwuwxgvwvxvvwvwxxwwwggxwwxxxgxvvwwwwwwxwwwgvgxxxghwwxgwxxxwwwwgwxwgwvhwwwwwwxxwxwvwwwwwxxvwxwwwwwwgxvwwwgxwgxxxwwxvwwwxvvwwxxwxwxwwvxxxxwwxwwwwwvvfvvwggvvgwxvwwwxwxvwwxvxxfwwwvvvwvvwwwggwvwwwxxxwwwwwwxxwxwwwwgxwwwwwwxwwwxxxxxwwwwwwwvvvwwwwvwwwxxfwwgwvvvgwwxwggwwgwwwxwxwxwwxwwwxxvVevgwwxxwxvwwgwxxgwxxxxfxxhxxxxwxxxwwwwxgvgwwwwwwxxxwgwwwxxxxxxxwwwxwggvwwwgwwwwxxxxxfvvwvgwwffwwwvwvwvwwwvwwxgwwwwxxwwxwvfvvvvvvwwwvwwwwwwwwxwwvvggwwxwwwvvgwwwwxwxwwwxwxxxxxgwwvwwxxwwxwxxxwxxxvgfwwxgwwwwwgvvgwwvwwwxwxggwwxxvvwwgwxxxwwxwxwwwxxxwwgvxwxxwwwxwffwwwfwwvwwwxwvwwxxxxwxxwwwwxxxwwxwwwwwwxxwfwuwwwwwwfuufwwgwwwwwwwwwvwwfvvwwwvwwgvvxwgwwxxwvuwfwwwggxxwvwvwwwwgwwvwxvwwxwgWxwvwwxwxwwwwwwvwwwwgwwwwwwwxxwwxxfvxwfwwxwxwwxwwwwxxxwxxxwwxwxwgwufwwgvwvvvwwgwhwwwwwxwxwgwwvwgwuwxwwxwwwxgvwwfwffUwwwwfwwxwxwhhfwwwwxwwwxxwxwwgfwwfwwwwwxwxxwxwxxxwxwwxwxxxwwfxwwhxvxwwxxwxgxvxxwwwxxxwxwwwwwwffwfwwvwwvwwvwwfwfwwwvwwxwwwwwwwwwwwwwwwxwwwwwwvwwgwwvwwwwwwgwwwxwwwxwwxwxwwwgwwwxxwwwxxwxxwwwxwxwxwvxwwwxxwxxxxwwxxvwwwwgwwxwxvwwwvwhwwwwwwxxgwwxwxwwwxxwwwwwwwwwwwxxwwwwwwwxwwxwxxxxwwwwxxfwwwvwxwwwwxxwxxxxxwxxwwxxxwwwwwwwwwwwxwwwwwgwwwxWdFgwwfwwwxxwhxxwhxwvvwwxxxwhwvwwwxxHuWxwwwwwwwxxwxwwxxwwwwwxxwwxxwxxwxfwxwxxwxxxxhxxwwxwwwxxxwxxxxwwwwxwHuWwwwwwwwhgwwwwxxwxwwwxwwxwxwWdFwwxwfwwwwwxwwyxgwwwwwxwwwxwwwhxwwwxwwwxxxxxxwwxwwxfwwwwxxwwwxxxwwwxwxwwyxwwwwwwwxgvwwwwwwwvvwwwvxxxwxwxwwxxwwxxwgwwwwwwvwwwwwwwwuwvwxwxxwwxxxxwwxxxxxwxxwxxwxxwxxwxxxxwxwwwxxxxxxxgwwwwwwwwuxwwwwwwvxwgwwxwxwxxxxwvvwxxvwvxxxgvwwwwwxxxxxxwwxwwxxxwwxxxyxxxwwxxwxwxvvgwwvwwwuwxwewgwwwwwgguxgwvwwwwwvgwwgwwwwwwfxxvxwfvvvgvwvgwfwuwwwwwwgwxvwgfwvvwxwwwwwwwxwwfwxgxwwwwwwwwwwxxwxxxwxwxxxxgwwvwwwxxwwwxwwwwwgxxwxxxxxxwgvwwVwwfggwwVxwwfwvwvwwgwwuvwwxxgwwgwwwwwwwwfwvwwwxgwvwwwfwwwgxwwwwgwwfwxxwwvxxwxxwwwgwxwwwvgxwwxxwxxxxwwxxwxwxxxwwwwxxwxgxwwxxwwxwxxgxxxwxxfvvwwfvwvfgxvgwvgfvwvvwguvgwgvvwvuwwwwwwxwwwwwwwwxgwxvgfvuugvvwxwfvvgwwwuwwwwxuvvvvwvgwwxxwvvwvxwvhwwwgwwwwxwwxwvwwwhwwwwwvxxxxwxwwwxwgwxwwvxgxxwwxhhwwwwxxxxxvWwwwvwfgwwwwxwvvgwwgxwwhwhggxvwuwwwxvwwwwuxfwvwwwwgwwvvwxfwvwxggwxgxgggvwxvwvvwxxxxgxwgwxwxxwgwwwxxwxwgwwxwwwxwwwyxxvwxxwwwxxxxwwxxxxxwxxuwwwwwwwvwxvgfewvfwfwwwxvwxwfwwvwvfufvwwwwwwwxgwwgwvwxvgggvegVvwvwvwwwwwvvvevwwxvwxvxwwxvvwgwxxxxwwwxwwvvgwwvgwfwwwxxwxxvwxxvwwwVvwwwwxfwwgwwwwwhwvwwwwvwwwwxvvwxwxvvwwwwwfxwxgwfvwwwgwgwwvwwwxwxwwhxvwwwwxxxwxwwxwxwxxwwxxwwxwxwwwwxwwxwxwxwxxxwwxxxxvwvxgfvwvwuvxvvfufgwfwwwwwwuvvwwwxvwwwxfwwwwwxwwVwvwfwuxwwwvvvuwwgvwugvvvhvvwwggwwwvwxwwwwxwwwwwxwvwwxxxwxxwfwghxwvwvwxwxxwxwxxwxwggwvwgwvvhvvwwwwwuuvwwxxxvwwwwwwxxwvvvwwwwwvgwwwwxwgwwgwvvvgvwvwwxxwhwwwgxxwwwxwwxwxxxxwwwxxxwuwwvwvwfvxggvVtugwWvvgwvwwwfwwvwwwggxwgfvwwVvwxgftwwwufvvvwwwxxggwfgGwwwgxwxwwguwwwgfwwwxwxwwwxwgxgwvwwxwwgwwwwxwwvwxxwwxwwwwwwxxxxxxwwwuwxwwwxxxwwwwgxwwgxwxvwwxwwxxwwwxxwwxxxwxVuwwvggwwfwvwwgufvxWgewfwhxwwwvwghxwwvwwxxxxxWvwggggwvgUfExgwwggxfwwwxwwvgwwxwwwgexwgvxfxwwwvvwxwgwhwxhwxxxwxxwwwwgggwwvxwxwxwwexwwvgxwxxwxwxwhgxxwxwvwwwxguvwwwwvwwwwgvwvggfwvgwggwxvwwwwwwvwgvvwwwwwwxxvgvwgwwwxwwwvfwgwwxwwwwwxwwwwvwwwxwvwwxvgwwWwwggwwwwwxxwfwxxwxxvwwwxxwwxxxxvwwxwxxwwxwxgwxxxwxxxxxvgvwwwwvwgvxxwWvggwwwvwwwffwgwxxwvwxxvwvwxxwxwxgwxvwxwxvwgwggwxwwwwwwxwxwwwvwvwwfgvwwgvhVfwxxwwwxxwwxxwwwwxxwxwwxxwwxxwxvvwxhxgxwwxxvwwxwwwxwwgwxwwxuwvwvvuwfwgwgwfwwwgfwvgwwvwwvwwgwfwwxwhwgwvgwwguwxvuvwguvvfwfwfwfwwvwwhwwwwvvwwvVgwffwwwxvgwwwwwvwwwgwwxwwwwwvvwwwwwwwwxwwgwwxwxwwwxwwwwwwwwwwwgwvxxwwwxxwwwxxwxxxxwxxxwxxvvuggvvwwwwwwwwevvwwxvvfggwvwfwvfwwwvwgwwwxwxwxwgxxxwfgggvwwxwwxwwvwwvvUwxgwguxvxwgxwwxwwwvwwxvwwwwxxgwwwwwwxwgvxwxxxxwwwwxwwwxxwwgvwxwxwwgwwxwxxwwxxwxvvuwevUwvvwwwvwvgvfwgvgvwwggxffwvvfwgwwwwwwwwwwvggwwwwfwfUwvfgvwvwwwfvvwgvvfwgwwwwwwwvvwwwwwwxwhxwvxwgxvwvgwwwwwwgxwwwxwwhwxxwxxwxxvxwxwghwwwwgwwwwxxxxwxwwxxxwxxwxxxxxgxwxvwxxxwwugfwvwwxgxvwffwfwvwgfgfwfvvxfwvwwgwwwwvvwgwgwwhWwxxwgxxwwgwvvwvxwwwwwwvwwwhwwwwvwxwwwxxgwhWwwwxwwwwhwxwwxwxwwwxwwxxwgxwwwxxwxxxwxxxwhwwxwxhwxxxxxxwxwxwwxhwwxwhwwhwxwwhxgxxwwwxwwwwhwwwwwwggwuwxvwwwwhwheVuwgwwwwwwwwwwwxwwgwvwwxwgwvxwwxgxwvWvfxwwwwwwgxxvxxwxwwwwxwxwwwwxxwxxxxwwxxxwwxxxgwwwxwwwwgxwwfwxwxxwwwwwwxxXvfwwwgwwwwwwwwxxwhvvwwwxwwwxxxxxgeVwvhwwxxwwgxwxxvhvgwwxxwgwwwxwxxgvwwwwwwwwwxxvxxhxxwwxxwvgwwxxvwwwxwgxxxxxxwxwwwwwwgwwwwgwwwWvwwxgwvwxwwwwwxwwwxxgwfwwwgwwxwwgwwvxwwwwwwxvwxxwwxwwwxxwwwwwwxwxgxwwxxxwvwwwwxvxxwxwwxhwwgvwwwwwxxxgwwgwwxuwwgwwxwwwwwxxwwwwwxvgwwxxvwxxxvxwvxwwxxxwxgwxwwwwvwxxvwwxxxxxgwxwxxwwxxxxwwxgxwxvxwwxfwxgxxwwxvwwwvwwvvwWgguwgwgwwxwwwwwwwvwxxwwwwwwwwvwwwwwwgwggwwwwwVewxwwwggfwwxgxwwgwxwxwwwwwxwgxwwxxwwxxwwgwwvxxwxxxwxxwwwxxwxwxwxwwxwwxwxxxwwxxwwgggvvhwhwvwxwwgVvevwxwwxxwwvxwhwxvxwxwwwwwwwxwggggwwwwwwwgxgxxwxwwwxxxxxgwxxwxxwxwxxwwxgvxxwxxwxxxxxxwwxwxxxxxwxwwwwwwxxgwfwvwwewvwwwgWfwgfwwgvvwwwgvgwgfvwvwwwwwwwwwxwhxwwvhgwwvxgwhwwgvfgwwvwvwwwwvxwwwxxwgwxxWwvxwxwwvhwwwwxwxwxxwxwxwxxxxxxxxxvwxxwxxwxwxwxwwxwwgxwgwwgwvwxxuegwWgguvxhxxvwwxhwxwwwhxvwvwgwgvwwggwwwwxwggwwwwgwwwwwwxxwxxgvxwwwvxwwwwxxwxxxwxxxxwxwxxxxwxxwwxxxxxxwwwwwwwwxgwvuwxwwwxhwxwvxwwwwgwwheVuwwwhwxwwxwwwwwwwvwXfgwwwxwwwwwxwhggwwwxwwxwxxxxwwxwwwwxwwxwwxxwwwwxxxxwxxxxgwgwwwwwxwwwxxvxwwxxxwwwwwwwvvggwwxvxwwwxwwxwxvWfgwwvwwwxxxxvwxxxgeVwwvgwhwxgwwxhhxgwgwwwwwxgxxhxwxgwwwwvwwxwwxwwfxxxxwxxwxxwxxxxgwgwwxxwxxxxhvxwxvwxxxxwxxxwwwwwguwwwwvwxwvwwwvwwvxwxwxwwwwwxxxxwwgwgvwwvwwuwwgwwwwwwwxwwxxwwwwxwwwxxwxwwwwxgwxwxwxxwxxxxxxxwvwwxxxxvwxwxwxxxxwxgfwwwvvwwvhxxwwwwwxxxwhwwwxwwvwxwwwxxxxxwwxgwgwvwvwwwxhvxxxxxxwgxwwwxwxwxgwgwvxwxwwxxwxxxwxwxhxxxwxxxhwwxwxxxgwxxxwxgxxxwfwwvwwwWvvuvwggwvwwwwgvwwxwwwwwwwgwwwwwwwwvwwwwwwwvwvvvvVVwwwxwvvvvwwwhxvwwxwhwvwwgwwvxwxwxwxwwwxxggwwxxwwxwxwwwwVewwvvvgfvwwwwwwwwwxwvwwwwwvwgwwwwwwwwwwwwwwwggvwvgwwxwxvwxxwwwwwwxwxxxvwwxwxwwwwwwwxxxwxwxwxwwwwxwxwxxwxxwxvfwwgfuwegwwvvvwvwwvwfwwwwwgvwwwwvvfwwhvwxwwwwvwxxwxwwvwWgewwvwvxvwwvWvvuxgwwwwxwvwhgvwwwwgwwxwxwxwhwxwxwxxwxxwxxhwvxwwxwxxwwxhwxxxxxvvvfvvvwvxwwvwwgwwwwwwwgxxwwwwuvwvxwxxwxvvwwvvwwwwvwwxwvvwwwwxwxwwwxxhxxwxxxxgvwxxwwxxwxvwxwwxwxxwxxwwwxxxxwwxxxxxxxxxwxxxugwwwwfwfgwxvwvwguvwwfvwwvxgwwxgwwwvgwxwxwgfwwgwWwwhvxxxguvxwgVvvwwwggfvggvwxwgwwwwwwgfwfgvwwwxwwgwwwgxwxxxwxwvwwwwwwwvwxvwxwxwwxwwxxwwxxxwxxxvwwvwwwwwwwwwxxgxwwxggwxxwxxwwwxxwgvuwwwgwffwwwvvwggWvwwwffwwwgxVgfwwwgxvxvwwfwwwwwwgwwwwwwxfwwwggwwwggUxggvxwxxwwxwvxgwWxxgxwwgxwxwwwwwwwwggwwwwwwwxxwwwxxwwwwxxxwxxxwxwwxwwxwxwxgwwhxxxwxggwxxwxxwxxwwxxguvwvgvvwgvvweUgwfgwgwvwwwvvxfwfwwwgvwwwwwxgfvwgvxwwwwwwufvwfwffvffvwgwwwwggvwfvvfwggvwwwwwvxxwvwwwWhwxvwwvxwwwwwwwxwgxxxwxxwxwxwxxhxxwxghxvwwxwwgwwwxwwxwxxxwwxxwwxxwxxwwxxffwfvvwvvwwwvUvwfgggfvwwwwwwwwvwgvwwwxwvwwwwvvxxwxhwgwxwwgwwvwwwvwwwvwwggwxwhwwwwwxwwwxvwxhwwwxwwwxxWhwxxwwwwxwwwwxwwxwgwwwwxxxxwxwgwxgxxxxwwwxxwwxwxxxwwxwxwhwwwxwwvxxxxuwwwvvwwwwwvwvvwgwwwvwfwguvvwvwfufuwgwwwwgwwwxwwwvwhxfwwevvwvvwguvvwwwwwwwxxwwggwwuvgWwwxvwwwwvwwwwwwxwwwwvwwwxwwwxwxwwwwxvwgxwwwwxwxgxwwwwvwvvwwwxxwvwgwxvwwxwwwwwwwxfwvwwwwwwewwwwwvwvvwwvfwVfvwwwgwwwxwwwwvWwxxwwwxwwggwwwvwxwgwxwwgwxgwxexwxwwWhxwwhwxwxvxxxxwwxwwxxwwwwhwwxwwhxxwxxwwxxxxxwxxxwwwhxwwwwxwwxgwhxwxxxxxxxwxxxwwuwwtvwvgwwwwgvgveuvvvuwguwwwgvvfuwwwwxvxvvvvwwvwwwggxwwwfuvfwwguwwwguwggwwxxgwwfgvuwuwvfwwuvwxfwwxwxwwwwfwwwxxwwxxxwghwwwwxhwwXwwxwxxxwwwwxxwwwwwwwwwxwxfwwwwwwwxwwxxxxwxxxxxwuvwuvwvwwgwxWvgfvfvxwwggvfwuwwwxxvwvtfgwwwwwxhvvwwfwfvwwgwvwwwxgwwhwwxwwwwewgwwwwwgwxvggwwvxwwwxwwxwxwwfxxxwwwwwxwxwxwxxwxwxxxgxwwwwwgwwxxwxxgxwvxwwwxxxxwxgxxwwwwwwvvvwvwwwwwvwwwvggwwvwvwwwwxvwgwwwvvwgfwwwwgwwwwvfwwvwgvwwwwwwwvwfvwgwgugwwgfwvwvvwwwwwwxvvfGwwvwxwwwwwwwxwfguwgwwxxwxwxxwwxwxxwwwwwwxxwwwWxwxwwvwwxxxxwwwxwvwgfwwwwGfwxwwvwwxwwuwwwwwxvwwwwgvwvwwwgxwwwwxwxvxvwgwwwwxwxwwWwwwwwwwwwxvwwfwxwxwwxwwwxxxxxwxwxxxwwxgxwwhwwxxvwxfwwxxwxwwxxvwxxwhwwwwwxwvvwwwgwwvwwVvvwwvgfwvwuwwwwvvvgwwwvvxwwwwwhwwwwvwvvvggwvWfwtggwgwwwwgvwvwvwwwwwwwxwwwwwwxwwwwwwhxxxwwxxxwwwwxxxwxxgwxwxxxwxxxxwxxwxxwwwxwxwwxxvxxwxgwwvwgvxwfvwwwgwuwwwggvfvxvwwwwvxwwvvvwwwxxuwwwuwwxwwwvvxxfxwxWwxwwwwwwxvwwxxwxwwxwwwxwxwwwwxwwxwwwxxwxxwxxwxwxwwxxwwwwwwwxxxxwvwvwwwwwgwggwgwgwgfughwwwwwvxvgwwwwgwgfugggwgwwwwwxwvxvxvwxfvxwwxwwWggwwwwwwwxwvwxxxwvXxxWvxwwxxwxwwwwwvvfwxwwwwgxxxxxhwxxxwxwwxxxwhxxgwwwgwxxxxxxxxxwxwwxxwgwvvwwvvwxVwwwwwfwfxgwhvvvwwvgwwwgwwwwxxxxxvwxwwwfeugxhwwwgxgxxwvfeuwgwwvxwwwxwxxxwwgwxwwwxxxxvwwwxxxhxvhvwwvvfxxxxwxxxgxgxxxxwxxwwxwwwfvfxwfgfvufwwwwwwwwwwwxxwwwwwfwwvvxxxwwwhxwWvwxxwwxwxwwgxwwwxvwfwhwxxwxwwxwwxxxwxxxxxxxwxxxwxxwxxwxxwxwwwwwvvwxwwwvwgwwvgwxgvwwwwwhxgwvvxxwwvwvwwwxwvvfgxxwwxhxwxwxwxwxgwxxxxxvwwwxwxwwwxxxxxxxwxxwxxwhwwvxxxxxwwxxxwwxwxxxxxxffvfvvwwwwwgwgfvgwwwxwwvgwwfuuwvfffwffwvffffwwfhxwwxvuwvvgfvffvfvvwwwwwwwwwvwwgffvwwvwwwfWwwvvwwwwwvxxwwhvfwwwwgfwxffvwfvwwwwwxvxffwwvhwwwwvwxwwwvffwwwvwwwfwwgwhxxwwvwvvfwwwxwwxwvxxxxxvxfwgwugvwwwffwwxvfvvwwwwgfgwgwgffvwwwwfwuwwvwwwgwxwgwvxhwgwffwwxwwwwwwwwwwwxwvgwwwxwwfwffUwwwwxxwvwxwwxxfvwwwwwvffwwwxwvwwwvhwfwwwgwvgxgwxwwxxgfxwxxwwfwwvvwxwvxwfwvxxffwwwhxxwgxwwwxvxxwwwfffvvfvfgwwxvwgwvvfwwwwwggwwwwwvffvwwgwwwwwwwgwwwwwxwwwvgfgwvwwxwwxvwwwwwwfwvvwgwvwwwwvwwwgwxwwwwxwxwwwwxwwwwwxxwwxwwwwwxxwxwwwxxwwwxwwwwwhxwwwgwwwwwxxfxxwwxvfvwwwwwwxxggvvwwwfwwwgwgwgwwwwxwgwwwwwwgwwwwwwxwwxwwwwxwwwwwwxwxxxwxxfwwwwxwvwwxwwwxwwwwwxxfxwwwxxwwxwxwwvxwxwwwvwwwwwwxxxxwwwwwwwwvgwwwwwwvwwvwvwwwvwgwwwwwwwwwvgvfvvwwwvwxxwfvgxwwwwwvuvwwwwwgwgfwwgwwwwvwwwwxwfwvvxwvxgwwwxwxwwxxwxwwwwwxxwxxxxwwxwwwwxxxwwxxwwxwwwgvwfvwwwwwwgwuwwvwwwwgxwwwwxxvfvwgxxwwwwwxwvxxwgwwxxvwwwwxxxgwwwxxxxwxxwwwwwxwwwhxwwwxwwwxxwxxxxxwwwxwxxxwxxxwxwwxwwwfwwwwwvgVvwwwfwwwevxgvxwwwfvwwwwwwwfvwwwwwwwwwvvgfvvvVwvwwwwwwwgvxwvfwwwwgvwwgvwwwwwwwwwwxwwwxxwwwwxhwwwwxxwhwwwxxxwxgwxxwxvwgwwwwxxxwwxxwxxxwwwwhwvvgwwwewxfvvgvwvwwwgwxgfwwwwwgvwwxwwwxwwwwwwwggwwxxfwwwwwwxwwwwwwwwwwwwwwwwwwwxxwwwwwxxxxwwwwfwwwwwxxgwwxxwxwxxxxxxxwwwxxhwhwxxxxwwxgxwwxvwwwwwxwwwxfxwxWffwfwwvwwuffwhgvvvwwwwwfwwwwwwwvwwwwvvwwwwvwxxwwvvwxvwwvgwvwwwwwggwwwxwgwwgwwwgwwwvwwgwxwwwwgwgwgwxxxwwwwxxxwwwwwwvwwxxxwwvxxwwwwwxxwxxxwxwwvxwwxwwwxwwxxwxwxxxwwxwgxwgwwggwwwwwwgwwggwwwxvwwvwvwwwgwvwvwwxwwwwvwxxwvwwwwwwwwwvvwggwgwvvxxxgwvgwxxfwwwxxxxwwwwxwxwwxwwwxwwwwvwwxxxxwxxwxwxxwvxxwxwxwwxxxxwvxxxwwgxyxxxwxwwwwuvwwwwwvvxuwgwfwwfwvvwwwxwwwwwwwwxwwwwwhwxxxwwwvwwwwhwxwvwvwvwgWggwxwwwwwwvwwxhwwwwxwWxwxgxwxfwxxwwxwxxwwwxxwwwxxxwwxwwwwxwxxxxxxwxvvwwxvggwxwxgvwxggwxwwxwwwwWvxgvgwwwwxwwwwwwxvwwxuxwwwwvxwwwwggxgwwxwgvgxxfwxwwwwwwxvxgxxywwxxxwxxwwwxwxxgwwxxwxvwxwxxxvvxxgxwwxvxxxxxwxhwxxxwwxxwwxxxwxuwweutvwvfvwvvgwgwguvvvwwwfwwwfvvgxevwvwwwwwxvxgeuwgfWvgwwfwwfwvggWVwwvwxwwwvwvwwvwwxxxxwxwwgwwwwwwwwvwxwwwwwwwxxxwwgvwvvwfxwgxxxwwwxwwxhwwxwwfwtwxvvvhgwwwwvwfWvwgftwwwxwvwuwwwfwwxwwwvwgwwwggxguvfUTvvwwgxgwvgwvxgfxwwxxwgwggwVwwwxwxwxxxwWwwwwwxwwgwwwwgxxxwgwwwxxwxxxwwxwwwxwxxwvvwxxgwwVgwwwxwwvxghwvxxwxgwwxwxwxwxxwwvvuwvvvfwwwwvwgwwwvwgvwvvwvwwwwwvvvwwwwvwwwwxxvgvwugvvwwvvvwwwwwwwwvwffwwgvgwwxgwxwwxwxgwwvwwfwxwxxxwwwxxvxwwwxxgwwxxxwwhwwwwxwxwxwwwxxwxwxxxxwxxwxxxwvgvwgwfvwwwwwvwwwwwwwwxwwwwwggwwwvwwwWwwgwgxxwvwvvwwwwwwwvxwvxwxwwgfgxwgvxwwwvwwwgewfwxwxwxxxgwwxxxxxxxwxxxhvxgwwxgxxwhwvwxwwwwxwhwwwxwvxvwvvwwwuwvvuwwvwwwwwwVwggwwwvwxvwwwfwwvxwwwwvvwwxewvfwwvgwwewwfvwxwwwvwwvwwxwwvuwwxwwgwwwwwwwwxwwwxwxxwxxwxxxxxwwvvwwwvwwwwxwxxwwxxwwxgwwfuvgvwwwvwgfvwwwwvvwvwfvwwwwwwgwvvwwxwfwxwwxwwfvwwfwggxwgwwwwwxxwwxxwwwxwvwwgwwfxxwvwwxwwwhwwgwwwwwwvwxxwxxxwxwxwwwxxwvwwwxxwvxwxfvvwvfvvvvfvvuvwgfwwvvwgvwwvvwgwwwwwwwwgguwwwwwxwxwxvwugvvfwgwwwwvwwwwgwwwhwvvwxwwvxfwvWwwwuwwvwwwwwvxwxhwwwwwwxwwwwwxxxwwvxxwxxwvgwwwwwwwwxwxwxwxwwgywhxxvfvvfvvvvvvxwwwWuhwwwuwwwuxggvvwwgxhxxwhwvwvwvwxwvvwvxwgwwxvgfwggvwggwwgxhgwhgwgvxwxxwwvvwxvwxxwxvgwxxxxwgwxwwwxxwwxxwxxxxxwxxwwxxxwxwwxxxwuxwxwwxfwVwwwxxvgwgwgwffwwwwwgxfwgwwwxwgguffxwwwxxhfwgewwwwwwgwxwwvxwwwwhwwgwwwwxxwvwwxggwxxxwwxghxgxxggwwxwwxwwwxxxwwxxwwxxxwxxwwxxwwxwxwwxwwxxvgwvwggeexhhxgvvvwwwgvxwgevggwwwxxxxwwwwxvhvxggwvfwwwwfxwgxwwxwxwgwvwvwwxxwwwwxwxhgxwxwxxgwgfwvvvwwxwwwwxwxxwvxxwwxwwwwxxwxwxwxwwxxhvugvxfvvwxgwguffgvwwwfwwwwwwwxwwxWvvwwfwvwhwwwxvgvwvvwxxwvvwwwxwwvxWvuwxwxwwhxwwwgwwxxwwwvxxwwwhwwhxxxwxwxfgwxxxxxwxwxwwwxxwwguvwfuwuxvevwwwgvwwwwvgvvgvwvwgwhwwxgxwxwwwxwxgvvwwwvwvwvgvvvwwwwxgwwwwwgwgwwwxwxwxgxxwwvxwvxxxwwxwwxxxwxwxxhwxxxxwwxxxxwxxwvwggfwwgvxvwxheVwvwvwwwfffvwwvxwwvwwvfwwfwwxwvWffwwxwxwwwwxvwwwxwwwvvxwwxwwwwxxwwwggfwwwxwwwxxwwgxxvwwxgwwwwwgvxwvxxwxvvvvwwvwwvwwwwwxvwxxwwwxwxWffwxwgwwwwwwwwwwwvgxwwxwwheVwwxvwwxwwxwgVxwwfwwwwvvxwgwvwwwwxwwwvwvxxxwxwxxvvvggwwghwxwwxxhwvwwxwwwwwwwwgvvvwwwvvgvgxwwwwwxwxwxxwxxwfffwxwwxxvwwvwwwfwwwgwwggvwwwwwwwwwxxwvwwvwvvvwwwvvhwxwwwwvwvwwwxwvvwwxxwwwwwwwxxwwwwwwhwxxwwxwwxwvwwwwxwwwwwwwgxxvwwvwwxgwwvggwvxxwwwwxxxwwwgvwvvwwwxxfwwfwwwwwxwwwwwhxwwwvvwwwvvwgvgwxxwxxwwwxxwwxwvwwxxxxwwgwwxwxxwwxxxxwwwwxwwwwwxwwxxwwxxxxwxxwxxvvwfwwwwwgwvfgwwwwwwwwwwwwxxwwwwwwwwwwwwxwwwvwwgxxwwwwxwgwwwwwwxxxxwxwxxwxgwxwxwxxwwxwwvwwgwxwxxxxwxwxxxwxwwxxwwwxwgwwvxwwwwwwwvwwwwxwxvwwwwwxwwwvvwwxwvvwwwwxwwxwwwxxwxxwwwwxwxwxwxxxwxwxwxwwvxwwwxvwwwwwxxxfwwwvvwfwwxxwwwxxwwxgxvxxhwwwxhwxxwxwwwxwwxxxwwxxxxxxwwxxwxwxwwwwxxwwgxvxwwxwwwwwxwwwxwwxwwwwwwxxxxwxxxxwxwxxwwwxxxxwwwwwwfgvwwwwxVevfgvwwwfwvgwxwwvwvfwwwwwxwwxwwwgfwwwvwwvvggvwgguwgxwvwwwvvwwwxvwwwvwxwxwwwxgxhvwxwwvxwwwxgwxxxxwxwvxwxvxxxxwgwwxxwxwxwwwwggvwwwvwvwfvwggWwvwgxgwwwgwvwxwvwwxgwwwxxwwwwxvxhxgxvgxhfxxwwwhxfxxvwxwwwfwwxwxxwwxxxwxxwwwwwgwxxwxvgwwwxxwxxxxxwxwwxxxvxwxgxxwxxwwwwxwwwwwgwvwwwvwwxggwwfwwfgwwgvhwwfvwwwwxfggvgxwwwwwwgwvvwwwgwwgxwgwwxwwwwwwvwwwwwxxxvwhwwwxwvwwxwxxwxwxwxxxxxwwxwwwvwhxwvxwwwwwxxxwwwwvwwvwxwwxvvwgxxwgwwxxwwwwwwxwxwxwwvwwghwwwwxwgwwwwwxwwwxwhhwxxwwwwwxwxvwwwwwwwxgwwwhwfwwhvxxxxwwxgwwhwxxxxxxhwxxwxwxwxhwwxxxwxwwwwvxgvwwgwwwwgvwwvwvvwwwgxwwwwgwfwwwwwwvvwwwwvwvvwvwfwwftwfwvwvvwxwwwwwwwwWwvwvgvwwgwwwwwwwwxwwvfuwxwwwwwxwvxxxwwwwxxwxxxxxxwxhwxxxxwwxwxwwwwxvxwxvwwxwwvxwwgfwwwwugvgvwxwvvxwwwvwwfvgfvtwwwwwwvvwwwvwxxwxwxwwwxwvvhxwwxwwwwwxgxxwwwWwwwfwxwwxwwwwxwwxwgwwxwwwwwuxwwwwwxxwvwxxxwhwxwxxxwxxfxxwxxgwwwxwxxwwwxwwxxwwxwvvwwgevXwwfwgwvwwvwvhvwwhxuwwwgvgvvvwwhxwwxwwwwwwwwwwvwfvwvvuwwwgwwvwwxxwvggfxvwwvxwwXwvxxgxvvxwwwwxxwwwxwxxxwwwxwwxwxxwxxxxxxxxwwxxvxxwwxxwwwwwxwxxxxxxwxwwwxxxhwwxwwgvftwvvvwhwxwgvvgvwxWwgwgwvwxwwxwwwwvwxwwwxwwwwwxWwwwgwvwwwwWxxxfxxwxuwxwgwwwwxxwwwwwxxxwxxwxxxxxwwxxwxxwxxwxxxxwxgwwwxxwxxxwxwwxxxwxwxxwxxwwwwxwvgwwwgvwwwvxgvwwwvwfuvwwwgvwxvgwvwgvwgwfuvwwwwwwwwwxwewggwwfhxvwwwwwvvwwfgwhwghwvvwxgvvwwwwwwxxwwwwxhwxwvvfxwxxwwwxwgxwxxxwvxxwwwwxwxhxvwxgxwgfxgwwuxgwwwgwvvwwwwvwvwwxxwwwxuvwwxwgwwvfuevxwwwgxxwwgfuewwwwvgwwvxxwwwwxxwwwwxvwwgwwxxxxxxwwvvfxxxxxwxxvwvxwwvfwwwwwwwfuvfffvwwxwwwwxwwwwwwwxfwwvwxwwwwxgwvwxggvwvvwwwwxwgwvgwwxwwvgwwwwwxwxwxwxxxxxxxxxxxxxwxxwwxxxxwwgxxwwwgxxwgxxuwvwxwwwwwgwwxwgfwwwwwvvfxwwxxwwgxxwwxxwvxxxxwwwwxxvxxwwwhxxxxxwxxwwwxxwxxwwxwwwxxxxwwxxxxiwxxuwwwwgxwwwxwwfgwvwwwwvvgwvvvugwvwwvwwvwwffWuwxwwwwwvwxwwxwwVwgwwwvvwxxfwwwgwwwwwxgfwfevwwwwwwwwwwwvwxgWxxwwwvwxxwwwwwwwwwwxwgwwwwwxgvxxxxxxwxwxwxwwxwxwwwhxhwxwwwxxxxxxwwxfwhwxwwggwwwgVvwwwwvvugxwwgwvwwvwwwwwwWgvuwwxwvwwwwwwwxxwwwvwwgvwgwwxgxxwgxwVxwwhwxxwxhWxxwgxwxwxwwwwwxxxxxwvwwxwvxvwgwvwxxvwwwxwxwwwwwxxxxvxhwwwwwwwwxxxxwxhwwxxxxxwwuwvgvgwwgwuvtwgvVvugwgwxuxwwwgvgvvxwwwvwwwgufwwgwvvguwguvvwwxvwWwvgfxgfwvxgwvgfwvhwvwwwxuwwwGgfwxxwwxfwgwwhwwwwwwwwwwxwwwwxxwxxxwxwwwwwwwxwwwwwxwwxxxfxxwwwxxwxxwwxxwxwvxxwwwvuwwwvgfvufgwvwuwwwwwfvuvwwxfwwuxwwuhwvfwwxvwxwgwvwvwwwxgwwfxwfgwwgwwwwwwwwxxwwwwvwVgwwxvgwvgxxwwxwwwwwxwxwwfwwwxwxxxxxwwxwxxwwxwvwgwwwwvxwwxwwxxxxxwwwxxxxwwvwwxggwgwvxgwfwxxxwgwwgwvxxwwwwwwwwvxxgxvxgvwwvuWufuwwwxwgxxwuvxwgvgxwvxhvxxwuvwxxxxxgwvvxwwwwxhwxwwxwwwvxxxxgxgxxWugwwwwxwwwxxwhwgwxwwvxwvgWwfwvwfwxxwxxwvgwwfxwhxxxwxhwgvwwwwgwvwfwhvwwxxxvwvxwwwwgwwvhwwxwxWwfwfwwwxwxgxxxxwxxwwxxxwvwewwwxxwxvxuxwhxxxwxwwgwvwwgwwgwxwwwgwhwwwwxwwwwwwwxwwgugvvvwwfwwvxwuwwwxxwwwwxwvxvwwwwwwvxwwwwxwxwgxwwwwvgwxxwwxxxgxwxxxxfwwwxwxwxwwxxxxxywxfvvvvgfvwhwwwwwxxhvxxwwxwwxwwxxxhwwvughwvxwwwhwwxwxwxxwwvvwwwxxxgwwwwhxxxxxxhwwxwxxxxxwxhwwxxxxxxxxxxxuwwgwwwvgwuwvwwwwgwwwwwwewxwwwwwxxwxwwwwuwgxuvwfffvfggvxfwvwwwwwgvwwvgvwwwwwwwgwwxwwxwwwwwwwwwwxfvxwgwhwxxxxxxxxwwwwxwwwwxxwwxxwxxxxxwvgwvwwvewwwwwuwwwwvxxwwwwxwxxwwwgvvwwwwfvUwwwwwwxwwwgxwwwwwvwxwxwwwwwgwwwxwxwwxxxxxwwxwwwwwvwxvwhxxxwwwxxxxwwwvvxwxwwxxwwwvvvwvgvwvwwwwfwvwuwgwxwxxwwwhxxwxxxvvfegfwvgvwwwfvwgvgvwxwxwwxwwwwgwxwwwgvgwxwwxwvwxwxxwxwxxxhxxxxxxwxxwvwvwgwxxxxwxxwwxxxxwwwwwwwwwwwwxwvwwwwwwwxxwxxgxxxwxwvuwgwuvvxxwwhgwwwxxwwwxwwwwxxxwxwxxvwxxxxwwgwwxxxgxxxwwwwxhwxxxxwxxxuwxwwwvwwxgguvwxggvwfwgwwxxwxxwxwhxxxwgwwwfgwfvgvvwgfVxxwwvwvgwwggwwgwwwwxxwwvwgwxvxwxvxwwwffxxwwxxggvwgxWgwwxwhhwwgwwxxxxhfWwwxvwwwxwwwgxxhwgwwwxxxyxxxgwxwwvwWwwwxgfWxxguvwxwxwhwvxxxwwxxxxwgfvxwxvwwvXvwfvxwwwxgwxfxxwxwwxwwxxwwxvxwxwwwxgvWxhxwwwxxxxxxwxwwwxxxwxxwxxwgwVwxhwwxwvxxwwxxwwxxwxxwfwwwwwwwvwvvgvwwwvxwxxwxxgwwxhfugwwvvxvvwwvfugwwgvxxwgwfwxwvwxxwgwxwgwxxwwxvwwwxwxvwwgwvxxwxwxxxyxxwygwxxwwxvwgwwwwxwxwxvwxhxxxxxxgwwwwxuwvvwfwggxffvgwwxvxxxwxxxxxwguvxwvvwxgvuvwwhvxxwxwwwwvhwwxwxxwwxxxxgwxwhxxxwwwwgxhxxxwxxxxgvwhvgwwwwxwxxxxxxxvgwxwwwwwvwxwgvwgwwggwvfwwwhwgxwwwwwvgwwwxwvwwwffvuvvwgvvwfgvwwwfgvvvxgwwvvvvvfvwfvwgwwvvxwwgvwgvwwwvxvwwwwwwvwwvwwwwwxxxwwxwvwgvgwxxwxwxxwvwvggvvvwxhwvwwwwvvwwwwwwxwxxwxwwwgwgwwwwgggfwvgvwwxxwwgwwwxxwxwvwwwwxwxwxxxvwxwgwvwwwwwwfwgvwwfwfwwvwfxwwwgwwgxxvwvwghwwxfwvxwvwgwxwvxxhwwwwwwxhwhxxxxwxvxxxgwxgxvxwxfxxgxwugxwxhgvwxgvxxxwwyxxxxgvvfvvvwggVwwwwvfgvvwgvwwgwwwggvwwwxxfvwvxwxuvwudvvwftwwwetvvxfvwtvwvwwwvfvwuuvwwuwwwwwvwwwffxwvhwWvvxwffggvwggwwxwggxwwvgfwvwxxwwxxvxxwxxwxwvwvwwwvgwwxwfwwwwwwxwwwxxxwwwwfgvuwwwwwwfevvwwxuwwwwvwgwxwwvfwwwxwvwxxxwwvvvwwwgvgwgvvwvwvgxvwfwghwwwwfgvgwxxwvwuwWwwwwxwwwfvwxwwvwwxxwwwwwxwwwxwxxwxxxwwxwwwxxwwvxwwxxwwwvwxxvwvxwxxwwwxwwwwxwwwwwxwwwwvwxwwwwxvwvwwxxwfvwwgwvwwwwwfwvxwwvxwwgvvwxwwwxwwxwxxwxwgvwxxwwwwxwwwwxxwwwwxwgvwwwwwxxxxxxwfvwwwwvxwvxxwwwwvwxxxwwwwwwwwwggfxwwwwwwwxxwwwwxwxxwwxxwwxxwxxxxxwxwwwxwxxwxxwwxwxwwwxxwwxwwwwgvwxwwwwxxxwwwwwgvwvwvxffvwwxwwwwxxwwwvxwxxwwwxwxgxwxwwxxwwgwxxxgwxxxxwwxwwxxxwwxwwwwwxwxwxxxvwwxxxxwwxxxxvwxwwwxwxxxwxxwwxxxwwwxxwwwxwxwxwxxxxxxxwwwxxwwwxwwwwgwgfvwvwwwgwwhwwvwwgwvwxxxwvvwxwwwwfvwwvwggvwvvwVfvfgvvwwwfvvwgwxhwFVtuwwwvwxwvxxwxxwwwxwxwgvxwwxwwxwxxgVxxwxwhxxwwgwwwxwwxxwffufhvwwxxwwwwxxwwxxwxhvxwwwwfggwwwwgwwvxvwgxwwwwwxWgvxwxxxwwwxxwxxwgwxgvvfgxvxwwvfgwxWwxwwvwfwvwwxxwxwgwwwxwxxxwfxwwwxxwwxwyxwxwwxxxxvxxxxhvwwgwgwxwxxwwxwwxxxwxvxxwwxwxvxwvvvwwwwgVwwwvwvwgwvwwvwwxwwwhwxwwvxxhwwwxwwwggwwgwfvggwvwxwvFVtuwgfwwwwxggwwgwgwwwgwwxwxxvwxwxwxvwwxwwwvwvwxwwwwwwxgxwwxxxwhwwwwwxwwwwhwwwxxwwxwxwxxgwxxwwxwwwxxwwxWfxxwgvwgwgxwwwwwhwxhxxhxxxwxxxxxxggvvwwwwwwxvxwvwxwxxgwxxvxwwxwxvxwwxxxwwxvwgwwhvxwxxxxxwxwxwxgxvwxxxxwxwwxxwxwxxwxxxvwxwxxxxwwxwwxwgwxwxwwwwwxwwwvwxgvwwxxvgvvwwxwwxwfwgwwwxwgvvgxwvwwwgvvwwgvvwwwvgwvWffvwwxwwwgwxwwwxwwwwhxwgwvxwxwgwwxwxgwgvwwhhwwxxxWffwwvxwwwxxxxxxwwwxxxwxxwvwgwwwwwhwwxggvxwwwwxxxWgftxwwxwvvwwxwxwxvgvwwxfwvhxuxwvgxwgxwuwwwwwwxwxvxxxxxwvwwwxXgfxwwwwxwwwxxwxwwwxxxwwxxwggfhwvxxwxxvxwxxwxxwwxxwxwwvvwwxwwwwwwffwvwgxwwwhvxwwwwxxxwwwxwxxwvgvvwwgwuwwfwvwwwvvvxvvwwvwvwvxwwgwwvwwgwwwwwwwgwwwwxvvwxwxwfxxxwfwxxxwwwxwvvxwwxwwwwvxwwxxxxxhxwxxwwxxwvvfxxwwxwvvwvwwxwxgxxwwvwgxwwxwwwwxxwfvvhxwuvxxgwwxwxwwwwxwxxwxxwwxgfwwwwxwwxwgwxxvwwxxxwxwxxxxwxwwgwwwwxxxxxxwxxxwxxhxuwxwwgwvwvvvhwvghwwvwwwwggvggwvwwxgwgwwwxwwwwVgwfgwvvwwWwguwwvwfwwxwwwfwvvvwxxwwwwwxwxxwxwwwxwxwwwxwwwvwxxgwxxwxwggvwwxwwxgvwwwxxwgwgxwwxwwwwxwxxxwxwwxxwwVXwwwwwwwwgwwvvwwxwwxxwxwxwvxwvxgwwwwwvwwwxwwwvwfwxxwfxwwxwwwwxwwwxvxxwxwxxwwxwwxgwwxxgwxwxxxwxxwxwvwxxwxwwxxwwwxwwgxxxwwxxxwgxvfuwffgvvwwwwwwgwuwvxvgwvgfwfvvwwvvwgvxwxwxwgfvewuvfgvgwUvfvwwwwwhwwwwuwwxwwggwXgvgvwhwwxwfwgwxfwxxwwvxxxwxWwhxwwwwwwxxxxwwwxhhwwwxwvvvhwwxgwwwxwwxwxxwwwevwwxwvwfvgwwvxvvwxwwwxxwxxxwwhwxvwwxwvhwwgwwgwvwxwxwvwwxwxxhwwhhwggwwxxxwxwxxxWwxwgxwxwwwwgfWgxwwwxxxxxwxhwxxwxxwvxxwxwwxwwwwxxwwwxwxxwgxwxwxvwvxxvfvfgwvwgwxxxwwwxxvwwwwwwwgwwwvvvfvwwxxffwfggwvwwvgggwvvwwvxvwxwwxwwwxwgxwwwxwwxwwfwwxxwwwxxxwvwwwxwxwwwhxwwhvxwxwxxwxxwxvwwwvwxwfwwwwvvwwgwwxxwxwwxwwxwwxfgvvvghgwwvvfxwwvgghwvgwxxxwwwxgxwwxwwwwwxgwwwxxxxwyxxxwwwwxxxwwvwwxwgxxvwwwwxxxxvwwwwwxwwffvfvgwgwwwvwxxwwwwwxwwgwxxwxvvfwvgwwwvwwxwwfwwwvggvwwvwxxwwwwxwxwgwxxgwgvwwwwxxwwxvxwhxxxxxxwxxwxxxxxxwwwxwxxxwxxxwwwwwxwwvwwwvgwwxfxwhwxwxxwwxwwxwvwgxwwhwwxwwhfxhxvwvxxxwxwxwwhvxwxgwxxxxwxwwwxxxwxxwwwxxxxvwxxvxwxvwwwgvwfwvgwfwwwwvvwwvwvwvwwvgfwvvwwvvwwwwwwxwxwvgvgwfvwfvwvwuvwwwvvfwvwwwwwwwvuvvvuwwwwwxwwwwwwxxwxxfgwwggwuwxwwvxvwwwwvwxwwvwwxwxxxhwvvwwuwwwxwwwwxxxxwwwxwwxwxwwxxxxvwwwxevuvwwvvvvgwwwwxwwwgwwwwwwxwvvwvfwgwvwwwwwvwxwxwxxwwvvwgWwVvvxgwwwwwwwxwwvwgwwwwxwvwwxwxxfxwwwvwvwgwvwwxwxwxwwwxwwwfwwwxxwwwxxxxxwvxxxwhxwgwwxwwgxxwwfxxxvwwxxxxxwxwvxhwwxxvwwxxwxwvwwvfuvvwwwvwwwwwvvwvxwwwwvgwwwvwwxwwwxxxwxwvuwewuuvwwggwwwwwvwwwxxxwxvwvwvwwwwwvwxxxvxxwwvgwvwgwwwwwgwwxxgxwvwxxwwxwwxxxxxxxwvgxwxxwwxxxwwwwxxgxxxxwwwxvvwfvwggwwgxwwvwwwwwwvwwwxvxwwxwgvwwgwvwgxwwwwwwxwwxwwwwwvvwxxwwxxwwwxwwwgwwwxwxwxwwwxwwxwwwxvwwwxxxxxxwxwxxwwxvwwxwwwwwxwwxwxwwxwwwhxvxuwwwwxxwwvwVwwwwwwwgwxwfwwwwfwwwxwwuwwwgvxxwgvvvwxwwwvwewfwwwuvgfwwwwwgfvwwwwgwwwgwvwwgVwxxxvwwwwgwfgfvwggwxwgVwxxwxwwwwwvwgwwwxxwxwwwwwgwgwwwwwwwwgwxxwwxwvwwwxxwwwwwwwwwVwxgwggwwvvggwfvwvuwwxwwwxxxxxwwxwwwwwvxgwwwxwwwvghgxwxwgwvvwwxVwwxgwfwwxwxwwwwwwwwwwxwwwwvwwxwxxxxwwwwwWwxvfwgwxggxwwxwwwxxxxxxvwwwxVwuwgVfvvfwvwvwfwffvwxwwgwwwwwvwwwwwwwwvwwwwwvfwvfuvfegvuvvwfwuwwvxvvwwvgwffuwwfwwvgggffvxvwwwwwwxfwwugVwgvxwwvvfWgwwfvwgwwwxwwgwwxxxxwvwwvwwwwwfwxwwwwxwwwwwwwwgxwwwxwwwVvwwwvwvwvxgvvwwwwgwwwgwvwwxxvvwwvwwxwwxwgwwwwwwwwwwgfgwvwwwgvgxwwggwvwxwgxxwvvwVfgwvxvuwxwxwvwwwxwwwxxwxwvgwxxwxxwexwwwxgwvxgwwxwxwxwwwwxxxxxgwxwwwwxwwxxwwwwxwwxwxwwwxwwwxwxwwwwwwwwwwwwwwwxxwwxxwxwwwxwwwwxwxxxxxwwxxwwwwgwxxwxxxxwxxwwxwxgwxgwxxxyxwwxxxxxwxxwwwxwgwwxxwxwwxwxxwwxxwwxxwxxwwwwwgwwwwwxwwxxxwxxwwxwxxwwwxwxxxxxxxxwwwxxxxxwwwwxgwwwxxxwxxxhwwwwwwwwgvwfgwwvwvvxwggwgwwxwwxxxxwxwxwfgwvgwwvwwwwwwwwxwxwvwwxwwwwwxwxxwxwwwwxxxwwfwwwwgwxwxhxxwwxxxxxxxxxxxxvxwwwxxxxwxxxxwxwwwwwwwgwxgwwwwwwxxwxxwxwhxxxxxwvwwwwvxxwhwwwwxxxxxwvxxxxwwwwxxxwxxxxxwxxxxwwwxxxxwxwwwwwxwxgxwwvwwwvxwwgwwwwwwwgvwwwgvgwvxxxvvwwxevwwwwwwwfvvwfxvvxvwgvwvwvwwwwwwewwwvxxwwwwwxwwgwwwwxwwwwxwwwxwwxwwwwvwvwxwwvfvxwwvwwxxxxxwgvvvwwvvhwwuwxvwwxwwwgvwwxwwwwwwwxxwxwfvvxwvgxxxvwvwxvwwwxwwfffwxwvxxxwwvwwwwxxxfwwwwxwxwwxwwxwxxxwxxxwxxwwwwfwwwxwxwvwwgxgwxvwgxxxwxwwxwwwwggwwwwwfwgwwwxvwvwwvxxwxvwxxwwfvfvwwwxxxfvuwwwwuxxwvvvvvwvwxwxwwwxwxvwwwwwxwwwhwxxvwgxxxxxwxxwwxxxwwxxwxfwwgwxwxxwwxwvxhwxxxxxxxvwgwwwxxgwwgvxwvxhxxxxxwxvwwwwwxgvvvwhwxgvwwwxwvvxxwxwwwwxxxgvwxxxgxwwxxwwxwxxgxxwxxxwwxxxwxxwvxxwxwwxxxwwwxxwwwwwxwwwxgwwvvgvwwvgwwgwwgwwwwwwwwgwwvvvxvxgvgwgvxffwvwvvguwwwgfuvwwwwuwvwvwwwwwwwwgwvvgwwwgvWxwxvxwgvwwwvwxwxgvvwwxwxwvxgxwgwwwwwwwwxwwwvwxwxxwxwwwwxwwxgxxwwuwxwwwwwwwwwxuwwwwgwwwwwvvwxgwwwwvwwwwwwwwgxxwxuwwwwwwwwwgvvxvwxwxxVxxwwwxwwgwxghWxvwxwwwfxvwggvvwwxuxwwwwxwwwxxxxhxwxwwxwxxxxwxxxwwvxxxxxwwvwwxwxxwwwvwwwVwxwggwwxwwwxvwvgvwgwgwvxwfvvxwwwwwxwwwwwwwwvwwvwwwfuvgwvwwvewwgvewwwwwwwgwgwvwvwgwwwwwwwwvwvxvwwvvwwwwwWvwwgwwvxgwwxxwgvxwxxwxwhwxxxhwxwxgwwwxwwxxgwwwwxwwxwxxxwxwxwwxxxxxxgggwwggwvwwwxwwwwwwvvwwwwwwgxxxxwwxwwwvxwwwwgxxvgxwwwxxwwwwwwwwwhhfwwwwxxwwxwwxvvxxxwwxwxxxwxxxwxxwwxwxxxxxwxwwxwxgxxxxxwvwxxwwfgwwwfvvgwvggfwvgVfwvwwwvwwvvfxvfvgevfgwvvwvwwwwxwvwwwtgewVwvuvwweVwfwgvuvgwwgVgewvfvwfvvwwwwwfvvvwvwGwgwwgwwxxwwxgggvvwwfgvwwgxwwxxxwvxxwwxwwwvxwxxwxwwvwwwgwwxwwgwwuwxwxWwwwwvwwwxwwwwwwhhwxwxgvwwvwwwfwvvvvwwtguxwwwvuwfwgwgwvgwwvxwxxgfwfxwwWwxwwwxwvwwwwxwwvwggwvwwgwwxgwfgVwWgGfwgwwxghxwwwgxwxGhxVwwggxwwwwvvwwgvvwwwwgwxhXwgxxwgwxwxxwxxwxwwxwvwxwwggxxwfxwxggxgwwgxgwxxxwwgwwxwwxvwwwwggvggwvufwgfWvgvwwWvwwwwwwwwvwxvvwwwxwwwxvwwwwwwgwgvvwwgfwwfwwwfvwggwgvwwwvwwwvwvwwvvvwvxwwvggwwwwwwfwwwgvvwwwxxwwxgwwhwgxwgxwxxwxwxvxxxxxxgwwwwwwxxwxhwxxhwwwwwvxxvwwxxxwwxwwwxwgwgvwgxgvwgvgfvwgwwwwxxxwwxwxwxxwwwxwwwwgwwwwwxwwgwwwxwwwgxXxVwvwxvwwwwxwwwwxfwxvwwwhwxxwfwwgvwxwxxxxwwxwxxxwwwwvxxxgwxwxwvwywxwwwxxwxxwwwwwxxvxwxwvuwxgwvvwvwxvwgwwwwwvwwwvgwwwwwxwwwwxwwxwwwvwwwwwwxwwwvfggvfdghwvwvgxggfvwwgwwxwgwwvvwfvwwwwwwwwwwwwwxwxxwwwxwxwvwxgwgvvwwwwxwwxhvvwwwwgwwwwwxwxhwwwwwxwxwwgwwwwwwxfwxxxwxxxwvwxwwxwxxwxwxwvfgwwvggwwwxggwtgwxwwxwwwwvwxxwxxwwwwvwwwxxwwxxwgwwvwwxvxxxvxwwfwwwxwwwwwxxxxfhwxxvxwwxwwxhxwxwxwxwwvxxwxwwwwvwxggwwvxxxxxxxxwxxwwwwgxxxxxxvxgwxxwhwwwwxxxwxxwxxwxvwgvfgWwvwVvwwxWwxwwwvffvuwggvwwgvvwwxwgvvgxxvfwVvevfwwvggwfwwwwwwwwwwwwguvvvwwwfvgggwwwfvxvwwxWwvfwwgvhggvxgwwvxwgwwxwwwxxxxfwwwwWvvwxxwwwxwxgxwwwggwvxwvwxwxwwxwwwwwxwwxxwwwxxwxwvwvgggwfwwxxfvwvwvwwxwwwhvwvwwgxxxhwwgxwwvwwxwxxwgwwwwxwgxwgxwwwxhwgghxxwwwxwwvghwwxwgwvvggVgvwxxhxwwgwwwhVwwxxxxxwxgxxwvwxwxwwxxxxxwxwxwhxwwxwxwwwwxwwxwxgwfuwwvwwwgwWvwwguwwfvfwwwwwwwvgxwvgvwwfwwgwvwwwvwvvvfvffguvvfwvwggwwwgvwvgwwvvxvfuvwvwgvwwWvwvwwwwwffwwwwxxwvwwwxvxwgwwwwWfwvwgwwwgwwgwwxwwwwxwxxwxwwwvvwwwgxvvwwwgwxwwwvwvxwvwwgwxwwwwxwwwwwwvwvwwwvwwgwwgfgfwwwgfvxwgwwuwfwvwwwgwggvgwgwwwwhxwvvvwwwxwwxgxggvxxwxwwwwxwwfwwwxxWgwwxwfwwgxwhgWxwxvwvwvwvxwVfvwwwfxwwxwwwxwxhxgwwwxxwwxvwwwhhxwwxwxggvwwxwxwxwwwwvxwxxwwwxwxwxwwvwwvwwwvfvwxvfvwgvwvuwwgxxwgvwwwgggxgggvggwvwwwwwwwxfwvfwvwwwvgwfwfwwwfvufwwvwvwwvvuwwwwfwwwwwgxvwwwxwvwwxwggwwggvxfwwwwxewvWvwwxxwwhwwwvgwfhxwwwggxwwxgwgxwxwxxvwwwwgwxxwwgwxgwwxxwwvwwwfwxwhxgxxwxgwwxwvvfwvwxVvwfwwwwgxxwwwxwvwfxxgwwwxwwwwwwwwwwwwxwwwwxxwwvgvwwgxwgwwwgwwwwvwgxfwwwxwwwwwfwxwwxwwwwwwhxxxxwxfhhhxwxxwwxwxxwxxvwxhxxwxxwwwwgwwwwxxwxhxwwxxwwwwwwxuvfwwxwvxwgwwwvwwxwwwwgwwwvxwwxwwgvxxxwvwwwfwwwxgvwwhwxwvvwwwfvvfwuvvgvgvwwwwgwwuwwxWfwwgVftuwwwwvwwfgvvgwwvwxvvxgvwwvwwfFwwwwhwxgwgxwwwgwxxhwfxwxxxxwwxwwwwwwwvwwvvwwvwwxwwwwwwwxwwxwgwvvxxgxvxwgwgxwxwxxxwxwxvwgwvvggwuwVwwxwwwgwwxxwwxwxwfwvwwwvgxxwwwwwwxxxvgwwvwwvvwwwwwwwgxwxgwwgvxxWwwwgxgwxWxwxwwwxxxwwwwwwwgwwwxxwxxxvwxxwwvwwwhxhxhvwwxhwwxwwwwwwwxwhwwhwwwxwxxxxxwvwxwwxxxwwwxxhxwxwguwwwWgwwwwgwvfFwwwwxfwwgwwxwwvwwvxwvvgwhxwxxwwwvggvwwwuvuwvwWvgwvwgwgWvgwwwwfvVftuwxxwwvwxwwvhwgwxgwwwwwwwwwhwwwxxguwvXwwwvwwhgxhwvwxxwxxwwwwwwwxwxwwwwwwwwwwghwhgxwvwwwwwvwwwwxxwxxvxwwvwwwxwwwgwwwwgvuwxxgwwgwxwwvwxwwwvxwxxxxxvxwgwwwxxwgvwwwwxwwwwwvwgwwxggwwwgxwxwxwwwwxwxwgwgxwhxwvwwgwwgxwwxxxvwwxwxxwxhwwxwhxxfwwxwggwwgxxwvwxwxxwwwwwwwxwwxxwvxwxwwvvwvgxxxxwvxvvvvwwwvwwwxwxxgwwvxwwwwwgvwxwwwwwvwwxvvvwgvUuwwfwvvgxwWwwgwvgxwwwwffvvgwwwwwwvuwwvwwxxwwwwvxwwwxhwvwxwuwwhgwwwwwgxwwxwxxgvVgwvgwwwwgxgwxwwwwxwwwwxvxwxxwxwwwgvWwgxvgxwgwxwwxwwgvvuwhgxxvxxwwxxxxwwwwwwwwwwwwwwwvwwwwxxwwggwxwewhwwwfwwvwxxxxgvWvwxwwwwwwxwxxhxwwxxwwwxwhxxxxwgfxwvwwwxwwxwwxwwwwwgwxwgxwwvwwggwwvwwvwwvgwgwxxwxwwwwgvxxwwwwgvVevvvwwgwwgwwvwfwwwxwwwvuwwvxwwwxwwvewwvvxxwxwwwuwxwxgwwwwxxxwwwxwxwwxxwxwgwwxxwgxxxvggwwwwxxxxwwwxwwxwwwwhwwgwwvWxxwvwxwgvvwxvxvvvwgwwwvwwxwxgvvfwxwvwwwwvwwxwwxxhwvwvxwwxwxwgvugwwwwvWwvxhxwxxxvhxvxgxwxwwxwgxxWwwvwwxwwwxvgvwwwwxxxwxxwwxuwgwwwvgwwxwwfwwwxwwwwwwwwxwwwwwwwwvwgwwxwwwxgwgwguvwwgwgwvewwgwwwgWftuxwxuwwgvwwwgwwxvgvvxwxgwwwwwxwwwfvxxfwwwfFgxxxxxwxxwvxxxxxxxxxxwxwggwvgwfvxwwwwwwxxxwxhxwwxwxwwxwwwwggvwgxwfvwgwhwxxvwwwwwwvwgxhgwvxxwwwgwwwwgwwgfwhfwvwwfxxwvxwgvwxwwfwwWwwwwgvwhgxxwxwwwwwwxgxxxwwxhwxvxwxwxxxxxxwxxwgvxwxwxwxxhxgxwxwxwwwwwxwwvvwwwfFvvwwwwwwvgfvwwwwxwxxwvxxwxxwvxwwxwwwwwvwwwwvVfduwwgwwvwwfxxxxwwvfvwxvwfwwvxgwwvvwgwwwwxwwfvvwwxwxwxxwwxwhvxxwwxwxwwxwxxxwxxwwwwwwwwwwwwxxwwxxxxwwxxxwwwwxxwxwwxvwxwxgwwwfwxwvgwhwxxxwxgwvxxxxwxxxxxwxxfwfvwhgwhwwxxwwwhwxgwxwwwwwwxxxwwfwwxxgwwxwwvwwwxxgwwvxwxwxwwxxwgxwxwxwwxxxxxxwxxxwwxxwxwxwwxwxwxwwwxwwwwwwwvfvwwwwwwgwwvVwwwgwwxgfgxxgvwgfVwwvwfwwwwwgffewgfVuuwUvxgfwwgvfwvgxgfwvWgvwwfwwwwWvwfxwhgxwhgwfwxwwvwwwgwwvgwwwvWfwgwxwwwhwxWvfwxxwxxxghvgwvgwwgvwgwwwwwwwwwhwxgxwxvwxwxwwwwwggwwggvfwvvxvfxhwvvwxhwgvgwwwwvvwwwxgwwhwwwwwwgwwxwvwwfxwgUwwxxhxwwwhxfgvwgxwgwwwwwwgxxxwxgwfxwwwwfwvwgvwggwvwxwwxxwgwxxwxwxwxwxxxxxxwvgvxwwfxwwWvwxwxyvxgwxgwwhwxwxxhxxxxxxwwwwwgfWvwVdvgefwgfgVvfwwgwvwgvVufwwvwxgvwxggwwwxxxxwgVfvdveuFuUevwvwuvfwgvVVvWwfwgwfwxVewwxwxwvwxgGfvwxxUvwwwwwguwhwxxggvwxwgxgxxxxwvxwwwxxxxxxxwxhxxwxxwxxfwwwwxxgxwwwxxwxxvwxxwxxgwwvgvffwvgfuvgwwuvwvwwwwugvhwwWfuvwwgxuwxxvwwwggwgxwwvwwwxwffwWwgwwvvhvwwXXfwwwghwvwwwwwxWvwevgWgwwWWfwGvvhxxgwwwwxxwwwxwxxxwwhgxhgwxwwwwwvwxxwhwwwgxwxwwwwvxxxwwwwxwxxwwxxwxwxwwwwxxwvwvxxwwwvwwwwwwvwwxwgxhvwwwwwwwwxwwwxwxwwxxgwwwxxwwwxywwxwwvwwxxwwxxwxwwxwwwvwwwxxwwxxwwvwvwwxxwxxxwwwvwwgwwwwwvxgvwvwwwhwxwxwwwxwxxxwxwgxxxgxxxxwxhvwwvwxwxxxxxxxxwwwwwxwxxwwvwwxwxxwwxwwvxxxwxwwwwwxwxxwwvwvwhwxwwwvvwwxwwwwwxxxxwxxwwwxxxwvvwwxxxxwwxxwxwwwxxxwxxwxxwwvwvwwxwxwxwxwxwwvxwwxxxwyxxxxxxxxwxxxxxwxwwvxxwwwgvvxvwuwwvgvvvfwfvwvuwxxgfwwwwwggwwwwwxwwwwvxvevwvwuvfvghuvvwvwwwgwwVvfvvvvwwwwwwwwvvgwwwgwwwwxwvxwwvwgwwwwwwwxwwxxwxgwvwvwxxwvgvgwwwwwwxfxwxfwwxxwwvwxxgxxwwgwvguvvxwvvwwwuvwvwwwxvwfwvwvvvwwwxxwuvgvvfwxxvwwxwwwwgvwwWwwwwvgxwwgxhefvwxwvfxxxvxwwggXVwwwhvwxwwxwwwwuvgwwgxxxwxvgvwxwwwxxvvwvxvwwxxxwwwwwwhfxwwxvwwxxxwxwgvgwxvxvwwwgwvwwvfuwwwvwvwvvwwvwwwxwwwgwfvvxwwvxwvvgwwvwwvwwgwvvwwvwvxxvwwwgwvwwwwwgwvvwwwwwvwvvwwwxwvwwvwgwvwwxwhwwhwxwwwgwxxxwwwwvwxhgwxxhwwwwwwwxwxxwwxhwwwwxxfwxxwwwxwxwvwwwwgwvwvwwxvwxuvuxwwfwwwwwxxwxxwvvvwwwwwwwwgwwwxwwhwgwghexwwvwhwvwwwwwffwwxvvxwgwwxxxxwwxxvxwvwxxxxxxxwwuvwxxxvxxwvwwxwwwxwxwvfwwwwwwxwxgxwxgwgwgwgxwwgwwxwgwwwwgxwwwwwwxwxwvxxwwwgxwvvwwggwvwwffwwwgwvfgxxwgwgugwwguvxxxxfvfgxxxvwwwwgfvwxgugwgwwwwhvwxwxgugxvhwxxwwwwwwxxwwwwgwxfwxwwxgwwxxwxwhwwxwwgxwwvhwwxhfgxwgxwwxwwwwwwxgxwvwwxwvwxxxgwwwwgxhwvwgwwwgwxxgwxgwwgvwvghwvxwvwgxgfhxwhwfvxwwwwwwwvwwxxwwgwwvxxgvxxxwxxwwxxwwvwwgxgxwxgxxxwgxgxgggxgwwwxxwxxwxwxgwvxxvwwxwwxwwxgvwgvgvxgwguwwwwfugwwwvxxgvxxWvugwwwwxwxxwwgvvvvwvvfxwhxeevvwwgfgvwvwWfuVfefwgvwwxxxxggvwwwwwxwfvvwwxwwxwxxwvwwgwxxwwxwxxxxwxgxwxxxgvxwwwwxxxxwxwwwwwxxwwwxxwwwwvvwvwwwwvwxwvxwxvwwgwwvxxxwxwwwxwghxvwvgxwxxwgfvxxwghhfwgwvwgfgvwxwwwxxwwvxgvwxgwwvwwVgwxwxxxwxwxxgxxxwggxxxwwwxwwwxxxxwwxwvwwxxxwwwwgwwxvxggwwwvwwwgvvwwwgwwwwwffwwvvxvwuxxgwwxvwwgvwwgwwxwwvwffvvvvfwVesdwgvvwwwvvugwwvfwvvWfuewwwwxgvhvwwwuwxgwxggwwguhWUwvwwwgwwwgwwxwvxwwwwwwwxxgwxxxxwwvwWgvufvwwwwxhwuwxwvwwwxxwxwwwxxwwgwwxwvxwuwxwwwvwwvwvwwgvvxwwvfvtuwxxwxgwvwwwgwhxwgvvxvggwhwwhwwvvwwVwuvwvwwwwwFwvwvxxwwwwwwwgxwwwwwvwwwxwwhxgvvwwwwwwggxxxgvvvwxgwxhwwxxwxxwwxwXxwwhwxxwwxwvwwvwwxxvgwwwwvwwwxxfxwwwwxwwwwwwxwwvwwvgfvwfgfvghwgwwwwwgwuvgwwwwwwgWUvwvwwwwwwwgwwwwwwxxxxwxvwvVesdvwwwwgwfuvwgewxfwwwgwfwvwvwfwgwwgwwwwvwwwfgwwwvwwwxhwvwwwxwwwwwwwxxwxxwvwfwwwwwghgwvxwxwwxxvgwwxwwwwwwgwwxwwxwwwwwwwwvwwxwwvwwwwhgwwxwxwwwwwwwwwvggwxwfvtuwwggwgwxwwwwwxwwxwwxwxwxwwwwxxwwuvxwvgwwvwwvvxhgwwgxwxwxwxwwwwvwwwwxuwwwxxwwxwwwxwwwxwwhwwxwwwwhwxxXxwxgxxxxhgwxwxxgwxgwwvwwwwhxgvwwwxwwxxhvwgxxxwvxwxxwxwwxgwvwwwwxwwwwwwwwwgwxwwwwxwwvwxwwwwwwvxxwwwwwxwwwwwxwwwwxxwwwwxxwxwxxxwwwgwxwwwxwxwwxxwwwwwwwwxwxwxwwwxxwxwxxwxxwwxxgwvwgwhwxwwvwwvwwxwxxwxwvwxwxwgxxgwwwxxxwwvgvxgxxwwxwwxwwwwxxwwwxxwxxxwwfwgvwwxwwxwxxxwwwxwxxwwwwwwxxwwwwxwwwwwwxwwwxwwgwwxwwwwxwvvwxxgwwwwvxgwwwwxwwwwwwwwwxxxwxxwwwxwxxxwwxxxwwwxwxwxxwwwxwwxxwxvwvhwxxwwxxwxwwwwwxwxxwwwgxwwvwxwxwwxxwxxwxxxxwwxxxxwgxxwwwwwxxxxxxgwxwxwwwxxhvgxxwxwwuxggwxwwvfwxghwhgwvwwgxvxvvwwwvxvgwxxgewhffvwxWVgwvwgfwwwWghfwvwvvvwxgwguuwvwffwgwgwvwhxgxxwwwhggxwwwxxxghxxxxwxwwxhxxwhwwvwwwxwxwxhgxwwxxwwxhxwxxxhxwxxxhgxxwxgxggwvwwwxwhwwhhwxwxvwwvwwgwwxwwgxWVwvwffxxguwvwxwgwWvwwwuuwxxgvxwgwxggfxxwxxvxwxXxxwxxwhwxxwwxxxxxxvxywxgxwgwvxxwwxxxxxxwxvxwxxxxxxwxxxwxgwwxwxgwvvwwxxwxwwwwwxxhwxwxwwxwgxwwvfgfwgwgwwwggVwvWgwwwgwXwwwgxwwwwwgwgwwfwwggwwhxwwxwvvwxwxwvwvxwxxxwxxwwxxxhwxxxwxwxwxxxwxxxwwxwxxwxxxwxxwwvXgwhwxwggwxgwwxwxvhwxwxxvwwwxxxxwwwwxwhwvwxgwwhwwwxxxWwxgxwwwwggwxxxxxwwhhwxxxxxxxwxxwxxwxxxwxxwxxxxvxwwxxwwvxxxxxxwwxwxxhwxxxuwgxuvfwwwgwwvfvvwwwvwwvwwwwwwwwwwvwwwttvwWvfwfuwvwfvvffgWuwgwwxwwgwwvwfwxxxxwfwwwvvfwxvfvwwwxuwwgwwwwxgxxxvwwwwwvgvwwwwvxwwwwxwwwwxxxxwuwwWuuwwwwwggwwghfgwwwfwwwwxxxwwhwgxxwefvFgtwwgvwwgwWuhxwwwgwxwxwxxxxhwwwxxxxwwwfvwwwxwwvwxwwwwxwxwwwwwxxwxwxwwwxvwwwxwvwVwggfwwxwxwwxvgxwwxwxxggxxgxwxgwwywwweufwvvvwvgwwvwvwvvwwwwwvwwwwuvvhwwxvwwwxxweffvuvvffwffwwwvvvxwwwwwwwwvvwwwwgwxwwxxwwwwwhwxwwwwvwwwwvgwwwwwxwwwwwgwhwgxxxwxhwxxxwwgwvwxwxxxwvxwxwwxxxhxxwxvxwvfwwwwwwwwwvwwwwwwwwwwwwwwwwxgwwwxwxxwhwgvvvgwwwwwwggwwwwhxwwwwwxgwwxWgvwxwwwwwhgxwwwvvgwwwxwwxwwwwwwwhxwwxwxgwxxxwwwwwwxwwwgxvwwvxwvwwwwxwwwwwvvfxxvxxxwwwxwxwwwwwxwwwwwvvxwwvvvvwgwwwwvwvfvvwwwwwwwwwwutvfwwfvgeuuwwwwWewwwgwgwwvwvwwwgvwxvwwwwxwwwwwwwwwwwvfwwxwxvvxxxwwgwwwwwwwxwgwvxwwwvwwvwxxxwxwxwgwxfwwxwwwWvwwwwvgvvxxwwwwxxwwwvwggwxwggwxwwgeeuwwwwfVwdwvwwwwvxwwxwvfxxvwgvwwwwxgxxwxwwwwwwwwwxwwuwwwxwwvgwwwxxwxwxvvwgwwwwwghVxhfwwwgwwwxgwvhwxwwxxeuvgwvwwwgwvwvWwwwxvgwvwwwwwwwhgwwwxxxxefuuwwwvvvwwgwffefwwwvwvwwvwwwwxxxvvwfwvwwwwwVwxxwwwwwxwwgwxwwxwwxwxwxwwwvxwwxhxwwwxwwwvxxxwxvxvvwgwvwxwgwvgwxwwvvwwwwwgwvwwfxwwwxwguvwgvwgvwXwuwgvvxgvvwgwxwvwxwxhwxwwxwwvgxwwxwxwwvwwwwxxxxwxxwxxxwwwwwwwwuwwwwxwvwwgwwwxxwwxxxwxvwwvgghwxvvfwgwwvvvvwwvwggwwwwghxwwxwxhwwxwgwgvgwgvvxvgvfvvffwWuwwwhvgwwvwgvgwwwwxwxwxwwgwwgwwwxxwxwvwfwhwwwwwwgwwgwwxwgvvwxwxwxwxwwgwvwvwwwwwwwwxvfwwxxvvxwxxxwxwwxxwxxxxxwwwvwwwfgvwwfwwvwxwwwwvwgwxvwhwwxwwwvwwxxxxxwwwfvxwwgwwvwfwvvWgwgvxwvwwhxvwgwxwxxwwxhhhwgxgxwgvgvwwwwwwgwwwwwwwgwwwxxfwwxxwxwwwxwvfgxfgwvwwxvwxwwgXhuxwxgwvxwwwxwxxxxxwWuwvfvwvgveuvwvggwwvfvwvwwgwwxwwwwvwhwxggwwxwxxwefwgfvvvfvefvwvwgwgwfwffwxwwfvgwgwvxwwgvwvwwwvwwxwhhgwwgvgwwwwwwvwgwWfvxwvxxwwxxxxwwwxwxxhgxxwxwwvwuwwwwwxxwggwwwxwwwwxwwwxxwxwwwwxffwgvvwgvuwffwvfwwgwxvwxhvwgwwwwwwwwvwxxwwgwxxxxvwxvvvvwwwwwwwgeewvgfggwghvwwgghvxhwwwwwwwfwgwwxwwwhgwxxwwwwwwwgvwugwwwwxwwxwfggwgxvwwwwwxwwxxxxxxwxxgvvwwwwwwhwwxwgwgwvvxxxxxxwxxwwwwwuwgwVvgwvgwvwfuvwvgwgwxvvvvwwwfxwvvuxwxxusvvvguvvwVgwgfftwfgewwwwgfgevwvvwwwwwxwwwwwwxwwwfgwwwwwwwwwgwwwwxxwfwwwvwxuwwwxhxxxfggfwvwwwvxxwwwwwwwvgvfwvwwwwwvwwvwgwxwfvwgfvwwxwGfvwgXgwvvvwuwwwgwxgwvxwxwgdfvghfwwxwUwcgwvwwwvwwwwxhwwwgxwvwwvwwwfwwwxwvxwhvwwvxxgxwwxwxwvwwhwvvvwvwwgfwwwgxxvwggVxvwvxVgwwwwxgwwgvWxwwxxhgwwvuvfwggguwwxvfggwwvwwxxfgwvwwwwxvwvxxxwufffewwwvwwxfuwwxwvggwwwwfvvfuwgwxwwwvgwvfwwwwwvwwwwgvgxwwwwwwxvxwhxxwxhwvvgxxxwwwwwxxxxwggwwvhwwwwwwwwwwxwvwwxxwwwwwxxvvvvwvwwwvgwvvwwxwwxwwwwwxwwxwwwvwwxvwhwwfvwwwvwwwvwwvggxxvvWwvvvwwwwvwxwxxwfgVwwwwwwgwvfwwwwxxwwvwhwwgxwwwwxxxxwxwxhgwxwxhwwxwwxvwwxwvxwgwwwwwwxxgxwvvggwgwwxggwuwwwwvggvwvwwgwwvvvwwwwwwvvgvwwvwwwwwvwwwvgvvvwwgwwvxwvvwwvvwwgvwwwwfUvwfffUeufgvwvwwgwwwvwwwuUvuwwwwwwvwwwwwwwvgwwwwwwwwwwwwgwwwxwgvwgwwxxwwwwxhhwwvvvwwwwxvVwuwggwwwxwwvvwxwgwvwwwwxxfwwwwwwfwwfvwvfwvvfwvwwwwxwwwwgvfwvwwwgwwwwwwwxwwxwxxwwwwwwwwgggwggggvxXvvfwwgwwwwwwwwhwhxwwhwxwwwwwwwgwwfwvwwwxwvvggxwwxwxwwwxwxwhwwxxwwwwgwwwxgwwvxwxghgwxxxhxxXWwxwwWxxhhvwvwvwvwEdgwwvwgvvvwwVuuwgvxwwwwvwvfwwwfvvxvwwxvwwwxwwgvUUgeuvwvwvwwvwSSvewfvgwvvgwxwvwwvvwwvwwwvgwwvwwvvwfxgwwwvwwwvvwgvwwxwvwwvwxgwgwwwwgvxwxwwwwwxxwwwvwwwxhwhvwwwwvwwwwvgwwwgwxxwwwxvvwxwwxwwwgwvwwxwwwxvwvddwwxvweuvwwfvwwwxwwwwwwwwxgwxvwwwwwwgwxvwwwwwwgvwxxwwvwwgxgwwwwxgvwwwwwwxwwwvwwwwfwvwvwwvfgxwxxwxwwxwxfxwxgwxwxwxwwwxwxwwvvwwxxwxfxwxwwxxxwxxxwgwwxwxwwwwxgwwxxxwwwgvxxfgvxuxwgvwwwwxwwvwwwwvxgwwgggwwwvwgfuwxuwwwvwwvwxhwgwgwwgeuwwgVwwvwvxVuwgwgegwvuxwvwwvwwvwwgwvwwfwvwwwwgwwggwvwgwwwxxwvwwwwxwgwwwxxwwwwwwwwwxwxxxwgwwgwwwwvvwwwgvvwxxwvwvwfwxwwwwwwxxxxwvwvwggwwfxwwwwwUvvgxfgevwwwwwwvwxxwwwwvxwwvwxwxxwvwghvwwwuxwwwWfgxvwwwgxwfwwwwwwwWwwwwxxwxwXwgxwwVvvwvwwxxxwwvwxwxwvwwwxvxwxxxxwwxxxwxwxxwwxxwxxwwwxwxwgwwuwwxxxwwwwVvwxwxhwwxwyxxhxwwggwggvwwwwgVwwWwwfvvwgwwwwwwwvwwwwuwggwwwxwhvwwwgwgwfewvvfvvwwwwgWvwwwggwvvwwwwvwwvwwwxwwwwwvwwgWwwwwxhxxwwwwvwwwwwwXwxwwwgxwxxxwxxxxxvxwhwvwvwwwwwxwwxxhuwwwwwwwwwwxxwxxxwgwwwwwwwwwwvgwwxwxwwwxwwwwwxxwwwwwwwwWxwwgXwwgwwwwwwwvwwxgwwxghwvvxwghxwhxwwwgwgvhhwgvwWwwewuxwwxuwwwwvwxwwwwwwwwwwxwwwxwxwxwxxwxvwxxxvgwxwwwgwxuwwwfwxxxwwwwwwXwxwwwwxvffvfvvvVvfVuwvvvgwwwvvvwwvwwfveVwvvvvxwxwwwuwvvwwgwwwVfeevffwfvffwgvvvgfwwxggfwuwgwwfwffffuvgwvwhfwvwxwwwhxwwfvvwvgevuwgwvvWfwwvwwwwwxwuwfwvvwwwgwwwwwwvwgvvvvgfewwxwgwwvwxxwvwwfvvvgvewwwffwwwhxhfxwwwxxgfxwwxffvgvvfvwfwwwvwvgfvwwvwwwvwwxwvvfwxwwwwwwvxxgvvvwwxxxwwwfvvgfguwxxgwxwgWvfgxghwvggwwghwwwvgwxwxggewghxwfghhefwwwvwvvvxwvwwwgvwwxxwwwgvxxvwwvwggxwxwxwfwwxwxwwfwgweufxwwwgwxwgwwwgwwxvxgfUxwwwxwgwhgUwwgWwwwwxwxxwwwwvwxfvwvvfuwVwwwvfgvwwfwfwwwvxuwVgvfwwxwwwxgwwwxwwufevfvvffwvwgwvwfwfwwwwwwwvwwwwgwvwvwvwvwwhgggvwvwwvwgggwwvxwwwvwwxgxwxxxvwxwgwxgwwwwxwxxwwwxwwwwxxxwxgwwxwwwwwwxgxwxwxwhwwwwwwxwxxwxwwxwxvvfgvwvwwwwxvvvvwwwvvxwwvwwwwwxxwwxxxwwxxxxwwxwwvwvvvvwgwhwwwvggvwxggwwwfwwxwgvwwhwwwvvwwwwxwvvwwwwxxwxwwvwwwwvwwxwwwxwxxwxwwwwxgxwwgvwwxxwwwvwvwwwwxvwxwxwxvxwxwwxwvxxxwxvwhvwvwxvvvfffvvxwgwwwwwxwwwfvvgxvwwwvvevwwwwvfvgvvwfuevwwwwuwwwwxgxxvvwxwwxwxwwwwwgvwwWffvgwwwwhwwwwwxxfwgwxxvxwfgwwwwwwwxeewvwvwwgwhvwxxwxwwwwwwxxhxwwwxwwwwvvgwfgwwwWwvxgwwvvgwxwvxxwwxhvwwwwvvwwvvwxwgwvvexxwxwxxwxwwwvxxwwwfwgvguewvwvxxwfvwwwgwxxwvxwxxxwxwxgwvvgvxxwvguxwwgvgVxwwxxxwwxwfvvwwwggvwwwwwvvwweuffgwwwwwvfhwwxwxvwwwwggwwwxwvvwfwwvwvwxuefxwXvwxvwvxwggwxwhwxxwwwwwwxwwvxwwwwxwxwvxxwxwwvwXhvxxwwwwwxxwwwggwxwwwxwwwxxxgwuewvwwvvwwxwgwwwwwvwwxwxwvvwvwwwwxxxvwvhxwwwvwxvxwwwxxwxgwwhxwwhwwxwxwxwwwhgwwxwwxxxxwxwwwxwwxgxyvxxwxxwxxxwxxfvwVwwwvgwxwwwgwwfwwhvvwxwwfvwwwwwggwxwwwwwxwwxwgvwfgfvwvvvwwwwxgVvuwwwgfeuewvvhgewwwwwwwwwwwwggvwwwwwvwxwwwwvwwewvwvwwwwxgwwxwwwxxwxxvwxwwvgwgggfwgwwwxwxgvffwgggxwgvwvwwwgvxxxwxxwxwwgwwwwgvgwwwxwgVwvwwxwwvwwwxwwwxwxwwwwgwvgwvvxwwwfwgxxxwvwwwwgwgfexxwguWwxfxwwwxgwxxwwwwwxhgxvxwgwvwfwvxxwwvvxwxxvwwwwwwwxxhwxwwwwxwxwwwwwgwgwwwwwggxxvwwwvxwvwwhxwhxexwwwwxxwxwgwuwvwvwvwfvVvvwwwwuuwwwwwwgwgxwwwwgvxwgwgwwwwwwwwufvwfwfxvgvvwxVgeVgwegvgvvwwuvwwwwwvxwvwvwwwgxwwVwvvwwxvwxgvwwwxwxxwxgvwxgwwwwwwvwxxwwggvwxwgwwwwvwwgvwxwvxxvxuwwhwvwvwwwxxxxgxwwwwvwwwggwwwwVfevwxwvvwgwwvxwwxwxwxwwwwwxxxxxvgwwwwvgwwxvxwxwgfVwxggufgwgwuvwwwwwvwhxvxvwvwxwhvwwwwwgwvwvhxwwwwwxugwwwwwwwwwfvvxxxwwgxxxwwwxhxwwwwwhwwwwgwvgwxgwwvxxwwxxxfxvwwwvxtwvwwffwfevwgvfvwvwwwwwwwwvwwfvwwwvwwwgwwwxedfvffdvugvwvwwfwggvvxwvwwwwwwfevffvwwvgvwwwvwwwwwxwwxwwgfwwfgvwwvwwfwxwvxwwwwvvwwxxwwxxxwwxxvgwwvVvgwwwvwwfvwvwwvwhvvwuwwwxwwvxxwwwwwwwwvvuwfwvgvwwwwWvwgvvxxwwvvwwvWvwwgvgwxxgwwwwxxxxggUfvwggfwggvxwgwgwvxxhxhxwvvVftwvvVvwgwvgwgggfxwwwvfvvvvfvgwwwxwwvvvwwfwwwxxwxvxwwwxwxxxwhwwwxwwgefwvwuEwgwwhwwxwfgxhwVWxgwwwwxwfgwwxhvwxggwxwwwvtevgffwwwvwwvwvfwwwwwwwwwgwwwvguvwwuwwwxwhdUffUfvUvwwwvvggvwghwwvwxxwwgvvvvvwwvgwwwwwgwWwwwfwvxwwvxvwwvvwwxhwgvxwgwxxggwxvxxxgwgxwxwxvwwgvvxvwwwwxwwwwwgwwwwuwwwwwwxhxxwxvwwwxhfuwwvgvfwxwxwfvwuwwwfVvxvwwxfvvwwwxxgvwvwwxwwgxhfWvfvfvgxvwwwvwwugxwggwgxwxgwwWgwggwhxvwxwHhvwwwwwvxwwWwwwwwxxxxxvwhwxwwwwwxxwwxxwgxgwxxgwwwwxfxvwfwgwwwvxwwxggvgxfwgxvwwxwgwxwgvvwxwwxxwgwxfwwwgwwfwgvwvugvwwxvwgwfwgvwwfwxvvwwwwvwwwgvwvwwwxxwwvvwwfffwfwvfefwwwwvwwvgwvvwwfwvvvgvvvwhvwwwwggwwgwhwxwxwvfvwwwwwwwvwwvvxgwvxwxwwwwwwwxwxvwxwwwwwwgwvewwxfwwwwwwvwxwgwwwvwvwwhwwxxwvxwwfvwvgwgvfvgfvwwfwwwwwwwvggwwgfvvgwwwwxwvwvvwwxwxvxvxwwwwwgfvvgwfvvwfvwvwfggwwhxvwwxwwwhwwgwwfxhxwxvxxxvgwwwwwwvwgwwwwwhwxxgwwwxwxvxwwwwwxwxwwwvxwxwwwwhvwxwwfgwwvwgxvhwgvgwwwwxxxwfwwwxwhwwfxwxwwwfvvwwffvhgfwvwvgvwfvvvwvwwgwvwwwwwfggwwgxgvxwwgwvwxvfvwvvevfgvwgwvwvwwvgvvgwwgwvwwfvewwwxwwwwwxwwwwgwwxgwwwxwwwvwwwxxwxwvwwwxxxxwxwxwxwhhxwxwwxwwxwwxvwvwwvwgwwwwwxxxvxxxwwxvxwwwvwvgwwvwwwwvwwwwwwwvwwxwwvxwhwxxwxgwxwxwxwwwwgwwggxwwvwfvvvwwwwwwwwvwxgwxwhgwwwwwwxxfxwwwvxwvvvvxxwwxgwwfxwwwwxxxwwwxwwwxwxwhwwxxwvwgwwwwwwwhgwxxwxwxwxvwwwwwxwxvwwwgwwwwwgVfvwgwvwvwwgvfwwvwwhfxwwwwwgvvgvvgwgvfwwwwxwvfevgegvevTvwvwxxxwvfvwhvvgwwvwvgWwwwxvwwhwwghxwxwwwwxguggvwvWvggfwwVvvwwwwwxxxwwxgwwxxxxgfggvwwVuvvvgWuwwwwxvwwhwwvxWwgwxvwxwxxxxvxwwwwwwwhfvgfVfwuvhvfwxwgwewxwgvwvgwvwgvwwwwvgxxxwwwwwwvwwwwgvvgwfgufVxxvwhwwwwhgUwwgwwwwwwgxgwwwwwxhwxxwxwwvgefgegwgvwwgwwvwxwhvwwwwvwVfuwvvxwwxwwxwwwvwwwxvxgwgwvvvgFxxxwxwwxwfgUwxxxwxwxgwwwwwxxwxwwwWefvwUdVugvfwgfwevfwWwgwwwxwvwxgxwwVvwxxwwvxhwhgvfwuweudufvwvwvxgwXvwWwgwxvwgwVvwwwgwwhhwxhwvxxWxxgxxgvvwvxgwvxxxwuxwxwxxxwwxgxgwvgwwwwwwxxwwwwwxxgxxxwxxxwwxwgufvfvwfuvvfWwgvwvxwwwewwwgwwfuwxxwxwxxxwxwxhxwwwxwgwwhwgggwwwwwxxwhggwVxwxwvvxhwxhxhwvwxxxhgwxxwWgwxxxxxwwwwghggvvxwxxxxwwwwwxwxfwxxxwfhgwxwuxguwxxxxwwxxVxwxfxgxxxvwggvvwwwwwvvwwvwxwwvwvwvvwvwvgfwxwwvwwfvwwxwxwwxwwffvwvwfevvgvgwgwwxwxgwgwvvfuevxwxwwwwxwxgxxwwwwwwvgevhfggvvwwwwvwvwvwwfwwwvwwwxxwxxxwxwvwgftvewwwwgwwwggxxxwwwwwgwwhfxxxwgwxwhwxxwwgwvgvwwwwwvwwvwwwguwvwvxwwwwwgwxwwxwgwvxvxvxxvwxvvgwvgvvwgxxwgwVxwwggwgwvhfwfwxwwfxwwhgxxwhwwfgvwvvwwftvewwvwxwxwwvwwxwwxwwfxxvgwxwvwwgwgfwwwwwwxwxwxwwwgWwwwvfwxwgxwxfvwwwvvvgwwvwvggvvgvwggfgfugvwwvwwgwwwwwwwvwxxxwwwwetvufwwwwggwxwwWxgwvwvvvvwwhgvwwgxwxwwhhwwxwwwwwwwvvgwxwxwxxgwewvxwwxwxhxxxwxxwgwwwgxwxwwxwxvwxwxxwwxwwhxxwwxwwvwwvwwvwwftvuvxwwvwwwvgvwxwwwwwwwxvwwvwxfwgwgwwwwwhwwwwxgxxwfxgxxvwwxxxwwhxhxwwwxwwxwwwgwwwwfwxxwvxvxxxwwxwwwxwwxwxwwxwwxwxwxxvwwxfwxwwxvwxxvfvvvgffwwvvvwxvguevwvfwuwweVgvwwwvfvxvfwfvwwwvvhwwvwvvvxuevwdfwggfweVwvvwvvwuugwgxefgfvfuwwgwvvvwwWvwgxwwwwguwgvwwxwVwgwwwxxgwwwwxxgwwwxwxwwgwvvuvwxgvuwvwwwwgwewwwwwwwhvwvWwvgvhxvvfvuvwvwwvvwwgwvvwvfvvvvvgwfggfgvwvwvgwwxwwwfwwwhwwvwwvwwwvgvfwwvwwwwfwfwvvxfxuveghdgfwvgvwfxwvxghuwvwVXXehguiwuwwwuuwgvuwwxvdxvwwggwwfvuwxxxxwwwwgxwwwxwwwgwfwwxfwvvghvwxegfwuwwhxvvxwWwwwxvhwwuhwwxwxwwdwwuwfewwwuwwwwwwfvwwfwuwwvvwwxwwvvwvwwwvwwguwvvwfuvvwwwvwgvxugwwwwvvwwwxwvwwgvvvwgvwvwxvwxwwwwwvxwwgwwxwxwxwvwxxxwwwxxwxxxwxwwwwwwwwwwwwwwxwwxxwvwxwuwvwwxvvxwwwwwwwwwxwxwwxxxxwwwwvhvgwwwwwxwfxxgvwwwwwwwvxxwxgwwwvvgxwhxwvwxvwwwwxwxwwwxwwwgxwxwwwxxwwwwxwxwwwxxvxwxwuxwxwwwwwwvvfwuwwwwwwvwxwvfwwvwwgwvvVvwgvwvvfwvwxewwgffvwfvvWvwgwwwffwvwffvwfvvgvvgvVfgwxwfvwwfxwwfgVewefefvvvvwwwVfvegvewwwfxwwgvgwwWuwvwxwwgfvvwvvggwwxgwwwgvxfvxxxfwxwhwwvxgwfvwwguuewwwwwgvwvxvvvxxgwWgvgvwvwwxvwwvvwwgwxxwwvgwvvwxwfgwvwvvVwvwwwvfvvfwwxgwgwwwuvwwgwgxxwxvgwwwvwwwwvgwwwwwwvwgwggVxgwWWvgxgwvwfvvxwwwwWwxxxffggwggxwgxxxwwwgwwwwwvvvwwwgfvwxwxwwwwwwgwfvvxwwvgvxvwwwwxwxwwwxvvvvwxwwxxwwxwxfwwwgWwhwggwwwgwwwxwwwhwwgwxxwxwwxffwgfvvwwxfvf4TwgfvvfvvwxwgvfwfvuvvwEuuggwwgvwwhwwwgTUvffvfefwwuvwwffvwvvwgvwxvggvCdvevvwvvwfwwvwgwwXVhWfwwwwwwfwvxVvwwwwhWvwwwhwxwxxgfwwwhwxvwfwwwwhhxxwwxfwgefvuwwwxwxfwwvfwwwwwgwwwgfgwvwwxwwvwwwwvxwxxwhwwwwwfgfvwwwvdevvvwwffvghwwguvwgwwxwefwwxwwwwwvwwwwxgwwwxgwwvwwwggwxwxwxvwgwwVvgxgxwwwxwgvwvgwwwwwgwwwxwgwvfggfggfwgwgUvVuvwvwxwwxwwugwwhwxgfwxxgwxwgvxvxxwxgwwwwwgwwxfwxUxwvwgwwxgwwhwgwhwvgwwVvxwwfwgwwgUvgwfVvfxvxtwwvuwwvxwvuvwvwggwwwvvvvgvwwxwfvwgwwwwvvggvfgwwwwxwwvwvwffUvwgfvdfvtwwwvwwfufwvwfvgvgewEfvegwvwgwvwgwwwwwugxwwxhwxwvvvggvwwufwgwwwwwxgwwwvwwwwvwwxgwwwxwwxWwfvvefwewvvvwwgfvwwwuwwxvgwgvwwwwwwwwwxxwxxwxxggwwugwwvwwvwwfwvwwvwfvvvwuuwvewvwwfgwgwwhwvwxxVwwvwvwhgvgxgxwwwwWwuggwwxwwwxgxwGwghwwwffgxvvWwgwhwwxgWhwwgxwwgvwwgwvvvwwwwvwxuvwewwgvhghwgwwgvxxwwwxggwvxwxwvvwwgwgwwwxvgxwxvwwwgwvxwvwwwgwtwwxwhwxwgGgwwwwhgxwghxwwwxvwwwvffwgwwvvugfwffwvwvvwwwvwgETwUfewwvwvfgwfvwxvfvxvwvwwfwweUwRdutvwgvwwvwdvwvgwuvwwwvgwffgfwwggvwgwgwwwxwwwwwgwwwwwvgwwwfvvfvwwvuvwvgxwwwvfwgvvwwxwhwwxvwxxwvwwxwxwgvwvvwwgvvwwvwvvvwwwwvwwwwwuwwfwwxxwwwwwxvwwwwvwxwwwgxwfvtvwwwvwwcuuwfvvgwgwwgwwxwwwwxwwwwxwfwxxxxwwwxwxvwwwvvxwwxvvwwgwwghhwwwwwwwwwwgvxwxwgxwvfwxxghwwvwfwwfwfvwwgxwwwgwwgwvvvvwxxvwwxxxwxwxwxwwwwwwfwwwwfxvuwgwwxgvvwxwfvxwwgwwgxwwwWwwxgwWwvxvggwwwwwfwwwugggvwwwwwgvvvwwvwwwwwhwwwfwwvwvwwwxgwvwvvvvvvvwwwvfggvwgvwwgwwwvgwgvwvwgwvwfwwwxgwvvwvwwwvxwwvwvwvwwwwgwvwwwwwwvxwwwwwxvwwwhxwwxwvvgwvwwwvwwwwwvwxwvwwwxvwgwvwwxvxwxgwvxwwwwwgwvwwwwfwuvvwwvfwwgwgvwgwwwfwxxwvvwwgfvgwwwwwwwgwvwwwwxvwwwwvwwvgwgwwwggwxwgvxhxwwwghxvxwxvwfgwwvwwvxxwfwvgwwwhxvxxxwvwwwwwxggxgwwxwwxwwxwwwwxxwxxvxwvwxwvwvfxxwhxxxwxwwvwwgwwwvvwvvwvhwwwwfvuvgwvfvvwwfwwwwfgwwwwgwvggwwvwwwwvwvfuwvwwwfvvwvwwfgvwwwwgwhxxwvfugvwvvgvwwxgwvwwwvgwwhgwwwwvwwwxwfvwxwxwhwxhgwwwwghwxwwxxxwwxhxfvwvwwwgwwwgvwvwwwwxwxwwwwwwxfwwxwwwwvvxwwwwwwwgvwwwwwvwxwwgwwwxxhwwhvwxhwwxwwwwxgwwwwwwwwvwxwvwwgwhwvgwxwwwvxwxwwxwwwvwghwwwwvwvxwwwxxxvxvvwwvggwwgwxwxxwgxfwwgxxwwwxhwwxwhwwwvwwwvvwxgwxfwwwxwgxgxxxvegfwvfVuWvvewgwfwgwwwwgffwgvvgfvfwwegwwgfwwvfvwffwwwwwvvwwghvvwwwVugwfvgvffwgVewufvffgvvgfgfgfuwvvwvvfwvwgfguvwxwWwhwgwvwwwxgvgvwvvwvvgwugfvfuwxwxwwwfxwwwwwvgwwxwxxxgxhffgwgvvwfuwwxwwwfvvgwwvwgggwwwwwuwwwwwwxxgwwwwwwxhgWxwxwxhvwfvggvvwwfgvwwfvwwwwwfvvwwwwwwegwwvwwwfvvvwvggvvwxwhhwwwxwgvwwggvugwfwwwwwWuvvwhwwvgwwfwgxVwwwwwwgggguwwwWxxgxwxwywwvvwwfvfwfvwxwwgvwvwwvxgwwwxwwhwfwwxwwwwwhwwhxwwwxwwwwwxuwgwxwhhwgwwwwwgfxwwWwwwwxxgxwwxfxvvhhWhxvxwwwwfvvgvvvwvvvvfgfwffwWfvwxvwwvwggwvwwvVgugfgWvwxwfhgxwwvvwggfWvuvgwVgegvwWguwgwWwfwgvvgwvwvwwwwxgwgwwwwwgvhggWvwwwfgwwxwgwwwxwwxgwwxvvwxwwwxwgwwxxhwgwxxwxwwxggwhwwwxwwwggwvwgxvxgxvwgwwwwvwxwwvwxhwhxgxxxgxhxvxwwxwwwygwwgvvwgvwvwwWvvwwwgwvvwwgvgvuxwwxwvwwVvwgWwxxwwxxvvxwwwxvgvwwwhgwxwgwWwvwwxwwgXgwwgwhwwwghxxxxwxfwvwwxxhhxwgxwfgvwwwwhxwwxggxwvwwwxwxwwxxwwvwwwwwwwgxwxwwwxwxvxwxwgvxwggwgwxwwgwwvwwwwgxxgwvxvwxxvxwvwVwwwvwwufwgwwxwwwwwgwwwvgvvwvwwwwwwwwwwwwwwwwvwwggfuwhuggwvewwwwxwwxxwwwwwfwefffwwvxvvwwwwwwwgxwxgvvwgvwwwvwwwwwwvxwuwwvwxhwxvgwwwwxwwwVffwffwvvwwwwwwvwwwgwvwwvwwwwwuxxwhwvwxgfuvwvwgvvwwWwwvxwwwwuvgwwwvvwwvxwwwwwxvwwwvwwfgwUwwwvwgfgxwvgxwwWxhWwwwwwgvWwwhwwwvwwgxwvxwwwxxwvgvgvvvgxwvwwwwwwvvwWwvhxxxwwwhvwxxxxwwgwwwvgwhfwwgxxwvwxxxvwxwgwwwwgwuhwwxxxxwwxxgufegevwwXwgwvgvwwgwvwwxwwwvwvuvwwgwxwwvwxwvwwwwwxwwuvvvfvdevwvvwvwwwuwwgvgvwxgwvvwvvffuwvwvvwxwwwgwfvxxxwwwxwWgwwwvwfwggwwwwwvwvwwwwwwxwwwwwwwxxwwwxwxhwvwvwdwvwwxwwwwwvwwwwwuwwxwxwxxxxxvwwfwtwwvwvwwvuwvvwwwwWwvfwvwwxwxwfwvvwvxxwhvwvvwvvgwwwwvwwwxwwgxWgwgxwwwwgwwufhwxwuwwwwwvhWhvwxwwwvvwwwwxwxwvwxwwwxwwwxgvwgwwwxwhwwvwxwgwgxvwwwxfwxvwvvxxwwwwwwvxhwwhwwvwxxwwxxuwwwfwwvwwwfufwwwwgvwfwvwwwvewvvfvwwwfwfwgvgwwwfvwwwwwvgvwgWdfVfvvwgvwwwwvefvuxgvwvvvvvwwvvwuvwvwVwwgxwgwwwxwvwwwwvgwwvwxVugggwwwxwxvwvxvvxwxxhgwvgvwvvvgwvwxfgfvxwwwwwxxxwgvxxxxwwxwxwgfwwwwvWgfvfvgvvwwwwvgvwwwwvwwwwwwgvvffwwvvwwhvwwvwwwfwxwwwwwwvwwWfwgvvxgugwvxvwXxwhwxvwxwwwhhwwWwxvwwvwgXggwhwvxwwwxvfwvwwvvvwxvvvfwwfwxgwhwgvvvwwwxwxvwwwwwwwwwwwwxwwvwfwxxwwwgwvvwwwghWwxwxwwvxwwwhwxwwvxwhwwxwfwvwEcvgwvVutvvwvwvvveuvwwwwwwvwvuwvwwwwwwwxxvwwwUdvfwvvSdeuwwWugvuwvvfwvgwfguvwwvxvwvwvwwxfWggvwwxgwwwwxfvwvwwwwggwwwgwhxwwwxwwwwwwhwgvgvwwXvvvvuwwvwwvwxwvxvgwwwwwwvvxxvwvgxwwwgvwfuwvwvwuvwwvwwwwxwgwxwwwgwvtuuvhwwwxgwwxvxwwwgwwwvvwggewwwwwwwwwwwwhxwvwwggwgwwwxwwwwwwgvwwgggwevvvvwevxfvxwhwuwhvwwggvwxxvwwwgxxwwhxwxfwwwwwwwxxwwwvwwxgwwvxwwgxxvgxwxwwgwwgvfvxfwVggVVwguvwffvggfEwfgfgfvwwwwgwwvwwwwwwwgewwwwwfVVTwvUewfevgvdfgffVhgefwvvxgugwfVvvvevwwwwwvvVvugxfvWwwwggfwgvgvvVgvxwfwfwwwwggwwwvwgvvxwwwwxxxxvwvgvgvdfvwwwvUeWvuwxvfWwvwwwWUvxvwgvxwvggfvwggfwgwwwwfVwgffwwUuwwwfwgUvxwhfwefwgggfgvvwgwvfvxxxgxwxwwfvWxXfgvfvwvuWwwgfwhxwvgxhWTgvvgxwvWxwwwwvwgffxXhUwghfxwgvwgevgwvfwvwxxvwwvevxhgxffxhUwvxwwwwwwxwwxghfwwfvvwwgfWwxfwgWDxwgfhXFwgfxwfgwwvwwwwxghwwwxWWUxwwvhwwwgwuwfgVvwvwvwvvEuwwgggwwxxwwwwwwwwwwgwwwxxwxxxfVTufwefwwuwwwevfwffwwvXwgvwwwfggvvgvefwxxwfvgvxWVwxwgwxwwgvwwwxwwwvxvxxwwxxxwwxfwxwxwxhxwwwxxvwvxwfwxwwvfwwwgvwxxvxwwwxwwwwwwxwwgwVuwwwgvvxwgwffxxwwwwwwwxwwwwwwwwggwwhggwwxwwggxxvhwwwwwvwxwgWwxXfgwwgxfewwvwwxgfhxwvwwwgwgvhwwfwwvwxwwwgxxwwxxxxxwwxwwwxwwvxwwvwxxwgwxwwhguwwwwxwvwwxwwvgwwvhwwvwwwwwwwvwxwwwwwxvwwgvvwwvvwwvwxwwwwwwwwvvvwwwwwwgvwwwwwvwwfvvwgwfwwwxwwwfwwgvvwxwwwwwwgwxwwwxxwwwvwxwwwwwwwwwxfxxwwwwgvwwxwwwwvwwwxvxxwvxwwxwgvwwxxwhwxwwwxwwwwfvvwwxvwgvwxwwwwxwwwwvvvvwwwxwwwxwwxwxwxwxwxvwwgwfxfxxwxwwxwxgwgvvwwwgwwggwvxwhxwwxwwxwgvvwwwxxwvwwwwxxxxwwwwxxwwhxhwwgxxwwwxwxwwxwxgxwwvwwhgxwvwwxwhwvxwxxwvvwwfwwwxwgvwwwwgvvwwwvwwwvvwvvwwwwwwwwwvwvxwwvwgvvwwgvwwvvvvwwwgwwhgvwvvwwwwwwwwxwxwwxwwxwwwxwxwwwwwgxxwvwwwwwwwxwwxxxwxgvwwwwwwwwxxwxwgwvxwwwxwwwwwwxwxgwwwvwwwwgwwwxwxwhxhhwvwwwwxwxwxwwxwxgxxxgvwwwvxwwwwhwwxhxwwwxwxwvwwwxwwwxxgwwwxwwwwvvvwxxxwwwxwwxwwgxxwxwwvwgxxwwxxwwxwwwwxxwxwxxwwvxxwwxgvxgvvxwwxxwwvwwwwwwvwvwwwwgwwvwwwwwwwwvwwgvvwvvvvwwwwgvvfwwvwgwwwffwgwwwwwvxwgvwuwvwwgxwxwVvegxwgwwxwwhwwwwvwwwvvgvgwwxxgfvxxgwwwwvwwfvvwgwwggvfuvwxwxxxgwgvwwggxwwxwvxwwvwwvwwxgwvxwwwxggwggvwwwxgvwxwwwwwwhxwwwxvwwwwvxwwvgwfxgvwwwwwvwwgxxvwvwfhhfwwxxwvgvwvuvxxvvwwwxwxwxwvvvwxwwxwfggxxwvwwxvwwwvxwvxwvwwwwvxwvwxxxwfWWwfvwxxwwwwwwxxxggvwugvwvwhxwvwwwxxeeffgvwwwwxwwwwwvwgxwwffvvgvfxwwwgguuvvwwwgxxggvwvgwxwwwxxwwvwvvuxxxxxxgwvwxxwvwxxwwwfwgwwwwxxwvwwxvwvwwvuvxxvwwwvwwxxwvvvwwwgvwwwwwwwwxwxvwxxwxvxhwwxxxvwwwwgwwxxwwwwwwwxwvwwwgwxxxvwwwwxwxxwxxwgwvwgwwwfggxwwxwwxgxfghvewuwwwgvvwwxwgfwgfuwwgfvwVfwuwwvgvvwgwwwwwgwvffwwffegxvxwwwvgxfevwfewvfuvwVewggvfvvvvwwwWwfevvfffvvvvvwwvfvggwwvWwwwgwgfwwwwwfwwwvwvvwgwxwfxwwwwxwvwwvxxgxwxwvxxxgwvwwwwwvvwvvwwwxwvgxwwfvwgxwwwwwwwwwvwwvwxwwxxwwwwVwwwwvgwwwwwfvvvvwxfvfwwwuwwgwgwfwgvvgwwgwwwwgwfwggwwfwwwwvgwwgwwwvvvwwwvgwwhwxvWwwgwxfgfvgwwwVwxvwgwfhvwfwWhewgwwfwvwgxwwvvgxxwvwgwxwwxvwxxwggevwgwxfwwgxgwwggwwfvxwwwwxwgxgwwxgxxfxwwvxwfwvwvwwwvwgvvwwxxwwggvxwwwvwwwwvwwvvxwwwvxvVfgwfUVgwvxxvvwwwvvwwwvhwwgvvxvffwwwxwwgfuvvfUWfvwvwxwfwwwwwvVggvgvvwggvuvffvwwgwwwggwgggwxgegwwhxwwwvxwwxwwgwvwwwwwwxwwvggxwxwwwwxwxwwwwwxwwwwwgvwwwxvwwwwxxwxhfxwewwgwvwwwxwwVwwwwffxwgwvggwwgwhwvwgvvvgwgwUwxwwwgwxwwwwwxwwwwwvgwwwvfVVxwwxgwwwvwwgxwwwfwwgggghVxxwxwvvwwwwvWgewgwwwwwwxhffgxwxvwwwgvvwwxxgvxxwxwvwvwwgwufwvwwwwwwxwwgxxwxwvwxwwwwvxgwwwggxwhgxwXgvgwxwwwxxwwxwwwgwwwvwfvfvvgvxvwwfwwwwwgwwwwvvvvVwwxwwwgwfuwwfggxwvwvwwgdfvwwvwvwwwwwvwwwwwvwwfvVefvvffgvwwhxvvvVwwugxggvwvfvwwwwxvvfvwwvgwxxwwwwvwvwwwwxgwXwxwxwxwvfffwuvgvgwwwwwwggxwvfxxxwwvwvwwwgwwxxxwhwwwwwxwwxwvvwgwwwwvgvwwvgwwwfvvvwgvwvwxwvwvfgwwfwxwgxgwgfwwwfvwwwwxwgggfxhvwxwfwgvfwwwgxwxxgfgvvGxwuwgxwxgwvguvwwwwwxxwgvvwwwvwfxwwwwwwwwwwvwwwwwgwwwwxgwfvwwWxwxxxgwwfWhwdhxxwwgwxwwxxwgwgwhwwwvwgvtwwwgwwxvwfwuguwvwvwwvvwwgwvvgvvvgxwvwwgxftwwwgwwwwxwdggvgvvgvvwwwwugewfwvewgwxwwwwevUffwvgwwvxgwwugvwewwgwvwwwwwhwwwfVwwhggvvxwxhwxXwwwwvwwxxxwwgwwwwwwvxwxwvvxvgwwwwvwwwwwwwwwxwwwuxwwwxgxwxxwxvgwwxxgwuwwwwwwvxxxVwvvwwwfvwwxxwfvuwwwwwweuwuwxwwwwwwwhxewfgffvwwxwvwfvfgxwfggwxwvwgvggxwvwxgwxtVwgxwwgwwvvwvvwgwwvwxvfvwwwwWggwwxguvvvwgxxxwxwwxwfwwwwwwwvvvwwwvwwgwvwXvgwgwwhwxwvgwwwwwwvxxwwwwgugxvgwwvwfwvwvwgefwvffvffffwvvwvfwwvwwgwuwwfwuvwvuwwwwwwvfwfvwwwvgwwfdvxguwfwvuwfdgvfwufvvwgvgwwfwvvvwwwwwgffgvggwvwwgwwwugfxgvgwwwwvwvwwwwvuwvwwwxvvwwwwxvwgxwxwwwfvwwwwwvegvvwxhwwvvxxguwwgwxffvwwvwfwxwxwwwvxvxvwvwvuxvwvwwwwWewwfvvwvwwwwvwvfwwuwwgwvwwwwwwwgxwwwwvvvwwwxxwfWwvgxwewwgwwxgwwwvxwgxwhwwgwwVxhehwuxwvwxwwwwwxwvvvwwvwwwgxwwwwwxxwhxwgwvxWwgwgwwwxvwwwwxwwwggfwvhwfwwgxxwwwxhghwwxxxwwxwgwwwwwvvxuwwgVwgwuwwwwvvfggvwwwwwwvwfvVgwgvwwvwwwwwugwwvxxgwffvtvwvvxuwffdvwwfwvxwxwwgfwwVgwwwfwwggwwwuffgwvwwwxwvwxwwvwvhxwwwgxwxxxgwvwxwxwwggwxhwxxwwxwwuwwxxwwvgxwwwxfvxwfwwwwwwwwwwwxwvxwwwxwwwgwuwuwwvuwwwvwwwwwxwwwwwwwwwwVxxgwwwwwwwwgWwwgwvwxwwxwxhwwwwfxhgxwwxwwwhwwwxxwfxwXgvgwwwwxwwwvwxwvwxxwxwwvwwwwwxwxwwwwvwxgwxwxwxxwxwxggxxxwxwxxwwxxwwxxxxxwwxhwwwwwxwwwuvwWvvvwgvgfffffwwwfwvwwwwgWffxgefwvvgvUgwfwgwwwwhgwwwfdwgVegwuwwwfvwgwgvgwWgwwvgwfUvuwfvfvwvwwwgewfvwwWwwwwwwvgwfwvwwwwvuggvwwvwwwxwwwgwwwwwwwwwgvwxxxxwwhuvwgvwwvwvwvwwfwgvwwwwxgwxxxvwwwvxwwwwxgggwxwwwgwfwxwwwxvvwxfvvwwgvwffwwgwwwvvwwfVwufwwwxvwwwxwuwfwgwwgvxwwwxwwxwvgwfvxgwfgwxvxwggvGhgtfwwxgwwwfxvwwwWwxxwxwwfxfwwwwwgwxvvuwxwwwwfwwvgwvxewwwgvxxwwgvwwwxwhgwwxwxxwgwwxwvwwvwxxwwwwwwwwvhxgwwguwwgfxxxwvxwwwwWVgvwvvxwwvwggFgwwwvWggvxvfvwgwwhwwxfwwwwwgwgvgwWgvwfwwgwuvwhggFfhvgffWwgwhfwfwugwvgwgxwhhvwwwvwgwvwwwwwwxwfuvwwwxxfvxxwgwxwwgxwxwwxhxxwwxxxvwWvxwvwwvgxgxwxwxggwxwwxxxwwwwwxwxhwvgxwwwxxgwxvwxgwwwvvwwvvxxhwfwwvgwgFfgvwggGfvxwxwwwxxwxwxvwwxwwwwwxwwwgwwgwghwwwxwggwwWxheGvfhwgwwwhwwwhgwwxwhwwxwwwwwxvwfuwwxwwwxvwxwffwwwwwxxwwwxgwwgxxxwwwvwwxwxxwwxwgwwwhwwxgvwwwwwwxXvwwxvwvwwwgvwwxwwwgwvvgvwgwwwxwwwgwvxwgfvgwwwwwwwwxxxwwfwwvgvvwguwwwxwwxxwwwwwxxwwgwvggwvwxwxwxwwxwwwwwwwxwgwfwhwxwhxxwxgvxxxxwxwXwwwwuwwwxvwvwwxwwwwwwwwxxxxxwwxxWvtfwVugWVuvgwwwfwvxwwwxwwwxxwvgwwgwwwxgwgwxwxxwxxxgVVuwwwgfwVFxgwfwwwwxwwgwwxxgxgwgxxgxwwwxxwwxxxwvwwwwggwwwxgwwwwxxwwwxxwvxxwwwxxwxxghwxgvXhxhVxwwwwwvvwwhxfxwwvwwwxwwhwxwggxxxVvuvvwuwvwwgwggwwgwwhwvhwwwwwwvwwwxxwxxxxvhgvvwvwwvxvwgwwghwwwxxwwwwfwwxwgwvwwxxwwwwwwxvewxwwwwxwxwwwxxxwwwwvvwwwxwwwwwxwwxxxwxwxwwwxeWfufeffgvvwvgwwwwwwxwwwhvwxwxgwxvghwwwwxxwwwxxxwfgxxxwuggwgvvgvwggwwwgvwxgxgxwXWxhwvxxxwwxhxwgwxxwwxxwxxxxxwxwwxxwvxwwwwgwxwxvxxxwwwwvwwwwwwwuwwwvxxxwwwxxgwxxxwxvvvgvvwgfvwwvvwwwhggwwvwwwvwxwvwxwwwxwxwwwwwgwvfvwwvvvwwwwwwfwwwgwwwwwgxxxxwwxwwxwwxwvwwwwvfwwgwwwwwwgvxwwgwwwgvwwwwwwwwxwxvwvwvwwwwvwwfwxxwwxwwvgvwwWuwvgvfvwwggggxwhwggfvfwgvgwwwvwwvwwwxwxwwwwwxwgfxvgwgwwvfwwgwwgwwxwggWxhgwgwxhxxxgvwxhhwwwxwvwwgwfwwwwwxwxgvwwxgvwwwxwwwwxxwfvvxwwgwwgwxwvfghXWwvxgwxxxwwwxwxxxwxuuwvvvwvgvwvwvgfwwfvgVvuwwwvwxwwwxwxwwxgwvwvwxwxxfwffwwvvuvwvvvvwwgwfwfvwwgwwwwxwwxwwwwwggxvwwvvWwfwvwwwwvwwxgwxxwxwxxwxwxxwhvwxxxwggwwwuxvvwvwxxfwvwwwhxvxwxwwwwxxwwwewfgvgwwfevfwwwfvvgffwfvgwwfgvwvvwwxwxvgwwvwwxwxwgwhhxwvwxggxgvvggvfgwwwgwgwvwwwwwhggVweghxgxxwwwwwfwwxwwwwwwhwvghwwwwwwwwxwwuwwwwwxxvwvwgwhwxwwwxwwxwwwxxwwwxxwwwwwwwwvvggxvwwwgvxwwwxwwxwxuvwxfvvwfwwwwgwwWvxwgwgwwvxxwwwwgwwwwwwxwwxWwxgwvuwwwxgwwWuwhgfwwxxwwxfwwxwwxwxwwxxhxxgfwwwvxwfwhwuxggwxwxhfvwgwwvwxxxwxxxxwgfwwwwxwvwwwwwxwwwxxwwxwxxwwwwxxxxxwxxxxGvtwvffwWfwwvWfgxWgWgfwgwwxwvwwwxgfwxxxwxxxxwwfVxWwWwgwgwwggFGxxhwwggwxwxwxxwxxxxxwwxxxxwhwxwvwwwggvgwwwwwwxxwxwwxxwwxwwxwhxxxxwgwhwwwwwgVwvxvwwxwxxwggfxwwwxxwgwxxvwgxvyxwwxwxVfuwgwvvwvwwvwvggwwwwwwwvgwxwhWwwwxwghvwxxxvxxwxvwfgwwwwwwwwwwwwxwxwxwxxwwwhgwxwwwwwwxxwwxwwxwwgxwvwxwwwwgwxwwwwwwxvwxxvwxxhwxwwxwvwwwwwwwxwwwwwxwwxwgxwwwwwwwwheffvgvvffwfwwwWvvfwwwwwwwwggwwwwwwwwxhxwxwwvxxhwhwxwwwwvggwwwwwwwwwwwvhvwxxhwwgwvxhvwhwxwhwvxxwwwwxgWgxxwwxwgvvvwxgwxwwwwxwxxvxxwxwxxwwwwwwwwwwwxxggxwwvwvgfvvxxwwwxwxxwwwwwfewvfgTwuggffvvvVgefwgwffvwwwwvwwwVvwwwwxvwwwwwwxwwfwewUvvwUwuwefwfvfhwfwwwfwxggfvwfvgvxxvvvwxgxxwwwvgvffwwgvvwwvegwwwvwgwwgvwwwgxxwxxgwVvvwevgwvwffvvwfgxgwhxUwxwwwwxvwwhgfwwxwwfVVEgffVwVfvfvwgwUgexghVvdvfxWvgwefveuvvwwwwwwgevgxgfWwgwvggfwgfWwgwfvfvgxgwgxXxfxwhwWgWWhEvvvvwfvfwwwhgfxgwWhXUxwwgxvwvwvgvuuvwgwwwgxwvdvfxfgWwUgewWwUggfvvxxwvvwvwggfwvxgwwfvvwxvwfwfwxgwfwfvWXhdxWgDxfwgwgwwWWUxxvhwxwwwwxwwvhwwwwvuwwvTgugwvwwfevvwgwvwvwxxwwwwwwvxxwwwwwwxxwwxxgewuvfwfgvxwwwwwwwvxwwwwwwwvvwhwwvwxwwhvwwwxwwwwvwwgxvvxwwwwxwwxwwwxwwxxhfxwwwwvwxwxwwxxwxwwxxxwwwwvfEeuffwfwuwwwgvwfewfwgwXwVwvwfwvvvgwgfgwxxwxxgVgfgWxexwvxwgwvxvwWwwwvwwvxghwXxfwvwwxfxewgwwvgwgxxhwwxwwgxfhwwfvwwwggvwwwwwwwfxgfwxvvwxwwwwgxwwwwwxxwwxwwwxwxxwwxvwwhvxuxvwwwwxxgwwvxxwxvwwwwvxwvewwwwuxwwwwvwwwwfvwwvwwwvvwwwwwxwwxvwgvwwwwwwwxwwvwwwuvgwwwhxfvuwgvvvwwwwuvwvwwwxwwxwvgwxvvwwwwvvxwwwwwxwgvvwvwwwgxwuwwwwgwwvwvxwwvgvwxvwxvvvvgwwwgwwvwuwwvxxxvxwwwwwvwwwwwwWggfvuwwvvwVwwwwfwwwwwwwxxxgVfffwwwwvgvxwxwwgwxwxgwwwgxwwWfwgUxxgwfvghxuwwwwwwgwwhwwwwgvWwxgwwwgwwewfwvwwwvgxffwfwwgwwwwwgwwwxwuhvwwwwxxwgwwxxgxwhwwgwgwxgxwfwxxvwwgwxxxwgWwwwwwwwhvufvwwwwwwwxeVvvvvwhvvwvwwgwwgwwgwwwwwwgvuxwgxwwwwxwvwwguxwvwwwftwwgwvvwwxwwuwfwwwxxwxxvwfvgwvgxwxwwvuwwwfgwvwwwwvwwvgwwwwwxwwwwwxwwxwwwwwxwxxwgwwvvwwwwwwwwwwvwwwvvxwgwwxgvwwwwwvwxwguggvwuwwgwgwgxfdvVwgvgvgwwvvwxgvwgwwwvwxvxxwfWfwvfwggwwwxxgvwgxwwgwwwwwvwgggxWxvgwwwxwwwwwvwwvwxwxWxxwWhfwWgwwwwwgwxxxwxwxdgwwwwwgwwwwwxwxwxWwwxxwwwgxwwfxwwwwwgwvwvxhwwwwxwxwwxgxuwwwwwxgwwfgwwwwfwwgvwwWffwvwVwvxgvwxwfvvgfwvwwwffwwwwggWfgvwgggwwwwwvgfwwwgwwwgwxxwggggwwggvhfwwfwfwwxwwwxwhwwwwwwxWexwwwxwgwgvggwwvwwxwgxxgvxgxwxxhvxfgwgvvfgvwwvwgwwgwwfwhvgvgwwwwwxxwwwwwxwwwwwxwgxwhwwwgwgvwgFufVvfWgvwwwwgevfgxgvwvggvewwvguwgwwwgwwgxwggwwxwxggwwxvgwvggxwxhwWwfxwXxWvgwvxwwwwwwggwwWwwhghhxgXvwvxwxwwwwxggffgggwggwwxgvwgxwwwwhxwxvgxwhxwwwhxxgwfwwxhwwwvfvwwwwwwxwxwxhguwwggxwwvxxxwxwghwhwhhwwxxwwwxxwwfgvgwwggwWvxw6TvgvvVetugwwwwwxwwwxguwxxgwwxwwvxwwxwvwwWfwgwwwWvhwwwgvwwwwgxwwwwggGuuhgwwxxwwxwvxxhgwxwxwgwxwwvwwvwxwhfvxwxwgwwwgwwwxxhxwvwvwwwxgwgxwwwgfxuwvxwxvxvwhwgwvxwvxwwxxxwwgwxhhwfwFUvWvgW5edWwxgfvwgwggfwwxWvfwvWwvhxwxvgwwgwwgwxfgWvgwgwwwwvvwwwwwwwhwgwwvgVvwxxhwwwwwgvwwwwxhggvhwwwvwghwwwwgVvgwgwVvgvgvxxxwgwwwwxuwwvgwgwxxwwwxvxwgvxxxvhvxwwwvxxgxwwwvwxwwxvwwwwwwxwvwxwwvxxxggwwwfgxwvvxwvxtgwwwwvfvewwwwwffwwwwgfgvwwvwfvwwwvvwwwxwxwwhxguvwwgvvgwgwwvgfhwvwxhwWwgwxwvguvwwxvgvwxwwhwwxxgxvwfxwxfwhwwvxwvfvxxwxgwhhwwwwxxxgwvwxwwwwxxvgfvwvvgvwwwwxxwgfvgwxwfxwwxxwvhwhwwwxwxwxwwwxwvVfdgwvvvugvwwwwwfFfvgwxggwwfxwwfgVwwvwwgvgxwfvfwwwwxwwwwxwgfUvwwggwgggxhxhwggfxxhxxwgwxggfVGwvgwggxwxwwggVggfxvwxhwvwvwgvwwwwwxwxgvVvwxxvvwwfgwvWwwwxwwwwwwwvxxxwwwxVwfgxfwgwvwxWvwxWEwhewwhwwxwwxwxxxwvwwwxwxfwvwvxvwgetgvwfwgwwwwgffwwwwwwvwxwwwvwwwuxvwwwgvWwxwxhxfwWfwvWfwVgvwgvgwwwfwxwwwfvggwgvwgwwwwxwwhxxvwwvvwgvwwwvxwxxvgwvwxxwxgxxxgwvwwuwwvwwxwwwwwwxwwxwxwxwgwgwgwwwxfxgdfUfggwgwwwxUvfUwgwwvvggwgwggvvgwwuwwxwwxwxwwgwgwwfgxwwvvfvWfwWwgxxgwxgwvgfggwvwwwgxwvwxugwhHgxhgwwwggwwxwwwhgwxwvvvxvwwwxwwvwwwwwxwwwuwwwxwxwwwwxvwwwwfgvvgvxwvxwwwgxwfwxgwwxwwwxvwxgwwwxgvgwfwwvwvwfwvwwfwwgwxwggvgwuvwvwfwwgvwwwwwwvwghvwgwwxwwvfwwwfwvxfvxvwvvwvgwwwwvvfwwvwggfxvvwwxwwwvgwgwwxxgwxvwwwwgwwwvvwwfgvwvvwwwwxxwwvxwwwwxwwwxxvwvwwwwvvwwwxwwwwwgwwwxwgwwvwwwwwwwwwxwwxwhwvvwwwwwwhfwvvwgwfffgwwggeffwwfwggwgxghwgxwhgvgggwwgwwxwxxwxwhwwhwvggwgfxwwwfggwvfgvwgfxhgwwxxwfxwhxgxxwwxhwwgwwxwwwwwwwevhxwwwwvwwwvwwfgwwwvwwxxwwhxxxxxvwgwwxxwgwvxvwgwxwwfgwgwwvvwwwwfwwwxwwwxfwxwwwfvvwvgvwvvwwvwwfffvvgfvwwwvvwwvvwgfvwxgwwxxwwvwxwwvwgwwwwgwwwwwwgwgwwwvwxgwwxvwwwwwxwgwxxwwwvwwvvxwwwvwwwwxwvwxwwwxwxwwxhwhwxwxwwwxhxhhwgxwvxwxvxgwxfwwxwxwwxxwwwxwwwxwwwxwxvgfwxwvwfvgwgwwggevgvgvvggwwwwvwfevxwwwwwwwgxwwwwxxwghwxwwwxxwvwwwwwvxwxxwwfggvhxwvwwwwhwvwwwwwxxxhxwxwwgwfxgwxwgwwxwwvgwwwxgxwxxxwwxwgxgxxwxwxxxwwwxwwggwwhwvwxwxxwwxxwwwwwgwwvwwwwggwwwgfgwwgwwwgwgfevwvwwxwgggwwwwfxhfwvgwgvvvxwxwwwwwhfggefvewwhgfwwxxfuwgxvwvwvgwgvxvvwwwxwwvxxxxwwwwwwwWvggvevvwgvWvwfwwvxwwwwxxxvwxwxxxwxwxxxgfVwwvxvvwvwwwvgewxwhvwwwwvefwugwxwwxvxxwxwwwwxwwwwggvVvgvfwvVfvxxwVTvghgggwgwgwwxuwwxwgvxhwwgwxwwxwwwgwxxggwgfwwwwwgwgwhgfWVghUwgwwwxwwvgxxwwwwwhxwwwwxwwvgvfwwwwevugwwvwvwxwgwvuvugxuwgxxwwwwxvxvwxwgwwwxhxwwvvwwxfxggxwwggvdgwUxwwxvwxwwxxwwwwwwxgfgwxxVfvxWfVvwfgwUVdWwwugwwwxewvxvxxvhwwvxwwwwwhxgfWgvwxfvugewhwgvfwxwwwfwugwwgwfwuhwxwxwwxwxxwxxwxxvvwwuwvvvxxwvxwwxwwggxxgxxvwwxvvwxxwhgvwxvwwwwwxxxxwwfgfgwggxwFfuhwwvxWewWXwgWvgwwggwwewvxwwwhxxxxwvwgxxuwhvwwgwxhwgwvwwxVwhwhgghvwwwhxgwvxwxxxxxhxwxwxhwvvwxuvwwwxwxxwwxwwwwxwvxxxxxwxxxwwwwxwxxxwwwhfvxwwuvuexxxwxxvfxxvewwvwwfvwvwgwvwwwhwwwwwfvxwvvwhxwwwwwwwwwwwwvwwwgwevgwwwwwvwwgvwxwwwwxwwwxwwggwwvxxwxxgwvxwwwwvwxvwwewxvwxwxwwwgwxwxwwgwwvxvxwwxxwxxwvggwwwvgfvwxvxwwxxwxxxwwwwwwwwwhwxwwwvwvfggeuvggwfueVggfwwwwvwwwwgvhVvwwgggwwwwwgwwwwwwwwwwwwwwwfgwfgVgwwwwWvWxxwxxxwxxgxwfwwwwwwwxwxgxxghxvxxxwxwgfvwvfvfwwgwvwvwgwxvvwxwvwwgxxvxwxxwxxwwwwwwwvwgwgwwwgxgxxxgxwwwxgwwwxhwwwxhVxxwxwxwxwxxvuwwvgevvgwwWwuwvxwwwwwhfxwwwwgvwxvgwwwwvwwwwwxwwwvxwxwvwwweefgvwvwgvwwwwwvwwgwwwwxwxxxxwwwxwxgvwvwvwwwwvwwgwwwwxwxwgwvwxgwvwxwwwwvxwvvwwuwvwwwwwwxvwwwwwxwxwgfvwwwwvxxwxxxugfweegegvgxvgvvffwgVwgwgxwuwgwwwwgwwvwvgwwwgwewgxwwwvwxxgwgwwfvVgwwxWgfwwxwvwgxvgwxgWwvwwwwgxwwwxhgwwwwghgxwxwgwxvwvuwwvgwvwwgwwwvxxwxwwwwxwvvwvwhwxwwwwvwwwwgwxwvxwwxfgxxwxvffvgvvefvevggwfvvgwwwugwwwvwfeveugwvvwxvwwggvwwhwwwwwfvfvvfvvfwwwwwgvfgvwwgwvwwwwwvfgwvvvgwwwgwxwwwxwxwwwfvvwvfuwuvwwwwvVvvwwvwwvxwufwvwxgvwwwwhwwwwwgwwvwvwvwwwvwvgvgwwwxxgwvwwwxwwxwwfgvxwwwxfwwveefVvfvwffgffuwwvffwwgxvwvggwvwffwffvwwhwgghwhfufgwwhwhwxwfgggufvvgxwhgwgfugwxgwgxwgwxhgwvwhwwvhhVwgwgwxfggVwfwvvwvwvwwfewwfwvgvvvxwvwwgvgvevwwwwwwhgxfwfwfxwxhxfxwwxVfuwwvwwwgfgUwwwgxgwwxwwwwgxwwwgwuwwwwghUxxxwwwwwvfvwvvfvuewffwwvfgwwxwwwwgwxuewwwwwwxvvfwvwxwwwxvfggvvgwwwwvwvwvgwwwvwvwwwwxxxwxwxwhxwwwwwvxvwvxgwwxwwwxwwxvwwwxwwwxxwwvwwwxwxxwxwxwwwvwwwwxwwwvwwwwwwwwxwxxxvxwwwxwxuVfvffwwfvwwwgwwfvvfwwwwggwwwwwxvvwwvgwwvwwhwgvvgwwwgvgvgwwwwvgvvvvgwhvwwwvggwxxwvwwwwfwxwxggwwhhwwxwxvgwxxwwwwvgvwxwvxwwwxwwwwwxxwhwxwwwwxwxwxxwxwwwwgvwwwgxwwwwxwwgwgwxxwvwwxwxwwvxgwgwxvffxxwxxgghwgfvvhxwxxwwwwxxwvxgwwfvvxwxhwwwwvfwwwuvwxxwhwwwggvxxvxwwxwvxxwxwxggvxxxxxwwwwwfugwgwwxwwxfgvwxwxhwwfwvwwxwwhxxxxvgvgfwvwwxvwxxWwegwvxwwxvwxwxxxwvxxxxwgwwxwfgvvgVfeugwXgvvvwwwwxwwxwwwWgwvhwgxhwxxxxwwxxwwxxxxhhgwvvwwvvXwggewwwxxwgxxwxxwxwXwwvxwwwfxxxxwxwxwwvfVwegwwwwgwvwwwwwgwxwxwwwxxxxxxxwwxxwwxggvgwvguxxvgvexwxwxxxwwxxwwxwxfxxxxxgwvxwwwgwgVfufwvwgwvwxwgwwwwgwgwwxwwxwvwfwxwgxwwxwgwhgvxwwwwvwWwegwwxxxxwvwwwxxxwwwxxwwwwwgxwxxxxwxxxxxwgvhwwxxxwhXgwwwwwxwwxxwwghwwxxxxwwxwxwvwgWfehgvwhvxwfwwxxwhXwxxvxwvxxwxgxgwwwxwhwxxwwxwwxgwvgxwgvwxxwwvwwwxwxxhwxxgxxwgwwwwwxwhxxhxxxwwwwwwwgwwwwxxwgxwwwwxxxxxxxxgwwvwxyxwxxxxxxfwxwvfwvwfwwvwhvfvgwwwvgwwwwvggfwuwxwvvegwwfwvwwwwvgvgvwvwgvwwhxxwwwwxhwwgfvgvwfwvwfwggwgghwwxwwxgvvvxvfgvwwwwfgvwvwvwwwwwgwwwxxwwwgwwwxwgxxwvWvvvvgwxwwgfwwwwwxwwwxwwwwvwwwwhwxwwhwwwwvxwwwgvwwwwwwvwwvwvwwwFvfgwwwwvwwhfvVefgvvevvwxxgfvfwWwgwxxxgxxwfvwvgfwwwwgxwwfwgxhxhwgwxfwvgfgggGxwhxwxgwwwwgwxWgxfxxvwvfffwgwvggwxxwvuvxgwfwwxwxwxwgvwwwhwwxwxxwwgwwwwxwwvfwgwfwWwxhhwwWwhFxxvwwwvxwgwxwxhwxwxwwxwxggwvtvwuWvwwgwvvwwvwwgvwwwfwwwvvvgvfwtwwvwwxwggvwxvwwvxxwxwuwwevwgwvvwxwwwwwwwfxxwfuvwewWuxxwwwwwwxwwwxwxwwwxwwvvwwfwevwxwxgxxwwwxvwwxwxwwwwvwwwwxxxwvwxwvvwfwgvwxvgwwvwwwwuvwvuggvwfwwxwwwwgwwwwwgxdvvvWegwgvwwwvxvvvvfgwewwwwwwwVUvfugvwwgwxwvwfgwgVwwvvwwwwwVfwvffggwhwxggwfgfwxwxfxvwxgwwgvgGwVvwgxwghwwvwxgxhwwxxxgvwvvvwwwxxwxwxvvxwwwwwxwwwwwwuxwhwvxwwwxwxvxvwxxvwxvwgwwvXvwvhwwvwwwvwwgwgwgwwvvwvvxxwwwwWwwgwwvfwwffffvfewwfgwgvwwgwvvffvwwvwvuwxuwwwWwffwgwfwwwwggvwhwxwgvwwwVuxwgvgwvgWgwwfwwwwxwwwwvwfwwWwwwggvwhwxwwwxwgwwwvfwwgwwwwwvgvgwvwWwvxxwwwxxvwwwwwxwgvxvwxwwfwwvvgwwwwwghwxwwvwxxwxwwwwwwvvxwwgwxwWvhwxwwgvwwFfgxWvwfvgwFfvgwfWfvwWwgvgwfwwfgfgwwwwwwggvvXgwvvwhgwwwWgwvuvwvwxxxwvwwgwwxwxewfxxwvwwwggwwVxxwhxwhWxwghxVwwxgwwvwwwwvwgvvgwwgwvwVxvuwhwfxfgwxwwwxfxgxwvwvhxwwxvwwfvwwxwwvwwwwhfxgwvxwwwwwxwhwgwwhxvwxxxxxwwwvvwwwevwvvwuwwgfvvvuwwwwwxwwvwwfVvvuwvwwwvxwwwwwvxvxxvwwwguwWwwwwwvuwwwgwwxxwxwxwwwwgwwwwwwVxgwuwhwwwwwxxwwxwwwwvxwxwvxwxxgxxxvwvwwwwwwxwwgvwwgwwvwxwwwwvxwwxwxwwwwwwxwwvxwxwxxvwgfwfdfgwgvwxftvgwfwwvWwwgwfwVwvuffgwwxgwwxgwwwfwwvwvwwwwvvwxwwwfwwxxwxwwxxxxhxvwhxwxwwwxhwgXgwxfwwwxxwwwgwxxwwxxgwwwwxxwxfwxxuwfxgwwgwwwwwwgxxxxwwwwwwwwwxxxxwwxwxxwxgxvxwwwxxwwwxwwxwwxwwwuwgffwggwgvwwwuvvxwfwwgfffwWgffgUgxvwwgfVwvfwwgvxwwhwwwwffwxgfvwvwgxggwwwghwgwgwfwVwfWWfwwgwwvxwwwwgwwgwwwxwwvwggvwwwwxfgwwwvwwguwwwwwvvvwwwwhwwwxxwwxwhwWwwwwfwwguvxwgevwgwgwwwwwwvgwwwwgwxxwwggwhvwwwgfwgVegvWwvwFfwvgwgwwuwwgwgwUfvVfwgfwvgwwwwWfwgwwxWwwwgxwwgwxvxwgvfwgggxGxwxgxwxgxwvfxghGfwwwwwWwwwfwwfxxxgwxxwxxgxwfwvvwvvwvwgvwxwxwvwwwwgwfwwxvxwxwwgwwwwxwfhxwwwgwhggvwxwwgwwwvwwwwwxxwxxwwgwwwvxgwfwgwWxxwxhvxxwhxgwwwxwgwwvwxwwwweugvFgvgvvvugvgfwwvwwwxvfvwwwwgwwxggwwwwfwwggvfvhvgwvwgvwFxxwwggtfvwXvwwxwwwwxwwxwwxwxwwwfvxwwwwvfugxxwxxxxwwvwxwxwxwxwxgWwgxxwvwwfuwvwwwwwwxwxfwfwxwwwwwxvwwxghxwwwgwxWgvwvFgfvuwxfwugfwwhvgfvwhwfhwfuwxwxwwwvxxgwwwggwgggwwwhhgwxwwwgwwgwwWwwxvGfwwvgxhxVwwxvhvwwwwhwwhwhghwwwxwwwxwwwwxgwgxwwwwhwwwgvxxxwwgxvwwxxgxhvwxxxwhgwgwwwvwxwwwwxvwxwwwxwxgvwwwwxwwxXxgwgwxvvxxwwwwgwwvvvvvgwwfwwgggwwwwwwwwWwggwxwvwfwwhwwwgwwwwwgwhhxwwxvvwwvwfwfWwvvwvvwxwwxgwgwwwxxwwwffvvxvwxxwwxgxwwxgxwwgwwwvwwwwxvgwgwwwwxwvxxxgwwwxwwwwwwwxxhxxwfwvfvwvwvwvwvwxwwxxwxwwvwwxwwhgwxwxwwxxwxxgvwwvvwwfvvvvggwwwgwvggvwvgwwwgwggwgvwvvwgwwvfwxggwvwwgwwwwxhwxwwwwgwwwgwwwwxwghwgwgwgxhgwwwwggwwxwggvxxwgxwxxhgxhwwvxgwvwwvwwwxwvvwwxgwwwwwvxwvvwwgwxvgxxwwwxxwxwwxhwwwxhwvxxwxvwfwxwwxgxxxghxxwhxwwvxwwwxxwxwwvgvfWgvwgfxwggwgwgxwwwvwgfwggvfwgwwwwwwwwwwgwwvwwgwxwggvwvwwwwwvwwwxwwwwwxwgxwwwwhwwwwwwwwhgxwvwwxwfvwwwwwxwvwwxxwwgxwwxxvhxxwxwwwwxwhgvhgwxvgwwxwwwggwwvxwwxgvxfxxwwwwwvWfwfvgwfvvwwhhgwwwwwwgvwxwhxxwgufvvwwwvgvwwwvwxvggxwgxwgwxwwwwvwwgxgwgwgwhxwxhwwxxwwwwxgxxgwxwwxwwwwwwxxhxwwxggwxfvwwxvvwwwwvhwwgvwwwwwwwwxwxwfwwwwxwwxwwwvvwwwwfxwxxvwvwwwwwxwxvxxgvxefvwfwvuvggffwgVfWwwwwevwwvvvvffvwwffwfvwwvvwwvVwwwwwwfvgvwhgfwgwgfwwfwfvvwggvvwwwwvvwwwwwwvVwvvvwwvfgwwwwwvwxwhvgwggwgwwwvwvuvgwfwugvgvfggwgwxwwwwwwwwgfwxwgwghxfvwwwwvwfwvwwwffvwvvwwvwvwwhfwwxxwwhxwwhwwwwwwwwwgwvwgVewwgfgfvggwWegWvffgffwgvffgWffugggfvwwxhwvvwwwWwggwwggwvwWvvwwwfwgwwfvuvvhwwvwwwWwxgewwwwwwWxxgxwwwwwgxxvggWywwvfwvwvfgfwuxwvgvvvwgwwvwwwvwwwwuwwwwwwgxwwwwwwghuwwwxxxwwwwwwwhwwuuvwwxgwfwvwwwwghhuxxwfxwwxwhxvxggwwfvvxffvwvgwfwvgggfwfugvvhvwwvwvvwuvwwVvvgwwgwxfwhufvggvwgwwuvvwvvwvwgwvvvwwvwwvwwvvvguwwvwwVgxvwwwwwxggwuwwwvwwwwwwwvwvwgxwwxwvwwwxxwvhwwxxwxwvvwwwvvxgvwxxwxwwwwgwwwwwwwxxwwwxwwvwwxwwgxwwwwgfvuugwvVwvfwguuvgguwwegvwggvwgvwwwgvhgwxgwwwfwwwxvWggwwwwgwwgvgwwwwwwgwgwwwwgwXgvwwWghxwwvwhhxxwfgxwxxxxxwwwgwfwwwgvvvwxwwggwvwwgwgwwwvwhxhgxxvxxwwwxhvxwwwwggwwwvxwwxggwwwgvxwvwwwwvwwvvwxxgxxvxtwwgvwwgwgggwuwgwvwwWgggvxgwwggvgxwwwwxwgfwfwgwwvwgxwwWwgwwgfvwfwwWvwVvwwvxwvWgwwgwxgwwvfwewwgvwwgxvvwwwwghxxgvwwfWggvwwggvwwgwwxwwxgwwwvwxwvwwxxgwwhwwwxwxwuwwvvWwvVwwwvvhgvwwwxgvwxxwwgwvvxgwvwvvxwwwxwvwvwwgvwwwwwvwfvvfwgfUfvwfwWFvfGwgfgvVvwvwwwvvwwwTvfVwWwgggwwwhxxxwwwwgxhvwgwwxxgwwWWxxwGxwhwwhwwffvxxvWxwgxgwxggWxwhwwwhwwgvwwgfvfwvxwvvhxwxVwfVwWwwvwwgggwvwvwxwwwgxvwxwwwxxwwwxwvwwwgxwvwxxwwwxgxgwxggwwwgwxtwwxhwvgwtghwwxwxgwwwwwwgwwwgwfgwwwvvwvffwfwfgguvxwgwwgETwfwvwwvgvwxvUefwvgfxfvxwwfwwwgf6uuXwvwxgxwGwvhwgfvwwxxwgwvwwfwxwwwwwwwwxxwxwwwwxgwwgvuxfxxwvfgwxggwgwwwwgfwwxwwhxwwgggwwwvwwxwggvwfvxgxxxwgvvhwwxgwgwwxwwvwxvwwwwxxwwwxwxxxxwwwxxfwxwUVwFwvgggwgxww%udGgWwvwgwwwgvwfgfxwxwxggxwwwgwfwwgwwwwvgwwwwwvgwwxgwwgxwwxwwwwwghvxhhwgwvwwwwwwgvxxxxvxxwwwfwwwxvhwwvvwffwgwvwwxwwgwwwwwwgggwxvwwgvvhuwwfxwwwwwxwwwwwwxwwwgxwvvxwxwgwxxgvwwwfwhxgvuwxfvwwvwvxwwwuwxwvwwuwxvxuvwwfvuwwgvwvwwevvvgghwxxgvvgwgguwxwwwfxfvwwftvwgwwvvggxfwXgvxxwuwwwvwgxxxgwxxxwwwgfwwvwwwxwwwwwxwwwwfwwWwwwgwxXwxxxwhwfwvxxwxxwhwwxxvwwvxwwxxxgwvwwwwWvsggfftvewgxwwvWvvwgfVxwwwgfVvvwwwwwwwwwwvvwwxwxxwxgfFvwwU6xwwhgwwxhgfxgxxxwwwvwwwgxxhxwwgwxwxwxgwwxfvvfwwwwwwwwwwvxxxwvxxvvgfwwxwwxwvxwwxwvvwwgwgvghwgwwxgwggexwvxxgxwfwxhhvwgVwvguxxwvxgvwwwxwwwxxwwhgvufvvfgwWxwvwwvvgwwxwxxfwvgvwhwxxgwwwwxvggvgwvwwwgwxxwwvxgwxwwwwwwwwvwwvwxwwwwwwgwwwwxvgvxwxwwxwvwwxwwvwwxxwvvxwwwgwvfwwwxwwwwvxxwvwxwwwwvxwwwxwxxxwwwxwxuffffwuwwwvwxvgVwwxgwxwwwwfvvfvvxwxwxuvwwhfvwwwwxwwwvfwvxvghwwgwWgwxwvxxgwwvwxgvwwwfVgwxwwwwwghvwxwXwxwwvxwvxwxwwwwxwwwxwwxwvxwwwwwwwvwwwwwxwvxvwwgwwwvgxvgxvwwvwgxwWwwwwxxvvvgvvwwvwwgwvgxwxwwwwvwvwvwgwvgvvxwwvwwgwwwwgwvwwxwhwfwvwfvwwfwwwwwwwgwfgfvwwwwwwgvwwwwxwwgwfgwwwwxwxwwwwwwwwwxwwwwwvgwwwvwwxxwxwgvwwvwwxxwwwxxhwwvwwvvvwwwxxhwfgxgxxwxwwwwwwxhwxwwxwwgvwwUfvwgvwUuefwggwwfffwwgvwvwwWvUWgwwwgwwvwwwwwwwxxwwwwxwwvgggwgwvggfwwwwxxhXwvgxwwvwwwwwxhxwhwwwwwwwxwwwxhwxwwxwvgwVWwwwwwgvwwhvgwxxxwvwgvwwxxxxxwxwwgwwxxwwvwwvwwghwwxxxwvxxvhwwXxuxvxxxWxwxxwvwvvwvwFTgeuuwvgwgwvwwwgvxwwwfvvgwgvwwwwxvwwxfwwwwwvvgwVvuwwwwxwFdhwgfwvxxwwwwwvwwwhgxwwvwxwwwwxxxwxwgwwwwwvwvwvwwvwgvwvwgwxwwvvxwwwwwwhwwwgwwwxxwgvwfwwwwxwvwxxwxwxgwvxwwwwwwwxwfvUUg5vSVgvwwwgggVvuwwgfgwxgwxxwwgwwgvxwwvwwwfgxwvhwwgvwgwgwwgwwwwwwgwwgvwwwwwwxxwxxgvxxxwxgvwxwwwfwwwxwwgwxwwwvgwwwgwfxwwwvwvwvwwwxxwxwgwwwxwwxwgwxwxwxxwwgwvvwwxwwwwwwwgwwxxwwxwxwxwxxwvvxwwwvxwwxfvvuwwwwgwwgvvvwvwxwvwwgwwwwwgwwgwxxgwgWfwwwxWwxxwggvwwwgUvwfwxvvewghvxxgfwwwwwwwhwwwwggwwwgxwxwwwgwwgwwwvwwwwxvwxwwwxxwwwwwwwxwwxxwxxxxwgevwvwgwwwwgwwxxwxxwxwgwxwxxxwxwxxwwwwwwwgwxWewwevwvvwWgWVwvgwVwwvgxgwwwwgwfvwwvwxwvwgwwxxwwvwxwwggwxgwwwfWvwwwWwxwgxhggxxgwxwxwxwxfxwwwxxwwWwXvxwwxwwwwwwxwxwwvvvvwwvwgwxgwwwgwxxwwwwvfwwxxwwwxxxwwxwwwxwxwxwgwwwexwxxxwxwwWwgwwhxxxxwyxwxwwxwevwggvfvvwvvwwwWwwwwgwwwwwwvwgwwwwvxwwwvxwwhuxwwgwwwwvwgwgwwwwxwwwwwwwxwwwwwwxwwxxwxxxwxwwwxWwwwwgwxxwwxwwwxwxwwxwwwXvwwgwwxxxxxgwxxwXwuvwwuxwwwwwwxwwwwwwwxwhwxwwxvwxwwwwxxxwgfwvvWwfvvwgxwvVvwgwxwgwwxwhwvwwvwwwxgwwxwwwwwwgwwWgwwwwxhxwwgwxwvwwwwvgxvwwxxwhgwxwwxghxxwghhwwwvWwwxxhwgwgwxvVwwvwhxwxwwwwwgwhxWwxwwwwxwxxwxxxxwwxhwxggwwwfwwwvxxwxxwwWwwxwwhwwwwwwwxwwxwwwgwwwwwgwwgwwwvwwgwwxwgvvwwxwgvxwwwwvggwwwwxgxwvvwxwwwxwwvxhwwvwxggvwvvwwxwwwwvvwxwxxwxwxwxwwgxhwwwvwgwxxgvvvfxwxxvwxxxxgwggwvwgugxwxhwwxwxggvxwhxwxxwwgfvxwgwgwffwwgwwwwgfgwgwwwgwxxxwgwgueevvvxxwwwvwxxwgwxwxxwwxwwwwgwwwwxfxwgxxgwvgxgwwwwwwgfwwgxwwxwvhhfxxgxwvgwwwvfghvwwxwxwwwxgxxgggfuggvwvwxxwxwgwvwwxxwgxxwxwxgxwwwwgxgxgwwwwwvwWfuxwvwwwgfxxxwwgwguwxwwwwvwvgvxwxxVfefwwwgwwgvwxxwwwggwwgugwxxwwxhwvxxxxwgvxwgvwwxwvxxxwwwwwwxwwguvxxgxxwxxwxxxxxwggwxxxwvwxwxwxxxxxxxwwxwwvxgwwwfvfgvxwhwwvwwgxgfxwwxgwvWvugggvwxgxxwwwwxgvwxxwwxxwxxxxvhwxwxwvhxwxxwxxvwwwwwwwwxwwwxxwghxgwwwwwvxwvxwwwxwxxhwfvwwxwxwxxwxxxxvwwgxwgfvxxgwwxwwwwxxwfvvxwvVxuwwwvufwwwfevvvwwfvvwfvwwuwwgvgvffwxwwvvvwwwffVwgwwvwwwvvxgffwgfwwvwwwwwwwWgvvwwwvfwgvvwwfvwwwwxwvwwvgwwfwxwgwgvwwwwwwvwgwxwfwwwfwvvxwwwwwvwwggxwwvwggwvwwwvvxxwgwvvvwwwxxwxvvvewgwvwwwgxwwwgwfvfwgwxwwgvwVewwVfwgvvgVfvvvgfgufgwwwWwVfvfgvvgvvgwwwggfffwgwWvwwvxgwfvwwhwwgvwwwgwwwgxxgWwgwgxwfvvfvhwgfwvwwgwwwwVwhWVwwgfwfvwwwwvwvvgwggwvvwxwwfwwwwwwwwwwwwxvxwwewxxwwxwwvwwwwwwvfwwxfxgwwgxxwvwxvgwwwxxwvggxwwwvwwwvvvwwvwwwwvfegvwvwvwwvwUfewvwvvvwwvvvwvwwwxwvvwvffwwwwwxwwvvgvvvvwwxvwgwwwvUwwggwwwvwgwwwwwwwwwwwgVfewwwgwvwvvwwwwwwwvwwwwwwwwgvvxwwwxwwwwwwwwwxwwvvvwvwwgvwxwvwwgwfuwvwwwwwwwwvxxxwwwvxwwwgWfvfwwwfvwggvggUfuwgwVvwwgwvvvuvxvwgwvwwgxVvffvwggvxwwgwwwwwgwvvgwxxwwhwgxhgewfwwxgwvwwwwwwxgwwxwvggWVhffgwwwwwwwwwwwwvxwxVggxwhxfwwwxwwwvwwewwwxwffxvwwwxxwvxgwgwvwvwgwvvwxxwwwwxwwwwxwwgwxxvwwwwwxwwvwgvvwwwwxxgwxwwxwwgvxwxwwxxgvxwgwwwwgwwwxxwwwwwxwgvwwxwwwwgfvxwwxgwwwwwxwwxwwxwwgvvgwxwwxwwwwvwwwwwwwwxxfwxxwwxxxwgwgxxwxxwwwgvvxwwwxxwwwxxwgwxwwwhxvxhwwwhwxwxwwwwwwgfvwwwwxwwwgvwwgfwvwxwwfwwwwghwwxxwxxxwvggxhwwwwwwxwxwxxgwxwwxxfxxwwwgfhwxxxxvwvggwwwgwwxwwwwgxxhwxwggxxwwxgwxgwwvwxxwxwxwgwgxxxwxwwxxwxhwwxwxxwwwxxwxwxvwxwxgwwwhgvwwxhwvxwwwwgvxwwwwwwwwfwwwvgggwggwwwgwwwwxwwxxxgvwgwgxwwwwxvwxwwxwwxxhwwghwxwhgwwwxwwxxwxvxwxxwxxxxwxgvwxxxwwxxxwwxxwwgxvwwwwxwxwxwxwwwxwxxgvgvxwwvxwxxxwwxwxwxwxxxvxwxhwxwwwwgwgwgvvgwgwghwwvggwwwgwxxwhwvgvwgwxxwxwwhwxwwhwwxwwwwxwwwwwgwxxxwwwxhwwxxhwxhwwxwwgxwwxxwxwwwwxwwwxwgwwgwwwxwwxxwhwxwwwwwxwggxwwwwwxxwxwwgwwgwwxxwwxwwwxwxwxwxwxwxvxgvxgvxwwgxuwwwvwwgwvgewwwwwwwvvwfgvvwgvgffvwxuwvvfgwwvfgVwwwxwwgwggvwevwvfwfvvfwgxwwwggwgwwgwwvvwvwugvvwwxxwxwxxwwwgvwggfvwwgvwwxwWuwvvvwwxgwwwfwfvwwvvwhxxgxvwwvvvfwgvgwwwwwwwwxwwwwwgwwfvvwwggwwwxwwxwwxvgwxvfwfgvfegwgfvgwwfwffvwwxfvvvvxwwfgVewevfVfvvgwfwxVfVgVgwvwwwwgwgwwwwwggewwwwguggwgwxwvWwggwggwvfgxffgwwWgwxxwwvgwvwxxxxwwwgfwvwvgVwxxwugWxggvwwwwvWwvgggwwgwxwwgwxgwxvwgwxwgvvwxwfwxwwhwwwxgwuxxwwgwvwwxxgwgwwwwwwwwwxwhxwfwfxfECwvwwxfvvggfvvfgfvxwwgvwfTuuvWvxvwwhfvxgwwgvxxwxwwwggfwfvfvFveguwggwwghwwgvwwwxwwVfxvwwwxwwwwwxwxwgxwwwwgwwvxuvwwwwxxevwwxwhwhwxxvfwwxwwwhwxxxxwfwhxxwgfwwwVvevuwuwvwwxfxwvwwxwvwwxgwwgwwwwxfwgxggwwxgwwUgUEvfvfwVwfwwgxfvffvwgguwgwgggg4vdVgwwXvfwwwwwwvwgveWhfwvwwfwwgwwwwgegwwxwxwwgwvxxgwggwwgwgvgwwwfggfwxwwgvwwgwwgfvwggwUvxfvxvwfwwxwwwuwwwwwwvfwwgvfwvwwxwxxwwwwwwvwwhwwwvwfxwgwwwxxgwwggwwhgwgwwevwxwgfwwvwffvwevUvvxvvwwvwwwwwwgvvvwxwwvwggwgvhwvwwwgwxwxwwvfvwfgwxxwwwvwwgwwwvwugwvgvwwhwvwwwgwwwwwvwgwxvwxgvwwvwwwwwwwhvfwvVvvwwvgvvgwgwwfwwwwwwgwxxwwvfvfvtVwxwwwvgwwvxwxwwwvxwxwwwxvvwwfwxwgvwwgwxwwwffvvwvfvegxwvgwggxwxwwxxxfeugxgwxwwwwwxxxgwxvghxwwgwggwVvwgggvwwggwwxwxwhwffxhvwwfwvvwwwwwwxxxfvtVxvgwwgwxwwwwvxxxhwwwwfwxwxvhxwwvwwwwxxwgvwfxwwwwhxwwxwwwwxwgwuvvwffwvwvvvvwvwvvxwgggvxgwhxwggvfwwwvwwwxfgugwwwvwwvwxxxwwwgfvtWwwwwggwvwwvwwwxwxwvgvwwwwxwwvwwwwxwvvxwwwwwxvwxwgVwvxwwwwxxxwwwwwwvwxwwwwfwwxwxxxvxwgwwwwwwwvwfwwxxVvtWxwwWwxwgxwgxgvwgxhxgxhvwgwwwxwgwwvwwwwvxwwwwxwwxxwfgwhwwgwxvxxxwxxxxxxghfgxxwhwwxwvwxwwxxwwgxwgxwxwwwxxwxwxwwwwwwxxwwxwwwwwxxxwwxhxxvwwwwxfvwxgvvwXgvxugVgvfgxvgfwfwwfvwhwuwvwfwwwvwvvevevfwvwfvwxwvgvfWvwgvwgggvvhvgwwfvgwgwwgfwggvfwwfwggwvwwvgvwwwwwwwwwwwwwhegvwwwWvwwwgxwwxxhvvwwwwwwwxwxwwvwwwgxdgguwvxwWwuvwwgwxwfguwwwwxxxwwxxgwxwxxwwvvgweVwwfFwguwWxVWvgwvgvgfwvgxfVwvvgfuxvxwgvfgwwWwxwgwxwvgvwvgwwwXxgWefwwgxxfwwffhgFvwfgwwgVxwvghWgwgfXXVhgWiwxuwxgguwgxwwwguhgwwhgwgVwwxwhvwxwwggxwwwWghghgwxwhgvxwwxxwVwwvfhggxxfgwfuxwwxxwgxxvwhhwxhghwwuWwwwxxwwwwWwwwWfvwwwFwwwwfwewwxfwwWgwvhwwwxwwwvvxhgwxwgwwxwwWgvhwxwxwvxxwwwxxxwxwwwxwxwxxwwwxxxxxxxxxxxxwgwwgwwxwxwxxwwxxxwxwwwwwxxwxvxwxwxwwwxwwwxwxwwwvwwxwxxwxxwgwWvggwgWvvwwxhwvfxWgxwwwwwgvwggwxgwgwxwxwxwvgwwvggwwwwgxwhfwwwxwwhxgggxghwwhwwwwxxwxxgwxgxwwhvgxxwhwvwgwvxwwwxwwxxxwwwwwwxwwwwxxxxxwxwwwgxxxxwwxwxwwxwxgwwwuwxwvgxwwwwwfwuwwwwwwvwwwwwwvwgxwwxwxwwwwxxxwwwvwwwwuwvvgvfgwwxwwwwwwwwwwwwxvwwxwxxxxwfgwwwvgfwWwxwwwwxwwxwwxxxwxxwxxxxvfvwggwghuwvxwvxxwwgwwwxwwwxwwxxxvgvwgffwfWvwwxwggwwxwgwvxwggwwwwxxxxxxguuwwWfgfVfvxgwgwwwgxxxwWgvwxhvwwwwwgwwwwwwxxwxxxwwwwgWwwxwwwwxwxwwwwwxgwwwgxgwwwxwxhxwxwwxwxxwfgVxwvwwvwxxwgwgxxghguwfgwxxxxwxwxwxxwxgvwvgvgwwggwwwvwwwwxwgxxxxWxwxwwxxxxxxfvfeffwfwwwwxwwvwwwwxwwvwwwwxggxwvxxwwwvgwwvwwwwwvxgwvvvwxvxvxvwwxwwxwxwxwwxwvvvwvwwvwwvxgwwvvgvvwwwwwwwwxwvxwxxwfgfwgggwgfwwvxxwgwwwgwgwfwwhwxwwwwwwxwwwwwxwwxwxxxwwwfeuuvVvVvwwgxggfxwwhwwwewwxWwwxwXwwggxwwwxxgwwvvxhghxxgwvwwwwxwxgxwwxwwgwwwwxxwwwxwhxwxxxwwxxwwwwgwvwwxwwvwvwxvwwxwwxvwgvxxxxvwwwwxwuwgwwwwwwwvwwwxwxwwxwwxwxxgwwwwxxxwfwgvvwvwxxwwwxwwwvvvhgwwxwwwwxxwgxxwgwwgxwgwgwwWwgwxwfwvwxwvwxxgxxwxvfvwwwwwwwwwgWvwxvwvxwxxwxwwxwxwxvwvwwwvfwvvwwGvvxwwwwxxwWvhxwxwxwwwxxwxvvfvxwhgguwgWvwgvwxwwwvwxxwwwvWxxgwwxwxhwwwxxwwwFwxwwggwwhwvfwxxxxwxxvwwxxfxwxxwhxxwxxwvfEwwgwvwxxxwvwwgxxwxgxxxxwwwwxxxvwxwwhvwwwwwwwuwgxvwxgwwvxvwxxwwwwwwxxxxxvwggwwwvvfwwxVuwvgXwwwwwxxwwxxwwxwwwxvwgwwwwwwwwwwgwwvwxwwwwxwwwgwwxwwwvwwwxxwwwxwwwwxxxwwwxwvwwxxxxvgfvwwvvgfwxxwWwwwwxgwuxwwvwxhwhwxxwxxxxxxxwxgvdfwgGfwfwgwwwgwvwxgwxwxXxwwxwxxxxwwvvxxwwwwxgxxxxgwwwxxwwwwxvxxwwwwwxvwxhwvvxgwvxwxwxxwvwwwwvwwxwwwwxxwxxwwwwxwxwwwwxxxxxxxhwxvwwxxhvggwwfuvxxxwwxxvvwxxwwvwwwwwwwwvvxwxwwwwwwfwwwwwwwwwwxwwwxxxwxxhxwwxffwwgwxfvuxxwxxxwwxxxxxvwwvwwwxvgvwgwwxwwwwwxwxxxxwxxgwxwxwwwgggvwwghxwxwwxwwwxvxwwwxxxxxwggugvgxUdegwgwvwwwwxxgxwwxwwweefxxwwwxxxxxxxxxxxxwwgwwvwwwxxxwxwwxxxxxxxxxxxxxxxxyxUedgwxguxwwwwwwwvhwxwxwwxwxxxxxxxxxwxwxwwgwwwxwxwwvvwxxxxwxwxwwxxxxvxwgwxwfwxgfwwxhwxxxwwwwxxwxxxwwwxxxxxwhvhxwwwxxwwwwwxxxxxxxxxxwhxxxxxwxwwwxwxwwxxxwwwwxwwwwwwxxxxxxxxwxwwgwgvwwxxXwhxwwxxwxwgwywxxwxxwxwxhxwgeefxxgwhwxwgwxxwxhxwwwwwxxxxxwwxxwwwWxxxxxxwxxxwwwwwxxwwxwxxxxxwxxhwxxwwxwxwwwwwwwwxwxwxxxuxwxxxxwxxwwhgxvwwwwwhxxwwwwwvgxvwvwxwwwgwgwxwgvwwwwwgwwxwvwgwxwxwguWwwwxwwwwwhvxwxxwgwvwwwwwwwxggVxxwxwwxvxwewvwwwxvwwxwgvwfwxvwxWgvwvxwwxxxwwxwwwwxxgggwxwxwWgxwwxwxhxwwWvwwvxwwwwwgxwxxxxwwffwwwwgwvwwxwwwwfvfwxwwvhwwwwfufxgfvwxxvwvwxwwwwwxwfVwwwgxwvwwhgwggwxxxxxxwhxvwxvhwxwxxgwwwxfwgUwwwwwwhvwgggwwwwwwhwvwgwvwxxwxwvxxxxwvwwxwwvgvwwwvwgwuxxwxwwhwxxwwwxwxvgwvfwwwvwwwxveuvwxxfwwvxwwhwhxwxwwwwxwwgfwwwwxwxwvwvwwgwwxwxhxxxwxxvwwvhuwwwwwwguwwxxxhxwwxhwggvgvgwvwwwxwfwwwhxwwgxwxxgwwwwhxxxxvxwwxxxwfeufwwwxWwwwwevgwwwwwxxwwfvwvvgwfwxxxwxwwxghxhwwwwwwwwwwxwxwwhvwxwwxxhxwxwwwxwvgwwwwxwwwwwwwwxvwwwwxwvxxxgwhtwwwwfwvwvvwgwvwuvgwwwwgvxwwwvwhwxwgwwwxvwwxwwwvgwvdvwfwuwWTwwfwwwgvuwfwwgvwgwvgwhwvvvggvhwxxgwwwgwgvwwwwgwwgxwwwwgewwWfxwwxvgvwwvwvwfwwxwwuxwgvxWfxxwFuuhwwxxwwvgwvvgvvwwvfewgxwwuxwwgwufvghwwgwwxhwwwwwwwwxwwxwxvuvwvggwvgwvfuwhwVuvwvwwguuvwwvvgVwvvwvvxxxgwuxwxwxwxwfxxxwgvwwwwWwwwggwfetfgwwvWgwFwwfwwvgwwghwwxxwfggfxggxhXFwwwwggwwhwwvWwwwvwwwwwwfwvWxvvwwwxxwWwwgxxwwxwxwwwWuvVwvwwWgwfggwTgxfvwwhwgxgxxggxghUgwwxxwwxwwwhwwvxwvxfwwwfvwwvwfgwwgxgwwwwwhwgwWxhfwxhwwwwxxwgwfvvgvwwfvxgxwwgvvwfvwwwxwxwwwxvwwwwwwgwwvgxgwwwgwvwwwxggwwgwwxwwwxxwgwxxwwvvvxhwwxwxxwwhvxgwwwwwwxwwgvwvwxxwwwwwwgwvvwvxwwwwwxwgwwwwwwvwwwwxwwwwwWvfvwgvvgxwgvgfwgwwwxwwfwvgwgwwgwwxgxxwxgxwwxxwwgwwwfuggwgxugWvwwwgggwuhgwvwxggwxwwgvwwWhVxxwvwggfgwwxxwwwgvwwwwwvwwwwvgwvxgwgwwwxwwgxwxwggxxxxwwxxxxwxwwhxwwxwwfwfwvwgxhwwwwwwvwwwvvwwxwwgxwxevwxwwxwwwwwwwwvxwwxwgvuwwwgwxgwwxwWvvxfwgwwwxhvwxwgvvhwffwwgwwwfvwwfvwgvwggfFwwwVwgvgwwggvxvwwvwvwwgwwwxwwwxvgvgegvhwgvxgVVwvvvxWvwxxggwvvxxxwxwgxwwxhxgxWwVWguwgvvvxgxwgevgwwwWwwwxwwvvwvwxwwwvwxwwwhhgxhgwhxfwwxfwwwgUgvvwwwFfwxgxwvvvxwwvgvgwvwvxWfvxwxgwwwxxwxgvxxwwwggwwgvgwfFgwgFwgvgxwxghvgfWhggwwwxgwhxxwvvvvwwgxxwxwwxgvwwefvwwwgvvxwxwgewgxwgwgwfxwwxxwwxxxwxwghxwwwxhvxgxvwwgwvgwwwfwwwgwwwwwxWwwwwvwgxwwwxxxxwwfwWxxwwwhgxxwhwwwwwfwghfvwwxfwwVefggvgWwwwxvxwwVvwwwwxgvwvwvxhxxhwvwwwggwwwwwfvhvwwfWwgxFvwufgghtfwWwgwwvwwwwxwwwwwwwwwwwxwvwxwfwxxwvfvwgwwgwhwxvxfwgwwxwxxgxwWwgxwwwxwwvxvxwwwwwwwwwwhgwwvwwwwwxvgghxxwvgwxgfffwgwggwxxxwuwwwhwvgxxgxwgwWxwxwwwwwxwwggwwhwxxwggwxxwwggVgggWvwegwwGfwgwgxGxfhwwfxwgvwxwwwwgwwxgwwxwxhwxwgwwwwxwgwxgvxxwxxxwxxwwwwggxgwfwxwwxxhxhxvwwwxhfggwwxwwhwwwwvwwwxwgxwxvvwwwwwWwgwhwwwvxwxwwgwwvwgwwvwwvwxwwwwgwwgxxwwwwxwvxxwxwvwwxxxxgwwwwwwwwwgvhwwwwwwxwwxvvwwxggwxwvwwwwxxwwwwwhxwxxwxxwwwvwwwwwfwgvwwxwwgwxwwgwwxxwxwvxwwxxgggvvfvwwwwvwwvvwwgwxwwwwwxwwxxwwwxwgvwwwwwgwxwwgwwxxwwxgxxwwgwwwwxwwwxwwxwwxxwwwwwwwwwwxwgwwwwwxwwwxwxgwwwwwwwwwwxwwxhwwxwgwfxgwwwxvgwwwwxwwxxxwwxwwgxxxwwwxwxxxxxxxxwwwggwwgwxxwvwwwwhxfxwxgvwwwwvwxxwwxwwwxgvxwwvwgfUgwwgwwxwvwgwwxwvVVwwwwwwwxhvxxxvwwxwwfwgvwgggwwwwgwwwwxwgvxwxwwgvxxvxxxxwxwxwwwxxwxgwvwxwwwvWugfwwxvxxggxwwwwVvvhwxwxwwwxvgvxxhxxwVvwwwgwxxwwwvwwwhxwfxxwgvxxxwxxxxhhwwwxxwxwVUwgvwwhghxwgvvwwwvxwxxxxwgwwwwwwxwxwxwhwxwxwxvvwwwvwgwwgwwwxwwvwxhxgxhwwwgwwxwwxgwvxwwwgwxxwwwhwvwfwvgvwgwwxwxwwwfvvxwwwwwvwwxxwwwxxxwxxxvxwxfwxwwxwwwwwgwwvvxwwxwwwgwxwwgewwgwwwvwvwwwwwgggwwwvgwwvvwwwxgwvxwwwwwgxwfwgwwxwxwwwwwvvwggWwwvwffvfwwwvfwwwwvwwvwvwwwwwwwwwwwwvwwxwwxxwgwvwgwgvwgvvgwvwgwvgwwxwwwgwwwwwwwxxvhfwwhxxwxfuvwwwxfwvxwxvvfvwwvwwwwxwwwxxwxxxxxxgxwwxvwwxxgvwfgwvwwwVfvwvwfvvwwwgggVwwwgxxgwwxwwwxwwhxwwgfwfwfvvwwwxggwwwxwwwgwfuwxwewvwwwhwxhxwwxwgfxxxwhxgxxwwfgwVwvwgwvwwvwvwwwxwgfvwgxwxXxxwxwwwwvvufgxwgxvWxhexwvfxwggwfxwxxgxxvhxgxwxwxxvxwxwxwwwwvwhwgwwfffvvwvwgfwxwwwgwegwwwwgwhggxwvwwwwxvvwgevfwgvgxwwffvegwfwvwwgxvvvwwwwwwwxwwxwxwwxwwwwvwgwwwgwwwhvvwwfxwfgwfwwwvwwwwxwxwxxgxwggxhxwxxwxxvwfvvwwwxwwfxwvwhvwwwxwwxxwwxxxxxwxwxwwxwggwwwxgwggwwwxfvfwxxwWfwgwwhhwfwwxwwwwxgwwwxxxxxwwwwwwgvvwxwgfwgxhxwgwwvfxgfggwxgwgwxxwwxxvWxfwwwwwwgxwgxwwwwxwgwwwwxwwxwwxfwvwxXxwxwxxxwxxxxxwwgwwxxwwvxwwwxwwxwxhwwwwxxwvwwwhvvwwwwwwhxwwwggwxwvwxwxwwvxxgwxxwxwwxwxxgvwgvwwgxwhwwvwwgvwwwgwwxggxwwgwfgfvfxwwgvwwwwgfgxxvvgvwwxwwwwwwwxvwwwXvxxgwwxwgUVwwgxxxwxwwywvwwxxwugwwvxvwwxwfvvwgxwfwwwwwvvwwxwxxwxxxwxwxxwwwvwwwvhvxwgWgwwwwfvvwxxwvggwwwxxgwwhxhwxxxxxxwVWvwvvfWeWgwwvfeegxxxhgWgvxwvwggxwgvgwxgwwhxfwhwxwggxxwwfwgghvwxwxxwwwxwxxxwxhxxxhxfeegwwxhwxxwvgffxxxwwvwfwxxvxwxvwxxxvwvwxhwxwwwwgwwgvxwwwxxwxwwwwwxxxxhxxfwggvwxvfxxwgvVgxwxgwhvwwwvvgxgxwxxwwxwwxxxhwwvwxggwwxxxwwxxwxwxxgwwxxxxvvxxwxwwwwwxwwxwwwxxwwxwwhvwhwwxxffvgxgwwxwwwxgwwxyxxxfxwxxwxwxxxWeffwxhwxxhwWggxxwVwxxxwxxxwxgwxfwxwwwwwxwwwxwxwgwxxxwwxwxwwxwwxwxxwxxxxxwxwwwxwgwwxwwwwwgfxwwwxwwxwwxvxwvwwwwxwxxwwwwxwwwxwwxfvwwwgwxxwwwwwxwwxwxxvhfwwvhwwwxwwwwwwxgxgvxvwxxwwwwxwxwxwwvxwxxwfgggfvxwwwwwxxxwwwwvxwwwxxwxwvwwwVewhhwwwxwgxxxwxwxwfgxwxwwxxxxxfvvwwfvvhvgfggvxwgwwxhvxhgvfwgwvxxwxwgggwxxgwWgwwwwvvxwxwvwwgvwwwwwxwgxxwwxxwvxxxxwxwwxgfVVvgwfxhwvwwwwxwvxwwwxxwwwxwxwwxxwxwxwwxxxxxwwgvxvwgwwwxwwxwwxwwwwgvwwwwxxgxvwgvvvhwwxxwwwxhwwxxxvvvwwxxxwgxwwfvgwwwwwwwwwwwwxwwwgvxxwwwxxgwwwxwvwxwxxwxvxxwwxwxxwxwxwgggwwwxwxwxvffwgwwxwxxxvwvwxwxxxhwvxxxVvufwggvwwvwgwWvwwxxxwxwgfvgwxwwxxhhvxwxxwgvxwxwwxgwwwxxxwwwhxwwwxxgvxwxgxxxxwwwwwwxxwhwwwxxwxwwxxwxuvfgwvwgwvwgfvvwxwxwwwwwxwwwgwwwgwwwwgxxxwfxvwvvwgfgwfWvgvwwgxgwvwxwxwwwwwwxwwwwgwwwwxwwxxwwwwwwwxwgwwxWfgwuwwhwwwwvwwhwwvvwwvwvwwxxxwwghwxxwxgvgfwvewgvvwwgwffwvwwxwgwwwxwwwwwxvxwhwwwxwvxxwxxgwxwgffwWfwwwxWwhwvgwwwwwwwwfvwuwwvgwwwwwwwxwwwwxwxxwwhfwgvfGwvwwwwwgwwwgwwwwxxgxwgwvvvwwwVxwggxgxwxvwwwxwhwwffgwuwvvvgwhvwxwwwwwvwwxfhfxgxwwwhxwwwwwxhxvwwgvgwhwfwhwwWwwwwwgggwxwwewwwvwwwvwwxxwfuvwvgwwwgvwfguwggwxwuvwwXwwwwwwWwvwwxwgvwxwxwhwxwwxuwwgwvvfvfguwfevvwggwwxvwwwgwvwwwwwvwWwgxugwxwwwwwwvwwvwwwwfvxfvwwwwwwvwwwwwwwwwwxwxwwwfwwxwxgwwwhwxxgwgwvxwvwwvvvwwwwvwuxxxvvvwwwxwwxwwwxxxwxwxwxwVvwgwvwfgwgwxwwWvwwwwvwxwwfwgvvxwwwggfwhxwxxwwwxhgwwwwwvvfuwfvhwgxwwwvwgwwgxhxwghgwwfwwWgwVxvwvwwgwwwxggwwwgvwwwwwwxgwhwvwwwwwwvgxfwgwwwxwwxxXxwxxwwgvxwxwwxxwwwwwwwfwwxxwxgvgwgwwxxwwxwwwwuwwxwxvwxgwwwwwwxgvwvxwgwwgxwgwwwwwxxwwwgwwwwwwvwgvwwwghwWvGggfwwgwvwwwgwxwwwgwxwwggwwwwwvgwxwxwgwvwwvwgxwxxxgwwwggWvwwwvgvgghwgvwxwwxxwwxwvvxwfwxxxxxwxVvfgffwvwwwwwgwvwwwwxgwxwxxgwxgxvwwwxxxwvfwwweVwgegvfvvxWvGwwhxwgwwwwwggfguwwwwwvwwwwvxwxgwwxwxwxgggvwfvxgvwwwgwfwwxwwwxggvgfWhWwwvxwxWxxwwxvvXxhxgwxwxhggVfvfwvwxvwwgfggxwxGwxxwwvwgwxwxwxwwwwxwwwwvfgwwgGwwwwwvfxwwWXhgwwwxwxxwxwfwwwxwxxxwhxxgwwwwwWgwgwgvwggggwggwwWvwxwxfwwwwwxfvwwxxxxwxwggfwVwvwVwvvvwwvfwvwggwxxxwxfvwwwxxgvxwxxhhxwxwwgwvwgxxfxfwfwwgxxxwxwwgwxvxxwxxvxxwwxxwxgwhfvwwwvxwwwxwhwwwxwxuwxwxwwxxwwxxwwwwwwVfVgvwguwxvwwWgfwgfgWfxxgwxvxxwxgxxxxxhwhwwxxwxhwwgwwwgvwWwxwgwwwwgwgwGwVwvwxhwgwwxwwgwwxwgwwgxwxgwwxgvwvwvwwgwwvxwwwwwxwxwwgwvwwwxxvvwxxxgxwxxxWwxwyhwwwxwwwwwwvvwxwwwXgwhwwwwwxhhwwxwxgevwuxxwvxwwxxwxwxgggwgwvwwxvwwvggxwxwwvvwwxxwwxwvvwxgwxvwwggwvwwwwwwwgwWwgwwwxwxwwxwxvwxxwgxxxxwgwwwwxwxxxgwwwuwwxxvghvvwgwwxxxwwxgwwhwxxxxgvwwvwwwwwvwxwgxwwvxxwxwgvvxgwxwhwwxxwvvwxwvxxVVvhwWwvwxVwwwwwwxwwfgwugwgxwwxvwuwxwxwwxWWwwwwwvvxwgvwvwhxwxwgxwwugfwwuvxwwhxgwxxghxvxxwxxwfggwgvvvhxwwwfgxxxxguwxvxWxxwhwwwwwwfvwVwgwvxwgwxwxxvwwvxwwxwwWwwwugwgxxhwVwwxxxwwxwwguwwwgwgwwvvwvuvgwwgwwwwxwwxwwxxxxxxwwwwwgfwvwwvwxxxvuwhwwwxwxgwwwwwwxxwwwwwwwwxwwwfwwwwxwwwwwwwwxxwwxxwwwwwwwwwvwxwxwwxxwwhxwwwwxwxxvvwwvvwxxgxwwxxxxxwwxwgwwegwgwwwxxwwxgxgxxxwgwvxwvvwwwxgwxwwxwxwxwwwxwwwwvgvwxxvxwxwwwwwgxxwxgwwwgwxwwwXxfhwwwxwwgwwwxxwwvwgwvxwxwxxxgfxxwxxwxwxwwxwxxxwhwxwvwggxwwxxwwhwwwhwwwwwhxwxxxyxvvwwwwwwwgvwwwwxwwwwfwwvvwwwwwgvwwxfwvwwvvwwvwvwwwwwwwwfwgwvfwuvwwwwxwwwwvvwvwwvwwwfgfggvwvwvgwvwwwwwvxwwwvfwwxwvggwwwwvvxwggwgwwgvwvwwwwxfwxfwxuwwgwwvwwvxxgxwwwgwwwvfvgvvxwwwwvwwwwxwwwxwggwvvwvwvvwwwwwxvxwvgwfwwwgwwwvwxwxwfxwwwggwwxwwwwwwwgWfvgwwwvwfwwgwvwvwxxwfwgwwgwgwwxwxwwxwwwwwwxvfwwgwwwwwfwfwvwvwwfgwwwwwgvwxwgwxwxgwgwxwwvwwwwwwwwwxwwwwgwwxxvvvwggwwxwwwhwwwwxxxxxwxxwxwwxwxgwwwwxwwwwxwwgggwfwxvxwwgxggwxwwxxwxfwxgwwwwwxgxwVfwuwwwgegvfvwVfgvvwfxvwggveuvxgewfxvwguwfwhhvwvvTvuvevwweuvwugvwwxwwgwgeuwwwwtxwfgwwwwwwxwxhwwvwvwwUuwfwxWftufwwvwwhghVfuwwgwxwXguwWwhXfxhgVvwwwfvxugwguwwgwwwwuwvgWgegxgwwwtwwvwgwggvgwxxhwfwwwxvgwfgwVvuwUvwvxwwEfgwwwvuwwwgxfVvxvgwxwvhxwvwwxwWhwwgxwVvgfwwvwggxxwgxwvvwwXwehfwfXffvwwwwwWwghgvGfWvwgxgXUfWffuFuewvvvwvgwxwfvwwwwwwwwwgWvfvgwgxhwxhwWwvxwxGwvXwggwxwwwhwwwvgwVvwggvwwgvgUxwxwVwfwvgxegwWdeuwwwgwWgwwwggwwgwwvVwwwwgwvwwfvwvwxwgffwvvwgvxfewvwWfvwfxguwggGTvxwwWwewvwwwgggvvgfwfuwvggwfvggwwgWwwwvwgwvhwgwfgvvvgvwwwwfFfwgvvhxxxwgfvVvuwxvwxxfuwxwwwwxfWwvvfvgwggfwugwgvfwwwxfffvwwwwwwwwvwxvwhwxwwgxgxvwwuvvugwgVwwgfwgvfgwWgvwvxVdwWxgwwfUuvWwuxwxgfvfgwwfwwwxxVevwwwXfwvhvvfWwfwWwgxgxVwghhfuufgvwggwwwgxgggvGxgHExfwwxwgvwVfhwvgxwxxfvvWxwvWwvwwwfgvvwxxgwwwgxxwvxwfxwgxwwgwwvgvvgvgwVxwwwwfxggVXhEgxVxfwgwwexwwgvwvhwgwwwgxxguhXwwwwwvVwwwgvxvWvfxwvvxvwxwxwgggxxwwxwhwwwxxvhwwxxfgwgwwgfwfxwfvvgggVwhwvgwgvwgggwgwxwwxwgwxxwwwhwwwwwwgwfvxxwwxxWvvwwxgwwvxwwwwwhwwvxwwxghwvxxgwwwwwgvxwgwvvwwwwwwwwwwwvwwwwwwwwwwwwvwxwxwhwwxwxwxwwvGfwgvwgwwxxwWewWggwggfxxwgwgwwxxwwvwwwxvwwxwxxhwgwxwfvggwfwgwhgvwwwvwWwWhXVfvwwxgwvgwwgxgwwgvwwxwwWwggwwvWvfwxguwxxxwxwxwwxwhwwgwxwxwvwxwxxwxwwxwwwwhwwwwxwxwwwvwxwwwgwwxwwwvhwwwgfuwhgggwwvxgwwwwwwwXhwwdvvwfvvvvwwhvwgvvWwfwwwggwwwwwvgwgfuvwwvvwxvgvwwwwxxxeewufveffgvwwvwgvwvvvfwwvvwvXwwwWTwvwfggwvgwwwgwfvwwgvwwwwxwwgwvfgeguwwUvdwfWfwwfwfwvwxgwwwWfwvvwwfwugwxwwwwwxwwgxxxwwwvfvvuvfwewvwwwwgvvwhgffwWwwwwgvwvwwwwwwgggwxwwfvwwXwfwwwxwguvvgffewfgVgwegwfgwvwwggfwhvwwwwfwVvvvwuwwhwffuwgwwwgwgwwxwxgvgvwdeegfwfgwgfgwffgxfwfuwwghwWgwwgvfgGwgwhxXWFwgwWgxfwhwfwwwgvgfwvvfwgwwxwgwvvwhwvWwwhwxgggvfggwgwWxhwvwwgwvwxvgfvegWvgUwgwggwwgwwwgggehgwWwwwwwwWwwgwhgUxwwxwwehvguwvvwwvvvgfVugwgwvwwvvwwggfwuxwwwvfwwgvvwgwvwwwwgwvwwWxwwxwwVvgfvvvgwvwWwWwvwfwwWwxwwwxwhewvwgwghwwwggwwxhwxwwwwwgwwwwgwwwwhvwgwwxwvwvwwwwwwfgvWwwvwghgwxfgwgwxvwgvvxvvwvwfwvgwggwwwvwwwfwwvwwwxwvwggwxwgwgwvwwhgwvwvwwwfVvwgfVwwvvxwxwwWvwwvgwhwgxwgwwwgvwgwgvgvxgxgwwgwxwWwgwwxxxwwefVgggvwvwwwwwWwgwwvwXxffwwwfxwwfXgWggvggVwxwvwhwgwhxwwvwffwfwwgwxwgvwvfwwwhvwvwxwwwgwwwgwhwfgxxgwvwvgvwwwxwwwwvWggwwwgxwgwgwhvwgwfggwvxwxwvggxwvvwwxwfwxxuggwxwwwwwvwvhwgvggwxgwwgwxwwxwgfvwwxvwxVvvwfwuvfwvfwwvfwgwwvwwhwwgwxwfwwvfvuwwwvwvxxvwwfWxwvgwwgwfwgvxvwuwfwvvwwggwwwwvwwwhwxgfvwwewwhvxwWvvwwwwwvhxvhhwggvuwfvvwwxwffvwwwfwwvwfwwvwvvvgvgfvgwwwfgwfwvvwgwwwwWwuwgfwwWvxwxggfVgwggfuwwwwgvWvwwxgwwghwgvvgwxwgfgwgxwxvvgVwwvffwwvwwgvwVWwwwwhwVwvwwwwgwxwWgwfhxfwwgfxxgfgxgxgwwvffwwgwwwwxVvvwxgvxwwwxxgvwgwvwxwWwhxefwwfxxvwxxwwfwvwwggwvxvgwgvxwfVwhwwwgxwvwgwwwwhfwwwwxwwfvvwvxwwwfvufwwwvwfvwwgxwwgvwfvvxgwugvxuxgvvwwhvwwwxwwhugfewwVwwwfxgvggwwggwvwwghwfvvvugwwxwwwwVvwegvfwgwwwhwufxwwwvwwwxwvwvvuxwvwwvwwwwwwewwwvxwxwwwhgwvwxwwvwwwwwwwwwwvvgwwwxvgvwwwvwwvwvvwgvxwwwxgxxwvgxwvwwwwWfvfvwgvwwwxxVvvgwfwwwwwwwwxwfwwwwwwWwwWhwwwwvfwxxwwwfggffxwwWxwgwgegVvwggvggWgwwvwxwhwxwwWhvvvwwxwgxxwwwgwwwxwWwwxwhwgxgwxwvwwgwwfxwxwxwVwgxewhxwwxwwwgvwwwwwwgggwggfxwhxwxfvwwwwvwwxxwwwxwvgvvwxwwxwwvxwwwwwhwvxwwwwwhwwwwwwwwxwwgxvxvwxxwwwhwwgwxxwxwwhwfuvwgwwwwwwwvwwwwwwxfgvxgwwxwwvgvvwxwgfwxwxvxwwwwgwgwwwgvwwwwfwwwgwgwxgwxxxxwvwwwwvwvxxvwxxxxwxxwxxwwwgwgxwxuwwwgvxvwggxwwwwwxwxwxxwwxgxwxwwxxgwwxxwgwgwwXwgvwxvwwwxwfgwwvhgwvwwwgwhwwwxhxwhwxwWwgwhxwwwwxgxgxxxxwwwgwwwgxwxwWgwwggxwXvwgghxwVwwwwhgggwxxwgxxwghhhhxgxwxxvhwwghxwwxwwwxwwxgvxxhxwwxwxwwxgxxwhwgxwxxvwxwwwgfwwwwxwgwxgxwhgxwwwwwvxwwwwvxwgxxvxxxxxwwwwxhxvxwwwxwvwvgwvwwwwxwwuwwgwvwwxxvxwxwwxvwgwxwxxwwvwhgwwxwwvxwwfgwhVVwwvxxghxgvwwxewwhwxwwwwwxxwwxwxhwvxwwwxwwvxwwwwvxxwwxhwwwgvfwwxwhxxgwwhwxhxxwwxxhwwwxvwwgvhwxwvwhhgxwwvwwwfwxhwwxwwxwxxxxxgvgwhxxwwwwwxgwwxvxwwWwgfhgvgwwwgwxxwxwxxVwWxwwvxxhxwxvwxxwwhfwggwxwxwxwfhxwhxggxWwwwgwwwvhwwwxghxfgvxxghwxwwwwwwxwxxwxxWfxhwwxxwhgxwwvwwgxgvxvxwwgwxwxvxwxxxwwgvwwxvgwhwxxwxvwvwwwxxxxwxwwwxwwvgxvxxxwwwgxwwwxwwwxwxxwwwxgwwvxwgxwxwwxxvgxfwwwxwxxwgwwwgwwxxgwwwwhvxweUwxxxxxvwwxxxhxxwwxxxwvgwwwvwwxwwxxgwxxwxxwxxxxwxxwwxwxwxxgfwwwgwgvgwwxxwwhxxwwwwwWegvhwxxhwwxwxgfvfuevgfwgwwwwwvvfxxhhxwxwfvfgxgvwxgwwwwxxwxxxwxwwwwgwwwxwxwxgwwxwwhvxxxxxwxfuufvwwgxwxwwwxxwwxwwxgxwwwwwwxwxxxxwxxwvvvwxwxwwghxwxxwxxwxxxwxgxvvggwwwxgvxhwwxxxgwxxwwhhxxwgwwwhwxxxwxxxxxwwwxwxxxvxxxwwxwxwwwhxxwwxwwwxxgxWufvgwxwwgwhvwxxxwhxhxxxwwwxxxxwxxxfvvfwgfwxwgwwwxxxxxxxxwxwfxvwwwwwwxwwxwgwxwwwwxxxxwwwxgxwwxwxwxxwwhxwgvwgwgwwxxwxwwwghxwwxxwgxwwwxuwfvgwvvwvvwwffvwvggwvgwwwvuwgwwvgwgvwwwvwwwwwvwwxxvuwvxVCfwwfuwffWwgfwxhfggwvwwfgfwwwvvVvwvvvwvwwwvvwwgwxgwwwvvwwvwvWUvwVfwvvwvggugvfwVfugwxvvgvwwwgwgxhwvxxhwxxwxwwgvufgevvvvvwwgvwvwgWvfgvwgfwwwwwwwvhvgwwwwwwxxgvwfvvfwgfwvfdgvvewVEwwvxwfwtwwxwUwgfeufgwvwxxwwgvwwwgwwxwwVegvwgfuuVvwWg7wwfgwwhvvWfhX6gwwgfvgwgwwgvgwgxxUwwfxwvvgVvwwfgwvgwxgwwuvxvFwwWxwggwxxxwxgwwwxxxxvxwxhwvgvfgxvfFgwwevvffvwghXTxgwfhwfvxwxgfwwvXwgxwwfxwwwffwwwwwvwwfffwwgvwvwvgfwwwwwvuxxwgwwwwwwxfhwgvgwxwxxfwfvvfvgwuvvgwwvwhgwggwfwwwvwwwwwwggwvwvwgwwwwwwwwwgwvwwwvxfxwvwuxwwxwxxxxwxwwwwWwwwvxxwxgwwgwxwwxwwgvwgvvuuwvwwxwwwwwxvwvwfwwvwwwwvvxwwwvwwwvwwwwxwwvwwgxwVevfvffwwfwwwwwwuwwwwVvwwwwwgxxwwgwwxgwwwxggwwwwwxwwwwvvfvgvGvwwwgwvwwgfwhhEwhfwggwwxwvewwwhvwxgwwwwwwwfwwxggvgwvvvwwwvwwwxwwwxwxwgwxwwwwwwxwwwgwxwwwwxxxwwwxxvwwgwvwwgwxwwwhxuvwwgvwwwwxgwwwvxwwwwwwvvwwwxwxgwwxxwwgwwwwxhwfgwwwwwxwxwgwxxxwwwwhwwwwgwwfwwfgwfvvwwwgwwhgwvgxwwggwwwxgwxxxewwghwhxwwxgwhwwggwwxxwxgvWwxxwgwwwxwxwwwwvxwvvxxgwxfvWwvvvwgvvwwwggwvgwgxwwwxwgvwwwwwxxvwxwwxwxwwVgfwggwggwgwxggwwxgwgvvvxwwvfgvgvwwgwwxxgwwxhxxxwxwvwwwhgfwvvwxxgxwwvxxgwwwghwvvwwwwhhxxwwwwwxvxXhwxvvgxxxwgwgwwwwxxwxwvwwvgwxwgwwwvxwhxxxwwxxxwwxwwvgwwgwwvvwxgwgxwwwxwgwwvxxwwwfwwvwwxwxxxwxgxxwwxhxvwxwfwgweFwxwwgwwfVwwwggwhwwWvvxxxgwxxwxxxxxxvfWgwvwvvfuxwvWwvhwxwwvxxwwvwgvvwwxwxwwxwvxvxwwgggwwwwwwgxgVvuxwxxgFuvhwwwxwwxwwwxvvxwxxxwxwxwwhxwwxFuugwwwghxxwhwwgxvxwwwxwxxwwwvgxvhwwwfweFxvxfwxxgwvwwwgwuwvwxxwWwvwxwwxwwgxwxwgxwxfvwfwwgwwwwwwgfvwxhgxhwwgfwxxgvfwxgwwwyxwwgwwgWfwwVgwgwwwfuxwwxwwwxxwxgwxxgxwxxwwxwxxxgwghxwxwhwxwwvwwwxwwwwwwhwwwwxgxvwgxxxvfwxVxguwwwwvgxwwwwwwwwvgwgwgxwxwgwwwwgfuvhxwwwwgwvwwwvgvvwwvgvvwfevwwfwwvvwwwwwwwwvwvvgxgvwwvvfUWwwvxgvwggwwwwgwxxgxgwwwxwfewwwvvvwfvvvwxwvxwfvwwwwwxvgwhxwvxxwwggwgfwvfuvwvvwwwvvvwwwvgxwxgwwvxvwxwxwwwwwwvwgwwfwxwvwxwgfuwwVewwgwxwvgxfvfwwhwwvwgxxfvVfgfwwwgwvwwxxwvvvgwgggvwwghgxwwgfvggvfxwfxwwfwwwuxvWwxwwxwwvwfUVwwvVwwwwxhfwgwUghVwufwXgvwVfvvvvvwgwwgwwgxvwxwfgwggvgwxwxwewxxxwvwwgwwuwwwwWxwwxwwwwgwfwxfxxwgwvvxxvvvwgwvggwwwwgxwvvwwwvgvwfevwwxwwwwgvvgfvggevwwvwvwwgvuxwgwwxwwwwwwxwwvwgwvfffvwwgwwgwwwVgwxfwwvwwvvwvffvwxwvwwwwvWgexwwgwxwwvvvvwwvwwvwwwxvwwggvvwwvhwwgwwwwwwxwwwgwxxxwwwwgwvwwvxxwwvwwwgwgwfxgwwwwwwwwwwwvwwwwxxvffwfvgggxxwwwfwghvwfggwwwxxwgvvxwggxwxwxwwVgwwwwwxwvwxwwwffewwvWwxwvxxwwgwwfwWhefvxwggvvffwwgggwwwwwwwvfVVhffgwgwgxwwwgxxwwVwwwwgwwwwwxwwwwxwxgexwwffxwxwxvwwvxwwwgfxgwvwwwwvgwfwvwwvwwgwwwwxwxgwwwwwwvwwwggxxxwwwwwgwxhwvgvwvvwwwwvxwxwvwwvwwwwwwwxwwgwgwwvwvuvhgWvwwwwwwwwwvgwgwwwgxwgwwhvwwwwwxvxxgwvxwwvwwwguxgwgwxxxwxwwwwwxwvwwwxwxffwwwwxxxwwgwwxwwgxxxwxwwwwxwxxwwwxxxxxwgwgggWvxgwwwxVgvwwwvwwgwwfgugwgwxwwxgvwwvwwxxxggggvxgwwwwgwvwxggxfhwfgwwgxgWuxxxxgwwvvxhgVxfxwhwxwguwwwWxgvfvwwWwwwxwwvwwwwwxvxxxwhxwxgwgvwWxwgfxwxgxwVhxVxxwfxwgwwwwwwwwwhgxwwvxxhwhwwwwgvwwvvwvgfvxvfwwwxxwwvfwgwwxwvvwxwxwwvvwvuvvvwxwxgvvxwwgvxwxwggvvwwwwwwwwwxxwxwhwwwwwwwwwxxxwxwwwxwxxwgwxxxvhwvxwwwwwwwvwwwxxwwwxxxwhwvwwwxwxwxwxwxxfvgwvwwxgwvwxgwfxxwfvvwxwxhwwwwxvwxwxwwfgxwwggfxwxgwwwgxXgexxvxwgwhwwvvgwwwwgWgwwgwffwwwgwwwwwxxxwxwxwwxxgwgvgvxwhxxhxwgwwhgwwxxwxxxgxwgXwwhwgxwhvgwxwwwwxggwwgvwxxwwxxxwwxwfgwxxwwwwwgxwvwxxxwwwwwxwxxxxwwxwvwwxxwxwwwwvwwgxwgwwvwvwwwxvxhxxxwwwxxxwwxwwxxgwwwxvwgxwxwhwwwwwwwxgxwxxwxxwwxwwxwxgxwwhwwgvxxwwwxwwwxwxhwwwwwwxwfgwwwwwwwxwwhhxvwxxxwwxxwwwgvwwwxvxvwxxwwgwxxwwxxwvwwgxvwgwwgvwxxxxwxxxvxwwwxxwgfwxgwxwggwxgxggxwhgxwxwwxwgxwxxxwwxxxxvxwxwxxwxwwwxxxxwxwwgwwvwwwxwwxwwwxwxwwwggxggwwxxxxxwwvhwwxwgvwxwxxwwxwxwwwvxwxwxhxwvwwwwwwwwwwwwxxwgfxwggwwggwwhvvxwxwwxwwvgvxxwxwwxvxwxgwxxgxwggwwwxxwxxwhwvwxxwgvxvxwxvwwxwgwwwgwwhvwxxwwwwwwwxwwwwhxgxwxxgwxgwwvxwwxxwwwxwxwwwwwxxwwxxxwwwxxwxhwwwwgxggxxxxxvxwxxwwhwvwwwwxwxwggwgwxxwxwxxwwxwhgxxxwxhxwwxxwwxwwwgwxxxxxxwwxwwwwwxxwxwxwxxwvgvwgvwwxxxvxwxwwwwwwvwxvgwwwfxxwxwxvwwvuwxwxxwhwvwgwfvwwwwwvwwwwwwwwwwxxxwgwwvvwwxwxwwwvvwwxwxwxvwgxwxwxwxxwwwxwwwguwxxVevwwwxxxxxxxxxvfgwwvvwwwwwwwgwxxxxwfxwwwwgxwwwxwwxxwwwgwwwwxxxxggfxwxwwwwxggvvwwwhxxwxxgvvwhwxxxggfwgwffvvUxxxgvfwwVwwgxxxetdfwgwfwxgxxxwwwgwfwwwwxxwgggvvxwwgxxwvxwwxxwgvwxxxwxxxvwxxwxxwVttfxwgwxwxwgwwwfxwxxxvgwvxwgwxhxxxxwwxgvwxxxwvwxwwxxwwwfwwwwwwxxxwxxvwwwwwwwxwwwwvwwwwwxxwwgxxwxxhwwxwwwxwvgvwwxwwxwxwwwwwwwwwxxwwxwxfwwwwxwvwxwvwwvxgvwwvxxwvxwhxwwgghvxwxwxgwhxxxxgvwwxwwwhhwhxwwwxxwfvvUxhwwxwwvwwxfxwxghwgwwwggvwgwwwxwxwxxvwxxhhwxxwxwxwxwxxxxxwwwxxwwwwwxwwwwxxxwgwxxwfwwwxwwwwxwxvwgwgxwgxgxxwgvgwwwwxwvvxwwwvwvxvwwxxvwhwwwxwwwfgwwwwxvwgvwwxxvxxxwwwwwwewwwwwxvgwwwxwvxxxxvwvxwhwxwvWwwwxwgwxxxwfgwxggvgxhfxwwxwwgwwuwwwxwwwwwwwwvgxxwwwxwwvwwgxwwvxxgvwxxwwwwwggwwgwwgwwwwwfgwwwwwwwhgwwxwwwxwwwwxvwxwwwxxfxxwwwxvwwwwwgvwwwxwgvxwwxxggwwxwgxwxwwwwxgwwgghwgwwwxgxwxwwwwvxxwgvwxxwwwwxxxgwwgwwwxxwhwwwfgwwwwxxwwwgwwvwwWwgxwwwgxwxwwwwhwwwwwxxuwwwfwxvwxwggwhvwwwwwwwxXxwwwwwxwgxvxwwwwwwwxuxwwfwfwgwwvwwwwxfgfvvwwwwwgvuxwwwwwxgwvxwgwvwwgxfhvwvwwfwwvgwvxxxwwvwgwwvxhxxhxxwxvwwwvwgxgwxgwwwvxwwvwwwhgxuwwwxxwgwwvxwwwwwxxvxgwhxvwuwxxxxvvwghvvwxxxwgwvwfwwgvxwxxwfgvhwwxwfxxfxuwwvxwwwwxvwgxvxvxgfxwWwwxuwgwhxvgxwwwgxwwxghgvvwwggwwxxwwwgwwWWwxwxxhwxwxwgxgwwgvwgvwwwwwwggxhxwwxvvfhwgwxwxxxwxxgxwwwxxwwwxxvwggxwwxhfwwwehwwgwwvvuxgwWghwwxghwxwgxwxwwvxgwwwxwwwwwxwwxwwwvwgwwwwxhwwgwhwgwgfwwuwwwwwvwwwwvwwwgvwwwwgwhwvwwwwvxvfwguxwwwwwwwvwwwwhwwvwwwwwwgwwgwwwwxgwwxgxwxxwWxwxxwxxwxwgwgwwgwwxwwwgwxwfwgxgwxxwfhuwwwwwxwwwxwwwwwwwfWwxwwwWwwxwxvgxxgwwvvwwwwgvwwwxwggfuwxxwxwwfwhwwwuwxwwwgxwxwwxxwgwwwwwwwfwvwwxxwwwwggxwWwwwvxwvwxvWxwWwwvvgxxhgwwxfxwgwwxwwxggxwxxwxxfxhwxwwwxwwgwxxwxwwxwwxwxxxwwwwwwwwwwvxwwvxwwxwwwvvvgxggxwwWxwgvxxxxwggxwxwxxuwwwvwwuvxvwwwgfwwwwwxxwwwxvwwxwgxwxwxwxxwgwwvxgfwwwvwvxwwvwwwwwgggxwwwvwwvwwwxfgwwwwwvxgxwxWwWwwfxxxxuvwxwwwfwwxwhwWvwvvwguwwwxwxwxwxxxxwxxhhwwxgWvwguwwvxxwwuhwggwwwwwhwwxxwwwwwwxwwwwxxxXhwxwxvwwwvwxxwWwwwgwwgvxwwwxwwgwwxxwxwxxwxwwwwwxwwxwwwvxxgxwwwwwwwgvxwxxwwwhwgxxwXwwgxwghvvwxgwwxhwWwwvWwwwxhgwhwgwwxvwvxwxwhwxwwvwxxwxwWwwwwwwuxwxwwwwwwwwxxwxwwwwxxhwwgwwvwxwwxxxxwgwvXxxwwwwwwguvgxxwxxwwxwwwwwwwwwwwwwhWuwwwwwxxwwwxgvwwwwwxvvhgvggvvwwvwXgvxwwgxggvvvwwwxxwwhwwxwwwwxxwxwxwwwwwxxxxwwwwwwgvwwwwwwxvwxwwwwwwwwvxxxwwxfvwgwxvwwxhwxgvxXgvggvvxwwvhgvxxwvwwxggvvwwhwxxwgwwwxF5StwwgvfwwwxhwgwgwwhxhxxwvvwxhxhwwxhwwwgvwwwwwwvxwwgwxwwwwxwxwxxxxwwfxgwgwvwwhwxfwwwwwvxxwwwwwwgwxxxfwwxxgvxwwwvxwwxxwvwwxxwwwwwxxwxwxwwwwxwxxxwwwwwwgvwwwwwwgvwvwxwwwwxwwwwxwvwwvwxwwxwwwxwwxwwwwvwxxvxwxwxwwxwwvwwvwvxvwwwwwwwvxxwwwxwgvwwwwwhgwgxxwwwwwwwgxhhwwwgwwvhwxxxwxwxwxxxwvvwwvwxwwfwgwwhhwfwxwwxwwwwwwwwxxwwxxgvxxxwxwvwxvgwwvwwwwxxwwgwxxxxwwwxwgvwwwwwwxwwxwwwxwwwfwyvwwwwfwwwwfwwvwwfwwxwwwgwwwwwwfwxxxwxxfufwwvvvwvgwvvvwvgfvwwwwvvvwwgvwwwvwvvwwwvwxwvvwwxxxwxwvvwvwvvwwwwwvgwvvwwwwxxwvvwwwxgvxwxwxxwuwvwwwvwgwvgvwwvvvwwfwwwwwvwwxwfxxgwgxwxwxxxxwxgxwxwwffuwvfvvwvgwgvvwwggvwwwwgvvwhwgvwwwwvvwxwwwwgvwgwxvwxxxxwwwgwwwvwggwxwvfwwwgxvgxxgwfwxxwwwxxvwhxhwxgwhhfxhwwugwwwvvgvvwvwwwwwvwwwxwfhgwxvwwxwwxvwxgwxfwxxxwxgwxwxwfvvfgwvehguwvggwewwwwxwugwwxxhfwwwwwxhxfxwwwwwwwwvvwwwvvwwwwvvwgwwwwwwvwgxxwvwwwwwxwgxwxwfgvvvfwvgwvwfwvvvwwwwwvxgwwvwwxxwwwxgxgxwwwxwhwvwwxwwvwwxwvwwxxxwwxxwwgwxxwwwfgwwxwwwwwwvwvwxwxvwvgwgwwvwvwwxwwxwwfwxwgxwwwhwxfgvgvvwgwgxvvgfvwwwwwvfwwxwwgwwxxxvxwxwhwwhxxwwwxxwvwgwwggwgwvfwwxvfxwggwfwggwgxfwwwwxwwwggvwwwxwwggggwwwxwxfwwwwvwvwxwwwvvgwvwwgvwwxxwwxgwwfwxhxwxwwwwxxxvwfwwxwgfwwwvgxxxwwwwwvwfxwwvvfwwwgxgwwwwvxxvgwwwwwfxwvvxgwgwwwwWfvwwvvvvgwggvhhvwwfwwwwxwwxwwwxxxyhxwxxgwvwwwwwwwggwwwwwwwxwwxwwwwwfgwwwwwvfvwwxwwxwwwxwgxxwxxwxxxwxwwwwwggvwgwvwfwwWgfhhgggvwwwxwxwwxwxxhxxywwxxhVewwwWfwffwxxwgwWwfhxwxwgxxfwxxxhwwxxxhxwfwvwwxwfvwxwwwxxwwvwwgwxxxxxwwxxwxxxxxwwvvwxxwwwgvhxwvvxwwxxwvwgwwwxxxxwxwxxxxwwwwwgwwwxwwwwgwwwxxwwwwxxvwxxxvvgvvwgwwwwwwxxhxxwxwwxxwwxghxxxxxhxxxxvxxvwxwwwwvwgxwxxxvwxwwwwwxwxxxxwwxxwwgwwxwwxwxgxxwwwxvwwwxwxwwwxgvgvhxwwwwwxggwwxwxxwwxwxxwgxxxxxhxhxxxgwggwxwvwgvhwxwwxgwwwhhwwwxwxwwxwxxvxxwgwxxgxxwvxfwwxwxgxxwwwgwxwxxxxwwgxxwwxxxvwwwwwwwxxgvwwwggxgxwwvwfxwwxwwwwwvwwwxwgvwwwwwxvgwwwwgwxgggwxwgwvxwwwwwwvgvxgfvfgeevwgvvwvewgvvwwgwwwwxwgWeufgvvwwvfxwwgwwwwwwhhwvvxwfugwgvwgvvwwffwwwwvwgvwvwgwwwxwwuwxxwxwxxxwgeeueevwWutvwwwvvvwwgwfxwwxwgwfwewvvwwwwwwxvxwwwwggxxwvvwwgUfvwggwgwvwVwvwxvgvgxxxgGeuWvwwhwwvxwggwgwxwgvgxxwwwfWvfwhwvggwexgvvwgggxgwWxgwvxhwvwwwwwwgwxgxwxXgxxgxxwxwwfFeueewfVvvwwwwgfevfwxwwwwwwxwUvuwvwwwxwwvxxvxwwwxxxwxwgwfgfvgxxvggxgwxWvfxgxfxvgwxwwvwwvvgfVUxwxgwfwwwwxwxgfwxxggvxvgewgwvvwWgwwwwgvuwxwvwgfvwwwwvxgvvwwxwxwxwwggVevtvvefwwwwwveuwgwwwxwwUutvfvfwwwwwgwwxwwwgwxwwxWfvWuwwwetvwhvvwVfvvxwwxxwwwxxwwxxghwxUuuwvgwwvxwwvvvxgxwwfwxwwwewvwwwxxwxwxxwvxwwxgxgUUeevwVvuwwxwuvvvxgwgxxwxwwVvvgwvvgxgxwwfxvwwwWwwwgvgvgfefwhwwwxgwxgvvwXgwwwwwhwwwgwgVWFfxxgwgvvwxggwwWWwhwgwFevfvggvwwxwwuvxgwwwvxhwwwvwvwwwxxwwwwvwwxfxwgxgggfvwwwvwwwxwwgvwghvwwwxgvxxwwVxvvwxwuvwGxwwwwtwwwwwgwwwvvvwwwwwwwwwwxwwwwwwwwwxwwwvwwwevggVtwvvvfgVvwwWwwudvfvgwgvvvwgvvwwghwfwwwwxwwgvwwwwwwxwfwvvwwwvwwwuvvwxwwwwwufxwwwuvgwwwwwxwfvvgvvvvuwwgwwvWvuwwgfwwwwwwfvwwxfgxwwvxwwwwwwwgwwxwwvwwwwvwwwGuvfwgwgUuwgwvutffgwggwwgvvwwxxwxvgwwwwhwgggwwwwhgwwwwgwgwwxggfevgxvWwgwGxxxfwwwwxxgxxhwvxgwghgwwXxuxwwwgfwvwwvvvwwxxgfvwvvwWvgwwxggwvwvwxwwwwwxwwwwxwwwwxxwwwvexwwWvwvVxwwwwgwWggvwvvvxwwvwvgxwwwWxthxxwwxwwxwvwvxwwwggvwvvwfgwwgfvwvwxwxwwwtuwvwwwxwwuvwwgwwwwxgwvfwfvwvwvwwxwgvwfvuvWwwwwwvwwxgwgxwxxxwwwwwwwhfxwwwwwwwwwwwwvwwgwgwvwwvwgvwxhxwxxwwxxhwwxxvwwwvxwxxwwvgwggWvwgwwwvwxwwxwwwwvxgfvwgwwvuwwwwwffgfxgggwwwxvwguvwwwhhwwxxwgwwghgwwwwwvwwgvvxwvfvgfWxwxwwWwXxufwwwhwwwgwgwxwHxuhvwwxwhwwggxwgwxwvxwwvwxwvvwwfWgvwwgwwxwxwwwwwwwxwxgwwVgwfwgxwvwwgWxguwwwwvwgvxwwhwwwxxvgxvwxuwwwwwwwxwfwwgwgwgwwwwwggwwwgfwgwfgwfvwwgwwwuWhwgwfwwwxwwgfwwwwgwxgwwgwwxxwxwwwwwxfvgfvxxgwwwwxWwxxfwwxhwwxvvuwvwwwwwxxxwwfwvWwwwxgwwfxfwwxwwwwwwvwhWxwwwhwwvwvwwwwwugwwwgeWvxwxwwvwxwvWwwwxwxgwwxxxwwwxhwwvxwwwgwwwwvgvgxxwwwxxwwwwhxwwxxxwxwwxwwxxwxwxywwvgfwwxwwxfevvwxwwwwwhggxwwxwxvwwxwxwwwxwwwgwVxwxxwwwfxwxWxwwwxwwwvgegwwvwVgxvhxwxwwhffxxwwxxwwxwwwxguggfhwwwwxgxgxwwwwxwxxxvwegwwwwwxwwvVvwwwwwggxxwWwwwxwwwxxwwwgwxhhhgwxwwwwwxwwwwxwuxgvwwwxwwwwwwxxwwvxxwxwhwwxxxwwhwxgvwwwxwwxwwxwwxxxvwwwXwwhxxxvfvwwxwvwxwxVvfgxwxxwwwwwwwwwxwxxxwwwxxhxvxxwwwwWggwxwgwgWxxhgxwwwxxwggfxwgwwgxWxwxxgxgggWvggwwhgwwxxxxxwwxwwwxwwwwgwgvxxxxxwxwwwwgvwwwwhwwwwwwwgvwxWvwwxhhwxfuwwgvguwwXxxgxWxwxvwxwwwwvxgwwvwwwgxwwwfwgwwvwwwvwwvwwgvwwwwgvwxvvwwgvuwWWdvwwfvgeevgxwvwuwwxwgwwfvwfwxwvwwgwvwxvxwwwwfvxwwewgffwvwvWfwwwwwxxwwwgwVwvwwwwwvhwxwwwxggUUfewwfvewvhwveuvvxwvgwfwgwwwWVvuwwwxwxwxwwwxwvwwwxfgfvggvwWWevwwwggUfvwwhwgfvvwwwwggvwwwwwgwwhgVgwwxxvwxxfgufwwgfwwwwxhgxgwvxwvWwwwhwhwwWfvhwvwwxgxwwhgvwxhwvxxwxwxxgVevuufwEeuwwxwwfTgwwwwxvfgvwwggvvwxxwwwwwgwwwwwwvvvxvgvghgvwwwvgwxwfgVffxwwegfeEwwUwwxvwwwwwxxwgwxxwwgxwwwfwvwwvwggvwwgvwVwwxgVvwggwvxxwwxgvvgwvwwvwgwwwwxwxwwVVdveffvVuuwfwwuefvxwxvwwwwxwwfvuwwwwwwxxxwwwgxxwgxwwxdevfwxwxxfgughwwxxwVwuxfwWxxxggvwxvWwwxxwefdvuwgvgwwwwfwfwwgwwwwxwwwxhxxwwxwwwwwxwgwgWUfvvvwwWvvgvxwweuvvhwvhvvwwwwggEguwxxwxwwxwxxgwwwwxwgxwxxxwggvhgugggwwwwwwfvfhgvfWVVxgfwxhwgvxwgxgwxxxwvghwwwwvvwgwUuuwvwgugxxwvwvwwhgwwvwvxwvxwwxxwxwwxfxwvxxwgvggfvvwfwxxwwwxwgwwxvwfhwuWtwwwwxwwxwwwxwxfewwxwwwxwwxwwxxwwwfwwwwxwwxxxwwggwwwwwxwxvwvwxwwfWwwgffvwwwwfgvwwgwvWwxwwvvvgwwwwxwvwwwwwwwxvfwwwwwwxwxwxxxwwxxwwuVwwvwxxxffvwxwgwxvwwwwwxwxwxwwxxgwwgvwgWvvxwwfvvwwwggvwwxxwfvvwxxwxxwwxwffwwxwwhgwffffxxwwwvWxigxgwvxxwwwwvWhwvwwwwxvgvgwwwxxffvwxwwwwwxwxxwwvwwxwwwxwwwxxgvvvxwwwgwwxwguWxwvwwwgwwxwxwxwwwxwxwwvwwwwxwwvfxwwwwwwxwxwwwxxwxxwwuWgvwwgwwfvvgxxwgvxxxxwxxwwwxwxwwwwwxxvgvgxxwxwwxwwwxgwwwxwwxxvwxwxwxwwhxgvwxwvggvxwvgvwvwwxxfvvgxwwvwgxwwxxwwxxxwwxxxwwwxxwwwwfvgwxwwhxwxwguWxgwwwxwwwvwwxxwxxwgwwxwwxwxwxwwvxwvwxwwghwwwxxwwwxxxwwwxwwxvwxwwwxgvxwgwxwxxwxxwxwxgwwvwwuxwwwwwwgwwwfgfwvwvwwxwwwggwwwxwwwvwgxwgwxggwwgwxxxgwgwXWuwgFfvWwwxgGtfwwwwWVeggwgWgxfwgwwwgvvgwxugwvhvhxwxxxwwgwwwwgvwvwfwfwxfwwgwwxwgvWwuwvwgwxwgxwxwxwwxxwxfgewgwvwvwwxxwggvvwwwwwwwgwwwwwwwwghwwxxwwwxwxfgggggvWVewfvwW7ugwxwvWfUvxwvgggfwwwwwfvfxwxffwuwuhvxxwhwxxwwwwwwfvgWwwggwgggxxgwhv8hHWvvvwwWvxwgxxwxxwWhhWwwxwhgwwfgfwWwvvfgxgvvvhvvvwgxwxwwwgwxwhuwxwwxxwxxxxwxvwwwwvvvgxxfWxwgwxwwggfWgGGwuvghwwvwwgxxwwxvggwwwwwwwxxwghvvwgwwgfgvwwxfvwwgWwwwwwgvxwwhxweVevfwgwvwhwwxwxvxwxwwwwvVVwFvvxfvfgwwwVffgWwggwxgxwwxvwfwXwwwwxwwwgxwxgvwwwghwwxgWvgwwxwxgvvhhwxvgwxwwwwxwxvwxxwggxxwxxxxxwwhwxgxvxwvwxxwwwxvxwwgwwwwwwwwwwwxgvwwwwwxgwwwwwwwwwxfgfwvvwfvwxwxgfgvgvvwwxxvxxxgwvxwwwxwghxwwxwwxggxwxwwxwvfwgggwWhwwxhwwgggeGxh8VvvgvXvwwxghhwwggwwwvwfgxxwgXwwegxWwxwwxwwewxvhvwxxwwxvxwvxwxgwwvvxwwwwxxwvwvwwxxvwwggwgwwwhWvwwvvwvwvwgwwwhvwxgvgvhxwxwwwwwwfwwxxwwxwwwwxwwvvwxwwxwwwxwwwgguvwgvfvvwxwvxwxwwxwwggvfvvwxxwwxwwxxxxwwgwwxfgwwxwwwwwwwwxxxxwxwxwwwxwwxxxxvgvfvfwwwwxwvwxwxwxwwwgwxxwwxwxwwwwwgvwwgffvfwufvgwxwwwwwwwwvxwvwugvvvxwxwwxxxwwhwxxwxwffffffwhwvwgwWwwxxwxwxixvwggwgwWwwxwwwwxxxwhgxuwefvfwxxxwgwwvwxxwgxxwwwwxxwxxwxxxxxxvvvgwWvWwvwwwwwvxxxwxwxgxwxwwxxwwwwwxwxxxxxxwwvwwfgxwxwwwwwwwxwwwwwxwwwwxxxxxxvgvfvvvwxxvvwxwwvxwxwxwxwwwwxwwxwwwxxwxwxxwwwxgvgvxwwxxxxwxwxwwxxxxxwxwvwvwwwwwwvxwgxwwwxxwwwxxxwwxuvufvvvvwxvxgwwxxwgwxxxwxwhwwxwxxxwxxxxwfgvwwWvWhwwxwwxwwxgxwxxwwwgwwwgwxxxxwxwxwwxwwxwwxvwwwwxwxxwwxxvvxxwggxwxwxxxgxgxvwvvwwwwvwxwxxwxwvgxwxwwwwxuwwgvwwvwwwwvvwwwwwwwffvwwwwwwwxvvwwvwvvwwvwxxfggvWWsgWVewuUfgggvwwxgfvwxgwggfvwfwfWffvvwwwwwWwhwxxwvwwxwfwvgwwvwwwvwwffwxwxgvvwxgwvwuuwwwwwxwwffvwvvvggfvvwvwuwhggvwwwvwxwxWwvwxwhxxwwwwwwvgwwgGtfgfdvueVvXWuwwwwwuwwgvwWgfwWwggvvvvwxvwwwghwxxxwxwwwwwwggvfgvuwg8xwwxxxgwvwgHhugvvxxwWvwgwxwwwwWhhuxxwhwvwfVvwvvvwgwwwvwwvvwwwwwwwgxwwwwwxvhwwwxwxxwwwxwxgvvvgfvWwgwvuvxfWGgtwwxwhwwvwwgxwwwgvvghwxwxwwwwwgvwvwwwuvwvwwxvvgvfwwwwfvwwwxVwwwfgwwwwweegwgxvwwwffvwvgfgfvwwvgwvhgggwwxxxvwvxwwvwhwxwwwwxggwxwwwvwvvvvvwwxvwvxuvxwxwxwwwwgwvxxwwxwwxxwxvwxuwewvwwxwwxwvwwvwvhxwwvwwgwwxwwvxgwveeweffvffvvwvxdvvWvwgwwwwxwgwfvwxwwhwxwwwwxXwgxgwwxwgwfgwvgVvGwwhggvgguwh8hewgwxXwgwxgwgfwgwvXwwxhhxvwwwwvVgvvwwvwxwwwwvwvwwwwwwwwxwwwwvgwwwwwxwgwwwwwwvwwvwwwwghwggwvxwhguwvwgvwwxghgvggxwwwgwxxvwgwwwwvwfwwwwxgxwgwwwwgwgwwgvwwxwvvwwgwwwwxgwxxffgggfUvWVuvvvfgggvwwhwwwwwvwwwwggvvgVwwwgxvwwwwwxxxwhwxfvvfuwfvwwVwwwwwfvwwwwwhvwgxwwwevwwhwwwxwwxvgVevfgTwTuewvvfvWfuwwwwxwwwwwvvvvxgwwwwwwwwvgwxwwxwxggwvwgVVvWFuvguwwgWgwxxgwwfwgwwgwfwwwggwxwvxwgfwxwxgxwwwwxfWvfwggwwwwwwwhwgwfxgwWxXghwwwfWghgvwwxgxwhgwwwhgwwxwxgUUVvugfevwwwfgfwewxgwgvwvwwwueuvwwxwxvwwwwwwwxwwgvgvgfefwgwgvefThgvwwwVwwxfwUwwwgwwwvwxvwwfvwwwwxwwwwwxgwxggewgvwwvggvwwggxewwxxwhwxgwxvvwxwwvvvgwwwwxwwxwWfUvVvuguvvvvwgwgwvwhgwhvwwwgwvTugwgwwwwwwwxxwxwwxvxxwxfughfwwxxxFvexgxwwxxwxxeuwvxwxxxwxwfxwWgWhgvwxUuuwvgwwuxvwvwvwhgwghwxwvwvwwxxfxxwwxxxwwgwxvvVFevWfegeuuwvwwwVffgxwxxfwwwwxwfuvwwwwgwxxxgxwwwwxxxwxxwxwgggwgffgwvwfVWehWvgxghgxwwwxfvwxwgvwvxgxwwggwgwxvhwwwxxvwVdfgffwwvwvwwwxuwhgwwgwwwxwwwxwwxwxwwwvhxwwwxxvgfvvwwgwwxwfwugfwwxwgwutwwwwwxwxwVwwfxwxwwwwxwvxwwwggxwxwwwwxwvfwwxxwwwwwvwwwxwxwxxgwwgUuwgvwvwvwvwwwgwvwfxgwxggWtwdeggwwwwwfgwvvgwwxgwwwwwwwwvfwwwwvuwwwgvvggwfudwwwwxvfwwwxwwwvgwwwxwwxwfvvvfffvuwwwvwwwxwfgwwhxwvfuvwwwwwxwxvxwwxwwwvxgwwxwwvwvwwwwfuvggvwvwwvwevgwwwuwfwgwwxwFuvdegvwvwwwwhffgwwfhwhwvwwxgvVgvfwwwwxwvgwwgwwhwVxxgxwxfwwwvwwvGwWwuxwghgwxgxvxgwwfgwvgfwwwwgwvfwvewWwgvggggvwwwwxwwxwxwwgwwxwxwwwxggwvxwwWwvxfwwwhgwgWwuwwxwwfvgfWwvvwWwtwxvxxwxwwvxvwvxwwwgwwwwwwvuxggwwWwwedgwwxvvvvwwwvvxwwwwxxwhwwgfwfwvvgwwwwwfwwvvwWwxwwxwwvvwwvwvwwwwwxxxwxwfxxwwxgwvgwvvwxwwwwwwgxxgwxgwwwwvwxxwwwxwvwhwxxwxwvvwwwwwvxwwwxxvvhVwvvwxwwxxxwwwvgfvwgVwuuvxwwwfgvwgwggwhggwwwguvwwwwhwwwxwwwwvwwggwxwxwwvgWgwwwvWwvgxxwwxwwWwgxfwxwxxwxwfgwWfgwwGwuhvxwwxwwhwwwxgwxwxwvgwwwwxwvwwwwuXfvwwwxvxwvwxwwwxxwxwgwvwgwwxgxwwXgwgxgwwhwgXxWvwwxwwhvwgvwwwhgxgwwvvxuwwwwwwgwwvwvwvwwwwxfwwwwvwwvfvvwwfwwwwwvxxwvwvxWuuwvvwvwwgGtfwwwwwwegghgFfvwuwffwwwweewVwvwVwxwxwvvwxwfgxvuuufwewwwwwwwvwwwwwwvvvwvvvvwgvxvxwwwxxvUfwftwvwXfevfwvwevwxwgvffvvwxxwwgwwwwvwxwgwwxwwwgwfvfggvwfvvwwwww7uewgwgvVgwuhwVeuvvvfvvxeugexwvgvwwxvwwwwwwwwfvwwwwXwgwfxxgxwWXxfgVvvwvwgvwgxxwg7XxdxwwwxgwvvfvvgfwfwwwwgvgfwwfvxxxwwwfgvvxwxvwhxxwgwwgxwxwwgwwwfvvuwfxxhfwfuFWhcgwfxvwwxgwwvwgwvgwwwgwfvxwguxwwwvhwwwwvwwgvuuwwwvwwvwwwvwvwvvvwgvwxwwvwwgwxwwvfuvvvwwgwwwxwfvwwwwwwwxxwwwwwwhhwxwwvwwwxwwxwwxwvvwwwxffwgxwwvxwwwwwxvwwgxwgwwwwwwxwgxuvvwwxxwvwwwvwwwwwwwvwxwwwwvwxgwwwwwwwwwwwwwwvfvvuxwvxwhfvgwhwfvwwwxwfgvvwwxXxxwxxwgxwwwxwgwxxwwwfgvwxvWwgwxwwfvVwHxdwxwwxwwwhwwwggxvwwwwVgwwhwwvghgwvxfuwxhxxewxvgvwxwxxwwxwwxwxxxwvgwvwwwfwwwwwvwwwxwxghwwwvwwxWvvwvgwwghwxxgwxwwfwvwvwxuxwgwgwxxwwwWgVxwwwvwxwwwwxwwxgvwxwwwwgvxxxgxgwwwgwwwwgvwwxwwwxgvwwhwwwvwwwwwgvwwfvvwwxwwvwwvwxxgxxwwgxwwwwgvXwwwwxwwxhxwxxwwwxwfwvxvvhxxxvxwwgwwvvwwvwwwgwwwwwwwxggguuwxxwwwwwhxXwwwwwgghwgwwwwgwhwgwxwfhwwwwwxfwwwvwxwvxvwvxWuxgwxgwgwxxxwxwxgvwwwvvwwwxgxgxwxwxxxwgwwwgwvwwwwxhxwwxwwxxxhxxwxwgwwwvwfvxxhxguxxgxvwwwhgwvwuvwwwxvwwvwwwwxwwwwxwxwwxwwvwxxhwwwWxxwxgxVxwwxfwvxWhvxgwggvxgwxgwwwwwwvwxxgwwwuhvwwwvvwxggwwwwxxwwwxwgxwwgwxwvwwfwwwuwxwvvwxwwwwxgwxWwvwwwwwxwwwxxxwhwhwxxwwwwwxwwfvxwwfwxwwwwxwwxxxWvxwwxhwwwxxvxxwwwwxwxwwvwxgxwxwxwxwWwggxvggwvwwwfwwxuxgwWvxhgxwvwwxwwwhvwvgwxwxgwxwxxxxxhxvwxxwhwxwxwwwvwwxXxhhxxwxWhgxxwhxgwwwhwWwwwgxgWwhwwxhggwxxwwvwxhxvwwgwxxxwwwwxwgwgvvxxwWvxwwwwxxwwwgvwvwwwwwxxxwwvgwwXxwxhxxxxxgxwvgxguXvwhxwwxvwwvwwvwggwxwxgwwgxwwwxwggwwwvwxwwgwwwwVvvvgwfwvwwwvwfwffvwwwwwfwwwwxxwvgwfwvwwxwwwwfwvwwxvhwxfwwwwwvwxgwgwgwwwwwvgwwxvwwvwgwwwwwxggwwxxxxxvgvfwvvwxxfwvwwwwwhwwwxwwwvgvvvwwxwxhwwvvwxgwxwxvwwgxevvgfgfwvwwwfwwwgfwwwwwwgfwwwxwvgwfvwwwwxwxwfvwwwghwxwxxwwwgwwgwwwxwwwgwwvgwxhwwhhfwwwfhwvghxxwhgwgwwwwxhxxvgvfvwwxwxwwfvwgwwwwhxwwxwwvvvxgwwxwgvggwwgxwwhwwvwxwwwfgwvfwwwwgfggwfwwwfwgwfwwwvwwxhwvgwwxwvwvwwwxwxwvvfwwwvwvgvxvgwfxxwvvwxvwwwwwwwwwxwwwwxxwxxwuwvwvwwwwvvwfwgwgxwgwxwxwvfwwvxfxxvxxxxgwwwwvxwwxwxgxwwxvwwwfxxgwwwxxxxwggwwxxxwxxvxwxxwxxgxwwwvwwxvwvwxwxvgwwvgwxwwgvxwxwxwvwxvwvggwwwxxxugwwfgwwwxxwxgwwwgwgggwxwwgwfwwwwwxxgxxwvvfxgwxwxxvxwxwfffwWwvfxhgvWgwfwwwwghgxwwwxhhWxgwwwwwwxugxwxwwwwwxwgwwvwvwxxwwvvgwwgvwwxxvwxwxwvwgwgxgxwxwwgxxxxvwvvwvvvgvwgvgwvggwwwxxxxwxwwgxwwwwwvwwgvwwwwwwgwvvvwvwwgvggwvwggwwwwwgwvvxwwvvggwvwwwfgvxgvXxwwwWuwwVefwvwggvvwgwgwvvwwgwVevvvwUeuguwvwfwgxwwwhvgwgwwxfvvgUTxwwwvvvxgEUwggfgvvuXgwwwwvvUfffgwvvxugvgxgwwwwvgwvUvvewvvwwhWffvvfggvwgwxWvvvwvwvwgvwwwwvxhwxfgwgwwwwwvxwxwggvvwVewvgwWuwwwgvfvwwwwgwVefgwUuevvwvggvvwwwwhugwwwwxgvwwggfUfffwwvgwggfxx7wgwgwwwwfeefwwvgwx7wggfwgwgwwwwwggfhwwvvwvvfvfgwvvhwxgUvvVfvvvwwWwWxggvwhwgvwwwgwvwxvwfxvwwwgwwwvwwwwwwffgvwwvgwwfwfwggfwgvwxwwugvgxwwvwggwWeVtwwghwwvWeVtfwwwfwgUTwwwxfwwgEUwggffwwugvgxwwwfwwfeefvhfwwuXgvxhwwwwfgwwfeUwfwvxfwwfvfgffwvhgwvfgwwvxWwgvwwwgwwgwguwwwggwwwwgvefugUvvwvwxVufvuWuWvxwxfwfuuwxwwxXwggfwwfvvwggfwwxfvSwwegwwvwdwwvfvvwwwwwwvwwhvwwwwwwwwwwwwwvxxwxwxfwvwffvvfvwxhfUewfwfvfwxwhwggfgwwxgwgvwwwwvwgWxgwWwgwwgwwwwwwwgvvgwgvhwwhwggggwggfwhwwhwwvwgvxgwwvwwwfGeVuvwwgXwwwGeVuwvvwfvxdwwvxgwwwwSwwefvvwwvwwgwwwxhwwwwwxwwgwwwwgwxwwxwwwXwwwwwgwwwwwwwwgvwgwwwwwwwwwwvhwwvfvvwwwwvwwwwfvvwuxwwwxxwxxwwwwwxxxxwwxwwwwwwwggfwwwwwwxwwwwwwwxwwgwhwwwwxwvxvwwwwwvwvwwwwxwwwwwwxwhwwvwwwxxgwxgwgxxwwwvxwwwvwgwwgwxwxxwggwwwwwxvvgvwwwwwxgwwxwwxxwwwxwwwvwvwwwwwwwgfvxvxxhgwwwwwxwwxgwxwwxxxxwxwgvhwwwwwgwxwwwwwwxgvwwgwwxwwwwwwxxwxxvxvwxxwgwwhxwxgwxwxxwwwxvgxwwwwwwwwggxgwxwwxwwwgwggwhhwxxxxxxhwxxxxwxxxhxwxwwxwwwwwwxwxvgxwvwxwxvfvxwwghwwwwwwxxwwxwwxxxwgxxvwwxxwvwgwwxwxvwwgghhwxxwgxwwvxxxwwfxwxxxwwwwwwwvxxvwgxwgwxwwwwggwwwwxvgwwwwwwwxwwwxwwwxfxxwwvvxwxwwwvgxvwwwwwgvxwwxgwvwwwwxxwwxxwxhvwxgwwvxwwwwxwwwwxvxwwwfwwwwxgxxfwxvxwhhwfwwwwwvvwxxwwwvwvwwwwghhwfwwwwvwwvwxhwwwxxgxwgwwgwvwgwgwwwwwwvwwgwxwxwgvxvxxgxwgxxxwxwxgxwvwxwwhxxwwwgwwxxxvgwwwgxwxxggwhhwxgwgwwwxxxwhhwwwgwxxxywwwvwwwwvwwwwgwxwwfwwwvwxhhwgvwwgwxwxxvwwwvvwwgxvwwhwwxxwwgwwwxvgwgwwxvgxvgwwxxxwwwwwxwxwxxxuwxwwgvwwgwwwwwwwxwwfxwwxwwwxwvvxgvwwguVvwvWwvwwwwxwwwwwxxwugvwwwxwwwwwwxxxwwxggfxwwwwwwxxxvfvwxfwwxwxuwxxhwxvfvfvegwwwwwwwwwxhwvvvwwxwxwxxwwwwxwxxwwxvwfvwuWwgfwwwfwwvfxwhvwwgwwwwfvwvwwvwwxxwwwvwwxxhwwvgvgvwgwwxwwxwxwxxwwwxxwwwwwwwxwxwwxxxwxwwywwvWgfvwuwwwwvwwwvwwwwxxwwxffwwxwwghxwwwxwxxWwwwwhwwwwgexwwwwwwfwgvVxwxwxwxwuwvwwgVwfhfxhwwhxggxwxwhwwgfvxwwwwwwhwvuxgxwwwwvwxxvgfefvvwvwwwwwxwxwwxxwwwwwwwwwxwxxwxxhgxwwxwwvwvwwwwwwwwwuxxxwwwxvxxxwwwxxxwxwhwwwwwxwwwwxwwxxgvwvxwwwwxxwwxxxgwgwxwvVwgvVwwwvwgvwwwwwwwxwwxuwwwwwvxwxwxwxxwwhhvxwwxwwwgWvxwwwgvwWhggfwwxxxwhxvxxwgwwgvWggxxvwxxWwgwvxvxvwhwxwwxwwxvwvwwwxwwxxwwwxxhxwxwxXwwvxxhwxwwwgwgwxwwwwhhwuvfuwgwggxwXxgxWwuxxwxwxwwwwwvwwvwwxvwgvwwwwvwwwwwwvvxgvvwwwgvvwxgwvwwwevwvvvvvgfUvxxwgwwggxgVtuvwgvwwxvvxuwvwwwgvxwwwwgvwgvvxvwfwwWfwwfvvxwwwvwgvwwuwvwwwwgwxxwwxxwfVdufvefevvwwwwwVwefwwwwwgxwwUuvwvvxwxvwwwwwwxwhxwvvffwgvvwgvwwwwgVVvxwwvgvwVxwgVuuwgwwwwgxwhfvggwwwwfxwxfgufwggvvwgVxwvvwwhgxwvWxgvvwhgwwwwxhgwxgwxwwgxxxvwxxwxwgVVugwvwutugwwVvewwvfwwwvgwwfewwvwwwwxwvwgwwgwvwxxxwwwgfxgufxgggvwggfgxgfvgxwxwwvwgwvwxwwxwvxxvVfUxfvwwwfwvxvvwvuwhvwvuvwvVvwwwwgvxwxvwfvvvvwwwwwwgwwwxvxgwxgUUWvvgeuvwVvewxwvgwxwwwxwevvvfgwxwgggwWwwvwxwwwxxVtguuwvxwVufgwxvxwwxfXgvwxxxxgxwwwwxwwwdvefuggwwxxvvvvwwwgwwxwwwvgwwwwwxwgxwwxfwwgwvgVevVwuvfwwwGvvVwwwwwwvxwxUtugwwwwwwwwxxffgwxgwxhwgxwwhvgvgxgvvwwwwwwwgVffwgXwwgxwhwwwwvgggwgxwhwxeFWfwuuwgggwvwxUuuwvggvwwxwwvwvwwwfhgwwhehwwxxxwwxgwwxvwwwvgfvvvwvvwwwxwwxxwwwghwgwwvvwxwvwxwxwwwVgvtWwwxtwxwxwvggwwwhxxwwwvwwwhwwwwwwwxwwwxwxwwwwwxwwwwgWUwWtvWftfwwgwwwggfgwwxvwghvwgwgwgwwwvvghgwgwwxhxhwxwwwwwwwwwwvxggvwxfwwwwwWhvxxwwwwwWvxxxwxwHfuhgwxwwwwxwhwfvwvvfwgwvwvwvwgwwgvwgWxggwgvwwxwwwwwxwwwwwwxwwxwxwwvwggewgGewWvdfwgVgwwWwgvvfhggwgvvwwfwgwwwwgggwgwwxxvhgwwwhhvwvefgwwgwwwvGwwwvggWxxxgxxfwwwwxwvgxxxwxXWxxgxghwxwhgxhwwwgfvgvWWguwwxwwvvvgwvwfwwvwwwwfgwxwxwwxwwvwwxxwfgwgwwxwxwwxgwvwVwwvWvgwVwvvgxwwWxgggwwwxwwvwxggwxwwxWGxwhvwwxwxwhxwvwwwwvfwxgwvwggvwwfggxvhxxwxwwwWwvwxwwwxwwGwuggwxwwwgxggfwfgffgwuwwxwwvwwxxvvgwxwwwvvWwvxgxwwhwxwwwwwwhvghwxxxwwwghwgwwvwwwxwgwwwwvwwwxwxwvvhvxwwxxxxwxwxhxhxwxxwxwvvwgwvwxvwwxwhWfvxwwxvwxwxhwwwwxwxxwwxwwwfgwvwvfgvwwxwwfwvhvgWWwxwwwwgwwwhwwwxxwgvwxwhwfxwxwwwxwvggxwwWvfvWfwwwxgwfwxXWwxxhwwwgwhgwxwwwxHWgxwxxwxhwwghxgvwhwvgwvwxvwvwwwXgguxxxwwvwwxwwxxwwgxwxwwxgvwxgwuwwfvwwwVvxWvwxgwwwvxgwgwwxwhgxwxggwwxwwwwvwwxvggwwwwwwwwwwwwwwwwwgfxwwxggvxhfxxxgwvwgwvvwwvwwvwwwwhwwwwwvwwwwvxxwwxwwwvwxvfgvwwvvvxvwvwwxxvvwwxwwxwwxxwxxwwwwwggvxwwxwfvhxfxggwwgwwgwwhvvwgwwxwxxwxxVevwgguwxwggWxxvwfwwfxwgxxwvxxwghhwwxgfgvwgxgxxwvwgwxwvxggwwwwxxxwwxxxwhwwwwfxwvwwgwxgwwwwfgwwxgvhwwwwwwxwwwwwwwhwwwwvvwwgwvwwwxwwwwwwwwwwwxwxxvgwwwwwxwxwxwxwxwfvvwwxxwxvxxxxwxxvwxxxvwxxxxxxwwwwwwwxwwwwxxxwwwwvwxgwwxwwwxwwwxwwwwxwwwwxhwwvwvwxwxwxwwwwxxxwxxwfgxxxxxxxxvwwwxgwfwwwxwwxwxxwwxxwxwgvgvwhwxxwghwwwwxxwwwxwxgxwwxvwwwwwxwwxwwxwxwwwxwhwwxwwwwxxhvxwwxhxgwwxwwwwwvwwgfxwwwwwggfwwwwwwwwwwwwwwwwwwwwxwwwwwxwwxvwvwwwwwwgwwwvwvwgwwwxgwvxwvwvwwvwxwwwwwwwwxwhxwwwvwvvgwgwwwwwwwxwxwwvwwwwwwwgwwwwwwwwvwwwxwwwvwwxwgwwvwwhwwxwwwwxxvwwxwvxgvwwwvwvgwwwwxwwgwwwwgvwwxwvwxggwxwwwgwwwwhwvwwwwwvwxxxxwwwxwvgxxfwwvwvwwwwwwwwwwwwwgxwxwvwwwgwwwfwxgwwwgwwvwwwxwxwwwwgwwgwwvxwwwwvgwwwxwxgwxwwgwwxxggxwxvgwwfxwwwwwxxxgwwfwvwwxxvwwwvwwgwwvwvvgwgwwwwwwxwwwwwvvwwwwwvwgwwwwxwwwwwwvwwwxwwwwwwghwgwwxxwwwxvxwwxwxwxgwwwxfxxwxvwxwwwwwwxxxhwwwfwwwwxvxwxwwwvvwgwwvwwxwxwgxwwwgxxfgwwxvwwwxwwvwvwxwxwwwvvwwwvggwwwwxwwwwwhwxwxgwwgwgwwwxwwwhwwxxwxxxwvwwxxwfwxvxwgwwwggxxwwvwgxxfxwwwxxxgwwhhwxwgxwhwwwxxwwxxgwwwwgxwgwwwxxfgwxwgwwwwwvvwwgwvwgvwwwgwxwwwxwwwvwxwwwwgxvgxwxwwwxvgwwwwwxvgwwxxxghfwggwgwgehgfxgvwgvwewwwwwwfWvwfxffwwwwWwgfwwwwwwxhxghfhETxfvffuuwxVewfVfVfvvwvwwfhgfgUvvwfvvwvwxgfvvwfwwgXxwggwxfvfxVefuuvxgfffwwwfuugwwgxVefvfwfvvwdgvvffvwwwwXdgvvxxfgwgefuuwfuuvwwwfvvwwwwvxhwvvwfvvvvxguwwvwfwwgwwwwwgfwwvwhgfxVewxgfffvvwhETffVefuuwvwwfhfvgfvvwfvvwXUvvwfwwgvwgxxxgvwfVfVfwwwwwwvffVe(wwwvXXfwvvwgwwwHgwwwhhUYffegvwefvvwfuugxhfuuwwwwvwwwwvvwfvvgwguwwwgwfvxgwwwxgfwwwgwwwwwvwwfwwgwvvwvwwfXXfwvvwXTEcwwWwwwhhUwfwwwHeVtwxxfUvvfwwwfhgfgxVefvvvhfvgwvvwfvvgwwWxVeUvfwfvvwdgvvUfvwwwwhdgvvhhwWvwfUvvwfvfwvxgfvvwgwwwwgwwwUvfwwwwxuwwvwvvxhfwwwwggvwwvwxfffvvwfvvwuwwfvvwHuwwhhUfvvwuwwgvhguwwXXfvxffwwwwvwxgdgvvvwfwXwgwfwfdgvvvwvvgwggggwgxwwwwwwWwgffvvwffvwwgUvvwgwwwvxgwwwUfvwxhuwwwgggwwwxfwwwgvwgwgwwwwfwwgwwwXwwwfwwghhUwwwxHeVtwwwhfwwwXXfgwgfwww8TEegwgfeewwwwwXdgvvwwgfvwggfwwwxxfdgvvwggvvxwwgvwggwgxwwwwxhxxxfwwvwxxYffewgwwUvvfhhwwwvwxffwwwwwgwwfeewwwwwtwwuxwwgvwwvwwxxwfwwwwwwxwwwgwwwvwwwfxwwvxvgfvwwwxxxxwvffwWsewgfvvVvvggvxgwwwwwwWwhwVeuVguVfvgvwwgvvxxgwgxxxvwgwvwwVwxWgwvwwvfwwwwWfuhhwwwwwvvwvvgwxwwgvvxgvwxxxxvgfvvgvffwxxwvfwwfwvwwwwwfvvvgwwwghwwxxwxxgwxxxwgxwwwwvggGtfwhgvwewvxWuuwwwwwwvwhvhgfdvVweefwfwxwxwuwwwgVwwxxwwwwwwwwgffvwxxwWwwwxxgwwwXxXfvvVghv7vxwgwwwwwggxXFxxwxwvvvfUwfvefghwgxftwwwgewxXxgwgfvfgxgwwvxwwwxwwwgwwxwwwwxvwvfgwWfFxxhvwfwWfhW6fxwgwgvfwgwwggxwwwwgxvwugwwwwvwwwwhgwwgvxvwwwgwWwuwwxwvgwwwvwwvgxgwgvgwxwxwwwxvgfvfgvwwvxxwwWhfwvwhxwwfvggwvwwxvxwwxwxwwxwwwwwxgffwwwwvgwxxvxxwxwxwwwwvwvwwxxwwxwxwwwxxxgwxvxfwuewvxxwxvvwxwwwwxwwwwgvwwxwwxxfxwwvxwxvWfvfwvwvwwxwxgwvwwwwwwwxxwwwwwwgwxhhwxwwxwhwwxxwxwwxfvgwwgfVwxxgwwxwxhgWwxHFxxwwxxwwxwhewgwvxggghxwwwhwwvwwwwvvwWvvxwwwxwwwvxwwwvxwxwwwvwwwwwwgxwvwwwwwwwwwwwxxwwxvwwwwvwgwvghxwwxguvwwwwgwfwwxhvxxwxhxgvwwxwxuxwgWewxvwwwgvxwwwwwwwwwwxvwxvvwxxwwwwvxxwhvwfwgwwwfwwwwwwwwwvwwwgxwgvvxwvuuxwvvwwggwwwwwvwwwwwwwxwxxfvwwwwwvxghxxvwwvvufxvwwwvwwxvvhwvwvwvwxwxwwwwwuxgwwxwwwvwxwxgvxwwwwwwwwhwwwwwgxgxgvwvwwgwwwwwwwwgfvvwxxgvwvwwgwwwxxwwxgvwwwgxwxgxgxwwvwwwgwwgwwxwwwhxxwvwwwxxxwxwxwvwwvwwwwxwvvwwwwwvwwwxgvvuxwxhwwwwuxwwXwwwwxgvxwwxwhwwwgwwxgewwwuxwfvxWxgwwgvxwhgxwvwggwwwWvxxgvwwwgwwwvwwxvgxwwwwwwwwwvxwvwgwvuvfwwvwxwgwwwhvwuvwwwwvwxxwwxwxxwvvxhgvxwwhwwxfvxwwwxwwfwwxwxxwxwwwwuvxwxhgwxvwwwxwwhxwxwvwgvwvvwwwwxwxwwwwuvxgwgvwwwwwgwgwvWwxgfwwwwwwwwxxwuwxwwxwxxwvwwwwwhwwwwwhwxwxwwxXwxwgwwhWvxhxxwvwwhwxwxwxgvxwwwWwhvvwWwwwxxxwwwwwwwwgwwgxxwwxwwgxvvWvwxxwxwxgvwxxwxwhxwxvwxghxgWvgXwwwxxxvgxwxvxwxwwwxwxwwwwxwxwwgwwwxvwfwwwwwwxxwxgwwwwgVgggvwwwfvwWfvwwwWgwwgwwxwWdvfgfwwwvxhwhFgegwxfhwwwhwwvwxwwxwgvvwwwWwdwwfgwvwgfgwuwwwxgggxxxwxwwwfwwxxwwwxwwxxhwvfwgfwwwxvwvgfgwvwVWwxvwxggvvwvwwxwwxwwwxwxwwgwxwxwwvwwxwwgwwhvvwxfvgWUwwggwwvgwggGuwwvvvwwwxvwFgevwhwxwfwgwwwwxhvvwgwwwwwwxxgevgfwwVxgwgxwfwwwgxwgxwxggwgwGghwwWWxxvwwgfvwwwguwwwhgfffxfwgwxwvvwfWwvwwxwwxwvxwwwxwwggxwwwwwgvwgghwvgwgfxwwxwwWwWWxwwwxwwfvfvWxwwWGxxgwvvwxwwvwxvwvwwwxxvvwwwwVdvgwwwwwWwguxwwvxggvxxwwgwvxxwwwwxwxhwggfwfvgwWvwvgvwVWgvwgwxwwwwwvWwvxwgwwhwwwxwwwxwwwggwwwwxgxvwwwxgvxxgwgvwwvwxwwxwvwwwwwxxwxxwwgxghwwwwxwxvwwwwwxvwwvgwwXufwxwwwvwxwwwwwgxwxggwwvwwfvwwwfwvwwwfvwgvwgWwxwwwwxwgwvwxwwwxxxwvgwwwwxfwxxwvgWwxwwWwxggwwxwgwWwxgfwxwxwwfwvWwwxwxwGWxxfwgwhwwwhgwvwhwxwwxxwwxwvwgwghvewxvwxvxxxxxwwwgxwxwhwgwvxgwwxgvwwXwvxguwwxwwwggwgxwvwwhgwwgxvuwwvvuwgwwvfwwwxvvvxwvwwwxxwwxxwxxvwgufvuwvvuwxwwwwwhxwwwwvwxwwxxvvvxwvwwffwxguwwxwvwwwwxxgugwwwxxxxxxxwwwwwxxwxvwgefgfwvgvwvwfwwxwvvvwwvwgwvwwwvvwwwwwwvwxvxwfvvwwwwvwgwfxwgxvfwvxwwwwwwwwwwwvxhufwwwvgwwxwvwwxwwxwxxwxxwwgexwwwwwwwwxgxxwwfwvvgvwwwgwwwwwwgwxwxwvwwxgwwfgwvWvwxfvgwwxfxvxwwwwxxxvxgvvwwxwxwwwxvwxwxwxwxxxgywxvwwwwwxxxwxxxgxxxxxwxxfvWgufvgwwvwxwvwvvwgwvfwxwxwvwwwxxvwgwwxxxwxwuggwwvvwwwwxwxvxwvuvgwgwwwwxhxwxxxwwwxxwhxvvwwwvxwwwhxxgvwwxwxwvhvwxxwxxxvvwwwvgwwvxwgfwvwgxxwwwxwwwvxgwwgwvwwfWfwxwwvgwvxwvgwwwwxfxxxxwhwxwwwggwvwwwwwgwvxxxvxxxWfwwwwxwfwxvxwxwxwvvwxvwWfWuwugwWgwwwxwgvgwughgvwwxxgwgwwwwvfxwgvwwwvwxvwwwwXhwwxgwwvxwxWvWwxwwxwwwwwxwvwwwwvVxguwwxwxwwxxxwxwwwwwwwvwwggwwvhvwwwwwwwwwwwwwwfggvwwgwxgfgxxvwwwwwwwwxwxvwxwwwvwvwwwxxxgxwxvwwxxwwxxxxxwxxwxwxxwgvWvwwuwfwwwwwxgwvwwwvxwxgvwwwwxwwwgxwwwwwvwWhwwwxwgwvxwxwwxxwwwxgvwwxxfwwwxxxwwwwxwxxxwwxxxxxxxxxuwwwvwwggwwwvwwwwwgWwwwwVwxwwwwwwwhwwxhxxgvwwWwVgwvwgwxwwwwwwxxwwhwhwxxxwwwwwwvxxgfxwwwwxwwxxxxxxxxxwwvxwwwwxhxwxxxwxwwwwwwuvxwfvfffvwvgwxgWwwwwwfgggwvgvwwxxwwwwgwwxwwwwxwxxwwwgvvxwwwwvfUwvwwwwxxwwwwxwwwwwgxwwwwxxwwxxwwwwxwwhxwwxwxxwxwxxxxxwxwvwwwxxxxvwgxgxwwxwwxwwxwxxwxxwwwfwwvgvwvwvggwguwwgwwwwxxxwxwxwxxxwhxxwwwgwwwwwwwxwwwwwXwwwwwxxxxxvwwvwwwvxwwwgwgxwxxxxwxxxxxxxxhwgwxxgxwxwxwwxxxvvfgfvwgvghwVfgwgvgvwwwwwxxxxwwwxwxxvwxxwxxwwuvwgwwwvwwgWwvxxxwxwwwwwwwwxxxxxwwvxwwxxwvwgxxxwxxxxxxxwxwwwwxxwxhxxxxxwxxgvwwvwwgwgvvwxvwwwxxwwwwwwwxwvwvgwwwwxwwwxvwvwwwgugwvvwvwvvguvwwwxxxvwxWwxxwwwwwwhwvwvwwwvwwxwwxgugwwwwvwwwwxxwwwxwwxxwgvvwxuwwfwwwvvgUguwwvxvvvxxwwwfwwuvwwwxfvvvwwgwwwwwwwwwwwwwgwwwwwxwwwwwwwwxwgwvfwwvwxwxwwewwwgegvgxwxwxhwxvvwvxwwwwwxwxwwwxxwwwgxxgwfwwwwwwwwvxwwwwwwwxvvhwvwwwvggwwvvwwwgxwvwwwwwwwwxvvwwwwvwhvwxvwvwvwuxvwvwgvvxwvwwwwvwwxwvwwxwxwuwwwxwxxwwwxwwxxwwwuvwvxxwxvvxwxgxxwxwxwgegwvwxwwvwwVvvgwfxwwwhgwwwgwuwvhVwwhxxvwwwvvxwxwwvvvfwwgwwxwwxwwvxwwhwvxwvvuvvwxxwxwwxwwwwvxvwwvvvwxxwgwwwxwwwwwwwwwxuwwvxvwwvwgxwwwwwxwwxwwuvwwwwwwwwwwvwvwwwwfwwxwwvwwwwwwwwwwwwwgxwxwvwwvvwxwgvxfwgvwwwvwgwwvXwwvhwwwdfxfwfwvxgxwwwxxwvxxwwwwgxwwwwwxhwxxwwvwxxxvwvwvwwvwwutfWwWvvwwwvvvwVxwuwwgvwgwwxxwvvwwvwwggwwwwvwwwvwwgwfxwvwwwvwxfwfxwvwvhvwvwxwWxxwwfhwvxwwwwxwvvwwwwwvfwghgxwwwxwwhwwwwxwwxgwgwxwxvwxwxwwwwhwwxwxwxgwvwvfvvwwwwwdfvgwwwwwwwxwvwxwwvwwxwwwwvvwfwxxwwwwwvwvwgwxwxxxwwwwwwxxwfvvwwgwxxwwxwxxwwwwxwwwxxwwxwwgvwxxwwwwxwwgwxwxxwwwgxxwwwxwwgwwgedfWxwwwgwwhfwwgwwgfvwvvwfwxwgwgwvvwwwxwxwxffwgwwwwwvwxxwvwxwxwwwwwwxxwgwwwwxxxwfwwxxwxxwwwwxwxwxwwwwxxwwwwxwgxwwwxxxxwwxwxxwxwxxwwwwwwwwwwwegwwwwvwwwfgvwwwvwwgefxxfgvfwvwwvwvwwwgwvxfggfggvwwvwhxwxvwgxxwgvgvwwgvwwxxwwwwxwwwxwwwwvgwwwufwwgwwwwgvwxvwwufvwwwwhxwxxwfwvwgvvwwwvwwwxvxwvwxwwwxxxwxwwwvxfvgefufvwvfVfwwgwgWUwgxvxfwuguwvffwwxwvwvwxwgwwxwgfwvwwxwwgwwfxwwwxwwhxvwUxxhfvwvvxxgxwwgfxvwwxxwwwwwxwwxvvvwwvwwxwwvwgwwwwgwgwhwxxvwwgxwxwwxwwgvgxwxxwwgwxwwfyxgvWwxwvxwxxxwxwwxxxwwwwxgfVwefvwgufvwfgvedgwwvvwgvvwvwwxefuwgwvwvwxxxxwgfgWwvgfuguvxvfvwvwwwwwvwwwufvuwvwwwuxwvwxvxxggwxwwwwwwvwvwxxvwuxwvggwxgwxwxxwxxwwwxxxhxxxxgvwwxgwwxxxwwwxxwxxwhwvgxxxxhxxxwgfevWfvwdUuVvwufFevWgegVvgwwwgwfwwwgxxwxVwVwvfGgwUxgwgwwwhwgwwwugwwwvxfwfxXXfwvwghgwwwwwwvgWwwxfxwvWxwuuexgtfwwxwwwxxwwxxwxvvwxwxxxxxgwwxgwwxxwwhxxwwwhwwwvxhvwxwxxwgxxxwwxxuxwwwwwwwgwvwwwwwwwewfwwwwgvwwwgvvwwwfwxvwwuwxwwxwvvwwwewvvxwwwgxvgwgfwwgwuwwwxxwwwvvvwgfwwvfgwewwxwwwwwwgwvxwwxxxxxxwwwwfwwwwwwwwwxwwwxwwwwvwxwxwxxwwwfvwwfwxvVwwwwuwgwvwfwgvvwwxgwxxwwwwevwwwvwwwwwwwwwgwwvxwxwxwxghgvxwgxwwwwxwgxwegxxvwwwwwxvwwwxwgwvwwwwwwvwwwwwxxwwxwwwxgxwvwwwWxxwvvfxwwwvxwxwwwwxxeuwwwffvwfvwgwwgfevgwwwvfwwwgwwwvwwwwwxwwwwxwxwxwgevvvwwwvgvwwwwxwwgwxxwwvwvxvwgwxxwwwwgwwwwfgWfvwvgwfwwguexwwvgwvwwvwwxxxwwxwxguwvwwwwwxwwxwxxggxwxxwwxwxxxxxvwfvfuwwfgegwgwfugwgvuggwgwgffwuwxfxgwwwwwfwfxvgvgvwwvwwwwvvwwwvgvwxwwxwwwgwfxxwwggwvexxwgwvvvwwfgwwwvwwxwwxwgwwwwwxwfwxwxxgwwxwwwwwxwwwxwxwggxwxwxxwxVxxvwwwwxxwxxxwwxwxwxwwxwwwxvxwwwwwwwwwxwwxxwwwxwxwwxxxvwxwxxwwwxxwwwwxwxwwxxxwxxwxxwwxxwwwvwwxxxwxxwwwxwxwwwwwwwwwwwwwwwwwwxwwwwwwwwwwxwxwxwwwvwxxwwwwwwwxxwxwwxwxwwwwwwxvxvwwwxxxxxwxvwxwwwxxwwwxxxwwvfwwwwvwwwwwvwvvxvxwvvvwwwwwwwwwwvwwvwwwwwwxwwxxwwwxwwfwhvwwxwwwwxxxxxxxwxxxwxxxwwwwvfwwwwwwvxwwggwwwvwwwwwwwwwxxxxwxxxwwwwwwxxwvwwwvwvwwwwxxwwxxwwwwxxxxwwxwvwxxxxxxxxwwxxwwxxwwwxwwvwwwwwwwvxwwgvwvfwggwgfwgvwwwvvwwwwxfgwvwwwwvgwxVuvgwwwvvgwwwwgwvvwwwwwwwxwvwgvwwwwvxwwfwvwwgxxwxwvwwvvxwwwgWwwwwwgwvwwwxwxgwxxxwwwvxwwwvwwwwwvvxwwxwwwfwwxxxxxwxxwxwxwxgxwwxwgvgwwwwgfwgwwwgfwvgfvwguwgwwwwWgxwwxwwwxwgvvWwxwwwwwxxfwggwwwwgvxwvwWexwwwvwxwgwwgwwxwxwxxfxwwxxwxvxgwwwwhwwgwwWxxwwxwwxwxwwwxwxwxxgwwwwwgwxvxxxxwwgxwwxwwfxxxwxxgxwwwxgwwwxxwwvwwwwvwwwvvWfvwvgwvwwwwwvxvwwwvwwwxwxxwwxxvwgwwvwxwfwvvvwwwvxxwwwwxhwxwvxwgxwxxvwvwwwvwxgwxgwwxwxxxvxwxwwwxvwxhxxwxvwwxwxwxwxxwxwxwxwxwxxwwwxxxgwwxwwwxwWgwwwwwgwwxwxxVuwWvhwwgvxwxwxgvwwxxxwwwvvxwwhvxwxxwwwvgwwwxwwvwwwvvxxwwwwwxwwwgwvxwwwwwwxxwxxwxwxwvxxwxxwwgxxwwwwxxxxxvxxwwwwxwxwwwxgwwwwwwwxxxxwxxwxwwgxwvwwwvwwwwwwwwwxgvwwvxvvvwfvwwwxxwwwwwwwwvvvvvwwwwwwwwwwwxWfvtwvvwxwwxwwwxwwwwwwvggwvhwwwxwxwgvwwxhwxwxxXfvwwwwwwwxxxwwwwwwxxvvvvwgvvwvwwvvxgwwwwgvwwxvWffvwwwxwwwxhvwwxwxvgvvwvwfggwuwwxwhxuwwwwwwxwvxxwxwvwwxWffwwhwvxxwxxwxwwwwxxwggfwvxwhxwvxwxxwwwwxxwvvwwffwwwvxwwwwvxwwwwwwwwwwwxxvwxvfggwvgwwwgwwwxwwwvvwwwwwxwxwvwwgvwwwwfwwxxwfwxxwxwxxwxfwwvwwwwwxxwxxxgxwwxxxwwwwxxxwwvgwwvwvwvxggwvwwxxvuwwfxxggwwvwxvwwwwwvgwwwwgvwwwxwvfggwwxxvwwwhwuxwxxxwwwxwxxwvwvxvwwwwxxvxwxwwwxxwxxxwxwwxvxwwwwxxwwxuxwvwvwvwvwwwwvhwwvggwwxxvgvwwvvwwgvgwwwwwxwwewwvwwwwxXwwwvvwwwxxxwwwwwxvwxxvwxwwgwwvwxwwwxxwxxvwvvwwwxwvvwwxwxwwvwvwwxxxxwxxwwxwweWvwuggwgfwwgfwwwgwwxwxwwwwwwwgvvwwfwwxwwwwgwwgwfwwwxwfwwwgwxwwwwwwwxwwwwwxwwxwxwgxvwwwwwvxwxwxwwxwwwxxxwvwwwwwwgxxxwwxxwxxwwxxwvwwwwffvuwwvWfwwxvvvwvggwvgvvfvvwwwfwwxwggwxwwwfxwwgvVwvxvwvgwwxgxwxwwwxxwxwwwxxwvwvxfwwxWxxxwhwwwwwwxwwxxwwwwhhwxxxwwwwwgwxxwvwxWfvxwwxwxxxhwxxggfUfvgWfvhwwwVwxwwwwgvgwxwwWwvgvwwvxgwxwxwwwwgXhfxxwgwwwwvvwwxwxxwvwxwwgxvwwxxwxwxxxhhwxxxwhwwxwvvwugvvgwwwwxwxxxxxxxwwwxxwwwwxxxxwxgxwwwwwxxwwxwwgvwvwxvvfwwxxxfgwggwwxxxxxgxwxwxxwwwwwwxwwxwwwfwwwwvgxxgwwgxwxwwgwwwwxwxwwxwwxwwwwfxwwwwwxwxxhwxwxxxxwwvwwwxxwxwwyxxxvwwxffwvgfgwwgwggfggwwwgvxgwggwwxwvxwvwwwgwxwxvfwvvfgvvvwvggxxxwvwwhggwwgwxwwxxwwxwxgwwxxwxwxwwwxwwxhxgwxwxwxxxwwwwwwggwxvwxwxxxwxxxwwxwxxvwfgfwxvwwwwwwfgvwxwwvxwxxwwxwwxxwwvwwwxxwxvwxwwwxwxvwwfxvwxwxwxwwxwxwgxwwxxwxhxxwxxwxwxwxhxwxwwwwxxxxxwxxvfgwwwfwwvwwvxwwgwgxwvggwhwgwxxxxwwwwvwxvxwwwxgwgwwvvwwfxwwwvxwwhxhgxxxxwvhxgwwxxwxwwxxxwxwxxxwxwwxxxxwxwxxwwxwwxxwwgxxxxxxgwxxwwxwwwwxxxwvvwwwwwwwvwxwwwwxwwxwwxwwxxwvvwwxgwxwxxhwwwxwxvxgwwxwxwwvxwxxwwwwwwxwxxwwwwxxwwwwwwxxwwwwwwxwvgxwwxwwwwwwxwwwwwxwwxwwwwwwxwwvwxwgwwwxxxxvxwwwwxvxxxvwxxggxwwxwwxxwwwwwwwwwxwxxxxxwwxxwfxwwxwggwwwxwxwwwwwwxwwwwxxwwwwwwwwxwwxwwwxxwwxwvgwwxhxwxwwwxwxxwwwwwxwxxwxxwxxwwwxxxxxxvwwxxxxxwwxwwwvwwvvwwwwxwxwwxxgwxwxwvwxwwxwwxvxwwwwxwxxwwwwwwgxxvwxxwwxwwwwwwxxxxwwwxwxwxwxwwwwxxvwwxwwwxwuwwvvvvwwwvfwggvwwggwvvwwwvwggxvvxwwwxvwvwvxwwwwvwwwwwwwwgvxwvwhvvxwwhvwwwwxxxvxxxhwwxwxwwxwhxxxwwxxxwxwvxxgwxeuwfvfwxVvvvwwfvwwuwgfvuuwgvgvwwwvwvfwfwvwvvwhxeuwvwffwuvwvwwgxvuwwwuuwgfwgxgxvvxxwxwvwwwwxwwwwvwgwxwwxhxxwwxxxxwvwgxwxwwxxvxwxwxxxwvwwwxwvwvvwwwxwwwwwwxwwxwwgwvvwwwvwwvwwxwvvwxxwwwwxxwwvgwwvvwxwxxwxwxxxhxwxxwxwxxxxxwwxxwxxwxxwwxxxxgxxwgwvVgwfgwwwwwgwfvvvuxggwwwwXwwgwwhfwwvwwhwwwwwwgvgwwxwwwwwwwwvxxuwwwwwxvwvxwwwwwwxxwgvhwxxwwxxxxwxwxxwxxwwwxxxwvwxxwwhwxxxxxwvwwwvwwwffwvwwwwwwgggwwgxvvwwxvwvwvWwvwvwwwwuwwwgvvvwwvftvWxwwwwwgwvwwwxwvvvvgwwwwwwvxvggxwwwwvwhUuvwwwWvwwwwvwwvwwvwwwxwwxwxxxxwxwwwvvvgvwwwwwvwgxxxwwxwwwwwxwxxxwxxXwwwgwvwwgvvvfgwguvfgfvwwwgeseFwgwfgwvvwwwwvwuufVwWwwwvvxgxvwgwvwwwXwugwwgvwwewxFwgxwxxxwwwwwwwxvwwwwwghwwwxwwxgvvwwgfvwwvuvgWWwwwwwwwwxhwwxgwxwwwwwwvwwvwvwwwwxwxwxggxxfxwwwwXwxwwwvwwvxwwxwwhwvvfwwwwgwvwwffvvvuwgvwwxwwwwgUuvwwwwwwxgvwwwwwwwwwxwwwftvWvwvwwwvwvwvwgwwwwwwwwxwxwhwwwxwwxwwwwwwwxxgwwwxxwwwxwgwwfwwwgvwvwwwwwxxxgxxvwwwhwwwxxwwwxwwwxwxxwwwwwxxxxvwxxXwgwxvwvgwfuggwwfweseFwVvwwvwwwgwwfvwwvwwwgwwgxwwvfwwfwgxwwwwvwwwwuwggwvwwwwvxgwghxvxvwxxwxwwwwwxwwwwwwxwWwvxwwwwwwwwxwwwwvxwwwwwwxvwxwwwgwwxxwwgwwwwxwwwxxxwwwgwxgwxgvwwwwxxwvxwxxxwvxwxvxxxufgwvwwwvwvwwwwwwwwwvwvwwwwfwvxvwvwwvwwwwwvwwxwvxwwwewvvgvwwgxwwwwvuwhwwwvwvwwfgwwwwhwxwwxwxxxwvwwgvwwwwvwwdfwwwwwxxxhfwwwwwxwwwxxwxwvwwgwwwxvwwwxwwwxhwxwhhwwvwwwwvvwvgvwvwfwuwwwfwvwwwvWvvvwufwvwfvggwwwwwgvetfWgwwvvwxwxgxgggwwwvwvvhwvwvwvwwxwgwwwwxuwwwvxwwwxWxwwxvxwxxwxwwwwgwwwwwwwxwwvwgwwwvwxwwxwvvwgwvwgxxwgwwvxxwwwwwwxwxwgxwwxxxwwwwwxxwwwwxxwxhvwuwvdfwwwwfwwvwvuwwwwvwwwxwgwwvvvwvxxwwwxxwwwwwvvwwvvuvhvwwwwwwwwwwwgvwgxwwwxwwwwvwuxwwwhwwwvwwxxgwwvxwwwwxxxwwgwwwwxxwxwwgwxvwwwxxxwwxwwxxwxwggwhxxfxwxwwvwwxgvvvvvwwWuvwvwvwgwwwgvwWvuwvwfwgetfWvwggwwwwwwwgxwxwxwwxwvgwvvwwwwvwwwwwxxwvwwwwvwwxvgwwxwwwgwwwwxwxwvwwwwhwxxwwwwwxwvwxgwwwvwwgwwwxwwggwwxxwwxwwwxwwwhwwwgxxxxwwwwwxxwwgwgwwgguwwwwwwwvwvgvvwgwwgwvvwwwwwwwwgwwwwwwwwwwwwxwwwwfvvgwvtgwvwwwgwvwwwxxwwwwwwwxwwwxgwxwwgwxwwwwwxwvvvwwwgwwvvvwwxwxwwwwwwwxvwwwwwwxwwwwwwwxgwvwvvwwgxwxxxxwfvvxvvgwvwwgfgdfwvwgvwvwgwgwwwwwwwwwxgfwgwxwwwwwwwwwwvwwfvwwwwvwxwwxxvwwwxxwwwwxxhwxfwwxgxwwvwwwwwwwwwxxfwgxxwwxwwxwwxxwwwxvxwwgxvxxxwxxwwwwxwhhxwwgxwgevvfuwvwwwuvwwwwfgvvvwvvgwvxggfuvwwwgwxvvvfvwfwwwwvwvgwwwwgwwwgvgwwvwwwwxwvvvwvwwxwwxvvwwvxwxxfwwxwxxvwgxxwwwWxwvwxwwxwvvxvwwwwwhwhwewxwxgwxgxwwwwxxvwffwxfwwwwwweevgwwwwvvvwwwwvWvvgfgvvvhgwWgwwwfwwvwwwfwwgxwvwwxwhvwwvwwwwwggxxxwwwgwxhgwvvwwgvghwxwexvgwwwwxxxwwvwvwwwwwwvhwwwwwwxwxwwwxxwxwwwwwxxgxwwwfwuwwgwwwwwgfgwhWvwguwfwwwwwwwwfxgwgwwvgwgwvwvhwgwwgvwwgvffwvwfvwgwwwwvwwwxvwwwWvvvwwwwwwwfwgxwgwvgxhwwwvwwufwwwgwwwgvvwwwwwwvwxwxxxwwwwxwgxwhwwgevfwwvxwgxwwfxwxwwwwxwwwwxhwxxxwxvxwggvgghvwggWvwvvffgfwgwgfvwwwgwvxfghwvggwvwfwfWvwwwwvwwWwwwwgggggwxwwwwhwvwxwxwwgwwfwwwwwgwvwghuxxWxwwxfxwvwwwgwwxwwxwwwgvwwxxggxvwgwvwwwwwgxwwwwxvwxwxwwwxwwhgxwxwwwxhggxxwxxwwwwwwwwgwxxwxwxwwwwvvgfwgwguwwwgwvgwfwvwhvxxvwvvvvgvwwwwgwwwggwwvgwwwggevwgxxwfwxfwwwwxxxvxxwwwxxwwwwgfwwwwxwxwxvwxwVvwxfwwwwvvgWxgwwwxxxhwwwvwxwgxwwwxwhgfwhwxgwvxgwxfwwwxwwxwxwwxhwwfhwxxxxwxwgxwwxwxfgwfwwwwvwxwgwwfvwwfWgfgfwwgwwgguwvwwwfwwwwxwwwwwxwxgwgwgvxwwwwwvgvwwwwxvwwwwwxgwwxwwvwwwwwxwxxxgfwwwxvwxwxwwwxgwwwwvwwwxxwwxxgxgxwxxwwxvwwwfxwvxvxwxwwwxxhxxgwwwwwwxxwwwwxxhwwwxxxwwwxwwxwwwwwwwwgwwxwwxwxxxxwwxxxwgxwwxxfvwxgwwxgwwwwwxwxxwgxxxwwgvwxwwwxxwwwwwxwxxxwwxwwxxxxxwxxxxwxwwvwwwvvgfwwfgxwwwwwwxwwxgvvvwxwwwxxxwwxwxwwxwwggfwwwxwxwwxxwwwwwwwwwxwxwxxwwwxggwwwwwxwwwxxxwwwwxwxwxxwxxwwwwwxwwwgvwwxwwwwxwwxxwwwwxwxwwxwwwwxwwwxxwwgxxxwwwwvxwxwxwvwxxxwwwxwxwwxwxxgvffggvwwxwxwwxwxwwwwwwvwwxxwwwwwxgwxwxwxwxxwvwwwxwxxxxwxxwwxxxxxxxwwwwwvwwgfxwvwwwxwvwxvwwwwwvwvvwwwwwvwwvwvfwvvwwwwgvwwwxwwwwwwwxwuggwwwgvwwwwxwwwwwxxevwxwwxwfxwxxwwwwyxwwwwxvhgxwgwvwvvvwgfevffwwwwvvwwvwxgvvwwwdtVWvwwwvfvvwwwwvwxwxvwwwfvvgfvwwwggwWxgwxvwfvwwwwwwxwhwwvxxwwvwfuffxwwwxwgwxwxwwwxxwwwxwxwwgvxxwwwwxxwwxwgwxwxxgwwvgvgwwwevwwvwvwwwvvwwwwwwwwwwwwwwwwwvvgwwvwvvwwwwufhwvwwxwxxwvwwwwwwwwwvgwwxwxgwwxwxwwxwwwhwxwwwwwwxxvwwxggwxwxwwwxxxxwwxxwwvwwdtVWvvwwwwwxfvvwfvwwvvwgxwvwwwwgxwxvwvxwwwxwgvvvwgwwwgvxwwwwwxwgwwwxwgxwwxvwxxgwwwwwwwxxxxvwxxwwwwwxwxxwwvxxxxwxxwxwxwxwvwvxwvwwvgwvwwwwwwwxvvgfwwwwwwxvwwwxvxvhwwwxxwgvvwvwvwvwwwvxwfgwwxwwwvgwwwxwwwwwxwwxwvwwgwwwwwwgwwwwgwxxwwwwxvvvwwgwxxxxxhxwfvwggwvxwwwxhwwwwwxwxhxhxxwwvwwvfvuggwvvvgwffvwwwfvvgxwvwvggvwvvxfxvvwvgvfwxwwgvvwwwwxxgwwwfxvwxvwwfwwxvwxgwwwwfwwxwwgwwwvvvwxfxxgxwwvwwwwgvvwwgwgvvggwwwvxxwwwwwxwwxxxwwwxgwfwguwvxgxxvvxwhwxwgxgvvwyxhxvvvfvvfgevvwvwvggwgwvxwwwwwvwwvvfvxwxxgwwgwhxxwfxvfvegwxuwwgwuwwwxwwwwwgwvwfgwwvwxwwxwwxwwguvwgwfgfvxvggxwxxwwgxwwgvfwwxwxwhgwxxgxxwxwfgvwwwwwwwxxwxwwwwxwwwxwxxxxuwgVvtgwfxtwgvWvdgxgfwtwwwwwwgfvwwwxxwfxfwugWwgwwwWwwwvxwvvgwgvvwvwwfvwwwgxggvvvwhwwwwguwwxxwxwwfvgvWwwxwwwxwvwvwvwwwfwvhwhxwxxwwwxxxwxhwwxwwwwwwwxwxwwwgwgwxwxwwxwwxxgwxgwwwxwxwwxwwgvwgwwxwvxwwgvwwvwwwwwxwwwvwvwwwxwwvvfhwwwwxwwvwxvwwwwwwwvwvwxwxwxvwgwwwvvwwwwwvuvwxxxgvuvwxxwwwwgwwwwvwwwvxxxvgxwwwxxxxwwwwwvwffwwvwwfvvxgwvxwwvvvwwwgvwuffvvvvuwwwvwwxvxwfggwvwgwwwwvvwgxgwxwwwvgvwvgvfxfwgwvxhwxvwwxwwwwwwwwvwwwwwwfxwxwvwxwwxwwwxxgwwvxwggvxgxgvxwvxwvwhxwwggxwwwxxwxxvwwwwwgvwugvfuvgwgwwwwvvwwwvuuvvxwxvvwwwwxwwwwwvwwgwwxgvwwvwxwvwvwwwwwxvgwwxgwwwgxwxwxxwwwgxwxxwgxxwwwxxxxwxvwwxwxxwxxxvxxxxxgwvwwwxwgvvVveggfvgwgvgvwwvwfwxwfWWeeffggvwwwwgvwwwwwxfghvwvvxwgwwggxwhhfwfggwfvgvwvgwxxvwwwwwxwvwwgwevvwxxwwwwwwxxwxxwwxwxwwwwwwxwxwwwhxxwvwxwwxvwwwgvwxwwwxwwwwwhwxwxwwwwvgxxxwwxwwwwwgwwwxwxwwvgxwxwxwwwgwxwwwwxxywxwvgxxxxwwwwwwwvgwwwvwxwvwwwwxwwxwwwwwwxxxwwwwwgwgwwvwxvxhwgwwvwwwwxwwxwwxxwwwgxxwxhwwxxwwwxxxwwhwwxvgwwxxxxxxxxxwwwwwwwwvwwwxxwwgwxxwxwxwwwxwwwxxxwhwwxwwxwwxxxxxxxwxxxxxxxxwxxwwwwvgwxxwwwwwxwxwwhwxwxwxgvwhxwwvgxwxxwwwxwwwxxgwxxxxxwxxwxxwxxxwxwxxxwxxxxwwgvwxxxyxxxwxwhxwvwxwwgxvxffwwgwggggvxwgugvwWwwvvhwwwwxfvxwwwwwxwwwggwgxgwvwwwggWvxgwwwWxwgfwwgvwvuvwwgwvwggfxxxxxgxxwwvxwwvxxxgwwwxxwwwvvwxwwvwwxwxwxxwxwwwvuvwxwwwwwgxgvvwwxwwxxggXwwwghgWvwwguwgwwxVgvwvwgvfvxwVvgfvgvvwwwwwxgwvwwwwgwxwwwwwxhwwwwwxgwgxwwgwwwxggwwWhxVxvfwxwwgxxxwwwxgwfxXgexxghwgvgvwwwxxxxvwxfwwxxwfwwvxwxwxxxxxvwxwhwvwwwxxwxwwgwhwfwxwxwgwxxxwgxwwhwxxwxwggvgvvwwvgwwxwwwwwfgugwwgwvwwwwwvgvvwwxvwwfvvwhwvxwgwxwwvgwwwxgwgxgWuwwfwwwxxwwwxwwvvghxxwwwxwxwwgwwwwxxxwwwwwwgwwwgwxwxhwwwhxwwwvxwxxxwwxxxgwxwhgwxwxxxwgWxwwvgwwwvwwwwgvwwwvvvxxxwwvwvvwwwvhwvxwxwwwwgwwggwwggwwwwwwhvwwwwxwvwxhgVxwhxxhxwwwwxxwwxxvwxwffwhgwwgvwwwxwxxwxfxwwhxxwwwwxwwwgwwwwxxxxxxgxwhwxgwwwxwwxwfgwwxxvwwvwxvxvxwwwxwwwwwwwwgvwwwgvxwggxxgvvwwWwwxwwwgggwwxwgvwwwwwxxxwwwwxwwxwwwwwxwwwvwwwxhwwwxxwxwxwwxwfxwwxwwwwwwxxxxwwwxxxwwgwvwgfvwwwvgxgVwwfwwwxvwgvwwwVxwvxwvwwwwvwxwxwwwwgfwvgwvvwxwxvwvxwwwfffwwvxxwwwvwwwxxwgwwvwfxxwvwxxvxxwwgxwwvxwxxxwwfwvxxwvwwwwwxxvwxwwxxwvvwxxwwwwwfxwwxwwvvwvwwwvgwwxxwxwvwxvwwgvwwwxvwwgvxwvwvxwwwxwwxxwgwvxxwxxwxwxwwxxwwxxxxvvwgxxxxxxwwxvxwxwwxwwwgffuvwwwfvwwwwuxwgvvgwvwwxwxvwxvwwwwwwwwwvvvgxgvwxwwwxxwwwxwwwvvxwxxxfwwwxwwwxxgxxwxvxxxxxwxwxwxxwgxxwwwwwxwxwwwvgwwwwvgwwwgvwxwvwwvwwwvwwxwgvgwvwwwwwgxwwwwvxwWwvgwwwwxwwwwwwxwxwvwwxvwxwgwwwxwwwwxwxgwwxwgvwxwxxwwxwwxxwvvgvvwxgwwvxuwwxvvgwwwwxxxwwwxhxwwxxxwxwxxhvvvvvguxfffvuwwgvwwwvwvwxwwwwWvwvvvwwwwwgvWwvwwxwwwwgxwgxwWgxvgwwwxVxwwwwwwwgxxwwwxxvxvwwwfxwwxwwhguxxvwwwwwgwxxwwwwwwwwxwwwwugwxwwxwwxxxwxhwwxxxwgxxxwxwvwxwwxxxwwvwwwwwwxvwvwvvwwewvgvwwwwvvwwwwwwwwwwfvvxwwxwxxwxvvxvwxxwxvxwwgwwvwwwwxxwwghvvxxwwwwwwxxwuwvwwwwxwvwgvwgwwvwxxwvvxwwxwwwxxhwxgvxxwwxwxwxxwxwwxxwxxhvwwwevwfvuvxwwgwwwwgvewwgwwwwwwwwwwhgwgvwgvwwwwwggwhvwxwwgvvxwwwxwxwwxgwwwwxwwwwwwxwwhhfwxxwwwwwwwwxvwwwwwwwwwwxwwxxvwxxwwxwxxxxxxxxxxxwxwxxwvwxxxxxxwvwvvwvvwwxgfewwfgwfvwgfvwwvwwwvwggVggvwwvfgfwggfvxwwwxxvgwwvGuwwfvgwufwwgwwwwgvvwwwvgwvgvwffwwwwvwxwwWwxwwxxwwvfxvvvwwgwwvvvwwwxxxwvwwxwvwxxwwwxwwwwwgwwvvvwwggwvwXwwxvwxwwwxwwwxgwwvwweVwwwegvuvwvGefwvgvuwwvwVgwVvfvvggwvwwwvwfwvfwwgGwwxwxgwwgwwwvwwvvwvfVwxwwwwgwvvwgWtxwfvxwGwwgwvwwgxhexwwvxwhwwgwuwwwwwgwwxwWwwgwwwgwwxxwwxwxwwxxhhwxwwwxhwxwgxxxwwvwvwgxgvwfxwvxxwwwwxgwwgxwwwgufvgwvuvwwvvvvwvwgfuwwxwwwwwwvxvxwwwvwwwwwxvxwwwwwwwvvwvxvvwvwvgvgfxvwwwwwxwwxwwwwwwwxxwxvwwwwwgwgvvxxxwxwwwxgwwwxgxxxvwhxgxxxxwwwxvwvwwwxxxwwwxxxwwxghwwgwxwxggvwfvwvwfwvwwgwvwgwvgfwwwwwvwwvvwwvhgvwwwwwgwgggwxwxwfwwwwwwwwwgxwwwvxwwgxXewwxwgwwwgwwwwxwxxfwwwwhwfwwwwwwxwwxwhxwxxwwwvxxwwxxxxxgwwwxwwwxxxwwwxwwwxxhxxxxwwwwgwgwwwwwxwwwwwxwwwxxxxwwvwfxwwxfwwxgxxwwxwwvwxwwxwvvfwxwwwwwxwwwwwwfwxwxwxvwgxxwwvwgwwwfwwwwxxwwwvxxxwwvfxxvxwfwxwwxwxwwgwwwwxxwwwxwgwwwfxwwwwxvxwwwwwwwwxxxwwvwwwfwxxwwwxxwwgxwwwfxwxxxxwxxwxxxxwwwxxwwxwfwwxwxxxxxwxwwwvwwwxwxxwxwwwwwxxxwwwxxwxwwxwxwwxxxwfwwwwxxxxxxwxxwwwwwwxvxxxxwwvxxxvwwxwwwxwxwwwxwwxxwwxxxxwxxxxwxvgwxwwwwwwhwwwwwwwwwwwwxwwwwxfvvgwwvvwgvvwwwfvwwxwwgwwwvwvwxwxxxwwwwwxwwwwwwwwxxxxwxxxxwwgwwwwwwwxwwwxxxwxxxxxwwxxxfvvvfwgwgvvwwgwwgwvxwwwwwwgwgwxxxwxxxxxwwwvwgwvwvvfwwwgwwggwxwwwwgxxwwfxxwxwwwxxxwwwxxywwvwwxwwwwxwwxxwxwxxwxxwxxxxwvvwxwxwxwxxxwxxwxxwwxxwxxxxxxxwwwwwwvgwwwwwwwwwwxwwwwxwxxxxvwwwwvvVuvvwwvgvwwgxwgwwwwwwwfvwwwwxgwwwwwwwwvwwwwVewfvvwfwvxfvvxgvxgwxxxwwwwxxxwxxxxxxwwxxfvvwwwvwvwgvwxwwwwggwxwwwwwxwxwwxwxxxvwwvwvwevugwwwwwvwggwgwxwvwwwfvxwxwwwxwwwwwwwxwgxvwwwwwwwvxgwgvwwggwvvwwhhwwggwwxxgxwwwwxwgwwwwwwfvgvwwgwwvgwxwwxwwwggwxxxwwwwwwxwwwgvwwgvwxxwxxwgwgxxxxxxwwxxwwxvxwwfwwwvwwfwwxwwxvwxwwwwxxwxxxxwxxfuwfwwvuwgwwgwwwwfwwwvgwgxfwwvwwwxwwxwwxxwxxwwwwwwwvwwwwwwwwgwxxwwwwwwxxwxwxwxywgwwwwgwwwwwwwxwfxwxwxxxvwxhxwwfwufwwwuvwwwvvwgwfwwwgwwvfwwxwwwxxwxgwwxxwwxxwhgvvgwwwffwwwexwgwxxwwhehhwxxwwwxxwwwxxwxwxgwwwfwwwwxxxxwwgxwwwwwvxxwxwxxxhxxwwwwxwwwhuwxxwxxxwuwwwxxxwxwxxwwwgwwvwwwgwwwxxxwwwwwxxwwxwwvwwwgwxfwwvwvwwwwgwgwfwwwwxvxwwxwhwhxwvwwwwwwwfwwxxxwwwxxxhxwwwwxxxxfwxxxwfxwwfwwwwvwwwwwwwxwwxwxwxxwxxwxwwwwxwhxxwxxvwwwwwvfwwwwxwwgwwvfvgwwxwwgxxxxwwxhxxhwxxwwgwwggwwvwwwwwgwwwgwggwvwxwwwxwwwwwwvwwwwwgxvwxwwfwwwwwwwxwwgwwwxwwwxxwxhwwwxxxwwxxwwxxxwwwwwxwwwwwxxwhwwwxxwxxwwvgwwwxwwgWwxwhwxwgwxwwxwwwxwxvwxwxxwwgvwvvgwwwwgvwwwwwgwwwwwxvvvxxxwxwwwvwgwwvwwwwwwxwwwwxwxvwwxxwvgxxwwgwvwvvwwxxxwvwwxwxvvvvwxwxwwxxxxwwgwwvwWwvvwfwvwwwxxwwwwwxwvvwwwwwxvwwxxwwhvwwwvvwwxwwwxxwwwwxxvxxwxxwwwwwxgxwwwgxwxvhwvwwgxgwfuwvwwwxxwxvwvxxvvvwwwxwxwwxxxwvwwxwvxxxwwxwxwwwxwgxxxxwxxfvwgwgvwwvwWwvwwwwwwwhwwxwvxwxwfWggwgvwvwvwwgxxwvwwwxxwwxwwwvwwfuwvwxwxwvwwwxwxxxwwwwvxgwwxxxwxwxxwxxwfvwwgvwxxwxvxwwwwxwxwwwwxxxxxgwvgvwwwwvvwwhxwvwwwwxwwvxfwxvwwwwvvvwgwwvwwxwwxwwxwwwwwwwwvwvvwwxwxwwwxwwxxwwguwfxwwxwxwxwwwxxwgvxxfwxxxgwwxxwgxxvwwxxxxxwwwwwwwwwxwywxwvwwvwwgwuvwxwwvwwvvwwvvxwwwwwwuvwwvtwwwvfwwvwwvwguwwwuxwxewwwwvwufwxwwwwwxxxwvvwwvwuxfvwwfVwwwwwfvhwwwxwgwwwwwxxffVvvxwwwwxggwxWwxwfwwxxxwxxhuxwxwvwguvvwgwvvwwUguwwwvwwwwvewvwgvxwgwwwwwwwxwxhwvvfvvuwVwuguwwwwfgwwdxxwvvwwxwwwwwwwwwwwwwwwwwwwvvwwwvxwuwvgwgvwxwhxxxwxxwhxxvvwxwxwwwgwwvwxVwwvwfywvxwxxxfxwwxhuhxwwxwvwwvvwfwwwwwwvxwwwxvwxxgxxxvwwfwwvwvwwvvwwwwwxwwwwwvwwwxxvwwwgwwwxwxwgvwwwwfwwgwwgwwvwhwvvhwvwwwwhgwwwwxwXxvhxxhwwgwgwwvwvxxwwfwwgxwwgxwxwwwwwwxxwxxxxwvwwuuwwwwwxuuwwuvwgwxwwwhwwvxwwxxwwwwgwwxxxxvvwgxwvwwghwwvxfwwwggwwWwwvwwxwwwxgwwwxwwwwgwwwwvwvwwwwwxxxxwwvxwxwwxwwxwwwxxwwxxxwwwwxwwxxgwwxwxwwwwxxxxhwxgwvgwxxwwwxvvvwxwxwxwwwwwxxwgxwwwwwhvxxwxxvgwxxxwgfvwwwwwwvwvwwwgWfuvwwvhfwfwwwuwwvwxxxxwgfvgxxgxwwgwxgwhwwgwxwxvgwwwwwwxwxxxivvgvvwvfvvvwwwxxxxwfwwwxwwxvxhwgvvwwxvvwvxwxgVvvwwwwwgwfwxwhgwfxwxxwvwwhxwxxwwgvwwwwwgwuxwgfffwgfwvxwvggwggxhwwvwxhxxwghxgfvvwwwwwwvwfgwxwxwwwxxxwxwwwwwwwwwvwxwxvwgwvxxvwwwwxxxwxwxxhvxgxwxxwwxwvxwxxwxwwwvffgxwxgvvxxwwwwwvwxwxxxwvffvVuvwvxwwFdvewwgwvgwwwvvwvvxwwxxgvvgwwwwgwwwvwweVgvwwwxfvvwwwxwhxwgwvwwhgwwwxxvgwxwxwwxwxxfvwwwxwwxwgvgwwwwwxwwxvxwwxwxwxwxxxWxwxwwgwwwwvwwwVuvwwwxwUeegwgwxwwvxwxwwwwxxwxwwwfggwwwxgvxwwwwvwfxwwxvhvwwvWvvxwwgWwwwwvwwwwwwgwxvxgwfgvwgvxwwwwxfvwwxwwxxxxggwwwwvvwxvwwxwwhwwwwvwwxwwwxwwxggwvxwxwwxxvwxxxwwwxxwwwgwhxvxxwfwwgwwwvwwxghvwvxwwwwgvvwvwvwxwwwwwwwvgvwwxwxwwvfwgwuwvgwuwvwwwgwwwwwwwfwwvvvwvwvwwwwvwxwxwvxwgwgwwwhwvwvwvwwxwvwxxxwwwxwwxwxxxwxxwxxxxvwwwvwwvvvwwwwwvvwwxwwxxwwxvwwwwxwwwwwwwwxwxxxwwwvwwgwgvwwwwwwwfwvwwwwgwwgwwwwwgvwwvwwxhwevwvxvxwwvvwvwvvvwwwwvwvwwwwgwgVxxwuwwwwwxxwwwwxwfwxxhwgwgxwwwwwwevwxwvevgxwvwxwwxxwwwxxxvwxwxwwwwwwwwwwwwwvwgfxvxwvxwwwgvwwwwwwxwwxxxxxwewfwwgvwggwvwwwuwvwfwxfwwvxwwwvgvvfvvwwvvwwfvvvwwwxwvwwwwwgwxxvwwwxwxvwgvwwgvvwwvvwxxxxwwxxwxvvwwwxxwxwxxxxwuwvwwwxwvwwwwwwwwwvxxxxxwgxxxxxwxfwwxwxxgfvvvwwwgwwxwgvwvwwwwvxuwwwwwevwxxwxxxwwwwwwwwguvwvvgwxvvvvvwevxxvwgwghwvwwvwwwfwxwxwwwxwxwxvvwwgwfvgwwgghxxvwxwxxgxwvxxxwxxwxwwwxxxwwvxwwwwwwxwxxhgwgxxwwxxwwwxwxwxhwwxvwxxwwwvxwwwwwxwwxxwxwvwwxwwvgexwvgwwwfwwwvgwvwxwvwwvwvwxwwgwxwxwxgwxxxxwwggwwwxxvwwwxwwxvwwxvwwwwwxwxxxwwwwxxxvxwwfehxggwxwvgwwwwwwwwxwxxwwvggwwxvwxWgfuxwgwvvwxxwxwwfxwwwvwwgwxxwwwfxwxxwwgvvwwvxxwxwxwwwxwwxwxwwvwgwwwwwxwwgwxvwvxxxxgxwgwwwwvwwwwvvvxxxwxgwxxxxxvwwfxwwwwVvwgwwwwhwwxxgxwwxwxwwwwwxxwgwwwwgwfwwwwhwxwwwxwxxwwxwxxfwvgxwwhwxwwwwwwxwxxhwwxxxxwxwxwwgWxwVvwgwwwfxwxwgwwwxwwwwxwwwxwwxxwwwgwwgwfvwwhvwwwwvwwwwxwxwxwxwwxwvxwxxxwvwvwwwxxxwxwwwxxxwxxxgwwxwhhwwxxxwwxwwwvwwxxxxxwxwwwxvwvwvxgvvxwwvuvwwwwfwwvgwwvgxvxwwwxwwvwwwwvwxwwwvgxwwfwwVvwvwwgwwxwwWwvwwxwwgwWwvgwwwxwwvfwvwxgxgwxgVvvvwvxfWwvxWfxwgxvvwhxxxwvhwwwwvhwwxxwwxxwwxxwwwvgwwhwvhwwgwwwxwwvwxggwwvxxxxwwxwxxxwwwfuwvwwwvwgfwwwggwgwwguvgwwwgggwwwgvxwwgwwxwgwwfxwwxgwvwwvggvfwwwwwwvVwwgwhuxwwgwwwxwwwwxwuwvgxwwfxxgvwxwfwwwwwwwwwhxwggfxxwxhgxxwwwgxhgxxxxwxxwwwvvwwwwwwwwgwggxgvxhfwwWxwwwxwvwxwvwwxwxwxwwvxgwwxvxvwVwwwwwxwwwwwxwhwwgwxwwxwxxwwwvxwwggvwgwuwvwfvgwvvgwwwwgwxwwgwxwvwwhwwwwwxxxwhwwwxwxwxwfwvwvxgwwwvwwwgvVhxgxwwwwwxgwhwwxwwhxxwxxgwxgwxgwxwXxwwugwxvggvwwwwwxgwxwwwwwwwwwwwwwwhwxwxgwxvxxxwwwugwwwgwwwvwuwVvwgfwgvvwwvwgwvxwxwwhwxxwxxwwhwwxhxwwvwwhwwwwwwwwvwgwwwwgwwwvwxxwxwxwvxwwxwhxhwxvwxwwwvvwxwwwxwwwxwvgxfghwwwwwxwwwwgxvwxwvxggwgxwxgwwwwvvxwwxwwxwxwwfwwwvwxwxwwxxxxwwwgwwxwwxxgxxwwxxwwhwwxgwwxwxwfwVvwvwgwvwwwwhxwwwwxwvwwgvxxgwwxvwwvvwxwxxwxwxxgwwwxwxwxxwvwwvgvwxwxwwwwwxwwxxwwgvVfwwgwwvvwwxgwwgwxwwgwwggvwwwwwxxwWfvuwwfwvvwwwwvwvxxwwwgwwwfxxxwxxwvwwwwwwgwxxxxxhwxxxwwwwhxxxgxxwwvvvwwwwwwxvwxgwxwxgxxxxxwgwwwwgvvxvwwwwhxxxxvwxxwxxxxxwvwewvvwxfwuwwwxgwwwwwwwwwwwwwxxxxxvwvfwwwwxwhwwxwwxxwwwwwwxxxxwwxgvwwwwwwxxxwwxxwxxxvwwhhwxwxxwxvwwewvvwwwwwfwwwxwwxvwwwwwxwxwxwxxxwwwvwwvhwgwwvwwxxxwwwxfwgwxwwxgwxwxxxxxwwxwwwfvwvxwwwwxxhxwwxxwwwwxxxxxxxwwhwwxwwxwwwxxwwvwwxwwxxggwgvuwvvvfwwvwvwwwwwvwwgvwgwwwwwwvvwwwxwwwvfuwwvvwvvwvvuvvwwwvwwfwwwwwgvvwwgwvggwwfwwwxwwwwevvxfuxufgwvvgwgwwvxwvwwwwvwwwxxwxwxwxwxwwwfwwggfwwwgwwwwxxwxxwwwxxgwwxwxhxvxvwwvwwewvwwvwwfwwwuwvwwwguwfvwwwwwvwwvvxxgwwvxvxwvvwvwevfvwgwuwvwvwxxwwwwwwvwwwxwwfwwuwxwwwgxgxvwvxxwvgvwwwvwgxwwwwwwwgvwvwxwwwxxwxwwwvvwvvwwwgwwuwwwwhxfgwvxwwwxwwvwwwwxwvwwvewwwwwvvwwwvwwwwwwwwwvwwvwxwwwxxxuwvewvvwvwwvwxwgwwfvwvuxwwvwvvwwwxwwwwwhwxxwwfwwvVvvwwwwwwwgvwvxvwwwwgxwwwxvwwXwxwwhxgxwgxwwWwwvwgvvfwwwwwwwwwwvhwxwwxwwwwgghwgvwgvwxhxwvwvwgvuwwwvwwvvwvwvwvfwvwwvwwxwwwwwxxwvwwhwwwwwxwvwvvwwwwwwwwgwwwwwwvwwwwwxxxwwxhwxwvwxwxgwxxxxxwvwwvwxxwwwwxvvvvwwxwhwwwwwwwwgxxwhwxwwxwwhwgxwwwvwwwxvvwwwwwwwwfwwwgwwwwxxxfwwwvgwwwgvvvwwwwwwggwvwgwxvgvwxwxxwwwwwxwwwwwvwwwwfvvwwvwwvwwvgwwwwwwwwwwwwwgvwvexxwvwxvwwxwxxvhxwvwvwwgwwvwwxwwwxgwvxxwwwwwwxwxxxwxxxxxxwwwgvevwvewwwwwhxwvhwxwxwwxxvxxwxxwwxxxxwfvwwvwwvwvuwwwgWwwwwwxwvwxfwgwvgwgwgwxgvwwwxwwwwwggwwwvhgwvwvwVgwgwwwgwxwvwxWwwwwwwwwwgvwwhxwxwxfvwwwvvwgvvwxxxwwvwwwwwwwwwgwwwwwwwxwxwwxxwwwxwwwwwvvwfwwwvwwxwwxgxwwwxwwwgwwxwwwwxgxwwwVfwwwWwgwvfwxwgvwwwvxxvwfhwwwwvxxwxggfvvwvgvwwvhugwwwwwwwxwwwwwwvewxwwwwxxwwwwwxvvwgwvhgvwxwwxgwwvxxwxwvxgxxxxxxxwwxwhxwxwxwfgvwvwwgxvwxgwxgxxxxxwwwwxxxxxxxwvgvfvvxwvwgwwvgvfgvwxwwwxxwwxwhxwwxxwwxgwwgxwxvvuwvwgewgvwwgvvvggxxgxvxhgwwgwwwxwwwvwwfwwggwwwwWvwwwXwwxwwgwwxwwwwwgxxwxxwxwgfwwwgwxwgvwwwwxwwwxwxwxwxwxwwwwwxwwvfvwwgxwwvwwvwvwgxvvwvwvfwgvwwwxwwwuwggefvwwvwvvwuwwvvwwwxwwwvvvvvxwwwwwhxvxxgwvffwwvfwxwwwggwwwxwwevgvwwwwwwwwwxxwhwwwgwwwvxxxwwwxgxhxvwwwvwxwxwwwgxwgxxwwvwgdvfwvwwwvvwdfgwwvuwegwvvwwwfwvwvwxxwvgvxwxgxvvxwxvveffwfwewvwwvwwwvxwfwwwggvvgfWvhehwwwwhvxxvgggwfwwfvwvwwwwfwgvxvwwwwwwwwvwwvxwxxwwwwxwxxwwwwvggwwgxvwvwwxxwxvxwwwwvwxwwxxwvvvxwfwwwwwwvvfvwfwvwgvwwfwwwwwxxxvwwvegwwwvwxfvuwvwgwwwwxgvwvwwxwwvwwxwwxwwwwwvVvwwwvvwwwwhvvwvxxxwhvvfvvvvvvwxxxwvxwgwhwwxwwwxhgvvwwwvwvxhhwwwvwwxvwwwvvgwxwfwxwxxwxxwhxwvwvvdffwgwgvtvvxvwwvxevwwgwfvxwvwwwwxgwxwxxxwuwvwvwwwwgwgwwwwxwgxxwwwxwwwwggghxwwwwxwhxvgvwxwxwvwvgwwwxxwvwgwgxwxxxwwwwwwwxxwhwxwwwwwwwxwwwwwwwwxxwwxxxwxxxxxxwwwwwwwwwgggwwxwwwwwvwwwwwgvwvwvwwvuwwvvvwvvwwvvvvwvxwwgwvwfwwgvwwwwgfxwwxuwwvuvgwhwVvwwvwxwfggvwxxgfwwwxwxwwggvxxwxwvvwwgwwxwxwwwwxhxxvwxgwvhwwwgwvwwwwwuwvvgwvgvwuwwxwvewvvwvvxxwwwwwwwwwwgwvwvwgwwwgwfxfwwxwxvvxfgvwwgvwvvgwxuwvxwxwwxwgwwwxwwwwwgwwwvwggwxvwwwxvwwwxwgwgwvwxxwwwgwxvxvxgxxvvwxwgwvxxvvwvwwwwwwvwwvwvwwxwwwwwwvvxxwwwwwxxwvwwwwuvwwwvvuvwwwuwwwwwvxvwwwwwxxwwxwvwwwgwwwwhxxwewuwwwwxhhxwwvwghwxxhgwwwxgwxhhvwvwwwwxwxwwwuwwwwwwwwwwwwgwxwwxxwxwhhwwxwwuwxvwxvfvwwwgwwwwwvuwwvwwwwwxwvwwwwwwxxwxwvvwwwwwxxvwvwvxwxgwwvvwgwwwwwwwxwgvgwwwwwwwgwwwwwgfwwwxwwxxgwgwxwwxxfwwwwwxxfvwwwwwwxgwwwxvxwvxwwgwxwvfwwfwVxgvwwwwgxxwwwwwfvwwxvxwgwwwwxxhwwhwfuwghxwvwwwgwwwwwvwwwwwgwvwvgvwgvwwwvwggwvwwhvvhwxgwwwwwgvwwggvwWvfwwfwwxxwwewwwwuxxwxgwxXxvwwwwgwwxvgwwwxwwgxgxxwwwfwxxxwxwxgwxwvwwwwwwgfwwwWvwwvwggvvwwgwuvxwwwfgwuwwxwvwxwvwhwxxxxwwvwwwwvwwwvwwgewwwgvxWwxfxvwVwwwwwwgfxwWwwwxwwfwfwwxxwwwvwwxwwwxgwgxxwwwxxwvvxxxvwwwxwggxhhxxxxwgvwvwwwxxxwhxXwxvgxvwvwxwwwwxgwuxwxwgwwwwguxuwwwwfwvvwgvwgvvwwwwxwwggwwuwwuwvwwwxwhwxvxhgwwvfwfvwwwwwuwwwgvvfvgwWxxwxwgfvgdgvfwwxxwxfwggvwgxwwvwgwwwwfwwxgwxwxvwwvvgxwGwuXxxwwwwwxwwwwwvwhgvhwggwhwgwfwwwxvwhfwxwwWxxxwwwxghwgvwwwxwxvxwxwwwxwwwxhvwwuggwvwwwwfwdgvfguwgugwfwvxgwfwwhuwwwvxwwwwwwwxwwwwwewxhgfwguVvwvwxxxwgvugwwwwggxWwxgwwwwwwwwvwuvwwxhggvwxfgwwgwwwwwwwwxwwgwvwgxgxwxxxwwwxwwgwxvxwxwwxWWgwgwxgwwvxxwwwgwxfwwxwwwgvwwxxxxgwhwxwvgggwvwxxhvxwwwwwwwwwwwwwwwwxwwwwwwxxwwwxguvwvvuwxwwxwwwvwwwwwgvwwwwwxwwwwxwwxxxxwwwvvwwwwwwwxwwwwwwwwfwwxxwwfwxwxxwwvvwwwwwwwxwwxwxxwxwfwwwxwwwxwwxwxwwxwvvuwwwwvwxxxxxvgxuwwwwwxwwgvwwwxwxxwwwwxwwwxwxwvvgwvwXwvvwvwwvwwvxvwxxwwwwwwwxwwwxxwwwwwwxxwxxwggwhwwwwxwwwwxwxwxwfwwwxwwxxxwxwwwwwwxwwxvxxxwxvwwwxwwwwxwwxxwxxwxwwwxxwxwxwxwwwwwwxwwwwwwwxxxwgvwwwwwwwxxxxwvfwwfwvwfvwwwwwwwwxwwxVuvvvvgfxwvwwgwvwwvwwxwwwwVewVwwxxxwewgvwwwwwwwwwwxwwwxxwhwxVwwfwggxwhwvwggwxxhwwxfwwgxwwxwvwwwgxwxvwfwwwhfvxxfvwwwwwwwwxwwevugwhvwwwxwwvvgfgwwggwxwhwfvvwwwwwwxxwwwwwwxxxxxxgvwwgvxxgwwgwgwgvgwxfewwhxwxxxxwfvwgggwvwxxwwxwwvwwwwvfwwvhwwwwwgwwwgwwhwxwwxxwwwxwwwwwwxfwwywwwwwwwwwwwwxwwwwwwwwwwwwxwxwwwwwwwwwwwvvwvefgwwvvfwgvwwwwwwwwwfgvwgwwvwgwuvwWgwwwwwvwgxfwxfwwwwwwwwxxwwwwwwfwwwwwxxwwwwwwwwwwwwxxwwwwwwvwvwxwwxwwwwuwgxwxxggwwvhwgfxwwxwxwwxWwwwwvgwgvwwvwwwwVgfwwwwwvvfwvfvwwvwwwwvuwgfwwvwwwgguwgfwxwwwwwwwxxvWxwwwwxxgWwwUwwxwwVxxvhwwxwwVggfwhwwwwwxwwwwxwwxwwvgwWgxwxwgxvwvwwwwwxxxwwfvxWxwwwwwxxwfxxwxvxwfggUxgxxwwvwwwwwxwwwwwxxwwwxwwwwfwwwhwxwxwwxwwxxxxxxwwwvvuewwwwwggggvvwgvwwXwxwvegwwgvgwfXxgwgwxgvvxwwxxwwwgwxxvwwwwvwwgwwwwwwwwxwwgwwwwwxwwgwxxwxwwwwwxwwgwwhwgxxvvwgvugxwwwhxwwxwwxxxwxwxwwvvggxwwwwwxguvVwgvwwvwgwevvxwwwvxfwXxxwgvgvvgxgxwwwwwwgwwxxvgfwwxgwwwfgvfxxxxxwwwewwwxwwwwVwwxwwxxwxxggwwxhxxvwwvuvvxgwwwwhxwwwxxwxxwxxxxwxxxwvwwwxwwvwxxwxwxxwwwtwwwvxwfwwwvfVvwxvwhvgvefvwwwwwwwfwvgwxvxwvgwwvvwgwwxhwwwgfffefwVfvVWwwwwwwwwwwwvvwvgwvwvwwvwwvwwwwwwwxwvwwggwwvgwwxvwwwvgwfwwwgwwxvgxhfvwUvvwwwfvwvxHwxwwwwwwvgwvwvwvwwwwgwwxxwwwwwxwgvfvvuwwvwhwxwwXxxwxwhffwwwWwwffVwwwwgffwwwwevfewgwvwvgwwwxwxwwgvwwwwwwvwwvxvwhvgwwwwwwwwwwgvwwwwyxGwvwvwwwwwvvwxxxwvwwgwvxwwwwwxwgxxwvgwwwgwwwxwwgvwwxwwwwggwgfvvxxwXvwhhwxxuwxwxxxwwxwhfffwwwwwwwvgxxfxwwwwwwwwwxfwwvgxGxwwwwwwhffwxwxxhffwwwwwvvwvfVvvwwfwvefvwwwwfwxffgxwwvfwvwxwvwxvgxvxwxwwwwfefwfUfgvvxSvgUwwwgvwwuhwwwfvwvwwwwhxwgwwwwwwhwxgwgvwwwxvwUvvvwhgwvwwgvxwhwwwwfuuwggXwwwwvxgwwwwwwwwwwwwwfwwwxwwwwwwwxwxgxxxhxwxwwwxxwwwwwwwxxxwXffgvwffVwwwwxgvuhwffUvgwgwSvgUwfwgwvwwxwwwgwvwwwhxwvwwwvwxwwwwwgwvwvffhvwgvggwwwwwwggwgvwwwvgxwwhvwwwwwwwhwgWvgwxwwwwwwxxwwhxfwwwwgxwwwxwwwwxxxwwwwwgxgwwxXffwxwwwxxwwwwwvwwhwxxxxvwxwwwwwwXffwwwwXffwwwwwvggwwwwwwwwwxvwxxwwwwvvwvxxwxxwvvvwggevvwgvwwgfwwwwwwwwhwvfwwvwxwwxvwwwvxwxwvxxxwvwvwwxwwwxwixgggfvwwvfwwwxwwwwvxwwwwxwwwxxwxvvfwgfuuwwgvwffwwwwgwwgwwwwwwuwwvvfvxwgwxgxwwwvwvvfffwwgWwfvwwwwwgwxwggvwgwwxgwvwhgxhxhxxhvgvvfvvgxgxxwxwwwxxxwfwgwwwxwxwwwwxwwvvxwwwwwwgwwxxgxgxwvwxhxgwwxxwxxwvvffgwwgvwxxwvwwwxxwvwwxxwwxxwwxvwwwUeevwwxwwvevuwwwvxwxwwwwwfvvwwwvvwwwwwwwweVgfvvwgwwwhwhxwwxxxxxwvvwwggwxwwwwwgxwwxwxfvwxvgwxwxgvwwxwwwwxxxxxvwwwwwwwxwxwwgxwvffvdvdVwgvxvweugwvwwwwxwwggwvwvwwxwwxvgwwgwwvvvwxwwvfvguvvgwvwWwxwwxxwxwxwxwxwvwwvfwvvxwgvwwwwwvvwxxwwwfvwwgvgwwxwwwwwwwwxxwvwwuwxwwxwwwxwhwvwxwwwvwggxwxwwwxxwwvwxwgwxwwwwgxwvxvwwwwwvwwwwgwuwxwxwgwwwwwxxxwwvwfvwwuwwwhwvwwwgvwwwwvxwwwwvvwwwwwxwwvwwwwwwwgwwvwwwwwwgwgxxwwxxgxxwwvwvgwwwfwugxvxwxgvwxwwwxwwxwwvwgvvwvwwwwwgvwxwwgwwgvvwxwwxxwxwvwwwwwwwwwwwgwvwxxvxxwwwxwvwwwvwwgwhgwwvxwwvwwvwwwgvwgwxgvvgwwxwwxwvwwwxxwwwwwvxxwxxwgxwxxfwvvwwuwgwwwwgvgwwxwwwxwvxwwwwvgvwvwgwvwxwwwwwxwwxwwgwxwfwvwwxxxvwwgwwwwwxxwfwugwxwxwwwvwwxxwwvwxwxxvwufwxwwwwwwwxvvxxxwfxwgwxfvugvwxvvwxvwwvwwvwxwwwwwwwxgvvwwwwwwwwgwwvxwwwwwwwvwwwwwvvwxxwwwwwxfvwwvxwwwgvwxwxwwxxxxxwwwwwxvxvwwwvxwxxwwwwxwwwwwxwxwvuwgwvwwwwvwxwwvwhvgxwxwwwvxWvwgwwwxhwxwwvwwvUuvvwwwvwggWwwhwvvwxhwgwvwwwggwwhwegwwwwxxwxxxgwvwwefxgfwfgvhwuwwwwwhxhxwwwwxhwxxwwwwxxxgxxfwwwuwxwgwvggwvwxxvxxvwwxwhxhxxxwxxgwtwwwgwxwuxwfgvwuwwvwxwewwwwwxWfwxxwvwwxwxwxxwhgwvvwuwgwuegwwdxfgwwxfwxuxxwgvwwwwwxwwwwwwxwwwxwwwwwefxgxwwwwwxxvvwWxgwfxwxxxxxxwwxhxWxxwxxxgvwvwVwxwgwvfxwwwwwwywxvxxxhxWxxfxwxwxwhxxxwwxwvwwwwwxfwwwwggwxvXxwwxxxgxwxxgxxxxwwgwWwuwwwwwvwwWuxxWvhwxwxwhwwxwwwwxxhwwvwwgwxxxwgvwwwgwwwfhwxgvhwwwghwvwhwgwwwwwxxwxhxxxwwxXgxghwxwwwvwwxwvwwwxwxxwxwwxxwwxwwwwwwxwwxxwxwxxvwwgwvwgwxxhwfwwwwvxwwwwwwwxvxwwwxwxwxvxhwwgwwxxxxwxxgwvvwgfwwgvwwuxwvwwwvwhXwxwvwhwxwwwwgwwxwxwwwgwxwwwxxgwgwwwfwvxwvwxgwgxwwxxgwxxwxxwwwxxwxxwwxxxwxxxgwwwwxwwxxxwwxwggwwxxxgxwwxywwwwwwwwxwwwwwxwvvwfxwwxwxwwvvwvxwwwxwxwwwxwwwwwvxgwwxwwxxwwwwwgwvxxxxxwxgwvfxxwxxwxxxwwwvvwxvwwwxwxxxxwwwwwgwwwwwwxwwwwwwwwwwgxvgxvwwwxwwwxwgxwwvxxxxwxxxwwwwwwxwwwwwxxhwwwwwwwwxwwxwxwwwxwwwwxvwwwxwwwxwfwwwwxxwxxxxxxxwxxxwvvwxhwxwxwwwwxxxwxvwxxwwwxxwwwxgwwwwwwwxwfwwxxwxwxxwxwwwwxxwwxwwxxwwxxwxwwxwwwxgwxxxxwxxwwwxxwwxwwxxwwwfwwxxuwxwwvvvvwxwwvwgwwwwwwxxwxwhwwtwwxxvgugwgwxwwvvwwwxggwfgwwwwxgxxwwwfwwgvwwwwwwwwXxgwfwxvwwwwxxxwwwxwwhwxwxxxwxwvhxxwwhxwxhwwwxvguwwwxhwwtxwgvxwwggvfwvwxwxgxwxwxwwwxgwxxxxugwgwwwxwgvWxwxxwwwwvwwwhwwgwxgwwwwvxwxwwwxxwxhxxwwxwxghxxwxhwxxxhwwwxwXxxxwxxwxxxxxwwwxxwhwwwwgwwhwwxxwvvwvvxwxwggwwwxxwfwwwwgvxwwwwvvwwgwwvfwvwvwwxwxwwwuwwxgwhwdwwfwwwwxwwxvxxxwfwvhwxwwhxghwxxwfwxgXxxwwxgxxwwxwhwwxwwwxgxxxwxgwwgxhwwwwwhwxxwwhvwwwxxxxxwvwggwfgvwwwxwxwxgwxwwwwdwwfxgwwuwwwwwwhwwvxxwwwwwwwwwwhxwwxwwwxhwgwwgvxwwwwxxwwxxxwwwwfxwxwwwxwxgxxxxwxgwwvxxxhwwwwxwwxwxwxhwwwxhxgwxwxxwwwhwwwxxxhwwxxwwvxxhwwxxwvxxwwwwxvwvwwwvwvgwwwgwwwwxvwwxwwgwxwwwwwwvwwwwwwxwvgwvwwxxggwvwvwwwwwxwwwwwwwggwwwgwwwvwggfwwvvgwwxwxxfwvvgwhxxwwwwgwxwwgwwwxwxwwwxwwwxwgxwxwxxwwgwxwwwwwwgwwwwvwwwwvwvxwwxvggwwwwwwwwxwwwggwwwvwgwwwwwgwwwvwvwwwwwwxwggvwwwwwwwgwwfwwwghwgxxxfgwgxxfxxfxvgwwgwwwxwxwvwwwxwwxwwxxhwgwwwwwxwgwxwxwwwxgwwvwxgwwgwwwxwwwfxvwwxwxwgwwwwwwvxxwwgwxwwwwwwwwwwwwxwwxwwwwwwxwwwwwwwwwvwwwvhwwwwwwwwgvxwwxxxgwwvvvxwwwwwvwvwhwwxxgwwvvwxvgwwwvwwwwxwwgwwxwwwwwfwwxwxxxwxxwxwhhwwwwwwxvwxwwwwwxxwwhxwvvgwwvwwwwwxgvxxwwxxwxwgwvwwwwwwwwwwgvwwwvwwwwgwwxxvwvwgwwwxwwwvvwvwwgxwgvwwxvgwwwwwwwwwxwvwwwwwwwfxwxgwwwvwwwwxfwvvwwwvxxwfhwwwwgwwxwxwhwwwxgvwvwxxwxgwxwwwgwwxwxxwgggwwwxvxxwxwwwwwxwwwvxxwwwwgwwwwxvwwwwxwgwxxwxxwwvvwwxwwwwwwxwvwwwwwvxwxvxwwvwwwgwgxwwxxvvwwwvvwwWwwuwwwwxggxvgxwvwVvwwwvgwwgxwwwxwxwxgvuxwgewxxwhvwwgxwvfvfwxvgwxxwxwxxwwwwvwwwwxwwwxxwgxwwvwwgwxgwwwxxwgwgxwguwwgwvvwgwwvgwgwvgxvgwvwwfvfxvwvwwxuwxxwwwxwwxwwvvwxffwwwxwvwwvvwwxgxvfvvwgwugxxvwxxwwxvwxvwgwxwvvvgwvwwwwxxgxwxwwwwxghwhwwwwgxxgwxvwvwxwgwvxxwxgwxwgxxgwggxwvxxxgxxwxgwvxwxgwwxwhwwgwwvgwwwwxwxwxwvgwwwwwwwxxwwWfwvwgwxwwwwwvxxxvxwwgwuwwwgwwhwwxxvhwwwwwwxwxxhvwwweWwwwhwwxwwxxxxxxhwxvwxwvwxxxxhhwvwwgxwhxgwxwfwxwxwwxvwxwwwwvxwgfwwwxwwxwwgwxwxxxvxwguvgWwvwxwwwwwwwwuxxwxwwwvwwwxwwxwwvwwhgxxwwxwvgwwgvwwwgwwwwxwvxxgxgwvwwvgvwwwxwwwwwxwwxxwxwwvwuxwwxhxwxwwwwwwwwxwwhwwxwwwgwhwwxxwwwxwxwxxxfxwxwwvhxwwwxvwwwxxwxxhvgwwfexwwwwgwwxgvwwfgwvxwwwvwwwwwfwvwwwghwwwwwvvvwuwwvuwfvwgwwvgwwgwwwfgxwugwwvwwwwwwxwvwwwwwguvwwwgvwfwwfvvwxxxxwwwwwXVwwxvwuxxxxxwwwgwwwwwvwwwwxgxxwgvxvgwxwxxvhhxxwwxvwvwwwwvwgwwwwWfwwwwgwwvwwwgwwgvvvwwgwwwwvwvvwgvvwxggwwwwwwvgwwwfgwwwgWgxVwwvewwwwwwwwWwwwvwfwwffwxxwgwwwwwhgwwwvwwgvhgwxwxwxwwxxxxfgwxwxxwwgwvxxXxvwwwxwgwxwgvwwxwwwwxwwwxvwgwxuwxvugvwwwfwwwuwwwvvvwgvwxwwvvwwwghwuwwwwxugwwvwwuvvvwuvwfwwwggwwvwuwvfdgvfwwfwwwvxwwwxuwwwwwwwwwwewhwwwwvvvvwwxWXfwwwGwgwwxwxwvwgwwvhwwwwxgwhvwwwgfwwwxvwgwwxxwwwwxgwgwwxwwwwxwwvxgvwwwghWuxwxwxvwfvvvfwwwxxfwvwvwvWuwwwxwwvvfvwgwwxwwdgvfvwvvwfxxvvwwvwfvuwvwvwxWwugewwgwvgwgxwvwwxwhvgwxfwvwwwwwgwgxuwgwvwxwwwwxwxhwvwfwxwvwWwgwgwxwwhwgxwgwwwxwwwwxgwfwxwgwgwwwgxwwwwvwwxxgvvwxwxxhxxgwwgwgvxwwxwxwgwxvgvfwwgvwgwwvgwvwwwxvxxvwfxwxgwwwwvwwwfFwwgwhwuVggFfvwwgwvgwvvvwwwwgvgxwvhxvfvwwxwgxxxvwgffwgwvwwxwfgwwwwxwwhVwwhwwwxgggwxwxxwwhwwwwfwfgwgwwwwwwfwvgxwgwxxwwwwvwxxwxwwxxgwxwwhxxwxxWwvwwWwwxwvwwgfVvgvwwvgwwxwwwwwgvxxgvghxvxwgxwxggewwwgwwegwwfwffxwfwwvgwvggvfhxxvwwggvWgexxgxwwxxwvwwwwxxwwgwgxxhgwwwgwxwxxwgxwxxgwwxxwwwwvxwwxxwwvggwwxxggxghxwxxwwwwwgxxwwxgvvvgfwxwxwwfwwwfgwwwgxgwgxwxxxxwwfwxxwxxwxwwgvgvtgwxwgegfdfxgwgxwgvwwgwwxwwxwxwgfxwgxwgxvgewgvwwwxwvwghgxwwhwhggvfgxxwgwxxwwwvggvwwhwwxgxvgwgwxwwxwvxvwxwgvxwxxxwwwwwxwwwwxxvwwgwugwwwhwxwwgevxwgvwfxwvgvwwxwxwxxvwwwwxwwwwxwwxwwugwwwwwwgwwwgwxxgwwgwwwxwwwxhgwxwxwwggvgwgwwxwgwvwwhwvxhwwwwgvwxwghwwvhggxxxwwxwxwwwxfxxxwwwwwwwwwwwwwwwxxwxwxxwuvwwwvwwwwwwxwwwwwwwgwwwwwgwgwgtvvwfvwwwwwwwvwxuwvwwwxwwxxwxxxxvwwvWvwwwwvwwwvxvwwfxwwgvxxwxxwdwwwfvwvwwxxwwvxxwgwwwwxhxwxfxwfwwwvgwgvvwgvwwwwxgwxwwwgxxxwwwxwxxxvfgvwvgwvugwwgwwwxwuvvxxwwvwuxwwxxwxvwwxwwxvgfwvvWwwwwwvxwwwwxwgxwwxwwxwxxxwxxwfvTvwwgwgxvwvwwxxwxwxxxwvwwwwxwwwvwwvwwWwwwvwwwwvvvxxwwxwwwxwxxxvfvvuwwwvwfuwwvwgwvwwwwvwwwxxxxxwvvwwwwgwwwxwxwwwwvxwwwwwgwwwwwwxxxxwxxvwwwwwvwwwxwxwwwxxvwhwwgwwvgwgxvvwWvwvgfvwxwwvwwwXwwwwVxxwwwxwwxwxwxxvdvfggwwwfgwwtvfwgxwxwwwxxwwgxvxxxxvwwwwwxwwxxwvwwwwxxwwwwxwwxwxwwxxxwxgwxwwvwwwwwwwxxwwgwxwhxwwwwxwxxwwwwxxwgwwhvgvwwfvuwxxxxvvwwvxwwvwvvwwxwwwvwvwwwwxvwxwwxxgwxffwwxwfuvwwwxwwvwwwwwxwvwwxxxwxxxywvwwwwwwwwwfwwwwwwwwwvvwwwwwwwwxxwwwxwxwvvuwwwwUedvxxwwvgvxxgwwvvwwweefwxxxwwxxvwwgvgwwwwgwgwxwxxxwwwwwxwxxxxUdevwwxuwwxwwvxhvwwwwxwwxwxxxwwxwwwvxwwwvvwwwwwwwxxxxxwwwwvwvwxxwvwxwwxxxwvwxwxxhwwxwxxwhgwwwxxxwwxwwwxxxxxwxwwwwwxwxxxwwxwwxxxhxwxxxxxwvwfwwwfwxwvwhwvwwwwxxxxwxxwwwveefxwxwwxwwwxvwxwwwgxxxwxxxxwxwWxwwwwxxxwxwwwwwwwxxwwxxwwwwxwwxwwwwwwxwwwxwxxxxxxxwuwwwxgxvvwwwwwwwwwwwwwxwwwwwxwxgvgwwvvwfguvwgffwwxwwwgwvvxxwwwwxxxfgwxwwwfuwwwgwgwxwwxwwxxxwxwxxwuvwxwwwwwgwwwwwxwwwxwxgvwwwxwxwxwwxhwwwvwxxwwggwwwwWwwxwvfvvwwwwwwwxxxwxwxxwvwxwgWWwwwwvffVgwvuvwfWvxxxwvgwhxgxwwwwwwwwvwwxxwwwwwvgfwvvuhwwxwggwxwwgvxwwwwxwxxxxwwxxxwgfexwggwwugwxgwwxxvwxvvfwxxwwwxxxwxvvwwgwwwwvvgvgwwwwvgwwwxxxuxxwxxffvwvwwwvwfwfwwvggwgvwwvwwwwwwwwwwwwwwxxxwwwwwvwvgvvxwwwvgwwwvwwgxvvwwwwwxxxxwwwxxxwxwwvwwwwxwwwwwxwxwgwxgxwwwxwxwxwxhxxxxxwxffgwvwfwwwwxxVffwwwwwxwvwwwwwghwggxxxwwwfueWfwvwwwwewvgeVwwhwvgxvxwuwxwwwvvwwwxwgghvxxwvxggvvwgwwvvwxwwxvwwgvggwvwwwxgxxwwwwxxxwwwwwgvwwwwwwwggxhgwwwwwwvxvwxxggxwwwwwxwwwvfwwgwxxwwvwwwwwwwwwwwvxwwwwgVfxvvwwvvwvvvgwvvwgxwvwwwvvfvvwwvwvwvwxxxwxwwgugwwwwwwvvwwxvwwxxwwwgvwwwvxgxxxxgvwwgwwgwwwwvxwwwwgwwvwxxwwxxxwwwwwvwvwwvfwvvwvwfwwwwfvvwwwvvVwwvvwwwwwwhwxgwwwgwwgfvwgwwwgwhwvgwgwhggwwwwvvvvwhhXwwwwwxwfugwvvwvvvvwwwwgvvwvwxwvwxwvvwgwwwwwwxwxwwwvwvxwwwwggwwwgwvwwwxvwgvxwwxwfxwvxwwxvwvwwxwwxxwwwfvwefxwwvwwdVwwwwvvwhwwvwxuvvwxxwdVvvwwfwuwvvwvwwxwxxwuwwvwvvwxwwwwwxgvdvuwxwwweuvwwgwwwvwwwxxwvxwxwwxhfuwgxwwwwwwwxxvxxxwwvwxxwxwgxwvufuvwgvfvvvwwwwwuwvwvwwvvvwvwwwwxxwwwwxvggwwxvwwwfwvfwgwwwwvwfwvwwwhwwfggxgvwfxvfWwwxwgwwvwwwwvewgwwwduuvwwxwwwwwwgvvxxwwxvxwwwxwwxvwvxfwxwwwwwwwxwvwwhwwwwwxvwvfwhvgegwxwwwvwwwwwwwxwvwwwwvwvwwxwwwvwwxxfvwwwvvvwwwwwwwwxugegxhwvxgwwUVwwxwxwwxwwwwxxxwxvwwwwvwwwwxxwxxvxxwwwgfxgxxwwwhxwwvvwwwwgwwwwxxfvvwvvfvwfvwfeughwwwwxwffvvxxwxgxgvwxwwwwwxvwvwwxwxwvwwxvwwxwwwxwfuufxxwxwxwvwwgwwwwwvwhwwxwwwxxwwxwwwwvggwvwwwxxwxxvvwvwufugwgwwwxxxxxwwwwwwvxwxwwwxwwwwgxxxwxwwwxvxwwwwwxxwxhxwxwvxggvvxwwwwggvwvwwxxwxfvvfwgwfvwxxwwwxxwxwxwwwwwgwwxfgxwxwwwwwwxxxwwwxwxwxwxwwwxxxxgwwxwvgwwwxxwwvhvxwwhwwwwufwvwgvvwvvwwgwuvvwgwvgwwffvwwgwggwwwwwwwgvwvwwvwxfvvfwTewvFfftwwwfvwwxvwvvvVwwUwfvwvgwwvwwxwVfuvwwgwxwwvwwvvvuwfeweufvvUuvvfvwgvwwvvgvwwvvwxwwwwxhghxxwevvwuwgwvvwwWwfwvxxgFwxggwvwwxgwxxxxgxwwwhgwgwugwfvwwfwuvvwwx4effhvwffuwvffwwwvgvwgvvwwvwgvVwwwvxvwwwxvwgwVegwfwvWVugvugfggwfwwhwvu7XhcvwwvvwvgxwgwwfgfgxxxUxwwvxgwvwgvugvwwgvvgvvfeggggufwwggwfwxwvwwwwvwxwwxwwwwxhggwgvfvvvhwggwwewgfxfgFXhEgfvfhfwvwwwfxwwgwffwgxfxwwXvwwwxwvwwvfvwvwvwuvwfffwwwwwvwwxvvvvwwwwwwwxwfxwxxxwVevwuwwwfwwvwxwffvfwwwVwwwwwwvwggwwxwwxxwwvwwwwgwwwwwwwwuwvwxxvvwwwwwfwvwxwwwwwxgvwwwvWwwwwwxwgxwvvwgvvwwxwvwwwwxwxxwgwwwxwxxwwwwwwwxxgwwwxwxwxxxxwwwffwvwvwwuxgfwwgvfvhwvgvvgwwwgwwxvxwxvgwwwwwwwggwwwxwwwgfvgwvwfvxwwwfhwgvGwhhTwwgggvxwwwvwwwwhgwvVwwwwfwwwvwvgvwguvxwgwwxwwwvwugwwgfwwwwwwwvvhwwwwxwwgwwwvwwwgwwxvxwwwwwwggwwvxwhWvwvwwvvwwwwwwwwwgwxwwgwxgwvwwvwwwwwwxwxxxwxwwwwwwxgwwwvwwwxwwVexwwxxwvfwwxxxxxxwxxwwwwxwgwgvvwwwxwwwgxwguwwgwgwvvwwxxvwwwwwwwwvwvwxwxxwxwwxwxvfwvwwwwwwvwwwwwxvfxwwwwvwwxwwfggwgwwgvfvwvfgwvvvvgfxvwgxwwvvxgwxwwvfwwxxvfggwwwxxwwwwwwvwwwvVfewwvxwvwxwvwvfwwwwwwwwxwwxxxxwwwwxwwvgwwwwhwwwvvwwwwwgvwvwwwwvvgffwwwwxvwwwvwwxxgvwwwwxgxxxfvgwwwwwwwwwwwwwwxwvvwwxxwxxvwwwwwxxwwwwxxvxwxxvvxxvvwwwwwgvvhwwwxxgvvwxwgxxwwxxxxweuvfguwvwwwvvvwxwwwvxwggfghxwxxwwwwxwwgvhgxwxvxwxwxvxwwwxwwxxvxwxhxwwwwxxwwxwwwwwwxwxwxwxxwxxwxxxwxxufggwvvvwwwwvvwwwwfvwwwwwwwwwwwvvvwxwvwwuwfuwwwwwfvfvwvwwwwwwwgfwwwwgvwwxwWwwwwwwwwxwwwwhxfuwvwwwvwwwwxvuwwwxwwggwwgwwxwvwwgwxxxwvwffwwgvvvwwfvuwwwwwvwgwhfgwwwwwhxhgwwwwwfvgvwwfvvvwxvgwvwgvfwuwwxwwwwwwwwwxwwwwwwxwxwgwwwwwfwwwwvwwvwgvfvtwwwwwwwgwxvwvvgxwxxxwgxwwwwwVxwvwxgvwvfvfvwwvvvwwwwwevwwwgwwvfwwwwwhwxwhvwvwwwvvvwwwxwhgwwwfwgwvxwwuwwewwwvwxwwwxwvwfvuwvvwgvwwvuwvwvwwfugwwwwwwvwvuvwwhwwwwwwwwwwgewuvwfwgvvwwvvwwwwwwwwwwfvgvwwgxvfxgwwwwwxwwxhwwwwwwwvwfwvwwwwwfvhwwwwxwxwwwwwxwwwwgvwwwfxxwgwwgvvwwwwggxgfwwwwwwwwwwhgwwvwwwwwvxXxwwxwvwxwuwwgwvxffvvvvwggwvwufwegwwwvvwwgwwwwgWwwvwwwxwwwwwwxgWvwwwvvfvvwwghufwvxwwvwwwwvgwwfxwgwwxVggwvwWwvxwxwwgwwwwwvwuxvwwwwwwxgvgvgwwvxxwwwxxxxwxxwwwwxxwwwvgvwwfwwwwwwwvxwwxwwwwWxwwwwxvwgwxvwwwwwvvwwwwvwxgwgwwwwxwwwwwwvvwwvwgwwxwgwfwWtgwgvVvvwwweVwwxhwfvvwwwggvfwwwgwxwwwWwwwxwgwgwwxvwwwgvgwwwgwguvvvwhvgxwxxwxxfwwvghwwxxxwwxgevvgfvgwwxffvwxwGvxwwwvwwvwwxwwwwwxxxxwwxwwhgwwvwwgwfwvwWtggwwwvvwwxwwggwwvvwwvwwwwwgwwggwwxgvvvwxwwvwvwgvgfwvfwwgwwvfhWuwvwxgXxxwxwwxwWxhvxwgxxVfggwwgwwwwvffwwwgwvwwxwvwgxxgwwwwwfvvxwwWwwwwwwwvwGhXvwvwfxwxwxxwwwvwxfhwwwwwwgvvwwwvuvwvuvwgwvwvvwwxwffwvwwxxwwxxwxwxwwfeufgwvwufevgwgvfWvwwvwvxhwgwxwwhwxxxhwwwhwfwvxwvvwwwvxffwwwvxwxvxxwxwxvvxxwxwxxwgvwwwwvwwwwwwwvwwwggwwwxggwxxxgwwxxxWwxgfvwfvwwevwgevwwgwvxvwwvwfwvwxxvwwghhxwxvwwwwwvgwwwwvgwgWwwGevwwwhvwwwxxxgwwxwwvwgwwxwvgwwgwfvxvwwwwxwwwhwwwxwuxwxwxwwwwxwwwwwxwwwwwwwwwwwwwxwxhXvxwggwwwwwvwwxwhVvvxxxwwvwgwgwxxwvwvwvwgvwhwwvwwxwwwvwxwwgvuwwwwvfvvwwvwwwxvwxxwvvvvwwwwxwwxxxxxxvgeUwwwxwvwvxxwwwwxwvwxxwwvvfgwvwwvwwxxxwwwwwxxxxxhvgwvwvwvfvgfwvwwwwwffvxvvgvwwwwwxxwwwxgxwwwwxwuevfeevuWevgvuvwvvfxhwwvxwggwvxwvwgvgxwfxwxhxwwuwvwfvvwgwwxwwggwfwxwwwggwwwxxwxwxxwfeevvfvfwwwvfwwxxxwxwwxgvwxxwwgvxxwwwwvwxwwwwxwwvvxwwwwwwxxxhwwwfvfvwxwwwwvxvwwwvwwfwxxwxwxxhwwvvgwwwxwxwwxxxxxwxxvwwwwxxwxwwwxwxwxwwxxxxxxxwwxfvwvVvvgfwgwvwvxwgwwvwggwwxgwwxwufefwvugwxwwVxwxxxhxxxxwxwwwwwgwwxwwwfwwxwvwwvwwwxxxgwxwwxxwwwxxwwwwwvwwfgwwwxwwwxwwwxwwwgvvwvwwvwwvwwwwwvwwwwwwwvwwwxwxvwvgwwvwwwvwxvwwwxwwwxxwwwvwwwwwxwwwwwxwwvwwwfvwvwwwwwxwgxxwvwwvxwwwxwwxxvwvwwwwvwwwxwxwxwwwxxxwxvwwwwwwwwvwgvwwwwwwwgwhwwvgwwwwwwwwxwxgwwwwwwwwwwwwwwwwwwwxwwwwwwwgwgwwwwwwwwwwwgwwwwwgfwhxwgvvvwvgwwwgvfwwvwwwgwwwwwwxwwwwxxxwwwvwwwwwvxxxwwvwxhfwgxxvvwwwwxwxwwgxxwwwvvwwvwgUfvwwwgwwvwwvwwveevwwwvwwxwwwwxwwxwUewvvggwvwvwwwwvxwxwvwwwwxwwwwwwxwwxwwxuuvvwwvwvgfhwwwwwevvvxvvxwwwwxxwxxwvvxwgfvwwxwwwhvwwwwwwxvxwwwwwxwxxxxfvwwwwwvwwvwggwvwgwvwwwvvwxwxxvwwwwxggwgwvwwxgwwvwwwhxwwggxhvwxwwwvwwwwwwwwwxwwfwggwwvwwvxgevwwwwxxwwvwwwxfwwwgghxvxxwhwxxwwxwvwwwwxwxgwfxvwwwwwgxwxxwwvwwwwwvewwwggvgvwwvwvvwwwwwwwwwwvvwwwgwwwwggwfwvwwwwxwxgwwwfevwvfwfvvwxgvwwvxgwwwwhggevvwwwwvwwwwxwwxxhwvvwwggwvvwvwwgvwwwgggvwwwgwwwfwwwwwwwxxghxxwvfwwvwevwxwwxwxvgwwwgwvfwvvwwXwwwxxxxxwgwwwwwffvguvwwvfwggwfwwwvxwwxwwwgwwwwxwwwwwgvwwwwwvwwwwxxwwfvwvwwwfvvwgfwufwxxwwwwwgwwxVwwvwxvwfwhxxhvwhxxwwxwxxwfgWgfvgfvwwwwwwwwwwvwxwwwxxxxwxwwxxxgxxxxgfuvxgwfgWxwgfxxwgwxvhxVxwgwxxgxhvwxxgxwxwwwfffvwvwfwgwwgvwwvwwxwwwwvvgwwwvvxwwVgwxxwwxhwxwgwvvwffvwvgwvfvwwwwxwWwwwxwhhwfwwwxwwgwwwwxwwwwwwwwgwvwwwvfwvfggwwfxwwwwhwwwgwwwxvgwwxxwwxxxhwxgxwxwwgwfgwwwwwwwxwxxXwxxwxxxwxxxwwxwxwwxxxwggwxwwxvvwfvfVvvxvwwVfvwgfwwgwwvvxggwwwwwwxwwxwwwxxwxwwvvvwgwwvfwxgvwgxwxgfgxfxhwgvwwxwwwwwvxxWfwwwxxxgxvwxwwwwxgwfwvwwwwwfggwwvhwwwwxxxwxwwwxxxxwwwwwgwwwwwwwwwxhxwhggwxwwwxhwwxgwwwxwvwwwxgxvwwvwwxxwwxwwxvgwwwfvwwwwwguwxwwwvgfvwwwwwwwwwxggvvvvvwxwxwwwxwxxxvwxwwwxwxxwwvuwwwxxVevxxxwwwxggvvwvxwwvwwwxxvwvvwxxwxxwxwvwwwwwwwwwwwwgfwvxwwwwvwxwwvwvvwwwxwwvvwwwwwvwgfvvfvwfvvUwwgwwgfxwVxxxVdtfwwvfwvxwxvwwvfwwwwwxwxvvfwwwwxwvvwwvwwwxwfwwwwwgwxwwwxxwettfvwwxxwxvwwwwfwxxvwvvwwxxwwxwvxgvxxxwwxwxgwwwfwwxwxwwwxxwwxwvvvwwvwxvwvwwwwxwwwxwhhwwvgwwwwgwwxwwwwwwwxxxwwwwxxxwwxwxvxwhhwwwwwwxxwxxxwvwwwwvwwwwwwwwwwwwxxwwgwxwwwxxwwxfvvUwgwwxxwxwwwfxxghwwvwwwgwxxwghwwggxfwwvwxxvwwwwvwwvxvwwgxxwxvwhxwxwwwxwxvxwwwxwwxwfwwxwxwwhxwwxxwggwgvwvxwvxvwvwwwwvwxvwwwgwvwwgvwwwwgvwvfwvwwwwwvwwwwwwwwwxhwvwgwwwwfwwwwwwwxxxwvwvwuwwvwvwwxwwxxwvvvvwfwwfxhxgwxwvwvwwvwxxwgxwwxwwwwwwwwxgxwwgwxwwxfwwxwgvwwwwwvxwvfxwvwxxwwwwVwwwvwwwvwvwwwwxxxwwgwwwwwwvwwvwwwgxggxvwwwwgxwwhvwxgwgwvwxwwwwwvwwwwwwxwuwwgwgwwwwwvgvwwgxwwxxwxvwwxwwwwvwwwgwwwwvwwwuwwvxwwxwgxwwxwwwwwxxxwwxxwuwwvgwwwwwwfwwvwwvwwXwvwxwwwwwvwwxwwwwvvwvvwwvwvvwfwwgwwxfvvuwwvffwxwxwwwwwvvwwxwvfwwwvgwwwggwvwwvwwwhvwvxhggwwxxxvwwghhwgxxxgxwxwwvvwvwwwvvxggwwwwvfwxwwwxxuwwwvwwvwwwffwwffvvvwwwxwwvvvxwwwwwwxghuxwvvwwxgxwfgvuvwwwWwwwvvfvxvwwgwwvwwwwgwvWxuvggghwwwwwxwwwuwwwvwwwxwwxvwwwxvxghvwhwwvxwvxxxwwxuhwxgwgwxwwwwxwwxvgxxgwxxvxewwhwfwvwwvwwwxvxuxgwwwvvvWwvwwwgwwwwwwwwwgwwxwwwwwwgwwxhwfwuwggwwuwvvwwwwgxwwwwwgvwwwwfwwfwuuwwgwvhwwwwxwgwwwwwwwwwwwvwwwvwwwwwgwwvwwvwwxuwwvwxwwxwwfwwwxwgxvhwwwxwwvwwwwwwwwwxxwxxxwxwwwwwvwwwwwfvwwvwwwggwwwwuwwvwvwwwwwvwvwuhwvwvwfgwxwwwwwwwwvwwwwwwvwgwxvxwwwwwfxwxuwwwgwgggwgWwxwfxwxvhxvWwwxvwwwwvvwwwvwvwwvwwfgwwxwwxfuwwxwwwwxwwxwwwwwwwwgvgggwwwwuxwwvgxvwwwxvwvxwgvxhuxwxxxwwwwvwwfvvxwWwwwwwgwwwwwgwwwwwwwxgvwwguwwwwwvvwwwwgwwgwwwxwvwwwwwwwwxvwxwwxwwwwgwxfwwvgwvWvwwwWwwwwugwwwwwwwwxxhxxwgguwgvwxwhwwwxwxwwxuwwxwwwwuwwxxwxwwwwwxxxwxxwwwwwxvvgwwwgwgwfwwwwvwgvwwxwwgwvwwvvxfwvwuwwxwwxwWxwwwwfXwwwhvwxvwxwxgwwwwgXwwwwwggvwvwghwuwwgwgwhxwhvwwWwwwwvxuxwvxwwwuwxwxggwhwwwwwxwxxwwxwwwwXwwwwwxhwxxwvwxvxwwvxvwwwwwwgwWvvwwwwwxxxxwxuvvgvwwwvxvwvwwwwvwvwxwfvvwgwwwvwwwhuuwwgfvVwhuvfwuwfvwvgwvwwwgvguvvvvvwwvfwvgwwwwgxwxwgvvwvvwwfgwwvWwwwwwgwvxwwxfvuvvwVwwvxxwvwwwwwvwhvvffevvwvwwwxxwwwwxxvvxwxxwvwvvfwwfwwWxwwxvxxxgwxhVwwevvwfvwwfgwwwvfWwvwwvwfwwgwwfwgwwfwuwvwwwwgfuvwxgwgvvfwwvevgVwufwwgwwVwvwfwwwwwgwwvwwgwwwvwfwvfxgvwWgxfxxhfxwvwwvvfvfwfvvwwwgfguwwfwwwxwwvwwgvvvfwvfgxgwwgwvvxfxvwgxwwwwwfvwwgvwvgxwvwhwxwgfwexgxwwgxhwfxwvwwxwxgwwwwwwwfvvwuwfwwxwfwvwvwwvwfvxgwwgvwvvvwvuwvwwwfvvwgvWxwwwfuvevvvvwvwwwwwfvwwwfwwxxwxwwfwwwwwwWwwWwxxwwwwxvwfhhxwxwwwguvwwvwwwwvwwwgwgwwwwwVwwwvwwxxwwxwwwvxwwwvwwghwwwwwuwwvwwggxgxwxwxwwwfxwwxwwVwgwgwxhhwwwwxgVwwwwwxufvgggwewwwvwwgVwwwvvwfxgfwgguvvegvfwwwVwwhWwwwwwgwgwhfhfggfeevvWwgvWgvfwwwgggxgwxwgwwwhwwxvwhWgwwvwwwxxxwwvwgwwxxwvvgvwwwwvvwwvwwxxxvwvvwxggxgwxxwvwgwxwvhwxwwwvvgfwvwhwwwggfwgwwwxwwwwwwvgwwxxwgvvwwwwwwwwwwwwwwwvwwwwwgwwxwvwvgwwwwwxvwwwvfwgwvvwwwgvwwvwwwwgwwwwgwxwwgwwwwwwWxgwwwvwwwwvwgvwvwwfwxwwwvwwwwgwwxvvxxvwwwwwvxxwgwwgxwhwwwwgxwxwxgwxxxwwgwwwwwvvwwwwwWfgwwwwwwwfgvxgwwxwwxgwvwxwgwvwvvwwwvfwgwxwvwwvwgwvvwgwgwwgwXwwWwxewwwxwgvwxgwwvghhwxvwwwvvwwvwvvvwguwwwwwwwwwgwgxwwwwxwwxvwwwwwgwwwwwwfvwhwvwvwwwvwwxxwwwwwwwggvxxvwvvwwwwvwwwwwwgwuwwggwwwwxwwxwvwxgvhwwxwwwuwvvwwgwwwwwwfvvvwwvwwvxVxwWxwxxhwwwvwxwwwwwwhwvwvwwwwwvggwwhwwhwwfwwhxxxxwwwxwwxfhwwwWhwvxxvwwgxghwwvxwgxgwhvwxxxxvwfwgwwvgvwwVwewvwwgxgwwwxwwwwhxwewwhwwwwXvhwwwfwwwwWwfvwggxvxwwwwvwwgxhxxvhgwwwwwwwhwwfgvxxwwwhvwxxwwvwwggwgvwwwfwhxxvwwhwwhvvxwwxxxxxwwwvwwwwgwgwgwvwvwxvvxwwxhwwwgxxdggwgwWfgwwgwvfvvgwwwvvwvwwwwggwvgvvwwwgWfwwwgwvxWvvvwvfwfevvwffVfwgwwvvewvvwwwwwffwuvwuwwwvwevvgwwwgwwfxwvvwgffuuwwfvwwfVvgwfwwUdvwxwvwwfuwxwwxfuwvvxgwvwwwwwwwwwwvfvwwvvwvwwwwwgfvwhgwWwggvvfvvxxwxwWxwwvgwwggwhgxvgVweWgwgvfgvwvvwfVgfgfvwwvwwvwwwEuwwvfwvvwvwxwwgfwvwgvwwwwgxwxwvgvwwffvffwvuwwgFeevxwffwfvgwhuvwwvwwvWwwvhwwhfvvfGxgfWXdwwwgvgfvgwvxVvwwwxuwWfvwhfvfwwwgwwwvgvwwfwgwwvvgxwwwwwwwxwXfwwxwxvwfevvwwwgwwvgwguWvgUxggVvwwvwwwwwwWwwVghUwggwgwwhvguxwwwwgvvxwgguwvfuwgefwgwvvvwwwwwvwfwvvwwvvwwwwvvvwwxuxwwxwwwfgewuwvwwvvwvwvVfwvwvhwwwvwwwvwvvgwvgwwwgvgwwWvwgwxwwwwwvwxwxwwgwwwgwwwvwgwwwwwfggfwvgwvhvvWwwvwvxwwgvvffwvwfwwwgwfwwgwvhwvgwwwwgwwwggvwvxxvwwwhfgwgwwxwVvggfwwvvwwwwwxfvvgwwuxWuwwwhxVvwwxxwwwgwwwgvwhwwxxvwwwvxVVfvgwwvvwwwfwwwggvwwxXfwWwwfwwhfXgwgggehwwvgWvwvxwwwgwgvwwvxwvwwwvwfgwgwfwwvwwwwxwvvwggwwvwvvwhwwwxxggwwwwwwwvgwwwwwwvfgggWvhwggvwwvwwxgwwxgwvwgvxfwxxuwwwvxxwvwwwwwwxvwwwvwvwwwwwvuwvwxxvgwwwxwwguwwwwvwwwvxwxxwwwwwwwvvwwwhgwwwwwxgevwwwvxwefwvgwvwvwxwgwwxwwwvgwxvwwwwwvwwgvwwwvwwgwxwwwwwvwwwgwuguxwwxvwwwxwhwffwwvffwwvwwgwwwwvwwxwwwwwwuffwgvwxwwwxfvvxwwxxwwwVvvwvfgwxwwwwwvwhwxuvgwxxxxvxwwwwxfgwUwvvgwwwwwwwwwwwwhggwwwxxvvwwgwxxxwvxvgvwwvuwwwwvwwwwwwwwxxwwxxwxxwvvvfwwwwwvwvwvvvhwwwxwxvwwvwwxxwwwxwfvwvwwxwwwvxwwwxvwwxwxxwwwwxwwwwwwxwwvwxwxxwwwxwvwvvgueggwxxffwwwwwwxwwxgwwhxxwwwwwwxwfuefwgVgwuwxwwwwwwwwwxxwwgfwwwfxwxxwggvwghxwwwgwwwwwguwgwWxwwwxxxxwwgwwwwwxwxwvwwwwwwvxwvxwwxwvwwtwwwwvuvwvvwwgvwwfgwwwwvvwwwwvvwwwvwvvwwwwwwwgvuwwWevvwvvvuugvvvwwwvwfwuwwvvevvuwgvwwfwvvwwwxxxxxwwwvgvwwfuwwfwwVvwwwvgwwxwwuwduuufxwvvwwxwwvvgwwwwvwugwWwwwwwfwwwvgwwwxgwxxWxwwxxwwwxwwwgdgwgvuwEuwvwvvwwfuwwfwwwfwgwgwwwwwvvvgwwwggvgwgvwwgxwwvwgvwVftvwwwvwvFwwwuwgwWwvfwwfwvwvvvfwwXhdwwggxvwxfwwwwvwvfwevvvvwwwgvhxwwuwxvwgWfvvwwwwwwvwwxwhwwwwhwxwuvuegwvTwwWxwvwxwvxgfwgfhvwxgwxwhgUhwwvgxvxwwwgwwwvwvfwwgfwwwwwwfwwxgvwgwhwwvwwwfwwuwxhgwwguvgvfvvvvwwwfvwwwvwxwwfgvwvwgwwgwxwwxwgwwxxgwwwwgwwvwgwgwwwwwgxwwwwggxwgwwwwwwxghgxwwxwwwvwvwvwvvwgwwwwwwwwgvwwxxwwgxwxxwggxxxwwxxfggvvgfvwwwvwvwwgfwgwwwhwwgvwwwgwxvwwwwwwvwxvxwfguvwxvgxvWwggwvuxwgWgwwwvgwwggwvwhWewwwvgwfwvxwwwwvgwwwvvwwwwwvxwxgwgxwwwwxwwwwwwwwwwxvwwxwxwvwxwxwwwffwwxhwwwwwggxwxwxxwwwwwwgwvxwgwwvwwewgwvwwwwwgvuwwwwwwwwwwvwfvwwwvgwwwwuvvwxwfwwwfdwwUvggvvxwfwxgwgwvwwgwgvwvvvwwwuvfvvwvxwxwxwxwvvgeewvwuvwgvVgvvvvgggwwxgwxhgwwxxguwfVvvwevvvvwwvfwwwxwgwxwwwwwxwwwwxggxxhxgwgwxwvvvwgfwwwvwvfgdwffwxvgwwvfwwwwVwgvgvwwvvwwwvwwvwwvwvwxwwvxxwvvwwvgvvfwdhvgfwggxwggvwFhWvvwwwwwxgxxwwxwxwvhxxwgvvgxgvwwuevvevgvvwxwwvwuvwwwWgXwwwggvwxwwwwwhvwxxxwhhvwvwvvwvwwWwwwgwwvvwwwfwwwxwwwxwwwxxwhvwwfuwwwxxxwxxxwwwwwwfvwVefwuwwhgfwvvgvfwxwgxwwvvwwwxevwvgwxwxhxwgfffWwwwvwgwwgvhgwgxhwgwwuwvvwwwgwvwwwwwhwxwwwwgvfwwfwwwwwvgwwgwxvfwgwgxxxxwwwwxwwWvwxvvwwwgwwgfxwxxxgxxwwxwwwhxfvxwwwxhgvwvwwwwfwuwwwxvWwfvwgwwvFfgvvhgGfwwxxwgwwwwxWwhgwwwwwwwwxwwwggewwvgvVwgwwfgvvWxGfwGwfxvwvwwwxwwwgxwwwwgwwgwwwwwxvxwxwvwwwwwwhwwwvwvxwwghwxwwxxxwwvgxxvxwvxhxwvwwwhwxgwwwvhwxwwxwwwxggwwwxxwxxwWvwxwwvwwwwvwwxvxxwwwwvvgvwgwvwwxwwwvxwvwwgwwxwwwgwwwwwwgwxwwgvxvevxwvgwguvvxwwwxwwvwwwvfuvvwwxhwvwvgwwwwxxxxvvwvwuxwwvwxwvvwgvwxxwwwvwhwwhwwwwxwxxxvwuvfvgwwwwwuwwWxwwwvwvxxwxwwwxwxwxwvwwvhuvvwgwwwxvwwwwwwuvgwwwvwvvwwwgwwvwhwgwwwwgvvvwvwwwfvvgwwgwhfvwwvwgwvxxxxfxuvughexxvxwwfwfwwgwxwwwxwwgxxxwxwwwwwwwwxwxxvwvuwVwwxfxvwfxhexvxvwwxwwwwgwwwwwwxwvwxwxvfvvwwwwwvwvfvwgvwxxwgwwvvwvwxfwwwxxxwxxgfvvwwwxxxvvwwxwvfxxwfvvxwwwwxhxwwwwwvwvfwwwwwwxwwxxxwwxwwwvwvgwxwxwwwxxwwwwwwwxwxwxxvgvgvxwvwwxhwxxhwvwxwggvvggwvvwwuvgxwwgwxwxvvvgwxwwwwxwxxwwwxwwwwwwwgwxxgvvfgXVxvxvwwwvwwvwwwwvwwvvvwffwwuvwwwwwwwvwxxwwwwwwvwwwwxwwwxxwwwxwxwxxvhvwvgvwgwvwwxxwwwwvvxxxfwvwwwwwwwwwwvwwwwwvwxxwwxfwvvwwwwwwwwwwxxwwxwwwgvgxwwwwwwgvwxxwwwwwwwxwvvvwwvwxxwwwwwwwxwwwwwwwwvxvxxwwwxxxxxxwwwwwwwwwwwwxwvwvgwwvwwwvgwwwxwwxwwvxwxwwwwxxwvvxvgwwvwwvwvwxwxwgwgwxghwvxvwfgxvwwxvxwwwwwvxxwwvwvwwxwwxwxwwwwhwwwwwwvxwwwwwwvwxwwwxwwwwxvxgwvxgxwxwwgvwwgwxwwwwwwwhwvwxwwxwwwvgwgwxwwwwwwwvwxwwwwwgwxwxxwwxgwxxvwwwxgwvwvwwwxwgvwxwxxxwxhwvwxwhwwwxxwwgwwwxxvwxwwwwwwwwwxvwfwwgwvwvwgwvwwwwwwhvxvgvxwwwwgwwxxxwwgxvwhwxvwxxwwvwwgwwwhgwvwwwvwwxwwwvxwwxvgxwwwwwxwwxvxwwwxwxxxwwwwwxwxwwwwxwxwwgvxvgvwuwwwwvvwwwwvwwgvvwwwwwwvwwwwwwvvwvvvwgWfvwwwgwwxwvvufwxgffwwvwwvvwVewwhwwvwvfvfeggvvvvvwwvwwgfwwwwvvgwwxgwwwgfwgwxwVfwgvwvgwvwvwwwvwfvwwwwvgwvwfewwvxxwggvvgwwgwggwxfvwwxwwxwvwggvgxxwxwxVwvvvvwwwwwwfwwwvvvVfvwwwgwvvwxgvwwvvwgwwvwwggUfuwhwgggxwwgwwfvvwwwWwfwwwvvgfxxgWxwwfwwgwUfewwvUwwwwwfuwwgwVxhgehxfvvwfvwgvvwwvvxxxgufgwgwgwwwxxwvwvwwwggwwvwwvwwwfwwwwwwwuwwwvfwwwxvwwwWxwfwwwwxvvvwwwvwgvvwwgwvvxgwvxwxxwgvgwgvvwwwvvewwVfvvvfvwwgwwvwwwwwvuvxwwwwwwvwwvffwwwfvvgwvwfgvvhwgfwwwxxwvvvgwwwxwwwwvvwgwwwwewwxwwwwwwgwwggvvgwvwwxvvggwvwwwwwxwxxxwvwxgwwwwwxxwwvwwxwxwwwwwwgwwgwxwwexwwwwxwwwwgxVxwvwffwvvwwvwwvgxgwfgfffwwwVwxxwwvwwwvvwwwwwwwwwvvffvggWVxvwxwffVgwwfwwvvfwgwWwhWVwxwwvvvvffwgVfewwwwxwggvhffgwwwwwgwgwwwxwgwgwvwwvwwgfwvwwwwwwwwgwxwxwwwwwxvwwwgvwwggxwxgwfwfvwwwwvwwxwvwwwwgwwwwwwxxuwwwwvxwgwwewwguwwvwvvwwwvwwvwgffwvvfwgvwvvwwguvvwvuvwfvwewduwevwwvvfvvxwvwfWUvvvffwwwuuwgwwfxxwgwwffdwvgvwxfgvvvvvwwwxwfvvfuxvwwwweuvwwwxxwfefvvuwgwwvwvxgwWwwfvvvwvwfwwwgwwgxwxvxxxwgwwvfweggEtvwfwwegwfuvwwuvwuvwwwgggvvfgvvfwuwwwvvfwwvwWvvvwwwggVevwwfufvwxwegwwwwvgvfgWhhfWfuvgvGwwwgwfwvvwgHgTgxvxvwvfwuvfuwvwxwxwgvfvwgvfxvgxwffvfwvwwwwwvxggwwwwwwvxwwwxuvvvvxvvVwxgevwvVhXTwwwfxwfgwwewwwvxwvghxwwvxvuhvwwwxwwwvgufwxwvwvwevwgvvwxwvvwwwwwvwvwwxvftwuweuvwwgfxvvwgwvgxwwxvgwwvwwxwgwwwgwwxwxxwxwxxwwwvuvvwxwgwwvfvwwxwwwwwgwvvxxwwwwwgxwwwwvwuwxwwwwxxxwwvxxwwwvwwwwhwwwxxwwxxwwwwwwwwxfwvfvvvfwxwwvvwwvgxvVfhwxgwvvwwwvxwvxwwxgvvwwwwwxwwwwfgvvwwuWwvvfwvwwwfgxXhewwwgxwvvwvwwwWvwggvuvvgxwgwwwwwfwvvwwwvxwwwwwwwwvvwwwgwwwxwwwwwwwwwwwwxxwwgwwxxwvwwwwwxwwxwgwwwfvuwwvvvwgwwxwwwwwvvwwwxuvwxwxvwxvwvvwwwvwwwwvvwwvwwvwvgxwvxwehuwwwxeevwwwvwwwwvfgwxgwwwuvwxWwwxwwxvwwwwwwvwwwwWwxvvwwvwwwxgvwwvwxxxxwvfwwgvvxvwvxfgxwxvuwwwWgxwwwwwwwwvvxwvwwwwggwwvwvwwwwguwwvwwvxvwwwwwwwxxuuwvwwvgxwgwwwwwxvwvxwwuvwgvwxwfwwuxhgwxhvgwgwvwwwxwwvwxwwvgwxwwvvvxwvxwxgwwxvwwxfwvevwgxwwwvvwwgxwwwwwWwhewgvxwwwWwwwwwvwwwgvuvwvwuwvvwvwxwxwwvwwwwxxwwwwwwwvwwvwwxxwgewvgwxxwvvwwwwwgwwggwxwwwxxwwxwwwwwwwxfwwwwwwwwwwwwwwwwxwwwwwvxwwxwwgwxxxwwvvgfwxwxxxwwhwxwwxwxxxwwwwgwuwvwxvwfgwwwwxwvwwxwwwxxwwwwwwwwwwxwwwwwwwvxwvgvwwwwvwvwwwgwwxwwxXfwwwxwgwwhwwxxwwvxgxwwwwwvwgxxvxxxxxwwwwxwvwwxwwwgvwxwwxwwwxxhwgwxwvwwwwwwwwwfwwxxwwwwgvwwvvwwwwwvwwwxgwgwggwvwfwvxwwwwxwwwwwwwguvfvfwxwwwvvwwwwwvwwfwfgwwgwwwwvvwwwwvgwwwwwwvvwwwwvwvxwvggvwwwvvvxxwwwwxvwwfwvgfwvxwwuwxwwwwwwwgvvwvwwwwwwwwxvgxxwhwwwwwwxxwwxxxhxwwxxxxgwxwwwwwwwwggwwvvwwfwwwwwfuwgvxwwvwwwvvwwvvwvwffgvwwwwvwvwvwfwwwwwwwwfwxwwgvwxwgwwffxwgwwfvwwxxwvgvwwgwwwwwwgwwxwvxwwwwwwgwwwwwvwgvwxwgvfvwwwwwwgwvwvvwvwvvwwwwgwwvxwvvfwwwwwgwwwwwvfwwwwvwxwwxxwgxgwvxvvwxwwwwxwfxewxwwvwvwfuwwwwwfegvfVvvvvwfvvxwggvfvuwfVvuvxwgexxwwhhgwvfwTfvUvwuhwweuvwwwwvvwwwxgfevvwwxxxwwxgwvwvxwhWwgxhwVvgwwfutxfvwwhUuwfxwwwWhgefuxwWwxgheuwwgwXhfxXwvvwwwVxfwgwvgwgwwwvwxgvwwwwwxwWfgvxvwgwxhwXvwvhxwGgwWwxvwggVvuwVxwwEuvgugvwvwwwwgvVuxxwtwfwhwwwwwwxwwvwwwvgwfwvwgwgxxwffwwggxwXVwxgwXffvwwwwwxgvxghgWffuwwWvXfUGufvdufvugwguwwgxgvuwvghgWVwwwwwwwtwwvhxwxgggwvxgwwfwwgwvwxwxwvvwwggvgwhwwgwgwgewUxwwguwvvxxVVfwwFVuwwxeuvwEtfwdfgvgwwfvwgfffwfvfvwgegefwvwwwwwwvggwwwwgvwxeefwgUtwEugvffwwwwvwwwweuVvwwwxvfVvfVwwgvwvwvvwxwwwxwvgwwvwwvwgwffvwvgvwwvwwwwwwgwXxwwwxxwgvwxgwxwgWufVvwvvwwvwvgwwwxxhwxvvvwwwwwwwwwwwwxxgwwfwwwvfvgfvgwVvuwwfvwxgvWuwwwvvwwvwxwwgvxwwwvwwwwwgvwwwwwfvwwwwxxwwvxwxxwwhwwhwwxwwwxgxwhgwwxgwwgwwwwxwXxwvwxwwwwwgwgwxwwxwwxxxxxxwwwxwhxvwwwhvwxvxwhwwwwxwwwwxwwwVugedevvffvwvwvwvgvvwGvvwwgwgvwwvwwwgxwwxhwhxxVtgvvfvvfwxvwwwfvgwwgxvgxwwvwgwvwwwgwwwwwwxwwwwwxxwwwwwvgvgwgwwxgwxxwwwwgwxwxwwvwxwxxxwhxvwwwhhwxwwwxxwwwxxwvhwwwxxgxxxxvwxxfvwvwwvftwfxgwfwxVhvhwwxgwxwwwwxxhwxwxfvguwvwvfgwxwvxwwwwxwwwxwwwwwxwxwwfvwwxxxxwwwwgxxwxgwgxxxxxxxxxxwwxwwxvwwwvgwwfxwwgwhwwxxxgwvwhvgxvwxwwwvvevwwvgUuvwvvwuuwwgwwvwwwwwvwwwvWvwwvwwwxxeuuwvvWfUuwufwwVvwwwwgvwwwvfgwwwwwwwxegwwwwwvwvwwwwwwvwvwxwxvvfwwvwxwwwxwwwwwwwwwwwwhwvguvfwgggwvxvvuvhxwwxwxwwwwxwxxwwxgwwwgwwwwwgwwwwxvvWwwxVvwxxxxwwwvwwvvgvxwwvwxxvvwwwxwxxwwgwxxwwxwwxwxwwwwwxxxwwwwxwwhwwxwwgwwwxwxxwwwxxxwgxxxxxxxwxwgwxwxwvwwxxwwwwxwwxwxxwxxxxwxxwwwwevwvwwvwufvgwwwvUuvwwwwxwvwvgwwwwwfxwxWwwxxwwxxxeuwfvuwwwvwgwwwwwxwwxwwwwwgxwgwwgxwxwwwvwwvwwwggxgwwxxwwwwxxgxwwwwwwwwwxwwwwwwwwwgwwwxwxwwxwxvxxxwxwxwxwwwwwxxwvgwwwgwxvuwvxxwvwhwxxwwxxwxxwgwwxxwwwwwwwwwwvxwwwxxwwwxxwgxwwwwwxxwxwwwwxxwxxxwwxwxxwwwvwwwwxxwxxwwxwwwxxwwwwwwvxwwwwwwxwxwxxxxxxxxxxxxwuvfgfvvwEfdwdgvvfvuwgWewfgfvfffwfvggwwwwwwxvWvfwwwwgxxxfvwwvggegVvfvvwfFTwfwvfgVVwVuwvvwwwwwwwvwxxgwwwwwwxwwwVwuxuvwwfvvgwxwgwwwwvwwxxxwvvxwwfwwxxxwxxvwgwwwvxgwvwwgvgwfgxgwxwwgwwgwwxwxwxwwgwxxwxgwwwgVvfgggvvvggwwxwwwwwwwxggVwvvgwhvxfwwxwwvwwwwxwwfwwwxfvvvwxwwwxwwvxwxwwxwwxwxwxxwyxxwxfvwggwvxfgwwxwxwwwxvxwxwxxxwhwxxwwwxxwwwwvwxwxwwxwxxxvwxhxxxvwUvvwfvvwvffeufwwgwgwggwwwwwwgwwwwfwvwvwwxwwwwwxxuffwgwvwfvvgwxwwgwwwwgvwxwwxwwgvwxxxwwxxxwwwxwwxxvvfwwwxvvwxwxwwwxxwxxwxxxxwwxxxxwhvwvvwxwwwwwwwhwwwvxwwxwxxxxxwwxxxxxwgwffuvgwwvvwwwgwwwwwwwxvxxxwxwwxxwwwxxxxxwwwxxwxxwvwwxwxvwwvxvwxxxxxwwxwwwxxwxxwwwwwxwvhwwxwxxxwxwwxfxxwwxxxxxxgxvxxxxwxxwxwhxwxwxxxxxwxxwwufvwvwwfvfvwwwetgvvgwvvfVwwwwxUtugvgvwwwfxefwvvwwgwwwwftfgvffvueFwwwvwwDewwvxxefvwwggUfvuTvfffwwwwwgevwwwwwwvfvvgfwwwwvwufewwwwxxwfwuwwfwwwxwxhvwfxwxvVdwvwvvwwxwwVgvwwvwxfwgwgwvvgwvwwvwxwfwwwwwgwwwwwwwwwwgwwwvVvvxwvvgwwwwvvgwggffvxwxEfvgvgvwwwxwwxwvwwwwxwxxvwvhwwxxwxxgwvwwwwwwwwfvwwxwwwvfwvwwwwwwxxvgvgwwwwwxwwgvwwxxvgwxvwwvwwwwwgwwwwfwwhwwwvwxwvwwgvxxwwgwwgvwfwwfevfvvwwwwwvwguevvgwwwwwwxxvfvVvwwxxwvwwvwvwwxxfefvfuvvgwvwwvwwVwwwwwvfwwwVwgwwwwwxxwwgwwxwwwvwgwwhwwgwwwxwwwvxfwwwxxwxwxxvxxxwxvvwwwwxvwwwwwwwfvwwxwgvwxwhxvwxwxwwxwwgxvxwwwwwwfvvvgvwwxxweugvwwewggxwxxwxvgwvwwwwxwexxxvwwwwwwxwxxxxwwvwxgwwxxvgwxwhwxxxwgxxxwwxxxwxhwfwxxxxfxwwwxwwwwwxwxwwwvwxxxxwxwwxwfwwwxxtvwfgvgguwwvfvwfvwfvffvfTTuvvvffvwwgvvwwwffwffvvwvwgvfgxgfwwvvwvfvvvwfwvfvvwwvffvfvvvfwggvwfwvgwvvvvwwvvwvwguwxwgxwwwwgvwwgfwvwgxwwwwwwwwwwwxwwwxwwxwwxxgwvwwwwxvvwwwwwwwgvwwwxgxwuwwxxwgxwwwfvwwwwwwffgwwwgwwwwvgvwfvvwxwwwfvwwhgwxwwxwwwxwwwxwwwxwwwwwgxxxwxwxxxwwwwxxxxxgvvwwgvwxwvwwwwwwxwwwxxvvxvwwwwgvxgxwxwxvxxwxwxwxxxhwwhvgvvfwgTTuggwwffuuwwwwwfwWvwwvvvwwwwgwwwwwvwxwwwwvwvwwwvfwWwwxvvwwvvvwwwwwwxuwwwwggxgvwwwwxwxxwwwwwxwgwxxfvwwxgwvvwxwxwxwxxxvwhwwwwwwwwxwvwxwwwwwxvwxwxxvvvxwwwxwwgwgwwxxxwwxwwwxwwgxwwwxwwwxxwxxwwwxxxwwwhgwwxxxxwxxgwwxxwwxxwhxwgwwxxhvwwwxxxxgwwxwxxxxwxwxwwvwtwwxgvveufwffdegwWUfvUVvvWgwvwwwwwWwwwwgvwwgwvVWwwwxvvgwfgvwvwugwfwgWewgwwVfffggvwwwwuwwwgwvwwwwgwvhvVwvwwwvfvxwwxwwxwvgwwwgxgwvxxwwxgxxxxwxhxgwxwxxwwwwwxggwwvxwwvwwxwhvfxwwwwvvxwxwwxwwxwwwwxxwwwvwwggggwwwwwwwwxwgvwwgwwvuxwwwvwwxwwgxvxWwwwwwwxxwgwwxwwwwxwxxxwwwwxgxgwgwxwwwwgwxwwhhgwxxwvwwwwwgvwxxwxwwxwwwxxwhxvxxwwwxxxwxvgxvxwwxxwxxxwwgvxfwgguwwgwvwwWUvvvFfufvwwwgvxwwwwwxwxvwxwwxwwxxwggwwwwwfwvvvwwwwvghgwgvgwwwvwgvvwvwwxwvwwwgwwwwwwwwvggxgwwxwgxgwwxwwwxxgxxxxxwxxxhxwxxwwxxxxwwxxwwxwgwxxwxxxwxggwwwwwwvfwxwwwxwwgwxwgwxWxuwwwwwwxwwwwxxwwhwwhwxgxwxvwwxwxxwwxhxwwwhgwxxgxvwxwwxvxxxxxxxxxxxwwxxxwxxxwxxxxwxwwwxxxwwwxwwwxxwdUUvfvfxetuwegfVvfxufvfFUwewwduuvfEUgvvwgweVVfwwVwwvwgUevwdVfwffUvvvuhdWfwvvwVudwxgveVVvUudvVwvvvvwvgvwwffwuwgwvgwfvuwfgvvwffgwwwfgfwwwwvxwwxxvfgwgwwwwwxgwwwxwgWfvevvwwgwxfvwxwwwwhxxxwgvwwwxwhwgxxxwwxwwwwxxfvvwvwwffwguxuwgwxwguvgwgwuefvfvxgwwxfvuwwwwwvwwwwwwvwvgwwxvwwxwwvwwxwwxgwwhwxvwxgwwwwvxvghwxwwwwxwwxvwwwvvwwxxxvwwwwxxwwwwwxxvxxwxwwwxwwxxwwwxxwwwwxwwgwwwxwwwxwxxxxxwwhwxwwhwwwwhwwgwgeuvveUTguevvgweFUvevwwVgwuvwvxfevvgWfvwwwxwwxwwxgwwvwwefevfeuwfvfwvwwfvvwVeuhwwwgxvwfgwwwwwxwxwwxxxwwxxwwwgxwwwxxxxgwwwvxwwvxwxxxwwwwxxxxwxwxwxxwgwwwwwwxwwxxwhwxwwwxwxwxxwxwxwwxfVVwvvwwwxxfuvwgwxvwvvwwvwwgwxwxxwxwwxxwwxxfvvwvgwgwwgwwwwvgxxwwwxwgwxgxwwxxhxggxxxwxwxxxwwvwxwxxwxxvwxgxvwwwwxxwxwwwxwxxxxxwwgvxxxgxgwwxwxwxwxxhwgxxxvvwwwwxevwwguffwwwwvwwggVvfvwvwvgufgvvvvWhwgwfwwwwfvfxwwvvwwwvuwffwgwwxwgvwgwfvvwwwwvvgwvwvfxwwvVwvwvwwxwwwwgwvvwvvgwwwxfwfwxggwxgxwwwwxxwwvvvwwwgxgwuvxwwwwwvwwwxxxxwwwxvwwwvwwxfwwxgwvwwxwwwxwxxhxwwwgwxxxxwwxfvxwxxwwxxxwwwxxxwwxxxwwxgwwwwvwxwwwhgvxwvxxwwxywwxwxxwewwvgvvgufuvggxwwfvfgvvguvwvfufwxxvvwgwvwwwxwuvvwwwewwwwvuvgwwwvwwxwxwxwwggxwxgwWhvwxwwwwwvwwxxwwwxxwwwwwwwxxxxxwvwwwgwgxxvvwvwxxxwxwwxwxfxxwwxwwxxxxwxxwxxxwxxxxwwxwxxwxxtggwwvxffvwffgVudwfwwvTffvwvuhVuxwfvwgvwwwgwufevwvvxfuuwguvwfwgwevwfvwwUWFvgwwwVfugwwwwfUTvwwwwvvuvwwwWffVwwfwvVfwwwwwfvuvwwuwwfuxfgfwwvwxgwxvwvwwwwxxfwwwxfgVgvuxgwxgwwxgvvwxwvwwwwwgxwuWvhvxhwwxxxxhwwwxxwwwwwwhgVvugVvvwwwVfwggfvwvvxvvvwwggwvggwwwwxvwwwwwwwgxwwvhxwwwwxvvwxwxxxxxgvwxxwwvwwvwwwwgwxwuvxwwgwwxgxwwwxxxwwxxxxwxwwwwxxxgvuvvxxwwxxwfxwgwwvfwgwwueVuwwvwudugvwwwwwwwwxwvvwxwwwwwwxveeggwVevgxgvvggwwfwwwxgvxwwwggwwwwxxwwxvwxwWwwxwwwwwxxxhwvwxxwfwvwwxxxwhgwhxwgvxwxxxxxwwxxwxxxxxvfvwgwwwfvwwwxgwfvxwwvxgwwwxwwgwwxxggvwxhxwwwwwxgvxxxxxxwwxwxxxxxxwgxxxwxwwvwxxvwvwwwwwwxxxvxhwvxxxwxxwwwyxhxwwxwwwxxxxvwwVuvwgwwxgguwfvwvvwwwwggwwfuwveevwwgvwwwwfgvvwvvwxVuvwVvvfwfevgwvvVwwwwwwwwvwxgUewvwwvwwwwxwvewwwwwxwxvwwgwwxfwfvwwwwgwwwwxvwvwwwwwxgwwwwwwxwxwwgguwevgwwwwxwwwgvwxxwxwWfvgxwwwwgvwwwwxwwwwfvwvvvVwwwgwwgvgwwwwwgxwvgwvVwvwwxxwgxxwxwxwvwwwwwwwwwxxwwwxxwxxwxgwwwwwwxwxwxwwwwxwxwwwwgwwwwwxgxxwxwwxxhwxwxwxxxxgwwvwxwxwwxwxwwxwxxxxwwwxxxxwxwwwxwfuwvgUewvwvwWfvvgwvgwwwwwxxwwxuvwwwwwwwwwwwvvwwxxeevvwwwwgxVwvwwwhwwxwwwxgwwwvvxxxwwwwwwwgvvwwwwwxwwwwxxwxxxxwwwwgwwxwwxwwxwwxwwwwwxwgwwwxwxwxwwwxwwwwwxxxwwwwwwxwfgvewwwwwgvwwgxxwwwwxxwwvvxwwxxwxxxvvwvwwwwwwxwxwxxxwxvvxxwwwwxxxvwxwxwxxwxwxwxwxwwwwxxwwwwwwwwxxwxvwwwwwwwwxwwwxxwxwxwwxwxxxxwxxxwswgheuVwUUWwefgvfvgwvvvwggwvxwvwvfvwgEfwggfwvgwwgvwwffwgwfvgwfffwfguffffvgggwfwfwwvwvwugvgvvwfwvwwggwvwgfwwwvVwggfVwggvxfwgwwvxgwwgwxvwvxwvgwwwwwwwxwxwwwwwwwgvuwwwwwwxwfuwwgwxwwwwhwwvwwwxwwxxxxxxvwwwwwxwuvwwgwvwwwgVwwvfwwwfwvwvwwwwwvvhwwwhvwwfwwwhwwgwwgwwxxwwwwwwwwvwwwwwwwxhwgxhwwxwwwwxwwxgggxwxvvwwwxwfvwwxwxwxhfxwxwwwwvxwgwhwwwxwgxxwwxwwvgwwxwxxwxhwwxwxgwvwvvvwgTgevwwvgwvwwwvvwwvwgvwwwwUUevgwwvwwxwwwwwvuvvwwuwvvwwwuvwwuwwvvwwwwvwwwvggwwxwhwwgWwxwwxggvwxwxvwgwwxwgwxwwuwxxwwxwwwwwxxxwwxxxwvwvvhwxxxxxxxwwwwvvwwvwvwggwwvgxwvwxwwxwxvwwwWwwgWgxwgxwwhxxfxxxxwvwwxvwwwwwvvxxwwwwxwxxwxxwgxwwxwxxxxwwxhwxwwxwhxwwwwxxxvwxwwxwxxwxxxvwxvwwxwwxwwwwfwwxxxufwxfvwfwwgvWvfwgwgfwfvvwWwwwWvWvwxwvvWvvggWwwvwxhwwwewwvvgwvwwvgwgwwvvfggvgwvvwxwxwwwwvwwwwvxwwxxxgvgwwxwwgwwwWwwwwwxxgwvfxwxxxwxxxwwwvwwwxwwgvwgwwvvxvwvxxwxvxxxxwxxwwwhvwwwwWwwwwggwxwwwwXwwhwxgwwwxgxxXwhwxhwwwwgwwwwxxhvwxxxwwwwwxxxwxxxxxxxxxXwgxwvwwgwxXwwwwxwwgxxxxxvgwxxxwxhxxxxxwxxwfwWvVuwgwwvvvxWvvgggwwgwxxwwwwvgwwwwwwwwxxxgvvvwwxvvxxfghwwwwwxwwwxxwxwxwxwwwwxxhwxwwwxgxxwhwwxwyxxwwgxxxxwxxxxxxwxxxxgwwWwgxvgwwwwxwhwgwxxxxwxxgxwvgxxxvxxhwwwxxwxxwxgwwhwwxxwxxxxxwxxxxwxxxxxxhwxxxevwwvwwwwwvwVwgvwwwevxgegwfwwvuvvgvwwwwwgwfugguvwwggvvwwwuvvfuwwgwwwfgvgvxwwwwwwegwvwvvfwwwwvvxwvvwwwwvxwxwxwwvfwwwvVwwwvwwwwwvxxwwwvwuwxwgwvxwvuvvwxxwwwwwwvwwwwwwuwwhgvhxwgvwwfxhvwwvwwwxvwwwxxwxwvwwwgwwwwgwwfwvwwwwwxwwwVgwvwgwwwwvxwhxwxwwxvwwwwvwxxxwxwxxwgvwhxxxxxxwwxxwxwxwwwvwxwxwvwwwwxwhwwvwgwxxxxvxwwwwwwxwxxxxvwxxvgwwwxwwxxxwwxvvwwvvwwfegwwuwgggwwVwwgwwwwguguvvwwwwvxxwwwvwwxxxxwvwvvwgwwxwwwvvgwvxvxxvwvvvwwwwwwxwwwxxwxxwwwvwwwxwxwhwvwxxwxxwxxwvxxxxxxwwxwwwgwxxwxxxwxxxwxywwwuvwwxxwwwwwwxxgwxwvwxxxxxwwvxwwxvwwwwvwwwwxxwwxxxxwwxwwwxxwwxxxwwwxwwxxxwwxxwxwxxxxxxxxxywxxxwwvwwwwwwfwwgwwwwwwvwwwvwvwvwwwwwwwvwwwwwwvvwwwvwwvhwxxwvwxgwwwwwvwwwwwwwwwwwgvwwwwwvwwgxxwwwwwwwwwwwvwwwwwxwwwxxwwwwwxwxwvwgvwxwwwwwxwxwwxxwwxxwwwwxwwxwwxgwwxwwwwxwwwwwwwwwvwwwvwwxxxwwwxwxxwwwxxwxxxwxwxxxwwwxvwxxwwwwwxwwxwxxxwxxxxxxwxwxxwxxwwxwvwwgwwxwwwvwwwvwwwwxwwxwwxwwwxwgwwxwwwwxwvwwxwxwxxwxxxvwwxwxxxxwxvwwwxwxxwwwwwwxxvxgwxwxwwwwwwxxxxxxwxwwwxxwwxxxgwxxwxxwwtfwgvvwWfwvgwwVfwwffgwfVuvvvwwfuwwvgvfewfwfEdvvfvgfgwvwguvwfggvwwgfwwwVgwvgfgvvgggevwvgvvwvwwgwvvwvvwggVewvwwvvwwgvwwvwwwwgWuwvwwwwxwwwggwgxwwxwgwwwgwxwwwgvwwgwxgwhhgvhwwwwwwwwvxwxwwwwwvxxwwwwwwxwwwgvwwvxwggwfxgwwwhwgvwvxVfvwxgwwwwwwxwvxxwwwgxxwvwxxxwwwwwwxwwfvxgwwxxxwvwxxwwwhwxxwgxwxgvwvwguwxwxvxwxgwgxxwwwxxxhgxwxxhxuwwxxxwwxwhwxxwhwxgwxxxhxgvwwgvvgxwvxfEdvwvvwwfxwvwwhwfvvwwwvxwgwgwxwwxwxwvgvwvwwwwwvwwffvgwVwwwwwwwwvwwwwwxwwwxwwwwxwxggwxvwwxxwwvwxwwxwxxvxxwwwwwxxwxwvwwxvwvxxvxwgwwxxwxxxxwwwwwwxxxwxfvwwvgvvxvwgvxwwxwxxwwwwwwxwxvhhxwxxwwxxxvxxwwxgwwxwwxwwwwxwhwxwwwxxhwwvvxxwxwxxxxwxwxwxhxxxxhwxxwwxwvxxwxxwxwwgxwxwxxxdfvweewwVvfxefvfvvweVvwfWgwgvwwfvfweTTvegfwvvgWfffevwwvwvwwwxvfvvgvuwVgWwfgvwgwgwwgxwfwxvvvwfegfvfwvwufvgugvwfwfwwvvwwwwwwwwVvfwvvwwwwwvwvwhwwvvxwwwggvwvfwwwwwwwxxgwxwggwwxfwwvwwwwvuwwwwvxwvxvwwwwwwgwwgwwwwWwxwhwwwxxxghxvvwwwvvwvwwgvwwwVfgwvwffwwvggwvvvvvwwuwvvwwxvwwxwvxwvxwwvwwwwwxwxwxwwwwxxxwwwxhvwwwwwxwxwxhxwwgxxwxxgxwwwvfwgwwwwwwvvwxwwxwwxwxWvwwwwxxwgwxxggxwwwxxxfgxxwwhwxwxvxwxvwxwwwxxwhxwXwwxxxxwXwxwgwwffevfvvgwvvvgvwwwgwwwvwwgTTvwgfwwwwwwwvwwwvwhgwwwwwgevvvwwvwuxvvwwvvwewwwwwvvggwwwwwgwwwwwvwgxxggwuwwgwwwwvwvvwxwwxxxwwwwvwwwwwxwxwwxwvxwvwxwxwxwxwxhwwwxwgwxwxxxxvvwfwwwwwxxvuwwvXfwwvwxwwwwwwxwwxwwxxxwxxxwwxhwxxxwwwxWwwxwwvxhwxwxwxxxxxxvxwwxwwxwxwxxwxgxwxwwwxxhwwxwhxwxwxxwxxwxxxwxxxwwwxwxxxxxtvgwwvwwfvvwwgvwfufgwfwvvvgwxeeffvxwxfVevgvweffvfwfgwwwwwxfvfgfvwwuwwwvwvwfwvwvxwwwwgwvfuwvgwvfwvwwxVfwwfwwwwwwxfvwvfwvvwgwwwwwfwwxwgwwvvwgwwwggwwwxgxhwxwwxxwxwwwuwwwgwfvxwwwwwxwxwwwwwwxwwxxgwwwwwxxwwxwwxwwgvwwwwwguwwwvvhfwvwxxwwxwwwxwwvwxwxwvwwwxwwvxhwxwxwwxwwwxxxxgwxwwwvwwxxxgvwxxxwwwxxwwwvwwxwvwxxxgwwwwxxwxwhwwwxwwvhxwxwwwxwvwwxxxxxgwgxwxwwwwwwgvxwwwxfwwwwwvwfvwgwvfwwwwwwwwwvxgefwwfVfewfuvwvgwwxgvwwfvwfwxvvwwgvwwwxwxgwwwxwwgwwggvwwxwwwxxxxvgwxvvxwxwwwxwxwwggwxxxwxxwxxxwwgwxwwxwwxxwwxxxwwgwwxwwgvwxwhwwwwwxhxwfvwwwxwgwwwxwWwvxxwwwwwxwwwwwwwxxwwwxwxgxxwwwwxwxxwxwxwwxxhwxxwxxxwwwxgxwxwxwxwwwwwwwwwwxxxxxwxufwgwvgVwwuvxvwvggfVgfgfVwvwwxvvgvvwwVvvwwgVgwwwfgVfvwwxwfwwwwfwvwwgvwxwwWugxwgVvvvwwgwguwgvxwwwwvxgvWwwwwwwvxwgwgvgxvwgwwwxgwvwewgwgwwwwxwwwxgwwwwhwxgwwwwxwxwwwgvggwwxgxwwxwxgwwgwwwwwxxwgwwwwwwwwwxwwwwxwxxwwwxvvwxvwwvwgwwwwvvwwwwwvxwwwwwxwwWwgwxwwxwfxgwwwwwwxwwwgwvxxwwwwwxxwxwxxxwwxxxxxxxwxxwwvwwhgwxvwwwwwxvhwwwwxxwwwwxgwgwwvwxxwxwxhxwxwxxwwgxwwxxxxxxgwwgguwwvuwxfggfwvwvwvgugxgvwvvvwgwwwwwwwwgwwxwxgxwxwwxwwwxgwwwgvxwewwwgghxwfwwwgwxwwwhwxxxxwwxwgxxvxxwwwwwxwwxvwxwwxxwxxxxxxxwwxxwwwwxwxwwxhxxwxxwxwxwxxwxxwggwuwwxwxxhgwwxxxwwwwwhwwxxwggxxxwwxxxwwxgxgvwwwgwxxxwwwgwwxwxwwxwxxxxxxxwxxxwwwwxxwwxxxxwxxwxwxxxxxxxxxtgvvVutgVutweWffwvwfggfvffwwwwwUuuvdfeuwgvfvvuvgfwvwgvwwwwvvwfefEevVTfveUvgwwvwwwwwxvwugfvfeffffwVvwwvwwgwvwwwxwvwevuwegewwgwewvwwgwvwwwwxwxuwwwWwwwwwuvwwwwxwxxvwVfgefgugwxhwfvwhgvwwvghvwxwhwwgwwxwgwvxxvxwwwwweVvuwgvwwwvwfFuwvWuwvguwvgvtgVwvvvvvvggwgfvgugwwxwwwwgwgwwgwwwvuwxvxwxxgwxwhwfwwxxufwhxwvxwgxwxwxwxxwuwwfvwwwwxgvgwxxwwwVwwxwxwwvxwwwwwwwwwwwwgwwxxwwxxxwwxwwwxxwgwxwxwwwgwxxveuwffevwgwwgwvgfwggwfgxvwxwhxwfgwdufvwwwwwwwgwwwxwwgxwxgvfeevefwwwwwfvgvwwwwuwhxwfwvwwwfWwxwwxwwwwvxwxwwwwwwgvwwwwwxxwwgwxxwxewvwxwwxwgwwwwwvxwvwxvggwvhwxwwwhxwwwxwwvxwxwhfwwxxxggxvwxwvgwgvgvgwxwxxvggvgvwvwxwxwxwfvwwwxwhwvxwwwwwwxgwwwxxxxgwwwuwwhvxvvwgvwwwxhwgwwwwxxwwwwxwwxwxvwwwhwxxxxwwuwwwwwwxvxwxwvwxwxxwwwxgwxxwwgwxgxxxgxwxxxxwxwwvwwxwfvwwxwswwgfuvvfvwwVEcufwuwvvvwvfuwwfwggwvvwguwvfwvvwwwvffwwwvggvxwfvwwvfvwwfvwuggvfvgwwvfWfwwwgVdvwwwuwVwwvuwwggwwwfugugwwwwgwwvgvwgwwwwwwgwxwwvwwwwwhwvwwwwxgxxwvwwvvwfwwwvwwwgwwwwxgvghxgwwwwwvxwxwhwxvxxwwwwwwwwwguwwgwwfvwwvwuwwgwwwvgwguwwvgvvwxgwgxwwguwxxxgxwwwwwwvwwwwwxwwggxvxxgwwvgwwwxwhwvwwxxwxxxxwguwfwwwwggwhwvwgvwxwxwxwhxxwwxwxxgwwwvwvxwxwxxwxwhwxgwwhwxxwwwxxwgxhwwxggwwWEcuwvvfwwfvfewgvwwwvwwwxwvwwvwwwxvgwwwwxwvhwvwfvwuvffvwwwwwwgwwhWtvfvwvwwwggwwwvvgxgxwvwwwwwvwxwwwxwxxwwwvxxwwxwwwwwwwxvxwwxwwwuwwwxwvwuxwxwxwwwxwwwxxwwwwwguwvwwvwwwxwvggwxvvwvwwwwxwvwxgxwwwxhvgwwwwxwvwwwwxwvxwvwxvxxwxwwxwwhvxxwwgxwwwwwxwxxwhwwwuxxxwhgxwwgwxxwxwxgwwxwwwxxxxwwwwxwwxxxxwxwcffveuvwVvVgfFdfeefgvgvgVfgwgwwwffgfgfvwwfvvwV5ewgxwwVfxwfVfffgUUVefVvSgvffwgwgggwfgvwvwUFvvgwegfwwvwwvFdgfgfwwwwhwwfgwfxggfwVfwwwvwfVVwhwwxhwfxwwgwwWwwwwxgxgwxvwxwwxwwxwffwguvvvwfxwwwWfvvgwxfgxvwffwwvxwwxwwggwwwwwwgwwxvvffgvvgvvxvfgwwxgxfwdgwwwwfgwWuxwxvwwWvegwgwwvxxwwvggxwwwwhwwwwwgvxwwwgxxgwwwwxwwxwgwvwxwwwwxhwfwwVgxxgwWwwgwxwggwvwgwvxwguvwwhwwwwwgwxwwgwwwxxxxxwwwwxwgxvwgxwvxxwhwwwgwggwwwgwxwwwwwWhvwxggwxxgxwgwgwWwxxvwwxVvfgfefffVevgfwvfTfggwgwvvwwwwhVVewvwvwvvxwwwgggvwgwhwwwwwwxeefwwvUgvvvgvwvwgvffxgwwwhfxwxggvvwwwvwvgvvwxwxvgvwggxwxxwxwwvwxwuwfwwvwwwwxwwwxwwxxxwwfvxxwxxwwxvvxwxgwwwwwwgwxhvxwwxxwxwwwxwxvwwwwwxvffwwwwvwwwhwfwfwxgvhwwwwwgfvwwwwwxxvwxwxfwwwxwgwwxgwwwwwwwwwxwggwfvwwwhwfvvwxvwwWwggxxxwwfwwWwgwxwwxwwxwwwwwgxwwhvxgxwgwwgwwxxxxxxwwxgwwwwhwwxwxwgwxxwvwwwwwwvxwwwwwxwxwxwwvwxwxxxwxwwwxxwxtwvwedfvgfwvgwwvvuwgUfvvfvvefwvvtevdUffvwwgvvxfuwfWvfWwwwfwgwffwffdvwfgvvVvgfwvwggfvvfvwuEgffwUfvUvvwvwwwwvgvvfvgwwwxwwwvfevwugvwwwwwwgvwwwggvgwwwwgwwwvwvwwwwxwxwwfwxxvxxxwgvfvvwwfvwvwwfwwWvxwgxwwhwwwvwvvgghwwwwwxwwwwvxxwxwvwwggvwfvwvwwgvvwgwvwvvvxwfgvfwvwghgvxgfvwuwwugvwhwggvgwwwvxwvwxwvxxwxxhwwfxhwVwwwwwwvwwgwwwwwwfxwggxwwxfwwwwwwwwwvwhwvvxhwwWxgwwxxxwwVvxvwgxwwwwgxwvwwwwxvvwuwwxwvwxxwwwwwwwgvxuwwwxxgwxxvwwfvwfevwwwwwwwxvWvvVftxvxwxwgwwvvvvggwwwfvvwWgwwxxwwwffvwvvwwwwvwwwvvVwwwfgwvguwwvgxvxwwwwwwwggwxwggwxwvwwwvgvxxxxwgvgwvwgwxwxwwvwwwwxxxhxhxvxgwgwwwwwwxxwvxxwxhvwwggwxxwxxvvwgwwvwwxxxwwgwwgwghwwwxgwuwwWwwgxwxwxgvwvwHhvxgwwwxwwwwwwwwwggfwgwxwwwfwvvwwwwxwwwwwwwxxwxwxwwxxxxwwxwwwxwxwwxwxwxwgxwwxwxwxwwxwxgwwgwhvxvwwhhvxwwfxvgwxvwwwwvvwwwwXfvvvvvvgvWffwggfwvvwvfgwvwwfwwwvgwvfgwvxxvwvwwvvvwwvwwwwgvvvwvwwhwvwffgwvggvwvwwwwvwgwwvwxwwwwwwggwwwwwwvwwfgwvwwwwwwwwwvwxxvwwwwwwwwwwvxxwvvgwuxxwvxwgwwfxxvxgwwwxxwwwwhwxxgwwwwxwxhxwvwwwwxgwvwhwuvxwwwxxgvwwwxwwwxwxxwwwvxwwxwxxvxwxxwwwwwwgvwhxuwxxwwwxxuwwfxxwwxvxxxwwwxvwwxwxgxwxxgxwvvvwWfvtwgvwWffwwwwwwwxwwwwwwvvwfwwxxgwwwwxfvwwvvwwwxwwvwxwvwwwwwwwwxvwxwxwxwwxwwhwxwwxwxwwwwwxxwwvwwxwxxxwxwxwwxxwxwwxxwwwwwwwxxwwwhvwxwvxwxvxvgwwxwwwwwxxwwwxxwwxwwgwwxwxxxwxwxxxxvwwxxxwxwwxvwvwwfvwwwwwxwfgvwwfvvwgwWgfVVwgvxvwgfvgwgwggVvufgwwwwwgwgxgvggfvwVewfvvgwwwvgwfvwgvvvhwwwwwwwgwwwggvwxwwwwwxxxxvwxwhhwhvgfwvvxxhwvwwwwxwwwxwvwxwxwxwxwwwwxwwwwxggvwxwvwwwwxxwwwwxwxwvwxxwxwwxwxwwwwgxxwgwwwgvwxwvwwxwwxwwwxwvffwgwWvwwwhwwxwwwwxxxwwwwxwwwwwxhwwxxxgwwwxxhxwwwwxxwxwxwxhvwwxxxwwwwwxxwwwwxwxxwwwwxxxxxxwgwxwxxwxxxxwwxwwxvhfwxwwwwwwwfghgvfxxwwwwxwgvwvvvwgvxvxxvwvwgfvgxxxwwwwwvhvxwvxwxwwgwvxxxwxwwwwxwxxwwwxwxwwgvwwwwxxwxxxwwxwwxxxxwxwwxwvxwwxxhhvxxxwwwxwxxwwxwggxxxxxgxwgxxhwwxxgxxxwxwxxxgwxwxxxxwxvxxwgvxxxwxxxxwwxwxxwxwwxwxxwxwxwxwxxuffwgvegwuuwgewfvfwwVewugvwvfVvsfffVvwxwwvwvcfevVvvwfwvwxwxfvfwvVCuwwwwvfvwfwwvwvwwhfvwdfVufffEvwvvwxUuvwEvgwxwvwwwfvtxvwfwvgwvtwfgwffxwxvvvwvvwwwwxvxggwwxwwxwxwwwwugfvgwvWwwvwwwvxgvwwwWvwwxwwwwfwvgwxwxwxwwxwwggwwwvwxwvxwvvvfxgwwwUwwwvuVEwwwwwvwvwwwwvffvwwwwwgvwwfvuewwxwwvwwvwvfwxwwwwwxgwwxxxwvwwxxwvwwgvxxwwvwewwxwghxxvvwfvvwxwwfvwwwwwgxxvvfvwxvxxgxwwxwxgxwxwwwvwwxxxxuwwwgwwwwxwxxwwxxwgwxwwwvwxwwwvwfuwvwvvwwwwwvxvgvvwwvfWvwwwvVfvwvvwgwxwweevgwvwwxxxvvfwgvvfWwvwwfwvxwgwwwwvfvfwwwwgxwwxwwwxwwwwvwwwwwvvwwxuwwwxxwwgwwwxwwwxwwxxvfwwwxwxwwwwwwxuwxexwxwwwxwvwxwwwwwwxwwxwwwxvwxwwwwwxwgfvwxwxweuwgwwwvwwxwwgfgwwwwwxwvgwwWwwwwwxxxwwwwxxwgwwwwhwvxwxxwgwvwvwxxwxvxxxxxwwxwxxxxwxwewwwxvxxwwgxxxvgxwwxwxwxwwvgvhwwwwxxxuwxxxwwwwxwxwwwxwxwwvwwvwvxwvvwgxgvvgWfwewwgfwvggwvvgfwvwwwvuewvwfVgfwgfwvwUvvvwwwvwvfVvgugvwwwwwvgfvgvxwwvvgfwuvfgfwvwvwwvwwvwgvvwvwwxwvwwwvgwxhfvwxfwxfgvwwwwwwwwwwgwxwwhwwwwgwwwwwxwvgwuwwwwvwvwwuwwwwwfwwwgwwhwvwvxwwwxwwxwgwwgxwwwgwwxgwwwwwwwwwwwvwxwxwwwwwvwWwwvvxgxxwxwxxxwwxxwwxwxxwxwwgxwwxwwwwwwwxwwvgwxwwwxwxxwwwwwxwgwwwwwwxxvxwwwxxwxxxxxxxxxwxxwwwwvwvwewwwwwffwvgvvwevvwxwvwwfwvwgvgwwvgevwwwwvgwhwwwwwvwvwwwwwwvgvwgvxvwwwwwwvwwwwfWwgxwwwwwwwvwgwwwwwwwwxxwwwgwwvwxwwwvxwxxwwwwxxvxxxwwwwwvwwwxxxxxwxwxxwwwwwwwwWwxwxwwwwwxwxwgwxwwwgxxxwwwgwwwwwwhwwxxxgwwxwwxxxxwxwwxwwxxwxwxwxvwxwwxxxwxwxwxwxxwxxxxxxxwwwwxxxwxxuwgwgfwvxvwfgfweggffgwfwgFgfgwwfwwgGwvwgwwwvwvfvwfWGggwwwvwwvwwggtwwxgwwwuwgwwgwwvgugwwgwwwgufwwgwwwvgwwgwvuvwwgwxxwwwwxwgwWxwwxwxvwxwgwWwwxwwvwwwwwwwxwgwxxxwgwxwwwwwvvwwxwwwwwwxxvwxwwwxwwwwxxvwwxwfxwwxwwwwgwwwwwggwwggvwgxwwvwgwFgxwgwxgwwwwwwxwwwwwwgwwxwwgwwwxwfxwxgwwxwwwxxxwwuxwwgwhgxxxxwwxvwxxwxxxxwwxwwhwvxwwwxxxgwwwxwxxxxwwgwxxwxxwxwxwxxxxwxwwwwwvxxwxxxwxxxwfvvwwWwwvvvfgwWwvvfvwgwvvgwwvwxwvxwwxwxwwwwvwxxxwxxwxwwwwvwwuwfgwwgwwwwxwwxvwwxxwxwwwvxwxgwwxxwwxwwwxxxxxwxxwxvwxxwvwxwwxxxgxwwwwxwwwxxxwxxwwxwxwxxxxxwwxxwwfxxhwwxwxwgwVxgwXwwxwxxwxxxwwxxwxwxxvxwxxvwwwwxxxwxxwwxwwxxxxwxxxwwxxxxxwxwwwxxxxxxwxxwwxxxxwwxugwwwwxwwwxwwwfvwgwwggwwwwwwwwwwwwfwxwxfvvwwwvgwgwwwwgwwxxwwwwwvwwwwwwxgwwgfvwwwwwwwffgxxwwxwgwwwxwxxxxxxxffgfvwwwwvvwxgvwwxwwwwwxxxwxxxvxwwxwwwwwwwwvxhwwxwwwwwxwxxwwxxwxwwxhxxwwwxxwwwxwwxwwwwwfvwwxwwwwxwwxxxxxgvwwwwwwwxxxxxwxxxwxwfvwggwwwgwwgwvfgxwxxxwwwwwxxwvxxxxvfggvvwwwwxgwwwxwwwvvwwvwxxwwwwxvffgxxwhgwxxwxwxxxxxxhxxfwwwxwxxvxxxwxwxhxwwxwxxwwwwwwxxwwwwwwwxwwxgvvwwxwxwwxxxxxxxxxgwwwxxwwwwwwxwxxxxxxwgwgxwxwwxxxxwhwxwxxxxxgwxwxwxxxwxwwxwxxwwxxtgvwwwwwfvfgwwvwgvwwvwgvfwwguvwgvgvwwwWffwwwgwwwvwwwxwxgffVvwgfweffgfwwwvvwwgwvwvxvxvwvwvwvvwwwwwxgwwwwwwvgwvvgwwwwwvvwgvwvggwwwwvwgxfgwhwvwwvxwvggxvxwvxxwwggfvwfwwxxwwwgvvwwfvxwwwwwwvwwxxxwwwwwwwwgvvwwwvwWgwwwwwwwvwwwwwwxxgwxwxxxwwwwxwwxwwwwwhvwwwwwwxwwgxxxxgwxwxhxwxwwwgxxwwwxwxgwhxxhxxwxwhxxxxxwxxxxxxxxxxwwwxwxxxxxgxwxxwwwwxwgxwwxxwwxwxwwxwxxVvfgwvvvfgwwwfwwwwwvwwwwwwwvfffwwwxxhwvwvwvuvwvvvwvwwgwwwwwwuwwwwvvwwwwwwxwwwwxwxwwwxwWfvwvwvfWfgwxwwvwvwgwxwhWvwwxxxwvxwwwxwwxwwwwgwwwwxxwxwgwwvvgxxwwxxwxvwxxxxwwwwwwxxwvgxwwwwwwgxwwxxxwhwwxxxxxwwxwwwwwxxwwwwwwwwwwwwvwwxwvxhxxxxgxwxxxxghxxwxgwxxWvwwwxwwxwxwxxwxgwxxxxwvxxwxxxwhxwxxwwgwxgwxgxxwwxxhwxxxwwxwxxxxwxxxxxtwxwwwwwwwwWvwwwwwWeVWggwvwvxwwwWvwxwxwwWwwwvwvwvwwwwwwwwvwgguwwfwgwvwwwggwgfxwwgwwwwwwwwvwgwggxvxxxxwwwwxXfwwwxgwGfgwvwvwwwxxxwxxxWwwwwwgwwwxgwgxwwxuwxwwvxwwwwxwxxxwwwhwwgwwwxwwwxxwwwhxwxwwwwwgxwwhxwvxxxwwxwxxwwwgwwxxxgwxwxxwhxwwxxxhwwgxwhwxxxXwxwwxwxxwxwxwywxwxwxwwwhwwxwxhxwxyxxwxxxxwxxxwwvwwwHfgwwwwgwWgwxvwvwwvxwwxxxwxxxwxwwxwxWwvvwwwwwxuwwghwgxhwgwwwxxwwxwxhwxvxxxwxwXeVvwwxwwwxvwwwwxxwxhvwxxwwxxxwwwwxxwwwxxxxxwwwxxwxxwxxxXwxwwwvxwwxwxxxxxwvxxxwxxxxhwwwhxwwwwwhwxwxhwgxxwxgwxxwxgxxxxxwxwxhwwxxwxxxxxxxwxxwxxxwxxxvxxwwwxxxwxxxxxxxwxxxgxuWwvwvwvvwwvwgvgwwwwVWwgwgwxvgwwwwwwwvvWwwxgwvwxxfvvwvfewgffvwwwwvgfvwwwwffvWwwweuufevgwwwwwvxwvvwwwwwghgwwwxfvwxvvwwvwwwwvffwwxwwwwxwwvwwvwwxxwwwwuwwwwgxxxxxffwfwwwwvwxxfufwwwxvxwxwugwwvwgvwxwwwwxxwwxwwwxwwwwwwwwxwwxwwwwfgwxxxwgwgvwwxxxvwwwxxwwxxwgwxwwwvwwwwwxwwgxwxwgwvgwxwwwwxwxxwwhwwwxxxwwwwxwwxxxwwwwxwvwhwxxwwxvwxgwwxgwwxwgvwwwxxwwwxxwxwxxxwxxxxxgwgwfwwwVVgwwwvfwwwwwvfwwxvvwwvwvvwxxxwxwwwgxwffwvvgvwfffgwwwwwgwgxvxxwgwgwwwvwvwwgwwhwwwvvwwwxwgghwwgwgwwxxwgwVwgxwwwwwgwxgwwxxxxwwxxwwwhgwwxxwxwxxxxxgxwwwwwwxxxxxxxxwxxgwwwwwxwwwxxwxxwwwwwxwxwxxxxxxwwwwxwxwwxwxgxwwwvwwxuwxwhxxhwxxxxxxwxwwxwxxxxxxxxywxwxxxxxxxxwxxxxwxxxxxxxegxwwwwwwwwvwwwwwfuwvwgvwwwwwgwwwwvwwvwwwvxwxvwwwwvvwwfuvwwwwewgwvffwfvwwvvwgwwweuvwvfwwwwwvwwvwwwwxwwwwwwwwwwwwwvwwwxuufgxwwwwwwxxvwvwxxwwwwwVvuxgwxvgvwwwvxvwwwwxgwvwxvwvwxxwwwwwvwxvwwwwxwwwxwwwwwwxwwwwxwwwwxwwwgvgxwxwxwwgxwxxwwwwxhxxxwxwwvwxwwwwxxwxxwxwxxwvxxwxxwwgxwwxxxxxwxwxxvwwhxxwxwvgvxxgvwvwwwfgwhwwwwwwvwwwxwwwwvwfvgwwwxvwvwvwwuwvxxwwwwxxxwwwxwxwwwxxwwwwwgwvwwgxhvxxxxxxxxwhxxxwwwxwxwxxxwwwwvwwxwwxwwxxxxxwwwxxwwwxwwxxwxxxwwxxxvxxvxwxxwwwxwvxxxxwxwwwwwwxwwwxxxxxxxwxxxxwxxxxxxxxwxxwwxxxwuwwwwwwvwwvwVevgwgwwfgwwvwxwwgwxwvgwgxgvwwwwgvgvwvgwgwgwwwvgwwgvwwgwvwwwgvwvwvwvwwwwwwvxwvvwwgvwwwvuwwwvwwxgvgvwwgWwwxwxwwwvxxwwwxxxwwxxxwxwvxxwxwwvvwxghwwwwxxgwwxwvxwwwwwxwgwwxwwwwwwwwgwwwgwxwvxwgwwwwxgwxxwwvwxgxxwwwwxxxxxwwwvxwwwxxwxxxxxxwxwvxwxwxwxwhvxwxwwxxxwxwxwxwvwwxwxwwwwxxwxgwwxxxxwxwwwwxxxxwxxwwWwvwwwggwwwxwgvgvwWwvwxxwwxxxwwwxxwwxxwwwxwxwxfwwwhfxwwwwwwxvwwwvwwwwwwwwxxxgwwwwwwxgVgVwxxwwhxxwwwwxvxwxxxxhvxwwwwwwwxxwwwwwxxxxwwxwwwwxwxxwxxgvxxwvxxwxxwwxxxxwxxxwxwhvxxxxxxxwvxxwxxxxwwwxxxxwxxxwwxwxwwwxgxxwwwxwwxxxhxhwvxgxwwxvhxxhwwwxxxwxxwxwxxgxxxxxxxhxxxwufvfwvxvvvwwwfvgvwwwwwuwwgwwewwvgffwfgwwWfwwvwwwwwffwxxxweefvffevffffggwfffwfgwwfuvwwgwgVuvvegfgvwgwfwvgvwwwfwwvvwwwwwxevwgfvwwvvwfgwwgwwwwxwggwwwwggwxgxwxwwwwxwxwwwWvwwevgvvvvwxwfvvwhwwwwwwvvgwwwwwwwwwwwwvxgxwwxwwwxvwwwwwwwwwxwfgwxWfwwxgwwwwxwwxxwxxfvwxwxwxwxwwvxwxwgwwwwwgwwwwfwwwxxwwvxwxwwwwwwxwxwwwxxgwwwxwwxxvvwxxwxwxwwhxxwxwwwwwwwwwwwvxgvwxxxhwvxxhxxwwvwxxwwxxxhvvvfwvwuwwwgffvvwgxwfwwgwwwfewwgwvxxgwwwxxxffvvfwwwwwwwxwvvwwwwvgwfwvwgwvuwwgxxwwwwwwwwwgvwxwxwggwwwWggwgwhgwwwwwgfvwhxfxwxxxxxxxxxwwxwxxvwwwvxwwwxxwwwwwwwwwwxwgwwxxgwxxwxxxwwwwwxxwxwghxVgwwxwwxwxxwxxwxwwvxxgwwwwwfwwhxvwwxwwxxwxxwwwwwwwwxwxwwwxxxwwxxwwxxxxwvxxxxxxxwwxwwxwxwwxxwxwwwwxwhxxxxxxwwxxxywxxwxwwxgvwwwgggwvwvwxxgwxxwfgwWVeuwwgwxwwwwwxgvwwxwwwwwxVewwvwwwwxwwwxfwwwwwwwggwxhgvwwwxxwxxxXffuwfwwwxxwwwwwxgwwwwxwvwwwxxwwwxwwxxxxxxxvwvwwwwxwxwwxwwxwxxxwwwwxwxxwwxwxwwwxwwwxwyxgwxwwxwxwwwxxxwxxxxxxxxxwwxxxwwhwwwwxxxwxwwfwxXffuwwxxwwxwwwhgvwvvwxwwxxxgwwwwwxfwwxwwxxxwwwxxxxxxwxwxWVeuxfwwwxxwxxxxxxwvvwxwwxxxxwwwwwxwxwxxxxwwxxwgwxwwxwwwxxxwxwxxwwwwxwwxxxwxxxwxxwwxxhwwxxwwxxwxxwxwwxxxxxxxwwxxwxyxwxxwxwexxgwggwwvgwvwwwgufwWgWgwwwgwwvvwgwvwwgxwfwgffwwwwggvvwgffgwwwwvxXVegwggvgwvwwwwwfwWwvwgfgvgvwwfvwgwwwxggwwgvxvwvxggwwxgWfgxwxvvwwwwxwwwwwwwgwgvwwxxwxxgggwwwwwghxxgwfwwwwxxxwwwwxxxwxxwxxvxxxhvxxxgwwgwhvwhggxwwwvwxwxxwxxxxwwwxwxxxxwgvwhwvwwwxwvxxwxwwwxxgxwxxwhxxxxxxwwwwwxwxxxwxwxxxxxwwvxxxxxxxxwwxwxxxxhxxwxwwxwxxwxxxxxggwwwvhwwwwgwwfwwgVevwhxwxwxxwxxvwxhwxwxxvwwwgwwwgvwwwwgvevwxWwxhxwxwwuvwwhwxxwxwwwxwvwwxxwwvwgwvwgwgwwhxxxwwxxwxxxxxxxgwvwwhxwxxwxwvxwwwxwxxxwxgwxwwxwxxxhgvwwwxgwxwxhxxxxxxwxhxxvxxwxwwxxgvxxhwwxgvwixwxwwxwxhwxxxxwggwwgxhxxxgwwxxxxgxxxxxxwwxsgxgvwwgwwwfvwwxwxgwxwwwvwwfwggVfwwgwxwwxwxwxgvwwwfdwvwgfwvwwvgwwwwwwwxvvwvvvwwwwxgwwwwxwxxgwwwvwgXUWgfwxwgwwwwxxhWvwxwgwwxwxxxwxwxhxxfvwfwvwgfvhwhgwwwwwxwhwwgxgxwwxwvwgwxgxxwwvgwxgxffwwvvxwwwwwwxgxxwyfwxwwwwxxhvxxwxwwwwwwwwwxxgwwwwxwwwwwwwxwwwwxxxgwxgxwgwxwwwgwwwwxvvxwwwwhxxwwxwxxwxwxwhxgxwwwwwwxwxxwwwwwxwxgxwxwgvxxxwwhxfhwwxwwvwwvvwhWvhwwwxwwwxwxXUWvgwwwgwxwwvwwwwhxxfwgvvvwwxwgxggwwwwwxxwgvxvgggwwxxwxwxhwwxgVfwwwgwwxwwxwxwxxxwwwgwwxxfhwxxwwxxxxwxwwwxgxwxxxxwywxwwxwxxxwxwxfhxwxgwxwwwxwxwfwxwwwwhwwhwvwwwxwxwgwxxxwwwxwxvwgwwwwxxxxgxxfhwwwwxxwxhwxwwxxwxwwxhwxgxxgwwwwhxhwwxfhxxwxxxxxxxhvxxgxwxwxxxxwxxwxwxxxUwwwvwwwvvfVuwewvwwwgugwvwwwfwwwwwvwgwxgwwwwwwwwxwvwgwwevvwgfdvvvfguufvvwwwwWwgwwxvwwvffwwvgvwgvVvwfvXvugvwwwwvwwwfwgvwvwwwgwuvWgwvxwvwxwwwwwvgwgwwwwwwxwvxgwxwgwwgVgvgwwwwwxwvgVwwwwwwwwwgvugwwxwwwvwhwwwwwwwhvwwwwwwvgfwhvvvwvxwwwwxwwwwxwhxxwxxwvxwhvwwxwwwwWwgvgwxwvvwhwwwwxwxxwwxxvxxgxhwwwwwwvwhxwwwwwvxwwxwwxxwwxxxxwxwxwxxxwwwwwxwxwxwwxwwfxwWwwwwwxvvwwwwwhxxwwwgvwvwwwvfuvwfwwwuwuwwvgwvwwwwwwwwxfvvvwwwxxwgvwvwuugwvvvvwhwwwwvwwvwxwwwwwvwwwgvvvxxwwwwwwwgwwvhwgwxwwwwxwggxxwwwhxvwxwwwxgwxwvgwwghxwwwwvvwwxwxxwwwxwvvxxfxwwxvvwwxxvxwwwwwwwwwwxxxxxwwwwwxxwwwwwwwuwhxvxhxxwxhxwxhxxxxwwwwwwxwxvwxgxgwxxxxxxxwwwwxwxwwxxxwwwwxxhxwxxxwvhwxvwxwwxxwxhhxxxeWwwgwwxfwfgwffwwwwfugvwwgvwwwgwwwwwwgUgwgwgwwhgwxxfvvwvfewuvVffuxffvwwwwwgwvwwwwxgffvwwwwwwwwwwhwfVvgWwwgwfvwwvfwxwggwfwggwgwfggwwwxwwwhxwgUfwvwwwwxxfwwvxwxwwwfggvvwvgwwwvwvwwgwwggxwvwwfwvxfffwgwxwgwgxxwgwgwwxwwwwxwwggwfvwxwfgxwvwxxwwwwxwxxxgwwhwxwxvwwwwvgxwwxxxwwxwxxwwxxhvwwwxwwwwwwxwxxvhxwxwxwwwwwvvwxwwwwwwwxxwxwxxxwxwxwwwxxwxwxxxxvwwwwwxwxwvxxwwxhwwwwxwxxxwxwxwwxwgxgvwvwgwwgwwwfffuwxWwwwwxwggwgwwwxwxwwxxwwwwxxxwxxxfggfvvwwugvwVvvvgwxwvwxwwxwwwwxwxwvwxwwwwwxxvxxxxwxxwfwwhxwxxwwwxfwWggxxwwxxwwgwgwxwwxwgxxxxwgwwwvwwxwwwwxxxxwwxwwxxxxhxwwwxxwwxgwwxhwxwwwgwxwxwwwxwxxxwxxwvwxxgwwwwxghwwxxyxwxxxxwvwwwxxxwxwwxxxxwwxwxxwxxwxxhxwxxywxxwxwxxxxxwwxwywdwwgfwxvwwfwwvwwwwwwwgvwvwfdwgggvwwwfwwwwvgwwvwwwvvwvuwvfwggwvwwwvwfvgwvdfvvwwgwVuvvvvvggwwwgvfvugvwwvwwwwwgvwwwgvwwwwwvwxxwwwgdvgfggwwxwfwxwwwxhwwxwwggxgvvwwwwwvwxxgvdwwvxwwwwVwvxvwggxvwwvguwwgwxwwwxvwwwwwwfwwwwwwvwxxxxuvvwxvxwwwwwgwwxxwwwvwxwxwhwwwwwwxwwwwwwwwgwwgwwwwwwwwwxwwxwxwxwgvwwxwxgxwxwxuwwxwxxwxwvwwxwwwxwwwwwwvwwxwxxwwwxxxhxwxwwwwwWwvwvwwgvxxgwwgwwhwwxwggfwvvvwwxxwxxwwwhxxxvvwvwwvhvwwwggfwwggwwxwwxwwvvvvvwwwwxwwuvxwxxxwwWxwwxwwxvwwwxxxhxxxvggxvwwgwwxxxwxxxwxxxxxvwwwwwwwxxxwhgwxxwxwwwwvxxxxxwxwfxxwwxwwwwxwxwwxxxwxxwwxwwxxxvxwxxwwwxwwwxxxxxxwxxwxwxwxwxwxhwxwxxxwxxxwwwhxxxwxxxxxxxxxxxxxxwwwxxwxwwxxewvfwxwgwgwvwwvwwvVvgwwvxwvwxvgwvvwgwwwgewvvwxfvwfwwwxvvggfvwvvwvuwwxVeewwgfvvvwwwvvgwvvwwgvgfwwgvvvwwwwwvhwwgvwfwwwwxgwwwwgwwvvvxwwxxwxvgwwwfwxevgVwgwxwxvwwwwvwwguwxggvwgwxxwxwwgvwwgvwwwxwvgxwxwvwwxgxwxwxwxwxfwxwwwwwxvxwwxxgwwxwwwxwwgvwhgwwxhwxxwxwvwxwwvxxwxwwxwwwgxwwwgvvxgxwwgvwxxwxwwwgwwxgwwxxgxxxxwwwwhvwxwwxgxgvxxwvwvwwxwxgVvvwgwwxxfwwwwwwwgwgwvwwxwfwvwwwwxxwvvwvwwwfxxwwgvxwwwxxwxwvvwwwwxwxwvwvxggwwwgwwxgwxvwwvxwxgwwwwxwwxgwxwxwxwwwxxwxwxwxwwvxxwxwwxxxxwwwxxwvwxxxxwxxxxwxvxxfwxxwwxgxxxwxxxxwvxwgwgwwwwwwxwwwgwxfvvwwgwgwwwwgwwwwgwxfvvwwwwwxxwwwwwwwvwvwgvvwvwwwwwwwwwwwwwvvwwwwwwwxwwwwwwwwxxwwxxxwwhwwwwxgwxxxxwhxxwhwwwwwwxxxxxwwhwxhwwxwxwwxwwwwwxxxhwxxwxwxwxwwxxxxwwwwxxxxwwxwvwxwxwwwwwxwwxxxwvxxxwwxxwxwxxxxxxwwwwxwxwwwxwwwwxwxxxxwxxwxwxwxxwxxxxxxwxxxxxwxxxxxxxxxxxxxxxxxwxxwxxwwxwwxgwwwgwwvwxwwwwwwxgwwwxxxwwxwwxxvwwwwwwwwwwwwwxwwxxxwxwxxfvwxxxwxxfvvxxxwxxxwxwwwwxwxwwxwxxxxxwxxxxwwxxwwxxwxwxxwxxxxxxxwxwxwwxwwwwwxxyxwxxxxxxxxxwxxxxxwwxtgvwwwwwgfwxvxwwgvwwvvwwgwwgxffvvwwvwgVvgwxvggwVvwwwwwwwxhfvfewfvwvwvwgwvwgwfwwwvwwwfgwwuffgvwgwwwwwwvvwwvwwvgwwwwwfevvwwfwwwwvxwgwwwwwVfgwxuwfgffwxwwfwwxvwxxxvwvwVwvwwwxwwwwwwwwuwwwwwfwvwvwwgwwwwxxwwwwfvxxxxwwgvwwwwwVwgwwgvwxvwwgwxxwxwwwwxwgwwxxxgwwxwwwwxwwxwwwxgwwwxwwwxwvwxxxwgwwxwxwwxwwwwxwxxwxwgxvxwwxxxxwxhwwwgwwwwggxxwwxwwwxwwxwwwwwwgxwwfxwxwxwgxwwxwxwxhxwwwxwwggvwvwvvwwxvvwghhwxxxggwwwwggwvvvwgvxxwxwfwvvvwwwvwfvwwwgfxxxwwwvwxwwwwwxxvwxwwxwwgVvvwvwgwwwxgwwxwwghvxxwwggfewwxvwwhxxwwxwxhewxxxwwwwvwwwxxxvxxxxgvvwwgxwwxhxwxxwwxxxxwwwvwxxxvfxxxwwxwwwwxxxwxwxxwvxxxxxwwwwwwxwwxgxwxwxxwxxwxwxwxwwwwgxwxxxwvwxwwwwxwxwxwvxxxWvxxwwwxxxgxwxwxwwwvhwwxxxwwxxwwxwxfwwxwxwwxwxwgwwwxfwvvvgvwwwwxvvvwwwvxvwfvvgwwwwwvwfwwwwxvwxwgwwvfwvvvfwwwwwwwwwvwwvwvwfwvwvwvwggwfwvwwgwgwggvxwwxwwwvwwvwwwfwwwwxxgwgvwwggwvxwxwwwwwvwwwwxxvwwgvwwxwwwxwgwwwwwvwwxwhwxgwwgwwxxwwxxvhwwwxxwxwwwwxwxhwwwxhwxwwxxxxwxxxxxwwwxwxxxwwwwxhxwxwhvxwxwxxxxwxxwwxgwxxxxxxwxwwxxwxwxxhwxxvxxxxhwxwxxvwxgwwwwgvwwvwwvhwwwwxwwgwwwvwwwvggxwxwvwxxxxfwwwvwwwwwwwxvwwxwwgwvwwxwhxhxwwwwxxwwwxgwwgxwwwwxwwxxhxxxwwgxxgwxxgxxwwxwwwwxxwxwwxxxxxxxxxxwxxxxxwxwwxxxxwxxxwxxxxgwxwxxwhxxxwwhxxwxwxhwhxwxxxxwxxxxxwxxxgwwxwwwwxxxxxgxxxxxxxyxxxxxxxxwxgWggwgwgvWggWgfufwwwwgwwwvwwgxwggvwwvwwvwgwgvfwwwxwgwwvwvwwgwwvvewfwwwhgwvvewggwwwfwgwxgwvggwwwwwwxwgxxwwwwwwgXxwxxwxWvwwwwhwvxwxwvxwxwwwwwxxgwwwwgxxxwgxxwwvxwwvwwwxwwvgxxgwwxwwwxxxxxwwfgxgwxxwxgxxhxwwgwuxgwwxgvvgwwwggxxwxxwxxxwwwxxxwwwwwwxwgwxxwwxwwxwxwwxxxxvwhxxxxxxhxwwwwhwxwxwxxwxxxxwvwwxwxxwxxwwxxxxxwwxhxwxxxgwvwwwgwwfwwwwwwwghxwvvwwwwwvwwwwgwxwwwwwwwfvwwvxgwvwgwwwwxvvwwwxwwhxxwxxwwxxwxxxgwgvgxwwwwgvwwxxwwwxxwwxwxvxwxwxvwxxwxxwxwxxxxxxvxwgvxwxxwwxggxgxxwwwwxxxgxxxxxxwxwgxxxwxwxwxxxwxwxwxwwxxxxwxxwxxxxwwxwxxxwwxxxxxxxxevfevevvwvxfwgvwvwwffwvggvwwwvwwvvwwwwfvfvffwwwwgvxvwxwfvfvfvgvfggwwgfwvwwvwvwvwvwfwwwvfwvvwwfwwwwwwvwvwvwwvwwwwwwwuvvggvggggwwwvwgvgwwwWgwwxxwwwwvwgwvwxwxwwwxwxxwwfwgwvwgggwwwgfvwwxvwwwwwfwwwwwgwwvwwxxxwwxxwwgwwwvwvwfvgvffgwwgwffgxgwwwxxwffgwwwvgxxwvwwxwxwwxwwxwwwwwwwwvwxxxxxwwwwwgwwxwwxwwwwxwwxxxgfgwwvxwwwwxwxxxwwwwwwwwwgwwwwwhxwwwwxwwxwwgxwxwxvwxxxwxxxwwxxwhgvwwxhhfwwhwwxvfguwgvggwwwwgwvgvwgwuwxxxxwfwvvwwwgwwxwxwwwxxxwwxxvvwvwgvvwwgvwwxxwgwxwwwxwwvwgfvwwwvwwxwhgggwwhffvgVewwxxwgvwwwxhxwwxxxwwwwxxwwxxhhfwwxwxwxxhgxxwwxwwxwwwxwxxxxwxhwxxxxwxwwwwwxwwxxxvvgfgwwgwwxwgwwxxwwgwwxwwwxwwwwxwwxwwxwwvwwwwxwvxxhwgvxgxhwwxwwgwwvxxxwwxxgxgwgwhxwxgwxxwwxxhgxxhwwxvhwxxxfwfhwwwxxwxwxwxxwwhhxxxxxwwwhwwxwxwvwwwxxxxegfvvwwvewwffvvwvgwwwwwwgwwggwfwvwwvvvgwvwwVuwwwwwvxwVvefffevfwVuvfufvffvwvvgwwvwfwwvvffwvvfwwvvvwvfVvvwwgwgvwwwwwxfwfvwvvwfewwwvvwfxwwgwgxwwuwwvfvwwxwfvwwxwxwxxfgfvwvvwvvWwwwwhfwwwwxwwwwwxfvwwwwwxxwwwwwvgwvvvwxxwwxwwvwwwwwwwxwwwfgwgvwwwwwwxwwwxwguwgwwxwwvwwwxvwwxwwwvwwggxvwxhwwvwwwxwwwwgwwwwwwwwwxwwwwwwwxxxwuvgxwwwvxwvgxwwxwxwvwvwwwxwwxxwxvwwxggwwwwxwxwgvxxxwwwxwwxxguwwgfwwwvwwwfvgwvvxwwwgwvgvhwxwxwwwxgwwxxwxxxwwgugvevwwvgwwwfvvwxwwvwwwgwfxvwxxwwwwwxwwwwwwwgwwwwwwgwvwgwVhhgwxwvwwwxxxwhwxgwxwgvwggxxxwwwwwwvwgwwxxwvwxwwwwwwxxwwwwxwxxxwwwgxwwwwwwxwvxgwvxxwgxxwxwwxwxvwwxwwxwvxgvwhxvwwwxxwxwxxhvxwgwgwwwxwhxwwwxwxwwxwxxxxwxxxwwvxwxxwwxxwwxxwwwxwxwwwwxgwwxwxtwwgvggfgGwxwwwwggwwgwwwvwwwfwxwvxwwwgvgwwvwvwwwgwfwewvggWewfwfwwxgwgvvvfgvvxWgwfwgwwwwvwvwwFwffvwwgvxwwwwvwwwxwWwwfvfwgwwwhwwxgxwxwwhxwwfwwxwxxwwfwwwxwxwvxgwwwfwfwfwvwwwgvwgwgwvwxwhwuwxxgwwwgwwxwwwwxxxxwgxwVwwxggwwwwwwwxwxwwwwgxvxxgxwwxwxwxxwxgwwwwwwwwvxwwwwxxwwgwxxwvwxwwwxxwxwwxwwhxwxwwwxhwghwwwxxxwwxwwxwxxvwwwwwxwxwxxwwwwxwxxxxwyxxxxxwwxwwxhxwxwwxxxwwxxwwxwwgwvwgfdvwwwgwwwvxwwwxwgvwxwvwgvxxxxwxxxgwwxfwwfvwwvuwvxwdvwvxgwhwwewwwwwxwggxvwwwxwwwxwhwxwwwxwuwwxvggvwwhwwxxxwxxwxxxgwxxwxwxvxwhxxwwvwwwwwwxwwxxxhxwxxxxwxxwxxxxxwwxvwwgwwwxvwhxhwxhxxwwwxxxxxwxxxxyxwwxxwwxwxhwwxxvxxwwwwwwxhxxxxwwxxwxxxxxxwxxwxhxxxwxxxxxxwwwxxxxwxxwxwxxwwxwxwwxxxwwwwwwwxwgwgwwwwgeVgwwgwgwwwwwgwgxwxwgfwgwgwgwwwwwwwvwwwwwwwwwwvvwwvwwvwxwguvwwvwwvwwwwvvwvvxwxwwwwxXfgxwwggwgwhwwwxxwwwwwwwwxvwwwwxwgwvuwwwwxxwxvxgwxxxvwxuwwgxgxvhxxwwwxwxwwxwwwwwxxwwwwxhvwvwwwwxwwwxhvxwxwxwwwxxwxvwxwxwwfxwxvwwwwxwxwwxxxxxhwxwwxwwxhxwvwwxxxxxxwvxwxwxwxvhxxxxvxwxwwwxvxwhxxwxwgwwwhggWfggwgwxwxwxwxxwxwwwxxgwwwwwxwwwwwwvwwwxxxwwwwxwxxxwxxwwwghwheVuwwwxxxxwwwwxgxwwwxwvwxxxxxxwwwxxxxxwxwxxwwwwxxwwwwwhwxwwxxxhxxxxxxxxwwxxxxxxwxxxxxxxvxwwxxxwwxwxxxwxwxxgxxwxxxwxxxwwwxxxwxxhxwxwxxxxxwwwxgwwwxwfwVvwwvwwgvVWfvuvwwwwvvxwvwxvwgvwwvwwwwwvfvwvwwxwwwgvwvwwvvwwvfwwwwfwwwwvwwwgwwewvvvfwwwwwewvvwwvxwwwwwwgwvxwgvwgwwwvvwgwxwwwwwwxwwxwxwwwhwgwxxhwwxwwwwwwxxwxwvvwwwwwvxxwxvgvvxfwwhxxwwwwwvwxwwxxxxghxxgwwvwvwuwwfwxxxxwwwxxwwwwxwwgxxxhwxgwwwwwwwxwxxwwwxwwwwwxwxwxwwxwhxxwwxxwxfwgwvxwxwxwxxxwxxgwwxxwxwxwxwxxwwwhxwxgwwwwwwgwgwwwwxxwwwwwxvwvwxxxwxwwvwwwwxwwwgwwfhxxgvwwwwwwwhhwwwgwxxwxgwgvwxwxgvwwxxxxxxwwwwxxxwwwwxxxwxxgwwwwxwxxwxxxxwxwwxwwwwxxxxwwwhwwxxxwxxxgxxxwxxwxxwwxwxxwgxxxwwxxxxwxxwwxxxwxxxxxwwxwwgwwxvgvgvwwwffuwevvvgwvwvgvwwxwuvufgvwwwxvwwwgguvfgwfvfwgffvfffffvfwwWvWwfgxfvvvgvgvvwwfvvvwWvWvwwvvwwwgvwxwwwfwuwhwvxxxwvwwwxwxxxwwvwxhwwwxwwwwwffvvwwwwxwfvgwwgwWwgwwwwvwwwvvwxwxwwwvxwxwwwwvwwxxwvwwwvwxwwwwwvwxxxwwwwwvvxgwwxxwwxxwwxwxwwwxxwxwwwwwxxwxxwgxwxgwwxxwxwxwgxwgxgxwxwwwxxwxxxxxwxwxxwxwxxwxxxxxwwwwwwxwwvxwxixvxwwwwwwxwxwxxwwxxwvvwxwggvwxwvwuwggwwxxxwwwwwwxwxxwxwwgwxxwwxxwwvvfvvwwwwgwgvvvwgwWxwwwwwwxwwwxwwwwhwwwwgwggxwvwxxxwwxxxxwxwwwxxwxwwxxxxxxxxwxwwwxwwwwxwwxxwwwwxwxwwwxwwwwxwwxgxwwxxxxxxxxxxwxxxxxxxxwxxxwwwxxxxwwwwhwwhgxxxxxxwxxwxwwxwxxxwwgxgxwxxxwwxxxxxxwxxxxxxwwwwwwxwxxxxxwwxwvxwwwxwwxuwwuwwvwwvvwwwvvvuwwvwwwwgwfvfwWgwwwvwwugwwwvwggwwvxwxfvuwgfdvvggvvwvgvwwwwwuWvvvwwwvvfgVwevfvgugfWwvwfwwwwwgwggwgwwvwfgewwwwwwwuwwwgwwxwgguwwwwgvxwfxfwvxvwwvwvwWwuvwwxvxwwwwwfwwwwxxwwfVwxwgwxwggwfxxwxwwwwxxwwwxxwgxxvfvxxgvwwxwwwwwwwgvwvxwhwxwwxgwxxgvwxwwwwuwxhwxwhxwwwxxwwwwwwxwwgwwhwgxxggwwwwhgxxwxxgwwwwwwxxwwwwxhxxwwxwwwwxxxwxvwxxxxxxxwxxgwwxwwxwxgwxgWwwxhxxxxxwvxvwwwvgwwwwxgwgwwgwxwwxxwgguuwwwxxxwwwxwvwwxwwwwfvvgefwwxwwgwvfwwxhwwwxwwwwwwwwwxwvwwwwwwwhxwvxwxxwwvgwxvxwwxvxxwwhvwwwvwxwxxxxwfwxxwxxxhxgwvwxwgxxhwxggxwwxwwfhxwwwwwwxhwwwxxxwvwxxgxwwxwxxxwwxwwwxwwwxwxxwxwxwwwxxxwxwwxwwwxwwhwwwxwwvvwwwhxxgwWwxgvwwvxwwxxxxxwxxxwhxxxxwxwwwwxvwwxxwwxwxwwxxwxwfwwwgvhwgxwwwxvwwxwwvgwggwvwwwwvwvgwfvvwwgvggwvggvwwwwvgwfvvwvvwwwwwwwuwwwvxfvwwgvgvvwvwwvwwxvwvvvwvwwwgvvwwwvwvwwwgwwwwwwvwhxwwgwwwwgwwvwxgwgwwwwgwwwgwxwwxwwwwwxxxwxvxwxgwvgwwwvwwwgwwwwgwvfwwwvxwgxwwwwwwxwwwwwwxxxxwxxxgwwwwwwvvwwxwwwxwwxxfwwwwwxwwxwxxxxhxxwwgwgxvwwxxxxxwgwggwxwhvxwxxwwwwwwwxwwwwwwxxwxwwwxwxwxxwxwxwxwxxxwxgwxgwwxwxwxxwxwxwwxwgwvwwwwwwvwwwwvwwwwwwwwwwwxwwwwwwvwwwwwvwxxwxxwwwwvhgwxwwgwwwvwwwwwwwwwvwxwvwgwwxwwwwvwwwwwxwwwxxwfvwwwxwwwwfvwxxxwwxxxxxwxxwwwwwxwxxwwxxxwwxwgxwxwxwwwxwxxxxwxxxwwwwwwwwxvxxxxwxwxwxxwxxxxwxwxwwxwxwxxxxxwxwwwgxgwxvwhgwwgvwwxxwxxxxxxxxwxwxwwxxxxwxxwwxwwwwwwwxwxwxwhwwyxxwxwwhxxwxugxvxwxwwvxwwgwwwwwwfwwvwvxwxwxwwvwwwwwxfwWwgvxhwwwwwvwwwfwgwwVvuwuvwvfwvfwwvxvwwwggewwwwwfwvwwwwgvvwvwggwxwxwwwxxwgvxwwwwhgvvxwwfwxwwwvgvwxwwxvgwvxwhwvwwvwwwwxwwggxwxgwxxwxwwgvvvgwxwwxwxvwxWxfwxxxxwwwwxwgwwxwwxgwwxxwwxwwxxwwwxxxwwxvxwxwwvwxghwxvwwvwxvwxxxxxxwxwxxxxxwxxwwwwxwwxxxwwxxxwxxwxxwxxwvxxxwxxhxgwhxwxxxwwxwxwxwwwwwwwxwxwxxwxxwwgvwxvvwwwwwwwwwxxVguvwxxwwwweuwwwxvgwwwxxxxwvwxwxgxwvxxgxvxwwwwwvvwwwxxwwxgwwwxwxgxhhxxxwwwwwxwwxxwwwvxxxwwwxxxwgxwwxxwwwwxxywwwxwwxxgwxxxwxxxwxwwxwwhxxwxwxwwxxxxxxxxxhwyxxxxxwxxxwxxxwwxxwxxxxwxxxwwxwxxwxxdgvwggfwevuffevwwxwvwwwvgwwvwxevuwfuvwwwwwxuwwwwwxxwTevwUdefffevefevgeVwwvwgvgvvwuxufuvufffvvwvfwwgvvwwgwxgwxwUuewefvwwfgwewwxtevwwvwgvvwhwuwwwwfxwxwxgwxxxwTfevVfffVvdvgwwhfwfwvVwgwwwwguwvwxwwwxwwwfwwxwggvxwwxwfwwfwvvwgvwwWdfwvxwvggvwxevwvvvwwwfgxwffwfgwgvfwvwwuwgwWuxxxgwgvwgwgwwwxgvvwgwwxwxwwxwwxwwwwhvevggwwwwvwxwxwVvgwgxwwxgwwgwuwwxwxxwvxwxwxwwxxxvvvwwwvvwwxxwwgwwvWvxwwxwwxxwwwxwwggwwwwwvwwwxvTuvwfUdwgwwgwwevwwwvwxwvwgwgwufwwwwgwwwxxwxweVvfeVVvvfwwgvvwwwgwwwewgwwvwhvvuwwvwwxwwgwxwwuwwwwvwgvfvhwwwwWwxgvxwhwwhwxxwwhxxxwxxwwxwwvffwwWfwgwwwwxgwvwwvwwxwwwwwwwhwxwxvwwvxxwxvffwwwwwgwwhgwWvxvwwxwhxwwxwwxwwxwxwxxxhwwwwwwwwwvxxvxvgvgwxwxvxwxwhwwwwwvgvxwxxwxxxwxgvwwwwxwgxwxwxwvwxwwxxwwwwxxxfwxwwwwxxhxxvwxxxwwvxhwxwwxwwxwxhxxvxwxxxwwxxxgxwwxwuwwxvfxwvvwWffvwgwwvwguvvgvvwvvwwwwwgwwwwwxwwxvwwgWvuWffvgvWfvwwwvgwgwvggwwveggvwwxwxwuwgwwwhwwxvvxwwwwgfwgwvwvwvVfwwxwwwxxxwwgwvvgfWwwwxvwgwxgXvwwxwwxwwwxwxwwxxwwwwggwwwwvvwxxwwwwwxwxxwvxvvwxxwvgwwxwvvhwwxwxwwwwwvxwwxxxhgXhwxwwwwwwwWwxvfwxwxwwwwxgxxwxwfxgwwhvvxvwxvwwwhxvwxwwxwfwxwwxwwwwwWffwvgwgwWfvwwwwggwwwxwxwwwwhwwxwWffugvvwwwgwvgwwgwvwwwxvgvvxhwwxxwwgwxwgwxwvwwxwwvwwhxwwxxxhvxwwwwgxxuxwxwhgxwxwwwwwxxwwvwwwwwxwwwxwwwwwwwxxxwxxgwxwxgwwwhvwwxwvwxgwxxwwxxwxxxxxxfwwxxwwgxgxwxwxvxwwwxxwwwwwwXxxxwxtggwvvvwfvvwvuwfvvwwwxfffwwxwwxxfgwvgwwxgfvwwwvwxwxxeefvvwfVdvufvvwvffvwwwUgefwvwgffvwvvwwwwwfvfvwgxwwwwhwvfvfgfgwvwvwwgVgvwwwvwxwxuvwwwxWgvwwxwxwUVvugvfvvwgvxwFfdfwxwxwwwwvfwvwwwwxgwwgxwgwwxhwxxwwwvvwwfvwfvvwwgwwwxvwvwwgevvwvvxwwwwwwwwvwwxwvwwxwwwvwwwgvvwxwwwgvgwwvwwwwxwxxwvwxwxwfffWwuwvgxxgwvwwwvxxgwxxxvwwwxxwwvvwwxwwwwggvwwxxxvwggwwgwgwxxwxxxwwxxxxwxxxwxwwevwwgffVewvwwwfgwxxwxvwwxvvfwwwwxwxxxxvwxfVevgwvwvggvwwwfgwwwxwwxwwwwwwwxxwwvwxwwvgxwwxwwwfgwwwwxfwxxxfhwwwxxgwwxwwwwwxwwgwxxxwgvvwwxwgvwwwgwwgwwwgvwxwwxwxxwwwwwwxxgfgefwxwgxhwxwxwwxxxxwwxwwgwgxwxhxxxxxvwwwwgwwwwwxvhwgvxwxwxwwxxxwhxwxwwfwwwwwxwxwxxwwwwxwxhwxxxxxwwxwwwwwgvxxxxwxxwxwwvvwwvgwwwvwwwvwwwgfwfuwwwwfwwfvwwwgvwwgvvvgwgvwvwxvfwwffewVfvWvvwfffvwwggfwvwfhVfevwvvvwwwvwgfwvwwvxvgwxvxwvwxgfvwwwwxguvwvWwvwvwgwwwvwwwwwxxfvvwvfvwwvfwvxfwffwwwvwxwwwwvwwvvwvwwwwfwwvwvvxxgwwxwwwwgvgwwgvgwwxwgwwhxvfwwwwwvvwvwwxwwwxgwwvwwwvwgwwwwwwwwxhwwggwvwwwwvguvxvvxwwwhxwuwxxwxwwvwwgwwwvwwxwwxwvxwxwxxwxwwvvxwwxxxwvwwwgvwvwwwvwxxvgwwwwwwwwwwxwfwwxvxxgxvvwwwxwgvvwvwwwuwgfvuvwwvxwxwwvwwwwwwvvwxwvxxvgfvwugwwvwwwwvhvfxwxugwxwwvvvwvwwwwvxwvwwwwxxwwwwxfwvxxVwwwfwwwxxwwwwwxxxxxxxxxxwwwwwgvwwwxwxxWwwwwwwxwwxwxwxxwvwwxxwwxvvfwxwvvwwxwxwwxggxwwwxwxwwxwwwwhhwhwxvwwwxwvwgwwxgxwwgxxxvwwuwhxxwvwwwwwgwwxxwwxwxwghgxxxxxwxwxxxxxxxwwwwgwxhggwwxhxwxwxwwwxwxgwwxxwwvvwwxvfwvxwggvgvgxwvwwwwwxwxgfwvvwwwwvfwvwwggvvfwwfvgvwwvvgvvvvvwwwwwwwwvwxxvwxxwwwwxgfvwwwwwxwwwxwwfwwxgvvwwwwwxwxxgwwwwwwwwwvvwgwhvxwxwwwwxxwwxvxwgwgxwxwxwxxxwgwxvwwwxxwwxxhxwwwwxxwwxxwwwxfvwwxwwwwvxxxwwxxxxhvvxvwwxxwxwwwxwwxwvwwgvgxwfwgwxvfwvxxgwwxwxwwwxgvgvxvfwvxxggxwwvxwwwxwwwvgwxxwxwwwxxwwvwwxwxxxwvgwxxxwxwwwwxxwxwwwxwxxwwwvxwywfwwwxxwwwxxxgvwxxxwxxwwxwxxwwwwwwxvxxvxxwxxxxwxxhxxwxwwfwwwvwwwwvwwwvfvwwgvwffvwwfwwwgwwxgvwvvVwffvwwvwwxwggvvfegwvUvwvwfwfffwvvwfUfgffUwgggwfgwfvvwvwwgVfwvWfvwvxwxwvwwvvwwwwwvwwwwxfwwwgwxewwwwewvvwfwwwwwxgvwwxwvxxxxgfwgvwxfwwxvwwfgwvwvwwwwwwwwwwwfwwxxxwwhwwwwxwwwwwxxwxwwwwwvvwwwwxewwwwwwwwwgwwvwxgwwwxxwxgxwwwgwwwwwwwwwghwxwxgfwgxxwhwvxwgvxwxwwgwwWvwwxxwwwxvvwwwwgwwxguwwvwxwwwxwvwxxwxwxxxwxwxgxwwwxxwwwwwvxwwgvwwwwwxxxwvxgxwvhxwwxxxhgwwwwwwxwgvwwwwWvxwwgwvwwwhhwwwwwwwxwgwgwwxxwwWgvwwwwwvxxvxwwwWgwwwwwvwxvxwwwwwwwxwxwwffwwwwwwhxwxwwwwwwwwxwxwvwvwwhwwwuwwxxwxwwwxxxxxwxwwxhxgwxvxxwgxwwwxvwxwxwxxxwwhwfwxxwvvwwwwwxxwwxwwwwwwxxwxwxwgwxxgwgwxwwwxwxxvggwxwxwxwwxwxxwxxwxwxxwxwxwwxwxxxwwwxwwhwwwgwxxxwwwgwxwgvxwwwwwwxwwwfxxwwwxxxxwwwxwwwwxxxwhxhwxxtvvwwwwwfuvvwwvvuwwwwwfevwffwgxwxwvVVwwfwxxeduwwfeffvwwvuUduvwwwvvvwwwxueVuvfwguwwvgwwevevgvxwvwwwfvfwuevuwwvwewggvwwwfgwfwvwgwvxwxvwwxxTffvgvwgvwgwwxeufvggwwwwwvvWWudvvgwwxwwwvvvwxwxvxwvhevvvwwwwxfvwwvwxwvuvwwvvwwwxxvwwvwwwfwwvwggfwwvwxxwvwwwxgwwxxwvwwxwxwxwxgvxxxxwyfvfgwvwfuxfwvwxxwgwwxwvwwxwxwxxxxwuvxggvwwwwxwvwxWggvwxwwxxwwwfxxwxweuvwwvgwwwfEUvuvxwwwwwwwxxwwwwvwwxwuVfvvwwwfwwxuffexgvwwwvvwwvwwxxvwwvvwwvwxxwwgvwvxwwxguvgxwxxwwwxhxxgvxxxxxhwfuuwvxwwxvfewwvwxwxwwwwwvwvxxxxwxhwgfvwggwwwwwwwxxgxxxwxxxxxgxxxwvvwxwwwfwwxxwwwwwwxxvvwwxwwwxxxxwgwwxxxwxxwwwwxxwxxxwwwxwxxwxwwwwxwwxwxxwxxxwxwxgxxuvwvvwwvwwwvvxuvvwgwvffwwwvvwwvvvvvwwgwvwgwggfwvwwwvvgwgwvfwvvvwwvVewfvwuufvuwwgvvwvwwwvfggvwevvwevwvvwgwwwfvwuvwwwwgwvvggwwvwwgvfgvwxvwwwvgwxxwwvwwgvwwwwwwxxvwgwfvwWvugwwwWvugwvwwwvwwwvwwvwvxwgggwgvxwwwggwvwxwwwwwxwwwwvwgwwwfwwwwwgwxxxxvxvgwxxxwwwwxwwwxwwwwwwwvgwxwwwwxgxxxxxwxxxwgwxwwwwxxwvwwgwgvwxwwwwwhvxwwwgxxxwwwwxwwwwwxxwwwwvwwwxwvwvwwxxxxwwxxwwwhxgvwhwvxxfwwvwgvvwwwwgfwwvWgwvvwwwvwwvwvwwwgxxwwvwwxxxwxwxfwwgvvwgwwwxfgwvvwxvwxxwvwxwwwwwwxwwwwxwwwwwwwwwwhgggwgfvvwxvwxwwwwvvwwwxxwwggxxwxxhwwwwgwwvwwfxxvwxwgvwwxwwxwwxxxxwwxxwwxxwvxwvwgvwwwwwvxxxxxxxhxxxxwwxxxxxwxwxxwwwwvwwxxwvwwxxhxhhwxwxwxwwxwwwvxwxwfvxxwgwwxwwxxwgxxwwxxwvwwxwwxxwwxwwxwgxxvwfvvwwxwwxvwwwwwwgvgxwwwxwwwxwgwwwwwwwwwvxxxwwwwxgwwgvwwwwxgwvwwggfffvwxwwwgvwwwxxwwwxxwgxxwwwwwwvwxwxwwvwwwwwwxwxxwxgwxxxwxxwxhwwwwwwwxfwvwwwwxwwwwwwwxwxwxwxxwwwxwwwxxxwwwxwwxxxwxwxxwxxxwxxxwwxxwwxwwxxwwwwxwwwxwxxxwxxxxxxxxwxxwwwwxxwwxwxwxxxxwwwxxwxxxxwwxxxxxwwxyxxwwxwvwwwxfvwwwgwhhwxhwvxwxwxxxggwwwwxwwxvgwvxxxwxwwwwxwwwxwxwwxwghwwwxxxgwwwxxxxxxwxgxwxxxwwxwxxxxwxwxxxxxxxxxxxxxxxxxxwwwxxwxxwwwxxyxxxxxxxxxxxwxxwxwxxxxxxyuwwwvhwvwxxgvwwxwwwwwwxvvxgegwgvwwwwgvwwwwxwxwvhwgvfvggvwfwwwgwvwvwwfwwwxgevvwgwwwvwxvwwxxwxvwxxggvwwwfwwgwwwwwwwxxgwwwwwwxwxxwwwxwxxxgvwfwwwfwwuwwwwwxvwwwwvwwwxwwghwwxhxwwwwwwxwgwvgwwwwgvwwxvwwxwxgvwwwwvvhwxwxwwwwwvwwwwwxwxxxwwxxhvwxxwwwxxvhihxxxwwfwwwwvwvwwwwxuxxwwwwxwxxxxxwxxxxwgxwxwxwxxwwwxwxxhwwxvxxwxwxxxwwwwxwxvvxgevgwwwvwwgvwvwxwwvxgvgwwwwxxwvwwxgegwvwgwwwxwwxwwxxwwvvwwwxxwwhxxgvwwwwwwxwghwwxwxxwxwwvwwxxxwxwxwxwwvwxwxxwwxxxxwxxxwxwxwxgvwvwwwwwwxhvvhxvxwxwwxxwwxxxxhwwxxxxwxhixxwwwvwwwhwxxxxwwxwwxxwwwxhxxxwwxxxxxxxxwxxxwwwwwxxwgxxwxxwxhwxxeevwwwgwwgwgvwwfvwwwgwwwwwwwwwvvwwvwvUvwwvxvfwfwwwwwwefvwffewUfevgwvveVvwwgxwfwwwwwwfUefgvwevgVvvvgwfwgwfwwxwwxgvwgvwVfuvfwvgvwwwwwwgfvwwghvwxwgwwwvwxgwxwwugvvvewwwwwvwwwfwvwgwwwgvxgwvwwwgwwwuwgwfwwxwfwwwwwwwwwwvxwgvgwwvwwWfwvwwwxwwwwwxgwwwwfwwwwwxxwwwwwwxwwwwgwvwwxwvgxwwgwwwwvwxxxgwwXwxwxwwwwwvwwxxwgxxgwvwxwvwwxxxwwxwwxwwxwwwwvvwwwvwwwghuwwwwxwvwgwxwwwxxxvwvgwvgfvwwvgvgwwwfxxxwWguwvwvvwgwhgwxwgwxxxVeuvvwwvWwwwwwwevwwwvwxxwwwggvvwwwgvxwxxwwwwxvxxwwhwxwxgvwwvxgwwwgvwwwxwxwwxwxgwwwwwwwwxvwxxxxwxvvvfvwvwwhwxxwwwwxxwwwxwwhwwxwxwwxwxxwwwwwwxwgwhwfxfxvvwxwxgwxxxwxwxwxxxhgwwwwwxxwvwxhwwxxxxwxwwwxwwgwwxwxxxwwxgwwwwxwwxwxwhwwwxxxxxwxxxwxxwwxxwhxwxxxwwxxxxwxxwxxxwxugxgwgwwwwwfvwwwwgwwwwvggwevvgwwwwgvwwwwwwvgwWffvwwwwwwxgwwvffgVfffvfvwgvxwwwwgwgvgwwwwfwwwvxwfggwgwwwggwwghwxwwxwgwxfwgvwfwgwggWgvgwwxwxxwwwghvgwwxgvxwxwwwggwgvwwvfwwwwgvwwwwwwxxvwwvxgwvwwgwwgwxwxxwwwwwwwwhwwhwgwwwwxggxwxwwggwgwhxhxwwwxxwxxxwwwwhvgxwwwfgwwwvwwxwxxxxgwwxxwxwwwxxwhwxxxxxxxxxhxxxgvwwwgwwxgvxwxxwwxxxxhxxwwxxxxwwxxxwwwxwwwxxxxwvxwxxwxxxwxxwxxxxgwwwghvvvvvwxwwwgwuvwxwwwgwwxfgwxwwxwxxwxxwWwwwvwvuwfvvgwxwwwwgwxwwvwgwwwxwhxwwxxwwwxxvhxwwxwgwwwgfxxxgwwwxwxhxwwwxxxgxwxxwwxwwvxwwhxwwwxxwxwgxxxxxxgwwwwvwxvwvxxghxxxwxxxxxwxwxxxxwwwwwxvwwwxwwxxwxxxxxxgxxwxwxxwxxwwwxxgwwxxxxxxwwxwxxxxwxwwxxxwxxxxwxxxxxxufwvwwxwwwgwuewwvvgvgwwhwvuwvvgwwwxvfeWwvgwwwwwxwvfwwgwuhvhvvwxgefwwwwvvwuwvwxgeWuvwwwwwwwvwuwvgwwxwwxufvwgwwwvvgwgwwwxxwxxvWwefwwxxxwwxxxxwvguwvwwhxwwvwwwvwvwVwgwhxwfgvwxwxxwwwwvwwwwvwwxvwxvxgvvgwwxvuxhvwwgvwwwxwxxwxgvwwxwxxwwxwwxuxwhxvwuwwxxxwwvgvxwwxvwwgvvvwgwhwggfgvxxgwhxxxwhxxXwuwwxxxxwewxvvwwxvxxwxxxwgwwwxxxwwxxwvwwxxggwvwwgfeWvwvfwwwwxwvwwwwwxxvvwvwxxwxgeWwvwwwwwvvvuwvgwwwwwwwwwwwwxwwxwvwxvwwgwxwxxxwvwwghxxxxvwvgxxxxxxxxxxvxxxhxwwgwxwxxwwvxwwwxwyxwwwxvwgxhvhxxxxxxwwwwxwxxxxgxxxwxvwxxxwugvxwwxwwwwxgxxwwxvxwxxwvwwxxxxxhwwwxvvxxxxxwwxgxxxxxxxuwwvvwwwwwwwwvgwwvgvgffxwxwvxvvgffwvwvwvvgwvvVuffwwxvfwwvgvwwffgvwwwTEvwgwwwfwvwwvwvgvvVevvgvvwfvvwvwvggwwwwhwwxxwwwwwwxwwwwxwwxxwwwWuxvgvwwwxgvwwwwwwwwxvwwwwfvwwwwvvwwvwwwwwwgvvfwwwwvwwgwgwgfvxwwwwxwwwwvgxwwwwwwgvwwwwwwwwwwwwxwwwwwwwwwwxwwwwxwwxwxwwwwwwvxxxxxwxwwxwgxwwwwwxxxwxwwxwxwwwwWuwxwwwwgwxxvwwwxxwvwxwwwxwvxxxwxgfxwvgxwxxwwwwwwwwgfvvwgwhwwhvwhwwwwwgwvwwwwwwxxxwxxwwvwvwwwgvxwwwwwwgvxwhwwwwwwwwwgvxwwwwwxwxxxvgvwwwwwxgvwwwwxwxxwxwhxwxwxwwwxxxhvxwgvwwwwwxxwwwxxwxwxwwwwwwwxxxwwhvwwgwxxgwwwwwxxwwwxxwxxwwxwwxhxxxxxwxwwwwxwwhxxwxwwwxwwxwxwxxxxwxxwwwxxxxwwwwxxxwwwwwwvxwwxxvwxgwwwhfvwvgxfffwvvvgwwgwwwwwwwUffwwwxgxwgwxwvwfwwgvxfvwUvfvVugvwfvwweUvwwwwgwwwwvwwvwwgwwwvwvwwgwxwgvgwwffvvwgwxgvwwgxxwwxvhwwwwwwvvwwwWugfxgvwxhwggwwxxxwxxwfwxwxwwxwgwwwwfwwwxfggwwfwxwwwxxwwxxwxxwxxwwxwgwvxwgwwhwgwwwwxwwwxwvxgwxxxxvwxwgvwwwwwwxxwxwxxwwgxwwxgxgwwxwvwxxxxwxxwwxwwxxxwwxxwwwwwxgvwwwwwvwwgfwgwvxwwhwwwwxwwxwwxwxwxwwwwhwwffwwwwwwwwvwwxwxxwwwwwwwwwxxxgwwwwwxwxwxhxxwwwwfwxwxwwgxvwgxfxxxgwwwwxwwxxxxxxxxwxxwwxwwwxxgxxxwwxxxxwxxxwxwwhxvxxwwxxxgwxwxxxwxyhvxwxwxwwxwxwwxxxxxxxxxxwwwxxxxwxxxxxxxxxxxwudfwvugvugwvwfwvufwwfggfwxgwwwwvvvfugwfwwfvgvvfwwgwxffwgfxvwefvwfVdwgffevuwwwggvwvwwvvefwwffvdfffgeggvwwWufvwwgwwwgwwwwefvegfgvwwvvwdfgfwxgfwxwxvvwxvVwwwgvwgwgvwuwwwxvxwxefVFfffgwvgwwwgvwwggwwwwwwgwgvtgugvgwhfggwfgvwwxvvwxxwwvwvwgwwxwfwvwggfwfwwwwwvvwwgwvvwvvwxwwxwuwwvwxxvwxwwwwwxxgwwvxvwvwwgwxwwwhgwwhhwgwwwwgwxgwwwwwvwwwwgwxwwwxvwvwvxgvwxwwwwVwwwvgwwwwxhggvwvvwxvgwwwfvvwwXvwwhhxwvwwwgwxwwwwwvwxhwwwxwwwXgvxwwvvvxwwwgwfwwwxgvxwhwwwfvwwewgxwfvxvvwggwugwwwxwgvwwwvwvwxwfwxgxwvwwxwxwvvvfVwfwwvwwwWvwwfgwhwxvgxvfgvwwwxwwwxwxwxwxwwwvwwxgvwwvwugwwxwxwfwwvwvxxwxxxgwvwxwwwhxxxgggxwxxxxggxwwvfwwfwwguxwwhuwwWwwwwwwxgwwxwwwwwxwwxwxwwxxxwwxxwfwvwwwwggwgwgwwwwwfwvxxxhxwwxxxwxxxxhwwwgwgwhwwwhxwwwwxwgwvwwxhxfxwxvgxwwxwxgwxwwwwxxwwwwxwvxuxxxxwwwwwwxwxwxxxgxxvxwwwgxxvwxvhwwxwwwxwwwxgxwxxxwxwwxwvgwwvwxfvvwugxxhvfvwwwwwwwxwwwwwvuwfvVvwwwwwwxvwvwwwwfggeTvgwwwwwgvuwWwwgwwwwwwwwvwwwwwfvfuwwWgvwwwwwwwwwwwxxwwxwwwgvwwwxwfvvxwwwwgvgvwxwwxwxxwwvwwgvwwxwxwwwwwxvwwwgwvwwhwwvwwwxwxxxgxxxwxwxwwwxgvwwwwxxwvwvwwxwwwwxwxxwvxxwwwwwwwwxxwwwwwwwwwwwxwwwggxxxwwfvxwwwwwvwWwwxxwwwhwxwxxxxwhwwwwwxwwgxwxxxxxxvxxwxwwvwwwvwgwwwwwwwwwwxwxwwxwxvwwwwwwxwwwwxwwxwvwxvwxwwwwwxwxwwgwxxxwxxwxxhvfwgwxwwxwwwwxwhxxxxwxwwwwhxwxxwxgxxxwxxwwxxwwgwwwxxxhwxxxxxwxwxwxwwwwwxxxwxxxvxxxxxwxwwxwwwwwxwxxxxxxxxxxxxufwwwwwwwvgwwgwwwwwwwfwfvvwfwwwwfgwgwxuvvfvwgwvwvwwwwxxvwwwwwvxfvvwfvvvfvwfvvwewggwwwgvfvwgwwuwwwgwvwfggfwwvwwfwwwwfvvggwwwvvwxfgggwgwwwxxwxvwvwWwwwxVwwvwwxwvwfgwwgwwwxxwwwwVwwwxwwgwxwfwgwgwwwwwwwwwwwwwwwwgwwxxvwwwwwwwxvvvwwgwwwvuvwwvvwxvwwwwwwwwxwxwxwxxwwxfwwwxxvxwwwwxwwwwwwwgxvwxwwhwwwwxwwgwxxwxwxwxvwwgwwwwwWvwwxxhwwfxwwgvwxxxwwwxwxwxwwwwwwfwwwxwwwwwxwwwwwggwwwwfwwxwxwwwgvxwwwwxwxvwgwwwwxvfwxwfvwwwwgwgwwxwwwxgwxwxwwvvxxwwwwxwxxxwgfvgwwwxwgwwwhwwuwwwxwgwwwvxxwvwxhwwwwwxwgwvwxxgxwxwhwwwwxwwwwwwwxxxwwwxwhxwxxfxwxwwxxwwxwugxwxwwxwwxwxxwwwxwxwxwvvwwwxwhxwwxwuwwxwwwwxwxwxxxxwwwxgvvvxvwwxxwwwxxwxxvxwwwwwxwxxvvvwxvxxwwwwwxwwxwvxfvwwwwgxvwxwwwwxwvwxwwwwxxxxfwxxwxxgvxxwxwxgxxxsvfwfvvxvwgwfvwfffwwwffvwwwwvvvvfffvwwwwxfdgwvheUfffffgVfwgewwvwfwwwwgwvxvxFSfvfvTuvwwwwuwuwguvwwwwwwwfvVvgeVfefvgwuvfvgvwvwwvwxgvgwwvwwwwwwxvwfwwxxwxwxEeffVvSuwwgwwwWwvwwwgwwwxwfevwgwwwwwgwxvxxwwuvwuwgwwgvwwwwwgewwxwfffwwguwwwxxWvwvewxguewvwwwxxxwwwwwvwwwwwgvwwwwwxwwwwxwwwwwvvhwvvwxwwgfvxwvwhuwVeWwwvwgwgxxfdwwwxwgvwwwvxxwxwwwwxwwwwxwvvgvwwwwhwwgwwwxwwwwxwvwwwwvvWwxwwwxvgfwwwwxvwvxevwvfgvwfvxxwxfVgwwggwwxwxfVevwvvwxwxfvwfvwwwwwxwwwfEfvggfvwwwwwfvwxggwwhvvffvwwvhgvvvxwwxgxxfxwwwwvgwwwfwwwwwWvwwwwwwwxwvvwwgwwwxwxwwwwxwxxwwwfvvvwwvwwgvwwwgxwwwxxwxvgvvwwwwwwxwxwwxgwxxxwvVvvxwwggxgwwxgvfwxwwwwwwwwwvwxwxwwvxxxwwwwggwxwgwwwwxwwfxxgwxxxgwwxvwgwxxwwxvxwwwxwxgvxwwxxgwwwwwwxwwgwxxwxgxwwxwxwxwxwxwxwwwwwwwwwwgwwxxxwwwwxgwwxwvwxwxvwvwwwffvffgevevvwvvwwwvfgwgwvvvvvwvvvwwwxwwwwwvwevvvuvgwwvwfvefefuvevfVfWvwvufufgwwwgvgvvvvvVwvvwwwfvvwwugvfVggvwvwvvevuxffvgwwfgfwvwvvwwvgvghxwgwwwwwvwwwugxwhxgwwwvvffffgwwggvgwwvvvwgvWxgwxvwwwgwwvwwwfxwgwxvwvvvwvvwxwwfwvxvvwwwfwvwvgwwvwxwvwvwvvwxxvwwvwgwvvxwwwxwwwwwgwxwvwwvwhwvwwxwfwwwxgwwwgxwxwwwfgwVhgwgwwguvwgvvvfxwwwvwgwgvwxwxwwghwwxwxwfgvwgwwwvxwwhxwwwgwgwwwxxvwwwvwfgWwxgwwxwxvvexWwwwhxwwWwwwwwvgvwvwgwgwwwwwwwwwwwwwwwwwwgvwwvvwxwvwgxgxgwwfwvwgwgwgwwwwwwwxwwvxwwxxwgvwwfwwwwwggwwgxwwxwwwgwwgfwwwggwxhwvgwwwxgxwgvvxhwxvwwwwwwvwvwvwwxwxgwvxxwxwwwwwwwxwvwxwwwwwwgwwwwwvvxxwwxwxwgvgxxxxvwwwwwgwwwfhwXxvvwvxxwwwwxwgwwwxwxwxwwwxwugxvgwwxvgxxwxhwuwvwwxhwxwxwxufwvgwwwgxvwxxgxwvxvwwwhhwvwwwWwwvwxxwwxwgwxhwvwxhwWvuvxwUwhgxxhxwxwgwvwgwhvuvwgwwwefgewfwvwwwwgwvwwvwfwvwguvgwVwwwvvgvwwwvfwwwvwwvwwwWfvvefuvdfVvXfvwwVVgtvvwwwfgfvwwvffvvwwwtwvvfvgwwwvgdwwwwvvgwwvvwvwvxvwfwvgwwwwwwwuwwgwwuwwwwvwwxwfxwwuwwwgvxwxwhfwgwffefVvwvgevfwgwgvWfggwhwufwwvwwwwwwwwwfgwwwwwvwwwhvwwwwvwwuwwwgWwxgwevxwwgwwwvwwwwuwwwwwhuwwwxwxgwxvgwwgvgwxhxwhgwvxhwuwwwwwwhvwvwwwgwwwwxwhwwxxwwwwwwwwwwwwwwwwxwwwwwhvvvxvgwgwxxwhgvxxwwwwxwwwwwwwwwvvvgvgxwxhwgwfwwguwwxxwxwxxwwgwwwxUwwggwuxwgwfvwvwwwgwfwwwwwwwwwgwgxwfvvvwwvxwhwwxxwhvvwvvfWwvfwwvwvwfvwwwfvgfwwwwvwgwwwwwwwxwwxwwvxgxwgvwxwgwvxwxwwwwwwwvfwwgwwhwwwxWwwvWxwwxwxxxwxWghwwwwwwfwwwwxwwvwwwwgwxxwwwwgwhxxvxxxwgxwxwwwwwwwwgxwhxwwWvwwwhxxxwxwwxgwxwxxwwxxwwvwxwwxwwxvwwWwwwXxvwxwxwwwwxwxxwxwwwwgxxxhxwwvvwwwwhwwwwwxwwwxwxxxwxhxgxxxwxwwxwwxxwwwwwwxxxxywxvxxxwwxwwwxxwxxvwwwwvgvgwwgwvevuvwvvwwwwvwgwwwvwwwvuwvgwwvvvwwgvwgwwwwxgvwfgwfvgwuwvwwuwwvvgWwVwvwgxwwgvfuvewuuvwgxfvwgwgwvwxvwwwvwfvwxwwwvvgwvvxwvwxxvwwvwwgwwxxgwwgxwxxwgwfvwuvwvxwxwwwwxgwwwwwfwvwggwwwwwgxwwwwxwwwwwwwwvwwwwwwwwwwxwxxxvwwwwwwwwwwxxxwwwwwwwwwxwvvwvvfwwwwvxxxxgwwwwwxwxwwwxwvvvwwgwwxwwvwwxwwxwwwwvwvwwwwxwwxwwwxwxwvxwxxxwwwwxwxvwvwwwwwwwwwxwwvwwfxwwwwxwxxwwwwwxwwwwvgwvuwvvwvwgwwwwxxvgvwvwgxwxwwwvvwxxfwvvvvvuvwxwwfwgwwwxwxwvwwvwwvwxxgxxxvwwxxwvwwwwxwwwwwxwwvxwxwxhwvwwwwvwwxwwwxwwwvvwwxwxxwwwvwwwwwwxxwwxwwwwwwwxxwwwwwxxxwxxvxwwxxxxxxxwxwwxxxxhxwwwwwwxxvwvwxxwxxwvwwwxxvxwwwvxwxwxwvxxxxwxxwwwxwxxfxxxwxxwxxxxxwxwwxwxxxfxhwxxxwxhxxwxxwwxwxvxxxwwvwvvvgwuevuwvwfeevwwwwhwwvvwfvwufefvwwwwvwwwgvuwgeUwfgwvwvwvfeevfvvwvfvfwwvwfvfvvgwwwwvVvvwvugvwwfgvwwwwvwwwwwvfuWevgwwxwwxwwxxgfwxwwwgwgfvvwvwwvgfgvuvwxwwwwvfwwwwwwxwwgwwwVxwwxwvxwvxwvwwvvfgwwxxwwwvvwvwxxwwwwwvxwwwwxhgwfxxwvvxvwwwwxwgxxxxwwwxxwxvwxxffvwwvwxwxwxxwhxxgxwvwvwxxwxxvxwwwgwxwwwxwwwvwxxwxwwwvvvvwwwwwwvgvggwvgwwgwvwwxwxwggwxwxxxwgvwvwwwxwwwwwxwvwvwfwwxxxwwwwwwwwwwwwhwwvwwvwxwxgvgwxxwwwwxxxxxwwgwwwxwxxxwxwfxxwgvwxxxwwxwxwwwxxwwxwwxwxxwxxxxgxwxwwwwvxxxgxwxhxwxxwxxwwwwxwwwgwxxwxxwwwxxxxxxfwxxxhwxwwxwxhwxwwvewwvwwwwvwxggwwvwvfwwfggfvwwwwwvuwwvwwwgvwvvwwugfwgwgwvwvwxwvwwfgwevvwwwvgggeuwfgVvfvfwvwgvgeveefgvwvuwvweegewfvVuwwvvwvvwgwwwewxfvwxvggwgwwwwwwgvgwwvwwwwwgvgxgwwxvwhwvwgwwvwvwxvxwwfueVwWvWgwwwwgWwuwvwgwwwvwwxvgvvWgfwgxwwvwwgvwxwxggfwxxwvwxgvxwvwwvffwwxwvwwwwwhwxwwwwxwxwwwvxxxvwgxxxgwwwwwwgwwwwwwwgVwgwgxvvwwwvwwwwgwxxwwwwwxxgwxxwwwhfxwwwwxwxwxwgxgwxgwwwwwwxwxwxwwwgvxwfvvwxgwwwwwwvwwwxwgfvwuwggWwvwwwgfvxwwxwwwwwhVvwwwwxwvwwxhgvwxgwgwvwwwwwwwwwwxwwvvwwwgggwwwwwgggwwwwwwwwvgwwwwwwxwwwgwwgxwwvxvxwwhxwwwhwwwwxwgxxvxhVwwvwxwwvvwvwxhgxxfwwwvxxvxvwwgwwxgxxxwwwwxxgwxgwwwwwwgwwwxxxwxwwwwxxgwxxwwwxxxvwxxwwgwwgxxxwwgwvwxxwwwwwwhxvxwxwwwwwwwwwwxewghgxwwwwwwxwxwwxxxwxxxwvxwxwwvxxwwwxwgwwwwwxwvwwwxwwwxxxwxxwxvwxxwxwxvvgvvvvvwvvffvwvgfvgfwwvvuwvfwwvvvwwgxwvvwvwwwwvwfwvwvggwfufvfwwfgffvvvvwgvfwvwgwuffffwfffgvwvvvwhvwgwwfvwwwwgwwwvvwvvwfwwgwxvgvwwwvwvwwxwvwwfvwwvwwwwxwhvwgvxwxwxwwgwvwvwwwvwwwwwvwwgwwvgwwgxwwfvfwvwwwvwxhxwgwgwwwwwwgwwwwwxwxwvwwxwgwvewvvwgwgxwwwwvwwwwwwxvwwxxvwgwxwwwxxwvwxggvvwxwwxxuwxxxwwxvwwwwxwxwwwwhhggwwwvxvwgvvxwxwwwhwwxwxwwfgwxxwwxwhxxwwwwwwwwxxwwwwwwwwxwgwwwxgwwwwwggxwxwhwxwwgwwwwxvwgwgwwwfxvxwwhvgffwwgvwvuwwgwugwwwxxgwvwgwwxwvwwwwxwwwgvuvfggvwwwwwwgwwgxwwwwwwxvwwwwwwwgwwvxwwgwwxxwhxxvxvgfwwxwxwgwwwwgwwwhxwxwwwwwvwxxgxgwvvwwxwxxwwwvwwxwwwxxxwwxgwwwxgxwwwwwwwwxwwvwxhwwwgwwggvwxxhwwwxwwwwxxxxwxwxwwxwhwwwxghwwxwwvwxvwhxwwwwwwxwxxwwxxxwxgvwwxxxxxxgwfxwwwwvxxwvxvxxxgxwwhxxwxgwwwxxwxwxhgxwgxwwxxxwgwwwwfwxxxxwxvxxvwwwwwvwvxwgvvvwgwgwgwwWgvwvgwvwvwxhxwvfgwevvwwwwwwwvwwwwwuwggwwwwfVvwwvwvwwwwwxwxVwewwwvwfwVwwxwevvvgwvxwwwwwwxgwwwwgwvggxgwuvwwwwxwwwwgwwwwxwwwxwxxxxWwvvvwwhwwvvwgwwxwwwwufwxwxxxxwwwwgxxwwwwwwxxgwgwwxxwxgwwwwwwwwxxwwwxxwwwwxxxwxgwxwxwwxyxwgwwwwwwxxwwwwxxwwwgwgwwwxxvvxhxxxvxwxxxxxvxxxwwwwwxwwwxxxwwwxwwxwwwwxxwwwxxfhwWgxwxxxwvvwwwwwwxxwvvvwxxwwwxwggvgvwwxwxgvwxwwxvxwwvvvvvwwwvxxxwxwwwxxwxwwwxvwwxxwxwwxwwwxxwwwwwvwgxwxwxwwxwwwxxxwwvwxgvwwxxgwxxxxxxxxxxxgxxxxwwhwxxwwxwwxxxxxwwwwxxxwxwxwwxxxxwwxwxwxvwwxfvVgvwfxfgfugehhfWwvgffwfgvvfxfwfwggwfvfwevUwfvVfUvfwwwwwwWgvgwUgwffgffWgVvfgfgUffwgwwwgvVweffwUvuwwwwwVWVvggwgwwhfwwwwwvfwvgvhvwwwfwegvwWfgvvggwxwxvwuwwgWvfwvxwxfwfwwxxhwxxvvwghwwwwfgvvggvwwwgvgwwgwxwwwwwvwwwVfvwxgwwwxgwxgwwwwxwvwwgwgwvwwuwwwwxwwfxhgwwwwwwwwxwhvwwwwwwvwwwwxwwxwxxwwwwwxghxgxwgwxwWgxwwgxwwwxwwxxgxxwwxwwwwhwxwxxfwwxwwwxwxwwwwwwxxwxwwxxxxxxxxxxxxwwwwxwxwwxxwwwwxwwxxxvwxwwxxgvxwvvwwwgwwwxvgvgvwwgwgwwgvwwwwwwwwwwwxxwvwwxhvgwwxwxxxvwwwwwwwwwwwwwxvwxxgwwwwxvwvwwxwwwwxwwwxxwvwwwxxxwwhfwwxxvgvwxwwwxwwwhwwxxwwxhwwwxwwxwxxwwxxxwxwwxxwwxxxxxxwxxwwwxwwwgwwxwwxvxxxvxxwwwwwxxwwxxxwxgxxxxhxwhwxxxxxwwxxxxxxwxwxxxwwxxwxwxwxxxwxxwxxwxwxxxxvxwxxxxxwxxxxwwxxwwwwwxwwxxxxuwvxgvwggffgfvwwgvvgwwwxwvgwVvvVwfwwvxvwxvwvwwwwwgwxxxVffvffVvfffufgvvwfxwvvwwwwwffeufgwwwwwxvwwvxwwwxxwUuvwevwfwvwvwVfwwwwwfwwxxvwfgwwwxwxwfvwhgwUfevuvfgvwwwggwwfvfwwwwwwwwxvvwvwwgvwwxwwwwwwwwwwwvwUfvvvgfwfffvvwwvVVwwwwwfwhxwwvVfwwvwwvwxxwxxxfewhwwxxwxxxxVWvvgwwwvwwxwhwwgwfwxxhgxwwwwxwvvwwwwwwhwwwvwwhgwxwwhwgwwxxxwegfvvvwwvwxvvwfuggwwgwfwwxwvwvwxwwwxwgxwgggxxwxefvwvwgwwvwxwwvvfgvwgxwxwuwwvwwwwwxgvxxxwvwwwwvvxVvfVufvvgwwfwwvfVgvwwwhgwwwvgvvvvxwfwwxwvwxfWvufgfgwwwxwwvwgwwwwwwwwxwwgwwxwgwxhxwxgwwwxfgvvvuwvvgvwhufwgwxwwwhvvwwwwwxwxwxwwxwxwxwwgxevwegwgvvhxwvwvwwwwwvxwwxwhvwxwwwhwxwxxwxxwxxUVvvwwwwgvwxwwwwgwfgwgwxwgxxwwwwwwgfxwgwwxwgwwxwxxwwwfvvhwgggwwxwwxwfgwwwxwwwxwxwxgxxhvxxxhwxwwxhwwwxvuwwvwwwwwwxxxwggwwxwvwvgxxxxwxxwxwwwwgwufwvwwwwvwfvwhxxvvxwvwwxwwxxwxwwxwxxxwwwugewVwfwVffwefvwVvgvgVfxVfffWgwfvxvguwugggfwwxvGvwgwwVwxxxFfVwfffwefevVuvwwgWvwwwxgfugwggwvWvwuvfwfwvxwwgwvvvxxwwvwxwwwUfuwffvugfvvvuwvWwfvwwfvfwwgvwvwvfuwwxxxxgwwvwwxwwvwweffvfefgewfgfugewufvwwvwwfvwwwvfxvwwwwhgwwvwwwwxwwgvgwvxVfwwfffwfffvggwvVgggvwwFwfwgwvwuwgwgvgxffgwwwwwfewgwfwwwwwwhxxxuffwwwgfwggwwwwgvwwggggwwWhxgwgwggwggwwxxwxwwggwxhXwhhgghxwuwwfwwgwwwgwvwvdwggwvxfwgwwgwwwvwwvwwwvwxwwvwwwwxwgwwxwvwvgvwwwwgwwwwwgvvwwhfwwfgwwwwwwwxwwwwwvwxgwwwgvwxxfvvxvffwfffwuVwgfeWvfwgVvwwvWwvwwgwvfwwwgwgwwxwwxwhwxxuvwfvuwwfvgvgvwgvvWwhwwwWwwfvwvvxwvwvwxwwwvwwwhwxxwwwxwwwxtfwwfuwfwvwwxwgwwwwwxvwhwwwwwvwvwwwwwwxfwwgwvxwwfvwfwvwwwwwvvgwwwwwvwwwwwwgwwxxxwwhwwvhvwwwwwvhxxghvggffvxfWfgvgwhWvwxgwxuwwwxxwxwwwwwxwwwhwXxvwwhwwhXwfgghhwhwwwwvwwwgxwWwfgwvwwwwxwwwxvwxwwxwxgwwxhgxwwwwgggxgxxwhwxwvvwwxwxwwxgwxxwwwwwgwvwuwxwxwxwxwhxwhwwwwvgvwwvwwwxxgwxxwwvwwwwwwvxwwwwwxfwwxwwwxwxxfgwWwfvvwffvwfvwxgggxfWwwwwvwxghxwwxwwxwxwwxwgwwwgwwwggfwwgfwUewWgwwwxvwwwwwfwwwwvwgxwwwwwhvgwwwxwwxwwwgfvvwgfwvwvgwwxwwfvwwwwwgwxwwwwwxwwxwxwxfwwxfwwwewvvgwwVwwwgwwfvwuwfwwwvwwwxwwxxwwxvxvvwWggwffvwffvwWXgwhhwggvxwhwhwwxwwwgwxvxgghxxxxxwvxxxwwxvwwxfwwwWwwwwghwxxxxwwwhgvwxxxwxxwwxwxxgxxxxxwwwvwgwwwwxwvwgwxhxwxvwvwxwwxxxxxxxwxxwxwwgxwgwwwxvxwwxwwxUwxwhwxxxxxwxwWwwVgvffgfwwgfgwwhgwvvgwvxwwwwxwwwwxxxxxwwwwxxwggWfgwxgwxvuwxxwwxxwxwwxwwwwwwwxxxwwwwwxwxxxxxwhwwwxwwwwxhxwwwgwxwwwwxxwxwwhxxxwwwxxwwfwvxhxxxxxwwxxwxxxwWfwwwgwwVfwwxwwxgwgwxxwhwwxwgxfxxxxhxhwxxwwwxxxxxwwwhghwxxgwwgwwxxxxxfxvxxfwwxxwwxxwwxxvxxxxxwxxwggwwwxhwwxgxwgwxwxxhxwhwxxxxxwxwxwxwwwxwwxxwxwwxwwxxwwwxxxxxtvfwggwwVuvvgFfvggffvwwwWFfuwwwxgvwfugwwwxwwwWffuwxwwwwwvwgvgvwgFfvwwvwvwgwwwvwxwwwgfgvugwwVuvwxwvwwggfgvwwwxxwgfgwugwwwwxvvVffuwvwwwxwxwwgvwwvwwxwwwwwxwwwwwwxxugwwVuvwwwwxwwwgvwgfhvwwwwwvgwxuwwgwhwwxvxwwwxvwxwxvfgfvvwwVFfuwwwwwWwwwwwwwwgwgwVffugvwxgwwxvhwvvwwhwwwhwxwxxvwwwvwwwwwxhfgvwwwwxwxwhwxxwgwwxgfhvwxgwxwgwhwwxwwxxhwxxxWffuvwwxxwfwwwvgxwxwwwwwxwxwwwwxxuhwwwwwwwxwgfgvwwwwwgxxwgwwvvwxxwgwxhwxwwwgwwxwwVufwgFfvwgwxwxVFfuwwxwwwvwwxwwwwwwwgvwxxwwwwwxwxwgFfvvwwwwwwwwwwhfgvxwgvxwwwwwxxwvxwwwwwgwwvxxwwxxwxxxgwxwwxwvwwvwwwwwwwvgwwhwxxxxwwxxvwwxwwwxwwxwwwxvwwxvxwwvwxwxwxxxhxwwxxwxxyWFfuwwxwwwgwwwwwwvxhxxhvwwxwwwxwxxwxxxwxxxxxhxxxwwxwwwgfgvwxwxxxxxhxxxwwhxxhwwxxwxgwwwgwwxgxwxxwxggwhwxwwwxwwwxwxwwwwvxwwxvxwvxvwxwwxxwwxwwxxwwwwwhwwwxwwwxvwxwwxwwwwxxxxwxwwxwwwegwwwggwwvvgvwgwwgvgVfvwvWwwfvxvgwwwvwwwwWewwgWgwwvwxwwvwwwgguvvvgvuwwvwwuvwwdvwwgtwgvfwwfvwwvvwwuvvwwuwwuwxwwwfwxvgvwwwGfvvvFgvgvwvxvwwuwwvwvwwgwwwwwxwwxwfvwwvvwfuwvwwhtfwvgtwwvgwwvwxvwwvwwwvvvwxwxuxwwwwwwwwxwfvwwvxgEvwWWvvfffwwvvggwwwwvwxwxxhvfgvwvvhuwwwxwxxwwwwwwwvxwwwvwwwxxxwxwffvhxgvwwfwwwwwwxxxwwwwvgwxhvwwwwxgwgwgwvhvwxxwegwvgvwxgwvuwwxwhxxwwwwwwwwxwffwwwwwwxxxxwvvvxxvwwwwxwvxwwxwwxxvxxwxxwgvvwgvwwwFVvvvFwvwvwxvwwxwwwvwxwvwwwxwxwxwgfwwvvwwwxwefwvwuwgwwwwxfwwxxwvxwxvwxwxxxwwxwwxwxwxwxwwvwwwwwwxwwwuwwwwwwvxwxgxxwxxxwwxwwwxwxwuwwgwwxwxxwwwwxxwwxwfgvvvwgxwxhwggvwwhwwxxxxwwxwxwxggwxhhwwxxWwwgwxwxwgwwwxwwwxxvggxxxwwwwwxwxwxwxxgxwxxxwwxwwwxwxwxwwxhwxxgwhxwwwwwxxwwwwxwghxhgwxwxxwxwxwxwwwxxxxxwwwwwxxwxxwwwwwuwvwwwxVvuwwgvVfffvffxVVvvwgwwevvgwWvwfwffWVgvwwffvwwVffwwfewgwwvwwwUVewgvwgffwgvwwgfwgwwvxwwxwwvwvgwhwgwwwwwwfvuwwwvgvwwveVfvxwwwwwvhwwxwwfwwwwxwgvwghwwwgxwUfvewhgffwvxvwefffhwwWwfvvwfwggvfggwwwwxvwwwWvggwwwvwgvgwvwggfggwfgWWfvgfhfgfwfxfwwugwwvvwwfvwwwgVffgwxvwgfwvxwxgvfvwgxgwwgwVwwhwxggfxxxhfwwwxwwgwxwgxwwwxxxwgxhgggwXggxwwwhgwvgwvwwxfvwwfxffgwwgvwgvwvwwwwfuwxvxwwwgwwwgwvxxwgwwwgwxxwwgxggwWwgwwwgvwxvwwwxwxwwvwhgwwwvwwvwwvxgvwgwvwvwwxgwxVWfvgggwffwwxgwgvgvgwwwvwwfvgwxwXwghwhxxwvgwgwwxfwvxgwwfgwvwhwgwvvwwwgwgwhfghxxwxwwxfhwhwxwhwwufgwuwwwxwwxxgggwxxxxwggwxfwgwgxxxxxwWwxxwwwwwwxxwwwxxwwwhwgxwxwxwWwwxwwwhxwwxwxwhwwwwxxwwxwwwwwwgwgvwwwxgVfggxhwggvxxWwgwxwgxwxxgxhwvvvwgxXgxxxxxgwwgwxxwwwvwwWwhgxVxxwwgxvxxwwwxfwxwXxxwwwwwxwwxwwxwwgvwxhwwgwxgvwWxwxwwxxwwxvxwxxxwxwxfxwxwwwwwwwwwxxwwwgxwhhwwwwxwwxxxwwwwxxwvxwxxwxxtgvfWWwgfgwGgfvggwwwwwfwwwwwxfvvwGVevwxwwxwfVevvvwwwwwxgggwwwvxfwwgwwwwwwxwhgxfuuxWgwwgVefwxwwwwvwwfwwwXwwwvxwwxxvgfwGgvwwwwwwfwwvwvwwvwwwwwwwgwwwwwwxwwwwxwfwwwvwwwgwvvxfuuWwwwvgvhwwhvwwwwxwwvwvxwxwvxxxwfWWwfgvGgvwwwwgwxxwggwwwwwwwGVevwwgwwwgxwxwgwxwwvwxxxxwwwwwgwgwwwxwghhxhWwwwxggggwvwwxwgwwwxhxWwwwhxwhwhwxxwGfvwwwwwxxvwwwwhwxvgxxwwwxgxwxgvgwwwhxwwwwwwwwwwwwgxwxWwvwggvwhwxxwwxxxwwxhxwwhwwwwwwwgfvvwGVevwxwwwxwvgVefvvwwgwwgvwgwwwwwwwwwgwwwvwwwwfVevwwgxhwvwvwfwwwWwwwxxwhwvwwxwxwwxwvxxhxxxwxwwwwvwwvwwwwwwwwwwhxwwwwwgwwwwwxwhxwxwwwvwxwxwwwwvxwhwwgxxxwwwwxwwwxxwxxwwxxGVevwgwwwwxxwwxwwwgwwxxwxxwwgwxxwxhgxwxwxxwwwwwwxxgwvwxxwwwxxwxhXwwwxhwwwxxwxwwgxwwwxxxhwxxxxhxxxxwxwxwwxxwxwwwwvvwwxhxgwgwwwxwwxwwwxwwwgxwxxxwxwxxwwwwwwxxxxwxxxwvwwwwxwwxxwxugfgwwxVwvxgwwVfegwgwxWwgwwxgvgwwwwgwvwwwwxfgfvvwwwgwwwwgvgwwvffwvwgvwfffwvwwwfvvwxgvwfggewgwvwwwwxwvvwfwwwxwwwwwgvvwwwwwgwxwfffvwwwgvgxwwuwwgwxwvwwwwwxxwwwwuwwuwfwwwwxwwfvuwwwxwwwxxfwwvwwwwvwfxvwvwvwwwwwxfvwwwwggfwwxxfVfvwxwVgvgwxwwfgwwwxxwwgWvxxxfwwwxwvxhxwxxwwwwwxxvwxfwgwwfhwwwxhwxgwxxxxxwxwwxxhgwwwwxxwfwwgwxxfggwwxwwwwgwfgwxhxwwxxxhxxwwvwwxwgxxxwwvgxxxxwgxxxwwxxxvwfvwwxwwxgVwwggwwgwwwwhwVgWvwvwxgwgwxwVfwxhfxvvwWwwwxwwgwfwvwwwwxwgwwwwhwxvxwvwxvwhwwwxxxwwwwwwwwwxyfwvwxwxxxvwxggwwwxwwwwwvwgxxwxxwxxxwfwwwwwwvwwwwwwwwwxxwwxwxwxxgffwwxwxwggwVfgvxxwxwwxwxhxxwgwwwxxxxwwgxxwxgxwwwwwfwwxxfwwvxwhvwxxwxwwgxxxxhgwgwxwxwwwfWwxwxwxxfgwgxwwhxwwwxxxxxxxxwxwwwwxwxxwwwwwwxxwwwxxxxwwwxxwwwxxxxwuggwfwwwgwwwwffwwwxwgWWffwwwwxwxwwwwwwggvfvvgwhgfwxggfgwxwgwvgwggVeggwxWgvxgwxwwwxXgWwwgwwghghVvehwwggwwxhwxvxgwgxwwgwwwwwwwwgxwxwxwvvfvxgwvxwwxxwxwwwgxfvuxgxwxuvwxxwwhwwxwwwgwvxgwvwwWvuxwvwwwwwxwxgxwwggxwwhWwwwwxhwwwxhgwwwwxwwgwwgVegvxgXgwgWwwgWwxxwxwwwwwwwVvehxwgghwgwxgwxgxxwxwhhxhwxwxwhxgxwgXwxwwggwwxhXxwxxwxxxxxwxxxxhxwxxxxwxxhxhgvwwwwgwvxwwwxxgvwwwwwxvwxwwwwwvwxxxxxgxxwwxxhwxxwhxvwwwxxxwxwwvwxxxwxgwxfvhxxwwvxxwwgxwxxwgwxwgwxwgvwgWVvffvxggWwgwxxgVgWwwwxwwwwwvefXwwxxwwwxxxxxwhhxwwwwxwwxfvvhwxwwgwwwgxgwwxxhxxwxxxxwxxxxxwxxwwfwwwwfvxwhxwvwwgwxwhwwvvgxxwwxxxwxxvwwwwxxwhhxxvxwwwxwwwwxwwxxwxxxxwxxwggfwxffvhxxhgXwhwwwgxxXxhhwgvwxxwxxxwwxxwxxgxxhhxwxxwxxwxxxhxwgxwhhxwhxhwwxxxxxxxxxxxhxxxxhwhwfwwxwxxvwxwxxhxwxxwxgxwxwwwxwwwwxxwxwgwxghxxwwwxxwwxwxwxxeWwwfvvwvfwxfggvwwwwxvwwwwvwwgvwfggwfwwgwwxxwvwxxxwxgwwxvfewwggwvwvgxwwwvvwxwwvwgfvvwhxwwvwwxxgwwxwfwuvVfwgwwwggwwvgxwwwwxwwwgwwwugwxxwwwxgwwxwwwxxfgwffuxgwgwvwvwfvwxwwxwxwvxwwvwwwxfwwwwhwxwxwxffwffvwfggwgwwwfgxxwwwwxxwwfffVvvvwWggxxxwxghwwxwxxwwwwwwwwwwxggxwxwxwxwxhwwuwxgwxwxxxwwwxxyxxxxxfuggwvwwwwvwwwvxxwwxwxwwxWwwwvwxwwxwgwxwwxxwxwvwwwwwxhxwfwvxwxxxhxxwxwxwgwwxwxwwxxxxgvwgffvgUffffxwwvwwwwxxxwgwgwwwxwgwgwwwwwwxwwwgwwwwwvwwwgwxwwxxwwwxxwwwwxwxwwxwxxvhxwwwwwwwwwwgwwxwwwwwwxwvwxwwxxwxxwwxwwwwwwhwxxgxxxwwxwxxwwwxxxwxygUgfVvgfwwvxxgwxxvhwxxwwwwwwwxxwgxxhxwwxxwwwwgwgWwwgxwxwgwgwxwxwwxwxxwxxxvxxwxxxwwxxwwhgwfvwwwwhxwwxxgwxxxwxxywxxwwwxwxwwxxxxxxxxuvgwgwvwfwwvgfvwvvwwwfvgfvgwvwgwwwgwwwwwwwgfwwvwwwwwgfvwvgwwwwwvgvwwvwhefvwgwwvwvwvwfwwwxwvVvuwvwwwugxwwwxwwxwvwwwvwgfvvWWvvwvwwvwvwwwwgwgvwwvvwwxwvUwvwwwvgwwgxwwgxvhwwweuvwuvwvwwwwwwwwgxwwwwwwxxuwxwghwwxxxxwwwwwwgfvhfVuwfwgvggvwwxwxgwgwvwwxhwwwgwwVguvwwxgwwxxwxvwgxxgxgwgwxvwwwfwvxggvgwhgxwxwwwxggwwxxxwwwgxvwxxxxxxwxxxxxwgwwgwwvwwwwwwvwwwwgwwwwxwwxwwwxvwwxwxhxwwxvwwwwvwwwvxwwxxxwxgwwxxwxhwwwwwwxxwxwxggwwwvWWvvwgwwwwvwvgvwgfxwwwwvwwwvUwvwwxwwxxwhxwxwwwwvwvwxwwvwwvwwhxwxwwwwwwwwwxxxwhwwxxxwxwwwvgwxgwvwvwxwxwwgwwxwxxwxxxxwxwwhwwwwwxwvwxxwwwwwxwxxwxxxwxwwfvwwgwwwwwwxwwhwwvxwxwwxhxgxwvwxxwwwxwxxvxwhxwgggwwxxvwvxwwwwvwxwhgwwxxxxxxxxxxxxwxxxwwxwxwwhxxxxxxwwxgxfwwwwhwwxxxvwwwxwhwwwvwxwxwxxxxxxxwwwwxxxxwxhxwwxgwwxxxxxwuwwgwgwgwwvwwgfgwwwwxWWvxwwVfgwWWvwwxwwxWVvgwwwwgwxxxgwgwvgwfwwwWvvwWWvvxwwxwwwwgxxwgwwWwwxgwwhwwwwwwgwwxgwxgxxxwgwwfwwwvwxgvvvgwvwxxwxgwwwWWvvwwwxwxwxwwggxwwwvvwwWvvwgvvewwwwwgwwwvxwwwwwwxwgwwgxwxwwwxxwxwwwwwgfgwWWvvvgwwwWWvxwxgwgwwxwgVwwxxvwxxxgwWwxxwwwwxxwwwwxxwwxvwxxgwwwxwxxxxhwwwxXwwxxxwxwxxwxxxwwxwwhXwxwxgxxxWWvwwwwwxvxgwgwhwwwxxxwwwwvwwxxwwxxxwxxwxwxxwwgxxgwwwwwwxwxXwxwwxxxxwxwwxwxxxgxwVfgwwgwwWWvvwwwgVwwxxxwwxxxWWvwwwwxxwwwwxwxwxWWvWwwxwwwxwxwwxwxwxvwxwwwwxgwxxwwxxxxxxwxwwxwgwwwxgwwgxvwxxwxwxxwxwxgwxxwgwxwxxwxwwxxwxhwwwxwxxxxxwwwwxwxwwxxxxwxxwwgxWVvwwwwxwwwwwgwWwwxwwwxxwxwwwwxgwxxxxxxxxwhxwxwgwwwgwwxggxxxwxxwwhXwxxwxxxxwxwxxxxwxxwwxxxwhxxxxxwwxwgwxgwxgwwwxwwwwxxwxgxwxgxwxxxwwxwxxwxxxxxxwvwwwxwxxxwxwxwxwwxxgxxwwxxuwwgvwwwwgffwwffvwuwwgggfgvwwfUgwwwvxgfwffwvwvwwwwgvwwvwwwfvwgvfuwwwvxgfwwgwweewwxvvwwgwugewwwxxwxwwwxVffwxwwwefwvVgevvwwwwgwwxxxwvwwwwwxvwwweewwwwwvgexwwfuxwfuwvgwwxxwwwwghwxwxxwvwvwfUefwwwghfxgwxVffegvwwwwxfUwwUfgwwfgxgvxgvxwxxwxwwwxfvwgwgwgxwwwwxxxgxwhxvwwvxgfwwgwgwhwxggvggwwxxxxwwvwwvfhfwxwgvxxxwwvwwwgvvxwxxvwwxwwwvwgfwgvxwwwwgwwwxwwgwvxwwwwxwxwxwwwxwwwWfewwwwxwvwvVgewwwwxwwwwwxxxxxwwwvvwwwxxgwwxvxxxxwwvwxxwwxxwwxxxwxwwwwwxxwwwxwwwxwwwvwwxwxwwxwwxwwwwgwwxwwxvvxvvxwxwxxffgfggfwxvwhwwwhxhwvwwwwxxxwxwxxwxwxwwxwxxwgwgxfwxwwxxxxhhwxxxxwxfwxxxxxgwxxxwxwwxwwxxxxwxxxwxxxxwwwxwwxxxwxwxwxxwwxxwxxvxwwwxwdfwgwwwvvfhwgvwvvwwgwxwwxgvwwgVfwwvwVgwwgffvgwwgvgwwwwgwwvgvwwvvwwwvwwgwwwvwggvdwwwwwegwvwwvewwvwwufwwvgwwvuwxgxxwwwwwwvwwvwfwvwwwvwvwgwxvWfugwwuVwvwwwwwwwwvwvxwwwxwvvvwvwwwwwwvdvwwwwvwxxwvuvwwvwwxugvvxvwwwwwwwwxvvwwwfgwwwwwgwwwfvfwwwwvwwwgwwgwFvgwwwFgvvwwwxffwgvvgwvwwwxxxwvwwwwwwwwwwxwgwwgxxwxwwwwxwwwwgwwwxwxxwWwgxxhwXxwwxwgwwgwwgvwwwxwwgfwwfwwgwxxwgvwwxhwwxgwvgwwwwxwxwwwwgwwwwxxgwwgwgxxvxxgwwwwwxhwwgwwgwxhwgxwxxwxwwwwwvwwwwvgwwwwvwwwwWguvwwuVwvxwxwwwfwwxwxwwxxwgwwwxgxxxwvfwwwwxgxwxvwgwwgwvxwwxwwgwhwxxxxxwwxxhwxwwwwvxxwvwwwwxwwwwxxwhwxvxxvwwwwwwwxxwwwwxxwwxxwwwwxwxwwxwxwxwvuwwvwuwxxxwwwvwwxwwwwwxwwvwwxxvwxhxwwwwwgxwvwwwwxvwxxgvwwxvgwwwxxwgwhxxwwxwxgwxgxwwxwxwwgwxxxxwwxxwhggwxfxxwxxxxxxxhxwwxxwwwxxwxwgxwwwwxxxwwxxxwwxwxxwwxxxxvgxgggvxgwwWgfwgwgvvfgggfwvxgwxggvgwxfvgggVwgggxxxwxgwwggfwwgvwgwhwgwgfwggvvwgwwwxwfvwxgvxwwwvgvwggwwwwwgvvwwwgwgwwwwwfvwwgvVgvgwvvwgxvwgvwwwwwvwxVwvgxwvwxwwhxwwfvwgwwwxxvwwwxgwggwxxvwwwwxwwwxgwwwwxxxhwxwwwgwvgwwwgfgwghxxwwwxwxhwwxwWgwgvvwgwwxwxwggwxwgxwxwhxxxxwxwwgwwwhxhxwwxxxxwhxwwxxgxxwgxxxxwwxghxxxxxxxxxxWgvwwwxwgwwxhxwwwxxxwgwvxxwwwwwwhxxxwgxxxwxwxxwwwhwwxgxwxwwwwxxwxwwxhxxwxwxxwxxgxWwwwhgwvvwvwxwwwwvxgwhxwxhvwwgwxwxwghwwxxwxxxwhwgwwwvgwwwxwwwhwxxwwwgxwxxxwwxwxxxwwxwwxwxxwwxwwxxwxxxwxxxxhwxwxwxxwxxgxwwhxxxxwxxxwxxgxxwwwwwgxxxxxxxxhvwwxxwxwgxwxxxwwwxxxxxwhwxwxxwxxxwxhhwxxxxxxxwxxxxxxxwxxxwwxwxwxxxxwwxwxxxxwwwxwxxxwwxxxwwxgwxxxxwxxxxxxwxxxwxxxwuffwffvwwwgWuVfvwvfvwwWvgwxgefwfVVfggwfwfVvfgwfvvwxxVfeggvfwwfvgwwgvwwwwvvwxhxwxVVewfvvwwvwxwwxffvwwwwwgwwxxwhweufvvfvwgwwvwVvvwvwwwvvwwwxegfwgwvwgwwvwxfwwwwwwgwUeewffgwvvuxvwgVvwwgvwwwwxvfvegfggwwwwWgwgvfvwvwxgwgwvvvwfevwvgvwfwgvvwwgVgwwvwxgwgwwwfVVWgegvegwghwwfffwggwwgwwwxxxevvvwwwwWxwxwxxwxfwwwwxwWxwhggggwwwghxxxxhwggwwxxxwxxhxxhxwuwweuwwwwwxwxxfgwwwwwvvxxwwxwfwvvwwwxvxvgwfgggwwgvxxvwwwvwwxxxwwwwwxxxwwwxwwwwhwwwvhwwwuwwgwvgwxuwwwxwvvwwvfvgwwfvwgvwwgwwwwxgVVgwvwwgvwwwhxvewvwhwwgxxwxvwvgvghwwwwwwVwvxwxwwwxwfvwwgvwxwwxwxxwwwwwwwxxxwuwwvwvwwfxwvwgvgwwwwwxwxvwwwwwhxwwwxxwgxwwwwxwxxvxfwgxwwfxwxwwxxxxwwgxgwwxxxxwxhwwwgxwwwhwwwwwgwfvvwgxxwwwwWuwxxxgwvxxxwhffggfvwxwwgwwgggwhxwxxWvxwxwgwwgwhwxhwvwgxwhwwhxwxwgxxWwxwwwxxxwxxvgwwxxxxxwvwuwxwxxvgwxwwwwwxwwwxggvwxwwxwxxxwxwwxgwwwxwwwxwwxxxxxxwwxwwwxwwwxxwuwgfvxVwvwffVVvwxwgwxfUVwVuuxgvvxgUfvfwwvgvwgeFwEuvgvvvwfgwwWvwwgtvvfVwEuvgwWufvwwgvewvWfgveFwVvewwwfwvwfeVuuxvgfwggvvwwwfuffefUfwfvugvVfVvvwUfuvgwgUfgeutwwwggwgwfvvwguwwvwvvwwwvwgwvwuwvvwwfWggvwwwxwvvwwvwgwwwxegfwwxvfgevgwwwgwwfgewwvvgvwgwggffwvwwgvvVvvwFevfvwgWWggwVVuwfWwvxhwgVvfwfwWhwgwggwwgvwxwwwwwwwwgwgxwvwwwwxgwwgxxhWggwxxwwgwwxxgxwggwwfwxxhgwwxgwxxwfvfvfgwwgvwfvvvvvfgwwxwwxwwgwvwvxghwxxxwuwwwwwwgwxwwgvwvwwwxxwxvvxwwwwghwwwvxwwxxwhgwxvxfwxwhvfwfvwxvWvwwwwevvgfgvwVvvwwwwwvwggwwvvfwwggxxeugxwvgxwwwxgwgwWvwvwgwgwwwWvvwwgghvwxgwgwwwgxvhwwxxwxwhwxwwxxxxwxvggwxwwvvxwwwvggwxwgxwwwwwwwgxwgwvwxxvwvhwgwwxvwwxwvgwwxwwwwwwwwwwwxxwwwwwwvxwwwwwwxxwwgwvxwhwewvxwwwxwxxwfvgwgwfGwxwwxgxwxxwhhxxwhwxwxxxxxxwhgwxWwwgxxhxgggwgvwxHWhwhxwxwxxwwxxhxwxxxwwxxxxwwvxxwwvxxwxfwwwwWwewvvgwxwwxxwvxwwxwxwwwwwwwgwvwwxgwwwxwwwwwwwwxxwxwwwhvhwwggwgfvwfVwwgxwvwwwfgvfwvwvwwwggwvwwfvvxwgwgwwxWfgwwvwwwxgwgxwgvfvwgxvwgwvwwwwwgwwvgwwvvwfwWvfwwgvwWvfwgwwvwxwxwwxgwwghgwwxwwxgwwfwgwwwgwfwfwfwxxgwvxwxwhghwwwwwwwwgwwvgwxfwwwwwxgfwxvfwwwwwxwxxwgwxwwwwwxwwwxvwvgxggvwWwvvwgggxwwwwgwwxwwxwwxxgwwwwwvwgwxxgwhwxwxxvxhwxwxxwxxwwvxgvwwwwhxwwxwxwxwxwxxxxxxwxxxxhxwxxxwxxgwfwwgwxxfxxhwxwxxwwwwwgxxwxwwxvxwxhxwwwwxxwwwxwwxhgfwwxxwxhxwxxxxwwwwwvgwwgwvgvwxwWwwwxwgwvwwwwwxxwwxwwxwwwxxxwxgWwwxwwvgwvxxwhxwwwwxwwxxxxxwwxwxxxfwwwwhwwxxwxwwxwxwxxxwxwwxwwwwhxwvwwxxxwxwwxwxwgwwwwwwwxgwxxwxvxwwxwxxxwxxxwxxwxxwxxwxxwxxwwxwxxxxwxwxxwwwxxwxwxwxxxxxwwwwxvwxxwxwwxwhxwwxxvwxwxxxxxxwwxxxxxwhxxwwwxxwxuwfwVVVffuvwegfwvwwvVVwgWfgwwxEwvweVfvvgwWfwwwgfwvwgWxwhwxVffweUTvgfWfffvwgvwvggwwwgwxwwgvgefgggwxfggwvwwvwwxwgwwwVvewdfefvgwwvvwwfvgwwvgwgxvgwfvvfvvwwwxwwfwhwwwffuvefVVvvWvvwfgfvvwgwvgwwvwfwVwfvwvfvvfvwwxfwwwvwgvwxwuwgfffgggfvugfwVfVwvfVwVWwgvfvgggfVevwfWggfwwWgwVgWwwvvgvgwvwgwhveexwWWffwgwgwfWxgfwhgxggxgfVgvgewfwgvwwgwhvwwggxxhgxwhxxgvfwwvgggvugwwgwxvvgxgwugwwxwWwguvwWwwwwxwwwfugwwgwwwwxxgxvwggwwgwwwwgwvwwgxvvwxgfvvfwwwwwhgwxwwvwwwwxxxfwwvwwwwgwwfffvvvggwvgwvwfwvfgvvxgxwvvfgvgwwvwhwvVwwVwwhxwhwwfwwvWwwwvgvhgvwwwwwfwwwgwxwxffwgwhwwgxwwwwwgvggwwvwuwfwwvfwvgvwxgxfvwwxwxwwxxwwwvwxwwgwxwwwwhgwgwwvwvvwwwvgwwwwvwwxwwwwwwwwwwwwvwwwggwgwwxxwwwwwxxvwxwgvwegVvgwwgwgggwxhwvWgvwwwxgWgvwwwVwhwwhxwgvgwGwvwggwwwwwgvWwgGwwwxwxvwwwxhhgxxghxhwwvwxWwwgxvwwxwvggxwwvwxwwxwwwwwVwwwvgwwwwwwwfxgvwxwwxxxxxvgwxwwwwfwwxgvxwwvwhxwhwwwgxwwhxxwwwggwwwvwgwwvgugffvfffffvWVugvvwwwwWguvwwggvvwfWvwxwvwwwgvfwwwwxxwwwwfwvwfWvufwfgwvvvxwwxwvwgwvxwwwgwwgvgvvxwgwgwgvvwwxwgwwwgfwvwvwvWfuvwwvwwwwfwwwwgwxwwvvwvwwwwvwwffwvwvwwvvvvwwwvwwwvwvfvfwvwvwvvwwwwwggfvvwvgwwwxwvwvwwwvwwwwfffgVWuuvgvhwggVguvwwxwwwwwxgxvgwxwwxgwgwxwhgwwwwwwwwxggxwxvwwxwwxwgxwxgxwwhxwvwxgxhgwwwwhwwwwwxggxfgwwwwhhgwwxwwVguwwwwwxwvfwhxwwvvgwwxvwwvwwvxwxwwxwxwgwhwwwwwxwwwwwxwwxwxwxwggwxxfgwwxvwwvwwwgwxxwwwffvfvgvWWuwwfgvggfwxggwwwwhgVvuwwwwwxggwwxwwxwxwgWvuwwwwwwvwvwgvwwxgxxxvwwvwvwhwxwxwwwwxwxwwxxwgxwwwwvgwwwxwwwxwvxhwwwwxwwwxwwwwvwvwwxwwwxwwxgwwxwxwwwwwwxvwwwwwwwwxfwwwxwwwxxwWVuwxfggwggwhggwxxwxxhxxwxwxgwwwxwwwwxwxwgfgwxwwxxwxfxwwgxgwghxwwwgwxhghwxxwhwwwhxwxxxgxgwwwggwxwxxhgwwwgwxwhwxwwwwgvwxfxwwwvwxxxxwxxwxwwgxwwvwwvxwxvwwxxvwggxwwwwwxvvwwwxvxwggwxvwxegwgvwwfgwwfggwvxwxwwwwggwfwvwvgfgwwwgwvwvgwxgwfggxwxwxgwwWWfvfwvfwwwvxgWwVgxwwxvwgwwwxfwwwxwgwgwhwwgxgwwvwxxgwwgwfvVvwwhwWwuwvvwxwxXwwwgwxwxwwwwxvwhwxxxwwwxfwWvvwgwuwvfxwwxgxWvxxgwwwggwwxxwwwwwwwwwxhwwxvwvfwvxWVevwgggwfggwgxWfVgwwwwwwgwwwgfwvhwwgxxxxgwgwwxgxwxxxxwwwxwgwxwwwgwvwgvhhxwxhwwwwxxwwxwxxwxwwwwwhxwwwxhxxxxwxhvwggfxwwvwhfxwwgwwwvwwvwxxxwwwxwxwwxwxwwwwwwwxxgxwxwwvvwgxwxwwxwvxgvwwxxwwwwxwhwwxwwgvggUwggwfvgwwgxvvWWwwwwwwvwwwwwxxxwxwxxwxxxxwvwwggvgwwwxwwwwwhxwwwwwwwxwvxxxhxhxxwwxwwwwvwwwwwwwxxxxwwxwwwwxxxwxxxxxxxxxxwwwwwxwwwxxvvxxwwxxxwwxwxwxxxxwxgwwgwwwwxgxvwwhwhwfwhwxxxwxwwwwxxwwxwwgwxhwvgxwgwwwwxxwwxwxwwgxhgwxxwxxxxgwxxxwxwxwxwxwwhxxwxwwwghxvxwwwwwxxwwxxwwxwxwwwhwwwxhxwxxxxwwxwxxwwwxxwugwwguvxwvwvwwgvuwxfwwwwwwxguvwufvwwwwwwffwwgwwwwwxwwfwwgVvwwwvwwwwwgwwwgwwggwwvgvfwffwgwwfvvwvwwwxwxwfgwxvwwwwwwwwwffwwgwwwwwxwxwvwgvwwwxvvwvwwwxwvwvwggfvvwxwwwwvvwwggUwwxgwwvvwffvwwxwwwvwvwwwxwguvwggvvwxxxgggWvxggvwwhxxeUgwgwwwgwxUvwfggwgwwwxxxwfvwwxwgwxwxwwwwxwxxxwfgwgwwggxxxwwxxxgggfxwhwwxxxwwvxwwwwwxwffwwxxwwwwxggwvwwvwwvwwwwwwwxwwxgwwxwwgfwxggwgxVxwvwxxwxwvvxfvvxxwxwwwwxwwwxwxwgwwwfgwxxwxgfwxgwWwwwxwfwffwgwwxwvwgxvwwhwwvgvwwwwwxwwwgxxgxxwwwwggvwwxwxxwvwxhwwgwxwwxwxwxxxxvxvxwxxxwvwwwwwwvxwwwxwxwwgwwwwwgxwwwwwwxxwwwwxxxhxwvwxvxgfwwwwgxxxfwwwgxxxxgfvwwvwwxwxxwwwwxWhwxxwgwWxwxxwxwwwwgwxwxwxgvxwwWhwxghwxxvvxxxxwxxxwwhvxwxxwwwwxwwwwxvwxvwwwxxwxhwwwwxxxxxxwwwwwwwvxwxgwxwwxwwwxxfwwwvwwvwvwwwwfvwwggwvwwwwwwVfwwggfvvvwfgvwvgvvvuwWvwwwgwxwvwwfvwwggvevwvwwwwvhwvvwvvwfwWwvwvggwvhvwwfvvxvwgewXwwwgvgwwvwwwwvwvewvwvugwvwgvvwwwwgwvvwwgvwgxwvwgwgvxwwwwgvvvwwvwwwwwwvwVxxxvwfwxvhuxwwxvwxgwwvwwgvwwgwxvwwwwwvgwxwwwhgWwwgwgwwvwwxwwwgvwgwwwgwwvwxggvfgvvgwwxwwwwwwwwwwwwxgxwvwwwxwwwgwwwxgwwvxwwwwxxxvwxwgxxgwwwwxwggwwwwwvxhwwvwwxwvwwwxwwwxvwxwxwxxwwxxvxwgxwxwvwwwwwxwwxwxfwxWwwxwwwwwxxxwwxhgwwxgwxwgvwwxwwxwgwvwwwwgwwwwgfhwwvewwvxgwwhgwwxwxvgvwvexwxvgwwwwwwwwwxxwwwxwwwwwxxwvwwxgwwwwwwxwwwwxxxxxxwxxwwxxwwxxvxxgwxwgvxwwwwxxxxwvwxwxwxwwwwwxwxxwxgvwwwwwxwxgwvxxxwwxwxxwwxgwfwwwgwwwwwxxvxwxxwwwxhxwwxxxxwwwwhxxxwwggfwwwxwwwhxxxxwwwxwxfwwwwwwwxwwgxwwwxwxwxxxxxwxwwxwxxwwxwvwffggfvgVevgwvwfWvfgUUgvgvgwxWfUvwxUuuwVFevwgggVdfggfvvgwwwgfUvvfufgTwgVVvwggVvuggfefggeVvugfughvgwwWfegwgffffwwwwgwwvWVuvwfvTuewWFuvwwwwfevwwgwgwgvwuvvvfwuxveuuwgwvwvwvwwxwwfwvvfgwvvfvguwwwwwhwwfgvefTwvvwgwwxxxwvwvwwwfVWewwxfwuwwwxggvwwVwWfuwgWgwwgwffwewhgvwggvwgwvwFvexvwhgVffghWvguwhggfwwgxwwhwwwwwwwwwxxxgwxgwWxgwgwwVwggxhgwhgxwwghwxwxxxghgwwgwxwggwwwwwvfvwwwwwwfwgxXgvwvwwxfewwvwwwxxwfwwxwwwwwxwwwgwwwwwwwwwvwwghwwwwwuwUwwxxwgwvxwxxvwwwxwxfvwwutgwggvwhvwvvvxwfwwfWgeuvwwgwwhwxTugweuwvwwfuvwxwgwwxwwwwgvwvgVwgxgwwwwwgghgvwwxwwwvgwxgwwwvxwxxxfwwwgvwvwwxwwxwxwwwgxwwwwwwwxwwxgxwxvvvwxwwwxxxxwwxxxgxwwxwwxwvvwvwwvgvxwxwvwwwwfvwwwxwxwwxgxwggwwwvVwgwwwwwevwwwxgfwxhgwwwwwwwwvvvxwxfxwWxxxwwwwwgwxvhxwwwwwxwxxhwwwwxwxwhgwwwxwwgwwwwwxvgWhwgxxxwhwwwwwwxfxgwxxwhwxwwxgxwwwxwwxwxgvwxxxxxwxxwxwxvgwwwxxwxwwwwxwxwxwxvvxwxvwvwwtfggwvwgwxfwggggxwgwgxwwwwvwwvvfWgvwwwWwvwwWVwvwVwwfwwwgwvxfvevwxwwvwwvwwwwwvwxwwWwxwegFfgfxFwfgwwgwwwwwgggfwwxwgwwwgvvxvwvxwxwfuwfwgguwwxvwxwwWxgwvwgwuxwwgwwvwwxwwxwvgggdxwwxvwwggvxvhwxwwwgvwvwgwwxWwwwWwwgwggwwxwwgggxvgfwfwgwwwwwvfwwvwfgwvwxwxwwfFfvwggFwfgwxxwWwvwwhgwwxhwwxvwgwvwggxwwwxwwgwxwwwwxxgwxgwwvwwwwwwwwgwwxxwxxggxxxWwgggvwvwvxwxwuwwgwwwxwwwwggwvwwxxwwwwwwwhvghwgxwxgwwwwwwwwwxgwwwxwvwhxwwwxxwvxwwwwwxwwgxwwwwwwwwfvwxwwgwwwxwwwwvwwwwxwwxwhxwgUgfgfuvgWxwgvwvgwxvwxxxxvfwwgvxfwgxwwgwhwvwxxwhgvwxvxwxwwwxwwwxwwwwwvwwwwwvxwwwwxxwwwwwxwwvxwwwxwxxwgwfgxwwwwxwwxxxxwwxwwwwxwwxwxwwxwwgfgxxggfhwhxwvxxwwgwhxxxwggvvwwwxgvwwxxxwwwxwwxxXwwxwxwwxwwwWhxxxwgwwxwxwWxxhxwwxxwwwwwxwxwwxxxwxxwxgwwwwwwxwwxwxxwwwxxwvxxwwxxxxxwxwxxwwwwwxWwwxwxxgwwwxxwwwxwvwgwvwwwwwwwwwfVfgwfgwggfvgvgwwwvvgvwwwwwwwxffefWgwevwgwwwwgwwvwfvwwwwvwugwfvvfgvwefwggwwwegfwfwvuwwwwwwwwxwvvgvxwvuwwvxvwvwuwwvfwugVwvwfwvwwvvwwwwxwhgvwvwvvwhfwugvWwwwhwwwxgwwxvwwwwuwwwwwvwwwvwvwwwwwggxwwwxwwwwvvvvwwwwwwwwgfgwwxwwggwwgxggfwugwxwwwwvwwwwwgwxhwVwwwgwwgfwwwwwwwwxvxgxwgxxwhwxwvgwwwwxxhwhwxhwwwxxxwwwwwxxxwvwxxxwwwfwuwwvwugwwwwwwgwxwhgwxwwwwwwxwxxwxvxwxvwxwwgxwfxxwxwxxwwxwxxxxwwxwgwwwwhvgvhxxxwwgwwwvwwwwwwxwwvwfwgwwgwwvwwgggwwwvwwwxxwvgvxwwwxxwwwghvwvwwwwvwwwxvxxwwwwwvwvxwwwwwxwwwxwwxwwwwwwwwxwwxhxxwwxxwwwwwxwxxxwxxxwwwxwwxwxxwwxxwwxwxwwwwxwwwwwxwwxwwxwwvxwwwgwwxwxwxwwwxxhwxwwxwxwwwgxwwxgxxxwxwwxxhxxxwxxxxwwwxxxwxhwxgxhwxxxxwwxwwxwwwxwxwxwwwxxxwwxxxxwxwxwxwxwxxwxxxwwwxxwwwxxxwxxxwwwxwxxwwxxwuwvwwwvwgwwvwfggfwwwggggWvgwvWwgwwwwgwxgxwwggfgwuggwwxwwxgwwwvgfwwvwwwvgfWvuWwfWwwwhwxgwgwvwwwvwgxvxwxwvgwvwwwWvgvgwwxwvxvwfvxxwwfggwggtgwwvwxgwwuxvvgwwvxwwwhgwuxwWwwwwwfwwfwwhwwfwuwwwGvwxwvwguwwxwXwwxwwwvwwvxwxgfwwwwvwwwwvxwwwwgwvxwgwxgGfWwfWgwxxxwhwwvwwxwwgxxwxxgwfwwxgxwwwxwgxwwgxwxwxwwwxwxxxxxwwxwwwxxwxwwwwgxhwxxhwxxwwvgxvxhhwxgwwhwwwwuwwwwxvvvxwxfwwwxwwvwvxwwxwhxwuwwxxwwxvwwwxwwXwwxwvxwgwxgwxwwwwwwwwxxxxwwgfwwwXwxvwwvgwxwhwgvxwwwvxwWFwvvfGwwwwwwhvvfwxwxxwxxffwgwxwwvwxwxwwhvwwwwxwxfwwgwxhwwxxxwwwwxxvxxwwwwxxwxxwwwfxwwwxwwxwhwwgxxxwxwhwwwwwwxwwxvwwwxwwwwwxwwwwwwwwxwxwwwwhwxwhhwwwwxxxwxwwwxhxwxhwxxxWwwwwWwwxwwxwwxgvgwwxwhwwxwwvxwwwhxxxwxvwxwwwxgwwxxwwhxwxgxxwhxxgxwxxwxxxxgwwwxwhxwgwhxwwgwwxxxwwxxwhxwwxwwwwxxxwwxwwwxxxxvhxwxwwxwwxxxxwxwwxxwxwwwxxhwwgxwxwugVxVwgwvwgwgwwvxxwgwwwwwvwwwxwwwwxwwxwwxwwxgwwwvgewvwgwggvwwgwwwxwgwuwwxgwfggvwwwgwwwvwwvwwxwwwxxVvxvwvWvWvfwvwwwwgwxwvxwgwwwwwvxwwxwvxwhxxxxVvgfwvhfvwwwxwufgwgwxgwwwuwwvvwhxwwvvxwxxxwwxwgvwwvgvwfwvfgwwgggwxgwxvwwxwuxwggwxgwwhxwxxxgVwxwxxgwwWgwhwwxxxwwwxxxwgwwwhhwvwwxxwxxhxxyxxVvWvwvvwwwxxwwwwxwxxxxWvxgxxxwhwwxVvwwwxxwxwwwwwhwxxxxvwxvwgwwxwwxgxwxxxxwwwxwgwVfWgwwvwgwwxvxxxwxxwwwwxwwxwvwwwvuvwvgwvuwwwwwwgwxxwwwxwxvwwxwhxxvwwxxvwwwwwgwwwwwwwxwwxxwwhwwxvfwwwwxgxxwxxwwwvfwwvwwwwwgxwxwwxvxwwwwxwwwxxWfWwwwxwvwwxwwwxxwxxwxwxvwhxwxxwwxwwgwwgwfWwvxxxxwwxxxwwxxwhxwgwxxxwwxhxgxxwwwgfvwwxxxvxxxwxwxxxxxwwxwxwwxxwxxxxwxwxxxxxxxuwwvwgffwwffgwwwwvwfxwgwfwwvfwwwvgwwwwxxxwgwwgwgwwxfvwffwewvWvwgwwwwwUgwgvVfwwwxxwwwgvwxvwxwwwwwwwxwwxwwxwwxwwvwwwuwwggwfgwwfwfwxxwvwxwwwwwwwwwgwwxvwwwwhxvvuwwevwxfvfwxwgevwwgwwwwwwxwwwwxwfxxvwxwwwxwwwwxwvgwfwfwWvxgxwwvwVxwxWwwwxwxvvwwwvxwwwxxwwxxhhhfwfwwwvwfwwxwwhggwwwxxgwxwwxxxxgxxwwwxwxwwxwhxwwxxxwxxxxhwwvvwvxwxfxwwxgxvwxxxxxwwwxwwvwwxwxxxvwxxxxxxxfwvwwhxwgwwwxwwwwxxwwwxxxwxwxwxwxwwwhwxvvwfvfwxvvfwvwfwvwwwwwxxwwwwvgxwwwxxwxvgvwvxgwwvfwwxwhwwgwxwvxfgwwxwwwxxwgwxvwxxwxwwwvgvwwwvwgwgfwxwvwxxxxxwwxgwwxxxxwxwxhxvxxxwvvgwwwwwwwwvgwxwwwwwwxwwwxwwxwwwwwwwwvxwxwgwvwwxgwhwxwwxgxxwxxxxxxxxxxxwxxgwxxxwxwhgwgwvwwwwgwwwxgwwwxhwwwwxxxxxxxwxwxwxxwwxwwxwwvvxwwgwwwwwxxgwxhhwwggxxxvxwwwxxxwxxwxwxwxvwwxgxwxxwwxxwwxxwxwwxxxxxwxuwgxxwwwgwxwwwgvvxwwgwghvwxwwxxxwxhwxwwwwwxfvgwgwwfvwwwgwwwxxwwwwvwwwhxwwgxwxwwxWwvwxwxxwwwgwxgggwwwfgfWvwwvxewvxxxxhxwvxwwxwwwxxxgfgvwvxuwxvvwwvvxxwhwwxwwwwwxwvxwxxwwxwxxxwxgwwgwggwwwvxhghxhhgwwwxwgwhwXwxxxxwVwwwxxwxwwxgxxxwgvwxwwwgwwgxxwwwgxxxwwxxxwwxxxxxwhxwxgvWhwxuwwwwwwxxxxwwgxxxxxxwxgvwxwgxxwfxwwwxxxgwxxxxvxwwxwwgwwwvgwxgvWgwxgxwxxxxxxwwvxxxxxxgvwgwxvwvwvwgwwgwwwxwwwvxwxxwgwfwhwvwwhuxwwwwfwxwvwxvhxxxxxxxxwwvwwuxwgvwwxwxvwwxwxxwxhfWwxwxxwxxgwwxxwxwxwxxxxxxwxxxxxxxxggwvwwwhwwhxxxxgwwxxxxxwxxxxgxxxxhwggxuwxxwxxxxwxwxxxhxxxxwxwxwxxxwxwxxxxvwwxwwxvwxgvwvwxxwxxVfwwWwwwwxgwwvwxgggwwgvvhxWvvwgefVffgvwwgfwgfwWfgvwWvwfVfffvwwwwxgvfvwgvwwxwwxwvwwvwwggfwwwgwwvwwxvwgwwwwuxxwvxwwxxfgweevwwvwxuwxUegvwVvgufwgvwwvxufgwxvwwfuvwxwwxwvwvxwvwwvwfvgwgwwgehvgwguxwwgwhvvwwWvwwxxgwwwxwxwwxxwwwfvxfgwwgVWfxgwwgwwwhxwxWwwxxwffVfggvhwwxxwgwwxxxwxhwwwwxwvwwxxwwvwxxxwwwxxxxxwxwxxxxgffwwwgvwvwxwwxgVwwgxwgfwhvwxwgwxwwwxgxxggvvwhvwwwWvwwwWxvxwwwwxwwWvwvvvwwwwvwffwvxgwxwxxwvwxvwwwwwxwxwwxxwxwxwvwwxwuxxwwxwxwvwwxxxwwxwhwxxxwwwwwwxxvwgwxwwwguwwwwxxwvvwwxwgwxgvwxgwwwxxhwwwxxxxwwwxxxvwxxxxxxxxxwVxvwgvxxxxwgxxxwwwwwvxfwxxhxxxwxxwwwxxxwwxwxxxwxwxxhvxxwxgwwxxwxwxxxxxwxhvwxxxwxxwwwwwvwxwwuvxwwwwwwwvwvwwwwxggvwxwwwwwxwwwgwxwvwgwfvwwxwvvxvvwvwvfuvxwwgwgvwhwwfwgxwvwxxxxgvwwwwwxwxgwxwxxwfwwfWgwwwvffwwwwwwvwwwwguwhwwxwfgwwfvwwxxfevwwwwwxwxxwvwxwwwwxwxxxwwwwwwwwxxwwwWwwxvgwxgwxxwxxgvwxwxxxxwwgvxwhgwxxgwvgwwwxwwxwwwxwWgvwhwxxwxxwwwxxxwwwxxxwwwhxwwwwwxxxwgwwwwwwxxwwwgxwxxwWgvgxwxxxgvxvxxwwwwxxxxxwxwvhxxwgvwwwwwwxwwfxwwwwwwwxwwhwxwxxxwwwwwwxwwwwwxwhwxxwwwwwwxwwxwxxwwwxfgwwwxwwwwxvgWvxwxwvwwwwwxxxwxwxxxxxwvwwgwwwxwxxwvhwxxwxxwxwxwgxwwwwwxxxxxwwwhxhwgxxxxwwgwuvxxwxxwwwwgxwxxxwxxxwwxwxxxwgwxxwxwwwwwwwxxwwxxxxxwxxwwwwxxwxxxwvxxxwwwxugwwwwwgwwxwwwgvhgxuggwgvwwxwwgxxwgvwwwgwwwwwwwwxwwgwvwxvwffFwgwvwvfvhgwgvvvwwwgwgwfgwvxwwvwxwggwwwwwwwwxwwwwvxwwwwgwgvgggwgvwggvggwwgwfwxxxwwxxFVuvwxwwxwwwvwxwvwfuvwgwvxwwFVuffgghwwgwwgwwwvwwxwvwwwwwxwxvxwwxxwgwwgxwwwxgwvxxhgwwwxxwwwxwxxwfFxhxxwxxWwwxxxhvxwxwwwxwwxxwggvhxgxwwwwxxxgxxwvxxxwwwwwxwgxwvgxvxgxwgxxwxxwxxwggwwwwxwwwfvwwhgxvxxwxwvxwwxwhhwwxxxgvwwxwwxwgwxwwxxwwxwxwwxgwwxwxwwvxxgwxwxhxwwwwgwwwxgwgwwxfghwxvwxxWgwxxxxwvxxwxxhxwxwxgwWgwwwwxwxxwwvwvxxhxwxxwvxwwwwxxxxxwwxwwwwxxwwhwgwwwwwxwvgwwxxXvwexgwxxxxxwxwhwxxwwwwgvwwwxwvxwxwwwwwwxwxxxwxxxxwxwvwxwwwwwhxwhwwhxxxwwxxxhxwxxxxhgwxxxxxxxxxvxxwgwwxwxxwwxhxhxxwxxwxgxvwwxxxxxxxxxfwxwwwxwxxwvwxxxxgxxxwxxxxgxxwxwhxwxxxvxwxwxwwxwxwwwwxwxxwxxwxwwwxwggwwwwwwxwgwvwxwwwxwxvwVwwgxhwghwxwxwgWfxhwwxfwwwwfgwwwwgvwwvwhwfwvgwvxwwwxxgvuvxwwwwxxxVwvwwgwvwxvwwwffwfvxgwxwgfWuvgwxxwxxVwwhxxxwxgevvvvwxfwxgwfvvwwwvwxwvvuwvwwgwwvxwwxwxxwwwxwgggwhwwWgxgvxxggggwwwxhWggwwwwxxwwgwxxwxwxwwwgxxwvuyxwfvggxxxxxwxwwwxxgfWwxwxgvxvwwxwxxgggxwwywwxwxfvwwxwwfxwwwwxxwwxvxxwwxxxwxxxwgwgxwwxxxwhwxggwwwxwxwxffWxwwxxxxxgfwwwwxwxvwvexxwxxxvvwwxwhvvxgggvwxxxxgxggvwxxxvhwxvvwwwwxffvgwxxxvhwxxxxxxgfWwxggwhwgxxxxwwwxxxxxxxwwwxxwwhxwwgwxwxwwxwxxxwghWwhwfwxwwxxwwxwwwwxxwxxxwxwxxwxxxevvgggxggvwWfewwgfgggvfwwwwvwVvwwxwvwwxVggfvwwwvxwwWuvwwedwgVgWvfwggwgwwwVvfxggwWvfVewvwfvuwfuvvWvvwwgghwwwwxwvwvwgWgwwgfwwwVfvvfhfvvxxfgvvwwwxwgwhxwfwwxwwwxvfeufwvwevfwWwhgFeuwggwwvxwwxxgxtvwfvggwwwvwgwvvfuvwwwwwwgwgwggwgwwwwefwwxWvgwhwwwgxgWwfxwwgwwVwfvvgvwvwwwwxxwgwwxwwgwvxxxhwgwwwwhgwgHxhXwfvhwggxwwhxhhwgwggxWXwxgwfhhwxggVxwxwwxgvgwwwwgwhwwgwwxwxxxxwxvxxxwxxwxwfwvXwwwwwxwWwfgxxxxwxxwwwxxxgxxwwwwwwwgwxwgwgWwwwwhwwxfWgfwvwgxwxwhwwwwxxxgxfvxxwxxwfggwUvvgvvwwvfwfwwgXgwwwwwxwwvwwgxxxwwwxwxwxxxhwxvwwwwgwwxxxuvwwwwxxwxxxwxwwgxxwwxwwwvwhxxuwwwvwwwxwwgvvfvwwwwxwwwwwwwwwvwwgwwwwwwhgvgwwhwwwwxxgVvwwgwwwwwxxxxhwwxxwxxxxxwxwwxxxxxxgvuxwgWwwxxwhwwvWWHgxwwwhxxxwwxxxwwxhhxxwWwwgwgwwxhwwxwxxxwwwwxxxxxxxwxxxxhwxhwwwgxfxwwwxgxxwxwxxwwwwwxxwxwwwwwwgwgwwwxxxwwxwwwwwwxwxxwwxwxhwvwwwwwvgxwwwwxfwwfwwwwwwggwvwwxxwgwxxwghwwwxxgwwwwwwwwwwxwwxxgwwwxwwwwwwxwxwxwxwgwvwwwwwwxxwwgwxwwxwwwwwwwwwxwxxxwwxxwxwxxwwwwwgxwxwwxxxwxxwwxwwxxxwxhwvwxxxwhgwwxxxxxgxxxwwxxwxxwxwxwxxhxhxxxxwwxwwwxwxwxxhwhxwxxyxwxxwwxwxhxxwxxxwwxhxhwxxxxxvwwxxxxwwxwwwwwxxwwwxxxxxwxxxwwwwwxhxwwxfwxxxwhxhxxxxxxxxxxxwwwxxxwwwxxxwwwxxwwxxwxwxwyxxwwwxhwxxwxxxwxxhxxxxwxwxxwxxxxxxxxxxxwwxhxxxxxxxwxhwxxxxxxxwwxxxxxxwwxwxxxwwxwwwxxxwxxxxxxxwxxxwxxxxwxwwwugxgwwwgggwwwhvgxgwxgwwwWwwwwgwwvxwgwwwwwwwwgwgwvffgwxfwgvwwhwwxwwwvwwwxxwghvvwvwwwhxwwwwwxwxxxwwwVffgvwvfwhwgwfgwwgwwwxvvuwfvgfxxwwvwvwgwwwfvwfvfvfwgwwwwwwxwvwwwxwwvvwxvgwxxgwxxxwwwxxwwwwgvxwgggvwwggxxwxgvwxwwwwwwwwwxwxwvwvxwwwxwxxgwwwwwwwWgvwwwwwxwwxxxxwxxxxxwgwugwxwxhgxxxxxxxxxwvggwgvgwwxxxggwgwwxwwxvvwxwwxwghwxxxxgwevgwwwwxxvwwgwxwxxxxwwvwgwwxxxxxwwxvgwwfwwwwvxgwhxhxxwwhwgwwwxxxxxwxwwwwwvxghvvwwgwwxxxwxwwwhxxxxxxgvwwwfgggwwwgwwxwhxxxfgwwwxxgxwxgxxwxxwwwwgwwwxwxxwxxwwxwwwwwxxxwxxwvgwwggwgvxwwxxwxxxxwxxxxwxxxwxxxxxwxxwxxWffvwghxwwwwwxxxxxxxxxwwxxvhxwxxwxxwwwwwxwwwwwxhxxxwxwwwxwxxxxxwwxwwxwwwxwxxxxwxwxxxfgwwgvwwgwgggfwwgwxwwgwwwvwwwvwwffgwwwwxvfwhxFwwfgUvvgwfwvwfgfwhwwvwgwvvvvvvwwvvvgfvwwwxwwwhxxwwvgxfgvggwgwfwvgwwwwwwwwwxgwwfwwwwwwxxwggvgwvwgwwxxxwwhvgfwfvvgfvgwffvwfgvxwwxgvvvwwggvfvfwvuggvgwwvvwwvWwwvwwuwwwwwxwwwgwfwwvxxwgWhwgfvvwwwvwwwgwwxxwvwgwwxwfxgwwgxwfWWwwgxgwwvgGgwwxgwwwxwxgwvwxxwwwxwxgghvxxwwxwgwwxwggwwwggwxxgvwwwxwwhwxwvwhxxwxxwwxhvwxxwxwwwwgwwwhwgwxwgxvwggwwxgxwxvwvgxwwwxwxxwxWxwwwxvwxgwwwgwhggwwxwxwxwxwwxxgwvwvvfxwxxxxfgfgwwwwwvvwwwwhxwvfwwwwwwxwwwxwwxxwwwgxvxwgwwxxhgxwwwwhxwwvwxwxgwxwxvwwxxxgxwxxxwwwvvgwgwwxwvgwxwwwwvxwwwwwwgwxwvwgwwwwxwfgwxgxgxxhvwxwxwwxxwhwwxxwxwxwhxxxwxvfwwwwxwwgwgwwxxxxgxxxxwwwxwxxwwwwwxwxwhwfwxhwxxwwwxhwwgwxwxwgxwwxxxgwwwwxxwxxxwwwfxxwxxxfwwxwxxwxxxxwwxxxwwwxwwwxwhwwwwfxwwxwxwxxwwwxxwxwxvwxwxxwwgwwgwwvxxwwxxwwfwwwwxxwwvwwwwvwxxxxwxwwwxwwgwfxwwwwxwwwywfwxxwwxgwxxwxwwwwwvxwwxxwwxxwwwwwwwxvxwxxxxwwxwxwwwwxwwxxwhwxxwwwyxxxwywwfwxxxxxxxhwwwxxwwwxwwwxxwyxwwxxxwxwwwxxxxxxxxwxxwfxfwwwywwwwywwxfwxxwxxxxwwwwwxwfwxxxxfwxxwwxxxwxxwwvwxxwwwxwywxwwwxxwxxxxxwyxxwxwwwxwwwxxxxxxwxwwwvwxvxfwxwwxxxxwxxxxwwwxxxwxwxxwxwxxgxxxxxxxxywxwxxxxwxwxxxxxxxxxxxxwxxvwxwxxwxxwwxwxxxxwxxwxwwxxxwxwwwwxxxwwwwxwwwxxwwwwwwwwwxwggwwgwwwwwwwgfwwxwwgvhwwwwgvwgwvwwxxwwxxxvwxxwvwwxxwwvwwwwwwxxggwwwwwwxvwwvwwwxxwvwvwwxxxvvvwwwwvxxwvwwwwxxwxwwwwwwwwwwwxgwwxxwwxwxxwgvwgwwwxxxwxwwwxxxxxwwwwxwgwwxxwxxxwvwxxxxwwwwwxxwxxwxxwxxxwxwwwwwxwwwwxxxwwwwwxxxwwxwwxgwvwwxxwxwwwwwxxxwwwwwwxxxxwwwwxvxxxxwvwwwxgwwxxwxxwxwxwwxwwxhxwwxwwwxxwwxxxwwwxwwxxwxxwwxwxxwggwxwwxwwxgxwxwhwxwxwxxxwxwwwwwxxxxxwxwwwxxxxxxxxxxxgwvwwxxxxwxxxwxxwwxxxxxwwxxxxxwxwxxxwxxxxxxxwxxxxxxuwxhvwwwwfwgvwwgwwfwfwgwgggvvwfwwwvvwhvgwvwffuwwwxgvwfgevgfvfwwwxgwwxwwwwvgwgWvvwwgwggwvwgwgvvwwgwwwwvwwwvwWwxvwfwwvvufxvwvvweuvxwxwvfwwfwwxwwwwfuxxwwwgwgwuwwvgfwfvwwwwwwfvvvgfvvvwwwwvwvwwwwggwhxwxwwvvwvgwwxxwgwxwffxfwwwwwexxwxvwwwxgwvvxVgvgwvgwxwwwxwwgwwhxxWgxfwwvwwfgwwxxwghwgvwxvwWwwhhgVfwgwgwgwwXxgxgxwgggxhwgwxxxvvwfvgwxxxwwgwxwwwxwxwgxgfwxwxxhxwwwwwhxgxwfvvwwwwwghxhxhhfwwxxghwwxwwxxxxwgwwwwxwxwwxwhwxwwwwwvwfwvwwwvvvfvwxxwwxwwwwxxwxwxxxhxwvwwvvwxwwwfvvwwgvwwwvwwwxwwwwxxxxxwwvvwwwwvwwxvuwwwwwwxgxxgwwwwwxwxxwggwwxwxxwwwxwwwwxxwwwwvxvxwxxwxwwwxxxxwwxVfffwwwvxgwwxwxwwwxwgxwxxwxwggwxxxevwhwgwwwwxxwwwwwxxwxwvhxhxxxwwxwwxxwxwwwxwxxxgvwgvxwwxwxwhxxwxxxwxwwxgxxgwxvgwwxxxxxxxxuwwwwwwgwwfwxxUwwgwwwwwvwwgxwgwwgfggVfwwwgxfxhwwwwwfwWvwwgvgghUfwwwwwWwwfvgvwwgwwgwwwwvvwwwxwwfwxggwwggwwwgwhfwwuwvwgwwvwwfgUgwxvvwwwwgffxfvwwwwwwuvwvwwXxxwfwwwwvwwwwwxwwwwUgwVwwvwwfwwwwvwvwwxvgwwwwxwwxwwWwwwxwwgxwfwggwWgwxWggwwxwwxwxxxxvwgxwwwwvxgghwxwwwhwxfwfwwfwwwwwwwwwxgxwgxhwgwwwwWwhwwwwwwvwgwwhghwxhwxghhwxwgwfwxxvwxwxwwwwwgwxxxwwwwwxhwwwwxxxvxxWhgwxwfwgxwwxwwwwwwxWwxhgxwxwwwwwgwxvxwwxxwwwwhwwxwxwhgwwwwvwwxuwgwgxwwwgwxwwxwwwxwwfgwwwhxxxxgwgwxxwwxwwgwwxhvwwxwwwfwwxhxwwwxxwxxxxxwxwfwwwxwwwxwxwwgvwwwxgggWwvwwxxxxwxxxXwhxgxwxxxvwxwwxwxgwgxwwwwwxxwwwxwghwvwwxVgvwxwxxxxxxgwxwxxwwxxwxxxxwxxxxxwxvxfwwwwwxwxxxwwxxxyxxxvxxxxwxxxxxxhwxwxxwwwwwwhxxxxxxxwxxwxxxxxwxgxxwhxxwxxxwxwwxxxxwxxxwxxwwxxwxxxxxxvwwwgwfwwgwxgvwvvwvwwgvwguhgvwwwvfwwwwvxwuggwwgwxwwfvvxwfwvugvgwvwVuvwgwgfvwvwwwwwefVwfwgwvxwvwwWwfvgwggwvwvxxxwgwgxfvwugxwvvxgwwvVvvwgwxwwwggwwwwwgwfwxwwwwwhxxwffvVvuwuuvwfvvgvvwgwgwwwxwwxfvvwvwvwwwxvvwwfwwvwwwxgwvwxwwggwxvwwwwxVwfwxfwxxhWwfxgvwvgwgvvxwvwxgxxgwxfhvxgxxxwwwwwxwxgvwxgvgwwxwhxvwwhhfgvwxvgWwwxhxxwxwxwxhgxxwxxwggggvgwgwwwgwwwwwgxxxxwwwhwwxxxwvxxwxVvgggwgfwwxwxwwfwwxwwwxwxxwwxxwwxxxxxxxxwwygwgxvgvghwwwgvhVwvwwxwwxxhvvxwwgwxhxxxwxxwxwvgfwwwwxxwxfvvggfwvwwwxgwwxwwwwwwxwxxwwxxxvwxvvwgxwxgwwwwxxxxxwwwwwwwvwxxwxwwxwxwwwwwvvxwwwvxxxwxwwwxwgxxxxwxxxwwxxwvxwwxwxwwxwxwgwxwgxgvwhwwwxgwxwgxvgwgwxxxwwxwxxxxxhxxwxxVvwggggxxxxxwxfgwhXVxxxxxxxxwxgwxhwxxxxgwvxwxxxgwwxxxwwxxxxwxwxxxwwwxwwxxwxxwwxwwxwwxxgwxxxxwwwwxxtwwwvwwwvwgwgwwvwwvxwgwVwfgfwVfwVevwgwwwVxgvwwwxwwwwwgvfvwwVfgxgvvwwggggvvfgfwggfvvfgvwfwwwwwwfwwvWffvwgwwwwwfvwfvgwwfvUvwwgfwgggwxxwvgvxdvvfvxwvhugwwwwwvgwvwwwvwwegvvfwwvwwgvwwwWvvgxvwwwgwfwvvvggwvwhwwwwwwwgwwwxxwwwxxvwwwgxwgVwwgwvFWvwggWwwgvvwxWwwwxhxfgvhgwwwggxwhxvwvwwhfwUwvxwwwvgwvgghwwvwwXvwggggfxxwhxxxwhwwgwwgwwgxvwxwwvwvwgwwwfwhxwugvwhwvxwwxxwxwfvwwxxxwhwggwgghxgxxwfggwwvwxxxxwfwwwgggwxwwwwwxgwwxxwxxgwxxwxwxvvxwwvwgwwwwvvwgvfwxgvxwwwxfvUwvgwxwwxgwwxgwxwxxwxxwwwwUgwfwwxwwwfwwwggggwwxwwfwwxwwwxwxwvwwvwvwvuvgwwxwgvxwgwwwgwxgwwwxwghwwwwxxgwwxwwxhfgwwgwwwwvwxwwxwhwwwxxxxxggwwwxxwwwwwfwghvEWvwwfgwxgwxxhxwfwxxxxxxwwxxgxxhxUvwwwwxwxhxwwwwxxhwwxxwwxxxxxxxwxxxxwwwwxwwwWwxxxwvgxXxwxwxxwwxwwwxvwwwwxwxxxgxwgwwwxwxxhxxxxwwwwwwxxxxxxwuwwwwxwwwwxgggwwxwgwwxhwxwwwxwwwwxwwxfggwwfwvhwxgfgwggVvwwxgwvgfGvwgwxgwfwwhwxwwgwxxwxwwwxwxhvwwwwwhwxwwwwxwwwwwwgwwxuxggvhwwfvvxxhwwxgVfevgvwxwggwggxwxwwwwwwwwwgevvwgwgwfxgwghvxwwwwVfufwwggvxwxwwwwwgwxvwvxxhwxvGgwhxvxggVwwxwwgwxwhwwghgwwxxxwwxhgxxwxwxwwxxwwwxwwxxxwwfgwghwwwwwxgxwxwxwwxxwwwhwwwxxwxwvxhhwwwxxxggvwwvvwxwwxxwxxwxvwwwgwxxhxwwwwxxggxhxxxwwxwwwxvwxwggwxxwgvgvwgxxxwwxxwhxxwxwwxgwgwwwwwgwvwwgggwwxxxxwvxwgwwxwwghxxxwxwxwwwfwvwhwxxxxwxxxwhxwxwvwwxwxwwxxxxwwwwxwwxwwwwwwffwwwxwxwxxggvvxxxxwwxgxwwwwxwxwxvxhwwwwxwxwxwxwhwwwwvxxwxxxwxwwxwxxxwgwxxhxxxxgwxxxxhwwxxwwhhxxxxxxxxwxxwxvwhwwwwxwxwxxhxxxxxxxxwxwxwxwxwxwwggwxxxwxxwwxxwxxhxwxxxxxxxxxxxwwwwxxxxxwxxxxwwxwggfvwhwwwhwwwxwxgxxxggwvWhggwwwggwwwwwvwvwvwwwgghvxwgwxwgvwxwxhwwwfwfwfxwwwwwwwwgxxwxxfwwgeFxxwwwwxwggwwwwxwxxwwwfwxwxwxwwwxffffwfwwvwxwwwfwwwvWwwxgxvvxvwwgwxxxwuvwwwwwwvwgwgwvXgvvvwwvwgggwvxxvwggwvvxwxgwfxxxvwwxxwwfwwfhggwxwwwwwwxxhgxxwgwgwwgwwwxwhxwggvxxxxxxgeGwvwvxxwgwwwxvxwxxxfvxwwxvxxxxxgvgwwxwxvwxwxxwvWwxhxxwxxgxwxwxxwwwwhxxxwwhwgeGwwwxwggwwwwwxwghvxxxxxxwxwfgfgwgwwxwwwwvXuxwxxwvvwwwwwwxwxwwxwgwgfxwxxxwwwxwwwwhgwvxxwxvgwwxxxxxgwwwwxxwxxwgwwxxwxvxwxxgwxwwxwgeGxvwxwhwwwwxxxxwxxwxywxxxxxxxfgwwxxxwvWwhwwxxxxwhwwgxxxxxwwwwxxxxxwgwwwwxxxxxxvvxwwwxwxxgwxxxxwwwxxwwwxxwgxwwgxwhdvwgvfwwwwvwWwvwxwhwvgfwwgvwvwwxwwwwwwgwgwwvvhxwffgwge6gwffwfwfwgwfwvwwwwwwxwxwwvwwwvvuwwvwgwwwwgguwwgwgwwwxxvwgvvxvWvwggVfwwfwfvwwwWeefwwwvvwfgxfgwxvwgfwxwxgxvxwhwgwxvgwgvvgWeefwwgWwwwwwwgxwwwwwftwwwwvuxwwxvvxuwgfvwgxwwwwwgwvwwgWwwWwwwxwe7wxwgggwwwwwwwvwwgwuwgwgwxwwuxwgwwwxwxfwxwxvgwwwxwwwwgxwgxgxvwgxgxxxxgxwwwwwxwwwxhwwwghhwgwwvxghwwVwwwgwwgwxwgvvwwwxwwxxXxxvgvxxwvwwxxxuwwwvwwxwhxxwwwwwwwwwwxwgwwxwgwwwwwwgwxxxgvwvxxxwxgfvwgexwxwwwwwvwvwwxgwvWwwwwwwxwuxwgwwwgvwwwvvxxwgvvgwxxwwxvwwwwfwwwwvwwwwxwwwwwxwwwvwgvvgxxhwwwhxwwwwxwwxwxxxwwgxwwwwfwwwxwwhwwwwwwgxxwvvgwwgfgvxhwwwwxggxgwgfwwgwwwwxgwvwxwwvwwxwxvwwwwwwgwxxwxwxwwgwxxwwwvwxwWwwxgvxwxwwvwxwwwwwwwxxxxxhxxwxhhwwxgxwhwwxwwwwwxwgwgxwgwgwwwxxhwwvwwxvxwxgxwwwgxwxxwwwwvhwxwwxxwxxwxwxwwwxwxxwwhxwxwxwxggvwwxxxxxwwwwwwxvxgwxwxwxxwxwwwwwxvvwhwwgvvwwwwvgwxhxggwggwwvwwxfvwwwwwgfgwgwwwwwwwxfvwwgffwwwfFvUwgvgwwwfgWwgxgggffuwFfVwxwwxwxxgVwggvwfwxxxxwwwgwwxwwfgfgvwfwwwwwwwggwwxxwwgggwgwwfwxwwwgwwwxxwxxwffvUvfvWvfvvwgwevwhggfvgvwvvwwgxgvxgwwxwwwxwwxxwWwvwxgxfwwgwwxwgvvfwgvwgwggxwFvVwwwwwwwwgwwwxwwxFfVwwxxwwgwwxxhwwwwfwgvxxwwWwgxhxxXwwhxxxggwgwwhwhwwxxxxhwgwwxxxxwhhwxwxwwgxxxwwwwxWvgxwxwxxxwwwwxgwwxwfwghwxhgwwwwwwhwhwhwhwwwwxvwwxwxxwxhhwxhgxwxwwxxwwxwwgvgwwwvwwwwwhhwxwxhfgwwfwxxwwxxxxwwfwVvfgwfwxwgvwwwvwggvxxwxwwhfvgwwwhvhwxxxwwxxwxxwwwxwwwxxxxwxwvwwwxxfwwxwxxxxgwwwwxxxgvhxxxxwxwwhwwxvvwwxwwwgwwwgvwwwxxwghwwwwwwwhwwxxvwwhhwfggwxVwwgxwwwgwxxWvgwxxxwxxxwxwxxxxxwxxyxxxwwxffxgwgwxwhwwgwwhwxhxhhxxxhgxwwgwxwwhWgwwxxxxxwxxxwxwwwxwxxxhxxwxwxxxxxxvwwxxxwwwwxwxxwwwxwwwwxgxxxyhxxxwvxxwxxxwgvxwwxxwwxwwxxxwxwxxwxxwhwwfgwwfwwxxxwwwwvwwxxxxgwwwxwwwxgxwwwwwwwxwwwwwwwvgwwwvxwwwwwwwxxxwxwwwwwwxwgwwgxxxgwwwwwvwgwwwgwvxxwxxwwwwwwwwgwxgwwwwwwwxwwgvwwwwxwxhwwwxwwwwwxxxwxwxxxwfgwwwxxhxxxgwwwwxxxwwxxxwxxxxxwxxwwwvwxwvxxxwwxxxxwxxwwwwwxyxwwxwwvwwxwwwwwxwvxwwxwxxxwwxwwxxwxvxwwwxxwxxxwwwxwggwwwxxxxxxxwwxxxxxwxxwwxwxwxwxwwxwwwwwwxxwxxgwwxxxxxxwwwwwxwxxwwxwxwwwxhxwxwxxwxxxxxxxxxwwxxwwxxxxxxxwxxxxxwwwxwxxxxxwwwwxxwwwwxwxxxxxxxwwxwwxxewwgwwvvwwwvfwwwwwfvwfgWgfuvwwwvvwwwwwgwvvwvvvwgwwwwwggvwfevggwwwvwwffvvwwwgfvgxgwffffvffvwgwvwfgwwfvfVgwwvfwvgwwwgvwwwvfwvvwevwxguvwfvvwfvwgWwvgwvwwvwwwvvxfwxgwwwwwwvwvfvvwvwwwwxwvfgfwuwwwwxwgfvwffvwwfwvfwvwwvwgwwwwwvwwwxgvgvwwxwggwfwxwwwxxwgwgwwwwggwwwxwxVfvwxwxgfggwxhxwwwwwwvxwwggvgwwfwwxwwwwwvwxvgvwwxwWfxwxXwgfwwfgxfwvhwhggwwwwgwwgvwgwvxwwgwxhxVvwwxwwwxwwwhxxwxgwwxhwwxwwvvwwwhgwwwgwvwwxwwwxVwwwxwwwwhhwwwwgxxvvxggvwwwwwwwwgevwwwfwvvwwgwwwvwxgwwvfwwwwwxxgwwxwwxxhwgwvwwfwwwwwwxxvwfxxxwxxgvgwxwxvgxwwwwwvxxwwxwwwvwwwXwwwhwxxhvwwwvwwgwwxwxwwwwxxxWfxgwwwwwwwwwwwwwwxxhvwwwvxwwwxxwwwwwwwwxggwwxwwxxgvwwwhxxxxgVgwwwwwxxxxxwxwxxxgwwxwvwfwvwwxxxwwwvxxwxgxxwxxwwxwxhwwgwwxxxvwxxwwxwwwwxghxxwwwwxwxxxwwxhwwxgxgwxwwxwwwwwxxwgxwxxhwxxwgwxxwxxwxwxwgwwwwxwxwxwxvxwwwwwwgvggwwxhhgwvfggvggwvxgwhxxwwwvwggwvgwwwxgwwvfwfufwvwwfgvwvvwVwegwvguwwwgvxwwwwwwxwWfehxwgvwwwgxggwxwwwgwgwxvvgVwvvXwwwwxxgwgwwgxgvwhwxxwwwvffuvwxwwxwxxfeugwggegwvvgveVfufwwvwwxxxwxxvxwwvwwwwvxxwxxwhwwxWwegwXgwwwwwwxwvwWwegxwxwwfwwxwxwwwxwxxggwwwfgvwwvxvvvwxxwgwwgwwxwgwvwwwxxxxxghwxwhXxxhwxwgxyxhwgggvxxwwwwxxxwxxxwxxwxxxfvvhxvxwxwxvwwwxwxxwxwxwwgwwwxwwxxxvxgwwxxwxxwwxhwwxwwWxwXxxxwgwwgwvxxxxxwwwwvxfwvwxgwvhwwvwwwwwgwwxvwvhwxwxwgwxxwxxwxwxwwxxwgxhxwxxxwwxwwxxwgxgwwwwwwxvxwxxwvwxxxwwfxxxwxfwvwwxxwwwwwxwxfgwwggvxwxxxwwxxxxxxfxxwxxwhxxxxwxfvvxxxwhxxxwwxxxxwwwxxwxwgxxwhXgwhwxxhxxxwxhxxxxxxxxwxwwxxxwwwxwwxxxwwxwxvwxwxwxwwwwwxxuwvgwvwvwwwgvgvwxwwfwwwwwvwvwvxfwfwwvvwvggwggwwWwxgxwgWgwwgfgWxgwgvwwgggwwfwWwvwwvwgwfFwegvfgvwvwwwwwvwwhfgwwwwgwwwvvwwwgwwwWfdugfgwvwvwvuvxwxwwwgwgwvvwwgwvwWvxwwvgwwwwvwgwfvVfduwvwvwwwVufwvwfwxwxwvguwvvvgwvwwwwvxwgwwwgvwxwwwwwfxwfFgvxggwwvxgwxwvwxhxvwgvwgxwwxwxxxvwvxwwgwhxwwwwwwgvgfvwwwwxwwxgwwwhwxfwxwvwwwWgwgwwgWwwwwwwvwhgwxxgWgwwxwxwgwwgwwvgvwhhwvwwxvxvwxwxgxwwwwxwwwxwwwwxxxxwwxwvwwgvvwxwwwxwwwgwwxxwwwwwgxwxwxxwvwwWwwwxgwwwvvwwwvxwvwwvvwwwwgwwgwvwxwwwwwfwwxwxwwgwwxwwxxxwwwwvgwwwggwuvxgxwxwwxxwwwwwwgxxwxwwxwwgwxxxwwwwwgxvwwgwwvvwWwxwxxxwwwvwxwwxxwwxwxgvwwwxxxwxwwvwwwvwxxwwxwwwxwwwxxxvwxwwwwwxxwvgwhxwxxhwwwxxhhxxxxxwhwwgwxxxxhxxwxxxxwwwwggwwwwhxwwwxwwgvxwxxwwxwhxwwwxwxxwxxxwxxhwwwxwxxxwxxwxxwxxxwxxwxhwxwwwwwwxwxwxxvxwwwxwwxwxwwwxwxwgxwwxvxwxxxwwwgwwwgfwxwvwwgvvwwxxvwwhwxwwwwxwwwhxwfxwgwwxvxgwwwwwvwwwwvwwwxwfvvgwwwwwwvwwxxxxwvwvwxxwvwgwwwwxwwxwwwvwxxwhvfwxxwwxxwgfwfwgwxwwwwwvxwwwgvwwwvwggvhvwwxxwwwwwxxxwggwxwxvxxfwxwgwwxgvvgwwxxxgwggxxwwhxxxwwwxxxwwwwwxxxgwwwxxxwgwxwwwxwxwhvwwvwwxxwwxwwwxfxxxwxxwwxwwwxxwgwxwxxwgwwwwwxwxxxwwxwxxwvwxwwwwxxwwwhwwhwwwvxxwwxwwxwwxxwxwwwvwwwwwwxxwxxxxwwxxwxxwvwwxggwhwwxwxwxwxwvwxgxwwxwwwxxwwxwxxwxwxxwwxxxwxwwxxwwwgxxxxxxvwxxwxwxxxwxxwwxxxwxwwxwwxgxxxwvgxxxxxxhvwxghxxxxwxxxwxxxwxxxvxxvxhgvwhxxgwhwwvxwwWwvxggwwwxxwwgwwgwwwxwwwgwvwwvwgxgwwwwgVvxgwwuxwhgwwgwgwwwwwwggvwwxwwwgwxwwgvwwxgwwwvwvgwwxwxfxgfvxwhWWwvvgvwxfxxwgfwuxgwvwwvhwfxxgwwxwwgvxhggvgfvxvvwWxgxwxghwwwwwgwgwwxfwgwwwwwgvggwwwwgwxwgxXwghwgwwhgWwxhxhwxwxgwgwxwwxwxxwxwwxvxgwxxxwxxwwwwgwvwxxwwgwgxxwwwxxwwxwgwxxxwxwxwwxggxxxgxxvxxxxgxwwwwxxwWgxxxwxxvvxxxghhwwwxxxwwwxwwhwxxwgxxwwxxxwxwwhxxwxxwwwwxxxxwxxygxgxwwhwwgxwhgwwxxhwwxxwxxvxxgxwwxxxxxxxxxwxxxwwgwhWvxwxxggxwxxxxxwxgwvxwxxwwxxxxhfwwxfwwxxvgvvxhgwhxwwvvxxgwxxwxxhxwwhxxxxwxwxxxxvwxxxxwhxwhwwwxxwxxwxWxxxxxhxhxxxwxxxwxwxxxxxhwhwwxxxwxxvxxxxxxxwxxxxhxxxxxxxxxxwwxgwvwhxxxxwxwxxxvxxxhxwxwxxxwwxxxxxxwxwgxxxxxxxxxxxxxxxxxewhxfwvwwwwgvwwwwxxvwwwwwvvwwwwwwwwwwwvxwxwxfwvwWuevgvvffvwxuwgwewwwwwgwwvvwfhwwwwwwxggwxxxwwvxwwxwvwwwwfwwwwwvwvgwwggwwwxwwvvwwwwxwwwguffvewWwvwvwwvwwwvwvhVwfwwggwwggvxwwvxxxwwxwvxxxvwwxWuggvwewvwhvwwxxvwxwxgvwvgxwfxwxwwxxxwwwwwwxxwwgwvWwgwxhwxyfwwvxxwwwwwwxwhwwxxgwxxwxyWvwvWwwfvwwgwfxvhvwwfxwwwxwxxwfwxwxxxxffgwgwwfxwwwxwwgwxxxefwwwwwgxwwhwxwwxxwxxgvwvxwgwwwvwgwxxwuxgwvwxxhxvwwxvwwxxxxxWufvfwwgwwwvwvxwwwvxxxwwwwwxxxvxwwwuwwwwwxxwwwwxwwwwxxxxxxwvwvwhwwwxwwwvfwwwwwwwwxwxxxwwxxxWugvxxwwxxxwwwxxwxwhwwwxxxwhwwxxwghvhwxvwwxhwwwxxxgwwxgwwwwxhxwwxxxxxvuwwgxxxwfxhgxwwxxxxxxxwxxwXwxgwwwwxxgwwxvxwxxwwxwxwxtvwxgwfvwwgwvwwwhgvVvwwwwxwwwwgwwwwgwxgxxxwxffwwxwvwGffgxvxggvwwwwwvwxwgvwgwvxwwwwxvgwgwxwwxwxfwwwgwwwwfvgffgwwvwwxwwwwvwwwxwwwwvxwxxgvggwvwvwvxvwvwgwwwgwwwwggvwewwgvwwvwvxgxxgwwggwwgwwGfvuwxgfwxwwxfwwwwxwgvxxwxxwgwwxwwxxxxfgvwxxxwwwwhwxwvgxwxxxhwwxxgwhgXxvxxxWwvxxxwfvfwwggwwgwfwwwxwwwxxwwxvwwwxxuwxhwxxwxxfwggXwvwwxWwwxxwxwgwxxxwxvwwxwxwwwwXwggvggwwwwwxxwwvwwxhvxwwxxxGffwwxwwwwgxxwwxwwwxvxwxwvwwvvwwxvwvvxhxxwxgwgwxxxwxfwxvxwxwvwxxwxwxwwwwwwxxgwxxxxHfvxxwwwwwxwxwxxxwwwwxxxxxxxxxwwwggfhxwvwxxwwgwwxxwxxvwxwxxwxxxxxxxwvvxwvvwxxxhxxwwwxxxxxwwxxvxwxhwwwxwwwxwxvwxxxwxwxgwwxvgxxgxwwwwwwgvvwwgwwWgvwxggfxxxwxwwwghwwxxxxwgwvwxgVwWgvfwwxggfxghhwgWwgwwwgwwgwwgwwwwxfwhgxxwwxwwwwwwvfwxvwvvwwvggvvwwwgxwxwxwwwwwwxwxxxxxxxxggfgvvxfwfwfwwevvwWwwwgwxxwwwwwwwwxwwwwwwxwwxxfwvwwwfwgvwwwgwWxwhwwwwwwggwxxwxxxwwwxwxxxxxxwgfgxxfggfgwwgwhwhwxxgxxwwxxwfgwxhwwxxxwwxxxwxxxxgwgvvwxgwxvhwvwxwgvfwxxwxwwxxwxxxxwwwfvgwwhwgwxfwXgvxxxxwwwwxwwwxxxwxxwwwwvwxxvvxwwwwxwxwwxwvwxxxxxxwxxxgwvgwwxwwgxwxxvggwgwxxxxxgwxwxwhxxhxxvvxgwwwvwgvxxwwxxhwxxxxxwxxwxxwvvvwhwwxwxwxxwxwwxwxwhggwxwxgwwwxxxxxwxwxxxxwxxxwwxwxxxxxxwggxwwwxwhwxggxwhwxwxxxxxwxxwxwxxwwhwxxxxwgvwxxxwwxwwxvxhwxhvwxxxxxwxwxwwxwxwwwxxxxhwxwxwxxxwuwxwwwwwwwxwVvwwhfwgxxwwwxwxwwxfvvwgwwxxWvwwvvgvwgwwWefwxwggwwhwxxgvvvfvwwxwwxvgvwwvwgwwxwgvvwwwxwfvgwvwwxwvwwwwwvxxuwxxfvWvwwhwwvwegvggvwwwvwxwwxvfwvwgwwxwvwxvwvxwfvwxwwxwxxhxWegwwwxfuwwwwvwxVvwwxxwxgfvwxwhwwwwgwxwwxwxwwxxvWwfvvwgwwwgwxfxwxxxxxxgwwwwxwvxwfvvxvwxvuwvwwxfvgvxxuwgghwwgwxwxgvxwwxxwxxxfwxevgwxhwwxwgvhxwwxgffhvxwvxhfwwxWwgwvwxxwwxxXegwxxwxwgwwxvwxxwvwwxxgwwwxwwwwxxwxvvwwxwxwxyvwwvwwwxxwxxxxwwxvvwwxwxwwwwxwwgxxWughxwwxwxwxwxwxxxxxxxxxxxwWggwvhxxwwxxxvwwxhwxxxwxxvvxwxxxwwwwwxhgwxxxxxwxxxwgvgwgxwwxwwxxwwxwxuvfwwxwwwvwvwwwwwwwvvwwwgwxwgwwwvwwwvwwvwwgvwwgxfwwwgvvwwvwduVgvgvwwgwwvvfggwwvvggfguwwwwwvwwuwwwguggwwxgvWvwwwVwwwwvwvdfwwwwfgwwwgwwwwvvwvwxwfvwwwxxxwwwvfwwwvwduVgwwwvvwwwvwVvggwwvewuwfuwwvwvxxwwvgwwvwgvwxwwwwgxwwwxwxxwWgwwwxwvgwwxwwvvgugwgwggwxxvvwxwwxwwwwxwwhvwwwwgwwxwwwgwwxwxgxwwwwxwfgwwwwwwxXxxgvwwxWxwxwwwwwgwwwwxwwxxxwfwwwwwvwgwegwwwxxvwxwxxxxxwxxvwwgwwwwxwwwvvwwxhwwwvvwgwwxwwwwxxxvvwxwgxwwwgwxvwwwwdfwxvvwwvwwwxwgwwxwwwwwwwvwxxwvxwxwwvvwgwvvgwwwhwwxwwwwgxwwvwwvwwwxhxwxwwwxwxxxwwwwgfxwWwwvWwvwwxwwwwxxwxxwwwxvwgwxxwwxxwwwxvwxwxwxwghvgwwgwwwgwwwhwwwwwwgwwwxwxwvwwwwgxhwwvxwxwxxxhwwxwxxhgxxwgwxxxwwxwxxxwwwwxvxwwwxxxwwwxwgxxxwhxwwwhhvwhxwwxxwxxwwwvwxxwxxhxvxxwxwwwwwfwgxwhfwwwxxhwwxxwxwxwwxwxwwxhwwwxwwwxvwwwwxwgvwxxwwxxhxwwwwgvwwgwghwwgwwwwwwxWvwxwwfWwwwgxxfwxxxwgwwhwvwWvwvwvwwffwwhwwffvvhwwgvwvvwwVvwwxfgwvxwxwwwvwgfwwxWwgwwfvWvwvwwwweewwwwwwwgvvvxefvgwwwwxwggvwfwveeffwgvwVveggvwgwgvvwwwwfwvvxxwwgwgvvwWVwffvwhwwhwwwgwwwwxfghxwgwwwhwwXwwfgVvwgwxxwxwxxwwxgwvwhxvgvwhgxwxxvxwhgvfxxgggwwxwxwxvxwwxwxhwhxwvvhvhwwgwwgwvxvvwxvwvwwwgwxwwwxwgvfwvwxxwwwxgxwwxxxgfgwxxwxwgvxwwxwxwghhfvwxgxgwwwxvwgfxxwwvwwgggfvvwwewwwxwwefwggwxwwxfgxefwgvxxxgwwvwwxfwwwwgwwgxgxvxwwxxwwxxwwwxhxwwxwwxwfwwwfvwwwhwhxwwxvxxwxwwxxxxVvwwwwwwwwxwwxxwxwxxxxxxwwwgwwvwwwfwxxwwwvgwxwwwxxgwxwxxxxhyxwxxxxwgvwxxhwvxxxwxwwxixgwwhghxwwxhxwxxwwwgxfxgwwwwxwfwVvwwxxwwxwhxwxxwwwxwhxvxxxxxwwwhxxxwwwwxwhxwwwwxgwxwwwwxgwuxwwwwxwwwxwggwwwxwwwwgvgxwwwhwwWgwwxwWwwwggwwghfwvwwxwxwwvvuwwgwwwxvfvwwwvvwwwevwwgguwgwgxwxxxxvwgvwgxxvwxuuvwgVfvgwvwwwWffwwgwwwxxxfggwgggwvwwxgxwwwwvwxxwxwxxfggwuvfWvvwuggxuvvwgwhwuhghvfwWvffuwfwwxgxfwhuwgxwgfgwwwwwwxwwxwwwxwgfwwfwwwwxwwwWgwxWwvwfwwwhxxwwwxwwxxxxxxgwwwwxxwvxxXhwwwgwwxhwxxhgwwxxhxfwxxxhhwwWfwwgwxwwfvwwwwwvwgwwwwgwgwwvxxxvvwxwhwwxwxwvwwwxwwwxxhvvwwggwxxxwxgWfwhhwxxxwggvxwxwwvvgwgxxwgxxvxwgwwfgxwwwgwfwxwWhvwwwxhgfxwgvwwwxwxxxwwwwwvwwhvwxwwwxwwxxvwxwxxxvxxwvwwwxxxxxxxwwwvggWWgvwgvxwwwggvewgwwxvwggwwxwxxwvvxwxgwwwvwgxwxwxwwxxxxwwwwxxwgwxwwwwwhgxwxxxxxxxxxxwggwwgwwxxvwwxxxxxxwwwwxwxwxxxxxxwxwwwWwxxxxwgxhwwwxwhxxwxvghxxhxxwwxxxxWwvxwwwwwwxxxwxvhwwwxxwxxxxxxxxxxhWwxwwhghhwgwxxwwwxwxwwxxwxwwwwxwwwxhgwwggwwwxxwwwxxwwwwwwwwwxxxwwvwwwxwwxwwwxvwwwwxwwwwxwwwwwwxfwxwwxwwwwwwwwwwwwwwwxwwwwwwwwxxxxxwxgvwwwvwwhwfwwwxxgwwwwwwxwwxwxwwwwxxxhgwwxxwwwxxwwxxxxwxwhhwxwxwwxwxxwxwwxfwwxxxgwwxhxwxxxxxwhhxwhxxxwxwwxwwgxgwhwxxxxwwwwxwwwwxwwwwxwwwgxxwwwxxxwxxxxxxxxxwxxwxwxxxxwggwwxwwwxxxwwwwwwwxxwxxwwxwxxxxxxxwwwwwxwwxxwxwxxgwxxxwwwxwwxwwxwxxxwwwwwxwxwwyxxxxxxwxwwwxwvwxhxxxxxxxxxxxwxxxxxvwwxwwxwwxxgxxxxxxxwxxxwxwvxwwwwxxwwwwwxwwhwwwwwwxxwwxgwvxxxxgwgwwwxwwxgwxggwwwwwwfvwwwxxxgfwxxwxwxgwggwxxwwxwwwwwwwwgvwwwxxwxwxwvwxxxwgvwxwwwwwwfvfhwxwxwwwwvwxxgwwwxwwwwxfvvxxwwwwgwxwvwxxwwwwxgxxwxwwwxxwxwwxwxwwwxxxwggfxwwwwxxxxwwwxxxxxxwxxxwxxwwxwwwxwwwwwxwxxwwxwxwwvwxxxxxwwwwwxhwwwxxxwwwwwxwwgvwxwwwwwxxxxwxxxwwwwxxxwxxwxghxxwxwwwxxxxxxxxxxxwwxvwxwwwxxwvwxxwxxyxwvxxwxwxxwxxwxxwwxxwwxxwxxwxwxxxxwxxxxyxxxxwwwxxwxxwxwxxwyxxxxxwwxxxvwwxxwxxxxxxwxxxwxxxxxufwxwxxwwwwwhwxxxvgfwgvvwwwwwggwwwvgxxfvwwwegvgvwwhvwwwXwgxwxWvVuvwwxxxhxxWwgxxxxwxxfwwwwvvwwxwxwwwwgwwgwwvvxwxxxvgwxxgvWvgwvwwwwwgWwwwwwwvwwxxwxvvvxxwwwwwwwvxxxfwwvggwwvwwggwgwxhWvvfxgxxxwxwhwwxxxxgwgwgwwwWwgwwvwxwxxXwwxxxgggwghwxxxhwgwwxfwfvvvfwwwvxwwwhvwwwxxxwgwwwwxxxxhvwWwggvwxxvwvXwwxxxwwwxwxwxwxxxxwxwwgwvvgwvxxhwxwwwwgxxxwwwwxhwwwxWvWwxwxfxgwwwxwwxwxvwxwwwwxvwwxvgwwwxwxxwvvwwxxxxwwxwxwWvvvwwxxxxgxxxxxwwwxwxxxxgwxggWwwwxwXwhwxxxwwwgwxwvwxvxwwxxwxxxxwxxxwyxxxxhxxhwxxxxxxxwwxuwxvvgwwwxwwwwwwwwwgwgwgwwwgwwfvwwwwwwgvgvwwxwwwxxwxfgwvGvffgwvvwfvhfwgvvwwwwwwwxggvgvwwwwwwwwwvwxwhwxwwxwfvvvwgvfevvwwWfvwxfvwwwwgffgvwvvwgvxxguwvwxvxggxxvggeufvfwewgwwggvwwwwfwhvwwwWvvvfwwvggwvwwwwwwwgwwwwhWvwwffgwvwwvgwwwvGgwvgvwwwwxwwgggwwwxwxxwvwxxxxwwwxwxwwggwgwwwxwhwgwghwxxwxxwxwwxvwhxwgxxhxxwxxwxxwwxgxwxvfwvvwvwvvwwfvvxvwvwvwwhwxwvvxvwwgxxgvwxxxgxwwwwwxfxwgwwxwwwwwhwwgxgwwwxxhfxxwwwxxwfwxwgxghvxfwfvwwxwwgwxwfvwwwwwwwxvxxxwwxhgwfvwwwwwwwfvxwwxwwxgvwwwwwgwxwwwxxhxwwxwwwgxhwxwwwxwxxvfvvgwwwwXwvwwwxxwxxhxwwwwvxwwgwxxwwwxghwxxxwwgvwfwwvwwwwwxxxwwxwxwwwwxwwxxxxxwxvhwgwfwwgxwwwhxxxxwwwwxwxwwxghxxxxxwwwxhxxhghwwhxwxwxxxxxxxxxxxxxxxwxxwxxfwxwgwxxwvwxxWgvxwxwwwxxxxxwgxwxwxxxxxwwxwwwxwvxwwxxwwxwxxggxxwwwvwwwwxvwwwxxwwwwgwgwxxwwxxxwwwwwxwhxxxvwwwwvwwwwxwwwwwgwwwgxwwxwvwwxxwwwwxxwgxhvxxxwwxwwwxwvxwwxgwwwxxwvxxwxxxwwxxwxwxxxxvwwwxwwvxxgwgwwvxxxvvwxxwwxvxwvwxwwwwwxgwgwxxxwxxxwxxxxwgxhxxwxhwwxxxwwgwwwgwwwwvxxwxxxhxxwwwxxxxwxxgxgxxwxxhwyixwwgxxxxvwxwwwxwwxxxxwxgwgwwwxwwvxvwxxxxxxwwwxxwwwwwxxxxwxxvwwxwxxwwxxgxxwwwxxxxwwxxxwxxxwgxhxgxxwwwxvxxxwwwwwwxxxxxwwxxxxyxwxwwxxwxxvxwwwwxxwxwwxwgxwxxxhxxxyxwxxwhhvxxwxhwwwyiwxvxwwxwxxxxxxxxxxxxxxxxxxxxxxxwvxwxxxxxxgxxxxwwxxwwxwwxwxwwwwxwwwwwwwwwxxwxwwxwwwxwwwwwwwwwwwxwwwwwwwwwwwwwwxwwxwxwwwwwwfwgwfgvwwwwwwwfwwvwvxvvxwwxxwwfgwvwvhwwwxwxxwwwgwwwwwwxwgwwwwwwxxwwxwwwwwwxwwwxwxwwwxxxxvwfwwwxxxwwwxwxxwxxwwwwxwxwwxxxyxwgwxwwwwwxxxwwxxxwxxwwwwwwvwwxxwvwxwxwgvwwxvwxwwwxwxwxfwwxwwwxxwxxwwwxxxwvwwwvxxxxxxxvwxwxxwwxxwxwxwxxwwxwwxgwwxxxxxwxvxxxxxwwwwggwwxwxwhxxxxxgvwwxxxxwwxxwxvwxxxxxxwwwwxxwxfwxxxwxwxxxwwxwwwxxxxxwwvxwxxxxyxxxxxxwxwwwxwxwwxxwwxxwwwwwvvfxvwgguwxfwwwfwxwvwwwwfgwwwwwvgggwgvwhwwhfuwffwwxUvvvwwUvwwfvvgwffvvgwfxwvwfvwwuwgwvwxvgwwwwvwwwwxgvfwwwwvxwxwvwxwwwwwvwxwwgwfgwvwwvwwwwvvwevwgwhfwwgwwvvvwwwvwwwxxwwwgwwxwvxwwxfwffxxxfwvwwvwwwwhxwwgxwwxhxwwwxvxwwwxwghwhUvfwwUwwwhvwfwwwwhgxxwfffXvwwwhxhxwgwxxxwhxxxwwvWwvgxwxwgxvwvwgxwwwwfwwxxwwxhxxxwfwwgwxxwwwgwwvxwxxwgwwxvggwxgwxwwWxwwvwwxwxvxfxhfwwwxxxxwxwwwxwwxwwxxxhxxwgwwwwxwwwvhxhwwwxhxxxwxxxxwxfwwwwxgwgwwxxwwxvwwxxxxxwwxxxxwwxwxxwwwwwwxxwuwxxwhxgywxwxxwxxhwwxxxwxxxuvgxwwxvwxwwxxwxxwxxxxxhxxwxxxvwxxxxxhxxxxwxxywxwxxwxxwxwwxgwxwxwwxxxxxwwxvwwxxwxvwvwggwwvwvwwvvwwwwxwwwvxvwwfgffwwvwwxxgwwwwwwwwfvvwgfwwfwwwdtVWgwwwwgfvwwwvwxfefgggvxgwwxwxgwgxvwwwggvwxvwvwvvwwwvxxvwxxwevwwwxwgwwwwwxwwwwvwwffvxggwwvwdtVWwfvwwwxwvvwwgwxwwwgwwwwwwwgxxwwwvwwwgwxuughggwwxhxwwxxxwfgwvwwgwwggxwxwwwxwwxxvwwwwhhvvvwwhfgwvwWwwwxwxfgvhxwhwwxxwgxwwwhxwxxxxwwxeghwwggfwwwgxwwwxwwwxxwxwwwwwxfwxvfvwwwwwwwwwwwwvxxwwwxwxxgwwxwvwxxvwxwhhwwwxwwxevwxggvwwwwvxxwwwwwxxwwwxwwgwwwwwwwwweffgxgxxwxxwxxxxxwwxxwxwwxwwwwwwwwwxgwwxxxwxgwgwwggvwwwxxxxwxvwxxxwwwxxxgxxxwxxwxwwxxxwwwghvwwxwwxxxyxwxxxxwxhxxwxxxxxhhxxwgwgwwxxwwxxxxwwwxwxxwhxxwwxxwxxxxhxxhvxwwwwxxxxwwxwwwxxwxxwhgwxvwxxwwxxgwwxwwxxwwxxwwuvwwvgwwwwwwwwwgwwwvwwwxwwwvvwwwwwwgwwwwvxwvwwxwxgfwgguwwwwvvwgvwwgwwVwwvwwvwwvfWwwwwvwwgduWgXwxwwwxwxxwgwvwgdfwwvwvfvwwvfxwwxvwwwwwwvwxxvwwwxwxxwwwwgwwgwVvvvwvwgxgggvvwfwwwduVfwwwhvvvwwxwxwwhwwxwgxwwvgwggvwwwvwwWgwvhuvgxxxvwvwhvgWwgxhgxwhwxwxwxxwvwwwgwwggwhwwgvwwhwhgvwxxhxvwggvhvxhwxwWwxwwhwwxxxxxwxgvwwwuvgxxfvwggwwxgvvgwxwwxwwxxwwxwwvvfvwfwwwwwwxhwwvwwxxwgxwxwwxwhhwxxxwwxxvwwwxgvvwwwfwxwdfxxgwxxxvwxwxxwwxwxwwfwwvxhwwgwwwwwxwwvwxxvvgvwwxwxxhxxxwwwwfvvwwxwwxwwwgxwwwwwwwxxwxwxxxwxxxxxwwvwwxwwwwxwxwgwwgxxxwwxxwxxwxwwwwwwwwwxvwwwxxxxxxwwxxxxxwxxxhxxxwwhvwxwxwwxxvxhxxwwwxxxxxxxxxxwhwwwwgwwwxwwwvwxxwxxwxxgxxwwxwxxxxxwwxwwxxxxwxwwxwwxwwwxxwxwwwxxxuxwwgxwwhwgvgvfxwhwwgvwwwfwwxfwfggwxwvwwwwxwwxxwgWgwvvWwwwvvWvwufwwwwwwxxgwvwwvfwvwxwvwvvxwxwwxwwxwfvvgegvgvxvwwxwwvwxgfffvwwfvvwwwfwuvwwvwgwwxxwxggfwugwxwfuevwwwwvgvwvxfevwvgvwwggVwgwxwwxvwvwWgXwwXwwwwwgwfwwwwhxwwwwwwxxgwxxxxhwgwwwwgwwwxxxwgfxxxxxwxxxgwwxwwwwwwxxhwhwgwxwxwxgwwguwwvvvvgwvwxxwwwwwwvxxxwwgwhwxwgwxwwwvhxwwxwwwxgggwwxwwwwwxwwgxwxgxwfxfwxxxxwwxwfxxwwxvwvvwwwgwwvvwwxwwwwwwwwgvwwxxvwwwwxwwwwxwwvwxwxvxxwxxxggwwwwwxwwgwxwxwwwwxfgvvxxwwxxwwxWxxvxxwxxxfgwwxwwwwwwvxxxwxxxxxxxwxwwwxxxgvwxwxxwwwyvxxxvwwxyxxxxxxwwxxwwwxxxxxwwhxxwfwvwxwwwgghxewxxwxxxxxwxwxwwwwhwwxwxxwxxwxxxwxxxwwhwewwwwwwwwwgwgwgxwgvxWvwvwwgwwxgwwxwwwwgvgggwfwfxwxgfwxggvgwWwfwwVvgwwgwwfgwwgxwxffgwwxwwwwwwwgVvvwxxwxwgvWxwhwwwwwWgvwfvwgwwgwhwvwwwxwxhvwwvwwwwwxwxgfwwggwwwwwxfwwwwvwwxwvwewwvWgvgwwwwwwwwVfvwgwgwxfwwfvuxwxwwwxvwwvwwwwxwwwwggwgwwggwwxwwwwxxwhwWgwwgxxxwwwxfwgxxwxwxwhwxxxwWwxwwwwxxxwxhwfwxwxxhwxxxwxwwxwwwhxhwxxWxfhWxxwwhhwhxwghwfwgwfwwwgwvxwwxwwxwhxgfwwwwxwxwwwxvwxwwxwxwwwwwwwgwvxxxgwxxwwvxwgwwggfwwwwwwxxwwxwxxwgvwwxevgxwxgwxxwwvvxwwwwvwxwywxxxwxxxxxhwwwfwwwwwxwwwgxwwxxWwxxxvwwxhxxwxxwxxwxxwxxxxwgwvxfvxwwwguwwgwwvxxhwwwwxxxxxxxxhxgwwxxwwwxxwvwwwwxxwwwwwxxxwwwhxwwwwwxvxwxwghxevgxgwwxxWxxwwwwxxxxwwxxwhxxxxxxwxgwxxxxwxxwxxxxhxxxxxxgxxwxwxxhxxxwvwfwxxwxwxxwwxxxxwwxxxxgwxxwxwxxxxxxwwxxhxxxxxwxwxxvwwwgfgwggwxfwvvwwwwwfwwwwwxxwgwxwvvvxxgwgxwwgvwvwwxxxxgwgvgvvvwwefwVwgwwfwvvwwwwxwwwgfwuwfwwwwxwwxwwwvwwwxwhhwgwwwfgewvhwwwgwwvwgwwxxwxxvwwfwwvwwwxwgwxwwwwwwwewuvUwvwvwvxwwwwwwvxvwxwvvwvwwwvgwwwxwxwxwxwevewgwvwfwgwwfvxwwwwvwwgwwwgwvvgwwwwgwxxwgwwwxwwwxxwxxwwfwwVgWwwwgxxwxgwwxxwxxwxxwxfwxxgwxxxxwwxxwxgxhhwxfwggfvwxvxwwwwvwwwxwvxwwhxwxxvwxxxwxxxwxvwwgggwwgwvwwwwwwwxwxwxwxxgxwwwxwxxwwxxwxwwxwxwwwfwwwwuvwvvxwwwgwwwvwgwxxwwxxxxxxhxvwvwwVwwxwxwwwgwwwxxxhwwwwxxwxwwxxxxwwxxxwvgwwvxvwxwxwwwwwwvwxxvwxwwwxwxxwxxxwvwwxxvwxwwxwxxwwwxwxwwwxxwxgwwwggwwwwxwxxxxxwxwxwwhwgwxxwwxxxxwxwwxwwhhwwxwhxwwwgxwwgxxwgwhwwwxwwgwxwwxxwhgwhxwwxxxxxwxvxwwwxwxxxxxwvxwxwwwxwwxwxwxwxxxxxwxxxwwxxxwwwvwxwwxwwxxwwxgxwwwwwxxwxxugwvwwwfxxvwuwgwwwwwwfwwgvwwggwfxvwwwgffuwgxgvwwxwVwwfgfvgwvxeeWgggvwwwgwfvxwwuwvvfwSeFgwwwgvwegvgwvgwvxhwvfvwgffvvgUuvwvwwwwxuvgwvvwxwwwxwgwwwwwwwwwwvwxwwwwwxxwwvwvSeFgvvvwvvvwevfwfuwvwwwwvgwwvwvwwwwwfwwwwwvxwwwvwxwvwwwuwxwxwwwhgwwwgwwggvwwwhwfvgxxvggfwwwvwwwgwxxdvVwwwwwvxxxhxgwvwwWgwwwwwgwWwgwHgwwwxvwuwgwvwwxxxwgwgwxwwwgwhgvwwwwvgwwwwwxwxxdvVwwvwgwwwwwwvwwwwwxxxxwvwxwwxxwxwwwuwgwxwvgwwwwxwhwvxhxvwwwxxwWwwvxwwxwvxwwhxwxwwwwwwwwwguvwwwwgvwwwwwwxhUuvwwwwwxxwvwxwwwwwwgvuWgvxwxxwgwwuxwwwxvvvwwwxwwxxxxgwxwxxwwxwhgwwvvxwwvwgwwgwwgwwxxwwwxxgwwwxwxwfvhxwwxxwxgwvwgwwwxwwwwwwxwvwwxwwwhwwxwwxwwvwwwxxwwwwxxwwvxgwwwgwwxwfvgwxwxhwvxxxxwxvxxwwxwxwWwvwxxwxxxwggwwwxwgwxxxvwwwhhwwwxxwwwwxwwwxxxwgwxxwxWxfwwwwwwwxxxwxxWwxxxxwwxhwxxxwwxxxxgxwxwwwxwhwxxvwxwxwxwxwxwhwxgvwvxwvwxhfwwxwxwwfwwgwwwwwwwgxghwwgwwwwwwggxgwwghwwvxwwwgwgwvhwvwxxxxgwwwgffwfwfwfwvggfgwwggwfwwxwwguwfwgvgxwvvvwwfvgwxgwwfvwwwwffgwvwfwgfwvwvxvfggvwvvwwvgevwwwwwwhgvwwvgwxxxxwewgFwegvvvuwVwFvewxgfwuwwwwvwfwtwwwwwxwwuwdwgwwwgwhvvgvxwxwggwwgwwwgfwgxggwwvwxvgwxwwxwxwwgvwwwwxwwxxxwxxggwwwwxfwgwggwxwhxwwhxhwvwwwwwxxxwhwwfwwgxhhxggwwxgxfhwWwvwvwvgwVvfgwwxggxwwwwwuwwxwwxwxuwwwxxxwwvxwwfwgwwwwgfwwvfvggwgxxxhguwvwgwwvgwfvwwxwwxxggwghwwwwxwfwxwwgxwwxwwvxwwgxwwxwwxxwwwwwvxvfwhxgwxxwwhwgwgwvvggwxwxvvxwgwwwxxwwxvwwwxhwwwgxwwWvwvxgggvwxfwwvwgxxwwwxxgxgfvfwgwwhwhxxxwwxwwfwwxvxvxwxvxfgwxvwxxwwwxxxwwgwwghwwwwhggwwxxwwhwwhxwhwxwgvxxxgxxwxwxxxxxwxwgxxwgxhvvwgwxhhxwwxwyxvwxhvwxhvxxugxwhxxxwxgwghxwwwxwwxwxwxwxxwxwxwwwwxxxxwxwxwwxgxwxwxxxwwxwxxwgxxwwxhxwxhwxxvwwwwxwwwxgfgwwwwwvwwgefvwwwwwwgvfwxxgwgufwgwwgwxxxwgwwvfevguggvwwhfvwwgvgegwxvxgWefvuweugvvwwvfvwhwgwxxwfhgwwwgegvgvVuvvgfVvgwfgvwwgwvwdufwwwfuvvggwwxxxwxwgVfvevTvwvvgWufwuvgufVwgwvvgFUdVuvwvwvxwfWwgwwwwuxguwgwvwvwWvgwwwwhvfxxvwvwxxxgvfvxgwgwvxxxwvwvxxwwwwxxxwvwwxxxwgfwwxvwwwxwwhxwhwxwwgfwXvwWxxwwwwwxwwwhggwghgxwwgvfvfvwVvvwhwwgwewwwwwvwwwwxwfevfwgwxuxwxewwwVxwgvxxwwvwhvvgwwwwvxWxwgvhgUwvwVgUwwWwgvwgwxwxgwgwwxwvvvxwVwwwvxxwgwvgwwgwfuwvxxwwwxVvwxxfuwxhwxxxxhfxwwvgxwwxvwvwwwwwvxwxwwvwxwwgxxxxwxhxxwwwwwWwwwxwxwgvwwgxgxwxggxwwhxwxwwxxhwwwwxgvvwxxwwwwwwxwwwwwhwxxvwwfgvvvwwgwxxwvgwwwwwwVvwxhwwxxxxwxxxwxgwgvhwwgwxxvxwxxxxhwxwxxxxwwvxxWgwwxwxhhgwxwgfhxwwwxxwwvxhxxxgwvxxwwxxwxxwwwxwwxxxwwwwxwwvwwxwhgwwxWfxxwxwwwwwvwwxvfwxgwwwwvwwxwxwxvfgwwwvvxwxwxxgvwwwfwwfvwwxffwwvvfwwxxwwgfgfvwxgxwwxwwwfwwwfwxvwxwwwxwwwvgfgvvvwgwwxwwwwwwvwwxwwxxwvvfwwvgwwxgwwgwvggxwxwxvwvwwwwxwxxwvxwwwvwxwgwxxxxgwxxwggxxwwxxwwwwxvwwxxgwgxxwwhwwxxxfgwwwxxhwxfggwxwwwxhxxxfgvwwfxhxxxxwvggxhgxxxwwgxwxwwwwvwxwxxwwvwxwhwxxxxxxggwwwwgxwgvxgwhggxxwvxwxwxxxxgwxxwwxxxxxxwwwgggwwwxwwwxxxxgwwxwxywwwgxxxwwxwwvhxxwwxxxxwvwwwxwwxxxwwxwxgxwxwwxxxxwwxxxxwvwgwxwwwvwxxwwxxwxwwwwwxwwwwgxwwxwvwwxvxwxwxxwxxwxwwxxwwxwwwxwwxwwxxxwxxxhgwgxxwvwxwghwgwwwVvfvfwwgggvggVwvfgwwwggfwwwfvwVfgwwwvwvwwwwgwwwWvGgggWvgffwweVwwfvxfvfwwwgGwWgVwvwgwvwwwwVgvwgvwWwgwwxwwwwxgfwwwwwvwwwgegvgvwwvwxwwwwgwVwvvgxxvxwguwxwxwvxwwwwwwgvwgwvwvwwgwfvvxwgwfvwwwwvfgvwgvwwvfxfwwwvwwgwwwwwwxwvvwvxwgwwgwgvgvwwWvGwwwxwgfggxwwWgggwfwvwfwxWgfwwgwgwxwxwwwwwgxxwwwghwgwwxgwhxwwwxgxwxGXhgggwwggwxwgxwhwwgfgWwGwVwgwvXgwgwgwvwxwgwwgvgfwxxwwwWvxxxwwxfxxwvwxwwwxwhwwwwwwxwwgwwxwxxwwwgWhWwwvwxwxwxwxwxxwwwxgwhwgxvvwwxxwgwwxxgwxgfgwwvgwxxwxfwfvwwgwxuwxxvwwxwwxwwgwwwvwwxgxuwwwxwxWwxwxxwfwwwxxgvxxwxwwxxwwgwxxxhhwwgwxwvvvwxxwwwwwwvxwwxxxwwxgwxwgxwwwwwxwxwwwwwvwwxvwwxwwxxxwxxxxgwwxwwwgwvwfwxwwwvvXwxxxwfvwwvxxwxxxhgxwxxxwxgvwwvwgxxxxwxgxhxgxhxxxxhhxwwxxwwwwhwwxgwWwxevgvwxwxxwwxwwxwwxgxxwxgwxxwxwxgwywwxxxxxwxwxwxxhwwwwxwwxwhhwwvwhuwwwvwwwwxvgwwxwwwxxxhwwwggwuwwwwxwwwvwgWwwxWgwwxwVwwwwwwwhggwwwwwwwxwfffvwvffwwwgxvwwggvgwwxwxxxgwwvwfwxxxwvvxuwvwwwvgvwwwvwwwgwvxwxwxwfvfvvufxwvvvgvgvwwvfgwwwwwwwwwxxxvgvwxhwwxvxwgwWxxwxxwwvewwwwhxxxfwxxwwwggvwwwwwwgwxwxwwxxxwxxxwyyxxfWWgwwwwwxxwwgxwxxwxwwwwwwwwvxwwvwwxuxxwwwwwxwhwwxwwwxxewwwgwuvwwwwvxwwwxxvwwhwvwwwxxwwxxwwwxwwwxwwwwvxgfwwxwxwxxxwwwwwwwwxwxgwxxwxgxxwxxxhxxwvwwwgxxxgwwwxwwwxgxxxwxwgwwvxxgwxwxxxxxxwxxxwxwwwgwwxxxwxvxxwwwwwwxxxxxxxwxxvwwwxvwxxxxwwxxwxhxwxwxxxvxgwwxwvxxvxhwxxxwwwhxwxxwwwxxxwxxxxxhxxvxhxuwwvfxwwwgvgwwvxwguxwggwwwwwwguwxwvggwwgfwvvwvwvwwvwvwffvffxvfewuxwhvvwwgvgxfwxwwxgwVvvvvwwgvvwwWggwxgwvwgvvgwwwwgwgwghvwwwvwfgfvwwgffwxwwvvwwvgvwwfwhwvhewvhvwwwwwwwfwvvvvwewvvwwxwvvwfwefvwwwxgwvwwwvvvvwwvwwvwwvwwwfwxwwwwwvvwvwwwvgwWvvfxgfgfwgwwffwxxxwhwvwwxwwwxwgwhfvxwhwwwwwwxxgwwfgxvwwwwxxWwwhfwwwwwhxxxwwxgxgwxhhwwwwwwghwXxfhwxwwwfwvxwwxxguvxvwwvwxwxwwxwwwgwgggxxwwxvwwwwwwxxwwwwwwxwwwwxxwvgvwxwwgwwxwwwwxxwxhggxxwwvwwwwwxwwwwwgxwwxwggwwwwxwwxwwwwwwxwwwwwxwhfuwhvvwwwxxhwwwwfwvxvwgxwwvwwwgwwxxwwwgxvwgxxxwwwwwxhxwxwwwwxwvvgvwwvvfvuwwxguwxgxwwgvvvxwwxwwwxvwgwwwxxwvxhwvxwwvwwwggwwgwwxwvwwxwvxgxwwwxfxxxxwgwwvxwgwggvwwxxfuvggwwhwxxwwxxgwxwxwxghxxwxxxxxwxxwgwwwhhxwxxxwxxhhxxhhwwxwhwxxwwxxwwwgwxwxwxxxxwwxvgvvwfvxxwwwxgwxxwxwxxxxxwwxwxwxxxxwgxxvwwwwxgxwxwvwwwwwxwwxxwwxwxxwwvwwwwgvgwhfvwxgwgwfvgfwgxwvwXwgwwxvgwwfvvvwVwwwwxxwwgwhvewfgfwgwvwhwVvfwwfgvwwwgWwgwfgvgwwwwxwwwwwvgxwXwwwxxvxxwWvfwggwfvwfwvwwfwfgvwxvgxwvwwwwxvxwwwwxwwxvwwvWgwfwvxfwwwwwwwgwvggwwwwwwfwfwwxwfxvwwwvwwwwhwwwwwwvvwwgggwVvgwgwgwvwwwgwxgVgwwhwfhhwvwwwWwwwxxwwwhwggwxxxgwwgwwwxwfxwghwvgwwwwwxghxwwgxXgewxgvxwwXxxxxgxwwghXvwxwwhwgggwwwfgwxwfwvXwVwwfwgwwwwxwwwwxwwwwwwwwwwwgwxxwvwwxvwvxhWfwwwwffwwwwgxxxwvvxxxgwxgwxgwhwvwwwgwwgwgwwvwwwxxhwwwwxwxwwwxxwxxxxvgvfvwwwwwwhxhvwhxwwwxxxxwxxxxhwxhgwwxxgxwxgwwxhwgxxwxxxwwxwfwwwwwwxxxvwwwwwxwxwwwwwvxwxxxwvxxghwxxwwgwxxwwxwwwgwxxwwwwxfvwxxVgwwxwwhxxxxhgwwxxwwxhxVfwxxwgxxxxwxwwxxhhvxxhwxwgxxxxwxxxgvgxxwxwgwwxvvwgwwxwwwxvxxxhwxxwVxxxwxxwxfwxxgwxwvfxxxxxgwxwwxxwvxxwxwgwxxdUUvVuugVvewefevfvvwvwvvUfvvevvwgVvvvwwxwxfwwwwwwfvvtVfvuUTfUvvgvwwwvwgvwvwvfgvvfuwvwxwwwwfwwxwwwwwwwUvdweUfvfgVvvgvvefVwwwwwvwwvfgwgvwwwwwwgwxxxwwxwvEUfTuevvvgVvwwfvgwwwgwwwvwwgwxvwwwwwvwxwfuvtVvveEevfvfxuvwvwxVvfxvgwvfvvgvwwvwwxwwvxwwxwwwxwugfgwvxgvuwwVewwxwwwgwwwwxwwxwxvwwxxxwgvwuUffvwwwxwwwevvwwvgwwvwwwwwwxwxxxwxwwgwxwwgvvwffwwgwxwxwwwwwvwxwwxwwwxwxxxxwwwwvxhwgEvuwfeevegVwfvvvvggwwwwwwgwgffggwxwwwxgwwxxgwufvegwwwvwwevwwvvxwvwwvwwxwwwxwhwwgxwuwfxvufwwwwwwwwwwwwxxgwwvwxwxwxwwxxxggwxvwxfwgwxwwwwvxgwxgxxxwxwwwxvxgwwwxwvEevTuvvwuVggVfwwxgwwfwvwvgwwvwwwhwwvxwwwwgwwwgvuxgvwvwwwvgwvvwwxxwxwwxwxwxwwxxwwxhwgwfwuvwwxfxxvwwwwwwwwwwwxwxxxwwxxvgxxxwvvwgwwvxwwwwwwxhxgwxxxxxwxxwhwgxxwvfeevvevuwffvwwvvfexfgvevvwwwwwvwwfwuwfwwwwgvwxvwwwewfvvwvvwwvwwwwwwuvvvxvwvvwvwggxwwwwgwwwwxwwwwxxgvwwwfvvfffwwgwvgfvvwvfvwxwwxwwwwwxwxvwwwwxwvvvwvvwvwwwgvvuwvxwvxwwwxwwvgwvxwxwwxxxxfwwwvgvefvvwvwfgwwwwfvwwwwwwgwwgvvvxfwwwwwvwvgwwwxwwvwxwxvwwvwxxwxwwvvwvWvvwxxvxwwxgwwhxxwxwgwfWWwhvwwxhwxfhwwvxxwwwwxxxxxwxxxxvgwwxvxwwxvxxwxwgwwhwxwwxxxxxwvvvwfvvvfvwwwvfVfvfvvvvvwvwwxgwvwvwwwvvxxwwvxvwwxvfvwgvgwvwwwgvwwwwwwvwvwwwwwxwxwxwwwwgwwffvvwvwvvggwwgWwvvvwwwwwwwwxxxwwgxwxxxwxxgwwwwwgwwwwwwwxxvwwxwxxvwwxxxxxwxfevvwwfvwwxwxgvvwwgvwwwwwxwwxgxwgvgxwxwxwgxxwwwxwuwwxwvwwwwwxxvwwwwxxwgwwvxxwwwwxvwxxhwvwwwwwvxxwggwwwwwgxxwvxxxxxwxxxwwwwwwxxwwwwxvgyvxxwwxxxxwxxxxeffwvvgwEvexvfvvVvvwwvxgeffwvwfwvwfgwvwxwwxvffwvxxvuwxVvwwVVegcgfwUvvgfFdvvhhefgwwvwvwgfvvwvuwwwgvvxxwwvwxwFvtwgWgvfufwwffgfwgwwvvuwwvvggwwwxxwwxwxwxxwhfVewgevxeuevwvwWvwWWgwgwvgwwwxwvwwwwwwwxwwwgwwgxvxwxwxwfvvwggvvdgfwfvvxV6ewvwhxevVgwwvwvgwwwwvfxxWvgwwxwuvwfxwvwwwwwxfvuwvwvgfhwxwWtvwgwwwgwxwxwwxwgwxwwwxxggvwwWuffwwwwwgvwwwgwvgwwggwgwgxwxvvwwxwwxxvwxwwxwwxwwwgwwwwwgwxwwxwwwvgfwxwvwxwwwwxxwwwxwggwwxwxwwvw6vuwwfVvfvwvwvVfgfwwfvfvvgfwgwwwwwwwxxwwwwwxwwwwxxxxtVvwfffhvwwwwwfwwwwxgwfwvwwwvvwxgwwwwwxwwwwxwxwwwxvfwgvwwxvvwvuwgfwwwwwfwwxwwxxgwxxwgwhwgWwxwxxwxvvxwwwwwvgwwwxwhwhwxwwwgwxwxwxwwvwxgwwwxwxwveVUwvvweuvwgwhffGfwwwwvfwwxgwwxxwwgxwgxXwwwwwwwxfvvwwwwvxwwxwwwwwefxxwwwxwwwxhxgxwwwxxwwxwwwwwwwwwwvwwwxfwwwwxvgwhhwxxwgwwxwwgwwwfwxwhwxxwgwvwxxxxwwwvwwwwvxwhhwxvwhxwwwwxwwvwxxxwxxwwwwwwsgfwvfwvffgwfevvvfwvvgfevvwvxvvvffevvxwwfevvvwwxwvfffvvvwfffvvvvvwwwgwvvwwvwfffvvvvwwwuwwwwvvvwwwxwffvvgfSUvwwxvwxxgSUvwwvwwwvxwwwwvvwwvxwwwxwvgwxxvwwxxgevfvvvwvwvwwwvvvwwwgvfwwwvwgvwvvxwwxvwwxwxwwwwvwwwffgfvgwfffvgwwvfwwgwwfvwwvvwwfffvfvwwwxwffwwvwuvxwxggwwwwwxwwfwvwwewwwxwvhwuwwxwwfgvvwwuwwxhwwwuvwwhgwwvwxgffevvfwwgwxwwfwwwgwwgwwvwgwwwwxxwxvgwxvgwgxwxfvvxuwgwwwwxuwwwgxwwfwgxwvwwxxxxwwhwwwwwwxwwfvfwgSUvwwwwgfSUvwwvvwgxwwwvwwvwxvwwwwvxwwwwxxfevvvwwvwwvwvwwvwwwvgwvvwvwwwxwvvwvwwwwwwwvgwwgwggwwwxwwwgwwwgvwwfxxgwwwxffwwgxwxwxwxxwgwxxxwwwwwwgwxxwxwvxwwgwvwwgwwwxvwwwgwwwxwgevffvwgvwxfvwwwwwgfwwvxwgvwvvvwwxwvwwwwvwgwwwwwxxwfvwxuwwwxwwvxuwwwvwvwwwwwwxvwwwwxwwwwvxxwvxwxwwvwwvwwwwxwxwwvxgwgvwvxxwxwwxxwvwwhgwvwxxxwwwfvwwwwxxwwwgxwxwxxgfxvwwxwwxuevvxvvwwfuvvwgwfUvggvwwwwvgvxwxugvwwwwffgwxwxvvvwwgevgvwwufuvgwxwvuvwwfwvgvgwwgvwgvvwwwwgwwxfwwwwwwgWvvwfUewwvwfxfwwxgfvwxwwwvwwwwwwgvxvxwvvvwvwvxwwvwwwwVwxwwwvwwwvwxwvwwwwxxwwwwggvwgwwwvVfvwxvvwwwggvwwgwxVvwggvxvgwwwxxwwvwwwwwhwfwwvwxwvwxxgwwwxwxwxwwxxxwgvxWxwhwwxgvwwwvgwwwwgvvvwwxvwwwxwxgwgxxwWwwhwvwwxvwwwxhwggvfwfwxxwwxxxxxwwwwwwxwwvwwwgfvuwxeVfuxwwwwvwuwwxfVvwxwwwxwwxwwwwwwwxvwxwwwwwvwwvxwvwgxxwwxwwwwwxxgvwWwwxwfeuwwvwwvwgwvxveVgwgwxwwvwxhwvvwwxwwggvxxxwwwwwwwxxwwxxwwwwwgwwwvxwwwwwwwxwvwvwvxwwxxxggvwwwxgwwwwwwgvwhvwwwhxvwwwgwwxwxwwvwwxwxwxwwwwwvwvwwwwxwwxxxgwvwwxwwxgwwxhwwvfwgxwxxwwwvwhxwxxgwwxxwxwxgwxxxwxwwhxxwxdVefvvwfwvwvdvfvvfuVvgedvufwvwvuvwvwvwwWwwvwvggvfvvwvvwwvhwwfuvwefewwugufuwxuWvffvuvgwugwgwgvffUvvwfvwxvwwVvuwvwvggwwwwgeuwwfvvvgfvuewvfVvvfwwgeevfwggvwwvvwwwwwwwwvwgggwwwfxvwgwwfvwggvgvvvvwwwwwvwwwvvVhvwwgwwwvgwggvwvwwwxxgwgfwgwvwxxvuwfufvggegvvvwxvgfgWvvvWvvgwgwwufgeuvwfvwxwwwGgvgvgwgwWwwwwxvwwgxxwwwwwxxfwwgwwwwxxxwfwfwgwvgvvwwhwgwwwwwvwwwwwwgwwwfwgwwwewwwwwxfvwwvwVggwwwwgwgwwggwfwgvhwwwwgwgwgwxhwwwwwvvwwgwwwwwfgwhgwgggwgwwxvhxwwwggwwwwwhwgwxgxwwwfvwwvwvfgfvvdfvuVvufwgvvdvvwgwgvwwuwvwgwwwggwvvvwwwwgwwvgwvwwuvvxvuggvwvwfwvvwgwwwxxgwxvvuwwvvvvwvwgwwwwwwwwgwwwwxwwwgwxwvwwgvwvwwwwvvwwXxvwwwhxgwwwvwxwxxxvgwggxwxgwwxxwxwwwwwwwwwgwxwwWvhWgfwhwwwwvwxxwwgwgwxgxwxxxxwgvwwfwwgwwwewwwxfwwwgfwWvwwwwgxgwgvwggxvwwwwgwggggvWwgwwwwwghwwwwvxvvwwgwgvxvgwvwguvvxwggxwfwwwwhwwxwhwwxwxxwxwxvwwwxwwWvgWxfwvgwwwwgwxwwxwxhwxvwwwwwgxxgxwwxxwwxxxxwxgwwxxxwxwxwwwwwxgwwgwxxwxxdUUvfvvwfuvwvwwUvewvgwgfuvwwwxVvugfeewwwwveVfvfvvwefvuvwffvwgwwdfuwwwfwvxwxweUdvfugvwwwwwxfvgwvwxxxwVutwfwfwffwwfUfvgwwwwvwwxugVvwwwxwxffvwwvwxwxfUdwvvuvwvwxxeduwxwvwwwhwwwewgWvgwvwgwwwvuwwvwvxffvvwwfgvvwvvxdfewvwwVvvxxwweEUggwvxvxwxxfuewvgwwwwwwwwugfwxwwwwgvwwwxwwwxxVwvwwwvxvxxwwVewhwwwgvxefvvuvwwwxguvwgwwxxwwvvwxxxxxxvwwvwwxwVwwwwvwwxwwxgvwxxwwvgwxwvwxxwwgwxxwxxgvFuugufVvvvfwwxeeevgwvwvwxxfgVvwgwxwxxwxxgfwvwwwwxxhwweeefuvwvwwxxwwvvwvgwwwwwwxwxxwwwvwxwwggwvwwwwwwwxevwgwwvwxhwwwwxxwxxggwwwxwxxxxxewwhvwwwxxwwuvwwwwwxwwwhgwwwwwxwwxxfUTgfvvwxUdugwvwwhxvfWgwwwhwwgwwwwwxvwwxxwwfwwwwwwwwwwffwwxwwxwwwwwvwwxxwxxwxwxwhvvwxwxvvwgvwvwxwwwwxwxxwxxxxwwwwwxwvvwwwwwxwgvwxwwxxxwgvwxxwxxxhvxueevfuxetegugffuwvgvvtefvgwwwfuuwuwuwwwVutwuwwwvwwvvvwfuvuuwuetueuwwvvvueuwwwwffvvwgwwugvevevdvewfvgvvuvwwvwwvvuwwwweevvugwvwfwfvvwuvvwfuvwfwxwvuwvwvvwwgwgwvwwwwxxvvvfwfwfvwwwwgffwvwgvwwwvwxvvwvvuvwwwgffwwwwwwxxfvxvVewffvwwguevvwwwvvuuwwvwuwwfvvweuvwwwwwvfvvgvvwvgvwgwwwvgvwwhwgwwgwwwwwwvwwwxwwwvwwxwxwwwxvwgwwwwxwvvfgxgwgwwwgvwuwwvvfwxgwxgwgxvgwwwwwwxwuvxwwwwxwxxwwwwxxxxvvxxwxgwwxwgfwgxwwwwxwwwvwwxwxwxxxhwvwxwwwwwxxxxfduvtwvuwvwfuuwtfwvvwwuufxvvwfwwwxgwwxgwwxxxwtgwuvvuvvxwwwwfvvxxgwwwvwxvwxvwwwwxwxxwwxuwwfvehwxwgwwwwwvvvwwwxwvvxwxwwvwgfwvwxxxxwwwxwefvwvvwvwwwwwwwwvwwwwvvwgwggxwwxxwxwwvwgfwvwfuxwwwuuvuwvwfwgwwwwxwwwwgvwxwwggfwvvwwwwvxxxwvwvxwwwvwwxwxwvuwxxwwwwwwwwwwwwxwwwwwwwxwwxxxwfvwgwwxwxxxwvwvvwwwxwwwwxwwwwwwwfgxgwwwxxwwxwxwwxxxwxxxwwwgvxwwxwxgxwxwwhwwxxxwwwwuwwwwWvuwwfuwwxwwwwfvvwwwvwwwgwwvvvvvuvwwwwxxwxvwwwxwwwwwfwWfffwvwvgfwwwxWvvwgwvxwwfxgwwvvgVwwwwwxgxwhwvwwwwfvggwvwwvwxxxuvvwwhxwwwvwwwvgwwgxwwwxwwxwgvwxwxvwwwvvwwgwvwwgxxuvvfWwwwwxxwwvwvwxhxwwwxvgwwwwwwxgfevwwxvWgxwxwWfvxwwwvfxwwugWgxwgwwwwwWvvwxxWhwwwwxwwxwwwwwwwxxgwwwxwhWgxxxxxxxwxwgxwhwwwwwhwwvvwwwwxwwwwwxguvvxgwvwvxxwwwwwwxxxxxwwxxgwwwxxwwwwgVwhXwfvwxxwxxxwwgxxhwwwhwwwvufvvwvgwwwvvwgwwufvfwxhfvwwwxgwvwwwvwwxxwwwgwvfwwwwwgvwgxgwgwwxuvwxgwgvwwxxxggxxxxxhwwwwwuvwwgwwxxvwxhwxwvxwxwvgxwxwxxxxxxxxxwfvwwwwwxxwxxwwwwgvxwxxxwvuwxhvggwgwxWgwwwxhufwwwgggxwxxgwwxwwxghgxwghwwwwhgxwxhhwwwhwgwggxhfwfgvxwxxwxxxxwwwxwwuwwwxgwxxhxwfwwvwxwxxxxxxwwxxxgxwxhwwwwxwxxxeevwefvwgvwugvvxwwwwwwwwwvVeugvwvvvfwwgwgwxwxwwgwffewgvwvvewwgvwwvwvvgwvvvwwwvxvwvwwwwwxwwgwUfevVfuwwwwgwwwxwwwxxwwgfvvWwwgwwwhwxwwwwwwwwxxgvwwgwvvvfwvwwwvwwwgwgxxwvwwwwwwwgxwwxwxxxwhxfvwweVvwvgvfwvwwWfwvwgwvwwwgvgvevwwvwwwwxgwwvwwwwxwgwwwgxwwwwgwwwwxwxwhugwwwvwwxwxxwwhwfxhwxwxwwwfwwwwwgvxvwwwvwwxwwwwfxxxwwxwxxfwxxxwxwwwwwwwwwgwvwwxwvgxwxwxwxxwwwwwxwxxxhwxwvvwfUegfvwwgwwwwwgwxwvwWguggvgwwwwhwvvwwxwwwwxxxwvwfgvwwwwwuwwxwwwgwwvwvvwwwwwwxwxwwxwvUvevgVghvwgwfwgwwwwvwxxvwgwgvxwwwwxgwxxwxxxxwwvxvvvgxwwxwxxxwhxxwwxwxxxwgwxvfwwfwgwwwwfwfwgwwXwwxwwxgwxwwxvwxwxwxwxwxwfwgwfwvwxwwwwwwwxwxxwgvxxxxwwxwxxxwxxxwwwwwxgwxwwwwwwxwxwwwvwxwwhwxwwxxxxwwxwwwxwwwxwxwxxxwxxxhxxwxrvwfvwwvwvwfvvvvvwwwxwfgwvgvwwwfwuWwwffvgwwwwxwfvwwwWUwvfvfvuvwgfvwfvvvwwxvwwfvuvwwwwwfwvwwvwvvgxuvwvwvfvWDduwfwvwwgwvwwvwwvxgTewwgwwwvvwxvwwxwxfvvfvuvuwfwwuwxgvvwvvvwwgwwwwvwwwwxwwwvwwwvwwxwgfxxvvvwwgfvwwgvvwwWUwvvwVfvwvgwxvfvfvwwvxwwvVfvwwwwvuxxVwvwwxvwgwvwvvvwvvwwxWvwwwwwgwvwvvwxwwwxvvvfwwwwhgwwgVuwffvvwvwwwgVfvwvwwvwxxxwwxwwwxxgwvxwwxwwwwwwxgwvvwwxvxwwwwvgwxwwwxxwgvwwxwxwxwwwvwwxxgvwwvwwgTevwwvfvgwvwwwxvWDdvwwwwwwvwguwgfxwwxxwxwffvuvwwwxfvwvvwxwwwvwwwvwxwwwwwwgxgvwxwuWwwwwgwwwwwwvxwwwwxxwxwxwwwvwxfgxxwwvxwxwwxxwxwwwwwvwwwwvwxvvgwvxwxwwwwwxxwxwwgghwxwfxwxffvfwvwvvwxvVfvwvfwwwwxwwguwgwgwvxwwgghuwwwwwwwvwwhxgwwwvwvwwxwwwwwwwwvwfxxxwwwxwwwwwgwxwwxvwwwgfvuxxhgwwwwwwwxxwwxgvwxxwwfwvwwwxxwwwwvgxuxwxxxVwvgVuxxwxxxxwxhxwwfgwwFwwwvgxvgfwwwxwwwgxggwwwggwfgfwgwvvgwfgvfwhwfwxgvwwfgUfgvfvvgwwgwfWWwwwwwwhwwgwgwxvxwgwwwxwwwxhwwwfgwvvgwggwfvgwwfwwwgggwwgwxhggwwwwwgwwxgxgxxwwxxxggfwvwgwfwffvwwvxxxgwwxxwgxvwwxvvwxxwvgwxwgxwwxxgfgfvgwwfgvxwgWvgGggvwwwggwxwwwhgxwhvwxwgwwwwxhxfwwfwwhwwwwwwwxghwgfwwxwxwwwxgxwxxwwwwxwxxxwwgxwwgwwvwwwwvvvwvvwgwwwwhxwxwwwhxwwwvxwxxgxwxxwwgwxgwwggvwxwxwxvwxxvwwhxwxwwxwgwwwvvvwfwfvfwwvwgwvwwvwhvgxgwvfwwwwvwwwhwwxxxgxxvwwvvvwwwwvuggwwxxwwxxwwwwvwwwwxwxgwwwxxwwwxxwxwvwwvvvwwxxvgwwgwwxwwxwvfxxwxgwwxxgxxwfgwgvvwwxxwxgxxxxwwwwxxwxwxxfgwfvwwgvgwvWwwwvwghvxwwxhxWxwwxwxvwwxwvwgwxwwxxwwwwwwwwwxwxwwvwgwvwwugwxwwxvwxwwxxwwxxxgwhwwxxwwvfwhxwxxxwwwxwgwwxxvxxxwxwwxxwwxxwhxxwwwhwwfxgxwwxwwxwwxxwwwxxwxwxwxxvVfggwwwwxwffuwVfxgwwwwwVuvwvgvvwwvwffvfuvwWvwgwwvvwwvfwgwvwwvgvwwwgvwvwefvvvvwgwxvwwgvwwwwwwwwfvwwffevwgwgwvfwffwgvxwxxffvfvwwgwvwwgwwwwwwwxfevfwvwwwxwwvwwgvwxwgxvvvvwwwwwvgwwwxwxwwwxwgxwvxwvwwvgwwwwWgwwwwgvwwwwxffwegwwwvhwwwwfwwwvxwwwwxxgwgwwwwvvwwxwwxwwguxxxgwfgvwwvwgvvwgxwwwvfvwvwwgwxwxwwwgwwwwwwxwwxgwvwvgwwxwwwwgvwxhwxwwuwwwwwxwwxgwwxwwxwgwwwwwwwwvgxwwxxwgxwwvhwwvwwfvwwwgfvwgfwvwxvffvvvwxgwwwwwgwvwwxxwwwvwwwwwxwwwvwvwwwvxvxxhhwwxxvfvgwxwwxwxgvwwvxxxwvvggvvwwxwwgwwwgwwwxxvwwwwwxxxxwwxxwwxxxwwgwwwwxxgwwxffwVvwwwgvwgwxgwwwxwgvwwgwwwhxxxwwgwxwxhxxxwvfvxwwwvxwwxxvxwwxgwwwxwwwxxxwwwwwxwxwwxxgxwwwwvwwxxxxwxxwwxxwwwxxwwwxwwwwgxhwxxxxwwfwwvwxwVtwvwfvfvugvfuvgwvwwVgfgwwfwuwVgvetugwvwwwwvwwwwuwvwwuvwwgwvwwwvfgWuffwwfvvvwwfwWwwwWwgfwwgvgwwxvwvwWVuxgwwvVvvvdugfvwwgvgwwwvvwwxhvwgvgwwwxwwwwwwfwwwwwwvgwgwvvgwwxxxggwvwgwwwwwwwxwwwwxwxvwxgffxvvvvvwxxfwwwwwwwvwwggvvwfvwffwgwwwwvwgwgggwvggvwwvwwwgwvwwwgwwxvxggxwwfWwwfgxgwfwwwgxwxgvwvwwhgwxwxgxggvvwwgxgvvwggvfwvvxwgwgwxgwwwwxgvwxwxgxVwwwwxgwvwwwwwwxxvwwxgxgxwwwwwwwwxvvwgxwhxwgwxwvgVtvwwwwfweuvwwwxwwwwvwwwgxwgvwwwwxwhxwwwwwvvxwwvwwvuwggeuwvwwvwwwwwwwwxwvxxxwhgxwxxwvwvxwwhwwwwwwwwvwvwvwwwwvwwvxwxxwwxgwxxxxwwvvfwxxwgxwwvwwxwxxxvwxgxwxxwwxwwwwvwhvwwwwwvwwgwwwwgxxvvwwwxwwwwwvwwxwhwvxwxxwwxvwxxxvwxwwwxvwxxwwxwwwwwxwwwxxwxwhwwvwxxwwwgwxwxxwwwhwxgxwwxxxwxwwxgxwxwxxhxwxwwwwwwwwwgvxxxwvvwwvwwgvxfvwvwwgwwwwwUewgwvwgwwwgfwvwweuvxvgwwgwwfwxvwvwwwwwwwwwvwwgvvwwwwwwgvwwwwggwwwfwvgvwwvwwwwwwgwxwhvwgxggwxgwfUfvvwgwwwwwwgxwwwgvwwwxfewxwwwwxwwwwxwwgwvwwwfxxwwwxwwxwwwwhgwxwwwwwxwwxhxwwwxwwfwwwwwwwgwwwwwwwgwxwwwwfvgwxgwwwfwgxgxwwwxwwwwwwwggfwwwwxxwwwwvwxwwwhxwxwwwgwwwgxgxxwwvwwvwgfhwxwwhhgwwxwxvwxwwwwwwwfvxwwwwwwwxxvxxxwxxgwxxfhwwvxgxwwxxxwxwxwgxwwwxwxwhhgwgxggwgxwxxxwggwwgvwweewvwwgwwwwwwfwvwwvvwwwweewxxwwwgwxwwxwwwwwvgwwvwwwxwwhvxxxwwwwvwxhwvxvvwwgwxwwwhwwwwxwwwvwwwwwxwwwwwwwxwxwwxxwwwwxwxxxxwxxwwwxwwwwxwwxwxgwgwwxwwxxwxxxwwwwwfwvwvwvwxgwwxwvxxgwvwwvgxxwxxxgxxwxwwwxgwwvgxwwxxxwwwxgwwvwwxwxxxwwwwvwhhwwgwwxwwwwwwwwwxwwxgxggxxwxxwwxxwxxxwwxwwxwwvxxwxwwwxxwxwgwwxxeUfwUvvxUvvwuwwUvxfgvwugvwwwTufgdefwuwwwfvwwegfwwvwEvuwvVvfveevuwwffwvvVewwvwwfvvwwfwvvfvVVwweuvwvgvwwwgwgwwwwwwwwvwTfvvdvvvwwwwdgwvvwwwwxxugwwewgwxwvwxxUvvwwfwxwxfwgeUwwwwwwwfwwgvvwwVwgvwwwwUvxvwgvwxxwwwwwwwwwggfxxwUvwwuUvugvevwweEvwwwwVevgwvwwuUvwffvvVtvgvVwwfgwwwwvwfvgvwwwxvgvwgwwxwwwxgfwgxwgvwwwxvxwvgwwwgwgwwwwvwgwvwwwwxwwwxwwgvwtwvfvwvvwwxfuwxwvwwwxfwwwfwxwxwxwwwwvwwwwwwgwwwVwwwwwwwwwxxwwxwxwwxvwwwwxxxwwxwwwwwxxxxxxwxeevvufwwugwvvxuwvevvwfwwwvwvggwvvxwwgvwfvvwgwwwxxuwwwwfewwwwwvxvgwwwxvvxwwwwwxwxxwvxwwxwwuvxwggwwfwwwwVfgvgxwxwxwgwwwgvwwxwwwgwwxvgvvxxwfvfgwwxxxwwwvwwwwwwwwwxxwwxwgwggxxxwwwxxhwwvfwvfvvvfwwwwgvvgwgvwVewwgxfvvxwgwwwwwwwwwwgxxgfhfxxgwxwgfwvwwvwwxxxxwvwxxxwwwxwvwwwwxxxwwwgwwfuvwgwwwgfwgwwxfwxwwxwgwxwwwfgxxxwwwxwwwwwwwwxwwwwxxgvwxwxwwxwxwwwgxxwxwxxwwxxwwvxvggwvwwwVgvfvvfvfgfTufwvwwegvwwwvwwwFuevfwWvvwgwgwxvvwwfvwvwfhffvwwwwvvfvwvggfwvwwwwwwwfwwwvwwggvvvwgwwwgwwgwfggwwvwwgFuveuvwgvxwgwwwwwgxxwwwxwxwxwxwgvwwwfvwvwwgwwwwwwvwwxwgvxvwwwxwgxwwwwxvxwwxwxvwwwwwwvwvvwWxwWwvwxffvwwgfwwvwgggwwwxwgvgewwwgWufvwWvgwwwvwwhgwvwwfwwwwhwwwXwwgwgggwwgwgwxxxwxwgxhvxhwwwwwVwwwgwwwxegwxWWfvwwwwwhgxvwgwwxwxwxwgwxwhxwwgxxxxwvxxwxwwwxwxvwhxwwwwwwwxxxxwxwxwwgxxxvwwxxwvwwffwvgwvwfgVuTvgvggwwwgxwvvvvgwwwxwgxxwhwvxxwwgfwvwwwvvwwvvwwggvfwwvhWvgwwwwwwwwxxgwhwwxhwwwvwxxwxgwwwwwwwxwgxwwggwfwwwwwxwxfwwwxxwwvwxvgwxwxxxwxxxvxgxxxwxgxxwwwvwfxgwwgfwwwfwgvwxgxxxwgwwxwxwxxwxgwwwxgwwwwwxxwvwwwvwwvwxwwwwxxgvwwwwxgxwxwgwwwvwgxwwwhgxxvfgwwhwwhwxxxxxwhwxxwxxxxwxwxxwwwwgwhwxxwwwwvwwxwwxgwxwxwxeFefvfwVgufwfgVffwwfvxeevfgwfvgwwgWwvgvwvgwfewvevwfuguwgwfuvwfuUtwuwdvgfvffvevwgfvwwfvvwfgvwWvuvgwtwevwwVvuwvwvwvwwwvwfxVfvxfvffvwvvwwfVvwggheVwvgwwwfgffvvxwwwXwvwxuVgvVwgfwvwgwxwwgfvwfvuxvwwwwwwwfgvfVwwvwwwwvwgvfuwwvwwgvwvgvwwuwwwhwgvwxxwwwgwfvwgvffuffwuuvwffWgevwguvvwfwwgvffwWwfwWvewvgwGgvgggxffgvvwvgwgwxwgwwgwwgvwvwwwgwfgwwvwwwwfwwwxwhwvwvgvwwwghwhwwwxwfwfgwgwwwfwwwgwffvggXvgfwwwwxvgwwwwwvwvvgvvvxWwwwgfwwxgwwwwwwwwxwwwwwxwwwwvvwxXXvvwxwvvwwwxxwwwwwvwwwvwwwghxhwxxwvfvwvfvwfvwvvgeVfvgwwgfUgffxvwfgvwwwwwggwwxfUwvWwwfwwwwxxxxvgwfgvwwwvwvwwefwgggvgehvwgwwvwwwwwwwwwghgwwgwwxwwxwxwwvvwhwwwfvwwwwhxuwfhxvgwwgwxwwggwxwwfwwgxwxgxxgwxwfvwwwvhgwhwvwghxhhwvwghwxxvwhwvhwxwhwhwwxwhwwwgVwwfwxwwwgwgwfVwwWwhfgwwwwwwwfwwwxxwwwgwgwvwwwwwggwwwxwwxwwwwxhgwwxvwwwwvgfwwhhfuwwwwwwxwxxwwwwwwxwhwwxwxwwxwwwgvxxwwwwfwhvgwwWwwxwhuwgvgxghwvxwxwwwgwxwxwwxwwxxwwwwwvwfgwwxgwwfwxwwxxxwxxwxwxxuffvfvuwgvvwvffwvvwgwwgvwvxwVtguffwwuwffvwvwwgwxfvvwvVcuvwvwvwugggvvwgwwwxwtgfvfufWfwuwfvwwgwwxwxvVvswfvfevgfwgwwwfVwwwwwwwvfvwfvgwwwwwwwgfwvvwwwxuVUvvffFwvwwwvvwwwwwxwxweuvwvvvwgwwwwwvhxxwwvvuwfFdvvwgfvwvVeeghfvvwxwwsgfvfufhuvwfuewwgwwwxxwwxwvwwwffhwwwgxgwwxwxwwwgwVvwgGuwwxvwvwgvwwwwxgwwxggtfuwwvvwffxwfffwxgwwwhwwxwvwgvvxwwwwwxwvxwwwwxwwwxxfvvwgWgggwwwwgwwwxxwxwwwxxwwwwwwwwwwxxxwwxxxwwwwFvtwfvffvwfwwwwewwwvgwvVvVvwwwwwxwfwvxwgxuffwgwfwvvwvwwwwwwwwggxwxxvwwwwwwxwwwwwxvwxxwwwvvvgvwvvwxwwxwwwwwwxwxwxVgvfwwvwvwvwxwwwuxwxxxxwxwxvwwwwvgwxxwvwvwxxwgvvvxwwwvwwwwwwxvvxgwvVevwvWWgvwwvwevvwwgvvwwxhwwUevgvwvwwwwwxwwwvwWwwxxxwxxwwwvwvgfwwwwxhwwgwxhxwxxwwwwwwwwxwwwwwwwwwxwwgwwwvwwxvgxwvwwwwxwwwwwwvwvwwwwwwxxxwxxvwxvwwwwxxvxwxwwxxvxxwwwwgwxxxxwwwwwwxwwvwgwwwguVdfvufvvvgfuvvfvvgfvwwwVwvuwWvvuevvgvwWvfxvggfwvvvvwhuwgwvvfwvvVfvffwgwdvvffvufwgwugwvuffwfuwwVwugfvfveuwwvwwfvwwgvgwfvvefevfgvufvuvfvwwwfwwwwwgwwevvwuffewwghwwwwfvgxvhwvwwwwwvuvvvvuvvvxwwwwgvggexwwwwfwwgwwwwvwwwgwwwwwwwwwwwgwvwxwwevvwfffwvgvvVvuwvUWvufwVguwvgwwtWwwvvvwGwvwvwwwvdfgvfwvuvwvgwgwvwwvwwwwwvwwwwwvwggfwhwwfwwgwwvwxwxvwwgvwwggwgvgwxggwfwvvufvgwwwwwvgvvvwgvfwwwwwwwgwwwehvgwwwwwvwxwwvgwghxgwwvvxwwwwwwwvggfwxwwwwvwwwuwwxwwxwvxwgxwggxwgwwfuvvfuvvgfvewefgwfhfvwfwgevvwvevuwWwwvwgvvwwwwwvvwwxwwwvwvfvfvwwvwwwwgwwvwwhufwgwwwvwwvvwvwwfvgwwwvwwgwwvWwwwwwvvvwwwfwvwwfwgwwxwxgwwgxewxgwggxxwgwwwgxvxwwwxxxwfgvwgvgwwwgwwwVwwhwwwvwxxgxvwxwwwwxWxwxwwwwfvvgffvuvvwwwgVvwfwwuvwwgwfxgwvwwwwwwvgwgwwwwwwwwfwgwVwwwwgwvwxvvwwwwwggwwwwhwUwxwwxvwxvxwgwwwxxwwwwgfwwgwwgvwgwgvggxvgvwwwwgggwwwfwhxxgwvwhwhhgwxwvwwwwxxxwxwxwwxwvxwxwwxxwxxxxfggWvxxfffweeVffvvefewffvgvwfffvfgwgwfvvwfvwwvxwwxvwvxVvvwwwxgvfvfwvffwvvffffwfvfwuvvggvgwvwfwffuwfgvwvwxwwwvwfwwwgwwwxeVfvfvvfeuvvvwwvvfwxxwfgwwxwguvvevwvwvxwwwvwwwxwhwxwxgwfwevfgvfgvwvwwwxwwwvgwxxgvwggvvgwgwwWWfxgxfgvxvfvwffgwvvvvffvwfewvfwfwffwwvVvwvwwwfvvwgvwwwgwwvwwwwwgwgwwgwvwwwwwwwwgxxxhgwwwxhwwgwwwhwwwwwwwwxxhxhwwxwwgwewvwvvvwwwxvwvwfvgwvwhwxwvwwxwwxwwxwwxxxxwwxwgxwxwgwxwwgwxxhhwxgwwxwxwxxwwxwwwxwwxxxxwwgxgwfUfvfvffeuvvvvwvvvxwxvwwwwfuvwuvvvwwwvwxwwwgxxuwvvwggvwwxwwvvvwwwwwhxwwwwwwgwwxxwxwxxwwwwwwwxfgwwwwgwwgwwwxxxvvgwvxwwgwwwwwwxwWwvxxwgwvwwxxvhwxwfwxxwgXfxwgwwhhvwwwxwggwxwwxxwwwwwxvwfwuvvwvvvvwwvwwwgwxwvfvwwvwwwwwxgvvwwwxgvwwvWXfwwgwxgwwwwgwxwvwwwwwwxwwxwggwwxwggxwxgxhxwxwvxhwxwwwwwwwwvgxvhxgwwwfWfwhwwwwwghvwxxxwghwwwwxwwwxxxxwwwwwxwwxxggxwwxwxwxxwwwwwxwwgwgwwwwxxuwwwwwwwwgwwwwwwwwfwxwwVwuwvfwvfwwvwwwVvgwwwvuwxwwxvwewfgwgwwwwxwwwxwxwwwWgVfvfuvwugVvwwwwwwwxwxwexwwvwfwfvgwwwwVwwwwvwwwwvfwvfegvwgvxwwwvwvwwxxwVwwwuvwwwxgxgwwxvfwvwfuvvwwwvwfwvxwwgfwwwwwwwgfggwwwwggwwwwwwwwgwfffwuwvfWgwxgvvwgwvvwwxgwvwwwwwxwgVwgwxwwwwxgvwxwvxvwwwwwwwwwxwxggwwwxxxwvvwwvxwgwwgwvwwwwfxwgwwgvgwwwwxxwfwwgfxwwwggghgwwxwwwwvgwfwwwgxwwxwwwvwxwwwxwvwwfvxwwvwxwwwvfuwwvwgwwvwgxxwfwwwwwwwwxwgwwwwwfwwwwwwwwwgwvwwwwwxwgwvwgwvuwwwwxxwwwvwxwxxxwxwxwwuwwwwxxvxxxwgggwwwgxxwwwgvgwvwwwwxwwxwwvwwxxvwwvwwfwgwwgxwvvwwvvwVvgwxxwgwgVwxwwxxxwxVxxxwwfvxvxwwvwwxfwxvvvwxxxwwwwwwwwwxxxwwwxgwvxwwxxxvwwxwxxgxwwxxwwxxvvwwvgwwwvwvwvvwwwwwwwgvvvwwwvvvwUewwwvvxfvwgwvwevwvwvwwvwvwwwwwwwwwwwwwwvgwwwwwwvwvvgxwgfvwwwwwxgwwwwwwwwwvwwvfvwwwwvwwwwwwwwvxgUfguuvwwxvwwwvwwxxwwwwwxvvwvgvwwxwwxxwvwwwvwwwvwwhxxwwxgwvwwwwwwwwwwwwwwwwwgvfwwvwwgwwvwvwwvwwhvwggwvwwggwvwwwfxxwwxwxwxwwwwwwwvwwxhfvwwwwwvvgwwwwgxhvwxfvwwwwwwwwgxxgwhwwgwgwwgvwxwfhwwwwxwvwwxwwwwwgwwwxxwxwvgwgwwwxxvvwxwwwvxwwwvwwghxgwvwwvwvwwwwwwwwwwwwwwwveewvevvwvvwwwvxxxwwwwwvxwwwwwwwxwxvwvxvvwwwwwhwwxxwwwwxxwxwwwwwwwwwwwwwxwwwwwxwwxxxwwxwwwwxxxwxwgwwxwvwwxwxxwxwwfvwwwwwwwgwwwwwwwgwwwwwwwxwxxxvwggwwwwxxwwgfxxwwxwwwwwvwxwwvxxxwwhxwwwxwwxwxxwxwwvxvwwwxxxwwwxwwxxwxggwgwvffvfvfvfvvwgwweefVfgggvvwvVfufvwvfgvxwwwuVfvwwvgvwxwgvgvvvfvvvfuwvwvwvfvwufvvwvwwwwvwvvfvgvvgvvwwwffwwvvvvwvxwwwgefvefwwuvwvwwffgfgxwfewwwguewwwwwwvxwxfvwwgwhwwxvggwwwwgwwwwvwvfuwwhgwgwfwvfgUffwwvwgwwgwwvwwwwxwwfvvgvfgvvVvvgvgvffwfugwgvvvwwwgvfgvwvgwwxwfvvfvggwwwwwwxwwwwwgwwvwwwgxvxgxwvxgwwxwwwvwwvwwwwwxxwvwwxxwwgwugwwvwwwvxwwwvggwgwwgwwwwwwwxwwggwwwwwwwwvwwwwwxxgwvwxwgwvgxwwwwgwxwvwwwxwwwwwwxwfwhwxwgwfevevfgwufwwvwwffwfxhgwvevwwguewwwwvwwvvwwxwxgwwwxugwvvvvgvwxwxwfvwwvwhwwxwwwwxwwxwvgwwgwwxwxvwxwwwggvwwxhwggwwwwwhwgwuwwxwwwxxwvwwhhhwwxwxxwvvwwxwwwwfhwhvhhVgxfwwwwxxxwxwgvxwxvwwggvwwwwhgvfufgwgwgwfwfwghUvvfwxwvxxvgwwgwxwwxwwhxwwwxwwwwxfxwxxxxwvwwxwhwwwxvwgxwwxwwwxwwwxwwwwxfhwhggVhxfwwwxwxwwwxxwxwwwvgvwwvwwwwwwwwwvwxwwfwxwwxwwvwwxwwwxwxxwxgwwgwwtVefffwevwwfwfwfvvwufugvgwwfvvwgvvwUdvvwgwvvwwfdvgvvwvwwvxvwufgwvgfgevfgwdvufvgfguweuvwvwvggufvfwewvvwwwwvwwwwvwwwwwwwfvvUfuwvwwfvwwgvwwwfvgguwwwgwfgfvdfwvwwvwgwwvdfwfwwvgwwvxwxhgvvwvvwwwwxwwwvwvvVwvvwwffuwwvvwwwgvvwvguhwvwwwwwwxevvwegugvffVvuwuVfvVfvwfuuwvgwgWugwWwfwvvwwgxuvwwwvgvwwwwgwvwwgwwvwfwvwwwwxxxwwwwwxvgwwwvwwwgvvgwwwwvwgvxvvwwgwvvwwwwwwxVwwwgfvwVvwwwwwwvwwwvwgfwwwwwguvggxwvgwwwwwvgwwwvxwwxvwwwwwwwvhvxwxwwvwxvvhvgwxhxgwgwwvwgwxghwwxvvwwguxwwwwwUuvffuvvwwwwgfgfvwwvfwvvwwwwfgfweefvwwwwfxvuewvwwggwwwwwxgewwwvegwgwwgvwwwwwwwwwfwvvvwwwxvxwwxvgwwfwwwxwwwwwvxfwwwwwxwwgffwwxhwwgwxxgwgwwvvwwwxxwxwxvwwwwhvgxwwxwwwwgugwwgwwwxwhhuwxwxwwgvwwgwhwgwwwxwwwwgxwvwfvwvwwwgwxxxgwfvgfwWwvxfwgfgffwwwhvxgvwvwgwvwwwwwwwvxwwxwwfwwwwxgvvxfwwvwwwgfwwxwxgwwwwwwwvwwxfwwgxwwwwwwwwgugwgxxxwvwwwwwhhewxwwwwgxwwvwwxgxwwxwwwgwxvwvxgwwwwwwxwxwxwwwwwwwwwwwwwgwvxvwvvwwwwwvwvfWvtwgwvgfvvvvwgwwwwggxvgvgfwwwgwfwgwwxvwwVvwxvvwfgfwvgFwwwwvwvwvwvwvwwxfwggvvwwgvxxvxwvwwvwwvwwgwwvwvfwgwvwwvwxwvvvgwgwwwvfvvgwwwwxvgvvwwwwvvvwhvvwxwwwvwvgwgwwwwwwwvwuwxwuvwgwwvwvwwgwwgwwwvWVvwWVvwxwwwvgvwwwgwxxhfvfwwwgwwvwwggwvwwhfgwwwwwwhwwwxwwwwwxwwxxwxhwwwgwgwwwxwvwwwgxfvwwxxwwwwwwxwwwxxxwgxwxvuggwwwvwwxxwxwwwxxxxwxwwwwwwwwwvwgwvxwwhwxxwwVwwwgwwwxwwwvvxwfxvgvvgwwgwwwwxwwwvwwvhwwwvwxvvvgwvwvxxwwwvwwxxvwwwwwvwvwwwwwgwvxwvfwwwvwvwwvwvvfgwwwxxxxwwwwxxhwvwvwwwwxwfvwxxwwwwvwwxwwxwvwxgxxwwwwwwwxwxgvvwxwvwvvwwgwvgxxxxwxwvfvvgwvvwwgxwwxwxwxxwwxvxwxhxwvxgxwwgwxwwgwfvwwwvwvwxgwxxwwxxhxxxwvvwwxxwxxxwwgvxwwxwxgwwxwwgxxwxxwwxvwvwxuwwfgwvgwvgwwvwwfvvfWevwwwVfuvgwfwvwwwwgVeuvwwgwwVfuveuvwxwxgwwvvFvwWwwwwvgWwVfufgwvwwgvwWwwwveufwvgVgwvwwgvvgwwwwvwwwwxwgvfvvwwwwwgwvwfvvwwwvgvwfvghwvwwfvvwwhwwvwwwxwxwwvxgvxgvxwxwxwwxvxwwvwwwwwwwvwxwwwgwwhxxwwwgxwwwvwVwvwWwwwvfGVfevgwwvwwgvwWwgveuvgvgxgwwwwvwwhevgXwwwwwxwwwwxxwwwwwwwxwxxwwxxwxxhwwwwwwxxxxwxwwwwxuwfwxgwwwfxwgvwwvxwwwxxxwwwwwwwwvxxwwxwwgxxwgxwxxxxxxwxvwwwxxwwwwxwwwgvwwwwxwwxwxwxxxhwwwxwwvxwwwwwfvvwwwwgwvwfvwxvwwgvfvvwxwvvwwfvvwwgwgvwwxwwvwvwvwwwwwvwwwvwvxwwwwwvgvwwwwxwwwwwwwxwwwxwwgggwxwxxwwghxhwxwwwxvvxwxwwxwwwxwwxwwwxxwwggwwwwxwwwwxxwwxwwwxwwxwwwxxwxxgvwxwwxwwwxwwwwvwgwxwxwwwwwwwvgwxxhwwwwxwwgxgxwhwwwxwwxxwwxwwwwxwwwwwwxwwvwwxxxwxxwxxwgvwxwwwwwghwwxxwxwwwwxwwxwwwwvwxwxwwxwxwwwwwvxwxwwxxxwxwwxwgwxwxwwwwxwwxxxwwxxxwwwwxhwgwxwwtvVwvfvUwvxfggugfwvvwvvwwwvwvwvwgwvwwwfwuwwwxwwxTfWffeeweffvfuvwwvuwwwwwuvgwwgftwwfvwwvvvwwwgvwxvwwwwwhwdegwVefvvgewvwvvfggwwghvgwwwxwvwggfwwwwwxwxvwwwxxVffwdffwfwVwvgwfvvuwwvxvgwwgwegwwwwwvwxwwwvwwhvwwwxxxewwwwffwegwwvwwgvvwgwvdwwvwwwvgfwwwxfwVvwwwwwxvevwvgxwVwwwgfxwwwwwwghwvwxwgwvggwvgwwgxwxxwwwxXxxxxxvvggwwwwwvvvwwwevvwwwvgvvvxwxvwwvwxxwwxxxwwwxfgvwwwwwwwwwxwwwguxxxwgvwxwwxwxxwwwxwhxxwwwwxfvvwwgutfwwvvgvwwvwgwwwhxwwvwwwxvxwxxxxwhuVvvfvvvvwvwwwvvvwwwwvxwwfvwwwxxwwwwwwxwwgwxvUfwfFfufvgwwwhvwgvwvhvwxxwwwggwxwwwxwxxgxxxxwfvwvevvhwwwwxvgwvwxgxwxgwwwwvgxxwxwwwwgwxxgxwxvfvwwggvhwwxvfvwwxwwxwxwxwwwxwxxwwwxxwxhwvwwgvwwwwwgwwwwwfwwvwwhxwwgwwxvxWwgxwwwvgxwwxhvxwxwfgvwwxwwxfxxhwvxwxxxwwxwxwxghwxgxxxwvxxwxgwxwvvvwhxwwwwwwgvwvxxxgwwwxwhwxwwwxxwwhwwxtvgwxwvvwwvfvfgxvwwwwwvfwvvgwwwwxvevfgwuwvvvvvwwfgwwwvfwwvxwvvvwwwwxwwgvxwxwxxeeffwwwgefwvVvwvgwvwvvwgwwwfwwwwwxwxeffvvwwwevvwxwvxwffwwvwwwwxwvwwwxwvwwxwwgwwvwwwwgvgwvvwvwvvwwxvwgwwwxvuwxxwxxgxxxvvfgwwwwwxggwxxxwgvwwxxwxxxwxhwwwwwwwwwxwwwwxwwxxwfwvwxwwxvxxxwwxwwgxwxwwvxwxwwwwwxwwwwxvxwxxwxwvxwxfvvwwwwwfvwwwuwwwxwxvvwxwwwwxvwwwwwhxxwwvfwwfvwwwwwwwwwxxgxwwxwwwwwwxwxwwwvVegwwwfVfewfvwgvvwwwxxwwgxhwwwwfwwgxwxwxwxxxwxxwwvvvgwwvwwwgwuwwwwwwwwwwwxvvxxwwxwwwgvwwwwwwwgvwwxxxwwwwxxwxxxwwxwwxwwwvxwgwxhwwwgxwxwwxwwgwwwxwxxwxxwvxhwwgvwvxwxxvxwwwgxWxhwwwggwxwwxxwwvwxxwwwwwwwvwhwxgvvxxwwxwwwxwxxwxwxxwxuWWwWvvwfwvwfvwgwwwwwwvggxwwwgvwwvgvwwWwwwvwwxwwxFvvvffewvgueeuwgggwwggwgwwgwwwgwgwwwwvwwwvwwwgvvxgwwvwwwwwwWwwwvgvfvwuvgwwWvwwgwWwwwhwwgwwvvgvwgWgxwwxwwwwxxevfwgvwvWvegvvgvgwgxgwwwwwgwwvwwgwvwwwvwwwwvwfxxwxwxwwwwgwwugWvwwwwgfgwwwxvgvgvwfwwvwvwwhwvwxwxxwxxvxvwhwwgwwwwgvvxwwwhxwGgwwxwwwgxwvwxwwxwgwxxwwxwwwxxhwwwwgwwvvvwwfgwxwvwwwwfwwxxwwwwwhhxxvxwwwxwxxxxwwxxgvwxwxvwwwgvwgwwxgxwwwwwxwhxvwxwwxwxhxwwwwwwvvwufwvgwvvvwwvvwwvwwwewxvxwxwwwwwwwwxwxwwxwwxwxxxvgwvgwuwfufwfvwuvgwxxxgwvhwwwwgwxwwxxwwhwxwxwxwxwwwxfgvwgwwwgwgwwvWVggwwwwxvwwwggxwwwwxwwwwxwxxxwwxXxwxxwgfvwwwwwwwgvuvvwwwwwWxwxxwxwwxwxxwxwxhwxwwwxhwhxxxxvVwwwvwvvwxvxwgvvxwwxwwgwgxvvwwxxwwwwxxwxxxxwvvgwwwwvWwvwwvgfgxgghxwgWxwvwxwwxwwwwwwgxxxwxhxwxwwwwwwwxwxwhvwwgxwwwgxWxvgwvwxxwwwwxxwxhwwxhxxxxwwwwggwwwgwwwfxwwwwwvwxxwwxwwxwxwwxxxxxwggffwwwgwxvwgvvwwvwfgvxfvwwwwwxvvgxwveufgwgvwwuwwwxvfvwxxgwwwxwVvwwvvvwvvvwxfvwwwwxwxedgwwwvwwwgvwgUVuwgwfwwwwxwgfvvwwwwwxgwvwwwxxfVVvfwvxvvwxUuvfwwwxwwxgwvegvgwxxwwgwwwwxxvvwwwwwwgwgwvWwxxwvwwuugvvxvwwxxxgxxvwwxwWxxwwvxxwwWwxhggvwgwwwxwxxwvwwwwxwwwwvvwwwwxwwxwxvewwgwwwxxwxwvuwgfwwwwxwwxxxxwwwwxxwwgvwwwwwwxwwvWfvvhwwvwwwxxuwgwxxvxgwxwwxxxxwvgfwwwwwwwwwvxxxwwwxwvxxxxvwwvwwUVvvgxgwxwwxxwVfdwxwggwxwwwwxxxwghwxwwwwwxwxwvwwwxwwgxvwwwgwwxwwgxwwxxwwwwwwwxxwwxxwxxxwxxwwxxxxwxwxwwxwghxvwwwxxxfwwxwhhxxwwwhwwwxxxwwwwxwvwxxxwwwwxxwvxxxwxgxxghvxxxwxwggvwxxxxgwxwwxxxwxwwxwwwwxxxxxwxxvwxxuwwvvxwwwwvgfuwgwwvfevfgvfuvwvvfwwwvvfgwfevxgfwwwvwfuvwwwewFcwvvvvvgfvvuwwUdvwvfewvgffwvvefvwUwgwfuvgfwvwvvwwgggfvwwwwgvvwveEwVwwffuvgxvgvwvwwgwxfUwvwvwxwxxxwUEwvuwfwwvwvwwdSfvvgfgwwwWhwwfwwvewwgvwwvxwwwxvxwwwxwwxxvwwvgwwwwvwggvvvxvwvwwxVewwwgwvwwwwwuwwxuvwvgxwgfwvgwwvfwwxgwvwwwwWwffwwxwvvvwvwwgvwvwxggwwwwggfgwwgwfWvxwwwvwgwvwwwfwvfwwvvgwwgwwvwxxwwewwwwwxxxxwfwgwxwwwwwggffxgxwxgwxwgwwwvwwhxwwxwxwWwffwxhwvwwwvwwwwvufgwegwvwxwgwgxwwfvwwwvwwvwwwwwwvgewedvvwvwwwvgvevgUewxxwvxvwwwwwwxhwwvxvwxwwxgwwwwwxxgwvwxwwXgxwhwfwvwvWvgwxwwvwwwgwvxwggwxxxwwxvwwwwvwwfvvxxxwwwwwvhfwwxxwwxwwwwvxvxwwwwwwwgwwwwxwgxwwvwwwfvwwvxxxguvwwvgvwwwxvwgxwwxwhwwxwvvwwwwxxggvwfvxgxvxwgxwwfggghfwvxgwwxwwwwwwwgxfgvwwfwwwwwwxwwgwvwxwwxvwxvwwwwxwwxvxwwvxgWgwwvxWvgxwxwwvwwwgwxxgxwwfvxxxxwxwvxwvvgghgwwxvxwwwwwvwwxfwfgwvwfxwfwgwvwwwwgvVvwwwwwwfwvwfwvvgwwgvvxwwxgwvvvvvwfVwvwvwfwfvwgwwgvvvvwwggwvgvfwfvvxvfgwwxhgwwwfwwwgwwxwvvwgggwwwgvwwwwfVvgvvxwwvwwwwwwgwvwwhwwwxwwxfwwVvfWvgwhggvwwwgvwwwwwgwvwwwwwxwvgwxvwwhwxwwwwwwwwfwwwxffwwwfxwvwwwgwvgwgwwxgwwxwwgwvwwxvgwxxxwwwwwwxwvvwwgwwvwgwgwwwgwxggvwwwxxwxwgwxgwwxgwwgvwwxwwwwwwxhwwwwwwWvgxwxfwxwxwwwwwwwwxxxxwvwxxwwxwfwwgwwwwvwwhyvwvhxwwhwxwwxxwwxxxxwwxwgwwgfWwvvxvwwwwvfwwwwwwfvvwvvxwwfwwxwwgwwwwwwgwxvwwfwvwfwvvvwwwwwvwwhvxhwwvwwgvwxvwwvwwgghwwwwwhgxwwvvwxwvvvwgxvggwgvxvgvwxwwwwxwxgwhgfhwxxxxggwxvwvwwwxwwwwwwwwvhwwwgxwwwwxwxwwhxxwwxwxwwgvwWwgwvwwwwxwxggwxfwvwxwxwxxxwvxxxwwxxwgxwwwfwwvvxwwwvwwwhxgxxvxwxwwxwwxwwxvwvwhxxwhxwwwgvwgwwgwgwwwwxxvxwwgwvxxwhvxwwwgxhxxxxwwxwxwvxxwvwxvxwxxwxwvxxxwxwhxxxxwuVVvfvVveguwwguuwvgvwvgggvfudgvvwuwhwfvxtwvgvwVvfxwxwfuwugVuggwvwvuWVwvwfwfgwfvwtwfWvuWwvwgvgwvfvvwWgwwhwwwwwVetvfgfvfwwfwuWVwwgwwfvwxwvugwwfuwwxvxwWvvwwggwwxxwtfVvguvWfwwwwwfvfgwgwwwgwwwxwWfufvwwwxwxwwwwhgwwwwxwxxwxwfuvVewuwvgvuGVwwhvffwwxwtgwfvwwfevwwvwWvvxwxwwggwvgvvgwwwfvuwxxggwwwwwwwwgvwvwxwgwvwwXgwvhwwwwxwvwwxwwvwgvufvwgwxfvvwwvxwvvgwwwwwwwgxwfuuwwxwwwhwwxxwwwwwwwxxwwwxvwwwwgwwgwwwwwvwwwxxxwwwggwwwwxxxxwwvwwwwwxwxxfuuwuwwugwwvuugvwwwgwvgvwwfwwwwwwwvvxwgwwwxxuwwgvfggwxwwwgvuwwggfwxwwwvvwwwggwxwwwxwwwxxwuwwwVvuwwwgvwxwFevwwwvwwxwwxwwgwxwwwgwfwvxxwwxwvgwvxwwhgvvwvgvwwwxvWgwvwwwwwwxwgwwwxwxxwwwwuhwfvvwwvvwwwwVevgxxgvgWxwwxgwgwwwwwwxwwwwxxvvwgwwwvwgggwxwxwwwgwvgxwwwhwwwxxwwwxwwwxwxxetuwwwwwxxwxfvgvwwhfgfxxxxwggfvwfggxxwwxwwxwWfvwwwxwwwwgvwxxxxxwxxwwxwxwwxxwxwweggvgwwwwvvgevuvuwwwvfWVfvwvwvgwwvwwvwvfvvwvuvWwwwxuefwwfVVgfvvgvwvvwvwwwduewWfwgfvuewvwWvwwwxfwwwgwWvfgvwxgfvwwvwfvwgvevvwVfvwwxxwwwwwxwhvvvwwxwxgvvvugvwfvvgwwefvgvwHvwwxwvwhwwwwwwwwwwwwwwwwxvggvvWwvwwFVwwwxwfvwwwwwwWwwwwwgwxwwUvvxwuvwwwgwwhwwfvxwwfwwwvwwwwxhgwvwxxfvwwgwwwwwxxgvwHWvwwwwwgwgwwxwwwxwxufvwxwWwgwxwwgxxwwfgwhwxwgwxxxfwwwhwwwwgwvWXhwgxxwxxxxxxxxxxxwwhxwxwwwvwgvfgvvvwwveffvGvwwwwxwwwwxwgwwxwwwwwvxVvvefwgfwvxxuvvwgvwgvWfvwwwwfvxwwxwwwxxwhhwwwwwwwwvwwgxfuvwwwhwwwvxxxvxwvwxxhwwwxwxwwvwwwvvwwwwwwwwwwwgfxwwwhwxWwwhwVwgufwwwwwVvwwwvvxfvgggxxwwwxwxhgxxxxwwwgfwvwvgvwwxxxwxwvvhXWwwwwwwvxxxwwwgwxxwxwwxgwwwwwxwfgWvhhwwwggwwxxxwxxxwxxwwwxxwwxwxwgwwghwxwhxwwxxxxhxhxwxxvvgWwwwwfwvxvwwggvwwwwwvvwwxfxgwwwfwwxwwgwwxWvvwwwvvvvwvwvvVewwwwuuvvwwgwgwfwvwvwvvfgfxvfwghvwwvwwwwvwgwwwwwwwwwfgwwxuuvvwwwgvvgwwhwxwgwxggwwwxwvwwfxvffwfwwwvfvvwwwWfugvwvxgwwwwvwwvvwvxvwwxwgwvxwxgwwwxwgwvwwwuwgvggwwxfvwxxwgwwxwwwwvvxwxxxwwxxwvwwxwwvwxwwwvfwwwwwwgwwwxgggWhwwwxwxwxxvwgxwxxvvwxwwwggxgvvwgwvwwxxwwwwwwwwxgvvwxwwwwxxxwxxwwxwvhwxvuwwwwwwwvwwxwxwxxxwwwxxxxxwgvxwwvvwwgggwxgxxwwvxxxvwwxxwvvwxwvwhxxvvwgvwvxwwwVvvwwwvvwwwwwvwxxxxxwwxxhwxwwwwwvggvxxwxxwwvwxggfvxwvvgwxwgwwwxhwxwwwwhhwwwfvwwgwwwwwwwwxvwggwxwhvvwwwwvxxxxhxwwwwxxxwxwgwwgvxwxgwwwxvxwxgwxxwwxxhwxwwwggxvxxwhxwwxwehgwxwxwwwvxgvwxwxwxwxxwgxxwwhxxwwwvwgwwxxwwgwxxvhxwxxxwvvxxxgwvxxwwxxwhwxxxxxwwwhxxwxwwwxxwwxwxxwxwxswghfvgwfVwwwwwwwwxxwwxwgwvwwwwggvwvvwwvxxxeuVwfffwggvxgvuwwuvwwvvwwwvvvwvuvvxwxwwwvwwxwwxxUUWwfgufwgwwwwwwgwwwwwxxwgTgwwuwvwgwxwvwvhwefgvffffwvxwwxwvwwwwwwgxxwevwwvvwwwxxwggwwwwxwwxfvgvgggwwfuwgVwwvwfvwvgwwuvwxvwwwwxxxwvvgwfgwxwgwwvfwwwwwxwvwwwwuwwgwxvvvgxwwhxvwvwgwfwwvxwwwfwwwxwxwvvwwvhwwvwxvwxvgwvxvwvwwvxwwvwvwwwxvgwvvwwwwxxwwxwvxwwwwxwvwugvwvgwhwwwwwhwgvwvwuwxxxvwwxvfvwgvvwwwvwwvvxhwfwwwwwwwxxwwxwxwwgEfwfwvwwwwwwwxhwwgxxwxxwwUUewvggwwxwWwwwwwwxxvwggfwwggwwwwhvwhwwxwwwwxvgwwwxxwwxgWgxwxwxwvgwwvwgwwxxxwfwwwvxwxwvwhwxwxwgxxwxxwfwgvwwfwwwxwxxwwhwwwxxwhwwxwwwwwwhxwgxwwxwxffwwvVwwxxvwgwwwwxggwwwxgWwwwwxfxxwxgwwggwwgwwxggxhwxwwxwwxxxxxxwxxwxxvfwwvwwfxvggwwwwwwwwwgvwvvwwwvwxwgvvwxwwwvwwwgwvvgvwfwvwwgvwwwwwvwhwvwwwvwwwgvvwwvwwwwwwvwwvwwvfwwfxvgvwwfwvwvwwwgvwwwwwwwwvwghgxwwxwwwwwwxvggfwvwfwvwvwwxwwwgwvvwxfvvwwxwwwwxxwgwwvgwwwxwwwwgvvwwwxwxxwwxxwgwwwvxwgwxwwwxwwwwwwwwwwwxxxwxwwwxwwgvwwwggwgxgwvxvgxwwwwvwgvgwvwxwwwxwwxwxxwwgwwxwxwxwwhwwwwwvwxwxxxwwwwxxxwxwwwwxxwxxwwfxxwwgvwvwwwwwwfvvwgwwwxwxvgwwwwxwwwvwwwwwvvvwwwwvwwxwwxwwwwwwwwwwwwxxxxwwxwxwxwxwwgvvwwghgwwwwgvwxxxxwwxwxxwxxxwxwwwwvwxwvwwxwxxvxwwwggwwxxwwwxwxxwwwxwxwgvwwwwwxwgwgwxwgxgwfxxvwwxwwxxwxwwxvwvwwwwwwvgwwgwvwwxwwwwwwwwxxxwfxwwxwvwwwwwwxwwwxvgxwxwwxwxwxwxwxxwwvfwwxxxwwxwxwxwxwuwxfgwvfvvggfgwvggwvfwfxwwxgvwvfgvwgwwwwfwxxvvgwGvffvvweufvwwvgwwwvvwwgwwwwgwwwvvfwwfwxhwgxxwwwxgwvgvffwewgwwxwvwvxwwwwxwwggwvwwgxxwxwxwwwwvwfvevvwgwwgwvhwgvwwwwhwfvwwxwwwwXwwwxhgxwwxwwwwwhfwwWfgvGgwvwghwfvvxwgxwwwwwwvwwxxxwwwhwwwvwxvxwwwgwgvvwvwxwwwwgvwxxwxvwvwgwwwwwxxwwxxwwxwhxxxhxxWgvwxgwgwwwwfvwwfwhvwwwxxwxvwwhwxxhxvxxhxwxxxwxwxwxxwwwwwxwwgwwwwwgwwxwxfxwwxwwxxhxwwwwwwwwgwwggffgWvvggwvwwvvxxxwhgwwwwwwwwwwwxxxxwxfvwvgvwvwvfwwwwhxwvwwwfvwwgxhvxwwwxxxxxxwxwwwwwvvwgvggxwxgxwgxxxwfwwwwxwgwxwwxxxxxwxgwwwwwwwvxxwvwwxwxhxxgwxwwwwxxwwxxxgggvgwvwguwwwwwvwxxxwxxvwxxgxgfvxwwwwwxxxxxwxgxxxxwxxxvwwxxwhvwxwgwwxxwwwxxwxgxhvwxwxghwxwxhxxwwwwwxwxvxggwwhWwxwwxgwwwxfwwxwxxxxvhxxxwxxxxwxwxwwxwxxvwwfxwwxwxwwxfvxwwwxwxxvwwwfvwwvvgvgwvgwwwwggxvuvwvvfgfvwxfwxgfwgevvvvwwvvwvwggfgvwvvwwwgxwwfvwwfwfVwgveuvwgwgwwwgvwvgvwfwxwwwwgfVxvwvwgwgwvwxxwvwfvvwwwwwwxwxwwwxwwxxxfggvuvvfwwwwfvwxvgWxwxwwvwvwvwwxxwwxxwvxwxxxxwxvwvwgWewWvhfvfxggwwwvxfgwgwwvfvwwwvwwwwwwwwggwwwvwxvwgvwwgwgwufwfvvxvhggxwXgefuvwwvwvwxwwwvwwwxxwxwxgvWvugvvxwwxxxxwxwvwxxvvxfwwvwxxwxwwvxwxxxxwxwgwwvwfxxwhfhwhxvwxwwwwwwwwxwxxxwxwxxwwgfvWwwgxwwwxgvwwwwwwwVwwwwwwwxwgwgvvwwwxwxvuvvwvgvxxxwxwfwggfwwwwwxxwwwwvvwwgxwwwxwgwwwxgxvxwgwwgwxwwxwhxxwxwxxwxxwxxxwwwwgwxwxvxxwxwhwxwxxwwvxxxxwxwxxxxwxxgvXgvfwwwxvxxvuvxwgwwvwvwwxwwxwwwxwwwwxxggwwwwwxxwwgwghhfxwwxxxxwwxwxxwvxgwgwxxwxxwxwvxwxggwxwwwwxxxxwxwwxwwxwxwxxwwwwvvxxxxxwwuvtvwuwuvwwwwwtfvfuuwuwxufwvwUvvwgefffuvwxfwwvvwfgevvvgVvwwuwwvwvWfwggUvwffwvfgvvfwvffggvwevvwfwwvwvvvwwvfewxgvwwffefwfgfwgwgevwfgvvvwwwxhfvugwhwwwwwVfwvvffgfvgxwwwwWwwtwwxvwwwwwvfxvwwxwxwwwgwwwvwxwxwvwxwWuWwwwwwGvwwwvwwxwvwwWvvwvwfwxgwfwgwwwwwxxvgfvwxwhwwwwwxwXfwwxhwvvwwgwfxwgwwxgvwwxxgwfwvvvwwwvxfvvwxwwwvxwWuwfwwwwXvwugGxvWxgwwvwwwwwwwxwwvwwgwgwwwxxgwxwwwxwwvvxufvwwvwgwvwuwwVuuwgwwhvwvgxvvwgvvwhwvwXwwgwwvwewvwwwwfvwwfvwhwwvwwwwxwhxxvwwwUwvwfvfvwwgfvugwvwwwvvhweffvwgvgwxxhwfwgXgvxgvvhxvfvvwwxwxwwwvvwwvxwwhwwxxwwhxwxxwgxwwwuvvwfvxwxwvuwwxvwwwxwhvvvxwwxwwxxhwwwhWxwgwxxwgxwwxxwxwhwwwgxvvwwwxwxwxwxgwwgwwvxWwhwwwxgwhxfwvgwxwgwgxwwhwXxxvvxhwghwwxwvxwxxwwwgxwwwwxwwvwwvwugwvwfwwwwfvwwfwwvgwwwwvvxwwwwuuwwfvwwgvwfwggwvvvvwfvwvgwww5cvgggfvwfwwwvwgwwvvvuuvwvwwwUuvwvwgvwvwvvhwvvwwwwwwwwwvxwgvwxwwwwxwxwgVUwvfvvggwwffvvwwvwwwwwwxxwvUUwwfvwvfwvvwxgwwwwwwwggwxwwvTdffvwwwvwvxwwwwvvwWggggxwwxwwwWuwwgwwwgvwwvvwgwwwgwwwwuuwxxgwwvwxwwwvwxwwwfwwwwwwwwxgfwgwwwgwwwwwxghwwwwwhgvwwhfvvwwvgxhgfvvwwXuxwwwwwwvvvxwwwwgwwwxwhwgwvwxwwxwwwwwwwxxwxxwwxvwwwwxvvxwvwwwgxwwwxwxwwwwgvwwgvwwwwwhwwxwxwxwvwgwwvwwwwgvwwwwgwvwwwgwwwxwwwvvxgwwxwxwxwxvgvwweevvwxwwwxwwxwwwfwvfwwwwfvwwxwhwwwwvxxxwvvvwwwxwwxgwXWwwggxwwwvvvgwxgghxxxgwwgwvhxxwwxfvvwwwwgwwwxwgwwwxwwwvwwwwwwwwgxwgwwwwxwwwwgwxxfvwwxwwxxwwwxhwwwxwwwxwwxgxwxwwgwxwwxwxgxwwwwfvwxvxxxwwxvhxxwwhhwwwwwwwwhvvwwxgwwxwwgxwxxwwxwfxvfwxvwwxwxwwwwwhgvwwwxxwxwwxxwgxvvwvwhhwxwwvvwwwwwxwwwwxxhwgxxvgwwhxwxxxfxxwgwxwwxuwvvvvfuwvwfuvxvwwvfvvuwwvwwgfvvwfwggvuwvguwevgwwvwfxevgfvVfvvvwfvevffffegffwvwvwvgvFcvTufvvvvwuwvvvvvwvguwfwvwgWwuwwgfUvvfwuffffvwvfvvfgvwwwvfvVVvvwwwvxwvwgvwxvwxhwwhwxfVTvSdfufwvwxvxevfvvfugvxwwgwxvwvwgvfVgvwwwwwgwvvwwxgwwwfwwwvwwvwvWegwwwvWvvwwwvwgwggfvwvgvwfuwwgvwvwwxuwwwvxgvvvfggfewxwwvgwvgvgXwwwggvgvevwvwgugwwfwwhguwwhwghwwgwWxvgvvgwvwwvwvwevwwvwvhwxwwwxwwgwwvgwwxwwvwvvwxgwxgwxvvvwwgugwwwxgwvwvwwwggvgvwgggvwwwxwxgwxwwgvwxxgxwwxfwvvwxwxwwffvwvvwvvvwwvwwvwgwwwwgwwwwxxgfvwuvvwwwfvtuvwfvgwwwwwwvwgwwwwwwwwwwxwwvgwwwwwwwxwwwwggvvvvwxwgwvwwwWwvwxwxwWfwvhwwwwwxvxwghxwvwgvwwwwvvfvfwgwwvxwvxwwvgWvwwwvwwwwwxxwwwwwwwgxwwwwwwwwggwfwxwvgfwwwwwwvvwvfwwWwxxwxhgwwwwwxwxwxwwwxxwwwwgwewwgwvWwwwwfgxwwwwwXfwwgvwwwwwwwwwwgxwwxwwxwwxwwxwwwwgvwwwvgvxxwwvxxxxwwvxwfguwxwwwwwwgWwwwwxxvwxwwwvwwgwwvwwvwwwxwhwwxwwxwwwwwwhwfhhwhwxvxgwwhufvwgwuwwvwvgwwvwwwwguwwvwfwwwwegwwwwgwwwvwgwwuwuwvvwwwgggvvwwgwwvggvwvguwvvwgwfwwgwwwwvvwwgwwwwwuvgwVxwwwwvwwvWvwvvwxgwwwwvgvwvwvwvggWvvxfwwwvwvxwwxuwvfwwwfwuxwxwvfwwwwxwwxwwxwwvvwwvwuwwwwwgvwwwvwxxwwwwwxwxwWwwwwwwwwwxvwwwwwvxwvvwwvxwwvwgxwwwwwwwwgxxwwvwxWxvvwwwxwwWwxwwxwwhwwwwvwvwWxwwwgwxxwwxxwxvvgwwwxwxxwxgvwwxgwxWvwwwwxhwwwwvwwxwwwwWwwgwwwxgwwwxwwxxgvuwwxxwwWwwwwgguwwegwwwvxwwwxwgwwwwwwvxwxWvwxwwwxvwwwwwwwwwwwgwwwgwwwwwwvwxwwwxxwwxwxwxxwwvvwwwgxwxwxvwwvwuwwxxxxwwwvWfxwxvwxxwwwwwgwxwxwwwggwwwxwwwwwvwWwwxxwxwxxxxwxxxxwwxwwggwwwxwuwxxxwwgwwwxwwxwwwwwwwxwxwwxxwgxwwwwwwxxwwuwwxhwxxwwgvvhwuwxwxwxwxxxwxxxwwwwwxxxxxxxxwxxwwwwvwwwwwwfwxxxwhxgvxxwwgwxgwwvuwgxwwxwwxxxwwxxwxxwugfwfvfvVvuuvvgwwxvgxfffgwwgfvuwfffwwggveugffVffguwxvwwwWwffwfwvgvwfvfwvgwxgwwhffvwwgwwffVgfvvwfefXuvgvVvewgwgwggwvvwvfgwxgWfwwwgwfvvwgVVfffwVfwwwgwwwgvvvhvgvhwwhfgvwvhgwXxgwffWwVfvgWvggewgvVwewgwgggwwvvvgwvwvxwgvwwXwvwxwggwWggwwwgwwxgxvgwxwgwvvwwgwvwgwwgfwxvwgwvfwfwgvvxvgwwgfwxwhwwwwxwwgggxwxwwwwgwxwwwwxwwwwwxgwvwwxwwgwvwxgwwvhwwwwwwwwwwwxxwxwhgwgwvwwgvvwgvxxxwgfwggwwwwxwxxwwvwvxwhxwggwxwwxgwWxgwgwxwxxwwwgwhvxwwxwggxwwxxwxxxgwhwvgwxwWwgxgwxxwwwwWghxxwwxwwfwwwggvwwxwwvwvwggfgwwhfwvxvxwxvvfvvveewwwvvgvwwwxwwxvxwvwwfuwxvwvxfvhvggwxggwwvwwwwxuuvxwwfgwvgfhxxwwwwwxwwwwwxxVfugvfgwwwwgvvwwhgwwwwghwgvvwwwwfwwwgwvwxghwwxwxxvxfvwfhwvwxwgwvwxwxwgwxxxwxwwwwwwxwwwwxwxwxxwwwwVvwxwwwxwwguwhgwgwvwxwwwxvwwhwxxwxwwwxxgwxwwwxgwxgwgvxxxwwxWggwxxvxgwwwxwxxxxwwxvwxxxwwhwxgwwxgvxvgwwwxxwxwxwghgxxxhwvgwwwxwwwwwwwvhxghxwxgxwxwwwhxwxwwhgxgxwwxxxwxwwvwxxwxxwwufFwfvugfvvxfwfvwwwxwggwwxfuguefvxwgwvgwvwwvxvxWwfvvVdvwgWggvWwwvwvgwwvwwvufvfvdfgwWwvwwfgvwwvwwwwxvwgwwfwgfgfwgvwgwffwwvwvwwgwxwvwgwdfwwwxhwxwvwvwxxvgegffdfwwwwwvwgwwwwwwwfwvugvgwxwwwwwwxfwgwxxwwxgVwvvwvwvwgguwxwfvvxwwwwgxwwvfggvwxgwwguwwwuvwvwxwxxwxwwfggvgwwvWgwfgwwfwwwgwxwfvxwwvxwfwwvwuwwvgwwwvxwwxwhwwvggwfwuggwgxwvwuxwwwxxwvuwvwwwgwwxvxwwwwwxwwxgvuvwxwxvwxwwwxwwgxwhwxuwwvvwwwxvuxxgvwxxxwgwffuwwvvggxxgwvwwwvfgwwwuwxxxwwxxvvvwevuwvvvwwwwxwwgwxwxfgwwwwvxwxxwxwwwwwxvfwxwwggwWfwfgxgwwwwwwwwwvxhhggwwgvwfgvxwxwwvgwwwxwwwwxxxgvfvvwwWwxwwwwxwxwgxxwxwxwgwgvfwvgxvgwghggwgxwxxggvvwgwwxxwvvwwxwxwwwwwgvgwwvwwxwwxxwwwxwwwwwwvwwuggvxwwxvgvwgwwwfggxxwxwwwvgxwwvwwfxhgVxWwhwgfvgwwwhwwwwwwxxwwwxwxwfwxxwwwgxvxwwggwwxvwvwwwwxwwwwxwwxxxgwxgxwwwxwvxwxxvgxwvxwxxwdgwgvfvuvvuvwwfwwwvwwffvwvvwuwvgfwVwvwvwvtvxwvvwwEbvfffveuufvwvvvgvvfvwvwwgvgvfvuvtwvuwvvwguwfgvwuwwwvvgffvwvguvgfTwggvuvgvwwwwefvvgwwwwvvwgfgvwwwgvvwwxxwwwwxwveUwvfvwddUuwwvGvwwvgwwwwwwxwvfvvvuwgwvgwwvwvwwwgwwwwwwxxxwwwwwuwvfwwwwwGtwwwfvwwvvwwwwwgvwufwvwwwwvvvwvwtwxwwuxwvwwvvvwvwwgwgvwvwvwwvwfwwvWwgfvwwwgwwggvwggwwwwWwVgVewfGvwwvwgwwwvwwxwwfggwgwwgvwgxwxvxwghxvxwwgxgwwxwwwwwvwwgwwvwwhwvvwvhvwgfwfvxwwwwwwxwxgvxwuwggwwwwwwwgfwwugvwvvvwgwwwfwwwvxgwuwwwvvvvwwwxwwwxwgxwwvxfwvvfvwvwwwgwwwgwwwwwwwwwwuueuvWvfvwvvwwwwwvwwwwgwwvwvGgfwwwwwvwgwfgwwvuwwvwwvwvwgxwwwghwvgvggwwwwwvvwvwvwwgwwvwwwwwwwwwxhxWwwwwwvwwggvxxwwwwfvgwwwvvxwwgvwwxxxwgwwfgxwxwwxwwwwxfwxhhwwxgxwxwwhwwwvwvwvwgxwwwgwwvwwgwWwwuwhxwvwwvwhwvwwvxvwwwwvwvwgugwgwvgwxvwvwehwxfghgwxwwwwwxxwxwwwvwwwwgwwgxwwwwwwwwgxgwgewfwWwxwwwvwxXwgwwwxwgwxwwxwwvwwvxfggvgfUffvvfwgveVvxwxuwwgwxgvuhwwwvxwvgvgwwxwvwxwwgvvwegVvvhgvgvvguwVvgwvwwwwwwxgvggwwgwvwxwgwgwvgwwwggvwgwgVeevgfffgffvuwfgfgwgwvfwwwwhvgggwvwxxxwWvvxgwhwwwwwxwweWevggvvvvfgwwvggwvwxwwhwgwwxwgggvggwwvgwwwwwwwgwxwxggwwwwvvwuwgvvWfwvwwewgwwvwwgwwwxwwwWfgwwxwgwgxwwwxwwxwwgwvgwvwwvwwgwwgwvwxwwwwgwwvgvwgxwwxwwwwwwwggwgwgxwwwwwwwvwggvuwgwwxvwfvWfvvwwhvxwxxgfwwwxxwwwxgggwxghgwxvwvgwgwxwxwwwwxwwwwwwhxwwvggwwwwwwvxwwxxwxwvxxwwvffvggvvvfwwwvvwfwwwwwwvwwvfgggwvxwvxxhwwwxgxwxfwggvvwwvwwwwwwwwhwxxwxwvwwxwwwxwgwxhwxwxwvwvgwwgwVvvwwwvhwvwgwxvwwwgwggeWvvwxgxwwxwwwgwggWgfxwxwxwwwvwxwgfwgxwwvwwhxxggxxxwxwvgwhwwvwwxxwxhwwwxxwvgvgwwwgvwwwgxwvwxxwwwwwwwfgvwxwxxxxxxxxwwwhvxggwxwfvwvxxwxxwwwwwwwwwxwwxwwxwwwxxwxxwxfvwxxwxwxxxwwxwvuxwwhvwwwxgfUxxwgwxWWwwxwxwwwwwwwxwwxxwwxWWfwvxwwwwxxgwwwwwwwwwwwvxwxwhxwvvwgwwwxwxxwwxgxwhxwwwwwfwwwvvwwxwwwwfvwwwwvgwvwfvvwvfvwwxwwxvwwwvwvwwgwwwfffwvfvwwwgvgwgwgfvwwwwxwwfwffvvevwwvvwvvgwwfvvvvvvwgwfwgwfwwwwwvevfvvgwfwvwggwvhgfgvwwwwxwwvwwwwxxwwvwvuvfefwwwwwxfgfvwvvwfwwwwvwgfwvwgwvwxwxvwvwwwwwwwxwwgvwwwwwwwvwwwwwfwwvwvwwhxvvgvwvwwwvwgwwwwwwwvgwwwxvwgvwwvwvvxwwwvwwwwwfggwxxghwgvfvvvvgvvwwwwwwvwxgwfxwhgwwfwgwvvgwvxwwvgwwwwwxgwwvwwgwwgwxxwwwwxwwxwwxxgvwwwwfwxxwgwgwwhxvwxwwwgwwvwwxxwxwxwvxwhgwwwwxxwxfwxwvvwwwwvwgfvwwvxxvwwfvexxhwwwwxvvwvgvvwvvgwwxwwwwwwxxwfwwwwwxwxwvxxxxwwxwwwxvwwwvwhvwwwwwhwwxwwhwxwwwwwfggwwwxwhwwxvxwxxxwxwwwwwvwwwwwwxwwwvwwwgwxwxwhwwwgxwwxwhxxgwxfxwxwwgvwwgxvxxvvwwfwwvwfgvxwwwwxwwwxwwwwxwxvwgwwgwwvwxxhxwxwxwxwwgwwxwwwxwwwwvwhwwwwwxwhxxwxvxvwwwxwwwgwxgwwwgwxwxxxwwxwxvxwxxxhwwvwxwxwwggxvxuxwwwewxxwwwwegwwxvwwvwvwwwwvwggfgwwgvvwwvwvwwvwwgvwWvwugwfwwwwwwwwwfxwvxwwwgUfvgwwvvgwwwwwwvwwwwwwvwwxggwwwwvxwwwwffwfwwxWfvhwwwxxvwwwxvwxgfwwxwfxwxwgxvuwwwgvwxWxwwwwxwxxwwvXwwxwwgfwwwwgwxvWfVwvxvwxVwxxxwvxwwxghwwwvvwxxwwwwxwwwxvwvxWfvwwwwwxwxvggwwxwxxgwwxwwwwwxxwvvvwgwwxxwxwgvgwwgxxxxwwwxxxwxxwxwwxvggxhwwxwxwwvwwxwwwxvxwwxvwxwwwwwxwvggxwwwWwxxwxwxgvwwvvwwwwwxwwwxvvwwwxwxxvgvwwxxwvvwwwxwgvvwwwwwwwfvvwxwxxwvxgxhhwxxwwwwwwxwxwwwwxwwhwxxxxxwgvgvvwwfwwxfwwxwwwxwwhwxwwxwwwxvwxwwwxwxxxwxxwhhwwxwwwxwwwwwxxwxwgwggwxwwxxxwgXhvvwwxxxvxwwwwxwxxxwfxxwuxuvffxwwxvgfgwxwhfwwffgvgfuvwuwwwwwvwwwVvwwvvfgvwwwwgwvwvwvvwgwwwvewwgffgvfGgwuwwhwfvgwwgwvvfvxvvgwvwuwfvwwwwwwwgwvwgfxWfgvvwwWfwvwwvvvgwhwgvwfvfgfvwwvwwwfgwghwgwxgwfwwwgfgwfWgwuwwgwfwwwxwwwgwhvwwwWfguwuwfewwwwvwwxwwxwwwwhwvxxwvvwxvgvwwhfwvwWwwwwgxwwwwwggvvwwvwwuxxxWvwvwgwwxgvgwxwgxwwwwxwghwvgwwwwwwwvwwggwxggwwwwvvvwwwwwgwwwwwgwwwwgwvwvwwwwwwwwxxgwwxfgwwuvwxwwwwwwwvwxwxhxvgxfwwwxwxwxwhwxwwwwwxwghfxwXwvwwwwwxxwwfwgwghwgwxxwwwwwwvvwwwfvwwvvvxgxwwewwwgwvwwxwxwvvxgwwfwwxwwwxwwgwwwwxwwvwwxvuwwwwVwwwwwwwwwwwwfwwwwwwwWgwxwwwwwwwvwwxwhwvgwxwgwwhvwwWwvwwvwWwwxwxxxwggfwVxvxXxwuwgwwgxxxwwwwwwwgxgxwvwxwwgxuxgwwwhxwvwwwxxwwwwwwwwwxwwxxwxwwwwwgvwxgwxwwhwxxwxxwgwwwwgxgwxwghwwvxwwwvwwwwxwxwwwwwxwwwxhwxvxwxwxxwxxwxxxwxwxwwxwxhxvhwwvwwgwgxwgwggwwwxxwwwwwwxgxxxwhwwwxwxwwxvwwwvxxwwwwwxxugVvwwwwwhvfwuwwwvwvwwwwwwwwfwhwvwvfwwwwxwwwxwxVvewwwfwwwwwwuwvgvwwwgfwvxwwwevgugvgfwhwvwfuvwwwwggwxwfwvxguwwxwfvwwvgwwwwwwwuVvwgwfwwwwwxwefwgwxvwwxxwuwfwvwxwwfwfwvvwxwfwwwwwwVvewvxvwwwvwxxwgvggwvwgwwwxwgvwwvwwwwxugfxxwwwwwwwwvwwwxxwgxvgwwwwxwwhwwwwwwWWwwwxxwgvxwxxxvhxgfwwwwgfwwwxwwwwwwfxwwxwwgwfwwvwwvvwwwwwwxxvwfwxwxgwhwwwgvxxxgvwwwvwwwwxwxvwxwxxwwwfxwxgwwwvxwxxwxvwwwwwhwwwwvwvxwxxvwwwwgxwxwwwvvvxwxxxvgwwwvxwwwxwvgwvvvwhgwwwgvwwffgwwwwxwxxwfvvxwwxwxwVvwgwvwxwwwgwwgwxwwgvwwwwwwgxvvuwXwxwvxxxVvvwwwvwxxwxwwwgxhgvxxxxxwvvwgxxwxxxwufwxwwxwwwwvgvwwhvwwwxwwvvxxwwwwxxwwwwwwwwwvwxxgggxxxwwwwwxxxghwxhwxvgvwwghxwxwgwvwxgvwwwwgxxxwwwwggguwxxwgwhxxwwwxwwwxxwvwwwwgvxxwxhwxxxwwvxxwwxxxwwwwvxxufUwwvgvuxwgeUfvgvwwwffwvwgvwwgewvwfvwtwwwwvwfvvwvwwgfvvwvvvwwwfggdgvwwgwgwVvwffwwwwufwVvfWwxwewvvwvfvgdwgwwugwwwvwgewgvgvuvvgewwvvvwwwwwwhvwvwguvvfvgwXewfvfwwwwwxwwxvwwgwgvdvwwwxvwewuwwvfgwxhgffffvxwuwwwgwwwgdwwvwwwwxxwwwwggwwgfwwwgwwwvvguuxwwwwggwfwwvwxwwuvvwwwwwvxwVvgwwxfxwuwxwgwwwxwhgwwxwwwvvwxwwgxwwwwgVvfwwwwwgwvwwxxgvwwfwwwvgwwwwwwewxxfxwxhgvfwxwwwxwgxgwxvwwvwwwxwxxwvxwxhxvwgwwgxgxvxxwxwwxwwvxwwxxwvgwwxvxxwxwvxwgewvvwwwwwgvvwvwewxwwwvwvuwfvvvwfwwvwwvxwxwvwfvfdwwwwvvwvfwwwxvxwwwwwwwwxwgwwwwwwxgwwggwwwxwwwwwgwwgFwvwwwwfvwxfhxwfvgwwxWxwxwxvghgvwgvxvwVwwwwgwwwxxvxwwwwxgxwwwwxwwwwwwxhxxwwhwwwwfvwxwxxhgvwwxxvwwxxvwwxwxwxhxxwwxwwgxwwwxxxxwugxwvxwwxvwgwwxwwxwxwwxxwwgwxxwwwwwxgwwxwwxxxxgxhhhwvgwwxxVwwxwxxwxhgwwwwxwwwxxxxwgwwwxwwwxVxxxwgwwxwgxxwxxxxxxwwwwwwxuwfWwuwfvvwggewfvuwfgVugfwfffgvxfffwwwwuwgwfgvvwgxwwfgggwggfVuvvwfvewvwgvgvWWwvwfegVvgwffvuwVwwvwwgfvvvgwgvvgvwvvvwwwxfguwgvwwvvwggwwwwgVvgwxwgxgfvwfwwuvwgxwXfvgwxwwhvwxgwwxwggfwfwfwfwvwwwwxgwWggwggegvfxwgwfwuwfwwfvwwwgwgfwvfghgvwvwxwwwwgfxvxwgvvxfWwvgggwwuvxvxwvfWwwwwvwwwxwVvwxwwhvxhwwggfwwgwwfgfwwwvvwvwwwwwwxwwfwwgwfwwwwhwwwvwwwggwggwghWggwwwwgwwgwvgwfvwwwwxVvvwxxwXwwwxwwvwxwgwvxwWgvfwhgxgxwxvwwxwwxwxwgghvgghwxgwgxhggwwwvxxwwwwwwgxwvwwwwwwggxwwwwxgwwwwwggwwwvwvwvgwwfvwwvuwwxwewvvwwvwwwxwxffvvwgwvwwwgvwuvvwvvvwwwwwwxfwgxvWvwwgwwfVwvwxwwvwwwxwgvwgxwwxxwwwxwwwfwWwfwwwwUgwwwgwvhgwwWgwewfwwxwWxwwgvwgxhwwhxwhwgvgfvwvwvfvwwxwwwvwwhxhvxWwvwwvwhwxwwwxwxwwxwwwvwxwwwwxwwwwwxfvxwwfvwxwwhvxfwwgvvwwxvgwxxxwwxwhxxxwwwgvwwwhwxwwwwgxwgvwwwghvggwgxvxwwxxwwwgwwwxxfxxwwwwwxxXwwvfwwghvwfxvvwvwWgvxwwfwwwwwxwwwwxxxwvxhhwwwgwwwgxxgxwvwhxwwhgwxwwwwwvwwwxxwwuwvgwwwwfwvvwwwwgvgwwwwwwwfwvwwwwwfwwwwVvvwvvevffwgvveVwwwwwwwxevfvwwwfvwxfwwwxwwevewevwvfwfwwvwvvvvwwwvggvwwwwwwwwxwxxUfVgfvgfwvwgwwwVwfvxfgwwwxggfuwwxwwxvxwwwxwwxvwvfvwfWvwwfwwwwgwvgvwvgxwwxwxVffvwwwwvwgwxwwvxwxwwgwwwfwfvwxwwwxwxxxxxwxyufvwvwwvgxvwvwwwxxvwxvwxwwwwxxxxxVwffxgwwwwwxwggwvgwwwxwwxhxxwwwwxxwxwxwwwwwwgfvwwwwwwwxvwwvwwwwgwxwwxxxvgwgwgvgwxwwxwwwwwxvxgwwgwgvwfwvwwxwgwwxwwwxxgvvwxxxxxxwxwfwvwwwwxwwwgwwwwwwwxxwxwwgVvvgwvwxgwxxxwwwwxxvwgwxxwwwxwxggwwxxwxwxwwxxwxwvgwgwxxfvvgwxwxwwwxxxxxxwxxvwvwwvxxxwwwwxwxwxwwwwxxgxwxueuwuvwwevvwfwwuvgwwvffwwvfxxfwvgvwfvvvvwwvvvwwwevvfgvfgvfvufgwwvwwwvWwufwwfxvuvwvvewvvvwvwwwgVwvwwgVvwwvvvwfwfvwgfwfwvvvvwvwwvvwvwwvgwwgwvWwvwwwwwwwuvfvfvuvevvvwgwwuvwwgvwgwfvwwxwwgfvwwffggwxghwwwwvxxgwfwvwvfuwvWvwvfwgVfwwxvfwwwwwwwugwwxWvxwwuwwwvwvwwwwwggvwwvwwfvwwwwwwwvVwhfgwvwwXxfwvwwwwwwwwwwfggwhwwfxxwxugwwwwgwwwxfufvwwvwvwvwwwwwgvwxwwwxhxwwwwwwwfxxhxhvvfwwfwwvwwwwwvgvwwwggwfgwwvffvwwxxgxxfwwgwwgwgwvvwuvwVfgvvwwwgwwvvgevwwgwwvwwwwwwgwwwwxwxwwgwfvevfwfVvvwwwwwvwwxwuhwvwxfwvvwxwhxvxwwwwhxvwvvfvwwwwWwfwggwvwvwvwwvWwxwgxwwwwwvxvvxwxwhxxxwfufwgwgvvwfwvwvwwwwwWvhwwvwxwWxwxwwwxwgwwxwvUfwwwvvvwxfwuwwwwhvwwwhxhxwxwwhwwxxwxwxwwxhwwwxfuwgwwvwwwwWhwwvwwhxuVxwwwwxxwwxxwxwvwgwwWvwvvggxwxxvfwvxwvgvvwXhgwxxwxwwwwwxhwxxwwwwgvvvwwghwxxxwfwxgvwxwwvwwwwwxgwwxxxwxxgwwwxxxfvwwxwfwwwvwvxvwwxwwwfvwxwuwwwvwwxwwwwvwwxxggwwgdgfuwfvvgvwgvwhwGvfwggwwWvfwxwwwxwwWwwxxxxvwxwuwwuwwwvvgvvxwwwufwwwxwwwxxwxvwwwwxwGvvvgvwfwvxwwfvGghwwhvxxwwwwwwwxwxxxvxwxwvwwwvwgwwggvwwgvxwxxvvguwwwwwwwgxxwwxwwxxxxxwwfxxxwgwgwwwgwvwhwwwwxGwgghwwwhxxxxwxxxwxxxwxxwvwgwwwvxvxfwwwxwwxvwxwwwxwxwxxwwxxwwgwwxwwwfwfwwxxxwwwwxwxxwwwxwhwwwwwwvvvWxvvwwwvxggwwwxxxxxwxxxgvwwvwwgfvuwwwWwgvwxwgwwwwwwxwxxhwxxwwwvxwfvgwvwwwwwwwwwwwwwwxhxwxxxxxwwwwwwwhwwhvuwwxxwwxwxxwxxxwxxwhwxwwvwwwwfvxxwwxwwxwwXwxxyxxwxxxxxxwxgwxwwxwgWwgxxwgwgxwxxxxwwxxwwwxwfwwwwwwxvwwxxwxxxxxhxwwwwxwxgwgwwxxwxwxxvvvvxwwwwwwxwxwxwwwxxwxxxxxxwxxwxtfgvvwgvwvggwvfvvwwwfgwwfvwvfwwxwwfgfwwwwvwwvvwwfvevwvwwvwgvfvwwgvvgxvwwwWwvwdvwwgwwvvwvwwwwwwufwgFfweugvwfFfwwgfvwwxuwwvvwwwwxwvvwwwvxvwxwfVwvvgfgfwwwgvvwwwwwwxgwwwwvvwwvvwwwxwwxwwwxxwwwwxxwxwwvfvwwwvwwwgwvggwwwxvwwwxvvwfvwwgxewwgwxwxwxvvwxvwwwwwggwvgvvwwxwwgWwwewvxwwwwwvvwxwwgwxwvwUvwwwwfvwxxwvuwwwwwwwxwwwwwwwvwwxgxwwwxwwwxwvwwgfwfgwwwwwfwgxvWwxxvwwfwvxxwwxwfwgwwwxxxwwvwwwwxwvvvwvwwxwvvhxxwwgwxxwxvwwxxwxxwvvwgwwwwwwwwwwwwxwwgxxgxwWwvwwgxvxxxwxwwwwxwxvwwwvdvvgWuvwwwvdvvxwwxwwwxxwwuvwwuwxxwwwwwwwwwwwxvuwwwvwwwwwwwwwwxxwxxwvwwXwwxvwwwxxxhwwxwwwvwWxwwwxgwwxwhxwhwgwwxwxwwxxwwxwxwxvwwwWwgvxxgwwwwxgwgxwwwxwwwwwxxwxwwgwwxxxxxwefwwwxwxwwwxxwxwwwwwwwwwxxgxwxwxwwwwwxwvwwxwxwvwxWwxwxxwwwxwxxxwxwwwwwxwxuvwvvwwwwwvvwvwwgvwvwwwwvuwwwvwvwwugxwwwwwwvwxwxwvwwvgvwwufwwwwvwvuwwwugwxvwwwxvwwvvxwwwwwwewuwvwwvwwwwwvxwwxwxvwuwwwwwvvwwxwwfvwwvwxwvxvwwwwxwxxwwxxxxxwgvwwwwxwwwwvwgwuwvvvwwwwxwvwvvxwvwwwxwwwwxwvwwwvwxwwwxxxwxwwvwwwxwwwwwxwxxxxxxwxwwxxvvwwxwwwwwwwvwwxxwwwwwxwxwwxxxwxxwwwwwxxwwwwwwvwwwwwvwxgwxxxxwxwvvwwwxwwwwhwxwwwwxxwvxxwwwgwwwwxwvwvvxvwuwhhwxxwwwwwwxwwxvwxwwwxxgwwvwvxvwwwwwwxxxwxxvwxwwhxwwxxwwwwxwwxwxwxwwwxxwxvwhgwwxxxwwvwxxxwxwxxxvxwwxvwwxxxxxwxxxffvwwwvvwgwvwgwvvxWvwwfwvvwwgwxwvgwwwfvvwvvwgffwwgfvvwwwvvwgvwwvgwwvWwvwwwwvewfwwwwvgwwwdfgwGfwfvwwwwfwwwwwwwwwgUwvwwwVwwvwVwwwwewfxvvwvwvvwxwxvwxvvfwwwwvwgwwUfwwVUwwwwwwxvvgwvXwwvwwwwvwwwwwwvwwwwfwwwwwGvvgwwwwuwvwggwgwgwwfwwxwwwwxwwwwwwwxwvwwgwwwwxwwxwvxwxwvgewxwWwwwwwwgwvxxwhwhxwxwfwwwwwwxgvwwwwwwwwvxwgvwwxwwwxwuxwwwvwxxwwwgvwwwgghwvfwwxxxwwwxwxwxwwvwwwwwwxWwwxwwgwxwwvvvwwGgwvwgxwvwwxwwwvwwxxwwwxwggwwwwwfwwxvGwvhhwwwwwwwxwwwwwwxwwwvvxwwgwwwxgfgvwwuwwvuxgwvxwwxvwxvwwxxwwwhwwxwvwwwvwxvxwxvwwfxfwxxwwwwxxwxhwxxwwhwxxwwwwfVwwwxwwwwgwxwhwwxhwxwvxxxvxwxwwwwxwxxwxvvwWwxwxxwwhxxxwfwwwwwxwxwwwgwwwxwwwwxgwwxwwwwxwwvxfgxwxwwwwwwwwwxwwwwxwwhhwwwwvvwxwwxxxhxwwwwwwxxwwxwxwxwwwxwwwuvvwwwxwvwwxwwwvvwwwwwwwwxvwgfvwwxwfwwwwwwwgwwwwwwwgvwggvwvwWgvwXgwuuvwgwwguvwXgwgwwvvwwvwwwhwgvwwgxvwwwgVewvwxwwwgVewwxxvvwwxgeuvfvfwvfwfvvwWffwwWgwvvwvwwwwwgwvwwwwxwgvgVugXwwwxxwwxhwwwwwwfwwwgwwwwwwvvwgvwwhvvwxxwgvwfwwwwwxwxwxwwuvwWgwfvwwwxwgxwwwwgwxxwvxwhwwwwxhxgvwhwwxwwxwwwffvvwwxxxvwghvxwwxfvfxwwxwwwxxxvwwwwxwxwwxwwwwXuvwXhwgxgfwwwhxvxwgxhwwwwwwxwwwwwwwgwwwvwwxxwwgwvhxwwwwvgwgxxwxwwvvhgwWvwwvwwhwxhvwxwwwwxxwwxxwxwwvvveevfuvxvxeevxwwuwvwgfewxwwxxwxxvfgvgwgwwwvwhxhxvwwvxwhhxwhxwwwwwwwwxwgwvghxxwxwwwxgxwxxxfwgwxxxwhwvxxwxwwwxxxvxxxxxwwxwxfvvvwgwxxxwwwgxxwwwxwwwwxwxwxwxxxxwwwwxxwwvvwxwhgvwwwwwxxxwxxwwxwexvwwwvvggwgvwgvvwwwxvvwxwvwwwgvvwxggwwwhvvgfuxwwXVegwxgvfwwxxwwwvwvgwvgwwgVwvxwwvxvwwgwxvvwfwvwgwwxwgwxvwwwwvvwvvvwvwwwwwxWuvwwvgwvwvvwwxwxxveVgwxwwxwgwwwhwxxvwvwxwvgwwfvwhhwwxwwwwxwxvwwwxxwwxxgfWwxwxwvwxxwgggxwwwfwwxxWwwwwvwvgwwwwvwxwxwwxwwgwwwvwvgxgxvwwxwxwwxwwwxwwwwgwwxxgvwwwvwwwwfwwwwwwwwwwwxWwvxwxgwwwwvwvxxfvwhvwgwxwxxwwxxwvvwxwwwwwgwvgfggwwwwwxwxwxxwxvffwwwxwxxvgxxxvxxwxxxvwxxxwgwwwuvwwxxxxxxwxhwxwxxwfwxxwxgwwwxxxhwxwwwwwvxwwvwxwwvxgwgwxxwxxxxxxxxxxwwwxxxwgwgwwxwxxxuwwwwvwfgwwgvwvwwwfwwwvvxwwwwwgxgwwgwxwvvwwwwxwvvxgwwwWwvgwfvvvxwETfgvwfffwgwvwwwvwwwwwvfwvfUwwwwwgwwfwgwfwwwVeUvvwgfwwwwwUuuwvvggwgvvwfwwxxwfvwwwwhvvwwxwwggxvwwwUuuwgvwxfffwwxwwgvXfwwwvvvwwwvwwwwwwxwwxxwwwwvxwvwwwgvfwwwwwWgwwwwwgwwwxggwwwvvwwwxgvwwxvxwgwxwfwwwwwwwwwwwxfvgwxxwwwwwwwwwxwxgwgwxwwwxxgwwwxxhvxwvgwgwwwxUvvwxgvvwxgwgxwwwhvvwwwwwuwwxxwwxwxwxxwwwwwwwwxxgxwwwxggwwwwwwfwwwVewxwxxxgwwwxwwgxwwwwfwwwgwgwvvvvwvvwwgwwwwxgvvxwwxwwwwwvwwxwggfwxwwwwwvvwvfwwwwUwwwwgwwwwwvwggfwwxwxwwwxxxxwxwwwghwxwvvwfwwuwwxwfvwgvwwvwwwgxwgwxxwhxxwwwxxwhwwxwwvwwvvvwgvxgwwgwxwxhxgwwxwwxxwwwwxwwxxxxxhgxwwwvvvwwwwwwwwxwwwxwwwwwwhhwwwwxwwxwwwwwwxwwxwwwhwwxxwwwwwxwxwwwxxxwxwwwwhwxwwxxxwwwxwwwvvwhwxxxxxvxhfwxwxwwwwxwxwhwwwhxxwwwxwwwwhxxxwwwxwwwwwxxxgwvxfwwwwwxxgwxwxwxwwwwUwwwevvwvwgwwgwwvxwwwwwvwwwvwvwwwwvgfwwwwwvwwwgfdvvwwwVgvhvwwhvvwhxwwvfuvuugwgwwvwwgxwwwxxxvvfvvfggwgwwwwwwwwwwxwfwvvvhwghxwwwxwwwwVuwuufvuvWgwwwxwwxwwwwxwxwwuwvwhwxwwwwwxxwwwxwxwxxhewvwvwwwvxwvgvgfwwWwwvwwxuwwwwwwwwxwvvvwwwvwxwxwwgwwWwwvwxVwwwhvgxwwvgwvwwvwvwwwxxwxgxxxwugwgwwxwwwwwwvvwvgwxwwxwfxwvwwxggxvxwuwgwxxvhwvwwwvwwvwwwwwwvxwwvvwxxWwwwwwxxwwwwhxvwfwwwffwwvgwgvugwwwwwwwwwwwwwwhxwwxxxxwwvvgvwgwwwwxwxhxwxwwwvwxxvxxxwwxwgwxgvVvwwwwwwwwwwxxvvwxfvwwgvwxwwwwwwwwxhxwwwxwgwwwwfvXwxvwwxwxxxwxwwwvvwvvvwwwxwxhwwwwvugwvxhwwwwwxxwwwhwwxxxxwxwxxxhhwwxvwwwgwxwwwxvxxwxxwxxwwwvvxhxwwvwgwvwwwwhxxgxhxxwwgvwgwgwxxxxxxxxwxxxwwwfwgwwwxwxxwwwwxwwwxxwxwvvvxwwwwgfvwwwwwgwwwvwwwwwvwwwwvgwwwwwvvxwwwwwxvwvwwxvwwwwwwwwwwvwwvwwwwwhvxwxwwwwwwwwwxffvwwwwwwwwwwwfwwwwfwwwvwwwxwxxvwxxvgfvwvwvvwwwwxfwwxgwwwwwwvfxvwwgxwwwxxwwxwwwwwwxwwfwwhhvwwwwfvgwwvvxxwwwwwwwwgwvwxgwvwwwwwwwxgwwxwwwxwwxwwxxvwwxwwwwgxwxgxwwwwwwwwwfwwwxvfwxwwwxxwwwxxwwxvwwwwwwwfwwwvgwwwxwfwxxgwxwwwwxwvxwxxwxwxxxwwwvwwwwwvfwvvwxwwwxwwwxxxwxwwvwwfwwxxxwxvwwwwwwxwxwxwxwwvwwwvwvwwgwwwwxwxxxwvwwwxxwxwwvwwwxwwwxwwvwwwhwwxxwwwxwxwwvwxwxxxxgwvxwxwwwwwwxxxwwwwxwxxxwxwwwwxxwxxwgxwwxwxxwxwxxxwxxwxxxwwwvwxwwwwgwxgxwwxxxwxwwxxxwxxxwwwwxvxwvwxxwwxxxwxxxwxwxwxuvgwwwwwwgwwwwwwwwgwxwgwvwwggwxwwwwwwfvwvwvxfwwwwgwvwvgvwfvveuvwgfvhvwwwwgwwwvwwwvwwvwvgwwwwwgwwwwwwwwhwxfwwvwvwhWWvuvwfVuwfwvxwvwwwwWWvvvwxwxgwxwwwwvwxwwxxxxgfvwefvwvwvwvwwwfwgvggvgwwvxwwwgwwwvwwvwwvwxwwhwhgwxxvwxvvwwgwwwvwwwggvwwhgxwwxxxwwvwvvwxxxwwvwxxwwwxhwfvvwvwvwwwwwwgwxwxwxvwwwwxgvgvwwwhwxwwxwxwxxxxwhwwxwwgfvvwwgwxgwgwwwwwgwwwwxgfxwxwxwwwwwxhxxxxwvwxxgwgwvwfwwwgvwwwwwvwwxxggwwxxwwwwwwgwwwxwxgxwxxwxwxwxgwwwxwvvvwwhwwwwxwwxwwvwwxwxxxxwvwxxxwxgwwwVvuwwwxwwxwgwwxxwwwxhwwwwwwwxwxxxxwwxwxxwwwwvwwvUwvxuwxVguvwwwxvwwvUwvxxwwwxwwhxxxgfwwwugxwwwwghwwwxgxvwwxwwwwxwhxxxwxxxxvwwwwwxvgwwwxxgwwxwxxwwxwwxwxwxxvxxxxxxxwwwwwxgxwwxxxwxxxxxhxxwxxxwwwhxwxxwgfvwwvgxvwwvwgxxwxwwxwxwhxwxwgggwwwxgwvgwwwwvhxgxgxxxxxwxxwwwhxwwxxxvwvwwwwhxxhvwwwxwwxfvvwwgwWvwwwvvwwvwvwhxwgvxvvuwwwwxwwgwwwwgxfhxwwwwvvfwvvvwgwwwggvwwhxvgwVgvwxwwwwvvwxvvwwwwvwvwwwwwwwwwwxxwggvwwgwuwvgwwgwgvgfgxwwwwewgvwwwwxwxwxvxwxwwwxxvwWgvwxwewgvwwwwxgwwvwvwwxxwwxvwwwwhvwwgwvvxwxwwxwghvxwxwewwvwuvxxwxxvwxxwwwxwgwwwwwwwwwwwwwwwxxxwwwwwxewxvwvwwwxwwwhgwwwwwxwwwvwwwxxxwxxxwhwwxwwxwwxwvwwwwxxwvxxxxxxxwwwxwvwwhgxwwwvwwxwxwwxxvvwwwvwwwwxwgwxxhwgxwwxwxvvxwxxxwwgwhwxhwxwwwwxxywWwwgwwvwxwxwxxwwwxxxxxxwvxhwxxhgxxwxxwxwwwxwwxxwwwxxwxxxxxxxxxwwwwxwwwxxwwxwxxxfwwwwwvwwwgwxhwwxwwwwxgwggvvwxwwwwwwxwgwwwwvwxfvwvvwwwgwwwwvwwwvfwwgxwwwxhwwxwwwgwwgwwwwfggvgwwwxxxwxwwwwwwwwwwxvvwvwhxxgvwwxwwvwwggxxwgwwwwhhfxvwwwwgwxwwwwwwxhwwwwwhwwwwwwwwxwvvwwxxwxwxxwwwwgwghxxwvgxhxxgwwwwwwxwfwhgxxxwxxxvxxwvwxxxywxvwwwxvxxwxvxggwwxvwwxxwvwwwxgwxxxwxwwwxwwgwxwwwxxxxwwwvwwwwwxxxxhxgwwwwvwwgwxwxwxwwxxxwgwwxxwvwwwxgwwhxwwwwxwxggwwwwxwvxwwxxxxxxxwwwxwxxwxxxxxxxxxwwxxxxxwwxxxxwhwxwghvwxwwwghwwwxwxxvwwwvwfvvvvwTvxwfwwvgvwvwvgwvwwgvfvwgwvvwgwvwwVvvwfvwwvwfwgwhVexvFwvwwwwvvgvfvvfwvwvwvvfvwwffxwwwvxwfxwvwwgwfwwfvggwgggwfwxwvvuvwwgwwwwwfwwvwwwwwxggwwfwwggxwvgvwwxwgfwvfxwxwwggvwwgxfuwggwwfwwwvgwxwvwxwwfwwwvwwwwwwwvwwVwwvwwwwwxwgxwwgvwvgwwgvwvgxwvwxwwgvvwgwwwWwxwwwwwxwwwwvvwwwxvwvvwvwxwxwwwwwgwgwfwwwwwfwwwvvwwxxxgwwuxWwxwwxwxvwxgwvxvvwxwgwwwwwvvgwwwgwwwxgwwwwvxwwwxwwwwwggxxxwwwwvvwwvvggvvwvwxwgxwwvxfvvvxwgxwfwgxxxwwwwwvwxwxxwvxwwgxwwwgwhwxwvwwwhxwwwxwwxxhhxwwvvvwgwxhwghvvvwxgfwgwwwxwvwwwxxhxwgwxwwwwgwwwxhgwwwgxwwgwvxxwxgxxwxxwwwwxwvgwwwxwxxwwwwvwgxwwxxwxvxxhwwxxwwwwwwwxwxwxxwwxwxxwxxwwxwxwxxxxxxwxwwxwwxwwgwwwxxxxwxhwvwxwwwwwwxwwwwgwxxwvxwwwwxywhwxwxwxwwxwwwxufvvvwvvwwwvvvwfvxwWvwxvvwvwwxwwfgfwwvuwxwfffvgvvxffwwwwwwgvvwggvfwwwwwfwevwwvvwWvwfufwwwvwwgwwwwxxewwvwvwwvwfufggewwwwwxwfwwvwwwwxwwgwfwxhgwwwwfwwfuwxwgwwxwwgfvvwxwwwwwxfvgwfvvggfwwwwvwxwwwwwxxwgwwwvgvvgwfgfvwwwwwvxgwxvWvwvwgwvvwwvxwwwfwxvxggvwwwfgwfwxxwgxvwxwxwwwwwwxwvgwxwxwxwxwxgwvwwxxuffvwwwwwwvgfwxwwxwxhwwvvwvxvxwwxhvwgwvwgvwwwwfwwwgwwwwwwwwwwwwwwwgwwwwwwwwwwwxxwhvhwxxwwwxwwgwwwvwvgvwwwwvWvgvwwwwgwxwxxxwvwwvwwwwwwVvwxxhwwwfWwvwxwxxwxwwwwwxxuwwwwwwwwwxvwfwuwwwxwwwwggwwxxwxxwvwxgvwhffhwxwfvvwgvwhxwgwwwwwggxwvwwwwwwwwgxvxvxwwxxfefwwxwwwwwwxwwxxwxwgwxxxxxwwxxxxevwgwwwxxwwwhxxwxwxwxgxvgwvxxxxxgvvvwwwwwwwwvxwwwwxwwwwwwwwhgxxwvxwxwxwgvwwwwxwwgwwwwwxwxwvwwxxwwxxxwwxxxhdvvwvwwvfwvfgwewvxvwvvvwfvwxuvvvvvwwwgfvugvwvvvxWwuwwwvwfxgvvwgVtwuvgwwvwwwwwuvfwvwvgWtwuugwvgvvfwXvvvwvwgvgwXwfxevvvgwggugwugfvwvwfvvvwwgguweuVvevwwwgvvuvwwwhwwwwvvvuvfdegwvwwvvwwwvvgwwwvwhwudfvvvwwwHwwvwwwwwwwwwwvwxwvvvwvvwgffvxwwwvwwuvwwggfvuvwhwwvwhfvvxwwwvwhwgvwxxxxvwwxwwwxwxxxhhwwwxwwwwgwwwwwxwGxuwwwwwhwGwuhvwvgwvuwfwxxevwwwwwvwwwwvvwwxxwwvwwwwwgwwvwwwxwwwwwxwwhhxwwgwgwwwwwwwwwgwwwwWwvhxxwwwwwwvwgwxwwvwwgvwwwwwvwuvwgwgwwwwwvwwxxwwwgwwwwwwgfwwwxwwwgvuvggvwgwxxvwwXvvwxwxwwfwgwwwwgxwxxhwxwxxwwxggvwffvwvwwWwvuwwxvwhxwgxwwuewwwgwhxxwvvwwwwxvgwxwwwwvvwwwxwwwwwwfwwxxwvvgwwwwwhwxxwwfhwwywwwtuwvvwfwedwwxhwwwwhxxwwwhhwgxxxxwwwxxwwxxxwwwwwxgxxxgwwxxwxxwwxhxxwwwxvhwxwwwxwwwxgwxxxwxvwwwwwwwwxwxwxwgwwwxwwhwgxxwwxwxwgxwxwwxhxvwwwxwwxwxxwxgwxwwxgwvwwgwvwvvwwuvwgwvwfwvgwevwgwvwgxfwgwfwwwfvwwwfwhgwfgwvxwvwvvvwggwwggvVfwwgvwwwfuvwwxuWwvwvvvvwwwwguwwwwxvwfuvwvwuvwwgvvfwvvwwwwvfvwwgwwwwhwxwwxhxwwhwwvwWwvwwwwwvwwfwWwvwwgwgvvwvwvwxwwvxwvvwwxgwhxvxxvvxwwwwwwgvwwwggwvwgwgwwwwwwggwxwwwwwwxwvwwwwvhwwvgxvgwwwvvfwwwxWwwwxgwgwxwhwwxwxxhhxwwwxwxwwwwvwwwvgwgwxwxvxxwwgwxwfwwwvwxxxhxwwwxwxvfwxwwwxwwwwwwwwxxwwwwfxwwxxwxxhxwxwwgwwxhxxxxxxwwguwwwuvwvvwwxxwvuwwwgxwwxgwwxxwxwxwxxgwwwxwxwwuwwwvxwwxwxgwhwwwwxwhxwwwxwwgxxxxxhxwwwxwxwggwxvgwwwvwvwgwvwwwwxxgwxvxhwwwwxxhvwwwwxvwwwxwwxxwWxwxwwxwwxwxxwhxxxxvxxxxwwwfgxwwwhwwvgxxhwwxgxxxwwwgxwxxxxgvwwwxxwwxwxxhxxxhhwxwxxxvyxxwxvwxxxxwwxwgwxxwxxwwggxwxxwxxwxwxvxxxhxwhxxwvwwwxwxxwwwxwxwwxxxwhvwxwwfvvfvwxvwwwvwwwwwwwwwfwfwwwwwwgwwvvwfvwvvwwgvvwwvfuuwwwvwwvwgwfWwvuwvvwvggvwwgwvwxwwwwwxwxxwfgwwvfvwgfvwwvwwwwwgwgwwwggvwvwxwwxwwgwwwwwvvwwffvvvvvwwwfxwwwffvvwgwvwvwwwvxwwxxxxwwwwwxwhhgvgVegvgvwwfffwfvgvwxwfvxfvwwwvwwxfxwxwwxwwxxgwvwvggvfwfwxvvwvwgwxwfwwxxwwwvwvhwwxwhgwwxhxvxhwwvwwvwwvvwwwwwwwwwgwhgxwwwwwwwxwwwxwxwxxxwwxvwwvvwvvwwvwvvvwwwxgwwwwwgvwwwwwwgwxxhwwwwwwwwwvvvvxWwfuwwvvwfxxwgwxxwwwwwxwwxvwvwWwuwwwfxwgxxxfwwwwxwwxwwwxxwxvgfvvvwwwwxwxxwxxwwwwvwwwvgwxvwwgwxhwvvwwwwwwwwwwvwvghwwxxhvwxwwwxwhwxxxxwhwwhxwxwffwwwfxgxxwwwwwwgxwwwxxhwxwwwxxwwxxvgfwwvhwxgxxxhxwwwggxxxvwxxwwwwwgwwwfwwgwwwwgwwhgfvxxxhwwwwwxgwwwvwxxwvvwwwwxxwwwwxvvxxhxwwwwxwxxwwxwvgxwxwgxxvvwvvvwwwwvuwwwvvwwwvwwwwwwwvwwwvxvfwwwwvwwwxwxfwvvvvwvwvwgwwwwvwwwfwfwwgwvwvgvvwvwvvwgwwwhdvwvwwvgwwwvwvwwftgWvvwwwwufwwwwwvwgwwwgVvvwvwxwwwxvuwwwwwxxgffvvvfvwggwwwwgvuwvwwugwwfwwwwwvwvwvgxxvwfwvxxwwwwwwwwwgvwvwvgvwwwwwvwxwwwwvwvwwwvwwwwwgwwxwvvwgwwwwgwwwwwvwgwxwwwwwwxwgwwvwwfxgfwgwwwhxwwwwxwwwwfewwvwwvwxxwfwwwwwvwwgxwxwgwwvxxwwvwwwxxxwwwwwfwvvgwwwxhwvwvwxwgwvgwwwgvwwwgwwwwwwwwwwwxwxwfwwwwwwwwwwfwwwwwgvwwhwxwwwxxxwwwvgwgwwwwFwgwwwwwxvgvwgwwwhxwxxwxxhwxxwgwwgftvvewuwxwvuxxwwxxvwvewuwxgxwxxugxvxvwxxxxwvwvvwwwwxwwwuwwxxuwxwxwxwxwxxwgwwxwxxvxvgwgxwgwwwwwxxxgfxwwxwxxxwwwxxwxxhxxxxxxwwwwgwwxxxwwwwwxxxwwxgxwxxwxxxxwwhwxxwwxxwwvuvwwwxwxxxvwwvwwwwwxxwwwwwxxwwwwxvxwwxwxwxwwwxwwvwxwgwxwwwwwwwhwxvwwwwwxxxxeffUgwvgvxvgewwwfgwgwgvfvwgvvwgwvwfvwugwwvvvwgwwwgvwwfvwwwwwgwvvVfVwvVdweeUfwgvgfvfgfwgwfvfwvweuvwewvwVwewfwwwgwwwwwwwwwfwvwfgewxfwUddwgfWwwvvwgvvwwgwuvwwfffgwwwwwVgwgvwwgwwxwgwvvVwUddveufwwwfWwvvwggwgxwwgwwgvgvvgfwgwgxwwwwwwwxwhwgwxwwwxwfgwwgwfgwgfwvwfVfwgfgwfuuwwwfgffvwggvvvwwwgvwwgwwwvvwwwwwwwgwwgggwfvwgvwfgwggXwVghwwWwhguwwgfwwwwwwvwgwvwwxggwwgwxwwwvwgfffgfuuwwfWvfwfwggxgwgwfvwgwwwfwxffgvwwwxwwwxvvwvfgwwwwwgwwwvvfwwggxwWgwgwVwwwvxwgggwgwwVvwwxwwxfwwfvwvgewwgwwgvfwvwgwvvwwvfvwwwxwwvfwwvgwwwgvxwxwxvwwvxvvfVgfwgvvfvfvhwvwwwxvevxgwhgwxggwxxwgxwggwwwvwwwwwvvgugwwggwfwwgwwgvwwxwgfggvwvwggwxwwgvwxgfxwwWwgwewgwwggVwvwwwwwxwxwhwgwhxxwwxwwxwwWwwwwxgwhwgwwwwwwgwwwgwwwhvwwfvgwwwwWwwvwwwvvwgwxwwwvwgggwwXxgwggwhwxgwwxwgWwxwwxwhxwgwxxfxwxwxwwwxxwgwwgwwgfxwghgxwwwvwxwwgwwwgwwwwvfvwxwwxgwwwgwwvxwwxwwxgwgwxWvwvwwwxwwwxgwwwwvvwxwwxxwwwwwwwwwwwxgxVwwxwgwwxwwwfwwwwwwwwwwwwxwvfwwwvwwgwwvxvvvvwwwvwwwvgwwvggwVewwwwwwxwxwgfuwWgewwxwwwvfvvwvvwwxwwwwvvxwwwwvvwggvegwwwvwxxwvwwwwxWvvuvvVVxxxvgfwvgxwwwvvvwvxwxvxwvwwxxxxwvwwxwwvwwwwwxwvwwvwwvxwhwwvwwvvxwxwggwwwxwxwwwwwxwwwxwvwfwWvvuxxwgwwwwwwxxvwwvvvwwwwwxvwwxxwwwxwwxwwwxvxwwgvvwxwwxwxxwwwwxhwwwwwxwwxxwwwwvwwwwgvgwwwxgxwwxxxwhxvwwwwwwxwwwwwxxwhwxxxwwwwxwwwvxwxvvfwwxwwxwwwxwxxwwwgwxwgwxxwhvwuvwxwxwxxwwwxxwvwxhxxxxwxwwwwhwvxwwxwwwwgvwwxxvxwxgvxwxxxwvwwxwwxvwxxvwxwwxxhxxxxwxxxwwwwwxwxwwxwwgwfuwevvwwfwvxwvvwvgwvvwwwuwvfwwwvwgwvwwvwvwwvwgvuwwvvwxfuwggfwwvwwvwevwwvvvewewvvvVvvvfvwgvvwwwvwwvvvvvwxufwwwwewvvfvwwvwwwgwwwvwwvwwwwwwvuwwwwwwxxwxvvfwwvvvuvgwvgwwvwgwuwgxwwuwwvwxwwwwwwwwwvwwwwwgwwwxwwvvwwwvgwwwwwwfwwvwvwwwwwwvvwgwwgvwwwwvvwwwwvvvvwwwwwwvwwgwxxwwwuwxxwwwwhxfwwwfvwvvxvhwvwvwwwwvwwxwwwwwfwwwvwvwwwwwwgwvvuxwvwwwxwwvfwvwwwhwwwwvwwgwwwgxwxxwwwwwvgvxwwwwvwwgxwxwwwwwwwwvvvvwwwguwwwwwvwwwwwvvwwwwwwgvwxxxwwwwfwwgwwwwgwwwxfvwwxwwfwxwwwwwxvwghwxwxhgxxwwwwvgwvwxgwwwwwuxwvwwwwvwxwwwgwwwwxwwhwgwwwvgwwfwwxwwvwwwwwwwvXwwwxvwxwwvwwwwxwwvvxwwwxwwxwwxwwhvwxwvxwxgxwwhwwwwxwxxwxxggxgxwwwwhwxgxwgvwwwhwwxxwgxwxxxwwxwxxhxvwwvxvwvwxwxwvwxxxwgxwxhxwwwxxxwwwwvwwwxwxxvxxwxxwwWwwxwwxuwwfggvvwwxffvwvgwwwwwwfVvwgvvvvwwffvwwvuwveewfgwvvvwwgvwwWWsgwfwvvvggGtfwggvvvvwgfvWwuvwvgfgvvvewveffvgVvGvwwvwwwvwwwWVewvgwwgfvvgfdvfgvugwwwgvwwxfvwvwwxwwxffvvwwhvwxwghwvvuUfgvwwwvwueVvwg8wvwwwvuvvvwvvwvxwwwvxggvgwwwwwggwwwwwggvwvwuwXWuwxwwxvvwwxfWgvfgwvhuvxxdvvguwhvwvxwwwwwwxgwhggvwwwwxxgwwwwGgtwwwwgggwwxwvWvwg8hevwwhguwffvwfvwffwxuwwwvwgwgwwxwfvwwxwxwwwwwwgwxwwwvwwwwxgwgwxwwwgvwWHhuxwwhwwvwwxxvwwwvwvwxwgXwgwwwwgvwwwwwgfvwgvvwgfwgvvxwwwwwgxVwwvwhxwfxgxwxghxvvwfwfWvwxxwxWwggxwWxxwwwwwxwwgwwwvwxwgfwwwgvgwffvgwvWwvvvvvwgvhgvvfgwwvwhvxxwvwwgwwhwwgwvvgwgvwvwwvwwxwxwwwwghwwwwxwwxwwxwwwXwwwwwwxvvwwwwwuuwwxwhvwwwwwWwxwwxweegwwwxwxwxwxXxhhxwwwwwWwhwwxxwghhhuxxwxwwgxggxwwwgxgxvwgwwwgvwwxwxwwwwxxxxxwwwxwwwwvwwxwwxvvxwwxwwwwvwwxxxxxwwwwwwxwhwvwwxgvwwwwwvwxgwgwVgwwuwwggvwgvgwvwwgwfvfwwxwvwwwfgfwvvvwvwwwwwwvvvvvgvwwwxwwwvvwgwVcwwvwfvfvfvvwvgwwwvvwvgvfwfffgfwgwgwfvgfgvwwvxwxwxvvvfwvfvvwfgwwvvvvvgwgwwxwwwgwgtwUuevvgwwvvwVuvwwwwwhxxwwxwvwfwffvfgwwwwvvwhwgwwwwwwvgUuevvwvGvwwwwwwwwwwgwgxwgwvwwhfvfvggwwfvxvVevwvwwvwvxfwfggwwwwwvwwvwvwwwwxwwwwwxfvfvgvwwwvwgggvwvwxwwwwvxvwvwvhwgwwgvgwwhwfwwxvwvwxgxxhgwfwfwgfvxgwwwwvwvwxwwwwwwxwwVuvwwwwwvgxwwwtwwggvwwxgxwwwvwvgvgvvwxwwvgwwwvwvwxwxwwwwwwwwgwgwxgxwwgvwwwGvhwwgvwvwwvwwvwwWuwgwvvwwwxwwwwwvvvgwfwvwwwwwgxxwfvwwWuxhfvxwwfxxxwvgwwwwwxwwwwwxvhwwwxhvvvwwwwvvvvvwwwwwwwvgvwgxghvwwwvgvwwwxhwwwvgxwwvwwxvxwwwwgwwwxvwwgggwxvxxwgvxgwwwxwwxxwwwwwxwxwwxwvwwxwwxwxgwwvwxwxwxwwvwwwxwgxgwwwwwwxwxwwgxgxwwwwvwfwgwwxxxwwwwvwxwxwxgwwwwgvgwwxwghvwwwxxxwwgwwwxwwxwwhwhxxwxxwwxwgxgwgwwgxwwwwxxwxxwhxxwhxwwxwwxwwvxwfxwxxgwwwwxwwwwwxwhwwwwhwweuvwvwgvwwwgwvuwwvggugwwwufwwwwwwwwvwggvvxxgtwwwuxvwwvvvWwuugwwwwwwwwvvvwwvvwgvwwgfwwgvvvwgwwwwwwhfuwwvvfwwwvwwwwvvwwwgxwwvwwwwvuwwXwwwwvwxwwvwwfwvwuwwwwvwwwwwwvvwwvwwvwvuwgvfwxgvwwwwgwvwwwwwwwwggwgwwwwwfvvwxwvwuwwwwxwwgvwxwwwwxwvwwgwvwvgwvwwvwhwwvwwwwxxewvxwwhwxxhvgwwwgwwwwxwwwwwwvwxxwfvvwwwwugvwwwwwxxwwxWgwvwwwwwwwwgwewvxxwwwxxwvgvxgfxvxvwxwxwxwwhwwvxwuxwxwwxwwvvwuxvwwwvwfvwwwwwwgwwwwgwfwgwwwwwwwvwhvwvwwwwxwwwxxwwwwwxwwwxwwxxwwvxxxwxwwwuwxwwuwwvgwxxwwwuwwwXxvxxwwwvwxxwvwwhxxwhxxxgwwxxvxwxgwwwwwxgxwvxvxgwxwxxvwvwxxwxwwwvxwvwxwhwxvxgwxxxwxxgwxwwxxwwwwwwwwxxwwxwhwwwwwwwWgwwwxxwwxgwwxxwxhvxwwxxhvwxxwxxuwwwgwWwwwwwwgfVvwwwvwfuwvwvwwwwwwwwvwgwwgwvgfvwfwwwgwwwxggvwwwewfwwwwvgvevvwVwvvwwwwwwvVdwfwwvvewvwwfVfgXwfwfgvvwwvwwgwgvvwwgwvwwguwvwwfvgfvwhxwwwfwwwwwxDuufwgxwgvwwffwwwgvwwwwwwDeufgwfwwwwwwwfvuwwvxwwxwwwwwwXfwwwwwwwxwwwgwwgvwgvwwwgfvwvwwwwwwxwgwwwfvvxwwgxxWwwfxgxvxxwwvwxxwwvwwwwwwwwgwgwgfwwxxwvwgwxxxgxxwxwwwwwwxhxvwwwfxxvwWwgwvwwwwxwwwwfvffvwgguwxxwwxfvvxxxwxxwwwwwwwwwwvwwwwxwwwxwwxwwwggwwwwwxwwxgggvwxwfwwwwwgWvwxwwvwwwwwwuffwuwwwwwxxxwgfwgvxwVwwwxwwxwwwwfwgvvwfwfgxwwwxwxwfwwwxxxxwxwwxwwwwwwwwwxxwxvwwgwvwwxwwwwwwxwgwwhwwvvvwwwxwxhwvwwvxxxgvwxwvxvwvwwxxwwwwxfwxxgvxxxwxhxhxvxwwwxwwwxwgwwwwwwwxwvwwxxwwhwxwxhxvwwxxxwxwfgxxwxxwxvvxgwxxxfwwwhxwwxxwxwhwxwxwxwxwxxwxwwwwvwvxxxxxxwwvxxgwxwwwhxxwxwxxwxwxwwwxxxwxxxwwxwxxwfxwxwxwgwgwwwxvwwgvwfwwwwgvwvxwwwvwwwwfwwfwwwvfwfgfvvgwwfgvvwwwfwwwwxwwvfvgwwwwwwxfvxxxxwwfwwwwgwwwwvwfxxwxwwwfgvfwvwwwwwwwvwxxxwvwwxwwxwxwxwfvvxwfwfgvwwwgwwwgwxwxwvgffvwwxwwvwwwwxxwvgwwwgwwwwwwwwwwwvwwwwwwwwwfwwwwxxwwwwxxxwxwxxxfgvwwvwwwxfvwwxwwwxxgwxxwxwxxxwwwwfwwwwwwwxwwwwxxwxxwwxxwxxwfxwwwfwfvvwvvfvwwwwwvfgwwwwxxxwwwwwwwwxxwwxwwxffvwvwvwwwvwwhwwwvwwwxgwxwwwvwwwwxxxxwxwxwxwxxxvwwwwwwxwhhwxwwwxxwwwwwxxwwvwwvwwwwwwwvwwxwxwxwxxwxfgfwwwvwwvwwxwvgvwwxwwwwxxwwvwwwwxwwwwxxwxxxxwwwfwwwwxfwwwxwwwwxxwwxwwxxxwwvwwwxgwwwwwwgwxxwwxwxwxxxxwxxwxvwwfxvxxxwfwwwwwwwxxxwwwxxwxwwwxfwwwfggwfWvwfwwwwwwwfguwwwwwwwwwgwwgwwfwwwgwwfwwwxxwvvwwgvvgvwvwvwgvwfvxfvwugwwwwfvvgvwwwwVuxuwwfwwfwwggwwwwwwwggvwwwwwwfwwwwwxwwhVewxwwwwxxwwwwwwfvwvxvxwVuxvwwwwxwwxxxxwvwwxwwwxxwwwwwwwwwxwwvvwwgvwvgvwfvwwgvfvgvwhuwvwwweugvgwfwwffvxuhwwwxwwwgwvwwwwfvxwwwfWvwfvwwhguwwwwwwvwwwwwwwwwwvwwwwwwxwwwwgvwweuwxvgwwwfvxvwwwxwxxxxwwxwwwwwwwvwxwwwwxxxwxwwuxvwxxwxxxugwwwwxxwwwwxwwwxwggfxwwwwiwwxwwvvfvgvwf5SffwfwvgvwwggwffwwWuwggvhwgwwwwfwwwxgwwxxwwwxwwvWvvvfwvvvvgvgvfvvxvWvxggfwgwwwxwwxwwwwxwwwwggvwxwgwwfvwvgwggwwwwgvwvwwwwwxwwwwwwwwxwwwhxwwwwggfxxwwwxwxwwwwwwwfwwfwxwwgwvvxxxwwxwwwwwxxxxxwxvguvfvvgvvgghvfgfwvguxgvgvwghwwwwwwwwwvvgwxwxwwwxxwwwwwugwxWuxguwvwwxghxWuwwwwwwwwwwwwwwwwwwwwfwwfwwwvvwgwwwwwxwwwxxxxxwwwwxxwxwwxxxwxxwgwvwwwxxxwwggwgvxxxwwwwwwxxxxwxwxxwwxuwwWgfwfwwfvwwufgwxgvvwwwwwwwwgfwxgwxwfvwggvwgxwwwwgxvwggxwvwgvwwggfwwgxwxwvvxxwwxwxwxwxxwwxwwwwwgwwwwwwvwwwwwwwvwwwxwwwxhxwxxwwgxwwwxwwvwwwgwxwwwwwxxwxywwwwwwgwgwwvvxfwwggxggxwwvxgwxgwwwxxwwxgxxxxwwwxxxwwwwwwwwwxgwxwwwwwwxxwvxwwwwwwwwwxxxwxwxxxxwxwwwwvwxgwwwwwwwxxgwwwwxwwxwxwyxwwxxwxxvwwwwwxxxxwwwwxwwxxxwwwxwxwwwUffwgfwfwwwwwvxgwffWWfwvwwwwwwwvvxwwwvvhwwwwvwwwwvwwwwxvxwgvwwxwwxwxwxwxxxxxwwwxhxwwxhgvxwWxvwxxwwxWgxxxxwwwxwwxxwwxxxxwxvxxwwwwwwxwxxwxvxxhxxxxxxxxwxxywwgwwvgwgwwwxwxwwwwwgxwxwwwwwxwxxxhxwfvvwxwxxwwxhhfwxxxxxxxxxxxgxwxwwwwwgxxxxwxxwxxxxxxxxwxwxxwxxwwxxwxxwwwxxwwwwwufuwftvefvwuwgguvguffwvfwwwweuugeffvtggwgwuwwwvfwwwwvuvvvffvvffwevvwvffvwggvfvgvwwwfgfVfvfevvvwvvwfwvgvwwwwwwvvvWvwvwwvwuvwwwfwvwwwvwvfvgwgwwgwwwxwwwwvwvguwfwuvvwwgwgwgvvwfwwwwwwwxWxvwwwvwwxwxwwgwwwxwxwwwgufvgewwfeWfVwwvVgggvwwguwvwwwvWwVwgvwvwwwwwGgvgggvwvwwxwxwVfvwwwggvgwgwgvwwwfwfxxvwwwgvvwwwvxwwvwwwwvvxggvwwwvwwgvGvwfwwwwwgwWfvgwfwwwvxwwgwvwwwwwwwgxwvxvwwwwxgwwwwwwwgvwxwwwwwwwxwwggwwxewwevvwxhxxwwwwggwwwwwxwhxvgvwfuvfefevvffvfgwgvffwwwfvfvVwwVefvwvfuvvvvwwwwwwvwwwwwgwwxghxwugfvVuvwgguWvgvwwwvfwxxwgwggwwfewvwVvWfwhwfhwwwwvvwwwwxxwxxxufwgvvwwvvwwwwgvvfxwxwwggwvxwwwgwxxxxhwwvwwxwwvxxgxgwvwwvwwxgwgwwwwwwwxwxwwgWxwwwxwvgwxggwwvhxxwxwghhvwxfffefwgguvwwWwwvtvvuwguwwwwwwfvvvgvvwvvxwwwwvvwvvgwvuwvwwwwwwvvVwfwwvXwwvvvwwvvxwvxwwxxwwwgvwwwgwwwwwwgwwwwgwwwxwwgwuxxwwwxwxwwwwfxfwffxvxwvwxxgvwvxxvhxwwwhwgxxwxwwwwwwwxvwxwxvxvxxgwwwvxwwwxghwwxxxwwhhtfwwwguvwgvwvvwvvfwugwwvvwwwwwftwwwwtvwwvwvxvwvwvgwvwwvwwvvwwwvfwwvfgwvwwvdwwfwwwwfggvwfwwgwfwfwwvwwwwuwwwwvwvwwwwwwwxwwwwwvvwwvxwwwwwwwxxwwwwvwwwgvdwwwwvfwwxwwwwwxwwwwwwvwwvwwwvwwgvwgVwwwwwgvggwwfwfuvwwuwwxwwwwwwgwxwgxwwgxwwwwwwwgwgwwvwwwwwwwwwwxfvwvxwwhwxwxwxxwvwwwxvwwgwwwwwwwwwvxwwxvwwwvwwwwwwxxxwwxxxxwwwxxwwwxvwhxwvwxwwwxwxwxwwxwwxxwxwvvwwfwVvwvwwVgwfvvvfgwfvfwwwwwwgvvwwwwwwwwvgwwgwgvwwwxwwvuwwvwuvwwwufwwgugwwwuwgwhuwwwwwwwwwhxwxwwgwgvwwwxwwvwxwvwhwwgxwxggvwxxfwwwwhwxxxxwhwhwwxxwwvwwwxgwvxwxwwxwxwvwwxxwxwxxxxwxxwwwwgwwwvfvxgwxwgWvwwwWvvwwwwxwwwwxvwwwwvwwwwxxwxxxvwwwwwwwxwwwghwgwwwwxwwxxwwwwwxwxxxgwxwxwwwWvwWxwwwxxwwhwxxxxxwwgwwxwxxwhxwwvwxwvwxxwwxwwwwwwxxrgggvgwwgggwggweVfgggwvVFegwwwwwwvfwgwgwvefVufwwwxwwxxwwevfggvwfgwfvvwWvgwWwwfffvwgwgfgvfvegfvdwwvfuwvggwguwwwgxwfgwgFewfxxwgWvwwgvxwwwwwxwxwwxgwwwwwwwgwwwwxwvxgwgwvvgwwwwwxwguwxwxwwvvwxwwwwxwwxvxggfwwgwwgfvvuwwWvgwwhgVfvggwwwvwwwwvxeuxWevWwxwwdwwvxgxwwwxwxwwgfwwwwwwwwggegwgwFewgwwfwfwhgwgvhwwwxwWuwwxxhwvxwgvwgwwvuwwwgwwWwxgwwfgwwwxxxxwvgxxwxxxwwwwhwwgwvwfwwgwgxxfvgwgxvwfwxwwxhwwxwwwwgvvffWvwwwggWwwxf$CvvwwggwwwwwwwgvvwwgwgwxwvvwwvwwxwgvgwwwwfFefgwwhfwwwwxwwvvwwhgwwwwwwgwvfvwwxxwgwgvgwxwghwwWvvwgwwwwwfgwvgwxwwwwxwwfwwwwhvwwhxwwwwwwwxwxxxxwfwxwxxwwwgxxwwwvxwwwxwwvwwwwwwwgwxwwgwwxwhwwhWvvwhwwwwwxxwWugwwwVwwwwwwwWfggxwwwggwwfuwwwwwxxxwgvgxxxxwgwggvwwgvxxgwfwwgwvwvxwwwgFewwwwwwvwwvgvxxxxvxwxwwwgwgwgvwwwwgxwwgxwvwxxwfuwwwxwwwwhwwxwgvwxwgxwwwwwhxxxwwhwwxwwhxxxvwgvwwwwwwwwgxuffwfvewVfuguwweefveggUVVwgwwxwvvwwvwwuwwwvwvgwwgwgwwevfwgvewVggwfwgxwgvwxwfewvwwwwxwgfwuuwvvvvvxwevwvvwxfwxwwxwwfvwwwvwwwwgfwWwguvxxxxvxvxxwwxfwwwwwxxwwguvgwwgvvgxgwvxuwxwxwwwvwwwwgxwwxwxwxwhwwhxfvfwvgvwvgfVwuwgfgwgwwxfgfwwwgwwfgfvvwgvwwuxwvgvwwvhfvwvwwxvgfwwwvgwwwwwwwwwwxwwwwgwgwxxxwvwvwxgwwwwwwwwhwwwwxxwwxgWugwvwwvwwvwxwwxvvwxwxwvwxwwwgwxxwwwwhxwwwwvwxwwwwwxwwhwxhwvxxgwwwhwfwxgxwxxwwxxxxxvfewfeeefvwwwfgVVewvggwfevvwwhgeefggfwwwwwwgwvfwgWwvwxxxwfgefffwfwwfvvgfvfwgwwxfwgvwwgggwegwvhwvhxwxxxwwgwgwwwwvwfvvwggewwwgwwgxwwvxwwwWhwhwwvgwwxwgwwwwwwwxwxxwwwgvwgwwwxwggxgwwxxhwwggxwWwxvxWgxxwwxxxwxwxwxwfeeuegvvwgvwwfvvwwvwhfvvwwwwgvvwwvxwxwxvvwwgvwwwxwvwwxfwgfgwvwwwwxwwwwwwwxwgxxgxwwhwwxwwwwwwxxwwwwfwgwwvwxggwwxwxwhvvgwgwwWwwxwgwvxxxxwxwxxxwxxwxgxhwwhxwvwgwwwxwxxwxwxwwwxxwtgvwwfvegwwwffvVgwwvgwwwwwvvgwwwgggewwvwwfwwxwwwgvwvwvwwwevwvxggfwwwxxwwwwwwwwvwggfvwwwwwfwvwxvwxxwwvwfwwwwwwwxvgwwwwwxwwvwwvwxwxwwxwwwvwvwvwwxxwwwxwvwxwwwxwwwvxwwwwwwwwwgvwfwwwgfwxevwwxxwwvgwxxgvwwxgvvxxwwwwxvwgvwwxvwwxxwwxwwwgwwxwWwwwgwxvxxwvwhwwfvxwxvvgxwvwwwxwxwvvwwwxwwwxxhxxwwxxwwgwwwwvvxwxwxfwvwwwwxwfxwwxwgxwwwvwxxwfvfgvwwVvfwxuffwwwfvwwwwxgwvwwwvfgVxguxwvwxwwxwfwvvvwwwwwfwwxwwwggwwwhvwwwwwwxgwvxwvwxwxgwvxwxwwwwxwggegwffgfxvwwwwgxwwwxgwvwggxwwwxxwwwxxwwwwwwwwvxxvwvwwhxwvxxxwwwwxxxwxwgwwvwwuxwwwvwvvwvwwgxwxwwwwwwvwwxwwwwxxhwewvwxvwgxxvhwwwwxfvhwwxvxxxhxVxwwxwvwxxwxwwwwwwwwwvxwxxwxwxxwxxxwwwhxxxhxwwxwwwwxwxwwxwxwwxwwwwxxwwugfvwwwVwwuxffffgggvwfwwfwwwvwVfuwwwvvgvwwVwvvfvvwvxwgvgggfwfvvvwfxwgvvgxwwfvvwwwwvgvwwwwgfwwwwwvewvwwwgwwwvwwwgvwvwwgwwfwfwwfwwgwwwwxwwxwwwwwwwwwxwxxxxwhuwxvxwwxwgfwwwwxwxwgxwvwwxwwxxwwwxxxwxgwvgvgvvgwwfwvwgggxwfwvfwugwwwwgwfwxwwxvhwwgwwxwwgwghhwwwwgfxwwwVwwwwxgwvxhwwxwwwwwwwwwwxxwuxwwwwxhwxhhwgwvwwwwwffuwgwwwwwxvwxxwwgwwxxwwxxxxwwxxxwxwxwgwwvxxwxwwwxxwxwwxxwxwwxwxwxwwxwwxxwwgxwvwxgvwvguwwwfwgwvxwfwwgwgxfgvwwxwwWvgwwgwgwvwxwwfwWgwxwwwwwwxffvwvxvfwwvwxWwfwxxwxvxwxgwhxgwxwvwgxxxwxwgggxwxxxvvwxwxwwwwhgwvhxgwfwxxwxwwwxxwwxgxwxxxxggxwwgwuwfwwhxvwwgwwwwwxxwwxxxxhfwxxxwxxxxxxxxxvhwwgwgwwxvgxVwvwxxwfgggwwwwgwwhxwhwvwxwxxggwwwhwwxwhxxvvwwgwxwggwwwwwwxxwwxghwfwxwwxxxwwxwwwxvwwxxggwwWwgfxxwwxwwxwxwxxxwwxwxxxwxxvxwwwwwwxxwxxwwwxxxwxxwwghxxxxhhtgvwfvfefevvvwvwwgwwwwwwwwggvwwfwgVvwwwvwvwwwwvwvhwwwwwwfvwwwfVwvwwgvxxwxxwwvwvvvvvwvwwwwxxwxgfwxvwvwwwwwwxwwwwwwxwxvwwwgwxxxwxwwxvxwwgwvwwwwwwxwxwxwwvwwwxxvwwwxgvwwgwfvxwwwwwwVwwxwgxvwwwwvvwfvwwgwwxxxxxvfxxgxwwwxwxwwvvwwwwvgwwwwuwgwwwwxxwwxwwgghwgfwwghgvvxxxwxxwxxwwgwwwwwwwwwgvwgwwxxxwhwxxxvwwwxwxxwwxgxfgwwwwwxwxxwxwfxxxxwwxxwwwgxxwxwvxxwffvvuffVfgfwvwvwwwwwhwwxwxggwwvwggfewwxwwwxxxWvxxfwwwwvwgvwgwxuwvwwggwxxwwwwwwwxwwwwwxvhxwxxwwxwwxgVvgwwwfgffwwwxwvwxggxwggwvwwxwwhxxxwxwwwwxwwwvwxwwwxxwxxxwwxxxwxwxxxxvggwvwwfwwwwwwwwwwgwwwwgwxwxvvwvwxwxwwxxwvwwwxgxwxwVvwwvwwxvfvxxwgwxwhxwwgwxhexxxxxxwgxwxwxwxwwwwvgwwwxxxxwwxxwgxwxvxwxwwwxxxwxwwxhwwwxxxxwxwxwwxwwxwxwxxxwwwwxxwwwufvfffvewwfwwgwwwggvwuffwwwgwvwwuwwwfvvwfeevwggvvvwvvwvgvvxvwvwfuwxvgvwwfgfvwwgwwwwwvvwwwwgvwhfwwwvwwwwwvffwwvwwgwwvgwwfwxwwwwwwwwwwwwwxwxwwwxwwwwwwwfuxwwgfxwgxwwvwwwxwwwxxwwwvvvwgvvfggfvvwgfvwvwxwgfwwwwvgvVvwxvwfwgwwwwwwwwwwwwwvgwwwwfvxwggewwxwwwwwwxwwxwwwwwwwwwxhwuwwwggxwhxxwwwwwwWvfwwwwwvxwwwxwxgwwvwwwwxwxxwwxxwvwxwwwxwxgwxwxwhwwwwxwwwvwxwxxwwwwxwvvvwwwfwwfwwfvgwvWvwvgwvvwwwwWvgfWwvwwggwwwwwgwxxwxwwwwwvwwevwwvwwfvvgvwxwvxvxwwwwvwxwwwxwwwgxvwwhgxxvvwwwxwgfwwgwvxwwxhwxxwwwxxwxwgxvxxxwvxwwwwWvwfwwwvwwxwvwgwwhwxwxxwxxxxwxxfgfufwwgwfwvwxwvxwxvwvhwxgwwvwxgvxwgwvxwwwwvwwxwwwwxwgwvgvxwwxwwwvwhfxwwwxxxwwxvuwxgwwwhgwwxwwfwwwwwxwxfhwxxxxxxxxwwxxwwwxwxvxxxwwwwwxxxwxxwxxxxwghuffwVfegeufvUeewfevwevvuwwvwwwvvwvwvuwwvxwwgwwgwwvwwwxffvwgvfwvfvffgwvgvwvwweuwwwvwwwvfgvghvwvwfwgfvvwwgwhuwgwwwwwfvwgwvvuxfwgwwWxwwwxxxvwwwfxwxgxxwwxwwgWugwwvwvwgvvwwwxwxwxxxwwgwwwwwvwwwwwwxhwxxxwVfvwwgvwVvvwVvwwgVgwxwxffgwwwwxwfvwVwvxgvgfxwWuwvwgxvgwwwvfvwwwwvwwwgvwwwvwxwwwwwwwwxxwgvwwwxwwwwxwwxxxgwhwxwwwxwwxwWvvvwxvvwwgwgwxwWxvvxxwwgwwwwwwwxxxwvxxwhxwwxxgwxhxwxwwwxxvwwwhgwwxxwwwxxwxvxxxwhfwxwwxxgefwVVewegfwfvegfVVgggwwfwvwwhgVVwfvwwwwwwwgxfggfgxxWwwxgxxwfVVfvvwgwvfggwWgegwwghvwwwwwvgwvwwgvwwhxgwwxvwxwxwwgvwfggwwvwxwgwwwwwWvegwxxxwxvxhwwwgvwxwwwwwxxxwwwgwxxxwwwxwfwwwxvwxgwgvghwwxhwgvgwwuwwwhxxwxxxxxhwwggxwxxxwfVvffvwfwwfvwvfffwgwwxfgggwgwvvewvwwwgxwwwggwhvgwwwxwxfgwfwwwwwwwwxgggwwxxwxwwgwwhwwwwwwwxwwxwxxxxwwvvwgwwxwgwgwvgwwwxhxxgxuwwgxwwxxwxwwhxWvxxxwxxxwhwwvvwxxxhxwvxxwwxxwxxwxxwwwxwxxwxxxwufvfvvvffwwvwwwwwwvvvhwVuvwvwvvwfvgwvwwwvwwwwfwvgwwuuvxvwwvvwwvwfwwvvwvwvwwwwvwwwgwwwgwwfwxeuvwgwhfwwvwwwwvvwwwwwwwvfwwwwfwwgvwwwxwxwvwwwxwggxwwwwvxwvwwwxxwwwwVuwvwwwwwxwxvwvwwxwxhwhgwwwxwxxwxfvgvgvwfwwwwvfwwgwwgwwwwvvwwfwwwfvwwgwfvwwvwwwwwgwwvwvwvgvwwwgwgvwvxvwwwxxfvwwhwwwgxwwfwwxwgwwxgxhwwwwgwwwwwgxwxvwwwfwxxxwwwwwwvgxwwwxxxxxwxwwwwxwxxwvwwwwwxxxxfhgwwxxvxwwxxxwwwwgwwwxwvvggwvvwgfvwvwwgffvwgvfvvwxwwfwfwxvvvvgfwwxggvvwwwwwxxwwgvgvfwwvwwwwwwwvwwvwgwxwwwgfvvwwwgvwwwwwxwwgwvwxvwvwwwwwxggvxvwwxwvvwwxxwxgwvgfwwwwwwwxwhgxhhvvwwgwwxwwxvxxwwxwxhxxvgwvwwxwwxwxxwxwvwwvwffgfxwwxwwwvwvwgwgwwwvvwwwwwwfwwxwxwwwxwgvxxvwvwwwwwwwwwwxwxfwwgwwwwwxwxvxxwwxwxxwxwwvwxgwvxwxwwwwwvwgxfhwwvwwxwwhwwgwwxwwxwwwwxhwxxwgwgwwxgwgvfxxxwwwwwwxxxvwuUvwgvvwvvwveewfefwwgvvgfvuvfwvvuwwvfgwwvwwefgwfvwgevvggvvfuggfegwwvWvvwwvwwfwwWvwwwwvwwvggvefvgvwfvvwvuwwvgvwvwwwvgvvvvuwvwvwvfewvwwwfgxxxwwfvxvvwwxgwwhggwfffvwwwwvvwuwwwwwxxwvgwwvfgxwwwxgwuwwwwwxwxxwwhvxwwxxwwvuwwvVvwuvwgwwfgfvwwwfuvggwxwvfwwwwvvvwvwVfvwwvvwgwgvwvgwwgwgwwwvwwgvwwWxvfWwgWxvfxwgwwvfgxgwwvwfwwggwgwWxgvvgwxwwwwxfgwwwxwvwxvwwwwwxxxwxwvwvwxwwwwfwwwfwxwwwvxgwxgwwxwxwgwwwxxwwhwwwwvxwgwwwvwfuvwvguwfvfufvwwffvvvvwffvuwwwwwvvwwwwwwWvwgfevwvvwxfwgxxvvvvvwvvwvwvwxwvvwvwwvwwwxufvwxvgwwwvwwvWwwfvwvwgxwxvwwvwgwxwwgwwxguwwwxwwwvvxggwwwwxwwwvvffxxgwxuwwvwvwvwwhwfwuwvvwwwxxwxvwvxwwgxwwwvxxxvwwvvvwvwwwxvuwfwwwwwwwwvxevvfwwxvwgfwwwwvwwwxwvwwxxwvwwwwwvwfwghuvvvwwvwxwwwwvwxWxwxwxwwxvwwfvwxwwwwwwxvvfxwwwwvxvxgwvwgwwwxxvxxxxxwxwwwwwwwhwwwwwgwwwwwvwwvhxwwwwwxxgwvwvxyufwwfvvWfvwefvgfvxgFdwgvxfvgwvuvxuwwvwwfwwvWfvvvwgvwfvwwhvwxvwfvvwgvwewffvgwwfwvwvwwgwgfwwvwfvgvwwvwwwhwwwwwwwwwwwwxwxwwwwwwgwfwwvwwwxxxwwfwwwwwwwwxvwwhwxxxxxwwxwwwwfvwxwwwwwwwwwwxwxwwxxxwwwwxwwwwvwwfvwwvhvvvwgvvwvgwwvgwvvwfvuxwwgwgwwwwwvgvvxxgwwwwxwwwwgwxwwgwgxhwfwwxwxxvwwvwwxwwxxwwxwhvwwwvwxwxxxwwwwxwwwxvxwwwwwwwwxwwwxxwwxwwxxxxxwxxwwxxxwgxwxxxxxxxwwwwxgffvWvvUvvwwfvxfvwwffvxwvwgwgvfvvwvvvxwwwwvwxwgwhwgwxxwwgwgwwwgvvvgwwwwxgwgxvxwwwWxvwwgxwgxwgwhhxvwwgwxxwxfgwgxxwwwfwxxxxxwwxwwwwxwvwwxwxxxwxxxwxvwfwwwxxxwvwxxwxwxwgxwwwwxxwxxxgwxwwxxhhwwwwwvwwvwvgwwwwxxwhgwxxwwuwxwxwwwgwxxxwwwwxwgwwwwwxwwwxwhwwwwxwfhwwwwgxgwwgxwxwwwwxgxxgxxwwwxfwxwxwvxwwxxwxxwwwwwwwwwwwwwxxwxxxwxwxwwxxwwwwhxwwwwxwxxxxwxxxhqwwwgvwwwwwwvwwwvwvwwxvwwwffffwfVewWwwuwxgwfVewwwwwwgxwwxgvwwwVevvwwgudwwxvUwwwuuwuwwfffxUvfwfgggVxwwfwvvuvwwwxvwWwwwwwvwwWVevvwwwwgxxwWgvfxgwwwwwwfgxwxwwwwfvwwwgudwvfwwuuwvxwvxxwvwvwgvgwwwfwwwgwxxxxwgwwfwwxvwvwwxvvwwwuuwwVevUwwvduwuwwfffxfvwgfggvxwxUfvwuwgwVwwgWwwwxUwwwwvxwUwwffXvwfwwwfvgexxxxwxgwvVvxwwwgxwfVexvwwwwuuwgxvxxvduwvwfwxwwvggwgxxxwfwwxwfgxwgwwwgwwwxwxfuwwxwwvwuwwfwwvxxxxwhxwwUwwxwxhxfvgxwwxwxxfffwfffxWgvvwgvfffxwwwfggwgxxxW4CwewwvfwwwwwfVwwgwVexwfwwwwfVewUvfwfxgwgwfvwgvgexxxxwhxewwvWwwgwwfxfwvfxgvgwxwwwwwwwvwWwwufgggwwwwwfwfggvxxxwfwwwwUfwwwwwfxxwwYwwfwxvvwwxwxgwVxwwwwwwgwxwxwxgwxwfwwxwwffwvfwhwwwwwwwwgwwwwwwfVewfwvvfgxwxxxUfvwvVvxgxwwxhxVwwgxgvgwfwxwwwwWwwgwwxwfvwfgwwwwwwuvwwxwwxwgwuwgwwwgwwfvgxwVexwxwwvvwwwwwxwxgvwwxwwwwgxwwxwwwfVwwwgxwwgwwwwxwfwwwwwwgwwwfvwfwwxwhwwwwwxvwWwfwwxgWwwfVexwxwxwxxwwwwvwwxwwwgwwwwwwwwwwvgvwwwvfuuwvvuwwwggvxvWgwfuuwugvwwgvwggwvugvwwvvwvwggwwwwwwwvexwwgfwgwgvxwwxgwwwwvuxvwwwwwgvwxgfvwgwwxwfvwhwwefwuwvvvxwwxwvwwvvwwxxwwwwwwwwwwwxxwwxwgwvxvwxwwWwxwgwwxxxuwwwwwwxxxwwwvxwwxwwwwwgvxwvwvwwwwVgxwxwhfwvwWgxvwwvwwgwhXwwwwwvwgfwggfwVwfWwwwxwxwxxhwwwxxxxwwggwwwxxxxgxwxxxggwvxwxwwwwuwgwxvvwwwvwwwxxxxWwwhwxxxwxwwwwwxwgxxwxxxhxxwwwhxwWWfwwwwwxxxgxxwwxxvxwwvvgvwgvfvvwgvfwwwfvvwxxgvwvuwwhhUwwwwwuvwwxwwwwwwwwwwvwwgwWwvxwwwgvxwvvwewwwvwwgwwwxgwwvwxgvvwwgxwvwwxgwwwwwfxwvwwwwxxwwwxxwwxxwwxwwxwxxwwwvwwwgwwvxvguxxwxxxwxxwxwxxxwxwxxxxwxwwgwxwgwwwggwwwwwwgvxguwwVwwhwvxwvwhwxvwxgwvwwgwvwvwwgwhwwwxxgwxghwwwxxwvxwvxxxwwwwwwwxxxxxhxwgxxwhxxxwwgwggWgwxxxwxwxwxxxxwxxxxwxwxxxxxwwxxwwwwwxwwxwxwxwvvgffvwwwwvwwfvfwgwwwvwwwwwwfwwwgwwwVewfvfxwwvwfwwwffvgvwwgwvwwwwvwgwfvwwwggvwvwvvwwwwwwxfvwwxwxwwxwwvwwwwgvwwxxhfvxwggfvxxxwxxwwxxxxxwxwxwwwwwwxxxwwxwxwxxxwxwxwxxxxwwwfwgwwwgvwwggwwwgwvggwwvxgwwwwxwwfvwvwxwwwxwwwwxwgwgxwwxxxwwwwwwwfxxwwxwwxwfwwfwxxwgvxwxwwxxwxxwwwxwxxwxxwwwwwxxwwwxhwxwxwxxxxwxwwwwwxxwwwwwwwwwwxxxxwwwxwxwwwwwggvwwvgwVufwggvwfggwefuwwgvxxwwwwwwggwwvxwwwxxxwgwxwwwwwwwwwxwwgxwwwwwvwwwgwwwwwwwfwxxwvxwvvxxxwwwwvhwwwwwwxxwwxwxxwwwwxxwwwxxwwwxxxwwxwxwxgxxwwxwwwxwwwwwxwwxxxwwwwwwgwwwwwwwwwwwwggwwwwwfwxgwxwvwxxxwxwwvgwwwwwwwvwwxwhxwxxwgwwwxwxxwxwxxxwwxxwxwwxxxxwxvwwwxwwxwwwxwxvwwwxyvwwwwxxwxwwxrvvgVfVvvggwVVdggwgwgwvvgwvwwwwwvwffWefggwwwwwvwwwVwvfgwwgugggfevfvwwvwwhwvguwgwwwvwwwuveuVdwwvwvwwwuxgwwgfwgguwfwwwgVdwwvgwwwxvwwwwxxwxwwwhxwwxvwvwwuguwxwfwwgwwwwgwwghwxxwghwvefwgugfwvfffgggvwwwWwfvgwwvgfgvfwugfvxuwwfevvgwvgdwwvxgwwwwwggVfwwwwVdwwwvwvgwwwwxwgwffwxwWuwgvhwvwvwwxxwwwwgvwwvwwggwvxwwwwwwvgwgwxwvuwwwwxwwxwwxwxwwgvvhwwwxwwvghvwgwgvwwwxxxfgfwwxhhwhwwwwxgfwxwxwwwvvvff4BvwvwgvwwwfguwgwwvuwwhwwwwggwvwwwgvwgvggwvxvwwxwxwwwwwwWugugfvewwwgwvwwwwxwwwwwwwfwuwwwwwwvgwgvgvvxxxvwvwxxfwvvfwwwwwwwvwwhvwwxhxwwwwwwwwwwxxwgwxwwwxwxfwwwvxwgxwfuwxxwwxgwwwxwvvwwhwgxwwwwxwxwfVdfgwvwfwwwwwwwvwwhwvwwwwvwgfwvwgwwwgvgvwwxwguvvwwwxwwwvfwwgVdwvgwwwvwvwwwwwwwwwxvgvxvwvwwgvxxgxwwwwwwwwwwwwwwxvwvxwwwvwwxwwgxwuvvwwhwwxwwxwhwwhxxwxxwwwwxhxwwxwwxhwwhwwwwgvwvxgwwwwuWfwvvuvfvwvwffvtVuffwuvwwwwxVuuvuwwtvvwfwwweffvwvxvwwvfugvvegfuVvuwgwVwvwvwfwVwvwwwvwutvgvwwvwvwwxegwgggvwwwwwxwgvxuwgwvwwwwvguwwwfggwxxwvgwvwwvgwwwxwfvwwwwxvwvgtwuvfvwwwwgwfwwwwfwxvwwwggwwvwwwvwwwwwwwwwxwvvwwwwgvugvffvvffwfvvvffvwgggVvvwvwwwffvwfwVvvxxwwevffvgvwvgwvwwwfevvwvwvvgvvwwwwwffwxvwxwwwvvvwgwvwwwwwgwgwggggwwwwvwvWvwvvggwwwwwfuwgwwfwgvwwwxwhuvwvwwxxwxvwwwxwwwwxwwwwvwvxwvvwwwwwwVxwwxwVwxwwxgvwxwwwgwvvgvwxwxwwwwwxfvufvffvffvgvfeeVfvwwwffwgvwxwVegfwwwvwgvvwwwggufgwwwgwwwwxhwfffgvtgvvuwuwwwVwfvwWgwwuwhwwwfvvgvwgvvgWvwwgggwgwggwwwwwwwwuwfgvvvfwvvwwwggvwwxwxwwwggwwwgwwwxvwgwwxwxxxggwuwwwwwhwffwwxxffxwxgwvwxwwwxxwvwvgvwxgxufvvwvwfvuguwvgevuwwwvgvwvwwfVvwwwgwvwxwxwVugfwwwwfwhwxwvvewgwvvwwwxwwwfwxwxggvvxxwwwgvwwwwvwwwwwwwgwwwwxwwwvvwvwwwwwxwvgwuwwgwxwwvwwwxwwwxxxxwggwhwgvwxvwwggwwvwwxgvwwwxxxwwwxvwwwwwxwwwwvxwxghxtwfgvwWwvxuwvwwgwxvfgwgwggvwwwwwvgwxwwwwggwGfgvwwGwvwvxwwwvwgwewwwgwvgvvvxwwwwwhvvwwwxfwWfwwwwWwxgxwxgwwwxxwwwxgxwwwxwwwgwwwhgwxwwwwwgvwwwxwwxwwxgwwxxwwvwvwwwwgwwxwwxwwwwxgwwwwwwxxxxwwxxwwwvxwfggwxwwgdwwggwwvwgwfxwwfwwfwffwwfwwvwxwwvvgwwXgwwxxWwwxwvwxgwwwwwwvwwwwwwwwxwwwwvwxwfgwxxhwxxwwgwwwvxxxwxxwxwhxxwgwwwvdvxwwxxwwvhwwxxwwgfwxwwwxwwwwwxxwxwwxwwxxgwxwxvwxxhwwwxxwwwxwxxwxxxwxxwwxhwwwxxgwvwvggwwgwgwfwfewvfwgfewgfwhwwwgvvgwgwwwwwvwwwwwgxwgwwxwwvwwWggfxvvvwgwwwwgwwwWxwxwwwwxwwxwwgwwxwwxhxwwwgxwhhwwwvwvxggvwgwxxwxwxhxxfwwwwxhwxxwwhwhwxxxwwwWxgwwwwxwwwxxxWwxxxwwwxxwxxwxxvwxxwWgwWwfwWvwwWwwwwvxgvWwwwxvhwWxwxwwwwwwwxwwwwxwvgwgwxhhwxgxwwgwwwxwwwxwhvwxwwwwwxxxwwwxxxhxxwwxxhwwwxxgxvwwwgxwvwgwwxwxwxxxwwxxxxxxxxwxwxxwxwxxxwxwxxhwxwxxwgwwxwvwwwwwxxwwwxwxxffvvuwvfwwwvffwgwugwffwvffwwvvwfvvfvgfwwwwwxvfvwwwwxwfvvvgfvwgfwwwvwvwwwwxwwwwxwvvfgwgwvwwxwwwwwwwwwwxwwwwwffxffffwwwwxxwwxwxwwwwwxxxxwwwgwgvfvvwwfwwxwwwfvwgwwxvwwwggwvvxwfvgvwwwwfvwwwvfvvwwxwwvwwwvvvfwwwwwwwxxhxvvwwwxwwwwxwwwwxwwwwwwwwgwhwwwwvgwwvhxxfwwwwwwfwwwwwwwfwwwwxwwwwwwwvgwwxvxxgfgwwxwwfwfggwwvvxwgwgxwxwwvwwwvwwxwwvwgwwfwwgwwwwwwgwwwwwgwwwwwwwfuuwgffvffwvvgffvwffUwvgwhxvffvvwwwwwgwwwwwwwwvfffwwvwwwvhfwwwwwwxgwxxwgwwgwwwvwwwwwwxxxxwffwwwfWwwwwxwfwuwwxwwxwwwwwxxxxfwxwxfwwvvwwwwxwvwxgxwwwwgwwxxwxxvfffwwwwvwxwvxwvwwxwwfxwwxvwgwwxwxwwgwwxxwxwwxxfwwfwwvxxxxwgwxxxfxxwwwwwwwwwwwxwxwwwhxxwwxxvwgwvvwwxwwxwwxwxwxwgwxwwwxwhvwwxfwxhwgwwwfwwffwwwxxxwwfwwwwwguvwwvvwwvvvvuwvvgwggwwwwvfwwwVewVwwvwfwfvvwewwhwwwwwwvvuwwwwwwwwwvwvwXwhxvwwwfwvwVwfwggwwhwwxwwwgwwwxwwwwwwxxxwvvwwwwxxxfvwxxxfvxwwwxxxwwwxwxwxwxxvwxxwwwwxwwxxxxwwwwwwwwwvwwwwvgxuwwvwwwxvwwwwwewhwfvwwwwfvwgwgwwwwwwwwwwxwxwwwwwvwxwwwwwwwwwgvwvwggwwwwwwwwggwvhxwwxwxwwxvwxwxwwxxwwxxwwxxxxxwxwxwwxwwxxwxwwwwxxwwxwhwwxxxwwwgvwwfwwwwgvwwwwfwwwxwwgvwVuvvwwwwwwxevuggvwwxwxxwwwwwwfwxwwwwwwxwwxxwwvvgfwwwfwwgwhvwwwgvwwvwwwwwwxwwxxwwxwxwxwwwwxxxwwwwwxwxxwwwxxwwxwwwwxwwwwwwxxxxwxxwwvwxwxwwgwwvwxwxwwfwxwwwwwwwxwxwwxxwwxwgwwwwwvwwvvgfwgwgfwwvwwxwxxxwwxwwwwwxwxvwwvxxwgwwgwgvhfwxxwxwwwxxwwwxwxwxxwwxwhwgxgwxgwxwxxwwxxwwxwxwxxwxwwwwxwxwhwfwwyvwwVvvvfwwwvgvevvgwwwgvgvwwwffwwwuwvwxvwwxugwwfffwgwwxxvwwvgwfwwwvfwvvfgfwwwgwfvwwgwvfvwvvwwwvwwwvwvfgwwWwvfvwvvwvvwggwvwwwwxwvwwwwwxwxwwwfwxwxxwxxwxwxvwfwgwgxxfwwwxwwwwwwgfgvxvvwxxwxxwxhgvwwvvvvgwwgffvwwgwfwvwgfwwwgwwfvwgggwfvgwfwgwgwwwvgwgwwwWgwfvgwgvwgxwwwwwwwwwwwwwwwwwwvgwwwwwwwwffxxwgxwgxxwvgwgwgwwwwwgvwvgwwxfwwwvgwhwwgfwwxhwwhxwgwfvvwxxxxwwgggwghgwxxvggwxxwxwxwwwxhhfwwxwwwwvwxwxwwggwvxwxxwwxwwwvwxwwwggwwvgwvwwwvgwvgwwwwfwvvwwxvwwvfwwwwxwgwfwxhhwxwwxxwwvwfwvwvwgwvvvwfvwwhwvgvxghwvgwwwvxfxxvwxwwwwWxgwvwxxwxwxwwwwwwwxwwwxwhxwwwwwwwxvxxxvwvxxgxwwgwgxwwwwwxxhwwxwxwxwgxwwxxxxgwxxvgxwvwwwxxgwgwwfwvwggwwvvfvwwhgwgvggwvwvwwwwwwwxgwvfxugxwgxwxxwwwxvhxxwxgwwghwwwwgxwwwwwxxvxwwwxxwwgwxwxwwwwwwwwwwxxxxwxvwxwwxhwhwxwxwxxxwxgwxxgxxxxvwwwxgxvxwwgxxxxxwvwxwvvwxwwxwwwxxwxwwxugUwffewgwvxggfvvvwwgvvvVVwWfvwguvwevfwfwvwVvvvgwfwvvgwwgxgvgwuwwvffuwgfvuvvgewgwwwvwxgwwvwfevfwgvvwgvwvwwwwggwvwwgvwgvvfwVwwgfxgugwgwwwxvxwwfxgxvwgfwxvvwxwgvwffwwwwvhvfgwwwwxwgxwwxwxxwxwxgwwwwgwxxxwwxwgxwwwxwwxfguxwwgwgwwvgwwwgVffwwuuvvwwwgwvvvvgwuwgwvwwwVvfvvgvwfggwgggwwvgwwuwvhwugxwgwxhgfwwgxWgfwwgfvxfwwguwwvwwgwvvgxwxgvvxgwggwwwxxwhwWwwwwfggxwwxxvuwwhwhxhxwxxxwwwwgwxhwxxwwxwfwwwggxxwxwwwxfwxxwvxwxwxwxxvwwxxxxwxvwwwwwxwgwwxhwvwwfvuwfgfffgufvfWvWvwgvvwfwvwwwwwwggfvewwwwufxwgwwwvwgxvhwgxgvwwgwufwwvwwwwwgvgwwwwwxxxvVgfvwwgwwvvwfgwwxwxwxwwxwwxxvxwvuwwwvwxwvwwxwxwxwwgxvvvfgfwwwxxxwWvwxvwwwwxwvfvwvfwwwwvhwwwwwwvxxxgggwwgxhwgwxwxxwxxxvggvgggwwgwwvvwwwgwvwwhxwWfwvwgfwwwgwxwgvwvwggwhgWwwxwhwghfwgwgvgwwwwhgWwhxwwwgxxxwwgxwuxwwwwxwwhgwwxwvwfxwuwgvxwhwgxhwwxhwwwwxgwwgxhxgwgwxwxxwwwvwwwwwwwxwwwwwwvwxxwwxvwxxwxghgvwwwwwxxuwfwvvfuvfwwgvxfvvxgFdegffgvwgvuvfuvwwvwvfuwwgvvwfwwvwwwvgvwwgvwwwwwgwvvfwvwvwvwvwvvxfvhwwwvgvwwwvwuwwvvvwwwwvxwwvwwwfwwwwwwxxwwvwwwwfwwwwwxwwwwwwgwwwwxxwwwwwwwwxvxxwwwwwwxwvfgfvvwxvwwvfwvvwwfgewwvwwgwfvwwwfvvwwwwwvwwwwwvwwvwwwxxhvvwwwwvxxwwwxwgwwwwxwhfwwwwwxwxwwvwxxwwvwgwxfwvwwwwwwwwwwwwwwwwxwxwxxwxwwwwxwxwxxwwxwxwxxxxvxwxxwxwwwwwgfxvguvfvfgfffwvwUvvwwwggwgvwwvgvvwwvxfvvwwwvhwwwwxwwwwxwwvwwwwwvwxgvwvwwwuwwxwxwvxwwwwwwwwwghwxwxwwxwwwwfvwvxfwxxxxwwwwwxwxvxxwwxwwxwwxwgfwwxxxwwvwxxwwxwwwwxwxwxwxwwwwxwxwwwwwvwwvvvxgxvwwwwvgvwvwwwwuxwhwgxwvvwwgvxwwvwxwwxwwwxwwvwwwwxgvwhfwxxwxxxvxxwwwwwxxvxwwfwwxxwvwxwwxwwgxwwwwxxxxxhxxwwwgwwwwwxwwwhwwwwxxxxwxxwxxugfwwwwfwfwwWefvvgvgghvwwgvwwgwvxwwfvwwwWvufvgwgwgwgwwwvhwwfvvvwfwhfvwwhvgvwwgwwwwwxwwvwgwfvwfvwwxxwfwwwwwgwwwvwwgwxwwxwwfvwfwwwwxwwvgwwwxwxwwgwxvxvxgwwxwxwwwwgwwwxwwwvvwgwfwwwwxwwxwxxwwwxxxvvwwwwwwwxwwwxwgwvwwxwwwggwvwwvfwwgwwwgvwwwhvwwwfxxwxvwxxVvuwwhwwfwwvgwvwwgwghgwvwwgvwvvgwxwxwgwxxfgwwwxvwxwxwhwwwwgxxwvfwwwwwwwwgxxxeuwhwwwwhxwgwwvxxhwxhwwxxwhvwwwwwxxxwxhvwxgwxxfwwwwwxxgxwwwwwxwxgwwwwggvvgffvggfwgwvwggwwvgfxwvwwxwfwwfxvvggvwfxwxgvvgwwwwwxxwxvwwwwwgvxfwwggfwfwwggwxwwwgwvwxwwfwggwwwwxwwxwwxxxwwwvvwvvgxwgwwwxwxvwwxxwgvwfwxgwxxgwwwwhhgwwwwvwwvwxwwggxwvwxgfwwwxwwxwwxxxwxwwwwvwwxwxwgvgwvwgwwwwgwfwwwggwwwwwgwfgwvwxwwxwwwxgwgvwwwggwxxwvxvwxwxwwwwwvwhwxxwfwwwwxvwwwxxwxwgwwwwxwxxxwxxwxwxxwgxwwwxwxwgvgxwvxwxwxwxwhwwwwxwgwxwvgxhxwxwvwwfvxxxwxwwwgwwwxvwggvvvvvwwgwwwwwwvwggwxgvWwwwwwgvvwhxxxVvuuvffvvwfwVwfwwwVggwxxwwgvvevwwwwwgwvxxxxxwxfwwxugvggvvwwwwwwgxwvgxxvvWwwwxxxxwxwxvgfwfvwwwwwxwxwfgwwvxwwwwwvwwxwxvxwxxxxxxgvvffwvgwVwwwwWggwwwwwgxwwwwWvvxxvwfvxxwvxwwfvvwwvwwwuxfwwvxxwxvgxwgxxwwggwgwwfwwxxxxxxxwwwgvgwwwgvgwxggwwhwxwxvwwxwwwwxxxwxxxxxwxxgvwwvggxwwxxwvxwxwxxwvwgxwwwxxxxxxxwxwwxhxwxWuuUvgugVGuwwwwvwwwwwgwxgvvwvwwwwwvvxwwhefgvffffgvuwvwgwwwvwwwwwhwhwgwvwwwxwxwwwxxvwwwwwxxwFVvvvvwUgWUwvggvvxxhwxwWwwwwwwwwwwxxwvxwxwxwxwwvvwfwfwwvhwwwxwwgwwvwwgVxwwxwxxxxwxxwwwwxwxvvwgwwggwwwvvwwvwwwwgwvwwxxxxxwwxxgxxxxhvvwvwvwxgwwvwvwvwwwxxwwwxfxwvxwxxxxwxxfhxxxxwgvvhgxgWwhwxwewgwwxgwwhwgxxxxxxwxwxwxxxxhxxwwhwxwgwwxxwwwwvwfwxxxxwwwxwxwxwhxxxxxeevwwwvwwxgvvuvvwwwwfggwwwvxwgwhwwvvwvwwwxwwwxwxeuvvwvvwvguvfwvgvwwggvVvvwwxvwwwwuwwwgfwvwvwWwwggwgwvwwxvwvwwwfvwvwwwgwxwvwwvxwxxxxwhwwxwwwxxxvgwfwvwffvwwwwvvwgvwwfxgvwxwxwxwxwxxvwwwvwwwfwwefvwxwvvvgwwxwwwwwwxxwfhwwwwxwwvwwwwWwuwvvwwwhwxxwwwwhwwgwwwhvwwxggxxxvwgwxhxgxxxwxwvgvwgfwwwwxwwvxxwwwxwwwwwwxxwwxxxxxxvwwwxvgvgvwwhvwwwwgxwwwggxwwwwwxxxvxxwxxhwxvvwwguxuWfwvvwvgvgwwwwgfugwwwwwvvvwwwwwxxwxxxxxwxwuvvwgweuvvvwwvvfwgwgvfwwwgvwggwwwvwgxwwwwwxwwwwxxwWfwvvwwgvwwwwwxwfwwxwxwWWwgwxwxwwxxhgxwxxwxfuvwwwvwvwggwxvwwxffgwuhxwwxwxwwxwxwwwwxxwwwwwvvvgwwxvwvvwxwwvwwxwwwgvxxvxxfwxwvxxxxwvvwwwvwvhwxwwwvwxwwxwwwvwxwwwwwxwwwxhwwgxxhwwwwwhxwfwxwwwwgwxXfwwwxxxxxxwxxxxwwxxxvwwwwgvwvwxxwxhwwwwhxwwxxxxxwtvwhgvvgfvvwwwxgvgxwwvfvgwwwgwgwwxgfgwxxxgxxVfuvwgvwvwgufwvwvgfwhxwgvvwwwxwwWwvwgxvwxwwwxwxxxwxxgvwxwwwevwwxfVvwhxwvvvwwwwxxwxhxwxgwwwwxxwxxwffvwwwwwwfwxgwxwwwvwwwwwwxwwxwxxxxxwgwvwwwwVwwWguxvWwxxgwvwwwgwvwxgxxgwwxvhxxwwgwfvwwwwvwxgxwwxwwvxwxxwwwxxxwwxwuwxhxvxxxwwwwxwwxwwwhwxxvxxxwxwwxxwwxxwxxxwggxxwwwvxwwvxxxwwwwwwwxxxwwxgxxwxxGvufwwvwgfvwwwvwWUVvwgggvvwwwgvwwwwwxwwxxxxwxxxfUfvvvwegwvvvgVeewwwwxwvwwwxwwgvwwwxxxxxxxxhwwxxxgUVwxgvgwwwwxfgGVxxxvwhxxxwwwxxxxwfwxxwwgwwwwwvwwwvxwwxxxwwwvxvwwxxwxxwggxxwxwgwwwgwvWwvhwhwwwwwwxxwwwxwxxxxxwwxewwwwfvwwwxwxxwxxxwwwwxxxxxxwhwwwxwxxgvvxgxxwwhxvxxwxxxwxxxwxxhxwxwwxxgwxwwwwxxxwwxxwxwwwxwwxxxffwvefgefwxegeVgvwwvgvwvwfvxfggxwhwwwuwwwvgwwxwfvwweevvvfwwwweuvwvvwwvfwwwwwgffwffwwgwwwgwwwwwwwxhgvwwfggvffwwffwvvwvvvwwwwwwvxwxgxwfvfwwgwgxxxfwwhxwxxxfvwfvwwvwwwwwwwwxhxgwxxvxwfwwwwwxwwxwxxxwwxfwwwevwwvVvwvwuvwvgwwwwvvxwwvVvgwwwxwwxxwvwwxwwwwwwwwwwvfvwwgfwwwwwvvwwwwxwgwfxwwgvwwwgwwwwwwwwwwwhwxgwwwwwxwwfgvwvwwgvwwwvwxwxwxgvxwwwxfgvwxgvwwxwxxwwwwwhhwwxvxgfwxwxwxwwwwwwwxxwxwxwxwxwwwwxwwxwgvxwxxxwwwxwefWVffvgvfwvwwvfvfwwggfuwgwhvfvevvwwwwwwvvwxvhwwwwwwweVuvvvgggfwvwwvgvvwwwwggwwgwvfgvvwwvgwxxwwwwwgwwwgxvgvwvgwwwvfuwwxxhggwwwwwwgwhwfgVfuvwwvgwwxwwxwxwwhwgWfxwxwxwgwwxwhgwhwxhwwwhgxvxxwxwwvwgghwwhwxwxxwxwhgwxxwvvwevwwwwwwwxfuggwwhwfwvxgxfwvwfvvwxwxwwhhvxwvwvwvwvwxvfwwwwxwwwwgwwwxwxwwwxwwwvwwxwxxgwwxxVvxwwgwwwwwxxwxwgWwuwghUwwhwvwwwvWXfwwwxxwwwxxwwwxwwvgwxwxxwxvwxhwxwxwhwvwxvvxwwwwxgwwwxwxwxxhwwvewxwwvgwvvwgwwwwvwwwwvvwwwfwvwgwwwwwgwfuwwwwvwvvvvwvwvVewwwwwfvvwwvwfwvvwfgvvfvVwewwvwwvwwvwwwfvwvwwxwfwvxwggwwxxxvwwfwwwxvwwxfvwgwwgwwxxfuvwwvwvvwwwwwgwwfxwwgwwwwwwwvvwwwxwgwwxwgwxxxgwxwwuvwgwwwwwgvvxxxwxwwvwwwfewwfwwvwxxwvwwxxwvwwwwwxwxxxwwvwwxgwwgwvxxwwwgwxwvwvwwxxxvwvwgwwvxwxxwwxwwwfwwwxxxwufvxwxwwgwxwwgxwwwxxwgxwwgxxgvwxwxgwvwwwwggvwwfgwwwwvwgwwwwwwwggwwVwewwxfwwgxvffwwvvwfwwwvxeewgwvwwwvwfwfgwwwxvwwwwxvvgwxvwwwwwwwxffwwxxwvwwxgvvgfxwwwwwxxxfwwwwgwxwxxvwfhxxxwwwwgvvwwvxxwvvwggwxwwwwwwwwwxwgxxwgwvwgxvwwfwwvwwwwvvwwwwxwgwwwfvxxwwwxxwwvxxwwxwuwwwwwwwxxxgwgvxwxxwgwwwxxwxxwwwgxxvxxxvgwxwwwvwwxxwxhgxxwwhxwxwxwgwxwwxwwgwxwwwwxxwxxxxwxxxwxxuhwgwwgwxwwwfwwgwggwwgfwvwwggwwwwxwWwuxvhvwwwwxwfvvwfvwfvvvvwwfwgww6SwgvfVuuwvxwgvwvvvwxVwuwvwwwvvvvwwvvwvwhwvvwvgwwwwxvwwwwvgwwwvwwvwxwgvwwwwxgvxwxwvwwxxwwxxxvgvwwxgfhwwwxwwwwwxwwhwwwwVvegwxwgfwxfwwhxxxxwvwwxwWuwgwwwwxwgvwfwwwwvwxxwwwvwwwxWuwxxvwvxwxwwwgwwwwxwvvxwwwwwhgwfvxwwwgwwvhghfwwwwwwxgwwgfvvwwwwwgvgwvwWxwwxxwwgvwwxwwwwwxxxxhxwwwwwxxgxxwwwxxwwwxxxwwwgvwwwwwggwvwgwxgvxwwgwwxxxwwxwvwxwxwwxwxwwxwwvgwvxwwwwwUevfwfgwgvwwwxxfvfgwwvwwxwvwwwvwhvwxxwwwwxxwwwwwwwvUUwfwwgFedfvwwwwwwwwwwgvwgWwfwfgwfgvwxgwvwwwwwgwxwxgwwwxwwfwvwfgvxwwxhxVwuwxwgwgwxvfwwwxwwxghxwhwxwwgwwgggwvwwvwwwwwwwvwgwxxwwwwwwvwwwxwwwxwvxwwxwxwwgwxxgxwwwwvwgwwwxxxwwwwxwhwwwwwwxwwwwwxwwwxxwxxxxwxvxwwxwwxvwwwwgvwwwghvwwwxxwgxvxxxwwwxhwvwwxwwwxwwwxwwwwxwwxgwgvxwxxxwxxwwxxhwvvwvwxvxxxxwwxxgxvgwvxwxxxxwwgwvwxhxwgwwwwxhwxwwvxxxwwxwwxwgwvwgwxtvgwwxgwfgwgffvvwxwwwwwfwwwwwvvhvwvwwwwwxhxxwffuvgwWwwwfwwvfgwwwfvwgvwfvwvxwwwxwwgwvhwwhwwfvvwwwwgwwxuwwwwxxwgwxwgfwwxgxvwfwxwxxwwvggfwgvwgxwwwwxvwwwxwwwwwwwxxwxwwxwxwwwvwwgvvxwwwxfwgwhwWwwxwgwxwxfwvxwxwwgxwwwfwvvwwxxxwvxxwwwwwxwwwwwxwwxxxwgvwxwwwwwxwgvwwwxwwxxgvwwxwxxxvwxxwwxxxwxxwwxwxwxwvwwwxxwvwwwwwwwxwvgwxxwwxwwxwwwhwxVfefwwwvwggwwvWfwgxwwwxvxgfVxwggwxxwvwwxwxeffvwwvwvwwwfwwfwgwwxwwwvfvuwwvwwxgwvwwxwxfVewvwwwggwxxwxfvwwwwxwxwxwffVVwgfwhxxwwxwwgxwvxxxfwgwwgwxwwxgxhxwwwxwwwxxwxwvxvwwwWgxwwxxwxwwxwxvwxwwwwgwggxwxwxwhwwxxxxxwxxxwxxxfwxwxwxwwwwxxwwvwxxwwwwxwgvgwwxwwxwhwwhVxxvvwwwwwhwxwwwwgwvwxwwwxwwwwfvwxwwwxxwxxwvxxxxxxxwxxugfwwewwvggwxwxvxugwwwwuwwgxvwwggwvwwWwwwgwwxvwwvvwwuwvguwggvwggvvwwvfwwwwhuwewvwwgwwgwwgwwwvvwwwgvvwwwwgwuvvuwxxwwgwwwugwvhwxfuwwwghvwwuwxgwwxwwxxxxwgvwwwwwwvwwwxwvwxwgwwxwxwwwwwwwwxwwwwxwwxxwwxwwwwwWwwwwwfwwwxgwwxwwwhwxxwwwwxxhgxwwhwwwwwxgwvwwxxwgwxxxwhwwwgwwvwxwxWwwxwwwwwvwxwhWgWwwxxwwwhwvwwwwxwwwvxwwwwvxwwxWwwxyxxwxxxwwwxwwxxwxxwwwwwxgxwwwxggvwxWgwxwwxhwwwwxwxxwwxwxvuwwwvgvwvwvwvWvwgwwwvvwwvwwwvwwwwWvfwfxwvwxxxwxwxxwxewvwvvwfwwwWwgwwvvwwxwwxwwguwuvwgwwwwwwwxhvxwxxwwwxwwfwwvxggguxvwwwfwwwuxwwwwwxxvxwwgxwwwgxxwwxxwxxxxwwwvwxwvxwxhwwwwwwwvuxxwwwxxwxwgxwxxwwxxwgwwgvwwxgwvvwwwwguwxwwwwwxxhwxxxwxxwxwhwwwxgxvgwxxwwwXvwwwwgXwvxxwwwwwgwwwxxxwxwxwwxggxxxgwwwwxwwgwgxwxxxwxxwxxwwwhxwhwwxxwWgvwxxwwxxwxxhwwxxxwwxwxwxwuwwgWxfvgwwvgWxgwwgfvwvwxxxxxwwgwvfwxwggwwxfgwwwwgxfwwwvvwwxgvWwguwfgfeuggwvwwvwvwvvwwwwgwwwwxxxxwwwvxwwwhXwwgvgwvWwwwxwxvxwwxwgxxwwwwywgwgwgxvwwwwwxwvgvwwwgwvxwwxwwwwwxgwXwwvVvvuwwggwgwwwuxhwwxwwwwwgxwxxwwxhwwhwwfwwwwwxvwvfwwxxwwwwwwxwwxxwwxvxhVxxxxxgvgwwgxwvvxxwxwxxwvgwvxxxxwwwxxwwxwwhxxxwxwwxxxxxxxxvxwxwwwxxxxwfxxxwfwwwwwgffwwggwvwwxfegwxvxwxwwwwvvvxwvwwxwxxxvwwvwWwvwgwwgvwghxwgwxvwxxxvvxxwxWxxxwxwwxxgwvxwxxfvvwxxfvwwwxwwwwhgwxfxwwwvwxxxvxxxxxxwwxwxxxwwxwgwwwxxxwwwxxxwwwxxxwffwwwxfwvwwgwxwvwxxwwwwvgvwxvwwxyxxwwxwwwwxwxwwxvhwgwxxxwxxwxxwwwxxgwwxxxwwxwxxxxwfwwwwxxwhxwxgexwfxxxwxxwxwwxwwxwwxvwvfwxwudfwefvwefvefVwvwwwxxvwvxvwfvwvvvvwvfwwwfwwxvxvugvfVdwegfgFffgwwxgwwvgvwxwwgwwewgfVwwvwufwwgvwgwgwxwwwwgugwgffvwwfgwvwfwxvwwxwxwfwwgwwuxwwwgwxxvwfwevuwvvwgwwwvwwvwwwwwwwwfvxvwwwxwxwhwwvwxvvufwwwgdfggvwggfwgwxVwwwvwxvvwWvwwfwwuwwggwhwwwwwhwwwfggvwvfwxwggwfwwwwwhvgwwhwwwggwuwfgwvwWwwwgwghxwwxxwwxwwgfwxwwvvgfwxwwwwwwgwwwxxwwwgwhwxvxxwwwwwwwwwwxwxwgwwwefwwwxwwgwvvwwwhhwhggXgvwwxvgxxxxgwxgwwwfxwwvxuwwvvffvvvwxgvtggwvgwwwvwvxwwgvwvfgvwvwxwwvgwxxvfugdfffvVwugvgvwvwgwxvwxwvvvwwwwwxwxwwwwwxxvwwxxxwwxgwfwwgeggwwgvwhfgvwxgwwwvgwwxwwvwvwwwxwwhxxwwxhhxfwwwwxwfvgvvwwWwgwggwfgwwxwwwvwfvwgwfwxwxwxxxggxwxwxwxwxxvfwwufvwvwvwwxuwwwwwvwwwwwxwfwxwxgxwxwxxvwxwxgwxwgwuwwvvvwxxwgwXvwgvgxwwwwxxwwxxwxgxxxxxwffwgwwgwxvwxxwvwxxwwwwhxwvwwxvwwxxxggxxwwxxxwgxxwfxvwwwwwxwxwvwwwxvwhxwhwwwwxwgxwwxxhwwwxwxwxeUfwfvTfvvfwgUvwwvgvwtwvgwweevvuwwuvxwfvvfwgwxfuvwxwUvvxeevdvveUwwuUvgwwxfvwwVwwufwwwwfggwwfgwwvfvvwgfwwgwwwwUvvwuwwvwwwwwwugvwwwxvvwwwwugwewwfwwxxxvfwwvwwwwuwwffwvwwwfwwevwwgfwgwxwwwvvxwwwwwwwwvwwUvxvVewdgwgvvweEvxwgvfuwwuwvvVfgwwvwgvvgxxxgfwxxfgvwwvwwvvwwwVwwwwwwwwxwvwxxwwevvwxvgvgwwwwgvwxwvwgwwxgvugfvvwwwgvwVevgxvwwxxwxfwwwwwxwxwwwwVewxxxfwxwwxwvwwwwfwvxxwwwwvwwxwvgwwxvwwxwwgxwwwwxTufgvfvugwwUvxuUvwwwwgfwwvwvggwvvxxwgwwxxfvvxxwvwgwxxwwdefwVVwwewgvwgvffvvwgwwwfwwwwvvxwwwwwwwwxwwgwwwwxwxwuwwweuvwwxwvwxxVtvgwwvwxwxxxxwwwgvwxwgvwgwggwwwwwwfgwwgfvwwvgvwwxxwwvVwwgwvwxwwxxwxwwxxwwwwxxxwxxwxegfwwgUvvwwwwfgwwwwwwwwwwxwwfvvwwvxwgwxwwwwwgxxxwwxwwxwwvwwgwwwfwxwwwwwvwxwwvwwwwwxgwwwwxwxxwwwwwwxwwEvuwwwwwwxwggffvgvwxwwwxxxxwwxxvgvvxxhgfhfgwwwxvVvwwvwxxwwwwxwgvwwwxwxxwwxxwwwxxwwxwwvwwwfvvxgwgxffvggwxwwwwgggVvgggwgxwvgvwxvvxwgxVvwgwvxwgwfwwfwfvwuVvuwvwwwxwxgvgwgwgfvgvfwwwvvwwwwvgvwggggwxwxwwwgwxvugvgxwuuvwwxgvwxgwwwwxwghwwxxgxwxhwwxxxwgvwvgwvvvxwfvvVwfwgvgwwxwwwwxxxxwxwxxxxwxxwvwvwwVuvgwwvgvvwxfwwxwgwwwfwwgvhfvvgwwwwwwgwxxfgwgwwxxgwwgvwwgwgVvvwgwgwxxhhwwwxwwVwvggfwwxwgxwgxvhXVxxxxxguhfvwvgwwwxwWwfxxvwwgxxwxwxwwxvwxxxxxwgwgwxxxwgvwwwwwxwwxgvwhhfxxxwwwwxxxxxxxxxxxxwwwefwwgfvvwvgwgvwwwwxxxxhgwwxwwwwwwwxxwxxxvfwVwfwgwwvwvwgvvxxvgWwwhwwvvwwwwwwwxxwwxxwxxxwwwwgwvxwwwgwwxvwvwxwwxhwxxwxxxwwgwwxwvwxxvxwwxgwxxwxxwvxwvwwwvwwgxxxxwxxwxxxwxwwxxhwxxxwwwugWwfvfwxfwwvgwxwxwwvxxxhxxwwxwxxwxwxxhxxxwwwgwwgwggwwwwwwxxfhvxhgxxxxxwxxwxwwxxwxxxwwwxgwxwvwvwwhgwvxgxxwwxwwxwwwwxwxxxwwxxxwxxwwxwwxxxxxwywxxwgwxwxxxuUwwfuwwgwvwwwvwwwwwwWwwxvvvwvwgfhwwgxwvfwwwxwwwwwwxftfwvfevwgwgwwwfwvwwwffvwgwwvvguUvugwwvwvwwwwfwwwwwgwwwxwwwfwwwuggwwwwvwggwwwwwxwfgwwgwvwwxwwwxwWwgvwwxwxwfgwwuvwwwwwwwxwwgxvwxwwxVvvvVwgvgxwxwvgwwwwvwwwwvwxuewvwwgwfgvxwgwgwwwwwwwwgwwwhffwvvgwwggwwvwwwwwwxwwwgxtwwxwxwwwwxvfvwwwggwxwwxxvwwgwwwgwwwwvvWgvwwwxwfvwwwxwwwxxgwwvxwwwwwxwgwgfwxwxxfgwwwwwwwwwwwxwwfvhwgfwwxwfWwwvWwxxxxhwwwWxvxwvxxwwwvwwwwvgwwwvwWvwwwgwuxxwvgfwgwuvgfwwwwwuwwwgxwwwwxuvfvgvgwvvwwfwwxwvvwwwvvxxwxweewvfvgwwxwwgwwvwwgwwwwwxwwwvgvvwvwwwwxwwwxxwuvfwwwxxwwwwvwvwxgWwxxxxxxwvxxwwwfxxWxwfvwgwwwwwxxwxwwwwwxwwWhwhvwwhVwfwwgwxwwwwxwwwxxvwgwwvgvwwvwxwwwwwwvwwwxwwwxwwvxgxxwxxwxgwwxhwhgxwgwwxwxgxgwxxvxvwwwgwxxxwxwwwxwxwwwwwwwwwgwwwwwwwwgxwhWwxgxgvxwwxxgxxxxxwwvgxwwwxwwwwwwggxwwhwwgxwwwxwwwwvwwwwwwwxxhxxufvwfvfvevvwvffvwvwhxwveffvevwuwffwUgvgvffwfwwWvwvwwwvwvvvvvvefffvvwgwwwfweuvvwvwvvgvwfvvvVVfevgwfvvgwgwwggwvgxfwwvvwwgvvxwffvwwfvwfwgvwwxwxxwwwvwvwUwvfgwvwvvwwgxwxxxvwwWvwVuxfhwvgwgwvgxwxwwvwwfvhvwvvggggvvwwwwwxwwwxxgvgwwvggfvvggwwwwwggvgwgwwgwgwvxfvwvgwwgvgvvwwwwxwwgwfwxwwwwvvwwxgwwwwxwxwwwwwwwwwwvxwwwwvgwwwwwwwvvwwwxgxvwgwwwguwxwxgxWfwwvwvwwxwhwxwwwwxxxwxxvwxwxwgwwwxxxwxvvxwvwxxwwxwfwuxgwwxwgwwwwxxxwxxxhwwwxhwxwgwxxxwvgwVvvgvfgxwUffvvfvvvgvhgwvwwfvvwvggwwhguvgwgwwwXxwxhvegvfevgvwwwxxhuuvvwvwfwhwgwgwVgewvevwvwwWgwwgwwvgwvvwgwwwwxweevgfxwwgwwggwvwxgwvwxgxxggwvfwwwgwwwwxhgwxwghxgxwxwhfvvxvxvwwwxwxwxwwwxxvxwxxxwwwwggwwxwwgwxwxxxvwwfvwwvwwhwgfwgwwwvwwxgxgwWgvxxwwhwgwxxwwxwxxwwgxwwxwgwgwwwgwWwgxvwwwxgwXwgxxwwwwwgxwwwgxwwgwwxwwvvgwwgwxxxwwwxwxhxfhxgxxvxxwxwxwxwwgwwwgwgxwxxhhwhwxwwwxxxwwxgwvxgxwwwwhwxgxwwxxwwwxvxwxxuvfUvVvvwuwwtvxwfwwWfwfggwwwvfvwwwgwwwwffffwxfvwwwwxvvwwfwvwvgwwvvgwgfvgfFwvvvwwevvwwgwwewwvfvfxgxuvwwgggwwwwgwwwwwgwwwwwvvwwwgfwfwgwgwxgwwfwwffwwwwwwxxwwWxxgwwxwxwwwwgwwwwgwwwwwgwugwwWwwwwgwuvwwwghwgwwgwxxxxxwxxwxxxgwwvgvwvfwgvwwWwwgwwfuwxvvwwhvvvwgwwwwwvwxxxwwxfwwvgxgwwxwwhwwwgwvvfxwwwwwgwwwhwwwwwwwgwxvxvwfgwwwwgwvwwwwwgwwwwwwwxgvwwwxvwwxxwwwwwxwggwwwxgwxxwxxwxxxxxgwxxxvwxwwwwwwwwxxwgxwwxgwxwxgggwxxxwxxxxxxxwwxvwwfvwgvwffvvwVvgwwwwfvgwghxVvfvwwgvvwvwwwfgvwxwhwxggwwggfvvVwvuvvgUvvgwwwwwwgwwwwwxwuvwwggwgwwwgwwwgwwXwwwggxwvwwwwwvuwwwwgWgwwvxxwgghwfhwgWgwvwhwwxwwxwwwhgxxwxWwwWwvwwxwhwxwWgwwwwxhxggwwgwwxwxxwwwxgwxxhxwwwwwwvwwVwwwwxwwwwxwhvwxwwhhwwxwwwwwwwwwxgwxgwxxhxgfgxxxwwxwwwWwwvwwwwxhxwggwgwfxwhwwwxxwxwwxxhhhxxwgwwwwwwwwwhxgwwwwxwxxxwxxwhwgwxxwwhxgxxwwhgxxwwxWwxxwwwwwwwvwwwxxxgwwwwxxhwwwxwwhgxwwwwxwvgggwwwfvwxvxgwwwwwwxghwwgvvvffwwxwxgwwvwwwxwwwxwgwwwggwwvwwwwwvwwgvwwwwgwwwxgwvgvwvvvwfvwwwwgwvwwwhxwwgwgwvgfvwxvwwwfhwwwwwhxwwgwwwwwxfvwxxwwwxxxwwxwxxxwxwxxvxgwwvwwwwwvwwxwwgwxwwxwxxxxxvxwwwwwxwxwwxwwwwgvwhxvwwxwxwvxxxwvwwvwwwxvwwwxxwwxwwwxwwwwwwwwxwxxhxwwxggwwwwwxwgvxwgwvxxxwwxxgxvxxwghwwgwwgwvxhxwwwwvwxwgwxwxxxxwhxhwgxxxwxwgvwxgwwwwwxxwwxggwwvvwwwwgwwvwxwwxwwwxxxxxvvvgvwwwwxgwxvwwwwvwxwwwwxwvvvwxgwfxxvwwwwwxxwxxxffwvvvwfvwwwxwvwwwwxwgwgwwvvvvwwxwxxxwgwvgwxwwwwwxwxfvwwxxwwxxwwxwgvxxwxxwxwxgwfwxwxxwxxwxxxxwxxgwwwwgwwxxxxxxvwwgwvxxwxxxxwxwxwxxxwxxxyvwwvwwwwxvxwwxxxwhxxwwwvwgwvxxxwxxwxwxwxwhxwxwwwwwxxwwxxhwgxxxxwwwwgwxxwxxwxwxxxwwwwgwxxwxxwxwwwgxvxxxwxxxwxxwwwxxxwxwxwgwvgwxxwxxxxwxwxxwxxxyxueevwdvwxwfuwfeugwwgxtwwvwwwevwwfuvvvfwvwfffwwfvvwvwwgfvvwvwfwewwVwwvvwwwvwvfwwwvgfgwvvgdfwfUvvWwgvvwffwtvwvWwwvfwxwfuwwvewwwggvwvwwfwwwwfwwwwfvfwggwuxwfwwwxwwwgfvvwwwwwfwvfwwwwwwvgtwwwxwwgxwxwwxxwvwgwvwwwwwwgwwfwwwvxvgwvwgwVwwvwwwwfvwwwxgwwwxUvwwwwxfwwxXhwvgwwvfwwwwwwwwhvggwwgwwewwxgwwvwWgvwgwxxxwgwwwhvwwvvgwvwxwwVvwwwwwwxxwgwwhhxwwvxwwxhwxwwxwewgwvwwxwwgwxxxwwwwwxxvxwxxgwxgxwwwwxwxxwwxxvwwwfuvwvwVvgwvfuwfwgwvvevvwwvwgvevgwgvvvwXwwwwxwgxxwxwgwwvwwdvgvfffVwwuvuwwvfgdwwvWwwwwwwwwwwgwgwwwxghfxwxxxwwgwwgvvvwxWvtvwgwwgvwgxgfwwwgxhxwwxxwfwxgxxgwwghwgwuvwwwgwwxwwvwwxgwwggxwwvxwwwwwwxxxxwwwwvvwwgwwvwwwewgwggxwwwgvvwxwxxwwwghxxwxxgfxwxxfhwwwwwwwhwwgwhwgwwvgwwxxhgxwwxxwhgxxwwxwwxhwwwgxvgwwXhwwwwxwwxhxxfwwwwxxxxxhxgxxhwwwwWgwxxxwvwhvwwwwwwwxxwxxxxwxxxwuwwgwxVvvwfvfWvwwgwxvfgwVvgwwwwvhvvwwxwvvfegwfffvwhwwvwVvvwwvuffvvvfwffvwWwvwVfvwvwvvwFcwfwfwfvuguvwuFuugvfewvwgwwfgfgwwxwwvwgxwfwgufgwwuhgwwxwxxvwwvwwwwwvwgwwwwhxxxwxwvfuwFvegwwwxxwwxVwfhwVUvwwwwwxggwwxwwvgxhwhwgwxxhwgwwxvxwxvxwvggVewwwxgfwwhwfwwwwwwwwwxvvgwvwwvwxgwwxxwxuxgwgxvwfvwwwvgfwvwvwwggwwwwxwWwwwggvwfgwvhxwxhvwvwwwxfwffwxxwwwgggWvxfwwfwwgghwwwwxVvwwwxgggxhxwxwwgxxwwhxwwwvwwwxxhwwgvvgvxhgxxwxxwwwwwfggxhhfgwwgwxwwwwhgwwwvvgvvhgwwwwwxwwgwgwvwwwvgvwwvxvdUgwwWWvfWvwvxwgvwwwwhxevfghwxwxxwxwTUwWgfwwvfwuwwf6vdVvfvgxvxwvwvwgxwwgwfwwwxwwwwwWxxgwwwwwvgwwgwwxvwwhgwggwwvXhwwwxgwuwhwwhwwxwfxxghxxxwwwwwxwwgwvfvvxwwwhwgwwwwwhggvwwwgwxxwxxwwwwwwwwxwwwwwwxgwwggvwfwwwxwxgwggwggxuwwvwxwgwwxwxxwwwxhxgxxxxxggwgxwxwgwxgwwwgfvfxwxgwggWggwxwwwxwgwwxwxhxxwxgwwgwwwwvxwgxgwwgxwxxxhxxgvgxxxwwwgxewxwxxwwxxxwxwgwxwwwxwhhwwwvvgghwghxxvxwvwwxxwvxhwvwxwvwwwwxtufwfvgvwvwvvwwvwufwgvwWxxwwvuwvfwwwgwwhvwgwxwxxxgedevfUvvwGvgvvwwwewwwwgwwgeffvVvvwvvvwwwVgwwwvwwwwgfvvwgguwwvwwxvgvwggwwxtggewxwxxwwwwgxgweWffwfgvwvvxwwffxwwwwwwwwgvwvwwwwwwwxwxxxwvuwwffwvfvwgwwwfvwxwguvwwxwegwgwwwWwxwGwvgvwwwxxxxxvgVwxwvgwgvwvgwwwwwvwgxwwwuwuvfvwhwwwxgwgwwxvxwxxgvgfwwwhwwwxfwvgwwwvffxwxwwxxwwxwxwwxwwgvwwwwwgwwxwvuwwgwwgxwwvvwwwvwwvvwwvgwwwwwhwwwWvtfffVuvvwgwvwvfwvxwgfwvwxxxvfuwvwfwwwwwxwvwwwxxxxvffufvtfwugwwwwevwwvwxxxxfvvvvufgwgxxwwxwwvwwwwwwwwxxvVVwfvVFwgwwgwxwwfvxhgxwvvfvwwgxxxxxxvwvxwxwxwwxxgvfwwffwxwxfgxhvwxwgwwwwwwfgxxxxxxwwxxgwxhwwwxvfwwwwwwwwwfvuwwxwwfvwwwwxwfgvwwwxvwwxvvgwwwwxwxxvwguwxxwwwxvwwwwwwwwxxwvwwwxxwxwvvgxwwxwwxxwfvxxxwhwwxwgwxgwxvhwwxuwxxxwgwvxwwggwxwxxvvwwxxgxwwwwgxwxwhwxgxxxwxuwvfvwwwggfvfwxwwvguwgvuvWwvvvwgggevwwvgfWwvwvwvvxgevfufffFcwVudvvffWffffwvwvguwvwfwevfvfwvwewvwvvvwvwvgfwvwwwewvxvwgvwwwvvvgfvgfwgwwxwxwxggwwwwgwfxgwwwxxwgfvfewgwwwwwVdwwgfgwxggwvwvgvvwwwwwxwwwwwwvwwwwwwwwxvvxwwgwgfvvwvgguggvwvwvwwvVuwwwevvwwhvwwwugwhuxwwhgwwvwfwfffgvewwguggwgvfVwgxwfgvwwvgwvvwwWfwwwggvgvwwwvXvxwvggwwgwfwvwwVwwwxgwwwwwwxwwwwgxhwwwvwwwuwwwvVwwwwwxvwxwwwxgguxwwwwxwwxwwfgwhxwwxwwgvwxwwwxwwwwvwuxgeevvgffufWvgfvfwfggvwxvwvggfUfwwgwxwvwvvhvwwwwgxvfUdvFuSfvwvwgvfVfvevvgegwwfwwwvvvwwwwwgvwgwwvwwxwwwhhwxwwxwwwwvvggwghuxggvwwwwwWwxwhwggvwwxxwwwwwwwgwxxggwwvwwwfwwvvfvwwwwwxxvwwwwfexwwwwwwwhwwwwxxwwvwwwwvwwwvwggwgvgvwwfgwwwhwvggvuwwvgfwwxvwvwwwvwxwwwxxxwxwxwwwxfwwwxfwvwwgugwxfvxgwwwgwwwgfhvwxwwwwwxggwwvxxxwgwvfwxgxwgwgwwwwvgwwxxwxwwvxwxwwxxwxxwWwvwwwhwwwVwvwxwxxwwvwwWgxxwwwwxvwwhwxwxwwgwwwvxwwgggvxhwxwwwwgxvwwfwwwfvvwvgfwfwwgwxvwfwgvwwwwwwwwwvwVgwwwvgvxwxwwwggffgWffewfvvgwgvwgfwwvgfwfvgvfwwgwwvwwfwvwwwwhwwgvxgwwvvgvwwfvwwevvWgfwxwwvxwxxxwxxvwwwwxxwwxwxfwgvwfgwwxwwwwwvgxxwwxxxwxwwgwxwxwwwwwwwghwwxwwwgvwwwwwwvgvwgxwwwggwgxfwwwwwgwwwwwgwwwxfwxwhwgxgxxggwwwxxwggwwfwfvfwfgvwwwwwwfggfwwxxhvwfwwgwwwwxxwwxwwgwvhvhwwgxgwwgvwwwhfvwwfxwwhxwhwwwxxxvxxxwxwxxgxxwxhhxxwwxfxvwwwfvxwwggxwxgwwxwwvxxxwggwwxwxwxwxwwgwvfvxwhfwvfvvvgfhgwwgfgwwvwxwwwwxegvwwwwwggwwwhwxxxxwwVwvwegffvvvwwwvvfvwgfwggwxgwwwwwwwwgwxgwxwvxwwxggwwxwwwxwgwwxwfvggwfwwwxxwwwxwhwxgwwwwwwhxvgxwgwwwxxwxxwwwwwwwwwvwwwvwwxwwwwxgxwwwvwvxvxwxwwxxxhxxxxvxwxwxgwggvvgwgwwwwwwfvhwwwxwxwwxwxxwwvvwwxwwwwwwwwxxhwwgvwwgwwhwgwgwwwwgwxxhghwwwxgwvwxwwxvwwwxwxxxwwxwxwxwgwxwhwwhwwvgwxxxhxxwwhxxxwxwxxwxxwxwwxxxxxwwgwwwwhwxwxwfwwxwxwxxxxhuwxwvfgxwxwwgwvfgwgwwxwwwwvvfwvhgggwvggxgvxgwvvgvfdwvwwwwwwvwvwwwvxwgwgVvevgvxvxwvgwwgwwwxxhxxwwvwxghwxgwwwwggwxvxxwxxvfgfwwgwwwxfwwwwxxxwvwgvwvggvvwxfwwxxxvxxWwvvggwvxwwxxxwgxwxwwwwwxggwwwwxggwtxwwfwwwxxxvwVvfwgwwwfvwwgxwgwhxwwwvwwfvwwxwwxxxgwwwwvxgwwxwwwwwxwxwwwvwvwwwwwwhVxwxwvggwwhvvwwxxxwwwxwwxgwxWwwwwwwwxwwwxwxhwgwwxwwwwxwgwwxxwwwwwgxwwwwwgxxxfxwwwwhghxxxxwwwxwwvwwvwwwxwwvxwwvfuvvvwwxxvwxwwwxwxwwxwwwvwfvgwwxwvwxxxfxxhwfvuwwwwfwwWwwwvwwxwwvgwwxwwxwwwwwwwwxxwhwxwwggvwvggvvwxxxgxghwxxxgwxwwwwwwwxwxxwxxxvwwgwwwxwwwxxhwxwwwwvwwwwwhwwxxwwwxwwxxxxxwgvvwfvxvwxxwwggwvwxwwwwwwwwxwwvwxwwxxxxxxwxwgwwwxgwxwwvvwxwwfwwwxwxxwxxwwxxxhxwwxwxxvvgxWwvxwvvwwxggxxxwwxwwwwwxxxwxxwxxxfwwgwwwwxVuvvuuwwvvvffevvwvevwvvfvwwfvvwwfuvwwuwwufvfggfwvwvvggvwgfvVwvvevvwfvwwgVwufvfwgvwvuwfwevvvguvvwwggggweevvvgvwfwvwwwwhuvwwfvwwwfgwfwwgfvvwgxwvwxwvwvwwwgxgewwwWwgwwhwvxvfwuwgwwxxwwwwvwwVwwgfwhwfwvwwwwwvwwwxwxvwwgvWgvwwwfvwvWwwwfWwvwvwfguwxwgvwfvwwvwwxwVwwfwwvvwwggfvwvgwvwwwwxxvvwwvwwwwwfwwfwewvwwwfwwwgwwwfwvvwwgggwvwwwgwwwwwwgwvxxwxfwwgwwgwxwxgfvxwxxgwwxwwfxgxgwxxxxwvwwwgwwxwwwfwwvwwvwwxgwwxwwwwwxwfwgwgwvwvvwxvguxfvvwvvwgwwgwwgvvvwwgwgvwfwwwVwwwwVguvvwwhvwxgxwwwwfvvvvvvuvvwfwwfwfwuwvwffwvfxhwfvvvwwwwvwwwgwgegvfwwxvgxgwwwwvwwvVwwwwWwvwwwvfgxgxwvvuwvWwwWxxwwwxhhwwwVwhWgxxwvwvggwfwvgvxxwwwgxgvwwgwwwwwwwxxwxwwwwwwwwhWwwvwwwwxwwvwwxwvwwxvfuvwwWvvxfxwxgfvvwwwvxwwxgVwwwwwxxgwxwxwwwwgwwwwxxxgxgwggxfxvwgwwwwgxvwfwwvwwwwwgwxwwvhwwwxwvwwxhVvvxxhfxwwwwwwvWxhhxwghwwwwgwhvwgxwgvhxwghvwwfwwxwvwwwwwwwxwwwwwxfhwwxxwvvvvvwwgwfwvvvwwwwwgvxgwwgvwggwxwgvWfwwwwwfvwxwwvvgwvwfwwwvfvwvfvvvwwwgwvwxhwvfWgvwvwfvwvhgfvgwvwwgwxvwvvwwfwwfWwvwwwvvggwwwwwwvwwxxwvwwwwwwwwxfvvwxgwvwwwwgggvwvvwwxwvwwgwxwgwxwxvwfgfxvwwwwxvgwwhhgwgwwwfwwwwxwwvgwwvwvggvhwgvvwwwxwggwwxwvwwxwgwwwwhxwvhwwxwwwwwxgwgwwxwwwvgwwgwgxgwwwwxggwgxwwwwxwwgwwwgxhwwgvwwxxvwwWwggwwwxxwwwgxhgwwwwxxxgwwwwwxxwgvwxwxxwwwvwwgwxwxxwwxwxwggwwvxwhxvwgwgxwgxwwvxhxxwwwwwwwwvwwwfvxxxwwvwwgvwwggwvvwwxwhfwwwwwwwgufvxgxwwwwxwfwwfvvgwwwwxwvvwgwxwggwxvxwwvggvwhxwxgvwwwxgwxxxhwwwxvwxwwhgwwvfgvxgxxwfwgwwxvhvxfvgvwwwxwwxwfvgwxxwwwwxwwxgxwgxwwwwwwwwwwwwwxxxwwwwwwwxwwwwwxgwwwwxwwgwvxwxxxwxxwwwwwwxwvwxvwwxxwxgwhxwxxhxxwwwgwxhgxwxwwgwwwxwwwwwggxhxwwxghxwxgxxxxgvwwwxxhwwxhwvwvwwwhgwwxwwwgxwwxgwvwwxxwwwwwhwxwwwgwxxwvwhgwxgwxwxtgwfwvWwvexvgwgwwvwvwgwvxVvwvwVwvhwvvvuwffvwfxFvwwwgvwgFRwvgvevwvwvgwfvuwwgvgvvfffvUfewGwfwewvwfwvgvwwguwwwggfvgvwgugvwwwuwwgwwwwwvwwwwxxvwfwwfwvwxwwgwxxwgxwvxwfwvvvvvUwUvvvWwwwxwwwvwxwwwgwgVwwwwhvgfwgvxwwwxwwwwwxwxwvwwwwwwwuwgvwuvwwGtwvwvvwgwvwvwfggwwwxWvvxwwwwfwvwwwtwxwXwwwwwfwvwwgwwwvwgvwvwgwggwgWvhwuwgvwwgvwvxwgwxwgwwvWvwgfWefgwGvwwwvvwvwwxxwxwwwwvgwwvwfwxxwxfxwhvxxwwwwgxwwvwvwvwwwxwwwfwvwwgwxvuhxgwwxwwwwgwxwxxxxvvwwWwwxwggxxwfwwxgvvxfguwwwvwvvvgvwwwwfvwwxwwedvvvWgvvgwwwxfvegxgwxuwwxwwxveUwfwvgfwVwwxwhwwfwwwwvvxwwwwwgEvTewwvGuwvhvwwwwwwvghwwwwwwwwvggwtfwwxwwvxWwwhghwfxwvgvgwvvwwwvwvwgwwxxwxxxwvwwhwwWwgvwvwwwwwwxwwwwxwwwxwwvvgvvwwgvwwwwwgfxxwwxwxuvwxxxfwxwwvwwvwwgwwxxwvvfwwwfvwwgxwvwvxxxwwhwhxvwgwwwxgxwwwwwwvwwgwxwxwwwwvgwgfvWwwwgwwwvwwggxxwvhwghxxxwwwgwwWvwvwhwxwxwvxxuvggfwhwwwwwgwwvwvwwwgwwwwxgwwgxwvxwxwxwwwxxvwuWfggwXwwwwxwvwwwhwwvvwwxwwvxwwvwwfwvfwwwvgvwfxwwwewuwwwvvwfvVvwvwgwwgVvwwwwfxfUvgVwwuwxVwufweffwevvuwvwfxwwvwvvvxwgwWffvuvwvgfuwxxwwUvtvwggeffgwggvfwwwxggxvwxwffVffxwvwwwfgvvwvwwwftwwwwwwwfwfgfugfvxwwwfwuwwwgfwxxfwxxwwwwwfVvwwwwwwxxwwwwvfwwfgwwwwwEfwxwwwfuwwwVwgwvfxwwwgwwgvvwwwwwwvwwxxxvwgfwxwgvvwwwwvwwvwgwxevxhEffwwwwwwwwvvwwwwwxxxwxfvwgugwwxxwguvwwfwxvxxwwwwwxxvvgfxxgwgwwwwvvvwvgvwwxxwwfgxwUxwxxwxwxwwgwwxwwwxwwvxwxvwwvwgwwwvegvwfwvwxggfwwhfuvgxwwxgwfvvwugevwgfugwgFwwwwwxwwfvwwgvwwwwwwwvxwwxwxwxwwwgxgwwxVvvwgwxwxxxwwwgvxwwghwgwwwxwwhwxwxfwvwwwwwwwwwhgvwxwwwwxxgxwwwxxwhwwvwwwxxwxxxhfwugxgwwfgwxgwwwxxxxxxwgewxxwwgwwvvwxwwvwwwwwwvVxwVwxwxwvwwwwxxwgxxwwwwwwwxxxxxwxwfewvxwfwxwwxxxxxxxwgwvwwwwwwwxwxwhwxxvvwvxhxwxxwxgwgwvgxxxwguxWwugggwuxwwwwuhwffehgwuxwvxxfuuwdgfUvvwVvvwxggwggfwggVfggvvvfgwxWwgwgwwvffggVwvxgfvwWgvvhggewgwWVvggggwgwgehvwwvgxfwvxewwUuvwgwwxwWxvvwgwwfwwhWvwwgwwhwxwwxgWwhgxwxwwgvwwgfwwhxwgwwxwwwxwxwxxghhxxxwxwxwWuwWvvwvwgGvwwwxwvvwxwwgXvwwwwwvxxhwwwwwwxhwwwwxgwwgfwxxgwvwgxwfwxwwwxxwxwvvwxgfwxxwvwwwxgguwxhwxxxhvgwwfwuwgwxwwxWwvwxwgwxxgxxwWgxxwxwxxwwxhwwxxxhhwxxhxwfwxxwwwxwwxwwvxxhgxxhxwwxxwxwxwxxhxxxwxwhxxxgvwwvfwgVxvvgffgfegevwgwhgWxfvwxgwvxwxgfghwgwgwxxwwxwxfggufgvffwvwwwwwwuwwGwwgwvgwgvvwxwxwXwwwxwwwwwwwwxxvwwwvuuwfvvgwxhfefvwwwgwwwgxhVfvfvwxxgwhghggxgwhWgvwhghxvfvwwxwxxwwxwwxxvwgwxxxxvxwxxgxxwxwgxxwxwgxwgggvxgwhhxfvvwxxwwwxXgxxgGwwxhwwxxwxhXxgwxwWXxhWgwwwwvwwxwwxxwxgwwgwwhxgxwxwxfwxxxxwwxxgwxxxxwxwvwxgwxxXwwwhwwxxxgxhvwhhghxwhvwhwwwxxxwvhwuwxhxgwxXxwxwwxwxgxwwxxwwvwwxvxxvxwwxwhxgwtvvgvggggwwfvwwwgwwvvwwwwwwwgwxwwvwwxvxxvwvxwxxwxvfwvgeugvvvuvvwgwwvwwwvvwxvwxwvvvggvwwwxwxwxgxxxwfwgwfvwvfwgwggwwvwxxwvwwwvwxxhxwxxxfvvvwvwvwvwwwwwxwwuwwwxwwvwwxwhxvggwgvvwVvwwvfwwwvvwxwvvxxxwfvgvhvxxvwwhxxxfevvwwwvgxxvvxxwwxwwxwwxxxvwwwXwwhvxhXhxxhxwfwwwwwgfvugwfggxwvwxgwwwwxwxwxhxwwvwwvvvgwwxwwwwxhwxvwwwwwwxxxwhxvwwvgTUwvvugfwwfewwwwwwwwwwxgxfTUugfwwwwgwwvvxwvwxwwxwwvwwvxwwxwvvvvwwwvwgvwvwwwwwwhwvvxxxxwxxxxvwwgwvwwvgfxxwwwwwwhxwxwwxwwwwxwxxhwxvwxwxhgeewgwfwxwxvwwwwgwxwxwvxgwxxxxwxgxxvgwwwvvgwwwxwgxwxwxxwwxxxwxvvwwwhwwwxwwwwwxwwxwxwwxxwxwwhwwwwwwwwwwwxwxxwxdvwgwwwvgvxfwvwvvwwwwvwwxwxwwwfwwwwwwwwvwwhwwwvffwgffVVvvwwwgffvwwxwwvvwxwxwgvvvvwwwvvvwwwvvvwggxvwxxxwgvvxggwffwwwwfwgwwwxwwvvwvwxwwffvvwwwxwwvxxwvwwwwwgvxwwwwxfwwxvwxwuwwxvvwffvwvvvxfvwwxxwvwwxwwwxwwxwxgvwxwwwxfffwwwwwwwwxhwhxwgfwwxhgwwhxwwxxgwhwwgxxxwwxxxxxggvvwwwwxwfwvxxxuwwwxxwwwwwxxxxwfwwvvvvwxwvwfvwwxwwwwxxvxxwxxxwxwxuwvwwwwWDUvwwwffvwgwwvvWvxwgvfwwwxxwwxwVDUvwwhvwWvwwfffvwwwhwwxwxwwwwwfwxxxwwwwxxxwxxvwwwvfvwwgwxgvfwxxwWgwxwwxxwxgxwxfwfgwxfwxwxxwxwwWvwwhwxxxxwxwwgwxxwwhxxhvwvfvwwwwwvvgvwgxwwwwwxxwwxhxwxvwwxwffgwxwwxwvwxwwwffwxwwwxxxxwwxxhwxfvvxwgwwwgfwwxxxwxxxgxxwxxxhwhwwwxgxxwxxxwvwxevwfwvwggwwwwvwwwxwgwxwgvvwgwwwvgwxwwwgvwXwwwvWvxvxfwgwwgewegvwvwvfwgwwwwgwwwvwgwxwfvwgxvgvxgxwwwwxwxhgwwxgwfwwwwwWvgwwgvwxwwxwwwwwxwxgxxxvgwgwwwgvwvfvwwwxwwwxvxwwwwgxxwwxxwvxwwwvfwgwwxwwggvgwvwfvgfwvxwwwxxwwwwvwxxgvvwxxwxxxxxwwvgwwvwUvfwwwwgwwwwwxxWxfwwxwvvgwwwwxwwhwwxgxxxxgxxwwwwwgwwfvwwxwgwxwwxxwwxwwxxxwxxwwxxwxxhwxwxxwwxfuvhwwxxwwgfwwwhwwwxwwwgwwgwxxwwwxxxgwwwxxwxgwxxxwWwgwwwwvfvfvwwwwwwwwgwgwvghwxwvvwwxwwwwxxxwwwxxxxwvgfvgwWvgggfwwwvgwwfXhxxwwxgwxwwwxwxwxvwhwwxxwwxwwgwwxfwfwxwwxWwfwwwxwwxwxwwxxxwxwwwgwxwfwxwwwxwwgxWxwgfwwwwgwxxxWwxwwxxhxxxwwxwgwvwwgwwwwwwwgggwwwvgvxxwxwwxwwwxxxxxxxxxhwevgxwwhwXgxvxwhwwwxhhXwgxxxxxxxhwwwwxxwgwwwxwwgwwxvxxwxwwwxhvxwxhxxwxfxwwwwxxxvwwxwhwwggxwxhhwwwgxxxxxwhgwwsvvgwvwwwggwugwgVvwwwwugwwvwvfwwwwwwxvfgwwwwwxwfVwwgvvwwugwwwvfevwvgwgwwwwwwgwffwvevvvwwwvuwwxugxwwxxxffgwwwvfwwwvVugwwwvwhwxfwggxwhgwxwwxwxxVugwfvgwxwwwvwwugwwwwwxvgwdvwfwxxwvvvwxwxxfgwwvwwvegxwvwewwwxwvwvwgfwwvwwwxfufvxwwwxxwffwwwwwwwwwwwvfxgwwwwggxvwgwwwwwwwwwxwxugxxxwwgwxgfwwvwwwvwwfwvwwwwwwgwvWwwhwxwdwwfxwxwwwwwwwwwwwwwwxwxwugwxwwwgwwxgxwwwwxgwxxxwvwwwxxwvvwfwffwvvwgwgSEwwwwfwxxwfwwwwwwwfvgvwxxwwxwxfSEwvwwfwwvvvgvxugxwwwxwwwwwwvwwwwwwvwvwxvfvwvwwvwwwvwwwwhwwhwwwvwvwwwwhxxwwgvghxxhwwxvwwgwwwgwwwwwwwgvxvwgfgfwwhwhhhwwwwxvwxxvvffwwwxvwwxvvwvwwwxwwwwwwwxwwvwwxwwwxwwwvwwvxwwwwugwxxwwwwwwwwwwxwwvwwwxxwwwwuwwwwwwwwxvwwwgwvwwwwwwwwwhxwhxwxhwhxwwwwwvwxxxxwxwvwwxxwxxxwwxxwxgwwwwvwwvvvvvwvvwwuwvwwvwvfvwwvwwvgvvgvfwvvwwwvwxgwvwwwvxguwwvvvwvvvvvwgwffvvVwwvwwwwvwvwwvvgfwwfwggvvwvvwwwwwwgwvvwxvwwwgvwwfwwwwgfvvwgxvwwwwwwwxgwwwwwwxwvwwwwwgvwvwxwvwvwwwgxwwwwvwwwwxvwwwwwwwvwfvwvwwvwxvfwwwwxwwwwwwxfwwwwwvvvwvwvwxgwwgwwwggxwwwvwwwwvwwvwxvvwuxvwwvwgwxvwvxwwwwvxwgvwvwxwgwwwxwgwxvwvgvwwwvwxxgvvxwwgvwfggwwwwwwwwwwvwwwxgvwwhwxhwwwwwwfwgwvwwvvwwwwvwgwfvwfvvwxvwvwxwggwfwwwwxxhfwwwvwxvfwwvwggvwwvffwwwfwwvvwwwwgwgvvwwgwwwwxwvgwwwwwwwwwwxvfvwwwvvwwgwwgwvwwwvwgxwwxwxwfvvwgvwfgwwggwvvwwwggvwwwwfvgvfwwwwvwwwwwwfwgwwwwwfwwwwxxvwxxxxxwwwwxggwfwwxgwgwvwwwwgwwwxwwwwwwxwgwwwwwwxwvgwwhwxwwwgwwwwxhxvwwxgwwxwvwgwxwwwfwwgwwwwwwxxxvwwvwxwxwwwxwxwwwwxxwwhwwhwwvwgxwxwwwwxwxwwvvwwwwwwvwwgwfggwwwwwwgwvgwwwxwxwvwgfwgxgggvwwgwwxgwwwxxxgfxgvwvvwwxgwwxwvwwwwxwxwwwhwhwwwghwwxwwwxvwxgwwfxxgwwvxuwfvvxvfwwvgwvvwxxwwvUUgwwwwwwvwwwwvvgwwwwgwwwwwxfvwwfvvwfwgweuvwgVVwwgvfcSeuwvwwwwwwfwgwvwwwfwhvVwugwwxvwvwwwwvvxwwwgwwwwwwvwwwwwwwfwwwwwwgvwwxvvvxggwwhwwxwhwvgvwwvwfvwwweUwuwxhvwwgwwgwvwwwxvvwvwwwwwwwvvwwwvgwddwfwwwwwweuvwwwwwvgvfxvvvwwwwvvwwwvwxxwwwwvfwvvvwwwfvwfggfvWwfvgwhvwwgwwhvwgxgwwggxgwwwwxxwwwwwvfwvwwwwwwwvwwwwxvgwwwxwxxwxwwxwwwwwxvwwwvvwwwwwwwwwwwwwxxwgvwxvgwvxxxxgwvwwwwwwxxWxvwwvvwwwvvwwEdgwwwgvwwwgggvwwwgvwwwwwwwvwvxwwwxxvwwwxwwggwwwwwUvuwwwUeevgfwhwfwgwwwwwwwxwwvwwxwwxxxxfxxxwwvwwwwwfwwhgwvwwhvwwwxxxwwvwwxwwwwxwxwwxXWxwxwxwwwwgvwwwvwwwwwhwwgwwwwwwxvvggwxwxwxwxxhfwxwwgwwwvwfvvvwwvwwgwwxwvhwvwwxwwwxxxwxxwhxwxxvwvwwwxgvxwxwwgvxwwhwwxwxgvwxxxwwwxwxxxwwwwwvwwvwwwwxwwvwvwvwvwwxwwxxxwwwwxwgwxwwgwxwxxwwxgwhwxwwxwwwgwwvhhxwwhvwvxwxvwxeVdfwvvevffwvfvuwwwvxggfwwwfvwgwewwwvvwvwxwfweffwfufgfgewfvfvvffvgwwwfvgfvxgwefevfwVwfwvwfwvVwfvgxfwgwwvwwxeugxuffwfwgfwwwtWwwvwgwwwwxfwgwwwvgwwxxwvwwvwwvxxwwegVWvvwVwVgfwwfwvwwgwwwwwwhwvfgUfgwwwuwxfwwegWwwwxxwxffvwvffffgvwwwfUWwwgwfuvwwwwvgfwfwgvfvgwgwwxvwwwwwwwgfxVwvvvggggVwvvgfwgVwwvXXgvwwvWwfwwxvwwuggvgwhhfggwxwvffwgWvuwgwvwgxwFgvfwgvwwwwwwwwwgvvwxvwwxwwwwwvwxwxwwghhvhwffgwfwwggwwwwxwgfggwwwwfggwgwggfgwwwwwxxhgwxuhgwxwhwhgwfwxfgvwvffwffvvwwwfgvwwwwfwuwwwwxfgvfwwvwwvwgvgwvwwwwxwhvhwxwfwVvtvgvWgVgwwwgeuvwvxwwwwwhwgwfwUgwwwwfwwgwgwwgxwwwxwwhwwxvgvwuevwwwwvvgvvtwwwxvgwgwvwwwgvwwwgwhvgxwhgwwwwwwwwhgxxfuvfvfvwwggvwwwvwwwwwwwxxwxhwwwwwxwwgxwwwxxwwwhwxwxxwuvwufwwfvvwgwwuuvgxwhvwwgwwwwwwwwxxwwxxvwwwwwwxwxxgxxxVwvxgxvxVvwffwwvgwwwhgwhgwgxwWwwfwggwxwvxwvwwxxwwxwxwwxxggwvxvwwwgxgxvuewgwgvwvgwwWwgwwwxwxwwggwwxwxwwwgwwhhwwxwuvwwgvwvwwxwwwwgfwxfwwwvwwhvwxxxwwwxwwwxwwxwwxuwwwhwwwggvvgfwxwwwwwwwxwvwwwvwwwxvxwwwghwwwwwxwvwgwgevwggvwxwgtfvwgfwvfwwvvwwvvvwffwwwxwxwwwwwwgxwwwgwvvwwxwxVvwwwxwwwwxfvwwwwxxwwvwfvvwvfwwwwwxvwvvvwwwwwxwwxxxxwxxxwxwxxtgwvwwwxgevxwwgwwwgwwwwwxwwwwwwwwxxvwwwxwwwwwwggwwgvwhxwvwxhwwxwxxxxhwwwgwvvxWvvwxxwvvwwgwvvwwxwwwhwxxwxxxwwhwgwwwxvwxwwwxgxxxvwwxxxxwwwwvwwvwgwwwvwwwwxweuffwxvxxwwhwvvvxhwvxxxwxwxfvvwxwvwgvgvhgwwwwwvwwwgxxwwgwxwwwxwxxwwwxwwwwvvwwwwwwwwvwxxxxwwwgwxwgwxxwxwwwxfvwwwxwwxxwwwwxwwvwwxwwxxvxxxgxxwwgeefghwxxwwwvwgwxwhvxxwxwwxxwwwggwwwwhhwwvxxxxxwxxwxxxwxxxwwxwwxwwxhwxwwwxxxwxwxxwwxwxwxwxxwwwxwxwxxxxxxwwwxuwfwwwwfvvxvwwgwwwwxfwvwfwwwwwwggwwwvwggfgxvgwxvwvwwwwwvwfvvuwvwvgfwwwwwewwwwwwwwwvwwvwxxwwvwwwxxuvwwwvwvxgwwwfggwfwwwwxwwwgfwxwwwwxwwwfxwWvxwxwwfVgwvwwwwwwwwxwwxuwwxwxwxwvuxwwxwfwwwwwwwwxgwvvwwwgwxwvwwxwwvwfxwwggxvxwxwwwwwvxvgwwxwfvvwxwwxwwgxgwvvwwxwwwwwwhwwxwwwwxxxxgwwgwgwvwwxfvvxxgxwwwwxwwwwxxxxxwwwwxxwxwwwfvvwwhxwwgwwxwwwgwxggfgwwwfwxwxwwwwwxgfxwxxwwxxfwwwggwwgvvvgfwwwxwvwwwwxwxgwwwwwwwwwwgxwxxxwxvgfwwwwewwgwwxfggfwwvxwwwwwwwwwwwxwhvvxwgwwxwwwwwwwvxgwxwxxWwwwwwxwxwwwwwhvhxxxwwwwvxxhxvwxwxwgwwwwxxwgwwwxfwxxwwxvvwxxwwxxfwwwxwwwwxgxwvfwuwwxvwwxhwwwwwwwxwxwxxxwwwxxgvvvwwwwxwwxxwwwgwwxxvwwwxxwxxxwxwxwwwhxwxwwvWvxwwwwxwxxwwggwwwxwwwgvxvxxxxwwwwxxxwwxwwxxxwwwwwwwxxxwxvxxxwwxwxxgvxxwwxxxgvxxxdfvwvfvvwwwxfwvvwwvwwwvfgxwgwwwwgggwvxvvwwxxeewwgvuwVvfwvwwwvvwwwgxwwffevevvvuwwgwvwxwfwwhwxwxwxwVvfxVgWwwvvwwvvwwwwxwwhwxfvvwwwwwwwxwwwxxwxxxefvfgvwwwwwuwwwgvwwwxwxwwwwwgwvvwuxvwvwxwxxwxwfvvwgwgwwvwwvwVfwwwvvwxvxvvgvvwvwxvuwwwwxxwxxeVvwwgxwvwhwxwvxgwvwwxxxwwxwxvvwwwwvvwxwxhwvXwxWwxgxwxfWgwfwxwvvxvwwffwwxwwwwwwxwgwwewwwwxwwwfwwwxxwwwxgvwwvvvwwwwwwwwvggxhxwxwwwvwwwwwxxwxvwxwwxxxxfvfwfegggvwgwwwvvvwwwWvwxgTTvvggwwwwwwwwvxhhweTTvfvfwvfwwgwwvvvwwwxwwxvwgfwwwwwvwwgwwwxwwwwegfwvwufwwwwwWwuwvwxwxxwwhxwwwwwgwwwxwwwxxwxwvvgWvgugwwxxwxwhvwwxwxhgwxxwXwwwwwxxwxwxfffvwfwgwwwvwwxwwgggxwwxxwvwwwwwwxwxxxhxwxevwwfwwxwxxxwvxxxwwwxxwvwhvwgxxxxxxwvwvwvvwwgxgwvxxxgwxxwXgwwwxwwxxxwxxvxxwwxwwwwgwwhxwwxwwxfwxxwxxxwwxxxuwvevguwwfVTvvwvvvvgvvvvwfwgfvwwwwwwvvwvgewwgvwwwvwvvvfvVfgfUvSdfuwvwfggfvgwvwgugvvwuvvggvvfvfwfwgwvWwwvgwgwfuwvvvwvfwfwvvWeewxwwvwwwwxxwxwvvwgwwwwwwwvxxwvwwvwffvevuffwxvxgwwwwvgvwgwvwwwwfvxwwvxwwwwfgwwvwwuvxfffffvwevfvwvWwvgvevwwwvwwffvwtuvgwvvxwwvvwvxwwwvxwxvwwfegfvfvvvfugvvwgXvwvhwggvvvwwfvgwwwWvgWvfwwWwwXfxxxwwhwvfvfwvwfgvxwwwwvwwwwgwxwgvwvvvwwwwwvwxwwwwxxwwwgvwvxwwxvuwwvwvgvwwwgwxgwggvgvwwxwggwwwwvwwvwwxhgwwwfguwwvwwvFcvvfvvwvwgfvwevwvwgwgvwvwwgwxwWfwwwxwwwwwwwwxwxwwgfvvTufvVVvvgvfVvgvwwgugwvgwwxvwgwwwwwvhxwwwwwwwwwwwwwfwgvvvwwwwvgvwwfuwwfwwwxwxgwwwwwwwwwwwwwwwwwxwxgxwwgWwhwfgvuwuwvvxwvwwwwgwwgwhguwwxwwwxwwxvxwwgwxwwxwwwhhwvguwvvvwgvwxwvvwvwvwwwhvwvgvwgwwvgwgxwwwwwwxwwxhwxevgwvguwvwxwxgwwxwghvwxxwwwwhxwwwwwxxwxwxvxwvfwvhwwwwfuwwwwgwgwxgxgxwwwwwwvwgwwggwwwxwvwxgwwfxwgWwhwxwwwwvxgWxwxwxxxwwxvwwwwfwxwwgwwwwwwhuvwwgfwgwvwwwgvgwwvwwgvvvfvwwxwfwwwwwwwwwwwwhvwwgwwxvgwwgguwgdfwwwgwggvwgwwwwwwfwgvvwvxhfvvwvwwxwwwwwxwwwxxwwwwwwVvvwwwggwuvgxwwwwwwwwxwwxwxwxxwwwwvvwvwvwvwwhwwgxwfwxgwwwxwwwvwwwxwwxwwgvwvfvvwgxWgwvwwfvwwwdfwwwwwwxwwxxvvwwwxgwwwgwwwwvgggvhhwhggxhwwxxgxwwwgwxwxxxhxxxwwxwvwVwfxvvwuvgxgvwxwwvwwwvxgwxxwwwwxwvwwwxfwwwxxhxvxxxxxwxxwwwwgxxxwwwwwwvwwvwwduVfxvwwggvgvvwgxxvvvgvwwxwwwxxxwxwvvwvfWwwwwwwwwhvwhvhvxhgwxwxwwxwwwxwxwwxxwxxgxwwwwwwwvvwxvvvgWwwxwWwwxwxwxxwxxwxxwxxxxxxxwwxwwwgwwwgxwwxgxhwxwwwwhhwxxwxwxxxxwwwwduWgvwwwxgxwhwwxxwxxwhxwxxxxxxwwvxwXwxwwxwwhwhwxxxxwwxxwxwxxxxwwxxxhxxxxxwxxvwwwwxwxxwxwgwxxxwwxxvxxxxxxxwhwwxxwxwxxwwwxwwwxxwxwwxwwxwxxwxtwggvvfwwwxvwwwvvwwwxvwwxwwwwfvwvgwvgxxggwwWgwwwwxwwxfvwvwcVfvwvwvwwwewwwvgwwwwgvWvwffwwwwwwwwwwwwwwwwxxwxxgvwxvwwwwvwffwwvwwwxxwwwxvwgGvvwfwwwwwgwxhwwwvwwewvwwwvwhuvwwwwwwwxwwvgvewwxwwwfwwwxvwwgvgwwwxvxxgwwwvvvgwwwwwcWwwwvvvwwwvwgfwwwxggwwfvwwwwgwwwhgxwwgwwvwwwwwwwwgxvwwvwwwwxvwwwwwwgwwwxgwwwwwxwwwwwxxxwwxxwgwuvwgffwwwwxwuwwvwgvgxwGvuvwwwwwwwuwwwgfvwgvwxgwwwwwgwgxwxwwwgwwwvxvxwxwwwwvwgfvwwwfwxwghxwxxgXxwwxgwwwxwffwvWwwwuwwwgwwhxwwevUegfwvvwxhwfwwwwwxvwwvuwvvvvgwwuvwwwwwwwgwwxwxxvwffwwvwWwwxxvxwwwxwwwxvwwwwggwwfgwwwgwxwwwwxwwwwvguwwvxfwxgwwwwxxxxxxwwwwwwwwwwxwxwgwxxxvvxwxvxwgfwwhhwxxwxxwvwxhfvwwwWwxwwwwvwwvvwwgwwwUegfwwxwwwgwwxwWwhxwxxvwwxwwwwvwxgwwxwwwwgxwwxxwxxggwwwwwxwxxxxwfgwwwwwxwwxwwxxhgwwvwxhwgxwwwhxgxwwwxxwxwgwxxwxwxwgwxhxxxwwvwxwwgwxwwvwxwgxwwvvvwvvvvwwwxwufwvwwwwwvwwwwefhwwfwvvxwvvwwvvxwwwxwuvwgefwvwwwwfgwvgwwvvwwwwgvwewwvfwwgvxvwgwhwwwwwgwgwvvwhvwwwwwuvwxwfwwwwxwwwvwwxvwwwwwwxgwwwwxwxxxfgxfwwvwwvwwvxwfwwvgwuxgvwvwwxwwfxxwvxwvwxwvwvvwwvvvgwewxvwwwvvwwwxwwvwuvvvfwwwfgwwwvwvwxgwwwwwwwwwwwgwwwvxxwwxwwwwvwwwwvxwwwgwxhgwgxvfxwxwvwwwgwwwwxvwwvwvwwgwwxxxxxxvxwwgwxwwwxwwxxwxwwxwvwwvwwxwxwgwwxwgxwxwwxwxffwvvwvwewgwfwwvvwvfwwvwgwvwvgwfuwwwgvvvwwvhwwXwgWffvwewvfgwgvvwwwhxwgwwhwvggxwwwWwwwwwgggwwwwwxvgwwwxwwwhwvwvvhxwwxwwwwwwwhwxxxxgxwxxwwwxwvvwvwwxvvgwwvxxwhwxwwvxwwwxxwwvwwxwxwwxwwvwgvvwwxxfwwvhwggwvvwxwwwxxwwwwxwwwwgxwwwgwvxhxvhxhghvwhxwwwxwxxwwwXfgxwxxxxwwwwwxxxxwxwwwwwxwxxhwxxwxxxxhwwwxxxxxwxwwgxwwwxxxwwvwwefwevwgfuwwgvevvgwfwxvvwwxwwfvwvvvwvwwufVfvvwvwwwwVvvvwfwwvugvvuwwfvwfvwwwvfgwgwwfevvgwweffwwfwwfvwvgwwwwwgfuwwwwwegwffVvwwwwggwxxfgvffwuwwWfwwwxvxvwwfgvgwugvwwwvffvvwvwgwwwwvgvfvwwfwwfwwwgwvwxwwfwwvVvwvwwwwwwwwxwgwwwvwwwwwwwvggwwfwwxwgwwwxwwwvgwwhwwwwwwwfgwvvwwvgvxwwwwgwefwwvwgwwwhwgwvwvggxxggwgvhwvwgvwwwfwxwxwvvwwwwwwwwwgwwWwwwwuxwwfvvwwwwwwwxxgxwxwwfwwwwfvwgwxwwwwfvwxwxhhWwwxfUfwwwhwwwwggxwxwUgwwghxvwfwfvwvvvwwvxfwwvVvwwwxwwwwwxwwxggwwwvvgwwwwwwwgwwxxwwxvewvvvwfwwgvwwfgwwhgwfvwgxwwwuwwvvwwxhwwwwgwwhgggvwgwwwwfvxwxwxfgwwwwxfvwwxxwwvxxwwffvwwwvwwwwwwwwhxvwwwwwxfwwgwwgwxwxxfwvwwwwWwwfwxhwwwwxxwxgwwgwxgwwwwwwxwwxvwwwxwwwwxwgwwxwwwwwwwwwxwwwxwwwwwwwxwxxwxwxxwwwxwwwwwwhwwwwxwwwhwfwvwgwhxvvwwwwxxwgwwxwwwwxvvwwwwxxwgxwwggvwvwwwxwxxwhxwfvvwwwwwgxvwwwwxwwwxgwwwwxwfwvgxwxwwwwwwxwxwwxwwwwwxwgwxxvwwfvwfwxvwwgwwxwwvxfwwwwfvwvwfvvwwwxxgwwxfvwvvuwwwwvwvvwvgwvgwvwwxvwvwvwgwfvwwggwwgwxwxwwxwvxwfwxwwwwgwwvxvwwwwgvwxvgwwfwfwxxxwwwvxwwxxvwwvwvwvxwwwwwwvwxwwwggvvwwwwxwhwwwwwvxwgwwgvwwvgwvwvwwwwfwxwwffwvgwwwwwwxwwxvwwxwxwxwxwggwwwwxvgwvwwwwvwwwwwxvwxwghwvwwxvwhwxvxvgwxxwhxvxxfwwwwwvgwvgxwffwvwxwgfwggwwwwwwvwhwxwgxvwwwwwvxwwxwwxvwxwwggvgwwwghwgfwgxgfwwxvxwgwwhgwwvwvwvxgfwhvvfwwwvwvwvgwwvvwwwvwwgwwwwxwgvvwhgwgwwwgwxwwxwwwwwxwfvwvwgwfwfwwwxwwxxvwhwwwwvxwgvwhxxgxgwxwwwwwwxxwwxwvwffvwwxwhwwwxvvwhwwhggwggxgwwvgwwxxwwwxvvwggxxwwwwxvwxvgwxwwvwwwgwxwwwvgwxwxxxxwxxwwwxwwgwwwwvxwxwwxxwgxwvwwxwwwwwwwxwwxwxxxxwxwwgwwxwxwhxvwwvxgwxxxxwxxxwwwxxwwwxgwwwwxwvxwgwxwgvxxfwwwfwwwwwxwwwwxwxwwxxwwxvxwwxxvwwvgwwwwwwvxwwhvvwxwxwxxxxxwxwxuwwgvwwfwwevvwwgfwvWfwvvvvwgwwwxgvwwwUEwvwgvvvwxwwwuvwgwfwuvfwewvwfgfwvwwwefwwvfgvUFvgwvvgwvwvwxcdveggffwwwwgwevvwgVewvwvwhwfgffvwwwwwwxxvgvwwwfwvwwvxwwfvwwwvxxwwwwwwvvfwwwwwvwwgxevfwwwwgwxwwvwwvufvuuwwvwxgxwgguwwwvvwvwwvgwgwfwwvwWgwvwvdevvhvxwwwvvgxvwwwwufgwwxfgxvwwxwwvxfwwwuwvguvwwwwWwUevhhfvwwuwvvxwgwXwxxvgfgxwvgggxxffgwwwfwvwxwxgfvwvwwgxwwxwwwwwvwwxvwwhvgxxuwwfvwwwgwwvvggevvwwwwwwxwvgwvvwvfwxwvwwwvgwxwxwxwwgvgxvwwvvxxwgwwwwwwwgvwwvw6dwvvwvwwwxwhwgvvwwwgWxggwwwwxxxxvVfvwwvwwvwwduuvwffwxxwgwVfvvhvxxvhxwxwwwwWxwwwwxvwwxgwwwwwxxwhfuvvvgwwxxwwwgwwwwwwwwxgVfwwwwxvxxxwxwvfwvuvwxwxvvwwwggvwvxwxwwxxxxhwwwxwxwwwgwhwgwwvgggwgwwxwffwwxwhwgwgxgwwxwxwhwwxwvwwwxwxwxvvfwfwxwwxhwxvVfwwxwgwwwwwxxxwxxxxvxwxxwwwwvvwxvxwwwwuwguwxwfgwwvgvvxwxwxwwxfwwxxwxwxwwwwwwhwwgwwvxgwxwwgvvwgffguxwxxwwgxwwwwxgwxxwwwwwwwtwwuwxUvevvfwwwgffxvwwvwwvtvwwvgfwffgeufwuwVwvwvVvexvwwfwwgeUfgvwuvewwvfwgwgweefgWgfwvgffWfwdtvwfwxfvvwVfvwWwwfvfWvewwxvwwfxwwdgwwfuvwvwwwxwxuxggwxWwwwwVvxwhxwfxxxvwxuxwWfvvwxgwfwEudhhWfwwgwwvwwxgvvxwxvxwwwwfxwxwxwxwwxhxvxwegwwveeffvuvwwvFVxwwxwvuvwvwvwwgVwfwxfvgwgwfwwwwvxggxwwwwxwfvwxwwwwwvfwggxwwvxwwhwwwwgvgvwvwwwwWggwgwwXwwgxhwwhXfxfvwwgwVuxwwvwwxfvvxwuvwvgwxgwwxWwxxxvgxgwwwwxwwwwhwvhfWwxvxwwvvhwgwwgvgxhhwhhxvwwwwxwxwwwwxguhwxwxwwxwxxwwxwxewwwUwhfWexfvvvWvwwwuevuwggwggwgwvwvgwwfwggffxwgvwhwffffgfwevuwfwwegggGwwvghgwggwVvuwwwvwwXwgwwXghxxgwhxwwwhWwvWwvwgwwVegwwwgxwwvxwwwwvxwxfxwwwggfwgwhxwhwxgffxwgfvwwxxwxwhvwxwhwxwxwxxhxwwwwwwxwwxwwgWVwwwxhwxwhxvwxvggwwwwfwwxwwvwgvwwwgWwxgwwwwvvwxxxvvwhxwwhhwwhhxvwwwwvgwwwggxwwwgwwxxhwwwHwvgwvxwwxwgwwgxwwwxwWgwxwxhwxwgwwxxxwxxxgwwwxwxxxgwwewhxxxgwfwwwwxxxxxwwgwwhwwwwwwhxxvxWwwxxwxwwwxwwwwxwwwwwwwxxxvwvwvwfvvgwwfwvvwwvwwggwgwfwevwvvfwgwgwwxuwgwggwwxvggvefefvwvwwgwgfxwxwwwwwxwwfgfffvfwgwfxwwfvgwwgwgvhxwwxfwvwfwfggvwwvuwgwvvwwxwwxwwwvhwxwwxwxxwvxfwffwvuwwwvwvfvxgwwxvwgxwwwvwwhgwxwxwvxxvvwuvxvwfwvwvwwwwwwxvwvvwwwxwvwvfwgwWhxvwwwgwwxwvghxxxwwwegegwwwhwwwwwwxxxwwxwwwfwwgvWhgwwxgxwwfgWwfwgwwxgwwvwugwgwwxhwwvwvvgwwwwxwhWwvgwwwhxwwfgvwgwgwwwwhxfewgvfVhwxxvwwxgwhgwVwxwghwvwfwxvwwxwwwgxwWwvwfgvfevewwvwvwwgwwfxwwwvfwwwxwwwwgwvwfwxwwfvwwwwxhvwevevfVvVgwwwwwwvwwvxwvwxxwgvvvvfvwwvvwhwxvwxwwggwwvwwwwgwvwgfxwxwwwwhwwxxxwegwwwgwgghxxwwwxvxvwwfwwwggfwxwxwxwfxxwwxwwwwvwwgwhgwxxvxwuvxgxwxvfgwwgwwwwwwwwvwxxwvvxxxwwfwxhxwhxxxxvwxwxhxwgwwxXwvvgwwgvgwwwhxwwvwxxxwwxhvxxwwfxxwwwxgwwwxxwgxwwwxhwuvVvwwgvvhxxxwwgwvwwwghwwfghwvvwwwxwwwwhwwwWwxvwgwxvwfwwxwgwhxxwhwXxvwuwwwwvwxwxxwwwgwvwwxwvxvwvwvvfvevvguwvvwwwvvxuwvfwvwvwwwfwwwwwwfuxwggvwgfffvweggvfvgfvgwfwuvvvgwwwfgvfwvwvvVvvfwwvxfwvvgwwgwgvwwwwvgfvvwwfwvvwwvvwwfwwvxvwwwwwwwxxwwvxwgwwfvfuvwwvwwwgfwwwvwwwwwvwwvgfwwwwwwwwwuwxfwvwwvuwvwvvwvgwfvvwvwvwfvwwwwwgwwgxwwwgvxfvgvwxwwxvwuwfwvvfvwevWvwvwxfwgxggVwwvxwvxwgvxxwwwwvwwghugVxwxwgwuxvwgvxwwfwwvwgwwwwwgvwwwvxwwvwwwwvxwVexwwwvgfwwgwwvxfwwwvwwXfvgwwxwwxwwwwwwxwewWvwwwwxfvwgfguwxvguwwwwwwggvffxvwgfwwxgwvwwwgwwgwwxwvgvwxwwxfvfvggvvwxwwwfvgWwvWgvwvwvwwwxwvwwwwxwwwwwwwhwxgwfwvwfwxwwwwfwwwwwwwxwxwwwwuwwvwwvwvwgvwxxxxwwwwxvxvvvwvvvwwwwwxwwxvxggxwwvhvxwwxxwxwwvwwvwwggwhvwwwwwwwwgwwvwwxvwgvxwwwxgwxxwxwwwxxgfxxwwwwvfgwgwwvwvwxwhgfwWwxgwwxwwwxvhwwwwwwwwxwwwwwwwxwwwwuwvwwwwwWuxwwwwwxwvwhgvwwxwxwwwwwwwxwwfwhvxgxwwgxwuxwhwxgxvhwwwxxwwugUwfwwvgvuwwgewvwfwwwvwuvvwwVvwwgvwvwvwwggvwewwwwwxwxfwfgffTvuvUwvwgffVegwgfwfvWwgwvffVwegggvwfwwwggWwWwwgfwwwwwwvvvwvvVvgfvwuwfvwvwwxwwugggwxwwfwvgwwwwwwwxvfwFwfwVWgwwvgwFgfhwgvxvwwuwgvgwwxwgfxgwvwgwfgvgvgfwgffwfvwvVVwwugvvwxwfffwvvxwvvwvxVvgwwvxwvwwwwwxwwwwVfuwWvwuggwwxwwVwvwwxwvEgvfgvfvwxggwGgvwhwvvggwwwvvgfwfvwVwwwxgvVvvwfwwvwwwwxwWvwwxxxgxwwgxgxgwxwwxwwwwgwwVwfwgfwvwxwxfwvwWwwwxhhgxwwwxwvwxwxwxwwwgwwwwwwwgwwvvwxwxwvWvvwgevfwfwvwwfVewevvvwwvwwwwXvgwwgwwvwvwgwvwwvggwgwgwgfEwfgVVuvvvwwwxgwFfWgwVwwxwhwfefwwwxxvwggwwwwwwxwXvwwgwwwfwvgwvvvufwwgVgwvvxwXvwwwwxgVfuwgvgwwwwwwfwvgWxxWgwwwxgvwvwfgvwwwxfwgwgxgfvwhwwwwwwxwxxxwgwwhwwwwxvvfwwvwwfvxwxfffvhvwvwwvxxvvvwwwwxwxxwwwwhxxxwxwwxxEvegWgwewwwgwgwvGwgVhwgwwwwxwwwwwgxwxwwwgwwwXwwxwwxgwwvfwwwwwwwvgwgwvwfgwxwxxgwgwvxwfvvgwxwxwvwwxwhvwxvgwgxxwwxvwwvgwgxwvvwwvwwwgwwxxwgwwwwwwwwwxwwwwwvgxwfwxwwtwwvwvwwxwfvvugwwxwwwwgwvgwwwvwwwweUwgwwvvwwwfvvwwfvwvuwwffUvwvvvefwevwwvwWwuvvwxvgvffwRdutwfvvgvvwtvwwvvwwgwwfvxwgfvggvwvvwwfwggwwwwwxwxgwwvwgvfwvwwwvxwwxxwxvwvudfvtwvwwgvwwvxwwvwxvwwwvvuwwvwvwwvvvwwvvwwwwuwvwvwwwwvwuffvwwfvvwxguvwegwvgfwdvwvvuvwwwcuugwwgggwwggwwwwfuwgwwwwuwvwuxwGwwgxwvffwvgwuvwvgwvwwfvvhhwwwgwxgvwvvfwvwwxuwvewgvhghwwwwvvwwwxwwwwgwwwwwvvvvwxwvvgwfvgwwxvgwwvwhwwwgwwgwtwwvwwvgwwwwvuwwgwwwwwwvwxxfvvwwxvgewgwwwgvwwwfgwwffggvwwgETwffgfwfwwgwwxwgvxvwwxwwgwfvwEfvevwwwwwgwwxvvWxwhwUfewfwwggvvwxxwwwwwxwgxxwwggwwgwvwwwvwwwwhwvwwgxxwxwgGwvwvgvwwxwhwwwwxwwxwxwxwxwwwwwvvgwvwwxwxxxwhwwwwxggwwwfgwgwgwwwxvwxvwwxwvfwxWwggvgwwwgwxVwwvxgWgwvwhgfvwxwwxwxxwwwfwxxxxgwxwwxgfgwwwwugwwwxxwwvwhhwwxwxwxwvfvxwwwwwvwwwvwxxxhwwvwwwwwwxwxxxgggvgxwvvghxvwvwgwwxwxwwwwwwwfwwwwWwxwwwxhwwxWwwgxgwgvwwwgwwwwxwwfwwwwvgvwgxwxwxfwfwvxufgwvxwwvwwwvwwwvvwggwgwwwwwvwuwwwvwwwwgwxvvvwvgwwwwwxwwvwwwwewgvwgwvgvwwwwvwwwwwxvdfwvwwvvwuxvwwvvwwvvwwwhwwwvvvgwwwwvwfwvvhwwwxwwwvuvhwwwwxWuvwwwwxxhwwwwvwwvwwvwwxvwuwwwvwvwxwwgfwwvvwwhwxxwvwvwvwwwwwwgxwwgxwwdfwwwwfwvwvwwwvwgxwwwvuwwwwwwwgwwwwwwwxwxxxwwwwwwwwwwwwwwvxwgwwwxxwwwwwwvwwxwgvwWxxwvvwxgwwwvvuwhwxWvvvwwwwvwxwxwwvwwxxvuwvwwwwwwvwwwwvwwxxxwwufxuwxwwwwxwwgwwwxwfwgwvwwwgwxwwwhfwwwwvwwwwvvvwgwwxwgwgvxxwxetfWwxwwxxwwwfwwvwvwwxfvggxwwwwvwxwvvvvwgwwwwggwvwgvgwwwggvxwwfghwwwwxWgxwwwvxxwxhxxfgwwwxwgwgvwvwwwwwwwxwwgvxwwxwwwxwwxxwxwwwwwgwwwwvwhwwhetfWxvxwgxxwwwxwgxwwwwwwxwxxwgwwwxwwxwwwhwgwwvxxwwxwwwwwwwvwgxwwwwxwvwxwxwvwvwxwxwwvhxxwxxwwwxxwxwxwgwxxxxxwxwwxgxgwwxxwwwxwgwxvwwdvvweewugwvvfvvuvvgvgvwvgfwfvegvvvVvgwwwvwvwfVvwefVgffwwwwfvvvfveffgeguvfwffewdeegvvfwWvgUgfVfvvvwgwwfwvggfVwggvwfwwgvWggvwwhfgvuwwewvwfgVfwfggwwwgwgugwgwvwwwgwvvxvwwwwxwwwwvwgvwwvwUvdwwwwggwegwgfgxwggwwggwvwWwWwwhvwgwwwwxwwwwWwgvwgxwvWwfgvwvfWfvvwwfgwwffgwvvwwwwgwvvvwfwgwvwWvwwgwwvvfwwgwgwwwwvvfwwwfwhgffvwwgxfwfhwvWggewwggwWwxwxwvwwfwvgwhwXxfwhvwhvwgggwwvvwfwvwwWwgfwhuwwgwwhwhgwWfwuxwwwxwvwwwvwwwgxwfwwwvwxwfggwwwwvXwwxgwwwwwgvwwwhwWxggwwwwwwwwhwwwwwxwgwwwfxwwwwgwvxvgwwWTwwWfwvwvwwfwgwwggvfgwwWvfwwewvwfgvvwgggvwgwfXwwwgwxwvgfuvwfgvvwwwwwwVvvvvfgGgwgwwgwgvvwgwghWwwvwxwwgvggWggwhwfggvwwgwvgfwugwgggwuwwgwhwWhgUgwvwwwwgwggwgvxgvggVgxxgxwvvvvwxwwwgwxwwwxwwwhwfxXWFxhwvxwwwwwgwwhgwxwxgwwwxwwwvgvwfvwwwfvwwfuwgwgwWwxwwegwvwxhfgwgvwwhgwxvwhvwvwxwwwwwgvwwxwwXwfwwwggxfwgwvhvguwWxwxwwxvwgwvwwWwgwgwgvwwfwxwwwgxxwwwwgwwwhwfwwvvwwwwwgvvwwwwxhxwwwxwxxxwwxwwwxwgxwxgwwwgxvgwwxwwwgvxvwxxwwvwwxxewfwwvwvwghvfwvgwwwvvvwwxvwvwwwewwwwgwuxvgvwwwwwvwvvvvwwvwwxwgvvgfwvwwvwwwwwhvwvvvwvwwxwwwwwfgvvfxvvwwwxwxwwffwwfewggwwwvwvwwwwxxvfgvwvwgwgwxfwvxvwxfwwwwwfgxwvvwwwwwwwggwwwxwwfwwvvvwwwxvxwwwwwwwwwxwxvwwvvwwwwwwwwwgvwgwgvwxxfwvwwgwxfwvwwwwwwhwxwwwwvxwvvvwhxwwxgwwfwwwwwwwwxxwevfwhwvfgwxvwwvwghwwxhwwxwgvgwwgxwxwxwgfwwwwwwwwwwxxffvwwwhwwhhwwxvwwwxwwgwwxwgwevfwwwvgxxxgfwwwxwwfwwghvwwwgwwwwxxgwfwwwwxwwwxwgvvgfwvwxwwgwwwwgvwwgwwxwxvgfwvwgwgxgvwxwwvwxxxwwvwfwwvvwxwwxwvwggwwvgwxwwxgvgwfwwwwwwwwwwxxwxwwwwwgwuggwgwwwwvxxwwwxxwwgggfwwwgxxwvfwwwxxwwwwwwwwwwwvxvxxwwwxgwwxffwwxwwwwwxwwxwwxwxwwwvvxwwvwxgvwvxvwwwxwxwxwxxxwwwgxwwxwwwwwxwgwhxvuwgwwwwxxxwwwwwxwwxxwxxwhvxwhwvxxgwwwxxfwwxwxxwxvwwxwwxxwwwxgxxvhwwwwgwwxgwwxwwxfwwwgwwwwvwwxgwwwwwwxxwvhwwxwwxwwwwwxwxxxxswvwffveuwvwfvvvwvwfwgvvwwwwevvwvfwvvffvdwffvwwgwdvexvxwffwfwfwfgvvufvfffvwfwgggvfvfvfvuwdfUvSevwVfffvfwgwuvvwvwugfgffwuwvwvhffwvwvgwvwxvvwwwxwxwvvvfvxvwwwwwwxvxwwwwfxvwTvSwgfwwwgfwvxguvwxxvvwfvfvvwgxwwwxggfvvgwggxvwwvfwvWewvwgwwwffwwwgwguwwwwgwguwvvvwvwfxxxvwuvfvwvwgwwvwwxwgvwgvgwwwwgwvfwwgwffwwwfwxwwwvwvwhxwwxgvgwgfffvwwwwwfgwwxuvwwwvuwuwgwxxwedxwvfwwxwwwwwwwwgvxvwvwwxwgvwgwwwgxwwwgvwvvwwwwwwxwfwxvvwwgfgwxvwvhvxxgwwxgxfwwwvvwvwfvvwguwwwwWwfwwfvgwgwvVvwxwwgwwVewfvvwvwvvxwgevxwwwvwgwwvwfwvvfwEvvwwgvggwwwWvfuvwwxgxgweuwxwwwuwwWwxwwwwwvwwwwhwwwxvwwgtWvxwhfwuwwwvxwxwxwgfuwgwwwgwgwwhffvxwwgwgxwffwxwefvwwfwwxvwxxxwwwgxvxxwvwvwwwwwgVVxxwwvgwxxxwxvgwwwgwfwxxxvxgvfwgwwwxwwwxwwvvgwvwvgxwwvwxwwgwwwwwwxwwwwwvgwfxvhfvfgwwxwwvfhhwxgxwwwwxxXwewwwhxvwwwwwwwxwvwwvhxwwxwwxwwxwwxxwxxxwwgvvgvfwwvwwxwxwxgwxwxxxwwwwwwxwwxwwwwxwfwwxxwxwxgxwxxtwwwevwwvwwgudfwwgvwffwuvfgwxwwfwfwvwvwvwfwvegUwgwwvwxxewgwgVuwwvfwvgfgWgvwdufgfgvwwgvgvwwvwwwxwfwvwuvfvGwvVgwvwvggvvgwvgVvwvgwfgxvgwgwwwwwxexwgwwgvwxxfvfwxhwxwwwxxfwwWvwgwwwwhwwgwgwfhgxgwvggUdwwhwhvxxwwwwxxwwwwwwxwwvgwvvwfwwvvxfvvxWvvwwwWwvwvwWvwwWfwwgxwwwwwxffxgwxwwwgwwwwvwwwwgvwwvwvwwvwgwWwfvwwWxvvgwwgwwgwwwwxgvXwwwhhvwfwxwvwgwxwfwwwfuwwgffwxvwwhvwwwgwwvvvwwhxwhxxxggwwwwgwwwxwxxwwwwxwwgvwxxhgwxxxvwvxwwxxwxxxgwwwxxwxwwwwhfwwwfwvwwfvwfwfwwGUwwwgwvvwwXwgegwWwwwvvxvwxfwvwwwwXvxwxwxwwgvUgvwwwwwwxwwvwfwfwvHwwwwhvvvwwvwgwXWwwxxwwxwxvwxwwxwwxhwvwvvwfxvwwggfvwxvxwwwggWeguhwwWwwwwwfwwvwXWfwwwwggwwvwggxwgwxxwwwwwghGVwwwwwxxwxxwwwwxxxxwhwwvwxgxfwvxufwwgwxvwwvgwvhwxwvwvwxwwwwwwxwwvwwgwwhhvwwxwhwxwxwhwwxwhwvhxvvgwhwhhwwhwxggxwfhwwhwwxwwgwXxvXwgwwwwwwxxxxhxxwwgxhgwgwwxxwwxxxwwxwxwgwwvwxvxxxwxxwwwvwwhwwwwwwwhxwxxxxwwwwwwxhwhdwgggvwggvgxwwgwwwxwwwxwfwwxwwhwgwwxwwwwwxwwfwwwwxxgfwxfwgwggwwvwgfwxgxxxxwwvwvxwwxwwxwxxwxwxvvvfvwfwfwwxgwvwwwwwxwgvwxhxwxxwwvxxggvfvwxwxuwwwgwwxwwxwwwxxxwwxxxxxxxxwgffwfgfwVgevgwvxgffwwxwwwwvxwwgggvgvwgvvwwgxgwwwgvwwvxxxwfffwwxhwwwwwgwfwwwwxxxhxhxvwwwxvxxhvwwxxxwwxxxwwhhxfgfvwvwwwxwgvxwwwwwwvxxwwwwuxwwxwgxxxfwhwxxxwxhvxxfwwxfwgwwgxwwwvxgvxwwvwvxxxxxxhwxxxwwxWvwwfgfwWUDvgWvgwwwvwwxwwwxxxxwgvwwwwwhxwfxxhxvgfwvwvvwvwgwwxwwxxwwwxwxvwxxxxxwxwwxxwvwwwvfvwwgwxwhuggvfxxxhwxxxwwxwxgxxwxxwxxfvvhgwfwwxvwwxxxxxwwxvxxxxwxxxhVUDvfffggWwgwxwxwwwwwhwxwwxwxwwxwwwwwwfxwxxxwxxxxxxxxfgfwfwfwwgxwxwxwwxxwwwwxxwxwhxxxxwxxxffwvwguwxwxwfwhwwxwwxxwxxwhwwxwgwxxgxhwwxxgxxxxwwwxwxwxwxxxghxewgwwwvwgwwgvvfvwwwwvxwgwwwgwwwwxwwwuvvwvwvwxvvvxfgwwwgfggvfvwwwwvxvvwxwwwxwvvvwwgwxxwwxxwxxxxvwwwgufwwvwvxwvvwwwwxxwwwvwwxwwxxwxwwwwvwfwvwwvwwxwwxwwwwwxxwwwwxhxwxxwwxfgwwwwvegvwvwwwwVvwwwwxgvwfvxwgwxwwwwvvxvwfvwwxvvxxhwgwgwwwwUfvwWfwwvwwwxxwwwgxxwwgvvxxvxwxwvxwxwwxxwwhwxxwvwvwwvwvgvwwvwwwwwwxfwgwwxvxvwwwwwxxwxvxfvuwwwxwwgwgwwwxwwxwfwwxwxvwwxxwxxvxwwwxwvwwwugwwwwwvgffvvwvwwwwgwwgwwwwxgwwwwwwwwxgwwxxxxxxwxwwvwggvvwwwwvgvgwwxwxwwwwwxwwxxxwwwxxxxxxwxwwufwwffwwwwvwwwwxxwwxxwxwwwwfwwhxxgwwwxxxwwvwwwvwvwwwwwxwwxhgwwwxwxhwwxxfhxvfvgwgwgggvxxgwguxfXfwwwxwxwgxxwwxwwwxxwwxwghwwxxwxVgvhwwwwvxxwXvwxwhhhxgxwxxxwhwxxxxxxxwwxxxhwwwxwwwvxwfvwxwguxWxwwwwxhxxxxxxxwxxwhvxwwvwxxwwwxwhwhvxxgwwxwxxvwtgggwgwwvwgwwwwggghwggwfwgwwwxvxwwxwgwxwxwwggxwgxxgggwwggVwgwgxvxgggwwwxxgwfwxxxwgfgwwxgxxvhvxhxxxxxxxxfgwwgwvwfvwwwvfwgvgxwwxwgwwxyxwxhxwwffggxvvfvxwwwwwxxxwuxvwgwwwxwxhxwwxxhwxxwgwfggwwgggvgwvxgWVgwwwWvvwxwgxwggwwxxwwxxggggxxxgwxhxxwfgVxwxwgxgxwxwxgwwwxwwxxggxxxxgwwhxhhxwxxxwXxhXxxhwghxfggwwwwwvuwwwgvwhwwhvhwwxwxxwwxxvwwxhxhxxxhgwwgwwwxwxwxxvxxgggxwhhxwxxwhwwxwxwwwxhxxxgwwgwVfwggwwgUEwwxWfgwxwwvwwwxxwxxxgVVgwwxwwfgwxxhgwxwwwxxwxwvxxwxgxwxxgxxxhvgggwwwvwwwhgwwxwwgvwxwgxvxwxxxxxhxxxxxgwvxwwhwwwwxwxwwwxwhxxwxwxxxxxxwwwwxwxwxfUEgvwwwxwxwxWfgwwwgxgwhwhwwxgwxwvxxwxhhxwxwxgwgwwxvxwwwxwwgggxwxxxxwwxxxxxxxxxhwhgwwvwwwhvfvxwwwwgwhwxwwwxwwwwxgxwhxwxxwxwXxxwwwxwwxwxwwxxwwxxwxwxxxxxuUvwgfwwvuvwvWwfwwgwwwVvwgwvwevwggvwvxwwwwxwgvwVwwxgwwxwxfvgvveewgffwWggvfvwwxfvwvwwfffwegvwgwvvwwgxvwwgwvxxxxgvvwufwfvwwxvegvgvwhgwwwuvvvwwxwwxwxwvwwxwfwvxxwgvfvwevvwewwwwwfvwfwwvwvvwxwuvwgvwgxwwwwwwxwwwggxwwffwvfVeguUgwfWvwfEfvwfgwggwfgxwvfefwvWgwgwfwwwVggvWwwgfwwwwwwxwwwxvwgweufwVgwwwwwwxxwwWwguwwxgTvgxGvxvvwxgggwfgvfwwhgxggwwgwfdwwvFwvvvgfVwufwgwwvwuwwvfxwwvwvwvvvwwvxefwwWwwwwwxwwgwfvhhvfvwwwwvwwxwwwwxwvwwwxwgwwvgwwwwxwgvWgfVewffwwwvwwwVvvVvvggwwwwwXvwvwvvwwwvwwvgvwxgwgxgwwgwvfgwfffgfvwgwxwwvwhwgvxwxxggwvwwwwhwxwwwxwxxxwxwxxxxfgwvvwggfuwvwwwvvwgwXvwVwgxefwuvwvgWwwwwwvwvwWxvwwfxfwwwgwwvwvgwwggwwwwxxvwwvfxfwvvwvxgwgvwxwwxgwwwxgxwwhwgxwgTfwvFwfWvvgwxwxfVgeWwvVwwwxwwhfVwfwwwwxvxwgwwgxwxwvXwvwwwwwhTevvGvwVwwwgwwwwWwvewhvwwggxwwwwvwxwwXwhgwwgwwwwxwxwwxwxxgxvvwwwvgvwwwgwvfwggxfxxfhwxwwwwwwgwwwwwxxhwwxxvwvgwwgwgwwggwwwxwxgxwwwwwwwwxvvwxwwwxwwwfwwwxvgwwgwwggwgwgwvgfwgwxwfgwvfwwVvwuvwwwvvwvfgwgxvwwwgfwwvgwwwwwwwvgwgwxwwwxvgwgwwwuwvgfgwwgwwxxxfvwwuvwggvwffwwvvwwvwxwwwwxwwgwxwxwxvwwgwwwvxvwwwwwwWgwwgggwwuwgfvhvwxxvwwwwvwwgwxwwwggggfxvgwwwwweVffwwxwwwgvxxwwffvfgvwwwgvxxfvffwwvgfwwwxwxwwxwwwwwwwxxxwVegvxhxhwwwwxwwfwwwwxfhxvwwwgwwgvWvwWfwgxxxvffwfvxwwwxfvwWxwvwvwxvxvwvwxhwwwggvwwgwwgxwugfewwvwwxwwxvgfgVwgexvxwxxxwwwwvhvxwwugfwwxxwwgwxfvgfwfwxwwgvfweVgwwwwgwwvwwxwwwfvwfwxwxwwggwwwwwxvhwvvfwgwwwwwxwgwxgwvwwwwxwfwxvwwwxvwwxxhwxxwwwwwwvfxvvwwwwwwwewvwwwxwxgxhvxwgwxghvxwwwfevwgwxvxwwfwgvvwwwvxwxwxvwwwwwwgvwwuwwwwgeVgvgwwgvwwxxxfvVexgwwwwwwwgggvvfvxwvwghXggwvwhwhwxwwxxwgwggvwwgxwwwwwhxgwgvgxxwxxhwxwwfxwxgwwgwxwhwwwwwxwWvxwwwxwxhwxwgfvwxwwwwxfwwvwvwwgwxgwggxxWwwwvxxxwwwxvxxgfwwwwguwwwwwxvwwwvwwvwwwwgvgwwgwvwVvxugwgfvgwggxvWvwfvwwgwxWfxwxwgwfwwwggwwwwxvfvwxgfwugwwgvwxwgwgvwgwvgwfxvwhwwwwvwfvgvwwwxggxxwxvxwwxwgwgwwxwfwggfvgwwxfvwggwxvxwwwwwxwwwwxvxxwhgWwxfwvvhgwhwgwhwgxwxhwwwwwvgwwwxwveewwgwxxwvwwwwwfffhgfwwgfgvwwwvVwgWvvggfggfgvfwwgfvwggwfxwgvgVvggwwgwgxxwwwwxgxwgwxgfvgfwhgWfwwvXwxwgVWggexwwgwgwwwgvxvxVwxgwxwhgWhwxwxxwgwwvfwgwwwxwwffvWwgwwvwwwhvwhwwxwxxvvxfwwwxxwwwxwwxuwggxwgwwxwwgwgwfwwgXwfgfxwxhwwxwwwwwwwxxwfvwwwwxgfeuwvvWwvffxwwwwfwwvWvwggwxwgghxwvvwxwgvwgwhxwwgwxwgxwwxxwvwwgwwxwwwggwwwwxxgxwwvwwxwvwxwwwwvfxxxxxwwfxwwxfwwxxwwwwwwxwwwwxwwuwwwvwxvvwvwwvxxwwxwxwvwwvwxwwwuuwwwwwwwwwuwwwwxwwvvwxxwxxwxwxwwvwwffgfgvhgxwxgvwggggWgwWwhwwgvwwwwwxwwwwwxgxwwwgwwwhhwwfwxvwwwxwxxxwwvwwWwwfggwghfgvwxxwvwxxwwwwxxwhwwxwwxwxvhwhgvxwhwxvwwwxwxwvgwvggxvwwvhvwwwwxwxwgvwwvwxvwwwwgxxwxwwvxwwwfwvwuxwwwwwgxvwwydgfwgwvwwwwxwfggvfgvwwxwfxgwwgwgggwvxwvwxwwgfvvwwfewwggwvxgvwwwwwwvxxgxxvvggwuxgwxwwgwvxwxwxxefvvwwwggwwVuvwwwwvwxwxfggwwwwwwwwwwxxwxxxfvuwfwfwwvvwxwfwxwwwvwwwxwvwwfxwwwwxwwexwwxwwwwxwxxVwewwggwVfgwgxgWgwwwwvwxxwwfVfvwwfwWwwvwhwVvvghwxxwwgxxxwegewvvwwghwwxwwxwxgwwxxxgwxxxwggwwwwxgXxxgwwggwwWxwwhxxxxegfvwvwwwwwwwwwfvgwwwxuwwwxwxvwgwgvwxxvWwxxwwxwxvwvwvxvgwwwwvggwxhxxwwwwwwwwgwgwxwwwwwxwxxffvwwggggvwuwvfvVgwwwvwwgEEwwwwwwhxwggvvwghxxwfffgwwxvwgvgfwwxwwgwxwwxwwwvwwxxxwhwxwwxxxwxefvwwwugwwwxwwguwfxwxwxwWwxhxwwwwwwxwwxxwwXvwxxwxwgvwwwxgxwgxxwvhgwxxxvxxvwxgwwwhwwwxxxxxgxxxxxxeEEvgvvwgwfwwxwffvwwxwxgxwwxxxggwfwwxwwgwxwxwwwwxwxxgwwwVwvwxgwxxxwwfxwwxxxwwxxxxxwwghxxxhxwggwxxxxxxxxxggvuvwwxwwxvxwvWvgxwwwxwxxwwxwxwhwwxxxxxwxwxwxxwwvwwxxfwwwwxwwwxxxxwwxxxwxxugwgwxWwwvgvVgvhvggfEevgvvwfwxwvgwwwwvwvxggfwVwwxwvvxwgwwWvwugfgfwVwvwfffwgvgVfvgwwgwfgfwgwvgvvwxvxGvuhxwwwvwwhxwxfwuvVuvwfwvwwvggwVwfvwxwwwxwxwwwgwvxvxwwxwwgwxwwvwvgfwvwwfgxwhwfvwwwwwgvwwvwvgvgwwwwgxwxvwwwwwwgwgwwwxwxxgvvxwwggUfvgwggfegffggf5fdWwWvgvwgfwvvggwgwgWvvhggwWffgwwwgXvwwgwvxgvfgvgwhfgefghhXvWfgwggggwvhfwwWwwwWxxwwgfgwXwfgWggwxwvfwvwwxWffXvxwfevgwgwgwgxxwggwwhwwxxwwwwfwvwfvwxvwvxwwgwuwwvgvwwwwxwwvgwgvgvgvxwxvvwwhvxwfvxuwvwwwxwwvwwwwxgwwggfwvgfwgwv6dvVwvggvwwghgwvwwwwwWwfwwvwxwwwwwwwxwxwvWvwgvwwvwvvwxvgvvwwwxhwggwvvwvwxwxwxwghwwxggwxwwxwxwhwwwfgfuxwwwgwxwxgvvwwfwwgwgwwgxwwwwwwwxwwwwwgwuwwwwxgwwwwwfwvxuxwwwwvxwvfgwwgwwwwfxvwwwwxwwvvvwwwwxwxwwvwgvwxggfvgvgwevVgwgxgEfugwWvggfgVwxwhggwxwwxghxwwwwwwwhwwwwwwwxwVgvwwhxvhwxgxwxvWvwwhgxwgxwxxxxwwwxxxhxxhwwxwwwwwwgvuvwwwgxgwwwwugwvwghWwwwvxwwwwvxwwxwwxwwwwvwhwfwxwxvvwwwWgwhuxwwwwxwvwwvwwwwxwwwwwwwfwxuwgwgwgvvwwgxgvwfxwwgwwvwgfvgwxwwwwwwwwgwxwwfwwhwgwwxwwxwwxWwvvgffwvgwggwwxggwwhwfFwxwwwxvxwwwwwxgxxwxwwwwwwwxWgvwwwvgwevvxwwwwwwxwxwwwxwxwwxwwgWgvfwwewxgwgxvxgwgwwhwxxxxvwvwxwgwgwggvgfFwwwwxgWvwwwgwwgwwwxfwgggwwwwwfvvwwwwxghxwxxvwwxxxgwwghwvwxgxvwwgwhwxhgvxgwhwxvxxwhvxxxxwwxhxxxwwwxwxwwwgwwgwxxxgwvxhwwgvhwxwxfwvxwwwxwwhgwxxwwwwwxwwxxwxwxwxgwxhgfwwwxxxxwwwxwwxwvwxwwwxxwgvwwvvvwwgwwgggFVufwxvxxhgwwhxwwxggvgxwxxxxwxxwwwvwxgwwxxFWuvhxwwwxwxxwxxxwxxxxhxwwwwwvWwgxwwwxwwwgwwWvggxwwxxxxxwwxwwhxxxxxxxwwgwwwwxxxwwwxxwwxvwvxxxwxxxxwwwggwghwgwwwwgxwxgWfwhghwwwhxxwwwwxxxxwwxxvwxwxxxxxwxwxxwgwxhwxxwxwwXwwxxxwhwwwxxwxxxxwxwxxxxxwxwgwwvhxxwwwhwgwwxwwwwwxxxwxxxwxxxxwxwxxwwwwxxwwxwwwwxxwxwwufwvwwwfvvfgwwwwwwwvwwfwwwwwxgfvwgwwxwvvwvvxvwxvwxwwwwwwvxggwgwwwwwxwxgwwxwwvfwxgvxwwwxvxxwwvfvvwwwwxxvvfwwwwwwwfvwwwwwxwwwgwwfvvvvwxwwwwvwxxvxwwwxwwwxwxxwhxwxwwwwwgwwwvfvwfggVwwwwgwwwwwwWvwwwwwwwgwgwwwgxwxugxwwwxwwwxwwwwfvvwgwgwxwwgwvxwwxxhwwgggwwxhwwwhwwxwwxwwwxwwxxxxfwewggwwxxwxwuvwwwwwfxwwwwuwwwwxxuwwxwxwvfwxfvvwwwwgwxvfwgwwwwgxvwwwwfwxwxwwwwwwwxxfvxfwwwvfvwwvwgwwwvvwxwwgvwwxgwxwwgwwwwwxwwwxwxxwfggwwWwwwwwwxhwwwxwxxwwwwxxxwgvwgwxuwwwwwwwvwwwxxxwwwvvxxwwxxvxwwwwxxwuvgwvwwxwwwwwwwwwwgvxvxxxwwxwwxwwwxvfvwfggfVwwvwwwwwwxwgwxwxwxwwwwwwwwwvxwhwwxxwwxwgxvwwxgwvwwwvwwwxgwwxwxwxxwxwxwxxwxwxhwxwxxxwxwxxwxxwwgvwwwwfwwvxwxwxwwwvwgxxwwwwfxwwwxvwwxxwxxwwwwvxxwxwwwwwwxxwxxgvvvwxxeFefuvwVfvxgfvwfvwgwgwxfgwwwxfvwvgwwwfgVwwwwxhgwxfvfwfuUfvffvuxvffwgwwgwwwwwwwvfvwfgvwvvwwwfwxgwwxvxxxwwwVgutwuwfvwvwwwuffwgwfwwwwxfvwwwvwvwhvwwwgvwwwwwfwfgdvgfvvwwwwwwuuvwwgvwgwwwwwvvgvwwwwwhwgwwwvwwwvwfVffwvffvfVvwfgvfffWgvwwwffvgvvweVfvefwgfvwwgwhwfVwwgfwfwhvgwwwfvxevwggghVwwvevwggwfggXvgxXXvgwwgggvgwwhxvwghWwhfwhhfgwwWxgweevfvwweVwvwwwwuvvwwwvwfwwvwxfUgfehvuwfxhgwwwuwwwwwxwfgwfvvwgwwwvwgvfwwgwwwfwwxvwvvfxvwwghxvhwvwwwwwwwhufwfvgwfgvwfgffuwwvffwwwwxgwwwwwwxfgvwwvwgwwgwghfwwwxwxwgvgxwwwgWwWvuvfvvxvwwgWwfwwhwwvwxwwwwwwwwwwwwxwwxxvwxxxwwxgxvgvwgwtwwwwXvwvgWvewwvvgvwwvwwggwwwwggwhwvwwwgwwwhwvxxvgwevwwwvwxvwwuvgwvwvgvvxWwwvwwwxwghwxwwhwxwwgwvwxwhxwxwwfewvVvuwuVgvwwwhGgvgvwwwwwgwwghfUwvgwwfwwghwhwwwwwwwxwwwgwxxevwvwvwVwgfwgvggxwghwfwwxxhwWwwfgwwxwxgwxwggwxwwxxwxwxwfugvwwwwvwgwxxwffgvhwwwgwwwxxwwwwxwwxxxgwwhwwwxwwwwxxuwgwvwfxwxwwwwgwvwvgxwfwwwwwvxxxxwxxwwwwxwwwwwxuwwgfgwwwwwwwxhwxwwwggvwwxgwwxwwwwxwwwxwgwvwhgwxxwwwwxggVwwgwgxvGxwwwwwwgwwwwwwxwxwxxwwwxwxwxxwwwvwwxwwxevgwwxvvwxxwwwfwvwwwwwxhxwxwxwxggwvuxvwgwhxvxxxwvwxgwvwhwxxwwwxxxxxwxxggwwgfGvggvgwfxggVwwfgwwwxxwggwwggxxwxffwwhwgwxwxxwxxxwxxwgwgwxhwwgwghwxwwghwwwxxxxwgwxxwwxwwwvxxxhhxwxxhxwwxgwfwfvvxvxwgwwwwxwxgvgwxwhxwxwxxwwwxxxxxwxxhwxwhwxxhwwwwxwhgxwxvwvxwxwxxgxxxxxxwwwxwwgwwxgVfufwwgwxwwwwgwwgxxxwvwgvvxxwxwwhhxxxwwwxxwxVfevwwgghgxxwwxxhxxwwvxwxxxxwxwxxwwwxwwwxgvwvxwxwwwhwxwwxxwwgwwwxwxgwwxxwxwxwwxwxhxwwwxxxwwxxwwxxxwxwwxxxwxfggvwwwggwgwwwgwwxhwxwvggxhhxxwwwghwxwwxwxwxxxxwxwxxxxwwwwhwgxwwxvgxxxhhwxxxxxxwxxxwxwxfwvhxwwwxwwwvwxwxwwxxxxwwxwxxvxhxwgxxwxwxwwwwxwwxxxxwwxxwefwfvwvgwxvggwvwwwxwwggwwgvwwvgvwwwwvwVwwwwwwvuwwwvvwwgvwwwwvxwwvwxwwvwxfgwfvwwvwxwwwwwwwwxwwffwwgwvvwwwwVfwwvwwxxxvvffwxvgwxvwgvwwhgxwxgvgvwfwwwwwwgwwwwwwwwxxffvwvwwhwwhvwwwxwwwxwwwxvwwgvvgvfvwwgwwwwgwwwwvwvvxwwhvgwvfvggwwxwwwwxgvwwfgvwwxwwwxwwgwxvwwfgwwwwwxvwgwwwwxwwxxwVfvwwwggghwhwhgwfxwhwvwwxwfwwwwwwwvwxxwwwfwxwvwgvgwwwxwfwwgwwwwwvwwxvgxwwwwwwvwxVfvwwwwxxwwvwgwgxwwfxgfgwwwgfwwwwxxvwxwxwwwhwwwxwvvvvwvwxwwwwfgwwgwwvvwwxwxvfvwwvwvgxgxggwwhwxwwxwwgwwgwwwwvwxwgxgwxxwwwvwwwwwwwxxwxwxvxxxwwwwvxvgwxwxxvuwvxwwwwwxwwvvfgwwwwxxxwwwwxgwwwvfxwfwwwwwxwwxvwxwxwvwvhwwwvwwxwxwfwwgwxwwxwvfwggwvwwxwwxwwvwgwgwgxwxhxwvgwgfwxwwwwxxwwwwwwxxxwxwxgwuvwwwwhxxxwwwwwwxwwxhwgxxwgwxxxwwhgwxxhwwwwxvwvwwxwgwxwfxfwwwwwwwwwxxxwvgwwxwwxwwxgwwwwwwwxxxwvwwxwvwvwwwxwxwwwwwxxxwxxwxsgwwgvvwVuwwgvvffgvfwvfwwwwwVvvhfgfvfgFevwfgwwgwwfdvwvwgfwwffwvvwvwuwvVuwwgwwwwxwvwwgwWvWfvgfwgwxwgwvxvgwwxgwgwwffwvwvvfgvugwwgwfvwwwwwxwwwwfvwwgvgwgxvwwwwwxwwwvVdvwwwwWuwwwfgwxwxwwwwwwxvwvgwwvwxwgvxvwwwwwxvwgvwffwffffgvvgggffwwgfwwgfugffgvfWgwffvw5vewvgwwFUfggWwvVfhfWfgvwgvwgwwwwwwwfwwwvgvffxwggwfwwwgvwwfgfwxgvgfwgwhwwwwwwxgwfxxWvfgwfvwxvfwxwxESvwxWvvwwxgxvxxgwxgfvvvwxvgffgvggvwwwwvwwgvwwgvwwxvxwgwwwwgwfxwxfxxwvgxfwwwxxwvvxwvgxwvxwfvvwgfgwwwewvwWvwwwggufwwwvwwwVewVvwwvgvxwgfvvxwwwvwgwwvwvvfvwfwxwwwgwwgwwwxgxwwxwgvxwwwwxggwwwgwxvvwwwwwgxxvwwfuwwxvxwxvtuwgwwhwwxvfuwvwwgvwwhfwfgwwwvgwwfhfwxwwvwwwwxwxxxxwwwwxxxwxxfwwxgwgxxwxxvwwvvxvhvfwwvwwwTvvwvwwxgfvwWfguwgvgvgxwVuwwwwwuwwWwwhwxwwwgwwwwwxxwxwwwxfwvwwfxxfhhwwgwgwwggfhgxvwwwwxgwwwxwwwwwwXVwwwhxgVvfwwwgwxxwfwwvvxxxwwvwvwwxwVgewxwwwwvvxhwwwwwwxxwwgxwwwwxxwwwwwvfwwxwwwwxxtwwwFwfhgwxfwfVwvwwgvwwWvWfvvwwxwfgwwwgvwwgffwVUgwgvwwwxxgwggWggwwggxgvwwvfwwwWwwfvvWgxwwfuwffwwxxwwwggxwxwwwxwgwggwggvgwwwxvevvgwwvfwxwwxxewffvxvvwwvwwxwxhwxxwxwwwfwffuvwwwfwwwvwwhwxwgvwwggvxwhxwhhwwwwgxvxwwvwVgwwWgvwwfgwfvgxgWewFfuvgfgvwhwgvgvwWfvgwwxxggwwwwvwGgwVfgwwggggwwwgwwgxgwgwgfwgwwwwwvWwgwwwxWggwgwXwwwwwwwwfgwwgxhhgwgxgwwggfwwwgwwvwwxgvuvwgfwhwwxhwgvvUdwwwwwwgwwwwxhwxwxxwwwwwxwgvwwwxxwwhxvwwxxvgwxwwwxxwxxvxwxxwxwwwwxwfwwwwUtwwgfwgvxfgwwwgwwffwwwhwXwVvfvwwwvwgvwxvWwwwwwXxwgxwwxxfgwxgwwgwwgwwvWfwggwhxxxwwvwwwgxwwxwvwxwwwwwxwhhgwwxhwvgwvfgfvxhwwwggwxwgxwwxgxWgVvuwgwwwwxwwwwwwwWxWXfwwfgwvwwwwwgxhvwwxxghwxxwwxxwxhwvwwwgwwgwgvgfwwwwwwwwxwUvgwfgwHwwwwvhggwwgwwxWwxwwxwwwvXgxwwwxxwxhwwwxxvwvhwhwwhxhwwxwhhwgxhgwvgxxxwwxXgwwhwwxwfwhxXvwxwwgwwggwxwwwgwwwgwgGhewxwwwwxwxxwwwwwxxxwhwwvxxvxwhwwxxxhwwxxwwwwwwwwvwxxhwxwwxwxwwwxxuwwVvvwgwwxvfuwvxwfvwfwwgvxgwvwTUwwvgwvgwwggwggwwwxwwgwxwvuwwvFvegwvgwwvgfwwghgxxwwwWgfwgwwfvvggvxwxwwwxwhVvvwffvwgxwwwwxgVefwvwghwwwxxvgvwwvfwgwwxxwwwwfwwwgwxvxwhwwwfvfvvfwfwgxwwxwwwxvwwgwwxwwwwwvxuwwfvwwhhwgwwxwxgwwwgxgvvggWvwffvwufgwVwfhgfwwgwwwVvwwwfggvdU6vdVgwggwwwwgwgggfvfwwgxhwghwgwxWwvwwuhwVUvhwfwwxwWwxggxhhfgwwWvfvgwwvXhggvwggxxwxgwxxxxxvfgwVfvwgwwxwwwwwwwwwwggxhxgwwgWvfWxvxhwwwwguwwvwggWhxxvxwVvgvwvvwxxwwxgwwwgvwfwxwwwxwwvwvxwvwwwwwxwgggvgvwwwwwwwFcwvwwgwwxwxvgwvhgxwwhwgvvwgxxgwuxxgwwxwxwwxxxxxvhvfwfwvwwwwvgvgwxwxhxwgwwwwgwwhwwwwwwvvwwxfvugwwwxhwvwwvwvwwhwwvwwwhfwwwwwhwxxwxxwxwgwgxexhwvwvuvwuvwhwgwvwxwwxfxwwwvgvvxxwwwxwfwwwwwwxwwwxwxwvfeFuuggwwxxgwwxwffwvwwhgwwevfgwwwWxxghwwwhxgxxwxhxwwgwffvfewwwhhwgwxwxxxwwwxxwwhwxxxgxxxwxwwxxxwxxxwfvwhvwgwxxxwxvxuxgwwggghwwxwwxxwwwwwwwwxxxgxwxvwwwwvwwfgfwxwwxgxvWvxwgvvwgwwxwwxwwwwxxwwwgwwxtwwfwwwUvhvwwWwgffxegggwwgGwvwuewfvfeevvfvwwwvgVfuwvwwVwgwvedxfgfgvuwvVVwxwwWwvwvgwwwevwfwwwfgvwgxwfwwgggxwwwwVwwdwvwfxgwwwvwwfvuwwwxwxuvevuwwfxvwwwwwgxwwwvfvvwwxvwvxeuwgWwvwwxvwwuwwxvxvxvwxwwwwvwwwfwuxfwwwfgwfgvwVfevgUVvgwwWevwWfvwvfvfvvwFvtwWwwfffWwVgfwfxwxgWfgwgfvwxwwwwxhwwwwwxwvwwvwfgwvgvgwgXwwgvugXhfwwwwwhwwwgwxgfwuwTdugwwwvwuvfhfuwgfwwgwwvvvwwxvwwwhxwxxxwwxxwfwvwggvgvwxhhwgwhhwvwwvwwwwxwwwxwvxwwwwxwwwxuwwVwwvgufVuxVuvwwUhwwwWfvvxwvvwgwvvffgwgwxhvvwwwgvwfxwgxwxvvvggwgfwxWwgwwwwwwwgwwwwwwwgwvwxwhvwghxhgxxxxwhwxwxwxeevuvwwgwwuvwxwwwgwxwgwxwwwgwwvhfwwfgfwxhwwwggfxxwgvwwwxwxwgwxxwxvwwewxxxwgfwvwxwwwwwfffVggvVuvwgxgffgwGwwvfwxwwggweuvxvhvwwXxxhwwwwgxwwwgwwwxwwxgwwxwvvxwwHgvwvwwhwwwwxggwxwwxwgWwxgwhwwwgwxxwxwwxwfwvxwwxwxwxhwwwwxwvwwwwwwwxhxwwWgehxvxxwxwxwwwwwwwxwwxhwwwwwwwwvuwwwwwwwhwwwwvwwvwfwwgwfwvxwxxxvwwhxfwwwwwwxvfwvwwwgfwxxgvxxvwwfxvwwfwfwgwwxxwwxvwvwwwwwxwwxwwgwxwxwxgwvwwwfwvwwgxwvwwwwwwxwvvxwxvwvwwwwxxvwffwxxwxxwxwgwfwfvxhwvvwxvxwxxxwvwfvvwwxwvxvxwhwwwwwwwgwwwvwwfwvxwgwwwwvvwxvWggwgggvwxwxwxvgwwwgwwfwvxwwwggwwxxwxwxvggxwwxxxwwxwwxvxwxgwggwwxwgwwwhgwgwwxwxxwggxxfxwghwxhxxvxvwxwwvwwxwwxwvxxwgvwxwgwwwhxwwgwvgwvhwgwxhvxwwwxwwgwwwwwvwwvhxvwvwvxwxvwfvwxwxwhgwwgwvxfvwxwxwvwwhwvwfgwxvvvwwxvvvfwwwwwvwvwvwwxvgwwgwwxgwvhwxwxwgvwwxvgwxwwwwghwxwxxwwwgxwwwwxwwxwwwvxwgwwwxxwgwvwwwxxwwwwwwwxwwvfwwwxwxxvxwhfwvxwgwxhwhwvvgwxxwwxwwwgxghxxwwvvvwwwwgvwwwwwwwgxxfvxwfwwwwwwwxwwhwwwwwgfwwxwxffwxwwwwggwwxwghwwwxgwxvghwxwwwwgxgwhxxxxxxxwwxwwwxxwxxwgwwxxwxwxhxwwgwvvwxxxwwhxxwwwxxxwxxwgvxgwxxwwxvgxvxvwwwwwwxvwwwgwvvwwwxwxxwxwxvwwwwxvwwgxwwxwwvwwvvvxwwwwwsgggvvVwwggwvWwwvwwxwwvWwwwgvwfvvfwwwwwwwwwwwwfwgwwwVwvvVxwwvgwgwwxhwvwxgfwwvffugwwxwxwwxxxxwxxwxxfgfwVvWwfwwwwvwgwwwvwfvwvwxwxvwwxwgwffwgwvwwxwwwwvwwwwxwwgguwwdwwfxwwwxxwwwwwwfwVwfgVwwvWwwwwwgggwgwgvwwgwwgwffwgwuwgwwxwxgvegxvWxwxwxxxfwfwgxfvwwwwxwgwwwwxwwwwxggwwgwxvWxwwwwgwwwwwwxxxxwxxVvWwwwvwwwwfvvvWwwxxwwxwgvwxvggwwdwgfwxwxxwwwxwvWwwwwvwwwxhwwwwwxxvwwwwwwvwxwghwxwgwvfgT5wvwgfwxwffwwwwxvwxxxwwfwfgvgwwwwwxwwwxxwxvffwgwvggwwwxwxxwwwwwwwwwwwxwvwxwwwxwwwwvgfwgwwwwwvxwwhgwwwwwwwgvwwwgvghxxwwwhxhxxxwwwxWwwwwxwgwxwwwwwwwvwvwwwwwwwhxxxhwhwxwxxxwxfT5wggvgfwwxwwgwwxxvWxvxxxwwwwwwwwwwwhwwghwgwgxxxxgwwgwvWwxwxwwxwwxxxwxxwhwwwwgwwxwxwwxwwwwxwwgwwvxwwwwxvwwwgxvwwwxgwfvgwwwwwhxfwwxwghxgwwwwvwxxwvwwxwwxxwgwwxxwxwwwvxwwWvwwgwvgvgfgvvxwxgwvwwwwxgwwvwwwvgvvvwwvgvgwfvwwgwxfvwvwfwwwgwwwvxwwxwwxxwwxfwwgwwvvxwwwgwwxgwwgvgwwvwxwgwvfwwwwgvfvvwvwwwgxwwxvxvwwvwwwwwwxwwxxwwwwxvgvvvhwvwgwgfwwxvwwvwgwwwxwwwxwwwxwvwvwwvwwwvwuwfgfvggvgwwwvggwgwVwggwwwxgwvwwvgwvfwwhwwwwggxvxgwfvwgwgwwxgwgwvWgwwgwwggxwwwxxgwxwxxxwgxwhwwgxwgwxwwxvvwwwwgwxgwgwgwvwwwgwvwvhwxvxwwxwgwvwwxwwhwvwwwxwwxxxxwwxwwxwwwgxvwwwxvxgwwxvwwwgfwwwfwwwgxwvwvfwvvxwxwwwgwvwwwvgvwwxfwwfwgwfwfwfwggvgwvwwgwwfwwvwxwwgwgvggwvwwwwwwgwwxwhwwwxwwwwvwwwwvvvwwwwwfxxwxxxwwvwxvwxwwwwwwwwwgxwwxxwxvgvwfwwvwwwwwffwwwvwwwwwwwwwwwxxwfwvwxwgxvxwwvwvwvvwfwxwvvgwvwvwwxgvxwwwvwvvxxwwxvwwwwggfvxvgfwwvwgwvwxxwwwwwxwwgggwwgxwwfvvwhwwgwwgwwwxgwgfwgggvvwgwfxwwxwxgwxwwhxwxwwwxxxgwwhwwwwxhwxwgwwwwwwwwwvwgfvvwwgwwwwxvvwwwwwwwxxwwwwwwwggwwwwxwwwxwwwvwwwxwvxgwwwwwvwwwwwwwwvvwwwwwwxwwwwfwvwwvwgvwwufwgwvxfwwxvUUggxvgxwwvwvwwwxwxgxwwwwwwwwxwgwwwgwxgvwwxxgvwwfwvwvVvuwwwwwwwwFdhwwwwvggwvxgwvxvwgxfgwwwwwxxwgvwwwwwwwfwwwwgwwwwwwwwxwwwgvvwgwgvxwwxwxwxhvxxhwwwwwwwvwwwwvxvwgwfgwwwxwxwwwxwwxwwwxxgwwxxwwwwxwxwfwvwgeewfvww6eSWfggwwvgfVvuwwwgwwwwwgwVWgwwwvgwwfgwwgwwxfwxhwwwgwxwwfggfgwvwwgfggwfggWwgfwxhwgwgwwwhvgvwxgwwwhwxhxgxwxgxwxwvgvVwUWfvwvxwwwvwwwhwwvwwvwxvxxwwxwxwwwhvwxxwwgvwwgwvwwwwwwwwvwvwxxwxxxwwwxvwvvxwxwwwvwvwwxxvWxwwggwwxwgvwwFTgvwvwwggwwgwvwwxwgvwwxwwwwwgwvwwwwwwxxxxxvxxwwwgwwvwwgwwwxgwfvvxxgwhvwwxwwwwxxxxwxxxhwxwxvxwwwwvxwwfxvwwwwwxwhwxgxxwwvwwwwwwwxwwwxXxuwxwwwwwwwxvwwvwwvgwxwwwgxwwwwgwxwwxvxxwwwwwwxwxwvgwvwUeegUuvwwwfgwwwxgwfhwxwwwwwwwwxwwxwgwwxxxxxxfxwxwwgvwwwgvxgvxxxwwwwxxwhwwwwxxxgvxwxxxxwwxxxxxwwxwhwvgwwwvwvwwwvvvwxwwwwwwhwwwvxxxwxhxxwwwxwhfwxvwwwwwwgxwwwvxxxwwxwwwvxhxwggwxwwxxwvuvfwvvwwwvwwwvwxvwvgwwgwwwwwguwwvggwwwwwwwgwwgvwwwgwxwwwxwwfvwfFwwwvvgwwwvwwwxxwhwwWgwvwwwwwhwwwwwwwwxwxxwwvxvfwwwwwwvvgwvvxwwhwwwuvuwwwwwgvuxwwwxxwwwwgwuvvghwxvwwgwuwwwwxxxwwgwvwWvxxwwwgwxxwwwxwwwwwvwvgvwgwgxwwwwVwwwwwgvwwxwxvfFwgwvwguwhwhgwwgvwgwvwwxwwxwxwwwwwgxwwwwwwxwwwxwxgxxwxxxwwwxgwgWvXwwgxwvwxwwwxgxwxxxwwwgwwwuwgwxwxwgwwwwgvwvxwvfwwgvgwwwwwwwvwxwgwwwxhvwwvxwxWfxwxwxxwxxWwwxwwxwwfvvwwhwvwwwwwgxwwwwxwwghwfgwvvwxwwwgwwhwwxwwvVftugxhwwxxvxxwxwxxwxwwwgVftuxwxxgwxxgwxhxxwwwxxwwvwxwxwwwwhwvvxxxwwwwxxxvxwfwvxWxhwwwvwvwwxxxvxxxwxwxxfvwwvwvwwxxwgwxwvwwxxwwwxxwxxxwwwxvwwffgvvwwwgxwwwvgxwwwxxxhwvvgvhwgwwwwwvvxwggwgxwggwgxxwwwxgwwvxwwwxwxxxwwxxxwhwxwhxwwxgwwwwwwwwhxwgxxgvwwwxvvwxxwwwwwwwwxwwxwxxwwxwwxwwxwvwwxwxwhwxxgvwxxxxwwwwwwwwxwwwxgvdggwWvvvvwgvfvwVweWvgvwvgfvfevvgvvxfgewwwwffwVvgVVfvgvwwwwwgwWfwvfwffuwvvwgwgvwffvgwvxwwwgwgguwvwvwxvwfwgfwwgwwvvxwvgwwgwwfevuwwvwwfgvffwvVvwwwwvguwvwvvwxwwvvwwvwwwvwwwwgwvvwffvwwwwwwvvwuwwgwxuwwgufuwwvwwwgwgwwwwxfwwwwwvwwvfgfvvgfVfwfVvggfvwfVgfFeevWfvwWvgUgefvVfwwwgwfwwgfvvgggvwfgwgggWvwwwgwwvwfwwhgwWgfvwxwffhfvfxggVwgwvvwvhwwvwvhwwwuxwxXfwfwwhwggvvwvvewvUdvwwgwvwwwfvgwwwgvwwvvvwwwwwwgwvgwWuwwwWwwvwwwvwwwwwvwwwxwvwgvvwwwhuwwwvwwwwwwwvwwwwwwwwwwgwhxfwwxwwvggwwwfwfuwvfvvwEuwvwwvgvwwwwWvwfwvwvvfggwwwgVvwwwhfXvvwgwwxgvgvfwuvxwwxxxwwvfwwwvWfwgwwwVvvwwgwfwvggvwxxgwgwwwwvwwwuwfuwvxwWvvwvwwvhwvvgghUvvwwvgwvhvxxvwwwggggevwvxgwvwwwvwvxxwwxwwwwhfxwwwwggwwwwvvwwwwhwwvwhwwgWfevvggwvwwvggfwvvvfGwwwwwgwwvvvwwgvgWwwvwwhfgvwhvgWvwwxxgvxwwwwwwgwwwwwggwgvwxgfxwXfhvguwxuxwwWvwvxwgwgwwwxxwvxwggwwfgwvwwfwwwwhgwwwgWXdwwxwxwwwwxwwgwwgwxvwwwwwwxxwvwwwxvgxwxwwwwgxvwwwwwxwwvvwwvxgwwxxtwwWwgwwwwvvgvwwxwwwwgfvvwwwgwwwwgfgwwfvxwUVwgwwxgwvwxwgvwwwgfvwfWWwvVwwwvwgxhfwvxgxwvgwf6uuXgvuxgxxFwvggwwgwxwwxwgwgwfwwggvwwwwfvvvwgwwvvhwxgwwwvwxfxwggwgxwwxgwwxxgwggWvwVwvvhfwgwxxgxwxxwwwwvvwgxwxxgvvhxwwwwwwwwwwvwwgwuwvwwvwggvgvwfUfvwwWWVwfVxgxgvffwGwvhwvfgwwxg%udGwghvgggwwfwhgwvwxwvWwwgwwwxgwfwWxxwGwWwwwxgfwfgwgfvwxggwgwwgWwvxhhwxvwwxgvwWggwwgwxvwxxFvfGxwhwvwwggwwwguvxwwxwgwxwwwgwwgwvwgvvhuwxggvxwxgwwwxwwgwwgfgwhwggwgwxtwgwwxwgwwwwgvwxwgvwwwwwuwwfvgwwwvfwgwwwvvxvVvwwffvvwvwwwgETwvwwfwvwwfgfxwgvxfxwwwwvggvewwgvwxgwvvwwwxxvWxxhwvfwvfwxwxwwxwxwxxxxvwwwwvgxwwvwwwvwwwvvwwxwgwwwgwtwwvgwwwwwhxwwggxwxxwxwwwxwwwwwxgxvxxvvwxgwgxvgvwxvwwxwwwxwwwgwwwfwwwwuwxwgfwvwwgwwTvfVxggWwxwwhwwUefwwwwgggwxxxxfwwgwwxvxwwvwfwgwwwghhwwxwwwWwgxwhwwxxwxwxvgfxxxwwvwwwwwwwwhwwvwwgxwwvwgxwxwxwvggwwwwhwwgwwwfvxwwxwwwxwgxxvgwwvwfwvuwxxwwxgvwxwuwvwwwhxxwgvwwxwwwwwfwwwwxgvwfwxwwwvfwvvxewfVvvvfwuvwgVwvvwwfxwgvwwxwfvwffevwwgwvggwgvwWwxwwewvgwwvwwwwwwwwwwwvxwwwwwwvvvwvwwwfvxvwxxwwwwwwwwxfwufgewewvvgwwwwwwwwfxxfgvuwfxfwxvxfwxwxuwwgwwwgvwwvvhfwwwwwwwxwwwwxwxwwgwuwwwwwwuwwvwxwxxwwxwfvvwwfwevvgwgfwvvWwfvvwwfwfwvwguvwwwvwfgVfwwfVfxwwwgwgwvgwgfwwhwwvhxwgwvwwwwwwwwwwwvgvxfxvwxwgVfwwgwvggwwwhwggwxxggxvwwgghxwvfgvfvfggwxwxwvuwvwwggwwxvwwgvvxfwwvwxwwwxwfxhwwggfwwfwwvwwwwvwwwwwxwffwgghhuwwwffUwwwhvwwvvxgwvfwwwwwhxxUwwfwvvgewwgwwwwvggwwxwwfwwxwwxgwvwwwwwvwwwxxwvvxgxwwxxwwvwwvwwwwwwwwxxxxwwwwwwxwwwwxwwwwwwwxwxxxwwwwxxwwgfxfwvwfwgwwgxwwxxwwwxwxwfvfwxwwvwwwwwwwwwvxwwwwgwwwgwgvwvwwwxwwwwgwwvvxxwwwwwfvvxwxwwxwwvwVfwgwfwwvvwxgvvwhwvfgwgwwwwWwwgwwhxhxwxvwgwvgggwwwwgwwwwxwwxwwwwwxwgwxwwxwhfwwwwwxxgxwwwgwgwwwwxxhgxwwwwgfwfgwwwwvxwwxvwwwwuwxwfwhvwwxwwwxwwwwgwwwgxwwwwwhwwvvwwwwwwgwxwfwwwwwwwwwwxwwvwwtvwgwvwwwwvwwxvvvfxwxvwwwwwwwfvwwvuvvxwxwvwvwwwxvwgxwxvwwwu6wgwwgvxwggvwwgwwxwwwvwfvfwvwvgwxwwwwwwxwgwxwxgwvwvvwwwwgwwwvwwwwxfwfwvvwvhfwwxwtvvwwxwwwwwxwwvWwwfwfwggWwvvwggwwwwxtvxuwwwwwwwvwvuwgvvfwwwxgwwfwvgwwVvgwwwwxwe6fwvwvgwwhwxwgvguwwwwwwwxxxfwfwwwwwwwwwwxxxwxvwxggwwxwxwwwvwwwhwvwwwwxwgwwwxwwwwwwxxxwwwwgwwwwvwwwwvwwWwvwwvwxwwVvwwwwwwwhxwgvvhvwwwwwfwwewwxvgvwwwwvxwwxwwvwxwwwwvgwxvgwwxwwwwxgwwxwwfwwvvfwxvxwwgvwwwwwWxgvwwXwffwxwwuwwxwwgVwwfwwvvxwxxUgefwwwxhgwwgfwwvwuwwxwwwwxgvwxwwvwwwUgefwWwwwgxwxwxwxhwwxwxgwxwwxfgwwxvwgwxwwwwwgwwwwvvwwwvfxxxuxwwwwxvxxfgwwwxwwxwvwwwwgwxwxxwgxwwwxhvxxwxwxwwvwWwwwvwwWwwgvvgwwwgvxxwwxxgwffwwxwwwxxwxwwgWwxwggwxwwxxwwwwwwwwgxwxxwwxwwxgwvwwxvgwwxxhwxxxwwwxxhxwwwwwwvxwwxxvwwwwxxgwxwwxvwgxhwwhfwwwxgxwxwvxwxwwwvvxwxwwwwwvxwvwwwvxwwwgwwxgwxwfWwgvhxwxvgggwwxwwxwwfwwwgwvwwwggxvwVhfwvxgxgwxwwVxvxggwvxvwgwgwwwggxwwwwwgfwgwgwfxvwxxWvvxwgwwwvwwxvwuwgxvxwwwwvwghwwfwwwwwwxwvwwxvwwwwxwxgwwxwxwxwwxfgwwgwgwwwwxvwwgwgwwwgxwwxvxxxxwwgxxxwxxxxxwwwwwvfwgfVwgwvhwgWwgwgwgwwwwwhwgwgggwwgwfwwwwgVwwxhxwwggxxxwxxwwwwgwwxwxwxhwwwxxxxwwwgwwwwgwwhxxgwxwwgfxwgwxwxghvxwxxxwxfwwxfwgwwxgwwxwxggvwwxuvgwxwxwxwxvwvxxwhxvwwxfwwxwxwwwwvwxwwgwhxwxwxwxxgvwxwwxwxwxwxwwffxwwfwwwggwfhwgggwvxVgwxwwggwwggvvwfwuxwwXgwgxwxghwxwgwWgfwgwfwxgwvxxwgwgxwxghwxwgggwxwxxwwhwwxwwwxwxwxxwgwxwwvgwxwwxxwwgwgxxghwwhwwwxwhxvxwxwwwwwhwxxxxxwwwwwxwxwxwwwxxxxwwxwxxxxwwwwhxxhxxwxxfwggvwgfhxwxgVwxwwhhgxwgwhwwggxwhxgwwwWxwwxgxxxxggwwwwwwxxwhxhwgxxhwxwxwghhggxxhgxxwwxwxxxxxwXwfxxxwxxwxxgwwgvxwgxwxxwwxgwwhhggvwwwvxwxwwwxxxwwxwxxxwwxvwxxxgxxxwxwwxxxxxxwwwxxxhwwwxxgwuwwhxwwwgwwxxwxxwwgwvxgwxwwwxxggwwvvwwxvxwwvwwwwxwxxwxxwwwVvuxwwwwwxxxggxfvvgwwggwwvxxfwwgwxxxwxgvxwxwxgxxxxfvweuvwwwwwxwxxwxwwwwxxxxxxxwxxwxwxwgvwgwWvwwwwvgxgwxxwxhwxwxxwwwxxxvffwggwwgwvxgxgwwwwvgwggwwwhwvvwwxwxvxxxwxxwxwvvfvwwwwVwuwvxgwwgwxwwxgxxxxwxxwxxxwfgwfwwwwxxwgvxgwvghwgwwwwwvxwvxxxxwwxwxwxwwgwwxwvvwgvgwwxxxwwvxxwwwxxwxxxwwfwvwgwwwwwhhwxwwxxwwwxxxwxwwwxxwxxwvvvfvgwwffwwwwvwvxxxxhxwhwwwwwxxwwxfvvvwfvfwwwwwxwwxxvxxhgxwwxxxwxxwxggfwxwwgwwwwxwxwvwhxxwhvhwxhfxwxxxxxxxxxxwxwfwwwxwhvgghgxxwxwxwxxwwxxxxwxwxxwxwwxvfgfwwxwwxxxwgwwhxxwwxwxwxxwxxxwwxxwggwhwxxwxwgwwwxxwwxwxegwxwwwwwwxgvwwwwwwwwwwwwwwxxvwhxwxWvvgvwvfvvvguwwwwwxgwgxwwvwfwwwxxgwwxgxxwxxxwgvvwwwwvwwwvvgwgwwxwwxwwxwwwwxwxgghwwxxxvwgwwvuvwwgvwwwgxwwwwwwwwwwwwwwwgxxwwxvwhxwgvgwwwfgXxhgvvxwxwvgwxwwxwwWwwxxxwxwgfwxggfwvwwxwwgwgwwxfwgwxxwgvvvhwvgwwvxxVwwwxhwwvwwwwggwgwxgvvwxwWfvwwgwwxxxwvxxgwwxxxxwxgvvwgwxvwwwxxwfwgwwwxgwwwxwwwwwwwvwxxwxwxwwxxvwwgwuvwwwwvWvwwfwxwgwxwwwxxwwwxwwvwfwwwwfuvwwwwgvfxwwxvhwxwwwwwwwxxwxxwhxxweuvwxwwvwvgwgwgvvfxwvwufwwxwwgwwwxxxxxwgxxwxfeuwwvXwwvgwgwvgwwwvxwwhwwxxxwxxxwxxxwwvwVwxwwwwxwwxxgwvxxxwwxwwhwvvwxxxxxwxxwxwxwxxxxfwgwwwwvxxxwgwvxwwwwwwwwxwgwxwwwwxwxxfwgVwxxwvgxwxvgwwxxwxwwwxxxwxgwvxxxxwwwxvgwwwwxwxgwwwwwwwwwwxwwwxxxvxwwwxgwvxvwwxwxXvgvwwfvwxxxxxxxxwwxhwwwxxwwxhwwxhwvwhwwhwxwwwwwwwwxwwwwwxxwwwxxfxxwxxxxhvxfxwwxwwxwgfwwwwwwxxxxgwxxhxwvgfgxwvxvxwwwxxxxxwxxwwwxhxxvxxxwxwxhwwgUVwxggwfwvxxxwxwhxxhwxwxxwwwxxwgxxxxxxXvgwxxxfwgxhxhwwwhwxxxxhvwxxwwwwxxhxxwwxxwxxxwxyhxwxxgwwfwwwxwwwwwwxxxwhvxwwwwxxwwxwwgwwxwxwxwwxxwxxxxwwxxhvwxwwxwwwxxxwwwxxxwfwwfwwwwwwxxgfvwwwwwwwxxwwxxwwwxwxfvwwgwwhwxxwwxhwxwwwxwwxwxxwvggwwxUuvhwvwwwwwwwxgwwwvvwffwxxxxxxxxwxxxwwffwwxxxxwwxxhwxgxvwwwwxxhxxwgwgwwwwwxxxxxgwwxwxxhhwxwwwwxxxxxwxxxxgwwwhwxxwxwxvxwhgwxxxhxwxwwxxxxxwgwwxxxxUfewxwvwwgwxwwwwxxwwhhxxxxwxxxxwwxxxxxxxfwwwwwwwxxxxxxtwwwwwxxwwwxwwwxwxxxwwwxwgXwhwwxwxwxfvwwwvvwwwwxwggvxwhgdxxwwvwfwwwwwxwwfwwwwhwxwgvwxwwxwwwwvgwvwwwwxxwwwwWwxwwwwvgxxvgwwwvwwwwxwfdgxwxvxxwwfwwwwxxxwwxwhwxxwxwxwwgwwvxwwwwvwVgwwwxwwwxwgGhwxgwxvvgwwgxxwxfgewwwwgwgwwwwwvgwwwxwxwxxwVwvwgwwwxxxxxggWwxwxxwwxxggVgwwwwxgfwwwxwxwGwvgwxxxvxwxxxgvwxwwvwxwwwxwvvgwxwxvwwwwwwxxwxwwxWwhxgwwxxwwwgvwwggwwwfgwwwxxxxwgvwxwxxxwhxxxwxxxgWwwgwwvwgwxgvfwwgwvwxxwwwwwxxwxxxwxwxwxwwxvfwwvwwwxwxxxgwwfxxxvxxwwwvvwxvwxxwwxxxxxVfvwwwwwhwxwvfgxgwwgxxwwwwwwxwwxwwxxxvgewgxwwxxwggwxhhxgwgwhwwxwxxwwhwwxwxxwwwvwwwwfhxxgwgvwxwxwhxwwwwxhxwxxwvwwwxwxwxxeggewxwxwxxwwwxwwxwxxwwwgxwxwwxxwxvwwxwwwxwwxxvwxgxwwwwxxwwxxxxwxxxsgwwfvwfwwvgvvhwgvvggwwwwfvvhgwwwvwwggwvhwvgvwxfvxwfvwwwffwwfvgfwvgvffwwwgwwvwvwvvvwvGvhWvvwwxwwgvwghwwxxwxwwfewguwvwVewfvvVwvgvwwVuvxwwwwxwwwVvvxxxwvxhvwfxxwwxwwvfvfgVvwxwwfvvgvfvvwwwwwvwwwwwvxxvxwwwwwgfwvvwwwxxggfvhvWewwWvwwwwgvggvgwgvfvwgwgwgugwwWuwwFwVxxww6tuWwwwwggwxxxgvggwwwgwgwvwwwvgvwgvghvWfguwhwwvwxwfgwwgwwxwxhWvwwggghvwgwwwfgwvvwfvwgwxvVdvVxxwvxwwwxXguffwxgvxwwwvxxwffgvxxxgwwwwwxwwwwgvgwwwwwxwwvwgWwvwwwwwvwwwwwhwwwwvwwvgvwwvvwgvxweuvwgwwwvvxfgvwwwwfutwghwvhfgvwwxxgwvhwwxwhwwwxxggvwuwvwvuwxxxwwgvfwggwwwwvvfgxwxwwxwxxxwxgvwxxxxwvfggwgvgwwwvgesuvxgvguwwWwwxwgvxvgwwwwgvwgxgwgwwhwggWVwwvVvgwwxvvwgwwwxvgwwwvvvxwwvwxwxxxwvwgfhghvvhfwwxwgggwwxgwughwwefwgggwfwgvghfwfgvvwwxxwhwwwwxgxghwxwwxxwwwwwwgwwwgwxwwwffgvwxwwxwvgxvwwwwwwwwxwgwxhwwwwxxxgFvvgxhwwvxwgwhwwffhewghgxwwhxvwwwxwgwhggffwhwwwwwxXxwwxwwwwwwxgugfhuwxwwwxwgvwwxwwvwwxwwxxvggwgvwwfwwgwwvwwghgwxwgggwwgvhwxwvwggwvwwwhxwxwwwxxffffWWewwwVvwxwFfggwewFfvfgwwgwvwwfgwwwwwfwwxggwwfvvxwxwvxxwwWwwwwwvwwwwwggwwgwwgwgWxgwwwwwwxgxwxwxvvxxxxxwwwwxxwuwwwfwwgwwwwwwvvfvfgwwVuffgxgwevwxgwvwwwxwwwxwxwwwvxxwgvwwxVwewwWwvwgFfwvvwxFfvwwwgvgvvxgwxgxwwgWgwxwwxWwwxxhgggwxwggxfvggwgwwvVwvXwxgwggwwhggWwwgwwxwwgwwxXxgwxhhvhgwgxxwwwgggfwvwwwvxxfVwxxxggwwgwwxwfvxwxwhwxxhgwwwwxwxwgwwwwwwwwwwwwwgwvvXhgvwwwwxxwvxwxguvwxwhgxwwwwvewvfhvwwvgVxvuwxWvwwwwgwwwxwwwwwgwxxwggvxxxwxxxwxwwwfgwvfwwgwvxwwwwffvxwwgwxwwxwxwfwwwgxwxxxwwwhwwhwxghwxwwWwwVvwfvfWgwwWwwwwwgwwxgxhgwwwwwxxxxwvwwhwxhxwxvwxwxxvwgfvgwwwguwvwwwXgvwwhxWxvxgwwwwwwxxwwwwwwxhxgwwxxwfffwwwwxWwvwwwxgVvwhxxhvXwwwwggwxwxxhxxwwhwwhgwhwwwxwvwwwwwxxwwwxxwxwwgvgwhwwgggxwwwxxxxwxgxgxwhgggXxwwwwwgfwwwggwhwxxvvxhxxxxwwvwxxxxwwghwwxxwxxxxwwwwwxxwxwwxwxxwWwwxgwwwxwxwhhwwxwwxwwxxwwxxwvxxxgwwwwwgwxwvwxwwgwxvwxvgwwxwwwwhwwhvgwwwxfvvwwugWdvVwgffvwhwwvwwwxxgwgWefwwhvwwvvfwgwvwwwwxvwvxxhwwgwwwvxwvgxwvwwxwgfwgwwhfvxwxvhvwvwxgxwxxwwgvxwxhwffvfvfwvvxwwwwgfvgwxwgwxwxwwwvwgwvwgwwwxxwhwgwwwwxxxxxwxwwgggwwhwwfxvewwwxggwwghwgwwwwwwfwfgfwxwwwgfvwwvxwwvxwxxxwgfgxwxVvuwWfuvwwwwwwXwwwvxxhwEgvgwwfgwxwwwhwggvfxgxgxxwhhxVgvgWwwwvwwxgfwfxwwwwgwwgfwxwxvxwxxvwxwwxxwvwEfuwwfvwwgxhwvwvggxgwvwgxwxwwwxvxxxwgwxWhgwhwxxwvgwwwwgxwvwwfxwgwgvxxxgwvwwxwwvxxhxxxxwwWdVwwwwwwxwwvxgwwxhwgwxwwxxgwxgxgwwwxxwxxxwxwwwxwwwwwwwvwwwwwwxwxwxwwxgwwxxxfwwwxhwwwxwxxgwxxvvwxuvvwvuwvwhxwxgvvwwxhxwwwvwwxwxgxwwwwxwxwxhwwvxwgvxwegvvggwwwxgwwgwwwgxwgwxwxxxgvvxxxwxgxxwxxxxgxhwxxxxxwwVfvwgWufxxwxwxhwggvvxhxgxxgxxxxwhgxwfwwxxwxgxxxwwxxgwwxwgvgxxxwfwwwxxxwvxwwwwwxwxwwxwxwwwwxvwxxgwgxwxwgwxwxwgwwhwwwxxwhxwxxwxwwxxwxhwxxxxxtwwwwwfvwvgwwwwwwwwgvxwwfggxwwwxwwgwwwxwwwwUwvxwwwvwwvwgwewxvWvgwgggwgwgggwwwwwfwvvwvTvWwvxvwwvgxfwwwwwwwwxwxxhwvwwwwwgffwvwwUvwxfwwgxwwwvvwxfwwwxvxxwwvdvWwvwgwwxvvvfhwwvgwxxwwvvxwvxwwvxwwwxwxwxwwwwvwxxgfvgwvwwwgfgwfhwVvggwgwwvvwfwxgvuxwuxUwgxwwwxwxxwwxwwwgwxwwggfgwxhgwxwggvgxgWgggwggvfwwvfwghwwxxXwgvvghxwxhwwxwgvwvwxxUwvhwegfxwwwwwxgxxxwvxxgwxwxwwwxhxxwefwguvwxgwxxwwgwfgwXwgwgwwwwwwwwwxhwgwxwwwhxwwvwgvgvxfvggfvwggxfvwhvwxgffwwxwwxwfwxwwxxwxwwwvfvgxWgwgvwgfwwghwwgwwwxwwvwwxwwxwwwwxgwxwxxwwfuwwwfvxxfwwwhgxwvxvvwxxwwwwwwxwwwxwggwxxvwvwwvvxvwvvxxwwwvwxggxwgwvxwfhvxvwxwwwfewgxwFvvxwwfvgwgfvxvxggwxxwUvwxgxhxwxxxwxxxxxxxxwVwhwvwwwwwxxhvWffvwgwwhwwwgwvxxxvxwxwwxwwgwwxevexxxxwxghwwhvwwwwxxwwhwwxwwxxxvxwgwxwxxxwwxwxwwxhgxwwwwwwwwwwwwxxxhxwwgwxwwxwxxxxxgfxgwvwxwxxwxxxhfgwwxgwwxxwwhWxgxgvwxwwwwgWgwwwwwwwwwxwwxwwwwwwxwxwxxgxwxwxwwwfvgwwwwxvwvxxwxwwxxwwxxgwhwxxxxvwwwwfvvxwwwgwxxxwvxwwwxwwwwwwwxwgwgwxXwxwwxwwxgEVvxxwxwxxhwxgwxxwgxhxxwxwxwhhfgwwxwwxxwwwWxxxwxxwwwwxxwxxwwxxwxwxwwxxxxfggwwwxvvxwwwxwxwwwxwwwwggwxxwwxwxwxxxxxwwwwwvxuxwwwwwwwwwvwxvwhxxwxxwwxxxwxwwwwwgwwxwwxvwgxwxwwwwxxwxwwgwwxxxwxwwwwxwxwwwwvwvxxwwxxxvwwwxxxwwxvxxwWgwgvwwgvgxffvWwxwwgwwwwwwxxwhxxxwxwxgvwwwxxxwxwxwhwwxgwwxxwxhwwxxwwwxwxwgxwwwwwxwwwhxxxxwgxxxxxxxwwwwwxxwxxxwwwwwggwxxwwxxwxxxxgxfVvgwxxxxxwxwWxwxxwwxxwwxxhxxxxwwwwwwwwxxxxxxxufwwfwwgxgvgwwwxwwxwxwgwwxvxxwwxwggxgwvgwwfwvwgwgwwxvvwxwwwvwxwggwwwxwwwwxwgwuwxxVwwvwwwwxgxwwvwwgwvxwhxuwwgwwwwwwwxvwwxxuvxgvwxgwvxwxvxwhgwxvuwxgvxwxxwxxhwgvwvgwwWuwewgwwwgwwwwwwwxfggewwwxwgwwxwxwwgfVggxwggwgwgwwwwwxxxvwwxwfwvwwwgvwxwwxxxxwfgfVvvvwwwvvwwwwwwxwgxvwvgghxwwxwwwwwwgwwxxwVwvwwgwxwwwwxxwwvhwwwwugxfwwxwxhwwhwwxwwwwxwguwwxgwwwvxxwwxgvwwgwxxxwwxvvggvxwwgwwwwwwxxwxxvvvwxwwxxxwxwxvvwwwwwwwhwwwwwwxxxwwgwwwwhwxxxwxxwggxwxwxxxxVvvwvxgvxwwwWwwwxwwxwwwwxxxwxwxxwxxxxwgVWwwgwwwwxwgwxwxxxgwgwxwgwwxxxxwxwxxxxxgwwwwwwwwwxwwwwxwxxxwvwxxxxwxwwxwwxxxxwxxfgVfvxwxwwwxfxgwwxxxgxgxwxxwwxgxvwwxgwgvwwxxwwwxwwwxwxwxxwxxxugfwWwffgwxffWwgxxwxvwwwwfwwwvwwwwxxfvwwwwgwxgvxgxfvfvfwfwgWfwVfvgvgwxwwwwgvvwwgwggvwfuwxVfugfhwVvwxgwgvgwwxwwVvuvgvwwwgwWvggwgwgwxgvxhvxwxwwvwvxvfgwvwxwwvxxxwwxwhxuvvfvfwfvvwewgvvvwwwwwxxwwwxwvwvwfvhvwwwgwgwvwxwwwwxxwxwxgwwxvgwxgVVVwewwgwvxwwwgfwgggxwggfggwxvvwwwxwxguwhWggwwxwwwhgvgxgwwhfffwgwggwgwwwwxgwwwwxxwgwwhggwwhgwwwgwgwgwxxvghgxgxfffffvwVfwwgwwvgfwxgwvwwxwxxxxgfwvxvwwwgxxxwvwxwxgwxxxhwwgwwgwgwwwgwwvvgwvwgwwxwwxwwwhwvxwwwwxhwgxwwwxvwwwvfvuwffVgwgvvwvxvfwgwvwvwvxvgwxxvvuuvvwwwwwwxwxgwwxxfffwfvvwvvhwgfwxgwwwhxwWwgfvvvxwwwfwwhwxxxxwxwxwxwggfefXvgvhvwwXgvvxvhwwwggxgwxveewwwfgwwwxwwwxwwwwwwwwvveuguvgvwwhwvwxvgwwwwwwwxxwwwwwvvwvgfgwvwxwwxvwwwwvwxxffVVvewfgvwwgggfwxwwwwwwxgwWggvwwhxxwxgxwxwxxxxxwhxgwxxwffgwgwvhgwWggwhwwwxxwwWxghxxwxwwwwhwwwgwwhwhxwwguwxggwvwXwwwgwwxwxwhgwgwxwwxwwxvwwxwxwxxxxwwxgwxvwwwvwvxgwwwxwgggwgwwxxwxwwwxvxwwxwxewwgfwxwwwfwwwwwxxwWghwwwxxwwwxxwwvwghxwxfwxxxwwwggvwWgwwvwwwwwwxwwfwwxwwwgvfwwgwvxwwevgxxxxwxxwwwgwWwvwwxggwwwxgwwwwwwwxwwfvxwxgwwxwxwxxwgwfwwfvwwvwgwwxxwxwevgxwxwwwwxxxxxxxgwgxVvgwgwwewwvggwhwfwfwgwvwxgwwgxguwwwwwwWxxwxxwwwxwgvxwgwwgwhwWgvgwxwwxwxxwwgwxxxgwxxwwxxgwwvwxwwwwxxhxwxxxhxWvwfgwwvwwwwwwwwxhwvxwwxxwwWwxxxxxxvwwgxwwxwxwwwwxwxxxwwxwwvvxxxhwxxxxxgwwxffhvwVfvwhwWxwwxwwxvxwxwwvwwwxwwwwwxxxwwxxxxgwgwwxwvwgwggwwwwwhwhxgwwwwwwxxhxwxxxxxwwxwwwwwwwwwwxfwgxxxxhwxgfwggfvwxxhxxxwwwwhgxxwxxxxwwwwwwgxwxwfvwwwxxWxfwwwwwwwwyxxwxxhwxxxxxwxgwgvgVvvwgfwwuxwxfwgxhWxwxwwxwxxxwxgwwvxxwggwxxwxggwwwwwxxwxxxwwwwxxwwxxxxwxxwwhxxxfwfxwgvWwwwxvwwwxwhwhhwvwxwwxxxxwwwxxwxxxwxxwxwxwxxwhwvwwxxhxwxxxxxhxxxxgvwxwuwxgfgwxvxvxxwvxxgggwxfvuxwuxuwwwxggxwfwgfvvwxxwwwgvxxggVwwwwfwwffgwwweefhxvwvvwgvwvfwwvwwxwxgfvxwwwxwxxhwxhfwwwwxwvwhfuvhwwwxhwxggwwxwxxwxxxwxxxvwgwfwvwxxxuufhwvwvwhwxhwvwwwwxwwwxxxwxwxxhvwxxgwwvwwwfvvwggXwvhvgxwwwweghwfvfwWwvxgwwwwhxggvwgvxhgxxwgwwwwxwfwwgvwxwhwgxwxgwwxxwfwwwggfvwwwwhxgwxwwwhxwxxhhxxxxfvxwfvwwfwwwwwwwxgxwxxxxxxwVvxhwwwwxxxgxwxwwxxxwvvwwwgwwwgxxwvwwwhwfxhxhxwxwwgxhwxwwxxxxxxwxwxxwxwgfwxgwfwxggwvvgwwwwxxggxgvvwgwwwwwwfxwxxhxwwggwvvwwvxwwwvwwxxwgxgxxxwgvxwwwwxxxxxxxwwhgxxwwggxfwwwwwwwvwwhwxxxwxgwvwggwwwwxxwxxgxwxxxwxwgwxwhwwxxwwxgwxgwWxxxxwwwwwxwgwgxvhxxxgwxxwvvvvvgwwvevvxwwwwWwwxwxVvwvvxwxgxwxxxwxxhxxxwfwvgWvxxvwwwxgwhxfxxxwxvxwwgwgxxxxxgwgxwxwxevvgwwvwxxwwhwgxgxxwxwgwgxwwxxwxhxgwhxxxxvwvwwwxxgxxxgxXwwxwwxwwwxwxxwxwxxxyffwwgvwvwvwwwxwvgwgwwgwgwwxwxfwwwvgwwwwgvvwwwwgTvvgefvfwwVewfvwgfuvwgvwgwVewUvgwgvwwVvwgfvwwggwWfwwfwhwuwwwvwwvwwvwwvvgwwxgwwwwwhwwwvgwwwxwxwfvwwgwxvwwwgwgvffweuvvvwwgvwgfuvgvWffvwwwxwgvvwgwgugwwwwgwvwwwgfwhgwwwwwwgwvggwwvwwgfVvgwwwgvgvfvvwgwgwwwwgwgxvwvwfwgvgvwgvwgvgwggwgvwevwgfvwwvvwWfevwwwwwfvwWwWWVfvwxvgfVvwvwwhHffvvGxWHewgWVggwwvwwwwwgwwxwxwgvgwwwwwgwwwvxgggvwwxwhwwwwwhwgwwwwWvxhwwxxfvwgvWwguggwxgwffvWwGWdwwhgwvwwugwgwxWwwXhewwwwgfwwwvwwvwvwwwwwwxwwwwwxxgvwxxwwwwvwwvwwxwxwwwwwwxxxwxwvgvevfvvwwgvwVwvwggvgvwuwgxVgvffvgwxxwwxgvwvxxhhgxwxggwwvwwxwwgwwwwxwwvwvwwfwwwgvwwwwxxwwgxwwxxxhwxwwwxggwwvwxguwwwvwxwxxwwvfwwWxtwwxvgvvvvvwwgwvxgheXvgvhhwgfwvgwgeVuwwwwwwwwwwxxwwwwvwwvvwwgwwwwhwxxwwxwwhwwxwwgwwwwgxxxxxfvwgvvvgvuwwwggWevghxfhwWhwgugfvwwwgfxxxwhvxxgXvwhwwgwwxwxwwxxvxwwxwwvwwwwxwxwxhwxwwwxvxxgwwwwxwgwggwfvwwgwwgXwxxgwxwgwwwhfxvwvwwxfwhwgwwggvvwxxhuvtwwwfwwhvgvxwxfwvwvwwwugwwwwxwwxfwwwgxwwwggwgwfxfwwwwgvwvvvWvvxwfvggwwwgvwhwgwvfgwwxgwxvxgwfxwwxvwwwwwxffvgwwvwvxwGUggwwgvvvwxwxggwgwwwvxxwfvfwwwwhwwxgvwgwffvfvgwvwwuwwwfvvwwwwgwxwwuwvfvvwvgfwvwwvwwwwwxgvwwvwwfgwwxegvwvWfggvwGfwWwfwwwwwwxxwwfFuuggxvgwxVvwwwxxxvxxwxxxxwfwxgvxgwgwwvwxgggvwwxwwwwvwwwggwwvwhwxvxwwwxwxWgwvwxgxhwxxwxwfgwfvwxwvwvwxffwxxggwwxwwVUwgwwwwwwwwwwxwxxxwxxhwWxvwwgwwwvgvwvwxvwwwvgwwvwfwwvwwvxwggwwuwwfxgxwwgwxwwwvxwvxufvwgVwwgfwwwwgwwwfuwgxxwVvWwxwwwwwgfuwgxxgwwhwxxwWvfwxfxwxwgvvgxgwgwwwwwggvwvwwwwxvwwwxwxwxwwwWvwgghwwwxgvhvVwgwxwgwfhwhhwudvgvhxgwxxxwxvHwgHVwxwwwwfuvxwwwwwwwgvgwwgWxgWgwvxwwvvggwvwwvxwwfwwxwwhwwwvgggwxwwwxVwvgwgXwwwxxwvwwxwxgghwwxwhwwxxxxxgxwwwgvwwvxwxvwwxwxxwxwwxxhgwwwxwxfwwwwxgxxgxxhwxxxhxVgvxvxxgwxxxwwwwwwwWxXgVxwwgwvxggwfwxwwhwwwwwwxghwwgxgwvhwxwxwwwxxwgwxwwxgwvwvxwxwfhvfxwwvwxwxhwwtwwfwwewwxuxwegwwwfvwgwvxewwfffhfvwvggwwgwwxwhwuwxgeUvwwWfvveewxwwVuxwwvwUwhfgfwWwvwxxwwwwvgwwxxwwwwUvfgvwfxvwxffvwwwwwvhwfWexevuwWwvwwxwfwwggxwxxxwhxxevvuvewwwgwfwuvwwvfwgvwwxgwwfvvfwwgwwhvwxwxwwwwwgwwvxWfwwwwvfwdgwwEudhvFVxgxwwfvvxgvgvWvegggVegwhwxvwgvgwwxwxwwxxgffxgwgwfuvwhWfwwwxwvxwwwuvwxhhwwwwuGwwvwwwwxwxwwwgxhwwwxxwxwvwweefgvwwwwgwwvuvwhwwwvgwxhhxevughggxwwxhxwWwxgwHwvxgwwwwxvwwvWgfwxwxvwwxvwvwwgvggwwxvwwwggwwggwvxwwwwwwwwwwgwvewhwwtvwwvgfuxggvvxwgVwvwvWwxwwxggwVvuwwvwxwwvvwxxwwxxxwwxvgfwfWfwgwxwxfwxwwwwxxwxwwgwvwwwwxwxxwxxwgwwxwffgdtvwWwwvxwwfvgwWggvgxwwxgvgwwvwwXfxwwwgWVvvwhgxwgwfwwweufwfwxwwwwfxgwwgwwgwwwuhwfwgwgwwwggfwwwxwwxwwwwwwuwVfvvwVvxwxwxfwwwXwwgwxxwxwgffxXghwgwhxhwwwhwWgwxxxxwxwvwvVfvwwhxwwxwwvxgxhwwwwwwwxwxwgvwxxgwxwhwxwhwwxwxxxVvexWwwffxxxwxhxgxwhXfhwvhxwwhhxwxgffhxvhhxvhwxwwgxvwwvfWvvwxvxwwwwxxfvwfWwxxwxwwwxwgwxwwwwuVVwwwxfwwggfvvwvwvwvwVwxgwwwggwxwwwwgwfwvuwxwwfuevvwvggvwewvxvwwwwwfxwwvvWfwVwhgvtwvwvwWuvwwwvvxwwwvwFwvwwfwwgwgwewwfwwxxwvgwwwvvvvgwwwfffhwxwwwxwxxwtwwewwfwwwxwwfwwwvvvwwwwwwwwgevggxwvwgwwwdwwvvwwggvwwwwgwwwvwWfvwxvfwwhwgfvggxwvwWfwgwwvwwxwxhFgvghxwwwwwggWxwvwxggwwgwwxwwwwvgwxhwfgwxxwfgwwgwggwwghXwwfggxwhxwgwhwgwWfwwvVwwwxwwewwgwxwwwwwwwxwegvwwxwwwxWxghVxwwwhwwwwxxxgwwwvwwwxwxvvfvgwwgwxwgwvvwwvwgwxxgxfxwwuwwxghwxwwwwVvwwgfwfwwxwgggVwwxvtxxxwxwgvgwvwwwvxhwwxxwxvxxxxwwffUvwwuxvwwgvxwwvxwwwwwwwwxwxfwgxxwxxhwvxxxvggvwwffvwxhfvUgwxwvwxwgwxvvvvgwxwgwwwwwwwwwgxwxwwwwwxxfvvwfwwxfwwwwwtwgvvwwwwwggwwwwwgwgwxxwwwwxwWfwwwwwwwwhFwfhxxxgwwwxgxxVgvwwwxhxxfwhwwhxvwxxxxfwwxwwwxxxxwhxwwffwxxxwvwxwhxwgxgxfxxvhxhgfxxxfvwwxgxgwxwWxwgwgWgwxwwwXxhxwwwgwxxwxwvwwgxhXwxxwwuwwghxgwwwxgwwxxxvwwxwwxxhwwgwwxvxwwwwxwwwwwxxxwwhxwxwxhxxxwxxwwxgwwwhwwvhgwwvfwwgvwwxxwwwxvwwwgwxwwxgxxvxwxxxwxwxxgwxwwwwwgwwxwwvwxxwwwwwwwxwwgvwhwwwxwvwxxxwwxwxwxwxxxwxvxwfwwxwgwfhggwwvxwgwvwwvxwxhxxvwwwwwwxwxwwwwxwgvwwwwgwfhwhxxxgwwxwxxwwwggwxgwvxgwwvgxxxxxxgxxxxwxxwwwxxwwwxggwwxxxwxxhxwhhwwxgwxvwwwggxvwwxxghhhxxhxhxwwwwwwwxwvxwgwwxwxxhxxxxxxgwwxxgxhwgxxxxxxxwxxxxvwwwwgvgwvwwxxwxwhhxxxxwxwxxxxwxwwgxxwhggwxxxwwhgwxwhwwwwgwwxgwxwxxxxwxwwhxwxxxxxxxxxwxwwxwwxvxgwxgwxvwxxxwxgxxgxwwxwwhxvxxwwxhgxxwvwxwxhgwvxwwwgwxxgxwwgxwxgxxgxxwxwxxxxxwwxxwxxxvxwxxxwwxxvgwwvgxvwxhwxwwhxwwxwwwxwhxwxxxxwxxwxwwwgxxxwxxggxxxwhgxwxwxwxxxxxxxxxxxwwwxwxxgwxwwwxxxhhhxxxxgwxxxwhxvxxwwwxxxgwwxwwxxxwxwgxxxxxhxxxxxxxxxhxxxwwwwwwxxwxwxxhxwwxxxxwxwwwwgwvgwwwxwwgxxwwxxwwvwwhvgwgvwxwwvvgxxgwvwvgvwwwwxwvxvgwwxxwxwhwvwxwxwwwwwwwxxwxxxhwwwwvwwxwwwwwxwvwxxxwwwwwfwwwwwwxxWxwxxxxvxgvwfgwwxwxxwwwwwwxwwxWuxvxvvxxxwwxwgwxxxwwvhgTEwvwgwwwxwgvwwwwwwwxwgvwgvwwwxxxwwwxhwwxxgvgwwggxwvwwwhwwxxxxvxgvwwxwxgwxxwwxwwxxwxwvvggvfxwwwwwwwwxwxwxxgwwwgwhxwwwxwxxhvwgxwhxfgwgwgwxxxwwwwwxxxwwwwxxvxvxhvvwwxvvgxvwxwffwwwgvwxxgxwwwgvvwxwwwwwxwwxxwwwwgvwwghwwwwwwxxxwwwwwwwwwxwxwxwwwffvVufgvvwwwxwxwwwwwhwxwxwwwvvgwwvwhxwwxxxwwwvwvwwwfvwxxxvxwvwwwwwxxvwxxwwxffvwggxxwgvxhxwxxwwxxxwwwwwwxxwxxxxxxxxwwxxxwgxxxwhwxwxxxxwwwxgxwxxwwxxwxwwwwxVefvvhwhwwxxwxwxvgwwxwwwwwwxxwxgxxwxxwxxxwwxwwwxwwwxxxxxwxxxwxxxwxwwxxdwffwvfwvxvvVfgwvwwxvggwvwwfvvvvwwwxfwwvgwwwwwxgwvxxfgwfffWvvVwfwegwwvgggwgvvxxwwwvvwfgvwfvxugvwVvwwxwgwwwwwwfvvwwWTwwgwfvvgwwvgwgxfwwwwgvvwugvwfwwwvxhfwwwxugwwwwuwewevevfvwwwfwvwwwvfwxUwwwvvvwfvwuwwwwwxvwwvvwwwvwxgvwggfVewgfVwfwvxeVgfVwfgFuegwwwgeVfwwgwwWwwwwxgxffwxwwwwfwgxwwxgvwfwvgfffvgwWwgfwvvwhxwwwgwggxggvggwfwfguhwwwwgwwvggfhwggwwwggwwfvvfwvwfevfwwwxevvgggwgwwwwwwxgvvwwgvwwxwgWxvuvwhgxwwwwxfwfwfvfwfgfgvgfwgwwwvhwwwvfvxwwwuwwhvgwwwwgwwvfgwhfgwwwwwefwwvgfvwfufvevvgVwwwguwvxhfwfgevfwwvxwhhhgwwxwxwxwwwwgggefvfwffuwuvgfwvwwwfgwwwxvvwwwvvxxwwwwwwwxxhwwwwwwwxxwgfwegfvetfwvgwGgvfxvxvgugwwgXEggwwuWgwwxxwwWwgwwfxxfwwfwfuuwvvvVewwwwwvvwgwwwwgVwxuwvwgvxwvxwwggxwwgxwwwvwwwwwvwffgfwfwgwwhwggwvwwwwWfwggwgggwwxwxwghwgxgwwwxwwxxwwvwwwvwfvgwwfewfgxwggwgwgwhWggwwvwxxwvvggwxxvwwwwhwwhwvxwxxvggwWwvwwwvWfgwVwwwwuwwgwgWewwwwgwwwwwhxxgvxgwWgxvwggwwhwwguwvwvwwvgevwgghwwhxvwuwvxwxwggwxvwvwxvfwvwwxvwgwwwwwwgwgwwgwwxxxwwwxwwxxwwxxwwwgxwxxwwwwwgfUvwwvgwhgfUvgwxgwvwwwwwffgggxwwwwhfwwxwwhwwxxxwxgwxvwgwwwwwxvwgwwxvxwxwwwwwxwyvwwxxwxxwxxwxvwgvwwvggwwwvxwwgwwwwwxgxxxwwwwwwwxwwwvvvwwxwgxwvwwwwwwwghwgwwwwxwggvhwxfwggwwxgwgvwwxgxwxwwwgxwwwxxwwwwVwuwgxwwhgwVvvwwhxgwvwxgggxgwxgwvgvxxhgxhwgxwgxwhgxxwwxwwfwgwwwwggwwwwwwwxwgwgwxxwwwwgwwxwwwxwwxxfvvwVvuxwgwgwwwwwxwwwwwxwwvghwwwxwwwwxhhwwgxwvwwwgxwxwwwvggwvwwgwwwxwwwwxwwwwwwxxwwwwwwxwwwwxxwfUgwwxfwvvxfwwxghwgwxxxgwvxwxxwwxxxxxxwxwwxwwwwwwwxxwxwwwwwwvxwwvvwwwxxxwwwxwxgwwwxwvwwwgwwwvvwvwwgwxhwxwvwvvwwwxwxwwgwwwgwwwxwwvwgwwwwwwwxwxwwwgwwxxwwvwxgwwxwxxxvxwhghxxwgwvxhwwwwhwxwxgwwgwhxgxxxwwwgvwxxxxxxxxxxxxxxwwwxwwwwxxvwwxxwwxwwvwwwwwwwwwwwwxwwxxwwwwwwgwxvwwwgwxxwwwwwwxwwxwxxwwvwwgwwxegfwvvwwwwwxfgwvwfvwwgvwwwwxfvvggfxwwwwgwwvgvwgvxvfVuwVuggvggvvwggvvgvugfvfwuwgwgvvWvuvgwggwgvvwwwhgwwwwwxvWvvwfvgvwvfuwwwfwfwwfvwxxwhvwvgwVgwwxvwgxgvwwxwghxxwxewgwvffwvwvwxwwgvwwwwWwwgvhwgvvvegvwwwxvxvwwwWwvwwxwgvxfwggVewvgwuwfvvwfvwuvvwwvwwwwwwfgfwWguwgwwxgxvWvvwwwxwggxwwggwwwwwufvfgfvgwwvwwwwhwwvvxgwwgfffwWgwWwvvwxwgwwwwgwwgXgvwwgwxwgffwfgvvfuwwggfvvwgwwfwwxwxwwWfvwxfwgwwwwwvvvwwwwgwwxwgwgvvggfgfxwxgwwwwwwwwgxVwhwfwwwwvwwvvvgwxwwxwwgvghwwwxwwwvwfvfwgfuwwwwwuwwegwwwwwwxxxgwggwvwvwgwwvwxhvuxwghxxwwwgwegwwvvwfxwwwwwvwwwwwgwwwxwvwwwwxxxwhxgwwxwxxxwxxwgfwvvfwwwwwxxgwfvvgwwhwxfwvVggwghwxxxgvwwVxwxfwvwwgwvwvfvvwgwwvgwwwvwvggguwwxvvugfgwwwwgwxvwgWwvwwwwxvwfffguvwwxwwwgvvwwwwWhxhhWWvwwgvhxwxxhxvwxxwxxhhwwwwxxwwwwwxwWwxxxhgWxwhhxxgwwwhxvxwfhggWvwwxgxwwwxxxwgxvxwvvwwhxgxwxwwwwxwxwxwxwwgxwwwwwfgwhwxwwvvxwgxwwxwwwghwgwvxhfxhxwgvywwvwwwwvvwgwwwwxwywwxfwwuwwgvwwwwggvgggwwwwwwwvwggxwfwfgwwwwwgwwwhxgwwgvffwwvevfwghvwggggwwxhgvgfevwVvwxwwxwfwwwvgvwwvwwxgwwwwwvwwwwvggWvwxwwxxwxwwgwgfwwwxwwvwxwwwxwxwwwgffvufwxwwvvwwwwwwwwwguwxxwwwxwwgwwvwxwwgwhwgwwwggxffgfhwvwgvwxhwwgfwxvvgwfvwwwwwwxxgwxxwWvwwwwvwwwwwfwgwgxwxwxxgggwvgwfwwwWxgwxhfWgfwxgwxgxwwwwxguwwwgxwfvwwwwggxvxxwfwvwxxxwwxxwwgfwwwxwxxfwwwwxvwvvwwxwwwgwvwwfwgxxwhvxvxxwxhwwgwwgwvwwwwxvwwwwwWwwwwxxfgwwwwvwwxvwwwxwvwxfhguwwwwwwwfxhwwwfvvvwwwwwhwvgwwgwwwwwwvvvxwwwgwxvwwwxwxxwvwwxxgwwwwvwxwxhgwvwvwwwgwwwgvgvwwgfxwwwxxxwfwwwxxgfxvxxwwgwwwwwwxwwfwfghuxwwwwwwwwwwwwxwhxwgwxwwwwwxwvgfwgxxxxWvwxxWwxvxxwgwwwxgfwhxwwwwxvwwxwwxwgwxwgwwwwxwwwwxwwxwxwggwwwxwwxgwwxwxgxwxwwxwvwvhwvgxwgxvvwwWwxfxwwxwvgxvvxgwxwxwgwwwxwwgwwxhwxwhxwgwwwwxwvwxwwwwxgvxwwxvxwwwhwwwwwgwwXxxwvhwxwwhxvwhwwxwxxwwwwhwxxxxwwwwwfugvwgwgwgvwwwgwwghwgfwvxwwgwwxwvwwgwwwxfwggwxxWwwgvhwvwgwwxwxxvwwwgxxwwwwwwxwwwwvhwxgwwxwxwfxhwwxvxwwwwwwwfwuwwwwwxwxwWxwxwgvwvxwwvxwwwvvxwwxwxwvgwwwwhwwwwwgwgvxwfgwgwwgwwxwxgvgwvfgwhwwwhWwgfhxwwwxhwxxwwwwvwwwgwxvwggwvhgxwXwwxgxwhgwwwwVVwwvxxwhgxfhgvhxggxwhgwxvwwwwwwxgwxwgwvwvwggvxxwwxwwvxxgwxhwwgwwwxWwwxwwvwwwwwxfgvxxxxwwwwwwghxwVxhxwwwvuwwghxgvwwwgvwwwgwxwgwwvwwgxxwwgxgwwxxwxwxwhwwwwwwxxwwwvwwxvfwxhxwxwvhxgxxwxvxvwwwvgvwwwxxwwwxwhggwxwwwvwewwhfwwwwxxwwwvxvwwwxxwvvwxwwvwwxghxwhgwwxgxwwxxwxwwwxwhxwwxVwWxghxxwwgxwwwwgfvxxvxwxwwxwWxxwgxxwgxxvvxwwwxxwxxxwwfgvwwhwxwxwxwxxgwgwhxxwghwxxxxwwxwxxgwwhxxxgvxxxxgxvgxwwvxwwxxxwwxwwhhhhgxwxxvwgwwxwxhxvgwhxwhwxwwxvvxgwxwwgwxxwxwwxgxgxwxxwwwwwxwwxhwxwwxhxxwwwwxwxxwxwgwxxxwgwxgxxxxvwxxxwwvxwxhwwvwxxwxxuwfwgfxwxxhfvhuWxxvwwwuxghxwwxggvxwvxgwvwwwwwwwwwxwwwwwwvwwwvgwwwwxwwxxwxxhwWwffwwwwwvgwvfxgxxvwwwwwwwwxfwvwgxxhewvvvvwwwxfvxwgxxfwwxgvwhwwugwwwwwwwxfxwwfxhgfxwgwgvwxxwwUVxwhxwgvxwxxxwxxguVwxgfwxwxwwxxxwxxxvvgxwwwwwxxxxwxvxxxxwwxwgwwvwwwvuxwwgxxwgvwwxxwxwxgvxwxxwxwvxwxfvwwwxwwwxwwwwxwxxwgwvxvxwwxxgwwxwwwwwvxwxwvfxwxxwwgwwwvxfxwwwwwwwxwxxxxwwwwwvxfxwwxxxxwwwxwxxwwwxwwwwfgVwwwwwfwwfxfwxwxwgxwxeuugxwwwxxwwwgwwwwxxvfwwfwwggxwxwxhuwxxwxggwwvwwxwxxwwxwwvfwwwwwwwwwwxwxxwvwxwhxvwwxwwxwwwxxwwwwxxwxxwxxwwxwxwxwwxwxwwwwwxVeewvwxxwhxwxWwxwvwggxgwxxxxxwxfxwvhwwwwxwgxwwvxwwwwxwwvxxvxwwfwwwwgwwggwxwvwuxwvwxwwfwxwwuvxwxwvxwwwxwxwvwvefvwwwgxwwvxwwwwwwvwgxwgwwvwgwfgwwhwwwvwwxfggvvxwxhvgwwwggwwwwwwgwwwwwwwwxwwxwgvwvwwwgwwXwwwhxwxwwvxwgUwwwwwwwgvwxwgvvvwwwwwxvwfwhwwwvwhvwgxufgxwvxwgwwhwwwwwwfxwxgVggwwwxfwvgwhwwfgwxWxwhxxwWwvXwwwhWwwgxxwwvwwwwgwwwwgWwwwwwxwwxwuxgWwwwwwWwgwgxxgwggvwwxWhWgwxxxwwggwvxwwwxwwwwgwfgwwwXwxwxhhwvxxxwgxxWxxxxfwxgxwwgxhwwxwgwwwwgxvwxWwfwfvxgWwwwxwwwvxuxwxgwwxwgwwXgfwxxwwwgwwggwxwwwwwvwwwwwvxxxxxwwwwwwwwwwwwxwwwxwhwxxwgwuxwgvfwxwwvvwwWxwwwxwwxxuwxwxwwwwfxwvxxwwwwwxwxwxewwwwwwwwwgxwwvggwwgwwwvwwwwVwxwwxgxwgwxwxwwwwwwwwewxwhxwwxwwwuvwxxxwwvwxxvxxwhxwxxvxghvwgxwxwwwwxwxxwvwwwgWgwwxwwwwwwwwwwxxxwwwgxxxWxxwxwwwxvwxhxxwxxxwxwfxxXgWxwwwwwxwhxxwxxxwwxxwwxwxxwxWxxxwwwwgwwwxxwgwxxxwhhwwwxxxwgwwwxxxxvwwhxxwwxxxwwgxfxxxwwxwxxxwxwxwwwxwxvxwwwuhwwwghWxwxvwgxwwwxwwuxwwgwxfxwxgxgwxwwwvwwvxwwxwxwwwvfwuwvgwvwxgvxwvwxgwuwgwvwuwgwwfwvxwhwwwwwgwwuwwwwxwwgxwwwvxwxwffxgwwwwxfxxgwxwwwwwxvwwwgwwwhvgxxfwwvwxuvewwwwwwwgvxwwxwwfwfxvxvwwwvvwgwhwhxvwuxvvwwhxwwgwwggwfxvwwvfgxwxgvvgfxggfxwxxwvwxxWwwxwxxxvxwwwxhxwgvwwxgxvxvwwfwwxwxwgfgfvhxfwxwwvxwhvwxxxgwgwgwxXxxxgwxhwvxwwwxwwwwwxwwwwwwxwwxhuxwghvvwvwwhxgwwwxwwwwwwwwwwwvwwxvxwwwxwvwvwwwgggwvwwgvhxgwwwgvfwhwxxgwxgwwxwwhwwgwhwxwwwwwwwwwwwwwxwXxvwwxwxhhwwxxwxvwwwxxxwwvwwwxwwwwvwhwwvxwwvwwwwxwwwvxxxwgwwxxwxhwwwwwwxxwxwwwxxfwffuvxxxwwwwwwggwvwwxgwhfvvwwgxxwhwwxvvwfwhwwxwwgxwwxxhvgvwwvxwvwxggwxxwWwwwwgwwwwwxgxvxgxwxxxhvwwwwwxwxxxwxwhxgxxwvxxxwxhwxxfwxwwwxhwWxhgwxxxxggxwxxwxwxxxwxhxvwgwxxxxwwvxwwgwwwwxxwwwxxxxwxwxgwwwxhwxxxwwwwxxxwwxxwwwvxvxxxwwwwwgxwxwwvhvxxwwvxwwgwwwwwvxwxwwwxgwxxwwxwwwxxwxxxxxgggwxwwwwvwwxhwxwxgwwwxggvxwxxwwxywwwxxwwxwwwwvvwwxwgxwxwxgxxxxxwxvggwxwwgwvwwxwwxwxwwwxxvvwwxxgwxywwwhxwwwwwhxxhwxhxwggwxwwwgxxwwwxwggvxwwwwwxvwxxxxxwwwwgwxwvwwwgwwwgxxwwxxxwfggwwwgxwwhxxwxwwggwwxhwwwwwxxxwwwxwgwwwwgwgxxwwwxxxxxvxwxxxxxgwwwwwwxwwwxxwwwwwwwgwwwwxxwwwxwxwxwxxxwxxwwvwwwxvgwxxwwwxxxvxwxxwggwxwxxxxxwxxwxxwxwxxvwwwwwxxwxwxwwxwxwxxxxwwxwwxuwwxwwwwwxxwxwwwwwwwwwwxxwwxwwwwwwwwxwxVvwwVvwggvwwwwgwwwwxxwwwxxwxwwwwwwxwwxwwxxxxxwwwwwwwwwgvwvwwwwwwwgwxwxwwwwwwwwwwxxwwvggwvvvwVufwfvggwgxwwwwwhvwwwfwfvwwvwvxwwxwwwwxvewvwgwwwggvwxwVgxwwxxwwwwwwxwwwxwwxxwwxwxwxxwxwxwvvggWwwwwwwxvWwgwwxwxxxwxxwfwwwgxxxwwwxxwgxwwwxxwxxvvvwwgefuwwgwgvvwwwwwfvggwfwwfvxxvxwwwwwwxwwxxvxwgfvvwfwwwgvwwgvfwwwwwwwgwgwgvwwwwwwwwwxwwxwfwwwwwwxwwwvvwwwwwwvvxxwwwwwwwwwxxxxwwwfwwwvvwxwwwgwxxxxwxwwwxwxwxwwwxxxwxwwVewvuvwwwwwwwxgvuwgvxwwwxxxwwwxxhwxxwhwxwfwvvwfwwxwfvwwhxwgvvgwwwwxwxwxxxxxwwhgxwwfwwgwvvwxxxxwwxxwxxwxwxxwxwwwxwxxxxxxwxwwxxwwwxfwwgxxxxxwwwgxxwxxwwwwxxxxxxxxxwxwwxxxwwxwxwwfwwxxwwxvwwwvwgfwvggwvfwhwxxwxwvxwwxxxwwwwwwwvwwwwwwwwghwwxwwxwwwwwxwwywwwxwxxwwwwxwwwwxxxxxxxxwxxxggfwhwwvwwxwhxwfwwwwwxwwwxxwwwwwxwwwwwwxwwwxwxxwwwxwwwwwwwwvvwwxxwwwxwxxxwwwwyyxwxvfgwhwvxwwwhwwfwwwwxwwxwwxwwwwwwwxxgwwwxxwwwwwgxvwxxwxgxvwxxwwxxwxxwxxxxwwwwxwvvxxwwxwxwwwxwxwyxwxyxwwwxwxxwwwwwxwwwwwxxwwwxwwxxwwxxxxwwwxwvxwwwxxgwxxwxxxwxxxgwwwgwwxxxgxwwxwxxxxxxxfwwwxvxxyxgxwxxwxxwxfwwwwwwxgxwwwxxxwxgwwgxwwwwwgxxxxxxxwxxxxxxwwwwwwwxxvxwwwwxxgxxxxxxxfwwwvxwxwwwxwwxxxxwwwwxwwxxxxfwwgwxgvVgvwwvwxwwxxwwwwwxwwwggvwwxwwghvvwwwwxwxxxgwwwgvvwwgvewvwwvgwwwwwwxgwwvwwwwfwvwxwgxxwwwwwwwwxhxxxguvggWwvgwwwwgvwvwwvwxwwvvvxwvwxxxxwgfvvvgvwewwvvxwvwwwwwwxxwwwwuwvxVxwwwxwwxwxxwwwwwxfwwgwwgwggwwwwxwWwvwwwgvwwxxxVwvwwwwxwvwgwxfwwxhxhwxxwxxxwfwwvgwwwwwwwgfwwwwgwwwxxgvvwwgwgXxwwxwxhvgwwxXwwxghwxVgvfvwwgwffwvvwxwwwxgxxggwwgxwwwxwxwwxwwwxvwxewvwVvwgwgwxwwxfvgfwwgwwgfwghwwwwgvxwwwggwxxgwvwwwxwwfxWvwgxwwwwwxxxgwwxwxxwgxvwwwxxxxvwxxwwwwxwwwevgvwwwgxwghxxwxxxxxwewwvwwxxwxwhxxwwvwgvfwhgwwwvgwwxwwxwwvgvwxwwwwwxxxxwwwxxvvvgvwwxwxwxwwwgxxxxwxxgvwxwxxxxxfwwfwwwwvwxwwwxvwwwwxwwwxwxxwfvwwxwwxwxxxwwwxwwwwxxxxwwwwfwggxwwhwxwwwwhxxgxxwwwwxgwwwwxwxwxwwxwwwxwwxguwwwWwxwwwxwwwwxwhwwxwgwwxxwxgwwxxxgwwwxfvwxgwwwxxwwxxwwwxxwxxxxxwwxxvwxwwfwwxwwfvwvhvwxfvvwwwwwwwwvwwgwwvhwvvwwwwgwwwWdfvwwwvgwggdvfwgvwgvvwxwgwvwwuVhwvgwgxxvgwgwvxxxxxwfwwvfvwvwwwxwvvwvgwvvwwvxwxwwxwwxwgwwwxhwwxwxgvwwdfwwwwwwwwdfgfxwfvxxwwgwwWwgwwwwwfxxxvwuugxwuwwwwwwwwgefvvvwffwhxvgwwwwwvvxxvgwxxwxxxxxgXfwgwgwwvfgghwvvffvhgWgehxwugwvxxwxvxwxhfgwwxwxhgwwxwwvwwufwwgvwwwxuvgxwhwxwxxwgwwwwgwwwwwxfwgxhwwwwxugwwwwwwwwgwvwwxvwwgfwvwwwwgxxxxvwwwwwvwxxwgfvwfgwvgegwfgwxxwfwwwwxwwwwxwwwxxxwwxxxgwvvwwfvgwwvwxvfvwxvwwgwxwgxwwwxwwwxwxxxxwxwxxxxxwxxvfuwvvwffwvxwgggwwfxffwwxwwvvwwxxwwxwwwwhgwxhxwxfvvwvxvwwxgvwwwwhvwwwwxxxxwxwxwxwwwgwwwwwgwwwxwwgwwwhwxxxvwxxxwwxxxhxhxvxxwxxwwwhxwgxxxwvggxxwgwwxwwwxxxwxxwxgxvXwwxwvvwwggwvfgwxwgvwwgwwxggwxxhxxxwwxgxxhhwwwxxxxxwxwwwxwwxwwxxwwxxxxvxxvwfwxwxfxwxwwwvwwfgwwxgxwwxwwwxwwwwwxfvwgwwwwewwwwWVvvwwfwffwgxxggwgwwwwxwwwxxgfhgwwwxwxxfwxwxxwwwvffgxgxwvwwwwxwwwxwwwxwgwxwxxxwxxfffwVufxwwvvwhwFdVgwvwwvgwwwwwvwwgvwxwgxvhwwwxgwwwxvwfvwwwwxhgwfxwxgWfvwwwwgwwwgfwgwwwxwxwgggxwxxvxxgvwwwwwwwgvwghffgfwxxhwwvwxgwwWgxxwhxvgggxxxxwgxxhxvwwwVuvwwwwwUeufgwwvfwvwxwwwxwwwxwwxgwwxxwxwgvxwwwgggwwwwvwwwwwwfWvwxwwvfwvvvwvgwwxvgwxwvwWwxwvwwwwVvwgwvgwwwggwxwxwwxxhwxxxhvfgvwvwvvwwxwfvfwxwwxwwxgwxwxxxxwwxwweVgxvvwwwgfvvwwwxwwhxxxwwwvwwxwxwwxxvhxxxwwwwxxfvvwwxwvwwxhwwgvgwwwuwvwvwxxwwxxwwwwwxwwwggfvwwwwwxgggwgwxgwxxxwwwxwxxxxwwxwwwwwvwwwxxwggwwxhwvwxxxxxhxhvxxwwwwxxgwxxgvvxxvwxwhwhwwwwwvxwwwgxwwxwxwxhwvxxwwxwwwxwxwwwwvggxwxvxvwxxxwxwwwwwxgwwwvwwggwxghwwwxwxwwwwwwwwwwvxwxwgwuxxxwwxwxgwgvvxwwfxggwwwwfwwwxwwwwuvxwxwwwwxvvwwwwwhvvfwwwugxvwwgvwvwgxwggwwwwwwwxwwwfgvvwwfwwwwwwwxfwvfwwvvwwvxxwxxwgwvwgxggvgwwfwwgvwxwxxvwwxxwvwvwwwwxfwvxwwxxxwxxxvwwwwwwwvwwhwwvvwwhxwwwgxhxvwxwwxwxxxxwxhwxwxxwwxhwxfwegvwvwwxfwvgwggwwvwvxxwwvxxwxfvwwwwgwwwwwwgwwvwwxfwwwxwwwwwxwwwwwwwwwwxwwwxgwwwwwxghwwgwgwwvwxxwwxxhwxxxxwwwxxxxwwvvhwwvvwvwxufvwhwwxxwwwxxwxwwxvwwwvwwfwwwufvwxwxwwvxxxwxwwxwxwxwxxxxwwxxwugfwvxgwwxxvxwxxwhxwgxxwwxxwwxxxwgwvvwwwffwwxxxgfwwxxwxxxxwwwxxgwwwxwvwwxwxwwhgxwwxwwwxxwxxwwxxwxxwxwxxfvvgwxxxxhwwgvwxxxwwwwxxhxxxxxxxwwwgwwwwwwhxwwxwxxwxxxxxwxxwxxxxxgwgxhwwwgwxxwwgxxxxwvwxwwxwggWvxwvWwgwfwwwwgwwgxxgwwwvwvwwxxvvwwxxwxxxwwvwxxwwwvwwwwxwvwwwxxvvxxfvwxxwwfwwgvwvwgevwxwwxwwxwwwwwxwxxwwxwxwwgwxvgWvhxXwvgwwwxxwvwxggwgwxvgvxwwwwxxxxgwxWfvuwgxxwwwhwghwxggxxfwwwxwxxwxxgwwwxxxxwgvwwuwwxgevwwwwxwwwxxwwwwwwwxwghxwwxvxxxwgwwgwwxxxwwgvxwwxwwwxwxvhvxgvxwwwgwwwwwxwvwwwwxgxwfwwxxwwxwxwxxwwvwwwwwwwwwwxgwvxxhwvxwvxxxwwxxvwvwwwxwvvwvwwxxxwwwxwxxxhxwxvfvwxxwxwxgxwwwxxxxwgxxxxxxwwxxxxwvwwwxwvwxxxgwvxxxxwxxxxxggwwxxxgxxxvwxxhvwhxwwwwwxwhwwxvwvwgxvwgwwxwwfxwxwxwxxwxxwwxxxxxwwwwwxxwwwgxxxwxvwwwwwgwxwwwvfwwgwWhwgwfwwxwwwxxwvxwwwwgwwgwwxwwWwvxgwvgggvwgwvwgwfwfwhwxxvwggxgxgvwwwwwgxwhxWxwwwwgvwgwgvxwwwwxwxgwgwgwwwxwwwwxwwwwgwgxxxhxvwxwwwwxxfxwvwwxgwxvwewfwWwwwwxwwxfgwuwwwxwxwwxxwwxwxxwxxwxwvvwwwwwfgWwwvggwxxxghgwwwwwxgwWfxgxvwgxxwWwwwwxxwxxxxwxggwwggwwfvwxxwxhgggwxxxWwxvhwwwwxxwxxhgwvvxgwhwxwhhhwxwxxxxwxXwwWwvwvxvwgvvwgwwwgwwwwwWwvhwwwhwxxxwxwxxwxwxgwgxwwwwwhxwwxgwgwxgxwvgwgwwwxxgwxxxwwxhwxxgwxwwwVvwghvwfgvwWfxwgxgvwhxwxghxvxwgxxwxwyxxxxwgfwwwxwwxxwxgwvwxxhwxgxhwwxwxxhxhwxxxxxxxxgwwhvxwwxvwwwfxwWwWgwwwgwxwwvxgwwwxhwxgxwghhggwwwwwxwxwwhwwuxwwwwxvxgxxvwxgxwwwxwwxwwwwwwggwwxxgwwxwgwwxxwhwwgxxxhwxwwxxxhwxgwxxxxwxxwxxwfwxwxgwwxhxhwwxwgxxhwwxhgxxwxxgwhxxxwxxwfwwhwwwwhwwgwggxxwxwvvwwxwwwxwgwwxwxxxxxxxwxfwhghxwvwwwwxwxxwxxwxwxxgxxxwgwwwggxxgxxxwwhxwxxxwwwxgwwxxxgWggvwvwXxwwwvxhxwxxxxgwvwwwwgvgxvwvxwxxxxwwgwwxxwwvwwgwwwwwwfvwxxgvxxwwgwgvvewwxwwwxwuwwwxwxxwwwwvxwwwwxwxwgxxvWggfwwWvwwwvxgwwgwwxgwwgwvwgvwwxwxwxwxxxxWgfuwhgwwwwhgxxgwxgxhxfwwwgwwwxxxwxxwxxwxxfwwvvewwvwwvvxwwxwxwwwwwwxvwwwwxwxxxwwwgwggwxwxxwgwwwxwwxwxwghvwwwxxwxggxgwxwwxwxxwwvwwfwwvxwwxwwxxxxwxwwwxwwggwxwxwwxxvvwwxxxxxxwggwvgwwwxxxxgwwxxxwxwwwhwxxwgvwwgwwxxgwwwfgxxxxwwxxwxxxwxvwwwwwwwwwgxwxvwxhxwvxxvxxwwxwxxxvwgwxwgxggwxhxxxwwwwwwxwwxxgvfwxwwwxxxxxwxxxxxxwvwgxxwxxxwxwwxwwxwwxxxwwwwxxxgxwxvwwgwfvwWwwwwwwvwwwvfwxwwwxwwxwvwwwwwvwwgwxwwgwvwgwvxfuvwvwwwwwgxwvwwwxguwuwwwggwxwxfgxwxxxwwvvwwvwvwwwgvwvgwwwwwwwwwwvxvgwwwwwwwwxxwwvvvwuvwwwvwwwwwvvgwwwwwuvwwwxwwxxwhwwxwxxxxxuvwggwwgvvfwggwvfwwgwwxxvvwwxgwvwvwWxwvgxhxxxwwwwwgwvwggvfwvWwvvwgwwxxwxwwwwxxwhwwgwvxwxhhhwggxwxfwVfwwvwwwgwwWwwwvxxwwfxvuwwwwxwwwwxwwxxwxxxxwwxvgwgvwwwwgwgvwwwwxgwwwwxwwhxwwxxwwgxxxvxxwwwxevwwfuwvfvwvgggwgxwxxgxwwxgwxvxyxxxwgwvvwwxvwwwvwxwxxwhwxhxwwwxwxhwxxwxxwxvwgxuWwvgwwwwvxwwwwxwfwxwwggwgwwhxwwxvxhvfwwvvwwhwvvwwwwwxwwvwwwwxxxxxwwxxwwgxwxxgwfwvvwwwxwwxgwxxhwxxxxhxxwxwxxxhxxxvwxxxxxhxwwxwwfwwgwxhwhxvwvwhxwhxwxxxwxhxwvwxxxxxhwvwwwuwwxwwhxxvvwwwwwwwxxxgwwwxwwwwgwwxwxxwwfwhwwxwwvwxvhxwxwxxwwxxxxvvhwwwwxwxwwwvgxxwxxgwwwwwwgWwxxwwgwxxwwwxxxggwgwgxgwwgwwggvwxxfwwxxwvgwwwxwfwwxwwwxxvxxxgfvwwgvghvwWwwwvxgwxwgwvwwwwwwwwwxxfVwfvwgwwxgwxvvwgvwxwgvwxvwwxxwxwgxwgxvwwwxfwwwgggxwwwfxxxwwwWwgwvxhwwwwgwxwxxwwxwhxvwwwgwvwgwwwwxgwwwwhxwhwxwxhgwwxwxwxxwhxwxwxxxwwhxwxfgvwwwwfwfwxvgwwxwxwxxxfwwgwvwhxwxvvxxwxxwfwvwgwwvgwwwfwwwwwxwxwxwwwxxwwwwwwwwwwwxwwwwwwwvwwwgwwvgwwwxwwxxwxxxwwgxhwxxwwwxxxxxxxxxxxxggwvwfwfwfwwxxgwwwxxxxxxwwxwwwxvwwvwwWvfwfwxwgwxwwvwwxwxwwxxwwxxwxxwxwxwxwxxwxfvvxwgvwxwwwwgwxxxxxwxxxxxxxwxxxwgwWvfwgwvxwxgwhwhxwvxwxwwwxxxwxxwwxxxxxxgwwxgwwwxwhwwxwxxxxhxwxxwxwxwwxxwxxwWfgwvwxghwwwxvvxxwxxwxwxxxxwxxwwwvwwxwwwwwhwxwwwxwwwxewwwwwgwwvwwwxwwggwwwgvwfwwvxfuwgwgvfxwwxfwwWuewvgwgwvgewwgufxvwwwwvwgvwwwwgwwwxfwwwxvxxwwxvwwwwwwwwwwfwWwwvxwvwwwwwwxwwxxxxwvwwuuwwwvxwwwuuguxhwwvwwwvwwwwvwgxvxwxxxgxxxxwxxxtvwwWvwgwwwwgfguwvwfwwxwxxvwxewfuwxxgwwxXwgwxxwxxhgwvuwvwfvwwwwwvgxgwxgwwxwwxwufWwGwwfxwxwxxWwxxwwwxwwwvwwvvwwgwvxwvvxvxwwxvvwwwwggvwxgwxwwvwwwwwwwxwvvgwgwggwwwwwhwwwgwwwxwwwxvwwwhwwVwxxwhwxXvgwwwxwhvvwwwfVwwwwwVgwwwwwwwxfvfgwxvwwhxhxhhhwgwwewwxwwxvvwwhwxxxwwgxwwvhhxvxxfxxxwxwgvwwwwvwwwwwwvxvwhxwxgwuvgvgvwwxxvwwxxxxwxfxxvvwwwgwwwwxwwwwwwxxwwxxwxwxwwwxwwxwxwwfVwwwwxxfxwwwXxxWxgwwwwxxxxwxhwhhxxwxwvvwfwWwxXxgxwwxyxwxhwwwgvhhwhgwxwxwwxxiwxwxxxwxwwwwvvwwxxxwwwvwxvwwwxxfwwwwvwxxxwwwxgwxhwwwhxvwwwwwwxwwvwxwxvxxgxxxxuwvfwgvvwVwvwwwwxwwvwwwwfvwvwwwwwwxfwwvwvgwgwwgwwwWvgvvguwvgwwgwwwWxwvvvwxxgguvwfwwxwwwgwwxgwwwwwxxvxhxxewwvvgwwvxxvuvwwwwwwwwwwwvwwfxwxwwvwwhwwxxgvwgvwxuvwhwwvgvgwwwwwwguvwwfvvwwvxwwwwwvwwwwxwwwevvvwwwgfwwwwwfwwwvwwwwgxfvwwvvfvggwVfwwwwwggwwfwwxxhgwwvgwwwwwxwwwvWgwwwwhwwgwhvfvwvwwwxWwwvhwwWvxvwgxwwxxxwegwwwwvvvwwgevwfvwvwwxwwgvwwwuwwxwxxwfwvwwxgxxvwwwgwxwwxgwvvwwwgwwggwxwwwxgwwxxwxwwwgwwwwvwxxfwvwvfgwxwxVvwwvwwwxhegvvgwxwwggwxwwwwxxxwgvgwgxvwwxwvwwwwxfgwxwxxxwwwgxhxwwxxwvvxvwwwvxxwwgffuvxxwxwvwvwwvwwwwwxwxvwwwwwwvxwuwugvffwwwwwgwwvwwwxvwwwwwwxvxwwwwwwwwxwwwggwwwwwwxwggfxxwwxxwwwgwwxwxhhwvwvhxxwxxxxfwwwwwwwxxxxhvxhhvxwwwxwwwgwhxvvwxwhwwXxwxhwxwvwgwwwwwwwgvwxfgxghvwhwvwwwwxxxwwwhxvwwwwxxxwxvwvwwwvxxwwwwwwwfxwxxwxuwwwuwhwwwvwwwgvvwgWggxgvwwvwwwwxvxwvfwgwxfwwwwxxvwwxhwgxwgewgwgwgfwwwgwwwwgwvvwwggwWggwwwwwvwvwgwwwxwxxgwhxwwxVvxuwwwwfwuwwwvgvxfvwwwwgwwgggwvxwuwvwwwwxvxxwhhwwvgggvvwffwgdgvfffgwvgwWwhgfwwwwwuwwwwxwwvxxwxwxwxxvvwwwwwwwfvwWxwvwwxgfwwwgvwvgxwwguwwwfwfwwwxxVwwgwwgwwxhxxxgwwwwvwwwwwgvwgwgwxvwhXwwxwggggwwvxwhWvxwXwxxgwxhgWhwxxxxhxufwgwwwfuwwwWfwwegwgvxxxwwxwvwwvdgvfvxwwwwwwwhggwwgwwwxfgfwguWfwxwwwwwugwwwgwvxgxwgvwxwwwhvwvxuwgwwwxXxgwwvgwvwwxwwwwwgvxwwwwuwwWvwffwgwvxxvwvvwwxwwxwwxXxwwgwgwwwwgxhwwwwwwhvxxwxwwxvhgxwwwwxhwxwxgwgwwwxwvwwxwwxfgwwwwHvvxggvgxvxwwwvxxxwwxWWwxwxvwvwvvwwwfvxgwxwxwhwvwxxgwwwwwxwxwwuwwwxxhgwgxwgwwwwgwwwfwxfwxwwhwwxvhwhwfwwxxwxgwxwxxwwvxxxwxxhvwwgwxuwwxwwxxwxwwxXxxhwxxxhvwwxwhxWwvwhxhwgwwwwxxwwwxwwwwwwxwwggvxxgxwxgwxwwwwwwxxvgxxwxwwxxwvwwwvxhgwgxxwvxvgwxgxwwwwfwvwwxxwxwvwwxwvwwgvwwwvvvgwwwwxwwwxwwxwxwwwwwwwwwwwwwwwwwwxffvwgwvwxxhwfwgxxxwxwxggvwwwwxwxwwwgwwxwwwwwwwwwwwwwwwwwxwvgwwwwxxwwwwxvwwvwgwfvwgvwwwwfwwwwVufwgxwwwwwxgwwwwvwwxwxwwvwwwfvfwfvwxwxggwwxxwwggvwwwwvxwxxwwwwhxwxxxgwwwwwggwggxxwwgwvwxwxxwwwfggwwwwgxwwwxwwwgxxwxxyvwwvwvwfvxwxggwwwxwfwwwwefuwwwwwwxxwwwxwgwwgwwwxvvwwwwwwwvvwxwxvxgwwwfwxhwwwgvxwwwfwwwwxwwwwfwxwwwwfwwwwwxwxwwwwxxwxxxwwwxxwwxxwwgwwwwxxxxwwwxwwwxxwxwwVewfvwwxxwwxfvwgvxwxxxwwggwvxwwgwxxxwxwwxfvfxwxwxwxxwxwvwxwwxwwwxwwwwvxwvvwwwwvwxxwwwvwwwxxwwxxwxxxwwwxxxxxxxwwfwwwxwwxxxxwwxxwxxxxxwwxxwwwxwxxwwffvvwwwxxxwwwxwwxwwxwwxwwgwxwwvhwwxxwvgxxwwgvwwgvwwgwgxwwwwwwxxwwwxvwwwwfwwvwwwwxwwwvwwwwwwwwwwvwwwwwwvwwwwwwwxwwwxfwgxgvegwgwgwwxwgvwwwwwwwwwwwggvgwfggwuvgwwuwhwwwgfgwwvxvwxwwwwxxwwwvvxxxwxwxwwwwwwwxwwwwhxwxxxwwwwegVwxwwgvhvvggwgvwgwxvvgwxwwwvwgvvXxwvWwegwvxwwxfgwwgvwwwvwwwwgVggwwwwvwwwvwgvwvwwwxWgvwwhgxfggwgvfwwwWhgxwhxwwwwxwwwwhwwWwwxxwwxhwwWwhhfwwwxwWhxwxxgxhwWwXXwxxxvxwwwwwggvvxwxxwvxVVgwwgvwwgvhggvxwwxwxuwggXwxxwwggVwggxwxgwwwwwwgxwwgWwwwxgwggwwWgwxwwwwxgghvwxxwxvhggxxxxxwwwwwuwwxwwgwuwwxwwvwxwxxxxwwwwwwwxxwwwxxxxxxxwwwgwgwvgwfvwvxwxxwWhxwxxxuwwwxwwwwwxhxvwxwgwwwwwwxwwgwwgwwwxwwgwwwwwxwwwwxwwwhxxwxxwwwxwwwxvwwvwxhwwxwfwefwwxwxxwhwxvwwwxxwxwwwgwxggwxxwxvgwwxuwhgfwxxxWxwwwxwxwxwxxxwxwxxhgxxxxwwwhwghwwxwxxwhxwgwXXfwxxwxwwxxwxhxwwhxxxxwgwxfwwxxhxwxwwgxVwfwxwwxxwxhxxxwwxwxgwxxwxxxgwwwvwwwxxxxwwwxxxwwxwuxwwxfwvwgwxwXxwvvwwwwwwhhwxwxxwxwxfxwxwxywwxHwwvwwfwwXvgwwhwgvfwvwxwwxwwwxwwwxgvwwxxwxgxwfwwwfgwfwwwvgvxwxwwfvvwxwwxywxxxwwwvwgwwguwwgwfgwxgwdwwfwwwwvvwwxxvxhxxxvvwxxwxwwwxwwxwXvgwwfwgwfgHwwvwwhvwwxwwwxwwgwwwwxgwxwxwxgxxwXxwwhwgwwwxgwwwhvxXwvwfwwwxwwhwhxwwxxxxwwxhwxvvwvfwvvdwwfwwxwvwuwwwwwwgwvvwxvxhwwwwxxxwxxxgxwwwwwwxwwgvxwwwwwwwwwwwxvwwxxxgxxwwwxxvgwwwwwwhhwxwwwxvvwxwwfwwgwvvwwxgvwfvvwxwxXwxwwxwwxwwwxxgwwxvwxxxgwhxghxwxwhwwxxwwfvvvxhwwwwhvxhxxwfvvxghYwxwvhwwwxxwwwwvwwxgwxxxxvwxgwhxwwwwwwwxxwwxwxxgxhwwwxwxvwwwvwxxwxwxxwxxxvwxvhxxhxwxwhwwfwxxxywxwxxxwxxwxgwwXxwwwwhwwxwhhwwwxwxwxgwxxxwwwwxgwxhwxxgwwwxxxwwxwhwwxvwxwxyxwwwwxwxxwxxwwwwhwwwwvwhwwwwxvfwwwwwfxfwvwwgwxwxwxvwwwxwwxwwwwwxfwvwgfuvhwvfvwwwwwwwwwwvfvwwwggvwxvwwxwxxfwvffgwwgwwwwxxgwwxwxwxwvwwwwwxwwwxvwwwUuefwwwxvwfvevuwwvwwwxwwwgwwxwwvvwxwxwwwwwwfwvvWgevewwfwfvwwwwwfwwwwxxggvwwvhfvwwwxxwwwwwwxwxxxgwgwfgffwvghwgwwwwwwwhwvxhxvwWwvgvvxwxhwxgxxxxxxxghfffwdVdvwvwvwvwefuwwgwvwwwwwgwgwvwwxwwwvxwxwgxwvvwxvggwfguwvwwgwfgwwwxwxwwwwwvwgvhvwwwvugvwvxwxwxwwxxwwwewvgwvvwvwwwxwvwxwxxxwhxggfvvvggwwwxgwwwwxwvxwwwwxwwxxxxweVgfvvwgwvwwhwhwwxwhgxxwwvwwghwwwwwwwxxxxwxvvvwwhvxxwwxvwxwwwwxwvwwwvwwwxwxwxwfgvwffvwxvvwhwgwxwwxwwwxxgxxxwxxwwxwwwwwgwvwwwxxvwwgwwhxwxxwxxxwwwwhxggwxhxxxxxxfvvxwgvgvxwwxuwwwwwwwhwwgvwwwwxwwwwwwwwwwgvvxxwwgvxxxxwwwxwxwwwwwwxvwwwfwwwvwwvvxxwwwvwxwwxVgvwwwwwggwwxwwggvwgwwxwwxxfwwvwwuvgwvwvwvwwvwwwwwwwxVgwwfwwwwvwwwwwhhwvxxxvvuvwgvwvxvgwxgwugwwwwwwgwgxwxwxgvxxwVgvfwfgwgwwgfvwvwwxwvwgwwwwxxvgwwwwwwxwxvwwwwgwgwgvwwgggwwwwwVwggwwvwwwwwwgxwwhwfwwwwwwgxxxxwwfwvwfxwwwwwwwggwwwwgwwxxxvgwvwgxwwxwwxhgwgvwXwXwwhxgxxggfvwwvwVwwgxxgvgwwwwwvxwwwwWvwwxxwwxxVhwwwwwwwwVvwwfvgwwvxvwwvVwggwfwwwwfgwwvwxwxwwwxwwgwgxwvvvwwfwwwxgwwxWwgwgwwwwggwgwxxxxwwwxwwxxwfwwgwwwwwvwwfwwwwwwwwwxxwfwvwwxxwwwxwwwwwxwxxxxvvwwgvwwgwwwwgfwwxxwvvwvxxwwwwxwwwxxwxxvwuwwwxxwwxuwwwwwwwwxwgwxxwwgxwwwwwwgxwwwxVgvghwgxxxxxwVwwgwxxxxwwwxxxxwwxxwwwwwxwwxwwhxxgfvwgxhwwxxxwwwwxwxwwwxwwxwwxvwwwxwxwxgvvvwxgxwxxxvwxwxxwwxwxwhxxxxvgwxwxwvwwwwxwxxwwfxgxwvwwwwxwxxxwvxwxfwvgfwwfggwwxhwgxwwxwwxwwhwwvwwhwgwvwhwgwhxgwwwwWgugfVvwxwfwfxwwWwgwvxwwwwhxvgxwwgwgxgvxwxxwwwxxxxxxxvfwwwggwwwggwwgvgfgwggwwxwxwwwwgwhwwwxxwwhxwvwwWgvhvwvwwxwWwfwxxwhxwxxxxxwgwfwxggwwxwwwwxwwxhxwwwwxxvwwwggFfvwwwvvvwWfFwvgwgwgvxwxgwwgwgwgxggwxxWhVwggwxgxxhxxwXwfggffgggfvWvhewwgwhxxghwvxhwWwgggwwxwgxwxwxxxxxwhxvwhxfwwgwgwFgffwwwhgfxFwfwxxhwwxwwwwvwwwxwfxwvWwhghxxxxwwwxWwgwwxhwwxwwwgwfwwxwxxgwggwwgwwwgwwwgvxwwxxxxwxwxvfwvfwvfghVwwfhggwwxxxxgxxwwwwwwwwwwxwxwxxxxxxxxxvwvwwwwgxwwgwxwxwwwwwxhwwxxxgwxxxwwxxwxxhgxxvWfwvwgwfwfgfwfwgwvxxfxxxwgwwggwwwwhxwxhwxxwghwwxwfgwvwgwgwvxfgggwgxvwxwgwxwwxxxhxxxwwxxxxxhxxxvxwwggwgvfwhwwxwvxwvfvxwgwvwxwgwwwxwxwxxxwwwwxxxxxxwxxwwwxwvggwvxwwgwhxxxxxxxxxxwwxwxxxggxxxwwxxwXwhxwgwvvhwwvwwxxwwxvxhxwhwgxgxxwxwxwxxwxxxxwxwwxwxwwwxwxxxxxxxxwwwxwxxxxxxxwxxwgxxvwwvxxwwxgwwgwwwwwwwwvwxwwvwxwwwwwwWffwgwvwwwwvxgwwwvvwwxxxuvwwwwwhwxwwxggwxggxgxxxxfwwwwwwwwwwwwwwwxwwwxwfwxwwxwwxxxxvwwwwgwvxwgwwggwgwxwvwvvxvwvwwxxxwwxwgwxhwuffwgwwwwxwwggwwvvxwvwxuwgwvwgxwxxxwwwgvgwwxxxhgvvwxwgxxwwxwwxvxxwxxxxxwfwwfWggwxWvxgxxfxwxxvwwwwgwwvwwwvgwvgxwgwvvwxwxvvgwwwxwwwwwwfwwgwxxwxxwwvwwwxxfwxxwxwwwxwwwxxwvwwwwxwwwvwxwwwwwwwvxwgwwxywwwwwwwxwwwwwwxwwwvwwgwvwvwwxxxwwwvwwxwvwvxxxxxxwwwwxwwwwwwwxwwxwxxwxwwhwxxggwvvwwwvvwwwgwxxxxwwwwwxwvxxwwxwwwwwwxxxwwwvgwgwwwvwwxwwwxwwxxvwwxgxxgxxxwxxwwxxxxxwxxwxxwwhWxwxxwuxwywwxxwwwvvwxwxwgwvwwxwwwxwxwwxxxxwwxwwwxxwxxxwwwxxwwwwxxwwwwgxgvxwxxwvtwwhwwwwggwwvgwwwwhvgwvgwfwwwwvvwfefwwxwwffVwwwwwwwwwxwvxwgffwvgwvwvwWwwwwwwwwwwwwvfVvfUfgvwfwwwwwwxgwvwwwxxxwfwwwfefwwxvwwffVwwwwwgwwvgxvwwvvxUvvxwwgvvffhwwwwwwvfVvVfvVvwwwwgwwwwwgvwxwwxfxwfwSvgUvwhwwwuhwvwgvhxvwwwxvwWwwwvgwwwxgffwwwwgvwwwwwwvefvwwwgwwwxffUvggwwfwwwhwxxhvgwwwwfwwwxwwwwwwyxGxwwwwwwwwwwgvwwvwwgwxgxgwgwwwwwwgxxxvefvwwwgwwxwwwevfewvwvwwgxfwfwxuhwvxwhxxhxSvgUggwgwwwxvwxwwwwwwwvvvgxxwgvwgwvwwwwgwgwvgffgwwfvwwwwwxwwfwgvwwwwwwwwwfwvgwhfvvwvgwwvvwfvvxxGxwvwfuuwwwxwvwvgxwwxxwwwwwvgwvwvwfvwuwwwwxxxxwxwXxwwwwvwwwhggxwwwxwwwwhvxwXffxwUvvwvwhwxvwwgvwhhwwwwfwxwgXwwwwwgwwwwwwwwwwwvxvwwvwwwxwwwwvwxxhffvwxwwwwwwwwxwvwwgxgwwvgwwwfvwwXgvwwxwuwxwwxwwvwxwwwvxgxxwwwwhwhwgwwxXffwvvwwwwwvxHxxwwwwwwwwwxxxwxxvgxhwxgwwwwXffxwvWvgXffwwwwgwxwwxwxwvwwvxwgwxwhffvxwxwgwwwwgvwwwwxwwxwwwxvwwwwwhffxvwxxhffwwwwwwwwvwwwwwwvwxwwwwwgwhwwwxwvhwwwwwxwwwxxwwwwwvxwwvwgwwxxwvwxxwxxwwwxwwvxwwvwwwvgxwwwwwwvwgwwvxvxwxwwvwxxgwwwxvgwwwgwwgwwxxwwvxwwwwgwxwwwwxwxwwxxwwwwwwwwwwwwwwxwwwwwwwvwwvwgwvwwwwwwwwgvgxwxvvwgxvgxwxwwvwvwvwwgxwfwwwxvgwxxxwwwwgwxwwwwwwwxgxgwwvwxwwggwgwxvwwwwwxwwwggwxxxggvwxwgwwxwwxvwvwwxxwwgfgvwwxwwxwxvfhhwwwwwwwgvxhhwwxwgwhhwhhwxvgwwwwwwxggwwvxvxgwwxwwwgvxwwxxwgggwvxwwwwwfwwwvxvxxgwgvwwxvgwwwwwwwwwwxxhgwwwwwwggwghwxwwvwwwxxgwfwwwwvxgxwgwwwgwwwggfwwxvvgwwwxxhhwwxvgvwgxwxxwwwwhwvwwwwwxxvxxwwxxwwwwxgxwwvxxxxxxwxxvxwwwwvwwxwwxvwxxxxwwwwfwwwwxxwxwxwxwhhwwwwwwwxwwwwxxgwxwgxhwxxwxwwwwxxwwfwhwwgxwvwwgwwwvvwwwwxxggwxwwwwhxxxxxwxwwxxxwwxxxvxwxxgwxwxxxwwgxwxwwwwxgwxxxwxgwxxxxxwxwxhwhhwxwgwwhxxywwxvwwwxxwxwgwwxxxxwwxwxhxwwgxwwwwxvwxgfwwgwvwwwvwwhwwwwxxwwxwgxxxwwxxvwwfxxwwvwwwgwwxugwevwwvvwgwwfwxwwwxvxwwwwfvwfwwvwwwvwwvwwwgvwwxgwwwVvvxwwfwgwfwwwvvwwwwwvxwwwxxxxfwgewfwfgvgwwfwvvxwwwggxwwxwVwwvgWgwwwwxvxgwwwxgxwwwwwwwwxwxfwhwwxgwxvwwxxxxxewvvvewgvwwwxwwwgfwgvxwxwwvgwwwfwxwhwguxwgwwxxxwxxxuvwwvwgwWgvvwgggwxWwgwgxxgggWwvwwwwwwxxgxfwwwxwxgwwxxxhhwvwggWwwwwxhwwggwgwwwwxwwwxhwgfwvgWgvWxwwwxwwwxwxgwgwhwxwgwgwgvxWwvwwvwvvwvwhxxwxwwvWwvwwwgwwgwxwwfggwwxwxwwwxwgwwxvwgwxwwgvwxvwwwgwxgxwwxxwwwxwgwwxxxwvwvwwxwwwxwfwxgefxvwwwvgwwwgwwxxhvVvgwggwwwxgxxwwwwxxxwwvvwwggfwwxwwwwxxwwwwgwwghwhxxxxwxxwwhgxwggxffWwxvxxhwgwwxgxwwgxwxgwwvwwwwwwwxwWvwwwxwwgxxwgWwggwwfvgwwwgxhhwxwwwvhgxwxwwgwxwwwwwwwhwxwxxwxxxxgggvgwwvxgwwwgwxwwxxxxfgxvwxwxxwxwxwxxxxxhhwwxxxxfwwwhxgxxxwwwwwwwhhgxxxxxwwwgwxXwgxwwhwwxhgxxxhxxwwvvxwxgwxxwxxgfwfwxwwwwgwhwwwwwwwwwwhxxwwwvxxwxxwxwhwxgwwwwgxxhxwxwwxwxwxxwxfxwwxxwhxxwxxxxwWuwvgWvwwwxwwgwwwgxgvwgggwwwwgxwwwxgwwwwfgwvxfwhwwwwgwfwWwvggwgfwwvgwwwwwgwWewwfwwxwxwxwfwwgwwgwxxxevvgvxwwfwwxuwwwfwvwWwwwxvwwvvwwwwwhvvwvxxugwwwwuwfuwfwfvxvwwwewvguwwwwxwwgwwgwwgvxwwwxdgvfvwwvwwwwwfwgwwvwgvwwgwvwwVvwwgwwvwfwghvwWvwwwwvwwwxvwwwwgvwxgwxwhgwwwwgwwwwwwwwvwwvwXgwggvggvwvwgwhxxwXxxwuvvhWwwxxhxvvvfgfwfwfvwxxhvvvwvwvWdgvfvwfwwwwxwwxwuwwwxwwhwgvwgwvwfvuwvwwxghufuwwwggwwwwvwvwwwxwwvvwvvwhwgxwvwuvwwwwwwwwwguwwwvwgvxwffwwuwwxgxxwgwwxXgwvxwwxwwxwwwwwfwvwhvwwwwxwxfwxwfwxwvxwwxxwxgxxwwxwhwgwwwwxfwgwwvggwvwwxwHwwxxvgvvuWvxwvgwhwwxxwwwwwggwwvgwwwwxwwwwwxwvwgvwwXwxwwvxwwgwxxgwxxxwxwwvwwwwwwxvxwwgwwwwhghxxwhwwwhhxwxvgxxwwxwwgvwvwxXwwxxxuwwxhxwwwxwhwgwxwxhxxwwwxwhxhvwwWwxvwwwwvwxwwfggwgwhwwwwwwxxxxwxxvwwwWgvwwxxwwvxhvxwvxxwwfvvgwxxwwwwgvwwxwxwvwvxwxwgwwgwwwgxxwxgwwwwwxgwvVwwwxwwgwwwwxvwvgvwvxwxfwwgxfxfwuxwxxGwvwgvfgwwfwwxWwgWvwwwwxxwxvwvwwfwuhwxxVwxXwxgxxxwgwwxwwfwwwvwwwhWwwwhxwhgwxwxwwxxwwwxxxwxvwwgxvgvwxvgwgwvwxwwxvwwwwvvvxvxwwgwwwwxwwwxxwwwfwwxgwVvwvWxfgWVWwwgxvvwxwwwwvvwfwwwwwghxxwgwwwxgxwwxxxwhwvvgxghfwvxwwxxWvwwgwgwwwwwxwwWWfwWxwxxwxwxwwGwwfxxwwxxxwwwwgwWuxwxvhwwvWwuwgxWxwxwwwwwgwwwwxvxvwxxvvwxxxwxxggvwhxxwxvwwxwwgwhgwgwwwwwwwwvwwwhXgwxwwwVwwgxwwxwgwvwVxvwwxwxwxwefwwwwwwwwxgfwhxvwxhfwghhxxhhwweffxwwwxxxwwhwwxXxxWvwwwwwxhxxxxwxxxwhhxxxxxwwgvwwxvxwwxwxwwwgwghwwwwgWgggwhxwwxxxwfgxgwxxhxgxgwwwhwxwvwxwwwwggwxxwgxwxxfxwwxxwwxwxxwwgxwxvgwwgwvwxwxVwwxhwxwxxxxwwxgxxhwxwgwhfxxxxgxgwvxxwxwwxxwfwxWxyxxxXvhwwxwgwxxxghwxwghhwiwwxwwxgwwwwwxwxwxxxwgxwwxwxwwwwwxxxwxxwwxwxwwxxwxxwwxhxwwwwxhgxwwwxxwwwwgwxxxxxxxxwgxvxxtwghvgvfvvxfvgvvvvwgwwwwxwwwvgvfwwwgxvwxvvwwvwuVwwvvwwwwxxuugwwwwvvwvvgwwvwvfgewewggwvwwwwxgwxxxwwwxvwwwwwwxwxxxwwwwxwhwwwxvxwwxxwwwwwxxweufgvfvwvvwuvvvwwgvwxhwfvwwwwwuwwwwwvwgwwxxvwxwvwwgxfwvxwgwxwxwwxwwwvwxxwwwXwwWxwxwxxxxxhgxwfgfvwwwwwgxwwwwwfxwxwxwwwwwxwwwxwwghwhgxwwwwwxgxxxwwxvwxwwwghxwxxxxwxwtuvfWeUvggfwgwvwwgwwwggvwvwwwxgwgwwwwwwxwxxxgwwwwwxuvwwwwvvwwwxxwwwwxwwgeUwfGgewwwwwghvgvxxxxxwwwwfxwxxxxxxwwwwvxxxgwxhgwxwgvxxhxxwxxhwxxwwxwxwxxxffUveeewVwggwwgwgvwwwwxvvgwwxwvvwxxxwxxwxwhwxxxxVwwwwwwxwwxwgfxxxxwxxwxwxwwwgwvwwwwgwwwgwwwxxwxwgwxwgwvxwxxxwxwwvxwxwwwxwwwxxxwwxwwxwxxxxwggwwwgwvwvvwvvvgxwgwwvwvvuxwgvvxwwwwwxvvgwvuvwvwwwfwfvwwewwwgwwwwfvxvxuvvwvwfwwwwwggvvugvwwgwxwvgxuwwwvxgwwvwvwvwwvwwgwwvgxwwxxvwwwwwxxxwxeuvWwewvfwwvwvffvvxefwwwwgvvvwwwxwVwvwvxwxxwfwfwwgwvwwvgxggxwxwWwxwgwwwxwvwwhgwvxxxfwwvwvfvwfgwwwwwwxfwvwwgxwwwwvwxwgxwwhwvwvwwgwwwxwgvvvxwxxxwvwwwxwxxxxxxwwxwuuuUwwgwgtevwvWvwwwWwwwvvwgvwwvwgxwwwxxwxxxvwggwwgvwvwwvwwvwwwwgwvwwxwxxgwxhwedvgxvUWgUwwuwgvvwwxwvggwwwwwwwwxxwvwxhwwwxxxwxxvvvwwvwwwvgvWwgwwwxVxxxxwxhxwwxwxxxevfvwvwwvuvwwwhffffwwwvvwwwgwgwxwxxwwwwwwwvwwxwxgvwvgwwvwwwvgwwwwwvwwfxgwxwxwxxxxfxxwgwvfwhvwvwwwgewwfwwvwwxwwwwwwwxxxwwwxxxxxwwxwvwwxxxxwwghwfxwwwxwwwxxxwwxwxegVwWvvwgwwfvvwwxwwwgggwwwgvgwwxwwwwwhvwwwwvxwxgwxegfwwwgvwgwxxwwfwwxvwvwwfwwwwwwwwxhwxxxwwwggwwvwwwwwwwvwvgwwwgfvwvxxwxwxxwwwwxxxhxwxxvgvwvwfwwwwwxwgxxwxwxwwwwwxwxwwVvugvgvwvWvevvwwggwwggggwfxwgwwwwgwxvfxwvWwwwWwwgwgxwxgwwwwwxxwvvxwwwwwwWWxwwwhwwvwwwgwxxvvxxhwgwxhvvxwwwvwvgwvfvfhfvvfvwwgwgwwwwwxxwxwxwxwxxxxxwxxxxgwwwwwwwvgvwwgwvxxggxgwwhgwwwvxxwxwxwxwgvwgvgufuwvufvwWvxwwwwgwvgwhwwwxwwwwwwwxgvvxxxwxxxwwggvwvwwgvwgwgvvwwwwwxwxxgxxfxxgxwxwxwwfuwwwfwvwvwuwWgwvwwxwwwxxgwwxxxwwwxwwxxxxxhxvwwwwwwwgwfwwwwxhwXxfxxwwxxxxxwwxwxuggwgfvwVvugvwfwvwxgxwgvhwwwvgxwggxwwwwwgwwwwwxwxxxxgwwxxgwvxvwwvwxwvwwwgwwxxwwwwwwwwwwwvxwwxxwxxxxwxxfvuwwgwvvwgvuwwgwwxfxfxwxxwwxxwwwxwwxwwxxwwxwxxxwwvwwxxwvwwwwwwgwgwxxxxxxwwxwxxxxtfWwguwfgvwwvuwxfvvvwvwgwwwguwvvwwwwwvwfvwwxwuvwwfwvvgfwvvuwwffwwwxhvwxwwewvtvwvuvwwwvwwwwwxfvvwvgvwwgwxgWvvwgwwwxxtvvwwwxwxxVwvxwxgwvfvwfvwvwwwxwwwwxwxgffwwwwxwxwwwxwwvdeVwVwwvtwvvwvUfvwwwxvvvwvweffvewgwgvxwwevvwwwgvwwwxwvvevwwwwwwvghxwwvwvwggwvgwwWwvuxgvwwwxwgfwwxwgxwxvefuffgwgwwwffwvwwvwwxwwwvvwwwwvwwwhwwxvwvwwvwwwwxwwwwwgwvxvwWgxvwwwwwwxwvwxwgwwgwwvgwxwutvfvwfvvwggwvwfefugwfwvwxvWfwwwvxwwwxxgfwwwwxwxvwfwfuvwwwwwwwwwxwwfvwfgvwwwxvxwwxxwxwwwveewwfwgwwgwxxfVvdgwvxxwggvfxvwxxxwwwgxwvxwwxxgvvvxwwwwwwxwwxfwgwgWxwwhxwvxwgwwxgxwvffuVvwwuvftvfgwwwwwwfxggvvWvwhwwwwwfwvgwwwhwwxwxxgvvWvwwxxwwwwwwxxwvwxvwwwwhwvxwwwxwwwxwwwvfvwwwwwxxfwfxgfvwvwwwwwwwwwfxgxxwvxxxxxwvwggwwxxxxwxwxggwwwxwwxxxwxxwxgvxxwugwfwwwvWvwfvwwwgfvvvuvguwvfvwvvggwxvgguvwwVwvwggxgvgvWwfvvgvwwwvwvvwgvwvhwvWegwwwVvxuwwwwwuwvhvwwhwgwwvvfvvvwwvwxvvwvfwwvgwwxxwxvfwwwwwwvgxgwwxxwvgvfwwwwwxwvxvwwVxxwvwwxwwwxwwwwxwwxxxgwwwgwvegvfff6dwfvwwffWfufffedugvWvwvfwwgvvwfvwwfgwVfvgvgwgegwwwwwVvfwvgwgvevwwxgwffffVwWvgwfvvxwwwgwggwwwwgwgwgvgvgxWwfgxwfvvedwvwxwvgfewwfvgwwwwwvwgwwwwwwwwwwwgggwgwwwwwxwwwuwxwwwwwwwwwwwgwVggWwvxwwwwwwwgwgxxhwxwfwgwwwwwwwwxguwvfvvvfvvvwgVVvffwvffuugwvvvgvwgwwwxvxfUfvwwwxgwwxvxvgvvuvwwwwfwxwwfwvgwgwgxgvwgwwwwhwwwwfwvxwwwwwxxwwwwwgwwwhgWwwhggvvwwwWvgwvvvwvwwwwwwvwgwwxxhwwvwwwvwwvxwwxwxxwgwgxwwwwxwxxwwwwwwWgwVwhvwwxwwxfFUvfevggvwwwfwwdSufvVvggfgVxwwggvwvxwwwvwvwhhwhwwwwwwgwxwwxfvwwwvwwwfvwvwWvgwgwfgwwwwwvwxwwgxvwwgxvvwfxwvwfwwvxwwwwwxwxwvfgvwfwVwxwwwwwwxwwwwxxwwwggwwwvwwwwgvwvwgwwvwxxxwxwwWvwxwwwxwwwvwwwwxxgxvgwwxvwwwwxxxvghvwwfwwvfvvwfvwfwwwwgwvfvwgwwwwwVwvxwvvwwwwvwgwxwxvwvwwvvwvgvwwwwwwwwwvfxwvwxwgwwwwvwwgfxgwvwwwgxwwhwwvvxWfvvwwwxvwfwwxwVvgwxwwwwxgwwwxxxwwgvwfwxwfvxwxwwwhwhwwwxxgxxgwwwwxxhhwwwwvvwvgWffwvwvgffgggwfVfwgffwvgfgwwwwwgwwvvwwgwhwwgfgwwvwgxvwgwwwwffvwfwwxwfwwwvfgfgvwvhwfwwwwgwwwvgwwwwhvgwwxwvfvwwvwvwwxxgfwvxwwwwwwxwwwwwwwxwwxwgwxxhgwwwwhwfvxxxvwwxwwwwwfxwvwgvgwxxwwxgwwxvwxgwxxwwwxgvffvwvxfwvwwwfwwfgvgvvvwwwwxvwgwwwwxVggwwxwwxwwwvvgwhwvwwwwwwggvwwwxwwwfwxwgvwwwwxwwwwwxxxwwwgwwwwwvwgfxwxfwgwhwwwxgwwwwxwwxggxwwwwwhwxxwgwwwwwvwxgwxwwxhwwwhhxxwwgwxxwwxxwxwwxxxVgwwfwvvgvvwwvwVfgffvwgwgwvwwwwwwwxxwwxxwxwwgwgvwgwwvwwvwvwwwvxwwvwwwgwwhhxvvwwwxwvvwxxwxxwwwwwxwgxwwxwwwvwxwvxwgwwvwwxwwwwgwwwvxwwxxxxhwxwxxxxgwhvxxxxwwvwwwfwwwxwwwwhxhxxxwxxxefUwUwvwEvfgtgwfvxvgvwfvwvwwVvegvwfugwfuguwwvwfvxwxwUvegTdwvfuwvVewgwgvvvwxwugwvvvvefvgwfgxxxxwgwwUvvwugvvwwgwvuwwwwwwwwwwwwuwvgwfwfwwwwVwwvwwxxxuxvevevwwwxwxfvvwxxggwgwfwwwVwVxwxxfxwwwwxxwwwwwwUvvugUdggfvwegVvwwVwUwwwewuwfwgvfgvwgwwxvwwfwxwfvwfwvwwwwxfgvwwwwwgwvwxgwwwwvwwwxwwxewwxwVvvwwgvwvxvvwwxxggvwwwwwgvuwwVwvwwwwfwfggwfgwwfwwwwgvwxwwxwxwwwgwwwxxxgwwwwwgwxxwwfvvwvwwwxwwvxwwgwxwwxxwwwxEfuvugUwuwvwfwwvgfwwwvUvwgvvvwfvvgwwwwvxgvxgwwxxwxwefvfwgwUvvwwwwwwwvwwwwwxwwwwfvvwwwwgwxvwwxwwgwxxwxwwxuwwwevtvwwxgxwxVvuwwgwwwxxxxwwgwgwxwwgwgwfwvwxwxwvgwvwwgTuvwfvgvwxwwwwwwwxwwggfxxwwxvhffgvggwwwxvxhdfVwfvfgVwvwxfwewVwwwvwvvwvwwwxgvwwvwwxwxwxwwwwxwwxwwxwwwvwwwgwwwwfxgwwwwvwwwwwwwwwxwvxwwwwwwxwwwxwwwfwvwvwewwxxwvgvwvvwxwwwxxwwwxwwxwxwxwwxwxvgewwwxwwxwvwwwgvwxwxwxxxxwxwwwwxwwxwwvwwwvwgvgwgvvfvvwwwwfgfegvvvgwwvvwvvwwvgevwgvwxgvwwxwfgwwvvwwxwWevwwxxvvvwwwfwggvwvwwwgwxwfvgxvfwwwwgxwwwgwwgwvwwvvWvvwvWvuwwwgwwwvwxwxwgWufwvwgfwvgxwgwwwwwwxwwgvwwxwvwxxxwvfwwwgwfwguvgvwwwfwwxeuvwgvwfvgvvvwgwvwxxfwwwgvvgwwwvwwxwwgvwhxxevvwwwwwwgvhgvwwwxwewgwvvxwxxgfvwxXhegwxgwgvefwwgvwvvwxgvgwwgfvwxwwwxxwxxxwwxwxvwvhgwgxwxxxwwwwhhfxwxwwxxxxxxwwxxxwwvwvwvwwxwfVvwvfvvwwwxxwxwwwwwxvwwxxxwwxwvWvwfwwgxufwgxwwfwwvxxxxwwwwwxxxxwwxwwwwwwvwwwvwxvvwwwhwwvxwwwvwvwxxwxwwwvwxvwwvwxvxwwwxwwgvxxwxwggwwxwwwxxxwwvwfvvvvwwwwwefwwxvgWvgwwwgvxwxwwwxxwwwwwwxwxvwwhxfvwwwxgvwghxvwwwxwxwwxwwwxxwxxwxggxxwxwwgwxxwgwwxwxxxwwxxwxhwxxwxwwxwxxxxwxxwxwwwwxwwxwxvwxufFwwvwVvfxvgwxVvfwwwxeefgwxfvwwwfvxwxvggxwxgwfwvgfuwgfvwdvfewwwwvwvxwxvvwvwvwgvwgxwwfwwwuvwhwwwuwwwwxWwgwwfvwwwwgffxxgfwggxxwwwwvwwxxxfwwgxwuwxxgwfxwwwvwfwwxwvwggxwwwwwwwvwwwwvwwwhxwxwwxwwwwgguggwwxefvgvwvfFewvwwgdffwvwwwwVggwxwwvWgwwfwVxgxxwfwwgwwwvwvffwwhfwvwvwvwvgwwwhwvvwwwwvwgWgxwgvwwxwwvfwwxwuwwwxwwvfwwgwgwvwxwVuvwwwgwgwwwwwwwfvxwxwhwvwwwhhwhxvwvvwwwvwgwwxgvewfwwhhwwgwwvvwxwxwwfxxvwgugxgxxxwwvwwwvgggwvwgxgvwfgfvwwwvtvvwwgvwwvxwgxxggfggwwxwvwfwWwwgwvxwwWvfwwwwvwwxwwwwwfwxxgwwxwwxxgxxwwfwgwwgwgvwvwvgevgwwwwfgwwxwvgxhwwxwwwwwwwxxxhfxwxwxwfwfvvwxwvwwwgwwwwxxwwvwwxxxxgxvggwwwxwwwvWfggvwgVwvwFfffwwvxugvgwvvgwwxwxwxxwwwwxgwwwwwwwxgvwvwxuwwvwvwwwwggvxgvgxwxwxxwwwxvxwwwfgvgwwwwwvgwfgvwwWwwgvfwvwwvfwxxxxwgxvwwwxxwxwxxfgwwwwwwwwwwxxgwgwwwwwxwwwwwxxgxxwwxxwtvgwfvfgvfwvwwwxwwxwvwwfwwwvwwvgxwgwwwwxwwwvwwfvwwvwuwwwgvwwwwwvfvwwxwwgwxwfvvwuwwwgwwwgwwwwwxxwfvwfwvvxwwwxwwwgvwvwvwwwwwwxgwxxwxwwwwxwwwfufgfwvwfwfvxguwwwwxwvwxwvvfwvvwwwwxgvwwwxwwwwwfwwvxwxwwwwwwvvhxxxxwwxxwwwwwgvwxwxwwxxwhwwxxhwvvvwwwgwwxwfwvxgwgwxxwwwwwwwwwwxxwwgwxwgwwxwwwxxxwwwwxgwwvxwxwxwwxhwwwxweeffvfuwvvwgwwwwwxwvwwgxgefgwwwggwwxwvxwxvgwvwwwxwwwxxwwwwxxxwxxxxxfVefwvwwggwwxxwwvwwwxxwxxwwfVfexwwgxwfvwwxgxwwvgvwwxVwwxgwwwxwxxxgwhwwwwwggxwxwwxwxwxxxeffvfwwfgxwwxwvwwvwwwxwwwwgfuvwvwwxwxxgwwxwxgxwxfwwwwhwxxwwwxxxxwvxwwxwxwwxwfgwwwwwxwwxxwwwvxwwwxvhxwvgwwwxxxwwwWwvwxwwwwxfvwxwxwhwxxwwwxwwxwxgxxxxxxwxxxufvvwgVxuwvwwwgxwgwwwwWwwvwwwvvwwwgggwuwwxxwgwwwwuwwwfwwwwwwwwxvwwwwwwwwgwwwwxxxgwuuwvvwwvfwuxwwxwwxwxwggwwwgxwwwuwxhxxwxgwwvwwwgwwwxwvxwxwwxwxwwuwwwwwxwxxwxxwxxwxxwwwwvgggvvvWvwfwwwwWwwwwgvvgwwWwegwwgwwvwwvwwwwwwgwwgvvwwwvvuwgwwwwgvvwxwxwwwwxxwwxwgwwwvxwgwwwuwvwWwwwxhwuwwwxwwvwwwwvgwwwxwwwwwwvwwxwxwwwwxxxwxwwxwwxwwwwxwwwggvwwwwwxwxvxWxvxwxxwwxwwxwwwxwguvguwvgvwwvvwwwwvwwgvwwgwwwgwwwvwvWfwxwwwxwxfwxwxxwwvvvwgvwvwwvwuwwxwxwxwwwwwxxwxwxxwxxxwxwfwwwfwwvggWwwwwwvwWwxgwwxxgwwvwwvwxxxxwwxxxwxwwwwgwwwvvxwgvxwwxwxxwxwxxwxwxxxwwxxxegwwvvwfwwwwwwwvvwwhwWvwwvuwWvwwxwwwwxgxwwwwwwhxgwwwgwvwvxvwwvxwwwvwwxwxwwxwgwxxwwwwxwwgwwwwwxwwvwvwWhwxxwwwxwxwwxwwxxxvxxwwwuvgwwxxxwwwxxwxwwwwxwxxwuxwgWgfvggfwWggwwgwwwwvxxvwggwfgwxwwvwwfwwwwwgxwwvvvgewuXwwwwgwguwhxwwxwwwwwxwwxvwxwhwwhwWwwgvggXwwwwxwvxwwxvwwwwwxxywgvgwvvvxwxwwwxxwxgvvwwxwwwwxxxvfxwWvwuvwwxfuevwgwwgfxvvggwwwwgwwwwgwxwwwvgvwxxwwwgxwxxhwwfwwwwwwwwfwwwxxvgwxwwwwxwxxxxwxxghxegvwwwwwvvgvwwxxwvwxwwvvwwwwwwxxwwwxxwxvxhxxxxxwwwxwwxwwxfxxxwfwwxgwvgfffevwwwgwwwwwgxwwvwxgvvwxwwwwwxxxxxfwfwwvfvwwwvgvwwxwwwwwvxwxgwwwxxxwxxywwwwwxxggwxfwvwfvvwwwgwxwwwxxxwfwwwvxwxxxvxxxxxxwwxwwwfwgVxxxhwwwxfwxxwxxxxxvwwvwvvuvwwwgwgwhwggwhwxxxgvwwxWxxwwhxxxxxwwxxwxvwgxwxxwxxwwwxxxxvwxwwwwwxxwwxwwxxwxxxwxwwgwxwwxxxxwxxxxxhwwwwxwwxvwvhwxxwfxxwxwwfVuwwgfwvfwvwvwvwgwwwwevwggwwfgUvwwwwuxwevvVwwfwxxxwvfwfTwgwwfuwwfwwwwwwwewwggwvvvwwwvwwgwfwxwwwwwwxxgfwwxfefggwvwwvffwxwwwfgvvfwtxwxwwwvwwwwwwfwgvvuwwwxvvuvfwwxwxwwwvvgfxwwgwwwxvwweuwfvfwxfVwgvvwfVwvwwguvwwwvWfgfuUtvgfwufvfwgvwvwvvewwxgggwfvwvwwvvvwwVvwxwxgwwwvxhxTffwgwvwwwwwwwwwwwxwxffwfuwwfvwxxvufvwvwfwwwfwfgewwwxwxxxwwwwwwwwwwgvvwfwgwxwvgvwxwxUxwxwwwwwwwgwxxwxxxwwgwxxgwwVgwvxfvwwgwvvwwwxxxxgfvfvuvxwwwxxxwxhxwwgfuwvwwvfwwwxvwxhxxvwwwwvxexwwvxwxxxwwwevvwgxwwwxwgwxxxgwxwxwwgggwwwwvwwhwwxxxxhwxwxxwwwfwVvwxxwxfxwwwwxwwggxxwwwxxxwxxxwgfwvfuvVvwwwwguwvvwFwxvwwxwfvwvwwwwwwxxwvxvxxxwwwwxwvvwwgwVwwwwxxwwvwxewwwvwxwvwwwxwwwxxxxxwfwxwwwwwwvwwwwghgxwwwwxxxwxwxxvhxxwxwwwwwwhxxxwvxxwgvxxxxxhwwvwwxvxxxgvxwvuwuwxuwvuwwwwuvvfefvwdfvvevvwuwUvvwfuuwxvvwwggtwguwvgwWuwwwgvwwwwwggwwwwvwwwwwwwwwxwwgxwveewwvvvwwvwwUvuwfvwwxuxvwguwvfwwwwxvwwwhvwxwgwwuvwwvwgfuwwxvwwwwxwxuvwwxwwxxxwwhxxxwxxwvfgwwuwfvvvwfvfgevvgwwgfvvgevwvvvwevvvxgvvfwvuweuvvvvgwwwfvwwxxvvwwwwvwxwwxgwfgxwvfwxvvuwwwxxwvxxwxwxgwvvvwvwxuwwfvwwwwwxvwwgwxwwwwxxwxxfwxwwvxwwxxwhxvwwwwxxxwxwwwwxxxvvwffwevxVvwwfgvefvgvvwvhuvxfgvvwwwfwvwwvgwgwwxwvvfvvwvwgvvxwwwxgxtwwvwwwhuwWwhxgwwvwwwVvfwfvvvwwgguuwwvwwwfxhxeffvggvwwxghwvwgxWhvxhgvhxvvwxgwwwwxwxwwhhvxxvhwgxwhxwxgXxxwwwgwhwufvvuwwwWfwgwwvfvgfwtwwwwwggwvvghwwxwxwwwwxwwwwwwwxxwvwwwvwwxxxwxwwwwxhvwxvwfwxxxxwxwvwxwwgwxfvwwwxxwwggwwwwxvxxwxxxvxxwgxwgwxxwxwwxwvwwwwwwgwvxwxwwvvwtwvvwvuvwvvwfwgwgwwegwvevwwffvwdvwvewwgfwgvvWwxwwwwxwGtwgwgggwwwWwwgwgWvwvgwwfvvwfwwuvxtwwwwwvwwwvwwwwwvwvvwwwwWwwwwugvwwvwwgwwxvfwvwfvwwwvwwwhxwwgxwwwwwwwhgwwwwgwvxwghgwxxvwfwvxxwfwgxxwwwxwxwwvvwvgwvgvWwwvg%dwvfwgVvwvgvvfffvfvwvtfwwuwwwUefwvwwgegwwvfggwwgvwwwwgwwvxWfvwwgvwgwwgggwhWwvgwwgwWvwgufevwgvwggwfwwxvwgtfgwvwwwUUwgwwgvvxwwwvvgWwgwwvVwwwwxvfvwwwxwwwhwwwwvvwwgwgvwwvwwgwwgxwwgwwvxWwfwwwwwwwguwwxxggwwwxwvvwxwfwwvvvvgvwgwfwvwfWvwwwwwwvgxwwFVvfevvgvvuwwxgWvvxwvxwwwxxwwwgwwwvvfvwvwwwvwwwwfwwxgwgvwvwxgwhwxwvxwwxwxxxwwwgwuwxfwwwfwvwgGwvhwgwxgvgvwvvwwxvwxgwwwgwwXvwxwxwwxxwuwvguhvwwwwhwwwxvgfgxwwwwvwwxvwgwwgxgvwwwxxwwwxwvUVwwfwwfVwwvwwfvwvwwwvwwhwwwvTTvVwwwugwhwwwxwgwGghgwgwwwwwwwwwgwgwwxuwwvwwgwfggwwwwwvwgwwgwxwwwwxgwvxxhxvvwwxugwxwwxwwwwwwwxwvgwwwwxwwvvgvvwwgwxwwgwfwxgwwwxxWvxxwfwvwxugfvwwwwwwxwwwwxwgugwwxwhwwxwwwwfwwxgvgwwwvvxuwwuvwevvwvvfwvwwwvxffgevvwwwwvVfvwwxfwvvgvfwfwvwgwwggwfwgVewwwwwvgfwwwwwwwwwgvwwgwwuvwggwwxvwxvxgvwwuvfwwvwvwwwgwwufwvwvwwvwwwwwxxgwwwwxhvxwwxwfwwewvwvwhwgxfwwvwvgwxwxwwxwvvwwxwhwxxwwxwwwwgvvevvwfgfwfgfevfwwWguvwwgfvwvgwvw6dwduuvfuvvvvwwffwwvVfwuwguwgffwgfwvwwwfvwwwwwgwvwvwwWvwwgvwvfvvwwffwvgwwwggvxwhwxwwxwfguxvWfwefwwwwwxwwdevvwUevxwwxwxwvvwwxxxxwwvxwgwggwwgwwwxxvvwvfgwxxvwwvhvxhhfwwwwwwwwxwhwgwwwgwxwxgwwwvgvvwwgvvwvUFvgvwufvuwwwvwwuwvvgwxwgvVfvvwwwwxxwxwxxxwgwwvgwvwwfwuwwvvvgxwvvxwwxwxwvwwhvxwxxwwxwxwxgvgwvvwwwvwwwgwXvwwhxwwwgWxvhwwwhwwwxwhxxwwwxfwwwvwwwvwxvxwxwwwxxvgxxgvgxxwxwwxgVxwwwxxwwxxgwxwUEwcdvewfvwgxufgwvgfguwwfxvwwggwwwwWfwwwxwwwwvwwxxxvxwxwxwvwgvggffwwvxwgguwxxwvvwwwvvwwwxwwxvgwxxwxwwwwvvwxwwwwxwwwwwwvfgxvggggwwxxwxxwwwxxxwwhwwxxxwwwwwwwwwwwgwwwwvwwwxxxvvgggwwxxxxwvgwwwxvwhwwwvvvwwwfwvgwwvwwwwwwxvvvvgvvwwwwxwwfwfwvwwwwwwwwwwwvwgvwxgxwvwwwwwwwxgwwxvxwxfwvwfwvvwwwwwwwwwwwwwxwwwxwxwxfvwwwxwxgwwwvvwvwwxwxwwgwwxwxxxwwwvwvwvwwwwgvvwwwvwwxgwvwwwwwwvwwwvwvgvwgwwxfwvwwvwwgvvwwhxwvwwvvwvwwwxwxwwwwwwwxwxwxwgxvwwxxwgvxvxgwwwxwxwwwggxwvvgwwwxwvwwwxwxxxwwwvwvwxxxwwwwwwwwwxxwxvvxwwwwwwvwwgxvwwggwwwwwwwwxwxvwwgxxwxxgvvwwwwwxgwvgvwwwvwwwwwwgwxwgfxwxgvvwwwwwxxvwwwwwwgwwxxxvwwwwgwxxxwgwxvwwwwxwwwxwxwxfwvwwgvxxxwxwwgfxxwxxwwxxxwxwxxwwwwxxwxxxwwvwwvxgxwwxxwxwxwwwxxfwfgwfvwwwvgvvwwwwxwwwvwwggvvwgwxvwwxwwwxxvwxxwwwwxwwvwhxwxwwwwwxxwwwwwxxwvwxxxxwvwwvxwwxwvwwwwggxwxxwxwxxwxwxwwxwxwvvwvxwxwxxxxxxwxuVVfuevFwvtwwgwwvwxwWfwgwwwVvwwffvggfvvwwWffwwxfvwvwwgwwwxvwvwwfwewwwwvggwwwvvwwwwgfUvwvwwfwwxwwwwwwxwxxhXwfwggvwwgwfwwwWfgwwxVwwwxwfwwuxffvwfwwwwwwwxxxwgxgxxwwggewvxgwwxwwvwxwwxwwwxvwxvwwxhwwwhhxwwxwwfvvwvwwewwfwwwvfwwwwvgewwgvfvgwggggvxfvUgtwgvFwfhwffwWxwguwwgvwvwwwfwvvvwhwgwxhwxwwwwgwVwwxwwvxwxwvvwwwxxxgxxxwwgWghxgwwvwfxwxwwwwfvgwfgwwwwwxwgvtxwwwxwgwwggwwwxvwxwwwVwxwwvxwwwwgxwvxxwwxwwvxxwxwwwxvwwgxxwhxxwwxgwwvWfwvgwwgevgwWffgwwegvwvwwvwgvwwwwvvvgwVgvwwgwXgwwwggVwhwvgxwwgwwgwgwxwwwgwxgwvxwxwxwgwwwxgxfxhxxxwxwgvtwvvvgvwgvwwxgwwgwxWxgxfwwwvfwgwwwgwxhxxvxwvwwvwvwwwwwwwwxhhXwxghxwwxhxxwwwwgxxfhwwwgwWuvwfffhdwwvFgvgwfggVxwwuwwxwwxwxxwwwgwxwhwwxhgfwwgwxfwwvwxwwvwwghxwwxwhxwhwwghwxwxhwvxwxwxwwhxvxxxwvuvxwwwxwgvwwwgwgwwwxxwwvxxxxxwwwwwwxxxwxwwwxwwwvwxxwwwwwgWxhwgxxwwxwxxxwxxxxwvwVxgwvvgvwwwwwwwwwvxwwgvwvvwwfxxwwwvwwwwxwxgwvwwwvwvvwwwxwxxwwuwgvvvwwwwxwvxwwxfvxwwfvwwvwwgwwvxvwwgwwfwwwfxxxwwvwwvwwvxxgwxgwvvxwwwwxwxxwfwuwvVewggvwfgwgwwwwwgvwwvwwvfwweewwfvggvwxwgvwwwgwfxvgwwwgwfwwgwfVwgwwwxwwwxxwxwgwwwwwgwxwxvvwwxwxwgwxwxwwvvwfvuwvwwwwwgwxxxvxgwwfwgwwwwwwwwgwwwwxwwwfuxfvxwwwgwwxwwxxwxxwwvwgwxxwwwxwwwxgvgxvwwvxfwvggvwwwvvwwwwwwxwxwwwweewwxwvfwwgwwxxxwvwxxwfwgwvwwwwwwwgxwxxxvwwwwfwvxxxxxwfwfwggvfwwvwwwwxxxxwwgxxfwwwvfwhxwxwwwvwwxxwxxxwwwvvvwgxxxwxxxwxwwgwwhwwhxvxwxxwxxvffwVwevfwwwxwwwvvwgwwvxxwvxffwvvwvxvwxwwwwwwxgwwwwxwgwwxwwxuwwwxwwvwwwwxwxxxvwvwwwwwxvvxxwxvvvwvwggxxwwvxgwxwxwwwwwvvwwwxvwwwggwxwwwxvwgwwwwwwwxxwwxxxwxxwxwxuwfwwvvwwfvwvwwwvvwwwwgwwvvvgwwwwvfgwwwwwwuuwwxxwwgvwwwvwwvwWufwwwwwwwwwwggwuuwwwwwwvwxxvwxwgvwvwvvwwwvwwwwxwvwwwwxxxwgvwwwvwvvwwxwwwxwxxxwwwwvvxwwwxwwwwxhwwwwwwgxwwwwxwwwwfvww5cvwgweuuwfggwvgffgwwvwgvgwgvvxeuwwvgwwgwvvwwvvwwwvwgwwwxwvfwwwwwgwhwvvwwwgwxgxhgfwwwwwwwwwwgvvwwwwgxggfvvwXuxvgvwwwvfwxwwwwwwwwwxwwweevvfwwhwfvwwwxxxvwvvwvwwwgwwvwwggvvwwxwwwwxwxgwwwwwwwwwvvvwwgvwwVUvffvvwwwwwxwffwvwgwwwwwwwwwvwwwwgwwwxxvwxwwwwwwwwwwwwwwwwggwwwwwwwwwwwxwwwxwxwgwxwxwxwwVWfvgwwvxfvwwwwgwwhgfwwwwxvhhxwwwxwgwwxwgxgvwvxwwxwxgvwwvxxwhgwxxhvxvvwxxwxxxwxwgxvxvUUwwwwwddefvvwWfwwvwwwgvwwwwwffvfwvwvxgwwwwvwgwgxwwwwwxxxwwvwwwwgvwxvvwwwwxvwgwwwwwwwwxwwxwvwwxwwwwwwvvwwwwvxwwwwxwwwwwgwwwwgwwgwwxxwwxwwxgxxwwxwvwwwvwwwwwhxxwvvwwxhwwvwwvgwvwxxwwwwwgwfwfvVgVgfwvgvVgfVxwwexvwvwfvuwwwvwwfvvwvxwwwwfwwwuwgvvgewvgewgwvwwwwwvxwwvgewwvwwxwxwvwwwxwwwwxwwwfgggvggwfwfwxvwfwfwwwwwgvwxvwffgfwwxvwgwwhwxxxxfgvgxwwvvwggwwwvwxwxwwwxwfvwvwwwwwxwgwgwhhwxxwvvfwvwegWwvwfwgwfwegVvgwvwwwhwwwgfxfwwwwwvwwgvfwfwwwhwwvxwwhwgwfgwvwvwfwwwvfgwwxwxwxwwwwwvgwwxwwwhwwwwwwwwvwwgxwwwwwxwwfwgwwwwgwwxwvxfwvwxxxwwxvwfwwxxxwwxxwwwwwxwxfwwwwwwwxwwxwxxxxwwwxwxwwwxwxwwwwwxxxwxvwvwVWfevgffvwffuwfgfgwgwvgwwwvhvgfwvvwwwwwwwVvvwghwxwxwwwvwgfguvwwwwwfvVwvwwwhwxwxxgfwvwxwwxwfggwxhhgwxvgwvgwgvwgwfwuwwwvhwwwgwhwwxxhwgfefvuwxwwhwxwxxwwgwgwWgfwxwwxxxwevxxwgwwwwwhgUwwgxwWWwxxwwwwvwwwwxxxwwwwwgXWfwxwxwwweWevgwvwvwfgwvwggvvwwgwgwgxwggfvggwwvwwwxwgwgwxggwwwvxwwvgxwwwvwfwwwxwxwgwwwxwwwwxwxxwwxvwxwxwxxxgwwxvwwwwhwvhxwxwxhxxggwhxwxwwvwvvhxwwwxxwhwwhvxwwvwvxxwwwvwxvwxxwhxwvwxxvwwwwxwwgwwwhwwxvgggwvwvwvvgwvwwwwgfgwwwvvvfuwwwfvwwvvwwwwvxwwwwwvvvvvwvgwvwwwwwvwvwwxwvvwvwwwwvwvwwxwwwwwxwwwfwvvvwwwwwvwfwuvwwwwwvxxwvhwfvvwwwwgwwwwvwwxxxhwwwwwugwwvwwwwvwwxvwxwxxvwwwvwwxwwwwwxwvxvwwggvwfggvwgwwvwvfwwwwwvfwvgxwvfvufgvwfvwwggvwwvwwgvvwvvwwwwwwgvwvwwxwvwgwwwvgwwwxwvvgwwwwgxwxvwvwwwwwhwwwvxgwgvvwgwwwwwwgvwgwgwhxvwvfvfwhwhwxwwwxvwxwvgwxggwxfvwwvgwwxvwwwwwxxxxxvvwxxwhgwwxwgwwwwgwxwwwvwwgvwvxgwvwwfwwggwwvwwwhwfvfugwwwwwwwwvxwwxwwwwwvwgwwwwwxxwvxwwwxxxwwwwwvwvwwxwxwxxwhwwwwvwfwxvxvwgvxwxgxwfgwwvgvwghwwxfxhwwxwwgxfgxwwwxxwxwghxwgxgwvwwgwwxgwwxwwwwhvwvwgfwwgwvvvwwwgwvfvgwwgwwwwgvggvwwwxxxwxhwgwgxxxxxvwwvwwhxwwhxvxwwwwvvgwwwxwwxhwwwwvvwwvxwwwwwwxwxvwxwwwwwwwwwhxhwwwwwwwwwxwwxxwwxwwwwwwxwvwgwxwxgwwvwhuwwfvvwwwwfvvwwvwvwwwwgxvvvvvvvxvwfxvgwxwwwwgwvtwwwwwwxvvwwfwxvwgefvwvwvwwfwxwvwwwxwwwvgwvxwvwgwvwwwxvvffwwvwwxfwwwwxwxxxwwvgwwvvwwxgvwwwwwwuwwwwwxwwwwwwwhvwwwvvwgwgwwwgwvgfgdwwvwwwwwgvwvwvvwheevgwwvwvwvxxwwwgwvwwwwvfwvwxwwxxxvwwvgwwwwwhwewwwwwwwwwwxwvvwwwvvvwgvwvxxvfxxuvwvxwwvvvwwgwwwwwxxwwwxwvwgwwwxwwwwxxfxwwwvgxxwwwwwwwxwwwgwgwxxwwgwwfggwwwxwxWvvgxwwwwwwwgwwwwwxwwwwwwxxxxwvvvwwwgwxxgwfgvgwxwwxwwwwwwwwxwwwvvgwvvwgxvvhgxhgwxgwwwwwxwxwwxxhwwxvxgggwwxwxwWgvvvhxwwwgwxvwxgfwgxfwxwwhhfuvwvwwwwWgxwwwfwwgwwwwwwwwwwgwwwxxwxwwwwxwxwwgwwxwvwwwwwvghwfwwxwwwxwwwwxgwxwwxwxwwxvwwwwxwwwwwwxwxwwwxwxwxwwxwxfwwgexwuggVvvwgvxwggWwuwvgVvfffwvwfvvwugfwwwvwWfvfggfWwwxwgggwxfwuvvwuvuwgfwwwvfwwwgvxwewwwvwvgwfvwfxwwwhwwggfwwfwvwfwfvvwwWvfwwvgwwwgwvwwVwwwwwxwwgvwwWxwggxgxwhxwwwfwwvvvwwxwxwxwwgwxxvfvfxgwvwxwxxwgwxwwxvwvhfwgwwggffvwggfVvwVWVvvwgwgvufwwvggwvvuxvgvwVvvgegVvvwwgfvwwwgwvwwwwwwwwfwgwggwwwxgvxwfVwvwwggwwvwwwwvwwfwwwggvwwfwwvwvghwwgvwwwvwffuwwwhwVxwwwhwfvwwvwwgvwwwwwwwwggWgxwxwxgwxwxwfwhwwwvwwwgwvwwwxxgxwhwfvwwwvwvwwxwwwvwxgwwwvxgfvvvgvWvwwgwgvwgwwgwgvwvvugewwwvwgfwwwwxwhxwVwwwwgwfvuwvwwvgfwwxxwWwvxwvfvvxwwxwvxwvxwwwwwwxwwgxexxwwwvwewwhvggwwggwfwxwWwggwugwwwVxwwwxgWwwWwWhvwhxwvgwxvxxvvxwwwwhwhxfwhxewwwvxuxvwwhgwxxwhvvwwwxwvvwgfvwwfWWvvwfgwfgvvgwwgffwwfwhfgvvwegvfvwxwvgxwwwwwxwgwwgvwxwwwxxwvgwwwwwvvwxwgxxgfxxvwwwwhvwgwwwvwwvwwvfxxwwwwwxvwwwgvhxwgwwfgwggxgwxxwxwwwwwhwuwwwwwxxwwgwwwwwwwxwfwvhhwwxwxvxgwwwwwxwwhfxwwwwwwwwxwuwUwwwvwvwwwufwuwwwwvwwwgvvwvwffwwwwwvvwwxwwvwxwwxwwvwvfvvwwvwwuwVgwwvwwwwfwfxvwwwgwwwwxggvgwfwwwvvwxwwxwxuvvvwwwwwwxxwfwvwuwvwwxwwwvvwwvxwwxwxwvvufvwwwxgwwwwwwxwvwwwwvgwwwvxwfxwwwxxfftwwwfvwwvfvwvVfvwwwfvwwxgwwvvWvwwfwwvwwwwwxUuvvwwwgvwwwwwwwwgwxgGwxxxwwwwwwwwwwwxwxwgfvwwgwwvxwwgwwwgvwwwxwwgwfwvwwwvwwwWwvwxxgwwxwxxwwevvgvxvwxvxwxVvwvwwwgwwxwxwfwgwwgfhwxwwxwwwwwwwgfwxwwxxwfwuwwxWgxxxwwgWwxgwwwwvwwwwguwwwwwuhwvgwwvgxwvfvwwwuwvwfwwwwwvuwgwxvxwwxxvvwwwvwgwwwwvvxwwwwxgwwxggwwwwxwwwxxwxvgvvwvufwxwwxxwwvwwwwwwxwwwwwvgvwwxxxuwvWwwfxxwxxwwwwwwwgwwxxwvxwghwuwwwxvvwwwgvxwxxvwwxwwufgvwvggwvwvvgvwwwwvfwwxxwwVwegwwgwwwwwxwxfvgwvwwwvwwwwvwwwvwwgwxwxxwvgxxvgwwwwwxxwwwwwgwhwxxwxwfwvvwwwwwxxwwwwwwuxwwwvwwhxwwxwvwxefwwwwwwwwwwwwwvxwwgvxwwwxwxwxwwwgwwxwxwwxwwxxugfwwvwVvvwvfVffvgwvffvfvhVvwvffwfuvwufwwwfwUvgvvwwwvvgwvwvvvvvvwvwwwwvfvvwxvwwwvvvvfvwwwwvvwvwgwvwvwwwgfwvvwwgfxfwvwvwwgvvwfwfvwxwxwxwwgvwUvwfgxwgvwwxwggwwxxxwwufwwxwvuwwwgvxvxwwxwvwwwxxwxwwxwwgwwxwxwgwgwvwvfVfVvugvggvwfwfvvwwwgvvgvwfvvveVfgwvvfvvgwwvwevgwvfxwxwxwxwwgwvwwwwwwwwwwwxwvwwwwwvwgwvvxvwxggwwwwxwwwwwwwwwvvwwwvveuvxuvwwwvvfxwwxwgwwvwwwgggwwwfgvwwwvggggvwwfuwxwwwwggxwwxvwwwxwwxwvwwwwxwxwvvwfUgvgvvvwgevfvvffgvxgwwgwvvuvggvwxXfvvwwwvwwwhxwvwwvwfvgwwwwgfwvwwwwvxwwguvvxwwwwgwwvxxwxwwxwwwvvwwfwxwwgVvevxwvvgwwgxxxvvvwfwwgwwxwwwwwgxxhvwhxvxwgvxwxwwwvxxhvwvxhfwxwxxvwgwwwxwxwgwxgwwwwvvVvWvuggwwwwgfvevwwgfwhwwgevweggwwvwwWwwgwewgvvvwgvwwxxwwwvvwvwwgwwvwwwwwguwhvxxgwwwvwwwwwwwxvxwwwwfvvxwwwwwxxxwvhvwxxgwwxxxwwxwwwxwwxxwgwvxxxwvxwxwggxwwwxwwwxvwwxwwwxxgwwwwxgxwxufgGvevvwwfuwUvwhfwuwwfggwwwxwffwwwfwvxvgffwfvwwwwwwxvwwwwuvwffwuvgvwwwgwvvwvwgwhgxwvwwwfwwgvvwxwwxwwgxgvwwwwfvwwwwvwgwwfgwwgwvwgwwfwfwwwhwwwwwfwwWgwwxwwwwwwwwxvvwwwwwwwwwwvwwxvvwwwwxvwwgwxxxxxgwvwggfgvwvwgwvwfgwwfwFgggvweggwwwvwWwvwfvxwwwwVwwggxvgfvxvwwxwwgxfwwwgwwwwwwwwwwvvwwhwwwwgwwwwgxwwwwwxwgwwgggfwxwwvwwvvuwvwwwwwwwwgwwWwwxwwwgWgwwwxgwwgxgxwwxxwwxxxxxgwwwxwgwwxwvwxwwwwwwxgxvxxxxxwwvwxxwgwwgewgvwwvfvwgfvwwwfvfgwxvhxgefvgwvvvwwgfwvwwhvwwwvwwvwwwwwwwewwwvwwgwwxwhwxwwwgwgwwwwfgvwxxwwxxwwwxvwwvwwggwuwgwfwwwxwgwvwWgwuvvwxwwhwwwxuxwhvxxwxwwwuwwwwxwwhxwxwwwxxwvwwwwwvxxhwvwxhvwwxxwxxwuggfwwwWvvvwxwwgwVgwwwgUgggwxwwWwvwwhvwwwxwxgwvgwvgwwXwvwwxxwwwwwwxwxuvwgvxwwxxhwwvwwwfwxwhhwxwwwvwxwxwxxwwwwvwwwwxwvwwhxhvWwvwvwwwxxwxwvwwwxxwhxxxwxwwxxxwwwwwwwwwwwxxvvwwwwhwxwwwwwwwxwvsxfwwwwxwfxgvxwxwwwwwxwxffxxwxwxxfvxwwwwwwwwwxwvvwgwwwvvvxxfwwwgvwvwwwwwgwgvwwwxxgvgfvwxwwwgwxxwvvggwwwwwwxwvvxhxwxwwwwwxwxwxwvwgxxxfvwwwwxgvwwwwwwxwgwxgxxwxwxvxvxxgvwwwgwwxvxwwvwxxxvwhxxxyvvggvwwwwxvwxwwwwwxwwwvwxgwxwwxxxwwwwwwwwwhxxxwxvgwwwwxxwwwwxwxwxxwvvwgwgvgvgfgwgvwvwwvwxwwwwwwwwxwwxxxxwvvgvvwwwwwwvwxvwgxwwwwwwxwwwxwxVDDewwgvwggwxwgwgvgxxxwwwfxxwwwxxxwwwwwwwwwxwwwwwwgxxwwxwhxwwwwwxxxgwwxvvggwxwwwvwxggwvhwxwxwwwwxxwxxwxwwwxwxwwwwvgwwxwwvvxwwwxwwwwwwwxxwxvgxwwwwwwwgwxxwwxwwwwxxwwwwwxwxgwxwwwxwvgxxwxxwhxwxxxwxxvgvwwwwfwwwwwwwwwwwwwfwwwxxvwxwwvwwgwvewugvwwwwgvwwwxvwwxwwvvwvvwwvwxwwgxwuxxxgxwxxUvvwwwwgvvwwwwwwgwxxxxwwwwuxxwwxxwuwxxwxxxxugvwwgwwewwwwvwwwvwxwwxgwwwxwwwwxxwwggxxxwxxwgwwgvwugvwvwVgwxwwwwwwxwwvvxwwuwwvvwgvwxxwvwxxxgvxxgwwvvwgvwgwxxgvwxxwfwwwwgwwwwwwVhwwvwwggUwVwwwxugvwwvwVwwwwvwwgwxwwwgwwwwxvxxxwxwwwwxgwxwxfwwwwgfwxgwvwwfvwwxxfvvwwxxgwwwxwxgxxxxwwUvvwvwwgvwwvxwgwwvwxxxgwwggwwvvwxywgvwewfvfvvwwuwvwwvwxvwwfwwxfwwvwwwxxwxxxwxxwxxwxwgvwwwWWfxvwwwxxgwwwwwwxwwwxwxxxwxwwwvggwgfvwwwwwvgwxWvxvwxgvwxxwxxwxxxwxwxwxwxvVwwvwwfvvwwwfwwvfxxgwwwWvwfwgxxwxxwwwwwxxwxxxhxwwewxwewVwwwwwfwewxxxxwwwwxxwwwwxxwwwgvvxxuvwwwwvgwwfvvwvxwgvwxxxxwwxxxxwxwxxwwxwwgvUgwvUvvwwwwxxwwxxxwwwxxwwxxxuwwxgwwfvvvvgvwwxwwwvvgwvvwxwxwwvgwwWwvwgwwfvfwgwgfxwhgwwwwwxwxwwwwwxxvwwxwwxwwxxgwwwwwfvvgwwxxwfvvwwxxwwvwyxxxvwygwwwwwxfvvwxwwwhxxxxwwwwxwwwwxwyxwwwgwgwgvwfgwwvwwxWgwwhwxffvwwwwxwxwwwwwxwwwxxwvxwxxgwwwwgwwvvwwvwwwgxxwwxwwgwwwwwwxwxwwwxxxwwwxgwwwhwfvvxwwwwwxwxxwwwwxwxwxxxwxwxwxywwxwwwxwwxwwwwwwxwwxxxwwwwwwxwxxwxwwwwwfwwwvgfuvfwwwwwwfvuwwxxwwwxwwwxwwwvwwwwvvvwwwwwwxxwwwwwwwxgxwxxxxxvwgvvvfwwwwwgvxgfvwxwwwgvxwxxwxxxxxxxxxwwxvvfhwwwwwwwgxxwxxwwwwxxxgwxxxxxxwwxwgwwwwwxgvxxwwwxxxvwwwwwwwwwxxgxxwxxxxxxxwxgwwwvwgvxwfwwgxwxxwxfwwwwxxwxxxwwgfvxxwwwwwxwwwhxxwxxwgwhwxxxxwghxxxxxwxwxxxwwwwwwwxxhwxwwvvxwwxuvwfuwwwxwvwvvwxgwvWxvvwwxwwvvfgwwhwwxfvxggtwvWvwfuwwgwwwwwvvwwwweffeuwvwfgvfwgvhvwwwgxxwwgwwfvwvdVwwwwwwvwfwuxvwxxwxxwVVfgwwwwwwxvvwwwwwxxxwxgVVeuvvfvvvweuvWwvwwwTuwegfwwwwxwvxgxgxvxwxguwwWuvgvvfuwwggvwgwwwgvvvgvwvvVffvwxfwwwxwfvfwvwwvwwvwxwgwwgvvwfuvwfwgfuvwwwxgwvvFWwtfuvwwwxwgwwwwxwwvvfgwgvwgWWxgwwwdVvUuwWvvwhwfuvvwvvwxwxvwxfvvwvwwxxwwwwuwwwxwhvxxwxVduwvfvwwxggwxuwfgxvwwxvguxwwwvxhwxwgwwwggwwwvuvwvefwgwwwwvvgfvwwwwwwwgvVVvgwvwxwwwxwfwwxxxwvefVduwffuwwwwvvvvwvwvwwwhxvefvwvwfvxxgwwvvwxwhwwxgwvggwvwwvwgwvxwwvfWwwghgwxgwgwwxwwwxvwwwwgxwwwhwwxxwvwvgVvvgxxxwxggwgxvwxxxwvwvggVfwxggvwwxxwhgxxxxwxxwvUVvevwvgwwwVdfgvwwwwwxvveugvwgwgwvwwwwwxwwxwwhwxwwUuwvVvgwwggwvwvvvwWgxehwxwxwvhvwwwvvxwgwwwwwwwwxffwwfwvwggvvwwxxxwgwgxgwwwxxxwgwgwggWfhwwvwwxxwwhgwxwxwvvgwvwgwxwwwwfwwwwwxxwwwvwgwvwvxhvvwWvwxxwswwwwvwvvvwwWvvvvwwwwfewwwwvxwvgwfwwvwvwvgvwvwvuwfvvuwvvwwwwwvfvfwwwvvwwwgvsuvuvwfwuuWvvwgwxvwvwvvgxwVewvwwffvvfgwdtvwwxwwwuwWwewxwvvwwwvxwwfwfwuvuuvwwwwffvwgvwfwgwvhwfvwwwvfxwxxwwxgvgwwwffwgvwvfvffwvgwwvvuwfwwwwvwxwtdwwwwwwwtuvvgwwvvwwwwwfwwwwwfwvwwgwvwggvvwgwewfwwwwwwvwwwgwwwvwwwvgvvgxghwwvwwwvvwfvuuwgwwwefvvwwwwwxggwguvgxwwwxwwwxxxwwwwwwgwwwghwwhwhfvvfWhgvfwwgwwwwwwxwxvgxwwwwxfvwwvvwwvWuwuwwVfvvfvesuwwwwwwwvggvwxvvwxwwvwwwwvVvwvfvvfvwffVvvwvvwwwwwvgvvwvwwgwwvwwwhwwwwgwvwwwvvwwwwwxwVutwwguhvvWxwxwwwxwxxwwvwxwwwwxwxwwggvwvvvuvgwwguwggwfwhgwuwwwwwwvxwxwfWhuXwwhxxwxgwvvgffuvgxxVfwvgvgvwwfvxwwwxxxwxwxwxwwwwwxwwwxwwwvwgwwvwwwwxwwwfugvvggfwuvwxWwhxwxwwxwhwgwwxgwgwwgvvxwvgvwwgxwwwwggwvwwwxwvwxxxwWwugvwwxwxxgwwxvwwwwgvwwwwwwfvgxwfxwxxvwwwxwwwwwwxwvxxvxwgvwwgwwwvwxgvwwwxvwwxwxwvwwfwxwwvwwwwxwwxgvwwvwvvwvvvwvgvwxgxggwwwxwwvwvgwvxwwxwwgvwwwwwxxwwfvvgwwwvgwwxvfgwwxgwvwwxxvwgwwwxwwxxgwhxwxxxxvwvwwwxwwwxvwwvfwwxwxwwwwwxgfwwxwwwwwxwwwwxgwxwwxxwwwwxvwwwvgwwwxvWwwxwwwvhxwfvgwwgwwwxwxggxgwhwxwwwwgwwgwgwwwxvwvggfwgxwxwvgwwvwggwwwvwvgwxvgffvgwwwgvvwxwvgvxxwgwggwgwxwvwvwgfwwvwwwwwvwwwgwhgwwwwvwwwwwxwxgwwgwwgwwxwwgggwgwxvvwwvxwwgwwxwwwvwwwgwwwwvwvwffvwwwwvvwwgwvfgwgwxwfxwvgvwxwwxvxgwwxwxxwxwvwvwwwwvwwwwwgwvgxxwvwwwwwwvxxwwwwwwwxhxwxwwwggvvwgwxwwggfxwwgwwxwwvwwhwxxxwxwxxwxwxxxwwwwwxwvwgfwgxwxwwgwgwwwgwwxwxxwwwwvvwgwgwgwwwwwwxwwwwgwxxfxxwwwwgvwxgvwgvwfwgxwwwgwwfwwwhwxwwvwwxgwhxwxwwwwgwwwwxwxwvwwwwvwgwwwgxwwwvwwwwwgwwxwvxxwwvxwxwfwggwwgxxvwvwvgvgwxvgwxggwxfxxwwwvvvwwwgxhxwxwwfxvwgwxxgxxwwwwxwwwgvgfgwggxwwxwxwvwfvfwwvwhgxwwhxwwgwhwwuvwvvfuffguvwvwvvwwvwvxgwwwwxwxvgvwwvwwwxewvwgvvvfefvvgwWuwwvwvvwvwwfgvwfgvwwvvfwwwuvvwgvwvwxwxwwevwwgfvffUwvwwvvefwwwwwgwvwxwwwwwwvxwxxxggwwxhwxxfeUwdvefUufxwwwvevwwvwxvwgwxwwwwwwwwwgwvxwvxvwxhwwwwwwfvwwvfVfgfxwGvvwwwwguwwvwwwvguwVvwgvwwvuvwWwwgvwxwwwvwwvxevvwevvwvfggfwvwwwgwwwwgwevvwgfwGwwwvwwWVwvvhwHxuxwwwxwvwfeffvwwfuvvvwxTvuvgvwxfuxgxwgVvvvwwwwxxgwwwgxvwgvwwxveuuvvwWvhvwwwxwvfugWhvggwwhgwwggxxvwxgxvvvgwwwxwwwwwxxvvvWvvwgfUgvvwwvdVwvxwwwxwwxgwwxwxwwwwwxwgwxxxwxgdVwefvwfvvwuwwweuuwfwwvvxwhwgVguhwwwxwwxwwwwwwvwfwfwWgwwwvwxwfwwwgwxwxwvxwgwvwxhgxwwxgwxxxhwwwwwwwwgvvwwwvgwwgvwxwggvvwxwvwgfVxfwwxwwhvwwxwxxwwwhwxgfUeuVwVtuxvxgeevwwvwwevhfhwvgfvxxxwwwwwxvwwwwxwwwTvuvfuwhWvwwwwvvfvwhxvwgwwwfwxggxxxxgwwwwwxwxwgvgwxwggvwwxwvfwegwvggfVxfwxxxwxwggxwwwxxxvwxxwfwvwvwwvgwwwwwwwhwwwgwvhxxxwxxxgxwxxwxvvwxxwvwwvwxxvwxwgwxwwwvfwxwwxxvwvwxgfwwwwwwwxxwwwxxwvwwvxwwwwxwwwxwxfwxxxwgwxvggvvwwgvwwxgwwgwwwwxxxvggwxvwgwxhwxxwwwxwwwhxxxwwwxwwwvwfgwxwxxwgwwwwvwxwwxwwwwxxwwwwxwxxwwwwwxvwhwwxxwwwxwwwwxwgxwwwyxvggwwwfwwxwxwwwxxwxwwwxxwxwwxwxxxwwgwwxwwwxxwvwwxxhwgwxwwvwwgvwvfwwvwxgwgwxwwvgxxvfwwxwwwxxwvxxxxwxwwhgwxxxvvgwwwvwggwvgvwwxwhxxwgvvwvwvxwhxxwwhwwwxxwwvgxvwxxwxxwvxxwxvfwwwxwvwwxwwwwxxwwxxwxxxxwwxwwwwgwxwvwwxwvwwhxwwxxvwwwwxwwwwwwxxwwxgwvfwwwwxwvxxxwwxxhwxwxxvwwwwxxxvvxwxxxxxwxdggwgvvwVvvvwvgfwvwvggwwxgwwwwwxxxwwgvxwxwwwwwxVvwwwwufvVwvxwxgwxxwxgwvwwvxwwwvVwdwuvwxvxwhwvwgwwxwwxhxgwfxgffgWvfgGewgwwFgewwwhwwwwgfwwfvfwxxvwvvxxvxwwxxwxwvggwWwvxfvvhvwwWfvwhwwwwxwwwwwwvwxwwwhvwxxwwwxwxxwxxwwxgwwvwgvwvgwugggwxxxWfvxwwwxwgvwGwugvvgwgwxWgvxwwwwvhgwwxgwvxwgwwgvwwwwwwwwwwxxhwgggxgwvwwwxwuwwxwwwwXhgvxxwwwfwxwgvvfwgvwxwxWgvwwwwxvxwwxwguwgxxvwwxwwxxxxhxwwwfwvwxvvwhwwwvhwvxxwghwwwxwwwxxxwwxgwwwxwxwwxxxgwWvvxggfgWvgvxgGuwwwwWfdgwwwgwwwwwweuwwfwvxxggwxwugvwfvvvvvhvwwwgvvwwwwwwwwwwwwwvfxvwwwxxwxxxwxwxxwxwxwwwwwxeevgwxgvgxwxwxwwHxwWgwwwghxxgwxgxxwgxwwwxuwxwwghwxhwwvxvwvXxwGWwvwwgwwxxwwxwxgwvwxwxhwxvwvggWvwwuexxwWguwgwwwvhgwwwwwvwxxxhwvwwxxwwwwwwwxwwwwxxgvvwwuwgwwgwwvhwgwwhxwwwwwgwxwxwwwxxwgwwxhxwwhwxfvvfhwwghwwwwwxvwfXwxGWwvwwhwwwwxxwgwwwxxhwhwvwuwwwwgxwwwwwwxwxfxhhgwwwwxwxwwxxwxwwgwgwwwxvwxxxwvwxfwwwxwwxxwhgxxwwxwvfwwwwvwwxxxwgwwwwwgwwwwwwxxxxfwvvvwwvgvxwwgvwvwwwgxwxxwwhwxvvvfwwwwwwwxxwxxxxwwwwwxwxxxxxgvwwwwwfwwwwwwxvhxxwxwxvwwvwwwwwxxxwxxwxwxwwxwwwwwxxxwgwwxxxwxhwhwxvwwwxwwxxxwwxhwwwwyxvvvvwgwxxxwwxwwwxwxwxxxxxwhxwwwvwwwwwxwwxxwwgwwgwhxxxxwxxwvxvwfwgvwwwvwxvxwwvvxwwgxxxxxxxxvwfwvwwwwwwxxxwwwwxxxxxxxwxvvgwvwvwggwvxwhwwxxgwxwvggwhgwxxgwxxxwwwwggwfxwxwwxgwxwwwwxxxwxwxhxwwxxxxxxxxvwfwvwwwwwhwxhxxhwvxxxwxxxwwwwgwvwwgwwwwxwxwxxwxwwwwxgxwxwwwxwgwgwwxxwhwxhvxwxxxxxxxwxxwxgxvwxwgvxxxwwxwxxxxxxwxxdvvwvwfxevvvvvvvvwvwxvgwwwvwwgvwxwwwwwwwwxwxwxvwwgvvwvgwuvfvvwxxxvuwwwwxwgvwuvgggvwvvwtuwvwwwwgwwgxwvfwgVtwggudegwgffvwwxfwwhhwwwwgvwgffvwwwxvwfwxgxxxxxwwvfgwuvgwgwvwwvxwwwxwxxxwvwuvwxxvwwwwwxxwxxewvxwvwugfvvwwwwwwxevwwgwwgwvwwWwvwwedwwgwwvwhvwwwwwvwvwwvvgvwwxxhwwwwgwgwwwXvvuwwxwfwwxhwxxwwwwwxvwvvvwuvfwfvvwwwuvwhwwwvwwwwwwwvwxwvwhxxxwwwhxxwwwwwfvwxvwvvwwvwhwwgxwwwwwwwxxxwwwgxwwvxxwwxwxwxuvvgWtwgguudfvgfvwwwvvwwwgwwwfwgwuewvgwwhhxxwwwxvvvuugwweuvvwuvwgwwwwwwwwgwwwwwwwgwwwwhxwwxwwxxwwwvgvVvevwwHhwwwxwxxWwvwwghxwwwgwxvgwwxgfvvfwXwwwwwvwwvwhwGxuwwhxxwwwwxwxwvhwxxxxhwwwgwugvwvvvwgvvwwwwfvvxwwwwvwwwwwwwgfxvwwwxwxxwwxwxwwvvvxvwguvwwwwwwwwhwwwgwwvwwwxhwwxvwfwwwwxwhwxWwvgwXwhwwvwwvwhGwuwvwgwxwwxwxgwhwxxwwwgxgwuwwwwfxwwwwxwwghvwwwxwxwwxwxwwyxxxwxwuwgWvwfuvwgwgvvwxfvfgvwvwxgwgwwxwwxwhwgwxwvxxfvxwgtvffevwuwwgwwwwwvfvwwwvWvwWvwvgvwewvxWwwgwwvwwwgVwvwvfVwfUfwvvwwggfwwwwgwwgxwwwvwgwgwxwxwwwxxxhxxffVEuvgfvugfWgfwvwgwgxvwxwxvevvggwwwwwvgwwxxwxggwxwvVvwxwWuvVfgvwwgvvwvwwfvvvvxwwfgvwWvvwwvvxwxwfvgwgwgvfwwwwwwgwxfvwwVvvwwwxwVvvwwwxgvvfgwwghVvvwwgghwwwvwwwgwfGwxHWwWwexgwwfUVwgvewUfuvvwwFevfwwgxwwxwwwwwwwvwxggwxwwwwxwwhwhxwvwxwVuuxvWfgvgwvwgwvwgWxhWgwxwwvwvwggwgwwgxwwwwxgwxwvggvvxveFwgUfgwwxWggwgwxxgwvwxwwxgwwwwgxwwwwxwxxxwxwgUfVveweutegfVVuwwwgwvxgxwhgvvfvhwwwwxxwwxwwxwwwwvfwwwwfwwwwgwwxfWwvwxxghwxwxvxwwggwxxgxwwwwwwhhxhxwxxwvwwwvgvwvwfegwgwvfgexhwgxwggxxwfwxxwxgwvvxwxxwxxwwwxxgeFwVuuxfvvwvgwVvfwwwfwuwwwxwhveugxwhwwwwwwhwxwxxwxwxEuvgvgfwguwwwgwfwWhxxhgwwwgfwwvgxwwxxvwxxxxxwxwxwwvvvwggvvwvwvwfgewgwgwwxgwxwfxwwxwvhwxwwxxwxxxwwwwhfgwwwwwvwwwwwvvgwwgwxxwwwxxxxggwvxhwwswwwfvwwggvwwfwwwwwwwfvwwfuvwxfvwguwwvvwgwwvwvfvvvvwwedwwgffwgvwtdvgwwvwgvwufgwwfwwfwwwwwwwwwwwxvvvwvfvwwwvvvvwwfvvvvghwxvWuwSuvwvvgwwxvuwxwwwxwxwwxfvgvfuvwwwwwvfwvfxwwxxwvugfwwgwxwwwwwwxwxwwwvgvwvwwwgwgwuugVwgggweSwwwfwwfvvvwvwvwwvufwwwfwwfgvhwwwvvwwgwfgwwwwfwfwggwvvxgwwgwxwfvwwwguvgwgwwvwwgwvwwwwwgxwwwggwffvuvfxwwxvvfuwwfwwwwxgwwwdfvxwwwwwgwwwvfvwfvgxgwwxvwvwgwfugvwxxwgvggwwfgfxwwwwwwwewwwwhwwwgvwxwwxwuxwvwffvvwwwfvwvgxwvvwuwWxwxxwVewdtvwwvxwwvvwxwxwxxhwvvwfevvvugwwwffwwwwxxxwxwuugwwwhwxwwwwwwwhvxwwEvuwwwwwwgvwxWvgxxxxxwgwwvvWxwxwwgwfwxwxwwvwwgwwfgvwwwgwwwxxxgwgwgxvwwwvwwgwwwwWwuwvxwxwwgwvwvggvfvvvfvvxwxfUwgvwfwgwxwxwvuwwwgwwvwxwwxgwwxwwhwwgwffwfwwwhwgwwwwgvhexwwxxwxvxvvwvwwwwwwxhvxgxwxVfwwvvhfwwwwfwWxvxwwvwuwggwwwwVvewxgxwxwxxwxvwwwfwgvwxwxxwwgxgggwwxhxwwxwwxwwwwwxwxxgxxtfwvfvwwwwwgwgvwwgvwwfwvwvwwwwvfwwwwwxwwgvwwwwwwvtuvvwvwwwvvxwwwwugfvuwgwwfwvvwwwwhwvwxxwfuwwfvwwwvgxwGuvvwwxvvfxxxwWvfvUwwgwxxdewfwwwgwhxhwugvwfvwfwwfvwwwwwwwxxxxwfgwvwwwvwwwwxxwwwwwwwwwxxxwxwvvwxvvwwgvwudwwwfwvxwvugwwwwvwvuwgwvvwwxfugwwwvfwwwvwwwwwvwxxvwwwwxghfuxxwgvwwwwwwwwwwwwwwfwgwxvwwvvwvfwfuwxwwwhuuwgwwwvwwwwxwUwvvwwwgwwxvfwwwwwwwxwxwfwwwwwwwxxwwxwvggxwvwxgxuvwwwwwggxwwwvwwxwvwvwvvvwffwwwwgvwgwFuvwwwvwfwwwgWvwfvvvxwutvfggwwxxwxwvfwwvuwgwwwwgfuwgxwwvwxwxxwffwvwwgwwxwwwwwwxxxwxwwwxxfwwwhgvvwwwhgxwVfugwxhxwwxwwHwgxuwwgxgwvwgwwxxxwwwvWwWxtxxwgwxhvwwwwxwvgwwwwwvxwxwxvvfwwwWfwwwvuwgwwwxwhwgwxwvwxvwwxxxwwxwwxvvwwwwwxxwfgwxwxxwxwwwvvxwwxxxwwvgxwvwgwwxxgwhfgvvwgwwxwvvWWwtxxwxwwwxwwwhwxwwgwwwxwvxwwxuwwwwwxxxwwwvxfvwxwwwwwwxxxwwxxwxwwxwvxwwxwwwwxgxgwwwwwggxwxwwxwwwxxfwwwgwvhwwwwwvfwwwvwgfvvhwxxwwwwwwhwwvwfvghxvxwwwwwwgxwwwwwwwwwxwxwwxwwwgwwwxwwwxxwwwwwwxgvwxwxwgvwwwwxwhxxxwvwwxvwwxwxwxwwgxwwgxggxfwvwwhwwhwwwxxxwxxwwxwwwwgwwggwwvvgwwwfxwwwwwgwwwvwgxwxwwxwgwhwwwwwwxwgvwwwvwwxgwxwwwwwwwvxggvvgwvxwwwwvvhgvwwwwhgffwwxghfwxvwxwwwwvhwwgwwxxwxvxwwwwwwwvwxwwxgxhwwgwxwhgwwxxwwxxvwwwwvwxwwvvxxwgxwwggxhxwwwwwgvwwwwxfxwxvhxwxxwwwvxxwwwwwwgwxwwhvwxwwwwwgvwwwwwwxxwwxgxwwxwwwwgvvwvvhwwxwgxwwxwwwvwxwgxwwvxxxwxhwgxxxxwxxxgwwwxwhwwxxxwxwxvvwxwgxwxwxxxxxxwxwwxwwxxggwwxgxxwhxgxxwwxvgxgwwwwxhxxxxwwxxvwxwvwwxxwwwvwhwxwwwxvwvxgwxvgwwwxgwxgwwxxxxxxxwwwwvxgxwwwwwxgvwwxxxgwgxwxwhwxxwwxxfwwxggwwxhghwwwxxwxxxghwwwhxxhhfxwvgwgwxwwhxxxxxxxxxxwhvwwwxxgxwxwxxwxwwwxxhxxxvgvwwwwwvvwxwwwwwwwwwwvvwwwxwwhxwwwvwvexvxwgwvxwgvxwxwxuwhxgvwwwwgwwvwwgwxwhwwwwgxxxxfuuwwwgwxvwxwvwwgwxwgvvwwwwwfwgwwxxwhxvvufwgwwwvwwwxxhwxwwwfvvwgwWwxwgwwggwgwxgxxwxwwwgwgvxvwWwxwVgxwwxvvwhxgvvxwwvwwwvxwwwwhwwwwgwxgvxwwxwvvwwgwwwxwhxxwwvwwWWffwwwwgvxwwvguwgvxxxwggWwwxvWggwwwwxfwvxwwwwwwfvvwwvvwxxwxxwguwwvxwvgwxwwvuxxxxxwWgxwggwxxxxwwxxewwwwxxVwwhxxxxwwwfuuwvwwwwwuwwvwwwwWwwxgvwvxxwxwwvxxwxwwugvwwwwgwwwwwvwwxxxhwxxgwvuwwwgwwxxxwwvwwwxwwxwgvwvwxwwwwxgwxxxxxxwwhhUwwxxwwxwhwxxwwggwvgfvwwxxwhXwwgxwwxwwxwwwwgwwvwxwxvwxgwxxugvwgwwxwwwwwvxxxwwwwxvwuvwwxgwxxxwwvwwwwwxxxxwwxwvvwwfvwwvwgfwggwxwgxwxvvwwwxxwxgwvwxxxxxwvwgghwwwxwwggfwvxwxxwwwwwwgxwvwwxxvwwgxwxwwefwuxxwxVwfWxwwxxxwwxxwxwxxwxxwVwggwwwwwegVewwwwwwwwwwwfwwwwgvgfvfvwwwwwwwwffvgxhVWTCwgvwwvfwgETfVfVfwwvdgvvwgvwfwwvffVevwgwvfwdgvvwwwWwwwwwggwwgvwhgvwwwwwgvwfwwwwwwwwwhwgvwffvDuuwvfewwffgwxXvVfwfwwwwwwwwvfwwwwwwwxfwwguwwwwwhgwwfwgfvxgvfewfgWvwxgvwwwwggxwfgegETwgvwfwwgW4EffVewfvwdgvvwgvwwfvwfVfVwwwWfwwgdgvvvwxgwwwwgVefVfVfwwwuwwwffVevgvGuwwwUuuwwvvwuwwwwxGvwvwuwwwUuuwgvwwxvgwwwwfwwvwwwwwwhwfvwuwwwwwxxxwgwfgwfwxgvVfwwgwvvxggwwhfWggxfwgwwwwdgvvwwhgwwdgvvUuuwxwgwwwxWwfwfwwwxwwfwfwxgvxwwfwxxwwwwfwgvwwgvfwgfwgvwwvvwfgwfxWgvwwwwUttwvfewwwwwwwhvVfwwvvwwwwwfwwvwffvvxgwfvwuwwwwxgwfwwwwwwwvfewwvfewwhwxwgwgwvxvvggvgffVeDuuwvfewfVfVwxGvVfwfwwwUttwvfewHgvwwvVfwwvvwvwvwhvgfvfvvwgvfewfgWvwwwWvwvwwgwvxwwfvfewwvfegvwwVvgwwgghwwgWvgwgwgwwwwwvfwwffgwxgfwwguwwwvxgwfwwwwwwwhvVfwwwggwxwwwxvwfvVxgggwwwwdgvvwxXvwwdgvvUuuwgwwhxgvwwhwxwgwvvwhwwgwwxvhwwhwwgwwwffvgwwwWvVfwwwggvwxggvwwfWggxwwfvVfwwgwvvwvwWvgwfvVhwwgVvgwwgvxhwwwwfwwwxwfgwwwwxvgxfwgwxxwwvvwxvvghvgwgwgxgggwwwwwgvxvwwfwgxwwwwfgwxwwwwwwwwwwwwwwwwwxvwwwwwwwgwxwwgvegwwegVwwgvwwxwggvvwwguwwxgwgwwgwwwvwxgwxhwgxfwwgwwwfwwwgwwxxwwwvwwwxwxxxwwwvgwwwwwhggwhwwxxxhvwwgwwxxwgvhwwwwhwwWwvxwgWwgwfvwxwwgwwxxwxwxxwxwxwwxwgvwwwvvgggVggwwxxVVgwwwxguwwxvxwxwwgwxwfwvgwwhxwgwwgxvwwwwwwwwwwwvvwgvwwwwwwwxwgvwwggwwwxwWhwwefwwxuwhwXXfVwfwxxvwwwwwwxxxgwxvwwhwwWwgvhwWgwvwxxwxxwwgxwxgfwwxxwxwwxxwwwwwwggwxvvgwvwgwhhfggvxxwwwxxxxuwwwxxxxWxwwxxwwwwwwvgwwxwxwwvwvwwwwwxwwwxxxwwwwwhxwwwxxwwxhwvwwfggwwwwwvwgwwwxxwWxuwgghvwwwxwwwxwxvxwxxhxxxxxxwwuvgwwwwvvXWgvwhxwggXwxxwwwwwwwwwwwwwxwwwxwwwwwwuwhwxxwvwhgxxxgwxxxxxwxwwwxxxxwvwwwwwwwwWwfggwxhwWwwggvhggwwwxwxwhxxxxwxwhxwxgxwwwgfgwwhxegwvgvfwwXXwVwggxxxxhxvwxxwwxxhgxxwxxwwxwvxwxxwwwWhxxxvxwxgxxxxxxxwwxwxxxxwxxwwwwxvwxxxwwxgxwhxwwwwwwxxxwvxwvwvwvwwwvwwvwvwwvwwwwvwvwwwwwwfwwwxwwvwuwvwvwwvvwwwxwxwwwfvwvwvgwwwwvwgxwhwxwwxfvvvvvfwwvgwvwwwwxvwwwxvvwwvwwwxxxwwxwxxxxxvgvxvwgvwgwwxgwwxxxvwvwfwwwwgwxwwwwvwwghwwvxwwgwvwvwvgvwvgwvwwvgwxgvgvwwwwvgwvwvxwwwxvvwwxwwwwxxwxwwwvvwfvwwwvwvwwwgvxwwvgwgggwvwwwvwvwwxwvgwgwvgggfgfxwxvgwgwfwwwwwwwwwwwxwxvwwxwvfwwwvwwwwwwwxwwwwwwxwwwwwvwwvvwgvxwxwwvxgwwwgvwgwxgwwwxxwwwwwgwwgwwxwwgvwwfvfwvvfwvwgwwfwwwwgvwxxxwvgvwwwwxwgwwxvxwxgvwwwfvvwvvwwwgxxxvxxxwwfwwwwvwwwwxwwxwxgwxwvwwggvwggfwgwxwwgxwwgwwxwgwwwwxxwwwwwwwxxxxwxxxgwwgvgvgwfwggwvwgxxxwxwvxgwwhwgggwwxwxwxxhwxvxfhxwwxvgwvvwvwvwxgwwwwwwwwxwwwwwwwwwwxwvwxhwwwwwxwwwwwvwgwwwvwwwxwxgwwwwgwwwwwvwwfvwxwgwwxgghwwvwxgvwwvwfvwwwwwvgwwwgxwwxxwwwwvhgwwvgwgwwwwwwxxwwgwxfxwwwwwwwwwxwxwvfvxxwvwgwgxwxvwgwfxgwfhhwwvhxwxwwghvwxwxwwuwggxwwxvfwuxwwwgvwvxuvfgxxxwwvwgwvwwwwxxxvuwggvwvgvvvvvgwWuvwwwfwuwgwgvvfeffvwfwwvwwvfwvvxwwwxwwwxxfvwwwfuwwwxwveFwvwwwgxxweefgwvwwwwwxvwxwwwwwxxweFvfvuguvgxwvUuwwggwwwxwxfvvwuwwwxvwhwhwgwwwwwfvwwvvguwgvwgGvwwwwwfwuxwwwefVfvvfvggwWvwwvwwwfwxwwgwwvwfvuwfvuwwggFvvvwwwgwfgwWGfvuwvfgggwwwwWguwwwwggwwxwxwvwgeeVvuufvgxVvugwwgwvhwxwxEuwvxgwwwwevhfxggxxwwxxeudwwWfwvgwwvgfwxggxxwxxvWvxwwgwhxwwxwwwwgwvvxxxwgvuwggfgwwwwwvfVwwwwwwvwgxgveevwwfwwwxxvvwwxwxwveUvefdvvwwxwxwwVwvgwgwxxwvgVuvwwwwvvwvvwwwwxwwwwxwxwvvvwwfvuwwggxggwwgwwgxwxwvwwgwxvxwxvxhwwwwhwwwwwwwwfvwwwwvgwxwxxxwggvvwgwxxwgvwwwwxwwgwwvWgfvwxwxwgvfVgvvwfufwwwweudwwgvwwwvxxhgVvfwvwxvwvwXfhwwvwwggxwUuwvwgWwvwgwhvgegxxgVwwvgwxwvgwxwwwwvfxhwvwgwfwwwwwwgvwvxxvgxxxwVgggwxggwxxwwgvxxwwgxvxwvVgfwvxvxwxwvwvvwwfwwwhwgwwwwxwwwvwwvhwggwwuvgvwxwswwwgvvwgvvwfwVwvwwwwwguxwxwwhfwwwxgxvxxxgwgwgxgwgwgwfwfvwgvwgwufwffvwwggfgwwwwvwwGvugwwvwwGwdhgwwvwwwwxwwwvxfgfvwVewFvtwvgxfgwgwwxwxwwwgvwVwvwwWWwwwxwxwxxvwgVvfgWwuvwgfvhwwwwwxwwxwgvWgvxwwwwxwwxxwwxxxwxvwvgvwwwwgfgwfwwWgwvwfgwugwggwwvwvWuxgwxwwv7vuWWggfhwwvgwwfwwgggwwvwwwVfwwwfvwhggxwvwwwwwvwwggggwgwwwvwwvwwhgwxwwgwxwffwwfvfwWwvwwhvwWvWgwgfwxwxhvwfvwxfxxxxwgwxwxwxwxvxwwwvfggfwwgwfwwwwghhWvwhhvwwwwvxvxwxwwwwwwxxxxfwvwVgfvWuwVuswvwgwgvfxWwwwwwwwwgvxgxwwvggvxwxxwxwwxvvgewfgWvvvwwfffhgxggxxxxxxvwwwwxwwwxwwwxwxxwwwxwwwxwetuwwwwvxgWgvwwWvhwxwxwwwwwwwxxwxwwgggwxxwwgxwwwxxvvvgwwwgvwwgwwwxxgwgxwggwxxxxwvxwxwwwwWWgwwxxxwxgxxvwgwfvVgfvgwwwwewvgwggwfwgfxgvghwvgwwwgwvwwwxgwwwxwwxvxwwwvvfvWvwwwwwvuwwhwvgggfwwwxwuxwwhvwwhgvwwxwxxwwxxwguvgwfhuvwgwwwwgwwgxwgWxwxwxwhgxwhfhWWwxgwwxxxxhxXxwwvwwwwvfvxwwwwxgwgxfwxwwvwwxwwxwwwwxwxwvxwwwwwwwwwgwwxwfwvvgxwvvgfwwwwvgwwvuwxwgvwfxxvwwxxwwwfvvvwwwgwwwwwwwwwwwwwwwvwwxwvwwwwwwwwvgVwwwxewwwxwwxwwvwwwwwxxwwwwxxxxwVvvwwwwxhxxwxwwwwxxgwvwvgwgfwwwwgwuxgwxwwwwwwwwwwxxfvvgwwwgwwxwwwwwvwwgwwxwwvwwwwxxwfwwwwgwxxwxvwwwwwxxwxxwgwwwwwwwwwxxwxwevxwhxvwwwwwwwwxxvwwwwvwxxwgxwxxwxxgvxvxwvxgwxgwwxxxwwwwwwwwwxxwwwwwfwwwwfwwwxxwwwwvxwwwxxvwxwfvwwwwwxxwwwwwxxwwwxwwgvfwvvwxxfvwgwwxxwwgvwxgvwwwwxwwxfvvxwvxwxxwwxxxwwwwwwgvwxgwxwwwxhwwwwvxgxwxwxwwwfvwwwwwwxxwwwxwwxxxwwwwxwxxwwwwxwwwwwwwwwwwwhwwwwwwwhwxffvgxwxxxxwvwwxwwwwwwwxwwxvwggwxxwxxwxxwhwwwwxwwxxfwxxwwwvvwwwwwwwvgxwwwwwwwwwwxwwwwwwxxwwwvefwwwwvwvwgvwwwxwwxxwfwwvvuewwwgwgwvvggwwgxggwwvwwwwwwgwxxwxwwwvwwwwxwxxwxwwwwxxwhxwwwwwxwxhwwwvvfwwwxwwwwwxxvWwxxvwwwwggvwwgxwwxxvgfxxwxwwxwgvwwwwwwwVgfxwwwwvgxwfwwggvvwwwvxvvwguvVwwxgvwwwwvwwwwwwwfwwuwgwwwwwwxwWgggUfwwgvwwwgvugwgvwwwwfvuvvxxwwwwwwwwxwxwvvfxgWxwxwxgwwwXwxgwxwvwggvfxgwwxwwwfgvxxxggwvfvwwUgxvxxhwwvegwwwwwwevvxxwwwwwgwwwwwvhwwvwwwvwwwvxwwwwwwwhxwwxxxwhwwwvwwwwgfxwwwwxwwVwwwwwwxgvgxwwgxwwvxwwwexwwwwgwuvwwwwwwxvuwgxxvwwxxwwwwwfXwwwxwfwXwwwwwxxxwxwWgwwwfwhwwxwxxxgwwwwwxxxwxwwxxxwwwwwwwwxxwwwvwxwwVwfvxwwwwgwxxwwgxxwgvgwwwVxwxxwwwwwwvwgxwxWwwwggggfWxwwwwxgvvwxxwxvvgwwxxwwwxfwwwwuwgwhwwxxxxwxwwwwxxgxwxwwxxwwwxfwwfwwwwxxxxwwxwwxwwxxwwxwwfvvvgwvxwxwxgvwvwvvwwwwfwfgwwwgvfvfwvwwwwwfvxwwXgvwwwWuwgUTUvveggvvwggffvfgwwffgUTfeUwefugSwweffvvgvvgdwwvwwwwwwwwwVexwwwwvvwVeUfffwvvhgvwwwwxfwvxUvvwgfvwwgvhxgwgwvvfwvwvvvxwwhWwvgwwvgwxgwvgwfwwfwwvwxwwvwxhwwhwwwwwgwwwvwvwggvvgEUffvvwWuwwggfUvvVwfwfgEUfvfgVufvdwwvfUewggggSwwewwwwwgvwgwgwggffggvwwgvxx7fvvvwggfwggfffwvuWuWfvvwfwfvwggffvvwwgvwggwvwvvgvvwgfvwwwgwgwwWwgvwfwwhvxwxwwwwfwxwwhwwwvwwgwwwwggwwwguXgwxWvwwgwwwwwWxgxwwuugvggwvfwwvwhwgghwwvgwwwwwwwwwwwVewwwvvwwVefeefgvwgvgxwwwfgwfuuwwhfgwwgvxwxhgwvvvvvwwvvvwvfgwwwvghxwwvfwwwvxWxwwvwwwwxggwwvwwwwwwwvxwwUeugUfffwgvwUuevwx7wgvwwggwfeefwgvwxXwwgvwwwwfwhwwvvvuwvwgwwwvvwvgwggfwwgwWeVtvhwwgwwggfwwwwwwvGeVuxwwfvvwggwvfwgxwvvxxhgvvwwgwgvwxvwwgfwwwgwwwwwwwgWvwwggwwwwwwvwwwfwwwhugvgwxfgwwwhwwwwwfxvhwwvuXgwgufvvwwvxxgwWXwwwwgwxwwwwgvxvgwgxgwgwwugwwwggfwwwgWeVtvxhwwwgwggfxwxwwgwwGeVuwwxwfvvwgvXwwxwwwwwwwvwwhwwvwwwvfwwwwwwwgwwwwwxxgwwwwvvwuxtwfvvwvwxwgvfwvwvwxwwwwxfwvwfwwwwvgwwwxwwwwgwvwwfvwgvwguvvwgxwWwdwwwwwvgwfuvvvwgvxfwWwwwwwwxwwgfuwwWtvwwwgfvwgfgwwgghxwguFwefUwwvwhfvxwwwgwxxwvwfWwuvwwxwwwwfwuwwwvwhxwxxUwgvxfwwvwwwxwwvxwwwwwxwxxwvvwwxgwwgwgxvwwwwxwwGvugwwwufvgwvwvwwvxwxguwwwwfxwwhxwwwwwwvwwhxfuwwxgxgxxwvwvwwwfgwwwgwwgwwwwxxwhwwwwwgugvwfwvwfwhwxfvwwwwwwxxxwfgwwwwwvwwwxxwvwwwwwwwhxwxwwfwwvxvgwwxxwvwwwwgwxwwhuwgwgwwxxgwhgwwwvwwgwhwwgvgwWdvwwwwgfwwwffwwwvwvvhwwgguWvtffvvgwwxwvxgwxwwvfgwgwuvuwfwxwwwwwwwhwvwxvxwwvxxwwxwwwxxxxxxwwwvvgfwwwxhwxxwwwxxhxxgweufvwwHhxwwwxxwxgWwxwhgxfggggWwxxwxwwggxwWGxwxxxwwwxvwwwwwhxxwxwwxxwvxwwwvwfwfwuvvwwwxwguwxwwvwwgxxwffwwxwwvxwxxvwwwwwxxwxwgvwfxvwwxwxwwwhwxwxxxwwwvgwxwvvxwwgwvwxxwwxgwvwxgwWwwxxwwggwxWGwxwgxwhvwwwwxwhxwgwwwwxvwgxwuwwwhwgxxwwwwhxxfvwwwwwwwxwwwwxwwxvxgvwwxwvvwwwwwwwwwwwwfxvwwwwwxwgwwvvgwwwvwwfwwwxwxvwgwwwwwwwvwvwwwwwwwvvwwwwwwwvwvwwxwwwwvwwwwwxwwxwxwxxwwwwwvvwvwvwxhwwwwxwwxvwvwwwwwwwwxwvvwwwwwwwgwwwwgxxwvxwxwgwwhwwwwwwvhwwgwwwwwxwfgwxxvfgwwwhwgwwwwwxwwwfgvwwgvxwwwwwgwwwxvwwggwwxwwwwvvvvwvwwgvghgfwwwwfwfwvwvwwxxwwgwwxwwgwwwxwgwxxxgvvwxwwxxhxxfgwwxxwwhwwxxgwwxwgwwxgwxwvwwvwvvxwwwwwxwgwxwfwvwvwhxxxwwwwwvwwwwvvxxwwwwwwwxwwwwvvwgwxwwwxwwxvwwvwgwwwwvwxhwwwwwxvvwwxwxwwgxxwvxvwxxxxwvwwwwvwwxxxxxxwwwhwgwvxxxwwxwwxwgxwxxxxvhwxhhfwwwwxggxxwxwxwgwxhxwwwvvwwwwwwgvgwvxwwwvwxxwwgxxwxwhvwwgxwvwxgwwwxhwwgwwwxgwvwvwxxwwxhvggwwfwwhwwwxxxwxvgwxwxhvwxwvxwwxxggxwwwgwxwwhxxxwwwwwxwhwgxxvxwwwxxxhxxxhxxswwwfwwxvgxwwfwvwwwwvwwxxfwvwwWvwwvgfgWxwxfvwwvgvgwgwegvwwVwSwvwwwvggwWuxwwfwgfWwfwwvxfxvgwvgwwfwwgwgwhwgvvwvwgwwwwggvvgffvggvxxwxvWuwgwugvxwx5vuwwwwxgwwxwwgwvgufwgxfwwwgfvfWwwfwwgwwwFvffwgfwwvwwwwwwgxgvwvwvxwwwvggffvwxwGdgfggvwvgwVwdwgwwvwgvwhwfhwxwwwwWgfwwwwwfwwwxwxwggwwggwvwwwwvwwwwgfvggwwffxwxfgwwwgxwvwwvwwxgwggWgwwwwgwwxwxwfvggfhwwxwwgufgwxgfwxwwxxxwgguxwwwxwwfwwghxwwwwxwwggwwgxvwwhwwfvWvwgffgwgxxwwwwwwwxwwhwxVwwwxWwwvwvwgwxvgxwwwwwuufgfvwvvhfwvxxwxwVewgwvwxwxxFvtwxwxvwwwvvvvfwUxfvvwwvfvvggwgfwxxwwgwuwwwwvwwwhvwhxwvxwwwxwvwvwwxxTuvwgugwwwxxxwvwwxwxwxwwxwvwvxgWxwxwwwgfgwwewfwwwwfxfwwwgghwxWghgwuvwgwxvVVxxwwwwwwwxgvwgffxguvxwfvegwwwwwwwxwWguwwxwwwxwwxhwhwgwwxxwgwwwwwgwwwwwfwffxhvVgwwxwgxhgwwxxgwvgxhvwwwwwxfvgxxwvgxwwwwwwgwxggwxxxwxwvwwgwwwWWgwvwwwxwwwxxvwvwwwwxgvwxwwxfgwgvvwwwxwwwwwwwxwvwxewvxvvwwwwxwwwwwwwwwxwwxvwwwxwwwwgwfvvwvgvxvwhvwwwxwvguwwwxwwwwxwxvvvwvvgvwwvwwwwwwwwwwwwvgwxwwxwxwwxgwvuvfwvvvwgwwvwxwwxxwvwxgxxwxxxwuvvvwwwfggvvgwvgwxwwvuxwwvwxvwwwwwwfxgxxxxwwfvwvgwwfvwwfvwwgvwxwwwxxxwvvvgVwwwgwwvwwvwhgwhwxxxwwvvwgwwwgvuwwxwwwwxgxwxxgwwwwwxvwxxwwwwwxwwwxvvvwfvwwvwwvwwwgxwxwxwxwxxwxwxwxwwxwwwxwwwwgxxwxxxgxvguwgWwwfwwvwwwwwxwvwwwwwwxwwwxvewvvwwxwwwwwwwxwxwxhwwgvwwxxwxxxwxxwegWwvvvfgvwvvWwfwwxwvwwwwxwwvxvwxxxwwwwxxxfgwevwvwwxggwxwxwxwxwwwggxxwxxxxxxvfwvfvfvuwvwxwwwwwwxwwwwwwwwwwwxwxxxxxxwfgwwvwwvxxwwwwwwwwxgwwxwwwwwxxvwxxwwxfuewvwvwgwgwxwgwxvwwgwwwwxxwxwwxhxwwwwxwgwwwwwwgwgxwxwxhwwwwxwwwxwvwwvvwvwwwwXvgvwwfwvxwwxwwwwwxwwxgwvgeUwxhwwfvwwwxxwvwwwxwxxwxvwfvwwwwwfwwwwxwxwvxwgwwwwwwwwvxfxwhwwwwwwwxxwwwwwwwwwwwwhgwwwwxwwwwwfwwxxwxwwxxxxxXvgwhwwfgwhwgxwxxxxhwxwwwwxwxwwxwxhyxwxhvfvwwwvwvxxvwwwwxxxxxxxvxwgwwxwwwxwwwxxxwwxhwwwwxgwwxwwwwwwfwwfwvxxwgxfwwwwwwwwwwwwwvwgwwwwxwvwwxwxwwwxxxwwxxxvvvwwwwUvuwhwwwwwgwwgwxvvwffwxxxxwxwUefwwwxvwwgxxwwhwwwxwxxwxxwwxxxwwxwfwvwxxwwxxwwgwxwwxwwwxxwwwxwxvwwwhwvwwxxwhwxxxgxwxwwwwgwxxxxxxxxxxwffwwxwwwwwxwxvvxwxxxxxxhxxfwwxxhwwwwwxxxuxwwxwwwwvwwhwxxwvxwvxwwvwwxwwxwvgguwvwgvwgwwwwwwwwwwxxvgwgxgwwvwfggfwwvgwxwxxvxxvxvwwxvgfvwweuwwwxwwwwgwxvwxvwxxxxwxxxwvgwwwwwgxwwggwxwwvwwxwwwxwxwwxxxeuvwxxwxxvffwwwwgvvwgwwvwgwgwggvwhwxwvvwwxxxwxxwwxxgxxgwfwgwwwVvuwxxwwxxwwwxxwwxxwxxfwgxggwgwwvwwxfwwwxhwvvwwwvwwxwwxwgxxhwxwvwwxwwwgvwwgggxvwwxwwwxxxxxxxxgfvwwvvwwwvwwwxwxwhwwxhfxwxxxxxxxxxwwvggfgxfwfwwwgwgwxxwgwwwxwwwxwxwxggffwwvwwwxwwwwxxhxwwwwxwxxxxwxwfwwwxwwwwwwwwvvxwwwxwxwwwxxxxxxxxwxwfwwxgwvxwwwhxwxvhgxxwxwxxwwxxxwwwfvvgxwwwwxvwgffxxwwwxhvxxxwxxwxwxwxxxxvvxwxxwxvxhwwxxxxwwxwwwxxxxxxxwxxvvwwwwgwwwwwwwwwxgvwwwwwvwwxwwwxwwwwwwvvvhvwwfwvwvwwwwwgwwxgvwwgwvwxgwwwwxwwvwvvwwwwgvvwwwwwwxwwwgwwwxwwwxwxwxfvwwwwvgwwwwwwwwvgwwwwwwwgxwwwwxfvxwxwwvhwwwwwgUfvwgwvvwwgUfvvwvwwwwwfffwwwwwwwxvggwwxhwwxwwwwevvwvwxxggwweuwwwxwvwggvwggwgvhwxwggwghwvvhxwxwwvvwvvwwwvwwwwvwvwwgvwwwxwwwwwvwwxwwwwwwxggvvwxeuvwwwwwwwwvwhwwwvgwwgwwxxwwwwwxwgvwxxwwwhwwwvhwwgvwggwwwwwwxwwwwwvwwwwxwwwwwwwwwwvvwwwwgwwwwvwwwwxwwwwwxvwwhvvwwwxxxxwwwwwwwwwwxvwxwwwwxxwxwxvwgwwwwxwwxwgwwwxwwwwwwwxwxgxwwwwxwxvxwwxxwxwwwwwwwwwwxwwxxxxwUffwwfvwwvwwgwgvxxxvwwxwvwxxxwxvvwgwwgwhwxxwhwwwwxhvwxwwgvwxxxxxxxxxgwwwwvwwxhvwxgwwwhwgwvggwgwwgwxwxwwwwxwwvwwwwxwwwwwwgxvxxxwwwgwwxwwwwxwwwwwwwwwwxxvxgwwwwwwvvwvwwwvwwwwwhvgwvvwwgvvwvwvwwgvvvwwgTEwwwwwwwwwwwwwvwvwwxvvwwwwxxxwwxwxwwwgwwgwwwwwwwwwwuwwxxfwwwxwwxxvvgwwwwwvfvwxwwwxwvwwwxwwwwwvhwvvwxvvwwvgwwwwxwvgvwwwvwxwwwwwxwwgwwxwwxxgvgwwwwgvwgvxwwwhxvgwwwwwwxxwvwxxxwwxvvwwwwgfwvwwwwwwwuuwxxxvgvvwwwxfgwwwwxxwwwgvwwxxwwwxvgxgwvvwvgxxgwwwxvwffwgwgxwwwwwwvvvwwwwwxxffvwgwgxxwggwwxxwwwxxwwwxwxxwxwwffvwwwwgwvwwxefuvwwwwxxwwwgvvwxxxxwgwwxwxwxwxwefegwwwwxwwvwhvvxwwwwwwhxvxwxxwxwxxwwwwwwwwvvwvwwxxwwwwwwwwwwwwwxwxxwxwwwxwvgxxxwwhxwxwwwwxxwwwgvwwwxwfwvxwhvxgwwwvxwwxwwhwxwwxxxxwxwxwwwwxxwxxxxwxxwwwxdfwfgwfvwvvvfwgvwwxvegwwvwfvxvwvwwwxvwvggwwwwfwwxvxxggwvevefgefwdeuvfVewefwvfvwwwwgefewfwfuwwwfvwxwwgwwwwwwvxwxwvfvvwwgwwwvfwwEuwvgwfvvvwwwgvxgwfwwfwwuwvWvgwwxwghxwwwfggVvvvfvefwwwwfvwwgwvgwwwxwxwvgwvwuwghwwgwwwgxgwxgwxWgfwxfgwwgwvegwvvvfffWvggwfewvxwwwggwevwfvwxwfvgwwwgugvwwwwwvfwwwvvwfgvwwwvggfgfhwwWvwfvgxvgggwwvgguwwvwwwffwgfwhvwgwwgwvwuVwwwvwfvwwUVevgwgwfwfwwwwgvvwvwwuxwwwvwfgxwgwvwwwwvffwgwgwhfgvgfxvwffwgwwwgfgwwwwuwwhfwgwwwvwwgwghfwvwgwwwVwfwvevwWfvuwvfvvwwwfevgvfwvfvwwwxvwwhwVfvwwwxhwwvvfwvvwwfgwwfvwgffgwwwwWwwggwvvwwwxwgwgwwvwxwwwxxwwgwwxwfvwvfvVftwuvxwVfggvggvwvGwXgTvgwwwugwvwxxfwhWWwwfxxxwwfwwuvwwuwwgfwvVwwwwwgwWwWgVwwwwgwxwwwwhwvvxgxwhwwgxggwwWvxvxgVvwvwfufwwwffvwwfwguvgfxxwggwwwwxvgxwwwxwwwhwwwwwwwxgfwgwwvgefwgvwwggwwfwWhvgwvwwvvggwwhgwwwwvvwxxgxwxhxwvwfuuwwwvwewwwwuxwvggVwgwewvwgvvwvwwgwwwvwwwgwwxwgvxxwwugwwvwhwwgvVugwxvwhgwvvwwxwvvwfxwgwgwxgwgwuwfwwwvxwxwwfwwwgvgwvwxvwvwvxwwxgvwvwwvwwVwwuwuwwwwvwwwfvvvwwwwwwxVwxwwxewwxvwwwwwvwwvvwvwxwuwwwwwwxvwwwvwwffvgwvwwwwwwxevvgxwwxwggvwvwxwwwwwgwwwwvxwvvwvvwgxvvwwgwwfwwwwwvwwxxxwvvvuwwwwwwwwwwxgefgwwwvgwwxwgwvwxvxgwwxwfvwwxvwwwvwxxxwxwxuggvvwvvwvxwwxwgwuwhxggwwghevwwwwwwgwhwwvwxwxwwwuvwwxwxxxwwfwwwwwwwgwvwxwwWvwwwgwgwwxxxxxwgwxwevvxwwvwwgvwwuwwxwwwwwgwwxxxxxxxxxwvwgwwxwwhwwwwwwwwwwxvwwwwvvxxxxwhwwxwxwfVgffvwxwwxxvxwwxwxxxvxwxvxwvxxwvvgwwwhwwxwxvvgwwwxxgvvwwwwxwvwwwwwwwwwwvwwwwxwwwxxxwwxxwxwwxxevvwwuwwxwwvvvwwwxxwwwwxxxwxhwxwxxxvwwxwwwwwvgwgxwwwxwxwxwxxxxufvwvfwgvwwufwxwxfufwwwfwwwwwwwwxvvvwwvwfvwxvxvwwwwvvgeevwfvvwvxwwweewwgvwgfvvwugwvwwxwvwgWvvwwwxwhwveuvxwwvwvwwvvvgvwvwugvvgxwwwwwggfwwwxgvwvxvxwxwhfffvwfewfwwwxfvfwggwwgwwvxxvfvwvwwwxwgxxvxxwgwxxwwxwffvgvwvxgfuwvvvwffwwwwwwevfvwwvggvwewveufvvwvfwugvwfxwwwxwvvxwwgwfffwgwwwvwwwxwxgvwgwxxwvwwgvwwhwvwhgvgwvwxxxggwwxvugggvwfvvwxwffvwwwwwevwvwxwwgvwwwwwwwwgwfgvwwwwggwxvwwvvvwwwwvwwwwwvwwwxwggvwwwvwwxwgwhvxwvwwwwxwxwxfuvwvwfwgvgvwfefgvvwwgvwvwvxxggwwxxvvwwvwWuxxwxwwwxfefvwffvgwwwgeevwwwwwwxvgwWvvwvwwxwgxhvxxxwwxwwwvvvvvgvgwxvgffevwwvwwXwggeewxwwwxwxwwwwfwgxwwwwwwxwvvwuwwwwxXwwggwvvhwvwwwvwwwwxvwwxwxhwxwwxwvxxxxfffwfwgvwxxfvvwxwvwwgwwWvfvvxwxwwwfxxwwvhxxwwxxwxffxwwwvxgwxWvgvwwwxxwwgWvhwwxgwwhwhxwxwwwwwwwguevvwvwwwhxwuvgvwwwwwwvxwwwwgwvwwwggwwwvwgvfxgwwxhxxwvwwwwggvgwwxhwvgwwvwwxwxwwxgxxwwxwwxewwwwwwwwgwvwfxuwfwwwwgxwfwwwwwxwwvxxvgwgwvgwwfwVvgwfwwVwwggwvwvuxvwuwwwgwwhxwwwwwwwwwgwvvxwvwguwwwwwwwwwwwvwwxfvwxwwxxxwwxxWwgwwgwwvwfwgwhxwwwwwxxwwwxxxxWwxwwwwwwwwvufwggvwwxwwvwwwwwwgvVgvvvwxxwfwwxxwwxxxxwgvxwwxwvhwwwvwwwwgwxwxWgvgxxvwxwwwwgwwvxxwwwxhxxxwxxwwvvwwxfvwxxfwwxxwxwwgwxVgvxxwwwwwxxxxxgwwwwwxwgwxxwwwwwwxwvxgxxxhwxxxxxxvwwxhuwhwgwwxffwwevfwvxwxwwwwxwwwwxwgxwxwwxxgvgfgwvwfwwxevvwhxWuwxwwwxxwvwxwxxwxxgxwwvxxwwwwgfxwwwwwxwxwfwggfgwwhxxxxxhvxxwxwwwxffwwwhwwwxvwwgvWwhhwgwwwwxxxxwxwwwxxxwxwwxwvvwwxwvwwvwwwwwhgvwvwwxwwxxxxxwxwxxhwxwxvwgxwxgwvwwwwxwxxxwwwwxxwwxxxxxwxxxwhxwwwwxwwwxwxwwwwwwgxWfwfgwwwwxwyxxxxxvxxwxwwwhwxxwxxhwwhwvwxxxxvxwxgwxwfgwxvwxwwvxwwwvwhvfwwxwxwvgwwgeTvxwwxwxwxxwwwhwvxwgwwhwxwxvwxgwwwwwgvwxwwwfvwwwvwwxwxwxxfvvwwwwgvwxwxwwwwxwwwwvwgxwwxxwwxugxxgvuwwwwwwxgvwwwwwwwwwwwwwwwwwwxhvfwWwwxwwxwxwwxwwwwwxwwxxxwwwwxxvwwwgwwfvvwwwxwvwwwwwwxwwwxwwxwwwwwwwwvxwwwxxwwwWgxwxxgwxwxwxwwwvwwwwgwvwwwwwxwwwwgwwxwwwwwwwwwwwgwwhwwwxxwxvxxxxwvuwfvfuvgvwwvwvwvwwwxwwwwxxwhwxxxwxxfvVvwwWwwwxwxxxxwwxxxxxxxwwwgvwwxwxwwxwwwwwxvxwwwwxxxvxwxxxwwwxwwwwxwxxwwxwgghwxxwwxxxxghwxxvwvwwwwwxxgxwxwxxxwwxwxwxxxxxxwwwwwwwxwwxxxxxxxxxxxvxgwwgwwgvwwwwvwwwwvxxvwwwgwwwwvwwwwvggwxvvwfgvwwwwwwwhgwVwwwwxwwffwfwvwwwvwxvwfxvwwwhgxwvwwwwfvwgwfvvwvvwwgwwwxvgwwwvvwxgwvwxxxwVgvvwfhwvwwwvwwvwWxfwwwxwvwfvwwxwxwgwwwgfvvffvgFuvgwwwwWwwwhwegwxxvwgVuvvwwgwwvgwxfwwwwwxvfgwwhwfvwwwweuvwwwwvvwxwwXWWfvhxwTvgvggvfwwwxwfwgxgvwhwwxxfgfvvfvgvwwxffvwwwgwwwwwwwggwwwwvwwwxxxvwxgwwwhwxwwwTufwwvggxwgwgwgfwwggwhgwwwwgxhWvwgxwxxxxwwxwvvwwfwwvxvwvwgwwxvwxxwvwwgxgwwxxwegvvwwwwwwwgggwgwggwwxvvvgwgwxxwxxxwxwwwwwwwwwwgwxwwwxwxxwxwxwgwwwfwwwvxgwxgxwwhwwxvwwfwwwxxgxwwgvgxxwxwxxwwwwxwwwwwwxxwxxwgxxwxgwwFuvwwwwwwwwewwwxwgwgwxgxxwgxwxxwxxxgwwwwwxxxwxevfwggvvxwxxvgWufxhvwhxwxxwhxgfwwwxgwwxwWvvwvwgwwxwwxvwWvxhwwgxxvwwxwvxwhwwxxgxwwwwvwgxwwgwwwgwxwxwxgwwwwxxxwxwwxhxwwxxxwxwxxtwwwwwwfvwvwwwwwxwvwvwvwfggwwwwwwvwwwwwUvwwwwwgwwvwwgvffvgwegvvxvwhfwgwwwwwvwvwgUgwvuvwwfwwwwxWwxwwxwwvwvwwwfvfwwvwwwUwvfwxxxwwwfwwxgwvghwxxxxgwgVfgxUvwwwggxwxwwwhxwxwvwwwwxwwxvhxwwvgvvwwgvwwwgVwvgwvugvwwfwwvwgvfwwwgvxwwwxEWvwwwwwwvgxxhxxwwvxwgggfwgWvvgwgwvgghwvxwgggfwxgggggwwwhwwfgwxxhwXxwxxwwgwgvvfggwxxvwFWvwhwwvwwxxwxwgvxwwwgwxwwxxgwxwxxwxwVwfgfwgxwvwwgwggWwwwXvwxwwwwwwwwxwwgwxxxhxwxxwwwggfvvgvxfwvwgvwggfvxgwxfvfwwwxwxfwwwxxwwwxxfwVfgvwdvvvvgvwxggfxwwwxxwUwvwxghxxxxxxwxxfwfwwfvxgwvWwwwxwhxxxxxggwxwwwwwwwggwxxxxxwwwxxVevwwwwwvhwhwxhxxxxwwhwgwxxwwxxwxxgwwxxxxxvwwwgwfwwvugwwwwfgvhwwggwggwxwgwwxxwvwwxxwwxxwwwxwwwVxWffvwwwwwwwhgwwwwgwhxgxvgwxwwvxwwxxgwwwxgvwwwgwvgwvgwwwggxwgxvxxwvwxxwxhfgwwxxwxxgwxwwwwwwwwwxxwhxvwxwwxwxxwwgwhxxxufwwfvwxxvfhuWxgwwuwvvxwwwvgvxfwwvxvxwfwvvwfxwweUvvwwwwxxufwxvwvwwvfwwgfwvwwfvwwwwwwwwvwwvguxxwwvwwwgxwwvwvwggwwxwghxxwwxxxwxvvwwwwwwwwgwwwwwwwwwwwvwvwwwxwwwxxxwhxgeWwwxwfwxxwwxvxxggvxwvwxxwwwwwwxxxxegwfvwgvvwvwwfwwuwvwwxhwwvvwwwwwfwvwwwxwxhwwwwxvwwwwvgxvwwwwwwwwwxxgxwxgwwwfwfgxwvwwxwwwwxxxwwwwwxwfgwwwwwwxwwwwwxxwwvvwxwxxwhwwfevwfwfwwfxxwwwwwwgxwVuuvwvwwwwwwwwxxxwxgxeeewwxxwwgxxxwuxwxvvwgwxfwhwxxvxxwvxxwwwwwwfxwwvxwwwxwwwwwxxxwxxwxwwwxwwwwxwwxxxxwwwwxwwwwxwwwxwxfwwfwwxxxwvwguhwxxwxvgxxwxwwvwwwwxwxxwhwxvwxwvwxwwwxxwwgxwvwvwwwwvuwwfwwwgwvwgxwvwwwwwwwfwvwwuwhvwwgvegwfwfvwvwwwwwwwwwxhwfwuvwuwxWwwgvwwwwhxwwxwwwwwvwwwwwwvvwwwxwwwwxwwwwwgwwwwwvvwwwhgwwwvvvfwvwwwwxwwvwwwXwwwwxvwfwggWwhxxxwwwvxxwwwvxvwvwwwwwvxwVgfwwwwvwxwgwgwgwwwwwwvwxvfwvfvvvwwwvvvwgwwwwvwwwwuwwwwxwwvwWgxuwwwggvwwwvguwgwwWwWxgxwxxwvwgwwwwvwwvUwwgvvwwwgxwwwwgwwxhxgwvwxfvuxfwwwgvwvwwffwvgwwwwwwgguWxwwwxwvWxfgwwwxvwwgxwxxwwxxwgwwvwwwwwxwvvwvwwwwwxxwwwwwwwwwwwwgwwwwwxwxxxwvwvwwwwwwgxwwwwvwWwxxwwwwwwgwxwwwxwwwwxxuxxwwwwwgwwwwgwwgewwgwgwxwwxwwwwvwgwwxwxwwVgwwwwxwugwwwwwwxxwwxvwwhwwgwwxxxvwwwxwxuwgwwxwwwvfvwWwwwxwvxxxWwvwwwwfwxxwxwwwwwxwxvwwfxxwxWwwhXxvxxwwwwxwwxwxwxwxhwwwxxxxxwwwwwwwhxwwwwewugwwxwwgwxxxgxwghvxgxxxhwxwxvfxxxwwxwxxwwxxwwwxvwwxwwwwwwuwwwwuwxuwwwgwxwwvvwvwfwxwgwwwwgvwvwwwxwhwwfgwvvwvvvvwvwwvwxfvxwfvgfwuwwwwvxvwwxwxxxwxvxwgwwwwfwgwxwwffvwwvwwvxvxwwwwxwhvwwwxvwwwwwwwwuxwwwxwwwhwwxwvvhgwvwwwxgwwwwwhwxwwwwwxwwhxgvxugwvwwfgwwwvvvwwuvwwvWwwwwwwfwxuwwwvwwwwvwvwhwwxwxvwwxwvvxffvvgwwwwgvwwffxwwwxwwvgvwgxwvwhwXxxxvxwfwwwwWvvxwgwwwxgewwwwwxwffwvwgvwwwvxwvxxxwhwgxugvwwvgwwvwwvvwwvwwxwgwvwwxxwxvvxhxwwwvxvwgwgwvfhwwwwwwwwwwxwwwvwwwwwwwwwXgwwwvwwwwwxwxhxxwvwvwxwgxvwwwwwwwxhvxxwwwxvxwgxfxxwxwhxwxxxwwxwfvuwxxwwwwwwxwxxxfwfwgwvwvxvwwgwhwwwwgxxxwxfgxggvwwwwwxwxxxwvwxxwxwwxwhxxwwwwxxwxxwxwwwwxgwwwwwwwvwwwwwwvwwvxwwwxwwvxgxxwwwwwwhxxxwhwhwwwwxxxwxWxwhgxvghwwwxwxxwhxvwxxxxwwvvwwwxgwwwxwxxggfwhhxgxwwwXwvwvwxxvxwxxwxWwwgwxhxvgxxwwwwvgxxwxwwvwxwgwwxhwwwhgxwxueefvvwfwxwwgwwwvgwwvvewvwwwvwwwwwuvwvvfwwwwvwvwfwwfufvvwgwwvgwgwvwfudvgvgwwwwwgwwgwhwwwxhWgdvwxewwwwvwwfwwfwvwxwvwvwfffgvvvwwwvwwwwwwwxxwfuwVwwvewwwwwwwwvxwwwwwwxwVvgwVwwwxWxwwwwwwwhwgxxfeugvwwggvwfvgwwwwVvwwgwvfuwuvuwvtvwvwwewwgwvgwwwvwwwgxwvwvvwwwvfwvwgwwhwwxxxwfwgwwvfggwwgxgwwgwghwXhwhvwtwwfwwwfwwwwwwVwwvggwwwwwwwvvevdwwvvwggggxwgwwvwwwwwwwvwwwvgfgwvvwwwwgwwxxwgwxxvvwwvWwwxgfxwwwwggwxwwwwxevwwvvgwwfgtwfvewwwxwxwgvwwwwwgvxvvwxwxxhxwwfudfwwwwwwwwxwwwxxgwhxgevgwwwwxhwwxxwxhgxxfxvvvfUvvfvfwwwggwwwwvhwxggvvvwwwgxwwwwwwwwgxwwwwwwxxfwvWwgggxwxwxwWgvxwwxwwwXwgwwxxwwhxxxxxwwffvvwuwwxUvwwgwxvxwwwwxwwwwwxfwxgxxxwxxwhgxxxxxxfwwwffwxwxwvwwwxxxwxhwwxxxwgghfxxgxxgfxxhxxfvvwtvwvfwwwwgwvfwwxgwwwxwwwwxxwxwwwghwxwxwwgxxwvwwgWwwvxwwwXhwhvwxwxxxwgwxxxwgwwxxhwwwwvwwwwwwwxwwvwxwwwwvwwxwxwxwwwwwwwwwvwwwgvwvfwwwwvwvxxvvwgxvwxxgwwvxwvwwwwwwwwgwwwwwwgvwwwwwvxxxwwwxwxwwwwwwvwwwxwwwwhvxwxvgxwgxwxxhwwwwxwgvwwgwwwwvvwxfwvwwwwvxwxvxwwwwwwgvwxwwwwwwwwwhwxxgwvwhwwwwgwwwghxgwvhhvvxwhwvwvfwwvxwfwgwvwwvvwwwwwxwwhxwwvxwwxgwxwwwgvxvwwwhwvvwwwwxhwvwwvxxxwgwxxwwwvwwwvwvxwwwwwxwwxxxwwhxwvxxwgxwxwgwwxwhwvwxxxxwwxxxxwwvvwwwvwgvxwwwgwhwwvwxxggwxwxwwxwxvwgxxxxxwwwhxxwwxxxxxxxxxhxwxvwwwwwwgwvvxxxwwwggxxxwxhgxwwwxwxxwxwxxwghhwwgwxxxxxxwxwwxhgxwxxgwwvxwwhwvwxvvxwxgwwhxwwhxwwwhwxwwxwwwwwwhwwxxwxwxxwxxtwwVwgwVwwwwvfwwwgfuwgVwwvvvxvwwfffwwxfwvxwwfwwwvedxdwvwfvvwfgwvwxwTdugvgvguggwgeevwxVggvgwwxwwxwxwUvhfgffxwwxfgvwwwwxgwvwfVuxfwxuvwwwxVuvwwvvxwxwwxhvwwgvuwgwwwvwvxVfevhwwwwwvwxhhVuvWwggwwwgwgxgwwHgxhwwwWwvVVvwweugUVwwxwuvfwgwwwUhwwwwuvwxxxffgwvwvwwwwwwgffxwxwwfvuwwgWwvgwwvwwhfuwhhwwwwWwwwgwwwwxGwwvwhwwwxwweggWwvwwwxvwwxWevwvwfggfwwvwwfvvxwwwgwxwvwwfwxwwwwxwvvugwwgvgwwwxvwwWfvwwvgvgwwvwwwvvwwwwwgwxwewwggwggwwwwwwwGwvwwevwuvuwvfvgwgvvvwwgwvgwvwwgxeuvxxwwxwwwwwuewfwwwevwxfvvwXwwgwwxxwwvffwxwhwwvhxxvhwgWwxhxwwfvffgvwuwwvxvxFvtwvugvwwwxwvgwgwvwghfwwwgfvwwXxgwwWgewwhweevgxwfxvwWwwfXhfwhxxwwxhxhgfgfwvwxxhwhwhxvvfvwfwvwxffWwwwwwwxxxwwxwvvwwxxxwxxwwwwwgwxxwwwwvgwggwwwwwwVgfwwhwwwxxwwxwgvwxwhwhwwgxwxxwxxwxVfuwgxwwwvwwwfxwxwwgwwfwuwfxwgxwggfwwwwwwgwwwxwwwwwvwwwwwgxwfwuxgWfgxgfwvwwxwxwxwxxwgwwwxwwtwwwwwwwwxwxwwwwwwwwxwwwvwxwgwwwvewwwwwwgwxwwwvwwtvgwgwvxwgwwgvwvvwvvwwwwwwwwwwwwwwwvwvwuwxwxgvevwfwwwwwxwxwxwtvwvvwxwxxfwvwwvvvwwwvdwggwwwwvfwwwfwwwwwwwxwwwxhwfVvwgwgwwwgwwwwwvwwwwxwxxwevwwguvwwxxwwgwwxwxxhxvvwvwfdvwwwwwvwxwvwwfwwwwwwxxxwxwwxwxvvwvvgwwwwwwxwwvxwgwxwwwwwuwwwwwxxxwvwwwwvfwvvhggxwwwwwwxwgvwwxwxwxxxxxxvVvwggwwxhwghwgwvwwwwxwxxwxwwwxwxvwfwvwwfwxggwwwxxwwvwghwwxxxxwgwxxxxxVggVwwwwwxwxxwwwxxwwwwxwxvxwwxxuvvfvwwvwxwwgwwwwvvgwxxwwwwwwxxxxwwwwxwxwvwwwgvwwxhxwwwfxwxgwwwwxgwwwxwwwxxwxevfwwfggwwxwwvxwwxxvwxxxwwwwwwwwxhxwwxhxxxvwwxgxwvxwxwxwwwxwwwwxxwxxwxwxxxswvwvvvfwvvvwfwvhwgvgwwwwfvvvwvvwwfggwwwvwvvgwwvvfvvvvwguwfwvvvVuwvgwgwwwvwwvguwvwcutudVwwvvwuwuwwwwxxwwxxvfewvwevwVewevugwWvvwvwfvxwwwwwwvevvfwwwxgwxwwxwwvfwevdefvwxwwwgvwxwvgwvgXWfwffvfvwwwvwwwwgvxxxvxwwwfwvwvffwgfgwvwwwffwwwwvfvwvvgwvvgwvvwuvvwtvgwwwwwwwxwvvvvwvvwwggWvfuwwwvvvvwwwvwwhwgwhguwwwvvwwvfwwggvwwxgwwvgffvvvevxwwwwfvvgfvwwwwwvwwwwwfvvwwwwvwvvwwwvwwwvgwuvwwwxwwvwvwvwwwwwwvwwwwwwwgwvvwvvhxwvwwvvwwwVvuxfgvwwwftuwvwwwwwgvvwvfvvwhwxwwwvvxwwwxxxxwvvVwfvvuwvwgvgwwgwvfwwwffvvvwwwgwhwxwwhgwwwxxvvfVusggwgwuwwWvwvxgvgwxggwxwwvvvwwwvwvvWgevwvwxhwwwxgvwwvdvvvffevwgwwxwwwhgvwwhwhxvwwwwwwggfXhgwwwfwwwwxggvwwvgfguwwwwWvwwwvvwxwvvfvxwxwxxxwwwxvgwxxxwwwwwfvfvwvwwvwvwvwwwwxwwwwxgxwwwwwwgwwwwwwwwxxxxvevvvwvwvxwgwwgwwvwvvgwwwwwgvvhfvwvwwfxwwhxvwvgufxwwxwwwhxWwxxwwwvwwwxwwwxwgvwwxxvvvwgwwvfwwwvvvwvwhwvxgwwvwwvvvwwwvxwwwwwwxvwgwxvwvwgfdwewwdvfwxwegwvuvwwwwgvgvgWwvwWwwgvxwwxgwwhxvuwwwvvwvxwvgwuwwwwwgwwwwxgwwwgvvwwwwwwwxxwwxwxxwvvfVwgwwgwwgvfwxgwgxwxwwfvxhxwxwxwwwwxxhxvwxwffffwfdgwwwdvffWVuvewwewvgwwgwwgwvwgwwwwwwvfwgwfggxfwwxwxwgwvxgwVgfgvvwvvwwggXwgwwvwhwvvwWwXvwwwgwgvgwwxhhgwxwxxwwuwwwgvffvwwwuffgfwwxgwwVwwwvwgVgxwxwwxwwxxvggwwwwwwwwwwgwggwvwwwwgwwwwxwwhXvwwwwwwgxxgxvwwwwgxWwwwgVvwfxguwvevxwwghwgwwwgwuwwxwwvvgvwwwwwxwxwwxwfffwvvVwuvwwvwwwwwhhwwxwwvvwwxhxxwwhwwxwhwvxxwwwwwuwwwwffvuwwgwvVwxwggwwWghwwwwwhwhwxxwwxxxwggwwxgwvfwvghgwwwvwwwxwgxxxxxxxxxwwgwxxhxxwhwwwwwvfwfvfvvwwwgwfwwvwwwwwwxwwfxwwwhwxhgwwwwgwhwwxxxxxwgwwwwgvgwwwxwggvwwxxhwwxwwxwwwggvgxwwwxxwXwgwwvvfvvwwhugwwwgwwwwgxWgwXwvwwwwxxxhxwwwxxxxwwwhgwwxwxwwxwwWwhxwwwwxwxwvwwwhhwxxwwwwwwxwxwuwwvvvxxwwwvwvwvvwvwwwwvwfwvwvwwwwvvwwwwfwhxxvwfvffwvwvvwwwvvwwvhhwvwfwvwggvxwgfwwwxwxwwxxwwwguvvwwxwwwwgwxwvxxwwwwvwwvfwwwxvwwwxwxwwwgwWfwvwvxgxvwwwwxgwxwfvwxgwfwwwxxwxxwwwwvwwggwwgwvwwgfgfxggvVfvwxgvfvfwwwewvwwgwVvwvgvwwwwwgwguwwwgvwwwwgwwwgxxwxwwfgvwgvwfvufWvwxgwfwwwwgxwhxxwwwxwfvwvgWfwwxwwfvxwwwwxwwwvuwwwvwwxxwwxxwgwxxwxwfwwwwwvvvwgwwvwgwxwwfwxwxwgxvwwvwhwwwvgxxwwwgwxwwwxvfwwwvxwuwwwwwwwxwxwgvuwwwvwwwfwwwwwfhhxhxwwvguvwwvfwvxxWxxwvwwwwwwgwfhwxwxvwhxwwxxwvvwggwwwgwwwgwwwxhwwwvgggfwwwxwwwhxgwvwfgxfxxwxwwgvwvwwWwgwxwgwgxwfxgxwxxggwwgxggxwxxxgwwwxwwfwvwvwwxwwwgvgwwgwwwxwwwgvgvwwwwxgxwxgwwwwxxwwwgwwwwwwwwxwwwgxwxxwxwxgwvwxwvwgxwwwwxwxwwxwvwwwffxwxwwwwwwwhgWwwxwwwwwwxwxwxwwwwwwwxvwxwwvwwwwwxwxwhxwxwxvxvwwwwxggwxxwwxvwvwwwwvwwwxwwwwwwwwwwwxvwwwwxxwwwwvfwwvwwwwwwwvwwvvvwgvwvvuwvwwwwxfwgfwwhxwwgwwwwwvvwwgwwwwwwwvwwwfhwwwwvwxwwwwvvwwvwvxxwwwvvwgwwwwwgwwwwhwwvgwWwxwwvwwwwwwwwgvwgvwwgwWfwgwwvwvwfvwvwwwwwwwWvwwfvwgvwwgwgwgwwwwwvvwwwggwwwgwXvvwghwvwwwwfvvvwhwvVwewgxvgwgwvwwwwwfwxwwwwwwwWuwwwwvgwvwwvwwxxvwwxwwwgvwvwwwwgxhfgvxwxewwwwwwwvuwwgvwwwwvvwwggxgwwvwvwwwwgwwwwwwgwwxwwwwwwgwwgxgwwwgxhfwhwxwwwgwwwwxxwgwgxwwvxgwwhhwxxxvxxvvvxwwxwvwwwggwvvwwgxwwxVxwWwwhwwvwwwhgwwxwwvwwwgwwxwxwgxgwxwwwwwwxwwxwwhxwwwwwhxhvgwwwgwwwxwwvwvwvgwwwwgxwwxfwgxgewwhwwwwwhwwwwwwwxxgwvwwhhwwvwxgxhwwhxwhvwwhwwvvxwgwwwWvvxxxwwvfwxvxwwgvvhwwwxxwxxwwXfgvwxxxwxxgxxwgwgwxvwwxxwxwvwxxwwxxvhwxxwxefvwgfwgwwwvwwgwvwwvwfwvwwfvvxgwwwvvxgfvgvgwwwwfwvwgfwvwvuwwvwgVewWvvwwvfgwwwwffvwuvvwvwwgvwuugwwwwgvwggwuvgwfwvgwfwvwgfgwwfwfwuxwhvgwvvwwwxxvVwvwwgvvwxwgffwfvvwfwuwwwfvgggwwfwvgwwufwvvwgwwwwwxfwgwgwwwwgwvxwgVfWggvvgvgffvwwWegvuvvvvvwuvwwgggvvvwvwwwwwuuvgwwggwvwxgwwwwwwwwvfgvvwWvffhwwvgwwvxgwffwfuwvwwvwgxgwwguwwwXgvwwgwgwwevwwvvwgwgwvwvgffwwwwWwwwwvgvvhvwwwwxwwegvwwwWggwgvxvvvvwwwwwxwwhfgvffwxgevwwwwwwwvwwvvvvwwwwggvwhxwwwwwwvwffvwwvVwwwwwwgWfwwwwuwwgwvvwguvwwxxgvwwvwhvwhwwwvwffvvvwwwxxfuggwwwWwwwhhuuvwwwwxwwwxwgvhhxxhgwwfvwwvfgwwwwwhgfvwxxgwgxxwfwVvvvwwVxwwwvwgwxgxwfxxvwvvwvvwwwwgxwwxhxwwxwwxwwgwwgxvwvhwwwxwwwwfgxwxxwwwwvVwwwvwfwhwwwvvwwwwgwwwwxwgwwwwxxwwwwxxxxwxhvxxwwwwxwhwxwwwwwWxxvghuhxvxfwhwxwxwvgvWggxxwxwwgxxwfvgvgwgwgwgwwwggggWwwwxxggufvgggwuvwxwwwwwwwwgwvxvwhgwghxfwwwwggywwvxxwwgvwwwwwwwgwwfwtwwwfvwwggxuwvfwwvwwwvwxwwwwwwvvwwxvxwfxfwwvxwwvwwwftwvfugwwwwegvwufwwvvxwxxwfwewvwvvxvvwduuvwxwxxxffxwUtgwxggvgvwvvwwvwvwwxgwvffvwwvwwgvwwwwwhwggwwfwvffwwwvgwwfwvxhgvxwxwwewUvwxwwwwwxWgwwwwxxwwwwwfwwwwgfgvggvvwwgvwvwwwuvvwgwfgvfwvwvxwwvwwwxwxvxwwwwwfxvgggvgwwwwwvvvwwwwwgxwwwvvwwgWwvvvwwxwwwxwgxwwxwwfgffvvwgwwwwfgvwwwwguwwwwwugfvvwwwwxvxwwwvvfvwvwvgwwwfwvwwwvwvwvxwxwwvwvgvwgfwwgwwwvwgwvwwwgfgxvwWwwwwwwxgWvfwwwvwwvwfwuvevwxfwwwxwgevufwxwwwwhuwggwwxwwxvvvevwvwwwwxwwvwwxvXxxwgwwwwwgxwxgwwgxxxxwwwwguwgwVvwwwwxfhvgwwggvhwhhwWvdvgHwvxxxwwvxxwHgexxwwwwevgwwwWwxwwvvggXewwwwwggwvfwxwvhwwgvxxwwhwwwwwwxwguvvvvfwwfwxwvgwwwwwvvgwvwwwwwwwvwwxwwhxvwvwwwwvwwxwwwvwxhxvwxxxwxfwwwwhvxxxxwxxxgxfvuwxvWwwwwvxwwwwWgvvgvwxwwvggwfwxwxwxwvvwwwwvwwwvwxwwwxwgwwxwxwvvwwvwwhfgwwxgwxfwwxxwuwwvvgwvgfwxvvvfuvwufvwwvuwwfvvwvwxwwwwvgvvwwwvxwvwwhvgfvvwwwwwevwwwwuvwwgvxffvwxvvvgwxxgvwwwwwxfwwfvuwwwvwwvwwxwxfgwwwwfwxxxfwvwxvwwwwxxwevgwwxxhwwwwwwvxvwffwwwwVfegevvwwwfwxwgvvvwvvfwvwwxwxgvwfwwwwwxwhwwvwhwwfwxwvwwxwwgxwwgvwxxwfwwwxwwwwwwwhxgfvvxhwgxwxxvvwWfuwwwwwfgwwgvxxwvwwxwwxwwwwxwxgwvwwwgwwvxhwwvwwwhfxxwxwwxxwwvhxwxwwxxwxvvwvwwxwfvwvvvfwwwwxxvvxwvwwwxvvvwfwwwxhwvggvwwwVvvxvwwgwwuwhwxevwwwgxvgxxxxxwxxwvvxgwwwwwfwxwwxwwwxvwvwxxwwxxwgwvxxgwwxxwxwVvvvxwxxxwwgwwxxgvwwwwvgxhvwxxwhxwxhwxxwvvgwwwvxxvxwvvwxxwgxwwwxxwvvxwwxxwwwwhvxxwwwfgxwvhxxxwgguxhfgwwwxxgxwgvxxgwwgwwwxxxvwwvxwxxwwwwguwxxwxwwwwxxvwxggxwvwxvwhgwxgxxvxwgwwwwwwxxxwxwxxwwwwxfwfwvvwvwvwwwwvgwvwwwvgwwxvvxgvwwwwwwfwwxvxwwwgefvvvvwvgvgwvwwvwwwwwvwfggwgvwfgwgvgwvvwvwwwwgwggvgwwvgwvwwwvvgwgwwwwwvwwvwxwvwwxxwhwwwfwvxwvwwgwgwwwvxwxwwwgvvwwgwgwwwwwwvwwwvwwwgwwgggvgwwgxwwwxhxwwwwwWwgwhwwwxxwwVewvVvfvuwwEvvfwvvffvwgwggwVewfwvwvwvwfwwfUgvwgwvWVwggwwhWwgvwfvewfwvwfwgWVwvvwwwwvwgWwWWefwvfggGvgwwwWgevfvVHWVwHhfgwvwvffwfvuvgwwvwwwVvugvfufgwgggwggwvwwuwvwwghwgxwgxgwfwgwwwxwfwvvfgfWuxvgwhwvvwugwWGFwgxwwwgwuwvgxgwfwhXVwwWxwwxxwwwwgwwwwwwxwwvwvvgwwxwwwwwwwgwwwwwwxwvxwwwwwxwwwwwvwwwwwwwwvwwwxwggwxwwwhwwwvwwwxwhxxwwxwwwvwwxwwwwvgwwwwwwgwgwhwfwwxwxvwwwwhwvwwgxvxxxxwwxwwwxwwxwwwwwxwwwxwwwvwxvxwwxhwwwxwggvwwwxwxwxvwvfwggwevwwfvvwvWwwvevgggvgwgvwxxgevvxvgwxwxxxwvfgfghhvwxwvgwwvfwvxWgVggWgwxwhugggvxxhfwgwvhvwuggfwxxxvxxwhwwwgwfXwghgxvwwvwfgwwwgxwxwggwWwwxWGwxxwgggvvwgxhhwhgVgvwewwgggwfvXvgveuwwvwwwhwfgxwwwwXgwxwgvxvwwfxhwwxvxgggwwWgvwuvfggvvwfuuwuffwwvwwvwwwffvwwuuwvvwwwxwgwwvwgwwwwwwwfvvwvfwvwfvvvwwuevxwgwuvwxwuwgwvwwgxwwwxwwwfvvwgwwwwvgevwwwxxvwvwxwwxxxvfwwwwwvvwwfwwxxwxwxwgvxwwxxxxxxwevvwvEdvwgwgwvwwffwxwxwwwwxwwgwvfwvgwwvxwvvgwwwwxxwwwVuvvvwwwwfwgvwxwwwwwxwwwxwwwxhvwwwxxxwwhvWvwvwwwwxxwwhwxwwwwwxgwxxwxwvxxhgxwvvwwwxwwxwwwyxwwwwwwwxwwgxwxwxdtufeevvfffffvwvfgvvffwwwvwxvwfvvwwwwwwgwwvgwxdgvvfvvwVvuvwwwvvggwwgwxwgvwwvxgwwwwxwvxwxhwwgwxwxwwwwvwwvwwxxxvgvwwxxwxwwxxwxwwwwvwxxxvwxwwwxxxggwxxwxxwgxwwwwxwwwvwffvvvVfewwwwwwxwwwwvwvwwxwwwxwwwxxxwwwwvwxfvvfwWewwgwxxwwwwxwxxwwwwgxxxwxxxxgwvwhwwwwxxwwxxxwwwwxwwwgxwwxxwxwwwxxxwxxxxxxwwwwgxwxxxwvfvvwffgwwwwwwvwvwvwwwwwwxwwxxgwwxxxwvxwvvgwgwwwwwwfvvwwwwwxxvvwwxwwwwwwxwwwwwwwwgwwwxxvvwwwxwxxxwwxxvvgffvfvvfwvgfwwwvwwwxwwwwwxxvvxwwwwwvwwwwgwvgwwvwxwwxxgghxvwxwxxhwvxxwwwwwvvxwwxwwxwwxwwxvwwxwxwwxxxwxhxvxxxvxfvvwffvgvgvwhggwvwvwwxvwwxgwwvgwvwwvwvxxxgvwwgwwgwwfvvwwwhwwxwwwxxwwwgwwvwxwxxxxxxxxhxxwxwwxwwwxxxfvfvfwvxwwwwvwwgxwwwxxxxwxwxvwwwxwwwwwhxvxxwwxwxxxwxvxwxxxwxwwxxxwwxwxhxxhtgfwfuwVuwweewfvvwwgwfVvgfvwwwwwwwwxwgeuwvxxgwwguwweffwgxgffvgwwwfvgwxwwfevwvwwwhWfevgvxwxwxxwgvvwwwvwwgvxhgvwvwvwxgxfwvwxxxxwfffWvvxwwwwhvfwfwxgxhwwxxwxxxwhwvvwwwgvfEuvfgvwWwwxwwwvvgvvgvgvvfvvwwwxhwhxxwvxwwxgvwwwwxfuvwxwwggfxhwgwwxwxgfvvxwwwwwwxwgvxxwwxxggWefvwwwwwXwwwgvwwwwvwgxxwwwxwxwxxxygxfvuvxfxxwwxwvxwhvxwwwwgxxwwwhfwxxxwUdffewgUdfgvfVVvvvwvVVffvvwwwvgvwwxxfvwwWwvxwxhwxdffuwgxfvuxWuhGeufxggwwvwffgwwwgwwhvxgwwwhggxwgwwxvxgwwwwwwwxwwfvxvwxwwwwxwxwwxxxxxxxxxwvvvxwwwwwwwwwgwxwxhvwxxxwwhwxwxwgVevgwvwfVgewwwgggvwgvwwgwwxwwxwhwwwwwwwxwgxvxxxVuvfwxwhewwggfwWgvxwvwhfxwvwxwwxvxwvxvhwxhwwxWwvwwwwwwwwwwwvvwwwhgxwxxvxxxwxxwxxwxwxwwxwxwxwvwwxxxxxwgwxxxxxxxxxxuggwvewwfwxwvwvvwwewwwfwvvwwwvwwfwwwwvwvwwgwwgvvwwwvwwUfwwgwvvvwwfvwwgvfvwxvgvvwwevwvwwwxwwxwvwwvwwwwwwwwvgwwwwgwwwxxxwwwwwwwxwxwwxwxwwwwwwwwwwwwwxwxwgwwwxxwxgwwxwvwwvevvwgwwvwvwUfwvvxvwewwwwwfwwvvxwvwxxvgvvhwwgwwxwfwwwwwwwwwgwwvwwwgwxwwgvxwwwgwwvxwxgwwxwwwvwwwwwwwgwwxwxwgwwwxxxxvwxxxwwwvxwwxwwxxwvvggxwwwxwwxwwxfugwuUfwVgwvfvwvefwfgfgwugwgxfwvvvvwwwwvwwvuxwwwwwxwwwvuuvvfvgwewwwvvwwwuwwwwwwwvvwwvvfwwwwxwwvwwvvgwwxVwvwwwwxwwwxwwvvwwwwXxxWxgxwwwwwwgvxxxvwwwwwwgxgwwwwxwxxhwgxwwwxwwxwxxwwwxxwvUfvvwwfvvvwwwwvwvxvwWwwwxwwgwwxwwxxvvwgxxwwwxvwxwvvwwwwfwwwvvwwgwwxgvgwxwwvvvwvwwxwwuvwxwwwxfxxgxgwwwxwwgwxwxwwxxxwxwhhgxwwxxwxxxwxxwhxwxwhxwwwxwwwxwxgwwwxxxvxvxwxwwwwwgxwwwwggwwvgwwvggffwwvwvwwwwwvwggwvvwwwwwwxwvgwwfvwwwwfvxwwwvwvxwwwgwvfvwvwwxwvwgwwwwwwwwwgwwvwvxwwxwwwvwwwwvwxwwugxwfwwwwxvwgwxxxxvwvwwwvgffwwwVwwwwgewvxvwvwwwwwwwgvfxvwxvxwgwwwxxwwwwwxxwvxwxwwwgwvwvgwwxwwxwwxvgWwvxwfwvwxwuwxwhwefxvxwgxvxxwwxwxwvwwwxwwwxxvwwgxewxwwxxhwvxxxwwxxvvwwfwwvgwwwwgffvvwwwwxwwgwwwwxwwwxuxwwewwwwwwvwwvvwwwxxxvvvwwwvwwwwwwwwwvxxwwxwwwxwvwxwxxywxxwxvwxwxxxxwwxwvxgffxwuvxgfvxwwwvvwxxxxuxwxxxxwgfwvwxwwxwgwfxxxxvxxvxwwxxxxxwwvwwwxwwxxvxvxwxxwxxxxwxwxwxxvxhxxwxfwwvwuwwvwvwwffwfgwfVwwwwwwfvwwvwwwwfvwWggvwvgvwgxwwuwvwwwvvwfwggwwvxwxwvgwfvfwwwwwwvwwwxfwwvwwwwxwxwwwvwvxwgfwwwvwwwwxxwwgxxxwwxwxxxxxwwwwwxxwfvvwxxwxxxxxxxhxvwxwwwgwwwwwwwwwwgfwvgfwuwgwWwWwwhwwwwwxwxwwxxxVwWwgxwgxxvwwgwwwxwwwwwwwwgwwuwwvWggvvvwwwxwwxwwwwhxxxwxvwwhwwxhvvxwwwxwfwgxhwwxwxwwxxxxwwxwwwxxwxwwwxwxwxwwxxwhxvxgvwwxxwgvxwgwwwwvvvwwwvvwvfwwwwxvVvvwggvfwwwwfwwxwgwgvwgwwggwwgxgwwgvwvxwwwwwwvfwgwwwwwwxwwwwgvvwxxxwxwwwwwwwwxwwwwxwwwwvwwxxxwwwxxwwgwwhxxwwwwgxwwxwwwwwwwxwwwxwxxxwxwxwxwxgxxxggwxwwxwwwhxwWwgggwwwxxwwgwwwwxxxwwvwxwwwwwvwwvwwgxwvwwxwxwwhwxxvwWwwwxvxwxgxwxwwwxxxwxwwhwwxxxxwfxwxwwxxwgwvxvwwwwxxwwwxwxwwwwwwwxwwwgxxxuffwgvgftvvfwffvwwfgufvvwwwfuwwfvwwxwwvfgwwWwxffvwuTewtfwfvwvfwwwwvwvwwvwwvgvvVwuvWwxwwwfvwwwwwwxxxxwwuuwUwvwvwxuwwwwwwxwvwwwwwwxwxuwxxhxugvgwgffwwggwwwgwwxwuwvwvwwxxxwxwxwxvevvfvwvfwwgvwv4ewwxwvvwuvwwxvgwvgxwwgvwxvvvfwwwexwhggwVewwwwwvwxwwwvwwwguwwwwwvwfwwxwwwxgwwvwwhghvwwWwVvwwwwggxwwvfxgwgwxuxwwvwxxxxwwxVvwwwvxwxwwxwwwvfwwwwwxvxggfwxwwwwwxwwxwwwvxwxwwwwgxvwwwwwwwesvfvffvvggwfwvdefugwwxfvwvhxvfevfwgxvwwwghxffvwgwwwwwwcVfvfuvVvwwwwwUvuwwwVwgvxwwgVvevgwwWwwxwwwxwwwvxwvxwwwwwwwwgwgwwwgxxgwgwwwwwvwwwwwwwxwhwxxwxwwfvwwwwgwwwwwwwxgwxwwxwwwwwwwwwvwxxwwwwvwfefvwwwgvwvxxfffTgvxwwxwvwvvwwwwwvvwwwgvwxwxwwevvwwwwwwxxxvgTgwxvwwwgwwgwwwwwxxwwxwxxwgxgvwxwxwvgxvwxxxwgwwwwwxgvxfwxxwxwwwxwgwwwgwwwxgwwvwxxwwxgwxwwwwxwguevvvvxfvwgfwweevwwwwufwwvvwwwwvgvwgewwwwwvwvwvwwevvwvwwfuwwufvwvggwwwvgvwwxfvwgvwwvwwgwwvwwvwwwgvwwwwwwvwxhwwwwxwwwwvwwwwwwwwfwwwxwxxwxxgxwvgwwwwvvwwwwwxfwwxwxwwxxwxxwwwwxwgwWvwwvwwfwwwWwugwwgwwvgwwwvvwwxggvvwxvgwgwwwgwgwwwxwwwwwwxwwwgwfxwwfwxwwwvwxxwxggWwvwvxxvhghgxwgwwfvwwuwwxvwvwwxwwxxwxxwxwxxwwwwwxwwwwwexhvxwwxxxwwwwxhwwxwwwwwwugewgfwwvWvfwweevwxvwwwwwvvvwvwgxwhffvvgvwvwgggxxwvwfvVwfvwgvfvuwwwwwvvvwgwwwvwwwwwwvwWXwwwfxgvwwggWfwwwwwxwwwwwwwgwhfwwfwwgwwgwxxwxwwwxwwxwxxwxwwwwwwxxwxxgwvwwwwxwwwxxxxwxxxxvxxwwwfwwvwvfwwwxvvvwwgvgwwwgvvxwwwwwwxwwwwwxgwxwxwwwwvwvwgwxwhwwwxfwgwvwxwvxwwwwxgwwxwxwwggwxxxwxwwwxwgxwhxwwwxvwxxvxxxggxwxxwxwxwhwwwxxxxwxhwxwxwwxwwwxwgwwxuwwgvgvwwxwwwuwgwggvwffgVwwwwwwwwvwwgwvwwwgwwwvwwwwwxvwwguwwggxwvwwhvvwwwxwgvvxwwwvwwhwvwwvhvwwwwxwwwgxxwwwxwgwwwwwwxxwxwxxxwwwwxwxxwxxwwvxwwvfwwwwwwxewwwwwguvfgWwvwwwxwxwwvxxxwwwxgxwvgxwwwwwxWvwwwWxwwwwxwgvgvwxwgxgxwwwxxxwxxxwwgwvwwwwxxxxxxxxxhwxxwxxwxxywwxxwxwgwwVgvgvwwwwxfffvfWWvgfvvwfvwwwwwxwgxxxwgwwwvfwxwvwwgwwvwvwwxwwwxwxggxwwxxxwwwhwwxxxwwwvwwxwxwgwwwwxxxxxxwxwxxwwxwxxxxwxwxxxgWwwwwwwvwwwxwwfvfwwxwwxxwwhwwwxxwxxxwxxwwxxwWgwxwwxwwgvgwxxxxwwxwwxxxxxwwxwxxxgwwhxwxwxwxxxvxxxxxwwwxwxxxwwwxwufwvfwwufwvguwvwwgvwvwwwuwwwxxgeWvwwwwgwwwxvwxvxxvwwxgwuvwgwvwwxvwwxgvvwxggwvwvwwgwxwxxvwxvxxwhvhwwhxwxvxwxwwwwwxwgxwwgwvvwxwwvwwgvxxwvxxgwxxhxxxxuewgefvvgwwvwvvgwwxwwwgwwewfeWvvvvuwvwwxvwugvwxwwwvvwwwwgwwwwVwgwxhwgxvwvfwvgwwghxwwvhxxxwxwvxgvgvvwuxxwhxvuxxuxwvwwwwwwxxxxwxgxwwhwwvwxwxxwhhxvgwxwwxwxxvxxxwwwvuwgeWuvWwfgvwwwufgvxxwvwwwwwvwwwwxxxvvgvwwefwvwxgwwvxxwxwwwwwwgxwwxwxwwwxwwwwxwxxvxxxxwwxwwxwwxxxxvwxxwwxwgwgwxxxxxxxxhwfeWwvwuwwwwwwwvgvwhxwwxxvvwvwwxwxxxxggxxwvgwwvgwwvwwxwxxxxxwxwwxxvxxvxwxxxwxxwwwxxxwwwxhxwxxwwxxxywxwwxwwwxxxwxxXwvxxhxxxwwxvvVfwvvwfvwwfevwvxwgwvfvwuwwvwwwvvfvvwffwvfwwwggwwwvfwffevfwvwwvwwwwwwvwwwwwwwfvwwwgwwwwwVvwvxwwwwwwxgwvwgwwwvgwvvgwxxwwwwwxxwwxwwxwfwwgwxwwwwwwxwwwwwwwxxxwwxwxfuwvgvvfwwvwwWgwxwwwgwxgwwgfvwwvgvwwxxgvwwwvwwxVfxwwwffwwgvwwwwxwwwwwxwgfwwvvwwgwxxwxxwwgwgvgvxwxwggvwwguwwxwxwvwxwxxxxwgwwwgxwwxwwwwwvwxxxvwwxxxxgwwxgwxwwxxxwxwxxwVuvwefvffvvvvwffwwfgwvwwwwwvffvwwvvggwwggvwwvxwwwvwwwwwvgvvvvwfvwwwwwwegwwgvwvgwwwwvvvwvxvvvwwwwgwwxgwxgvwwgwxgwvgwvhwvwwxwgxwxgwxxxwwgwwwhwwxxvwvwwvwwwwwwwwgvwwxxwwwwhwxxxwxffvgvwwgwwxwxfwwwvwwggxwwgwvhwwgwxxwwgxwxwxxhwfuvwwwwwwwwwwvxwvwxwvwwwwwwwgwwxwwwwxxWvwwwxwwwwwgxwhhxxxxxwxxhxxwxxxgwwwwwxgxxxgwwwxwwxwxwxxxxwxwwwwwvwxxwvwwwwwwxwwwwgwvwwwwwwwwwxgxwwgwvwwxwwwwgfwwvwvwwwxggwwwwxwxxwxvxwwwwxxwwwwxwwxxxwxwxwxxxwwxxxwwwxwxxxxxwxxxxxwwxxxxxxxwwwwwgvwvwvvvwwwwvwwwwwwwwvwwxxwwwhwxxxxwxxxxxwhwwwwwwwwwvxxxwwhxwxwxxxwwwwwxwxxxxxwxxxxwxxxxxxxxxxxxxxxwwwwwgvwggwwvwwwgvwwwwwwwwwwwgwwwxwggwwxxwwxwxxxwwwgwvwwwwwwxgwwwxxwwxxwwwwxxwwwxwwwxxxxwxxwwxwxwwxwwxxxxwxwxxwxxxxxwxxxxwxxxxxxggwwwvwwvwwwwwxxwwwxwxwwwxxwwxxxxwgwwxwwwwwxxxwxxxxxwxxxxxxxwxxwwwxxxxxwxxxxwxwwwxxxxxwxvvxvvxwwvvwfwvfwwxwwuwvfwwwxwwwfgvwxhwwxvvxwvwwfwwuwwwwvwwwwwvwwgvvvuvgwwwwvwvvxwfwwfwwwwfwwxwvwwfwwwwwwxwwwxxwxwwwuwwwvwwwwwvwwwxxwwvwwwxwxxxxgvvwwwwvwfwwwwVgwwwxxvwwvfwvwwgwvwvwexwwwxvxxwwfwwwwwxwvwwwwwwxwxxxxegwwwwgwgxxxwwwwxxexwxwwvfwwwwvwxxvxwxxwwwvvgxvvwxxwwwxwwxwvwwwxxwwwxxxewwwxwxwvwxxwwwwuwwgvvwfwwvwvfwgwwwwvvxwfgwwvwwwwwxwwvwwwxxvfwvuvgwwwwwxvwwgwggxwwwvwvvxwwxwxwwxxwwwxwwwgwxxvxwvwwwwwwwxxwwwwwwwwxxvxwvwwxwxwxwwxwxwwfgwwwwxwvwewwwxxwxwwwvwxwwxwwwxwxwxxvwxvwxxwwwxxewwwwwwwwwxwxxwhwwxxxxvxxwxwxxxxwxwxxwxwxgxwwwwxwxwwwwxxwxvwwvwwwwwwwxvgwgwwvwwvvvfvffwfwwfwwwwwveuufwhgxwwwvhwwwwwwwwwwxvvwgvwwwwgxwwwwwwwfxgwwwwwxxwxfwwfwwxxwxwfwwxwwgxxgwxxwwxxwwwwwwwwwvgwxwwvwwxgxgwgfvwwwwwwgxwwwwwxwwwxvgwwwvwwvvwwwwxxwwwwwwwxgvwwwgwwxgvxxvwwwxwxwwxwwwgxxxwwxwwwxwxwwvxwxxxxxxvvwwgvwwgvvwwUVwvvwwwwwwfwVewwwxwwwwwvwwgwvwwwgwvvwwwvwwxvvwxxwvfwvwwwgwxwwxxwwwwwxwwwwwwxwwwwwwxwwwxwxxwwwwwxwwxxxxxgwwwxvxxxwxxwxwwwwgvwhwwwgvxfwvxxwwwwwwxvwwwwxwwxxgvwwxwxwwxvxxxxxxxwfwxwwxxxwwwwxxxxxxxwwwxxxxxxxwwxxwwwwwxvwwwwvwxvwwWfwwwwwUfgfvvwwxvhwwwvwTeufwwxwwxwwgwwwwwvXwwgvvwvwxvwxwfwvwwwwxvwwwwvwwwwwwwxwwwvwUggfwwhwxwwwxxxwwwwxwwxwwxwwxwwxwxwwwwxwxxwwWwwxwwvwwfxwwwwwewwwwxvwvgwwxxwwwwwwwwwwhvgwwwwfwwwwxwxxgwwwvxwevwwwvwxwxxwhxwvxxwwwwxwxwwxwxwwxxxxxxxxxvfxxwxxxxxwxxwxwwwxwvwwwggwvwwwfwEeufgvwwgwxffwwxwxwxgwuwwxxwwvwwfwwwwvvgvwwggwwxwwgvwwwwwwuwxwxxwwwwwwxxxxwxwxxwxxxxxwxxwwwxwxxwxxwwwvxwwxxxxxxxxwxwwwwgwwgwwwwxxwwxxwwwwxuxxxwxxxxxwwxwVvwwwwwwwwwwxxxgxxxwwxxxxwwxwwxwwxxwxxxgxxwxwxwwxwxxwxwwxxuUwwftfwfwwwfgwwwvwxwvwvWgfgwwwwuvfvvgvvfvwgvwgwgwwwwwwwwfuwwvfevugguvwwuewwwwwvwwwwwwwwvggvgwwvwwwwwwwvgwxwgwgggwwgwwwwwvwwwxwwwwwwvvwwwwxwwxvwhwwwxvwwgwwwwwwwxgwwxwwwxwvfwwxwwxxxwxwhgxwwwwwwvwwwfwvvwgwwgwfgvwgxtfvwwfvhwWvwwvvwuvfwwwwwvwwgwwwwwghwwgwwwwwwfgwwwxvwxwgwwwxwwwxwwgfwwgwwwvwwwxwwWxwwwxwxgxwhWxwwwWwfvwwwxxgwwxwwwwwxwwwuvxxxhwwxgwwxgwxwxgwwvwwwxwwwxvxxwxxwxwxwwwwwhwxxxgwvvvwvgufgwwVvvvwwfvwgwwfWwwvgfweewvwvwvvwwhvwwvxvwvxwwwwwvvwgUvuggwvwVwgvwwwwgvxwvWwgwuvfvgwwxgWVwfwwxwwwwgxxgwwfhwwwwvwwxwwgxgwwwgwxwwwxxxxgfwwwxwwwxxxwgwxwwwxxxxwwgxwvwwwwxwwxwhwwxxwxhwwwwgwxxxwwxwwxxwxxxwwwvfwwfwwWwgvgwffwvwwwgwgwWxvwuwwwvwwvxxwwwvxgwwwxwvgxwxxwwxwwwwgvwwwwvvvgwwfwxwxwvwgxgwwwwwfxwwxxwxwwhxwwwwwwxwxwwgwwwgwwxxwwwwwwwwxxxWwxwxxwwwwwxwwxwwwxwwwggwwwvxxwvwxwwwxwxwxwwxufwwfufwxwwvvvwwgeWegwfwvwxwxwfgfevweeewwwwwwwfwwfwhwxfvwwvvwvguwwwwwxwfvwwxgwwwwwfwwxxwwxwwwvwwxvwwxwwwfwwwxwwwfwwffwwxxxxvxgwxxwhfwxxxwxwwxxvfwfwfwwwwvwwwwwxvgvvwwwwwfgxwwwwwwwwwgxwvxwwwvwgxwvhuWvvwgfwwgwwwxvwwxvwvwxwwgxxwuxxuhwwxfwxwwwwwwwwwxxxxwxxwgwxwwwwxwxxwxwxwwxwxwuwweUvwwvwvwvwvggvfwwvgxwwwwwvVuuvvvwgwwwxvgwvvvvfvwwggwwwxwvuwvwvwwwvwxwwvwwwxfwxwwwwwxxwxxwwwwwwxwwxwxhxxxxwwxwwxwwwgxxwwwwwwwxwwhwwwwxwvwwwwwhxwwwwwwvvwwwwwwwhwwxxvwxwwwvwwwwgwxvxwwxxwwwwxwwwxxxwvxxxwwgxwxxxxxxxwwxxxxwxxwxxwxwxwvxxxwxwhxwwgxgxwwxxxefwwvvwffwgvggvvgwgwxfwwwVfvwvvvvwgwwwwwfwwvfwgwuvwwwwgwwfvwvwgvwwgwvwfwvfvvwwfwwwwwwwxwvwgwwwwvxwwwggwvwwwwxvwwwwwgwxwwwvvwwwgwvwxxxxwwwvvgwxxwwwxwhvwwxxvggvxwwwwwwgwwwwwwwwwwwvwwwxwwxxwxvwxwxxxwwxxwvwwwwwVfwwgwwgwwxvwgwfwxwgwgfgwwgxgvuwvwxwvwgwwwwwgwxwvwwwxwwvwxwvwwwwwwwvwwwwwwvwgxwwfgwwvwxxwwwxwwgwgwxwwfxfxwvggwwwxwwvvxxwwxvgwxgfvwwxwwwvwxwxwxhwwwvwwwvwxxxwxxfwwhxwwwxwgwxxxwwvvhxwvwwwwgvwwfgwvvffvwvgwvVfvwfwwgwwwgvfvwwwwvvfgwhwwwgwgfwgxwwwxwxwvgvfvwwfwxvwwfvggwwggwwwfwwwwvwwwwwwwxvwwwxwwxwgwwwxxwwwwwvwxvgwxhwwhwwxwghwwwvwxxvvgxgwwwxxxwwwxxxxwwwwvwwvwvwwwwwxhwwwxwxwxxwxwwxwfwxxwvgxxwVwwwwgvwwwxwgvwwhgwfvgxwwwwhggwwxwxwwxgwgwwwwwwwhgwwxwxwwwwwwwwwhgxwwxwfgvxwhwwwwwwwhwxvwwxwwwxxwxwxwxxvuwxwxwwwwxwvwwwxwxwxwvfxwxxwwwwwxvwwwwxwwxwvwxwwxwxxxwxwwxhxxtfUffevwwvwvgUuwvevwwwwvwwwvwfvwvefwwwwvevvgvvgxwgffgvfeufevwgvteuwwgxgwwxwwwwvVfvfufwwwxwwvwvwwgxxwwvwvvwgfgwfvggwwvwwwwfwxvvwwvxxxvvwwxwxxfVgwfvufwwwwwhgwuxwxwxwxfvxwwxwvxwxwwxvxfegvgfwWewwwgwwwfgvwwwfwuufwgeEeuvwgvgwuwwguvvvgwwwwxwwwggvvwwxUwvffwwgwwwwgwwvxwwwxwvvugwvfvwvvgwwgvwxgxwwvvwxgwgFfvwfwwxwwwwwguuggwgxwwwwxgvwxwuxwxwxxvgwwwwgwgguuwwwwwwgfwwgxgwgwwwxVxxvgwwwwwwxhwwxwvggxxxxedvUfVUvwffwWvwwefVwwwvwVwwwvgvwUTvvgfefwwwwhvvwvgxxwwwwTfevVvdegwgvwwgwwvwwwwwwwwwfgvvwgxgxwwfvxfuwfwwxxvhxwgvwuwwwwwwxvgvwwvwvwxwwgwwwwwwggwxwwwxwwxwxwvewwvvwwxwwwxwwxwwwvwwxvwgxxxxxxwxwwvxwxwwVVfvwvvffwwwwwvwufwwfwwwwwxuwfvexgwwwwwwvgwwwwxggvwwwgxfvffwgvvwvxwvwwwxxxwwwgwxwgewwwgfwwwfvwVgwwhwxgwwfvxhwwwwxxxwwwwxvwwWxwgwwwghwxwxxxxwwwwgxxwgvwwggxwwwvwxwwwwxwwxwxfxxvwxwxxvvwxwxuwgwvvvwuwvvfvwvvvwwvggwgvvwvwvgwxwwwwwwwwwVfwwvwwvxwwvvvwwfuwwwwwWvgwwwvwwwwvwxwgxgwwvwwwvwuvwwwxxwxxvwwwwxwxwvwvwwVgvwwwxwvxwwhwwwwvgwfvvwwwwxwwwxwwxwwwxwwxvwxwxwwwxwwwwgwgwwwwvggfwwwwwgwfxwwvwWvwwvuwvgwwgvwgwvwvwgwwwwwwwwvhgXwxwwxwxfwwwwwwwxuwxwwwwxxhwWwwwwwxwwfwhwwxwxxgwwwxxxwwwwwxhvwwxxxwxxwvvxwwwwxxxwwwwwxvgwwwwvwgugvvfgfgwgvfwgvfuuvwvwwVwwwgvgwvvvvwfvgwxwwgwvwwwwwwvvgfwwwvwvwwvvwwwwwgwwwvxwwvwgwwwwwwwxwwvwxwwxwwwfwwwwwwwwwwwgwxwwwwxxwwwwwwwxxwwgxwxxxxwvwxwxxwwwgxwxwvhxxxxxhgwggvwwvwwvfwwhxvvwwvugvgwhwWgwvwwwxxxxxwwxwwwhwwwwxwwgvxwggwwwwxxwwwwwwwwxxwxwwhwhwhwvuxxxwwwxwxxwxxwvwxvxxwxwxxwwwxwgwfxxxwwwwwwxxxxvfwgvwveuwuggfwwwxgfwvggfwfwwwwvwwxgwwwwgvfgwvwwggxwvwfvvgfwfvfwvwwwwwvfvwwwwwwvvvvwvwwwwxvxxgvwwxvhwwvwhgvvwwwxvvwwgxwwhvxhxwwwxxxxvxwxwwwwwwwwxwgxxwwwxwwwwwwhxwxwxwxwwwxwwwwxwfwvwwWuwvfwwwvwvwwgwvgvwfvwwfgfwvwgwvgwfguwwwwwwwxwwgwwwwvxxwxfxwgvfwgvfvvfwwxwxwwwxwgfwwwvhwwvwwvwgwvwxxXVvgxvxvwwgwfwwwvxwwxxxhwwwwwxwxxwwwxwwwxwwwxwwwgwvwfxxxxfwwgxgwxwxhxwxxxxwfwvvfgvgvgveffvgfgwgggwevwwwwwgwgwwwwwuwwwgwwwwgwuhwwwwwgwwvfgfvVvuwvwvwvwwvwwfWfggvWveggwwwwwwxgwwvwgwwgxwwgwgwwwxxwwwwvwvwwwgxxwxwxvwwvxwxxwwwxwxxxwwwwxvvwwwwxxxxvwxvvxxwxxxxxwxwxwxwfwwwvgwvwwwwwggwwwwgwgvxwgwvwwwxwvwwwwxwwxgxwgfwwgwwgwwwgvgwgwwgvvvwwwxhgwwwgxgvgvwwxwwwwwgwxgwvwxgxwwwxwwwhxxhxgxwxwwwxxxwwxxxxwwxwwwvwxwxxwxwwwwxwxwwwwwwxgxwvvwwwwxwwwvvvvwwfvxfwwwfwwwwwfvwhfwwvwgvvvgvwwxxwxevwwgwvwwvvvxwwwwwggwfvwwggwwwhwxxxwvwwwwwhwwvgwwwwxwxwwwwxwxxxwwwxxxxxxwwvxfvvwwwwvfuwxvwvwxwxwvfwfvuwvwgwxwgwwxgvxgxwwwwfxwvxvwxvxwwwgwwwwuxxxxxgvwwxvgxvvwwwwxwwwwgwwxxxwwxxxwwxvwxwwwxwxxxxwwxxwxwwwwwgvxwwwvgvwfffwwgwvwvvvvvwvxwvxwxwwxwxwgvwvwwwwwwxwvxwxvwgwwvvwvhwhwvvxwwwwwwvwwxwxwxxxxxwxwxwxxxxxxxwxxwwxxxxwxxxxwwwxxxxxxxxwgvwwwewxwwwwwwvxxwxwwxwxvxwxxwxvwxwwgxxwgwvwwwvwxxwwwwwxwxwvwwwwwxwwwxwxwxxxxxwgxxwxxwxwxwxxwxxxwwwxwxxwxwwwwwwxxwxwwwxxxxwxxvwwwvvwxggvvvwwgfvvvfwettfwvvwvgwvwwwfvvUfwwwwwxwvwwgfvwwwwvxwwwwvfvwwwvwwxwwvwwwwvwwwgwwvwxwxvxxxwwwwwfvvUwxxxwwwxwxxwwxwwwwxxwwwwgxwwxwwwxwxvwwwwwwwwwwwvgfwvwwgfwvvwxvwwgwwvgwxvwwwwxwwwwwwxvgwvuwwwxwwwxwVwvwwwwfwfwxxwwwwwfxwvwwxwwxwwwvwxwwxxwwwxhhwwxxwwwxwfxwxxxxxxwxwxwghvxwggvvxVevvwvwwvVdtffvwvvwxwvwvwwwwwwwgwwvwvwwfwwxvwwvvvwvwwvvwwwvfwwwwwwwwwwwwwwwgwgxwxwxwxwwxwvxwwgxxwwxwwxxxxxxxwhwxxxxwwxvwxwxwxxwwwwxwxwwwwwwwwwxwxwvvwwwvfwwwvxwxwwwwwxwwghxvwxguwxwxwwwwwwwwxxgvwwxwwxxwwwwhxxxxwwwxwxxhhwxxggxwwwxxxwvwxwxxxxwxxxvfwvwvgvvxvWvvgvwwwfvwvfffvfwgvtvwuwwwwwvvwdvvvVfwvwvvvwgwwfwwvgvvfgvvvgwwwwvgfwgwvwfwWuWvwevwgvvfwgWegwffggvwwwwvXvvwvwwwxvwwvwwwwggwwxwgwvwvwxgvwwhwxxwvwhvwgvwwwwgfwvwwgxwxxhhwvvwvwxwvgwwwvxxggwwxwxhwfvgwhxwfgvwwwwwFvfwfwgwvuvwwWwvwwwwwwfwewvwvvvvfgfwvvxwwvwwwwxwwvwvwxwgwwwxhxgwfwhFgvwwwwwfvwxwwwufgwexwxfwwwwwwvwvgwwwxwwwwvwxhwgwwxwxxvwfwwxgvwwwxvwxwwwwgwwwhwwwwxwwhfwxfxwxwwwwvvxxwxxwwvwwwwxgwwwwwwvgwgfvwgwwwwwvVefwvgfgvwwwwvxvgvfuvwwuggvVUvfwgvguxwgwgwgfwugvwfwxvwwwgvvegggGwhwgwfwtwewWuwxvwwfwugvwGwVvhwwvwxwwvwxwwhwvvwxwhxwwxxwxhwvwxxwwxwxwxwgwxwgxwvxwvwvfwwwxwwxxwxgwwxxwxwwxwwwwwwwwwvwghwwwvvxxvegwggwggwwhwwgfvfwwwgwwgxwwggvwwxwwwwvwgfgwgvwxgwxwxwwwwwfwvghwwwxwwvwWwgwxWwwwwxwwxvwwwxwwwwwwwwVwwvxhwwvxvwWwwxwwgxwwxxgxfxxgwvxxxwxxxwwwvwwxxxxxwwwwxgvxxwwwxgxxxxvwwwgwwxwwwxvwxgxwwwgvvwxgwwuvvufvwufeuwvgfwfvvggwwvvvwvwvvfvvuefvvhwxvvgufvwvgwVuxwwwvvwwfvvvvwwwwgwfggwgvvgwwvufvffwfegvwvwfvwvwvwwvwwxwwwvgwgvwwfvwgvfvwwwwwwwwwvvwgwgwxxwwwwxwwwxwwwvwffuwwwwwwgxvvwwxxwwwuvwwgvwxwwxwhwvwwvwwxgvwwvwwfvvwwwggfwfvwgfgvvwwwgwwxvvwwvfgwvwxwvwwwgvwhxwwvvwwwvvgvfwvwwwwwwwfhvgwhwvwwwwgvgwwwwwwvwwxwgvxvvgxwxuwgvwvfwwwxxguvwhwwwwwwwgwvwwwwxxxwgwxwwwwfwwwwwwxwwgwwwwwxhxuxwuwvvwwxgxwgwuxxwwwvwxxvwVwguwffvvufuvfwgvwvwuvfwfwgvVwuwwwvvfvvvvvwgvgwwvwwwfvvwwxwxwvgufwvvevgvvgwfvwwwgvwvwwwwvwgvwwvwgggwxxwxwxgwwwwfwwghvwxvwwwvvxvwvwgwxwxvwwxwwwwwwxxwxxwxxxwwgwwwvwwwwwwwhwwvwvxwwVwxwwwxxhxwxxxgwhxxxxwwvgvwgwvwwwwwwxwwvwwgwwxgwwwwwxwwwvwwwgwwwghwvwxxxvwvgvwvwwwwwxhgwvwxhwuvwwwwxwwgwxwwxwwxgwvvwwxxwwxxwgwxuxxxwwgxwwwwxwwxwwwwxxwwfwwwwxhxwvghwxwxwwxvwxwxgxxwxwxwwwfgvvfgwgwwvffwvggvvgvwgwvwvwwwvwvgvwfwwvuwwgvvwfwwwhwwwwwgWwwvvwvgwWWgwwvvwwwgwwwwvvwwvwwxwvuvwwwwwvwwwwvvwvvwwwwwwwwvwwwxwwwvwwvxxwwxwxxwwwwvwwwwwwwwwwxwxwwwxwxxwwxwwwwxxwfggggvvwxwwvWgvgwwwxvwgwwwgwuwwxwwgwwwwgvvwwwgvxgggwwxwvwwwwgwvxwgwwxxxvwwxwfwwwvwxwwxwwvwvwwxxvwwwwxwxwwwwwxxgxwwxxwwxwxwwwwwwwxwwwwxxwxwwwwwgxvwwwxwwwwwffwguwfggwvguwwvwfwwgwwwxgwvxvvwwgfgwwwwfvgwwwwwwwxgwvwwuwwwwwwvvvuvwwvvwvvwwwwwwwwwggwwwwwxwwwxxwwwvwwwwwvwwwxwwxxwhxwwwwxxwgwhxwwwwxwvwwwxggwwwwwwwwwwxxwwxwwwvgvxwvwvwgwwwvwwwgxwgxgwvvwwwwgwwxwgwwwwxxxwwfvwwwxwwxwwwwxwwwxxwwwxwwxwwxwxwxxhxxwgwwwwwggwxwxxxhxwxwwxhxwxwwfxwwxwxwwwwxwwwxgxvwxxxxxwwwxwwgufwvvwxvggwvvvhwggwvWfwVvegwuwwegvwxwwfvvwvgfwgffwVuvwvgwwwwwvwfvvggvggvvvwwwhwvxgwwgwwwwwgfgwgwgwwxwwgwVwwwwhwxhwwgwvwvwxVwwgwwwwgwwvwwwwwxxwghwxwwxxxwwxxwwwwwwwvwxxxwwxxwwxwwxxxxxxxwxxgvugwgvwgwwvvwWgwxwhwvwwwgWuwgwwgwwwgwgwwhvwwwwgwgvwwgxwxxxwwwxgvwwwhwuxwwwxgwwwvwwwgfxwxxvxwwxgxvxxxxxwxgwwXvhwxxgwxxxwxxwhwwxxxwwxxxxxxxxxwwwwwxwxwxxxwxxxxxxwwxwggvvvgfwggwVvuffWfwVvUgVvvwwwggwggfvuwfvfxxwwggfwxwwwwxwxwwwwwggvvgwvgwwwwVwwwwwgwwgwwwwgwgwxhwxxwwwggxxwwwgxwwvwxxwwwgwxwwxwhxwwxxwwxwwwxxwwxxxwxxwwxwxwwxxxwhxvwwvxwwxwwxxxwvvwwwwwwwwvwwwwwggwfwwwwwvwwxxxxwwwxwwxwwwxxwwwwwwxwxxxxwwxwxwwwxwwwxwxxxxxwwwwxxwwwxxxxwwxxxxxwxxxxwxwxxxxxwwxxwxwxxwxxwvwwxwwxxxxxwxtvwhgvvxwfwgugvwxwwfwwwggvxhfwwwwwwxxxvwwwvwvwwvvwvvvwgwwwhvwwwvwwwvwvgxxwwwwwwxxxwwxwxwwhgdWwfxvwfwwwwwxxwwwwwwwwwxxgfgwfvggwgxwwwwwwwuhwxxwwwwwvxxxxxxuwxxgwwxgvwwfwgwgxgwvwhwvvvvhwwuhfvgwxxxvwhwwxxwvvwvgwvwvwgwwwgwxgfwwxxwwwwwwxwxgxxgxywxwxgdWghwwwwxwvxwhwxxwxwxwxwxwxxxwvvwwvvxxxwgwugwxxxwxwwwxwxwhxwxwxwxwwgdVwwwgvwfwwwwxvwwwxxwwwwwxwxxwxxvffvvvvgwxvwwgwvvxwuguxgwwwwgwwwwwxwxxwwxvwgvwfwwxxgwgxwwwxxvgwwwxwwwwxxwwwwwvwwwwvxwgwxvvxwwxwxwxxxwxxxgdWgwgwgvxwvwwhxxxwwxwwxwxwxgvwvwwhxxwwwugwgwgxxwwwwxxwxwwxxxxwwxvwxvwhwxxwwxwxwwxxxxxxxxhwwxxxxxwxwwgxwxixxxxxxwxufwxwxwevwhgvvwwxwwgewfxwwxggxwwwgwwxxwvvwwvvgggwvvwwgvwxevgwhwwwwwwwwwfwggvxwwxwxfwxxwwVegwwfwwwwwwwxwwgwxwxwggvwwgwvwwfgWxxwwfwwvxxxwwwhvwgfwwvwwwVwxwvwwggwxgxexvxwxxwvwwwwgfvvwxwvxwwwxwvwxxwwXwvwxywxWegwfwwvvxxxwwxfwwxwxwwwxxwxgvwxxwxvxxxwxwxxvuvwggwWegvwwgwffwvvwwgvwxwwxwxwvxwxwwwxwxggVvgwwewvwfwfvvwwxwxvwwwxgvvxwvwvxwwxxgfwvwwfwwxxgvwwwwwxxggwfgwfvggwwwfgxwxxwwxwwWegwwwwfwvwwwxvwwwxxxxxVvvwwvxxwwwwxwxvvxxxwxwwwxvwexxvxwxvxwxwxxxwxxxwxxxwwwxxxwwxxxwxwxxxvwxxxwxwwwwgwwwwwwwwggwwwwgwwxxwxwwwxwxxxxwwwwwfvwwgvwvvwwwgvwvxxwxxxxxxwxwxxxwwwwxgwgwxwwxgxwxxxxwxxxxxwxwwwxwwwxwwwwhwwxxxxxxwwwwwwvwgvwvvwxwwwwwxwwxwxxwxxwwxxwwxwwwwvwxwwwwwwwvwwxwxxwwxxwwwxxxxxxxwwwwwwwwwxwxxwxxwxxvwwwxwwxxwwwxxxxwwwxxwwwgggwgwwwxgwwwwwwwfwwwwwwxwwxwwwwxxxwwggwvgwwwwwxfwvwgwwwwxwxwxxwxxwwxxxxxwwwxwwwwfwwwxwxxxwxxwwxxxxyxxxxwwwxxwxwwggxxwwwwwxwwwwwwxwxwxwxxxxxxxxwxxvvwwwwwwxwwwwwwwwxxwxxwwxxxxxwwwxxxwwxwxxwxxxxxxwxxxxwvwwwwxwwxxwwxgvgxxwwxwxvxwvwwxwwwvwgvxxwwwwvfvwxwwvwwwwvwxwvuwwwxwwvvwwvwwvwwwwgwwwwxxgwwxxwxgugxwvwxwvgwxwgvwwxgwgwvxwvwwwvvwwwwfxxwwwwwxgxggwwvxvwuxxfxhvwuvwxxwgwvwwwvwwxxxxxvwwxxwwxwwwfwwwxwggvwgwwwwwwwgwxxxxxhegwwwwvwxxxwwxwxxxwxwxwvvwwwvxwxwwwwwxwvxwwxxwwxgvwfwxghwgegvvwwwwwxwwwwwxxvvwxxxwfgvwwgwwwfwwxvxwwwxwxwvwxvwgxxwxwxwvvvwxxwxxvxwwgwxwgwuwxwxvvxxwvwwwxwvxxxwwwxuwvvwxxvxxgugwvxgwwwwwxvxwwxxgvwwwwwxwxxwvvxwvxwfxvwwxxhwxxxxxwxwwxxwwxxxxwxuwwxwwwwwwwwvwghvwffwwwwvwxwwwxwvxvfwxgvwfwevwvwwwwgdgvwwgwwvwwvxwwwwvwwwwwxgvvwvgwxwwwxwwwwwwgxxwfwwwgvwwwvvwwwwwgxwwxwxxwwwxgvwwwxwxvvvwwxvwxxwwxxghtgvwwwevvwwwxgwwwxwvwwwxvxwhwwxwwxwwwxxwwwxwwgwwfwgvgwwwxfxwwhwxwwwwwvwxwwxxwgwwxgvxwvwgwxwxwxxwwwwwwxxxvwxxwxxwxwxxwxwxxwxwwwwwwxwwwwvwwveuffggvwvxwfwgwwwxWwfvwxwxfvwvvxwwxwxwwwwwwheefgwvwgvvvvwfwwwgwwVvvwwwwwvwgwwvwwwwwwfvwxwwvvvxxwwwxwwwwwwwxgxxwwwhxwhhwwwwwwwwxxggwwgwxxwxxwxxxxxwxxwgvwwwwwvwhxwwwwgxfxgwwwwxxwwwwxxxwwxxwhwwwxwwfwwxwxvxwxwwxwwwgfwxxxgwwxwwxvwwxxxxwgwwxxwxxxxxxxxxxxwxwwxxwwwxxxxxxxxwwwwwxvvwwvxwvwxfvvwvfwwwwgvgxwwwgvfvfwgvwwxggvfwwwvvgfgwfwwweefhvwwwgevvvwwwwwwwxwuevvWvgwwwwgwxxwwwwxwgwwguwXwgwxxwhwwwxgwvxxwwwwgwxwvwvfwgwwxwxwxwvwvfwgwwwxwxxxwwxvxwguewvwVwxxwwvwwwwxuewvwwxwwwxwwxxxxhfwwwwvvwwwxwfwvwxwgvxWwxvvvvgwwhwxxxxfwvwwxxywwwvyxwwwvvgwwwwxvxwxxwxxwwfvwxxwwgwwwwwxwxvwxxvxxxhxewgwyxwvwwwgvwwfevfWwgfwwwwwvwwwgvxwwwwxxxwwwvffgwweefgwwvwUfvgWfwgwgwwwwwxwwwwggvvgVgwwfwwwwwwwxwxxxxggwxxwfwxxwwwxxwxwxxwwwxxwwwwxwwvxwwwhhwwwwxwxwxxhwwxhwgvvxuxvwvvgwxwwwxwxwxxxwwxwxwxffwxwhwwwvxxwwxwxxwhwwhwwwxwwwxwwwxxwwwxxwwgxxwxxxwxxxxgwxxwwxxxwxwxxwwxywwwxwwxxxwxvgwvgvwwwvwwvwwgvxwvhvvwwwwwxwhwwggwhwhwwwwxfvhhwutvxveuvwffwvwffvxwwgvvwwwwvvgwvvvwfwgwvhwgwwwvhwwwxwvwwvwwwwvvvwxxwwxxwxxfwwhvgwxxvfvgwwvwwwwwwwxwxwxxwwwwwwvxgwxxxxxwgwxxhxwwxwwwvwwwgxwxwewwfhvgwwgghwwwvwxgwwhwhgwgvwwgWwevvwwxwwwgvdxxwgvwwwwvxgwwwxxgxwwwwvwwwwgxxvwfgwwwvwxgvwwxwwxwvvxxxxxxwxxxwxgvgwwwxxxxwgwwxwwwwwwwxwhxxwxxwhwwwxwgwvvgvwggwwwvgwwwwwwgvwvvvwwwgwvvwvxwwwhwwwvvxwwwgvfvwffvwfvvvvvWgvvgwwxgvWwwwwVwgvvvvgfvvgwwgwvwvwfwwwgfgwvxwwvwvwvwwwxwxgwfxwxxwwwhwwwwwgxxxwxxxwwgxxwvxwxwwfgwwwgwwwxwxgwwvxxhwwggwwwxxgxgwwvwxwhxgwxwwwwxwhwwwwxggwxxgvwwwwwxggxwwvwxxwxxxxgxwxwwgwwwwghwwwwwwhwgxgwwxwxWwxvgwwxwggwxxxwxwxwggxxgwvvxvxhgxwwxgwhxwwwwwxwxwxwwxhxwxwwxwxwxwggwxwxgwxgxxwwxxwwxxxwwxxwyvwwwgwxvwwwwwgvwgwvxvwwwxxvwwwvwwwxxxwgwvvwwwvwwwvvwwwwwwwwwvwwwwwwvwgwvgxgwwwxwwxxwxwwwvxwwhvwxxxwxwwwwwwgwwwwwvxwwwwxwwxwwwxwxxxxxxwhvwxgxfwxxwffwwxxwxwxwvwxxxxwxxwvwfwxwwwwwwwxxwwwxvxwwwwwxxxwwwwxwxxxwxwwxxwvxwxxxxxxgwwxxxxxwxxwwwxxvxwxwxxxvvxfwxwwfwgwwvwxvvxxwvxwgwwxwwxwwvvvvfwwwwwwwxgwwvhwwvwwxvwggwwxwxwxxxvwwwxwwfgxxvwxgwwwxxxxxxwxwwwwwxxwxxxwxxxwwxwxwwwvwwwwvxwwwwwwxwwwwxwwwxxxwxwwwwwgwwwxwxgwwwxxxxxxwwxwwxgxvwgvgwxwxghxxxxxwxxwxwhwwwwxxxxxwxxxgwxxwwwxgxwgwwwwwxWgwgwwwwwxgwwwxggvgxwwvvgvvwxwvvvvxgvfgewwgxwgwwwwfwvwvwgwwwwvgwwwxxgvwxwwwwwwwvvxwhwwxwxxwwxxxwxxxgwwwxwwwwwwwwwwwxxxwxwwxwxxxwwgxwwxxxwwwwwwwwvwwwWwxwwgvwhxwwxwwvvhxxxwgvwwxgxvuwgxxxwwvgxwxxgwwxwugxxvwxxwxwwwxxxwxwwxxwwxvwxwgwwwwwxwgxwxwwxwxxuvgwxwxxxxxwwxxyxwwwxxxxxwwgwxxvxgwwxwgxVVwwwgwWfwwggxwwwxwgvvgwxxwwfgwwwwwVvvgwwwwwwxwwgvvwxxwxwwxwxxwxxxwvgwwwxwwwwwwfexwwxxxxwwwwxxxwwgxhxxwwgwwwwwxxwhwwvxwwxwwxxxxxxvxwwwwxwgwxwwwgwxwxwxxwwxxxwxwxxxvewgxwxwxxxxgwhvxxwhgxxxxxwwwwxwwhxwxwwwxxxxwwxwxxwxxxwxxxxwwwwxxhwxwxxwxxwxxevwwuvwwwwwvwwxvwwxwwvvwwwvwwwxwwwwvwwwwwxwvwwvfuwvfwwwvwwgwwwwwwwwwwvvwwvvwgwvwwwgwuvwwwvwwxwwwwgwwwwwwwgwvwvwxwxwfegwwxwwxxwwvwVwwwfgvwwwwxxwxwwuwwwwxxxxwwxxgvwwvgvVwwuwwwfwvxvwxxgggwwvvgwhwvwxwwxwwxwevxxwwwvwwhgvwxwwxvwVwwwvxvwxxxwwwxwwxywgegwwwwwwhxwwwwxwwxxgwwwxwxxxxxxxwfwwwegwvxxwgwxxxwwxwvwxvwxwwxxxwwvuvwvwwwvvwwwwwgvhwwgguguvvvwxxwxxgwxwxxvvgvfwwuwfxhVgwvwhxvwwwvvwwwvxxxwwvwxwwwxwxxxvwwwwwwvxwgwvwwvwxxgwwwwwwwwxwxxxwxxwxxwwgwvxwvvxwwwwgwxxxxxwvxxwwwxxxxxxfugvwvuxvwwxxwxxxwwvwxxwxwxwxwguvwwwwvvwwwwwvxwwwxvwwwwwwvwxwggvvxwxxxxhxwxxxxxxxxxwxxxvwwxwxwwxwxwwwxwxxywxwvwwwvvwvwfggvwvwwgvwgvWwgwwwggwgvwwwwgvXggwwvxwxwfvwwgggfVvuvvgWewwgwgvugvwvwffvWwvwwvvwwwgwgvfwwwwwgwgwwxwwvvfgvxvfWvhwufvxxxwwgwwgxwxwwwxxxxwgvgwvvwwvwwwwwfvfwfvvwwxxwxwxwwxwxvxxwwxwvgwwgxgwfvwxggxvxxhfhwwwxvuvvgwwvvuvgwgxwwwwwwwwgwxvgWwwhxwxwhxvgvwwvgvwxgxxwxwgwhhfxxwxwggxfvwvwxwxwvggxwvwwwwxxxxwwvwvxwxvuvwfwfxxwxfgwXgexxxwwwxwxvxhwxwwvvVwgvwvwwvwgwwvfuvwvvxwwwwwfwwgwwwxxwxwxxwvxxxwfgfeuvwfvvwvwvwfvwwwvwvfwwvwwwVwggfwgwxwwwvxwwxwxwxggwwwvwxgwwwwwwxxwwvwwwxwwxwwxwwwxwxxxwwxwwxwwfwxgwwwwxwxwxxwwwwvxwxwwxwwwhxxwxwxwxwwwwvvxgfwgvwvwwwvxwwwwwwwwvxwwwxxwwxwxgevvgvwfwxwxxwggwxxwxwxwwwxwxxxwxwwxxxxxvvwwxwxxxxwwwvxwxxxxxwxwxxwxxwxxxxwwwwwxxwxvxwxxwxxxxxxxxwwxwwfgwwwwxxwwwfwwxxwxwggwwxwxwwxxwxxgxwwwxwwwwvwvhxwwwwwwwwwwwwxxwwgwwxvwfwwwwxxwwwwfwwwwxxwwvwxxwxwxxxxxxwxxxwwgwxxxwwxwxwxxwxwxwwwxwwwfgwwwwxwwxwvwxxxxxxwhxxxxxwwwwvwgwwxxwxwwwxxxxxxwxxxwxwxxxwwwwwwwxwwxxxxxwxwxxwwwwwxwxyxxwxxwwwwxwwwwwgwwxvwwgwxgvwvwwwxxwgvwwwwvxwwwwwwwwwfwwwwwfwwwwwwwxwvxxwxvxwxwwxwxxxwwxwwwwwvwxxwxxwvwxxxxwxxxxxxwwwwwvxxwxxxwxxxxxxxwwwwvwwxwwwxwwwvwxwxwywxwwxxwxvxwwxwxxxwxwxxwwwwxwwwxwwxwxwwxxxwxxwxxwwxwxxxwxxwxhwxxwxxwwvhwxxwwwxwwwxxwwxwghwgwwxwxwhwwwxxwwwxwwxvwvwwvwwwxwvvwwwvwxwxwxhwwwxxwxhwywwwxxwwwwwxxwwxxxxxhwxxxwxwwwvxxxxwxwwhwywwvxwwwxxwwxwwwvxwwxxxxxwwvwxwwwwwwwwxxxwwxxxwxxxwxxwxxxhwxwxxxxxwxxxxxxxxxwxxxwwxxwwxwwxvwwwwvwwxwxwghwwwhxwwwxvwxvwwvwwwwxxwwxxxwxxwwwxxwwxxwwwxxvwwwxwxwvxxwhxwxxxxxwxxxxwwxxxwwxwghwvvwxxwwxxxwxxwwwxxxxxwwwwxxxxxxxvxwxxxwgwwvwxxxwxxxxxwxxwwxxxxwxxxvwvvgfwwwwvwwvwwwuwwwwwvvwwwwwvxvwwwwvvwvwwggwwwxhwwwwevgfwwvwxwfwwgwgvvwwvwvvuwwwgwwwwwvwxwwwgwvgwwvxwwvwwwwvwgwwwwwwgvwxxhwvwwvxwwxxwwwwfvvwwxwvwwwxvuxwwxxxwxxwwxgvxvwwvwvhewwvwwxwhhxvwwwxxwvvxwxxwxxwwwwwwvxwwwgwgxxwwxwgvvwwxwwxxgwwwxwxwwwhxwwuwxwxxvwxxxxgxxhwgxxwxxxxvxxxwwxxwwwwxwxxxwxwwwvxvwuvwwevugwfwvvxvvvvvwwvgvvwwwwewxxfvfwwvwvvwvuvvgwgwvwgwvvfwgwwwwgwwwwwwwxxxwwwxfwwfwwxwfvwvhhxwvhwvvgwwwwxxxwxxxxwxwwxxxwwxwwwwxwxhwxxwwwxfwwxwxwhwwxwwxgxxgxwwxxxwxxwvvwwgwwwwwwxxxwxwxwwfxwxxxvvwwhwwxxwwwwwxxwwxxwgxwxxxwhxwwwxxwwxxwxxxxxxgwwwwwwwwvwgfxwgxwwwwvwwwvwwwhwufwwgvwxwwwwxwwwggwwwgvvvvwgvfwwfxgwvwgwwwwvdfvvwwxvwxwfwvwwvwwwwxwwwwwvwwwwwvuwhwvwwwxgwxwxwgwvwxxxggfgwxxgxwwvwvuwhwwxgwgwvwwxwwwwwwwwwwxwxwhwwwxxxwvwxwwvwdfvxfwxwwwuwxvvvwvxwwwwwwxxxwwwxwwxwwwwwwxxwwwwxwgxgxwxxgwwgfvvgwvwwhwwxwwwwxvwxwxwxwxxwvxxwwwwwwgwwhxvhwxxgwhwxwwwgwwxwvxxwxvxwwwxwxwwwwxwhgwxxwwwwwwwgwWvwfwvgwwetfWwxwwgwvhwxxwvfwgvgwxwwwgwwwwgVvvwwvwwwwwedfWfwfwwwwwvvwvwxwwgwwwwvwwhwwxwwgwvxwwhwvxxwgwwvwWxxhwwwwwwwwwxxxwvxwWxhwxxwgvwxwwxwxxxxwwwwwwwxxxvwxxwwxxwxwhwfwwgfwwgfwwgwvxxxwxxxxxwxxwxxxxxxgwwxwwvwxwwxxxwxhwxwwvvwhwwwwhxwwwxwwxxwgwwwxxxxxxxxwxwhxxhxhwhxxwxwwwxxwxxxxxwwwxxwwwgwxwxwxwtwgfvwvgvwxvwwgwwwgwgwwwwwwxvuwwwwwwwfvwwxfgwxwgvvfwcVfvwwwewvwwvvvwwvwuvwgwgwgwffwvvvvggwwwwwwwwwwwwwwwgwxxwwwxvwvwwvwwwvgwwwwffwwxwvgwwufgwwwxWwxwvwxwxwwxvwwwvwwffwwwhwwwwwwwwxwxwwWwwvwwwgwxwwwwgwwxwxwxwvvwwwewvwwuvwwwcWwwgxvuwwwgwwwuwwwwwgwxwvwwwwwwwwxxgwxhwxwwvgwxxwwwwwwvwwvvwgwvxvwwwwwgxwwwxxvvvgxwhgwwxxxvwwxwwwwwwxwvvwwwvgxwxgwwwwxwxvxwwwxxwvwxwwvwwwwwwgxwvwwwvwxvxwwwwwhxwwxxvwwwwxgwwwxxghwxfvwvWvwvwggvwgfwwwGvvwwevwffwwvgvxwgUegfgwwwgwwgvgwffwwGvvwewwxwwwxwwwguvwgfvwUegfwvwWuwwfwwwwxwwwxxwwwxwwvgxxwwwfwwwwwfggwwwxwwwwwwfwvvwwxxvxfhhwwwwgwwhxgvggwwwwwwwwwwwxwwgwwwwwwxwgwxhvxwwwxgxxwwwxxxwwwWgwwwgvwwfvwwwwxwuwwwhxwxwfwwwxwwwwxxwWxxwwxwwwwwwwwwxgvgwwwgwwwwgfvwxgXxwwwwxvwxwvwhxwgwxwxxhwwwxwwwxxxwgvwxwwxwxwxxxwxhxxxxxwxwxxwwvxxhgxwwxxgwwgvwwwxxxvwwwfwvffwwxfwgeuwfwfvffwgvvwwwwgwwwwwgfwvwvvwfwxwwVuwwwfTwfefvvuwvfwxwvwwfuwwfwgwVgfuwvevvwfwVvfuvwgwVwwwwwwhgfwgwwggwwfVwvvvwfvwxwvxwgxwVvwwwxxvfwvfuwwvwxvgvvwVvwxxwfvwwwvfwwwxwwwwwwwxwxwvwvwvwfwwvvuvwfVwxwvufvvgvwgwwwwgwxxxguwvxwwvvwwwxxwwgwwwwfffwwwvwwxgwvwfxwxUvvwxvwxxgwxfvwFwxewghggvwwwwwwxwxwguvwwwwvwwwxwwwxxhwxxwwwxvwwxxevwwewwwwxwwvWxhxTfxwxxxxxvwxwwwwxwwvwwwxxggwwggwfgvvwwwfgfuffwwgfvwwwwggwxfvwwxwxxxxxhwfgUvvvwfwtxvvgfUtvgwgwvfgewwwwfvuvwvxegwwwwwggvwwwvwxwwvwvwwwwvwxxfwuwwwwxwwgwxwwxwvwxxwwwwwxxvwxwwuxwwgwwwwwgwfvfwwwwwxxxxwxwxwwvwhwwwwwwxxwxwwhvwevfwxwvwwwgvwvwwwxwxxwxxxxxxxxwvxvwxxxxxxvVwwwwwwwwxvwvvewwwwwwwgwwwxxxwxxxxxxxwgwfwwwwwwwwwxxxhxxhwxwwwwxxxwvxxxxxgwwwxgggxwxwwwgxwxwxxwxwwxuwxgvxxhvwghvwxwgwwfvxwvvwwwxwggwggxgwxvvvvwfwvevvgxvwgfgwggVfwwwfwvxgwwwwxwfvwwwgwwwgfwvvwfwwhwwgwwvgWvwwvwvwwwxvxwwwwwwxwvwwwfwfwwgwxgwwvwwwxxwevvxxxxxxxgvxxfwwxxxfvvwwgvwwwwxxfwxwwwwwwwxvwwwwwxxwvxwffvwhuufhggXxwhwwwwwvwwxggvwwxvwgwxwwwxgwhwxgxXxgggwwwfuvhwvwvwvhvgxwxgxwwhwfwvvgxwgwhwxgwWwWwwhxfgxgwwgwxeefhwwwhwgxxgwwxxxxhxhwxgxxxwxxxxxxxwxxwxwfvuxxvwvwxhxhwwwwxxwxxxwxwwwwxxxwxgxwwxxwuxvwgwxgwvweghwfwwwVvxxwwxggxgvxwvwwwwwVvwxvxwgwgwxuwwvwvfgwwxwwwfvfwggfvhwwwgxhwgvvwwwwwggwxwgvvxwwgwxwwwwwxgwwvwwxxwwWwvxwwwwwxxxxwwgwwwxxwwwgxvwxggxxwxxwxwgxwwxwxxwxxgwhxgwxwwxxxxwxxwhxxwxxxxxfwggfvxwxxwwwwhxwwwgxwxxxxwxwwxxxxgxxwxgwghxgxwfvvwwwwxxwxwxggvhxwxwwxxwxwfxwhggxwwxxxhxwxwxwxxxxwxxxxxxwgvxxxhhxxxxxxxxxwxwvxwhxxxwwwhwxxhgxxxxxxwxxhxwwxwxxxxxyhwwwvwxwvwwwwwuxxvgwwwwwxwhggwwgwhwwwxhxwwxxwwvwvvffgwgvvwxwwwwxwwwxwvwgvwwwwxwgwwwvwxxwxwxxvwvhwggwhwwwwvvvwxxxxwwwvvxxxvwwwwvwwhwwwwxvgvwwgxwxxwwwxgvwwwwwwwgxxxwvwwwwfwgvwwxwwxwgxwwxxxxwwwwwvwwwwugwxwvwwwxwwvwgwwwwxgxwgwxwwxwxwxwvgwwwwfxxxxxwwwwwhvwwxwwxwxwxwxfugfhxgxwwvgxwxwxwxxwwwwxxxxwwwwfffxwfvwevxvwvwvvgwxxxwwgfwvhvgwxwxxxwxxhxwxxxwgfwfvfvgwwgwwwwwwwgwxwxwwvvwwwxgwwwwxwwwxxwwwwgvggwfgwxfwxwxwxhxwxxwgwgvwgxxxxxxxxwwwxwgwwxwwwwxxxwxxxwwxxwwxxxwwxxvgwvgvvwxwwwwgwwvhwxwvwxxwxxwxwxwxxuvgvwwwvxwwvvxxxxwwwwwwvwxwxxxwxxxwwwwxxxwxxxxxxxgxwwxvxxwxxwxwxwxxwwwxwxxwwxwwxxxwxxwxxuwvvvwwvwwvvvvwvgxwwvfwwwvwgwwvwwwvvvwwvvwwwvuxwxvwvwVwfvgwdfwvfegwfwgvwwvvwwwwfgwvvwwggwwvwwwvuwwwwggwwwwwvwxvxwvwwwwvwwvvwwwwwwgwvwxxwwwfwwwwwuvgxwwxxwwwgwwvwwxwwwwguvgwwwwwxwgvxwxxwwxwwwvvwvwwwvwgwvwvvvwwwvwwwdfvvwwwwvwxwvxvgxwwwwwgvwffwwwVwwwfwvwwhwxfwfwhwwwwwwwwwwwwuwwgwwxwgxxwwuwgwxwvgxxvggwxxxwvxwvgxxxwwwwwwgxwgwxxxxxwwfwwwwwwwwwgxxxwxhvxwwwxwwwxwwwxwxxxxxhfwwwwvwwwgwvvgwwfgvvwvwvuwwvgwwwduWfwgwxwvwVwwwwwvwxvwwwgvvvduVfuvwvwfgVuvvvvvwvwwwwgwwvwwwwvwwwwvwvxwfgwvwxwwwwgwwwgwwwwwgxvWwxggxvwvwxxhxwxwwwxwxxxwwwwwvwwwwvwgxxxwwwwwwwwhxxwwxxxxxxxxwgwwwvgwwwwxwwvwwwwwwwwwwvvwhhwwwxvwxwwwhxxwwwvwwwfvwvwwwgwwxwwwuwwxgwwwwxwwwgwwxwwvwwxwgxhwwwxwwwxwwwwvvwxxxwxxwxxwwxxwxxxwwxxwxhwxwfwxwwwxwxxxwwgxwwxxgwxxxxxwwwwxwwwxgwwvwwwxwwgwvwggxwwwgxwvggwwwWfxfuwwwfVfVffvvgwgggvwhfvgvwgvwvffgvwwwwxgugfwWvwwxwxxwvhwgwwwwwguxwgWwxwwwxwxxxgwgugwvwwxxwgvfggwwxwxwwxwxvxwxwvwxxwwwxwwgwvxgwvwwfXwwvhwvwwxwxwvvgwwwgfuwwwXwwwxxxwwwxxgfwwvvgfffegvfwvwwxhvwgwwwxwgfgUxgwwwwxxWwwxxwwxgwwgwwxgwwwwvxwxxxvwxvwxwxwxxwwhwgWgvwvxxvwhwwxxwxwwwwgwxwxwxxxxwwwwgwvvwwwwggvwwwggwxwwwwwxwwxwgvxxxvxxxvgwVvuggwxefgWuefwWfgwgwwwxgwwgwwxwgfwugghvwxgwgwuxwxwxwwxvwwgwwwwxxwwxxxvwwxxwxxxuwwxxxwxxwxwwwwxwxwwwgwvwvxxwxwxvwxwxxwxxWvwwgwxxwwwvwxwwwxxvwwwxwwxxxxxxxxxwxxxwxxxwhwgvvgwgvwxxwwwwhwWgvxxwggvxhwxxwwwxwwxxwxgvwhxhwgxwxwxxwxwwwxxxxwxxxxwwxfvxxxwxxwwwwxwxwxwxxxhvxxxwxwxxwxvwgwxwwwwvwgwwgxvwfgvwvwwfvwwwwwwwwgwwvwwvwwwwxwxgvvwwffvvgevftvewvgvvgwvwvvgwgfwvvetvuwwwwwgwvxfwgwwwwxwwwwwvwhfgwwwwwgwvgwwfwwwvvxwwxxwvvwfevvgvvwwgwwvwvvwgwwwwvwwwggwwxvwwwgwwwwwwvwgvwwwwwwwvwxxwgftvewwwvgggwxwwxftvuwwwwwgwwxwxwwvgwgwvwvggwwwVwwvxwvvxwwWwxwwxvvxwhwwwwfwxwvwwwxwwxguwvxwwwxwxwgvxxxwwwwxvvxgwgvwxxwwwvxwggxwwggwgwewxvwxgxwwvwwvvwfwwwwgwwwwwgwvwvwxwgfgvwvvwvxwxxwwwxwxxwxxvgffuevwwvwwhfgwhfwfwxwwwgWfugvvvwwwwxwwxwvgvwfxgwvvwwwxxwxwwwwxxxwwwxwwwwwvwhgxhxwhxxvxvxxxwwwwxxxwgwxwxwwfwwfvfwwgwwvwwgxxxxwwwwxfwvwxwwxgwvxwwxxxwwwxwxxxwxwfvxgxxwwxxvxvhgvggxwwwvwxwwwwxwwwwwwwxwwwwxwxxwhwxxxxwwwwxhhxwxwxhxxxwwwwxwxxvwhwxxxxwwwxxwwvwhxwwxwxwxwwwwxwxxwwwwwwwvwwwwwwxwvvwwvwwxwwwwvwwwfxwwwwwxwvgwxvwwvvwwwwgwxwxxvxwwxwxwxxwxwwwxwwwxxxwwwxgwxwwvwgxwxwwxwwwxvwwxxxxgxwwwwxwwwxxwwwxxwxwvvwwwwwwwwwggwhxxwxxxxgwxwwxwwxwwxxwxxwxwwxhwxwwxxvwwxxxxxxwwxxwwwwwwwwwwxwwwwxwwwwwwwwvwxwwwwwwvwwwwxwwxvwxwwxwwwwxwwwwwxwwwxwxwxwwwwxxxxxwwwwxwxwwxwwwwxvwwxwwxxvxxwxwwwxwxxxwxwwwxxwwxvxxwwwgwxwwggxxwxxwwxxxwwwwwwxwwwxwwxxxwwxwxwxxwxxxxwxxwwxuxxxwwxxgvwwvxxWWwfgfvwVwxwwwwwwwgwwwwwwwvwvwvxwwvvwwgwwwvwwxVVvwwwwgwgwgwvwwgugfwvfwwwwwxwwegwvgvwwgwvwggwxxxgwwwxwwwhwWwvvvvvhxwgwwwwwvwxxgwwxxvxxwwxwxvwwxvwwvwxwgvxwwxwgwwxxxwwwxwxxxwxwxwxxxgwggxxgxwgxVwwvwwwxxvgwvuwhwwwwvvwwxwwwxxwwhggwvwwwwuxwwvwwhxwfgwwvwvvwwwwwxxwwwvvgxgwwwgxgfwwwgwwwwwxxxwwxwgxxxwvuvgxwxxwxxxxxxxwxxwhwvwwwwxwxwwxwxwxxwxwwwxwwwxgwwwwxgwWwvghgvvxwfgwugguwwwWgwgwwwwwggwvxwwwgxxwvwwvgwwwvvwgwxwwugfwwuxvxwwwuwwwwwwwwwwvxwwwvvwwxwwwxwwwggxwxgwwxhwwgxwvxwWgwgxwwxwxxwxxwwxgwXxfxwwhxwxwwxwxxwwxwhxgxxxxwwxhwwxwxwxwxvwwwxxxwvvwxxgwhwxhwVwwxwwwxwwxxwwwxwwxxxxxywvvxxwgwwvwwuwhxvwwwwwwxxwwwwxxwxxwxwgwwwxwwgxhwxxwxxwxxxxxwxwwhwwxwwxhwvxxxxxxxxwwxxwwxwwwxxwwxxxwwwgfvwvvwvgwwwwxvvwwgwwwwhwffwvhvvwwwxxggwwvfwgxwwgffwvvuvwwwgwwuugvwgwwwxwwwvWvwwvwwgwwwwwwguvgxwwwxwxxwwggfwggwwwwwwggwwvxwxwvfgwxwwxwwwwwxxxvgvwwvvwwwwwwwvwvwxxxxxwfwwvwgxwhwgxvhwvxwwwwwgfgvvvxgwxuvwwxxwwwxwWvwvwwgwxxwuwwxxwwxwfvvvvvwwwxwgwwwwvwgxwwwwxxwwvwwwgwwwxvwwxvwwwwwwwvwwwxwxxxvwvwwwxwxwwvwxvwwwgwwwwvwwxgxvwwvvwwwwwgxxwwwwxxhxxwwwwwwxvxxxwxxxxwwxwwwgwwwwwWwwwwwwwwggxvwwxwggwwvgwwxxgwwwwwwxxxxggvwWwgvwwwwxgvuwwwwvwwwxwfvvwwggxwhxhwwwwwwwwwwxwvgvwvwwwwvwxgwwxwwxggwfgvxwxwxxxwwwxwxwxxfwwwxvvxxwwxxwwvhwxxwwwwwwwwwwwxwwwwwwxwxxxwgwwgxwxxwwxwwwwvvwhwwxwxhwwxwxxxwxxwvvvwhwwxxwwwwwxwwxwwxxwhxwxwwwwxxwwxxwxfwwvwxxgwwfxxwwwwwwwgwwxwwwxwgwvwwxwwwvxxxxwwwxxwxwxwwxwwxxxwwgwwwgvuvvwwvwwgwvwugwwxwvwggVvgwgwvvgvwwwxwwwwwwvfggfvvvvgwwfvwgwfwvfwgffuvwwgufwvvxwwwwffgwwggfwgwwwwwwxvwxgfvuwfvwwwvwvwgwxwwgwxvxxwgvxwwwwwwwwwwugwvxwxwvvwwfwfwvwgwvwwwwxxwxxxwwwhwxwwwxxggvxwwWgwwggvvgxgwvwwwwwwuwwhwvtvWwewvfwwwggwwgwwfwwffvvwwfgwxfxwwfwwwvvuwxwwwwhwxwhwwvxwguxwggwwwwxwwvwvvxvtuWwfgwwwwhwxgfxxgxwxxgwwwxgwxxguwwwwwxwxwwwwwwxvxxwwwxgwxxxwxxwxxxvvvvvgvgvxfwhwwvvwwuhwwwwwgfgwgvxxggwvgxwvfgwwwxwwvxwwvvegvfwvxggwwvwwwfewwwwxvwwvfwwwggxwvxwwwwxwwwvwxwggwwgVvwxwwwxfhvwwwxvvvxxxxwwwxwxwwwwwhxwgwwwxxgxfwgwxwwwxxxxwwxxwvxxxxwwxxfwxwxwwwvwvwwvwwgxxxwxvwugwvvwvwfhwgwvvxxvxwgwgwxwxxwwxxwwvfwwvwxvxwwwwggwwgwfxxxwwwxwxgxxwxxwwwwwwvxhxwwwWwxxwwwvgwxwWxwxwxxxxwxwgwwwxxxxxvwhxwxwwwxwwxwgxwwxxxxxhwwxuwwwwwgwwfwwwwwwgfwvwgfwvwgwvwgvfvwwwwwvvewevgggwwwwwgfgfewfffvfvvggffwwwvwfVfvgwwvwgwvwwwvvwwvgwvffwghgwgfxwvwvwwwwxwgVwwvwvwwvwwvwwwgvwxxwwwwwvvfwwwwxwgxwhxxxxvwxwwwvxwwwwwwhwggxxwwgwwwxwwgxwxxwgwwwxxwwvwxgvwgwwwwxwfwwwvfuvgxwxgwwgwwwvwgwwwwwxwgvfwvwxgwwwxvwwgvwwxxwWwvvxxwwwwggvxffgwgwvvgwwvxvxwugxxwxxhwhwwvxfwvwgwwvuvhwxxxgvwwhwwxxgxwxwwxxwxwwhxhxwwwxwwgwvfvxwxxwxxwwgwwwxwwxwwwgwxxxwvxvxwvxxwgvwwwvfwvxvwwfgwwVvfvvwgwxvwxffwggvwwwgwwwgvwwhwXwwwwwfwvfvvwvvvvwgvfggxWggvfwwwvvwvwwwxfwvfwwwwwwwghvwwgwwvxwwwgwwgwwwggwwwhwwwghugwxWxwwxxwwwwxhvhwwwvwwwxwwvwwwwwwhvxwwwxxwxxwhxwwwxxxxxwxxxwwwwwwwwwwwwgwxwwgwxwvxwvhxxxxhwwgwwwxXhgxxxwfwwwwvxgxxwwfwwxwxWgwhgvwwwgvwwwgxxhxwgwwxwxwwxxxwwxxwwwwxxwxhwxxwwwxxxxwwwwwwwhwhxxxgwwxvxxxwxxwwwxxxvgwwwwwwwxxwvxxxxwxxxwwwwwwvvwxgvgvwwwwwwwvwwwwwwwwwwxgggwvvxwxxfvvwfffWffvwxfggwwwwwwwwfVWvwwxgxxvwvwxgwxxxfvwvegwfwwfvvwvwwvvvxxwxxffggwwxwwwwwwwwxwxxwwwwgwwwxxvxxxwvwwwwvfwwvfwwxvwwwwwwgwwwwwwxxxywwwgwvwfvufwwwwvvwgvwwxxwguuwxwxwxwwhhwwggwxywwwxwyxvefxwwwwwwwwwwxwwwxxvwwxgwxxxfuevwwwwwwwwwgvwwxxwxwwwwxwxwxwxfufwfvffgvwwuffvwwgxwvwwwwxvwUeevvvvxfwwwvwevvwvwwgxxvvwvwwwwvwwxwvwxfWvwgwgwwwxwxvgvwwgxwwxwwwwxxxwywxfgvwggwwwxwxxxwwwwfwwwxwxvxxxwxxxwwvfgwwxgwxwxwwwwwwwxwwxxxwwxxxvvvfwwwwwxwvvwxfvxxwvwwwwwxxvgwwxwwxggwgwxwwxwxggwxwxwwwxwhwxxxxxxxwxwxxwgwggwwwxxwhfvxwxwwxxwwwxwxxxxxvwdvvvwwwvvwwwwgvwwwgwwVwwwvwwvwfwvwwwwwwfwxwfvwwvuvvfwwgwVwfggwvwwvuwvvwwhwwgwwwwgxwvuFgxvwwwwxvwwwwwVvggvwwwwggwvwwwxwwvwgwwxvwxxxwgwwwwwwwvwvwwxwgvvggwwxwwwwwwwwwxhwxwwwwxxwxwwgvwwfgWvwgwwgfwwwwwvwwwxxwfgwwwwxgxxwxxvfgwwgwwffvwwwWvwwwvwxwugvxwhvxwwwwwwxuxgxxxvwwgwwFvgvwgwwwwxgwvvwwwwxwwwwwwwwxxxhxxwwxwwxxxxgvwwwwwwwfxwwVwwwwwgvggwxxxwwwwgwwxhwxwxwwwxvuwwvwwwvwwvfwwwwwwgwfuwwwwvwwvwwwwwwxgwvxxuwvwvwfgvvwvvvwwdvwwwwwwWwwwwwwfvwwgvvwxwwwxvwxwhwwxwwwwwuwwwwwvwxwvfwwwxwwwwgwwwwwxxwxwwxwwxxwxxxxwvwhwvwwwwwwvwwwwxxwwwxxxxwxwwxxwwxxwxwvwvwvwfevwxvvvwwvwwwxwwwwwwwxhwwwwxwxxxwxvvwgwxgwgwwwvvwhhwWvgwwwwhhwwwhxhwwxxvvtwwxxgwwwxwvgvwwxxxxwwxwvwwvwwwuwxvwwxxxxxxxwwxwwxxxuwxxvfwwwxfwwwwfvwwxwwxwwwwwwwxgwhwwxhfewwvvwhvgfwwvVvwwwwvwhfxwxxgxxwfgvwwfwwwxwwwvwwwwwwwxxwgwwwgvwxwvwxxxxxwxgvwwwwwwxwwxVfwgxwwvwwwxwwwxxwxxgxxwwxwwwwxvwxwgwgwvwxfwwxgvuwwwwwwxwwxwwxxwxxhvgwwhwVfgvwwwwwhxxwgvwwwxwvwgxxxvgxwxwwxxxxwxvwgwwwfuwwwgwwxwxxwwxhwxxxxwwyxVfgvxfwwvvvxwwwwwxhxvxwxwxwxwfgxxwxwxwwwfuwxgfgwwwwvxwggwWvwvwvhwwxfwgwwwwxxVuvwwwwgwfwufWfwwhuwfvgwwxwwxwxxggwwxwwwvwwvxWvxxwxxxxyxxxxwvwwxwxwuxwxxxxxvwwxwxwgwwwxwgvwwvxgwvwxwggwwwwwwwwxxxxxxxxxxvfgvhuvvxeuwwhvwxxhfgwhvwwxwwxxhxxwxwfvxwgwxwxwxwwxxxwwwwxwwwxxhxxxxwxxxgwwwgxvwwvvwwgwwxwxwwvwwxwwwwwvvwwwwwwwwwgvwwgVvugeuvfwggVeuxvwwwvwwwwwvwfuwwvwwwwwxvvvxwxxwxwvwwwxvxwwwvwwwxwwxwvwxwwxfwxwfgvwvvwwwwwvfwxwxwwwwwvvwxxxxwwxwwwxwvwvvvwwwwwvwvxvgggxwxwgwwwxgvgwwxwxwwwvewugWvuxfewewvwvxxwwuuwwguvxwxwwvwwxxwwxxxwwgwwwfxwwwwvwvwwwwvwwwwwwwwxwwxxxxxxxvfwvvvxwwwvwvwxwvgvwvvxwvxxwxxwwwxxwvvgvwvwfwwxfwwwwvwvwwgwgfuwwgwwxwxwxxvfwwvvwfgwgwwwvfwvfvwwwwgwxfvuvvfwwwwxfxwvxfwwwwwxwwwvwwvxwwvwwwvwwwwwxwwgvwwwwwxxwwxxwwxxxwvxwvwvvxwxwxxxvwhwxxwwwwxxwxwxwxwwwwxwwvwwwwwwwwwwwwwwwwwxvwgwwwwhxxwwvwwwwvvwvvvwwwwwxwwwwwvwwwxwwwwxxwwuwwgwwwxxxvvwwxgvxxvwvwgxwwxvwwxwxxvwxxwwgwxxxwwwwxxvwwxvwxwwxwxwxxwxxxhwxxxgwwvfxgwwwwgwxfwxxwwwwvwwwwvvwvgvfwwwwwwgwvwwxwvvvvwvwvvwxwwvwvwwwwwffvwwvvvxxxwvwwfwwwvvwxwwxwwwwxgwvwwwghhwgvhxxwwxvwwxwwwwwxxwvgwxwxwwxwvxwwxwwxwwwwvgwxwvxvwwxwxxxvggwwvwwwwxwfwxvvxvxxxvxwxwyxwwwwgwvwwxwvxwwwvwxxxxvxwxwwvxwxxwwvwgwxwvvywxwvwwwwxwxvgwwvwwvvwwvwwwwxvwwwxwwxwfvvvwxvvwwwxvfwfwvvvvwwxwwxwgwwwxwvwxwwvgxxwvxwwxwxxvvwwwxvwwwwxxxxxxxxgxwxwwxwxxwwwwwwwxwwxwxwwxwvwwxxxwxvwwxwwxwwxxxvwwwwxgxvxwgufvwxfxwvgwfvwwxwhgfwwwhvvwwxwwwwwgwxwwwwvwwvwwgvwvvuwvvwwfwwwgffwewgvwffwVwvwvwwguwfvwwxwwvwvxxwxvvwwwvgwwwgVvvggwwwvwwwwwwgwwwvxxxwxwwgwxvxwvxwwxvvewggwwwwwwgvfwwgwxwxwxfwwwwxxxwfwwwfvvvwwwgwxWVgxwwwwvwwwwwwgwwwxwwfwwwxxwxwwxxwwwfwwxwwvVfvwggvvwwvvwfvxvvvwfwvwwwguwvwvxxwwwwwxxvWfwvwxgwxwwvwwhhhwfwxgwfwwxxwxwxwgwwxgwwwwvfwgwfwwwxwwgwefwvvwwfwgxwwgwwwwwwggxfvwwwfvwwwwwggwxwvggggvwxxwfwwwgwwvxwwxwwwwevwXwvxxvgvvwfwwgwwxvwwwffwvgfwvwvwwvwwevwgwxgxwwxxvfvwgggwvwwwgwwwvxwvxfxwvwwvxxwwwwvwwxhxxwwwwxxwwwgwwxvvwwwxwvwwxhwxwxxwxxwwwgwghwxwwwwwwwwwwwvwwgVfvxwxhvhwwwwwxwwwwwwwwwwwwxvfwxvwvwxwxwggwgghfvwwxxvvgwwwxwxwhvgwwwwfwxfuwhxxwwwhxxxwwwwxxxwwxhvwwwwwxwwwwvxwxgwwxwwxxwwxwvwgxwxwwwgwxugwwwvwwvwwwvwwwwvwfwwwwvwWwwwfxwxhwwwxxvwwwwxvfgwgftfvvwgvvfguuwxwfuwwxvwwwduwvgvwwwvwwwwfwwvxwxwwwwxwvwwggwxvwwwwgwwwwwvwwwwxwxwwxxwxxxguvvvwwvwwwwwwwwwhxwwwwwwwwwwwwhwwwxvxhwwwvwwwwwwvfwWwwvfvwwfwwXxwwwgwwWwwwwxxgwwwxwhwxxxxwvwgufwuvtgvwfwufwuxwwwtwvgxwgfvtwwhxxxxxwwxxwxxwvfwwwgwwxxwvwvwxwwxgwvwwwxwxhwxxgwwwwxxxvvwuxwvwwwgwvwwwwvwwwwwwhwxvwxwwwwwxwxwwwwwwwwgwwwwWwxwvggwwwgwvuwwvfgwhwwwwwxwwwwhwwxhwgfvvfwwvuwuwwxvvwwvvvwgwxvwfwfwfvwwgwwwxgxhwwwwgwwwgvxwgwwvwwwxxvvxhwxwwxxxxxxwwxvxxxxxvvwxwwvwwwwwxwwgwwgvgwwgxwwwwwxxgwvxwwwwxwxwxwxwwwwwwwvwwgwwggvxwvwwhwxwwXwxwwxxxxwwxwwxxxxvuwvwvxwuxwwwwuwvhxwgxfwwwwwwxwwwwxwxxwxxhwxwwwxxwxwwwhwxhwwwvwxwwwwgwwxwxwxxgxhwwxwxwwwxgwxwwwwxxwwvwwxvwxwxwhwwwwwwxxxxuvvwxxwwvwwwwwvwwgxwwwxwwwwxwxwwwwhwxwxxxxvwwwxvwhgvwwuwgvwwgvgxwvwwwwgwvwxgvwwxhwwxwvwwxwvwwwgwwwxgxxwwxxwxxwwwwxxfwwwfwwwwvwwgwxxxwgvwwxwwxxwwxwwwwvwwfwwxxwgwwwxwwwwwwyVuwwwxwwxwwwxwxgwxwxxxfvwfwvhwvwgxwgwwwxxwwwxxwvwhwwwwwwxxeuvwwxwxxwxxxxxwxgvwwwwwxvwwwwgwwxwxwxvxwxhwwxxwwvvgvwxgVvwwvxwvvvgwwvwxwwwwgwwwwfuwwwgwggwvvvwxwwvwxweuggvhwxxxxvxwwwgwwwxwwfvwhxxwxxwwwxgwvwwwxxwxxxwwwxxwwxxxwwwxwxwwwwxgwwwxwwwxxxwxxwxwwvgwwwhwvvwgxxufxwxwxxwxvvxxwwxxwwwxxxwwwwwxwxxxxxwxxxwwwwxwwxwwwxxxxwxxxuwwwwgwwgwwvuwwvvgwwgwwwfwgwwwvwxwwvwggvwwwwgvgvwwxfvVwwfvwWvffvfgVgvwgwwDuefwwwuffwgwwwwwwvgffwvwwwhwfwwxfwwwgvwvwwwwwfwwgwwwvwvwwxwwwwwwgwwgwxxxwxfwWwwwwfgvfuwxgwvwwxwwwxwwwwwwwwwwwxwwhwwwxxwxxwxxvWwwwgvgvwvvvwwwVwwwxwfwwwwwxxwwwwwwgwwxfgwgxvxwwwxwgwwgvwwwwvwvvwggVwwgvwfgfwwwgwvWwxxwwhxwgwxwwwxwxwgxgwwwwgwxvvwwwwwwwwgwwwwwwwxwwxwwwwwxwxxxxxfwwwwgvwwwwvxwhwwwwwwxxwwwwwxxxhgwwhhxxwxxxxxwwwwwgwwwxwwwfvvvFewggwwfuvwwxwxvwwxwgvvwwfwwwwwwxxvfvuwwfDuufwwwffVvwwwwwwwXfwwwewwwgwgwxwwwwwwwwxxwwwxgwvvwwgwwwxwxgevwxhwxxwwvwvxxxwwwxxxwwwxwxhghvwgwwvxxwwwfgvvwwwfwwwguwxxwxxwwxxwwxxwxwwwwwwfvvfwwwxxfwwxxgwxxvxgxvfgwgxwwxwxxxxxhwgfwwvxwhvxwwwwXfwwxhgfwwwwvwxxwwxxxgxgxwwwxwwxwwwwgwwxxxxxxvwxwxwxwwwwwwxfwhgwwxxwwxwxxwxwwwxvvxxwwwxxxwxwwxwxxxgxhxxxxxxdwwvvwvwwwggxwwwvwxwxwwvvwwwvwwfxvxhwxgfwxuwvfgvwgvvwxvwwxwxwgvwwwwwWwvwwvWxwwwwwwxwwxwxxwxxvwwwggwwwwwwwwwhwwxvwhvxwwxxwxxxxfwwwvwwgvwvwxxwwwwwwxwwvwwwwwgwxvxwwxxvwwvwwwwgvdwwfwwwxwgwvgvxgfwwwwwwhwwxwwxxxwwwfvgwwvwwvxwwwwwwwxwwxgwwggwwxxgwwxwwwxwwwwvdfvxwwvwwxwwgwwhxwxhxxxwwwxxwxwwxgvwvvwwgxwwwwwxxxwwgxxwwwxwwxwwxxvxwxwxxxxxwwVuvwwgVwvxxuvwwuwwxxxggfvvvvggxvwwwxwwwxfdwvvvvdvgfvwvwxgwwwwxwwwvvvvwwwwwgvxxxxhxwxgggggwggwwggxvvxwwwxwwxxwwxwwwxxxxxwwvwwwwxwwwwwwxwxhxwxxxxwxxxxwfwgvffwxvgwwwwwvxwxxwwwwxxxwwwxwwxxwwwvvugwwwuwgwxwwxwwhuvxwxwwxxwwxwxxgwwvwwxhwwwgwxwwxwxwwxxxxwwxxxvwwwvwwwxwwxwxwwxwwxxxxxxxxxxwxxxvwgvxvgwggvwwwxhvwgwwewxvwwwvvwwgwWwwvxwwvwwwvvuwVgvwwgwuxvwwgwwwwvwwhwwxwvwwwvhwghwxxwwwwhxxwwwxxwwvgWgvvvwwwxwwwwxwhvwwwwwwwwwxxwxwwwwxwwxwgwwwwvvgwgvwewwxwwhwwwwwwwxhvwhwxxxwwwgxwxvgfggwgwwgxwhgxwgwxxwxgxxxxxfvfhvwwxwvwwhvxwwwwxwxwwxwxxwvwwxwwwwwwwwwxwxwwwwxwxwwxhwxxwgwwwvvwewgvgwwewwvwwwwwvwwvwwwwxwwxxwxWvwvfwvvwwwwwvwvwuvxwvwwwwxgxwwwwxxxxwwwvvwwwwwwwwxxxxwwwxwxwxxxwxxxvvgwwxwxxwxwwwxxwwxxwwwwwwwgwwwxwxwwxvwxwxxvxxwxyxwwxxvwgvwxvxxvxwwwxxwxvvxwwxxxxwvwhxwwwwxxxxxxwhxwxwwxwwwxwxxxxxxuwwwwwwxvwwwvwwwwxvwwwwvwwwwwwwwwffgwgwgwwgvwwgvwwVffeefUefvwgvfhfgfwWfevvwwwwwfggfxfwxwxxwwwvwwwwxwwfwwwgwgwxwwwwwwwxxxgfffvwwwwwwghfxwwwgvxwwxxxxwwxxxxwwwwgvefwwvxgwxwwgvxxwwwwwvwgwwxwgwvwhwxxffvwfuwwvVgegexwVffexxxwwgwvVgexvxwwxwxwwhxhhwwwuwwwvxvvwgvwxgxwvwwwxxwwwxwwxxxxxwxxwgggfgfwwfuxwwwwxhxvwxwwwxwwxvvhwvwxxxgvwwwgwwwwwfuwfUwwwwvxwwwgwwxwwwxwwxwxxxxxfUgeewgvgwwUfgwgfwwgvvxwwwwwvwvwwvvxwxfwxxxwwvxwwwwwxwxxwwwgwvxwwwwwxxxwwxxwxxxwxwvxvvwwwxwwfgxgwhwxwwxxxwgwgfwgwuxxghgvxxggvxxwxwxxxwwxxxwxxxxffwvgewwwvwwxwgvxggwwvwwxwxwwxwwwxwxwxwxwxwwxwwvwxwwwxxwwxxxxxwwxxxwxwwxxwwwxwxwwxvwxwxxwwwxxxxwxxwxxwxvvuvwwwxxwwxvxwwwxhgwvxwvxggwwwwvwwvvwwuvwffvwxwwwwwwwwwvwvwwvwvxuwvwwwwvwwwwvwxfwxwxxwwwwwxxxwwggwxvxwvxwxwwvwwxwxwwxxxwwwwxwwwxxwwwwxvvxwwwwwwwxxwwgwwwwvwxwvxwwwwvxwwwwvxwwwvwxxwwwwwhgwwwxwwwwgvwwxxxwxwwwxwvwvwvxxvvwwvxvwwwxxvvgwWwgwwxwwwgwxwwxwxhgwwvxwwxwwwwxwxwwhwgwxxxwxwxwwwvxwvxwxwwwxwwxxvwxwwxwxwwxxwvxvxxwxxvwvxuwvwwwwwwwwhvgwwxwxxvvwvwwxwxxxggwwwwwvvwwwxxgwwwWwgwxwvvwwvwxwwwwvwwwwwwwwwwhwxvwvwwwxwwxwwgxvwwxwwgwxwxwwwgxwvwwxwwwxwwwvwxfxwwwwgwxvxxwwvxxxwvvwwxwwwxwwgvwwxxxxwxwwwxwxvxxxwxxxxxwvwxwwxwxwxxwxxxwwwwxxxwxwwwwwxwwwxwxxwxxwwxvxwwvgxwwxwuvwwwxvxgwwvwwwwwvwwwvvvwgwwwwwvvWwwvvwwwvxwwvvwxwwwvwwwvwwvgvwvwwwwwxwweWwwvwwwfgwwvwwwxvxwwwgWwwwwvgwwvwwxhwwwxxwvwwwhwwvwgxwvwwwvwxwwwwwxwwxwwwvvwwvvvwwgxwvvwxwwxgxwggxhwwwwxxwxhxxvwxwwwwwxwxwxvvxxwvwwwwwgwxhwgwwxxwgxwxwwVwwwxwuwwwwwwwwvxxghxxwxwwxwxxxwwwxxxxwxwxwwwxwxwwxwxxwwwwwwxvgwvvvwxxhwwwwwwvwvvwwwwxwwxvwgvwvwvwwwfuwwvwxwwxwvxfwwxwxwxwwwvxvvwxxguwwxwwwwwxwxxwxwxwwgwwxxxwxwwwxxwwwwwxxwxwwxwwxwxvwwwwxwwwwxxxxwwwwwwwvvwwxhwwwxxwwvwxuwwwxxvwwxxxwvwwxwxwwwxxwvwxwvxgxwwxxvgxwvwwuvxwvhwevwxggwwggwvvwwwuwwwgwvwwwgwgvvxggwwwwxvvhwvvwgvgwvwggfxfwvvfvvwggefwvuwwfwwwwwwfvwgvgwwxhgwwgwwvwxwwwggwwuwwwwwwwwwwxgvwxvxwwhwwxxwwxwwwfvwvwwvwwgwgwxxwwwwwvgwxxwwwwwxgxxhfwxwwwfvwvwwvugVwwvwwwvwwwvwuxuwvwfvwwxwwwwwwxwxwvwwvwfwfwwwwvxwwfwgfgxwxggvwvwwxvxwgwvxwxgxgxxxhxxxxwxvwxwwwwvwxxvwxwwwxxxwgvvvwwxvwwwvwxwxwxwxxxvhxwvwxwxxvhggxwvgvwxxxvgxxwxhxwhwxwwwfvxwgwwwwxwvgVvvVvvwwwwwwwgwwvwvwgwwwwwgwvwxxhgxfwwgvwwvfwwwwhwfVvgewgwhgwuwgwwvwgWwxvwxgwwhvxwgwwwwwwwwwwvvwwvwwwgfggwxwhwwwwxwxxgwwwwwxxxwxxwvxwwwxxxvwwgwvxxxxwwxxwxxxgwxgxxwwwwwwvxwgxwwwwxwfgwwwxwwwwwxxgxwgxhxxxxxxxwxwxhwwwvwxghwxwxWxwvvwxxxwwwwgxwxxwxvwxxxwwvwwxxxxwxxwxhvxwxxxwwwxwwvxwwxxxxwxwwwxwxxxgwxxxxwwxxxwwxxwxxxufvvvwwwwwwwfvgvwwgwwxxvvggwgvgwwwvwwvwwvwxwwfvvvvwfwwwwVuwvgvvwvgwwwwvwwvvwvfwwwwwxgwvwffvwwgwvxhwffwwwvvwvfwvwfvwwgwgfvwvwwggvxwxgfxwwwwxwxxxvwwvwvwwwwwwwwwwwwgxwwwwvwwwwwwvwwxwwxvwxwwwwwwwwgwwwwwwwwwfwwvfwwgxvxgffvwvwwvvwxxwwwvwxwwvgwvvvhvwwwwgvwwwgwwvwvxwwxxxfwgvfwvwgwxwwwvwgwxfwgxfwwVugwwwwxxgwwvwwwfwhgvvwxwxwxwxgxwxhwgwwhwwvxgwgvwvwwgwwxwxvwwwxxfxxxwwwxwwfwwgfwvxxvwwwgwwwxvfvvwwfwxwvwwvwvvwwvwwhwwxvxwfwxvvwwgfwwgwvvvwwwwwwhxxxfvgweuvwwwxwwxwxfwwwwwwgwwwwwxvvvvwgvwwwwwwwxwwwwwwwwgwwwvwwwgwhggxhwhfvwxwwvgxwxxgfwwwwwwfxwxvwwvwwwfwwvwwwgwwwwgwfwwxwwxxwwwxwxxwwxwwwxwxwwwfwwwvxxfvwwgwxxxwwggvvwhgxxwxwxwxwxxxvgwwwwwwvwwxwvwwwxgwxwgwwwwwwgwvxhhvxwwxwxwwvuuvxwwxxxwwxhwwwwwwwxxwxvvwgvwxxwxwwvwwvvwwwwxwgwwwwxxwwwvwwxxxwwswwwwvwvvvvwfvgvgvwwvvwggwvwgwvwvvwwwfgvvggvwwgwVfwwvwwwfvwwfvvvvfvvfuvvwwwwgwfffvufugvffvvfevvEvuwwwwgfvvvffwfvvhfwgvggvwwwwwwwgwgwgwwwvfxwwxwwwvugwwwwfvvxwwwfwwxwvwwedwwvvwwwuuwfwfwxvxwgvfvwwwwwwwwxxwxhwgwxxwfwwgffvvwwvfgVwwggwvfuwggwvgxffgvwxxgwgfUwwwwgwwwfwgxgwwwwgvwfvvwvfgggwvvxgwfwwwfgfwvvwwwwWvgwgxvgvwfvhewWxvggwwwtdvvvghxwweSwwwwgwwwxgxwwwuwWxxxwxxxwwgwxwwxwwwxgwwvwxxxwwfwxwfwwwwxwxxxwxxwwwxwxwxxvwhxfvwwwgvwvWuwvugwfvvwwwdfvxwwwwwVewuugwgwwvwwgvuwwwxvxuwggwwxwfuvufgwSuvwfwwgvvwvguvgwwwwewwwdtvwwwhvvWwwwwgwvvwvwwwwwxwxwvvwxwwvwgwwwgwwhwwwxxwxwwWwuwvwwVvewwwwfvfwwgwwxwwwwvvwwwwvwwgvvxwwwwwgwfwvwwwwwxgwxwgufwvuwxwwufwwgwvfvwfwxwwvvwxwwwwxwxwwxwxhvxwxwxxwwwwwwwwxwxwwfwwwwwwvgxgxwuwxwwhvxwwxwwwxgxgwxgxwvvwwwwwxxwfgwgxwwwxxwxxxvwwgwvwwxxxwwgwwwxwwxwwvhwwwwvwwhwgwwwwwhwxxxwxfwwvwwwvwwtvwwhgwvvwwvvgwvvwwgwwwgvwvwwwwfVvvwwwwwxhewwwWuewwwwuuwwWvwuwvwvvwwgwgwfVewwwwwvgwwwwfwWwvvwwwwwvgwwwwvxgwwfvwgwgwwwxwwwwwxwwwxwxwhxvgwwgwvwwwwwwwwwwwvxwwwwwwwwwxwwwwwwwxxXxgxxwwwwvwwwgewwfwuugfgvgxvvxvhwVgwvvwwwvxwwxfxwxwwwwvwwwxwwwgWwguxuwvwgwxgxwwxwwgwwwwwhwxvwhxwwwwXxywxvxwggwufxvwvhwwvfwwwwxvvwwwxwwxwxxxwxxxwxwwwwwwwwwwxwwwvxwxxwwxwwwwgwwxvwxxwgwuxWxghwxxvgvwvwgwvwwwwvwxufWwgvwwwhxfvwgxvgvwwwwwwwgfwwwxfwwvwwwwwwvwgxewGwwfwxwwVwfgwwwvhgvwxwwxvhhwwwvwxvvxwgwwwvxwxfuwxwxgwxxxwhxvwhwxwxhgwwxxfuwwwxwxxxxxwxxwwwxvxvxxxxwxwxgxgwgfwwwwwxgxgwwxWwvwwxXvwhxxwwwwwxhwxxxxwxxvfxxvxxxxxwXwgxxwwwwgwwxhfxxxxxxwxwhhiwxwwxwxwxxxwxxwwxwwwwxwxhxwxwxfxxwxxxwwxwxwxxxwxxwwxwhhhwxxxvwxwxgewuwwfwwuvwvffgwwwwwvwxgwgvvwuwwfvvvvgwwvvwfwvwwwvwvwwwwfvwevwffVwufvvwvwvwwWvwwwggvvvwffffvxuvgwgwwvwfwvvwwwxvvwvvWfegwwwwvwvwvvvgfwgwwxxvgwfwwxvwwwwxwxvfvvvffvvxvwfvwwwwvvhwvwwwwwwwwwwwxxxwwxwxwvxwxxwxwvgvwgffvwvwvvvwUwwwwvvwwxgvvwwgwvvvgwwwwwwvwwxwwuvwwWuuuwwvfvvgwwgvwhhwvgwvvgvgewwwwwwfvvhvghvwgxvxwwxwVfwfwfwWvgwwgwvwwwwWgwvfxgWwwwxxwwwvgvwwhwwwxhxvwgvfvvVfwgvfWwwwwwuwwgwgwwgwxwwgwgwwWwwxxwwwxxxwwxvuwvffggvwvvgvvwvwxwfwwgwwuvwwwfvfxwxuwvwwwgxwwxevvgevfuuvwvggvwvwgvgvvvxwgwwgvwvvwwffwgwxwwwwvvvwwvwxgwxwgwhwwwvgwvwwvvwvwwwwghwwxwwwwuxwwxxwxwwwwvwxxwxvvvwuvfwvwwwwwfxwwwgwgxwxfwwwwwvwwxxwvxwwwvxhwwvfwvgvuvwwwxvfwgxwWgwwwgwgggwwwwwwwwvxwwwwwxuvwwfvfvwwgwgxuvvXWvwwhwxxwwwwwwvfwwxxwwwgwvxvfxXwwuwwvugwwxwxwwvwwuwxwxxwxxvxxwvxxgwwxxwvxwwwwgvxgvwvwwwwxwwwvwhgvwwvwwwwwggwwgwwwhwxxxuwvvwwwvgvgvfwwvwwwwwwwvvwwwvwvwwgwgwvvwvfwwfwgwvwgwetvffutwgwfwvwwwwwvevvxvgggfvtuwwfwwwwvdwvgfwwwxxwvvwwwvvwwvvvwgwwgwvxwwwgxxwhgvxwxwxwuvuvfwfvwwwwfuwwwgwgxwwwwwwxwwwxwwwxwwwwwgvvvgwwWvwfwwwwxvwvgxwwhvwgwxgwxwgvggguuvfwtvxgvuwwxwwwuwgxwwvfwdwvhwwwxwwwtwvgxwwwvwvvwwxwwwwvwwwwwxwxwuwwxghvgwxxxwwwwvefwgwwgwwuwwgwggwwxwwwwwwwwvvwwwwwwwwwgvwwfvwwwxvfwfwwwxwwvggwwwwwguvwwwwwxwwxwvfvufvvfvwwwvtvwgffwvxwwwwvwvwuwwwwwwwvwvwwwwuwwwgwwwgwwwwxggvvxxwhxwxxggwxwwwwwwvwwgwxwxwwxvwwuwwwwxxwvwgwwwwwwwwwxwwwxwwwwxwwxwxxxwxvgvwwhVwvwgwwwxxwwxwwwxgwwgwxwwwxwwwvwuwfwgxxwwwtwfxhvgwwwwvwgwwwxfwxwxwwvwwwwwwxgxxggvvwwwwgwxwwvwwgwvwgwxxxwwxwwxwwwxwgwwvwxwwwwwxwxwxuxwwwwwuwwfwwvwwwxwvvwwwvgwwwxwVufvgwwxwfwwxwwwwfwVugvwxxwvfwwfewwfwvDddfvwfwwwwfvfvxVwwvgwfVfVwwwwvgvgvwwWxxgwwwwwvwvgwwwwwwvxvgwwWugvgvwxwwwwwwwwwwwxxvwxxwwwwggfVfVgwwgvgvwwwWxwwwwwwwwxxwwwwwwwvvxxwwvgwwvvvwgwxfvfvwgwwwvwwfvvwxwwwvgwwgvgvwwxwwgvwwwxwwwwxwwwwwwxwwVefvxVwwgwwwxwgwwwwXwWWugvwwwWwwvwvwvxxhwxxxgwwwvwhfwgvgvxwxxwgvwwwhwwwxwwwwwwwwwwwwxgwxhhfxwxWfvwxwWxwwwfwxwxxwxwwwxwwwwwwwwxxhXvhwwwwwgggwwWuwfvfvgwxVuffgwwxwvwwwffvwwgwvwwwxwwxxxwwfwDddffvfvvwgfvfvxWgwwwwwwwwvwwwwwwwwwwwwwxxwhgwxxgwvwxwwwwgvvwwwwxwwwggwwwxgxxxfwwwwxxxxwwwxwwwwwwwxxgwwwwxvwwwvvwwwwwxxgwgwxxgxxwxwwwwxwwwxgvxxxgwwxxwwxwfvfvgwwwwwfvvwwwwwhwwwfxxxxwwxghwwxwwxwwxxxwxwwwVufvxWgwgwwwwwxwwwXwWwwwxxwvwxwwwwghwxwxwxxwxvwwwwwvxxgxwxwwwxxwwwxgxwwxwxwxxxxwghfwxxxwwwwwwxwwwxwxxwxgwxwwxwwwwwgwxwxgwxuwwwfwwvwwwwwwwxwwwuwwwwwwfwwuvwvvwwwwwwwvvwwwevvwwwwwvwxfggwwwwtvwvfuvfwwwxwwuvwvfwfxwwxwwwwwwwvvwxwwvwwvwwxhxgwwwwgxwwxwxwwwvwwgvwvvguvvwwxvvwwwwxwgxwwwwwwguwwwxxxfwgwxwgwxwwwxwgwwwxwwwewwwxwwxvgvguwwghwWvgvwwwwxwxxwwwvwwwwwwwwwwwvwgwwwwweuvvggwwwwwwwwfvfxgwfxxgxwfwwxwxxwvvwwxghwwxgvuwgxxgxhwvxwwhxwwwwvxwguvvxwwgwwvfwxexwwwhuwwwwfwwXwwxwggwwxwwwxwwxwvwgwwxvwvwgwVfvxwxwhxwgvgvuwwwxwwvfwwwwxxfufuuvgWgxwxwwwgwWxxwxxvfuwuwvxwxuwwwewgwwxwxwgwwwxwwwwvwwwhwxxwwwxfwwuxxxxxxwwwxwxwwwvwwxwxxwwxwxxvxvxwxwgwxxggwwwvwwwwwwhwxwxxxwvvvwxwwxvwvwwxxwwxwwwwxxwwwvWwxvxxxxvwwfwwwwxxtfgwxvgxwxwwwwwwxgwwxxwxxxxxwvwwwxwxwxwxxwwwwgwwxxwwvwhxwwwxwwwwxxxwwxxxggxwwwwwwxhvxgxwwwwuwgvffwwwgwwwvwxvvewfwwwwwvvvxvwwvVvwvvwwwvwvwuwvvwwwvfvwgefvwvfwwvgdvfffwffvwvwvggwfwwvegwwvvwvwvvdffwvwvgwwwwwgxwwvwxwxwvwwwewvwwwwwwwwwwwxhwwwwgwwwwwwvwwvvwwxxwvvwwvwgxvwwwvvwxfwwhhwgwgwgwwxxwxwwwuwwggwwwwdfwwwvfwgvwvvfvvuwvvvwwwvvtvvwwxwvwwwvwvvvwwwwxggwwvxwfxvwwwwwfwvwgvxwwxvxvwgxxgwgwwwgwwxuwewwwwwxxwwwwwxxwwwvxewwxwwwwxvvxwxwhxvgwvwggwwxvxgwxgwhvwvwwxxxxwvwwwwewwwvvwwwvvgfwvwwvwvwvwvfvvvvgwgwwwwwwwxxwvfwvvvvgvwxfwvwWvhewvxwwwvwfwwwxwvvvvwxwffvxwgggwwwwxgvvwwwwvwhwwwwxwwvwxxwxwwhxwwwxvwxwwwxwxxwwxxwwwwwxwxwvvwwxxxwwwxwwwwwwwwwvgvhvwxwwxxwgxxwwwwwhxvxwhxxwhxvwwxgxwxwxgxxvwwxwwwwwhwwxwxgwgvwwxxxxxgxxvgggxwwwwxwwwxwhxwxxxwxxxwwxgwwhwxvxwxxxxxxhgxxwgwwwwwfvvvwwwxgvwfgwggwvwwwwgfwgwgfvwgWgwwxwxgxwwxgUuwvfwvfffwfuvVgvfvgfwxwwWgwwwfwvvwvgwvvwwgVwuwwvWwvgwwwXgwvxwgvwwwvuwggvwwwwwwwwvxfwwwgwvvwwuvxwvgwwwgxgwwwwvwvvuwwwwvvwwvxwvgwgwwwwvuwwwwxwwvxwwwwxxwwwxwwwggwvwwwgvvwwwwevgwwgwvfwhgwgxggwwfwwwwwwwxxfgvwxwwWvwwwhwgXxwxwgwvggwfxwfgwwwuwhwVvewWWwuwWwwvvwWwwgxvvhVgwggwgxfwuXfxWvwwwwfxgudwwwwhwfwgxxgwgvwwedgwxwxgwwhggwxwxvwwxwwxwxgwwxxwvfwwxxwxfgggxwwfwwxvwxwwwxgwwwgxwxwwwxwwhwgWtwvuvwwwFuvwwwvgvwwvgfWvvvwwwwwvuvwfgwWvxwvwgvvfwwdeggfwwwwwdegvwwvGwwxwvvwvvwvwvwwvwxvwxwwwfgwwvwxwwxxwwwwwxxwxvwvwwwWwtwwwxwwwhwwwGwuwwwhwwwwfgwwwxwwxwwwhWwuwxwxvwwwxwxxwwhvxwwxxgwwvwvvgvgwwwffgwxwgwxwxxwvvxxwxwxxwwvwwxwwwxwxgwwwwwxwwxwwvxgwwfhhgwwgwwxwwvxwwwwxwfvwhwwwwggwhwwwgwvvwgwwxwwwxwwhxgxvxwxwxvwxxwxxwxxwxwxwxwvxwxxwwwwxwvwwvwwxgwwwxwvxhwwxwxvwvgwxgwxeffvvgwfvvxvwwvvgwvwwwvwwvwvvvwvufwvwwwgvwvvwfgwvgwwwxwuegvefuvfuwfgvewvvwgwfwgwwwwWvfuvDuefvwgwwevvffvfwwwwvwwhwwvvvwwvwvvwwVvvgfwggvgxwuwgwffwwgwwwwgfxxwwwwvwgVvuwfwwvwfwwgfwwwwgwxwwwgffvfvvwvvvwgxwwwuxwxwgwfgxwxhwvgwvwgvgvvwwfvfvvVfvwfwvgvvvxwfwegvfwwwwfvwwxfuwvwvwgvwxwwwwwgwgffvvgvwxwvvgvwfxuvewwwWggwfwwwwgwfwwggwgvvwfwgxugwxxwwwwwwvwvvwgxxgvwwwwwwfwvxgwfwevgwgvwxgwggffgvwwxwwgxvwwgvwwwwwvxxwxwwgwwwvwxwfgwWwwvwwgwwghxxgwhwwwwwxvgwguwgvxvVdwwgwwwfvwvwfwwgwgwwwwxggVvuvWvwvvwwwUwwgwwwwwwwxwwvfuwUfeefvwvffvvvwgwgfvxwwwwDuufwvvWwfwwgwwwvvfggwvhgVwgugwwvvuwgwwvwwxfgwvwgxwwwxwwwxwgwwwwvwxwwwWxxwwwgxwxxxWgfwvwvvuuwwxwxwhvwxwxwvgxwxwghwwwwwwwgwxwwgvxWfxhxhvgfwwfwgvxxvxUvvwxwwVwwvwxwxwfvwwxwwgwwwxxvxgwgwWggwgwwxwwxfvwwgvvvwxvxvwwvvgwWfwxgwxwwwhwwwwgvvgwfxfwwgwwwgwwxwwgvvwwxwxxxxwxvfvwgwgwwwfwwgxxwwxxwgwWgwwvwwxxvwwwwgwxwwwwwwgxwwwxwwwwwxwwwxwxxwwwwwhwwgWwxwfwWxxvwvufwwwwwvfwvggwwfugwuwwevwwvfwwwvwwvwvwwvwwvwvwwwvwwwwfevfuvwuwvvwvwwggeuvwwwvwfvvvvwvvvwwgfwvwegwwwwwwvvwwvwvwwwwwwgvwwwvvwfwwvwgwwxwwvwwxwvvwxwxxwwwwwvwvvvwwgwwwfwwvvwwwwwwwwxxwhxwwhwwxwvwwxgvwggvxevvwwwUfwggwwvuvwvwgwvwwwvwwwuwvfwgvwfwxwxvvvwwvwvvwwxwhvgwvxugxvwxwwvvvwwgwwgwxwvwwxxuwwxwxwwwwwvvwxwvwwgwgwwgvgwfwxwxxwvfwgwwwwwwwwwwwxwxwwxwwwvwwwxxvwwxwwvwxxghxvwxwxgxVxwwwvvwwfugwvwwwwwwugwuvwwwwwwwfvwgwwwxwwvvvgfwwwwuwugvvwwwwxwwfwfvwwvwwwwvwvwhWwvfxwwvgwvggxwwwwwvwwgxwwwwwwwwgxwxwvvwwgwwwxgxwxvwwwwvvwvvxxxwxwxwwxewwwxxwwwvwwwxwwwwxwwvxvwwvgwwwwwxwwvxwgwxgxwwwgxxgwgwwvwwwwwwwwxgwwvwgxvwwxwgwwwgwvwxxwxwxwwwwxwxxwxgxvwvwwwgvhxxxxwwwxgxxwxgxwxwxwxwwxxwwxgxwxwxwxxwwwxxwwtwwwwgxwwvwwwvwfvgxwxgfwfvvwwwfwvwwwvwwwwwffgfvvwfvwwwvfvvwfgfwffvvwfgvwwgwfUggUgvvggfvUvvffwvvwwg3uuUhfvgvwvvwwwvwwwwvwwwwwffwfvvggvwwxwwxwffwwwwwvwgvwgxxwwwgxwxwgwffvvfvvwwvvgUggUwffgwwxwwgwfwvwwwwwwvxxwwwgwwgwwwwwwwwgwwwxwgwwwvvwvfwgvwwfvvfwwxgwgwwUwwwwwgwwwUvvfxvwwwwwgxwwxgwwxfvvvwwggwwgfxVwffgxwwffvwwxggxvgwggfgxghfwvwvvvwwwvwvvwwwwfvvwwvwgwgggwwwvwwgxwxfwwUwgxwgxxwwwxwfvvwwwgwwwwwgggggxwxwwgwwhwwxwgwwwwxwvwwxxwwwvwfwwwwvwwwwwvggffvfwfvwwwwVewwfvvgvwffvggxwwgwvxwfvfUvvfvwvvwvw3uuUgfvgwvwwvwfvfvgvwwwwwwwwvwwhwxhwwvvfxwvwwwwvfwwwwffvwgxxhvwgxxwfvvvxwgxxxxwwwwwhxfwxgwfwvwwxwwwxvxxwxwgwwvgwwwwwxwwvvwgwxwxxxwvvgwvgvxvwwwUwwwfxUvvfwvgwwwwwgwwwxxxwgwwgwgwxwwxgwwvvfvvwxxgwxwwxghgfghgfwgwxwgwwwxxhfxvvwhxwxxggwwwwwwwwwgwwxwwUwxwgwghwwwwxgxwwwwxxxwwxxggxwxxwxgwwxwwwwgwvwggwwwwgxxwggxwvwfwwwxgwgvfvvwvwvxwwwwwwwvwwwxxwwwxfvwwwwfwwxwwfvwvwfvvfwvwwwgvwxwwwwxvxwwvggwxwwvwxxwxxfwwwgfwwgwvwwwvwwwwxvwwwfwwwxwxxwxxxfwwvwwwvwfuxvwwwwwxxxwwxwxwxwwxxwhxevgwgDUvffvwfVfwwgvgwxwgvwvwwwwwgfgwxwvxwxxwwwwwxwfvvgwwfvggwVvgwwwwwxwwwhhxfwgxwwwhxxxxwwxhxwwxwwfvwvfwwwvxgxwxwvxwvwwvwwwwxwwwwwgwxgwwwxwxxffgvwvwgvfxwxwwwxwwvghxxwwxwwwxwwxxxwfvwvvUfwwwwwvwxwwwwwwgwvfwvwfwwwvwwxxwwvhwxvfvwvwvgwwgwwwwwwvwwuwwwwwwwxwwxgxxwgvxvwgvvvvwvwxvvwwwgvwwwgwvhxxwxxvhywvvwvvwwwwwvwvwwxvwxxxxxxxfDUfVgwgvwwwwwwvwwwfwwvwwwwghwwxwwxvxwwwwxwvxxvxxvvggwfvxfWfwgwwwvgwhwgxwgvxxfwgxgxgwxwgxhgxxwvwxxxvxwwvvwwwvwwvxxwxxwxxvxwwwxwwwwxxwxxwwvvwvwwwgwwwxwxwxwxwxwvwxswwgwwwwwwvvwWvvvvwwwwvfvxgwxwwwvwWvwwwwwgwgxfWvvwwfvwvVfwwvwfvvgvwxwwwwvxgwwwvwwwvxxwwwwgwuhwxggvwwWvwvwwvwwwgxgwwwwxwvwwwgwwwxxxwwvffwwwgwwxwgwwvvxgwvgwwgwwwxxwwxwwefvwwwwwW5duvwwwvfvwwwwfeggwwwwvgvwvvvxwwwwxgvwgwxxuwxwxvfwwvWwwvwvwxfwwfwWgwhghGuvhxxgwwwhwxvxxwxgvgxxgxgwwwWvwwgwxwvwvwguwWwwwvwwhhxwwxxwxwhwvxwwwwgwgwxwwgvgwvwwVvgxwwghxxwwwwxxxvwwwwgxwxvxxwvvvwwWvgfwgwvwwwfvwgwwxwvwxxwwwwwvwxvwwxwggwwwxxwwxwvVvwwwwgvwwwvwwwvvwhwvwfvxxwwwgwwwxvvhxwxwvxwxfvvwfwwfxwwwhvwwwwxgwhwxgxwwwxwxwxwwwwvvwwwvwuwwxwxwwwwwxwxwwwwxwxV5duwwwgwghwwxxwewfwwwwvxwgwxwwwxwwwxxwwwwgxwgwxwxxvwgvwgwgwxwwgFevxxxggwxwwxgwwgwxwwxhxxvwwwhwvwwwxwwvxxxwuwxwxxxgwxxxxxxwwwwwwxwxwwxvwvwwxwwwxwgvwxwwwwwxwwxfwwvWwgwwwwxggvwwwxwgwwwgwgwwwgwxwwxxwxxhwwwxhxwgwWwwxwwwvwggwxxgwxxxxwwxwxwxwxgwwxwwwgwxxxwxxfvvxgwwwwgwwwggxwwwwxxwwwxwwwwwwgwwwwvxwwwwwwwwxxxxwwwwxxxhwwxxwxghwwwwwggghgwwvfWfwwvvvgggvwvWwwgwWwWwwwggfvvwxwwwxggwgwwwxxxxxwwfgwxwxwwwgfwwwwgvWgxxxxwgwvxxhwvwwxwxwwxxhwxhgwwggxwwgVwwvfwwvwxwwwgWxWhxwwwwwwwwwxxwxxxxwxxxxwgvgwwwwwwgwvwwwwgxwxxwgwwwhwwwxwhgwwvxwxwxwwvgwwxgwfvggwwwwwwwwwwwwwwxxwhwxwwwxxwwwxwxxxwxvxwggwgwwwggwwwwwwxxwhwwhwxxwxxgwxxxxwxxxwwwwxgwvfwxwwxxxwxwwxgxwwxwwxxxxxwwxxxxwxxfxwxwxxwwxwwwwwwwxxxvvwxxwwxwxxwhvwxxxwxvWgvwgfgwvvwwwwwWwgvVwgwwwxgxwwwwwwxxwwwxxxxwwhhgxxxwwwwwgxhhwhgwwwvwWwwhxgxwwwgxwxxxxxwxxwwxxxwwwxwxxvvwwxhwxwxgwxwwgvwwwxxxxwxxvxgxxwxxxxxwxwxwgwxxhwwwwxxxwxxxxxwfxgxxxwvwwfwwvvxwfwwgwwwgwgfwwwfvgwgwvwgugwwwwwxwwxguwwxfuwwwwgwgfwwwwwwwwWwufwfvwhwxwwxgwvgwhxwwfgvwwgwfwwwvfwwwwwwwwwxwwwxvxwxfvwwwxxxxxvfwwvvwwwwwvwvwxwwwwwwugwvwvwwwxwuwwxxwxxwfuvwvWvwvfwwgvgDUvxvwwwvwwwwwfWvvwwwwwvwxxVfwfvwxwgwgwxvUvwgwwgwgwwwxwwwwfwxxwfxgwwugggwfwXwgwwxwwVvgWxwwwwxfwffvvgwwwwwwwvwevgwwwwxvxvwvwgwwxwuxwgwxwxwwwxfgwwwxgwwwwxwwwfwWgwxwwxwxwwfwwvwwwgwwwwwxxwwwxwwgefgvfwvfwwwwfvwwwwwxvvwwwXwwwwvwwwxwhwfhxxwgfvgvwwxwvxwwgwgwfxwwvxwwwwwugwwxxwwwwhwxxxwxVvwgwgwxwwuwvxgxwwWgxvwwwwwvwxxxwwxvvwvwxwwgwwwvxwgwwwwvxwwxwxwwxxxwxfxxeDUvwwvwwwxgfwfxfwgwxwggfvgwwwvwxvxxxgfwwwwxfwxxfggfwggWxwvgwwwgwgxwwwwwwwvwwWVwwwwwxwwXxxgggwwwxwwgwgwwwxwwwxwfvwgwwfxwvwxwxggwxgxwwxxwwwxxghxggxxfwwwwwwxwxwxVwvxxvgwwgvwgwvwwfffxgxwffgwwwvWwvvvwwwwwwwwvhvvwwwvvwwwggffwwvwwggvwvxvfgwwwgwwvvwwxvwxgwvhwgwwgwxvvxwgwxwwvwwgxwvwxwxxvwwvwwwvwxwwxwxwwxwxxxVvxwwvgwwwgfvwwgwwwwwwwwwwwwxwxvwvwwwwwwwxwwwffwgwgwvWvwwwwvWggguwgwfwfwfgggfvvwfwwwwwwwwfVvgvwwffgwwwwxxfwwgvwxwvgxgxwfewwWwwgwUxggfwvwwgxwxwwwwwwwgwwhhWxvggxwwggwwwwwwgxffwWgwwwvwwwwwwwwxxvwwxwxwwwwwvhwfgxvvwxxwwwfWwfxgvxxwxvwxxxwxwwwwxfvfwwwwfuxugwwwwwwvwwxwfgffwgvwwwvwwwfgwvwwxwwwvwxwwxvwwwxwxwugwgvwwvvwwvwwvwvvxfvgvxwwwvxwvxvvwxuuwwwwvwvxwxwwvwwwggwxvvvgvwwwwgwwwwfwgwxwxfwhgxwwxxwwgvfvgvwvwgvwvuxwxgwwuuwxwxwwwwxggfwwgwwvWvwvfwwwgfxwvxgfwfwevWwgwgvwgfvwxgwwwxwWwwwvwwwhvwggwfgvgvvwgghwhwvwwgwfgvfwhWfgvwwxwvgwxwwgwWwwxwwwgfwxgfhwWwxwwwwwhxgxwxvxwwvhwwwxgwwwxxxvgwewWvwxgwxwwwgxxwwwwxwfwxvggwwwxfxwUwgwfwwyuwwwfgevgwvwVvwwgwwwgwgEewfwwwwxxfgwfvwvgvggwffwxwxwwwwgvxvgwwwvwwwgvwgwwgUwvwwwwxVuffgwfwvegwgfvfvwwwwwvwwwvwgfwwUdwffwwwxwwvewwwwxvwvfwvxvwvxwwgxwggvwfwwgwwwvwvewwvwgwxwvhfwwwwwwhwwwxxwgxxvwgwwwvwwvvfvg5dwgvwwwgvxwggWgfvwwWfvwgwgwfwwgvxxwggfwwwxewwwwwwwwgvwwgwwfVgwwxwgwgwwwXgfwgwxvwwvfgwwhwwgwwggxwwwxXfwvwvxwvwvfvwvvvvfvwwgwfwwhhgwxwvxwgwwxwwxxxwwgxxwvxxvxwxvwwvwwwwwwwxvwwxgxwhewvfegevwwxxwwwwwgxgxxwhggxwxwwwfwxvvwxwfwvwgwfegGefggwvTSufwvxwwwVvwvwwvxxwfwvwxwxwgwwwwwvgwvwwwwfuwxwwfUvvwxgwvwvgwwwxwxgwwhwwwxxwwwwvxwwwffuvwvwxWfwwwwwXvgwwwvxwvwwwxxxhxxxhxxxwexvwvxxwvwwxxgwvwwwvvwxxwwwwvwvwwxwgwXvxvwegVvgwgwwEfuwwwxffuvxWvgwwxWwwwwgwwxwwwgxxhwwgwvxwxxxwwgWgwwwwwwwwwgwvxgvwhwwwgwfgwwgxwxxxhvwxwwwwxxgwhwwwgwxwfgvvgwgvwwwxvgwxhwwwwwvwvxhxwwwxwwwwxxxwvwwwwwwvwxwwwxvxgxwxwwwwwwvfvwhhxvxhufxvxwxevxtVeVvvwfvvxVwwwWgfwvwwggggwwwxUvuxwgfwgwxwwwxewwfwwwwwxxfvvwufevgwgwgwxugfgwxwwwwgwgvggfwvfwgfwwwwwwwwwwgwwxxwwVwvwvffvwwewvwefgfvwwwxvwvwwvwwxwxwvxvwvvgwvwwxwvwvwfuuwvwuwgwfwVvuwwggwxgvxhxhgvwwgfwwvxxwwwhwwxwwwwxwwwfffweWvgUWfwvvfwvfvgwvwwwvvwwgwhfWfvgwwwfwwwWvgwevhwhgwWvgxgxwuWfgevfwwvfvwgwwfugwwwwggVgvwwfvwgwfWXwwhhVwwwwwgwfxhhWxxwxffwweuvwfwvwwwwwvdwgwwwxwhwxwwgwgwfxxwvwfxwxgwvwvxfxxwxwwwwxfvvwvwvgwxvwwwwvvgwgwwwgwfwfxvxwwxwwwfgvxgxwwxfwvwwvwxvvvwWvWwffvvWgvvgfWvwwwWwwgwvwffvwfwfwvwwgwvwgvvwwwwvwwwwwfgFWvwFwffvwvwgwwxggwxgwvwWwegwwwwvwwwxxwwvxvhgwhxxwwwwwXvwgvwwvwwvwvwgvwwwwwggxvhgwwwwwgwgvwwxwvvhwwxwfxgwwwwgwwxvxwwwgwwxwgwxwwgwwwwwwwwwwgwwwwwxgwgwwxwwwwwwgxwvvwxUgFvufwwFwfgxwfewwggggvwwwggwwVfegwgxvwwwwwgwhwxwwwgvhwwwvvvwwgwgwgwgwvwgwwwwggxwggxWxwhwgwwwghwgwwwfwwxxhwwwwgwvwwhvxgwwvwwwwXwwggwgwgvWwfxvwwggwxwwxwwwvgwwgwwxwwwwwwwwwxwwwwxwxwvwwwwgvwxwwwwgugwwwwxwvvwwwvwvgWwwwwggfwvgwwxwvwvgwwwwwxwwwwggxwvwwxxgvgwgwvwgvfwwvwwvvgvwwwefuwwwvwvwwwwwwwwgwvuwgxwwwwwwgwwdfwwvvwWvwwwwwwvxwwwwvwwhxxxwwfwwwvwwgvuvwwuvwwwxwwwwwvwgxxxwwwwxwwwvvwwwfwxwvwwvwwgwfvggfggedfWgggwxgwwxhwwwvwxwgvwwwwwwgwwgwxhxwwggxwgvwwwgxwfwwhwfvfwwxxxwwwgwxhvwWxxwxvxxgwgwwxwxxwwvwvvudfWhwvgwxwwxvwwwwwxwxvxwgwxxwvwwwwxxxwvwwxwwwgwwggwvwvwxwwxxwxxxxhwxxxgvwvvwwwvwwwdfwwgWwvuwgwxwwwwwvwwwgwwwwwxwwxvwxwxvvvwgvwuvwwwwwvwwwvwvwuwwwvwwxwwxgxwwwwxwxwwwvwwgwwwwwvwwwvwvxWwwwwgxwwvwwxxxwxxwwxwxwwwxuwwwxwxwwwwwuwgwwvwgvwwxxwwxhxxffwggwvvwgwxwxVvgfgwwgvgggwxxxwfwwwxwwxhxxwwwgwxhwwxwxxvwgwwvwwwgwgxxwfgxxxvvwwxxwvwxwxwxxhwvwwxwxwgwhxwxwhwgwxwxwgxwxvwwwwwwgwwwxwxwwwxxhxwwwxxwxxxwgxwwwwvwwwwvwwxwvwwwxxwwwwxxwvvgvxwxgvwxvvwgggwwwxxggwwwwhgwxwhwwwvxwxgWgvwwwXwwxwxgvwxvwVvvgvwwwxfggvgwhwgwxwwwwWgwvwvxwwvwwwxwxxvxwvxwwwxwfwwwxxgwwwxwfxwwgwxxxwwhwwwxwxxxfwwvwxwwvxwwwfvwwxWwwvwxwwwwvwwwwwwwhwhwwwxhwwgwwgvvgwwgvfwgvxffWvhwxggwwwwwwhvgfxwgxgfgwwxfgggxvhhgwxxwwggfggwhwwwghggwgxwwwgwgxgxwwwgWxxhwwgxwgfgwwgxwgxwxwwvwvffvwxvwwxffgxgvhvwwwvwxvxgwgwwgxwwwwwwwxguvwgwwxwxwwfgWwfxxwwfwgvvwxxxxwwxwwwwwwxwhwwvxgwfwwgwwwwgwvwxfffwwvxxfvwwxxwxwvwwwwwwvwgwwwxwwxvwwgwwxgwxwwwggwwwhwwwwvwxwwwvwwxxwwwxvxwwxxwxwwfwwvwxwwgwwwwwxgvwgxhwxhwwvwxxxxxwwxhxwxwwwwfxvwxgwwxwwwwwgvwgwvwwwwvxwxwwxxvwxxwgxgwxgvggwwxfwvwxxfffvwwwwwgwwwwhggwwxgwwgxgwxxwwwwxwwwwvwvwwxxxxgxgxwwwwgfwxhhhwwwwvvwwhwwxwgvxhwwwgxxxwxxwxwvvwxwxwwhwxhvxwhxwxxwvwwxxwvxvvwwgwxwwgwwxwwwwxxwwwwgwgwwwwfwxwwwwxwwwhxxgwxxtfwguvwgvwwwwwxwgxxgvwwxgvwvgvgwxwxfvwwxvvvgvvwfggwwvgvwwwxwvxxwwgvwvwwvwwvxwwvgxxxxWfwvwwwwwwwgvwvwxwvgxwwwwxvvxvxxxwxxvgwwgfwwwgwxwwvxxxwwwxwvxvwwxxvwxwwwwVfwwwVgwgWugwhwggwwwwguwhwfEdvffvgwwvxgvxxgwwxwxxwffgwvgfgwvwwhgvhwfxxwxwxxxwwvvwwVwvwxwgwwwwxxwxxxwwfVuvvvggwwxwwgwwfvvxwhwxwfxwwwwwwwxxwxxwxxwgvvwwgevwwwwwwwwwwhxgxgwgvwwhwwwwxxxwwwwwxwxfuwwvgvvggwwwwgvwwxgxxwfvvvwvxxwxwwwxwwxhwxvgvwvwgxvxwvxxxwwwwwxwwwwwwwwxwxxxxwfewwgwwwwxVfvwxxxxxvwwwxxvhwhwxxfwvvwxwwvwxxwwhgxxwxxwxwhwfEdvvvwgwgwwwwgwwwwhwxxwgwgwwwxwxwwwwhwwxxxxvfvggVewwwgvxxwwwxxxwgwxxhwxwwwwvwxwxwwxfgwvwwwxwwwvxxhwwxwxwxwwxxxxhwxwxvwvvwwwwxwwwxuxwxwgxvwxwugvvvvvwvUUwwwwwwwwwwwwxgwwvvgvxwvvwwwwxfvwxvfwxwwwvwvwfwwwwwfvwWufwwwwvvvwwwwwwwwvvvwwwgwwxxvxxxvwvvwwfvwvwwvfwvwwgwwwwvxwxwgvweevvwwxwwwwwwwxwwwwgwwwwvxvwxgwwwwxgvvxwwwwwxwwxwxwxwxwxwwwxwwfvww5cwgvwwwwwwgvwfwgwwwvwwwgwwwwxgwXWgwwhwwvhxxwwwwwwxwfwwvgggxwwwwwgwvvwwwwgwgwgxwvwwwwwxwwwgwxwxwwwwhhwhgxhwvgwfvwwwxwgwxgwwwwwwwwxwgwwwwwfgxwwwwwwvwwgxxvwwwfwwwxwwwvwwwxghxwhwxwwwxwwwwvwvwwxwwxwwwxxgvvxvwgwgVUwTdffwgwwwwwgwwgvwwwvfvvgwwwwgxwwwhwxwwwwwvvvvfvvvwwwwwwwhgvwxwgvwwwwwxgwwgxwxvvwwwwwhxwwuuvwggwvwvxuuwvwwhwwxwwvvwfvwghwgwwwgxgwxxwxxxuuwvwwwwwwwwxxfvvwwwwwxwxxxxwwwxwwxwgxvfwfvwUuvwffvvvvwWgwwwvgwwwwhwwgwwxwhwgwwwxwwwxwgxwvwvwxxwwgvwvwgwwvwggggvwxxhgfwwxxxwxwxwwgwvhwwgwwxgxxwhhwgwxfwggvwvwwwwwxwwwwwvvwwwxwxwwxwwxxwxxxwwxwxwwvvhwwxxwxwvwxXuxxvwxvxxwxffvwwwfxwxvwwxgwwgwgxwvwwvxvwwwwxfvwwwwgwwwwxwxwghwgwghvxwvwxxwxwwwvwwwffvxwwwwwhheghwwwwxwwwwwwwxvwwxwwxxwwxvwwwggggwgwxvvvwwwwwxevwwwwwwwxwxwwxwvwfvvwvwxwvwuughwhgwwwxwxwwxxxxggwgfwwvwvwdtVWggwfgwvgfwwwwvxggveffgwwwwwwxxxxxxxwwxgwwwvwfwwwvvwwwfvwwxhxwWwgxwxwwwwwxgxwxgxgxyxwwxwwwxxwvwwdtVWwvxxwwwxwwwxwwwxwwvxwwxxxxxwwwxvvwwgwwwvwxxwxwxxwxxxxgxxwxxxwxxxxwhwwwxwgfwevvvwwwfgfgvhwwwwwwxgwgwwxxxxwwvwwwwwxgwxwvwwxwhwwxxwwxxwwxwxxxwxwwvxwvwwwggwwxxwxxwvwwxxggwwhxwxxxvwwwxwwwwwgxwwxxxwvwwxxxwwxwfgffefggwwwwwwggxwwwwwwwwxvwxwwwxwxxxwwxxxxwhgxxfwwggvxwwxwwgxwwwhxwxxfwxwhwxxxxwxxxxxhwwwvwgwwwwxxwxwxxhwwxvxhhxxwxxxwxwwwwxxxvwwxwwxxxgwwwggwvwvwwvwxwwxwvwxwwwgwwwwgwvxgvwxfwgwgwwwwxwwwwwwwwwwvuwhwwvwxwxwwwwVvvwwwhwwxwwwwxwwwgvvwwwwdfwwwwwxwwgwwvwwwvxxgxwxxxxxxwvwvvwvuwhwxvwwxxwxWvwwwxwxwvwxxxxgfxgvfwwvwgwgwxfwwwwwxwvxwvwfwvedfWgwwvxxwwfwwgxwwxxwwwxwgxwfxgwwxvwxwwxwgxxwxxwgwwfwfwWwwwwfwxxxwxwwwwwvwggwxwxwuwxgxwwwxvxetfWwwxxhwxwgxwxhxwwwvwwwwwwwxwwxvxxgwwwwwwxwwwwwwwxxwvxxwxwhwvwvdfvwgwwwwvwwgfwgwxwxwgwvvwwwwwvwxwxwwxgwwvwvwxwwwvwvvwhwvvwxwwxxxvvwxhwxwhwwxxwwvgwvxvhwhwxwwgwxxxwxhwwxhxvwxwxxwxwwwwwxwwwwxwwxxxwxwwhwufwwfwvwggfxwwwwhwwwxxxwhgvfwgvwwhvxwwxxwxwwwwxgvwxwvwwgwxxhwwwwwxwgwvgwxwwxWxhwhxxxxwhxxwwwwwxgxxxwwwwhwxxwwwwwwxwxxwxxwxwwxwwwwwxwxxxwxxwgwwgxwxwwuvguwgvxgguvfwfwwwfvwwwwwwvwfvwwvwxgwgwgfwhwvwwwwwwwvwwvfwwwwwwwwwwwwwgggwwvvwwvvwvwvxwwwgwwwxvwwwwwvwwvwwvwggwvwxwfwwgvwwxwwffgwwwxxVvwgwxwwwwwwwwwwwvgwwwwwvwwwwwvxvwvwxvggwxxvvwwwwxwgvwgvwgvfwwxVvwvevvvfwvwfWgfwgVwfvwwxfhvfwwhewXwfgxWhfvwxwWxwwfxvgxfwvwwwXwgvwxfwgwwgwwwxghwgxwwwxwxwxgxxfgwgfvwfhvvwwxewhwgvvwwvwxxvwhgwvwwwwxwxxvxwwxxwxwxwxwxwwxvwfwwxwwxwxxwwwwxvwgxwwwffuwvvvwxwfvffvwvwxwwfvvwwwvwggwwwwxhxgwxwvxwvwgwvwwwvwgwwvwwwvwwxvvgwxwwwwwxwgwwxxxwxvwwwwwgwwxgvwxwwgwwwwwvxxwvxgwwwwwwwwxwwvwwxwwwwwxwvwvvvvwwwwwwwvwwwwvgwvfwwwgxwhffwwwwwWwwggwxwgWwxwwhgwgxhxgxxWwgwwwwxwwxwvwxuxwvxwwvxhxuwvwxwwhwvgvwxwwxwwwwwwvxxhwwhwhwxwwwhxgwwwWhvwwxwxwghxvhggwwxwwwwxxwwwwhwwvwvwxwxwxwgxyvgfvwgvwwwgVvwwwffhvwxwwxwgvwgvwwwwxvxufwwffwxwxwfvwgwvxvxwwwfvfwghwwwgwwvgwwwxwvwxwffwwwwwwwwwwwgvwwvxwwwwwwxwvvgwxwwxwvvxwwvwxwwxwwwgxxwxwxwxxxxwgwwxvvwwwwxxwhwwwgwvwxvxvfwxgxwwgwxgwvwVvwwwfvfwwxwvvwwggwxwwxwxwwwwwgvgwgffvvgvwxxwwwwWfwgwwwxxwxwwffhwghvvgwwwxxwwxwxwwwfwxgxvffvwgwwvgwxwhfwwwfhwggxwwgwwxvwxwwwxwwhxwwwfwwwxvxwwwwhwwwgvvwwxwxxxwxwwxwgwwwxwwwwwwwgxgxvxvxwwxxgwwvvxfvwfwgwwvwwwwxxvgvwgvgwwvvxgwvgwgffvwwwwhxgwwwvwwwwvwwwxxwwwvgwwwxwwvxvwwwwxwwvvwxffvvgwwwvvwwwvwwxwwvwwwgwxwfwwxwwxvxgvwxvgwxwwgxfvvwwwwxwxxwxwvwhgxhwwwgxwvvxvwxwwwxwvfwxwwhfvvwfwwxxwwxwxxfgwxxgwxwvgwxufwwffwwwwgxgxwwwwwwfwwxgwwvwwwvwwwvwhgwxxvgxWvwwxwwwwwffwxwwwxxwxwwWfwghwggwxwwvgwwgwxgxhwgwxwWvwwwwxxgwwxwwwxwxgwxgwwwxxwwgxxwwxwxwwwwvgxwwxxwxxwwwwwxxxwvwxwxwwwxwxxvwvxfwgxwvwxwwwgwwxxefwVvvvfuwfgvVvwvhwwgvwwwwwfvwvewwfvxfwvwwwwxwvwwwwwevwgwfwwwwwwgwugwwwwwwwwfvwgvvvwvvvwwxwxwgwwxwwwwxxxgwwfuwvugegwvwwwwwwwfwxwxwwvxfwwfgwwwgwxwwwwwhwgxwwwxwgvvvuwfwwvwwxfgwwxwwwffwwgvwwwwxwxxwxwwwwwwgwfevvgwfvwfVvwffvvwgwwvvwwwvvvwxwvVvwfgwwfvwwfwvwgwwxwwwgvwvwvgwfwxfvwwwwwwvwgwvwvgvxwwwwxhhWwwxwhgwfxxwwwwWxwwhwfwwwxwxvvwwvfgggwwwwwwwwwwwwwwwxfwwwwvwgxwvxwwwwvxwxwwwwxwwwgwwxxwwvwwwwgwewgwwUfxwwxwwwuxwwwfwwwwxwwfvwfevfgvgvvggwfwwvWwwwwwhggwwwwffvxhwwwxgwhxwwwxvvvwvgwwffwwgwwwwwwwvvvvwwwwwwwwwwhxvfvvwxwvwweffwvwwfwwwhuxwwggxwgwwwxhvwwwxxwxwwxwvwwwwwwwxwwufwwuwwfwwwwxwwgwvfvvwxwUwwwwwwgwwwwwwxxwwwwfVffwwfWfwfwwgwwwwvggwwwwgwwgwwwwgwwhwwwgwxwwwwgwwgxvwxwvvwvwvgwwxwgwvxwwwxxggwwxxhxgwwgggvhxvwgwwwxwxxxwwwwwgvwwwwvxwxwwvgwgvgxwxvwfxxwwwwwwwxwxwxwxwwxwxxwwwwwgvwwfwwvwwhwvwwfwwwxgwwwwxwwxxwvwtwvwwwxvwvvwwwvvwwwfgwvgvwwvvvwgwwwgwuwvgvUVwwwwwugwxvwxvwvwGtwwwwwwwhvgwgvwwwwwvwwgvgvwvvfuwxuhvwfwwgwgwwxwugfvuvwgwgwWwgwwvgvwwgwUUwgwwwgwvwfwwwwfVwwwwxwwwwwvvwggwwwwwwwWwwvwvxWwwgxwfwvwvwwfwwwhwvwwuwwwwxwwwwfwgwWwwugvwgwvxg%dwfvwwgvvxwgwfWvwwwvwvwgGwwxfvwvvwwgvgwwwwxwwgwwgwgwvwwghgvfwggvwgwwwvwvxWwwwwwwwfwvhvgfwwwvwfggwwxwwwwegWvwwgwwwxVvwwwggvgWwfwwwvgwwgwxgxwwhwwwwxwguwvvgwwxxvwvgvvgwhWwgwwwwxwwxgwgvgvwwwwwwvwwvvvgvgwwxevwfvvvfwfwfffvwvgwvVwwwwgwFVvgvwwvvwwvwTTvVwgwwvwwgwhwwffwfwwvwvxxfvwvwgwWwwwxuwwfevvvwxgwxwxvwwwgwwxwwxwvwuvxfvwwwftfwwvwgvfvwxxggvvwhvwxgwgwwugwhxwwgwfwwwdvwtwwwvwwguwwwufevwwxgwuwwxwxwvwwgxwwwxwwwwxfwvewwwwwwwhxxUefwwgvwwwwhwwxgWvvxwwwgwwgvwwwgwGxgwvgwwwwxgvgfwvwwwxwwwvwwgggwfwwwwwvxwvxxwxXvwxwxxwghgwxxxxWvgwwgvvWvwwwwxwxegwwwwxvvvvwxwwwwxxwxwwwgwwwhxvxxwwvwxwwwwgxwwwvfggwgtwwgwfwwxwwxwwwxxwxwwwvwwxfwvxtwwwfwwwffffvgwwxwfwxfgwgwwwufvwwWvwWvwfuvxvgggvwwVgvxvhwxfwwhwgvwvgwfvgwegvwgvxfvwxvgvwgVfwxgghwwwwgwxvxwxvxxgwxwwvgvvvwvvwwvWfggwgwwvwvwxwwgfxwwwxwwwwwwxvwwxwxxxwxxvxwxWvvxwvxuwwwgvwvwxvwxvwwwfwwwwxwgvhgvgwwxxwwwwwgwfwvwwfvgwGUgfvvwwGfwgggvffwvgwwwgwwgvvgvVwgwgWVwvgwxwwwwwWxwwvwwwgwwwgwwgwwwgWwfwwwxwxxgvwfwwxgwgwxwgxgWgwgXxxhgxXgVxgwvugwgvwvvvwxwwwwwwwwvgwwwvwwfuwgwwwfhwvwwwwwwxwwgwvxwwwxhwgwxwxwuwvwxxwwwgxwwvxwxxwwwwhhwxwwxxwxwxwvxwxwwxwvfggwfvvwwwfgwwvVUwgggwwwVvggvwudvgvvgvwwxfwwwggwfwfhvfwwgwwxgwwvgfwFuugwhwxwwwuwwWwxvwwvhxgwvwwxgwxwxwfxwwgxgwxwvxvwwgxvgvxwwwwwwfxgxwwwwgwxwghwgxxwhwwvwwvxxwvwwwxwxwxwwwxwwwwxxxwvxwwxgxwwwwxwggwgwfxfvfwwwwxVvwwWgwvwxxxwgwxgfuwvwwwxvHwfwwhwwxhwxwwxgwxhgwwxwwwhgvwwxxxwxgxwxxhwwwgxxgxwxwwgHVwxwxxxxxhwwwwfvwwwwxgwvvxxwhwxxwWxvvxwwwhxwwwxwwhwxgxwxgxgwxwwwxvwgwwwfxxxxwxwwwvxwxxwwwwwwwhxwvwwvvggwwwwgvwxwvwxwvxghfwvxwggwwwxxwwwwwxwxwxgxvfWvwgvwwwwvwgwwwwwxwwwgvwwwxxxwxwwxxwvvwwgwwwwwwwwwvvvwwwwxwvxggwghwxxwwxxwxwvvvhwwxxwgvwxwwwggwwwxwwxwxwxxxxhwwwfwvgvffvwwhuwwwVxgWxwwfwwwwwxwvwwvwvfggwgwwhwWvwwwwgvwxxwwwwgvwggfwwwggwwwwwwwxwwxxwwwvfxwwwwgwxxxxwwxwxwwwwwwwgxwvWggufgwgwgwffwwvwwwwguwwwxgwwwwxwwxxxwxxwxxhxfvvgwgfuwxxwwwwxxwwwwgwwwxwwwwwwxxxvvvxxxgfwwwxwwwwvWVwwxwhwwwwwwwwxxxwwgwvwxwxvxwwxxfxwxhxxvwwwvwvvwvwwwxwxxwwwvxwwxwxxwxwxwwxwwvwwvfvvwxxwwxwwxwxxxgwxwgwxwwwwvhwxwwvvwvwwgxwwwxwwwgxwxxwwwwwwwxwxxwwgvxxxvgfgeefwgwvwgwwwggfwxwxwxwwvuwwwwwugxxxwwwwxxvwwhxwwwwxvWWfwhhwxwxwwxxxwwwxxwhWwwwwwWwxxxhgwwxvvxwwwxgwwwwwwgvxhwwxxwwwwwwwxwxxxwwwwvwgwwwwwxwxxxgwhwwvxgxwwwxwxxwwwvwwgvfwfwwvvvfwwvwwveewvvwwewwwfvvwgxwgwwwxgwfgwwvxfwvwwwweewwgvwewvgwwwxwwwwxxvgxwwvvwvvwvwwwxwwwxvwxwwvfgwvwwwwwvxwxuwwvwgwwwxwwwwwxwwwgwwwwxwxwguwvwwwwgvwwwwwwgwwwgwwgwvwvwxwxxxwxwgvwwwwfwvgwgvgwggwwwxwwUfwwgxwUgvgggwfvwhxggwwwvwwwgwxguwwxfgguwxwxwwhvUfwwwvUvwwxvvfxwwwixwvwwwxwvfwewwwvwhuhwwwvwxwwhwxhfgwgwwxwwgwwwvvwvwggwxvfwwvwgwgwwwwwwxxxwvwwgwvwggwwxwxxwvwwfxvfgwfwwvvfwwwggggvwwwvwvwwvwwggvvvwwxwwxwwwfwwgwfvwwwfwgvwvwwwgvwvuuwwfwwuxwwvwvwgwvvwwxwxgwxggxxwgwxvvwwguevvwwvewvwgwwwwwwwwvwvwwwvwxwwxwvwwwvwvwxvwwvwwwvvwvwhvwxuxvwwxxxwwgwgxwxxxggxvxgwxwwwwuwwwxxwwwwwwxhvwxwxwvwwwwwxwfwgvwvwwvvwxgfwgxvfgwwwwvwxwwxwgufwhfwgugwvfwvwwwwwwvxvwhwwxwgvwfggwwwwwwxwuvwgwvfuxwwgvvwxfgghgwvgwwgwwvxwwxwvxwwxgwwwwwhgvwwgxwwfxwwwwvwxwwwwfxgwxwxgwwwxxwwxwwwwwvwxfwwvwgwwwwgwwwxwwwwwfwxvvxxxwwxxwwwwxgwwwwvugVwfwvwWwuggVfvfwvgggfgvwfwxFwvxfhwwwwwvvwggvwvwwwwvgxwwwgfgvffwvfVvgwvgvggwwwwwwwwvgxxvVfwvgwgwvvwvwwxvwwwwwwvhvVwvwugfwvwgfxfgfgwxvwvwwwvwwfvwwvwxfwwxfvwxwwvfufvvgfvtwvwWefwvwwhggwxvwwwWvuxvgwwwwwgwwwgwfvxxxwwwgwwwgfvvfVuvffegfgvvfFvgvfvgffuwwhwWeffwgfvwfwxwwwggfwggfvwwhwwwvggwwgegffVwvfgGgvvwhwgwgwgxwgGVfggwgwwwxxwgwvvgWWxhXWwwwwxwwuwfwvvfgfewhwgwgvvwwgvwwvwwwwwvvuwwfwxwwwwwvwwhwwwwxvgvwffwwfgguguwwgvwxgwvwvgwvxvwwwwfxgwwwuvfwvxgwwwfvvhfgeffffggvwgVWffggwggvfwvgvfggwfvvgwwwvhwwgggxgwwwwwwwwvfwWwVwfWgwvwvwwwWgVgwgwvwxuwwwfgwuxvgfvwwwwwwvgwhgwwxvwxwwxgwwvvwgvufwwugwggwxvfxwgxwwwVwuxwvwwxwWwxfhxwwxwwwfvvxwvgxvxwvwgwwwwwWgwgwfvwwvxwvwvvxwgxWwwwgxwvxfWVgVwfWffwvwvxWfVgggwfvwwhwwwvfVgwwxvhwwxwwwgwgwgggxwxwwwwgwgwggvVgvxwwfgWwgxhhWvvwwxxvwwwwwuwvxxwxxggvgwxggwwwgwwVuwgwwegwwvwfWwwfxgwwfhwxxwxxvwxvwwwgwgxwwwwvwwvwwguwwxvxxhxvwvwvwvfwwwxwwvgwgwwVvvvwwuwwffwvgwwfvwvgwvwwwwwgwvvvwffwgTUvvxfvgfvwvwwwVuvwxwwwwwwffvwWuwguuvwxvgwwwwwwxwwgfvffvfVvwuwwwwwvggwxvwxwvwgwvwxwfvvwvwewwfgwwwwwvvvxxwvwwxefwwwwxwxdevvwxwxwxwxwvfgvvgxwwwwwwvwvvwgwwwwxwfvuvwwwhfwwvwwvwgwwwgwwwwvwvVfggfvvgvwvvVwvwggVgfvwxfwwf4TwffvwWvwvfwwffvgwVvgugwwhwgwwgwvwxwfwvvgxvvvwwwvxgwWxwxwwgWgfvvvvwgwwhwwwghwwgxgxwhwxghwvvVvwvwwfgwwxxfvvfWvgwwwwwhwfvvvwxwxwwwuvwgwwxwfwxxgwwgvwxwwfxggwWgwwxgxgwvwgwggwwwxwgvggvwxxggfgwwwxwgvwvgwxVvvvgVewwwwvgvwgwwfvvfvvxwgvfwCdvefwwvwwxefgwwwwgxwwfwvefegvxwvwwwxwwwwwwwfvvvwvwhwwvwwwxwwgwvxvfwgwxfvvvfvxxvwwuvwwWvgxwwwuvvwfwwxwwwwwwwxwxxwxwwgewwvwwwxxwvvwwwxxvxvhvwwvwvwfwvxwwwwgwvgwwUvgffvVfvefwwwgwgxffgwwwwgwEuuggwwXwwwhxxwvwwwfggfwwwgwfwfvvgvewxwhgwxxwxgwggwwxwxxwgwwgVhWfhxxwhwwwwxgwggfwgwwxVvWvwgwwfxwwxxvgwxwgxxwwxwvwwhwwwwwxfwwwwxgwgfwxfxwwwwwgvvxgwwwwvxxwwwxvwxwwwwwfwwgefgwwUvUvxwvuwwwwwwwvwwgwvwwgwwvwvvfwwwwwwwwxvgwwuwgwwwxxwwwvwgvvwvwvvvgwgvvwwwXvwwwwwwftvWwwwxwfuggwvwwxwwwwvwwvhUuvvfgwwugfvwwxgwvwwwwwxgwwwwwxwgwffftvWvwwwwguvwwgvwvwxwvwwvwwxxwwwfwwwvwwwwwvwwxwwwwWvwwwvfgfvwweuvgWxggffvvwvwvgwwwxweseFxgwgwvxwxgwwwwwwwgwwwwgwwwgwxFWwwxxfvuwgwvwgxxwxxwwwVvwhxvwwwxgvwgggwvwwvwxxeseFwgxwwwwxwwwvwwxwwwwwwvwwxvwwwxwwwwgwwwxwwgwfxxxwwwwwXwwwwwwwxwgwgwwxxwxvwxwxvxwvvvwwwxgwvwwwwxxgUuwwwwwfwwxxfvwwwwwwwxxwvwwvvgvwwvwwwxvhwvwwwwxwwxxvwwwwwwgvxwxvwwwwwxwwwwwwwwwwwwwwwgvwvgwwgxwwwxxxvwwwxwvwwwxgwvwwvwxxwvwwwxxwwwwxxwwwvxvWwwwwvwwxxuufVwwgxwxwgvwwhwwwwxXwvfwwwwwgwwxvwvwxvggwxxxxwwWwwhwwwwwwxwwwwwxwxxxggwfwgxxwWwwwwvxxwxwxxxxXwwvvxwwwwwhwwwwwxxxvwxwwwwvxwxwxwwwwxwwgxgxvxgvvwwvwxwwwhvwvwwwwwwuwwfewvhwgwfWwvvvugVevwVfgvvgwwwfgwwgwgvxvGfwfvggguwxvwxwwgwWwWfvfgvvvfvgwgVwwwwXhwvgvgwVvVwgwwgfvwgwvgvwwfwgxxwwgwgwwwfxvgvwwwgfwfwvhxwxwwwfwxxwvwwgwwxwhgvwxwwxwwggguwgwwwgggvfgvvfWxxwwwfgvxfxwwxxwwwxwwwwvxwwwvwwggGTvfFfwfwugwWgvwfwWfvvWxggVvWvffvvgWvvwwwwWewWwWwWwxwhwwwwvxwwWgvvhwgvfwvxwgxgxwvWXhExwvvggVwxwwwvggwghXVhwwgwgfuVwwewvxwwVdwWxVwgwvwgxVxvwwhwvgwwvwwwwgfxfvwwwxwhwwwgwwwgxxwxfxgwwhhfwwfxfwxwxgwxwwwwwwxwxgwwxwgwvwwggvvwgfvffvwfUuvuufggvvwgwwewgggvwwwwwwwwgwgwvgwwvwxwggwwfvwvgfwVvuwwwwwWwuxvwggxxgxwwggxgggwhwwvwxwxxgxgwxxwvxgwwxfuwxvwwwwvwxwwwgwwwgvwvxwwxgwxvwxwwwvwwgvxwwxwwwwwvggwxxwxxggxxwhwgwwwxxwwxwwxwwxwwwwwgfffvggfuvwhwgfvfgvGvxwfwwwghwwwwgwxghwvhwwxvwwxwWwgwhwwwXwvvwwwgWwxwxwwggwwfxgHExwgxxguxxxwwwxxgwwxwxxhgwwwwxwhgvwwwvwwwxgxvwwxfwwxwwhXvhwhwwwwwwxwwgwvWvxwwxwgwvxwwuwxxxwgvgwwvwwwxxwwwwwxwfwxwwwugguwwggwgxwgvgwvhwwwvwgwwxwhfvfgvgvxxvgvWvgwggxxfvvxwgfwvgfwvvuwwvfxwwfvvxwwxufgwwwgwvxwwfwvwwwwwwwwwfuewvwwfxxwwvwgwwvxwwwxxfvwwwwwvxVvvxxxxvggwgwwwwwwxwwxvxvgwwwxWeuwwwwgwxxxxvwwwwvwhxxwvgfwvWwfwvgwgwwfvwwgfvgvgffufwxwwguWfvwwgggwwwwxfvwggvwwxwwxwwfgwvwvgfgwwwwhwwwxwgvxxhwwxxhWfgwgwvwwwwvxvxwWwgvwxhxvgwgxvfvwwggfggwxxxwwwvwwwwwwgwwwhgvwwwwwxvxvwvvgwxwvwwwwwxwgvwxgwwxwxwwwggvwvwxwhgxwwWwggwwgwvvwwxxwxwxwwvvxwuwewxgvfgvwgvhwwwvfWvwwwwghwvxfggwwwwxgwwgvxwwwxwxwugfwwwvwwwwwwfwvgwwwwwxwggwwwwwwgxxwwwxxgwwwgwwxxxgvwxwgvwxwVvwwwvwxxxvvxwwwvxwxwxwxxxhhxxgxweuxxwwwwwvwwxvvvgwwxwwexwxxxwwwgwwxvxwxwxhxwxufVvwfvvggwwwxxfwffgvgwwxgwwgWgvvwwwxwwxwwxgxwvvgxwwwwwxxwwgwghwgvwwxxwfwwgwhgggwwwvfggwhwhgxxwwwwwfwxwwxgwxwgvvwxwwgvgwwwwwgwxwxwxwwvwwwwvxwxwwwxwxwwwxwwwvwgwwxxwxwwwwxwuxgvvuwwwxhxxxhwxwwhghwvwxwwtggwvggvuvvfggvvvhvggwwWfgfwgfvvwffwwgfwgwuwuWgwgfvgUvvwugwwwvvhevefvgVgwvwwgwfwwwgwwxwwvgwgwfufwfvguwwgfwwxgwgwwvwxwvvvvufevwvfwwvxvfwxwvwfwxvvggvvwvvwwwwvhwwgfvwwwwgvxwwwhxvwvwvvvwvwwxwfvuxwvggwwwxgwvwvvxvwgwwugvxgwvwwwfvwwgvvwfvxvVevfgfwgvvfvffVgfgffvvggwwfwGUwgvvwgevfwgwWVevgvggfffwWgwxxwwwgvegwwwxwwwWwwvfxxwvwgggxwgVwvgwwvfvhwgwWgVggwgwgwwwgWgxhwvvfwwwwwvfuvgxwwgvvvvggfxwxgwwguwvwvvweWxhwgvgxvwfvwwwxwwwwwwwxwwwwwwxwgxvfvxxwvwwxxxvwhhwwwwvvwwvwvwwxwwgvwwfVvwVvwvvgvfWwvvvgVvvvuggfgwveffvduvgfwvVgvvxvgvfuwwvvWggfwfUvdgVwvxvwgffvwwwvgwwgvwwvvwwwwuwhwwwwwwXWvvwXwwwegwwwxwwuwwwwwxvfgvxuxvwwwwwwwwwwxwgxwvxxwxguwwwwgwwxwvwwwgvwvxxvwwwwwwwvwwwvuwvwwwhhwxwwgwwxwwvwwwvfWgvwVfvgwxvgWvfggwgeevggwxggfvfwwwwvwvGwwwwwggwvvgggwwvwgvwwwwwwgfggwxhgxwwwxwfggxwwwwwwwgwgwWGVwwxvwwwxwwwfwgwwxwvwxgwfhwxwvugvwwwwgwwwwwwghxuwxwgwhwwwwgwwhvwwxwwgwxwgxwxwwwwwwvvwwwxwwxwfwxwggwwwvxgwwwvxxeggwfffwgwwwgVewufwwwVegfggvffwggwwwggVxgwwfvwwWgvwfwfgVvwvxxvwggwVEwfgfWwwwwgfwgwgggwwxgwggVwfwWgwwWwxwxwgvwwvggwhwwwxwwwvwggfwwwvgwwwwwfwwwxgxwwvgvwwwwwwwwwwwgwwxxvxwwwwwwwgwwvfwfwwhfvwxvwvgvwwwwwfwvwwwxhwwvwvxwhgwwwwwwwwggvwwgfwgffgfffgh6EgwfggfvgvwgvHfWUwgwgggwvwwwwWfvfhfgGugwwhxwwwvgwwwwwwwwgwwWhxgfwwhxwvfWGffwvghvGwwwwxwgggufHXVgvwghXwvvgveufgwwwxwwfvwuxfvhwwwwwuvwgxxwwwuxwxwwwxwxhhggwwwgwxfwwxxwwhwxxwwvwwvwWXwwvwgwggwxhhxwxwwwxxwxxwhwwggwvwfwwwfFfgwgwgwwgWggweewWVwxvwwwfewfwgxgwwvwwwffwwWwwfwxwwgwvWgwwGvvwVwwvwxwgwvwfvWgwggvhwwfVvevwxxWxxwxgxwhgvvwwwfwwwwwvwwwwwwwvfvwwwwhvwhxhxwwxwxgvwwwwxggwwwwgxwwgxwgwwgwwwxxwxwwxvwvxwhhwwxxwgxgwwwwwwxgwwwxwwffwvxxxwwwgffwfWfwgwwxvwwxfwWfwwe7vvgwwgwvfvwwxgfxwvxxxwwxxgffggxwwxwwgwwwwvWxwWwxwxxwgvfgh8VxgwxwwhvgwwxggxwwxwxwhhghggvgwwxgwvxgwwxwwxvxvwxxvvwwwwwhwgwwxgwxfwwxwxxxgxwwxgxXwgwxgxxxxxwwwwwggxwhgwwgwwvwvgwxxhgwvwghgvwvwxgvwwwxxwxwxxwxgxxxwwwwwxwwxwxwxxxxwwxxwwwwwwxwxgwvwwwwwwxxwwxwxwwwwxxxxxxxwxgwwwxxwwxxxwwxxxxxgvwwwwwvwxhgwxwgxxxwwwwxvwxwvgxgxgwwwxxvwxhvxwvwxhvxwwwxxwxwxxgwwxwhvxwxwxxgvgwwgwwxxwwwxwxhxxxwwxwxxwwxxvwwgvwwwxxwxxwxwxgxwwxwxxxxxxxvvwwgwwxwwxxxxwwxwxxwxxxxwwxxxxwvwwwxxxwwxxxwxxwxwxxxxxxxwwwxxwxwxxwwxxxwwxwxwwxxwwgvgwgwxwxxxxxxwwxxxwxxxxxhxxxxwwvxwwgvwxxwxxwxxxxxxwxxwxxxwhxxwxwgwgwxxxxwxxxvxhxwwyxxhwhxxxxxwwxgxxxxxxhxwxuggwgvwwwwwgwwwxhvgwwwxgwwwxwxwxxxwvxvwfvwfvvwgffwvwwwwwwwxwgwwgwwwwxwwxwxwxxwxgwwwVwwwfvwgvwfgwwwxvwxwwxwwwxxxwxxxuwwvwwwfvvwvwwgfwvxgwwwwwxwwwwwwwxwxxwxwwwwwxfvgvgfgfwwwxvgwvxxwwxwgwgvwwggwxwwwwwwwwFdwfgwgvvwwgwhggvwwxwgwhgxgwgwvvwwwwxwwwwxxwwxxwwwxhvVvwgwgwwxwhwwwwxwwhwxgwxxxxwwxwwxfwvwvwwxgwgvxwwgwwwwwwggxvvxxxwxxwxwxwwfuwgfvwfWvwfwwvwwwwgwwxxxwxwwfwxwxwxwxxegfuwvvfuuwvgwwgvvwwwwwvgwwhwwfwwwxxwxxwgxwxwwxwwxvwwvfvfwwwwhgfxvwgwxxwwwgxwwwwxxxxxwwvvfwwwvwwxggxuwwvwwwxwhwxwxwwxwxwwwxxwwwxwxwwwgvwvxwwfvgwxfwvxhxwwwwxgwxgwwxxwwxwxwgxxxwxxxxxwgvvvvwwgwwggwWwwvgwwhggWwwxxwwxwwwwxwxwwwwwxxxxxxwwxgfgwwwwwgwwwhwxgwwwwwwwwwxwxxxxxwvgwxxxwxwwwwwwxhwxfvwxgxxxxwxwxwxxwxwghwxwgxwxwxwwwxwwwwwwhwgwxxfggwxxwxxxxfggwwwgwwxwvgwwvxvwwwxwgwwwxxvwwwxwwxwxwwxwxwwvxwwwwvxwwwwhUvvgwwwxwwwxhwxxwwvwwwxwwwxwwxfwvwgwwvvxxwwwwxxxxxxhxwwgxxhxxhgfgfgfgxWgwhxwwwxwgwgxwwxxgxxxxwvwvwwxeffwhuwwwwwxwxhwxggxxxwfggwxvwxxwxxxxxxxxwxxWvwvWwwwxwghxxxwxxwwxxwwwxxUfvxhuwwwwvwvvwwwxwxwgwwwxhwwxwwhvxxyxxwwvwxwhvwwwwwwfwUfvgwwwxwwwxxxxwxyxwvwwwfvvwwxfwwwxhwxxxhwwxxxxwxxxxxgxxxxvgwvwxwxwwwvggwxwxgxxvwwxxxhhxxwwxhwwwwvgwxxxxxxwhxxwwxxhxwxxxWvwwWxwwwwxhwxgghxxwxxwxwxxxwhxxwxxxUfvxxfwxxxgwxwghgwxhxgvwxxgwwwwwwvxxxxxxhxwwfwgxwxwwwxhxxwxxxxxxxxwwwwwxxwwxwwwxxxxxxvxxxwvgxxvwxxvggxxwwwxwwgxwwwxwwwgvwxwvgfwfvvwwwvwggwwwwxxwwwwwwgwwgvwwwwwwwwwxwxwwwwgxwwhwvwgwxvwwxxxghwwgwxxvvwwxxxxggvgvwxwvxwfvwwwhxxxwwwwwwwwwxwxwwxwwxxxwwwwhggwvwxwwwwxfxwxwwwwwxvwgvwwwwwxxhwvwxxwvwxgwfgfwgwwgwwxvwwxwwgxwgvwwvevgwvwfxxxwxwwxgxhxxxxwxxxwfwvvwwghxwvggvwwxvevwwxgxxwvxwxxxxwevvwgwvxwwwwgxxwwxxwxxwvwwvxxxxxxgwxxwwxwwxgwgvwgffgwwwwvwvwwxwgxxwwwwvwwxxxxwxwwfvwfxfwwwwwwvfwvvxxxfvvxgwwxxxxwwxxxxwwxvvxvxxwvwwwwwxwwwgwxwxhxxwwxxwxgwxxwfxgwwwxwwxwwwxwwwxgxwwwwwwwxxwxvfwfvwwwggxxxxxgwxxxwxxwxwwfwwwxwwwxhhwxwxxxxxxgvggwwwvwxxxxwwxwxxxgxxwgxvgwvxwxxvxxxwwwxvwwwgwxhxwwxxvxwxwxxxwxxwwxxwxgwvwxwxxvxxxxxwwxwvwgwxvevwxxwwwvwwxfwxugwvwwvwwwgwggwwwwwwxfvwxwvwfweewgwwwfwwwfwwfwvgwgwgwwvwwwvwwwwwvgwwwWxwwxxwxwhwfuvxwvwwwvwvfwgfwxwfwwwvwwwwvvwxxxwwxxwwhxxxxvwwvfvwwwwwwgvfxvwvwwxwxwxwvwvvvxwwxgwwgXvvwxevwgwgvwVvwwgVfwvgwwgUvwwwwvgwwwwwwgwwxxggxwxwxgvxxwxwwVvgwwvvwUwvwwwvwWgfxegwfvwhxvvfgwwwvgwwwgwgwgwvvwgxwWgwxwxwfgwwgwxgggxwwvVwwwgwgwgxvwxxxwvhxxxxwwxhxvxxxwfwwgvwfvfwgxhwwufwWxwwfwvxvxwwwxxvxgxxwxgwwxxwwxvwwxhevwwgwggwvewvwvwwvwwwxwwvfxwwgwwhwvxwwwxwwfevwgvwwxevxwxvwwvwwwwwgwgwvxxvvfwwwwwwwxggwwWwwwvwgwwfffwwwggwxuxxxvwwwwwwhwvwxwxwwwwfvwwvwvwvwwwvwwwwwwwxfwwxwwwxwwwwwvxwwfgwwwxwgwxgewwwgWwxwgwwgwxxwxwhwhwhxwxwwwxxwuwxwvwgwwwxwxwgwwxxxwwwwxwxvggwhhvxgxwxwwwwwvwvxxvgwwwxxxxxwwwvxgwwxvwxxwxxxxxhwxwxxvhwgwwxxxgxwwwxggwgwwxxxxxwwwwgwxxvwxgwwxwwxwxwwxxwxxwwwwvwwwxxxxwwxwxgwwxwwwwxxwwwwwwffwwwxfvwxxwwwwwvgvwwxxvxwxwxgwwwwwwwgwvwwwwwvvxwwwfwwxxwxvgwwfwwwVuvfwxwwvwwwwwvvwwwwxvwxxxwwwwxvxwgvwwgwvgvgxxgwxxwwvxxwvgvwvxwxvhwwxxxwxxVewwwxfvwwwwwwwxvggxxwgvvwwxxvwxgxwwvhvgxxwgfwgxwgvwwwwwxwvwwwwwxwxwxxxxxxxxfvvwwwvwxwvwgwxwwvhxwvxwvwxwvwxgwwgxwwwwwvwwvwggwwwwwwvwwxxwxwwxwwxwwxxhxwvgwwgvfwwwwxxVefwwwwvwxxwwwwxwvxxwwwwwwwfwwwwwwwwxxgvwwwwwwxwwgwxxxxxwxwxhwxxxxwwwwxvxwwvhwwwwwwgwvwwxwwxwwhvwxvwxwgvwwwwxgwwwxxwwwxwxxxwwxwxwxxfvvwwxxfwwxxvxwgxxxwwfwwxwwvwxwwvwxwwhgxxwwwxwwwwwwxxxwxwxwxxwxxxwxwxxxvxwwwwwwwwywxwxwxwxxxwwywxwwxvvwwwwwgvxwfWwwwgwwxxghwwwwxgwwwwwwggxwxxwwxxffVvgwvwVgwwwwwvwgfvxwhWwxxfvwwvwwwxxwvxwwxwxxwwwxfwvwhwvguwvwwwwwgwwxxwwxwxwwwxwwwwhxxwgfvvfuwvwvvwwvxVfwwwwwvwwxxwvwwwxxwwxxxxwxwwwwxwwwvwwwwgvWwwwvfwvggxxvxwxhwwwwwwxxwwwwhhvwwxxwwxxwxwwvfwvgxvfvwwwwhfvgwwgxgwwwwwwwgwwwwwghxxwxwxxwxxxxwwwwwwwxwfuwvwxwwguwvxwwxxwxxwvwwwxxwwwxvwwwvvvwwwwwwxwwwwgwvhxwvwhxwwxgwxwwxxwwwwxwwwwgwgwwwvwwwVwgwwhgwwgxgwvwwwwwwxwgvwxwxxwfVfewwwWvgxvwwwwwwwwwwwghgvgwwwgxxwwwwxxwwwwwwwwwvwgvwwxvguwwxvwghwwwwhwwxxwwwxwxgwxxVvwfwwwwwwwfvwvgxwwvvgwvwxwgwwwwwwwwxvgvwwwwwgvwwwxxffwwhwwwxwwwwvwwxxwxwwwwwxhxwxxwwfgWwgwwgWxwwwgwgggxxwXwwxxwwwwxxwxwwwxxxxwxwxwxxxxxxxwwxwfwwwwwwxwwwvvxhwwwxwxxxxwxwxxgwwwwwwwwxWwwxwwwvwwwwwxxwwwxwwxwvwwxxwwwxwxwwwwwxwvwxwxxwwwwwwvwvwxwwwxwwwwwwxwvwwwwvwwhhwwvxwxwwwwwxwxvwwwxwwxwwwwgwgvwhwwwhwwxggxwwwvwfvxgghxxwxwwxvwvwvvwgxwgvwxwwvgwwgwwwxxwwxwxxwwwwwwxxwxwxwxwxwgwwxwwWwwvwxwxwgwwxxxxwxwwxxwxxxxwgwwwwwwvwwxwwvgvgxxwwvwwxxwwwwxxxxxxxwwgwxwwxxwwwgwxvxwgwxgfxxxxwxwxxwwhwwwwwxwxfvvwwwwvwwxwwgwwwvwwgwwwvwxxwwwwwwwwwvxhwvgvwwgwwwwwgwxxxvfxxwwfvxwvhwxwxwvwvfwwwwwwwwgvwwwvgwwwxwwvxwxwwxxwwvxwwwxwggvwwxwgwwwwwxgvwwvwgxwxwwwgwwwxxxwxvxwgxwxwwgvxwxxxxwwvwwwxvwwwwgxxxwwwwwwvxwhxwxxwgwxvxwgwhvgxxwxwwxxwxwwhxwxxxwwxxxwhfvvwxwwwxwwwgwwvxwwxwwxwwwxgwxxxwxxxwwwgxwvxwhwhwwwwxxxwwxxwwxgxwwwxwwwwxxxwwwxwwxwxwwxvwxxwxwwwvxwxxxxxwwwxxvwwxxxwwwwwhwwxwxwvvvvhwfxwVvwwvhghhwxwwwxwhwwhxgwwxxwxwvwwgfvxwwvfgwhgvxwwgwwwwvgvxwgfgxWwxwwwxvxxxwwwxgwwwgggwwWwxhwwgwwwwxxwgwvxwwxxxwgvwxwxhxxxwhggxgwwugvwWwgwwxxwwxgwwvhxwwxwxwwhwxxxwxxxxxVvuxghvwhWfwwwxxGvwgwggguwhxwwvWwxwwwWxxghwxxxhxhxhxghwggxwwwwwgwwwwgwWWwxxwwggwvxfgwwwxxgwxggwwhxxwxwxgxxxxhxxgvvwwwxfwwwxxgwxhwhgwwxwxxwvwxxxxwxwxxwxxxxwWwwWwwvwxwwwwwwxxxxxwxwwxwwvxwwxwxwxwwwxxxwghwwwxwgwwwwgwvVvwgvwWwhwgwwuwwwxwxwxgwxwfwwwwwxwwwvxwwfwwvghwwwwwwxuwwfwxwxwwxwvxwxwxxwwxwXwwvgxwuvhwwxxggwgwxxxggxfwvxxwwhxxwxxxvwwxxwxwxwgxwxwwvwxvxwwwvwwwgxwwwwxwwwwwwxwwvxwgxxxwxxwxxgWvgxwxwwwhxxgwwgxwwhxxwhwwvwwxxwwXwgWwxxwxxxxgxxwwwwwxwwwgxwwxvggwwwgxwwggxxwgwwvwwwgwxwxwxwwwwwwuhxwxwwXgWwwwxgxhxgwgxgxxgxwxxxxwxwwxvxxwxxgwwgxwwwwvwwwxwwwxwxwxwxxxwxxwwvxxxxxwxxxxxxwxxwxxxwxwwwwxwxxwwwwxwwwwwwxwwxxwxwxwwwxxxxwgwgwwwwhwwwxwwxwwwwxxxwwxfvwwxwwwwvwvwwwvwxwxxxwxxxwxxxxwwxwgvxgwwwxxwxwxxxgwwwxxwxwwywwwvwvwxxxxhwwwwwxxxwxvwxxxwxgwxwwwwxxwhxxwwwwxxwgwwwxxwxwxxfvvwwwwwxxwxxwwxwwxwvwwwwwxxxxxwgwgwwwwhwwxxxxwwxwwwwwfvvxxxwwwwvvwwwwvxwxxxwxxxwwxgwwwwwwwwwxwxwxxxxxxwwwwwwxxwwxxxwwwwxxxxwwwwxxxwxwxxxxwxgwxwwwwxwwhxxxxwxxxxxxxwgwwwxwwxwwfvvwwwwwwxhwwwwxwxwxxxwwxxxxxxxwxxwwwwxxwxwwxxwxwxxxwxwxxxxwwxxxxwxwvwwVvvfxfwwwwvwvwxwgvvwxwwwwwwwwwwwwwwwwwxvxwwvwfwfvwwvwggxwwwwwgwfwwgwwvvvwxvvvwwwwxwwxwwwwvvwvwwgwvgvwwwvvwwwwwwwwwxxgwxgwwvwxxwwvvwfwgwfwwwxwwvwgwwwwvvvvwvxwhwwgwwwgwTvxhVexwfvgfwwVwwWwfwwwgwwggvwgxwwghvxhwwxxwwxxywwfwwvFwvggwgvfxwvwwxwwvvwwgwwvwvwwwgvvgwwxwxwwxwxxxwhvgvwwwwwggwwxwwwwwwxwxxwxgxwgxwhwxgwgxxxhwvwvwvvvgfwxwggvwxwwwxgwwwwvwxwfwxwwwwxwwxxgvfvwvvwwgxwgxwvvwuxwxfvvwgwwwgwvxxwwwvwvfwvuvwwfuwgwwwwwxWwwwvxvvxwwhwwvwgxwwwxwwxwgvwvwvgwwgwwfgvwvwxwwwwgxwxwvxxwxxwxwwwwwxfvvfvwwwwwvvvvwxwwxwwxwwwwwxxxwwgwwwwfwwgwxgwwwvwwxwwwwwfwwxxwxxxgvxxxxwwwwxwvvwffxvwwwwvwgvwxwxxvwggxgxhhhxwxxwxhwwxxwgwwwgwvwwwwxgxwwfvgxwwwwxgwvxxxxxgxxxwxxxwwwvxwgwwwwwgxwwwwxxwwwxwvgxgwwwgwxwwwwxxwWgvwgxwhwwwxwxgxxwxxgggvggfwgwwfvwwgwvxwwwwwxxwxWwwgwwwwwxxwwwwwxxwxwwwxxxgwwwgvwwwwgwwgwwwgwwwwxwhgwvgxwwgxxxxwwxxxxWgfgwhfvwwxxvgfghxhxwwwwvvwwwwxxxxxxhwwgwwgwwgvwwwxwghxwwxxgwwxhwwvwxwwwwxwwxgxxxxhwxxxgvvgfwgVgvggwggxwwwxxwhhxwxgwwwvhwxxxwwxwwhvwwxxxxxxwxwfgggvvwwvvwwxxxwxhxwwwwxxxwxgwhwwxxwhxxwxwxxwxgfwvgwwwgxvvwwwwxwxxxwxwwwxwxwxxxxxwgxxxxgwxxwwgvwwxWgwgxxgwvxwhgxwxxxxwxxxxggvfvwxwwwwwwwgvvwwgxwwxxwxvwwwxxxwxxwxxxxxxwgwxgvxwvxggwwxxxxxwwwwwxhgwxxxxxxwwwwxwxwwfvwwwvwxwwwwwxwwwxwxxwwxwwxwwxxwxxxggggvwVwvgxxxggwxghxxhxxxxwxwghxxhxxxxxxgwxVwggggwwxwvwhwwgxxxxwgxwwwxwxxwxxxxwwwxxxxxgxxwwwgxwwxwxwxxxxxxxxwxxhwwxxwxwxvvwwhhxxxxxxxxxvgxvvhgwxwwwwwvvwxwvwfvxfwwwwwvxwwwwvwwwxwvwwwvvwwvwxwfvwfvwfwwwwxwwgwwgvwwvvwwwwwxwxxxwwwuvxgvgwwwvwwvwfwwwwvxxwwxvfwwwvxxxwvxhwwxxxwvhwwvwwwvwvuwvxwwxvhgwvwwhwwwwvwgxwvwwxxevwxggfggwwwggVwwfwgxvwgxgVvfVvgfgwwwwwxghwxwxxggwxfwvwuwwwgwwvwwfgxwwwvvVvgewggwxwgwvxwfwxwhvxwxgwxwggwvfvwwxxwvwwxwxgwxxgvvwwwwhwhxxxgwwxWxwxxxxxvvvwgwwwwwvwugvxwgwxwwwgwuwwwxwvvxwwwwwgefwwwwwwxuwwvwwvvvxxwgwwgwwwxwxwwwwwxwwxxwuwwvuwwwwxvgwxvxvxwwxvvgwvwwvwgwxxxxwxwxwgwvfwwgvxwwfvwgwwwxxvwgwWwxvxxwxxwgxwwwwwvxwwwwwwwwwwwxwwwwxvxwwvwwwwwwxgwgwxggxwxgwgfvvxwwwwwwwxgxgxwxhxwwgwhvxwwxxgxhwxxwxxvvxgwgvgwhwwxgxxwwxwxxxhxwxwhwwvwwgwwwwwxgxxxxxvwxwxgwwwwxhxxhfxwxxxxxxxwxxhwwwwxxxwxxxxxxxxxxwwxgwwwwwxvwxwxvhxwwgxwwxxwxxwwuwxwgwvgwhfvwgwgwwvwwxwwgxwwwvwgvwwvwwxxvwxwwfvwfvwvgfwwgxwwwwvwvwfgwvguwxwwwwgvwwxwvfwwwwgwggwwgwwwxwwgwwVwwxwwgVwwwxxwwxvvwwwwwvwwvwwvfwwgvwxwxwwwvwwwxwgwgwwwwwwwxeuwwgvvWwwxGvwwfwvvgwhxVvvwwxwWwwxxWfwxwxhgxgwghvwwwwwxxhwVwuwwwxwxwxwgwgwwwwwwwvgxwvwfwwgvvwvhvwWvfxwxwwvxxwfwwwwgxwxwwgwwWwwwewwxxxghxwxwwwwwxwwvgxwvfwwwwvxwxwvwwwwwgwwwgwvwfwwwwxvwvwWwwwfxwgvwxwfwvxxwwwxxwwwxxxxgxxxwfwvvvwxwwuwvwwwwxwvvwxugvwwwwgwwvwvwwxwwwWgwvwgwwwwfwgwwxwxwwxvVgwwxwhxwwggxffwxwwgwwwvwwwwwwwvwwgxxwvwwxwwwwwxxvwgwwxgwwxwvxghwxxxwwvvwxxwxxwwgwxxwwwxxgxwuwxwWwxvwxhxwwwwwwwwwwxwxwgxgwwxxwwwwwwxwxwhxwxWgxwxxxhwwwxggxgwwxwwwXwxxexxxxxgwgxxxwhwxwwgwwvwwxwwwxxwwxxwxVwwwwvxxwvxwxvxxxwxgwwxxvgvwgwgxwwwwwwfwwwwxvgvwhfvxwwwvvwwwxuwgwvgvwgvvwwwwgvwwwwwwwwwxwwwgvwwvwwugvwwwwxwwwuxwvvwxxwgvggxwxwwwfwwwghwwwwfhwwwwwwwgxwvxwxxwxvgvvwwwwxuwwgwwvxwhvwxgwwwwwugvwwvxwwwxxgwwggxxwwgwgwgvwwwwgwwGvwwwwwwxwwwwwwvvwxwwxwxxwwxwxwwXxwxxwwwwwwwfwwvxwhwwwwxHwvgxwwwvvxwguwxgvwvwwxggxxwxxxwwwwwwwwwghvwxwwxwvgxhwwvwxwwgwxhwxxxxvwfwwwwxwwwwwgwwwwxwwwwxvxvxwwgwvxwxgxwwxxvwwxwgvwfhwwwwwwwwvvxvwxvxwggxxwwxwxxwghvwwxxxwvgvwwvwwwwwugvwvvwxwgwwgwgwvxwuxxwwwhwxxxwxwxvxxwhwwwwvxwwwxuwxgwxwxgwxwwhwxhwwxxgxwxxxxfvxugvwwwwxxvwvwxhwxwwxxxwxwxhwwgwxwwwwwwxgxwwxxgwwxwxggxwghxxwwxwxhxhxxxxxxwgwvvwwwwvxwwwggwxwwxxwxwxvwwxxwxgxwwwxxxxhwhxwgwwxuxwxxXxxxxvwxxxxgwxxxwgxuwvvxwxxwxwxxwwxvwxwvxxxxwxwgxufwwhvwxwwxxxxwxxgwwwwwwxwgwxwxfwwwwwxfwxxwfvvvwfvwxwwwxwwwwwwvwxwxgffgwwwfwwwvwwhwwwxwvwWfvwvwgwwvwwwwxwvWvvgvvgwgxxxwvwwwxxefvvwewwwwwwwfvwwwwwwxxxwwxUvvwvgwwxxwvvgwwwfhwxwxwwgfvxffvwgwfvwxvhvgwxwxxwfvxwwxwwwfwxxwwxxwwwxxwwgFdgwwffwwwwwvvwgwwgwwwxxwfvwwgwgwxxwxwwhgwgxgwxxwhwgvxwvwwvwwwwvvwwgxxxxwffvxxvxxxxxwgwxxwwwgxwwfvgwvwwgwwxxwwvgwwhwfwwwwxwvwgwwwWwwxxwwwwuwxxwwwwxvuvxwgfxwwwxvgwwwxxwgvxwwwwxwxxwwuwwwwvwfwwwxvvwwxxvvxxxwfvvwvwwgwxxwwwwwwwwwwwwwxvwwfvgwwwfvwwwgvvvxxwgwvxxxgwxxwxxxfwwvwwvwwwwuxwwwvwwwwxwxwwwxwgwwxwgwxxwwgxwwwvWfwwwhxvwwgwxwwwxxxxwvwxwhxxxwwxxgwwxxvvvwwwwwhwxwgwwwxxwwxxwgwhhxvwxwxwwwgwxxxwxxgvwfwwwwxxxwwwvwxwwxwgwxwgxxwxxhhwwwwwxwxxvwwwwwxwwwgvvxhvwwwxxwxwwxxvwwxwwwwxwxhvxwwwwwwxwwwwxwvvwxvwwxwwwwxwwxxvwxwwvxxxxwwxwvfwxwvwwxwwwwwxwwwwvvxxwwwxxwwwgxwwwxxwhvwwwwvwwxwvwwwgwwgwxwwwxwwwwgvgwwxxggvwwxwwwxxxghwwwxwwgfvwxwxggwwwwwwvhwwwvvxwwvwvvwxwhwwxgxwwgvwwwwwhxgxgxgvhwwgwwxvvgwwwgwwxxwgwgwhwwwxxxwwvwxxxgxxxwxwwwwwxxwwxwwgwxwxvxwwgxwwwxwgxxwhxghwxwwgxwhhfxxwggwwwwwwxxwwwfxwvxgxwwgxhhvwxxwxxwwxvxwhwxwxwxwwwhxwwgxgwwwwgvvgwwxwwwwwwxwwxxwwwvxgxxwxwwxwwvwwwwgxwgwwwvxwwwwwwwwwvvvwxxvgwxwwxxvgwwwwwwfvghwxfwvwwvwgwwwwvwxgvwwwwxwgxgwwvgwfwwwgwxxxgvwxwhxwxvvhwwxgwwxfgvwwgxwxwwwxwwxgxggwxwwxhxvxwwxwwwhwwwxwgvwwxhwwwwxwwvxhxwxgwhxfwwwwgvwwwgwhwwhggwxwxwxvwwwxxxwxxxwwxxhgxxxxwwwwgwwwxxxxwwwwwffwwhgwwhxxxwwxhwgxxxxwwxxxxhwwxxxgxwwwwhxwwxwxghfxxwwxxgxxxwxwxxxwwxxxwvhwwwwxxxxgvwwwxwxxxwxxwxwuwhwgxVvxvggwwwwgwwufwgfwgwwwwwgwwwxwwwwwwgwxwwxvxhwwwvwgewuwwwgvvwwfvwwwvwgwwwuWfwwgvxwgwwwvwfvxggwwwuwwxwwwwgwgwwwgwgwwfwffwgWxwvwwwwfxwwwwwwwxwxwfwxwwxxwwxwxxgvvwgfwwuwwwdgvfwwxgvwguwwwwwwwwuwgxhwwxxwhwfwxwxwwwggwvxvgWggwgwwvgvxffgwgfwwwgwxWfwwugwwwWvwwwfgwwvwxwwhxXvxxggwxgxgvwwwgwfvwwvgwWwgvwvwhXegwgwgwvwffwwwwhwwHxgwwwwxxxhwxwxgxwwwwvwvvwwwwwhvgxwwxwvxxxxgxgvxxvvxgvhwhxxxwxwwfwvwwwxggwgwgfwwwwggggwwxwwgvwvxwxgvgwwwwfhvwwwwwxvxWgwggwwwguwwwvxvwwvwxwxvwwwxxvxxwxwwxxwxwwxwxwvfwgwwwgwvxuwwwwwfwwhWvdgvfwwhvvvwvhgwwwwwuwxgwhwxxvwvwwgwxwwvwwwxwfwwxwXvxwwvxwxwvxxxwwxwxgxxxwfwvwguwvwwvwxxwxxwwwwuwgwxwwwwwwwxxwwWwvwxvwwwxwwwxwwwxxVwwgwxhwwhgwwxXwxwxhxWWxxhvxwhxwwwgvxvwxxgvxxxwxwgwwggWhwgwwgxgwwwwwxwwxwgwgxxwhwgwwxxwwwwwhxwhhxwxxwwxxxxxwwvgwvxXxxvwvxwgxxwwwxwvwwvxhwwxwwvvwwhxxxhxwxfwwxxwgwgwvvwhvwwxwwwvwxwwwwwwwwwwwfgwwgwwwxwwwxxwwwwvwxwwxwxwwwwwwUUwwwwWwvvwwxwwwwxwwxwwwwwvugwwwwwxwwxxxwwxwgwwgggvvgwwwwwwwfwxwxwxwvwwwxwxwxvwxwwwxwxvfwwUfevwwvvwwvwxgwxwwxwxvwvwewvwxwvwwxxwxwwvwvwwwwwuwuwwwwxfgwxwxwgwwxwxuwuwwwwxwwvwxwxwwxwxxwwUUwwggfWvgfwXwWwwwwxxwwxgxgfgegvwWWgxvwwwwxwxhhhvwwvfuwwwwwwwxwwwfwwxwwwwwxwwwvxwwxxxxwxwxxwUvgwgwWwgfwxvfgwxwgwgwwwwxhwewxvwwxxfwwwwwxwxvwfwwwgvwxgwwwwwwwwvxxwxxwwvgwwwwxxwxwxxxwxxwxwvggweuefgwwexwvvxgwwwwxwvwwwgxwgwwwwxxwgwxgxxggxwwwwwwhwwwxwxvwwwwwggwwwxwxxxwxwxxxwwxwxxwgvgvuwvwxwwwwgxxgvgvwxwwvwxwwvxxwxwxwwwvgewwwwgwxwxwwvvxxwwwvxxxxwwwxxwwwwxxxxwxwwxxxxwwxxguvwgwWxxvgxwwwwxvwhxgxxxwwwfvwvghwxvgwwwwhgxwxxhvxwwxwxxxwwvwxwwwwxxwxxwwwxxxwxxwxwwwxwwxxwuwgvwwwwwwwwwhwwxvwxvwwwwxwwhgxwgxwwwyvwgwwwwwxwwwwwwvxwghvxwwhvwwfWwxwwwgvxwhwxwfvfewwvvfwggwwgfvwxxvhwwxwvgwuwwgwgwxwguwxwxwxwgwwwgwwwwvwxwwwWggxwvgwwxxwxfwwwwwxxvvwxxwwfVfwvuwgwvwwwgwwwwwwwwwxxwguvvwwxxwgxwwwxvwwwwwwgwwwwxxwfggwxwggvxwxxwvWwwxwwwxhhwxwxhwxwxxxwwvfwxwfgwwwgwwwggvvvwgxgxxwwwgvvwxwgxvxxwwwwwwwxwxxwxwvgvwwwwwgwwwxgvvgxxxvwxxwwxggvwwxwwxwwvwxxxxxxwxxwwvvewwwfwwwxwxwwfwgxwwxwxwwxwwuwwwwxwwuxxxwwxwwwwfwvwxwwxwwwwxhxwwxwgggwWvgwwwwvwxxxxwxxggfvWvfwvwwwxwfuvhwwwwwxwwwfwwwwvxwxwvwwhxxxxxwwwwwvwwxxwvWvwxxwwxwgvvvwgxwxxxwvwghwhwxxwfuvxvwwvwxxwwfxwwwwxwwwwwxvwwxwxwfgwwwwwwwwwwwxwwwgwwwwWvgwxxwvxxwwWvfwwwwxxxwwwxxwwwxwwgwfxwxwwvwxhwwgwvgwxxxxwwwwwwwxxwxwgwwxwgxxwwxwxxwhxxwwwwwwxxxwxxwwhfxwwxxxwwxwxvwhwwwwvwwwwwwwuwxxwwwwxgwwxxxvwvgxggxgvxvwwwwxwxgwwwxwxwxxwwxwgwxvwxgwwxxwvxwxgwwwwwfwwgwwgvwwwgfgwwhxgxxwwwgwgwghgwvxwwwwwxxxxxwwwwxwfVvwgwwwghwWgwwwwwwwxxxwxxgwwxwwwxgwfxwwwxxxxwwwWwWwvwgwwxwwggWvxwhxxxwxwwxgwwwgwxwhhxxxxxwgvwwfvwWfgvfXwWgggwgwwwwhxgwgwwgwxhfwhwxhwxxhxxwxxwwhvvgwhggwfXwgWfgwwwxhghhxwgxxxwWwwwwhwwxxvwwggxxwwxxhxhvxwgwwwvwgvxwwhgwwwwwxgxgxhwwwxwvwxwxxxxgxxxxwxgxxhgvwwgvgwxgwwwwgwwxwgwwwwgwgwxwgxxwxvxwxwxxxxxxgwxwvgwxgwvgwwgwvvwgwxxxwvwxxgwwxgwxxwhxxxxxwvhwhwwxvwvxwgwWxwwhwhxwgwwwwgxwxwxxwxvxwxhhxvxxwxxggwwwvvxwwvvgwxuhwghwhxwwxvxwwxhwxwxxwwwwwxxxhxhwwwwwgwwwwwwwxxwwwvxxwhxwwxxhwvxwxxxwxwvwwhwwxwxxxxxwwfwwgwfhwwvwxwhgwwwxwxgwxxvxwxWwxxxxxhxwxwwxghxxwgvxwwghwxvwwxWgWwgwxxhhxxwwhxgxwxwxwxwxxwxxgxxhwxhgxwwwvwxwxgxgwwwwwxxxwwxwxxhhhwxwwxwhxxhwwwxxwwvwxxvwwhxxxxwwwxxxwxxxxfgwwwxxxxwxxwxxwwxxvwxwwvvfxwwwxwwwvvfxxwvwxwvxwxwwxxwgxwwwwwxxxwxwvwxwvvwxgxxxwvwwwxvxwxwvvwfeugxwwvxxxwwwwxwwxxwwgvwxwwvvwxhwxxxwfvfxwwxxwvwhwxwwgfvwwxwhxVwwwgxvwfgwhwwxxgwxxxgwgwxwwwvvfxxgwwwwxgwwxfvufxwWvxxxxwwvgwxwwxxgwgxwwWwwfxxxwwwwxwxxxwxxwxwxxwwfugggwxwwwwgwwfxgwvwwwxwwwxgvwxgwhwxhwwwwwwwwhfeuwxxxwxwxxwwwxxxxwwvwwwwgxxvvvwgwwvxgwwwwwxxxwwhxxvwwvwxvgwxwvwxxwvgxwhxgwwgxwgwvwwxxwwwxxxxxxxwwwwxvwxvwxxxgwgxwvXxwgxwxxxxwxxwxxwwxwxfugxxWvxhwxwwwxxxwhvwxwwwvwfwxxwwwvwwwxggwgxxwxxxwgxwwwhxvwxxxxxwwwwwwxxxwxwxfwxwwwxxxvxwwhwwwwvwwwwwwwwwwwvguxvfwwwwwwwxugggfwgwwxgwwgwwfuwgvwwwwgwgfwvwwwwvwwwwwuwwwfvwwfwwxvwhfwvwwuVvwwwwwwwvxghxwgwwxwwWvwwxwwxxxwfwwwwgwxwxwwfwvwxxwxwxxwwvfwwvwwgvwvgvwwvgewwxgwhvvwuwwwwxvwwwWxdgvfxwgvwgwwwgwwfwVwgwwWvwwwxwggvwwgwgxxXgvwgvvfwvvgxxwguwgugwwvwgxfwwxgvwwwwvfwwfwwgvwwgvxWxwwwxvgvvwvgwWxwGwwxgugwfwwggxgxwxwwwwwwwwwwwxgwuvxwxfwgwwwxwuXhwwvxgxWwxxgvwwgxxwwgxxxxwwwwwfxvwVxxwxvwvxwxwxwxxwwgvwwfwwxgwwxwxxwwwwvwvwwwgwuwwwwvvxwxwwgggfvgwwwhwwwwxwxxwwfvgvwgewwfwwxwwgfxxvwwwwwuwdgvfwwxxwxvuwwwwwwwwgwgwhwwwxvwwwwwwxxwvwxwWwwxwwwxxwwxwxvxwvwxvxwvxvwguxxxwxwwwxwgwuuwvwwxfwwwwwwwwwwuvwwxwxvwggwvwwxwvwhwwxwggxwwwxwgvwhgxwwxhgwwxgggwwwwwhvvxgwxgwwxxxwfwfxhhxxwgwhwxgvwgvhwgwwwxxwwwgvwxWWvwxwxhwxXxxwwwwxxwwwvxhxwwgwhwhvwwwfgwwgwgxhxhxgwxwvwvwxxxwgvwgwwvwgwgwfwewxhgwwvxuxxgxgxxwwgwhwgxwxwwgwwwxwwwvwwwwggwwxwvwxwxxwgwgwwwgwwgwvvwwwwwxgvwwvwwwvwwvwfwwwwwwxvwwwwwvwhxxwwwxxwwwwxwwgwhwwwwvfvxxxxhxxuwxxfwwxwxXvwwvgwwwgvwwwwwvwwwgwxvwwwhxwwwWgwwxwwwvuxgwxhhgwxwXwWgVxwwwgvXwgwwwfhwxgxgguxxxwwuhvvvwxfvxxWvxxxwxxwxxwwwxgvwwwxwwwwwwwwxwxwxgxvxgxVwwwwwwwxwwwwhgxwxWhgxwwhxvwxwwhwwwxwxxfwwxxxwwwxwwvvwxgwwxwxwvwwxxwhwwxwxxwwwwwwvwhxwggwvwxgwwhgxfwvxggwxWfwxwvwxwwwxgwwgwgvxxxwwwwwxxguwvxvwwgwwvwxWwwxhvwwhvxxwgxwvwgvwwwwwuwwvxvwwwuvwhvwwwvwwwwwwgvgwWwwWvgxxfvvwxwxxwWuxwxhwwxgwgxxwwxwxxwxwwxwxwgxgxwwguXvgwwwwxwwxvwwgvxwwwwwgwxwWwhwwxwvwxxwwvfwvxwhgwxgxwwvwwgwwwxxxxwxxxxwxwxxxxwwxxwwwhwwwwwwvwvvhxXwwwgwxxxhwwxwxgwwwgxwhwhWvWwgxhxvhggwgvwvxwgvxxxgxxwwwxxxwwwwwwwwxxwxwwgxvwxxwxxwwwwxxvxggxxxwxgwxwwxhhwxwwwxvwwfvwwwwxwwvwwwwgxwwwwxgvvwwxwwwhxgwwwwxvxwgggwwgfwgwfxvwxwxgwxxwxxwwwgxvwgfwvwwxxxfwwhwgwwwxwxwwwfvgfxgfvxwgxgwgxgwxxxwwfwwvwvwxwxwhWwxxxxxwxwwxgwgwfggwxwwhwxwwwwgxwxwwgwuwvwWfwxwgvWwvwwxxxxxguxVevwgvxwwgwWgwwwXxwxxxwgffvwhxwgfxhwvvwwxxvwxxwwwggwgwfGvwvwxwwhgwwwxwwwwxwwwwfwghgwgxgxwxxgfwgwwwgwxwhwgwvwxfwwhwxxwvwxwxgwxhxxwgwwggwxwxxwgxvwxxwwwxwwwxwwgwvxhgvhwxfwgvxxwwxgxvwwwgwwvxxxxwgwxxwgxgwxxgvxwwgwxwxxwwwgvwgxwxwgwvwfhvvxwvxxxwwxwxxxxvwgwvvvffxwwhwfwwxwxwvwgwwwxvxwwxwxhxxxxvwwhxwxxvxwgvgwgwwwhxwgwwxxxwxxvwvvwxgwwfhxxwxwxwwwxwwxwxfxfhgwwxxwwwxfvfxxxwxwwwwgwxwwwvwxwxvgvwwwwwwwvhgxxwwwxxxwvwhwwxxwxgwwhxwxhxwwhgxwvwfxvxgggxxwxxwwfwxwxwwwwwxxxxggxwwgfgxxhxxxwwxhxwwxwxvwwwxxxxxxxhxwwwwwwxxxxwwxgwghwxhwhwwhgwxxgwwwhwwwxxwwwxwhxwxwwxvvwxwxxxxwhtwwxgvwwwgvgvwwwwfVfwgwvwwxwgvxxfvvwfVfwwggWuwwwxxvwvwVegfevvgwvxwgwgfwgfwgwggfegwvvvwvwtgwwffvwgwgdWvfwwwwwwxwgvwxvgwwvvgVfwwwwwwwxwxghxwwwwfvvwwwxvvwxwxxxxwwffegwvvwwwgxWfgwfvwgguVegwgWvvvwuwwwwvxwxwwdvwfwwgwwwwvwwwxgxgVexwgvwgwvwVewwgvvvwgggwwwgvwvvwwfvvwxHggvwwgwvtvhwxwxwwwwgwgwwwwwwfgwwgvxx7vvwgwgwgwwwwwvvguwwgxwwvwggwgwggvwwxgwwwgvvvwwwvwgxggvwwfwggxWxwwwwwxXxwwxxuwwwxwxggwhegwwgggwvwwxgxxwwwvgwwgvwWggxvgvxwxwwghegvwwwghvwgxwwwwwwgvwhxwwwwgVfwwwwgwvxxxxvgvwgwfvvwwwxwwwwxgwwxxwffevvgwgvwuwwwwffgvvwgdwgfwwwvwwwwxVxgwwwwuVegwwgewwwvwwwxxfvvwfvvwwwgvwwuwwgwxgxwwvfvvwxxwxxgxwxwvwwxgwwwwwwwxwuwuwtgwwxvgwdgufvwvwwwwvwwwwvwwwwgwwwwxwvxvxwwwgvgwvwwwwwxXvvwgwggguwwwxwggwwxxwxxwxVxwxxvwhhfWwgwvwwvvxxxwwwvgwwgvwgwwhwgwxgxwxwgxwhfWvwgwVhvgwwgxxwwwfvvwHwwxxtvhwxwxwwwxwhvVvwwxxxxwwxxwwwhufvgwxwwwxxwwwxwhvVwwwwxwvwvwwwwwxxxwhufwwwwwxvwwwwwwwvxvxwxvgwgwwxwwwgwwwggwwwwvwwwgvwxwwhwwhuhwgwwxgxxxxgggwwfUwvwwwwwvxwhgwgwggwwXwwwwwwgwwgwwwxvgwwwfwxwgwwwxxxwvwwwxgVvwwwhvgfgWwgwwxgwxwwwggwwvwhwgwxwggwwxxwvxxwwhhgvuxwwwvwvhvuwxxgwvhgwwxwwgwxxwwwxhwwgwxwwxwwwxgfuwggvvgwwxwwxwVfvwwvgxvwgwxwWfwxwxwwwgxxWvgXwwwwwhvxxwwwWfgvwgwgwvfwwvgwggVxhWgwwfwxxxgWwgWgwwwwwwgwgwgwgfwxggwxwVwxwfgwwwxwgwxxwxWvwgxxwhwgwwgwwwhxxwxwxhwXwxwgxxxxwwWwwwwggvhwgwgfwgwwwxwwwwwwwgwxwwxxwxwxgxxwwxxwxwxVvwwwgwxwwxfgggvgxwwgxwwvxgwwxxgwhgwwwxxwvwwgwfhwvxvwfhwfgwwgwwwxxgewwwwwgxxwvwxxxwwwvxwhwvwwwWwwvxxxwxgvgwxwgwxxwwggwwgwgwxwxxwvWwxvwxwwxwwwvxwxhxwxwwwwxwwxwwxwwxwwfxwwwwgwwwwwxggwxwwwwfgwwwgwxxgwvXwxwgxxwxhgwfwhxxxwxhgwwvxwhxwggxxxgwwggwgfvxwxwgwwvVwxxxWwwxgxxvgggxxvxxgxwgwggxwhwwxwvwwxwwxxxwwwhgxxwxxhwxxwwxxxxxwvxwfwxxxxxxwwxwwxxwgwxwwwwwvwhxhwxxxwxwwxwxvxwxwxwvwwwwxwwwwxxwwwwwwwwxxgvvwggwffvgwwwwxxxwwgwwwwwwwxwxxxxvwgvvwwgvwwwwwxwwvwgwwwwwxxvvwfgwfwvwwxwwxhwwxgxwgwwwxwxxwwvxwVegfgxwxggxxwwxxwfwwwxxxhwwxxxxvwfvfwggvfhgggwwwwxvwxxvwgxwgfhvhfwxxxxxgvxxxxygfwvvwxvwvwfxfwvfwgwwvxxwwwwwxwwxxweefwgfwwwgffwwwguwvxwwxxwwgvwxxgwxgvwxxxxxwxwxwwwgvvwwwxwvwwxxwwxwgxwxwxxgfgvvgfwwwwvwwwwwwxxxxwwxwxxwxxxxwvvgvwwwwfvwxwwwwxwxwwgwwxxxxxwxfwwwwvwwwwwxxwwxhwwwxgwxxwxxxguwwvwwwxwxxwwgvwwwxxxwwxfwwgwwxxhwwwwgwxxwxxfVgefgwgwwxxwxwgwwwwxwwxxxhgwvwwxxxxwwwxwwwxxwxwwvwwxxxhxwxxwvvxxxxxxxwxwxwxxwwwwwxxxwwxxwxwxwwwwxwwwwxwxxwwwwxvwgwvwwwhvgvwwUwvwwxxxwwwggvwxwxvvxwgvvvwgwfwwwwwwwwxwwfwwwwwwwwwwwwwwxwwxwxxwxwwwvxwxwwhwwgggwxxwxxwwwxwxvwwwwwwwwwwxxvwwwwwgwxwwxwxwxxxwwwxwgwwwwwggvvwgwgfvwwfvwwxhxwwxxwxxxwwwwxxxxxgfvwgggDfevggwgfvwvhxwXggwgwwwwfVVwwxvwwxwxwwhxwgxwxwfwvvgvwwwwwvwxhwgxxwwwwxxxxxfwwwwxfVVwxgwwgwwwghwwvwwvwwwgwwwxghwxvwgwhVewwwwwwwxUvwvwxwwwxwxxxxxvfgwfwwwvvwwfwwwvwwwwwxwwxwgwxxxxxwxgvgwvwwwwxxwwwxxgwxwwxxxxwwvvxwxvwwwwxwhwwxvxwxwwwggvvwgxwgvwwwfwxwxvwxxxxxwxxxwxxxwDefwxvwwfgwwwgxxvwxgggwwxxxgvxwxxhwxwxwxwwxwxwwhxxwxwwxxxwwwxxxwxxfxwwxxwwwvxxxwvwwxgxwxwwxwwxxwwwwwuwxwwwvxwwxxwwwwvgwwwxxxwfgxgwwxxwwwwgwvxwgvwwxxwuWwgxxxxwgwwvxgxwwwgxwgxhgwxwwwwwxwvvgvwvwwwwwxwxwxwxuvwwwfgwwwvvwvwwvxwUwfgxwxwwwwwvvxwwxxxxgxhwwwxxwwwwxvgwWvwvwwVwxwxxwgwwwxwxgwwwxxxxwxxgwxwxwffwwgwweggghfvwfgggxwxxgwgxxxxwgwwwxwwwxxwvhwxxxxwxxwwxgfwwvfwvvwxwvxwvvwxwvvwwwxgwwwwxwwxwgxxxxxxwUffgxwwwgfwgwvvwgVgxxxxwwwwhwuwwwxxvwwwxwwxwxgxxxxwwwwxwhvwevwggwwwwwwxwxxwwxwxxxwwwxxggWwwwwvuwgvxwgfgwhwxxxxwxvvxwhwxxwxwxgxxwfvwwwxwxwxfwwxvxwwgvwxxyxxwvwvWvhwgxwuwwxwwWvvwwwxhwxxxxwefwwwvgwwvgwfwvwxxwxhxxxxvwwvxwxwxxwxgxxxxxxwVVvxwwxuwvxvvwwwfwgwxxwwwwwvwwwxwgwxxwxxwhhwxwxwwwvxwxvwxwwwgvxxwwwxxxxxxwxwxxwxuwvgvwwwwwwwwxxwwwwwxwwxwxwgxxwwwwxgwwxwgwwxwwxxwvwwwxwwwwvwwwwwxwfgxwwwwwxxwgwwwvvwgfwwwwgvwwhwwfuwghwfgwfvvwgwwvfwwwwxwwxwxggwgwdVwwwfuwwefwgwwwvwxwwgvwwfvwhxwvegvvwwfvwwwwvewwwwvwwwvwffgfewwxxwhwwvwwwwwwwwgggVwfwffgwgvwwxfwwwwvwvwxxwwfwwwvwgvwxwfvgwxwxwxwxwwgxgwvwwvwvxhwwhwxwhgwxxwxVvvfwwwgwwwwwwwwwgxhgfgxwxwwwdVvwVuwvwvvwwwvwwvwxwxwfvvxvxwewwwwwvxgffwwvwwggxwvwwwvgwxgvvwVwVgwwwwwvwgfwywwwwgvgxgvwwwfwwfwwwwwfwwugvgxwfwwxhwwvwwwwwwwwxxvugvfwvwevwxwwwwvfwwvwxvwwwxfvwwwvwwwwwxxxxxwgwwveuwgxvxwVdwwwwwwwxvxwwvwhxwwwwwwwxwwxwhUdvwwwwgvxwxxwgxwwxvgxwwxwwwwwxwgwwxwWwvwvwwwxvwhwwwfwxwxwwxwxfwwwxxwxxwwwxxgxvgwwwvwwgxwgvwwwxwwwhxwxgxwxwwwwfwwgxgxxxwxxwwgxhwhgwwevwwxwvxwxxxwggwwwxwgwxwxwwxxxxxxggxvwwwgwwwwwwxwwvvwxfuwwxwwxhgwxfVwwxwxxwwwwwwgvwwgwwxxxwhwwvwxxwwggvwwfwwxwvhwvwfgvwgvwwwwwwwwwwxvwwfgfvvgwwxxgvfgxxwxxwxwwwwgwwgvxwxxxwwwwwwwwwxgvvwgvwwffwuxwxgwwwfwwxxwgwvwxwwwxxgxxxfwwwwVwvwwwfwhgwwwhvxwwwxfvvwxxwwwwgUgwfggwwgvvxxxUfvfwgxgwwxgWewehwwxwgvhgVwvxxghgwxwwwgfwwvwxffvgxhxwwghxwwxwwxxxwwwxwxwxVegfxwxwxwxwVwgxwwwwwwwgxxvwwgvwxgwWxxwwxwwxvuxgwwwwxwUVvwgwxwwxfxxxxwxwxxugwwwwwwwfvvwgwfxwxxwwxwxwxwwwwgxxxwxhwwvwxxxwgvwxxwxwxwwwxgvwxxxwxwvwwxwwxwwwwwxxhwfwxwwwwfvvxhvwxxxvwxwxwxxUfvfwwxwwffvgwxwgxxxxwgxwxXxwxxgggwwxgwgxxxxwxxxxxwwwwxwwwwxwxwxxxxxxxxwxwxwgwwgwxvwfwwwwxwwwwxwxwxfxwwxxhuwwwWwggwwwfwgvugwxgwwxwfffwwwwxwgwfwwwxgvWgwgwwgxwxWvfggVvwggvvgvwhgEtvwWxwgfvvwvwWgghWfwwWwvfwwWwggwwwggwwwwwggwwwxfWgwfwvvfWvgvwhwwvxwwxwvvwwwwgwxxwxvgwxvgwwfwwvvwwfwvffvwghwVgwwwwxwwvvhvgwxxwggwgxwwxwwwegvwwevwfWUvuuwgVwwgwxffgggwwfwfvwffwvgwxGUvgxgwwwxxxwgVexwWwVguvvvwggWwgwgxgwgvHxGXdvfwvvfWwwwghxvxWgghhfgwxghvwwvFvwfvwwvwvxwWUwgwgwfwwwgwwvwxxxwwvwxwhhvwxxxwwhxxwgfvvwgggvgwwvwvwWwWXgewgwWwwwgfwwwgwxwghwwxwgvvwxgwfwwvwvxvfgvvgfvweuvwvFfvffwWvxwxwvgvwgwwvwxwwwxxxwwxxfWwvfgvgfvvgwwwwufvwggvgvvxwwgxwvwvhwhgwwwwxxwxwxhhwxwhgWwwwgwfxwwwxwgxfuwwwwxggvwxvxwxwxxvwwwwgwwvwwxwwwfvxggwwwwwwwwxvwwxwwgwwvwwxvxwwwwwwwvwwwwwwwwwvwVfvfxwfvwwwwhfVvwxwvWfwghwwgwxwwwwgxwwwwvxwhhwwwxxgwwvffwwfgwWWwwfwgxwhfwWHXVwgwwXvwxxxwggwgxgwhvwxXhghggHxgwWvwxxvwxwxwwxwwfxwwwgwwxwwwxxxwxwwwwwxwwxxwwwvwxwwwwvwvwgvvwwvxxWfvwgxwhwwgwwxwwwwwWxWwxuvwwwwwwxxwwgwwxwwxwwwvxxxwxwwwwwwwwwVggggvwwwwwgwwwwxwwwhxwfwvwxxxxfgwwwxgvxwwwwwwwwvwfwwxwwuwwwwxxxwgwwxwxwfvwwvwwwwwvguwxwwuwwfwvvgwxXxwwxwxxxxvwfxgwwguwxwhgGvwwxgwwwxfggwfxxxxwxwxwwwxxxxwxfvfwwgvWwwxvwvwwgwxxxgwxxuvwggewxwxxxwwwvwxxwxxwxffvwvwgwwvxvhwuwwwvwwwxxgvgwwxuxwgwwwxdfgvgdwgxxxwwwwvwwvhwwwwwwwgggwxwwxwwwwwXxhwwwwfwwxvwwwgxwvwuwghxxxwgwwxgwwxwxxvgfwwwwwwxxxxvvwWxwgwxxxwwwwwwxvxwxxxxvvwwwwwwwwwwwwwwgwvxwwwxwxxxwxwvwwwwwgwxwwwxwxxwxgwxxwwwwwwtvwwgxwwwwxfwwvxwwwxvvwxhghxhxxxwwwxxxfGWvwvwwxxwxwvwwgxxwfwxxxwgxwxwxxxwgxxxwwwvwwwwxghwgxgwxwwxwwwwwwwwgxhwwwwvwwwwgxwwwwwwxwwxwwxxxxgwxxxxufwwwwwggwvgwwvwgfvwwwwwwwwwwwwwvhwvvxfwvxxfuvwfwuvgwvevvwvvwvgwwwvWwvxwvgvwvwvfwvwwwfwwwfxwgwgvwwhvxxvfvvwvwwgvwfvwuggwfwwxfvwwggwxwfvxufwwwwgvvwwwvwwxwgwufvwvuegvwwwxwwwvfwfwwegvfwwwgwuvwvxfgwwWwfvwwgvvhvwWgxuuwwwfvxfWvvwxgfvVwfwvffwwwwggXvwwwwfwwwhxWvvwwwwhvgwfxwhwfevvggwwwwvxwXvWvuwwwxgvwgghvwvfwxwwhggwhhggggWgwwwxhxgxgwwgVvwvvvwvvwwwwxfevwwggwwwwxvhgwgvwwxwwwwUvhwwwwxwwwwwwwxwwfffvwvwgwweevvwwgfgwwxwwwwewwvxwgVvwgwfwewvwgwwwwvvfwuxfvgxwwgfwwwwwfuwwwwwwwgggvwwfwvxwwwvxggwhhvgfwewvfgvwfwgfvvgwvvwfgwfvxgwfvvwwxwwvhwxwwgwggvwwwwwwgvwwwwwgwwxwvuwvxwewwwwgwvwxwgwwwwwvwvxxxwwwwfvwwwwxxwwxwwwwwwvvwvwgwvwvgvwvwwwxwvgxvwwwxxhwwxwxxxfwwwfffwwwgfwwgxwfuvwhhwwfwwfxgwwvwwxwxwwWgWgxxwwxxwxxwwxxxvvvwwxwhxwwhxgwgvwvvWhvxhgvwwwxgxwvxhwhwwwwxwwhxwwwxxwuwwhwgwXxgWgvwwgwggxwwgvwwwwxfxxxwggwwxwxxwwxwxwwxwwfwgwggfwxwwxgvvwwwvwwwwwxwvwwxgvggxwwxwwwwvwwwgwvgxxwgwvwgwwwvwWwvwwwwvwxwwwxwwgvgvfwwwwwgxwwvwfgwfvwhewvwwwwvvwxxwgvwwvewgwwvvxwwxxwwxvxxvwgvwwgwvvxffvwfwxvfwwwwwwwfwvwxwwwxxxwxxxxgwfewgwfvgxwfvgxxwwgwxwwwwgwwxwvxwhxwwxwwgwggewvWfgwwfwxhVgwwxwwfvwwwvxhgwwxwxvwwwfwvxvwxwgxgxwgfwvwgxwfwwXewwfwwxwvhgwvwWhfvwwxwwhxxhxwhhhhghgxxvxwhgfvvwwfvwwwvvwwhgwgwwwwgwwvwxxhwwwxxxxxwwfgvwxxhfwhwgfgwwwwwggXVwfwwwffwwxhxxwwewxhwxvwwvwwgwxhgwwgwwwwWvwwwgxgfwwxwxwhwwwvwfwxwwxxwxxxfggwwwxwwwxwwwgxwwgwwwxwwxwwwxwxxhwxxxwwwxwwgwwwwwwwwwwxxxfgwwwwwwxwwxxxwxxwwwvwwxwwxwwxwwwxwxwwxxxwwgwxXvwwwWwwgwwxfvgvxwwXxwwgxwwxwwxxxxxxxxwxwxxgwgVwwhvwgwxwxwwwgwXXhgwwhwxvxxxhxwwwwfghwxvwwwvxvwvwwxxvxwwwwwgxxwvwxxgwvxxwxxgxxxgvgwwxxgxwxvxwwwwxxxhvwwgwvvwxxexwwxvxgxvxwgwwwwwwxwwxwgwxwwwxgwfwwwwxwwwxxxwwgwwwwvxwgvwwgvwhwwwxwhxwvwxvwfwxwvwwwwgwwwxwwwwxxvxwxgwwgvgvwwfwwvxwvwwwwwwxwwxfvwgwwWugfwwxwgwwwwwxwvwwffwwxxgxxwwxxhfvwUvfvffvvxgvwfggwwhxxwxxgfwgwwwwwxhwwwwxgxxxxxwxvgxVugvwgxwfwgxwxwxwvxwwwxxxwwxgwxfffwwfvwwxhwggwwwxxwxwwwhvwwxwwwwxxxwwxxxxxvvweUgwxwwwwwxwwwfwxwxxvgwvwwwvwwxxwwxxwwwxxwwxxxwxxxxxxwgwwgwxwxxxwwxxwwxxxwwwxxxwwwwwwwwvgwwxwwwxxxxxwwwwwvwwgxfwxwxxgwxxxwwwwxxyxxxxUffwvwwgxwwxwwxxxwwxwxwwwgxvxxwxxwhvxwwwwwxxwxxvwxwwxwwwxwgwxxxwxxwxgxwvwvvhwgxwxgxwwwwxxxxxwxwxxvvwvwwwgwxwwwfwwxwwwwxgwwwwwwwwwwwwwwxwvwwwwwwgwgwvwwwwwwwwwwwwgxgvwwvgvwwwwxfwvwvgwwwxgvxwwvwfUfwwwwgwwvwxwfvxwweewwwwwwxwvwxwwwwwxfvwwgvvvvfxxwwwwwwhwwwwxwwvwwvwxwvwwwxwwwwvvwwgwwwwgwwwwwgwxxwxwwwxwgwwwxwwwxgwxxwwwxxxwwwwwwwwwwwxwwxwwwwwwwwwxxwhhgwwwwwwhwwwxgwxwwwxgwwxgwxwUewgvwwwgxwwfvggwwwvxxwgxwfvxxwxwvxwxwwgwvwwwggwwwwwhgwxgwgxgxwxxggwwvwwxwwwwxwgwwxgwvwwggwgwwwwwwgvwwxwwxxwgwxvvwwvwxxxwvwxxxwxgfwvfwvgwwxwfwgxwvwwxwwwwxhwwwwwwxxxxxxwwwvwfewwwgxvwgfhwwgxeewvxvvwxwxvgxxwwwwxweuvxwvwwxwwwxwwwxfhwvxgwxxxwwgwxxwwwxxwvwxgwvgwwwwwwwxwwwwxwwxwwwwxwxwxxgxwxwgwwwgwxwwwwxhxwwwwhhgwxxxxwgwxwwhxxxwxxwxhhwwwxxwxfwxwhvwwxwggfwwwxwxwxwwwwwwwxxxwwwxxvwgxgwwxwwwwxxvwxwgxwwxwwwwxggwwuwhwwwfwfwwwwgxxfwgwfwgxxwgwfwwxghwfwwwwwxwwwwwfwwuwvwvwwwfwfwwfwxxwwxhgwgwxxwwxwwxwvwwxwwhxxxxwwWvwwwgwwwwxggwfwwwvwxwwwwwwxwwwVgvwwxwxxxwxxgwwgvggwvwwwwwWgwwwwwxwwwwwwvwwwwxwxxxxxxxwfwxhUfwwfgUgwxWgwwwwwxWwxuwgwwxxwwgxwxxxwwxxxxxwxxxUwwwwwUgwxVwwvgwwxxgxwwgxhggwgxhvwwvwgwgxxxgxyxwxxwwgwWwwfvvwwwfwwwxwgxhwxxxxwxwwwwxwwwxgxwwxxxxxwxwwwwvgvwwwwgwwwwxxxwgwwwwwwwwgwxwwggWwwwxxvxwxxvwgwwffxvwvxvwwWwwwxwgwxwwxfwwvwwwwxxgxwxwwggwwwfvwwwxvwgxhwwwhwwvxwwwwxwxhxwxxwxxxxxwxxwwvvwwwwwgwwwwwwwwwwwwxwxxwwwwwxxxwxwxxxxxxwhgwwwwxwwwxwvxgvwgwxxxxwxxwxxwxgfgwfwxuvwwxgwhghxvxxwwwwfgwwxxxXwxxxxxxxxgVfwggwwvwwXwwWwhwxwxhwWhghwwwwhxxxwwhxgwxxxhwxxwxxwwgxggwwxxwwwxghhwxxwxxwxxxwwwxxxwfxwgwhwwxwwhwwxwwxxxxwxvxvxwwwwwxwwxwwwhvgwwfxxwwvvwwxxwwwwVvwxwvwwwgwwwwwwWwwwwwwwxxwwwfwwxxwwgwwgwwwwxwwwwwxwwwxwfwwwwxggwwwwvxwwxwvwwvwwwxwvwwxxwxvwwvvxwwwxvwwXwwvwwwwfxwwfwgvwwwxxxwwwwwxxWfwwgvvUggfxwwwwwwxxgwxEeufggwwwxxxxxxwwwwxxwxxwwwwvwwwxwwewwwxxgvwwxxxxxxxxxwxgxxxxgwUfgfxvwxwwwvxwwxwxgwwwgwwwwxxwxxxwvwxwhwwxwwxevwwxxffxxwvwwfwvxwwvwvgwwvwwwwvwwwxxuxxxwxvhwwwxwwwxxxwxwwwwwxwxxwwwwwxwwwwxxwxxxwxwxwwxxxwvwvwwwwxwwwxwxxwgwuwxwxwxwxTeufwvxwwhxwvxxxuwwwxxwxwxxxxxwwxwwxwwwwxxxxvxxwwwxwxwwxwwwxwwwxxxwwwwwwwxxwwwwwwwwwvvwwwgwwwwwwvxwxwvwwwwfwwwwwvxwxwgxgewwvvgwwwwwwwvwwwvwwvvwwwwwgwwggwwwgvvwxwgwwvvvwwwwvvxwfgwwwwwwwwwvwgwgxwvxwwwxuwwgwwwxwvxwvwwwxwwfwfgvWguxwwwxvwwwwwwWxvwgvhvwwvvxwwVwwgvwwgwwwfgwggxwggwwxwwxwwfwwwWvvwwvwwhwwxgxwgxwwwwvwwwwfgwfwwwVxwgffwwvwwWwhxxgxwvvwgVhwxwxgwvwxwwwwwxxwwewxffvxwxxgwvwvwwvxwUxwxxwwwvxvxxxwxwwgvvwfvgwwwvgvfxvhxwxwxvwxwxwxwffgvwwxWwgwwwwwwxwwvgvxwwwwvwwwvxwwxwwwvwwvwwwfwwwxwxwwwwwwwwfwwwwwwvvvvwgwwgwxxwwxuwwwwwxhxwxwwxwwwwxxvwwwxwwvvwxvwwwwfwvwvwwwgxxgwgwwwwwxgwwwvwwgwxfghvgxwvwwgwvwgwwwxwxwvwwwxxwvgwgwwwxwwwxwwxgwhxxxxgwwxwxxwxgxwwxwwhwgvwxxwfvwwwxwxhwwxgxgxvwywwwwxggxxxgwvwwxxgwwwwwwwxwxwwWwxhwfxxxwxgxvxhghwfwwwgxwgwxwxxvwwgxxxxxxwwgvwwwwwxvwwwwvgxxwwwxfgwxwwwwvwwwwwxhwvwwwwvxvwvgxvwwwwwwwxwwxwwxwwwwvgwxwwxxwwwgxwwvwwwwwwwwgvwvvxwwwwxwwwwvxwgxgwwxwwxwvxwwvxgwgvwxwwwwgwwvxwxwwxgwxvwwwwgwwwwhvwgvxwwhwwwwwvxwgwvvxwwhxvwwvgvvgxvwwwwwgvwwwhgxwwwwwgwwwxwgwgwvwwxwxxxwwxxxwwwwwgvwwxhvwgwwxxxwwxfhxvggxwgvwwwxggwwhwwxywxgxvxwxwwwvvwvxwwwwwxfxwxwwvwwwwxwwxxxwwxwwwxwxwwwwwhwwghxvxwxwwgwwwwwxgvvxwwwwxwhgwxwwxwwxwgwwwwwwwxggxwwvwwwwvwxxxwwxwxxwwxwwxwwwvxwgwgvwwwwxgvxxwxxwxwxxwwwwwwwwgwvgwwxgwwwvvxwwxwwhxxwgvvxvxvxvwgwwxwwwwwxxxwwwxxwgxwwwxwwwwwgxwxwwxwhwwxwwwxxxwwxxwxwxxxxwwxvgwxgwwxwwxwhxvxxxwxywxxhwxwxwhxgxwwxxxxxxxwxwwwgwwwxxgxvxwwxgwxxxxxwwxxxxxwxxxxwxwwxvgvxxwxwxwwwwwxwwwwgvwwwxwxxuvfvvwwwwwwgwgwwwwxwwwvvwgfvvwwwvwwwwwwxwwwxxUvfwvwgwwwwwvgvwwwhwwwxwxwwfvvVwvwwwwxwhvwwwwwwwwwwwVvvwvgwwwwwgwwvfwwwgvwwwwgvwuvvgvuwwwVwwwwWwhxwwwuwwvvgwvvwwwwwgvwwgwvwwxvwwwwffvvUvvgwwgWxwWgwxwwvwgwwwvwwtvxgfvgwgfwgwuwWwvfxwwwwxxwwVvwwwgwwvwwwwwwwwwwwxwxwwxxwfwfFwvfwgwgwwWwgwwwwwwxxwgxwwgwwwwwwgxxwgxhxgxwhhxwxxxwxgwWfwvvwwgwxwwwfuwxgwwwwwxgwwfvgwwwghwfgvwxwggwgxxwhwwwfggwevvwgwwfwgwuvvwwhwwwxwgxwxwghwwxwhwgWwwgwwhwfxwgwwxwwwgwwwwfvwwwwhwwwgwwggxVvuvwwgwvwxhwwxwhwxxhwwvfvewwvfwwghwvvvwwwgwxgwxfvwwggwgwhwxxwwwwwxxxwwxwwwfvwwgwwggwwwwxvxgwxxgvvwwwwwwxwwwxgwwwwwxwwhxgwwhgwwwfxgxwwxxwxxwwvwfxxwxvwwwgwwwxwwwwwxwxxxxwgwffuvwwwwxxxvwxxgwwwwxxwxxxxfgvwwgwwwhxxgwxghhhwhgxwwffwxgggWxxgwxxwxwwxwgwvxxxxxxxwhwXwwgxxwhxwxxhxxxxwwxfvwwwwwwwxwxxxfwwwwwwxgwxwwwxgwggxWwwxgfgwgwwwxwwwwxgwwxwwwvgxgwgwxxxgwwgxwwwWwxxxwwWuwwhwvxwvwwwwhxvwfwwwwwwvwwvwwgwwwwxwxvgxwwwwfggwwwwwxgvxwxwwwvgwwwwwwvwxfvuwwwxwwxxgwwxwuwxwvvwwwwwwugwvvxWvvwwwwxwgxwxxwxxwwwwwxWwxwxwwwuwwvvvvfuxwvwffvvvxwvvwwwwvwwwwwwwxwvvwwwxwxggvgwgwwvwwwgwxwwxwwfgwgwwgwvwwxwvwwwwwwwxwwwwwhfwhxxwxwwvwxwwwwhwwvwwgwwxgwgwvwwwwxhxxxxxwvwwgxvhxgxwwvvwfvxwffwwxwvvwwvwwfewwwwwxxwwvxxfwfxvxwghwxwwvwvwfvgvvvhguvwwfxwwwxwwxvvwwXwwwgwvwwxwwxwwwwXwxfwxfwwwwvvWwwwwxffwxhgwxwvxwhwvxvwvwwgwuwwvwwwwwwwwwwvgvwgxwwwvxvwwgxxwxwxxwxxgwwwwwvxwxgfwxvwvwwwwwvwwgwhwwgxxwwhxvxxhwwwvwwvxvxwwwuwwwgxwvxwxvwvwwwxfwwwxxwwwvwwwgvxwwwwwhvwwvwhvxxxgwwwxxwxwwgwxxwxxxxxwxwhgwvwwxwxwhwxwwvwwXxwhwgwxwxwhxwxxxwwxwhxxxwwWwwxwxxvwwwwwwvwhxxvgxvfhwhxxxwxfgwwxwhvvwgwxwwxwxxwwxwwxwxwugvwxxwwxxggwwxwhwwhxxtwwwgwggggwwwVgwwwwwfwwwwxfwwwfgwxvgwwwwgvwwxxggwxFwfhWggwggfwfWgvwgwwgwgwwwgvwwUtwgwwgvfgwwggfwwvwvhwwwgwhwwgwxwggxvgwfuwfgwxgwgvwwxwwgfwwwgfvxhxhwwwwwhwwxxxhfwfgvwwwwxvwwwfvgxwgfwgvwxxgvxwwvwwwgvwwwwxwwhxwwwwxVwvwvfwwvevfwwwgWewgwwwuvwwwfgwwWfwgwxxxUvgwhwwxgwgxwwgvwwWwwvgwwvwwhFfuvwwvWgfwhhxvwgwwggwhwgxghwfgwHwhhwGhewwwwwWvfvvvfwxwxwggfgvwgwwwwxhwwxxffwwxxxwwxgxwwwgxhgwxwwwwvWfvvWgxwwwxxvwwgwhwgwxWgwgvvvgwwhwXwwvxWgVxwwvhgwvgwwwwwwxwwfuwewgvxvgvwgwgwUdwxwwwVvwwwvuwxxgwwgxxxwxwxxfgwffffvxwhxWfvgXwwwwwwwwxxwfvwwgxwwgwwwxhwwxwxXgxxwhwxwwgwwxvvwhhwwxxwwwwgxxvwvwgwxwvwwxwwWwxwwhwwwwwwxwvwwgxwwwwwwwggwwwwfwwwxwvwxwxwwwwwwvwwwxwwxwwffwwgvwwxwwwvwgwwgwxhxxwvWwwwwwxwwWwwwwvXfwhxxxxwxwwwVUgwgxwxwxhgxvGgwVxhhgwxwxwwwwwwXwhhgxWXfgwwgxwwXvwhwwvxgvwwwwwxwxxxfgwwwgxgxxwxwxwgxwwxwwfwxxwxwwgxxwxxwgwwxwwwvwggggwwggwwwwwxxhwgwvwgxhwwwvxxewwwwwwwwwwwwwwwwgvwwxxwwxvwwwwwgwwwwwuwwwxxwwwwxwwxwwwxxwwfffwvvvwwxwwwxxwxxxfvwxvgvgvwvuwwvwwwwwwxwwwwvwhwxwwgxxwwwxxvvffvufwwwwgvwwwwxxwvvwwxwhwxvwwwwxwwwvwvgwffvxfwwwwwwfwwwwxwxxxvWvwwxxgvwwwhxxwwUvvgwVwxwwwvwwwgwwwxwxwxwfvfVxgwgvxxxwxxwgVwwwgvwxxxxvfvvwvwfwwwwwwxwvwwwvwvwwxwwxwgvwgvwwwwwwwvvwvUvVgfWfWxuxwwwfwghxwwgfwwfxvfwwfwvwwwgwWwwgxWwwxxhwvvhwwvgxxwxwwwwwxxxvuwwwxxxywwwwwxvgfwwwfwwxwxxgwxxwwgwxxvwgxwxwwwxvgwgwwwwxxxwxxfvwwwxxxxxvwwxvvwwxvwwxxxwfwvwvwwwwgwwvvwfgvxwwvwwwwwwwwwwewwwwwwvwwxxxwxwwwwxxxxxwwwxxxxgwwwvxxhwgWgfxwvwxxxwwxwhhxwxwxwxwvwvxgxwwuvxgxfgxxxwgwwwxwwwwxwgwwxwwwwhxxxxwvxwxgxwwwwxwxwvwwxwwgggxwxhvvwvwxxfwvwwwwwwwwgwxwxwtwfvfvfwvwvhwgewgfWwwwxvgvwwwwgwfvwwvwwgwwwgwwwwwgwxxWvUgfvefwUtwvgvvgwgvfwvvfwwgwgvwvgvvwwwvfwwwwwgfwwwvWwwxwwxwwfvwwefvggwfvwwwwfwgwvvvwwXwwugwvvwwvvwwwwwuvwwwwxwxxxwwxxvvgfvfwvvuwvwfvwvvWwwxhwwvvwwwuwuwwwgwvwwwwwwwwwwfguwvfevgggfufwwfgwwgvwWfvwwwwgfevufwvWwwxggggfgvwwwwgwwxgxwvgvwUftfwfwwvfgGfgwfhgggwgwWxhhgvfvvwfvggwgGhUuwwgXxggggwwwgvWfvfvwegfwwwgvgguwwgwgwwxwgwWfwwwwwvxgwwxgwgxwwvwwwwxwwffuewgvvhfWwfwVgwwvggWwgxwwwvwwwwwwuwWffwwvvwvwxwvwwvgvfufwVvwgwvwvVvvwwvwwwwwwewwduuvufvwwwwvvvwxgwwgxxwwxwfgfwfwuvvwvwwwwwgvwhfvfvwgvhgWvvuwwwwgwfwgwwwwXwwwgwwwxwwhvwwwwwwwgwvfhgwwugwgwwvgwfwwwfwwgwggwvgwwgwwwwwfwvwvwvwvfvvwgwwxwvwwvwgwwwvvwvwwvwwwfwwxxgwwwwxwvgwvvfvwfwvvffwvwgwhfwwwxwvVwwxwwggvvwxwwhwxwXwhgwvxwwgxhwxwxvgefvvWvgUwwwXwwwvwwwgwhWfwgXwXvgvwgwgwfwwXXfhwwwVxgwwwwWwfwwwfvvhvwwfwwwggggvggwwwgvwwwgvvwxxvxxgfwwwwwwwwgwwvwwxwgvVwgwwwwvwvxwgfgwwgwwwgxxhwvwwwfggvwfxxuwwwgwvwwwwggevvgwwvwggwwwwgwwwwwwwvgxwwwwgxwwgxxfvwwgxwxfvwwhfexfwwweWvewwwwwwgwwvwgwxvgwvvwfwwwvwwwvvfgwwwxhwwgwwxggwgvgfewvwwewwggvwffwgVwwwwwwwxwgwwwwgwVvwgvwvxwwwwxvvwwfgfffwwwfffwwfwwgwwWwwwwwgVVfvwwwwwgxgwxfvwwwwgxwxevwgwVewvVfgwvvwhgfgxwwvfgvwwfwgwgwvgxwvvwwwwwggwwhwhvwwgxvxggfvwvfggeWgegwvWwwWwxxgWWgwWxXgfwghxhwwgwwwwhhvwwwwwhwVwwvhVxvffwgfvvfvwwvwhggwghwgfwwwvwxwvvwwxxwxwwWhwwgwvwwwgwwgxxfgWfwwvWvffwwgwfgwwfxgWVfWfexfffgwwwxwwwwwgwwfxggfwwxwgwwwfewvwevvxwgfgwvxvfxwxgwvgxhxwwgwxwVxwxvwwwhxvwfvwewfgvwwvwxwfwvwwwvgwwggvwwvfwwwwwxwwxwxxwxxxhwwvwxwgwwxwxfwfwvgwvwgwwgxwwwwwxwvwwgxgwwwwxwwwvwwhvxhgwwwwwwvfwwwwwwwwwxwgwgggwwgwwwwwvwwwwwwwxggwwxwwVffwfwvvwwgvfggwxwwhgxxxwvxwwghwwxxhWwxwghhwgxwwwgwewwwwwWfwwggvwggwgxhhwwgwwhwvwwwxwwxwggwvhxwgxwhwxgwwfwgvwwwgwwxgWvwwwwwwgwxhwxwwwwXgwwxffwxwwhwwwvvwwwhgvwwxgwwgwwvhggxwvwwwwhgwwwxwwghxwfxwwwvwxwvwwwxxwvwgvwvwwwwwwxwwwgwgwwwwwgwwwwwgvwxwxxwwfwtgewwwwgwwvwwwwxwvvwwwwggwggvvvwwgvwwgvwxwwgwxxwgwwwVwxggwxwfwvwvwggvvwxxggwgfwwvxgxwxxwwwfvvvuvwgvvwwwgvvvwgwvwwfvufwfwwwwxwwxxgwvgweVwwfgwwuwwtguwwgwwgwxwxggfWvfvwwwwxhwgvwwwwgwwxwxwgfwvfwgvwwxwxWxwwwwwxgxhXgxggvwwggwgxxwxxhwgvgfxXxVxxxwxxgVfvuvggxwvuwfwfgVwgwwgWvwvwwwxgwvwwvwwwwwwvwwwwgVwwxwwwvwgwgwWgGxxwgxgwwwwvwwwwwwwgwwxvwwvwvwwgewvxxwwwvgfwgwxxxwwwwvhwgxvxxwwxwwwxwwvvffvwfwvxwwwvxwwxgwxwwvwwvwwwvwwxxxxwwxxwxxxvvvwwxwwxwwxhxwxwxwwxvvvvgxxxwwxwwxgwxvxfvwwwxwwwwwxwwgxxgwwvwwwxxwwxfwxgevfvvvwvxwwgfwfxwxGxwwxvxwwwxwxwxwwxxvwwwwxwxwfgwvwvwGwxxhhwxwwWhxVwxwwwwxvggwvxxxwwwwwxhwxwvvvwvwwgwwxwwxwwwggwxwwxvwwwwwxxxgxwwwxwfwwywwwxgwwxwxwwxwxwwvvwwwwwwfwwwwgwwuxwfwuwwwwwwwwvwwwwwvwwwgwvwgxgvvwwwvxxhgwwggwwwwfwwwwwwvwvwvgggwfvuwwwfwwvwxgwwwhvwxuxwwxxwwwwuwwwwfvwwwwwwwwvxwwvwhgwvwxvxwvwxvvwvvwvwwwwwxwwvwwvwgvwwwuwvwwvgwvwwwxgwwxgwwwwvxvWwvwwwvwwwwgxvwwgwxvvwwvxwwvWwwwWvwwxfwwwwwwguwxwwwvwwwgxwwwgwhwwgwwwxwwwwfggxvwwwwgwwgwwWwwxuwvwgXwwxggwxvwwgwwwvwwxwuwwwwwfwwxwwwwgwwwwwwwwxwvwwwwwhwwwwwwwwwwgwvwwwvvwvxwxuwxfxvwvwwwwxwwugwwwwuxwwgggvwwwwwwvwwwwxwwwwwwwwguxwgvwwwwwwvwwwvwwxwwwgwwfwwuwwwwvwgggwwwwwwwxxwvvxghwwxxgwxfwuwwwvwwgWwwxgvwwwwxwwfwvwuwwgwwwWvvwwuwwwwwwwuhwwxwfwwxhuwwxvwwwwwxuwwxwgxwwwgwvvxxwvwxwxvwwxwxwwwwxwxxxxwwwxwhxwwwwwwwwwwgwhwwwwxxxvwfghxvwxxwwxwwxwhxxxwwWxwhvwwXwwxxxwwxwxwxwxwWwwwwwxxwgwwwxwwwwwwwwWwwwwwwxxhwgwwxwwwwwxvwwwwwwvwwgwgguwxfXwwwxuwgwwwvwwwwvwwwxvvwvwwwwxwwwwfuwWgvwwgwwgxwxwffwwffwggvwfwwwgfwvxwgvwvwwgwwwgwwfwwgfvxvwwvFgfgwwWwwwwwggwgxgfvwwwguvxgVegvfwggvwxwvwvwxgvwwwwvuwxwwwhwxvvwwwwvwgwxwgevWwvggxGwxwwwwwwwfvhvwvwwwfwugxvGfwwwwxwwuvvxxggwfgwwvwwFfwxwxgwvwwxxwweuggwvwfugxwxfwwwwvggvxwxwwfwwwwghwvwwgwgvgwgxwxgwwgxxwvFgvgvwFxxwfwfwhvgfxhxVxxwxgvwgfffwgwgguwwwwwuwxwvfwfwwwggvxxwxxxxxwwvwhwwxvwgxvwwwwWgfwfwVwwwwwwvwgwgxghGxvxwwwwvvvugwggtwwvwwwfhwhvwwwwxwwfwfWwwvgwUfvfwwxwwgxvgfvwxwxfuwxwwhxxxXxggUgWfwwvvwwwVfwgwwwWwwwgwffwwwXvwxvwxwwwwhwgxhwgxgwwwwwhwwfwvgwwwfwxwgwWvwwwwxwxwwvxxhghwvwxxwxvwwvxwgwwwwwwwfwfhxxwwxvwwwwwgwwwwwxvvxgfVwwwwwwwxWfwgxxxgxwwwxhvfvwwxwxwxxghggwgwwwxwhgxwvfwwgwwgxxxwwwwxWwxxwgwhxxwwwgwxwwgWwgxwwggwwxwwwwgwwwwgvxwwwwxggwwwgxxgggvwhxwwxxwxxxwwwhhgwxwwgwwhwxwwwhwWwhxwwgxwfwwxgggwwwvwwgwxwxwwgwvwwevvwvvgwwwvhvgvggwvwvgwwwwfwwfwwwgffwwwwvwwWwvwwwwgvwxWwfwhTcggwwwfwvWwfvwgxffwvgwwWvvwfWwffwvwvwwwvvwwgfggvgwxvxgwvwwwgffgwhwwwwxffvwwwwffwxwxgvwwvwwwwwvhvewwwxxwxxxwfvvvfgvgwwwwwwvwwxgwfvxwwwvvewvvgwvhwhvwwvvvwgwxxwgwwfffwwfvwgfvVfuvwTewhwwwvwwgxwwhffdffWwgwwxwwxtvvwWwWwwxxxxwVegwgfvwfwwxgfhvgwvwwhvgwgXWwVweuwVw7wxwhwhwwfugg8hewhhwhwvwgVewfffvwvxxwwuwwwgwwWwwxhwvwwvwwvvwwxwwvwxxgvwwwxxwwwwwwwfwfvwgvHgwwwvuwgvwgGWfwwwwwvvwvxwwwwggxhhwvwwwfwwvgvgvwvvwwwfUuwvgvwvxVfwwfvwvfwxxhwVfwfwvxwwfeevggxwwwwxwWgvwuvffvwwwwvwvwgWvfvgwxwxxwfwfwwggwwwxghghxxwhhvwxgwggwwvvwwwwwwwwwuuwwwxwwwhwwwvwwfwvvwwxxvxxwwwgxwvvwevwuwvwvhwvwwwwwwvwvvwwwgwvwxwwwwxgwwgwwwgwwxvxvvgevxvgwvwwxxuwgwhxgGvwxhwfgwwxgwxgwxwwwWwgxvwwxhwvffwvhvfGwxhhvvxvgXHewghwhwwWwwffgfvwxgwXvwwghghvvvwffwgwfwvwwwwwwwwxwwwxwwwxvwwxxvwwwxxwwxwvxxwwwxxxwxwwxvxwxwwwwgwwwxwhwvwwwwgwwwggwvwwwvwvxfwwvvwwwwwuwwwvwwwwwwvwgwfwwwxwwwfvxvwvwwwwvwwwwwfgwfwwwwwxxwxwwwwwwfwwwgwvwvwgffwwvvwwwgwwwwewvvwvwwwwwxfggwwwwwxwwwwvxwwvwwgwgvufffvvwvwwhxxwvgwwwwgwwwhgvgvxwwxwgwvvwfvuvvwvxwwxffVgwvvvxxxwwvwwwvwwwxwwwfwwvgwvwwwxgvwevwgVfwgwwwvwvwxwfgwwwwgwxxfvvwwggwwwxxgwfvwwvxgwwwxxhwvwwxwwwhvwgwxwfvvwwwxgwxhxxwWvvvgWwhwgxxwwfwwwwwvwwxfvvvxwWwwwxwwfwvwwwwwxgwxxxvvwvwwfxwwfvwwxwgxwwxgwgwwvffvwgwwvwwvwfwxgxhgWwwwwvgwvwvwwwxvvwwwvwwwwwwwwvwwggwwhxfvwvwxwhwvwwwwgxxxxxvwVwwwvhxfwfvgwxwxxgvvwwxwwxxwwwwwwxwwxxxxvwwwwvvwwwwwgwvwvxvwhwgwxgwgwxwwgwwxvfgwfwwgwxxwvxvwfvxwwfwvwwgxwxvxwwxwwxxxwwwxwwwwgfgwwgfvwxgwwwvwvwxxxxvvwxhWxxwwxhxwxxwxhVgvvxxwgxwhxhwhwvghxwwgwxwxwwXhXvhxgxwxwhggxxwwwgxwwxwwxvwvvwxWxwxxhwwxwxwwwxwwwvwwxxwwxwwxwxwvxxgwvwwwvwxwfvxwxwwxxwwwxvwgwwwxvwwwwxwwwwwgwwwxxwwwvwwgwvwwxwgvwxgvvwggfwwwWwvvxwwwwwwwvvwvwwwvfvfwwwwwwxwvvwwwwwwwwvuvfwfvwfxxwfwwwvxwwfwvggwxxwfugvVvwwVffvwwVvvxwggvVguwvEvvxwgexxgwgfwwfeudwVuxwwwwVvuwugvwwxxxwwwVuvxxwdwgwvwwvwxxwgwgwxgvwvwwvvxwggwvvwwwwwwwgwwwvvvwgwgwwwgwvwvwxwxxfewggwwwwwxwwwwwwwwxwgwwwwwwwgwwwwggggxgwgwwwwvxwxwhvwxwxvwwgwgwwggxwwvwwwwwwfgweuvwfuxgwwfduhgwwwwwwxwwVfuuxvwwvwxwvguxvwxgggxwwgfvgwxwwggwwwwwgwWvwgwhWWxgwghVVxvxwwgxgfgegtgfhghffuWffuewwxwvggwwwwvxwfwwwvwxgvwvxwwwwwxfwwgvuwwgwwvwwvwgwwxwwwwvfgvgfwwwfxwwgwwwwwxwfwwvvwvfwxwxxwvwwwwwwwwgxvwwwvwvwwVuuxVuwwgEvwvxwvuxwWggeVuwxXxxhwuwwgxXhfWhfvwwwVvugwgdwwwwxwvuwvgwhVVwxvfwwuwwgwwwwwxgfwxhxgwwwgxwvwwxwwwwwwwxxfwvwwhwhwwxxvwwwxxxxwwwwxwxwwvwwwwwwwwxwwwxwwxggwhxxgwwwwwvwxwwhwvxghwwvwwgxwhfwxuvuvvwfugxgwvhwwvwvvwgvwwwwwwgwvvwvgxwwxwxgwwgwwWvfhvwvwxwxwwvxwxwvvvughwwwwgvguwewxhwguvwwfgvgVfugwggwwwwwvvwwwwwvgvvgwwwgvwwwwwwvwwwwwgvwwvvwfgvwwxvfvwwgxfguwwwvwvvvfwwwvwgwwwwwwwwwwwwwxvxwxxgfuvwwwwxxxwvwwxxwxxfvuwveVefgvwvvwvVgwwwwwwwxwvffwwwgvxwgwvxxxwfffuxvwgfvgxwwwwxxwxwwxwwvwgwwvwwhwxxxxwxxxvwvggwwwwgwwxxwvxvwxwwwwwvwgwwvvxwwxwhxxwxxwhwgxxwwwwxwxxwwxwwhVuvgvgwfwfwwwwevwvfvwwwwwxwxvgggwxwxvefvgwwwxwwvwwwxxvxwxwwwxwxxxwxwwgwwwfwvwwxvwwwwwwxxgvvwwwxxwxwxxxwfvfwwxwxwxxwxwwxxwxwwxxxwxefVgfugVwvvwwfwfvxvfwwwxxxgvvwwwwxwxwwwvxwggxxhgfegwvgwwwwwwwwxwvwwwxxxwwwgwwxxwxwghwwxxwwgvvwwwwvwxxwwwwxxwwxxwwxvgwwwwwxwxxgwwxxxvxwwxwgwwwxufvvfwfvwxvgfvfwwfvwvgwwwwwgwxuwwwwwwxwwxwwwwvwwfvvvguwvwvgvwwwxxxwwvwwgwwwggwvwvxwvxfgvgvgwxggwwwwfwwvwwxwxwvxwwwVfwwwwwwvwxxgvwxxxxwxxxwxxxffvfggvwwggwvuwvfwvwwhgvuvwwvwwvvvfvwvwwwwvwwwwwwwgvwexwwgvvvwwwvvwwgwggxgwxwwgxvvwvwwwxwwgwxxwwxwxvwwvuwwfvuxwwvwxhwwxwwwwwwwwxxwwwwxxvufwwwwxwxwgxvwwxhvgxvxxwwwxwxguvvwfwvvwgwvgvgwwwuvwvwgxwvwwwwwxwvWxwxwwwxwuvvwvvvwvwxvvvwwxwxhwwfwwwggwwwwvwgwwwxuwwwgvwgwwggvwgvwxuwvxwfggwwwwwxxxwxfwxxwxwxwxxxfgvgwwwwwwxwvgwwxwwwggxwwwwxhwwxwwxwwwxxxwghvwwfvvwvvvgwwuvwxwwwvfwfwwwwwwwvwwwvvvwxxwwgwwwwwwxwwvvwwwwwwxwvwwwvwwwwwwwwxxwxwwwwvxwwxwwhwwgxwwfvvwwwwvwwwwvwfwwggwgwwwwxxxgxvxwwxwgxwxwwvwwwvwwwvxwhwwxxwxxxwxxwxxwxwgxwvwxwwwvvwvvfwwwwwwwgxwfvwxwwwwwvxwxxwxwvwxwvfvwvwwvwwxwwxwwfwwwfwwxwwxxwgxwwxxxxxwwxvwgvwvwwwwwxwgwvwwwxxwwwwxvwxwxwwxxhwxxyyxxwvwwwVewwVvvffwvggwwwwwWwufwfwwgwwvwwxwwxwxwwhhxwwwwwwxwwfwwwxwgvwgwwvwwwwwxxWfwuwxxwwxxxwxxxwxwxxxxxwwwxwwwwwvxwhxvwwwwwgxxxwxwxwxwwwwwwwwwwxvwhwxvxvwvwxgvxxxwxxxwwwgfwuwvvwfwfwwgwffwwxwwxwwwxwwwxwwwxwvwwwwwwwxwffwxhwxvwxwwxwwwwxwwxwwwwgwxfvwgwwwxxwxwxxwxwxxxxfwwwwxxwxxwxhxxxwxxxgwxxxwxWfwugfgfvwwvwffWWwgxgvxwwwwxxxxxxxwwxxxwwwgwgwwxwwwwvwxxxwxvwwxwwwxwxwwxxxxxvwwwgwxwhwhvuwwxwxwvwxwxxxxxxxxwwwwxxwwxxwxxwxxwufwwvwwvwwwwwwwfwfvvxwwwwwwwxwwwvwwwwwwwwwxwvvwvwwgvwwwwwwwgwwwwwwvvwwvvwwvvwxxwxwwxwgwwxwwwwwwwwwwwvwwgwxwwgwvwwwwxxxxwwwwffwwwwwwxwwwwwwvvxxvxxwwxxxwwwwgvwewvwvwwVxwwexvxexwfwwfeuwwgvwvxwgvwwwwvwvwxwgvwewwwgxvwwvvwwwexxxwxwwvxgvfvxwwgwwxxwwwwwwwxwwvxwwwfwvwwwwwxvwfwvwxxvwfwuxhwwwvwwxwxwvhwxvwwwwvwxwvxgxxwxwwxwxvwxxxwxwvwwgVegUvvffwgVewwffgxvwwvwfwgfwwwwxwwwffwvgfvgwwwvvvvxxwwwgwwxxxxhvwgfwweevVWfwwxeevwwwxevwwewwxvwvwxxxxffvwwgwxwwwwwxwwxxwvwwxwxwxwwxxxwxxwffuwwwgVwVwxxwwwewgwvwVxwvvvwwwwwgwwwwvwxwwwgxxwwwwwwwxewuwwwvxwwwehvxwwwxwwvgxxwwxwwwwxgfwwxhwwvfwfwvxfxwwxfwvxfhwvxhxvgwwxgwwwxwvwwxxwwxgvvwxxwxwwwwxggxwwwwvwwwvwwvwwwvwwxwwwvwwvxwvxfvwvfxvwvwvwvvwvwwxwwuvwwwxvwwvgwvwgvvwwwwxwwxxwwwwwwvwvwgwxwwwwwwwxxwxwxwxgwvxwwhwwxwxxxwxxxwwwwwvwgwwggvVwwwvvfwvwvvwwwfhvvwwhwxwwwwvwxxvwwwwevwvwwwwwvgguwwyvvvvxwxxwwxxwwwxwwwwwxvwwwxgwwxwfgwwwxwxxwwwxwvxxvwwwwvxvwwwwwxwxxwxwxwwvwfwwwwwvgvufxwwvwwxxwwvwwwxxwwxwwwwwxwwxwwwwwxxwwwwwwxwwxxxwwwxxwxxxfwwWwvwwgwwxwgwvvwwwwxxxwwxgxxwwxwwwwxwwwxxxwxwxwgvvwgvgwevgwwwWwvwvfwwvxvggwxwwwwwwwwwwxxwwxwevwwxwwvwwwxwfxwwxwwwwxwwwxwwwxwwwwgwgwwxwhwwwwwwxxxxxxxxwxxxwwwxxwwxxxwxwvfwwwvwwvvvwwwwfwwfwwwwvwwwxwwwwgwwgvxwwwgwxvvvfvwvxwVefvvgvvvwwxxvgvfvwvwwwwxgwgwxwwwwvwvxvwwxWgguwhgwwxwwwgvwxxwxxwffwwwwwwxvwgwgxwwhwxxwwfvxwxxxwwxwvvwwwvwwwfwwwwxwwfwvwvgwfwfwwfggwhwwwgwwuuwwWgwuwwwxxwgwvwvgwgwwwxxwfwfwwvgfvgvvgxggwwwwwxfwwxwxwwfwwvgwgwhwwwwWwuxwxgwxwwxwxgwxwxvwvfghhwxxgwgwwwwfxgwhwwwhvxwwwwwwvvvvwwwwwvwvfvwwwxgwvvwgwwgfgwwwxwvgvwxhxwwxwwxwvwwwwwwwwxwwwvwwwwgwwxwfvxxfwxxxvwwwwxwwwwxvvwxxwgwwxgfwfwwxvwwwvvxwvvwxvwwxwwxwxxwvwxhxwwwvwwwxxwwwwvwwfxghfwwwxwvwwxfxxwxwxwwhwxgwwvxfwxvvwwwwwgvwwxffvvffvvgwwwxfvwwwwhwwvxxggwgwxwwwwfwfwwwwwvwwxwwfgwwxxxgwwwwwwgwwwwwwvvxwwwfgxwxgvxwgvgwvvwwvwvwwwxwwwwwvwfwxwwwwwxxwwhxxwgxxxgwwwxvwwwwwwwwxwxwxwvwwxwxxxwwwggxwwgxxtvfvggvvvgvvvvwvvwwvvvwwxfwvgvfwxwvwwwvwfwwvwfwvggvwfwfvwwuwvwwwwxwvvwvvwwwvwwgwxwwwvwwxwwvwfvwwwwgwwwwwwwgxwwwfhwxwwxxwfxxxhxxwgwwwwvwwwwwwwugxwwwwwxxwxwwwxwxxxxvvwwvfvwvgwxgvwwfVgvggwvvdwwwxwvwwgxvwwgwwwvgwwwWgwwwWxwvwwgfwvvuxvwwwvwwwwwvxwwxhwwwxwwgwwxwwwvwwxuwwvfvwwwwwfwuwxwwvwxwwgvwwgwwwwwwxxhxwwwvxxwxvwxwvwwwwwvxwxwwwvwwewxvwwwxxwxwxvxxwxwwxxwwwwvvffdwuwxvvwwgfdwwgvvwgwxwUvvvvwwwwvvwvxwwxwweuuvwwwwwxvwwwwwwwwwwwvvwwwwvwwwxxwwwxxxwvwwwdfwvvuwwwwwdfwvwwwwuwwwxxWgvuvwwxwxxxxwwxwxxwwwwxewwfwwwxwvwwwwwwxvxwxwxwwxxwxwwxxwfvuggwvvvwwwxvfwwwwvvwwwwwwvgffwwgwhwxwwvwxwwwwxwwwwxxwvwwvwvwxvwhvgvvfgxvvgwvwwwvwvxwxxxxwwwxwwxwxwwxwuvwwwwwvwwwwvwwwgwxwwuwxvwxxwhxxxxxxxxxwxxwwwwwwxxwwwwwwvwwwxwuwxwxwxxxxwwwxwwwxuwwuwwwvwwvfuvwvwvgwwwwwvwwxwxwwwfwwwvwgwwguvwvgfuwwvwvwwwwwWwwwwwxvwvwwvwgwwwvwwvvwwwwwvvvvwwwvwvwgxVwfwwxxwwwwwwwuvgwwwxwvwwwxhwhwxfwvwwxvwfVvwxgFfvgxguuwgxwvwwwwgwgvwwgvvwwgxwwwggxgwvwwwwwWwhfwwwxvwwwvxwfwwwxwvwxwxwwgwxwwwgvwvxwvwvwwwxxwwwwwhwwvwxxxvwwwxwxwxwxvwwxwwwwxwwfwhfgwwwwvvwwwvfggwwxfVwwwwwwwhgwwwwwxxxwwuwvvvwfvwxwvwwvwwxuwwwwwwwwwwfvwwwwxxvvwwvwwwhgwgwwwwfgvWwwwwwwgxvwwwwwvwwwwwwwxwgvxwwwxxvwgwxwwgwxwvwwgvwxxxvwwxxwxgwgwwwfuwwxWwwwxeewgxwwwgwxwwvugWwwxwwxxwwwwxwwwwwxwgwvwwvxwwwfwwwgwwwwxwxwxxwwwwwwwwuxwxxvxwwwvwwxfwxxfvWwwvfwwgxxxwxxxxvwwwxwxvwxwwxwxwvwgvwwwwwxxxwwxxxvwxgwuwwgwwgvvfffwwgwvvffgvfwwgvwvvwvgwwwvwwwwwwwvwwwwwxwwwwgwvVevgggvwwffgvgvwwgwvwwwwwvvvwwwwwwwfvwwvwxwwvgvwgwvwvfwvwxwgwwwvwwvwxwwgwwxwwgvwxwWwWwxwxwvwwwwwvvwwwwwwwwwwxxwxwxwwwwwvwwwvgwgvxxwwwvxwwvvgwffgvwfgvvvfw6egvgwfvffvgvvwgwwgwwwvvgwwwfvxfvwwwvxxxwffggvwwggwwwgvwvxwwwwwvwgvwwgwwwwwvgvwvwwhfhvwwxggvxwvvxwfvvwwgwwwfvxgvxgwwxwxvwvwWwWxxwwxxhwwwxfwgwwwvxxxwwwgwwvwgvgvxwwvwvwwwwxwwxvhwwwxxxxwvxvwwxffgwffwwGvwevuwgfgwgvwUeugwwwwvggwvwwvwvvxwgvwwwwgvvwwwwvggvgvwwevuwtwwgfvvwxwxwwwwvwvwwwxwwwwvvwwwwwxwxwwwwwwwvwwwwwwwgwgwvvwfgwwgvgwvwwwwgxfvwxwvgxhwwwxxhwxvwwxwxwwwwwwxgwgwxgxwxxhxwvxwxgvwwxhxhwgwwxwvggwvgwUeugwwwwfffvwwvwvgwGwwgvvwxwwxxvwwwxwwwwxwgwgwxwxwwxgvgwwwwxwwwwvwvwfgvwgvwwwwgvwgtwxwxwwxwgxwgwhwxwwwwxwwwwvwxwvxgwxwwxgwhwwhfwwxwwxwxhwwxwwwxwwwxhwgxxxwxwwwwwxwwwwwxwxhwvgwxwhxxwwxgwhggwxxewvvggwfwvwwwxgxwgvwgxwwwfwvwwvwwwwwwxwxvfwxfvwwwxwvwwwxwhgwxvwvwwvxwxwgwwvvwgwguwxwxwwwwgwwxwwwxwxwxxgwvvuwwwwxgwgwwxwxxwxxxxwwwvwxVeewgwwgvwxfwxhwvvxgxgVvvvwvwvwvgwwxwxwxxwvxwvVvwwgfvvvxgwxxwwxvwwwwwwxwxxxgwvvvwwxxwwwxwxwgxgwwfxxwxwwwxxwvxwwwvxwxwxwwxxwgxxxxxwgwxxxwvwxvgwvvggvwwvxwvwvwwwwxfwwgvggwwxwfwvgwvwwwwwgvwwwxwxxwhvwwxwgwvxxxvvwgvgffwwxwxwvwwwwwwwwwwwwwvwxgwwwwwgvxwxxxwxwgwxxxxxxgewvvwwevgVvgxgwwxwxwwxggwvwwxgwwxwwxgwvvwxwwwgwwxwxwwxwwgxgvwxxwxwxfvwfwvhxwxvwwwwwxwxvvxxwxwwwxwwgvwxwwwxxxfwwgwwwwwwwwvwwwxwxgwwwggwwwwwwwwwwwwwwwwhhfwwwwwwxvxxwwwwxxxwwwxwwwwxvwwxwwvxwxxxwwvvwwwxwwwxwxwxwwwxfvwwgvvwvwgvvwwwfwxvwwwwvwggwwvxwxxwwxghgwxvvwwwwgwwhwxxxwwhgxgwwwwxwhwxxxxhwgwwwwxxwxxgwwwwxwwxxwxxxwwwwfggvwwwwwgwwwxxwwwwwxwxxxhwwwwvwxwwwwghxvwwxwwxwxgwwgwwvwwwxxxxxwwgwxxxwwxxxxxwwwwgghwxwxvwxxxxxxggvfwwvgwxxwwwwvgvxxwwxgwwwxwgwwwwxxxwghwxxvvwxgxwwwxwgwhwwxhxwvwwxhxxwxwxvwwwwwwxxxwwxgxxxyxxxxvxxwwwxhwxwwwxxxxdfwgwwwwwvvvfgwwvwwwgwwwgwwwwwwwgwwwwwvuwwwxgwxwgwwvgvwwwwvwwwwwwwwwgvwwwxwvwwwxwxwwwwvwvwxxxxwwwvvwvvwvwwwgwwwwwwxxwwwgxxhxxuwxxwwxxfhwwwvwwvwwwwfwxwwwgwxxwxwwxxxxwwxgvwwgwwwfwvvdvwvfwwgwwggfwwwgwgvgwwvfwwwwvwwwwwvgvwwhgwgvvwwvwgwwwvwwwvwwvwxxwxfwwgxxvwwwvwwwxxxwxxwwwxwxgwxfxwwwwgwgvdwvwgwxwwgwwwwwxxgwwgxwvwwxwwwvgxxwxwwxwwwwwxvxwvwwgxwxxwwwwwwxwwxwxwwxgvwwwegwWfuuvwwwFvwwwgvwwwwWguvwgwwxwwwwwvwwwwwxxxgVfvwwvgwwvwwgwwwgwwwxhwwxvwwwgwwwwxxxwgwxwwxwwvwewuVwvxugFgvvxwxghwwuVwvvxwwxxwvwxhxxwxxxxxVgwwwvwwwwwvvxwwwxwxxwgwwxwxwxxxwhxwwwxwxxxxwwxgffvufwwwwwwvwwffwgwWwgvgwwgwxhwwwfwwwhwxwwwggwxghxwxxwgwwgvgwwwvwvwwwwvvgwxxhwwwxwgwwxgwhwwxvwxwxwvxwwxwwwxvgwwvuwxxwwwxvvwwwXxwwwxxwxwxwxxxxxwwwxwxxxwwgxxwwwxwvwwwxxxwxwgwwwwxwxwxxxxxvwwwxxuvwvvwwwwgxvvwxvwxwVwwwgvwwvxgwwwvvwvwwwwxxwwgWwwvwvvwwwwxwwwvwvvwxxwwxwvxwvwwwwvwwwwwwxvwwwxwwxxhxwgwwvwvwwwwwwxxxvwxxxwxxxwwwwvgvvgwwvwwgxwwxwuwwxwgwfuwguwwxvwwwwwwxwvwwvwvwwvxwwwwxwwwwxwvvwvwwwwxxwwvxwwwwwwwwvvwxvvvwxxwwwxwxxwvwvxwwwxwxwwxxwwwxxhxwwwwwwvveWwhwwxgvwwwwvwwwwwvwxwwwwvwgwwwxxwwwxxwxwxwxwwxwwwvwwgggwxghwxwwwwfwwwxxxuwvwwxxwwxxhhwxxwvwwxwxxxwxwxvWwwfgwwvwwwwwwwwgwwwxwvvwwwxwxxxwwwgxvvwwwvwwwhwwxxxxwxwwxwwxwwwwxwwwwxwwwvxwwxwvwxgxwxwxxwxwxwwxwxwvxwhxxwxxvwwwwxxxvwwwwwggvwwwwgwwwwwwwwwgxwwfvvwvwgwwwwwwwxhvvgvwwwwwxxwxwwvwwwwwhwvvxwvwvwwwgvwwgwwwwwwwwwwwgwwxfwgxxwxggvxxwwwwwxwwxxxvwwxxxwvwwwwgwwvxWwvwwwvwwgwwwwvwwgfwwwwwwgwwxwwwwwxwwvwwxxgxgvwwwwwwwwwwhwxvgwwwxwxxwgwwxwwwxwvwgxxxxwfwwwwxwwwwwxwxxwwxwwgvxxxxxwxwwxwwwxwwwwwwwwwwwwgwwwwwwfwxvfvgwwwwfwggwwxgxwvwwwwxwwwwwwwwxwxwwvxwgxwwgwwwxwvwwwwxwvgwwxxwwwwxvwwggwvwwxwwwwhwxxxwwhwwxwwwxwwxxwxxwwxwfvvwvvxfwgvgfwxvgwxwwfwwwvwwgxwxxwxwwwwxwxxwxwvwwvwwwwwwwwwwwwwwggvgwwwwwwxxwwxxvxgwwwxxxxwwgxwxxwxxwwxvwwxwxxwxxxxxwvwwwxxwwwxwwwxxwgxxxwxvxxxwuwxvwxwvfvwweuwwghwWvfwwwwfwwfwWgwwvwgwuwxWgxwwgwgwwfvwwwwwwwgvvwwxwxwxwwwwwvgwvwwwxwWwxwxwwvvgwfvwgvwwvWwwwwwwvxwvxvwvvwgwgwwvwxxxhwwwhwvwvwwxxhxgxwvwwxwwwvwwxhxwwwxfvwgfwggwwwvfwxGvwwVwuwfwwvfwwWwwwuwvwfwgwwwvxwwwwwwxgwwwxgwgxwgwwgvwfwvwwwwwgwwvwfxwwwwwwwwwghwwgxgxwwwgwwwwwwxwxvgxwxwxwxxwxwgvwwxxwxwvwwxxwwxwwwxxxwvvwwwxwhxwgwxwwxvwxwxwwxwwxvwwgwwwwxVvvwgwwwgwvwwwfwvvwxVgwgxxwwvvwwgxwwXVwwwwfgwvwvwwwwxwwwwwwwvxugvwwxwvwwxxxgwwwxxewwvgxguVwwxwxwWwwwvgWwgwxwwwwhxwwxxxxwwxxxxwwwwwxwwwgwxxxwvwwwewwxxwgwwwwwxxvxvwwwwwgVwwgwwWfwwfwwwwxwgwvwwwxwvwggxfwwwwwgwxwwxxgwgwxgvwgvwwxxwwwxwgvvxxgwxxxvwwfwxwwwxwxxvxwvwwxwwxvwwxxhwvhxwgxxwxwwwxxhxxwhxxwxxwgxghvxxxwwxxgxwxwxuUvwfugvvvvvwvuwwwgwvgfwwfuvwvvvvvwwvwvwwwvfvwwgvvwgfeuwvuwwwvVvwgwwwxwfwvguwwvvwgwxvwvvvwwwwxwwwwwvvwgwwvwvwwwuvwwvwwwfvfuvwwwgwwvwwwvwwwwwwhveewWvvwvxxwgwwwgwxxwwfvwwvwxwwwxhwwxwwxvwwwfefwwvwwfewvgwwfgfvwwWfgwwvxgffvvvguwfwuvuwffwvfxwwgwgvvfwwWvwwwwvfgvwwwxvfwwxwxgvvvwwvwwwwvwwwwghuwwwwwwgfvvwwwfgxxxwwfuvgWwgwvwwxwffvuvwwwxwvwwwwvvvvwuvfwwvwwxwwwxgwxwWxvwxxwwwwwwxuwwwwvxewxvxwwvvvuwvggvfvxgwuwvfwfxvwwwgwvvfvwxvvxgwxxwvvfwwvwxgwvwwwwvefvgvvwwwwwwwwwgwwwwwwwwwwvgwwgwxvwxwwwwvhfgwwvwwxgxvvvwvfxxxxxwwwwWwvwwwwwxwvvwgfvwxWgwwxwvwwfvvwwwhwxxwvwgxgwwxwhvwgvWwwwwxwwwxwxxwwwwefgwvuwwggwfwhVfvwwvwfwvwwwfevwwfvwvvffwgxwwwvwwxwvxxxxgwfvwgvgvwffvxwwvvwwwggvwxwwwvvvwxvwgxxgwwvwwxwxwwxvwvevvgvwwwvwwwxxgwgvwgwWwxwgwfwgxwxvwxuxvwwxxxwgvvvgvwwwwwvgwxgvwwwwvwxxvwwwwvxxxxvwwxxytfwvgvwfuwugvwvvwxwvfwfwwvvvvfwwwwgwvvfwvvwfgvuwwwfvwwwwwwfvfvwvvwwwfuwxwwwwffvuwwxxvwgwwwwvwgwwwwwvwwwfwwgvwwwvwwwwwxxwwwwgwwfwwwwxWfwwwwwwxxxwwwtuvvvgxwudwwxxvwhwwxwgvwgwwgwhxxwwwxxwxwwgwgwvwwGuvfvwwwfwvwwwwuuwgvggwFuvfuwggvvwvWvuwgfgwvvWwvvwwwvwwxwwwwxwxgwwwvxwvwwwxwwvwwwWxtwwwxwxWwtxfvwgvvvxwvvfxwxvughfuwwwwwxgvwfwwxwwhxxwxwxwxwxxwwxwwwwwxxxxxwwwwwxxwxwxwwxxwgxwghwwwxfwugfwWvfgwvwvgvwwUwvuvwwgWvffwVfugwxhgwvvxwwwwxwwwwvwvvuwfvvwwwuwwwwwvwwwwgwvwwwxvwwxwwxxxwwwwxwwgwwUwwgvwwwgwvvwwwwwgwgxwfvvvgwhxwwxvwwwvwhwxxwwwfwwxxwxxwwxwwwwwxwwxwwxwwxwvxgxwxwwwxxvfwvvwwdewfwwwwfugwfwgvfwvwwxutvfwwwwwHgwwwvwwvwggwwwwxwwwwwhwwwwgwwwwwwwwxwwwwwvwggwwwxwgxuwwvxxxwwxxxwvwwwvwxwhxhwxxvfwvwwvwwxwvwwxxxwwxwxwwxwgwxwxwxwwxwwxwxwwwvvwxwwxwxwwxgxwxwxhwxuwvWvewwgvwevvhgwwegwvwwfwgvgwvvxgvwggwfwwwvwgwwvwfwgvvvvgvwxvwwwvgwwwwwvwgwvwvwgxvwwffwwwwwwwwwwwwwwwgvguwgwwuvwgfwwwwvvwxwwfgvwwwvxxwwwxxxwwwgvxxvwvgwvxxhwwwwxwwwwxgwwxwxwwgwgwxxvwxVwvwwgwwvuvwvgwfwwvWgwgevwvvwwxVvwvwffuwvwggfhvxfgxgwwwwwwxwWxwwwwvgwwwvwwwwfvwvwgwwwwvwwwvxwwwxxwhhvhvwwwwwvwvvvwwwwwwwwghwwgwwxggwwwxwxvwxxwwwhwwwwxxgwwwwwgxwhvwwgwxxxxwvwwxwwxwvwwfvwguvwwwwuvwwfvwfvwvvwwwwwwxhegfgwvwwwwwwgwwwwgwwwfxwvwwfwwxvwfvvwwvvwwwxuwgwwvwxvwwwwxvwxwhxvxxxwxxwwwwwwwfxwwvxwfvgWwwwxwxxwvgwwxxwwxxwwwxhvwxwwwhwxwxgwwxxwwwgwvhwwxxwxwxwwxwwwxvwhwvhwxvufwwvgwwwwwwvwwVfwwWvxvfwwwgwggwwgxwwwwwwwwvhwXxwwwwwwwvgwwwxvwwwwxwwwgwgxwvwwwwwxwwhxwwvwwxxwxxxxwgwwxvxhwwxwwgwwfwxxxgvwxwwxwwxxwuxwwxxhwxwxwgwwwhxxxwwwxxxwxxxxxwxwuxxwvvfvvgvgvvwwvfwvwwfwwwwvvfvvwvwwwvvvwwwwggtwwwvwvwvwwwwvwvwwwggwuwwwwxwwwvxxwwvwgwvtwxwwvwwfwwwvwxvwvvxwwwxxxxxwfVwwwggwxwwwwwxwhxwwwgwxwwxxwxxxvvvvwvwvvuvvtvfwfvwvwvwvvwgvvdvwwwwfwuvwwgvwwwvvwwwwwwwxwxwwwwwwwWvwfgwvwwwwxwWwxwgwvgwvwwwwxxvwwwwxwwwxwxwwvwfwtwwwwwwwwwwfwwwwwvvxwxgxxwwwxvvWwwgwwvwxwwwwwxvwwvgwwwxwxxxwvvwwuuwWgwvvwwwwvwwhvwwwgwwwfuwwwxwwwvuwwvwvwvwwvvwvwvwvwuxwwwwwwwxwvwwvwwwxwxwxwwwxxwxvvvgvfwwwwxxwwxwwxwwwwvewwwvwwwgwxwhwhxwwxwwvgwgwwxggxxxvwwxwwxwwwxwwxwxxgxxwwwwwxgwxvvvwvuuvvvgvwwwgwwwvuuuvWvwwwgwwwwwwwxwxwwwxwwgwwvvvvwwxwwwwwwgxwwwxxwufwwgwwxwwwxwwwvwwwvwwwwxwvvwwghvwxxxxwvxwwwxgxwxwwhxwvvwxwwwwwxwwwxwwxwwxxxwwwxxwwwuvgwwwwwwwvwfvwwwwwwvwxwwgwwwwwvwwwwwwwvwwvxxvwxxvvwwwgvvwgwwgwwwwxwfwwvwwwwxwwwwwwwxxwwvwxwvwvvxwgwgwwxxvvwwwwxxwwwxxxxwvwwwvwwwwwwwxwvwvwwxxwwxwxwgwvwfvfwgwwwwvvgvwwvwwgwwwwwwwffwwwwwvvwgeuvwwgwwvwwxxgwfvxwwgvwvxwwgvwwwhwxgwwwvwwvwwwwwxwwvwwwgxhwwxwwwwwvwwwvwwwxVvuwxxwwwwwwwwwwwwwxwwwwxxxgwxgwwwwwwvwxwxwwwwxwvwxxwxwxwfvwvVuvgguuwwwwvwggvwvwwvwxgguvwwwwxvwwvuwwwwxwxwfvwwvgwvvwhwvwwwwwwwvwwvwvwwwxwwxxxxwwwwwwWfuvufwuwwwxvvwxxxwgwufwugwwvxuwwwxxwfwvvwgwwwvfvxwxwwwwggvxxxwvwwxwwwfvvwfvgwwwvwwgfuvvwgvfwvwwxwwfgvwwwwxhwvwwwxvwwvwwxgwvwwwwxwvvwwvwxghwwwwxwwwvwvwwwxxvxwwxwxgxwhgvwvvwwwwxxwugwhwwxgxxxwwxwwwxxwwfwxwvxgvwwgwwwwwxxxwhxxxvwwuwwwfvvuwwwwvgfwwvWwgwwwwwgvwgWvuwvwgwwwgwwwggvwwwwwgxxwwwwgwgfwwwvwgewwgvgvwwfvwxgxwgvwwwwwwwgwwwwxwwxgwwuffwwgwvuwwwwuxwfvgwwwwwwwwwxxwwwxwwwvwwwwwwwwwxwwgxwwwxwwxxwxwhxvxhhwxgwvvgVgvvFewfvfewWgwgvwWwvwxgguvwwvvwwVvwgfgvvwgwxwwwwvwxwxwxwgwwwwwgwvwgwwwwxxwwgwgfxwghwvwvwwxwxxxhwwggwwwwxxxwxwxwxxwwwgvfgwvvwwwwwwfvgxwwwxwwwvvxxxwxwwwwxwwwxwxwgxwwgxvwwwxwhwxwxwxwwxxxwxwwwwghwxxwxwvwxwWvxwwwUddwgwgvvwwwwvvwgwvwwvffgwwwgwvwwgxxvwvwWwfffgfvwwwwgwvwvwggxxwwwwwwwwxwwwwwwwwwxwwhwwwwwfvwwgwwwwwgxxxgxxwxhwggvwwwhwxwxwwxwxwgxhxvvxgwwvwgwxxwxwwwxxxxxxwxxwwxxwxxxwXxwxwxwggUddvVvvwwwWwvvwwggvgwwwvvwvwvwwwxwxwwwwwwwwwwwwwxwwwxwwvwxwwwwwwvvwwxwwwggxwhgwwgwxwwwwwvwwguwxxwxwxwwgvwwwhgwwxwwxxhwgxhxwxxxhxvwwxxwxxxwxwwxxhgwgxxxxwxxwwwxxgwxxxwwxvvvwvwwwwwxwxwwwwfwvvwvwvwwwgwwuwwwwxwvwwgvwwwwwwwvwgwwwxwwwwgvvgwwhxvwwuwwxxwwwwwwwxfwxwxxwwgwvxxxxgvxwwxwvwwwxxwwxvxxxxwvwWxxwwxwxwwwvwvwfwfguwwwWwGfvwgxwxwwVvvfwtgwwxxxfvwwwvvwxwggwvwgwgxwwxwwwwxwwwwvggwgxwwxwwwgwxxfwwwvwvwgugwwxwvwwxwxxxxxvfwvwwwxxuwwwxwxwwwwwwgxxwwxwxwwwwwwgvwxxwggWxxwwxfwvwwvwwuwwwWwwxwuwwwwvwxwvfwxwwvwgwvvwxwwwwwwwxwvwwvxwwwwxwwwwwwwxxxxvwwwwgxxvvvgwwwxwxvwwwwwxwwvvwwxxwwwwxvwwhwwwwwwwwxxgwwwwxwgfwvvfGwwxxgvwvwwfwwxhwwvvxxwwxxvxwwvwwxwwxwwwwwgwwvxwwwwxwxvwwwwwwwwxvvvxwxwwwwwwwwwxwwgxwwwwwwhwwxxxvwxwxvfwxwwxwwxxxwwwwwwxxxwxwwxxwxxwwxwwvuwvuvwggvgwvwwgwvwgwgwgvvwvwgwwvwwwuwvvwfwwwwvgxwwwwvwgwwvwvwwwwwwwwxwwxwwwwwgwvwwvvwwhxwwuwwwwwxwxxwwwuvwwwhxwvwwxwwwwwwvvxwvvgwwwxxwwxvxvwwgwggwwvvwVvvvwwgwvwfxfwwwwwgwvwvvuvwewuuwwfvwwwvwvfwwgwvvwvwwvggvwwwgwxvwvwvwwwuwwwwwgwxwxgwwwwwxwwxwwgwwwwuwwxwxvwxvwwwwwxhwwwwwwwvxwxwwwvxxwxwvxfwwxwwwhxwwwwwwvwwvwfwwfgxwwvewvgvwwvwxgwwvxwvwwgvuwwwgwxxggwwwwwwwwvwxxvwwwvwwwghwwxwvwwwwwgwxwgvwwgvwxhwvvgvgvwwvvwwwxxwxxwwwwwwwxwwwxxxxvxxwwvvgwxxwxxxxwhxwwxwwxxxvwggfgfwwxgwwgwxuvwwgwvwwxwgwwhhwwwvwwwgvgfwwwxvwvxwwwwvwwwwvxwwxvwwvwxgwxwwwwwwwwwvwwxuxhwwwwxwwwwxxwwwwxhwxxwwwxxwwwwwxwwwwxxwxxwwhvxwuwwwvwvvvwxvUfwwfvfwwwwvfvvwfvvwwwvfuvwvuvvfvvfgvwfuwvwwwwwwxWuuwfgftwggvwwwgfwuwfwvwvvwwvwvwuxxvWxwxwgwwwvvxvuvwfvvfvwfwxxhwgvgwwwwxxwvwghxxghvwwvwwuufwXwwwwwwwXwwwfuuwwwxwwxwxwhwxwxwwvwvwgGtfwewwfevfw7uewgwfgvgfwfuFwvwfvwwffwvwwfvgwwfvVewxvwvwwwwwwwwwwwwwwvwewgwxxgwwfvWhcwwwwwgxwvwhwfvwHxdgvwxWvvxfwwwwegwvwvwxgvVgxwWxxxwgwfvwwwwvwwwwwwxwwxwxxwvgwghwwwgvwuhXxfwwfxvwwwxxwxwwwwvwxwxwwwxwwvwwgFfvwwwffvvwVeugVvvgvvxwxgvwvwwwwwwwwxwfgvvwwhwwxwghvfvvwuwvvvwxxwvvvwvwgwxwwvvvvwwhwxwwwwwwwwxxxwxwffwwwvvvwgwfvvvwgvwhwgwvwgvhvwwvwxgwxXxggxvwvgwxgwwvwwwwxxxwxxwgwwwwxwwxwgxwwxwxxwwwwvwxwfweewVgvxvweugeg7gwwgwfvwvwwvwwgwwwwwwwgxwVgwwwwwwwfwwwwwvwVvxxwgwxwvgXxdgxwxwguwwxwwwwwwwwwxwhwwvfwwvwvwwvwxwwwwxwwvwwxwwwxwwxwwgwxwxwwxwwwwwgwxxghwwxxxwxwxxwgxvwxgwvgwwwvhwwwxgxwwwwwgwvxwuwwwvwwwwgwwwxgwwwvwwwwvxwvvvfwwgvfwwvwwwwfwgxvwwwwwvwwvfgvwwwwwwvwwwwvwfwwwvxwgwwwwxgwxxwwwvwwvwwwwggfwgwwwwwwvfwwfvwwvxfvxwwwwxwwxwvwwwwxxxwwwwwwwfvwwwxxwwhwwxwwwwwxxxxvwwvwETwgwwwuuwwgwgvvvwwwwwwwggfvvffwwgwwxvfwwwgwvfvgwvwwvvvgxwwwwgwwwwxxwwwwwwwwwwwwwgvgxgxxxwwwwxxxwhgwwwwxwuuwwggfxxfxwwgwwxwfwwgwwwxwxwwxwwgxwwwxwwwwxwwwwwxwwxxwwwwxwwwwwwwwgwxwwwgxwwxwwxwwwxxxwvvgwvvvwfwfwwvvwwwwwwfwvwwwgVeUuuwwvvvfuuwgxxxwwwwwgfwwfxvwwwwwwwxwwwwxwxfuuwwgvwwwwwxwwwxxwwwxvvfwwvwvxwfwwwwvwvxwhxwwvwvvxvwwwxxxxxwwwwwxvxxxvxfwfggxwxwxwwxvwxxwxxgxwwxxxxwxxxxxxxxxxwhxvwxwfwfvvffvwwxwwwvwwwxwwwwxxwwUuuwgvXvwwwxwxvwvwvvwwxfxwwwwwvvxwwwxgwwxwwwwxxxwwvwvvwxxwgvwwwwwwVewxxwvvfwwwvxvwgxgvwxwwxwxgwxxwwwvwwxwvxwwxwxwwxxxwhwvxwxxxwwwfxxxgxwwwwwvvxgwvwwvufwwvvggwwvvwwvwvvwvvvgvwwgvgwwvvwgfwfwwwgwwwwvuwvwwvwvwwwwwgvxwwvwwwfwwfwfwwwwwwgvxfvfwwgfwgvwwvwwxwwwwgwwxffgwwxwwwwvwxwwxwwvwxxwvvxwxwwwvwwwxwwfvwVevvfvgwwfvwvfwtvfwvvvwvwwwwwvgwwwxwvvgvvgfvwwwwvwxwwwvgwwvwwgxwxwwwwxxwvvwwwwwwwwwwvwwxwgfxwwwwwvgwxvwxwwhwwhfxwgxwxwwwwxwwwwwwxxxxwwwwwwwwxvxwxwwxxwxwvvwfvwfwvwwvwvwwwfvvuwwvwwwwwvwwvgwvwwgvvvxwxwgwvwwvvwuwvwxfwwfvwvwuvxwxwxwhwvvwwwxwwxwgwfwwvwxfvwwgvxwxxvgvwghwwhhvxxwwwwwxwwwwwwxxwwxxwvwxxhwvwwxwxxgwxwxvwwfwvwwgwvxwvvvwvuwfvwwgfwwwxgwwfwhgwwwwwgwfwgwwwxvwwwvwwwwwvwwwwvgwwwvxwwxxhwwwwwwvxwxwwxhwwhwxgwxwxxvgwxxwwvwwxwhxxxxxxxvwwxwwwxwwwwxxwwvwxeffgwgggwvwwwwvweuvwwvgvvwvwvwvvvfvwuwvwvvvwvWfwfwvwfvwwwwwwvvvvfevvfvvwvwwggvwvfwgwfwwwvwwgUvvwvvwwvvwgvvwwgggvwxwwwwfvvvwgwwxwvvWfwvvwfwwgwwwvwfgwgvwwgxfwvgwgxwwxxvwxwwwgvvvgvxwwfvwwgwwwwWwvxwguwgwwgwwwwwwwwfvwwwgxwvwxxwggvwwgvgvgwvwvvwvfVufvfgeuvwwwwvvFewwxguvwwwxUefVgggvvWguwwwwwwgwwwfgwgggwwwwwgfxgWewwwwwwxffwwvxwwVgwwwvgvwfxWwfwwxgxwwwvhwffvgevxfvgVxgwvwxfwwvwfgxgxwwfwvxfffxhvwwwxwwwvwxxwfxwwgfwwhWggwwwwvwwwxwwxwwwwxvwvwxwwxwwwvxwxwgvvwwvVvuvwwwvevvWfvfwwwfvffvwwgxvvfwvwwwwDuufwwwwwwwwvwgfwugvfvfvfvffvwgfuwxwwwUwxwvggwwwggfwwvvvxxfwvwwwwvfwvwwvwgggwwwwxgvwggxxvuwvgwwwwxwwguwwfwgwgfwwguvvwxvwwwwvvwwhxwgvwxxgvwuwwwwwwgwxwwwwgghxgwwxxuxvfWwfwwwfwfwxwgDeufwwvfvwgvwwveuvgxwwgwxwvwxxxwggWwgwgwwwwwxwfwggwwggfxwwwwwwwxgWwwgfwgwwvwwgWvwwwvxghwfggwwwwxfuwvwvxxwxwwwgvwgVvxwgvwwwwwvwwwxgwwwugwwvwwxxxwwxwxwxwxwwwwwwwxwgwxwwgxwwwxwxwwwxwxwwxxvuvxVvwwwxugggwwgwxwwxwwwwwxxvwwwxwvgwwwxxxvfwwwvvwgfwwwwwgwwwuwvvwwwvwwwwwwwxwwxwwxwguwwwgxwwhwwhxxwwxxwvwgwxxxwxvvgvvfwvwvwxwwwwwwxwvwwwwvwxxxxvgvwWuwwffwwuxgwwwwwwvwxwxgWvvwxgwwxgwwxwwwefffwwvvvwwvwwxxwxxxxwvwvgwwvwxwwwxwgwxxxxxwwevwuwxwwwgwxvwwwwwWvwwwxwxxxwwvwvxwxwvwwwwwwwxxwwwxwxxwxwxwxwwxwxxwxgwwwxxwvwvwwuwwwvwwwwvvwwwvxxwwwxvwwwxwvgxuwhgvwWwwwwhvwhwgwgvwwxwfwwxwvwgwwwwwwvwwwhwxwfwwxwwxwwwwwwxxwwwxxxwxfuvwfvwwwwwwwwuwwwwxwwxxwwxwxwwwgxxwvfvfufwvgvwwgvgwvwxwwxwwwgwwwxwwxwwwwwhwwxvwwvwugxwvvwxxgxhwwwwwxwwwwwvwvghwwxwwvvffevxwhxxvvvxgwxxxxxwwxxxwxxxxxwwwwvgvwwvwwxxxxxxwwxxxwxxwxxuvvwvvuwwvfxvhuWufwfwxwwxxwvxvvwwvwwxvgwgwwwwwwwwxgwwwwwwwwxwvxxxxgxwvfwwwwwwwwwwwvwwwwxwwwwwwxgwwvwgwxwwxwxwxwvwwxwhxxwwwxxvwwvvwUVwgxwgwfvwxgvxwxxxfvvwwxwxxxguVxgwgwvwwwwwwwxhwxwwwvvxxxxxxxwwxxwxwvfwwwwgwwhwwxvwwxwxxwwxxwxwwwxxwwwwwwwxwxwwwwwxxxwwxwxxxxwxvwvvwwvwwwwwwvgwgwhvvvwgxwwwxgwwxuwvfwvwwvvgvxfvxwvwugwwfwwgwvxwxvevvwwwwUfuwwwxwvwwgwvwwwwwffwxxxxwxxwxwxvwffwwvwgvvhvwwwwwxgxxwxxxxxxxwxxhwxwwgwgwwwgvwwxxWwxwwwhwwhvwxxgxwwwxxxxxwhxwgvvwwwwwwxxwwhxwwvwwwwwxwwwxxwwwUuvfwgxvvwghwxxwxXwwggxhxwwxxwwxxxwxvwhwxxxvxwxwvwxxtwwwxwwwwwwexwwwxwwwwwwwxxwxwxwxwwwwgvvwwwfvvvwwwgfwwwgxgwwgwvxwwvwwgdvxwxwwxgwwwvvwgvwgfgxwwxwgxxwfwwxwwxxxwhwwxwxvewwwwvwwwwwwwfvwvggwwwwwwwfwwxxvwxxwxxxwwwvwwhgdwwvwVgwxwwwwwvgwwwwvwxvgwwvxxvfuvwgwwvuvwwwwwwvgwxwwewvxwwwwwgwwwxwhwxwxxwxxxvffugwvfxwxwxwwwfhwgwwxxwwwwxwxxxxhwxwvwwwgwwgxxwvwwgvwxxwwwvwwxxgwhxxxwgwwwxgvwwwxwwwwwuxfgwwwwwvgwwxwwwxxxwwxxxwxyvgwwgwwwwvvwwFfvhhwxwwwxwxvwwwwxwwwxxxxwwvggwwwvwvwgwwwwwfgwwwxvxwxwwxxxxxwhxxxwwfuvgwxwxwwwwxxvwwvfgxhwwxxxxwvxwxxwhwwxwxxgVggwvdwwgvwgwxwvxwxwwxxxxxwxxxwxgvwxhwwwwwwwvvgwxwhwwexgwwxwxwwwxwxwwxxwwwwwwfUfxwxwwvwxwwxwxxxwxwwwwwxwwxxxwwwxwwxwwwxxgvwxxxwwxwxxwwwwxxvvwwwwwwwwxwwwwwgwwvwxwwwvwvwwwwwwxwwwwgeevwffwvfgeevwvwvwwgwwvwfwwwvvwwwwwxwwwwvggvwwwwwwwwwwwxgwwwwwwwvwwwwwweewvwgwwvwwgfwxwvwvxxwvxwwwxwwwwgvwwvwwwwgfwwvwwvwwwxvwvwwwvwwfvwwvwwwwuuvwwwgwwvffuvwwwwfxgxvwwwfwwgvwvwwvvwgxfwxwxwwvvwwwwwxwvwwwwwwgxwwxfxxxwwwwwwvxwvxxvvwxwwvwgvwwwwwfgwgwwwwhwxwxwwwxwxwxxwvvvwwwwwwvvwwwwwwwxwwwwgwwwwwxvxwwfvwwvgwwwwwwwwwvwwwwxgwwwxgwvwwvwwvxhxwxwxwwfwwwxwwxwwwwwxwwwwwwwwxxwwxgwwwwwwxwvwvxhwwxwxwwvwwwwvwxhwwwwvwwwxhwwwgwgwwvggwfwxwwvxwwwvwxwwwfvwwwwwvwhxwwwwwgwgwwwxwvwhwwwxwwwwwwwhxvxveuwwgwgwwwvxgwwwwwwhwxwhwwwwwwwwwvxvwvwgwwfwwfwwwwwwxwwwxwwwwwwwwwwwxwxwwxwwwgvwwxwxxxwwwwwwwvwwwxwwwgxwwwwwwwwwwwxxxwwvwxwxvgwwxwwvwfxgwwvwwxxwxfgwvwxwwwgxwvxgvwwwgVwwwwwwwwwwxwwwwwxxxwwxxwwwwxwgwwwwwwwwgxwwwwwvgvxwxxxxwwwwwwwwxvwwxwwxxwxwwwxxwxwxwvwvhWwvwxgEVvxxwvxwwwwxwxwwhwwhwghfgwwwwxxwwwuwxwwwwxwwwwwwwxwwxwxxwwwxwxhwwwwwwwwxwwhxxxxgxwxxxwwwwxwxxwwxxwwfxxwwxxwwxwxwwwwwwwwxwfxwwfxwwvwwwxwwvwwwwwwwwwwvxwwwwfwxxvwuwxwwVwwgvwwwwwwfVvgwwxxxwgvvxwhxwgwwwxxwgvwwwwwwxwwgwwwwxxwxwgxwxwhwvfwvxwxwvgwwwwwwwxxwxfwxxxxxxwwwwwwxwxwwwwwxgwwwwwwwxxxwwxwwwwvwffvWxxxwwxxwwWwxwxxwhhyxwxxxwxxxwwxwwwwwxwwwxxwtwwwwfwwwxvwwvvvwvwwwwfwwgwwvhwwhwwwugwwwwgwhxwvvwwgvwwvfwvwwgfgwvwwvvvxwwwffuwwvvxgvwxwghvxwwwwwfwugvevwWfvuxwgwwxwevwgwwfvwwvvwwxwxwwwWfvwxxwwhwwWvwvxvvwgwwffwwxgwgvwwwxwxwwvwwxxvwwxxxwxxwwwxxwvwugvvwvvUdvwwFvwvuwvguvwwwvVvggwxfwwwxwwwwxwvwwwwggwgvxwvgwgwwvgfwwxwggwuwvwvwvwgwvwwwwgwwwwgwwxvwwwvfwwvxwwwwgvevwhwWwgwwwwwwwhvxwwxwwwxxxwxgwxxgvwwwwvwwvwxwwwgxvwgxwwwwwvxxxwwxwxxwvgvhvgwwgwwwwEugwfwwfvvvwwgwxggwxgwxwgwfxwwwwxgwwvvvgfgvvvfvvwvfvwfvvwwwwgwwwgwgwvuwwwvxwwwwvxwwWwgwhxwvvwWvwwfFgugxwggvWwwgwHxWgdwwwgvhgwxxxwhggwwfxxwwwwwVvwwwwwvxhgvvwwwhwWwgxegwwhwwwwwgvwvwwxvwgwxxwwwxwgwwvgwgvwWevWwwwfvvhxxgwwgwgwxwwwwwwwwwwxxvxwxxxwgWgxxwvwwvgvwwgwvwwuxvgwwvwvvwwgwwxwwwwvwvvvwgwwwvwwwwvugvwgggwfxxwwwwwWWhVxgwwhwwwwwwwwxxxvwwwwgxwwwhWvwwgwwwwhwgfvwwwxhgwwwvxwwgwwxgxwgwhgwgwgwvwwwxwwwgvwxvvxwwwwwxwxwwwwwwxgxxfewwwvfwwvwwwxwwvwxvfwfvuwwwwxwvvwxxwxxxvvwvwwwwvWvxwwwwVwwwwxwwxxxgwwhxxwwvvvwwwwwwwwxwfvvwwhwwVvvwwwwxwxxgwwxxxxwxwwgxvwwvgwwfexgxhwuwxvgwwxxwwwwgwxxxxxwfvwwgxhfvgwwvwvwvxxxvwwuwxhvvvwwwwgwwvwvvwvxwwgwwwxwwvuvwwwfwvxwvvwxxxwwwxwxxxxwwwxwxxxvwwxwvvvwwwwxwxwxvwwwxwwwxxwwwxvxxxwwwwxfvwwwwwwwxwwvvgwwfhxwvwwwxwwxwvwwxxxfvwwwxvwxwwwxwwvwwxwgxVwvwwwgwwwwxwwwxxwxuwVvwwxwhwwwwffgwwxxvwwxvgvwwvwxxxwfwugwxwxwxUvvgwuhwwxxxxvgwwvxwxxwxhvwvhwwwxxvwwgxwxxwgwwvxvwxfuwgwxxwwxxxfvwwwwwvwwwxwxfvwwxwvwxwwwwgwvvwvxwwxwxwxxwwwwwwwxxwxwvwwxwwxwwVfvwwwxwwwvgwwxwwhgxwxggxwxwwwxwwwwvgwwwwwwxgwxxwwwwwxxxwwxuUfwwwwvwxwfwfvvwvwvwvwwwwvwfwwwwgwuxewwwwUvfvwvvVvwwexvwwwwwVuwwwwvwgvvvvwdvwwvwvwgvwwvvwwvwwvuvwfvwgvvwwwfwgwuwwwxwxwggxwwwgwxhFwxwwwwxxwffvuuwwwwwxevxwvwxwxggVwxvxwwvwfwwwwwxwxwxwvwgwvwVvwwwgvggwwfxvdvgxwvwVvgwwwwxgffvxgwvwwwgwxewgwwvwgwvvgwfvgwwwxhwfggxwvwvwwwwwfxxewfgwxwwwxwvvwwVvwwwvuvgwwwvdvxwgwgwxhgwwwwhghhwwwwxxgwxwwvwwwwwxwhxghgwffwwxwghfxxwwxxgxhwxxgxwhwxxvvwwvvwvgwwfxwwwvvfffwwwgwwwfgvwwwwwwxxwxwxwtwwwvuxVfwgwxvwvvwvwfwdwwvwgvwwwwwwvxxgwwwwwwwwwwxxhhwwwwvfwwwvfgvwwwgefvugwwwwwgxwxwfvvgxhxxwxwwwwwwgxwgwwwwxxfvvwwwvwwxwwxdvwwwwvwwxxxwxvwwvwxwwgggwwgwvxwwhxxxxxwVvwfwxvvugwwwwfuwwwwvwuwwgwuvwwwxwxWhvwwwwwwxwxwxwvwwvwwwfwwwwwgvgfgwwwvwwwwgxxxgwxghgxwxgxxgwwxwwwwxgwwxxXxvwwewgwewwwvxwxfxxxwxwxxxwwxxwwwvwwgwxewxwgwxwguwxvvxwxwxxxxxwgwxwwwxxwwuwwgvwwvwwfwgfwxwfwfgwwwwwwwgvwwvvvwwwwwwwvwwvwvwgvffffvvvuwgvwhwfwvvwvgvwgwvfvuvguwwwxwwvwxxhwwgwwwxgwwwxguwhwgwwxfgwwwxVvwxwwwxxwwwwxgwwhfgwxxwxgwwgxwvwvvfwffwfwwxvfxwwwwhvwwwwwwwwwwgwwxxwwxwwxgwwwxgfwgwgvwwvffgfvvxwgvvwwwwwvwvvgvvxwfvwxhwwgwwwwWvxwwgwgwwvvwwvwgwgxwwfVwfwwvwwwgwwhwvuxvwwghxxwxgwwwgvggfvwvwwxVuwxxWvwwxhwxxwxggfxvgwwxxwwxwwwhxwhwgwvxwwxwwxxxxxgxwwxwwwwxwwwvxxxwhwwxwwwwwgwgwwgewvxgwwwwwwwvwgvvwxwwwxxwxwwwwwfvfvVvwxwwxvwgwwwwwgwwwxfwuwxxwwwxwwxwwwxxxwwxxgwwwwwwfgvwgwvgxxwvxvwwvghvwwxxgxwwwwxwwxxgwgwwxfxxwwgvwwwwwwwwwwwwwggggxxXfwwwwwwxwxxxxhwxvwwwxwwwvwgwWwvvwwwgvvwwwgwggvxxxwwwwwwxwxxgxvwxxxwvvwwwwgwwvwggwwwhgwwfwwwwgwvwgwxxwwxgwhxxxgwxwwvgwwwvhwxghxxgvwwWxhhwwwgwwhxhwvvwxxxwxwxwgwwxxvwwxwwwwhwwwwhvwhwvwvxwwxgwuwwvfwwwvwwwwwwvwwwvwxvgvgvwwwvvwwvgvwwhwwwwvgxwwwwwwwwwvwwwwwwxxwwwffwxxfvwwwxwwwwwgvwwxwwwhvwxxxwwwwgvwwwwwwwwwwwwwxxxwwxxgfxwxxwwwwxxvgwwTEvwwxwvvwwgvwwwwxwvwvvwwwwgvwwwwwwwwwvgvwgwwwwwvwwwxwwxxwwgwhwwgwwxxgwxhxxwgffxwwfxwwxwwwwwwxwxwwwhvvxwxxxwxwwwxwvxwwwwwxwwwwwwhwwhxwxxgwwxxwwvxwwvwwwgvvwwwWuxwwwwwwwxwxwxwwxwxxxxvvvgvvWuxfwwwwwwvxwwwwwwwwwwwwwxxgffwVevvvgvwwvwwwwwwvxxxwxxgwvwwwhxwwwxwxwwxwwvwvwgvvwwwwxwgwwxxxwwxwwgvxwxwxhwxwvvgfvvgvwgwgwxwxwwwgfxwwwwxwwwxwwwwxxwxwwvvwvwvwwfvxwwwwxwgvgxxwwxxxxwwwxwwVuffggwwwwwwwwwgxwxxwwxwxxhvxxxxwxwwwwwxwwwxxwwwwxxxxwwxxwwxwwwwwvwwwvwwwwvwxwvwggwvwwwvwwwwwwwwwwfwwwuWVuwfwgffxwwgvvwwwwwgVtvwvvvwvxvvfwwwvwxvwwvwwxgwvwxwvwxgwwwvvvwwxvgwwxwwwhwxhvwxxxxwVtwuvwwvwwwvvvwxxggxxxwwwwvwwwxwwwxvwxwxwvwfwgwVvvgwgxfwwxwwfgvvwvwwfwwvuwwwwgwvwwwxwwwwwxxvfvvwvdugwvvgwwwwWggvfxgxgeuvwggeuwxwwvgwwwwxvgwhxugvwwvffvwwwwvwwwwfwvvxwwwxwvwwvwwwwxwwxwfuvggWufwgxxxgggvvgxgxwgwwwwwvwvwxwgxxxxxwwvwwfwwvgwgwwfvwwfwwgwxwwwwwwwvwxvvxVgffvvvwwvvvwgffwgwwggwwwwvwwwwwwwwxxvwwwwwwwwwgwwwwwwxhwwwwwwxwwwxvwwgxwxvwwvwxgwxwxwwwhwwfwuwfwWwvwwwwwvwgwwxgwxgvwgwgwvxwxwwwwwwwxgxwVgvwwWgvgwgggvwvvwxwxvwwwxxxxxwxwvwwxwwwgetugwgfwwwxwwwvggwwhgxgxVwhwxwhwhgwxgxwhwwwwxxvwvwwgvgwwwvwwvwxwwwwwxwgxwxwxwxxwwwvxxxwxxxxwwwwxvxwwxwxwwwgxgxxgwxwxxxxwxwxxwhwxxwuwxgvwfWwxuwwgwxxfwvvwfvvwhwxvwvwwwxevwwwwwhvwgevvwvgfwwffwvwwfvgwwwwwwwwvvvwwwwwVffhwgwwxwxgwwgfvfwwfvwwxfwfgwwwwghxwvwwwvwwxxfwwwwxxxgwfwfwwwvvwwwwwwwxxwgxxxwhxhfwxwwwxwwwxxwxxwgvwxgwwufxvfvvvwexhwgvwgwhfwwvwwwfvvwvuwwwwvwwwwgvwxvgwgwwxwwwwvvwgfvvxwxvwxvxwwwxxgvvvwgvwwwwwvxvxgwwxxwgvwwfwfwwvgweuvxvwwwwwWwwxwxhwfvwwxgxwxxxxxxgwgggWvwxwwwvxgwhhgwgxgwxxxwwvwxxgxwxwwwgvwwwvwvwvvxVfwfwwwwxwwwwwxvwxvvwgwggfwwwwwVgvgwgwxwwxxwwxwwwxwghxxfwwwvfwwxggwgwvgwxxxxwgwwwxwwwxwxwwwxwxhxxwxwxxxwvwgwwwwwhxwgwxwXxghxwwxwxxwggxxwxwhxxwvwhvgvvwfuxxwwvwwwxxgxwwwwwwwxwwwwxwwxwxxgwvwwgwwxwwvwvwwgwgggwwxwxwxxwxxxggwxxxffuwwwvwwgwggwwhxxhwghxgwxxxxxxxwwwxwxxwxwxwwxwwvwwwxxwxWgwxxxxwwhxwwwxwxxxxvwwwwwwwxvgvwwwvvwvwwwwwwgvwwxxwvwwvwwxwwwwwwwxwwgwgwwwxxwwwxxxwwwwhwfwwwvwwwvwwwvvwwwwgvwwxxwwwwfwwwvwwxgvvwwwvxxhwwxxxxwwwwxgxwwgwvvwwxwwUVwwwwwxxwwvxxwxxvgwwwwwgxwwvwwxwwwvwvvxvvwwwgwwgvxxwxwgwwwwwxwwxgwxxwwwwxxwxfwxwwvwwwxvxxxxgwxwwwwgxwwwxwvwwvxxxvvvwwggfvwwwxxwfwwxwwwxwvfvgvxwwwwwxxfwvwwxvxwwwffwwwfwwfxwwwwwxgxxxVewwwgwwxxwxvwfwxwfwwfwwxgxvwwxxwwxxwwwwxxxwwgwwwwwwgwwwwxxwxxwxxxwxxwwwvxxwwwwwwwwwwwwwwwxwxxweuufxxxwxwxgvxvwwgwwwwwwxxxxwwwhgxwwwwwwxxwxxwwwwxwwgwwxwwwxwwwxwwvwwvxwwwwxvxwwwxwvfgwxwwxwgvwwxwwwwgwvwxvwwwwwvwwwwwwwwwgwgwxwvwwwxwxxxgwxwxgwwwxwxxwxwwxwvgwxvwwwggwwwwwfxxxwwxwxwwwwwgvwvwwvwgxwvwxwwwvfvvvwgwwvwvwwwwwvxwwxwwwxwwgwxvxwxwwghfwwwwgwvwwwgvwwwgxgvwvwwwwxwxwwvwwwgxwxwxwxwwwwxxvxgxvxwxwxwwwgxxwggxwhfxwwxwxwwwxwwwwwvwvwwvgwwwwwwwxwxwxwwwgwwxwwgvxwxwwwwvfvwgwvwwwwwwgwhxvxwvvwwxxxwvwvxvxwxwwfvvwwwwgwxwxwgwwgwxxxwwwgwgxwxxwxwwwgxxxgwwvvwwxwxwwwhxxxxwgxvwxhwxxwwwwwwwwwvwwgvwwvxwwwgwxhwxxwxwxvwwwwwwxwwwwxgvxgxvwvgvvvwwwgxwwxxwxxwvxwwwxwxwwvwvxxwxxxwxxxxxxxwwwwxxxwwwwxwxvwxwwwxwwgxvvvxwVwxwvwxwgwwwwwxwwvgvwxxwxxxwwwwgevwwwvwwgvwwwwvwwwvvwfvgvxwfwwvwwgwgwfvwwwWwwgvwwvwwvwwvwwxwgwwwwwxvgwwwwwxfwwwwxwxhwwvwwvgwwvxwwwfwwwfgxwwwwwwwwwvvgwxwwxhwwfxwwwwgwwwwfgwwwfgwfgwwfwwwewxvgvwvwwvvwxhwwxwxgxxwxvwwwwwwwvwwwwwvWguggxwVffvfxvwvxvvwgvwwvwwxgxgxvxgxvwwwwvxwwwwwxwwggxwgxwhxwwwwgwwfgxwwhxwxhvgxwxvwwvwgwwwxffxxgxwxvwxwxxwvvwwxxxgywghwxwwvvwwwxwwxwwvwvwwwwwwwxwgwwwxwwwxfwwxvwwwwwwgvwwwwwwWvwwxwxwvwwuwwwvwwvwgwxxggxwwfgwwgwwxwwwwfwwhxxvxwUxwfvwwwwwxhwgwwwwxgxxwgxwxwwwggvxwwWxwwWgxwxwxxfgvfwwxwxwxxxwxwwgwvgwwwfwwwwwwwxvwgvvwwvvwgwwwvwwxWwxwxgxwxwwwxxxwxxvwwwwwgvvuwwgvhvvwwhVhwxvxwgwwwxwwwwwgwwvwwwwgwwwvwwgwwwvxwxwgwwwwvwwxgxwxgxxwwwwwwwxwwwxxwwwwxxxxhwxwwwxwvxwxwgwwxwxwwxvwwxgwwhwgxxwufvwvwvwvvwvwwgvwxwwvvxwvgvegvwxwfvvxvwwwxvvhwxfvfvvvvvwgvvWvwgwwwwwwguwwvwwVvvfevgeevgvxvfvwwwgwgwwwwevvwveffxwfVuxvggvvwwxwxxxwgvvwwfxwwwwwxvwwgwwwgwxxxvffvfvvwfvwfhfvvxgwwgxwxfgxwxxhgwwgwxwxhwwgwWxxwwxwwwvwgwwwfvwvgggwwwwxwWfwwfwuwUfuuvvgwvwwwgfwgwgxvwxwxgwvhxwwfwwfwwgwvwwwgxwwwvwvxgwfvvfwvwfxgwvwxxvwwwvwwwxhxfxgxvefeuvvgvwwgxgvgwwwwwwxwvvvgwhwgwxgxwwwxgxgwXhxgwwwfvwvwvxwxxwxwwwgwwwwwxwhgvhgwgwVxxgxxxgwWwxxvevwvgvwwwwvwwwgwwvxwxwwwvwwgewvgwvfxwwgvxgxxxwwhuwffvvvvwvwfvhvgwvxwwwwwwwwwxfvvwevwvwwwgwwggxwxwwwxwxwxfwVVfUwvfwvvgfvwvgwwxxxxwxvggwwWwwwwwxwwhwgwwgwxwwgxwwUgvgevgwgwvwgggvvgwwwwwwxwxxxxhwwwhgwwwxhgwgwxxxwwwgwwwxxwvfffvvgvvwvwwgvgwwvvvwxwwwxhguvggwwvwxwgwxwwwgxwgwwwxwfwwwgwwwwwwvvwwwwwxwgwwxwwgwwgwvvhxgxxwxxwggxwxvWvwggwvgxwxwwwwwxwxgxvwwxxgwwXwgwwxwxxwwgwwxwxhxwvwwwgxfwxxxxxwgwfwgwxwxxxxxwxhwxwhxwwhwxxvwvwwwwwvvwvxwgvwvwwwgwwvwwuuwvwwwwxvwgvegwwvwvfwvvwwwwwgwffwvvwwwvwwwggwwwgwwwwfwwvfxwwwvwfwwwwwwvwwwvwwwwwgwwwwwwwwwwwwwxxxwwwhxxuwfvwvwwwxwwwvxwwuvwwwwwxgxwwgwwgwxwwwxWwxwwwfwwwwwwvvwvwVgfwwwvUwwwgwvvwewxwvfvwwhwwwewxwwwgwwwwwwxwwwXwwwwwxwwgvvguwvwwvwWwgwgwxvWwwXxvwugxxwwvwwwwwwwwwvwxwwvwWwwwgWxwwwwwwxwxwwwwxwvxxwwwxxwgxwxhwxwxgwggxuxwwwwxwxxwxwxwwxxxWwwwxwwwwfwwwvwwgwwwwwwvWxwwwwwwwvwwhwwxwwgwwxvwuvwwwfwgwwggvwwgwfgwwwwwwwggwwgwvwwxwxxxgvwwwuwxgwwwgWwwwwvgwxhwwxvwwwwwxwwwwwxxwwwfxwxwwxwwwwWwwgwwwhxvwxuwgxgwwwgwxxwxxvwxxxwghvwfwvwvvwxxwvfwvwwWvwxfwgxwwwwwwwwwwVwwwxwxhxgwwvwwwwhwwwwvfvvvwWxvuxfxxwwxxxugwwwwwwwwwxxxwwwuxwhgxxwwwvgxwwwwgwwwxxxxxwwxxxhwwwhwxwwwwwvvxxwvwxxwwwwwxwxwxwxxxxxsgwwgfwffwwwwvffwwgvfgwgvwfvvvwvvwwwvwvfwwwwwxVvfwwgvvwwffwvwvVdfffwgwwfvwxwgvwgfgvfvwfuwwwwwvwwwfwvwwwwwwVuwvvwvfvwfgvwwwwvfwwwxwwwfwxvxxwTvvwwfxxwgwxxwwgvvvwuwgvwwwvgggwfwwxwxvxwgewvxwwwxxxvwwxfhhwxxwffgvVuwugwwWuwwffwwwvgvESvwwwwwWvwwgwwvtuxxwwgfvwwgwgwfwwgxwvfwwgwwgwwfgwgfwwffxwxWvvwgwfwwgggwwwwgwwwWfguwwgvvxwwwvfwwwxfvwwxwxgfugggwfwwxgxwxfufwwxgxwhxxwgvggfhgxxwxxwwwwwvwwwwwxwwwwffgvwwwxvxxxxwwvwwwwxwwwxvxwvgxwxvwwwVvvhgwWvwwwwxfWgwgvwwgwxvgxwVewgvxfuwxxVuwwwwxvwvwwwfgfWfvwwvwffvwfgfwgfvfwwwVvwwwvwwfwwwwwwgwwwwwxwvvfggfwfvvgww5vewxgvgvvwxxxwvwwvgwxgggvwwxgwguwwWxwwwwVgefwwxFevgwxwwwvwxwvgwwfwgwvgvxwvvxwgwwwhfwfxxwwhwwwwxwwfgwgwvxgvggvxFUfghwwffgvgxwfvvxgwxvgwwwwxxxwwwwXVwwwwwwwgwwvgwwwgxvwwwgWwvwwwwggvwvxwwwvwwwvgwvwwgwwwwwwvvfdvwxgwvwwwwwxvVfhfxgwfwwwvwgwwgwfhfvvxvwwxxhxxhwvwgwwwwxwgvwWfgvxxWvvwwwwwxxwxwhwxgwxxuxwwhxwwxwwwvwxxwwvwvwwvwhwwfwwweuwwwwxwwwxwwwvwwwwwxwwxxxwvwwwfwwxxxwwxxgvwvwxwxxxxwvvggwwwwwwwxwwxwwwwwfwwwxxwxxxwwwgvwvwwwvgwgguwwwvwwwxxwwwxvffwwvwgfwwwwwwwgwwfwwxvvwwvvwwwvxxvwxwvwfvwwwvvxxggwwgxwwwvwwwwxxwvghwwwvwwgxwwwwwvwxxwxxfxwxxwwwvvwfwxhvwwwhwwwgwwwwvwvvxxxxxxvwgVvuwxwwwxwwwwxwwxwwwxxxwwfwfgwwvgwwwxxwvwxgvvgwwvwxxxwgxfvfwggfgwxwwxwxxwwxwxwwwwwwwxxhxxhhwwxvgfwwwwwvwvwxxxvxxxxwuuvwxxxxwxwwvgvwwvvxwwxwwvfxwhxwwwxvwwwvxwxwwwwwwxxxxxwggffwwxwwwwgwwxwxxxwwwxwxxvwxxwxxfwxxwvwxwxwwxxxwxwwxxxwwhwwwwwwwvvwvuxvffwvuggffwwwxwvwuwuhgvwwgwvwwvwwgwwweUWWgvvvfvfUwwwwwwwvgwwwwfgvwwwweuwwvxxwwwwgwtwvfvwgwevwwevwwwfxgwwwwwevfvwgwgwwwwuxgwxxxwxwvfvwvvvVvvwwvwwxgvwwwwwwwwgwvwwwxxwxxxwwwxwwvvwwvfwvWvwfufEfwvwwwwfvwwvtgwvTdveevgwfvwvgxxwwffvwvwvwwWwgwwtxwwwvwwwwwgwxgVvvwxVvvgwwwwwwVwwxfwxwwuuvfvvwfvfVhwvvwxwwexwgwwwVguxwwgwgxwvwxxwxwwwwxgwgwvgfuwgvwwxvwwhgwxgxwgxwwwgwwwxwxvwwwwwwwxgexvgvvVuvevuwvgfwwwvvxfwwvxwwvuwwwxwwwxgwwwguwfewuvfvwvwvgwuwvgggwwwwwwwwwvvvwwvgvwwwwwwgvwufgFvtwwwvgwwWgvvvxVwhwggxxxgwuwvwwvwvwWgehwwxgwwwhhgwgwVvuvxwvvxwfwwwgwxwwwwgfxwxxvwvwggfwwwwvwwugwwwwvxvwwVfufewwhfVwvwxwwvwwxewgGwwvwwgwwwwvwxggwwxfwwxggwxwwfwwfvuwfwwwwwfvwvwvgwgwwwwwvwxwwwwvwwwwwwvwwwuvxweuvgwwehxwgwxvhhevhghwxwvwvvghfhxvvfwxwwgvwwwwgwfewwwwwwxgfwwxwxxwvwxxwgwwWwvwwgufvvgwvwfvwwfvvwfvwvwwwwvwvgwwwfgwwwwwvwwwwxfwxvxfwVewWegwwfeugwggvvefwwfvwwwvxgwvgfvwwgwgwfvvvuvwwwwwwwgxfvvvwgewfwwvwvwwfWwwwwWwxvwhwwuwwwvvwxwxggwwwhxxwgwwwfWwfwwwvwvwwwgwwwwwwgwwxwxwvvwwwwxxgwgwxvwxxxwxxxxgfvwVevvfvvuuwgwgfwfwuwfuwwwwxwVgwwfwggwvwgxvgwwwwwwwwgxvwwwfwwwwfgeggVvgwuwvwwwwhwwvwvwwxgwegvghgwwvwgwwwwgvvwwhgvxwvxwwxvgffuvfgvuwgvgfvwwwwwWwwwgvvwxxwwxwxwhgxxXxfwwwwwwwwwwWvvgwvgevxghxwxwxxwwxxWxfxgwwwwwxxwhxvwxvxvugwgfgvwvvfwuwvvgwwggvwxwwgvwvWvwgwvwwgvwwhhxvwxuvwvfwvfffwugvvvvwwwwWvwwwwgWwwfwwwwwxxwgvwwwfxvwxgvwwfvwfwvvfgwuwwffwggwwhfwwWxghwgwwwwgwhxgxwwwhxhgwgwwwggwxfwgvwwghufvgwwwwvwvgwxXfwWvvwwgwwwvgwwwxvxwwxxxXwfwxwxgxxwffvvvfggvwvxxffvvwgwwfvwgwwwwvWwwhxgwwwwxhwwwxwwWxwxwwwffwwgfgffwwwgwvvwwwwxWgghfwxxxwvwxwvwwwwwgggwwwwwwwgwwxfwwwwhwwvwggwwxxwxwxwhwvwwxvwxhxwxwxvwvxxwwxxxhwwwxwwvwhwwgghwvxwwwwwhviwwwwwxwhhvxhwwxwwgwwwwwgxwwgvgxwwwwwwxuwwgxwwvwwwgwgwwxvvxxxwwwxwgvwgvwwwwwwwwwgvvxxwVwvwwwvvwwgwwwxxwxwwwwxffwwwxuwwwwwwwxxwgfuvgwwwwxwwgwvxwwxwxwxgwwvwwwxwwwwwwgxxgwwxwvwwxxgwgwwwxwwvvvvguvwwvgwvvxvuxxwwwwwvewWvwwwwwwggxxvxwxgvwwwwgwwxwwwwwxwwwwwwvxvwvwgvegwwvxwwwvwwgxwxxwgwvgfuvwxxwwvvxxVxgvwgwwxgwwxwwxwwxxwwgwwxxwwwxxxwxxxwgwvwwwxxwxxwwwxxwwxwwwuwvwxwwxgwwwxwwwxxwxwwwgvxxwwwwwwwxxgwwvwgvvwwwwwwwxxwfvvxgwgwxxwxwwwxxwwwwwwwwxgvwgwxxhvwwwwwwwvwxwwxwwwvvwhhfwxwwwwwwgxwxxxwwwwxghWxwxwxwxvwghwwwwwwwwxwwgwvvgwwuwwxvwwwwwwxxwxxwwxwwwwvxgwwwxwxwxwwwwwwxxhxxwwwxwxwvvvwgvWxwxwwwgwwfwxwwwwwvwvxwxwxxgxxxwxwxvxxwxvgwxxwxvxwwvwvwxxxxxgwgvvwwvwwxwwwwwvvwwuwvvwwxwuwwvwwwwxgwvfwvwuwwvwgvwgwwwwwwwgwwwvvvwwwvwgwuvwwuwwwwwwwgvwwwwwwwwwwwwwwgwfwhhvwwwWvwwwwxwvwvwwwvwvwxvxvwwxwvwwwwvwwwvwgxvwwwwwwxwwxwxvxwvwvwwvwxwvfvwwuwwwwfwwvvwgwwxxffwwvvfvwwgxxvwwwwwxwwgxwwwgwgwgwuvwfwwggxwffvvvxvwxvxgvwwwwwwxxwwvwxgwwwwvwvwwggxwwvwwwwwxghwxwwwxhxxwxxgxvwwxwwwwXwxfwvvvwxwwgwvwxvwxwvwwwwwwwwwwwxwgwvvwwvwwwvvwvhwwvxvwwgwvvvwwwwwgvgxwwvuwwvvwwwvvxwwwwvxwewwwwwwvwwwxgVwxwvwwgxwwwffhvxgwwwwwgwvvxhwfgwffwwxwwwwvwhvxwwwwxwwwxwxvwgwwxghWxuxwvvwwwwwfxgwwwwxgwxxwxxxwwwwwwvxhwwwuxwvggxwwxwwwwwhwxvwvwwgwvxvwwwxvwwwwggwvfwvvwwghwwuhwxvwgvwwxxgwwwwwxwwxwxwxwwxxwwxgxwwwgwwwxwwxxwwxwxfxxxwwwwwwwwvvwxxvwxxfgwxgvxvfwwgvwwvfwwgvwgwvvwwwvwwvvwwwxwwggfwvvwxxxxwffffwVuwwgwwvvgwFfguvwvwvwgwfvwwwguwwwwwvfdfgwwwfgwwwxwvfewxwgvwwwwwxWvwwxxxvvgwwevwWwwvxwxwgwwxwwxxxwwfgwgwvgwvwwwgfvgwvwwwwgxwwvvvwwwwwwxwwvwxxwxwxwxfxgvwwWggvghwxwFfvgwwwvwVwwwuwwvuwwwvxwwvftvgwxxxwxxugxvgwvwwfwvwWwwvgwfWxwxexvuwhfgfvvwgwwwxxgxwwwfwwxhxvwfxgxwwvffvwwwwvxwxxfvwWwfwhxgwvvuwwxxwxxxwxvWwwhxwwwgwwwvwwxwxwxwwgvgxxwvwfxfxwwwwxwxwxvwwwgwfxwwwwxvuwxwwwwwxwwwwfwwwwwggwxwwxwwwwwvwwwVwvwxhwwwwxwuwwwwvwxvwwwvvfgfggwwVwwwwwvwwgwwwwwwxuffgwgXggxxwwWwfwwWwwwwxwwwwwxxwhwxfxwhwfVvvwwwVwwwwvwwxgwxfxxwwxwwffwgwwwgxwwgwwwgxwhWxggwwuwvwxgwuwwxwwxgwwwxwwxwwfwgvwhgvxxgvvXxwgxwvhxvwwvxwhwwwxwwwfxwwwwwwwwxwwwgwxwwvwwWvgwvvhxVwvhwxxwwwwwwwwxwwxwwvwgwwxxwgvwhwxwgxhwhgwwxwwxxwvxvxxwgvxvvwwwxxxwwwxwwwwwwfwxwwwwWxgwwxxwwxxvwwwwwwwtvvwvfgvxvwfwwvvwwwvgwwwwwvvwvufwwxwvwffwgwwwwxxwgvvvffVvwfxvvvgwwvwvwffuvwwgvufwufvvvvugvwfvwxwwwwxwwwwwgvugffvwwfgfvuvvevwwwwvwwwwgeevfvhwwwfhevwfvgwgxgwwfufvvvwxxwxvwwwvvgwwwwxgevvgevggwhwwwwwwxxxxgwwwwxwwgvvvVevuVfvwwwgeVgfvevvgvgwwwwwefvvvwwuwwvwUdvvwwwgvwvxgwwvvvwvgffwwvfvvvffwwwxwvwvggfvggvvvgvweugwwwwvwgwgfwvwvwwwgwvfvvvvvfwvwxwxwvvwwwwwWwxwwwwwvvvwggwgfwwxgvvwfwhxvgwwwwvwfvgwwfvvggwgwwgwggwewggwxwuvvfwgxvwwwwxwwvgwwwwvhxwfvvwwUtwvxgwvwugwwvwvvwvvxxxggwffvwwwwhgwvvwwwgugwwxwwuvuwevevfwvwvvvfwwgwvgvwwgwvwvvvwvvuxwwwwwwuwwwvwwvvwfvwvvefwvwwxVWfvvvwgwWwgwhhwFvuvvgwGxgwxxwwuwwxGWehhwwvvwUvvwfwfWvwwwgwwwWgvwwvwwwuwwvvwgwwwxxwvwwwfvwvwwwgfwfvvvwgwvwwxgvffuwwgwfwggxxxgVffgwwwwwgxxhWwwwwxgwwwwwfwvvfvvvvfwwgwfgwvgwwgwwfgvgwvgvfwvvvwgwwwwvhvvwwwwwwwwwvuwwwwvWwwgwhvuwwgwgWeggxwwwwfgwVwwwwxwvgwwwwwwwvxwwwwuwvwvxwwhwwwvwgxwvggwxggWvvvwwgwwxewvwwhwwwwwwwwwwwwwvwwwwwvuwgvvxvgwwvwwwwvwwwvfwwwgwwvufwgwgutuwfwvwfwvwvvwwwwwwguwvwvwvgwwvwwwvvwwwwvvgvxfvwvvgfvvwwfwvxwwgvxvwwwwgfwxxgxxwwwwvgvvwvwwwwwfvwxwwfgwxxxwuwwwgfvxwwwwxxwxwvwwwxvwgwvxwfghwwfwuvwwwvvgvwwvwevwwuxgevvwgwwwwwwwwgwwwgwvwvxwvfwwwgfwfwwffxwgwvggwvwgvwxuwfwewwgfwxgxxwvgWwguwgvvvgfvwxxwfwxwxfxwwvvgwwwxxxgwWxwvvwvxwhgffuwwwgxgwxwwwwwwwhvxwxwwxwvxwhwxxvwwwwwwwvfvwwguwwvwwxwfvwvvwxwfvwwxxwwvgvtuvvwvwfgfwhwwvwwxwwvvwwwvwwwwhwxwxwwvvwwuwxvxwwvvxwhwwxwvvwwwwwxwxgwvxgxwxxfxxvwvwwfwwwwwvgwvxxxfwvwxxwhxgfxxgwwxvvwwwwgxwwvwxvvufxwwwwwvvwxvwxwwwxgwxwggwwVvwwxwvwvvfgwWwhwxxgwwxwwxxhxwwwgwwwwxxwwevvxwwxwwwwxwwxxxxwvgxwgvxhwxvwwwwhwwxwxwgwvwwxxwwwwwxwwwwxwwxxgxgwxxwxvggwwwvwvvwwxwwvgwwwwgvwxvwvwwwvwvgwwvwgwxvxwwwgetwwVewguuvwVewgfvwgvvwwgwVvfufvvvgvwwvwgeVvvwwwgffwwfwWgwxwvwwvwvwwwwxwwwwwwwwxwwwwwwwxxgvwxwxxxwwwvevgvfwvgffvuvwwgvfwvwgxffvvwwgvwxwxgwwvwuwxXggxgxwgwwvvwvwwwvwwwwwgefvwvwwwvfvwwgfvfwwgwwwwvvvwvwgvgvvwfvfvwwwfwvwgvwgfuwgvwffvWVvvgwwwwvwfFxgXTgvvwvwgWvwvwggdvwgVwWgUwWgewgwvwwwwwxwwwwxvwwwwwfwwvwwwgwwwwwwxwwxwgwwgwwxwwvwwxgvwgwfvwgfvwggvwgVehgghwwhwgwwevwgwvwxwhvXwgXvwvhwwwwwwxfwwwwwwwwvgvvgxgwwgvwgwwwwvvwxwwwxwwwwwxwhvxxwwgwgvffwVvewgwvwxwfVfvwfVvgvxxwwhgvgwvwwgfugwwwwwvvwwwwwhvwwfwxwwwxwgvwwwwwgwgwwvvwwhwwwwwwwxxxgvwwwwwxxgxwgwvwxgwwwwWvvwgwwggwvfwxwGWxwfgggvwgwwwwxgXfhvguxwgwgwfvWvwfuuvvwwwgwwwwwwgwwwvgwwwgwxwvwwguwwxwwgwxxwwvgwwwwgxfxwvxwgfvwvWwgugwgwwuvgfVwgGEwhgvwwwuhwgwwvgWVwwwxgwvwwgwxxxwxwwxwxhwwwwwxwgwwwwwxxxxxwxxhwxvwwwxwwwvwvvgvwvwwxwwexxwvwwwxggvhwgwxvfwxvxvwwwwhfwvgwxWfwvgwwwwhvwxxwwxxxwxvwwxwwwvwwgxwwwhwwwxxwxxwwxxxwwxgvwxxwwxwwwwxwwxwvwwwwwwwwwxxwwwxwwwxxwgwwwgvvvxwvhxvgxwwwxxxwvwwwhwvwwwxwgvwwvwxxwwwwwxwxwxxwwxwxgvwvvwwxwxwwwxwxxvwwwvwwwwwwwwwwxxvwxwwxxxwxvwwwwxxwwxwwxxxwwwwgwwxxxxwxxwxwxwwwwwxwxxxwwwwwxwwxwxxxxwxxxwvwgwwwvgwvxwxxxxxxwwwwvwwwwwwvxwxxwwxxxxxxwxxwxwxwxxwwwwwwxxwxxxwvwwvwwwxxwwwwxwwxvxwxwwwwvwwwwwwwgwxwwxxwwwwxwxwwwwwxwwwwwwxwxxwxwwwwwvwxwhwvxxwxxxxwwwwwxwwwxgwxxwwwwxxxvwxxwwwwwvwxwwwvwxwxxxwvwwxxwwxwxvwwwwwwwvwxxwxxxwwwxxxxxvvwwwwwwwxxxwwgxwwxwxwwxwvxwwxwwwvwxwvwwwwvwwwwxwwwwxxwwxwwwwwwxxwwwwwxwwwvwxwwwxxxxvwwwvwwwwvxwwxwwwxwxxwwvwwxwxwwwwxwwxxxxvgwwwwxwwwwxxwwxxgxwgxwwwxwwvwwwwxwwwxxxwxxxxxvwwwwwwwwxwxxwxxxwwwwwvvgggwwefwwwvwgwwwwgwwwxwwwxwwxwvxwxVvwvfvvwffvvvggwgvwwxwwwwxwvwwwwwwwgwwwwfxxwWwwwwfvgfwwvwvwgwwgvhgwwxxwgwxwwwvxxxxxxugvwvwvevvwvvxwvwwgwwxwxxwwxwwxwxxwgfgwvwwwvVvvwuvwwVwxwwxxwwwwwwgwwvxhwwxvvxxwwxwxxwxwfwwvvweevuwvwwwgwxgwfwwwwxwwwwwwwxwwwwggwwxxxwxxxvfvwwuvwvvwffwwwwwwgxvwwxxwwxxxxxxxxwxwfvwfgwxwwwwwxwgvwvxwxwwwwxwxxxxxxxxxgwwffwwwfwwvfwwwgwwgvwwwwwxwxwxvwwxwwwvxxxvfwwvvggeefwwwwwfwvWgwwwvxvwwxwxwxxxxxwwxxwwwwwvwfvvwgfwwwxxwwwwxxwwxxxwxxwxwwwfvvwwvwwxwxwwxgvxwwxxwxxxxxwwxwwxxxxhwwwvVvwwfwwfuvwwvwxgwwwgwwwxggxwwxwwwwwxxxxxxeevvwwwwwvwgwwwWewwwxwwwwwxwxxxxxwwvwxxwxxxVuvwwgwwvgvwxxxxxwwwxxwwxwxxwwwvgwwwwggwwxwwvxwxxwxxxwxxxxwwxxxwwvwwwvvxwxwwwwxvxwvxgxgwxwwwwxxhwwwxwvwfwxfwwxxwvwxxwvxxwwwwwwwxgvwvwwwvvwxxwvgwxxwxwwwxwwwwwwwxgvwwvwwwxwgxxxwvwwgxgwwwwxwxwwgwwxwwvwwvwwwwwwxxwwxxwwwwwxwwwxxwwxwwwwxxwwwwwxxwvwwxwwxgwwxwwxxwwxwwwwwwwvwvwxxwxwwwwxxxwvwgwwwxfwxwxwwwxxwxwwwxwhwxxwxxwwwwxxxvwxgwxxwvwwwwwxwwgxxxxwwvwwwwwxxxwxwvwwwxwwwwxvwwwwxxwwwwwwwwwxwwxwxxxwwwxwxxwvwxxwwwvvvwgwwwwwvvwwwwvwwxwxvwwwwvvxxwvwuvwwvvwwvwvfwwgwwvvwxfvwwwvwvgwwwvwxwwwwwwwwvwvwwvwvwwvwgvwwwwwwwwgwvwxvxwgwvvwvvvfvwwwwwwvwgxwfwggwwwwvwwxwwxxwwxxvfvvwwfwwwwewwwvxwwuwwgvwgwwwwvvwwvwwwxwvwxwwxwvwwvvwvgwvwvwwvxgfxfvwwvxxvhwvgfgxwwvwfuwwvvxwuwgwwwvwwwwvwxxwwgxgvwwwwvwwwwvgwwxwvgvwwxfwwwwwxwvxwwxxwwwvvwvwvvwwefvwwvfwvwwwwwwxwxxwvwxwwwegwvvwvfvwwhvfwwwxwxgwgwxwwwwxwwxvwwwxxwwwwvvvuvwwgwvvwvwwwwwwWggWwwxxxxwwxwwwxxxxvvwwwxwwwXwwxwwwwgvvwwwxwwwwwvwxxxgwwwxvxxxxxwvyfwgvwugwwvwwwwwgwwfgxvwwwwhwwvxwxwvvwgwvwwwwwvwgwhxvwvxwwwwwwwgxwwwxwwwxwwwwgwwwxwuvfwwgxxwgxvwwwwwwwxwxxwxwxwwxwvwxwgxwvwwwwwggVwwwwwwwvhwxwwvxwwwwwfVwvwxwguwfgwwgvgwguwvwgwwwwwxwwwwwvwwwwxfvwwfvwwwuwwvfweVwfgwwfwghvxgwffwvwwwuvwgfwwwwwuvxwgvfwuwwwwxefvgvvfvwxwwwxguvwwxhuwxwwxwxwwwvvvvwwvvfwwwfgwwgvwWfwwxvvxwwwxwwgwgxwfhxffwvvgwwwtvvwwhUgwwfvwvfhwxvfwWvwuugwwwwxxufgwvgxxxhvgffvwwwwxwwwvfwwhgxgxhwgwwvwwwhwwwwwxwxhxfwwwwxwevevgvwwfwwxwfgvgvwfwwvwwwxxhwxwwwxhxvwwwvvvwwxvwwfwwwwwXXhUgwwvhxwvwwxxvxxwxwhxuXwwvwgxvvugwfwwuwvwwdfwwWwfuwwwwwgvuvwwxvvxwxwwwxxuevffwfvvwWVwwXewgwxwwxgwwwhxwvwwwwwxWhwxxgxgwwwgvwwwwwuvhwwvwxwxgwwxwwwwwwxwxxxwfgwfwwwwwwvwgxXxfwvghwwxwwwxxwhxHgwxfvvvvwwwguvvvxxggfgvvgwwxwfwwwxxxxwwxxwxgghxgxwfwwgwggfvwwxwwvhHhfwwwWwwwhhxwwwXhvWvvvgwwuwfvxwxwwwwxwwgXwfgvggwwxxxxhxWwwwxvgwwwxxwvwwxYwxvwhwxwwxgwhwxwxxXhwwwwuwwwwwgwfwvwwxwwwgwwwgwvwxwgvxwvfgvtfwwwwvwvwvuvwwwwwwwwwvwwgwwwwwvwwwwxwxwwvvwvvuwwwgvfvuwxxvvxvwxwwwvwwxwwwwwwwwxwxwvwwwvwwfvvwwxvwgwxxgwwfvxwwwwwxwxwwwwwxxwwwfwggvewwwwwxvwwwvdgwwwxwvwxxwwwwwwwgvwwxgvwwwwxwwxwxxxwfVueefgvvwwvwweuffwwxwwwwwwvvwwwwwxhxwwvwwwwwxxxwxwwwgwwwwxfvvwxwwwwwwxwvvxwwfvvwwgwwwxxxwwgxwwwwxxvweufgvwwgwgwgwwwwwwgwwwwgwgvwgwwgwwwwgxwwgxwwwwhwwwxvfwwvuwvxwwwwwvuwwxxwwwwwwwgvvwgvxxxvvvwxxxxxwwwvwwwwwfvvwwvxvwxwwxwwvwxxfvvwgvxxwwwxwxwxwxwhvwwevVvuvvhwwwVfuwhvxwxxwvwhxwwwxwwxwwwwxwxwwwxwwVvuwevgXvxwwxxxvgxgwwwwwwwwxvxwwwxwwwxxwwwwxxwwxwxvwwwwvgxfvxvwvwxwxwwwwwxwfvvwxwwxwwxxwwwxxwxwxweufgvwwhwwwwxgwvwwgwxxxhxhwwwwvgwwhwwxwwgwwwwwwgvgwgwxwVvuwvvgvxwwwxvgVwwwwwwxwwvxwwwwxwwwxxxwwxwxxxxwwwxwwwwwwxxwwwwxwWgxwwxwwwxxwwwwwwxxvvwgwwwwwxxxvwwuxfvvwwxwwvwwwvwhuvwuwwvwwwgvugxxwvwxxvvvwwxvgvwxxxhvwvwvvvvwwfvwxwxfwxuvxxvvwvvxwwxwwxwwwwxvwwxwxxwxxvwvXvwwfwwwevwwwwvvvxvwxgvxwwvwxwwxvwuwwwhxuvwguxgwwgvxwwvhwwwxxgvxwxxxxxgwwwfvxwuwxwvwgwxwxwvwxxwxxvwwwwxxwfxwxwwwwxwwwgwwwwxxwxwxxxgvwwxvwvvwvvvvwvwwwxwwxwvvwwxvvwxwxxxwwwwwwfwxvvwggwvwwxwwwhwwxwxxwxvwwwxvvwwxvhwwwvwwwwwvxhwwxxxwxwwvvwxxwwwxwwwgwxvxwwxxxwxxxxxxwwxwvwwwfuwxwwxwxfvwwwxxwwxxvwxxwxxxhwxvvwwggvwwxwwvwxgwwvwxxxxhxxwxwwwwxwxwgxhwhwwwwwxwvwggxwxgwwhxxxwxxhgxvvxwwgvwxxxxwxxvwwxwgwwvwwwxwgWgwwgwwwvvwhwwwxvwwwwxwwWegwfwegvwwwwWevvWwvvgvwxwvgvwvxvvwwwwvxwxwwwxwxwgfwwWwwvgwwgfwgggvvwwvwwwwwwxxxxxwvfvwwwwggvvUffwgwwwwwwwwgvxwwxwwwwxxxwxxwwfVvvggwfgwgxwgUwwgxwfwvwwwwggwvwwfxwwwwhwxxxwhufwghwufvwffgvxwxwwwvxxwwvvwxgxwwxwxvwxxwxwwffvwwwwfwwxwffgfwvxwvwwwwwwwwxxvxwwxwxwxxxxffwvwwwxwwxwwxxgwwwwwxwwvwwwxwvwvwwwxwwxvhvwxxwgfvwgwvWwwwxgegwgxwVwfwxwwwwwwwgwwxwxxeUgwgwwffwweVWghwxgwgxxwgwwwhwwxwwxwwxwvvwwwwfvwUuvwxwxwwgwwwwxxwxwxwwUfvwwwwwxxwxwhfwwwxhwwwwgxwwwxxwwxxxffwwwwWggxVffwxwwvwgxxwwwwxxwwwwxwxxxxxxwfVvfwwxwhxxgwvgwxwwwwwhvgxxwxwxgwwxwffvwxwxwwwwwwwxwxwxxwxwwxxwwwwwwwwwxwgvwxfwwwhwwgxxxxxwxxxwxvwwxvwwwxwvwwgxwvwwwwwwwwwwwvwwwgvxwwwxxwgwwxxwwwwfwxgwwwwxwwwxwxwwwgwwwwxwwwwwxwwxxwwwwwwwwwwwxgwvwxxwwwwxxwxvwwvwwvwwwwwxwxxwxxvwwxvwxxgwxxvwwwwwwxwxwwxwwwwwvwwwwxwwvwvwwwwwwwwxxxwwvwxxxwwwwwwwwxwwwwwxxwxwwxvwwwgxxxwwwwxwwwwwwxwwwwvwwwwwwwwxxxwwwxwxvwwwwwwxxwwwxxxxxxxwwwwvwxvwwxwwxxwxxwvvwwwwwxwwwxxwxwxxwwxxwwgwxwwvwwgxxwvwwxwxxxxwwxxwxwxxvhwxwwwwwwxxxxxwxwxwwwvvwfvvwVfwvvwxgfvwfwvwwwufwvvwwwfvvwwwgwvwxuvgevwvfvffgwWuwxvvwwwvwwweUwvwwwuvvwxwxWwwtvwvvewxfvgxWwvwwwxvwgwvwfvfvxfvwxhuwgVvwgvwwwwwwwhwwwvxwwvwwwwwwgxwxwxwxwwwwvxuvwwuwwffwwWwwGvwwfvvwwvwwuwwfvwfvugwxwvuwwhwwwxgwwxwwwwwvwvefwfwtwwwwwwxwxwwgwgVuuwwfvwwvwwwwvvxvwwgxvhxfxwwtfvWfwggfxvvwwxXfwwwvxwwgwhwvvwxwvwwvwgfuuwgUvwwgwgwwwwwvwxhwwWuwwhvwwhwewwvhvwgwxuwxffwvevwwvfxwWvvvwwwxxvgxwvffvwxvvxwxwxwgwxwufwfgvvfgvvwwxvwvwgwffwgwvvwwwwgvgwwwwxwxgxwwwvwfwvvwwxwfwwwwxwwgvvwxwxhwwwwxwwhwwxUvvwvfwwxhwwxgwxwXvwwhwxhwfxxwxhwxXxxvwwgfggvfvugwfwggwwwugxwwvwhwgwwwhgvxvwweffwevvgwhwwvwwwxgvwGxvwvXwwxXgvhxwWxwwwhwgvfuvwwfwwwwwxwwwwxWxvgwxgvvxxwggwghwwxfwwwvwvwwxwxxvxggwwxxhxvxxxwwvwwwwgwwhUvwwfwwwwgxwwxwuuvgxvwgwvfxhfuwvfgwvxffwwvWwgwxxvwwfwwwwwxwwxxxxxvwwfwwwwvwfUwwwvgxwwwxfxwwxxxxvxwxggfwwwwxwwwwfxxhvwxwxgwwxwxhwuwxUvgvvvwexfwfwwwgxvwvxwhfwwwgwgwwwwxxxxfwvvwwfwwwvwgvwwwwhwvwxxwwxwvhwxxhwxxwwxwwUvwwwvxwhfwvwwwggxwgwxxwwwwwxxfwxwfvvgwxwgwwhxxwwwwwxvxxwhwwxvxgywxxvwwfwwvvvxwfffwfggwxwwwwwxxwxwxxxwwfvvvwwwvwgxXvwwxgwwwxxxxwxxywxwfgwfxwxwwwwwxwwhwxwxhxwwxxxwxxgwwwwvwwwwxxhxxhxwxxwwwxxxxxwxhwxwxwwfvwwwwwwgwwwgwwwxWxwwwwxxwxwxxxxxwvggwuwgvwwxvxwxxhxxwvxxxxxxxxxwhxxxwwwgwgwvwxwxwvwwxwxwhxwwwxhxwxxxxwxxwxvwhvgwxwwxwghwxxxxxxxxvvwwwxwwwgvxwuvwwxfxfwwwwvvvwwwgfwwevwvwfxvwwwwwwxxxwvvfwwwwxwxvwwhhxwwwgfwwwvvwwvwvwvxwxvwwvwfwwfwwgwwwwwwvwwvwxwwwxwwxxxuvwvvwvxwxxwxwwwxxwxvwwwfwwvwwvhewwgwgvwwweuvfvwwwwwwxwwuwwwgwggwwwvxxwxwvugwvgvhhxwxwhwxxwwwxwwwvvwwwwwxwwwxfwwgwvxwvwwxwxxwvvwwwvwwwxwhhxwgxxvvxwgwhwxwxwxwwwvvvuxvwvvwwxgxwvvvwvvwwwwxxxwvxuwwwgxwxwxwwvvfwggwwxxwwwxvwwgwwvwwwwwxxhwxvvwwwwwwxwxgfwwwwwwxxhxxxxxwxgwwwgwxvgwwgxxxxgxwxvvvwxwvwwxvvxwxwxxvwwwwwhwxxgxxwvwwwwwwvxxwwxxwwwxwxvwwwwxxxxwwxwxxxggwwgwvwwwxxwhxwxxxwxwwwxxxwxwxxxwxxwxhgwwvxxwxwxewxwwxxxxxxwwwxwwxvwwxfwwwwwwwwxwvvwwvxgwuwwwxxxvwwwgwgwwwxxxwvxgwxwxxxxwwwwwwwxfwwwwwwwwwwwwuwxxwxxxwxwwwxhxwxhxxxvxwxwwxwwxvwwwxwuwwwgvxwxxwvxwwxwxwxvxvxgxwxvwgwgfwwwwwwwgvXwxwvvwwvxgxxwxxxxxwwwxwwwwxhxwwxvxwxxxwwxxxxxhwxxxwxfwwwwwwxxxxxxwxuwwxwxwxwxxwxxwxwwvxwvvwwwuwwwwwwxxuwwxvxxwwwxhwwxxwvxwwxxhwxwwxxwwwxxwxwvxgxxwwhxxxwvxgwxxwxxwxwxxxxxxwxxxwxwxwvxwxxxxhwxwxxhxxxxxwwvvxuwxwvxxwxxxuwwxwxxwxxwwwwwwxxxxvxgxxwxxwxxvxxxwxwwxyvxgxxwxxwwxxwxwyuvwvwwvwwwwgvvwxwgwvxwwwgwgwwvgwwvwhwguwvfwwwvwwwvwgvWxwgfvwwffuwvwwwxgwwvfwwxuxwwxwxxgvxwwwggwgwfwfxxwvvwwvvwxwxwwgvxwwwwgguwwwwgwwwvfwwxvghwxwvwxwgwwxwhwwhxgvfwwwvwxwwwxVvwxfwvvvwwxwxwfvwvwwgwwffwwvxwwwwwwfwwwwgwfwwvwwvevvwwwXxewhwxwffvwwvwwwvwvwwwWhxuWhvhwwwfvwgggvwwwvfwvwgvwgwxvwvwwwxvxxvvwwgwvwwwxwvwvwwwwwwvvwxwwvxvwfWwxfvvwwfwxwvvwvxvwwgwxwxwwhxwwwvwwwwvwgfwwgwwvwwxwfvgwxwgwwwwwgWwwvggwfvvvwvffxgVwwgwxxwwxwvwwwwwwwwwxwwhvwxwhxvxwwwwvxgwwvgfvwwwwxgvwhxwvwgwxwgwvgwgwxhggxvwxgwwwgwxxgwxfhhwggwvxwwgwwwwwxhxgwwwwwgwwwwVvwxxvfwwxwwwwwwwxhxxxwwxwwxxWwwwwxwxwgfwhxvwwgwxvvwhewXwxwwwwxvwxgwxwxvwwwgwwwvxxwwgwvwwwwwwwwwwwfgxwxgxwgxwvxwwwvwwwwwwxwhwwhxwwwwwvwwwwxwxWhfxxfxxwvwwxwxwywwwwwxgwfwwvwwwvwwwwxfffvwwxvvwwvwwwxxvvwuvwvvwhvwwvvwwwwwwgwwwwvvewvgwwvwwgwwgxxxvwgefwvwwvwwvvwwwwxwvwvfwwxwwxvvwwvxwwwxvvvvwwwwwwvxwvgwwwgwxxwxewggwgwwhvvgwwxxhxvxxxxwwvwwwfgwuvwxfwwewxwwwvvwwwwxwwfwwvvwwvwvwvxxfwhxhwgwxvgwwwfwwwvgvwwwxxvwvwvvwwwhvhwhwvhghvxxwwufwvvwwwxvvwwwxvwwvwvfwxwgxwwwxwgwhwwwwwvwwwwwwwwwuxgwwxwwwwwwgwxwvwgwwhwxwwwwwgwvxwwwwwgvwvwwxvwwvwvwwwwwxwvwvgwvxwvwwwxxwxxwvwewwvwwvwuvvwwvxxwvgwgxwwwhwwxxwxxwxhxwwwvfwwwwwxwvfwwwwxxgwfuwwwwWwxxwwwwwwXfwxxxwefhwgvxwwxwfxxwwgwxxxxwxwwwgwwwwxxxwvxxwgxwwxwwfwvwgwgwwwfgwwhgvxgxvvvwwggxwwwwxxxxxvvxwhwwwwxvxwwvwwgxwwxwvhggwwxxxwwxwxhvvvwwwwwgwxxxvwvwxvfwgwxwwwwXwwwwxwwwwxwwwwwvvxwfgxxwgwwxwxwxwxwgWfwwxwwxgxwwwvegwwvfgwwfvwvfwvvwwvvvwwwvwfvvuwvwwfvwwvuwggtewwuvwwwuwwwxxvvwxwwvfffvvwVvfwxgwwwwWwvwwwwxwxuwxwguvvvwfvvvvvwwvxwwwevxvfvvvwwwfwgxxxwuwwvgvwwgwfvfwwvwxxVvwwgwwgxwwwvxwxvwwvuwWuvwwfuwwgevwxuwxwwfgvvguuwxwwfvgfwwwwwwwwwwwwwwUvuwxvwwvgwwwwxwfvwhxvvefvxwwwvwwhhvwtwwwxhvggwwwwuvvgvwwfvwwwxgfvvgwfwwwwwgvvwxwfxxvwwwwxvwwgwfefwwwwxuxwxugevwgxwvwxwwvhgxtxhxehwgggwwfxvvvwggvwgvvvfwvwwwxuvxwwffvgxvvgwxxxxxdfvwwwuwvwwxvwevxvvugxxfgvwgvwwhxhwxxwwvwvfwwwvvxwwwxwvvwwwwxwxgwxwwxwxxxvxwevvwwwwwwxwxxgvvwxwwwhughwvXxxxwwvwxxwgwuwwwwwvwwxwwfwvuxwvwwwxwwfwvwwgwwwwwxxxwvUvvwwwwhvwhxweuvxxwxxwwwwvgWwxWhvgwwwwwwwgwvfuuwxwwxxxwvvxwwxxwghxxhgvhwuwwgwxxwwxvvwgxwwxxwvgwwxgxxxwwxgwwhxvwxxxxffwwwwwvffwwwgvwvwwfvwgwwwvwwxwvwxwwwfvwwwxwwgwwwgTvvwwveuvvwwgwevwgwwwgvWwgvwvgvevwwgguwwwwgvvvwxwwgXwgvwvgewwvvwwvggwfvwwwwxuggwwwfvvwwwwwwvwxwwwwgvuwwxxxgwvwvfvfwwwgvwgwvwwvvwWwxwgwxgwwwwxwgvwxwwxxwxxwwwwggxvxxwgwwwVewvvgfuvggfVvfevwvgwwffvWwwwVwvwwvwvwvfwwwvwWevgwwxwwwhfwwxwfvwgwwxgvWffgwwwwwwwwwwgwGWdwwxxggvgwwfwwWxtwvvwhxfwvwwxvwvvgwfuvwwwwwvwwwgvgvfvwWwwwvwwhggvwxvwuwwwgwwxvwgwwhwWwwxwwxgwgvwgwhxwgvfvvwwWWVxgggwvwwxwwgxVvwgvvvwwhwhwguwxwfwwVewwwwvwgwgfvwxvwwxugwgwwvwgvwwwvvwxxgfvwxhwhwgwgwUvgwvgwwgwgwwwwvgfVwhwwwxWwwvffvgxxwgwvwwxwwgfwxwwgwwwxwxgvwwwxugwwgwgxvwvwwwXhewwxwxxwwgxghewwhxxxwwxvggfwwVvwgwxwwwgwvwvwwhHfwwhwwwwwxwwxgxwwxXvgvwwxhvxxgwvvwwvgfvwwfvwvwwfwgvfvvGgwwwgfwwvwvxxxhhhwwwgwxxgwwwxxhwwwwggwWwgwxwgfgvwgxWHewwWvwwwwwwxhhgwxwwgfwvwwwgXvwxwugvfwwfvwwwhgwvwgvwgWVxhwwxxxwxgwxgggwgexxxxhwwgwgvvwwwhwuwgwgwwgwggggwwwxxvxwxgwwvwVuwxggwfvwwwwwgVvvvwwwwwwwxvwwvwwgvhwwwxxffvuguuwwfwwwwwwwvgvwwwvvwvfvgwvvxwwwwxxfwvwufvwwwwwwgwwvwwwvwuwvgguwwxxwxvvvfvufwwwwwwwwxwwwwwgevwxgxwwxxwwxxxxugfgevuvgvwwwgvvwgxuwwxwwugvvgvwvvvwwxwwwwxxxwwwwxxxxegvvfvfvvwxvwwxfxwwwwxwvewgwwxwxwxwwwxxwxwxxxuuevvufUwwwxwwwvxvwvvvvwwxfxwwwxwxxfffuwgwfxvgwvwwwxwxxwwgwwwwwwwxxwwxxvwvwvvvwwxwwuwwwwvgwggvvwwwxxwwxwxwvfvvfffwwwwwwwwwwwwvwwvvwwwhxwxwwxwwxhwwfwweuuwwwwwwxwwwwxxvvwxxxxxwwgwxxwxfvvvwwwwxxwwxwwwwwxxxxxwxxwxxxwxwxxxxwvfvfuufwgwgwwwwwwwwwvxwxwggvvwwwxwxwwxxxwwxxxxvfvvwwwvgvwwvxvwwwwwwwwwwvwwwwhwxwwwwhxwfuuvxwgwwxwwxwwxwwvvxwvxwxwwxxwxxxxxxxxhxxxxwwwwwvvwxwxwwxwxxxxwwxgwvxwwgwxxwxxuvvgwvwvvwwwvwwwwvwwwwwwwwgwwwwwvxfuwwfvvvvvvwwxvhwvvwwvxvwxvvwwwwwvwwwwwwwwxxvwwvvwfvwwvwgwwwvwwgwwwwwvwxhvwwwxwwgwvvwvgwxxWwwwxwwxwwvvuwxwwwxwxwwwwwxuwvwgvfVvvvwvvvvwwxuwwxwwwvvgvwgwwwwgwwwwxwwwxwwvvwefwvvfvwwwWwwhwwwWggwWxvvwwvuvgwwwgxewvwxwxwvgxwxvfvwvwvwwwgvfwwwwwwwwxvwwvvxxwhxvxwwwwwxwxvfvuvVwvwwwwvxvwwxxwfxwwwwvwwwwwwxvvwxvwwwwwwfwwgwgxvwwgwxwwwwxxwxxwwxwfvwvfwvvwwwgwwhgwwwwxwwvwvwwhwxwwwwxgxwgxgvwxwwvvvwvwgwwffwwwgwxwggwwwvwhxxxwhfvgwvvwwwwvgwwwwwwwwwxgwwxwwfwwwxvwxwhwwwhvwxwWvvvwvwwxgwwwwxvgwwhwwxgwhwxxhvwwxwwxwwwwwvWxwwvwggwwhhwgxwwgwxwfxxwwwxwgwwgvvvwwwvgwvgwwvxgvwwwgxwhvwvwwwwxwwgxvwwwwwvxwwwwwwwwhgevwvwwwhxgxxwxxxxwxwwxuwwwwwwwwwwwwxwwvvwwwwwwwwvvwwwxwgwfwwwfgvuvwvfvvwxwxwwwwwwwwfwegwvfgfgwxwwwwwgwxwxwwwwvvwwwwfvwwwwwwwwfvvxwwwwwvwwwwwwwxxwwgwxwxxxwggwwwUuugwwwwvwwfvvwxvwfwwgwwwwwwxwwxwwwxwwxxgwvgxwwwufwwwwwwgggwwwvfgfwwgvewwwwwwwxxffwvhwxhwxxwwwvgvwgggdtVWxvwgwwhfxxgWwgfxxvdtVWgwgxwwwwxvwggxwwwwhxvgwfvgwvwwwUueggvwwgvwwwwgvxwxwwwwxwvgxwxxxwwddVWhfwgwxwwwwfxvwfxhxvwwwwwWwxwwxvwwwvvwwxwxhwwwggwwwwwwwvwwwgvwwxfvwwwwwwwwfvwwwwwwxwxwwwwwxwxwwghvwvUuegvvvvfvfxwvwvwxwxvwwhxwxxxwwwwwwwwwxwxwvgwwwgxeufgwfgwwgwxggwwwggeufgwwvxwxwwgghwxhgwxwxwweufgwwwwvwwgwwwwwwwwxwwxxgwfxvwwgwwwxxwxxxxwxgxwwwwwwfvvwwwvxxUuewhvwgwwwwwwwwwwxwwxxxwvwwxxxxwwwwxdtVVhvwgwwwwwxvvfhwvgwxwgwxwwwwwwwwwwwwghwwwWhfwweufgwwwwvwwgwwwwwwwxwwwwxwxgvwwgwgwwwwwxhhwxwxxxwxvwwwwvxwvwxxhvwwwxxxwwwwwgxfxwxwvwxxwvvvwwwvvfvuwvgvwwwwwxwguwvxwwwuwwwwvwwwwvfvvxuevwguwvuvwvwfwwvuuwgwgwfwdwvwfwwwvwhvgxwwvgwdfwgvvwvvwwwvuwwwwuwuvvwwwwwwwwxwxffwwggfwwxwxgwwgwwfwfwxxffewwwwwxwwwwxwvvvwweVwwVvuwvvwvwvvvdxvwvvwuwwvwgvvxwwvvxwfwwxwwxxvgvvwvwgwvwfvvxfwwgghvwwwwxugwwwwwwxwwwxxgvwwxvxuevvwuuwwxwwwvvvxuvegwwxefvwwgwwwwwwwxwvfwgwggwegwfgghdwfgfwuwfwwwxwxwwwwwwwuxuwwxefxgwwgfggfwvvuwwwwuwvvwwwwxwwwwwgwxweVgvgfvwwwvwvwgvwfxxhxvwvvwwxxwvwwwxvxxwxwwwwwwvfuwwwwwwvgwxwvxvxwwwxwvwwxxxxwxgwwxwfvxwwgxxhvwxwwxghuxwWwwwwwgvxxwwvvwvfwwvvvgwwvwfwwwvwVwwwwxvvvwvvwwwwwxgxwwwvvfvwwwwWwwWwvwhwwXXegxwhwwuvwgvwxxwwvxxhxwvwxfwvvhvwgxwgvvwwvhguwwhwwwwvwxxwxwwxvxwwwvxwxwwghxvwwiwuxwwxvwwxvwxwxxwwwwxeuwwvwgwxwgwwwwwvwuxvvhvvwxeuwvwwxxwvgwvwwvgxxvVgwwwwwxwxwxwwwfffwwwxwwvwwxfgwwwwvxxwwwwwxwvfwwuvwwwxwxxwwwwgxxuxvvxvhvxVvwvwwvwwwvwvwwvvwwwfvvwwxwxxvvwvwwwhvvwwwggwvvwwvwxwxxwvuxgwwwwwwvwwxfvwxvuwxxwxxxxwgwwwwxvwvfxwwxxxxwwuwgwwwxvwxwwXwwvxwwwxvwxfwuuwwwvxxwgwxwwwxhwggwvwwxxvuuwgfxxwvwxxwhfwwwwxxwxxvwxgvgwghwxwwwxwwwvwwwxwwgwwwxhxwvwwxgxxwxwwxxxxwhwxxgwwwvwxvvwxwwxxwxgwwwwwgvwxxvvwwgwwxxwvvfwfxxwxxxxxwxwwwhxwwgvhwxxwwvwvwxxgwvwxwvxwwxxxwxxgwxxxggxwvxvvwhwwxwxwwxwvwwwwwwwwxgwwwwxwxwwwwwwxwwwwxwwwvvwwfvxwfgwfwewxwwwwwfwwvggvfvgwfxwwxvwwwwwwgeTvuvUuwugwgVvuwwvwgwvvwwhwwwgwvwwwvvxwwwgfwgwwwxwgvefuwwgUvwgxxvwvgwwvwgvwfwuvwvvxwwwgwwxwgxxwggfvvwwwxWwwwwvxwwwgxwwxwgwVwwwwwwwwggwwvwwwwwwwwwwvvvwgwfwVfeuvwftuuwvgEfgvvwwfvwwvwgxwwwxwwwgwwwwxwwwwgwfwfggwxvgvvwugvwfwwWgewwwvXwewwwwgvwwwfwwvvwgvwwwWfvgwvwvwwxwxwwgfxwxwvwwhgxguwwhfwfwwwggvgwvvwvwwvwxwggwwwvwwfwwhwxggvwgwgwgghVwwwwgxfXffvWvfUwwwwvwwwwwwxwvvwwfwwgwwwwwwxwgveuftwwvVvxwwwwvgwxwxwgvwfgfgfwxvwvgwvwwwwgxwxeuvxwwwwuwwgwgwvgwxwWwggxhwVwfwwxgvwfwxvwwwvwxvwxwxxxwxfgtxwfwxggvwhgvxhwvgxfwvwvuwwwwxxwgwxwxxwxgwewgwwwwXggwvhxwGfWvWwevwwgwvwgwwvxwvfwgwxgwgwxxwwwfxwuwWxxhwvwwxwgxgvxwxgwWvvwwwwwwvwwgwfwwgwgwxwwwxwwxgvwgwwxwwhXffwwwWhwXUfGwvdvwvxwvxxgwwgwwwxwvwwwwxwxxwVuwfxhwwxhgVwxvwgxwWffuXwgevwwwwvfxwwwwwvxwwxwwwwgwfwuwwhhvvwvvwwwgVvgFugwwvuvvwwvgxwwwwwxwwxwxvvggvwgwwwwwwwwwwwgvvvuwgwwvvwvwwwwwxwwwffuwwwwwwhxewwwwwxwgwvwwvwghwwvvvvvwvwxxwvvwwwwwxwxvvwvxxxvfuwwwvwwwvwwvwwwvxevvwwfwxxxvwwwwwwwxvfuwwgvVwwvvfwvwwwwwwxvfvwwwwwwvwxvvggwxwwwxwvvwwwwwwxwxvwwxgwwxxwweUvvwvvwwwxwvwwwwwwxhgxvvvwgvwwwwxxvvggwwuvwxweuvfgwwxwxwwwwwwxwxxweevvwuvuwxwwwwxwwwxwwwvwgwwxwxwxwwwwgwxwwuwwwvwgwwwwfvvfwwxwvvwvwwxwvgwwxwxvfvwwwwwwwxewwwgxvxxxxxvfgwwwxxxwvvxxxxxwwwvwvxxvwwwwxwxffvxxwwxxwxwxwwevuwwvwxxwxxxwwxwwxwwwxxxwwvwwwxwxegvvwwwwwxvgwwwvwxxfuvwxwxwwxwxxwgvffwgvwvwwxxxxwxxxwwwwxwwxxwwwwxxwfvvwwwvxwwwvwwxxxxhwwxxwwwxxwwxwwwvwvwwxwwwggwxwwwxxwxwxwgwvvvgwwwwwwgvwwgwvvwwwwvwwwwwvffwvvfwvwwwwgwggfVvwwwgwwwwVewevvvgvuwwevevvgwvwvvgwwwwwevfwvfvVwfgwgggwwwgwgwwwwwVewvvwfwxwfvvwwwwwwwwwxxhvvwuwvgvvwwxgwvgwfvgwxwwgwvvvwvfwFgwwwhwvvwwwvwhxwwxvwwghgwxfxgwwwgwgwwwgGVwvufwVgvggfwvfwwwwwgwwggwxweevwvwugwuwvwwVwwwwwvwwwwfwwvvfwwwwwwgvfghvwgwwwwgwggwvwwwfgegwGgTGwuhvwwwwgvwwwwgwxwwxvuugfgfWvfvfwgggwvwvwxvwwwxwwwwwfxwwWwgwvwwwwwwwwvwfwwwwwwgwwwvVXgExgfhvwwvwwgwWxwwwxxxwghgwwwgvvvfvwvvwfwwwwwwwwvWfvvvwfvvwwVwvwgwwwwwwwxvvwxuwgvwwxxwgvwvvgvgvvwwwvwevvwvvwVvWwwxwXvwwwwgwwwwgwwvwwwwgggwwgwxwwwvgwwwgvwvwvgwwxwxwwwwwxgwghxwuwvwWgeXgfwwhhvwfwgwxwwfwwfwgWVxgwhwwvwwxgxwggwwgxwwfxWwgffvgwvwwwwwwxxwwfvvgvvwWwgvwwwgggwwxwgxxxhxwwvwfxwwgwwwxwgwwwvvfwvxxwxwwgwvwfwgWUgXvXwgvwhwxgfhwxxwxwwhwgwvwwgfwvuwvwvgwwxxxxwxvvweggFwgwhgxwxwwwgwwwxxgwwwwgwwwhvgufvwxvwwwwfgxwxxxWwvwwvvgwwvwwwgvxwwxxggvgwwwWvuxvwwxwwwvfwwwwwwwwwwfwwwwwwwwwfuwwwvwwwevxwxwwwwwwwwwfefudwwwwwwwweuvwvvwwwwfwfvwwTvwvvwvvwwwgwvhugwgvwhwwwwwwvvwgvfuvwwwwwweuwwwwwwwwwwevwwfwwwwxwdwwwxwwvwwwvvgevwwwgwvwxwvgwxwgvvwvxwwuwWxwwfxwwwwwxxwggwWwwggxwWfVvuwwggwgwwVduwwvwgwvggwwwxeuugvwfvgvwwwuwvgwwgxwwwwwgwfwvwgwwwwxwwgvvgugvwxWhuwwvwwhvwvwwwwwwwgxwwVhewvwvvwgwvwevwwvwgvffwwwgwwwwwwguwvxxuwwgwvgfwwwxxwwxgvgguvvwwwwvgvwgwwewwwwxwwwwwwheevwwvxwggVggwgwvgwxgfwwVwwwwggvfuuwgwwveuxvwwwxwwevgwgfwwwuwwgwhxwwvvfwevTvugwfwwwgvwwvwxvhfvvwwwwwwwgwwgwwxwwxgwxhvgvgxgwvvwxfwvxvwwdxwgxgxfvvxxxxxwhvwwwhgwwgxfwhwuvwwwwegwwvfxwwvwwxxwvWffuvwgxwwxhWfhwgwwwgxgWgwfwgvwwvwexvxwwWfvwwwhvwwwvfwwxxuwXwwxwwwwhgwwwwggWfwwwgwwwvwgggvvwwwggwwgvhffuvwwwwghXfWfgwxgghwfwwwevvvwxuwvvwvfwwvwwwvwgvVtuwxwwwwhWgwxwwxwxgwwxxfvwwwwwgwffvggggwwwwwvgwVxwxwwwwxvwwwggwWvvwg"
  },
  {
    "path": "examples/games/dibley.txt",
    "content": "DIBLEY\n~~~~~~\n\nDibley is cat who likes to explore! Unfortunately he sometimes gets trapped. The challenge is to clear a path so Dibley can escape.\n\n\nPlaying the game\n~~~~~~~~~~~~~~~~~\nThe object is to get our feline hero Dibley to the exit and hence move on to explore the next level. On the way he will meet obstacles, turnstiles, moveable blocks of various shapes and sizes and black holes.  The blocks can be pushed (one at a time) into the black holes, after which Dibley can pass over. Turnstiles can have one, two, three or four arms, and spin around if nothing blocks the way. \n\nClick on the menu option 'Demo' to see Dibley in action.\n\nMove Dibley using the cursor keys or by clicking/tapping on the 'Paw-Pad'.\n\n'Save Game' makes the current game, and your position in it, the default when starting the program.\n\nIn this release there are 27 levels. The first few may seem pretty easy but it does get more challenging. The difficulty is not in incremental order but try Level 8 for starters!\n\n\nDesigning your own levels\n~~~~~~~~~~~~~~~~~~~~~~~~~~\nSelect an object to be placed by clicking with the mouse and click again on the square to place it in. Don't drag, unless you want to paint an area.\nFor larger blocks (ie greater than 1 x 1) click on one of the red blocks and you will asked for a size. \nUp to a massive 15 x 15 is allowed.\n\nSome hints when designing your own levels.\n  * Do not place a turnstile so that one of its arms may come to rest over a black hole.\n  * Save each level with an incremental number so one may link to the next automatically.\n  * Restrain Dibley's movements with scenery on the left and right sides (not needed top & bottom) otherwise Dibley will 'wrap around' - then again you could make use of this feature!\n  * The 'Lock' option allows you to enter a password so that your level may be locked to prevent alteration without the password.\n  * It's a good idea to save the game before playing. For the filename use a two-digit number less than 100. Ideally the numbers should be incremental but its not essential.\n  * After you've done some designing you will probably test it by clicking Play. \n You can play a while then re-enter the designer and make changes but click 'Restart' before you do so that your new level will return to it's starting point. Note however that if you test your game all the way to the exit any changes will be lost. So save first.\n\n\n By Paul Marshall 2001  - revised January 2017   www.DarkwoodDesigns.co.uk\n Modifications by R.T.Russell  richard@rtrussell.co.uk\"       \n Cat graphic used is from www.clipartsgram.com/cool-cat-clipart-24233\n"
  },
  {
    "path": "examples/general/banner.xml",
    "content": "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n<rss version=\"2.0\" xmlns:media=\"http://search.yahoo.com/mrss\">\n  <channel>\n    <title>BBC BASIC for Windows</title>\n    <link>http://www.bb4w.com/</link>\n    <description>An implementation of the BBC BASIC Programming Language for Windows PCs</description>\n    <language>en-gb</language>\n    <lastBuildDate>Mon, 16 Nov 2009 17:35:20 GMT</lastBuildDate>\n    <copyright>Copyright: (C) Richard T. Russell 2009</copyright>\n    <ttl>15</ttl>\n    <image>\n      <title>R.T.Russell logo</title>\n      <url>http://www.bbcbasic.co.uk/rtrlogo.gif</url>\n      <link>http://www.rtrussell.co.uk/</link>\n    </image>\n    <item>\n      <title>Default text for BANNER.BBC</title>\n      <description>This program demonstrates a horizontally-scrolling banner across the bottom of the window</description>\n    </item>\n    <item>\n      <title>Default text for BANNER.BBC</title>\n      <description>You are seeing this message because the BBC's RSS feed could not be accessed</description>\n    </item>\n    <item>\n      <title>Default text for BANNER.BBC</title>\n      <description>This program demonstrates a horizontally-scrolling banner across the bottom of the window</description>\n    </item>\n    <item>\n      <title>Default text for BANNER.BBC</title>\n      <description>You are seeing this message because the BBC's RSS feed could not be accessed</description>\n    </item>\n    <item>\n      <title>Default text for BANNER.BBC</title>\n      <description>This program demonstrates a horizontally-scrolling banner across the bottom of the window</description>\n    </item>\n    <item>\n      <title>Default text for BANNER.BBC</title>\n      <description>You are seeing this message because the BBC's RSS feed could not be accessed</description>\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "examples/general/bbcbasic.txt",
    "content": "﻿BBC BASIC is the programming language originally specified and adopted by the British Broadcasting Corporation for its groundbreaking Computer Literacy Project of the early 1980s.\n\nIt was designed to be simple enough to be used by a complete beginner yet powerful enough to cope with the demands of the very largest and most complex programs, and that remains true today.\n\nDuring the intervening years BBC BASIC has been extended and ported onto at least seven different CPUs and more than thirty different platforms.\n\nBBC BASIC for SDL 2.0 is an advanced cross-platform implementation which will run on Windows™, Linux® (x86), Mac OS-X®, Raspberry Pi, Android™, iOS™ and in a browser.  It supports a number of major enhancements over early versions.\n\nThese include data structures, an EXIT statement, PRIVATE variables, long strings, event interrupts, an 'address of' operator, byte variables and arrays, a line continuation character, indirect procedure and function calls, array slicing and improved numeric accuracy.\n\nBBC BASIC incorporates an assembler, making it practical to write programs which use machine-code for time-critical routines.  Programs can also call Operating System API functions, both from BASIC and from assembler code.\n\nBBC BASIC for SDL is the Copyright © 2026 of R.T.Russell.  The program and other materials are provided 'as is' and without any guarantee as to their quality or suitability.  Although they are thought to be free from serious bugs, and it is highly unlikely that they could do any harm to other software or systems, there is NO warranty that they will not and their use is at your own risk. \n\nThe supplied example programs and libraries remain the Copyright © 2001-2026 of R.T.Russell and others, but you may incorporate them in whole or in part within your own programs so long as any copyright notice is retained.\n"
  },
  {
    "path": "examples/general/ceefax.car",
    "content": "       CEEFAX 100  Sun 01 Oct 18:26/55   ppppp    `ppppp    `ppppp           #s#h||||j#ssh||||j#s#h||||   BBC j ,lj ,.j ,lj s j0/`      |||jpssjjpj||j            (.////    (.////    (.////   ,,,,,,,,,,,,,,,,,,,,,,<,,,,,,,,,,,,,,,,NEWS HEADLINES...1015REGIONAL NEWS  U.K. NEWS........1025ENGLAND....104WORLD NEWS.......1035SCOTLAND...105,,,,,,,,,,,,,,,,,,,,,,5WALES......106BUSINESS.........1145N.IRELAND..107POLITICS.........115=,,,,,,,,,,,,,,,,HEALTH...........1165 GLOBAL NEWS   EDUCATION........1175AFRICA.....108SCIENCE & NATURE.1185ASIA.......109TECHNOLOGY.......1195EUROPE.....110ENTERTAINMENT....1205L.AMERICA..111SPORT............1215MIDDLE EAST112WEATHER & TRAVEL.1225US & CANADA113,,,,,,,,,,,,,,,,,,,,,,-,,,,,,,,,,,,,,,,Brought to you by BBC BASIC for SDL 2.0Brought to you by BBC BASIC for SDL 2.0#######################################h,,lh,,lh,,l`0p `0`0 p p`pp`0 p`pp  j %zj %zj }~j5 ju>! tjupj50jup  j %jj %jj 'kju`j5k40\"jupjuu`p  \"###\"###\"###//-,,--.-..,/,-,,-,,,-,,//h,,lh,,lh,,l p `0pp0pp0p `p0        j %zj %zj }~ `j5j5z% j5        j %jj %jj 'k zz5z5j5pju?        \"###\"###\"###///,,,.,,.,-.,,-,.////////h,,lh,,lh,,l pp0p p`pp`0 `p p p`p0  j %zj %zj }~ p0tj5 j5 z5tj5  j %jj %jj 'k p0\"juju0j5\"ju?  \"###\"###\"###///,,.,/,-,,-,.,-.,/,-,.//h,,lh,,lh,,lpp0pp0pp0pp`0 `p p p`p0 j %zj %zj }~p0  j5j5j5 z5tj5 j %jj %jj 'kpz5p0z5j5ju0j5\"ju? \"###\"###\"###//,,.,,.,,.-.-,.,-.,/,-,./h,,lh,,lh,,l p `0pp0p `pp`pp        j %zj %zj }~ `j5z5 jupjup        j %jj %jj 'k zz5j5pjup`p        \"###\"###\"###///,,,.,-.,,-,,-,,////////h,,lh,,lh,,lp p `0pp0pp0p `p p p`p0 j %zj %zj }~t j5z%p0 z5tj5 j %jj %jj 'k\"`j5j5p00j5\"ju? \"###\"###\"###//,/,--.,-.,,.,.,-.,/,-,./h,,lh,,lh,,l   `pp`pp`pp`0pp0pp0    j %zj %zj }~   jujupju?j5\"!z5    j %jj %jj 'k   j5j5 j5j5x4j5    \"###\"###\"###/////-.,-./-.,-.,,.,-.////h,,lh,,lh,,l      `pp`pp`0pp0       j %zj %zj }~      jujupj5z5       j %jj %jj 'k      j5`pj5j5       \"###\"###\"###////////-.,-,,-.,-.///////h,,lh,,lh,,l  `pp`0p`pp`pp`pp`pp    j %zj %zj }~  jupj5ju?j5jujup    j %jj %jj 'k  jupjuj5juj5 jup    \"###\"###\"###////-,,-,,-.,-,,-./-,,////h,,lh,,lh,,lp  `pp`ppp`pp`pp`0pp0pp0j %zj %zj }~  juj55jupju?j5\"!z5j %jj %jj 'kp`j5j5 jupj5j5x4j5\"###\"###\"###//,,--.,-./,-,,-.,-.,,.,-.h,,lh,,lh,,l ppp0p`p0`p0`0 pp0`pp   j %zj %zj }~ jj5j5j5j5 p0jup   j %jj %jj 'k  j5ju?ju?ju0p0jup`  \"###\"###\"###///,/-.,-,.-,.-,.,,.-,,-//h,,lh,,lh,,lp`0pp  `p`pp`pp`pp`p0`ppj %zj %zj }~j5p`tj5juj5juj5juj %jj %jj 'kz5p !juj5j5j5ju?j5\"###\"###\"###//,,.,,//-,-.,-.,-.,-,.-.,s{%s{%#+%s?j5j5ssj5#jws1ssjws1/,.%/,.%/,.%/,/*-.%,,/*%/ /*-,$,,/(,.% s{%s{%#+%sj7k5  j5##j5##jws1  /,.%/,.%/,.%/  *-.%/,,*% / *%/,,(,.%    s{%s{%#+%pjws1sj5 \"k7!p      /,.%/,.%/,.%/ /*-,$/ /*-,$*% / /   s?jw{%#/s1#}j5j5#!s\"k7!j7k5#/,/*-.%/,//,$/,'*-.%/,$/ / *% /*-.%/ /  s{%s{%#+%ssj7#!jws1#j7#!ss    /,.%/,.%/,.%,,/*-,$/*-,$/ /*-,$/,,   BBC##jwsj7#juz5#j7k5  #j7c1op?       / *-,*-,*%*%/ /*-.%/,$/,/*-.% /  s1#\"!s1s\"!sj5#j}xjwsj7k5k7/,$/ / / /,$/\"- / / /*%/ /*%!/*-,*%*%*%    s{%s{%#+%ssjw{5#jw{5##         /,.%/,.%/,.%,,/*%  /,/*%+$ /        <,,4<,,4<,,4|h4       h4|($         5b(55b(55j5n5{5s{5k5j5k5{5s1  -,,%-,,%-,,%/*%/,$/.%/.%/*%/*%/,$,.%`ppp`ppp`ppp ppppppppppppppppppppppp j 4jj 4jj tz||,||h|<,|4||   ||h|<,, j 4kj 4kj ?o jwss1zubss *,,.*,,.*,,. ,,,,,,,,,,,,,,,,,,,,,,, Home  Prev  Next  Auto  "
  },
  {
    "path": "examples/general/example.csv",
    "content": " #######.## ,##.## , ### ,##.## ,\n    Item,  Each, Qty, Total,\n,,,,\nDrawers,=25.95,=1,=B3*C3,\nLabels,=17.49,=1,=B4*C4,\nGlue stick,=1.62,=5,=B5*C5,\nPouches,=13.5,=1,=B6*C6,\nMailers,=2.1,=3,=B7*C7,\n,,,,\nGrand total,,,=D3:D7,\nVAT @ 17.5%,,,=D3:D7*.175,\n,,,,\nAmount due,,,=D9+D10,\n"
  },
  {
    "path": "examples/general/mode7dem.car",
    "content": "\u0006MICRONET Starnet (C)   \u0007811211087a\u0003  0p\u0003\u001d\r\u0004  Videotex emulation frame test     \u0003\u001d\r\u0004  Videotex emulation frame test                                             \u0003The following sequence of frames       \u0003provides pattern tests for Videotex    \u0003emulations. They start simple and      \u0003progress to more complex combinations  \u0003of ESCAPE codes.                                                                I will give an example line followed by an indication of how it should look.    Some of these indications may be        approximate (e.g. using a - instead of  the graphic\u0017,\u0007or ! instead of\u00175\u0007).                                             \u0003These examples comply with the Prestel \u0003terminal spec. and have been checked on\u0003terminals with dedicated Videotex      \u0003display hardware. They can be regarded \u0003as definitive.                                                                 \u0003\u001d        PgDn  to continue           \u0003\u001d        PgDn  to continue           \u0006MICRONET Starnet (C)   \u0007811211087b\u0003  0p\u0003\u001d\r\u0004  Videotex emulation frame test     \u0003\u001d\r\u0004  Videotex emulation frame test                                             \u0006Character definitions.\u0007These are        examples of the less standard Videotex  characters:                                                                     _ - Hash symbol                         # - British pound sign                  ` - Long dash. Same position as - but       about the same width as letter H.   | - Double vertical bar. About the same     height as the letter H.             ^[] - Up, left and right arrows.        ~ - Divide sign (Horizontal line with 2     dots).                              \\{} - 1/2, 1/4, 3/4.                     - small block. Should be about the    same dimensions as the letter H but     smaller than the graphics block\u0017\u0007.                                            \u0003\u001d        PgDn  to continue           \u0003\u001d        PgDn  to continue           \u0006MICRONET Starnet (C)   \u0007811211087c\u0003  0p\u0003\u001d\r\u0004  Videotex emulation frame test     \u0003\u001d\r\u0004  Videotex emulation frame test                                             \u0006Foreground text colours.\u0007Later on I     will use single letter abbreviations    for the colours:                                                               \u0001Red     (R)                            \u0002Green   (G)                            \u0003Yellow  (Y)                            \u0004Blue    (B)                            \u0005Magenta (M)                            \u0006Cyan    (C)                            \u0007White   (W)                             Black   (K) is not available as a                   foreground colour.                                                  Each line starts as alphanumeric white  (which is what this should be).                                                                                        \u0003\u001d        PgDn  to continue           \u0003\u001d        PgDn  to continue           \u0006MICRONET Starnet (C)   \u0007811211087d\u0003  0p\u0003\u001d\r\u0004  Videotex emulation frame test     \u0003\u001d\r\u0004  Videotex emulation frame test                                             \u0006Foreground graphics colours.\u0007Blast      through characters (with bit 2^5 clear) should be the same as text characters.                                                                                 \u0011,,,,,,,,,   RED   ,,,,,,,,,            \u0012,,,,,,,,,  GREEN  ,,,,,,,,,            \u0013,,,,,,,,, YELLOW  ,,,,,,,,,            \u0014,,,,,,,,,  BLUE   ,,,,,,,,,            \u0015,,,,,,,,, MAGENTA ,,,,,,,,,            \u0016,,,,,,,,,  CYAN   ,,,,,,,,,            \u0017,,,,,,,,,  WHITE  ,,,,,,,,,                                                     General form should look like:                                                  ---------  NAME   ---------                                                                                            \u0003\u001d        PgDn  to continue           \u0003\u001d        PgDn  to continue           \u0006MICRONET Starnet (C)   \u0007811211087e\u0003  0p\u0003\u001d\r\u0004  Videotex emulation frame test     \u0003\u001d\r\u0004  Videotex emulation frame test                                             \u0006NEW BACKGROUND and BLACK BACKGROUND.    NEW BG sets the background colour to    the current foreground colour. BLACK BG sets the background colour to black.    Both are effective immediately in the   character where the code sits.                                                                                           \u001d\u0001\u001d\u0002\u001d\u0003\u001d\u0004\u001d\u0005\u001d\u0006\u001d\u0007\u001d \u001c\u0011\u001d\u0012\u001d\u0013\u001d\u0014\u001d\u0015\u001d\u0016\u001d\u0017\u001d \u001c     KKWWRRGGYYBBMMCCWWKKRRGGYYBBMMCCWWKKKKKK                                                                                \u0001\u001d\u0007--W ON R--  \u001d\u0001--R ON W--  \u001c--R ON K--\u0011\u001d\u0017,,W ON R,,  \u001d\u0011,,R ON W,,  \u001c,,R ON K,,Should look like:                          --W ON R--    --R ON W--   --R ON K-- RRRRRRRRRRRRRRWWWWWWWWWWWWWWKKKKKKKKKKK                                        \u0003\u001d        PgDn  to continue           \u0003\u001d        PgDn  to continue           \u0006MICRONET Starnet (C)   \u0007811211087f\u0003  0p\u0003\u001d\r\u0004  Videotex emulation frame test     \u0003\u001d\r\u0004  Videotex emulation frame test                                             \u0006FLASH and STEADY.\u0007The foreground        component of a character swaps period-  ically between its normal pattern and a SPACE. The background component is      unaffected. STEADY cancels FLASH.                                                                                      \bThis is flashing.\tThis is steady.                                                                                      \u0001\u001d\u0007\bFlashing white/red on steady red BG.                                                                                \b\u0011\u001d\u0017,,, THIS IS ALL FLASHING ,,,  \u001c,,,, Should look like (all flashing):            --- THIS IS ALL FLASHING ---   ----                                                                                 \u0003\u001d        PgDn  to continue           \u0003\u001d        PgDn  to continue           \u0006MICRONET Starnet (C)   \u0007811211087g\u0003  0p\u0003\u001d\r\u0004  Videotex emulation frame test     \u0003\u001d\r\u0004  Videotex emulation frame test                                             \u0006SEPARATED and CONTIGUOUS graphics.      In separated graphics the 6 cells of    the graphics character are separated    from each other by a small BG colour    border. Contiguous is the default case  where the cells fill the character.                                            \u0001\u001d\u0017\u001a\u0007- a character of 6 separated cells                                        \u0001\u001d\u0017 \u0007- the contiguous version               \u0001\u001d\u0007completely fills the character                                          \u0001\u001d\u0017AAA\u001aAAA\u0019\u001a\u0007aaa\u0017  Should look like:                          AAA AAA   aaa      CCC   CCC SSS   SSS CCC SSS     SSS                                                C=Contiguous    S=Separated       \u0003\u001d        PgDn  to continue           \u0003\u001d        PgDn  to continue           \u0006MICRONET Starnet (C)   \u0007811211087h\u0003  0p\u0003\u001d\r\u0004  Videotex emulation frame test     \u0003\u001d\r\u0004  Videotex emulation frame test                                             \u0006CONCEAL.\u0007This code conceals characters  following it on the line. The           complementary function 'REVEAL' is a    command at the user terminal. All       characters under conceal are displayed  as spaces.\bCONCEAL is disabled by a    \bsubsequent foreground colour code.                                             \u0001\u001d\u0007--VISIBLE--\u0018--CONCEALED--\u0007--VISIBLE--\u0011\u001d\u0017,,VISIBLE,,\u0018,,CONCEALED,,\u0017,,VISIBLE,,Should look like:                          --VISIBLE--               --VISIBLE--               --CONCEALED--                                                     Reveal on your local terminal should    reveal the --CONCEALED-- section.                                                                                      \u0003\u001d        PgDn  to continue           \u0003\u001d        PgDn  to continue           \u0006MICRONET Starnet (C)   \u0007811211087i\u0003  0p\u0003\u001d\r\u0004  Videotex emulation frame test     \u0003\u001d\r\u0004  Videotex emulation frame test                                             \u0006DOUBLE and NORMAL HEIGHT.\u0007These can     cause more than their fair share of     problems! If a line contains a double   height code anywhere then the line      contents will completely define the     look of that AND the following line.    Any characters in the following line    are completely ignored (including       double height codes). This has          important consequences for dynamic      frames which I will ignore at the       moment.                                                                         When double height is in operation the  1st line contains the upper half of the (stretched) character and the 2nd line  contains the lower half.           ....                                        \u0003\u001d        PgDn  to continue           \u0003\u001d        PgDn  to continue           \u0006MICRONET Starnet (C)   \u0007811211087j\u0003  0p\u0003\u001d\r\u0004  Videotex emulation frame test     \u0003\u001d\r\u0004  Videotex emulation frame test                                              In a line containing a double height    code, normal height characters are      displayed on the 1st line with          corresponding spaces on the 2nd. The    background colour of the 2nd line       always follows the first (even before   the first double height code).                                                 \u0001\u001d\u0007Normal\rDouble\fNormal\u001d\u0001Normal\rDouble\u001d \u0001\u001d\u0007Normal\rDouble\fNormal\u001d\u0001Normal\rDouble\u001d Should look like:                          Normal Double Normal  Normal Double            Double                Double   RRRRRRRRRRRRRRRRRRRRRRWWWWWWWWWWWWWWWRR          ^^^^^^                               Single double                            height word                                                             \u0003\u001d        PgDn  to continue           \u0003\u001d        PgDn  to continue            p112   BBCSDL 112  Sun 17 May 17:05/50\u0003\u001d\r\u0004  Videotex emulation frame test     \u0003\u001d\r\u0004  Videotex emulation frame test                                             \u0006HOLD and RELEASE graphics. Normally    control characters display as spaces    but the Hold Graphics mode allows a     limited range of attribute changes      without intervening spaces:                                                    WWWWWYYYYYCCCCCGGGGGMMMMMRRRRRBBBBBKKKK                                         A change in alpha/graphics mode clears  the held graphics character:           | WWWWWYYYYYCCCCCGGGGGKKKKKKKKKKKKKKKKKKK                                         And so does a change in double-height:  WWWWWYYYYYCCCCCGGGGGKKKKKKKKKKKKKKKKKKK        PgDn  to continue                   PgDn  to continue            p113   BBCSDL 113  Sat 16 May 10:15/08\u0003\u001d\r\u0004  Videotex emulation frame test     \u0003\u001d\r\u0004  Videotex emulation frame test                                             \u0006Full Level One Facilities.The FLOF    extensions support alphanumerics and   graphics black foreground colours, and dual character sets.  These modes must be enabled using VDU 23,18,3,1,0;0;0;                                             Black (K) on white background       Black (K) on green background                                               ,,,,,,  BLACK ON CYAN  ,,,,,,                                             The ESC character toggles between the   primary and secondary character sets,   every row begins in the primary set.    Here the secondary set is Cyrillic:                                            [\\to demonstraciq Rossijskogo teksta]                                        \u0003\u001d        PgDn  to continue           \u0003\u001d        PgDn  to continue            P295 ؠ샠󓚖Ǡ󕎑󓚖Ǡ󕎑󑙕堠󖘓󑙕堠󖘓嗚àǠˠϠӠנ۠ߠ胪劊\u0002P\u0001R\u0006E\u0004S\u0007T\u0005E\u0003L          \u0007190818a   \u0003  0p\u0012\u001d\u0004\u001d                                    \u0002\u001d\u0004\u001d                                    \u0002\u001d\u0014\u001d                     \u0012\b x4        \u0002\u001d\u0014\u001d                      \b\u00125        \u0002\u001d\u0014\u001e\b \tj\u0002\u001d\u0014\u001e/o\b \tj\u0002\u001d\u0014\u001d          \u0012h~e~}    5        \u0002\u001d\u0014\u001d          \u0012?y?/u  ~5        \u0002\u001d\u0014\u001d         \u0012`57~vo4~!        \u0002\u001d\u0014\u001d         \u0012z5%*s~!         \u0002\u001d\u0014\u001d        \u0012`|~r/e!          \u0002\u001d\u0014\u001d       \u0012h%           \u0002\u001d\u0014\u001d       \u0012z?!            \u0002\u001d\u0014\u001d      \u0012x?!             \u0002\u001d\u0014\u001d  \u0012 `p~/!               \u0002\u001d\u0014\u001d \u0012|~/!                 \u0002\u001d\u0014\u001d \u0012?#    \u0007To see our     \u0002\u001d\u0014\u001d \u0012?!  \u0007gallery of Prestel \u0002\u001d\u0014\u001d \u0012?!   \u0007 pictures,just keep \u0002\u001d\u0014\u001d \u0012?!      \u0007    pressing 8     \u0002\u001d\u0014\u001d \u0012#####!                            \u0002\u001d\u0014\u001d                                                                            \u0002P\u0001R\u0006E\u0004S\u0007T\u0005E\u0003L          \u00071908181a  \u0003  0p\u0016\u001d                                      \u0016\u001d \u0004\rConstruction Industry              \u0016\u001d \u0004\rConstruction Industry              \u0016\u001d         \u0006\u001d             \u0011ppxp0        \u0016\u001d         \u0011pp<,o#k#k#k#k#k####|p    \u0006\u001d       \u0011######7############{w####   \u0006\u001d             \u00115           \u00115j  ##     \u0006\u001d             \u00115          \u0011puz         \u0006\u001d      \u00155  \b \t   j    \u0011kj         \u0006\u001d\u001e     \u0015\u001d\b\u0016\u0015\t\u0006\u001d   \u0011z         \u0006\u001d      \u0015   j5  j5        \u0011w{         \u0016\u001e\u0013//////\u0006\u001d    \u00115j         \u0014\u001e\u0016\u0013pppppp\u0006\u001d    \u0011uz         \u0014\u001e5 5 \u0016\u0013\u0016\u001d    \u00115j         \u0014\u001e\u0006\u001d  \u0013j     j         \u0011uz         \u0014\u001e5 5 \u0016\u0013\u0006\u001d\u00115j         \u0014\u001e\u0016\u00137##########?///o/\u0016\u001d\u00115j          AKER\u0014\u00135     \u0017`p0\u0013?///o \u0006\u001d\u00117k   \u0012 \u0014#####k\u00135  h~\u0017zpu\u00135   j\u0011 \u00125j  \u0014|||| j\u00135\u0017///o?o?\u00135   j\u0011.////-\u0012\u0017\u001d\u0004Courtesy of National Building Agency                                                                                 \u0002P\u0001R\u0006E\u0004S\u0007T\u0005E\u0003L          \u00071908182a  \u0003  0p\u0007\u001d                                      \u0017\u001d                                      \u0017\u001d                                      \u0017\u001d                                      \u0017\u001d                                      \u0017\u001d                     \u0014\u001a             \u0017\u001d\u0014   \u00195              \u001a5            \u0017\u001d\u0014\u001a  \u00195 \u0016ppp       \u0014\u001a   \u0019        \u0017\u001d\u0014   \u00195 \u0016 \u0014\u001a      \u0019        \u0017\u001d\u0014\u001a\u00195 \u0016\u0014\u0014\u001a    5 \u00195 \u0016\u001a\u0017\u001d\u0014\u001a\u00195 \u0016\u0014j\u001e\u001a    5 \u00195 \u0016\u001a\u0017\u001d\u0014\u001a\u00195 \u0016\u0014j\u001e\u001a     \u00195 \u0016\u001a\u0017\u001d\u0014|5h|\u001d\u0017\u001a\u001e\u001d\u0014 \u0019\u0016\u001a\u0014\u001e\u001a\u001e\u0019\u001e\u001a\u001d\u0017 \u001d\u0014\u001e\u001e\u001d\u0019\u001d          \u0014/\u001e\u001a\u001e\u0019\u001d \u001c\u001a\u0019\u0019\u0019\u001a\u0019\u001a\u0019? \u001a\u0014 \u001e\u001a'k\u0019 \u001ao'oo?*\u0019k5\u001c \u001a'k\u0014  \"/ \u001a\"!\"    ?! +?!  +?! +5  \u0019   /#                                          \u0016                                       \u0016                                       \u0007       Courtesy of Mills & Allen                                                                                       \u0002P\u0001R\u0006E\u0004S\u0007T\u0005E\u0003L          \u00071908183a  \u0003  0p\u0016\u001d                                      \u0016\u001d \u001475j 55jjj#57%  7k  5jj#55jj+ 7!     \u0016\u001d \u00147kj 5-njj 55k  =n  7kj 55jb#57!     \u0016\u001d \u0014##\"#!##\"\" !##  !\"  !\"\"#!##\"#!#!                                                                 \u0017\"!                           \u0011 `~}0                        \u0011xt                   \u0012\u0012\u00124 \u0017j,=n,,=n,5            \u0016        \u0012j \u0017j|}~||}~|5                    \u0012\u00125\u0017jupppppp              \u0012h}\u0017jh,lj/?o/h|||j5      \u0017======5\u0012j\u0017jj|~j#7k#jj5=====5\u00175555555\u0012 +?!\u0017jjjj{j5555555\u0012\u001d                                      \u0012\u001d   \u0004                                  \u0012\u001d                                      \u0012\u001d   \u0004                                  \u0012\u001d                                      \u0012\u001d   \u0004                                  \u0012\u001d                                      \u0012\u001d    \u0004COURTESY OF NORWICH UNION        \u0002*1908184                               \u0002P\u0001R\u0006E\u0004S\u0007T\u0005E\u0003L          \u00071908184a  \u0003  0p\u0014\u001d                                      \u0014\u001d\u0016\"k#`p`p0pp`p0pp`p0p0x0  pp`p0pz      \u0014\u001d\u0016 j j h,55j*,45jj 55 j   <nj 55j      \u0014\u001d\u0016 \" \" \"#!!\"\"#!7#\"#!! \"!  ##\" !##      \u0014\u001d    \u0016k#51pp`t`pbjp00``tb`p0pp         \u0014\u001d    \u0016j 55-l 5j jj 55j 5jj 55j         \u0014\u001d    \u0016##!!## #\" \"\"#!## #\"\"#!!\"         \u0014\u001d                      \u0016||||||||||||4  \u0014\u001d                      \u00165  \u0014\u001d                     \u0017\u00165  \u0014\u001d                     \u0017\u00167\u00175   \u0016   \"5  \u0014\u001d             \u0013\u0013\u00165   \u0016\u00165h~|    \u0016\u0016  5  \u0014\u001d             \u0011\u00118|<0\u0016 \u001655g3s%     \u0016 5  \u0014\u001d \u0016          \u0011\u0011~ 5j4 \u0016\"5  \u0014\u001d \u0016h#7####i \u0017\"#i#i## \u0016\u00165  \u0014\u001d\u0016\u0016~x~|ppppz4 \u0014\u0017|~5  \u0017\u00167#7#5  \u0014\u001d\u0016j##7####7#k \u0017`u   \u0016w7###w5  \u0014\u001d\u0016jwsss{w \u0014\u0017\"7 \u0017 \u0014\u00175\u0016####!\u00175  \u0014\u001d\u0017j       j \u0016\u0014\u00175 \u0013 \u0014\u00175       5  \u0012\u001d                                      \u0012\u001d   \u0004 COURTESY OF NORWICH UNION                                                                                        \u0002P\u0001R\u0006E\u0004S\u0007T\u0005E\u0003L          \u00071908185a  \u0003  0p                                        \u0016     jk 0``p01pp`p0pp`p0 j 57%j#5      \u0016     j#55j*,455jj,%-l*,4 j 53kj,5      \u0017\"!\u0016\"#!##\"#!!!\"\"#!##\"#! \"#!##\" !      \u001e\u0017\u0014pppppppppppp\u0011pppp||||||||      \u001e\u0017\u001d\u0014wwwwww\u0011/////########!   \u001c      \u001e\u001d\u0014?}?}?}?}?}?\u0011pppppx|||||||~\u001c       \u001e\u001d\u0014wwwww\u0011//////#######!   \u001c      \u001e\u001d\u0014}?}?}?}?}?}\u0011ppppppx|||||||\u001c       \u001e\u001d\u0014wwwwww\u0011//////#######!   \u001c      \u001e\u001d\u0014?}?}?}?}?}?\u0011ppppppx|||||||\u001c       \u001e\u001d\u0014\u0011?///////##\u001f\u001c      \u0017\u001d\u0011                   `ppppppp|||\u001c      \u0017\u001d\u0011///\u001c      \u0017\u001d\u0011###################!       ppp\u001c     \u001e \u001d\u0011|||||||||||||||||||\u001c       \u0017\u001d\u0011///////////////////########   \u001c      \u0017\u001d\u0011ppppppppppppppppppp||||||||\u001c     \u001e\u0017\u0011///////////////////########         \u001e\u0017                                     \u0017                                    \u0017                                                                             \u0002P\u0001R\u0006E\u0004S\u0007T\u0005E\u0003L          \u00071908187a  \u0003  0p                                        \u0006\u001d\b\u0017 z}~\u001d\u0016\u001d                    \u0006\u001d\b\u0017z\u001e\u001d \u0006 \u0016h\u001d\u0017|xtptp0\tx|tx|}      \u0006\u001d\b\u0017+o\u001e\u001d \u0016h\u001d\u0017k\u001e\t4     \u0016\u001d\b\u0017 \"/o/\u001d\u0016k\u001d\u0017+\u001e\t+/o      \u0016\u001d\b\u0017                  ##/'\t  \"#\u0011*?     \u0016\u001d\u0014      #/                   \u00115     \u0016\u001d\u0014    \u001e   \u0011       ~}          \u00115     \u0016\u001d\u0014\u001e   \u001e   \u0011\u001d \u0006``````````````````` \u0011\u0016\u001d \u0016\u001d\u0014\u001e       \u0011\u0016\u001d \u0006\u001d\u0014\u001e      j\u0011 PRESTEL EXPRESS\u0011% \u0016\u001d\u00145   j\u001e\u001d\u0011//o//o\u0016\u0016\u001d\u00145   j\u001e\u001d\u0011'    \"o'    \"o       \u0016\u0013\u001d\u0014upppz\u001e\u001c\u001f\u0015~\u001e4 ~\u001d\b \u0014h||\u001d\t\u0013\u0013\u001d\u0015x\u001e}0x\u001c}0j\u001fj\u001d\b \u0014x'\t\u0014\u001e\u0013\u0013\u001d\u0015\u001e5\u001e\u001c5 \u001d\b\u0014,,,,,,,,,,,,,, \t\u0013q\u0012\u001d\u0015+\u001e?!+\u001c?!  +o/!   +o/!   +o/! \u0012\u001d \u0014#/###/###/###/###/###/###/###/###/###/#\u0013\u001d\u001a\u0012\r    \u0013\u001d\u001a\u0012\r    \u0013\u001d\u001a\r\u0012    \u0013\u001d\u001a\r\u0012                                            \u0002P\u0001R\u0006E\u0004S\u0007T\u0005E\u0003L          \u00071908188a  \u0003  0p       \u0014\u0014\u0014\u0014\u0014\u0014\u0014\u0014\u0014\u0014\u0014\u0014\u0014\u0014`                         \u0014\u0014\u0014`|t   `x||~}$  x|0                     \u0014~4  ?o}~w  `t                   \u0014z5 (,lw! j4               \u0014\u0014\u0014~5  \"c{5 j4              \u0014 .kou  h# jow#$               \u00147k!4k#th~t`7k!4k#5               \u0014j}4qp1|}}~}4qp1|0              \u0014~?}|||?o'2o/}|||?}           \u0014\u0014 *'i?u2$!&p}\"+             \u0014 `~?io5,,$oo?o;u               \u0014z?!~i'?j?*7j*}+t        \u0012   \u0014 \"! h%z? a~}t \"o5o4               \u0014  `~7 'axtp\"-\"o0              \u0014\u0014\u0014~7!   n?1   \"o}0        \u0003THE\u0012\u0014\u0014\"!`x0 `~/ki*k/t0 `0           \u0003SIGN\u0014\u0014  !s|?}t\tz4`|~|;'! \u0003COURTESY\u0003OF THE\u0014 h/e  \"`u!# bw+=4  \u0003 OF    \u0003SPREAD\u0014   *!   ~?o}   7    \u0003BARCLAYS\u0003EAGLE\u0014       `~?{7kwo}0       \u0003BANK   \u0014     \u0014       ?#xe:v+%               \u0014     \u0014         o'j5*?                                                         \u0002P\u0001R\u0006E\u0004S\u0007T\u0005E\u0003L          \u00071908189a  \u0003  0p\u0004\u001d                                      \u0014\u001d\u0013                p0                   \u0014\u001d\u0013`|tp       `~}t                 \u0014\u001d\u0013+tp x|~++u                \u0014\u001d\u0013 \"#/\u001d\u0011       `||t0  \u0014\b+\u001d \u0004\u001d\u0013`|\u001d\u0011        `?;     \u0014\b+\u001d   \u0014\u001d\u0013*///\u001d\u0011      \"/',!       \u0014\b+\u001d     \u0014\u001d\u0013\u001e  z\bt        \u0014\u001d\u0013\u001e  +'#/\bt0     \u0014\u001d\u0013\u001e       ##k\b}     \u0014\u001d\u0011\u001ep0 \u0013     ~\b/ot    \u0014\u001d\u0011 5\u0013      \"%\b +    \u0014\u001d\u0011psq0\u0013      +k4\b    \"+o7    \u0014\u001d\u0011///%\u0013        k               \u0014\u001d\u00115\u0013         *%                 \u0004\u001d\u0011|||4 \u0012         j j                   \u0014\u001d\u0011sss1\u0012          j j          \u0006Please  \u0014\u001d\u0011///%\u0012        `8n%g,p`0      \u0006press 8 \u0014\u001d\u0011\u001d\u0012      \"&)    #,3d      \u0014\u001d      \u0014\u001d\u0011\u001d\u0001Sorry,\u0012!(                \u0014\u001d     \u0014\u001d\u0011\u001d\u0001this page uses Background  \u0014\u001d    \u0004\u001d\u0001\u001dColour, which you cannot see. \u0014\u001d\f                                          \u0002P\u0001R\u0006E\u0004S\u0007T\u0005E\u0003L          \u00071908190a  \u0003  0p                                          \u0014         p0 (0       0                 \u0014          \"t j      6     p0           \u0014    `rd `~t  `4 |p&             \u0014     .}}xa o4            \u0014      \"k?7  +o4`p         \u0014       j5k?    w0         \u0014      8n?'##/o5 '  (.o \"         \u0014     \" jwx<%\")~4 ``\"sn           \u0014     p0jw~w\"\"  \" x% +           \u0014    jjqpp~?`      pj0          \u0014    jup5j}    j\"d         \u0014    j}\"mp   *' /h\"         \u0014     /?a?/ *#      5*          \u0014      o?x5  (t    z!           \u0014      \"uk%qttt|0    47            \u0014       *4otk###7    `e?             \u0014        \"o0t,,lx    z!  \u0003DRACULA   \u0014          ou       h5   \u0011#+o+#/#   \u0014           k/!    x'{   \b\u0011* h\" 4*   \u0014            \"o0   `x?!z!               \u0014             \"/,,/// *!       \u0003Key 8                                         \u0002P\u0001R\u0006E\u0004S\u0007T\u0005E\u0003L          \u00071908191a  \u0003  0p                          \u0004     ||||    \u0004||||| |||||| |||||| ||||| ||||    |    \u0004||||| |||||| |||||| |||||    | ||||    \u0004||    ||  ||   ||   ||    |||| |       \u0004||    ||||||   ||   ||||| |            \u0004||    ||||||   ||      ||   \u0017x}0     \u0004||||| ||  ||   ||   ||||| |\u0017h4    \u0004||||| ||  ||   ||   |||||\u0017px~p{g;0      \u0014                   \u0001\u0017`~?zi90                         \u0017~i55                      \u0017\u0017`,?z55                      \u0017\u00175 jiu+9!                      \u0017\u0017\"d&/y'\"+7 ),&                                \u0017ws{               \u0004            \u0011 \u0001| | \u0017\u0017xu       \u0001||||  ||||| ||||| |||| | | \u0017~0      \u0001|  |  |   |   |   |\t\u0011 \u0001| | \u0017ke55     \u0001||||| |||||   |   |||| | | \u0017\"oov9o|    \u0001|   | |   |   |    \u0001\u0001| | | \u0017pzz0 #    \u0001|   | |   |   |    \u0001\u0001|\u0011   \u0017/)      \u0001| \u0001 | |   |   |   |||| |\u0001|                                                                                             \u0002P\u0001R\u0006E\u0004S\u0007T\u0005E\u0003L          \u00071908193a  \u0003  0p                                        \u0017\u0007\u0017xu    zt            ,,,,,,,,,,,,     \u0007\u0017~}  ~}\u0003           The EASTEL      \u0007\u0017                              \u0007\u0017*5  j%         \u0003 Bunny Jigsaw     \u0017\u0017 o5  j?            ,,,,,,,,,,,,      \u0017\u0017\"5xtj!                             \u0007\u0017pp      `4  t\u0003                 \u0017     h0z}                \u0017\u0017     *5?\u0003               \u0017\u0017*o?%      * j?                  \u0017\u0017\"+o?'!       `~~u    \u0017  ~0z4        \u0017\u0017 zu         5     *%o?        \u0017\u0017`0        +?!      {~~1      \u0001\u0017 \u0017~}         j       *?      \u0017\u0007\u0017j5       `u       +?!      \u0007\u0017`'xt+0      z0      z0      \u0017x**%%~}   h?y;}     ~4     \u0017};}2a~g~ `|rovog~gxt   o9{%     \u0017o5j?' +5?! ~}{7y4    \u0002 YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY   \u0003Key 8 to continue...                                                          \u0002P\u0001R\u0006E\u0004S\u0007T\u0005E\u0003L          \u00071908194a  \u0003  0p\u0011                   p~j                 \u0011                 x~%j                 \u0013?5?555 5?5?5\u0014  `~?\u0011j\u00170               \u0013-4=555 5555p\u0011 x! j\u0017}               \u0013}5555}4555}~\u0014x7\u0011 j\u0017}              \u0011            h5  j\u0017}             \u0003Please\u0014    `\u0011  j\u0017}0           \u0003Key 8\u0011     z   j\u0017}           \u0014           \u0011  j\u0017}          \u0011              j\u0017}         \u0014           \u0011  j\u0017}0       \u0011           *5  j\u0017}0      \u0014            o}\u0011 j\u0017//////4     \u0011            \"ou j\u0017\u0007SC 1\u0017t    \u0011              #ouj\u0017}   \u0017       `ppppp0   ppppzpppppp           \u0017       \"d 5  5 x~wss{wssss}p   ,,,,<,\u0011         +\u00175 \u0011          \"o\u0017\u0014sssssssss\u0017\b\"(`\u0014\tsssssssssssssssssssssss\u0014,,,,,,,,,,,,,\u0017\b\"(`\u0014\t,,,,,,\u0007COURTESY OF \u0014ssssssssssssssssssssssss\u0007SPORTS COUNCIL                                        \u0002P\u0001R\u0006E\u0004S\u0007T\u0005E\u0003L          \u00071908195a  \u0003  0p\u0014ppppppppppppppppppppppppppppppppppppppp\u0004\u001d       \u0006GO ON, GIMME A KISS           \u0014#######################################\u0003Courtesy of                            \u0003Deutsche\u0012    8o||~}||0             \u0003Bundespost\u0012 h#ik'r4            \u0012            \"<&j*p5            \u0012            j|{{tz4            \u0012           h+=            \u0012           ~u\b##//o?///#\ty            \u0012          j?/||tpx|||ws{t0          \u0012         xw|~0         \u0012        ~5         \u0012        ///s;ows|+5         \u0012        o? }         \u0012       h\"o?!`~         \u0012       j \"/?///`|||         \u0012       j}|<$       ## {?#!         \u0012      x?'o}4                         \u0012      7   ##                                                       \u0003Key 8                                \u0003to continue                                         \u0002P\u0001R\u0006E\u0004S\u0007T\u0005E\u0003L          \u00071908196a  \u0003  0p\u0014\u001d                                      \u0014\u001d\u0006LANDSCAPE                            \u0014\u001d\u0006Courtesy of                          \u0014\u001d\u0006Deutsche Bundespost                  \u0014\u001d                                      \u0014\u001d                                      \u0014\u001d\u0017            x0  `~\u001c\u0014+\u001d       \u0017  x\u001c\u0014k\u0014\u001d\u0017       \u001e   z\u001c4xu \u0014 o\u001d\u0017   x\u001c   \u0014\u001d\u0017  z\u001c\u0014#/\u001d\u0017x\u001e\u001cg~}0 \u001e\u0014#+o\u001d\u0017z\u001c5   \u0014\u001d\u0017x\u001c    x0  pp|?    \u0017x'   x|\u001d\u0016  x\u001c\u0017#/\u001e\u001c' p|~\u0016\u001d\u0017\u001e`p|\u001d\u0016  pp|\u001c}t0 \u0017#+o\u0017\u001d\u0016    p|\u001e\u001c||pp\u001f\u0017#/\u001d\u0016p~\u001c\u0017#+/\u0007\u001d\u0016p|/# \u001c+/}tpp    \u0016\u001d\u0017x\u001c\u0016+'\u0017u\u0016  #/\u001d\u0017p\u001ep|\u001c\u0016\"+|||\u0017//s|~'x~4     ##//u\u0016 #//\u0017t         ##//}t   \u0016##+/\u0017|||pppp      ###      \u0017\u001d\u0016 ppp||||||4                          \u0016\u001d            \u0017####   pp ###////\u001d      \u0007\u001d\u0016/#### \"+//##     #+o/'###                      Key 8 to continue                                         \u0002P\u0001R\u0006E\u0004S\u0007T\u0005E\u0003L          \u00071908197a  \u0003  0p\u0004\u001d\u0006MARILYN MONROE                       \u0001\u001d\u0013\u001a    x?'q~?|0          \u0001\u001d\u0013\u001a   ~'`.s{~t         \u0001\u001d\u0013\u001a  z%`|4        \u0001\u001d\u0013\u001a  h?/0       \u0001\u001d\u0013\u001a  *s//q|||{'}       \u0001\u001d\u0013\u001a  (j}*}5 #/5      \u0001\u001d\u0013\u001a   ak5o/cp'##gq5x|p\"e0     \u0001\u001d\u0013\u001a    po5 z||:}uj     \u0001\u001d\u0013\u001a    !z  ?/#xujz5    \u0001\u001d\u0013\u001a    \"op  x7j?5    \u0001\u001d\u0013\u001a     0` +w|~};5!`     \u0001\u001d\u0013\u001a    *6%*}~o/o~};%`     \u0001\u001d\u0013\u001a     +0 \"o7?!p|<,j  `z5    \u0001\u001d\u0013\u001a     0j4 0}!*'q|'z  #c    \u0001\u001d\u0013\u001a     %/} (*} .'8x h|    \u0001\u001d\u0013\u001a    *$  +u i:}px~?~ \"oppp0 \u0001\u001d\u0013\u001a     *0     +2o'~ ?i}\u0001\u001d\u0013\u001a      (0   px|s//#a~*'x\u0001\u001d\u0013\u001a       \"$xt ``x\u0001\u001d\u0006Key 8 \u0013\u001a`~}:7j                                                                                \u0002P\u0001R\u0006E\u0004S\u0007T\u0005E\u0003L          \u00071908186a  \u0003  0p\u0002\u001d\u0004\u001d                                    \u0002\u001d\u0004\u001d                                    \u0002\u001d\u0004\u001d                \r  \u0002\u0007bye-bye        \u0002\u001d\u0004\u001d                \r  \u0002\u0007bye-bye        \u0002\u001d\u0004\u001d\b   \u0012`p|p0                          \u0002\u001d\u0004\u001d\b   \u0012*}tp0                     \u0002\u001d\u0004\u001d\b   \u0012 \"+ot                   \u0002\u001d\u0004\u001d   \b    \u0012\"+/o}0                 \u0002\u001d\u0004\u001d    \b        \u0012\"ot                \u0012\u001d\u0014\u001e\b\u001e\u00144  \u0014\"o\u001d             \u0002\u001d\u0014\u001e\b\u00144    +\u001d            \u0002\u001d\u0014\u001d               \u0012  }0           \u0012\u001d\u0014\u001d         \u0012~}tp0  ~t0         \u0002\u001d\u0004\u001d         \u0012\"+o}}p       \u0002\u001d\u0004\u001d            \u0012\"+ot     \u0002\u001d\u0004\u001d               \u0012k     \u0002\u001d\u0004\u001d\u0007That all,Folks.\u0012#o     \u0002\u001d\u0004\u001d                   \u0012#//o     \u0002\u001d\u0004\u001d\u0007Press 8 to go back to\u0012 +     \u0002\u001d\u0004\u001d                        \u0012*     \u0002\u001d\u0004\u001d\u0007Presenting Prestel      \u0012#####     \u0002\u001d\u0004\u001d                                                                            "
  },
  {
    "path": "examples/general/polyfit.csv",
    "content": "0.38063,1.57384\n0.97237,4.46118\n0.31340,1.31030\n0.01233,1.28214\n0.65281,1.98653\n0.60111,1.75887\n0.97314,4.29389\n0.92176,3.91646\n0.41448,1.63610\n0.37977,1.51148\n0.90802,3.75928\n0.86876,3.12514\n0.61588,1.80488\n0.32135,1.39078\n0.48076,1.41483\n0.12533,1.18562\n0.15239,1.19574\n0.71502,2.16445\n0.37870,1.25795\n0.55668,1.68862\n0.51869,1.62861\n0.95932,4.34543\n0.60719,1.79532\n0.19967,1.38806\n0.70081,2.24669\n0.41887,1.60611\n0.77173,2.46656\n0.96714,4.35180\n0.58506,1.90310\n0.67860,2.01225\n0.79866,2.78060\n0.84417,3.02344\n0.37646,1.56050\n0.46148,1.53295\n0.17688,1.27667\n0.56645,1.65545\n0.20318,1.38760\n0.95923,4.34993\n0.16219,1.28125\n0.33326,1.34962\n0.63470,1.85219\n0.86513,3.05743\n0.65079,2.04740\n0.30720,1.45471\n0.50143,1.42316\n0.90926,3.83036\n0.70996,2.34000\n0.82711,2.92477\n0.52276,1.64627\n0.33070,1.25271\n0.73401,2.28831\n0.71550,2.05115\n0.99928,4.98856\n0.54851,1.71045\n0.96153,4.16107\n0.98458,4.74416\n0.76006,2.33970\n0.38386,1.49117\n0.64456,1.98655\n0.87701,3.36072\n0.15918,1.04295\n0.64855,1.98336\n0.11895,1.19343\n0.62686,1.82366\n0.44812,1.50468\n0.18788,1.09296\n0.74921,2.42858\n0.83061,2.93544\n0.76238,2.37704\n0.08629,1.09784\n0.16859,1.25349\n0.88585,3.37965\n0.71653,2.03401\n0.52847,1.54835\n0.45689,1.51735\n0.64178,1.78161\n0.28921,1.39618\n0.63222,1.93442\n0.35920,1.46800\n0.95440,4.32209\n0.28290,1.52246\n0.90819,3.73900\n0.50336,1.98995\n0.04285,1.10692\n0.36193,1.51770\n0.10655,1.07948\n0.89592,3.52914\n0.34602,1.38892\n0.12968,1.05949\n0.35870,1.44372\n0.49250,1.49654\n0.10049,1.19062\n0.58097,1.80316\n0.80302,2.63024\n0.43516,1.59052\n0.38218,1.44729\n0.52246,1.71782\n0.57226,1.85823\n0.47439,1.59609\n0.79477,2.59842\n0.61303,1.93804\n0.62921,2.00148\n0.77775,2.47529\n0.36362,1.46556\n0.94993,4.27728\n0.78795,2.69730\n0.37261,1.57762\n0.69880,2.04825\n0.94674,4.29638\n0.18847,1.25334\n0.20916,1.28674\n0.52128,1.69501\n0.74973,2.31528\n0.35684,1.54182\n0.30747,1.29873\n0.87388,3.54674\n0.16372,1.36147\n0.93917,3.86607\n0.33232,1.82804\n0.30488,1.40706\n0.55160,1.80334\n0.49560,1.55835\n0.52082,1.69219\n0.24213,1.34268\n0.46423,1.53348\n0.30736,1.49036\n0.74380,2.16150\n0.24165,1.22411\n0.23641,1.50311\n0.32046,1.46673\n0.10799,1.20092\n0.25405,1.30264\n0.24925,1.38006\n0.77956,2.64178\n0.42859,1.46505\n0.20756,1.48044\n0.45662,1.59950\n0.38520,1.55085\n0.53346,1.63883\n0.86535,3.21447\n0.22183,1.23017\n0.84832,3.16819\n0.47399,1.72501\n0.28674,1.37989\n0.69289,1.93188\n0.62908,1.79036\n0.65145,2.00963\n0.28566,1.56944\n0.24912,1.29831\n0.80732,2.84236\n0.04215,0.87786\n0.49550,1.70293\n0.70041,1.93166\n0.44914,1.48703\n0.39747,1.34188\n0.77550,2.47738\n0.52204,1.59832\n0.52998,1.64040\n0.98428,4.68925\n0.24493,1.39234\n0.26236,1.26082\n0.19878,1.29559\n0.42696,1.50559\n0.22126,1.43249\n0.98347,4.60695\n0.69684,2.05746\n0.08868,1.33349\n0.00086,0.81894\n0.17013,1.30700\n0.03348,0.99253\n0.41072,1.54341\n0.48362,1.61572\n0.33941,1.36006\n0.35017,1.42706\n0.21488,1.49439\n0.21459,1.30048\n0.10694,1.39836\n0.90225,3.53078\n0.87276,3.31146\n0.20436,1.21381\n0.97416,4.53312\n0.35433,1.48047\n0.60554,1.86381\n0.33762,1.42819\n0.69516,2.01536\n0.05678,1.10740\n0.66167,1.90334\n0.80071,2.50096\n0.11427,1.42674\n0.32183,1.25820\n0.94271,4.15852\n0.44441,1.47521\n0.35850,1.46293\n0.97763,4.75991\n0.02118,0.95503\n0.70293,2.24786\n0.10276,1.22640\n0.51052,1.73298\n0.72884,2.38721\n0.84903,3.16989\n0.45441,1.54630\n0.70406,2.01099\n0.10621,1.16257\n0.24307,1.36332\n0.66984,1.98852\n0.04458,0.99297\n0.94825,4.04276\n0.93457,3.69229\n0.00192,1.00659\n0.24777,1.48500\n0.82700,2.81124\n0.53366,1.59926\n0.16795,1.23630\n0.41338,1.35488\n0.22716,1.34294\n0.47572,1.46153\n0.25838,1.29331\n0.44713,1.62896\n0.25556,1.31697\n0.94906,4.12645\n0.23962,1.38580\n0.63894,1.94484\n0.70937,2.18585\n0.31908,1.58153\n0.65768,2.16399\n0.33081,1.50572\n0.85241,3.00278\n0.63721,1.99101\n0.20009,1.27401\n0.54468,1.85399\n0.63890,1.99848\n0.18825,1.03887\n0.51372,1.76112\n0.12696,1.11164\n0.95816,4.37000\n0.63853,1.84001\n0.07242,0.94521\n0.48026,1.51103\n0.66894,1.81302\n0.25578,1.19888\n0.09553,1.23058\n0.94761,4.08856\n0.52958,1.56119\n0.63299,1.84300\n0.71036,2.16779\n0.85418,3.02073\n0.72191,2.02020\n0.87114,3.19584\n0.91487,3.88479\n0.75570,2.42789\n0.63956,1.95370\n0.88418,3.39073\n0.12670,1.25107\n0.66584,1.94732\n0.46611,1.46433\n0.51448,1.81184\n0.42488,1.54943\n0.78549,2.29720\n0.19542,1.29935\n0.04508,1.06254\n0.81691,2.75010\n0.13841,1.21247\n0.96410,4.38557\n0.82613,2.92018\n0.65645,1.84656\n0.54859,1.62910\n0.68019,2.08982\n0.60996,1.91358\n0.22112,1.25028\n0.24601,1.28382\n0.22250,1.33728\n0.34843,1.52914\n0.88185,3.47124\n0.65073,2.05301\n0.46423,1.64308\n0.02488,1.03637\n0.21063,1.27183\n0.31777,1.36245\n0.09497,1.27462\n0.26087,1.39030\n0.01121,1.13388\n0.97715,4.80198\n0.74868,2.39513\n0.69692,2.06603\n0.10176,1.20091\n0.03793,1.03805\n0.66418,1.94035\n0.32387,1.41689\n0.26695,1.45570\n0.83728,2.85905\n0.54571,1.69874\n0.34010,1.53793\n0.15861,1.25400\n0.56708,1.72756\n0.02369,1.14494\n0.29703,1.51522\n0.60137,1.88924\n0.33223,1.45504\n0.95012,4.08776\n0.97617,4.55271\n0.31592,1.31003\n0.04600,1.05326\n0.83053,2.79138\n0.34429,1.53935\n0.42863,1.50269\n0.35957,1.51539\n0.35386,1.46353\n0.70496,2.16300\n0.73834,2.31914\n0.25941,1.39970\n0.40374,1.66105\n0.78871,2.70504\n0.91466,3.75192\n0.06444,1.12074\n0.54907,1.65608\n0.05941,1.25260\n0.44346,1.49894\n0.35005,1.42362\n0.83991,2.96656\n0.73413,2.31906\n0.70062,2.10255\n0.81709,2.82339\n0.60844,1.69724\n0.19704,1.22103\n0.99329,4.98771\n0.62589,1.97766\n0.66097,1.96832\n0.62454,1.78877\n0.94537,4.18694\n0.72228,2.29237\n0.20598,1.41793\n0.79641,2.63948\n0.64732,1.84988\n0.07308,1.18634\n0.37157,1.42783\n0.20946,1.25472\n0.01978,1.10293\n0.57089,1.65583\n0.39619,1.62813\n0.29258,1.56486\n0.40919,1.48556\n0.88858,3.55869\n0.62916,2.01102\n0.13160,1.28980\n0.74547,2.22841\n0.15411,1.36206\n0.44771,1.57570\n0.71202,2.18175\n0.77401,2.51656\n0.20287,1.39565\n0.83502,2.90554\n0.79984,2.57111\n0.78750,2.46782\n0.79345,2.53917\n0.03988,1.15730\n0.00879,1.01423\n0.30881,1.44625\n0.16962,1.32926\n0.46095,1.66521\n0.71802,2.22497\n0.63138,1.91577\n0.55610,1.70205\n0.74202,2.32324\n0.24966,1.33408\n0.12197,1.24490\n0.66113,1.83496\n0.86232,3.24923\n0.50449,1.42872\n0.66521,1.95017\n0.96377,4.44059\n0.21120,1.42122\n0.23390,1.13781\n0.84717,2.98865\n0.82385,2.79880\n0.12207,1.20968\n0.46499,1.68597\n0.80385,2.59400\n0.29401,1.48549\n0.62245,1.77500\n0.26725,1.16709\n0.59128,1.86897\n0.78799,2.44380\n0.07953,1.08411\n0.73667,2.31291\n0.73789,2.32596\n0.25024,1.27897\n0.49975,1.57010\n0.93597,3.85125\n0.24976,1.43879\n0.65544,1.98277\n0.95065,4.32754\n0.17197,1.25569\n0.56484,1.78905\n0.36308,1.39865\n0.95736,4.46963\n0.64433,1.79320\n0.67604,1.94257\n0.36175,1.39344\n0.07926,1.33890\n0.92234,3.60932\n0.18327,1.36477\n0.83113,2.70492\n0.35050,1.46353\n0.82676,2.78843\n0.81127,2.67195\n0.81806,2.96708\n0.70733,2.12227\n0.11613,1.10824\n0.42013,1.53409\n0.56961,1.76053\n0.42174,1.42361\n0.22849,1.33908\n0.95086,4.22052\n0.74244,2.34237\n0.49834,1.63001\n0.14045,1.26697\n0.21092,1.29132\n0.94379,4.03457\n0.89426,3.38278\n0.64416,1.72434\n0.26919,1.29994\n0.42524,1.41415\n0.91756,3.95124\n0.02864,1.07048\n0.01568,1.04224\n0.92871,3.79895\n0.02238,0.97470\n0.04781,1.23510\n0.54664,1.62378\n0.77184,2.36750\n0.96884,4.26853\n0.98070,4.65154\n0.09519,1.11521\n0.25149,1.43894\n0.37269,1.44726\n0.75143,2.51529\n0.45330,1.30447\n0.09567,1.11649\n0.04788,1.26428\n0.42030,1.53095\n0.46940,1.63255\n0.35817,1.46459\n0.76883,2.45115\n0.09424,1.07590\n0.58193,1.81715\n0.27573,1.49040\n0.49982,1.61870\n0.91561,3.76247\n0.71002,2.06527\n0.93782,4.20874\n0.91385,3.68539\n0.63422,1.79624\n0.12133,1.20993\n0.23179,1.42799\n0.20231,1.34954\n0.99268,4.99186\n0.41651,1.55276\n0.64001,1.95799\n0.49975,1.71776\n0.76410,2.34543\n0.53228,1.68262\n0.32096,1.30510\n0.85621,3.22505\n0.64297,1.79226\n0.56423,1.62881\n0.45755,1.65619\n0.33321,1.39592\n0.59856,1.71149\n0.66305,2.29265\n0.06868,0.95932\n0.53052,1.73812\n0.83708,2.90649\n0.80980,2.92008\n0.22681,1.18471\n0.82783,2.91024\n0.56968,1.70638\n0.20472,1.12606\n0.61039,1.80122\n0.79252,2.56943\n0.71097,2.15747\n0.04831,1.06813\n0.63925,1.66144\n0.45773,1.52449\n0.81272,2.65389\n0.82442,2.78736\n0.11463,1.08476\n0.43648,1.53937\n0.92083,3.85160\n0.61944,1.90088\n0.15987,1.09315\n0.23328,1.42960\n0.70480,2.09609\n0.15880,1.37045\n0.06722,1.00908\n0.61926,1.92740\n0.64056,1.77366\n0.36824,1.47336\n0.94666,4.26884\n0.37529,1.73828\n0.88134,3.34983\n0.46645,1.72758\n0.52982,1.64017\n0.86147,3.17046\n0.86275,3.33106\n0.38034,1.63571\n0.61180,1.90211\n0.14593,1.32573\n0.48161,1.61040\n0.57276,1.78000\n0.59054,1.81493\n0.84751,2.93860\n0.12908,1.01660\n0.13572,1.11727\n0.45918,1.55966\n0.78653,2.53552\n0.65133,1.83311\n0.54813,1.71441\n0.65609,2.07972\n0.34480,1.55764\n0.93303,3.85413\n0.42158,1.64813\n0.12635,1.43514\n0.63291,1.96484\n0.25967,1.39282\n0.48521,1.62559\n0.63178,1.67511\n0.95139,4.40872\n0.95705,4.39727\n0.70296,1.89137\n0.91563,3.66421\n0.33918,1.54108\n0.74160,2.22767\n0.23266,1.46953\n0.50746,1.79310\n0.18061,1.14180\n0.45139,1.65300\n0.22037,1.36201\n0.57659,1.75097\n0.74039,2.34455\n0.87306,3.28068\n0.63483,1.79905\n0.04283,1.06236\n0.88718,3.31531\n0.50526,1.50049\n0.49542,1.58268\n0.93468,3.91163\n0.53798,1.53784\n0.64671,2.03558\n0.45847,1.47598\n0.18257,1.18236\n0.61458,1.73989\n0.67773,1.88436\n0.53698,1.72444\n0.70611,2.15030\n0.70587,2.25433\n0.18243,1.20965\n0.73206,2.25645\n0.08439,1.24687\n0.50711,1.56879\n0.79214,2.70649\n0.76832,2.56148\n0.98376,4.65482\n0.02545,1.10104\n0.32833,1.47616\n0.58142,1.70183\n0.87945,3.36455\n0.34450,1.41838\n0.87350,3.26498\n0.60528,1.86911\n0.19741,1.40961\n0.69278,1.92119\n0.98039,4.71915\n0.18928,1.44015\n0.74115,2.34650\n0.38768,1.41200\n0.92861,3.85882\n0.43605,1.39533\n0.11639,1.10920\n0.04059,1.23411\n0.79727,2.51424\n0.82187,2.71744\n0.95742,4.26693\n0.08773,1.03911\n0.01164,1.15160\n0.51002,1.78648\n0.37266,1.35813\n0.58442,1.71946\n0.89718,3.44842\n0.94426,4.10764\n0.35985,1.60790\n0.94594,4.25762\n0.60847,1.83771\n0.74606,2.43188\n0.58406,1.50257\n0.66564,2.06882\n0.82839,2.84570\n0.03108,0.92543\n0.94229,4.11483\n0.38009,1.57400\n0.47012,1.63123\n0.35754,1.43534\n0.31973,1.44767\n0.42722,1.54129\n0.96983,4.68720\n0.98285,4.74945\n0.77952,2.41013\n0.49472,1.67129\n0.86720,3.20971\n0.47129,1.50505\n0.71630,2.23286\n0.39846,1.54548\n0.58691,1.64962\n0.81676,2.72995\n0.69324,2.12316\n0.10067,1.11831\n0.67376,1.93978\n0.40976,1.65584\n0.84811,2.84881\n0.90575,3.71316\n0.39201,1.70172\n0.40711,1.52230\n0.74306,2.24290\n0.98818,4.91938\n0.54155,1.66121\n0.73622,2.43667\n0.59742,1.85545\n0.73734,2.27897\n0.85570,3.06030\n0.04321,0.98252\n0.53693,1.59738\n0.54596,1.64111\n0.15658,1.15707\n0.44323,1.55797\n0.50087,1.69531\n0.07682,1.05512\n0.79743,2.44113\n0.06869,1.00409\n0.19624,1.35132\n0.57703,1.76010\n0.78487,2.61074\n0.84600,2.87041\n0.16017,1.08669\n0.04510,1.03522\n0.14033,1.36913\n0.33800,1.44538\n0.81615,2.69784\n0.49181,1.57613\n0.29565,1.39104\n0.16226,1.32519\n0.66073,2.04791\n0.56727,1.69040\n0.61788,1.70080\n0.71841,2.31301\n0.79540,2.72177\n0.99625,4.95782\n0.89994,3.67110\n0.34550,1.49180\n0.24815,1.39397\n0.31816,1.54508\n0.43594,1.59553\n0.22267,1.41237\n0.48381,1.55669\n0.76663,2.46578\n0.21389,1.39171\n0.74426,2.27371\n0.49019,1.60230\n0.30167,1.45737\n0.81483,2.72342\n0.65551,2.13300\n0.63449,1.92793\n0.89489,3.39875\n0.61599,1.79851\n0.58555,1.90709\n0.28663,1.50278\n0.34036,1.28339\n0.59744,1.93865\n0.97623,4.57171\n0.75916,2.37632\n0.03699,1.08127\n0.53991,1.65846\n0.50662,1.51531\n0.84715,3.24536\n0.78839,2.42051\n0.28817,1.47629\n0.67791,2.11574\n0.66974,2.19700\n0.62822,1.83611\n0.66806,1.91354\n0.80786,2.48116\n0.14038,1.14179\n0.96645,4.48051\n0.93407,4.00799\n0.78012,2.39692\n0.14070,1.28517\n0.94080,4.08866\n0.72014,2.23792\n0.20115,1.43299\n0.26950,1.36525\n0.15195,1.19976\n0.79533,2.50093\n0.48314,1.48864\n0.00903,1.00539\n0.01989,1.16613\n0.70207,2.13373\n0.86686,3.26005\n0.52953,1.71468\n0.98589,4.59915\n0.39132,1.53693\n0.69557,1.97088\n0.34367,1.56489\n0.18904,1.14173\n0.74301,2.36439\n0.72130,2.13068\n0.31149,1.40063\n0.35953,1.31560\n0.53274,1.66753\n0.05439,1.23660\n0.67698,2.05123\n0.85451,3.07874\n0.61580,1.99085\n0.63166,1.72329\n0.21677,1.35217\n0.88867,3.73499\n0.99309,4.94869\n0.47021,1.58034\n0.68570,2.07610\n0.55438,1.78883\n0.11948,1.23282\n0.35703,1.51145\n0.85316,3.06296\n0.35616,1.45683\n0.43211,1.68334\n0.45372,1.50100\n0.41153,1.71188\n0.09708,1.04120\n0.72883,2.05545\n0.30403,1.39893\n0.45766,1.38738\n0.30549,1.39556\n0.59349,1.76336\n0.77028,2.42962\n0.26525,1.49863\n0.48314,1.59899\n0.55088,1.78739\n0.29804,1.40541\n0.94452,4.14318\n0.00236,0.94495\n0.62794,1.96699\n0.17094,1.44669\n0.52793,1.71689\n0.23014,1.42132\n0.66808,1.95158\n0.94253,4.19826\n0.86669,3.27523\n0.83799,3.00065\n0.48825,1.63044\n0.35540,1.56535\n0.71668,2.32211\n0.04945,1.20926\n0.26918,1.48655\n0.07307,1.27988\n0.70906,2.04169\n0.81227,2.86285\n0.39265,1.41068\n0.51810,1.77657\n0.86883,3.11017\n0.34939,1.50118\n0.07493,1.13014\n0.15119,1.25583\n0.40081,1.44496\n0.12857,1.16244\n0.43997,1.58757\n0.91322,3.72383\n0.48474,1.66542\n0.00265,0.94956\n0.36792,1.33685\n0.87135,3.24055\n0.87001,3.19715\n0.70583,2.04893\n0.83494,2.86653\n0.84484,2.94968\n0.97765,4.89620\n0.16705,1.43675\n0.00836,1.10186\n0.61056,1.73662\n0.29313,1.36050\n0.36773,1.39563\n0.76886,2.42073\n0.86524,3.14683\n0.60937,1.78513\n0.39300,1.66246\n0.76108,2.48470\n0.46702,1.51265\n0.20628,1.34658\n0.37015,1.63195\n0.44352,1.58090\n0.93827,4.04182\n0.35190,1.39783\n0.44180,1.59014\n0.56237,1.71398\n0.89123,3.55366\n0.42905,1.51155\n0.33902,1.56227\n0.68365,2.17779\n0.94875,4.16917\n0.99273,4.83418\n0.81244,2.81344\n0.49717,1.58660\n0.52970,1.68306\n0.94197,4.01448\n0.90754,3.61901\n0.03804,1.13848\n0.66988,1.90956\n0.47105,1.44364\n0.48450,1.44761\n0.61485,1.78442\n0.32398,1.43111\n0.46944,1.66168\n0.70861,2.33074\n0.04822,1.06563\n0.62807,1.91151\n0.84359,3.07255\n0.12766,1.14599\n0.05157,1.22513\n0.11878,1.21764\n0.35410,1.39780\n0.58089,1.85191\n0.55212,1.63803\n0.25686,1.45163\n0.79380,2.72014\n0.22462,1.18922\n0.16126,1.22556\n0.10613,1.17990\n0.70952,2.21718\n0.71704,2.08151\n0.67703,2.14437\n0.85690,3.08591\n0.51221,1.65109\n0.58160,1.74775\n0.97766,4.60623\n0.63232,1.86223\n0.39732,1.65509\n0.34393,1.28492\n0.16299,1.28210\n0.51113,1.63665\n0.29480,1.29702\n0.37149,1.40465\n0.44001,1.63337\n0.79317,2.45992\n0.50174,1.54083\n0.97712,4.67685\n0.96396,4.62287\n0.29402,1.39131\n0.39125,1.57363\n0.32409,1.48730\n0.72862,2.24105\n0.16611,1.17688\n0.43451,1.52655\n0.39741,1.40098\n0.15210,1.38049\n0.21914,1.43449\n0.14102,1.06490\n0.76619,2.53560\n0.24528,1.35841\n0.59257,1.73724\n0.16843,1.32916\n0.82381,2.99879\n0.65153,1.81953\n0.33781,1.36494\n0.30553,1.34583\n0.58144,1.63715\n0.85275,3.25513\n0.43437,1.42247\n0.96517,4.24442\n0.26096,1.31418\n0.06676,1.13954\n0.47982,1.59259\n0.52158,1.71685\n0.63490,2.01356\n0.25270,1.19363\n0.38755,1.54135\n0.36379,1.30829\n0.64846,1.88840\n0.56162,1.78197\n0.32137,1.44857\n0.11080,1.21767\n0.18909,1.15604\n0.64828,2.13598\n0.73290,2.05615\n0.37872,1.27696\n0.92650,3.90519\n0.57404,1.77808\n0.50057,1.57867\n0.70025,2.24533\n0.52393,1.53399\n0.43902,1.51683\n0.10371,1.19839\n0.20036,1.34255\n0.33871,1.43653\n0.67305,2.03339\n0.02941,1.07071\n0.65144,1.91188\n0.10138,1.24564\n0.77385,2.41518\n0.61441,1.76196\n0.47867,1.64399\n0.89593,3.45835\n0.88248,3.24969\n0.66277,2.03291\n0.91173,3.52675\n0.49797,1.50889\n0.34009,1.32528\n0.54490,1.65732\n0.35727,1.49563\n0.61425,1.87322\n0.97035,4.49250\n0.41363,1.49448\n0.95395,4.42005\n0.69359,2.22873\n0.02643,0.98521\n0.11574,1.20971\n0.80635,2.61320\n0.16225,1.47592\n0.02561,1.02127\n0.30170,1.41338\n0.63100,1.95122\n0.20009,1.13205\n0.45558,1.48341\n0.78378,2.55842\n0.63889,2.06787\n0.88816,3.43701\n0.95895,4.25179\n0.58651,1.61707\n0.13461,1.07013\n0.71112,2.03145\n0.96806,4.50507\n0.57544,1.76667\n0.63352,1.79771\n0.83698,3.09607\n0.87128,3.40537\n0.93084,3.83325\n0.50923,1.74573\n0.15703,1.32416\n0.13178,1.22229\n0.06956,1.10527\n0.60333,1.76799\n0.82279,2.87826\n0.85681,3.09381\n0.63224,1.86611\n0.40835,1.58012\n0.00295,1.21958\n0.03599,1.07255\n0.94487,4.23520\n0.88519,3.46137\n0.81249,2.65622\n0.92922,3.92001\n0.72549,2.16741\n0.79057,2.64892\n0.24944,1.34192\n0.93654,3.96802\n0.14121,1.25870\n0.58284,1.86593\n0.42483,1.33423\n0.69284,2.24202\n0.18009,1.35303\n0.88314,3.18677\n0.05066,1.28939\n0.30704,1.46270\n0.30774,1.25758\n0.12215,1.34719\n0.92561,3.79990\n0.57760,1.90692\n0.73087,2.26738\n0.41076,1.54133\n0.05123,1.05002\n0.03641,1.26420\n0.71069,2.01272\n0.22933,1.19002\n0.32240,1.36179\n0.72573,2.29673\n0.87451,3.40955\n0.21819,1.31119\n0.70195,2.09615\n0.62382,1.94964\n0.13591,1.15720\n0.68638,2.11409\n0.78582,2.57672\n0.83832,2.83115\n0.58356,1.76861\n0.73019,2.49727\n0.81873,2.91555\n0.42436,1.38142\n0.56233,1.62380\n0.42748,1.46490\n0.73635,2.25573\n0.18162,1.36640\n0.64883,2.08356\n0.83140,2.82905\n0.82785,2.91628\n0.10499,1.12948\n0.47310,1.58939\n0.06758,1.26236\n0.12386,1.26187\n0.79458,2.53676\n0.43669,1.50004\n0.21727,1.30660\n0.67469,1.98323\n0.82102,3.00268\n0.50701,1.61487\n0.04078,1.17779\n0.39316,1.50677\n0.99162,4.79656\n0.96447,4.22447\n0.75625,2.45198\n0.81163,2.79011\n0.62270,1.82317\n0.69808,2.15873\n0.45647,1.45334\n0.03295,1.17062\n0.52672,1.59240\n0.46141,1.66839\n0.97827,4.42911\n0.13133,1.23357\n0.98958,4.90816\n0.86433,3.26923\n0.73739,2.20245\n0.19321,1.36735\n0.92000,3.84740\n0.46813,1.42058\n0.46156,1.64813\n0.71651,2.16721\n0.32169,1.35443\n0.44847,1.43509\n0.39357,1.53981\n0.83290,2.88518\n0.60939,1.73048\n0.04246,1.19907\n0.70723,1.80667\n0.40137,1.50688\n0.16167,1.39831\n0.85338,3.07667\n0.28954,1.43375\n0.06119,0.95364\n0.06768,1.17241\n0.39748,1.46869\n0.38402,1.33632\n0.69400,1.92321\n0.57168,1.64424\n0.42491,1.48227\n0.28847,1.32115\n0.61334,1.80412\n0.96256,4.33773\n0.03678,0.99385\n0.30932,1.56542\n0.29999,1.35304\n0.73681,2.36861\n0.25385,1.39976\n0.27297,1.22149\n0.25980,1.20745\n0.75728,2.38285\n0.12077,1.35460\n0.53773,1.69852\n0.33446,1.49384\n0.89569,3.57578\n0.46530,1.57338\n0.30118,1.33819\n0.04770,1.18771\n0.39776,1.33823\n0.01781,1.04576\n0.57760,1.68951\n0.51985,1.63387\n0.77967,2.45435\n0.20560,1.34741\n0.21358,1.25662\n0.91781,3.86776\n0.54304,1.85058\n0.31442,1.45786\n0.56460,1.76386\n0.02299,0.99735\n0.19181,1.45659\n0.36689,1.39545\n0.63144,1.88767\n0.77035,2.53787\n0.77055,2.41582\n0.88389,3.15221\n0.29610,1.51220\n0.74614,2.28683\n0.20502,1.25488\n0.14331,1.26792\n0.69948,1.98047\n0.95852,4.43942\n0.29364,1.60118\n0.81953,2.70075\n0.16764,1.30973\n0.57320,1.64145\n0.04078,1.17048\n0.07834,1.18460\n0.82642,2.84229\n0.17570,1.19697\n0.53532,1.70601\n0.55782,1.81995\n0.38016,1.72154\n0.25072,1.42045\n0.18844,1.22784\n0.78908,2.58308\n0.15846,1.46932\n0.38124,1.48513\n0.50504,1.58557\n0.76258,2.36428\n0.98407,4.66700\n0.78243,2.70005\n0.44954,1.62251\n0.45662,1.53362\n0.48442,1.50277\n0.82390,2.76313\n0.18625,1.37867\n0.41945,1.53522\n0.35251,1.48769\n0.94708,4.21866\n0.15090,1.36138\n0.42823,1.40837\n0.01847,1.07601\n0.05820,1.10431\n0.81609,2.76390\n0.73839,2.19112\n0.10760,1.14125\n0.68306,1.93706\n0.31260,1.43516\n0.94896,4.19575\n0.61273,1.89060\n0.99324,4.87779\n0.78768,2.47919\n0.19179,1.08841\n0.55953,1.90831\n0.09264,1.17715\n0.68171,2.12691\n0.57125,1.68281\n0.06757,1.11078\n0.88093,3.41469\n0.93716,3.97374\n0.50888,1.64233\n0.12267,1.32270\n0.31653,1.50811\n0.17585,1.14523\n0.31165,1.50996\n0.65703,1.98337\n0.75531,2.20510\n0.04434,0.98433\n0.38601,1.64973\n0.27440,1.47525\n0.72457,2.51507\n0.14575,1.12368\n0.96330,4.45158\n0.47731,1.72696\n0.05885,1.39135\n0.37731,1.45496\n0.98955,4.76274\n0.76398,2.39794\n0.38832,1.44215\n0.19789,1.01880\n0.46083,1.61668\n0.73093,2.06011\n0.41745,1.48161\n0.22946,1.40046\n0.67709,1.90794\n0.73144,2.25426\n0.37987,1.49285\n0.28730,1.43040\n0.80705,2.79467\n0.73511,2.22305\n0.96987,4.49185\n0.96504,4.25695\n0.10576,1.36444\n0.71833,2.32346\n0.86061,3.16466\n0.90226,3.57829\n0.39247,1.52376\n0.55449,1.72279\n0.49811,1.63881\n0.99604,4.85659\n0.63273,1.88324\n0.07489,1.17197\n0.68001,2.28442\n0.13987,1.20334\n0.33253,1.31675\n0.66907,2.03688\n0.31497,1.29856\n0.60100,1.86674\n0.26077,1.23951\n0.46649,1.67626\n0.04584,1.09768\n0.53782,1.77073\n0.76122,2.17961\n0.60556,1.72500\n0.37330,1.54650\n0.43311,1.58707\n0.16354,1.29843\n0.58980,1.98921\n0.22302,1.42367\n0.31619,1.51286\n0.87734,3.29695\n0.16001,1.24032\n0.22829,1.35443\n0.04084,1.12915\n0.59077,1.72358\n0.79696,2.49509\n0.86142,3.16797\n0.77780,2.60917\n0.38438,1.55898\n0.70240,2.22781\n0.58006,1.68551\n0.38221,1.41562\n0.12271,1.10764\n0.53566,1.84439\n0.51598,1.47662\n0.79999,2.71764\n0.59971,1.98758\n0.44424,1.46040\n0.48663,1.81261\n0.95621,4.24478\n0.95133,4.09333\n0.68250,2.00261\n0.79827,2.76071\n0.21228,1.45840\n0.67876,1.98813\n0.50284,1.57543\n0.11109,1.41727\n0.80099,2.60453\n0.63176,1.78550\n0.13086,1.33669\n0.57884,1.94288\n0.09611,1.32118\n0.45847,1.54753\n0.76652,2.54120\n0.52294,1.54998\n0.82176,2.73578\n0.59126,1.96552\n0.21182,1.67117\n0.89107,3.48804\n0.96992,4.37979\n0.41222,1.49135\n0.67277,2.08576\n0.58050,1.64179\n0.47583,1.44132\n0.76750,2.46145\n0.17322,1.12863\n0.91720,3.79957\n0.37108,1.43285\n0.27832,1.34439\n0.56675,1.63860\n0.73586,2.13985\n0.17210,1.24124\n0.72462,2.23916\n0.73317,2.33357\n0.15611,1.25882\n0.11825,1.17378\n0.03340,1.18186\n0.63833,2.02899\n0.67589,2.21768\n0.58292,1.79287\n0.81838,2.75484\n0.28780,1.28375\n0.93974,3.90599\n0.97014,4.43753\n0.95231,4.08037\n0.02831,1.04554\n0.95618,4.27083\n0.99982,4.90094\n0.86239,3.30876\n0.95975,4.47212\n0.34517,1.50654\n0.53326,1.56741\n0.70314,2.07124\n0.05729,0.91064\n0.78943,2.53866\n0.76034,2.31483\n0.31852,1.67093\n0.55319,1.88148\n0.46155,1.69692\n0.00139,1.06736\n0.84295,2.98663\n0.76547,2.58315\n0.22072,1.51374\n0.72497,2.41047\n0.13275,1.28499\n0.55059,1.65875\n0.49253,1.51977\n0.55748,1.74730\n0.73374,2.30368\n0.45674,1.48507\n0.15495,1.26248\n0.03116,1.01440\n0.72879,2.12511\n0.43430,1.47728\n0.55539,1.68980\n0.11476,0.99121\n0.93441,3.80594\n0.76134,2.33833\n0.68026,1.91807\n0.76116,2.31228\n0.16781,1.30207\n0.22170,1.49558\n0.11331,1.14015\n0.59639,1.70209\n0.99548,5.19589\n0.05972,1.01222\n0.29738,1.35777\n0.15391,1.23887\n0.77153,2.43927\n0.02328,1.09089\n0.82510,2.82507\n0.18660,1.32966\n0.64701,1.82529\n0.63326,1.63329\n0.43712,1.40545\n0.70351,2.28781\n0.84287,2.92176\n0.69671,2.05182\n0.91611,3.91945\n0.73303,2.29739\n0.06083,1.02154\n0.57406,1.84268\n0.42529,1.59788\n0.13434,1.26013\n0.27420,1.28493\n0.26003,1.40589\n0.41310,1.60823\n0.44440,1.56238\n0.15078,1.43356\n0.15288,1.36017\n0.43732,1.53226\n0.54504,1.72988\n0.15121,1.08663\n0.79667,2.54935\n0.81593,2.80040\n0.30159,1.37178\n0.38327,1.48905\n0.56770,1.45698\n0.26486,1.43001\n0.38787,1.55459\n0.89578,3.64118\n0.51238,1.66021\n0.92675,3.81454\n0.26999,1.39828\n0.80802,2.70305\n0.08483,1.12703\n0.75333,2.27964\n0.24486,1.36322\n0.41439,1.48816\n0.76147,2.33844\n0.59566,1.87575\n0.63847,2.02415\n0.44437,1.59465\n0.63611,1.84271\n0.13179,1.14849\n0.14361,1.41874\n0.52024,1.74340\n0.35364,1.55223\n0.36690,1.44055\n0.94451,4.13434\n0.08482,1.13261\n0.36921,1.48260\n0.54782,1.61659\n0.84375,2.85315\n0.04190,1.12490\n0.34233,1.34762\n0.87966,3.36678\n0.49546,1.58243\n0.74005,2.16026\n0.76442,2.37700\n0.57409,1.74954\n0.21835,1.35644\n0.82984,2.95693\n0.40925,1.62389\n0.04427,1.09717\n0.38132,1.62942\n0.71162,2.30852\n0.31886,1.56625\n0.70170,2.10617\n0.83952,3.09291\n0.70810,1.95671\n0.34249,1.36769\n0.42384,1.39706\n0.79116,2.46665\n0.30152,1.35797\n0.95783,4.36634\n0.15939,1.25432\n0.74570,2.29305\n0.16067,1.22412\n0.54654,1.67195\n0.64024,1.79440\n0.11324,1.06300\n0.87844,3.18200\n0.14878,1.31558\n0.29360,1.30122\n0.78258,2.61740\n0.56367,1.71049\n0.07144,0.98664\n0.92494,3.82991\n0.30998,1.21260\n0.95257,4.38794\n0.62430,1.73985\n0.02552,1.16363\n0.93436,3.92997\n0.18854,1.33650\n0.62848,1.96236\n0.77122,2.53165\n0.81557,2.76949\n0.44622,1.48924\n0.43717,1.50938\n0.57906,1.69537\n0.84153,2.91612\n0.04003,1.02230\n0.53574,1.72575\n0.07555,1.15423\n0.69730,2.03055\n0.69153,2.01453\n0.32129,1.61669\n0.34949,1.50668\n0.03084,1.08705\n0.80514,2.59503\n0.42805,1.63837\n0.66344,2.11411\n0.84853,3.05857\n0.63697,1.75438\n0.73585,2.32802\n0.38174,1.41707\n0.53926,1.78413\n0.17680,1.16938\n0.46130,1.72111\n0.95182,4.15923\n0.60279,1.94489\n0.73750,2.17373\n0.01668,0.89913\n0.37310,1.57093\n0.61811,2.10643\n0.94161,4.22919\n0.69228,2.13029\n0.76014,2.34545\n0.74038,2.20476\n0.19427,1.21652\n0.92140,3.81558\n0.57203,1.87032\n0.61078,1.84829\n0.85128,3.01140\n0.19100,1.15421\n0.83477,2.95346\n0.82896,2.96826\n0.30959,1.29224\n0.56073,1.75920\n0.19192,1.18668\n0.51764,1.57196\n0.63824,1.91388\n0.75967,2.43257\n0.07238,1.01231\n0.91508,3.76363\n0.27860,1.31419\n0.35021,1.43758\n0.35845,1.35376\n0.13393,1.04874\n0.96345,4.44524\n0.28922,1.15431\n0.31775,1.48301\n0.15414,1.20117\n0.07697,1.07955\n0.01151,0.93069\n0.88416,3.43216\n0.98441,4.84962\n0.36489,1.53377\n0.94316,4.02911\n0.92605,3.81782\n0.24688,1.47982\n0.39749,1.42183\n0.14890,1.31528\n0.49002,1.61403\n0.66405,1.82378\n0.79485,2.58473\n0.53248,1.73678\n0.81431,2.64204\n0.95002,4.22731\n0.53178,1.70924\n0.78937,2.69592\n0.09089,1.29144\n0.22508,1.37692\n0.87680,3.39798\n0.98274,4.72758\n0.60319,1.84306\n0.15253,1.10519\n0.86383,3.22174\n0.60287,1.77836\n0.10515,1.28329\n0.11575,1.40348\n0.37712,1.38566\n0.97189,4.55860\n0.41854,1.61705\n0.24535,1.23653\n0.41765,1.63625\n0.65798,2.02654\n0.24590,1.43920\n0.26610,1.52065\n0.24225,1.41932\n0.49471,1.64823\n0.45198,1.47616\n0.49254,1.69093\n0.19062,1.43232\n0.80052,2.55796\n0.38595,1.44003\n0.79300,2.55701\n0.27648,1.32516\n0.28445,1.24132\n0.04503,1.12148\n0.41212,1.59859\n0.96852,4.34695\n0.12101,1.11093\n0.74871,2.29547\n0.88102,3.33163\n0.95603,4.09034\n0.07821,1.16605\n0.39280,1.45802\n0.19049,1.22893\n0.43428,1.60503\n0.92234,3.90906\n0.74371,2.34453\n0.92837,3.85202\n0.25054,1.43972\n0.42908,1.48700\n0.29404,1.48877\n0.59558,1.61722\n0.05762,0.99790\n0.55359,1.65040\n0.83574,2.96747\n0.43968,1.54589\n0.32993,1.31036\n0.96527,4.34465\n0.85680,3.02960\n0.80041,2.64305\n0.34708,1.21025\n0.55477,1.65182\n0.76821,2.50321\n0.28436,1.18884\n0.30112,1.27996\n0.31214,1.50887\n0.91042,3.71114\n0.36826,1.53274\n0.37834,1.47727\n0.67514,2.06153\n0.84950,3.07737\n0.07371,1.15556\n0.16421,1.21875\n0.14783,1.11579\n0.53120,1.94330\n0.83059,2.88062\n0.99487,4.93810\n0.00649,1.23470\n0.24014,1.36746\n0.89560,3.35898\n0.76152,2.37447\n0.85830,3.13166\n0.88851,3.43765\n0.65432,1.89505\n0.20361,1.28230\n0.55517,1.87214\n0.98855,4.92562\n0.23028,1.52204\n0.97235,4.67816\n0.60791,1.67779\n0.67182,1.95350\n0.65499,2.02678\n0.89135,3.59057\n0.54941,1.79701\n0.51735,1.61795\n0.00684,1.06491\n0.74816,2.26712\n0.39477,1.45402\n0.71407,2.44975\n0.95731,4.26836\n0.22782,1.46854\n0.96037,4.31483\n0.16792,1.16755\n0.25561,1.35262\n0.28544,1.30533\n0.53087,1.66246\n0.92617,3.90282\n0.54919,1.66162\n0.70439,2.00216\n0.91038,3.64559\n0.65492,2.01562\n0.23086,1.24888\n0.37226,1.46049\n0.76180,2.47952\n0.97864,4.65733\n0.15236,1.17432\n0.10769,1.34355\n0.74135,2.32928\n0.04593,1.27969\n0.84906,2.98853\n0.37260,1.44266\n0.37328,1.62370\n0.68812,2.00721\n0.25008,1.48445\n0.02842,1.16666\n0.84446,3.09016\n0.06123,1.18622\n0.58034,1.74330\n0.89556,3.44929\n0.81976,2.76644\n0.68616,2.03531\n0.23329,1.25765\n0.32218,1.54428\n0.44687,1.60880\n0.06292,1.24778\n0.78806,2.62828\n0.47011,1.50520\n0.86118,3.16128\n0.01228,1.08470\n0.42504,1.59697\n0.03874,1.02376\n0.61391,1.77079\n0.24214,1.48198\n0.91542,3.74666\n0.99245,4.90976\n0.84175,2.78157\n0.00906,1.02063\n0.80639,2.84975\n0.06873,1.37062\n0.36708,1.66852\n0.60909,2.03314\n0.90744,3.54515\n0.72519,2.14304\n0.16895,1.33535\n0.96763,4.50572\n0.96047,4.33693\n0.99699,4.99491\n0.06591,1.13313\n0.42672,1.45990\n0.68184,2.08400\n0.76426,2.66813\n0.55972,1.76422\n0.05283,1.05952\n0.38084,1.36196\n0.82455,2.80273\n0.59730,1.67194\n0.48351,1.53750\n0.96170,4.31530\n0.79164,2.61908\n0.52713,1.67028\n0.97092,4.71937\n0.45788,1.42757\n0.75704,2.32322\n0.77882,2.36861\n0.69640,1.96765\n0.18861,1.31916\n0.47749,1.50521\n0.37855,1.66347\n0.70034,2.01745\n0.46355,1.66425\n0.89854,3.43309\n0.78447,2.59154\n0.90209,3.66331\n0.70348,2.32357\n0.94431,4.13239\n0.94712,4.20549\n0.70255,2.17878\n0.88794,3.40637\n0.14220,1.25032\n0.23711,1.42843\n0.32939,1.54286\n0.47263,1.43918\n0.37152,1.35098\n0.59031,1.87261\n0.28451,1.47558\n0.04322,1.19017\n0.35721,1.35277\n0.18921,1.22656\n0.69845,2.21353\n0.28862,1.29510\n0.62424,1.80308\n0.12701,1.28839\n0.99568,4.98874\n0.85681,3.01511\n0.95886,4.31778\n0.81044,2.61319\n0.55500,1.48770\n0.96904,4.44370\n0.59222,1.72441\n0.09012,1.19863\n0.34860,1.39146\n0.40934,1.33347\n0.36484,1.41648\n0.96490,4.45097\n0.01679,1.12003\n0.56093,1.66695\n0.40933,1.54289\n0.26889,1.50677\n0.89006,3.59409\n0.36641,1.44983\n0.84866,3.09029\n0.07901,1.36191\n0.20830,1.39891\n0.94874,4.17830\n0.51710,1.65623\n0.31052,1.26941\n0.39031,1.08292\n0.09167,1.24578\n0.33707,1.47540\n0.34243,1.53008\n0.63682,1.99632\n0.07942,1.00965\n0.34966,1.37333\n0.20834,1.38057\n0.54410,1.63952\n0.00829,0.99875\n0.97139,4.56026\n0.36670,1.43395\n0.32465,1.38595\n0.75500,2.60204\n0.58254,1.62367\n0.48987,1.66180\n0.93489,3.83905\n0.89997,3.57122\n0.92452,3.82785\n0.42068,1.51874\n0.07262,1.15529\n0.64419,1.87227\n0.90588,3.32458\n0.48065,1.51520\n0.44090,1.60359\n0.20714,1.35671\n0.85207,3.06132\n0.09017,1.16648\n0.12731,1.23219\n0.93246,3.96503\n0.91682,3.79252\n0.78600,2.61772\n0.25060,1.30087\n0.09602,1.11402\n0.66506,1.98165\n0.60442,1.83887\n0.09708,1.35909\n0.88348,3.43522\n0.00282,0.79872\n0.95608,4.31807\n0.14787,1.17120\n0.68221,1.99668\n0.24354,1.46039\n0.40396,1.36875\n0.82206,2.75372\n0.71609,2.15748\n0.94146,4.11734\n0.68716,1.97881\n0.39828,1.51405\n0.08711,1.20547\n0.84580,3.21498\n0.93344,4.08900\n0.43565,1.50163\n0.98993,4.64360\n0.16367,1.38142\n0.71769,2.15666\n0.49514,1.44208\n0.97383,4.60482\n0.50997,1.65683\n0.66111,1.98386\n0.14152,1.25666\n0.63461,1.78951\n0.10843,1.11875\n0.30078,1.33298\n0.84549,3.02617\n0.72646,2.15945\n0.54834,1.60215\n0.79774,2.64529\n0.96486,4.46656\n0.14042,1.05421\n0.96251,4.45583\n0.86026,2.98761\n0.88168,3.41220\n0.17775,1.05121\n0.64153,1.85891\n0.67577,2.13261\n0.53795,1.57921\n0.06584,0.94146\n0.52792,1.70513\n0.33766,1.53918\n0.16669,1.32648\n0.59705,1.78280\n0.95921,4.43385\n0.84268,2.98473\n0.00304,1.11051\n0.24504,1.43181\n0.02242,1.09945\n0.83424,2.90729\n0.86035,3.03596\n0.08665,1.28949\n0.68109,2.17424\n0.34341,1.52903\n0.14925,1.22042\n0.12524,1.26839\n0.18851,1.44990\n0.60344,1.82631\n0.37416,1.43958\n0.38247,1.38337\n0.38664,1.71128\n0.08902,1.02689\n0.46728,1.61409\n0.59356,1.68688\n0.66885,1.93654\n0.62186,1.91988\n0.03705,1.04855\n0.22249,1.38384\n0.69727,1.96206\n0.06580,1.12041\n0.08039,1.28880\n0.15996,1.17711\n0.45490,1.55800\n0.69332,2.35565\n0.28879,1.46086\n0.96270,4.32799\n0.06880,1.14972\n0.27549,1.33429\n0.50302,1.54076\n0.28841,1.40378\n0.07545,1.02221\n0.39860,1.60655\n0.90635,3.43863\n0.16191,1.41365\n0.48422,1.47944\n0.93542,3.74206\n0.01513,1.02368\n0.56419,1.59884\n0.86508,3.00741\n0.59633,1.75450\n0.45988,1.57172\n0.45586,1.37376\n0.40240,1.78156\n0.07597,1.22467\n0.00833,1.04720\n0.29450,1.44102\n0.12873,1.33490\n0.09405,1.17953\n0.61731,1.85702\n0.85685,3.05350\n0.20231,1.20843\n0.90975,3.84698\n0.62203,1.82381\n0.23802,1.37651\n0.65801,1.85178\n0.68872,2.18589\n0.50860,1.71429\n0.08594,1.44848\n0.19058,1.24584\n0.52876,1.91385\n0.20733,1.35454\n0.37145,1.60819\n0.70132,2.04168\n0.92061,3.73051\n0.24914,1.37564\n0.09526,1.29290\n0.73425,2.32500\n0.66677,1.82596\n0.27937,1.37886\n0.93891,3.98272\n0.73046,2.25524\n0.85879,3.13067\n0.41908,1.48986\n0.07119,1.26174\n0.65750,2.09225\n0.83000,2.96804\n0.13014,1.14804\n0.12314,1.34216\n0.32489,1.55625\n0.96162,4.30887\n0.92808,4.05760\n0.98711,4.91610\n0.52383,1.71365\n0.92276,3.81017\n0.46317,1.38108\n0.76812,2.55053\n0.42438,1.53939\n0.23414,1.28583\n0.32674,1.31350\n0.54667,1.83428\n0.11461,1.21191\n0.96426,4.49807\n0.66541,1.83311\n0.48014,1.65534\n0.43835,1.66120\n0.01309,1.12465\n0.64868,2.02056\n0.59617,1.82131\n0.32005,1.58734\n0.00770,1.27579\n0.62490,1.72380\n0.31367,1.44556\n0.42594,1.43106\n0.00070,1.12151\n0.31922,1.28690\n0.20271,1.42968\n0.04428,0.97418\n0.94161,3.98447\n0.45271,1.56304\n0.75289,2.52207\n0.31464,1.40788\n0.69529,2.08812\n0.06811,1.14352\n0.04955,1.06449\n0.15212,0.98338\n0.67997,1.95836\n0.03865,1.02014\n0.89848,3.56539\n0.75903,2.38581\n0.52402,1.53184\n0.20841,1.35759\n0.32272,1.55342\n0.78515,2.52387\n0.36074,1.48299\n0.77644,2.44052\n0.74758,2.48186\n0.55503,1.52984\n0.73137,2.35030\n0.61682,1.89114\n0.33570,1.58197\n0.24146,1.19131\n0.08581,1.13048\n0.07237,1.00412\n0.91540,3.98938\n0.23260,1.28467\n0.03692,1.19145\n0.56387,1.79026\n0.59276,1.71074\n0.26351,1.40654\n0.96330,4.54904\n0.32777,1.55881\n0.60375,1.74319\n0.15990,1.30150\n0.30003,1.53528\n0.33427,1.40378\n0.78853,2.52836\n0.30100,1.39243\n0.69901,2.08176\n0.16533,1.17825\n0.64200,1.90909\n0.68994,1.97364\n0.81885,2.89898\n0.20312,1.33081\n0.88315,3.34430\n0.21629,1.33264\n0.49331,1.77558\n0.24353,1.38501\n0.08213,1.04504\n0.87010,3.12853\n0.77102,2.44842\n0.06245,0.95342\n0.25532,1.44984\n0.99742,5.00306\n0.84543,3.07188\n0.54150,1.53805\n0.62809,1.99074\n0.54886,1.81119\n0.49589,1.55556\n0.48109,1.53749\n0.34495,1.35230\n0.78194,2.54402\n0.22442,1.42976\n0.20546,1.27288\n0.62125,1.79134\n0.27441,1.36788\n0.24286,1.40423\n0.89474,3.51053\n0.69678,2.15713\n0.34287,1.32301\n0.89944,3.59009\n0.23436,1.37908\n0.39947,1.61898\n0.42777,1.61849\n0.11344,1.26371\n0.23197,1.41770\n0.05119,1.02320\n0.85211,3.14822\n0.04852,0.97290\n0.23334,1.29492\n0.30929,1.30433\n0.25101,1.40239\n0.51754,1.84459\n0.37340,1.52375\n0.76574,2.45091\n0.18185,1.29565\n0.39483,1.43608\n0.46180,1.65327\n0.86243,3.03499\n0.11881,1.39801\n0.88721,3.29162\n0.36680,1.37595\n0.73206,2.21727\n0.54026,1.61824\n0.92559,3.92815\n0.67023,2.06539\n0.03918,1.07703\n0.10692,1.28692\n0.19153,1.18497\n0.01362,1.09331\n0.71926,2.33804\n0.16604,1.34279\n0.75563,2.31458\n0.26166,1.36484\n0.94452,4.05485\n0.98305,4.84305\n0.40238,1.43062\n0.31145,1.62251\n0.60117,1.85542\n0.32912,1.50790\n0.90113,3.68274\n0.96788,4.65180\n0.28694,1.37908\n0.35140,1.46809\n0.33260,1.46359\n0.32978,1.57498\n0.26090,1.46252\n0.07738,1.02111\n0.35246,1.28223\n0.89390,3.28399\n0.66919,1.98739\n0.07626,1.03642\n0.56636,1.60812\n0.75843,2.31980\n0.20569,1.30145\n0.34022,1.46283\n0.28485,1.30820\n0.10223,1.34641\n0.27634,1.45509\n0.29601,1.29258\n0.50342,1.61864\n0.22607,1.37766\n0.74702,2.41720\n0.52709,1.64055\n0.95693,4.40827\n0.96976,4.60952\n0.00799,0.99131\n0.99418,4.77010\n0.97440,4.55002\n0.83845,2.74626\n0.95738,4.10074\n0.93131,3.92597\n0.33672,1.63896\n0.53177,1.72209\n0.83394,2.84935\n0.15912,1.26269\n0.86705,3.42342\n0.10201,1.10738\n0.64348,1.91593\n0.91535,3.74070\n0.01190,0.95008\n0.86408,3.15466\n0.20849,1.21661\n0.25908,1.57975\n0.81399,2.71047\n0.23119,1.31181\n0.11093,1.19647\n0.93598,4.04110\n0.71284,2.01365\n0.76744,2.33071\n0.98480,4.79965\n0.49017,1.51119\n0.21031,1.29705\n0.82733,2.71490\n0.97174,4.51343\n0.81154,2.67881\n0.70819,2.05520\n0.85252,3.03626\n0.43191,1.70789\n0.26657,1.32641\n0.61433,1.52509\n0.19546,1.37849\n0.61541,1.85895\n0.37366,1.33138\n0.84618,3.15850\n0.84199,3.16953\n0.54649,1.77225\n0.70514,1.91410\n0.34607,1.56690\n0.59589,1.71475\n0.07918,1.07949\n0.50370,1.60824\n0.06861,1.06433\n0.18824,1.10704\n0.31064,1.46625\n0.94452,4.04236\n0.84508,3.09072\n0.30654,1.26792\n0.32985,1.36392\n0.85545,3.19008\n0.51863,1.75122\n0.82836,2.69572\n0.26678,1.28079\n0.50057,1.71076\n0.03271,1.06351\n0.94719,4.31591\n0.44325,1.74057\n0.26411,1.37779\n0.32335,1.49290\n0.80155,2.72678\n0.29731,1.50793\n0.94596,4.26704\n0.58553,1.94801\n0.41329,1.55598\n0.92277,3.78494\n0.32886,1.57852\n0.22677,1.27361\n0.08722,1.21607\n0.09459,1.09646\n0.30332,1.38779\n0.66020,1.97663\n0.10336,1.16236\n0.66467,2.01723\n0.83417,3.05655\n0.64519,1.97622\n0.56233,2.01819\n0.11415,1.06545\n0.76728,2.39318\n0.76614,2.35730\n0.30786,1.27216\n0.11336,1.31004\n0.75945,2.34531\n0.09940,1.06921\n0.70718,2.17014\n0.47014,1.63476\n0.86137,3.09828\n0.85117,3.14421\n0.34029,1.43910\n0.07880,1.12080\n0.93229,4.00483\n0.73595,2.36062\n0.09400,1.16838\n0.04863,1.08147\n0.60377,1.87612\n0.28179,1.47720\n0.71779,2.26717\n0.05221,1.13097\n0.49323,1.73650\n0.85221,2.99789\n0.64261,1.97818\n0.13226,1.11622\n0.15999,1.19587\n0.31934,1.45861\n0.82057,2.81544\n0.88202,3.46157\n0.54498,1.69351\n0.76549,2.52273\n0.14028,1.34008\n0.23624,1.26318\n0.49470,1.61118\n0.78377,2.55579\n0.07520,1.25092\n0.83665,2.64282\n0.80573,2.76803\n0.32879,1.54068\n0.83569,2.85578\n0.48424,1.44802\n0.44594,1.63021\n0.15668,1.35104\n0.24748,1.29821\n0.82141,2.84863\n0.31638,1.54711\n0.55447,1.62617\n0.56513,1.84066\n0.39979,1.52485\n0.00702,1.02713\n0.42683,1.52197\n0.60838,1.87444\n0.22811,1.20460\n0.46894,1.58080\n0.70999,2.31139\n0.39658,1.55824\n0.91784,3.66035\n0.44211,1.57091\n0.22797,1.35505\n0.17267,1.27209\n0.98449,4.48418\n0.16916,1.28952\n0.26499,1.42450\n0.70657,2.19682\n0.63161,1.81750\n0.89891,3.60038\n0.26799,1.47243\n0.88282,3.35143\n0.53820,1.51860\n0.48861,1.48042\n0.91179,3.73916\n0.19667,1.19989\n0.66211,1.93815\n0.85773,3.17353\n0.28681,1.27284\n0.57872,1.83134\n0.52520,1.66285\n0.50969,1.71614\n0.38411,1.61959\n0.34833,1.41196\n0.17143,1.28542\n0.53244,1.58474\n0.54790,1.80948\n0.35710,1.58251\n0.63395,1.85152\n0.13268,1.24904\n0.03517,1.21720\n0.21749,1.31093\n0.16653,1.16909\n0.09264,1.09899\n0.28383,1.47511\n0.37089,1.73365\n0.89292,3.37217\n0.59983,1.85753\n0.56557,1.87643\n0.68031,1.99968\n0.35171,1.29011\n0.74579,2.10989\n0.20930,1.28972\n0.70865,2.17617\n0.73438,2.28429\n0.06267,1.06867\n0.51670,1.64266\n0.87050,3.23722\n0.52292,1.83014\n0.26498,1.36905\n0.87085,3.27062\n0.02050,1.02357\n0.03680,1.14782\n0.57808,1.65414\n0.33242,1.41884\n0.59010,1.62812\n0.89501,3.19236\n0.40955,1.50498\n0.13588,1.25425\n0.24310,1.17134\n0.82224,2.88983\n0.42381,1.40323\n0.29428,1.28859\n0.04658,1.02155\n0.17878,1.25543\n0.85488,2.97035\n0.72220,2.16794\n0.38827,1.54055\n0.21757,1.49840\n0.35673,1.47254\n0.98675,4.70368\n0.01705,1.04075\n0.08517,1.16354\n0.52977,1.82682\n0.91191,3.65173\n0.11226,1.24556\n0.87387,3.19272\n0.98110,4.60967\n0.70595,2.19222\n0.89489,3.23183\n0.45796,1.59255\n0.16798,1.20330\n0.86968,3.26922\n0.67456,2.04315\n0.89136,3.37291\n0.19209,1.29460\n0.10311,1.02711\n0.19948,1.24101\n0.88835,3.35816\n0.41237,1.44356\n0.27695,1.32610\n0.03509,1.13698\n0.98604,4.70811\n0.55906,1.76834\n0.23606,1.35508\n0.20420,1.32023\n0.04699,1.20663\n0.81332,2.57790\n0.51081,1.57384\n0.27230,1.50614\n0.79469,2.57194\n0.74712,2.29782\n0.96959,4.58764\n0.52871,1.52788\n0.69459,2.05939\n0.70363,2.00368\n0.30294,1.44745\n0.90347,3.58106\n0.20910,1.18988\n0.03102,1.12689\n0.10572,1.07244\n0.11968,1.25039\n0.87841,3.40520\n0.04271,1.19613\n0.42325,1.47082\n0.82878,2.79543\n0.15976,1.14586\n0.30393,1.53633\n0.34629,1.42059\n0.72807,2.10716\n0.48959,1.56977\n0.00995,0.89038\n0.26740,1.41698\n0.61773,1.83874\n0.29668,1.36049\n0.63792,1.97400\n0.65394,1.96909\n0.28078,1.22215\n0.00590,0.89334\n0.70351,2.13533\n0.26856,1.44585\n0.90141,3.63083\n0.73814,2.28192\n0.60658,1.79805\n0.67928,1.96431\n0.42578,1.65609\n0.37762,1.45106\n0.56002,1.77010\n0.51369,1.66401\n0.73297,2.25771\n0.46343,1.47983\n0.78774,2.48129\n0.84405,2.93664\n0.23159,1.24266\n0.54072,1.73938\n0.43883,1.67016\n0.54475,1.40471\n0.90770,3.41303\n0.99066,4.91321\n0.34618,1.60058\n0.69994,2.08419\n0.48778,1.73826\n0.54684,1.75436\n0.84689,2.94490\n0.15953,1.21464\n0.21997,1.13235\n0.13761,1.19120\n0.13615,1.29794\n0.65714,1.98038\n0.42985,1.56029\n0.91548,3.84601\n0.75256,2.15431\n0.40024,1.52112\n0.24167,1.42443\n0.42361,1.56631\n0.87205,3.32359\n0.63282,1.82320\n0.08921,1.03863\n0.22342,1.16697\n0.46997,1.64395\n0.68708,1.99295\n0.30319,1.43430\n0.26499,1.40677\n0.70617,2.17299\n0.34131,1.49734\n0.33203,1.42974\n0.93596,3.84924\n0.19883,1.32928\n0.92776,3.94141\n0.99448,4.94321\n0.82190,2.76651\n0.98763,4.87124\n0.59827,1.93483\n0.05279,1.16153\n0.75830,2.39621\n0.24318,1.39076\n0.25884,1.19251\n0.05722,1.04841\n0.56843,1.68998\n0.62594,1.94016\n0.29142,1.65423\n0.31103,1.38878\n0.49582,1.57812\n0.53977,1.82858\n0.85030,2.88208\n0.26686,1.24049\n0.73182,2.11135\n0.28192,1.50215\n0.82619,2.96100\n0.99982,5.10700\n0.53520,1.81086\n0.44500,1.55152\n0.48657,1.72587\n0.12646,1.25406\n0.61139,1.93983\n0.66298,1.91093\n0.44059,1.74131\n0.86284,3.29930\n0.80889,2.62890\n0.57231,1.79838\n0.08613,1.14000\n0.54348,1.62381\n0.73063,2.25453\n0.41928,1.54205\n0.48356,1.65322\n0.79619,2.52505\n0.77660,2.32771\n0.74487,2.25064\n0.54094,1.67835\n0.22876,1.34918\n0.77595,2.44409\n0.03747,1.05303\n0.86941,3.19823\n0.62555,1.76663\n0.76859,2.42887\n0.54983,1.84169\n0.67852,1.92350\n0.41493,1.44782\n0.27013,1.38141\n0.49712,1.70951\n0.67083,2.04333\n0.04892,1.11848\n0.35702,1.48732\n0.71833,2.29469\n0.06664,1.12565\n0.09681,1.19375\n0.06878,1.07758\n0.26678,1.28822\n0.55941,1.74326\n0.69454,2.39062\n0.93552,4.08849\n0.34254,1.59685\n0.52419,1.67310\n0.89397,3.35902\n0.15074,1.22422\n0.52686,1.59609\n0.10522,1.25184\n0.54944,1.85659\n0.40254,1.62932\n0.36134,1.51375\n0.88279,3.40312\n0.08890,0.92922\n0.61672,1.98711\n0.98424,4.70092\n0.65295,2.03826\n0.34051,1.55507\n0.14967,1.07172\n0.51048,1.67188\n0.62023,1.69427\n0.24697,1.45489\n0.33966,1.24570\n0.26032,1.23775\n0.00312,0.95750\n0.52027,1.58144\n0.34312,1.49793\n0.61903,1.85227\n0.86217,2.84868\n0.23865,1.42207\n0.90438,3.67049\n0.37287,1.60201\n0.99024,4.82521\n0.57628,1.89957\n0.56040,1.66538\n0.00984,0.89944\n0.90733,3.47960\n0.48918,1.36114\n0.98373,4.71803\n0.18611,1.42939\n0.01319,0.96437\n0.25387,1.40653\n0.10902,1.47160\n0.90261,3.58276\n0.59852,1.94939\n0.66058,1.86918\n0.26318,1.26210\n0.43335,1.65324\n0.05341,1.04712\n0.99850,5.08501\n0.26462,1.26696\n0.27861,1.49369\n0.84507,2.73547\n0.28853,1.27997\n0.66746,2.01662\n0.37025,1.66022\n0.54896,1.73947\n0.23505,1.37750\n0.96992,4.57542\n0.03474,1.15219\n0.59889,1.65034\n0.93878,4.09860\n0.38594,1.37950\n0.59471,1.73117\n0.57997,1.61752\n0.09893,1.18041\n0.09046,0.92392\n0.76584,2.45682\n0.43889,1.50791\n0.50574,1.57949\n0.23362,1.34203\n0.85271,3.01886\n0.26607,1.39747\n0.43414,1.49219\n0.66519,1.98450\n0.59577,2.04682\n0.84406,3.17670\n0.92561,3.82024\n0.10092,1.02996\n0.03046,1.09596\n0.55682,1.74505\n0.80794,2.80994\n0.86833,3.19188\n0.43671,1.60991\n0.87019,3.19300\n0.95093,4.22278\n0.32044,1.28337\n0.68585,2.12964\n0.83324,2.79902\n0.81312,2.77807\n0.43929,1.60109\n0.17951,1.29081\n0.72611,2.20589\n0.94706,4.26397\n0.44447,1.63688\n0.29564,1.34465\n0.09792,1.14575\n0.69532,2.07953\n0.46495,1.52370\n0.16161,1.21082\n0.51360,1.62329\n0.78600,2.53916\n0.98555,4.81254\n0.13754,1.24469\n0.15905,1.21342\n0.66177,2.00611\n0.65723,2.10805\n0.93651,3.73597\n0.67876,1.99321\n0.81516,2.62810\n0.37722,1.37944\n0.40409,1.53928\n0.02900,1.11582\n0.67677,2.07692\n0.14763,1.09034\n0.30909,1.41118\n0.68158,2.01517\n0.55925,1.70059\n0.44862,1.38338\n0.39289,1.60483\n0.54406,1.52735\n0.33482,1.57211\n0.78291,2.37957\n0.61369,1.74058\n0.32932,1.43537\n0.08771,1.29967\n0.24081,1.41163\n0.59915,1.83196\n0.75401,2.26866\n0.33143,1.51689\n0.10850,1.17158\n0.29537,1.30465\n0.10578,1.28086\n0.50448,1.85214\n0.46305,1.51650\n0.29058,1.49277\n0.74596,2.39911\n0.83243,2.87158\n0.92455,3.95385\n0.51161,1.67320\n0.26161,1.29044\n0.52795,1.74881\n0.84412,3.06949\n0.69984,2.24633\n0.47836,1.71556\n0.97867,4.71427\n0.55774,1.63526\n0.07879,0.98185\n0.40082,1.32023\n0.56021,1.67929\n0.84012,2.91729\n0.18515,1.14749\n0.88820,3.28827\n0.60118,1.86147\n0.54298,1.62913\n0.47412,1.54298\n0.68726,2.23165\n0.27338,1.34330\n0.31262,1.28248\n0.05028,1.11098\n0.72016,2.19717\n0.07730,1.17775\n0.88033,3.36017\n0.79945,2.68420\n0.43786,1.43224\n0.85042,2.97912\n0.04993,1.11078\n0.21789,1.35417\n0.90547,3.47421\n0.45976,1.57141\n0.40746,1.47679\n0.95702,4.52128\n0.64553,1.96797\n0.08264,1.16269\n0.14036,1.28994\n0.28405,1.44656\n0.30644,1.66524\n0.28933,1.43581\n0.19785,1.29828\n0.12561,1.16728\n0.53813,1.57947\n0.06937,1.23103\n0.13512,1.20305\n0.67654,1.96411\n0.66809,1.99254\n0.83426,2.97755\n0.67774,1.92021\n0.16798,1.34678\n0.84481,3.06768\n0.87202,3.33256\n0.91541,3.80924\n0.34584,1.43705\n0.81275,2.68387\n0.48077,1.49061\n0.22004,1.30628\n0.09285,1.20065\n0.45567,1.61327\n0.87184,3.26605\n0.55617,1.72926\n0.74494,2.09741\n0.32665,1.46194\n0.23612,1.39898\n0.52515,1.66918\n0.01831,0.92156\n0.02521,1.12703\n0.89732,3.71771\n0.01725,1.00598\n0.66350,1.99216\n0.88384,3.37030\n0.20385,1.32129\n0.77625,2.36141\n0.90060,3.59363\n0.14888,1.25674\n0.17271,1.25005\n0.98893,4.67520\n0.28201,1.43129\n0.01742,1.04643\n0.40464,1.48470\n0.52562,1.84302\n0.18077,1.17488\n0.76101,2.43327\n0.61028,1.83089\n0.92287,3.83781\n0.95545,4.26434\n0.95561,4.40061\n0.79741,2.61558\n0.19228,1.39747\n0.43868,1.52873\n0.58780,1.76772\n0.43696,1.55989\n0.83418,2.74874\n0.61748,1.97777\n0.75847,2.53575\n0.45857,1.56945\n0.07760,1.16362\n0.08901,0.94496\n0.19464,1.22447\n0.09741,1.16087\n0.08987,0.98174\n0.85841,3.13138\n0.50917,1.76525\n0.52225,1.62290\n0.51828,1.69322\n0.42263,1.70886\n0.54314,1.63161\n0.05267,1.22702\n0.99764,5.14818\n0.43982,1.68812\n0.96727,4.52994\n0.05037,1.15239\n0.99855,4.96992\n0.95742,4.33872\n0.73564,2.23730\n0.67596,2.01101\n0.13278,1.27580\n0.01914,0.96124\n0.85909,3.25277\n0.02297,1.14607\n0.60313,1.77304\n0.02162,0.94082\n0.91383,3.79396\n0.21741,1.31043\n0.61011,1.86663\n0.50143,1.40210\n0.23730,1.37217\n0.51021,1.71365\n0.02315,1.02491\n0.71039,2.26212\n0.10867,1.03127\n0.84289,3.01920\n0.08339,1.04519\n0.02753,0.96221\n0.68596,2.05414\n0.27531,1.08929\n0.59473,1.72487\n0.07031,1.24498\n0.08101,1.29685\n0.56203,1.68931\n0.97334,4.47079\n0.89402,3.52494\n0.83117,2.83673\n0.81603,2.60503\n0.49280,1.58869\n0.90552,3.66711\n0.07783,0.98411\n0.15165,1.17302\n0.52208,1.71873\n0.00782,1.23818\n0.58289,1.77918\n0.25334,1.17999\n0.93636,4.00685\n0.61882,1.72986\n0.43624,1.64834\n0.83862,2.90366\n0.90524,3.49208\n0.84512,3.01728\n0.16582,1.10874\n0.15246,1.24609\n0.42598,1.50118\n0.98405,4.76945\n0.84737,2.94037\n0.75145,2.60870\n0.88774,3.39608\n0.30417,1.41866\n0.73595,2.39711\n0.53605,1.60258\n0.03286,1.13557\n0.58938,1.68706\n0.15000,1.16055\n0.23211,1.52951\n0.05675,1.07843\n0.99782,5.09352\n0.64296,2.04414\n0.49708,1.65652\n0.08268,1.21604\n0.79970,2.74159\n0.63762,1.82527\n0.89398,3.53499\n0.96603,4.52144\n0.49678,1.70911\n0.54901,1.72240\n0.62516,1.83929\n0.51570,1.60298\n0.77611,2.72008\n0.74242,2.35816\n0.74366,2.18800\n0.68007,1.90772\n0.35690,1.59105\n0.07247,1.01070\n0.44026,1.55451\n0.44059,1.47398\n0.14692,1.21645\n0.94529,4.12515\n0.86267,3.19572\n0.71585,2.19453\n0.93245,3.85854\n0.27217,1.50096\n0.22701,1.31019\n0.52370,1.71328\n0.50418,1.61134\n0.61554,1.80615\n0.53729,1.55888\n0.08778,1.24810\n0.60103,1.91709\n0.10014,1.08378\n0.41829,1.51853\n0.50737,1.65977\n0.70989,2.11594\n0.28981,1.35423\n0.05767,0.97551\n0.02952,0.96402\n0.24985,1.45601\n0.46708,1.79474\n0.38952,1.38866\n0.49771,1.54129\n0.68668,2.03926\n0.37239,1.37708\n0.91903,3.96206\n0.78281,2.79005\n0.37168,1.50308\n0.30512,1.51538\n0.11564,1.37827\n0.76822,2.44214\n0.09008,1.25806\n0.28884,1.33064\n0.48579,1.63778\n0.91924,3.80208\n0.21376,1.20499\n0.80522,2.70011\n0.21367,1.40128\n0.15827,1.11919\n0.97351,4.53677\n0.92414,3.97983\n0.02142,0.87094\n0.58783,1.91830\n0.57795,1.68109\n0.77243,2.51362\n0.71287,2.18787\n0.79149,2.40336\n0.98296,4.72232\n0.02130,0.88865\n0.12514,1.28939\n0.48948,1.53265\n0.88110,3.23581\n0.71810,2.14180\n0.54196,1.73538\n0.32375,1.38464\n0.93825,4.13837\n0.23737,1.31342\n0.58496,1.61665\n0.96194,4.23821\n0.01024,1.11119\n0.73144,2.21782\n0.80886,2.69625\n0.52730,1.46305\n0.89825,3.59832\n0.80640,2.71743\n0.24454,1.24403\n0.51288,1.57030\n0.60270,1.75803\n0.42416,1.57223\n0.88978,3.42438\n0.29713,1.44924\n0.32125,1.31903\n0.98710,4.84274\n0.00530,1.08908\n0.02240,1.04275\n0.13478,1.25521\n0.76288,2.53531\n0.13677,1.31154\n0.90115,3.43185\n0.19271,1.36565\n0.33237,1.42294\n0.51925,1.84772\n0.31236,1.36331\n0.66844,2.07490\n0.65762,2.10132\n0.41017,1.44035\n0.89455,3.44781\n0.20890,1.15991\n0.23797,1.34534\n0.64050,1.99129\n0.51588,1.60457\n0.07278,1.33773\n0.21411,1.41238\n0.65502,1.76143\n0.61330,1.84998\n0.05273,1.08948\n0.28914,1.53367\n0.16777,1.18403\n0.18009,1.17981\n0.67946,2.15887\n0.53945,1.63951\n0.36422,1.46663\n0.92008,3.77920\n0.33281,1.45332\n0.07125,1.05700\n0.63937,1.80970\n0.25581,1.37342\n0.07718,1.03651\n0.81874,2.74175\n0.48383,1.71519\n0.21108,1.42215\n0.86717,3.42546\n0.86976,3.35256\n0.04518,1.04042\n0.47679,1.65519\n0.96527,4.45012\n0.87388,3.22449\n0.80726,2.73094\n0.12055,1.12999\n0.70158,2.09429\n0.91659,3.56572\n0.97727,4.70847\n0.12345,1.28105\n0.32310,1.48079\n0.87707,3.25834\n0.72757,2.12076\n0.01546,1.04988\n0.94861,4.16092\n0.32501,1.65284\n0.23741,1.37012\n0.49599,1.43144\n0.38522,1.54681\n0.74802,2.50142\n0.26533,1.37960\n0.66865,1.89694\n0.96691,4.34255\n0.29216,1.47213\n0.15813,1.14052\n0.56298,1.87731\n0.43551,1.54100\n0.85739,2.94062\n0.90170,3.47835\n0.92381,3.60681\n0.13256,1.24707\n0.37915,1.41771\n0.61504,1.93508\n0.12263,1.16916\n0.47018,1.59198\n0.56113,1.69812\n0.50670,1.65859\n0.54736,1.80309\n0.60929,1.95004\n0.58118,1.62369\n0.15495,1.33034\n0.81084,2.69183\n0.79294,2.71349\n0.18021,1.20891\n0.12548,1.22111\n0.09680,1.03985\n0.79428,2.45638\n0.21896,1.48092\n0.33796,1.57178\n0.56347,1.73456\n0.17596,1.23322\n0.78232,2.61760\n0.79861,2.52693\n0.96670,4.56078\n0.37549,1.49708\n0.27873,1.18159\n0.67153,1.92850\n0.87730,3.23452\n0.69676,2.11497\n0.12961,1.24116\n0.96513,4.32444\n0.56453,1.94317\n0.78681,2.49154\n0.04760,1.06404\n0.48668,1.56361\n0.79580,2.71990\n0.70100,2.00832\n0.95095,4.33176\n0.94874,4.06482\n0.60881,1.82784\n0.83884,2.85507\n0.20534,1.04481\n0.89537,3.48211\n0.82021,2.78493\n0.43721,1.50327\n0.02457,1.05220\n0.18095,1.31227\n0.20566,1.22749\n0.94554,4.36814\n0.96894,4.46113\n0.90080,3.48897\n0.19362,1.09283\n0.60475,1.80193\n0.33042,1.37092\n0.67292,1.93358\n0.39078,1.27465\n0.24536,1.49902\n0.46378,1.79193\n0.19691,1.50613\n0.19259,1.19096\n0.23739,1.48922\n0.98264,4.78215\n0.13755,1.14878\n0.53385,1.69155\n0.30776,1.40070\n0.69768,2.05589\n0.16251,1.24815\n0.44011,1.76704\n0.38035,1.52864\n0.30356,1.26153\n0.83853,3.05170\n0.03015,0.89318\n0.10985,1.29586\n0.56469,1.80620\n0.54174,1.61575\n0.60697,1.86205\n0.94517,4.06760\n0.33116,1.43385\n0.47793,1.60361\n0.03509,1.01453\n0.46773,1.71093\n0.93123,3.75326\n0.87609,3.15954\n0.53760,1.65733\n0.80031,2.58190\n0.16525,1.25325\n0.65880,1.87286\n0.62308,1.83803\n0.46890,1.45680\n0.47492,1.58429\n0.78795,2.44839\n0.06195,1.19039\n0.08447,1.22899\n0.29574,1.44415\n0.89305,3.49944\n0.89151,3.47651\n0.85055,2.96777\n0.16326,1.08443\n0.65123,1.90414\n0.05346,1.12444\n0.01897,0.96557\n0.30650,1.29584\n0.83434,3.11575\n0.64433,1.96307\n0.37762,1.27483\n0.35718,1.47788\n0.06621,1.21201\n0.90183,3.70943\n0.38293,1.39793\n0.69272,2.16317\n0.90953,3.33711\n0.03439,1.20868\n0.60407,1.70719\n0.89949,3.69429\n0.73277,2.11248\n0.18511,1.34513\n0.93721,4.08998\n0.06988,1.17852\n0.70159,2.11213\n0.93269,3.94158\n0.54971,1.65820\n0.82433,2.76517\n0.62532,1.95102\n0.72496,2.14174\n0.36188,1.33332\n0.31869,1.31416\n0.08030,1.11995\n0.71393,2.29690\n0.52804,1.45741\n0.24095,1.38694\n0.30419,1.52060\n0.57649,1.95101\n0.67522,2.00540\n0.29015,1.37596\n0.83916,3.05279\n0.25029,1.28630\n0.62935,1.90717\n0.29158,1.40701\n0.69474,2.04050\n0.41005,1.53795\n0.89188,3.52680\n0.07073,1.07501\n0.05637,1.09381\n0.18207,1.33941\n0.74310,2.46123\n0.64242,1.68318\n0.93156,3.79173\n0.99167,4.90538\n0.96248,4.39970\n0.83340,2.83311\n0.70277,1.97737\n0.97637,4.44196\n0.11663,1.13183\n0.35553,1.46446\n0.52959,1.68089\n0.08004,1.15526\n0.41475,1.54331\n0.72045,1.99887\n0.73656,2.29683\n0.75280,2.16174\n0.21121,1.42490\n0.30529,1.30706\n0.18118,1.37141\n0.42389,1.76706\n0.47172,1.68676\n0.63138,1.90613\n0.05659,1.26465\n0.89587,3.39168\n0.87652,3.23019\n0.20736,1.27423\n0.81102,2.92184\n0.66948,1.92505\n0.53487,1.58537\n0.40925,1.64244\n0.89380,3.58101\n0.22592,1.34949\n0.38480,1.60068\n0.11064,1.14508\n0.59182,1.84797\n0.46389,1.61231\n0.25914,1.34841\n0.71648,2.18747\n0.39955,1.52037\n0.10012,1.07822\n0.77962,2.34567\n0.20377,1.22789\n0.07983,1.11478\n0.63244,1.83686\n0.89918,3.57354\n0.17943,1.31504\n0.88016,3.47432\n0.37767,1.34102\n0.19017,1.30872\n0.57811,1.61385\n0.23333,1.17294\n0.72223,2.17188\n0.87098,3.09994\n0.28580,1.61481\n0.95808,4.21877\n0.51122,1.58496\n0.11499,1.27951\n0.75236,2.34132\n0.44393,1.53380\n0.32025,1.23139\n0.59866,1.74851\n0.62058,1.93379\n0.01507,0.98050\n0.68711,2.05851\n0.51027,1.51959\n0.10863,1.19478\n0.60131,1.83437\n0.78002,2.49488\n0.40488,1.50901\n0.75247,2.50836\n0.92782,3.97515\n0.82840,2.69836\n0.38374,1.37231\n0.20900,1.23518\n0.68924,2.07135\n0.36417,1.31459\n0.32036,1.46567\n0.24063,1.50632\n0.52554,1.75155\n0.09212,1.02018\n0.28479,1.36860\n0.07054,1.07349\n0.86510,3.30308\n0.40918,1.46012\n0.04734,1.19861\n0.85406,3.09758\n0.06005,1.21860\n0.48107,1.68464\n0.25409,1.41560\n0.61292,1.79762\n0.36396,1.42411\n0.17964,1.23205\n0.79805,2.57681\n0.64706,1.76193\n0.14135,1.36203\n0.40428,1.36680\n0.59066,1.68936\n0.92724,3.89187\n0.70460,2.17919\n0.94891,4.02491\n0.58261,1.55786\n0.24635,1.53706\n0.47169,1.66772\n0.35731,1.39505\n0.62840,2.01826\n0.95335,4.35362\n0.31931,1.50032\n0.52641,1.65428\n0.99302,4.84340\n0.00655,1.01255\n0.82554,2.86474\n0.63566,1.87512\n0.72614,2.15872\n0.72047,2.06047\n0.62923,1.83644\n0.74784,2.43955\n0.18620,1.35900\n0.84183,2.96059\n0.49691,1.74110\n0.93302,4.10520\n0.35863,1.57615\n0.37363,1.41590\n0.82702,2.79558\n0.50245,1.57097\n0.30303,1.62169\n0.75854,2.31627\n0.92077,3.76259\n0.47377,1.41172\n0.12292,1.12085\n0.43527,1.49339\n0.18319,1.26462\n0.29969,1.47237\n0.78114,2.42361\n0.36073,1.50675\n0.65334,1.79236\n0.19655,1.21782\n0.09339,0.93362\n0.13907,1.39899\n0.86659,3.19203\n0.46708,1.59776\n0.80212,2.72613\n0.38158,1.33508\n0.77120,2.50862\n0.79555,2.61326\n0.37802,1.61571\n0.36002,1.72320\n0.17196,1.21114\n0.05315,1.25195\n0.40688,1.52453\n0.89192,3.27547\n0.56837,1.64086\n0.56915,1.49644\n0.40003,1.47553\n0.55570,1.73520\n0.95592,4.41035\n0.86512,3.31256\n0.42242,1.44130\n0.43892,1.55241\n0.02157,0.89350\n0.84215,2.91528\n0.55303,1.68150\n0.59685,1.67131\n0.96436,4.41813\n0.88492,3.41968\n0.40359,1.52090\n0.64376,2.03328\n0.80425,2.61373\n0.60479,1.84531\n0.02395,1.06854\n0.98294,4.57234\n0.05329,1.12779\n0.14714,1.32112\n0.09644,1.13279\n0.14163,1.14046\n0.07023,1.24723\n0.94151,4.08906\n0.96853,4.50839\n0.00001,0.70756\n0.68504,2.21568\n0.55443,1.88521\n0.49291,1.54772\n0.16724,1.40729\n0.72872,2.38635\n0.95093,4.16681\n0.14168,1.24526\n0.19467,1.26044\n0.83580,2.89998\n0.23964,1.41523\n0.08879,1.31163\n0.63301,2.12742\n0.96177,4.38886\n0.64702,1.92095\n0.90753,3.79780\n0.21469,1.44831\n0.38650,1.43514\n0.03081,0.91275\n0.20833,1.27268\n0.26418,1.43633\n0.75481,2.38594\n0.33875,1.47589\n0.91281,3.49968\n0.34048,1.51637\n0.60404,1.67820\n0.23571,1.33356\n0.55308,1.76000\n0.72223,2.30457\n0.82057,2.75778\n0.15679,1.34744\n0.44500,1.44813\n0.66259,2.06195\n0.71184,2.06030\n0.25535,1.38878\n0.76810,2.49954\n0.46818,1.46577\n0.60995,1.84810\n0.02364,0.98605\n0.11013,1.17753\n0.69565,2.10050\n0.92812,3.93286\n0.69158,2.20206\n0.73564,2.23876\n0.62939,1.81967\n0.56396,1.76084\n0.35123,1.41516\n0.77070,2.43697\n0.94052,3.86761\n0.43552,1.56300\n0.92980,4.10228\n0.08616,1.13344\n0.34940,1.39180\n0.20889,1.36393\n0.58459,1.65123\n0.52028,1.66873\n0.31038,1.42630\n0.33698,1.42447\n0.18057,1.36731\n0.29893,1.40939\n0.33965,1.32244\n0.65350,1.85156\n0.77740,2.53902\n0.12734,1.22270\n0.33016,1.53514\n0.06339,1.15270\n0.79687,2.54857\n0.35633,1.30411\n0.23354,1.01790\n0.95241,4.23563\n0.80618,2.80016\n0.16233,1.25268\n0.04707,1.00813\n0.33742,1.43352\n0.00723,1.22283\n0.33504,1.45514\n0.46371,1.67438\n0.72494,2.19018\n0.66473,1.86704\n0.47219,1.63836\n0.30602,1.42225\n0.83364,2.89701\n0.83985,2.95469\n0.39785,1.59179\n0.82778,2.88064\n0.40642,1.40798\n0.99910,4.87429\n0.65673,1.97802\n0.79911,2.58717\n0.30358,1.55095\n0.85567,3.17288\n0.72732,2.19602\n0.35747,1.46096\n0.99262,4.80392\n0.80968,2.78472\n0.09104,1.06693\n0.24997,1.28725\n0.27759,1.53034\n0.39348,1.21871\n0.77382,2.38865\n0.94902,4.17903\n0.30194,1.53449\n0.81530,2.66452\n0.14581,1.32527\n0.82611,2.97391\n0.80703,2.71593\n0.42583,1.42408\n0.99297,5.01651\n0.13090,1.27331\n0.96739,4.42413\n0.40655,1.48134\n0.68503,2.22083\n0.70756,2.02258\n0.85470,2.93839\n0.39452,1.59407\n0.92641,3.99733\n0.35928,1.39108\n0.93244,4.02871\n0.80270,2.60860\n0.37229,1.62147\n0.78885,2.57196\n0.18684,1.19238\n0.75266,2.26593\n0.02417,0.82645\n0.38746,1.40222\n0.83092,2.66993\n0.67697,2.05799\n0.64093,1.83842\n0.70892,2.14972\n0.98081,4.53802\n0.31958,1.36998\n0.95975,4.48088\n0.20698,1.36588\n0.28049,1.41185\n0.60403,1.90229\n0.51714,1.64368\n0.80814,2.79168\n0.49090,1.65221\n0.98451,4.61278\n0.41215,1.29953\n0.00649,1.01558\n0.00328,1.03382\n0.04408,1.15194\n0.45721,1.33182\n0.29319,1.47428\n0.98835,4.74364\n0.56573,1.65155\n0.85447,3.14206\n0.53400,1.77475\n0.97244,4.64316\n0.38871,1.53302\n0.75953,2.39650\n0.22916,1.28084\n0.44054,1.68505\n0.95511,4.32081\n0.28146,1.42604\n0.68542,2.12947\n0.03973,1.01547\n0.23783,1.41754\n0.19459,1.29246\n0.62997,1.94488\n0.74873,2.23681\n0.20128,1.27162\n0.12002,1.11351\n0.77031,2.48858\n0.28298,1.43435\n0.82858,2.81915\n0.07197,1.06975\n0.58667,1.69155\n0.81367,2.91793\n0.65353,1.69215\n0.40548,1.42942\n0.55870,1.67880\n0.50233,1.46816\n0.81357,3.01217\n0.96365,4.52717\n0.40063,1.44191\n0.86409,3.22541\n0.48825,1.70347\n0.23839,1.41392\n0.59116,1.84079\n0.63094,1.64222\n0.05466,1.11398\n0.30301,1.25602\n0.70455,2.23834\n0.73493,2.27524\n0.59119,1.64200\n0.78150,2.54119\n0.84001,2.96008\n0.06900,1.08427\n0.02464,1.01668\n0.11018,1.07779\n0.71921,2.33530\n0.29659,1.42995\n0.67770,1.88384\n0.94513,4.26309\n0.07941,1.17084\n0.47629,1.54214\n0.60187,1.69179\n0.88729,3.31605\n0.90793,3.73479\n0.05034,1.02368\n0.33913,1.37594\n0.95031,4.02213\n0.58404,1.65826\n0.82737,2.83693\n0.32201,1.50834\n0.68808,2.08628\n0.80880,2.76375\n0.14512,1.20768\n0.93488,4.10202\n0.59789,1.88102\n0.56135,1.74735\n0.58740,1.78605\n0.27981,1.32241\n0.13433,1.19596\n0.15416,1.23897\n0.43039,1.50094\n0.50888,1.62509\n0.76024,2.37576\n0.62220,1.86129\n0.84217,2.98041\n0.21133,1.43159\n0.46238,1.50319\n0.28601,1.36210\n0.87192,3.14460\n0.68121,2.05894\n0.91364,3.63724\n0.01071,0.99616\n0.01198,1.05730\n0.60611,1.87360\n0.72441,2.30717\n0.32955,1.43249\n0.81696,2.83575\n0.69788,2.07062\n0.67122,1.99089\n0.29941,1.56112\n0.46749,1.54308\n0.62156,1.96238\n0.98585,4.62587\n0.68058,1.90832\n0.25444,1.31220\n0.20711,1.28663\n0.10473,1.20055\n0.21500,1.14917\n0.57991,1.64043\n0.85477,3.10739\n0.24149,1.31573\n0.97296,4.43134\n0.32266,1.46985\n0.04629,1.05543\n0.58636,1.98777\n0.29994,1.23100\n0.75823,2.33519\n0.17044,1.32721\n0.48392,1.64410\n0.10994,1.13607\n0.31082,1.34401\n0.19281,1.35306\n0.86227,3.02873\n0.54049,1.85819\n0.70370,2.14822\n0.05546,1.29638\n0.54707,1.69868\n0.47422,1.49514\n0.94244,4.08878\n0.27779,1.37695\n0.02799,1.22351\n0.77940,2.40749\n0.07303,0.94941\n0.35100,1.69056\n0.81942,2.85491\n0.05988,0.96335\n0.95337,4.34622\n0.66510,2.08669\n0.95939,4.30877\n0.85958,2.98093\n0.26716,1.33044\n0.74277,2.44512\n0.55657,1.69746\n0.57961,1.79365\n0.78249,2.54747\n0.02808,1.12674\n0.23689,1.36420\n0.08313,1.13589\n0.60847,1.71439\n0.03897,1.12735\n0.00685,0.92264\n0.74654,2.09777\n0.71721,2.19479\n0.37388,1.42188\n0.39957,1.49105\n0.25932,1.46050\n0.65881,2.00730\n0.17800,1.16787\n0.10499,1.29590\n0.38089,1.53626\n0.75541,2.36622\n0.57297,1.82794\n0.19580,1.32823\n0.60534,1.99155\n0.86760,3.04661\n0.90493,3.68048\n0.93477,4.03510\n0.41830,1.45501\n0.52206,1.64144\n0.94658,4.03218\n0.31934,1.52111\n0.50830,1.58590\n0.97254,4.66211\n0.58912,1.75410\n0.95706,4.17115\n0.30355,1.39492\n0.73886,2.03477\n0.28491,1.30313\n0.86869,3.16859\n0.95730,4.35104\n0.23669,1.31203\n0.22331,1.30610\n0.47107,1.73769\n0.94288,4.08570\n0.77260,2.34956\n0.24911,1.29134\n0.13801,1.21616\n0.34307,1.41749\n0.37655,1.51418\n0.93558,3.96541\n0.05037,1.14197\n0.33683,1.38666\n0.94364,3.97930\n0.67659,1.97970\n0.43054,1.62155\n0.17460,1.19306\n0.92613,3.76757\n0.96906,4.63062\n0.82515,2.82370\n0.19858,1.18363\n0.39995,1.51176\n0.27140,1.42047\n0.87657,3.26742\n0.40664,1.37271\n0.57218,1.64177\n0.34537,1.67002\n0.36327,1.53191\n0.43752,1.57643\n0.96315,4.40940\n0.83705,2.99467\n0.08876,1.33469\n0.00671,0.75576\n0.30122,1.37933\n0.15624,1.26631\n0.80700,2.51330\n0.41951,1.49494\n0.16473,1.45227\n0.30298,1.57465\n0.44506,1.48258\n0.12119,1.27617\n0.20613,1.44548\n0.00562,0.90059\n0.40722,1.46674\n0.42423,1.65170\n0.01502,0.98836\n0.06041,0.98053\n0.03450,0.89933\n0.42369,1.60004\n0.79413,2.52305\n0.22928,1.43784\n0.02826,1.09632\n0.18764,1.53348\n0.40631,1.27594\n0.15665,1.37423\n0.66571,2.01777\n0.68416,1.93825\n0.51495,1.53411\n0.73577,2.22306\n0.43691,1.39710\n0.77009,2.34472\n0.06096,1.09504\n0.93697,3.91942\n0.72941,2.13310\n0.07545,1.14585\n0.25888,1.32736\n0.51799,1.72557\n0.51500,1.47243\n0.18075,1.23039\n0.08066,1.17939\n0.07502,0.97933\n0.26860,1.56183\n0.45626,1.57367\n0.62456,1.98858\n0.58759,1.74137\n0.81360,2.77063\n0.67684,1.95060\n0.75674,2.36449\n0.57594,1.82024\n0.80167,2.66178\n0.39474,1.47194\n0.12111,0.98834\n0.64634,1.88389\n0.98189,4.76315\n0.39193,1.46697\n0.36954,1.22263\n0.18556,1.21905\n0.26874,1.37804\n0.75409,2.38052\n0.66854,2.11061\n0.45160,1.33011\n0.53594,1.68995\n0.09034,1.05109\n0.73221,2.36961\n0.08751,1.15593\n0.76617,2.43314\n0.87123,3.26750\n0.17629,1.29084\n0.22163,1.29787\n0.28551,1.33671\n0.86937,3.31609\n0.56213,1.60641\n0.36691,1.60161\n0.87610,3.21680\n0.24442,1.37808\n0.77900,2.42060\n0.06283,1.21928\n0.32500,1.23751\n0.07772,1.09290\n0.47681,1.54953\n0.22743,1.32904\n0.43714,1.58227\n0.14998,1.18479\n0.04155,1.04191\n0.99242,4.79859\n0.89339,3.40478\n0.95847,4.23962\n0.61430,1.79763\n0.91450,3.63882\n0.34502,1.36389\n0.84738,2.98493\n0.24129,1.31054\n0.27999,1.40948\n0.22781,1.46091\n0.87863,3.20518\n0.80486,2.81286\n0.44239,1.48858\n0.46641,1.44329\n0.35378,1.48068\n0.11021,1.15388\n0.36204,1.31984\n0.95964,4.27659\n0.40843,1.55048\n0.98598,4.69132\n0.42915,1.41792\n0.32453,1.42893\n0.14481,1.17836\n0.21150,1.26718\n0.68471,2.10137\n0.56087,1.74989\n0.49206,1.77277\n0.16744,1.31177\n0.06630,1.05213\n0.33257,1.51633\n0.20608,1.60505\n0.74957,2.46833\n0.78167,2.53152\n0.38454,1.35801\n0.97366,4.51084\n0.19248,1.25104\n0.08167,1.25916\n0.49402,1.59639\n0.27610,1.44650\n0.75715,2.38688\n0.42854,1.54186\n0.85965,3.17133\n0.80268,2.84147\n0.30382,1.40712\n0.14895,1.32049\n0.19411,1.19463\n0.58056,1.81746\n0.91873,3.86169\n0.05980,0.98791\n0.39842,1.47444\n0.06357,1.15634\n0.93742,4.04358\n0.86185,3.10759\n0.48907,1.91993\n0.18569,1.22437\n0.31258,1.41888\n0.91500,3.66517\n0.45664,1.61844\n0.21439,1.40610\n0.80121,2.71616\n0.39150,1.30867\n0.11515,1.17174\n0.10182,1.18588\n0.47543,1.65245\n0.16231,1.28349\n0.60896,1.58465\n0.50310,1.63331\n0.78901,2.56449\n0.86890,3.24652\n0.67489,1.90486\n0.67342,2.20661\n0.65850,1.99622\n0.06364,1.16900\n0.89619,3.58289\n0.33813,1.49900\n0.78821,2.40934\n0.07653,1.19743\n0.50796,1.58353\n0.14285,1.16319\n0.94950,4.20540\n0.08276,1.19483\n0.45037,1.77059\n0.70028,2.21876\n0.39361,1.43913\n0.22281,1.40660\n0.40814,1.64544\n0.11600,1.01104\n0.42978,1.45830\n0.54967,1.73568\n0.67026,2.04442\n0.96047,4.47995\n0.15471,1.23433\n0.00975,1.05225\n0.60356,1.78883\n0.24799,1.37823\n0.06128,0.86209\n0.33132,1.51851\n0.49978,1.54437\n0.76135,2.27688\n0.48985,1.56207\n0.32750,1.58569\n0.67102,2.14695\n0.17659,1.33087\n0.72488,2.19865\n0.72021,2.15845\n0.13881,1.17427\n0.80623,2.73858\n0.01618,0.92620\n0.15313,1.05358\n0.08155,1.32541\n0.52430,1.78552\n0.98157,4.68728\n0.68464,2.10450\n0.51958,1.65968\n0.96818,4.40898\n0.61782,1.83713\n0.17540,1.27840\n0.52807,1.70324\n0.97824,4.72230\n0.21912,1.36676\n0.92124,3.99186\n0.85987,3.08662\n0.18063,1.44421\n0.28515,1.37980\n0.21855,1.49503\n0.43650,1.42304\n0.44753,1.48239\n0.20396,1.33413\n0.38197,1.66706\n0.74406,2.28726\n0.90206,3.60689\n0.77577,2.45906\n0.53216,1.79681\n0.01418,1.10774\n0.73306,2.29048\n0.00753,0.98534\n0.05105,0.88111\n0.82728,2.80737\n0.75474,2.27049\n0.06477,1.19355\n0.67150,2.09276\n0.14810,1.28053\n0.09207,1.07150\n0.60492,2.06490\n0.87951,3.43292\n0.20185,1.31983\n0.75606,2.55539\n0.62994,1.85946\n0.37000,1.29269\n0.40473,1.52505\n0.06492,1.15202\n0.16179,1.29324\n0.44983,1.64179\n0.22456,1.40924\n0.45872,1.42512\n0.80209,2.40095\n0.80438,2.74454\n0.14200,1.30796\n0.01115,1.13582\n0.93539,3.95911\n0.22454,1.14453\n0.26629,1.42344\n0.16951,1.33635\n0.16774,1.31495\n0.03639,1.12389\n0.32870,1.32920\n0.93110,3.89888\n0.89328,3.30770\n0.72858,2.28246\n0.78547,2.73881\n0.44768,1.46368\n0.71379,2.17445\n0.21498,1.33685\n0.56479,1.81232\n0.03662,1.04364\n0.91760,3.85304\n0.46284,1.67460\n0.90026,3.75748\n0.09449,0.99893\n0.68800,2.01722\n0.32798,1.51065\n0.52926,1.60725\n0.76259,2.38215\n0.28632,1.42376\n0.60857,1.94208\n0.01811,1.09642\n0.20545,1.23743\n0.70157,2.02709\n0.49998,1.71919\n0.97026,4.62420\n0.36088,1.72796\n0.18168,1.45595\n0.17814,1.20557\n0.86103,3.21907\n0.19997,1.23749\n0.79229,2.73571\n0.31813,1.35175\n0.19275,1.26949\n0.53887,1.64830\n0.78108,2.68543\n0.33999,1.49746\n0.81928,2.79642\n0.46620,1.50971\n0.56715,1.68364\n0.19589,1.25240\n0.28843,1.34333\n0.95736,4.26124\n0.93394,3.92206\n0.56582,1.78223\n0.70496,2.25422\n0.00828,1.05334\n0.60098,1.75593\n0.06403,1.14324\n0.83692,2.92465\n0.03477,1.11489\n0.90482,3.63420\n0.38615,1.34205\n0.58341,1.79584\n0.20005,1.30330\n0.32379,1.43856\n0.84802,3.07631\n0.42055,1.56922\n0.25748,1.60776\n0.04899,1.03207\n0.74120,2.20741\n0.99064,4.79003\n0.98825,4.99557\n0.96550,4.49095\n0.22763,1.18060\n0.22325,1.32514\n0.94317,3.92991\n0.48941,1.73012\n0.74278,2.38011\n0.34952,1.73536\n0.77229,2.40055\n0.98056,4.61423\n0.02574,0.92826\n0.73492,2.13649\n0.93386,3.95335\n0.03481,1.10934\n0.23464,1.04955\n0.34717,1.25775\n0.31934,1.46713\n0.85589,2.96764\n0.23814,1.45419\n0.14357,1.05956\n0.42194,1.51744\n0.01857,1.10361\n0.61417,1.86738\n0.26474,1.31738\n0.33797,1.46743\n0.29413,1.31097\n0.27086,1.51964\n0.67541,2.11876\n0.79347,2.72487\n0.87261,3.18037\n0.91956,3.78359\n0.58834,1.79807\n0.06586,0.96547\n0.83226,2.65065\n0.40596,1.48605\n0.23746,1.43214\n0.12397,1.18697\n0.21824,1.20389\n0.73674,2.27970\n0.54244,1.81695\n0.83953,2.96804\n0.05807,1.16595\n0.61192,1.95816\n0.31760,1.42612\n0.63504,1.92800\n0.50173,1.64880\n0.15605,1.39597\n0.76565,2.39322\n0.88002,3.41959\n0.62060,1.70284\n0.44358,1.41581\n0.64018,1.89094\n0.81899,2.79976\n0.69997,2.16900\n0.13571,1.13922\n0.83764,2.88734\n0.73399,2.20261\n0.47805,1.58013\n0.17355,1.21434\n0.09811,1.10199\n0.34485,1.41109\n0.24485,1.34724\n0.21408,1.47889\n0.39577,1.44157\n0.10779,1.21790\n0.88815,3.41213\n0.52345,1.72807\n0.59563,1.78294\n0.50029,1.60485\n0.41039,1.59020\n0.74228,2.25176\n0.85132,2.94308\n0.07941,1.22963\n0.94123,3.98969\n0.59607,1.84246\n0.88429,3.35211\n0.16912,1.45804\n0.53364,1.72441\n0.56057,1.57965\n0.76802,2.25775\n0.84832,2.90592\n0.47263,1.55776\n0.16293,1.10369\n0.24277,1.23936\n0.49320,1.68919\n0.80952,2.78092\n0.79994,2.51873\n0.44849,1.47759\n0.34717,1.65379\n0.76983,2.43617\n0.50359,1.75758\n0.27207,1.29818\n0.79568,2.56108\n0.34727,1.52035\n0.54796,1.86618\n0.35198,1.52483\n0.10057,1.15554\n0.74092,2.29986\n0.20812,1.30137\n0.57374,1.63642\n0.04593,1.12337\n0.73674,2.19825\n0.86023,3.10038\n0.20087,1.40207\n0.83982,2.99127\n0.41033,1.42755\n0.09528,1.19569\n0.23746,1.44750\n0.79646,2.76201\n0.66332,1.88736\n0.75963,2.29706\n0.01938,1.01793\n0.20067,1.30338\n0.09516,1.01931\n0.04845,1.20438\n0.99106,4.63240\n0.76108,2.27156\n0.50611,1.70619\n0.87133,3.33439\n0.15772,1.35612\n0.89689,3.45885\n0.70674,2.02904\n0.08619,1.05590\n0.23539,1.35261\n0.34063,1.40644\n0.61601,1.86745\n0.42106,1.32014\n0.10670,1.27150\n0.03143,1.06946\n0.32698,1.44523\n0.61082,1.78815\n0.49176,1.72832\n0.84042,3.02165\n0.00575,0.74574\n0.74952,2.37941\n0.43332,1.68851\n0.37671,1.38780\n0.75418,2.52152\n0.43558,1.57615\n0.72509,2.23402\n0.33561,1.35291\n0.79381,2.61269\n0.15481,1.14625\n0.61715,1.98632\n0.26827,1.40843\n0.17699,1.14770\n0.29022,1.35251\n0.91765,3.70828\n0.37264,1.53083\n0.89725,3.49190\n0.67326,1.98662\n0.64338,1.90392\n0.65693,1.73533\n0.74474,2.15662\n0.25717,1.24786\n0.23895,1.55010\n0.80667,2.73978\n0.69733,2.28972\n0.47153,1.61202\n0.29741,1.19566\n0.76772,2.54324\n0.83974,2.93629\n0.52067,1.53012\n0.38563,1.51551\n0.62621,2.00768\n0.14945,1.27133\n0.19808,1.32648\n0.71398,2.36395\n0.78620,2.46296\n0.09181,1.02457\n0.49243,1.63815\n0.91429,3.75119\n0.41822,1.44659\n0.79181,2.60486\n0.25180,1.43098\n0.01712,1.12390\n0.20668,1.23611\n0.97545,4.63574\n0.17870,1.25025\n0.49086,1.61142\n0.25524,1.41734\n0.73318,2.27409\n0.30659,1.54629\n0.44940,1.30345\n0.29300,1.50882\n0.67433,1.87903\n0.15721,1.24160\n0.89735,3.53160\n0.24777,1.24213\n0.25970,1.57489\n0.47032,1.72307\n0.76729,2.40071\n0.88495,3.44361\n0.66517,2.02337\n0.55695,1.63125\n0.00234,0.90383\n0.72862,2.31528\n0.45955,1.53943\n0.85420,3.14874\n0.53819,1.70046\n0.59504,1.60478\n0.46574,1.79911\n0.86242,3.25626\n0.32901,1.37616\n0.27040,1.39537\n0.22729,1.34503\n0.66052,2.01902\n0.70277,2.06260\n0.40072,1.48907\n0.28722,1.38433\n0.21671,1.16556\n0.20309,1.26804\n0.56436,1.68833\n0.95198,4.22022\n0.51392,1.71460\n0.63119,1.62407\n0.48912,1.74310\n0.59048,1.92077\n0.49762,1.72218\n0.69838,1.99278\n0.93273,3.95455\n0.96453,4.43864\n0.20736,1.41307\n0.79340,2.64972\n0.68029,2.03683\n0.05875,1.09017\n0.90604,3.50871\n0.47811,1.73076\n0.34452,1.49032\n0.24822,1.41611\n0.58794,1.89338\n0.30495,1.48055\n0.84445,3.02260\n0.42593,1.40761\n0.68675,1.87824\n0.12794,1.31976\n0.64681,2.05186\n0.57994,1.80073\n0.25829,1.47225\n0.83114,2.82452\n0.11632,1.17186\n0.70392,2.20527\n0.86043,2.98641\n0.82281,2.71377\n0.77256,2.64365\n0.98291,4.70078\n0.60401,1.86140\n0.32585,1.35175\n0.53961,1.79899\n0.47960,1.66963\n0.55221,1.53630\n0.07518,1.09435\n0.28247,1.37073\n0.06876,1.15449\n0.32680,1.52436\n0.73869,2.27386\n0.23008,1.35008\n0.50076,1.76352\n0.73405,2.27922\n0.17729,1.41049\n0.37297,1.29376\n0.70945,2.25289\n0.92663,3.84404\n0.71980,2.22101\n0.27356,1.19822\n0.63484,2.11744\n0.56039,1.74239\n0.24175,1.26595\n0.68924,2.16574\n0.21805,1.25495\n0.74381,2.29607\n0.45551,1.69006\n0.64195,1.81436\n0.94660,4.06415\n0.09195,0.93472\n0.21408,1.30432\n0.09925,1.15480\n0.46717,1.55286\n0.27855,1.48181\n0.52932,1.72063\n0.50062,1.55997\n0.67465,1.90933\n0.73472,2.40531\n0.14382,1.31190\n0.29036,1.41157\n0.26993,1.55664\n0.93033,3.93520\n0.83456,3.14392\n0.95908,4.50705\n0.46718,1.66492\n0.03773,0.90529\n0.47089,1.58885\n0.60906,1.70572\n0.39704,1.51368\n0.13502,1.27469\n0.39056,1.45193\n0.95209,4.39219\n0.91198,3.65251\n0.16023,1.18980\n0.54263,1.56498\n0.55121,1.77678\n0.57395,1.78068\n0.45070,1.59302\n0.67928,1.93818\n0.90423,3.72816\n0.90257,3.42421\n0.21021,1.34388\n0.45523,1.38972\n0.76595,2.43361\n0.57158,1.76062\n0.00531,0.93993\n0.77063,2.46901\n0.52802,1.76912\n0.93116,3.91658\n0.71942,2.17510\n0.36405,1.36666\n0.07403,1.01362\n0.95717,4.33409\n0.91862,3.81708\n0.28762,1.43141\n0.89032,3.37312\n0.92526,3.90338\n0.29937,1.52714\n0.69360,2.26867\n0.01160,0.97660\n0.41083,1.71290\n0.91500,3.64733\n0.64025,1.87762\n0.40318,1.50699\n0.99341,4.77734\n0.39697,1.57471\n0.61715,2.03810\n0.87609,3.30842\n0.91639,3.62665\n0.11094,1.09020\n0.76083,2.33030\n0.43003,1.39766\n0.64645,2.03032\n0.73902,2.22237\n0.93090,3.78725\n0.50786,1.59646\n0.01937,1.09698\n0.62844,1.75591\n0.73551,2.24799\n0.38103,1.51492\n0.26536,1.31464\n0.76733,2.48638\n0.11306,0.96233\n0.45809,1.50710\n0.94695,4.21509\n0.10129,1.20245\n0.04144,1.15246\n0.78340,2.58235\n0.20471,1.21241\n0.67465,2.10737\n0.02133,1.04866\n0.50027,1.57976\n0.62940,1.95803\n0.65229,1.87585\n0.82927,2.75592\n0.43262,1.53510\n0.57965,1.79922\n0.83676,2.81715\n0.08466,1.08340\n0.41015,1.61431\n0.70053,2.12403\n0.28921,1.36426\n0.76331,2.55406\n0.82348,2.91787\n0.15015,1.18281\n0.11568,1.26680\n0.16992,1.39709\n0.66917,1.91157\n0.41709,1.50871\n0.45850,1.47260\n0.97271,4.69369\n0.13953,1.30112\n0.56187,1.64014\n0.65008,1.86298\n0.38981,1.32265\n0.94827,4.19121\n0.15991,1.34920\n0.38131,1.55213\n0.20092,1.43370\n0.86946,3.30057\n0.10582,1.19694\n0.93599,4.17100\n0.99688,5.09808\n0.07185,1.24661\n0.76323,2.28675\n0.05362,1.07609\n0.34841,1.49949\n0.29066,1.47142\n0.30705,1.46316\n0.47318,1.66988\n0.60705,1.86275\n0.34526,1.52170\n0.94419,4.06027\n0.78795,2.55929\n0.70484,2.07396\n0.33062,1.52119\n0.57929,1.95584\n0.92234,3.63131\n0.29851,1.50923\n0.85519,3.22101\n0.97689,4.52248\n0.75257,2.30876\n0.78576,2.41067\n0.95820,4.29640\n0.83739,3.14750\n0.14250,1.15305\n0.40863,1.60973\n0.68883,2.13135\n0.03697,0.99240\n0.34304,1.59658\n0.43183,1.58272\n0.90715,3.57347\n0.45674,1.68195\n0.26522,1.39303\n0.37145,1.42922\n0.70497,2.03742\n0.08646,1.22070\n0.07526,1.28357\n0.39760,1.32861\n0.40120,1.60638\n0.67101,1.97337\n0.22782,1.16246\n0.63347,1.79135\n0.85324,3.17919\n0.01952,1.00693\n0.49840,1.66452\n0.76189,2.54973\n0.21288,1.34865\n0.14860,1.16939\n0.08598,1.12530\n0.92701,3.96968\n0.34484,1.47604\n0.97996,4.62739\n0.95265,4.17083\n0.19233,1.40129\n0.22761,1.23290\n0.76535,2.44117\n0.69692,2.01931\n0.38255,1.53163\n0.23196,1.26396\n0.40763,1.29771\n0.72169,2.29465\n0.02532,1.22268\n0.45481,1.62506\n0.73852,2.33478\n0.87562,3.38536\n0.74349,2.65892\n0.83229,2.85574\n0.88699,3.34320\n0.34254,1.37661\n0.88867,3.50579\n0.26500,1.33818\n0.78898,2.44818\n0.02386,1.12203\n0.52292,1.74029\n0.83791,2.84278\n0.78351,2.73378\n0.19739,1.29068\n0.03331,1.02676\n0.66043,1.94943\n0.40813,1.66040\n0.27668,1.42222\n0.23421,1.25349\n0.90631,3.57731\n0.89514,3.57217\n0.91905,3.76055\n0.14934,1.42165\n0.79909,2.63895\n0.33410,1.38961\n0.28822,1.28961\n0.10579,1.12861\n0.11698,1.20668\n0.34058,1.62418\n0.08746,1.08945\n0.11279,1.43605\n0.20230,1.04986\n0.82181,2.71460\n0.49686,1.70465\n0.92449,3.90356\n0.43859,1.48993\n0.98495,4.73629\n0.09281,1.06939\n0.10078,1.31128\n0.10400,1.07223\n0.54458,1.55367\n0.83729,2.88622\n0.96388,4.27449\n0.43914,1.46778\n0.85180,3.24935\n0.63049,2.06415\n0.04813,1.17040\n0.62733,1.81921\n0.94906,3.99384\n0.47714,1.55284\n0.09222,1.12142\n0.58287,1.81261\n0.94090,3.84265\n0.37138,1.51919\n0.64802,1.92107\n0.95022,4.06839\n0.49012,1.67414\n0.24342,1.15148\n0.04968,0.85578\n0.89352,3.52121\n0.95876,4.32693\n0.54852,1.68512\n0.99606,4.83630\n0.28928,1.40023\n0.25033,1.36304\n0.65055,1.92901\n0.35227,1.29737\n0.56319,1.62943\n0.69019,1.92978\n0.16461,1.30554\n0.08620,0.96275\n0.01437,0.98206\n0.44420,1.59833\n0.74878,2.35060\n0.78685,2.65227\n0.10364,1.28527\n0.05660,1.08261\n0.30152,1.22648\n0.25214,1.53437\n0.39868,1.53664\n0.45097,1.64719\n0.54770,1.50048\n0.44543,1.49313\n0.62617,1.82241\n0.57982,1.56381\n0.83286,2.79684\n0.37376,1.35976\n0.61426,1.84734\n0.33178,1.57735\n0.53119,1.65362\n0.99607,4.83000\n0.33698,1.46428\n0.05932,1.15857\n0.23211,1.43223\n0.58193,1.90562\n0.81111,2.91319\n0.34438,1.30803\n0.28144,1.40834\n0.45807,1.66262\n0.14841,1.27517\n0.14126,1.28340\n0.64240,1.73700\n0.48857,1.42231\n0.20812,1.27790\n0.86987,3.12305\n0.56332,1.79214\n0.73371,2.37770\n0.84887,3.10311\n0.35074,1.41796\n0.38277,1.62078\n0.76123,2.60186\n0.70743,2.13907\n0.20183,1.41132\n0.38794,1.47342\n0.13532,1.22646\n0.34533,1.49926\n0.98695,4.86554\n0.65653,1.92929\n0.12920,1.30592\n0.42027,1.59472\n0.67836,2.06074\n0.09269,1.10756\n0.42134,1.53002\n0.36096,1.41322\n0.58873,1.68901\n0.53505,1.64603\n0.02527,1.04023\n0.12956,1.29720\n0.52211,1.81596\n0.75598,2.34683\n0.72094,2.17248\n0.04706,1.02075\n0.76248,2.37955\n0.60012,1.69774\n0.91061,3.86158\n0.81465,2.71314\n0.38946,1.59926\n0.15890,1.22986\n0.42439,1.54579\n0.99207,4.83716\n0.58003,1.72880\n0.61489,1.79032\n0.67000,2.06975\n0.28984,1.32353\n0.81959,2.82682\n0.05532,1.33194\n0.13676,1.25163\n0.90925,3.50043\n0.94955,4.36415\n0.44016,1.49241\n0.40938,1.47424\n0.47235,1.57461\n0.55177,1.69119\n0.57619,1.78444\n0.46737,1.54051\n0.94971,4.17698\n0.84717,2.92433\n0.30307,1.40618\n0.43425,1.65796\n0.12585,1.07941\n0.66158,2.20167\n0.55451,1.68903\n0.52581,1.64914\n0.88507,3.46776\n0.89785,3.49108\n0.93968,3.97261\n0.59503,1.85074\n0.84010,3.07590\n0.30101,1.42051\n0.58183,1.79620\n0.57524,1.64840\n0.80368,2.75060\n0.58399,1.86151\n0.97482,4.52288\n0.51993,1.62247\n0.18354,1.37842\n0.08582,1.32714\n0.96568,4.59934\n0.43338,1.44868\n0.01439,1.03006\n0.72755,2.10907\n0.80304,2.61879\n0.57357,1.83596\n0.57100,1.78627\n0.88337,3.47669\n0.10258,1.12698\n0.75377,2.28089\n0.27252,1.47485\n0.81756,2.62704\n0.96069,4.45906\n0.56432,1.84843\n0.54744,1.58782\n0.91946,3.65497\n0.06141,0.95587\n0.05958,1.22454\n0.70236,2.15244\n0.40710,1.55735\n0.98786,4.85513\n0.80577,2.89264\n0.74023,2.23633\n0.96219,4.41746\n0.07524,0.98747\n0.18853,1.37074\n0.15470,1.16982\n0.69905,1.92789\n0.07298,1.12788\n0.40845,1.61424\n0.69800,2.14597\n0.76423,2.53459\n0.42011,1.54864\n0.04508,1.10314\n0.88069,3.41463\n0.42180,1.64786\n0.03759,0.99990\n0.05541,1.07343\n0.61071,1.99726\n0.90608,3.59467\n0.77196,2.50401\n0.05709,1.06989\n0.25865,1.39690\n0.08731,1.19181\n0.45317,1.46041\n0.82259,2.89142\n0.80990,2.72134\n0.02753,0.97459\n0.81439,2.80193\n0.28728,1.56030\n0.28402,1.40037\n0.86482,3.26116\n0.74819,2.27342\n0.46480,1.60079\n0.32381,1.45347\n0.66387,2.00604\n0.79756,2.57800\n0.72562,2.24282\n0.63488,1.96649\n0.11810,1.11415\n0.63559,1.85124\n0.70097,2.00856\n0.19674,1.39163\n0.08547,1.20182\n0.51338,1.39005\n0.99082,5.01678\n0.09836,1.17063\n0.97170,4.56330\n0.80114,2.69589\n0.89697,3.62614\n0.53458,1.81327\n0.66429,1.95747\n0.63958,1.77857\n0.36075,1.65531\n0.96119,4.45377\n0.11849,1.14939\n0.45784,1.53848\n0.48873,1.72264\n0.26952,1.35160\n0.64739,1.88939\n0.88529,3.52914\n0.96057,4.44040\n0.45091,1.56534\n0.30319,1.43198\n0.18773,1.26106\n0.63231,1.86735\n0.94890,4.03890\n0.13561,1.19145\n0.00328,0.90208\n0.58419,1.86973\n0.35041,1.45779\n0.06134,1.07655\n0.75272,2.42466\n0.15448,1.35829\n0.66902,2.08979\n0.25143,1.48068\n0.21524,1.46967\n0.07346,1.08922\n0.93304,3.85440\n0.75536,2.36772\n0.79323,2.54857\n0.76929,2.48951\n0.48400,1.54887\n0.93796,4.21970\n0.80815,2.75368\n0.89350,3.52879\n0.87064,3.24484\n0.25932,1.43872\n0.99473,5.12923\n0.17511,1.24916\n0.89505,3.36471\n0.08533,1.12101\n0.96994,4.62396\n0.69331,2.25386\n0.42973,1.81712\n0.85298,3.20076\n0.20897,1.38823\n0.73631,2.30338\n0.22846,1.37383\n0.87447,3.22840\n0.17056,1.27090\n0.87637,3.22271\n0.19013,1.14943\n0.58235,1.57886\n0.04610,1.13324\n0.72682,2.26249\n0.92897,4.02796\n0.22224,1.36211\n0.86095,3.30718\n0.38991,1.47256\n0.83820,2.93630\n0.98611,4.71725\n0.23601,1.33186\n0.37146,1.45354\n0.77994,2.50836\n0.10565,1.00932\n0.06813,1.22605\n0.26978,1.56121\n0.82562,2.89221\n0.37950,1.48591\n0.18909,1.25539\n0.09262,1.13826\n0.79542,2.50105\n0.67197,2.08766\n0.44386,1.47448\n0.06597,1.23887\n0.29851,1.38227\n0.99033,4.99117\n0.68350,2.05333\n0.73854,2.19223\n0.84246,3.02738\n0.58489,1.67263\n0.13510,1.28264\n0.26342,1.32870\n0.71727,2.14111\n0.01979,1.09121\n0.32490,1.56270\n0.10053,1.28750\n0.52241,1.66048\n0.40279,1.37439\n0.40151,1.68497\n0.48970,1.61750\n0.05343,1.12914\n0.31131,1.58058\n0.02001,1.05476\n0.21509,1.35193\n0.40547,1.49848\n0.47613,1.48065\n0.87560,3.33305\n0.82950,2.71838\n0.35688,1.33718\n0.61414,1.87664\n0.91120,3.59656\n0.91844,3.69859\n0.80099,2.72999\n0.53421,1.68624\n0.49862,1.57974\n0.04201,1.12167\n0.74830,2.22639\n0.82392,2.85498\n0.79165,2.58743\n0.93712,4.12216\n0.29415,1.40028\n0.04692,1.03214\n0.46129,1.63847\n0.59071,1.78615\n0.66206,2.19251\n0.52652,1.51845\n0.53214,1.56729\n0.25400,1.35193\n0.43816,1.50761\n0.02527,1.06152\n0.23003,1.29459\n0.35795,1.63289\n0.33239,1.46594\n0.09531,1.11222\n0.41456,1.49862\n0.18121,1.37618\n0.44502,1.54142\n0.21818,1.33878\n0.30420,1.42590\n0.67589,1.97047\n0.32729,1.43605\n0.50920,1.60671\n0.98340,4.70265\n0.15395,1.33213\n0.17212,1.37451\n0.71432,2.25355\n0.53083,1.52533\n0.78720,2.59236\n0.76969,2.48044\n0.70797,2.22041\n0.20756,1.22926\n0.76839,2.52198\n0.00894,1.23527\n0.95036,4.08335\n0.07955,1.23181\n0.42189,1.51422\n0.22717,1.38476\n0.21536,1.24012\n0.45116,1.57309\n0.84347,3.00470\n0.91478,3.93698\n0.41537,1.63578\n0.41717,1.60752\n0.61561,1.84785\n0.49696,1.76866\n0.81640,2.86113\n0.87330,3.17149\n0.18482,1.28595\n0.35810,1.60125\n0.49285,1.46913\n0.06298,1.08331\n0.83780,2.93901\n0.93838,4.05723\n0.05855,1.22239\n0.03845,0.98397\n0.10820,1.03180\n0.85111,3.10852\n0.65870,1.90091\n0.81583,2.70361\n0.23640,1.49369\n0.18359,1.26972\n0.40889,1.50035\n0.88918,3.55959\n0.19858,1.21894\n0.87395,3.28723\n0.27725,1.27717\n0.28250,1.36895\n0.19557,1.20108\n0.25240,1.26514\n0.73257,2.09943\n0.25035,1.40014\n0.96024,4.39088\n0.37265,1.60906\n0.81658,2.78943\n0.63058,2.04351\n0.62596,1.78459\n0.04427,1.20358\n0.51749,1.63399\n0.92126,3.85707\n0.04361,1.06529\n0.41791,1.60536\n0.31084,1.19912\n0.27600,1.50342\n0.08207,1.07666\n0.23207,1.40284\n0.14642,1.33468\n0.22328,1.52584\n0.46256,1.52884\n0.58992,1.88298\n0.73311,2.27245\n0.63676,1.87825\n0.95504,4.35729\n0.42345,1.53036\n0.29886,1.33792\n0.51423,1.92356\n0.66400,1.90497\n0.74055,2.08464\n0.76109,2.49702\n0.81276,2.73878\n0.31261,1.41558\n0.03356,1.05973\n0.65292,2.05825\n0.38940,1.49154\n0.46436,1.49341\n0.76801,2.42949\n0.92473,3.80459\n0.47935,1.54505\n0.31215,1.46175\n0.79987,2.55441\n0.08793,1.11173\n0.87687,3.14617\n0.67410,1.93011\n0.38833,1.46075\n0.69409,2.17017\n0.83863,2.88936\n0.40341,1.48272\n0.77944,2.49380\n0.16779,1.28495\n0.02770,1.04456\n0.40327,1.51694\n0.72045,2.05312\n0.50142,1.79141\n0.48447,1.56159\n0.06907,1.08754\n0.88626,3.52281\n0.12714,1.24622\n0.58565,1.96587\n0.90428,3.63020\n0.20890,1.30184\n0.89029,3.35135\n0.53645,1.74193\n0.82196,2.80396\n0.32534,1.26953\n0.41278,1.48814\n0.01298,0.95777\n0.34239,1.51021\n0.27864,1.30437\n0.11236,1.21833\n0.79437,2.47939\n0.00788,1.04489\n0.07608,0.97964\n0.63649,1.82986\n0.00202,1.07636\n0.13574,1.13062\n0.35879,1.45926\n0.31680,1.40410\n0.56647,2.02250\n0.33630,1.51132\n0.85575,3.11968\n0.03231,1.01961\n0.58153,1.67465\n0.14812,1.32421\n0.12427,1.28977\n0.01238,0.95300\n0.94737,4.12483\n0.10094,1.16586\n0.01832,1.17927\n0.22072,1.39537\n0.97884,4.79151\n0.31337,1.43830\n0.21523,1.27629\n0.00514,0.82547\n0.83593,3.12665\n0.08871,1.24569\n0.53947,1.66252\n0.82066,2.88365\n0.72910,2.06070\n0.00360,1.09655\n0.14527,1.44100\n0.88895,3.48430\n0.01256,0.97900\n0.82001,2.71627\n0.53264,1.68487\n0.87607,3.38611\n0.34793,1.56901\n0.56401,1.71874\n0.02686,1.14652\n0.75063,2.28924\n0.68677,2.03591\n0.86153,3.30538\n0.46890,1.49293\n0.53632,1.75935\n0.23168,1.30149\n0.04445,1.25961\n0.60268,1.76542\n0.50931,1.67713\n0.64046,2.00374\n0.15083,1.18652\n0.27503,1.30940\n0.28172,1.29875\n0.75799,2.33029\n0.69096,2.12420\n0.32069,1.33959\n0.24213,1.33678\n0.85732,3.05799\n0.24834,1.44542\n0.79355,2.68939\n0.47517,1.46463\n0.36613,1.50433\n0.87663,3.26707\n0.62176,1.84277\n0.69913,2.07680\n0.06333,1.22237\n0.82426,2.98630\n0.30115,1.53736\n0.85210,3.00142\n0.90003,3.52059\n0.21401,1.17013\n0.04827,0.93026\n0.21034,1.51227\n0.64112,1.95317\n0.78136,2.38512\n0.99372,4.82117\n0.89504,3.51438\n0.82494,3.04772\n0.45397,1.61330\n0.75435,2.44828\n0.22693,1.33231\n0.13361,1.16312\n0.21240,1.22084\n0.81967,2.80557\n0.69081,2.02023\n0.05866,1.05148\n0.36559,1.42123\n0.03470,1.15651\n0.53162,1.67226\n0.88557,3.47003\n0.96310,4.32659\n0.93639,3.96950\n0.91412,3.78669\n0.90527,3.31392\n0.44411,1.50710\n0.04282,1.04076\n0.73843,2.21813\n0.75840,2.27797\n0.53812,1.71463\n0.28575,1.48577\n0.88092,3.27583\n0.81061,2.64224\n0.02211,1.27315\n0.18425,1.31807\n0.42719,1.65476\n0.60439,1.86636\n0.26407,1.20943\n0.44886,1.50900\n0.91312,3.64739\n0.52621,1.72212\n0.89282,3.43608\n0.59654,1.93192\n0.07063,1.18109\n0.21765,1.18742\n0.58857,1.91316\n0.71273,1.90714\n0.53061,1.84826\n0.23269,1.45322\n0.28575,1.34773\n0.24740,1.34489\n0.89878,3.46838\n0.91463,3.81774\n0.61781,1.72887\n0.01642,1.06572\n0.69123,2.10914\n0.78610,2.61644\n0.49633,1.48540\n0.11799,1.34945\n0.60639,1.71998\n0.00176,0.95921\n0.93801,4.07426\n0.44468,1.42546\n0.33409,1.28605\n0.81512,2.70158\n0.30873,1.36739\n0.20555,1.31592\n0.96654,4.65051\n0.62389,1.92638\n0.29101,1.37222\n0.86087,3.13744\n0.86588,3.35231\n0.79912,2.68536\n0.56002,1.64337\n0.37121,1.59752\n0.40137,1.55499\n0.56283,1.63440\n0.80009,2.79365\n0.71403,2.19045\n0.80446,2.57293\n0.82784,2.93089\n0.55049,1.84899\n0.89515,3.38549\n0.33742,1.61787\n0.78208,2.58367\n0.68624,2.10275\n0.11276,1.31414\n0.17297,1.37610\n0.84008,3.05306\n0.76135,2.30860\n0.94202,3.99821\n0.35176,1.39130\n0.02789,1.07081\n0.71747,2.16702\n0.21027,1.34677\n0.31442,1.52686\n0.20791,1.50170\n0.39997,1.50632\n0.27175,1.52431\n0.88553,3.37830\n0.31517,1.41757\n0.18560,1.37235\n0.15123,1.15418\n0.00705,0.98895\n0.27772,1.57418\n0.00212,1.04927\n0.04607,1.05415\n0.91340,3.77833\n0.79477,2.37446\n0.23102,1.45622\n0.03234,1.07348\n0.49437,1.60772\n0.07998,1.24342\n0.09758,1.00228\n0.74934,2.14331\n0.27297,1.39973\n0.33605,1.45043\n0.96052,4.37563\n0.21414,1.53505\n0.32613,1.41868\n0.00923,0.98431\n0.07217,1.12995\n0.79078,2.62426\n0.79341,2.69041\n0.13808,1.19896\n0.72538,2.22025\n0.74460,2.33690\n0.54121,1.73360\n0.39508,1.61922\n0.81678,2.78482\n0.96155,4.34501\n0.00937,1.12427\n0.92563,3.94792\n0.98697,4.72954\n0.30937,1.32718\n0.34750,1.42900\n0.31908,1.44874\n0.28717,1.41696\n0.91726,3.76652\n0.78306,2.63980\n0.04786,1.01085\n0.48576,1.70278\n0.94311,4.02029\n0.24157,1.32303\n0.41817,1.48427\n0.16366,1.15330\n0.86636,3.18166\n0.86435,3.15735\n0.84315,3.01126\n0.90335,3.64724\n0.68210,1.90023\n0.91381,3.64227\n0.21085,1.42360\n0.05467,0.98219\n0.54849,1.65392\n0.02006,0.87964\n0.98591,4.82953\n0.93711,3.91174\n0.87320,3.23728\n0.90899,3.67030\n0.54443,1.61831\n0.49839,1.51222\n0.77283,2.43596\n0.50927,1.68939\n0.58585,1.75491\n0.45579,1.42254\n0.30976,1.45445\n0.28110,1.32680\n0.73832,2.27438\n0.70363,2.27897\n0.84556,2.95308\n0.43414,1.79609\n0.17390,1.29729\n0.17788,1.38516\n0.27965,1.23060\n0.42300,1.62287\n0.22444,1.27619\n0.80672,2.61752\n0.30467,1.36885\n0.40476,1.47245\n0.24101,1.33718\n0.59588,1.79463\n0.77695,2.49739\n0.49931,1.70335\n0.57917,1.75116\n0.51803,1.84226\n0.73049,2.25699\n0.52450,1.70727\n0.22622,1.30231\n0.25899,1.38107\n0.92598,4.03234\n0.22353,1.36406\n0.51871,1.60652\n0.05890,1.08231\n0.41930,1.62596\n0.06392,1.26919\n0.46924,1.75186\n0.54772,1.86728\n0.52492,1.64388\n0.87400,3.23303\n0.46081,1.54280\n0.68402,2.07749\n0.46210,1.57516\n0.73395,2.46593\n0.19755,1.30490\n0.73677,2.51145\n0.07251,0.88750\n0.23997,1.29455\n0.38511,1.43888\n0.48091,1.72799\n0.77293,2.21602\n0.26363,1.49204\n0.62994,1.91986\n0.49152,1.49033\n0.80058,2.51764\n0.91888,3.75570\n0.81337,2.74415\n0.10449,1.21435\n0.28006,1.50123\n0.53952,1.86239\n0.05784,1.11112\n0.54910,1.59563\n0.00995,1.12427\n0.34645,1.62317\n0.00078,1.00479\n0.30960,1.48068\n0.76627,2.39307\n0.22897,1.31140\n0.48007,1.61035\n0.47610,1.54798\n0.63039,1.94960\n0.69066,1.89255\n0.21756,1.25807\n0.28841,1.49380\n0.60196,1.69109\n0.87721,3.27871\n0.90793,3.62359\n0.02827,1.21762\n0.06854,1.04330\n0.97199,4.44540\n0.05450,1.13008\n0.77142,2.58908\n0.77965,2.43186\n0.14962,1.19261\n0.03150,1.16054\n0.17445,1.08576\n0.34909,1.45319\n0.31739,1.22949\n0.32337,1.44118\n0.51097,1.51136\n0.22631,1.29204\n0.51342,1.70699\n0.85043,2.99285\n0.18853,1.35421\n0.02912,1.20809\n0.64011,1.82566\n0.02509,0.95755\n0.74515,2.34286\n0.90583,3.49718\n0.41032,1.72487\n0.64128,1.88245\n0.49471,1.63796\n0.19108,1.43229\n0.60892,1.94757\n0.30877,1.53742\n0.22707,1.16408\n0.73155,2.28898\n0.88132,3.45503\n0.33507,1.59367\n0.85945,3.14747\n0.01980,1.02574\n0.70315,2.07144\n0.39910,1.40860\n0.55550,1.93996\n0.50136,1.53603\n0.10549,1.39760\n0.11507,1.15674\n0.68083,2.02446\n0.17478,1.23043\n0.85673,3.03085\n0.80682,2.68818\n0.25180,1.27317\n0.63304,1.71531\n0.72857,2.23610\n0.44818,1.61834\n0.96947,4.23236\n0.87134,3.26088\n0.75683,2.44882\n0.88704,3.40635\n0.09095,1.42076\n0.20811,1.33644\n0.25554,1.34479\n0.29013,1.33748\n0.23465,1.33798\n0.13412,1.26563\n0.84139,2.96671\n0.99562,4.92121\n0.14575,1.10358\n0.79035,2.40993\n0.17693,1.47631\n0.08159,1.18887\n0.98299,4.78854\n0.94500,4.11639\n0.70951,2.06900\n0.34628,1.33970\n0.02665,1.13830\n0.95662,4.32956\n0.27797,1.32592\n0.00910,0.86368\n0.00718,1.10783\n0.33329,1.37033\n0.43163,1.56996\n0.37487,1.51875\n0.25824,1.57345\n0.61633,1.72087\n0.06981,1.09434\n0.37849,1.41432\n0.45492,1.56287\n0.54571,1.71595\n0.83349,2.92745\n0.12059,1.19413\n0.37758,1.43810\n0.61035,1.79905\n0.14341,1.17911\n0.66504,1.89473\n0.39431,1.31911\n0.50610,1.48365\n0.01287,1.05026\n0.33448,1.50096\n0.20186,1.34427\n0.65269,1.82032\n0.73101,2.26908\n0.27843,1.43186\n0.64343,1.89540\n0.11382,1.27426\n0.03150,1.05314\n0.17359,1.37875\n0.73633,2.33254\n0.93284,3.75019\n0.00168,0.87056\n0.88245,3.36620\n0.06525,1.05825\n0.21907,1.47536\n0.33609,1.33656\n0.98742,4.59098\n0.01007,1.19431\n0.38177,1.28196\n0.83614,2.93710\n0.47437,1.74661\n0.74531,2.42489\n0.52609,1.45721\n0.88608,3.44411\n0.14737,1.40504\n0.22391,1.49078\n0.42491,1.68661\n0.79811,2.66488\n0.09165,1.11068\n0.49640,1.61641\n0.43852,1.73151\n0.26589,1.44484\n0.69778,2.08821\n0.76501,2.35105\n0.03327,1.06973\n0.76591,2.27117\n0.27591,1.34833\n0.49648,1.59629\n0.95929,4.26172\n0.87029,3.22484\n0.43675,1.53212\n0.20685,1.43827\n0.02851,0.92470\n0.00181,1.02839\n0.37766,1.46111\n0.19885,1.46544\n0.61664,1.85059\n0.54572,1.46479\n0.32280,1.39720\n0.72693,2.19259\n0.73212,2.31580\n0.20877,1.20593\n0.12544,1.21018\n0.97648,4.70904\n0.01806,1.02267\n0.88194,3.56873\n0.61755,1.74265\n0.01335,1.11537\n0.00709,0.99380\n0.62389,1.81560\n0.92231,3.77567\n0.27397,1.40742\n0.13633,1.32354\n0.39396,1.49488\n0.85170,3.14828\n0.51808,1.80692\n0.87263,3.34175\n0.18653,1.46404\n0.03127,1.25235\n0.46414,1.64307\n0.03663,0.96316\n0.58957,1.81340\n0.01405,1.28390\n0.50638,1.66981\n0.45575,1.53888\n0.77139,2.35447\n0.11843,1.30140\n0.36485,1.40975\n0.51123,1.69624\n0.03527,1.05181\n0.06510,1.07134\n0.50915,1.55361\n0.88287,3.38490\n0.60176,1.79522\n0.29779,1.40007\n0.70625,2.12953\n0.22629,1.31672\n0.69407,1.90480\n0.42099,1.42301\n0.27311,1.14596\n0.04316,1.09518\n0.94247,4.25262\n0.09022,1.05912\n0.09892,1.09440\n0.66842,2.05112\n0.16408,1.37024\n0.73017,2.18935\n0.48425,1.43774\n0.66308,1.81685\n0.87794,3.27904\n0.97022,4.54784\n0.53268,1.76077\n0.45796,1.54720\n0.02398,1.19036\n0.13089,1.30991\n0.52450,1.71748\n0.86892,3.24187\n0.79355,2.60639\n0.92447,3.90825\n0.26432,1.27514\n0.86498,3.04381\n0.80536,2.63483\n0.61448,1.85576\n0.55277,1.66122\n0.22049,1.62151\n0.94072,4.00133\n0.05360,1.19547\n0.76447,2.43143\n0.42473,1.46945\n0.30659,1.37499\n0.64007,1.87997\n0.86804,3.11571\n0.02580,0.93729\n0.09468,1.31637\n0.15813,1.45220\n0.68384,2.02117\n0.08770,1.17359\n0.92098,3.84173\n0.85715,3.12442\n0.37051,1.46071\n0.01663,0.89194\n0.53080,1.71485\n0.49547,1.60380\n0.73958,2.18298\n0.20847,1.36382\n0.12536,1.17838\n0.61287,1.75636\n0.01792,1.01745\n0.04886,1.05384\n0.53454,1.59223\n0.35396,1.35226\n0.47121,1.42032\n0.37904,1.42611\n0.39726,1.50379\n0.36562,1.46778\n0.12164,1.10647\n0.57661,1.85264\n0.87644,3.31538\n0.22400,1.37316\n0.70372,2.16214\n0.57929,1.92124\n0.93403,3.81909\n0.29802,1.49458\n0.97029,4.42159\n0.93771,3.83324\n0.77442,2.61381\n0.68220,2.10576\n0.62267,1.92596\n0.87193,2.96396\n0.63835,1.96891\n0.03901,1.11948\n0.74739,2.41422\n0.54029,1.68698\n0.33241,1.35452\n0.26208,1.28269\n0.95426,4.34683\n0.70730,2.29397\n0.39270,1.43327\n0.08480,1.05027\n0.09246,1.23220\n0.04262,0.83183\n0.36824,1.54467\n0.93563,3.95589\n0.78012,2.40426\n0.57029,1.59340\n0.11029,1.13489\n0.80984,2.76247\n0.69408,1.94975\n0.03990,1.04537\n0.72714,2.09218\n0.12987,1.21392\n0.18578,1.15693\n0.41330,1.56673\n0.56842,1.82116\n0.88254,3.31330\n0.48790,1.69988\n0.07168,1.03239\n0.68581,2.13010\n0.84100,2.99735\n0.84275,3.21309\n0.22704,1.33069\n0.71836,2.20454\n0.41224,1.46038\n0.97564,4.54966\n0.31510,1.45072\n0.68824,1.92530\n0.46607,1.64373\n0.98771,4.82029\n0.62007,1.59563\n0.41334,1.59035\n0.59448,1.68080\n0.72657,2.28092\n0.90912,3.63239\n0.86492,3.06348\n0.18614,1.36176\n0.32148,1.40396\n0.51640,1.74330\n0.21034,1.19385\n0.14825,1.30718\n0.16313,1.23857\n0.20770,1.37758\n0.94676,4.24189\n0.32695,1.33159\n0.52989,1.57801\n0.79600,2.59754\n0.06095,1.20381\n0.89140,3.32812\n0.16099,1.37136\n0.62823,1.91625\n0.63526,1.85167\n0.50341,1.45465\n0.19411,1.51092\n0.33369,1.56081\n0.05771,1.08106\n0.96624,4.54506\n0.17740,1.45341\n0.36640,1.43791\n0.82441,2.70365\n0.22179,1.30797\n0.79531,2.64649\n0.30717,1.40408\n0.77343,2.37818\n0.24599,1.27911\n0.72127,2.23998\n0.17461,1.21248\n0.59319,1.80163\n0.87486,3.17548\n0.33117,1.42514\n0.77200,2.36618\n0.21636,1.51071\n0.86838,3.30557\n0.96975,4.55677\n0.22484,1.31882\n0.20563,1.42645\n0.90938,3.74527\n0.36206,1.44149\n0.73013,2.24590\n0.91536,3.62329\n0.24351,1.23306\n0.22276,1.32626\n0.40698,1.66763\n0.44129,1.38408\n0.16690,1.11141\n0.76579,2.37154\n0.09130,1.17486\n0.57370,1.76669\n0.62961,1.88539\n0.55733,1.68942\n0.86493,3.03309\n0.00095,0.99484\n0.94492,4.10036\n0.62436,1.63627\n0.36185,1.58828\n0.66011,2.18920\n0.81529,2.74195\n0.25656,1.43960\n0.47018,1.62012\n0.23202,1.29521\n0.61638,1.94887\n0.81956,2.84599\n0.01025,0.99458\n0.49111,1.81313\n0.91499,3.90316\n0.21139,1.38422\n0.42715,1.44216\n0.74971,2.24877\n0.76360,2.50188\n0.55035,1.69994\n0.10761,1.16863\n0.66290,2.03113\n0.09018,1.13427\n0.63724,1.96150\n0.91400,3.73370\n0.70759,1.92677\n0.79275,2.71983\n0.68242,2.06484\n0.82442,2.74703\n0.68329,1.83234\n0.98307,4.66542\n0.31267,1.69215\n0.71990,2.23270\n0.39859,1.59370\n0.29590,1.54910\n0.32706,1.28494\n0.67805,1.92807\n0.12357,1.09392\n0.65791,1.75637\n0.19026,1.40675\n0.21763,1.33685\n0.65099,2.11075\n0.40608,1.46101\n0.18385,1.38859\n0.28579,1.39192\n0.37169,1.49733\n0.05094,0.97518\n0.36034,1.53325\n0.18853,1.30802\n0.77115,2.44927\n0.65624,1.91132\n0.03972,0.99741\n0.41267,1.56873\n0.29092,1.57436\n0.45836,1.61574\n0.42012,1.52001\n0.10229,1.06211\n0.65983,1.90372\n0.92535,3.84909\n0.83454,2.71262\n0.95317,4.27026\n0.88625,3.41907\n0.95515,4.09300\n0.10829,1.12436\n0.20580,1.41096\n0.73894,2.29151\n0.28768,1.28595\n0.32241,1.35961\n0.77384,2.37082\n0.84428,2.87407\n0.36613,1.47032\n0.57493,1.66151\n0.10961,1.06752\n0.51319,1.74216\n0.63253,1.64044\n0.44799,1.57192\n0.98929,4.80107\n0.76529,2.47870\n0.98199,4.63020\n0.71239,2.28016\n0.61325,1.93414\n0.35444,1.48234\n0.33891,1.34500\n0.26040,1.31428\n0.28662,1.46051\n0.43303,1.60228\n0.27290,1.35611\n0.40513,1.62834\n0.15567,1.18334\n0.42149,1.59908\n0.51985,1.55774\n0.23076,1.26785\n0.80734,2.53333\n0.69749,2.26306\n0.11589,1.03312\n0.29754,1.35321\n0.16330,1.15514\n0.75084,2.26603\n0.86226,3.25241\n0.10852,1.29177\n0.37086,1.50737\n0.68720,2.20441\n0.16038,1.25175\n0.54301,1.65452\n0.24224,1.38080\n0.17905,1.26884\n0.76549,2.62166\n0.50508,1.73766\n0.81489,2.73452\n0.17844,1.20122\n0.48021,1.61035\n0.95860,4.39206\n0.32048,1.51245\n0.23608,1.35549\n0.01064,0.93722\n0.58749,1.92885\n0.35584,1.55794\n0.02556,1.18678\n0.10508,1.08839\n0.30760,1.27303\n0.78256,2.47202\n0.91044,3.61402\n0.91211,3.67641\n0.95291,4.33173\n0.06421,1.30344\n0.41700,1.61342\n0.84813,3.07881\n0.91467,3.72730\n0.35075,1.57417\n0.62417,1.83352\n0.14447,1.16853\n0.79737,2.66485\n0.85251,2.95705\n0.49424,1.55685\n0.04955,1.06914\n0.57600,1.73416\n0.72027,2.32623\n0.46857,1.77865\n0.52345,1.67111\n0.82045,2.76675\n0.79771,2.54900\n0.32733,1.65358\n0.75251,2.17901\n0.72734,2.34918\n0.44896,1.64605\n0.77963,2.43791\n0.40021,1.39655\n0.22734,1.23005\n0.37993,1.66046\n0.66005,1.80638\n0.66288,2.00466\n0.52041,1.53089\n0.88942,3.32158\n0.72790,2.20833\n0.52225,1.61527\n0.46244,1.47215\n0.50258,1.63494\n0.57231,1.85760\n0.43191,1.54262\n0.11583,1.10297\n0.03478,1.10027\n0.44426,1.45699\n0.08745,1.30995\n0.18241,1.36113\n0.76655,2.48445\n0.13344,1.11981\n0.11132,1.15926\n0.44386,1.49775\n0.02638,1.23372\n0.26651,1.30886\n0.63532,1.82685\n0.63732,2.01430\n0.91286,3.66077\n0.89542,3.37584\n0.10732,1.42547\n0.78390,2.47629\n0.61333,1.85329\n0.54079,1.76146\n0.34394,1.43130\n0.93581,4.13023\n0.09566,1.10917\n0.68743,1.94490\n0.08342,1.13207\n0.12127,1.34286\n0.69673,2.13670\n0.95439,4.38363\n0.66689,1.83612\n0.29386,1.29903\n0.90108,3.56313\n0.92672,3.86289\n0.84947,3.00663\n0.57010,1.69434\n0.97376,4.57222\n0.35793,1.64014\n0.61122,1.98923\n0.53773,1.78249\n0.36174,1.53957\n0.17324,1.52340\n0.67232,1.71486\n0.62188,1.84566\n0.86298,3.21476\n0.62445,1.87221\n0.84738,3.12976\n0.91840,3.83958\n0.37306,1.34612\n0.61940,1.80090\n0.45494,1.63114\n0.97088,4.47579\n0.65968,1.98867\n0.59023,1.74236\n0.16639,1.29018\n0.96948,4.44394\n0.31426,1.37919\n0.04204,1.18217\n0.13219,1.21701\n0.59696,1.80423\n0.25575,1.35007\n0.39005,1.71641\n0.98582,4.86150\n0.69217,2.10178\n0.67509,2.01446\n0.80023,2.55250\n0.06671,1.29775\n0.99130,4.88938\n0.11078,1.23317\n0.67607,2.06416\n0.90828,3.49902\n0.73089,2.20813\n0.21444,1.45684\n0.80992,2.82657\n0.12137,1.26330\n0.43740,1.72980\n0.16022,1.23228\n0.24639,1.34946\n0.07712,1.18321\n0.33839,1.61026\n0.15089,1.43303\n0.29708,1.43726\n0.59638,1.64521\n0.56439,1.73504\n0.40358,1.67058\n0.78947,2.42375\n0.27004,1.41877\n0.19735,1.45784\n0.79082,2.67227\n0.07459,1.02734\n0.65909,1.94672\n0.06835,1.13998\n0.04199,1.03719\n0.67812,1.97703\n0.85288,3.27239\n0.23292,1.57073\n0.30165,1.52127\n0.72305,2.30220\n0.76905,2.57196\n0.69854,2.06600\n0.85841,3.09327\n0.68084,2.02389\n0.00928,0.78996\n0.24336,1.49265\n0.91209,3.54555\n0.71415,2.15644\n0.83800,2.99845\n0.66682,1.89291\n0.35038,1.60991\n0.79880,2.71616\n0.93374,3.93331\n0.78947,2.69381\n0.35520,1.34923\n0.59434,1.79501\n0.63538,1.86748\n0.90594,3.56033\n0.69443,2.08238\n0.20090,1.32626\n0.91199,3.73874\n0.09122,1.15173\n0.88225,3.28887\n0.22612,1.25355\n0.00248,0.92892\n0.38408,1.40100\n0.38390,1.53409\n0.12709,1.17268\n0.45916,1.46536\n0.46860,1.43924\n0.53118,1.78073\n0.75983,2.33931\n0.09758,1.28600\n0.13817,1.21519\n0.24546,1.38736\n0.53659,1.73476\n0.20457,1.37903\n0.12468,1.37130\n0.05340,1.04146\n0.28297,1.34969\n0.59994,1.76797\n0.45818,1.48458\n0.37738,1.45908\n0.43730,1.55445\n0.05603,1.07856\n0.54075,1.67408\n0.13138,1.21000\n0.17350,1.15499\n0.56251,1.57402\n0.97065,4.56805\n0.36687,1.41305\n0.61380,1.87724\n0.84824,2.99321\n0.40699,1.47668\n0.36924,1.41446\n0.27152,1.37286\n0.72272,2.28928\n0.71764,2.24141\n0.46797,1.56954\n0.64791,2.11200\n0.29999,1.31854\n0.08342,1.27487\n0.07761,1.08925\n0.26721,1.43782\n0.76735,2.52413\n0.64017,1.96997\n0.28572,1.52587\n0.13218,1.25055\n0.55970,1.77776\n0.59186,1.78548\n0.46821,1.59401\n0.14156,1.28091\n0.85117,2.95340\n0.49748,1.51489\n0.71313,1.96162\n0.53660,1.65317\n0.17020,1.02594\n0.70816,2.21444\n0.39625,1.58700\n0.73638,2.25507\n0.50356,1.57681\n0.34123,1.40625\n0.51301,1.84021\n0.83280,3.00977\n0.21029,1.34283\n0.53192,1.69049\n0.42277,1.59160\n0.96533,4.47922\n0.21349,1.30337\n0.41464,1.58146\n0.95167,4.19200\n0.26801,1.41929\n0.36228,1.48627\n0.58191,1.82981\n0.68365,2.11256\n0.81273,2.67179\n0.31772,1.43992\n0.57956,1.66039\n0.10206,1.06495\n0.46206,1.59908\n0.68130,2.00997\n0.59061,1.75109\n0.81503,2.72221\n0.66032,1.89768\n0.02449,1.19775\n0.17177,1.11992\n0.96378,4.54472\n0.59702,1.74286\n0.27976,1.34317\n0.67467,2.14156\n0.02355,1.05469\n0.89702,3.44176\n0.51826,1.58164\n0.50061,1.66051\n0.05440,1.15410\n0.75744,2.25065\n0.00238,0.96285\n0.52828,1.76375\n0.35765,1.50232\n0.78785,2.65915\n0.93698,4.10860\n0.81971,2.92867\n0.94252,3.95127\n0.28600,1.43562\n0.07161,0.99564\n0.82668,2.86156\n0.64797,1.91262\n0.11208,0.99148\n0.89878,3.61167\n0.24505,1.27536\n0.11115,1.24354\n0.73796,2.40790\n0.14542,1.19108\n0.22918,1.18729\n0.34093,1.46055\n0.51268,1.60560\n0.46818,1.59694\n0.89648,3.76904\n0.42325,1.44979\n0.36770,1.58759\n0.07124,1.13347\n0.26371,1.33538\n0.05778,0.91045\n0.73367,2.24857\n0.23469,1.39974\n0.28708,1.37279\n0.70562,2.13207\n0.70763,2.04804\n0.40404,1.67112\n0.30780,1.53571\n0.13865,1.33275\n0.79643,2.55430\n0.70112,2.31862\n0.40365,1.52232\n0.09557,1.17822\n0.45620,1.54984\n0.12828,1.21428\n0.75279,2.25268\n0.48838,1.62423\n0.47583,1.52860\n0.17229,1.35794\n0.84686,2.87845\n0.91283,3.64565\n0.34120,1.46501\n0.91164,3.68483\n0.81204,2.68893\n0.77670,2.43020\n0.54607,1.65972\n0.56356,1.57259\n0.94225,3.99524\n0.84666,2.90295\n0.77124,2.47941\n0.08948,1.03468\n0.34041,1.48445\n0.74928,2.30161\n0.95397,4.21138\n0.29908,1.32342\n0.30760,1.38954\n0.62266,1.68096\n0.61524,1.88064\n0.08224,1.23980\n0.12027,1.00293\n0.30505,1.28339\n0.72665,2.31398\n0.60950,1.82374\n0.57848,1.77264\n0.73765,2.23025\n0.06567,1.01964\n0.42540,1.65563\n0.77070,2.48527\n0.08516,1.07128\n0.36065,1.42452\n0.66133,1.98494\n0.93860,3.80202\n0.79674,2.40022\n0.83870,2.85319\n0.18772,1.37093\n0.93455,4.19175\n0.05023,1.15154\n0.47284,1.69938\n0.76925,2.62074\n0.02640,0.85276\n0.96287,4.28328\n0.83297,2.97172\n0.90320,3.34541\n0.94943,4.37296\n0.63010,1.87379\n0.04309,1.15540\n0.79383,2.72942\n0.58510,1.90492\n0.30702,1.50834\n0.76008,2.48347\n0.15533,1.38075\n0.31017,1.36787\n0.66132,2.15544\n0.56182,1.74887\n0.69899,2.10504\n0.01874,0.88211\n0.63973,2.01159\n0.88226,3.35170\n0.30153,1.35138\n0.36599,1.39827\n0.20818,1.31113\n0.88258,3.43666\n0.00973,1.07977\n0.14918,1.47359\n0.22628,1.29278\n0.50409,1.71425\n0.71897,2.14865\n0.05085,1.14361\n0.54399,1.68159\n0.08872,1.11479\n0.30430,1.40738\n0.48568,1.60697\n0.41303,1.43099\n0.20592,1.33777\n0.90894,3.62174\n0.33505,1.42704\n0.38754,1.47702\n0.98560,4.78028\n0.91003,3.43502\n0.98474,4.49831\n0.98054,4.49681\n0.74705,2.47175\n0.53893,1.63192\n0.53806,1.53983\n0.25099,1.41739\n0.90138,3.45147\n0.35922,1.39949\n0.36641,1.60380\n0.79615,2.60758\n0.31445,1.51409\n0.85717,3.12816\n0.86265,2.95503\n0.77669,2.47049\n0.95456,4.46391\n0.91118,3.64429\n0.13793,1.12043\n0.29476,1.34828\n0.79512,2.53083\n0.33988,1.59062\n0.45156,1.52760\n0.30651,1.54997\n0.07429,1.19598\n0.72101,2.25705\n0.74102,2.25665\n0.25678,1.29545\n0.93557,4.02076\n0.04806,1.12039\n0.09683,1.14887\n0.05636,1.11345\n0.22454,1.16882\n0.62290,1.94741\n0.16733,1.28657\n0.94789,4.20154\n0.41845,1.56964\n0.17620,1.19035\n0.12248,1.12097\n0.76577,2.40926\n0.64379,2.11150\n0.88474,3.35267\n0.92792,3.84798\n0.49125,1.57996\n0.20403,1.48157\n0.54960,1.70263\n0.52907,1.65528\n0.30821,1.51021\n0.72650,2.06388\n0.65218,2.15403\n0.85161,2.99228\n0.52198,1.59318\n0.53409,1.72420\n0.71525,2.19162\n0.22433,1.40245\n0.16598,1.20315\n0.51191,1.73199\n0.29601,1.41694\n0.50855,1.58821\n0.92720,3.96627\n0.36274,1.49427\n0.07795,1.10092\n0.75266,2.46328\n0.06171,0.96125\n0.37794,1.35319\n0.94297,4.18521\n0.02443,1.13919\n0.42014,1.67547\n0.53081,1.79679\n0.00482,0.98174\n0.63954,1.85992\n0.37823,1.55327\n0.52061,1.51762\n0.33929,1.36702\n0.36095,1.63077\n0.06317,0.98200\n0.21395,1.29709\n0.32715,1.25156\n0.89845,3.41267\n0.64856,1.90563\n0.56724,1.82392\n0.89424,3.42622\n0.35286,1.50110\n0.26362,1.49756\n0.44955,1.51399\n0.16586,1.22636\n0.75660,2.50491\n0.58302,1.73128\n0.96924,4.54144\n0.06150,1.16318\n0.78743,2.69092\n0.44887,1.67899\n0.18480,1.26437\n0.18945,1.08673\n0.53773,1.75155\n0.95818,4.24745\n0.30900,1.16069\n0.88519,3.23017\n0.70660,2.09735\n0.04527,1.12372\n0.07433,1.12627\n0.04912,1.18971\n0.72155,2.12623\n0.16956,1.13073\n0.47294,1.62146\n0.39807,1.67316\n0.06722,1.07678\n0.67299,1.88531\n0.79345,2.60302\n0.09705,1.12219\n0.41354,1.42652\n0.53249,1.71358\n0.29786,1.44377\n0.42152,1.55705\n0.41182,1.51912\n0.90059,3.60365\n0.87563,3.25390\n0.46069,1.64657\n0.49129,1.66966\n0.88920,3.35741\n0.16597,1.29652\n0.58896,1.59680\n0.17332,1.27558\n0.63332,1.83340\n0.84625,2.96972\n0.03373,0.96138\n0.74284,2.33958\n0.62572,2.05610\n0.35378,1.48760\n0.52464,1.56994\n0.64056,1.86664\n0.05505,1.11095\n0.72189,2.22371\n0.86281,3.14579\n0.54540,1.75880\n0.92759,3.89385\n0.66602,2.12153\n0.32918,1.55296\n0.34431,1.44729\n0.86705,3.39704\n0.49121,1.68649\n0.11524,0.97077\n0.06610,1.06276\n0.89831,3.43146\n0.62614,1.86984\n0.42719,1.54365\n0.87525,3.27956\n0.41946,1.60890\n0.33770,1.60060\n0.61884,1.77271\n0.31806,1.40854\n0.53179,1.65340\n0.89485,3.31570\n0.90783,3.74630\n0.25152,1.37639\n0.74028,2.26664\n0.93119,3.81982\n0.50597,1.65537\n0.56798,1.90927\n0.38248,1.58861\n0.10877,1.26980\n0.79510,2.75553\n0.38768,1.35758\n0.74451,2.46287\n0.33921,1.34128\n0.43759,1.46588\n0.12977,1.20805\n0.38966,1.46694\n0.85380,2.98854\n0.80827,2.65231\n0.19800,1.23367\n0.33477,1.24202\n0.63290,2.09954\n0.49520,1.65986\n0.02514,1.05906\n0.07762,1.12026\n0.23418,1.17548\n0.74009,2.35874\n0.44375,1.73393\n0.85522,3.13882\n0.18439,1.24529\n0.80717,2.64973\n0.70010,2.02135\n0.52530,1.55130\n0.76193,2.19026\n0.17930,1.31545\n0.54821,1.51732\n0.40755,1.44425\n0.98193,4.54931\n0.19852,1.19280\n0.70035,2.13253\n0.14470,1.09766\n0.24997,1.36237\n0.51403,1.64843\n0.91253,3.64614\n0.80144,2.56344\n0.68314,2.00926\n0.45376,1.44572\n0.32121,1.22154\n0.74216,2.41360\n0.06146,0.98993\n0.49057,1.68814\n0.46847,1.61349\n0.27181,1.37576\n0.64873,1.80963\n0.87504,3.38053\n0.98718,4.72149\n0.92673,3.94848\n0.06640,1.12700\n0.20040,1.35558\n0.28365,1.27440\n0.41404,1.46040\n0.17111,1.37126\n0.99324,4.98647\n0.36453,1.36779\n0.35776,1.36155\n0.12892,1.12104\n0.52629,1.66532\n0.23438,1.42479\n0.33398,1.47025\n0.02586,1.00226\n0.45180,1.68179\n0.13864,1.14666\n0.62706,1.74380\n0.04176,1.28938\n0.77826,2.55343\n0.51034,1.58116\n0.77207,2.66613\n0.65565,1.99840\n0.29909,1.38958\n0.47346,1.65816\n0.05504,1.09882\n0.67590,1.90429\n0.73231,2.20525\n0.67014,2.17381\n0.84594,2.89575\n0.99607,4.83244\n0.97502,4.48561\n0.22128,1.29761\n0.53386,1.59980\n0.60623,1.94464\n0.30904,1.53937\n0.09660,1.15392\n0.21369,1.22382\n0.98157,4.60011\n0.90624,3.51030\n0.68308,2.07332\n0.62968,1.90015\n0.52906,1.61030\n0.56475,1.70099\n0.81635,2.63768\n0.89733,3.83286\n0.80593,2.67463\n0.66913,2.10727\n0.26399,1.46058\n0.73342,2.28002\n0.07044,0.89716\n0.52140,1.67419\n0.62626,1.98416\n0.45663,1.59969\n0.96341,4.39358\n0.68973,2.09747\n0.16671,1.31627\n0.80780,2.74433\n0.27610,1.36147\n0.24939,1.31735\n0.33275,1.45470\n0.99724,5.01669\n0.45452,1.83016\n0.43381,1.56892\n0.85526,3.04276\n0.73096,2.39361\n0.15070,1.19418\n0.99757,4.97626\n0.04719,0.97441\n0.30710,1.50507\n0.34741,1.37395\n0.56587,1.62046\n0.66770,2.03776\n0.16838,1.34828\n0.59687,1.82718\n0.60140,1.89552\n0.96777,4.38843\n0.53208,1.80487\n0.46418,1.53474\n0.20046,1.19886\n0.96223,4.34270\n0.85925,3.21636\n0.04068,0.98098\n0.15869,1.24612\n0.00307,0.90688\n0.92461,3.91150\n0.06821,1.15277\n0.27097,1.31674\n0.07087,1.16412\n0.92785,3.60250\n0.66201,1.90702\n0.43250,1.43280\n0.08669,1.25101\n0.89259,3.50665\n0.89761,3.50144\n0.77536,2.41888\n0.92502,3.81477\n0.85266,2.96768\n0.49642,1.51145\n0.56189,1.78490\n0.57189,1.56201\n0.30389,1.38419\n0.85979,3.07931\n0.74058,2.39862\n0.49605,1.60987\n0.54377,1.76598\n0.98767,4.90138\n0.86689,3.34568\n0.25342,1.26600\n0.12677,1.31271\n0.73725,2.19752\n0.40449,1.62949\n0.75712,2.32499\n0.62682,1.78660\n0.58438,1.71603\n0.33753,1.36294\n0.66627,1.87637\n0.87566,3.22452\n0.63488,2.02520\n0.01572,1.16218\n0.53270,1.67217\n0.42390,1.63237\n0.76745,2.28322\n0.59751,1.71393\n0.42250,1.59819\n0.70720,2.11491\n0.19061,1.41458\n0.09963,1.37438\n0.60325,1.71762\n0.70248,2.10426\n0.13327,1.16571\n0.69027,2.18382\n0.61812,1.95981\n0.57000,1.73641\n0.50572,1.68668\n0.27412,1.25574\n0.21712,1.32291\n0.97051,4.46772\n0.60404,1.77491\n0.51019,1.64148\n0.26906,1.40230\n0.04101,1.08743\n0.86301,3.18011\n0.83965,3.01045\n0.36805,1.54361\n0.42714,1.51961\n0.72948,2.25446\n0.05676,1.07148\n0.01845,0.81652\n0.60313,1.77941\n0.85455,3.03338\n0.89463,3.37467\n0.69668,1.96829\n0.46068,1.59672\n0.64545,2.03706\n0.30286,1.39322\n0.26291,1.36544\n0.40932,1.63998\n0.08878,1.34905\n0.30709,1.54387\n0.36579,1.51351\n0.78237,2.54274\n0.80805,2.78537\n0.29993,1.59574\n0.27948,1.41941\n0.50261,1.59535\n0.22224,1.38140\n0.63239,1.75308\n0.56595,1.77399\n0.71018,2.10024\n0.40851,1.49560\n0.72031,2.06459\n0.13391,1.31178\n0.10481,1.13746\n0.31962,1.34703\n0.63681,1.65802\n0.68812,2.19862\n0.26410,1.28666\n0.59881,1.68228\n0.04701,1.33289\n0.93884,4.12674\n0.91787,3.79802\n0.69325,2.14930\n0.48453,1.55775\n0.46292,1.66960\n0.18716,1.03498\n0.66214,1.96673\n0.20451,1.37514\n0.64872,2.04503\n0.80537,2.77129\n0.61215,1.73896\n0.91903,3.79899\n0.93251,3.91059\n0.30637,1.47552\n0.78066,2.63816\n0.00609,1.03492\n0.51116,1.65122\n0.05700,0.99133\n0.61553,1.96461\n0.81791,2.72738\n0.02668,1.05902\n0.91658,3.65676\n0.12361,1.17485\n0.06591,1.10877\n0.19511,1.22234\n0.71269,2.23580\n0.76702,2.55375\n0.78410,2.59814\n0.63284,1.87589\n0.84297,3.12163\n0.65763,1.84606\n0.73032,2.06783\n0.58061,1.74418\n0.29237,1.31740\n0.82531,2.90582\n0.81023,2.69249\n0.56046,1.59326\n0.74123,2.24559\n0.96917,4.33331\n0.82992,2.92369\n0.47193,1.61111\n0.20921,1.22389\n0.42838,1.63657\n0.94701,4.42660\n0.56169,1.68903\n0.60673,1.82783\n0.45575,1.58298\n0.21258,1.30485\n0.85192,3.09214\n0.39734,1.35187\n0.81534,2.68840\n0.53310,1.64391\n0.84406,3.03089\n0.60670,1.86947\n0.37180,1.58934\n0.08539,1.20633\n0.84254,3.07812\n0.21858,1.23029\n0.96668,4.43213\n0.46864,1.53941\n0.17881,1.35825\n0.57524,1.73497\n0.29223,1.35080\n0.71750,2.24655\n0.76477,2.45535\n0.63550,1.86513\n0.64215,1.96030\n0.66330,1.89418\n0.33649,1.48853\n0.17136,1.33724\n0.75226,2.27785\n0.21904,1.24885\n0.31093,1.54910\n0.12976,1.23286\n0.01995,0.99609\n0.12844,1.48772\n0.84476,2.96866\n0.03711,1.38541\n0.07160,1.13950\n0.38483,1.49794\n0.77752,2.56430\n0.99307,4.86573\n0.22920,1.25673\n0.73364,2.34082\n0.12609,1.21498\n0.78152,2.53669\n0.85970,3.22446\n0.54714,1.64740\n0.93011,3.96790\n0.28108,1.26140\n0.76466,2.45848\n0.13964,1.33660\n0.02655,0.99581\n0.05590,1.15982\n0.38305,1.55975\n0.41941,1.47031\n0.63632,1.99441\n0.21367,1.51451\n0.89337,3.32190\n0.13081,1.22261\n0.23201,1.46020\n0.03652,0.84152\n0.96006,4.29975\n0.51437,1.50851\n0.17466,1.32122\n0.36830,1.53157\n0.71185,2.15880\n0.89060,3.51831\n0.14203,1.37355\n0.96510,4.52771\n0.02013,1.14905\n0.30265,1.40985\n0.68289,2.06309\n0.12203,1.11263\n0.09895,1.10092\n0.44939,1.58297\n0.14620,1.33949\n0.79519,2.63235\n0.42869,1.52209\n0.93565,4.06637\n0.64380,1.96707\n0.76211,2.39056\n0.76632,2.36752\n0.90586,3.83425\n0.89823,3.55962\n0.75974,2.29833\n0.90541,3.50922\n0.97980,4.70743\n0.19789,1.32603\n0.85825,3.07951\n0.96995,4.59681\n0.97678,4.65830\n0.28740,1.29453\n0.67602,1.88063\n0.34855,1.54495\n0.48441,1.69596\n0.49184,1.43509\n0.45272,1.45953\n0.92309,3.76912\n0.62703,1.70725\n0.94197,4.26839\n0.93966,3.95491\n0.42925,1.48023\n0.40741,1.83060\n0.75651,2.23004\n0.82208,2.68159\n0.37898,1.51256\n0.35974,1.42237\n0.83422,3.12002\n0.90729,3.63524\n0.63263,1.85892\n0.73878,2.38946\n0.68297,2.19121\n0.61795,1.88490\n0.73430,2.35320\n0.83024,2.74548\n0.06749,1.16563\n0.54323,1.59024\n0.06175,1.12280\n0.87951,3.11557\n0.06246,1.05580\n0.76297,2.34782\n0.97783,4.64393\n0.80613,2.45398\n0.78304,2.59631\n0.28248,1.40263\n0.84832,2.97208\n0.77382,2.51988\n0.26405,1.25600\n0.77518,2.55845\n0.90134,3.49940\n0.71413,2.19074\n0.42559,1.39801\n0.15779,1.39377\n0.17184,1.28161\n0.93430,4.11228\n0.54160,1.74250\n0.27775,1.45983\n0.04252,0.93351\n0.28385,1.29357\n0.60290,1.90517\n0.06745,1.07094\n0.66889,1.95047\n0.75019,2.51227\n0.65384,2.06434\n0.01231,0.91575\n0.37602,1.46617\n0.74643,2.35567\n0.03569,0.90210\n0.10863,1.10288\n0.40084,1.57689\n0.89543,3.53064\n0.47728,1.62108\n0.22834,1.48289\n0.26690,1.55020\n0.60345,1.83205\n0.42238,1.70671\n0.00006,0.94776\n0.46487,1.54995\n0.87391,3.25596\n0.30230,1.49820\n0.48796,1.56991\n0.07084,1.09346\n0.30409,1.49969\n0.50384,1.60175\n0.92009,3.81210\n0.45800,1.49228\n0.98410,4.54004\n0.52460,1.56843\n0.34955,1.50375\n0.96528,4.47339\n0.72443,2.42221\n0.15994,1.26525\n0.34073,1.44121\n0.38626,1.45308\n0.54602,1.78143\n0.01547,1.08179\n0.28183,1.50474\n0.89030,3.41224\n0.22543,1.38826\n0.85956,3.01994\n0.36494,1.45272\n0.99211,4.92128\n0.49750,1.50003\n0.12830,1.14254\n0.74458,1.98576\n0.26746,1.47110\n0.34279,1.29840\n0.12960,1.27638\n0.17718,1.37247\n0.28476,1.42685\n0.29301,1.58023\n0.36417,1.75639\n0.37045,1.43884\n0.28767,1.37826\n0.92982,3.79769\n0.57156,1.77925\n0.02903,1.04976\n0.36067,1.48630\n0.14652,1.17624\n0.91149,3.59974\n0.66582,2.00456\n0.20139,1.26752\n0.53160,1.87071\n0.22854,1.45141\n0.62732,1.68655\n0.86552,3.13193\n0.10126,1.02869\n0.91388,3.56623\n0.14544,1.22202\n0.01728,0.96755\n0.42536,1.54731\n0.52384,1.78985\n0.97780,4.59541\n0.75740,2.45900\n0.46736,1.60051\n0.01658,0.90601\n0.07880,1.30161\n0.41193,1.64310\n0.56018,1.64231\n0.78115,2.48735\n0.66676,2.04410\n0.60703,1.83505\n0.92421,3.87132\n0.72016,2.21209\n0.70458,2.05863\n0.80617,2.78430\n0.95657,4.31064\n0.80575,2.61857\n0.78104,2.64432\n0.39683,1.56108\n0.82206,2.82825\n0.05182,1.14978\n0.89265,3.49080\n0.00422,1.03635\n0.02403,1.16744\n0.97490,4.73423\n0.59144,1.82625\n0.22358,1.35808\n0.53364,1.56789\n0.43975,1.64269\n0.66288,2.00485\n0.67123,2.04880\n0.30862,1.37459\n0.66935,2.11261\n0.87415,3.24425\n0.54022,1.65220\n0.47183,1.55184\n0.87855,3.22884\n0.05496,0.92516\n0.21636,1.44625\n0.04846,1.10433\n0.30480,1.41107\n0.35488,1.43909\n0.91359,3.70380\n0.82274,3.02133\n0.79624,2.51508\n0.63807,1.83816\n0.04776,1.16115\n0.19333,1.30757\n0.70068,2.02466\n0.84389,3.11006\n0.06568,1.21972\n0.80131,2.77505\n0.53185,1.66457\n0.45478,1.53583\n0.09001,1.11609\n0.42877,1.48381\n0.81196,2.56328\n0.51347,1.70474\n0.44383,1.53776\n0.53157,1.88589\n0.16382,1.43717\n0.21480,1.27009\n0.76353,2.51912\n0.67076,2.00741\n0.09904,1.37083\n0.80310,2.67015\n0.46052,1.55600\n0.84257,2.92541\n0.26900,1.41365\n0.46880,1.79190\n0.14666,1.37914\n0.04580,1.18420\n0.63448,2.11328\n0.20409,1.44193\n0.43072,1.30240\n0.91047,3.49126\n0.78074,2.60575\n0.31450,1.23477\n0.79164,2.62751\n0.26372,1.50866\n0.06665,0.88306\n0.15717,1.39190\n0.22351,1.45621\n0.18737,1.28139\n0.13748,1.32999\n0.50104,1.66032\n0.94444,3.91742\n0.79275,2.60327\n0.04873,1.00248\n0.66707,2.12314\n0.63146,1.97596\n0.07501,1.20813\n0.15551,1.38393\n0.18459,1.43067\n0.83259,2.84042\n0.23994,1.22591\n0.50949,1.48243\n0.31659,1.19726\n0.03931,1.28296\n0.41647,1.48086\n0.65160,2.13302\n0.55770,1.74556\n0.26198,1.28509\n0.02173,1.03457\n0.24607,1.41450\n0.84758,3.06911\n0.85798,3.12207\n0.65076,1.98536\n0.27199,1.40138\n0.67960,2.14449\n0.59277,1.77230\n0.83432,3.08978\n0.29368,1.45554\n0.43149,1.60603\n0.87244,3.29277\n0.08551,0.99816\n0.62608,1.82435\n0.58182,1.87660\n0.68216,2.02783\n0.56226,1.69484\n0.79621,2.65361\n0.49953,1.57494\n0.60370,1.69933\n0.38188,1.37944\n0.00268,0.87874\n0.14799,1.17790\n0.87500,3.22432\n0.04300,1.12808\n0.21721,1.16325\n0.15500,1.25176\n0.04924,1.05820\n0.72522,2.27034\n0.78739,2.48822\n0.52979,1.59847\n0.48219,1.59652\n0.21946,1.31817\n0.37284,1.38050\n0.37536,1.63042\n0.86374,3.40648\n0.96577,4.51128\n0.89160,3.45037\n0.72331,2.19794\n0.26968,1.35310\n0.25171,1.43708\n0.78158,2.42997\n0.45508,1.52794\n0.53533,1.67684\n0.68276,2.07876\n0.61558,1.79318\n0.32017,1.42866\n0.34692,1.46259\n0.83161,2.91796\n0.95245,4.34958\n0.69077,2.21319\n0.55255,1.59000\n0.92614,3.97742\n0.19431,1.32494\n0.81881,2.62977\n0.03625,1.07698\n0.83305,2.96601\n0.38930,1.53037\n0.12994,1.30289\n0.32032,1.52860\n0.02372,1.07703\n0.51712,1.78036\n0.44114,1.45519\n0.17056,1.17879\n0.56433,1.75035\n0.98899,4.84702\n0.66031,1.97709\n0.43768,1.51886\n0.23300,1.33303\n0.48980,1.71796\n0.82205,2.74151\n0.75623,2.42352\n0.61198,1.81621\n0.54816,1.74816\n0.87192,3.03451\n0.86325,3.12456\n0.44132,1.72937\n0.42648,1.63350\n0.10003,1.29911\n0.35929,1.56266\n0.01168,1.10469\n0.81628,2.73105\n0.26842,1.38039\n0.51448,1.70393\n0.88169,3.36961\n0.89316,3.67940\n0.82889,2.81412\n0.17293,1.28217\n0.96395,4.28088\n0.75669,2.29267\n0.81844,2.86060\n0.62216,1.86607\n0.79759,2.55098\n0.06028,0.99377\n0.26675,1.43910\n0.75766,2.55003\n0.37798,1.54696\n0.95938,4.39471\n0.71892,2.20810\n0.41052,1.47900\n0.66743,2.11841\n0.37959,1.50047\n0.64228,1.84803\n0.30124,1.27458\n0.42175,1.60809\n0.74978,2.30437\n0.46927,1.51765\n0.46519,1.54022\n0.04517,0.97588\n0.14458,1.22747\n0.13850,1.23154\n0.92854,3.76019\n0.15426,1.11460\n0.21379,1.40249\n0.08421,1.14180\n0.88225,3.41503\n0.09692,1.15739\n0.67957,1.98050\n0.29483,1.25886\n0.26226,1.36811\n0.10767,1.13918\n0.86532,3.23789\n0.13553,1.04480\n0.85467,3.08945\n0.39997,1.41685\n0.16918,1.34962\n0.98976,4.93026\n0.57962,1.72826\n0.12402,1.09610\n0.47534,1.55570\n0.61863,1.95736\n0.41866,1.48886\n0.68976,2.14020\n0.32570,1.60473\n0.53549,1.74229\n0.08364,1.31941\n0.41824,1.50334\n0.85432,2.98946\n0.46934,1.64361\n0.53623,1.67923\n0.36841,1.47880\n0.04457,1.18288\n0.46503,1.60706\n0.58078,1.94748\n0.97660,4.47021\n0.37470,1.42761\n0.72204,2.16998\n0.75659,2.36068\n0.85034,3.17751\n0.55139,1.55096\n0.64598,1.93589\n0.02996,0.93385\n0.40041,1.42549\n0.33133,1.47603\n0.44010,1.61724\n0.62001,1.95832\n0.40289,1.82368\n0.06809,1.12260\n0.97572,4.64985\n0.46537,1.42605\n0.24683,1.52427\n0.22190,1.25283\n0.34120,1.64242\n0.40274,1.43989\n0.69901,2.12296\n0.04486,1.00524\n0.55879,1.88697\n0.43912,1.63006\n0.39601,1.57009\n0.86838,3.16934\n0.81826,2.89289\n0.80314,2.73085\n0.44663,1.58414\n0.35330,1.20278\n0.47795,1.69918\n0.06090,1.15753\n0.53265,1.65275\n0.97988,4.69805\n0.69308,2.06831\n0.73431,2.21836\n0.84776,3.08336\n0.27791,1.48026\n0.15951,1.20712\n0.53464,1.71538\n0.72052,2.20363\n0.44041,1.54439\n0.40127,1.54775\n0.51525,1.66106\n0.55487,1.75165\n0.47038,1.61332\n0.11933,1.35650\n0.19962,1.28320\n0.57484,1.68374\n0.50020,1.79310\n0.71918,2.12107\n0.72973,2.23277\n0.89707,3.38619\n0.12897,1.32103\n0.69405,2.04358\n0.25053,1.34632\n0.37664,1.38048\n0.52812,1.64980\n0.11145,1.10294\n0.55338,1.63207\n0.86404,3.16199\n0.19596,1.42788\n0.24402,1.44421\n0.42440,1.61974\n0.77404,2.70806\n0.75970,2.43484\n0.16595,1.10154\n0.60337,1.80684\n0.69307,1.83441\n0.46324,1.62197\n0.88177,3.23395\n0.80919,2.44934\n0.90353,3.64815\n0.11645,1.19414\n0.28150,1.22508\n0.75672,2.24317\n0.56388,1.73200\n0.38829,1.40791\n0.62085,1.76622\n0.64638,1.86479\n0.51651,1.60601\n0.80107,2.61475\n0.67355,2.12056\n0.00729,0.98395\n0.37233,1.53884\n0.01331,1.04942\n0.05030,1.31885\n0.47649,1.68630\n0.72003,2.24487\n0.07220,1.08080\n0.44771,1.60045\n0.12911,1.14997\n0.27461,1.36837\n0.63949,1.78789\n0.61197,1.88286\n0.73951,2.31845\n0.71692,2.15493\n0.40663,1.59185\n0.70769,2.13174\n0.32895,1.35396\n0.57336,1.77007\n0.67033,1.88279\n0.49921,1.63044\n0.41885,1.53856\n0.62376,1.88780\n0.47391,1.57601\n0.94994,4.02878\n0.51962,1.85072\n0.11358,1.15550\n0.30836,1.54160\n0.99072,4.85775\n0.24710,1.32875\n0.22734,1.15513\n0.47385,1.55639\n0.48754,1.70149\n0.17636,1.27093\n0.32669,1.42216\n0.47350,1.53098\n0.51858,1.72323\n0.17916,1.31203\n0.06601,1.02308\n0.72803,2.36192\n0.75075,2.45626\n0.53143,1.78287\n0.71926,2.21756\n0.15980,1.35759\n0.88310,3.30843\n0.20067,1.34549\n0.16546,1.14912\n0.97149,4.41311\n0.64566,1.86173\n0.83003,2.78527\n0.16399,1.35181\n0.08192,1.29680\n0.39617,1.55092\n0.57625,1.77432\n0.42480,1.50765\n0.16280,1.23386\n0.61495,1.88603\n0.55320,1.63987\n0.91238,3.71710\n0.18712,1.33746\n0.29046,1.48291\n0.89857,3.55126\n0.32679,1.43422\n0.99898,4.91947\n0.69129,2.12099\n0.04601,1.05922\n0.79984,2.79735\n0.02003,1.07757\n0.48333,1.83362\n0.25635,1.37743\n0.55678,1.65618\n0.60242,1.95437\n0.06629,1.22173\n0.08162,1.12901\n0.49373,1.69178\n0.69900,2.05732\n0.82419,2.99429\n0.54253,1.66778\n0.25982,1.44159\n0.95157,4.25014\n0.10509,1.15703\n0.88353,3.46510\n0.34264,1.45648\n0.12778,1.11294\n0.88788,3.59239\n0.93537,4.02946\n0.36448,1.40220\n0.69002,2.17145\n0.07898,1.14176\n0.60671,1.96789\n0.54377,1.78806\n0.15944,1.20146\n0.32705,1.38078\n0.57498,1.61463\n0.65679,1.82918\n0.08961,0.97362\n0.73562,2.15922\n0.83454,2.82229\n0.16841,1.26622\n0.63109,1.84140\n0.77374,2.37419\n0.87977,3.34694\n0.14109,1.25276\n0.12368,0.99428\n0.74198,2.27980\n0.46524,1.66505\n0.73473,2.20418\n0.61679,1.83558\n0.18037,1.22119\n0.82064,2.67545\n0.70483,2.31744\n0.21519,1.40427\n0.78974,2.57394\n0.51992,1.51601\n0.02389,0.95403\n0.43562,1.42941\n0.26510,1.27596\n0.60962,1.74924\n0.89790,3.35982\n0.02846,1.15450\n0.56141,1.62971\n0.87866,3.20216\n0.30586,1.39483\n0.74820,2.43105\n0.20370,1.25199\n0.23859,1.31589\n0.98951,4.94059\n0.00394,0.82372\n0.09675,1.21267\n0.08785,1.19426\n0.28391,1.42093\n0.25647,1.31727\n0.24664,1.16471\n0.22789,1.31897\n0.57227,1.75119\n0.97910,4.41665\n0.40426,1.54982\n0.69985,2.08841\n0.81290,2.71257\n0.24837,1.48817\n0.88275,3.25766\n0.50446,1.64144\n0.32140,1.58137\n0.82877,2.88400\n0.46547,1.54904\n0.85231,3.18944\n0.71403,2.14485\n0.36510,1.34218\n0.22354,1.42295\n0.51845,1.51039\n0.95289,4.12440\n0.32804,1.32889\n0.94484,3.99594\n0.64866,1.80288\n0.59922,1.89131\n0.97494,4.59819\n0.56356,1.93064\n0.79445,2.63568\n0.83993,2.81281\n0.28451,1.39044\n0.70454,2.34088\n0.33408,1.33950\n0.96186,4.43561\n0.92286,3.81949\n0.76085,2.14064\n0.65770,1.95780\n0.00832,0.79072\n0.52152,1.62772\n0.74300,2.31425\n0.41294,1.46957\n0.19223,1.14370\n0.69929,2.04385\n0.40626,1.36138\n0.88361,3.22476\n0.02298,1.24192\n0.80900,2.76144\n0.45836,1.42533\n0.28120,1.43387\n0.09746,1.19071\n0.54410,1.77869\n0.34218,1.37417\n0.08345,1.13257\n0.46040,1.63887\n0.13363,1.29570\n0.52033,1.42802\n0.68794,1.84076\n0.66388,1.96772\n0.75753,2.24742\n0.00972,1.01061\n0.39262,1.58464\n0.80924,2.61943\n0.35227,1.46672\n0.01850,1.09227\n0.56520,1.78759\n0.10283,1.26169\n0.36778,1.61184\n0.17544,1.24818\n0.88994,3.58124\n0.01598,1.01565\n0.80046,2.68408\n0.68131,2.15704\n0.93374,4.10070\n0.06979,1.18476\n0.01124,1.12964\n0.82563,3.00991\n0.87688,3.42229\n0.56575,1.72061\n0.34757,1.33681\n0.52843,1.74563\n0.82885,2.69484\n0.27444,1.55849\n0.53207,1.76383\n0.68685,1.96406\n0.55021,1.67195\n0.03641,0.88023\n0.40659,1.52582\n0.95687,4.16648\n0.65656,1.98535\n0.75038,2.38960\n0.00606,0.95379\n0.74902,2.25347\n0.40575,1.37304\n0.32422,1.51428\n0.55112,1.70637\n0.07991,1.00057\n0.93538,3.80547\n0.73119,2.15830\n0.33652,1.46204\n0.88135,3.32343\n0.37555,1.47794\n0.13807,1.04621\n0.90506,3.54636\n0.26027,1.46308\n0.97469,4.49781\n0.76795,2.47606\n0.88043,3.48331\n0.06327,1.07432\n0.65798,1.91250\n0.51050,1.57368\n0.84736,2.85548\n0.27920,1.36338\n0.75899,2.21177\n0.87163,3.18042\n0.93032,3.78868\n0.21395,1.37563\n0.03587,1.20583\n0.76131,2.36455\n0.62579,1.82077\n0.60510,1.81419\n0.25110,1.22971\n0.69532,2.03654\n0.00378,0.99510\n0.63368,1.87701\n0.49479,1.64777\n0.06176,1.12830\n0.48884,1.58700\n0.31473,1.36215\n0.62312,1.75671\n0.86628,3.22036\n0.31779,1.43750\n0.82679,2.75183\n0.28518,1.43347\n0.97083,4.53806\n0.67586,2.08846\n0.44140,1.61690\n0.66568,1.96632\n0.43946,1.43428\n0.23863,1.47780\n0.15205,1.21792\n0.17777,1.21701\n0.81940,2.76638\n0.06898,1.15532\n0.50715,1.47149\n0.75653,2.42254\n0.76072,2.51627\n0.67315,2.02417\n0.10592,1.06692\n0.64413,1.87498\n0.72436,2.12186\n0.16734,1.16647\n0.51510,1.58115\n0.32594,1.57712\n0.47973,1.66928\n0.84303,3.11192\n0.28584,1.35219\n0.40594,1.68243\n0.82237,2.75612\n0.51434,1.69546\n0.56124,1.74911\n0.97425,4.50197\n0.25973,1.45425\n0.38359,1.52194\n0.32126,1.43653\n0.47418,1.47587\n0.86614,3.05454\n0.86077,3.08810\n0.07540,1.01115\n0.66722,2.11065\n0.54577,1.55027\n0.44187,1.51120\n0.99532,4.72800\n0.11413,1.22853\n0.71343,2.24085\n0.02878,0.94856\n0.35609,1.58550\n0.92316,3.99659\n0.52487,1.57531\n0.20979,1.26483\n0.35828,1.42238\n0.91574,3.57376\n0.09442,1.30554\n0.86318,3.15627\n0.15481,0.99421\n0.18039,1.30273\n0.85804,3.11691\n0.51904,1.67822\n0.95878,4.42468\n0.72616,2.19213\n0.79159,2.55305\n0.32373,1.42851\n0.11218,1.14393\n0.98315,4.42780\n0.42968,1.47884\n0.49886,1.62557\n0.63120,1.92354\n0.38525,1.35760\n0.12807,1.31296\n0.94204,4.11879\n0.72004,2.32006\n0.02421,1.13098\n0.73320,2.36033\n0.63124,1.91953\n0.70794,2.10209\n0.38241,1.45637\n0.61932,1.81724\n0.74127,2.33919\n0.29338,1.45946\n0.27679,1.16992\n0.13541,1.15305\n0.83222,2.87219\n0.89690,3.46643\n0.28632,1.25492\n0.22927,1.05886\n0.16031,1.33485\n0.44320,1.54482\n0.64063,1.85027\n0.07308,1.14680\n0.01180,0.97559\n0.35390,1.43965\n0.12799,1.12526\n0.43382,1.57768\n0.53351,1.88348\n0.08257,1.12216\n0.90022,3.39481\n0.97298,4.46269\n0.75262,2.31143\n0.05527,1.10244\n0.28217,1.39119\n0.03191,0.89328\n0.91223,3.55738\n0.08929,0.98457\n0.29342,1.43313\n0.31855,1.53757\n0.80789,2.82751\n0.04749,1.00233\n0.75447,2.35110\n0.75998,2.28988\n0.21747,1.23610\n0.74152,2.48607\n0.37876,1.48069\n0.60467,1.79849\n0.60996,1.82522\n0.89155,3.47694\n0.85533,3.17641\n0.42060,1.52687\n0.06357,1.24966\n0.12155,1.23158\n0.23212,1.39331\n0.58455,1.57357\n0.05802,1.14582\n0.48833,1.70886\n0.38587,1.46969\n0.98320,4.60762\n0.05858,1.22718\n0.06164,1.10982\n0.44327,1.53318\n0.22102,1.17934\n0.06452,1.11558\n0.51803,1.74045\n0.80025,2.58939\n0.38271,1.52844\n0.53895,1.57539\n0.95985,4.31165\n0.67078,1.98166\n0.79082,2.52329\n0.58194,1.71830\n0.79336,2.61512\n0.12339,1.33198\n0.35589,1.43871\n0.45174,1.55810\n0.07741,1.01905\n0.68847,2.02428\n0.43652,1.48291\n0.01278,0.97996\n0.76531,2.48236\n0.31951,1.53001\n0.47410,1.48046\n0.75506,2.25281\n0.70254,2.06877\n0.59516,1.74492\n0.67843,1.91443\n0.76295,2.46287\n0.16657,1.34177\n0.19135,1.22255\n0.36826,1.57614\n0.02777,0.97124\n0.36864,1.44730\n0.99203,4.74880\n0.12579,1.18350\n0.90428,3.50452\n0.75030,2.46610\n0.91666,3.60544\n0.45268,1.49938\n0.96935,4.65766\n0.08325,0.76323\n0.97437,4.56526\n0.08628,1.13695\n0.01826,1.03544\n0.63881,1.97137\n0.69625,2.01266\n0.90082,3.53401\n0.75006,2.51010\n0.11729,1.07810\n0.57664,1.61245\n0.23820,1.27462\n0.30091,1.44699\n0.97724,4.65740\n0.18389,1.19802\n0.16814,1.14092\n0.75142,2.31507\n0.57555,1.65766\n0.34597,1.53963\n0.92056,3.83306\n0.62950,1.86618\n0.21283,1.17612\n0.08998,1.09970\n0.49491,1.56803\n0.35044,1.39116\n0.61558,1.76740\n0.76474,2.59067\n0.47163,1.47221\n0.75532,2.23283\n0.27914,1.36905\n0.46924,1.56138\n0.41188,1.62142\n0.60560,1.80219\n0.16395,1.32453\n0.03896,0.89414\n0.44485,1.56768\n0.39377,1.54339\n0.49690,1.51224\n0.26551,1.45350\n0.04538,1.05254\n0.34520,1.38719\n0.39822,1.52011\n0.75528,2.36988\n0.25136,1.40330\n0.35835,1.35323\n0.65561,1.76291\n0.06932,1.08708\n0.68346,1.95309\n0.33847,1.36707\n0.73603,2.15846\n0.13166,1.35137\n0.18278,1.32962\n0.42749,1.57476\n0.12878,1.33768\n0.89389,3.41568\n0.08077,1.16046\n0.70435,2.12514\n0.27682,1.37856\n0.07947,1.24231\n0.88198,3.21679\n0.87291,3.14348\n0.55675,1.88756\n0.94031,3.94545\n0.19131,1.06974\n0.82574,2.89931\n0.59498,1.63140\n0.46616,1.71239\n0.70526,2.14504\n0.43806,1.54717\n0.38285,1.62462\n0.91381,3.55210\n0.05530,1.24033\n0.78854,2.49184\n0.65179,2.01782\n0.86202,3.29030\n0.14991,1.16102\n0.53341,1.59169\n0.49456,1.79967\n0.70059,2.18273\n0.77561,2.57639\n0.03058,1.12832\n0.81261,2.51086\n0.61539,1.74420\n0.33629,1.49608\n0.67106,1.89488\n0.09944,1.22083\n0.63530,1.79865\n0.25200,1.34818\n0.42682,1.40862\n0.81836,2.72126\n0.09999,1.13158\n0.49868,1.69445\n0.07027,1.17260\n0.91430,4.03260\n0.80421,2.57516\n0.85855,3.11573\n0.49092,1.62855\n0.16105,1.38869\n0.88684,3.34044\n0.63293,1.81067\n0.81846,2.69219\n0.49692,1.58305\n0.53110,1.51585\n0.49225,1.86129\n0.82189,3.01431\n0.29441,1.40673\n0.45499,1.47576\n0.97253,4.49901\n0.75288,2.28640\n0.97866,4.65710\n0.65723,1.92970\n0.80063,2.71130\n0.69481,2.22535\n0.08410,1.04350\n0.44569,1.57834\n0.49285,1.72569\n0.67584,1.83819\n0.17681,1.17061\n0.49673,1.80934\n0.91070,3.52853\n0.53339,1.60000\n0.09458,1.18552\n0.29305,1.28854\n0.66189,2.02411\n0.24897,1.40972\n0.33877,1.50416\n0.19620,1.06100\n0.82540,2.76189\n0.25898,1.40620\n0.00382,0.94407\n0.65975,1.92218\n0.36699,1.57288\n0.63938,1.98639\n0.26542,1.25069\n0.08404,0.98060\n0.82772,2.99610\n0.96738,4.24141\n0.70005,2.14576\n0.29002,1.47404\n0.94664,4.05856\n0.06127,1.10666\n0.59882,1.61674\n0.39435,1.62139\n0.72915,2.22451\n0.98336,4.86372\n0.35773,1.41850\n0.79650,2.70833\n0.00113,1.08230\n0.73988,2.27665\n0.20528,1.17906\n0.20990,1.25056\n0.17797,1.31614\n0.48103,1.53167\n0.94724,4.25468\n0.08085,1.33292\n0.12768,1.28611\n0.06543,1.09555\n0.58020,1.77028\n0.91961,3.64159\n0.80544,2.67194\n0.63406,1.73478\n0.11295,1.10285\n0.27415,1.45950\n0.93806,4.04054\n0.19050,1.43081\n0.33644,1.46971\n0.32433,1.37355\n0.36959,1.46651\n0.19487,1.21774\n0.15641,1.19105\n0.96026,4.19646\n0.94307,4.13952\n0.62555,1.92539\n0.58765,1.67154\n0.02732,1.17394\n0.52687,1.67428\n0.91008,3.66901\n0.11178,1.04834\n0.99466,4.95699\n0.62788,1.96298\n0.38078,1.33023\n0.60304,1.96454\n0.13134,1.22871\n0.47398,1.60962\n0.80110,2.53753\n0.85888,3.07852\n0.09125,1.11880\n0.95686,4.24263\n0.37047,1.39008\n0.59749,1.60065\n0.93758,4.06934\n0.32603,1.40747\n0.00645,1.04213\n0.89385,3.49395\n0.76328,2.21471\n0.60807,1.83620\n0.77343,2.32911\n0.74176,2.49795\n0.70529,1.95084\n0.69510,2.08355\n0.35035,1.39550\n0.98138,4.67331\n0.23281,1.22869\n0.09088,1.11136\n0.97346,4.37224\n0.75700,2.45159\n0.84210,2.92727\n0.92252,3.73405\n0.44748,1.61371\n0.18931,1.25525\n0.01462,1.02159\n0.42410,1.45074\n0.66463,1.79569\n0.92686,3.68028\n0.31206,1.53948\n0.65556,1.94549\n0.74226,2.41634\n0.23743,1.44747\n0.27551,1.44388\n0.41321,1.56800\n0.16308,1.29841\n0.09234,1.28294\n0.58712,1.84865\n0.71231,2.12457\n0.48678,1.63158\n0.59688,1.77513\n0.42832,1.49282\n0.31451,1.42750\n0.00975,0.91303\n0.37166,1.47492\n0.64483,1.82583\n0.75717,2.24236\n0.06165,1.00301\n0.30534,1.33344\n0.65878,1.83704\n0.05299,0.99309\n0.49380,1.69436\n0.06067,1.04037\n0.41326,1.56675\n0.50347,1.63843\n0.86021,3.23612\n0.66396,1.94602\n0.30593,1.48417\n0.67793,1.92694\n0.78289,2.58931\n0.17220,1.30906\n0.94503,4.07573\n0.97565,4.55276\n0.77936,2.56252\n0.84534,2.89544\n0.10656,1.27069\n0.01661,1.03604\n0.41756,1.49470\n0.90652,3.65880\n0.11429,1.16936\n0.11568,1.22306\n0.29883,1.44439\n0.56019,1.65754\n0.46356,1.64332\n0.14573,1.36128\n0.23862,1.22979\n0.18803,1.46136\n0.78521,2.41531\n0.79497,2.63927\n0.68748,1.98905\n0.57452,1.72368\n0.41480,1.68905\n0.19514,1.35324\n0.70542,2.06842\n0.16184,1.27477\n0.96098,4.29016\n0.53499,1.87257\n0.75542,2.24818\n0.97418,4.55240\n0.08541,1.10088\n0.07865,1.13069\n0.43503,1.50251\n0.19018,1.18491\n0.15543,1.25436\n0.93503,3.84927\n0.60583,1.89176\n0.14425,1.22375\n0.64271,1.76431\n0.13094,1.17978\n0.60879,1.77749\n0.15491,1.02600\n0.22652,1.42613\n0.81630,2.74882\n0.95150,4.22241\n0.45240,1.62803\n0.13527,1.33359\n0.29747,1.44495\n0.21390,1.23917\n0.90649,3.57330\n0.76992,2.39453\n0.74848,2.51655\n0.58856,1.76199\n0.69749,2.02904\n0.04486,1.01363\n0.27477,1.46135\n0.99600,4.95958\n0.36536,1.46912\n0.35484,1.44801\n0.77211,2.48280\n0.37371,1.35863\n0.00915,1.03526\n0.89399,3.62216\n0.45371,1.62412\n0.42487,1.54725\n0.77748,2.49370\n0.65546,1.85143\n0.90144,3.61231\n0.65127,1.89189\n0.39809,1.51412\n0.07273,1.10082\n0.67457,1.97337\n0.43898,1.52845\n0.44567,1.70416\n0.80605,2.67505\n0.63233,1.80722\n0.88459,3.34050\n0.31069,1.52954\n0.19232,1.19439\n0.11022,1.24214\n0.17461,1.45192\n0.88921,3.58833\n0.99916,4.86594\n0.76185,2.44921\n0.27178,1.38655\n0.92135,3.77677\n0.84531,2.88419\n0.78427,2.51249\n0.03386,1.17182\n0.30054,1.28618\n0.95935,4.23328\n0.74701,2.50314\n0.26937,1.39879\n0.49518,1.61344\n0.49766,1.76024\n0.44813,1.48309\n0.70249,2.09012\n0.35467,1.49913\n0.86137,3.28571\n0.98769,4.76152\n0.71734,2.21664\n0.67472,2.11657\n0.03782,0.99898\n0.46388,1.49416\n0.40698,1.45338\n0.15557,1.33333\n0.61466,1.84299\n0.36950,1.52955\n0.17149,1.28347\n0.72994,2.00530\n0.30635,1.45617\n0.45819,1.61036\n0.00756,0.89845\n0.89413,3.57412\n0.68336,1.97086\n0.60785,1.83555\n0.15788,1.24878\n0.94034,4.03682\n0.85204,3.25398\n0.33426,1.49943\n0.09851,1.29841\n0.08844,1.11595\n0.52993,1.78615\n0.17973,1.11831\n0.22792,1.44261\n0.73081,2.32918\n0.06315,1.16353\n0.18081,1.12358\n0.20604,1.33903\n0.55279,1.71218\n0.41729,1.79837\n0.03976,1.02451\n0.64842,1.89712\n0.63142,1.90964\n0.17834,1.26690\n0.29895,1.27822\n0.29415,1.30105\n0.07478,1.13432\n0.98411,4.82202\n0.04999,1.03762\n0.06329,1.25789\n0.00786,0.96452\n0.18118,1.35347\n0.82502,2.78891\n0.41063,1.57417\n0.72406,2.17696\n0.50830,1.60764\n0.44096,1.46720\n0.67254,2.12778\n0.43871,1.65834\n0.63323,2.02181\n0.30277,1.31181\n0.59662,1.96134\n0.61256,1.79988\n0.30386,1.58501\n0.01408,1.02689\n0.94415,4.17938\n0.90594,3.77139\n0.48181,1.66284\n0.64028,1.75727\n0.71038,2.11026\n0.59538,1.92965\n0.99345,4.77595\n0.13806,1.26762\n0.81839,2.81905\n0.50927,1.52850\n0.28611,1.47078\n0.08469,1.09336\n0.52086,1.74076\n0.19031,1.34603\n0.74606,2.25035\n0.45301,1.72924\n0.67971,2.01415\n0.24686,1.33831\n0.95384,4.24146\n0.37757,1.62680\n0.92613,4.03802\n0.76685,2.29881\n0.14872,1.34928\n0.26285,1.39455\n0.55801,1.75196\n0.16146,1.26450\n0.28222,1.45505\n0.71546,2.12368\n0.36477,1.31983\n0.80306,2.75189\n0.39362,1.48301\n0.21553,1.34699\n0.04544,1.11796\n0.94819,4.01366\n0.62127,1.76536\n0.71389,2.30166\n0.60254,1.77100\n0.69211,2.09965\n0.45871,1.53629\n0.98694,4.75097\n0.96859,4.32414\n0.06932,1.21876\n0.49399,1.58465\n0.77158,2.19270\n0.31192,1.61934\n0.43853,1.37069\n0.25220,1.50285\n0.72950,2.20525\n0.84193,2.93520\n0.63210,1.87985\n0.97753,4.66241\n0.97418,4.62546\n0.11891,1.00442\n0.33962,1.60731\n0.58398,1.72122\n0.17855,1.25178\n0.21195,1.24960\n0.78769,2.78724\n0.48718,1.56599\n0.82107,2.81001\n0.57961,1.83363\n0.29018,1.60270\n0.74008,2.35753\n0.68183,1.98893\n0.31422,1.25609\n0.16835,1.05339\n0.81353,2.80971\n0.38981,1.54528\n0.90819,3.47263\n0.99185,4.98950\n0.30726,1.39325\n0.72557,2.39200\n0.32298,1.50207\n0.89482,3.47183\n0.20407,1.30410\n0.33305,1.34396\n0.30327,1.47271\n0.48258,1.40631\n0.34942,1.36042\n0.70105,2.11412\n0.68727,2.07841\n0.00527,1.19155\n0.19330,1.26940\n0.29817,1.33989\n0.94318,4.22496\n0.68692,2.12152\n0.51368,1.64925\n0.56273,1.77440\n0.42974,1.38779\n0.94169,4.09393\n0.85952,3.08711\n0.59033,1.65741\n0.81029,2.54805\n0.97544,4.64855\n0.37718,1.50965\n0.98563,4.87135\n0.47185,1.70789\n0.98914,4.74694\n0.68663,2.14305\n0.46366,1.51040\n0.39202,1.39071\n0.52477,1.63537\n0.95504,4.41339\n0.79997,2.58837\n0.50011,1.46628\n0.81904,2.74941\n0.42076,1.45761\n0.44973,1.51490\n0.27334,1.26507\n0.51358,1.67858\n0.74686,2.34917\n0.35604,1.34417\n0.14956,1.39692\n0.20759,1.19185\n0.38456,1.55962\n0.70550,2.26130\n0.52243,1.75266\n0.60807,1.84436\n0.04672,1.02848\n0.30449,1.21486\n0.84733,2.98084\n0.13215,1.16648\n0.22682,1.44682\n0.69088,2.05602\n0.83694,2.83647\n0.68939,2.03508\n0.65083,2.07437\n0.28025,1.42387\n0.28793,1.50688\n0.51328,1.65283\n0.28907,1.39527\n0.68530,2.16262\n0.80514,2.71135\n0.18865,1.28940\n0.44803,1.74324\n0.63873,2.00330\n0.60740,1.93026\n0.03778,0.99136\n0.09513,1.30406\n0.95452,4.35287\n0.13806,1.19610\n0.39012,1.60412\n0.80838,2.54023\n0.87559,3.30143\n0.52830,1.55514\n0.32957,1.50968\n0.90032,3.56050\n0.05775,1.09131\n0.32068,1.41198\n0.34863,1.60447\n0.42292,1.45115\n0.01848,1.18279\n0.66480,2.12277\n0.53570,1.56623\n0.48972,1.56452\n0.18322,1.41536\n0.05194,1.03512\n0.60185,1.81418\n0.24057,1.45861\n0.03696,1.07019\n0.14654,1.04728\n0.69709,1.89616\n0.41589,1.58343\n0.38978,1.36781\n0.43603,1.49794\n0.02825,0.91753\n0.49966,1.67716\n0.14616,1.29629\n0.55448,1.65015\n0.94187,3.97797\n0.24418,1.28503\n0.37643,1.35060\n0.50140,1.74293\n0.76843,2.52488\n0.84168,3.00792\n0.02602,1.03786\n0.59008,1.73076\n0.29740,1.36221\n0.25755,1.32451\n0.97239,4.44714\n0.90532,3.52977\n0.84222,2.94417\n0.46323,1.62957\n0.24078,1.33400\n0.77302,2.38902\n0.10052,1.24227\n0.62494,1.79309\n0.78126,2.47750\n0.56589,1.75930\n0.59703,1.64529\n0.81854,2.69571\n0.29332,1.40382\n0.37584,1.50077\n0.96875,4.54423\n0.84748,3.06246\n0.42794,1.65831\n0.22662,1.34555\n0.73011,2.29829\n0.10098,1.25792\n0.35931,1.48053\n0.10767,1.15779\n0.44940,1.56329\n0.16939,1.19901\n0.70529,1.89950\n0.14380,1.24439\n0.48717,1.45323\n0.94975,4.32429\n0.23742,1.31462\n0.70074,2.11848\n0.86724,3.16585\n0.33807,1.61231\n0.53808,1.71301\n0.22801,1.37456\n0.43932,1.53761\n0.85873,3.12240\n0.78205,2.59634\n0.64020,2.05472\n0.88139,3.18368\n0.02591,0.96428\n0.80293,2.61570\n0.07924,1.04031\n0.93222,4.04715\n0.13142,1.17363\n0.17317,1.33600\n0.20674,1.30823\n0.45252,1.73157\n0.90712,3.67957\n0.23193,1.38068\n0.79858,2.57262\n0.86869,3.17324\n0.57245,1.50094\n0.35228,1.51814\n0.84978,3.03956\n0.76558,2.29772\n0.74542,2.39564\n0.65606,1.92414\n0.74762,2.25490\n0.89646,3.46335\n0.88503,3.49858\n0.07572,1.06395\n0.93869,4.11197\n0.01085,1.04463\n0.69436,2.05552\n0.30447,1.46309\n0.37125,1.47322\n0.85557,3.19875\n0.04419,0.98299\n0.17202,1.18879\n0.03559,1.18969\n0.64245,1.79748\n0.67240,2.02682\n0.44778,1.58968\n0.51681,1.73768\n0.23577,1.19817\n0.76580,2.45440\n0.10402,1.25858\n0.96440,4.37023\n0.48902,1.67204\n0.00837,1.14109\n0.09072,1.22935\n0.55385,1.59566\n0.44498,1.61639\n0.92695,3.94231\n0.35141,1.39536\n0.53418,1.53242\n0.54479,1.71401\n0.55090,1.63725\n0.74697,2.39035\n0.84595,3.10075\n0.20799,1.31281\n0.34170,1.36281\n0.72485,2.37815\n0.29254,1.34789\n0.32801,1.35151\n0.10728,1.05834\n0.12311,1.17445\n0.95483,4.16073\n0.70942,2.24515\n0.56631,1.61533\n0.72593,2.11052\n0.58929,1.75636\n0.22152,1.29464\n0.49018,1.69679\n0.80801,2.72832\n0.26823,1.45743\n0.30362,1.50289\n0.15001,1.26364\n0.01627,0.93233\n0.97934,4.60745\n0.92231,3.77799\n0.29323,1.57141\n0.09495,1.19685\n0.19558,1.19277\n0.10454,1.24264\n0.93217,4.05235\n0.89689,3.56363\n0.98177,4.58913\n0.01856,1.11437\n0.92107,3.74523\n0.48426,1.55645\n0.33214,1.42463\n0.07416,1.20672\n0.77673,2.68248\n0.57429,1.49765\n0.60391,1.93814\n0.15291,1.18732\n0.83080,2.81680\n0.66290,1.93492\n0.77964,2.60333\n0.96708,4.50216\n0.49905,1.66003\n0.19404,1.19305\n0.82097,2.87668\n0.32229,1.42428\n0.46488,1.53213\n0.09667,1.28431\n0.98454,4.78547\n0.44286,1.41726\n0.95544,4.25594\n0.62027,1.81592\n0.30256,1.27501\n0.92359,3.83941\n0.30616,1.34926\n0.09673,1.12448\n0.08793,1.08607\n0.94218,4.10093\n0.29800,1.36370\n0.61034,1.90600\n0.53119,1.73500\n0.31988,1.28790\n0.13426,1.20070\n0.37698,1.31130\n0.22807,1.16772\n0.46989,1.82045\n0.68394,2.10631\n0.60321,1.83218\n0.91112,3.78051\n0.74688,2.39291\n0.70127,2.16513\n0.73739,2.09758\n0.25664,1.57036\n0.59158,1.79144\n0.57824,1.61251\n0.69165,2.08371\n0.06648,1.09583\n0.58125,1.67560\n0.57083,1.63666\n0.94996,4.07117\n0.42275,1.52930\n0.50905,1.49716\n0.40711,1.44924\n0.51670,1.57604\n0.06842,1.04170\n0.75672,2.26666\n0.78156,2.47549\n0.73934,2.32066\n0.78965,2.85136\n0.63275,1.91410\n0.34661,1.28407\n0.13877,1.20995\n0.92328,3.81116\n0.76734,2.56759\n0.00027,0.95386\n0.08489,1.22750\n0.14152,1.26196\n0.84244,2.90577\n0.27409,1.58616\n0.01094,1.07678\n0.77162,2.49063\n0.75351,2.27638\n0.59650,1.64175\n0.35075,1.25718\n0.00406,0.94373\n0.01703,0.96616\n0.35685,1.50065\n0.79981,2.76667\n0.39270,1.57320\n0.29518,1.31179\n0.01803,1.05597\n0.83528,2.98085\n0.52816,1.78263\n0.07610,0.99515\n0.21804,1.58671\n0.72257,2.22260\n0.64138,1.87196\n0.53442,1.74096\n0.43519,1.46310\n0.47648,1.69236\n0.45886,1.54870\n0.04911,0.90648\n0.16046,1.16325\n0.27590,1.35529\n0.66115,2.02650\n0.52387,1.54284\n0.15176,0.95910\n0.42475,1.45935\n0.63535,1.95904\n0.79692,2.65086\n0.80575,2.59078\n0.67617,2.03364\n0.55454,1.67563\n0.16487,1.31288\n0.21339,1.53909\n0.60336,1.87115\n0.29771,1.35714\n0.09334,1.24774\n0.63956,1.98033\n0.03433,1.14430\n0.10494,1.23409\n0.87361,3.31799\n0.73019,1.95993\n0.76308,2.40455\n0.49883,1.55878\n0.44203,1.72423\n0.02575,1.06324\n0.56750,1.66077\n0.16944,1.19347\n0.65317,2.08796\n0.92538,3.69859\n0.08079,1.01354\n0.89813,3.57016\n0.28406,1.44844\n0.45551,1.45816\n0.90189,3.68607\n0.30126,1.46650\n0.13390,1.24185\n0.97199,4.36572\n0.07259,1.20486\n0.44895,1.51611\n0.59838,1.71750\n0.47114,1.60356\n0.21613,1.37779\n0.12867,1.42716\n0.29337,1.09009\n0.71071,2.03758\n0.60865,1.68002\n0.58505,1.75541\n0.51007,1.63749\n0.76155,2.48186\n0.38598,1.53492\n0.59740,1.83546\n0.24354,1.21050\n0.47463,1.49565\n0.20428,1.22990\n0.69436,2.07473\n0.05818,1.26142\n0.37189,1.56613\n0.63868,1.84793\n0.60130,1.81735\n0.38354,1.49601\n0.81072,2.60121\n0.85330,3.09502\n0.44766,1.77641\n0.87553,3.39215\n0.91402,3.89400\n0.08434,1.23402\n0.78201,2.56541\n0.04468,1.08653\n0.83972,3.15169\n0.50547,1.68989\n0.16651,1.38413\n0.88261,3.22261\n0.63356,2.02486\n0.00033,1.05920\n0.12194,1.32412\n0.95170,4.16599\n0.68944,2.15994\n0.81501,2.79516\n0.33743,1.34710\n0.51022,1.84833\n0.33424,1.45766\n0.31267,1.57330\n0.24287,1.35876\n0.00215,1.10215\n0.64518,1.90552\n0.57426,1.70731\n0.89901,3.66003\n0.12216,1.12124\n0.75206,2.45643\n0.51307,1.50303\n0.86442,3.14194\n0.67545,2.00092\n0.72931,2.24351\n0.06348,1.28152\n0.40618,1.71750\n0.14074,1.26089\n0.86098,3.07616\n0.17527,1.16288\n0.92499,3.98261\n0.35374,1.62698\n0.54598,1.79820\n0.84831,2.96981\n0.27418,1.20545\n0.75223,2.41432\n0.41682,1.57099\n0.33699,1.44171\n0.40279,1.49175\n0.30900,1.31849\n0.97607,4.64353\n0.75265,2.40975\n0.59336,1.71299\n0.94564,4.06493\n0.23549,1.43547\n0.68375,2.06467\n0.30406,1.55383\n0.37841,1.63061\n0.92717,3.91156\n0.79270,2.52702\n0.92477,3.78567\n0.41275,1.35148\n0.72220,2.10001\n0.83113,2.95739\n0.73719,2.23109\n0.97162,4.62783\n0.18512,1.31656\n0.38166,1.45662\n0.48911,1.59796\n0.57810,1.84559\n0.43816,1.63796\n0.74761,2.29277\n0.16916,1.25217\n0.40074,1.64811\n0.14803,1.17124\n0.41556,1.67319\n0.31273,1.35259\n0.65041,1.87413\n0.00653,0.97269\n0.74102,2.35446\n0.76703,2.49633\n0.70487,2.11633\n0.64122,1.96900\n0.43746,1.66691\n0.63430,1.96032\n0.61910,1.87211\n0.04559,1.22262\n0.95815,4.42182\n0.35879,1.49670\n0.74303,2.31924\n0.81424,2.62605\n0.02188,1.03748\n0.14836,1.06476\n0.56810,1.82264\n0.03516,1.03548\n0.08776,1.14451\n0.24737,1.43101\n0.48414,1.66320\n0.36071,1.47519\n0.43578,1.50465\n0.10334,1.22734\n0.64268,1.77482\n0.96141,4.15001\n0.55614,1.89958\n0.15739,1.22973\n0.82109,2.89598\n0.84832,2.94214\n0.44340,1.55022\n0.25734,1.53556\n0.27794,1.34290\n0.26036,1.31015\n0.62674,1.87874\n0.92479,3.83287\n0.65122,2.01850\n0.09048,1.15552\n0.04477,1.22856\n0.54057,1.66946\n0.08907,1.21093\n0.55071,1.65347\n0.36799,1.42769\n0.95430,4.20091\n0.82211,2.70034\n0.94603,3.91527\n0.08629,1.08955\n0.49012,1.53245\n0.43260,1.59699\n0.41983,1.73899\n0.12958,1.17903\n0.59548,1.93410\n0.51974,1.61268\n0.15043,1.29743\n0.30981,1.43796\n0.07766,1.23177\n0.93212,3.87174\n0.28526,1.41909\n0.15096,1.40922\n0.49089,1.62955\n0.36927,1.41057\n0.95908,4.26544\n0.03765,1.14634\n0.54775,1.83519\n0.91847,3.79009\n0.05484,1.05930\n0.58262,1.74213\n0.75676,2.37105\n0.86353,3.17992\n0.58620,1.62790\n0.14480,1.28694\n0.65221,1.93491\n0.85847,3.17745\n0.63131,2.02029\n0.79102,2.60612\n0.50183,1.45799\n0.35778,1.33906\n0.11608,1.30527\n0.98314,4.49325\n0.99870,4.86026\n0.57526,1.73908\n0.76373,2.35387\n0.60411,1.87664\n0.51306,1.67946\n0.85717,3.19710\n0.80369,2.72399\n0.84747,3.15184\n0.85706,3.08707\n0.27492,1.20017\n0.26018,1.54157\n0.30734,1.41582\n0.51963,1.57065\n0.25387,1.24569\n0.76276,2.41518\n0.40462,1.47202\n0.94981,4.10344\n0.81470,2.65074\n0.67999,1.99476\n0.45842,1.66765\n0.19280,1.27203\n0.92107,3.74673\n0.68587,1.98607\n0.10530,1.13096\n0.14539,1.37753\n0.14249,1.18509\n0.94813,4.14571\n0.31701,1.36911\n0.04991,1.10857\n0.69127,1.99219\n0.71579,2.21970\n0.14114,1.12881\n0.84363,2.85736\n0.36887,1.59985\n0.81229,2.66415\n0.75713,2.32991\n0.55761,1.79992\n0.77702,2.42316\n0.84176,2.93808\n0.39335,1.41212\n0.96602,4.43085\n0.94834,4.26490\n0.98655,4.92691\n0.39205,1.46784\n0.60326,1.85839\n0.45499,1.61736\n0.33859,1.32873\n0.22129,1.35966\n0.37112,1.29832\n0.77166,2.50452\n0.06193,1.30834\n0.80288,2.70046\n0.90373,3.49094\n0.71720,2.25510\n0.59225,1.87191\n0.66515,2.05699\n0.18658,1.32355\n0.45580,1.50075\n0.26999,1.44196\n0.06203,1.13800\n0.70554,2.05839\n0.58362,1.72181\n0.46381,1.67653\n0.77734,2.55153\n0.95842,4.27686\n0.31352,1.51281\n0.22231,1.31726\n0.67549,1.96364\n0.73760,2.30712\n0.21308,1.34267\n0.60083,1.81716\n0.42143,1.72849\n0.09903,1.02728\n0.98394,4.70588\n0.26952,1.31894\n0.07825,1.00944\n0.54788,1.55650\n0.48607,1.66989\n0.69645,2.06218\n0.56719,1.81284\n0.99869,4.86083\n0.36072,1.57048\n0.42298,1.45027\n0.26989,1.50572\n0.70917,2.36258\n0.20742,1.42159\n0.43019,1.44497\n0.90411,3.64505\n0.32060,1.42499\n0.03089,1.28118\n0.75243,2.27103\n0.90567,3.52595\n0.82500,2.82090\n0.28449,1.35508\n0.55412,1.67584\n0.17522,1.36940\n0.23184,1.35524\n0.94966,4.16146\n0.53604,1.80560\n0.52989,1.86614\n0.90196,3.46804\n0.69200,2.05201\n0.26057,1.26880\n0.32686,1.42914\n0.98027,4.79587\n0.89282,3.50519\n0.04915,1.21008\n0.67892,1.73796\n0.85606,3.34240\n0.89796,3.50327\n0.41122,1.64429\n0.70552,2.04085\n0.20203,1.26144\n0.07057,1.15190\n0.31684,1.30374\n0.94808,4.25516\n0.09025,1.03172\n0.40184,1.45471\n0.16686,1.24486\n0.75680,2.43766\n0.42700,1.60555\n0.05407,1.11895\n0.09045,1.04048\n0.06904,1.18879\n0.30297,1.45828\n0.20723,1.29290\n0.29697,1.27389\n0.82623,2.80874\n0.61606,1.82280\n0.35064,1.33943\n0.50296,1.57477\n0.70716,2.14577\n0.81464,2.72045\n0.34102,1.42368\n0.75853,2.31634\n0.93601,3.98615\n0.12754,1.26230\n0.13525,1.24177\n0.04153,0.86182\n0.21192,1.52799\n0.70298,2.05178\n0.59201,1.77612\n0.16603,1.34125\n0.64725,1.81876\n0.72450,2.17680\n0.83287,2.78889\n0.98448,4.83551\n0.59066,1.74267\n0.00626,1.09780\n0.59368,1.80928\n0.30436,1.35597\n0.45914,1.57066\n0.02535,1.04091\n0.64666,1.79905\n0.72959,2.08676\n0.08809,1.15649\n0.14872,1.26236\n0.48647,1.41310\n0.53220,1.66870\n0.34869,1.31014\n0.98901,4.71201\n0.44365,1.55249\n0.70800,1.97789\n0.70513,2.13501\n0.51358,1.68753\n0.10473,1.21467\n0.01853,1.04378\n0.64941,1.89767\n0.43181,1.56413\n0.65757,2.12494\n0.21748,1.36941\n0.08593,1.03132\n0.04794,1.08353\n0.83900,2.94628\n0.62387,1.78689\n0.10544,1.15798\n0.13931,1.34103\n0.84281,3.06760\n0.86384,3.14302\n0.71593,2.32533\n0.29081,1.16704\n0.12072,1.21920\n0.78937,2.44095\n0.51853,1.47883\n0.58214,1.89600\n0.21691,1.43915\n0.22147,1.46786\n0.14697,1.27708\n0.66984,2.08971\n0.95849,4.41294\n0.57386,1.59853\n0.49959,1.59305\n0.48555,1.74243\n0.95331,4.06038\n0.40184,1.52417\n0.92209,3.97657\n0.24651,1.27259\n0.46471,1.45174\n0.75728,2.32572\n0.80959,2.81724\n0.76645,2.37601\n0.33499,1.35469\n0.34310,1.43030\n0.81921,2.74974\n0.74561,2.30108\n0.85015,3.18435\n0.59156,1.81748\n0.69809,2.30183\n0.99905,5.00544\n0.19807,1.28375\n0.12917,1.08831\n0.57679,1.68854\n0.04737,1.19706\n0.58713,1.85512\n0.83517,2.73945\n0.42562,1.40455\n0.01895,1.15418\n0.59591,1.79152\n0.48420,1.66194\n0.49522,1.58802\n0.07324,0.94033\n0.06605,1.13203\n0.95734,4.22615\n0.10428,1.10251\n0.00242,0.93690\n0.63128,1.92868\n0.69302,2.02401\n0.03541,1.08391\n0.11014,1.16637\n0.76927,2.52700\n0.83939,2.86131\n0.44533,1.56842\n0.94765,4.03516\n0.20612,1.25763\n0.58834,1.67469\n0.67945,1.97629\n0.62975,1.99836\n0.98416,4.83966\n0.68601,2.07824\n0.42593,1.34331\n0.12280,1.12300\n0.27757,1.46220\n0.65383,1.89067\n0.85088,2.90839\n0.32383,1.46442\n0.13117,1.33471\n0.54019,1.54674\n0.86110,3.04578\n0.22802,1.29338\n0.40127,1.67817\n0.24738,1.42640\n0.82209,2.72127\n0.11600,1.00386\n0.95075,4.19048\n0.67674,1.97325\n0.24522,1.32375\n0.04902,1.18420\n0.86264,3.08364\n0.45024,1.31446\n0.11643,1.19514\n0.87245,3.25286\n0.03664,1.25517\n0.68195,1.84153\n0.33419,1.43950\n0.45658,1.62598\n0.65579,1.87177\n0.82296,2.66775\n0.40607,1.52555\n0.75465,2.49318\n0.40913,1.57572\n0.88752,3.42990\n0.76581,2.54612\n0.27561,1.38813\n0.56610,1.84296\n0.63305,1.74818\n0.11769,1.05421\n0.87305,3.22473\n0.38421,1.39071\n0.22534,1.30400\n0.54054,1.57350\n0.09702,1.04652\n0.80378,2.77452\n0.82615,2.89580\n0.14536,1.23138\n0.59731,1.81983\n0.30398,1.48353\n0.29312,1.39106\n0.69792,2.06397\n0.30860,1.21772\n0.22820,1.28056\n0.45587,1.82862\n0.77787,2.51563\n0.45972,1.44295\n0.34678,1.30217\n0.78452,2.64473\n0.72154,2.28281\n0.39776,1.31732\n0.26395,1.26853\n0.95076,4.37721\n0.45934,1.67686\n0.48790,1.46773\n0.94591,4.11576\n0.39146,1.41452\n0.49400,1.71720\n0.84122,2.89273\n0.90136,3.47362\n0.98339,4.61410\n0.22130,1.21352\n0.35048,1.60613\n0.64120,1.80150\n0.17382,1.40523\n0.71875,2.14817\n0.47370,1.56979\n0.88678,3.27951\n0.05792,1.03763\n0.89193,3.59146\n0.43184,1.53604\n0.59552,1.84727\n0.88967,3.46564\n0.14340,1.35980\n0.59787,1.57827\n0.89378,3.65761\n0.60442,1.83470\n0.50646,1.75658\n0.59098,1.74573\n0.88937,3.29455\n0.56431,1.70588\n0.46978,1.54126\n0.51078,1.61061\n0.10379,1.00257\n0.07377,1.05183\n0.46213,1.48152\n0.76713,2.27990\n0.73965,2.13020\n0.01589,0.96393\n0.95382,4.17161\n0.99029,4.77135\n0.23063,1.36735\n0.07692,0.95125\n0.77234,2.51412\n0.34758,1.36460\n0.54352,1.66956\n0.81980,2.60225\n0.55256,1.68343\n0.03382,0.97565\n0.12255,1.17884\n0.06283,1.11718\n0.40908,1.53818\n0.80438,2.72374\n0.12474,1.30922\n0.80438,2.82223\n0.84336,2.75288\n0.47298,1.46417\n0.51476,1.81815\n0.66323,1.91326\n0.85704,3.00215\n0.40397,1.39906\n0.28308,1.46851\n0.39511,1.49413\n0.63745,1.83113\n0.17539,1.23021\n0.00663,1.12550\n0.26688,1.47430\n0.42823,1.54573\n0.17572,1.22627\n0.99806,5.02135\n0.49419,1.50009\n0.08052,1.07455\n0.38153,1.44067\n0.93731,4.07952\n0.59432,1.75981\n0.96629,4.35986\n0.44123,1.54180\n0.28333,1.59720\n0.21239,1.22908\n0.64652,1.80072\n0.73571,2.24405\n0.89533,3.44584\n0.03733,1.09637\n0.60513,1.86368\n0.80681,2.82779\n0.96611,4.49560\n0.50009,1.71991\n0.81661,2.76199\n0.96778,4.57587\n0.86491,3.19899\n0.45402,1.52794\n0.99420,4.88860\n0.13080,1.27731\n0.58415,1.81107\n0.16844,1.38386\n0.69924,2.12406\n0.73702,2.03480\n0.07503,1.19289\n0.58626,1.58330\n0.36951,1.40669\n0.22953,1.40887\n0.09547,1.28365\n0.70646,2.25635\n0.12557,1.23627\n0.27373,1.21565\n0.15256,1.23614\n0.07222,1.18894\n0.01108,0.98544\n0.57689,1.72248\n0.91613,3.72014\n0.58561,1.85077\n0.18537,1.30025\n0.90899,3.71381\n0.38874,1.61688\n0.81039,2.66495\n0.41050,1.37410\n0.16537,1.35286\n0.48735,1.71214\n0.87202,3.07509\n0.36729,1.52268\n0.59125,1.55474\n0.14360,1.17488\n0.48447,1.71758\n0.64399,1.71571\n0.43674,1.64442\n0.91073,3.87223\n0.65995,2.05721\n0.14286,1.40045\n0.30495,1.38361\n0.54590,1.71258\n0.29478,1.36865\n0.76848,2.39551\n0.02740,1.19640\n0.03986,1.10498\n0.60709,1.84655\n0.81847,2.61006\n0.17237,1.22342\n0.98128,4.78055\n0.96469,4.50396\n0.49477,1.56561\n0.75572,2.23975\n0.63326,1.80168\n0.77110,2.43490\n0.07409,1.22312\n0.21302,1.35896\n0.24268,1.20207\n0.45798,1.44791\n0.18314,1.35617\n0.45607,1.63534\n0.45292,1.76031\n0.02753,0.90600\n0.31716,1.27028\n0.68920,2.23629\n0.61215,1.64258\n0.66547,1.89187\n0.56733,1.72690\n0.17857,1.26904\n0.18851,1.32290\n0.11357,1.07642\n0.35032,1.30328\n0.37847,1.47808\n0.58461,1.83290\n0.87062,3.23170\n0.29667,1.48482\n0.67139,1.94286\n0.50598,1.65445\n0.84666,3.17505\n0.64890,1.96192\n0.87591,3.34470\n0.42239,1.62794\n0.81774,2.83000\n0.70638,2.14915\n0.36090,1.59126\n0.82060,2.91975\n0.95259,4.23308\n0.38696,1.55221\n0.08040,1.18571\n0.30969,1.25435\n0.65860,1.85356\n0.98794,4.79884\n0.24685,1.44075\n0.41238,1.49615\n0.47323,1.61386\n0.52034,1.38023\n0.96147,4.33498\n0.53823,1.68643\n0.55037,1.84491\n0.59911,1.63519\n0.90213,3.69145\n0.30885,1.49616\n0.99133,4.85242\n0.97980,4.50602\n0.73846,2.30553\n0.49611,1.55064\n0.74662,2.20716\n0.60106,1.99483\n0.14628,1.24157\n0.04400,1.15948\n0.64392,1.95129\n0.55442,1.62668\n0.49471,1.59244\n0.53327,1.51130\n0.81595,2.73307\n0.50381,1.67495\n0.26885,1.56236\n0.93647,4.08123\n0.19156,1.21673\n0.77430,2.45355\n0.00918,1.11462\n0.39848,1.45997\n0.84987,3.10439\n0.39056,1.46140\n0.20559,1.09220\n0.41417,1.36497\n0.91898,3.79181\n0.85609,3.04864\n0.94080,4.07975\n0.33479,1.54171\n0.80609,2.62645\n0.03150,0.84467\n0.14503,1.16983\n0.22674,1.42022\n0.51044,1.61416\n0.75432,2.36593\n0.01908,1.01925\n0.22290,1.35292\n0.82009,2.72424\n0.40036,1.61545\n0.99698,4.84624\n0.29327,1.39962\n0.84611,2.94538\n0.51565,1.59802\n0.35480,1.55502\n0.96078,4.42555\n0.58788,1.77714\n0.39526,1.57595\n0.63451,2.03560\n0.10837,1.20790\n0.71584,2.16691\n0.57654,1.68599\n0.39967,1.54885\n0.90955,3.68786\n0.27173,1.39203\n0.47004,1.60308\n0.06348,0.84561\n0.35465,1.41320\n0.85247,2.93443\n0.08739,1.18083\n0.93113,3.73617\n0.41780,1.52934\n0.88086,3.21905\n0.40273,1.33712\n0.38486,1.55633\n0.06780,1.15443\n0.55842,1.77351\n0.00864,1.14386\n0.68655,2.00518\n0.62610,1.92639\n0.22850,1.23111\n0.71690,2.01685\n0.86565,3.16961\n0.39829,1.35859\n0.06186,1.14931\n0.16627,1.05253\n0.75228,2.42251\n0.96385,4.22008\n0.24109,1.44459\n0.45769,1.72699\n0.94144,4.21795\n0.89347,3.46952\n0.64024,1.88985\n0.40319,1.50317\n0.45861,1.56387\n0.12413,1.19271\n0.18058,1.11311\n0.58776,1.85096\n0.68700,2.06089\n0.56064,1.70306\n0.72801,2.18152\n0.23815,1.37833\n0.08204,0.92213\n0.62415,1.88940\n0.87325,3.40622\n0.85744,3.11767\n0.71727,2.25544\n0.56474,1.72828\n0.47659,1.66679\n0.63571,1.77607\n0.25406,1.27084\n0.51585,1.55925\n0.80609,2.65992\n0.67559,2.06697\n0.99536,4.86582\n0.48007,1.58691\n0.89519,3.34976\n0.19525,1.14090\n0.23401,1.30219\n0.63826,1.84902\n0.25588,1.25358\n0.81157,2.78478\n0.36907,1.31801\n0.61094,1.75979\n0.51082,1.65329\n0.09913,1.50276\n0.46001,1.67719\n0.85690,3.07907\n0.88922,3.44953\n0.15603,1.35518\n0.05508,1.12720\n0.78489,2.49622\n0.80891,2.54813\n0.80017,2.64005\n0.56259,1.50910\n0.25711,1.42789\n0.61446,2.06268\n0.88017,3.33935\n0.86746,3.05392\n0.77594,2.63046\n0.80086,2.48294\n0.09666,1.13038\n0.45963,1.70363\n0.86614,3.13734\n0.57974,1.70926\n0.85682,3.09888\n0.10212,1.24497\n0.63178,1.96124\n0.05404,1.08248\n0.77965,2.45640\n0.10502,1.00283\n0.10153,1.09229\n0.47983,1.46201\n0.18795,1.22196\n0.30238,1.25255\n0.27777,1.32343\n0.29087,1.36034\n0.22027,1.36726\n0.98248,4.64231\n0.37461,1.32108\n0.06198,1.14547\n0.15375,1.32001\n0.52593,1.67977\n0.69450,2.07362\n0.09840,0.81631\n0.51804,1.69552\n0.02170,1.02236\n0.62731,1.68648\n0.43072,1.43562\n0.00350,1.03478\n0.66217,1.94188\n0.06114,1.01719\n0.50701,1.68564\n0.38389,1.44968\n0.62029,1.87542\n0.10786,1.03185\n0.36809,1.36851\n0.93213,3.86673\n0.78996,2.73088\n0.07767,1.22368\n0.33210,1.40506\n0.86298,2.97722\n0.25508,1.36799\n0.05370,1.09940\n0.89124,3.42078\n0.81753,2.83179\n0.21582,1.39428\n0.21623,1.20479\n0.75894,2.39496\n0.12595,1.32983\n0.92288,3.83324\n0.63190,1.69677\n0.66899,1.98739\n0.13846,1.39043\n0.21050,1.41392\n0.10671,1.05103\n0.62675,1.89134\n0.85566,3.00618\n0.15535,1.38851\n0.22940,1.34575\n0.12341,1.22381\n0.30096,1.43029\n0.70865,2.16520\n0.82645,2.77697\n0.53784,1.74803\n0.40965,1.54686\n0.66407,1.96998\n0.84635,2.85003\n0.21056,1.32111\n0.43205,1.60306\n0.97726,4.55911\n0.32945,1.37703\n0.10127,1.11674\n0.38617,1.67314\n0.56982,1.68163\n0.94090,4.06168\n0.94116,4.07444\n0.55649,1.80329\n0.55599,1.50413\n0.88842,3.20233\n0.38115,1.46812\n0.31180,1.40802\n0.86950,3.07878\n0.41874,1.74830\n0.99912,4.79998\n0.50710,1.62977\n0.93794,4.15430\n0.45861,1.50440\n0.04203,1.13789\n0.59411,1.87256\n0.96741,4.43640\n0.48673,1.65985\n0.58851,1.75915\n0.96698,4.54323\n0.67988,2.13435\n0.84637,3.06948\n0.20087,1.29167\n0.02746,0.96939\n0.38716,1.52192\n0.80408,2.69028\n0.68547,1.98307\n0.43341,1.29132\n0.67586,2.22518\n0.28280,1.35414\n0.50992,1.60301\n0.36332,1.51577\n0.70965,2.12367\n0.33602,1.52289\n0.05089,1.12606\n0.49457,1.60495\n0.74523,2.28487\n0.77203,2.52671\n0.92426,3.90341\n0.27933,1.35467\n0.24639,1.35656\n0.45011,1.58803\n0.66920,1.93638\n0.58498,1.66057\n0.52985,1.69582\n0.21786,1.31021\n0.77974,2.43000\n0.09055,1.19542\n0.37420,1.33542\n0.24076,1.29996\n0.08041,1.17197\n0.73774,2.18364\n0.70153,2.29161\n0.05608,1.04016\n0.96006,4.34328\n0.61061,1.88023\n0.51176,1.55389\n0.12402,1.25899\n0.53389,1.46022\n0.44755,1.46689\n0.50340,1.55415\n0.55143,1.69532\n0.37882,1.58890\n0.84337,3.07985\n0.49874,1.74148\n0.88442,3.36156\n0.54072,1.58177\n0.68333,2.11940\n0.97444,4.50003\n0.11289,1.17258\n0.98608,4.87834\n0.92671,3.82210\n0.42836,1.54492\n0.92747,3.76039\n0.88498,3.46701\n0.27721,1.44030\n0.00556,0.95244\n0.55527,1.63552\n0.57233,1.73505\n0.32723,1.42639\n0.01458,1.00455\n0.35981,1.43894\n0.19034,1.23379\n0.14039,1.16488\n0.30819,1.44613\n0.39290,1.49373\n0.73995,2.39955\n0.71945,2.46664\n0.38061,1.45449\n0.63889,1.77319\n0.28664,1.47090\n0.47968,1.66710\n0.74720,2.40090\n0.68833,2.22598\n0.13279,1.23266\n0.52158,1.49619\n0.31473,1.53480\n0.03932,0.97362\n0.78778,2.47801\n0.21437,1.48955\n0.61084,1.82332\n0.74922,2.25225\n0.33270,1.23517\n0.23747,1.41303\n0.13803,1.24175\n0.04374,1.15490\n0.60694,1.88646\n0.43224,1.51735\n0.56599,1.92365\n0.82573,2.69852\n0.56556,1.74166\n0.84218,2.96929\n0.10207,1.28740\n0.61100,1.86092\n0.99367,4.87133\n0.14989,1.36456\n0.35031,1.39501\n0.35185,1.63330\n0.57440,1.69443\n0.06825,1.10651\n0.24507,1.20912\n0.47087,1.67064\n0.73980,2.32363\n0.81358,2.60725\n0.56581,1.66554\n0.46412,1.52632\n0.18109,1.30806\n0.11630,1.33388\n0.82838,2.83051\n0.49356,1.51660\n0.10653,1.24485\n0.95281,4.29430\n0.76763,2.46155\n0.41723,1.59623\n0.54608,1.67233\n0.49913,1.77485\n0.92902,3.88106\n0.44245,1.56852\n0.86067,3.15517\n0.01604,1.22621\n0.73945,2.38347\n0.88407,3.34938\n0.63804,2.06554\n0.98643,4.75441\n0.56613,1.82056\n0.21676,1.26075\n0.36391,1.45833\n0.47120,1.48759\n0.67712,1.93208\n0.89997,3.57045\n0.56783,1.65389\n0.64040,1.93466\n0.17548,1.41015\n0.01879,0.92341\n0.79402,2.76856\n0.22081,1.36944\n0.50447,1.86749\n0.76347,2.47566\n0.24978,1.13431\n0.96224,4.28211\n0.60438,1.88572\n0.63680,1.82139\n0.76443,2.40171\n0.16207,1.30477\n0.76805,2.40899\n0.76656,2.50003\n0.62326,1.77291\n0.27030,1.31113\n0.29998,1.46884\n0.30032,1.35816\n0.73089,2.24126\n0.01356,1.03842\n0.10423,1.18239\n0.85064,3.10023\n0.17392,1.24938\n0.35745,1.54386\n0.44864,1.42405\n0.95541,4.22997\n0.79923,2.61204\n0.14362,1.37559\n0.56654,1.58457\n0.26215,1.40611\n0.73471,2.23827\n0.00604,1.06218\n0.48872,1.65832\n0.92643,3.77754\n0.01703,0.87993\n0.22095,1.40387\n0.12238,1.35580\n0.26730,1.32759\n0.06406,0.98532\n0.88037,3.24225\n0.08198,1.25747\n0.98472,4.53042\n0.58066,1.85361\n0.23803,1.21560\n0.60173,1.80024\n0.43688,1.47871\n0.26144,1.40034\n0.31458,1.51316\n0.36251,1.47550\n0.23226,1.33667\n0.50240,1.86556\n0.92749,3.86648\n0.24377,1.39628\n0.38540,1.29272\n0.61102,1.88810\n0.38757,1.42840\n0.18504,1.40060\n0.29996,1.60386\n0.66869,2.08130\n0.20842,1.21614\n0.10613,1.29477\n0.05034,0.93774\n0.18051,1.19839\n0.25994,1.26976\n0.42798,1.56679\n0.69642,2.20012\n0.33978,1.36255\n0.07956,1.28311\n0.41593,1.54611\n0.87315,3.16302\n0.67734,2.04456\n0.86439,3.13733\n0.32608,1.49062\n0.70732,2.12712\n0.11167,1.30795\n0.97156,4.74208\n0.24056,1.32733\n0.88693,3.38366\n0.99993,4.97111\n0.31652,1.28387\n0.24625,1.19551\n0.78155,2.56945\n0.82471,2.80752\n0.61543,1.88174\n0.10881,1.16383\n0.82108,2.79259\n0.63054,1.92659\n0.03096,0.89807\n0.73723,2.16659\n0.10740,1.22532\n0.85475,2.98303\n0.58953,1.68890\n0.01304,0.98379\n0.62623,1.83685\n0.86917,3.19291\n0.46985,1.51301\n0.69425,2.06985\n0.84130,2.83604\n0.46793,1.37567\n0.34488,1.48958\n0.81180,2.79253\n0.16309,1.29517\n0.64562,2.10541\n0.98315,4.69481\n0.71049,2.23636\n0.75889,2.42031\n0.46843,1.39878\n0.47245,1.54504\n0.19619,1.55062\n0.33907,1.41732\n0.86398,3.09370\n0.74116,2.38485\n0.62987,1.71999\n0.67564,1.95373\n0.93133,3.86939\n0.74552,2.19637\n0.19118,1.51771\n0.76231,2.48284\n0.42457,1.67995\n0.11045,1.13440\n0.91104,3.55386\n0.06402,1.17688\n0.79821,2.70326\n0.66404,1.89050\n0.16689,1.36376\n0.83137,2.71031\n0.86138,3.10593\n0.33112,1.57568\n0.99507,4.98692\n0.95003,4.18824\n0.14083,1.16222\n0.45902,1.56106\n0.20403,1.39293\n0.07347,1.12836\n0.80892,2.62648\n0.61651,1.96512\n0.94484,4.06987\n0.08053,1.26388\n0.79204,2.61005\n0.33679,1.59155\n0.05588,0.98326\n0.10184,1.25846\n0.02395,1.01853\n0.31463,1.63803\n0.28754,1.35742\n0.07422,1.37878\n0.77781,2.60752\n0.62346,1.83971\n0.53309,1.82298\n0.36626,1.39855\n0.31105,1.39614\n0.89175,3.42882\n0.08743,1.22204\n0.53255,1.72495\n0.73349,2.17869\n0.04235,1.09185\n0.51579,1.60557\n0.39417,1.63389\n0.43915,1.54275\n0.08718,1.07278\n0.80289,2.76066\n0.98917,4.80742\n0.12138,1.35110\n0.47251,1.58310\n0.69694,2.01981\n0.79869,2.44419\n0.58829,1.90202\n0.77939,2.48020\n0.71237,2.27559\n0.26497,1.39461\n0.76984,2.54654\n0.74517,2.35545\n0.94843,4.21563\n0.48928,1.75025\n0.80957,2.84414\n0.21400,1.41043\n0.63747,1.85196\n0.69228,2.01549\n0.12847,1.20869\n0.01554,0.94165\n0.38147,1.57440\n0.64855,2.07210\n0.19376,1.21393\n0.22119,1.15240\n0.20486,1.42046\n0.42824,1.72805\n0.60322,1.57215\n0.07428,1.20851\n0.60610,1.70804\n0.12782,0.99146\n0.07952,1.09533\n0.92510,3.72691\n0.52951,1.47444\n0.24832,1.29072\n0.96910,4.70603\n0.37857,1.64469\n0.47324,1.70513\n0.68735,1.99264\n0.36183,1.38033\n0.74782,2.28767\n0.65024,1.85019\n0.03118,1.14865\n0.99692,5.02356\n0.86031,3.22859\n0.51846,1.69077\n0.37444,1.47730\n0.70201,2.03452\n0.78423,2.58354\n0.59562,1.68079\n0.79757,2.57304\n0.50482,1.64312\n0.29295,1.51190\n0.59309,1.69743\n0.30415,1.43859\n0.02202,0.96795\n0.91541,3.76081\n0.89959,3.54957\n0.28460,1.42746\n0.50349,1.35376\n0.07252,1.27893\n0.14843,1.16470\n0.63516,1.95115\n0.19932,1.31757\n0.34487,1.48948\n0.85357,3.04395\n0.00700,0.95435\n0.88582,3.48059\n0.53621,1.60367\n0.01559,1.17605\n0.98897,4.87901\n0.64123,2.10345\n0.99824,4.85933\n0.04307,1.09979\n0.57157,1.70146\n0.80378,2.75739\n0.50856,1.60980\n0.24266,1.47223\n0.76948,2.53792\n0.68826,2.00767\n0.91406,3.60310\n0.56623,1.80978\n0.54816,1.44970\n0.14588,1.15377\n0.44112,1.58443\n0.19204,1.41250\n0.01396,1.04125\n0.96746,4.47105\n0.70001,1.97777\n0.81098,2.77637\n0.13311,1.29195\n0.01955,0.97472\n0.07300,1.21418\n0.19492,1.23411\n0.42763,1.58658\n0.08092,1.22432\n0.07147,1.23890\n0.65626,1.96235\n0.42147,1.55305\n0.23765,1.33403\n0.01425,0.94454\n0.54522,1.80628\n0.37757,1.45947\n0.35230,1.43770\n0.41204,1.70602\n0.52546,1.76296\n0.42503,1.56671\n0.27582,1.37007\n0.83356,2.84038\n0.81987,2.65397\n0.57777,1.78371\n0.05378,1.20835\n0.04300,1.00364\n0.74335,2.40182\n0.70724,1.93223\n0.75189,2.38120\n0.86294,3.12977\n0.62729,2.00514\n0.05512,1.05548\n0.25832,1.50573\n0.30481,1.43014\n0.59226,1.86492\n0.63021,1.99202\n0.97146,4.51906\n0.69774,2.18112\n0.48061,1.66024\n0.95380,4.16136\n0.44348,1.71581\n0.05288,0.89737\n0.54370,1.58880\n0.67452,1.90557\n0.97575,4.57545\n0.20169,1.39547\n0.06824,0.86517\n0.80149,2.78343\n0.67197,1.84737\n0.28462,1.38211\n0.99119,4.63937\n0.14834,1.31687\n0.51544,1.62740\n0.55333,1.64283\n0.67368,2.18374\n0.77912,2.69814\n0.81016,2.96399\n0.06041,1.04820\n0.27184,1.36789\n0.33192,1.53569\n0.96609,4.51807\n0.76720,2.42209\n0.01452,1.13579\n0.50883,1.59636\n0.94285,4.17667\n0.44280,1.49557\n0.38206,1.54829\n0.65026,2.07659\n0.07563,1.09754\n0.22201,1.35283\n0.71825,2.35639\n0.88080,3.30299\n0.30479,1.51854\n0.85305,3.03698\n0.62620,1.69826\n0.18997,1.35989\n0.74571,2.37641\n0.31261,1.46989\n0.12170,1.08922\n0.35027,1.26734\n0.27829,1.28087\n0.54406,1.69547\n0.36437,1.60759\n0.95943,4.24622\n0.05252,1.04992\n0.81501,2.81284\n0.17806,1.25341\n0.77240,2.30461\n0.89797,3.52380\n0.30815,1.34336\n0.94675,4.03989\n0.85552,3.08960\n0.15002,1.36216\n0.56658,1.73848\n0.87382,3.20418\n0.89070,3.60260\n0.29808,1.43703\n0.73606,2.18819\n0.08263,1.10811\n0.55279,1.71550\n0.68967,2.06058\n0.20286,1.28978\n0.97529,4.74559\n0.93511,3.92226\n0.12600,1.22052\n0.70529,2.21679\n0.11915,1.07810\n0.97303,4.63961\n0.26844,1.19791\n0.12743,1.12552\n0.78997,2.71573\n0.22769,1.44104\n0.74409,2.10491\n0.95547,4.40620\n0.61697,1.96832\n0.03139,1.26427\n0.82393,2.89899\n0.29533,1.13155\n0.44074,1.47275\n0.34669,1.37165\n0.25213,1.36698\n0.56921,1.81340\n0.24037,1.42055\n0.56518,1.78264\n0.96275,4.14728\n0.87683,3.29151\n0.65532,1.87439\n0.25311,1.35962\n0.95959,4.21162\n0.89499,3.52237\n0.41475,1.39760\n0.31048,1.57326\n0.40801,1.34708\n0.26499,1.32468\n0.50313,1.64595\n0.95036,4.09332\n0.25009,1.40166\n0.76589,2.45975\n0.33787,1.48425\n0.97066,4.58927\n0.17325,1.21738\n0.90581,3.47192\n0.07385,1.04288\n0.63795,1.85188\n0.69678,2.11239\n0.30627,1.42447\n0.33750,1.39659\n0.48933,1.61619\n0.61908,1.95776\n0.12995,1.07115\n0.17354,1.22623\n0.96448,4.43609\n0.74018,2.34071\n0.37014,1.61121\n0.85292,3.10927\n0.24787,1.40658\n0.11723,1.36508\n0.59097,1.77823\n0.54401,1.57825\n0.02274,0.97926\n0.10808,1.15033\n0.77474,2.35183\n0.17688,1.43509\n0.57769,1.74706\n0.69235,1.98165\n0.37153,1.61450\n0.59626,1.90187\n0.67940,2.08698\n0.67228,1.89909\n0.59086,1.90589\n0.45243,1.76024\n0.60342,1.86263\n0.68447,2.12213\n0.66107,1.95485\n0.07479,1.26292\n0.75952,2.61184\n0.21909,1.21159\n0.51163,1.52494\n0.46405,1.45238\n0.40974,1.52145\n0.48012,1.78988\n0.18033,1.39664\n0.55418,1.75456\n0.83939,2.79219\n0.76425,2.43860\n0.38536,1.43827\n0.70788,1.95250\n0.06542,1.03814\n0.53590,1.80802\n0.32179,1.39857\n0.12657,1.24596\n0.98667,4.59875\n0.96510,4.31510\n0.64538,1.97774\n0.67448,2.05277\n0.52237,1.53570\n0.85338,3.00789\n0.26806,1.31935\n0.00577,0.90608\n0.98258,4.69384\n0.95180,4.35726\n0.79177,2.57925\n0.61284,1.81894\n0.48451,1.72780\n0.44225,1.58694\n0.71812,2.25966\n0.35181,1.29849\n0.73160,2.13845\n0.73033,2.31260\n0.48318,1.65386\n0.81308,2.84202\n0.17020,1.25162\n0.45757,1.73617\n0.74872,2.38455\n0.03753,1.00363\n0.86093,3.03165\n0.09341,1.22796\n0.34600,1.38493\n0.01129,1.15966\n0.69075,2.00746\n0.60105,1.87200\n0.40694,1.64015\n0.08876,1.01074\n0.89059,3.25940\n0.68323,2.19657\n0.20832,1.39118\n0.32209,1.45014\n0.71824,2.16271\n0.24144,1.34737\n0.09544,1.30364\n0.61956,1.87728\n0.78327,2.61726\n0.21342,1.31324\n0.44205,1.72654\n0.33576,1.42604\n0.31941,1.45476\n0.34057,1.41813\n0.65509,2.04945\n0.08207,1.05202\n0.56092,1.80144\n0.21913,1.28415\n0.98664,4.71562\n0.23564,1.34066\n0.42707,1.55165\n0.88640,3.46068\n0.96287,4.43321\n0.07401,1.26730\n0.86033,3.06972\n0.07977,1.20232\n0.67718,2.06609\n0.45457,1.60224\n0.91431,3.64635\n0.89246,3.43840\n0.10989,1.11484\n0.39916,1.65078\n0.83104,2.79330\n0.09120,1.14767\n0.29070,1.44893\n0.66907,1.95901\n0.43047,1.59124\n0.21727,1.21506\n0.22895,1.44957\n0.96175,4.29904\n0.91851,3.83983\n0.03951,1.11177\n0.79552,2.46412\n0.33420,1.39178\n0.40986,1.40279\n0.11413,1.19534\n0.55098,1.67523\n0.66288,2.04212\n0.39782,1.48513\n0.14506,1.20096\n0.21920,1.42419\n0.58546,1.88845\n0.99539,4.89503\n0.84187,2.98869\n0.16285,1.48088\n0.13497,1.17564\n0.17037,1.43104\n0.80437,2.70468\n0.91197,3.74693\n0.03576,1.03845\n0.50298,1.62248\n0.18025,1.44463\n0.31685,1.44244\n0.73980,2.16124\n0.07374,1.20874\n0.70981,2.32652\n0.81330,2.80149\n0.83379,2.93125\n0.55651,1.54635\n0.04622,0.97239\n0.38849,1.38518\n0.04146,1.10305\n0.12056,1.27800\n0.97015,4.55145\n0.37549,1.64794\n0.17307,1.28814\n0.88314,3.28751\n0.34276,1.48645\n0.04175,1.08515\n0.78015,2.29577\n0.79618,2.77704\n0.13145,1.16477\n0.99366,4.89416\n0.70909,1.94578\n0.18077,1.32163\n0.58636,1.78190\n0.22312,1.42481\n0.66945,1.96544\n0.16971,1.32892\n0.99836,4.80420\n0.90371,3.51908\n0.14033,1.10294\n0.33274,1.30114\n0.54843,1.53228\n0.89602,3.43118\n0.66916,2.14406\n0.66191,1.98850\n0.31274,1.42846\n0.96259,4.50527\n0.41915,1.50684\n0.92032,3.67659\n0.55957,1.88707\n0.11541,1.20596\n0.63470,1.90481\n0.33935,1.39829\n0.84426,3.00126\n0.26679,1.51563\n0.95346,4.19119\n0.43039,1.58082\n0.25217,1.36353\n0.94084,4.12044\n0.23947,1.34773\n0.98046,4.60503\n0.47584,1.62345\n0.20150,1.27672\n0.56086,1.84800\n0.13168,1.24022\n0.56754,1.74363\n0.23857,1.27237\n0.42363,1.47663\n0.96135,4.29397\n0.24941,1.24417\n0.20618,1.16366\n0.19101,1.33014\n0.06800,1.22710\n0.11289,1.21857\n0.06791,1.18016\n0.90972,3.81534\n0.06407,1.15612\n0.12882,1.15207\n0.63492,1.85940\n0.49108,1.54625\n0.36989,1.40719\n0.60863,1.65882\n0.46364,1.60566\n0.97912,4.69257\n0.67472,2.01293\n0.34917,1.30990\n0.17340,1.24836\n0.66045,1.85744\n0.12458,1.26822\n0.62129,1.81958\n0.99966,4.99795\n0.63025,1.93311\n0.51224,1.55453\n0.62617,1.76861\n0.51363,1.71890\n0.41861,1.74416\n0.84356,2.88153\n0.77259,2.50873\n0.54187,1.76595\n0.49894,1.60309\n0.05967,1.12677\n0.93571,3.96269\n0.71313,2.31364\n0.83793,2.88117\n0.29156,1.48210\n0.19460,1.19548\n0.96512,4.55336\n0.21436,1.28619\n0.11981,1.19137\n0.67504,2.03253\n0.74728,2.63308\n0.57648,2.03917\n0.93344,3.88947\n0.91073,3.76855\n0.30106,1.30576\n0.96664,4.39412\n0.62489,1.93069\n0.95817,4.19626\n0.19836,1.21173\n0.53414,1.58180\n0.50068,1.51487\n0.18984,1.40622\n0.70828,2.03466\n0.15661,1.18393\n0.70457,2.19656\n0.16167,1.44037\n0.91615,3.76997\n0.10823,1.19582\n0.46816,1.62625\n0.49651,1.34337\n0.92413,3.97111\n0.20997,1.25453\n0.11952,1.28191\n0.75255,2.24098\n0.39248,1.56295\n0.11136,1.10676\n0.17596,1.34938\n0.63312,1.99092\n0.52873,1.69050\n0.98920,4.88268\n0.98073,4.77348\n0.28950,1.53374\n0.67362,1.99339\n0.72406,2.20465\n0.32126,1.55548\n0.54680,1.78163\n0.66971,1.90261\n0.32347,1.37116\n0.78200,2.47492\n0.48458,1.49408\n0.57514,1.74182\n0.51191,1.54853\n0.19010,1.26135\n0.84851,3.11351\n0.94977,4.11630\n0.23161,1.14959\n0.91648,3.68158\n0.63174,1.93032\n0.82026,2.65630\n0.49048,1.44430\n0.10919,1.12081\n0.32723,1.32176\n0.66976,1.72210\n0.18553,1.31057\n0.07311,1.24747\n0.87152,3.38230\n0.01029,0.94447\n0.34306,1.53358\n0.86905,3.17819\n0.82111,2.76639\n0.51771,1.59639\n0.38930,1.47913\n0.05248,0.97562\n0.04031,1.13861\n0.65203,1.95908\n0.36216,1.51945\n0.49995,1.59005\n0.79074,2.75216\n0.90350,3.65675\n0.66066,1.96542\n0.29281,1.50551\n0.38644,1.50396\n0.68414,2.07820\n0.88636,3.39148\n0.18993,1.30677\n0.39899,1.47845\n0.58440,1.65785\n0.01599,1.05388\n0.17967,1.27408\n0.53203,1.69821\n0.32194,1.32546\n0.16635,1.11495\n0.58830,1.71499\n0.86391,3.17682\n0.10414,1.01982\n0.80099,2.60420\n0.56367,1.86158\n0.07019,1.12665\n0.26457,1.26703\n0.29712,1.32521\n0.44677,1.62150\n0.28070,1.38934\n0.11511,1.21875\n0.57067,1.73412\n0.12984,1.06629\n0.57438,1.80729\n0.38416,1.50538\n0.33039,1.40870\n0.95759,4.25350\n0.68901,2.18289\n0.97622,4.57432\n0.21756,1.24442\n0.16427,1.31023\n0.62595,1.82035\n0.48745,1.56117\n0.61808,1.84765\n0.98059,4.72116\n0.55562,1.91861\n0.87998,3.31484\n0.23963,1.44810\n0.52175,1.61057\n0.87444,3.30986\n0.81509,2.62972\n0.67842,1.94590\n0.71437,2.13505\n0.91916,3.68428\n0.00181,0.99795\n0.14917,1.46764\n0.82929,3.00164\n0.58590,1.96609\n0.12651,1.16000\n0.25773,1.25794\n0.25073,1.37775\n0.20891,1.20184\n0.73714,2.05914\n0.58427,1.76982\n0.99451,4.84842\n0.19257,1.44694\n0.68548,2.01991\n0.02126,1.23465\n0.64745,1.88101\n0.21785,1.43294\n0.64309,1.75603\n0.79568,2.73741\n0.39258,1.67270\n0.81389,2.60379\n0.51263,1.61593\n0.30909,1.26995\n0.48163,1.51363\n0.90505,3.57042\n0.49760,1.40772\n0.56640,1.65420\n0.41724,1.40904\n0.33472,1.50103\n0.90994,3.61936\n0.08108,1.23696\n0.24934,1.41559\n0.56647,1.84459\n0.95903,4.46419\n0.30870,1.48032\n0.79401,2.43522\n0.60002,1.70198\n0.01607,1.00500\n0.71396,2.22175\n0.82977,2.87797\n0.70003,2.19478\n0.77345,2.55221\n0.10980,1.12016\n0.98781,4.82956\n0.63874,1.89648\n0.47811,1.63160\n0.07595,1.26678\n0.53652,1.58433\n0.39423,1.42464\n0.01225,1.05653\n0.19427,1.14613\n0.68604,2.01628\n0.15340,1.29436\n0.02378,1.16282\n0.63223,1.74314\n0.82182,2.79100\n0.84260,3.14399\n0.23281,1.22931\n0.84923,2.81765\n0.14217,1.12692\n0.42188,1.46047\n0.46240,1.56160\n0.90818,3.47277\n0.03670,1.21083\n0.52486,1.70564\n0.71230,2.13334\n"
  },
  {
    "path": "examples/general/weather.car",
    "content": "   P151 CEEFAX 151  Sat 29 Oct  21:41/10\u0013      \u0016<ll,4<,,lh,,,4<,,lh,|,4<,,lh,,,4\u0013  \u00165jj 55bsj s 55jj s 55bsj s(5\u0013  *\u0016-,,,%-,,.*,/,%/-./*,/,%-,,.*,/,%\u0014\u001d #/?'!   Three-day forecast     \u0014\u001d $  \"  (  Scotland.............133 \u0014\u001d!   \"   \" N.Ireland & Wales....134 \u0014\u001d    (     North England........135 \u0014\u001d           Midlands.............136 \u0014\u001dFrom BBC  East England.........137 \u0014\u001d Weather  South & South West...138 \u0014\u001d           South East England...139 #######################################\u0016<,,lh,,,4<,,lh,|,4<,,lh,||\u0013 ppw{pp `p0 \u00165jj s(55b1jj0/`55bsj \u0013ps3h|~|}|\u0016/-./*,/,%-.-.*/,/%-,,.*,,.\u00135j\u0014\u001d\u0003                    \u0013 /////%###*/////\u0014\u001d\u0003ROADS         Incidents & Roadworks  \u0014\u001d\u0006Scotland.....123West Midlands.128 \u0014\u001d\u0006N.Ireland....124East Midlands.129 \u0014\u001d\u0006Wales........125East England..130 \u0014\u001d\u0006North West...126South West....131 \u0014\u001d\u0006North East...127South East....132 #######################################h,,lh,,lh,,l p `0pp pp pp`0`0pp`pp0 j %zj %zj }~ hj5pjuz5j5juz5pjuz% j %jj %jj 'k ozz%pj5j5j5j5j5pj5j5 \"###\"###\"###///-,,/,,-.-.-.-.-.,,-.-./            MAX MIN\u0012\u001e            d                     \u0012\u001e   p  `p0  *+                         \u0012\u001e `x1                         \u0012\u001e z/! `\u001f'                          \u0012 \"! x|\u001f#                            \u00125lu~epp0                         \u0012: +g\u001ft                       \u0012\u001e '                       \u0012\u001e`$,~\u001f?                        \u0012\u001e! m;\u001f?%                        \u0012\u001e  #a?%                         \u0012\u001e xk\u001f}                          \u0012\u001e*!:j+\u001fqt      Sunny Spells\u0012 j }     ShowerCloud \u0012|t   `}0   Rain  Snow   * \u0012\u001e   5  Storm Clear \u0012 5  ~~q}4    x\u0012\u001eo\u001f}0       \u001eu  h~\u001f\u0012}\u001f4      \u001e  ??/\u001f\u0012'`\u001e\u001f}0     |   \"  x\u001f\u0012`~\u001e5     \u0012/      \u001f\u00125     \u0012%   `$  jo\u001f\u0012??u     \u0012}!         x\u001f\u0012)*%#!`~     \u0012          \u001f\u0012\u001e    z4    \u0012   ` b\u001f\u0012\u001e    o|   \u00127     j\u001f    \"0 \u0012     ('\u001f !j\u001f5 \u0012/%     \u001f\u0012\u001e     \u001f$#        `\u001f\u0012\u001e     j\u001f4\u0012\u001e    \u001f\u0012`0   \u001f/}\u0012\u001e      n\u001f\u0012ow|}|t\u001e\u001f2\u0012\u001e      \"!\"\u001f\u0012~\u001e\u001f\u0012\u001e          \"/gy~\u001f\u0012%\u001e\u001f\u001e  j\u001f\u0012\u001e\u001f0          \u0012|p0\u001e\u001f\u0012\u001eu          \u0012\u001e~\u001f\u0012\u001e\u001f;/4         \u0012\u001e\u001f\u0012\u001e\u001f}p!         \u0012\u001e\u001f\u0012\u001e\u001f4         \u0012\u001e\u001f\u0012\u001e\u001f         \u0012\u001e\u001f\u0012\u001e\u001f?         \u0012\u001f\u0012\u001e\u001f%         \u0012\u001e\u001f\u0012\u001e5 |\u001f}|p0  \u0012\u001e\u001f\u0012\u001e\u001f}0 \u0012\u001e\u001f\u0012\u001e\u001f5 \u0012\u001e\u001f\u0012\u001e\u001f \u0012\u001e\u001f\u0012\u001e\u001f7 \u0012\u001e\u001f\u0012\u001e\u001f5 \u0012\u001e\u001f\u0012\u001e\u001f! \u0012\u001e?{\u001f\u0012\u001e\u001f?  \u0012/#c~\u001e\u001f\u0012\u001e\u001f?#   \u0012        `\u0012\u001e\u0012      px\u001e\u0012   `}\u0012\u001e\u0012   n\u0012\u001e\u0012    /#\"\u0012\u001e\u001f\u0012       ##o\u0012\u001e\u001f/o\u0012         \"#!p|\u0012\u001e\u001f}\"!\u0012      x|||\u0012\u001e\u001f/'  \u0012   \u0012\u001e||0p \u0012   `~\u0012\u001e?\u0012  x7\u0012\u001e5'  '#/  x\u0012\u001e\u001f?%\u0012*'o7    #          \u0012?\"//\u001e/   \u0012                   \u0012(~}$ ! \"+/\u001f'!    \u0012                   \u0012 \"!       \"!      \u0012                   \u0012\u001e                  \u0012               \u0012\u001e                  "
  },
  {
    "path": "examples/graphics/Demo.ptr",
    "content": "TO SPIRAL\nBK A+N\nTN B\nPC RND(99)/99 RND(99)/99 RND(99)/99\nEND\nREP SPIRAL 720 0 310\nNEW\nTO SIN\nFD SIN(RAD(N))*400\nHOME -620+(N*1.8) 0\nEND\nHOME -600 0\nPC 1 0.3 0\nTN 60\nREP SIN 720 0 0\nTN -30\nNEW\nTO SHAPE\nFD A\nTN B\nEND\nHOME\nTN -90\nFLY 360\nTN 90\nPC 1 0 0\nFD 180\nTN 90\nREP SHAPE 180 PI/2 1\nTN 180\nFLY 300\nTN -180\nPC 0 1 0\nREP SHAPE 180 PI/2 1\nTN 90\nFLY 90\nTN 90\nFD 90\nTN -90\nFLY 90\nTN -90\nFLY 200\nTN -90\nPC 0 0 1\nFD 180\nTN 90\nREP SHAPE 90 PI/2 1\nTN -180\nREP SHAPE 90 PI/2 1\nTN 90\nFD 180\nTN -90\nFLY 160\nPC 1 1 0\nTN 180\nREP SHAPE 360 PI/2 1\nHOME -230 -100\nPC 1 0.4 0\nTN 180\nWD 40\nFD 510\nBK 490\nPC 1 1 1\nHOME -210 -85\nPT !!!Pointer-demonstration-file!!!\nHOME\nTN -90\nFLY 100\nNEW\nThank you for trying Pointer 0.1 demo\nI hope you have enjoyed our demo procedures\nYou may enter commands at the prompt, see HELP\n"
  },
  {
    "path": "examples/keywords.txt",
    "content": "Keyword\t                             Description\tInformal syntax\n\nABS\tA function returning the absolute value of its numeric argument\t\t\t<n-var>=ABS(<numeric>)\nACS\tA function returning the arc-cosine in radians (0-PI) of its numeric argument\t<n-var>=ACS(<numeric>)\nADVAL \tADVAL(0)  returns the state (0-2^n−1) of the n buttons on a joystick device\t<n-var>=ADVAL(0)\n\tADVAL(1)  returns the current position (0-65535) of the joystick x-axis\t\t<n-var>=ADVAL(1)\n\tADVAL(2)  returns the current position (0-65535) of the joystick y-axis\t\t<n-var>=ADVAL(2)\n\tADVAL(3)  returns the current position (0-65535) of the joystick z-axis\t\t<n-var>=ADVAL(3)\n\tADVAL(−1) returns the number of free bytes (0-255) in the keyboard buffer\t<n-var>=ADVAL(-1)\n\tADVAL(−5) returns the number of free bytes (0-16) in the channel 0 SOUND queue\t<n-var>=ADVAL(-5)\n\tADVAL(−6) returns the number of free bytes (0-16) in the channel 1 SOUND queue\t<n-var>=ADVAL(-6)\n\tADVAL(−7) returns the number of free bytes (0-16) in the channel 2 SOUND queue\t<n-var>=ADVAL(-7)\n\tADVAL(−8) returns the number of free bytes (0-16) in the channel 3 SOUND queue\t<n-var>=ADVAL(-8)\nAND\tAn operator giving the Boolean or bitwise AND between two numeric operands\t<n-var>=<numeric> AND <numeric>\nAND=\tA compound assignment performing a Boolean or bitwise AND on a numeric variable\t<n-var> AND= <numeric>\nASC\tA function returning the numeric value (0-255) of the 1st character in a string\t<n-var>=ASC(<string>)\nASN\tA function returning the arc-sine (−PI/2 to +PI/2) of its numeric argument\t<n-var>=ASN(<numeric>)\nATN\tA function returning the arc-tangent (−PI/2 to +PI/2) of its numeric argument\t<n-var>=ATN(<numeric>)\nBGET#\tA function returning one byte (0-255) from the specified open file channel\t<n-var>=BGET#<channel>\nBPUT#\t[1] A statement writing one byte (0-255) to the specified open file channel\tBPUT #<channel>,<numeric>\n\t[2] A statement writing a string, optionally followed by LF, to an open file\tBPUT #<channel>,<string>[;]\nBY\tA qualifier for the DRAW, FILL, MOVE and PLOT statements and the GET$ function\nCALL\t[1] A statement to call a machine-code function, optionally passing parameters\tCALL <pointer>{,<n-var>|<s-var>|<array()>|<struct{}>}\n\t[2] A statement to load a tokenised code module, run it, and then discard it\tCALL <string>\nCASE\tIntroduces a switch clause, vectoring execution on a numeric or string value\tCASE <numeric>|<string> OF\nCHAIN\tA statement to load and run a tokenised program, replacing the current program\tCHAIN <string>\nCHR$\tA function returning a single-character string of its numeric argument (0-255)\t<s-var>=CHR$(<numeric>)\nCIRCLE\tA statement to draw a solid or outline circle, with centre x,y and radius r\tCIRCLE [FILL] <numeric>,<numeric>,<numeric>\nCLEAR\tA statement to remove all currently defined variables, arrays and structures\tCLEAR\nCLG\tA statement to clear the graphics viewport to the graphics bkgnd colour/action\tCLG\nCLOSE#\t[1] A statement to close the file open on the specified channel\t\t\tCLOSE #<numeric>\n\t[2] A statement to close all currently-open files\t\t\t\tCLOSE #0 \nCLS\tA statement to clear the text viewport to the text background colour\t\tCLS\nCOLOUR\t[1] COLOUR col       Sets the text foreground colour to palette entry col \tCOLOUR <numeric>\n\t[2] COLOUR 128+col   Sets the text background colour to palette entry col\tCOLOUR <numeric>\n\t[3] COLOUR col,phy   Sets palette entry col to the physical colour phy (0-15)\tCOLOUR <numeric>,<numeric>\n\t[4] COLOUR col,R,G,B Sets the palette entry col to the RGB colour (each 0-255)\tCOLOUR <numeric>,<numeric>,<numeric>,<numeric>\nCOS\tA function returning the cosine of the radian angle supplied as its argument\t<n-var>=COS(<numeric>)\nCOUNT\tA function returning the number of bytes PRINTed since the last newline (CR)\t<n-var>=COUNT\nDATA\tA statement followed by a list of constant data values to be read using READ\tDATA <s-const>|<n-const>{,<s-const>|<n-const>}\nDEF\t[1] A statement introducing a user-defined procedure, with optional parameters \tDEF PROC<name>[([RETURN]<s-var>|<n-var>|<array>|<struct>{,[RETURN]<s-var>|<n-var>|<array>|<struct>})]\n\t[2] A statement introducing a user-defined function, with optional parameters\tDEF FN<name>[([RETURN]<s-var>|<n-var>{,[RETURN]<s-var>|<n-var>})]\nDEG\tA function returning the value in degrees of its argument in radians \t\t<n-var>=DEG(<numeric>)\nDIM\t[1] A statement declaring a numeric or string array\t\t\t\tDIM <n-var>|<s-var>(<numeric>{,<numeric>})\n\t[2] A statement declaring a data structure with the specified members\t\tDIM <name>{<member>{,<member>}}\n\t[3] A statement declaring a data structure based on a prototype structure\tDIM <struct{}>=<struct{}>\n\t[4] A statement declaring an array of identical data structures\t\t\tDIM <name>{(<numeric>[,<numeric>])<member>{,<member>}}\n\t[5] A statement declaring an array of data structures based on a prototype\tDIM <name>{(<numeric>[,<numeric>])}=<struct{}>\n\t[6] A statement reserving a block of memory on the heap or on the stack\t\tDIM <n-var> [LOCAL] <numeric>\n\t[7] A function returning the number of dimensions of an array\t\t\t<n-var>=DIM(<array()>)\n\t[8] A function returning the size (maximum subscript) of an array dimension\t<n-var>=DIM(<array>,<numeric>)\n\t[9] A function returning the size (in bytes) of a structure\t\t\t<n-var>=DIM(<struct{}>)\nDIV\tAn operator giving the integer quotient of the first operand by the second\t<n-var>=<numeric> DIV <numeric>\nDIV=\tA compound assignment performing an integer division of a numeric variable\t<n-var>DIV=<numeric>\nDRAW\tA statement to draw a line from the graphics cursor to specified coordinates \tDRAW [BY] <numeric>,<numeric>\nELLIPSE\tA statement to draw a solid or outline ellipse with centre x,y and radii a,b \tELLIPSE [FILL] <numeric>,<numeric>,<numeric>,<numeric>\nELSE\tA statement to specify the action taken if an IF or ON condition is not met\nEND\t[1] A statement to close files, terminate a program and exit to immediate mode\tEND\n\t[2] A function returning a pointer to the first unused location in the heap\t<n-var>=END\nENDCASE\tA statement which terminates a CASE clause\t\t\t\t\tENDCASE\nENDIF\tA statement which terminates a multi-line IF clause\t\t\t\tENDIF\nENDPROC\tA statement which restores context and returns from a user-defined procedure\tENDPROC\nENDWHILE\tA statement which terminates a WHILE loop\t\t\t\tENDWHILE\nENVELOPE\tA statement to define a pitch and/or ADSR envelope for use by SOUND\tENVELOPE <numeric>,<numeric>,<numeric>,<numeric>,<numeric>,<numeric>,<numeric>,<numeric>,<numeric>,<numeric>,<numeric>,<numeric>,<numeric>,<numeric>\nEOF#\tA function returning TRUE if the file's pointer is at the end of the file \t<n-var>=EOF#(<numeric>)\nEOR\tAn operator giving the bitwise exclusive-OR between two numeric operands\t<n-var>=<numeric> EOR <numeric>\nEOR=\tA compound assignment performing a bitwise exclusive-OR on a numeric variable\t<n-var>EOR=<numeric>\nERL\tA function returning the line number at which the most recent error occurred\t<n-var>=ERL\nERR\tA function returning the error code number of the most recent error\t\t<n-var>=ERR\nERROR\tA statement to throw an error, with a specified error number and string\t\tERROR <numeric>,<string>\nEVAL\tA function returning the numeric or string result of evaluating an expression\t<n-var>|<s-var>=EVAL(<string>)\nEXIT\t[1] Exits a FOR..NEXT loop and jumps to the statement after the matching NEXT\tEXIT FOR [<n-var>]\n\t[2] Exits a REPEAT..UNTIL loop and jumps to the statement after the UNTIL\tEXIT REPEAT\n\t[3] Exits a WHILE..ENDWHILE loop and jumps to the statement after the ENDWHILE\tEXIT WHILE\nEXP\tA function returning e (2.71828183) raised to the power of the numeric argument\t<n-var>=EXP(<numeric>)\nEXT#\tA function returning the length of the file opened on the specified channel\t<n-var>=EXT#(<numeric>)\nFALSE\tA function returning the constant numeric value zero\t\t\t\t<n-var>=FALSE\nFILL\t[1] A statement to perform a 'flood fill' starting at the specified coordinates\tFILL [BY] <numeric>,<numeric>\n\t[2] An optional qualifier of the CIRCLE, ELLIPSE and RECTANGLE statements\nFN\t[1] Calls a user-defined function by name, with optional parameters \t\t<n-var>|<s-var>=FN<name>[(<exp>{,<exp>})]\n\t[2] Calls a user-defined function by pointer, with optional parameters\t\t<n-var>|<s-var>=FN(<pointer>)[(<exp>{,<exp>})]\nFOR\tA statement to introduce a FOR...NEXT loop (always executed at least once)\tFOR <n-var>=<numeric> TO <numeric> [STEP <numeric>]\nGCOL\t[1] GCOL [mode,]col     Sets the graphics foreground colour and optional mode\tGCOL [<numeric>,]<numeric>\n\t[2] GCOL [mode,]128+col Sets the graphics background colour and optional mode\tGCOL [<numeric>,]<numeric>\nGET\t[1] A function returning a byte from the keyboard buffer, waiting if empty\t<n-var>=GET\n\t[2] A function returning the character at the specified text column and row\t<n-var>=GET(<numeric>,<numeric>)\nGET$\t[1] A function returning a byte from the keyboard buffer as a length-1 string\t<s-var>=GET$\n\t[2] A function returning the character at the specified text coords as a string\t<s-var>=GET$(<numeric>,<numeric>)\n\t[3] A function reading a string from a file (up to a CR, LF or NUL terminator)\t<s-var>=GET$#<numeric>\n\t[4] A function reading a string from a file up to a specified terminator\t<s-var>=GET$#<numeric> TO <numeric>\n\t[5] A function reading a string from a file of the specified length in bytes\t<s-var>=GET$#<numeric> BY <numeric>\nGOSUB\tA statement to call a subroutine starting at a specified line number \t\tGOSUB <l-num>|(<numeric>)\nGOTO\tA statement to jump directly to a specified (possibly calculated) line number\tGOTO <l-num>|(<numeric>)\nHIMEM\t[1] A statement to set the first memory address above the top of the heap\tHIMEM=<pointer>\n\t[2] A function returning the first memory address above the top of the heap\t<n-var>=HIMEM\nIF\t[1] A statement to take a specified action if an integer condition is non-zero \tIF <t-cond> THEN <stmt>{:<stmt>} ELSE <stmt>{:<stmt>}\n\t[2] A statement to introduce a multi-line conditional clause \t\t\tIF <t-cond> THEN[;]\nINKEY\t[1] A function returning TRUE if a specified key is currently depressed\t\t<n-var>=INKEY(<negative-numeric>)\n\t[2] A function returning a byte from the keyboard, waiting a specified cs time \t<n-var>=INKEY(<numeric>)\nINKEY$\tA function returning a string from the keyboard, waiting a specified time\t<s-var>=INKEY$(<numeric>)\nINPUT\tA statement to input a line and assign the value(s) to specified variable(s)\tINPUT [LINE][TAB(X[,Y])][SPC(<numeric>)]['][<s-const>[,|;]]<n-var>|<s-var>{,<n-var>|<s-var>}\nINPUT#\tA statement to input from an open file and assign values to specified variables\tINPUT #<numeric>,<n-var>|<s-var>{,<n-var>|<s-var>}\nINSTALL\tA statement to install a BASIC library module (it is loaded above HIMEM)\tINSTALL <string>\nINSTR\tA function returning the position (if any) of a substring within a string\t<n-var>=INSTR(<string>,<string>[,<numeric>])\nINT\tA function truncating to an integer, towards minus infinity (floor function)\t<n-var>=INT<numeric>\nLEFT$\t[1] A function returning the leftmost n characters (bytes) of a string\t\t<s-var>=LEFT$(<string>,<numeric>)\n\t[2] A function returning all but the last character (byte) of a string\t\t<s-var>=LEFT$(string) \n\t[3] A statement replacing the leftmost n bytes of a string with a new string\tLEFT$(<s-var>,<numeric>)=<string>\n\t[4] A statement replacing all but the last byte of a string with a new string\tLEFT$(<s-var>)=<string>\nLEN\tA function returning the length of a string in bytes (not characters, if UTF-8)\t<n-var>=LEN(<string>)\nLET\tAn optional keyword introducing a numeric or string assignment statement\t[LET] <var>=<exp>\nLINE\t[1] A statement to draw a straight line between two pairs of coordinates\tLINE <numeric>,<numeric>,<numeric>,<numeric>\n\t[2] A modifier causing the INPUT statement to read including commas and spaces\tLINE INPUT [TAB(X[,Y])][SPC(<numeric>)]['][<s-const>[,|;]]<s-var>{,<s-var>}\nLN\tA function returning the natural (Napierian) logarithm of its numeric argument\t<n-var>=LN<numeric>\nLOCAL\tA statement to declare variables, arrays and structures 'local' to a FN or PROC\tLOCAL <n-var>|<s-var>|<array()>|<struct>{,<n-var>|<s-var>|<array()>|<struct{}>}\nLOCAL DATA\tA statement to save the DATA pointer, so it may be restored later\tLOCAL DATA\nLOG\tA function returning the common (base-10) logarithm of its numeric argument\t<n-var>=LOG<numeric>\nLOMEM\t[1] A statement to set the address of (pointer to) the base of the heap\t\tLOMEM=<pointer>\n\t[2] A function returning the address of (pointer to) the base of the heap\t<n-var>=LOMEM\nMID$\t[1] A function returning part of a string, given the start and optional length\t<s-var>=MID$(<string>,<numeric>[,<numeric>])\n\t[2] An assignment statement replacing part of a string with a new string\t\tMID$(<s-var>,<numeric>[,<numeric>])=<string>\nMOD\t[1] An operator giving the integer remainder after division by the 2nd operand\t<n-var>=<numeric> MOD <numeric>\n\t[2] A function returning the square-root of the sum-of-the-squares of an array\t<n-var>=MOD(<array()>)\nMOD=\tA compound assignment calculating the integer remainder after a division\t<n-var>MOD=<numeric>\nMODE\t[1] A statement initialising a specified screen mode\t\t\t\tMODE <numeric>\n\t[2] A function returning the current screen mode number, or −1 if user-defined\t<n-var>=MODE\nMOUSE\tA statement to return the current position and button status of the 'mouse'\tMOUSE <n-var>,<n-var>,<n-var>\nMOUSE OFF\tA statement to hide the mouse pointer\t\t\t\t\tMOUSE OFF\nMOUSE ON\tA statement to select a particular mouse pointer shape and enable it\tMOUSE ON [<numeric>]\nMOUSE RECTANGLE\n\tA statement to confine the mouse pointer within a specified rectangle\t\tMOUSE RECTANGLE OFF|<n-var>,<n-var>,<n-var>,<n-var>\nMOUSE TO\tA statement to move the mouse pointer to the specified coordinates\tMOUSE TO <n-var>,<n-var>\nMOVE\tA statement to move the graphics cursor to absolute or relative coordinates\tMOVE [BY] <numeric>,<numeric>\nNEXT\tA statement to indicate the end of one or more FOR...NEXT loops\t\t\tNEXT [<n-var>{,<n-var>}]\nNOT\tA function returning the Boolean or bitwise inversion of its numeric argument\t<n-var>=NOT<numeric>\nOF\tA mandatory part of the CASE statement, must be the last thing on the line\tCASE <numeric>|<string> OF\nOFF\t[1] A statement to hide the text caret (cursor)\t\t\t\t\tOFF\n\t[2] A qualifier used with MOUSE, MOUSE RECTANGLE, ON, SOUND & TRACE statements\nON\t[1] A statement to jump to a specified line number depending on a numeric index\tON <numeric> GOTO <l-num>{,<l-num>} [ELSE <l-num>|<stmt>{:<stmt>}]\n\t[2] A statement to call a line-numbered subroutine depending on a numeric index\tON <numeric> GOSUB <l-num>{,<l-num>} [ELSE <l-num>|<stmt>{:<stmt>}]\n\t[3] A statement to call a named procedure depending on a numeric index\t\tON <numeric> PROC<name>[(<exp>{,<exp>})]{,PROC<name>[(<exp>{,<exp>})]} [ELSE <stmt>{:<stmt>}]\n\t[4] A statement to show the text caret (cursor)\t\t\t\t\tON\n\t[5] A statement to cancel an ON CLOSE, ERROR, MOUSE, MOVE, SYS or TIME action\tON <event> [LOCAL] OFF\nON CLOSE\tA statement to specify the action taken if the window is closed\t\tON CLOSE [LOCAL] <stmt>{:<stmt>}:RETURN\nON ERROR\tA statement to specify the action taken if a trappable error occurs\t\tON ERROR [LOCAL] <stmt>{:<stmt>}\nON MOUSE\tA statement to specify the action taken if a mouse button is clicked\tON MOUSE [LOCAL] <stmt>{:<stmt>}:RETURN\nON MOVE\tA statement to specify the action taken if the window is moved or resized\tON MOVE [LOCAL] <stmt>{:<stmt>}:RETURN\nON SYS\tA statement to specify the action taken if an OS event is notified\t\tON SYS [LOCAL] <stmt>{:<stmt>}:RETURN\nON TIME\tA statement to specify the action taken if the periodic timer fires\t\tON TIME [LOCAL] <stmt>{:<stmt>}:RETURN\nOPENIN\tA function which opens a file for reading (only) and returns a channel number\t<n-var>=OPENIN(<string>)\nOPENOUT\tA function which creates a new (empty) file and returns a channel number\t<n-var>=OPENOUT(<string>)\nOPENUP\tA function which opens a file for update (R/W) and returns a channel number\t<n-var>=OPENUP(<string>)\nOR\tAn operator giving the Boolean or bitwise OR between two numeric operands\t<n-var>=<numeric> OR <numeric>\nOR=\tA compound assignment performing a Boolean or bitwise OR on a numeric variable\t<n-var> OR= <numeric>\nORIGIN\tA statement to set the coordinates of the current graphics origin\t\tORIGIN <numeric>,<numeric>\nOSCLI\tA statement to pass a 'star' (OS) command to the Command Line Interpreter\tOSCLI <string>\nOTHERWISE\tA part of the CASE clause specifying the action if no WHEN condition is met\tOTHERWISE [<stmt>]{:<stmt>}\nPAGE\t[1] A statement to set the address of (pointer to) where a program is loaded\tPAGE=<pointer>\n\t[2] A function returning the address of (pointer to) the current program\t<n-var>=PAGE\nPI\tA function returning the constant numeric value Pi (3.14159265...)\t\t<n-var>=PI\nPLOT\t[1] A statement to carry out a plotting operation identified by a numeric index\tPLOT <numeric>,<numeric>,<numeric>\n\t[2] A statement to plot a solid rectangle 1/8 of the character width and height\tPLOT [BY] <numeric>,<numeric>\nPOINT\tA function returning the logical colour (palette index) at given coordinates\t<n-var>=POINT(<numeric>,<numeric>)\nPOS\tA function returning the horizontal position of the text caret (cursor) 0=left\t<n-var>=POS\nPRINT\tA statement to evaluate and print a list of expressions, with formatting\tPRINT {[TAB(<numeric>[,<numeric>])][SPC(<numeric>]['][,][;][~][<string>|<numeric>]}\nPRINT#\tA statement to write numeric or string values to a file in 'internal' format\tPRINT#<numeric>{,<numeric>|<string>}\nPRIVATE\tA statement to declare variables, arrays and structures private to a FN or PROC\tPRIVATE <n-var>|<s-var>|<array()>|<struct>{,<n-var>|<s-var>|<array()>|<struct{}>}\nPROC\t[1] Calls a user-defined procedure by name, with optional parameters \t\tPROC<name>[(<exp>{,<exp>})]\n\t[2] Calls a user-defined procedure by pointer, with optional parameters\t\tPROC(<pointer>)[(<exp>{,<exp>})]\nPTR\t[1] A function returning a pointer to a string, array, structure or FN/PROC\t<n-var>=PTR(<s-var>|<array()>|<struct{}>|FN<name>[()]|PROC<name>[()])\n\t[2] A statement to set the pointer to a string, array, structure or FN/PROC\tPTR(<s-var>|<array()>|<struct{}>|FN<name>[()]|PROC<name>[()])=<numeric>\nPTR#\t[1] A function returning the current pointer of the specified open file \t<n-var>=PTR#<numeric>\n\t[2] A statement to set the pointer of the specified open file\t\t\tPTR#<numeric>=<numeric>\nQUIT\tA statement to exit to the OS (or calling process) with an optional exit code\tQUIT [<numeric>]\nRAD\tA function returning the value in radians of its argument in degrees\t\t<n-var>=RAD<numeric>\nREAD\tA statement to read one or more values from one or more DATA statements\t\tREAD <n-var>|<s-var>{<n-var>|<s-var>}\nREAD#\tA statement which is synonymous with INPUT#\t\t\t\t\tREAD#<numeric>,<n-var>|<s-var>{,<n-var>|<s-var>}\nRECTANGLE\t[1] A statement to draw an outline or filled axis-aligned rectangle\tRECTANGLE [FILL] <numeric>,<numeric>,<numeric>[,<numeric>]\n\t[2] A statement to copy the contents of a rectangle to a specified location\tRECTANGLE <numeric>,<numeric>,<numeric>[,<numeric>] TO <numeric>,<numeric>\n\t[3] A statement to move the contents of a rectangle to a specified location\tRECTANGLE FILL <numeric>,<numeric>,<numeric>[,<numeric>] TO <numeric>,<numeric>\n\t[4] A statement to swap the contents of a rectangle with a specified location\tRECTANGLE SWAP <numeric>,<numeric>,<numeric>[,<numeric>] TO <numeric>,<numeric>\nREM\tA statement containing a remark or comment, the rest of the line is ignored\tREM any text\nREPEAT\tA statement introducing a REPEAT..UNTIL loop (UNTIL conditionally jumps here)\tREPEAT\nREPORT\tA statement to print the most recent error message (or a copyright string)\tREPORT\nREPORT$\tA function returning the most recent error message as a string\t\t\t<s-var>=REPORT$\nRESTORE\t[1] A statement to set the DATA pointer to the beginning or to a specified line\tRESTORE [<l-num>|(<numeric>)]\n\t[2] A statement to set the DATA pointer relative to the current line\t\tRESTORE +<numeric>\n\t[3] A statement to restore the DATA pointer to the value saved by a LOCAL DATA\tRESTORE DATA\n\t[4] A statement to restore the error handler to that saved by ON ERROR LOCAL\tRESTORE ERROR\n\t[5] A statement to restore LOCALs, PRIVATEs and formal parameters of an FN/PROC\tRESTORE LOCAL\nRETURN\t[1] A statement to return from a subroutine, optionally to a specified line\tRETURN [<l-num>|(<numeric>)]\n\t[2] A statement to return from an ON CLOSE/MOUSE/MOVE/SYS/TIME event handler\n\t[3] In a DEF FN or DEF PROC, indicates that a parameter is also used for output\nRIGHT$\t[1] A function returning the rightmost n characters (bytes) of a string\t\t<s-var>=RIGHT$(<string>,<numeric>)\n\t[2] A function returning the last character (byte) of a string\t\t\t<s-var>=RIGHT$(string) \n\t[3] A statement replacing the rightmost n bytes of a string with a new string\tRIGHT$(<s-var>,<numeric>)=<string>\n\t[4] A statement replacing the last byte of a string with a new string\t\tRIGHT$(<s-var>)=<string>\nRND\t[1] A function returning a pseudo-random signed 32-bit integer\t\t\t<n-var>=RND\n\t[2] A function returning a pseudo-random number from 0.0 to 0.9999999999\t<n-var>=RND(1)\n\t[3] A function returning a pseudo-random integer in the range 1 to n\t\t<n-var>=RND(<positive>)\n\t[4] A function repeating the last returned random number, in RND(1) format\t<n-var>=RND(0)\n\t[5] A function seeding the random number generator, and returning that seed\t<n-var>=RND(<negative>)\nRUN\t[1] A statement to run the current program from the start\t\t\tRUN\n\t[2] A statement synonymous with CHAIN\t\t\t\t\t\tRUN <string>\nSGN\tA function returning the sign, or signum, (−1, 0 or +1) of the argument\t\t<n-var>=SGN(<numeric>)\nSIN\tA function returning the sine of the radian angle supplied as its argument \t<n-var>=SIN(<numeric>)\nSOUND\tA statement to make a sound, optionally using an envelope\t\t\tSOUND <numeric>,<numeric>,<numeric>,<numeric>\nSOUND OFF\tA statement to silence any playing sound(s)\t\t\t\tSOUND OFF\nSPC\tUsed in an INPUT or PRINT statement, outputs the specified number of spaces\tINPUT|PRINT SPC(<numeric>)\nSQR\tA function returning the square-root of its numeric argument\t\t\t<n-var>=SQR(<numeric>)\nSTEP\tAn optional part of the FOR statement, specifying the increment value\t\tFOR <n-var>=<numeric> TO <numeric> [STEP <numeric>]\nSTOP\tA statement to stop the program and exit to immediate mode, doesn't close files\tSTOP\nSTR$\tA function returning the decimal string representation of its numeric argument\t<s-var>=STR$(<numeric>)\nSTR$~\tA function returning the hexadecimal representation of its numeric argument\t<s-var>=STR$~(<numeric>)\nSTRING$\tA function returning a concatenation of multiple copies of the same string\t<s-var>=STRING$(<numeric>,<string>)\nSUM\t[1] A function returning the sum of all the elements of a numeric array\t\t<n-var>=SUM(<n-array()>)\n\t[2] A function returning a concatenation of all the elements of a string array\t<s-var>=SUM(<s-array()>)\n\t[3] An operator giving the modulo-2^64 integer sum of two numeric operands\t<n-var>=<numeric> SUM <numeric>\nSUMLEN\tA function returning the sum of the lengths of the elements of a string array\t<n-var>=SUMLEN(<s-array()>)\nSWAP\t[1] A statement swapping the values of two numeric variables of the same type \tSWAP <n-var>,<n-var>\n\t[2] A statement swapping the values of two string variables\t\t\tSWAP <s-var>,<s-var>\n\t[3] A statement swapping two arrays or structures\t\t\t\tSWAP <array()>,<array()>|SWAP <struct{}>,<struct{}>\n\t[4] An optional qualifier of the RECTANGLE statement\t\t\t\tRECTANGLE SWAP <numeric>,<numeric>,<numeric>[,<numeric>] TO <numeric>,<numeric> \nSYS\t[1] A statement to call an Operating System API function by name\t\tSYS <string>{,<numeric>|<string>} [TO <n-var>]\n\t[2] A statement to call an Operating System or Library function by pointer\tSYS <numeric>{,<numeric>|<string>} [TO <n-var>]\n\t[3] A function returning the pointer to a named Operating System API function\t<n-var>=SYS(<string>)\nTAB\t[1] Used in an INPUT or PRINT statement, outputs spaces up to the given column\tINPUT|PRINT TAB(<numeric>)\n\t[2] Used in an INPUT or PRINT statament, moves the text caret to the col & row\tINPUT|PRINT TAB(<numeric>,<numeric>)\nTAN\tA function returning the tangent of the radian angle supplied as its argument\t<n-var>=TAN<numeric>\nTHEN\t[1] Specifies the action if the condition is true in a single-line IF statement\tIF <t-cond> THEN <stmt>{:<stmt>} [ELSE <stmt>{:<stmt>}]\n\t[2] When at the very end of an IF statement, introduces a multi-line IF clause\tIF <t-cond> THEN[;]\nTIME\t[1] A statement to set the elapsed-time clock to a value in centiseconds\tTIME=<numeric>\n\t[2] A function returning the current value of the elapsed time clock in cs\t<n-var>=TIME\nTIME$\tA function returning the current date and time as DoW.DD Mon Year,HH:MM:SS\t<s-var>=TIME$\nTINT\tA function returning the 24-bit colour at the given coordinates (&BBGGRR)\t<n-var>=TINT(<numeric>,<numeric>)\nTO\t[1] A mandatory part of the FOR statement, specifying the final value\t\tFOR <n-var>=<numeric> TO <numeric> [STEP <numeric>]\n\t[2] An optional part of the MOUSE and RECTANGLE statements\n\t[3] Specifies an optional terminator character in the GET$# function\n\t[4] Delimits the range of indices in an array slice, first TO last\t\t<array>({<numeric>,} <numeric> TO [<numeric>])\n\t[5] An optional part of the SYS statement specifying where the result is stored\tSYS <numeric>|<string>{,<numeric>|<string>} [TO <n-var>]\nTOP\tA function returning a pointer to (address of) the first byte after the program\t<n-var>=TOP\nTRACE\t[1] A statement to control whether line numbers are printed when executed\tTRACE ON|OFF\n\t[2] A statement to print line numbers if less than the specified value\t\tTRACE<l-num>|(<numeric>)\nTRACE STEP\tA statement to enter or exit single-step mode (when debugging)\t\tTRACE STEP [ON|OFF]\nTRUE\tA function returning the constant integer value −1\t\t\t\t<n-var>=TRUE\nUNTIL\tA statement which terminates a REPEAT loop, and exits the loop if non-zero\tUNTIL <t-cond>\nUSR\tA function calling a machine-code program and returning its integer exit value\t<n-var>=USR(<pointer>)\nVAL\tA function returning the numeric value of a string, or zero if not a number\t<n-var>=VAL(<string>)\nVDU\tA statement to send one or more values (8 or 16-bits) to the output stream\tVDU <numeric>{,|;<numeric>}[;][|]\nVPOS\tA function returning the vertical position of the text caret (cursor) 0=top\t<n-var>=VPOS\nWAIT\tA statement to wait for a specified number of centiseconds (or 1 ms if zero)\tWAIT [<numeric>]\nWHEN\tA part of the CASE statement specifying the action on a certain value or values\tWHEN <numeric>{,<numeric>}|<string>{<string>}:<stmt>{:<stmt>}\nWHILE\tA statement introducing a WHILE...ENDWHILE loop, giving the condition to loop\tWHILE <t-cond>\nWIDTH\t[1] A statement specifying the line length (in bytes) before an automatic CRLF\tWIDTH <numeric>\n\t[2] A function returning the line length before an automatic CRLF (0 if never)\t<n-var>=WIDTH\n\t[3] A function returning the width (in graphics units) of a string\t\t<n-var>=WIDTH(<string>)\n"
  },
  {
    "path": "examples/sounds/skaters.tun",
    "content": "; LES PATINEURS (The Skaters' Waltz) by Emile Waldteufel\n; Transcribed for Z80 Music by R.J.Stickley, August 1985\n; Introduction - Andante\nK3#=5\nSV448E+.B24B SV448E.24E\nTV19$E+F+G+A+B+C++ V29$GABC+D+E+\nTV19D++$$D++C++B+A+G+F+E+$$E+F+G+A+B+C++ V2F+$$FEDCB-A-G-$$GABC+D+E+\nTV19D++$$D++C++B+A+G+F+E+F+G+A+B+C++D++C++B+A+G+F+ TV2F+$$FEDCB-A-G-A-B-CDEFEDCB-A-\nTV19E+F+G+A+B+C++D++C++B+A+G+F+E+F+E+F+E+F+E+F+E+F+E+F+E+F+E+F+E+36$ TV29G-A-B-CDEFEDCB-A-G-B-G-B-G-B-G-B-G-B-G-B-G-B-G-B-36$\nTV19D#+E+18G+9E+F+E+F+E+F+E+F+E+F+ V218$D%+ V3$B V4$E\nTV19E+F+E+F+E+F+E+F+E+F+E+F+ V236C.E18F SV372E. V4A-.\nTV19E+F+E+F+E+F+E+F+E+F+E+F+ V272F. SV336E.E. V4A-.A-.\nTV19E+F+E+F+E+F+E+F+E+F+E+F+ V236D.F18G SV372E. V4B-.\nTV19E+F+E+F+E+F+E+F+E+F+E+F+ V272G. SV336E.E. V4B-.B-.\nTV19E+F+E+F+E+F+E+F+E+F+G+A+ V236E.A18G SV372A.V4C.\nTV19A+B+A+B+A+B+A+B+A+B+A+B+ V236G18F36A-18B- SV372A. V4D.\nTV19E++F++E++F++E++F++E++F++E++F%++F#++G++ V236C.B-. SV3A.E. V4E.D.\nTV19A++F++A++F++A++F++E++C++E++C++E++C++ SV272A. V3E. V4A-.\nTV19A+F+A+F+A+F+E+C+E+C+E+C+ V236C.C. SV4A-A-\nTV1100A.$ SV3E.$ V4A-.$\n; No.1 - Espressivo\nK3#=3\nTV180C.E40F80F.F. SV240$AA$AA$GG$GG V380$.$.40$EE$EE V4A-EECEEB-DDE-DD\nTV180D.F40G80G.G. SV240$GG$GG$AA$AA V3$EE$EE$$$$$$ V4B-DDE-DDCEECEE\nTV180B.A40C80E.D40C SV2$AA$AA$AA$AA V3$FF$FF$FF$FF V4F-CCF-CCB-DDB-DD\nTV180C.B-. SV240$GG$GG V3$EE$EE V4E-DDE-DD\nTV180A.40A$$ V2$EEE$$ V4A-CCC$$\nTV180C.E40F80F.F. SV240$AA$AA$GG$GG V380$.$.40$EE$EE V4A-EECEEB-DDE-DD\nTV180D.F40G80G.G. SV240$GG$GG$AA$AA V3$EE$EE$$$$$$ V4B-DDE-DDCEECEE\nTV180B.A40C80E.D40C SV2$AA$AA$AA$AA V3$FF$FF$FF$FF V4F-CCF-CCB-DDB-DD\nTV180C.B-. SV240$GG$GG V3$EE$EE V4E-DDE-DD\nV180A.40A V3$EEE V4A-CCC\nTV120E+A+F+A+ V240C+C+\nTV120E+A+F+A+E+A+F+A+E+A+F+A+ V240C+C+C+C+C+C+ SV3$AA$AA V4A-EEE-EE\nTV140E+20G+$G+$ V240D+20D+$D+$ SV340$GG V4B-EE\nTV140E+20G+$G+$ V240D+20D+$D+$ SV340$GG V4E-EE\nTV120E+B+F+B+E+B+F+B+E+B+F+B+ V240D+D+D+D+D+D+ SV340$BB$GG V4G-EEE-EE\nTV140E+20A+$A+$ V240C+20C+$C+$ SV340$AA V4A-EE\nTV140E+20A+$A+$ V240C+20C+$C+$ SV340$AA V4E-EE\nTV120E+A+F+A+E+A+F+A+E+A+F+A+ V240C+C+C+C+C+C+ SV3$AA$AA V4A-EEA-EE\nTV140E+20G+$G+$ V240C+20E+$E+$ SV340$GG V4G-EE\nTV140E+20G+$G+$ V240C+20E+$E+$ SV340$GG V4G-EE\nTV120G+A+G+A+G+A+G+A+G+A+G+A+ V240B#D+#BD+#B#D SV3$GG$GG V4G-FFG-FF\nTV120G+A+G+A+G+A+G+A+G+A+G+B+ V240C+E+C+E+D+E+ SV340$GG$GG V4CEEE-EE\nTV120E+A+F+A+E+A+F+A+E+A+F+A+ V240C+C+C+C+C+C+ SV3$AA$AA V4A-EEE-EE\nTV140E+20G+$G+$ V240D+20D+$D+$ SV340$GG V4B-EE\nTV140E+20G+$G+$ V240D+20D+$D+$ SV340$GG V4E-EE\nTV120E+B+F+B+E+B+F+B+E+B+F+B+ V240D+D+D+D+D+D+ SV340$BB$GG V4G-EEE-EE\nTV140E+20A+$A+$ V240C+20C+$C+$ SV340$AA V4A-EE\nTV140E+20A+$A+$ V240C+20C+$C+$ SV340$AA V4E-EE\nTV120AE+BE+AE+BE+AE+BE+ V240G%GGGGG V3$CC$CC SV4A-G%GA-GG\nTV120AD+BD+AD+BD+AD+BD+ V240FFFFFF% SV3$AA$AB V4DFFDFF%\nTV120C+E+C+E+C+E+D+E+D+E+D+E+ V240EAEGEG V3$CC$G-G- SV4EAAE-EE\nTV120C+E+C+E+C+E+ V240AEA SV3$AA V4A-EE\nTV140A+20E+A+F+A+ V240$C+C+ SV4A-\nTV120E+A+F+A+E+A+F+A+E+A+F+A+ V240C+C+C+C+C+C+ SV3$AA$AA V4A-EEE-EE\nTV140E+20G+$G+$ V240D+20D+$D+$ SV340$GG V4B-EE\nTV140E+20G+$G+$ V240D+20D+$D+$ SV340$GG V4E-EE\nTV120E+B+F+B+E+B+F+B+E+B+F+B+ V240D+D+D+D+D+D+ SV340$BB$GG V4G-EEE-EE\nTV140E+20A+$A+$ V240C+20C+$C+$ SV340$AA V4A-EE\nTV140E+20A+$A+$ V240C+20C+$C+$ SV340$AA V4E-EE\nTV120E+A+F+A+E+A+F+A+E+A+F+A+ V240C+C+C+C+C+C+ SV3$AA$AA V4A-EEA-EE\nTV140E+20G+$G+$ V240C+20E+$E+$ SV340$GG V4G-EE\nTV140E+20G+$G+$ V240C+20E+$E+$ SV340$GG V4G-EE\nTV120G+A+G+A+G+A+G+A+G+A+G+A+ V240B#D+#BD+#B#D SV3$GG$GG V4G-FFG-FF\nTV120G+A+G+A+G+A+G+A+G+A+G+B+ V240C+E+C+E+D+E+ SV340$GG$GG V4CEEE-EE\nTV120E+A+F+A+E+A+F+A+E+A+F+A+ V240C+C+C+C+C+C+ SV3$AA$AA V4A-EEE-EE\nTV140E+20G+$G+$ V240D+20D+$D+$ SV340$GG V4B-EE\nTV140E+20G+$G+$ V240D+20D+$D+$ SV340$GG V4E-EE\nTV120E+B+F+B+E+B+F+B+E+B+F+B+ V240D+D+D+D+D+D+ SV340$BB$GG V4G-EEE-EE\nTV140E+20A+$A+$ V240C+20C+$C+$ SV340$AA V4A-EE\nTV140E+20A+$A+$ V240C+20C+$C+$ SV340$AA V4E-EE\nTV120AE+BE+AE+BE+AE+BE+ V240G%GGGGG V3$CC$CC SV4A-G%GA-GG\nTV120AD+BD+AD+BD+AD+BD+ V240FFFFFF% SV3$AA$AB V4DFFDFF%\nTV120C+E+C+E+C+E+D+E+D+E+D+E+ V240EAEGEG V3$CC$G-G- SV4EAAE-EE\nTV120C+E+C+E+C+E+ V240AEA SV3$AA V4A-EE\nTV140A+$$ V2C+$$ SV3A$$ V4A-$$\n; Coda\nTV180C.E40F80F.F. SV240$AA$AA$GG$GG V380$.$.40$EE$EE V4A-EECEEB-DDE-DD\nTV180D.F40G80G.G. SV240$GG$GG$AA$AA V3$EE$EE V4B-DDE-DDCEECEE\nTV180B.A40C80E.D40C SV2$AA$AA$AA$AA V3$FF$FF$FF$FF V4F-CCF-CCB-DDB-DD\nTV180C.B-. SV240$GG$GG V3$EE$EE V4E-DDE-DD\nTV180A.40A V3$EEE V4A-CCC\n; No.2 - Risoluto\nK2#\nTV120FAD+F+\nTV140B+$A+ SV2$AA V4DFF\nTV140$5A+35A++40$ SV2$AA V4A-FF\nTV180C. SV240$AA V4EGG\nTV140C20GAC+E+ SV240$AA V4A-GG\nTV140B+$A+ SV2$AA V4EGG\nTV140$5A+35A++40$ SV2$AA V4A-GG\nTV180D. SV240$AA V4DFF\nTV140D20FAD+F+ SV240$AA V4A-FF\nTV140B+$A+ SV240$AA V4DFF\nTV140$5A+35A++40$ SV2$AA V4DFF\nTV180C. SV240$AA V4CFF\nTV140C5C+35C++40$ V2$CC SV3$AA V4CFF\nTV180E#. V240$CC SV3$BB V4CG#G\nTV140E#5E+#35E++#40$ V2$CC SV3$BB V4CG#G\nTV180F. V240CCC SV3AAA V4F$C\nTV140F20FAD+F+ V240C SV3A V4F-\nTV140B+$A+ SV2$AA V4DFF\nTV140$5A+35A++40$ SV2$AA V4A-FF\nTV180C. SV240$AA V4EGG\nTV140C20GAC+E+ SV240$AA V4A-GG\nTV140B+$A+ SV2$AA V4EGG\nTV140$5A+35A++40$ SV2$AA V4A-GG\nTV180D. SV240$AA V4DFF\nTV140D20FAD+F+ SV240$AA V4A-FF\nTV140B+$A+ SV240$AA V4DFF\nTV140$5A+35A++40$ SV2$AA V4DFF\nTV180C. SV240$AA V4CFF\nTV140C5C+35C++40$ V2$CC SV3$AA V4CFF\nTV180E#. V240$CC SV3$BB V4CG#G\nTV140E#5E+#35E++#40$ V2$CC SV3$BB V4CG#G\nTV180F.40F$$ V2CCCC$$ SV3AAAA$$ V4F$CF-$$\nTV15C++35B+5C++35B+5C++35B+ V240G+G+G+ SV3$BB V4G-GG\nTV15C++35B+5C++35B+5C%++35B&+ V240G+G+G+ SV3$BB& V4G-GG\nTV15B+35A+5B+35A+5B+35A+ V240F+F+F+ V3$DD SV4A-FF\nTV15B+35A+5B+35A+5B+35A+ V240F+F+F+ V3$DD SV4A-FF\nTV15B+35A+5B+35A+5B+35A+ V240G+G+G+ V3$CC SV4EGG\nTV15B+35A+5B+35A+5B+35A+ V240G+G+G+ V3$CC SV4A-GG\nTV15B+35A+5B+35A+5B+35A+ V240F+F+F+ V3$DD SV4DFF\nTV15B+35A+5B+35A+5B+35A#+ V240F+F+F+ V3$DF#- SV4DFF\nTV15C++35B+5C++35B+5C++35B+ V240G+G+G+ SV3$BB V4G-GG\nTV15C++35B+5C++35B+5C%++35B&+ V240G+G+G+ SV3$BB& V4G-GG\nTV15B+35A+5B+35A+5B+35A+ V240F+F+F+ V3$DD SV4A-FF\nTV15B+35A+5B+35A+5B+35A+ V240F+F+F+ V3$DD SV4A-FF\nTV15B+35A+5B+35A+5B+35A+ V240G+G+G+ V3$CC SV4EGG\nTV15B+35A+5D++35C++5D++35C++ V240G+G+G+ V3$CC SV4A-GG\nTV15E++35D++5E++35D++5E++35D++ V240FFF V3$DD SV4DFF\nTV140D+$$ SV4D$$\nTV15C++35B+5C++35B+5C++35B+ V240G+G+G+ SV3$BB V4G-GG\nTV15C++35B+5C++35B+5C%++35B&+ V240G+G+G+ SV3$BB& V4G-GG\nTV15B+35A+5B+35A+5B+35A+ V240F+F+F+ V3$DD SV4A-FF\nTV15B+35A+5B+35A+5B+35A+ V240F+F+F+ V3$DD SV4A-FF\nTV15B+35A+5B+35A+5B+35A+ V240G+G+G+ V3$CC SV4EGG\nTV15B+35A+5B+35A+5B+35A+ V240G+G+G+ V3$CC SV4A-GG\nTV15B+35A+5B+35A+5B+35A+ V240F+F+F+ V3$DD SV4DFF\nTV15B+35A+5B+35A+5B+35A#+ V240F+F+F+ V3$DF#- SV4DFF\nTV15C++35B+5C++35B+5C++35B+ V240G+G+G+ SV3$BB V4G-GG\nTV15C++35B+5C++35B+5C%++35B&+ V240G+G+G+ SV3$BB& V4G-GG\nTV15B+35A+5B+35A+5B+35A+ V240F+F+F+ V3$DD SV4A-FF\nTV15B+35A+5B+35A+5B+35A+ V240F+F+F+ V3$DD SV4A-FF\nTV15B+35A+5B+35A+5B+35A+ V240G+G+G+ V3$CC SV4EGG\nTV15B+35A+5D++35C++5D++35C++ V240G+G+G+ V3$CC SV4A-GG\nTV15E++35D++5E++35D++5E++35D++ V240F+F+F+ V3$DD SV4DFF\nTV140D+20FAD+F+ SV440D$$\nTV140B+$A+ SV2$AA V3$FF V480D.\nTV140$5A+35A++40$ SV2$AA V4A-FF\nTV180C. SV240$AA V4EAA\nTV140C20GAC+E+ SV240$AA V4A-GG\nTV140B+$A+ SV2$AA V4EGG\nTV140$5A+35A++40$ SV2$AA V4A-GG\nTV180D. SV240$AA V4DFF\nTV140D20FAD+F+ SV240$AA V4A-FF\nTV140B+$A+ SV2$AA V3$FF V480D.\nTV140$5D+35D++40$ SV2$AA V3$FF V480C#.\nTV180G. SV240$GG V3$DD V480B-.\nTV140G5D+35D++40$ SV2$G#G V3$F%F V480B&-.\nTV180A. SV240$AA V3$F#F V480A-.\nTV140A5A+35A++40$ V2$CC SV3$AA V4A-GG\nTV1160D+40$$ V2$AAA$$ V3160D40$$ SV4DF-A-D-$$\n; No.3 - Espressivo\nK3#\nTV180C++.E+. V240$CC$CC SV3$AA$AA V4A-EEA-EE\nTV180E+.D#+. V240$EE$D#D SV3$AA$AA V480F.F.\nTV180B+.D%+. V240$D%D$DD SV3$AA$GG V480F%.E.\nTV180D+.C+. V2E.E. SV340$AA$AA V4A-EEA-EE\nTV180B40C+D+G+.20F+ SV240$BB$D+D+ V3$$$$BB V4DFFB-FF\nTV180F+.E#+. V240$FF#E#E SV3$BB$BB V4CGGCGG\nTV180B40C+D+C++.20B+ V240$DD$DD SV3$BB$BB V4DFFB-FF\nTV180A+.G+. V240$DD$DD SV3$BB$BB V480E.E#.\nTV140B+A+F+E+D#+D%+ V2$CC$DD SV3$AA$BB V480F.G.\nTV115C+D+C+35B#40C+E+D+F V2$EE%$F V3$CA#-$D SV480A40A#80B40D\nTV1100A10AC+ V240$CC SV3$AA V4E.\nTV180B.A.40A$$ V2$DD$CCC$$ SV3$GG$AAA$$ V480E.40A-EEE$$\nTV180C++.E+. V240$CC$CC SV3$AA$AA V4A-EEA-EE\nTV180E+.D#+. V240$EE$D#D SV3$AA$AA V480F.F.\nTV180B+.D%+. V240$D%D$DD SV3$AA$GG V480F%.E.\nTV180D+.C+. V2E.E. SV340$AA$AA V4A-EEA-EE\nTV180B40C+D+G+.20F+ SV240$BB$D+D+ V3$$$$BB V4DFFB-FF\nTV180F+.E#+. V240$FF#E#E SV3$BB$BB V4CGGCGG\nTV180B40C+D+C++.20B+ V240$DD$DD SV3$BB$BB V4DFFB-FF\nTV180A+.G+. V240$DD$DD SV3$BB$BB V480E.E#.\nTV140B+A+F+E+D#+D%+ V2$CC$DD SV3$AA$BB V480F.G.\nTV115C+D+C+35B#40C+E+D+F V2$EE%$F V3$CA#-$D SV480A40A#80B40D\nTV1100A10AC+ V240$CC SV3$AA V4E.\nTV180B. V240$DD SV3$GG V480E.\nTV180A.40A20C++$C++$ V240$CCC$$ SV3$AAA$$ V4A-EEE$$\nTV120C++B+E#+$40F+ V2$DD SV3$BB V4DFF\nTV140F+20C++$B+$ V240$DD SV3$BB V4DFF\nTV120B+A+D#+$40E+ V2$CC SV4EAA\nTV140E+20B+$A+$ V240$CC SV4EAA\nTV120A+G+A#$40B V2$DD SV3$GG V4B-EE\nTV140B20G+$F+$ V240$DD SV3$GG V4E-EE\nTV120D#+F+E+$40C+ V240$CC SV3$AA V4A-EE\nTV140C+20C++$C++$ V240$CC SV3$AA V4A-EE\nTV120C++B+E#+$40F+ V2$DD SV3$BB V4DFF\nTV140F+20C++$B+$ V240$DD SV3$BB V4DFF\nTV120B+A+D#+$40E+ V2$CC SV4EAA\nTV140E+20B+$A+$ V240$CC SV4EAA\nTV120A+G+40G20G+F+ V240D SV3B V4E$$\nTV140F20F+F%+40F% V2D SV3A V4E$$\nTV120E+E+40E+G V220EE40EE SV320GG40GG V420EE40EE\nTV120A$C++$C++$ V220E V3C SV4A\nTV120C++B+E#+$40F+ V2$DD SV3$BB V4DFF\nTV140F+20C++$B+$ V240$DD SV3$BB V4DFF\nTV120B+A+D#+$40E+ V2$CC SV4EAA\nTV140E+20B+$A+$ V240$CC SV4EAA\nTV120A+G+A#$40B V2$DD SV3$GG V4B-EE\nTV140B20G+$F+$ V240$DD SV3$GG V4E-EE\nTV120D#+F+E+$40C+ V240$CC SV3$AA V4A-EE\nTV140C+20C++$C++$ V240$CC SV3$AA V4A-EE\nTV120C++B+E#+$40F+ V2$DD SV3$BB V4DFF\nTV140F+20C++$B+$ V240$DD SV3$BB V4DFF\nTV120B+A+D#+$40E+ V2$CC SV4EAA\nTV140E+20B+$A+$ V240$CC SV4EAA\nTV120A+G+40G20G+F+ V240D SV3B V4E$$\nTV140F20F+F%+40F% V2D SV3A V4E$$\nTV120E+E+40E+G V220EE40EE SV320GG40GG V420EE40EE\nTV140A20$A40A V2E20$E40E V3C20$A-40A- SV4A20$A-40A-\n; No.4 - Amabile\nK2#\nTV180F+.40C+D+F+ V2$DD$DD SV3$AA$AA V480D.F.\nTV180B.B. V240$DD SV3$BBFGB V480G.40F-G-B-\nTV180G+.40D#+E+G+ V2$EE$EE SV3$GG$BB V480E.G.\nTV180C+.C+. V240$EE SV3$C+C+G#AC+ V480A.40G#-A-C\nTV180A+.40E#+F+A+ V2$CC$CC SV3$AA$AA V480F.F.\nTV180D+.40C+D+F+ V2$DD$DD SV3$BB$BB V4B-FFB-FF\nTV180E+.40D#+E+A+ SV2$B&B$C+C+ V3$GG$AA V480E.40A-\nTV180D+.40D+$$ SV2$AAA$$ V4DFFF$$\nTV180F+.40C+D+F+ V2$DD$DD SV3$AA$AA V480D.F.\nTV180B.B. V240$DD SV3$BBFGB V480G.40F-G-B-\nTV180G+.40D#+E+G+ V2$EE$EE SV3$GG$BB V480E.G.\nTV180C+.C+. V240$EE SV3$C+C+G#AC+ V480A.40G#-A-C\nTV180A+.40E#+F+A+ V2$CC$CC SV3$AA$AA V480F.F.\nTV180D+.40C+D+F+ V2$DD$DD SV3$BB$BB V4B-FFB-FF\nTV180E+.40D#+E+A+ SV2$B&B$C+C+ V3$GG$AA V480E.40A-\nTV180D+.20A-DFAD+F+ SV240$AA V4DFFD$$\nTV120A+B+A+F+D+G+F+D+BE+D+A SV240F+D+BAGF\nTV120C+C+40C+C+ V220GG40GG SV320AA40AA V420A-A-40A-A-\nTV120A+B+A+G+AF+E+E+40E+E+ V2$$$20AA40AA V3$$$20CC40CC SV4$$$20AA40AA\nTV120A+B+A+G+AF+D+D+40D+D+ V240$$$20AA40AA V3$$$20FF40FF V4$$$20DD40$$\nTV120A-DFAD+F+\nTV120A+B+A+F+D+G+F+D+BE+D+A SV240F+D+BAGF\nTV120C+C+40C+C+20C+D+C+F+E#+A+ V220G#G40GG V320CC40CC SV420E#E40EE\nTV120G#+G+40G+G+20C+F+E#+A+G#+C+ V2E#+E+40E+E+ V320CC40CC SV420CC40CC\nTV140F+20$F+40F+20A-DFAD+F+ V240C20$C+40C+ SV3A20$F40F V4F20$F-40F-\nTV120A+B+A+F+D+G+F+D+BE+D+A SV240F+D+BAGF\nTV120C+C+40C+C+ V220GG40GG SV320AA40AA V420A-A-40A-A-\nTV120A+B+A+G+AF+E+E+40E+E+ V2$$$20AA40AA V3$$$20CC40CC SV4$$$20AA40AA\nTV120A+B+A+G+AF+D+D+40D+D+ V240$$$20AA40AA V3$$$20FF40FF V4$$$20DD40$$\nTV120A-DFAD+F+\nTV120A+B+A+F+D+G+F+D+BE+D+A SV240F+D+BAGF\nTV120C+C+40C+C+20C+D+C+F+E#+A+ V220G#G40GG V320CC40CC SV420E#E40EE\nTV120G#+G+40G+G+20C+F+E#+A+G#+C+ V2E#+E+40E+E+ V320CC40CC SV420CC40CC\nTV140F+20$F+40F+ V240C20$C+40C+ SV3A20$F40F V4F20$F-40F-\nTV140A+.20A+40A+ V2C+.20C+40C+ SV3E.20E40E V4E-.20E-40E-\nTV180F+.40C+D+F+ V2$DD$DD SV3$AA$AA V480D.F.\nTV180B.B. V240$DD SV3$BBFGB V480G.40F-G-B-\nTV180G+.40D#+E+G+ V2$EE$EE SV3$GG$BB V480E.G.\nTV180C+.C+. V240$EE SV3$C+C+G#AC+ V480A.40G#-A-C\nTV180A+.40E#+F+A+ V2$CC$CC SV3$AA$AA V480F.F.\nTV180D+.40C+D+F+ V2$DD$DD SV3$BB$BB V4B-FFB-FF\nTV180E+.40D#+E+A+ SV2$B&B$C+C+ V3$GG$AA V480E.40A-\nTV180D+.40D+$$ SV2$AAA$$ V4DFFF$$\n; Coda\nK3#\nTV120E+E+40E+E+ V220DD40DD SV320BB40BB V420GG40GG\nTV120D+BD+F+B+F+ V280F+. V3B. SV4A.\nTV180E+. V220EE40EE SV320BB40BB V420GG40GG\nTV120D+BD+F+B+F+ V280F+. V3B. SV4A.\nTV120E+$10B++A++G++F++20E++$ V2E V3D SV4G\nTV110B+A+G+F+20E+$10D+C+BA20G$40$$ SV4$$10D+C+BA20G$40$$\nSV1E-$$ V2E-$$ V3E-$$ V4E-$$\nTV180C.E40F80F.F. SV240$AA$AA$GG$GG V380$.$.40$EE$EE V4A-EECEEB-DDE-DD\nTV180D.F40G80G.G. SV240$GG$GG$AA$AA V3$EE$EE V4B-DDE-DDCEECEE\nTV180B.A40C80E.D40C SV2$AA$AA$AA$AA V3$FF$FF$FF$FF V4F-CCF-CCB-DDB-DD\nTV180C.B-. SV240$GG$GG V3$EE$EE V4E-DDE-DD\nTV180A.40A$$ V2$EEE$$ V4A-CCC$$\nTV180C.E40F80F.F. SV240$AA$AA$GG$GG V380$.$.40$EE$EE V4A-EECEEB-DDE-DD\nTV180D.F40G80G.G. SV240$GG$GG$AA$AA V3$EE$EE V4B-DDE-DDCEECEE\nTV180B.A40C80E.D40C SV2$AA$AA$AA$AA V3$FF$FF$FF$FF V4F-CCF-CCB-DDB-DD\nTV180C.B-. SV240$GG$GG V3$EE$EE V4E-DDE-DD\nV180A.40A V2$EEE V4A-CCC\nTV120E+A+F+A+ V240C+C+\nTV120E+A+F+A+E+A+F+A+E+A+F+A+ V240C+C+C+C+C+C+ SV3$AA$AA V4A-EEE-EE\nTV140E+20G+$G+$ V240D+20D+$D+$ SV340$GG V4B-EE\nTV140E+20G+$G+$ V240D+20D+$D+$ SV340$GG V4E-EE\nTV120E+B+F+B+E+B+F+B+E+B+F+B+ V240D+D+D+D+D+D+ SV340$BB$GG V4G-EEE-EE\nTV140E+20A+$A+$ V240C+20C+$C+$ SV340$AA V4A-EE\nTV140E+20A+$A+$ V240C+20C+$C+$ SV340$AA V4E-EE\nTV120E+A+F+A+E+A+F+A+E+A+F+A+ V240C+C+C+C+C+C+ SV3$AA$AA V4A-EEA-EE\nTV140E+20G+$G+$ V240C+20E+$E+$ SV340$GG V4G-EE\nTV140E+20G+$G+$ V240C+20E+$E+$ SV340$GG V4G-EE\nTV120G+A+G+A+G+A+G+A+G+A+G+B#+ V240B#F+BF+BF+ SV3$GG$GG V4G-FFG-FF\nTV140C++20$C++40C++ V240E+20$E+40E+ SV340G20G40G V4C20$C40C\nTV140$20E+A+F+A+ V240$20C+$C+\nTV120E+A+F+A+E+A+F+A+E+A+F+A+ V240C+C+C+C+C+C+ SV3$AA$AA V4A-EEE-EE\nTV140E+20G+$G+$ V240D+20D+$D+$ SV340$GG V4B-EE\nTV140E+20G+$G+$ V240D+20D+$D+$ SV340$GG V4E-EE\nTV120E+B+F+B+E+B+F+B+E+B+F+B+ V240D+D+D+D+D+D+ SV340$BB$GG V4G-EEE-EE\nTV140E+20A+$A+$ V240C+20C+$C+$ SV340$AA V4A-EE\nTV140E+20A+$A+$ V240C+20C+$C+$ SV340$AA V4E-EE\nTV120E+A+F+A+E+A+F+A+E+A+F+A+ V240C+C+C+C+C+C+ SV3$AA$AA V4A-EEA-EE\nTV140E+20G+$G+$ V240C+20E+$E+$ SV340$GG V4G-EE\nTV140E+20G+$G+$ V240C+20E+$E+$ SV340$GG V4G-EE\nTV120G+A+G+A+G+A+G+A+G+A+G+B#+ V240B#F+BF+BF+ SV3$GG$GG V4G-FFG-FF\nTV140C++20$C++40C++ V240E+20$E+40E+ SV340G20G40G V4C20$C40C\nTV120C+C+C+$C+$ V2CCC$C$\nTV120C++B+E#+$40F+ V2$DD SV3$BB V4DFF\nTV140F+20C++$B+$ V240$DD SV3$BB V4DFF\nTV120B+A+D#+$40E+ V2$CC SV4EAA\nTV140E+20B+$A+$ V240$CC SV4EAA\nTV120A+G+A#$40B V2$DD SV3$GG V4B-EE\nTV140B20G+$F+$ V240$DD SV3$GG V4E-EE\nTV120D#+F+E+$40C+ V240$CC SV3$AA V4A-EE\nTV140C+20C++$C++$ V240$CC SV3$AA V4A-EE\nTV120C++B+E#+$40F+ V2$DD SV3$BB V4DFF\nTV140F+20C++$B+$ V240$DD SV3$BB V4DFF\nTV120B+A+D#+$40E+ V2$CC SV4EAA\nTV140E+20B+$A+$ V240$CC SV4EAA\nTV120A+G+40G20G+F+ V240D SV3B V4E$$\nTV140F20F+F%+40F% V2D SV3A V4E$$\nTV120F%+E+40E20E+E&+40E&20E&+D+40D V220D SV3G V4E\nTV180C.E40F80F.F. SV240$AA$AA$GG$GG V380$.$.40$EE$EE V4A-EECEEB-DDE-DD\nTV180D.F40G80G.G. SV240$GG$GG$AA$AA V3$EE$EE V4B-DDE-DDCEECEE\nTV180B.A40C80E.D40C SV2$AA$AA$AA$AA V3$FF$FF$FF$FF V4F-CCF-CCB-DDB-DD\nTV180C.B-. SV240$GG$GG V3$EE$EE V4E-DDE-DD\nTV180A.40A V2$EEE V4A-CCC\n; Grandioso\nTV180$C+.E+40F+ V280$C.E40F SV380$40A-AA$AA V480$40A-EECEE\nTV180F+.F+. V2F.F. SV340$GG$GG V4B-EEE-EE\nTV180D+.F+40G+ V280D.F40G SV3$GG$GG V4B-EEE-EE\nTV180G+.G+. V2G.G. SV340$AA$AA V4CEECEE\nTV180B+.A+40C+ V280B.A40C SV3$C+C+$AA V4FAAF-FF\nTV180E+.D+40C+ V280E.D40C SV3$AA$AA V4B-DDB-DD\nTV180C+.B. V2C.B-. SV340$GG$GG V4E-DDE-DD\nTV120A$10A+B+C++D++20E++$ SV2A V3E V4A-\nTV110B+A+G+F+20E+$40G+ V2$$D+ SV3$$B V4$$E\nTV120A+$10A+B+C++D++20E++$ V2E+ SV3A V4A-\nTV110B+A+G+F+20E+$40G+ V2$$D+ SV3$$B V4$$E\nTV120A+$5D++35C++5D++35C++ V220E+$ SV380A. V4A-.\nTV15D++35C++5D++35C++5D++35C++ V240A+A+A+ V380F+. SV4F.\nTV15D++35C++5D++35C++5D++35C++ V240A+A+A+ V380E. SV4E.\nTV15D++35C++5D++35C++5D++35C++ V240A+A+A+ V380C. SV4C.\nTV15D++35C++5D++35C++5D++35C++ V240A+A+A+ SV380A. V4A-.\nTV15D++35C++5D++35C++5D++35C++ V240A+A+A+ SV380F. V4F-.\nTV15D++35C++5D++35C++5D++35C++ V240A+A+A+ SV380E. V4E-.\nTV15D++35C++5D++35C++5D++35C++ V240A+A+A+ SV380C. V4C-.\nTV15D++35C++40$$ V2A+$$ SV3A-$$ V4A-$$\nTV180$20$.C++ V280$20$.E+ V380$20$.A SV480$20$.A\nTV140C++$$ V2E+$$ V3A$$ SV4A$$\nTV180$20$.A V280$20$.C SV380$20$.A V480$20$.A-\nTV180A.A.40A V280C.C.40C SV380A-.A-.40A- V480A-.A-.40A-\n250$\n"
  },
  {
    "path": "examples/sounds/tofair.tun",
    "content": "[\n[ \"Come to the Fair\" - Music: Easthope Martin, Lyrics: Helen Taylor.\n[ Arranged and coded by R.J.Stickley 3 June 1983.\n[\nK2&=130\nV1W2V2W5V3W5V4W3 PA\nTV124F\nTV1D+.12E+24F+ V2B.12C+24D+ SV3B-B V4B--F\nPB\nTV148A+24G+ V248A24G SV3EB V4E-G\nTV148F+24B V248F24B SV3DF V4D-D\nTV148F+24E+ V248G24C+ SV3CG  V4C-E\nTV148D+24B V248F24D SV3FB V4F-F\nTV124D+.12C+24B V2E%. SV3GB& V4G-G\nTV148C+. V224$GA V3$E&F SV448F-.\nTV124B V2F SV3B- V4B--\n[ The sun is a shining to welcome the day, heigh ho! come to the fair.\n[ The folk are all singing so merry and gay, heigh ho! come to the fair.\n[ All the stalls on the green are as fine as can be, with trinkets and\n[ tokens so pretty to see, so it's come then, maidens and men, to the fair\n[ in the pride of the morning.\n[ So deck yourselves out in your finest array,\n[ With a heigh ho! come to the fair.\nPC\nTV124$F\nTV1BBB V2$FF SV348B- V4B--\nTV124BC+B V2$E%E% SV348C V4C-\nTV124AFF V2$FF SV3F V4F-\nTV1F.$12$ V224$GA SV348E V4E-\nPD\nTV148B. V224B-FF SV348D. V4D-.\nTV1F+. V224FAA SV3D+. V4D.\nTV124E+D+C+ V2GFE SV3C+48F V424CFF-\nTV1B.12$24F V224F.$12$ V324D.$12$ SV424B-12B--\nPE\nTV124B,B,B, V2D,D,E%, SV3B-,C,C#, V4B--,C--,C#--,\nTV1BC+B V2F48G SV324D48E% V424D-48E%-\nTV124AFF, V2CB-B%-, SV3FGG#, V4F-G-G#-,\nTV124FGA V248C. SV324AFE& V4A-F-E&-\nPF\nTV148B. V224B-FF SV348D. V4D-.\nTV1F+. V224FAA SV3D+. V4D.\nTV124E+D+C+ V2GFE SV3C+48F V424CFF-\nTV1B.12$ V224F. V324D. SV424B-12B--\nPG\nTV112BC+\nTV124D+D+D+ V2$BB SV348B24A V448B-24A-\nTV124D+C+B V248E%. SV3G. V4G-.\nTV124C+C+C+ V2$FE% SV348A24G V448A-24G-\nTV124C+BA V248E&. SV3F#. V4F#-.\nTV124BBB V2$E%D SV348G24F% V448G-24F%-\nTV124BAG V248C#. SV3E%. V4E%-.\nTV124AAAA V2$DDC# SV348F24$E% V448F-24$E%-\nPH\nTV124B%C#+ V2B%-C# SV3E%A- V4E%-A--\nTV148D+. V224DAA SV348D. V4D-.\nTV1B. V224B-GG SV348E%. V4E%-.\nTV124AFG V2A-C#A- SV348A-. V4A--.\nTV124AFG V2B-DB- SV348B-. V4B--.\nTV124AFG V2B%-48D SV3G-. V4G--.\nTV124AC+A V248F24F SV348C. V4C-.\nTV148G. V224$DC SV3CDE% V4C-D-E%-\nPI\nTV124F.12F V224CE&C SV348F. V4F-.\nTV124BBB V2DDE% SV3B-CC# V4B--C--C#--\nTV1BC+B V2F48G SV324D48E% V424D-48E%-\nTV124AFF V2CB-B%- SV3FGG# V4F-G-G#-\nPJ\nTV124FGA V248C24E SV348A24F V448A-24F-\nTV148B. V224B-DD SV348D.V4D-.\nTV148F+.F+12F+$ V224FAAFG12F$  SV348D+.C+12C+$ V448D.C12C$\nTV124E+D+C+ V2AFE SV348F24F- V448F-24F--\nTV124D+.12E+24F+ V248B. SV324B-D+ V4B--F\nPK RB\nTV148A+24G+ V248A24G SV3EB V4E-G\nTV148F+24B V248F24B SV3DF V4D-D\nTV148F+24E+ V248G24C+ SV3CG  V4C-E\nTV148D+24B V248F24D SV3FB V4F-F\nTV124D+.12C+24B V2E%. SV3GB& V4G-G\nTV148C+. V224$GA V3$E&F SV448F-.\nTV124B V2F SV3B- V4B--\n[\n[ The fiddles are playing the tune that you know, heigh ho! come to the fair.\n[ The drums are all beating, away let us go, heigh ho! come to the fair.\n[ There'll be racing and chasing from morning till night, and roundabouts\n[ turning to left and to right, so it's come then maidens and men to the\n[ fair in the pride of the morning.\n[ So lock up your house, there'll be plenty of fun,\n[ And it's heigh ho! come to the fair.\nV1W4V2W6V3W6V4W6 PL\nTV124$F\nTV124BBB V212$BC+D+E+F+ V324B-FF V4B-DD\nTV124BC+B V212G+A+B+C++D++E%++ V324G-E%E% V4G-CB-\nTV124AFF V212F++E++A+F+C+A V324F-CC SV4FAA\nTV124FGA V2FFF SV3EC+C+ V4EAA\nV1W6V2W5V3W5V4W3 PM\nTV148B. V224B-FF SV348D. V4D-.\nTV1F+. V224FAA SV3D+. V4D.\nTV124E+D+C+ V2GFE SV3C+48F V424CFF-\nTV1B.12$24F V224F.$12$ V324D.$12$ SV424B-12B--\nV1W6V2W6V3W6V4W4 PN\nTV124$12B,B,24B, V2$12F,F,24F, V3$12B-,B-,24B-, SV448B-.\nTV124$12B,B,24B, V2$12E%,E%,24E%, V3$12C,C,24C, SV448C.\nTV124$12A,A,24A, V2$12F,F,24F, V3$12C,C,24C, SV448F.\nTV124F. V224$FA V3$CC SV448E-.\nPO\nTV148B. V224B-FF SV348D. V4D-.\nTV1F+. V224FAA SV3D+. V4D.\nTV124E+D+C+ V2GFE SV3C+48F V424CFF-\nTV124B$ V224F$ V324D$ SV424B-$\nV1W5V2W5V3W5V4W5 PP\nTV112BC+\nTV124D+D+D+ V2$12GABC+ V324$FF SV448B.\nTV124D+C+B V2$E%E% V3$CC SV4G.\nTV124C+C+C+ V2C+12FGAB V324$E%E% SV448A.\nTV124C+BA V2$DE V3$B-C SV448F#.\nTV124BBB V2B12E%FGA V324$DD SV448G.\nTV124BAG V2$C#C# V3$B&B& SV448E%.\nTV124AAAA V2$DDC# SV348F24$E% V448F-24$E%-\nV1W2V2W6V3W6V4W4 PQ RH RI\nTV124B%C#+ V2B%-C# SV3E%A- V4E%-A--\nTV148D+. V224DAA SV348D. V4D-.\nTV1B. V224B-GG SV348E%. V4E%-.\nTV124AFG V2A-C#A- SV348A-. V4A--.\nTV124AFG V2B-DB- SV348B-. V4B--.\nTV124AFG V2B%-48D SV3G-. V4G--.\nTV124AC+A V248F24F SV348C. V4C-.\nTV148G. V224$DC SV3CDE% V4C-D-E%-\nTV124F.12F V224CE&C SV348F. V4F-.\nTV124BBB V2DDE% SV3B-CC# V4B--C--C#--\nTV1BC+B V2F48G SV324D48E% V424D-48E%-\nTV124AFF V2CB-B%- SV3FGG# V4F-G-G#-\nPS RJ RB\nTV124FGA V248C24E SV348A24F V448A-24F-\nTV148B. V224B-DD SV348D.V4D-.\nTV148F+.F+12F+$ V224FAAFG12F$  SV348D+.C+12C+$ V448D.C12C$\nTV124E+D+C+ V2AFE SV348F24F- V448F-24F--\nTV124D+.12E+24F+ V248B. SV324B-D+ V4B--F\nTV148A+24G+ V248A24G SV3EB V4E-G\nTV148F+24B V248F24B SV3DF V4D-D\nTV148F+24E+ V248G24C+ SV3CG  V4C-E\nTV148D+24B V248F24D SV3FB V4F-F\nTV124D+.12C+24B V2E%. SV3GB& V4G-G\nTV148C+. V224$GA V3$E&F SV448F-.\nTV124B V2F SV3B- V4B--\n[\n[ For love making too, if so be you've a mind, heigh ho! come to the fair.\n[ For hearts that are happy are loving and kind, heigh ho! come to the fair.\n[ If \"Haste to the wedding\" the fiddles would play, we warrant you'll dance\n[ to the end of the day; come then maidens and men to the fair in the pride\n[ of the morning. The sun is a shining to welcome the day, with a heigh ho!\n[ come to the fair, maidens and men, maidens and men, come to the fair\n[ in the morning.   Heigh Ho! come to the fair!\nV1W5V2W5V3W5V4W5 PU RC\nTV124$F\nTV1BBB V2$FF SV348B- V4B--\nTV124BC+B V2$E%E% SV348C V4C-\nTV124AFF V2$FF SV3F V4F-\nTV1F.$12$ V224$GA SV348E V4E-\nV1W2V2W5V3W5V4W3 PV RD\nTV148B. V224B-FF SV348D. V4D-.\nTV1F+. V224FAA SV3D+. V4D.\nTV124E+D+C+ V2GFE SV3C+48F V424CFF-\nTV1B.12$24F V224F.$12$ V324D.$12$ SV424B-12B--\nV1W6V2W6V3W6V4W7 PW RE\nTV124B,B,B, V2D,D,E%, SV3B-,C,C#, V4B--,C--,C#--,\nTV1BC+B V2F48G SV324D48E% V424D-48E%-\nTV124AFF, V2CB-B%-, SV3FGG#, V4F-G-G#-,\nTV124FGA V248C. SV324AFE& V4A-F-E&-\nV1W2V2W5V3W5V4W3 PX RF\nTV148B. V224B-FF SV348D. V4D-.\nTV1F+. V224FAA SV3D+. V4D.\nTV124E+D+C+ V2GFE SV3C+48F V424CFF-\nTV1B.12$ V224F. V324D. SV424B-12B--\nV1W6V2W2V3W2V4W3 PY RP\nTV112BC+\nTV124D+D+D+ V2$12GABC+ V324$FF SV448B.\nTV124D+C+B V2$E%E% V3$CC SV4G.\nTV124C+C+C+ V2C+12FGAB V324$E%E% SV448A.\nTV124C+BA V2$DE V3$B-C SV448F#.\nTV124BBB V2B12E%FGA V324$DD SV448G.\nTV124BAG V2$C#C# V3$B&B& SV448E%.\nTV124AAAA V2$DDC# SV348F24$E% V448F-24$E%-\nV1W2V2W5V3W6V4W6 PZ RH\nTV124B%C#+ V2B%-C# SV3E%A- V4E%-A--\nTV148D+. V224DAA SV348D. V4D-.\nTV1B. V224B-GG SV348E%. V4E%-.\nTV124AFG V2A-C#A- SV348A-. V4A--.\nTV124AFG V2B-DB- SV348B-. V4B--.\nTV124AFG V2B%-48D SV3G-. V4G--.\nTV124AC+A V248F24F SV348C. V4C-.\nTV148G. V224$DC SV3CDE% V4C-D-E%-\nPA\nTV124F.12F V224CE&C SV348F. V4F-.\nTV124BBB V2DDE% SV3B-CC# V4B--C--C#--\nTV1BC+B V2F48G SV324D48E% V424D-48E%-\nTV124AFF V2CB-B%- SV3FGG# V4F-G-G#-\nTV124FGA V248C24E SV324AFE V424A-F-E-\nTV148B. V224B-DD SV348D.V4D-.\nTV148F+. V224FAA SV348D+. V448D.\nTV124F+E+D+ V2$GG SV348C+. V4C.\nTV148E+. V224ABC+ SV3FGA V4F-G-A-\nTV124E+D+C+ V2$FF SV348B. V4B-.\nTV148D+. V2E. SV324EFG V4E-F-G-\nTV124D+C+B V2$GG SV3A. V4A-.\nTV148C+. V224F#GA SV3DE%F# V4D-E%-F#-\nTV124C+BA V2$GG SV348G. V4G-.\nTV124BC+B V248C. SV3E%24C V448E%-24C-\nTV148A24G V2$FE% SV348F24G V448F-24G-\nTV124FGA V248C24E& SV3AGF V4A-G-F-\nTV148B. V224B-DD SV348D.V4D-.\nV1W5V2W5V3W5V4W3 PE\nTV148F+. V224FAA SV348D+. V448D.\nTV148F12F$ V224$G12G$ SV348C+12C+$ V448C12C$\nTV124E+D+C+ V224E+D+F+ SV348F24A V448F-24A-\nPF\nTV1 48B+. V2 24D+.12E+24F+ V3 24B+.12C+24D+ V4 24B--F$\nTV1 48B+. V2 48G+24B+      V3 48E+24G+      V4 24E-E$\nTV1 48B+. V2 48B.          V3 48B-.         V4 48B--.\nTV1 24B+  V2 48B+.         V3 48F.          V4 48D.\nTV1 24D+  V2 24B+          V3 24F           V4 24D\n"
  },
  {
    "path": "examples/starcmds.txt",
    "content": "Command\t                             Description\tInformal syntax\n\n*BYE\tExit the interpreter and return to the calling program.  Synonymous with *QUIT.\tOSCLI \"BYE\"\n*CD\tPrint the current working directory.  If followed by a name, acts as *CHDIR.\tOSCLI \"CD\" [+ \" \"\"\" + name$ + \"\"\"\"]\n*CHDIR\tChange the current working directory (folder) to a different drive and/or path.\tOSCLI \"CHDIR \"\"\" + directory$ + \"\"\"\"\n*COPY\tCopy a file, the extensions default to .bbc (add a trailing dot if none).\tOSCLI \"COPY \"\"\" + srcfile$ + \"\"\" \"\"\" + dstfile$ + \"\"\"\"\n*DEL\tDelete the specified file, the extension defaults to .bbc (add a dot if none).\tOSCLI \"DEL \"\"\" + file$ + \"\"\"\"\n*DELETE\tSynonymous with *DEL.\n*DIR\tList the disk directory, optionally specifying the directory and/or filename.\tOSCLI \"DIR\" [+ \" \"\"\" + afsp$ + \"\"\"\"]\n*.\tSynonymous with *DIR.\n*DISPLAY\tDisplay an image (BMP, GIF, JPG, PNG) optionally specifying posn, size and key.\tOSCLI \"DISPLAY \"\"\" + file$ + \"\"\" \" [+ STR$(x%) + \",\" + STR$(y%) + \",\" + STR$(w%) + \",\" + STR$(h%) [+ \",\" + STR$~key%]]\n*DUMP\tList the hex contents of a file, optionally specifying the start and length.\tOSCLI \"DUMP \"\"\" + file$ + \"\"\" \" [+ STR$~start% [+ \" +\" + STR$~length%]]\n*ERA\tSynonymous with *DEL.\n*ERASE\tSynonymous with *ERA and *DEL.\n*ESC\tEnable or disable the abort/error action of the ESCape or Back key (ERR = 17).\tOSCLI \"ESC ON|OFF\" \n*EXEC\tAccept console input from the specified file rather than from the keyboard.\tOSCLI \"EXEC \"\"\" + file$ + \"\"\"\"\n*FLOAT\tSelect the floating-point precision used by indirection (|) and data files.\tOSCLI \"FLOAT 40|64|80\"\n*FONT\tSelect the required font file (TTF or OTF), size and, optionally, attribute(s).\tOSCLI \"FONT \"\"\" + font$ + \"\"\",\" + STR$(points%) [+ \",BIUQ\"]\n*FX\tIgnored except for *FX 15,n and *FX 21,n which flush the specified buffer.\tOSCLI \"FX \" + STR$(number%) [+ \",\" + STR$(buffer%)]\n*FX19\tForce a screen refresh, synonymous with *REFRESH (with no parameters).\n*GSAVE\tSave the output window, or a specified rectangle, to a BMP-format image file.\tOSCLI \"GSAVE \"\"\" + file$ + \"\"\" \" [+ STR$(x%) + \",\" + STR$(y%) + \",\" + STR$(w%) + \",\" + STR$(h%)] \n*HELP\tPrint the name and version number of BBC BASIC.\t\t\t\t\tOSCLI \"HELP\"\n*HEX\tSet hexadecimal conversion (& and ~) and shifts (<< and >>>) to 32 or 64 bits.\tOSCLI \"HEX 32|64\"\n*INPUT\tRedirect console input to come from the specified input channel (0 = keyboard).\tOSCLI \"INPUT \" + STR$(channel%)\n*KEY\tRedefine a function or cursor key to return the specified string (or not).\tOSCLI \"KEY \" + STR$(keynum%) [+ \" \"\"\" + string$ + \"\"\"\"]\n*LIST\tList the specified internal format (tokenised, .bbc) program file.\t\tOSCLI \"LIST \"\"\" + progfile$ + \"\"\"\"\n*LOAD\tLoad a file into memory at the specified hex address and maximum length.\tOSCLI \"LOAD \"\"\" + file$ + \"\"\" \" + STR$~address%% + \" \" + STR$~maxlen%\n*LOCK\tSet the specified file to 'read-only' status, the extension defaults to .bbc.\tOSCLI \"LOCK \"\"\" + file$ + \"\"\"\"\n*LOWERCASE\tEnable or disable accepting keywords, hex and E-format numbers in lowercase.\tOSCLI \"LOWERCASE ON|OFF\"\n*MD\tCreate a new directory (folder) with the specified relative or absolute name.\tOSCLI \"MKDIR \"\"\" + directory$ + \"\"\"\"\n*MDISPLAY\tAs *DISPLAY but read the image data from memory rather than from a file.\tOSCLI \"MDISPLAY \" + STR$~address%% + \" \" [+ STR$(x%) + \",\" + STR$(y%) + \",\" + STR$(w%) + \",\" + STR$(h%) [+ \",\" + STR$~key%]]\n*MKDIR\tSynonymous with *MD.\n*OSK\tEnable or disable the On Screen Keyboard (effective only in Android and iOS).\tOSCLI \"OSK ON|OFF\"\n*OUTPUT\tRedirect console output to go to the specified output channel (0 = screen).\tOSCLI \"OUTPUT \" + STR$(channel%)\n*QUIT\tSynonymous with *BYE (and with the QUIT statement).\t\t\t\tOSCLI \"QUIT\"\n*RD\tRemove (delete) the directory with the specified relative or absolute name.\tOSCLI \"RMDIR \"\"\" + directory$ + \"\"\"\"\n*REFRESH\tEnable or disable automatic screen refresh, or force an immediate refresh.\tOSCLI \"REFRESH [ON|OFF]\"\n*REN\tRename a file, the extensions default to .bbc (add a trailing dot if none).\tOSCLI \"REN \"\"\" + oldname$ + \"\"\" \"\"\" + newname$ + \"\"\"\"\n*RENAME\tSynonymous with *REN.\n*RMDIR\tSynonymous with *RD.\n*RUN\tRun an external command or executable program, optionally not waiting.\t\tOSCLI \"RUN \" + command$ [;]\n*/\tSynonymous with *RUN.\n*SAVE\tSave an area of memory to the specified file, the extension defaults to .bbc.\tOSCLI \"SAVE \"\"\" + file$ + \"\"\" \" + STR$~start%% + \" +\" + STR$~length%\n*SCREENSAVE\tSynonymous with *GSAVE.\n*SPOOL\tCopy subsequent console output to the specified file, or terminate spooling.\tOSCLI \"SPOOL\" [+ \" \"\"\" file$ + \"\"\"\"]\n*SPOOLON\tAppend all subsequent console output to the specified file.\t\tOSCLI \"SPOOLON \"\"\" + file$ + \"\"\"\"\n*STEREO\tSet the position on the stereo stage −127..+127 of the specified SOUND channel.\tOSCLI \"STEREO \" + STR$(chan%) + \",\" + STR$(pan%)\n*SYS\tSelect what events will result in an ON SYS (or ON MOUSE) interrupt.\t\tOSCLI \"SYS \" + STR$(num%)\n*TEMPO\tSet the units (centiseconds) of the duration parameter of the SOUND statement.\tOSCLI \"TEMPO \" + STR$(num%)\n*TIMER\tSet the periodicity, in milliseconds, of the ON TIME interrupt.\t\t\tOSCLI \"TIMER \" + STR$(num%)\n*TV\tIgnored, for compatibility with BBC Micro programs.\n*TYPE\tPrint the specified text file to the screen, the extension defaults to .bbc.\tOSCLI \"TYPE \"\"\" + file$ + \"\"\"\"\n*UNLOCK\tSet the specified file to 'read/write' status, the extension defaults to .bbc.\tOSCLI \"UNLOCK \"\"\" + file$ + \"\"\"\"\n*VOICE\tAssign the specified 'voice' ('waveform' or 'stop', 0-7) to a SOUND channel.\tOSCLI \"VOICE \" + STR$(chan%) + \",\" + STR$(wave%)\n*|\tA comment; anything following the '|' up to the end of the line is ignored.\n\n\tThe OSCLI form of the command must be used if the parameters include variables.\n\tDirectory and file names must be quoted if they include a space or punctuation.\n"
  },
  {
    "path": "examples/vducodes.txt",
    "content": "VDU code\t                            Description\t\t\t\t\tNotes\n\nVDU 0\tNUL, do nothing, it is ignored.\nVDU 1,c\tSend a character directly to the printer, if it has been enabled with VDU 2.\tNot currently implemented in BBCSDL\nVDU 2\tEnable the printer, subsequent console output goes to the screen and printer.\tNot currently implemented in BBCSDL\nVDU 3\tDisable the printer, reverses the effect of VDU 2.\t\t\t\tNot currently implemented in BBCSDL\nVDU 4\tRestore the normal 'print at text caret' mode, reverses the effect of VDU 5.\tVDU 4 text has an opaque background \nVDU 5\tCause text to be written at the current graphics position, except in MODE 7.\tVDU 5 text has a transparent background\nVDU 6 \tEnable output to the screen, reverses the effect of VDU 21.\nVDU 7\tSend a Ctrl+G character to the console, which may result in a short 'beep'.\tNot currently functional in BBCSDL\nVDU 8\tMove the text caret one character in the negative X direction (normally left).\tAverage width if proportional-spaced\nVDU 9\tMove the text caret one character in the positive X direction (normally right).\tAverage width if proportional-spaced\nVDU 10 \tMove the text caret one row in the positive Y direction (normally down).\t'Line feed'\nVDU 11 \tMove the text caret one row in the negative Y direction (normally up).\nVDU 12\tClear the text viewport to the current text background colour & home the caret.\tEquivalent to CLS\nVDU 13\tMove the text caret to column 0 in the current row (normally the left edge).\t'Carriage return'\nVDU 14 \tEnable auto-paging mode, scrolling pauses until <Shift> or <Esc> is pressed.\nVDU 15\tDisable auto-paging mode, reverses the effect of VDU 14.\nVDU 16 \tClear the graphics viewport using the current background GCOL action & colour.\tEquivalent to CLG\nVDU 17,n\tSet the text foreground (n < 128) or background (n >= 128) logical colour.\tEquivalent to COLOUR n\nVDU 18,m,n\tSet the graphics foreground or background logical colour and plotting action.\tEquivalent to GCOL m,n\nVDU 19...\tSet the colour palette, i.e. the mapping between logical and physical colours:\nVDU 19,n,p,0,0,0\t    Set logical colour n to physical colour p in the standard palette.\nVDU 19,n,-1,r,g,b\t   Set logical colour n to the specified RGB colour (each 0-63).\nVDU 19,n,16,R,G,B\t   Set logical colour n to the specified RGB colour (each 0-255).\tEquivalent to COLOUR n,R,G,B\nVDU 19,n+128,A,R,G,B\tSet logical colour n to the specified ARGB colour (A = alpha, 0-255).\nVDU 20\tSet the text and graphics colours, and the colour palette, to their defaults. \nVDU 21 \tDisable the VDU drivers until a VDU 6 is received, other output is discarded.\nVDU 22,n\tSelect the specified display mode and reset VDU variables to their defaults. \tEquivalent to MODE n\nVDU 23...\tA multi-purpose command, VDU 23 is always followed by exactly 9 more bytes:\nVDU 23,n,a,b,c,d,e,f,g,h\tRedefine character n (32-255) to the specified 8x8 dot pattern.\nVDU 23,0,10,s,0;0;0;\t    Set the start line of the text caret (0 = top).\nVDU 23,0,11,e,0;0;0;\t    Set the end line of the text caret.\nVDU 23,0,18,w,0;0;0;\t    Set the width of the text caret in pixels.\nVDU 23,1,0;0;0;0;\t       Hide the text caret (cursor).\t\t\t\tEquivalent to OFF\nVDU 23,1,1;0;0;0;\t       Show the text caret (cursor).\t\t\t\tEquivalent to ON\nVDU 23,7,m,d,0;0;0;\t     Control how the screen scrolls. \t\t\t\tSee the main documentation\nVDU 23,16,x,y,0;0;0;\t    Control how the text caret moves after a character is output.\tSee the main documentation\nVDU 23,18,3,0,0;0;0;\t    In MODE 7, disable black text & mosaics, and alt character sets. \nVDU 23,18,3,1,0;0;0;\t    In MODE 7, enable black text & mosaics, and alt character sets.\nVDU 23,22,w;h;cx,cy,n,bg\tSelect a custom display mode (size, number of rows & cols etc).\tSee the main documentation\nVDU 23,23,t;0;0;0;\t      Set the thickness in pixels when drawing lines and curves.\nVDU 24,l;b;r;t;\tSet a graphics viewport: left, bottom, right and top respectively.\tCoordinates are graphics units\nVDU 25,p,x;y;\t  A general-purpose plotting command, where p = code, x & y = coordinates.\tEquivalent to PLOT p,x,y\nVDU 26\tInitialise the text and graphics viewports, home the caret & graphics position.\nVDU 27,n\tSend the code n to the screen without interpreting it as a control character.\nVDU 28,l,b,r,t\t Set a text viewport: left, bottom, right and top respectively.\tCoordinates are row and column numbers\nVDU 29,x;y;\tMove the graphics origin to the specified graphics coordinates.\tEquivalent to ORIGIN x,y\nVDU 30\tHome the text caret (in VDU 4 mode) or the graphics position (in VDU 5 mode).\tDefault is the top-left corner\nVDU 31,x,y\tMove the text caret (cursor) to the specified coordinates.\tEquivalent to PRINT TAB(x,y);\nVDU 127\tDelete the character to the left of the caret and backspace to this position.\tWorks in both VDU 4 and VDU 5 modes\n"
  },
  {
    "path": "include/BBC.h",
    "content": "/******************************************************************\\\n*       BBC BASIC for SDL 2.0 (32-bits or 64-bits)                 *\n*       Copyright (c) R. T. Russell, 2000-2023                     *\n*                                                                  *\n*       BBC.h constant, variable and structure declarations        *\n*       Version 1.34b, 20-Feb-2023                                 *\n\\******************************************************************/\n\n// Constants:\n#define STACK_NEEDED 512\n#ifdef PICO\nextern void *libtop;\n#define ACCSLEN 1024  // Must be the same in bbcsdl.h and bbccon.h\n#else\n#define ACCSLEN 65536 // Must be the same in bbcsdl.h and bbccon.h\n#endif\n\n// Sentinels:\n#define CALCHK\t0xC3414C43\n#define DIMCHK\t0xC4494D43\n#define FNCHK\t0xC64E4348\n#define FORCHK\t0xC64F5243\n#define GOSCHK\t0xC74F5343\n#define LDCHK\t0xCC444348\n#define LOCCHK\t0xCC4F4343\n#define ONCHK\t0xCF4E4348\n#define PROCHK\t0xD0524F43\n#define REPCHK\t0xD2455043\n#define RETCHK\t0xD2455443\n#define WHICHK\t0xD7484943\n\n// Tokens:\n#define TAND\t-128\n#define TDIV\t-127\n#define TEOR\t-126\n#define TMOD\t-125\n#define TOR\t-124\n#define TERROR\t-123\n#define TLINE\t-122\n#define TOFF\t-121\n#define TSTEP\t-120\n#define TSPC\t-119\n#define TTAB\t-118\n#define TELSE\t-117\n#define TTHEN\t-116\n#define TLINO\t-115\n#define TOPENIN\t-114\n#define TPTRR\t-113\n\n#define TPAGER\t-112\n#define TTIMER\t-111\n#define TLOMEMR\t-110\n#define THIMEMR\t-109\n#define TABS\t-108\n#define TACS\t-107\n#define TADVAL\t-106\n#define TASC\t-105\n#define TASN\t-104\n#define TATN\t-103\n#define TBGET\t-102\n#define TCOS\t-101\n#define TCOUNT\t-100\n#define TDEG\t-99\n#define TERL\t-98\n#define TERR\t-97\n\n#define TEVAL\t-96\n#define TEXP\t-95\n#define TEXTR\t-94\n#define TFALSE\t-93\n#define TFN\t-92\n#define TGET\t-91\n#define TINKEY\t-90\n#define TINSTR\t-89\n#define TINT\t-88\n#define TLEN\t-87\n#define TLN\t-86\n#define TLOG\t-85\n#define TNOT\t-84\n#define TOPENUP\t-83\n#define TOPENOUT -82\n#define TPI\t-81\n\n#define TPOINT\t-80\n#define TPOS\t-79\n#define TRAD\t-78\n#define TRND\t-77\n#define TSGN\t-76\n#define TSIN\t-75\n#define TSQR\t-74\n#define TTAN\t-73\n#define TTO\t-72\n#define TTRUE\t-71\n#define TUSR\t-70\n#define TVAL\t-69\n#define TVPOS\t-68\n#define TCHR\t-67\n#define TGETS\t-66\n#define TINKEYS\t-65\n\n#define TLEFT\t-64\n#define TMID\t-63\n#define TRIGHT\t-62\n#define TSTR\t-61\n#define TSTRING\t-60\n#define TEOF\t-59\n#define TSUM\t-58\n#define TWHILE\t-57\n#define TCASE\t-56\n#define TWHEN\t-55\n#define TOF\t-54\n#define TENDCASE -53\n#define TOTHERWISE -52\n#define TENDIF\t-51\n#define TENDWHILE -50\n#define TPTRL\t-49\n\n#define TPAGEL\t-48\n#define TTIMEL\t-47\n#define TLOMEML\t-46\n#define THIMEML\t-45\n#define TSOUND\t-44\n#define TBPUT\t-43\n#define TCALL\t-42\n#define TCHAIN\t-41\n#define TCLEAR\t-40\n#define TCLOSE\t-39\n#define TCLG\t-38\n#define TCLS\t-37\n#define TDATA\t-36\n#define TDEF\t-35\n#define TDIM\t-34\n#define TDRAW\t-33\n\n#define TEND\t-32\n#define TENDPROC -31\n#define TENVEL\t-30\n#define TFOR\t-29\n#define TGOSUB\t-28\n#define TGOTO\t-27\n#define TGCOL\t-26\n#define TIF\t-25\n#define TINPUT\t-24\n#define TLET\t-23\n#define TLOCAL\t-22\n#define TMODE\t-21\n#define TMOVE\t-20\n#define TNEXT\t-19\n#define TON\t-18\n#define TVDU\t-17\n\n#define TPLOT\t-16\n#define TPRINT\t-15\n#define TPROC\t-14\n#define TREAD\t-13\n#define TREM\t-12\n#define TREPEAT\t-11\n#define TREPORT\t-10\n#define TRESTOR\t-9\n#define TRETURN\t-8\n#define TRUN\t-7\n#define TSTOP\t-6\n#define TCOLOUR\t-5\n#define TTRACE\t-4\n#define TUNTIL\t-3\n#define TWIDTH\t-2\n#define TOSCLI\t-1\n\n#define TCIRCLE\t1\n#define TELLIPSE 2\n#define TFILL\t3\n#define TMOUSE\t4\n#define TORIGIN\t5\n#define TQUIT\t6\n#define TRECT\t7\n#define TSWAP\t8\n#define TSYS\t9\n#define TTINT\t10\n#define TWAIT\t11\n#define TINSTALL 12\n#define TPRIVATE 14\n#define TBY\t15\n#define TEXIT\t16\n\n#define FUNTOK\tTLINO // first function token\n#define TOKLO\tTPTRR\n#define TOKHI\tTHIMEMR\n#define OFFSIT\tTPTRL-TPTRR\n\n// Non-token statements:\n// * star command\n// = return from function\n// ( label\n// : separator\n// [ assembler\n\n// Bit names:\n#define BIT0\t0x01\n#define BIT1\t0x02\n#define BIT2\t0x04\n#define BIT3\t0x08\n#define BIT4\t0x10\n#define BIT5\t0x20\n#define BIT6\t0x40\n#define BIT7\t0x80\n\n// Flag bits:\n#define ESCFLG\tBIT7\t// ESCape key pressed \n#define ESCDIS\tBIT6\t// ESCape key disabled (*ESC OFF)\n#define ALERT\tBIT5\t// Pending event interrupt\n#define FLASH\tBIT4\t// MODE 7 flash update needed\n#define PHASE\tBIT3    // MODE 7 flash phase\n#define PAUSE\tBIT2\t// In debug paused state\n#define SSTEP\tBIT1\t// Single-step requested\n#define KILL\tBIT0\t// Program wants to terminate\n\n// Special 32-bit 'pointer' type for BASIC's heap:\n#define STRIDE sizeof(void *) / sizeof(heapptr)\ntypedef unsigned int heapptr ;\n\n// Structures and unions:\ntypedef struct tagPARM\n{\n\tsize_t i[16] ;\n\tdouble f[8] ;\n} PARM, *LPPARM ;\n\n// A variant holds an 80-bit long double, a 64-bit long long or a string descriptor.\n// n.b. GCC pads a long double to 16 bytes (128 bits) for alignment reasons but only\n// the least-significant 80-bits need to be stored on the heap, in files etc.\n// When a long double is 64-bits rather than 80-bits (e.g. ARM) it will be necessary\n// to force the type word (.i.t or .s.t member) to a value other than 0 or -1. \ntypedef union __attribute__ ((packed)) __attribute__ ((aligned (4))) tagVAR\n{\n#if defined __arm__ || defined __aarch64__ || defined __EMSCRIPTEN__ || defined __ANDROID__\n\tdouble f ;\n#else\n        long double f ;\n#endif\n        struct\n        {\n          long long n ;\n          short t ; // = 0\n        } i ;\n        struct\n        {\n          heapptr p ; // Assumed to be 32 bits\n          unsigned int l ; // Must be unsigned for overflow tests in 'math'\n          short t ; // = -1\n        } s ;\n\tstruct\n\t{\n\t  double d ;\n\t  short t ; // unused (loadn/storen only)\n\t} d ;\n} VAR, *LPVAR ; \n\n// String descriptor:\ntypedef struct __attribute__ ((packed)) __attribute__ ((aligned (4))) tagSTR\n{\n\theapptr p ; // Assumed to be 32 bits\n\tint l ;\n} STR, *LPSTR ;\n\ntypedef struct tagRND\n{\n\tunsigned int l ;\n\tunsigned char h ;\n} RND, *LPRND ;\n\n// Structure for linked list of string free space\nstruct node\n{\n\tstruct node *next ;\n\tchar *data ;\n} ;\ntypedef struct node node ;\n\n// Base address for 32-bit offsets into heap:\n#if defined(__x86_64__) || defined(__aarch64__)\n#define zero userRAM\n#define TMASK 31\n#define STYPE 16\n#define ATYPE 40\n#else\n#define zero (void*) 0\n#define TMASK 15\n#define STYPE 24\n#define ATYPE 4\n#endif\n\n// Register globals:\n#ifdef __llvm__\nextern signed char *esi ;\t\t// Program pointer\nextern heapptr *esp ;\t\t\t// Stack pointer\n#else\n#ifdef __i386__\nregister signed char *esi asm (\"esi\") ;\t// Program pointer\nregister heapptr *esp asm (\"edi\") ;\t// Stack pointer\n#endif\n#ifdef __arm__\nregister signed char *esi asm (\"r10\") ;\t// Program pointer\nregister heapptr *esp asm (\"r11\") ;\t// Stack pointer\n#endif\n#ifdef __x86_64__\nregister signed char *esi asm (\"r12\") ;\t// Program pointer\nregister heapptr *esp asm (\"r13\") ;\t// Stack pointer\n#endif\n#ifdef __aarch64__\nregister signed char *esi asm (\"x27\") ;\t// Program pointer\nregister heapptr *esp asm (\"x28\") ;\t// Stack pointer\n#endif\n#endif\n\n// Data locations (defined in bbdata_xxx_xx.nas):\nextern unsigned char errnum ;\t// Error code number\nextern char *accs ;\t\t// String accumulator\nextern char *buff ;\t\t// Temporary line buffer\nextern heapptr *onersp ;\t// ON ERROR LOCAL stack pointer\nextern heapptr vpage ;\t\t// Value of PAGE\nextern heapptr errlin ;\t\t// Pointer to error line\nextern heapptr curlin ;\t\t// Pointer to current line\nextern heapptr errtrp ;\t\t// Pointer to ON ERROR handler\nextern heapptr timtrp ;\t\t// Pointer to ON TIME handler\nextern heapptr clotrp ;\t\t// Pointer to ON CLOSE handler\nextern heapptr siztrp ;\t\t// Pointer to ON MOVE handler\nextern heapptr systrp ;\t\t// Pointer to ON SYS handler\nextern heapptr moutrp ;\t\t// Pointer to ON MOUSE handler\nextern heapptr libase ;\t\t// Base of libraries \nextern heapptr datptr ;\t\t// DATA pointer\nextern heapptr lomem ;\t\t// Pointer to base of heap\nextern heapptr pfree ;\t\t// Pointer to free space\nextern heapptr himem ;\t\t// Pointer to top of stack\nextern const char *errtxt ;\t// Most recent error message\nextern int stavar[] ;\t\t// Static integer variables\nextern heapptr dynvar[] ;\t// Linked-list pointers\nextern heapptr fnptr[] ;\t// Pointer to user FuNctions\nextern heapptr proptr[] ;\t// Pointer to user PROCedures\nextern node *flist[] ;\t\t// String free-lists\nextern STR tmps ;\t\t// Temporary string descriptor\nextern unsigned char liston ;\t// *FLOAT/*HEX/*LOWERCASE/OPT\nextern unsigned char lstopt ;\t// LISTO value (indentation)\nextern unsigned int vcount ;    // Character count since newline\nextern unsigned char vwidth ;\t// Width for auto-newline\nextern int link00 ;\t\t// Terminating link in @ list\nextern heapptr vduptr ;\t\t// @vdu{} structure pointer\nextern heapptr vdufmt ;\t\t// @vdu{} structure format\nextern unsigned char evtqw ;\t// Event queue write pointer\nextern unsigned char evtqr ;\t// Event queue read pointer\nextern void *sysvar ;\t\t// Start of @ variables linked list\nextern unsigned short tracen ;\t// TRACE maximum line number\nextern unsigned char flags ;\t// BASIC's Boolean flags byte\nextern RND prand ;\t\t// Pseudo-random number\nextern unsigned char fvtab[] ;\t// Table of 'fast' variable types\nextern char modeno ;\t\t// MODE number\nextern size_t memhdc ;\t\t// SDL Renderer\nextern heapptr cmdadr, diradr, libadr, usradr, tmpadr ;\nextern int     cmdlen, dirlen, liblen, usrlen, tmplen ;\n\n// Defined in bbcsdl.c:\nextern char *szCmdLine ;\t// @cmd$\nextern char *szLoadDir ;\t// @dir$\nextern char *szLibrary ;\t// @lib$\nextern char *szUserDir ;\t// @usr$\nextern char *szTempDir ;\t// @tmp$\nextern const char szNotice [] ;\nextern void *userRAM ;\n\n// Alignment helper types:\ntypedef __attribute__((aligned(1))) int unaligned_int;\ntypedef __attribute__((aligned(1))) intptr_t unaligned_intptr_t;\ntypedef __attribute__((aligned(1))) unsigned int unaligned_uint;\ntypedef __attribute__((aligned(1))) unsigned short unaligned_ushort;\ntypedef __attribute__((aligned(1))) void* unaligned_void_ptr;\ntypedef __attribute__((aligned(1))) char* unaligned_char_ptr;\ntypedef __attribute__((aligned(1))) VAR unaligned_VAR;\n\n// Helper macros to fix alignment problem:\n#ifdef PICO\nstatic inline int ILOAD(void* p){ return (intptr_t)p&3 ? *((unaligned_int*)p) : *((int*)p); }\nstatic inline void ISTORE(void* p, int i){ if ((intptr_t)p&3) *((unaligned_int*)p) = i; else *((int *)p) = i; }\n#else\n#define ILOAD(p)    *((unaligned_int*)(p))\n#define ISTORE(p,i) *((unaligned_int*)(p)) = i\n#endif \n\n#define TLOAD(p)    *((unaligned_intptr_t*)(p))\n#define TSTORE(p,i) *((unaligned_intptr_t*)(p)) = i \n#define ULOAD(p)    *((unaligned_uint*)(p))\n#define USTORE(p,i) *((unaligned_uint*)(p)) = i \n#define SLOAD(p)    *((unaligned_ushort*)(p))\n#define SSTORE(p,i) *((unaligned_ushort*)(p)) = i \n#define VLOAD(p)    *((unaligned_void_ptr*)(p))\n#define VSTORE(p,i) *((unaligned_void_ptr*)(p)) = i \n#define CLOAD(p)    *((unaligned_char_ptr*)(p))\n#define CSTORE(p,i) *((unaligned_char_ptr*)(p)) = i \n#define NLOAD(p)    *((unaligned_VAR*)(p))\n#define NSTORE(p,i) *((unaligned_VAR*)(p)) = i\n"
  },
  {
    "path": "include/SDL2_gfxPrimitives.h",
    "content": "/* \n\nSDL2_gfxPrimitives.h: graphics primitives for SDL\n\nCopyright (C) 2012-2014  Andreas Schiffler\nAdditions for BBC BASIC (C) 2016-2020 Richard Russell\n\nThis software is provided 'as-is', without any express or implied\nwarranty. In no event will the authors be held liable for any damages\narising from the use of this software.\n\nPermission is granted to anyone to use this software for any purpose,\nincluding commercial applications, and to alter it and redistribute it\nfreely, subject to the following restrictions:\n\n1. The origin of this software must not be misrepresented; you must not\nclaim that you wrote the original software. If you use this software\nin a product, an acknowledgment in the product documentation would be\nappreciated but is not required.\n\n2. Altered source versions must be plainly marked as such, and must not be\nmisrepresented as being the original software.\n\n3. This notice may not be removed or altered from any source\ndistribution.\n\nAndreas Schiffler -- aschiffler at ferzkopp dot net\nRichard Russell -- richard at rtrussell dot co dot uk\n\n*/\n\n#ifndef _SDL2_gfxPrimitives_h\n#define _SDL2_gfxPrimitives_h\n\n#include <math.h>\n#ifndef M_PI\n#define M_PI\t3.1415926535897932384626433832795\n#endif\n\n#include \"SDL2/SDL.h\"\n\n/* Set up for C function definitions, even when using C++ */\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n\t/* ----- Versioning */\n\n#define SDL2_GFXPRIMITIVES_MAJOR\t1\n#define SDL2_GFXPRIMITIVES_MINOR\t0\n#define SDL2_GFXPRIMITIVES_MICRO\t1\n\n\n\t/* ---- Function Prototypes */\n\n#ifdef _MSC_VER\n#  if defined(DLL_EXPORT) && !defined(LIBSDL2_GFX_DLL_IMPORT)\n#    define SDL2_GFXPRIMITIVES_SCOPE __declspec(dllexport)\n#  else\n#    ifdef LIBSDL2_GFX_DLL_IMPORT\n#      define SDL2_GFXPRIMITIVES_SCOPE __declspec(dllimport)\n#    endif\n#  endif\n#endif\n#ifndef SDL2_GFXPRIMITIVES_SCOPE\n#  define SDL2_GFXPRIMITIVES_SCOPE extern\n#endif\n\n\t/* Note: all ___Color routines expect the color to be in format 0xAABBGGRR */\n\t/*       assuming a little-endian CPU (or 0xRRGGBBAA for a big-endian CPU) */\n\n\t/* Pixel */\n\n\tSDL2_GFXPRIMITIVES_SCOPE int pixelColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int pixelRGBA(SDL_Renderer * renderer, Sint16 x, Sint16 y, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\n\t/* Horizontal line */\n\n\tSDL2_GFXPRIMITIVES_SCOPE int hlineColor(SDL_Renderer * renderer, Sint16 x1, Sint16 x2, Sint16 y, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int hlineRGBA(SDL_Renderer * renderer, Sint16 x1, Sint16 x2, Sint16 y, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\n\t/* Vertical line */\n\n\tSDL2_GFXPRIMITIVES_SCOPE int vlineColor(SDL_Renderer * renderer, Sint16 x, Sint16 y1, Sint16 y2, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int vlineRGBA(SDL_Renderer * renderer, Sint16 x, Sint16 y1, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\n\t/* Rectangle */\n\n\tSDL2_GFXPRIMITIVES_SCOPE int rectangleColor(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int rectangleRGBA(SDL_Renderer * renderer, Sint16 x1, Sint16 y1,\n\t\tSint16 x2, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\n\t/* Rounded-Corner Rectangle */\n\n\tSDL2_GFXPRIMITIVES_SCOPE int roundedRectangleColor(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 rad, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int roundedRectangleRGBA(SDL_Renderer * renderer, Sint16 x1, Sint16 y1,\n\t\tSint16 x2, Sint16 y2, Sint16 rad, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\n\t/* Filled rectangle (Box) */\n\n\tSDL2_GFXPRIMITIVES_SCOPE int boxColor(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int boxRGBA(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2,\n\t\tSint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\n\t/* Rounded-Corner Filled rectangle (Box) */\n\n\tSDL2_GFXPRIMITIVES_SCOPE int roundedBoxColor(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 rad, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int roundedBoxRGBA(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2,\n\t\tSint16 y2, Sint16 rad, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\n\t/* Line */\n\n\tSDL2_GFXPRIMITIVES_SCOPE int lineColor(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int lineRGBA(SDL_Renderer * renderer, Sint16 x1, Sint16 y1,\n\t\tSint16 x2, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\n\t/* AA Line */\n\n\tSDL2_GFXPRIMITIVES_SCOPE int aalineColor(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int aalineRGBA(SDL_Renderer * renderer, Sint16 x1, Sint16 y1,\n\t\tSint16 x2, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\n\t/* Thick Line */\n\tSDL2_GFXPRIMITIVES_SCOPE int thickLineColor(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, \n\t\tUint8 width, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int thickLineRGBA(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, \n\t\tUint8 width, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\n\t/* Circle */\n\n\tSDL2_GFXPRIMITIVES_SCOPE int circleColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int circleRGBA(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\n\t/* Arc */\n\n\tSDL2_GFXPRIMITIVES_SCOPE int arcColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad, Sint16 start, Sint16 end, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int arcRGBA(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad, Sint16 start, Sint16 end, \n\t\tUint8 r, Uint8 g, Uint8 b, Uint8 a);\n\n\t/* AA Circle */\n\n\tSDL2_GFXPRIMITIVES_SCOPE int aacircleColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int aacircleRGBA(SDL_Renderer * renderer, Sint16 x, Sint16 y,\n\t\tSint16 rad, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\n\t/* Filled Circle */\n\n\tSDL2_GFXPRIMITIVES_SCOPE int filledCircleColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 r, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int filledCircleRGBA(SDL_Renderer * renderer, Sint16 x, Sint16 y,\n\t\tSint16 rad, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\n\t/* Ellipse */\n\n\tSDL2_GFXPRIMITIVES_SCOPE int ellipseColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int ellipseRGBA(SDL_Renderer * renderer, Sint16 x, Sint16 y,\n\t\tSint16 rx, Sint16 ry, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\n\t/* AA Ellipse */\n\n\tSDL2_GFXPRIMITIVES_SCOPE int aaellipseColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int aaellipseRGBA(SDL_Renderer * renderer, Sint16 x, Sint16 y,\n\t\tSint16 rx, Sint16 ry, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\n\t/* Filled Ellipse */\n\n\tSDL2_GFXPRIMITIVES_SCOPE int filledEllipseColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int filledEllipseRGBA(SDL_Renderer * renderer, Sint16 x, Sint16 y,\n\t\tSint16 rx, Sint16 ry, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\n\t/* Pie */\n\n\tSDL2_GFXPRIMITIVES_SCOPE int pieColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad,\n\t\tSint16 start, Sint16 end, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int pieRGBA(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad,\n\t\tSint16 start, Sint16 end, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\n\t/* Filled Pie */\n\n\tSDL2_GFXPRIMITIVES_SCOPE int filledPieColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad,\n\t\tSint16 start, Sint16 end, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int filledPieRGBA(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad,\n\t\tSint16 start, Sint16 end, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\n\t/* Trigon */\n\n\tSDL2_GFXPRIMITIVES_SCOPE int trigonColor(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int trigonRGBA(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3,\n\t\tUint8 r, Uint8 g, Uint8 b, Uint8 a);\n\n\t/* AA-Trigon */\n\n\tSDL2_GFXPRIMITIVES_SCOPE int aatrigonColor(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int aatrigonRGBA(SDL_Renderer * renderer,  Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3,\n\t\tUint8 r, Uint8 g, Uint8 b, Uint8 a);\n\n\t/* Filled Trigon */\n\n\tSDL2_GFXPRIMITIVES_SCOPE int filledTrigonColor(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int filledTrigonRGBA(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3,\n\t\tUint8 r, Uint8 g, Uint8 b, Uint8 a);\n\n\t/* Polygon */\n\n\tSDL2_GFXPRIMITIVES_SCOPE int polygonColor(SDL_Renderer * renderer, const Sint16 * vx, const Sint16 * vy, int n, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int polygonRGBA(SDL_Renderer * renderer, const Sint16 * vx, const Sint16 * vy,\n\t\tint n, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\n\t/* AA-Polygon */\n\n\tSDL2_GFXPRIMITIVES_SCOPE int aapolygonColor(SDL_Renderer * renderer, const Sint16 * vx, const Sint16 * vy, int n, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int aapolygonRGBA(SDL_Renderer * renderer, const Sint16 * vx, const Sint16 * vy,\n\t\tint n, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\n\t/* Filled Polygon */\n\n\tSDL2_GFXPRIMITIVES_SCOPE int filledPolygonColor(SDL_Renderer * renderer, const Sint16 * vx, const Sint16 * vy, int n, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int filledPolygonRGBA(SDL_Renderer * renderer, const Sint16 * vx,\n\t\tconst Sint16 * vy, int n, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\n\t/* Textured Polygon */\n\n\tSDL2_GFXPRIMITIVES_SCOPE int texturedPolygon(SDL_Renderer * renderer, const Sint16 * vx, const Sint16 * vy, int n, SDL_Surface * texture,int texture_dx,int texture_dy);\n\n\t/* Bezier */\n\n\tSDL2_GFXPRIMITIVES_SCOPE int bezierColor(SDL_Renderer * renderer, const Sint16 * vx, const Sint16 * vy, int n, int s, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int bezierRGBA(SDL_Renderer * renderer, const Sint16 * vx, const Sint16 * vy,\n\t\tint n, int s, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\tSDL2_GFXPRIMITIVES_SCOPE double _evaluateBezier(double *data, int ndata, double t);\n\n\t/* Characters/Strings */\n\n\tSDL2_GFXPRIMITIVES_SCOPE void gfxPrimitivesSetFont(const void *fontdata, Uint32 cw, Uint32 ch);\n\tSDL2_GFXPRIMITIVES_SCOPE void gfxPrimitivesSetFontRotation(Uint32 rotation);\n\tSDL2_GFXPRIMITIVES_SCOPE void gfxPrimitivesSetFontZoom(Uint32 zoomx, Uint32 zoomy);\n\tSDL2_GFXPRIMITIVES_SCOPE int characterColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, char c, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int characterRGBA(SDL_Renderer * renderer, Sint16 x, Sint16 y, char c, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\tSDL2_GFXPRIMITIVES_SCOPE int stringColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, const char *s, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int stringRGBA(SDL_Renderer * renderer, Sint16 x, Sint16 y, const char *s, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\n\t/* Richard Russell's additions */\n\n\tSDL2_GFXPRIMITIVES_SCOPE int thickEllipseColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint32 color, Uint8 thick);\n\tSDL2_GFXPRIMITIVES_SCOPE int thickEllipseRGBA(SDL_Renderer * renderer, Sint16 xc, Sint16 yc, Sint16 xr, Sint16 yr, Uint8 r, Uint8 g, Uint8 b, Uint8 a, Uint8 thick);\n\tSDL2_GFXPRIMITIVES_SCOPE int thickArcColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad, Sint16 start, Sint16 end, Uint32 color, Uint8 thick);\n\tSDL2_GFXPRIMITIVES_SCOPE int thickArcRGBA(SDL_Renderer * renderer, Sint16 xc, Sint16 yc, Sint16 rad, Sint16 start, Sint16 end, Uint8 r, Uint8 g, Uint8 b, Uint8 a, Uint8 thick);\n\tSDL2_GFXPRIMITIVES_SCOPE int thickCircleColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad, Uint32 color, Uint8 thick);\n\tSDL2_GFXPRIMITIVES_SCOPE int thickCircleRGBA(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad, Uint8 r, Uint8 g, Uint8 b, Uint8 a, Uint8 thick);\n\tSDL2_GFXPRIMITIVES_SCOPE int filledPolyBezierColor(SDL_Renderer * renderer, const Sint16 *x, const Sint16 *y, int n, int s, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int filledPolyBezierRGBA(SDL_Renderer * renderer, const Sint16 *x, const Sint16 *y, int n, int s, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\n\tSDL2_GFXPRIMITIVES_SCOPE int aaFilledEllipseColor(SDL_Renderer * renderer, float cx, float cy, float rx, float ry, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int aaFilledEllipseRGBA(SDL_Renderer * renderer, float cx, float cy, float rx, float ry, Uint8 r, Uint8 g, Uint8 b, Uint8 a); \n\tSDL2_GFXPRIMITIVES_SCOPE int aaFilledPolygonColor(SDL_Renderer * renderer, const double * vx, const double * vy, int n, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int aaFilledPolygonRGBA(SDL_Renderer * renderer, const double * vx, const double * vy, int n, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\tSDL2_GFXPRIMITIVES_SCOPE int aaFilledPieColor(SDL_Renderer * renderer, float cx, float cy, float rx, float ry, float start, float end, Uint32 chord, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int aaFilledPieRGBA(SDL_Renderer * renderer, float cx, float cy, float rx, float ry,\n\t\tfloat start, float end, Uint32 chord, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\n\tSDL2_GFXPRIMITIVES_SCOPE int aaArcColor(SDL_Renderer * renderer, float cx, float cy, float rx, float ry, float start, float end, float thick, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int aaArcRGBA(SDL_Renderer * renderer, float cx, float cy, float rx, float ry,\n\t\tfloat start, float end, float thick, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\tSDL2_GFXPRIMITIVES_SCOPE int aaBezierColor(SDL_Renderer * renderer, double *x, double *y, int n, int s, float thick, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int aaBezierRGBA(SDL_Renderer * renderer, double *x, double *y, int n, int s, float thick, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\tSDL2_GFXPRIMITIVES_SCOPE int aaFilledPolyBezierColor(SDL_Renderer * renderer, double *x, double *y, int n, int s, Uint32 color);\n\tSDL2_GFXPRIMITIVES_SCOPE int aaFilledPolyBezierRGBA(SDL_Renderer * renderer, double *x, double *y, int n, int s, Uint8 r, Uint8 g, Uint8 b, Uint8 a);\n\n\t/* Ends C function definitions when using C++ */\n#ifdef __cplusplus\n}\n#endif\n\n#endif\t\t\t\t/* _SDL2_gfxPrimitives_h */\n"
  },
  {
    "path": "include/SDL2_gfxPrimitives_font.h",
    "content": "\n/* ---- 8x8 font definition ---- */\n\n/*  ZLIB (c) A. Schiffler 2012 */\n\n#define GFX_FONTDATAMAX (8*256)\n\nstatic unsigned char gfxPrimitivesFontdata[GFX_FONTDATAMAX] = {\n\n\t/*\n\t* 0 0x00 '^@' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 1 0x01 '^A' \n\t*/\n\t0x7e,\t\t\t/* 01111110 */\n\t0x81,\t\t\t/* 10000001 */\n\t0xa5,\t\t\t/* 10100101 */\n\t0x81,\t\t\t/* 10000001 */\n\t0xbd,\t\t\t/* 10111101 */\n\t0x99,\t\t\t/* 10011001 */\n\t0x81,\t\t\t/* 10000001 */\n\t0x7e,\t\t\t/* 01111110 */\n\n\t/*\n\t* 2 0x02 '^B' \n\t*/\n\t0x7e,\t\t\t/* 01111110 */\n\t0xff,\t\t\t/* 11111111 */\n\t0xdb,\t\t\t/* 11011011 */\n\t0xff,\t\t\t/* 11111111 */\n\t0xc3,\t\t\t/* 11000011 */\n\t0xe7,\t\t\t/* 11100111 */\n\t0xff,\t\t\t/* 11111111 */\n\t0x7e,\t\t\t/* 01111110 */\n\n\t/*\n\t* 3 0x03 '^C' \n\t*/\n\t0x6c,\t\t\t/* 01101100 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x38,\t\t\t/* 00111000 */\n\t0x10,\t\t\t/* 00010000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 4 0x04 '^D' \n\t*/\n\t0x10,\t\t\t/* 00010000 */\n\t0x38,\t\t\t/* 00111000 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x38,\t\t\t/* 00111000 */\n\t0x10,\t\t\t/* 00010000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 5 0x05 '^E' \n\t*/\n\t0x38,\t\t\t/* 00111000 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x38,\t\t\t/* 00111000 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0xd6,\t\t\t/* 11010110 */\n\t0x10,\t\t\t/* 00010000 */\n\t0x38,\t\t\t/* 00111000 */\n\n\t/*\n\t* 6 0x06 '^F' \n\t*/\n\t0x10,\t\t\t/* 00010000 */\n\t0x38,\t\t\t/* 00111000 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x10,\t\t\t/* 00010000 */\n\t0x38,\t\t\t/* 00111000 */\n\n\t/*\n\t* 7 0x07 '^G' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 8 0x08 '^H' \n\t*/\n\t0xff,\t\t\t/* 11111111 */\n\t0xff,\t\t\t/* 11111111 */\n\t0xe7,\t\t\t/* 11100111 */\n\t0xc3,\t\t\t/* 11000011 */\n\t0xc3,\t\t\t/* 11000011 */\n\t0xe7,\t\t\t/* 11100111 */\n\t0xff,\t\t\t/* 11111111 */\n\t0xff,\t\t\t/* 11111111 */\n\n\t/*\n\t* 9 0x09 '^I' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x42,\t\t\t/* 01000010 */\n\t0x42,\t\t\t/* 01000010 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 10 0x0a '^J' \n\t*/\n\t0xff,\t\t\t/* 11111111 */\n\t0xc3,\t\t\t/* 11000011 */\n\t0x99,\t\t\t/* 10011001 */\n\t0xbd,\t\t\t/* 10111101 */\n\t0xbd,\t\t\t/* 10111101 */\n\t0x99,\t\t\t/* 10011001 */\n\t0xc3,\t\t\t/* 11000011 */\n\t0xff,\t\t\t/* 11111111 */\n\n\t/*\n\t* 11 0x0b '^K' \n\t*/\n\t0x0f,\t\t\t/* 00001111 */\n\t0x07,\t\t\t/* 00000111 */\n\t0x0f,\t\t\t/* 00001111 */\n\t0x7d,\t\t\t/* 01111101 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0x78,\t\t\t/* 01111000 */\n\n\t/*\n\t* 12 0x0c '^L' \n\t*/\n\t0x3c,\t\t\t/* 00111100 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x18,\t\t\t/* 00011000 */\n\n\t/*\n\t* 13 0x0d '^M' \n\t*/\n\t0x3f,\t\t\t/* 00111111 */\n\t0x33,\t\t\t/* 00110011 */\n\t0x3f,\t\t\t/* 00111111 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x70,\t\t\t/* 01110000 */\n\t0xf0,\t\t\t/* 11110000 */\n\t0xe0,\t\t\t/* 11100000 */\n\n\t/*\n\t* 14 0x0e '^N' \n\t*/\n\t0x7f,\t\t\t/* 01111111 */\n\t0x63,\t\t\t/* 01100011 */\n\t0x7f,\t\t\t/* 01111111 */\n\t0x63,\t\t\t/* 01100011 */\n\t0x63,\t\t\t/* 01100011 */\n\t0x67,\t\t\t/* 01100111 */\n\t0xe6,\t\t\t/* 11100110 */\n\t0xc0,\t\t\t/* 11000000 */\n\n\t/*\n\t* 15 0x0f '^O' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0xdb,\t\t\t/* 11011011 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0xe7,\t\t\t/* 11100111 */\n\t0xe7,\t\t\t/* 11100111 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0xdb,\t\t\t/* 11011011 */\n\t0x18,\t\t\t/* 00011000 */\n\n\t/*\n\t* 16 0x10 '^P' \n\t*/\n\t0x80,\t\t\t/* 10000000 */\n\t0xe0,\t\t\t/* 11100000 */\n\t0xf8,\t\t\t/* 11111000 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0xf8,\t\t\t/* 11111000 */\n\t0xe0,\t\t\t/* 11100000 */\n\t0x80,\t\t\t/* 10000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 17 0x11 '^Q' \n\t*/\n\t0x02,\t\t\t/* 00000010 */\n\t0x0e,\t\t\t/* 00001110 */\n\t0x3e,\t\t\t/* 00111110 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0x3e,\t\t\t/* 00111110 */\n\t0x0e,\t\t\t/* 00001110 */\n\t0x02,\t\t\t/* 00000010 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 18 0x12 '^R' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x18,\t\t\t/* 00011000 */\n\n\t/*\n\t* 19 0x13 '^S' \n\t*/\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 20 0x14 '^T' \n\t*/\n\t0x7f,\t\t\t/* 01111111 */\n\t0xdb,\t\t\t/* 11011011 */\n\t0xdb,\t\t\t/* 11011011 */\n\t0x7b,\t\t\t/* 01111011 */\n\t0x1b,\t\t\t/* 00011011 */\n\t0x1b,\t\t\t/* 00011011 */\n\t0x1b,\t\t\t/* 00011011 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 21 0x15 '^U' \n\t*/\n\t0x3e,\t\t\t/* 00111110 */\n\t0x61,\t\t\t/* 01100001 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x86,\t\t\t/* 10000110 */\n\t0x7c,\t\t\t/* 01111100 */\n\n\t/*\n\t* 22 0x16 '^V' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 23 0x17 '^W' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0xff,\t\t\t/* 11111111 */\n\n\t/*\n\t* 24 0x18 '^X' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 25 0x19 '^Y' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 26 0x1a '^Z' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 27 0x1b '^[' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x60,\t\t\t/* 01100000 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0x60,\t\t\t/* 01100000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 28 0x1c '^\\' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 29 0x1d '^]' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x24,\t\t\t/* 00100100 */\n\t0x66,\t\t\t/* 01100110 */\n\t0xff,\t\t\t/* 11111111 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x24,\t\t\t/* 00100100 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 30 0x1e '^^' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0xff,\t\t\t/* 11111111 */\n\t0xff,\t\t\t/* 11111111 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 31 0x1f '^_' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0xff,\t\t\t/* 11111111 */\n\t0xff,\t\t\t/* 11111111 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 32 0x20 ' ' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 33 0x21 '!' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 34 0x22 '\"' \n\t*/\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x24,\t\t\t/* 00100100 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 35 0x23 '#' \n\t*/\n\t0x6c,\t\t\t/* 01101100 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 36 0x24 '$' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x3e,\t\t\t/* 00111110 */\n\t0x60,\t\t\t/* 01100000 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x06,\t\t\t/* 00000110 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 37 0x25 '%' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x66,\t\t\t/* 01100110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 38 0x26 '&' \n\t*/\n\t0x38,\t\t\t/* 00111000 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x38,\t\t\t/* 00111000 */\n\t0x76,\t\t\t/* 01110110 */\n\t0xdc,\t\t\t/* 11011100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0x76,\t\t\t/* 01110110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 39 0x27 ''' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 40 0x28 '(' \n\t*/\n\t0x0c,\t\t\t/* 00001100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 41 0x29 ')' \n\t*/\n\t0x30,\t\t\t/* 00110000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 42 0x2a '*' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0xff,\t\t\t/* 11111111 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 43 0x2b '+' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 44 0x2c ',' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x30,\t\t\t/* 00110000 */\n\n\t/*\n\t* 45 0x2d '-' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 46 0x2e '.' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 47 0x2f '/' \n\t*/\n\t0x06,\t\t\t/* 00000110 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x60,\t\t\t/* 01100000 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0x80,\t\t\t/* 10000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 48 0x30 '0' \n\t*/\n\t0x38,\t\t\t/* 00111000 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xd6,\t\t\t/* 11010110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x38,\t\t\t/* 00111000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 49 0x31 '1' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x38,\t\t\t/* 00111000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 50 0x32 '2' \n\t*/\n\t0x7c,\t\t\t/* 01111100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x06,\t\t\t/* 00000110 */\n\t0x1c,\t\t\t/* 00011100 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x66,\t\t\t/* 01100110 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 51 0x33 '3' \n\t*/\n\t0x7c,\t\t\t/* 01111100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x06,\t\t\t/* 00000110 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x06,\t\t\t/* 00000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 52 0x34 '4' \n\t*/\n\t0x1c,\t\t\t/* 00011100 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x1e,\t\t\t/* 00011110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 53 0x35 '5' \n\t*/\n\t0xfe,\t\t\t/* 11111110 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0xfc,\t\t\t/* 11111100 */\n\t0x06,\t\t\t/* 00000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 54 0x36 '6' \n\t*/\n\t0x38,\t\t\t/* 00111000 */\n\t0x60,\t\t\t/* 01100000 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0xfc,\t\t\t/* 11111100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 55 0x37 '7' \n\t*/\n\t0xfe,\t\t\t/* 11111110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 56 0x38 '8' \n\t*/\n\t0x7c,\t\t\t/* 01111100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 57 0x39 '9' \n\t*/\n\t0x7c,\t\t\t/* 01111100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x06,\t\t\t/* 00000110 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x78,\t\t\t/* 01111000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 58 0x3a ':' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 59 0x3b ';' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x30,\t\t\t/* 00110000 */\n\n\t/*\n\t* 60 0x3c '<' \n\t*/\n\t0x06,\t\t\t/* 00000110 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x06,\t\t\t/* 00000110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 61 0x3d '=' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 62 0x3e '>' \n\t*/\n\t0x60,\t\t\t/* 01100000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x60,\t\t\t/* 01100000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 63 0x3f '?' \n\t*/\n\t0x7c,\t\t\t/* 01111100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 64 0x40 '@' \n\t*/\n\t0x7c,\t\t\t/* 01111100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xde,\t\t\t/* 11011110 */\n\t0xde,\t\t\t/* 11011110 */\n\t0xde,\t\t\t/* 11011110 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0x78,\t\t\t/* 01111000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 65 0x41 'A' \n\t*/\n\t0x38,\t\t\t/* 00111000 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 66 0x42 'B' \n\t*/\n\t0xfc,\t\t\t/* 11111100 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0xfc,\t\t\t/* 11111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 67 0x43 'C' \n\t*/\n\t0x3c,\t\t\t/* 00111100 */\n\t0x66,\t\t\t/* 01100110 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 68 0x44 'D' \n\t*/\n\t0xf8,\t\t\t/* 11111000 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0xf8,\t\t\t/* 11111000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 69 0x45 'E' \n\t*/\n\t0xfe,\t\t\t/* 11111110 */\n\t0x62,\t\t\t/* 01100010 */\n\t0x68,\t\t\t/* 01101000 */\n\t0x78,\t\t\t/* 01111000 */\n\t0x68,\t\t\t/* 01101000 */\n\t0x62,\t\t\t/* 01100010 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 70 0x46 'F' \n\t*/\n\t0xfe,\t\t\t/* 11111110 */\n\t0x62,\t\t\t/* 01100010 */\n\t0x68,\t\t\t/* 01101000 */\n\t0x78,\t\t\t/* 01111000 */\n\t0x68,\t\t\t/* 01101000 */\n\t0x60,\t\t\t/* 01100000 */\n\t0xf0,\t\t\t/* 11110000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 71 0x47 'G' \n\t*/\n\t0x3c,\t\t\t/* 00111100 */\n\t0x66,\t\t\t/* 01100110 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0xce,\t\t\t/* 11001110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x3a,\t\t\t/* 00111010 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 72 0x48 'H' \n\t*/\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 73 0x49 'I' \n\t*/\n\t0x3c,\t\t\t/* 00111100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 74 0x4a 'J' \n\t*/\n\t0x1e,\t\t\t/* 00011110 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0x78,\t\t\t/* 01111000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 75 0x4b 'K' \n\t*/\n\t0xe6,\t\t\t/* 11100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x78,\t\t\t/* 01111000 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x66,\t\t\t/* 01100110 */\n\t0xe6,\t\t\t/* 11100110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 76 0x4c 'L' \n\t*/\n\t0xf0,\t\t\t/* 11110000 */\n\t0x60,\t\t\t/* 01100000 */\n\t0x60,\t\t\t/* 01100000 */\n\t0x60,\t\t\t/* 01100000 */\n\t0x62,\t\t\t/* 01100010 */\n\t0x66,\t\t\t/* 01100110 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 77 0x4d 'M' \n\t*/\n\t0xc6,\t\t\t/* 11000110 */\n\t0xee,\t\t\t/* 11101110 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0xd6,\t\t\t/* 11010110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 78 0x4e 'N' \n\t*/\n\t0xc6,\t\t\t/* 11000110 */\n\t0xe6,\t\t\t/* 11100110 */\n\t0xf6,\t\t\t/* 11110110 */\n\t0xde,\t\t\t/* 11011110 */\n\t0xce,\t\t\t/* 11001110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 79 0x4f 'O' \n\t*/\n\t0x7c,\t\t\t/* 01111100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 80 0x50 'P' \n\t*/\n\t0xfc,\t\t\t/* 11111100 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x60,\t\t\t/* 01100000 */\n\t0x60,\t\t\t/* 01100000 */\n\t0xf0,\t\t\t/* 11110000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 81 0x51 'Q' \n\t*/\n\t0x7c,\t\t\t/* 01111100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xce,\t\t\t/* 11001110 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x0e,\t\t\t/* 00001110 */\n\n\t/*\n\t* 82 0x52 'R' \n\t*/\n\t0xfc,\t\t\t/* 11111100 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x66,\t\t\t/* 01100110 */\n\t0xe6,\t\t\t/* 11100110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 83 0x53 'S' \n\t*/\n\t0x3c,\t\t\t/* 00111100 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 84 0x54 'T' \n\t*/\n\t0x7e,\t\t\t/* 01111110 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x5a,\t\t\t/* 01011010 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 85 0x55 'U' \n\t*/\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 86 0x56 'V' \n\t*/\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x38,\t\t\t/* 00111000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 87 0x57 'W' \n\t*/\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xd6,\t\t\t/* 11010110 */\n\t0xd6,\t\t\t/* 11010110 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 88 0x58 'X' \n\t*/\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x38,\t\t\t/* 00111000 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 89 0x59 'Y' \n\t*/\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 90 0x5a 'Z' \n\t*/\n\t0xfe,\t\t\t/* 11111110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x8c,\t\t\t/* 10001100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x32,\t\t\t/* 00110010 */\n\t0x66,\t\t\t/* 01100110 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 91 0x5b '[' \n\t*/\n\t0x3c,\t\t\t/* 00111100 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 92 0x5c '\\' \n\t*/\n\t0xc0,\t\t\t/* 11000000 */\n\t0x60,\t\t\t/* 01100000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x06,\t\t\t/* 00000110 */\n\t0x02,\t\t\t/* 00000010 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 93 0x5d ']' \n\t*/\n\t0x3c,\t\t\t/* 00111100 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 94 0x5e '^' \n\t*/\n\t0x10,\t\t\t/* 00010000 */\n\t0x38,\t\t\t/* 00111000 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 95 0x5f '_' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xff,\t\t\t/* 11111111 */\n\n\t/*\n\t* 96 0x60 '`' \n\t*/\n\t0x30,\t\t\t/* 00110000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 97 0x61 'a' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x78,\t\t\t/* 01111000 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0x76,\t\t\t/* 01110110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 98 0x62 'b' \n\t*/\n\t0xe0,\t\t\t/* 11100000 */\n\t0x60,\t\t\t/* 01100000 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0xdc,\t\t\t/* 11011100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 99 0x63 'c' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 100 0x64 'd' \n\t*/\n\t0x1c,\t\t\t/* 00011100 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0x76,\t\t\t/* 01110110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 101 0x65 'e' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 102 0x66 'f' \n\t*/\n\t0x3c,\t\t\t/* 00111100 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x60,\t\t\t/* 01100000 */\n\t0xf8,\t\t\t/* 11111000 */\n\t0x60,\t\t\t/* 01100000 */\n\t0x60,\t\t\t/* 01100000 */\n\t0xf0,\t\t\t/* 11110000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 103 0x67 'g' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x76,\t\t\t/* 01110110 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0xf8,\t\t\t/* 11111000 */\n\n\t/*\n\t* 104 0x68 'h' \n\t*/\n\t0xe0,\t\t\t/* 11100000 */\n\t0x60,\t\t\t/* 01100000 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x76,\t\t\t/* 01110110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0xe6,\t\t\t/* 11100110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 105 0x69 'i' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x38,\t\t\t/* 00111000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 106 0x6a 'j' \n\t*/\n\t0x06,\t\t\t/* 00000110 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x06,\t\t\t/* 00000110 */\n\t0x06,\t\t\t/* 00000110 */\n\t0x06,\t\t\t/* 00000110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x3c,\t\t\t/* 00111100 */\n\n\t/*\n\t* 107 0x6b 'k' \n\t*/\n\t0xe0,\t\t\t/* 11100000 */\n\t0x60,\t\t\t/* 01100000 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x78,\t\t\t/* 01111000 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0xe6,\t\t\t/* 11100110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 108 0x6c 'l' \n\t*/\n\t0x38,\t\t\t/* 00111000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 109 0x6d 'm' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xec,\t\t\t/* 11101100 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0xd6,\t\t\t/* 11010110 */\n\t0xd6,\t\t\t/* 11010110 */\n\t0xd6,\t\t\t/* 11010110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 110 0x6e 'n' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xdc,\t\t\t/* 11011100 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 111 0x6f 'o' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 112 0x70 'p' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xdc,\t\t\t/* 11011100 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x60,\t\t\t/* 01100000 */\n\t0xf0,\t\t\t/* 11110000 */\n\n\t/*\n\t* 113 0x71 'q' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x76,\t\t\t/* 01110110 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x1e,\t\t\t/* 00011110 */\n\n\t/*\n\t* 114 0x72 'r' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xdc,\t\t\t/* 11011100 */\n\t0x76,\t\t\t/* 01110110 */\n\t0x60,\t\t\t/* 01100000 */\n\t0x60,\t\t\t/* 01100000 */\n\t0xf0,\t\t\t/* 11110000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 115 0x73 's' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x06,\t\t\t/* 00000110 */\n\t0xfc,\t\t\t/* 11111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 116 0x74 't' \n\t*/\n\t0x30,\t\t\t/* 00110000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0xfc,\t\t\t/* 11111100 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x1c,\t\t\t/* 00011100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 117 0x75 'u' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0x76,\t\t\t/* 01110110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 118 0x76 'v' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x38,\t\t\t/* 00111000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 119 0x77 'w' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xd6,\t\t\t/* 11010110 */\n\t0xd6,\t\t\t/* 11010110 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 120 0x78 'x' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x38,\t\t\t/* 00111000 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 121 0x79 'y' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x06,\t\t\t/* 00000110 */\n\t0xfc,\t\t\t/* 11111100 */\n\n\t/*\n\t* 122 0x7a 'z' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x4c,\t\t\t/* 01001100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x32,\t\t\t/* 00110010 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 123 0x7b '{' \n\t*/\n\t0x0e,\t\t\t/* 00001110 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x70,\t\t\t/* 01110000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x0e,\t\t\t/* 00001110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 124 0x7c '|' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 125 0x7d '}' \n\t*/\n\t0x70,\t\t\t/* 01110000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x0e,\t\t\t/* 00001110 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x70,\t\t\t/* 01110000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 126 0x7e '~' \n\t*/\n\t0x76,\t\t\t/* 01110110 */\n\t0xdc,\t\t\t/* 11011100 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 127 0x7f '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x10,\t\t\t/* 00010000 */\n\t0x38,\t\t\t/* 00111000 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 128 0x80 '' \n\t*/\n\t0x7c,\t\t\t/* 01111100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x78,\t\t\t/* 01111000 */\n\n\t/*\n\t* 129 0x81 '' \n\t*/\n\t0xcc,\t\t\t/* 11001100 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0x76,\t\t\t/* 01110110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 130 0x82 '' \n\t*/\n\t0x0c,\t\t\t/* 00001100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 131 0x83 '' \n\t*/\n\t0x7c,\t\t\t/* 01111100 */\n\t0x82,\t\t\t/* 10000010 */\n\t0x78,\t\t\t/* 01111000 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0x76,\t\t\t/* 01110110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 132 0x84 '' \n\t*/\n\t0xc6,\t\t\t/* 11000110 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x78,\t\t\t/* 01111000 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0x76,\t\t\t/* 01110110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 133 0x85 '' \n\t*/\n\t0x30,\t\t\t/* 00110000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x78,\t\t\t/* 01111000 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0x76,\t\t\t/* 01110110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 134 0x86 '' \n\t*/\n\t0x30,\t\t\t/* 00110000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x78,\t\t\t/* 01111000 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0x76,\t\t\t/* 01110110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 135 0x87 '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x38,\t\t\t/* 00111000 */\n\n\t/*\n\t* 136 0x88 '' \n\t*/\n\t0x7c,\t\t\t/* 01111100 */\n\t0x82,\t\t\t/* 10000010 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 137 0x89 '' \n\t*/\n\t0xc6,\t\t\t/* 11000110 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 138 0x8a '' \n\t*/\n\t0x30,\t\t\t/* 00110000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 139 0x8b '' \n\t*/\n\t0x66,\t\t\t/* 01100110 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x38,\t\t\t/* 00111000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 140 0x8c '' \n\t*/\n\t0x7c,\t\t\t/* 01111100 */\n\t0x82,\t\t\t/* 10000010 */\n\t0x38,\t\t\t/* 00111000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 141 0x8d '' \n\t*/\n\t0x30,\t\t\t/* 00110000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x38,\t\t\t/* 00111000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 142 0x8e '' \n\t*/\n\t0xc6,\t\t\t/* 11000110 */\n\t0x38,\t\t\t/* 00111000 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 143 0x8f '' \n\t*/\n\t0x38,\t\t\t/* 00111000 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 144 0x90 '' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0xf8,\t\t\t/* 11111000 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 145 0x91 '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0xd8,\t\t\t/* 11011000 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 146 0x92 '' \n\t*/\n\t0x3e,\t\t\t/* 00111110 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xce,\t\t\t/* 11001110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 147 0x93 '' \n\t*/\n\t0x7c,\t\t\t/* 01111100 */\n\t0x82,\t\t\t/* 10000010 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 148 0x94 '' \n\t*/\n\t0xc6,\t\t\t/* 11000110 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 149 0x95 '' \n\t*/\n\t0x30,\t\t\t/* 00110000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 150 0x96 '' \n\t*/\n\t0x78,\t\t\t/* 01111000 */\n\t0x84,\t\t\t/* 10000100 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0x76,\t\t\t/* 01110110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 151 0x97 '' \n\t*/\n\t0x60,\t\t\t/* 01100000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0x76,\t\t\t/* 01110110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 152 0x98 '' \n\t*/\n\t0xc6,\t\t\t/* 11000110 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x06,\t\t\t/* 00000110 */\n\t0xfc,\t\t\t/* 11111100 */\n\n\t/*\n\t* 153 0x99 '' \n\t*/\n\t0xc6,\t\t\t/* 11000110 */\n\t0x38,\t\t\t/* 00111000 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x38,\t\t\t/* 00111000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 154 0x9a '' \n\t*/\n\t0xc6,\t\t\t/* 11000110 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 155 0x9b '' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\n\t/*\n\t* 156 0x9c '' \n\t*/\n\t0x38,\t\t\t/* 00111000 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x64,\t\t\t/* 01100100 */\n\t0xf0,\t\t\t/* 11110000 */\n\t0x60,\t\t\t/* 01100000 */\n\t0x66,\t\t\t/* 01100110 */\n\t0xfc,\t\t\t/* 11111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 157 0x9d '' \n\t*/\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\n\t/*\n\t* 158 0x9e '' \n\t*/\n\t0xf8,\t\t\t/* 11111000 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xfa,\t\t\t/* 11111010 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xcf,\t\t\t/* 11001111 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc7,\t\t\t/* 11000111 */\n\n\t/*\n\t* 159 0x9f '' \n\t*/\n\t0x0e,\t\t\t/* 00001110 */\n\t0x1b,\t\t\t/* 00011011 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0xd8,\t\t\t/* 11011000 */\n\t0x70,\t\t\t/* 01110000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 160 0xa0 '' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x78,\t\t\t/* 01111000 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0x76,\t\t\t/* 01110110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 161 0xa1 '' \n\t*/\n\t0x0c,\t\t\t/* 00001100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x38,\t\t\t/* 00111000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 162 0xa2 '' \n\t*/\n\t0x0c,\t\t\t/* 00001100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 163 0xa3 '' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0x76,\t\t\t/* 01110110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 164 0xa4 '' \n\t*/\n\t0x76,\t\t\t/* 01110110 */\n\t0xdc,\t\t\t/* 11011100 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xdc,\t\t\t/* 11011100 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 165 0xa5 '' \n\t*/\n\t0x76,\t\t\t/* 01110110 */\n\t0xdc,\t\t\t/* 11011100 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xe6,\t\t\t/* 11100110 */\n\t0xf6,\t\t\t/* 11110110 */\n\t0xde,\t\t\t/* 11011110 */\n\t0xce,\t\t\t/* 11001110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 166 0xa6 '' \n\t*/\n\t0x3c,\t\t\t/* 00111100 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x3e,\t\t\t/* 00111110 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 167 0xa7 '' \n\t*/\n\t0x38,\t\t\t/* 00111000 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x38,\t\t\t/* 00111000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 168 0xa8 '' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x63,\t\t\t/* 01100011 */\n\t0x3e,\t\t\t/* 00111110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 169 0xa9 '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 170 0xaa '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0x06,\t\t\t/* 00000110 */\n\t0x06,\t\t\t/* 00000110 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 171 0xab '' \n\t*/\n\t0x63,\t\t\t/* 01100011 */\n\t0xe6,\t\t\t/* 11100110 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x33,\t\t\t/* 00110011 */\n\t0x66,\t\t\t/* 01100110 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0x0f,\t\t\t/* 00001111 */\n\n\t/*\n\t* 172 0xac '' \n\t*/\n\t0x63,\t\t\t/* 01100011 */\n\t0xe6,\t\t\t/* 11100110 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x7a,\t\t\t/* 01111010 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x6a,\t\t\t/* 01101010 */\n\t0xdf,\t\t\t/* 11011111 */\n\t0x06,\t\t\t/* 00000110 */\n\n\t/*\n\t* 173 0xad '' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 174 0xae '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x33,\t\t\t/* 00110011 */\n\t0x66,\t\t\t/* 01100110 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x33,\t\t\t/* 00110011 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 175 0xaf '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x33,\t\t\t/* 00110011 */\n\t0x66,\t\t\t/* 01100110 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 176 0xb0 '' \n\t*/\n\t0x22,\t\t\t/* 00100010 */\n\t0x88,\t\t\t/* 10001000 */\n\t0x22,\t\t\t/* 00100010 */\n\t0x88,\t\t\t/* 10001000 */\n\t0x22,\t\t\t/* 00100010 */\n\t0x88,\t\t\t/* 10001000 */\n\t0x22,\t\t\t/* 00100010 */\n\t0x88,\t\t\t/* 10001000 */\n\n\t/*\n\t* 177 0xb1 '' \n\t*/\n\t0x55,\t\t\t/* 01010101 */\n\t0xaa,\t\t\t/* 10101010 */\n\t0x55,\t\t\t/* 01010101 */\n\t0xaa,\t\t\t/* 10101010 */\n\t0x55,\t\t\t/* 01010101 */\n\t0xaa,\t\t\t/* 10101010 */\n\t0x55,\t\t\t/* 01010101 */\n\t0xaa,\t\t\t/* 10101010 */\n\n\t/*\n\t* 178 0xb2 '' \n\t*/\n\t0x77,\t\t\t/* 01110111 */\n\t0xdd,\t\t\t/* 11011101 */\n\t0x77,\t\t\t/* 01110111 */\n\t0xdd,\t\t\t/* 11011101 */\n\t0x77,\t\t\t/* 01110111 */\n\t0xdd,\t\t\t/* 11011101 */\n\t0x77,\t\t\t/* 01110111 */\n\t0xdd,\t\t\t/* 11011101 */\n\n\t/*\n\t* 179 0xb3 '' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\n\t/*\n\t* 180 0xb4 '' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0xf8,\t\t\t/* 11111000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\n\t/*\n\t* 181 0xb5 '' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0xf8,\t\t\t/* 11111000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0xf8,\t\t\t/* 11111000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\n\t/*\n\t* 182 0xb6 '' \n\t*/\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0xf6,\t\t\t/* 11110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\n\t/*\n\t* 183 0xb7 '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\n\t/*\n\t* 184 0xb8 '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xf8,\t\t\t/* 11111000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0xf8,\t\t\t/* 11111000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\n\t/*\n\t* 185 0xb9 '' \n\t*/\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0xf6,\t\t\t/* 11110110 */\n\t0x06,\t\t\t/* 00000110 */\n\t0xf6,\t\t\t/* 11110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\n\t/*\n\t* 186 0xba '' \n\t*/\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\n\t/*\n\t* 187 0xbb '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0x06,\t\t\t/* 00000110 */\n\t0xf6,\t\t\t/* 11110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\n\t/*\n\t* 188 0xbc '' \n\t*/\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0xf6,\t\t\t/* 11110110 */\n\t0x06,\t\t\t/* 00000110 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 189 0xbd '' \n\t*/\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 190 0xbe '' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0xf8,\t\t\t/* 11111000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0xf8,\t\t\t/* 11111000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 191 0xbf '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xf8,\t\t\t/* 11111000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\n\t/*\n\t* 192 0xc0 '' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x1f,\t\t\t/* 00011111 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 193 0xc1 '' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0xff,\t\t\t/* 11111111 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 194 0xc2 '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xff,\t\t\t/* 11111111 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\n\t/*\n\t* 195 0xc3 '' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x1f,\t\t\t/* 00011111 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\n\t/*\n\t* 196 0xc4 '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xff,\t\t\t/* 11111111 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 197 0xc5 '' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0xff,\t\t\t/* 11111111 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\n\t/*\n\t* 198 0xc6 '' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x1f,\t\t\t/* 00011111 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x1f,\t\t\t/* 00011111 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\n\t/*\n\t* 199 0xc7 '' \n\t*/\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x37,\t\t\t/* 00110111 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\n\t/*\n\t* 200 0xc8 '' \n\t*/\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x37,\t\t\t/* 00110111 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x3f,\t\t\t/* 00111111 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 201 0xc9 '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x3f,\t\t\t/* 00111111 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x37,\t\t\t/* 00110111 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\n\t/*\n\t* 202 0xca '' \n\t*/\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0xf7,\t\t\t/* 11110111 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xff,\t\t\t/* 11111111 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 203 0xcb '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xff,\t\t\t/* 11111111 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xf7,\t\t\t/* 11110111 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\n\t/*\n\t* 204 0xcc '' \n\t*/\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x37,\t\t\t/* 00110111 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x37,\t\t\t/* 00110111 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\n\t/*\n\t* 205 0xcd '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xff,\t\t\t/* 11111111 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xff,\t\t\t/* 11111111 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 206 0xce '' \n\t*/\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0xf7,\t\t\t/* 11110111 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xf7,\t\t\t/* 11110111 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\n\t/*\n\t* 207 0xcf '' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0xff,\t\t\t/* 11111111 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xff,\t\t\t/* 11111111 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 208 0xd0 '' \n\t*/\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0xff,\t\t\t/* 11111111 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 209 0xd1 '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xff,\t\t\t/* 11111111 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xff,\t\t\t/* 11111111 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\n\t/*\n\t* 210 0xd2 '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xff,\t\t\t/* 11111111 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\n\t/*\n\t* 211 0xd3 '' \n\t*/\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x3f,\t\t\t/* 00111111 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 212 0xd4 '' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x1f,\t\t\t/* 00011111 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x1f,\t\t\t/* 00011111 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 213 0xd5 '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x1f,\t\t\t/* 00011111 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x1f,\t\t\t/* 00011111 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\n\t/*\n\t* 214 0xd6 '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x3f,\t\t\t/* 00111111 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\n\t/*\n\t* 215 0xd7 '' \n\t*/\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0xff,\t\t\t/* 11111111 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\n\t/*\n\t* 216 0xd8 '' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0xff,\t\t\t/* 11111111 */\n\t0x18,\t\t\t/* 00011000 */\n\t0xff,\t\t\t/* 11111111 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\n\t/*\n\t* 217 0xd9 '' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0xf8,\t\t\t/* 11111000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 218 0xda '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x1f,\t\t\t/* 00011111 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\n\t/*\n\t* 219 0xdb '' \n\t*/\n\t0xff,\t\t\t/* 11111111 */\n\t0xff,\t\t\t/* 11111111 */\n\t0xff,\t\t\t/* 11111111 */\n\t0xff,\t\t\t/* 11111111 */\n\t0xff,\t\t\t/* 11111111 */\n\t0xff,\t\t\t/* 11111111 */\n\t0xff,\t\t\t/* 11111111 */\n\t0xff,\t\t\t/* 11111111 */\n\n\t/*\n\t* 220 0xdc '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xff,\t\t\t/* 11111111 */\n\t0xff,\t\t\t/* 11111111 */\n\t0xff,\t\t\t/* 11111111 */\n\t0xff,\t\t\t/* 11111111 */\n\n\t/*\n\t* 221 0xdd '' \n\t*/\n\t0xf0,\t\t\t/* 11110000 */\n\t0xf0,\t\t\t/* 11110000 */\n\t0xf0,\t\t\t/* 11110000 */\n\t0xf0,\t\t\t/* 11110000 */\n\t0xf0,\t\t\t/* 11110000 */\n\t0xf0,\t\t\t/* 11110000 */\n\t0xf0,\t\t\t/* 11110000 */\n\t0xf0,\t\t\t/* 11110000 */\n\n\t/*\n\t* 222 0xde '' \n\t*/\n\t0x0f,\t\t\t/* 00001111 */\n\t0x0f,\t\t\t/* 00001111 */\n\t0x0f,\t\t\t/* 00001111 */\n\t0x0f,\t\t\t/* 00001111 */\n\t0x0f,\t\t\t/* 00001111 */\n\t0x0f,\t\t\t/* 00001111 */\n\t0x0f,\t\t\t/* 00001111 */\n\t0x0f,\t\t\t/* 00001111 */\n\n\t/*\n\t* 223 0xdf '' \n\t*/\n\t0xff,\t\t\t/* 11111111 */\n\t0xff,\t\t\t/* 11111111 */\n\t0xff,\t\t\t/* 11111111 */\n\t0xff,\t\t\t/* 11111111 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 224 0xe0 '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x76,\t\t\t/* 01110110 */\n\t0xdc,\t\t\t/* 11011100 */\n\t0xc8,\t\t\t/* 11001000 */\n\t0xdc,\t\t\t/* 11011100 */\n\t0x76,\t\t\t/* 01110110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 225 0xe1 '' \n\t*/\n\t0x78,\t\t\t/* 01111000 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xd8,\t\t\t/* 11011000 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xcc,\t\t\t/* 11001100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 226 0xe2 '' \n\t*/\n\t0xfe,\t\t\t/* 11111110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0xc0,\t\t\t/* 11000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 227 0xe3 '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 228 0xe4 '' \n\t*/\n\t0xfe,\t\t\t/* 11111110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x60,\t\t\t/* 01100000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x60,\t\t\t/* 01100000 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 229 0xe5 '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0xd8,\t\t\t/* 11011000 */\n\t0xd8,\t\t\t/* 11011000 */\n\t0xd8,\t\t\t/* 11011000 */\n\t0x70,\t\t\t/* 01110000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 230 0xe6 '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0xc0,\t\t\t/* 11000000 */\n\n\t/*\n\t* 231 0xe7 '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x76,\t\t\t/* 01110110 */\n\t0xdc,\t\t\t/* 11011100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 232 0xe8 '' \n\t*/\n\t0x7e,\t\t\t/* 01111110 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x7e,\t\t\t/* 01111110 */\n\n\t/*\n\t* 233 0xe9 '' \n\t*/\n\t0x38,\t\t\t/* 00111000 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x38,\t\t\t/* 00111000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 234 0xea '' \n\t*/\n\t0x38,\t\t\t/* 00111000 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0xee,\t\t\t/* 11101110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 235 0xeb '' \n\t*/\n\t0x0e,\t\t\t/* 00001110 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x3e,\t\t\t/* 00111110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x66,\t\t\t/* 01100110 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 236 0xec '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0xdb,\t\t\t/* 11011011 */\n\t0xdb,\t\t\t/* 11011011 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 237 0xed '' \n\t*/\n\t0x06,\t\t\t/* 00000110 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0xdb,\t\t\t/* 11011011 */\n\t0xdb,\t\t\t/* 11011011 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x60,\t\t\t/* 01100000 */\n\t0xc0,\t\t\t/* 11000000 */\n\n\t/*\n\t* 238 0xee '' \n\t*/\n\t0x1e,\t\t\t/* 00011110 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x60,\t\t\t/* 01100000 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x60,\t\t\t/* 01100000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x1e,\t\t\t/* 00011110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 239 0xef '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0xc6,\t\t\t/* 11000110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 240 0xf0 '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0x00,\t\t\t/* 00000000 */\n\t0xfe,\t\t\t/* 11111110 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 241 0xf1 '' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 242 0xf2 '' \n\t*/\n\t0x30,\t\t\t/* 00110000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 243 0xf3 '' \n\t*/\n\t0x0c,\t\t\t/* 00001100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 244 0xf4 '' \n\t*/\n\t0x0e,\t\t\t/* 00001110 */\n\t0x1b,\t\t\t/* 00011011 */\n\t0x1b,\t\t\t/* 00011011 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\n\t/*\n\t* 245 0xf5 '' \n\t*/\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0xd8,\t\t\t/* 11011000 */\n\t0xd8,\t\t\t/* 11011000 */\n\t0x70,\t\t\t/* 01110000 */\n\n\t/*\n\t* 246 0xf6 '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x7e,\t\t\t/* 01111110 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 247 0xf7 '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x76,\t\t\t/* 01110110 */\n\t0xdc,\t\t\t/* 11011100 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x76,\t\t\t/* 01110110 */\n\t0xdc,\t\t\t/* 11011100 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 248 0xf8 '' \n\t*/\n\t0x38,\t\t\t/* 00111000 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x38,\t\t\t/* 00111000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 249 0xf9 '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 250 0xfa '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 251 0xfb '' \n\t*/\n\t0x0f,\t\t\t/* 00001111 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0xec,\t\t\t/* 11101100 */\n\t0x6c,\t\t\t/* 01101100 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x1c,\t\t\t/* 00011100 */\n\n\t/*\n\t* 252 0xfc '' \n\t*/\n\t0x6c,\t\t\t/* 01101100 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x36,\t\t\t/* 00110110 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 253 0xfd '' \n\t*/\n\t0x78,\t\t\t/* 01111000 */\n\t0x0c,\t\t\t/* 00001100 */\n\t0x18,\t\t\t/* 00011000 */\n\t0x30,\t\t\t/* 00110000 */\n\t0x7c,\t\t\t/* 01111100 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 254 0xfe '' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x3c,\t\t\t/* 00111100 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n\t/*\n\t* 255 0xff ' ' \n\t*/\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\t0x00,\t\t\t/* 00000000 */\n\n};\n"
  },
  {
    "path": "include/SDL2_rotozoom.h",
    "content": "/*  \n\nSDL2_rotozoom.c: rotozoomer, zoomer and shrinker for 32bit or 8bit surfaces\n\nCopyright (C) 2001-2012  Andreas Schiffler\n\nThis software is provided 'as-is', without any express or implied\nwarranty. In no event will the authors be held liable for any damages\narising from the use of this software.\n\nPermission is granted to anyone to use this software for any purpose,\nincluding commercial applications, and to alter it and redistribute it\nfreely, subject to the following restrictions:\n\n1. The origin of this software must not be misrepresented; you must not\nclaim that you wrote the original software. If you use this software\nin a product, an acknowledgment in the product documentation would be\nappreciated but is not required.\n\n2. Altered source versions must be plainly marked as such, and must not be\nmisrepresented as being the original software.\n\n3. This notice may not be removed or altered from any source\ndistribution.\n\nAndreas Schiffler -- aschiffler at ferzkopp dot net\n\n*/\n\n#ifndef _SDL2_rotozoom_h\n#define _SDL2_rotozoom_h\n\n#include <math.h>\n\n/* Set up for C function definitions, even when using C++ */\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#ifndef M_PI\n#define M_PI\t3.1415926535897932384626433832795\n#endif\n\n#include \"SDL2/SDL.h\"\n\n\t/* ---- Defines */\n\n\t/*!\n\t\\brief Disable anti-aliasing (no smoothing).\n\t*/\n#define SMOOTHING_OFF\t\t0\n\n\t/*!\n\t\\brief Enable anti-aliasing (smoothing).\n\t*/\n#define SMOOTHING_ON\t\t1\n\n\t/* ---- Function Prototypes */\n\n#ifdef _MSC_VER\n#  if defined(DLL_EXPORT) && !defined(LIBSDL2_GFX_DLL_IMPORT)\n#    define SDL2_ROTOZOOM_SCOPE __declspec(dllexport)\n#  else\n#    ifdef LIBSDL2_GFX_DLL_IMPORT\n#      define SDL2_ROTOZOOM_SCOPE __declspec(dllimport)\n#    endif\n#  endif\n#endif\n#ifndef SDL2_ROTOZOOM_SCOPE\n#  define SDL2_ROTOZOOM_SCOPE extern\n#endif\n\n\t/* \n\n\tRotozoom functions\n\n\t*/\n\n\tSDL2_ROTOZOOM_SCOPE SDL_Surface *rotozoomSurface(SDL_Surface * src, double angle, double zoom, int smooth);\n\n\tSDL2_ROTOZOOM_SCOPE SDL_Surface *rotozoomSurfaceXY\n\t\t(SDL_Surface * src, double angle, double zoomx, double zoomy, int smooth);\n\n\n\tSDL2_ROTOZOOM_SCOPE void rotozoomSurfaceSize(int width, int height, double angle, double zoom, int *dstwidth,\n\t\tint *dstheight);\n\n\tSDL2_ROTOZOOM_SCOPE void rotozoomSurfaceSizeXY\n\t\t(int width, int height, double angle, double zoomx, double zoomy, \n\t\tint *dstwidth, int *dstheight);\n\n\t/* \n\n\tZooming functions\n\n\t*/\n\n\tSDL2_ROTOZOOM_SCOPE SDL_Surface *zoomSurface(SDL_Surface * src, double zoomx, double zoomy, int smooth);\n\n\tSDL2_ROTOZOOM_SCOPE void zoomSurfaceSize(int width, int height, double zoomx, double zoomy, int *dstwidth, int *dstheight);\n\n\t/* \n\n\tShrinking functions\n\n\t*/     \n\n\tSDL2_ROTOZOOM_SCOPE SDL_Surface *shrinkSurface(SDL_Surface * src, int factorx, int factory);\n\n\t/* \n\n\tSpecialized rotation functions\n\n\t*/\n\n\tSDL2_ROTOZOOM_SCOPE SDL_Surface* rotateSurface90Degrees(SDL_Surface* src, int numClockwiseTurns);\n\n\t/* Ends C function definitions when using C++ */\n#ifdef __cplusplus\n}\n#endif\n\n#endif\t\t\t\t/* _SDL2_rotozoom_h */\n"
  },
  {
    "path": "include/SDL_net.h",
    "content": "/*\n  SDL_net:  An example cross-platform network library for use with SDL\n  Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org>\n  Copyright (C) 2012 Simeon Maxein <smaxein@googlemail.com>\n\n  This software is provided 'as-is', without any express or implied\n  warranty.  In no event will the authors be held liable for any damages\n  arising from the use of this software.\n\n  Permission is granted to anyone to use this software for any purpose,\n  including commercial applications, and to alter it and redistribute it\n  freely, subject to the following restrictions:\n\n  1. The origin of this software must not be misrepresented; you must not\n     claim that you wrote the original software. If you use this software\n     in a product, an acknowledgment in the product documentation would be\n     appreciated but is not required.\n  2. Altered source versions must be plainly marked as such, and must not be\n     misrepresented as being the original software.\n  3. This notice may not be removed or altered from any source distribution.\n*/\n\n/* $Id$ */\n\n#ifndef _SDL_NET_H\n#define _SDL_NET_H\n\n#ifdef WITHOUT_SDL\n#include <stdint.h>\ntypedef uint8_t Uint8;\ntypedef uint16_t Uint16;\ntypedef uint32_t Uint32;\n\ntypedef struct SDLNet_version {\n    Uint8 major;\n    Uint8 minor;\n    Uint8 patch;\n} SDLNet_version;\n\n#else /* WITHOUT_SDL */\n\n//#include \"SDL.h\"\n//#include \"SDL_endian.h\"\n//#include \"SDL_version.h\"\n\ntypedef SDL_version SDLNet_version;\n\n#endif /* WITHOUT_SDL */\n\n#include \"begin_code.h\"\n\n/* Set up for C function definitions, even when using C++ */\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n/* Printable format: \"%d.%d.%d\", MAJOR, MINOR, PATCHLEVEL\n*/\n#define SDL_NET_MAJOR_VERSION   2\n#define SDL_NET_MINOR_VERSION   0\n#define SDL_NET_PATCHLEVEL      1\n\n/* This macro can be used to fill a version structure with the compile-time\n * version of the SDL_net library.\n */\n#define SDL_NET_VERSION(X)                          \\\n{                                                   \\\n    (X)->major = SDL_NET_MAJOR_VERSION;             \\\n    (X)->minor = SDL_NET_MINOR_VERSION;             \\\n    (X)->patch = SDL_NET_PATCHLEVEL;                \\\n}\n\n/* This function gets the version of the dynamically linked SDL_net library.\n   it should NOT be used to fill a version structure, instead you should\n   use the SDL_NET_VERSION() macro.\n */\nextern DECLSPEC const SDLNet_version * SDLCALL SDLNet_Linked_Version(void);\n\n/* Initialize/Cleanup the network API\n   SDL must be initialized before calls to functions in this library,\n   because this library uses utility functions from the SDL library.\n*/\nextern DECLSPEC int  SDLCALL SDLNet_Init(void);\nextern DECLSPEC void SDLCALL SDLNet_Quit(void);\n\n/***********************************************************************/\n/* IPv4 hostname resolution API                                        */\n/***********************************************************************/\n\ntypedef struct {\n    Uint32 host;            /* 32-bit IPv4 host address */\n    Uint16 port;            /* 16-bit protocol port */\n} IPaddress;\n\n/* Resolve a host name and port to an IP address in network form.\n   If the function succeeds, it will return 0.\n   If the host couldn't be resolved, the host portion of the returned\n   address will be INADDR_NONE, and the function will return -1.\n   If 'host' is NULL, the resolved host will be set to INADDR_ANY.\n */\n#ifndef INADDR_ANY\n#define INADDR_ANY      0x00000000\n#endif\n#ifndef INADDR_NONE\n#define INADDR_NONE     0xFFFFFFFF\n#endif\n#ifndef INADDR_LOOPBACK\n#define INADDR_LOOPBACK     0x7f000001\n#endif\n#ifndef INADDR_BROADCAST\n#define INADDR_BROADCAST    0xFFFFFFFF\n#endif\nextern DECLSPEC int SDLCALL SDLNet_ResolveHost(IPaddress *address, const char *host, Uint16 port);\n\n/* Resolve an ip address to a host name in canonical form.\n   If the ip couldn't be resolved, this function returns NULL,\n   otherwise a pointer to a static buffer containing the hostname\n   is returned.  Note that this function is not thread-safe.\n*/\nextern DECLSPEC const char * SDLCALL SDLNet_ResolveIP(const IPaddress *ip);\n\n/* Get the addresses of network interfaces on this system.\n   This returns the number of addresses saved in 'addresses'\n */\nextern DECLSPEC int SDLCALL SDLNet_GetLocalAddresses(IPaddress *addresses, int maxcount);\n\n/***********************************************************************/\n/* TCP network API                                                     */\n/***********************************************************************/\n\ntypedef struct _TCPsocket *TCPsocket;\n\n/* Open a TCP network socket\n   If ip.host is INADDR_NONE or INADDR_ANY, this creates a local server\n   socket on the given port, otherwise a TCP connection to the remote\n   host and port is attempted. The address passed in should already be\n   swapped to network byte order (addresses returned from\n   SDLNet_ResolveHost() are already in the correct form).\n   The newly created socket is returned, or NULL if there was an error.\n*/\nextern DECLSPEC TCPsocket SDLCALL SDLNet_TCP_Open(IPaddress *ip);\n\n/* Accept an incoming connection on the given server socket.\n   The newly created socket is returned, or NULL if there was an error.\n*/\nextern DECLSPEC TCPsocket SDLCALL SDLNet_TCP_Accept(TCPsocket server);\n\n/* Get the IP address of the remote system associated with the socket.\n   If the socket is a server socket, this function returns NULL.\n*/\nextern DECLSPEC IPaddress * SDLCALL SDLNet_TCP_GetPeerAddress(TCPsocket sock);\n\n/* Send 'len' bytes of 'data' over the non-server socket 'sock'\n   This function returns the actual amount of data sent.  If the return value\n   is less than the amount of data sent, then either the remote connection was\n   closed, or an unknown socket error occurred.\n*/\nextern DECLSPEC int SDLCALL SDLNet_TCP_Send(TCPsocket sock, const void *data,\n        int len);\n\n/* Receive up to 'maxlen' bytes of data over the non-server socket 'sock',\n   and store them in the buffer pointed to by 'data'.\n   This function returns the actual amount of data received.  If the return\n   value is less than or equal to zero, then either the remote connection was\n   closed, or an unknown socket error occurred.\n*/\nextern DECLSPEC int SDLCALL SDLNet_TCP_Recv(TCPsocket sock, void *data, int maxlen);\n\n/* Close a TCP network socket */\nextern DECLSPEC void SDLCALL SDLNet_TCP_Close(TCPsocket sock);\n\n\n/***********************************************************************/\n/* UDP network API                                                     */\n/***********************************************************************/\n\n/* The maximum channels on a a UDP socket */\n#define SDLNET_MAX_UDPCHANNELS  32\n/* The maximum addresses bound to a single UDP socket channel */\n#define SDLNET_MAX_UDPADDRESSES 4\n\ntypedef struct _UDPsocket *UDPsocket;\ntypedef struct {\n    int channel;        /* The src/dst channel of the packet */\n    Uint8 *data;        /* The packet data */\n    int len;            /* The length of the packet data */\n    int maxlen;         /* The size of the data buffer */\n    int status;         /* packet status after sending */\n    IPaddress address;  /* The source/dest address of an incoming/outgoing packet */\n} UDPpacket;\n\n/* Allocate/resize/free a single UDP packet 'size' bytes long.\n   The new packet is returned, or NULL if the function ran out of memory.\n */\nextern DECLSPEC UDPpacket * SDLCALL SDLNet_AllocPacket(int size);\nextern DECLSPEC int SDLCALL SDLNet_ResizePacket(UDPpacket *packet, int newsize);\nextern DECLSPEC void SDLCALL SDLNet_FreePacket(UDPpacket *packet);\n\n/* Allocate/Free a UDP packet vector (array of packets) of 'howmany' packets,\n   each 'size' bytes long.\n   A pointer to the first packet in the array is returned, or NULL if the\n   function ran out of memory.\n */\nextern DECLSPEC UDPpacket ** SDLCALL SDLNet_AllocPacketV(int howmany, int size);\nextern DECLSPEC void SDLCALL SDLNet_FreePacketV(UDPpacket **packetV);\n\n\n/* Open a UDP network socket\n   If 'port' is non-zero, the UDP socket is bound to a local port.\n   The 'port' should be given in native byte order, but is used\n   internally in network (big endian) byte order, in addresses, etc.\n   This allows other systems to send to this socket via a known port.\n*/\nextern DECLSPEC UDPsocket SDLCALL SDLNet_UDP_Open(Uint16 port);\n\n/* Set the percentage of simulated packet loss for packets sent on the socket.\n*/\nextern DECLSPEC void SDLCALL SDLNet_UDP_SetPacketLoss(UDPsocket sock, int percent);\n\n/* Bind the address 'address' to the requested channel on the UDP socket.\n   If the channel is -1, then the first unbound channel that has not yet\n   been bound to the maximum number of addresses will be bound with\n   the given address as it's primary address.\n   If the channel is already bound, this new address will be added to the\n   list of valid source addresses for packets arriving on the channel.\n   If the channel is not already bound, then the address becomes the primary\n   address, to which all outbound packets on the channel are sent.\n   This function returns the channel which was bound, or -1 on error.\n*/\nextern DECLSPEC int SDLCALL SDLNet_UDP_Bind(UDPsocket sock, int channel, const IPaddress *address);\n\n/* Unbind all addresses from the given channel */\nextern DECLSPEC void SDLCALL SDLNet_UDP_Unbind(UDPsocket sock, int channel);\n\n/* Get the primary IP address of the remote system associated with the\n   socket and channel.  If the channel is -1, then the primary IP port\n   of the UDP socket is returned -- this is only meaningful for sockets\n   opened with a specific port.\n   If the channel is not bound and not -1, this function returns NULL.\n */\nextern DECLSPEC IPaddress * SDLCALL SDLNet_UDP_GetPeerAddress(UDPsocket sock, int channel);\n\n/* Send a vector of packets to the the channels specified within the packet.\n   If the channel specified in the packet is -1, the packet will be sent to\n   the address in the 'src' member of the packet.\n   Each packet will be updated with the status of the packet after it has\n   been sent, -1 if the packet send failed.\n   This function returns the number of packets sent.\n*/\nextern DECLSPEC int SDLCALL SDLNet_UDP_SendV(UDPsocket sock, UDPpacket **packets, int npackets);\n\n/* Send a single packet to the specified channel.\n   If the channel specified in the packet is -1, the packet will be sent to\n   the address in the 'src' member of the packet.\n   The packet will be updated with the status of the packet after it has\n   been sent.\n   This function returns 1 if the packet was sent, or 0 on error.\n\n   NOTE:\n   The maximum size of the packet is limited by the MTU (Maximum Transfer Unit)\n   of the transport medium.  It can be as low as 250 bytes for some PPP links,\n   and as high as 1500 bytes for ethernet.\n*/\nextern DECLSPEC int SDLCALL SDLNet_UDP_Send(UDPsocket sock, int channel, UDPpacket *packet);\n\n/* Receive a vector of pending packets from the UDP socket.\n   The returned packets contain the source address and the channel they arrived\n   on.  If they did not arrive on a bound channel, the the channel will be set\n   to -1.\n   The channels are checked in highest to lowest order, so if an address is\n   bound to multiple channels, the highest channel with the source address\n   bound will be returned.\n   This function returns the number of packets read from the network, or -1\n   on error.  This function does not block, so can return 0 packets pending.\n*/\nextern DECLSPEC int SDLCALL SDLNet_UDP_RecvV(UDPsocket sock, UDPpacket **packets);\n\n/* Receive a single packet from the UDP socket.\n   The returned packet contains the source address and the channel it arrived\n   on.  If it did not arrive on a bound channel, the the channel will be set\n   to -1.\n   The channels are checked in highest to lowest order, so if an address is\n   bound to multiple channels, the highest channel with the source address\n   bound will be returned.\n   This function returns the number of packets read from the network, or -1\n   on error.  This function does not block, so can return 0 packets pending.\n*/\nextern DECLSPEC int SDLCALL SDLNet_UDP_Recv(UDPsocket sock, UDPpacket *packet);\n\n/* Close a UDP network socket */\nextern DECLSPEC void SDLCALL SDLNet_UDP_Close(UDPsocket sock);\n\n\n/***********************************************************************/\n/* Hooks for checking sockets for available data                       */\n/***********************************************************************/\n\ntypedef struct _SDLNet_SocketSet *SDLNet_SocketSet;\n\n/* Any network socket can be safely cast to this socket type */\ntypedef struct _SDLNet_GenericSocket {\n    int ready;\n} *SDLNet_GenericSocket;\n\n/* Allocate a socket set for use with SDLNet_CheckSockets()\n   This returns a socket set for up to 'maxsockets' sockets, or NULL if\n   the function ran out of memory.\n */\nextern DECLSPEC SDLNet_SocketSet SDLCALL SDLNet_AllocSocketSet(int maxsockets);\n\n/* Add a socket to a set of sockets to be checked for available data */\nextern DECLSPEC int SDLCALL SDLNet_AddSocket(SDLNet_SocketSet set, SDLNet_GenericSocket sock);\nSDL_FORCE_INLINE int SDLNet_TCP_AddSocket(SDLNet_SocketSet set, TCPsocket sock)\n{\n    return SDLNet_AddSocket(set, (SDLNet_GenericSocket)sock);\n}\nSDL_FORCE_INLINE int SDLNet_UDP_AddSocket(SDLNet_SocketSet set, UDPsocket sock)\n{\n    return SDLNet_AddSocket(set, (SDLNet_GenericSocket)sock);\n}\n\n\n/* Remove a socket from a set of sockets to be checked for available data */\nextern DECLSPEC int SDLCALL SDLNet_DelSocket(SDLNet_SocketSet set, SDLNet_GenericSocket sock);\nSDL_FORCE_INLINE int SDLNet_TCP_DelSocket(SDLNet_SocketSet set, TCPsocket sock)\n{\n    return SDLNet_DelSocket(set, (SDLNet_GenericSocket)sock);\n}\nSDL_FORCE_INLINE int SDLNet_UDP_DelSocket(SDLNet_SocketSet set, UDPsocket sock)\n{\n    return SDLNet_DelSocket(set, (SDLNet_GenericSocket)sock);\n}\n\n/* This function checks to see if data is available for reading on the\n   given set of sockets.  If 'timeout' is 0, it performs a quick poll,\n   otherwise the function returns when either data is available for\n   reading, or the timeout in milliseconds has elapsed, which ever occurs\n   first.  This function returns the number of sockets ready for reading,\n   or -1 if there was an error with the select() system call.\n*/\nextern DECLSPEC int SDLCALL SDLNet_CheckSockets(SDLNet_SocketSet set, Uint32 timeout);\n\n/* After calling SDLNet_CheckSockets(), you can use this function on a\n   socket that was in the socket set, to find out if data is available\n   for reading.\n*/\n#define SDLNet_SocketReady(sock) _SDLNet_SocketReady((SDLNet_GenericSocket)(sock))\nSDL_FORCE_INLINE int _SDLNet_SocketReady(SDLNet_GenericSocket sock)\n{\n    return (sock != NULL) && (sock->ready);\n}\n\n/* Free a set of sockets allocated by SDL_NetAllocSocketSet() */\nextern DECLSPEC void SDLCALL SDLNet_FreeSocketSet(SDLNet_SocketSet set);\n\n/***********************************************************************/\n/* Error reporting functions                                           */\n/***********************************************************************/\n\nextern DECLSPEC void SDLCALL SDLNet_SetError(const char *fmt, ...);\nextern DECLSPEC const char * SDLCALL SDLNet_GetError(void);\n\n/***********************************************************************/\n/* Inline functions to read/write network data                         */\n/***********************************************************************/\n\n/* Warning, some systems have data access alignment restrictions */\n#if defined(sparc) || defined(mips) || defined(__arm__)\n#define SDL_DATA_ALIGNED    1\n#endif\n#ifndef SDL_DATA_ALIGNED\n#define SDL_DATA_ALIGNED    0\n#endif\n\n/* Write a 16/32-bit value to network packet buffer */\n#define SDLNet_Write16(value, areap) _SDLNet_Write16(value, areap)\n#define SDLNet_Write32(value, areap) _SDLNet_Write32(value, areap)\n\n/* Read a 16/32-bit value from network packet buffer */\n#define SDLNet_Read16(areap) _SDLNet_Read16(areap)\n#define SDLNet_Read32(areap) _SDLNet_Read32(areap)\n\n#if !defined(WITHOUT_SDL) && !SDL_DATA_ALIGNED\n\nSDL_FORCE_INLINE void _SDLNet_Write16(Uint16 value, void *areap)\n{\n    *(Uint16 *)areap = SDL_SwapBE16(value);\n}\n\nSDL_FORCE_INLINE void _SDLNet_Write32(Uint32 value, void *areap)\n{\n    *(Uint32 *)areap = SDL_SwapBE32(value);\n}\n\nSDL_FORCE_INLINE Uint16 _SDLNet_Read16(const void *areap)\n{\n    return SDL_SwapBE16(*(const Uint16 *)areap);\n}\n\nSDL_FORCE_INLINE Uint32 _SDLNet_Read32(const void *areap)\n{\n    return SDL_SwapBE32(*(const Uint32 *)areap);\n}\n\n#else /* !defined(WITHOUT_SDL) && !SDL_DATA_ALIGNED */\n\nSDL_FORCE_INLINE void _SDLNet_Write16(Uint16 value, void *areap)\n{\n    Uint8 *area = (Uint8*)areap;\n    area[0] = (value >>  8) & 0xFF;\n    area[1] =  value        & 0xFF;\n}\n\nSDL_FORCE_INLINE void _SDLNet_Write32(Uint32 value, void *areap)\n{\n    Uint8 *area = (Uint8*)areap;\n    area[0] = (value >> 24) & 0xFF;\n    area[1] = (value >> 16) & 0xFF;\n    area[2] = (value >>  8) & 0xFF;\n    area[3] =  value        & 0xFF;\n}\n\nSDL_FORCE_INLINE Uint16 _SDLNet_Read16(void *areap)\n{\n    Uint8 *area = (Uint8*)areap;\n    return ((Uint16)area[0]) << 8 | ((Uint16)area[1]);\n}\n\nSDL_FORCE_INLINE Uint32 _SDLNet_Read32(const void *areap)\n{\n    const Uint8 *area = (const Uint8*)areap;\n    return ((Uint32)area[0]) << 24 | ((Uint32)area[1]) << 16 | ((Uint32)area[2]) << 8 | ((Uint32)area[3]);\n}\n\n#endif /* !defined(WITHOUT_SDL) && !SDL_DATA_ALIGNED */\n\n/* Ends C function definitions when using C++ */\n#ifdef __cplusplus\n}\n#endif\n#include \"close_code.h\"\n\n#endif /* _SDL_NET_H */\n"
  },
  {
    "path": "include/SDL_stbimage.h",
    "content": "/*\n * A small header-only library to load an image into a RGB(A) SDL_Surface*,\n * like a stripped down version of SDL_Image, but using stb_image.h to decode\n * images and thus without any further external dependencies.\n * Supports all filetypes supported by stb_image (JPEG, PNG, TGA, BMP, PSD, ...\n * See stb_image.h for details).\n *\n * (C) 2015-2021 Daniel Gibson\n *\n * Homepage: https://github.com/DanielGibson/Snippets/\n *\n * Dependencies:\n *     libSDL2      http://www.libsdl.org\n *     stb_image.h  https://github.com/nothings/stb\n *\n * Usage:\n *   Put this file and stb_image.h somewhere in your project.\n *   In *one* of your .c/.cpp files, do\n *     #define SDL_STBIMAGE_IMPLEMENTATION\n *     #include \"SDL_stbimage.h\"\n *   to create the implementation of this library in that file.\n *   You can just #include \"SDL_stbimage.h\" (without the #define) in other source\n *   files to use it there. (See also below this comment for an usage example)\n *   This header implicitly #includes <SDL.h> and \"stb_image.h\".\n *\n *   You can #define SDL_STBIMG_DEF before including this header if you want to\n *   prepend anything to the function signatures (like \"static\", \"inline\",\n *   \"__declspec(dllexport)\", ...)\n *     Example: #define SDL_STBIMG_DEF static inline\n *\n *   By default, this deactivates stb_image's load from file functions via\n *   #define STBI_NO_STDIO, as they use stdio.h  and that adds a dependency to the\n *   CRT on windows and with SDL you're better off using SDL_RWops, incl. SDL_RWFromFile()\n *   If you wanna use stbi_load(), stbi_info(), stbi_load_from_file() etc anyway, do\n *     #define SDL_STBIMG_ALLOW_STDIO\n *   before including this header.\n *   (Note that all the STBIMG_* functions of this lib will work without it)\n *\n *   stb_image.h uses assert.h by default. You can #define STBI_ASSERT(x)\n *   before the implementation-#include of SDL_stbimage.h to avoid that.\n *   By default stb_image supports HDR images, for that it needs pow() from libm.\n *   If you don't need HDR (it can't be loaded into a SDL_Surface anyway),\n *   #define STBI_NO_LINEAR and #define STBI_NO_HDR before including this header.\n *\n * License:\n *   This software is dual-licensed to the public domain and under the following\n *   license: you are granted a perpetual, irrevocable license to copy, modify,\n *   publish, and distribute this file as you see fit.\n *   No warranty implied; use at your own risk.\n *\n * So you can do whatever you want with this code, including copying it\n * (or parts of it) into your own source.\n * No need to mention me or this \"license\" in your code or docs, even though\n * it would be appreciated, of course.\n */\n\n#if 0 // Usage Example:\n  #define SDL_STBIMAGE_IMPLEMENTATION\n  #include \"SDL_stbimage.h\"\n\n  void yourFunction(const char* imageFilePath)\n  {\n    SDL_Surface* surf = STBIMG_Load(imageFilePath);\n    if(surf == NULL) {\n      printf(\"ERROR: Couldn't load %s, reason: %s\\n\", imageFilePath, SDL_GetError());\n      exit(1);\n    }\n\n    // ... do something with surf ...\n\n    SDL_FreeSurface(surf);\n  }\n#endif // 0 (usage example)\n\n\n#ifndef SDL__STBIMAGE_H\n#define SDL__STBIMAGE_H\n\n// if you really think you need <SDL2/SDL.h> here instead.. feel free to change it,\n// but the cool kids have path/to/include/SDL2/ in their compilers include path.\n#include <SDL2/SDL.h>\n\n#ifndef SDL_STBIMG_ALLOW_STDIO\n  #define STBI_NO_STDIO // don't need STDIO, will use SDL_RWops to open files\n#endif\n#define STBI_NO_THREAD_LOCALS\n#include \"stb_image.h\"\n\n// this allows you to prepend stuff to function signatures, e.g. \"static\"\n#ifndef SDL_STBIMG_DEF\n  // by default it's empty\n  #define SDL_STBIMG_DEF\n#endif // DG_MISC_DEF\n\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n// loads the image file at the given path into a RGB(A) SDL_Surface\n// Returns NULL on error, use SDL_GetError() to get more information.\nSDL_STBIMG_DEF SDL_Surface* STBIMG_Load(const char* file);\n\n// loads the image file in the given memory buffer into a RGB(A) SDL_Surface\n// Returns NULL on error, use SDL_GetError() to get more information.\nSDL_STBIMG_DEF SDL_Surface* STBIMG_LoadFromMemory(const unsigned char* buffer, int length);\n\n// loads an image file into a RGB(A) SDL_Surface from a seekable SDL_RWops (src)\n// if you set freesrc to non-zero, SDL_RWclose(src) will be executed after reading.\n// Returns NULL on error, use SDL_GetError() to get more information.\nSDL_STBIMG_DEF SDL_Surface* STBIMG_Load_RW(SDL_RWops* src, int freesrc);\n\n\n// Creates an SDL_Surface* using the raw RGB(A) pixelData with given width/height\n// (this doesn't use stb_image and is just a simple SDL_CreateSurfaceFrom()-wrapper)\n// ! It must be byte-wise 24bit RGB (\"888\", bytesPerPixel=3) !\n// !  or byte-wise 32bit RGBA (\"8888\", bytesPerPixel=4) data !\n// If freeWithSurface is SDL_TRUE, SDL_FreeSurface() will free the pixelData\n//  you passed with SDL_free() - NOTE that you should only do that if pixelData\n//  was allocated with SDL_malloc(), SDL_calloc() or SDL_realloc()!\n// Returns NULL on error (in that case pixelData won't be freed!),\n//  use SDL_GetError() to get more information.\nSDL_STBIMG_DEF SDL_Surface* STBIMG_CreateSurface(unsigned char* pixelData, int width, int height,\n                                                 int bytesPerPixel, SDL_bool freeWithSurface);\n\n\n#if SDL_MAJOR_VERSION > 1\n// loads the image file at the given path into a RGB(A) SDL_Texture\n// Returns NULL on error, use SDL_GetError() to get more information.\nSDL_STBIMG_DEF SDL_Texture*\nSTBIMG_LoadTexture(SDL_Renderer* renderer, const char* file);\n\n// loads the image file in the given memory buffer into a RGB(A) SDL_Texture\n// Returns NULL on error, use SDL_GetError() to get more information.\nSDL_STBIMG_DEF SDL_Texture*\nSTBIMG_LoadTextureFromMemory(SDL_Renderer* renderer, const unsigned char* buffer, int length);\n\n// loads an image file into a RGB(A) SDL_Texture from a seekable SDL_RWops (src)\n// if you set freesrc to non-zero, SDL_RWclose(src) will be executed after reading.\n// Returns NULL on error, use SDL_GetError() to get more information.\nSDL_STBIMG_DEF SDL_Texture*\nSTBIMG_LoadTexture_RW(SDL_Renderer* renderer, SDL_RWops* src, int freesrc);\n\n// Creates an SDL_Texture* using the raw RGB(A) pixelData with given width/height\n// (this doesn't use stb_image and is just a simple SDL_CreateSurfaceFrom()-wrapper)\n// ! It must be byte-wise 24bit RGB (\"888\", bytesPerPixel=3) !\n// !  or byte-wise 32bit RGBA (\"8888\", bytesPerPixel=4) data !\n// Returns NULL on error, use SDL_GetError() to get more information.\nSDL_STBIMG_DEF SDL_Texture*\nSTBIMG_CreateTexture(SDL_Renderer* renderer, const unsigned char* pixelData,\n                     int width, int height, int bytesPerPixel);\n#endif // SDL_MAJOR_VERSION > 1\n\n\ntypedef struct {\n\tSDL_RWops* src;\n\tstbi_io_callbacks stb_cbs;\n\tint atEOF; // defaults to 0; 1: reached EOF or error on read, 2: error on seek\n} STBIMG_stbio_RWops;\n\n// creates stbi_io_callbacks and userdata to use stbi_*_from_callbacks() directly,\n//  especially useful to use SDL_RWops with stb_image, without using SDL_Surface\n// src must be readable and seekable!\n// Returns SDL_FALSE on error (SDL_GetError() will give you info), else SDL_TRUE\n// NOTE: If you want to use src twice (e.g. for info and load), remember to rewind\n//       it by seeking back to its initial position and resetting out->atEOF to 0\n//       inbetween the uses!\nSDL_STBIMG_DEF SDL_bool STBIMG_stbi_callback_from_RW(SDL_RWops* src, STBIMG_stbio_RWops* out);\n\n#if 0 //  Use STBIMG_stbi_callback_from_RW() like this:\n  SDL_RWops* src = ...; // wherever it's from\n  STBIMG_stbio_RWops io;\n  if(!STBIMG_stbi_callback_from_RW(src, &io)) {\n    printf(\"ERROR creating stbio callbacks: %s\\n\", SDL_GetError());\n    exit(1);\n  }\n  Sint64 origSrcPosition = SDL_RWtell(src);\n  int w, h, fmt;\n  if(!stbi_info_from_callbacks(&io.stb_cbs, &io, &w, &h, &fmt)) {\n     printf(\"stbi_info_from_callbacks() failed, reason: %s\\n\", stbi_failure_reason());\n     exit(1);\n  }\n  printf(\"image is %d x %d pixels with %d bytes per pixel\\n\", w, h, fmt);\n\n  // rewind src before using it again in stbi_load_from_callbacks()\n  if(SDL_RWseek(src, origSrcPosition, RW_SEEK_SET) < 0)\n  {\n    printf(\"ERROR: src not be seekable!\\n\");\n    exit(1);\n  }\n  io.atEOF = 0; // remember to reset atEOF, too!\n\n  unsigned char* data;\n  data = stbi_load_from_callbacks(&io.stb_cbs, &io, &w, &h, &fmt, 0);\n  if(data == NULL) {\n    printf(\"stbi_load_from_callbacks() failed, reason: %s\\n\", stbi_failure_reason());\n    exit(1);\n  }\n  // ... do something with data ...\n  stbi_image_free(data);\n#endif // 0 (STBIMG_stbi_callback_from_RW() example)\n\n\n#if SDL_MAJOR_VERSION > 1\n// loads an image file into a RGB(A) SDL_Surface from a SDL_RWops (src)\n// - without using SDL_RWseek(), for streams that don't support or are slow\n//   at seeking. It reads everything into a buffer and calls STBIMG_LoadFromMemory()\n// You should probably only use this if you *really* have performance problems\n//  because of seeking or your src doesn't support  SDL_RWseek(), but SDL_RWsize()\n// src must at least support SDL_RWread() and SDL_RWsize()\n// if you set freesrc to non-zero, SDL_RWclose(src) will be executed after reading.\n// Returns NULL on error, use SDL_GetError() to get more information.\nSDL_STBIMG_DEF SDL_Surface* STBIMG_Load_RW_noSeek(SDL_RWops* src, int freesrc);\n\n// the same for textures (you should probably not use this one, either..)\nSDL_STBIMG_DEF SDL_Texture* STBIMG_LoadTexture_RW_noSeek(SDL_Renderer* renderer, SDL_RWops* src, int freesrc);\n#endif // SDL_MAJOR_VERSION > 1\n\n#ifdef __cplusplus\n} // extern \"C\"\n#endif\n\n#endif // SDL__STBIMAGE_H\n\n\n// ############# Below: Implementation ###############\n\n\n#ifdef SDL_STBIMAGE_IMPLEMENTATION\n\n// make stb_image use SDL_malloc etc, so SDL_FreeSurface() can SDL_free()\n// the data allocated by stb_image\n#define STBI_MALLOC SDL_malloc\n#define STBI_REALLOC SDL_realloc\n#define STBI_FREE SDL_free\n#define STB_IMAGE_IMPLEMENTATION\n#ifndef SDL_STBIMG_ALLOW_STDIO\n  #define STBI_NO_STDIO // don't need STDIO, will use SDL_RWops to open files\n#endif\n#include \"stb_image.h\"\n\ntypedef struct {\n\tunsigned char* data;\n\tint w;\n\tint h;\n\tint format; // 3: RGB, 4: RGBA\n} STBIMG__image;\n\nstatic SDL_Surface* STBIMG__CreateSurfaceImpl(STBIMG__image img, int freeWithSurface)\n{\n\tSDL_Surface* surf = NULL;\n\t\n#if SDL_VERSION_ATLEAST(2, 0, 5)\n\t\n\t// SDL 2.0.5 introduced SDL_CreateRGBSurfaceWithFormatFrom() and SDL_PIXELFORMAT_RGBA32\n\t// which makes this code much simpler.\n\t\n\tUint32 format = (img.format == STBI_rgb) ? SDL_PIXELFORMAT_RGB24 : SDL_PIXELFORMAT_RGBA32;\n\t\n\tsurf = SDL_CreateRGBSurfaceWithFormatFrom((void*)img.data, img.w, img.h,\n\t                                          img.format*8, img.format*img.w, format);\n\t\n#else // older SDL2 version without SDL_CreateRGBSurfaceWithFormatFrom()\n\t\n\tUint32 rmask, gmask, bmask, amask;\n\t// ok, the following is pretty stupid.. SDL_CreateRGBSurfaceFrom() pretends to use\n\t// a void* for the data, but it's really treated as endian-specific Uint32*\n\t// and there isn't even an SDL_PIXELFORMAT_* for 32bit byte-wise RGBA\n#if SDL_BYTEORDER == SDL_BIG_ENDIAN\n\tint shift = (img.format == STBI_rgb) ? 8 : 0;\n\trmask = 0xff000000 >> shift;\n\tgmask = 0x00ff0000 >> shift;\n\tbmask = 0x0000ff00 >> shift;\n\tamask = 0x000000ff >> shift;\n#else // little endian, like x86\n\trmask = 0x000000ff;\n\tgmask = 0x0000ff00;\n\tbmask = 0x00ff0000;\n\tamask = (img.format == STBI_rgb) ? 0 : 0xff000000;\n#endif\n\n\tsurf = SDL_CreateRGBSurfaceFrom((void*)img.data, img.w, img.h,\n\t                                img.format*8, img.format*img.w,\n\t                                rmask, gmask, bmask, amask);\n#endif // SDL_VERSION_ATLEAST\n\n\tif(surf == NULL)\n\t{\n\t\t// hopefully SDL_CreateRGBSurfaceFrom() has set an sdl error\n\t\treturn NULL;\n\t}\n\n\tif(freeWithSurface)\n\t{\n\t\t// SDL_Surface::flags is documented to be read-only.. but if the pixeldata\n\t\t// has been allocated with SDL_malloc()/SDL_calloc()/SDL_realloc() this\n\t\t// should work (and it currently does) + @icculus said it's reasonably safe:\n\t\t//  https://twitter.com/icculus/status/667036586610139137 :-)\n\t\t// clear the SDL_PREALLOC flag, so SDL_FreeSurface() free()s the data passed from img.data\n\t\tsurf->flags &= ~SDL_PREALLOC;\n\t}\n\n\treturn surf;\n}\n\n\nSDL_STBIMG_DEF SDL_Surface* STBIMG_LoadFromMemory(const unsigned char* buffer, int length)\n{\n\tSTBIMG__image img = {0};\n\tint bppToUse = 0;\n\tint inforet = 0;\n\tSDL_Surface* ret = NULL;\n\n\tif(buffer == NULL)\n\t{\n\t\tSDL_SetError(\"STBIMG_LoadFromMemory(): passed buffer was NULL!\");\n\t\treturn NULL;\n\t}\n\tif(length <= 0)\n\t{\n\t\tSDL_SetError(\"STBIMG_LoadFromMemory(): passed invalid length: %d!\", length);\n\t\treturn NULL;\n\t}\n\n\tinforet = stbi_info_from_memory(buffer, length, &img.w, &img.h, &img.format);\n\tif(!inforet)\n\t{\n\t\tSDL_SetError(\"STBIMG_LoadFromMemory(): Couldn't get image info: %s!\\n\", stbi_failure_reason());\n\t\treturn NULL;\n\t}\n\n\t// no alpha => use RGB, else use RGBA\n\tbppToUse = (img.format == STBI_grey || img.format == STBI_rgb) ? STBI_rgb : STBI_rgb_alpha;\n\n\timg.data = stbi_load_from_memory(buffer, length, &img.w, &img.h, &img.format, bppToUse);\n\tif(img.data == NULL)\n\t{\n\t\tSDL_SetError(\"STBIMG_LoadFromMemory(): Couldn't load image: %s!\\n\", stbi_failure_reason());\n\t\treturn NULL;\n\t}\n\timg.format = bppToUse;\n\n\tret = STBIMG__CreateSurfaceImpl(img, 1);\n\n\tif(ret == NULL)\n\t{\n\t\t// no need to log an error here, it was an SDL error which should still be available through SDL_GetError()\n\t\tSDL_free(img.data);\n\t\treturn NULL;\n\t}\n\n\treturn ret;\n}\n\n\n// fill 'data' with 'size' bytes.  return number of bytes actually read\nstatic int STBIMG__io_read(void* user, char* data, int size)\n{\n\tSTBIMG_stbio_RWops* io = (STBIMG_stbio_RWops*)user;\n\n\tint ret = SDL_RWread(io->src, data, sizeof(char), size);\n\tif(ret == 0)\n\t{\n\t\t// we're at EOF or some error happend\n\t\tio->atEOF = 1;\n\t}\n\treturn (int)ret*sizeof(char);\n}\n\n// skip the next 'n' bytes, or 'unget' the last -n bytes if negative\nstatic void STBIMG__io_skip(void* user, int n)\n{\n\tSTBIMG_stbio_RWops* io = (STBIMG_stbio_RWops*)user;\n\n\tif(SDL_RWseek(io->src, n, RW_SEEK_CUR) == -1)\n\t{\n\t\t// an error happened during seeking, hopefully setting EOF will make stb_image abort\n\t\tio->atEOF = 2; // set this to 2 for \"aborting because seeking failed\" (stb_image only cares about != 0)\n\t}\n}\n\n// returns nonzero if we are at end of file/data\nstatic int STBIMG__io_eof(void* user)\n{\n\tSTBIMG_stbio_RWops* io = (STBIMG_stbio_RWops*)user;\n\treturn io->atEOF;\n}\n\n\nSDL_STBIMG_DEF SDL_bool STBIMG_stbi_callback_from_RW(SDL_RWops* src, STBIMG_stbio_RWops* out)\n{\n\tif(out == NULL)\n\t{\n\t\tSDL_SetError(\"STBIMG_stbi_callback_from_RW(): out must not be NULL!\");\n\t\treturn SDL_FALSE;\n\t}\n\n\t// make sure out is at least initialized to something deterministic\n\tmemset(out, 0, sizeof(*out));\n\n\tif(src == NULL)\n\t{\n\t\tSDL_SetError(\"STBIMG_stbi_callback_from_RW(): src must not be NULL!\");\n\t\treturn SDL_FALSE;\n\t}\n\n\tout->src = src;\n\tout->atEOF = 0;\n\tout->stb_cbs.read = STBIMG__io_read;\n\tout->stb_cbs.skip = STBIMG__io_skip;\n\tout->stb_cbs.eof  = STBIMG__io_eof;\n\n\treturn SDL_TRUE;\n}\n\n\nSDL_STBIMG_DEF SDL_Surface* STBIMG_Load_RW(SDL_RWops* src, int freesrc)\n{\n\tSTBIMG__image img = {0};\n\tint bppToUse = 0;\n\tint inforet = 0;\n\tSDL_Surface* ret = NULL;\n\tSint64 srcOffset = 0;\n\n\tSTBIMG_stbio_RWops cbData;\n\n\tif(src == NULL)\n\t{\n\t\tSDL_SetError(\"STBIMG_Load_RW(): src was NULL!\");\n\t\treturn NULL;\n\t}\n\n\tsrcOffset = SDL_RWtell(src);\n\tif(srcOffset < 0)\n\t{\n\t\tSDL_SetError(\"STBIMG_Load_RW(): src must be seekable, maybe use STBIMG_Load_RW_noSeek() instead!\");\n\t\t// TODO: or do that automatically? but I think the user should be aware of what they're doing\n\t\tgoto end;\n\t}\n\n\tif(!STBIMG_stbi_callback_from_RW(src, &cbData))\n\t{\n\t\tgoto end;\n\t}\n\n\tinforet = stbi_info_from_callbacks(&cbData.stb_cbs, &cbData, &img.w, &img.h, &img.format);\n\tif(!inforet)\n\t{\n\t\tif(cbData.atEOF == 2) SDL_SetError(\"STBIMG_Load_RW(): src must be seekable!\");\n\t\telse SDL_SetError(\"STBIMG_Load_RW(): Couldn't get image info: %s!\\n\", stbi_failure_reason());\n\t\tgoto end;\n\t}\n\n\t// rewind src so stbi_load_from_callbacks() will start reading from the beginning again\n\tif(SDL_RWseek(src, srcOffset, RW_SEEK_SET) < 0)\n\t{\n\t\tSDL_SetError(\"STBIMG_Load_RW(): src must be seekable!\");\n\t\tgoto end;\n\t}\n\n\tcbData.atEOF = 0; // we've rewinded (rewound?)\n\n\t// no alpha => use RGB, else use RGBA\n\tbppToUse = (img.format == STBI_grey || img.format == STBI_rgb) ? STBI_rgb : STBI_rgb_alpha;\n\n\timg.data = stbi_load_from_callbacks(&cbData.stb_cbs, &cbData, &img.w, &img.h, &img.format, bppToUse);\n\tif(img.data == NULL)\n\t{\n\t\tSDL_SetError(\"STBIMG_Load_RW(): Couldn't load image: %s!\\n\", stbi_failure_reason());\n\t\tgoto end;\n\t}\n\timg.format = bppToUse;\n\n\tret = STBIMG__CreateSurfaceImpl(img, 1);\n\n\tif(ret == NULL)\n\t{\n\t\t// no need to log an error here, it was an SDL error which should still be available through SDL_GetError()\n\t\tSDL_free(img.data);\n\t\timg.data = NULL;\n\t\tgoto  end;\n\t}\n\nend:\n\tif(freesrc)\n\t{\n\t\tSDL_RWclose(src);\n\t}\n\telse if(img.data == NULL)\n\t{\n\t\t// if data is still NULL, there was an error and we should probably\n\t\t// seek src back to where it was when this function was called\n\t\tSDL_RWseek(src, srcOffset, RW_SEEK_SET);\n\t}\n\n\treturn ret;\n}\n\n#if SDL_MAJOR_VERSION > 1\nSDL_STBIMG_DEF SDL_Surface* STBIMG_Load_RW_noSeek(SDL_RWops* src, int freesrc)\n{\n\tunsigned char* buf = NULL;\n\tSint64 fileSize = 0;\n\tSDL_Surface* ret = NULL;\n\n\tif(src == NULL)\n\t{\n\t\tSDL_SetError(\"STBIMG_Load_RW_noSeek(): src was NULL!\");\n\t\treturn NULL;\n\t}\n\n\tfileSize = SDL_RWsize(src);\n\tif(fileSize < 0)\n\t{\n\t\tgoto end; // SDL should have set an error already\n\t}\n\telse if(fileSize == 0)\n\t{\n\t\tSDL_SetError(\"STBIMG_Load_RW_noSeek(): SDL_RWsize(src) returned 0 => empty file/stream?!\");\n\t\tgoto end;\n\t}\n\telse if(fileSize > 0x7FFFFFFF)\n\t{\n\t\t// stb_image.h uses ints for all sizes, so we can't support more\n\t\t// (but >2GB images are insane anyway)\n\t\tSDL_SetError(\"STBIMG_Load_RW_noSeek(): SDL_RWsize(src) too big (> 2GB)!\");\n\t\tgoto end;\n\t}\n\n\tbuf = (unsigned char*)SDL_malloc(fileSize);\n\tif(buf == NULL)\n\t{\n\t\tSDL_SetError(\"STBIMG_Load_RW_noSeek(): Couldn't allocate buffer to read src into!\");\n\t\tgoto end;\n\t}\n\n\tif(SDL_RWread(src, buf, fileSize, 1) > 0)\n\t{\n\t\t// if that fails, STBIMG_LoadFromMemory() has set an SDL error\n\t\t// and ret is NULL, so nothing special to do for us\n\t\tret = STBIMG_LoadFromMemory(buf, fileSize);\n\t}\n\nend:\n\tif(freesrc)\n\t{\n\t\tSDL_RWclose(src);\n\t}\n\n\tSDL_free(buf);\n\treturn ret;\n}\n#endif // SDL_MAJOR_VERSION > 1\n\n\nSDL_STBIMG_DEF SDL_Surface* STBIMG_Load(const char* file)\n{\n\tSDL_RWops* src = SDL_RWFromFile(file, \"rb\");\n\tif(src == NULL) return NULL;\n\treturn STBIMG_Load_RW(src, 1);\n}\n\n\nSDL_STBIMG_DEF SDL_Surface* STBIMG_CreateSurface(unsigned char* pixelData, int width, int height, int bytesPerPixel, SDL_bool freeWithSurface)\n{\n\tSTBIMG__image img;\n\n\tif(pixelData == NULL)\n\t{\n\t\tSDL_SetError(\"STBIMG_CreateSurface(): passed pixelData was NULL!\");\n\t\treturn NULL;\n\t}\n\tif(bytesPerPixel != 3 && bytesPerPixel != 4)\n\t{\n\t\tSDL_SetError(\"STBIMG_CreateSurface(): passed bytesPerPixel = %d, only 3 (24bit RGB) and 4 (32bit RGBA) are allowed!\", bytesPerPixel);\n\t\treturn NULL;\n\t}\n\tif(width <= 0 || height <= 0)\n\t{\n\t\tSDL_SetError(\"STBIMG_CreateSurface(): width and height must be > 0!\");\n\t\treturn NULL;\n\t}\n\n\timg.data = pixelData;\n\timg.w = width;\n\timg.h = height;\n\timg.format = bytesPerPixel;\n\n\treturn STBIMG__CreateSurfaceImpl(img, freeWithSurface);\n}\n\n#if SDL_MAJOR_VERSION > 1\nstatic SDL_Texture* STBIMG__SurfToTex(SDL_Renderer* renderer, SDL_Surface* surf)\n{\n\tSDL_Texture* ret = NULL;\n\tif(surf != NULL)\n\t{\n\t\tret = SDL_CreateTextureFromSurface(renderer, surf);\n\t\tSDL_FreeSurface(surf); // not needed anymore, it's copied into tex\n\t}\n\t// if surf is NULL, whatever tried to create it should have called SDL_SetError(),\n\t// if SDL_CreateTextureFromSurface() returned NULL it should have set an error\n\t// so whenever this returns NULL, the user should be able to get a useful\n\t// error-message with SDL_GetError().\n\treturn ret;\n}\n\nSDL_STBIMG_DEF SDL_Texture*\nSTBIMG_LoadTexture(SDL_Renderer* renderer, const char* file)\n{\n\treturn STBIMG__SurfToTex(renderer, STBIMG_Load(file));\n}\n\nSDL_STBIMG_DEF SDL_Texture*\nSTBIMG_LoadTextureFromMemory(SDL_Renderer *renderer, const unsigned char* buffer, int length)\n{\n\treturn STBIMG__SurfToTex(renderer, STBIMG_LoadFromMemory(buffer, length));\n}\n\nSDL_STBIMG_DEF SDL_Texture*\nSTBIMG_LoadTexture_RW(SDL_Renderer* renderer, SDL_RWops* src, int freesrc)\n{\n\treturn STBIMG__SurfToTex(renderer, STBIMG_Load_RW(src, freesrc));\n}\n\nSDL_STBIMG_DEF SDL_Texture*\nSTBIMG_CreateTexture(SDL_Renderer* renderer, const unsigned char* pixelData,\n                     int width, int height, int bytesPerPixel)\n{\n\tSDL_Surface* surf = STBIMG_CreateSurface((unsigned char*)pixelData, width, height, bytesPerPixel, SDL_FALSE);\n\treturn STBIMG__SurfToTex(renderer, surf);\n}\n\nSDL_STBIMG_DEF SDL_Texture*\nSTBIMG_LoadTexture_RW_noSeek(SDL_Renderer* renderer, SDL_RWops* src, int freesrc)\n{\n\treturn STBIMG__SurfToTex(renderer, STBIMG_Load_RW_noSeek(src, freesrc));\n}\n#endif // SDL_MAJOR_VERSION > 1\n\n#endif // SDL_STBIMAGE_IMPLEMENTATION\n"
  },
  {
    "path": "include/SDL_ttf.h",
    "content": "/*\n  SDL_ttf:  A companion library to SDL for working with TrueType (tm) fonts\n  Copyright (C) 2001-2013 Sam Lantinga <slouken@libsdl.org>\n\n  This software is provided 'as-is', without any express or implied\n  warranty.  In no event will the authors be held liable for any damages\n  arising from the use of this software.\n\n  Permission is granted to anyone to use this software for any purpose,\n  including commercial applications, and to alter it and redistribute it\n  freely, subject to the following restrictions:\n\n  1. The origin of this software must not be misrepresented; you must not\n     claim that you wrote the original software. If you use this software\n     in a product, an acknowledgment in the product documentation would be\n     appreciated but is not required.\n  2. Altered source versions must be plainly marked as such, and must not be\n     misrepresented as being the original software.\n  3. This notice may not be removed or altered from any source distribution.\n*/\n\n/* This library is a wrapper around the excellent FreeType 2.0 library,\n   available at:\n    http://www.freetype.org/\n*/\n\n#ifndef _SDL_TTF_H\n#define _SDL_TTF_H\n\n// #include \"SDL.h\"\n#include \"begin_code.h\"\n\n/* Set up for C function definitions, even when using C++ */\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n/* Printable format: \"%d.%d.%d\", MAJOR, MINOR, PATCHLEVEL\n*/\n#define SDL_TTF_MAJOR_VERSION   2\n#define SDL_TTF_MINOR_VERSION   0\n#define SDL_TTF_PATCHLEVEL      12\n\n/* This macro can be used to fill a version structure with the compile-time\n * version of the SDL_ttf library.\n */\n#define SDL_TTF_VERSION(X)                          \\\n{                                                   \\\n    (X)->major = SDL_TTF_MAJOR_VERSION;             \\\n    (X)->minor = SDL_TTF_MINOR_VERSION;             \\\n    (X)->patch = SDL_TTF_PATCHLEVEL;                \\\n}\n\n/* Backwards compatibility */\n#define TTF_MAJOR_VERSION   SDL_TTF_MAJOR_VERSION\n#define TTF_MINOR_VERSION   SDL_TTF_MINOR_VERSION\n#define TTF_PATCHLEVEL      SDL_TTF_PATCHLEVEL\n#define TTF_VERSION(X)      SDL_TTF_VERSION(X)\n\n/* This function gets the version of the dynamically linked SDL_ttf library.\n   it should NOT be used to fill a version structure, instead you should\n   use the SDL_TTF_VERSION() macro.\n */\nextern DECLSPEC const SDL_version * SDLCALL TTF_Linked_Version(void);\n\n/* ZERO WIDTH NO-BREAKSPACE (Unicode byte order mark) */\n#define UNICODE_BOM_NATIVE  0xFEFF\n#define UNICODE_BOM_SWAPPED 0xFFFE\n\n/* This function tells the library whether UNICODE text is generally\n   byteswapped.  A UNICODE BOM character in a string will override\n   this setting for the remainder of that string.\n*/\nextern DECLSPEC void SDLCALL TTF_ByteSwappedUNICODE(int swapped);\n\n/* The internal structure containing font information */\ntypedef struct _TTF_Font TTF_Font;\n\n/* Initialize the TTF engine - returns 0 if successful, -1 on error */\nextern DECLSPEC int SDLCALL TTF_Init(void);\n\n/* Open a font file and create a font of the specified point size.\n * Some .fon fonts will have several sizes embedded in the file, so the\n * point size becomes the index of choosing which size.  If the value\n * is too high, the last indexed size will be the default. */\nextern DECLSPEC TTF_Font * SDLCALL TTF_OpenFont(const char *file, int ptsize);\nextern DECLSPEC TTF_Font * SDLCALL TTF_OpenFontIndex(const char *file, int ptsize, long index);\nextern DECLSPEC TTF_Font * SDLCALL TTF_OpenFontRW(SDL_RWops *src, int freesrc, int ptsize);\nextern DECLSPEC TTF_Font * SDLCALL TTF_OpenFontIndexRW(SDL_RWops *src, int freesrc, int ptsize, long index);\n\n/* Set and retrieve the font style */\n#define TTF_STYLE_NORMAL        0x00\n#define TTF_STYLE_BOLD          0x01\n#define TTF_STYLE_ITALIC        0x02\n#define TTF_STYLE_UNDERLINE     0x04\n#define TTF_STYLE_STRIKETHROUGH 0x08\nextern DECLSPEC int SDLCALL TTF_GetFontStyle(const TTF_Font *font);\nextern DECLSPEC void SDLCALL TTF_SetFontStyle(TTF_Font *font, int style);\nextern DECLSPEC int SDLCALL TTF_GetFontOutline(const TTF_Font *font);\nextern DECLSPEC void SDLCALL TTF_SetFontOutline(TTF_Font *font, int outline);\n\n/* Set and retrieve FreeType hinter settings */\n#define TTF_HINTING_NORMAL    0\n#define TTF_HINTING_LIGHT     1\n#define TTF_HINTING_MONO      2\n#define TTF_HINTING_NONE      3\nextern DECLSPEC int SDLCALL TTF_GetFontHinting(const TTF_Font *font);\nextern DECLSPEC void SDLCALL TTF_SetFontHinting(TTF_Font *font, int hinting);\n\n/* Get the total height of the font - usually equal to point size */\nextern DECLSPEC int SDLCALL TTF_FontHeight(const TTF_Font *font);\n\n/* Get the offset from the baseline to the top of the font\n   This is a positive value, relative to the baseline.\n */\nextern DECLSPEC int SDLCALL TTF_FontAscent(const TTF_Font *font);\n\n/* Get the offset from the baseline to the bottom of the font\n   This is a negative value, relative to the baseline.\n */\nextern DECLSPEC int SDLCALL TTF_FontDescent(const TTF_Font *font);\n\n/* Get the recommended spacing between lines of text for this font */\nextern DECLSPEC int SDLCALL TTF_FontLineSkip(const TTF_Font *font);\n\n/* Get/Set whether or not kerning is allowed for this font */\nextern DECLSPEC int SDLCALL TTF_GetFontKerning(const TTF_Font *font);\nextern DECLSPEC void SDLCALL TTF_SetFontKerning(TTF_Font *font, int allowed);\n\n/* Get the number of faces of the font */\nextern DECLSPEC long SDLCALL TTF_FontFaces(const TTF_Font *font);\n\n/* Get the font face attributes, if any */\nextern DECLSPEC int SDLCALL TTF_FontFaceIsFixedWidth(const TTF_Font *font);\nextern DECLSPEC char * SDLCALL TTF_FontFaceFamilyName(const TTF_Font *font);\nextern DECLSPEC char * SDLCALL TTF_FontFaceStyleName(const TTF_Font *font);\n\n/* Check wether a glyph is provided by the font or not */\nextern DECLSPEC int SDLCALL TTF_GlyphIsProvided(const TTF_Font *font, Uint16 ch);\n\n/* Get the metrics (dimensions) of a glyph\n   To understand what these metrics mean, here is a useful link:\n    http://freetype.sourceforge.net/freetype2/docs/tutorial/step2.html\n */\nextern DECLSPEC int SDLCALL TTF_GlyphMetrics(TTF_Font *font, Uint16 ch,\n                     int *minx, int *maxx,\n                                     int *miny, int *maxy, int *advance);\n\n/* Get the dimensions of a rendered string of text */\nextern DECLSPEC int SDLCALL TTF_SizeText(TTF_Font *font, const char *text, int *w, int *h);\nextern DECLSPEC int SDLCALL TTF_SizeUTF8(TTF_Font *font, const char *text, int *w, int *h);\nextern DECLSPEC int SDLCALL TTF_SizeUNICODE(TTF_Font *font, const Uint16 *text, int *w, int *h);\n\n/* Create an 8-bit palettized surface and render the given text at\n   fast quality with the given font and color.  The 0 pixel is the\n   colorkey, giving a transparent background, and the 1 pixel is set\n   to the text color.\n   This function returns the new surface, or NULL if there was an error.\n*/\nextern DECLSPEC SDL_Surface * SDLCALL TTF_RenderText_Solid(TTF_Font *font,\n                const char *text, SDL_Color fg);\nextern DECLSPEC SDL_Surface * SDLCALL TTF_RenderUTF8_Solid(TTF_Font *font,\n                const char *text, SDL_Color fg);\nextern DECLSPEC SDL_Surface * SDLCALL TTF_RenderUNICODE_Solid(TTF_Font *font,\n                const Uint16 *text, SDL_Color fg);\n\n/* Create an 8-bit palettized surface and render the given glyph at\n   fast quality with the given font and color.  The 0 pixel is the\n   colorkey, giving a transparent background, and the 1 pixel is set\n   to the text color.  The glyph is rendered without any padding or\n   centering in the X direction, and aligned normally in the Y direction.\n   This function returns the new surface, or NULL if there was an error.\n*/\nextern DECLSPEC SDL_Surface * SDLCALL TTF_RenderGlyph_Solid(TTF_Font *font,\n                    Uint16 ch, SDL_Color fg);\n\n/* Create an 8-bit palettized surface and render the given text at\n   high quality with the given font and colors.  The 0 pixel is background,\n   while other pixels have varying degrees of the foreground color.\n   This function returns the new surface, or NULL if there was an error.\n*/\nextern DECLSPEC SDL_Surface * SDLCALL TTF_RenderText_Shaded(TTF_Font *font,\n                const char *text, SDL_Color fg, SDL_Color bg);\nextern DECLSPEC SDL_Surface * SDLCALL TTF_RenderUTF8_Shaded(TTF_Font *font,\n                const char *text, SDL_Color fg, SDL_Color bg);\nextern DECLSPEC SDL_Surface * SDLCALL TTF_RenderUNICODE_Shaded(TTF_Font *font,\n                const Uint16 *text, SDL_Color fg, SDL_Color bg);\n\n/* Create an 8-bit palettized surface and render the given glyph at\n   high quality with the given font and colors.  The 0 pixel is background,\n   while other pixels have varying degrees of the foreground color.\n   The glyph is rendered without any padding or centering in the X\n   direction, and aligned normally in the Y direction.\n   This function returns the new surface, or NULL if there was an error.\n*/\nextern DECLSPEC SDL_Surface * SDLCALL TTF_RenderGlyph_Shaded(TTF_Font *font,\n                Uint16 ch, SDL_Color fg, SDL_Color bg);\n\n/* Create a 32-bit ARGB surface and render the given text at high quality,\n   using alpha blending to dither the font with the given color.\n   This function returns the new surface, or NULL if there was an error.\n*/\nextern DECLSPEC SDL_Surface * SDLCALL TTF_RenderText_Blended(TTF_Font *font,\n                const char *text, SDL_Color fg);\nextern DECLSPEC SDL_Surface * SDLCALL TTF_RenderUTF8_Blended(TTF_Font *font,\n                const char *text, SDL_Color fg);\nextern DECLSPEC SDL_Surface * SDLCALL TTF_RenderUNICODE_Blended(TTF_Font *font,\n                const Uint16 *text, SDL_Color fg);\n\n\n/* Create a 32-bit ARGB surface and render the given text at high quality,\n   using alpha blending to dither the font with the given color.\n   Text is wrapped to multiple lines on line endings and on word boundaries\n   if it extends beyond wrapLength in pixels.\n   This function returns the new surface, or NULL if there was an error.\n*/\nextern DECLSPEC SDL_Surface * SDLCALL TTF_RenderText_Blended_Wrapped(TTF_Font *font,\n                const char *text, SDL_Color fg, Uint32 wrapLength);\nextern DECLSPEC SDL_Surface * SDLCALL TTF_RenderUTF8_Blended_Wrapped(TTF_Font *font,\n                const char *text, SDL_Color fg, Uint32 wrapLength);\nextern DECLSPEC SDL_Surface * SDLCALL TTF_RenderUNICODE_Blended_Wrapped(TTF_Font *font,\n                const Uint16 *text, SDL_Color fg, Uint32 wrapLength);\n\n/* Create a 32-bit ARGB surface and render the given glyph at high quality,\n   using alpha blending to dither the font with the given color.\n   The glyph is rendered without any padding or centering in the X\n   direction, and aligned normally in the Y direction.\n   This function returns the new surface, or NULL if there was an error.\n*/\nextern DECLSPEC SDL_Surface * SDLCALL TTF_RenderGlyph_Blended(TTF_Font *font,\n                        Uint16 ch, SDL_Color fg);\n\n/* For compatibility with previous versions, here are the old functions */\n#define TTF_RenderText(font, text, fg, bg)  \\\n    TTF_RenderText_Shaded(font, text, fg, bg)\n#define TTF_RenderUTF8(font, text, fg, bg)  \\\n    TTF_RenderUTF8_Shaded(font, text, fg, bg)\n#define TTF_RenderUNICODE(font, text, fg, bg)   \\\n    TTF_RenderUNICODE_Shaded(font, text, fg, bg)\n\n/* Close an opened font file */\nextern DECLSPEC void SDLCALL TTF_CloseFont(TTF_Font *font);\n\n/* De-initialize the TTF engine */\nextern DECLSPEC void SDLCALL TTF_Quit(void);\n\n/* Check if the TTF engine is initialized */\nextern DECLSPEC int SDLCALL TTF_WasInit(void);\n\n/* Get the kerning size of two glyphs */\nextern DECLSPEC int TTF_GetFontKerningSize(TTF_Font *font, int prev_index, int index);\n\n/* We'll use SDL for reporting errors */\n#define TTF_SetError    SDL_SetError\n#define TTF_GetError    SDL_GetError\n\n/* Ends C function definitions when using C++ */\n#ifdef __cplusplus\n}\n#endif\n#include \"close_code.h\"\n\n#endif /* _SDL_TTF_H */\n"
  },
  {
    "path": "include/bbccon.h",
    "content": "/******************************************************************\\\n*       BBC BASIC Minimal Console Version                          *\n*       Copyright (c) R. T. Russell, 2000-2025                     *\n*                                                                  *\n*       bbccon.h constant definitions                              *\n*       Version v0.50, 22-Sep-2025                                 *\n\\******************************************************************/\n\n// System constants :\n\n#define YEAR    \"2025\"          // Copyright year\n#define VERSION \"v0.50\"         // Version string\n#ifdef PICO\n#define ACCSLEN 1024  // Must be the same in bbcsdl.h and bbccon.h\n#define DEFAULT_RAM PAGE_OFFSET+0x20000 // Initial amount of RAM to allocate\n#else\n#define ACCSLEN 65536 // Must be the same in bbcsdl.h and bbccon.h\n#define DEFAULT_RAM PAGE_OFFSET+0x2000000 // Initial amount of RAM to allocate\n#endif\n\n#if PICO_SOUND == 3\n#define PAGE_OFFSET ACCSLEN + 0x1C00     // Offset of PAGE from memory base\n#else\n#define PAGE_OFFSET ACCSLEN + 0x1300     // Offset of PAGE from memory base\n#endif\n\n#define MINIMUM_RAM PAGE_OFFSET+0x20000  // Minimum amount of RAM to allocate\n#if UINTPTR_MAX == UINT32_MAX\n#define MAXIMUM_RAM 0x10000000           // Maximum amount of RAM to allocate\n#else\n#define MAXIMUM_RAM 0x100000000LL        // Maximum amount of RAM to allocate\n#endif\n\n#if (PAGE_OFFSET < 0x10000) && (defined(__x86_64__) || defined(__aarch64__))\n#error \"PAGE must be at least 64K above memory base on 64-bit platforms\"\n#endif\n\n#define MAX_PORTS\t4\t// Maximum number of port channels\n#define MAX_FILES\t8\t// Maximum number of file channels\n#define MAX_LINE_LEN   2304     // At least 252*RECTANGLE + 4\n#define\tAUDIOLEN\t441 * 4\t// Length of audio block in bytes\n#define\tSOUNDQE         4       // Number of bytes per sound entry\n#define SOUNDQL         5*SOUNDQE // Number of bytes per channel\n#define MAX_TEMPO\t10\t// Maximum (slowest) *TEMPO setting\n\n// Bit names:\n\n#define\tBIT0\t\t0x01\n#define\tBIT1\t\t0x02\n#define\tBIT2\t\t0x04\n#define\tBIT3\t\t0x08\n#define\tBIT4\t\t0x10\n#define\tBIT5\t\t0x20\n#define\tBIT6\t\t0x40\n#define\tBIT7\t\t0x80\n\n// Bits in [vflags]:\n\n#define\tIOFLAG\t\tBIT0\t// Insert/overtype\n#define\tEGAFLG\t\tBIT1\t// EGA-compatible modes (*EGA [ON])\n#define\tCGAFLG\t\tBIT2\t// CGA-compatible modes (*EGA OFF)\n#define\tPTFLAG\t\tBIT3\t// VDU 2 active\n#define\tHRGFLG\t\tBIT4\t// VDU 5 active\n#define\tVDUDIS\t\tBIT5\t// VDU 21 active\n#define\tUFONT\t\tBIT6\t// User font selected\n#define\tUTF8\t\tBIT7\t// UTF-8 mode selected\n\n// Bits in _flags byte:\n\n#define ESCFLG          0x80\n#define ESCDIS          0x40\n#define ALERT           0x20\n#define FLASH           0x10\n#define PHASE           0x08    \n#define PAUSE           0x04\n#define SSTEP           0x02\n#define KILL            0x01\n\n// BASIC tokens:\n\n#define TOK_ELSE       -117\n#define TOK_THEN       -116\n#define TOK_LINENO     -115\n#define TOK_FN          -92\n#define TOK_WHILE       -57\n#define TOK_CASE        -56\n#define TOK_WHEN        -55\n#define TOK_ENDCASE     -53\n#define TOK_OTHERWISE   -52\n#define TOK_ENDIF       -51\n#define TOK_ENDWHILE    -50\n#define TOK_CALL        -42\n#define TOK_DATA        -36\n#define TOK_DEF         -35\n#define TOK_FOR         -29\n#define TOK_GOSUB       -28\n#define TOK_GOTO        -27\n#define TOK_IF          -25\n#define TOK_LOCAL       -22\n#define TOK_NEXT        -19\n#define TOK_ON          -18\n#define TOK_PROC        -14\n#define TOK_READ        -13\n#define TOK_REM         -12\n#define TOK_REPEAT      -11\n#define TOK_RUN          -7\n#define TOK_UNTIL        -3\n#define TOK_EXIT         16\n\n#define TOKLO          -113   // first token with left and right forms\n#define TOKHI          -109   // last token with left and right forms\n#define OFFSIT           64   // offset from 'right' to 'left' form\n\n// Special 32-bit 'pointer' type for BASIC's heap:\ntypedef unsigned int heapptr ;\n\n// Structures:\ntypedef struct tagPARM\n{\n\tsize_t i[16] ;\n\tdouble f[8] ;\n} PARM, *LPPARM ;\n\ntypedef struct tagFCB\n{\n\tunsigned char p ; // pointer\n\tunsigned char o ; // offset  (0-256)\n\tunsigned char w ; // written (0-256)\n\tsigned char f ;   // bit0: offset<>0, bit7: written<>0\n} FCB, *LPFCB ;\n\ntypedef struct tagRND\n{\n\tunsigned int l ;\n\tunsigned char h ;\n} RND, *LPRND ;\n\nextern unsigned char colmsk ; \t// Mask for maximum number of colours\nextern unsigned char vflags ;\t// VDU drivers flags byte\nextern signed char scroln ; \t// Scroll counter in paged mode\nextern char modeno ;\t\t// MODE number\nextern unsigned char cmcflg ;\nextern char sclflg ;\nextern char reflag, sysflg ;\nextern unsigned char bbcfont[] ;\nextern unsigned short ttxtfont[] ;\n\nextern char **keystr ;\t// Pointers to user *KEY strings\nextern unsigned char flags ;\t// BASIC's Boolean flags byte\nextern unsigned char tempo ;\nextern heapptr timtrp, clotrp, siztrp, systrp, moutrp ;\nextern heapptr curlin ;\t\t// Pointer to current line\nextern heapptr breakpt ;\t// Pointer to breakpoint start\nextern heapptr breakhi ;\t// Pointer to breakpoint end\n\n//\nextern int datend[] ;\t\t// End of initialised variables\nextern int stavar[] ;\t\t// Static integer variables\nextern FILE *exchan ;\t\t// EXEC channel\nextern FILE *spchan ;\t\t// SPOOL channel\nextern char *accs ;\t\t// String accumulator\nextern char *buff ;\t\t// Temporary string buffer\nextern char* path ;\t\t// File path buffer\nextern signed char *envels ;\t// Envelope storage (16 x 16)\nextern short* waves ;\nextern int hwo ;\nextern void* filbuf[] ;\nextern FCB fcbtab[MAX_FILES] ;  // Table of FCBs\nextern unsigned char *keyptr ;\t// Pointer to *KEY string\nextern char* usrchr ;\t\t// User-defined characters (indirect)\nextern char* keybdq ;\t\t// Keyboard queue (indirect) \nextern int* eventq ;\t\t// Event queue (indirect)\nextern unsigned char vduq[] ;\t// VDU queue (different from asm version)\nextern unsigned char queue ;\t// VDU queue status\nextern unsigned char kbdqr ;\t// Keyboard queue read pointer\nextern unsigned char kbdqw ;\t// Keyboard queue write pointer\nextern unsigned char sndqr[4] ;\t// Sound queue read pointers\nextern unsigned char sndqw[4] ;\t// Sound queue write pointers\nextern signed char eenvel[4] ;\t// Sound envelope numbers\nextern unsigned char escale[4] ;// Envelope scalers\nextern unsigned char epsect[4] ;// Envelope pitch section\nextern unsigned char easect[4] ;// Envelope amplitude section\nextern unsigned char epitch[4] ;// Envelope pitch (frequency)\nextern unsigned char elevel[4] ;// Envelope level (amplitude)\nextern unsigned char ecount[4] ;// Envelope count\nextern unsigned char soundq[4*5*SOUNDQE] ;\nextern unsigned int sacc[4] ;\t// Sound DDS accumulators\nextern unsigned char voices[4] ;// Voice (waveform) for each channel\nextern short smix[8] ;\t\t// Stereo mix for each channel\nextern unsigned char evtqr ;\t// Event queue read pointer\nextern unsigned char evtqw ;\t// Event queue write pointer\nextern unsigned char flags ;\t// Interpreter flags byte\nextern int timoff ;\t\t// TIME offset\nextern unsigned int lastick ;\t// To test for TIME wrapping\nextern RND prand ;\t\t// Pseudo-random number\nextern int iMsg ;\t\t// Event message number\nextern int wParam ;\t\t// Event wParam value\nextern int lParam ;\t\t// Event lParam value\nextern unsigned char tempo ;\t// SOUND tempo\nextern unsigned char farray ;\t// @hfile%() number of dimensions\nextern unsigned int fasize ;\t// @hfile%() number of elements\nextern unsigned char keyexp ;\t// *KEY expansion counter\nextern unsigned char optval ;\t// I/O redirection\nextern unsigned char liston ;\t// *FLOAT/*HEX/*LOWERCASE/OPT\nextern unsigned int vcount ;    // Character count since newline\n\n// Declared in bbccon.c:\nextern void *userRAM ;\t\t// Base of user memory\nextern void *progRAM ;\t\t// Default LOMEM\nextern void *userTOP ;\t\t// Default HIMEM\nextern const char szVersion[] ;\t// Initial announcement\nextern const char szNotice[] ;\t// Copyright string\nextern int bChanged ;\t\t// Display refresh required\nextern unsigned int platform ;\t// OS platform\nextern unsigned int palette[256] ;\n\n"
  },
  {
    "path": "include/bbcsdl.h",
    "content": "/******************************************************************\\\n*       BBC BASIC for SDL 2.0 (64-bit)                             *\n*       Copyright (c) R. T. Russell, 2000-2022                     *\n*                                                                  *\n*       BBCSDL.H constant definitions                              *\n*       Version 1.29a 03-Apr-2022                                  *\n\\******************************************************************/\n\n// System constants :\n\n#define\tACCSLEN 65536\t\t// Must be the same in BBC.h\n#define PAGE_OFFSET ACCSLEN + 0x21C00     // Offset of PAGE from memory base\n#define XSCREEN        2048     // Width of screen output texture\n#define YSCREEN        2048     // Height of screen output texture\n#define MAX_PORTS\t4\t// Maximum number of port channels\n#define MAX_FILES\t8\t// Maximum number of file channels\n#define MAX_LINE_LEN   2304     // At least 252*RECTANGLE + 4\n#define MARGINL        1000     // Default left margin (mm * 100)\n#define MARGINR        1000     // Default right margin (mm * 100)\n#define MARGINT        1000     // Default top margin (mm * 100)\n#define MARGINB        1000     // Default bottom margin (mm * 100)\n#define\tSCREEN_WIDTH\t640\t// Initial width\n#define\tSCREEN_HEIGHT\t500\t// Initial height\n#define\tAUDIOLEN\t441 * 4\t// Length of audio block in bytes\n#define\tSOUNDQE         4       // Number of bytes per sound entry\n#define SOUNDQL         5*SOUNDQE // Number of bytes per channel\n#define MAX_EVENTS\t512\t// Maximum SDL events to queue\n#define MAX_TEMPO\t10\t// Maximum (slowest) *TEMPO setting\n\n// User-defined message IDs:\n\n#define\tWM_APP\t\t0x8000\n#define WMU_REALLOC     WM_APP+4  // Change size of memory allocation\n#define WMU_WAVEOPEN    WM_APP+5  // Open the audio output device\n#define WMU_WAVECLOSE   WM_APP+6  // Close the audio output device\n#define WMU_TIMER       WM_APP+26 // Change the timer periodicity\n\n// Custom user-event IDs:\n\n#define EVT_VDU\t\t0x2000\t// Send a VDU command\n#define EVT_COPYKEY\t0x2001\t// Handle 'copy key' actions\n#define EVT_TINT\t0x2002\t// Get RGB pixel value\n#define EVT_DISPLAY\t0x2003\t// *DISPLAY command\n#define EVT_PIXELS\t0x2004\t// Read back pixels\n#define EVT_CARET\t0x2005\t// Get text caret coordinates\n#define EVT_FONT\t0x2006\t// Open a font\n#define EVT_CHAR\t0x2007\t// Get character at text x,y\n#define EVT_WIDTH\t0x2008\t// Get width of a string\n#define EVT_REFLAG\t0x2009\t// Update refresh flag\n#define EVT_SYSCALL\t0x200A\t// Call in GUI thread context\n#define EVT_QUIT\t0x200B\t// Terminate with exit code\n#define EVT_MOUSE\t0x200C\t// Get mouse position/buttons\n#define EVT_MOUSETO\t0x200D\t// Move mouse pointer\n#define EVT_OSK\t\t0x200E\t// En/disable On Screen Keyboard\n#define EVT_OSWORD\t0x200F\t// OSWORD call\n#define EVT_TIMER\t0x2010\t// Set new timer period\n#define EVT_FSSYNC\t0x2011  // Sync filesystem (Emscripten)\n#define EVT_RUNJS\t0x2012  // Run Javascript (Emscripten)\n\n// Bit names:\n\n#define\tBIT0\t\t0x01\n#define\tBIT1\t\t0x02\n#define\tBIT2\t\t0x04\n#define\tBIT3\t\t0x08\n#define\tBIT4\t\t0x10\n#define\tBIT5\t\t0x20\n#define\tBIT6\t\t0x40\n#define\tBIT7\t\t0x80\n\n// Bits in [vflags]:\n\n#define\tIOFLAG\t\tBIT0\t// Insert/overtype\n#define\tEGAFLG\t\tBIT1\t// EGA-compatible modes (*EGA [ON])\n#define\tCGAFLG\t\tBIT2\t// CGA-compatible modes (*EGA OFF)\n#define\tPTFLAG\t\tBIT3\t// VDU 2 active\n#define\tHRGFLG\t\tBIT4\t// VDU 5 active\n#define\tVDUDIS\t\tBIT5\t// VDU 21 active\n#define\tUFONT\t\tBIT6\t// User font selected\n#define\tUTF8\t\tBIT7\t// UTF-8 mode selected\n\n// Bits in _flags byte:\n\n#define ESCFLG          0x80\n#define ESCDIS          0x40\n#define ALERT           0x20\n#define FLASH           0x10\n#define PHASE           0x08    \n#define PAUSE           0x04\n#define SSTEP           0x02\n#define KILL            0x01\n\n// BASIC tokens:\n\n#define TOK_ELSE       -117\n#define TOK_THEN       -116\n#define TOK_LINENO     -115\n#define TOK_FN          -92\n#define TOK_WHILE       -57\n#define TOK_CASE        -56\n#define TOK_WHEN        -55\n#define TOK_ENDCASE     -53\n#define TOK_OTHERWISE   -52\n#define TOK_ENDIF       -51\n#define TOK_ENDWHILE    -50\n#define TOK_CALL        -42\n#define TOK_DATA        -36\n#define TOK_DEF         -35\n#define TOK_FOR         -29\n#define TOK_GOSUB       -28\n#define TOK_GOTO        -27\n#define TOK_IF          -25\n#define TOK_LOCAL       -22\n#define TOK_NEXT        -19\n#define TOK_ON          -18\n#define TOK_PROC        -14\n#define TOK_READ        -13\n#define TOK_REM         -12\n#define TOK_REPEAT      -11\n#define TOK_RUN          -7\n#define TOK_UNTIL        -3\n#define TOK_EXIT         16\n\n#define TOKLO          -113   // first token with left and right forms\n#define TOKHI          -109   // last token with left and right forms\n#define OFFSIT           64   // offset from 'right' to 'left' form\n\n// Special 32-bit 'pointer' type for BASIC's heap:\ntypedef unsigned int heapptr ;\n\n// Structures and unions:\ntypedef struct tagPARM\n{\n\tsize_t i[16] ;\n\tdouble f[8] ;\n} PARM, *LPPARM ;\n\ntypedef struct tagFCB\n{\n\tunsigned char p ; // pointer\n\tunsigned char o ; // offset  (0-256)\n\tunsigned char w ; // written (0-256)\n\tsigned char f ;   // bit0: offset<>0, bit7: written<>0\n} FCB, *LPFCB ;\n\ntypedef struct tagRND\n{\n\tunsigned int l ;\n\tunsigned char h ;\n} RND, *LPRND ;\n\n// Variables declared in bbcsdl.c:\nextern SDL_Renderer *memhdc ;\nextern SDL_Window *hwndProg ;\nextern SDL_Rect ClipRect ;\nextern int bChanged ;\nextern unsigned int platform ;\t// SDL version and OS platform\nextern unsigned int palette[256] ;\nextern SDL_Texture *TTFcache[65536] ;\nextern short *chrmap ;\nextern unsigned int zoom ;\n\n// VDU variables declared in bbcdata.nas or bbcdat.s:\nextern int origx ; \t// Graphics x-origin (BASIC units)\nextern int origy ; \t// Graphics y-origin (BASIC units)\nextern int lastx ; \t// Current x-coordinate (pixels)\nextern int lasty ; \t// Current y-coordinate (pixels)\nextern int prevx ; \t// Previous x-coordinate (pixels)\nextern int prevy ; \t// Previous y-coordinate (pixels)\nextern int textwl ; \t// Text window left (pixels)\nextern int textwr ; \t// Text window right (pixels)\nextern int textwt ; \t// Text window top (pixels)\nextern int textwb ; \t// Text window bottom (pixels)\nextern int pixelx ; \t// Width of a graphics 'dot'\nextern int pixely ; \t// Height of a graphics 'dot'\nextern int textx ; \t// Text caret x-position (pixels)\nextern int texty ; \t// Text caret y-position (pixels)\nextern TTF_Font *hfont ;// Handle of current font\nextern SDL_Rect *hrect ;// Pointer to clipping rect\n\nextern unsigned short forgnd ; \t// Graphics foreground colour/action\nextern unsigned short bakgnd ;\t// Graphics background colour/action\n\nextern unsigned char cursa ; \t// Start (top) line of caret\nextern unsigned char cursb ; \t// Finish (bottom) line of caret\nextern unsigned char txtfor ; \t// Text foreground colour index\nextern unsigned char txtbak ; \t// Text background colour index\nextern signed char modeno ; \t// Mode number (can be -1)\nextern unsigned char colmsk ; \t// Mask for maximum number of colours\nextern unsigned char vflags ;\t// VDU drivers flags byte\nextern signed char scroln ; \t// Scroll counter in paged mode\n\nextern int sizex ; \t// Total width of client area (pixels)\nextern int sizey ; \t// Total height of client area (pixels)\nextern int charx ; \t// Average character width (pixels)\nextern int chary ; \t// Average character height (pixels)\nextern int prchx ; \t// Average character width (printer)\nextern int prchy ; \t// Average character height (printer)\nextern int prntx ; \t// Horizontal printing position\nextern int prnty ; \t// Vertical printing position\nextern unsigned char cursx ; \t// Cursor (caret) width\nextern unsigned char lthick ; \t// Line thickness\nextern unsigned char cmcflg ;\nextern signed char tweak ; // Character spacing adjustment\n\n// Other variables declared in bbcdata.nas or bbcdat.s:\nextern char sclflg ;\nextern unsigned char bbcfont[] ;\nextern unsigned short ttxtfont[] ;\nextern char **keystr ;\t// Pointers to user *KEY strings\nextern unsigned char flags ;\t// BASIC's Boolean flags byte\nextern SDL_AudioDeviceID hwo ;\nextern char reflag, sysflg ;\nextern unsigned char tempo ;\nextern int panx, pany ;\nextern int offsetx, offsety ;\nextern heapptr timtrp, clotrp, siztrp, systrp, moutrp ;\nextern heapptr curlin ;\t\t// Pointer to current line\nextern heapptr breakpt ;\t// Pointer to breakpoint start\nextern heapptr breakhi ;\t// Pointer to breakpoint end\n\n//\nextern int datend[] ;\t\t// End of initialised variables\nextern int stavar[] ;\t\t// Static integer variables\nextern SDL_RWops *exchan ;\t// EXEC channel\nextern SDL_RWops *spchan ;\t// SPOOL channel\nextern char* accs ;\t\t// String accumulator\nextern char* buff ;\t\t// Temporary string buffer\nextern char* path ;\t\t// File path buffer\nextern signed char *envels ;\t// Envelope storage (16 x 16)\nextern short* waves ;\nextern void* filbuf[] ;\nextern FCB fcbtab[MAX_FILES] ;  // Table of FCBs\nextern unsigned char *keyptr ;\t// Pointer to *KEY string\nextern char* usrchr ;\t\t// User-defined characters (indirect)\nextern char* keybdq ;\t\t// Keyboard queue (indirect) \nextern int* eventq ;\t\t// Event queue (indirect)\nextern unsigned char vduq[] ;\t// VDU queue (different from asm version)\nextern unsigned char queue ;\t// VDU queue status\nextern unsigned char kbdqr ;\t// Keyboard queue read pointer\nextern unsigned char kbdqw ;\t// Keyboard queue write pointer\nextern unsigned char sndqr[4] ;\t// Sound queue read pointers\nextern unsigned char sndqw[4] ;\t// Sound queue write pointers\nextern signed char eenvel[4] ;\t// Sound envelope numbers\nextern unsigned char escale[4] ;// Envelope scalers\nextern unsigned char epsect[4] ;// Envelope pitch section\nextern unsigned char easect[4] ;// Envelope amplitude section\nextern unsigned char epitch[4] ;// Envelope pitch (frequency)\nextern unsigned char elevel[4] ;// Envelope level (amplitude)\nextern unsigned char ecount[4] ;// Envelope count\nextern unsigned char soundq[4*5*SOUNDQE] ;\nextern unsigned int sacc[4] ;\t// Sound DDS accumulators\nextern unsigned char voices[4] ;// Voice (waveform) for each channel\nextern short smix[8] ;\t\t// Stereo mix for each channel\nextern unsigned char evtqr ;\t// Event queue read pointer\nextern unsigned char evtqw ;\t// Event queue write pointer\nextern unsigned char flags ;\t// Interpreter flags byte\nextern int timoff ;\t\t// TIME offset\nextern int lastick ;\t\t// To test for TIME wrapping\nextern RND prand ;\t\t// Pseudo-random number\nextern int iMsg ;\t\t// Event message number\nextern int wParam ;\t\t// Event wParam value\nextern int lParam ;\t\t// Event lParam value\nextern unsigned char tempo ;\t// SOUND tempo\nextern unsigned char farray ;\t// @hfile%() number of dimensions\nextern unsigned int fasize ;\t// @hfile%() number of elements\nextern unsigned char keyexp ;\t// *KEY expansion counter\nextern unsigned char optval ;\t// I/O redirection\nextern unsigned char liston ;\t// *FLOAT/*HEX/*LOWERCASE/OPT\nextern unsigned int vcount ;    // Character count since newline\n\n// Declared in bbcsdl.c:\nextern size_t iResult ;\t\t// Result from user event\nextern int nUserEv ;\t\t// Number of pending user events\nextern int OSKtime ;\t\t// On-screen keyboard timeout\nextern SDL_sem *Sema4 ;\t\t// Semaphore for user event wait\nextern SDL_mutex *Mutex ;\t// Mutex to protect event queue\nextern void *userRAM ;\t\t// Base of user memory\nextern void *progRAM ;\t\t// Default LOMEM\nextern void *userTOP ;\t\t// Default HIMEM\nextern const char szVersion[] ;\t// Initial announcement\nextern const char szNotice[] ;\t// Copyright string\nextern int bChanged ;\t\t// Display refresh required\nextern SDL_Joystick *Joystick ;\t// Handle to joystick\nextern SDL_TimerID UserTimerID ;\nextern int bBackground ;\t// BBC BASIC in the background\nextern int useGPA ;\t\t// Use SDL_GL_GetProcAddress\n"
  },
  {
    "path": "include/begin_code.h",
    "content": "/*\n  Simple DirectMedia Layer\n  Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org>\n\n  This software is provided 'as-is', without any express or implied\n  warranty.  In no event will the authors be held liable for any damages\n  arising from the use of this software.\n\n  Permission is granted to anyone to use this software for any purpose,\n  including commercial applications, and to alter it and redistribute it\n  freely, subject to the following restrictions:\n\n  1. The origin of this software must not be misrepresented; you must not\n     claim that you wrote the original software. If you use this software\n     in a product, an acknowledgment in the product documentation would be\n     appreciated but is not required.\n  2. Altered source versions must be plainly marked as such, and must not be\n     misrepresented as being the original software.\n  3. This notice may not be removed or altered from any source distribution.\n*/\n\n/**\n *  \\file begin_code.h\n *\n *  This file sets things up for C dynamic library function definitions,\n *  static inlined functions, and structures aligned at 4-byte alignment.\n *  If you don't like ugly C preprocessor code, don't look at this file. :)\n */\n\n/* This shouldn't be nested -- included it around code only. */\n#ifdef _begin_code_h\n#error Nested inclusion of begin_code.h\n#endif\n#define _begin_code_h\n\n#ifndef SDL_DEPRECATED\n#  if (__GNUC__ >= 4)  /* technically, this arrived in gcc 3.1, but oh well. */\n#    define SDL_DEPRECATED __attribute__((deprecated))\n#  else\n#    define SDL_DEPRECATED\n#  endif\n#endif\n\n/* Some compilers use a special export keyword */\n#ifndef DECLSPEC\n# if defined(__WIN32__)\n#  ifdef __BORLANDC__\n#   ifdef BUILD_SDL\n#    define DECLSPEC\n#   else\n#    define DECLSPEC    __declspec(dllimport)\n#   endif\n#  else\n#   define DECLSPEC __declspec(dllexport)\n#  endif\n# else\n#  if defined(__GNUC__) && __GNUC__ >= 4\n#   define DECLSPEC __attribute__ ((visibility(\"default\")))\n#  elif defined(__GNUC__) && __GNUC__ >= 2\n#   define DECLSPEC __declspec(dllexport)\n#  else\n#   define DECLSPEC\n#  endif\n# endif\n#endif\n\n/* By default SDL uses the C calling convention */\n#ifndef SDLCALL\n#if defined(__WIN32__) && !defined(__GNUC__)\n#define SDLCALL __cdecl\n#else\n#define SDLCALL\n#endif\n#endif /* SDLCALL */\n\n/* Removed DECLSPEC on Symbian OS because SDL cannot be a DLL in EPOC */\n#ifdef __SYMBIAN32__\n#undef DECLSPEC\n#define DECLSPEC\n#endif /* __SYMBIAN32__ */\n\n/* Force structure packing at 4 byte alignment.\n   This is necessary if the header is included in code which has structure\n   packing set to an alternate value, say for loading structures from disk.\n   The packing is reset to the previous value in close_code.h\n */\n#if defined(_MSC_VER) || defined(__MWERKS__) || defined(__BORLANDC__)\n#ifdef _MSC_VER\n#pragma warning(disable: 4103)\n#endif\n#ifdef __BORLANDC__\n#pragma nopackwarning\n#endif\n#ifdef _M_X64\n/* Use 8-byte alignment on 64-bit architectures, so pointers are aligned */\n#pragma pack(push,8)\n#else\n#pragma pack(push,4)\n#endif\n#endif /* Compiler needs structure packing set */\n\n#ifndef SDL_INLINE\n#if defined(__GNUC__)\n#define SDL_INLINE __inline__\n#elif defined(_MSC_VER) || defined(__BORLANDC__) || \\\n      defined(__DMC__) || defined(__SC__) || \\\n      defined(__WATCOMC__) || defined(__LCC__) || \\\n      defined(__DECC)\n#define SDL_INLINE __inline\n#ifndef __inline__\n#define __inline__ __inline\n#endif\n#else\n#define SDL_INLINE inline\n#ifndef __inline__\n#define __inline__ inline\n#endif\n#endif\n#endif /* SDL_INLINE not defined */\n\n#ifndef SDL_FORCE_INLINE\n#if defined(_MSC_VER)\n#define SDL_FORCE_INLINE __forceinline\n#elif ( (defined(__GNUC__) && (__GNUC__ >= 4)) || defined(__clang__) )\n#define SDL_FORCE_INLINE __attribute__((always_inline)) static __inline__\n#else\n#define SDL_FORCE_INLINE static SDL_INLINE\n#endif\n#endif /* SDL_FORCE_INLINE not defined */\n\n/* Apparently this is needed by several Windows compilers */\n#if !defined(__MACH__)\n#ifndef NULL\n#ifdef __cplusplus\n#define NULL 0\n#else\n#define NULL ((void *)0)\n#endif\n#endif /* NULL */\n#endif /* ! Mac OS X - breaks precompiled headers */\n"
  },
  {
    "path": "include/close_code.h",
    "content": "/*\n  Simple DirectMedia Layer\n  Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org>\n\n  This software is provided 'as-is', without any express or implied\n  warranty.  In no event will the authors be held liable for any damages\n  arising from the use of this software.\n\n  Permission is granted to anyone to use this software for any purpose,\n  including commercial applications, and to alter it and redistribute it\n  freely, subject to the following restrictions:\n\n  1. The origin of this software must not be misrepresented; you must not\n     claim that you wrote the original software. If you use this software\n     in a product, an acknowledgment in the product documentation would be\n     appreciated but is not required.\n  2. Altered source versions must be plainly marked as such, and must not be\n     misrepresented as being the original software.\n  3. This notice may not be removed or altered from any source distribution.\n*/\n\n/**\n *  \\file close_code.h\n *\n *  This file reverses the effects of begin_code.h and should be included\n *  after you finish any function and structure declarations in your headers\n */\n\n#undef _begin_code_h\n\n/* Reset structure packing at previous byte alignment */\n#if defined(_MSC_VER) || defined(__MWERKS__) || defined(__WATCOMC__)  || defined(__BORLANDC__)\n#ifdef __BORLANDC__\n#pragma nopackwarning\n#endif\n#pragma pack(pop)\n#endif /* Compiler needs structure packing set */\n"
  },
  {
    "path": "include/dr_mp3.h",
    "content": "// MP3 audio decoder. Public domain. See \"unlicense\" statement at the end of this file.\n// dr_mp3 - v0.4.0 - 2018-12-16\n//\n// David Reid - mackron@gmail.com\n//\n// Based off minimp3 (https://github.com/lieff/minimp3) which is where the real work was done. See the bottom of this file for\n// differences between minimp3 and dr_mp3.\n\n// USAGE\n// =====\n// dr_mp3 is a single-file library. To use it, do something like the following in one .c file.\n//     #define DR_MP3_IMPLEMENTATION\n//     #include \"dr_mp3.h\"\n//\n// You can then #include this file in other parts of the program as you would with any other header file. To decode audio data,\n// do something like the following:\n//\n//     drmp3 mp3;\n//     if (!drmp3_init_file(&mp3, \"MySong.mp3\", NULL)) {\n//         // Failed to open file\n//     }\n//\n//     ...\n//\n//     drmp3_uint64 framesRead = drmp3_read_pcm_frames_f32(pMP3, framesToRead, pFrames);\n//\n// The drmp3 object is transparent so you can get access to the channel count and sample rate like so:\n//\n//     drmp3_uint32 channels = mp3.channels;\n//     drmp3_uint32 sampleRate = mp3.sampleRate;\n//\n// The third parameter of drmp3_init_file() in the example above allows you to control the output channel count and sample rate. It\n// is a pointer to a drmp3_config object. Setting any of the variables of this object to 0 will cause dr_mp3 to use defaults.\n//\n// The example above initializes a decoder from a file, but you can also initialize it from a block of memory and read and seek\n// callbacks with drmp3_init_memory() and drmp3_init() respectively.\n//\n// You do not need to do any annoying memory management when reading PCM frames - this is all managed internally. You can request\n// any number of PCM frames in each call to drmp3_read_pcm_frames_f32() and it will return as many PCM frames as it can, up to the\n// requested amount.\n//\n// You can also decode an entire file in one go with drmp3_open_and_read_f32(), drmp3_open_memory_and_read_f32() and\n// drmp3_open_file_and_read_f32().\n//\n//\n// OPTIONS\n// =======\n// #define these options before including this file.\n//\n// #define DR_MP3_NO_STDIO\n//   Disable drmp3_init_file(), etc.\n//\n// #define DR_MP3_NO_SIMD\n//   Disable SIMD optimizations.\n\n#ifndef dr_mp3_h\n#define dr_mp3_h\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#include <stddef.h>\n\n#if defined(_MSC_VER) && _MSC_VER < 1600\ntypedef   signed char    drmp3_int8;\ntypedef unsigned char    drmp3_uint8;\ntypedef   signed short   drmp3_int16;\ntypedef unsigned short   drmp3_uint16;\ntypedef   signed int     drmp3_int32;\ntypedef unsigned int     drmp3_uint32;\ntypedef   signed __int64 drmp3_int64;\ntypedef unsigned __int64 drmp3_uint64;\n#else\n#include <stdint.h>\ntypedef int8_t           drmp3_int8;\ntypedef uint8_t          drmp3_uint8;\ntypedef int16_t          drmp3_int16;\ntypedef uint16_t         drmp3_uint16;\ntypedef int32_t          drmp3_int32;\ntypedef uint32_t         drmp3_uint32;\ntypedef int64_t          drmp3_int64;\ntypedef uint64_t         drmp3_uint64;\n#endif\ntypedef drmp3_uint8      drmp3_bool8;\ntypedef drmp3_uint32     drmp3_bool32;\n#define DRMP3_TRUE       1\n#define DRMP3_FALSE      0\n\n#define DRMP3_MAX_PCM_FRAMES_PER_MP3_FRAME  1152\n#define DRMP3_MAX_SAMPLES_PER_FRAME         (DRMP3_MAX_PCM_FRAMES_PER_MP3_FRAME*2)\n\n\n// Low Level Push API\n// ==================\ntypedef struct\n{\n    int frame_bytes, channels, hz, layer, bitrate_kbps;\n} drmp3dec_frame_info;\n\ntypedef struct\n{\n    float mdct_overlap[2][9*32], qmf_state[15*2*32];\n    int reserv, free_format_bytes;\n    unsigned char header[4], reserv_buf[511];\n} drmp3dec;\n\n// Initializes a low level decoder.\nvoid drmp3dec_init(drmp3dec *dec);\n\n// Reads a frame from a low level decoder.\nint drmp3dec_decode_frame(drmp3dec *dec, const unsigned char *mp3, int mp3_bytes, void *pcm, drmp3dec_frame_info *info);\n\n// Helper for converting between f32 and s16.\nSDL_STBIMG_DEF void drmp3dec_f32_to_s16(const float *in, drmp3_int16 *out, int num_samples);\n\n\n\n\n// Main API (Pull API)\n// ===================\n\ntypedef struct drmp3_src drmp3_src;\ntypedef drmp3_uint64 (* drmp3_src_read_proc)(drmp3_src* pSRC, drmp3_uint64 frameCount, void* pFramesOut, void* pUserData); // Returns the number of frames that were read.\n\ntypedef enum\n{\n    drmp3_src_algorithm_none,\n    drmp3_src_algorithm_linear\n} drmp3_src_algorithm;\n\n#define DRMP3_SRC_CACHE_SIZE_IN_FRAMES    512\ntypedef struct\n{\n    drmp3_src* pSRC;\n    float pCachedFrames[2 * DRMP3_SRC_CACHE_SIZE_IN_FRAMES];\n    drmp3_uint32 cachedFrameCount;\n    drmp3_uint32 iNextFrame;\n} drmp3_src_cache;\n\ntypedef struct\n{\n    drmp3_uint32 sampleRateIn;\n    drmp3_uint32 sampleRateOut;\n    drmp3_uint32 channels;\n    drmp3_src_algorithm algorithm;\n    drmp3_uint32 cacheSizeInFrames;  // The number of frames to read from the client at a time.\n} drmp3_src_config;\n\nstruct drmp3_src\n{\n    drmp3_src_config config;\n    drmp3_src_read_proc onRead;\n    void* pUserData;\n    float bin[256];\n    drmp3_src_cache cache;    // <-- For simplifying and optimizing client -> memory reading.\n    union\n    {\n        struct\n        {\n            double alpha;\n            drmp3_bool32 isPrevFramesLoaded : 1;\n            drmp3_bool32 isNextFramesLoaded : 1;\n        } linear;\n    } algo;\n};\n\ntypedef enum\n{\n    drmp3_seek_origin_start,\n    drmp3_seek_origin_current\n} drmp3_seek_origin;\n\ntypedef struct\n{\n    drmp3_uint64 seekPosInBytes;        // Points to the first byte of an MP3 frame.\n    drmp3_uint64 pcmFrameIndex;         // The index of the PCM frame this seek point targets.\n    drmp3_uint16 mp3FramesToDiscard;    // The number of whole MP3 frames to be discarded before pcmFramesToDiscard.\n    drmp3_uint16 pcmFramesToDiscard;    // The number of leading samples to read and discard. These are discarded after mp3FramesToDiscard.\n} drmp3_seek_point;\n\n// Callback for when data is read. Return value is the number of bytes actually read.\n//\n// pUserData   [in]  The user data that was passed to drmp3_init(), drmp3_open() and family.\n// pBufferOut  [out] The output buffer.\n// bytesToRead [in]  The number of bytes to read.\n//\n// Returns the number of bytes actually read.\n//\n// A return value of less than bytesToRead indicates the end of the stream. Do _not_ return from this callback until\n// either the entire bytesToRead is filled or you have reached the end of the stream.\ntypedef size_t (* drmp3_read_proc)(void* pUserData, void* pBufferOut, size_t bytesToRead);\n\n// Callback for when data needs to be seeked.\n//\n// pUserData [in] The user data that was passed to drmp3_init(), drmp3_open() and family.\n// offset    [in] The number of bytes to move, relative to the origin. Will never be negative.\n// origin    [in] The origin of the seek - the current position or the start of the stream.\n//\n// Returns whether or not the seek was successful.\n//\n// Whether or not it is relative to the beginning or current position is determined by the \"origin\" parameter which\n// will be either drmp3_seek_origin_start or drmp3_seek_origin_current.\ntypedef drmp3_bool32 (* drmp3_seek_proc)(void* pUserData, int offset, drmp3_seek_origin origin);\n\ntypedef struct\n{\n    drmp3_uint32 outputChannels;\n    drmp3_uint32 outputSampleRate;\n} drmp3_config;\n\ntypedef struct\n{\n    drmp3dec decoder;\n    drmp3dec_frame_info frameInfo;\n    drmp3_uint32 channels;\n    drmp3_uint32 sampleRate;\n    drmp3_read_proc onRead;\n    drmp3_seek_proc onSeek;\n    void* pUserData;\n    drmp3_uint32 mp3FrameChannels;      // The number of channels in the currently loaded MP3 frame. Internal use only.\n    drmp3_uint32 mp3FrameSampleRate;    // The sample rate of the currently loaded MP3 frame. Internal use only.\n    drmp3_uint32 pcmFramesConsumedInMP3Frame;\n    drmp3_uint32 pcmFramesRemainingInMP3Frame;\n    drmp3_uint8 pcmFrames[sizeof(float)*DRMP3_MAX_SAMPLES_PER_FRAME];  // <-- Multipled by sizeof(float) to ensure there's enough room for DR_MP3_FLOAT_OUTPUT.\n    drmp3_uint64 currentPCMFrame;       // The current PCM frame, globally, based on the output sample rate. Mainly used for seeking.\n    drmp3_uint64 streamCursor;          // The current byte the decoder is sitting on in the raw stream.\n    drmp3_src src;\n    drmp3_seek_point* pSeekPoints;      // NULL by default. Set with drmp3_bind_seek_table(). Memory is owned by the client. dr_mp3 will never attempt to free this pointer.\n    drmp3_uint32 seekPointCount;        // The number of items in pSeekPoints. When set to 0 assumes to no seek table. Defaults to zero.\n    size_t dataSize;\n    size_t dataCapacity;\n    drmp3_uint8* pData;\n    drmp3_bool32 atEnd : 1;\n    struct\n    {\n        const drmp3_uint8* pData;\n        size_t dataSize;\n        size_t currentReadPos;\n    } memory;   // Only used for decoders that were opened against a block of memory.\n} drmp3;\n\n// Initializes an MP3 decoder.\n//\n// onRead    [in]           The function to call when data needs to be read from the client.\n// onSeek    [in]           The function to call when the read position of the client data needs to move.\n// pUserData [in, optional] A pointer to application defined data that will be passed to onRead and onSeek.\n//\n// Returns true if successful; false otherwise.\n//\n// Close the loader with drmp3_uninit().\n//\n// See also: drmp3_init_file(), drmp3_init_memory(), drmp3_uninit()\ndrmp3_bool32 drmp3_init(drmp3* pMP3, drmp3_read_proc onRead, drmp3_seek_proc onSeek, void* pUserData, const drmp3_config* pConfig);\n\n// Initializes an MP3 decoder from a block of memory.\n//\n// This does not create a copy of the data. It is up to the application to ensure the buffer remains valid for\n// the lifetime of the drmp3 object.\n//\n// The buffer should contain the contents of the entire MP3 file.\nSDL_STBIMG_DEF drmp3_bool32 drmp3_init_memory(drmp3* pMP3, const void* pData, size_t dataSize, const drmp3_config* pConfig);\n\n#ifndef DR_MP3_NO_STDIO\n// Initializes an MP3 decoder from a file.\n//\n// This holds the internal FILE object until drmp3_uninit() is called. Keep this in mind if you're caching drmp3\n// objects because the operating system may restrict the number of file handles an application can have open at\n// any given time.\nSDL_STBIMG_DEF drmp3_bool32 drmp3_init_file(drmp3* pMP3, const char* filePath, const drmp3_config* pConfig);\n#endif\n\n// Uninitializes an MP3 decoder.\nSDL_STBIMG_DEF void drmp3_uninit(drmp3* pMP3);\n\n// Reads PCM frames as interleaved 32-bit IEEE floating point PCM.\n//\n// Note that framesToRead specifies the number of PCM frames to read, _not_ the number of MP3 frames.\nSDL_STBIMG_DEF drmp3_uint64 drmp3_read_pcm_frames_f32(drmp3* pMP3, drmp3_uint64 framesToRead, float* pBufferOut);\n\n// Seeks to a specific frame.\n//\n// Note that this is _not_ an MP3 frame, but rather a PCM frame.\nSDL_STBIMG_DEF drmp3_bool32 drmp3_seek_to_pcm_frame(drmp3* pMP3, drmp3_uint64 frameIndex);\n\n// Calculates the total number of PCM frames in the MP3 stream. Cannot be used for infinite streams such as internet\n// radio. Runs in linear time. Returns 0 on error.\nSDL_STBIMG_DEF drmp3_uint64 drmp3_get_pcm_frame_count(drmp3* pMP3);\n\n// Calculates the total number of MP3 frames in the MP3 stream. Cannot be used for infinite streams such as internet\n// radio. Runs in linear time. Returns 0 on error.\ndrmp3_uint64 drmp3_get_mp3_frame_count(drmp3* pMP3);\n\n// Calculates the seekpoints based on PCM frames. This is slow.\n//\n// pSeekpoint count is a pointer to a uint32 containing the seekpoint count. On input it contains the desired count.\n// On output it contains the actual count. The reason for this design is that the client may request too many\n// seekpoints, in which case dr_mp3 will return a corrected count.\n//\n// Note that seektable seeking is not quite sample exact when the MP3 stream contains inconsistent sample rates.\ndrmp3_bool32 drmp3_calculate_seek_points(drmp3* pMP3, drmp3_uint32* pSeekPointCount, drmp3_seek_point* pSeekPoints);\n\n// Binds a seek table to the decoder.\n//\n// This does _not_ make a copy of pSeekPoints - it only references it. It is up to the application to ensure this\n// remains valid while it is bound to the decoder.\n//\n// Use drmp3_calculate_seek_points() to calculate the seek points.\ndrmp3_bool32 drmp3_bind_seek_table(drmp3* pMP3, drmp3_uint32 seekPointCount, drmp3_seek_point* pSeekPoints);\n\n\n\n// Opens an decodes an entire MP3 stream as a single operation.\n//\n// pConfig is both an input and output. On input it contains what you want. On output it contains what you got.\n//\n// Free the returned pointer with drmp3_free().\nfloat* drmp3_open_and_read_f32(drmp3_read_proc onRead, drmp3_seek_proc onSeek, void* pUserData, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount);\nSDL_STBIMG_DEF float* drmp3_open_memory_and_read_f32(const void* pData, size_t dataSize, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount);\n#ifndef DR_MP3_NO_STDIO\nSDL_STBIMG_DEF float* drmp3_open_file_and_read_f32(const char* filePath, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount);\n#endif\n\n// Frees any memory that was allocated by a public drmp3 API.\nSDL_STBIMG_DEF void drmp3_free(void* p);\n\n#ifdef __cplusplus\n}\n#endif\n#endif  // dr_mp3_h\n\n\n/////////////////////////////////////////////////////\n//\n// IMPLEMENTATION\n//\n/////////////////////////////////////////////////////\n#ifdef DR_MP3_IMPLEMENTATION\n#include <stdlib.h>\n#include <string.h>\n#include <stdint.h>\n#include <limits.h> // For INT_MAX\n\n// Disable SIMD when compiling with TCC for now.\n#if defined(__TINYC__)\n#define DR_MP3_NO_SIMD\n#endif\n\n#define DRMP3_OFFSET_PTR(p, offset) ((void*)((drmp3_uint8*)(p) + (offset)))\n\n#define DRMP3_MAX_FREE_FORMAT_FRAME_SIZE  2304    /* more than ISO spec's */\n#ifndef DRMP3_MAX_FRAME_SYNC_MATCHES\n#define DRMP3_MAX_FRAME_SYNC_MATCHES      10\n#endif\n\n#define DRMP3_MAX_L3_FRAME_PAYLOAD_BYTES  DRMP3_MAX_FREE_FORMAT_FRAME_SIZE /* MUST be >= 320000/8/32000*1152 = 1440 */\n\n#define DRMP3_MAX_BITRESERVOIR_BYTES      511\n#define DRMP3_SHORT_BLOCK_TYPE            2\n#define DRMP3_STOP_BLOCK_TYPE             3\n#define DRMP3_MODE_MONO                   3\n#define DRMP3_MODE_JOINT_STEREO           1\n#define DRMP3_HDR_SIZE                    4\n#define DRMP3_HDR_IS_MONO(h)              (((h[3]) & 0xC0) == 0xC0)\n#define DRMP3_HDR_IS_MS_STEREO(h)         (((h[3]) & 0xE0) == 0x60)\n#define DRMP3_HDR_IS_FREE_FORMAT(h)       (((h[2]) & 0xF0) == 0)\n#define DRMP3_HDR_IS_CRC(h)               (!((h[1]) & 1))\n#define DRMP3_HDR_TEST_PADDING(h)         ((h[2]) & 0x2)\n#define DRMP3_HDR_TEST_MPEG1(h)           ((h[1]) & 0x8)\n#define DRMP3_HDR_TEST_NOT_MPEG25(h)      ((h[1]) & 0x10)\n#define DRMP3_HDR_TEST_I_STEREO(h)        ((h[3]) & 0x10)\n#define DRMP3_HDR_TEST_MS_STEREO(h)       ((h[3]) & 0x20)\n#define DRMP3_HDR_GET_STEREO_MODE(h)      (((h[3]) >> 6) & 3)\n#define DRMP3_HDR_GET_STEREO_MODE_EXT(h)  (((h[3]) >> 4) & 3)\n#define DRMP3_HDR_GET_LAYER(h)            (((h[1]) >> 1) & 3)\n#define DRMP3_HDR_GET_BITRATE(h)          ((h[2]) >> 4)\n#define DRMP3_HDR_GET_SAMPLE_RATE(h)      (((h[2]) >> 2) & 3)\n#define DRMP3_HDR_GET_MY_SAMPLE_RATE(h)   (DRMP3_HDR_GET_SAMPLE_RATE(h) + (((h[1] >> 3) & 1) + ((h[1] >> 4) & 1))*3)\n#define DRMP3_HDR_IS_FRAME_576(h)         ((h[1] & 14) == 2)\n#define DRMP3_HDR_IS_LAYER_1(h)           ((h[1] & 6) == 6)\n\n#define DRMP3_BITS_DEQUANTIZER_OUT        -1\n#define DRMP3_MAX_SCF                     (255 + DRMP3_BITS_DEQUANTIZER_OUT*4 - 210)\n#define DRMP3_MAX_SCFI                    ((DRMP3_MAX_SCF + 3) & ~3)\n\n#define DRMP3_MIN(a, b)           ((a) > (b) ? (b) : (a))\n#define DRMP3_MAX(a, b)           ((a) < (b) ? (b) : (a))\n\n#if !defined(DR_MP3_NO_SIMD)\n\n#if !defined(DR_MP3_ONLY_SIMD) && (defined(_M_X64) || defined(_M_ARM64) || defined(__x86_64__) || defined(__aarch64__))\n/* x64 always have SSE2, arm64 always have neon, no need for generic code */\n#define DR_MP3_ONLY_SIMD\n#endif\n\n#if (defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_X64))) || ((defined(__i386__) || defined(__x86_64__)) && defined(__SSE2__))\n#if defined(_MSC_VER)\n#include <intrin.h>\n#endif\n#include <emmintrin.h>\n#define DRMP3_HAVE_SSE 1\n#define DRMP3_HAVE_SIMD 1\n#define DRMP3_VSTORE _mm_storeu_ps\n#define DRMP3_VLD _mm_loadu_ps\n#define DRMP3_VSET _mm_set1_ps\n#define DRMP3_VADD _mm_add_ps\n#define DRMP3_VSUB _mm_sub_ps\n#define DRMP3_VMUL _mm_mul_ps\n#define DRMP3_VMAC(a, x, y) _mm_add_ps(a, _mm_mul_ps(x, y))\n#define DRMP3_VMSB(a, x, y) _mm_sub_ps(a, _mm_mul_ps(x, y))\n#define DRMP3_VMUL_S(x, s)  _mm_mul_ps(x, _mm_set1_ps(s))\n#define DRMP3_VREV(x) _mm_shuffle_ps(x, x, _MM_SHUFFLE(0, 1, 2, 3))\ntypedef __m128 drmp3_f4;\n#if defined(_MSC_VER) || defined(DR_MP3_ONLY_SIMD)\n#define drmp3_cpuid __cpuid\n#else\nstatic __inline__ __attribute__((always_inline)) void drmp3_cpuid(int CPUInfo[], const int InfoType)\n{\n#if defined(__PIC__)\n    __asm__ __volatile__(\n#if defined(__x86_64__)\n        \"push %%rbx\\n\"\n        \"cpuid\\n\"\n        \"xchgl %%ebx, %1\\n\"\n        \"pop  %%rbx\\n\"\n#else\n        \"xchgl %%ebx, %1\\n\"\n        \"cpuid\\n\"\n        \"xchgl %%ebx, %1\\n\"\n#endif\n        : \"=a\" (CPUInfo[0]), \"=r\" (CPUInfo[1]), \"=c\" (CPUInfo[2]), \"=d\" (CPUInfo[3])\n        : \"a\" (InfoType));\n#else\n    __asm__ __volatile__(\n        \"cpuid\"\n        : \"=a\" (CPUInfo[0]), \"=b\" (CPUInfo[1]), \"=c\" (CPUInfo[2]), \"=d\" (CPUInfo[3])\n        : \"a\" (InfoType));\n#endif\n}\n#endif\nstatic int drmp3_have_simd(void)\n{\n#ifdef DR_MP3_ONLY_SIMD\n    return 1;\n#else\n    static int g_have_simd;\n    int CPUInfo[4];\n#ifdef MINIMP3_TEST\n    static int g_counter;\n    if (g_counter++ > 100)\n        return 0;\n#endif\n    if (g_have_simd)\n        goto end;\n    drmp3_cpuid(CPUInfo, 0);\n    if (CPUInfo[0] > 0)\n    {\n        drmp3_cpuid(CPUInfo, 1);\n        g_have_simd = (CPUInfo[3] & (1 << 26)) + 1; /* SSE2 */\n        return g_have_simd - 1;\n    }\n\nend:\n    return g_have_simd - 1;\n#endif\n}\n#elif defined(__ARM_NEON) || defined(__aarch64__)\n#include <arm_neon.h>\n#define DRMP3_HAVE_SIMD 1\n#define DRMP3_VSTORE vst1q_f32\n#define DRMP3_VLD vld1q_f32\n#define DRMP3_VSET vmovq_n_f32\n#define DRMP3_VADD vaddq_f32\n#define DRMP3_VSUB vsubq_f32\n#define DRMP3_VMUL vmulq_f32\n#define DRMP3_VMAC(a, x, y) vmlaq_f32(a, x, y)\n#define DRMP3_VMSB(a, x, y) vmlsq_f32(a, x, y)\n#define DRMP3_VMUL_S(x, s)  vmulq_f32(x, vmovq_n_f32(s))\n#define DRMP3_VREV(x) vcombine_f32(vget_high_f32(vrev64q_f32(x)), vget_low_f32(vrev64q_f32(x)))\ntypedef float32x4_t drmp3_f4;\nstatic int drmp3_have_simd(void)\n{   /* TODO: detect neon for !DR_MP3_ONLY_SIMD */\n    return 1;\n}\n#else\n#define DRMP3_HAVE_SIMD 0\n#ifdef DR_MP3_ONLY_SIMD\n#error DR_MP3_ONLY_SIMD used, but SSE/NEON not enabled\n#endif\n#endif\n\n#else\n\n#define DRMP3_HAVE_SIMD 0\n\n#endif\n\ntypedef struct\n{\n    const drmp3_uint8 *buf;\n    int pos, limit;\n} drmp3_bs;\n\ntypedef struct\n{\n    float scf[3*64];\n    drmp3_uint8 total_bands, stereo_bands, bitalloc[64], scfcod[64];\n} drmp3_L12_scale_info;\n\ntypedef struct\n{\n    drmp3_uint8 tab_offset, code_tab_width, band_count;\n} drmp3_L12_subband_alloc;\n\ntypedef struct\n{\n    const drmp3_uint8 *sfbtab;\n    drmp3_uint16 part_23_length, big_values, scalefac_compress;\n    drmp3_uint8 global_gain, block_type, mixed_block_flag, n_long_sfb, n_short_sfb;\n    drmp3_uint8 table_select[3], region_count[3], subblock_gain[3];\n    drmp3_uint8 preflag, scalefac_scale, count1_table, scfsi;\n} drmp3_L3_gr_info;\n\ntypedef struct\n{\n    drmp3_bs bs;\n    drmp3_uint8 maindata[DRMP3_MAX_BITRESERVOIR_BYTES + DRMP3_MAX_L3_FRAME_PAYLOAD_BYTES];\n    drmp3_L3_gr_info gr_info[4];\n    float grbuf[2][576], scf[40], syn[18 + 15][2*32];\n    drmp3_uint8 ist_pos[2][39];\n} drmp3dec_scratch;\n\nstatic void drmp3_bs_init(drmp3_bs *bs, const drmp3_uint8 *data, int bytes)\n{\n    bs->buf   = data;\n    bs->pos   = 0;\n    bs->limit = bytes*8;\n}\n\nstatic drmp3_uint32 drmp3_bs_get_bits(drmp3_bs *bs, int n)\n{\n    drmp3_uint32 next, cache = 0, s = bs->pos & 7;\n    int shl = n + s;\n    const drmp3_uint8 *p = bs->buf + (bs->pos >> 3);\n    if ((bs->pos += n) > bs->limit)\n        return 0;\n    next = *p++ & (255 >> s);\n    while ((shl -= 8) > 0)\n    {\n        cache |= next << shl;\n        next = *p++;\n    }\n    return cache | (next >> -shl);\n}\n\nstatic int drmp3_hdr_valid(const drmp3_uint8 *h)\n{\n    return h[0] == 0xff &&\n        ((h[1] & 0xF0) == 0xf0 || (h[1] & 0xFE) == 0xe2) &&\n        (DRMP3_HDR_GET_LAYER(h) != 0) &&\n        (DRMP3_HDR_GET_BITRATE(h) != 15) &&\n        (DRMP3_HDR_GET_SAMPLE_RATE(h) != 3);\n}\n\nstatic int drmp3_hdr_compare(const drmp3_uint8 *h1, const drmp3_uint8 *h2)\n{\n    return drmp3_hdr_valid(h2) &&\n        ((h1[1] ^ h2[1]) & 0xFE) == 0 &&\n        ((h1[2] ^ h2[2]) & 0x0C) == 0 &&\n        !(DRMP3_HDR_IS_FREE_FORMAT(h1) ^ DRMP3_HDR_IS_FREE_FORMAT(h2));\n}\n\nstatic unsigned drmp3_hdr_bitrate_kbps(const drmp3_uint8 *h)\n{\n    static const drmp3_uint8 halfrate[2][3][15] = {\n        { { 0,4,8,12,16,20,24,28,32,40,48,56,64,72,80 }, { 0,4,8,12,16,20,24,28,32,40,48,56,64,72,80 }, { 0,16,24,28,32,40,48,56,64,72,80,88,96,112,128 } },\n        { { 0,16,20,24,28,32,40,48,56,64,80,96,112,128,160 }, { 0,16,24,28,32,40,48,56,64,80,96,112,128,160,192 }, { 0,16,32,48,64,80,96,112,128,144,160,176,192,208,224 } },\n    };\n    return 2*halfrate[!!DRMP3_HDR_TEST_MPEG1(h)][DRMP3_HDR_GET_LAYER(h) - 1][DRMP3_HDR_GET_BITRATE(h)];\n}\n\nstatic unsigned drmp3_hdr_sample_rate_hz(const drmp3_uint8 *h)\n{\n    static const unsigned g_hz[3] = { 44100, 48000, 32000 };\n    return g_hz[DRMP3_HDR_GET_SAMPLE_RATE(h)] >> (int)!DRMP3_HDR_TEST_MPEG1(h) >> (int)!DRMP3_HDR_TEST_NOT_MPEG25(h);\n}\n\nstatic unsigned drmp3_hdr_frame_samples(const drmp3_uint8 *h)\n{\n    return DRMP3_HDR_IS_LAYER_1(h) ? 384 : (1152 >> (int)DRMP3_HDR_IS_FRAME_576(h));\n}\n\nstatic int drmp3_hdr_frame_bytes(const drmp3_uint8 *h, int free_format_size)\n{\n    int frame_bytes = drmp3_hdr_frame_samples(h)*drmp3_hdr_bitrate_kbps(h)*125/drmp3_hdr_sample_rate_hz(h);\n    if (DRMP3_HDR_IS_LAYER_1(h))\n    {\n        frame_bytes &= ~3; /* slot align */\n    }\n    return frame_bytes ? frame_bytes : free_format_size;\n}\n\nstatic int drmp3_hdr_padding(const drmp3_uint8 *h)\n{\n    return DRMP3_HDR_TEST_PADDING(h) ? (DRMP3_HDR_IS_LAYER_1(h) ? 4 : 1) : 0;\n}\n\n#ifndef DR_MP3_ONLY_MP3\nstatic const drmp3_L12_subband_alloc *drmp3_L12_subband_alloc_table(const drmp3_uint8 *hdr, drmp3_L12_scale_info *sci)\n{\n    const drmp3_L12_subband_alloc *alloc;\n    int mode = DRMP3_HDR_GET_STEREO_MODE(hdr);\n    int nbands, stereo_bands = (mode == DRMP3_MODE_MONO) ? 0 : (mode == DRMP3_MODE_JOINT_STEREO) ? (DRMP3_HDR_GET_STEREO_MODE_EXT(hdr) << 2) + 4 : 32;\n\n    if (DRMP3_HDR_IS_LAYER_1(hdr))\n    {\n        static const drmp3_L12_subband_alloc g_alloc_L1[] = { { 76, 4, 32 } };\n        alloc = g_alloc_L1;\n        nbands = 32;\n    } else if (!DRMP3_HDR_TEST_MPEG1(hdr))\n    {\n        static const drmp3_L12_subband_alloc g_alloc_L2M2[] = { { 60, 4, 4 }, { 44, 3, 7 }, { 44, 2, 19 } };\n        alloc = g_alloc_L2M2;\n        nbands = 30;\n    } else\n    {\n        static const drmp3_L12_subband_alloc g_alloc_L2M1[] = { { 0, 4, 3 }, { 16, 4, 8 }, { 32, 3, 12 }, { 40, 2, 7 } };\n        int sample_rate_idx = DRMP3_HDR_GET_SAMPLE_RATE(hdr);\n        unsigned kbps = drmp3_hdr_bitrate_kbps(hdr) >> (int)(mode != DRMP3_MODE_MONO);\n        if (!kbps) /* free-format */\n        {\n            kbps = 192;\n        }\n\n        alloc = g_alloc_L2M1;\n        nbands = 27;\n        if (kbps < 56)\n        {\n            static const drmp3_L12_subband_alloc g_alloc_L2M1_lowrate[] = { { 44, 4, 2 }, { 44, 3, 10 } };\n            alloc = g_alloc_L2M1_lowrate;\n            nbands = sample_rate_idx == 2 ? 12 : 8;\n        } else if (kbps >= 96 && sample_rate_idx != 1)\n        {\n            nbands = 30;\n        }\n    }\n\n    sci->total_bands = (drmp3_uint8)nbands;\n    sci->stereo_bands = (drmp3_uint8)DRMP3_MIN(stereo_bands, nbands);\n\n    return alloc;\n}\n\nstatic void drmp3_L12_read_scalefactors(drmp3_bs *bs, drmp3_uint8 *pba, drmp3_uint8 *scfcod, int bands, float *scf)\n{\n    static const float g_deq_L12[18*3] = {\n#define DRMP3_DQ(x) 9.53674316e-07f/x, 7.56931807e-07f/x, 6.00777173e-07f/x\n        DRMP3_DQ(3),DRMP3_DQ(7),DRMP3_DQ(15),DRMP3_DQ(31),DRMP3_DQ(63),DRMP3_DQ(127),DRMP3_DQ(255),DRMP3_DQ(511),DRMP3_DQ(1023),DRMP3_DQ(2047),DRMP3_DQ(4095),DRMP3_DQ(8191),DRMP3_DQ(16383),DRMP3_DQ(32767),DRMP3_DQ(65535),DRMP3_DQ(3),DRMP3_DQ(5),DRMP3_DQ(9)\n    };\n    int i, m;\n    for (i = 0; i < bands; i++)\n    {\n        float s = 0;\n        int ba = *pba++;\n        int mask = ba ? 4 + ((19 >> scfcod[i]) & 3) : 0;\n        for (m = 4; m; m >>= 1)\n        {\n            if (mask & m)\n            {\n                int b = drmp3_bs_get_bits(bs, 6);\n                s = g_deq_L12[ba*3 - 6 + b % 3]*(1 << 21 >> b/3);\n            }\n            *scf++ = s;\n        }\n    }\n}\n\nstatic void drmp3_L12_read_scale_info(const drmp3_uint8 *hdr, drmp3_bs *bs, drmp3_L12_scale_info *sci)\n{\n    static const drmp3_uint8 g_bitalloc_code_tab[] = {\n        0,17, 3, 4, 5,6,7, 8,9,10,11,12,13,14,15,16,\n        0,17,18, 3,19,4,5, 6,7, 8, 9,10,11,12,13,16,\n        0,17,18, 3,19,4,5,16,\n        0,17,18,16,\n        0,17,18,19, 4,5,6, 7,8, 9,10,11,12,13,14,15,\n        0,17,18, 3,19,4,5, 6,7, 8, 9,10,11,12,13,14,\n        0, 2, 3, 4, 5,6,7, 8,9,10,11,12,13,14,15,16\n    };\n    const drmp3_L12_subband_alloc *subband_alloc = drmp3_L12_subband_alloc_table(hdr, sci);\n\n    int i, k = 0, ba_bits = 0;\n    const drmp3_uint8 *ba_code_tab = g_bitalloc_code_tab;\n\n    for (i = 0; i < sci->total_bands; i++)\n    {\n        drmp3_uint8 ba;\n        if (i == k)\n        {\n            k += subband_alloc->band_count;\n            ba_bits = subband_alloc->code_tab_width;\n            ba_code_tab = g_bitalloc_code_tab + subband_alloc->tab_offset;\n            subband_alloc++;\n        }\n        ba = ba_code_tab[drmp3_bs_get_bits(bs, ba_bits)];\n        sci->bitalloc[2*i] = ba;\n        if (i < sci->stereo_bands)\n        {\n            ba = ba_code_tab[drmp3_bs_get_bits(bs, ba_bits)];\n        }\n        sci->bitalloc[2*i + 1] = sci->stereo_bands ? ba : 0;\n    }\n\n    for (i = 0; i < 2*sci->total_bands; i++)\n    {\n        sci->scfcod[i] = (drmp3_uint8)(sci->bitalloc[i] ? DRMP3_HDR_IS_LAYER_1(hdr) ? 2 : drmp3_bs_get_bits(bs, 2) : 6);\n    }\n\n    drmp3_L12_read_scalefactors(bs, sci->bitalloc, sci->scfcod, sci->total_bands*2, sci->scf);\n\n    for (i = sci->stereo_bands; i < sci->total_bands; i++)\n    {\n        sci->bitalloc[2*i + 1] = 0;\n    }\n}\n\nstatic int drmp3_L12_dequantize_granule(float *grbuf, drmp3_bs *bs, drmp3_L12_scale_info *sci, int group_size)\n{\n    int i, j, k, choff = 576;\n    for (j = 0; j < 4; j++)\n    {\n        float *dst = grbuf + group_size*j;\n        for (i = 0; i < 2*sci->total_bands; i++)\n        {\n            int ba = sci->bitalloc[i];\n            if (ba != 0)\n            {\n                if (ba < 17)\n                {\n                    int half = (1 << (ba - 1)) - 1;\n                    for (k = 0; k < group_size; k++)\n                    {\n                        dst[k] = (float)((int)drmp3_bs_get_bits(bs, ba) - half);\n                    }\n                } else\n                {\n                    unsigned mod = (2 << (ba - 17)) + 1;    /* 3, 5, 9 */\n                    unsigned code = drmp3_bs_get_bits(bs, mod + 2 - (mod >> 3));  /* 5, 7, 10 */\n                    for (k = 0; k < group_size; k++, code /= mod)\n                    {\n                        dst[k] = (float)((int)(code % mod - mod/2));\n                    }\n                }\n            }\n            dst += choff;\n            choff = 18 - choff;\n        }\n    }\n    return group_size*4;\n}\n\nstatic void drmp3_L12_apply_scf_384(drmp3_L12_scale_info *sci, const float *scf, float *dst)\n{\n    int i, k;\n    memcpy(dst + 576 + sci->stereo_bands*18, dst + sci->stereo_bands*18, (sci->total_bands - sci->stereo_bands)*18*sizeof(float));\n    for (i = 0; i < sci->total_bands; i++, dst += 18, scf += 6)\n    {\n        for (k = 0; k < 12; k++)\n        {\n            dst[k + 0]   *= scf[0];\n            dst[k + 576] *= scf[3];\n        }\n    }\n}\n#endif\n\nstatic int drmp3_L3_read_side_info(drmp3_bs *bs, drmp3_L3_gr_info *gr, const drmp3_uint8 *hdr)\n{\n    static const drmp3_uint8 g_scf_long[8][23] = {\n        { 6,6,6,6,6,6,8,10,12,14,16,20,24,28,32,38,46,52,60,68,58,54,0 },\n        { 12,12,12,12,12,12,16,20,24,28,32,40,48,56,64,76,90,2,2,2,2,2,0 },\n        { 6,6,6,6,6,6,8,10,12,14,16,20,24,28,32,38,46,52,60,68,58,54,0 },\n        { 6,6,6,6,6,6,8,10,12,14,16,18,22,26,32,38,46,54,62,70,76,36,0 },\n        { 6,6,6,6,6,6,8,10,12,14,16,20,24,28,32,38,46,52,60,68,58,54,0 },\n        { 4,4,4,4,4,4,6,6,8,8,10,12,16,20,24,28,34,42,50,54,76,158,0 },\n        { 4,4,4,4,4,4,6,6,6,8,10,12,16,18,22,28,34,40,46,54,54,192,0 },\n        { 4,4,4,4,4,4,6,6,8,10,12,16,20,24,30,38,46,56,68,84,102,26,0 }\n    };\n    static const drmp3_uint8 g_scf_short[8][40] = {\n        { 4,4,4,4,4,4,4,4,4,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,24,24,24,30,30,30,40,40,40,18,18,18,0 },\n        { 8,8,8,8,8,8,8,8,8,12,12,12,16,16,16,20,20,20,24,24,24,28,28,28,36,36,36,2,2,2,2,2,2,2,2,2,26,26,26,0 },\n        { 4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,8,8,8,10,10,10,14,14,14,18,18,18,26,26,26,32,32,32,42,42,42,18,18,18,0 },\n        { 4,4,4,4,4,4,4,4,4,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,24,24,24,32,32,32,44,44,44,12,12,12,0 },\n        { 4,4,4,4,4,4,4,4,4,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,24,24,24,30,30,30,40,40,40,18,18,18,0 },\n        { 4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,22,22,22,30,30,30,56,56,56,0 },\n        { 4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,10,10,10,12,12,12,14,14,14,16,16,16,20,20,20,26,26,26,66,66,66,0 },\n        { 4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,8,8,8,12,12,12,16,16,16,20,20,20,26,26,26,34,34,34,42,42,42,12,12,12,0 }\n    };\n    static const drmp3_uint8 g_scf_mixed[8][40] = {\n        { 6,6,6,6,6,6,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,24,24,24,30,30,30,40,40,40,18,18,18,0 },\n        { 12,12,12,4,4,4,8,8,8,12,12,12,16,16,16,20,20,20,24,24,24,28,28,28,36,36,36,2,2,2,2,2,2,2,2,2,26,26,26,0 },\n        { 6,6,6,6,6,6,6,6,6,6,6,6,8,8,8,10,10,10,14,14,14,18,18,18,26,26,26,32,32,32,42,42,42,18,18,18,0 },\n        { 6,6,6,6,6,6,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,24,24,24,32,32,32,44,44,44,12,12,12,0 },\n        { 6,6,6,6,6,6,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,24,24,24,30,30,30,40,40,40,18,18,18,0 },\n        { 4,4,4,4,4,4,6,6,4,4,4,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,22,22,22,30,30,30,56,56,56,0 },\n        { 4,4,4,4,4,4,6,6,4,4,4,6,6,6,6,6,6,10,10,10,12,12,12,14,14,14,16,16,16,20,20,20,26,26,26,66,66,66,0 },\n        { 4,4,4,4,4,4,6,6,4,4,4,6,6,6,8,8,8,12,12,12,16,16,16,20,20,20,26,26,26,34,34,34,42,42,42,12,12,12,0 }\n    };\n\n    unsigned tables, scfsi = 0;\n    int main_data_begin, part_23_sum = 0;\n    int sr_idx = DRMP3_HDR_GET_MY_SAMPLE_RATE(hdr); sr_idx -= (sr_idx != 0);\n    int gr_count = DRMP3_HDR_IS_MONO(hdr) ? 1 : 2;\n\n    if (DRMP3_HDR_TEST_MPEG1(hdr))\n    {\n        gr_count *= 2;\n        main_data_begin = drmp3_bs_get_bits(bs, 9);\n        scfsi = drmp3_bs_get_bits(bs, 7 + gr_count);\n    } else\n    {\n        main_data_begin = drmp3_bs_get_bits(bs, 8 + gr_count) >> gr_count;\n    }\n\n    do\n    {\n        if (DRMP3_HDR_IS_MONO(hdr))\n        {\n            scfsi <<= 4;\n        }\n        gr->part_23_length = (drmp3_uint16)drmp3_bs_get_bits(bs, 12);\n        part_23_sum += gr->part_23_length;\n        gr->big_values = (drmp3_uint16)drmp3_bs_get_bits(bs,  9);\n        if (gr->big_values > 288)\n        {\n            return -1;\n        }\n        gr->global_gain = (drmp3_uint8)drmp3_bs_get_bits(bs, 8);\n        gr->scalefac_compress = (drmp3_uint16)drmp3_bs_get_bits(bs, DRMP3_HDR_TEST_MPEG1(hdr) ? 4 : 9);\n        gr->sfbtab = g_scf_long[sr_idx];\n        gr->n_long_sfb  = 22;\n        gr->n_short_sfb = 0;\n        if (drmp3_bs_get_bits(bs, 1))\n        {\n            gr->block_type = (drmp3_uint8)drmp3_bs_get_bits(bs, 2);\n            if (!gr->block_type)\n            {\n                return -1;\n            }\n            gr->mixed_block_flag = (drmp3_uint8)drmp3_bs_get_bits(bs, 1);\n            gr->region_count[0] = 7;\n            gr->region_count[1] = 255;\n            if (gr->block_type == DRMP3_SHORT_BLOCK_TYPE)\n            {\n                scfsi &= 0x0F0F;\n                if (!gr->mixed_block_flag)\n                {\n                    gr->region_count[0] = 8;\n                    gr->sfbtab = g_scf_short[sr_idx];\n                    gr->n_long_sfb = 0;\n                    gr->n_short_sfb = 39;\n                } else\n                {\n                    gr->sfbtab = g_scf_mixed[sr_idx];\n                    gr->n_long_sfb = DRMP3_HDR_TEST_MPEG1(hdr) ? 8 : 6;\n                    gr->n_short_sfb = 30;\n                }\n            }\n            tables = drmp3_bs_get_bits(bs, 10);\n            tables <<= 5;\n            gr->subblock_gain[0] = (drmp3_uint8)drmp3_bs_get_bits(bs, 3);\n            gr->subblock_gain[1] = (drmp3_uint8)drmp3_bs_get_bits(bs, 3);\n            gr->subblock_gain[2] = (drmp3_uint8)drmp3_bs_get_bits(bs, 3);\n        } else\n        {\n            gr->block_type = 0;\n            gr->mixed_block_flag = 0;\n            tables = drmp3_bs_get_bits(bs, 15);\n            gr->region_count[0] = (drmp3_uint8)drmp3_bs_get_bits(bs, 4);\n            gr->region_count[1] = (drmp3_uint8)drmp3_bs_get_bits(bs, 3);\n            gr->region_count[2] = 255;\n        }\n        gr->table_select[0] = (drmp3_uint8)(tables >> 10);\n        gr->table_select[1] = (drmp3_uint8)((tables >> 5) & 31);\n        gr->table_select[2] = (drmp3_uint8)((tables) & 31);\n        gr->preflag = (drmp3_uint8)(DRMP3_HDR_TEST_MPEG1(hdr) ? drmp3_bs_get_bits(bs, 1) : (gr->scalefac_compress >= 500));\n        gr->scalefac_scale = (drmp3_uint8)drmp3_bs_get_bits(bs, 1);\n        gr->count1_table = (drmp3_uint8)drmp3_bs_get_bits(bs, 1);\n        gr->scfsi = (drmp3_uint8)((scfsi >> 12) & 15);\n        scfsi <<= 4;\n        gr++;\n    } while(--gr_count);\n\n    if (part_23_sum + bs->pos > bs->limit + main_data_begin*8)\n    {\n        return -1;\n    }\n\n    return main_data_begin;\n}\n\nstatic void drmp3_L3_read_scalefactors(drmp3_uint8 *scf, drmp3_uint8 *ist_pos, const drmp3_uint8 *scf_size, const drmp3_uint8 *scf_count, drmp3_bs *bitbuf, int scfsi)\n{\n    int i, k;\n    for (i = 0; i < 4 && scf_count[i]; i++, scfsi *= 2)\n    {\n        int cnt = scf_count[i];\n        if (scfsi & 8)\n        {\n            memcpy(scf, ist_pos, cnt);\n        } else\n        {\n            int bits = scf_size[i];\n            if (!bits)\n            {\n                memset(scf, 0, cnt);\n                memset(ist_pos, 0, cnt);\n            } else\n            {\n                int max_scf = (scfsi < 0) ? (1 << bits) - 1 : -1;\n                for (k = 0; k < cnt; k++)\n                {\n                    int s = drmp3_bs_get_bits(bitbuf, bits);\n                    ist_pos[k] = (drmp3_uint8)(s == max_scf ? -1 : s);\n                    scf[k] = (drmp3_uint8)s;\n                }\n            }\n        }\n        ist_pos += cnt;\n        scf += cnt;\n    }\n    scf[0] = scf[1] = scf[2] = 0;\n}\n\nstatic float drmp3_L3_ldexp_q2(float y, int exp_q2)\n{\n    static const float g_expfrac[4] = { 9.31322575e-10f,7.83145814e-10f,6.58544508e-10f,5.53767716e-10f };\n    int e;\n    do\n    {\n        e = DRMP3_MIN(30*4, exp_q2);\n        y *= g_expfrac[e & 3]*(1 << 30 >> (e >> 2));\n    } while ((exp_q2 -= e) > 0);\n    return y;\n}\n\nstatic void drmp3_L3_decode_scalefactors(const drmp3_uint8 *hdr, drmp3_uint8 *ist_pos, drmp3_bs *bs, const drmp3_L3_gr_info *gr, float *scf, int ch)\n{\n    static const drmp3_uint8 g_scf_partitions[3][28] = {\n        { 6,5,5, 5,6,5,5,5,6,5, 7,3,11,10,0,0, 7, 7, 7,0, 6, 6,6,3, 8, 8,5,0 },\n        { 8,9,6,12,6,9,9,9,6,9,12,6,15,18,0,0, 6,15,12,0, 6,12,9,6, 6,18,9,0 },\n        { 9,9,6,12,9,9,9,9,9,9,12,6,18,18,0,0,12,12,12,0,12, 9,9,6,15,12,9,0 }\n    };\n    const drmp3_uint8 *scf_partition = g_scf_partitions[!!gr->n_short_sfb + !gr->n_long_sfb];\n    drmp3_uint8 scf_size[4], iscf[40];\n    int i, scf_shift = gr->scalefac_scale + 1, gain_exp, scfsi = gr->scfsi;\n    float gain;\n\n    if (DRMP3_HDR_TEST_MPEG1(hdr))\n    {\n        static const drmp3_uint8 g_scfc_decode[16] = { 0,1,2,3, 12,5,6,7, 9,10,11,13, 14,15,18,19 };\n        int part = g_scfc_decode[gr->scalefac_compress];\n        scf_size[1] = scf_size[0] = (drmp3_uint8)(part >> 2);\n        scf_size[3] = scf_size[2] = (drmp3_uint8)(part & 3);\n    } else\n    {\n        static const drmp3_uint8 g_mod[6*4] = { 5,5,4,4,5,5,4,1,4,3,1,1,5,6,6,1,4,4,4,1,4,3,1,1 };\n        int k, modprod, sfc, ist = DRMP3_HDR_TEST_I_STEREO(hdr) && ch;\n        sfc = gr->scalefac_compress >> ist;\n        for (k = ist*3*4; sfc >= 0; sfc -= modprod, k += 4)\n        {\n            for (modprod = 1, i = 3; i >= 0; i--)\n            {\n                scf_size[i] = (drmp3_uint8)(sfc / modprod % g_mod[k + i]);\n                modprod *= g_mod[k + i];\n            }\n        }\n        scf_partition += k;\n        scfsi = -16;\n    }\n    drmp3_L3_read_scalefactors(iscf, ist_pos, scf_size, scf_partition, bs, scfsi);\n\n    if (gr->n_short_sfb)\n    {\n        int sh = 3 - scf_shift;\n        for (i = 0; i < gr->n_short_sfb; i += 3)\n        {\n            iscf[gr->n_long_sfb + i + 0] += gr->subblock_gain[0] << sh;\n            iscf[gr->n_long_sfb + i + 1] += gr->subblock_gain[1] << sh;\n            iscf[gr->n_long_sfb + i + 2] += gr->subblock_gain[2] << sh;\n        }\n    } else if (gr->preflag)\n    {\n        static const drmp3_uint8 g_preamp[10] = { 1,1,1,1,2,2,3,3,3,2 };\n        for (i = 0; i < 10; i++)\n        {\n            iscf[11 + i] += g_preamp[i];\n        }\n    }\n\n    gain_exp = gr->global_gain + DRMP3_BITS_DEQUANTIZER_OUT*4 - 210 - (DRMP3_HDR_IS_MS_STEREO(hdr) ? 2 : 0);\n    gain = drmp3_L3_ldexp_q2(1 << (DRMP3_MAX_SCFI/4),  DRMP3_MAX_SCFI - gain_exp);\n    for (i = 0; i < (int)(gr->n_long_sfb + gr->n_short_sfb); i++)\n    {\n        scf[i] = drmp3_L3_ldexp_q2(gain, iscf[i] << scf_shift);\n    }\n}\n\nstatic const float g_drmp3_pow43[129 + 16] = {\n    0,-1,-2.519842f,-4.326749f,-6.349604f,-8.549880f,-10.902724f,-13.390518f,-16.000000f,-18.720754f,-21.544347f,-24.463781f,-27.473142f,-30.567351f,-33.741992f,-36.993181f,\n    0,1,2.519842f,4.326749f,6.349604f,8.549880f,10.902724f,13.390518f,16.000000f,18.720754f,21.544347f,24.463781f,27.473142f,30.567351f,33.741992f,36.993181f,40.317474f,43.711787f,47.173345f,50.699631f,54.288352f,57.937408f,61.644865f,65.408941f,69.227979f,73.100443f,77.024898f,81.000000f,85.024491f,89.097188f,93.216975f,97.382800f,101.593667f,105.848633f,110.146801f,114.487321f,118.869381f,123.292209f,127.755065f,132.257246f,136.798076f,141.376907f,145.993119f,150.646117f,155.335327f,160.060199f,164.820202f,169.614826f,174.443577f,179.305980f,184.201575f,189.129918f,194.090580f,199.083145f,204.107210f,209.162385f,214.248292f,219.364564f,224.510845f,229.686789f,234.892058f,240.126328f,245.389280f,250.680604f,256.000000f,261.347174f,266.721841f,272.123723f,277.552547f,283.008049f,288.489971f,293.998060f,299.532071f,305.091761f,310.676898f,316.287249f,321.922592f,327.582707f,333.267377f,338.976394f,344.709550f,350.466646f,356.247482f,362.051866f,367.879608f,373.730522f,379.604427f,385.501143f,391.420496f,397.362314f,403.326427f,409.312672f,415.320884f,421.350905f,427.402579f,433.475750f,439.570269f,445.685987f,451.822757f,457.980436f,464.158883f,470.357960f,476.577530f,482.817459f,489.077615f,495.357868f,501.658090f,507.978156f,514.317941f,520.677324f,527.056184f,533.454404f,539.871867f,546.308458f,552.764065f,559.238575f,565.731879f,572.243870f,578.774440f,585.323483f,591.890898f,598.476581f,605.080431f,611.702349f,618.342238f,625.000000f,631.675540f,638.368763f,645.079578f\n};\n\nstatic float drmp3_L3_pow_43(int x)\n{\n    float frac;\n    int sign, mult = 256;\n\n    if (x < 129)\n    {\n        return g_drmp3_pow43[16 + x];\n    }\n\n    if (x < 1024)\n    {\n        mult = 16;\n        x <<= 3;\n    }\n\n    sign = 2*x & 64;\n    frac = (float)((x & 63) - sign) / ((x & ~63) + sign);\n    return g_drmp3_pow43[16 + ((x + sign) >> 6)]*(1.f + frac*((4.f/3) + frac*(2.f/9)))*mult;\n}\n\nstatic void drmp3_L3_huffman(float *dst, drmp3_bs *bs, const drmp3_L3_gr_info *gr_info, const float *scf, int layer3gr_limit)\n{\n    static const drmp3_int16 tabs[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n        785,785,785,785,784,784,784,784,513,513,513,513,513,513,513,513,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,\n        -255,1313,1298,1282,785,785,785,785,784,784,784,784,769,769,769,769,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,290,288,\n        -255,1313,1298,1282,769,769,769,769,529,529,529,529,529,529,529,529,528,528,528,528,528,528,528,528,512,512,512,512,512,512,512,512,290,288,\n        -253,-318,-351,-367,785,785,785,785,784,784,784,784,769,769,769,769,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,819,818,547,547,275,275,275,275,561,560,515,546,289,274,288,258,\n        -254,-287,1329,1299,1314,1312,1057,1057,1042,1042,1026,1026,784,784,784,784,529,529,529,529,529,529,529,529,769,769,769,769,768,768,768,768,563,560,306,306,291,259,\n        -252,-413,-477,-542,1298,-575,1041,1041,784,784,784,784,769,769,769,769,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,-383,-399,1107,1092,1106,1061,849,849,789,789,1104,1091,773,773,1076,1075,341,340,325,309,834,804,577,577,532,532,516,516,832,818,803,816,561,561,531,531,515,546,289,289,288,258,\n        -252,-429,-493,-559,1057,1057,1042,1042,529,529,529,529,529,529,529,529,784,784,784,784,769,769,769,769,512,512,512,512,512,512,512,512,-382,1077,-415,1106,1061,1104,849,849,789,789,1091,1076,1029,1075,834,834,597,581,340,340,339,324,804,833,532,532,832,772,818,803,817,787,816,771,290,290,290,290,288,258,\n        -253,-349,-414,-447,-463,1329,1299,-479,1314,1312,1057,1057,1042,1042,1026,1026,785,785,785,785,784,784,784,784,769,769,769,769,768,768,768,768,-319,851,821,-335,836,850,805,849,341,340,325,336,533,533,579,579,564,564,773,832,578,548,563,516,321,276,306,291,304,259,\n        -251,-572,-733,-830,-863,-879,1041,1041,784,784,784,784,769,769,769,769,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,-511,-527,-543,1396,1351,1381,1366,1395,1335,1380,-559,1334,1138,1138,1063,1063,1350,1392,1031,1031,1062,1062,1364,1363,1120,1120,1333,1348,881,881,881,881,375,374,359,373,343,358,341,325,791,791,1123,1122,-703,1105,1045,-719,865,865,790,790,774,774,1104,1029,338,293,323,308,-799,-815,833,788,772,818,803,816,322,292,307,320,561,531,515,546,289,274,288,258,\n        -251,-525,-605,-685,-765,-831,-846,1298,1057,1057,1312,1282,785,785,785,785,784,784,784,784,769,769,769,769,512,512,512,512,512,512,512,512,1399,1398,1383,1367,1382,1396,1351,-511,1381,1366,1139,1139,1079,1079,1124,1124,1364,1349,1363,1333,882,882,882,882,807,807,807,807,1094,1094,1136,1136,373,341,535,535,881,775,867,822,774,-591,324,338,-671,849,550,550,866,864,609,609,293,336,534,534,789,835,773,-751,834,804,308,307,833,788,832,772,562,562,547,547,305,275,560,515,290,290,\n        -252,-397,-477,-557,-622,-653,-719,-735,-750,1329,1299,1314,1057,1057,1042,1042,1312,1282,1024,1024,785,785,785,785,784,784,784,784,769,769,769,769,-383,1127,1141,1111,1126,1140,1095,1110,869,869,883,883,1079,1109,882,882,375,374,807,868,838,881,791,-463,867,822,368,263,852,837,836,-543,610,610,550,550,352,336,534,534,865,774,851,821,850,805,593,533,579,564,773,832,578,578,548,548,577,577,307,276,306,291,516,560,259,259,\n        -250,-2107,-2507,-2764,-2909,-2974,-3007,-3023,1041,1041,1040,1040,769,769,769,769,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,-767,-1052,-1213,-1277,-1358,-1405,-1469,-1535,-1550,-1582,-1614,-1647,-1662,-1694,-1726,-1759,-1774,-1807,-1822,-1854,-1886,1565,-1919,-1935,-1951,-1967,1731,1730,1580,1717,-1983,1729,1564,-1999,1548,-2015,-2031,1715,1595,-2047,1714,-2063,1610,-2079,1609,-2095,1323,1323,1457,1457,1307,1307,1712,1547,1641,1700,1699,1594,1685,1625,1442,1442,1322,1322,-780,-973,-910,1279,1278,1277,1262,1276,1261,1275,1215,1260,1229,-959,974,974,989,989,-943,735,478,478,495,463,506,414,-1039,1003,958,1017,927,942,987,957,431,476,1272,1167,1228,-1183,1256,-1199,895,895,941,941,1242,1227,1212,1135,1014,1014,490,489,503,487,910,1013,985,925,863,894,970,955,1012,847,-1343,831,755,755,984,909,428,366,754,559,-1391,752,486,457,924,997,698,698,983,893,740,740,908,877,739,739,667,667,953,938,497,287,271,271,683,606,590,712,726,574,302,302,738,736,481,286,526,725,605,711,636,724,696,651,589,681,666,710,364,467,573,695,466,466,301,465,379,379,709,604,665,679,316,316,634,633,436,436,464,269,424,394,452,332,438,363,347,408,393,448,331,422,362,407,392,421,346,406,391,376,375,359,1441,1306,-2367,1290,-2383,1337,-2399,-2415,1426,1321,-2431,1411,1336,-2447,-2463,-2479,1169,1169,1049,1049,1424,1289,1412,1352,1319,-2495,1154,1154,1064,1064,1153,1153,416,390,360,404,403,389,344,374,373,343,358,372,327,357,342,311,356,326,1395,1394,1137,1137,1047,1047,1365,1392,1287,1379,1334,1364,1349,1378,1318,1363,792,792,792,792,1152,1152,1032,1032,1121,1121,1046,1046,1120,1120,1030,1030,-2895,1106,1061,1104,849,849,789,789,1091,1076,1029,1090,1060,1075,833,833,309,324,532,532,832,772,818,803,561,561,531,560,515,546,289,274,288,258,\n        -250,-1179,-1579,-1836,-1996,-2124,-2253,-2333,-2413,-2477,-2542,-2574,-2607,-2622,-2655,1314,1313,1298,1312,1282,785,785,785,785,1040,1040,1025,1025,768,768,768,768,-766,-798,-830,-862,-895,-911,-927,-943,-959,-975,-991,-1007,-1023,-1039,-1055,-1070,1724,1647,-1103,-1119,1631,1767,1662,1738,1708,1723,-1135,1780,1615,1779,1599,1677,1646,1778,1583,-1151,1777,1567,1737,1692,1765,1722,1707,1630,1751,1661,1764,1614,1736,1676,1763,1750,1645,1598,1721,1691,1762,1706,1582,1761,1566,-1167,1749,1629,767,766,751,765,494,494,735,764,719,749,734,763,447,447,748,718,477,506,431,491,446,476,461,505,415,430,475,445,504,399,460,489,414,503,383,474,429,459,502,502,746,752,488,398,501,473,413,472,486,271,480,270,-1439,-1455,1357,-1471,-1487,-1503,1341,1325,-1519,1489,1463,1403,1309,-1535,1372,1448,1418,1476,1356,1462,1387,-1551,1475,1340,1447,1402,1386,-1567,1068,1068,1474,1461,455,380,468,440,395,425,410,454,364,467,466,464,453,269,409,448,268,432,1371,1473,1432,1417,1308,1460,1355,1446,1459,1431,1083,1083,1401,1416,1458,1445,1067,1067,1370,1457,1051,1051,1291,1430,1385,1444,1354,1415,1400,1443,1082,1082,1173,1113,1186,1066,1185,1050,-1967,1158,1128,1172,1097,1171,1081,-1983,1157,1112,416,266,375,400,1170,1142,1127,1065,793,793,1169,1033,1156,1096,1141,1111,1155,1080,1126,1140,898,898,808,808,897,897,792,792,1095,1152,1032,1125,1110,1139,1079,1124,882,807,838,881,853,791,-2319,867,368,263,822,852,837,866,806,865,-2399,851,352,262,534,534,821,836,594,594,549,549,593,593,533,533,848,773,579,579,564,578,548,563,276,276,577,576,306,291,516,560,305,305,275,259,\n        -251,-892,-2058,-2620,-2828,-2957,-3023,-3039,1041,1041,1040,1040,769,769,769,769,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,-511,-527,-543,-559,1530,-575,-591,1528,1527,1407,1526,1391,1023,1023,1023,1023,1525,1375,1268,1268,1103,1103,1087,1087,1039,1039,1523,-604,815,815,815,815,510,495,509,479,508,463,507,447,431,505,415,399,-734,-782,1262,-815,1259,1244,-831,1258,1228,-847,-863,1196,-879,1253,987,987,748,-767,493,493,462,477,414,414,686,669,478,446,461,445,474,429,487,458,412,471,1266,1264,1009,1009,799,799,-1019,-1276,-1452,-1581,-1677,-1757,-1821,-1886,-1933,-1997,1257,1257,1483,1468,1512,1422,1497,1406,1467,1496,1421,1510,1134,1134,1225,1225,1466,1451,1374,1405,1252,1252,1358,1480,1164,1164,1251,1251,1238,1238,1389,1465,-1407,1054,1101,-1423,1207,-1439,830,830,1248,1038,1237,1117,1223,1148,1236,1208,411,426,395,410,379,269,1193,1222,1132,1235,1221,1116,976,976,1192,1162,1177,1220,1131,1191,963,963,-1647,961,780,-1663,558,558,994,993,437,408,393,407,829,978,813,797,947,-1743,721,721,377,392,844,950,828,890,706,706,812,859,796,960,948,843,934,874,571,571,-1919,690,555,689,421,346,539,539,944,779,918,873,932,842,903,888,570,570,931,917,674,674,-2575,1562,-2591,1609,-2607,1654,1322,1322,1441,1441,1696,1546,1683,1593,1669,1624,1426,1426,1321,1321,1639,1680,1425,1425,1305,1305,1545,1668,1608,1623,1667,1592,1638,1666,1320,1320,1652,1607,1409,1409,1304,1304,1288,1288,1664,1637,1395,1395,1335,1335,1622,1636,1394,1394,1319,1319,1606,1621,1392,1392,1137,1137,1137,1137,345,390,360,375,404,373,1047,-2751,-2767,-2783,1062,1121,1046,-2799,1077,-2815,1106,1061,789,789,1105,1104,263,355,310,340,325,354,352,262,339,324,1091,1076,1029,1090,1060,1075,833,833,788,788,1088,1028,818,818,803,803,561,561,531,531,816,771,546,546,289,274,288,258,\n        -253,-317,-381,-446,-478,-509,1279,1279,-811,-1179,-1451,-1756,-1900,-2028,-2189,-2253,-2333,-2414,-2445,-2511,-2526,1313,1298,-2559,1041,1041,1040,1040,1025,1025,1024,1024,1022,1007,1021,991,1020,975,1019,959,687,687,1018,1017,671,671,655,655,1016,1015,639,639,758,758,623,623,757,607,756,591,755,575,754,559,543,543,1009,783,-575,-621,-685,-749,496,-590,750,749,734,748,974,989,1003,958,988,973,1002,942,987,957,972,1001,926,986,941,971,956,1000,910,985,925,999,894,970,-1071,-1087,-1102,1390,-1135,1436,1509,1451,1374,-1151,1405,1358,1480,1420,-1167,1507,1494,1389,1342,1465,1435,1450,1326,1505,1310,1493,1373,1479,1404,1492,1464,1419,428,443,472,397,736,526,464,464,486,457,442,471,484,482,1357,1449,1434,1478,1388,1491,1341,1490,1325,1489,1463,1403,1309,1477,1372,1448,1418,1433,1476,1356,1462,1387,-1439,1475,1340,1447,1402,1474,1324,1461,1371,1473,269,448,1432,1417,1308,1460,-1711,1459,-1727,1441,1099,1099,1446,1386,1431,1401,-1743,1289,1083,1083,1160,1160,1458,1445,1067,1067,1370,1457,1307,1430,1129,1129,1098,1098,268,432,267,416,266,400,-1887,1144,1187,1082,1173,1113,1186,1066,1050,1158,1128,1143,1172,1097,1171,1081,420,391,1157,1112,1170,1142,1127,1065,1169,1049,1156,1096,1141,1111,1155,1080,1126,1154,1064,1153,1140,1095,1048,-2159,1125,1110,1137,-2175,823,823,1139,1138,807,807,384,264,368,263,868,838,853,791,867,822,852,837,866,806,865,790,-2319,851,821,836,352,262,850,805,849,-2399,533,533,835,820,336,261,578,548,563,577,532,532,832,772,562,562,547,547,305,275,560,515,290,290,288,258 };\n    static const drmp3_uint8 tab32[] = { 130,162,193,209,44,28,76,140,9,9,9,9,9,9,9,9,190,254,222,238,126,94,157,157,109,61,173,205};\n    static const drmp3_uint8 tab33[] = { 252,236,220,204,188,172,156,140,124,108,92,76,60,44,28,12 };\n    static const drmp3_int16 tabindex[2*16] = { 0,32,64,98,0,132,180,218,292,364,426,538,648,746,0,1126,1460,1460,1460,1460,1460,1460,1460,1460,1842,1842,1842,1842,1842,1842,1842,1842 };\n    static const drmp3_uint8 g_linbits[] =  { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,6,8,10,13,4,5,6,7,8,9,11,13 };\n\n#define DRMP3_PEEK_BITS(n)    (bs_cache >> (32 - n))\n#define DRMP3_FLUSH_BITS(n)   { bs_cache <<= (n); bs_sh += (n); }\n#define DRMP3_CHECK_BITS      while (bs_sh >= 0) { bs_cache |= (drmp3_uint32)*bs_next_ptr++ << bs_sh; bs_sh -= 8; }\n#define DRMP3_BSPOS           ((bs_next_ptr - bs->buf)*8 - 24 + bs_sh)\n\n    float one = 0.0f;\n    int ireg = 0, big_val_cnt = gr_info->big_values;\n    const drmp3_uint8 *sfb = gr_info->sfbtab;\n    const drmp3_uint8 *bs_next_ptr = bs->buf + bs->pos/8;\n    drmp3_uint32 bs_cache = (((bs_next_ptr[0]*256u + bs_next_ptr[1])*256u + bs_next_ptr[2])*256u + bs_next_ptr[3]) << (bs->pos & 7);\n    int pairs_to_decode, np, bs_sh = (bs->pos & 7) - 8;\n    bs_next_ptr += 4;\n\n    while (big_val_cnt > 0)\n    {\n        int tab_num = gr_info->table_select[ireg];\n        int sfb_cnt = gr_info->region_count[ireg++];\n        const drmp3_int16 *codebook = tabs + tabindex[tab_num];\n        int linbits = g_linbits[tab_num];\n        do\n        {\n            np = *sfb++ / 2;\n            pairs_to_decode = DRMP3_MIN(big_val_cnt, np);\n            one = *scf++;\n            do\n            {\n                int j, w = 5;\n                int leaf = codebook[DRMP3_PEEK_BITS(w)];\n                while (leaf < 0)\n                {\n                    DRMP3_FLUSH_BITS(w);\n                    w = leaf & 7;\n                    leaf = codebook[DRMP3_PEEK_BITS(w) - (leaf >> 3)];\n                }\n                DRMP3_FLUSH_BITS(leaf >> 8);\n\n                for (j = 0; j < 2; j++, dst++, leaf >>= 4)\n                {\n                    int lsb = leaf & 0x0F;\n                    if (lsb == 15 && linbits)\n                    {\n                        lsb += DRMP3_PEEK_BITS(linbits);\n                        DRMP3_FLUSH_BITS(linbits);\n                        DRMP3_CHECK_BITS;\n                        *dst = one*drmp3_L3_pow_43(lsb)*((int32_t)bs_cache < 0 ? -1: 1);\n                    } else\n                    {\n                        *dst = g_drmp3_pow43[16 + lsb - 16*(bs_cache >> 31)]*one;\n                    }\n                    DRMP3_FLUSH_BITS(lsb ? 1 : 0);\n                }\n                DRMP3_CHECK_BITS;\n            } while (--pairs_to_decode);\n        } while ((big_val_cnt -= np) > 0 && --sfb_cnt >= 0);\n    }\n\n    for (np = 1 - big_val_cnt;; dst += 4)\n    {\n        const drmp3_uint8 *codebook_count1 = (gr_info->count1_table) ? tab33 : tab32;\n        int leaf = codebook_count1[DRMP3_PEEK_BITS(4)];\n        if (!(leaf & 8))\n        {\n            leaf = codebook_count1[(leaf >> 3) + (bs_cache << 4 >> (32 - (leaf & 3)))];\n        }\n        DRMP3_FLUSH_BITS(leaf & 7);\n        if (DRMP3_BSPOS > layer3gr_limit)\n        {\n            break;\n        }\n#define DRMP3_RELOAD_SCALEFACTOR  if (!--np) { np = *sfb++/2; if (!np) break; one = *scf++; }\n#define DRMP3_DEQ_COUNT1(s) if (leaf & (128 >> s)) { dst[s] = ((drmp3_int32)bs_cache < 0) ? -one : one; DRMP3_FLUSH_BITS(1) }\n        DRMP3_RELOAD_SCALEFACTOR;\n        DRMP3_DEQ_COUNT1(0);\n        DRMP3_DEQ_COUNT1(1);\n        DRMP3_RELOAD_SCALEFACTOR;\n        DRMP3_DEQ_COUNT1(2);\n        DRMP3_DEQ_COUNT1(3);\n        DRMP3_CHECK_BITS;\n    }\n\n    bs->pos = layer3gr_limit;\n}\n\nstatic void drmp3_L3_midside_stereo(float *left, int n)\n{\n    int i = 0;\n    float *right = left + 576;\n#if DRMP3_HAVE_SIMD\n    if (drmp3_have_simd()) for (; i < n - 3; i += 4)\n    {\n        drmp3_f4 vl = DRMP3_VLD(left + i);\n        drmp3_f4 vr = DRMP3_VLD(right + i);\n        DRMP3_VSTORE(left + i, DRMP3_VADD(vl, vr));\n        DRMP3_VSTORE(right + i, DRMP3_VSUB(vl, vr));\n    }\n#endif\n    for (; i < n; i++)\n    {\n        float a = left[i];\n        float b = right[i];\n        left[i] = a + b;\n        right[i] = a - b;\n    }\n}\n\nstatic void drmp3_L3_intensity_stereo_band(float *left, int n, float kl, float kr)\n{\n    int i;\n    for (i = 0; i < n; i++)\n    {\n        left[i + 576] = left[i]*kr;\n        left[i] = left[i]*kl;\n    }\n}\n\nstatic void drmp3_L3_stereo_top_band(const float *right, const drmp3_uint8 *sfb, int nbands, int max_band[3])\n{\n    int i, k;\n\n    max_band[0] = max_band[1] = max_band[2] = -1;\n\n    for (i = 0; i < nbands; i++)\n    {\n        for (k = 0; k < sfb[i]; k += 2)\n        {\n            if (right[k] != 0 || right[k + 1] != 0)\n            {\n                max_band[i % 3] = i;\n                break;\n            }\n        }\n        right += sfb[i];\n    }\n}\n\nstatic void drmp3_L3_stereo_process(float *left, const drmp3_uint8 *ist_pos, const drmp3_uint8 *sfb, const drmp3_uint8 *hdr, int max_band[3], int mpeg2_sh)\n{\n    static const float g_pan[7*2] = { 0,1,0.21132487f,0.78867513f,0.36602540f,0.63397460f,0.5f,0.5f,0.63397460f,0.36602540f,0.78867513f,0.21132487f,1,0 };\n    unsigned i, max_pos = DRMP3_HDR_TEST_MPEG1(hdr) ? 7 : 64;\n\n    for (i = 0; sfb[i]; i++)\n    {\n        unsigned ipos = ist_pos[i];\n        if ((int)i > max_band[i % 3] && ipos < max_pos)\n        {\n            float kl, kr, s = DRMP3_HDR_TEST_MS_STEREO(hdr) ? 1.41421356f : 1;\n            if (DRMP3_HDR_TEST_MPEG1(hdr))\n            {\n                kl = g_pan[2*ipos];\n                kr = g_pan[2*ipos + 1];\n            } else\n            {\n                kl = 1;\n                kr = drmp3_L3_ldexp_q2(1, (ipos + 1) >> 1 << mpeg2_sh);\n                if (ipos & 1)\n                {\n                    kl = kr;\n                    kr = 1;\n                }\n            }\n            drmp3_L3_intensity_stereo_band(left, sfb[i], kl*s, kr*s);\n        } else if (DRMP3_HDR_TEST_MS_STEREO(hdr))\n        {\n            drmp3_L3_midside_stereo(left, sfb[i]);\n        }\n        left += sfb[i];\n    }\n}\n\nstatic void drmp3_L3_intensity_stereo(float *left, drmp3_uint8 *ist_pos, const drmp3_L3_gr_info *gr, const drmp3_uint8 *hdr)\n{\n    int max_band[3], n_sfb = gr->n_long_sfb + gr->n_short_sfb;\n    int i, max_blocks = gr->n_short_sfb ? 3 : 1;\n\n    drmp3_L3_stereo_top_band(left + 576, gr->sfbtab, n_sfb, max_band);\n    if (gr->n_long_sfb)\n    {\n        max_band[0] = max_band[1] = max_band[2] = DRMP3_MAX(DRMP3_MAX(max_band[0], max_band[1]), max_band[2]);\n    }\n    for (i = 0; i < max_blocks; i++)\n    {\n        int default_pos = DRMP3_HDR_TEST_MPEG1(hdr) ? 3 : 0;\n        int itop = n_sfb - max_blocks + i;\n        int prev = itop - max_blocks;\n        ist_pos[itop] = (drmp3_uint8)(max_band[i] >= prev ? default_pos : ist_pos[prev]);\n    }\n    drmp3_L3_stereo_process(left, ist_pos, gr->sfbtab, hdr, max_band, gr[1].scalefac_compress & 1);\n}\n\nstatic void drmp3_L3_reorder(float *grbuf, float *scratch, const drmp3_uint8 *sfb)\n{\n    int i, len;\n    float *src = grbuf, *dst = scratch;\n\n    for (;0 != (len = *sfb); sfb += 3, src += 2*len)\n    {\n        for (i = 0; i < len; i++, src++)\n        {\n            *dst++ = src[0*len];\n            *dst++ = src[1*len];\n            *dst++ = src[2*len];\n        }\n    }\n    memcpy(grbuf, scratch, (dst - scratch)*sizeof(float));\n}\n\nstatic void drmp3_L3_antialias(float *grbuf, int nbands)\n{\n    static const float g_aa[2][8] = {\n        {0.85749293f,0.88174200f,0.94962865f,0.98331459f,0.99551782f,0.99916056f,0.99989920f,0.99999316f},\n        {0.51449576f,0.47173197f,0.31337745f,0.18191320f,0.09457419f,0.04096558f,0.01419856f,0.00369997f}\n    };\n\n    for (; nbands > 0; nbands--, grbuf += 18)\n    {\n        int i = 0;\n#if DRMP3_HAVE_SIMD\n        if (drmp3_have_simd()) for (; i < 8; i += 4)\n        {\n            drmp3_f4 vu = DRMP3_VLD(grbuf + 18 + i);\n            drmp3_f4 vd = DRMP3_VLD(grbuf + 14 - i);\n            drmp3_f4 vc0 = DRMP3_VLD(g_aa[0] + i);\n            drmp3_f4 vc1 = DRMP3_VLD(g_aa[1] + i);\n            vd = DRMP3_VREV(vd);\n            DRMP3_VSTORE(grbuf + 18 + i, DRMP3_VSUB(DRMP3_VMUL(vu, vc0), DRMP3_VMUL(vd, vc1)));\n            vd = DRMP3_VADD(DRMP3_VMUL(vu, vc1), DRMP3_VMUL(vd, vc0));\n            DRMP3_VSTORE(grbuf + 14 - i, DRMP3_VREV(vd));\n        }\n#endif\n#ifndef DR_MP3_ONLY_SIMD\n        for(; i < 8; i++)\n        {\n            float u = grbuf[18 + i];\n            float d = grbuf[17 - i];\n            grbuf[18 + i] = u*g_aa[0][i] - d*g_aa[1][i];\n            grbuf[17 - i] = u*g_aa[1][i] + d*g_aa[0][i];\n        }\n#endif\n    }\n}\n\nstatic void drmp3_L3_dct3_9(float *y)\n{\n    float s0, s1, s2, s3, s4, s5, s6, s7, s8, t0, t2, t4;\n\n    s0 = y[0]; s2 = y[2]; s4 = y[4]; s6 = y[6]; s8 = y[8];\n    t0 = s0 + s6*0.5f;\n    s0 -= s6;\n    t4 = (s4 + s2)*0.93969262f;\n    t2 = (s8 + s2)*0.76604444f;\n    s6 = (s4 - s8)*0.17364818f;\n    s4 += s8 - s2;\n\n    s2 = s0 - s4*0.5f;\n    y[4] = s4 + s0;\n    s8 = t0 - t2 + s6;\n    s0 = t0 - t4 + t2;\n    s4 = t0 + t4 - s6;\n\n    s1 = y[1]; s3 = y[3]; s5 = y[5]; s7 = y[7];\n\n    s3 *= 0.86602540f;\n    t0 = (s5 + s1)*0.98480775f;\n    t4 = (s5 - s7)*0.34202014f;\n    t2 = (s1 + s7)*0.64278761f;\n    s1 = (s1 - s5 - s7)*0.86602540f;\n\n    s5 = t0 - s3 - t2;\n    s7 = t4 - s3 - t0;\n    s3 = t4 + s3 - t2;\n\n    y[0] = s4 - s7;\n    y[1] = s2 + s1;\n    y[2] = s0 - s3;\n    y[3] = s8 + s5;\n    y[5] = s8 - s5;\n    y[6] = s0 + s3;\n    y[7] = s2 - s1;\n    y[8] = s4 + s7;\n}\n\nstatic void drmp3_L3_imdct36(float *grbuf, float *overlap, const float *window, int nbands)\n{\n    int i, j;\n    static const float g_twid9[18] = {\n        0.73727734f,0.79335334f,0.84339145f,0.88701083f,0.92387953f,0.95371695f,0.97629601f,0.99144486f,0.99904822f,0.67559021f,0.60876143f,0.53729961f,0.46174861f,0.38268343f,0.30070580f,0.21643961f,0.13052619f,0.04361938f\n    };\n\n    for (j = 0; j < nbands; j++, grbuf += 18, overlap += 9)\n    {\n        float co[9], si[9];\n        co[0] = -grbuf[0];\n        si[0] = grbuf[17];\n        for (i = 0; i < 4; i++)\n        {\n            si[8 - 2*i] =   grbuf[4*i + 1] - grbuf[4*i + 2];\n            co[1 + 2*i] =   grbuf[4*i + 1] + grbuf[4*i + 2];\n            si[7 - 2*i] =   grbuf[4*i + 4] - grbuf[4*i + 3];\n            co[2 + 2*i] = -(grbuf[4*i + 3] + grbuf[4*i + 4]);\n        }\n        drmp3_L3_dct3_9(co);\n        drmp3_L3_dct3_9(si);\n\n        si[1] = -si[1];\n        si[3] = -si[3];\n        si[5] = -si[5];\n        si[7] = -si[7];\n\n        i = 0;\n\n#if DRMP3_HAVE_SIMD\n        if (drmp3_have_simd()) for (; i < 8; i += 4)\n        {\n            drmp3_f4 vovl = DRMP3_VLD(overlap + i);\n            drmp3_f4 vc = DRMP3_VLD(co + i);\n            drmp3_f4 vs = DRMP3_VLD(si + i);\n            drmp3_f4 vr0 = DRMP3_VLD(g_twid9 + i);\n            drmp3_f4 vr1 = DRMP3_VLD(g_twid9 + 9 + i);\n            drmp3_f4 vw0 = DRMP3_VLD(window + i);\n            drmp3_f4 vw1 = DRMP3_VLD(window + 9 + i);\n            drmp3_f4 vsum = DRMP3_VADD(DRMP3_VMUL(vc, vr1), DRMP3_VMUL(vs, vr0));\n            DRMP3_VSTORE(overlap + i, DRMP3_VSUB(DRMP3_VMUL(vc, vr0), DRMP3_VMUL(vs, vr1)));\n            DRMP3_VSTORE(grbuf + i, DRMP3_VSUB(DRMP3_VMUL(vovl, vw0), DRMP3_VMUL(vsum, vw1)));\n            vsum = DRMP3_VADD(DRMP3_VMUL(vovl, vw1), DRMP3_VMUL(vsum, vw0));\n            DRMP3_VSTORE(grbuf + 14 - i, DRMP3_VREV(vsum));\n        }\n#endif\n        for (; i < 9; i++)\n        {\n            float ovl  = overlap[i];\n            float sum  = co[i]*g_twid9[9 + i] + si[i]*g_twid9[0 + i];\n            overlap[i] = co[i]*g_twid9[0 + i] - si[i]*g_twid9[9 + i];\n            grbuf[i]      = ovl*window[0 + i] - sum*window[9 + i];\n            grbuf[17 - i] = ovl*window[9 + i] + sum*window[0 + i];\n        }\n    }\n}\n\nstatic void drmp3_L3_idct3(float x0, float x1, float x2, float *dst)\n{\n    float m1 = x1*0.86602540f;\n    float a1 = x0 - x2*0.5f;\n    dst[1] = x0 + x2;\n    dst[0] = a1 + m1;\n    dst[2] = a1 - m1;\n}\n\nstatic void drmp3_L3_imdct12(float *x, float *dst, float *overlap)\n{\n    static const float g_twid3[6] = { 0.79335334f,0.92387953f,0.99144486f, 0.60876143f,0.38268343f,0.13052619f };\n    float co[3], si[3];\n    int i;\n\n    drmp3_L3_idct3(-x[0], x[6] + x[3], x[12] + x[9], co);\n    drmp3_L3_idct3(x[15], x[12] - x[9], x[6] - x[3], si);\n    si[1] = -si[1];\n\n    for (i = 0; i < 3; i++)\n    {\n        float ovl  = overlap[i];\n        float sum  = co[i]*g_twid3[3 + i] + si[i]*g_twid3[0 + i];\n        overlap[i] = co[i]*g_twid3[0 + i] - si[i]*g_twid3[3 + i];\n        dst[i]     = ovl*g_twid3[2 - i] - sum*g_twid3[5 - i];\n        dst[5 - i] = ovl*g_twid3[5 - i] + sum*g_twid3[2 - i];\n    }\n}\n\nstatic void drmp3_L3_imdct_short(float *grbuf, float *overlap, int nbands)\n{\n    for (;nbands > 0; nbands--, overlap += 9, grbuf += 18)\n    {\n        float tmp[18];\n        memcpy(tmp, grbuf, sizeof(tmp));\n        memcpy(grbuf, overlap, 6*sizeof(float));\n        drmp3_L3_imdct12(tmp, grbuf + 6, overlap + 6);\n        drmp3_L3_imdct12(tmp + 1, grbuf + 12, overlap + 6);\n        drmp3_L3_imdct12(tmp + 2, overlap, overlap + 6);\n    }\n}\n\nstatic void drmp3_L3_change_sign(float *grbuf)\n{\n    int b, i;\n    for (b = 0, grbuf += 18; b < 32; b += 2, grbuf += 36)\n        for (i = 1; i < 18; i += 2)\n            grbuf[i] = -grbuf[i];\n}\n\nstatic void drmp3_L3_imdct_gr(float *grbuf, float *overlap, unsigned block_type, unsigned n_long_bands)\n{\n    static const float g_mdct_window[2][18] = {\n        { 0.99904822f,0.99144486f,0.97629601f,0.95371695f,0.92387953f,0.88701083f,0.84339145f,0.79335334f,0.73727734f,0.04361938f,0.13052619f,0.21643961f,0.30070580f,0.38268343f,0.46174861f,0.53729961f,0.60876143f,0.67559021f },\n        { 1,1,1,1,1,1,0.99144486f,0.92387953f,0.79335334f,0,0,0,0,0,0,0.13052619f,0.38268343f,0.60876143f }\n    };\n    if (n_long_bands)\n    {\n        drmp3_L3_imdct36(grbuf, overlap, g_mdct_window[0], n_long_bands);\n        grbuf += 18*n_long_bands;\n        overlap += 9*n_long_bands;\n    }\n    if (block_type == DRMP3_SHORT_BLOCK_TYPE)\n        drmp3_L3_imdct_short(grbuf, overlap, 32 - n_long_bands);\n    else\n        drmp3_L3_imdct36(grbuf, overlap, g_mdct_window[block_type == DRMP3_STOP_BLOCK_TYPE], 32 - n_long_bands);\n}\n\nstatic void drmp3_L3_save_reservoir(drmp3dec *h, drmp3dec_scratch *s)\n{\n    int pos = (s->bs.pos + 7)/8u;\n    int remains = s->bs.limit/8u - pos;\n    if (remains > DRMP3_MAX_BITRESERVOIR_BYTES)\n    {\n        pos += remains - DRMP3_MAX_BITRESERVOIR_BYTES;\n        remains = DRMP3_MAX_BITRESERVOIR_BYTES;\n    }\n    if (remains > 0)\n    {\n        memmove(h->reserv_buf, s->maindata + pos, remains);\n    }\n    h->reserv = remains;\n}\n\nstatic int drmp3_L3_restore_reservoir(drmp3dec *h, drmp3_bs *bs, drmp3dec_scratch *s, int main_data_begin)\n{\n    int frame_bytes = (bs->limit - bs->pos)/8;\n    int bytes_have = DRMP3_MIN(h->reserv, main_data_begin);\n    memcpy(s->maindata, h->reserv_buf + DRMP3_MAX(0, h->reserv - main_data_begin), DRMP3_MIN(h->reserv, main_data_begin));\n    memcpy(s->maindata + bytes_have, bs->buf + bs->pos/8, frame_bytes);\n    drmp3_bs_init(&s->bs, s->maindata, bytes_have + frame_bytes);\n    return h->reserv >= main_data_begin;\n}\n\nstatic void drmp3_L3_decode(drmp3dec *h, drmp3dec_scratch *s, drmp3_L3_gr_info *gr_info, int nch)\n{\n    int ch;\n\n    for (ch = 0; ch < nch; ch++)\n    {\n        int layer3gr_limit = s->bs.pos + gr_info[ch].part_23_length;\n        drmp3_L3_decode_scalefactors(h->header, s->ist_pos[ch], &s->bs, gr_info + ch, s->scf, ch);\n        drmp3_L3_huffman(s->grbuf[ch], &s->bs, gr_info + ch, s->scf, layer3gr_limit);\n    }\n\n    if (DRMP3_HDR_TEST_I_STEREO(h->header))\n    {\n        drmp3_L3_intensity_stereo(s->grbuf[0], s->ist_pos[1], gr_info, h->header);\n    } else if (DRMP3_HDR_IS_MS_STEREO(h->header))\n    {\n        drmp3_L3_midside_stereo(s->grbuf[0], 576);\n    }\n\n    for (ch = 0; ch < nch; ch++, gr_info++)\n    {\n        int aa_bands = 31;\n        int n_long_bands = (gr_info->mixed_block_flag ? 2 : 0) << (int)(DRMP3_HDR_GET_MY_SAMPLE_RATE(h->header) == 2);\n\n        if (gr_info->n_short_sfb)\n        {\n            aa_bands = n_long_bands - 1;\n            drmp3_L3_reorder(s->grbuf[ch] + n_long_bands*18, s->syn[0], gr_info->sfbtab + gr_info->n_long_sfb);\n        }\n\n        drmp3_L3_antialias(s->grbuf[ch], aa_bands);\n        drmp3_L3_imdct_gr(s->grbuf[ch], h->mdct_overlap[ch], gr_info->block_type, n_long_bands);\n        drmp3_L3_change_sign(s->grbuf[ch]);\n    }\n}\n\nstatic void drmp3d_DCT_II(float *grbuf, int n)\n{\n    static const float g_sec[24] = {\n        10.19000816f,0.50060302f,0.50241929f,3.40760851f,0.50547093f,0.52249861f,2.05778098f,0.51544732f,0.56694406f,1.48416460f,0.53104258f,0.64682180f,1.16943991f,0.55310392f,0.78815460f,0.97256821f,0.58293498f,1.06067765f,0.83934963f,0.62250412f,1.72244716f,0.74453628f,0.67480832f,5.10114861f\n    };\n    int i, k = 0;\n#if DRMP3_HAVE_SIMD\n    if (drmp3_have_simd()) for (; k < n; k += 4)\n    {\n        drmp3_f4 t[4][8], *x;\n        float *y = grbuf + k;\n\n        for (x = t[0], i = 0; i < 8; i++, x++)\n        {\n            drmp3_f4 x0 = DRMP3_VLD(&y[i*18]);\n            drmp3_f4 x1 = DRMP3_VLD(&y[(15 - i)*18]);\n            drmp3_f4 x2 = DRMP3_VLD(&y[(16 + i)*18]);\n            drmp3_f4 x3 = DRMP3_VLD(&y[(31 - i)*18]);\n            drmp3_f4 t0 = DRMP3_VADD(x0, x3);\n            drmp3_f4 t1 = DRMP3_VADD(x1, x2);\n            drmp3_f4 t2 = DRMP3_VMUL_S(DRMP3_VSUB(x1, x2), g_sec[3*i + 0]);\n            drmp3_f4 t3 = DRMP3_VMUL_S(DRMP3_VSUB(x0, x3), g_sec[3*i + 1]);\n            x[0] = DRMP3_VADD(t0, t1);\n            x[8] = DRMP3_VMUL_S(DRMP3_VSUB(t0, t1), g_sec[3*i + 2]);\n            x[16] = DRMP3_VADD(t3, t2);\n            x[24] = DRMP3_VMUL_S(DRMP3_VSUB(t3, t2), g_sec[3*i + 2]);\n        }\n        for (x = t[0], i = 0; i < 4; i++, x += 8)\n        {\n            drmp3_f4 x0 = x[0], x1 = x[1], x2 = x[2], x3 = x[3], x4 = x[4], x5 = x[5], x6 = x[6], x7 = x[7], xt;\n            xt = DRMP3_VSUB(x0, x7); x0 = DRMP3_VADD(x0, x7);\n            x7 = DRMP3_VSUB(x1, x6); x1 = DRMP3_VADD(x1, x6);\n            x6 = DRMP3_VSUB(x2, x5); x2 = DRMP3_VADD(x2, x5);\n            x5 = DRMP3_VSUB(x3, x4); x3 = DRMP3_VADD(x3, x4);\n            x4 = DRMP3_VSUB(x0, x3); x0 = DRMP3_VADD(x0, x3);\n            x3 = DRMP3_VSUB(x1, x2); x1 = DRMP3_VADD(x1, x2);\n            x[0] = DRMP3_VADD(x0, x1);\n            x[4] = DRMP3_VMUL_S(DRMP3_VSUB(x0, x1), 0.70710677f);\n            x5 = DRMP3_VADD(x5, x6);\n            x6 = DRMP3_VMUL_S(DRMP3_VADD(x6, x7), 0.70710677f);\n            x7 = DRMP3_VADD(x7, xt);\n            x3 = DRMP3_VMUL_S(DRMP3_VADD(x3, x4), 0.70710677f);\n            x5 = DRMP3_VSUB(x5, DRMP3_VMUL_S(x7, 0.198912367f)); /* rotate by PI/8 */\n            x7 = DRMP3_VADD(x7, DRMP3_VMUL_S(x5, 0.382683432f));\n            x5 = DRMP3_VSUB(x5, DRMP3_VMUL_S(x7, 0.198912367f));\n            x0 = DRMP3_VSUB(xt, x6); xt = DRMP3_VADD(xt, x6);\n            x[1] = DRMP3_VMUL_S(DRMP3_VADD(xt, x7), 0.50979561f);\n            x[2] = DRMP3_VMUL_S(DRMP3_VADD(x4, x3), 0.54119611f);\n            x[3] = DRMP3_VMUL_S(DRMP3_VSUB(x0, x5), 0.60134488f);\n            x[5] = DRMP3_VMUL_S(DRMP3_VADD(x0, x5), 0.89997619f);\n            x[6] = DRMP3_VMUL_S(DRMP3_VSUB(x4, x3), 1.30656302f);\n            x[7] = DRMP3_VMUL_S(DRMP3_VSUB(xt, x7), 2.56291556f);\n        }\n\n        if (k > n - 3)\n        {\n#if DRMP3_HAVE_SSE\n#define DRMP3_VSAVE2(i, v) _mm_storel_pi((__m64 *)(void*)&y[i*18], v)\n#else\n#define DRMP3_VSAVE2(i, v) vst1_f32((float32_t *)&y[i*18],  vget_low_f32(v))\n#endif\n            for (i = 0; i < 7; i++, y += 4*18)\n            {\n                drmp3_f4 s = DRMP3_VADD(t[3][i], t[3][i + 1]);\n                DRMP3_VSAVE2(0, t[0][i]);\n                DRMP3_VSAVE2(1, DRMP3_VADD(t[2][i], s));\n                DRMP3_VSAVE2(2, DRMP3_VADD(t[1][i], t[1][i + 1]));\n                DRMP3_VSAVE2(3, DRMP3_VADD(t[2][1 + i], s));\n            }\n            DRMP3_VSAVE2(0, t[0][7]);\n            DRMP3_VSAVE2(1, DRMP3_VADD(t[2][7], t[3][7]));\n            DRMP3_VSAVE2(2, t[1][7]);\n            DRMP3_VSAVE2(3, t[3][7]);\n        } else\n        {\n#define DRMP3_VSAVE4(i, v) DRMP3_VSTORE(&y[i*18], v)\n            for (i = 0; i < 7; i++, y += 4*18)\n            {\n                drmp3_f4 s = DRMP3_VADD(t[3][i], t[3][i + 1]);\n                DRMP3_VSAVE4(0, t[0][i]);\n                DRMP3_VSAVE4(1, DRMP3_VADD(t[2][i], s));\n                DRMP3_VSAVE4(2, DRMP3_VADD(t[1][i], t[1][i + 1]));\n                DRMP3_VSAVE4(3, DRMP3_VADD(t[2][1 + i], s));\n            }\n            DRMP3_VSAVE4(0, t[0][7]);\n            DRMP3_VSAVE4(1, DRMP3_VADD(t[2][7], t[3][7]));\n            DRMP3_VSAVE4(2, t[1][7]);\n            DRMP3_VSAVE4(3, t[3][7]);\n        }\n    } else\n#endif\n#ifdef DR_MP3_ONLY_SIMD\n    {}\n#else\n    for (; k < n; k++)\n    {\n        float t[4][8], *x, *y = grbuf + k;\n\n        for (x = t[0], i = 0; i < 8; i++, x++)\n        {\n            float x0 = y[i*18];\n            float x1 = y[(15 - i)*18];\n            float x2 = y[(16 + i)*18];\n            float x3 = y[(31 - i)*18];\n            float t0 = x0 + x3;\n            float t1 = x1 + x2;\n            float t2 = (x1 - x2)*g_sec[3*i + 0];\n            float t3 = (x0 - x3)*g_sec[3*i + 1];\n            x[0] = t0 + t1;\n            x[8] = (t0 - t1)*g_sec[3*i + 2];\n            x[16] = t3 + t2;\n            x[24] = (t3 - t2)*g_sec[3*i + 2];\n        }\n        for (x = t[0], i = 0; i < 4; i++, x += 8)\n        {\n            float x0 = x[0], x1 = x[1], x2 = x[2], x3 = x[3], x4 = x[4], x5 = x[5], x6 = x[6], x7 = x[7], xt;\n            xt = x0 - x7; x0 += x7;\n            x7 = x1 - x6; x1 += x6;\n            x6 = x2 - x5; x2 += x5;\n            x5 = x3 - x4; x3 += x4;\n            x4 = x0 - x3; x0 += x3;\n            x3 = x1 - x2; x1 += x2;\n            x[0] = x0 + x1;\n            x[4] = (x0 - x1)*0.70710677f;\n            x5 =  x5 + x6;\n            x6 = (x6 + x7)*0.70710677f;\n            x7 =  x7 + xt;\n            x3 = (x3 + x4)*0.70710677f;\n            x5 -= x7*0.198912367f;  /* rotate by PI/8 */\n            x7 += x5*0.382683432f;\n            x5 -= x7*0.198912367f;\n            x0 = xt - x6; xt += x6;\n            x[1] = (xt + x7)*0.50979561f;\n            x[2] = (x4 + x3)*0.54119611f;\n            x[3] = (x0 - x5)*0.60134488f;\n            x[5] = (x0 + x5)*0.89997619f;\n            x[6] = (x4 - x3)*1.30656302f;\n            x[7] = (xt - x7)*2.56291556f;\n\n        }\n        for (i = 0; i < 7; i++, y += 4*18)\n        {\n            y[0*18] = t[0][i];\n            y[1*18] = t[2][i] + t[3][i] + t[3][i + 1];\n            y[2*18] = t[1][i] + t[1][i + 1];\n            y[3*18] = t[2][i + 1] + t[3][i] + t[3][i + 1];\n        }\n        y[0*18] = t[0][7];\n        y[1*18] = t[2][7] + t[3][7];\n        y[2*18] = t[1][7];\n        y[3*18] = t[3][7];\n    }\n#endif\n}\n\n#ifndef DR_MP3_FLOAT_OUTPUT\ntypedef drmp3_int16 drmp3d_sample_t;\n\nstatic drmp3_int16 drmp3d_scale_pcm(float sample)\n{\n    if (sample >=  32766.5) return (drmp3_int16) 32767;\n    if (sample <= -32767.5) return (drmp3_int16)-32768;\n    drmp3_int16 s = (drmp3_int16)(sample + .5f);\n    s -= (s < 0);   /* away from zero, to be compliant */\n    return (drmp3_int16)s;\n}\n#else\ntypedef float drmp3d_sample_t;\n\nstatic float drmp3d_scale_pcm(float sample)\n{\n    return sample*(1.f/32768.f);\n}\n#endif\n\nstatic void drmp3d_synth_pair(drmp3d_sample_t *pcm, int nch, const float *z)\n{\n    float a;\n    a  = (z[14*64] - z[    0]) * 29;\n    a += (z[ 1*64] + z[13*64]) * 213;\n    a += (z[12*64] - z[ 2*64]) * 459;\n    a += (z[ 3*64] + z[11*64]) * 2037;\n    a += (z[10*64] - z[ 4*64]) * 5153;\n    a += (z[ 5*64] + z[ 9*64]) * 6574;\n    a += (z[ 8*64] - z[ 6*64]) * 37489;\n    a +=  z[ 7*64]             * 75038;\n    pcm[0] = drmp3d_scale_pcm(a);\n\n    z += 2;\n    a  = z[14*64] * 104;\n    a += z[12*64] * 1567;\n    a += z[10*64] * 9727;\n    a += z[ 8*64] * 64019;\n    a += z[ 6*64] * -9975;\n    a += z[ 4*64] * -45;\n    a += z[ 2*64] * 146;\n    a += z[ 0*64] * -5;\n    pcm[16*nch] = drmp3d_scale_pcm(a);\n}\n\nstatic void drmp3d_synth(float *xl, drmp3d_sample_t *dstl, int nch, float *lins)\n{\n    int i;\n    float *xr = xl + 576*(nch - 1);\n    drmp3d_sample_t *dstr = dstl + (nch - 1);\n\n    static const float g_win[] = {\n        -1,26,-31,208,218,401,-519,2063,2000,4788,-5517,7134,5959,35640,-39336,74992,\n        -1,24,-35,202,222,347,-581,2080,1952,4425,-5879,7640,5288,33791,-41176,74856,\n        -1,21,-38,196,225,294,-645,2087,1893,4063,-6237,8092,4561,31947,-43006,74630,\n        -1,19,-41,190,227,244,-711,2085,1822,3705,-6589,8492,3776,30112,-44821,74313,\n        -1,17,-45,183,228,197,-779,2075,1739,3351,-6935,8840,2935,28289,-46617,73908,\n        -1,16,-49,176,228,153,-848,2057,1644,3004,-7271,9139,2037,26482,-48390,73415,\n        -2,14,-53,169,227,111,-919,2032,1535,2663,-7597,9389,1082,24694,-50137,72835,\n        -2,13,-58,161,224,72,-991,2001,1414,2330,-7910,9592,70,22929,-51853,72169,\n        -2,11,-63,154,221,36,-1064,1962,1280,2006,-8209,9750,-998,21189,-53534,71420,\n        -2,10,-68,147,215,2,-1137,1919,1131,1692,-8491,9863,-2122,19478,-55178,70590,\n        -3,9,-73,139,208,-29,-1210,1870,970,1388,-8755,9935,-3300,17799,-56778,69679,\n        -3,8,-79,132,200,-57,-1283,1817,794,1095,-8998,9966,-4533,16155,-58333,68692,\n        -4,7,-85,125,189,-83,-1356,1759,605,814,-9219,9959,-5818,14548,-59838,67629,\n        -4,7,-91,117,177,-106,-1428,1698,402,545,-9416,9916,-7154,12980,-61289,66494,\n        -5,6,-97,111,163,-127,-1498,1634,185,288,-9585,9838,-8540,11455,-62684,65290\n    };\n    float *zlin = lins + 15*64;\n    const float *w = g_win;\n\n    zlin[4*15]     = xl[18*16];\n    zlin[4*15 + 1] = xr[18*16];\n    zlin[4*15 + 2] = xl[0];\n    zlin[4*15 + 3] = xr[0];\n\n    zlin[4*31]     = xl[1 + 18*16];\n    zlin[4*31 + 1] = xr[1 + 18*16];\n    zlin[4*31 + 2] = xl[1];\n    zlin[4*31 + 3] = xr[1];\n\n    drmp3d_synth_pair(dstr, nch, lins + 4*15 + 1);\n    drmp3d_synth_pair(dstr + 32*nch, nch, lins + 4*15 + 64 + 1);\n    drmp3d_synth_pair(dstl, nch, lins + 4*15);\n    drmp3d_synth_pair(dstl + 32*nch, nch, lins + 4*15 + 64);\n\n#if DRMP3_HAVE_SIMD\n    if (drmp3_have_simd()) for (i = 14; i >= 0; i--)\n    {\n#define DRMP3_VLOAD(k) drmp3_f4 w0 = DRMP3_VSET(*w++); drmp3_f4 w1 = DRMP3_VSET(*w++); drmp3_f4 vz = DRMP3_VLD(&zlin[4*i - 64*k]); drmp3_f4 vy = DRMP3_VLD(&zlin[4*i - 64*(15 - k)]);\n#define DRMP3_V0(k) { DRMP3_VLOAD(k) b =               DRMP3_VADD(DRMP3_VMUL(vz, w1), DRMP3_VMUL(vy, w0)) ; a =               DRMP3_VSUB(DRMP3_VMUL(vz, w0), DRMP3_VMUL(vy, w1));  }\n#define DRMP3_V1(k) { DRMP3_VLOAD(k) b = DRMP3_VADD(b, DRMP3_VADD(DRMP3_VMUL(vz, w1), DRMP3_VMUL(vy, w0))); a = DRMP3_VADD(a, DRMP3_VSUB(DRMP3_VMUL(vz, w0), DRMP3_VMUL(vy, w1))); }\n#define DRMP3_V2(k) { DRMP3_VLOAD(k) b = DRMP3_VADD(b, DRMP3_VADD(DRMP3_VMUL(vz, w1), DRMP3_VMUL(vy, w0))); a = DRMP3_VADD(a, DRMP3_VSUB(DRMP3_VMUL(vy, w1), DRMP3_VMUL(vz, w0))); }\n        drmp3_f4 a, b;\n        zlin[4*i]     = xl[18*(31 - i)];\n        zlin[4*i + 1] = xr[18*(31 - i)];\n        zlin[4*i + 2] = xl[1 + 18*(31 - i)];\n        zlin[4*i + 3] = xr[1 + 18*(31 - i)];\n        zlin[4*i + 64] = xl[1 + 18*(1 + i)];\n        zlin[4*i + 64 + 1] = xr[1 + 18*(1 + i)];\n        zlin[4*i - 64 + 2] = xl[18*(1 + i)];\n        zlin[4*i - 64 + 3] = xr[18*(1 + i)];\n\n        DRMP3_V0(0) DRMP3_V2(1) DRMP3_V1(2) DRMP3_V2(3) DRMP3_V1(4) DRMP3_V2(5) DRMP3_V1(6) DRMP3_V2(7)\n\n        {\n#ifndef DR_MP3_FLOAT_OUTPUT\n#if DRMP3_HAVE_SSE\n            static const drmp3_f4 g_max = { 32767.0f, 32767.0f, 32767.0f, 32767.0f };\n            static const drmp3_f4 g_min = { -32768.0f, -32768.0f, -32768.0f, -32768.0f };\n            __m128i pcm8 = _mm_packs_epi32(_mm_cvtps_epi32(_mm_max_ps(_mm_min_ps(a, g_max), g_min)),\n                                           _mm_cvtps_epi32(_mm_max_ps(_mm_min_ps(b, g_max), g_min)));\n            dstr[(15 - i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 1);\n            dstr[(17 + i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 5);\n            dstl[(15 - i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 0);\n            dstl[(17 + i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 4);\n            dstr[(47 - i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 3);\n            dstr[(49 + i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 7);\n            dstl[(47 - i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 2);\n            dstl[(49 + i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 6);\n#else\n            int16x4_t pcma, pcmb;\n            a = DRMP3_VADD(a, DRMP3_VSET(0.5f));\n            b = DRMP3_VADD(b, DRMP3_VSET(0.5f));\n            pcma = vqmovn_s32(vqaddq_s32(vcvtq_s32_f32(a), vreinterpretq_s32_u32(vcltq_f32(a, DRMP3_VSET(0)))));\n            pcmb = vqmovn_s32(vqaddq_s32(vcvtq_s32_f32(b), vreinterpretq_s32_u32(vcltq_f32(b, DRMP3_VSET(0)))));\n            vst1_lane_s16(dstr + (15 - i)*nch, pcma, 1);\n            vst1_lane_s16(dstr + (17 + i)*nch, pcmb, 1);\n            vst1_lane_s16(dstl + (15 - i)*nch, pcma, 0);\n            vst1_lane_s16(dstl + (17 + i)*nch, pcmb, 0);\n            vst1_lane_s16(dstr + (47 - i)*nch, pcma, 3);\n            vst1_lane_s16(dstr + (49 + i)*nch, pcmb, 3);\n            vst1_lane_s16(dstl + (47 - i)*nch, pcma, 2);\n            vst1_lane_s16(dstl + (49 + i)*nch, pcmb, 2);\n#endif\n#else\n            static const drmp3_f4 g_scale = { 1.0f/32768.0f, 1.0f/32768.0f, 1.0f/32768.0f, 1.0f/32768.0f };\n            a = DRMP3_VMUL(a, g_scale);\n            b = DRMP3_VMUL(b, g_scale);\n#if DRMP3_HAVE_SSE\n            _mm_store_ss(dstr + (15 - i)*nch, _mm_shuffle_ps(a, a, _MM_SHUFFLE(1, 1, 1, 1)));\n            _mm_store_ss(dstr + (17 + i)*nch, _mm_shuffle_ps(b, b, _MM_SHUFFLE(1, 1, 1, 1)));\n            _mm_store_ss(dstl + (15 - i)*nch, _mm_shuffle_ps(a, a, _MM_SHUFFLE(0, 0, 0, 0)));\n            _mm_store_ss(dstl + (17 + i)*nch, _mm_shuffle_ps(b, b, _MM_SHUFFLE(0, 0, 0, 0)));\n            _mm_store_ss(dstr + (47 - i)*nch, _mm_shuffle_ps(a, a, _MM_SHUFFLE(3, 3, 3, 3)));\n            _mm_store_ss(dstr + (49 + i)*nch, _mm_shuffle_ps(b, b, _MM_SHUFFLE(3, 3, 3, 3)));\n            _mm_store_ss(dstl + (47 - i)*nch, _mm_shuffle_ps(a, a, _MM_SHUFFLE(2, 2, 2, 2)));\n            _mm_store_ss(dstl + (49 + i)*nch, _mm_shuffle_ps(b, b, _MM_SHUFFLE(2, 2, 2, 2)));\n#else\n            vst1q_lane_f32(dstr + (15 - i)*nch, a, 1);\n            vst1q_lane_f32(dstr + (17 + i)*nch, b, 1);\n            vst1q_lane_f32(dstl + (15 - i)*nch, a, 0);\n            vst1q_lane_f32(dstl + (17 + i)*nch, b, 0);\n            vst1q_lane_f32(dstr + (47 - i)*nch, a, 3);\n            vst1q_lane_f32(dstr + (49 + i)*nch, b, 3);\n            vst1q_lane_f32(dstl + (47 - i)*nch, a, 2);\n            vst1q_lane_f32(dstl + (49 + i)*nch, b, 2);\n#endif\n#endif /* DR_MP3_FLOAT_OUTPUT */\n        }\n    } else\n#endif\n#ifdef DR_MP3_ONLY_SIMD\n    {}\n#else\n    for (i = 14; i >= 0; i--)\n    {\n#define DRMP3_LOAD(k) float w0 = *w++; float w1 = *w++; float *vz = &zlin[4*i - k*64]; float *vy = &zlin[4*i - (15 - k)*64];\n#define DRMP3_S0(k) { int j; DRMP3_LOAD(k); for (j = 0; j < 4; j++) b[j]  = vz[j]*w1 + vy[j]*w0, a[j]  = vz[j]*w0 - vy[j]*w1; }\n#define DRMP3_S1(k) { int j; DRMP3_LOAD(k); for (j = 0; j < 4; j++) b[j] += vz[j]*w1 + vy[j]*w0, a[j] += vz[j]*w0 - vy[j]*w1; }\n#define DRMP3_S2(k) { int j; DRMP3_LOAD(k); for (j = 0; j < 4; j++) b[j] += vz[j]*w1 + vy[j]*w0, a[j] += vy[j]*w1 - vz[j]*w0; }\n        float a[4], b[4];\n\n        zlin[4*i]     = xl[18*(31 - i)];\n        zlin[4*i + 1] = xr[18*(31 - i)];\n        zlin[4*i + 2] = xl[1 + 18*(31 - i)];\n        zlin[4*i + 3] = xr[1 + 18*(31 - i)];\n        zlin[4*(i + 16)]   = xl[1 + 18*(1 + i)];\n        zlin[4*(i + 16) + 1] = xr[1 + 18*(1 + i)];\n        zlin[4*(i - 16) + 2] = xl[18*(1 + i)];\n        zlin[4*(i - 16) + 3] = xr[18*(1 + i)];\n\n        DRMP3_S0(0) DRMP3_S2(1) DRMP3_S1(2) DRMP3_S2(3) DRMP3_S1(4) DRMP3_S2(5) DRMP3_S1(6) DRMP3_S2(7)\n\n        dstr[(15 - i)*nch] = drmp3d_scale_pcm(a[1]);\n        dstr[(17 + i)*nch] = drmp3d_scale_pcm(b[1]);\n        dstl[(15 - i)*nch] = drmp3d_scale_pcm(a[0]);\n        dstl[(17 + i)*nch] = drmp3d_scale_pcm(b[0]);\n        dstr[(47 - i)*nch] = drmp3d_scale_pcm(a[3]);\n        dstr[(49 + i)*nch] = drmp3d_scale_pcm(b[3]);\n        dstl[(47 - i)*nch] = drmp3d_scale_pcm(a[2]);\n        dstl[(49 + i)*nch] = drmp3d_scale_pcm(b[2]);\n    }\n#endif\n}\n\nstatic void drmp3d_synth_granule(float *qmf_state, float *grbuf, int nbands, int nch, drmp3d_sample_t *pcm, float *lins)\n{\n    int i;\n    for (i = 0; i < nch; i++)\n    {\n        drmp3d_DCT_II(grbuf + 576*i, nbands);\n    }\n\n    memcpy(lins, qmf_state, sizeof(float)*15*64);\n\n    for (i = 0; i < nbands; i += 2)\n    {\n        drmp3d_synth(grbuf + i, pcm + 32*nch*i, nch, lins + i*64);\n    }\n#ifndef DR_MP3_NONSTANDARD_BUT_LOGICAL\n    if (nch == 1)\n    {\n        for (i = 0; i < 15*64; i += 2)\n        {\n            qmf_state[i] = lins[nbands*64 + i];\n        }\n    } else\n#endif\n    {\n        memcpy(qmf_state, lins + nbands*64, sizeof(float)*15*64);\n    }\n}\n\nstatic int drmp3d_match_frame(const drmp3_uint8 *hdr, int mp3_bytes, int frame_bytes)\n{\n    int i, nmatch;\n    for (i = 0, nmatch = 0; nmatch < DRMP3_MAX_FRAME_SYNC_MATCHES; nmatch++)\n    {\n        i += drmp3_hdr_frame_bytes(hdr + i, frame_bytes) + drmp3_hdr_padding(hdr + i);\n        if (i + DRMP3_HDR_SIZE > mp3_bytes)\n            return nmatch > 0;\n        if (!drmp3_hdr_compare(hdr, hdr + i))\n            return 0;\n    }\n    return 1;\n}\n\nstatic int drmp3d_find_frame(const drmp3_uint8 *mp3, int mp3_bytes, int *free_format_bytes, int *ptr_frame_bytes)\n{\n    int i, k;\n    for (i = 0; i < mp3_bytes - DRMP3_HDR_SIZE; i++, mp3++)\n    {\n        if (drmp3_hdr_valid(mp3))\n        {\n            int frame_bytes = drmp3_hdr_frame_bytes(mp3, *free_format_bytes);\n            int frame_and_padding = frame_bytes + drmp3_hdr_padding(mp3);\n\n            for (k = DRMP3_HDR_SIZE; !frame_bytes && k < DRMP3_MAX_FREE_FORMAT_FRAME_SIZE && i + 2*k < mp3_bytes - DRMP3_HDR_SIZE; k++)\n            {\n                if (drmp3_hdr_compare(mp3, mp3 + k))\n                {\n                    int fb = k - drmp3_hdr_padding(mp3);\n                    int nextfb = fb + drmp3_hdr_padding(mp3 + k);\n                    if (i + k + nextfb + DRMP3_HDR_SIZE > mp3_bytes || !drmp3_hdr_compare(mp3, mp3 + k + nextfb))\n                        continue;\n                    frame_and_padding = k;\n                    frame_bytes = fb;\n                    *free_format_bytes = fb;\n                }\n            }\n\n            if ((frame_bytes && i + frame_and_padding <= mp3_bytes &&\n                drmp3d_match_frame(mp3, mp3_bytes - i, frame_bytes)) ||\n                (!i && frame_and_padding == mp3_bytes))\n            {\n                *ptr_frame_bytes = frame_and_padding;\n                return i;\n            }\n            *free_format_bytes = 0;\n        }\n    }\n    *ptr_frame_bytes = 0;\n    return i;\n}\n\nvoid drmp3dec_init(drmp3dec *dec)\n{\n    dec->header[0] = 0;\n}\n\nint drmp3dec_decode_frame(drmp3dec *dec, const unsigned char *mp3, int mp3_bytes, void *pcm, drmp3dec_frame_info *info)\n{\n    int i = 0, igr, frame_size = 0, success = 1;\n    const drmp3_uint8 *hdr;\n    drmp3_bs bs_frame[1];\n    drmp3dec_scratch scratch;\n\n    if (mp3_bytes > 4 && dec->header[0] == 0xff && drmp3_hdr_compare(dec->header, mp3))\n    {\n        frame_size = drmp3_hdr_frame_bytes(mp3, dec->free_format_bytes) + drmp3_hdr_padding(mp3);\n        if (frame_size != mp3_bytes && (frame_size + DRMP3_HDR_SIZE > mp3_bytes || !drmp3_hdr_compare(mp3, mp3 + frame_size)))\n        {\n            frame_size = 0;\n        }\n    }\n    if (!frame_size)\n    {\n        memset(dec, 0, sizeof(drmp3dec));\n        i = drmp3d_find_frame(mp3, mp3_bytes, &dec->free_format_bytes, &frame_size);\n        if (!frame_size || i + frame_size > mp3_bytes)\n        {\n            info->frame_bytes = i;\n            return 0;\n        }\n    }\n\n    hdr = mp3 + i;\n    memcpy(dec->header, hdr, DRMP3_HDR_SIZE);\n    info->frame_bytes = i + frame_size;\n    info->channels = DRMP3_HDR_IS_MONO(hdr) ? 1 : 2;\n    info->hz = drmp3_hdr_sample_rate_hz(hdr);\n    info->layer = 4 - DRMP3_HDR_GET_LAYER(hdr);\n    info->bitrate_kbps = drmp3_hdr_bitrate_kbps(hdr);\n\n    drmp3_bs_init(bs_frame, hdr + DRMP3_HDR_SIZE, frame_size - DRMP3_HDR_SIZE);\n    if (DRMP3_HDR_IS_CRC(hdr))\n    {\n        drmp3_bs_get_bits(bs_frame, 16);\n    }\n\n    if (info->layer == 3)\n    {\n        int main_data_begin = drmp3_L3_read_side_info(bs_frame, scratch.gr_info, hdr);\n        if (main_data_begin < 0 || bs_frame->pos > bs_frame->limit)\n        {\n            drmp3dec_init(dec);\n            return 0;\n        }\n        success = drmp3_L3_restore_reservoir(dec, bs_frame, &scratch, main_data_begin);\n        if (success && pcm != NULL)\n        {\n            for (igr = 0; igr < (DRMP3_HDR_TEST_MPEG1(hdr) ? 2 : 1); igr++, pcm = DRMP3_OFFSET_PTR(pcm, sizeof(drmp3d_sample_t)*576*info->channels))\n            {\n                memset(scratch.grbuf[0], 0, 576*2*sizeof(float));\n                drmp3_L3_decode(dec, &scratch, scratch.gr_info + igr*info->channels, info->channels);\n                drmp3d_synth_granule(dec->qmf_state, scratch.grbuf[0], 18, info->channels, (drmp3d_sample_t*)pcm, scratch.syn[0]);\n            }\n        }\n        drmp3_L3_save_reservoir(dec, &scratch);\n    } else\n    {\n#ifdef DR_MP3_ONLY_MP3\n        return 0;\n#else\n        if (pcm == NULL) {\n            return drmp3_hdr_frame_samples(hdr);\n        }\n\n        drmp3_L12_scale_info sci[1];\n        drmp3_L12_read_scale_info(hdr, bs_frame, sci);\n\n        memset(scratch.grbuf[0], 0, 576*2*sizeof(float));\n        for (i = 0, igr = 0; igr < 3; igr++)\n        {\n            if (12 == (i += drmp3_L12_dequantize_granule(scratch.grbuf[0] + i, bs_frame, sci, info->layer | 1)))\n            {\n                i = 0;\n                drmp3_L12_apply_scf_384(sci, sci->scf + igr, scratch.grbuf[0]);\n                drmp3d_synth_granule(dec->qmf_state, scratch.grbuf[0], 12, info->channels, (drmp3d_sample_t*)pcm, scratch.syn[0]);\n                memset(scratch.grbuf[0], 0, 576*2*sizeof(float));\n                pcm = DRMP3_OFFSET_PTR(pcm, sizeof(drmp3d_sample_t)*384*info->channels);\n            }\n            if (bs_frame->pos > bs_frame->limit)\n            {\n                drmp3dec_init(dec);\n                return 0;\n            }\n        }\n#endif\n    }\n\n    return success*drmp3_hdr_frame_samples(dec->header);\n}\n\nvoid drmp3dec_f32_to_s16(const float *in, drmp3_int16 *out, int num_samples)\n{\n    if(num_samples > 0)\n    {\n        int i = 0;\n#if DRMP3_HAVE_SIMD\n        int aligned_count = num_samples & ~7;\n        for(; i < aligned_count; i+=8)\n        {\n            static const drmp3_f4 g_scale = { 32768.0f, 32768.0f, 32768.0f, 32768.0f };\n            drmp3_f4 a = DRMP3_VMUL(DRMP3_VLD(&in[i  ]), g_scale);\n            drmp3_f4 b = DRMP3_VMUL(DRMP3_VLD(&in[i+4]), g_scale);\n#if DRMP3_HAVE_SSE\n            static const drmp3_f4 g_max = { 32767.0f, 32767.0f, 32767.0f, 32767.0f };\n            static const drmp3_f4 g_min = { -32768.0f, -32768.0f, -32768.0f, -32768.0f };\n            __m128i pcm8 = _mm_packs_epi32(_mm_cvtps_epi32(_mm_max_ps(_mm_min_ps(a, g_max), g_min)),\n                                           _mm_cvtps_epi32(_mm_max_ps(_mm_min_ps(b, g_max), g_min)));\n            out[i  ] = (drmp3_int16)_mm_extract_epi16(pcm8, 0);\n            out[i+1] = (drmp3_int16)_mm_extract_epi16(pcm8, 1);\n            out[i+2] = (drmp3_int16)_mm_extract_epi16(pcm8, 2);\n            out[i+3] = (drmp3_int16)_mm_extract_epi16(pcm8, 3);\n            out[i+4] = (drmp3_int16)_mm_extract_epi16(pcm8, 4);\n            out[i+5] = (drmp3_int16)_mm_extract_epi16(pcm8, 5);\n            out[i+6] = (drmp3_int16)_mm_extract_epi16(pcm8, 6);\n            out[i+7] = (drmp3_int16)_mm_extract_epi16(pcm8, 7);\n#else\n            int16x4_t pcma, pcmb;\n            a = DRMP3_VADD(a, DRMP3_VSET(0.5f));\n            b = DRMP3_VADD(b, DRMP3_VSET(0.5f));\n            pcma = vqmovn_s32(vqaddq_s32(vcvtq_s32_f32(a), vreinterpretq_s32_u32(vcltq_f32(a, DRMP3_VSET(0)))));\n            pcmb = vqmovn_s32(vqaddq_s32(vcvtq_s32_f32(b), vreinterpretq_s32_u32(vcltq_f32(b, DRMP3_VSET(0)))));\n            vst1_lane_s16(out+i  , pcma, 0);\n            vst1_lane_s16(out+i+1, pcma, 1);\n            vst1_lane_s16(out+i+2, pcma, 2);\n            vst1_lane_s16(out+i+3, pcma, 3);\n            vst1_lane_s16(out+i+4, pcmb, 0);\n            vst1_lane_s16(out+i+5, pcmb, 1);\n            vst1_lane_s16(out+i+6, pcmb, 2);\n            vst1_lane_s16(out+i+7, pcmb, 3);\n#endif\n        }\n#endif\n        for(; i < num_samples; i++)\n        {\n            float sample = in[i] * 32768.0f;\n            if (sample >=  32766.5)\n                out[i] = (drmp3_int16) 32767;\n            else if (sample <= -32767.5)\n                out[i] = (drmp3_int16)-32768;\n            else\n            {\n                short s = (drmp3_int16)(sample + .5f);\n                s -= (s < 0);   /* away from zero, to be compliant */\n                out[i] = s;\n            }\n        }\n    }\n}\n\n\n\n///////////////////////////////////////////////////////////////////////////////\n//\n// Main Public API\n//\n///////////////////////////////////////////////////////////////////////////////\n\n#if defined(SIZE_MAX)\n    #define DRMP3_SIZE_MAX  SIZE_MAX\n#else\n    #if defined(_WIN64) || defined(_LP64) || defined(__LP64__)\n        #define DRMP3_SIZE_MAX  ((drmp3_uint64)0xFFFFFFFFFFFFFFFF)\n    #else\n        #define DRMP3_SIZE_MAX  0xFFFFFFFF\n    #endif\n#endif\n\n// Options.\n#ifndef DR_MP3_DEFAULT_CHANNELS\n#define DR_MP3_DEFAULT_CHANNELS         2\n#endif\n#ifndef DR_MP3_DEFAULT_SAMPLE_RATE\n#define DR_MP3_DEFAULT_SAMPLE_RATE      44100\n#endif\n#ifndef DRMP3_SEEK_LEADING_MP3_FRAMES\n#define DRMP3_SEEK_LEADING_MP3_FRAMES   2\n#endif\n\n\n// Standard library stuff.\n#ifndef DRMP3_ASSERT\n#include <assert.h>\n#define DRMP3_ASSERT(expression)           assert(expression)\n#endif\n#ifndef DRMP3_COPY_MEMORY\n#define DRMP3_COPY_MEMORY(dst, src, sz) memcpy((dst), (src), (sz))\n#endif\n#ifndef DRMP3_ZERO_MEMORY\n#define DRMP3_ZERO_MEMORY(p, sz) memset((p), 0, (sz))\n#endif\n#define DRMP3_ZERO_OBJECT(p) DRMP3_ZERO_MEMORY((p), sizeof(*(p)))\n#ifndef DRMP3_MALLOC\n#define DRMP3_MALLOC(sz) malloc((sz))\n#endif\n#ifndef DRMP3_REALLOC\n#define DRMP3_REALLOC(p, sz) realloc((p), (sz))\n#endif\n#ifndef DRMP3_FREE\n#define DRMP3_FREE(p) free((p))\n#endif\n\n#define drmp3_assert        DRMP3_ASSERT\n#define drmp3_copy_memory   DRMP3_COPY_MEMORY\n#define drmp3_zero_memory   DRMP3_ZERO_MEMORY\n#define drmp3_zero_object   DRMP3_ZERO_OBJECT\n#define drmp3_malloc        DRMP3_MALLOC\n#define drmp3_realloc       DRMP3_REALLOC\n\n#define drmp3_countof(x)  (sizeof(x) / sizeof(x[0]))\n#define drmp3_max(x, y)   (((x) > (y)) ? (x) : (y))\n#define drmp3_min(x, y)   (((x) < (y)) ? (x) : (y))\n\n#define DRMP3_DATA_CHUNK_SIZE  16384    // The size in bytes of each chunk of data to read from the MP3 stream. minimp3 recommends 16K.\n\nstatic inline float drmp3_mix_f32(float x, float y, float a)\n{\n    return x*(1-a) + y*a;\n}\n\nstatic void drmp3_blend_f32(float* pOut, float* pInA, float* pInB, float factor, drmp3_uint32 channels)\n{\n    drmp3_uint32 i;\n    for (i = 0; i < channels; ++i) {\n        pOut[i] = drmp3_mix_f32(pInA[i], pInB[i], factor);\n    }\n}\n\nvoid drmp3_src_cache_init(drmp3_src* pSRC, drmp3_src_cache* pCache)\n{\n    drmp3_assert(pSRC != NULL);\n    drmp3_assert(pCache != NULL);\n\n    pCache->pSRC = pSRC;\n    pCache->cachedFrameCount = 0;\n    pCache->iNextFrame = 0;\n}\n\ndrmp3_uint64 drmp3_src_cache_read_frames(drmp3_src_cache* pCache, drmp3_uint64 frameCount, float* pFramesOut)\n{\n    drmp3_assert(pCache != NULL);\n    drmp3_assert(pCache->pSRC != NULL);\n    drmp3_assert(pCache->pSRC->onRead != NULL);\n    drmp3_assert(frameCount > 0);\n    drmp3_assert(pFramesOut != NULL);\n\n    drmp3_uint32 channels = pCache->pSRC->config.channels;\n\n    drmp3_uint64 totalFramesRead = 0;\n    while (frameCount > 0) {\n        // If there's anything in memory go ahead and copy that over first.\n        drmp3_uint64 framesRemainingInMemory = pCache->cachedFrameCount - pCache->iNextFrame;\n        drmp3_uint64 framesToReadFromMemory = frameCount;\n        if (framesToReadFromMemory > framesRemainingInMemory) {\n            framesToReadFromMemory = framesRemainingInMemory;\n        }\n\n        drmp3_copy_memory(pFramesOut, pCache->pCachedFrames + pCache->iNextFrame*channels, (drmp3_uint32)(framesToReadFromMemory * channels * sizeof(float)));\n        pCache->iNextFrame += (drmp3_uint32)framesToReadFromMemory;\n\n        totalFramesRead += framesToReadFromMemory;\n        frameCount -= framesToReadFromMemory;\n        if (frameCount == 0) {\n            break;\n        }\n\n\n        // At this point there are still more frames to read from the client, so we'll need to reload the cache with fresh data.\n        drmp3_assert(frameCount > 0);\n        pFramesOut += framesToReadFromMemory * channels;\n\n        pCache->iNextFrame = 0;\n        pCache->cachedFrameCount = 0;\n\n        drmp3_uint32 framesToReadFromClient = drmp3_countof(pCache->pCachedFrames) / pCache->pSRC->config.channels;\n        if (framesToReadFromClient > pCache->pSRC->config.cacheSizeInFrames) {\n            framesToReadFromClient = pCache->pSRC->config.cacheSizeInFrames;\n        }\n\n        pCache->cachedFrameCount = (drmp3_uint32)pCache->pSRC->onRead(pCache->pSRC, framesToReadFromClient, pCache->pCachedFrames, pCache->pSRC->pUserData);\n\n\n        // Get out of this loop if nothing was able to be retrieved.\n        if (pCache->cachedFrameCount == 0) {\n            break;\n        }\n    }\n\n    return totalFramesRead;\n}\n\n\ndrmp3_uint64 drmp3_src_read_frames_passthrough(drmp3_src* pSRC, drmp3_uint64 frameCount, void* pFramesOut, drmp3_bool32 flush);\ndrmp3_uint64 drmp3_src_read_frames_linear(drmp3_src* pSRC, drmp3_uint64 frameCount, void* pFramesOut, drmp3_bool32 flush);\n\ndrmp3_bool32 drmp3_src_init(const drmp3_src_config* pConfig, drmp3_src_read_proc onRead, void* pUserData, drmp3_src* pSRC)\n{\n    if (pSRC == NULL) return DRMP3_FALSE;\n    drmp3_zero_object(pSRC);\n\n    if (pConfig == NULL || onRead == NULL) return DRMP3_FALSE;\n    if (pConfig->channels == 0 || pConfig->channels > 2) return DRMP3_FALSE;\n\n    pSRC->config = *pConfig;\n    pSRC->onRead = onRead;\n    pSRC->pUserData = pUserData;\n\n    if (pSRC->config.cacheSizeInFrames > DRMP3_SRC_CACHE_SIZE_IN_FRAMES || pSRC->config.cacheSizeInFrames == 0) {\n        pSRC->config.cacheSizeInFrames = DRMP3_SRC_CACHE_SIZE_IN_FRAMES;\n    }\n\n    drmp3_src_cache_init(pSRC, &pSRC->cache);\n    return DRMP3_TRUE;\n}\n\ndrmp3_bool32 drmp3_src_set_input_sample_rate(drmp3_src* pSRC, drmp3_uint32 sampleRateIn)\n{\n    if (pSRC == NULL) return DRMP3_FALSE;\n\n    // Must have a sample rate of > 0.\n    if (sampleRateIn == 0) {\n        return DRMP3_FALSE;\n    }\n\n    pSRC->config.sampleRateIn = sampleRateIn;\n    return DRMP3_TRUE;\n}\n\ndrmp3_bool32 drmp3_src_set_output_sample_rate(drmp3_src* pSRC, drmp3_uint32 sampleRateOut)\n{\n    if (pSRC == NULL) return DRMP3_FALSE;\n\n    // Must have a sample rate of > 0.\n    if (sampleRateOut == 0) {\n        return DRMP3_FALSE;\n    }\n\n    pSRC->config.sampleRateOut = sampleRateOut;\n    return DRMP3_TRUE;\n}\n\ndrmp3_uint64 drmp3_src_read_frames_ex(drmp3_src* pSRC, drmp3_uint64 frameCount, void* pFramesOut, drmp3_bool32 flush)\n{\n    if (pSRC == NULL || frameCount == 0 || pFramesOut == NULL) return 0;\n\n    drmp3_src_algorithm algorithm = pSRC->config.algorithm;\n\n    // Always use passthrough if the sample rates are the same.\n    if (pSRC->config.sampleRateIn == pSRC->config.sampleRateOut) {\n        algorithm = drmp3_src_algorithm_none;\n    }\n\n    // Could just use a function pointer instead of a switch for this...\n    switch (algorithm)\n    {\n        case drmp3_src_algorithm_none:   return drmp3_src_read_frames_passthrough(pSRC, frameCount, pFramesOut, flush);\n        case drmp3_src_algorithm_linear: return drmp3_src_read_frames_linear(pSRC, frameCount, pFramesOut, flush);\n        default: return 0;\n    }\n}\n\ndrmp3_uint64 drmp3_src_read_frames(drmp3_src* pSRC, drmp3_uint64 frameCount, void* pFramesOut)\n{\n    return drmp3_src_read_frames_ex(pSRC, frameCount, pFramesOut, DRMP3_FALSE);\n}\n\ndrmp3_uint64 drmp3_src_read_frames_passthrough(drmp3_src* pSRC, drmp3_uint64 frameCount, void* pFramesOut, drmp3_bool32 flush)\n{\n    drmp3_assert(pSRC != NULL);\n    drmp3_assert(frameCount > 0);\n    drmp3_assert(pFramesOut != NULL);\n\n    (void)flush;    // Passthrough need not care about flushing.\n    return pSRC->onRead(pSRC, frameCount, pFramesOut, pSRC->pUserData);\n}\n\ndrmp3_uint64 drmp3_src_read_frames_linear(drmp3_src* pSRC, drmp3_uint64 frameCount, void* pFramesOut, drmp3_bool32 flush)\n{\n    drmp3_assert(pSRC != NULL);\n    drmp3_assert(frameCount > 0);\n    drmp3_assert(pFramesOut != NULL);\n\n    // For linear SRC, the bin is only 2 frames: 1 prior, 1 future.\n\n    // Load the bin if necessary.\n    if (!pSRC->algo.linear.isPrevFramesLoaded) {\n        drmp3_uint64 framesRead = drmp3_src_cache_read_frames(&pSRC->cache, 1, pSRC->bin);\n        if (framesRead == 0) {\n            return 0;\n        }\n        pSRC->algo.linear.isPrevFramesLoaded = DRMP3_TRUE;\n    }\n    if (!pSRC->algo.linear.isNextFramesLoaded) {\n        drmp3_uint64 framesRead = drmp3_src_cache_read_frames(&pSRC->cache, 1, pSRC->bin + pSRC->config.channels);\n        if (framesRead == 0) {\n            return 0;\n        }\n        pSRC->algo.linear.isNextFramesLoaded = DRMP3_TRUE;\n    }\n\n    double factor = (double)pSRC->config.sampleRateIn / pSRC->config.sampleRateOut;\n\n    drmp3_uint64 totalFramesRead = 0;\n    while (frameCount > 0) {\n        // The bin is where the previous and next frames are located.\n        float* pPrevFrame = pSRC->bin;\n        float* pNextFrame = pSRC->bin + pSRC->config.channels;\n\n        drmp3_blend_f32((float*)pFramesOut, pPrevFrame, pNextFrame, (float)pSRC->algo.linear.alpha, pSRC->config.channels);\n\n        pSRC->algo.linear.alpha += factor;\n\n        // The new alpha value is how we determine whether or not we need to read fresh frames.\n        drmp3_uint32 framesToReadFromClient = (drmp3_uint32)pSRC->algo.linear.alpha;\n        pSRC->algo.linear.alpha = pSRC->algo.linear.alpha - framesToReadFromClient;\n\n        drmp3_uint32 i;\n        for (i = 0; i < framesToReadFromClient; ++i) {\n            drmp3_uint32 j;\n            for (j = 0; j < pSRC->config.channels; ++j) {\n                pPrevFrame[j] = pNextFrame[j];\n            }\n\n            drmp3_uint64 framesRead = drmp3_src_cache_read_frames(&pSRC->cache, 1, pNextFrame);\n            if (framesRead == 0) {\n                drmp3_uint32 j;\n                for (j = 0; j < pSRC->config.channels; ++j) {\n                    pNextFrame[j] = 0;\n                }\n\n                if (pSRC->algo.linear.isNextFramesLoaded) {\n                    pSRC->algo.linear.isNextFramesLoaded = DRMP3_FALSE;\n                } else {\n                    if (flush) {\n                        pSRC->algo.linear.isPrevFramesLoaded = DRMP3_FALSE;\n                    }\n                }\n\n                break;\n            }\n        }\n\n        pFramesOut  = (drmp3_uint8*)pFramesOut + (1 * pSRC->config.channels * sizeof(float));\n        frameCount -= 1;\n        totalFramesRead += 1;\n\n        // If there's no frames available we need to get out of this loop.\n        if (!pSRC->algo.linear.isNextFramesLoaded && (!flush || !pSRC->algo.linear.isPrevFramesLoaded)) {\n            break;\n        }\n    }\n\n    return totalFramesRead;\n}\n\n\nstatic size_t drmp3__on_read(drmp3* pMP3, void* pBufferOut, size_t bytesToRead)\n{\n    size_t bytesRead = pMP3->onRead(pMP3->pUserData, pBufferOut, bytesToRead);\n    pMP3->streamCursor += bytesRead;\n    return bytesRead;\n}\n\nstatic drmp3_bool32 drmp3__on_seek(drmp3* pMP3, int offset, drmp3_seek_origin origin)\n{\n    drmp3_assert(offset >= 0);\n\n    if (!pMP3->onSeek(pMP3->pUserData, offset, origin)) {\n        return DRMP3_FALSE;\n    }\n\n    if (origin == drmp3_seek_origin_start) {\n        pMP3->streamCursor = (drmp3_uint64)offset;\n    } else {\n        pMP3->streamCursor += offset;\n    }\n\n    return DRMP3_TRUE;\n}\n\nstatic drmp3_bool32 drmp3__on_seek_64(drmp3* pMP3, drmp3_uint64 offset, drmp3_seek_origin origin)\n{\n    if (offset <= 0x7FFFFFFF) {\n        return drmp3__on_seek(pMP3, (int)offset, origin);\n    }\n\n\n    // Getting here \"offset\" is too large for a 32-bit integer. We just keep seeking forward until we hit the offset.\n    if (!drmp3__on_seek(pMP3, 0x7FFFFFFF, drmp3_seek_origin_start)) {\n        return DRMP3_FALSE;\n    }\n\n    offset -= 0x7FFFFFFF;\n    while (offset > 0) {\n        if (offset <= 0x7FFFFFFF) {\n            if (!drmp3__on_seek(pMP3, (int)offset, drmp3_seek_origin_current)) {\n                return DRMP3_FALSE;\n            }\n            offset = 0;\n        } else {\n            if (!drmp3__on_seek(pMP3, 0x7FFFFFFF, drmp3_seek_origin_current)) {\n                return DRMP3_FALSE;\n            }\n            offset -= 0x7FFFFFFF;\n        }\n    }\n\n    return DRMP3_TRUE;\n}\n\n\n\n\nstatic drmp3_uint32 drmp3_decode_next_frame_ex(drmp3* pMP3, drmp3d_sample_t* pPCMFrames, drmp3_bool32 discard)\n{\n    drmp3_assert(pMP3 != NULL);\n    drmp3_assert(pMP3->onRead != NULL);\n\n    if (pMP3->atEnd) {\n        return 0;\n    }\n\n    drmp3_uint32 pcmFramesRead = 0;\n    do {\n        // minimp3 recommends doing data submission in 16K chunks. If we don't have at least 16K bytes available, get more.\n        if (pMP3->dataSize < DRMP3_DATA_CHUNK_SIZE) {\n            if (pMP3->dataCapacity < DRMP3_DATA_CHUNK_SIZE) {\n                pMP3->dataCapacity = DRMP3_DATA_CHUNK_SIZE;\n                drmp3_uint8* pNewData = (drmp3_uint8*)drmp3_realloc(pMP3->pData, pMP3->dataCapacity);\n                if (pNewData == NULL) {\n                    return 0; // Out of memory.\n                }\n\n                pMP3->pData = pNewData;\n            }\n\n            size_t bytesRead = drmp3__on_read(pMP3, pMP3->pData + pMP3->dataSize, (pMP3->dataCapacity - pMP3->dataSize));\n            if (bytesRead == 0) {\n                if (pMP3->dataSize == 0) {\n                    pMP3->atEnd = DRMP3_TRUE;\n                    return 0; // No data.\n                }\n            }\n\n            pMP3->dataSize += bytesRead;\n        }\n\n        if (pMP3->dataSize > INT_MAX) {\n            pMP3->atEnd = DRMP3_TRUE;\n            return 0; // File too big.\n        }\n\n        drmp3dec_frame_info info;\n        pcmFramesRead = drmp3dec_decode_frame(&pMP3->decoder, pMP3->pData, (int)pMP3->dataSize, pPCMFrames, &info);    // <-- Safe size_t -> int conversion thanks to the check above.\n        \n        // Consume the data.\n        size_t leftoverDataSize = (pMP3->dataSize - (size_t)info.frame_bytes);\n        if (info.frame_bytes > 0) {\n            memmove(pMP3->pData, pMP3->pData + info.frame_bytes, leftoverDataSize);\n            pMP3->dataSize = leftoverDataSize;\n        }\n\n        // pcmFramesRead will be equal to 0 if decoding failed. If it is zero and info.frame_bytes > 0 then we have successfully\n        // decoded the frame. A special case is if we are wanting to discard the frame, in which case we return successfully.\n        if (pcmFramesRead > 0 || (info.frame_bytes > 0 && discard)) {\n            pcmFramesRead = drmp3_hdr_frame_samples(pMP3->decoder.header);\n            pMP3->pcmFramesConsumedInMP3Frame = 0;\n            pMP3->pcmFramesRemainingInMP3Frame = pcmFramesRead;\n            pMP3->mp3FrameChannels = info.channels;\n            pMP3->mp3FrameSampleRate = info.hz;\n            drmp3_src_set_input_sample_rate(&pMP3->src, pMP3->mp3FrameSampleRate);\n            break;\n        } else if (info.frame_bytes == 0) {\n            // Need more data. minimp3 recommends doing data submission in 16K chunks.\n            if (pMP3->dataCapacity == pMP3->dataSize) {\n                // No room. Expand.\n                pMP3->dataCapacity += DRMP3_DATA_CHUNK_SIZE;\n                drmp3_uint8* pNewData = (drmp3_uint8*)drmp3_realloc(pMP3->pData, pMP3->dataCapacity);\n                if (pNewData == NULL) {\n                    return 0; // Out of memory.\n                }\n\n                pMP3->pData = pNewData;\n            }\n\n            // Fill in a chunk.\n            size_t bytesRead = drmp3__on_read(pMP3, pMP3->pData + pMP3->dataSize, (pMP3->dataCapacity - pMP3->dataSize));\n            if (bytesRead == 0) {\n                pMP3->atEnd = DRMP3_TRUE;\n                return 0; // Error reading more data.\n            }\n\n            pMP3->dataSize += bytesRead;\n        }\n    } while (DRMP3_TRUE);\n\n    return pcmFramesRead;\n}\n\nstatic drmp3_uint32 drmp3_decode_next_frame(drmp3* pMP3)\n{\n    drmp3_assert(pMP3 != NULL);\n    return drmp3_decode_next_frame_ex(pMP3, (drmp3d_sample_t*)pMP3->pcmFrames, DRMP3_FALSE);\n}\n\n#if 0\nstatic drmp3_uint32 drmp3_seek_next_frame(drmp3* pMP3)\n{\n    drmp3_assert(pMP3 != NULL);\n\n    drmp3_uint32 pcmFrameCount = drmp3_decode_next_frame_ex(pMP3, NULL);\n    if (pcmFrameCount == 0) {\n        return 0;\n    }\n\n    // We have essentially just skipped past the frame, so just set the remaining samples to 0.\n    pMP3->currentPCMFrame             += pcmFrameCount;\n    pMP3->pcmFramesConsumedInMP3Frame  = pcmFrameCount;\n    pMP3->pcmFramesRemainingInMP3Frame = 0;\n\n    return pcmFrameCount;\n}\n#endif\n\nstatic drmp3_uint64 drmp3_read_src(drmp3_src* pSRC, drmp3_uint64 frameCount, void* pFramesOut, void* pUserData)\n{\n    drmp3* pMP3 = (drmp3*)pUserData;\n    drmp3_assert(pMP3 != NULL);\n    drmp3_assert(pMP3->onRead != NULL);\n\n    float* pFramesOutF = (float*)pFramesOut;\n    drmp3_uint64 totalFramesRead = 0;\n\n    while (frameCount > 0) {\n        // Read from the in-memory buffer first.\n        while (pMP3->pcmFramesRemainingInMP3Frame > 0 && frameCount > 0) {\n            drmp3d_sample_t* frames = (drmp3d_sample_t*)pMP3->pcmFrames;\n#ifndef DR_MP3_FLOAT_OUTPUT\n            if (pMP3->mp3FrameChannels == 1) {\n                if (pMP3->channels == 1) {\n                    // Mono -> Mono.\n                    pFramesOutF[0] = frames[pMP3->pcmFramesConsumedInMP3Frame] / 32768.0f;\n                } else {\n                    // Mono -> Stereo.\n                    pFramesOutF[0] = frames[pMP3->pcmFramesConsumedInMP3Frame] / 32768.0f;\n                    pFramesOutF[1] = frames[pMP3->pcmFramesConsumedInMP3Frame] / 32768.0f;\n                }\n            } else {\n                if (pMP3->channels == 1) {\n                    // Stereo -> Mono\n                    float sample = 0;\n                    sample += frames[(pMP3->pcmFramesConsumedInMP3Frame*pMP3->mp3FrameChannels)+0] / 32768.0f;\n                    sample += frames[(pMP3->pcmFramesConsumedInMP3Frame*pMP3->mp3FrameChannels)+1] / 32768.0f;\n                    pFramesOutF[0] = sample * 0.5f;\n                } else {\n                    // Stereo -> Stereo\n                    pFramesOutF[0] = frames[(pMP3->pcmFramesConsumedInMP3Frame*pMP3->mp3FrameChannels)+0] / 32768.0f;\n                    pFramesOutF[1] = frames[(pMP3->pcmFramesConsumedInMP3Frame*pMP3->mp3FrameChannels)+1] / 32768.0f;\n                }\n            }\n#else\n            if (pMP3->mp3FrameChannels == 1) {\n                if (pMP3->channels == 1) {\n                    // Mono -> Mono.\n                    pFramesOutF[0] = frames[pMP3->pcmFramesConsumedInMP3Frame];\n                } else {\n                    // Mono -> Stereo.\n                    pFramesOutF[0] = frames[pMP3->pcmFramesConsumedInMP3Frame];\n                    pFramesOutF[1] = frames[pMP3->pcmFramesConsumedInMP3Frame];\n                }\n            } else {\n                if (pMP3->channels == 1) {\n                    // Stereo -> Mono\n                    float sample = 0;\n                    sample += frames[(pMP3->pcmFramesConsumedInMP3Frame*pMP3->mp3FrameChannels)+0];\n                    sample += frames[(pMP3->pcmFramesConsumedInMP3Frame*pMP3->mp3FrameChannels)+1];\n                    pFramesOutF[0] = sample * 0.5f;\n                } else {\n                    // Stereo -> Stereo\n                    pFramesOutF[0] = frames[(pMP3->pcmFramesConsumedInMP3Frame*pMP3->mp3FrameChannels)+0];\n                    pFramesOutF[1] = frames[(pMP3->pcmFramesConsumedInMP3Frame*pMP3->mp3FrameChannels)+1];\n                }\n            }\n#endif\n\n            pMP3->pcmFramesConsumedInMP3Frame += 1;\n            pMP3->pcmFramesRemainingInMP3Frame -= 1;\n            totalFramesRead += 1;\n            frameCount -= 1;\n            pFramesOutF += pSRC->config.channels;\n        }\n\n        if (frameCount == 0) {\n            break;\n        }\n\n        drmp3_assert(pMP3->pcmFramesRemainingInMP3Frame == 0);\n\n        // At this point we have exhausted our in-memory buffer so we need to re-fill. Note that the sample rate may have changed\n        // at this point which means we'll also need to update our sample rate conversion pipeline.\n        if (drmp3_decode_next_frame(pMP3) == 0) {\n            break;\n        }\n    }\n\n    return totalFramesRead;\n}\n\ndrmp3_bool32 drmp3_init_internal(drmp3* pMP3, drmp3_read_proc onRead, drmp3_seek_proc onSeek, void* pUserData, const drmp3_config* pConfig)\n{\n    drmp3_assert(pMP3 != NULL);\n    drmp3_assert(onRead != NULL);\n\n    // This function assumes the output object has already been reset to 0. Do not do that here, otherwise things will break.\n    drmp3dec_init(&pMP3->decoder);\n\n    // The config can be null in which case we use defaults.\n    drmp3_config config;\n    if (pConfig != NULL) {\n        config = *pConfig;\n    } else {\n        drmp3_zero_object(&config);\n    }\n\n    pMP3->channels = config.outputChannels;\n    if (pMP3->channels == 0) {\n        pMP3->channels = DR_MP3_DEFAULT_CHANNELS;\n    }\n\n    // Cannot have more than 2 channels.\n    if (pMP3->channels > 2) {\n        pMP3->channels = 2;\n    }\n\n    pMP3->sampleRate = config.outputSampleRate;\n    if (pMP3->sampleRate == 0) {\n        pMP3->sampleRate = DR_MP3_DEFAULT_SAMPLE_RATE;\n    }\n\n    pMP3->onRead = onRead;\n    pMP3->onSeek = onSeek;\n    pMP3->pUserData = pUserData;\n\n    // We need a sample rate converter for converting the sample rate from the MP3 frames to the requested output sample rate.\n    drmp3_src_config srcConfig;\n    drmp3_zero_object(&srcConfig);\n    srcConfig.sampleRateIn = DR_MP3_DEFAULT_SAMPLE_RATE;\n    srcConfig.sampleRateOut = pMP3->sampleRate;\n    srcConfig.channels = pMP3->channels;\n    srcConfig.algorithm = drmp3_src_algorithm_linear;\n    if (!drmp3_src_init(&srcConfig, drmp3_read_src, pMP3, &pMP3->src)) {\n        drmp3_uninit(pMP3);\n        return DRMP3_FALSE;\n    }\n    \n    // Decode the first frame to confirm that it is indeed a valid MP3 stream.\n    if (!drmp3_decode_next_frame(pMP3)) {\n        drmp3_uninit(pMP3);\n        return DRMP3_FALSE; // Not a valid MP3 stream.\n    }\n\n    return DRMP3_TRUE;\n}\n\ndrmp3_bool32 drmp3_init(drmp3* pMP3, drmp3_read_proc onRead, drmp3_seek_proc onSeek, void* pUserData, const drmp3_config* pConfig)\n{\n    if (pMP3 == NULL || onRead == NULL) {\n        return DRMP3_FALSE;\n    }\n\n    drmp3_zero_object(pMP3);\n    return drmp3_init_internal(pMP3, onRead, onSeek, pUserData, pConfig);\n}\n\n\nstatic size_t drmp3__on_read_memory(void* pUserData, void* pBufferOut, size_t bytesToRead)\n{\n    drmp3* pMP3 = (drmp3*)pUserData;\n    drmp3_assert(pMP3 != NULL);\n    drmp3_assert(pMP3->memory.dataSize >= pMP3->memory.currentReadPos);\n\n    size_t bytesRemaining = pMP3->memory.dataSize - pMP3->memory.currentReadPos;\n    if (bytesToRead > bytesRemaining) {\n        bytesToRead = bytesRemaining;\n    }\n\n    if (bytesToRead > 0) {\n        drmp3_copy_memory(pBufferOut, pMP3->memory.pData + pMP3->memory.currentReadPos, bytesToRead);\n        pMP3->memory.currentReadPos += bytesToRead;\n    }\n\n    return bytesToRead;\n}\n\nstatic drmp3_bool32 drmp3__on_seek_memory(void* pUserData, int byteOffset, drmp3_seek_origin origin)\n{\n    drmp3* pMP3 = (drmp3*)pUserData;\n    drmp3_assert(pMP3 != NULL);\n\n    if (origin == drmp3_seek_origin_current) {\n        if (byteOffset > 0) {\n            if (pMP3->memory.currentReadPos + byteOffset > pMP3->memory.dataSize) {\n                byteOffset = (int)(pMP3->memory.dataSize - pMP3->memory.currentReadPos);  // Trying to seek too far forward.\n            }\n        } else {\n            if (pMP3->memory.currentReadPos < (size_t)-byteOffset) {\n                byteOffset = -(int)pMP3->memory.currentReadPos;  // Trying to seek too far backwards.\n            }\n        }\n\n        // This will never underflow thanks to the clamps above.\n        pMP3->memory.currentReadPos += byteOffset;\n    } else {\n        if ((drmp3_uint32)byteOffset <= pMP3->memory.dataSize) {\n            pMP3->memory.currentReadPos = byteOffset;\n        } else {\n            pMP3->memory.currentReadPos = pMP3->memory.dataSize;  // Trying to seek too far forward.\n        }\n    }\n\n    return DRMP3_TRUE;\n}\n\ndrmp3_bool32 drmp3_init_memory(drmp3* pMP3, const void* pData, size_t dataSize, const drmp3_config* pConfig)\n{\n    if (pMP3 == NULL) {\n        return DRMP3_FALSE;\n    }\n\n    drmp3_zero_object(pMP3);\n\n    if (pData == NULL || dataSize == 0) {\n        return DRMP3_FALSE;\n    }\n\n    pMP3->memory.pData = (const drmp3_uint8*)pData;\n    pMP3->memory.dataSize = dataSize;\n    pMP3->memory.currentReadPos = 0;\n\n    return drmp3_init_internal(pMP3, drmp3__on_read_memory, drmp3__on_seek_memory, pMP3, pConfig);\n}\n\n\n#ifndef DR_MP3_NO_STDIO\n#include <stdio.h>\n\nstatic size_t drmp3__on_read_stdio(void* pUserData, void* pBufferOut, size_t bytesToRead)\n{\n    return fread(pBufferOut, 1, bytesToRead, (FILE*)pUserData);\n}\n\nstatic drmp3_bool32 drmp3__on_seek_stdio(void* pUserData, int offset, drmp3_seek_origin origin)\n{\n    return fseek((FILE*)pUserData, offset, (origin == drmp3_seek_origin_current) ? SEEK_CUR : SEEK_SET) == 0;\n}\n\ndrmp3_bool32 drmp3_init_file(drmp3* pMP3, const char* filePath, const drmp3_config* pConfig)\n{\n    FILE* pFile;\n\n#if defined(_MSC_VER) && _MSC_VER >= 1400\n    if (fopen_s(&pFile, filePath, \"rb\") != 0) {\n        return DRMP3_FALSE;\n    }\n#elif defined(_WIN32)\n    WCHAR wfp[MAX_PATH];\n    MultiByteToWideChar(CP_UTF8, 0, filePath, -1, wfp, MAX_PATH);\n    pFile = _wfopen(wfp, L\"rb\");\n    if (pFile == NULL) {\n        return DRMP3_FALSE;\n    }\n#else\n    pFile = fopen(filePath, \"rb\");\n    if (pFile == NULL) {\n        return DRMP3_FALSE;\n    }\n#endif\n\n    return drmp3_init(pMP3, drmp3__on_read_stdio, drmp3__on_seek_stdio, (void*)pFile, pConfig);\n}\n#endif\n\nvoid drmp3_uninit(drmp3* pMP3)\n{\n    if (pMP3 == NULL) {\n        return;\n    }\n    \n#ifndef DR_MP3_NO_STDIO\n    if (pMP3->onRead == drmp3__on_read_stdio) {\n        fclose((FILE*)pMP3->pUserData);\n    }\n#endif\n\n    drmp3_free(pMP3->pData);\n}\n\ndrmp3_uint64 drmp3_read_pcm_frames_f32(drmp3* pMP3, drmp3_uint64 framesToRead, float* pBufferOut)\n{\n    if (pMP3 == NULL || pMP3->onRead == NULL) {\n        return 0;\n    }\n\n    drmp3_uint64 totalFramesRead = 0;\n\n    if (pBufferOut == NULL) {\n        float temp[4096];\n        while (framesToRead > 0) {\n            drmp3_uint64 framesToReadRightNow = sizeof(temp)/sizeof(temp[0]) / pMP3->channels;\n            if (framesToReadRightNow > framesToRead) {\n                framesToReadRightNow = framesToRead;\n            }\n\n            drmp3_uint64 framesJustRead = drmp3_read_pcm_frames_f32(pMP3, framesToReadRightNow, temp);\n            if (framesJustRead == 0) {\n                break;\n            }\n\n            framesToRead -= framesJustRead;\n            totalFramesRead += framesJustRead;\n        }\n    } else {\n        totalFramesRead = drmp3_src_read_frames_ex(&pMP3->src, framesToRead, pBufferOut, DRMP3_TRUE);\n        pMP3->currentPCMFrame += totalFramesRead;\n    }\n\n    return totalFramesRead;\n}\n\nvoid drmp3_reset(drmp3* pMP3)\n{\n    drmp3_assert(pMP3 != NULL);\n\n    pMP3->pcmFramesConsumedInMP3Frame = 0;\n    pMP3->pcmFramesRemainingInMP3Frame = 0;\n    pMP3->currentPCMFrame = 0;\n    pMP3->dataSize = 0;\n    pMP3->atEnd = DRMP3_FALSE;\n    pMP3->src.bin[0] = 0;\n    pMP3->src.bin[1] = 0;\n    pMP3->src.bin[2] = 0;\n    pMP3->src.bin[3] = 0;\n    pMP3->src.cache.cachedFrameCount = 0;\n    pMP3->src.cache.iNextFrame = 0;\n    pMP3->src.algo.linear.alpha = 0;\n    pMP3->src.algo.linear.isNextFramesLoaded = 0;\n    pMP3->src.algo.linear.isPrevFramesLoaded = 0;\n    //drmp3_zero_object(&pMP3->decoder);\n    drmp3dec_init(&pMP3->decoder);\n}\n\ndrmp3_bool32 drmp3_seek_to_start_of_stream(drmp3* pMP3)\n{\n    drmp3_assert(pMP3 != NULL);\n    drmp3_assert(pMP3->onSeek != NULL);\n\n    // Seek to the start of the stream to begin with.\n    if (!drmp3__on_seek(pMP3, 0, drmp3_seek_origin_start)) {\n        return DRMP3_FALSE;\n    }\n\n    // Clear any cached data.\n    drmp3_reset(pMP3);\n    return DRMP3_TRUE;\n}\n\nfloat drmp3_get_cached_pcm_frame_count_from_src(drmp3* pMP3)\n{\n    return (pMP3->src.cache.cachedFrameCount - pMP3->src.cache.iNextFrame) + (float)pMP3->src.algo.linear.alpha;\n}\n\nfloat drmp3_get_pcm_frames_remaining_in_mp3_frame(drmp3* pMP3)\n{\n    float factor = (float)pMP3->src.config.sampleRateOut / (float)pMP3->src.config.sampleRateIn;\n    float frameCountPreSRC = drmp3_get_cached_pcm_frame_count_from_src(pMP3) + pMP3->pcmFramesRemainingInMP3Frame;\n    return frameCountPreSRC * factor;\n}\n\n// NOTE ON SEEKING\n// ===============\n// The seeking code below is a complete mess and is broken for cases when the sample rate changes. The problem\n// is with the resampling and the crappy resampler used by dr_mp3. What needs to happen is the following:\n//\n// 1) The resampler needs to be replaced.\n// 2) The resampler has state which needs to be updated whenever an MP3 frame is decoded outside of\n//    drmp3_read_pcm_frames_f32(). The resampler needs an API to \"flush\" some imaginary input so that it's\n//    state is updated accordingly.\n\ndrmp3_bool32 drmp3_seek_forward_by_pcm_frames__brute_force(drmp3* pMP3, drmp3_uint64 frameOffset)\n{\n#if 0\n    // MP3 is a bit annoying when it comes to seeking because of the bit reservoir. It basically means that an MP3 frame can possibly\n    // depend on some of the data of prior frames. This means it's not as simple as seeking to the first byte of the MP3 frame that\n    // contains the sample because that MP3 frame will need the data from the previous MP3 frame (which we just seeked past!). To\n    // resolve this we seek past a number of MP3 frames up to a point, and then read-and-discard the remainder.\n    drmp3_uint64 maxFramesToReadAndDiscard = (drmp3_uint64)(DRMP3_MAX_PCM_FRAMES_PER_MP3_FRAME * 3 * ((float)pMP3->src.config.sampleRateOut / (float)pMP3->src.config.sampleRateIn));\n\n    // Now get rid of leading whole frames.\n    while (frameOffset > maxFramesToReadAndDiscard) {\n        float        pcmFramesRemainingInCurrentMP3FrameF = drmp3_get_pcm_frames_remaining_in_mp3_frame(pMP3);\n        drmp3_uint32 pcmFramesRemainingInCurrentMP3Frame  = (drmp3_uint32)pcmFramesRemainingInCurrentMP3FrameF;\n        if (frameOffset > pcmFramesRemainingInCurrentMP3Frame) {\n            frameOffset                       -= pcmFramesRemainingInCurrentMP3Frame;\n            pMP3->currentPCMFrame             += pcmFramesRemainingInCurrentMP3Frame;\n            pMP3->pcmFramesConsumedInMP3Frame += pMP3->pcmFramesRemainingInMP3Frame;\n            pMP3->pcmFramesRemainingInMP3Frame = 0;\n        } else {\n            break;\n        }\n\n        drmp3_uint32 pcmFrameCount = drmp3_decode_next_frame_ex(pMP3, pMP3->pcmFrames, DRMP3_FALSE);\n        if (pcmFrameCount == 0) {\n            break;\n        }\n    }\n\n    // The last step is to read-and-discard any remaining PCM frames to make it sample-exact.\n    drmp3_uint64 framesRead = drmp3_read_pcm_frames_f32(pMP3, frameOffset, NULL);\n    if (framesRead != frameOffset) {\n        return DRMP3_FALSE;\n    }\n#else\n    // Just using a dumb read-and-discard for now pending updates to the resampler.\n    drmp3_uint64 framesRead = drmp3_read_pcm_frames_f32(pMP3, frameOffset, NULL);\n    if (framesRead != frameOffset) {\n        return DRMP3_FALSE;\n    }\n#endif\n\n    return DRMP3_TRUE;\n}\n\ndrmp3_bool32 drmp3_seek_to_pcm_frame__brute_force(drmp3* pMP3, drmp3_uint64 frameIndex)\n{\n    drmp3_assert(pMP3 != NULL);\n\n    if (frameIndex == pMP3->currentPCMFrame) {\n        return DRMP3_TRUE;\n    }\n\n    // If we're moving foward we just read from where we're at. Otherwise we need to move back to the start of\n    // the stream and read from the beginning.\n    //drmp3_uint64 framesToReadAndDiscard;\n    if (frameIndex < pMP3->currentPCMFrame) {\n        // Moving backward. Move to the start of the stream and then move forward.\n        if (!drmp3_seek_to_start_of_stream(pMP3)) {\n            return DRMP3_FALSE;\n        }\n    }\n\n    drmp3_assert(frameIndex >= pMP3->currentPCMFrame);\n    return drmp3_seek_forward_by_pcm_frames__brute_force(pMP3, (frameIndex - pMP3->currentPCMFrame));\n}\n\ndrmp3_bool32 drmp3_find_closest_seek_point(drmp3* pMP3, drmp3_uint64 frameIndex, drmp3_uint32* pSeekPointIndex)\n{\n    drmp3_assert(pSeekPointIndex != NULL);\n\n    if (frameIndex < pMP3->pSeekPoints[0].pcmFrameIndex) {\n        return DRMP3_FALSE;\n    }\n\n    // Linear search for simplicity to begin with while I'm getting this thing working. Once it's all working change this to a binary search.\n    drmp3_uint32 iSeekPoint;\n    for (iSeekPoint = 0; iSeekPoint < pMP3->seekPointCount; ++iSeekPoint) {\n        if (pMP3->pSeekPoints[iSeekPoint].pcmFrameIndex > frameIndex) {\n            break;  // Found it.\n        }\n\n        *pSeekPointIndex = iSeekPoint;\n    }\n\n    return DRMP3_TRUE;\n}\n\ndrmp3_bool32 drmp3_seek_to_pcm_frame__seek_table(drmp3* pMP3, drmp3_uint64 frameIndex)\n{\n    drmp3_assert(pMP3 != NULL);\n    drmp3_assert(pMP3->pSeekPoints != NULL);\n    drmp3_assert(pMP3->seekPointCount > 0);\n\n    drmp3_seek_point seekPoint;\n\n    // If there is no prior seekpoint it means the target PCM frame comes before the first seek point. Just assume a seekpoint at the start of the file in this case.\n    drmp3_uint32 priorSeekPointIndex;\n    if (drmp3_find_closest_seek_point(pMP3, frameIndex, &priorSeekPointIndex)) {\n        seekPoint = pMP3->pSeekPoints[priorSeekPointIndex];\n    } else {\n        seekPoint.seekPosInBytes     = 0;\n        seekPoint.pcmFrameIndex      = 0;\n        seekPoint.mp3FramesToDiscard = 0;\n        seekPoint.pcmFramesToDiscard = 0;\n    }\n\n    // First thing to do is seek to the first byte of the relevant MP3 frame.\n    if (!drmp3__on_seek_64(pMP3, seekPoint.seekPosInBytes, drmp3_seek_origin_start)) {\n        return DRMP3_FALSE; // Failed to seek.\n    }\n\n    // Clear any cached data.\n    drmp3_reset(pMP3);\n\n    // Whole MP3 frames need to be discarded first.\n    drmp3_uint16 iMP3Frame;\n    for (iMP3Frame = 0; iMP3Frame < seekPoint.mp3FramesToDiscard; ++iMP3Frame) {\n        // Pass in non-null for the last frame because we want to ensure the sample rate converter is preloaded correctly.\n        drmp3d_sample_t* pPCMFrames = NULL;\n        if (iMP3Frame == seekPoint.mp3FramesToDiscard-1) {\n            pPCMFrames = (drmp3d_sample_t*)pMP3->pcmFrames;\n        }\n\n        // We first need to decode the next frame, and then we need to flush the resampler.\n        drmp3_uint32 pcmFramesReadPreSRC = drmp3_decode_next_frame_ex(pMP3, pPCMFrames, DRMP3_TRUE);\n        if (pcmFramesReadPreSRC == 0) {\n            return DRMP3_FALSE;\n        }\n    }\n\n    // We seeked to an MP3 frame in the raw stream so we need to make sure the current PCM frame is set correctly.\n    pMP3->currentPCMFrame = seekPoint.pcmFrameIndex - seekPoint.pcmFramesToDiscard;\n\n    // Update resampler. This is wrong. Need to instead update it on a per MP3 frame basis. Also broken for cases when\n    // the sample rate is being reduced in my testing. Should work fine when the input and output sample rate is the same\n    // or a clean multiple.\n    pMP3->src.algo.linear.alpha = pMP3->currentPCMFrame * ((double)pMP3->src.config.sampleRateIn / pMP3->src.config.sampleRateOut);\n    pMP3->src.algo.linear.alpha = pMP3->src.algo.linear.alpha - (drmp3_uint32)(pMP3->src.algo.linear.alpha);\n    if (pMP3->src.algo.linear.alpha > 0) {\n        pMP3->src.algo.linear.isPrevFramesLoaded = 1;\n    }\n\n    // Now at this point we can follow the same process as the brute force technique where we just skip over unnecessary MP3 frames and then\n    // read-and-discard at least 2 whole MP3 frames.\n    drmp3_uint64 leftoverFrames = frameIndex - pMP3->currentPCMFrame;\n    return drmp3_seek_forward_by_pcm_frames__brute_force(pMP3, leftoverFrames);\n}\n\ndrmp3_bool32 drmp3_seek_to_pcm_frame(drmp3* pMP3, drmp3_uint64 frameIndex)\n{\n    if (pMP3 == NULL || pMP3->onSeek == NULL) {\n        return DRMP3_FALSE;\n    }\n\n    if (frameIndex == 0) {\n        return drmp3_seek_to_start_of_stream(pMP3);\n    }\n\n    // Use the seek table if we have one.\n    if (pMP3->pSeekPoints != NULL && pMP3->seekPointCount > 0) {\n        return drmp3_seek_to_pcm_frame__seek_table(pMP3, frameIndex);\n    } else {\n        return drmp3_seek_to_pcm_frame__brute_force(pMP3, frameIndex);\n    }\n}\n\ndrmp3_bool32 drmp3_get_mp3_and_pcm_frame_count(drmp3* pMP3, drmp3_uint64* pMP3FrameCount, drmp3_uint64* pPCMFrameCount)\n{\n    if (pMP3 == NULL) {\n        return DRMP3_FALSE;\n    }\n\n    // The way this works is we move back to the start of the stream, iterate over each MP3 frame and calculate the frame count based\n    // on our output sample rate, the seek back to the PCM frame we were sitting on before calling this function.\n\n    // The stream must support seeking for this to work.\n    if (pMP3->onSeek == NULL) {\n        return DRMP3_FALSE;\n    }\n\n    // We'll need to seek back to where we were, so grab the PCM frame we're currently sitting on so we can restore later.\n    drmp3_uint64 currentPCMFrame = pMP3->currentPCMFrame;\n    \n    if (!drmp3_seek_to_start_of_stream(pMP3)) {\n        return DRMP3_FALSE;\n    }\n\n    drmp3_uint64 totalPCMFrameCount = 0;\n    drmp3_uint64 totalMP3FrameCount = 0;\n\n    float totalPCMFrameCountFractionalPart = 0; // <-- With resampling there will be a fractional part to each MP3 frame that we need to accumulate.\n    for (;;) {\n        drmp3_uint32 pcmFramesInCurrentMP3FrameIn = drmp3_decode_next_frame_ex(pMP3, NULL, DRMP3_FALSE);\n        if (pcmFramesInCurrentMP3FrameIn == 0) {\n            break;\n        }\n\n        float srcRatio = (float)pMP3->mp3FrameSampleRate / (float)pMP3->sampleRate;\n        drmp3_assert(srcRatio > 0);\n\n        float        pcmFramesInCurrentMP3FrameOutF = totalPCMFrameCountFractionalPart + (pcmFramesInCurrentMP3FrameIn / srcRatio);\n        drmp3_uint32 pcmFramesInCurrentMP3FrameOut  = (drmp3_uint32)pcmFramesInCurrentMP3FrameOutF;\n        totalPCMFrameCountFractionalPart = pcmFramesInCurrentMP3FrameOutF - pcmFramesInCurrentMP3FrameOut;\n        totalPCMFrameCount += pcmFramesInCurrentMP3FrameOut;\n        totalMP3FrameCount += 1;\n    }\n\n    // Finally, we need to seek back to where we were.\n    if (!drmp3_seek_to_start_of_stream(pMP3)) {\n        return DRMP3_FALSE;\n    }\n\n    if (!drmp3_seek_to_pcm_frame(pMP3, currentPCMFrame)) {\n        return DRMP3_FALSE;\n    }\n\n    if (pMP3FrameCount != NULL) {\n        *pMP3FrameCount = totalMP3FrameCount;\n    }\n    if (pPCMFrameCount != NULL) {\n        *pPCMFrameCount = totalPCMFrameCount;\n    }\n\n    return DRMP3_TRUE;\n}\n\ndrmp3_uint64 drmp3_get_pcm_frame_count(drmp3* pMP3)\n{\n    drmp3_uint64 totalPCMFrameCount;\n    if (!drmp3_get_mp3_and_pcm_frame_count(pMP3, NULL, &totalPCMFrameCount)) {\n        return 0;\n    }\n\n    return totalPCMFrameCount;\n}\n\ndrmp3_uint64 drmp3_get_mp3_frame_count(drmp3* pMP3)\n{\n    drmp3_uint64 totalMP3FrameCount;\n    if (!drmp3_get_mp3_and_pcm_frame_count(pMP3, &totalMP3FrameCount, NULL)) {\n        return 0;\n    }\n\n    return totalMP3FrameCount;\n}\n\nvoid drmp3__accumulate_running_pcm_frame_count(drmp3* pMP3, drmp3_uint32 pcmFrameCountIn, drmp3_uint64* pRunningPCMFrameCount, float* pRunningPCMFrameCountFractionalPart)\n{\n    float srcRatio = (float)pMP3->mp3FrameSampleRate / (float)pMP3->sampleRate;\n    drmp3_assert(srcRatio > 0);\n\n    float        pcmFrameCountOutF = *pRunningPCMFrameCountFractionalPart + (pcmFrameCountIn / srcRatio);\n    drmp3_uint32 pcmFrameCountOut  = (drmp3_uint32)pcmFrameCountOutF;\n    *pRunningPCMFrameCountFractionalPart = pcmFrameCountOutF - pcmFrameCountOut;\n    *pRunningPCMFrameCount += pcmFrameCountOut;\n}\n\ntypedef struct\n{\n    drmp3_uint64 bytePos;\n    drmp3_uint64 pcmFrameIndex; // <-- After sample rate conversion.\n} drmp3__seeking_mp3_frame_info;\n\ndrmp3_bool32 drmp3_calculate_seek_points(drmp3* pMP3, drmp3_uint32* pSeekPointCount, drmp3_seek_point* pSeekPoints)\n{\n    if (pMP3 == NULL || pSeekPointCount == NULL || pSeekPoints == NULL) {\n        return DRMP3_FALSE; // Invalid args.\n    }\n\n    drmp3_uint32 seekPointCount = *pSeekPointCount;\n    if (seekPointCount == 0) {\n        return DRMP3_FALSE;  // The client has requested no seek points. Consider this to be invalid arguments since the client has probably not intended this.\n    }\n\n    // We'll need to seek back to the current sample after calculating the seekpoints so we need to go ahead and grab the current location at the top.\n    drmp3_uint64 currentPCMFrame = pMP3->currentPCMFrame;\n    \n    // We never do more than the total number of MP3 frames and we limit it to 32-bits.\n    drmp3_uint64 totalMP3FrameCount;\n    drmp3_uint64 totalPCMFrameCount;\n    if (!drmp3_get_mp3_and_pcm_frame_count(pMP3, &totalMP3FrameCount, &totalPCMFrameCount)) {\n        return DRMP3_FALSE;\n    }\n\n    // If there's less than DRMP3_SEEK_LEADING_MP3_FRAMES+1 frames we just report 1 seek point which will be the very start of the stream.\n    if (totalMP3FrameCount < DRMP3_SEEK_LEADING_MP3_FRAMES+1) {\n        seekPointCount = 1;\n        pSeekPoints[0].seekPosInBytes     = 0;\n        pSeekPoints[0].pcmFrameIndex      = 0;\n        pSeekPoints[0].mp3FramesToDiscard = 0;\n        pSeekPoints[0].pcmFramesToDiscard = 0;\n    } else {\n        if (seekPointCount > totalMP3FrameCount-1) {\n            seekPointCount = (drmp3_uint32)totalMP3FrameCount-1;\n        }\n\n        drmp3_uint64 pcmFramesBetweenSeekPoints = totalPCMFrameCount / (seekPointCount+1);\n\n        // Here is where we actually calculate the seek points. We need to start by moving the start of the stream. We then enumerate over each\n        // MP3 frame.\n        if (!drmp3_seek_to_start_of_stream(pMP3)) {\n            return DRMP3_FALSE;\n        }\n\n        // We need to cache the byte positions of the previous MP3 frames. As a new MP3 frame is iterated, we cycle the byte positions in this\n        // array. The value in the first item in this array is the byte position that will be reported in the next seek point.\n        drmp3__seeking_mp3_frame_info mp3FrameInfo[DRMP3_SEEK_LEADING_MP3_FRAMES+1];\n\n        drmp3_uint64 runningPCMFrameCount = 0;\n        float runningPCMFrameCountFractionalPart = 0;\n\n        // We need to initialize the array of MP3 byte positions for the leading MP3 frames.\n        int iMP3Frame;\n        for (iMP3Frame = 0; iMP3Frame < DRMP3_SEEK_LEADING_MP3_FRAMES+1; ++iMP3Frame) {\n            // The byte position of the next frame will be the stream's cursor position, minus whatever is sitting in the buffer.\n            drmp3_assert(pMP3->streamCursor >= pMP3->dataSize);\n            mp3FrameInfo[iMP3Frame].bytePos       = pMP3->streamCursor - pMP3->dataSize;\n            mp3FrameInfo[iMP3Frame].pcmFrameIndex = runningPCMFrameCount;\n\n            // We need to get information about this frame so we can know how many samples it contained.\n            drmp3_uint32 pcmFramesInCurrentMP3FrameIn = drmp3_decode_next_frame_ex(pMP3, NULL, DRMP3_FALSE);\n            if (pcmFramesInCurrentMP3FrameIn == 0) {\n                return DRMP3_FALSE; // This should never happen.\n            }\n\n            drmp3__accumulate_running_pcm_frame_count(pMP3, pcmFramesInCurrentMP3FrameIn, &runningPCMFrameCount, &runningPCMFrameCountFractionalPart);\n        }\n\n        // At this point we will have extracted the byte positions of the leading MP3 frames. We can now start iterating over each seek point and\n        // calculate them.\n        drmp3_uint64 nextTargetPCMFrame = 0;\n        drmp3_uint32 iSeekPoint;\n        for (iSeekPoint = 0; iSeekPoint < seekPointCount; ++iSeekPoint) {\n            nextTargetPCMFrame += pcmFramesBetweenSeekPoints;\n\n            for (;;) {\n                if (nextTargetPCMFrame < runningPCMFrameCount) {\n                    // The next seek point is in the current MP3 frame.\n                    pSeekPoints[iSeekPoint].seekPosInBytes     = mp3FrameInfo[0].bytePos;\n                    pSeekPoints[iSeekPoint].pcmFrameIndex      = nextTargetPCMFrame;\n                    pSeekPoints[iSeekPoint].mp3FramesToDiscard = DRMP3_SEEK_LEADING_MP3_FRAMES;\n                    pSeekPoints[iSeekPoint].pcmFramesToDiscard = (drmp3_uint16)(nextTargetPCMFrame - mp3FrameInfo[DRMP3_SEEK_LEADING_MP3_FRAMES-1].pcmFrameIndex);\n                    break;\n                } else {\n                    // The next seek point is not in the current MP3 frame, so continue on to the next one. The first thing to do is cycle the cached\n                    // MP3 frame info.\n                    int i;\n                    for (i = 0; i < drmp3_countof(mp3FrameInfo)-1; ++i) {\n                        mp3FrameInfo[i] = mp3FrameInfo[i+1];\n                    }\n\n                    // Cache previous MP3 frame info.\n                    mp3FrameInfo[drmp3_countof(mp3FrameInfo)-1].bytePos       = pMP3->streamCursor - pMP3->dataSize;\n                    mp3FrameInfo[drmp3_countof(mp3FrameInfo)-1].pcmFrameIndex = runningPCMFrameCount;\n\n                    // Go to the next MP3 frame. This shouldn't ever fail, but just in case it does we just set the seek point and break. If it happens, it\n                    // should only ever do it for the last seek point.\n                    drmp3_uint32 pcmFramesInCurrentMP3FrameIn = drmp3_decode_next_frame_ex(pMP3, NULL, DRMP3_TRUE);\n                    if (pcmFramesInCurrentMP3FrameIn == 0) {\n                        pSeekPoints[iSeekPoint].seekPosInBytes     = mp3FrameInfo[0].bytePos;\n                        pSeekPoints[iSeekPoint].pcmFrameIndex      = nextTargetPCMFrame;\n                        pSeekPoints[iSeekPoint].mp3FramesToDiscard = DRMP3_SEEK_LEADING_MP3_FRAMES;\n                        pSeekPoints[iSeekPoint].pcmFramesToDiscard = (drmp3_uint16)(nextTargetPCMFrame - mp3FrameInfo[DRMP3_SEEK_LEADING_MP3_FRAMES-1].pcmFrameIndex);\n                        break;\n                    }\n\n                    drmp3__accumulate_running_pcm_frame_count(pMP3, pcmFramesInCurrentMP3FrameIn, &runningPCMFrameCount, &runningPCMFrameCountFractionalPart);\n                }\n            }\n        }\n\n        // Finally, we need to seek back to where we were.\n        if (!drmp3_seek_to_start_of_stream(pMP3)) {\n            return DRMP3_FALSE;\n        }\n        if (!drmp3_seek_to_pcm_frame(pMP3, currentPCMFrame)) {\n            return DRMP3_FALSE;\n        }\n    }\n\n    *pSeekPointCount = seekPointCount;\n    return DRMP3_TRUE;\n}\n\ndrmp3_bool32 drmp3_bind_seek_table(drmp3* pMP3, drmp3_uint32 seekPointCount, drmp3_seek_point* pSeekPoints)\n{\n    if (pMP3 == NULL) {\n        return DRMP3_FALSE;\n    }\n\n    if (seekPointCount == 0 || pSeekPoints == NULL) {\n        // Unbinding.\n        pMP3->seekPointCount = 0;\n        pMP3->pSeekPoints = NULL;\n    } else {\n        // Binding.\n        pMP3->seekPointCount = seekPointCount;\n        pMP3->pSeekPoints = pSeekPoints;\n    }\n\n    return DRMP3_TRUE;\n}\n\n\nfloat* drmp3__full_read_and_close_f32(drmp3* pMP3, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount)\n{\n    drmp3_assert(pMP3 != NULL);\n\n    drmp3_uint64 totalFramesRead = 0;\n    drmp3_uint64 framesCapacity = 0;\n    float* pFrames = NULL;\n\n    float temp[4096];\n    for (;;) {\n        drmp3_uint64 framesToReadRightNow = drmp3_countof(temp) / pMP3->channels;\n        drmp3_uint64 framesJustRead = drmp3_read_pcm_frames_f32(pMP3, framesToReadRightNow, temp);\n        if (framesJustRead == 0) {\n            break;\n        }\n\n        // Reallocate the output buffer if there's not enough room.\n        if (framesCapacity < totalFramesRead + framesJustRead) {\n            framesCapacity *= 2;\n            if (framesCapacity < totalFramesRead + framesJustRead) {\n                framesCapacity = totalFramesRead + framesJustRead;\n            }\n\n            drmp3_uint64 newFramesBufferSize = framesCapacity*pMP3->channels*sizeof(float);\n            if (newFramesBufferSize > DRMP3_SIZE_MAX) {\n                break;\n            }\n\n            float* pNewFrames = (float*)drmp3_realloc(pFrames, (size_t)newFramesBufferSize);\n            if (pNewFrames == NULL) {\n                drmp3_free(pFrames);\n                break;\n            }\n\n            pFrames = pNewFrames;\n        }\n\n        drmp3_copy_memory(pFrames + totalFramesRead*pMP3->channels, temp, (size_t)(framesJustRead*pMP3->channels*sizeof(float)));\n        totalFramesRead += framesJustRead;\n\n        // If the number of frames we asked for is less that what we actually read it means we've reached the end.\n        if (framesJustRead != framesToReadRightNow) {\n            break;\n        }\n    }\n\n    if (pConfig != NULL) {\n        pConfig->outputChannels = pMP3->channels;\n        pConfig->outputSampleRate = pMP3->sampleRate;\n    }\n\n    drmp3_uninit(pMP3);\n\n    if (pTotalFrameCount) *pTotalFrameCount = totalFramesRead;\n    return pFrames;\n}\n\nfloat* drmp3_open_and_read_f32(drmp3_read_proc onRead, drmp3_seek_proc onSeek, void* pUserData, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount)\n{\n    drmp3 mp3;\n    if (!drmp3_init(&mp3, onRead, onSeek, pUserData, pConfig)) {\n        return NULL;\n    }\n\n    return drmp3__full_read_and_close_f32(&mp3, pConfig, pTotalFrameCount);\n}\n\nfloat* drmp3_open_memory_and_read_f32(const void* pData, size_t dataSize, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount)\n{\n    drmp3 mp3;\n    if (!drmp3_init_memory(&mp3, pData, dataSize, pConfig)) {\n        return NULL;\n    }\n\n    return drmp3__full_read_and_close_f32(&mp3, pConfig, pTotalFrameCount);\n}\n\n#ifndef DR_MP3_NO_STDIO\nfloat* drmp3_open_file_and_read_f32(const char* filePath, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount)\n{\n    drmp3 mp3;\n    if (!drmp3_init_file(&mp3, filePath, pConfig)) {\n        return NULL;\n    }\n\n    return drmp3__full_read_and_close_f32(&mp3, pConfig, pTotalFrameCount);\n}\n#endif\n\nvoid drmp3_free(void* p)\n{\n    DRMP3_FREE(p);\n}\n\n#endif /*DR_MP3_IMPLEMENTATION*/\n\n\n// DIFFERENCES BETWEEN minimp3 AND dr_mp3\n// ======================================\n// - First, keep in mind that minimp3 (https://github.com/lieff/minimp3) is where all the real work was done. All of the\n//   code relating to the actual decoding remains mostly unmodified, apart from some namespacing changes.\n// - dr_mp3 adds a pulling style API which allows you to deliver raw data via callbacks. So, rather than pushing data\n//   to the decoder, the decoder _pulls_ data from your callbacks.\n// - In addition to callbacks, a decoder can be initialized from a block of memory and a file.\n// - The dr_mp3 pull API reads PCM frames rather than whole MP3 frames.\n// - dr_mp3 adds convenience APIs for opening and decoding entire files in one go.\n// - dr_mp3 is fully namespaced, including the implementation section, which is more suitable when compiling projects\n//   as a single translation unit (aka unity builds). At the time of writing this, a unity build is not possible when\n//   using minimp3 in conjunction with stb_vorbis. dr_mp3 addresses this.\n\n\n// REVISION HISTORY\n// ================\n//\n// v0.4.0 - 2018-12-16\n//   - API CHANGE: Rename some APIs:\n//     - drmp3_read_f32 -> to drmp3_read_pcm_frames_f32\n//     - drmp3_seek_to_frame -> drmp3_seek_to_pcm_frame\n//     - drmp3_open_and_decode_f32 -> drmp3_open_and_read_f32\n//     - drmp3_open_and_decode_memory_f32 -> drmp3_open_memory_and_read_f32\n//     - drmp3_open_and_decode_file_f32 -> drmp3_open_file_and_read_f32\n//   - Add drmp3_get_pcm_frame_count().\n//   - Add drmp3_get_mp3_frame_count().\n//   - Improve seeking performance.\n//\n// v0.3.2 - 2018-09-11\n//   - Fix a couple of memory leaks.\n//   - Bring up to date with minimp3.\n//\n// v0.3.1 - 2018-08-25\n//   - Fix C++ build.\n//\n// v0.3.0 - 2018-08-25\n//   - Bring up to date with minimp3. This has a minor API change: the \"pcm\" parameter of drmp3dec_decode_frame() has\n//     been changed from short* to void* because it can now output both s16 and f32 samples, depending on whether or\n//     not the DR_MP3_FLOAT_OUTPUT option is set.\n//\n// v0.2.11 - 2018-08-08\n//   - Fix a bug where the last part of a file is not read.\n//\n// v0.2.10 - 2018-08-07\n//   - Improve 64-bit detection.\n//\n// v0.2.9 - 2018-08-05\n//   - Fix C++ build on older versions of GCC.\n//   - Bring up to date with minimp3.\n//\n// v0.2.8 - 2018-08-02\n//   - Fix compilation errors with older versions of GCC.\n//\n// v0.2.7 - 2018-07-13\n//   - Bring up to date with minimp3.\n//\n// v0.2.6 - 2018-07-12\n//   - Bring up to date with minimp3.\n//\n// v0.2.5 - 2018-06-22\n//   - Bring up to date with minimp3.\n//\n// v0.2.4 - 2018-05-12\n//   - Bring up to date with minimp3.\n//\n// v0.2.3 - 2018-04-29\n//   - Fix TCC build.\n//\n// v0.2.2 - 2018-04-28\n//   - Fix bug when opening a decoder from memory.\n//\n// v0.2.1 - 2018-04-27\n//   - Efficiency improvements when the decoder reaches the end of the stream.\n//\n// v0.2 - 2018-04-21\n//   - Bring up to date with minimp3.\n//   - Start using major.minor.revision versioning.\n//\n// v0.1d - 2018-03-30\n//   - Bring up to date with minimp3.\n//\n// v0.1c - 2018-03-11\n//   - Fix C++ build error.\n//\n// v0.1b - 2018-03-07\n//   - Bring up to date with minimp3.\n//\n// v0.1a - 2018-02-28\n//   - Fix compilation error on GCC/Clang.\n//   - Fix some warnings.\n//\n// v0.1 - 2018-02-xx\n//   - Initial versioned release.\n\n\n/*\nThis is free and unencumbered software released into the public domain.\n\nAnyone is free to copy, modify, publish, use, compile, sell, or\ndistribute this software, either in source code form or as a compiled\nbinary, for any purpose, commercial or non-commercial, and by any\nmeans.\n\nIn jurisdictions that recognize copyright laws, the author or authors\nof this software dedicate any and all copyright interest in the\nsoftware to the public domain. We make this dedication for the benefit\nof the public at large and to the detriment of our heirs and\nsuccessors. We intend this dedication to be an overt act of\nrelinquishment in perpetuity of all present and future rights to this\nsoftware under copyright law.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\nARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE.\n\nFor more information, please refer to <http://unlicense.org/>\n*/\n\n/*\n    https://github.com/lieff/minimp3\n    To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide.\n    This software is distributed without any warranty.\n    See <http://creativecommons.org/publicdomain/zero/1.0/>.\n*/"
  },
  {
    "path": "include/stb_image.h",
    "content": "/* stb_image - v2.27 - public domain image loader - http://nothings.org/stb\n                                  no warranty implied; use at your own risk\n\n   Do this:\n      #define STB_IMAGE_IMPLEMENTATION\n   before you include this file in *one* C or C++ file to create the implementation.\n\n   // i.e. it should look like this:\n   #include ...\n   #include ...\n   #include ...\n   #define STB_IMAGE_IMPLEMENTATION\n   #include \"stb_image.h\"\n\n   You can #define STBI_ASSERT(x) before the #include to avoid using assert.h.\n   And #define STBI_MALLOC, STBI_REALLOC, and STBI_FREE to avoid using malloc,realloc,free\n\n\n   QUICK NOTES:\n      Primarily of interest to game developers and other people who can\n          avoid problematic images and only need the trivial interface\n\n      JPEG baseline & progressive (12 bpc/arithmetic not supported, same as stock IJG lib)\n      PNG 1/2/4/8/16-bit-per-channel\n\n      TGA (not sure what subset, if a subset)\n      BMP non-1bpp, non-RLE\n      PSD (composited view only, no extra channels, 8/16 bit-per-channel)\n\n      GIF (*comp always reports as 4-channel)\n      HDR (radiance rgbE format)\n      PIC (Softimage PIC)\n      PNM (PPM and PGM binary only)\n\n      Animated GIF still needs a proper API, but here's one way to do it:\n          http://gist.github.com/urraka/685d9a6340b26b830d49\n\n      - decode from memory or through FILE (define STBI_NO_STDIO to remove code)\n      - decode from arbitrary I/O callbacks\n      - SIMD acceleration on x86/x64 (SSE2) and ARM (NEON)\n\n   Full documentation under \"DOCUMENTATION\" below.\n\n\nLICENSE\n\n  See end of file for license information.\n\nRECENT REVISION HISTORY:\n\n      2.27  (2021-07-11) document stbi_info better, 16-bit PNM support, bug fixes\n      2.26  (2020-07-13) many minor fixes\n      2.25  (2020-02-02) fix warnings\n      2.24  (2020-02-02) fix warnings; thread-local failure_reason and flip_vertically\n      2.23  (2019-08-11) fix clang static analysis warning\n      2.22  (2019-03-04) gif fixes, fix warnings\n      2.21  (2019-02-25) fix typo in comment\n      2.20  (2019-02-07) support utf8 filenames in Windows; fix warnings and platform ifdefs\n      2.19  (2018-02-11) fix warning\n      2.18  (2018-01-30) fix warnings\n      2.17  (2018-01-29) bugfix, 1-bit BMP, 16-bitness query, fix warnings\n      2.16  (2017-07-23) all functions have 16-bit variants; optimizations; bugfixes\n      2.15  (2017-03-18) fix png-1,2,4; all Imagenet JPGs; no runtime SSE detection on GCC\n      2.14  (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs\n      2.13  (2016-12-04) experimental 16-bit API, only for PNG so far; fixes\n      2.12  (2016-04-02) fix typo in 2.11 PSD fix that caused crashes\n      2.11  (2016-04-02) 16-bit PNGS; enable SSE2 in non-gcc x64\n                         RGB-format JPEG; remove white matting in PSD;\n                         allocate large structures on the stack;\n                         correct channel count for PNG & BMP\n      2.10  (2016-01-22) avoid warning introduced in 2.09\n      2.09  (2016-01-16) 16-bit TGA; comments in PNM files; STBI_REALLOC_SIZED\n\n   See end of file for full revision history.\n\n\n ============================    Contributors    =========================\n\n Image formats                          Extensions, features\n    Sean Barrett (jpeg, png, bmp)          Jetro Lauha (stbi_info)\n    Nicolas Schulz (hdr, psd)              Martin \"SpartanJ\" Golini (stbi_info)\n    Jonathan Dummer (tga)                  James \"moose2000\" Brown (iPhone PNG)\n    Jean-Marc Lienher (gif)                Ben \"Disch\" Wenger (io callbacks)\n    Tom Seddon (pic)                       Omar Cornut (1/2/4-bit PNG)\n    Thatcher Ulrich (psd)                  Nicolas Guillemot (vertical flip)\n    Ken Miller (pgm, ppm)                  Richard Mitton (16-bit PSD)\n    github:urraka (animated gif)           Junggon Kim (PNM comments)\n    Christopher Forseth (animated gif)     Daniel Gibson (16-bit TGA)\n                                           socks-the-fox (16-bit PNG)\n                                           Jeremy Sawicki (handle all ImageNet JPGs)\n Optimizations & bugfixes                  Mikhail Morozov (1-bit BMP)\n    Fabian \"ryg\" Giesen                    Anael Seghezzi (is-16-bit query)\n    Arseny Kapoulkine                      Simon Breuss (16-bit PNM)\n    John-Mark Allen\n    Carmelo J Fdez-Aguera\n\n Bug & warning fixes\n    Marc LeBlanc            David Woo          Guillaume George     Martins Mozeiko\n    Christpher Lloyd        Jerry Jansson      Joseph Thomson       Blazej Dariusz Roszkowski\n    Phil Jordan                                Dave Moore           Roy Eltham\n    Hayaki Saito            Nathan Reed        Won Chun\n    Luke Graham             Johan Duparc       Nick Verigakis       the Horde3D community\n    Thomas Ruf              Ronny Chevalier                         github:rlyeh\n    Janez Zemva             John Bartholomew   Michal Cichon        github:romigrou\n    Jonathan Blow           Ken Hamada         Tero Hanninen        github:svdijk\n    Eugene Golushkov        Laurent Gomila     Cort Stratton        github:snagar\n    Aruelien Pocheville     Sergio Gonzalez    Thibault Reuille     github:Zelex\n    Cass Everitt            Ryamond Barbiero                        github:grim210\n    Paul Du Bois            Engin Manap        Aldo Culquicondor    github:sammyhw\n    Philipp Wiesemann       Dale Weiler        Oriol Ferrer Mesia   github:phprus\n    Josh Tobin                                 Matthew Gregan       github:poppolopoppo\n    Julian Raschke          Gregory Mullen     Christian Floisand   github:darealshinji\n    Baldur Karlsson         Kevin Schmidt      JR Smith             github:Michaelangel007\n                            Brad Weinberger    Matvey Cherevko      github:mosra\n    Luca Sas                Alexander Veselov  Zack Middleton       [reserved]\n    Ryan C. Gordon          [reserved]                              [reserved]\n                     DO NOT ADD YOUR NAME HERE\n\n                     Jacko Dirks\n\n  To add your name to the credits, pick a random blank space in the middle and fill it.\n  80% of merge conflicts on stb PRs are due to people adding their name at the end\n  of the credits.\n*/\n\n#ifndef STBI_INCLUDE_STB_IMAGE_H\n#define STBI_INCLUDE_STB_IMAGE_H\n\n// DOCUMENTATION\n//\n// Limitations:\n//    - no 12-bit-per-channel JPEG\n//    - no JPEGs with arithmetic coding\n//    - GIF always returns *comp=4\n//\n// Basic usage (see HDR discussion below for HDR usage):\n//    int x,y,n;\n//    unsigned char *data = stbi_load(filename, &x, &y, &n, 0);\n//    // ... process data if not NULL ...\n//    // ... x = width, y = height, n = # 8-bit components per pixel ...\n//    // ... replace '0' with '1'..'4' to force that many components per pixel\n//    // ... but 'n' will always be the number that it would have been if you said 0\n//    stbi_image_free(data)\n//\n// Standard parameters:\n//    int *x                 -- outputs image width in pixels\n//    int *y                 -- outputs image height in pixels\n//    int *channels_in_file  -- outputs # of image components in image file\n//    int desired_channels   -- if non-zero, # of image components requested in result\n//\n// The return value from an image loader is an 'unsigned char *' which points\n// to the pixel data, or NULL on an allocation failure or if the image is\n// corrupt or invalid. The pixel data consists of *y scanlines of *x pixels,\n// with each pixel consisting of N interleaved 8-bit components; the first\n// pixel pointed to is top-left-most in the image. There is no padding between\n// image scanlines or between pixels, regardless of format. The number of\n// components N is 'desired_channels' if desired_channels is non-zero, or\n// *channels_in_file otherwise. If desired_channels is non-zero,\n// *channels_in_file has the number of components that _would_ have been\n// output otherwise. E.g. if you set desired_channels to 4, you will always\n// get RGBA output, but you can check *channels_in_file to see if it's trivially\n// opaque because e.g. there were only 3 channels in the source image.\n//\n// An output image with N components has the following components interleaved\n// in this order in each pixel:\n//\n//     N=#comp     components\n//       1           grey\n//       2           grey, alpha\n//       3           red, green, blue\n//       4           red, green, blue, alpha\n//\n// If image loading fails for any reason, the return value will be NULL,\n// and *x, *y, *channels_in_file will be unchanged. The function\n// stbi_failure_reason() can be queried for an extremely brief, end-user\n// unfriendly explanation of why the load failed. Define STBI_NO_FAILURE_STRINGS\n// to avoid compiling these strings at all, and STBI_FAILURE_USERMSG to get slightly\n// more user-friendly ones.\n//\n// Paletted PNG, BMP, GIF, and PIC images are automatically depalettized.\n//\n// To query the width, height and component count of an image without having to\n// decode the full file, you can use the stbi_info family of functions:\n//\n//   int x,y,n,ok;\n//   ok = stbi_info(filename, &x, &y, &n);\n//   // returns ok=1 and sets x, y, n if image is a supported format,\n//   // 0 otherwise.\n//\n// Note that stb_image pervasively uses ints in its public API for sizes,\n// including sizes of memory buffers. This is now part of the API and thus\n// hard to change without causing breakage. As a result, the various image\n// loaders all have certain limits on image size; these differ somewhat\n// by format but generally boil down to either just under 2GB or just under\n// 1GB. When the decoded image would be larger than this, stb_image decoding\n// will fail.\n//\n// Additionally, stb_image will reject image files that have any of their\n// dimensions set to a larger value than the configurable STBI_MAX_DIMENSIONS,\n// which defaults to 2**24 = 16777216 pixels. Due to the above memory limit,\n// the only way to have an image with such dimensions load correctly\n// is for it to have a rather extreme aspect ratio. Either way, the\n// assumption here is that such larger images are likely to be malformed\n// or malicious. If you do need to load an image with individual dimensions\n// larger than that, and it still fits in the overall size limit, you can\n// #define STBI_MAX_DIMENSIONS on your own to be something larger.\n//\n// ===========================================================================\n//\n// UNICODE:\n//\n//   If compiling for Windows and you wish to use Unicode filenames, compile\n//   with\n//       #define STBI_WINDOWS_UTF8\n//   and pass utf8-encoded filenames. Call stbi_convert_wchar_to_utf8 to convert\n//   Windows wchar_t filenames to utf8.\n//\n// ===========================================================================\n//\n// Philosophy\n//\n// stb libraries are designed with the following priorities:\n//\n//    1. easy to use\n//    2. easy to maintain\n//    3. good performance\n//\n// Sometimes I let \"good performance\" creep up in priority over \"easy to maintain\",\n// and for best performance I may provide less-easy-to-use APIs that give higher\n// performance, in addition to the easy-to-use ones. Nevertheless, it's important\n// to keep in mind that from the standpoint of you, a client of this library,\n// all you care about is #1 and #3, and stb libraries DO NOT emphasize #3 above all.\n//\n// Some secondary priorities arise directly from the first two, some of which\n// provide more explicit reasons why performance can't be emphasized.\n//\n//    - Portable (\"ease of use\")\n//    - Small source code footprint (\"easy to maintain\")\n//    - No dependencies (\"ease of use\")\n//\n// ===========================================================================\n//\n// I/O callbacks\n//\n// I/O callbacks allow you to read from arbitrary sources, like packaged\n// files or some other source. Data read from callbacks are processed\n// through a small internal buffer (currently 128 bytes) to try to reduce\n// overhead.\n//\n// The three functions you must define are \"read\" (reads some bytes of data),\n// \"skip\" (skips some bytes of data), \"eof\" (reports if the stream is at the end).\n//\n// ===========================================================================\n//\n// SIMD support\n//\n// The JPEG decoder will try to automatically use SIMD kernels on x86 when\n// supported by the compiler. For ARM Neon support, you must explicitly\n// request it.\n//\n// (The old do-it-yourself SIMD API is no longer supported in the current\n// code.)\n//\n// On x86, SSE2 will automatically be used when available based on a run-time\n// test; if not, the generic C versions are used as a fall-back. On ARM targets,\n// the typical path is to have separate builds for NEON and non-NEON devices\n// (at least this is true for iOS and Android). Therefore, the NEON support is\n// toggled by a build flag: define STBI_NEON to get NEON loops.\n//\n// If for some reason you do not want to use any of SIMD code, or if\n// you have issues compiling it, you can disable it entirely by\n// defining STBI_NO_SIMD.\n//\n// ===========================================================================\n//\n// HDR image support   (disable by defining STBI_NO_HDR)\n//\n// stb_image supports loading HDR images in general, and currently the Radiance\n// .HDR file format specifically. You can still load any file through the existing\n// interface; if you attempt to load an HDR file, it will be automatically remapped\n// to LDR, assuming gamma 2.2 and an arbitrary scale factor defaulting to 1;\n// both of these constants can be reconfigured through this interface:\n//\n//     stbi_hdr_to_ldr_gamma(2.2f);\n//     stbi_hdr_to_ldr_scale(1.0f);\n//\n// (note, do not use _inverse_ constants; stbi_image will invert them\n// appropriately).\n//\n// Additionally, there is a new, parallel interface for loading files as\n// (linear) floats to preserve the full dynamic range:\n//\n//    float *data = stbi_loadf(filename, &x, &y, &n, 0);\n//\n// If you load LDR images through this interface, those images will\n// be promoted to floating point values, run through the inverse of\n// constants corresponding to the above:\n//\n//     stbi_ldr_to_hdr_scale(1.0f);\n//     stbi_ldr_to_hdr_gamma(2.2f);\n//\n// Finally, given a filename (or an open file or memory block--see header\n// file for details) containing image data, you can query for the \"most\n// appropriate\" interface to use (that is, whether the image is HDR or\n// not), using:\n//\n//     stbi_is_hdr(char *filename);\n//\n// ===========================================================================\n//\n// iPhone PNG support:\n//\n// We optionally support converting iPhone-formatted PNGs (which store\n// premultiplied BGRA) back to RGB, even though they're internally encoded\n// differently. To enable this conversion, call\n// stbi_convert_iphone_png_to_rgb(1).\n//\n// Call stbi_set_unpremultiply_on_load(1) as well to force a divide per\n// pixel to remove any premultiplied alpha *only* if the image file explicitly\n// says there's premultiplied data (currently only happens in iPhone images,\n// and only if iPhone convert-to-rgb processing is on).\n//\n// ===========================================================================\n//\n// ADDITIONAL CONFIGURATION\n//\n//  - You can suppress implementation of any of the decoders to reduce\n//    your code footprint by #defining one or more of the following\n//    symbols before creating the implementation.\n//\n//        STBI_NO_JPEG\n//        STBI_NO_PNG\n//        STBI_NO_BMP\n//        STBI_NO_PSD\n//        STBI_NO_TGA\n//        STBI_NO_GIF\n//        STBI_NO_HDR\n//        STBI_NO_PIC\n//        STBI_NO_PNM   (.ppm and .pgm)\n//\n//  - You can request *only* certain decoders and suppress all other ones\n//    (this will be more forward-compatible, as addition of new decoders\n//    doesn't require you to disable them explicitly):\n//\n//        STBI_ONLY_JPEG\n//        STBI_ONLY_PNG\n//        STBI_ONLY_BMP\n//        STBI_ONLY_PSD\n//        STBI_ONLY_TGA\n//        STBI_ONLY_GIF\n//        STBI_ONLY_HDR\n//        STBI_ONLY_PIC\n//        STBI_ONLY_PNM   (.ppm and .pgm)\n//\n//   - If you use STBI_NO_PNG (or _ONLY_ without PNG), and you still\n//     want the zlib decoder to be available, #define STBI_SUPPORT_ZLIB\n//\n//  - If you define STBI_MAX_DIMENSIONS, stb_image will reject images greater\n//    than that size (in either width or height) without further processing.\n//    This is to let programs in the wild set an upper bound to prevent\n//    denial-of-service attacks on untrusted data, as one could generate a\n//    valid image of gigantic dimensions and force stb_image to allocate a\n//    huge block of memory and spend disproportionate time decoding it. By\n//    default this is set to (1 << 24), which is 16777216, but that's still\n//    very big.\n\n#ifndef STBI_NO_STDIO\n#include <stdio.h>\n#endif // STBI_NO_STDIO\n\n#define STBI_VERSION 1\n\nenum\n{\n   STBI_default = 0, // only used for desired_channels\n\n   STBI_grey       = 1,\n   STBI_grey_alpha = 2,\n   STBI_rgb        = 3,\n   STBI_rgb_alpha  = 4\n};\n\n#include <stdlib.h>\ntypedef unsigned char stbi_uc;\ntypedef unsigned short stbi_us;\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#ifndef STBIDEF\n#ifdef STB_IMAGE_STATIC\n#define STBIDEF static\n#else\n#define STBIDEF extern\n#endif\n#endif\n\n//////////////////////////////////////////////////////////////////////////////\n//\n// PRIMARY API - works on images of any type\n//\n\n//\n// load image by filename, open file, or memory buffer\n//\n\ntypedef struct\n{\n   int      (*read)  (void *user,char *data,int size);   // fill 'data' with 'size' bytes.  return number of bytes actually read\n   void     (*skip)  (void *user,int n);                 // skip the next 'n' bytes, or 'unget' the last -n bytes if negative\n   int      (*eof)   (void *user);                       // returns nonzero if we are at end of file/data\n} stbi_io_callbacks;\n\n////////////////////////////////////\n//\n// 8-bits-per-channel interface\n//\n\nSTBIDEF stbi_uc *stbi_load_from_memory   (stbi_uc           const *buffer, int len   , int *x, int *y, int *channels_in_file, int desired_channels);\nSTBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk  , void *user, int *x, int *y, int *channels_in_file, int desired_channels);\n\n#ifndef STBI_NO_STDIO\nSTBIDEF stbi_uc *stbi_load            (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels);\nSTBIDEF stbi_uc *stbi_load_from_file  (FILE *f, int *x, int *y, int *channels_in_file, int desired_channels);\n// for stbi_load_from_file, file pointer is left pointing immediately after image\n#endif\n\n#ifndef STBI_NO_GIF\n__attribute__ ((visibility (\"default\"))) stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x, int *y, int *z, int *comp, int req_comp);\n#endif\n\n#ifdef STBI_WINDOWS_UTF8\nSTBIDEF int stbi_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t* input);\n#endif\n\n////////////////////////////////////\n//\n// 16-bits-per-channel interface\n//\n\nSTBIDEF stbi_us *stbi_load_16_from_memory   (stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels);\nSTBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels);\n\n#ifndef STBI_NO_STDIO\nSTBIDEF stbi_us *stbi_load_16          (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels);\nSTBIDEF stbi_us *stbi_load_from_file_16(FILE *f, int *x, int *y, int *channels_in_file, int desired_channels);\n#endif\n\n////////////////////////////////////\n//\n// float-per-channel interface\n//\n#ifndef STBI_NO_LINEAR\n   STBIDEF float *stbi_loadf_from_memory     (stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels);\n   STBIDEF float *stbi_loadf_from_callbacks  (stbi_io_callbacks const *clbk, void *user, int *x, int *y,  int *channels_in_file, int desired_channels);\n\n   #ifndef STBI_NO_STDIO\n   STBIDEF float *stbi_loadf            (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels);\n   STBIDEF float *stbi_loadf_from_file  (FILE *f, int *x, int *y, int *channels_in_file, int desired_channels);\n   #endif\n#endif\n\n#ifndef STBI_NO_HDR\n   STBIDEF void   stbi_hdr_to_ldr_gamma(float gamma);\n   STBIDEF void   stbi_hdr_to_ldr_scale(float scale);\n#endif // STBI_NO_HDR\n\n#ifndef STBI_NO_LINEAR\n   STBIDEF void   stbi_ldr_to_hdr_gamma(float gamma);\n   STBIDEF void   stbi_ldr_to_hdr_scale(float scale);\n#endif // STBI_NO_LINEAR\n\n// stbi_is_hdr is always defined, but always returns false if STBI_NO_HDR\nSTBIDEF int    stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clbk, void *user);\nSTBIDEF int    stbi_is_hdr_from_memory(stbi_uc const *buffer, int len);\n#ifndef STBI_NO_STDIO\nSTBIDEF int      stbi_is_hdr          (char const *filename);\nSTBIDEF int      stbi_is_hdr_from_file(FILE *f);\n#endif // STBI_NO_STDIO\n\n\n// get a VERY brief reason for failure\n// on most compilers (and ALL modern mainstream compilers) this is threadsafe\nSTBIDEF const char *stbi_failure_reason  (void);\n\n// free the loaded image -- this is just free()\n__attribute__ ((visibility (\"default\"))) void     stbi_image_free      (void *retval_from_stbi_load);\n\n// get image dimensions & components without fully decoding\nSTBIDEF int      stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp);\nSTBIDEF int      stbi_info_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp);\nSTBIDEF int      stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len);\nSTBIDEF int      stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *clbk, void *user);\n\n#ifndef STBI_NO_STDIO\nSTBIDEF int      stbi_info               (char const *filename,     int *x, int *y, int *comp);\nSTBIDEF int      stbi_info_from_file     (FILE *f,                  int *x, int *y, int *comp);\nSTBIDEF int      stbi_is_16_bit          (char const *filename);\nSTBIDEF int      stbi_is_16_bit_from_file(FILE *f);\n#endif\n\n\n\n// for image formats that explicitly notate that they have premultiplied alpha,\n// we just return the colors as stored in the file. set this flag to force\n// unpremultiplication. results are undefined if the unpremultiply overflow.\nSTBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply);\n\n// indicate whether we should process iphone images back to canonical format,\n// or just pass them through \"as-is\"\nSTBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert);\n\n// flip the image vertically, so the first pixel in the output array is the bottom left\n__attribute__ ((visibility (\"default\"))) void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip);\n\n// as above, but only applies to images loaded on the thread that calls the function\n// this function is only available if your compiler supports thread-local variables;\n// calling it will fail to link if your compiler doesn't\nSTBIDEF void stbi_set_unpremultiply_on_load_thread(int flag_true_if_should_unpremultiply);\nSTBIDEF void stbi_convert_iphone_png_to_rgb_thread(int flag_true_if_should_convert);\nSTBIDEF void stbi_set_flip_vertically_on_load_thread(int flag_true_if_should_flip);\n\n// ZLIB client - used by PNG, available for other purposes\n\nSTBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size, int *outlen);\nSTBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *buffer, int len, int initial_size, int *outlen, int parse_header);\nSTBIDEF char *stbi_zlib_decode_malloc(const char *buffer, int len, int *outlen);\nSTBIDEF int   stbi_zlib_decode_buffer(char *obuffer, int olen, const char *ibuffer, int ilen);\n\nSTBIDEF char *stbi_zlib_decode_noheader_malloc(const char *buffer, int len, int *outlen);\nSTBIDEF int   stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const char *ibuffer, int ilen);\n\n\n#ifdef __cplusplus\n}\n#endif\n\n//\n//\n////   end header file   /////////////////////////////////////////////////////\n#endif // STBI_INCLUDE_STB_IMAGE_H\n\n#ifdef STB_IMAGE_IMPLEMENTATION\n\n#if defined(STBI_ONLY_JPEG) || defined(STBI_ONLY_PNG) || defined(STBI_ONLY_BMP) \\\n  || defined(STBI_ONLY_TGA) || defined(STBI_ONLY_GIF) || defined(STBI_ONLY_PSD) \\\n  || defined(STBI_ONLY_HDR) || defined(STBI_ONLY_PIC) || defined(STBI_ONLY_PNM) \\\n  || defined(STBI_ONLY_ZLIB)\n   #ifndef STBI_ONLY_JPEG\n   #define STBI_NO_JPEG\n   #endif\n   #ifndef STBI_ONLY_PNG\n   #define STBI_NO_PNG\n   #endif\n   #ifndef STBI_ONLY_BMP\n   #define STBI_NO_BMP\n   #endif\n   #ifndef STBI_ONLY_PSD\n   #define STBI_NO_PSD\n   #endif\n   #ifndef STBI_ONLY_TGA\n   #define STBI_NO_TGA\n   #endif\n   #ifndef STBI_ONLY_GIF\n   #define STBI_NO_GIF\n   #endif\n   #ifndef STBI_ONLY_HDR\n   #define STBI_NO_HDR\n   #endif\n   #ifndef STBI_ONLY_PIC\n   #define STBI_NO_PIC\n   #endif\n   #ifndef STBI_ONLY_PNM\n   #define STBI_NO_PNM\n   #endif\n#endif\n\n#if defined(STBI_NO_PNG) && !defined(STBI_SUPPORT_ZLIB) && !defined(STBI_NO_ZLIB)\n#define STBI_NO_ZLIB\n#endif\n\n\n#include <stdarg.h>\n#include <stddef.h> // ptrdiff_t on osx\n#include <stdlib.h>\n#include <string.h>\n#include <limits.h>\n\n#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR)\n#include <math.h>  // ldexp, pow\n#endif\n\n#ifndef STBI_NO_STDIO\n#include <stdio.h>\n#endif\n\n#ifndef STBI_ASSERT\n#include <assert.h>\n#define STBI_ASSERT(x) assert(x)\n#endif\n\n#ifdef __cplusplus\n#define STBI_EXTERN extern \"C\"\n#else\n#define STBI_EXTERN extern\n#endif\n\n\n#ifndef _MSC_VER\n   #ifdef __cplusplus\n   #define stbi_inline inline\n   #else\n   #define stbi_inline\n   #endif\n#else\n   #define stbi_inline __forceinline\n#endif\n\n#ifndef STBI_NO_THREAD_LOCALS\n   #if defined(__cplusplus) &&  __cplusplus >= 201103L\n      #define STBI_THREAD_LOCAL       thread_local\n   #elif defined(__GNUC__) && __GNUC__ < 5\n      #define STBI_THREAD_LOCAL       __thread\n   #elif defined(_MSC_VER)\n      #define STBI_THREAD_LOCAL       __declspec(thread)\n   #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L && !defined(__STDC_NO_THREADS__)\n      #define STBI_THREAD_LOCAL       _Thread_local\n   #endif\n\n   #ifndef STBI_THREAD_LOCAL\n      #if defined(__GNUC__)\n        #define STBI_THREAD_LOCAL       __thread\n      #endif\n   #endif\n#endif\n\n#ifdef _MSC_VER\ntypedef unsigned short stbi__uint16;\ntypedef   signed short stbi__int16;\ntypedef unsigned int   stbi__uint32;\ntypedef   signed int   stbi__int32;\n#else\n#include <stdint.h>\ntypedef uint16_t stbi__uint16;\ntypedef int16_t  stbi__int16;\ntypedef uint32_t stbi__uint32;\ntypedef int32_t  stbi__int32;\n#endif\n\n// should produce compiler error if size is wrong\ntypedef unsigned char validate_uint32[sizeof(stbi__uint32)==4 ? 1 : -1];\n\n#ifdef _MSC_VER\n#define STBI_NOTUSED(v)  (void)(v)\n#else\n#define STBI_NOTUSED(v)  (void)sizeof(v)\n#endif\n\n#ifdef _MSC_VER\n#define STBI_HAS_LROTL\n#endif\n\n#ifdef STBI_HAS_LROTL\n   #define stbi_lrot(x,y)  _lrotl(x,y)\n#else\n   #define stbi_lrot(x,y)  (((x) << (y)) | ((x) >> (-(y) & 31)))\n#endif\n\n#if defined(STBI_MALLOC) && defined(STBI_FREE) && (defined(STBI_REALLOC) || defined(STBI_REALLOC_SIZED))\n// ok\n#elif !defined(STBI_MALLOC) && !defined(STBI_FREE) && !defined(STBI_REALLOC) && !defined(STBI_REALLOC_SIZED)\n// ok\n#else\n#error \"Must define all or none of STBI_MALLOC, STBI_FREE, and STBI_REALLOC (or STBI_REALLOC_SIZED).\"\n#endif\n\n#ifndef STBI_MALLOC\n#define STBI_MALLOC(sz)           malloc(sz)\n#define STBI_REALLOC(p,newsz)     realloc(p,newsz)\n#define STBI_FREE(p)              free(p)\n#endif\n\n#ifndef STBI_REALLOC_SIZED\n#define STBI_REALLOC_SIZED(p,oldsz,newsz) STBI_REALLOC(p,newsz)\n#endif\n\n// x86/x64 detection\n#if defined(__x86_64__) || defined(_M_X64)\n#define STBI__X64_TARGET\n#elif defined(__i386) || defined(_M_IX86)\n#define STBI__X86_TARGET\n#endif\n\n#if defined(__GNUC__) && defined(STBI__X86_TARGET) && !defined(__SSE2__) && !defined(STBI_NO_SIMD)\n// gcc doesn't support sse2 intrinsics unless you compile with -msse2,\n// which in turn means it gets to use SSE2 everywhere. This is unfortunate,\n// but previous attempts to provide the SSE2 functions with runtime\n// detection caused numerous issues. The way architecture extensions are\n// exposed in GCC/Clang is, sadly, not really suited for one-file libs.\n// New behavior: if compiled with -msse2, we use SSE2 without any\n// detection; if not, we don't use it at all.\n#define STBI_NO_SIMD\n#endif\n\n#if defined(__MINGW32__) && defined(STBI__X86_TARGET) && !defined(STBI_MINGW_ENABLE_SSE2) && !defined(STBI_NO_SIMD)\n// Note that __MINGW32__ doesn't actually mean 32-bit, so we have to avoid STBI__X64_TARGET\n//\n// 32-bit MinGW wants ESP to be 16-byte aligned, but this is not in the\n// Windows ABI and VC++ as well as Windows DLLs don't maintain that invariant.\n// As a result, enabling SSE2 on 32-bit MinGW is dangerous when not\n// simultaneously enabling \"-mstackrealign\".\n//\n// See https://github.com/nothings/stb/issues/81 for more information.\n//\n// So default to no SSE2 on 32-bit MinGW. If you've read this far and added\n// -mstackrealign to your build settings, feel free to #define STBI_MINGW_ENABLE_SSE2.\n#define STBI_NO_SIMD\n#endif\n\n#if !defined(STBI_NO_SIMD) && (defined(STBI__X86_TARGET) || defined(STBI__X64_TARGET))\n#define STBI_SSE2\n#include <emmintrin.h>\n\n#ifdef _MSC_VER\n\n#if _MSC_VER >= 1400  // not VC6\n#include <intrin.h> // __cpuid\nstatic int stbi__cpuid3(void)\n{\n   int info[4];\n   __cpuid(info,1);\n   return info[3];\n}\n#else\nstatic int stbi__cpuid3(void)\n{\n   int res;\n   __asm {\n      mov  eax,1\n      cpuid\n      mov  res,edx\n   }\n   return res;\n}\n#endif\n\n#define STBI_SIMD_ALIGN(type, name) __declspec(align(16)) type name\n\n#if !defined(STBI_NO_JPEG) && defined(STBI_SSE2)\nstatic int stbi__sse2_available(void)\n{\n   int info3 = stbi__cpuid3();\n   return ((info3 >> 26) & 1) != 0;\n}\n#endif\n\n#else // assume GCC-style if not VC++\n#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16)))\n\n#if !defined(STBI_NO_JPEG) && defined(STBI_SSE2)\nstatic int stbi__sse2_available(void)\n{\n   // If we're even attempting to compile this on GCC/Clang, that means\n   // -msse2 is on, which means the compiler is allowed to use SSE2\n   // instructions at will, and so are we.\n   return 1;\n}\n#endif\n\n#endif\n#endif\n\n// ARM NEON\n#if defined(STBI_NO_SIMD) && defined(STBI_NEON)\n#undef STBI_NEON\n#endif\n\n#ifdef STBI_NEON\n#include <arm_neon.h>\n#ifdef _MSC_VER\n#define STBI_SIMD_ALIGN(type, name) __declspec(align(16)) type name\n#else\n#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16)))\n#endif\n#endif\n\n#ifndef STBI_SIMD_ALIGN\n#define STBI_SIMD_ALIGN(type, name) type name\n#endif\n\n#ifndef STBI_MAX_DIMENSIONS\n#define STBI_MAX_DIMENSIONS (1 << 24)\n#endif\n\n///////////////////////////////////////////////\n//\n//  stbi__context struct and start_xxx functions\n\n// stbi__context structure is our basic context used by all images, so it\n// contains all the IO context, plus some basic image information\ntypedef struct\n{\n   stbi__uint32 img_x, img_y;\n   int img_n, img_out_n;\n\n   stbi_io_callbacks io;\n   void *io_user_data;\n\n   int read_from_callbacks;\n   int buflen;\n   stbi_uc buffer_start[128];\n   int callback_already_read;\n\n   stbi_uc *img_buffer, *img_buffer_end;\n   stbi_uc *img_buffer_original, *img_buffer_original_end;\n} stbi__context;\n\n\nstatic void stbi__refill_buffer(stbi__context *s);\n\n// initialize a memory-decode context\nstatic void stbi__start_mem(stbi__context *s, stbi_uc const *buffer, int len)\n{\n   s->io.read = NULL;\n   s->read_from_callbacks = 0;\n   s->callback_already_read = 0;\n   s->img_buffer = s->img_buffer_original = (stbi_uc *) buffer;\n   s->img_buffer_end = s->img_buffer_original_end = (stbi_uc *) buffer+len;\n}\n\n// initialize a callback-based context\nstatic void stbi__start_callbacks(stbi__context *s, stbi_io_callbacks *c, void *user)\n{\n   s->io = *c;\n   s->io_user_data = user;\n   s->buflen = sizeof(s->buffer_start);\n   s->read_from_callbacks = 1;\n   s->callback_already_read = 0;\n   s->img_buffer = s->img_buffer_original = s->buffer_start;\n   stbi__refill_buffer(s);\n   s->img_buffer_original_end = s->img_buffer_end;\n}\n\n#ifndef STBI_NO_STDIO\n\nstatic int stbi__stdio_read(void *user, char *data, int size)\n{\n   return (int) fread(data,1,size,(FILE*) user);\n}\n\nstatic void stbi__stdio_skip(void *user, int n)\n{\n   int ch;\n   fseek((FILE*) user, n, SEEK_CUR);\n   ch = fgetc((FILE*) user);  /* have to read a byte to reset feof()'s flag */\n   if (ch != EOF) {\n      ungetc(ch, (FILE *) user);  /* push byte back onto stream if valid. */\n   }\n}\n\nstatic int stbi__stdio_eof(void *user)\n{\n   return feof((FILE*) user) || ferror((FILE *) user);\n}\n\nstatic stbi_io_callbacks stbi__stdio_callbacks =\n{\n   stbi__stdio_read,\n   stbi__stdio_skip,\n   stbi__stdio_eof,\n};\n\nstatic void stbi__start_file(stbi__context *s, FILE *f)\n{\n   stbi__start_callbacks(s, &stbi__stdio_callbacks, (void *) f);\n}\n\n//static void stop_file(stbi__context *s) { }\n\n#endif // !STBI_NO_STDIO\n\nstatic void stbi__rewind(stbi__context *s)\n{\n   // conceptually rewind SHOULD rewind to the beginning of the stream,\n   // but we just rewind to the beginning of the initial buffer, because\n   // we only use it after doing 'test', which only ever looks at at most 92 bytes\n   s->img_buffer = s->img_buffer_original;\n   s->img_buffer_end = s->img_buffer_original_end;\n}\n\nenum\n{\n   STBI_ORDER_RGB,\n   STBI_ORDER_BGR\n};\n\ntypedef struct\n{\n   int bits_per_channel;\n   int num_channels;\n   int channel_order;\n} stbi__result_info;\n\n#ifndef STBI_NO_JPEG\nstatic int      stbi__jpeg_test(stbi__context *s);\nstatic void    *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri);\nstatic int      stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp);\n#endif\n\n#ifndef STBI_NO_PNG\nstatic int      stbi__png_test(stbi__context *s);\nstatic void    *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri);\nstatic int      stbi__png_info(stbi__context *s, int *x, int *y, int *comp);\nstatic int      stbi__png_is16(stbi__context *s);\n#endif\n\n#ifndef STBI_NO_BMP\nstatic int      stbi__bmp_test(stbi__context *s);\nstatic void    *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri);\nstatic int      stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp);\n#endif\n\n#ifndef STBI_NO_TGA\nstatic int      stbi__tga_test(stbi__context *s);\nstatic void    *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri);\nstatic int      stbi__tga_info(stbi__context *s, int *x, int *y, int *comp);\n#endif\n\n#ifndef STBI_NO_PSD\nstatic int      stbi__psd_test(stbi__context *s);\nstatic void    *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc);\nstatic int      stbi__psd_info(stbi__context *s, int *x, int *y, int *comp);\nstatic int      stbi__psd_is16(stbi__context *s);\n#endif\n\n#ifndef STBI_NO_HDR\nstatic int      stbi__hdr_test(stbi__context *s);\nstatic float   *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri);\nstatic int      stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp);\n#endif\n\n#ifndef STBI_NO_PIC\nstatic int      stbi__pic_test(stbi__context *s);\nstatic void    *stbi__pic_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri);\nstatic int      stbi__pic_info(stbi__context *s, int *x, int *y, int *comp);\n#endif\n\n#ifndef STBI_NO_GIF\nstatic int      stbi__gif_test(stbi__context *s);\nstatic void    *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri);\nstatic void    *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp, int req_comp);\nstatic int      stbi__gif_info(stbi__context *s, int *x, int *y, int *comp);\n#endif\n\n#ifndef STBI_NO_PNM\nstatic int      stbi__pnm_test(stbi__context *s);\nstatic void    *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri);\nstatic int      stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp);\nstatic int      stbi__pnm_is16(stbi__context *s);\n#endif\n\nstatic\n#ifdef STBI_THREAD_LOCAL\nSTBI_THREAD_LOCAL\n#endif\nconst char *stbi__g_failure_reason;\n\nSTBIDEF const char *stbi_failure_reason(void)\n{\n   return stbi__g_failure_reason;\n}\n\n#ifndef STBI_NO_FAILURE_STRINGS\nstatic int stbi__err(const char *str)\n{\n   stbi__g_failure_reason = str;\n   return 0;\n}\n#endif\n\nstatic void *stbi__malloc(size_t size)\n{\n    return STBI_MALLOC(size);\n}\n\n// stb_image uses ints pervasively, including for offset calculations.\n// therefore the largest decoded image size we can support with the\n// current code, even on 64-bit targets, is INT_MAX. this is not a\n// significant limitation for the intended use case.\n//\n// we do, however, need to make sure our size calculations don't\n// overflow. hence a few helper functions for size calculations that\n// multiply integers together, making sure that they're non-negative\n// and no overflow occurs.\n\n// return 1 if the sum is valid, 0 on overflow.\n// negative terms are considered invalid.\nstatic int stbi__addsizes_valid(int a, int b)\n{\n   if (b < 0) return 0;\n   // now 0 <= b <= INT_MAX, hence also\n   // 0 <= INT_MAX - b <= INTMAX.\n   // And \"a + b <= INT_MAX\" (which might overflow) is the\n   // same as a <= INT_MAX - b (no overflow)\n   return a <= INT_MAX - b;\n}\n\n// returns 1 if the product is valid, 0 on overflow.\n// negative factors are considered invalid.\nstatic int stbi__mul2sizes_valid(int a, int b)\n{\n   if (a < 0 || b < 0) return 0;\n   if (b == 0) return 1; // mul-by-0 is always safe\n   // portable way to check for no overflows in a*b\n   return a <= INT_MAX/b;\n}\n\n#if !defined(STBI_NO_JPEG) || !defined(STBI_NO_PNG) || !defined(STBI_NO_TGA) || !defined(STBI_NO_HDR)\n// returns 1 if \"a*b + add\" has no negative terms/factors and doesn't overflow\nstatic int stbi__mad2sizes_valid(int a, int b, int add)\n{\n   return stbi__mul2sizes_valid(a, b) && stbi__addsizes_valid(a*b, add);\n}\n#endif\n\n// returns 1 if \"a*b*c + add\" has no negative terms/factors and doesn't overflow\nstatic int stbi__mad3sizes_valid(int a, int b, int c, int add)\n{\n   return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a*b, c) &&\n      stbi__addsizes_valid(a*b*c, add);\n}\n\n// returns 1 if \"a*b*c*d + add\" has no negative terms/factors and doesn't overflow\n#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) || !defined(STBI_NO_PNM)\nstatic int stbi__mad4sizes_valid(int a, int b, int c, int d, int add)\n{\n   return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a*b, c) &&\n      stbi__mul2sizes_valid(a*b*c, d) && stbi__addsizes_valid(a*b*c*d, add);\n}\n#endif\n\n#if !defined(STBI_NO_JPEG) || !defined(STBI_NO_PNG) || !defined(STBI_NO_TGA) || !defined(STBI_NO_HDR)\n// mallocs with size overflow checking\nstatic void *stbi__malloc_mad2(int a, int b, int add)\n{\n   if (!stbi__mad2sizes_valid(a, b, add)) return NULL;\n   return stbi__malloc(a*b + add);\n}\n#endif\n\nstatic void *stbi__malloc_mad3(int a, int b, int c, int add)\n{\n   if (!stbi__mad3sizes_valid(a, b, c, add)) return NULL;\n   return stbi__malloc(a*b*c + add);\n}\n\n#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) || !defined(STBI_NO_PNM)\nstatic void *stbi__malloc_mad4(int a, int b, int c, int d, int add)\n{\n   if (!stbi__mad4sizes_valid(a, b, c, d, add)) return NULL;\n   return stbi__malloc(a*b*c*d + add);\n}\n#endif\n\n// stbi__err - error\n// stbi__errpf - error returning pointer to float\n// stbi__errpuc - error returning pointer to unsigned char\n\n#ifdef STBI_NO_FAILURE_STRINGS\n   #define stbi__err(x,y)  0\n#elif defined(STBI_FAILURE_USERMSG)\n   #define stbi__err(x,y)  stbi__err(y)\n#else\n   #define stbi__err(x,y)  stbi__err(x)\n#endif\n\n#define stbi__errpf(x,y)   ((float *)(size_t) (stbi__err(x,y)?NULL:NULL))\n#define stbi__errpuc(x,y)  ((unsigned char *)(size_t) (stbi__err(x,y)?NULL:NULL))\n\n__attribute__ ((visibility (\"default\"))) void stbi_image_free(void *retval_from_stbi_load)\n{\n   STBI_FREE(retval_from_stbi_load);\n}\n\n#ifndef STBI_NO_LINEAR\nstatic float   *stbi__ldr_to_hdr(stbi_uc *data, int x, int y, int comp);\n#endif\n\n#ifndef STBI_NO_HDR\nstatic stbi_uc *stbi__hdr_to_ldr(float   *data, int x, int y, int comp);\n#endif\n\nstatic int stbi__vertically_flip_on_load_global = 0;\n\n__attribute__ ((visibility (\"default\"))) void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip)\n{\n   stbi__vertically_flip_on_load_global = flag_true_if_should_flip;\n}\n\n#ifndef STBI_THREAD_LOCAL\n#define stbi__vertically_flip_on_load  stbi__vertically_flip_on_load_global\n#else\nstatic STBI_THREAD_LOCAL int stbi__vertically_flip_on_load_local, stbi__vertically_flip_on_load_set;\n\nSTBIDEF void stbi_set_flip_vertically_on_load_thread(int flag_true_if_should_flip)\n{\n   stbi__vertically_flip_on_load_local = flag_true_if_should_flip;\n   stbi__vertically_flip_on_load_set = 1;\n}\n\n#define stbi__vertically_flip_on_load  (stbi__vertically_flip_on_load_set       \\\n                                         ? stbi__vertically_flip_on_load_local  \\\n                                         : stbi__vertically_flip_on_load_global)\n#endif // STBI_THREAD_LOCAL\n\nstatic void *stbi__load_main(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc)\n{\n   memset(ri, 0, sizeof(*ri)); // make sure it's initialized if we add new fields\n   ri->bits_per_channel = 8; // default is 8 so most paths don't have to be changed\n   ri->channel_order = STBI_ORDER_RGB; // all current input & output are this, but this is here so we can add BGR order\n   ri->num_channels = 0;\n\n   // test the formats with a very explicit header first (at least a FOURCC\n   // or distinctive magic number first)\n   #ifndef STBI_NO_PNG\n   if (stbi__png_test(s))  return stbi__png_load(s,x,y,comp,req_comp, ri);\n   #endif\n   #ifndef STBI_NO_BMP\n   if (stbi__bmp_test(s))  return stbi__bmp_load(s,x,y,comp,req_comp, ri);\n   #endif\n   #ifndef STBI_NO_GIF\n   if (stbi__gif_test(s))  return stbi__gif_load(s,x,y,comp,req_comp, ri);\n   #endif\n   #ifndef STBI_NO_PSD\n   if (stbi__psd_test(s))  return stbi__psd_load(s,x,y,comp,req_comp, ri, bpc);\n   #else\n   STBI_NOTUSED(bpc);\n   #endif\n   #ifndef STBI_NO_PIC\n   if (stbi__pic_test(s))  return stbi__pic_load(s,x,y,comp,req_comp, ri);\n   #endif\n\n   // then the formats that can end up attempting to load with just 1 or 2\n   // bytes matching expectations; these are prone to false positives, so\n   // try them later\n   #ifndef STBI_NO_JPEG\n   if (stbi__jpeg_test(s)) return stbi__jpeg_load(s,x,y,comp,req_comp, ri);\n   #endif\n   #ifndef STBI_NO_PNM\n   if (stbi__pnm_test(s))  return stbi__pnm_load(s,x,y,comp,req_comp, ri);\n   #endif\n\n   #ifndef STBI_NO_HDR\n   if (stbi__hdr_test(s)) {\n      float *hdr = stbi__hdr_load(s, x,y,comp,req_comp, ri);\n      return stbi__hdr_to_ldr(hdr, *x, *y, req_comp ? req_comp : *comp);\n   }\n   #endif\n\n   #ifndef STBI_NO_TGA\n   // test tga last because it's a crappy test!\n   if (stbi__tga_test(s))\n      return stbi__tga_load(s,x,y,comp,req_comp, ri);\n   #endif\n\n   return stbi__errpuc(\"unknown image type\", \"Image not of any known type, or corrupt\");\n}\n\nstatic stbi_uc *stbi__convert_16_to_8(stbi__uint16 *orig, int w, int h, int channels)\n{\n   int i;\n   int img_len = w * h * channels;\n   stbi_uc *reduced;\n\n   reduced = (stbi_uc *) stbi__malloc(img_len);\n   if (reduced == NULL) return stbi__errpuc(\"outofmem\", \"Out of memory\");\n\n   for (i = 0; i < img_len; ++i)\n      reduced[i] = (stbi_uc)((orig[i] >> 8) & 0xFF); // top half of each byte is sufficient approx of 16->8 bit scaling\n\n   STBI_FREE(orig);\n   return reduced;\n}\n\nstatic stbi__uint16 *stbi__convert_8_to_16(stbi_uc *orig, int w, int h, int channels)\n{\n   int i;\n   int img_len = w * h * channels;\n   stbi__uint16 *enlarged;\n\n   enlarged = (stbi__uint16 *) stbi__malloc(img_len*2);\n   if (enlarged == NULL) return (stbi__uint16 *) stbi__errpuc(\"outofmem\", \"Out of memory\");\n\n   for (i = 0; i < img_len; ++i)\n      enlarged[i] = (stbi__uint16)((orig[i] << 8) + orig[i]); // replicate to high and low byte, maps 0->0, 255->0xffff\n\n   STBI_FREE(orig);\n   return enlarged;\n}\n\nstatic void stbi__vertical_flip(void *image, int w, int h, int bytes_per_pixel)\n{\n   int row;\n   size_t bytes_per_row = (size_t)w * bytes_per_pixel;\n   stbi_uc temp[2048];\n   stbi_uc *bytes = (stbi_uc *)image;\n\n   for (row = 0; row < (h>>1); row++) {\n      stbi_uc *row0 = bytes + row*bytes_per_row;\n      stbi_uc *row1 = bytes + (h - row - 1)*bytes_per_row;\n      // swap row0 with row1\n      size_t bytes_left = bytes_per_row;\n      while (bytes_left) {\n         size_t bytes_copy = (bytes_left < sizeof(temp)) ? bytes_left : sizeof(temp);\n         memcpy(temp, row0, bytes_copy);\n         memcpy(row0, row1, bytes_copy);\n         memcpy(row1, temp, bytes_copy);\n         row0 += bytes_copy;\n         row1 += bytes_copy;\n         bytes_left -= bytes_copy;\n      }\n   }\n}\n\n#ifndef STBI_NO_GIF\nstatic void stbi__vertical_flip_slices(void *image, int w, int h, int z, int bytes_per_pixel)\n{\n   int slice;\n   int slice_size = w * h * bytes_per_pixel;\n\n   stbi_uc *bytes = (stbi_uc *)image;\n   for (slice = 0; slice < z; ++slice) {\n      stbi__vertical_flip(bytes, w, h, bytes_per_pixel);\n      bytes += slice_size;\n   }\n}\n#endif\n\nstatic unsigned char *stbi__load_and_postprocess_8bit(stbi__context *s, int *x, int *y, int *comp, int req_comp)\n{\n   stbi__result_info ri;\n   void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 8);\n\n   if (result == NULL)\n      return NULL;\n\n   // it is the responsibility of the loaders to make sure we get either 8 or 16 bit.\n   STBI_ASSERT(ri.bits_per_channel == 8 || ri.bits_per_channel == 16);\n\n   if (ri.bits_per_channel != 8) {\n      result = stbi__convert_16_to_8((stbi__uint16 *) result, *x, *y, req_comp == 0 ? *comp : req_comp);\n      ri.bits_per_channel = 8;\n   }\n\n   // @TODO: move stbi__convert_format to here\n\n   if (stbi__vertically_flip_on_load) {\n      int channels = req_comp ? req_comp : *comp;\n      stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi_uc));\n   }\n\n   return (unsigned char *) result;\n}\n\nstatic stbi__uint16 *stbi__load_and_postprocess_16bit(stbi__context *s, int *x, int *y, int *comp, int req_comp)\n{\n   stbi__result_info ri;\n   void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 16);\n\n   if (result == NULL)\n      return NULL;\n\n   // it is the responsibility of the loaders to make sure we get either 8 or 16 bit.\n   STBI_ASSERT(ri.bits_per_channel == 8 || ri.bits_per_channel == 16);\n\n   if (ri.bits_per_channel != 16) {\n      result = stbi__convert_8_to_16((stbi_uc *) result, *x, *y, req_comp == 0 ? *comp : req_comp);\n      ri.bits_per_channel = 16;\n   }\n\n   // @TODO: move stbi__convert_format16 to here\n   // @TODO: special case RGB-to-Y (and RGBA-to-YA) for 8-bit-to-16-bit case to keep more precision\n\n   if (stbi__vertically_flip_on_load) {\n      int channels = req_comp ? req_comp : *comp;\n      stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi__uint16));\n   }\n\n   return (stbi__uint16 *) result;\n}\n\n#if !defined(STBI_NO_HDR) && !defined(STBI_NO_LINEAR)\nstatic void stbi__float_postprocess(float *result, int *x, int *y, int *comp, int req_comp)\n{\n   if (stbi__vertically_flip_on_load && result != NULL) {\n      int channels = req_comp ? req_comp : *comp;\n      stbi__vertical_flip(result, *x, *y, channels * sizeof(float));\n   }\n}\n#endif\n\n#ifndef STBI_NO_STDIO\n\n#if defined(_WIN32) && defined(STBI_WINDOWS_UTF8)\nSTBI_EXTERN __declspec(dllimport) int __stdcall MultiByteToWideChar(unsigned int cp, unsigned long flags, const char *str, int cbmb, wchar_t *widestr, int cchwide);\nSTBI_EXTERN __declspec(dllimport) int __stdcall WideCharToMultiByte(unsigned int cp, unsigned long flags, const wchar_t *widestr, int cchwide, char *str, int cbmb, const char *defchar, int *used_default);\n#endif\n\n#if defined(_WIN32) && defined(STBI_WINDOWS_UTF8)\nSTBIDEF int stbi_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t* input)\n{\n\treturn WideCharToMultiByte(65001 /* UTF8 */, 0, input, -1, buffer, (int) bufferlen, NULL, NULL);\n}\n#endif\n\nstatic FILE *stbi__fopen(char const *filename, char const *mode)\n{\n   FILE *f;\n#if defined(_WIN32) && defined(STBI_WINDOWS_UTF8)\n   wchar_t wMode[64];\n   wchar_t wFilename[1024];\n\tif (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, filename, -1, wFilename, sizeof(wFilename)/sizeof(*wFilename)))\n      return 0;\n\n\tif (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, mode, -1, wMode, sizeof(wMode)/sizeof(*wMode)))\n      return 0;\n\n#if defined(_MSC_VER) && _MSC_VER >= 1400\n\tif (0 != _wfopen_s(&f, wFilename, wMode))\n\t\tf = 0;\n#else\n   f = _wfopen(wFilename, wMode);\n#endif\n\n#elif defined(_MSC_VER) && _MSC_VER >= 1400\n   if (0 != fopen_s(&f, filename, mode))\n      f=0;\n#else\n   f = fopen(filename, mode);\n#endif\n   return f;\n}\n\n\nSTBIDEF stbi_uc *stbi_load(char const *filename, int *x, int *y, int *comp, int req_comp)\n{\n   FILE *f = stbi__fopen(filename, \"rb\");\n   unsigned char *result;\n   if (!f) return stbi__errpuc(\"can't fopen\", \"Unable to open file\");\n   result = stbi_load_from_file(f,x,y,comp,req_comp);\n   fclose(f);\n   return result;\n}\n\nSTBIDEF stbi_uc *stbi_load_from_file(FILE *f, int *x, int *y, int *comp, int req_comp)\n{\n   unsigned char *result;\n   stbi__context s;\n   stbi__start_file(&s,f);\n   result = stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp);\n   if (result) {\n      // need to 'unget' all the characters in the IO buffer\n      fseek(f, - (int) (s.img_buffer_end - s.img_buffer), SEEK_CUR);\n   }\n   return result;\n}\n\nSTBIDEF stbi__uint16 *stbi_load_from_file_16(FILE *f, int *x, int *y, int *comp, int req_comp)\n{\n   stbi__uint16 *result;\n   stbi__context s;\n   stbi__start_file(&s,f);\n   result = stbi__load_and_postprocess_16bit(&s,x,y,comp,req_comp);\n   if (result) {\n      // need to 'unget' all the characters in the IO buffer\n      fseek(f, - (int) (s.img_buffer_end - s.img_buffer), SEEK_CUR);\n   }\n   return result;\n}\n\nSTBIDEF stbi_us *stbi_load_16(char const *filename, int *x, int *y, int *comp, int req_comp)\n{\n   FILE *f = stbi__fopen(filename, \"rb\");\n   stbi__uint16 *result;\n   if (!f) return (stbi_us *) stbi__errpuc(\"can't fopen\", \"Unable to open file\");\n   result = stbi_load_from_file_16(f,x,y,comp,req_comp);\n   fclose(f);\n   return result;\n}\n\n\n#endif //!STBI_NO_STDIO\n\nSTBIDEF stbi_us *stbi_load_16_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels)\n{\n   stbi__context s;\n   stbi__start_mem(&s,buffer,len);\n   return stbi__load_and_postprocess_16bit(&s,x,y,channels_in_file,desired_channels);\n}\n\nSTBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels)\n{\n   stbi__context s;\n   stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user);\n   return stbi__load_and_postprocess_16bit(&s,x,y,channels_in_file,desired_channels);\n}\n\nSTBIDEF stbi_uc *stbi_load_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp)\n{\n   stbi__context s;\n   stbi__start_mem(&s,buffer,len);\n   return stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp);\n}\n\nSTBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp, int req_comp)\n{\n   stbi__context s;\n   stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user);\n   return stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp);\n}\n\n#ifndef STBI_NO_GIF\n__attribute__ ((visibility (\"default\"))) stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x, int *y, int *z, int *comp, int req_comp)\n{\n   unsigned char *result;\n   stbi__context s;\n   stbi__start_mem(&s,buffer,len);\n\n   result = (unsigned char*) stbi__load_gif_main(&s, delays, x, y, z, comp, req_comp);\n   if (stbi__vertically_flip_on_load) {\n      stbi__vertical_flip_slices( result, *x, *y, *z, *comp );\n   }\n\n   return result;\n}\n#endif\n\n#ifndef STBI_NO_LINEAR\nstatic float *stbi__loadf_main(stbi__context *s, int *x, int *y, int *comp, int req_comp)\n{\n   unsigned char *data;\n   #ifndef STBI_NO_HDR\n   if (stbi__hdr_test(s)) {\n      stbi__result_info ri;\n      float *hdr_data = stbi__hdr_load(s,x,y,comp,req_comp, &ri);\n      if (hdr_data)\n         stbi__float_postprocess(hdr_data,x,y,comp,req_comp);\n      return hdr_data;\n   }\n   #endif\n   data = stbi__load_and_postprocess_8bit(s, x, y, comp, req_comp);\n   if (data)\n      return stbi__ldr_to_hdr(data, *x, *y, req_comp ? req_comp : *comp);\n   return stbi__errpf(\"unknown image type\", \"Image not of any known type, or corrupt\");\n}\n\nSTBIDEF float *stbi_loadf_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp)\n{\n   stbi__context s;\n   stbi__start_mem(&s,buffer,len);\n   return stbi__loadf_main(&s,x,y,comp,req_comp);\n}\n\nSTBIDEF float *stbi_loadf_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp, int req_comp)\n{\n   stbi__context s;\n   stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user);\n   return stbi__loadf_main(&s,x,y,comp,req_comp);\n}\n\n#ifndef STBI_NO_STDIO\nSTBIDEF float *stbi_loadf(char const *filename, int *x, int *y, int *comp, int req_comp)\n{\n   float *result;\n   FILE *f = stbi__fopen(filename, \"rb\");\n   if (!f) return stbi__errpf(\"can't fopen\", \"Unable to open file\");\n   result = stbi_loadf_from_file(f,x,y,comp,req_comp);\n   fclose(f);\n   return result;\n}\n\nSTBIDEF float *stbi_loadf_from_file(FILE *f, int *x, int *y, int *comp, int req_comp)\n{\n   stbi__context s;\n   stbi__start_file(&s,f);\n   return stbi__loadf_main(&s,x,y,comp,req_comp);\n}\n#endif // !STBI_NO_STDIO\n\n#endif // !STBI_NO_LINEAR\n\n// these is-hdr-or-not is defined independent of whether STBI_NO_LINEAR is\n// defined, for API simplicity; if STBI_NO_LINEAR is defined, it always\n// reports false!\n\nSTBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len)\n{\n   #ifndef STBI_NO_HDR\n   stbi__context s;\n   stbi__start_mem(&s,buffer,len);\n   return stbi__hdr_test(&s);\n   #else\n   STBI_NOTUSED(buffer);\n   STBI_NOTUSED(len);\n   return 0;\n   #endif\n}\n\n#ifndef STBI_NO_STDIO\nSTBIDEF int      stbi_is_hdr          (char const *filename)\n{\n   FILE *f = stbi__fopen(filename, \"rb\");\n   int result=0;\n   if (f) {\n      result = stbi_is_hdr_from_file(f);\n      fclose(f);\n   }\n   return result;\n}\n\nSTBIDEF int stbi_is_hdr_from_file(FILE *f)\n{\n   #ifndef STBI_NO_HDR\n   long pos = ftell(f);\n   int res;\n   stbi__context s;\n   stbi__start_file(&s,f);\n   res = stbi__hdr_test(&s);\n   fseek(f, pos, SEEK_SET);\n   return res;\n   #else\n   STBI_NOTUSED(f);\n   return 0;\n   #endif\n}\n#endif // !STBI_NO_STDIO\n\nSTBIDEF int      stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clbk, void *user)\n{\n   #ifndef STBI_NO_HDR\n   stbi__context s;\n   stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user);\n   return stbi__hdr_test(&s);\n   #else\n   STBI_NOTUSED(clbk);\n   STBI_NOTUSED(user);\n   return 0;\n   #endif\n}\n\n#ifndef STBI_NO_LINEAR\nstatic float stbi__l2h_gamma=2.2f, stbi__l2h_scale=1.0f;\n\nSTBIDEF void   stbi_ldr_to_hdr_gamma(float gamma) { stbi__l2h_gamma = gamma; }\nSTBIDEF void   stbi_ldr_to_hdr_scale(float scale) { stbi__l2h_scale = scale; }\n#endif\n\nstatic float stbi__h2l_gamma_i=1.0f/2.2f, stbi__h2l_scale_i=1.0f;\n\nSTBIDEF void   stbi_hdr_to_ldr_gamma(float gamma) { stbi__h2l_gamma_i = 1/gamma; }\nSTBIDEF void   stbi_hdr_to_ldr_scale(float scale) { stbi__h2l_scale_i = 1/scale; }\n\n\n//////////////////////////////////////////////////////////////////////////////\n//\n// Common code used by all image loaders\n//\n\nenum\n{\n   STBI__SCAN_load=0,\n   STBI__SCAN_type,\n   STBI__SCAN_header\n};\n\nstatic void stbi__refill_buffer(stbi__context *s)\n{\n   int n = (s->io.read)(s->io_user_data,(char*)s->buffer_start,s->buflen);\n   s->callback_already_read += (int) (s->img_buffer - s->img_buffer_original);\n   if (n == 0) {\n      // at end of file, treat same as if from memory, but need to handle case\n      // where s->img_buffer isn't pointing to safe memory, e.g. 0-byte file\n      s->read_from_callbacks = 0;\n      s->img_buffer = s->buffer_start;\n      s->img_buffer_end = s->buffer_start+1;\n      *s->img_buffer = 0;\n   } else {\n      s->img_buffer = s->buffer_start;\n      s->img_buffer_end = s->buffer_start + n;\n   }\n}\n\nstbi_inline static stbi_uc stbi__get8(stbi__context *s)\n{\n   if (s->img_buffer < s->img_buffer_end)\n      return *s->img_buffer++;\n   if (s->read_from_callbacks) {\n      stbi__refill_buffer(s);\n      return *s->img_buffer++;\n   }\n   return 0;\n}\n\n#if defined(STBI_NO_JPEG) && defined(STBI_NO_HDR) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM)\n// nothing\n#else\nstbi_inline static int stbi__at_eof(stbi__context *s)\n{\n   if (s->io.read) {\n      if (!(s->io.eof)(s->io_user_data)) return 0;\n      // if feof() is true, check if buffer = end\n      // special case: we've only got the special 0 character at the end\n      if (s->read_from_callbacks == 0) return 1;\n   }\n\n   return s->img_buffer >= s->img_buffer_end;\n}\n#endif\n\n#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC)\n// nothing\n#else\nstatic void stbi__skip(stbi__context *s, int n)\n{\n   if (n == 0) return;  // already there!\n   if (n < 0) {\n      s->img_buffer = s->img_buffer_end;\n      return;\n   }\n   if (s->io.read) {\n      int blen = (int) (s->img_buffer_end - s->img_buffer);\n      if (blen < n) {\n         s->img_buffer = s->img_buffer_end;\n         (s->io.skip)(s->io_user_data, n - blen);\n         return;\n      }\n   }\n   s->img_buffer += n;\n}\n#endif\n\n#if defined(STBI_NO_PNG) && defined(STBI_NO_TGA) && defined(STBI_NO_HDR) && defined(STBI_NO_PNM)\n// nothing\n#else\nstatic int stbi__getn(stbi__context *s, stbi_uc *buffer, int n)\n{\n   if (s->io.read) {\n      int blen = (int) (s->img_buffer_end - s->img_buffer);\n      if (blen < n) {\n         int res, count;\n\n         memcpy(buffer, s->img_buffer, blen);\n\n         count = (s->io.read)(s->io_user_data, (char*) buffer + blen, n - blen);\n         res = (count == (n-blen));\n         s->img_buffer = s->img_buffer_end;\n         return res;\n      }\n   }\n\n   if (s->img_buffer+n <= s->img_buffer_end) {\n      memcpy(buffer, s->img_buffer, n);\n      s->img_buffer += n;\n      return 1;\n   } else\n      return 0;\n}\n#endif\n\n#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_PSD) && defined(STBI_NO_PIC)\n// nothing\n#else\nstatic int stbi__get16be(stbi__context *s)\n{\n   int z = stbi__get8(s);\n   return (z << 8) + stbi__get8(s);\n}\n#endif\n\n#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) && defined(STBI_NO_PIC)\n// nothing\n#else\nstatic stbi__uint32 stbi__get32be(stbi__context *s)\n{\n   stbi__uint32 z = stbi__get16be(s);\n   return (z << 16) + stbi__get16be(s);\n}\n#endif\n\n#if defined(STBI_NO_BMP) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF)\n// nothing\n#else\nstatic int stbi__get16le(stbi__context *s)\n{\n   int z = stbi__get8(s);\n   return z + (stbi__get8(s) << 8);\n}\n#endif\n\n#ifndef STBI_NO_BMP\nstatic stbi__uint32 stbi__get32le(stbi__context *s)\n{\n   stbi__uint32 z = stbi__get16le(s);\n   z += (stbi__uint32)stbi__get16le(s) << 16;\n   return z;\n}\n#endif\n\n#define STBI__BYTECAST(x)  ((stbi_uc) ((x) & 255))  // truncate int to byte without warnings\n\n#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM)\n// nothing\n#else\n//////////////////////////////////////////////////////////////////////////////\n//\n//  generic converter from built-in img_n to req_comp\n//    individual types do this automatically as much as possible (e.g. jpeg\n//    does all cases internally since it needs to colorspace convert anyway,\n//    and it never has alpha, so very few cases ). png can automatically\n//    interleave an alpha=255 channel, but falls back to this for other cases\n//\n//  assume data buffer is malloced, so malloc a new one and free that one\n//  only failure mode is malloc failing\n\nstatic stbi_uc stbi__compute_y(int r, int g, int b)\n{\n   return (stbi_uc) (((r*77) + (g*150) +  (29*b)) >> 8);\n}\n#endif\n\n#if defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM)\n// nothing\n#else\nstatic unsigned char *stbi__convert_format(unsigned char *data, int img_n, int req_comp, unsigned int x, unsigned int y)\n{\n   int i,j;\n   unsigned char *good;\n\n   if (req_comp == img_n) return data;\n   STBI_ASSERT(req_comp >= 1 && req_comp <= 4);\n\n   good = (unsigned char *) stbi__malloc_mad3(req_comp, x, y, 0);\n   if (good == NULL) {\n      STBI_FREE(data);\n      return stbi__errpuc(\"outofmem\", \"Out of memory\");\n   }\n\n   for (j=0; j < (int) y; ++j) {\n      unsigned char *src  = data + j * x * img_n   ;\n      unsigned char *dest = good + j * x * req_comp;\n\n      #define STBI__COMBO(a,b)  ((a)*8+(b))\n      #define STBI__CASE(a,b)   case STBI__COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b)\n      // convert source image with img_n components to one with req_comp components;\n      // avoid switch per pixel, so use switch per scanline and massive macros\n      switch (STBI__COMBO(img_n, req_comp)) {\n         STBI__CASE(1,2) { dest[0]=src[0]; dest[1]=255;                                     } break;\n         STBI__CASE(1,3) { dest[0]=dest[1]=dest[2]=src[0];                                  } break;\n         STBI__CASE(1,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=255;                     } break;\n         STBI__CASE(2,1) { dest[0]=src[0];                                                  } break;\n         STBI__CASE(2,3) { dest[0]=dest[1]=dest[2]=src[0];                                  } break;\n         STBI__CASE(2,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=src[1];                  } break;\n         STBI__CASE(3,4) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2];dest[3]=255;        } break;\n         STBI__CASE(3,1) { dest[0]=stbi__compute_y(src[0],src[1],src[2]);                   } break;\n         STBI__CASE(3,2) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); dest[1] = 255;    } break;\n         STBI__CASE(4,1) { dest[0]=stbi__compute_y(src[0],src[1],src[2]);                   } break;\n         STBI__CASE(4,2) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); dest[1] = src[3]; } break;\n         STBI__CASE(4,3) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2];                    } break;\n         default: STBI_ASSERT(0); STBI_FREE(data); STBI_FREE(good); return stbi__errpuc(\"unsupported\", \"Unsupported format conversion\");\n      }\n      #undef STBI__CASE\n   }\n\n   STBI_FREE(data);\n   return good;\n}\n#endif\n\n#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD)\n// nothing\n#else\nstatic stbi__uint16 stbi__compute_y_16(int r, int g, int b)\n{\n   return (stbi__uint16) (((r*77) + (g*150) +  (29*b)) >> 8);\n}\n#endif\n\n#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD)\n// nothing\n#else\nstatic stbi__uint16 *stbi__convert_format16(stbi__uint16 *data, int img_n, int req_comp, unsigned int x, unsigned int y)\n{\n   int i,j;\n   stbi__uint16 *good;\n\n   if (req_comp == img_n) return data;\n   STBI_ASSERT(req_comp >= 1 && req_comp <= 4);\n\n   good = (stbi__uint16 *) stbi__malloc(req_comp * x * y * 2);\n   if (good == NULL) {\n      STBI_FREE(data);\n      return (stbi__uint16 *) stbi__errpuc(\"outofmem\", \"Out of memory\");\n   }\n\n   for (j=0; j < (int) y; ++j) {\n      stbi__uint16 *src  = data + j * x * img_n   ;\n      stbi__uint16 *dest = good + j * x * req_comp;\n\n      #define STBI__COMBO(a,b)  ((a)*8+(b))\n      #define STBI__CASE(a,b)   case STBI__COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b)\n      // convert source image with img_n components to one with req_comp components;\n      // avoid switch per pixel, so use switch per scanline and massive macros\n      switch (STBI__COMBO(img_n, req_comp)) {\n         STBI__CASE(1,2) { dest[0]=src[0]; dest[1]=0xffff;                                     } break;\n         STBI__CASE(1,3) { dest[0]=dest[1]=dest[2]=src[0];                                     } break;\n         STBI__CASE(1,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=0xffff;                     } break;\n         STBI__CASE(2,1) { dest[0]=src[0];                                                     } break;\n         STBI__CASE(2,3) { dest[0]=dest[1]=dest[2]=src[0];                                     } break;\n         STBI__CASE(2,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=src[1];                     } break;\n         STBI__CASE(3,4) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2];dest[3]=0xffff;        } break;\n         STBI__CASE(3,1) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]);                   } break;\n         STBI__CASE(3,2) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); dest[1] = 0xffff; } break;\n         STBI__CASE(4,1) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]);                   } break;\n         STBI__CASE(4,2) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); dest[1] = src[3]; } break;\n         STBI__CASE(4,3) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2];                       } break;\n         default: STBI_ASSERT(0); STBI_FREE(data); STBI_FREE(good); return (stbi__uint16*) stbi__errpuc(\"unsupported\", \"Unsupported format conversion\");\n      }\n      #undef STBI__CASE\n   }\n\n   STBI_FREE(data);\n   return good;\n}\n#endif\n\n#ifndef STBI_NO_LINEAR\nstatic float   *stbi__ldr_to_hdr(stbi_uc *data, int x, int y, int comp)\n{\n   int i,k,n;\n   float *output;\n   if (!data) return NULL;\n   output = (float *) stbi__malloc_mad4(x, y, comp, sizeof(float), 0);\n   if (output == NULL) { STBI_FREE(data); return stbi__errpf(\"outofmem\", \"Out of memory\"); }\n   // compute number of non-alpha components\n   if (comp & 1) n = comp; else n = comp-1;\n   for (i=0; i < x*y; ++i) {\n      for (k=0; k < n; ++k) {\n         output[i*comp + k] = (float) (pow(data[i*comp+k]/255.0f, stbi__l2h_gamma) * stbi__l2h_scale);\n      }\n   }\n   if (n < comp) {\n      for (i=0; i < x*y; ++i) {\n         output[i*comp + n] = data[i*comp + n]/255.0f;\n      }\n   }\n   STBI_FREE(data);\n   return output;\n}\n#endif\n\n#ifndef STBI_NO_HDR\n#define stbi__float2int(x)   ((int) (x))\nstatic stbi_uc *stbi__hdr_to_ldr(float   *data, int x, int y, int comp)\n{\n   int i,k,n;\n   stbi_uc *output;\n   if (!data) return NULL;\n   output = (stbi_uc *) stbi__malloc_mad3(x, y, comp, 0);\n   if (output == NULL) { STBI_FREE(data); return stbi__errpuc(\"outofmem\", \"Out of memory\"); }\n   // compute number of non-alpha components\n   if (comp & 1) n = comp; else n = comp-1;\n   for (i=0; i < x*y; ++i) {\n      for (k=0; k < n; ++k) {\n         float z = (float) pow(data[i*comp+k]*stbi__h2l_scale_i, stbi__h2l_gamma_i) * 255 + 0.5f;\n         if (z < 0) z = 0;\n         if (z > 255) z = 255;\n         output[i*comp + k] = (stbi_uc) stbi__float2int(z);\n      }\n      if (k < comp) {\n         float z = data[i*comp+k] * 255 + 0.5f;\n         if (z < 0) z = 0;\n         if (z > 255) z = 255;\n         output[i*comp + k] = (stbi_uc) stbi__float2int(z);\n      }\n   }\n   STBI_FREE(data);\n   return output;\n}\n#endif\n\n//////////////////////////////////////////////////////////////////////////////\n//\n//  \"baseline\" JPEG/JFIF decoder\n//\n//    simple implementation\n//      - doesn't support delayed output of y-dimension\n//      - simple interface (only one output format: 8-bit interleaved RGB)\n//      - doesn't try to recover corrupt jpegs\n//      - doesn't allow partial loading, loading multiple at once\n//      - still fast on x86 (copying globals into locals doesn't help x86)\n//      - allocates lots of intermediate memory (full size of all components)\n//        - non-interleaved case requires this anyway\n//        - allows good upsampling (see next)\n//    high-quality\n//      - upsampled channels are bilinearly interpolated, even across blocks\n//      - quality integer IDCT derived from IJG's 'slow'\n//    performance\n//      - fast huffman; reasonable integer IDCT\n//      - some SIMD kernels for common paths on targets with SSE2/NEON\n//      - uses a lot of intermediate memory, could cache poorly\n\n#ifndef STBI_NO_JPEG\n\n// huffman decoding acceleration\n#define FAST_BITS   9  // larger handles more cases; smaller stomps less cache\n\ntypedef struct\n{\n   stbi_uc  fast[1 << FAST_BITS];\n   // weirdly, repacking this into AoS is a 10% speed loss, instead of a win\n   stbi__uint16 code[256];\n   stbi_uc  values[256];\n   stbi_uc  size[257];\n   unsigned int maxcode[18];\n   int    delta[17];   // old 'firstsymbol' - old 'firstcode'\n} stbi__huffman;\n\ntypedef struct\n{\n   stbi__context *s;\n   stbi__huffman huff_dc[4];\n   stbi__huffman huff_ac[4];\n   stbi__uint16 dequant[4][64];\n   stbi__int16 fast_ac[4][1 << FAST_BITS];\n\n// sizes for components, interleaved MCUs\n   int img_h_max, img_v_max;\n   int img_mcu_x, img_mcu_y;\n   int img_mcu_w, img_mcu_h;\n\n// definition of jpeg image component\n   struct\n   {\n      int id;\n      int h,v;\n      int tq;\n      int hd,ha;\n      int dc_pred;\n\n      int x,y,w2,h2;\n      stbi_uc *data;\n      void *raw_data, *raw_coeff;\n      stbi_uc *linebuf;\n      short   *coeff;   // progressive only\n      int      coeff_w, coeff_h; // number of 8x8 coefficient blocks\n   } img_comp[4];\n\n   stbi__uint32   code_buffer; // jpeg entropy-coded buffer\n   int            code_bits;   // number of valid bits\n   unsigned char  marker;      // marker seen while filling entropy buffer\n   int            nomore;      // flag if we saw a marker so must stop\n\n   int            progressive;\n   int            spec_start;\n   int            spec_end;\n   int            succ_high;\n   int            succ_low;\n   int            eob_run;\n   int            jfif;\n   int            app14_color_transform; // Adobe APP14 tag\n   int            rgb;\n\n   int scan_n, order[4];\n   int restart_interval, todo;\n\n// kernels\n   void (*idct_block_kernel)(stbi_uc *out, int out_stride, short data[64]);\n   void (*YCbCr_to_RGB_kernel)(stbi_uc *out, const stbi_uc *y, const stbi_uc *pcb, const stbi_uc *pcr, int count, int step);\n   stbi_uc *(*resample_row_hv_2_kernel)(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs);\n} stbi__jpeg;\n\nstatic int stbi__build_huffman(stbi__huffman *h, int *count)\n{\n   int i,j,k=0;\n   unsigned int code;\n   // build size list for each symbol (from JPEG spec)\n   for (i=0; i < 16; ++i)\n      for (j=0; j < count[i]; ++j)\n         h->size[k++] = (stbi_uc) (i+1);\n   h->size[k] = 0;\n\n   // compute actual symbols (from jpeg spec)\n   code = 0;\n   k = 0;\n   for(j=1; j <= 16; ++j) {\n      // compute delta to add to code to compute symbol id\n      h->delta[j] = k - code;\n      if (h->size[k] == j) {\n         while (h->size[k] == j)\n            h->code[k++] = (stbi__uint16) (code++);\n         if (code-1 >= (1u << j)) return stbi__err(\"bad code lengths\",\"Corrupt JPEG\");\n      }\n      // compute largest code + 1 for this size, preshifted as needed later\n      h->maxcode[j] = code << (16-j);\n      code <<= 1;\n   }\n   h->maxcode[j] = 0xffffffff;\n\n   // build non-spec acceleration table; 255 is flag for not-accelerated\n   memset(h->fast, 255, 1 << FAST_BITS);\n   for (i=0; i < k; ++i) {\n      int s = h->size[i];\n      if (s <= FAST_BITS) {\n         int c = h->code[i] << (FAST_BITS-s);\n         int m = 1 << (FAST_BITS-s);\n         for (j=0; j < m; ++j) {\n            h->fast[c+j] = (stbi_uc) i;\n         }\n      }\n   }\n   return 1;\n}\n\n// build a table that decodes both magnitude and value of small ACs in\n// one go.\nstatic void stbi__build_fast_ac(stbi__int16 *fast_ac, stbi__huffman *h)\n{\n   int i;\n   for (i=0; i < (1 << FAST_BITS); ++i) {\n      stbi_uc fast = h->fast[i];\n      fast_ac[i] = 0;\n      if (fast < 255) {\n         int rs = h->values[fast];\n         int run = (rs >> 4) & 15;\n         int magbits = rs & 15;\n         int len = h->size[fast];\n\n         if (magbits && len + magbits <= FAST_BITS) {\n            // magnitude code followed by receive_extend code\n            int k = ((i << len) & ((1 << FAST_BITS) - 1)) >> (FAST_BITS - magbits);\n            int m = 1 << (magbits - 1);\n            if (k < m) k += (~0U << magbits) + 1;\n            // if the result is small enough, we can fit it in fast_ac table\n            if (k >= -128 && k <= 127)\n               fast_ac[i] = (stbi__int16) ((k * 256) + (run * 16) + (len + magbits));\n         }\n      }\n   }\n}\n\nstatic void stbi__grow_buffer_unsafe(stbi__jpeg *j)\n{\n   do {\n      unsigned int b = j->nomore ? 0 : stbi__get8(j->s);\n      if (b == 0xff) {\n         int c = stbi__get8(j->s);\n         while (c == 0xff) c = stbi__get8(j->s); // consume fill bytes\n         if (c != 0) {\n            j->marker = (unsigned char) c;\n            j->nomore = 1;\n            return;\n         }\n      }\n      j->code_buffer |= b << (24 - j->code_bits);\n      j->code_bits += 8;\n   } while (j->code_bits <= 24);\n}\n\n// (1 << n) - 1\nstatic const stbi__uint32 stbi__bmask[17]={0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535};\n\n// decode a jpeg huffman value from the bitstream\nstbi_inline static int stbi__jpeg_huff_decode(stbi__jpeg *j, stbi__huffman *h)\n{\n   unsigned int temp;\n   int c,k;\n\n   if (j->code_bits < 16) stbi__grow_buffer_unsafe(j);\n\n   // look at the top FAST_BITS and determine what symbol ID it is,\n   // if the code is <= FAST_BITS\n   c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1);\n   k = h->fast[c];\n   if (k < 255) {\n      int s = h->size[k];\n      if (s > j->code_bits)\n         return -1;\n      j->code_buffer <<= s;\n      j->code_bits -= s;\n      return h->values[k];\n   }\n\n   // naive test is to shift the code_buffer down so k bits are\n   // valid, then test against maxcode. To speed this up, we've\n   // preshifted maxcode left so that it has (16-k) 0s at the\n   // end; in other words, regardless of the number of bits, it\n   // wants to be compared against something shifted to have 16;\n   // that way we don't need to shift inside the loop.\n   temp = j->code_buffer >> 16;\n   for (k=FAST_BITS+1 ; ; ++k)\n      if (temp < h->maxcode[k])\n         break;\n   if (k == 17) {\n      // error! code not found\n      j->code_bits -= 16;\n      return -1;\n   }\n\n   if (k > j->code_bits)\n      return -1;\n\n   // convert the huffman code to the symbol id\n   c = ((j->code_buffer >> (32 - k)) & stbi__bmask[k]) + h->delta[k];\n   STBI_ASSERT((((j->code_buffer) >> (32 - h->size[c])) & stbi__bmask[h->size[c]]) == h->code[c]);\n\n   // convert the id to a symbol\n   j->code_bits -= k;\n   j->code_buffer <<= k;\n   return h->values[c];\n}\n\n// bias[n] = (-1<<n) + 1\nstatic const int stbi__jbias[16] = {0,-1,-3,-7,-15,-31,-63,-127,-255,-511,-1023,-2047,-4095,-8191,-16383,-32767};\n\n// combined JPEG 'receive' and JPEG 'extend', since baseline\n// always extends everything it receives.\nstbi_inline static int stbi__extend_receive(stbi__jpeg *j, int n)\n{\n   unsigned int k;\n   int sgn;\n   if (j->code_bits < n) stbi__grow_buffer_unsafe(j);\n\n   sgn = j->code_buffer >> 31; // sign bit always in MSB; 0 if MSB clear (positive), 1 if MSB set (negative)\n   k = stbi_lrot(j->code_buffer, n);\n   j->code_buffer = k & ~stbi__bmask[n];\n   k &= stbi__bmask[n];\n   j->code_bits -= n;\n   return k + (stbi__jbias[n] & (sgn - 1));\n}\n\n// get some unsigned bits\nstbi_inline static int stbi__jpeg_get_bits(stbi__jpeg *j, int n)\n{\n   unsigned int k;\n   if (j->code_bits < n) stbi__grow_buffer_unsafe(j);\n   k = stbi_lrot(j->code_buffer, n);\n   j->code_buffer = k & ~stbi__bmask[n];\n   k &= stbi__bmask[n];\n   j->code_bits -= n;\n   return k;\n}\n\nstbi_inline static int stbi__jpeg_get_bit(stbi__jpeg *j)\n{\n   unsigned int k;\n   if (j->code_bits < 1) stbi__grow_buffer_unsafe(j);\n   k = j->code_buffer;\n   j->code_buffer <<= 1;\n   --j->code_bits;\n   return k & 0x80000000;\n}\n\n// given a value that's at position X in the zigzag stream,\n// where does it appear in the 8x8 matrix coded as row-major?\nstatic const stbi_uc stbi__jpeg_dezigzag[64+15] =\n{\n    0,  1,  8, 16,  9,  2,  3, 10,\n   17, 24, 32, 25, 18, 11,  4,  5,\n   12, 19, 26, 33, 40, 48, 41, 34,\n   27, 20, 13,  6,  7, 14, 21, 28,\n   35, 42, 49, 56, 57, 50, 43, 36,\n   29, 22, 15, 23, 30, 37, 44, 51,\n   58, 59, 52, 45, 38, 31, 39, 46,\n   53, 60, 61, 54, 47, 55, 62, 63,\n   // let corrupt input sample past end\n   63, 63, 63, 63, 63, 63, 63, 63,\n   63, 63, 63, 63, 63, 63, 63\n};\n\n// decode one 64-entry block--\nstatic int stbi__jpeg_decode_block(stbi__jpeg *j, short data[64], stbi__huffman *hdc, stbi__huffman *hac, stbi__int16 *fac, int b, stbi__uint16 *dequant)\n{\n   int diff,dc,k;\n   int t;\n\n   if (j->code_bits < 16) stbi__grow_buffer_unsafe(j);\n   t = stbi__jpeg_huff_decode(j, hdc);\n   if (t < 0 || t > 15) return stbi__err(\"bad huffman code\",\"Corrupt JPEG\");\n\n   // 0 all the ac values now so we can do it 32-bits at a time\n   memset(data,0,64*sizeof(data[0]));\n\n   diff = t ? stbi__extend_receive(j, t) : 0;\n   dc = j->img_comp[b].dc_pred + diff;\n   j->img_comp[b].dc_pred = dc;\n   data[0] = (short) (dc * dequant[0]);\n\n   // decode AC components, see JPEG spec\n   k = 1;\n   do {\n      unsigned int zig;\n      int c,r,s;\n      if (j->code_bits < 16) stbi__grow_buffer_unsafe(j);\n      c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1);\n      r = fac[c];\n      if (r) { // fast-AC path\n         k += (r >> 4) & 15; // run\n         s = r & 15; // combined length\n         j->code_buffer <<= s;\n         j->code_bits -= s;\n         // decode into unzigzag'd location\n         zig = stbi__jpeg_dezigzag[k++];\n         data[zig] = (short) ((r >> 8) * dequant[zig]);\n      } else {\n         int rs = stbi__jpeg_huff_decode(j, hac);\n         if (rs < 0) return stbi__err(\"bad huffman code\",\"Corrupt JPEG\");\n         s = rs & 15;\n         r = rs >> 4;\n         if (s == 0) {\n            if (rs != 0xf0) break; // end block\n            k += 16;\n         } else {\n            k += r;\n            // decode into unzigzag'd location\n            zig = stbi__jpeg_dezigzag[k++];\n            data[zig] = (short) (stbi__extend_receive(j,s) * dequant[zig]);\n         }\n      }\n   } while (k < 64);\n   return 1;\n}\n\nstatic int stbi__jpeg_decode_block_prog_dc(stbi__jpeg *j, short data[64], stbi__huffman *hdc, int b)\n{\n   int diff,dc;\n   int t;\n   if (j->spec_end != 0) return stbi__err(\"can't merge dc and ac\", \"Corrupt JPEG\");\n\n   if (j->code_bits < 16) stbi__grow_buffer_unsafe(j);\n\n   if (j->succ_high == 0) {\n      // first scan for DC coefficient, must be first\n      memset(data,0,64*sizeof(data[0])); // 0 all the ac values now\n      t = stbi__jpeg_huff_decode(j, hdc);\n      if (t < 0 || t > 15) return stbi__err(\"can't merge dc and ac\", \"Corrupt JPEG\");\n      diff = t ? stbi__extend_receive(j, t) : 0;\n\n      dc = j->img_comp[b].dc_pred + diff;\n      j->img_comp[b].dc_pred = dc;\n      data[0] = (short) (dc * (1 << j->succ_low));\n   } else {\n      // refinement scan for DC coefficient\n      if (stbi__jpeg_get_bit(j))\n         data[0] += (short) (1 << j->succ_low);\n   }\n   return 1;\n}\n\n// @OPTIMIZE: store non-zigzagged during the decode passes,\n// and only de-zigzag when dequantizing\nstatic int stbi__jpeg_decode_block_prog_ac(stbi__jpeg *j, short data[64], stbi__huffman *hac, stbi__int16 *fac)\n{\n   int k;\n   if (j->spec_start == 0) return stbi__err(\"can't merge dc and ac\", \"Corrupt JPEG\");\n\n   if (j->succ_high == 0) {\n      int shift = j->succ_low;\n\n      if (j->eob_run) {\n         --j->eob_run;\n         return 1;\n      }\n\n      k = j->spec_start;\n      do {\n         unsigned int zig;\n         int c,r,s;\n         if (j->code_bits < 16) stbi__grow_buffer_unsafe(j);\n         c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1);\n         r = fac[c];\n         if (r) { // fast-AC path\n            k += (r >> 4) & 15; // run\n            s = r & 15; // combined length\n            j->code_buffer <<= s;\n            j->code_bits -= s;\n            zig = stbi__jpeg_dezigzag[k++];\n            data[zig] = (short) ((r >> 8) * (1 << shift));\n         } else {\n            int rs = stbi__jpeg_huff_decode(j, hac);\n            if (rs < 0) return stbi__err(\"bad huffman code\",\"Corrupt JPEG\");\n            s = rs & 15;\n            r = rs >> 4;\n            if (s == 0) {\n               if (r < 15) {\n                  j->eob_run = (1 << r);\n                  if (r)\n                     j->eob_run += stbi__jpeg_get_bits(j, r);\n                  --j->eob_run;\n                  break;\n               }\n               k += 16;\n            } else {\n               k += r;\n               zig = stbi__jpeg_dezigzag[k++];\n               data[zig] = (short) (stbi__extend_receive(j,s) * (1 << shift));\n            }\n         }\n      } while (k <= j->spec_end);\n   } else {\n      // refinement scan for these AC coefficients\n\n      short bit = (short) (1 << j->succ_low);\n\n      if (j->eob_run) {\n         --j->eob_run;\n         for (k = j->spec_start; k <= j->spec_end; ++k) {\n            short *p = &data[stbi__jpeg_dezigzag[k]];\n            if (*p != 0)\n               if (stbi__jpeg_get_bit(j))\n                  if ((*p & bit)==0) {\n                     if (*p > 0)\n                        *p += bit;\n                     else\n                        *p -= bit;\n                  }\n         }\n      } else {\n         k = j->spec_start;\n         do {\n            int r,s;\n            int rs = stbi__jpeg_huff_decode(j, hac); // @OPTIMIZE see if we can use the fast path here, advance-by-r is so slow, eh\n            if (rs < 0) return stbi__err(\"bad huffman code\",\"Corrupt JPEG\");\n            s = rs & 15;\n            r = rs >> 4;\n            if (s == 0) {\n               if (r < 15) {\n                  j->eob_run = (1 << r) - 1;\n                  if (r)\n                     j->eob_run += stbi__jpeg_get_bits(j, r);\n                  r = 64; // force end of block\n               } else {\n                  // r=15 s=0 should write 16 0s, so we just do\n                  // a run of 15 0s and then write s (which is 0),\n                  // so we don't have to do anything special here\n               }\n            } else {\n               if (s != 1) return stbi__err(\"bad huffman code\", \"Corrupt JPEG\");\n               // sign bit\n               if (stbi__jpeg_get_bit(j))\n                  s = bit;\n               else\n                  s = -bit;\n            }\n\n            // advance by r\n            while (k <= j->spec_end) {\n               short *p = &data[stbi__jpeg_dezigzag[k++]];\n               if (*p != 0) {\n                  if (stbi__jpeg_get_bit(j))\n                     if ((*p & bit)==0) {\n                        if (*p > 0)\n                           *p += bit;\n                        else\n                           *p -= bit;\n                     }\n               } else {\n                  if (r == 0) {\n                     *p = (short) s;\n                     break;\n                  }\n                  --r;\n               }\n            }\n         } while (k <= j->spec_end);\n      }\n   }\n   return 1;\n}\n\n// take a -128..127 value and stbi__clamp it and convert to 0..255\nstbi_inline static stbi_uc stbi__clamp(int x)\n{\n   // trick to use a single test to catch both cases\n   if ((unsigned int) x > 255) {\n      if (x < 0) return 0;\n      if (x > 255) return 255;\n   }\n   return (stbi_uc) x;\n}\n\n#define stbi__f2f(x)  ((int) (((x) * 4096 + 0.5)))\n#define stbi__fsh(x)  ((x) * 4096)\n\n// derived from jidctint -- DCT_ISLOW\n#define STBI__IDCT_1D(s0,s1,s2,s3,s4,s5,s6,s7) \\\n   int t0,t1,t2,t3,p1,p2,p3,p4,p5,x0,x1,x2,x3; \\\n   p2 = s2;                                    \\\n   p3 = s6;                                    \\\n   p1 = (p2+p3) * stbi__f2f(0.5411961f);       \\\n   t2 = p1 + p3*stbi__f2f(-1.847759065f);      \\\n   t3 = p1 + p2*stbi__f2f( 0.765366865f);      \\\n   p2 = s0;                                    \\\n   p3 = s4;                                    \\\n   t0 = stbi__fsh(p2+p3);                      \\\n   t1 = stbi__fsh(p2-p3);                      \\\n   x0 = t0+t3;                                 \\\n   x3 = t0-t3;                                 \\\n   x1 = t1+t2;                                 \\\n   x2 = t1-t2;                                 \\\n   t0 = s7;                                    \\\n   t1 = s5;                                    \\\n   t2 = s3;                                    \\\n   t3 = s1;                                    \\\n   p3 = t0+t2;                                 \\\n   p4 = t1+t3;                                 \\\n   p1 = t0+t3;                                 \\\n   p2 = t1+t2;                                 \\\n   p5 = (p3+p4)*stbi__f2f( 1.175875602f);      \\\n   t0 = t0*stbi__f2f( 0.298631336f);           \\\n   t1 = t1*stbi__f2f( 2.053119869f);           \\\n   t2 = t2*stbi__f2f( 3.072711026f);           \\\n   t3 = t3*stbi__f2f( 1.501321110f);           \\\n   p1 = p5 + p1*stbi__f2f(-0.899976223f);      \\\n   p2 = p5 + p2*stbi__f2f(-2.562915447f);      \\\n   p3 = p3*stbi__f2f(-1.961570560f);           \\\n   p4 = p4*stbi__f2f(-0.390180644f);           \\\n   t3 += p1+p4;                                \\\n   t2 += p2+p3;                                \\\n   t1 += p2+p4;                                \\\n   t0 += p1+p3;\n\nstatic void stbi__idct_block(stbi_uc *out, int out_stride, short data[64])\n{\n   int i,val[64],*v=val;\n   stbi_uc *o;\n   short *d = data;\n\n   // columns\n   for (i=0; i < 8; ++i,++d, ++v) {\n      // if all zeroes, shortcut -- this avoids dequantizing 0s and IDCTing\n      if (d[ 8]==0 && d[16]==0 && d[24]==0 && d[32]==0\n           && d[40]==0 && d[48]==0 && d[56]==0) {\n         //    no shortcut                 0     seconds\n         //    (1|2|3|4|5|6|7)==0          0     seconds\n         //    all separate               -0.047 seconds\n         //    1 && 2|3 && 4|5 && 6|7:    -0.047 seconds\n         int dcterm = d[0]*4;\n         v[0] = v[8] = v[16] = v[24] = v[32] = v[40] = v[48] = v[56] = dcterm;\n      } else {\n         STBI__IDCT_1D(d[ 0],d[ 8],d[16],d[24],d[32],d[40],d[48],d[56])\n         // constants scaled things up by 1<<12; let's bring them back\n         // down, but keep 2 extra bits of precision\n         x0 += 512; x1 += 512; x2 += 512; x3 += 512;\n         v[ 0] = (x0+t3) >> 10;\n         v[56] = (x0-t3) >> 10;\n         v[ 8] = (x1+t2) >> 10;\n         v[48] = (x1-t2) >> 10;\n         v[16] = (x2+t1) >> 10;\n         v[40] = (x2-t1) >> 10;\n         v[24] = (x3+t0) >> 10;\n         v[32] = (x3-t0) >> 10;\n      }\n   }\n\n   for (i=0, v=val, o=out; i < 8; ++i,v+=8,o+=out_stride) {\n      // no fast case since the first 1D IDCT spread components out\n      STBI__IDCT_1D(v[0],v[1],v[2],v[3],v[4],v[5],v[6],v[7])\n      // constants scaled things up by 1<<12, plus we had 1<<2 from first\n      // loop, plus horizontal and vertical each scale by sqrt(8) so together\n      // we've got an extra 1<<3, so 1<<17 total we need to remove.\n      // so we want to round that, which means adding 0.5 * 1<<17,\n      // aka 65536. Also, we'll end up with -128 to 127 that we want\n      // to encode as 0..255 by adding 128, so we'll add that before the shift\n      x0 += 65536 + (128<<17);\n      x1 += 65536 + (128<<17);\n      x2 += 65536 + (128<<17);\n      x3 += 65536 + (128<<17);\n      // tried computing the shifts into temps, or'ing the temps to see\n      // if any were out of range, but that was slower\n      o[0] = stbi__clamp((x0+t3) >> 17);\n      o[7] = stbi__clamp((x0-t3) >> 17);\n      o[1] = stbi__clamp((x1+t2) >> 17);\n      o[6] = stbi__clamp((x1-t2) >> 17);\n      o[2] = stbi__clamp((x2+t1) >> 17);\n      o[5] = stbi__clamp((x2-t1) >> 17);\n      o[3] = stbi__clamp((x3+t0) >> 17);\n      o[4] = stbi__clamp((x3-t0) >> 17);\n   }\n}\n\n#ifdef STBI_SSE2\n// sse2 integer IDCT. not the fastest possible implementation but it\n// produces bit-identical results to the generic C version so it's\n// fully \"transparent\".\nstatic void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64])\n{\n   // This is constructed to match our regular (generic) integer IDCT exactly.\n   __m128i row0, row1, row2, row3, row4, row5, row6, row7;\n   __m128i tmp;\n\n   // dot product constant: even elems=x, odd elems=y\n   #define dct_const(x,y)  _mm_setr_epi16((x),(y),(x),(y),(x),(y),(x),(y))\n\n   // out(0) = c0[even]*x + c0[odd]*y   (c0, x, y 16-bit, out 32-bit)\n   // out(1) = c1[even]*x + c1[odd]*y\n   #define dct_rot(out0,out1, x,y,c0,c1) \\\n      __m128i c0##lo = _mm_unpacklo_epi16((x),(y)); \\\n      __m128i c0##hi = _mm_unpackhi_epi16((x),(y)); \\\n      __m128i out0##_l = _mm_madd_epi16(c0##lo, c0); \\\n      __m128i out0##_h = _mm_madd_epi16(c0##hi, c0); \\\n      __m128i out1##_l = _mm_madd_epi16(c0##lo, c1); \\\n      __m128i out1##_h = _mm_madd_epi16(c0##hi, c1)\n\n   // out = in << 12  (in 16-bit, out 32-bit)\n   #define dct_widen(out, in) \\\n      __m128i out##_l = _mm_srai_epi32(_mm_unpacklo_epi16(_mm_setzero_si128(), (in)), 4); \\\n      __m128i out##_h = _mm_srai_epi32(_mm_unpackhi_epi16(_mm_setzero_si128(), (in)), 4)\n\n   // wide add\n   #define dct_wadd(out, a, b) \\\n      __m128i out##_l = _mm_add_epi32(a##_l, b##_l); \\\n      __m128i out##_h = _mm_add_epi32(a##_h, b##_h)\n\n   // wide sub\n   #define dct_wsub(out, a, b) \\\n      __m128i out##_l = _mm_sub_epi32(a##_l, b##_l); \\\n      __m128i out##_h = _mm_sub_epi32(a##_h, b##_h)\n\n   // butterfly a/b, add bias, then shift by \"s\" and pack\n   #define dct_bfly32o(out0, out1, a,b,bias,s) \\\n      { \\\n         __m128i abiased_l = _mm_add_epi32(a##_l, bias); \\\n         __m128i abiased_h = _mm_add_epi32(a##_h, bias); \\\n         dct_wadd(sum, abiased, b); \\\n         dct_wsub(dif, abiased, b); \\\n         out0 = _mm_packs_epi32(_mm_srai_epi32(sum_l, s), _mm_srai_epi32(sum_h, s)); \\\n         out1 = _mm_packs_epi32(_mm_srai_epi32(dif_l, s), _mm_srai_epi32(dif_h, s)); \\\n      }\n\n   // 8-bit interleave step (for transposes)\n   #define dct_interleave8(a, b) \\\n      tmp = a; \\\n      a = _mm_unpacklo_epi8(a, b); \\\n      b = _mm_unpackhi_epi8(tmp, b)\n\n   // 16-bit interleave step (for transposes)\n   #define dct_interleave16(a, b) \\\n      tmp = a; \\\n      a = _mm_unpacklo_epi16(a, b); \\\n      b = _mm_unpackhi_epi16(tmp, b)\n\n   #define dct_pass(bias,shift) \\\n      { \\\n         /* even part */ \\\n         dct_rot(t2e,t3e, row2,row6, rot0_0,rot0_1); \\\n         __m128i sum04 = _mm_add_epi16(row0, row4); \\\n         __m128i dif04 = _mm_sub_epi16(row0, row4); \\\n         dct_widen(t0e, sum04); \\\n         dct_widen(t1e, dif04); \\\n         dct_wadd(x0, t0e, t3e); \\\n         dct_wsub(x3, t0e, t3e); \\\n         dct_wadd(x1, t1e, t2e); \\\n         dct_wsub(x2, t1e, t2e); \\\n         /* odd part */ \\\n         dct_rot(y0o,y2o, row7,row3, rot2_0,rot2_1); \\\n         dct_rot(y1o,y3o, row5,row1, rot3_0,rot3_1); \\\n         __m128i sum17 = _mm_add_epi16(row1, row7); \\\n         __m128i sum35 = _mm_add_epi16(row3, row5); \\\n         dct_rot(y4o,y5o, sum17,sum35, rot1_0,rot1_1); \\\n         dct_wadd(x4, y0o, y4o); \\\n         dct_wadd(x5, y1o, y5o); \\\n         dct_wadd(x6, y2o, y5o); \\\n         dct_wadd(x7, y3o, y4o); \\\n         dct_bfly32o(row0,row7, x0,x7,bias,shift); \\\n         dct_bfly32o(row1,row6, x1,x6,bias,shift); \\\n         dct_bfly32o(row2,row5, x2,x5,bias,shift); \\\n         dct_bfly32o(row3,row4, x3,x4,bias,shift); \\\n      }\n\n   __m128i rot0_0 = dct_const(stbi__f2f(0.5411961f), stbi__f2f(0.5411961f) + stbi__f2f(-1.847759065f));\n   __m128i rot0_1 = dct_const(stbi__f2f(0.5411961f) + stbi__f2f( 0.765366865f), stbi__f2f(0.5411961f));\n   __m128i rot1_0 = dct_const(stbi__f2f(1.175875602f) + stbi__f2f(-0.899976223f), stbi__f2f(1.175875602f));\n   __m128i rot1_1 = dct_const(stbi__f2f(1.175875602f), stbi__f2f(1.175875602f) + stbi__f2f(-2.562915447f));\n   __m128i rot2_0 = dct_const(stbi__f2f(-1.961570560f) + stbi__f2f( 0.298631336f), stbi__f2f(-1.961570560f));\n   __m128i rot2_1 = dct_const(stbi__f2f(-1.961570560f), stbi__f2f(-1.961570560f) + stbi__f2f( 3.072711026f));\n   __m128i rot3_0 = dct_const(stbi__f2f(-0.390180644f) + stbi__f2f( 2.053119869f), stbi__f2f(-0.390180644f));\n   __m128i rot3_1 = dct_const(stbi__f2f(-0.390180644f), stbi__f2f(-0.390180644f) + stbi__f2f( 1.501321110f));\n\n   // rounding biases in column/row passes, see stbi__idct_block for explanation.\n   __m128i bias_0 = _mm_set1_epi32(512);\n   __m128i bias_1 = _mm_set1_epi32(65536 + (128<<17));\n\n   // load\n   row0 = _mm_load_si128((const __m128i *) (data + 0*8));\n   row1 = _mm_load_si128((const __m128i *) (data + 1*8));\n   row2 = _mm_load_si128((const __m128i *) (data + 2*8));\n   row3 = _mm_load_si128((const __m128i *) (data + 3*8));\n   row4 = _mm_load_si128((const __m128i *) (data + 4*8));\n   row5 = _mm_load_si128((const __m128i *) (data + 5*8));\n   row6 = _mm_load_si128((const __m128i *) (data + 6*8));\n   row7 = _mm_load_si128((const __m128i *) (data + 7*8));\n\n   // column pass\n   dct_pass(bias_0, 10);\n\n   {\n      // 16bit 8x8 transpose pass 1\n      dct_interleave16(row0, row4);\n      dct_interleave16(row1, row5);\n      dct_interleave16(row2, row6);\n      dct_interleave16(row3, row7);\n\n      // transpose pass 2\n      dct_interleave16(row0, row2);\n      dct_interleave16(row1, row3);\n      dct_interleave16(row4, row6);\n      dct_interleave16(row5, row7);\n\n      // transpose pass 3\n      dct_interleave16(row0, row1);\n      dct_interleave16(row2, row3);\n      dct_interleave16(row4, row5);\n      dct_interleave16(row6, row7);\n   }\n\n   // row pass\n   dct_pass(bias_1, 17);\n\n   {\n      // pack\n      __m128i p0 = _mm_packus_epi16(row0, row1); // a0a1a2a3...a7b0b1b2b3...b7\n      __m128i p1 = _mm_packus_epi16(row2, row3);\n      __m128i p2 = _mm_packus_epi16(row4, row5);\n      __m128i p3 = _mm_packus_epi16(row6, row7);\n\n      // 8bit 8x8 transpose pass 1\n      dct_interleave8(p0, p2); // a0e0a1e1...\n      dct_interleave8(p1, p3); // c0g0c1g1...\n\n      // transpose pass 2\n      dct_interleave8(p0, p1); // a0c0e0g0...\n      dct_interleave8(p2, p3); // b0d0f0h0...\n\n      // transpose pass 3\n      dct_interleave8(p0, p2); // a0b0c0d0...\n      dct_interleave8(p1, p3); // a4b4c4d4...\n\n      // store\n      _mm_storel_epi64((__m128i *) out, p0); out += out_stride;\n      _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p0, 0x4e)); out += out_stride;\n      _mm_storel_epi64((__m128i *) out, p2); out += out_stride;\n      _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p2, 0x4e)); out += out_stride;\n      _mm_storel_epi64((__m128i *) out, p1); out += out_stride;\n      _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p1, 0x4e)); out += out_stride;\n      _mm_storel_epi64((__m128i *) out, p3); out += out_stride;\n      _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p3, 0x4e));\n   }\n\n#undef dct_const\n#undef dct_rot\n#undef dct_widen\n#undef dct_wadd\n#undef dct_wsub\n#undef dct_bfly32o\n#undef dct_interleave8\n#undef dct_interleave16\n#undef dct_pass\n}\n\n#endif // STBI_SSE2\n\n#ifdef STBI_NEON\n\n// NEON integer IDCT. should produce bit-identical\n// results to the generic C version.\nstatic void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64])\n{\n   int16x8_t row0, row1, row2, row3, row4, row5, row6, row7;\n\n   int16x4_t rot0_0 = vdup_n_s16(stbi__f2f(0.5411961f));\n   int16x4_t rot0_1 = vdup_n_s16(stbi__f2f(-1.847759065f));\n   int16x4_t rot0_2 = vdup_n_s16(stbi__f2f( 0.765366865f));\n   int16x4_t rot1_0 = vdup_n_s16(stbi__f2f( 1.175875602f));\n   int16x4_t rot1_1 = vdup_n_s16(stbi__f2f(-0.899976223f));\n   int16x4_t rot1_2 = vdup_n_s16(stbi__f2f(-2.562915447f));\n   int16x4_t rot2_0 = vdup_n_s16(stbi__f2f(-1.961570560f));\n   int16x4_t rot2_1 = vdup_n_s16(stbi__f2f(-0.390180644f));\n   int16x4_t rot3_0 = vdup_n_s16(stbi__f2f( 0.298631336f));\n   int16x4_t rot3_1 = vdup_n_s16(stbi__f2f( 2.053119869f));\n   int16x4_t rot3_2 = vdup_n_s16(stbi__f2f( 3.072711026f));\n   int16x4_t rot3_3 = vdup_n_s16(stbi__f2f( 1.501321110f));\n\n#define dct_long_mul(out, inq, coeff) \\\n   int32x4_t out##_l = vmull_s16(vget_low_s16(inq), coeff); \\\n   int32x4_t out##_h = vmull_s16(vget_high_s16(inq), coeff)\n\n#define dct_long_mac(out, acc, inq, coeff) \\\n   int32x4_t out##_l = vmlal_s16(acc##_l, vget_low_s16(inq), coeff); \\\n   int32x4_t out##_h = vmlal_s16(acc##_h, vget_high_s16(inq), coeff)\n\n#define dct_widen(out, inq) \\\n   int32x4_t out##_l = vshll_n_s16(vget_low_s16(inq), 12); \\\n   int32x4_t out##_h = vshll_n_s16(vget_high_s16(inq), 12)\n\n// wide add\n#define dct_wadd(out, a, b) \\\n   int32x4_t out##_l = vaddq_s32(a##_l, b##_l); \\\n   int32x4_t out##_h = vaddq_s32(a##_h, b##_h)\n\n// wide sub\n#define dct_wsub(out, a, b) \\\n   int32x4_t out##_l = vsubq_s32(a##_l, b##_l); \\\n   int32x4_t out##_h = vsubq_s32(a##_h, b##_h)\n\n// butterfly a/b, then shift using \"shiftop\" by \"s\" and pack\n#define dct_bfly32o(out0,out1, a,b,shiftop,s) \\\n   { \\\n      dct_wadd(sum, a, b); \\\n      dct_wsub(dif, a, b); \\\n      out0 = vcombine_s16(shiftop(sum_l, s), shiftop(sum_h, s)); \\\n      out1 = vcombine_s16(shiftop(dif_l, s), shiftop(dif_h, s)); \\\n   }\n\n#define dct_pass(shiftop, shift) \\\n   { \\\n      /* even part */ \\\n      int16x8_t sum26 = vaddq_s16(row2, row6); \\\n      dct_long_mul(p1e, sum26, rot0_0); \\\n      dct_long_mac(t2e, p1e, row6, rot0_1); \\\n      dct_long_mac(t3e, p1e, row2, rot0_2); \\\n      int16x8_t sum04 = vaddq_s16(row0, row4); \\\n      int16x8_t dif04 = vsubq_s16(row0, row4); \\\n      dct_widen(t0e, sum04); \\\n      dct_widen(t1e, dif04); \\\n      dct_wadd(x0, t0e, t3e); \\\n      dct_wsub(x3, t0e, t3e); \\\n      dct_wadd(x1, t1e, t2e); \\\n      dct_wsub(x2, t1e, t2e); \\\n      /* odd part */ \\\n      int16x8_t sum15 = vaddq_s16(row1, row5); \\\n      int16x8_t sum17 = vaddq_s16(row1, row7); \\\n      int16x8_t sum35 = vaddq_s16(row3, row5); \\\n      int16x8_t sum37 = vaddq_s16(row3, row7); \\\n      int16x8_t sumodd = vaddq_s16(sum17, sum35); \\\n      dct_long_mul(p5o, sumodd, rot1_0); \\\n      dct_long_mac(p1o, p5o, sum17, rot1_1); \\\n      dct_long_mac(p2o, p5o, sum35, rot1_2); \\\n      dct_long_mul(p3o, sum37, rot2_0); \\\n      dct_long_mul(p4o, sum15, rot2_1); \\\n      dct_wadd(sump13o, p1o, p3o); \\\n      dct_wadd(sump24o, p2o, p4o); \\\n      dct_wadd(sump23o, p2o, p3o); \\\n      dct_wadd(sump14o, p1o, p4o); \\\n      dct_long_mac(x4, sump13o, row7, rot3_0); \\\n      dct_long_mac(x5, sump24o, row5, rot3_1); \\\n      dct_long_mac(x6, sump23o, row3, rot3_2); \\\n      dct_long_mac(x7, sump14o, row1, rot3_3); \\\n      dct_bfly32o(row0,row7, x0,x7,shiftop,shift); \\\n      dct_bfly32o(row1,row6, x1,x6,shiftop,shift); \\\n      dct_bfly32o(row2,row5, x2,x5,shiftop,shift); \\\n      dct_bfly32o(row3,row4, x3,x4,shiftop,shift); \\\n   }\n\n   // load\n   row0 = vld1q_s16(data + 0*8);\n   row1 = vld1q_s16(data + 1*8);\n   row2 = vld1q_s16(data + 2*8);\n   row3 = vld1q_s16(data + 3*8);\n   row4 = vld1q_s16(data + 4*8);\n   row5 = vld1q_s16(data + 5*8);\n   row6 = vld1q_s16(data + 6*8);\n   row7 = vld1q_s16(data + 7*8);\n\n   // add DC bias\n   row0 = vaddq_s16(row0, vsetq_lane_s16(1024, vdupq_n_s16(0), 0));\n\n   // column pass\n   dct_pass(vrshrn_n_s32, 10);\n\n   // 16bit 8x8 transpose\n   {\n// these three map to a single VTRN.16, VTRN.32, and VSWP, respectively.\n// whether compilers actually get this is another story, sadly.\n#define dct_trn16(x, y) { int16x8x2_t t = vtrnq_s16(x, y); x = t.val[0]; y = t.val[1]; }\n#define dct_trn32(x, y) { int32x4x2_t t = vtrnq_s32(vreinterpretq_s32_s16(x), vreinterpretq_s32_s16(y)); x = vreinterpretq_s16_s32(t.val[0]); y = vreinterpretq_s16_s32(t.val[1]); }\n#define dct_trn64(x, y) { int16x8_t x0 = x; int16x8_t y0 = y; x = vcombine_s16(vget_low_s16(x0), vget_low_s16(y0)); y = vcombine_s16(vget_high_s16(x0), vget_high_s16(y0)); }\n\n      // pass 1\n      dct_trn16(row0, row1); // a0b0a2b2a4b4a6b6\n      dct_trn16(row2, row3);\n      dct_trn16(row4, row5);\n      dct_trn16(row6, row7);\n\n      // pass 2\n      dct_trn32(row0, row2); // a0b0c0d0a4b4c4d4\n      dct_trn32(row1, row3);\n      dct_trn32(row4, row6);\n      dct_trn32(row5, row7);\n\n      // pass 3\n      dct_trn64(row0, row4); // a0b0c0d0e0f0g0h0\n      dct_trn64(row1, row5);\n      dct_trn64(row2, row6);\n      dct_trn64(row3, row7);\n\n#undef dct_trn16\n#undef dct_trn32\n#undef dct_trn64\n   }\n\n   // row pass\n   // vrshrn_n_s32 only supports shifts up to 16, we need\n   // 17. so do a non-rounding shift of 16 first then follow\n   // up with a rounding shift by 1.\n   dct_pass(vshrn_n_s32, 16);\n\n   {\n      // pack and round\n      uint8x8_t p0 = vqrshrun_n_s16(row0, 1);\n      uint8x8_t p1 = vqrshrun_n_s16(row1, 1);\n      uint8x8_t p2 = vqrshrun_n_s16(row2, 1);\n      uint8x8_t p3 = vqrshrun_n_s16(row3, 1);\n      uint8x8_t p4 = vqrshrun_n_s16(row4, 1);\n      uint8x8_t p5 = vqrshrun_n_s16(row5, 1);\n      uint8x8_t p6 = vqrshrun_n_s16(row6, 1);\n      uint8x8_t p7 = vqrshrun_n_s16(row7, 1);\n\n      // again, these can translate into one instruction, but often don't.\n#define dct_trn8_8(x, y) { uint8x8x2_t t = vtrn_u8(x, y); x = t.val[0]; y = t.val[1]; }\n#define dct_trn8_16(x, y) { uint16x4x2_t t = vtrn_u16(vreinterpret_u16_u8(x), vreinterpret_u16_u8(y)); x = vreinterpret_u8_u16(t.val[0]); y = vreinterpret_u8_u16(t.val[1]); }\n#define dct_trn8_32(x, y) { uint32x2x2_t t = vtrn_u32(vreinterpret_u32_u8(x), vreinterpret_u32_u8(y)); x = vreinterpret_u8_u32(t.val[0]); y = vreinterpret_u8_u32(t.val[1]); }\n\n      // sadly can't use interleaved stores here since we only write\n      // 8 bytes to each scan line!\n\n      // 8x8 8-bit transpose pass 1\n      dct_trn8_8(p0, p1);\n      dct_trn8_8(p2, p3);\n      dct_trn8_8(p4, p5);\n      dct_trn8_8(p6, p7);\n\n      // pass 2\n      dct_trn8_16(p0, p2);\n      dct_trn8_16(p1, p3);\n      dct_trn8_16(p4, p6);\n      dct_trn8_16(p5, p7);\n\n      // pass 3\n      dct_trn8_32(p0, p4);\n      dct_trn8_32(p1, p5);\n      dct_trn8_32(p2, p6);\n      dct_trn8_32(p3, p7);\n\n      // store\n      vst1_u8(out, p0); out += out_stride;\n      vst1_u8(out, p1); out += out_stride;\n      vst1_u8(out, p2); out += out_stride;\n      vst1_u8(out, p3); out += out_stride;\n      vst1_u8(out, p4); out += out_stride;\n      vst1_u8(out, p5); out += out_stride;\n      vst1_u8(out, p6); out += out_stride;\n      vst1_u8(out, p7);\n\n#undef dct_trn8_8\n#undef dct_trn8_16\n#undef dct_trn8_32\n   }\n\n#undef dct_long_mul\n#undef dct_long_mac\n#undef dct_widen\n#undef dct_wadd\n#undef dct_wsub\n#undef dct_bfly32o\n#undef dct_pass\n}\n\n#endif // STBI_NEON\n\n#define STBI__MARKER_none  0xff\n// if there's a pending marker from the entropy stream, return that\n// otherwise, fetch from the stream and get a marker. if there's no\n// marker, return 0xff, which is never a valid marker value\nstatic stbi_uc stbi__get_marker(stbi__jpeg *j)\n{\n   stbi_uc x;\n   if (j->marker != STBI__MARKER_none) { x = j->marker; j->marker = STBI__MARKER_none; return x; }\n   x = stbi__get8(j->s);\n   if (x != 0xff) return STBI__MARKER_none;\n   while (x == 0xff)\n      x = stbi__get8(j->s); // consume repeated 0xff fill bytes\n   return x;\n}\n\n// in each scan, we'll have scan_n components, and the order\n// of the components is specified by order[]\n#define STBI__RESTART(x)     ((x) >= 0xd0 && (x) <= 0xd7)\n\n// after a restart interval, stbi__jpeg_reset the entropy decoder and\n// the dc prediction\nstatic void stbi__jpeg_reset(stbi__jpeg *j)\n{\n   j->code_bits = 0;\n   j->code_buffer = 0;\n   j->nomore = 0;\n   j->img_comp[0].dc_pred = j->img_comp[1].dc_pred = j->img_comp[2].dc_pred = j->img_comp[3].dc_pred = 0;\n   j->marker = STBI__MARKER_none;\n   j->todo = j->restart_interval ? j->restart_interval : 0x7fffffff;\n   j->eob_run = 0;\n   // no more than 1<<31 MCUs if no restart_interal? that's plenty safe,\n   // since we don't even allow 1<<30 pixels\n}\n\nstatic int stbi__parse_entropy_coded_data(stbi__jpeg *z)\n{\n   stbi__jpeg_reset(z);\n   if (!z->progressive) {\n      if (z->scan_n == 1) {\n         int i,j;\n         STBI_SIMD_ALIGN(short, data[64]);\n         int n = z->order[0];\n         // non-interleaved data, we just need to process one block at a time,\n         // in trivial scanline order\n         // number of blocks to do just depends on how many actual \"pixels\" this\n         // component has, independent of interleaved MCU blocking and such\n         int w = (z->img_comp[n].x+7) >> 3;\n         int h = (z->img_comp[n].y+7) >> 3;\n         for (j=0; j < h; ++j) {\n            for (i=0; i < w; ++i) {\n               int ha = z->img_comp[n].ha;\n               if (!stbi__jpeg_decode_block(z, data, z->huff_dc+z->img_comp[n].hd, z->huff_ac+ha, z->fast_ac[ha], n, z->dequant[z->img_comp[n].tq])) return 0;\n               z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*j*8+i*8, z->img_comp[n].w2, data);\n               // every data block is an MCU, so countdown the restart interval\n               if (--z->todo <= 0) {\n                  if (z->code_bits < 24) stbi__grow_buffer_unsafe(z);\n                  // if it's NOT a restart, then just bail, so we get corrupt data\n                  // rather than no data\n                  if (!STBI__RESTART(z->marker)) return 1;\n                  stbi__jpeg_reset(z);\n               }\n            }\n         }\n         return 1;\n      } else { // interleaved\n         int i,j,k,x,y;\n         STBI_SIMD_ALIGN(short, data[64]);\n         for (j=0; j < z->img_mcu_y; ++j) {\n            for (i=0; i < z->img_mcu_x; ++i) {\n               // scan an interleaved mcu... process scan_n components in order\n               for (k=0; k < z->scan_n; ++k) {\n                  int n = z->order[k];\n                  // scan out an mcu's worth of this component; that's just determined\n                  // by the basic H and V specified for the component\n                  for (y=0; y < z->img_comp[n].v; ++y) {\n                     for (x=0; x < z->img_comp[n].h; ++x) {\n                        int x2 = (i*z->img_comp[n].h + x)*8;\n                        int y2 = (j*z->img_comp[n].v + y)*8;\n                        int ha = z->img_comp[n].ha;\n                        if (!stbi__jpeg_decode_block(z, data, z->huff_dc+z->img_comp[n].hd, z->huff_ac+ha, z->fast_ac[ha], n, z->dequant[z->img_comp[n].tq])) return 0;\n                        z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*y2+x2, z->img_comp[n].w2, data);\n                     }\n                  }\n               }\n               // after all interleaved components, that's an interleaved MCU,\n               // so now count down the restart interval\n               if (--z->todo <= 0) {\n                  if (z->code_bits < 24) stbi__grow_buffer_unsafe(z);\n                  if (!STBI__RESTART(z->marker)) return 1;\n                  stbi__jpeg_reset(z);\n               }\n            }\n         }\n         return 1;\n      }\n   } else {\n      if (z->scan_n == 1) {\n         int i,j;\n         int n = z->order[0];\n         // non-interleaved data, we just need to process one block at a time,\n         // in trivial scanline order\n         // number of blocks to do just depends on how many actual \"pixels\" this\n         // component has, independent of interleaved MCU blocking and such\n         int w = (z->img_comp[n].x+7) >> 3;\n         int h = (z->img_comp[n].y+7) >> 3;\n         for (j=0; j < h; ++j) {\n            for (i=0; i < w; ++i) {\n               short *data = z->img_comp[n].coeff + 64 * (i + j * z->img_comp[n].coeff_w);\n               if (z->spec_start == 0) {\n                  if (!stbi__jpeg_decode_block_prog_dc(z, data, &z->huff_dc[z->img_comp[n].hd], n))\n                     return 0;\n               } else {\n                  int ha = z->img_comp[n].ha;\n                  if (!stbi__jpeg_decode_block_prog_ac(z, data, &z->huff_ac[ha], z->fast_ac[ha]))\n                     return 0;\n               }\n               // every data block is an MCU, so countdown the restart interval\n               if (--z->todo <= 0) {\n                  if (z->code_bits < 24) stbi__grow_buffer_unsafe(z);\n                  if (!STBI__RESTART(z->marker)) return 1;\n                  stbi__jpeg_reset(z);\n               }\n            }\n         }\n         return 1;\n      } else { // interleaved\n         int i,j,k,x,y;\n         for (j=0; j < z->img_mcu_y; ++j) {\n            for (i=0; i < z->img_mcu_x; ++i) {\n               // scan an interleaved mcu... process scan_n components in order\n               for (k=0; k < z->scan_n; ++k) {\n                  int n = z->order[k];\n                  // scan out an mcu's worth of this component; that's just determined\n                  // by the basic H and V specified for the component\n                  for (y=0; y < z->img_comp[n].v; ++y) {\n                     for (x=0; x < z->img_comp[n].h; ++x) {\n                        int x2 = (i*z->img_comp[n].h + x);\n                        int y2 = (j*z->img_comp[n].v + y);\n                        short *data = z->img_comp[n].coeff + 64 * (x2 + y2 * z->img_comp[n].coeff_w);\n                        if (!stbi__jpeg_decode_block_prog_dc(z, data, &z->huff_dc[z->img_comp[n].hd], n))\n                           return 0;\n                     }\n                  }\n               }\n               // after all interleaved components, that's an interleaved MCU,\n               // so now count down the restart interval\n               if (--z->todo <= 0) {\n                  if (z->code_bits < 24) stbi__grow_buffer_unsafe(z);\n                  if (!STBI__RESTART(z->marker)) return 1;\n                  stbi__jpeg_reset(z);\n               }\n            }\n         }\n         return 1;\n      }\n   }\n}\n\nstatic void stbi__jpeg_dequantize(short *data, stbi__uint16 *dequant)\n{\n   int i;\n   for (i=0; i < 64; ++i)\n      data[i] *= dequant[i];\n}\n\nstatic void stbi__jpeg_finish(stbi__jpeg *z)\n{\n   if (z->progressive) {\n      // dequantize and idct the data\n      int i,j,n;\n      for (n=0; n < z->s->img_n; ++n) {\n         int w = (z->img_comp[n].x+7) >> 3;\n         int h = (z->img_comp[n].y+7) >> 3;\n         for (j=0; j < h; ++j) {\n            for (i=0; i < w; ++i) {\n               short *data = z->img_comp[n].coeff + 64 * (i + j * z->img_comp[n].coeff_w);\n               stbi__jpeg_dequantize(data, z->dequant[z->img_comp[n].tq]);\n               z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*j*8+i*8, z->img_comp[n].w2, data);\n            }\n         }\n      }\n   }\n}\n\nstatic int stbi__process_marker(stbi__jpeg *z, int m)\n{\n   int L;\n   switch (m) {\n      case STBI__MARKER_none: // no marker found\n         return stbi__err(\"expected marker\",\"Corrupt JPEG\");\n\n      case 0xDD: // DRI - specify restart interval\n         if (stbi__get16be(z->s) != 4) return stbi__err(\"bad DRI len\",\"Corrupt JPEG\");\n         z->restart_interval = stbi__get16be(z->s);\n         return 1;\n\n      case 0xDB: // DQT - define quantization table\n         L = stbi__get16be(z->s)-2;\n         while (L > 0) {\n            int q = stbi__get8(z->s);\n            int p = q >> 4, sixteen = (p != 0);\n            int t = q & 15,i;\n            if (p != 0 && p != 1) return stbi__err(\"bad DQT type\",\"Corrupt JPEG\");\n            if (t > 3) return stbi__err(\"bad DQT table\",\"Corrupt JPEG\");\n\n            for (i=0; i < 64; ++i)\n               z->dequant[t][stbi__jpeg_dezigzag[i]] = (stbi__uint16)(sixteen ? stbi__get16be(z->s) : stbi__get8(z->s));\n            L -= (sixteen ? 129 : 65);\n         }\n         return L==0;\n\n      case 0xC4: // DHT - define huffman table\n         L = stbi__get16be(z->s)-2;\n         while (L > 0) {\n            stbi_uc *v;\n            int sizes[16],i,n=0;\n            int q = stbi__get8(z->s);\n            int tc = q >> 4;\n            int th = q & 15;\n            if (tc > 1 || th > 3) return stbi__err(\"bad DHT header\",\"Corrupt JPEG\");\n            for (i=0; i < 16; ++i) {\n               sizes[i] = stbi__get8(z->s);\n               n += sizes[i];\n            }\n            L -= 17;\n            if (tc == 0) {\n               if (!stbi__build_huffman(z->huff_dc+th, sizes)) return 0;\n               v = z->huff_dc[th].values;\n            } else {\n               if (!stbi__build_huffman(z->huff_ac+th, sizes)) return 0;\n               v = z->huff_ac[th].values;\n            }\n            for (i=0; i < n; ++i)\n               v[i] = stbi__get8(z->s);\n            if (tc != 0)\n               stbi__build_fast_ac(z->fast_ac[th], z->huff_ac + th);\n            L -= n;\n         }\n         return L==0;\n   }\n\n   // check for comment block or APP blocks\n   if ((m >= 0xE0 && m <= 0xEF) || m == 0xFE) {\n      L = stbi__get16be(z->s);\n      if (L < 2) {\n         if (m == 0xFE)\n            return stbi__err(\"bad COM len\",\"Corrupt JPEG\");\n         else\n            return stbi__err(\"bad APP len\",\"Corrupt JPEG\");\n      }\n      L -= 2;\n\n      if (m == 0xE0 && L >= 5) { // JFIF APP0 segment\n         static const unsigned char tag[5] = {'J','F','I','F','\\0'};\n         int ok = 1;\n         int i;\n         for (i=0; i < 5; ++i)\n            if (stbi__get8(z->s) != tag[i])\n               ok = 0;\n         L -= 5;\n         if (ok)\n            z->jfif = 1;\n      } else if (m == 0xEE && L >= 12) { // Adobe APP14 segment\n         static const unsigned char tag[6] = {'A','d','o','b','e','\\0'};\n         int ok = 1;\n         int i;\n         for (i=0; i < 6; ++i)\n            if (stbi__get8(z->s) != tag[i])\n               ok = 0;\n         L -= 6;\n         if (ok) {\n            stbi__get8(z->s); // version\n            stbi__get16be(z->s); // flags0\n            stbi__get16be(z->s); // flags1\n            z->app14_color_transform = stbi__get8(z->s); // color transform\n            L -= 6;\n         }\n      }\n\n      stbi__skip(z->s, L);\n      return 1;\n   }\n\n   return stbi__err(\"unknown marker\",\"Corrupt JPEG\");\n}\n\n// after we see SOS\nstatic int stbi__process_scan_header(stbi__jpeg *z)\n{\n   int i;\n   int Ls = stbi__get16be(z->s);\n   z->scan_n = stbi__get8(z->s);\n   if (z->scan_n < 1 || z->scan_n > 4 || z->scan_n > (int) z->s->img_n) return stbi__err(\"bad SOS component count\",\"Corrupt JPEG\");\n   if (Ls != 6+2*z->scan_n) return stbi__err(\"bad SOS len\",\"Corrupt JPEG\");\n   for (i=0; i < z->scan_n; ++i) {\n      int id = stbi__get8(z->s), which;\n      int q = stbi__get8(z->s);\n      for (which = 0; which < z->s->img_n; ++which)\n         if (z->img_comp[which].id == id)\n            break;\n      if (which == z->s->img_n) return 0; // no match\n      z->img_comp[which].hd = q >> 4;   if (z->img_comp[which].hd > 3) return stbi__err(\"bad DC huff\",\"Corrupt JPEG\");\n      z->img_comp[which].ha = q & 15;   if (z->img_comp[which].ha > 3) return stbi__err(\"bad AC huff\",\"Corrupt JPEG\");\n      z->order[i] = which;\n   }\n\n   {\n      int aa;\n      z->spec_start = stbi__get8(z->s);\n      z->spec_end   = stbi__get8(z->s); // should be 63, but might be 0\n      aa = stbi__get8(z->s);\n      z->succ_high = (aa >> 4);\n      z->succ_low  = (aa & 15);\n      if (z->progressive) {\n         if (z->spec_start > 63 || z->spec_end > 63  || z->spec_start > z->spec_end || z->succ_high > 13 || z->succ_low > 13)\n            return stbi__err(\"bad SOS\", \"Corrupt JPEG\");\n      } else {\n         if (z->spec_start != 0) return stbi__err(\"bad SOS\",\"Corrupt JPEG\");\n         if (z->succ_high != 0 || z->succ_low != 0) return stbi__err(\"bad SOS\",\"Corrupt JPEG\");\n         z->spec_end = 63;\n      }\n   }\n\n   return 1;\n}\n\nstatic int stbi__free_jpeg_components(stbi__jpeg *z, int ncomp, int why)\n{\n   int i;\n   for (i=0; i < ncomp; ++i) {\n      if (z->img_comp[i].raw_data) {\n         STBI_FREE(z->img_comp[i].raw_data);\n         z->img_comp[i].raw_data = NULL;\n         z->img_comp[i].data = NULL;\n      }\n      if (z->img_comp[i].raw_coeff) {\n         STBI_FREE(z->img_comp[i].raw_coeff);\n         z->img_comp[i].raw_coeff = 0;\n         z->img_comp[i].coeff = 0;\n      }\n      if (z->img_comp[i].linebuf) {\n         STBI_FREE(z->img_comp[i].linebuf);\n         z->img_comp[i].linebuf = NULL;\n      }\n   }\n   return why;\n}\n\nstatic int stbi__process_frame_header(stbi__jpeg *z, int scan)\n{\n   stbi__context *s = z->s;\n   int Lf,p,i,q, h_max=1,v_max=1,c;\n   Lf = stbi__get16be(s);         if (Lf < 11) return stbi__err(\"bad SOF len\",\"Corrupt JPEG\"); // JPEG\n   p  = stbi__get8(s);            if (p != 8) return stbi__err(\"only 8-bit\",\"JPEG format not supported: 8-bit only\"); // JPEG baseline\n   s->img_y = stbi__get16be(s);   if (s->img_y == 0) return stbi__err(\"no header height\", \"JPEG format not supported: delayed height\"); // Legal, but we don't handle it--but neither does IJG\n   s->img_x = stbi__get16be(s);   if (s->img_x == 0) return stbi__err(\"0 width\",\"Corrupt JPEG\"); // JPEG requires\n   if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__err(\"too large\",\"Very large image (corrupt?)\");\n   if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__err(\"too large\",\"Very large image (corrupt?)\");\n   c = stbi__get8(s);\n   if (c != 3 && c != 1 && c != 4) return stbi__err(\"bad component count\",\"Corrupt JPEG\");\n   s->img_n = c;\n   for (i=0; i < c; ++i) {\n      z->img_comp[i].data = NULL;\n      z->img_comp[i].linebuf = NULL;\n   }\n\n   if (Lf != 8+3*s->img_n) return stbi__err(\"bad SOF len\",\"Corrupt JPEG\");\n\n   z->rgb = 0;\n   for (i=0; i < s->img_n; ++i) {\n      static const unsigned char rgb[3] = { 'R', 'G', 'B' };\n      z->img_comp[i].id = stbi__get8(s);\n      if (s->img_n == 3 && z->img_comp[i].id == rgb[i])\n         ++z->rgb;\n      q = stbi__get8(s);\n      z->img_comp[i].h = (q >> 4);  if (!z->img_comp[i].h || z->img_comp[i].h > 4) return stbi__err(\"bad H\",\"Corrupt JPEG\");\n      z->img_comp[i].v = q & 15;    if (!z->img_comp[i].v || z->img_comp[i].v > 4) return stbi__err(\"bad V\",\"Corrupt JPEG\");\n      z->img_comp[i].tq = stbi__get8(s);  if (z->img_comp[i].tq > 3) return stbi__err(\"bad TQ\",\"Corrupt JPEG\");\n   }\n\n   if (scan != STBI__SCAN_load) return 1;\n\n   if (!stbi__mad3sizes_valid(s->img_x, s->img_y, s->img_n, 0)) return stbi__err(\"too large\", \"Image too large to decode\");\n\n   for (i=0; i < s->img_n; ++i) {\n      if (z->img_comp[i].h > h_max) h_max = z->img_comp[i].h;\n      if (z->img_comp[i].v > v_max) v_max = z->img_comp[i].v;\n   }\n\n   // check that plane subsampling factors are integer ratios; our resamplers can't deal with fractional ratios\n   // and I've never seen a non-corrupted JPEG file actually use them\n   for (i=0; i < s->img_n; ++i) {\n      if (h_max % z->img_comp[i].h != 0) return stbi__err(\"bad H\",\"Corrupt JPEG\");\n      if (v_max % z->img_comp[i].v != 0) return stbi__err(\"bad V\",\"Corrupt JPEG\");\n   }\n\n   // compute interleaved mcu info\n   z->img_h_max = h_max;\n   z->img_v_max = v_max;\n   z->img_mcu_w = h_max * 8;\n   z->img_mcu_h = v_max * 8;\n   // these sizes can't be more than 17 bits\n   z->img_mcu_x = (s->img_x + z->img_mcu_w-1) / z->img_mcu_w;\n   z->img_mcu_y = (s->img_y + z->img_mcu_h-1) / z->img_mcu_h;\n\n   for (i=0; i < s->img_n; ++i) {\n      // number of effective pixels (e.g. for non-interleaved MCU)\n      z->img_comp[i].x = (s->img_x * z->img_comp[i].h + h_max-1) / h_max;\n      z->img_comp[i].y = (s->img_y * z->img_comp[i].v + v_max-1) / v_max;\n      // to simplify generation, we'll allocate enough memory to decode\n      // the bogus oversized data from using interleaved MCUs and their\n      // big blocks (e.g. a 16x16 iMCU on an image of width 33); we won't\n      // discard the extra data until colorspace conversion\n      //\n      // img_mcu_x, img_mcu_y: <=17 bits; comp[i].h and .v are <=4 (checked earlier)\n      // so these muls can't overflow with 32-bit ints (which we require)\n      z->img_comp[i].w2 = z->img_mcu_x * z->img_comp[i].h * 8;\n      z->img_comp[i].h2 = z->img_mcu_y * z->img_comp[i].v * 8;\n      z->img_comp[i].coeff = 0;\n      z->img_comp[i].raw_coeff = 0;\n      z->img_comp[i].linebuf = NULL;\n      z->img_comp[i].raw_data = stbi__malloc_mad2(z->img_comp[i].w2, z->img_comp[i].h2, 15);\n      if (z->img_comp[i].raw_data == NULL)\n         return stbi__free_jpeg_components(z, i+1, stbi__err(\"outofmem\", \"Out of memory\"));\n      // align blocks for idct using mmx/sse\n      z->img_comp[i].data = (stbi_uc*) (((size_t) z->img_comp[i].raw_data + 15) & ~15);\n      if (z->progressive) {\n         // w2, h2 are multiples of 8 (see above)\n         z->img_comp[i].coeff_w = z->img_comp[i].w2 / 8;\n         z->img_comp[i].coeff_h = z->img_comp[i].h2 / 8;\n         z->img_comp[i].raw_coeff = stbi__malloc_mad3(z->img_comp[i].w2, z->img_comp[i].h2, sizeof(short), 15);\n         if (z->img_comp[i].raw_coeff == NULL)\n            return stbi__free_jpeg_components(z, i+1, stbi__err(\"outofmem\", \"Out of memory\"));\n         z->img_comp[i].coeff = (short*) (((size_t) z->img_comp[i].raw_coeff + 15) & ~15);\n      }\n   }\n\n   return 1;\n}\n\n// use comparisons since in some cases we handle more than one case (e.g. SOF)\n#define stbi__DNL(x)         ((x) == 0xdc)\n#define stbi__SOI(x)         ((x) == 0xd8)\n#define stbi__EOI(x)         ((x) == 0xd9)\n#define stbi__SOF(x)         ((x) == 0xc0 || (x) == 0xc1 || (x) == 0xc2)\n#define stbi__SOS(x)         ((x) == 0xda)\n\n#define stbi__SOF_progressive(x)   ((x) == 0xc2)\n\nstatic int stbi__decode_jpeg_header(stbi__jpeg *z, int scan)\n{\n   int m;\n   z->jfif = 0;\n   z->app14_color_transform = -1; // valid values are 0,1,2\n   z->marker = STBI__MARKER_none; // initialize cached marker to empty\n   m = stbi__get_marker(z);\n   if (!stbi__SOI(m)) return stbi__err(\"no SOI\",\"Corrupt JPEG\");\n   if (scan == STBI__SCAN_type) return 1;\n   m = stbi__get_marker(z);\n   while (!stbi__SOF(m)) {\n      if (!stbi__process_marker(z,m)) return 0;\n      m = stbi__get_marker(z);\n      while (m == STBI__MARKER_none) {\n         // some files have extra padding after their blocks, so ok, we'll scan\n         if (stbi__at_eof(z->s)) return stbi__err(\"no SOF\", \"Corrupt JPEG\");\n         m = stbi__get_marker(z);\n      }\n   }\n   z->progressive = stbi__SOF_progressive(m);\n   if (!stbi__process_frame_header(z, scan)) return 0;\n   return 1;\n}\n\n// decode image to YCbCr format\nstatic int stbi__decode_jpeg_image(stbi__jpeg *j)\n{\n   int m;\n   for (m = 0; m < 4; m++) {\n      j->img_comp[m].raw_data = NULL;\n      j->img_comp[m].raw_coeff = NULL;\n   }\n   j->restart_interval = 0;\n   if (!stbi__decode_jpeg_header(j, STBI__SCAN_load)) return 0;\n   m = stbi__get_marker(j);\n   while (!stbi__EOI(m)) {\n      if (stbi__SOS(m)) {\n         if (!stbi__process_scan_header(j)) return 0;\n         if (!stbi__parse_entropy_coded_data(j)) return 0;\n         if (j->marker == STBI__MARKER_none ) {\n            // handle 0s at the end of image data from IP Kamera 9060\n            while (!stbi__at_eof(j->s)) {\n               int x = stbi__get8(j->s);\n               if (x == 255) {\n                  j->marker = stbi__get8(j->s);\n                  break;\n               }\n            }\n            // if we reach eof without hitting a marker, stbi__get_marker() below will fail and we'll eventually return 0\n         }\n      } else if (stbi__DNL(m)) {\n         int Ld = stbi__get16be(j->s);\n         stbi__uint32 NL = stbi__get16be(j->s);\n         if (Ld != 4) return stbi__err(\"bad DNL len\", \"Corrupt JPEG\");\n         if (NL != j->s->img_y) return stbi__err(\"bad DNL height\", \"Corrupt JPEG\");\n      } else {\n         if (!stbi__process_marker(j, m)) return 0;\n      }\n      m = stbi__get_marker(j);\n   }\n   if (j->progressive)\n      stbi__jpeg_finish(j);\n   return 1;\n}\n\n// static jfif-centered resampling (across block boundaries)\n\ntypedef stbi_uc *(*resample_row_func)(stbi_uc *out, stbi_uc *in0, stbi_uc *in1,\n                                    int w, int hs);\n\n#define stbi__div4(x) ((stbi_uc) ((x) >> 2))\n\nstatic stbi_uc *resample_row_1(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs)\n{\n   STBI_NOTUSED(out);\n   STBI_NOTUSED(in_far);\n   STBI_NOTUSED(w);\n   STBI_NOTUSED(hs);\n   return in_near;\n}\n\nstatic stbi_uc* stbi__resample_row_v_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs)\n{\n   // need to generate two samples vertically for every one in input\n   int i;\n   STBI_NOTUSED(hs);\n   for (i=0; i < w; ++i)\n      out[i] = stbi__div4(3*in_near[i] + in_far[i] + 2);\n   return out;\n}\n\nstatic stbi_uc*  stbi__resample_row_h_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs)\n{\n   // need to generate two samples horizontally for every one in input\n   int i;\n   stbi_uc *input = in_near;\n\n   if (w == 1) {\n      // if only one sample, can't do any interpolation\n      out[0] = out[1] = input[0];\n      return out;\n   }\n\n   out[0] = input[0];\n   out[1] = stbi__div4(input[0]*3 + input[1] + 2);\n   for (i=1; i < w-1; ++i) {\n      int n = 3*input[i]+2;\n      out[i*2+0] = stbi__div4(n+input[i-1]);\n      out[i*2+1] = stbi__div4(n+input[i+1]);\n   }\n   out[i*2+0] = stbi__div4(input[w-2]*3 + input[w-1] + 2);\n   out[i*2+1] = input[w-1];\n\n   STBI_NOTUSED(in_far);\n   STBI_NOTUSED(hs);\n\n   return out;\n}\n\n#define stbi__div16(x) ((stbi_uc) ((x) >> 4))\n\nstatic stbi_uc *stbi__resample_row_hv_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs)\n{\n   // need to generate 2x2 samples for every one in input\n   int i,t0,t1;\n   if (w == 1) {\n      out[0] = out[1] = stbi__div4(3*in_near[0] + in_far[0] + 2);\n      return out;\n   }\n\n   t1 = 3*in_near[0] + in_far[0];\n   out[0] = stbi__div4(t1+2);\n   for (i=1; i < w; ++i) {\n      t0 = t1;\n      t1 = 3*in_near[i]+in_far[i];\n      out[i*2-1] = stbi__div16(3*t0 + t1 + 8);\n      out[i*2  ] = stbi__div16(3*t1 + t0 + 8);\n   }\n   out[w*2-1] = stbi__div4(t1+2);\n\n   STBI_NOTUSED(hs);\n\n   return out;\n}\n\n#if defined(STBI_SSE2) || defined(STBI_NEON)\nstatic stbi_uc *stbi__resample_row_hv_2_simd(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs)\n{\n   // need to generate 2x2 samples for every one in input\n   int i=0,t0,t1;\n\n   if (w == 1) {\n      out[0] = out[1] = stbi__div4(3*in_near[0] + in_far[0] + 2);\n      return out;\n   }\n\n   t1 = 3*in_near[0] + in_far[0];\n   // process groups of 8 pixels for as long as we can.\n   // note we can't handle the last pixel in a row in this loop\n   // because we need to handle the filter boundary conditions.\n   for (; i < ((w-1) & ~7); i += 8) {\n#if defined(STBI_SSE2)\n      // load and perform the vertical filtering pass\n      // this uses 3*x + y = 4*x + (y - x)\n      __m128i zero  = _mm_setzero_si128();\n      __m128i farb  = _mm_loadl_epi64((__m128i *) (in_far + i));\n      __m128i nearb = _mm_loadl_epi64((__m128i *) (in_near + i));\n      __m128i farw  = _mm_unpacklo_epi8(farb, zero);\n      __m128i nearw = _mm_unpacklo_epi8(nearb, zero);\n      __m128i diff  = _mm_sub_epi16(farw, nearw);\n      __m128i nears = _mm_slli_epi16(nearw, 2);\n      __m128i curr  = _mm_add_epi16(nears, diff); // current row\n\n      // horizontal filter works the same based on shifted vers of current\n      // row. \"prev\" is current row shifted right by 1 pixel; we need to\n      // insert the previous pixel value (from t1).\n      // \"next\" is current row shifted left by 1 pixel, with first pixel\n      // of next block of 8 pixels added in.\n      __m128i prv0 = _mm_slli_si128(curr, 2);\n      __m128i nxt0 = _mm_srli_si128(curr, 2);\n      __m128i prev = _mm_insert_epi16(prv0, t1, 0);\n      __m128i next = _mm_insert_epi16(nxt0, 3*in_near[i+8] + in_far[i+8], 7);\n\n      // horizontal filter, polyphase implementation since it's convenient:\n      // even pixels = 3*cur + prev = cur*4 + (prev - cur)\n      // odd  pixels = 3*cur + next = cur*4 + (next - cur)\n      // note the shared term.\n      __m128i bias  = _mm_set1_epi16(8);\n      __m128i curs = _mm_slli_epi16(curr, 2);\n      __m128i prvd = _mm_sub_epi16(prev, curr);\n      __m128i nxtd = _mm_sub_epi16(next, curr);\n      __m128i curb = _mm_add_epi16(curs, bias);\n      __m128i even = _mm_add_epi16(prvd, curb);\n      __m128i odd  = _mm_add_epi16(nxtd, curb);\n\n      // interleave even and odd pixels, then undo scaling.\n      __m128i int0 = _mm_unpacklo_epi16(even, odd);\n      __m128i int1 = _mm_unpackhi_epi16(even, odd);\n      __m128i de0  = _mm_srli_epi16(int0, 4);\n      __m128i de1  = _mm_srli_epi16(int1, 4);\n\n      // pack and write output\n      __m128i outv = _mm_packus_epi16(de0, de1);\n      _mm_storeu_si128((__m128i *) (out + i*2), outv);\n#elif defined(STBI_NEON)\n      // load and perform the vertical filtering pass\n      // this uses 3*x + y = 4*x + (y - x)\n      uint8x8_t farb  = vld1_u8(in_far + i);\n      uint8x8_t nearb = vld1_u8(in_near + i);\n      int16x8_t diff  = vreinterpretq_s16_u16(vsubl_u8(farb, nearb));\n      int16x8_t nears = vreinterpretq_s16_u16(vshll_n_u8(nearb, 2));\n      int16x8_t curr  = vaddq_s16(nears, diff); // current row\n\n      // horizontal filter works the same based on shifted vers of current\n      // row. \"prev\" is current row shifted right by 1 pixel; we need to\n      // insert the previous pixel value (from t1).\n      // \"next\" is current row shifted left by 1 pixel, with first pixel\n      // of next block of 8 pixels added in.\n      int16x8_t prv0 = vextq_s16(curr, curr, 7);\n      int16x8_t nxt0 = vextq_s16(curr, curr, 1);\n      int16x8_t prev = vsetq_lane_s16(t1, prv0, 0);\n      int16x8_t next = vsetq_lane_s16(3*in_near[i+8] + in_far[i+8], nxt0, 7);\n\n      // horizontal filter, polyphase implementation since it's convenient:\n      // even pixels = 3*cur + prev = cur*4 + (prev - cur)\n      // odd  pixels = 3*cur + next = cur*4 + (next - cur)\n      // note the shared term.\n      int16x8_t curs = vshlq_n_s16(curr, 2);\n      int16x8_t prvd = vsubq_s16(prev, curr);\n      int16x8_t nxtd = vsubq_s16(next, curr);\n      int16x8_t even = vaddq_s16(curs, prvd);\n      int16x8_t odd  = vaddq_s16(curs, nxtd);\n\n      // undo scaling and round, then store with even/odd phases interleaved\n      uint8x8x2_t o;\n      o.val[0] = vqrshrun_n_s16(even, 4);\n      o.val[1] = vqrshrun_n_s16(odd,  4);\n      vst2_u8(out + i*2, o);\n#endif\n\n      // \"previous\" value for next iter\n      t1 = 3*in_near[i+7] + in_far[i+7];\n   }\n\n   t0 = t1;\n   t1 = 3*in_near[i] + in_far[i];\n   out[i*2] = stbi__div16(3*t1 + t0 + 8);\n\n   for (++i; i < w; ++i) {\n      t0 = t1;\n      t1 = 3*in_near[i]+in_far[i];\n      out[i*2-1] = stbi__div16(3*t0 + t1 + 8);\n      out[i*2  ] = stbi__div16(3*t1 + t0 + 8);\n   }\n   out[w*2-1] = stbi__div4(t1+2);\n\n   STBI_NOTUSED(hs);\n\n   return out;\n}\n#endif\n\nstatic stbi_uc *stbi__resample_row_generic(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs)\n{\n   // resample with nearest-neighbor\n   int i,j;\n   STBI_NOTUSED(in_far);\n   for (i=0; i < w; ++i)\n      for (j=0; j < hs; ++j)\n         out[i*hs+j] = in_near[i];\n   return out;\n}\n\n// this is a reduced-precision calculation of YCbCr-to-RGB introduced\n// to make sure the code produces the same results in both SIMD and scalar\n#define stbi__float2fixed(x)  (((int) ((x) * 4096.0f + 0.5f)) << 8)\nstatic void stbi__YCbCr_to_RGB_row(stbi_uc *out, const stbi_uc *y, const stbi_uc *pcb, const stbi_uc *pcr, int count, int step)\n{\n   int i;\n   for (i=0; i < count; ++i) {\n      int y_fixed = (y[i] << 20) + (1<<19); // rounding\n      int r,g,b;\n      int cr = pcr[i] - 128;\n      int cb = pcb[i] - 128;\n      r = y_fixed +  cr* stbi__float2fixed(1.40200f);\n      g = y_fixed + (cr*-stbi__float2fixed(0.71414f)) + ((cb*-stbi__float2fixed(0.34414f)) & 0xffff0000);\n      b = y_fixed                                     +   cb* stbi__float2fixed(1.77200f);\n      r >>= 20;\n      g >>= 20;\n      b >>= 20;\n      if ((unsigned) r > 255) { if (r < 0) r = 0; else r = 255; }\n      if ((unsigned) g > 255) { if (g < 0) g = 0; else g = 255; }\n      if ((unsigned) b > 255) { if (b < 0) b = 0; else b = 255; }\n      out[0] = (stbi_uc)r;\n      out[1] = (stbi_uc)g;\n      out[2] = (stbi_uc)b;\n      out[3] = 255;\n      out += step;\n   }\n}\n\n#if defined(STBI_SSE2) || defined(STBI_NEON)\nstatic void stbi__YCbCr_to_RGB_simd(stbi_uc *out, stbi_uc const *y, stbi_uc const *pcb, stbi_uc const *pcr, int count, int step)\n{\n   int i = 0;\n\n#ifdef STBI_SSE2\n   // step == 3 is pretty ugly on the final interleave, and i'm not convinced\n   // it's useful in practice (you wouldn't use it for textures, for example).\n   // so just accelerate step == 4 case.\n   if (step == 4) {\n      // this is a fairly straightforward implementation and not super-optimized.\n      __m128i signflip  = _mm_set1_epi8(-0x80);\n      __m128i cr_const0 = _mm_set1_epi16(   (short) ( 1.40200f*4096.0f+0.5f));\n      __m128i cr_const1 = _mm_set1_epi16( - (short) ( 0.71414f*4096.0f+0.5f));\n      __m128i cb_const0 = _mm_set1_epi16( - (short) ( 0.34414f*4096.0f+0.5f));\n      __m128i cb_const1 = _mm_set1_epi16(   (short) ( 1.77200f*4096.0f+0.5f));\n      __m128i y_bias = _mm_set1_epi8((char) (unsigned char) 128);\n      __m128i xw = _mm_set1_epi16(255); // alpha channel\n\n      for (; i+7 < count; i += 8) {\n         // load\n         __m128i y_bytes = _mm_loadl_epi64((__m128i *) (y+i));\n         __m128i cr_bytes = _mm_loadl_epi64((__m128i *) (pcr+i));\n         __m128i cb_bytes = _mm_loadl_epi64((__m128i *) (pcb+i));\n         __m128i cr_biased = _mm_xor_si128(cr_bytes, signflip); // -128\n         __m128i cb_biased = _mm_xor_si128(cb_bytes, signflip); // -128\n\n         // unpack to short (and left-shift cr, cb by 8)\n         __m128i yw  = _mm_unpacklo_epi8(y_bias, y_bytes);\n         __m128i crw = _mm_unpacklo_epi8(_mm_setzero_si128(), cr_biased);\n         __m128i cbw = _mm_unpacklo_epi8(_mm_setzero_si128(), cb_biased);\n\n         // color transform\n         __m128i yws = _mm_srli_epi16(yw, 4);\n         __m128i cr0 = _mm_mulhi_epi16(cr_const0, crw);\n         __m128i cb0 = _mm_mulhi_epi16(cb_const0, cbw);\n         __m128i cb1 = _mm_mulhi_epi16(cbw, cb_const1);\n         __m128i cr1 = _mm_mulhi_epi16(crw, cr_const1);\n         __m128i rws = _mm_add_epi16(cr0, yws);\n         __m128i gwt = _mm_add_epi16(cb0, yws);\n         __m128i bws = _mm_add_epi16(yws, cb1);\n         __m128i gws = _mm_add_epi16(gwt, cr1);\n\n         // descale\n         __m128i rw = _mm_srai_epi16(rws, 4);\n         __m128i bw = _mm_srai_epi16(bws, 4);\n         __m128i gw = _mm_srai_epi16(gws, 4);\n\n         // back to byte, set up for transpose\n         __m128i brb = _mm_packus_epi16(rw, bw);\n         __m128i gxb = _mm_packus_epi16(gw, xw);\n\n         // transpose to interleave channels\n         __m128i t0 = _mm_unpacklo_epi8(brb, gxb);\n         __m128i t1 = _mm_unpackhi_epi8(brb, gxb);\n         __m128i o0 = _mm_unpacklo_epi16(t0, t1);\n         __m128i o1 = _mm_unpackhi_epi16(t0, t1);\n\n         // store\n         _mm_storeu_si128((__m128i *) (out + 0), o0);\n         _mm_storeu_si128((__m128i *) (out + 16), o1);\n         out += 32;\n      }\n   }\n#endif\n\n#ifdef STBI_NEON\n   // in this version, step=3 support would be easy to add. but is there demand?\n   if (step == 4) {\n      // this is a fairly straightforward implementation and not super-optimized.\n      uint8x8_t signflip = vdup_n_u8(0x80);\n      int16x8_t cr_const0 = vdupq_n_s16(   (short) ( 1.40200f*4096.0f+0.5f));\n      int16x8_t cr_const1 = vdupq_n_s16( - (short) ( 0.71414f*4096.0f+0.5f));\n      int16x8_t cb_const0 = vdupq_n_s16( - (short) ( 0.34414f*4096.0f+0.5f));\n      int16x8_t cb_const1 = vdupq_n_s16(   (short) ( 1.77200f*4096.0f+0.5f));\n\n      for (; i+7 < count; i += 8) {\n         // load\n         uint8x8_t y_bytes  = vld1_u8(y + i);\n         uint8x8_t cr_bytes = vld1_u8(pcr + i);\n         uint8x8_t cb_bytes = vld1_u8(pcb + i);\n         int8x8_t cr_biased = vreinterpret_s8_u8(vsub_u8(cr_bytes, signflip));\n         int8x8_t cb_biased = vreinterpret_s8_u8(vsub_u8(cb_bytes, signflip));\n\n         // expand to s16\n         int16x8_t yws = vreinterpretq_s16_u16(vshll_n_u8(y_bytes, 4));\n         int16x8_t crw = vshll_n_s8(cr_biased, 7);\n         int16x8_t cbw = vshll_n_s8(cb_biased, 7);\n\n         // color transform\n         int16x8_t cr0 = vqdmulhq_s16(crw, cr_const0);\n         int16x8_t cb0 = vqdmulhq_s16(cbw, cb_const0);\n         int16x8_t cr1 = vqdmulhq_s16(crw, cr_const1);\n         int16x8_t cb1 = vqdmulhq_s16(cbw, cb_const1);\n         int16x8_t rws = vaddq_s16(yws, cr0);\n         int16x8_t gws = vaddq_s16(vaddq_s16(yws, cb0), cr1);\n         int16x8_t bws = vaddq_s16(yws, cb1);\n\n         // undo scaling, round, convert to byte\n         uint8x8x4_t o;\n         o.val[0] = vqrshrun_n_s16(rws, 4);\n         o.val[1] = vqrshrun_n_s16(gws, 4);\n         o.val[2] = vqrshrun_n_s16(bws, 4);\n         o.val[3] = vdup_n_u8(255);\n\n         // store, interleaving r/g/b/a\n         vst4_u8(out, o);\n         out += 8*4;\n      }\n   }\n#endif\n\n   for (; i < count; ++i) {\n      int y_fixed = (y[i] << 20) + (1<<19); // rounding\n      int r,g,b;\n      int cr = pcr[i] - 128;\n      int cb = pcb[i] - 128;\n      r = y_fixed + cr* stbi__float2fixed(1.40200f);\n      g = y_fixed + cr*-stbi__float2fixed(0.71414f) + ((cb*-stbi__float2fixed(0.34414f)) & 0xffff0000);\n      b = y_fixed                                   +   cb* stbi__float2fixed(1.77200f);\n      r >>= 20;\n      g >>= 20;\n      b >>= 20;\n      if ((unsigned) r > 255) { if (r < 0) r = 0; else r = 255; }\n      if ((unsigned) g > 255) { if (g < 0) g = 0; else g = 255; }\n      if ((unsigned) b > 255) { if (b < 0) b = 0; else b = 255; }\n      out[0] = (stbi_uc)r;\n      out[1] = (stbi_uc)g;\n      out[2] = (stbi_uc)b;\n      out[3] = 255;\n      out += step;\n   }\n}\n#endif\n\n// set up the kernels\nstatic void stbi__setup_jpeg(stbi__jpeg *j)\n{\n   j->idct_block_kernel = stbi__idct_block;\n   j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_row;\n   j->resample_row_hv_2_kernel = stbi__resample_row_hv_2;\n\n#ifdef STBI_SSE2\n   if (stbi__sse2_available()) {\n      j->idct_block_kernel = stbi__idct_simd;\n      j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd;\n      j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd;\n   }\n#endif\n\n#ifdef STBI_NEON\n   j->idct_block_kernel = stbi__idct_simd;\n   j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd;\n   j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd;\n#endif\n}\n\n// clean up the temporary component buffers\nstatic void stbi__cleanup_jpeg(stbi__jpeg *j)\n{\n   stbi__free_jpeg_components(j, j->s->img_n, 0);\n}\n\ntypedef struct\n{\n   resample_row_func resample;\n   stbi_uc *line0,*line1;\n   int hs,vs;   // expansion factor in each axis\n   int w_lores; // horizontal pixels pre-expansion\n   int ystep;   // how far through vertical expansion we are\n   int ypos;    // which pre-expansion row we're on\n} stbi__resample;\n\n// fast 0..255 * 0..255 => 0..255 rounded multiplication\nstatic stbi_uc stbi__blinn_8x8(stbi_uc x, stbi_uc y)\n{\n   unsigned int t = x*y + 128;\n   return (stbi_uc) ((t + (t >>8)) >> 8);\n}\n\nstatic stbi_uc *load_jpeg_image(stbi__jpeg *z, int *out_x, int *out_y, int *comp, int req_comp)\n{\n   int n, decode_n, is_rgb;\n   z->s->img_n = 0; // make stbi__cleanup_jpeg safe\n\n   // validate req_comp\n   if (req_comp < 0 || req_comp > 4) return stbi__errpuc(\"bad req_comp\", \"Internal error\");\n\n   // load a jpeg image from whichever source, but leave in YCbCr format\n   if (!stbi__decode_jpeg_image(z)) { stbi__cleanup_jpeg(z); return NULL; }\n\n   // determine actual number of components to generate\n   n = req_comp ? req_comp : z->s->img_n >= 3 ? 3 : 1;\n\n   is_rgb = z->s->img_n == 3 && (z->rgb == 3 || (z->app14_color_transform == 0 && !z->jfif));\n\n   if (z->s->img_n == 3 && n < 3 && !is_rgb)\n      decode_n = 1;\n   else\n      decode_n = z->s->img_n;\n\n   // nothing to do if no components requested; check this now to avoid\n   // accessing uninitialized coutput[0] later\n   if (decode_n <= 0) { stbi__cleanup_jpeg(z); return NULL; }\n\n   // resample and color-convert\n   {\n      int k;\n      unsigned int i,j;\n      stbi_uc *output;\n      stbi_uc *coutput[4] = { NULL, NULL, NULL, NULL };\n\n      stbi__resample res_comp[4];\n\n      for (k=0; k < decode_n; ++k) {\n         stbi__resample *r = &res_comp[k];\n\n         // allocate line buffer big enough for upsampling off the edges\n         // with upsample factor of 4\n         z->img_comp[k].linebuf = (stbi_uc *) stbi__malloc(z->s->img_x + 3);\n         if (!z->img_comp[k].linebuf) { stbi__cleanup_jpeg(z); return stbi__errpuc(\"outofmem\", \"Out of memory\"); }\n\n         r->hs      = z->img_h_max / z->img_comp[k].h;\n         r->vs      = z->img_v_max / z->img_comp[k].v;\n         r->ystep   = r->vs >> 1;\n         r->w_lores = (z->s->img_x + r->hs-1) / r->hs;\n         r->ypos    = 0;\n         r->line0   = r->line1 = z->img_comp[k].data;\n\n         if      (r->hs == 1 && r->vs == 1) r->resample = resample_row_1;\n         else if (r->hs == 1 && r->vs == 2) r->resample = stbi__resample_row_v_2;\n         else if (r->hs == 2 && r->vs == 1) r->resample = stbi__resample_row_h_2;\n         else if (r->hs == 2 && r->vs == 2) r->resample = z->resample_row_hv_2_kernel;\n         else                               r->resample = stbi__resample_row_generic;\n      }\n\n      // can't error after this so, this is safe\n      output = (stbi_uc *) stbi__malloc_mad3(n, z->s->img_x, z->s->img_y, 1);\n      if (!output) { stbi__cleanup_jpeg(z); return stbi__errpuc(\"outofmem\", \"Out of memory\"); }\n\n      // now go ahead and resample\n      for (j=0; j < z->s->img_y; ++j) {\n         stbi_uc *out = output + n * z->s->img_x * j;\n         for (k=0; k < decode_n; ++k) {\n            stbi__resample *r = &res_comp[k];\n            int y_bot = r->ystep >= (r->vs >> 1);\n            coutput[k] = r->resample(z->img_comp[k].linebuf,\n                                     y_bot ? r->line1 : r->line0,\n                                     y_bot ? r->line0 : r->line1,\n                                     r->w_lores, r->hs);\n            if (++r->ystep >= r->vs) {\n               r->ystep = 0;\n               r->line0 = r->line1;\n               if (++r->ypos < z->img_comp[k].y)\n                  r->line1 += z->img_comp[k].w2;\n            }\n         }\n         if (n >= 3) {\n            stbi_uc *y = coutput[0];\n            if (z->s->img_n == 3) {\n               if (is_rgb) {\n                  for (i=0; i < z->s->img_x; ++i) {\n                     out[0] = y[i];\n                     out[1] = coutput[1][i];\n                     out[2] = coutput[2][i];\n                     out[3] = 255;\n                     out += n;\n                  }\n               } else {\n                  z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n);\n               }\n            } else if (z->s->img_n == 4) {\n               if (z->app14_color_transform == 0) { // CMYK\n                  for (i=0; i < z->s->img_x; ++i) {\n                     stbi_uc m = coutput[3][i];\n                     out[0] = stbi__blinn_8x8(coutput[0][i], m);\n                     out[1] = stbi__blinn_8x8(coutput[1][i], m);\n                     out[2] = stbi__blinn_8x8(coutput[2][i], m);\n                     out[3] = 255;\n                     out += n;\n                  }\n               } else if (z->app14_color_transform == 2) { // YCCK\n                  z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n);\n                  for (i=0; i < z->s->img_x; ++i) {\n                     stbi_uc m = coutput[3][i];\n                     out[0] = stbi__blinn_8x8(255 - out[0], m);\n                     out[1] = stbi__blinn_8x8(255 - out[1], m);\n                     out[2] = stbi__blinn_8x8(255 - out[2], m);\n                     out += n;\n                  }\n               } else { // YCbCr + alpha?  Ignore the fourth channel for now\n                  z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n);\n               }\n            } else\n               for (i=0; i < z->s->img_x; ++i) {\n                  out[0] = out[1] = out[2] = y[i];\n                  out[3] = 255; // not used if n==3\n                  out += n;\n               }\n         } else {\n            if (is_rgb) {\n               if (n == 1)\n                  for (i=0; i < z->s->img_x; ++i)\n                     *out++ = stbi__compute_y(coutput[0][i], coutput[1][i], coutput[2][i]);\n               else {\n                  for (i=0; i < z->s->img_x; ++i, out += 2) {\n                     out[0] = stbi__compute_y(coutput[0][i], coutput[1][i], coutput[2][i]);\n                     out[1] = 255;\n                  }\n               }\n            } else if (z->s->img_n == 4 && z->app14_color_transform == 0) {\n               for (i=0; i < z->s->img_x; ++i) {\n                  stbi_uc m = coutput[3][i];\n                  stbi_uc r = stbi__blinn_8x8(coutput[0][i], m);\n                  stbi_uc g = stbi__blinn_8x8(coutput[1][i], m);\n                  stbi_uc b = stbi__blinn_8x8(coutput[2][i], m);\n                  out[0] = stbi__compute_y(r, g, b);\n                  out[1] = 255;\n                  out += n;\n               }\n            } else if (z->s->img_n == 4 && z->app14_color_transform == 2) {\n               for (i=0; i < z->s->img_x; ++i) {\n                  out[0] = stbi__blinn_8x8(255 - coutput[0][i], coutput[3][i]);\n                  out[1] = 255;\n                  out += n;\n               }\n            } else {\n               stbi_uc *y = coutput[0];\n               if (n == 1)\n                  for (i=0; i < z->s->img_x; ++i) out[i] = y[i];\n               else\n                  for (i=0; i < z->s->img_x; ++i) { *out++ = y[i]; *out++ = 255; }\n            }\n         }\n      }\n      stbi__cleanup_jpeg(z);\n      *out_x = z->s->img_x;\n      *out_y = z->s->img_y;\n      if (comp) *comp = z->s->img_n >= 3 ? 3 : 1; // report original components, not output\n      return output;\n   }\n}\n\nstatic void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri)\n{\n   unsigned char* result;\n   stbi__jpeg* j = (stbi__jpeg*) stbi__malloc(sizeof(stbi__jpeg));\n   if (!j) return stbi__errpuc(\"outofmem\", \"Out of memory\");\n   STBI_NOTUSED(ri);\n   j->s = s;\n   stbi__setup_jpeg(j);\n   result = load_jpeg_image(j, x,y,comp,req_comp);\n   STBI_FREE(j);\n   return result;\n}\n\nstatic int stbi__jpeg_test(stbi__context *s)\n{\n   int r;\n   stbi__jpeg* j = (stbi__jpeg*)stbi__malloc(sizeof(stbi__jpeg));\n   if (!j) return stbi__err(\"outofmem\", \"Out of memory\");\n   j->s = s;\n   stbi__setup_jpeg(j);\n   r = stbi__decode_jpeg_header(j, STBI__SCAN_type);\n   stbi__rewind(s);\n   STBI_FREE(j);\n   return r;\n}\n\nstatic int stbi__jpeg_info_raw(stbi__jpeg *j, int *x, int *y, int *comp)\n{\n   if (!stbi__decode_jpeg_header(j, STBI__SCAN_header)) {\n      stbi__rewind( j->s );\n      return 0;\n   }\n   if (x) *x = j->s->img_x;\n   if (y) *y = j->s->img_y;\n   if (comp) *comp = j->s->img_n >= 3 ? 3 : 1;\n   return 1;\n}\n\nstatic int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp)\n{\n   int result;\n   stbi__jpeg* j = (stbi__jpeg*) (stbi__malloc(sizeof(stbi__jpeg)));\n   if (!j) return stbi__err(\"outofmem\", \"Out of memory\");\n   j->s = s;\n   result = stbi__jpeg_info_raw(j, x, y, comp);\n   STBI_FREE(j);\n   return result;\n}\n#endif\n\n// public domain zlib decode    v0.2  Sean Barrett 2006-11-18\n//    simple implementation\n//      - all input must be provided in an upfront buffer\n//      - all output is written to a single output buffer (can malloc/realloc)\n//    performance\n//      - fast huffman\n\n#ifndef STBI_NO_ZLIB\n\n// fast-way is faster to check than jpeg huffman, but slow way is slower\n#define STBI__ZFAST_BITS  9 // accelerate all cases in default tables\n#define STBI__ZFAST_MASK  ((1 << STBI__ZFAST_BITS) - 1)\n#define STBI__ZNSYMS 288 // number of symbols in literal/length alphabet\n\n// zlib-style huffman encoding\n// (jpegs packs from left, zlib from right, so can't share code)\ntypedef struct\n{\n   stbi__uint16 fast[1 << STBI__ZFAST_BITS];\n   stbi__uint16 firstcode[16];\n   int maxcode[17];\n   stbi__uint16 firstsymbol[16];\n   stbi_uc  size[STBI__ZNSYMS];\n   stbi__uint16 value[STBI__ZNSYMS];\n} stbi__zhuffman;\n\nstbi_inline static int stbi__bitreverse16(int n)\n{\n  n = ((n & 0xAAAA) >>  1) | ((n & 0x5555) << 1);\n  n = ((n & 0xCCCC) >>  2) | ((n & 0x3333) << 2);\n  n = ((n & 0xF0F0) >>  4) | ((n & 0x0F0F) << 4);\n  n = ((n & 0xFF00) >>  8) | ((n & 0x00FF) << 8);\n  return n;\n}\n\nstbi_inline static int stbi__bit_reverse(int v, int bits)\n{\n   STBI_ASSERT(bits <= 16);\n   // to bit reverse n bits, reverse 16 and shift\n   // e.g. 11 bits, bit reverse and shift away 5\n   return stbi__bitreverse16(v) >> (16-bits);\n}\n\nstatic int stbi__zbuild_huffman(stbi__zhuffman *z, const stbi_uc *sizelist, int num)\n{\n   int i,k=0;\n   int code, next_code[16], sizes[17];\n\n   // DEFLATE spec for generating codes\n   memset(sizes, 0, sizeof(sizes));\n   memset(z->fast, 0, sizeof(z->fast));\n   for (i=0; i < num; ++i)\n      ++sizes[sizelist[i]];\n   sizes[0] = 0;\n   for (i=1; i < 16; ++i)\n      if (sizes[i] > (1 << i))\n         return stbi__err(\"bad sizes\", \"Corrupt PNG\");\n   code = 0;\n   for (i=1; i < 16; ++i) {\n      next_code[i] = code;\n      z->firstcode[i] = (stbi__uint16) code;\n      z->firstsymbol[i] = (stbi__uint16) k;\n      code = (code + sizes[i]);\n      if (sizes[i])\n         if (code-1 >= (1 << i)) return stbi__err(\"bad codelengths\",\"Corrupt PNG\");\n      z->maxcode[i] = code << (16-i); // preshift for inner loop\n      code <<= 1;\n      k += sizes[i];\n   }\n   z->maxcode[16] = 0x10000; // sentinel\n   for (i=0; i < num; ++i) {\n      int s = sizelist[i];\n      if (s) {\n         int c = next_code[s] - z->firstcode[s] + z->firstsymbol[s];\n         stbi__uint16 fastv = (stbi__uint16) ((s << 9) | i);\n         z->size [c] = (stbi_uc     ) s;\n         z->value[c] = (stbi__uint16) i;\n         if (s <= STBI__ZFAST_BITS) {\n            int j = stbi__bit_reverse(next_code[s],s);\n            while (j < (1 << STBI__ZFAST_BITS)) {\n               z->fast[j] = fastv;\n               j += (1 << s);\n            }\n         }\n         ++next_code[s];\n      }\n   }\n   return 1;\n}\n\n// zlib-from-memory implementation for PNG reading\n//    because PNG allows splitting the zlib stream arbitrarily,\n//    and it's annoying structurally to have PNG call ZLIB call PNG,\n//    we require PNG read all the IDATs and combine them into a single\n//    memory buffer\n\ntypedef struct\n{\n   stbi_uc *zbuffer, *zbuffer_end;\n   int num_bits;\n   stbi__uint32 code_buffer;\n\n   char *zout;\n   char *zout_start;\n   char *zout_end;\n   int   z_expandable;\n\n   stbi__zhuffman z_length, z_distance;\n} stbi__zbuf;\n\nstbi_inline static int stbi__zeof(stbi__zbuf *z)\n{\n   return (z->zbuffer >= z->zbuffer_end);\n}\n\nstbi_inline static stbi_uc stbi__zget8(stbi__zbuf *z)\n{\n   return stbi__zeof(z) ? 0 : *z->zbuffer++;\n}\n\nstatic void stbi__fill_bits(stbi__zbuf *z)\n{\n   do {\n      if (z->code_buffer >= (1U << z->num_bits)) {\n        z->zbuffer = z->zbuffer_end;  /* treat this as EOF so we fail. */\n        return;\n      }\n      z->code_buffer |= (unsigned int) stbi__zget8(z) << z->num_bits;\n      z->num_bits += 8;\n   } while (z->num_bits <= 24);\n}\n\nstbi_inline static unsigned int stbi__zreceive(stbi__zbuf *z, int n)\n{\n   unsigned int k;\n   if (z->num_bits < n) stbi__fill_bits(z);\n   k = z->code_buffer & ((1 << n) - 1);\n   z->code_buffer >>= n;\n   z->num_bits -= n;\n   return k;\n}\n\nstatic int stbi__zhuffman_decode_slowpath(stbi__zbuf *a, stbi__zhuffman *z)\n{\n   int b,s,k;\n   // not resolved by fast table, so compute it the slow way\n   // use jpeg approach, which requires MSbits at top\n   k = stbi__bit_reverse(a->code_buffer, 16);\n   for (s=STBI__ZFAST_BITS+1; ; ++s)\n      if (k < z->maxcode[s])\n         break;\n   if (s >= 16) return -1; // invalid code!\n   // code size is s, so:\n   b = (k >> (16-s)) - z->firstcode[s] + z->firstsymbol[s];\n   if (b >= STBI__ZNSYMS) return -1; // some data was corrupt somewhere!\n   if (z->size[b] != s) return -1;  // was originally an assert, but report failure instead.\n   a->code_buffer >>= s;\n   a->num_bits -= s;\n   return z->value[b];\n}\n\nstbi_inline static int stbi__zhuffman_decode(stbi__zbuf *a, stbi__zhuffman *z)\n{\n   int b,s;\n   if (a->num_bits < 16) {\n      if (stbi__zeof(a)) {\n         return -1;   /* report error for unexpected end of data. */\n      }\n      stbi__fill_bits(a);\n   }\n   b = z->fast[a->code_buffer & STBI__ZFAST_MASK];\n   if (b) {\n      s = b >> 9;\n      a->code_buffer >>= s;\n      a->num_bits -= s;\n      return b & 511;\n   }\n   return stbi__zhuffman_decode_slowpath(a, z);\n}\n\nstatic int stbi__zexpand(stbi__zbuf *z, char *zout, int n)  // need to make room for n bytes\n{\n   char *q;\n   unsigned int cur, limit, old_limit;\n   z->zout = zout;\n   if (!z->z_expandable) return stbi__err(\"output buffer limit\",\"Corrupt PNG\");\n   cur   = (unsigned int) (z->zout - z->zout_start);\n   limit = old_limit = (unsigned) (z->zout_end - z->zout_start);\n   if (UINT_MAX - cur < (unsigned) n) return stbi__err(\"outofmem\", \"Out of memory\");\n   while (cur + n > limit) {\n      if(limit > UINT_MAX / 2) return stbi__err(\"outofmem\", \"Out of memory\");\n      limit *= 2;\n   }\n   q = (char *) STBI_REALLOC_SIZED(z->zout_start, old_limit, limit);\n   STBI_NOTUSED(old_limit);\n   if (q == NULL) return stbi__err(\"outofmem\", \"Out of memory\");\n   z->zout_start = q;\n   z->zout       = q + cur;\n   z->zout_end   = q + limit;\n   return 1;\n}\n\nstatic const int stbi__zlength_base[31] = {\n   3,4,5,6,7,8,9,10,11,13,\n   15,17,19,23,27,31,35,43,51,59,\n   67,83,99,115,131,163,195,227,258,0,0 };\n\nstatic const int stbi__zlength_extra[31]=\n{ 0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0 };\n\nstatic const int stbi__zdist_base[32] = { 1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,\n257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0};\n\nstatic const int stbi__zdist_extra[32] =\n{ 0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13};\n\nstatic int stbi__parse_huffman_block(stbi__zbuf *a)\n{\n   char *zout = a->zout;\n   for(;;) {\n      int z = stbi__zhuffman_decode(a, &a->z_length);\n      if (z < 256) {\n         if (z < 0) return stbi__err(\"bad huffman code\",\"Corrupt PNG\"); // error in huffman codes\n         if (zout >= a->zout_end) {\n            if (!stbi__zexpand(a, zout, 1)) return 0;\n            zout = a->zout;\n         }\n         *zout++ = (char) z;\n      } else {\n         stbi_uc *p;\n         int len,dist;\n         if (z == 256) {\n            a->zout = zout;\n            return 1;\n         }\n         z -= 257;\n         len = stbi__zlength_base[z];\n         if (stbi__zlength_extra[z]) len += stbi__zreceive(a, stbi__zlength_extra[z]);\n         z = stbi__zhuffman_decode(a, &a->z_distance);\n         if (z < 0) return stbi__err(\"bad huffman code\",\"Corrupt PNG\");\n         dist = stbi__zdist_base[z];\n         if (stbi__zdist_extra[z]) dist += stbi__zreceive(a, stbi__zdist_extra[z]);\n         if (zout - a->zout_start < dist) return stbi__err(\"bad dist\",\"Corrupt PNG\");\n         if (zout + len > a->zout_end) {\n            if (!stbi__zexpand(a, zout, len)) return 0;\n            zout = a->zout;\n         }\n         p = (stbi_uc *) (zout - dist);\n         if (dist == 1) { // run of one byte; common in images.\n            stbi_uc v = *p;\n            if (len) { do *zout++ = v; while (--len); }\n         } else {\n            if (len) { do *zout++ = *p++; while (--len); }\n         }\n      }\n   }\n}\n\nstatic int stbi__compute_huffman_codes(stbi__zbuf *a)\n{\n   static const stbi_uc length_dezigzag[19] = { 16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15 };\n   stbi__zhuffman z_codelength;\n   stbi_uc lencodes[286+32+137];//padding for maximum single op\n   stbi_uc codelength_sizes[19];\n   int i,n;\n\n   int hlit  = stbi__zreceive(a,5) + 257;\n   int hdist = stbi__zreceive(a,5) + 1;\n   int hclen = stbi__zreceive(a,4) + 4;\n   int ntot  = hlit + hdist;\n\n   memset(codelength_sizes, 0, sizeof(codelength_sizes));\n   for (i=0; i < hclen; ++i) {\n      int s = stbi__zreceive(a,3);\n      codelength_sizes[length_dezigzag[i]] = (stbi_uc) s;\n   }\n   if (!stbi__zbuild_huffman(&z_codelength, codelength_sizes, 19)) return 0;\n\n   n = 0;\n   while (n < ntot) {\n      int c = stbi__zhuffman_decode(a, &z_codelength);\n      if (c < 0 || c >= 19) return stbi__err(\"bad codelengths\", \"Corrupt PNG\");\n      if (c < 16)\n         lencodes[n++] = (stbi_uc) c;\n      else {\n         stbi_uc fill = 0;\n         if (c == 16) {\n            c = stbi__zreceive(a,2)+3;\n            if (n == 0) return stbi__err(\"bad codelengths\", \"Corrupt PNG\");\n            fill = lencodes[n-1];\n         } else if (c == 17) {\n            c = stbi__zreceive(a,3)+3;\n         } else if (c == 18) {\n            c = stbi__zreceive(a,7)+11;\n         } else {\n            return stbi__err(\"bad codelengths\", \"Corrupt PNG\");\n         }\n         if (ntot - n < c) return stbi__err(\"bad codelengths\", \"Corrupt PNG\");\n         memset(lencodes+n, fill, c);\n         n += c;\n      }\n   }\n   if (n != ntot) return stbi__err(\"bad codelengths\",\"Corrupt PNG\");\n   if (!stbi__zbuild_huffman(&a->z_length, lencodes, hlit)) return 0;\n   if (!stbi__zbuild_huffman(&a->z_distance, lencodes+hlit, hdist)) return 0;\n   return 1;\n}\n\nstatic int stbi__parse_uncompressed_block(stbi__zbuf *a)\n{\n   stbi_uc header[4];\n   int len,nlen,k;\n   if (a->num_bits & 7)\n      stbi__zreceive(a, a->num_bits & 7); // discard\n   // drain the bit-packed data into header\n   k = 0;\n   while (a->num_bits > 0) {\n      header[k++] = (stbi_uc) (a->code_buffer & 255); // suppress MSVC run-time check\n      a->code_buffer >>= 8;\n      a->num_bits -= 8;\n   }\n   if (a->num_bits < 0) return stbi__err(\"zlib corrupt\",\"Corrupt PNG\");\n   // now fill header the normal way\n   while (k < 4)\n      header[k++] = stbi__zget8(a);\n   len  = header[1] * 256 + header[0];\n   nlen = header[3] * 256 + header[2];\n   if (nlen != (len ^ 0xffff)) return stbi__err(\"zlib corrupt\",\"Corrupt PNG\");\n   if (a->zbuffer + len > a->zbuffer_end) return stbi__err(\"read past buffer\",\"Corrupt PNG\");\n   if (a->zout + len > a->zout_end)\n      if (!stbi__zexpand(a, a->zout, len)) return 0;\n   memcpy(a->zout, a->zbuffer, len);\n   a->zbuffer += len;\n   a->zout += len;\n   return 1;\n}\n\nstatic int stbi__parse_zlib_header(stbi__zbuf *a)\n{\n   int cmf   = stbi__zget8(a);\n   int cm    = cmf & 15;\n   /* int cinfo = cmf >> 4; */\n   int flg   = stbi__zget8(a);\n   if (stbi__zeof(a)) return stbi__err(\"bad zlib header\",\"Corrupt PNG\"); // zlib spec\n   if ((cmf*256+flg) % 31 != 0) return stbi__err(\"bad zlib header\",\"Corrupt PNG\"); // zlib spec\n   if (flg & 32) return stbi__err(\"no preset dict\",\"Corrupt PNG\"); // preset dictionary not allowed in png\n   if (cm != 8) return stbi__err(\"bad compression\",\"Corrupt PNG\"); // DEFLATE required for png\n   // window = 1 << (8 + cinfo)... but who cares, we fully buffer output\n   return 1;\n}\n\nstatic const stbi_uc stbi__zdefault_length[STBI__ZNSYMS] =\n{\n   8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,\n   8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,\n   8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,\n   8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,\n   8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,\n   9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,\n   9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,\n   9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,\n   7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8\n};\nstatic const stbi_uc stbi__zdefault_distance[32] =\n{\n   5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5\n};\n/*\nInit algorithm:\n{\n   int i;   // use <= to match clearly with spec\n   for (i=0; i <= 143; ++i)     stbi__zdefault_length[i]   = 8;\n   for (   ; i <= 255; ++i)     stbi__zdefault_length[i]   = 9;\n   for (   ; i <= 279; ++i)     stbi__zdefault_length[i]   = 7;\n   for (   ; i <= 287; ++i)     stbi__zdefault_length[i]   = 8;\n\n   for (i=0; i <=  31; ++i)     stbi__zdefault_distance[i] = 5;\n}\n*/\n\nstatic int stbi__parse_zlib(stbi__zbuf *a, int parse_header)\n{\n   int final, type;\n   if (parse_header)\n      if (!stbi__parse_zlib_header(a)) return 0;\n   a->num_bits = 0;\n   a->code_buffer = 0;\n   do {\n      final = stbi__zreceive(a,1);\n      type = stbi__zreceive(a,2);\n      if (type == 0) {\n         if (!stbi__parse_uncompressed_block(a)) return 0;\n      } else if (type == 3) {\n         return 0;\n      } else {\n         if (type == 1) {\n            // use fixed code lengths\n            if (!stbi__zbuild_huffman(&a->z_length  , stbi__zdefault_length  , STBI__ZNSYMS)) return 0;\n            if (!stbi__zbuild_huffman(&a->z_distance, stbi__zdefault_distance,  32)) return 0;\n         } else {\n            if (!stbi__compute_huffman_codes(a)) return 0;\n         }\n         if (!stbi__parse_huffman_block(a)) return 0;\n      }\n   } while (!final);\n   return 1;\n}\n\nstatic int stbi__do_zlib(stbi__zbuf *a, char *obuf, int olen, int exp, int parse_header)\n{\n   a->zout_start = obuf;\n   a->zout       = obuf;\n   a->zout_end   = obuf + olen;\n   a->z_expandable = exp;\n\n   return stbi__parse_zlib(a, parse_header);\n}\n\nSTBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size, int *outlen)\n{\n   stbi__zbuf a;\n   char *p = (char *) stbi__malloc(initial_size);\n   if (p == NULL) return NULL;\n   a.zbuffer = (stbi_uc *) buffer;\n   a.zbuffer_end = (stbi_uc *) buffer + len;\n   if (stbi__do_zlib(&a, p, initial_size, 1, 1)) {\n      if (outlen) *outlen = (int) (a.zout - a.zout_start);\n      return a.zout_start;\n   } else {\n      STBI_FREE(a.zout_start);\n      return NULL;\n   }\n}\n\nSTBIDEF char *stbi_zlib_decode_malloc(char const *buffer, int len, int *outlen)\n{\n   return stbi_zlib_decode_malloc_guesssize(buffer, len, 16384, outlen);\n}\n\nSTBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *buffer, int len, int initial_size, int *outlen, int parse_header)\n{\n   stbi__zbuf a;\n   char *p = (char *) stbi__malloc(initial_size);\n   if (p == NULL) return NULL;\n   a.zbuffer = (stbi_uc *) buffer;\n   a.zbuffer_end = (stbi_uc *) buffer + len;\n   if (stbi__do_zlib(&a, p, initial_size, 1, parse_header)) {\n      if (outlen) *outlen = (int) (a.zout - a.zout_start);\n      return a.zout_start;\n   } else {\n      STBI_FREE(a.zout_start);\n      return NULL;\n   }\n}\n\nSTBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, char const *ibuffer, int ilen)\n{\n   stbi__zbuf a;\n   a.zbuffer = (stbi_uc *) ibuffer;\n   a.zbuffer_end = (stbi_uc *) ibuffer + ilen;\n   if (stbi__do_zlib(&a, obuffer, olen, 0, 1))\n      return (int) (a.zout - a.zout_start);\n   else\n      return -1;\n}\n\nSTBIDEF char *stbi_zlib_decode_noheader_malloc(char const *buffer, int len, int *outlen)\n{\n   stbi__zbuf a;\n   char *p = (char *) stbi__malloc(16384);\n   if (p == NULL) return NULL;\n   a.zbuffer = (stbi_uc *) buffer;\n   a.zbuffer_end = (stbi_uc *) buffer+len;\n   if (stbi__do_zlib(&a, p, 16384, 1, 0)) {\n      if (outlen) *outlen = (int) (a.zout - a.zout_start);\n      return a.zout_start;\n   } else {\n      STBI_FREE(a.zout_start);\n      return NULL;\n   }\n}\n\nSTBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const char *ibuffer, int ilen)\n{\n   stbi__zbuf a;\n   a.zbuffer = (stbi_uc *) ibuffer;\n   a.zbuffer_end = (stbi_uc *) ibuffer + ilen;\n   if (stbi__do_zlib(&a, obuffer, olen, 0, 0))\n      return (int) (a.zout - a.zout_start);\n   else\n      return -1;\n}\n#endif\n\n// public domain \"baseline\" PNG decoder   v0.10  Sean Barrett 2006-11-18\n//    simple implementation\n//      - only 8-bit samples\n//      - no CRC checking\n//      - allocates lots of intermediate memory\n//        - avoids problem of streaming data between subsystems\n//        - avoids explicit window management\n//    performance\n//      - uses stb_zlib, a PD zlib implementation with fast huffman decoding\n\n#ifndef STBI_NO_PNG\ntypedef struct\n{\n   stbi__uint32 length;\n   stbi__uint32 type;\n} stbi__pngchunk;\n\nstatic stbi__pngchunk stbi__get_chunk_header(stbi__context *s)\n{\n   stbi__pngchunk c;\n   c.length = stbi__get32be(s);\n   c.type   = stbi__get32be(s);\n   return c;\n}\n\nstatic int stbi__check_png_header(stbi__context *s)\n{\n   static const stbi_uc png_sig[8] = { 137,80,78,71,13,10,26,10 };\n   int i;\n   for (i=0; i < 8; ++i)\n      if (stbi__get8(s) != png_sig[i]) return stbi__err(\"bad png sig\",\"Not a PNG\");\n   return 1;\n}\n\ntypedef struct\n{\n   stbi__context *s;\n   stbi_uc *idata, *expanded, *out;\n   int depth;\n} stbi__png;\n\n\nenum {\n   STBI__F_none=0,\n   STBI__F_sub=1,\n   STBI__F_up=2,\n   STBI__F_avg=3,\n   STBI__F_paeth=4,\n   // synthetic filters used for first scanline to avoid needing a dummy row of 0s\n   STBI__F_avg_first,\n   STBI__F_paeth_first\n};\n\nstatic stbi_uc first_row_filter[5] =\n{\n   STBI__F_none,\n   STBI__F_sub,\n   STBI__F_none,\n   STBI__F_avg_first,\n   STBI__F_paeth_first\n};\n\nstatic int stbi__paeth(int a, int b, int c)\n{\n   int p = a + b - c;\n   int pa = abs(p-a);\n   int pb = abs(p-b);\n   int pc = abs(p-c);\n   if (pa <= pb && pa <= pc) return a;\n   if (pb <= pc) return b;\n   return c;\n}\n\nstatic const stbi_uc stbi__depth_scale_table[9] = { 0, 0xff, 0x55, 0, 0x11, 0,0,0, 0x01 };\n\n// create the png data from post-deflated data\nstatic int stbi__create_png_image_raw(stbi__png *a, stbi_uc *raw, stbi__uint32 raw_len, int out_n, stbi__uint32 x, stbi__uint32 y, int depth, int color)\n{\n   int bytes = (depth == 16? 2 : 1);\n   stbi__context *s = a->s;\n   stbi__uint32 i,j,stride = x*out_n*bytes;\n   stbi__uint32 img_len, img_width_bytes;\n   int k;\n   int img_n = s->img_n; // copy it into a local for later\n\n   int output_bytes = out_n*bytes;\n   int filter_bytes = img_n*bytes;\n   int width = x;\n\n   STBI_ASSERT(out_n == s->img_n || out_n == s->img_n+1);\n   a->out = (stbi_uc *) stbi__malloc_mad3(x, y, output_bytes, 0); // extra bytes to write off the end into\n   if (!a->out) return stbi__err(\"outofmem\", \"Out of memory\");\n\n   if (!stbi__mad3sizes_valid(img_n, x, depth, 7)) return stbi__err(\"too large\", \"Corrupt PNG\");\n   img_width_bytes = (((img_n * x * depth) + 7) >> 3);\n   img_len = (img_width_bytes + 1) * y;\n\n   // we used to check for exact match between raw_len and img_len on non-interlaced PNGs,\n   // but issue #276 reported a PNG in the wild that had extra data at the end (all zeros),\n   // so just check for raw_len < img_len always.\n   if (raw_len < img_len) return stbi__err(\"not enough pixels\",\"Corrupt PNG\");\n\n   for (j=0; j < y; ++j) {\n      stbi_uc *cur = a->out + stride*j;\n      stbi_uc *prior;\n      int filter = *raw++;\n\n      if (filter > 4)\n         return stbi__err(\"invalid filter\",\"Corrupt PNG\");\n\n      if (depth < 8) {\n         if (img_width_bytes > x) return stbi__err(\"invalid width\",\"Corrupt PNG\");\n         cur += x*out_n - img_width_bytes; // store output to the rightmost img_len bytes, so we can decode in place\n         filter_bytes = 1;\n         width = img_width_bytes;\n      }\n      prior = cur - stride; // bugfix: need to compute this after 'cur +=' computation above\n\n      // if first row, use special filter that doesn't sample previous row\n      if (j == 0) filter = first_row_filter[filter];\n\n      // handle first byte explicitly\n      for (k=0; k < filter_bytes; ++k) {\n         switch (filter) {\n            case STBI__F_none       : cur[k] = raw[k]; break;\n            case STBI__F_sub        : cur[k] = raw[k]; break;\n            case STBI__F_up         : cur[k] = STBI__BYTECAST(raw[k] + prior[k]); break;\n            case STBI__F_avg        : cur[k] = STBI__BYTECAST(raw[k] + (prior[k]>>1)); break;\n            case STBI__F_paeth      : cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(0,prior[k],0)); break;\n            case STBI__F_avg_first  : cur[k] = raw[k]; break;\n            case STBI__F_paeth_first: cur[k] = raw[k]; break;\n         }\n      }\n\n      if (depth == 8) {\n         if (img_n != out_n)\n            cur[img_n] = 255; // first pixel\n         raw += img_n;\n         cur += out_n;\n         prior += out_n;\n      } else if (depth == 16) {\n         if (img_n != out_n) {\n            cur[filter_bytes]   = 255; // first pixel top byte\n            cur[filter_bytes+1] = 255; // first pixel bottom byte\n         }\n         raw += filter_bytes;\n         cur += output_bytes;\n         prior += output_bytes;\n      } else {\n         raw += 1;\n         cur += 1;\n         prior += 1;\n      }\n\n      // this is a little gross, so that we don't switch per-pixel or per-component\n      if (depth < 8 || img_n == out_n) {\n         int nk = (width - 1)*filter_bytes;\n         #define STBI__CASE(f) \\\n             case f:     \\\n                for (k=0; k < nk; ++k)\n         switch (filter) {\n            // \"none\" filter turns into a memcpy here; make that explicit.\n            case STBI__F_none:         memcpy(cur, raw, nk); break;\n            STBI__CASE(STBI__F_sub)          { cur[k] = STBI__BYTECAST(raw[k] + cur[k-filter_bytes]); } break;\n            STBI__CASE(STBI__F_up)           { cur[k] = STBI__BYTECAST(raw[k] + prior[k]); } break;\n            STBI__CASE(STBI__F_avg)          { cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k-filter_bytes])>>1)); } break;\n            STBI__CASE(STBI__F_paeth)        { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],prior[k],prior[k-filter_bytes])); } break;\n            STBI__CASE(STBI__F_avg_first)    { cur[k] = STBI__BYTECAST(raw[k] + (cur[k-filter_bytes] >> 1)); } break;\n            STBI__CASE(STBI__F_paeth_first)  { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],0,0)); } break;\n         }\n         #undef STBI__CASE\n         raw += nk;\n      } else {\n         STBI_ASSERT(img_n+1 == out_n);\n         #define STBI__CASE(f) \\\n             case f:     \\\n                for (i=x-1; i >= 1; --i, cur[filter_bytes]=255,raw+=filter_bytes,cur+=output_bytes,prior+=output_bytes) \\\n                   for (k=0; k < filter_bytes; ++k)\n         switch (filter) {\n            STBI__CASE(STBI__F_none)         { cur[k] = raw[k]; } break;\n            STBI__CASE(STBI__F_sub)          { cur[k] = STBI__BYTECAST(raw[k] + cur[k- output_bytes]); } break;\n            STBI__CASE(STBI__F_up)           { cur[k] = STBI__BYTECAST(raw[k] + prior[k]); } break;\n            STBI__CASE(STBI__F_avg)          { cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k- output_bytes])>>1)); } break;\n            STBI__CASE(STBI__F_paeth)        { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k- output_bytes],prior[k],prior[k- output_bytes])); } break;\n            STBI__CASE(STBI__F_avg_first)    { cur[k] = STBI__BYTECAST(raw[k] + (cur[k- output_bytes] >> 1)); } break;\n            STBI__CASE(STBI__F_paeth_first)  { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k- output_bytes],0,0)); } break;\n         }\n         #undef STBI__CASE\n\n         // the loop above sets the high byte of the pixels' alpha, but for\n         // 16 bit png files we also need the low byte set. we'll do that here.\n         if (depth == 16) {\n            cur = a->out + stride*j; // start at the beginning of the row again\n            for (i=0; i < x; ++i,cur+=output_bytes) {\n               cur[filter_bytes+1] = 255;\n            }\n         }\n      }\n   }\n\n   // we make a separate pass to expand bits to pixels; for performance,\n   // this could run two scanlines behind the above code, so it won't\n   // intefere with filtering but will still be in the cache.\n   if (depth < 8) {\n      for (j=0; j < y; ++j) {\n         stbi_uc *cur = a->out + stride*j;\n         stbi_uc *in  = a->out + stride*j + x*out_n - img_width_bytes;\n         // unpack 1/2/4-bit into a 8-bit buffer. allows us to keep the common 8-bit path optimal at minimal cost for 1/2/4-bit\n         // png guarante byte alignment, if width is not multiple of 8/4/2 we'll decode dummy trailing data that will be skipped in the later loop\n         stbi_uc scale = (color == 0) ? stbi__depth_scale_table[depth] : 1; // scale grayscale values to 0..255 range\n\n         // note that the final byte might overshoot and write more data than desired.\n         // we can allocate enough data that this never writes out of memory, but it\n         // could also overwrite the next scanline. can it overwrite non-empty data\n         // on the next scanline? yes, consider 1-pixel-wide scanlines with 1-bit-per-pixel.\n         // so we need to explicitly clamp the final ones\n\n         if (depth == 4) {\n            for (k=x*img_n; k >= 2; k-=2, ++in) {\n               *cur++ = scale * ((*in >> 4)       );\n               *cur++ = scale * ((*in     ) & 0x0f);\n            }\n            if (k > 0) *cur++ = scale * ((*in >> 4)       );\n         } else if (depth == 2) {\n            for (k=x*img_n; k >= 4; k-=4, ++in) {\n               *cur++ = scale * ((*in >> 6)       );\n               *cur++ = scale * ((*in >> 4) & 0x03);\n               *cur++ = scale * ((*in >> 2) & 0x03);\n               *cur++ = scale * ((*in     ) & 0x03);\n            }\n            if (k > 0) *cur++ = scale * ((*in >> 6)       );\n            if (k > 1) *cur++ = scale * ((*in >> 4) & 0x03);\n            if (k > 2) *cur++ = scale * ((*in >> 2) & 0x03);\n         } else if (depth == 1) {\n            for (k=x*img_n; k >= 8; k-=8, ++in) {\n               *cur++ = scale * ((*in >> 7)       );\n               *cur++ = scale * ((*in >> 6) & 0x01);\n               *cur++ = scale * ((*in >> 5) & 0x01);\n               *cur++ = scale * ((*in >> 4) & 0x01);\n               *cur++ = scale * ((*in >> 3) & 0x01);\n               *cur++ = scale * ((*in >> 2) & 0x01);\n               *cur++ = scale * ((*in >> 1) & 0x01);\n               *cur++ = scale * ((*in     ) & 0x01);\n            }\n            if (k > 0) *cur++ = scale * ((*in >> 7)       );\n            if (k > 1) *cur++ = scale * ((*in >> 6) & 0x01);\n            if (k > 2) *cur++ = scale * ((*in >> 5) & 0x01);\n            if (k > 3) *cur++ = scale * ((*in >> 4) & 0x01);\n            if (k > 4) *cur++ = scale * ((*in >> 3) & 0x01);\n            if (k > 5) *cur++ = scale * ((*in >> 2) & 0x01);\n            if (k > 6) *cur++ = scale * ((*in >> 1) & 0x01);\n         }\n         if (img_n != out_n) {\n            int q;\n            // insert alpha = 255\n            cur = a->out + stride*j;\n            if (img_n == 1) {\n               for (q=x-1; q >= 0; --q) {\n                  cur[q*2+1] = 255;\n                  cur[q*2+0] = cur[q];\n               }\n            } else {\n               STBI_ASSERT(img_n == 3);\n               for (q=x-1; q >= 0; --q) {\n                  cur[q*4+3] = 255;\n                  cur[q*4+2] = cur[q*3+2];\n                  cur[q*4+1] = cur[q*3+1];\n                  cur[q*4+0] = cur[q*3+0];\n               }\n            }\n         }\n      }\n   } else if (depth == 16) {\n      // force the image data from big-endian to platform-native.\n      // this is done in a separate pass due to the decoding relying\n      // on the data being untouched, but could probably be done\n      // per-line during decode if care is taken.\n      stbi_uc *cur = a->out;\n      stbi__uint16 *cur16 = (stbi__uint16*)cur;\n\n      for(i=0; i < x*y*out_n; ++i,cur16++,cur+=2) {\n         *cur16 = (cur[0] << 8) | cur[1];\n      }\n   }\n\n   return 1;\n}\n\nstatic int stbi__create_png_image(stbi__png *a, stbi_uc *image_data, stbi__uint32 image_data_len, int out_n, int depth, int color, int interlaced)\n{\n   int bytes = (depth == 16 ? 2 : 1);\n   int out_bytes = out_n * bytes;\n   stbi_uc *final;\n   int p;\n   if (!interlaced)\n      return stbi__create_png_image_raw(a, image_data, image_data_len, out_n, a->s->img_x, a->s->img_y, depth, color);\n\n   // de-interlacing\n   final = (stbi_uc *) stbi__malloc_mad3(a->s->img_x, a->s->img_y, out_bytes, 0);\n   if (!final) return stbi__err(\"outofmem\", \"Out of memory\");\n   for (p=0; p < 7; ++p) {\n      int xorig[] = { 0,4,0,2,0,1,0 };\n      int yorig[] = { 0,0,4,0,2,0,1 };\n      int xspc[]  = { 8,8,4,4,2,2,1 };\n      int yspc[]  = { 8,8,8,4,4,2,2 };\n      int i,j,x,y;\n      // pass1_x[4] = 0, pass1_x[5] = 1, pass1_x[12] = 1\n      x = (a->s->img_x - xorig[p] + xspc[p]-1) / xspc[p];\n      y = (a->s->img_y - yorig[p] + yspc[p]-1) / yspc[p];\n      if (x && y) {\n         stbi__uint32 img_len = ((((a->s->img_n * x * depth) + 7) >> 3) + 1) * y;\n         if (!stbi__create_png_image_raw(a, image_data, image_data_len, out_n, x, y, depth, color)) {\n            STBI_FREE(final);\n            return 0;\n         }\n         for (j=0; j < y; ++j) {\n            for (i=0; i < x; ++i) {\n               int out_y = j*yspc[p]+yorig[p];\n               int out_x = i*xspc[p]+xorig[p];\n               memcpy(final + out_y*a->s->img_x*out_bytes + out_x*out_bytes,\n                      a->out + (j*x+i)*out_bytes, out_bytes);\n            }\n         }\n         STBI_FREE(a->out);\n         image_data += img_len;\n         image_data_len -= img_len;\n      }\n   }\n   a->out = final;\n\n   return 1;\n}\n\nstatic int stbi__compute_transparency(stbi__png *z, stbi_uc tc[3], int out_n)\n{\n   stbi__context *s = z->s;\n   stbi__uint32 i, pixel_count = s->img_x * s->img_y;\n   stbi_uc *p = z->out;\n\n   // compute color-based transparency, assuming we've\n   // already got 255 as the alpha value in the output\n   STBI_ASSERT(out_n == 2 || out_n == 4);\n\n   if (out_n == 2) {\n      for (i=0; i < pixel_count; ++i) {\n         p[1] = (p[0] == tc[0] ? 0 : 255);\n         p += 2;\n      }\n   } else {\n      for (i=0; i < pixel_count; ++i) {\n         if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2])\n            p[3] = 0;\n         p += 4;\n      }\n   }\n   return 1;\n}\n\nstatic int stbi__compute_transparency16(stbi__png *z, stbi__uint16 tc[3], int out_n)\n{\n   stbi__context *s = z->s;\n   stbi__uint32 i, pixel_count = s->img_x * s->img_y;\n   stbi__uint16 *p = (stbi__uint16*) z->out;\n\n   // compute color-based transparency, assuming we've\n   // already got 65535 as the alpha value in the output\n   STBI_ASSERT(out_n == 2 || out_n == 4);\n\n   if (out_n == 2) {\n      for (i = 0; i < pixel_count; ++i) {\n         p[1] = (p[0] == tc[0] ? 0 : 65535);\n         p += 2;\n      }\n   } else {\n      for (i = 0; i < pixel_count; ++i) {\n         if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2])\n            p[3] = 0;\n         p += 4;\n      }\n   }\n   return 1;\n}\n\nstatic int stbi__expand_png_palette(stbi__png *a, stbi_uc *palette, int len, int pal_img_n)\n{\n   stbi__uint32 i, pixel_count = a->s->img_x * a->s->img_y;\n   stbi_uc *p, *temp_out, *orig = a->out;\n\n   p = (stbi_uc *) stbi__malloc_mad2(pixel_count, pal_img_n, 0);\n   if (p == NULL) return stbi__err(\"outofmem\", \"Out of memory\");\n\n   // between here and free(out) below, exitting would leak\n   temp_out = p;\n\n   if (pal_img_n == 3) {\n      for (i=0; i < pixel_count; ++i) {\n         int n = orig[i]*4;\n         p[0] = palette[n  ];\n         p[1] = palette[n+1];\n         p[2] = palette[n+2];\n         p += 3;\n      }\n   } else {\n      for (i=0; i < pixel_count; ++i) {\n         int n = orig[i]*4;\n         p[0] = palette[n  ];\n         p[1] = palette[n+1];\n         p[2] = palette[n+2];\n         p[3] = palette[n+3];\n         p += 4;\n      }\n   }\n   STBI_FREE(a->out);\n   a->out = temp_out;\n\n   STBI_NOTUSED(len);\n\n   return 1;\n}\n\nstatic int stbi__unpremultiply_on_load_global = 0;\nstatic int stbi__de_iphone_flag_global = 0;\n\nSTBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply)\n{\n   stbi__unpremultiply_on_load_global = flag_true_if_should_unpremultiply;\n}\n\nSTBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert)\n{\n   stbi__de_iphone_flag_global = flag_true_if_should_convert;\n}\n\n#ifndef STBI_THREAD_LOCAL\n#define stbi__unpremultiply_on_load  stbi__unpremultiply_on_load_global\n#define stbi__de_iphone_flag  stbi__de_iphone_flag_global\n#else\nstatic STBI_THREAD_LOCAL int stbi__unpremultiply_on_load_local, stbi__unpremultiply_on_load_set;\nstatic STBI_THREAD_LOCAL int stbi__de_iphone_flag_local, stbi__de_iphone_flag_set;\n\nSTBIDEF void stbi__unpremultiply_on_load_thread(int flag_true_if_should_unpremultiply)\n{\n   stbi__unpremultiply_on_load_local = flag_true_if_should_unpremultiply;\n   stbi__unpremultiply_on_load_set = 1;\n}\n\nSTBIDEF void stbi_convert_iphone_png_to_rgb_thread(int flag_true_if_should_convert)\n{\n   stbi__de_iphone_flag_local = flag_true_if_should_convert;\n   stbi__de_iphone_flag_set = 1;\n}\n\n#define stbi__unpremultiply_on_load  (stbi__unpremultiply_on_load_set           \\\n                                       ? stbi__unpremultiply_on_load_local      \\\n                                       : stbi__unpremultiply_on_load_global)\n#define stbi__de_iphone_flag  (stbi__de_iphone_flag_set                         \\\n                                ? stbi__de_iphone_flag_local                    \\\n                                : stbi__de_iphone_flag_global)\n#endif // STBI_THREAD_LOCAL\n\nstatic void stbi__de_iphone(stbi__png *z)\n{\n   stbi__context *s = z->s;\n   stbi__uint32 i, pixel_count = s->img_x * s->img_y;\n   stbi_uc *p = z->out;\n\n   if (s->img_out_n == 3) {  // convert bgr to rgb\n      for (i=0; i < pixel_count; ++i) {\n         stbi_uc t = p[0];\n         p[0] = p[2];\n         p[2] = t;\n         p += 3;\n      }\n   } else {\n      STBI_ASSERT(s->img_out_n == 4);\n      if (stbi__unpremultiply_on_load) {\n         // convert bgr to rgb and unpremultiply\n         for (i=0; i < pixel_count; ++i) {\n            stbi_uc a = p[3];\n            stbi_uc t = p[0];\n            if (a) {\n               stbi_uc half = a / 2;\n               p[0] = (p[2] * 255 + half) / a;\n               p[1] = (p[1] * 255 + half) / a;\n               p[2] = ( t   * 255 + half) / a;\n            } else {\n               p[0] = p[2];\n               p[2] = t;\n            }\n            p += 4;\n         }\n      } else {\n         // convert bgr to rgb\n         for (i=0; i < pixel_count; ++i) {\n            stbi_uc t = p[0];\n            p[0] = p[2];\n            p[2] = t;\n            p += 4;\n         }\n      }\n   }\n}\n\n#define STBI__PNG_TYPE(a,b,c,d)  (((unsigned) (a) << 24) + ((unsigned) (b) << 16) + ((unsigned) (c) << 8) + (unsigned) (d))\n\nstatic int stbi__parse_png_file(stbi__png *z, int scan, int req_comp)\n{\n   stbi_uc palette[1024], pal_img_n=0;\n   stbi_uc has_trans=0, tc[3]={0};\n   stbi__uint16 tc16[3];\n   stbi__uint32 ioff=0, idata_limit=0, i, pal_len=0;\n   int first=1,k,interlace=0, color=0, is_iphone=0;\n   stbi__context *s = z->s;\n\n   z->expanded = NULL;\n   z->idata = NULL;\n   z->out = NULL;\n\n   if (!stbi__check_png_header(s)) return 0;\n\n   if (scan == STBI__SCAN_type) return 1;\n\n   for (;;) {\n      stbi__pngchunk c = stbi__get_chunk_header(s);\n      switch (c.type) {\n         case STBI__PNG_TYPE('C','g','B','I'):\n            is_iphone = 1;\n            stbi__skip(s, c.length);\n            break;\n         case STBI__PNG_TYPE('I','H','D','R'): {\n            int comp,filter;\n            if (!first) return stbi__err(\"multiple IHDR\",\"Corrupt PNG\");\n            first = 0;\n            if (c.length != 13) return stbi__err(\"bad IHDR len\",\"Corrupt PNG\");\n            s->img_x = stbi__get32be(s);\n            s->img_y = stbi__get32be(s);\n            if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__err(\"too large\",\"Very large image (corrupt?)\");\n            if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__err(\"too large\",\"Very large image (corrupt?)\");\n            z->depth = stbi__get8(s);  if (z->depth != 1 && z->depth != 2 && z->depth != 4 && z->depth != 8 && z->depth != 16)  return stbi__err(\"1/2/4/8/16-bit only\",\"PNG not supported: 1/2/4/8/16-bit only\");\n            color = stbi__get8(s);  if (color > 6)         return stbi__err(\"bad ctype\",\"Corrupt PNG\");\n            if (color == 3 && z->depth == 16)                  return stbi__err(\"bad ctype\",\"Corrupt PNG\");\n            if (color == 3) pal_img_n = 3; else if (color & 1) return stbi__err(\"bad ctype\",\"Corrupt PNG\");\n            comp  = stbi__get8(s);  if (comp) return stbi__err(\"bad comp method\",\"Corrupt PNG\");\n            filter= stbi__get8(s);  if (filter) return stbi__err(\"bad filter method\",\"Corrupt PNG\");\n            interlace = stbi__get8(s); if (interlace>1) return stbi__err(\"bad interlace method\",\"Corrupt PNG\");\n            if (!s->img_x || !s->img_y) return stbi__err(\"0-pixel image\",\"Corrupt PNG\");\n            if (!pal_img_n) {\n               s->img_n = (color & 2 ? 3 : 1) + (color & 4 ? 1 : 0);\n               if ((1 << 30) / s->img_x / s->img_n < s->img_y) return stbi__err(\"too large\", \"Image too large to decode\");\n               if (scan == STBI__SCAN_header) return 1;\n            } else {\n               // if paletted, then pal_n is our final components, and\n               // img_n is # components to decompress/filter.\n               s->img_n = 1;\n               if ((1 << 30) / s->img_x / 4 < s->img_y) return stbi__err(\"too large\",\"Corrupt PNG\");\n               // if SCAN_header, have to scan to see if we have a tRNS\n            }\n            break;\n         }\n\n         case STBI__PNG_TYPE('P','L','T','E'):  {\n            if (first) return stbi__err(\"first not IHDR\", \"Corrupt PNG\");\n            if (c.length > 256*3) return stbi__err(\"invalid PLTE\",\"Corrupt PNG\");\n            pal_len = c.length / 3;\n            if (pal_len * 3 != c.length) return stbi__err(\"invalid PLTE\",\"Corrupt PNG\");\n            for (i=0; i < pal_len; ++i) {\n               palette[i*4+0] = stbi__get8(s);\n               palette[i*4+1] = stbi__get8(s);\n               palette[i*4+2] = stbi__get8(s);\n               palette[i*4+3] = 255;\n            }\n            break;\n         }\n\n         case STBI__PNG_TYPE('t','R','N','S'): {\n            if (first) return stbi__err(\"first not IHDR\", \"Corrupt PNG\");\n            if (z->idata) return stbi__err(\"tRNS after IDAT\",\"Corrupt PNG\");\n            if (pal_img_n) {\n               if (scan == STBI__SCAN_header) { s->img_n = 4; return 1; }\n               if (pal_len == 0) return stbi__err(\"tRNS before PLTE\",\"Corrupt PNG\");\n               if (c.length > pal_len) return stbi__err(\"bad tRNS len\",\"Corrupt PNG\");\n               pal_img_n = 4;\n               for (i=0; i < c.length; ++i)\n                  palette[i*4+3] = stbi__get8(s);\n            } else {\n               if (!(s->img_n & 1)) return stbi__err(\"tRNS with alpha\",\"Corrupt PNG\");\n               if (c.length != (stbi__uint32) s->img_n*2) return stbi__err(\"bad tRNS len\",\"Corrupt PNG\");\n               has_trans = 1;\n               if (z->depth == 16) {\n                  for (k = 0; k < s->img_n; ++k) tc16[k] = (stbi__uint16)stbi__get16be(s); // copy the values as-is\n               } else {\n                  for (k = 0; k < s->img_n; ++k) tc[k] = (stbi_uc)(stbi__get16be(s) & 255) * stbi__depth_scale_table[z->depth]; // non 8-bit images will be larger\n               }\n            }\n            break;\n         }\n\n         case STBI__PNG_TYPE('I','D','A','T'): {\n            if (first) return stbi__err(\"first not IHDR\", \"Corrupt PNG\");\n            if (pal_img_n && !pal_len) return stbi__err(\"no PLTE\",\"Corrupt PNG\");\n            if (scan == STBI__SCAN_header) { s->img_n = pal_img_n; return 1; }\n            if ((int)(ioff + c.length) < (int)ioff) return 0;\n            if (ioff + c.length > idata_limit) {\n               stbi__uint32 idata_limit_old = idata_limit;\n               stbi_uc *p;\n               if (idata_limit == 0) idata_limit = c.length > 4096 ? c.length : 4096;\n               while (ioff + c.length > idata_limit)\n                  idata_limit *= 2;\n               STBI_NOTUSED(idata_limit_old);\n               p = (stbi_uc *) STBI_REALLOC_SIZED(z->idata, idata_limit_old, idata_limit); if (p == NULL) return stbi__err(\"outofmem\", \"Out of memory\");\n               z->idata = p;\n            }\n            if (!stbi__getn(s, z->idata+ioff,c.length)) return stbi__err(\"outofdata\",\"Corrupt PNG\");\n            ioff += c.length;\n            break;\n         }\n\n         case STBI__PNG_TYPE('I','E','N','D'): {\n            stbi__uint32 raw_len, bpl;\n            if (first) return stbi__err(\"first not IHDR\", \"Corrupt PNG\");\n            if (scan != STBI__SCAN_load) return 1;\n            if (z->idata == NULL) return stbi__err(\"no IDAT\",\"Corrupt PNG\");\n            // initial guess for decoded data size to avoid unnecessary reallocs\n            bpl = (s->img_x * z->depth + 7) / 8; // bytes per line, per component\n            raw_len = bpl * s->img_y * s->img_n /* pixels */ + s->img_y /* filter mode per row */;\n            z->expanded = (stbi_uc *) stbi_zlib_decode_malloc_guesssize_headerflag((char *) z->idata, ioff, raw_len, (int *) &raw_len, !is_iphone);\n            if (z->expanded == NULL) return 0; // zlib should set error\n            STBI_FREE(z->idata); z->idata = NULL;\n            if ((req_comp == s->img_n+1 && req_comp != 3 && !pal_img_n) || has_trans)\n               s->img_out_n = s->img_n+1;\n            else\n               s->img_out_n = s->img_n;\n            if (!stbi__create_png_image(z, z->expanded, raw_len, s->img_out_n, z->depth, color, interlace)) return 0;\n            if (has_trans) {\n               if (z->depth == 16) {\n                  if (!stbi__compute_transparency16(z, tc16, s->img_out_n)) return 0;\n               } else {\n                  if (!stbi__compute_transparency(z, tc, s->img_out_n)) return 0;\n               }\n            }\n            if (is_iphone && stbi__de_iphone_flag && s->img_out_n > 2)\n               stbi__de_iphone(z);\n            if (pal_img_n) {\n               // pal_img_n == 3 or 4\n               s->img_n = pal_img_n; // record the actual colors we had\n               s->img_out_n = pal_img_n;\n               if (req_comp >= 3) s->img_out_n = req_comp;\n               if (!stbi__expand_png_palette(z, palette, pal_len, s->img_out_n))\n                  return 0;\n            } else if (has_trans) {\n               // non-paletted image with tRNS -> source image has (constant) alpha\n               ++s->img_n;\n            }\n            STBI_FREE(z->expanded); z->expanded = NULL;\n            // end of PNG chunk, read and skip CRC\n            stbi__get32be(s);\n            return 1;\n         }\n\n         default:\n            // if critical, fail\n            if (first) return stbi__err(\"first not IHDR\", \"Corrupt PNG\");\n            if ((c.type & (1 << 29)) == 0) {\n               #ifndef STBI_NO_FAILURE_STRINGS\n               // not threadsafe\n               static char invalid_chunk[] = \"XXXX PNG chunk not known\";\n               invalid_chunk[0] = STBI__BYTECAST(c.type >> 24);\n               invalid_chunk[1] = STBI__BYTECAST(c.type >> 16);\n               invalid_chunk[2] = STBI__BYTECAST(c.type >>  8);\n               invalid_chunk[3] = STBI__BYTECAST(c.type >>  0);\n               #endif\n               return stbi__err(invalid_chunk, \"PNG not supported: unknown PNG chunk type\");\n            }\n            stbi__skip(s, c.length);\n            break;\n      }\n      // end of PNG chunk, read and skip CRC\n      stbi__get32be(s);\n   }\n}\n\nstatic void *stbi__do_png(stbi__png *p, int *x, int *y, int *n, int req_comp, stbi__result_info *ri)\n{\n   void *result=NULL;\n   if (req_comp < 0 || req_comp > 4) return stbi__errpuc(\"bad req_comp\", \"Internal error\");\n   if (stbi__parse_png_file(p, STBI__SCAN_load, req_comp)) {\n      if (p->depth <= 8)\n         ri->bits_per_channel = 8;\n      else if (p->depth == 16)\n         ri->bits_per_channel = 16;\n      else\n         return stbi__errpuc(\"bad bits_per_channel\", \"PNG not supported: unsupported color depth\");\n      result = p->out;\n      p->out = NULL;\n      if (req_comp && req_comp != p->s->img_out_n) {\n         if (ri->bits_per_channel == 8)\n            result = stbi__convert_format((unsigned char *) result, p->s->img_out_n, req_comp, p->s->img_x, p->s->img_y);\n         else\n            result = stbi__convert_format16((stbi__uint16 *) result, p->s->img_out_n, req_comp, p->s->img_x, p->s->img_y);\n         p->s->img_out_n = req_comp;\n         if (result == NULL) return result;\n      }\n      *x = p->s->img_x;\n      *y = p->s->img_y;\n      if (n) *n = p->s->img_n;\n   }\n   STBI_FREE(p->out);      p->out      = NULL;\n   STBI_FREE(p->expanded); p->expanded = NULL;\n   STBI_FREE(p->idata);    p->idata    = NULL;\n\n   return result;\n}\n\nstatic void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri)\n{\n   stbi__png p;\n   p.s = s;\n   return stbi__do_png(&p, x,y,comp,req_comp, ri);\n}\n\nstatic int stbi__png_test(stbi__context *s)\n{\n   int r;\n   r = stbi__check_png_header(s);\n   stbi__rewind(s);\n   return r;\n}\n\nstatic int stbi__png_info_raw(stbi__png *p, int *x, int *y, int *comp)\n{\n   if (!stbi__parse_png_file(p, STBI__SCAN_header, 0)) {\n      stbi__rewind( p->s );\n      return 0;\n   }\n   if (x) *x = p->s->img_x;\n   if (y) *y = p->s->img_y;\n   if (comp) *comp = p->s->img_n;\n   return 1;\n}\n\nstatic int stbi__png_info(stbi__context *s, int *x, int *y, int *comp)\n{\n   stbi__png p;\n   p.s = s;\n   return stbi__png_info_raw(&p, x, y, comp);\n}\n\nstatic int stbi__png_is16(stbi__context *s)\n{\n   stbi__png p;\n   p.s = s;\n   if (!stbi__png_info_raw(&p, NULL, NULL, NULL))\n\t   return 0;\n   if (p.depth != 16) {\n      stbi__rewind(p.s);\n      return 0;\n   }\n   return 1;\n}\n#endif\n\n// Microsoft/Windows BMP image\n\n#ifndef STBI_NO_BMP\nstatic int stbi__bmp_test_raw(stbi__context *s)\n{\n   int r;\n   int sz;\n   if (stbi__get8(s) != 'B') return 0;\n   if (stbi__get8(s) != 'M') return 0;\n   stbi__get32le(s); // discard filesize\n   stbi__get16le(s); // discard reserved\n   stbi__get16le(s); // discard reserved\n   stbi__get32le(s); // discard data offset\n   sz = stbi__get32le(s);\n   r = (sz == 12 || sz == 40 || sz == 56 || sz == 108 || sz == 124);\n   return r;\n}\n\nstatic int stbi__bmp_test(stbi__context *s)\n{\n   int r = stbi__bmp_test_raw(s);\n   stbi__rewind(s);\n   return r;\n}\n\n\n// returns 0..31 for the highest set bit\nstatic int stbi__high_bit(unsigned int z)\n{\n   int n=0;\n   if (z == 0) return -1;\n   if (z >= 0x10000) { n += 16; z >>= 16; }\n   if (z >= 0x00100) { n +=  8; z >>=  8; }\n   if (z >= 0x00010) { n +=  4; z >>=  4; }\n   if (z >= 0x00004) { n +=  2; z >>=  2; }\n   if (z >= 0x00002) { n +=  1;/* >>=  1;*/ }\n   return n;\n}\n\nstatic int stbi__bitcount(unsigned int a)\n{\n   a = (a & 0x55555555) + ((a >>  1) & 0x55555555); // max 2\n   a = (a & 0x33333333) + ((a >>  2) & 0x33333333); // max 4\n   a = (a + (a >> 4)) & 0x0f0f0f0f; // max 8 per 4, now 8 bits\n   a = (a + (a >> 8)); // max 16 per 8 bits\n   a = (a + (a >> 16)); // max 32 per 8 bits\n   return a & 0xff;\n}\n\n// extract an arbitrarily-aligned N-bit value (N=bits)\n// from v, and then make it 8-bits long and fractionally\n// extend it to full full range.\nstatic int stbi__shiftsigned(unsigned int v, int shift, int bits)\n{\n   static unsigned int mul_table[9] = {\n      0,\n      0xff/*0b11111111*/, 0x55/*0b01010101*/, 0x49/*0b01001001*/, 0x11/*0b00010001*/,\n      0x21/*0b00100001*/, 0x41/*0b01000001*/, 0x81/*0b10000001*/, 0x01/*0b00000001*/,\n   };\n   static unsigned int shift_table[9] = {\n      0, 0,0,1,0,2,4,6,0,\n   };\n   if (shift < 0)\n      v <<= -shift;\n   else\n      v >>= shift;\n   STBI_ASSERT(v < 256);\n   v >>= (8-bits);\n   STBI_ASSERT(bits >= 0 && bits <= 8);\n   return (int) ((unsigned) v * mul_table[bits]) >> shift_table[bits];\n}\n\ntypedef struct\n{\n   int bpp, offset, hsz;\n   unsigned int mr,mg,mb,ma, all_a;\n   int extra_read;\n} stbi__bmp_data;\n\nstatic int stbi__bmp_set_mask_defaults(stbi__bmp_data *info, int compress)\n{\n   // BI_BITFIELDS specifies masks explicitly, don't override\n   if (compress == 3)\n      return 1;\n\n   if (compress == 0) {\n      if (info->bpp == 16) {\n         info->mr = 31u << 10;\n         info->mg = 31u <<  5;\n         info->mb = 31u <<  0;\n      } else if (info->bpp == 32) {\n         info->mr = 0xffu << 16;\n         info->mg = 0xffu <<  8;\n         info->mb = 0xffu <<  0;\n         info->ma = 0xffu << 24;\n         info->all_a = 0; // if all_a is 0 at end, then we loaded alpha channel but it was all 0\n      } else {\n         // otherwise, use defaults, which is all-0\n         info->mr = info->mg = info->mb = info->ma = 0;\n      }\n      return 1;\n   }\n   return 0; // error\n}\n\nstatic void *stbi__bmp_parse_header(stbi__context *s, stbi__bmp_data *info)\n{\n   int hsz;\n   if (stbi__get8(s) != 'B' || stbi__get8(s) != 'M') return stbi__errpuc(\"not BMP\", \"Corrupt BMP\");\n   stbi__get32le(s); // discard filesize\n   stbi__get16le(s); // discard reserved\n   stbi__get16le(s); // discard reserved\n   info->offset = stbi__get32le(s);\n   info->hsz = hsz = stbi__get32le(s);\n   info->mr = info->mg = info->mb = info->ma = 0;\n   info->extra_read = 14;\n\n   if (info->offset < 0) return stbi__errpuc(\"bad BMP\", \"bad BMP\");\n\n   if (hsz != 12 && hsz != 40 && hsz != 56 && hsz != 108 && hsz != 124) return stbi__errpuc(\"unknown BMP\", \"BMP type not supported: unknown\");\n   if (hsz == 12) {\n      s->img_x = stbi__get16le(s);\n      s->img_y = stbi__get16le(s);\n   } else {\n      s->img_x = stbi__get32le(s);\n      s->img_y = stbi__get32le(s);\n   }\n   if (stbi__get16le(s) != 1) return stbi__errpuc(\"bad BMP\", \"bad BMP\");\n   info->bpp = stbi__get16le(s);\n   if (hsz != 12) {\n      int compress = stbi__get32le(s);\n      if (compress == 1 || compress == 2) return stbi__errpuc(\"BMP RLE\", \"BMP type not supported: RLE\");\n      if (compress >= 4) return stbi__errpuc(\"BMP JPEG/PNG\", \"BMP type not supported: unsupported compression\"); // this includes PNG/JPEG modes\n      if (compress == 3 && info->bpp != 16 && info->bpp != 32) return stbi__errpuc(\"bad BMP\", \"bad BMP\"); // bitfields requires 16 or 32 bits/pixel\n      stbi__get32le(s); // discard sizeof\n      stbi__get32le(s); // discard hres\n      stbi__get32le(s); // discard vres\n      stbi__get32le(s); // discard colorsused\n      stbi__get32le(s); // discard max important\n      if (hsz == 40 || hsz == 56) {\n         if (hsz == 56) {\n            stbi__get32le(s);\n            stbi__get32le(s);\n            stbi__get32le(s);\n            stbi__get32le(s);\n         }\n         if (info->bpp == 16 || info->bpp == 32) {\n            if (compress == 0) {\n               stbi__bmp_set_mask_defaults(info, compress);\n            } else if (compress == 3) {\n               info->mr = stbi__get32le(s);\n               info->mg = stbi__get32le(s);\n               info->mb = stbi__get32le(s);\n               info->extra_read += 12;\n               // not documented, but generated by photoshop and handled by mspaint\n               if (info->mr == info->mg && info->mg == info->mb) {\n                  // ?!?!?\n                  return stbi__errpuc(\"bad BMP\", \"bad BMP\");\n               }\n            } else\n               return stbi__errpuc(\"bad BMP\", \"bad BMP\");\n         }\n      } else {\n         // V4/V5 header\n         int i;\n         if (hsz != 108 && hsz != 124)\n            return stbi__errpuc(\"bad BMP\", \"bad BMP\");\n         info->mr = stbi__get32le(s);\n         info->mg = stbi__get32le(s);\n         info->mb = stbi__get32le(s);\n         info->ma = stbi__get32le(s);\n         if (compress != 3) // override mr/mg/mb unless in BI_BITFIELDS mode, as per docs\n            stbi__bmp_set_mask_defaults(info, compress);\n         stbi__get32le(s); // discard color space\n         for (i=0; i < 12; ++i)\n            stbi__get32le(s); // discard color space parameters\n         if (hsz == 124) {\n            stbi__get32le(s); // discard rendering intent\n            stbi__get32le(s); // discard offset of profile data\n            stbi__get32le(s); // discard size of profile data\n            stbi__get32le(s); // discard reserved\n         }\n      }\n   }\n   return (void *) 1;\n}\n\n\nstatic void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri)\n{\n   stbi_uc *out;\n   unsigned int mr=0,mg=0,mb=0,ma=0, all_a;\n   stbi_uc pal[256][4];\n   int psize=0,i,j,width;\n   int flip_vertically, pad, target;\n   stbi__bmp_data info;\n   STBI_NOTUSED(ri);\n\n   info.all_a = 255;\n   if (stbi__bmp_parse_header(s, &info) == NULL)\n      return NULL; // error code already set\n\n   flip_vertically = ((int) s->img_y) > 0;\n   s->img_y = abs((int) s->img_y);\n\n   if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__errpuc(\"too large\",\"Very large image (corrupt?)\");\n   if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__errpuc(\"too large\",\"Very large image (corrupt?)\");\n\n   mr = info.mr;\n   mg = info.mg;\n   mb = info.mb;\n   ma = info.ma;\n   all_a = info.all_a;\n\n   if (info.hsz == 12) {\n      if (info.bpp < 24)\n         psize = (info.offset - info.extra_read - 24) / 3;\n   } else {\n      if (info.bpp < 16)\n         psize = (info.offset - info.extra_read - info.hsz) >> 2;\n   }\n   if (psize == 0) {\n      if (info.offset != s->callback_already_read + (s->img_buffer - s->img_buffer_original)) {\n        return stbi__errpuc(\"bad offset\", \"Corrupt BMP\");\n      }\n   }\n\n   if (info.bpp == 24 && ma == 0xff000000)\n      s->img_n = 3;\n   else\n      s->img_n = ma ? 4 : 3;\n   if (req_comp && req_comp >= 3) // we can directly decode 3 or 4\n      target = req_comp;\n   else\n      target = s->img_n; // if they want monochrome, we'll post-convert\n\n   // sanity-check size\n   if (!stbi__mad3sizes_valid(target, s->img_x, s->img_y, 0))\n      return stbi__errpuc(\"too large\", \"Corrupt BMP\");\n\n   out = (stbi_uc *) stbi__malloc_mad3(target, s->img_x, s->img_y, 0);\n   if (!out) return stbi__errpuc(\"outofmem\", \"Out of memory\");\n   if (info.bpp < 16) {\n      int z=0;\n      if (psize == 0 || psize > 256) { STBI_FREE(out); return stbi__errpuc(\"invalid\", \"Corrupt BMP\"); }\n      for (i=0; i < psize; ++i) {\n         pal[i][2] = stbi__get8(s);\n         pal[i][1] = stbi__get8(s);\n         pal[i][0] = stbi__get8(s);\n         if (info.hsz != 12) stbi__get8(s);\n         pal[i][3] = 255;\n      }\n      stbi__skip(s, info.offset - info.extra_read - info.hsz - psize * (info.hsz == 12 ? 3 : 4));\n      if (info.bpp == 1) width = (s->img_x + 7) >> 3;\n      else if (info.bpp == 4) width = (s->img_x + 1) >> 1;\n      else if (info.bpp == 8) width = s->img_x;\n      else { STBI_FREE(out); return stbi__errpuc(\"bad bpp\", \"Corrupt BMP\"); }\n      pad = (-width)&3;\n      if (info.bpp == 1) {\n         for (j=0; j < (int) s->img_y; ++j) {\n            int bit_offset = 7, v = stbi__get8(s);\n            for (i=0; i < (int) s->img_x; ++i) {\n               int color = (v>>bit_offset)&0x1;\n               out[z++] = pal[color][0];\n               out[z++] = pal[color][1];\n               out[z++] = pal[color][2];\n               if (target == 4) out[z++] = 255;\n               if (i+1 == (int) s->img_x) break;\n               if((--bit_offset) < 0) {\n                  bit_offset = 7;\n                  v = stbi__get8(s);\n               }\n            }\n            stbi__skip(s, pad);\n         }\n      } else {\n         for (j=0; j < (int) s->img_y; ++j) {\n            for (i=0; i < (int) s->img_x; i += 2) {\n               int v=stbi__get8(s),v2=0;\n               if (info.bpp == 4) {\n                  v2 = v & 15;\n                  v >>= 4;\n               }\n               out[z++] = pal[v][0];\n               out[z++] = pal[v][1];\n               out[z++] = pal[v][2];\n               if (target == 4) out[z++] = 255;\n               if (i+1 == (int) s->img_x) break;\n               v = (info.bpp == 8) ? stbi__get8(s) : v2;\n               out[z++] = pal[v][0];\n               out[z++] = pal[v][1];\n               out[z++] = pal[v][2];\n               if (target == 4) out[z++] = 255;\n            }\n            stbi__skip(s, pad);\n         }\n      }\n   } else {\n      int rshift=0,gshift=0,bshift=0,ashift=0,rcount=0,gcount=0,bcount=0,acount=0;\n      int z = 0;\n      int easy=0;\n      stbi__skip(s, info.offset - info.extra_read - info.hsz);\n      if (info.bpp == 24) width = 3 * s->img_x;\n      else if (info.bpp == 16) width = 2*s->img_x;\n      else /* bpp = 32 and pad = 0 */ width=0;\n      pad = (-width) & 3;\n      if (info.bpp == 24) {\n         easy = 1;\n      } else if (info.bpp == 32) {\n         if (mb == 0xff && mg == 0xff00 && mr == 0x00ff0000 && ma == 0xff000000)\n            easy = 2;\n      }\n      if (!easy) {\n         if (!mr || !mg || !mb) { STBI_FREE(out); return stbi__errpuc(\"bad masks\", \"Corrupt BMP\"); }\n         // right shift amt to put high bit in position #7\n         rshift = stbi__high_bit(mr)-7; rcount = stbi__bitcount(mr);\n         gshift = stbi__high_bit(mg)-7; gcount = stbi__bitcount(mg);\n         bshift = stbi__high_bit(mb)-7; bcount = stbi__bitcount(mb);\n         ashift = stbi__high_bit(ma)-7; acount = stbi__bitcount(ma);\n         if (rcount > 8 || gcount > 8 || bcount > 8 || acount > 8) { STBI_FREE(out); return stbi__errpuc(\"bad masks\", \"Corrupt BMP\"); }\n      }\n      for (j=0; j < (int) s->img_y; ++j) {\n         if (easy) {\n            for (i=0; i < (int) s->img_x; ++i) {\n               unsigned char a;\n               out[z+2] = stbi__get8(s);\n               out[z+1] = stbi__get8(s);\n               out[z+0] = stbi__get8(s);\n               z += 3;\n               a = (easy == 2 ? stbi__get8(s) : 255);\n               all_a |= a;\n               if (target == 4) out[z++] = a;\n            }\n         } else {\n            int bpp = info.bpp;\n            for (i=0; i < (int) s->img_x; ++i) {\n               stbi__uint32 v = (bpp == 16 ? (stbi__uint32) stbi__get16le(s) : stbi__get32le(s));\n               unsigned int a;\n               out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mr, rshift, rcount));\n               out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mg, gshift, gcount));\n               out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mb, bshift, bcount));\n               a = (ma ? stbi__shiftsigned(v & ma, ashift, acount) : 255);\n               all_a |= a;\n               if (target == 4) out[z++] = STBI__BYTECAST(a);\n            }\n         }\n         stbi__skip(s, pad);\n      }\n   }\n\n   // if alpha channel is all 0s, replace with all 255s\n   if (target == 4 && all_a == 0)\n      for (i=4*s->img_x*s->img_y-1; i >= 0; i -= 4)\n         out[i] = 255;\n\n   if (flip_vertically) {\n      stbi_uc t;\n      for (j=0; j < (int) s->img_y>>1; ++j) {\n         stbi_uc *p1 = out +      j     *s->img_x*target;\n         stbi_uc *p2 = out + (s->img_y-1-j)*s->img_x*target;\n         for (i=0; i < (int) s->img_x*target; ++i) {\n            t = p1[i]; p1[i] = p2[i]; p2[i] = t;\n         }\n      }\n   }\n\n   if (req_comp && req_comp != target) {\n      out = stbi__convert_format(out, target, req_comp, s->img_x, s->img_y);\n      if (out == NULL) return out; // stbi__convert_format frees input on failure\n   }\n\n   *x = s->img_x;\n   *y = s->img_y;\n   if (comp) *comp = s->img_n;\n   return out;\n}\n#endif\n\n// Targa Truevision - TGA\n// by Jonathan Dummer\n#ifndef STBI_NO_TGA\n// returns STBI_rgb or whatever, 0 on error\nstatic int stbi__tga_get_comp(int bits_per_pixel, int is_grey, int* is_rgb16)\n{\n   // only RGB or RGBA (incl. 16bit) or grey allowed\n   if (is_rgb16) *is_rgb16 = 0;\n   switch(bits_per_pixel) {\n      case 8:  return STBI_grey;\n      case 16: if(is_grey) return STBI_grey_alpha;\n               // fallthrough\n      case 15: if(is_rgb16) *is_rgb16 = 1;\n               return STBI_rgb;\n      case 24: // fallthrough\n      case 32: return bits_per_pixel/8;\n      default: return 0;\n   }\n}\n\nstatic int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp)\n{\n    int tga_w, tga_h, tga_comp, tga_image_type, tga_bits_per_pixel, tga_colormap_bpp;\n    int sz, tga_colormap_type;\n    stbi__get8(s);                   // discard Offset\n    tga_colormap_type = stbi__get8(s); // colormap type\n    if( tga_colormap_type > 1 ) {\n        stbi__rewind(s);\n        return 0;      // only RGB or indexed allowed\n    }\n    tga_image_type = stbi__get8(s); // image type\n    if ( tga_colormap_type == 1 ) { // colormapped (paletted) image\n        if (tga_image_type != 1 && tga_image_type != 9) {\n            stbi__rewind(s);\n            return 0;\n        }\n        stbi__skip(s,4);       // skip index of first colormap entry and number of entries\n        sz = stbi__get8(s);    //   check bits per palette color entry\n        if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) {\n            stbi__rewind(s);\n            return 0;\n        }\n        stbi__skip(s,4);       // skip image x and y origin\n        tga_colormap_bpp = sz;\n    } else { // \"normal\" image w/o colormap - only RGB or grey allowed, +/- RLE\n        if ( (tga_image_type != 2) && (tga_image_type != 3) && (tga_image_type != 10) && (tga_image_type != 11) ) {\n            stbi__rewind(s);\n            return 0; // only RGB or grey allowed, +/- RLE\n        }\n        stbi__skip(s,9); // skip colormap specification and image x/y origin\n        tga_colormap_bpp = 0;\n    }\n    tga_w = stbi__get16le(s);\n    if( tga_w < 1 ) {\n        stbi__rewind(s);\n        return 0;   // test width\n    }\n    tga_h = stbi__get16le(s);\n    if( tga_h < 1 ) {\n        stbi__rewind(s);\n        return 0;   // test height\n    }\n    tga_bits_per_pixel = stbi__get8(s); // bits per pixel\n    stbi__get8(s); // ignore alpha bits\n    if (tga_colormap_bpp != 0) {\n        if((tga_bits_per_pixel != 8) && (tga_bits_per_pixel != 16)) {\n            // when using a colormap, tga_bits_per_pixel is the size of the indexes\n            // I don't think anything but 8 or 16bit indexes makes sense\n            stbi__rewind(s);\n            return 0;\n        }\n        tga_comp = stbi__tga_get_comp(tga_colormap_bpp, 0, NULL);\n    } else {\n        tga_comp = stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3) || (tga_image_type == 11), NULL);\n    }\n    if(!tga_comp) {\n      stbi__rewind(s);\n      return 0;\n    }\n    if (x) *x = tga_w;\n    if (y) *y = tga_h;\n    if (comp) *comp = tga_comp;\n    return 1;                   // seems to have passed everything\n}\n\nstatic int stbi__tga_test(stbi__context *s)\n{\n   int res = 0;\n   int sz, tga_color_type;\n   stbi__get8(s);      //   discard Offset\n   tga_color_type = stbi__get8(s);   //   color type\n   if ( tga_color_type > 1 ) goto errorEnd;   //   only RGB or indexed allowed\n   sz = stbi__get8(s);   //   image type\n   if ( tga_color_type == 1 ) { // colormapped (paletted) image\n      if (sz != 1 && sz != 9) goto errorEnd; // colortype 1 demands image type 1 or 9\n      stbi__skip(s,4);       // skip index of first colormap entry and number of entries\n      sz = stbi__get8(s);    //   check bits per palette color entry\n      if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) goto errorEnd;\n      stbi__skip(s,4);       // skip image x and y origin\n   } else { // \"normal\" image w/o colormap\n      if ( (sz != 2) && (sz != 3) && (sz != 10) && (sz != 11) ) goto errorEnd; // only RGB or grey allowed, +/- RLE\n      stbi__skip(s,9); // skip colormap specification and image x/y origin\n   }\n   if ( stbi__get16le(s) < 1 ) goto errorEnd;      //   test width\n   if ( stbi__get16le(s) < 1 ) goto errorEnd;      //   test height\n   sz = stbi__get8(s);   //   bits per pixel\n   if ( (tga_color_type == 1) && (sz != 8) && (sz != 16) ) goto errorEnd; // for colormapped images, bpp is size of an index\n   if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) goto errorEnd;\n\n   res = 1; // if we got this far, everything's good and we can return 1 instead of 0\n\nerrorEnd:\n   stbi__rewind(s);\n   return res;\n}\n\n// read 16bit value and convert to 24bit RGB\nstatic void stbi__tga_read_rgb16(stbi__context *s, stbi_uc* out)\n{\n   stbi__uint16 px = (stbi__uint16)stbi__get16le(s);\n   stbi__uint16 fiveBitMask = 31;\n   // we have 3 channels with 5bits each\n   int r = (px >> 10) & fiveBitMask;\n   int g = (px >> 5) & fiveBitMask;\n   int b = px & fiveBitMask;\n   // Note that this saves the data in RGB(A) order, so it doesn't need to be swapped later\n   out[0] = (stbi_uc)((r * 255)/31);\n   out[1] = (stbi_uc)((g * 255)/31);\n   out[2] = (stbi_uc)((b * 255)/31);\n\n   // some people claim that the most significant bit might be used for alpha\n   // (possibly if an alpha-bit is set in the \"image descriptor byte\")\n   // but that only made 16bit test images completely translucent..\n   // so let's treat all 15 and 16bit TGAs as RGB with no alpha.\n}\n\nstatic void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri)\n{\n   //   read in the TGA header stuff\n   int tga_offset = stbi__get8(s);\n   int tga_indexed = stbi__get8(s);\n   int tga_image_type = stbi__get8(s);\n   int tga_is_RLE = 0;\n   int tga_palette_start = stbi__get16le(s);\n   int tga_palette_len = stbi__get16le(s);\n   int tga_palette_bits = stbi__get8(s);\n   int tga_x_origin = stbi__get16le(s);\n   int tga_y_origin = stbi__get16le(s);\n   int tga_width = stbi__get16le(s);\n   int tga_height = stbi__get16le(s);\n   int tga_bits_per_pixel = stbi__get8(s);\n   int tga_comp, tga_rgb16=0;\n   int tga_inverted = stbi__get8(s);\n   // int tga_alpha_bits = tga_inverted & 15; // the 4 lowest bits - unused (useless?)\n   //   image data\n   unsigned char *tga_data;\n   unsigned char *tga_palette = NULL;\n   int i, j;\n   unsigned char raw_data[4] = {0};\n   int RLE_count = 0;\n   int RLE_repeating = 0;\n   int read_next_pixel = 1;\n   STBI_NOTUSED(ri);\n   STBI_NOTUSED(tga_x_origin); // @TODO\n   STBI_NOTUSED(tga_y_origin); // @TODO\n\n   if (tga_height > STBI_MAX_DIMENSIONS) return stbi__errpuc(\"too large\",\"Very large image (corrupt?)\");\n   if (tga_width > STBI_MAX_DIMENSIONS) return stbi__errpuc(\"too large\",\"Very large image (corrupt?)\");\n\n   //   do a tiny bit of precessing\n   if ( tga_image_type >= 8 )\n   {\n      tga_image_type -= 8;\n      tga_is_RLE = 1;\n   }\n   tga_inverted = 1 - ((tga_inverted >> 5) & 1);\n\n   //   If I'm paletted, then I'll use the number of bits from the palette\n   if ( tga_indexed ) tga_comp = stbi__tga_get_comp(tga_palette_bits, 0, &tga_rgb16);\n   else tga_comp = stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3), &tga_rgb16);\n\n   if(!tga_comp) // shouldn't really happen, stbi__tga_test() should have ensured basic consistency\n      return stbi__errpuc(\"bad format\", \"Can't find out TGA pixelformat\");\n\n   //   tga info\n   *x = tga_width;\n   *y = tga_height;\n   if (comp) *comp = tga_comp;\n\n   if (!stbi__mad3sizes_valid(tga_width, tga_height, tga_comp, 0))\n      return stbi__errpuc(\"too large\", \"Corrupt TGA\");\n\n   tga_data = (unsigned char*)stbi__malloc_mad3(tga_width, tga_height, tga_comp, 0);\n   if (!tga_data) return stbi__errpuc(\"outofmem\", \"Out of memory\");\n\n   // skip to the data's starting position (offset usually = 0)\n   stbi__skip(s, tga_offset );\n\n   if ( !tga_indexed && !tga_is_RLE && !tga_rgb16 ) {\n      for (i=0; i < tga_height; ++i) {\n         int row = tga_inverted ? tga_height -i - 1 : i;\n         stbi_uc *tga_row = tga_data + row*tga_width*tga_comp;\n         stbi__getn(s, tga_row, tga_width * tga_comp);\n      }\n   } else  {\n      //   do I need to load a palette?\n      if ( tga_indexed)\n      {\n         if (tga_palette_len == 0) {  /* you have to have at least one entry! */\n            STBI_FREE(tga_data);\n            return stbi__errpuc(\"bad palette\", \"Corrupt TGA\");\n         }\n\n         //   any data to skip? (offset usually = 0)\n         stbi__skip(s, tga_palette_start );\n         //   load the palette\n         tga_palette = (unsigned char*)stbi__malloc_mad2(tga_palette_len, tga_comp, 0);\n         if (!tga_palette) {\n            STBI_FREE(tga_data);\n            return stbi__errpuc(\"outofmem\", \"Out of memory\");\n         }\n         if (tga_rgb16) {\n            stbi_uc *pal_entry = tga_palette;\n            STBI_ASSERT(tga_comp == STBI_rgb);\n            for (i=0; i < tga_palette_len; ++i) {\n               stbi__tga_read_rgb16(s, pal_entry);\n               pal_entry += tga_comp;\n            }\n         } else if (!stbi__getn(s, tga_palette, tga_palette_len * tga_comp)) {\n               STBI_FREE(tga_data);\n               STBI_FREE(tga_palette);\n               return stbi__errpuc(\"bad palette\", \"Corrupt TGA\");\n         }\n      }\n      //   load the data\n      for (i=0; i < tga_width * tga_height; ++i)\n      {\n         //   if I'm in RLE mode, do I need to get a RLE stbi__pngchunk?\n         if ( tga_is_RLE )\n         {\n            if ( RLE_count == 0 )\n            {\n               //   yep, get the next byte as a RLE command\n               int RLE_cmd = stbi__get8(s);\n               RLE_count = 1 + (RLE_cmd & 127);\n               RLE_repeating = RLE_cmd >> 7;\n               read_next_pixel = 1;\n            } else if ( !RLE_repeating )\n            {\n               read_next_pixel = 1;\n            }\n         } else\n         {\n            read_next_pixel = 1;\n         }\n         //   OK, if I need to read a pixel, do it now\n         if ( read_next_pixel )\n         {\n            //   load however much data we did have\n            if ( tga_indexed )\n            {\n               // read in index, then perform the lookup\n               int pal_idx = (tga_bits_per_pixel == 8) ? stbi__get8(s) : stbi__get16le(s);\n               if ( pal_idx >= tga_palette_len ) {\n                  // invalid index\n                  pal_idx = 0;\n               }\n               pal_idx *= tga_comp;\n               for (j = 0; j < tga_comp; ++j) {\n                  raw_data[j] = tga_palette[pal_idx+j];\n               }\n            } else if(tga_rgb16) {\n               STBI_ASSERT(tga_comp == STBI_rgb);\n               stbi__tga_read_rgb16(s, raw_data);\n            } else {\n               //   read in the data raw\n               for (j = 0; j < tga_comp; ++j) {\n                  raw_data[j] = stbi__get8(s);\n               }\n            }\n            //   clear the reading flag for the next pixel\n            read_next_pixel = 0;\n         } // end of reading a pixel\n\n         // copy data\n         for (j = 0; j < tga_comp; ++j)\n           tga_data[i*tga_comp+j] = raw_data[j];\n\n         //   in case we're in RLE mode, keep counting down\n         --RLE_count;\n      }\n      //   do I need to invert the image?\n      if ( tga_inverted )\n      {\n         for (j = 0; j*2 < tga_height; ++j)\n         {\n            int index1 = j * tga_width * tga_comp;\n            int index2 = (tga_height - 1 - j) * tga_width * tga_comp;\n            for (i = tga_width * tga_comp; i > 0; --i)\n            {\n               unsigned char temp = tga_data[index1];\n               tga_data[index1] = tga_data[index2];\n               tga_data[index2] = temp;\n               ++index1;\n               ++index2;\n            }\n         }\n      }\n      //   clear my palette, if I had one\n      if ( tga_palette != NULL )\n      {\n         STBI_FREE( tga_palette );\n      }\n   }\n\n   // swap RGB - if the source data was RGB16, it already is in the right order\n   if (tga_comp >= 3 && !tga_rgb16)\n   {\n      unsigned char* tga_pixel = tga_data;\n      for (i=0; i < tga_width * tga_height; ++i)\n      {\n         unsigned char temp = tga_pixel[0];\n         tga_pixel[0] = tga_pixel[2];\n         tga_pixel[2] = temp;\n         tga_pixel += tga_comp;\n      }\n   }\n\n   // convert to target component count\n   if (req_comp && req_comp != tga_comp)\n      tga_data = stbi__convert_format(tga_data, tga_comp, req_comp, tga_width, tga_height);\n\n   //   the things I do to get rid of an error message, and yet keep\n   //   Microsoft's C compilers happy... [8^(\n   tga_palette_start = tga_palette_len = tga_palette_bits =\n         tga_x_origin = tga_y_origin = 0;\n   STBI_NOTUSED(tga_palette_start);\n   //   OK, done\n   return tga_data;\n}\n#endif\n\n// *************************************************************************************************\n// Photoshop PSD loader -- PD by Thatcher Ulrich, integration by Nicolas Schulz, tweaked by STB\n\n#ifndef STBI_NO_PSD\nstatic int stbi__psd_test(stbi__context *s)\n{\n   int r = (stbi__get32be(s) == 0x38425053);\n   stbi__rewind(s);\n   return r;\n}\n\nstatic int stbi__psd_decode_rle(stbi__context *s, stbi_uc *p, int pixelCount)\n{\n   int count, nleft, len;\n\n   count = 0;\n   while ((nleft = pixelCount - count) > 0) {\n      len = stbi__get8(s);\n      if (len == 128) {\n         // No-op.\n      } else if (len < 128) {\n         // Copy next len+1 bytes literally.\n         len++;\n         if (len > nleft) return 0; // corrupt data\n         count += len;\n         while (len) {\n            *p = stbi__get8(s);\n            p += 4;\n            len--;\n         }\n      } else if (len > 128) {\n         stbi_uc   val;\n         // Next -len+1 bytes in the dest are replicated from next source byte.\n         // (Interpret len as a negative 8-bit int.)\n         len = 257 - len;\n         if (len > nleft) return 0; // corrupt data\n         val = stbi__get8(s);\n         count += len;\n         while (len) {\n            *p = val;\n            p += 4;\n            len--;\n         }\n      }\n   }\n\n   return 1;\n}\n\nstatic void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc)\n{\n   int pixelCount;\n   int channelCount, compression;\n   int channel, i;\n   int bitdepth;\n   int w,h;\n   stbi_uc *out;\n   STBI_NOTUSED(ri);\n\n   // Check identifier\n   if (stbi__get32be(s) != 0x38425053)   // \"8BPS\"\n      return stbi__errpuc(\"not PSD\", \"Corrupt PSD image\");\n\n   // Check file type version.\n   if (stbi__get16be(s) != 1)\n      return stbi__errpuc(\"wrong version\", \"Unsupported version of PSD image\");\n\n   // Skip 6 reserved bytes.\n   stbi__skip(s, 6 );\n\n   // Read the number of channels (R, G, B, A, etc).\n   channelCount = stbi__get16be(s);\n   if (channelCount < 0 || channelCount > 16)\n      return stbi__errpuc(\"wrong channel count\", \"Unsupported number of channels in PSD image\");\n\n   // Read the rows and columns of the image.\n   h = stbi__get32be(s);\n   w = stbi__get32be(s);\n\n   if (h > STBI_MAX_DIMENSIONS) return stbi__errpuc(\"too large\",\"Very large image (corrupt?)\");\n   if (w > STBI_MAX_DIMENSIONS) return stbi__errpuc(\"too large\",\"Very large image (corrupt?)\");\n\n   // Make sure the depth is 8 bits.\n   bitdepth = stbi__get16be(s);\n   if (bitdepth != 8 && bitdepth != 16)\n      return stbi__errpuc(\"unsupported bit depth\", \"PSD bit depth is not 8 or 16 bit\");\n\n   // Make sure the color mode is RGB.\n   // Valid options are:\n   //   0: Bitmap\n   //   1: Grayscale\n   //   2: Indexed color\n   //   3: RGB color\n   //   4: CMYK color\n   //   7: Multichannel\n   //   8: Duotone\n   //   9: Lab color\n   if (stbi__get16be(s) != 3)\n      return stbi__errpuc(\"wrong color format\", \"PSD is not in RGB color format\");\n\n   // Skip the Mode Data.  (It's the palette for indexed color; other info for other modes.)\n   stbi__skip(s,stbi__get32be(s) );\n\n   // Skip the image resources.  (resolution, pen tool paths, etc)\n   stbi__skip(s, stbi__get32be(s) );\n\n   // Skip the reserved data.\n   stbi__skip(s, stbi__get32be(s) );\n\n   // Find out if the data is compressed.\n   // Known values:\n   //   0: no compression\n   //   1: RLE compressed\n   compression = stbi__get16be(s);\n   if (compression > 1)\n      return stbi__errpuc(\"bad compression\", \"PSD has an unknown compression format\");\n\n   // Check size\n   if (!stbi__mad3sizes_valid(4, w, h, 0))\n      return stbi__errpuc(\"too large\", \"Corrupt PSD\");\n\n   // Create the destination image.\n\n   if (!compression && bitdepth == 16 && bpc == 16) {\n      out = (stbi_uc *) stbi__malloc_mad3(8, w, h, 0);\n      ri->bits_per_channel = 16;\n   } else\n      out = (stbi_uc *) stbi__malloc(4 * w*h);\n\n   if (!out) return stbi__errpuc(\"outofmem\", \"Out of memory\");\n   pixelCount = w*h;\n\n   // Initialize the data to zero.\n   //memset( out, 0, pixelCount * 4 );\n\n   // Finally, the image data.\n   if (compression) {\n      // RLE as used by .PSD and .TIFF\n      // Loop until you get the number of unpacked bytes you are expecting:\n      //     Read the next source byte into n.\n      //     If n is between 0 and 127 inclusive, copy the next n+1 bytes literally.\n      //     Else if n is between -127 and -1 inclusive, copy the next byte -n+1 times.\n      //     Else if n is 128, noop.\n      // Endloop\n\n      // The RLE-compressed data is preceded by a 2-byte data count for each row in the data,\n      // which we're going to just skip.\n      stbi__skip(s, h * channelCount * 2 );\n\n      // Read the RLE data by channel.\n      for (channel = 0; channel < 4; channel++) {\n         stbi_uc *p;\n\n         p = out+channel;\n         if (channel >= channelCount) {\n            // Fill this channel with default data.\n            for (i = 0; i < pixelCount; i++, p += 4)\n               *p = (channel == 3 ? 255 : 0);\n         } else {\n            // Read the RLE data.\n            if (!stbi__psd_decode_rle(s, p, pixelCount)) {\n               STBI_FREE(out);\n               return stbi__errpuc(\"corrupt\", \"bad RLE data\");\n            }\n         }\n      }\n\n   } else {\n      // We're at the raw image data.  It's each channel in order (Red, Green, Blue, Alpha, ...)\n      // where each channel consists of an 8-bit (or 16-bit) value for each pixel in the image.\n\n      // Read the data by channel.\n      for (channel = 0; channel < 4; channel++) {\n         if (channel >= channelCount) {\n            // Fill this channel with default data.\n            if (bitdepth == 16 && bpc == 16) {\n               stbi__uint16 *q = ((stbi__uint16 *) out) + channel;\n               stbi__uint16 val = channel == 3 ? 65535 : 0;\n               for (i = 0; i < pixelCount; i++, q += 4)\n                  *q = val;\n            } else {\n               stbi_uc *p = out+channel;\n               stbi_uc val = channel == 3 ? 255 : 0;\n               for (i = 0; i < pixelCount; i++, p += 4)\n                  *p = val;\n            }\n         } else {\n            if (ri->bits_per_channel == 16) {    // output bpc\n               stbi__uint16 *q = ((stbi__uint16 *) out) + channel;\n               for (i = 0; i < pixelCount; i++, q += 4)\n                  *q = (stbi__uint16) stbi__get16be(s);\n            } else {\n               stbi_uc *p = out+channel;\n               if (bitdepth == 16) {  // input bpc\n                  for (i = 0; i < pixelCount; i++, p += 4)\n                     *p = (stbi_uc) (stbi__get16be(s) >> 8);\n               } else {\n                  for (i = 0; i < pixelCount; i++, p += 4)\n                     *p = stbi__get8(s);\n               }\n            }\n         }\n      }\n   }\n\n   // remove weird white matte from PSD\n   if (channelCount >= 4) {\n      if (ri->bits_per_channel == 16) {\n         for (i=0; i < w*h; ++i) {\n            stbi__uint16 *pixel = (stbi__uint16 *) out + 4*i;\n            if (pixel[3] != 0 && pixel[3] != 65535) {\n               float a = pixel[3] / 65535.0f;\n               float ra = 1.0f / a;\n               float inv_a = 65535.0f * (1 - ra);\n               pixel[0] = (stbi__uint16) (pixel[0]*ra + inv_a);\n               pixel[1] = (stbi__uint16) (pixel[1]*ra + inv_a);\n               pixel[2] = (stbi__uint16) (pixel[2]*ra + inv_a);\n            }\n         }\n      } else {\n         for (i=0; i < w*h; ++i) {\n            unsigned char *pixel = out + 4*i;\n            if (pixel[3] != 0 && pixel[3] != 255) {\n               float a = pixel[3] / 255.0f;\n               float ra = 1.0f / a;\n               float inv_a = 255.0f * (1 - ra);\n               pixel[0] = (unsigned char) (pixel[0]*ra + inv_a);\n               pixel[1] = (unsigned char) (pixel[1]*ra + inv_a);\n               pixel[2] = (unsigned char) (pixel[2]*ra + inv_a);\n            }\n         }\n      }\n   }\n\n   // convert to desired output format\n   if (req_comp && req_comp != 4) {\n      if (ri->bits_per_channel == 16)\n         out = (stbi_uc *) stbi__convert_format16((stbi__uint16 *) out, 4, req_comp, w, h);\n      else\n         out = stbi__convert_format(out, 4, req_comp, w, h);\n      if (out == NULL) return out; // stbi__convert_format frees input on failure\n   }\n\n   if (comp) *comp = 4;\n   *y = h;\n   *x = w;\n\n   return out;\n}\n#endif\n\n// *************************************************************************************************\n// Softimage PIC loader\n// by Tom Seddon\n//\n// See http://softimage.wiki.softimage.com/index.php/INFO:_PIC_file_format\n// See http://ozviz.wasp.uwa.edu.au/~pbourke/dataformats/softimagepic/\n\n#ifndef STBI_NO_PIC\nstatic int stbi__pic_is4(stbi__context *s,const char *str)\n{\n   int i;\n   for (i=0; i<4; ++i)\n      if (stbi__get8(s) != (stbi_uc)str[i])\n         return 0;\n\n   return 1;\n}\n\nstatic int stbi__pic_test_core(stbi__context *s)\n{\n   int i;\n\n   if (!stbi__pic_is4(s,\"\\x53\\x80\\xF6\\x34\"))\n      return 0;\n\n   for(i=0;i<84;++i)\n      stbi__get8(s);\n\n   if (!stbi__pic_is4(s,\"PICT\"))\n      return 0;\n\n   return 1;\n}\n\ntypedef struct\n{\n   stbi_uc size,type,channel;\n} stbi__pic_packet;\n\nstatic stbi_uc *stbi__readval(stbi__context *s, int channel, stbi_uc *dest)\n{\n   int mask=0x80, i;\n\n   for (i=0; i<4; ++i, mask>>=1) {\n      if (channel & mask) {\n         if (stbi__at_eof(s)) return stbi__errpuc(\"bad file\",\"PIC file too short\");\n         dest[i]=stbi__get8(s);\n      }\n   }\n\n   return dest;\n}\n\nstatic void stbi__copyval(int channel,stbi_uc *dest,const stbi_uc *src)\n{\n   int mask=0x80,i;\n\n   for (i=0;i<4; ++i, mask>>=1)\n      if (channel&mask)\n         dest[i]=src[i];\n}\n\nstatic stbi_uc *stbi__pic_load_core(stbi__context *s,int width,int height,int *comp, stbi_uc *result)\n{\n   int act_comp=0,num_packets=0,y,chained;\n   stbi__pic_packet packets[10];\n\n   // this will (should...) cater for even some bizarre stuff like having data\n    // for the same channel in multiple packets.\n   do {\n      stbi__pic_packet *packet;\n\n      if (num_packets==sizeof(packets)/sizeof(packets[0]))\n         return stbi__errpuc(\"bad format\",\"too many packets\");\n\n      packet = &packets[num_packets++];\n\n      chained = stbi__get8(s);\n      packet->size    = stbi__get8(s);\n      packet->type    = stbi__get8(s);\n      packet->channel = stbi__get8(s);\n\n      act_comp |= packet->channel;\n\n      if (stbi__at_eof(s))          return stbi__errpuc(\"bad file\",\"file too short (reading packets)\");\n      if (packet->size != 8)  return stbi__errpuc(\"bad format\",\"packet isn't 8bpp\");\n   } while (chained);\n\n   *comp = (act_comp & 0x10 ? 4 : 3); // has alpha channel?\n\n   for(y=0; y<height; ++y) {\n      int packet_idx;\n\n      for(packet_idx=0; packet_idx < num_packets; ++packet_idx) {\n         stbi__pic_packet *packet = &packets[packet_idx];\n         stbi_uc *dest = result+y*width*4;\n\n         switch (packet->type) {\n            default:\n               return stbi__errpuc(\"bad format\",\"packet has bad compression type\");\n\n            case 0: {//uncompressed\n               int x;\n\n               for(x=0;x<width;++x, dest+=4)\n                  if (!stbi__readval(s,packet->channel,dest))\n                     return 0;\n               break;\n            }\n\n            case 1://Pure RLE\n               {\n                  int left=width, i;\n\n                  while (left>0) {\n                     stbi_uc count,value[4];\n\n                     count=stbi__get8(s);\n                     if (stbi__at_eof(s))   return stbi__errpuc(\"bad file\",\"file too short (pure read count)\");\n\n                     if (count > left)\n                        count = (stbi_uc) left;\n\n                     if (!stbi__readval(s,packet->channel,value))  return 0;\n\n                     for(i=0; i<count; ++i,dest+=4)\n                        stbi__copyval(packet->channel,dest,value);\n                     left -= count;\n                  }\n               }\n               break;\n\n            case 2: {//Mixed RLE\n               int left=width;\n               while (left>0) {\n                  int count = stbi__get8(s), i;\n                  if (stbi__at_eof(s))  return stbi__errpuc(\"bad file\",\"file too short (mixed read count)\");\n\n                  if (count >= 128) { // Repeated\n                     stbi_uc value[4];\n\n                     if (count==128)\n                        count = stbi__get16be(s);\n                     else\n                        count -= 127;\n                     if (count > left)\n                        return stbi__errpuc(\"bad file\",\"scanline overrun\");\n\n                     if (!stbi__readval(s,packet->channel,value))\n                        return 0;\n\n                     for(i=0;i<count;++i, dest += 4)\n                        stbi__copyval(packet->channel,dest,value);\n                  } else { // Raw\n                     ++count;\n                     if (count>left) return stbi__errpuc(\"bad file\",\"scanline overrun\");\n\n                     for(i=0;i<count;++i, dest+=4)\n                        if (!stbi__readval(s,packet->channel,dest))\n                           return 0;\n                  }\n                  left-=count;\n               }\n               break;\n            }\n         }\n      }\n   }\n\n   return result;\n}\n\nstatic void *stbi__pic_load(stbi__context *s,int *px,int *py,int *comp,int req_comp, stbi__result_info *ri)\n{\n   stbi_uc *result;\n   int i, x,y, internal_comp;\n   STBI_NOTUSED(ri);\n\n   if (!comp) comp = &internal_comp;\n\n   for (i=0; i<92; ++i)\n      stbi__get8(s);\n\n   x = stbi__get16be(s);\n   y = stbi__get16be(s);\n\n   if (y > STBI_MAX_DIMENSIONS) return stbi__errpuc(\"too large\",\"Very large image (corrupt?)\");\n   if (x > STBI_MAX_DIMENSIONS) return stbi__errpuc(\"too large\",\"Very large image (corrupt?)\");\n\n   if (stbi__at_eof(s))  return stbi__errpuc(\"bad file\",\"file too short (pic header)\");\n   if (!stbi__mad3sizes_valid(x, y, 4, 0)) return stbi__errpuc(\"too large\", \"PIC image too large to decode\");\n\n   stbi__get32be(s); //skip `ratio'\n   stbi__get16be(s); //skip `fields'\n   stbi__get16be(s); //skip `pad'\n\n   // intermediate buffer is RGBA\n   result = (stbi_uc *) stbi__malloc_mad3(x, y, 4, 0);\n   if (!result) return stbi__errpuc(\"outofmem\", \"Out of memory\");\n   memset(result, 0xff, x*y*4);\n\n   if (!stbi__pic_load_core(s,x,y,comp, result)) {\n      STBI_FREE(result);\n      result=0;\n   }\n   *px = x;\n   *py = y;\n   if (req_comp == 0) req_comp = *comp;\n   result=stbi__convert_format(result,4,req_comp,x,y);\n\n   return result;\n}\n\nstatic int stbi__pic_test(stbi__context *s)\n{\n   int r = stbi__pic_test_core(s);\n   stbi__rewind(s);\n   return r;\n}\n#endif\n\n// *************************************************************************************************\n// GIF loader -- public domain by Jean-Marc Lienher -- simplified/shrunk by stb\n\n#ifndef STBI_NO_GIF\ntypedef struct\n{\n   stbi__int16 prefix;\n   stbi_uc first;\n   stbi_uc suffix;\n} stbi__gif_lzw;\n\ntypedef struct\n{\n   int w,h;\n   stbi_uc *out;                 // output buffer (always 4 components)\n   stbi_uc *background;          // The current \"background\" as far as a gif is concerned\n   stbi_uc *history;\n   int flags, bgindex, ratio, transparent, eflags;\n   stbi_uc  pal[256][4];\n   stbi_uc lpal[256][4];\n   stbi__gif_lzw codes[8192];\n   stbi_uc *color_table;\n   int parse, step;\n   int lflags;\n   int start_x, start_y;\n   int max_x, max_y;\n   int cur_x, cur_y;\n   int line_size;\n   int delay;\n} stbi__gif;\n\nstatic int stbi__gif_test_raw(stbi__context *s)\n{\n   int sz;\n   if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' || stbi__get8(s) != '8') return 0;\n   sz = stbi__get8(s);\n   if (sz != '9' && sz != '7') return 0;\n   if (stbi__get8(s) != 'a') return 0;\n   return 1;\n}\n\nstatic int stbi__gif_test(stbi__context *s)\n{\n   int r = stbi__gif_test_raw(s);\n   stbi__rewind(s);\n   return r;\n}\n\nstatic void stbi__gif_parse_colortable(stbi__context *s, stbi_uc pal[256][4], int num_entries, int transp)\n{\n   int i;\n   for (i=0; i < num_entries; ++i) {\n      pal[i][2] = stbi__get8(s);\n      pal[i][1] = stbi__get8(s);\n      pal[i][0] = stbi__get8(s);\n      pal[i][3] = transp == i ? 0 : 255;\n   }\n}\n\nstatic int stbi__gif_header(stbi__context *s, stbi__gif *g, int *comp, int is_info)\n{\n   stbi_uc version;\n   if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' || stbi__get8(s) != '8')\n      return stbi__err(\"not GIF\", \"Corrupt GIF\");\n\n   version = stbi__get8(s);\n   if (version != '7' && version != '9')    return stbi__err(\"not GIF\", \"Corrupt GIF\");\n   if (stbi__get8(s) != 'a')                return stbi__err(\"not GIF\", \"Corrupt GIF\");\n\n   stbi__g_failure_reason = \"\";\n   g->w = stbi__get16le(s);\n   g->h = stbi__get16le(s);\n   g->flags = stbi__get8(s);\n   g->bgindex = stbi__get8(s);\n   g->ratio = stbi__get8(s);\n   g->transparent = -1;\n\n   if (g->w > STBI_MAX_DIMENSIONS) return stbi__err(\"too large\",\"Very large image (corrupt?)\");\n   if (g->h > STBI_MAX_DIMENSIONS) return stbi__err(\"too large\",\"Very large image (corrupt?)\");\n\n   if (comp != 0) *comp = 4;  // can't actually tell whether it's 3 or 4 until we parse the comments\n\n   if (is_info) return 1;\n\n   if (g->flags & 0x80)\n      stbi__gif_parse_colortable(s,g->pal, 2 << (g->flags & 7), -1);\n\n   return 1;\n}\n\nstatic int stbi__gif_info_raw(stbi__context *s, int *x, int *y, int *comp)\n{\n   stbi__gif* g = (stbi__gif*) stbi__malloc(sizeof(stbi__gif));\n   if (!g) return stbi__err(\"outofmem\", \"Out of memory\");\n   if (!stbi__gif_header(s, g, comp, 1)) {\n      STBI_FREE(g);\n      stbi__rewind( s );\n      return 0;\n   }\n   if (x) *x = g->w;\n   if (y) *y = g->h;\n   STBI_FREE(g);\n   return 1;\n}\n\nstatic void stbi__out_gif_code(stbi__gif *g, stbi__uint16 code)\n{\n   stbi_uc *p, *c;\n   int idx;\n\n   // recurse to decode the prefixes, since the linked-list is backwards,\n   // and working backwards through an interleaved image would be nasty\n   if (g->codes[code].prefix >= 0)\n      stbi__out_gif_code(g, g->codes[code].prefix);\n\n   if (g->cur_y >= g->max_y) return;\n\n   idx = g->cur_x + g->cur_y;\n   p = &g->out[idx];\n   g->history[idx / 4] = 1;\n\n   c = &g->color_table[g->codes[code].suffix * 4];\n   if (c[3] > 128) { // don't render transparent pixels;\n      p[0] = c[2];\n      p[1] = c[1];\n      p[2] = c[0];\n      p[3] = c[3];\n   }\n   g->cur_x += 4;\n\n   if (g->cur_x >= g->max_x) {\n      g->cur_x = g->start_x;\n      g->cur_y += g->step;\n\n      while (g->cur_y >= g->max_y && g->parse > 0) {\n         g->step = (1 << g->parse) * g->line_size;\n         g->cur_y = g->start_y + (g->step >> 1);\n         --g->parse;\n      }\n   }\n}\n\nstatic stbi_uc *stbi__process_gif_raster(stbi__context *s, stbi__gif *g)\n{\n   stbi_uc lzw_cs;\n   stbi__int32 len, init_code;\n   stbi__uint32 first;\n   stbi__int32 codesize, codemask, avail, oldcode, bits, valid_bits, clear;\n   stbi__gif_lzw *p;\n\n   lzw_cs = stbi__get8(s);\n   if (lzw_cs > 12) return NULL;\n   clear = 1 << lzw_cs;\n   first = 1;\n   codesize = lzw_cs + 1;\n   codemask = (1 << codesize) - 1;\n   bits = 0;\n   valid_bits = 0;\n   for (init_code = 0; init_code < clear; init_code++) {\n      g->codes[init_code].prefix = -1;\n      g->codes[init_code].first = (stbi_uc) init_code;\n      g->codes[init_code].suffix = (stbi_uc) init_code;\n   }\n\n   // support no starting clear code\n   avail = clear+2;\n   oldcode = -1;\n\n   len = 0;\n   for(;;) {\n      if (valid_bits < codesize) {\n         if (len == 0) {\n            len = stbi__get8(s); // start new block\n            if (len == 0)\n               return g->out;\n         }\n         --len;\n         bits |= (stbi__int32) stbi__get8(s) << valid_bits;\n         valid_bits += 8;\n      } else {\n         stbi__int32 code = bits & codemask;\n         bits >>= codesize;\n         valid_bits -= codesize;\n         // @OPTIMIZE: is there some way we can accelerate the non-clear path?\n         if (code == clear) {  // clear code\n            codesize = lzw_cs + 1;\n            codemask = (1 << codesize) - 1;\n            avail = clear + 2;\n            oldcode = -1;\n            first = 0;\n         } else if (code == clear + 1) { // end of stream code\n            stbi__skip(s, len);\n            while ((len = stbi__get8(s)) > 0)\n               stbi__skip(s,len);\n            return g->out;\n         } else if (code <= avail) {\n            if (first) {\n               return stbi__errpuc(\"no clear code\", \"Corrupt GIF\");\n            }\n\n            if (oldcode >= 0) {\n               p = &g->codes[avail++];\n               if (avail > 8192) {\n                  return stbi__errpuc(\"too many codes\", \"Corrupt GIF\");\n               }\n\n               p->prefix = (stbi__int16) oldcode;\n               p->first = g->codes[oldcode].first;\n               p->suffix = (code == avail) ? p->first : g->codes[code].first;\n            } else if (code == avail)\n               return stbi__errpuc(\"illegal code in raster\", \"Corrupt GIF\");\n\n            stbi__out_gif_code(g, (stbi__uint16) code);\n\n            if ((avail & codemask) == 0 && avail <= 0x0FFF) {\n               codesize++;\n               codemask = (1 << codesize) - 1;\n            }\n\n            oldcode = code;\n         } else {\n            return stbi__errpuc(\"illegal code in raster\", \"Corrupt GIF\");\n         }\n      }\n   }\n}\n\n// this function is designed to support animated gifs, although stb_image doesn't support it\n// two back is the image from two frames ago, used for a very specific disposal format\nstatic stbi_uc *stbi__gif_load_next(stbi__context *s, stbi__gif *g, int *comp, int req_comp, stbi_uc *two_back)\n{\n   int dispose;\n   int first_frame;\n   int pi;\n   int pcount;\n   STBI_NOTUSED(req_comp);\n\n   // on first frame, any non-written pixels get the background colour (non-transparent)\n   first_frame = 0;\n   if (g->out == 0) {\n      if (!stbi__gif_header(s, g, comp,0)) return 0; // stbi__g_failure_reason set by stbi__gif_header\n      if (!stbi__mad3sizes_valid(4, g->w, g->h, 0))\n         return stbi__errpuc(\"too large\", \"GIF image is too large\");\n      pcount = g->w * g->h;\n      g->out = (stbi_uc *) stbi__malloc(4 * pcount);\n      g->background = (stbi_uc *) stbi__malloc(4 * pcount);\n      g->history = (stbi_uc *) stbi__malloc(pcount);\n      if (!g->out || !g->background || !g->history)\n         return stbi__errpuc(\"outofmem\", \"Out of memory\");\n\n      // image is treated as \"transparent\" at the start - ie, nothing overwrites the current background;\n      // background colour is only used for pixels that are not rendered first frame, after that \"background\"\n      // color refers to the color that was there the previous frame.\n      memset(g->out, 0x00, 4 * pcount);\n      memset(g->background, 0x00, 4 * pcount); // state of the background (starts transparent)\n      memset(g->history, 0x00, pcount);        // pixels that were affected previous frame\n      first_frame = 1;\n   } else {\n      // second frame - how do we dispose of the previous one?\n      dispose = (g->eflags & 0x1C) >> 2;\n      pcount = g->w * g->h;\n\n      if ((dispose == 3) && (two_back == 0)) {\n         dispose = 2; // if I don't have an image to revert back to, default to the old background\n      }\n\n      if (dispose == 3) { // use previous graphic\n         for (pi = 0; pi < pcount; ++pi) {\n            if (g->history[pi]) {\n               memcpy( &g->out[pi * 4], &two_back[pi * 4], 4 );\n            }\n         }\n      } else if (dispose == 2) {\n         // restore what was changed last frame to background before that frame;\n         for (pi = 0; pi < pcount; ++pi) {\n            if (g->history[pi]) {\n               memcpy( &g->out[pi * 4], &g->background[pi * 4], 4 );\n            }\n         }\n      } else {\n         // This is a non-disposal case eithe way, so just\n         // leave the pixels as is, and they will become the new background\n         // 1: do not dispose\n         // 0:  not specified.\n      }\n\n      // background is what out is after the undoing of the previou frame;\n      memcpy( g->background, g->out, 4 * g->w * g->h );\n   }\n\n   // clear my history;\n   memset( g->history, 0x00, g->w * g->h );        // pixels that were affected previous frame\n\n   for (;;) {\n      int tag = stbi__get8(s);\n      switch (tag) {\n         case 0x2C: /* Image Descriptor */\n         {\n            stbi__int32 x, y, w, h;\n            stbi_uc *o;\n\n            x = stbi__get16le(s);\n            y = stbi__get16le(s);\n            w = stbi__get16le(s);\n            h = stbi__get16le(s);\n            if (((x + w) > (g->w)) || ((y + h) > (g->h)))\n               return stbi__errpuc(\"bad Image Descriptor\", \"Corrupt GIF\");\n\n            g->line_size = g->w * 4;\n            g->start_x = x * 4;\n            g->start_y = y * g->line_size;\n            g->max_x   = g->start_x + w * 4;\n            g->max_y   = g->start_y + h * g->line_size;\n            g->cur_x   = g->start_x;\n            g->cur_y   = g->start_y;\n\n            // if the width of the specified rectangle is 0, that means\n            // we may not see *any* pixels or the image is malformed;\n            // to make sure this is caught, move the current y down to\n            // max_y (which is what out_gif_code checks).\n            if (w == 0)\n               g->cur_y = g->max_y;\n\n            g->lflags = stbi__get8(s);\n\n            if (g->lflags & 0x40) {\n               g->step = 8 * g->line_size; // first interlaced spacing\n               g->parse = 3;\n            } else {\n               g->step = g->line_size;\n               g->parse = 0;\n            }\n\n            if (g->lflags & 0x80) {\n               stbi__gif_parse_colortable(s,g->lpal, 2 << (g->lflags & 7), g->eflags & 0x01 ? g->transparent : -1);\n               g->color_table = (stbi_uc *) g->lpal;\n            } else if (g->flags & 0x80) {\n               g->color_table = (stbi_uc *) g->pal;\n            } else\n               return stbi__errpuc(\"missing color table\", \"Corrupt GIF\");\n\n            o = stbi__process_gif_raster(s, g);\n            if (!o) return NULL;\n\n            // if this was the first frame,\n            pcount = g->w * g->h;\n            if (first_frame && (g->bgindex > 0)) {\n               // if first frame, any pixel not drawn to gets the background color\n               for (pi = 0; pi < pcount; ++pi) {\n                  if (g->history[pi] == 0) {\n                     g->pal[g->bgindex][3] = 255; // just in case it was made transparent, undo that; It will be reset next frame if need be;\n                     memcpy( &g->out[pi * 4], &g->pal[g->bgindex], 4 );\n                  }\n               }\n            }\n\n            return o;\n         }\n\n         case 0x21: // Comment Extension.\n         {\n            int len;\n            int ext = stbi__get8(s);\n            if (ext == 0xF9) { // Graphic Control Extension.\n               len = stbi__get8(s);\n               if (len == 4) {\n                  g->eflags = stbi__get8(s);\n                  g->delay = 10 * stbi__get16le(s); // delay - 1/100th of a second, saving as 1/1000ths.\n\n                  // unset old transparent\n                  if (g->transparent >= 0) {\n                     g->pal[g->transparent][3] = 255;\n                  }\n                  if (g->eflags & 0x01) {\n                     g->transparent = stbi__get8(s);\n                     if (g->transparent >= 0) {\n                        g->pal[g->transparent][3] = 0;\n                     }\n                  } else {\n                     // don't need transparent\n                     stbi__skip(s, 1);\n                     g->transparent = -1;\n                  }\n               } else {\n                  stbi__skip(s, len);\n                  break;\n               }\n            }\n            while ((len = stbi__get8(s)) != 0) {\n               stbi__skip(s, len);\n            }\n            break;\n         }\n\n         case 0x3B: // gif stream termination code\n            return (stbi_uc *) s; // using '1' causes warning on some compilers\n\n         default:\n            return stbi__errpuc(\"unknown code\", \"Corrupt GIF\");\n      }\n   }\n}\n\nstatic void *stbi__load_gif_main_outofmem(stbi__gif *g, stbi_uc *out, int **delays)\n{\n   STBI_FREE(g->out);\n   STBI_FREE(g->history);\n   STBI_FREE(g->background);\n\n   if (out) STBI_FREE(out);\n   if (delays && *delays) STBI_FREE(*delays);\n   return stbi__errpuc(\"outofmem\", \"Out of memory\");\n}\n\nstatic void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp, int req_comp)\n{\n   if (stbi__gif_test(s)) {\n      int layers = 0;\n      stbi_uc *u = 0;\n      stbi_uc *out = 0;\n      stbi_uc *two_back = 0;\n      stbi__gif g;\n      int stride;\n      int out_size = 0;\n      int delays_size = 0;\n\n      STBI_NOTUSED(out_size);\n      STBI_NOTUSED(delays_size);\n\n      memset(&g, 0, sizeof(g));\n      if (delays) {\n         *delays = 0;\n      }\n\n      do {\n         u = stbi__gif_load_next(s, &g, comp, req_comp, two_back);\n         if (u == (stbi_uc *) s) u = 0;  // end of animated gif marker\n\n         if (u) {\n            *x = g.w;\n            *y = g.h;\n            ++layers;\n            stride = g.w * g.h * 4;\n\n            if (out) {\n               void *tmp = (stbi_uc*) STBI_REALLOC_SIZED( out, out_size, layers * stride );\n               if (!tmp)\n                  return stbi__load_gif_main_outofmem(&g, out, delays);\n               else {\n                   out = (stbi_uc*) tmp;\n                   out_size = layers * stride;\n               }\n\n               if (delays) {\n                  int *new_delays = (int*) STBI_REALLOC_SIZED( *delays, delays_size, sizeof(int) * layers );\n                  if (!new_delays)\n                     return stbi__load_gif_main_outofmem(&g, out, delays);\n                  *delays = new_delays;\n                  delays_size = layers * sizeof(int);\n               }\n            } else {\n               out = (stbi_uc*)stbi__malloc( layers * stride );\n               if (!out)\n                  return stbi__load_gif_main_outofmem(&g, out, delays);\n               out_size = layers * stride;\n               if (delays) {\n                  *delays = (int*) stbi__malloc( layers * sizeof(int) );\n                  if (!*delays)\n                     return stbi__load_gif_main_outofmem(&g, out, delays);\n                  delays_size = layers * sizeof(int);\n               }\n            }\n            memcpy( out + ((layers - 1) * stride), u, stride );\n            if (layers >= 2) {\n               two_back = out - 2 * stride;\n            }\n\n            if (delays) {\n               (*delays)[layers - 1U] = g.delay;\n            }\n         }\n      } while (u != 0);\n\n      // free temp buffer;\n      STBI_FREE(g.out);\n      STBI_FREE(g.history);\n      STBI_FREE(g.background);\n\n      // do the final conversion after loading everything;\n      if (req_comp && req_comp != 4)\n         out = stbi__convert_format(out, 4, req_comp, layers * g.w, g.h);\n\n      *z = layers;\n      return out;\n   } else {\n      return stbi__errpuc(\"not GIF\", \"Image was not as a gif type.\");\n   }\n}\n\nstatic void *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri)\n{\n   stbi_uc *u = 0;\n   stbi__gif g;\n   memset(&g, 0, sizeof(g));\n   STBI_NOTUSED(ri);\n\n   u = stbi__gif_load_next(s, &g, comp, req_comp, 0);\n   if (u == (stbi_uc *) s) u = 0;  // end of animated gif marker\n   if (u) {\n      *x = g.w;\n      *y = g.h;\n\n      // moved conversion to after successful load so that the same\n      // can be done for multiple frames.\n      if (req_comp && req_comp != 4)\n         u = stbi__convert_format(u, 4, req_comp, g.w, g.h);\n   } else if (g.out) {\n      // if there was an error and we allocated an image buffer, free it!\n      STBI_FREE(g.out);\n   }\n\n   // free buffers needed for multiple frame loading;\n   STBI_FREE(g.history);\n   STBI_FREE(g.background);\n\n   return u;\n}\n\nstatic int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp)\n{\n   return stbi__gif_info_raw(s,x,y,comp);\n}\n#endif\n\n// *************************************************************************************************\n// Radiance RGBE HDR loader\n// originally by Nicolas Schulz\n#ifndef STBI_NO_HDR\nstatic int stbi__hdr_test_core(stbi__context *s, const char *signature)\n{\n   int i;\n   for (i=0; signature[i]; ++i)\n      if (stbi__get8(s) != signature[i])\n          return 0;\n   stbi__rewind(s);\n   return 1;\n}\n\nstatic int stbi__hdr_test(stbi__context* s)\n{\n   int r = stbi__hdr_test_core(s, \"#?RADIANCE\\n\");\n   stbi__rewind(s);\n   if(!r) {\n       r = stbi__hdr_test_core(s, \"#?RGBE\\n\");\n       stbi__rewind(s);\n   }\n   return r;\n}\n\n#define STBI__HDR_BUFLEN  1024\nstatic char *stbi__hdr_gettoken(stbi__context *z, char *buffer)\n{\n   int len=0;\n   char c = '\\0';\n\n   c = (char) stbi__get8(z);\n\n   while (!stbi__at_eof(z) && c != '\\n') {\n      buffer[len++] = c;\n      if (len == STBI__HDR_BUFLEN-1) {\n         // flush to end of line\n         while (!stbi__at_eof(z) && stbi__get8(z) != '\\n')\n            ;\n         break;\n      }\n      c = (char) stbi__get8(z);\n   }\n\n   buffer[len] = 0;\n   return buffer;\n}\n\nstatic void stbi__hdr_convert(float *output, stbi_uc *input, int req_comp)\n{\n   if ( input[3] != 0 ) {\n      float f1;\n      // Exponent\n      f1 = (float) ldexp(1.0f, input[3] - (int)(128 + 8));\n      if (req_comp <= 2)\n         output[0] = (input[0] + input[1] + input[2]) * f1 / 3;\n      else {\n         output[0] = input[0] * f1;\n         output[1] = input[1] * f1;\n         output[2] = input[2] * f1;\n      }\n      if (req_comp == 2) output[1] = 1;\n      if (req_comp == 4) output[3] = 1;\n   } else {\n      switch (req_comp) {\n         case 4: output[3] = 1; /* fallthrough */\n         case 3: output[0] = output[1] = output[2] = 0;\n                 break;\n         case 2: output[1] = 1; /* fallthrough */\n         case 1: output[0] = 0;\n                 break;\n      }\n   }\n}\n\nstatic float *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri)\n{\n   char buffer[STBI__HDR_BUFLEN];\n   char *token;\n   int valid = 0;\n   int width, height;\n   stbi_uc *scanline;\n   float *hdr_data;\n   int len;\n   unsigned char count, value;\n   int i, j, k, c1,c2, z;\n   const char *headerToken;\n   STBI_NOTUSED(ri);\n\n   // Check identifier\n   headerToken = stbi__hdr_gettoken(s,buffer);\n   if (strcmp(headerToken, \"#?RADIANCE\") != 0 && strcmp(headerToken, \"#?RGBE\") != 0)\n      return stbi__errpf(\"not HDR\", \"Corrupt HDR image\");\n\n   // Parse header\n   for(;;) {\n      token = stbi__hdr_gettoken(s,buffer);\n      if (token[0] == 0) break;\n      if (strcmp(token, \"FORMAT=32-bit_rle_rgbe\") == 0) valid = 1;\n   }\n\n   if (!valid)    return stbi__errpf(\"unsupported format\", \"Unsupported HDR format\");\n\n   // Parse width and height\n   // can't use sscanf() if we're not using stdio!\n   token = stbi__hdr_gettoken(s,buffer);\n   if (strncmp(token, \"-Y \", 3))  return stbi__errpf(\"unsupported data layout\", \"Unsupported HDR format\");\n   token += 3;\n   height = (int) strtol(token, &token, 10);\n   while (*token == ' ') ++token;\n   if (strncmp(token, \"+X \", 3))  return stbi__errpf(\"unsupported data layout\", \"Unsupported HDR format\");\n   token += 3;\n   width = (int) strtol(token, NULL, 10);\n\n   if (height > STBI_MAX_DIMENSIONS) return stbi__errpf(\"too large\",\"Very large image (corrupt?)\");\n   if (width > STBI_MAX_DIMENSIONS) return stbi__errpf(\"too large\",\"Very large image (corrupt?)\");\n\n   *x = width;\n   *y = height;\n\n   if (comp) *comp = 3;\n   if (req_comp == 0) req_comp = 3;\n\n   if (!stbi__mad4sizes_valid(width, height, req_comp, sizeof(float), 0))\n      return stbi__errpf(\"too large\", \"HDR image is too large\");\n\n   // Read data\n   hdr_data = (float *) stbi__malloc_mad4(width, height, req_comp, sizeof(float), 0);\n   if (!hdr_data)\n      return stbi__errpf(\"outofmem\", \"Out of memory\");\n\n   // Load image data\n   // image data is stored as some number of sca\n   if ( width < 8 || width >= 32768) {\n      // Read flat data\n      for (j=0; j < height; ++j) {\n         for (i=0; i < width; ++i) {\n            stbi_uc rgbe[4];\n           main_decode_loop:\n            stbi__getn(s, rgbe, 4);\n            stbi__hdr_convert(hdr_data + j * width * req_comp + i * req_comp, rgbe, req_comp);\n         }\n      }\n   } else {\n      // Read RLE-encoded data\n      scanline = NULL;\n\n      for (j = 0; j < height; ++j) {\n         c1 = stbi__get8(s);\n         c2 = stbi__get8(s);\n         len = stbi__get8(s);\n         if (c1 != 2 || c2 != 2 || (len & 0x80)) {\n            // not run-length encoded, so we have to actually use THIS data as a decoded\n            // pixel (note this can't be a valid pixel--one of RGB must be >= 128)\n            stbi_uc rgbe[4];\n            rgbe[0] = (stbi_uc) c1;\n            rgbe[1] = (stbi_uc) c2;\n            rgbe[2] = (stbi_uc) len;\n            rgbe[3] = (stbi_uc) stbi__get8(s);\n            stbi__hdr_convert(hdr_data, rgbe, req_comp);\n            i = 1;\n            j = 0;\n            STBI_FREE(scanline);\n            goto main_decode_loop; // yes, this makes no sense\n         }\n         len <<= 8;\n         len |= stbi__get8(s);\n         if (len != width) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf(\"invalid decoded scanline length\", \"corrupt HDR\"); }\n         if (scanline == NULL) {\n            scanline = (stbi_uc *) stbi__malloc_mad2(width, 4, 0);\n            if (!scanline) {\n               STBI_FREE(hdr_data);\n               return stbi__errpf(\"outofmem\", \"Out of memory\");\n            }\n         }\n\n         for (k = 0; k < 4; ++k) {\n            int nleft;\n            i = 0;\n            while ((nleft = width - i) > 0) {\n               count = stbi__get8(s);\n               if (count > 128) {\n                  // Run\n                  value = stbi__get8(s);\n                  count -= 128;\n                  if (count > nleft) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf(\"corrupt\", \"bad RLE data in HDR\"); }\n                  for (z = 0; z < count; ++z)\n                     scanline[i++ * 4 + k] = value;\n               } else {\n                  // Dump\n                  if (count > nleft) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf(\"corrupt\", \"bad RLE data in HDR\"); }\n                  for (z = 0; z < count; ++z)\n                     scanline[i++ * 4 + k] = stbi__get8(s);\n               }\n            }\n         }\n         for (i=0; i < width; ++i)\n            stbi__hdr_convert(hdr_data+(j*width + i)*req_comp, scanline + i*4, req_comp);\n      }\n      if (scanline)\n         STBI_FREE(scanline);\n   }\n\n   return hdr_data;\n}\n\nstatic int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp)\n{\n   char buffer[STBI__HDR_BUFLEN];\n   char *token;\n   int valid = 0;\n   int dummy;\n\n   if (!x) x = &dummy;\n   if (!y) y = &dummy;\n   if (!comp) comp = &dummy;\n\n   if (stbi__hdr_test(s) == 0) {\n       stbi__rewind( s );\n       return 0;\n   }\n\n   for(;;) {\n      token = stbi__hdr_gettoken(s,buffer);\n      if (token[0] == 0) break;\n      if (strcmp(token, \"FORMAT=32-bit_rle_rgbe\") == 0) valid = 1;\n   }\n\n   if (!valid) {\n       stbi__rewind( s );\n       return 0;\n   }\n   token = stbi__hdr_gettoken(s,buffer);\n   if (strncmp(token, \"-Y \", 3)) {\n       stbi__rewind( s );\n       return 0;\n   }\n   token += 3;\n   *y = (int) strtol(token, &token, 10);\n   while (*token == ' ') ++token;\n   if (strncmp(token, \"+X \", 3)) {\n       stbi__rewind( s );\n       return 0;\n   }\n   token += 3;\n   *x = (int) strtol(token, NULL, 10);\n   *comp = 3;\n   return 1;\n}\n#endif // STBI_NO_HDR\n\n#ifndef STBI_NO_BMP\nstatic int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp)\n{\n   void *p;\n   stbi__bmp_data info;\n\n   info.all_a = 255;\n   p = stbi__bmp_parse_header(s, &info);\n   if (p == NULL) {\n      stbi__rewind( s );\n      return 0;\n   }\n   if (x) *x = s->img_x;\n   if (y) *y = s->img_y;\n   if (comp) {\n      if (info.bpp == 24 && info.ma == 0xff000000)\n         *comp = 3;\n      else\n         *comp = info.ma ? 4 : 3;\n   }\n   return 1;\n}\n#endif\n\n#ifndef STBI_NO_PSD\nstatic int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp)\n{\n   int channelCount, dummy, depth;\n   if (!x) x = &dummy;\n   if (!y) y = &dummy;\n   if (!comp) comp = &dummy;\n   if (stbi__get32be(s) != 0x38425053) {\n       stbi__rewind( s );\n       return 0;\n   }\n   if (stbi__get16be(s) != 1) {\n       stbi__rewind( s );\n       return 0;\n   }\n   stbi__skip(s, 6);\n   channelCount = stbi__get16be(s);\n   if (channelCount < 0 || channelCount > 16) {\n       stbi__rewind( s );\n       return 0;\n   }\n   *y = stbi__get32be(s);\n   *x = stbi__get32be(s);\n   depth = stbi__get16be(s);\n   if (depth != 8 && depth != 16) {\n       stbi__rewind( s );\n       return 0;\n   }\n   if (stbi__get16be(s) != 3) {\n       stbi__rewind( s );\n       return 0;\n   }\n   *comp = 4;\n   return 1;\n}\n\nstatic int stbi__psd_is16(stbi__context *s)\n{\n   int channelCount, depth;\n   if (stbi__get32be(s) != 0x38425053) {\n       stbi__rewind( s );\n       return 0;\n   }\n   if (stbi__get16be(s) != 1) {\n       stbi__rewind( s );\n       return 0;\n   }\n   stbi__skip(s, 6);\n   channelCount = stbi__get16be(s);\n   if (channelCount < 0 || channelCount > 16) {\n       stbi__rewind( s );\n       return 0;\n   }\n   STBI_NOTUSED(stbi__get32be(s));\n   STBI_NOTUSED(stbi__get32be(s));\n   depth = stbi__get16be(s);\n   if (depth != 16) {\n       stbi__rewind( s );\n       return 0;\n   }\n   return 1;\n}\n#endif\n\n#ifndef STBI_NO_PIC\nstatic int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp)\n{\n   int act_comp=0,num_packets=0,chained,dummy;\n   stbi__pic_packet packets[10];\n\n   if (!x) x = &dummy;\n   if (!y) y = &dummy;\n   if (!comp) comp = &dummy;\n\n   if (!stbi__pic_is4(s,\"\\x53\\x80\\xF6\\x34\")) {\n      stbi__rewind(s);\n      return 0;\n   }\n\n   stbi__skip(s, 88);\n\n   *x = stbi__get16be(s);\n   *y = stbi__get16be(s);\n   if (stbi__at_eof(s)) {\n      stbi__rewind( s);\n      return 0;\n   }\n   if ( (*x) != 0 && (1 << 28) / (*x) < (*y)) {\n      stbi__rewind( s );\n      return 0;\n   }\n\n   stbi__skip(s, 8);\n\n   do {\n      stbi__pic_packet *packet;\n\n      if (num_packets==sizeof(packets)/sizeof(packets[0]))\n         return 0;\n\n      packet = &packets[num_packets++];\n      chained = stbi__get8(s);\n      packet->size    = stbi__get8(s);\n      packet->type    = stbi__get8(s);\n      packet->channel = stbi__get8(s);\n      act_comp |= packet->channel;\n\n      if (stbi__at_eof(s)) {\n          stbi__rewind( s );\n          return 0;\n      }\n      if (packet->size != 8) {\n          stbi__rewind( s );\n          return 0;\n      }\n   } while (chained);\n\n   *comp = (act_comp & 0x10 ? 4 : 3);\n\n   return 1;\n}\n#endif\n\n// *************************************************************************************************\n// Portable Gray Map and Portable Pixel Map loader\n// by Ken Miller\n//\n// PGM: http://netpbm.sourceforge.net/doc/pgm.html\n// PPM: http://netpbm.sourceforge.net/doc/ppm.html\n//\n// Known limitations:\n//    Does not support comments in the header section\n//    Does not support ASCII image data (formats P2 and P3)\n\n#ifndef STBI_NO_PNM\n\nstatic int      stbi__pnm_test(stbi__context *s)\n{\n   char p, t;\n   p = (char) stbi__get8(s);\n   t = (char) stbi__get8(s);\n   if (p != 'P' || (t != '5' && t != '6')) {\n       stbi__rewind( s );\n       return 0;\n   }\n   return 1;\n}\n\nstatic void *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri)\n{\n   stbi_uc *out;\n   STBI_NOTUSED(ri);\n\n   ri->bits_per_channel = stbi__pnm_info(s, (int *)&s->img_x, (int *)&s->img_y, (int *)&s->img_n);\n   if (ri->bits_per_channel == 0)\n      return 0;\n\n   if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__errpuc(\"too large\",\"Very large image (corrupt?)\");\n   if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__errpuc(\"too large\",\"Very large image (corrupt?)\");\n\n   *x = s->img_x;\n   *y = s->img_y;\n   if (comp) *comp = s->img_n;\n\n   if (!stbi__mad4sizes_valid(s->img_n, s->img_x, s->img_y, ri->bits_per_channel / 8, 0))\n      return stbi__errpuc(\"too large\", \"PNM too large\");\n\n   out = (stbi_uc *) stbi__malloc_mad4(s->img_n, s->img_x, s->img_y, ri->bits_per_channel / 8, 0);\n   if (!out) return stbi__errpuc(\"outofmem\", \"Out of memory\");\n   stbi__getn(s, out, s->img_n * s->img_x * s->img_y * (ri->bits_per_channel / 8));\n\n   if (req_comp && req_comp != s->img_n) {\n      out = stbi__convert_format(out, s->img_n, req_comp, s->img_x, s->img_y);\n      if (out == NULL) return out; // stbi__convert_format frees input on failure\n   }\n   return out;\n}\n\nstatic int      stbi__pnm_isspace(char c)\n{\n   return c == ' ' || c == '\\t' || c == '\\n' || c == '\\v' || c == '\\f' || c == '\\r';\n}\n\nstatic void     stbi__pnm_skip_whitespace(stbi__context *s, char *c)\n{\n   for (;;) {\n      while (!stbi__at_eof(s) && stbi__pnm_isspace(*c))\n         *c = (char) stbi__get8(s);\n\n      if (stbi__at_eof(s) || *c != '#')\n         break;\n\n      while (!stbi__at_eof(s) && *c != '\\n' && *c != '\\r' )\n         *c = (char) stbi__get8(s);\n   }\n}\n\nstatic int      stbi__pnm_isdigit(char c)\n{\n   return c >= '0' && c <= '9';\n}\n\nstatic int      stbi__pnm_getinteger(stbi__context *s, char *c)\n{\n   int value = 0;\n\n   while (!stbi__at_eof(s) && stbi__pnm_isdigit(*c)) {\n      value = value*10 + (*c - '0');\n      *c = (char) stbi__get8(s);\n   }\n\n   return value;\n}\n\nstatic int      stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp)\n{\n   int maxv, dummy;\n   char c, p, t;\n\n   if (!x) x = &dummy;\n   if (!y) y = &dummy;\n   if (!comp) comp = &dummy;\n\n   stbi__rewind(s);\n\n   // Get identifier\n   p = (char) stbi__get8(s);\n   t = (char) stbi__get8(s);\n   if (p != 'P' || (t != '5' && t != '6')) {\n       stbi__rewind(s);\n       return 0;\n   }\n\n   *comp = (t == '6') ? 3 : 1;  // '5' is 1-component .pgm; '6' is 3-component .ppm\n\n   c = (char) stbi__get8(s);\n   stbi__pnm_skip_whitespace(s, &c);\n\n   *x = stbi__pnm_getinteger(s, &c); // read width\n   stbi__pnm_skip_whitespace(s, &c);\n\n   *y = stbi__pnm_getinteger(s, &c); // read height\n   stbi__pnm_skip_whitespace(s, &c);\n\n   maxv = stbi__pnm_getinteger(s, &c);  // read max value\n   if (maxv > 65535)\n      return stbi__err(\"max value > 65535\", \"PPM image supports only 8-bit and 16-bit images\");\n   else if (maxv > 255)\n      return 16;\n   else\n      return 8;\n}\n\nstatic int stbi__pnm_is16(stbi__context *s)\n{\n   if (stbi__pnm_info(s, NULL, NULL, NULL) == 16)\n\t   return 1;\n   return 0;\n}\n#endif\n\nstatic int stbi__info_main(stbi__context *s, int *x, int *y, int *comp)\n{\n   #ifndef STBI_NO_JPEG\n   if (stbi__jpeg_info(s, x, y, comp)) return 1;\n   #endif\n\n   #ifndef STBI_NO_PNG\n   if (stbi__png_info(s, x, y, comp))  return 1;\n   #endif\n\n   #ifndef STBI_NO_GIF\n   if (stbi__gif_info(s, x, y, comp))  return 1;\n   #endif\n\n   #ifndef STBI_NO_BMP\n   if (stbi__bmp_info(s, x, y, comp))  return 1;\n   #endif\n\n   #ifndef STBI_NO_PSD\n   if (stbi__psd_info(s, x, y, comp))  return 1;\n   #endif\n\n   #ifndef STBI_NO_PIC\n   if (stbi__pic_info(s, x, y, comp))  return 1;\n   #endif\n\n   #ifndef STBI_NO_PNM\n   if (stbi__pnm_info(s, x, y, comp))  return 1;\n   #endif\n\n   #ifndef STBI_NO_HDR\n   if (stbi__hdr_info(s, x, y, comp))  return 1;\n   #endif\n\n   // test tga last because it's a crappy test!\n   #ifndef STBI_NO_TGA\n   if (stbi__tga_info(s, x, y, comp))\n       return 1;\n   #endif\n   return stbi__err(\"unknown image type\", \"Image not of any known type, or corrupt\");\n}\n\nstatic int stbi__is_16_main(stbi__context *s)\n{\n   #ifndef STBI_NO_PNG\n   if (stbi__png_is16(s))  return 1;\n   #endif\n\n   #ifndef STBI_NO_PSD\n   if (stbi__psd_is16(s))  return 1;\n   #endif\n\n   #ifndef STBI_NO_PNM\n   if (stbi__pnm_is16(s))  return 1;\n   #endif\n   return 0;\n}\n\n#ifndef STBI_NO_STDIO\nSTBIDEF int stbi_info(char const *filename, int *x, int *y, int *comp)\n{\n    FILE *f = stbi__fopen(filename, \"rb\");\n    int result;\n    if (!f) return stbi__err(\"can't fopen\", \"Unable to open file\");\n    result = stbi_info_from_file(f, x, y, comp);\n    fclose(f);\n    return result;\n}\n\nSTBIDEF int stbi_info_from_file(FILE *f, int *x, int *y, int *comp)\n{\n   int r;\n   stbi__context s;\n   long pos = ftell(f);\n   stbi__start_file(&s, f);\n   r = stbi__info_main(&s,x,y,comp);\n   fseek(f,pos,SEEK_SET);\n   return r;\n}\n\nSTBIDEF int stbi_is_16_bit(char const *filename)\n{\n    FILE *f = stbi__fopen(filename, \"rb\");\n    int result;\n    if (!f) return stbi__err(\"can't fopen\", \"Unable to open file\");\n    result = stbi_is_16_bit_from_file(f);\n    fclose(f);\n    return result;\n}\n\nSTBIDEF int stbi_is_16_bit_from_file(FILE *f)\n{\n   int r;\n   stbi__context s;\n   long pos = ftell(f);\n   stbi__start_file(&s, f);\n   r = stbi__is_16_main(&s);\n   fseek(f,pos,SEEK_SET);\n   return r;\n}\n#endif // !STBI_NO_STDIO\n\nSTBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp)\n{\n   stbi__context s;\n   stbi__start_mem(&s,buffer,len);\n   return stbi__info_main(&s,x,y,comp);\n}\n\nSTBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *c, void *user, int *x, int *y, int *comp)\n{\n   stbi__context s;\n   stbi__start_callbacks(&s, (stbi_io_callbacks *) c, user);\n   return stbi__info_main(&s,x,y,comp);\n}\n\nSTBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len)\n{\n   stbi__context s;\n   stbi__start_mem(&s,buffer,len);\n   return stbi__is_16_main(&s);\n}\n\nSTBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *c, void *user)\n{\n   stbi__context s;\n   stbi__start_callbacks(&s, (stbi_io_callbacks *) c, user);\n   return stbi__is_16_main(&s);\n}\n\n#endif // STB_IMAGE_IMPLEMENTATION\n\n/*\n   revision history:\n      2.20  (2019-02-07) support utf8 filenames in Windows; fix warnings and platform ifdefs\n      2.19  (2018-02-11) fix warning\n      2.18  (2018-01-30) fix warnings\n      2.17  (2018-01-29) change sbti__shiftsigned to avoid clang -O2 bug\n                         1-bit BMP\n                         *_is_16_bit api\n                         avoid warnings\n      2.16  (2017-07-23) all functions have 16-bit variants;\n                         STBI_NO_STDIO works again;\n                         compilation fixes;\n                         fix rounding in unpremultiply;\n                         optimize vertical flip;\n                         disable raw_len validation;\n                         documentation fixes\n      2.15  (2017-03-18) fix png-1,2,4 bug; now all Imagenet JPGs decode;\n                         warning fixes; disable run-time SSE detection on gcc;\n                         uniform handling of optional \"return\" values;\n                         thread-safe initialization of zlib tables\n      2.14  (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs\n      2.13  (2016-11-29) add 16-bit API, only supported for PNG right now\n      2.12  (2016-04-02) fix typo in 2.11 PSD fix that caused crashes\n      2.11  (2016-04-02) allocate large structures on the stack\n                         remove white matting for transparent PSD\n                         fix reported channel count for PNG & BMP\n                         re-enable SSE2 in non-gcc 64-bit\n                         support RGB-formatted JPEG\n                         read 16-bit PNGs (only as 8-bit)\n      2.10  (2016-01-22) avoid warning introduced in 2.09 by STBI_REALLOC_SIZED\n      2.09  (2016-01-16) allow comments in PNM files\n                         16-bit-per-pixel TGA (not bit-per-component)\n                         info() for TGA could break due to .hdr handling\n                         info() for BMP to shares code instead of sloppy parse\n                         can use STBI_REALLOC_SIZED if allocator doesn't support realloc\n                         code cleanup\n      2.08  (2015-09-13) fix to 2.07 cleanup, reading RGB PSD as RGBA\n      2.07  (2015-09-13) fix compiler warnings\n                         partial animated GIF support\n                         limited 16-bpc PSD support\n                         #ifdef unused functions\n                         bug with < 92 byte PIC,PNM,HDR,TGA\n      2.06  (2015-04-19) fix bug where PSD returns wrong '*comp' value\n      2.05  (2015-04-19) fix bug in progressive JPEG handling, fix warning\n      2.04  (2015-04-15) try to re-enable SIMD on MinGW 64-bit\n      2.03  (2015-04-12) extra corruption checking (mmozeiko)\n                         stbi_set_flip_vertically_on_load (nguillemot)\n                         fix NEON support; fix mingw support\n      2.02  (2015-01-19) fix incorrect assert, fix warning\n      2.01  (2015-01-17) fix various warnings; suppress SIMD on gcc 32-bit without -msse2\n      2.00b (2014-12-25) fix STBI_MALLOC in progressive JPEG\n      2.00  (2014-12-25) optimize JPG, including x86 SSE2 & NEON SIMD (ryg)\n                         progressive JPEG (stb)\n                         PGM/PPM support (Ken Miller)\n                         STBI_MALLOC,STBI_REALLOC,STBI_FREE\n                         GIF bugfix -- seemingly never worked\n                         STBI_NO_*, STBI_ONLY_*\n      1.48  (2014-12-14) fix incorrectly-named assert()\n      1.47  (2014-12-14) 1/2/4-bit PNG support, both direct and paletted (Omar Cornut & stb)\n                         optimize PNG (ryg)\n                         fix bug in interlaced PNG with user-specified channel count (stb)\n      1.46  (2014-08-26)\n              fix broken tRNS chunk (colorkey-style transparency) in non-paletted PNG\n      1.45  (2014-08-16)\n              fix MSVC-ARM internal compiler error by wrapping malloc\n      1.44  (2014-08-07)\n              various warning fixes from Ronny Chevalier\n      1.43  (2014-07-15)\n              fix MSVC-only compiler problem in code changed in 1.42\n      1.42  (2014-07-09)\n              don't define _CRT_SECURE_NO_WARNINGS (affects user code)\n              fixes to stbi__cleanup_jpeg path\n              added STBI_ASSERT to avoid requiring assert.h\n      1.41  (2014-06-25)\n              fix search&replace from 1.36 that messed up comments/error messages\n      1.40  (2014-06-22)\n              fix gcc struct-initialization warning\n      1.39  (2014-06-15)\n              fix to TGA optimization when req_comp != number of components in TGA;\n              fix to GIF loading because BMP wasn't rewinding (whoops, no GIFs in my test suite)\n              add support for BMP version 5 (more ignored fields)\n      1.38  (2014-06-06)\n              suppress MSVC warnings on integer casts truncating values\n              fix accidental rename of 'skip' field of I/O\n      1.37  (2014-06-04)\n              remove duplicate typedef\n      1.36  (2014-06-03)\n              convert to header file single-file library\n              if de-iphone isn't set, load iphone images color-swapped instead of returning NULL\n      1.35  (2014-05-27)\n              various warnings\n              fix broken STBI_SIMD path\n              fix bug where stbi_load_from_file no longer left file pointer in correct place\n              fix broken non-easy path for 32-bit BMP (possibly never used)\n              TGA optimization by Arseny Kapoulkine\n      1.34  (unknown)\n              use STBI_NOTUSED in stbi__resample_row_generic(), fix one more leak in tga failure case\n      1.33  (2011-07-14)\n              make stbi_is_hdr work in STBI_NO_HDR (as specified), minor compiler-friendly improvements\n      1.32  (2011-07-13)\n              support for \"info\" function for all supported filetypes (SpartanJ)\n      1.31  (2011-06-20)\n              a few more leak fixes, bug in PNG handling (SpartanJ)\n      1.30  (2011-06-11)\n              added ability to load files via callbacks to accomidate custom input streams (Ben Wenger)\n              removed deprecated format-specific test/load functions\n              removed support for installable file formats (stbi_loader) -- would have been broken for IO callbacks anyway\n              error cases in bmp and tga give messages and don't leak (Raymond Barbiero, grisha)\n              fix inefficiency in decoding 32-bit BMP (David Woo)\n      1.29  (2010-08-16)\n              various warning fixes from Aurelien Pocheville\n      1.28  (2010-08-01)\n              fix bug in GIF palette transparency (SpartanJ)\n      1.27  (2010-08-01)\n              cast-to-stbi_uc to fix warnings\n      1.26  (2010-07-24)\n              fix bug in file buffering for PNG reported by SpartanJ\n      1.25  (2010-07-17)\n              refix trans_data warning (Won Chun)\n      1.24  (2010-07-12)\n              perf improvements reading from files on platforms with lock-heavy fgetc()\n              minor perf improvements for jpeg\n              deprecated type-specific functions so we'll get feedback if they're needed\n              attempt to fix trans_data warning (Won Chun)\n      1.23    fixed bug in iPhone support\n      1.22  (2010-07-10)\n              removed image *writing* support\n              stbi_info support from Jetro Lauha\n              GIF support from Jean-Marc Lienher\n              iPhone PNG-extensions from James Brown\n              warning-fixes from Nicolas Schulz and Janez Zemva (i.stbi__err. Janez (U+017D)emva)\n      1.21    fix use of 'stbi_uc' in header (reported by jon blow)\n      1.20    added support for Softimage PIC, by Tom Seddon\n      1.19    bug in interlaced PNG corruption check (found by ryg)\n      1.18  (2008-08-02)\n              fix a threading bug (local mutable static)\n      1.17    support interlaced PNG\n      1.16    major bugfix - stbi__convert_format converted one too many pixels\n      1.15    initialize some fields for thread safety\n      1.14    fix threadsafe conversion bug\n              header-file-only version (#define STBI_HEADER_FILE_ONLY before including)\n      1.13    threadsafe\n      1.12    const qualifiers in the API\n      1.11    Support installable IDCT, colorspace conversion routines\n      1.10    Fixes for 64-bit (don't use \"unsigned long\")\n              optimized upsampling by Fabian \"ryg\" Giesen\n      1.09    Fix format-conversion for PSD code (bad global variables!)\n      1.08    Thatcher Ulrich's PSD code integrated by Nicolas Schulz\n      1.07    attempt to fix C++ warning/errors again\n      1.06    attempt to fix C++ warning/errors again\n      1.05    fix TGA loading to return correct *comp and use good luminance calc\n      1.04    default float alpha is 1, not 255; use 'void *' for stbi_image_free\n      1.03    bugfixes to STBI_NO_STDIO, STBI_NO_HDR\n      1.02    support for (subset of) HDR files, float interface for preferred access to them\n      1.01    fix bug: possible bug in handling right-side up bmps... not sure\n              fix bug: the stbi__bmp_load() and stbi__tga_load() functions didn't work at all\n      1.00    interface to zlib that skips zlib header\n      0.99    correct handling of alpha in palette\n      0.98    TGA loader by lonesock; dynamically add loaders (untested)\n      0.97    jpeg errors on too large a file; also catch another malloc failure\n      0.96    fix detection of invalid v value - particleman@mollyrocket forum\n      0.95    during header scan, seek to markers in case of padding\n      0.94    STBI_NO_STDIO to disable stdio usage; rename all #defines the same\n      0.93    handle jpegtran output; verbose errors\n      0.92    read 4,8,16,24,32-bit BMP files of several formats\n      0.91    output 24-bit Windows 3.0 BMP files\n      0.90    fix a few more warnings; bump version number to approach 1.0\n      0.61    bugfixes due to Marc LeBlanc, Christopher Lloyd\n      0.60    fix compiling as c++\n      0.59    fix warnings: merge Dave Moore's -Wall fixes\n      0.58    fix bug: zlib uncompressed mode len/nlen was wrong endian\n      0.57    fix bug: jpg last huffman symbol before marker was >9 bits but less than 16 available\n      0.56    fix bug: zlib uncompressed mode len vs. nlen\n      0.55    fix bug: restart_interval not initialized to 0\n      0.54    allow NULL for 'int *comp'\n      0.53    fix bug in png 3->4; speedup png decoding\n      0.52    png handles req_comp=3,4 directly; minor cleanup; jpeg comments\n      0.51    obey req_comp requests, 1-component jpegs return as 1-component,\n              on 'test' only check type, not whether we support this variant\n      0.50  (2006-11-19)\n              first released version\n*/\n\n\n/*\n------------------------------------------------------------------------------\nThis software is available under 2 licenses -- choose whichever you prefer.\n------------------------------------------------------------------------------\nALTERNATIVE A - MIT License\nCopyright (c) 2017 Sean Barrett\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n------------------------------------------------------------------------------\nALTERNATIVE B - Public Domain (www.unlicense.org)\nThis is free and unencumbered software released into the public domain.\nAnyone is free to copy, modify, publish, use, compile, sell, or distribute this\nsoftware, either in source code form or as a compiled binary, for any purpose,\ncommercial or non-commercial, and by any means.\nIn jurisdictions that recognize copyright laws, the author or authors of this\nsoftware dedicate any and all copyright interest in the software to the public\ndomain. We make this dedication for the benefit of the public at large and to\nthe detriment of our heirs and successors. We intend this dedication to be an\novert act of relinquishment in perpetuity of all present and future rights to\nthis software under copyright law.\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\nACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n------------------------------------------------------------------------------\n*/\n"
  },
  {
    "path": "include/version.h",
    "content": "#define YEAR    \"2026\"          // Copyright year\n#define VERSION \"1.44a\"         // Version string\n#define VER_RES 1,44,1,00       // For VERSIONINFO resource\n#define DEFAULT_RAM PAGE_OFFSET+0x2000000 // Initial amount of RAM to allocate\n#if defined __EMSCRIPTEN__\n#define MAXIMUM_RAM 0x03000000  // Maximum amount of RAM to allocate\n#elif UINTPTR_MAX == UINT32_MAX\n#define MAXIMUM_RAM 0x10000000  // Maximum amount of RAM to allocate\n#else\n#define MAXIMUM_RAM 0x100000000LL // Maximum amount of RAM to allocate\n#endif\n"
  },
  {
    "path": "include/zconf.h",
    "content": "/* zconf.h -- configuration of the zlib compression library\n * Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler\n * For conditions of distribution and use, see copyright notice in zlib.h\n */\n\n/* @(#) $Id$ */\n\n#ifndef ZCONF_H\n#define ZCONF_H\n\n/*\n * If you *really* need a unique prefix for all types and library functions,\n * compile with -DZ_PREFIX. The \"standard\" zlib should be compiled without it.\n * Even better than compiling with -DZ_PREFIX would be to use configure to set\n * this permanently in zconf.h using \"./configure --zprefix\".\n */\n#ifdef Z_PREFIX     /* may be set to #if 1 by ./configure */\n#  define Z_PREFIX_SET\n\n/* all linked symbols and init macros */\n#  define _dist_code            z__dist_code\n#  define _length_code          z__length_code\n#  define _tr_align             z__tr_align\n#  define _tr_flush_bits        z__tr_flush_bits\n#  define _tr_flush_block       z__tr_flush_block\n#  define _tr_init              z__tr_init\n#  define _tr_stored_block      z__tr_stored_block\n#  define _tr_tally             z__tr_tally\n#  define adler32               z_adler32\n#  define adler32_combine       z_adler32_combine\n#  define adler32_combine64     z_adler32_combine64\n#  define adler32_z             z_adler32_z\n#  ifndef Z_SOLO\n#    define compress              z_compress\n#    define compress2             z_compress2\n#    define compressBound         z_compressBound\n#  endif\n#  define crc32                 z_crc32\n#  define crc32_combine         z_crc32_combine\n#  define crc32_combine64       z_crc32_combine64\n#  define crc32_z               z_crc32_z\n#  define deflate               z_deflate\n#  define deflateBound          z_deflateBound\n#  define deflateCopy           z_deflateCopy\n#  define deflateEnd            z_deflateEnd\n#  define deflateGetDictionary  z_deflateGetDictionary\n#  define deflateInit           z_deflateInit\n#  define deflateInit2          z_deflateInit2\n#  define deflateInit2_         z_deflateInit2_\n#  define deflateInit_          z_deflateInit_\n#  define deflateParams         z_deflateParams\n#  define deflatePending        z_deflatePending\n#  define deflatePrime          z_deflatePrime\n#  define deflateReset          z_deflateReset\n#  define deflateResetKeep      z_deflateResetKeep\n#  define deflateSetDictionary  z_deflateSetDictionary\n#  define deflateSetHeader      z_deflateSetHeader\n#  define deflateTune           z_deflateTune\n#  define deflate_copyright     z_deflate_copyright\n#  define get_crc_table         z_get_crc_table\n#  ifndef Z_SOLO\n#    define gz_error              z_gz_error\n#    define gz_intmax             z_gz_intmax\n#    define gz_strwinerror        z_gz_strwinerror\n#    define gzbuffer              z_gzbuffer\n#    define gzclearerr            z_gzclearerr\n#    define gzclose               z_gzclose\n#    define gzclose_r             z_gzclose_r\n#    define gzclose_w             z_gzclose_w\n#    define gzdirect              z_gzdirect\n#    define gzdopen               z_gzdopen\n#    define gzeof                 z_gzeof\n#    define gzerror               z_gzerror\n#    define gzflush               z_gzflush\n#    define gzfread               z_gzfread\n#    define gzfwrite              z_gzfwrite\n#    define gzgetc                z_gzgetc\n#    define gzgetc_               z_gzgetc_\n#    define gzgets                z_gzgets\n#    define gzoffset              z_gzoffset\n#    define gzoffset64            z_gzoffset64\n#    define gzopen                z_gzopen\n#    define gzopen64              z_gzopen64\n#    ifdef _WIN32\n#      define gzopen_w              z_gzopen_w\n#    endif\n#    define gzprintf              z_gzprintf\n#    define gzputc                z_gzputc\n#    define gzputs                z_gzputs\n#    define gzread                z_gzread\n#    define gzrewind              z_gzrewind\n#    define gzseek                z_gzseek\n#    define gzseek64              z_gzseek64\n#    define gzsetparams           z_gzsetparams\n#    define gztell                z_gztell\n#    define gztell64              z_gztell64\n#    define gzungetc              z_gzungetc\n#    define gzvprintf             z_gzvprintf\n#    define gzwrite               z_gzwrite\n#  endif\n#  define inflate               z_inflate\n#  define inflateBack           z_inflateBack\n#  define inflateBackEnd        z_inflateBackEnd\n#  define inflateBackInit       z_inflateBackInit\n#  define inflateBackInit_      z_inflateBackInit_\n#  define inflateCodesUsed      z_inflateCodesUsed\n#  define inflateCopy           z_inflateCopy\n#  define inflateEnd            z_inflateEnd\n#  define inflateGetDictionary  z_inflateGetDictionary\n#  define inflateGetHeader      z_inflateGetHeader\n#  define inflateInit           z_inflateInit\n#  define inflateInit2          z_inflateInit2\n#  define inflateInit2_         z_inflateInit2_\n#  define inflateInit_          z_inflateInit_\n#  define inflateMark           z_inflateMark\n#  define inflatePrime          z_inflatePrime\n#  define inflateReset          z_inflateReset\n#  define inflateReset2         z_inflateReset2\n#  define inflateResetKeep      z_inflateResetKeep\n#  define inflateSetDictionary  z_inflateSetDictionary\n#  define inflateSync           z_inflateSync\n#  define inflateSyncPoint      z_inflateSyncPoint\n#  define inflateUndermine      z_inflateUndermine\n#  define inflateValidate       z_inflateValidate\n#  define inflate_copyright     z_inflate_copyright\n#  define inflate_fast          z_inflate_fast\n#  define inflate_table         z_inflate_table\n#  ifndef Z_SOLO\n#    define uncompress            z_uncompress\n#    define uncompress2           z_uncompress2\n#  endif\n#  define zError                z_zError\n#  ifndef Z_SOLO\n#    define zcalloc               z_zcalloc\n#    define zcfree                z_zcfree\n#  endif\n#  define zlibCompileFlags      z_zlibCompileFlags\n#  define zlibVersion           z_zlibVersion\n\n/* all zlib typedefs in zlib.h and zconf.h */\n#  define Byte                  z_Byte\n#  define Bytef                 z_Bytef\n#  define alloc_func            z_alloc_func\n#  define charf                 z_charf\n#  define free_func             z_free_func\n#  ifndef Z_SOLO\n#    define gzFile                z_gzFile\n#  endif\n#  define gz_header             z_gz_header\n#  define gz_headerp            z_gz_headerp\n#  define in_func               z_in_func\n#  define intf                  z_intf\n#  define out_func              z_out_func\n#  define uInt                  z_uInt\n#  define uIntf                 z_uIntf\n#  define uLong                 z_uLong\n#  define uLongf                z_uLongf\n#  define voidp                 z_voidp\n#  define voidpc                z_voidpc\n#  define voidpf                z_voidpf\n\n/* all zlib structs in zlib.h and zconf.h */\n#  define gz_header_s           z_gz_header_s\n#  define internal_state        z_internal_state\n\n#endif\n\n#if defined(__MSDOS__) && !defined(MSDOS)\n#  define MSDOS\n#endif\n#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2)\n#  define OS2\n#endif\n#if defined(_WINDOWS) && !defined(WINDOWS)\n#  define WINDOWS\n#endif\n#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__)\n#  ifndef WIN32\n#    define WIN32\n#  endif\n#endif\n#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32)\n#  if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__)\n#    ifndef SYS16BIT\n#      define SYS16BIT\n#    endif\n#  endif\n#endif\n\n/*\n * Compile with -DMAXSEG_64K if the alloc function cannot allocate more\n * than 64k bytes at a time (needed on systems with 16-bit int).\n */\n#ifdef SYS16BIT\n#  define MAXSEG_64K\n#endif\n#ifdef MSDOS\n#  define UNALIGNED_OK\n#endif\n\n#ifdef __STDC_VERSION__\n#  ifndef STDC\n#    define STDC\n#  endif\n#  if __STDC_VERSION__ >= 199901L\n#    ifndef STDC99\n#      define STDC99\n#    endif\n#  endif\n#endif\n#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus))\n#  define STDC\n#endif\n#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__))\n#  define STDC\n#endif\n#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32))\n#  define STDC\n#endif\n#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__))\n#  define STDC\n#endif\n\n#if defined(__OS400__) && !defined(STDC)    /* iSeries (formerly AS/400). */\n#  define STDC\n#endif\n\n#ifndef STDC\n#  ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */\n#    define const       /* note: need a more gentle solution here */\n#  endif\n#endif\n\n#if defined(ZLIB_CONST) && !defined(z_const)\n#  define z_const const\n#else\n#  define z_const\n#endif\n\n#ifdef Z_SOLO\n   typedef unsigned long z_size_t;\n#else\n#  define z_longlong long long\n#  if defined(NO_SIZE_T)\n     typedef unsigned NO_SIZE_T z_size_t;\n#  elif defined(STDC)\n#    include <stddef.h>\n     typedef size_t z_size_t;\n#  else\n     typedef unsigned long z_size_t;\n#  endif\n#  undef z_longlong\n#endif\n\n/* Maximum value for memLevel in deflateInit2 */\n#ifndef MAX_MEM_LEVEL\n#  ifdef MAXSEG_64K\n#    define MAX_MEM_LEVEL 8\n#  else\n#    define MAX_MEM_LEVEL 9\n#  endif\n#endif\n\n/* Maximum value for windowBits in deflateInit2 and inflateInit2.\n * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files\n * created by gzip. (Files created by minigzip can still be extracted by\n * gzip.)\n */\n#ifndef MAX_WBITS\n#  define MAX_WBITS   15 /* 32K LZ77 window */\n#endif\n\n/* The memory requirements for deflate are (in bytes):\n            (1 << (windowBits+2)) +  (1 << (memLevel+9))\n that is: 128K for windowBits=15  +  128K for memLevel = 8  (default values)\n plus a few kilobytes for small objects. For example, if you want to reduce\n the default memory requirements from 256K to 128K, compile with\n     make CFLAGS=\"-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7\"\n Of course this will generally degrade compression (there's no free lunch).\n\n   The memory requirements for inflate are (in bytes) 1 << windowBits\n that is, 32K for windowBits=15 (default value) plus about 7 kilobytes\n for small objects.\n*/\n\n                        /* Type declarations */\n\n#ifndef OF /* function prototypes */\n#  ifdef STDC\n#    define OF(args)  args\n#  else\n#    define OF(args)  ()\n#  endif\n#endif\n\n#ifndef Z_ARG /* function prototypes for stdarg */\n#  if defined(STDC) || defined(Z_HAVE_STDARG_H)\n#    define Z_ARG(args)  args\n#  else\n#    define Z_ARG(args)  ()\n#  endif\n#endif\n\n/* The following definitions for FAR are needed only for MSDOS mixed\n * model programming (small or medium model with some far allocations).\n * This was tested only with MSC; for other MSDOS compilers you may have\n * to define NO_MEMCPY in zutil.h.  If you don't need the mixed model,\n * just define FAR to be empty.\n */\n#ifdef SYS16BIT\n#  if defined(M_I86SM) || defined(M_I86MM)\n     /* MSC small or medium model */\n#    define SMALL_MEDIUM\n#    ifdef _MSC_VER\n#      define FAR _far\n#    else\n#      define FAR far\n#    endif\n#  endif\n#  if (defined(__SMALL__) || defined(__MEDIUM__))\n     /* Turbo C small or medium model */\n#    define SMALL_MEDIUM\n#    ifdef __BORLANDC__\n#      define FAR _far\n#    else\n#      define FAR far\n#    endif\n#  endif\n#endif\n\n#if defined(WINDOWS) || defined(WIN32)\n   /* If building or using zlib as a DLL, define ZLIB_DLL.\n    * This is not mandatory, but it offers a little performance increase.\n    */\n#  ifdef ZLIB_DLL\n#    if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500))\n#      ifdef ZLIB_INTERNAL\n#        define ZEXTERN extern __declspec(dllexport)\n#      else\n#        define ZEXTERN extern __declspec(dllimport)\n#      endif\n#    endif\n#  endif  /* ZLIB_DLL */\n   /* If building or using zlib with the WINAPI/WINAPIV calling convention,\n    * define ZLIB_WINAPI.\n    * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI.\n    */\n#  ifdef ZLIB_WINAPI\n#    ifdef FAR\n#      undef FAR\n#    endif\n#    include <windows.h>\n     /* No need for _export, use ZLIB.DEF instead. */\n     /* For complete Windows compatibility, use WINAPI, not __stdcall. */\n#    define ZEXPORT WINAPI\n#    ifdef WIN32\n#      define ZEXPORTVA WINAPIV\n#    else\n#      define ZEXPORTVA FAR CDECL\n#    endif\n#  endif\n#endif\n\n#if defined (__BEOS__)\n#  ifdef ZLIB_DLL\n#    ifdef ZLIB_INTERNAL\n#      define ZEXPORT   __declspec(dllexport)\n#      define ZEXPORTVA __declspec(dllexport)\n#    else\n#      define ZEXPORT   __declspec(dllimport)\n#      define ZEXPORTVA __declspec(dllimport)\n#    endif\n#  endif\n#endif\n\n#ifndef ZEXTERN\n#  define ZEXTERN extern\n#endif\n#ifndef ZEXPORT\n#  define ZEXPORT\n#endif\n#ifndef ZEXPORTVA\n#  define ZEXPORTVA\n#endif\n\n#ifndef FAR\n#  define FAR\n#endif\n\n#if !defined(__MACTYPES__)\ntypedef unsigned char  Byte;  /* 8 bits */\n#endif\ntypedef unsigned int   uInt;  /* 16 bits or more */\ntypedef unsigned long  uLong; /* 32 bits or more */\n\n#ifdef SMALL_MEDIUM\n   /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */\n#  define Bytef Byte FAR\n#else\n   typedef Byte  FAR Bytef;\n#endif\ntypedef char  FAR charf;\ntypedef int   FAR intf;\ntypedef uInt  FAR uIntf;\ntypedef uLong FAR uLongf;\n\n#ifdef STDC\n   typedef void const *voidpc;\n   typedef void FAR   *voidpf;\n   typedef void       *voidp;\n#else\n   typedef Byte const *voidpc;\n   typedef Byte FAR   *voidpf;\n   typedef Byte       *voidp;\n#endif\n\n#if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC)\n#  include <limits.h>\n#  if (UINT_MAX == 0xffffffffUL)\n#    define Z_U4 unsigned\n#  elif (ULONG_MAX == 0xffffffffUL)\n#    define Z_U4 unsigned long\n#  elif (USHRT_MAX == 0xffffffffUL)\n#    define Z_U4 unsigned short\n#  endif\n#endif\n\n#ifdef Z_U4\n   typedef Z_U4 z_crc_t;\n#else\n   typedef unsigned long z_crc_t;\n#endif\n\n#if 1    /* was set to #if 1 by ./configure */\n#  define Z_HAVE_UNISTD_H\n#endif\n\n#if 1    /* was set to #if 1 by ./configure */\n#  define Z_HAVE_STDARG_H\n#endif\n\n#ifdef STDC\n#  ifndef Z_SOLO\n#    include <sys/types.h>      /* for off_t */\n#  endif\n#endif\n\n#if defined(STDC) || defined(Z_HAVE_STDARG_H)\n#  ifndef Z_SOLO\n#    include <stdarg.h>         /* for va_list */\n#  endif\n#endif\n\n#ifdef _WIN32\n#  ifndef Z_SOLO\n#    include <stddef.h>         /* for wchar_t */\n#  endif\n#endif\n\n/* a little trick to accommodate both \"#define _LARGEFILE64_SOURCE\" and\n * \"#define _LARGEFILE64_SOURCE 1\" as requesting 64-bit operations, (even\n * though the former does not conform to the LFS document), but considering\n * both \"#undef _LARGEFILE64_SOURCE\" and \"#define _LARGEFILE64_SOURCE 0\" as\n * equivalently requesting no 64-bit operations\n */\n#if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1\n#  undef _LARGEFILE64_SOURCE\n#endif\n\n#if defined(__WATCOMC__) && !defined(Z_HAVE_UNISTD_H)\n#  define Z_HAVE_UNISTD_H\n#endif\n#ifndef Z_SOLO\n#  if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE)\n#    include <unistd.h>         /* for SEEK_*, off_t, and _LFS64_LARGEFILE */\n#    ifdef VMS\n#      include <unixio.h>       /* for off_t */\n#    endif\n#    ifndef z_off_t\n#      define z_off_t off_t\n#    endif\n#  endif\n#endif\n\n#if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0\n#  define Z_LFS64\n#endif\n\n#if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64)\n#  define Z_LARGE64\n#endif\n\n#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64)\n#  define Z_WANT64\n#endif\n\n#if !defined(SEEK_SET) && !defined(Z_SOLO)\n#  define SEEK_SET        0       /* Seek from beginning of file.  */\n#  define SEEK_CUR        1       /* Seek from current position.  */\n#  define SEEK_END        2       /* Set file pointer to EOF plus \"offset\" */\n#endif\n\n#ifndef z_off_t\n#  define z_off_t long\n#endif\n\n#if (defined(_WIN32) && defined(__GNUC__) && defined(_LARGEFILE64_SOURCE)) || defined(Z_LARGE64)\n#  define z_off64_t off64_t\n#else\n#  if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO)\n#    define z_off64_t __int64\n#  else\n#    define z_off64_t z_off_t\n#  endif\n#endif\n\n/* MVS linker does not support external names larger than 8 bytes */\n#if defined(__MVS__)\n  #pragma map(deflateInit_,\"DEIN\")\n  #pragma map(deflateInit2_,\"DEIN2\")\n  #pragma map(deflateEnd,\"DEEND\")\n  #pragma map(deflateBound,\"DEBND\")\n  #pragma map(inflateInit_,\"ININ\")\n  #pragma map(inflateInit2_,\"ININ2\")\n  #pragma map(inflateEnd,\"INEND\")\n  #pragma map(inflateSync,\"INSY\")\n  #pragma map(inflateSetDictionary,\"INSEDI\")\n  #pragma map(compressBound,\"CMBND\")\n  #pragma map(inflate_table,\"INTABL\")\n  #pragma map(inflate_fast,\"INFA\")\n  #pragma map(inflate_copyright,\"INCOPY\")\n#endif\n\n#endif /* ZCONF_H */\n"
  },
  {
    "path": "include/zlib.h",
    "content": "/* zlib.h -- interface of the 'zlib' general purpose compression library\n  version 1.2.11, January 15th, 2017\n\n  Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler\n\n  This software is provided 'as-is', without any express or implied\n  warranty.  In no event will the authors be held liable for any damages\n  arising from the use of this software.\n\n  Permission is granted to anyone to use this software for any purpose,\n  including commercial applications, and to alter it and redistribute it\n  freely, subject to the following restrictions:\n\n  1. The origin of this software must not be misrepresented; you must not\n     claim that you wrote the original software. If you use this software\n     in a product, an acknowledgment in the product documentation would be\n     appreciated but is not required.\n  2. Altered source versions must be plainly marked as such, and must not be\n     misrepresented as being the original software.\n  3. This notice may not be removed or altered from any source distribution.\n\n  Jean-loup Gailly        Mark Adler\n  jloup@gzip.org          madler@alumni.caltech.edu\n\n\n  The data format used by the zlib library is described by RFCs (Request for\n  Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950\n  (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format).\n*/\n\n#ifndef ZLIB_H\n#define ZLIB_H\n\n#include \"zconf.h\"\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#define ZLIB_VERSION \"1.2.11\"\n#define ZLIB_VERNUM 0x12b0\n#define ZLIB_VER_MAJOR 1\n#define ZLIB_VER_MINOR 2\n#define ZLIB_VER_REVISION 11\n#define ZLIB_VER_SUBREVISION 0\n\n/*\n    The 'zlib' compression library provides in-memory compression and\n  decompression functions, including integrity checks of the uncompressed data.\n  This version of the library supports only one compression method (deflation)\n  but other algorithms will be added later and will have the same stream\n  interface.\n\n    Compression can be done in a single step if the buffers are large enough,\n  or can be done by repeated calls of the compression function.  In the latter\n  case, the application must provide more input and/or consume the output\n  (providing more output space) before each call.\n\n    The compressed data format used by default by the in-memory functions is\n  the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped\n  around a deflate stream, which is itself documented in RFC 1951.\n\n    The library also supports reading and writing files in gzip (.gz) format\n  with an interface similar to that of stdio using the functions that start\n  with \"gz\".  The gzip format is different from the zlib format.  gzip is a\n  gzip wrapper, documented in RFC 1952, wrapped around a deflate stream.\n\n    This library can optionally read and write gzip and raw deflate streams in\n  memory as well.\n\n    The zlib format was designed to be compact and fast for use in memory\n  and on communications channels.  The gzip format was designed for single-\n  file compression on file systems, has a larger header than zlib to maintain\n  directory information, and uses a different, slower check method than zlib.\n\n    The library does not install any signal handler.  The decoder checks\n  the consistency of the compressed data, so the library should never crash\n  even in the case of corrupted input.\n*/\n\ntypedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size));\ntypedef void   (*free_func)  OF((voidpf opaque, voidpf address));\n\nstruct internal_state;\n\ntypedef struct z_stream_s {\n    z_const Bytef *next_in;     /* next input byte */\n    uInt     avail_in;  /* number of bytes available at next_in */\n    uLong    total_in;  /* total number of input bytes read so far */\n\n    Bytef    *next_out; /* next output byte will go here */\n    uInt     avail_out; /* remaining free space at next_out */\n    uLong    total_out; /* total number of bytes output so far */\n\n    z_const char *msg;  /* last error message, NULL if no error */\n    struct internal_state FAR *state; /* not visible by applications */\n\n    alloc_func zalloc;  /* used to allocate the internal state */\n    free_func  zfree;   /* used to free the internal state */\n    voidpf     opaque;  /* private data object passed to zalloc and zfree */\n\n    int     data_type;  /* best guess about the data type: binary or text\n                           for deflate, or the decoding state for inflate */\n    uLong   adler;      /* Adler-32 or CRC-32 value of the uncompressed data */\n    uLong   reserved;   /* reserved for future use */\n} z_stream;\n\ntypedef z_stream FAR *z_streamp;\n\n/*\n     gzip header information passed to and from zlib routines.  See RFC 1952\n  for more details on the meanings of these fields.\n*/\ntypedef struct gz_header_s {\n    int     text;       /* true if compressed data believed to be text */\n    uLong   time;       /* modification time */\n    int     xflags;     /* extra flags (not used when writing a gzip file) */\n    int     os;         /* operating system */\n    Bytef   *extra;     /* pointer to extra field or Z_NULL if none */\n    uInt    extra_len;  /* extra field length (valid if extra != Z_NULL) */\n    uInt    extra_max;  /* space at extra (only when reading header) */\n    Bytef   *name;      /* pointer to zero-terminated file name or Z_NULL */\n    uInt    name_max;   /* space at name (only when reading header) */\n    Bytef   *comment;   /* pointer to zero-terminated comment or Z_NULL */\n    uInt    comm_max;   /* space at comment (only when reading header) */\n    int     hcrc;       /* true if there was or will be a header crc */\n    int     done;       /* true when done reading gzip header (not used\n                           when writing a gzip file) */\n} gz_header;\n\ntypedef gz_header FAR *gz_headerp;\n\n/*\n     The application must update next_in and avail_in when avail_in has dropped\n   to zero.  It must update next_out and avail_out when avail_out has dropped\n   to zero.  The application must initialize zalloc, zfree and opaque before\n   calling the init function.  All other fields are set by the compression\n   library and must not be updated by the application.\n\n     The opaque value provided by the application will be passed as the first\n   parameter for calls of zalloc and zfree.  This can be useful for custom\n   memory management.  The compression library attaches no meaning to the\n   opaque value.\n\n     zalloc must return Z_NULL if there is not enough memory for the object.\n   If zlib is used in a multi-threaded application, zalloc and zfree must be\n   thread safe.  In that case, zlib is thread-safe.  When zalloc and zfree are\n   Z_NULL on entry to the initialization function, they are set to internal\n   routines that use the standard library functions malloc() and free().\n\n     On 16-bit systems, the functions zalloc and zfree must be able to allocate\n   exactly 65536 bytes, but will not be required to allocate more than this if\n   the symbol MAXSEG_64K is defined (see zconf.h).  WARNING: On MSDOS, pointers\n   returned by zalloc for objects of exactly 65536 bytes *must* have their\n   offset normalized to zero.  The default allocation function provided by this\n   library ensures this (see zutil.c).  To reduce memory requirements and avoid\n   any allocation of 64K objects, at the expense of compression ratio, compile\n   the library with -DMAX_WBITS=14 (see zconf.h).\n\n     The fields total_in and total_out can be used for statistics or progress\n   reports.  After compression, total_in holds the total size of the\n   uncompressed data and may be saved for use by the decompressor (particularly\n   if the decompressor wants to decompress everything in a single step).\n*/\n\n                        /* constants */\n\n#define Z_NO_FLUSH      0\n#define Z_PARTIAL_FLUSH 1\n#define Z_SYNC_FLUSH    2\n#define Z_FULL_FLUSH    3\n#define Z_FINISH        4\n#define Z_BLOCK         5\n#define Z_TREES         6\n/* Allowed flush values; see deflate() and inflate() below for details */\n\n#define Z_OK            0\n#define Z_STREAM_END    1\n#define Z_NEED_DICT     2\n#define Z_ERRNO        (-1)\n#define Z_STREAM_ERROR (-2)\n#define Z_DATA_ERROR   (-3)\n#define Z_MEM_ERROR    (-4)\n#define Z_BUF_ERROR    (-5)\n#define Z_VERSION_ERROR (-6)\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n\n#define Z_NO_COMPRESSION         0\n#define Z_BEST_SPEED             1\n#define Z_BEST_COMPRESSION       9\n#define Z_DEFAULT_COMPRESSION  (-1)\n/* compression levels */\n\n#define Z_FILTERED            1\n#define Z_HUFFMAN_ONLY        2\n#define Z_RLE                 3\n#define Z_FIXED               4\n#define Z_DEFAULT_STRATEGY    0\n/* compression strategy; see deflateInit2() below for details */\n\n#define Z_BINARY   0\n#define Z_TEXT     1\n#define Z_ASCII    Z_TEXT   /* for compatibility with 1.2.2 and earlier */\n#define Z_UNKNOWN  2\n/* Possible values of the data_type field for deflate() */\n\n#define Z_DEFLATED   8\n/* The deflate compression method (the only one supported in this version) */\n\n#define Z_NULL  0  /* for initializing zalloc, zfree, opaque */\n\n#define zlib_version zlibVersion()\n/* for compatibility with versions < 1.0.2 */\n\n\n                        /* basic functions */\n\nZEXTERN const char * ZEXPORT zlibVersion OF((void));\n/* The application can compare zlibVersion and ZLIB_VERSION for consistency.\n   If the first character differs, the library code actually used is not\n   compatible with the zlib.h header file used by the application.  This check\n   is automatically made by deflateInit and inflateInit.\n */\n\n/*\nZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level));\n\n     Initializes the internal stream state for compression.  The fields\n   zalloc, zfree and opaque must be initialized before by the caller.  If\n   zalloc and zfree are set to Z_NULL, deflateInit updates them to use default\n   allocation functions.\n\n     The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9:\n   1 gives best speed, 9 gives best compression, 0 gives no compression at all\n   (the input data is simply copied a block at a time).  Z_DEFAULT_COMPRESSION\n   requests a default compromise between speed and compression (currently\n   equivalent to level 6).\n\n     deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough\n   memory, Z_STREAM_ERROR if level is not a valid compression level, or\n   Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible\n   with the version assumed by the caller (ZLIB_VERSION).  msg is set to null\n   if there is no error message.  deflateInit does not perform any compression:\n   this will be done by deflate().\n*/\n\n\nZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush));\n/*\n    deflate compresses as much data as possible, and stops when the input\n  buffer becomes empty or the output buffer becomes full.  It may introduce\n  some output latency (reading input without producing any output) except when\n  forced to flush.\n\n    The detailed semantics are as follows.  deflate performs one or both of the\n  following actions:\n\n  - Compress more input starting at next_in and update next_in and avail_in\n    accordingly.  If not all input can be processed (because there is not\n    enough room in the output buffer), next_in and avail_in are updated and\n    processing will resume at this point for the next call of deflate().\n\n  - Generate more output starting at next_out and update next_out and avail_out\n    accordingly.  This action is forced if the parameter flush is non zero.\n    Forcing flush frequently degrades the compression ratio, so this parameter\n    should be set only when necessary.  Some output may be provided even if\n    flush is zero.\n\n    Before the call of deflate(), the application should ensure that at least\n  one of the actions is possible, by providing more input and/or consuming more\n  output, and updating avail_in or avail_out accordingly; avail_out should\n  never be zero before the call.  The application can consume the compressed\n  output when it wants, for example when the output buffer is full (avail_out\n  == 0), or after each call of deflate().  If deflate returns Z_OK and with\n  zero avail_out, it must be called again after making room in the output\n  buffer because there might be more output pending. See deflatePending(),\n  which can be used if desired to determine whether or not there is more ouput\n  in that case.\n\n    Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to\n  decide how much data to accumulate before producing output, in order to\n  maximize compression.\n\n    If the parameter flush is set to Z_SYNC_FLUSH, all pending output is\n  flushed to the output buffer and the output is aligned on a byte boundary, so\n  that the decompressor can get all input data available so far.  (In\n  particular avail_in is zero after the call if enough output space has been\n  provided before the call.) Flushing may degrade compression for some\n  compression algorithms and so it should be used only when necessary.  This\n  completes the current deflate block and follows it with an empty stored block\n  that is three bits plus filler bits to the next byte, followed by four bytes\n  (00 00 ff ff).\n\n    If flush is set to Z_PARTIAL_FLUSH, all pending output is flushed to the\n  output buffer, but the output is not aligned to a byte boundary.  All of the\n  input data so far will be available to the decompressor, as for Z_SYNC_FLUSH.\n  This completes the current deflate block and follows it with an empty fixed\n  codes block that is 10 bits long.  This assures that enough bytes are output\n  in order for the decompressor to finish the block before the empty fixed\n  codes block.\n\n    If flush is set to Z_BLOCK, a deflate block is completed and emitted, as\n  for Z_SYNC_FLUSH, but the output is not aligned on a byte boundary, and up to\n  seven bits of the current block are held to be written as the next byte after\n  the next deflate block is completed.  In this case, the decompressor may not\n  be provided enough bits at this point in order to complete decompression of\n  the data provided so far to the compressor.  It may need to wait for the next\n  block to be emitted.  This is for advanced applications that need to control\n  the emission of deflate blocks.\n\n    If flush is set to Z_FULL_FLUSH, all output is flushed as with\n  Z_SYNC_FLUSH, and the compression state is reset so that decompression can\n  restart from this point if previous compressed data has been damaged or if\n  random access is desired.  Using Z_FULL_FLUSH too often can seriously degrade\n  compression.\n\n    If deflate returns with avail_out == 0, this function must be called again\n  with the same value of the flush parameter and more output space (updated\n  avail_out), until the flush is complete (deflate returns with non-zero\n  avail_out).  In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that\n  avail_out is greater than six to avoid repeated flush markers due to\n  avail_out == 0 on return.\n\n    If the parameter flush is set to Z_FINISH, pending input is processed,\n  pending output is flushed and deflate returns with Z_STREAM_END if there was\n  enough output space.  If deflate returns with Z_OK or Z_BUF_ERROR, this\n  function must be called again with Z_FINISH and more output space (updated\n  avail_out) but no more input data, until it returns with Z_STREAM_END or an\n  error.  After deflate has returned Z_STREAM_END, the only possible operations\n  on the stream are deflateReset or deflateEnd.\n\n    Z_FINISH can be used in the first deflate call after deflateInit if all the\n  compression is to be done in a single step.  In order to complete in one\n  call, avail_out must be at least the value returned by deflateBound (see\n  below).  Then deflate is guaranteed to return Z_STREAM_END.  If not enough\n  output space is provided, deflate will not return Z_STREAM_END, and it must\n  be called again as described above.\n\n    deflate() sets strm->adler to the Adler-32 checksum of all input read\n  so far (that is, total_in bytes).  If a gzip stream is being generated, then\n  strm->adler will be the CRC-32 checksum of the input read so far.  (See\n  deflateInit2 below.)\n\n    deflate() may update strm->data_type if it can make a good guess about\n  the input data type (Z_BINARY or Z_TEXT).  If in doubt, the data is\n  considered binary.  This field is only for information purposes and does not\n  affect the compression algorithm in any manner.\n\n    deflate() returns Z_OK if some progress has been made (more input\n  processed or more output produced), Z_STREAM_END if all input has been\n  consumed and all output has been produced (only when flush is set to\n  Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example\n  if next_in or next_out was Z_NULL or the state was inadvertently written over\n  by the application), or Z_BUF_ERROR if no progress is possible (for example\n  avail_in or avail_out was zero).  Note that Z_BUF_ERROR is not fatal, and\n  deflate() can be called again with more input and more output space to\n  continue compressing.\n*/\n\n\nZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm));\n/*\n     All dynamically allocated data structures for this stream are freed.\n   This function discards any unprocessed input and does not flush any pending\n   output.\n\n     deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the\n   stream state was inconsistent, Z_DATA_ERROR if the stream was freed\n   prematurely (some input or output was discarded).  In the error case, msg\n   may be set but then points to a static string (which must not be\n   deallocated).\n*/\n\n\n/*\nZEXTERN int ZEXPORT inflateInit OF((z_streamp strm));\n\n     Initializes the internal stream state for decompression.  The fields\n   next_in, avail_in, zalloc, zfree and opaque must be initialized before by\n   the caller.  In the current version of inflate, the provided input is not\n   read or consumed.  The allocation of a sliding window will be deferred to\n   the first call of inflate (if the decompression does not complete on the\n   first call).  If zalloc and zfree are set to Z_NULL, inflateInit updates\n   them to use default allocation functions.\n\n     inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough\n   memory, Z_VERSION_ERROR if the zlib library version is incompatible with the\n   version assumed by the caller, or Z_STREAM_ERROR if the parameters are\n   invalid, such as a null pointer to the structure.  msg is set to null if\n   there is no error message.  inflateInit does not perform any decompression.\n   Actual decompression will be done by inflate().  So next_in, and avail_in,\n   next_out, and avail_out are unused and unchanged.  The current\n   implementation of inflateInit() does not process any header information --\n   that is deferred until inflate() is called.\n*/\n\n\nZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush));\n/*\n    inflate decompresses as much data as possible, and stops when the input\n  buffer becomes empty or the output buffer becomes full.  It may introduce\n  some output latency (reading input without producing any output) except when\n  forced to flush.\n\n  The detailed semantics are as follows.  inflate performs one or both of the\n  following actions:\n\n  - Decompress more input starting at next_in and update next_in and avail_in\n    accordingly.  If not all input can be processed (because there is not\n    enough room in the output buffer), then next_in and avail_in are updated\n    accordingly, and processing will resume at this point for the next call of\n    inflate().\n\n  - Generate more output starting at next_out and update next_out and avail_out\n    accordingly.  inflate() provides as much output as possible, until there is\n    no more input data or no more space in the output buffer (see below about\n    the flush parameter).\n\n    Before the call of inflate(), the application should ensure that at least\n  one of the actions is possible, by providing more input and/or consuming more\n  output, and updating the next_* and avail_* values accordingly.  If the\n  caller of inflate() does not provide both available input and available\n  output space, it is possible that there will be no progress made.  The\n  application can consume the uncompressed output when it wants, for example\n  when the output buffer is full (avail_out == 0), or after each call of\n  inflate().  If inflate returns Z_OK and with zero avail_out, it must be\n  called again after making room in the output buffer because there might be\n  more output pending.\n\n    The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH, Z_FINISH,\n  Z_BLOCK, or Z_TREES.  Z_SYNC_FLUSH requests that inflate() flush as much\n  output as possible to the output buffer.  Z_BLOCK requests that inflate()\n  stop if and when it gets to the next deflate block boundary.  When decoding\n  the zlib or gzip format, this will cause inflate() to return immediately\n  after the header and before the first block.  When doing a raw inflate,\n  inflate() will go ahead and process the first block, and will return when it\n  gets to the end of that block, or when it runs out of data.\n\n    The Z_BLOCK option assists in appending to or combining deflate streams.\n  To assist in this, on return inflate() always sets strm->data_type to the\n  number of unused bits in the last byte taken from strm->next_in, plus 64 if\n  inflate() is currently decoding the last block in the deflate stream, plus\n  128 if inflate() returned immediately after decoding an end-of-block code or\n  decoding the complete header up to just before the first byte of the deflate\n  stream.  The end-of-block will not be indicated until all of the uncompressed\n  data from that block has been written to strm->next_out.  The number of\n  unused bits may in general be greater than seven, except when bit 7 of\n  data_type is set, in which case the number of unused bits will be less than\n  eight.  data_type is set as noted here every time inflate() returns for all\n  flush options, and so can be used to determine the amount of currently\n  consumed input in bits.\n\n    The Z_TREES option behaves as Z_BLOCK does, but it also returns when the\n  end of each deflate block header is reached, before any actual data in that\n  block is decoded.  This allows the caller to determine the length of the\n  deflate block header for later use in random access within a deflate block.\n  256 is added to the value of strm->data_type when inflate() returns\n  immediately after reaching the end of the deflate block header.\n\n    inflate() should normally be called until it returns Z_STREAM_END or an\n  error.  However if all decompression is to be performed in a single step (a\n  single call of inflate), the parameter flush should be set to Z_FINISH.  In\n  this case all pending input is processed and all pending output is flushed;\n  avail_out must be large enough to hold all of the uncompressed data for the\n  operation to complete.  (The size of the uncompressed data may have been\n  saved by the compressor for this purpose.)  The use of Z_FINISH is not\n  required to perform an inflation in one step.  However it may be used to\n  inform inflate that a faster approach can be used for the single inflate()\n  call.  Z_FINISH also informs inflate to not maintain a sliding window if the\n  stream completes, which reduces inflate's memory footprint.  If the stream\n  does not complete, either because not all of the stream is provided or not\n  enough output space is provided, then a sliding window will be allocated and\n  inflate() can be called again to continue the operation as if Z_NO_FLUSH had\n  been used.\n\n     In this implementation, inflate() always flushes as much output as\n  possible to the output buffer, and always uses the faster approach on the\n  first call.  So the effects of the flush parameter in this implementation are\n  on the return value of inflate() as noted below, when inflate() returns early\n  when Z_BLOCK or Z_TREES is used, and when inflate() avoids the allocation of\n  memory for a sliding window when Z_FINISH is used.\n\n     If a preset dictionary is needed after this call (see inflateSetDictionary\n  below), inflate sets strm->adler to the Adler-32 checksum of the dictionary\n  chosen by the compressor and returns Z_NEED_DICT; otherwise it sets\n  strm->adler to the Adler-32 checksum of all output produced so far (that is,\n  total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described\n  below.  At the end of the stream, inflate() checks that its computed Adler-32\n  checksum is equal to that saved by the compressor and returns Z_STREAM_END\n  only if the checksum is correct.\n\n    inflate() can decompress and check either zlib-wrapped or gzip-wrapped\n  deflate data.  The header type is detected automatically, if requested when\n  initializing with inflateInit2().  Any information contained in the gzip\n  header is not retained unless inflateGetHeader() is used.  When processing\n  gzip-wrapped deflate data, strm->adler32 is set to the CRC-32 of the output\n  produced so far.  The CRC-32 is checked against the gzip trailer, as is the\n  uncompressed length, modulo 2^32.\n\n    inflate() returns Z_OK if some progress has been made (more input processed\n  or more output produced), Z_STREAM_END if the end of the compressed data has\n  been reached and all uncompressed output has been produced, Z_NEED_DICT if a\n  preset dictionary is needed at this point, Z_DATA_ERROR if the input data was\n  corrupted (input stream not conforming to the zlib format or incorrect check\n  value, in which case strm->msg points to a string with a more specific\n  error), Z_STREAM_ERROR if the stream structure was inconsistent (for example\n  next_in or next_out was Z_NULL, or the state was inadvertently written over\n  by the application), Z_MEM_ERROR if there was not enough memory, Z_BUF_ERROR\n  if no progress was possible or if there was not enough room in the output\n  buffer when Z_FINISH is used.  Note that Z_BUF_ERROR is not fatal, and\n  inflate() can be called again with more input and more output space to\n  continue decompressing.  If Z_DATA_ERROR is returned, the application may\n  then call inflateSync() to look for a good compression block if a partial\n  recovery of the data is to be attempted.\n*/\n\n\nZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm));\n/*\n     All dynamically allocated data structures for this stream are freed.\n   This function discards any unprocessed input and does not flush any pending\n   output.\n\n     inflateEnd returns Z_OK if success, or Z_STREAM_ERROR if the stream state\n   was inconsistent.\n*/\n\n\n                        /* Advanced functions */\n\n/*\n    The following functions are needed only in some special applications.\n*/\n\n/*\nZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm,\n                                     int  level,\n                                     int  method,\n                                     int  windowBits,\n                                     int  memLevel,\n                                     int  strategy));\n\n     This is another version of deflateInit with more compression options.  The\n   fields next_in, zalloc, zfree and opaque must be initialized before by the\n   caller.\n\n     The method parameter is the compression method.  It must be Z_DEFLATED in\n   this version of the library.\n\n     The windowBits parameter is the base two logarithm of the window size\n   (the size of the history buffer).  It should be in the range 8..15 for this\n   version of the library.  Larger values of this parameter result in better\n   compression at the expense of memory usage.  The default value is 15 if\n   deflateInit is used instead.\n\n     For the current implementation of deflate(), a windowBits value of 8 (a\n   window size of 256 bytes) is not supported.  As a result, a request for 8\n   will result in 9 (a 512-byte window).  In that case, providing 8 to\n   inflateInit2() will result in an error when the zlib header with 9 is\n   checked against the initialization of inflate().  The remedy is to not use 8\n   with deflateInit2() with this initialization, or at least in that case use 9\n   with inflateInit2().\n\n     windowBits can also be -8..-15 for raw deflate.  In this case, -windowBits\n   determines the window size.  deflate() will then generate raw deflate data\n   with no zlib header or trailer, and will not compute a check value.\n\n     windowBits can also be greater than 15 for optional gzip encoding.  Add\n   16 to windowBits to write a simple gzip header and trailer around the\n   compressed data instead of a zlib wrapper.  The gzip header will have no\n   file name, no extra data, no comment, no modification time (set to zero), no\n   header crc, and the operating system will be set to the appropriate value,\n   if the operating system was determined at compile time.  If a gzip stream is\n   being written, strm->adler is a CRC-32 instead of an Adler-32.\n\n     For raw deflate or gzip encoding, a request for a 256-byte window is\n   rejected as invalid, since only the zlib header provides a means of\n   transmitting the window size to the decompressor.\n\n     The memLevel parameter specifies how much memory should be allocated\n   for the internal compression state.  memLevel=1 uses minimum memory but is\n   slow and reduces compression ratio; memLevel=9 uses maximum memory for\n   optimal speed.  The default value is 8.  See zconf.h for total memory usage\n   as a function of windowBits and memLevel.\n\n     The strategy parameter is used to tune the compression algorithm.  Use the\n   value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a\n   filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no\n   string match), or Z_RLE to limit match distances to one (run-length\n   encoding).  Filtered data consists mostly of small values with a somewhat\n   random distribution.  In this case, the compression algorithm is tuned to\n   compress them better.  The effect of Z_FILTERED is to force more Huffman\n   coding and less string matching; it is somewhat intermediate between\n   Z_DEFAULT_STRATEGY and Z_HUFFMAN_ONLY.  Z_RLE is designed to be almost as\n   fast as Z_HUFFMAN_ONLY, but give better compression for PNG image data.  The\n   strategy parameter only affects the compression ratio but not the\n   correctness of the compressed output even if it is not set appropriately.\n   Z_FIXED prevents the use of dynamic Huffman codes, allowing for a simpler\n   decoder for special applications.\n\n     deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough\n   memory, Z_STREAM_ERROR if any parameter is invalid (such as an invalid\n   method), or Z_VERSION_ERROR if the zlib library version (zlib_version) is\n   incompatible with the version assumed by the caller (ZLIB_VERSION).  msg is\n   set to null if there is no error message.  deflateInit2 does not perform any\n   compression: this will be done by deflate().\n*/\n\nZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm,\n                                             const Bytef *dictionary,\n                                             uInt  dictLength));\n/*\n     Initializes the compression dictionary from the given byte sequence\n   without producing any compressed output.  When using the zlib format, this\n   function must be called immediately after deflateInit, deflateInit2 or\n   deflateReset, and before any call of deflate.  When doing raw deflate, this\n   function must be called either before any call of deflate, or immediately\n   after the completion of a deflate block, i.e. after all input has been\n   consumed and all output has been delivered when using any of the flush\n   options Z_BLOCK, Z_PARTIAL_FLUSH, Z_SYNC_FLUSH, or Z_FULL_FLUSH.  The\n   compressor and decompressor must use exactly the same dictionary (see\n   inflateSetDictionary).\n\n     The dictionary should consist of strings (byte sequences) that are likely\n   to be encountered later in the data to be compressed, with the most commonly\n   used strings preferably put towards the end of the dictionary.  Using a\n   dictionary is most useful when the data to be compressed is short and can be\n   predicted with good accuracy; the data can then be compressed better than\n   with the default empty dictionary.\n\n     Depending on the size of the compression data structures selected by\n   deflateInit or deflateInit2, a part of the dictionary may in effect be\n   discarded, for example if the dictionary is larger than the window size\n   provided in deflateInit or deflateInit2.  Thus the strings most likely to be\n   useful should be put at the end of the dictionary, not at the front.  In\n   addition, the current implementation of deflate will use at most the window\n   size minus 262 bytes of the provided dictionary.\n\n     Upon return of this function, strm->adler is set to the Adler-32 value\n   of the dictionary; the decompressor may later use this value to determine\n   which dictionary has been used by the compressor.  (The Adler-32 value\n   applies to the whole dictionary even if only a subset of the dictionary is\n   actually used by the compressor.) If a raw deflate was requested, then the\n   Adler-32 value is not computed and strm->adler is not set.\n\n     deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a\n   parameter is invalid (e.g.  dictionary being Z_NULL) or the stream state is\n   inconsistent (for example if deflate has already been called for this stream\n   or if not at a block boundary for raw deflate).  deflateSetDictionary does\n   not perform any compression: this will be done by deflate().\n*/\n\nZEXTERN int ZEXPORT deflateGetDictionary OF((z_streamp strm,\n                                             Bytef *dictionary,\n                                             uInt  *dictLength));\n/*\n     Returns the sliding dictionary being maintained by deflate.  dictLength is\n   set to the number of bytes in the dictionary, and that many bytes are copied\n   to dictionary.  dictionary must have enough space, where 32768 bytes is\n   always enough.  If deflateGetDictionary() is called with dictionary equal to\n   Z_NULL, then only the dictionary length is returned, and nothing is copied.\n   Similary, if dictLength is Z_NULL, then it is not set.\n\n     deflateGetDictionary() may return a length less than the window size, even\n   when more than the window size in input has been provided. It may return up\n   to 258 bytes less in that case, due to how zlib's implementation of deflate\n   manages the sliding window and lookahead for matches, where matches can be\n   up to 258 bytes long. If the application needs the last window-size bytes of\n   input, then that would need to be saved by the application outside of zlib.\n\n     deflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the\n   stream state is inconsistent.\n*/\n\nZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest,\n                                    z_streamp source));\n/*\n     Sets the destination stream as a complete copy of the source stream.\n\n     This function can be useful when several compression strategies will be\n   tried, for example when there are several ways of pre-processing the input\n   data with a filter.  The streams that will be discarded should then be freed\n   by calling deflateEnd.  Note that deflateCopy duplicates the internal\n   compression state which can be quite large, so this strategy is slow and can\n   consume lots of memory.\n\n     deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not\n   enough memory, Z_STREAM_ERROR if the source stream state was inconsistent\n   (such as zalloc being Z_NULL).  msg is left unchanged in both source and\n   destination.\n*/\n\nZEXTERN int ZEXPORT deflateReset OF((z_streamp strm));\n/*\n     This function is equivalent to deflateEnd followed by deflateInit, but\n   does not free and reallocate the internal compression state.  The stream\n   will leave the compression level and any other attributes that may have been\n   set unchanged.\n\n     deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source\n   stream state was inconsistent (such as zalloc or state being Z_NULL).\n*/\n\nZEXTERN int ZEXPORT deflateParams OF((z_streamp strm,\n                                      int level,\n                                      int strategy));\n/*\n     Dynamically update the compression level and compression strategy.  The\n   interpretation of level and strategy is as in deflateInit2().  This can be\n   used to switch between compression and straight copy of the input data, or\n   to switch to a different kind of input data requiring a different strategy.\n   If the compression approach (which is a function of the level) or the\n   strategy is changed, and if any input has been consumed in a previous\n   deflate() call, then the input available so far is compressed with the old\n   level and strategy using deflate(strm, Z_BLOCK).  There are three approaches\n   for the compression levels 0, 1..3, and 4..9 respectively.  The new level\n   and strategy will take effect at the next call of deflate().\n\n     If a deflate(strm, Z_BLOCK) is performed by deflateParams(), and it does\n   not have enough output space to complete, then the parameter change will not\n   take effect.  In this case, deflateParams() can be called again with the\n   same parameters and more output space to try again.\n\n     In order to assure a change in the parameters on the first try, the\n   deflate stream should be flushed using deflate() with Z_BLOCK or other flush\n   request until strm.avail_out is not zero, before calling deflateParams().\n   Then no more input data should be provided before the deflateParams() call.\n   If this is done, the old level and strategy will be applied to the data\n   compressed before deflateParams(), and the new level and strategy will be\n   applied to the the data compressed after deflateParams().\n\n     deflateParams returns Z_OK on success, Z_STREAM_ERROR if the source stream\n   state was inconsistent or if a parameter was invalid, or Z_BUF_ERROR if\n   there was not enough output space to complete the compression of the\n   available input data before a change in the strategy or approach.  Note that\n   in the case of a Z_BUF_ERROR, the parameters are not changed.  A return\n   value of Z_BUF_ERROR is not fatal, in which case deflateParams() can be\n   retried with more output space.\n*/\n\nZEXTERN int ZEXPORT deflateTune OF((z_streamp strm,\n                                    int good_length,\n                                    int max_lazy,\n                                    int nice_length,\n                                    int max_chain));\n/*\n     Fine tune deflate's internal compression parameters.  This should only be\n   used by someone who understands the algorithm used by zlib's deflate for\n   searching for the best matching string, and even then only by the most\n   fanatic optimizer trying to squeeze out the last compressed bit for their\n   specific input data.  Read the deflate.c source code for the meaning of the\n   max_lazy, good_length, nice_length, and max_chain parameters.\n\n     deflateTune() can be called after deflateInit() or deflateInit2(), and\n   returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream.\n */\n\nZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm,\n                                       uLong sourceLen));\n/*\n     deflateBound() returns an upper bound on the compressed size after\n   deflation of sourceLen bytes.  It must be called after deflateInit() or\n   deflateInit2(), and after deflateSetHeader(), if used.  This would be used\n   to allocate an output buffer for deflation in a single pass, and so would be\n   called before deflate().  If that first deflate() call is provided the\n   sourceLen input bytes, an output buffer allocated to the size returned by\n   deflateBound(), and the flush value Z_FINISH, then deflate() is guaranteed\n   to return Z_STREAM_END.  Note that it is possible for the compressed size to\n   be larger than the value returned by deflateBound() if flush options other\n   than Z_FINISH or Z_NO_FLUSH are used.\n*/\n\nZEXTERN int ZEXPORT deflatePending OF((z_streamp strm,\n                                       unsigned *pending,\n                                       int *bits));\n/*\n     deflatePending() returns the number of bytes and bits of output that have\n   been generated, but not yet provided in the available output.  The bytes not\n   provided would be due to the available output space having being consumed.\n   The number of bits of output not provided are between 0 and 7, where they\n   await more bits to join them in order to fill out a full byte.  If pending\n   or bits are Z_NULL, then those values are not set.\n\n     deflatePending returns Z_OK if success, or Z_STREAM_ERROR if the source\n   stream state was inconsistent.\n */\n\nZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm,\n                                     int bits,\n                                     int value));\n/*\n     deflatePrime() inserts bits in the deflate output stream.  The intent\n   is that this function is used to start off the deflate output with the bits\n   leftover from a previous deflate stream when appending to it.  As such, this\n   function can only be used for raw deflate, and must be used before the first\n   deflate() call after a deflateInit2() or deflateReset().  bits must be less\n   than or equal to 16, and that many of the least significant bits of value\n   will be inserted in the output.\n\n     deflatePrime returns Z_OK if success, Z_BUF_ERROR if there was not enough\n   room in the internal buffer to insert the bits, or Z_STREAM_ERROR if the\n   source stream state was inconsistent.\n*/\n\nZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm,\n                                         gz_headerp head));\n/*\n     deflateSetHeader() provides gzip header information for when a gzip\n   stream is requested by deflateInit2().  deflateSetHeader() may be called\n   after deflateInit2() or deflateReset() and before the first call of\n   deflate().  The text, time, os, extra field, name, and comment information\n   in the provided gz_header structure are written to the gzip header (xflag is\n   ignored -- the extra flags are set according to the compression level).  The\n   caller must assure that, if not Z_NULL, name and comment are terminated with\n   a zero byte, and that if extra is not Z_NULL, that extra_len bytes are\n   available there.  If hcrc is true, a gzip header crc is included.  Note that\n   the current versions of the command-line version of gzip (up through version\n   1.3.x) do not support header crc's, and will report that it is a \"multi-part\n   gzip file\" and give up.\n\n     If deflateSetHeader is not used, the default gzip header has text false,\n   the time set to zero, and os set to 255, with no extra, name, or comment\n   fields.  The gzip header is returned to the default state by deflateReset().\n\n     deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source\n   stream state was inconsistent.\n*/\n\n/*\nZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm,\n                                     int  windowBits));\n\n     This is another version of inflateInit with an extra parameter.  The\n   fields next_in, avail_in, zalloc, zfree and opaque must be initialized\n   before by the caller.\n\n     The windowBits parameter is the base two logarithm of the maximum window\n   size (the size of the history buffer).  It should be in the range 8..15 for\n   this version of the library.  The default value is 15 if inflateInit is used\n   instead.  windowBits must be greater than or equal to the windowBits value\n   provided to deflateInit2() while compressing, or it must be equal to 15 if\n   deflateInit2() was not used.  If a compressed stream with a larger window\n   size is given as input, inflate() will return with the error code\n   Z_DATA_ERROR instead of trying to allocate a larger window.\n\n     windowBits can also be zero to request that inflate use the window size in\n   the zlib header of the compressed stream.\n\n     windowBits can also be -8..-15 for raw inflate.  In this case, -windowBits\n   determines the window size.  inflate() will then process raw deflate data,\n   not looking for a zlib or gzip header, not generating a check value, and not\n   looking for any check values for comparison at the end of the stream.  This\n   is for use with other formats that use the deflate compressed data format\n   such as zip.  Those formats provide their own check values.  If a custom\n   format is developed using the raw deflate format for compressed data, it is\n   recommended that a check value such as an Adler-32 or a CRC-32 be applied to\n   the uncompressed data as is done in the zlib, gzip, and zip formats.  For\n   most applications, the zlib format should be used as is.  Note that comments\n   above on the use in deflateInit2() applies to the magnitude of windowBits.\n\n     windowBits can also be greater than 15 for optional gzip decoding.  Add\n   32 to windowBits to enable zlib and gzip decoding with automatic header\n   detection, or add 16 to decode only the gzip format (the zlib format will\n   return a Z_DATA_ERROR).  If a gzip stream is being decoded, strm->adler is a\n   CRC-32 instead of an Adler-32.  Unlike the gunzip utility and gzread() (see\n   below), inflate() will not automatically decode concatenated gzip streams.\n   inflate() will return Z_STREAM_END at the end of the gzip stream.  The state\n   would need to be reset to continue decoding a subsequent gzip stream.\n\n     inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough\n   memory, Z_VERSION_ERROR if the zlib library version is incompatible with the\n   version assumed by the caller, or Z_STREAM_ERROR if the parameters are\n   invalid, such as a null pointer to the structure.  msg is set to null if\n   there is no error message.  inflateInit2 does not perform any decompression\n   apart from possibly reading the zlib header if present: actual decompression\n   will be done by inflate().  (So next_in and avail_in may be modified, but\n   next_out and avail_out are unused and unchanged.) The current implementation\n   of inflateInit2() does not process any header information -- that is\n   deferred until inflate() is called.\n*/\n\nZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm,\n                                             const Bytef *dictionary,\n                                             uInt  dictLength));\n/*\n     Initializes the decompression dictionary from the given uncompressed byte\n   sequence.  This function must be called immediately after a call of inflate,\n   if that call returned Z_NEED_DICT.  The dictionary chosen by the compressor\n   can be determined from the Adler-32 value returned by that call of inflate.\n   The compressor and decompressor must use exactly the same dictionary (see\n   deflateSetDictionary).  For raw inflate, this function can be called at any\n   time to set the dictionary.  If the provided dictionary is smaller than the\n   window and there is already data in the window, then the provided dictionary\n   will amend what's there.  The application must insure that the dictionary\n   that was used for compression is provided.\n\n     inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a\n   parameter is invalid (e.g.  dictionary being Z_NULL) or the stream state is\n   inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the\n   expected one (incorrect Adler-32 value).  inflateSetDictionary does not\n   perform any decompression: this will be done by subsequent calls of\n   inflate().\n*/\n\nZEXTERN int ZEXPORT inflateGetDictionary OF((z_streamp strm,\n                                             Bytef *dictionary,\n                                             uInt  *dictLength));\n/*\n     Returns the sliding dictionary being maintained by inflate.  dictLength is\n   set to the number of bytes in the dictionary, and that many bytes are copied\n   to dictionary.  dictionary must have enough space, where 32768 bytes is\n   always enough.  If inflateGetDictionary() is called with dictionary equal to\n   Z_NULL, then only the dictionary length is returned, and nothing is copied.\n   Similary, if dictLength is Z_NULL, then it is not set.\n\n     inflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the\n   stream state is inconsistent.\n*/\n\nZEXTERN int ZEXPORT inflateSync OF((z_streamp strm));\n/*\n     Skips invalid compressed data until a possible full flush point (see above\n   for the description of deflate with Z_FULL_FLUSH) can be found, or until all\n   available input is skipped.  No output is provided.\n\n     inflateSync searches for a 00 00 FF FF pattern in the compressed data.\n   All full flush points have this pattern, but not all occurrences of this\n   pattern are full flush points.\n\n     inflateSync returns Z_OK if a possible full flush point has been found,\n   Z_BUF_ERROR if no more input was provided, Z_DATA_ERROR if no flush point\n   has been found, or Z_STREAM_ERROR if the stream structure was inconsistent.\n   In the success case, the application may save the current current value of\n   total_in which indicates where valid compressed data was found.  In the\n   error case, the application may repeatedly call inflateSync, providing more\n   input each time, until success or end of the input data.\n*/\n\nZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest,\n                                    z_streamp source));\n/*\n     Sets the destination stream as a complete copy of the source stream.\n\n     This function can be useful when randomly accessing a large stream.  The\n   first pass through the stream can periodically record the inflate state,\n   allowing restarting inflate at those points when randomly accessing the\n   stream.\n\n     inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not\n   enough memory, Z_STREAM_ERROR if the source stream state was inconsistent\n   (such as zalloc being Z_NULL).  msg is left unchanged in both source and\n   destination.\n*/\n\nZEXTERN int ZEXPORT inflateReset OF((z_streamp strm));\n/*\n     This function is equivalent to inflateEnd followed by inflateInit,\n   but does not free and reallocate the internal decompression state.  The\n   stream will keep attributes that may have been set by inflateInit2.\n\n     inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source\n   stream state was inconsistent (such as zalloc or state being Z_NULL).\n*/\n\nZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm,\n                                      int windowBits));\n/*\n     This function is the same as inflateReset, but it also permits changing\n   the wrap and window size requests.  The windowBits parameter is interpreted\n   the same as it is for inflateInit2.  If the window size is changed, then the\n   memory allocated for the window is freed, and the window will be reallocated\n   by inflate() if needed.\n\n     inflateReset2 returns Z_OK if success, or Z_STREAM_ERROR if the source\n   stream state was inconsistent (such as zalloc or state being Z_NULL), or if\n   the windowBits parameter is invalid.\n*/\n\nZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm,\n                                     int bits,\n                                     int value));\n/*\n     This function inserts bits in the inflate input stream.  The intent is\n   that this function is used to start inflating at a bit position in the\n   middle of a byte.  The provided bits will be used before any bytes are used\n   from next_in.  This function should only be used with raw inflate, and\n   should be used before the first inflate() call after inflateInit2() or\n   inflateReset().  bits must be less than or equal to 16, and that many of the\n   least significant bits of value will be inserted in the input.\n\n     If bits is negative, then the input stream bit buffer is emptied.  Then\n   inflatePrime() can be called again to put bits in the buffer.  This is used\n   to clear out bits leftover after feeding inflate a block description prior\n   to feeding inflate codes.\n\n     inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source\n   stream state was inconsistent.\n*/\n\nZEXTERN long ZEXPORT inflateMark OF((z_streamp strm));\n/*\n     This function returns two values, one in the lower 16 bits of the return\n   value, and the other in the remaining upper bits, obtained by shifting the\n   return value down 16 bits.  If the upper value is -1 and the lower value is\n   zero, then inflate() is currently decoding information outside of a block.\n   If the upper value is -1 and the lower value is non-zero, then inflate is in\n   the middle of a stored block, with the lower value equaling the number of\n   bytes from the input remaining to copy.  If the upper value is not -1, then\n   it is the number of bits back from the current bit position in the input of\n   the code (literal or length/distance pair) currently being processed.  In\n   that case the lower value is the number of bytes already emitted for that\n   code.\n\n     A code is being processed if inflate is waiting for more input to complete\n   decoding of the code, or if it has completed decoding but is waiting for\n   more output space to write the literal or match data.\n\n     inflateMark() is used to mark locations in the input data for random\n   access, which may be at bit positions, and to note those cases where the\n   output of a code may span boundaries of random access blocks.  The current\n   location in the input stream can be determined from avail_in and data_type\n   as noted in the description for the Z_BLOCK flush parameter for inflate.\n\n     inflateMark returns the value noted above, or -65536 if the provided\n   source stream state was inconsistent.\n*/\n\nZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm,\n                                         gz_headerp head));\n/*\n     inflateGetHeader() requests that gzip header information be stored in the\n   provided gz_header structure.  inflateGetHeader() may be called after\n   inflateInit2() or inflateReset(), and before the first call of inflate().\n   As inflate() processes the gzip stream, head->done is zero until the header\n   is completed, at which time head->done is set to one.  If a zlib stream is\n   being decoded, then head->done is set to -1 to indicate that there will be\n   no gzip header information forthcoming.  Note that Z_BLOCK or Z_TREES can be\n   used to force inflate() to return immediately after header processing is\n   complete and before any actual data is decompressed.\n\n     The text, time, xflags, and os fields are filled in with the gzip header\n   contents.  hcrc is set to true if there is a header CRC.  (The header CRC\n   was valid if done is set to one.) If extra is not Z_NULL, then extra_max\n   contains the maximum number of bytes to write to extra.  Once done is true,\n   extra_len contains the actual extra field length, and extra contains the\n   extra field, or that field truncated if extra_max is less than extra_len.\n   If name is not Z_NULL, then up to name_max characters are written there,\n   terminated with a zero unless the length is greater than name_max.  If\n   comment is not Z_NULL, then up to comm_max characters are written there,\n   terminated with a zero unless the length is greater than comm_max.  When any\n   of extra, name, or comment are not Z_NULL and the respective field is not\n   present in the header, then that field is set to Z_NULL to signal its\n   absence.  This allows the use of deflateSetHeader() with the returned\n   structure to duplicate the header.  However if those fields are set to\n   allocated memory, then the application will need to save those pointers\n   elsewhere so that they can be eventually freed.\n\n     If inflateGetHeader is not used, then the header information is simply\n   discarded.  The header is always checked for validity, including the header\n   CRC if present.  inflateReset() will reset the process to discard the header\n   information.  The application would need to call inflateGetHeader() again to\n   retrieve the header from the next gzip stream.\n\n     inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source\n   stream state was inconsistent.\n*/\n\n/*\nZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits,\n                                        unsigned char FAR *window));\n\n     Initialize the internal stream state for decompression using inflateBack()\n   calls.  The fields zalloc, zfree and opaque in strm must be initialized\n   before the call.  If zalloc and zfree are Z_NULL, then the default library-\n   derived memory allocation routines are used.  windowBits is the base two\n   logarithm of the window size, in the range 8..15.  window is a caller\n   supplied buffer of that size.  Except for special applications where it is\n   assured that deflate was used with small window sizes, windowBits must be 15\n   and a 32K byte window must be supplied to be able to decompress general\n   deflate streams.\n\n     See inflateBack() for the usage of these routines.\n\n     inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of\n   the parameters are invalid, Z_MEM_ERROR if the internal state could not be\n   allocated, or Z_VERSION_ERROR if the version of the library does not match\n   the version of the header file.\n*/\n\ntypedef unsigned (*in_func) OF((void FAR *,\n                                z_const unsigned char FAR * FAR *));\ntypedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned));\n\nZEXTERN int ZEXPORT inflateBack OF((z_streamp strm,\n                                    in_func in, void FAR *in_desc,\n                                    out_func out, void FAR *out_desc));\n/*\n     inflateBack() does a raw inflate with a single call using a call-back\n   interface for input and output.  This is potentially more efficient than\n   inflate() for file i/o applications, in that it avoids copying between the\n   output and the sliding window by simply making the window itself the output\n   buffer.  inflate() can be faster on modern CPUs when used with large\n   buffers.  inflateBack() trusts the application to not change the output\n   buffer passed by the output function, at least until inflateBack() returns.\n\n     inflateBackInit() must be called first to allocate the internal state\n   and to initialize the state with the user-provided window buffer.\n   inflateBack() may then be used multiple times to inflate a complete, raw\n   deflate stream with each call.  inflateBackEnd() is then called to free the\n   allocated state.\n\n     A raw deflate stream is one with no zlib or gzip header or trailer.\n   This routine would normally be used in a utility that reads zip or gzip\n   files and writes out uncompressed files.  The utility would decode the\n   header and process the trailer on its own, hence this routine expects only\n   the raw deflate stream to decompress.  This is different from the default\n   behavior of inflate(), which expects a zlib header and trailer around the\n   deflate stream.\n\n     inflateBack() uses two subroutines supplied by the caller that are then\n   called by inflateBack() for input and output.  inflateBack() calls those\n   routines until it reads a complete deflate stream and writes out all of the\n   uncompressed data, or until it encounters an error.  The function's\n   parameters and return types are defined above in the in_func and out_func\n   typedefs.  inflateBack() will call in(in_desc, &buf) which should return the\n   number of bytes of provided input, and a pointer to that input in buf.  If\n   there is no input available, in() must return zero -- buf is ignored in that\n   case -- and inflateBack() will return a buffer error.  inflateBack() will\n   call out(out_desc, buf, len) to write the uncompressed data buf[0..len-1].\n   out() should return zero on success, or non-zero on failure.  If out()\n   returns non-zero, inflateBack() will return with an error.  Neither in() nor\n   out() are permitted to change the contents of the window provided to\n   inflateBackInit(), which is also the buffer that out() uses to write from.\n   The length written by out() will be at most the window size.  Any non-zero\n   amount of input may be provided by in().\n\n     For convenience, inflateBack() can be provided input on the first call by\n   setting strm->next_in and strm->avail_in.  If that input is exhausted, then\n   in() will be called.  Therefore strm->next_in must be initialized before\n   calling inflateBack().  If strm->next_in is Z_NULL, then in() will be called\n   immediately for input.  If strm->next_in is not Z_NULL, then strm->avail_in\n   must also be initialized, and then if strm->avail_in is not zero, input will\n   initially be taken from strm->next_in[0 ..  strm->avail_in - 1].\n\n     The in_desc and out_desc parameters of inflateBack() is passed as the\n   first parameter of in() and out() respectively when they are called.  These\n   descriptors can be optionally used to pass any information that the caller-\n   supplied in() and out() functions need to do their job.\n\n     On return, inflateBack() will set strm->next_in and strm->avail_in to\n   pass back any unused input that was provided by the last in() call.  The\n   return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR\n   if in() or out() returned an error, Z_DATA_ERROR if there was a format error\n   in the deflate stream (in which case strm->msg is set to indicate the nature\n   of the error), or Z_STREAM_ERROR if the stream was not properly initialized.\n   In the case of Z_BUF_ERROR, an input or output error can be distinguished\n   using strm->next_in which will be Z_NULL only if in() returned an error.  If\n   strm->next_in is not Z_NULL, then the Z_BUF_ERROR was due to out() returning\n   non-zero.  (in() will always be called before out(), so strm->next_in is\n   assured to be defined if out() returns non-zero.)  Note that inflateBack()\n   cannot return Z_OK.\n*/\n\nZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm));\n/*\n     All memory allocated by inflateBackInit() is freed.\n\n     inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream\n   state was inconsistent.\n*/\n\nZEXTERN uLong ZEXPORT zlibCompileFlags OF((void));\n/* Return flags indicating compile-time options.\n\n    Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other:\n     1.0: size of uInt\n     3.2: size of uLong\n     5.4: size of voidpf (pointer)\n     7.6: size of z_off_t\n\n    Compiler, assembler, and debug options:\n     8: ZLIB_DEBUG\n     9: ASMV or ASMINF -- use ASM code\n     10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention\n     11: 0 (reserved)\n\n    One-time table building (smaller code, but not thread-safe if true):\n     12: BUILDFIXED -- build static block decoding tables when needed\n     13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed\n     14,15: 0 (reserved)\n\n    Library content (indicates missing functionality):\n     16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking\n                          deflate code when not needed)\n     17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect\n                    and decode gzip streams (to avoid linking crc code)\n     18-19: 0 (reserved)\n\n    Operation variations (changes in library functionality):\n     20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate\n     21: FASTEST -- deflate algorithm with only one, lowest compression level\n     22,23: 0 (reserved)\n\n    The sprintf variant used by gzprintf (zero is best):\n     24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format\n     25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure!\n     26: 0 = returns value, 1 = void -- 1 means inferred string length returned\n\n    Remainder:\n     27-31: 0 (reserved)\n */\n\n#ifndef Z_SOLO\n\n                        /* utility functions */\n\n/*\n     The following utility functions are implemented on top of the basic\n   stream-oriented functions.  To simplify the interface, some default options\n   are assumed (compression level and memory usage, standard memory allocation\n   functions).  The source code of these utility functions can be modified if\n   you need special options.\n*/\n\nZEXTERN int ZEXPORT compress OF((Bytef *dest,   uLongf *destLen,\n                                 const Bytef *source, uLong sourceLen));\n/*\n     Compresses the source buffer into the destination buffer.  sourceLen is\n   the byte length of the source buffer.  Upon entry, destLen is the total size\n   of the destination buffer, which must be at least the value returned by\n   compressBound(sourceLen).  Upon exit, destLen is the actual size of the\n   compressed data.  compress() is equivalent to compress2() with a level\n   parameter of Z_DEFAULT_COMPRESSION.\n\n     compress returns Z_OK if success, Z_MEM_ERROR if there was not\n   enough memory, Z_BUF_ERROR if there was not enough room in the output\n   buffer.\n*/\n\nZEXTERN int ZEXPORT compress2 OF((Bytef *dest,   uLongf *destLen,\n                                  const Bytef *source, uLong sourceLen,\n                                  int level));\n/*\n     Compresses the source buffer into the destination buffer.  The level\n   parameter has the same meaning as in deflateInit.  sourceLen is the byte\n   length of the source buffer.  Upon entry, destLen is the total size of the\n   destination buffer, which must be at least the value returned by\n   compressBound(sourceLen).  Upon exit, destLen is the actual size of the\n   compressed data.\n\n     compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough\n   memory, Z_BUF_ERROR if there was not enough room in the output buffer,\n   Z_STREAM_ERROR if the level parameter is invalid.\n*/\n\nZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen));\n/*\n     compressBound() returns an upper bound on the compressed size after\n   compress() or compress2() on sourceLen bytes.  It would be used before a\n   compress() or compress2() call to allocate the destination buffer.\n*/\n\nZEXTERN int ZEXPORT uncompress OF((Bytef *dest,   uLongf *destLen,\n                                   const Bytef *source, uLong sourceLen));\n/*\n     Decompresses the source buffer into the destination buffer.  sourceLen is\n   the byte length of the source buffer.  Upon entry, destLen is the total size\n   of the destination buffer, which must be large enough to hold the entire\n   uncompressed data.  (The size of the uncompressed data must have been saved\n   previously by the compressor and transmitted to the decompressor by some\n   mechanism outside the scope of this compression library.) Upon exit, destLen\n   is the actual size of the uncompressed data.\n\n     uncompress returns Z_OK if success, Z_MEM_ERROR if there was not\n   enough memory, Z_BUF_ERROR if there was not enough room in the output\n   buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete.  In\n   the case where there is not enough room, uncompress() will fill the output\n   buffer with the uncompressed data up to that point.\n*/\n\nZEXTERN int ZEXPORT uncompress2 OF((Bytef *dest,   uLongf *destLen,\n                                    const Bytef *source, uLong *sourceLen));\n/*\n     Same as uncompress, except that sourceLen is a pointer, where the\n   length of the source is *sourceLen.  On return, *sourceLen is the number of\n   source bytes consumed.\n*/\n\n                        /* gzip file access functions */\n\n/*\n     This library supports reading and writing files in gzip (.gz) format with\n   an interface similar to that of stdio, using the functions that start with\n   \"gz\".  The gzip format is different from the zlib format.  gzip is a gzip\n   wrapper, documented in RFC 1952, wrapped around a deflate stream.\n*/\n\ntypedef struct gzFile_s *gzFile;    /* semi-opaque gzip file descriptor */\n\n/*\nZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode));\n\n     Opens a gzip (.gz) file for reading or writing.  The mode parameter is as\n   in fopen (\"rb\" or \"wb\") but can also include a compression level (\"wb9\") or\n   a strategy: 'f' for filtered data as in \"wb6f\", 'h' for Huffman-only\n   compression as in \"wb1h\", 'R' for run-length encoding as in \"wb1R\", or 'F'\n   for fixed code compression as in \"wb9F\".  (See the description of\n   deflateInit2 for more information about the strategy parameter.)  'T' will\n   request transparent writing or appending with no compression and not using\n   the gzip format.\n\n     \"a\" can be used instead of \"w\" to request that the gzip stream that will\n   be written be appended to the file.  \"+\" will result in an error, since\n   reading and writing to the same gzip file is not supported.  The addition of\n   \"x\" when writing will create the file exclusively, which fails if the file\n   already exists.  On systems that support it, the addition of \"e\" when\n   reading or writing will set the flag to close the file on an execve() call.\n\n     These functions, as well as gzip, will read and decode a sequence of gzip\n   streams in a file.  The append function of gzopen() can be used to create\n   such a file.  (Also see gzflush() for another way to do this.)  When\n   appending, gzopen does not test whether the file begins with a gzip stream,\n   nor does it look for the end of the gzip streams to begin appending.  gzopen\n   will simply append a gzip stream to the existing file.\n\n     gzopen can be used to read a file which is not in gzip format; in this\n   case gzread will directly read from the file without decompression.  When\n   reading, this will be detected automatically by looking for the magic two-\n   byte gzip header.\n\n     gzopen returns NULL if the file could not be opened, if there was\n   insufficient memory to allocate the gzFile state, or if an invalid mode was\n   specified (an 'r', 'w', or 'a' was not provided, or '+' was provided).\n   errno can be checked to determine if the reason gzopen failed was that the\n   file could not be opened.\n*/\n\nZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode));\n/*\n     gzdopen associates a gzFile with the file descriptor fd.  File descriptors\n   are obtained from calls like open, dup, creat, pipe or fileno (if the file\n   has been previously opened with fopen).  The mode parameter is as in gzopen.\n\n     The next call of gzclose on the returned gzFile will also close the file\n   descriptor fd, just like fclose(fdopen(fd, mode)) closes the file descriptor\n   fd.  If you want to keep fd open, use fd = dup(fd_keep); gz = gzdopen(fd,\n   mode);.  The duplicated descriptor should be saved to avoid a leak, since\n   gzdopen does not close fd if it fails.  If you are using fileno() to get the\n   file descriptor from a FILE *, then you will have to use dup() to avoid\n   double-close()ing the file descriptor.  Both gzclose() and fclose() will\n   close the associated file descriptor, so they need to have different file\n   descriptors.\n\n     gzdopen returns NULL if there was insufficient memory to allocate the\n   gzFile state, if an invalid mode was specified (an 'r', 'w', or 'a' was not\n   provided, or '+' was provided), or if fd is -1.  The file descriptor is not\n   used until the next gz* read, write, seek, or close operation, so gzdopen\n   will not detect if fd is invalid (unless fd is -1).\n*/\n\nZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size));\n/*\n     Set the internal buffer size used by this library's functions.  The\n   default buffer size is 8192 bytes.  This function must be called after\n   gzopen() or gzdopen(), and before any other calls that read or write the\n   file.  The buffer memory allocation is always deferred to the first read or\n   write.  Three times that size in buffer space is allocated.  A larger buffer\n   size of, for example, 64K or 128K bytes will noticeably increase the speed\n   of decompression (reading).\n\n     The new buffer size also affects the maximum length for gzprintf().\n\n     gzbuffer() returns 0 on success, or -1 on failure, such as being called\n   too late.\n*/\n\nZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy));\n/*\n     Dynamically update the compression level or strategy.  See the description\n   of deflateInit2 for the meaning of these parameters.  Previously provided\n   data is flushed before the parameter change.\n\n     gzsetparams returns Z_OK if success, Z_STREAM_ERROR if the file was not\n   opened for writing, Z_ERRNO if there is an error writing the flushed data,\n   or Z_MEM_ERROR if there is a memory allocation error.\n*/\n\nZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len));\n/*\n     Reads the given number of uncompressed bytes from the compressed file.  If\n   the input file is not in gzip format, gzread copies the given number of\n   bytes into the buffer directly from the file.\n\n     After reaching the end of a gzip stream in the input, gzread will continue\n   to read, looking for another gzip stream.  Any number of gzip streams may be\n   concatenated in the input file, and will all be decompressed by gzread().\n   If something other than a gzip stream is encountered after a gzip stream,\n   that remaining trailing garbage is ignored (and no error is returned).\n\n     gzread can be used to read a gzip file that is being concurrently written.\n   Upon reaching the end of the input, gzread will return with the available\n   data.  If the error code returned by gzerror is Z_OK or Z_BUF_ERROR, then\n   gzclearerr can be used to clear the end of file indicator in order to permit\n   gzread to be tried again.  Z_OK indicates that a gzip stream was completed\n   on the last gzread.  Z_BUF_ERROR indicates that the input file ended in the\n   middle of a gzip stream.  Note that gzread does not return -1 in the event\n   of an incomplete gzip stream.  This error is deferred until gzclose(), which\n   will return Z_BUF_ERROR if the last gzread ended in the middle of a gzip\n   stream.  Alternatively, gzerror can be used before gzclose to detect this\n   case.\n\n     gzread returns the number of uncompressed bytes actually read, less than\n   len for end of file, or -1 for error.  If len is too large to fit in an int,\n   then nothing is read, -1 is returned, and the error state is set to\n   Z_STREAM_ERROR.\n*/\n\nZEXTERN z_size_t ZEXPORT gzfread OF((voidp buf, z_size_t size, z_size_t nitems,\n                                     gzFile file));\n/*\n     Read up to nitems items of size size from file to buf, otherwise operating\n   as gzread() does.  This duplicates the interface of stdio's fread(), with\n   size_t request and return types.  If the library defines size_t, then\n   z_size_t is identical to size_t.  If not, then z_size_t is an unsigned\n   integer type that can contain a pointer.\n\n     gzfread() returns the number of full items read of size size, or zero if\n   the end of the file was reached and a full item could not be read, or if\n   there was an error.  gzerror() must be consulted if zero is returned in\n   order to determine if there was an error.  If the multiplication of size and\n   nitems overflows, i.e. the product does not fit in a z_size_t, then nothing\n   is read, zero is returned, and the error state is set to Z_STREAM_ERROR.\n\n     In the event that the end of file is reached and only a partial item is\n   available at the end, i.e. the remaining uncompressed data length is not a\n   multiple of size, then the final partial item is nevetheless read into buf\n   and the end-of-file flag is set.  The length of the partial item read is not\n   provided, but could be inferred from the result of gztell().  This behavior\n   is the same as the behavior of fread() implementations in common libraries,\n   but it prevents the direct use of gzfread() to read a concurrently written\n   file, reseting and retrying on end-of-file, when size is not 1.\n*/\n\nZEXTERN int ZEXPORT gzwrite OF((gzFile file,\n                                voidpc buf, unsigned len));\n/*\n     Writes the given number of uncompressed bytes into the compressed file.\n   gzwrite returns the number of uncompressed bytes written or 0 in case of\n   error.\n*/\n\nZEXTERN z_size_t ZEXPORT gzfwrite OF((voidpc buf, z_size_t size,\n                                      z_size_t nitems, gzFile file));\n/*\n     gzfwrite() writes nitems items of size size from buf to file, duplicating\n   the interface of stdio's fwrite(), with size_t request and return types.  If\n   the library defines size_t, then z_size_t is identical to size_t.  If not,\n   then z_size_t is an unsigned integer type that can contain a pointer.\n\n     gzfwrite() returns the number of full items written of size size, or zero\n   if there was an error.  If the multiplication of size and nitems overflows,\n   i.e. the product does not fit in a z_size_t, then nothing is written, zero\n   is returned, and the error state is set to Z_STREAM_ERROR.\n*/\n\nZEXTERN int ZEXPORTVA gzprintf Z_ARG((gzFile file, const char *format, ...));\n/*\n     Converts, formats, and writes the arguments to the compressed file under\n   control of the format string, as in fprintf.  gzprintf returns the number of\n   uncompressed bytes actually written, or a negative zlib error code in case\n   of error.  The number of uncompressed bytes written is limited to 8191, or\n   one less than the buffer size given to gzbuffer().  The caller should assure\n   that this limit is not exceeded.  If it is exceeded, then gzprintf() will\n   return an error (0) with nothing written.  In this case, there may also be a\n   buffer overflow with unpredictable consequences, which is possible only if\n   zlib was compiled with the insecure functions sprintf() or vsprintf()\n   because the secure snprintf() or vsnprintf() functions were not available.\n   This can be determined using zlibCompileFlags().\n*/\n\nZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s));\n/*\n     Writes the given null-terminated string to the compressed file, excluding\n   the terminating null character.\n\n     gzputs returns the number of characters written, or -1 in case of error.\n*/\n\nZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len));\n/*\n     Reads bytes from the compressed file until len-1 characters are read, or a\n   newline character is read and transferred to buf, or an end-of-file\n   condition is encountered.  If any characters are read or if len == 1, the\n   string is terminated with a null character.  If no characters are read due\n   to an end-of-file or len < 1, then the buffer is left untouched.\n\n     gzgets returns buf which is a null-terminated string, or it returns NULL\n   for end-of-file or in case of error.  If there was an error, the contents at\n   buf are indeterminate.\n*/\n\nZEXTERN int ZEXPORT gzputc OF((gzFile file, int c));\n/*\n     Writes c, converted to an unsigned char, into the compressed file.  gzputc\n   returns the value that was written, or -1 in case of error.\n*/\n\nZEXTERN int ZEXPORT gzgetc OF((gzFile file));\n/*\n     Reads one byte from the compressed file.  gzgetc returns this byte or -1\n   in case of end of file or error.  This is implemented as a macro for speed.\n   As such, it does not do all of the checking the other functions do.  I.e.\n   it does not check to see if file is NULL, nor whether the structure file\n   points to has been clobbered or not.\n*/\n\nZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file));\n/*\n     Push one character back onto the stream to be read as the first character\n   on the next read.  At least one character of push-back is allowed.\n   gzungetc() returns the character pushed, or -1 on failure.  gzungetc() will\n   fail if c is -1, and may fail if a character has been pushed but not read\n   yet.  If gzungetc is used immediately after gzopen or gzdopen, at least the\n   output buffer size of pushed characters is allowed.  (See gzbuffer above.)\n   The pushed character will be discarded if the stream is repositioned with\n   gzseek() or gzrewind().\n*/\n\nZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush));\n/*\n     Flushes all pending output into the compressed file.  The parameter flush\n   is as in the deflate() function.  The return value is the zlib error number\n   (see function gzerror below).  gzflush is only permitted when writing.\n\n     If the flush parameter is Z_FINISH, the remaining data is written and the\n   gzip stream is completed in the output.  If gzwrite() is called again, a new\n   gzip stream will be started in the output.  gzread() is able to read such\n   concatenated gzip streams.\n\n     gzflush should be called only when strictly necessary because it will\n   degrade compression if called too often.\n*/\n\n/*\nZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file,\n                                   z_off_t offset, int whence));\n\n     Sets the starting position for the next gzread or gzwrite on the given\n   compressed file.  The offset represents a number of bytes in the\n   uncompressed data stream.  The whence parameter is defined as in lseek(2);\n   the value SEEK_END is not supported.\n\n     If the file is opened for reading, this function is emulated but can be\n   extremely slow.  If the file is opened for writing, only forward seeks are\n   supported; gzseek then compresses a sequence of zeroes up to the new\n   starting position.\n\n     gzseek returns the resulting offset location as measured in bytes from\n   the beginning of the uncompressed stream, or -1 in case of error, in\n   particular if the file is opened for writing and the new starting position\n   would be before the current position.\n*/\n\nZEXTERN int ZEXPORT    gzrewind OF((gzFile file));\n/*\n     Rewinds the given file. This function is supported only for reading.\n\n     gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET)\n*/\n\n/*\nZEXTERN z_off_t ZEXPORT    gztell OF((gzFile file));\n\n     Returns the starting position for the next gzread or gzwrite on the given\n   compressed file.  This position represents a number of bytes in the\n   uncompressed data stream, and is zero when starting, even if appending or\n   reading a gzip stream from the middle of a file using gzdopen().\n\n     gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR)\n*/\n\n/*\nZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file));\n\n     Returns the current offset in the file being read or written.  This offset\n   includes the count of bytes that precede the gzip stream, for example when\n   appending or when using gzdopen() for reading.  When reading, the offset\n   does not include as yet unused buffered input.  This information can be used\n   for a progress indicator.  On error, gzoffset() returns -1.\n*/\n\nZEXTERN int ZEXPORT gzeof OF((gzFile file));\n/*\n     Returns true (1) if the end-of-file indicator has been set while reading,\n   false (0) otherwise.  Note that the end-of-file indicator is set only if the\n   read tried to go past the end of the input, but came up short.  Therefore,\n   just like feof(), gzeof() may return false even if there is no more data to\n   read, in the event that the last read request was for the exact number of\n   bytes remaining in the input file.  This will happen if the input file size\n   is an exact multiple of the buffer size.\n\n     If gzeof() returns true, then the read functions will return no more data,\n   unless the end-of-file indicator is reset by gzclearerr() and the input file\n   has grown since the previous end of file was detected.\n*/\n\nZEXTERN int ZEXPORT gzdirect OF((gzFile file));\n/*\n     Returns true (1) if file is being copied directly while reading, or false\n   (0) if file is a gzip stream being decompressed.\n\n     If the input file is empty, gzdirect() will return true, since the input\n   does not contain a gzip stream.\n\n     If gzdirect() is used immediately after gzopen() or gzdopen() it will\n   cause buffers to be allocated to allow reading the file to determine if it\n   is a gzip file.  Therefore if gzbuffer() is used, it should be called before\n   gzdirect().\n\n     When writing, gzdirect() returns true (1) if transparent writing was\n   requested (\"wT\" for the gzopen() mode), or false (0) otherwise.  (Note:\n   gzdirect() is not needed when writing.  Transparent writing must be\n   explicitly requested, so the application already knows the answer.  When\n   linking statically, using gzdirect() will include all of the zlib code for\n   gzip file reading and decompression, which may not be desired.)\n*/\n\nZEXTERN int ZEXPORT    gzclose OF((gzFile file));\n/*\n     Flushes all pending output if necessary, closes the compressed file and\n   deallocates the (de)compression state.  Note that once file is closed, you\n   cannot call gzerror with file, since its structures have been deallocated.\n   gzclose must not be called more than once on the same file, just as free\n   must not be called more than once on the same allocation.\n\n     gzclose will return Z_STREAM_ERROR if file is not valid, Z_ERRNO on a\n   file operation error, Z_MEM_ERROR if out of memory, Z_BUF_ERROR if the\n   last read ended in the middle of a gzip stream, or Z_OK on success.\n*/\n\nZEXTERN int ZEXPORT gzclose_r OF((gzFile file));\nZEXTERN int ZEXPORT gzclose_w OF((gzFile file));\n/*\n     Same as gzclose(), but gzclose_r() is only for use when reading, and\n   gzclose_w() is only for use when writing or appending.  The advantage to\n   using these instead of gzclose() is that they avoid linking in zlib\n   compression or decompression code that is not used when only reading or only\n   writing respectively.  If gzclose() is used, then both compression and\n   decompression code will be included the application when linking to a static\n   zlib library.\n*/\n\nZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum));\n/*\n     Returns the error message for the last error which occurred on the given\n   compressed file.  errnum is set to zlib error number.  If an error occurred\n   in the file system and not in the compression library, errnum is set to\n   Z_ERRNO and the application may consult errno to get the exact error code.\n\n     The application must not modify the returned string.  Future calls to\n   this function may invalidate the previously returned string.  If file is\n   closed, then the string previously returned by gzerror will no longer be\n   available.\n\n     gzerror() should be used to distinguish errors from end-of-file for those\n   functions above that do not distinguish those cases in their return values.\n*/\n\nZEXTERN void ZEXPORT gzclearerr OF((gzFile file));\n/*\n     Clears the error and end-of-file flags for file.  This is analogous to the\n   clearerr() function in stdio.  This is useful for continuing to read a gzip\n   file that is being written concurrently.\n*/\n\n#endif /* !Z_SOLO */\n\n                        /* checksum functions */\n\n/*\n     These functions are not related to compression but are exported\n   anyway because they might be useful in applications using the compression\n   library.\n*/\n\nZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len));\n/*\n     Update a running Adler-32 checksum with the bytes buf[0..len-1] and\n   return the updated checksum.  If buf is Z_NULL, this function returns the\n   required initial value for the checksum.\n\n     An Adler-32 checksum is almost as reliable as a CRC-32 but can be computed\n   much faster.\n\n   Usage example:\n\n     uLong adler = adler32(0L, Z_NULL, 0);\n\n     while (read_buffer(buffer, length) != EOF) {\n       adler = adler32(adler, buffer, length);\n     }\n     if (adler != original_adler) error();\n*/\n\nZEXTERN uLong ZEXPORT adler32_z OF((uLong adler, const Bytef *buf,\n                                    z_size_t len));\n/*\n     Same as adler32(), but with a size_t length.\n*/\n\n/*\nZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2,\n                                          z_off_t len2));\n\n     Combine two Adler-32 checksums into one.  For two sequences of bytes, seq1\n   and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for\n   each, adler1 and adler2.  adler32_combine() returns the Adler-32 checksum of\n   seq1 and seq2 concatenated, requiring only adler1, adler2, and len2.  Note\n   that the z_off_t type (like off_t) is a signed integer.  If len2 is\n   negative, the result has no meaning or utility.\n*/\n\nZEXTERN uLong ZEXPORT crc32   OF((uLong crc, const Bytef *buf, uInt len));\n/*\n     Update a running CRC-32 with the bytes buf[0..len-1] and return the\n   updated CRC-32.  If buf is Z_NULL, this function returns the required\n   initial value for the crc.  Pre- and post-conditioning (one's complement) is\n   performed within this function so it shouldn't be done by the application.\n\n   Usage example:\n\n     uLong crc = crc32(0L, Z_NULL, 0);\n\n     while (read_buffer(buffer, length) != EOF) {\n       crc = crc32(crc, buffer, length);\n     }\n     if (crc != original_crc) error();\n*/\n\nZEXTERN uLong ZEXPORT crc32_z OF((uLong adler, const Bytef *buf,\n                                  z_size_t len));\n/*\n     Same as crc32(), but with a size_t length.\n*/\n\n/*\nZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2));\n\n     Combine two CRC-32 check values into one.  For two sequences of bytes,\n   seq1 and seq2 with lengths len1 and len2, CRC-32 check values were\n   calculated for each, crc1 and crc2.  crc32_combine() returns the CRC-32\n   check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and\n   len2.\n*/\n\n\n                        /* various hacks, don't look :) */\n\n/* deflateInit and inflateInit are macros to allow checking the zlib version\n * and the compiler's view of z_stream:\n */\nZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level,\n                                     const char *version, int stream_size));\nZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm,\n                                     const char *version, int stream_size));\nZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int  level, int  method,\n                                      int windowBits, int memLevel,\n                                      int strategy, const char *version,\n                                      int stream_size));\nZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int  windowBits,\n                                      const char *version, int stream_size));\nZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits,\n                                         unsigned char FAR *window,\n                                         const char *version,\n                                         int stream_size));\n#ifdef Z_PREFIX_SET\n#  define z_deflateInit(strm, level) \\\n          deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream))\n#  define z_inflateInit(strm) \\\n          inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream))\n#  define z_deflateInit2(strm, level, method, windowBits, memLevel, strategy) \\\n          deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\\\n                        (strategy), ZLIB_VERSION, (int)sizeof(z_stream))\n#  define z_inflateInit2(strm, windowBits) \\\n          inflateInit2_((strm), (windowBits), ZLIB_VERSION, \\\n                        (int)sizeof(z_stream))\n#  define z_inflateBackInit(strm, windowBits, window) \\\n          inflateBackInit_((strm), (windowBits), (window), \\\n                           ZLIB_VERSION, (int)sizeof(z_stream))\n#else\n#  define deflateInit(strm, level) \\\n          deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream))\n#  define inflateInit(strm) \\\n          inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream))\n#  define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \\\n          deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\\\n                        (strategy), ZLIB_VERSION, (int)sizeof(z_stream))\n#  define inflateInit2(strm, windowBits) \\\n          inflateInit2_((strm), (windowBits), ZLIB_VERSION, \\\n                        (int)sizeof(z_stream))\n#  define inflateBackInit(strm, windowBits, window) \\\n          inflateBackInit_((strm), (windowBits), (window), \\\n                           ZLIB_VERSION, (int)sizeof(z_stream))\n#endif\n\n#ifndef Z_SOLO\n\n/* gzgetc() macro and its supporting function and exposed data structure.  Note\n * that the real internal state is much larger than the exposed structure.\n * This abbreviated structure exposes just enough for the gzgetc() macro.  The\n * user should not mess with these exposed elements, since their names or\n * behavior could change in the future, perhaps even capriciously.  They can\n * only be used by the gzgetc() macro.  You have been warned.\n */\nstruct gzFile_s {\n    unsigned have;\n    unsigned char *next;\n    z_off64_t pos;\n};\nZEXTERN int ZEXPORT gzgetc_ OF((gzFile file));  /* backward compatibility */\n#ifdef Z_PREFIX_SET\n#  undef z_gzgetc\n#  define z_gzgetc(g) \\\n          ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : (gzgetc)(g))\n#else\n#  define gzgetc(g) \\\n          ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : (gzgetc)(g))\n#endif\n\n/* provide 64-bit offset functions if _LARGEFILE64_SOURCE defined, and/or\n * change the regular functions to 64 bits if _FILE_OFFSET_BITS is 64 (if\n * both are true, the application gets the *64 functions, and the regular\n * functions are changed to 64 bits) -- in case these are set on systems\n * without large file support, _LFS64_LARGEFILE must also be true\n */\n#ifdef Z_LARGE64\n   ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *));\n   ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int));\n   ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile));\n   ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile));\n   ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off64_t));\n   ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off64_t));\n#endif\n\n#if !defined(ZLIB_INTERNAL) && defined(Z_WANT64)\n#  ifdef Z_PREFIX_SET\n#    define z_gzopen z_gzopen64\n#    define z_gzseek z_gzseek64\n#    define z_gztell z_gztell64\n#    define z_gzoffset z_gzoffset64\n#    define z_adler32_combine z_adler32_combine64\n#    define z_crc32_combine z_crc32_combine64\n#  else\n#    define gzopen gzopen64\n#    define gzseek gzseek64\n#    define gztell gztell64\n#    define gzoffset gzoffset64\n#    define adler32_combine adler32_combine64\n#    define crc32_combine crc32_combine64\n#  endif\n#  ifndef Z_LARGE64\n     ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *));\n     ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int));\n     ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile));\n     ZEXTERN z_off_t ZEXPORT gzoffset64 OF((gzFile));\n     ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t));\n     ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t));\n#  endif\n#else\n   ZEXTERN gzFile ZEXPORT gzopen OF((const char *, const char *));\n   ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile, z_off_t, int));\n   ZEXTERN z_off_t ZEXPORT gztell OF((gzFile));\n   ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile));\n   ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t));\n   ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t));\n#endif\n\n#else /* Z_SOLO */\n\n   ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t));\n   ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t));\n\n#endif /* !Z_SOLO */\n\n/* undocumented functions */\nZEXTERN const char   * ZEXPORT zError           OF((int));\nZEXTERN int            ZEXPORT inflateSyncPoint OF((z_streamp));\nZEXTERN const z_crc_t FAR * ZEXPORT get_crc_table    OF((void));\nZEXTERN int            ZEXPORT inflateUndermine OF((z_streamp, int));\nZEXTERN int            ZEXPORT inflateValidate OF((z_streamp, int));\nZEXTERN unsigned long  ZEXPORT inflateCodesUsed OF ((z_streamp));\nZEXTERN int            ZEXPORT inflateResetKeep OF((z_streamp));\nZEXTERN int            ZEXPORT deflateResetKeep OF((z_streamp));\n#if (defined(_WIN32) || defined(__CYGWIN__)) && !defined(Z_SOLO)\nZEXTERN gzFile         ZEXPORT gzopen_w OF((const wchar_t *path,\n                                            const char *mode));\n#endif\n#if defined(STDC) || defined(Z_HAVE_STDARG_H)\n#  ifndef Z_SOLO\nZEXTERN int            ZEXPORTVA gzvprintf Z_ARG((gzFile file,\n                                                  const char *format,\n                                                  va_list va));\n#  endif\n#endif\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif /* ZLIB_H */\n"
  },
  {
    "path": "licence.txt",
    "content": "Copyright (c) 2021, Richard T. Russell, http://www.rtrussell.co.uk/\n\nThis software is provided 'as-is', without any express or implied\nwarranty.  In no event will the authors be held liable for any damages\narising from the use of this software.\n\nPermission is granted to anyone to use this software for any purpose,\nincluding commercial applications, and to alter it and redistribute it\nfreely, subject to the following restrictions:\n\n1. The origin of this software must not be misrepresented; you must not\n   claim that you wrote the original software.  If you use this software\n   in a product, an acknowledgment in the product documentation would be\n   appreciated but is not required.\n\n2. Altered source versions must be plainly marked as such, and must not be\n   misrepresented as being the original software.\n\n3. This notice may not be removed or altered from any source distribution.\n"
  },
  {
    "path": "src/SDL2_gfxPrimitives.c",
    "content": "/* \n\nSDL2_gfxPrimitives.c: graphics primitives for SDL2 renderers\n\nCopyright (C) 2012-2014  Andreas Schiffler\nModifications and additions for BBC BASIC (C) 2016-2020 Richard Russell\n\nThis software is provided 'as-is', without any express or implied\nwarranty. In no event will the authors be held liable for any damages\narising from the use of this software.\n\nPermission is granted to anyone to use this software for any purpose,\nincluding commercial applications, and to alter it and redistribute it\nfreely, subject to the following restrictions:\n\n1. The origin of this software must not be misrepresented; you must not\nclaim that you wrote the original software. If you use this software\nin a product, an acknowledgment in the product documentation would be\nappreciated but is not required.\n\n2. Altered source versions must be plainly marked as such, and must not be\nmisrepresented as being the original software.\n\n3. This notice may not be removed or altered from any source\ndistribution.\n\nAndreas Schiffler -- aschiffler at ferzkopp dot net\nRichard Russell -- richard at rtrussell dot co dot uk\n\n*/\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <math.h>\n#include <string.h>\n\n#include \"SDL2_gfxPrimitives.h\"\n#include \"SDL2_rotozoom.h\"\n#include \"SDL2_gfxPrimitives_font.h\"\n\n/* ---- Structures */\n\n/*!\n\\brief The structure passed to the internal Bresenham iterator.\n*/\ntypedef struct {\n\tSint16 x, y;\n\tint dx, dy, s1, s2, swapdir, error;\n\tUint32 count;\n} SDL2_gfxBresenhamIterator;\n\n/* ---- Pixel */\n\n/*!\n\\brief Draw pixel  in currently set color.\n\n\\param renderer The renderer to draw on.\n\\param x X (horizontal) coordinate of the pixel.\n\\param y Y (vertical) coordinate of the pixel.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint pixel(SDL_Renderer *renderer, Sint16 x, Sint16 y)\n{\n\treturn SDL_RenderDrawPoint(renderer, x, y);\n}\n\n/*!\n\\brief Draw pixel with blending enabled if a<255.\n\n\\param renderer The renderer to draw on.\n\\param x X (horizontal) coordinate of the pixel.\n\\param y Y (vertical) coordinate of the pixel.\n\\param color The color value of the pixel to draw (0xAABBGGRR). \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint pixelColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, Uint32 color)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn pixelRGBA(renderer, x, y, c[0], c[1], c[2], c[3]);\n}\n\n/*!\n\\brief Draw pixel with blending enabled if a<255.\n\n\\param renderer The renderer to draw on.\n\\param x X (horizontal) coordinate of the pixel.\n\\param y Y (vertical) coordinate of the pixel.\n\\param r The red color value of the pixel to draw. \n\\param g The green color value of the pixel to draw.\n\\param b The blue color value of the pixel to draw.\n\\param a The alpha value of the pixel to draw.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint pixelRGBA(SDL_Renderer * renderer, Sint16 x, Sint16 y, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\tint result = 0;\n\tif (a != 255) result |= SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND);\n\tresult |= SDL_SetRenderDrawColor(renderer, r, g, b, a);\n\tresult |= SDL_RenderDrawPoint(renderer, x, y);\n\treturn result;\n}\n\n/*!\n\\brief Draw pixel with blending enabled and using alpha weight on color.\n\n\\param renderer The renderer to draw on.\n\\param x The horizontal coordinate of the pixel.\n\\param y The vertical position of the pixel.\n\\param r The red color value of the pixel to draw. \n\\param g The green color value of the pixel to draw.\n\\param b The blue color value of the pixel to draw.\n\\param a The alpha value of the pixel to draw.\n\\param weight The weight multiplied into the alpha value of the pixel.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint pixelRGBAWeight(SDL_Renderer * renderer, Sint16 x, Sint16 y, Uint8 r, Uint8 g, Uint8 b, Uint8 a, Uint32 weight)\n{\n\t/*\n\t* Modify Alpha by weight \n\t*/\n\tUint32 ax = a;\n\tax = ((ax * weight) >> 8);\n\tif (ax > 255) {\n\t\ta = 255;\n\t} else {\n\t\ta = (Uint8)(ax & 0x000000ff);\n\t}\n\n\treturn pixelRGBA(renderer, x, y, r, g, b, a);\n}\n\n/* ---- Hline */\n\n/*!\n\\brief Draw horizontal line in currently set color\n\n\\param renderer The renderer to draw on.\n\\param x1 X coordinate of the first point (i.e. left) of the line.\n\\param x2 X coordinate of the second point (i.e. right) of the line.\n\\param y Y coordinate of the points of the line.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint hline(SDL_Renderer * renderer, Sint16 x1, Sint16 x2, Sint16 y)\n{\n\treturn SDL_RenderDrawLine(renderer, x1, y, x2, y);;\n}\n\n\n/*!\n\\brief Draw horizontal line with blending.\n\n\\param renderer The renderer to draw on.\n\\param x1 X coordinate of the first point (i.e. left) of the line.\n\\param x2 X coordinate of the second point (i.e. right) of the line.\n\\param y Y coordinate of the points of the line.\n\\param color The color value of the line to draw (0xAABBGGRR). \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint hlineColor(SDL_Renderer * renderer, Sint16 x1, Sint16 x2, Sint16 y, Uint32 color)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn hlineRGBA(renderer, x1, x2, y, c[0], c[1], c[2], c[3]);\n}\n\n/*!\n\\brief Draw horizontal line with blending.\n\n\\param renderer The renderer to draw on.\n\\param x1 X coordinate of the first point (i.e. left) of the line.\n\\param x2 X coordinate of the second point (i.e. right) of the line.\n\\param y Y coordinate of the points of the line.\n\\param r The red value of the line to draw. \n\\param g The green value of the line to draw. \n\\param b The blue value of the line to draw. \n\\param a The alpha value of the line to draw. \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint hlineRGBA(SDL_Renderer * renderer, Sint16 x1, Sint16 x2, Sint16 y, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\tint result = 0;\n\tif (a != 255) result |= SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND);\n\tresult |= SDL_SetRenderDrawColor(renderer, r, g, b, a);\n\tresult |= SDL_RenderDrawLine(renderer, x1, y, x2, y);\n\treturn result;\n}\n\n/* ---- Vline */\n\n/*!\n\\brief Draw vertical line in currently set color\n\n\\param renderer The renderer to draw on.\n\\param x X coordinate of points of the line.\n\\param y1 Y coordinate of the first point (i.e. top) of the line.\n\\param y2 Y coordinate of the second point (i.e. bottom) of the line.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint vline(SDL_Renderer * renderer, Sint16 x, Sint16 y1, Sint16 y2)\n{\n\treturn SDL_RenderDrawLine(renderer, x, y1, x, y2);;\n}\n\n/*!\n\\brief Draw vertical line with blending.\n\n\\param renderer The renderer to draw on.\n\\param x X coordinate of the points of the line.\n\\param y1 Y coordinate of the first point (i.e. top) of the line.\n\\param y2 Y coordinate of the second point (i.e. bottom) of the line.\n\\param color The color value of the line to draw (0xAABBGGRR). \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint vlineColor(SDL_Renderer * renderer, Sint16 x, Sint16 y1, Sint16 y2, Uint32 color)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn vlineRGBA(renderer, x, y1, y2, c[0], c[1], c[2], c[3]);\n}\n\n/*!\n\\brief Draw vertical line with blending.\n\n\\param renderer The renderer to draw on.\n\\param x X coordinate of the points of the line.\n\\param y1 Y coordinate of the first point (i.e. top) of the line.\n\\param y2 Y coordinate of the second point (i.e. bottom) of the line.\n\\param r The red value of the line to draw. \n\\param g The green value of the line to draw. \n\\param b The blue value of the line to draw. \n\\param a The alpha value of the line to draw. \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint vlineRGBA(SDL_Renderer * renderer, Sint16 x, Sint16 y1, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\tint result = 0;\n\tif (a != 255) result |= SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND);\n\tresult |= SDL_SetRenderDrawColor(renderer, r, g, b, a);\n\tresult |= SDL_RenderDrawLine(renderer, x, y1, x, y2);\n\treturn result;\n}\n\n/* ---- Rectangle */\n\n/*!\n\\brief Draw rectangle with blending.\n\n\\param renderer The renderer to draw on.\n\\param x1 X coordinate of the first point (i.e. top right) of the rectangle.\n\\param y1 Y coordinate of the first point (i.e. top right) of the rectangle.\n\\param x2 X coordinate of the second point (i.e. bottom left) of the rectangle.\n\\param y2 Y coordinate of the second point (i.e. bottom left) of the rectangle.\n\\param color The color value of the rectangle to draw (0xAABBGGRR). \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint rectangleColor(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn rectangleRGBA(renderer, x1, y1, x2, y2, c[0], c[1], c[2], c[3]);\n}\n\n/*!\n\\brief Draw rectangle with blending.\n\n\\param renderer The renderer to draw on.\n\\param x1 X coordinate of the first point (i.e. top right) of the rectangle.\n\\param y1 Y coordinate of the first point (i.e. top right) of the rectangle.\n\\param x2 X coordinate of the second point (i.e. bottom left) of the rectangle.\n\\param y2 Y coordinate of the second point (i.e. bottom left) of the rectangle.\n\\param r The red value of the rectangle to draw. \n\\param g The green value of the rectangle to draw. \n\\param b The blue value of the rectangle to draw. \n\\param a The alpha value of the rectangle to draw. \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint rectangleRGBA(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\tint result;\n\tSint16 tmp;\n\tSDL_Rect rect;\n\n\t/*\n\t* Test for special cases of straight lines or single point \n\t*/\n\tif (x1 == x2) {\n\t\tif (y1 == y2) {\n\t\t\treturn (pixelRGBA(renderer, x1, y1, r, g, b, a));\n\t\t} else {\n\t\t\treturn (vlineRGBA(renderer, x1, y1, y2, r, g, b, a));\n\t\t}\n\t} else {\n\t\tif (y1 == y2) {\n\t\t\treturn (hlineRGBA(renderer, x1, x2, y1, r, g, b, a));\n\t\t}\n\t}\n\n\t/*\n\t* Swap x1, x2 if required \n\t*/\n\tif (x1 > x2) {\n\t\ttmp = x1;\n\t\tx1 = x2;\n\t\tx2 = tmp;\n\t}\n\n\t/*\n\t* Swap y1, y2 if required \n\t*/\n\tif (y1 > y2) {\n\t\ttmp = y1;\n\t\ty1 = y2;\n\t\ty2 = tmp;\n\t}\n\n\t/* \n\t* Create destination rect\n\t*/\t\n\trect.x = x1;\n\trect.y = y1;\n\trect.w = x2 - x1;\n\trect.h = y2 - y1;\n\t\n\t/*\n\t* Draw\n\t*/\n\tresult = 0;\n\tif (a != 255) result |= SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND);\n\tresult |= SDL_SetRenderDrawColor(renderer, r, g, b, a);\t\n\tresult |= SDL_RenderDrawRect(renderer, &rect);\n\treturn result;\n}\n\n/* ---- Rounded Rectangle */\n\n/*!\n\\brief Draw rounded-corner rectangle with blending.\n\n\\param renderer The renderer to draw on.\n\\param x1 X coordinate of the first point (i.e. top right) of the rectangle.\n\\param y1 Y coordinate of the first point (i.e. top right) of the rectangle.\n\\param x2 X coordinate of the second point (i.e. bottom left) of the rectangle.\n\\param y2 Y coordinate of the second point (i.e. bottom left) of the rectangle.\n\\param rad The radius of the corner arc.\n\\param color The color value of the rectangle to draw (0xAABBGGRR). \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint roundedRectangleColor(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 rad, Uint32 color)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn roundedRectangleRGBA(renderer, x1, y1, x2, y2, rad, c[0], c[1], c[2], c[3]);\n}\n\n/*!\n\\brief Draw rounded-corner rectangle with blending.\n\n\\param renderer The renderer to draw on.\n\\param x1 X coordinate of the first point (i.e. top right) of the rectangle.\n\\param y1 Y coordinate of the first point (i.e. top right) of the rectangle.\n\\param x2 X coordinate of the second point (i.e. bottom left) of the rectangle.\n\\param y2 Y coordinate of the second point (i.e. bottom left) of the rectangle.\n\\param rad The radius of the corner arc.\n\\param r The red value of the rectangle to draw. \n\\param g The green value of the rectangle to draw. \n\\param b The blue value of the rectangle to draw. \n\\param a The alpha value of the rectangle to draw. \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint roundedRectangleRGBA(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 rad, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\tint result = 0;\n\tSint16 tmp;\n\tSint16 w, h;\n\tSint16 xx1, xx2;\n\tSint16 yy1, yy2;\n\t\n\t/*\n\t* Check renderer\n\t*/\n\tif (renderer == NULL)\n\t{\n\t\treturn -1;\n\t}\n\n\t/*\n\t* Check radius vor valid range\n\t*/\n\tif (rad < 0) {\n\t\treturn -1;\n\t}\n\n\t/*\n\t* Special case - no rounding\n\t*/\n\tif (rad <= 1) {\n\t\treturn rectangleRGBA(renderer, x1, y1, x2, y2, r, g, b, a);\n\t}\n\n\t/*\n\t* Test for special cases of straight lines or single point \n\t*/\n\tif (x1 == x2) {\n\t\tif (y1 == y2) {\n\t\t\treturn (pixelRGBA(renderer, x1, y1, r, g, b, a));\n\t\t} else {\n\t\t\treturn (vlineRGBA(renderer, x1, y1, y2, r, g, b, a));\n\t\t}\n\t} else {\n\t\tif (y1 == y2) {\n\t\t\treturn (hlineRGBA(renderer, x1, x2, y1, r, g, b, a));\n\t\t}\n\t}\n\n\t/*\n\t* Swap x1, x2 if required \n\t*/\n\tif (x1 > x2) {\n\t\ttmp = x1;\n\t\tx1 = x2;\n\t\tx2 = tmp;\n\t}\n\n\t/*\n\t* Swap y1, y2 if required \n\t*/\n\tif (y1 > y2) {\n\t\ttmp = y1;\n\t\ty1 = y2;\n\t\ty2 = tmp;\n\t}\n\n\t/*\n\t* Calculate width&height \n\t*/\n\tw = x2 - x1;\n\th = y2 - y1;\n\n\t/*\n\t* Maybe adjust radius\n\t*/\n\tif ((rad * 2) > w)  \n\t{\n\t\trad = w / 2;\n\t}\n\tif ((rad * 2) > h)\n\t{\n\t\trad = h / 2;\n\t}\n\n\t/*\n\t* Draw corners\n\t*/\n\txx1 = x1 + rad;\n\txx2 = x2 - rad;\n\tyy1 = y1 + rad;\n\tyy2 = y2 - rad;\n\tresult |= arcRGBA(renderer, xx1, yy1, rad, 180, 270, r, g, b, a);\n\tresult |= arcRGBA(renderer, xx2, yy1, rad, 270, 360, r, g, b, a);\n\tresult |= arcRGBA(renderer, xx1, yy2, rad,  90, 180, r, g, b, a);\n\tresult |= arcRGBA(renderer, xx2, yy2, rad,   0,  90, r, g, b, a);\n\n\t/*\n\t* Draw lines\n\t*/\n\tif (xx1 <= xx2) {\n\t\tresult |= hlineRGBA(renderer, xx1, xx2, y1, r, g, b, a);\n\t\tresult |= hlineRGBA(renderer, xx1, xx2, y2, r, g, b, a);\n\t}\n\tif (yy1 <= yy2) {\n\t\tresult |= vlineRGBA(renderer, x1, yy1, yy2, r, g, b, a);\n\t\tresult |= vlineRGBA(renderer, x2, yy1, yy2, r, g, b, a);\n\t}\n\n\treturn result;\n}\n\n/* ---- Rounded Box */\n\n/*!\n\\brief Draw rounded-corner box (filled rectangle) with blending.\n\n\\param renderer The renderer to draw on.\n\\param x1 X coordinate of the first point (i.e. top right) of the box.\n\\param y1 Y coordinate of the first point (i.e. top right) of the box.\n\\param x2 X coordinate of the second point (i.e. bottom left) of the box.\n\\param y2 Y coordinate of the second point (i.e. bottom left) of the box.\n\\param rad The radius of the corner arcs of the box.\n\\param color The color value of the box to draw (0xAABBGGRR). \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint roundedBoxColor(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 rad, Uint32 color)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn roundedBoxRGBA(renderer, x1, y1, x2, y2, rad, c[0], c[1], c[2], c[3]);\n}\n\n/*!\n\\brief Draw rounded-corner box (filled rectangle) with blending.\n\n\\param renderer The renderer to draw on.\n\\param x1 X coordinate of the first point (i.e. top right) of the box.\n\\param y1 Y coordinate of the first point (i.e. top right) of the box.\n\\param x2 X coordinate of the second point (i.e. bottom left) of the box.\n\\param y2 Y coordinate of the second point (i.e. bottom left) of the box.\n\\param rad The radius of the corner arcs of the box.\n\\param r The red value of the box to draw. \n\\param g The green value of the box to draw. \n\\param b The blue value of the box to draw. \n\\param a The alpha value of the box to draw. \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint roundedBoxRGBA(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2,\n\tSint16 y2, Sint16 rad, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\tint result;\n\tSint16 w, h, r2, tmp;\n\tSint16 cx = 0;\n\tSint16 cy = rad;\n\tSint16 ocx = (Sint16) 0xffff;\n\tSint16 ocy = (Sint16) 0xffff;\n\tSint16 df = 1 - rad;\n\tSint16 d_e = 3;\n\tSint16 d_se = -2 * rad + 5;\n\tSint16 xpcx, xmcx, xpcy, xmcy;\n\tSint16 ypcy, ymcy, ypcx, ymcx;\n\tSint16 x, y, dx, dy;\n\n\t/* \n\t* Check destination renderer \n\t*/\n\tif (renderer == NULL)\n\t{\n\t\treturn -1;\n\t}\n\n\t/*\n\t* Check radius vor valid range\n\t*/\n\tif (rad < 0) {\n\t\treturn -1;\n\t}\n\n\t/*\n\t* Special case - no rounding\n\t*/\n\tif (rad <= 1) {\n\t\treturn boxRGBA(renderer, x1, y1, x2, y2, r, g, b, a);\n\t}\n\n\t/*\n\t* Test for special cases of straight lines or single point \n\t*/\n\tif (x1 == x2) {\n\t\tif (y1 == y2) {\n\t\t\treturn (pixelRGBA(renderer, x1, y1, r, g, b, a));\n\t\t} else {\n\t\t\treturn (vlineRGBA(renderer, x1, y1, y2, r, g, b, a));\n\t\t}\n\t} else {\n\t\tif (y1 == y2) {\n\t\t\treturn (hlineRGBA(renderer, x1, x2, y1, r, g, b, a));\n\t\t}\n\t}\n\n\t/*\n\t* Swap x1, x2 if required \n\t*/\n\tif (x1 > x2) {\n\t\ttmp = x1;\n\t\tx1 = x2;\n\t\tx2 = tmp;\n\t}\n\n\t/*\n\t* Swap y1, y2 if required \n\t*/\n\tif (y1 > y2) {\n\t\ttmp = y1;\n\t\ty1 = y2;\n\t\ty2 = tmp;\n\t}\n\n\t/*\n\t* Calculate width&height \n\t*/\n\tw = x2 - x1 + 1;\n\th = y2 - y1 + 1;\n\n\t/*\n\t* Maybe adjust radius\n\t*/\n\tr2 = rad + rad;\n\tif (r2 > w)  \n\t{\n\t\trad = w / 2;\n\t\tr2 = rad + rad;\n\t}\n\tif (r2 > h)\n\t{\n\t\trad = h / 2;\n\t}\n\n\t/* Setup filled circle drawing for corners */\n\tx = x1 + rad;\n\ty = y1 + rad;\n\tdx = x2 - x1 - rad - rad;\n\tdy = y2 - y1 - rad - rad;\n\n\t/*\n\t* Set color\n\t*/\n\tresult = 0;\n\tif (a != 255)  result |= SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND);\n\tresult |= SDL_SetRenderDrawColor(renderer, r, g, b, a);\n\n\t/*\n\t* Draw corners\n\t*/\n\tdo {\n\t\txpcx = x + cx;\n\t\txmcx = x - cx;\n\t\txpcy = x + cy;\n\t\txmcy = x - cy;\n\t\tif (ocy != cy) {\n\t\t\tif (cy > 0) {\n\t\t\t\typcy = y + cy;\n\t\t\t\tymcy = y - cy;\n\t\t\t\tresult |= hline(renderer, xmcx, xpcx + dx, ypcy + dy);\n\t\t\t\tresult |= hline(renderer, xmcx, xpcx + dx, ymcy);\n\t\t\t} else {\n\t\t\t\tresult |= hline(renderer, xmcx, xpcx + dx, y);\n\t\t\t}\n\t\t\tocy = cy;\n\t\t}\n\t\tif (ocx != cx) {\n\t\t\tif (cx != cy) {\n\t\t\t\tif (cx > 0) {\n\t\t\t\t\typcx = y + cx;\n\t\t\t\t\tymcx = y - cx;\n\t\t\t\t\tresult |= hline(renderer, xmcy, xpcy + dx, ymcx);\n\t\t\t\t\tresult |= hline(renderer, xmcy, xpcy + dx, ypcx + dy);\n\t\t\t\t} else {\n\t\t\t\t\tresult |= hline(renderer, xmcy, xpcy + dx, y);\n\t\t\t\t}\n\t\t\t}\n\t\t\tocx = cx;\n\t\t}\n\n\t\t/*\n\t\t* Update \n\t\t*/\n\t\tif (df < 0) {\n\t\t\tdf += d_e;\n\t\t\td_e += 2;\n\t\t\td_se += 2;\n\t\t} else {\n\t\t\tdf += d_se;\n\t\t\td_e += 2;\n\t\t\td_se += 4;\n\t\t\tcy--;\n\t\t}\n\t\tcx++;\n\t} while (cx <= cy);\n\n\t/* Inside */\n\tif (dx > 0 && dy > 0) {\n\t\tresult |= boxRGBA(renderer, x1, y1 + rad + 1, x2, y2 - rad, r, g, b, a);\n\t}\n\n\treturn (result);\n}\n\n/* ---- Box */\n\n/*!\n\\brief Draw box (filled rectangle) with blending.\n\n\\param renderer The renderer to draw on.\n\\param x1 X coordinate of the first point (i.e. top right) of the box.\n\\param y1 Y coordinate of the first point (i.e. top right) of the box.\n\\param x2 X coordinate of the second point (i.e. bottom left) of the box.\n\\param y2 Y coordinate of the second point (i.e. bottom left) of the box.\n\\param color The color value of the box to draw (0xAABBGGRR). \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint boxColor(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn boxRGBA(renderer, x1, y1, x2, y2, c[0], c[1], c[2], c[3]);\n}\n\n/*!\n\\brief Draw box (filled rectangle) with blending.\n\n\\param renderer The renderer to draw on.\n\\param x1 X coordinate of the first point (i.e. top right) of the box.\n\\param y1 Y coordinate of the first point (i.e. top right) of the box.\n\\param x2 X coordinate of the second point (i.e. bottom left) of the box.\n\\param y2 Y coordinate of the second point (i.e. bottom left) of the box.\n\\param r The red value of the box to draw. \n\\param g The green value of the box to draw. \n\\param b The blue value of the box to draw. \n\\param a The alpha value of the box to draw.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint boxRGBA(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\tint result;\n\tSint16 tmp;\n\tSDL_Rect rect;\n\n\t/*\n\t* Test for special cases of straight lines or single point \n\t*/\n\tif (x1 == x2) {\n\t\tif (y1 == y2) {\n\t\t\treturn (pixelRGBA(renderer, x1, y1, r, g, b, a));\n\t\t} else {\n\t\t\treturn (vlineRGBA(renderer, x1, y1, y2, r, g, b, a));\n\t\t}\n\t} else {\n\t\tif (y1 == y2) {\n\t\t\treturn (hlineRGBA(renderer, x1, x2, y1, r, g, b, a));\n\t\t}\n\t}\n\n\t/*\n\t* Swap x1, x2 if required \n\t*/\n\tif (x1 > x2) {\n\t\ttmp = x1;\n\t\tx1 = x2;\n\t\tx2 = tmp;\n\t}\n\n\t/*\n\t* Swap y1, y2 if required \n\t*/\n\tif (y1 > y2) {\n\t\ttmp = y1;\n\t\ty1 = y2;\n\t\ty2 = tmp;\n\t}\n\n\t/* \n\t* Create destination rect\n\t*/\t\n\trect.x = x1;\n\trect.y = y1;\n\trect.w = x2 - x1 + 1;\n\trect.h = y2 - y1 + 1;\n\t\n\t/*\n\t* Draw\n\t*/\n\tresult = 0;\n\tif (a != 255) result |= SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND);\n\tresult |= SDL_SetRenderDrawColor(renderer, r, g, b, a);\t\n\tresult |= SDL_RenderFillRect(renderer, &rect);\n\treturn result;\n}\n\n/* ----- Line */\n\n/*!\n\\brief Draw line with alpha blending using the currently set color.\n\n\\param renderer The renderer to draw on.\n\\param x1 X coordinate of the first point of the line.\n\\param y1 Y coordinate of the first point of the line.\n\\param x2 X coordinate of the second point of the line.\n\\param y2 Y coordinate of the second point of the line.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint line(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2)\n{\n\t/*\n\t* Draw\n\t*/\n\treturn SDL_RenderDrawLine(renderer, x1, y1, x2, y2);\n}\n\n/*!\n\\brief Draw line with alpha blending.\n\n\\param renderer The renderer to draw on.\n\\param x1 X coordinate of the first point of the line.\n\\param y1 Y coordinate of the first point of the line.\n\\param x2 X coordinate of the second point of the line.\n\\param y2 Y coordinate of the seond point of the line.\n\\param color The color value of the line to draw (0xAABBGGRR). \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint lineColor(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn lineRGBA(renderer, x1, y1, x2, y2, c[0], c[1], c[2], c[3]);\n}\n\n/*!\n\\brief Draw line with alpha blending.\n\n\\param renderer The renderer to draw on.\n\\param x1 X coordinate of the first point of the line.\n\\param y1 Y coordinate of the first point of the line.\n\\param x2 X coordinate of the second point of the line.\n\\param y2 Y coordinate of the second point of the line.\n\\param r The red value of the line to draw. \n\\param g The green value of the line to draw. \n\\param b The blue value of the line to draw. \n\\param a The alpha value of the line to draw.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint lineRGBA(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\t/*\n\t* Draw\n\t*/\n\tint result = 0;\n\tif (a != 255) result |= SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND);\n\tresult |= SDL_SetRenderDrawColor(renderer, r, g, b, a);\t\n\tresult |= SDL_RenderDrawLine(renderer, x1, y1, x2, y2);\n\treturn result;\n}\n\n/* ---- AA Line */\n\n#define AAlevels 256\n#define AAbits 8\n\n/*!\n\\brief Internal function to draw anti-aliased line with alpha blending and endpoint control.\n\nThis implementation of the Wu antialiasing code is based on Mike Abrash's\nDDJ article which was reprinted as Chapter 42 of his Graphics Programming\nBlack Book, but has been optimized to work with SDL and utilizes 32-bit\nfixed-point arithmetic by A. Schiffler. The endpoint control allows the\nsupression to draw the last pixel useful for rendering continous aa-lines\nwith alpha<255.\n\n\\param renderer The renderer to draw on.\n\\param x1 X coordinate of the first point of the aa-line.\n\\param y1 Y coordinate of the first point of the aa-line.\n\\param x2 X coordinate of the second point of the aa-line.\n\\param y2 Y coordinate of the second point of the aa-line.\n\\param r The red value of the aa-line to draw. \n\\param g The green value of the aa-line to draw. \n\\param b The blue value of the aa-line to draw. \n\\param a The alpha value of the aa-line to draw.\n\\param draw_endpoint Flag indicating if the endpoint should be drawn; draw if non-zero.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint _aalineRGBA(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a, int draw_endpoint)\n{\n\tSint32 xx0, yy0, xx1, yy1;\n\tint result;\n\tUint32 intshift, erracc, erradj;\n\tUint32 erracctmp, wgt;\n\tint dx, dy, tmp, xdir, y0p1, x0pxdir;\n\n\t/*\n\t* Keep on working with 32bit numbers \n\t*/\n\txx0 = x1;\n\tyy0 = y1;\n\txx1 = x2;\n\tyy1 = y2;\n\n\t/*\n\t* Reorder points to make dy positive \n\t*/\n\tif (yy0 > yy1) {\n\t\ttmp = yy0;\n\t\tyy0 = yy1;\n\t\tyy1 = tmp;\n\t\ttmp = xx0;\n\t\txx0 = xx1;\n\t\txx1 = tmp;\n\t}\n\n\t/*\n\t* Calculate distance \n\t*/\n\tdx = xx1 - xx0;\n\tdy = yy1 - yy0;\n\n\t/*\n\t* Adjust for negative dx and set xdir \n\t*/\n\tif (dx >= 0) {\n\t\txdir = 1;\n\t} else {\n\t\txdir = -1;\n\t\tdx = (-dx);\n\t}\n\t\n\t/*\n\t* Check for special cases \n\t*/\n\tif (dx == 0) {\n\t\t/*\n\t\t* Vertical line \n\t\t*/\n\t\tif (draw_endpoint)\n\t\t{\n\t\t\treturn (vlineRGBA(renderer, x1, y1, y2, r, g, b, a));\n\t\t} else {\n\t\t\tif (dy > 0) {\n\t\t\t\treturn (vlineRGBA(renderer, x1, yy0, yy0+dy, r, g, b, a));\n\t\t\t} else {\n\t\t\t\treturn (pixelRGBA(renderer, x1, y1, r, g, b, a));\n\t\t\t}\n\t\t}\n\t} else if (dy == 0) {\n\t\t/*\n\t\t* Horizontal line \n\t\t*/\n\t\tif (draw_endpoint)\n\t\t{\n\t\t\treturn (hlineRGBA(renderer, x1, x2, y1, r, g, b, a));\n\t\t} else {\n\t\t\tif (dx > 0) {\n\t\t\t\treturn (hlineRGBA(renderer, xx0, xx0+(xdir*dx), y1, r, g, b, a));\n\t\t\t} else {\n\t\t\t\treturn (pixelRGBA(renderer, x1, y1, r, g, b, a));\n\t\t\t}\n\t\t}\n\t} else if ((dx == dy) && (draw_endpoint)) {\n\t\t/*\n\t\t* Diagonal line (with endpoint)\n\t\t*/\n\t\treturn (lineRGBA(renderer, x1, y1, x2, y2,  r, g, b, a));\n\t}\n\n\n\t/*\n\t* Line is not horizontal, vertical or diagonal (with endpoint)\n\t*/\n\tresult = 0;\n\n\t/*\n\t* Zero accumulator \n\t*/\n\terracc = 0;\n\n\t/*\n\t* # of bits by which to shift erracc to get intensity level \n\t*/\n\tintshift = 32 - AAbits;\n\n\t/*\n\t* Draw the initial pixel in the foreground color \n\t*/\n\tresult |= pixelRGBA(renderer, x1, y1, r, g, b, a);\n\n\t/*\n\t* x-major or y-major? \n\t*/\n\tif (dy > dx) {\n\n\t\t/*\n\t\t* y-major.  Calculate 16-bit fixed point fractional part of a pixel that\n\t\t* X advances every time Y advances 1 pixel, truncating the result so that\n\t\t* we won't overrun the endpoint along the X axis \n\t\t*/\n\t\t/*\n\t\t* Not-so-portable version: erradj = ((Uint64)dx << 32) / (Uint64)dy; \n\t\t*/\n\t\terradj = ((dx << 16) / dy) << 16;\n\n\t\t/*\n\t\t* draw all pixels other than the first and last \n\t\t*/\n\t\tx0pxdir = xx0 + xdir;\n\t\twhile (--dy) {\n\t\t\terracctmp = erracc;\n\t\t\terracc += erradj;\n\t\t\tif (erracc <= erracctmp) {\n\t\t\t\t/*\n\t\t\t\t* rollover in error accumulator, x coord advances \n\t\t\t\t*/\n\t\t\t\txx0 = x0pxdir;\n\t\t\t\tx0pxdir += xdir;\n\t\t\t}\n\t\t\tyy0++;\t\t/* y-major so always advance Y */\n\n\t\t\t/*\n\t\t\t* the AAbits most significant bits of erracc give us the intensity\n\t\t\t* weighting for this pixel, and the complement of the weighting for\n\t\t\t* the paired pixel. \n\t\t\t*/\n\t\t\twgt = (erracc >> intshift) & 255;\n\t\t\tresult |= pixelRGBAWeight (renderer, xx0, yy0, r, g, b, a, 255 - wgt);\n\t\t\tresult |= pixelRGBAWeight (renderer, x0pxdir, yy0, r, g, b, a, wgt);\n\t\t}\n\n\t} else {\n\n\t\t/*\n\t\t* x-major line.  Calculate 16-bit fixed-point fractional part of a pixel\n\t\t* that Y advances each time X advances 1 pixel, truncating the result so\n\t\t* that we won't overrun the endpoint along the X axis. \n\t\t*/\n\t\t/*\n\t\t* Not-so-portable version: erradj = ((Uint64)dy << 32) / (Uint64)dx; \n\t\t*/\n\t\terradj = ((dy << 16) / dx) << 16;\n\n\t\t/*\n\t\t* draw all pixels other than the first and last \n\t\t*/\n\t\ty0p1 = yy0 + 1;\n\t\twhile (--dx) {\n\n\t\t\terracctmp = erracc;\n\t\t\terracc += erradj;\n\t\t\tif (erracc <= erracctmp) {\n\t\t\t\t/*\n\t\t\t\t* Accumulator turned over, advance y \n\t\t\t\t*/\n\t\t\t\tyy0 = y0p1;\n\t\t\t\ty0p1++;\n\t\t\t}\n\t\t\txx0 += xdir;\t/* x-major so always advance X */\n\t\t\t/*\n\t\t\t* the AAbits most significant bits of erracc give us the intensity\n\t\t\t* weighting for this pixel, and the complement of the weighting for\n\t\t\t* the paired pixel. \n\t\t\t*/\n\t\t\twgt = (erracc >> intshift) & 255;\n\t\t\tresult |= pixelRGBAWeight (renderer, xx0, yy0, r, g, b, a, 255 - wgt);\n\t\t\tresult |= pixelRGBAWeight (renderer, xx0, y0p1, r, g, b, a, wgt);\n\t\t}\n\t}\n\n\t/*\n\t* Do we have to draw the endpoint \n\t*/\n\tif (draw_endpoint) {\n\t\t/*\n\t\t* Draw final pixel, always exactly intersected by the line and doesn't\n\t\t* need to be weighted. \n\t\t*/\n\t\tresult |= pixelRGBA (renderer, x2, y2, r, g, b, a);\n\t}\n\n\treturn (result);\n}\n\n/*!\n\\brief Draw anti-aliased line with alpha blending.\n\n\\param renderer The renderer to draw on.\n\\param x1 X coordinate of the first point of the aa-line.\n\\param y1 Y coordinate of the first point of the aa-line.\n\\param x2 X coordinate of the second point of the aa-line.\n\\param y2 Y coordinate of the second point of the aa-line.\n\\param color The color value of the aa-line to draw (0xAABBGGRR).\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint aalineColor(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn _aalineRGBA(renderer, x1, y1, x2, y2, c[0], c[1], c[2], c[3], 1);\n}\n\n/*!\n\\brief Draw anti-aliased line with alpha blending.\n\n\\param renderer The renderer to draw on.\n\\param x1 X coordinate of the first point of the aa-line.\n\\param y1 Y coordinate of the first point of the aa-line.\n\\param x2 X coordinate of the second point of the aa-line.\n\\param y2 Y coordinate of the second point of the aa-line.\n\\param r The red value of the aa-line to draw. \n\\param g The green value of the aa-line to draw. \n\\param b The blue value of the aa-line to draw. \n\\param a The alpha value of the aa-line to draw.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint aalineRGBA(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\treturn _aalineRGBA(renderer, x1, y1, x2, y2, r, g, b, a, 1);\n}\n\n/* ----- Circle */\n\n/*!\n\\brief Draw circle with blending.\n\n\\param renderer The renderer to draw on.\n\\param x X coordinate of the center of the circle.\n\\param y Y coordinate of the center of the circle.\n\\param rad Radius in pixels of the circle.\n\\param color The color value of the circle to draw (0xAABBGGRR). \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint circleColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad, Uint32 color)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn ellipseRGBA(renderer, x, y, rad, rad, c[0], c[1], c[2], c[3]);\n}\n\n/*!\n\\brief Draw circle with blending.\n\n\\param renderer The renderer to draw on.\n\\param x X coordinate of the center of the circle.\n\\param y Y coordinate of the center of the circle.\n\\param rad Radius in pixels of the circle.\n\\param r The red value of the circle to draw. \n\\param g The green value of the circle to draw. \n\\param b The blue value of the circle to draw. \n\\param a The alpha value of the circle to draw.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint circleRGBA(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\treturn ellipseRGBA(renderer, x, y, rad, rad, r, g, b, a);\n}\n\n/* ----- Arc */\n\n/*!\n\\brief Arc with blending.\n\n\\param renderer The renderer to draw on.\n\\param x X coordinate of the center of the arc.\n\\param y Y coordinate of the center of the arc.\n\\param rad Radius in pixels of the arc.\n\\param start Starting radius in degrees of the arc. 0 degrees is right, increasing clockwise.\n\\param end Ending radius in degrees of the arc. 0 degrees is right, increasing clockwise.\n\\param color The color value of the arc to draw (0xAABBGGRR). \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint arcColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad, Sint16 start, Sint16 end, Uint32 color)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn arcRGBA(renderer, x, y, rad, start, end, c[0], c[1], c[2], c[3]);\n}\n\n/*!\n\\brief Arc with blending.\n\n\\param renderer The renderer to draw on.\n\\param x X coordinate of the center of the arc.\n\\param y Y coordinate of the center of the arc.\n\\param rad Radius in pixels of the arc.\n\\param start Starting radius in degrees of the arc. 0 degrees is right, increasing clockwise.\n\\param end Ending radius in degrees of the arc. 0 degrees is right, increasing clockwise.\n\\param r The red value of the arc to draw. \n\\param g The green value of the arc to draw. \n\\param b The blue value of the arc to draw. \n\\param a The alpha value of the arc to draw.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\n/* TODO: rewrite algorithm; arc endpoints are not always drawn */\nint arcRGBA(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad, Sint16 start, Sint16 end, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\tint result;\n\tSint16 cx = 0;\n\tSint16 cy = rad;\n\tSint16 df = 1 - rad;\n\tSint16 d_e = 3;\n\tSint16 d_se = -2 * rad + 5;\n\tSint16 xpcx, xmcx, xpcy, xmcy;\n\tSint16 ypcy, ymcy, ypcx, ymcx;\n\tUint8 drawoct;\n\tint startoct, endoct, oct, stopval_start = 0, stopval_end = 0;\n\tdouble dstart, dend, temp = 0.;\n\n\t/*\n\t* Sanity check radius \n\t*/\n\tif (rad < 0) {\n\t\treturn (-1);\n\t}\n\n\t/*\n\t* Special case for rad=0 - draw a point \n\t*/\n\tif (rad == 0) {\n\t\treturn (pixelRGBA(renderer, x, y, r, g, b, a));\n\t}\n\n\t/*\n\t Octant labelling\n\t      \n\t  \\ 5 | 6 /\n\t   \\  |  /\n\t  4 \\ | / 7\n\t     \\|/\n\t------+------ +x\n\t     /|\\\n\t  3 / | \\ 0\n\t   /  |  \\\n\t  / 2 | 1 \\\n\t      +y\n\n\t Initially reset bitmask to 0x00000000\n\t the set whether or not to keep drawing a given octant.\n\t For example: 0x00111100 means we're drawing in octants 2-5\n\t*/\n\tdrawoct = 0; \n\n\t/*\n\t* Fixup angles\n\t*/\n\tstart %= 360;\n\tend %= 360;\n\t/* 0 <= start & end < 360; note that sometimes start > end - if so, arc goes back through 0. */\n\twhile (start < 0) start += 360;\n\twhile (end < 0) end += 360;\n\tstart %= 360;\n\tend %= 360;\n\n\t/* now, we find which octants we're drawing in. */\n\tstartoct = start / 45;\n\tendoct = end / 45;\n\toct = startoct - 1;\n\n\t/* stopval_start, stopval_end; what values of cx to stop at. */\n\tdo {\n\t\toct = (oct + 1) % 8;\n\n\t\tif (oct == startoct) {\n\t\t\t/* need to compute stopval_start for this octant.  Look at picture above if this is unclear */\n\t\t\tdstart = (double)start;\n\t\t\tswitch (oct) \n\t\t\t{\n\t\t\tcase 0:\n\t\t\tcase 3:\n\t\t\t\ttemp = sin(dstart * M_PI / 180.);\n\t\t\t\tbreak;\n\t\t\tcase 1:\n\t\t\tcase 6:\n\t\t\t\ttemp = cos(dstart * M_PI / 180.);\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\tcase 5:\n\t\t\t\ttemp = -cos(dstart * M_PI / 180.);\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\tcase 7:\n\t\t\t\ttemp = -sin(dstart * M_PI / 180.);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\ttemp *= rad;\n\t\t\tstopval_start = (int)temp;\n\n\t\t\t/*\n\t\t\tThis isn't arbitrary, but requires graph paper to explain well.\n\t\t\tThe basic idea is that we're always changing drawoct after we draw, so we\n\t\t\tstop immediately after we render the last sensible pixel at x = ((int)temp).\n\t\t\tand whether to draw in this octant initially\n\t\t\t*/\n\t\t\tif (oct % 2) drawoct |= (1 << oct); /* this is basically like saying drawoct[oct] = true, if drawoct were a bool array */\n\t\t\telse\t\t drawoct &= 255 - (1 << oct); /* this is basically like saying drawoct[oct] = false */\n\t\t}\n\t\tif (oct == endoct) {\n\t\t\t/* need to compute stopval_end for this octant */\n\t\t\tdend = (double)end;\n\t\t\tswitch (oct)\n\t\t\t{\n\t\t\tcase 0:\n\t\t\tcase 3:\n\t\t\t\ttemp = sin(dend * M_PI / 180);\n\t\t\t\tbreak;\n\t\t\tcase 1:\n\t\t\tcase 6:\n\t\t\t\ttemp = cos(dend * M_PI / 180);\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\tcase 5:\n\t\t\t\ttemp = -cos(dend * M_PI / 180);\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\tcase 7:\n\t\t\t\ttemp = -sin(dend * M_PI / 180);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\ttemp *= rad;\n\t\t\tstopval_end = (int)temp;\n\n\t\t\t/* and whether to draw in this octant initially */\n\t\t\tif (startoct == endoct)\t{\n\t\t\t\t/* note:      we start drawing, stop, then start again in this case */\n\t\t\t\t/* otherwise: we only draw in this octant, so initialize it to false, it will get set back to true */\n\t\t\t\tif (start > end) {\n\t\t\t\t\t/* unfortunately, if we're in the same octant and need to draw over the whole circle, */\n\t\t\t\t\t/* we need to set the rest to true, because the while loop will end at the bottom. */\n\t\t\t\t\tdrawoct = 255;\n\t\t\t\t} else {\n\t\t\t\t\tdrawoct &= 255 - (1 << oct);\n\t\t\t\t}\n\t\t\t} \n\t\t\telse if (oct % 2) drawoct &= 255 - (1 << oct);\n\t\t\telse\t\t\t  drawoct |= (1 << oct);\n\t\t} else if (oct != startoct) { /* already verified that it's != endoct */\n\t\t\tdrawoct |= (1 << oct); /* draw this entire segment */\n\t\t}\n\t} while (oct != endoct);\n\n\t/* so now we have what octants to draw and when to draw them. all that's left is the actual raster code. */\n\n\t/*\n\t* Set color \n\t*/\n\tresult = 0;\n\tif (a != 255) result |= SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND);\n\tresult |= SDL_SetRenderDrawColor(renderer, r, g, b, a);\n\n\t/*\n\t* Draw arc \n\t*/\n\tdo {\n\t\typcy = y + cy;\n\t\tymcy = y - cy;\n\t\tif (cx > 0) {\n\t\t\txpcx = x + cx;\n\t\t\txmcx = x - cx;\n\n\t\t\t/* always check if we're drawing a certain octant before adding a pixel to that octant. */\n\t\t\tif (drawoct & 4)  result |= pixel(renderer, xmcx, ypcy);\n\t\t\tif (drawoct & 2)  result |= pixel(renderer, xpcx, ypcy);\n\t\t\tif (drawoct & 32) result |= pixel(renderer, xmcx, ymcy);\n\t\t\tif (drawoct & 64) result |= pixel(renderer, xpcx, ymcy);\n\t\t} else {\n\t\t\tif (drawoct & 96) result |= pixel(renderer, x, ymcy);\n\t\t\tif (drawoct & 6)  result |= pixel(renderer, x, ypcy);\n\t\t}\n\n\t\txpcy = x + cy;\n\t\txmcy = x - cy;\n\t\tif (cx > 0 && cx != cy) {\n\t\t\typcx = y + cx;\n\t\t\tymcx = y - cx;\n\t\t\tif (drawoct & 8)   result |= pixel(renderer, xmcy, ypcx);\n\t\t\tif (drawoct & 1)   result |= pixel(renderer, xpcy, ypcx);\n\t\t\tif (drawoct & 16)  result |= pixel(renderer, xmcy, ymcx);\n\t\t\tif (drawoct & 128) result |= pixel(renderer, xpcy, ymcx);\n\t\t} else if (cx == 0) {\n\t\t\tif (drawoct & 24)  result |= pixel(renderer, xmcy, y);\n\t\t\tif (drawoct & 129) result |= pixel(renderer, xpcy, y);\n\t\t}\n\n\t\t/*\n\t\t* Update whether we're drawing an octant\n\t\t*/\n\t\tif (stopval_start == cx) {\n\t\t\t/* works like an on-off switch. */ \n\t\t\t/* This is just in case start & end are in the same octant. */\n\t\t\tif (drawoct & (1 << startoct)) drawoct &= 255 - (1 << startoct);\t\t\n\t\t\telse\t\t\t\t\t\t   drawoct |= (1 << startoct);\n\t\t}\n\t\tif (stopval_end == cx) {\n\t\t\tif (drawoct & (1 << endoct)) drawoct &= 255 - (1 << endoct);\n\t\t\telse\t\t\t\t\t\t drawoct |= (1 << endoct);\n\t\t}\n\n\t\t/*\n\t\t* Update pixels\n\t\t*/\n\t\tif (df < 0) {\n\t\t\tdf += d_e;\n\t\t\td_e += 2;\n\t\t\td_se += 2;\n\t\t} else {\n\t\t\tdf += d_se;\n\t\t\td_e += 2;\n\t\t\td_se += 4;\n\t\t\tcy--;\n\t\t}\n\t\tcx++;\n\t} while (cx <= cy);\n\n\treturn (result);\n}\n\n/* ----- AA Circle */\n\n/*!\n\\brief Draw anti-aliased circle with blending.\n\n\\param renderer The renderer to draw on.\n\\param x X coordinate of the center of the aa-circle.\n\\param y Y coordinate of the center of the aa-circle.\n\\param rad Radius in pixels of the aa-circle.\n\\param color The color value of the aa-circle to draw (0xAABBGGRR). \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint aacircleColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad, Uint32 color)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn aaellipseRGBA(renderer, x, y, rad, rad, c[0], c[1], c[2], c[3]);\n}\n\n/*!\n\\brief Draw anti-aliased circle with blending.\n\n\\param renderer The renderer to draw on.\n\\param x X coordinate of the center of the aa-circle.\n\\param y Y coordinate of the center of the aa-circle.\n\\param rad Radius in pixels of the aa-circle.\n\\param r The red value of the aa-circle to draw. \n\\param g The green value of the aa-circle to draw. \n\\param b The blue value of the aa-circle to draw. \n\\param a The alpha value of the aa-circle to draw.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint aacircleRGBA(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\t/*\n\t* Draw \n\t*/\n\treturn aaellipseRGBA(renderer, x, y, rad, rad, r, g, b, a);\n}\n\n/* ----- Filled Circle */\n\n/*!\n\\brief Draw filled circle with blending.\n\n\\param renderer The renderer to draw on.\n\\param x X coordinate of the center of the filled circle.\n\\param y Y coordinate of the center of the filled circle.\n\\param rad Radius in pixels of the filled circle.\n\\param color The color value of the filled circle to draw (0xAABBGGRR). \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint filledCircleColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad, Uint32 color)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn filledEllipseRGBA(renderer, x, y, rad, rad, c[0], c[1], c[2], c[3]);\n}\n\n/*!\n\\brief Draw filled circle with blending.\n\n\\param renderer The renderer to draw on.\n\\param x X coordinate of the center of the filled circle.\n\\param y Y coordinate of the center of the filled circle.\n\\param rad Radius in pixels of the filled circle.\n\\param r The red value of the filled circle to draw. \n\\param g The green value of the filled circle to draw. \n\\param b The blue value of the filled circle to draw. \n\\param a The alpha value of the filled circle to draw.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint filledCircleRGBA(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\treturn filledEllipseRGBA(renderer, x, y, rad, rad, r, g, b, a);\n}\n\n/* ----- Ellipse */\n\n/*!\n\\brief Draw ellipse with blending.\n\n\\param renderer The renderer to draw on.\n\\param x X coordinate of the center of the ellipse.\n\\param y Y coordinate of the center of the ellipse.\n\\param rx Horizontal radius in pixels of the ellipse.\n\\param ry Vertical radius in pixels of the ellipse.\n\\param color The color value of the ellipse to draw (0xAABBGGRR). \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint ellipseColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint32 color)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn ellipseRGBA(renderer, x, y, rx, ry, c[0], c[1], c[2], c[3]);\n}\n\n/*!\n\\brief Draw ellipse with blending.\n\n\\param renderer The renderer to draw on.\n\\param x X coordinate of the center of the ellipse.\n\\param y Y coordinate of the center of the ellipse.\n\\param rx Horizontal radius in pixels of the ellipse.\n\\param ry Vertical radius in pixels of the ellipse.\n\\param r The red value of the ellipse to draw. \n\\param g The green value of the ellipse to draw. \n\\param b The blue value of the ellipse to draw. \n\\param a The alpha value of the ellipse to draw.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint ellipseRGBA(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\tint result;\n\tint ix, iy;\n\tint h, i, j, k;\n\tint oh, oi, oj, ok;\n\tint xmh, xph, ypk, ymk;\n\tint xmi, xpi, ymj, ypj;\n\tint xmj, xpj, ymi, ypi;\n\tint xmk, xpk, ymh, yph;\n\n\t/*\n\t* Sanity check radii \n\t*/\n\tif ((rx < 0) || (ry < 0)) {\n\t\treturn (-1);\n\t}\n\n\t/*\n\t* Special case for rx=0 - draw a vline \n\t*/\n\tif (rx == 0) {\n\t\treturn (vlineRGBA(renderer, x, y - ry, y + ry, r, g, b, a));\n\t}\n\t/*\n\t* Special case for ry=0 - draw a hline \n\t*/\n\tif (ry == 0) {\n\t\treturn (hlineRGBA(renderer, x - rx, x + rx, y, r, g, b, a));\n\t}\n\n\t/*\n\t* Set color\n\t*/\n\tresult = 0;\n\tif (a != 255) result |= SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND);\n\tresult |= SDL_SetRenderDrawColor(renderer, r, g, b, a);\n\n\t/*\n\t* Init vars \n\t*/\n\toh = oi = oj = ok = 0xFFFF;\n\n\t/*\n\t* Draw \n\t*/\n\tif (rx > ry) {\n\t\tix = 0;\n\t\tiy = rx * 64;\n\n\t\tdo {\n\t\t\th = (ix + 32) >> 6;\n\t\t\ti = (iy + 32) >> 6;\n\t\t\tj = (h * ry) / rx;\n\t\t\tk = (i * ry) / rx;\n\n\t\t\tif (((ok != k) && (oj != k)) || ((oj != j) && (ok != j)) || (k != j)) {\n\t\t\t\txph = x + h;\n\t\t\t\txmh = x - h;\n\t\t\t\tif (k > 0) {\n\t\t\t\t\typk = y + k;\n\t\t\t\t\tymk = y - k;\n\t\t\t\t\tresult |= pixel(renderer, xmh, ypk);\n\t\t\t\t\tresult |= pixel(renderer, xph, ypk);\n\t\t\t\t\tresult |= pixel(renderer, xmh, ymk);\n\t\t\t\t\tresult |= pixel(renderer, xph, ymk);\n\t\t\t\t} else {\n\t\t\t\t\tresult |= pixel(renderer, xmh, y);\n\t\t\t\t\tresult |= pixel(renderer, xph, y);\n\t\t\t\t}\n\t\t\t\tok = k;\n\t\t\t\txpi = x + i;\n\t\t\t\txmi = x - i;\n\t\t\t\tif (j > 0) {\n\t\t\t\t\typj = y + j;\n\t\t\t\t\tymj = y - j;\n\t\t\t\t\tresult |= pixel(renderer, xmi, ypj);\n\t\t\t\t\tresult |= pixel(renderer, xpi, ypj);\n\t\t\t\t\tresult |= pixel(renderer, xmi, ymj);\n\t\t\t\t\tresult |= pixel(renderer, xpi, ymj);\n\t\t\t\t} else {\n\t\t\t\t\tresult |= pixel(renderer, xmi, y);\n\t\t\t\t\tresult |= pixel(renderer, xpi, y);\n\t\t\t\t}\n\t\t\t\toj = j;\n\t\t\t}\n\n\t\t\tix = ix + iy / rx;\n\t\t\tiy = iy - ix / rx;\n\n\t\t} while (i > h);\n\t} else {\n\t\tix = 0;\n\t\tiy = ry * 64;\n\n\t\tdo {\n\t\t\th = (ix + 32) >> 6;\n\t\t\ti = (iy + 32) >> 6;\n\t\t\tj = (h * rx) / ry;\n\t\t\tk = (i * rx) / ry;\n\n\t\t\tif (((oi != i) && (oh != i)) || ((oh != h) && (oi != h) && (i != h))) {\n\t\t\t\txmj = x - j;\n\t\t\t\txpj = x + j;\n\t\t\t\tif (i > 0) {\n\t\t\t\t\typi = y + i;\n\t\t\t\t\tymi = y - i;\n\t\t\t\t\tresult |= pixel(renderer, xmj, ypi);\n\t\t\t\t\tresult |= pixel(renderer, xpj, ypi);\n\t\t\t\t\tresult |= pixel(renderer, xmj, ymi);\n\t\t\t\t\tresult |= pixel(renderer, xpj, ymi);\n\t\t\t\t} else {\n\t\t\t\t\tresult |= pixel(renderer, xmj, y);\n\t\t\t\t\tresult |= pixel(renderer, xpj, y);\n\t\t\t\t}\n\t\t\t\toi = i;\n\t\t\t\txmk = x - k;\n\t\t\t\txpk = x + k;\n\t\t\t\tif (h > 0) {\n\t\t\t\t\typh = y + h;\n\t\t\t\t\tymh = y - h;\n\t\t\t\t\tresult |= pixel(renderer, xmk, yph);\n\t\t\t\t\tresult |= pixel(renderer, xpk, yph);\n\t\t\t\t\tresult |= pixel(renderer, xmk, ymh);\n\t\t\t\t\tresult |= pixel(renderer, xpk, ymh);\n\t\t\t\t} else {\n\t\t\t\t\tresult |= pixel(renderer, xmk, y);\n\t\t\t\t\tresult |= pixel(renderer, xpk, y);\n\t\t\t\t}\n\t\t\t\toh = h;\n\t\t\t}\n\n\t\t\tix = ix + iy / ry;\n\t\t\tiy = iy - ix / ry;\n\n\t\t} while (i > h);\n\t}\n\n\treturn (result);\n}\n\n/* ----- AA Ellipse */\n\n/* Windows targets do not have lrint, so provide a local inline version */\n#if defined(_MSC_VER)\n/* Detect 64bit and use intrinsic version */\n#ifdef _M_X64\n#include <emmintrin.h>\nstatic __inline long \n\tlrint(float f) \n{\n\treturn _mm_cvtss_si32(_mm_load_ss(&f));\n}\n#elif defined(_M_IX86)\n__inline long int\n\tlrint (double flt)\n{\t\n\tint intgr;\n\t_asm\n\t{\n\t\tfld flt\n\t\t\tfistp intgr\n\t};\n\treturn intgr;\n}\n#elif defined(_M_ARM)\n#include <armintr.h>\n#pragma warning(push)\n#pragma warning(disable: 4716)\n__declspec(naked) long int\n\tlrint (double flt)\n{\n\t__emit(0xEC410B10); // fmdrr  d0, r0, r1\n\t__emit(0xEEBD0B40); // ftosid s0, d0\n\t__emit(0xEE100A10); // fmrs   r0, s0\n\t__emit(0xE12FFF1E); // bx     lr\n}\n#pragma warning(pop)\n#else\n#error lrint needed for MSVC on non X86/AMD64/ARM targets.\n#endif\n#endif\n\n/*!\n\\brief Draw anti-aliased ellipse with blending.\n\n\\param renderer The renderer to draw on.\n\\param x X coordinate of the center of the aa-ellipse.\n\\param y Y coordinate of the center of the aa-ellipse.\n\\param rx Horizontal radius in pixels of the aa-ellipse.\n\\param ry Vertical radius in pixels of the aa-ellipse.\n\\param color The color value of the aa-ellipse to draw (0xAABBGGRR). \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint aaellipseColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint32 color)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn aaellipseRGBA(renderer, x, y, rx, ry, c[0], c[1], c[2], c[3]);\n}\n\n/*!\n\\brief Draw anti-aliased ellipse with blending.\n\n\\param renderer The renderer to draw on.\n\\param x X coordinate of the center of the aa-ellipse.\n\\param y Y coordinate of the center of the aa-ellipse.\n\\param rx Horizontal radius in pixels of the aa-ellipse.\n\\param ry Vertical radius in pixels of the aa-ellipse.\n\\param r The red value of the aa-ellipse to draw. \n\\param g The green value of the aa-ellipse to draw. \n\\param b The blue value of the aa-ellipse to draw. \n\\param a The alpha value of the aa-ellipse to draw.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint aaellipseRGBA(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\tint result;\n\tint i;\n\tint a2, b2, ds, dt, dxt, t, s, d;\n\tSint16 xp, yp, xs, ys, dyt, od, xx, yy, xc2, yc2;\n\tfloat cp;\n\tdouble sab;\n\tUint8 weight, iweight;\n\n\t/*\n\t* Sanity check radii \n\t*/\n\tif ((rx < 0) || (ry < 0)) {\n\t\treturn (-1);\n\t}\n\n\t/*\n\t* Special cases for rx=0 and/or ry=0: draw a hline/vline/pixel \n\t*/\n\tif (rx == 0) {\n\t\tif (ry == 0) {\n\t\t\treturn (pixel(renderer, x, y));\n\t\t} else {\n\t\t\treturn (vline(renderer, x, y - ry, y + ry));\n\t}\n\t} else {\n\t\tif (ry == 0) {\n\t\t\treturn (hline(renderer, x - rx, x + rx, y));\n\t\t}\n\t}\n\n\t/* Variable setup */\n\ta2 = rx * rx;\n\tb2 = ry * ry;\n\n\tds = 2 * a2;\n\tdt = 2 * b2;\n\n\txc2 = 2 * x;\n\tyc2 = 2 * y;\n\n\tsab = sqrt((double)(a2 + b2));\n\tod = (Sint16)lrint(sab*0.01) + 1; /* introduce some overdraw */\n\tdxt = (Sint16)lrint((double)a2 / sab) + od;\n\n\tt = 0;\n\ts = -2 * a2 * ry;\n\td = 0;\n\n\txp = x;\n\typ = y - ry;\n\n\t/* Draw */\n\tresult = 0;\n\tif (a != 255) result |= SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND);\n\n\t/* \"End points\" */\n\tresult |= pixelRGBA(renderer, xp, yp, r, g, b, a);\n\tresult |= pixelRGBA(renderer, xc2 - xp, yp, r, g, b, a);\n\tresult |= pixelRGBA(renderer, xp, yc2 - yp, r, g, b, a);\n\tresult |= pixelRGBA(renderer, xc2 - xp, yc2 - yp, r, g, b, a);\n\n\tfor (i = 1; i <= dxt; i++) {\n\t\txp--;\n\t\td += t - b2;\n\n\t\tif (d >= 0)\n\t\t\tys = yp - 1;\n\t\telse if ((d - s - a2) > 0) {\n\t\t\tif ((2 * d - s - a2) >= 0)\n\t\t\t\tys = yp + 1;\n\t\t\telse {\n\t\t\t\tys = yp;\n\t\t\t\typ++;\n\t\t\t\td -= s + a2;\n\t\t\t\ts += ds;\n\t\t\t}\n\t\t} else {\n\t\t\typ++;\n\t\t\tys = yp + 1;\n\t\t\td -= s + a2;\n\t\t\ts += ds;\n\t\t}\n\n\t\tt -= dt;\n\n\t\t/* Calculate alpha */\n\t\tif (s != 0) {\n\t\t\tcp = (float) abs(d) / (float) abs(s);\n\t\t\tif (cp > 1.0) {\n\t\t\t\tcp = 1.0;\n\t\t\t}\n\t\t} else {\n\t\t\tcp = 1.0;\n\t\t}\n\n\t\t/* Calculate weights */\n\t\tweight = (Uint8) (cp * 255);\n\t\tiweight = 255 - weight;\n\n\t\t/* Upper half */\n\t\txx = xc2 - xp;\n\t\tresult |= pixelRGBAWeight(renderer, xp, yp, r, g, b, a, iweight);\n\t\tresult |= pixelRGBAWeight(renderer, xx, yp, r, g, b, a, iweight);\n\n\t\tresult |= pixelRGBAWeight(renderer, xp, ys, r, g, b, a, weight);\n\t\tresult |= pixelRGBAWeight(renderer, xx, ys, r, g, b, a, weight);\n\n\t\t/* Lower half */\n\t\tyy = yc2 - yp;\n\t\tresult |= pixelRGBAWeight(renderer, xp, yy, r, g, b, a, iweight);\n\t\tresult |= pixelRGBAWeight(renderer, xx, yy, r, g, b, a, iweight);\n\n\t\tyy = yc2 - ys;\n\t\tresult |= pixelRGBAWeight(renderer, xp, yy, r, g, b, a, weight);\n\t\tresult |= pixelRGBAWeight(renderer, xx, yy, r, g, b, a, weight);\n\t}\n\n\t/* Replaces original approximation code dyt = abs(yp - yc); */\n\tdyt = (Sint16)lrint((double)b2 / sab ) + od;    \n\n\tfor (i = 1; i <= dyt; i++) {\n\t\typ++;\n\t\td -= s + a2;\n\n\t\tif (d <= 0)\n\t\t\txs = xp + 1;\n\t\telse if ((d + t - b2) < 0) {\n\t\t\tif ((2 * d + t - b2) <= 0)\n\t\t\t\txs = xp - 1;\n\t\t\telse {\n\t\t\t\txs = xp;\n\t\t\t\txp--;\n\t\t\t\td += t - b2;\n\t\t\t\tt -= dt;\n\t\t\t}\n\t\t} else {\n\t\t\txp--;\n\t\t\txs = xp - 1;\n\t\t\td += t - b2;\n\t\t\tt -= dt;\n\t\t}\n\n\t\ts += ds;\n\n\t\t/* Calculate alpha */\n\t\tif (t != 0) {\n\t\t\tcp = (float) abs(d) / (float) abs(t);\n\t\t\tif (cp > 1.0) {\n\t\t\t\tcp = 1.0;\n\t\t\t}\n\t\t} else {\n\t\t\tcp = 1.0;\n\t\t}\n\n\t\t/* Calculate weight */\n\t\tweight = (Uint8) (cp * 255);\n\t\tiweight = 255 - weight;\n\n\t\t/* Left half */\n\t\txx = xc2 - xp;\n\t\tyy = yc2 - yp;\n\t\tresult |= pixelRGBAWeight(renderer, xp, yp, r, g, b, a, iweight);\n\t\tresult |= pixelRGBAWeight(renderer, xx, yp, r, g, b, a, iweight);\n\n\t\tresult |= pixelRGBAWeight(renderer, xp, yy, r, g, b, a, iweight);\n\t\tresult |= pixelRGBAWeight(renderer, xx, yy, r, g, b, a, iweight);\n\n\t\t/* Right half */\n\t\txx = xc2 - xs;\n\t\tresult |= pixelRGBAWeight(renderer, xs, yp, r, g, b, a, weight);\n\t\tresult |= pixelRGBAWeight(renderer, xx, yp, r, g, b, a, weight);\n\n\t\tresult |= pixelRGBAWeight(renderer, xs, yy, r, g, b, a, weight);\n\t\tresult |= pixelRGBAWeight(renderer, xx, yy, r, g, b, a, weight);\t\t\n\t}\n\n\treturn (result);\n}\n\n/* ---- Filled Ellipse */\n\n/*!\n\\brief Draw filled ellipse with blending.\n\n\\param renderer The renderer to draw on.\n\\param x X coordinate of the center of the filled ellipse.\n\\param y Y coordinate of the center of the filled ellipse.\n\\param rx Horizontal radius in pixels of the filled ellipse.\n\\param ry Vertical radius in pixels of the filled ellipse.\n\\param color The color value of the filled ellipse to draw (0xAABBGGRR). \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint filledEllipseColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint32 color)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn filledEllipseRGBA(renderer, x, y, rx, ry, c[0], c[1], c[2], c[3]);\n}\n\n/*!\n\\brief Draw filled ellipse with blending.\n\n\\param renderer The renderer to draw on.\n\\param x X coordinate of the center of the filled ellipse.\n\\param y Y coordinate of the center of the filled ellipse.\n\\param rx Horizontal radius in pixels of the filled ellipse.\n\\param ry Vertical radius in pixels of the filled ellipse.\n\\param r The red value of the filled ellipse to draw. \n\\param g The green value of the filled ellipse to draw. \n\\param b The blue value of the filled ellipse to draw. \n\\param a The alpha value of the filled ellipse to draw.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint filledEllipseRGBA(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\tint result;\n\tint ix, iy;\n\tint h, i, j, k;\n\tint oh, oi, oj, ok;\n\tint xmh, xph;\n\tint xmi, xpi;\n\tint xmj, xpj;\n\tint xmk, xpk;\n\n\t/*\n\t* Sanity check radii \n\t*/\n\tif ((rx < 0) || (ry < 0)) {\n\t\treturn (-1);\n\t}\n\n\t/*\n\t* Special case for rx=0 - draw a vline \n\t*/\n\tif (rx == 0) {\n\t\treturn (vlineRGBA(renderer, x, y - ry, y + ry, r, g, b, a));\n\t}\n\t/*\n\t* Special case for ry=0 - draw a hline \n\t*/\n\tif (ry == 0) {\n\t\treturn (hlineRGBA(renderer, x - rx, x + rx, y, r, g, b, a));\n\t}\n\n\t/*\n\t* Set color\n\t*/\n\tresult = 0;\n\tif (a != 255) result |= SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND);\n\tresult |= SDL_SetRenderDrawColor(renderer, r, g, b, a);\n\n\t/*\n\t* Init vars \n\t*/\n\toh = oi = oj = ok = 0xFFFF;\n\n\t/*\n\t* Draw \n\t*/\n\tif (rx > ry) {\n\t\tix = 0;\n\t\tiy = rx * 64;\n\n\t\tdo {\n\t\t\th = (ix + 32) >> 6;\n\t\t\ti = (iy + 32) >> 6;\n\t\t\tj = (h * ry) / rx;\n\t\t\tk = (i * ry) / rx;\n\n\t\t\tif ((ok != k) && (oj != k)) {\n\t\t\t\txph = x + h;\n\t\t\t\txmh = x - h;\n\t\t\t\tif (k > 0) {\n\t\t\t\t\tresult |= hline(renderer, xmh, xph, y + k);\n\t\t\t\t\tresult |= hline(renderer, xmh, xph, y - k);\n\t\t\t\t} else {\n\t\t\t\t\tresult |= hline(renderer, xmh, xph, y);\n\t\t\t\t}\n\t\t\t\tok = k;\n\t\t\t}\n\t\t\tif ((oj != j) && (ok != j) && (k != j)) {\n\t\t\t\txmi = x - i;\n\t\t\t\txpi = x + i;\n\t\t\t\tif (j > 0) {\n\t\t\t\t\tresult |= hline(renderer, xmi, xpi, y + j);\n\t\t\t\t\tresult |= hline(renderer, xmi, xpi, y - j);\n\t\t\t\t} else {\n\t\t\t\t\tresult |= hline(renderer, xmi, xpi, y);\n\t\t\t\t}\n\t\t\t\toj = j;\n\t\t\t}\n\n\t\t\tix = ix + iy / rx;\n\t\t\tiy = iy - ix / rx;\n\n\t\t} while (i > h);\n\t} else {\n\t\tix = 0;\n\t\tiy = ry * 64;\n\n\t\tdo {\n\t\t\th = (ix + 32) >> 6;\n\t\t\ti = (iy + 32) >> 6;\n\t\t\tj = (h * rx) / ry;\n\t\t\tk = (i * rx) / ry;\n\n\t\t\tif ((oi != i) && (oh != i)) {\n\t\t\t\txmj = x - j;\n\t\t\t\txpj = x + j;\n\t\t\t\tif (i > 0) {\n\t\t\t\t\tresult |= hline(renderer, xmj, xpj, y + i);\n\t\t\t\t\tresult |= hline(renderer, xmj, xpj, y - i);\n\t\t\t\t} else {\n\t\t\t\t\tresult |= hline(renderer, xmj, xpj, y);\n\t\t\t\t}\n\t\t\t\toi = i;\n\t\t\t}\n\t\t\tif ((oh != h) && (oi != h) && (i != h)) {\n\t\t\t\txmk = x - k;\n\t\t\t\txpk = x + k;\n\t\t\t\tif (h > 0) {\n\t\t\t\t\tresult |= hline(renderer, xmk, xpk, y + h);\n\t\t\t\t\tresult |= hline(renderer, xmk, xpk, y - h);\n\t\t\t\t} else {\n\t\t\t\t\tresult |= hline(renderer, xmk, xpk, y);\n\t\t\t\t}\n\t\t\t\toh = h;\n\t\t\t}\n\n\t\t\tix = ix + iy / ry;\n\t\t\tiy = iy - ix / ry;\n\n\t\t} while (i > h);\n\t}\n\n\treturn (result);\n}\n\n/* ----- Pie */\n\n/*!\n\\brief Internal float (low-speed) pie-calc implementation by drawing polygons.\n\nNote: Determines vertex array and uses polygon or filledPolygon drawing routines to render.\n\n\\param renderer The renderer to draw on.\n\\param x X coordinate of the center of the pie.\n\\param y Y coordinate of the center of the pie.\n\\param rad Radius in pixels of the pie.\n\\param start Starting radius in degrees of the pie.\n\\param end Ending radius in degrees of the pie.\n\\param r The red value of the pie to draw. \n\\param g The green value of the pie to draw. \n\\param b The blue value of the pie to draw. \n\\param a The alpha value of the pie to draw.\n\\param filled Flag indicating if the pie should be filled (=1) or not (=0).\n\n\\returns Returns 0 on success, -1 on failure.\n*/\n/* TODO: rewrite algorithm; pie is not always accurate */\nint _pieRGBA(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad, Sint16 start, Sint16 end,  Uint8 r, Uint8 g, Uint8 b, Uint8 a, Uint8 filled)\n{\n\tint result;\n\tdouble angle, start_angle, end_angle;\n\tdouble deltaAngle;\n\tdouble dr;\n\tint numpoints, i;\n\tSint16 *vx, *vy;\n\n\t/*\n\t* Sanity check radii \n\t*/\n\tif (rad < 0) {\n\t\treturn (-1);\n\t}\n\n\t/*\n\t* Fixup angles\n\t*/\n\tstart = start % 360;\n\tend = end % 360;\n\n\t/*\n\t* Special case for rad=0 - draw a point \n\t*/\n\tif (rad == 0) {\n\t\treturn (pixelRGBA(renderer, x, y, r, g, b, a));\n\t}\n\n\t/*\n\t* Variable setup \n\t*/\n\tdr = (double) rad;\n\tdeltaAngle = 3.0 / dr;\n\tstart_angle = (double) start *(2.0 * M_PI / 360.0);\n\tend_angle = (double) end *(2.0 * M_PI / 360.0);\n\tif (start > end) {\n\t\tend_angle += (2.0 * M_PI);\n\t}\n\n\t/* We will always have at least 2 points */\n\tnumpoints = 2;\n\n\t/* Count points (rather than calculating it) */\n\tangle = start_angle;\n\twhile (angle < end_angle) {\n\t\tangle += deltaAngle;\n\t\tnumpoints++;\n\t}\n\n\t/* Allocate combined vertex array */\n\tvx = vy = (Sint16 *) malloc(2 * sizeof(Sint16) * numpoints);\n\tif (vx == NULL) {\n\t\treturn (-1);\n\t}\n\n\t/* Update point to start of vy */\n\tvy += numpoints;\n\n\t/* Center */\n\tvx[0] = x;\n\tvy[0] = y;\n\n\t/* First vertex */\n\tangle = start_angle;\n\tvx[1] = x + (int) (dr * cos(angle));\n\tvy[1] = y + (int) (dr * sin(angle));\n\n\tif (numpoints<3)\n\t{\n\t\tresult = lineRGBA(renderer, vx[0], vy[0], vx[1], vy[1], r, g, b, a);\n\t}\n\telse\n\t{\n\t\t/* Calculate other vertices */\n\t\ti = 2;\n\t\tangle = start_angle;\n\t\twhile (angle < end_angle) {\n\t\t\tangle += deltaAngle;\n\t\t\tif (angle>end_angle)\n\t\t\t{\n\t\t\t\tangle = end_angle;\n\t\t\t}\n\t\t\tvx[i] = x + (int) (dr * cos(angle));\n\t\t\tvy[i] = y + (int) (dr * sin(angle));\n\t\t\ti++;\n\t\t}\n\n\t\t/* Draw */\n\t\tif (filled) {\n\t\t\tresult = filledPolygonRGBA(renderer, vx, vy, numpoints, r, g, b, a);\n\t\t} else {\n\t\t\tresult = polygonRGBA(renderer, vx, vy, numpoints, r, g, b, a);\n\t\t}\n\t}\n\n\t/* Free combined vertex array */\n\tfree(vx);\n\n\treturn (result);\n}\n\n/*!\n\\brief Draw pie (outline) with alpha blending.\n\n\\param renderer The renderer to draw on.\n\\param x X coordinate of the center of the pie.\n\\param y Y coordinate of the center of the pie.\n\\param rad Radius in pixels of the pie.\n\\param start Starting radius in degrees of the pie.\n\\param end Ending radius in degrees of the pie.\n\\param color The color value of the pie to draw (0xAABBGGRR). \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint pieColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad, \n\tSint16 start, Sint16 end, Uint32 color) \n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn _pieRGBA(renderer, x, y, rad, start, end, c[0], c[1], c[2], c[3], 0);\n}\n\n/*!\n\\brief Draw pie (outline) with alpha blending.\n\n\\param renderer The renderer to draw on.\n\\param x X coordinate of the center of the pie.\n\\param y Y coordinate of the center of the pie.\n\\param rad Radius in pixels of the pie.\n\\param start Starting radius in degrees of the pie.\n\\param end Ending radius in degrees of the pie.\n\\param r The red value of the pie to draw. \n\\param g The green value of the pie to draw. \n\\param b The blue value of the pie to draw. \n\\param a The alpha value of the pie to draw.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint pieRGBA(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad,\n\tSint16 start, Sint16 end, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\treturn _pieRGBA(renderer, x, y, rad, start, end, r, g, b, a, 0);\n}\n\n/*!\n\\brief Draw filled pie with alpha blending.\n\n\\param renderer The renderer to draw on.\n\\param x X coordinate of the center of the filled pie.\n\\param y Y coordinate of the center of the filled pie.\n\\param rad Radius in pixels of the filled pie.\n\\param start Starting radius in degrees of the filled pie.\n\\param end Ending radius in degrees of the filled pie.\n\\param color The color value of the filled pie to draw (0xAABBGGRR). \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint filledPieColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad, Sint16 start, Sint16 end, Uint32 color)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn _pieRGBA(renderer, x, y, rad, start, end, c[0], c[1], c[2], c[3], 1);\n}\n\n/*!\n\\brief Draw filled pie with alpha blending.\n\n\\param renderer The renderer to draw on.\n\\param x X coordinate of the center of the filled pie.\n\\param y Y coordinate of the center of the filled pie.\n\\param rad Radius in pixels of the filled pie.\n\\param start Starting radius in degrees of the filled pie.\n\\param end Ending radius in degrees of the filled pie.\n\\param r The red value of the filled pie to draw. \n\\param g The green value of the filled pie to draw. \n\\param b The blue value of the filled pie to draw. \n\\param a The alpha value of the filled pie to draw.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint filledPieRGBA(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad,\n\tSint16 start, Sint16 end, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\treturn _pieRGBA(renderer, x, y, rad, start, end, r, g, b, a, 1);\n}\n\n/* ------ Trigon */\n\n/*!\n\\brief Draw trigon (triangle outline) with alpha blending.\n\nNote: Creates vertex array and uses polygon routine to render.\n\n\\param renderer The renderer to draw on.\n\\param x1 X coordinate of the first point of the trigon.\n\\param y1 Y coordinate of the first point of the trigon.\n\\param x2 X coordinate of the second point of the trigon.\n\\param y2 Y coordinate of the second point of the trigon.\n\\param x3 X coordinate of the third point of the trigon.\n\\param y3 Y coordinate of the third point of the trigon.\n\\param color The color value of the trigon to draw (0xAABBGGRR). \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint trigonColor(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3, Uint32 color)\n{\n\tSint16 vx[3]; \n\tSint16 vy[3];\n\n\tvx[0]=x1;\n\tvx[1]=x2;\n\tvx[2]=x3;\n\tvy[0]=y1;\n\tvy[1]=y2;\n\tvy[2]=y3;\n\n\treturn(polygonColor(renderer,vx,vy,3,color));\n}\n\n/*!\n\\brief Draw trigon (triangle outline) with alpha blending.\n\n\\param renderer The renderer to draw on.\n\\param x1 X coordinate of the first point of the trigon.\n\\param y1 Y coordinate of the first point of the trigon.\n\\param x2 X coordinate of the second point of the trigon.\n\\param y2 Y coordinate of the second point of the trigon.\n\\param x3 X coordinate of the third point of the trigon.\n\\param y3 Y coordinate of the third point of the trigon.\n\\param r The red value of the trigon to draw. \n\\param g The green value of the trigon to draw. \n\\param b The blue value of the trigon to draw. \n\\param a The alpha value of the trigon to draw.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint trigonRGBA(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3,\n\tUint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\tSint16 vx[3]; \n\tSint16 vy[3];\n\n\tvx[0]=x1;\n\tvx[1]=x2;\n\tvx[2]=x3;\n\tvy[0]=y1;\n\tvy[1]=y2;\n\tvy[2]=y3;\n\n\treturn(polygonRGBA(renderer,vx,vy,3,r,g,b,a));\n}\t\t\t\t \n\n/* ------ AA-Trigon */\n\n/*!\n\\brief Draw anti-aliased trigon (triangle outline) with alpha blending.\n\nNote: Creates vertex array and uses aapolygon routine to render.\n\n\\param renderer The renderer to draw on.\n\\param x1 X coordinate of the first point of the aa-trigon.\n\\param y1 Y coordinate of the first point of the aa-trigon.\n\\param x2 X coordinate of the second point of the aa-trigon.\n\\param y2 Y coordinate of the second point of the aa-trigon.\n\\param x3 X coordinate of the third point of the aa-trigon.\n\\param y3 Y coordinate of the third point of the aa-trigon.\n\\param color The color value of the aa-trigon to draw (0xAABBGGRR). \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint aatrigonColor(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3, Uint32 color)\n{\n\tSint16 vx[3]; \n\tSint16 vy[3];\n\n\tvx[0]=x1;\n\tvx[1]=x2;\n\tvx[2]=x3;\n\tvy[0]=y1;\n\tvy[1]=y2;\n\tvy[2]=y3;\n\n\treturn(aapolygonColor(renderer,vx,vy,3,color));\n}\n\n/*!\n\\brief Draw anti-aliased trigon (triangle outline) with alpha blending.\n\n\\param renderer The renderer to draw on.\n\\param x1 X coordinate of the first point of the aa-trigon.\n\\param y1 Y coordinate of the first point of the aa-trigon.\n\\param x2 X coordinate of the second point of the aa-trigon.\n\\param y2 Y coordinate of the second point of the aa-trigon.\n\\param x3 X coordinate of the third point of the aa-trigon.\n\\param y3 Y coordinate of the third point of the aa-trigon.\n\\param r The red value of the aa-trigon to draw. \n\\param g The green value of the aa-trigon to draw. \n\\param b The blue value of the aa-trigon to draw. \n\\param a The alpha value of the aa-trigon to draw.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint aatrigonRGBA(SDL_Renderer * renderer,  Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3,\n\tUint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\tSint16 vx[3]; \n\tSint16 vy[3];\n\n\tvx[0]=x1;\n\tvx[1]=x2;\n\tvx[2]=x3;\n\tvy[0]=y1;\n\tvy[1]=y2;\n\tvy[2]=y3;\n\n\treturn(aapolygonRGBA(renderer,vx,vy,3,r,g,b,a));\n}\t\t\t\t   \n\n/* ------ Filled Trigon */\n\n/*!\n\\brief Draw filled trigon (triangle) with alpha blending.\n\nNote: Creates vertex array and uses aapolygon routine to render.\n\n\\param renderer The renderer to draw on.\n\\param x1 X coordinate of the first point of the filled trigon.\n\\param y1 Y coordinate of the first point of the filled trigon.\n\\param x2 X coordinate of the second point of the filled trigon.\n\\param y2 Y coordinate of the second point of the filled trigon.\n\\param x3 X coordinate of the third point of the filled trigon.\n\\param y3 Y coordinate of the third point of the filled trigon.\n\\param color The color value of the filled trigon to draw (0xAABBGGRR). \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint filledTrigonColor(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3, Uint32 color)\n{\n\tSint16 vx[3]; \n\tSint16 vy[3];\n\n\tvx[0]=x1;\n\tvx[1]=x2;\n\tvx[2]=x3;\n\tvy[0]=y1;\n\tvy[1]=y2;\n\tvy[2]=y3;\n\n\treturn(filledPolygonColor(renderer,vx,vy,3,color));\n}\n\n/*!\n\\brief Draw filled trigon (triangle) with alpha blending.\n\nNote: Creates vertex array and uses aapolygon routine to render.\n\n\\param renderer The renderer to draw on.\n\\param x1 X coordinate of the first point of the filled trigon.\n\\param y1 Y coordinate of the first point of the filled trigon.\n\\param x2 X coordinate of the second point of the filled trigon.\n\\param y2 Y coordinate of the second point of the filled trigon.\n\\param x3 X coordinate of the third point of the filled trigon.\n\\param y3 Y coordinate of the third point of the filled trigon.\n\\param r The red value of the filled trigon to draw. \n\\param g The green value of the filled trigon to draw. \n\\param b The blue value of the filled trigon to draw. \n\\param a The alpha value of the filled trigon to draw.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint filledTrigonRGBA(SDL_Renderer * renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3,\n\tUint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\tSint16 vx[3]; \n\tSint16 vy[3];\n\n\tvx[0]=x1;\n\tvx[1]=x2;\n\tvx[2]=x3;\n\tvy[0]=y1;\n\tvy[1]=y2;\n\tvy[2]=y3;\n\n\treturn(filledPolygonRGBA(renderer,vx,vy,3,r,g,b,a));\n}\n\n/* ---- Polygon */\n\n/*!\n\\brief Draw polygon with alpha blending.\n\n\\param renderer The renderer to draw on.\n\\param vx Vertex array containing X coordinates of the points of the polygon.\n\\param vy Vertex array containing Y coordinates of the points of the polygon.\n\\param n Number of points in the vertex array. Minimum number is 3.\n\\param color The color value of the polygon to draw (0xAABBGGRR). \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint polygonColor(SDL_Renderer * renderer, const Sint16 * vx, const Sint16 * vy, int n, Uint32 color)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn polygonRGBA(renderer, vx, vy, n, c[0], c[1], c[2], c[3]);\n}\n\n/*!\n\\brief Draw polygon with the currently set color and blend mode.\n\n\\param renderer The renderer to draw on.\n\\param vx Vertex array containing X coordinates of the points of the polygon.\n\\param vy Vertex array containing Y coordinates of the points of the polygon.\n\\param n Number of points in the vertex array. Minimum number is 3.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint polygon(SDL_Renderer * renderer, const Sint16 * vx, const Sint16 * vy, int n)\n{\n\t/*\n\t* Draw \n\t*/\n\tint result = 0;\n\tint i, nn;\n\tSDL_Point* points;\n\n\t/*\n\t* Vertex array NULL check \n\t*/\n\tif (vx == NULL) {\n\t\treturn (-1);\n\t}\n\tif (vy == NULL) {\n\t\treturn (-1);\n\t}\n\n\t/*\n\t* Sanity check \n\t*/\n\tif (n < 3) {\n\t\treturn (-1);\n\t}\n\n\t/*\n\t* Create array of points\n\t*/\n\tnn = n + 1;\n\tpoints = (SDL_Point*)malloc(sizeof(SDL_Point) * nn);\n\tif (points == NULL)\n\t{\n\t\treturn -1;\n\t}\n\tfor (i=0; i<n; i++)\n\t{\n\t\tpoints[i].x = vx[i];\n\t\tpoints[i].y = vy[i];\n\t}\n\tpoints[n].x = vx[0];\n\tpoints[n].y = vy[0];\n\n\t/*\n\t* Draw \n\t*/\n\tresult |= SDL_RenderDrawLines(renderer, points, nn);\n\tfree(points);\n\n\treturn (result);\n}\n\n/*!\n\\brief Draw polygon with alpha blending.\n\n\\param renderer The renderer to draw on.\n\\param vx Vertex array containing X coordinates of the points of the polygon.\n\\param vy Vertex array containing Y coordinates of the points of the polygon.\n\\param n Number of points in the vertex array. Minimum number is 3.\n\\param r The red value of the polygon to draw. \n\\param g The green value of the polygon to draw. \n\\param b The blue value of the polygon to draw. \n\\param a The alpha value of the polygon to draw.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint polygonRGBA(SDL_Renderer * renderer, const Sint16 * vx, const Sint16 * vy, int n, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\t/*\n\t* Draw \n\t*/\n\tint result;\n\n\t/*\n\t* Vertex array NULL check \n\t*/\n\tif (vx == NULL) {\n\t\treturn (-1);\n\t}\n\tif (vy == NULL) {\n\t\treturn (-1);\n\t}\n\n\t/*\n\t* Sanity check \n\t*/\n\tif (n < 3) {\n\t\treturn (-1);\n\t}\n\n\t/*\n\t* Set color \n\t*/\n\tresult = 0;\n\tif (a != 255) result |= SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND);\n\tresult |= SDL_SetRenderDrawColor(renderer, r, g, b, a);\t\n\n\t/*\n\t* Draw \n\t*/\n\tresult |= polygon(renderer, vx, vy, n);\n\n\treturn (result);\n}\n\n/* ---- AA-Polygon */\n\n/*!\n\\brief Draw anti-aliased polygon with alpha blending.\n\n\\param renderer The renderer to draw on.\n\\param vx Vertex array containing X coordinates of the points of the aa-polygon.\n\\param vy Vertex array containing Y coordinates of the points of the aa-polygon.\n\\param n Number of points in the vertex array. Minimum number is 3.\n\\param color The color value of the aa-polygon to draw (0xAABBGGRR). \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint aapolygonColor(SDL_Renderer * renderer, const Sint16 * vx, const Sint16 * vy, int n, Uint32 color)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn aapolygonRGBA(renderer, vx, vy, n, c[0], c[1], c[2], c[3]);\n}\n\n/*!\n\\brief Draw anti-aliased polygon with alpha blending.\n\n\\param renderer The renderer to draw on.\n\\param vx Vertex array containing X coordinates of the points of the aa-polygon.\n\\param vy Vertex array containing Y coordinates of the points of the aa-polygon.\n\\param n Number of points in the vertex array. Minimum number is 3.\n\\param r The red value of the aa-polygon to draw. \n\\param g The green value of the aa-polygon to draw. \n\\param b The blue value of the aa-polygon to draw. \n\\param a The alpha value of the aa-polygon to draw.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint aapolygonRGBA(SDL_Renderer * renderer, const Sint16 * vx, const Sint16 * vy, int n, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\tint result;\n\tint i;\n\tconst Sint16 *x1, *y1, *x2, *y2;\n\n\t/*\n\t* Vertex array NULL check \n\t*/\n\tif (vx == NULL) {\n\t\treturn (-1);\n\t}\n\tif (vy == NULL) {\n\t\treturn (-1);\n\t}\n\n\t/*\n\t* Sanity check \n\t*/\n\tif (n < 3) {\n\t\treturn (-1);\n\t}\n\n\t/*\n\t* Pointer setup \n\t*/\n\tx1 = x2 = vx;\n\ty1 = y2 = vy;\n\tx2++;\n\ty2++;\n\n\t/*\n\t* Draw \n\t*/\n\tresult = 0;\n\tfor (i = 1; i < n; i++) {\n\t\tresult |= _aalineRGBA(renderer, *x1, *y1, *x2, *y2, r, g, b, a, 0);\n\t\tx1 = x2;\n\t\ty1 = y2;\n\t\tx2++;\n\t\ty2++;\n\t}\n\n\tresult |= _aalineRGBA(renderer, *x1, *y1, *vx, *vy, r, g, b, a, 0);\n\n\treturn (result);\n}\n\n/* ---- Filled Polygon */\n\n/*!\n\\brief Internal helper qsort callback functions used in filled polygon drawing.\n\n\\param a The surface to draw on.\n\\param b Vertex array containing X coordinates of the points of the polygon.\n\n\\returns Returns 0 if a==b, a negative number if a<b or a positive number if a>b.\n*/\nint _gfxPrimitivesCompareInt(const void *a, const void *b)\n{\n\treturn (*(const int *) a) - (*(const int *) b);\n}\n\n/*!\n\\brief Global vertex array to use if optional parameters are not given in filledPolygonMT calls.\n\nNote: Used for non-multithreaded (default) operation of filledPolygonMT.\n*/\nstatic int *gfxPrimitivesPolyIntsGlobal = NULL;\n\n/*!\n\\brief Flag indicating if global vertex array was already allocated.\n\nNote: Used for non-multithreaded (default) operation of filledPolygonMT.\n*/\nstatic int gfxPrimitivesPolyAllocatedGlobal = 0;\n\n/*!\n\\brief Draw filled polygon with alpha blending (multi-threaded capable).\n\nNote: The last two parameters are optional; but are required for multithreaded operation.  \n\n\\param renderer The renderer to draw on.\n\\param vx Vertex array containing X coordinates of the points of the filled polygon.\n\\param vy Vertex array containing Y coordinates of the points of the filled polygon.\n\\param n Number of points in the vertex array. Minimum number is 3.\n\\param r The red value of the filled polygon to draw. \n\\param g The green value of the filled polygon to draw. \n\\param b The blue value of the filled polygon to draw. \n\\param a The alpha value of the filled polygon to draw.\n\\param polyInts Preallocated, temporary vertex array used for sorting vertices. Required for multithreaded operation; set to NULL otherwise.\n\\param polyAllocated Flag indicating if temporary vertex array was allocated. Required for multithreaded operation; set to NULL otherwise.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint filledPolygonRGBAMT(SDL_Renderer * renderer, const Sint16 * vx, const Sint16 * vy, int n, Uint8 r, Uint8 g, Uint8 b, Uint8 a, int **polyInts, int *polyAllocated)\n{\n\tint result;\n\tint i;\n\tint y, xa, xb;\n\tint miny, maxy;\n\tint x1, y1;\n\tint x2, y2;\n\tint ind1, ind2;\n\tint ints;\n\tint *gfxPrimitivesPolyInts = NULL;\n\tint *gfxPrimitivesPolyIntsNew = NULL;\n\tint gfxPrimitivesPolyAllocated = 0;\n\n\t/*\n\t* Vertex array NULL check \n\t*/\n\tif (vx == NULL) {\n\t\treturn (-1);\n\t}\n\tif (vy == NULL) {\n\t\treturn (-1);\n\t}\n\n\t/*\n\t* Sanity check number of edges\n\t*/\n\tif (n < 3) {\n\t\treturn -1;\n\t}\n\n\t/*\n\t* Map polygon cache  \n\t*/\n\tif ((polyInts==NULL) || (polyAllocated==NULL)) {\n\t\t/* Use global cache */\n\t\tgfxPrimitivesPolyInts = gfxPrimitivesPolyIntsGlobal;\n\t\tgfxPrimitivesPolyAllocated = gfxPrimitivesPolyAllocatedGlobal;\n\t} else {\n\t\t/* Use local cache */\n\t\tgfxPrimitivesPolyInts = *polyInts;\n\t\tgfxPrimitivesPolyAllocated = *polyAllocated;\n\t}\n\n\t/*\n\t* Allocate temp array, only grow array \n\t*/\n\tif (!gfxPrimitivesPolyAllocated) {\n\t\tgfxPrimitivesPolyInts = (int *) malloc(sizeof(int) * n);\n\t\tgfxPrimitivesPolyAllocated = n;\n\t} else {\n\t\tif (gfxPrimitivesPolyAllocated < n) {\n\t\t\tgfxPrimitivesPolyIntsNew = (int *) realloc(gfxPrimitivesPolyInts, sizeof(int) * n);\n\t\t\tif (!gfxPrimitivesPolyIntsNew) {\n\t\t\t\tif (!gfxPrimitivesPolyInts) {\n\t\t\t\t\tfree(gfxPrimitivesPolyInts);\n\t\t\t\t\tgfxPrimitivesPolyInts = NULL;\n\t\t\t\t}\n\t\t\t\tgfxPrimitivesPolyAllocated = 0;\n\t\t\t} else {\n\t\t\t\tgfxPrimitivesPolyInts = gfxPrimitivesPolyIntsNew;\n\t\t\t\tgfxPrimitivesPolyAllocated = n;\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t* Check temp array\n\t*/\n\tif (gfxPrimitivesPolyInts==NULL) {        \n\t\tgfxPrimitivesPolyAllocated = 0;\n\t}\n\n\t/*\n\t* Update cache variables\n\t*/\n\tif ((polyInts==NULL) || (polyAllocated==NULL)) { \n\t\tgfxPrimitivesPolyIntsGlobal =  gfxPrimitivesPolyInts;\n\t\tgfxPrimitivesPolyAllocatedGlobal = gfxPrimitivesPolyAllocated;\n\t} else {\n\t\t*polyInts = gfxPrimitivesPolyInts;\n\t\t*polyAllocated = gfxPrimitivesPolyAllocated;\n\t}\n\n\t/*\n\t* Check temp array again\n\t*/\n\tif (gfxPrimitivesPolyInts==NULL) {        \n\t\treturn(-1);\n\t}\n\n\t/*\n\t* Determine Y maxima \n\t*/\n\tminy = vy[0];\n\tmaxy = vy[0];\n\tfor (i = 1; (i < n); i++) {\n\t\tif (vy[i] < miny) {\n\t\t\tminy = vy[i];\n\t\t} else if (vy[i] > maxy) {\n\t\t\tmaxy = vy[i];\n\t\t}\n\t}\n\n\t/*\n\t* Draw, scanning y \n\t*/\n\tresult = 0;\n\tfor (y = miny; (y <= maxy); y++) {\n\t\tints = 0;\n\t\tfor (i = 0; (i < n); i++) {\n\t\t\tif (!i) {\n\t\t\t\tind1 = n - 1;\n\t\t\t\tind2 = 0;\n\t\t\t} else {\n\t\t\t\tind1 = i - 1;\n\t\t\t\tind2 = i;\n\t\t\t}\n\t\t\ty1 = vy[ind1];\n\t\t\ty2 = vy[ind2];\n\t\t\tif (y1 < y2) {\n\t\t\t\tx1 = vx[ind1];\n\t\t\t\tx2 = vx[ind2];\n\t\t\t} else if (y1 > y2) {\n\t\t\t\ty2 = vy[ind1];\n\t\t\t\ty1 = vy[ind2];\n\t\t\t\tx2 = vx[ind1];\n\t\t\t\tx1 = vx[ind2];\n\t\t\t} else {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif ( ((y >= y1) && (y < y2)) || ((y == maxy) && (y > y1) && (y <= y2)) ) {\n\t\t\t\tgfxPrimitivesPolyInts[ints++] = ((65536 * (y - y1)) / (y2 - y1)) * (x2 - x1) + (65536 * x1);\n\t\t\t} \t    \n\t\t}\n\n\t\tqsort(gfxPrimitivesPolyInts, ints, sizeof(int), _gfxPrimitivesCompareInt);\n\n\t\t/*\n\t\t* Set color \n\t\t*/\n\t\tresult = 0;\n\t    if (a != 255) result |= SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND);\n\t\tresult |= SDL_SetRenderDrawColor(renderer, r, g, b, a);\t\n\n\t\tfor (i = 0; (i < ints); i += 2) {\n\t\t\txa = gfxPrimitivesPolyInts[i] + 1;\n\t\t\txa = (xa >> 16) + ((xa & 32768) >> 15);\n\t\t\txb = gfxPrimitivesPolyInts[i+1] - 1;\n\t\t\txb = (xb >> 16) + ((xb & 32768) >> 15);\n\t\t\tresult |= hline(renderer, xa, xb, y);\n\t\t}\n\t}\n\n\treturn (result);\n}\n\n/*!\n\\brief Draw filled polygon with alpha blending.\n\n\\param renderer The renderer to draw on.\n\\param vx Vertex array containing X coordinates of the points of the filled polygon.\n\\param vy Vertex array containing Y coordinates of the points of the filled polygon.\n\\param n Number of points in the vertex array. Minimum number is 3.\n\\param color The color value of the filled polygon to draw (0xAABBGGRR). \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint filledPolygonColor(SDL_Renderer * renderer, const Sint16 * vx, const Sint16 * vy, int n, Uint32 color)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn filledPolygonRGBAMT(renderer, vx, vy, n, c[0], c[1], c[2], c[3], NULL, NULL);\n}\n\n/*!\n\\brief Draw filled polygon with alpha blending.\n\n\\param renderer The renderer to draw on.\n\\param vx Vertex array containing X coordinates of the points of the filled polygon.\n\\param vy Vertex array containing Y coordinates of the points of the filled polygon.\n\\param n Number of points in the vertex array. Minimum number is 3.\n\\param r The red value of the filled polygon to draw. \n\\param g The green value of the filled polygon to draw. \n\\param b The blue value of the filed polygon to draw. \n\\param a The alpha value of the filled polygon to draw.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint filledPolygonRGBA(SDL_Renderer * renderer, const Sint16 * vx, const Sint16 * vy, int n, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\treturn filledPolygonRGBAMT(renderer, vx, vy, n, r, g, b, a, NULL, NULL);\n}\n\n/* ---- Textured Polygon */\n\n/*!\n\\brief Internal function to draw a textured horizontal line.\n\n\\param renderer The renderer to draw on.\n\\param x1 X coordinate of the first point (i.e. left) of the line.\n\\param x2 X coordinate of the second point (i.e. right) of the line.\n\\param y Y coordinate of the points of the line.\n\\param texture The texture to retrieve color information from.\n\\param texture_w The width of the texture.\n\\param texture_h The height of the texture.\n\\param texture_dx The X offset for the texture lookup.\n\\param texture_dy The Y offset for the textured lookup.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint _HLineTextured(SDL_Renderer *renderer, Sint16 x1, Sint16 x2, Sint16 y, SDL_Texture *texture, int texture_w, int texture_h, int texture_dx, int texture_dy)\n{\n\tSint16 w;\n\tSint16 xtmp;\n\tint result = 0;\n\tint texture_x_walker;    \n\tint texture_y_start;    \n\tSDL_Rect source_rect,dst_rect;\n\tint pixels_written,write_width;\n\n\t/*\n\t* Swap x1, x2 if required to ensure x1<=x2\n\t*/\n\tif (x1 > x2) {\n\t\txtmp = x1;\n\t\tx1 = x2;\n\t\tx2 = xtmp;\n\t}\n\n\t/*\n\t* Calculate width to draw\n\t*/\n\tw = x2 - x1 + 1;\n\n\t/*\n\t* Determine where in the texture we start drawing\n\t*/\n\ttexture_x_walker =   (x1 - texture_dx)  % texture_w;\n\tif (texture_x_walker < 0){\n\t\ttexture_x_walker = texture_w + texture_x_walker ;\n\t}\n\n\ttexture_y_start = (y + texture_dy) % texture_h;\n\tif (texture_y_start < 0){\n\t\ttexture_y_start = texture_h + texture_y_start;\n\t}\n\n\t/* setup the source rectangle; we are only drawing one horizontal line */\n\tsource_rect.y = texture_y_start;\n\tsource_rect.x = texture_x_walker;\n\tsource_rect.h = 1;\n\n\t/* we will draw to the current y */\n\tdst_rect.y = y;\n\tdst_rect.h = 1;\n\n\t/* if there are enough pixels left in the current row of the texture */\n\t/* draw it all at once */\n\tif (w <= texture_w -texture_x_walker){\n\t\tsource_rect.w = w;\n\t\tsource_rect.x = texture_x_walker;\n\t\tdst_rect.x= x1;\n\t\tdst_rect.w = source_rect.w;\n\t\tresult = (SDL_RenderCopy(renderer, texture, &source_rect, &dst_rect) == 0);\n\t} else { \n\t\t/* we need to draw multiple times */\n\t\t/* draw the first segment */\n\t\tpixels_written = texture_w  - texture_x_walker;\n\t\tsource_rect.w = pixels_written;\n\t\tsource_rect.x = texture_x_walker;\n\t\tdst_rect.x= x1;\n\t\tdst_rect.w = source_rect.w;\n\t\tresult |= (SDL_RenderCopy(renderer, texture, &source_rect, &dst_rect) == 0);\n\t\twrite_width = texture_w;\n\n\t\t/* now draw the rest */\n\t\t/* set the source x to 0 */\n\t\tsource_rect.x = 0;\n\t\twhile (pixels_written < w){\n\t\t\tif (write_width >= w - pixels_written) {\n\t\t\t\twrite_width =  w - pixels_written;\n\t\t\t}\n\t\t\tsource_rect.w = write_width;\n\t\t\tdst_rect.x = x1 + pixels_written;\n\t\t\tdst_rect.w = source_rect.w;\n\t\t\tresult |= (SDL_RenderCopy(renderer, texture, &source_rect, &dst_rect) == 0);\n\t\t\tpixels_written += write_width;\n\t\t}\n\t}\n\n\treturn result;\n}\n\n/*!\n\\brief Draws a polygon filled with the given texture (Multi-Threading Capable). \n\n\\param renderer The renderer to draw on.\n\\param vx array of x vector components\n\\param vy array of x vector components\n\\param n the amount of vectors in the vx and vy array\n\\param texture the sdl surface to use to fill the polygon\n\\param texture_dx the offset of the texture relative to the screeen. If you move the polygon 10 pixels \nto the left and want the texture to apear the same you need to increase the texture_dx value\n\\param texture_dy see texture_dx\n\\param polyInts Preallocated temp array storage for vertex sorting (used for multi-threaded operation)\n\\param polyAllocated Flag indicating oif the temp array was allocated (used for multi-threaded operation)\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint texturedPolygonMT(SDL_Renderer *renderer, const Sint16 * vx, const Sint16 * vy, int n, \n\tSDL_Surface * texture, int texture_dx, int texture_dy, int **polyInts, int *polyAllocated)\n{\n\tint result;\n\tint i;\n\tint y, xa, xb;\n\tint minx,maxx,miny, maxy;\n\tint x1, y1;\n\tint x2, y2;\n\tint ind1, ind2;\n\tint ints;\n\tint *gfxPrimitivesPolyInts = NULL;\n\tint *gfxPrimitivesPolyIntsTemp = NULL;\n\tint gfxPrimitivesPolyAllocated = 0;\n\tSDL_Texture *textureAsTexture = NULL;\n\n\t/*\n\t* Sanity check number of edges\n\t*/\n\tif (n < 3) {\n\t\treturn -1;\n\t}\n\n\t/*\n\t* Map polygon cache  \n\t*/\n\tif ((polyInts==NULL) || (polyAllocated==NULL)) {\n\t\t/* Use global cache */\n\t\tgfxPrimitivesPolyInts = gfxPrimitivesPolyIntsGlobal;\n\t\tgfxPrimitivesPolyAllocated = gfxPrimitivesPolyAllocatedGlobal;\n\t} else {\n\t\t/* Use local cache */\n\t\tgfxPrimitivesPolyInts = *polyInts;\n\t\tgfxPrimitivesPolyAllocated = *polyAllocated;\n\t}\n\n\t/*\n\t* Allocate temp array, only grow array \n\t*/\n\tif (!gfxPrimitivesPolyAllocated) {\n\t\tgfxPrimitivesPolyInts = (int *) malloc(sizeof(int) * n);\n\t\tgfxPrimitivesPolyAllocated = n;\n\t} else {\n\t\tif (gfxPrimitivesPolyAllocated < n) {\n\t\t\tgfxPrimitivesPolyIntsTemp = (int *) realloc(gfxPrimitivesPolyInts, sizeof(int) * n);\n\t\t\tif (gfxPrimitivesPolyIntsTemp == NULL) {\n\t\t\t\t/* Realloc failed - keeps original memory block, but fails this operation */\n\t\t\t\treturn(-1);\n\t\t\t}\n\t\t\tgfxPrimitivesPolyInts = gfxPrimitivesPolyIntsTemp;\n\t\t\tgfxPrimitivesPolyAllocated = n;\n\t\t}\n\t}\n\n\t/*\n\t* Check temp array\n\t*/\n\tif (gfxPrimitivesPolyInts==NULL) {        \n\t\tgfxPrimitivesPolyAllocated = 0;\n\t}\n\n\t/*\n\t* Update cache variables\n\t*/\n\tif ((polyInts==NULL) || (polyAllocated==NULL)) { \n\t\tgfxPrimitivesPolyIntsGlobal =  gfxPrimitivesPolyInts;\n\t\tgfxPrimitivesPolyAllocatedGlobal = gfxPrimitivesPolyAllocated;\n\t} else {\n\t\t*polyInts = gfxPrimitivesPolyInts;\n\t\t*polyAllocated = gfxPrimitivesPolyAllocated;\n\t}\n\n\t/*\n\t* Check temp array again\n\t*/\n\tif (gfxPrimitivesPolyInts==NULL) {        \n\t\treturn(-1);\n\t}\n\n\t/*\n\t* Determine X,Y minima,maxima \n\t*/\n\tminy = vy[0];\n\tmaxy = vy[0];\n\tminx = vx[0];\n\tmaxx = vx[0];\n\tfor (i = 1; (i < n); i++) {\n\t\tif (vy[i] < miny) {\n\t\t\tminy = vy[i];\n\t\t} else if (vy[i] > maxy) {\n\t\t\tmaxy = vy[i];\n\t\t}\n\t\tif (vx[i] < minx) {\n\t\t\tminx = vx[i];\n\t\t} else if (vx[i] > maxx) {\n\t\t\tmaxx = vx[i];\n\t\t}\n\t}\n\n    /* Create texture for drawing */\n\ttextureAsTexture = SDL_CreateTextureFromSurface(renderer, texture);\n\tif (textureAsTexture == NULL)\n\t{\n\t\treturn -1;\n\t}\n\tSDL_SetTextureBlendMode(textureAsTexture, SDL_BLENDMODE_BLEND);\n\t\n\t/*\n\t* Draw, scanning y \n\t*/\n\tresult = 0;\n\tfor (y = miny; (y <= maxy); y++) {\n\t\tints = 0;\n\t\tfor (i = 0; (i < n); i++) {\n\t\t\tif (!i) {\n\t\t\t\tind1 = n - 1;\n\t\t\t\tind2 = 0;\n\t\t\t} else {\n\t\t\t\tind1 = i - 1;\n\t\t\t\tind2 = i;\n\t\t\t}\n\t\t\ty1 = vy[ind1];\n\t\t\ty2 = vy[ind2];\n\t\t\tif (y1 < y2) {\n\t\t\t\tx1 = vx[ind1];\n\t\t\t\tx2 = vx[ind2];\n\t\t\t} else if (y1 > y2) {\n\t\t\t\ty2 = vy[ind1];\n\t\t\t\ty1 = vy[ind2];\n\t\t\t\tx2 = vx[ind1];\n\t\t\t\tx1 = vx[ind2];\n\t\t\t} else {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif ( ((y >= y1) && (y < y2)) || ((y == maxy) && (y > y1) && (y <= y2)) ) {\n\t\t\t\tgfxPrimitivesPolyInts[ints++] = ((65536 * (y - y1)) / (y2 - y1)) * (x2 - x1) + (65536 * x1);\n\t\t\t} \n\t\t}\n\n\t\tqsort(gfxPrimitivesPolyInts, ints, sizeof(int), _gfxPrimitivesCompareInt);\n\n\t\tfor (i = 0; (i < ints); i += 2) {\n\t\t\txa = gfxPrimitivesPolyInts[i] + 1;\n\t\t\txa = (xa >> 16) + ((xa & 32768) >> 15);\n\t\t\txb = gfxPrimitivesPolyInts[i+1] - 1;\n\t\t\txb = (xb >> 16) + ((xb & 32768) >> 15);\n\t\t\tresult |= _HLineTextured(renderer, xa, xb, y, textureAsTexture, texture->w, texture->h, texture_dx, texture_dy);\n\t\t}\n\t}\n\n\tSDL_RenderPresent(renderer);\n\tSDL_DestroyTexture(textureAsTexture);\n\n\treturn (result);\n}\n\n/*!\n\\brief Draws a polygon filled with the given texture. \n\nThis standard version is calling multithreaded versions with NULL cache parameters.\n\n\\param renderer The renderer to draw on.\n\\param vx array of x vector components\n\\param vy array of x vector components\n\\param n the amount of vectors in the vx and vy array\n\\param texture the sdl surface to use to fill the polygon\n\\param texture_dx the offset of the texture relative to the screeen. if you move the polygon 10 pixels \nto the left and want the texture to apear the same you need to increase the texture_dx value\n\\param texture_dy see texture_dx\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint texturedPolygon(SDL_Renderer *renderer, const Sint16 * vx, const Sint16 * vy, int n, SDL_Surface *texture, int texture_dx, int texture_dy)\n{\n\t/*\n\t* Draw\n\t*/\n\treturn (texturedPolygonMT(renderer, vx, vy, n, texture, texture_dx, texture_dy, NULL, NULL));\n}\n\n/* ---- Character */\n\n/*!\n\\brief Global cache for NxM pixel font textures created at runtime.\n*/\nstatic SDL_Texture *gfxPrimitivesFont[256];\n\n/*!\n\\brief Pointer to the current font data. Default is a 8x8 pixel internal font. \n*/\nstatic const unsigned char *currentFontdata = gfxPrimitivesFontdata;\n\n/*!\n\\brief Width of the current font. Default is 8. \n*/\nstatic Uint32 charWidth = 8;\n\n/*!\n\\brief Height of the current font. Default is 8. \n*/\nstatic Uint32 charHeight = 8;\n\n/*!\n\\brief Width for rendering. Autocalculated.\n*/\nstatic Uint32 charWidthLocal = 8;\n\n/*!\n\\brief Height for rendering. Autocalculated.\n*/\nstatic Uint32 charHeightLocal = 8;\n\n/*!\n\\brief Pitch of the current font in bytes. Default is 1. \n*/\nstatic Uint32 charPitch = 1;\n\n/*!\n\\brief Characters 90deg clockwise rotations. Default is 0. Max is 3. \n*/\nstatic Uint32 charRotation = 0;\nstatic Uint32 charZoomX = 1;\nstatic Uint32 charZoomY = 1;\n\n/*!\n\\brief Character data size in bytes of the current font. Default is 8. \n*/\nstatic Uint32 charSize = 8;\n\n/*!\n\\brief Sets or resets the current global font data.\n\nThe font data array is organized in follows: \n[fontdata] = [character 0][character 1]...[character 255] where\n[character n] = [byte 1 row 1][byte 2 row 1]...[byte {pitch} row 1][byte 1 row 2] ...[byte {pitch} row height] where\n[byte n] = [bit 0]...[bit 7] where \n[bit n] = [0 for transparent pixel|1 for colored pixel]\n\n\\param fontdata Pointer to array of font data. Set to NULL, to reset global font to the default 8x8 font.\n\\param cw Width of character in bytes. Ignored if fontdata==NULL.\n\\param ch Height of character in bytes. Ignored if fontdata==NULL.\n*/\nvoid gfxPrimitivesSetFont(const void *fontdata, Uint32 cw, Uint32 ch)\n{\n\tint i;\n\n\tif ((fontdata) && (cw) && (ch)) {\n\t\tcurrentFontdata = (unsigned char *)fontdata;\n\t\tcharWidth = cw;\n\t\tcharHeight = ch;\n\t} else {\n\t\tcurrentFontdata = gfxPrimitivesFontdata;\n\t\tcharWidth = 8;\n\t\tcharHeight = 8;\n\t}\n\n\tcharPitch = (charWidth+7)/8;\n\tcharSize = charPitch * charHeight;\n\n\t/* Maybe flip width/height for rendering */\n\tif ((charRotation==1) || (charRotation==3))\n\t{\n\t\tcharWidthLocal = charHeight;\n\t\tcharHeightLocal = charWidth;\n\t}\n\telse\n\t{\n\t\tcharWidthLocal = charWidth;\n\t\tcharHeightLocal = charHeight;\n\t}\n\n\t/* Clear character cache */\n\tfor (i = 0; i < 256; i++) {\n\t\tif (gfxPrimitivesFont[i]) {\n\t\t\tSDL_DestroyTexture(gfxPrimitivesFont[i]);\n\t\t\tgfxPrimitivesFont[i] = NULL;\n\t\t}\n\t}\n}\n\nconst void *gfxPrimitivesGetFont(void)\n{\n\treturn currentFontdata;\n}\n\n/*!\n\\brief Sets current global font character rotation steps. \n\nDefault is 0 (no rotation). 1 = 90deg clockwise. 2 = 180deg clockwise. 3 = 270deg clockwise.\nChanging the rotation, will reset the character cache.\n\n\\param rotation Number of 90deg clockwise steps to rotate\n*/\nvoid gfxPrimitivesSetFontRotation(Uint32 rotation)\n{\n\tint i;\n\n\trotation = rotation & 3;\n\tif (charRotation != rotation)\n\t{\n\t\t/* Store rotation */\n\t\tcharRotation = rotation;\n\n\t\t/* Maybe flip width/height for rendering */\n\t\tif ((charRotation==1) || (charRotation==3))\n\t\t{\n\t\t\tcharWidthLocal = charHeight;\n\t\t\tcharHeightLocal = charWidth;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tcharWidthLocal = charWidth;\n\t\t\tcharHeightLocal = charHeight;\n\t\t}\n\n\t\t/* Clear character cache */\n\t\tfor (i = 0; i < 256; i++) {\n\t\t\tif (gfxPrimitivesFont[i]) {\n\t\t\t\tSDL_DestroyTexture(gfxPrimitivesFont[i]);\n\t\t\t\tgfxPrimitivesFont[i] = NULL;\n\t\t\t}\n\t\t}\n\t}\n}\n\nvoid gfxPrimitivesSetFontZoom(Uint32 zoomx, Uint32 zoomy)\n{\n\tint i;\n\n\tcharZoomX = zoomx ;\n\tcharZoomY = zoomy ;\n\t/* Clear character cache */\n\tfor (i = 0; i < 256; i++) {\n\t\tif (gfxPrimitivesFont[i]) {\n\t\t\tSDL_DestroyTexture(gfxPrimitivesFont[i]);\n\t\t\tgfxPrimitivesFont[i] = NULL;\n\t\t}\n\t}\n}\n\n/*!\n\\brief Draw a character of the currently set font.\n\n\\param renderer The Renderer to draw on.\n\\param x X (horizontal) coordinate of the upper left corner of the character.\n\\param y Y (vertical) coordinate of the upper left corner of the character.\n\\param c The character to draw.\n\\param r The red value of the character to draw. \n\\param g The green value of the character to draw. \n\\param b The blue value of the character to draw. \n\\param a The alpha value of the character to draw.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint characterRGBA(SDL_Renderer *renderer, Sint16 x, Sint16 y, char c, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\tSDL_Rect srect;\n\tSDL_Rect drect;\n\tint result;\n\tUint32 ix, iy;\n\tconst unsigned char *charpos;\n\tUint8 *curpos;\n\tUint8 patt, mask;\n\tUint8 *linepos;\n\tUint32 pitch;\n\tSDL_Surface *character;\n\tSDL_Surface *rotatedCharacter;\n\tSDL_Surface *zoomedCharacter;\n\tUint32 ci;\n\n\t/*\n\t* Setup source rectangle\n\t*/\n\tsrect.x = 0;\n\tsrect.y = 0;\n\tsrect.w = charWidthLocal * charZoomX;\n\tsrect.h = charHeightLocal * charZoomY;\n\n\t/*\n\t* Setup destination rectangle\n\t*/\n\tdrect.x = x;\n\tdrect.y = y;\n\tdrect.w = charWidthLocal * charZoomX;\n\tdrect.h = charHeightLocal * charZoomY;\n\n\t/* Character index in cache */\n\tci = (unsigned char) c;\n\n\t/*\n\t* Create new charWidth x charHeight bitmap surface if not already present.\n\t* Might get rotated later.\n\t*/\n\tif (gfxPrimitivesFont[ci] == NULL) {\n\t\t/*\n\t\t* Redraw character into surface\n\t\t*/\n\t\tcharacter =\tSDL_CreateRGBSurface(SDL_SWSURFACE,\n\t\t\tcharWidth, charHeight, 32,\n\t\t\t0xFF000000, 0x00FF0000, 0x0000FF00, 0x000000FF);\n\t\tif (character == NULL) {\n\t\t\treturn (-1);\n\t\t}\n\n\t\tcharpos = currentFontdata + ci * charSize;\n\t\t\t\tlinepos = (Uint8 *)character->pixels;\n\t\tpitch = character->pitch;\n\n\t\t/*\n\t\t* Drawing loop \n\t\t*/\n\t\tpatt = 0;\n\t\tfor (iy = 0; iy < charHeight; iy++) {\n\t\t\tmask = 0x00;\n\t\t\tcurpos = linepos;\n\t\t\tfor (ix = 0; ix < charWidth; ix++) {\n\t\t\t\tif (!(mask >>= 1)) {\n\t\t\t\t\tpatt = *charpos++;\n\t\t\t\t\tmask = 0x80;\n\t\t\t\t}\n\t\t\t\tif (patt & mask) {\n\t\t\t\t\t*(Uint32 *)curpos = 0xffffffff;\n\t\t\t\t} else {\n\t\t\t\t\t*(Uint32 *)curpos = 0;\n\t\t\t\t}\n\t\t\t\tcurpos += 4;\n\t\t\t}\n\t\t\tlinepos += pitch;\n\t\t}\n\n\t\t/* Maybe zoom character */\n\t\tif ((charZoomX != 1) || (charZoomY != 1))\n\t\t{\n\t\t\tzoomedCharacter = zoomSurface(character, (double)charZoomX, \n                                                          (double)charZoomY, SMOOTHING_OFF);\n\t\t\tSDL_FreeSurface(character);\n\t\t\tcharacter = zoomedCharacter;\n\t\t}\n\n\t\t/* Maybe rotate and replace cached image */\n\t\tif (charRotation>0)\n\t\t{\n\t\t\trotatedCharacter = rotateSurface90Degrees(character, charRotation);\n\t\t\tSDL_FreeSurface(character);\n\t\t\tcharacter = rotatedCharacter;\n\t\t}\n\n\t\t/* Convert temp surface into texture */\n\t\tgfxPrimitivesFont[ci] = SDL_CreateTextureFromSurface(renderer, character);\n\t\tSDL_FreeSurface(character);\n\n\t\t/*\n\t\t* Check pointer \n\t\t*/\n\t\tif (gfxPrimitivesFont[ci] == NULL) {\n\t\t\treturn (-1);\n\t\t}\n\t}\n\n\t/*\n\t* Set color \n\t*/\n\tresult = 0;\n\tresult |= SDL_SetTextureColorMod(gfxPrimitivesFont[ci], r, g, b);\n\tresult |= SDL_SetTextureAlphaMod(gfxPrimitivesFont[ci], a);\n\n\t/*\n\t* Draw texture onto destination \n\t*/\n\tresult |= SDL_RenderCopy(renderer, gfxPrimitivesFont[ci], &srect, &drect);\n\n\treturn (result);\n}\n\n\n/*!\n\\brief Draw a character of the currently set font.\n\n\\param renderer The renderer to draw on.\n\\param x X (horizontal) coordinate of the upper left corner of the character.\n\\param y Y (vertical) coordinate of the upper left corner of the character.\n\\param c The character to draw.\n\\param color The color value of the character to draw (0xAABBGGRR). \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint characterColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, char c, Uint32 color)\n{\n\tUint8 *co = (Uint8 *)&color; \n\treturn characterRGBA(renderer, x, y, c, co[0], co[1], co[2], co[3]);\n}\n\n\n/*!\n\\brief Draw a string in the currently set font.\n\nThe spacing between consequtive characters in the string is the fixed number of pixels \nof the character width of the current global font.\n\n\\param renderer The renderer to draw on.\n\\param x X (horizontal) coordinate of the upper left corner of the string.\n\\param y Y (vertical) coordinate of the upper left corner of the string.\n\\param s The string to draw.\n\\param color The color value of the string to draw (0xAABBGGRR). \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint stringColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, const char *s, Uint32 color)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn stringRGBA(renderer, x, y, s, c[0], c[1], c[2], c[3]);\n}\n\n/*!\n\\brief Draw a string in the currently set font.\n\n\\param renderer The renderer to draw on.\n\\param x X (horizontal) coordinate of the upper left corner of the string.\n\\param y Y (vertical) coordinate of the upper left corner of the string.\n\\param s The string to draw.\n\\param r The red value of the string to draw. \n\\param g The green value of the string to draw. \n\\param b The blue value of the string to draw. \n\\param a The alpha value of the string to draw.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint stringRGBA(SDL_Renderer * renderer, Sint16 x, Sint16 y, const char *s, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\tint result = 0;\n\tSint16 curx = x;\n\tSint16 cury = y;\n\tconst char *curchar = s;\n\n\twhile (*curchar && !result) {\n\t\tresult |= characterRGBA(renderer, curx, cury, *curchar, r, g, b, a);\n\t\tswitch (charRotation)\n\t\t{\n\t\tcase 0:\n\t\t\tcurx += charWidthLocal * charZoomX;\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tcurx -= charWidthLocal * charZoomX;\n\t\t\tbreak;\n\t\tcase 1:\n\t\t\tcury += charHeightLocal * charZoomY;\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tcury -= charHeightLocal * charZoomY;\n\t\t\tbreak;\n\t\t}\n\t\tcurchar++;\n\t}\n\n\treturn (result);\n}\n\n/* ---- Bezier curve */\n\n/*!\n\\brief Internal function to calculate bezier interpolator of data array with ndata values at position 't'.\n\n\\param data Array of values.\n\\param ndata Size of array.\n\\param t Position for which to calculate interpolated value. t should be between [0, ndata].\n\n\\returns Interpolated value at position t, value[0] when t<0, value[n-1] when t>n.\n*/\ndouble _evaluateBezier (double *data, int ndata, double t) \n{\n\tdouble mu, result;\n\tint n,k,kn,nn,nkn;\n\tdouble blend,muk,munk;\n\n\t/* Sanity check bounds */\n\tif (t<0.0) {\n\t\treturn(data[0]);\n\t}\n\tif (t>=(double)ndata) {\n\t\treturn(data[ndata-1]);\n\t}\n\n\t/* Adjust t to the range 0.0 to 1.0 */ \n\tmu=t/(double)ndata;\n\n\t/* Calculate interpolate */\n\tn=ndata-1;\n\tresult=0.0;\n\tmuk = 1;\n\tmunk = pow(1-mu,(double)n);\n\tfor (k=0;k<=n;k++) {\n\t\tnn = n;\n\t\tkn = k;\n\t\tnkn = n - k;\n\t\tblend = muk * munk;\n\t\tmuk *= mu;\n\t\tmunk /= (1-mu);\n\t\twhile (nn >= 1) {\n\t\t\tblend *= nn;\n\t\t\tnn--;\n\t\t\tif (kn > 1) {\n\t\t\t\tblend /= (double)kn;\n\t\t\t\tkn--;\n\t\t\t}\n\t\t\tif (nkn > 1) {\n\t\t\t\tblend /= (double)nkn;\n\t\t\t\tnkn--;\n\t\t\t}\n\t\t}\n\t\tresult += data[k] * blend;\n\t}\n\n\treturn (result);\n}\n\n/*!\n\\brief Draw a bezier curve with alpha blending.\n\n\\param renderer The renderer to draw on.\n\\param vx Vertex array containing X coordinates of the points of the bezier curve.\n\\param vy Vertex array containing Y coordinates of the points of the bezier curve.\n\\param n Number of points in the vertex array. Minimum number is 3.\n\\param s Number of steps for the interpolation. Minimum number is 2.\n\\param color The color value of the bezier curve to draw (0xAABBGGRR). \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint bezierColor(SDL_Renderer * renderer, const Sint16 * vx, const Sint16 * vy, int n, int s, Uint32 color)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn bezierRGBA(renderer, vx, vy, n, s, c[0], c[1], c[2], c[3]);\n}\n\n/*!\n\\brief Draw a bezier curve with alpha blending.\n\n\\param renderer The renderer to draw on.\n\\param vx Vertex array containing X coordinates of the points of the bezier curve.\n\\param vy Vertex array containing Y coordinates of the points of the bezier curve.\n\\param n Number of points in the vertex array. Minimum number is 3.\n\\param s Number of steps for the interpolation. Minimum number is 2.\n\\param r The red value of the bezier curve to draw. \n\\param g The green value of the bezier curve to draw. \n\\param b The blue value of the bezier curve to draw. \n\\param a The alpha value of the bezier curve to draw.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint bezierRGBA(SDL_Renderer * renderer, const Sint16 * vx, const Sint16 * vy, int n, int s, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\tint result;\n\tint i;\n\tdouble *x, *y, t, stepsize;\n\tSint16 x1, y1, x2, y2;\n\n\t/*\n\t* Sanity check \n\t*/\n\tif (n < 3) {\n\t\treturn (-1);\n\t}\n\tif (s < 2) {\n\t\treturn (-1);\n\t}\n\n\t/*\n\t* Variable setup \n\t*/\n\tstepsize=(double)1.0/(double)s;\n\n\t/* Transfer vertices into float arrays */\n\tif ((x=(double *)malloc(sizeof(double)*(n+1)))==NULL) {\n\t\treturn(-1);\n\t}\n\tif ((y=(double *)malloc(sizeof(double)*(n+1)))==NULL) {\n\t\tfree(x);\n\t\treturn(-1);\n\t}    \n\tfor (i=0; i<n; i++) {\n\t\tx[i]=(double)vx[i];\n\t\ty[i]=(double)vy[i];\n\t}      \n\tx[n]=(double)vx[0];\n\ty[n]=(double)vy[0];\n\n\t/*\n\t* Set color \n\t*/\n\tresult = 0;\n\tif (a != 255) result |= SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND);\n\tresult |= SDL_SetRenderDrawColor(renderer, r, g, b, a);\n\n\t/*\n\t* Draw \n\t*/\n\tt=0.0;\n\tx1=(Sint16)lrint(_evaluateBezier(x,n+1,t));\n\ty1=(Sint16)lrint(_evaluateBezier(y,n+1,t));\n\tfor (i = 0; i <= (n*s); i++) {\n\t\tt += stepsize;\n\t\tx2=(Sint16)_evaluateBezier(x,n,t);\n\t\ty2=(Sint16)_evaluateBezier(y,n,t);\n\t\tresult |= line(renderer, x1, y1, x2, y2);\n\t\tx1 = x2;\n\t\ty1 = y2;\n\t}\n\n\t/* Clean up temporary array */\n\tfree(x);\n\tfree(y);\n\n\treturn (result);\n}\n\n\n/* ---- Thick Line */\n\n/*!\n\\brief Internal function to initialize the Bresenham line iterator.\n\nExample of use:\nSDL2_gfxBresenhamIterator b;\n_bresenhamInitialize (&b, x1, y1, x2, y2);\ndo { \nplot(b.x, b.y); \n} while (_bresenhamIterate(&b)==0); \n\n\\param b Pointer to struct for bresenham line drawing state.\n\\param x1 X coordinate of the first point of the line.\n\\param y1 Y coordinate of the first point of the line.\n\\param x2 X coordinate of the second point of the line.\n\\param y2 Y coordinate of the second point of the line.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint _bresenhamInitialize(SDL2_gfxBresenhamIterator *b, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2)\n{\n\tint temp;\n\n\tif (b==NULL) {\n\t\treturn(-1);\n\t}\n\n\tb->x = x1;\n\tb->y = y1;\n\n\t/* dx = abs(x2-x1), s1 = sign(x2-x1) */\n\tif ((b->dx = x2 - x1) != 0) {\n\t\tif (b->dx < 0) {\n\t\t\tb->dx = -b->dx;\n\t\t\tb->s1 = -1;\n\t\t} else {\n\t\t\tb->s1 = 1;\n\t\t}\n\t} else {\n\t\tb->s1 = 0;\t\n\t}\n\n\t/* dy = abs(y2-y1), s2 = sign(y2-y1)    */\n\tif ((b->dy = y2 - y1) != 0) {\n\t\tif (b->dy < 0) {\n\t\t\tb->dy = -b->dy;\n\t\t\tb->s2 = -1;\n\t\t} else {\n\t\t\tb->s2 = 1;\n\t\t}\n\t} else {\n\t\tb->s2 = 0;\t\n\t}\n\n\tif (b->dy > b->dx) {\n\t\ttemp = b->dx;\n\t\tb->dx = b->dy;\n\t\tb->dy = temp;\n\t\tb->swapdir = 1;\n\t} else {\n\t\tb->swapdir = 0;\n\t}\n\n\tb->count = (b->dx<0) ? 0 : (unsigned int)b->dx;\n\tb->dy <<= 1;\n\tb->error = b->dy - b->dx;\n\tb->dx <<= 1;\t\n\n\treturn(0);\n}\n\n\n/*!\n\\brief Internal function to move Bresenham line iterator to the next position.\n\nMaybe updates the x and y coordinates of the iterator struct.\n\n\\param b Pointer to struct for bresenham line drawing state.\n\n\\returns Returns 0 on success, 1 if last point was reached, 2 if moving past end-of-line, -1 on failure.\n*/\nint _bresenhamIterate(SDL2_gfxBresenhamIterator *b)\n{\t\n\tif (b==NULL) {\n\t\treturn (-1);\n\t}\n\n\t/* last point check */\n\tif (b->count==0) {\n\t\treturn (2);\n\t}\n\n\twhile (b->error >= 0) {\n\t\tif (b->swapdir) {\n\t\t\tb->x += b->s1;\n\t\t} else  {\n\t\t\tb->y += b->s2;\n\t\t}\n\n\t\tb->error -= b->dx;\n\t}\n\n\tif (b->swapdir) {\n\t\tb->y += b->s2;\n\t} else {\n\t\tb->x += b->s1;\n\t}\n\n\tb->error += b->dy;\t\n\tb->count--;\t\t\n\n\t/* count==0 indicates \"end-of-line\" */\n\treturn ((b->count) ? 0 : 1);\n}\n\n/* Code for Murphy thick line algorithm from http://kt8216.unixcab.org/murphy/ */\n\n/***********************************************************************\n *                                                                     *\n *                            X BASED LINES                            *\n *                                                                     *\n ***********************************************************************/\n\nstatic void x_perpendicular(SDL_Renderer *B, \n                            int x0,int y0,int dx,int dy,int xstep, int ystep,\n                            int einit,int w_left, int w_right,int winit)\n{\n  int x,y,threshold,E_diag,E_square;\n  int tk;\n  int error;\n  int p,q;\n\n  threshold = dx - 2*dy;\n  E_diag= -2*dx;\n  E_square= 2*dy;\n  p=q=0;\n\n  y= y0;\n  x= x0;\n  error= einit;\n  tk= dx+dy-winit; \n\n  while(tk<=w_left)\n  {\n     SDL_RenderDrawPoint(B,x,y);\n     if (error>=threshold)\n     {\n       x= x + xstep;\n       error = error + E_diag;\n       tk= tk + 2*dy;\n     }\n     error = error + E_square;\n     y= y + ystep;\n     tk= tk + 2*dx;\n     q++;\n  }\n\n  y= y0;\n  x= x0;\n  error= -einit;\n  tk= dx+dy+winit;\n\n  while(tk<=w_right)\n  {\n     if (p)\n       SDL_RenderDrawPoint(B,x,y);\n     if (error>threshold)\n     {\n       x= x - xstep;\n       error = error + E_diag;\n       tk= tk + 2*dy;\n     }\n     error = error + E_square;\n     y= y - ystep;\n     tk= tk + 2*dx;\n     p++;\n  }\n\n  if (q==0 && p<2) SDL_RenderDrawPoint(B,x0,y0); // we need this for very thin lines\n}\n\nstatic void x_varthick_line\n   (SDL_Renderer *B, int style,\n    int x0,int y0,int dx,int dy,int xstep, int ystep,\n    double thickness, int pxstep,int pystep)\n{\n  int p_error, error, x,y, threshold, E_diag, E_square, length, p;\n  int w_left, w_right;\n  double D;\n\n  p_error= 0;\n  error= 0;\n  y= y0;\n  x= x0;\n  threshold = dx - 2*dy;\n  E_diag= -2*dx;\n  E_square= 2*dy;\n  length = dx+1;\n  D= sqrt(dx*dx+dy*dy);\n  w_left= thickness*D + 0.5;\n  w_right= 2.0*thickness*D + 0.5;\n  w_right -= w_left;\n\n  for(p=0;p<length;p++)\n  {\n    style = (style << 1) | (style < 0);\n\n    if (style < 0)\n        x_perpendicular(B,x,y, dx, dy, pxstep, pystep,\n                                      p_error,w_left,w_right,error);\n    if (error>=threshold)\n    {\n      y= y + ystep;\n      error = error + E_diag;\n      if (p_error>=threshold) \n      {\n        if (style < 0)\n            x_perpendicular(B,x,y, dx, dy, pxstep, pystep,\n                                    (p_error+E_diag+E_square), \n                                     w_left,w_right,error);\n        p_error= p_error + E_diag;\n      }\n      p_error= p_error + E_square;\n    }\n    error = error + E_square;\n    x= x + xstep;\n  }\n}\n\n/***********************************************************************\n *                                                                     *\n *                            Y BASED LINES                            *\n *                                                                     *\n ***********************************************************************/\n\nstatic void y_perpendicular(SDL_Renderer *B,\n                            int x0,int y0,int dx,int dy,int xstep, int ystep,\n                            int einit,int w_left, int w_right,int winit)\n{\n  int x,y,threshold,E_diag,E_square;\n  int tk;\n  int error;\n  int p,q;\n\n  p=q= 0;\n  threshold = dy - 2*dx;\n  E_diag= -2*dy;\n  E_square= 2*dx;\n\n  y= y0;\n  x= x0;\n  error= -einit;\n  tk= dx+dy+winit; \n\n  while(tk<=w_left)\n  {\n     SDL_RenderDrawPoint(B,x,y);\n     if (error>threshold)\n     {\n       y= y + ystep;\n       error = error + E_diag;\n       tk= tk + 2*dx;\n     }\n     error = error + E_square;\n     x= x + xstep;\n     tk= tk + 2*dy;\n     q++;\n  }\n\n  y= y0;\n  x= x0;\n  error= einit;\n  tk= dx+dy-winit; \n\n  while(tk<=w_right)\n  {\n     if (p)\n       SDL_RenderDrawPoint(B,x,y);\n     if (error>=threshold)\n     {\n       y= y - ystep;\n       error = error + E_diag;\n       tk= tk + 2*dx;\n     }\n     error = error + E_square;\n     x= x - xstep;\n     tk= tk + 2*dy;\n     p++;\n  }\n\n  if (q==0 && p<2) SDL_RenderDrawPoint(B,x0,y0); // we need this for very thin lines\n}\n\nstatic void y_varthick_line\n   (SDL_Renderer *B, int style,\n    int x0,int y0,int dx,int dy,int xstep, int ystep,\n    double thickness, int pxstep,int pystep)\n{\n  int p_error, error, x,y, threshold, E_diag, E_square, length, p;\n  int w_left, w_right;\n  double D;\n\n  p_error= 0;\n  error= 0;\n  y= y0;\n  x= x0;\n  threshold = dy - 2*dx;\n  E_diag= -2*dy;\n  E_square= 2*dx;\n  length = dy+1;\n  D= sqrt(dx*dx+dy*dy);\n  w_left=  thickness*D + 0.5;\n  w_right= 2.0*thickness*D + 0.5;\n  w_right -= w_left;\n\n  for(p=0;p<length;p++)\n  {\n    style = (style << 1) | (style < 0);\n\n    if (style < 0)\n        y_perpendicular(B,x,y, dx, dy, pxstep, pystep,\n                                      p_error,w_left,w_right,error);\n    if (error>=threshold)\n    {\n      x= x + xstep;\n      error = error + E_diag;\n      if (p_error>=threshold)\n      {\n        if (style < 0)\n            y_perpendicular(B,x,y, dx, dy, pxstep, pystep,\n                                     p_error+E_diag+E_square,\n                                     w_left,w_right,error);\n        p_error= p_error + E_diag;\n      }\n      p_error= p_error + E_square;\n    }\n    error = error + E_square;\n    y= y + ystep;\n  }\n}\n\n/***********************************************************************\n *                                                                     *\n *                                ENTRY                                *\n *                                                                     *\n ***********************************************************************/\n\nvoid draw_varthick_line(SDL_Renderer *B, int style,\n       int x0,int y0,int x1, int y1, double thickness)\n{\n  int dx,dy,xstep,ystep;\n  int pxstep = 0, pystep = 0;\n\n  dx= x1-x0;\n  dy= y1-y0;\n  xstep= ystep= 1;\n\n  if (dx<0) { dx= -dx; xstep= -1; }\n  if (dy<0) { dy= -dy; ystep= -1; }\n\n  if (dx==0) xstep= 0;\n  if (dy==0) ystep= 0;\n\n  switch(xstep + ystep*4)\n  {\n    case -1 + -1*4 :  pystep= -1; pxstep= 1; break;   // -5\n    case -1 +  0*4 :  pystep= -1; pxstep= 0; break;   // -1\n    case -1 +  1*4 :  pystep=  1; pxstep= 1; break;   // 3\n    case  0 + -1*4 :  pystep=  0; pxstep= -1; break;  // -4\n    case  0 +  0*4 :  pystep=  0; pxstep= 0; break;   // 0\n    case  0 +  1*4 :  pystep=  0; pxstep= 1; break;   // 4\n    case  1 + -1*4 :  pystep= -1; pxstep= -1; break;  // -3\n    case  1 +  0*4 :  pystep= -1; pxstep= 0;  break;  // 1\n    case  1 +  1*4 :  pystep=  1; pxstep= -1; break;  // 5\n  }\n\n  if (dx>dy) x_varthick_line(B,style,x0,y0,dx,dy,xstep,ystep,\n                                                thickness+1.0,\n                                                pxstep,pystep);\n        else y_varthick_line(B,style,x0,y0,dx,dy,xstep,ystep,\n                                                thickness+1.0,\n                                                pxstep,pystep);\n  return;\n}\n\nstatic int LineStyle = -1;\n\n/*!\n\\brief Draw a thick line with alpha blending.\n\n\\param renderer The renderer to draw on.\n\\param x1 X coordinate of the first point of the line.\n\\param y1 Y coordinate of the first point of the line.\n\\param x2 X coordinate of the second point of the line.\n\\param y2 Y coordinate of the second point of the line.\n\\param width Width of the line in pixels. Must be >0.\n\\param color The color value of the line to draw (0xAABBGGRR). \n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint thickLineColor(SDL_Renderer *renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 width, Uint32 color)\n{\t\n\tUint8 *c = (Uint8 *)&color; \n\tLineStyle = -1;\n\treturn thickLineRGBA(renderer, x1, y1, x2, y2, width, c[0], c[1], c[2], c[3]);\n}\n\nint thickLineColorStyle(SDL_Renderer *renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2,\n                        Uint8 width, Uint32 color, int style)\n{\t\n\tUint8 *c = (Uint8 *)&color; \n\tLineStyle = style;\n\treturn thickLineRGBA(renderer, x1, y1, x2, y2, width, c[0], c[1], c[2], c[3]);\n}\n\n/*!\n\\brief Draw a thick line with alpha blending.\n\n\\param renderer The renderer to draw on.\n\\param x1 X coordinate of the first point of the line.\n\\param y1 Y coordinate of the first point of the line.\n\\param x2 X coordinate of the second point of the line.\n\\param y2 Y coordinate of the second point of the line.\n\\param width Width of the line in pixels. Must be >0.\n\\param r The red value of the character to draw. \n\\param g The green value of the character to draw. \n\\param b The blue value of the character to draw. \n\\param a The alpha value of the character to draw.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\t\nint thickLineRGBA(SDL_Renderer *renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 width, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\tint result;\n\tint wh;\n\n\tif (renderer == NULL) {\n\t\treturn -1;\n\t}\n\tif (width < 1) {\n\t\treturn -1;\n\t}\n\n\t/* Special case: thick \"point\" */\n\tif ((x1 == x2) && (y1 == y2)) {\n\t\twh = width / 2;\n\t\treturn boxRGBA(renderer, x1 - wh, y1 - wh, x2 + wh, y2 + wh, r, g, b, a);\t\t\n\t}\n\n\t/*\n\t* Set color\n\t*/\n\tresult = 0;\n\tif (a != 255) result |= SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND);\n\tresult |= SDL_SetRenderDrawColor(renderer, r, g, b, a);\n\n\t/* \n\t* Draw\n\t*/\n\tdraw_varthick_line(renderer, LineStyle, x1, y1, x2, y2, (double) width);\n\treturn(result);\n}\n\nint RedefineChar(SDL_Renderer *renderer, char c, unsigned char *charpos, Uint32 width, Uint32 height)\n{\n\tUint32 ix, iy;\n\tUint8 *curpos;\n\tUint8 patt, mask;\n\tUint8 *linepos;\n\tUint32 pitch;\n\tSDL_Surface *character;\n\tSDL_Surface *zoomedCharacter;\n\tUint32 ci;\n\n\t/* Character index in cache */\n\tci = (unsigned char) c;\n\n\tif (gfxPrimitivesFont[ci] != NULL)\n\t\tSDL_DestroyTexture (gfxPrimitivesFont[ci]) ;\n\t\t\n\t// Redraw character into surface\n\tcharacter = SDL_CreateRGBSurface(SDL_SWSURFACE, width, height, 32,\n\t\t\t0xFF000000, 0x00FF0000, 0x0000FF00, 0x000000FF);\n\tif (character == NULL)\n\t\treturn (-1);\n\n\tlinepos = (Uint8 *)character->pixels;\n\tpitch = character->pitch;\n\n\t// Drawing loop \n\tpatt = 0;\n\tfor (iy = 0; iy < height; iy++)\n\t{\n\t\tmask = 0x00;\n\t\tcurpos = linepos;\n\t\tfor (ix = 0; ix < width; ix++)\n\t\t{\n\t\t\tif (!(mask >>= 1))\n\t\t\t{\n\t\t\t\tpatt = *charpos++;\n\t\t\t\tmask = 0x80;\n\t\t\t}\n\t\t\tif (patt & mask)\n\t\t\t{\n\t\t\t\t*(Uint32 *)curpos = 0xffffffff;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t*(Uint32 *)curpos = 0;\n\t\t\t}\n\t\t\tcurpos += 4;\n\t\t}\n\t\tlinepos += pitch;\n\t}\n\n\t/* Maybe zoom character */\n\tif ((charZoomX != 1) || (charZoomY != 1))\n\t{\n\t\tzoomedCharacter = zoomSurface(character, (double)charZoomX, \n                                                          (double)charZoomY, SMOOTHING_OFF);\n\t\tSDL_FreeSurface(character);\n\t\tcharacter = zoomedCharacter;\n\t}\n\n\t/* Convert temp surface into texture */\n\tgfxPrimitivesFont[ci] = SDL_CreateTextureFromSurface(renderer, character);\n\tSDL_FreeSurface(character);\n\n\t/*\n\t* Check pointer \n\t*/\n\tif (gfxPrimitivesFont[ci] == NULL) {\n\t\treturn (-1);\n\t}\n\treturn 0 ;\n}\n\n// Extensions for thick outline ellipses and arcs by Richard Russell 19-Feb-2019\n\n// SDL_RenderDrawLine() is documented as including both end points, but this isn't\n// reliable in Linux so use SDL_RenderDrawPoints() instead, despite being slower.\nstatic int renderdrawline(SDL_Renderer *renderer, int x1, int y1, int x2, int y2)\n{\n\tint result ;\n#ifndef __EMSCRIPTEN__\n\tif ((x1 == x2) && (y1 == y2))\n\t\tresult = SDL_RenderDrawPoint (renderer, x1, y1) ;\n\telse if (y1 == y2)\n\t    {\n\t\tint x ;\n\t\tif (x1 > x2) { x = x1 ; x1 = x2 ; x2 = x ; }\n\t\tSDL_Point *points = (SDL_Point*) malloc ((x2 - x1 + 1) * sizeof(SDL_Point)) ;\n\t\tif (points == NULL) return -1 ;\n\t\tfor (x = x1; x <= x2; x++)\n\t\t    {\n\t\t\tpoints[x - x1].x = x ;\n\t\t\tpoints[x - x1].y = y1 ;\n\t\t    }\n\t\tresult = SDL_RenderDrawPoints (renderer, points, x2 - x1 + 1) ;\n\t\tfree (points) ;\n\t    }\n\telse if (x1 == x2)\n\t    {\n\t\tint y ;\n\t\tif (y1 > y2) { y = y1 ; y1 = y2 ; y2 = y ; }\n\t\tSDL_Point *points = (SDL_Point*) malloc ((y2 - y1 + 1) * sizeof(SDL_Point)) ;\n\t\tif (points == NULL) return -1 ;\n\t\tfor (y = y1; y <= y2; y++)\n\t\t    {\n\t\t\tpoints[y - y1].x = x1 ;\n\t\t\tpoints[y - y1].y = y ;\n\t\t    }\n\t\tresult = SDL_RenderDrawPoints (renderer, points, y2 - y1 + 1) ;\n\t\tfree (points) ;\n\t    }\n\telse\n#endif\n\t\tresult = SDL_RenderDrawLine (renderer, x1, y1, x2, y2) ;\n\treturn result ;\n}\n\nstatic int hlinecliparc(SDL_Renderer *renderer, int x1, int x2, int y, int xc, int yc, double s, double f)\n{\n\tint result = 0 ;\n\tdouble a1, a2 ;\n\ta1 = atan2(y, x1) ;\n\ta2 = atan2(y, x2) ;\n\tif (a1 > a2)\n\t    {\n\t\tdouble a = a1 ; a1 = a2 ; a2 = a ;\n\t\tint x = x1 ; x1 = x2 ; x2 = x ;\n\t    }\n\tif (f < s)\n\t    {\n\t\tif ((a1 > f) && (a2 < s)) return result ;\n\t\tif ((a1 < s) && (a1 > f)) x1 = y / tan(s) ;\n\t\tif ((a2 > f) && (a2 < s)) x2 = y / tan(f) ;\n\t\tif ((a1 < f) && (a2 > s))\n\t\t    {\n\t\t\tresult |= renderdrawline(renderer, x1+xc, y+yc, y/tan(f)+xc, y+yc) ;\n\t\t\tresult |= renderdrawline(renderer, y/tan(s)+xc, y+yc, x2+xc, y+yc) ;\n\t\t\treturn result ;\n\t\t    }\n\t    }\n\telse\n\t    {\n\t\tif ((a1 > f) || (a2 < s)) return result ;\n\t\tif (a1 < s) x1 = y / tan(s) ;\n\t\tif (a2 > f) x2 = y / tan(f) ;\n\t    }\n\tresult |= renderdrawline(renderer, x1+xc, y+yc, x2+xc, y+yc) ;\n\treturn result ;\n}\n\n/*!\n\\brief Draw thick ellipse with blending.\n\n\\param renderer The renderer to draw on.\n\\param xc X coordinate of the center of the ellipse.\n\\param yc Y coordinate of the center of the ellipse.\n\\param xr Horizontal radius in pixels of the ellipse.\n\\param yr Vertical radius in pixels of the ellipse.\n\\param r The red value of the ellipse to draw. \n\\param g The green value of the ellipse to draw. \n\\param b The blue value of the ellipse to draw. \n\\param a The alpha value of the ellipse to draw.\n\\param thick The line thickness in pixels\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint thickEllipseRGBA(SDL_Renderer * renderer, Sint16 xc, Sint16 yc, Sint16 xr, Sint16 yr, Uint8 r, Uint8 g, Uint8 b, Uint8 a, Uint8 thick)\n{\n\tint result = 0 ;\n\tint xi, yi, xo, yo, x, y, z ;\n\tdouble xi2, yi2, xo2, yo2 ;\n\n\tif (thick <= 1)\n\t\treturn ellipseRGBA(renderer, xc, yc, xr, yr, r, g, b, a) ;\n\n\txi = xr - thick / 2 ;\n\txo = xi + thick - 1 ;\n\tyi = yr - thick / 2 ;\n\tyo = yi + thick - 1 ;\n\n\tif ((xi <= 0) || (yi <= 0))\n\t\treturn -1 ;\n\n\txi2 = xi * xi ;\n\tyi2 = yi * yi ;\n\txo2 = xo * xo ;\n\tyo2 = yo * yo ;\n\n\tif (a != 255) result |= SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND);\n\tresult |= SDL_SetRenderDrawColor(renderer, r, g, b, a);\n\n\tif (xr < yr)\n\t    {\n\t\tfor (x = -xo; x <= -xi; x++)\n\t\t    {\n\t\t\ty = sqrt(yo2 * (1.0 - x*x/xo2)) + 0.5 ;\n\t\t\tresult |= renderdrawline(renderer, xc+x, yc-y, xc+x, yc+y) ;\n\t\t    }\n\t\tfor (x = -xi + 1; x <= xi - 1; x++)\n\t\t    {\n\t\t\ty = sqrt(yo2 * (1.0 - x*x/xo2)) + 0.5 ;\n\t\t\tz = sqrt(yi2 * (1.0 - x*x/xi2)) + 0.5 ;\n\t\t\tresult |= renderdrawline(renderer, xc+x, yc+z, xc+x, yc+y) ;\n\t\t\tresult |= renderdrawline(renderer, xc+x, yc-z, xc+x, yc-y) ;\n\t\t    }\n\t\tfor (x = xo; x >= xi; x--)\n\t\t    {\n\t\t\ty = sqrt(yo2 * (1.0 - x*x/xo2)) + 0.5 ;\n\t\t\tresult |= renderdrawline(renderer, xc+x, yc-y, xc+x, yc+y) ;\n\t\t    }\n\t    }\n\telse\n\t    {\n\t\tfor (y = -yo; y <= -yi; y++)\n\t\t    {\n\t\t\tx = sqrt(xo2 * (1.0 - y*y/yo2)) + 0.5 ;\n\t\t\tresult |= renderdrawline(renderer, xc-x, yc+y, xc+x, yc+y) ;\n\t\t    }\n\t\tfor (y = -yi + 1; y <= yi - 1; y++)\n\t\t    {\n\t\t\tx = sqrt(xo2 * (1.0 - y*y/yo2)) + 0.5 ;\n\t\t\tz = sqrt(xi2 * (1.0 - y*y/yi2)) + 0.5 ;\n\t\t\tresult |= renderdrawline(renderer, xc+z, yc+y, xc+x, yc+y) ;\n\t\t\tresult |= renderdrawline(renderer, xc-z, yc+y, xc-x, yc+y) ;\n\t\t    }\n\t\tfor (y = yo; y >= yi; y--)\n\t\t    {\n\t\t\tx = sqrt(xo2 * (1.0 - y*y/yo2)) + 0.5 ;\n\t\t\tresult |= renderdrawline(renderer, xc-x, yc+y, xc+x, yc+y) ;\n\t\t    }\n\t    }\n\treturn result ;\n}\n\n/*!\n\\brief thick Arc with blending.\n\n\\param renderer The renderer to draw on.\n\\param xc X coordinate of the center of the arc.\n\\param yc Y coordinate of the center of the arc.\n\\param rad Radius in pixels of the arc.\n\\param start Starting radius in degrees of the arc. 0 degrees is right, increasing clockwise.\n\\param end Ending radius in degrees of the arc. 0 degrees is right, increasing clockwise.\n\\param r The red value of the arc to draw. \n\\param g The green value of the arc to draw. \n\\param b The blue value of the arc to draw. \n\\param a The alpha value of the arc to draw.\n\\param thick The line thickness in pixels.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint thickArcRGBA(SDL_Renderer * renderer, Sint16 xc, Sint16 yc, Sint16 rad, Sint16 start, Sint16 end, Uint8 r, Uint8 g, Uint8 b, Uint8 a, Uint8 thick)\n{\n\tint result = 0 ;\n\tint ri, ro, x, y, z ;\n\tdouble ri2, ro2, s, f ;\n\n\tif (thick <= 1)\n\t\treturn arcRGBA(renderer, xc, yc, rad, start, end, r, g, b, a) ;\n\n\twhile (start < -180) start += 360 ;\n\twhile (start >= 180) start -= 360 ;\n\twhile (end < -180) end += 360 ;\n\twhile (end >= 180) end -= 360 ;\n\ts = M_PI * (double)start / 180.0 ;\n\tf = M_PI * (double)end / 180.0 ;\n\tif (start == end) return 0 ;\n\n\tri = rad - thick / 2 ;\n\tro = ri + thick - 1 ;\n\tif (ri <= 0) return -1 ;\n\n\tri2 = ri * ri ;\n\tro2 = ro * ro ;\n\n\tif (a != 255) result |= SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND);\n\tresult |= SDL_SetRenderDrawColor(renderer, r, g, b, a);\n\n\tfor (y = -ro; y <= -ri; y++)\n\t    {\n\t\tx = sqrt(ro2 * (1.0 - y*y/ro2)) + 0.5 ;\n\t\tresult |= hlinecliparc(renderer, -x, x, y, xc, yc, s, f) ;\n\t    }\n\tfor (y = -ri + 1; y <= ri - 1; y++)\n\t    {\n\t\tx = sqrt(ro2 * (1.0 - y*y/ro2)) + 0.5 ;\n\t\tz = sqrt(ri2 * (1.0 - y*y/ri2)) + 0.5 ;\n\t\tresult |= hlinecliparc(renderer, z, x, y, xc, yc, s, f) ;\n\t\tresult |= hlinecliparc(renderer, -z, -x, y, xc, yc, s, f) ;\n\t    }\n\tfor (y = ro; y >= ri; y--)\n\t    {\n\t\tx = sqrt(ro2 * (1.0 - y*y/ro2)) + 0.5 ;\n\t\tresult |= hlinecliparc(renderer, -x, x, y, xc, yc, s, f) ;\n\t    }\n\treturn result ;\n}\n\n// returns Returns 0 on success, -1 on failure.\nint thickCircleRGBA(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad, Uint8 r, Uint8 g, Uint8 b, Uint8 a, Uint8 thick)\n{\n\treturn thickEllipseRGBA(renderer, x, y, rad, rad, r, g, b, a, thick);\n}\n\n// returns Returns 0 on success, -1 on failure.\nint thickEllipseColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint32 color, Uint8 thick)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn thickEllipseRGBA(renderer, x, y, rx, ry, c[0], c[1], c[2], c[3], thick);\n}\n\n// returns Returns 0 on success, -1 on failure.\nint thickArcColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad, Sint16 start, Sint16 end, Uint32 color, Uint8 thick)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn thickArcRGBA(renderer, x, y, rad, start, end, c[0], c[1], c[2], c[3], thick);\n}\n\n// returns Returns 0 on success, -1 on failure.\nint thickCircleColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad, Uint32 color, Uint8 thick)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn thickEllipseRGBA(renderer, x, y, rad, rad, c[0], c[1], c[2], c[3], thick);\n}\n\n/*!\n\\brief Fill a region bounded by cubic Bezier curves, with alpha blending.\n\n\\param renderer The renderer to draw on.\n\\param x Vertex array containing X coordinates of the points of the bezier curves.\n\\param y Vertex array containing Y coordinates of the points of the bezier curves.\n\\param n Number of points in the vertex array. Should be 3n + 1 for n bezier curves.\n\\param s Number of steps for the interpolation. Minimum number is 2.\n\\param r The red value of the bezier curve to draw. \n\\param g The green value of the bezier curve to draw. \n\\param b The blue value of the bezier curve to draw. \n\\param a The alpha value of the bezier curve to draw.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint filledPolyBezierRGBA(SDL_Renderer * renderer, const Sint16 *x, const Sint16 *y, int n, int s, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\tint i, j, nbeziers, nverts, result;\n\tdouble t, stepsize;\n\tdouble x1, y1, x2, y2 ;\n\tdouble *dx, *dy ;\n\tSint16 *vx, *vy ;\n\n\t// Sanity check \n\tif ((n < 7) || (s < 2))\n\t\treturn -1 ;\n\n\t/* Transfer vertices into float arrays */\n\tif ((dx=(double *)malloc(sizeof(double)*n))==NULL) {\n\t\treturn(-1);\n\t}\n\tif ((dy=(double *)malloc(sizeof(double)*n))==NULL) {\n\t\tfree(dx);\n\t\treturn(-1);\n\t}    \n\tfor (i=0; i<n; i++) {\n\t\tdx[i]=(double)x[i];\n\t\tdy[i]=(double)y[i];\n\t}      \n\n\t// Create combined vertex array:\n\tnbeziers = (n - 1) / 3 ;\n\tnverts = nbeziers * 4 * s + 1 ;\n\tvx = (Sint16 *) malloc (nverts * 2 * sizeof(Sint16)) ;\n\tif (vx == NULL)\n\t{\n\t\tfree(dy) ;\n\t\tfree(dx) ;\t\t\n\t\treturn -1 ;\n\t}\n\tvy = vx + nverts ;\n\n\t// Draw Beziers\n\tstepsize = 1.0 / (double)s ;\n\tfor (j = 0; j < nbeziers; j++)\n\t    {\n\t\tt = 0.0 ;\n\t\tx1 = _evaluateBezier(dx + j * 3, 4, t) ;\n\t\ty1 = _evaluateBezier(dy + j * 3, 4, t) ;\n\t\tfor (i = 0; i < 4*s; i++)\n\t\t    {\n\t\t\tt += stepsize ;\n\t\t\tx2 = _evaluateBezier(dx + j * 3, 4, t) ;\n\t\t\ty2 = _evaluateBezier(dy + j * 3, 4, t) ;\n\n\t\t\tvx[i + j * s * 4] = floor(x1 + 0.5) ;\n\t\t\tvy[i + j * s * 4] = floor(y1 + 0.5) ;\n\n\t\t\tx1 = x2 ;\n\t\t\ty1 = y2 ;\n\t    }\n\t}\n\n\tvx[j * s * 4] = floor(x1 + 0.5) ;\n\tvy[j * s * 4] = floor(y1 + 0.5) ;\n\n\tfree(dy) ;\n\tfree(dx) ;\n\n\tresult = filledPolygonRGBA(renderer, vx, vy, nverts, r, g, b, a);\n\n\tfree(vx) ;\n\treturn (result);\n}\n\n// returns Returns 0 on success, -1 on failure.\nint filledPolyBezierColor(SDL_Renderer * renderer, const Sint16 *x, const Sint16 *y, int n, int s, Uint32 color)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn filledPolyBezierRGBA(renderer, x, y, n, s, c[0], c[1], c[2], c[3]);\n}\n\n// Extensions for anti-aliased filled ellipses and polygons by Richard Russell 20-Aug-2019\n\n/*!\n\\brief Draw anti-aliased filled ellipse with blending.\n\n\\param renderer The renderer to draw on.\n\\param cx X coordinate of the center of the filled ellipse.\n\\param cy Y coordinate of the center of the filled ellipse.\n\\param rx Horizontal radius in pixels of the filled ellipse.\n\\param ry Vertical radius in pixels of the filled ellipse.\n\\param r The red value of the filled ellipse to draw. \n\\param g The green value of the filled ellipse to draw. \n\\param b The blue value of the filled ellipse to draw. \n\\param a The alpha value of the filled ellipse to draw.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint aaFilledEllipseRGBA(SDL_Renderer * renderer, float cx, float cy, float rx, float ry, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\tint n, xi, yi, result = 0 ;\n\tdouble s, v, x, y, dx, dy ;\n\n\tif ((rx <= 0.0) || (ry <= 0.0))\n\t\treturn -1 ;\n\n\tresult |= SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND) ;\n\tif (rx >= ry)\n\t    {\n\t\tn = ry + 1 ;\n\t\tfor (yi = cy - n - 1; yi <= cy + n + 1; yi++)\n\t\t    {\n\t\t\tif (yi < (cy - 0.5))\n\t\t\t\ty = yi ;\n\t\t\telse\n\t\t\t\ty = yi + 1 ;\n\t\t\ts = (y - cy) / ry ;\n\t\t\ts = s * s ;\n\t\t\tx = 0.5 ;\n\t\t\tif (s < 1.0)\n\t\t\t    {\n\t\t\t\tx = rx * sqrt(1.0 - s) ;\n\t\t\t\tif (x >= 0.5)\n\t\t\t\t    {\n\t\t\t\t\tresult |= SDL_SetRenderDrawColor (renderer, r, g, b, a ) ;\n\t\t\t\t\tresult |= renderdrawline (renderer, cx - x + 1, yi, cx + x - 1, yi) ;\n\t\t\t\t    }\n\t\t\t    }\n\t\t\ts = 8 * ry * ry ;\n\t\t\tdy = fabs(y - cy) - 1.0 ;\n\t\t\txi = cx - x ; // left\n\t\t\twhile (1)\n\t\t\t    {\n\t\t\t\tdx = (cx - xi - 1) * ry / rx ;\n\t\t\t\tv = s - 4 * (dx - dy) * (dx - dy) ;\n\t\t\t\tif (v < 0) break ;\n\t\t\t\tv = (sqrt(v) - 2 * (dx + dy)) / 4 ;\n\t\t\t\tif (v < 0) break ;\n\t\t\t\tif (v > 1.0) v = 1.0 ;\n\t\t\t\tresult |= SDL_SetRenderDrawColor (renderer, r, g, b, (double)a * v) ;\n\t\t\t\tresult |= SDL_RenderDrawPoint (renderer, xi, yi) ;\n\t\t\t\txi -= 1 ;\n\t\t\t    }\n\t\t\txi = cx + x ; // right\n\t\t\twhile (1)\n\t\t\t    {\n\t\t\t\tdx = (xi - cx) * ry / rx ;\n\t\t\t\tv = s - 4 * (dx - dy) * (dx - dy) ;\n\t\t\t\tif (v < 0) break ;\n\t\t\t\tv = (sqrt(v) - 2 * (dx + dy)) / 4 ;\n\t\t\t\tif (v < 0) break ;\n\t\t\t\tif (v > 1.0) v = 1.0 ;\n\t\t\t\tresult |= SDL_SetRenderDrawColor (renderer, r, g, b, (double)a * v) ;\n\t\t\t\tresult |= SDL_RenderDrawPoint (renderer, xi, yi) ;\n\t\t\t\txi += 1 ;\n\t\t\t    }\n\t\t    }\n\t    }\n\telse\n\t    {\n\t\tn = rx + 1 ;\n\t\tfor (xi = cx - n - 1; xi <= cx + n + 1; xi++)\n\t\t    {\n\t\t\tif (xi < (cx - 0.5))\n\t\t\t\tx = xi ;\n\t\t\telse\n\t\t\t\tx = xi + 1 ;\n\t\t\ts = (x - cx) / rx ;\n\t\t\ts = s * s ;\n\t\t\ty = 0.5 ;\n\t\t\tif (s < 1.0)\n\t\t\t    {\n\t\t\t\ty = ry * sqrt(1.0 - s) ;\n\t\t\t\tif (y >= 0.5)\n\t\t\t\t    {\n\t\t\t\t\tresult |= SDL_SetRenderDrawColor (renderer, r, g, b, a ) ;\n\t\t\t\t\tresult |= renderdrawline (renderer, xi, cy - y + 1, xi, cy + y - 1) ;\n\t\t\t\t    }\n\t\t\t    }\n\t\t\ts = 8 * rx * rx ;\n\t\t\tdx = fabs(x - cx) - 1.0 ;\n\t\t\tyi = cy - y ; // top\n\t\t\twhile (1)\n\t\t\t    {\n\t\t\t\tdy = (cy - yi - 1) * rx / ry ;\n\t\t\t\tv = s - 4 * (dy - dx) * (dy - dx) ;\n\t\t\t\tif (v < 0) break ;\n\t\t\t\tv = (sqrt(v) - 2 * (dy + dx)) / 4 ;\n\t\t\t\tif (v < 0) break ;\n\t\t\t\tif (v > 1.0) v = 1.0 ;\n\t\t\t\tresult |= SDL_SetRenderDrawColor (renderer, r, g, b, (double)a * v) ;\n\t\t\t\tresult |= SDL_RenderDrawPoint (renderer, xi, yi) ;\n\t\t\t\tyi -= 1 ;\n\t\t\t    }\n\t\t\tyi = cy + y ; // bottom\n\t\t\twhile (1)\n\t\t\t    {\n\t\t\t\tdy = (yi - cy) * rx / ry ;\n\t\t\t\tv = s - 4 * (dy - dx) * (dy - dx) ;\n\t\t\t\tif (v < 0) break ;\n\t\t\t\tv = (sqrt(v) - 2 * (dy + dx)) / 4 ;\n\t\t\t\tif (v < 0) break ;\n\t\t\t\tif (v > 1.0) v = 1.0 ;\n\t\t\t\tresult |= SDL_SetRenderDrawColor (renderer, r, g, b, (double)a * v) ;\n\t\t\t\tresult |= SDL_RenderDrawPoint (renderer, xi, yi) ;\n\t\t\t\tyi += 1 ;\n\t\t\t    }\n\t\t    }\n\t    }\n\treturn result ;\n}\n\n// returns Returns 0 on success, -1 on failure.\nint aaFilledEllipseColor(SDL_Renderer * renderer, float cx, float cy, float rx, float ry, Uint32 color)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn aaFilledEllipseRGBA(renderer, cx, cy, rx, ry, c[0], c[1], c[2], c[3]);\n}\n\nstatic int _gfxPrimitivesCompareFloat2(const void *a, const void *b)\n{\n\tfloat diff = *((float *)a + 1) - *((float *)b + 1) ;\n\tif (diff != 0.0) return (diff > 0) - (diff < 0) ;\n\tdiff = *(float *)a - *(float *)b ;\n\treturn (diff > 0) - (diff < 0) ;\n}\n\n// This constant determines the maximum size and/or complexity of polygon that can be\n// drawn. Set to 16K the maximum aaArc height is approximately 1100 lines.\n#define POLYSIZE 16384\n\n/*!\n\\brief Draw anti-aliased filled polygon with alpha blending.\n\n\\param renderer The renderer to draw on.\n\\param vx Vertex array containing X coordinates of the points of the filled polygon.\n\\param vy Vertex array containing Y coordinates of the points of the filled polygon.\n\\param n Number of points in the vertex array. Minimum number is 3.\n\\param r The red value of the filled polygon to draw. \n\\param g The green value of the filled polygon to draw. \n\\param b The blue value of the filed polygon to draw. \n\\param a The alpha value of the filled polygon to draw.\n\n\\returns Returns 0 on success, -1 on failure, or -2 if the polygon is too large and/or complex.\n*/\nint aaFilledPolygonRGBA(SDL_Renderer * renderer, const double * vx, const double * vy, int n, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\tint i, j, xi, yi, result ;\n\tdouble x1, x2, y0, y1, y2, minx, maxx, prec ;\n\tfloat *list, *strip ;\n\n\tif (n < 3)\n\t\treturn -1 ;\n\n\tresult = SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND) ;\n\n\t// Find extrema:\n\tminx = 99999.0 ;\n\tmaxx = -99999.0 ;\n\tprec = 0.00001 ;\n\tfor (i = 0; i < n; i++)\n\t    {\n\t\tdouble x = vx[i] ;\n\t\tdouble y = fabs(vy[i]) ;\n\t\tif (x < minx) minx = x ;\n\t\tif (x > maxx) maxx = x ;\n\t\tif (y > prec) prec = y ;\n\t    }\n\tminx = floor (minx) ;\n\tmaxx = floor (maxx) ;\n\tprec = floor (pow(2,19) / prec) ;\n\n\t// Allocate main array, this determines the maximum polygon size and complexity:\n\tlist = (float *) malloc (POLYSIZE * sizeof(float)) ;\n\tif (list == NULL)\n\t\treturn -2 ;\n\n\t// Build vertex list.  Special x-values used to indicate vertex type:\n\t// x = -100001.0 indicates /\\, x = -100003.0 indicates \\/, x = -100002.0 neither\n\tyi = 0 ;\n\ty0 = floor(vy[n - 1] * prec) / prec ;\n\ty1 = floor(vy[0] * prec) / prec ;\n\tfor (i = 1; i <= n; i++)\n\t    {\n\t\tif (yi > POLYSIZE - 4)\n\t\t    {\n\t\t\tfree (list) ;\n\t\t\treturn -2 ;\n\t\t    }\n\t\ty2 = floor(vy[i % n] * prec) / prec ;\n\t\tif (((y1 < y2) - (y1 > y2)) == ((y0 < y1) - (y0 > y1)))\n\t\t    {\n\t\t\tlist[yi++] = -100002.0 ;\n\t\t\tlist[yi++] = y1 ;\n\t\t\tlist[yi++] = -100002.0 ;\n\t\t\tlist[yi++] = y1 ;\n\t\t    }\n\t\telse\n\t\t    {\n\t\t\tif (y0 != y1)\n\t\t\t    {\n\t\t\t\tlist[yi++] = (y1 < y0) - (y1 > y0) - 100002.0 ;\n\t\t\t\tlist[yi++] = y1 ;\n\t\t\t    }\n\t\t\tif (y1 != y2)\n\t\t\t    {\n\t\t\t\tlist[yi++] = (y1 < y2) - (y1 > y2) - 100002.0 ;\n\t\t\t\tlist[yi++] = y1 ;\n\t\t\t    }\n\t\t    }\n\t\ty0 = y1 ;\n\t\ty1 = y2 ;\n\t    }\n\txi = yi ;\n\n\t// Sort vertex list:\n\tqsort (list, yi / 2, sizeof(float) * 2, _gfxPrimitivesCompareFloat2) ;\n\n\t// Append line list to vertex list:\n\tfor (i = 1; i <= n; i++)\n\t    {\n\t\tdouble x, y ;\n\t\tdouble d = 0.5 / prec ;\n\n\t\tx1 = vx[i - 1] ;\n\t\ty1 = floor(vy[i - 1] * prec) / prec ;\n\t\tx2 = vx[i % n] ;\n\t\ty2 = floor(vy[i % n] * prec) / prec ;\n\n\t\tif (y2 < y1) \n\t\t    {\n\t\t\tdouble tmp ;\n\t\t\ttmp = x1 ; x1 = x2 ; x2 = tmp ;\n\t\t\ttmp = y1 ; y1 = y2 ; y2 = tmp ;\n\t\t    }\n\t\tif (y2 != y1)\n\t\t\ty0 = (x2 - x1) / (y2 - y1) ;\n\n\t\tfor (j = 1; j < xi; j += 4)\n\t\t    {\n\t\t\ty = list[j] ;\n\t\t\tif (((y + d) <= y1) || (y == list[j + 4]))\n\t\t\t\tcontinue ;\n\t\t\tif ((y -= d) >= y2)\n\t\t\t\tbreak ;\n\t\t\tif (yi > POLYSIZE - 4)\n\t\t\t    {\n\t\t\t\tfree (list) ;\n\t\t\t\treturn -2 ;\n\t\t\t    }\n\t\t\tif (y > y1)\n\t\t\t    {\n\t\t\t\tlist[yi++] = x1 + y0 * (y - y1) ;\n\t\t\t\tlist[yi++] = y ;\n\t\t\t    }\n\t\t\ty += d * 2.0 ;\n\t\t\tif (y < y2)\n\t\t\t    {\n\t\t\t\tlist[yi++] = x1 + y0 * (y - y1) ;\n\t\t\t\tlist[yi++] = y ;\n\t\t\t    }\n\t\t    }\n\n\t\ty = floor(y1) + 1.0 ;\n\t\twhile (y <= y2)\n\t\t    {\n\t\t\tx = x1 + y0 * (y - y1) ;\n\t\t\tif (yi > POLYSIZE - 2)\n\t\t\t    {\n\t\t\t\tfree (list) ;\n\t\t\t\treturn -2 ;\n\t\t\t    }\n\t\t\tlist[yi++] = x ;\n\t\t\tlist[yi++] = y ;\n\t\t\ty += 1.0 ;\n\t\t    }\n\t    }\n\n\t// Sort combined list:\n\tqsort (list, yi / 2, sizeof(float) * 2, _gfxPrimitivesCompareFloat2) ;\n\n\t// Plot lines:\n\tstrip = (float *) malloc ((maxx - minx + 2) * sizeof(float)) ;\n\tif (strip == NULL)\n\t    {\n\t\tfree (list) ;\n\t\treturn -1 ;\n\t    }\n\tmemset (strip, 0, (maxx - minx + 2) * sizeof(float)) ;\n\tn = yi ;\n\tyi = list[1] ;\n\tj = 0 ;\n\n\tfor (i = 0; i < n - 7; i += 4)\n\t    {\n\t\tfloat x1 = list[i + 0] ;\n\t\tfloat y1 = list[i + 1] ;\n\t\tfloat x3 = list[i + 2] ;\n\t\tfloat x2 = list[i + j + 0] ;\n\t\tfloat y2 = list[i + j + 1] ;\n\t\tfloat x4 = list[i + j + 2] ;\n\n\t\tif (x1 + x3 == -200002.0)\n\t\t\tj += 4 ;\n\t\telse if (x1 + x3 == -200006.0)\n\t\t\tj -= 4 ;\n\t\telse if ((x1 >= minx) && (x2 >= minx))\n\t\t    {\t\t\t\n\t\t\tif (x1 > x2) { float tmp = x1 ; x1 = x2 ; x2 = tmp ; }\n\t\t\tif (x3 > x4) { float tmp = x3 ; x3 = x4 ; x4 = tmp ; }\n\n\t\t\tfor ( xi = x1 - minx; xi <= x4 - minx; xi++ )\n\t\t\t    {\n\t\t\t\tfloat u, v ;\n\t\t\t\tfloat x = minx + xi ;\n\t\t\t\tif (x < x2)  u = (x - x1 + 1) / (x2 - x1 + 1) ; else u = 1.0 ;\n\t\t\t\tif (x >= x3 - 1) v = (x4 - x) / (x4 - x3 + 1) ; else v = 1.0 ;\n\t\t\t\tif ((u > 0.0) && (v > 0.0))\n\t\t\t\t\tstrip[xi] += (y2 - y1) * (u + v - 1.0) ;\n\t\t\t    }\n\t\t    }\n\n\t\tif ((yi == (list[i + 5] - 1.0)) || (i == n - 8))\n\t\t    {\n\t\t\tfor (xi = 0; xi <= maxx - minx; xi++)\n\t\t\t    {\n\t\t\t\tif (strip[xi] != 0.0)\n\t\t\t\t    {\n\t\t\t\t\tif (strip[xi] >= 0.996)\n\t\t\t\t\t    {\n\t\t\t\t\t\tint x0 = xi ;\n\t\t\t\t\t\twhile (strip[++xi] >= 0.996) ;\n\t\t\t\t\t\txi-- ;\n\t\t\t\t\t\tresult |= SDL_SetRenderDrawColor (renderer, r, g, b, a) ;\n\t\t\t\t\t\tresult |= renderdrawline (renderer, minx + x0, yi, minx + xi, yi) ;\n\t\t\t\t\t    }\n\t\t\t\t\telse\n\t\t\t\t\t    {\n\t\t\t\t\t\tresult |= SDL_SetRenderDrawColor (renderer, r, g, b, a * strip[xi]) ;\n\t\t\t\t\t\tresult |= SDL_RenderDrawPoint (renderer, minx + xi, yi) ;\n\t\t\t\t\t    }\n\t\t\t\t    }\n\t\t\t    }\n\t\t\tmemset (strip, 0, (maxx - minx + 2) * sizeof(float)) ;\n\t\t\tyi++ ;\n\n\t\t    }\n\t    }\n\n\t// Free arrays:\n\tfree (list) ;\n\tfree (strip) ;\n\treturn result ;\n}\n\n// returns Returns 0 on success, -1 on failure.\nint aaFilledPolygonColor(SDL_Renderer * renderer, const double * vx, const double * vy, int n, Uint32 color)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn aaFilledPolygonRGBA(renderer, vx, vy, n, c[0], c[1], c[2], c[3]);\n}\n\n/*!\n\\brief Draw anti-aliased filled ellipical pie (or chord) with alpha blending.\n\n\\param renderer The renderer to draw on.\n\\param cx X coordinate of the center of the filled pie.\n\\param cy Y coordinate of the center of the filled pie.\n\\param rx Horizontal radius in pixels of the filled pie.\n\\param ry Vertical radius in pixels of the filled pie.\n\\param start Starting angle in degrees of the filled pie; zero is right, increasing clockwise.\n\\param end Ending angle in degrees of the filled pie; zero is right, increasing clockwise.\n\\param chord Set to 0 for a pie (sector) or 1 for a chord (segment).\n\\param r The red value of the filled pie to draw. \n\\param g The green value of the filled pie to draw. \n\\param b The blue value of the filled pie to draw. \n\\param a The alpha value of the filled pie to draw.\n/\n\\returns Returns 0 on success, -1 on failure.\n*/\nint aaFilledPieRGBA(SDL_Renderer * renderer, float cx, float cy, float rx, float ry,\n\tfloat start, float end, Uint32 chord, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\tint nverts, i, result;\n\tdouble *vx, *vy;\n\n\t// Sanity check radii \n\tif ((rx <= 0) || (ry <= 0) || (start == end))\n\t\treturn -1;\n\n\t// Convert degrees to radians\n\tstart = fmod(start, 360.0) * 2.0 * M_PI / 360.0 ;\n\tend = fmod(end, 360.0) * 2.0 * M_PI / 360.0 ;\n\twhile (start >= end)\n\t\tend += 2.0 * M_PI ;\n\n\t// Calculate number of vertices on perimeter\n\tnverts = (end - start) * sqrt(rx * ry) / M_PI ;\n\tif (nverts < 2)\n\t\tnverts = 2 ;\n\tif (nverts > 180)\n\t\tnverts = 180 ;\n\n\t// Allocate combined vertex array \n\tvx = vy = (double *) malloc(2 * sizeof(double) * (nverts + 1));\n\tif (vx == NULL)\n\t\treturn (-1);\n\n\t// Update pointer to start of vy\n\tvy += nverts + 1 ;\n\n\t// Calculate vertices:\n\tfor (i = 0; i < nverts; i++)\n\t    {\n\t\tdouble angle = start + (end - start) * (double) i / (double) (nverts - 1) ; \n\t\tvx[i] = cx + rx * cos(angle);\n\t\tvy[i] = cy + ry * sin(angle);\n\t    }\n\n\t// Center:\n\tvx[i] = cx ;\n\tvy[i] = cy ;\n\n\tresult = aaFilledPolygonRGBA(renderer, vx, vy, nverts + 1 - (chord != 0), r, g, b, a);\n\n\t// Free combined vertex array\n\tfree(vx);\n\n\treturn (result);\n}\n\n// returns Returns 0 on success, -1 on failure.\nint aaFilledPieColor(SDL_Renderer * renderer, float cx, float cy, float rx, float ry, float start, float end, Uint32 chord, Uint32 color)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn aaFilledPieRGBA(renderer, cx, cy, rx, ry, start, end, chord, c[0], c[1], c[2], c[3]);\n}\n\n/*!\n\\brief Draw anti-aliased ellipical arc with alpha blending.\n\n\\param renderer The renderer to draw on.\n\\param cx X coordinate of the center of the filled pie.\n\\param cy Y coordinate of the center of the filled pie.\n\\param rx Horizontal radius in pixels of the filled pie.\n\\param ry Vertical radius in pixels of the filled pie.\n\\param start Starting angle in degrees of the filled pie; zero is right, increasing clockwise.\n\\param end Ending angle in degrees of the filled pie; zero is right, increasing clockwise.\n\\param thick The thickness of the line in pixels.\n\\param r The red value of the filled pie to draw. \n\\param g The green value of the filled pie to draw. \n\\param b The blue value of the filled pie to draw. \n\\param a The alpha value of the filled pie to draw.\n/\n\\returns Returns 0 on success, -1 on failure.\n*/\nint aaArcRGBA(SDL_Renderer * renderer, float cx, float cy, float rx, float ry,\n\tfloat start, float end, float thick, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\tint nverts, i, result;\n\tdouble *vx, *vy;\n\n\t// Sanity check radii and thickness\n\tif ((rx <= 0) || (ry <= 0) || (start == end) || (thick <= 0))\n\t\treturn -1;\n\n\t// Convert degrees to radians\n\tstart = fmod(start, 360.0) * 2.0 * M_PI / 360.0 ;\n\tend = fmod(end, 360.0) * 2.0 * M_PI / 360.0 ;\n\twhile (start >= end)\n\t\tend += 2.0 * M_PI ;\n\n\t// Calculate number of vertices\n\tnverts = 2 * floor((end - start) * sqrt(rx * ry) / M_PI) ;\n\tif (nverts < 2)\n\t\tnverts = 2 ;\n\tif (nverts > 360)\n\t\tnverts = 360 ;\n\n\t// Allocate combined vertex array \n\tvx = vy = (double *) malloc(2 * sizeof(double) * nverts);\n\tif (vx == NULL)\n\t\treturn (-1);\n\n\t// Update pointer to start of vy\n\tvy += nverts ;\n\n\t// Calculate vertices:\n\tfor (i = 0; i < nverts / 2; i++)\n\t    {\n\t\tdouble angle = start + (end - start) * (double) i / (double) (nverts / 2 - 1) ; \n\t\tvx[i] = cx + (rx + thick/2) * cos(angle);\n\t\tvy[i] = cy + (ry + thick/2) * sin(angle);\n\t\tvx[nverts - 1 - i] = cx + (rx - thick/2) * cos(angle);\n\t\tvy[nverts - 1 - i] = cy + (ry - thick/2) * sin(angle);\n\n\t    }\n\n\tresult = aaFilledPolygonRGBA(renderer, vx, vy, nverts, r, g, b, a);\n\n\t// Free combined vertex array\n\tfree(vx);\n\n\treturn (result);\n}\n\n// returns Returns 0 on success, -1 on failure.\nint aaArcColor(SDL_Renderer * renderer, float cx, float cy, float rx, float ry, float start, float end, float thick, Uint32 color)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn aaArcRGBA(renderer, cx, cy, rx, ry, start, end, thick, c[0], c[1], c[2], c[3]);\n}\n\n/*!\n\\brief Draw an anti-aliased bezier curve with alpha blending.\n\n\\param renderer The renderer to draw on.\n\\param x Vertex array containing X coordinates of the points of the bezier curve.\n\\param y Vertex array containing Y coordinates of the points of the bezier curve.\n\\param n Number of points in the vertex array. Minimum number is 3.\n\\param s Number of steps for the interpolation. Minimum number is 2.\n\\param thick Thickness of line in pixels.\n\\param r The red value of the bezier curve to draw. \n\\param g The green value of the bezier curve to draw. \n\\param b The blue value of the bezier curve to draw. \n\\param a The alpha value of the bezier curve to draw.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint aaBezierRGBA(SDL_Renderer * renderer, double *x, double *y, int n, int s, float thick, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\tint i, nverts, result;\n\tdouble d, t, stepsize;\n\tdouble x1, y1, x2, y2, dx = 0.0, dy = 0.0 ;\n\tdouble *vx, *vy ;\n\n\t// Sanity check \n\tif ((n < 3) || (s < 2))\n\t\treturn -1 ;\n\n\t// Create combined vertex array:\n\tnverts = n * s * 2 + 2 ;\n\tvx = (double *) malloc (nverts * 2 * sizeof(double)) ;\n\tif (vx == NULL)\n\t\treturn -1 ;\n\tvy = vx + nverts ;\n\n\t// Draw Bezier\n\tt = 0.0 ;\n\tstepsize = 1.0 / (double)s ;\n\tx1 = _evaluateBezier(x, n, t) ;\n\ty1 = _evaluateBezier(y, n, t) ;\n\tfor (i = 0; i < n*s; i++)\n\t    {\n\t\tt += stepsize ;\n\t\tx2 = _evaluateBezier(x, n, t) ;\n\t\ty2 = _evaluateBezier(y, n, t) ;\n\n\t\tdx = x2 - x1 ;\n\t\tdy = y2 - y1 ;\n\t\td = thick * 0.5L / sqrt(dx*dx + dy*dy) ;\n\t\tdx *= d ;\n\t\tdy *= d ;\n\n\t\tvx[i] = x1 + dy ;\n\t\tvy[i] = y1 - dx ;\n\t\tvx[nverts-1-i] = x1 - dy ;\n\t\tvy[nverts-1-i] = y1 + dx ;\n\n\t\tx1 = x2 ;\n\t\ty1 = y2 ;\n\t    }\n\n\tvx[i] = x1 + dy ;\n\tvy[i] = y1 - dx ;\n\tvx[nverts-1-i] = x1 - dy ;\n\tvy[nverts-1-i] = y1 + dx ;\n\n\tresult = aaFilledPolygonRGBA(renderer, vx, vy, nverts, r, g, b, a);\n\n\tfree (vx) ;\n\treturn (result);\n}\n\n// returns Returns 0 on success, -1 on failure.\nint aaBezierColor(SDL_Renderer * renderer, double *x, double *y, int n, int s, float thick, Uint32 color)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn aaBezierRGBA(renderer, x, y, n, s, thick, c[0], c[1], c[2], c[3]);\n}\n\n/*!\n\\brief Fill an anti-aliased region bounded by cubic Bezier curves, with alpha blending.\n\n\\param renderer The renderer to draw on.\n\\param x Vertex array containing X coordinates of the points of the bezier curves.\n\\param y Vertex array containing Y coordinates of the points of the bezier curves.\n\\param n Number of points in the vertex array. Should be 3n + 1 for n bezier curves.\n\\param s Number of steps for the interpolation. Minimum number is 2.\n\\param r The red value of the bezier curve to draw. \n\\param g The green value of the bezier curve to draw. \n\\param b The blue value of the bezier curve to draw. \n\\param a The alpha value of the bezier curve to draw.\n\n\\returns Returns 0 on success, -1 on failure.\n*/\nint aaFilledPolyBezierRGBA(SDL_Renderer * renderer, double *x, double *y, int n, int s, Uint8 r, Uint8 g, Uint8 b, Uint8 a)\n{\n\tint i, j, nbeziers, nverts, result;\n\tdouble t, stepsize;\n\tdouble x1, y1, x2, y2 ;\n\tdouble *vx, *vy ;\n\n\t// Sanity check \n\tif ((n < 7) || (s < 2))\n\t\treturn -1 ;\n\n\t// Create combined vertex array:\n\tnbeziers = (n - 1) / 3 ;\n\tnverts = nbeziers * 4 * s + 1 ;\n\tvx = (double *) malloc (nverts * 2 * sizeof(double)) ;\n\tif (vx == NULL)\n\t\treturn -1 ;\n\tvy = vx + nverts ;\n\n\t// Draw Beziers\n\tstepsize = 1.0 / (double)s ;\n\tfor (j = 0; j < nbeziers; j++)\n\t    {\n\t\tt = 0.0 ;\n\t\tx1 = _evaluateBezier(x + j * 3, 4, t) ;\n\t\ty1 = _evaluateBezier(y + j * 3, 4, t) ;\n\t\tfor (i = 0; i < 4*s; i++)\n\t\t    {\n\t\t\tt += stepsize ;\n\t\t\tx2 = _evaluateBezier(x + j * 3, 4, t) ;\n\t\t\ty2 = _evaluateBezier(y + j * 3, 4, t) ;\n\n\t\t\tvx[i + j * s * 4] = x1 ;\n\t\t\tvy[i + j * s * 4] = y1 ;\n\n\t\t\tx1 = x2 ;\n\t\t\ty1 = y2 ;\n\t    }\n\t}\n\n\tvx[j * s * 4] = x1 ;\n\tvy[j * s * 4] = y1 ;\n\n\tresult = aaFilledPolygonRGBA(renderer, vx, vy, nverts, r, g, b, a);\n\n\tfree (vx) ;\n\treturn (result);\n}\n\n// returns Returns 0 on success, -1 on failure.\nint aaFilledPolyBezierColor(SDL_Renderer * renderer, double *x, double *y, int n, int s, Uint32 color)\n{\n\tUint8 *c = (Uint8 *)&color; \n\treturn aaFilledPolyBezierRGBA(renderer, x, y, n, s, c[0], c[1], c[2], c[3]);\n}\n"
  },
  {
    "path": "src/SDL2_rotozoom.c",
    "content": "/*  \n\nSDL2_rotozoom.c: rotozoomer, zoomer and shrinker for 32bit or 8bit surfaces\n\nCopyright (C) 2012  Andreas Schiffler\n\nThis software is provided 'as-is', without any express or implied\nwarranty. In no event will the authors be held liable for any damages\narising from the use of this software.\n\nPermission is granted to anyone to use this software for any purpose,\nincluding commercial applications, and to alter it and redistribute it\nfreely, subject to the following restrictions:\n\n1. The origin of this software must not be misrepresented; you must not\nclaim that you wrote the original software. If you use this software\nin a product, an acknowledgment in the product documentation would be\nappreciated but is not required.\n\n2. Altered source versions must be plainly marked as such, and must not be\nmisrepresented as being the original software.\n\n3. This notice may not be removed or altered from any source\ndistribution.\n\nAndreas Schiffler -- aschiffler at ferzkopp dot net\n\n*/\n\n#ifdef WIN32\n#include <windows.h>\n#endif\n\n#include <stdlib.h>\n#include <string.h>\n\n#include \"SDL2_rotozoom.h\"\n#include \"SDL2_gfxPrimitives.h\"\n\n#define SDL_STBIMAGE_IMPLEMENTATION\n#define SDL_STBIMG_DEF __attribute__ ((visibility (\"default\")))\n#include \"SDL_stbimage.h\"\n\n#define DR_MP3_IMPLEMENTATION\n#include \"dr_mp3.h\"\n\nSDL_STBIMG_DEF int GFX_bezierColor(SDL_Renderer* renderer, const Sint16* vx, const Sint16* vy, int n, int s, Uint32 color)\n{\treturn bezierColor(renderer, vx, vy, n, s, color) ; }\n\nSDL_STBIMG_DEF int GFX_filledPolyBezierColor(SDL_Renderer * renderer, const Sint16 *x, const Sint16 *y, int n, int s, Uint32 color)\n{\treturn filledPolyBezierColor(renderer, x, y, n, s, color) ; }\n\nSDL_STBIMG_DEF int GFX_aaFilledEllipseColor(SDL_Renderer * renderer, float cx, float cy, float rx, float ry, Uint32 color)\n{\treturn aaFilledEllipseColor(renderer, cx, cy, rx, ry, color) ; }\n\nSDL_STBIMG_DEF int GFX_aaFilledPolygonColor(SDL_Renderer * renderer, const double * vx, const double * vy, int n, Uint32 color)\n{\treturn aaFilledPolygonColor(renderer, vx, vy, n, color) ; }\n\nSDL_STBIMG_DEF int GFX_aaFilledPieColor(SDL_Renderer * renderer, float cx, float cy, float rx, float ry, float start, float end, Uint32 chord, Uint32 color)\n{\treturn aaFilledPieColor(renderer, cx, cy, rx, ry, start, end, chord, color) ; }\n\nSDL_STBIMG_DEF int GFX_aaArcColor(SDL_Renderer * renderer, float cx, float cy, float rx, float ry, float start, float end, float thick, Uint32 color)\n{\treturn aaArcColor(renderer, cx, cy, rx, ry, start, end, thick, color) ; }\n\nSDL_STBIMG_DEF int GFX_aaBezierColor(SDL_Renderer * renderer, double *x, double *y, int n, int s, float thick, Uint32 color)\n{\treturn aaBezierColor(renderer, x, y, n, s, thick, color) ; }\n\nSDL_STBIMG_DEF int GFX_aaFilledPolyBezierColor(SDL_Renderer * renderer, double *x, double *y, int n, int s, Uint32 color)\n{\treturn aaFilledPolyBezierColor(renderer, x, y, n, s, color) ; }\n\nSDL_STBIMG_DEF double GFX_EvaluateBezier(double *data, int ndata, double t)\n{\treturn _evaluateBezier (data, ndata, t) ; }\n\nSDL_STBIMG_DEF SDL_Surface* GFX_RotoZoomSurface(SDL_Surface * src, double angle, double zoomx, double zoomy)\n{\treturn rotozoomSurfaceXY(src, angle, zoomx, zoomy, 0) ; }\n\n/* ---- Internally used structures */\n\n/*!\n\\brief A 32 bit RGBA pixel.\n*/\ntypedef struct tColorRGBA {\n\tUint8 r;\n\tUint8 g;\n\tUint8 b;\n\tUint8 a;\n} tColorRGBA;\n\n/*!\n\\brief A 8bit Y/palette pixel.\n*/\ntypedef struct tColorY {\n\tUint8 y;\n} tColorY;\n\n/*! \n\\brief Returns maximum of two numbers a and b.\n*/\n#define MAX(a,b)    (((a) > (b)) ? (a) : (b))\n\n/*! \n\\brief Number of guard rows added to destination surfaces.\n\nThis is a simple but effective workaround for observed issues.\nThese rows allocate extra memory and are then hidden from the surface.\nRows are added to the end of destination surfaces when they are allocated. \nThis catches any potential overflows which seem to happen with \njust the right src image dimensions and scale/rotation and can lead\nto a situation where the program can segfault.\n*/\n#define GUARD_ROWS (2)\n\n/*!\n\\brief Lower limit of absolute zoom factor or rotation degrees.\n*/\n#define VALUE_LIMIT\t0.001\n\n/*!\n\\brief Returns colorkey info for a surface\n*/\nUint32 _colorkey(SDL_Surface *src)\n{\n\tUint32 key = 0; \n\tSDL_GetColorKey(src, &key);\n\treturn key;\n}\n\n\n/*! \n\\brief Internal 32 bit integer-factor averaging Shrinker.\n\nShrinks 32 bit RGBA/ABGR 'src' surface to 'dst' surface.\nAverages color and alpha values values of src pixels to calculate dst pixels.\nAssumes src and dst surfaces are of 32 bit depth.\nAssumes dst surface was allocated with the correct dimensions.\n\n\\param src The surface to shrink (input).\n\\param dst The shrunken surface (output).\n\\param factorx The horizontal shrinking ratio.\n\\param factory The vertical shrinking ratio.\n\n\\return 0 for success or -1 for error.\n*/\nint _shrinkSurfaceRGBA(SDL_Surface * src, SDL_Surface * dst, int factorx, int factory)\n{\n\tint x, y, dx, dy, dgap, ra, ga, ba, aa;\n\tint n_average;\n\ttColorRGBA *sp, *osp, *oosp;\n\ttColorRGBA *dp;\n\n\t/*\n\t* Averaging integer shrink\n\t*/\n\n\t/* Precalculate division factor */\n\tn_average = factorx*factory;\n\n\t/*\n\t* Scan destination\n\t*/\n\tsp = (tColorRGBA *) src->pixels;\n\t\n\tdp = (tColorRGBA *) dst->pixels;\n\tdgap = dst->pitch - dst->w * 4;\n\n\tfor (y = 0; y < dst->h; y++) {\n\n\t\tosp=sp;\n\t\tfor (x = 0; x < dst->w; x++) {\n\n\t\t\t/* Trace out source box and accumulate */\n\t\t\toosp=sp;\n\t\t\tra=ga=ba=aa=0;\n\t\t\tfor (dy=0; dy < factory; dy++) {\n\t\t\t\tfor (dx=0; dx < factorx; dx++) {\n\t\t\t\t\tra += sp->r;\n\t\t\t\t\tga += sp->g;\n\t\t\t\t\tba += sp->b;\n\t\t\t\t\taa += sp->a;\n\n\t\t\t\t\tsp++;\n\t\t\t\t} \n\t\t\t\t/* src dx loop */\n\t\t\t\tsp = (tColorRGBA *)((Uint8*)sp + (src->pitch - 4*factorx)); // next y\n\t\t\t}\n\t\t\t/* src dy loop */\n\n\t\t\t/* next box-x */\n\t\t\tsp = (tColorRGBA *)((Uint8*)oosp + 4*factorx);\n\n\t\t\t/* Store result in destination */\n\t\t\tdp->r = ra/n_average;\n\t\t\tdp->g = ga/n_average;\n\t\t\tdp->b = ba/n_average;\n\t\t\tdp->a = aa/n_average;\n\n\t\t\t/*\n\t\t\t* Advance destination pointer \n\t\t\t*/\n\t\t\tdp++;\n\t\t} \n\t\t/* dst x loop */\n\n\t\t/* next box-y */\n\t\tsp = (tColorRGBA *)((Uint8*)osp + src->pitch*factory);\n\n\t\t/*\n\t\t* Advance destination pointers \n\t\t*/\n\t\tdp = (tColorRGBA *) ((Uint8 *) dp + dgap);\n\t} \n\t/* dst y loop */\n\n\treturn (0);\n}\n\n/*! \n\\brief Internal 8 bit integer-factor averaging shrinker.\n\nShrinks 8bit Y 'src' surface to 'dst' surface.\nAverages color (brightness) values values of src pixels to calculate dst pixels.\nAssumes src and dst surfaces are of 8 bit depth.\nAssumes dst surface was allocated with the correct dimensions.\n\n\\param src The surface to shrink (input).\n\\param dst The shrunken surface (output).\n\\param factorx The horizontal shrinking ratio.\n\\param factory The vertical shrinking ratio.\n\n\\return 0 for success or -1 for error.\n*/\nint _shrinkSurfaceY(SDL_Surface * src, SDL_Surface * dst, int factorx, int factory)\n{\n\tint x, y, dx, dy, dgap, a;\n\tint n_average;\n\tUint8 *sp, *osp, *oosp;\n\tUint8 *dp;\n\n\t/*\n\t* Averaging integer shrink\n\t*/\n\n\t/* Precalculate division factor */\n\tn_average = factorx*factory;\n\n\t/*\n\t* Scan destination\n\t*/\n\tsp = (Uint8 *) src->pixels;\n\n\tdp = (Uint8 *) dst->pixels;\n\tdgap = dst->pitch - dst->w;\n\n\tfor (y = 0; y < dst->h; y++) {    \n\n\t\tosp=sp;\n\t\tfor (x = 0; x < dst->w; x++) {\n\n\t\t\t/* Trace out source box and accumulate */\n\t\t\toosp=sp;\n\t\t\ta=0;\n\t\t\tfor (dy=0; dy < factory; dy++) {\n\t\t\t\tfor (dx=0; dx < factorx; dx++) {\n\t\t\t\t\ta += (*sp);\n\t\t\t\t\t/* next x */           \n\t\t\t\t\tsp++;\n\t\t\t\t} \n\t\t\t\t/* end src dx loop */         \n\t\t\t\t/* next y */\n\t\t\t\tsp = (Uint8 *)((Uint8*)sp + (src->pitch - factorx)); \n\t\t\t} \n\t\t\t/* end src dy loop */\n\n\t\t\t/* next box-x */\n\t\t\tsp = (Uint8 *)((Uint8*)oosp + factorx);\n\n\t\t\t/* Store result in destination */\n\t\t\t*dp = a/n_average;\n\n\t\t\t/*\n\t\t\t* Advance destination pointer \n\t\t\t*/\n\t\t\tdp++;\n\t\t} \n\t\t/* end dst x loop */\n\n\t\t/* next box-y */\n\t\tsp = (Uint8 *)((Uint8*)osp + src->pitch*factory);\n\n\t\t/*\n\t\t* Advance destination pointers \n\t\t*/\n\t\tdp = (Uint8 *)((Uint8 *)dp + dgap);\n\t} \n\t/* end dst y loop */\n\n\treturn (0);\n}\n\n/*! \n\\brief Internal 32 bit Zoomer with optional anti-aliasing by bilinear interpolation.\n\nZooms 32 bit RGBA/ABGR 'src' surface to 'dst' surface.\nAssumes src and dst surfaces are of 32 bit depth.\nAssumes dst surface was allocated with the correct dimensions.\n\n\\param src The surface to zoom (input).\n\\param dst The zoomed surface (output).\n\\param flipx Flag indicating if the image should be horizontally flipped.\n\\param flipy Flag indicating if the image should be vertically flipped.\n\\param smooth Antialiasing flag; set to SMOOTHING_ON to enable.\n\n\\return 0 for success or -1 for error.\n*/\nint _zoomSurfaceRGBA(SDL_Surface * src, SDL_Surface * dst, int flipx, int flipy, int smooth)\n{\n\tint x, y, sx, sy, ssx, ssy, *sax, *say, *csax, *csay, *salast, csx, csy, ex, ey, cx, cy, sstep, sstepx, sstepy;\n\ttColorRGBA *c00, *c01, *c10, *c11;\n\ttColorRGBA *sp, *csp, *dp;\n\tint spixelgap, spixelw, spixelh, dgap, t1, t2;\n\n\t/*\n\t* Allocate memory for row/column increments \n\t*/\n\tif ((sax = (int *) malloc((dst->w + 1) * sizeof(int))) == NULL) {\n\t\treturn (-1);\n\t}\n\tif ((say = (int *) malloc((dst->h + 1) * sizeof(int))) == NULL) {\n\t\tfree(sax);\n\t\treturn (-1);\n\t}\n\n\t/*\n\t* Precalculate row increments \n\t*/\n\tspixelw = (src->w - 1);\n\tspixelh = (src->h - 1);\n\tif (smooth) {\n\t\tsx = (int) (65536.0 * (float) spixelw / (float) (dst->w - 1));\n\t\tsy = (int) (65536.0 * (float) spixelh / (float) (dst->h - 1));\n\t} else {\n\t\tsx = (int) (65536.0 * (float) (src->w) / (float) (dst->w));\n\t\tsy = (int) (65536.0 * (float) (src->h) / (float) (dst->h));\n\t}\n\n\t/* Maximum scaled source size */\n\tssx = (src->w << 16) - 1;\n\tssy = (src->h << 16) - 1;\n\n\t/* Precalculate horizontal row increments */\n\tcsx = 0;\n\tcsax = sax;\n\tfor (x = 0; x <= dst->w; x++) {\n\t\t*csax = csx;\n\t\tcsax++;\n\t\tcsx += sx;\n\n\t\t/* Guard from overflows */\n\t\tif (csx > ssx) { \n\t\t\tcsx = ssx; \n\t\t}\n\t}\n\n\t/* Precalculate vertical row increments */\n\tcsy = 0;\n\tcsay = say;\n\tfor (y = 0; y <= dst->h; y++) {\n\t\t*csay = csy;\n\t\tcsay++;\n\t\tcsy += sy;\n\n\t\t/* Guard from overflows */\n\t\tif (csy > ssy) {\n\t\t\tcsy = ssy;\n\t\t}\n\t}\n\n\tsp = (tColorRGBA *) src->pixels;\n\tdp = (tColorRGBA *) dst->pixels;\n\tdgap = dst->pitch - dst->w * 4;\n\tspixelgap = src->pitch/4;\n\n\tif (flipx) sp += spixelw;\n\tif (flipy) sp += (spixelgap * spixelh);\n\n\t/*\n\t* Switch between interpolating and non-interpolating code \n\t*/\n\tif (smooth) {\n\n\t\t/*\n\t\t* Interpolating Zoom \n\t\t*/\n\t\tcsay = say;\n\t\tfor (y = 0; y < dst->h; y++) {\n\t\t\tcsp = sp;\n\t\t\tcsax = sax;\n\t\t\tfor (x = 0; x < dst->w; x++) {\n\t\t\t\t/*\n\t\t\t\t* Setup color source pointers \n\t\t\t\t*/\n\t\t\t\tex = (*csax & 0xffff);\n\t\t\t\tey = (*csay & 0xffff);\n\t\t\t\tcx = (*csax >> 16);\n\t\t\t\tcy = (*csay >> 16);\n\t\t\t\tsstepx = cx < spixelw;\n\t\t\t\tsstepy = cy < spixelh;\n\t\t\t\tc00 = sp;\n\t\t\t\tc01 = sp;\n\t\t\t\tc10 = sp;\n\t\t\t\tif (sstepy) {\n\t\t\t\t\tif (flipy) {\n\t\t\t\t\t\tc10 -= spixelgap;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tc10 += spixelgap;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tc11 = c10;\n\t\t\t\tif (sstepx) {\n\t\t\t\t\tif (flipx) {\n\t\t\t\t\t\tc01--;\n\t\t\t\t\t\tc11--;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tc01++;\n\t\t\t\t\t\tc11++;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/*\n\t\t\t\t* Draw and interpolate colors \n\t\t\t\t*/\n\t\t\t\tt1 = ((((c01->r - c00->r) * ex) >> 16) + c00->r) & 0xff;\n\t\t\t\tt2 = ((((c11->r - c10->r) * ex) >> 16) + c10->r) & 0xff;\n\t\t\t\tdp->r = (((t2 - t1) * ey) >> 16) + t1;\n\t\t\t\tt1 = ((((c01->g - c00->g) * ex) >> 16) + c00->g) & 0xff;\n\t\t\t\tt2 = ((((c11->g - c10->g) * ex) >> 16) + c10->g) & 0xff;\n\t\t\t\tdp->g = (((t2 - t1) * ey) >> 16) + t1;\n\t\t\t\tt1 = ((((c01->b - c00->b) * ex) >> 16) + c00->b) & 0xff;\n\t\t\t\tt2 = ((((c11->b - c10->b) * ex) >> 16) + c10->b) & 0xff;\n\t\t\t\tdp->b = (((t2 - t1) * ey) >> 16) + t1;\n\t\t\t\tt1 = ((((c01->a - c00->a) * ex) >> 16) + c00->a) & 0xff;\n\t\t\t\tt2 = ((((c11->a - c10->a) * ex) >> 16) + c10->a) & 0xff;\n\t\t\t\tdp->a = (((t2 - t1) * ey) >> 16) + t1;\t\t\t\t\n\t\t\t\t/*\n\t\t\t\t* Advance source pointer x\n\t\t\t\t*/\n\t\t\t\tsalast = csax;\n\t\t\t\tcsax++;\t\t\t\t\n\t\t\t\tsstep = (*csax >> 16) - (*salast >> 16);\n\t\t\t\tif (flipx) {\n\t\t\t\t\tsp -= sstep;\n\t\t\t\t} else {\n\t\t\t\t\tsp += sstep;\n\t\t\t\t}\n\n\t\t\t\t/*\n\t\t\t\t* Advance destination pointer x\n\t\t\t\t*/\n\t\t\t\tdp++;\n\t\t\t}\n\t\t\t/*\n\t\t\t* Advance source pointer y\n\t\t\t*/\n\t\t\tsalast = csay;\n\t\t\tcsay++;\n\t\t\tsstep = (*csay >> 16) - (*salast >> 16);\n\t\t\tsstep *= spixelgap;\n\t\t\tif (flipy) { \n\t\t\t\tsp = csp - sstep;\n\t\t\t} else {\n\t\t\t\tsp = csp + sstep;\n\t\t\t}\n\n\t\t\t/*\n\t\t\t* Advance destination pointer y\n\t\t\t*/\n\t\t\tdp = (tColorRGBA *) ((Uint8 *) dp + dgap);\n\t\t}\n\t} else {\n\t\t/*\n\t\t* Non-Interpolating Zoom \n\t\t*/\t\t\n\t\tcsay = say;\n\t\tfor (y = 0; y < dst->h; y++) {\n\t\t\tcsp = sp;\n\t\t\tcsax = sax;\n\t\t\tfor (x = 0; x < dst->w; x++) {\n\t\t\t\t/*\n\t\t\t\t* Draw \n\t\t\t\t*/\n\t\t\t\t*dp = *sp;\n\n\t\t\t\t/*\n\t\t\t\t* Advance source pointer x\n\t\t\t\t*/\n\t\t\t\tsalast = csax;\n\t\t\t\tcsax++;\t\t\t\t\n\t\t\t\tsstep = (*csax >> 16) - (*salast >> 16);\n\t\t\t\tif (flipx) sstep = -sstep;\n\t\t\t\tsp += sstep;\n\n\t\t\t\t/*\n\t\t\t\t* Advance destination pointer x\n\t\t\t\t*/\n\t\t\t\tdp++;\n\t\t\t}\n\t\t\t/*\n\t\t\t* Advance source pointer y\n\t\t\t*/\n\t\t\tsalast = csay;\n\t\t\tcsay++;\n\t\t\tsstep = (*csay >> 16) - (*salast >> 16);\n\t\t\tsstep *= spixelgap;\n\t\t\tif (flipy) sstep = -sstep;\t\t\t\n\t\t\tsp = csp + sstep;\n\n\t\t\t/*\n\t\t\t* Advance destination pointer y\n\t\t\t*/\n\t\t\tdp = (tColorRGBA *) ((Uint8 *) dp + dgap);\n\t\t}\n\t}\n\n\t/*\n\t* Remove temp arrays \n\t*/\n\tfree(sax);\n\tfree(say);\n\n\treturn (0);\n}\n\n/*! \n\n\\brief Internal 8 bit Zoomer without smoothing.\n\nZooms 8bit palette/Y 'src' surface to 'dst' surface.\nAssumes src and dst surfaces are of 8 bit depth.\nAssumes dst surface was allocated with the correct dimensions.\n\n\\param src The surface to zoom (input).\n\\param dst The zoomed surface (output).\n\\param flipx Flag indicating if the image should be horizontally flipped.\n\\param flipy Flag indicating if the image should be vertically flipped.\n\n\\return 0 for success or -1 for error.\n*/\nint _zoomSurfaceY(SDL_Surface * src, SDL_Surface * dst, int flipx, int flipy)\n{\n\tint x, y;\n\tUint32 *sax, *say, *csax, *csay;\n\tint csx, csy;\n\tUint8 *sp, *dp, *csp ;\n\tint dgap;\n\n\t/*\n\t* Allocate memory for row increments \n\t*/\n\tif ((sax = (Uint32 *) malloc((dst->w + 1) * sizeof(Uint32))) == NULL) {\n\t\treturn (-1);\n\t}\n\tif ((say = (Uint32 *) malloc((dst->h + 1) * sizeof(Uint32))) == NULL) {\n\t\tfree(sax);\n\t\treturn (-1);\n\t}\n\n\t/*\n\t* Pointer setup \n\t*/\n\tdp = (Uint8 *) dst->pixels;\n\tdgap = dst->pitch - dst->w;\n\n\tcsp = (Uint8 *) src->pixels;\n\tif (flipx) csp += (src->w-1);\n\tif (flipy) csp  = ( (Uint8*)csp + src->pitch*(src->h-1) );\n\n\t/*\n\t* Precalculate row increments \n\t*/\n\tcsx = 0;\n\tcsax = sax;\n\tfor (x = 0; x < dst->w; x++) {\n\t\tcsx += src->w;\n\t\t*csax = 0;\n\t\twhile (csx >= dst->w) {\n\t\t\tcsx -= dst->w;\n\t\t\t(*csax)++;\n\t\t}\n\t\t(*csax) = (*csax) * (flipx ? -1 : 1);\n\t\tcsax++;\n\t}\n\tcsy = 0;\n\tcsay = say;\n\tfor (y = 0; y < dst->h; y++) {\n\t\tcsy += src->h;\n\t\t*csay = 0;\n\t\twhile (csy >= dst->h) {\n\t\t\tcsy -= dst->h;\n\t\t\t(*csay)++;\n\t\t}\n\t\t(*csay) = (*csay) * (flipy ? -1 : 1);\n\t\tcsay++;\n\t}\n\n\t/*\n\t* Draw \n\t*/\n\tcsay = say;\n\tfor (y = 0; y < dst->h; y++) {\n\t\tcsax = sax;\n\t\tsp = csp;\n\t\tfor (x = 0; x < dst->w; x++) {\n\t\t\t/*\n\t\t\t* Draw \n\t\t\t*/\n\t\t\t*dp = *sp;\n\t\t\t/*\n\t\t\t* Advance source pointers \n\t\t\t*/\n\t\t\tsp += (*csax);\n\t\t\tcsax++;\n\t\t\t/*\n\t\t\t* Advance destination pointer \n\t\t\t*/\n\t\t\tdp++;\n\t\t}\n\t\t/*\n\t\t* Advance source pointer (for row) \n\t\t*/\n\t\tcsp += ((*csay) * src->pitch);\n\t\tcsay++;\n\n\t\t/*\n\t\t* Advance destination pointers \n\t\t*/\n\t\tdp += dgap;\n\t}\n\n\t/*\n\t* Remove temp arrays \n\t*/\n\tfree(sax);\n\tfree(say);\n\n\treturn (0);\n}\n\n/*! \n\\brief Internal 32 bit rotozoomer with optional anti-aliasing.\n\nRotates and zooms 32 bit RGBA/ABGR 'src' surface to 'dst' surface based on the control \nparameters by scanning the destination surface and applying optionally anti-aliasing\nby bilinear interpolation.\nAssumes src and dst surfaces are of 32 bit depth.\nAssumes dst surface was allocated with the correct dimensions.\n\n\\param src Source surface.\n\\param dst Destination surface.\n\\param cx Horizontal center coordinate.\n\\param cy Vertical center coordinate.\n\\param isin Integer version of sine of angle.\n\\param icos Integer version of cosine of angle.\n\\param flipx Flag indicating horizontal mirroring should be applied.\n\\param flipy Flag indicating vertical mirroring should be applied.\n\\param smooth Flag indicating anti-aliasing should be used.\n*/\nvoid _transformSurfaceRGBA(SDL_Surface * src, SDL_Surface * dst, int cx, int cy, int isin, int icos, int flipx, int flipy, int smooth)\n{\n\tint x, y, t1, t2, dx, dy, xd, yd, sdx, sdy, ax, ay, ex, ey, sw, sh;\n\ttColorRGBA c00, c01, c10, c11, cswap;\n\ttColorRGBA *pc, *sp;\n\tint gap;\n\n\t/*\n\t* Variable setup \n\t*/\n\txd = ((src->w - dst->w) << 15);\n\tyd = ((src->h - dst->h) << 15);\n\tax = (cx << 16) - (icos * cx);\n\tay = (cy << 16) - (isin * cx);\n\tsw = src->w - 1;\n\tsh = src->h - 1;\n\tpc = (tColorRGBA*) dst->pixels;\n\tgap = dst->pitch - dst->w * 4;\n\n\t/*\n\t* Switch between interpolating and non-interpolating code \n\t*/\n\tif (smooth) {\n\t\tfor (y = 0; y < dst->h; y++) {\n\t\t\tdy = cy - y;\n\t\t\tsdx = (ax + (isin * dy)) + xd;\n\t\t\tsdy = (ay - (icos * dy)) + yd;\n\t\t\tfor (x = 0; x < dst->w; x++) {\n\t\t\t\tdx = (sdx >> 16);\n\t\t\t\tdy = (sdy >> 16);\n\t\t\t\tif (flipx) dx = sw - dx;\n\t\t\t\tif (flipy) dy = sh - dy;\n\t\t\t\tif ((dx > -1) && (dy > -1) && (dx < (src->w-1)) && (dy < (src->h-1))) {\n\t\t\t\t\tsp = (tColorRGBA *)src->pixels;;\n\t\t\t\t\tsp += ((src->pitch/4) * dy);\n\t\t\t\t\tsp += dx;\n\t\t\t\t\tc00 = *sp;\n\t\t\t\t\tsp += 1;\n\t\t\t\t\tc01 = *sp;\n\t\t\t\t\tsp += (src->pitch/4);\n\t\t\t\t\tc11 = *sp;\n\t\t\t\t\tsp -= 1;\n\t\t\t\t\tc10 = *sp;\n\t\t\t\t\tif (flipx) {\n\t\t\t\t\t\tcswap = c00; c00=c01; c01=cswap;\n\t\t\t\t\t\tcswap = c10; c10=c11; c11=cswap;\n\t\t\t\t\t}\n\t\t\t\t\tif (flipy) {\n\t\t\t\t\t\tcswap = c00; c00=c10; c10=cswap;\n\t\t\t\t\t\tcswap = c01; c01=c11; c11=cswap;\n\t\t\t\t\t}\n\t\t\t\t\t/*\n\t\t\t\t\t* Interpolate colors \n\t\t\t\t\t*/\n\t\t\t\t\tex = (sdx & 0xffff);\n\t\t\t\t\tey = (sdy & 0xffff);\n\t\t\t\t\tt1 = ((((c01.r - c00.r) * ex) >> 16) + c00.r) & 0xff;\n\t\t\t\t\tt2 = ((((c11.r - c10.r) * ex) >> 16) + c10.r) & 0xff;\n\t\t\t\t\tpc->r = (((t2 - t1) * ey) >> 16) + t1;\n\t\t\t\t\tt1 = ((((c01.g - c00.g) * ex) >> 16) + c00.g) & 0xff;\n\t\t\t\t\tt2 = ((((c11.g - c10.g) * ex) >> 16) + c10.g) & 0xff;\n\t\t\t\t\tpc->g = (((t2 - t1) * ey) >> 16) + t1;\n\t\t\t\t\tt1 = ((((c01.b - c00.b) * ex) >> 16) + c00.b) & 0xff;\n\t\t\t\t\tt2 = ((((c11.b - c10.b) * ex) >> 16) + c10.b) & 0xff;\n\t\t\t\t\tpc->b = (((t2 - t1) * ey) >> 16) + t1;\n\t\t\t\t\tt1 = ((((c01.a - c00.a) * ex) >> 16) + c00.a) & 0xff;\n\t\t\t\t\tt2 = ((((c11.a - c10.a) * ex) >> 16) + c10.a) & 0xff;\n\t\t\t\t\tpc->a = (((t2 - t1) * ey) >> 16) + t1;\n\t\t\t\t}\n\t\t\t\tsdx += icos;\n\t\t\t\tsdy += isin;\n\t\t\t\tpc++;\n\t\t\t}\n\t\t\tpc = (tColorRGBA *) ((Uint8 *) pc + gap);\n\t\t}\n\t} else {\n\t\tfor (y = 0; y < dst->h; y++) {\n\t\t\tdy = cy - y;\n\t\t\tsdx = (ax + (isin * dy)) + xd;\n\t\t\tsdy = (ay - (icos * dy)) + yd;\n\t\t\tfor (x = 0; x < dst->w; x++) {\n\t\t\t\tdx = (short) (sdx >> 16);\n\t\t\t\tdy = (short) (sdy >> 16);\n\t\t\t\tif (flipx) dx = (src->w-1)-dx;\n\t\t\t\tif (flipy) dy = (src->h-1)-dy;\n\t\t\t\tif ((dx >= 0) && (dy >= 0) && (dx < src->w) && (dy < src->h)) {\n\t\t\t\t\tsp = (tColorRGBA *) ((Uint8 *) src->pixels + src->pitch * dy);\n\t\t\t\t\tsp += dx;\n\t\t\t\t\t*pc = *sp;\n\t\t\t\t}\n\t\t\t\tsdx += icos;\n\t\t\t\tsdy += isin;\n\t\t\t\tpc++;\n\t\t\t}\n\t\t\tpc = (tColorRGBA *) ((Uint8 *) pc + gap);\n\t\t}\n\t}\n}\n\n/*!\n\n\\brief Rotates and zooms 8 bit palette/Y 'src' surface to 'dst' surface without smoothing.\n\nRotates and zooms 8 bit RGBA/ABGR 'src' surface to 'dst' surface based on the control \nparameters by scanning the destination surface.\nAssumes src and dst surfaces are of 8 bit depth.\nAssumes dst surface was allocated with the correct dimensions.\n\n\\param src Source surface.\n\\param dst Destination surface.\n\\param cx Horizontal center coordinate.\n\\param cy Vertical center coordinate.\n\\param isin Integer version of sine of angle.\n\\param icos Integer version of cosine of angle.\n\\param flipx Flag indicating horizontal mirroring should be applied.\n\\param flipy Flag indicating vertical mirroring should be applied.\n*/\nvoid transformSurfaceY(SDL_Surface * src, SDL_Surface * dst, int cx, int cy, int isin, int icos, int flipx, int flipy)\n{\n\tint x, y, dx, dy, xd, yd, sdx, sdy, ax, ay;\n\ttColorY *pc, *sp;\n\tint gap;\n\n\t/*\n\t* Variable setup \n\t*/\n\txd = ((src->w - dst->w) << 15);\n\tyd = ((src->h - dst->h) << 15);\n\tax = (cx << 16) - (icos * cx);\n\tay = (cy << 16) - (isin * cx);\n\tpc = (tColorY*) dst->pixels;\n\tgap = dst->pitch - dst->w;\n\t/*\n\t* Clear surface to colorkey \n\t*/ \t\n\tmemset(pc, (int)(_colorkey(src) & 0xff), dst->pitch * dst->h);\n\t/*\n\t* Iterate through destination surface \n\t*/\n\tfor (y = 0; y < dst->h; y++) {\n\t\tdy = cy - y;\n\t\tsdx = (ax + (isin * dy)) + xd;\n\t\tsdy = (ay - (icos * dy)) + yd;\n\t\tfor (x = 0; x < dst->w; x++) {\n\t\t\tdx = (short) (sdx >> 16);\n\t\t\tdy = (short) (sdy >> 16);\n\t\t\tif (flipx) dx = (src->w-1)-dx;\n\t\t\tif (flipy) dy = (src->h-1)-dy;\n\t\t\tif ((dx >= 0) && (dy >= 0) && (dx < src->w) && (dy < src->h)) {\n\t\t\t\tsp = (tColorY *) (src->pixels);\n\t\t\t\tsp += (src->pitch * dy + dx);\n\t\t\t\t*pc = *sp;\n\t\t\t}\n\t\t\tsdx += icos;\n\t\t\tsdy += isin;\n\t\t\tpc++;\n\t\t}\n\t\tpc += gap;\n\t}\n}\n\n/*!\n\\brief Rotates a 8/16/24/32 bit surface in increments of 90 degrees.\n\nSpecialized 90 degree rotator which rotates a 'src' surface in 90 degree \nincrements clockwise returning a new surface. Faster than rotozoomer since\nno scanning or interpolation takes place. Input surface must be 8/16/24/32 bit.\n(code contributed by J. Schiller, improved by C. Allport and A. Schiffler)\n\n\\param src Source surface to rotate.\n\\param numClockwiseTurns Number of clockwise 90 degree turns to apply to the source.\n\n\\returns The new, rotated surface; or NULL for surfaces with incorrect input format.\n*/\nSDL_Surface* rotateSurface90Degrees(SDL_Surface* src, int numClockwiseTurns) \n{\n\tint row, col, newWidth, newHeight;\n\tint bpp, bpr;\n\tSDL_Surface* dst;\n\tUint8* srcBuf;\n\tUint8* dstBuf;\n\tint normalizedClockwiseTurns;\n\n\t/* Has to be a valid surface pointer and be a Nbit surface where n is divisible by 8 */\n\tif (!src || \n\t    !src->format) {\n\t\tSDL_SetError(\"NULL source surface or source surface format\");\n\t    return NULL; \n\t}\n\n\tif ((src->format->BitsPerPixel % 8) != 0) {\n\t\tSDL_SetError(\"Invalid source surface bit depth\");\n\t    return NULL; \n\t}\n\n\t/* normalize numClockwiseTurns */\n\tnormalizedClockwiseTurns = (numClockwiseTurns % 4);\n\tif (normalizedClockwiseTurns < 0) {\n\t\tnormalizedClockwiseTurns += 4;\n\t}\n\n\t/* If turns are even, our new width/height will be the same as the source surface */\n\tif (normalizedClockwiseTurns % 2) {\n\t\tnewWidth = src->h;\n\t\tnewHeight = src->w;\n\t} else {\n\t\tnewWidth = src->w;\n\t\tnewHeight = src->h;\n\t}\n\n\tdst = SDL_CreateRGBSurface( src->flags, newWidth, newHeight, src->format->BitsPerPixel,\n\t\tsrc->format->Rmask,\n\t\tsrc->format->Gmask, \n\t\tsrc->format->Bmask, \n\t\tsrc->format->Amask);\n\tif(!dst) {\n\t\tSDL_SetError(\"Could not create destination surface\"); \n\t\treturn NULL;\n\t}\n\n\tif (SDL_MUSTLOCK(src)) {\n\t\tSDL_LockSurface(src);\n\t}\n\tif (SDL_MUSTLOCK(dst)) {\n\t\tSDL_LockSurface(dst);\n\t}\n\n\t/* Calculate byte-per-pixel */\n\tbpp = src->format->BitsPerPixel / 8;\n\n\tswitch(normalizedClockwiseTurns) {\n\tcase 0: /* Make a copy of the surface */\n\t\t{\n\t\t\t/* Unfortunately SDL_BlitSurface cannot be used to make a copy of the surface\n\t\t\tsince it does not preserve alpha. */\n\n\t\t\tif (src->pitch == dst->pitch) {\n\t\t\t\t/* If the pitch is the same for both surfaces, the memory can be copied all at once. */\n\t\t\t\tmemcpy(dst->pixels, src->pixels, (src->h * src->pitch));\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t/* If the pitch differs, copy each row separately */\n\t\t\t\tsrcBuf = (Uint8*)(src->pixels);\n\t\t\t\tdstBuf = (Uint8*)(dst->pixels);\n\t\t\t\tbpr = src->w * bpp;\n\t\t\t\tfor (row = 0; row < src->h; row++) {\n\t\t\t\t\tmemcpy(dstBuf, srcBuf, bpr);\n\t\t\t\t\tsrcBuf += src->pitch;\n\t\t\t\t\tdstBuf += dst->pitch;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tbreak;\n\n\t\t/* rotate clockwise */\n\tcase 1: /* rotated 90 degrees clockwise */\n\t\t{\n\t\t\tfor (row = 0; row < src->h; ++row) {\n\t\t\t\tsrcBuf = (Uint8*)(src->pixels) + (row * src->pitch);\n\t\t\t\tdstBuf = (Uint8*)(dst->pixels) + (dst->w - row - 1) * bpp;\n\t\t\t\tfor (col = 0; col < src->w; ++col) {\n\t\t\t\t\tmemcpy (dstBuf, srcBuf, bpp);\n\t\t\t\t\tsrcBuf += bpp;\n\t\t\t\t\tdstBuf += dst->pitch;\n\t\t\t\t} \n\t\t\t} \n\t\t}\n\t\tbreak;\n\n\tcase 2: /* rotated 180 degrees clockwise */\n\t\t{\n\t\t\tfor (row = 0; row < src->h; ++row) {\n\t\t\t\tsrcBuf = (Uint8*)(src->pixels) + (row * src->pitch);\n\t\t\t\tdstBuf = (Uint8*)(dst->pixels) + ((dst->h - row - 1) * dst->pitch) + (dst->w - 1) * bpp;\n\t\t\t\tfor (col = 0; col < src->w; ++col) {\n\t\t\t\t\tmemcpy (dstBuf, srcBuf, bpp);\n\t\t\t\t\tsrcBuf += bpp;\n\t\t\t\t\tdstBuf -= bpp;\n\t\t\t\t} \n\t\t\t} \n\t\t}\n\t\tbreak;\n\n\tcase 3: /* rotated 270 degrees clockwise */\n\t\t{\n\t\t\tfor (row = 0; row < src->h; ++row) {\n\t\t\t\tsrcBuf = (Uint8*)(src->pixels) + (row * src->pitch);\n\t\t\t\tdstBuf = (Uint8*)(dst->pixels) + (row * bpp) + (dst->h * dst->pitch);\n\t\t\t\tfor (col = 0; col < src->w; ++col) {\n\t\t\t\t\tmemcpy (dstBuf, srcBuf, bpp);\n\t\t\t\t\tsrcBuf += bpp;\n\t\t\t\t\tdstBuf -= dst->pitch;\n\t\t\t\t} \n\t\t\t} \n\t\t}\n\t\tbreak;\n\t} \n\t/* end switch */\n\n\tif (SDL_MUSTLOCK(src)) {\n\t\tSDL_UnlockSurface(src);\n\t}\n\tif (SDL_MUSTLOCK(dst)) {\n\t\tSDL_UnlockSurface(dst);\n\t}\n\n\treturn dst;\n}\n\n\n/*!\n\\brief Internal target surface sizing function for rotozooms with trig result return. \n\n\\param width The source surface width.\n\\param height The source surface height.\n\\param angle The angle to rotate in degrees.\n\\param zoomx The horizontal scaling factor.\n\\param zoomy The vertical scaling factor.\n\\param dstwidth The calculated width of the destination surface.\n\\param dstheight The calculated height of the destination surface.\n\\param canglezoom The sine of the angle adjusted by the zoom factor.\n\\param sanglezoom The cosine of the angle adjusted by the zoom factor.\n\n*/\nvoid _rotozoomSurfaceSizeTrig(int width, int height, double angle, double zoomx, double zoomy, \n\tint *dstwidth, int *dstheight, \n\tdouble *canglezoom, double *sanglezoom)\n{\n\tdouble x, y, cx, cy, sx, sy;\n\tdouble radangle;\n\tint dstwidthhalf, dstheighthalf;\n\n\t/*\n\t* Determine destination width and height by rotating a centered source box \n\t*/\n\tradangle = angle * (M_PI / 180.0);\n\t*sanglezoom = sin(radangle);\n\t*canglezoom = cos(radangle);\n\t*sanglezoom *= zoomx;\n\t*canglezoom *= zoomx;\n\tx = (double)(width / 2);\n\ty = (double)(height / 2);\n\tcx = *canglezoom * x;\n\tcy = *canglezoom * y;\n\tsx = *sanglezoom * x;\n\tsy = *sanglezoom * y;\n\n\tdstwidthhalf = MAX((int)\n\t\tceil(MAX(MAX(MAX(fabs(cx + sy), fabs(cx - sy)), fabs(-cx + sy)), fabs(-cx - sy))), 1);\n\tdstheighthalf = MAX((int)\n\t\tceil(MAX(MAX(MAX(fabs(sx + cy), fabs(sx - cy)), fabs(-sx + cy)), fabs(-sx - cy))), 1);\n\t*dstwidth = 2 * dstwidthhalf;\n\t*dstheight = 2 * dstheighthalf;\n}\n\n/*! \n\\brief Returns the size of the resulting target surface for a rotozoomSurfaceXY() call. \n\n\\param width The source surface width.\n\\param height The source surface height.\n\\param angle The angle to rotate in degrees.\n\\param zoomx The horizontal scaling factor.\n\\param zoomy The vertical scaling factor.\n\\param dstwidth The calculated width of the rotozoomed destination surface.\n\\param dstheight The calculated height of the rotozoomed destination surface.\n*/\nvoid rotozoomSurfaceSizeXY(int width, int height, double angle, double zoomx, double zoomy, int *dstwidth, int *dstheight)\n{\n\tdouble dummy_sanglezoom, dummy_canglezoom;\n\n\t_rotozoomSurfaceSizeTrig(width, height, angle, zoomx, zoomy, dstwidth, dstheight, &dummy_sanglezoom, &dummy_canglezoom);\n}\n\n/*! \n\\brief Returns the size of the resulting target surface for a rotozoomSurface() call. \n\n\\param width The source surface width.\n\\param height The source surface height.\n\\param angle The angle to rotate in degrees.\n\\param zoom The scaling factor.\n\\param dstwidth The calculated width of the rotozoomed destination surface.\n\\param dstheight The calculated height of the rotozoomed destination surface.\n*/\nvoid rotozoomSurfaceSize(int width, int height, double angle, double zoom, int *dstwidth, int *dstheight)\n{\n\tdouble dummy_sanglezoom, dummy_canglezoom;\n\n\t_rotozoomSurfaceSizeTrig(width, height, angle, zoom, zoom, dstwidth, dstheight, &dummy_sanglezoom, &dummy_canglezoom);\n}\n\n/*!\n\\brief Rotates and zooms a surface and optional anti-aliasing. \n\nRotates and zoomes a 32bit or 8bit 'src' surface to newly created 'dst' surface.\n'angle' is the rotation in degrees and 'zoom' a scaling factor. If 'smooth' is set\nthen the destination 32bit surface is anti-aliased. If the surface is not 8bit\nor 32bit RGBA/ABGR it will be converted into a 32bit RGBA format on the fly.\n\n\\param src The surface to rotozoom.\n\\param angle The angle to rotate in degrees.\n\\param zoom The scaling factor.\n\\param smooth Antialiasing flag; set to SMOOTHING_ON to enable.\n\n\\return The new rotozoomed surface.\n*/\nSDL_Surface *rotozoomSurface(SDL_Surface * src, double angle, double zoom, int smooth)\n{\n\treturn rotozoomSurfaceXY(src, angle, zoom, zoom, smooth);\n}\n\n/*!\n\\brief Rotates and zooms a surface with different horizontal and vertival scaling factors and optional anti-aliasing. \n\nRotates and zooms a 32bit or 8bit 'src' surface to newly created 'dst' surface.\n'angle' is the rotation in degrees, 'zoomx and 'zoomy' scaling factors. If 'smooth' is set\nthen the destination 32bit surface is anti-aliased. If the surface is not 8bit\nor 32bit RGBA/ABGR it will be converted into a 32bit RGBA format on the fly.\n\n\\param src The surface to rotozoom.\n\\param angle The angle to rotate in degrees.\n\\param zoomx The horizontal scaling factor.\n\\param zoomy The vertical scaling factor.\n\\param smooth Antialiasing flag; set to SMOOTHING_ON to enable.\n\n\\return The new rotozoomed surface.\n*/\nSDL_Surface *rotozoomSurfaceXY(SDL_Surface * src, double angle, double zoomx, double zoomy, int smooth)\n{\n\tSDL_Surface *rz_src;\n\tSDL_Surface *rz_dst;\n\tdouble zoominv;\n\tdouble sanglezoom, canglezoom, sanglezoominv, canglezoominv;\n\tint dstwidthhalf, dstwidth, dstheighthalf, dstheight;\n\tint is32bit;\n\tint i, src_converted;\n\tint flipx,flipy;\n\n\t/*\n\t* Sanity check \n\t*/\n\tif (src == NULL) {\n\t\treturn (NULL);\n\t}\n\n\t/*\n\t* Determine if source surface is 32bit or 8bit \n\t*/\n\tis32bit = (src->format->BitsPerPixel == 32);\n\tif ((is32bit) || (src->format->BitsPerPixel == 8)) {\n\t\t/*\n\t\t* Use source surface 'as is' \n\t\t*/\n\t\trz_src = src;\n\t\tsrc_converted = 0;\n\t} else {\n\t\t/*\n\t\t* New source surface is 32bit with a defined RGBA ordering \n\t\t*/\n\t\trz_src =\n\t\t\tSDL_CreateRGBSurface(SDL_SWSURFACE, src->w, src->h, 32, \n#if SDL_BYTEORDER == SDL_LIL_ENDIAN\n\t\t\t0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000\n#else\n\t\t\t0xff000000,  0x00ff0000, 0x0000ff00, 0x000000ff\n#endif\n\t\t\t);\n\n\t\tSDL_BlitSurface(src, NULL, rz_src, NULL);\n\n\t\tsrc_converted = 1;\n\t\tis32bit = 1;\n\t}\n\n\t/*\n\t* Sanity check zoom factor \n\t*/\n\tflipx = (zoomx<0.0);\n\tif (flipx) zoomx=-zoomx;\n\tflipy = (zoomy<0.0);\n\tif (flipy) zoomy=-zoomy;\n\tif (zoomx < VALUE_LIMIT) zoomx = VALUE_LIMIT;\n\tif (zoomy < VALUE_LIMIT) zoomy = VALUE_LIMIT;\n\tzoominv = 65536.0 / (zoomx * zoomx);\n\n\t/*\n\t* Check if we have a rotozoom or just a zoom \n\t*/\n\tif (fabs(angle) > VALUE_LIMIT) {\n\n\t\t/*\n\t\t* Angle!=0: full rotozoom \n\t\t*/\n\t\t/*\n\t\t* ----------------------- \n\t\t*/\n\n\t\t/* Determine target size */\n\t\t_rotozoomSurfaceSizeTrig(rz_src->w, rz_src->h, angle, zoomx, zoomy, &dstwidth, &dstheight, &canglezoom, &sanglezoom);\n\n\t\t/*\n\t\t* Calculate target factors from sin/cos and zoom \n\t\t*/\n\t\tsanglezoominv = sanglezoom;\n\t\tcanglezoominv = canglezoom;\n\t\tsanglezoominv *= zoominv;\n\t\tcanglezoominv *= zoominv;\n\n\t\t/* Calculate half size */\n\t\tdstwidthhalf = dstwidth / 2;\n\t\tdstheighthalf = dstheight / 2;\n\n\t\t/*\n\t\t* Alloc space to completely contain the rotated surface \n\t\t*/\n\t\trz_dst = NULL;\n\t\tif (is32bit) {\n\t\t\t/*\n\t\t\t* Target surface is 32bit with source RGBA/ABGR ordering \n\t\t\t*/\n\t\t\trz_dst =\n\t\t\t\tSDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight + GUARD_ROWS, 32,\n\t\t\t\trz_src->format->Rmask, rz_src->format->Gmask,\n\t\t\t\trz_src->format->Bmask, rz_src->format->Amask);\n\t\t} else {\n\t\t\t/*\n\t\t\t* Target surface is 8bit \n\t\t\t*/\n\t\t\trz_dst = SDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight + GUARD_ROWS, 8, 0, 0, 0, 0);\n\t\t}\n\n\t\t/* Check target */\n\t\tif (rz_dst == NULL)\n\t\t\treturn NULL;\n\n\t\t/* Adjust for guard rows */\n\t\trz_dst->h = dstheight;\n\n\t\t/*\n\t\t* Lock source surface \n\t\t*/\n\t\tif (SDL_MUSTLOCK(rz_src)) {\n\t\t\tSDL_LockSurface(rz_src);\n\t\t}\n\n\t\t/*\n\t\t* Check which kind of surface we have \n\t\t*/\n\t\tif (is32bit) {\n\t\t\t/*\n\t\t\t* Call the 32bit transformation routine to do the rotation (using alpha) \n\t\t\t*/\n\t\t\t_transformSurfaceRGBA(rz_src, rz_dst, dstwidthhalf, dstheighthalf,\n\t\t\t\t(int) (sanglezoominv), (int) (canglezoominv), \n\t\t\t\tflipx, flipy,\n\t\t\t\tsmooth);\n\t\t} else {\n\t\t\t/*\n\t\t\t* Copy palette and colorkey info \n\t\t\t*/\n\t\t\tfor (i = 0; i < rz_src->format->palette->ncolors; i++) {\n\t\t\t\trz_dst->format->palette->colors[i] = rz_src->format->palette->colors[i];\n\t\t\t}\n\t\t\trz_dst->format->palette->ncolors = rz_src->format->palette->ncolors;\n\t\t\t/*\n\t\t\t* Call the 8bit transformation routine to do the rotation \n\t\t\t*/\n\t\t\ttransformSurfaceY(rz_src, rz_dst, dstwidthhalf, dstheighthalf,\n\t\t\t\t(int) (sanglezoominv), (int) (canglezoominv),\n\t\t\t\tflipx, flipy);\n\t\t}\n\t\t/*\n\t\t* Unlock source surface \n\t\t*/\n\t\tif (SDL_MUSTLOCK(rz_src)) {\n\t\t\tSDL_UnlockSurface(rz_src);\n\t\t}\n\n\t} else {\n\n\t\t/*\n\t\t* Angle=0: Just a zoom \n\t\t*/\n\t\t/*\n\t\t* -------------------- \n\t\t*/\n\n\t\t/*\n\t\t* Calculate target size\n\t\t*/\n\t\tzoomSurfaceSize(rz_src->w, rz_src->h, zoomx, zoomy, &dstwidth, &dstheight);\n\n\t\t/*\n\t\t* Alloc space to completely contain the zoomed surface \n\t\t*/\n\t\trz_dst = NULL;\n\t\tif (is32bit) {\n\t\t\t/*\n\t\t\t* Target surface is 32bit with source RGBA/ABGR ordering \n\t\t\t*/\n\t\t\trz_dst =\n\t\t\t\tSDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight + GUARD_ROWS, 32,\n\t\t\t\trz_src->format->Rmask, rz_src->format->Gmask,\n\t\t\t\trz_src->format->Bmask, rz_src->format->Amask);\n\t\t} else {\n\t\t\t/*\n\t\t\t* Target surface is 8bit \n\t\t\t*/\n\t\t\trz_dst = SDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight + GUARD_ROWS, 8, 0, 0, 0, 0);\n\t\t}\n\n\t\t/* Check target */\n\t\tif (rz_dst == NULL)\n\t\t\treturn NULL;\n\n\t\t/* Adjust for guard rows */\n\t\trz_dst->h = dstheight;\n\n\t\t/*\n\t\t* Lock source surface \n\t\t*/\n\t\tif (SDL_MUSTLOCK(rz_src)) {\n\t\t\tSDL_LockSurface(rz_src);\n\t\t}\n\n\t\t/*\n\t\t* Check which kind of surface we have \n\t\t*/\n\t\tif (is32bit) {\n\t\t\t/*\n\t\t\t* Call the 32bit transformation routine to do the zooming (using alpha) \n\t\t\t*/\n\t\t\t_zoomSurfaceRGBA(rz_src, rz_dst, flipx, flipy, smooth);\n\n\t\t} else {\n\t\t\t/*\n\t\t\t* Copy palette and colorkey info \n\t\t\t*/\n\t\t\tfor (i = 0; i < rz_src->format->palette->ncolors; i++) {\n\t\t\t\trz_dst->format->palette->colors[i] = rz_src->format->palette->colors[i];\n\t\t\t}\n\t\t\trz_dst->format->palette->ncolors = rz_src->format->palette->ncolors;\n\n\t\t\t/*\n\t\t\t* Call the 8bit transformation routine to do the zooming \n\t\t\t*/\n\t\t\t_zoomSurfaceY(rz_src, rz_dst, flipx, flipy);\n\t\t}\n\n\t\t/*\n\t\t* Unlock source surface \n\t\t*/\n\t\tif (SDL_MUSTLOCK(rz_src)) {\n\t\t\tSDL_UnlockSurface(rz_src);\n\t\t}\n\t}\n\n\t/*\n\t* Cleanup temp surface \n\t*/\n\tif (src_converted) {\n\t\tSDL_FreeSurface(rz_src);\n\t}\n\n\t/*\n\t* Return destination surface \n\t*/\n\treturn (rz_dst);\n}\n\n/*!\n\\brief Calculates the size of the target surface for a zoomSurface() call.\n\nThe minimum size of the target surface is 1. The input factors can be positive or negative.\n\n\\param width The width of the source surface to zoom.\n\\param height The height of the source surface to zoom.\n\\param zoomx The horizontal zoom factor.\n\\param zoomy The vertical zoom factor.\n\\param dstwidth Pointer to an integer to store the calculated width of the zoomed target surface.\n\\param dstheight Pointer to an integer to store the calculated height of the zoomed target surface.\n*/\nvoid zoomSurfaceSize(int width, int height, double zoomx, double zoomy, int *dstwidth, int *dstheight)\n{\n\t/*\n\t* Make zoom factors positive \n\t*/\n\tint flipx, flipy;\n\tflipx = (zoomx<0.0);\n\tif (flipx) zoomx = -zoomx;\n\tflipy = (zoomy<0.0);\n\tif (flipy) zoomy = -zoomy;\n\n\t/*\n\t* Sanity check zoom factors \n\t*/\n\tif (zoomx < VALUE_LIMIT) {\n\t\tzoomx = VALUE_LIMIT;\n\t}\n\tif (zoomy < VALUE_LIMIT) {\n\t\tzoomy = VALUE_LIMIT;\n\t}\n\n\t/*\n\t* Calculate target size \n\t*/\n\t*dstwidth = (int) floor(((double) width * zoomx) + 0.5);\n\t*dstheight = (int) floor(((double) height * zoomy) + 0.5);\n\tif (*dstwidth < 1) {\n\t\t*dstwidth = 1;\n\t}\n\tif (*dstheight < 1) {\n\t\t*dstheight = 1;\n\t}\n}\n\n/*! \n\\brief Zoom a surface by independent horizontal and vertical factors with optional smoothing.\n\nZooms a 32bit or 8bit 'src' surface to newly created 'dst' surface.\n'zoomx' and 'zoomy' are scaling factors for width and height. If 'smooth' is on\nthen the destination 32bit surface is anti-aliased. If the surface is not 8bit\nor 32bit RGBA/ABGR it will be converted into a 32bit RGBA format on the fly.\nIf zoom factors are negative, the image is flipped on the axes.\n\n\\param src The surface to zoom.\n\\param zoomx The horizontal zoom factor.\n\\param zoomy The vertical zoom factor.\n\\param smooth Antialiasing flag; set to SMOOTHING_ON to enable.\n\n\\return The new, zoomed surface.\n*/\nSDL_Surface *zoomSurface(SDL_Surface * src, double zoomx, double zoomy, int smooth)\n{\n\tSDL_Surface *rz_src;\n\tSDL_Surface *rz_dst;\n\tint dstwidth, dstheight;\n\tint is32bit;\n\tint i, src_converted;\n\tint flipx, flipy;\n\n\t/*\n\t* Sanity check \n\t*/\n\tif (src == NULL)\n\t\treturn (NULL);\n\n\t/*\n\t* Determine if source surface is 32bit or 8bit \n\t*/\n\tis32bit = (src->format->BitsPerPixel == 32);\n\tif ((is32bit) || (src->format->BitsPerPixel == 8)) {\n\t\t/*\n\t\t* Use source surface 'as is' \n\t\t*/\n\t\trz_src = src;\n\t\tsrc_converted = 0;\n\t} else {\n\t\t/*\n\t\t* New source surface is 32bit with a defined RGBA ordering \n\t\t*/\n\t\trz_src =\n\t\t\tSDL_CreateRGBSurface(SDL_SWSURFACE, src->w, src->h, 32, \n#if SDL_BYTEORDER == SDL_LIL_ENDIAN\n\t\t\t0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000\n#else\n\t\t\t0xff000000,  0x00ff0000, 0x0000ff00, 0x000000ff\n#endif\n\t\t\t);\n\t\tif (rz_src == NULL) {\n\t\t\treturn NULL;\n\t\t}\n\t\tSDL_BlitSurface(src, NULL, rz_src, NULL);\n\t\tsrc_converted = 1;\n\t\tis32bit = 1;\n\t}\n\n\tflipx = (zoomx<0.0);\n\tif (flipx) zoomx = -zoomx;\n\tflipy = (zoomy<0.0);\n\tif (flipy) zoomy = -zoomy;\n\n\t/* Get size if target */\n\tzoomSurfaceSize(rz_src->w, rz_src->h, zoomx, zoomy, &dstwidth, &dstheight);\n\n\t/*\n\t* Alloc space to completely contain the zoomed surface \n\t*/\n\trz_dst = NULL;\n\tif (is32bit) {\n\t\t/*\n\t\t* Target surface is 32bit with source RGBA/ABGR ordering \n\t\t*/\n\t\trz_dst =\n\t\t\tSDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight + GUARD_ROWS, 32,\n\t\t\trz_src->format->Rmask, rz_src->format->Gmask,\n\t\t\trz_src->format->Bmask, rz_src->format->Amask);\n\t} else {\n\t\t/*\n\t\t* Target surface is 8bit \n\t\t*/\n\t\trz_dst = SDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight + GUARD_ROWS, 8, 0, 0, 0, 0);\n\t}\n\n\t/* Check target */\n\tif (rz_dst == NULL) {\n\t\t/*\n\t\t* Cleanup temp surface \n\t\t*/\n\t\tif (src_converted) {\n\t\t\tSDL_FreeSurface(rz_src);\n\t\t}\t\t\n\t\treturn NULL;\n\t}\n\n\t/* Adjust for guard rows */\n\trz_dst->h = dstheight;\n\n\t/*\n\t* Lock source surface \n\t*/\n\tif (SDL_MUSTLOCK(rz_src)) {\n\t\tSDL_LockSurface(rz_src);\n\t}\n\n\t/*\n\t* Check which kind of surface we have \n\t*/\n\tif (is32bit) {\n\t\t/*\n\t\t* Call the 32bit transformation routine to do the zooming (using alpha) \n\t\t*/\n\t\t_zoomSurfaceRGBA(rz_src, rz_dst, flipx, flipy, smooth);\n\t} else {\n\t\t/*\n\t\t* Copy palette and colorkey info \n\t\t*/\n\t\tfor (i = 0; i < rz_src->format->palette->ncolors; i++) {\n\t\t\trz_dst->format->palette->colors[i] = rz_src->format->palette->colors[i];\n\t\t}\n\t\trz_dst->format->palette->ncolors = rz_src->format->palette->ncolors;\n\t\t/*\n\t\t* Call the 8bit transformation routine to do the zooming \n\t\t*/\n\t\t_zoomSurfaceY(rz_src, rz_dst, flipx, flipy);\n\t}\n\t/*\n\t* Unlock source surface \n\t*/\n\tif (SDL_MUSTLOCK(rz_src)) {\n\t\tSDL_UnlockSurface(rz_src);\n\t}\n\n\t/*\n\t* Cleanup temp surface \n\t*/\n\tif (src_converted) {\n\t\tSDL_FreeSurface(rz_src);\n\t}\n\n\t/*\n\t* Return destination surface \n\t*/\n\treturn (rz_dst);\n}\n\n/*! \n\\brief Shrink a surface by an integer ratio using averaging.\n\nShrinks a 32bit or 8bit 'src' surface to a newly created 'dst' surface.\n'factorx' and 'factory' are the shrinking ratios (i.e. 2=1/2 the size,\n3=1/3 the size, etc.) The destination surface is antialiased by averaging\nthe source box RGBA or Y information. If the surface is not 8bit\nor 32bit RGBA/ABGR it will be converted into a 32bit RGBA format on the fly.\nThe input surface is not modified. The output surface is newly allocated.\n\n\\param src The surface to shrink.\n\\param factorx The horizontal shrinking ratio.\n\\param factory The vertical shrinking ratio.\n\n\\return The new, shrunken surface.\n*/\n/*@null@*/ \nSDL_Surface *shrinkSurface(SDL_Surface *src, int factorx, int factory)\n{\n\tint result;\n\tSDL_Surface *rz_src;\n\tSDL_Surface *rz_dst = NULL;\n\tint dstwidth, dstheight;\n\tint is32bit;\n\tint i, src_converted;\n\tint haveError = 0;\n\n\t/*\n\t* Sanity check \n\t*/\n\tif (src == NULL) {\n\t\treturn (NULL);\n\t}\n\n\t/*\n\t* Determine if source surface is 32bit or 8bit \n\t*/\n\tis32bit = (src->format->BitsPerPixel == 32);\n\tif ((is32bit) || (src->format->BitsPerPixel == 8)) {\n\t\t/*\n\t\t* Use source surface 'as is' \n\t\t*/\n\t\trz_src = src;\n\t\tsrc_converted = 0;\n\t} else {\n\t\t/*\n\t\t* New source surface is 32bit with a defined RGBA ordering \n\t\t*/\n\t\trz_src = SDL_CreateRGBSurface(SDL_SWSURFACE, src->w, src->h, 32, \n#if SDL_BYTEORDER == SDL_LIL_ENDIAN\n\t\t\t0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000\n#else\n\t\t\t0xff000000,  0x00ff0000, 0x0000ff00, 0x000000ff\n#endif\n\t\t\t);\n\t\tif (rz_src==NULL) {\n\t\t\thaveError = 1;\n\t\t\tgoto exitShrinkSurface;\n\t\t}\n\n\t\tSDL_BlitSurface(src, NULL, rz_src, NULL);\n\t\tsrc_converted = 1;\n\t\tis32bit = 1;\n\t}\n\n\t/*\n\t* Lock the surface \n\t*/\n\tif (SDL_MUSTLOCK(rz_src)) {\n\t\tif (SDL_LockSurface(rz_src) < 0) {\n\t\t\thaveError = 1;\n\t\t\tgoto exitShrinkSurface;\n\t\t}\n\t}\n\n\t/* Get size for target */\n\tdstwidth=rz_src->w/factorx;\n\twhile (dstwidth*factorx>rz_src->w) { dstwidth--; }\n\tdstheight=rz_src->h/factory;\n\twhile (dstheight*factory>rz_src->h) { dstheight--; }\n\n\t/*\n\t* Alloc space to completely contain the shrunken surface\n\t* (with added guard rows)\n\t*/\n\tif (is32bit==1) {\n\t\t/*\n\t\t* Target surface is 32bit with source RGBA/ABGR ordering \n\t\t*/\n\t\trz_dst =\n\t\t\tSDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight + GUARD_ROWS, 32,\n\t\t\trz_src->format->Rmask, rz_src->format->Gmask,\n\t\t\trz_src->format->Bmask, rz_src->format->Amask);\n\t} else {\n\t\t/*\n\t\t* Target surface is 8bit \n\t\t*/\n\t\trz_dst = SDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight + GUARD_ROWS, 8, 0, 0, 0, 0);\n\t}\n\n\t/* Check target */\n\tif (rz_dst == NULL) {\n\t\thaveError = 1;\n\t\tgoto exitShrinkSurface;\n\t}\n\n\t/* Adjust for guard rows */\n\trz_dst->h = dstheight;\n\n\t/*\n\t* Check which kind of surface we have \n\t*/\n\tif (is32bit==1) {\n\t\t/*\n\t\t* Call the 32bit transformation routine to do the shrinking (using alpha) \n\t\t*/\n\t\tresult = _shrinkSurfaceRGBA(rz_src, rz_dst, factorx, factory);\t\t\n\t\tif ((result!=0) || (rz_dst==NULL)) {\n\t\t\thaveError = 1;\n\t\t\tgoto exitShrinkSurface;\n\t\t}\n\t} else {\n\t\t/*\n\t\t* Copy palette and colorkey info \n\t\t*/\n\t\tfor (i = 0; i < rz_src->format->palette->ncolors; i++) {\n\t\t\trz_dst->format->palette->colors[i] = rz_src->format->palette->colors[i];\n\t\t}\n\t\trz_dst->format->palette->ncolors = rz_src->format->palette->ncolors;\n\t\t/*\n\t\t* Call the 8bit transformation routine to do the shrinking \n\t\t*/\n\t\tresult = _shrinkSurfaceY(rz_src, rz_dst, factorx, factory);\n\t\tif (result!=0) {\n\t\t\thaveError = 1;\n\t\t\tgoto exitShrinkSurface;\n\t\t}\n\t}\n\nexitShrinkSurface:\n\tif (rz_src!=NULL) {\n\t\t/*\n\t\t* Unlock source surface \n\t\t*/\n\t\tif (SDL_MUSTLOCK(rz_src)) {\n\t\t\tSDL_UnlockSurface(rz_src);\n\t\t}\n\n\t\t/*\n\t\t* Cleanup temp surface \n\t\t*/\n\t\tif (src_converted==1) {\n\t\t\tSDL_FreeSurface(rz_src);\n\t\t}\n\t}\n\n\t/* Check error state; maybe need to cleanup destination */\n\tif (haveError==1) {\n\t\tif (rz_dst!=NULL) {\n\t\t\tSDL_FreeSurface(rz_dst);\n\t\t}\n\t\trz_dst=NULL;\n\t} \n\n\t/*\n\t* Return destination surface \n\t*/\n\treturn (rz_dst);\n}\n"
  },
  {
    "path": "src/b2Alias.cpp",
    "content": "// This module creates unmangled and unhidden aliases for functions and methods,\n// also the Debug Draw interface via SDL2_gfx, for use by BBC BASIC for SDL 2.0.\n// Version 2.0, (c) Richard T. Russell http://www.rtrussell.co.uk/, 06-Apr-2021\n\n#include \"Box2D.h\"\n#define VISIBLE __attribute__ ((visibility (\"default\")))\n\n// Globals:\nvoid *Renderer;\ndouble xyScale, xOffset, yOffset;\n\n// Debug draw functions:\n\nclass DebugDraw : public b2Draw { // b2Draw has all the virtual functions that we need to override here\npublic:\n    // We won't be implementing all of these, but if we don't declare them here we'll get an override error\n    void DrawSolidPolygon(const b2Vec2* vertices, int32 vertexCount, const b2Color& color);\n    void DrawPolygon(const b2Vec2* vertices, int32 vertexCount, const b2Color& color);\n    void DrawCircle(const b2Vec2& center, float32 radius, const b2Color& color);\n    void DrawSolidCircle(const b2Vec2& center, float32 radius, const b2Vec2& axis, const b2Color& color);\n    void DrawSegment(const b2Vec2& p1, const b2Vec2& p2, const b2Color& color);\n    void DrawTransform(const b2Transform& xf);\n    void DrawPoint(const b2Vec2&, float32, const b2Color&);\n};\n\nextern \"C\" {\n\nextern int _ZN7b2WorldC1ERK6b2Vec2(void*, void*) ;\nextern int _ZN13b2CircleShapeC1Ev(void*) ;\nextern int _ZN14b2PolygonShapeC1Ev(void*) ;\nextern int _ZN12b2ChainShapeC1Ev(void*) ;\nextern void _ZN6b2Body11SetUserDataEPv(void*, void*) ;\nextern void _ZN9b2Fixture11SetUserDataEPv(void*, void*) ;\nextern void _ZN7b2Joint11SetUserDataEPv(void*, void*) ;\nextern void _ZN7b2World11DestroyBodyEP6b2Body(void*, void*) ;\nextern void _ZN12b2ChainShape13SetNextVertexERK6b2Vec2(void*, void*) ;\nextern void _ZN12b2ChainShape13SetPrevVertexERK6b2Vec2(void*, void*) ;\nextern void _ZN9b2Fixture13SetFilterDataERK8b2Filter(void*, void*) ;\nextern void _ZN6b2Body14DestroyFixtureEP9b2Fixture(void*, void*) ;\nextern void _ZN6b2Body17SetLinearVelocityERK6b2Vec2(void*, void*) ;\nextern void _ZN7b2World10SetGravityERK6b2Vec2(void*, void*) ;\nextern void _ZN12b2MouseJoint9SetTargetERK6b2Vec2(void*, void*) ;\nextern void _ZN7b2World12DestroyJointEP7b2Joint(void*, void*) ;\n\n#ifdef __EMSCRIPTEN__\nextern void _ZNK15b2DistanceJoint10GetAnchorAEv(void*, void*) ;\nextern void _ZNK15b2DistanceJoint10GetAnchorBEv(void*, void*) ;\nextern void _ZNK13b2PulleyJoint10GetAnchorAEv(void*, void*) ;\nextern void _ZNK13b2PulleyJoint10GetAnchorBEv(void*, void*) ;\nextern void _ZNK11b2RopeJoint10GetAnchorAEv(void*, void*) ;\nextern void _ZNK11b2RopeJoint10GetAnchorBEv(void*, void*) ;\n#else\n// On some platforms these return a b2Vec2, on others the b2Vec2 is passed as the first parameter:\nextern long long _ZNK15b2DistanceJoint10GetAnchorAEv(void*, void*) ;\nextern long long _ZNK15b2DistanceJoint10GetAnchorBEv(void*, void*) ;\nextern long long _ZNK13b2PulleyJoint10GetAnchorAEv(void*, void*) ;\nextern long long _ZNK13b2PulleyJoint10GetAnchorBEv(void*, void*) ;\nextern long long _ZNK11b2RopeJoint10GetAnchorAEv(void*, void*) ;\nextern long long _ZNK11b2RopeJoint10GetAnchorBEv(void*, void*) ;\n#endif\n\nextern bool _ZNK6b2Body7IsAwakeEv(void*) ;\nextern bool _ZNK9b2Contact10IsTouchingEv(void*) ;\nextern int _ZNK9b2Contact14GetChildIndexAEv(void*) ;\nextern int _ZNK9b2Contact14GetChildIndexBEv(void*) ;\nextern float _ZNK6b2Body7GetMassEv(void*) ;\nextern float _ZNK6b2Body18GetAngularVelocityEv(void*) ;\nextern void* _ZNK6b2Body17GetLinearVelocityEv(void*) ;\n\nextern void* _ZN7b2World10CreateBodyEPK9b2BodyDef(void*, void*) ;\nextern void* _ZN9b2Fixture7GetBodyEv(void*) ;\nextern void* _ZN9b2Fixture8GetShapeEv(void*) ;\nextern void* _ZNK6b2Body12GetTransformEv(void*) ;\nextern void* _ZNK6b2Body11GetUserDataEv(void*) ;\nextern void* _ZNK9b2Fixture11GetUserDataEv(void*) ;\nextern void* _ZNK7b2Joint11GetUserDataEv(void*) ;\nextern void* _ZN7b2Joint8GetBodyAEv(void*) ;\nextern void* _ZN7b2Joint8GetBodyBEv(void*) ;\nextern void* _ZN7b2World14GetContactListEv(void*) ;\nextern void* _ZN6b2Body14GetContactListEv(void*) ;\nextern void* _ZN9b2Contact7GetNextEv(void*) ;\nextern void* _ZN9b2Contact11GetFixtureAEv(void*) ;\nextern void* _ZN9b2Contact11GetFixtureBEv(void*) ;\nextern void* _ZN7b2World11GetBodyListEv(void*) ;\nextern void* _ZN6b2Body7GetNextEv(void*) ;\nextern void* _ZN6b2Body13CreateFixtureEPK12b2FixtureDef(void*, void*) ;\nextern void* _ZN7b2World11CreateJointEPK10b2JointDef(void*, void*) ;\n\nextern void* _ZN6b2Body13CreateFixtureEPK7b2Shapef(void*, void*, float) ;\n\nextern void _ZN6b2Body9SetActiveEb(void*, bool) ;\nextern void _ZN6b2Body8SetAwakeEb(void*, bool) ;\nextern void _ZN6b2Body9SetBulletEb(void*, bool) ;\nextern void _ZN6b2Body16SetFixedRotationEb(void*, bool) ;\nextern void _ZN9b2Fixture9SetSensorEb(void*, bool) ;\nextern void _ZN6b2Body18SetSleepingAllowedEb(void*, bool) ;\n\nextern void _ZN16b2PrismaticJoint11EnableMotorEb(void*, bool) ;\nextern void _ZN15b2RevoluteJoint11EnableMotorEb(void*, bool) ;\nextern void _ZN12b2WheelJoint11EnableMotorEb(void*, bool) ;\n\nextern void _ZN12b2ChainShape11CreateChainEPK6b2Vec2i(void*, void*, int) ;\nextern void _ZN12b2ChainShape10CreateLoopEPK6b2Vec2i(void*, void*, int) ;\nextern void _ZN14b2PolygonShape3SetEPK6b2Vec2i(void*, void*, int) ;\n\nextern void _ZN6b2Body12SetTransformERK6b2Vec2f(void*, void*, float) ;\nextern void _ZN14b2PolygonShape8SetAsBoxEff(void*, float, float) ;\nextern void _ZN14b2PolygonShape8SetAsBoxEffRK6b2Vec2f(void*, float, float, void*, float) ;\nextern void _ZN7b2World4StepEfii(void*, float, int, int) ;\n\nextern void _ZN6b2Body10ApplyForceERK6b2Vec2S2_b(void*, void*, void*, bool) ;\nextern void _ZN6b2Body18ApplyLinearImpulseERK6b2Vec2S2_b(void*, void*, void*, bool) ;\nextern void _ZN6b2Body11ApplyTorqueEfb(void*, float, bool) ;\n\nextern void _ZN6b2Body18SetAngularVelocityEf(void*, float) ;\nextern void _ZN16b2PrismaticJoint16SetMaxMotorForceEf(void*, float) ;\nextern void _ZN15b2RevoluteJoint17SetMaxMotorTorqueEf(void*, float) ;\nextern void _ZN12b2WheelJoint17SetMaxMotorTorqueEf(void*, float) ;\nextern void _ZN16b2PrismaticJoint13SetMotorSpeedEf(void*, float) ;\nextern void _ZN15b2RevoluteJoint13SetMotorSpeedEf(void*, float) ;\nextern void _ZN12b2WheelJoint13SetMotorSpeedEf(void*, float) ;\n\nextern void _ZN18b2DistanceJointDef10InitializeEP6b2BodyS1_RK6b2Vec2S4_(void*, void*, void*, void*, void*) ;\nextern void _ZN18b2FrictionJointDef10InitializeEP6b2BodyS1_RK6b2Vec2(void*, void*, void*, void*) ;\nextern void _ZN19b2PrismaticJointDef10InitializeEP6b2BodyS1_RK6b2Vec2S4_(void*, void*, void*, void*, void*) ;\nextern void _ZN16b2PulleyJointDef10InitializeEP6b2BodyS1_RK6b2Vec2S4_S4_S4_f(void*, void*, void*, void*, void*, void*, void*, float) ;\nextern void _ZN18b2RevoluteJointDef10InitializeEP6b2BodyS1_RK6b2Vec2(void*, void*, void*, void*) ;\nextern void _ZN14b2WeldJointDef10InitializeEP6b2BodyS1_RK6b2Vec2(void*, void*, void*, void*) ;\nextern void _ZN15b2WheelJointDef10InitializeEP6b2BodyS1_RK6b2Vec2S4_(void*, void*, void*, void*, void*) ;\n\nextern void _ZN7b2World13DrawDebugDataEv(void*) ;\n\n#ifndef __EMSCRIPTEN__\nVISIBLE int b2NewWorld(void* a, void* b) { return _ZN7b2WorldC1ERK6b2Vec2(a, b); }\nVISIBLE int b2CircleShape(void* a) { return _ZN13b2CircleShapeC1Ev(a); }\nVISIBLE int b2PolygonShape(void* a) { return _ZN14b2PolygonShapeC1Ev(a); }\nVISIBLE int b2ChainShape(void* a) { return _ZN12b2ChainShapeC1Ev(a); }\nVISIBLE void b2SetUserDataB(void* a, void* b) { _ZN6b2Body11SetUserDataEPv(a, b); }\nVISIBLE void b2SetUserDataF(void* a, void* b) { _ZN9b2Fixture11SetUserDataEPv(a, b); }\nVISIBLE void b2SetUserDataJ(void* a, void* b) { _ZN7b2Joint11SetUserDataEPv(a, b); }\nVISIBLE void b2DestroyBody(void* a, void* b) { _ZN7b2World11DestroyBodyEP6b2Body(a, b); }\nVISIBLE void b2SetNextVertex(void* a, void* b) { _ZN12b2ChainShape13SetNextVertexERK6b2Vec2(a, b); }\nVISIBLE void b2SetPrevVertex(void* a, void* b) { _ZN12b2ChainShape13SetPrevVertexERK6b2Vec2(a, b); }\nVISIBLE void b2SetFilterData(void* a, void* b) { _ZN9b2Fixture13SetFilterDataERK8b2Filter(a, b); }\nVISIBLE void b2DestroyFixture(void* a, void* b) { _ZN6b2Body14DestroyFixtureEP9b2Fixture(a, b); }\nVISIBLE void b2SetLinearVelocity(void* a, void* b) { _ZN6b2Body17SetLinearVelocityERK6b2Vec2(a, b); }\nVISIBLE void b2SetGravity(void* a, void* b) { _ZN7b2World10SetGravityERK6b2Vec2(a, b); }\nVISIBLE void b2SetTarget(void* a, void* b) { _ZN12b2MouseJoint9SetTargetERK6b2Vec2(a, b); }\nVISIBLE void b2DestroyJoint(void* a, void* b) { _ZN7b2World12DestroyJointEP7b2Joint(a, b); }\n\n// On some platforms these return a b2Vec2, on others the b2Vec2 is passed as the first parameter:\nVISIBLE long long b2DistanceJointGetAnchorA(void* a, void* b) { return _ZNK15b2DistanceJoint10GetAnchorAEv(a, b); }\nVISIBLE long long b2DistanceJointGetAnchorB(void* a, void* b) { return _ZNK15b2DistanceJoint10GetAnchorBEv(a, b); }\nVISIBLE long long b2PulleyJointGetAnchorA(void* a, void* b) { return _ZNK13b2PulleyJoint10GetAnchorAEv(a, b); }\nVISIBLE long long b2PulleyJointGetAnchorB(void* a, void* b) { return _ZNK13b2PulleyJoint10GetAnchorBEv(a, b); }\nVISIBLE long long b2RopeJointGetAnchorA(void* a, void* b) { return _ZNK11b2RopeJoint10GetAnchorAEv(a, b); }\nVISIBLE long long b2RopeJointGetAnchorB(void* a, void* b) { return _ZNK11b2RopeJoint10GetAnchorBEv(a, b); }\n\nVISIBLE bool b2IsAwake(void* a) { return _ZNK6b2Body7IsAwakeEv(a); }\nVISIBLE bool b2IsTouching(void* a) { return _ZNK9b2Contact10IsTouchingEv(a); }\nVISIBLE int b2GetChildIndexA(void* a) { return _ZNK9b2Contact14GetChildIndexAEv(a); }\nVISIBLE int b2GetChildIndexB(void* a) { return _ZNK9b2Contact14GetChildIndexBEv(a); }\nVISIBLE double b2GetMass(void* a) { return _ZNK6b2Body7GetMassEv(a); }\nVISIBLE double b2GetAngularVelocity(void* a) { return _ZNK6b2Body18GetAngularVelocityEv(a); }\nVISIBLE void* b2GetLinearVelocity(void* a) { return _ZNK6b2Body17GetLinearVelocityEv(a); }\n\nVISIBLE void* b2CreateBody(void* a, void* b) { return _ZN7b2World10CreateBodyEPK9b2BodyDef(a, b); }\nVISIBLE void* b2GetBody(void* a) { return _ZN9b2Fixture7GetBodyEv(a); }\nVISIBLE void* b2GetShape(void* a) { return _ZN9b2Fixture8GetShapeEv(a); }\nVISIBLE void* b2GetTransform(void* a) { return _ZNK6b2Body12GetTransformEv(a); }\nVISIBLE void* b2GetUserDataB(void* a) { return _ZNK6b2Body11GetUserDataEv(a); }\nVISIBLE void* b2GetUserDataF(void* a) { return _ZNK9b2Fixture11GetUserDataEv(a); }\nVISIBLE void* b2GetUserDataJ(void* a) { return _ZNK7b2Joint11GetUserDataEv(a); }\nVISIBLE void* b2GetBodyA(void* a) { return _ZN7b2Joint8GetBodyAEv(a); }\nVISIBLE void* b2GetBodyB(void* a) { return _ZN7b2Joint8GetBodyBEv(a); }\nVISIBLE void* b2GetContactListW(void* a) { return _ZN7b2World14GetContactListEv(a); }\nVISIBLE void* b2GetContactListB(void* a) { return _ZN6b2Body14GetContactListEv(a); }\nVISIBLE void* b2GetNextContact(void* a) { return _ZN9b2Contact7GetNextEv(a); }\nVISIBLE void* b2GetFixtureA(void* a) { return _ZN9b2Contact11GetFixtureAEv(a); }\nVISIBLE void* b2GetFixtureB(void* a) { return _ZN9b2Contact11GetFixtureBEv(a); }\nVISIBLE void* b2GetBodyList(void* a) { return _ZN7b2World11GetBodyListEv(a); }\nVISIBLE void* b2GetNextBody(void* a) { return _ZN6b2Body7GetNextEv(a); }\nVISIBLE void* b2CreateFixtureFromDef(void* a, void* b) { return _ZN6b2Body13CreateFixtureEPK12b2FixtureDef(a, b); }\nVISIBLE void* b2CreateJoint(void* a, void* b) { return _ZN7b2World11CreateJointEPK10b2JointDef(a, b); }\n\nVISIBLE void* b2CreateFixtureFromShape(void* a, void* b, float c) { return _ZN6b2Body13CreateFixtureEPK7b2Shapef(a, b, c); }\n\nVISIBLE void b2SetActive(void* a, bool b) { _ZN6b2Body9SetActiveEb(a, b); }\nVISIBLE void b2SetAwake(void* a, bool b) { _ZN6b2Body8SetAwakeEb(a, b); }\nVISIBLE void b2SetBullet(void* a, bool b) { _ZN6b2Body9SetBulletEb(a, b); }\nVISIBLE void b2SetFixedRotation(void* a, bool b) { _ZN6b2Body16SetFixedRotationEb(a, b); }\nVISIBLE void b2SetSensor(void* a, bool b) { _ZN9b2Fixture9SetSensorEb(a, b); }\nVISIBLE void b2SetSleepingAllowed(void* a, bool b) { _ZN6b2Body18SetSleepingAllowedEb(a, b); }\n\nVISIBLE void b2EnableMotorP(void* a, bool b) { _ZN16b2PrismaticJoint11EnableMotorEb(a, b); }\nVISIBLE void b2EnableMotorR(void* a, bool b) { _ZN15b2RevoluteJoint11EnableMotorEb(a, b); }\nVISIBLE void b2EnableMotorW(void* a, bool b) { _ZN12b2WheelJoint11EnableMotorEb(a, b); }\n\nVISIBLE void b2CreateChain(void* a, void* b, int c) { _ZN12b2ChainShape11CreateChainEPK6b2Vec2i(a, b, c); }\nVISIBLE void b2CreateLoop(void* a, void* b, int c) { _ZN12b2ChainShape10CreateLoopEPK6b2Vec2i(a, b, c); }\nVISIBLE void b2SetPolygon(void* a, void* b, int c) { _ZN14b2PolygonShape3SetEPK6b2Vec2i(a, b, c); }\n\nVISIBLE void b2SetTransform(void* a, void* b, float c) { _ZN6b2Body12SetTransformERK6b2Vec2f(a, b, c); }\nVISIBLE void b2SetAsBox(void* a, float b, float c) { _ZN14b2PolygonShape8SetAsBoxEff(a, b, c); }\nVISIBLE void b2SetAsOrientedBox(void* a, float b, float c, void* d, float e) { _ZN14b2PolygonShape8SetAsBoxEffRK6b2Vec2f(a, b, c, d, e); }\nVISIBLE void b2WorldStep(void* a, float b, int c, int d) { _ZN7b2World4StepEfii(a, b, c, d); }\n\nVISIBLE void b2ApplyForce(void* a, void* b, void* c, bool d) { _ZN6b2Body10ApplyForceERK6b2Vec2S2_b(a, b, c, d); }\nVISIBLE void b2ApplyLinearImpulse(void* a, void* b, void* c, bool d) { _ZN6b2Body18ApplyLinearImpulseERK6b2Vec2S2_b(a, b, c, d); }\nVISIBLE void b2ApplyTorque(void* a, float b, bool c) { _ZN6b2Body11ApplyTorqueEfb(a, b, c); }\n\nVISIBLE void b2SetAngularVelocity(void* a, float b) { _ZN6b2Body18SetAngularVelocityEf(a, b); }\nVISIBLE void b2SetMaxMotorForceP(void* a, float b) { _ZN16b2PrismaticJoint16SetMaxMotorForceEf(a, b); }\nVISIBLE void b2SetMaxMotorTorqueR(void* a, float b) { _ZN15b2RevoluteJoint17SetMaxMotorTorqueEf(a, b); }\nVISIBLE void b2SetMaxMotorTorqueW(void* a, float b) { _ZN12b2WheelJoint17SetMaxMotorTorqueEf(a, b); }\nVISIBLE void b2SetMotorSpeedP(void* a, float b) { _ZN16b2PrismaticJoint13SetMotorSpeedEf(a, b); }\nVISIBLE void b2SetMotorSpeedR(void* a, float b) { _ZN15b2RevoluteJoint13SetMotorSpeedEf(a, b); }\nVISIBLE void b2SetMotorSpeedW(void* a, float b) { _ZN12b2WheelJoint13SetMotorSpeedEf(a, b); }\n\nVISIBLE void b2DistanceJointInit(void* a, void* b, void* c, void* d, void* e) { _ZN18b2DistanceJointDef10InitializeEP6b2BodyS1_RK6b2Vec2S4_(a, b, c, d, e); }\nVISIBLE void b2FrictionJointInit(void* a, void* b, void* c, void* d) { _ZN18b2FrictionJointDef10InitializeEP6b2BodyS1_RK6b2Vec2(a, b, c, d); }\nVISIBLE void b2PrismaticJointInit(void* a, void* b, void* c, void* d, void* e) { _ZN19b2PrismaticJointDef10InitializeEP6b2BodyS1_RK6b2Vec2S4_(a, b, c, d, e); }\nVISIBLE void b2PulleyJointInit(void* a, void* b, void* c, void* d, void* e, void* f, void* g, float h) { _ZN16b2PulleyJointDef10InitializeEP6b2BodyS1_RK6b2Vec2S4_S4_S4_f(a, b, c, d, e, f, g, h); }\nVISIBLE void b2RevoluteJointInit(void* a, void* b, void* c, void* d) { _ZN18b2RevoluteJointDef10InitializeEP6b2BodyS1_RK6b2Vec2(a, b, c, d); }\nVISIBLE void b2WeldJointInit(void* a, void* b, void* c, void* d) { _ZN14b2WeldJointDef10InitializeEP6b2BodyS1_RK6b2Vec2(a, b, c, d); }\nVISIBLE void b2WheelJointInit(void* a, void* b, void* c, void* d, void* e) { _ZN15b2WheelJointDef10InitializeEP6b2BodyS1_RK6b2Vec2S4_(a, b, c, d, e); }\n\nstatic int (*aaFilledPolygonColor)(void*, const double*, const double*, int, uint32);\n\nVISIBLE void b2DrawDebugData(void* a) { _ZN7b2World13DrawDebugDataEv(a) ; }\nVISIBLE void b2DebugInit(b2World* world, void* device, void* polygon, int flags)\n    {\n\tRenderer = device;\n\taaFilledPolygonColor = (int (*)(void*, const double*, const double*, int, uint32)) polygon;\n\tstatic DebugDraw debugdraw ;\n\tdebugdraw.SetFlags(flags) ;\n\tworld->SetDebugDraw(&debugdraw) ;\n    }\n\nVISIBLE void b2DebugMatrix(double scale, double xoff, double yoff)\n    {\n\txyScale = scale ;\n\txOffset = xoff ;\n\tyOffset = yoff ;\n    }\n\n#endif\n\n#ifdef __EMSCRIPTEN__\n#include <stdlib.h>\n#include <stdint.h>\n#include <string.h>\ntypedef size_t st ;\ntypedef double db ;\n\nlong long b2NewWorld(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return _ZN7b2WorldC1ERK6b2Vec2((void*) a, (void*) b); }\n\nlong long b2CircleShape(st a, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return _ZN13b2CircleShapeC1Ev((void*) a); }\n\nlong long b2PolygonShape(st a, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return _ZN14b2PolygonShapeC1Ev((void*) a); }\n\nlong long b2ChainShape(st a, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return _ZN12b2ChainShapeC1Ev((void*) a); }\n\nlong long b2SetUserDataB(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN6b2Body11SetUserDataEPv((void*) a, (void*) b); return 0; }\n\nlong long b2SetUserDataF(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN9b2Fixture11SetUserDataEPv((void*) a, (void*) b); return 0; }\n\nlong long b2SetUserDataJ(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN7b2Joint11SetUserDataEPv((void*) a, (void*) b); return 0; }\n\nlong long b2DestroyBody(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN7b2World11DestroyBodyEP6b2Body((void*) a, (void*) b); return 0; }\n\nlong long b2SetNextVertex(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN12b2ChainShape13SetNextVertexERK6b2Vec2((void*) a, (void*) b); return 0; }\n\nlong long b2SetPrevVertex(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN12b2ChainShape13SetPrevVertexERK6b2Vec2((void*) a, (void*) b); return 0; }\n\nlong long b2SetFilterData(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN9b2Fixture13SetFilterDataERK8b2Filter((void*) a, (void*) b); return 0; }\n\nlong long b2DestroyFixture(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN6b2Body14DestroyFixtureEP9b2Fixture((void*) a, (void*) b); return 0; }\n\nlong long b2SetLinearVelocity(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN6b2Body17SetLinearVelocityERK6b2Vec2((void*) a, (void*) b); return 0; }\n\nlong long b2SetGravity(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN7b2World10SetGravityERK6b2Vec2((void*) a, (void*) b); return 0; }\n\nlong long b2SetTarget(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN12b2MouseJoint9SetTargetERK6b2Vec2((void*) a, (void*) b); return 0; }\n\nlong long b2DestroyJoint(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN7b2World12DestroyJointEP7b2Joint((void*) a, (void*) b); return 0; }\n\nlong long b2DistanceJointGetAnchorA(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZNK15b2DistanceJoint10GetAnchorAEv((void*) a, (void*) b); return 0; }\n\nlong long b2DistanceJointGetAnchorB(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZNK15b2DistanceJoint10GetAnchorBEv((void*) a, (void*) b); return 0; }\n\nlong long b2PulleyJointGetAnchorA(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZNK13b2PulleyJoint10GetAnchorAEv((void*) a, (void*) b); return 0; }\n\nlong long b2PulleyJointGetAnchorB(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZNK13b2PulleyJoint10GetAnchorBEv((void*) a, (void*) b); return 0; }\n\nlong long b2RopeJointGetAnchorA(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZNK11b2RopeJoint10GetAnchorAEv((void*) a, (void*) b); return 0; }\n\nlong long b2RopeJointGetAnchorB(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZNK11b2RopeJoint10GetAnchorBEv((void*) a, (void*) b); return 0; }\n\nlong long b2IsAwake(st a, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return _ZNK6b2Body7IsAwakeEv((void*) a); }\n\nlong long b2IsTouching(st a, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return _ZNK9b2Contact10IsTouchingEv((void*) a); }\n\nlong long b2GetChildIndexA(st a, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return _ZNK9b2Contact14GetChildIndexAEv((void*) a); }\n\nlong long b2GetChildIndexB(st a, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return _ZNK9b2Contact14GetChildIndexBEv((void*) a); }\n\ndouble b2GetMass(st a, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return _ZNK6b2Body7GetMassEv((void*) a); }\n\ndouble b2GetAngularVelocity(st a, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return _ZNK6b2Body18GetAngularVelocityEv((void*) a); }\n\nlong long b2GetLinearVelocity(st a, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) _ZNK6b2Body17GetLinearVelocityEv((void*) a); }\n\nlong long b2CreateBody(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) _ZN7b2World10CreateBodyEPK9b2BodyDef((void*) a, (void*) b); }\n\nlong long b2GetBody(st a, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) _ZN9b2Fixture7GetBodyEv((void*) a); }\n\nlong long b2GetShape(st a, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) _ZN9b2Fixture8GetShapeEv((void*) a); }\n\nlong long b2GetTransform(st a, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) _ZNK6b2Body12GetTransformEv((void*) a); }\n\nlong long b2GetUserDataB(st a, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) _ZNK6b2Body11GetUserDataEv((void*) a); }\n\nlong long b2GetUserDataF(st a, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) _ZNK9b2Fixture11GetUserDataEv((void*) a); }\n\nlong long b2GetUserDataJ(st a, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) _ZNK7b2Joint11GetUserDataEv((void*) a); }\n\nlong long b2GetBodyA(st a, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) _ZN7b2Joint8GetBodyAEv((void*) a); }\n\nlong long b2GetBodyB(st a, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) _ZN7b2Joint8GetBodyBEv((void*) a); }\n\nlong long b2GetContactListW(st a, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) _ZN7b2World14GetContactListEv((void*) a); }\n\nlong long b2GetContactListB(st a, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) _ZN6b2Body14GetContactListEv((void*) a); }\n\nlong long b2GetNextContact(st a, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) _ZN9b2Contact7GetNextEv((void*) a); }\n\nlong long b2GetFixtureA(st a, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) _ZN9b2Contact11GetFixtureAEv((void*) a); }\n\nlong long b2GetFixtureB(st a, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) _ZN9b2Contact11GetFixtureBEv((void*) a); }\n\nlong long b2GetBodyList(st a, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) _ZN7b2World11GetBodyListEv((void*) a); }\n\nlong long b2GetNextBody(st a, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) _ZN6b2Body7GetNextEv((void*) a); }\n\nlong long b2CreateFixtureFromDef(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) _ZN6b2Body13CreateFixtureEPK12b2FixtureDef((void*) a, (void*) b); }\n\nlong long b2CreateJoint(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) _ZN7b2World11CreateJointEPK10b2JointDef((void*) a, (void*) b); }\n\nlong long b2CreateFixtureFromShape(st a, st b, st c, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) _ZN6b2Body13CreateFixtureEPK7b2Shapef((void*) a, (void*) b, *(float*)&c); }\n\nlong long b2SetActive(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN6b2Body9SetActiveEb((void*) a, b); return 0; }\n\nlong long b2SetAwake(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN6b2Body8SetAwakeEb((void*) a, b); return 0; }\n\nlong long b2SetBullet(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN6b2Body9SetBulletEb((void*) a, b); return 0; }\n\nlong long b2SetFixedRotation(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN6b2Body16SetFixedRotationEb((void*) a, b); return 0; }\n\nlong long b2SetSensor(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN9b2Fixture9SetSensorEb((void*) a, b); return 0; }\n\nlong long b2SetSleepingAllowed(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN6b2Body18SetSleepingAllowedEb((void*) a, b); return 0; }\n\nlong long b2EnableMotorP(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN16b2PrismaticJoint11EnableMotorEb((void*) a, b); return 0; }\n\nlong long b2EnableMotorR(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN15b2RevoluteJoint11EnableMotorEb((void*) a, b); return 0; }\n\nlong long b2EnableMotorW(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN12b2WheelJoint11EnableMotorEb((void*) a, b); return 0; }\n\nlong long b2CreateChain(st a, st b, st c, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN12b2ChainShape11CreateChainEPK6b2Vec2i((void*) a, (void*) b, c); return 0; }\n\nlong long b2CreateLoop(st a, st b, st c, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN12b2ChainShape10CreateLoopEPK6b2Vec2i((void*) a, (void*) b, c); return 0; }\n\nlong long b2SetPolygon(st a, st b, st c, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN14b2PolygonShape3SetEPK6b2Vec2i((void*) a, (void*) b, c); return 0; }\n\nlong long b2SetTransform(st a, st b, st c, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN6b2Body12SetTransformERK6b2Vec2f((void*) a, (void*) b, *(float*)&c); return 0; }\n\nlong long b2SetAsBox(st a, st b, st c, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN14b2PolygonShape8SetAsBoxEff((void*) a, *(float*)&b, *(float*)&c); return 0; }\n\nlong long b2SetAsOrientedBox(st a, st b, st c, st d, st e, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN14b2PolygonShape8SetAsBoxEffRK6b2Vec2f((void*) a, *(float*)&b, *(float*)&c, (void*) d, *(float*)&e); return 0; }\n\nlong long b2WorldStep(st a, st b, st c, st d, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN7b2World4StepEfii((void*) a, *(float*)&b, c, d); return 0; }\n\nlong long b2ApplyForce(st a, st b, st c, st d, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN6b2Body10ApplyForceERK6b2Vec2S2_b((void*) a, (void*) b, (void*) c, d); return 0; }\n\nlong long b2ApplyLinearImpulse(st a, st b, st c, st d, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN6b2Body18ApplyLinearImpulseERK6b2Vec2S2_b((void*) a, (void*) b, (void*) c, d); return 0; }\n\nlong long b2ApplyTorque(st a, st b, st c, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN6b2Body11ApplyTorqueEfb((void*) a, *(float*)&b, c); return 0; }\n\nlong long b2SetAngularVelocity(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN6b2Body18SetAngularVelocityEf((void*) a, *(float*)&b); return 0; }\n\nlong long b2SetMaxMotorForceP(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN16b2PrismaticJoint16SetMaxMotorForceEf((void*) a, *(float*)&b); return 0; }\n\nlong long b2SetMaxMotorTorqueR(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN15b2RevoluteJoint17SetMaxMotorTorqueEf((void*) a, *(float*)&b); return 0; }\n\nlong long b2SetMaxMotorTorqueW(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN12b2WheelJoint17SetMaxMotorTorqueEf((void*) a, *(float*)&b); return 0; }\n\nlong long b2SetMotorSpeedP(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN16b2PrismaticJoint13SetMotorSpeedEf((void*) a, *(float*)&b); return 0; }\n\nlong long b2SetMotorSpeedR(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN15b2RevoluteJoint13SetMotorSpeedEf((void*) a, *(float*)&b); return 0; }\n\nlong long b2SetMotorSpeedW(st a, st b, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN12b2WheelJoint13SetMotorSpeedEf((void*) a, *(float*)&b); return 0; }\n\nlong long b2DistanceJointInit(st a, st b, st c, st d, st e, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN18b2DistanceJointDef10InitializeEP6b2BodyS1_RK6b2Vec2S4_((void*) a, (void*) b, (void*) c, (void*) d, (void*) e); return 0; }\n\nlong long b2FrictionJointInit(st a, st b, st c, st d, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN18b2FrictionJointDef10InitializeEP6b2BodyS1_RK6b2Vec2((void*) a, (void*) b, (void*) c, (void*) d); return 0; }\n\nlong long b2PrismaticJointInit(st a, st b, st c, st d, st e, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN19b2PrismaticJointDef10InitializeEP6b2BodyS1_RK6b2Vec2S4_((void*) a, (void*) b, (void*) c, (void*) d, (void*) e); return 0; }\n\nlong long b2PulleyJointInit(st a, st b, st c, st d, st e, st f, st g, st h,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN16b2PulleyJointDef10InitializeEP6b2BodyS1_RK6b2Vec2S4_S4_S4_f((void*) a, (void*) b, (void*) c, (void*) d, (void*) e, (void*) f, (void*) g, *(float*)&h); return 0; }\n\nlong long b2RevoluteJointInit(st a, st b, st c, st d, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN18b2RevoluteJointDef10InitializeEP6b2BodyS1_RK6b2Vec2((void*) a, (void*) b, (void*) c, (void*) d); return 0; }\n\nlong long b2WeldJointInit(st a, st b, st c, st d, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN14b2WeldJointDef10InitializeEP6b2BodyS1_RK6b2Vec2((void*) a, (void*) b, (void*) c, (void*) d); return 0; }\n\nlong long b2WheelJointInit(st a, st b, st c, st d, st e, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN15b2WheelJointDef10InitializeEP6b2BodyS1_RK6b2Vec2S4_((void*) a, (void*) b, (void*) c, (void*) d, (void*) e); return 0; }\n\nlong long b2DrawDebugData(st a, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ _ZN7b2World13DrawDebugDataEv((void*) a); return 0; }\n\nlong long b2DebugInit(st a, st b, st c, st d, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n    {\n\tb2World *world = (b2World*) a ;\n\tRenderer = (void*) b ;\n\tstatic DebugDraw debugdraw;\n\tdebugdraw.SetFlags(d) ;\n\tworld->SetDebugDraw(&debugdraw);\n\treturn 0 ;\n    }\n\nlong long b2DebugMatrix(st i0, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\tst i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n    {\n\txyScale = f0 ;\n\txOffset = f1 ;\n\tyOffset = f2 ;\n\treturn 0 ;\n    }\n\n#define B2NSYS 82\n#define B2POW2 128 // smallest power-of-2 >= B2NSYS\n\nstatic const char *B2name[B2NSYS] = {\n\t\"b2ApplyForce\",\n\t\"b2ApplyLinearImpulse\",\n\t\"b2ApplyTorque\",\n\t\"b2ChainShape\",\n\t\"b2CircleShape\",\n\t\"b2CreateBody\",\n\t\"b2CreateChain\",\n\t\"b2CreateFixtureFromDef\",\n\t\"b2CreateFixtureFromShape\",\n\t\"b2CreateJoint\",\n\t\"b2CreateLoop\",\n\t\"b2DebugInit\",\n\t\"b2DebugMatrix\",\n\t\"b2DestroyBody\",\n\t\"b2DestroyFixture\",\n\t\"b2DestroyJoint\",\n\t\"b2DistanceJointGetAnchorA\",\n\t\"b2DistanceJointGetAnchorB\",\n\t\"b2DistanceJointInit\",\n\t\"b2DrawDebugData\",\n\t\"b2EnableMotorP\",\n\t\"b2EnableMotorR\",\n\t\"b2EnableMotorW\",\n\t\"b2FrictionJointInit\",\n\t\"b2GetBody\",\n\t\"b2GetBodyA\",\n\t\"b2GetBodyB\",\n\t\"b2GetBodyList\",\n\t\"b2GetChildIndexA\",\n\t\"b2GetChildIndexB\",\n\t\"b2GetContactListB\",\n\t\"b2GetContactListW\",\n\t\"b2GetFixtureA\",\n\t\"b2GetFixtureB\",\n\t\"b2GetLinearVelocity\",\n\t\"b2GetNextBody\",\n\t\"b2GetNextContact\",\n\t\"b2GetShape\",\n\t\"b2GetTransform\",\n\t\"b2GetUserDataB\",\n\t\"b2GetUserDataF\",\n\t\"b2GetUserDataJ\",\n\t\"b2IsAwake\",\n\t\"b2IsTouching\",\n\t\"b2NewWorld\",\n\t\"b2PolygonShape\",\n\t\"b2PrismaticJointInit\",\n\t\"b2PulleyJointGetAnchorA\",\n\t\"b2PulleyJointGetAnchorB\",\n\t\"b2PulleyJointInit\",\n\t\"b2RevoluteJointInit\",\n\t\"b2RopeJointGetAnchorA\",\n\t\"b2RopeJointGetAnchorB\",\n\t\"b2SetActive\",\n\t\"b2SetAngularVelocity\",\n\t\"b2SetAsBox\",\n\t\"b2SetAsOrientedBox\",\n\t\"b2SetAwake\",\n\t\"b2SetBullet\",\n\t\"b2SetFilterData\",\n\t\"b2SetFixedRotation\",\n\t\"b2SetGravity\",\n\t\"b2SetLinearVelocity\",\n\t\"b2SetMaxMotorForceP\",\n\t\"b2SetMaxMotorTorqueR\",\n\t\"b2SetMaxMotorTorqueW\",\n\t\"b2SetMotorSpeedP\",\n\t\"b2SetMotorSpeedR\",\n\t\"b2SetMotorSpeedW\",\n\t\"b2SetNextVertex\",\n\t\"b2SetPolygon\",\n\t\"b2SetPrevVertex\",\n\t\"b2SetSensor\",\n\t\"b2SetSleepingAllowed\",\n\t\"b2SetTarget\",\n\t\"b2SetTransform\",\n\t\"b2SetUserDataB\",\n\t\"b2SetUserDataF\",\n\t\"b2SetUserDataJ\",\n\t\"b2WeldJointInit\",\n\t\"b2WheelJointInit\",\n\t\"b2WorldStep\"} ;\n\nstatic long long (*B2func[B2NSYS])(st, st, st, st, st, st, st, st, st, st, st, st,\n\t\t\t\tdb, db, db, db, db, db, db, db) = {\n\tb2ApplyForce,\n\tb2ApplyLinearImpulse,\n\tb2ApplyTorque,\n\tb2ChainShape,\n\tb2CircleShape,\n\tb2CreateBody,\n\tb2CreateChain,\n\tb2CreateFixtureFromDef,\n\tb2CreateFixtureFromShape,\n\tb2CreateJoint,\n\tb2CreateLoop,\n\tb2DebugInit,\n\tb2DebugMatrix,\n\tb2DestroyBody,\n\tb2DestroyFixture,\n\tb2DestroyJoint,\n\tb2DistanceJointGetAnchorA,\n\tb2DistanceJointGetAnchorB,\n\tb2DistanceJointInit,\n\tb2DrawDebugData,\n\tb2EnableMotorP,\n\tb2EnableMotorR,\n\tb2EnableMotorW,\n\tb2FrictionJointInit,\n\tb2GetBody,\n\tb2GetBodyA,\n\tb2GetBodyB,\n\tb2GetBodyList,\n\tb2GetChildIndexA,\n\tb2GetChildIndexB,\n\tb2GetContactListB,\n\tb2GetContactListW,\n\tb2GetFixtureA,\n\tb2GetFixtureB,\n\tb2GetLinearVelocity,\n\tb2GetNextBody,\n\tb2GetNextContact,\n\tb2GetShape,\n\tb2GetTransform,\n\tb2GetUserDataB,\n\tb2GetUserDataF,\n\tb2GetUserDataJ,\n\tb2IsAwake,\n\tb2IsTouching,\n\tb2NewWorld,\n\tb2PolygonShape,\n\tb2PrismaticJointInit,\n\tb2PulleyJointGetAnchorA,\n\tb2PulleyJointGetAnchorB,\n\tb2PulleyJointInit,\n\tb2RevoluteJointInit,\n\tb2RopeJointGetAnchorA,\n\tb2RopeJointGetAnchorB,\n\tb2SetActive,\n\tb2SetAngularVelocity,\n\tb2SetAsBox,\n\tb2SetAsOrientedBox,\n\tb2SetAwake,\n\tb2SetBullet,\n\tb2SetFilterData,\n\tb2SetFixedRotation,\n\tb2SetGravity,\n\tb2SetLinearVelocity,\n\tb2SetMaxMotorForceP,\n\tb2SetMaxMotorTorqueR,\n\tb2SetMaxMotorTorqueW,\n\tb2SetMotorSpeedP,\n\tb2SetMotorSpeedR,\n\tb2SetMotorSpeedW,\n\tb2SetNextVertex,\n\tb2SetPolygon,\n\tb2SetPrevVertex,\n\tb2SetSensor,\n\tb2SetSleepingAllowed,\n\tb2SetTarget,\n\tb2SetTransform,\n\tb2SetUserDataB,\n\tb2SetUserDataF,\n\tb2SetUserDataJ,\n\tb2WeldJointInit,\n\tb2WheelJointInit,\n\tb2WorldStep} ;\n\nlong long B2D_GetProcAddress(st symbol, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n    {\n\tint b = 0, h = B2POW2, r = 0 ;\n\tif (strcmp((const char *)symbol, \"b2GetMass\") == 0) return (intptr_t) b2GetMass ;\n\tif (strcmp((const char *)symbol, \"b2GetAngularVelocity\") == 0) return (intptr_t) b2GetAngularVelocity ;\n\tdo\n\t    {\n\t\th /= 2 ;\n\t\tif (((b + h) < B2NSYS) && ((r = strcmp ((const char*) symbol, B2name[b + h])) >= 0))\n\t\t\tb += h ;\n\t    }\n\twhile (h) ;\n\tif (r == 0) return (intptr_t) B2func[b] ;\n\treturn 0 ;\n    }\n\nint aaFilledPolygonColor(void*, const double*, const double*, int, uint32);\n#endif \n}\n\nstatic uint32 abgr(const b2Color& color)\n{\n\tuint8 r = color.r * 255;\n\tuint8 g = color.g * 255;\n\tuint8 b = color.b * 255;\n\tuint8 a = color.a * 224;\n\treturn (a << 24) | (b << 16) | (g << 8) | r;\n}\n\nvoid DebugDraw::DrawSegment(const b2Vec2& p1, const b2Vec2& p2, const b2Color& color)\n{\n\tdouble xv[4], yv[4] ;\n\tdouble x1 = xOffset + xyScale * p1.x, y1 = yOffset - xyScale * p1.y ;\n\tdouble x2 = xOffset + xyScale * p2.x, y2 = yOffset - xyScale * p2.y ;\n\tdouble dx = x2 - x1, dy = y2 - y1 ;\n\tdouble d = 0.75 / sqrt(dx*dx + dy*dy) ; // line thickness 1.5 pixels\n\tdx *= d ; dy *= d ;\n\txv[0] = x1 + dy ; yv[0] = y1 - dx ;\n\txv[1] = x1 - dy ; yv[1] = y1 + dx ;\n\txv[2] = x2 - dy ; yv[2] = y2 + dx ;\n\txv[3] = x2 + dy ; yv[3] = y2 - dx ;\n\taaFilledPolygonColor(Renderer, xv, yv, 4, abgr(color));\n}\n\nvoid DebugDraw::DrawSolidPolygon(const b2Vec2* vertices, int32 vertexCount, const b2Color& color)\n{\n\tdouble *xv = (double *)malloc(vertexCount * sizeof(double));\n\tdouble *yv = (double *)malloc(vertexCount * sizeof(double));\n\tfor (int i = 0; i < vertexCount; i++)\n\t    {\n\t\txv[i] = xOffset + vertices[i].x * xyScale ;\n\t\tyv[i] = yOffset - vertices[i].y * xyScale ;\n\t    }\n\taaFilledPolygonColor(Renderer, xv, yv, vertexCount, abgr(color));\n\tfree(xv) ;\n\tfree(yv) ;\n}\n\nvoid DebugDraw::DrawSolidCircle(const b2Vec2& center, float32 radius, const b2Vec2& axis, const b2Color& color)\n{\n\tb2Color grey = {0.5, 0.5, 0.5, 1.0} ;\n\tb2Vec2 spoke = {center.x + axis.x * radius, center.y + axis.y * radius} ;\n\tint nverts = xyScale * radius + 3.0 ;\n\tif (nverts > 90) nverts = 90 ;\n\tdouble *xv = (double *)malloc(nverts * sizeof(double));\n\tdouble *yv = (double *)malloc(nverts * sizeof(double));\n\tfor (int i = 0; i < nverts; i++)\n\t    {\n\t\tdouble angle = 2.0 * 3.141592654 * (double) i / (double) nverts ; \n\t\txv[i] = xOffset + xyScale * (center.x + radius * cos(angle));\n\t\tyv[i] = yOffset - xyScale * (center.y + radius * sin(angle));\n\t    }\n\taaFilledPolygonColor(Renderer, xv, yv, nverts, abgr(color));\n\tDebugDraw::DrawSegment(center, spoke, grey) ;\n\tfree(xv) ;\n\tfree(yv) ;\n}\n\nvoid DebugDraw::DrawPolygon(const b2Vec2* vertices, int32 vertexCount, const b2Color& color)\n{\n\tfor (int i = 0; i < vertexCount; i++)\n\t\tDebugDraw::DrawSegment(vertices[i], vertices[(i + 1) % vertexCount], color) ;\n}\n\nvoid DebugDraw::DrawCircle(const b2Vec2& center, float32 radius, const b2Color& color) {}\nvoid DebugDraw::DrawTransform(const b2Transform& xf) {}\nvoid DebugDraw::DrawPoint(const b2Vec2&, float32, const b2Color&) {}\n\n"
  },
  {
    "path": "src/bbasmb_arm_32.c",
    "content": "/*****************************************************************\\\n*       32-bit BBC BASIC Interpreter                              *\n*       (c) 2018-2021  R.T.Russell  http://www.rtrussell.co.uk/   *\n*                                                                 *\n*       bbasmb.c: Simple ARM 4 assembler                          *\n*       Version 1.24a, 12-Jul-2021                                *\n\\*****************************************************************/\n\n#include <stdlib.h>\n#include <stdio.h>\n#include <unistd.h>\n#include <ctype.h>\n#include <string.h>\n#include \"BBC.h\"\n\n#ifndef __WINDOWS__\n#define stricmp strcasecmp\n#define strnicmp strncasecmp\n#endif\n\n#if defined(__x86_64__) || defined(__aarch64__)\n#define OC ((unsigned int) stavar[15] + (void *)((long long) stavar[13] << 32)) \n#define PC ((unsigned int) stavar[16] + (void *)((long long) stavar[17] << 32)) \n#else\n#define OC (void *) stavar[15]\n#define PC (void *) stavar[16]\n#endif\n\n// External routines:\nvoid newlin (void) ;\nvoid *getput (unsigned char *) ;\nvoid error (int, const char *) ;\nvoid token (signed char) ;\nvoid text (const char*) ;\nvoid crlf (void) ;\nvoid comma (void) ;\nvoid spaces (int) ;\nint range0 (char) ;\nsigned char nxt (void) ;\n\nlong long itemi (void) ;\nlong long expri (void) ;\nVAR expr (void) ;\nVAR exprs (void) ;\nVAR loadn (void *, unsigned char) ;\nvoid storen (VAR, void *, unsigned char) ;\n\n// Routines in bbcmos.c:\nvoid *sysadr (char *) ;\nunsigned char osrdch (void) ;\nvoid oswrch (unsigned char) ;\nint oskey (int) ;\nvoid osline (char *) ;\nint osopen (int, char *) ;\nvoid osshut (int) ;\nunsigned char osbget (int, int *) ;\nvoid osbput (int, unsigned char) ;\nlong long getptr (int) ;\nvoid setptr (int, long long) ;\nlong long getext (int) ;\nvoid oscli (char *) ;\nint osbyte (int, int) ;\nvoid osword (int, void *) ;\n\nstatic char *mnemonics[] = {\n\t\t\"adc\", \"add\", \"adr\", \"align\", \"and\", \"bic\", \"blx\", \"bl\", \"bx\", \"b\", \"clz\",\n\t\t\"cmn\", \"cmp\", \"db\", \"dcb\", \"dcd\", \"dcs\", \"dcw\", \"eor\", \"equb\", \"equd\", \"equq\",\n\t\t\"equs\", \"equw\", \"ldm\", \"ldr\", \"mla\", \"mov\", \"mrs\", \"msr\", \"mul\", \"mvn\",\n\t\t\"nop\", \"opt\", \"orr\", \"pop\", \"push\", \"rsb\", \"rsc\", \"sbc\", \"smlal\", \"smull\",\n\t\t\"stm\", \"str\", \"sub\", \"swi\", \"swp\", \"swpb\", \"teq\", \"tst\", \"umlal\", \"umull\" } ;\n\nstatic unsigned char opcodes[] = {\n\t\t0x0A, 0x08, 0x00, 0xFF, 0x00, 0x1C, 0x12, 0xB0, 0x12, 0xA0, 0x16,\n\t\t0x17, 0x15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0xFF, 0xFF, 0xFF,\n\t\t0xFF, 0xFF, 0x81, 0x01, 0x02, 0x1A, 0x10, 0x12, 0x00, 0x1E,\n\t\t0x1A, 0xFF, 0x18, 0x8B, 0x92, 0x06, 0x0E, 0x0C, 0x0E, 0x0C,\n\t\t0x80, 0x00, 0x04, 0xF0, 0x10, 0x10, 0x13, 0x11, 0x0A, 0x08 } ;\n\nenum {\t\tADC, ADD, ADR, ALIGN, AND, BIC, BLX, BL, BX, B, CLZ,\n\t\tCMN, CMP, DB, DCB, DCD, DCS, DCW, EOR, EQUB, EQUD, EQUQ,\n\t\tEQUS, EQUW, LDM, LDR, MLA, MOV, MRS, MSR, MUL, MVN,\n\t\tNOP, OPT, ORR, POP, PUSH, RSB, RSC, SBC, SMLAL, SMULL,\n\t\tSTM, STr, SUB, SWI, SWP, SWPB, TEQ, TST, UMLAL, UMULL } ;\n\nstatic char *conditions[] = {\n\t\t\"al\", \"cc\", \"cs\", \"eq\", \"ge\", \"gt\", \"hi\", \"hs\",\n\t\t\"le\", \"lo\", \"ls\", \"lt\", \"mi\", \"ne\", \"pl\", \"vc\", \"vs\" } ;\n\nstatic char *collisions[] = { \"e\", \"o\", \"s\", \"t\" } ;\n\nstatic unsigned char ccodes[] = {\n\t\t0b1110, 0b0011, 0b0010, 0b0000, 0b1010, 0b1100, 0b1000, 0b0010,\n\t\t0b1101, 0b0011, 0b1001, 0b1011, 0b0100, 0b0001, 0b0101, 0b0111, 0b0110 } ;\n\nstatic char *suffices[] = { \"bt\", \"b\", \"d\", \"h\", \"sb\", \"sh\", \"t\" } ;\n\nstatic char *stackops[] = { \"da\", \"ia\", \"db\", \"ib\", \"fa\", \"fd\", \"ea\", \"ed\" } ;\n\nstatic char *registers[] = {\n\t\t\"lr\", \"pc\", \"r0\", \"r10\", \"r11\", \"r12\", \"r13\", \"r14\", \"r15\", \"r1\", \n\t\t\"r2\", \"r3\", \"r4\", \"r5\", \"r6\", \"r7\", \"r8\", \"r9\", \"sp\" } ;\n\nstatic unsigned char regno[] = {\n\t\t14, 15, 0, 10, 11, 12, 13, 14, 15, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13 } ;\n\nstatic char *shifts[] = { \"lsl\", \"lsr\", \"asr\", \"ror\", \"rrx\", \"asl\" } ;\n\nstatic char *oslist[] = {\n\t\t\"osrdch\", \"oswrch\", \"oskey\", \"osline\", \"oscli\", \"osopen\", \"osbyte\", \"osword\",\n\t\t\"osshut\", \"osbget\", \"osbput\", \"getptr\", \"setptr\", \"getext\" } ;\n\nstatic void *osfunc[] = {\n\t\tosrdch, oswrch, oskey, osline, oscli, osopen, osbyte, osword, \n\t\tosshut, osbget, osbput, getptr, setptr, getext } ;\n\nstatic int lookup (char **arr, int num)\n{\n\tint i, n ;\n\tfor (i = 0; i < num; i++)\n\t    {\n\t\tn = strlen (*(arr + i)) ;\n\t\tif (strnicmp ((const char *)esi, *(arr + i), n) == 0)\n\t\t\tbreak ;\n\t    }\n\tif (i >= num)\n\t\treturn -1 ;\n\tesi += n ;\n\treturn i ;\n}\n\nstatic unsigned char reg (void)\n{\n\tint i ;\n\tnxt () ;\n\ti = lookup (registers, sizeof(registers) / sizeof(registers[0])) ;\n\tif (i < 0)\n\t    {\n\t\ti = itemi() ;\n\t\tif ((i < 0) || (i > 15))\n\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\treturn i ;\n\t    }\n\treturn regno[i] ;\n}\n\nstatic unsigned char shift (void)\n{\n\tint i ;\n\tnxt () ;\n\ti = lookup (shifts, sizeof(shifts) / sizeof(shifts[0])) ;\n\tif (i < 0)\n\t\terror (16, NULL) ; // 'Syntax error'\n\treturn i % 5 ;\n}\n\nstatic unsigned char stackop (int mnemonic) \n{\n\tint i = lookup (stackops, sizeof(stackops) / sizeof(stackops[0])) ;\n\tif (i < 0)\n\t\terror (16, NULL) ; // 'Syntax error'\n\tif ((mnemonic == STM) && (i >= 4))\n\t\ti ^= 3 ; // invert \n\treturn i & 3 ;\n}\n\nstatic unsigned char shiftcount (void)\n{\n\tint n = expri () ;\n\tif ((n < 0) || (n > 31))\n\t\terror (16, NULL) ; // 'Syntax error'\n\treturn n ;\n}\n\nstatic int immrot (unsigned int n) \n{\n\tint rotate = 0 ;\n\twhile (n > 255)\n\t    {\n\t\tn = (n << 2) | ((n & 0xC0000000) >> 30) ;\n\t\trotate += 1 ;\n\t\tif (rotate >= 16)\n\t\t    {\n\t\t\tif ((liston & BIT5) == 0)\n\t\t\t\tbreak ;\n\t\t\terror (2, NULL) ; // 'Bad immediate constant'\n\t\t    }\n\t    }\n\treturn n | (rotate << 8) ;\n}\n\nstatic int reglist (void) \n{\n\tint temp = 0 ;\n\tif (nxt () != '{')\n\t\terror (16, NULL) ; // 'Syntax error'\n\tdo\n\t    {\n\t\tunsigned char tmp ;\n\t\tesi++ ;\n\t\ttmp = reg () ;\n\t\ttemp |= 1 << tmp ;\n\t\tif (nxt () == '-')\n\t\t    {\n\t\t\tunsigned char last ;\n\t\t\tesi++ ;\n\t\t\tlast = reg () ;\n\t\t\twhile (++tmp <= last)\n\t\t\t\ttemp |= 1 << tmp ;\n\t\t    }\n\t    }\n\twhile (nxt () == ',') ;\n\tif (*esi != '}')\n\t\terror (16, NULL) ; // 'Syntax error'\n\tesi++ ;\n\treturn temp ;\n}\n\nstatic int shifter_operand (void)\n{\n\tint bits, temp ;\n\tif (nxt () == '#')\n\t    {\n\t\tesi++ ;\n\t\treturn immrot (expri ()) | 0x2000000 ;\n\t    }\n\tbits = reg () ;\n\tif (nxt () != ',')\n\t\treturn bits ;\n\tesi++ ; // bump past comma\n\ttemp = shift () ;\n\tif (temp == 4)\n\t\treturn bits | 0x60 ; // RRX\n\tbits |= temp << 5 ;\n\tif (nxt () == '#')\n\t    {\n\t\tesi++ ;\n\t\treturn bits | shiftcount () << 7 ;\n\t    }\n\treturn bits | (reg () << 8) | BIT4 ;\n}\n\nstatic int offset (unsigned char *pimm, unsigned char *pplus)\n{\n\t*pimm = 0 ;\n\t*pplus = 1 ;\n\n\tif (nxt () == '#')\n\t    {\n\t\tesi++ ;\n\t\t*pimm = 1 ;\n\t    }\n\n\tif (nxt () == '+')\n\t\tesi++ ;\n\telse if (*esi == '-')\n\t    {\n\t\tesi++ ;\n\t\t*pplus = 0 ;\n\t    }\n\n\tif (*pimm)\n\t\treturn expri () ;\n\treturn reg () ;\n}\n\nstatic void tabit (int x)\n{\n\tif (vcount == x) \n\t\treturn ;\n\tif (vcount > x)\n\t\tcrlf () ;\n\tspaces (x - vcount) ;\n}\n\nstatic void poke (void *p, int n) \n{\n\tchar *d ;\n\tif (liston & BIT6)\n\t    {\n\t\td = OC ;\n\t\tstavar[15] += n ;\n\t    }\n\telse\n\t\td = PC ;\n\n\tstavar[16] += n ;\n\tmemcpy (d, p, n) ;\n}\n\nstatic void *align (void)\n{\n\twhile (stavar[16] & 3)\n\t    {\n\t\tstavar[16]++ ;\n\t\tif (liston & BIT6)\n\t\t\tstavar[15]++ ;\n\t    } ;\n\treturn PC ;\n}\n\nvoid assemble (void)\n{\n\tsigned char al ;\n\tsigned char *oldesi = esi ;\n\tint init = 1 ;\n\tvoid *oldpc = PC ;\n\n\twhile (1)\n\t    {\n\t\tint mnemonic, condition, instruction = 0 ;\n\t\tunsigned char ccode ;\n\n\t\tif (liston & BIT7)\n\t\t    {\n\t\t\tint tmp ;\n\t\t\tif (liston & BIT6)\n\t\t\t\ttmp = stavar[15] ;\n\t\t\telse\n\t\t\t\ttmp = stavar[16] ;\n\t\t\tif (tmp >= stavar[12])\n\t\t\t\terror (8, NULL) ; // 'Address out of range'\n\t\t    }\n\n\t\tal = nxt () ;\n\t\tesi++ ;\n\n\t\tswitch (al) \n\t\t    {\n\t\t\tcase 0:\n\t\t\t\tesi-- ;\n\t\t\t\tliston = (liston & 0x0F) | 0x30 ;\n\t\t\t\treturn ;\n\n\t\t\tcase ']':\n\t\t\t\tliston = (liston & 0x0F) | 0x30 ;\n\t\t\t\treturn ;\n\n\t\t\tcase 0x0D:\n\t\t\t\tnewlin () ;\n\t\t\t\tif (*esi == 0x0D)\n\t\t\t\t\tbreak ;\n\t\t\tcase ':':\n\t\t\t\tif (liston & BIT4)\n\t\t\t\t    {\n\t\t\t\t\tvoid *p ;\n\t\t\t\t\tint n = PC - oldpc ;\n\t\t\t\t\tif (liston & BIT6)\n\t\t\t\t\t\tp = OC - n ;\n\t\t\t\t\telse\n\t\t\t\t\t\tp = PC - n ;\n\n\t\t\t\t\tdo\n\t\t\t\t\t    {\n\t\t\t\t\t\tunsigned int i = *(unsigned int *)p ;\n#if (defined (_WIN32)) && (__GNUC__ < 9)\n\t\t\t\t\t\tsprintf (accs, \"%08I64X \", (long long) (size_t) oldpc) ;\n#else\n\t\t\t\t\t\tsprintf (accs, \"%08llX \", (long long) (size_t) oldpc) ;\n#endif\n\t\t\t\t\t\tswitch (n)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tcase 0: break ;\n\t\t\t\t\t\t\tcase 1:\ti &= 0xFF ;\n\t\t\t\t\t\t\tcase 2: i &= 0xFFFF ;\n\t\t\t\t\t\t\tcase 3: i &= 0xFFFFFF ;\n\t\t\t\t\t\t\tcase 4: sprintf (accs + 9, \"%0*X \", n*2, i) ;\n\t\t\t\t\t\t\t\tbreak ;\n\t\t\t\t\t\t\tdefault: sprintf (accs + 9, \"%08X \", i) ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\tif (n > 4)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tn -= 4 ;\n\t\t\t\t\t\t\tp += 4 ;\n\t\t\t\t\t\t\toldpc += 4 ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\telse \n\t\t\t\t\t\t\tn = 0 ;\n\n\t\t\t\t\t\ttext (accs) ;\n\n\t\t\t\t\t\tif (*oldesi == '.')\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\ttabit (18) ;\n\t\t\t\t\t\t\tdo\t\n\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\ttoken (*oldesi++ ) ;\n\t\t\t\t\t\t\t    }\n\t\t\t\t\t\t\twhile (range0(*oldesi)) ;\n\t\t\t\t\t\t\twhile (*oldesi == ' ') oldesi++ ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\ttabit (30) ;\n\t\t\t\t\t\twhile ((*oldesi != ':') && (*oldesi != 0x0D)) \n\t\t\t\t\t\t\ttoken (*oldesi++) ;\n\t\t\t\t\t\tcrlf () ;\n\t\t\t\t\t    }\n\t\t\t\t\twhile (n) ;\n\t\t\t\t    }\n\t\t\t\tnxt () ;\n#ifdef __arm__\n\t\t\t\tif ((liston & BIT6) == 0)\n\t\t\t\t\t__builtin___clear_cache (oldpc, PC) ; \n#endif\n\t\t\t\toldpc = PC ;\n\t\t\t\toldesi = esi ;\n\t\t\t\tbreak ;\n\n\t\t\tcase ';':\n\t\t\tcase TREM:\n\t\t\t\twhile ((*esi != 0x0D) && (*esi != ':')) esi++ ;\n\t\t\t\tbreak ;\n\n\t\t\tcase '.':\n\t\t\t\tif (init)\n\t\t\t\t\toldpc = align () ;\n\t\t\t\t{\n\t\t\t\tVAR v ;\n\t\t\t\tunsigned char type ;\n\t\t\t\tvoid *ptr = getput (&type) ;\n\t\t\t\tif (ptr == NULL)\n\t\t\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\t\t\tif (type >= 128)\n\t\t\t\t\terror (6, NULL) ; // 'Type mismatch'\n\t\t\t\tif ((liston & BIT5) == 0)\n\t\t\t\t    {\n\t\t\t\t\tv = loadn (ptr, type) ;\n\t\t\t\t\tif (v.i.n)\n\t\t\t\t\t\terror (3, NULL) ; // 'Multiple label'\n\t\t\t\t    }\n\t\t\t\tv.i.t = 0 ;\n\t\t\t\tv.i.n = (intptr_t) PC ;\n\t\t\t\tstoren (v, ptr, type) ;\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n\t\t\tdefault:\n\t\t\t\tesi-- ;\n\t\t\t\tmnemonic = lookup (mnemonics, sizeof(mnemonics)/sizeof(mnemonics[0])) ;\n\n\t\t\t\tcondition = lookup (conditions, \n\t\t\t\t\t\t    sizeof(conditions) / sizeof(conditions[0])) ;\n\n\t\t\t\tif ((condition == -1) && (mnemonic == BL))\n\t\t\t\t    {\n\t\t\t\t\tcondition = lookup (collisions, \n\t\t\t\t\t\t\tsizeof (collisions) / sizeof(collisions[0])) ;\n\t\t\t\t\tif (condition >= 0)\n\t\t\t\t\t    {\n\t\t\t\t\t\tmnemonic = B ;\n\t\t\t\t\t\tcondition += 8 ; // ble, blo, bls, blt\n\t\t\t\t\t    }\n\t\t\t\t    }\n\n\t\t\t\tif (condition == -1)\n\t\t\t\t\tccode = 0b1110 ;\n\t\t\t\telse\n\t\t\t\t\tccode = ccodes[condition] ;\n\n\t\t\t\tif (mnemonic != OPT)\n\t\t\t\t\tinit = 0 ;\n\n\t\t\t\tswitch (mnemonic)\n\t\t\t\t    {\n\t\t\t\t\tcase OPT:\n\t\t\t\t\t\tliston = (liston & 0x0F) | (expri () << 4) ;\n\t\t\t\t\t\tcontinue ;\n\n\t\t\t\t\tcase DB:\n\t\t\t\t\t\t{\n\t\t\t\t\t\tVAR v = expr () ;\n\t\t\t\t\t\tif (v.s.t == -1)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tif (v.s.l > 256)\n\t\t\t\t\t\t\t\terror (19, NULL) ; // 'String too long'\n\t\t\t\t\t\t\tpoke (v.s.p + zero, v.s.l) ;\n\t\t\t\t\t\t\tcontinue ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\tif (v.i.t)\n\t\t\t\t\t\t\tv.i.n = v.f ;\n\t\t\t\t\t\tpoke (&v.i.n, 1) ;\n\t\t\t\t\t\tcontinue ;\n\t\t\t\t\t\t}\n\n\t\t\t\t\tcase DCB:\n\t\t\t\t\tcase EQUB:\n\t\t\t\t\t\t{\n\t\t\t\t\t\tint n = expri () ;\n\t\t\t\t\t\tpoke (&n, 1) ;\n\t\t\t\t\t\tcontinue ; // n.b. not break\n\t\t\t\t\t\t}\n \n\t\t\t\t\tcase DCW:\n\t\t\t\t\tcase EQUW:\n\t\t\t\t\t\t{\n\t\t\t\t\t\tint n = expri () ;\n\t\t\t\t\t\tpoke (&n, 2) ;\n\t\t\t\t\t\tcontinue ; // n.b. not break\n\t\t\t\t\t\t}\n\n\t\t\t\t\tcase DCD:\n\t\t\t\t\tcase EQUD:\n\t\t\t\t\tcase EQUQ:\n\t\t\t\t\t\t{\n\t\t\t\t\t\tVAR v = expr () ;\n\t\t\t\t\t\tlong long n ;\n\t\t\t\t\t\tif (v.s.t == -1)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tsigned char *oldesi = esi ;\n\t\t\t\t\t\t\tint i ;\n\t\t\t\t\t\t\tmemcpy (accs, v.s.p + zero, v.s.l) ;\n\t\t\t\t\t\t\t*(accs + v.s.l) = 0 ;\n\t\t\t\t\t\t\tesi = (signed char *)accs ;\n\t\t\t\t\t\t\ti = lookup (oslist, sizeof(oslist) /\n\t\t\t\t\t\t\t\tsizeof(oslist[0])) ;\n\t\t\t\t\t\t\tesi = oldesi ;\n\t\t\t\t\t\t\tif (i >= 0)\n\t\t\t\t\t\t\t\tn = (size_t) osfunc[i] ;\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t \t\tn = (size_t) sysadr (accs) ;\n\t\t\t\t\t\t\tif (n == 0)\n\t\t\t\t\t\t\t\terror (51, NULL) ; // 'No such system call'\n\t\t\t\t\t\t    }\n\t\t\t\t\t\telse if (v.i.t == 0)\n\t\t\t\t\t\t\tn = v.i.n ;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tn = v.f ;\n\t\t\t\t\t\tif (mnemonic == EQUQ)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tpoke (&n, 8) ;\n\t\t\t\t\t\t\tcontinue ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\tinstruction = (int) n ;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak ;\n\n\t\t\t\t\tcase DCS:\n\t\t\t\t\tcase EQUS:\n\t\t\t\t\t\t{\n\t\t\t\t\t\tVAR v = exprs () ;\n\t\t\t\t\t\tif (v.s.l > 256)\n\t\t\t\t\t\t\terror (19, NULL) ; // 'String too long'\n\t\t\t\t\t\tpoke (v.s.p + zero, v.s.l) ;\n\t\t\t\t\t\tcontinue ;\n\t\t\t\t\t\t}\n\n\t\t\t\t\tcase NOP:\n\t\t\t\t\t\tinstruction = 0xE1A00000 ;\n\t\t\t\t\t\tbreak ;\n\n\t\t\t\t\tcase ADR:\n\t\t\t\t\t\t{\n\t\t\t\t\t\tint offpc ;\n\t\t\t\t\t\tinstruction = (ccode << 28) | reg () << 12 ;\n\t\t\t\t\t\tcomma () ;\n\t\t\t\t\t\toffpc = (void *) (size_t) expri () - PC - 8 ;\n\t\t\t\t\t\tif (offpc >= 0)\n\t\t\t\t\t\t\tinstruction |= 0x028F0000 | immrot (offpc) ;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tinstruction |= 0x024F0000 | immrot (-offpc) ;\n\t\t\t\t\t\tbreak ;\n\t\t\t\t\t\t}\t\t\t\t\t\t\n \n\t\t\t\t\tcase ADC:\n\t\t\t\t\tcase ADD:\n\t\t\t\t\tcase AND:\n\t\t\t\t\tcase BIC:\n\t\t\t\t\tcase EOR:\n\t\t\t\t\tcase ORR:\n\t\t\t\t\tcase RSB:\n\t\t\t\t\tcase RSC:\n\t\t\t\t\tcase SBC:\n\t\t\t\t\tcase SUB:\n\t\t\t\t\t\tinstruction = (ccode << 28) | (opcodes[mnemonic] << 20) ;\n\t\t\t\t\t\tif ((*esi == 's') || (*esi == 'S'))\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\t\tinstruction |= 0x100000 ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\tinstruction |= reg () << 12 ;\n\t\t\t\t\t\tcomma () ;\n\t\t\t\t\t\tinstruction |= reg () << 16 ;\n\t\t\t\t\t\tcomma () ;\n\t\t\t\t\t\tinstruction |= shifter_operand () ;\n\t\t\t\t\t\tbreak ;\n\n\t\t\t\t\tcase CMN:\n\t\t\t\t\tcase CMP:\n\t\t\t\t\tcase TEQ:\n\t\t\t\t\tcase TST:\n\t\t\t\t\t\tinstruction = (ccode << 28) | (opcodes[mnemonic] << 20) ;\n\t\t\t\t\t\tif ((*esi == 's') || (*esi == 'S'))\n\t\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\tinstruction |= reg () << 16 ;\n\t\t\t\t\t\tcomma () ;\n\t\t\t\t\t\tinstruction |= shifter_operand () ;\n\t\t\t\t\t\tbreak ;\n\n\t\t\t\t\tcase MOV:\n\t\t\t\t\tcase MVN:\n\t\t\t\t\t\tinstruction = (ccode << 28) | (opcodes[mnemonic] << 20) ;\n\t\t\t\t\t\tif ((*esi == 's') || (*esi == 'S'))\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\t\tinstruction |= 0x100000 ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\tinstruction |= reg () << 12 ;\n\t\t\t\t\t\tcomma () ;\n\t\t\t\t\t\tinstruction |= shifter_operand () ;\n\t\t\t\t\t\tbreak ;\n\n\t\t\t\t\tcase MUL:\n\t\t\t\t\tcase MLA:\n\t\t\t\t\t\tinstruction = (ccode << 28) | (opcodes[mnemonic] << 20) ;\n\t\t\t\t\t\tif ((*esi == 's') || (*esi == 'S'))\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\t\tinstruction |= 0x100000 ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\tinstruction |= reg () << 16 ;\n\t\t\t\t\t\tcomma () ;\n\t\t\t\t\t\tinstruction |= reg () | 0x90 ;\n\t\t\t\t\t\tcomma () ;\n\t\t\t\t\t\tinstruction |= reg () << 8 ;\n\t\t\t\t\t\tif (mnemonic == MLA)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tcomma () ;\n\t\t\t\t\t\t\tinstruction |= reg () << 12 ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\tbreak ;\n\n\t\t\t\t\tcase SMLAL:\n\t\t\t\t\tcase SMULL:\n\t\t\t\t\tcase UMLAL:\n\t\t\t\t\tcase UMULL:\n\t\t\t\t\t\tinstruction = (ccode << 28) | (opcodes[mnemonic] << 20) ;\n\t\t\t\t\t\tif ((*esi == 's') || (*esi == 'S'))\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\t\tinstruction |= 0x100000 ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\tinstruction |= reg () << 12 ;\n\t\t\t\t\t\tcomma () ;\n\t\t\t\t\t\tinstruction |= reg () << 16 ;\n\t\t\t\t\t\tcomma () ;\n\t\t\t\t\t\tinstruction |= reg () | 0x90 ;\n\t\t\t\t\t\tcomma () ;\n\t\t\t\t\t\tinstruction |= reg () << 8 ;\n\t\t\t\t\t\tbreak ;\n\n\t\t\t\t\tcase B:\n\t\t\t\t\tcase BL:\n\t\t\t\t\t\t{\n\t\t\t\t\t\tint dest ;\n\t\t\t\t\t\tinstruction = (ccode << 28) | (opcodes[mnemonic] << 20) ;\n\t\t\t\t\t\tdest = ((void *) (size_t) expri () - PC - 8) >> 2 ;\n\t\t\t\t\t\tif ((dest != (dest << 8 >> 8)) && ((liston & BIT5) != 0))\n\t\t\t\t\t\t\terror (1, NULL) ; // 'Jump out of range'\n\t\t\t\t\t\tinstruction |= (dest & 0xFFFFFF) ;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak ;\n\n\t\t\t\t\tcase BX:\n\t\t\t\t\t\tinstruction = (ccode << 28) | 0x012FFF10 ;\n\t\t\t\t\t\tinstruction |= reg () ;\n\t\t\t\t\t\tbreak ;\n\n\t\t\t\t\tcase BLX:\n\t\t\t\t\t\tinstruction = (ccode << 28) | 0x012FFF30 ;\n\t\t\t\t\t\tinstruction |= reg () ;\n\t\t\t\t\t\tbreak ;\n\n\t\t\t\t\tcase LDM:\n\t\t\t\t\tcase STM:\n\t\t\t\t\t\tinstruction = (ccode << 28) | (opcodes[mnemonic] << 20) ;\n\t\t\t\t\t\tinstruction |= stackop (mnemonic) << 23 ;\n\t\t\t\t\t\tinstruction |= reg () << 16 ;\n\t\t\t\t\t\tif (nxt () == '!')\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\t\tinstruction |= 0x200000 ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\tcomma () ;\n\t\t\t\t\t\tinstruction |= reglist () ;\n\t\t\t\t\t\tbreak ;\n\n\t\t\t\t\tcase PUSH:\n\t\t\t\t\tcase POP:\n\t\t\t\t\t\tinstruction = (ccode << 28) | (opcodes[mnemonic] << 20) ;\n\t\t\t\t\t\tinstruction |= 0xD0000 | reglist () ;\n\t\t\t\t\t\tbreak ;\n\n\t\t\t\t\tcase LDR:\n\t\t\t\t\tcase STr:\n\t\t\t\t\t\t{\n\t\t\t\t\t\tint offreg = 0, suffix ;\n\t\t\t\t\t\tunsigned char imm = 1, add = 1 ;\n\t\t\t\t\t\tsuffix = lookup (suffices, sizeof(suffices) /\n\t\t\t\t\t\t\tsizeof(suffices[0])) ;\n\n\t\t\t\t\t\tinstruction = (ccode << 28) | (opcodes[mnemonic] << 20) ;\n\t\t\t\t\t\tinstruction |= reg () << 12 ;\n\t\t\t\t\t\tcomma () ;\n\n\t\t\t\t\t\tif (nxt () != '[')\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\toffreg = (void *) (size_t) expri () - PC - 8 ;\n\t\t\t\t\t\t\tif ((abs(offreg) > 0xFFF) && (liston & BIT5))\n\t\t\t\t\t\t\t\terror (8, NULL) ;\n\t\t\t\t\t\t\tif (offreg >= 0)\n\t\t\t\t\t\t\t\tinstruction |= 0x58F0000 | (offreg & 0xFFF) ;\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tinstruction |= 0x50F0000 | (-offreg & 0xFFF) ;\n\t\t\t\t\t\t\tbreak ;\n\t\t\t\t\t\t    }\n\n\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\tinstruction |= reg () << 16 ;\n\n\t\t\t\t\t\tif (nxt () == ']')\n\t\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tinstruction |= 0x1000000 ; // P bit\n\n\t\t\t\t\t\tif ((suffix < 2) || (suffix == 6))\n\t\t\t\t\t\t    { // Addressing mode 2 (nothing, BT, B, T)\n\t\t\t\t\t\t\tinstruction |= 0x4000000 ;\n\n\t\t\t\t\t\t\tif ((suffix == 0) || (suffix == 6)) // BT, T\n\t\t\t\t\t\t\t\tinstruction |= 0x200000 ; // W bit\n\n\t\t\t\t\t\t\tif ((suffix == 0) || (suffix == 1))\n\t\t\t\t\t\t\t\tinstruction |= 0x400000 ; // B bit\n\n\t\t\t\t\t\t\tif (nxt () != ',')\n\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\tinstruction |= 0x1800000 ;\n\t\t\t\t\t\t\t\tbreak ;\n\t\t\t\t\t\t\t    }\n\t\t\t\t\t\t\tesi++ ;\n\n\t\t\t\t\t\t\toffreg = offset (&imm, &add) ;\n\t\t\t\t\t\t\tif (imm)\n\t\t\t\t\t\t\t\tinstruction |= offreg & 0xFFF ;\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tinstruction |= offreg | 0x2000000 ;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (nxt () == ',')\n\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\tint n ;\n\t\t\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\t\t\tn = shift () ;\n\t\t\t\t\t\t\t\tif ((n >= 4) || (nxt () != '#'))\n\t\t\t\t\t\t\t\t\terror (16, NULL) ;\n\t\t\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\t\t\tinstruction |= n << 5 ;\n\t\t\t\t\t\t\t\tinstruction |= shiftcount () << 7 ;\n\t\t\t\t\t\t\t    }\n\t\t\t\t\t\t    }\n\t\t\t\t\t\telse\n\t\t\t\t\t\t    { // Addressing mode 3 (D, H, SB, SH) 2,3,4,5\n\n\t\t\t\t\t\t\tif ((mnemonic == LDR) && (suffix != 2))\n\t\t\t\t\t\t\t\tinstruction |= 0x100000 ; // L bit\n\t\t\t\t\t\t\tif ((suffix == 2) || (suffix == 4) || \n\t\t\t\t\t\t\t\t\t(suffix == 5))\n\t\t\t\t\t\t\t\tinstruction |= 0x40 ; // S bit\n\t\t\t\t\t\t\tif ((suffix == 3) || (suffix == 5) ||\n\t\t\t\t\t\t\t    ((mnemonic != LDR) && (suffix == 2)))\n\t\t\t\t\t\t\t\tinstruction |= 0x20 ; // H bit\n\n\t\t\t\t\t\t\tif (nxt () != ',')\n\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\tinstruction |= 0x1C00090 ;\n\t\t\t\t\t\t\t\tbreak ;\n\t\t\t\t\t\t\t    }\n\t\t\t\t\t\t\tesi++ ;\n\n\t\t\t\t\t\t\toffreg = offset (&imm, &add) ;\n\t\t\t\t\t\t\tif (imm)\n\t\t\t\t\t\t\t\tinstruction |= (offreg & 0x0F) |\n\t\t\t\t\t\t\t\t  ((offreg & 0xF0) << 4) | 0x400090 ;\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tinstruction |= offreg | 0x90 ;\n\n\t\t\t\t\t\t    }\n\n\t\t\t\t\t\tif (add) \n\t\t\t\t\t\t\tinstruction |= 0x800000 ; // U bit\n\n\t\t\t\t\t\tif ((instruction & 0x1000000) == 0) // Test P bit\n\t\t\t\t\t\t\tbreak ;\n\t\t\t\t\t\tif (nxt () != ']')\n\t\t\t\t\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\t\t\t\t\tesi++ ;\n\n\t\t\t\t\t\tif (nxt () == '!')\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\t\tinstruction |= 0x200000 ; // W bit\n\t\t\t\t\t\t    }\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak ;\n\n\t\t\t\t\tcase CLZ:\n\t\t\t\t\t\tinstruction = (ccode << 28) | (opcodes[mnemonic] << 20) ;\n\t\t\t\t\t\tinstruction |= reg () << 12 ;\n\t\t\t\t\t\tcomma () ;\n\t\t\t\t\t\tinstruction |= reg () | 0xF0F10 ;\n\t\t\t\t\t\tbreak ;\n\n\t\t\t\t\tcase SWI:\n\t\t\t\t\t\tinstruction = (ccode << 28) | (opcodes[mnemonic] << 20) ;\n\t\t\t\t\t\tinstruction |= expri () & 0xFFFFFF ;\n\t\t\t\t\t\tbreak ;\n\n\t\t\t\t\tcase SWP:\n\t\t\t\t\tcase SWPB:\n\t\t\t\t\t\tinstruction = (ccode << 28) | (opcodes[mnemonic] << 20) ;\n\t\t\t\t\t\tif (mnemonic == SWPB)\n\t\t\t\t\t\t\tinstruction |= 0x400000 ;\n\t\t\t\t\t\tinstruction |= reg () << 12 ;\n\t\t\t\t\t\tcomma () ;\n\t\t\t\t\t\tinstruction |= reg () | 0x90 ;\n\t\t\t\t\t\tcomma () ;\n\t\t\t\t\t\tif (*esi != '[')\n\t\t\t\t\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\tinstruction |= reg () << 16 ;\n\t\t\t\t\t\tif (nxt () != ']')\n\t\t\t\t\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\tbreak ;\n\n\t\t\t\t\tcase ALIGN:\n\t\t\t\t\t\toldpc = align () ;\n\t\t\t\t\t\tif ((nxt() >= '1') && (*esi <= '9'))\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tint n = expri () ;\n\t\t\t\t\t\t\tif ((n & (n - 1)) || (n & 0xFFFFFF03) || (n == 0))\n\t\t\t\t\t\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\t\t\t\t\t\tinstruction = 0xE1A00000 ;\n\t\t\t\t\t\t\twhile (stavar[16] & (n - 1))\n\t\t\t\t\t\t\t\tpoke (&instruction, 4) ; \n\t\t\t\t\t\t    }\n\t\t\t\t\t\tcontinue ;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\t\t\t    }\n\n\t\t\t\toldpc = align () ;\n\n\t\t\t\tpoke (&instruction, 4) ;\n\t\t    }\n\t    } ;\n}\n"
  },
  {
    "path": "src/bbasmb_arm_64.c",
    "content": "/*****************************************************************\\\n*       32-bit BBC BASIC Interpreter                              *\n*       (c) 2018-2020  R.T.Russell  http://www.rtrussell.co.uk/   *\n*       (c) 2021       Simon Willcocks simon.willcocks@gmx.de     *\n*                                                                 *\n*       bbasmb_arm_64.c: Simple ARM 4 assembler                   *\n*       Version 0.01, 27 May 2021                                 *\n*       Version 0.02, 12 Jul 2021                                 *\n*       Version 0.03, 08 Nov 2021                                 *\n*       Version 0.04, 06 Dec 2022                                 *\n\\*****************************************************************/\n\n#include <stdlib.h>\n#include <stdio.h>\n#include <unistd.h>\n#include <ctype.h>\n#include <string.h>\n#include \"BBC.h\"\n\n#ifdef __APPLE__\n#include <libkern/OSCacheControl.h>\n#endif\n\n#ifndef __WINDOWS__\n#define stricmp strcasecmp\n#define strnicmp strncasecmp\n#endif\n\n#if defined(__x86_64__) || defined(__aarch64__)\n#define OC ((unsigned int) stavar[15] + (void *)((long long) stavar[13] << 32)) \n#define PC ((unsigned int) stavar[16] + (void *)((long long) stavar[17] << 32)) \n#else\n#define OC (void *) stavar[15]\n#define PC (void *) stavar[16]\n#endif\n\n// External routines:\nvoid newlin (void) ;\nvoid *getput (unsigned char *) ;\nvoid error (int, const char *) ;\nvoid token (signed char) ;\nvoid text (const char*) ;\nvoid crlf (void) ;\nvoid comma (void) ;\nvoid spaces (int) ;\nint range0 (char) ;\nsigned char nxt (void) ;\n\nlong long itemi (void) ;\nlong long expri (void) ;\nVAR expr (void) ;\nVAR exprs (void) ;\nVAR loadn (void *, unsigned char) ;\nvoid storen (VAR, void *, unsigned char) ;\n\n// Routines in bbcmos.c:\nvoid *sysadr (char *) ;\nunsigned char osrdch (void) ;\nvoid oswrch (unsigned char) ;\nint oskey (int) ;\nvoid osline (char *) ;\nint osopen (int, char *) ;\nvoid osshut (int) ;\nunsigned char osbget (int, int *) ;\nvoid osbput (int, unsigned char) ;\nlong long getptr (int) ;\nvoid setptr (int, long long) ;\nlong long getext (int) ;\nvoid oscli (char *) ;\nint osbyte (int, int) ;\nvoid osword (int, void *) ;\n\n// Like comma:\nstatic void hash (void)\n{\n    if ('#' != nxt ())\n        error (16, \"Missing #\") ;\n    esi++ ;\n}\n\nstatic void open_square (void)\n{\n    if ('[' != nxt ())\n        error (16, \"Missing [\") ;\n    esi++ ;\n}\n\n// Register code: bits 0-4: Number 0-31, bits 5,6: size 32 or 64 bits, bit 7: set if ZR\n\n#define REGISTER_IS_ZERO        0x80\n\nstatic inline int reg_size( unsigned reg )\n{\n    return reg & 0x60;\n}\n\n// Registers can be 64-bit Xnn, XZR, SP, LR, or 32-bit Wnn, WZR, \nstatic unsigned char reg (void)\n{\n    nxt () ;\n\n    if (strnicmp ((const char *)esi, \"LR\", 2) == 0) {\n        esi += 2;\n        return 30 | 64;\n    }\n    if (strnicmp ((const char *)esi, \"SP\", 2) == 0) {\n        esi += 2;\n        return 31 | 64;\n    }\n    if (strnicmp ((const char *)esi, \"WSP\", 3) == 0) {\n        esi += 3;\n        return 31 | 32;\n    }\n    if (strnicmp ((const char *)esi, \"XZR\", 3) == 0) {\n        esi += 3;\n        return 31 | REGISTER_IS_ZERO | 64;\n    }\n    if (strnicmp ((const char *)esi, \"WZR\", 3) == 0) {\n        esi += 3;\n        return 31 | REGISTER_IS_ZERO | 32;\n    }\n\n    unsigned result = (esi[0] == 'x' || esi[0] == 'X') ? 64:32;\n\n    if (esi[0] == 'x' || esi[0] == 'X'\n     || esi[0] == 'w' || esi[0] == 'W')\n    {\n        unsigned char digit = esi[1] - '0';\n        unsigned register_number = digit;\n\n        if (digit < 10)\n            {\n            digit = esi[2] - '0';\n\n            if (digit < 10)\n                {\n                register_number = register_number * 10 + digit;\n                esi += 3;\n                }\n            else\n                esi += 2;\n            }\n\n        if (register_number <= 30) // Number 31 is either SP or ZR\n            {\n                return result | register_number;\n            }\n    }\n\n    error ( 16, \"Bad register\" );\n\n    return 0;\n}\n\nstatic inline void optional_zero_offset (void)\n{\n    if (',' == nxt())\n        {\n        comma () ;\n        hash () ;\n        int imm = expri () ;\n        if (imm != 0)\n            error( 16, \"If an offset is present, it must be 0\" ) ;\n        }\n}\n\nstatic inline void close_square (void)\n{\n    if (']' != nxt ())\n        error (16, \"Missing ]\") ;\n    esi++ ;\n}\n\nstatic inline void assembler_error (void)\n{\n    error( 16, \"Something went wrong in the assembler, sorry\" ) ;\n}\n\nstatic int is_sp( unsigned r )\n{\n    return ((r & 0x1f) == 31) && 0 == (r & REGISTER_IS_ZERO);\n}\n\nstatic int is_zero( unsigned r )\n{\n    return ((r & 0x1f) == 31) && 0 != (r & REGISTER_IS_ZERO);\n}\n\n// Mnemonics in here from the ARM documentation in UPPER case, assembler instructions in lower case\n// They are listed in alphabetical order, which lookup relies on to avoid matching MOV before MOVK.\nstatic char *mnemonics[] = {\n\"ABS\", \"ADC\", \"ADCS\", \"ADD\", \"ADDHN\", \"ADDHN2\", \"ADDP\", \"ADDS\",\n\"ADDV\", \"ADR\", \"ADRP\", \"AESD\", \"AESE\", \"AESIMC\", \"AESMC\", \"align\",\n\"AND\", \"ANDS\", \"ASR\", \"ASRV\", \"AT\", \"AUTDA\", \"AUTDB\", \"AUTDZA\",\n\"AUTDZB\", \"AUTIA\", \"AUTIA1716\", \"AUTIASP\", \"AUTIAZ\", \"AUTIB\", \"AUTIB1716\", \"AUTIBSP\",\n\"AUTIBZ\", \"AUTIZA\", \"AUTIZB\", \"B\", \"BCAX\", \"BFC\", \"BFI\",\n\"BFM\", \"BFXIL\", \"BIC\", \"BICS\", \"BIF\", \"BIT\", \"BL\", \"BLR\",\n\"BLRAA\", \"BLRAAZ\", \"BLRAB\", \"BLRABZ\", \"BR\", \"BRAA\", \"BRAAZ\", \"BRAB\",\n\"BRABZ\", \"BRK\", \"BSL\", \"CAS\", \"CASA\", \"CASAB\", \"CASAH\", \"CASAL\",\n\"CASALB\", \"CASALH\", \"CASB\", \"CASH\", \"CASL\", \"CASLB\", \"CASLH\", \"CASP\",\n\"CASPA\", \"CASPAL\", \"CASPL\", \"CBNZ\", \"CBZ\", \"CCMN\", \"CCMP\", \"CINC\",\n\"CINV\", \"CLREX\", \"CLS\", \"CLZ\", \"CMEQ\", \"CMGE\", \"CMGT\", \"CMHI\",\n\"CMHS\", \"CMLE\", \"CMLT\", \"CMN\", \"CMP\", \"CMTST\", \"CNEG\", \"CNT\",\n\"CRC32B\", \"CRC32CB\", \"CRC32CH\", \"CRC32CW\", \"CRC32CX\", \"CRC32H\", \"CRC32W\", \"CRC32X\",\n\"CSEL\", \"CSET\", \"CSETM\", \"CSINC\", \"CSINV\", \"CSNEG\", \"db\", \"DC\",\n\"dcb\", \"dcd\", \"DCPS1\", \"DCPS2\", \"DCPS3\", \"dcs\", \"dcw\", \"DMB\",\n\"DRPS\", \"DSB\", \"DUP\", \"EON\", \"EOR\", \"EOR3\", \"equb\", \"equd\",\n\"equq\", \"equs\", \"equw\", \"ERET\", \"ERETAA\", \"ERETAB\", \"ESB\", \"EXT\",\n\"EXTR\", \"FABD\", \"FABS\", \"FACGE\", \"FACGT\", \"FADD\", \"FADDP\", \"FCADD\",\n\"FCCMP\", \"FCCMPE\", \"FCMEQ\", \"FCMGE\", \"FCMGT\", \"FCMLA\", \"FCMLE\", \"FCMLT\",\n\"FCMP\", \"FCMPE\", \"FCSEL\", \"FCVT\", \"FCVTAS\", \"FCVTAU\", \"FCVTL\", \"FCVTL2\",\n\"FCVTMS\", \"FCVTMU\", \"FCVTN\", \"FCVTN2\", \"FCVTNS\", \"FCVTNU\", \"FCVTPS\", \"FCVTPU\",\n\"FCVTXN\", \"FCVTXN2\", \"FCVTZS\", \"FCVTZU\", \"FDIV\", \"FJCVTZS\", \"FMADD\", \"FMAX\",\n\"FMAXNM\", \"FMAXNMP\", \"FMAXNMV\", \"FMAXP\", \"FMAXV\", \"FMIN\", \"FMINNM\", \"FMINNMP\",\n\"FMINNMV\", \"FMINP\", \"FMINV\", \"FMLA\", \"FMLAL\", \"FMLAL2\", \"FMLS\", \"FMLSL\",\n\"FMLSL2\", \"FMOV\", \"FMSUB\", \"FMUL\", \"FMULX\", \"FNEG\", \"FNMADD\", \"FNMSUB\",\n\"FNMUL\", \"FRECPE\", \"FRECPS\", \"FRECPX\", \"FRINTA\", \"FRINTI\", \"FRINTM\", \"FRINTN\",\n\"FRINTP\", \"FRINTX\", \"FRINTZ\", \"FRSQRTE\", \"FRSQRTS\", \"FSQRT\", \"FSUB\", \"HINT\",\n\"HLT\", \"HVC\", \"IC\", \"INS\", \"ISB\", \"LD1\", \"LD1R\", \"LD2\",\n\"LD2R\", \"LD3\", \"LD3R\", \"LD4\", \"LD4R\", \"LDADD\", \"LDADDA\", \"LDADDAB\",\n\"LDADDAH\", \"LDADDAL\", \"LDADDALB\", \"LDADDALH\", \"LDADDB\", \"LDADDH\", \"LDADDL\", \"LDADDLB\",\n\"LDADDLH\", \"LDAPR\", \"LDAPRB\", \"LDAPRH\", \"LDAR\", \"LDARB\", \"LDARH\", \"LDAXP\",\n\"LDAXR\", \"LDAXRB\", \"LDAXRH\", \"LDCLR\", \"LDCLRA\", \"LDCLRAB\", \"LDCLRAH\", \"LDCLRAL\",\n\"LDCLRALB\", \"LDCLRALH\", \"LDCLRB\", \"LDCLRH\", \"LDCLRL\", \"LDCLRLB\", \"LDCLRLH\", \"LDEOR\",\n\"LDEORA\", \"LDEORAB\", \"LDEORAH\", \"LDEORAL\", \"LDEORALB\", \"LDEORALH\", \"LDEORB\", \"LDEORH\",\n\"LDEORL\", \"LDEORLB\", \"LDEORLH\", \"LDLAR\", \"LDLARB\", \"LDLARH\", \"LDNP\", \"LDP\",\n\"LDPSW\", \"LDR\", \"LDRAA\", \"LDRAB\", \"LDRB\", \"LDRH\", \"LDRSB\", \"LDRSH\",\n\"LDRSW\", \"LDSET\", \"LDSETA\", \"LDSETAB\", \"LDSETAH\", \"LDSETAL\", \"LDSETALB\", \"LDSETALH\",\n\"LDSETB\", \"LDSETH\", \"LDSETL\", \"LDSETLB\", \"LDSETLH\", \"LDSMAX\", \"LDSMAXA\", \"LDSMAXAB\",\n\"LDSMAXAH\", \"LDSMAXAL\", \"LDSMAXALB\", \"LDSMAXALH\", \"LDSMAXB\", \"LDSMAXH\", \"LDSMAXL\", \"LDSMAXLB\",\n\"LDSMAXLH\", \"LDSMIN\", \"LDSMINA\", \"LDSMINAB\", \"LDSMINAH\", \"LDSMINAL\", \"LDSMINALB\", \"LDSMINALH\",\n\"LDSMINB\", \"LDSMINH\", \"LDSMINL\", \"LDSMINLB\", \"LDSMINLH\", \"LDTR\", \"LDTRB\", \"LDTRH\",\n\"LDTRSB\", \"LDTRSH\", \"LDTRSW\", \"LDUMAX\", \"LDUMAXA\", \"LDUMAXAB\", \"LDUMAXAH\", \"LDUMAXAL\",\n\"LDUMAXALB\", \"LDUMAXALH\", \"LDUMAXB\", \"LDUMAXH\", \"LDUMAXL\", \"LDUMAXLB\", \"LDUMAXLH\", \"LDUMIN\",\n\"LDUMINA\", \"LDUMINAB\", \"LDUMINAH\", \"LDUMINAL\", \"LDUMINALB\", \"LDUMINALH\", \"LDUMINB\", \"LDUMINH\",\n\"LDUMINL\", \"LDUMINLB\", \"LDUMINLH\", \"LDUR\", \"LDURB\", \"LDURH\", \"LDURSB\", \"LDURSH\",\n\"LDURSW\", \"LDXP\", \"LDXR\", \"LDXRB\", \"LDXRH\", \"LSL\", \"LSLV\", \"LSR\",\n\"LSRV\", \"MADD\", \"MLA\", \"MLS\", \"MNEG\", \"MOV\", \"MOVI\", \"MOVK\",\n\"MOVN\", \"MOVZ\", \"MRS\", \"MSR\", \"MSUB\", \"MUL\", \"MVN\", \"MVNI\",\n\"NEG\", \"NEGS\", \"NGC\", \"NGCS\", \"NOP\", \"NOT\", \"opt\", \"ORN\",\n\"ORR\", \"PACDA\", \"PACDB\", \"PACDZA\", \"PACDZB\", \"PACGA\", \"PACIA\", \"PACIA1716\",\n\"PACIASP\", \"PACIAZ\", \"PACIB\", \"PACIB1716\", \"PACIBSP\", \"PACIBZ\", \"PACIZA\", \"PACIZB\",\n\"PMUL\", \"PMULL\", \"PMULL2\", \"PRFM\", \"PSB\", \"PSBCSYNC\", \"RADDHN\", \"RADDHN2\",\n\"RAX1\", \"RBIT\", \"RET\", \"RETAA\", \"RETAB\", \"REV\", \"REV16\", \"REV32\",\n\"REV64\", \"ROR\", \"RORV\", \"RSHRN\", \"RSHRN2\", \"RSUBHN\", \"RSUBHN2\", \"SABA\",\n\"SABAL\", \"SABAL2\", \"SABD\", \"SABDL\", \"SABDL2\", \"SADALP\", \"SADDL\", \"SADDL2\",\n\"SADDLP\", \"SADDLV\", \"SADDW\", \"SADDW2\", \"SBC\", \"SBCS\", \"SBFIZ\", \"SBFM\",\n\"SBFX\", \"SCVTF\", \"SDIV\", \"SDOT\", \"SEV\", \"SEVL\", \"SHA1C\", \"SHA1H\",\n\"SHA1M\", \"SHA1P\", \"SHA1SU0\", \"SHA1SU1\", \"SHA256H\", \"SHA256H2\", \"SHA256SU0\", \"SHA256SU1\",\n\"SHA512H\", \"SHA512H2\", \"SHA512SU0\", \"SHA512SU1\", \"SHADD\", \"SHL\", \"SHLL\", \"SHLL2\",\n\"SHRN\", \"SHRN2\", \"SHSUB\", \"SLI\", \"SM3PARTW1\", \"SM3PARTW2\", \"SM3SS1\", \"SM3TT1A\",\n\"SM3TT1B\", \"SM3TT2A\", \"SM3TT2B\", \"SM4E\", \"SM4EKEY\", \"SMADDL\", \"SMAX\", \"SMAXP\",\n\"SMAXV\", \"SMC\", \"SMIN\", \"SMINP\", \"SMINV\", \"SMLAL\", \"SMLAL2\", \"SMLSL\",\n\"SMLSL2\", \"SMNEGL\", \"SMOV\", \"SMSUBL\", \"SMULH\", \"SMULL\", \"SMULL2\", \"SQABS\",\n\"SQADD\", \"SQDMLAL\", \"SQDMLAL2\", \"SQDMLSL\", \"SQDMLSL2\", \"SQDMULH\", \"SQDMULL\", \"SQDMULL2\",\n\"SQNEG\", \"SQRDMLAH\", \"SQRDMLSH\", \"SQRDMULH\", \"SQRSHL\", \"SQRSHRN\", \"SQRSHRN2\", \"SQRSHRUN\",\n\"SQRSHRUN2\", \"SQSHL\", \"SQSHLU\", \"SQSHRN\", \"SQSHRN2\", \"SQSHRUN\", \"SQSHRUN2\", \"SQSUB\",\n\"SQXTN\", \"SQXTN2\", \"SQXTUN\", \"SQXTUN2\", \"SRHADD\", \"SRI\", \"SRSHL\", \"SRSHR\",\n\"SRSRA\", \"SSHL\", \"SSHLL\", \"SSHLL2\", \"SSHR\", \"SSRA\", \"SSUBL\", \"SSUBL2\",\n\"SSUBW\", \"SSUBW2\", \"ST1\", \"ST2\", \"ST3\", \"ST4\", \"STADD\", \"STADDB\",\n\"STADDH\", \"STADDL\", \"STADDLB\", \"STADDLH\", \"STCLR\", \"STCLRB\", \"STCLRH\", \"STCLRL\",\n\"STCLRLB\", \"STCLRLH\", \"STEOR\", \"STEORB\", \"STEORH\", \"STEORL\", \"STEORLB\", \"STEORLH\",\n\"STLLR\", \"STLLRB\", \"STLLRH\", \"STLR\", \"STLRB\", \"STLRH\", \"STLXP\", \"STLXR\",\n\"STLXRB\", \"STLXRH\", \"STNP\", \"STP\", \"STR\", \"STRB\", \"STRH\", \"STSET\",\n\"STSETB\", \"STSETH\", \"STSETL\", \"STSETLB\", \"STSETLH\", \"STSMAX\", \"STSMAXB\", \"STSMAXH\",\n\"STSMAXL\", \"STSMAXLB\", \"STSMAXLH\", \"STSMIN\", \"STSMINB\", \"STSMINH\", \"STSMINL\", \"STSMINLB\",\n\"STSMINLH\", \"STTR\", \"STTRB\", \"STTRH\", \"STUMAX\", \"STUMAXB\", \"STUMAXH\", \"STUMAXL\",\n\"STUMAXLB\", \"STUMAXLH\", \"STUMIN\", \"STUMINB\", \"STUMINH\", \"STUMINL\", \"STUMINLB\", \"STUMINLH\",\n\"STUR\", \"STURB\", \"STURH\", \"STXP\", \"STXR\", \"STXRB\", \"STXRH\", \"SUB\",\n\"SUBHN\", \"SUBHN2\", \"SUBS\", \"SUQADD\", \"SVC\", \"SWP\", \"SWPA\", \"SWPAB\",\n\"SWPAH\", \"SWPAL\", \"SWPALB\", \"SWPALH\", \"SWPB\", \"SWPH\", \"SWPL\", \"SWPLB\",\n\"SWPLH\", \"SXTB\", \"SXTH\", \"SXTL\", \"SXTL2\", \"SXTW\", \"SYS\", \"SYSL\",\n\"TBL\", \"TBNZ\", \"TBX\", \"TBZ\", \"TLBI\", \"TRN1\", \"TRN2\", \"TST\",\n\"UABA\", \"UABAL\", \"UABAL2\", \"UABD\", \"UABDL\", \"UABDL2\", \"UADALP\", \"UADDL\",\n\"UADDL2\", \"UADDLP\", \"UADDLV\", \"UADDW\", \"UADDW2\", \"UBFIZ\", \"UBFM\", \"UBFX\",\n\"UCVTF\", \"UDIV\", \"UDOT\", \"UHADD\", \"UHSUB\", \"UMADDL\", \"UMAX\", \"UMAXP\",\n\"UMAXV\", \"UMIN\", \"UMINP\", \"UMINV\", \"UMLAL\", \"UMLAL2\", \"UMLSL\", \"UMLSL2\",\n\"UMNEGL\", \"UMOV\", \"UMSUBL\", \"UMULH\", \"UMULL\", \"UMULL2\", \"UQADD\", \"UQRSHL\",\n\"UQRSHRN\", \"UQRSHRN2\", \"UQSHL\", \"UQSHRN\", \"UQSHRN2\", \"UQSUB\", \"UQXTN\", \"UQXTN2\",\n\"URECPE\", \"URHADD\", \"URSHL\", \"URSHR\", \"URSQRTE\", \"URSRA\", \"USHL\", \"USHLL\",\n\"USHLL2\", \"USHR\", \"USQADD\", \"USRA\", \"USUBL\", \"USUBL2\", \"USUBW\", \"USUBW2\",\n\"UXTB\", \"UXTH\", \"UXTL\", \"UXTL2\", \"UXTW\", \"UZP1\", \"UZP2\", \"WFE\", \"WFI\",\n\"XAR\", \"XPACD\", \"XPACI\", \"XPACLRI\", \"XTN\", \"XTN2\", \"YIELD\", \"ZIP1\",\n\"ZIP2\"\n} ;\n\n// Lowercase r in STr constant because STR is declared elsewhere\nenum mnemonics {\nABS, ADC, ADCS, ADD, ADDHN, ADDHN2, ADDP, ADDS,\nADDV, ADR, ADRP, AESD, AESE, AESIMC, AESMC, ALIGN,\nAND, ANDS, ASR, ASRV, AT, AUTDA, AUTDB, AUTDZA,\nAUTDZB, AUTIA, AUTIA1716, AUTIASP, AUTIAZ, AUTIB, AUTIB1716, AUTIBSP,\nAUTIBZ, AUTIZA, AUTIZB, B, BCAX, BFC, BFI,\nBFM, BFXIL, BIC, BICS, BIF, BIT, BL, BLR,\nBLRAA, BLRAAZ, BLRAB, BLRABZ, BR, BRAA, BRAAZ, BRAB,\nBRABZ, BRK, BSL, CAS, CASA, CASAB, CASAH, CASAL,\nCASALB, CASALH, CASB, CASH, CASL, CASLB, CASLH, CASP,\nCASPA, CASPAL, CASPL, CBNZ, CBZ, CCMN, CCMP, CINC,\nCINV, CLREX, CLS, CLZ, CMEQ, CMGE, CMGT, CMHI,\nCMHS, CMLE, CMLT, CMN, CMP, CMTST, CNEG, CNT,\nCRC32B, CRC32CB, CRC32CH, CRC32CW, CRC32CX, CRC32H, CRC32W, CRC32X,\nCSEL, CSET, CSETM, CSINC, CSINV, CSNEG, DB, DC,\nDCB, DCD, DCPS1, DCPS2, DCPS3, DCS, DCW, DMB,\nDRPS, DSB, DUP, EON, EOR, EOR3, EQUB, EQUD,\nEQUQ, EQUS, EQUW, ERET, ERETAA, ERETAB, ESB, EXT,\nEXTR, FABD, FABS, FACGE, FACGT, FADD, FADDP, FCADD,\nFCCMP, FCCMPE, FCMEQ, FCMGE, FCMGT, FCMLA, FCMLE, FCMLT,\nFCMP, FCMPE, FCSEL, FCVT, FCVTAS, FCVTAU, FCVTL, FCVTL2,\nFCVTMS, FCVTMU, FCVTN, FCVTN2, FCVTNS, FCVTNU, FCVTPS, FCVTPU,\nFCVTXN, FCVTXN2, FCVTZS, FCVTZU, FDIV, FJCVTZS, FMADD, FMAX,\nFMAXNM, FMAXNMP, FMAXNMV, FMAXP, FMAXV, FMIN, FMINNM, FMINNMP,\nFMINNMV, FMINP, FMINV, FMLA, FMLAL, FMLAL2, FMLS, FMLSL,\nFMLSL2, FMOV, FMSUB, FMUL, FMULX, FNEG, FNMADD, FNMSUB,\nFNMUL, FRECPE, FRECPS, FRECPX, FRINTA, FRINTI, FRINTM, FRINTN,\nFRINTP, FRINTX, FRINTZ, FRSQRTE, FRSQRTS, FSQRT, FSUB, HINT,\nHLT, HVC, IC, INS, ISB, LD1, LD1R, LD2,\nLD2R, LD3, LD3R, LD4, LD4R, LDADD, LDADDA, LDADDAB,\nLDADDAH, LDADDAL, LDADDALB, LDADDALH, LDADDB, LDADDH, LDADDL, LDADDLB,\nLDADDLH, LDAPR, LDAPRB, LDAPRH, LDAR, LDARB, LDARH, LDAXP,\nLDAXR, LDAXRB, LDAXRH, LDCLR, LDCLRA, LDCLRAB, LDCLRAH, LDCLRAL,\nLDCLRALB, LDCLRALH, LDCLRB, LDCLRH, LDCLRL, LDCLRLB, LDCLRLH, LDEOR,\nLDEORA, LDEORAB, LDEORAH, LDEORAL, LDEORALB, LDEORALH, LDEORB, LDEORH,\nLDEORL, LDEORLB, LDEORLH, LDLAR, LDLARB, LDLARH, LDNP, LDP,\nLDPSW, LDR, LDRAA, LDRAB, LDRB, LDRH, LDRSB, LDRSH,\nLDRSW, LDSET, LDSETA, LDSETAB, LDSETAH, LDSETAL, LDSETALB, LDSETALH,\nLDSETB, LDSETH, LDSETL, LDSETLB, LDSETLH, LDSMAX, LDSMAXA, LDSMAXAB,\nLDSMAXAH, LDSMAXAL, LDSMAXALB, LDSMAXALH, LDSMAXB, LDSMAXH, LDSMAXL, LDSMAXLB,\nLDSMAXLH, LDSMIN, LDSMINA, LDSMINAB, LDSMINAH, LDSMINAL, LDSMINALB, LDSMINALH,\nLDSMINB, LDSMINH, LDSMINL, LDSMINLB, LDSMINLH, LDTR, LDTRB, LDTRH,\nLDTRSB, LDTRSH, LDTRSW, LDUMAX, LDUMAXA, LDUMAXAB, LDUMAXAH, LDUMAXAL,\nLDUMAXALB, LDUMAXALH, LDUMAXB, LDUMAXH, LDUMAXL, LDUMAXLB, LDUMAXLH, LDUMIN,\nLDUMINA, LDUMINAB, LDUMINAH, LDUMINAL, LDUMINALB, LDUMINALH, LDUMINB, LDUMINH,\nLDUMINL, LDUMINLB, LDUMINLH, LDUR, LDURB, LDURH, LDURSB, LDURSH,\nLDURSW, LDXP, LDXR, LDXRB, LDXRH, LSL, LSLV, LSR,\nLSRV, MADD, MLA, MLS, MNEG, MOV, MOVI, MOVK,\nMOVN, MOVZ, MRS, MSR, MSUB, MUL, MVN, MVNI,\nNEG, NEGS, NGC, NGCS, NOP, NOT, OPT, ORN,\nORR, PACDA, PACDB, PACDZA, PACDZB, PACGA, PACIA, PACIA1716,\nPACIASP, PACIAZ, PACIB, PACIB1716, PACIBSP, PACIBZ, PACIZA, PACIZB,\nPMUL, PMULL, PMULL2, PRFM, PSB, PSBCSYNC, RADDHN, RADDHN2,\nRAX1, RBIT, RET, RETAA, RETAB, REV, REV16, REV32,\nREV64, ROR, RORV, RSHRN, RSHRN2, RSUBHN, RSUBHN2, SABA,\nSABAL, SABAL2, SABD, SABDL, SABDL2, SADALP, SADDL, SADDL2,\nSADDLP, SADDLV, SADDW, SADDW2, SBC, SBCS, SBFIZ, SBFM,\nSBFX, SCVTF, SDIV, SDOT, SEV, SEVL, SHA1C, SHA1H,\nSHA1M, SHA1P, SHA1SU0, SHA1SU1, SHA256H, SHA256H2, SHA256SU0, SHA256SU1,\nSHA512H, SHA512H2, SHA512SU0, SHA512SU1, SHADD, SHL, SHLL, SHLL2,\nSHRN, SHRN2, SHSUB, SLI, SM3PARTW1, SM3PARTW2, SM3SS1, SM3TT1A,\nSM3TT1B, SM3TT2A, SM3TT2B, SM4E, SM4EKEY, SMADDL, SMAX, SMAXP,\nSMAXV, SMC, SMIN, SMINP, SMINV, SMLAL, SMLAL2, SMLSL,\nSMLSL2, SMNEGL, SMOV, SMSUBL, SMULH, SMULL, SMULL2, SQABS,\nSQADD, SQDMLAL, SQDMLAL2, SQDMLSL, SQDMLSL2, SQDMULH, SQDMULL, SQDMULL2,\nSQNEG, SQRDMLAH, SQRDMLSH, SQRDMULH, SQRSHL, SQRSHRN, SQRSHRN2, SQRSHRUN,\nSQRSHRUN2, SQSHL, SQSHLU, SQSHRN, SQSHRN2, SQSHRUN, SQSHRUN2, SQSUB,\nSQXTN, SQXTN2, SQXTUN, SQXTUN2, SRHADD, SRI, SRSHL, SRSHR,\nSRSRA, SSHL, SSHLL, SSHLL2, SSHR, SSRA, SSUBL, SSUBL2,\nSSUBW, SSUBW2, ST1, ST2, ST3, ST4, STADD, STADDB,\nSTADDH, STADDL, STADDLB, STADDLH, STCLR, STCLRB, STCLRH, STCLRL,\nSTCLRLB, STCLRLH, STEOR, STEORB, STEORH, STEORL, STEORLB, STEORLH,\nSTLLR, STLLRB, STLLRH, STLR, STLRB, STLRH, STLXP, STLXR,\nSTLXRB, STLXRH, STNP, STP, STr, STRB, STRH, STSET,\nSTSETB, STSETH, STSETL, STSETLB, STSETLH, STSMAX, STSMAXB, STSMAXH,\nSTSMAXL, STSMAXLB, STSMAXLH, STSMIN, STSMINB, STSMINH, STSMINL, STSMINLB,\nSTSMINLH, STTR, STTRB, STTRH, STUMAX, STUMAXB, STUMAXH, STUMAXL,\nSTUMAXLB, STUMAXLH, STUMIN, STUMINB, STUMINH, STUMINL, STUMINLB, STUMINLH,\nSTUR, STURB, STURH, STXP, STXR, STXRB, STXRH, SUB,\nSUBHN, SUBHN2, SUBS, SUQADD, SVC, SWP, SWPA, SWPAB,\nSWPAH, SWPAL, SWPALB, SWPALH, SWPB, SWPH, SWPL, SWPLB,\nSWPLH, SXTB, SXTH, SXTL, SXTL2, SXTW, SYS, SYSL,\nTBL, TBNZ, TBX, TBZ, TLBI, TRN1, TRN2, TST,\nUABA, UABAL, UABAL2, UABD, UABDL, UABDL2, UADALP, UADDL,\nUADDL2, UADDLP, UADDLV, UADDW, UADDW2, UBFIZ, UBFM, UBFX,\nUCVTF, UDIV, UDOT, UHADD, UHSUB, UMADDL, UMAX, UMAXP,\nUMAXV, UMIN, UMINP, UMINV, UMLAL, UMLAL2, UMLSL, UMLSL2,\nUMNEGL, UMOV, UMSUBL, UMULH, UMULL, UMULL2, UQADD, UQRSHL,\nUQRSHRN, UQRSHRN2, UQSHL, UQSHRN, UQSHRN2, UQSUB, UQXTN, UQXTN2,\nURECPE, URHADD, URSHL, URSHR, URSQRTE, URSRA, USHL, USHLL,\nUSHLL2, USHR, USQADD, USRA, USUBL, USUBL2, USUBW, USUBW2,\nUXTB, UXTH, UXTL, UXTL2, UXTW, UZP1, UZP2, WFE, WFI,\nXAR, XPACD, XPACI, XPACLRI, XTN, XTN2, YIELD, ZIP1,\nZIP2\n} ;\n\nstatic char *oslist[] = {\n        \"osrdch\", \"oswrch\", \"oskey\", \"osline\", \"oscli\", \"osopen\", \"osbyte\", \"osword\",\n        \"osshut\", \"osbget\", \"osbput\", \"getptr\", \"setptr\", \"getext\" } ;\n\nstatic void *osfunc[] = {\n        osrdch, oswrch, oskey, osline, oscli, osopen, osbyte, osword, \n        osshut, osbget, osbput, getptr, setptr, getext } ;\n\nstatic int lookup (char **arr, int num)\n{\n    int i, n ;\n\n    nxt() ;\n\n    const char *code = (const char *)esi ;\n\n    i = num ;\n    while (--i >= 0)\n        {\n        n = strlen (*(arr + i)) ;\n        if (strnicmp (code, *(arr + i), n) == 0)\n            {\n            esi += n ;\n            break;\n            }\n        }\n\n    return i ;\n}\n\nstatic enum mnemonics lookup_mnemonic(void)\n{\n    const char *code = (const char *)esi;\n    int n ;\n\n    if (code[0] == (char) 0x84 && (code[1] == 'r' || code[1] == 'R')) // Tokenised OR\n        {\n        esi += 2;\n        return ORR;\n        }\n\n    if (code[0] == (char) 0x80)\n        { // Tokenised AND\n        if (code[1] == 's' || code[1] == 'S')\n            {\n            esi += 2;\n            return ANDS;\n            }\n        else\n            {\n            esi += 1;\n            return AND;\n            }\n        }\n\n    // Simple binary chop.\n    // Tested for all valid values, invalid values before ADC, after YIELD, and in between.\n\n    int top = sizeof( mnemonics ) / sizeof( mnemonics[0] ) ;\n    int bottom = 0;\n    int i = top / 2;\n    int best = -1;\n\n    while (bottom < top)\n        {\n        n = strlen (mnemonics[i]) ;\n        int cmp = strnicmp (mnemonics[i], code, n) ;\n\n        if (cmp <= 0)\n            {    \n            if (cmp == 0)\n                best = i; // There may be a better match later in the alphabetically sorted array\n\n            bottom = i + 1;\n            }\n        else\n            {\n            top = i;\n            }\n\n        i = (top + bottom)/2;\n        }\n\n    if (best != -1)\n        {\n        esi += strlen (mnemonics[best]) ;\n        }\n\n    return best;\n}\n\nstatic char *shift_types[] = { \"LSL\", \"LSR\", \"ASR\", \"ROR\" };\n\nstatic int shift_type(void)\n{\n    int found = lookup( shift_types, 4 ) ;\n    if (found < 0)\n        {\n        error( 16, \"Shift types: LSL, LSR, ASR, or sometimes ROR\" ) ;\n        }\n    return found;\n}\n\nstatic void tabit (int x)\n{\n    if (vcount == x) \n        return ;\n    if (vcount > x)\n        crlf () ;\n    spaces (x - vcount) ;\n}\n\nstatic void poke (void *p, int n) \n{\n    char *d ;\n    if (liston & BIT6)\n        {\n        d = OC ;\n        stavar[15] += n ;\n        }\n    else\n        d = PC ;\n\n    stavar[16] += n ;\n    memcpy (d, p, n) ;\n}\n\nvoid *align (void)\n{\n    while (stavar[16] & 3)\n        {\n        stavar[16]++ ;\n        if (liston & BIT6)\n                stavar[15]++ ;\n        } ;\n    return PC ;\n}\n\n/*\n * Table C1-6 A64 Load/Store addressing modes:\n * [n, #imm] includes [n] and [n, #0]\n * [n, #imm]!\n * [n], #imm\n * [n, Xm, LSL#imm] includes [n, Xm] (zero shift)\n * [n, Wm, UXTW#imm] [n, Wm, SXTW#imm]\n * [n], Xm (SIMD only)\n *\n * Doesn't quite match up with C6.2.113 LDR (register), which allows [n, Xm, SXTX#imm]\n * It's also not obvious that the values of imm are limited to 0, 2, or 3 (depending on the WXm register)\n * [n, Xm, LSL#(0|3)] includes [n, Xm] (zero shift) [n, Xm, SXTX#(0|3)]\n * [n, Wm, UXTW#(0|2)] [n, Wm, SXTW#(0|2)]\n * Finally, [n, #imm] can also be an alias for LDUR, if the offset is -ve or not a multiple of 4 or 8.\n */\n\nenum addressing_mode { REG_UXTW, REG_SXTW, REG_SXTX, REG_LSL, REG_UNMODIFIED,\n                       LITERAL, PRE_INDEXED, POST_INDEXED, NO_OFFSET, IMMEDIATE,\n                       NOTFOUND = -1 };\n\nstatic char *extends[] = { \"UXTW\", \"SXTW\", \"SXTX\", \"LSL\" };\n\nstatic const unsigned address_extend_op[5] = { 0x4000, 0xc000, 0xe000, 0x6000, 0x6000 };\n\nstruct addressing {\n    enum addressing_mode mode;\n    unsigned n;\n    unsigned m;\n    unsigned amount_present;\n    long long imm;\n};\n\nstatic struct addressing read_addressing(void)\n{\n    struct addressing result = { .mode = NO_OFFSET };\n\n    if (nxt () != '[')\n        { // Offset from PC\n        result.imm = (void *) (size_t) expri () - PC ;\n        result.mode = LITERAL;\n        return result;\n        }\n\n    open_square() ;\n\n    result.n = reg() ;\n\n    // n must be 64-bit, and not XZR\n    if (is_zero( result.n )\n     || 64 != reg_size( result.n ))\n        {\n        error (16, NULL) ; // 'Syntax error'\n        }\n\n    if (',' == nxt())\n        {\n        comma();\n        if ('#' == nxt())\n            {\n            hash();\n            result.imm = expri();\n            result.mode = IMMEDIATE;\n            }\n        else\n            {\n            result.m = reg();\n            if (',' == nxt())\n                {\n                comma();\n                result.mode = lookup( extends, sizeof( extends )/sizeof( extends[0] ) ) ;\n                if (result.mode == -1)\n                    error( 16, NULL );\n                result.amount_present = ('#' == nxt ());\n                if (result.amount_present)\n                    {\n                    hash () ;\n                    result.imm = expri () ;\n                    }\n                }\n            else\n                result.mode = REG_UNMODIFIED;\n            }\n        }\n\n    close_square();\n\n    if (result.mode == IMMEDIATE && '!' == nxt())\n        {\n\tesi++;\n        result.mode = PRE_INDEXED;\n        }\n\n    if (result.mode == NO_OFFSET && ',' == nxt())\n        {\n        comma();\n        hash();\n        result.imm = expri();\n        result.mode = POST_INDEXED;\n        }\n\n    return result;\n}\n\nstatic inline unsigned rotl32( unsigned n )\n{\n    return (n & 0x80000000) ? (n << 1) | 1 : (n << 1) ;\n}\n\nstatic inline unsigned long long rotl64( unsigned long long n )\n{\n    return (n & 0x8000000000000000ull) ? (n << 1) | 1 : (n << 1) ;\n}\n\nstatic int validated_condition(void)\n{\n    static char *conditions[] = { \"EQ\", \"NE\", \"CS\", \"HS\", \"CC\", \"LO\", \"MI\", \"PL\", \"VS\", \"VC\", \"HI\", \"LS\", \"GE\", \"LT\", \"GT\", \"LE\", \"AL\", \"NV\" };\n    static int code[] = { 0, 1, 2, 2, 3, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };\n\n    int index = lookup( conditions, sizeof( conditions )/sizeof( conditions[0] ) ) ;\n    if (index == -1)\n        {\n        error( 16, NULL ) ;\n        return 0;\n        }\n\n    return code[index];\n}\n\nstatic inline unsigned validated_literal_offset ( int imm )\n{\n    if ((((imm >> 21) != 0 && (imm >> 21) != -1) || (0 != (imm & 3))) && (liston & BIT5))\n        error (8, \"Label is not within 1MB of the instruction, or is not word aliigned\" ) ;\n    return (imm >> 2) & ((1 << 19) - 1);\n}\n\nstatic int validated_N_immr_imms( long long imm, unsigned word_data )\n{\n    if (imm == 0 || imm == -1 || (word_data && imm == 0xffffffff))\n        {\n        assembler_error() ;\n        }\n\n    // Here's the plan:\n    // Rotate left until the lsb is 1 and the msb is 0\n    // Count the number of 1 bits at the least significant end\n    // Count the number of 0 bits above those\n    // The sum of those two counts is the pattern size\n    // The pattern size must be a multiple of 2\n    // Check the immediate value against the pattern generated\n    if (word_data)\n        {\n        int i;\n        // 32-bit value\n        unsigned n = imm & 0xffffffff;\n        unsigned steps = 0;\n        while ((n & 0x80000001) != 1)\n            {\n            steps++;\n            n = rotl32( n ) ;\n            }\n\n        unsigned bits1 = 0;\n        unsigned bits0 = 0;\n        unsigned test = 1;\n        while ((n & test) != 0)\n            {\n            bits1++;\n            test = test << 1;\n            }\n        while (test != 0 && (n & test) == 0)\n            {\n            bits0++;\n            test = test << 1;\n            }\n\n        unsigned pattern_size = (bits0 + bits1) ;\n        if (32 % pattern_size != 0)\n            error( 8, \"Immediate value cannot be encoded\" ) ;\n\n        unsigned pattern = 0xffffffff >> (32 - pattern_size + bits0) ;\n        unsigned check = pattern;\n\n        for (i = pattern_size; i < 32; i += pattern_size) {\n            check = (check << pattern_size) | pattern;\n        }\n\n        if (check != n)\n            error( 8, \"Immediate value cannot be encoded\" ) ;\n\n        unsigned pattern_code = 0b111111;\n        while (pattern_size != 0)\n            {\n            pattern_size = pattern_size >> 1;\n            pattern_code = pattern_code << 1;\n            }\n\n        return (steps << 6) | (pattern_code & 0b111111) | (bits1 - 1) ;\n        }\n    else\n        {\n        int i;\n        // 64-bit value\n        unsigned long long n = imm;\n        unsigned steps = 0;\n        while ((n & 0x8000000000000001ull) != 1)\n            {\n            steps++;\n            n = rotl64( n ) ;\n            }\n\n        unsigned bits1 = 0;\n        unsigned bits0 = 0;\n        unsigned long long test = 1;\n        while ((n & test) != 0)\n            {\n            bits1++;\n            test = test << 1;\n            }\n        while (test != 0 && (n & test) == 0)\n            {\n            bits0++;\n            test = test << 1;\n            }\n\n        unsigned pattern_size = (bits0 + bits1) ;\n        if (64 % pattern_size != 0)\n            error( 8, \"Immediate value cannot be encoded\" ) ;\n\n        unsigned long long pattern = 0xffffffffffffffffull >> (64 - pattern_size + bits0) ;\n        unsigned long long check = pattern;\n\n        for (i = pattern_size; i < 64; i += pattern_size) {\n            check = (check << pattern_size) | pattern;\n        }\n\n        if (check != n)\n            error( 8, \"Immediate value cannot be encoded\" ) ;\n\n        unsigned result = (steps << 6) | (bits1 - 1) ;\n\n        if (pattern_size == 64)\n            {\n            // Set N\n            result |= (1 << 12) ;\n            }\n        else\n            {\n            // Clear N, \n            result |= (64 - (2 * pattern_size)) ;\n            }\n\n        return result;\n        }\n\n    return 0x1fff; // FIXME bigtime!\n}\n\nstatic int validated_imm9( int imm )\n{\n    // -256 <= offset < 256, imm9, byte offset\n    if (imm < -256 || imm >= 256)\n        error( 8, \"Offset must be between -256 and 255\" ) ;\n    return (imm & 0x1ff) ;\n}\n\n// Alignment 0 = byte, 1 = half-word, 2 = word, 3 = dword\nstatic int validated_imm12( int imm, int alignment )\n{\n    if (imm < 0 || 0 != (imm & ((1 << alignment) - 1)) || imm >= (4096 << alignment))\n        {\n        switch (alignment)\n            {\n            case 0: error( 8, \"Constant must be positive and less than 4096\" ) ; break;\n            case 1: error( 8, \"Constant must be positive, a multiple of 2, and less than 8192\" ) ; break;\n            case 2: error( 8, \"Constant must be positive, a multiple of 4, and less than 16384\" ) ; break;\n            case 3: error( 8, \"Constant must be positive, a multiple of 8, and less than 32768\" ) ; break;\n            }\n        }\n    return ((imm >> alignment) & 0xfff) ;\n}\n\nstatic unsigned validated_number_0_to_15(void)\n{\n    int result;\n    char al;\n\n    al = *esi++;\n    result = al - '0';\n    if (result == 1)\n        {\n        al = *esi;\n        result = al - '0';\n        if (result >= 0 && result < 6)\n            {\n            result += 10;\n            esi++;\n            }\n        else\n            {\n            result = 1;\n            }\n        }\n\n    if (result < 0 || result > 15)\n        error( 16, NULL );\n\n    return result;\n}\n\nstatic unsigned validated_system_register(void)\n{\n    unsigned result = 0;\n    char al ;\n\n    // No named system registers, yet.\n    // Code: e.g. s3_1_c11_c0_2\n\n    nxt ();\n\n    al = *esi++;\n    if ('S' != al && 's' != al)\n        error( 16, NULL );\n\n    al = *esi++;\n    switch (al)\n        {\n        case '2': break;\n        case '3': result |= (1 << 19); break;\n        default: error( 16, NULL );\n        }\n\n    al = *esi++;\n    if (al != '_')\n        error( 16, NULL );\n\n    al = *esi++;\n    int op1 = al - '0';\n    if (op1 < 0 || op1 > 7)\n        error( 16, NULL );\n\n    result |= op1 << 16;\n\n    al = *esi++;\n    if (al != '_')\n        error( 16, NULL );\n\n    al = *esi++;\n    if (al != 'c' && al != 'C')\n        error( 16, NULL );\n\n    result |= validated_number_0_to_15() << 12;\n\n    al = *esi++;\n    if (al != '_')\n        error( 16, NULL );\n\n    al = *esi++;\n    if (al != 'c' && al != 'C')\n        error( 16, NULL );\n\n    result |= validated_number_0_to_15() << 8;\n\n    al = *esi++;\n    if (al != '_')\n        error( 16, NULL );\n\n    al = *esi++;\n    int op2 = al - '0';\n    if (op2 < 0 || op2 > 7)\n        error( 16, NULL );\n\n    result |= op2 << 5;\n\n    return result;\n}\n\nstatic unsigned validated_FB_SIMD_instruction( enum mnemonics mnemnonic )\n{\n    error( 16, \"Unsupported FP/SIMD operation\" );\n    return 0;\n}\n\nvoid assemble (void)\n{\n    signed char al ;\n    signed char *oldesi = esi ;\n    int init = 1 ;\n    void *oldpc = PC ;\n\n    unsigned old_liston_bit2 = liston & BIT2;\n\n    liston |= BIT2;\n\n    while (1)\n        {\n        enum mnemonics mnemonic;\n        int instruction = 0 ;\n\n        if (liston & BIT7)\n            {\n            int tmp ;\n            if (liston & BIT6)\n                tmp = stavar[15] ;      // O%   physical memory\n            else\n                tmp = stavar[16] ;      // P%   nominal memory\n            if (tmp >= stavar[12])      // L%   limit\n                error (8, NULL) ; // 'Address out of range'\n            }\n\n        al = nxt () ;\n        esi++ ;\n\n        switch (al) \n            {\n            case 0:\n                esi-- ;\n                liston = (liston & 0x0F) | 0x30 ;\n                // Restore bit 2, set to get 64-bit constants\n                liston &= ~BIT2;\n                liston |= old_liston_bit2;\n                return ;\n\n            case ']':\n                liston = (liston & 0x0F) | 0x30 ;\n                // Restore bit 2, set to get 64-bit constants\n                liston &= ~BIT2;\n                liston |= old_liston_bit2;\n                return ;\n\n            case 0x0D:\n                newlin () ;\n                if (*esi == 0x0D)\n                    break ;\n            case ':':\n                if (liston & BIT4)\n                    {\n                    void *p ;\n                    int n = PC - oldpc ;\n                    if (liston & BIT6)\n                        p = OC - n ;\n                    else\n                        p = PC - n ;\n\n                    do\n                        {\n                        unsigned int i = *(unsigned int *)p ;\n#ifdef _WIN32\n                        sprintf (accs, \"%016I64X \", (long long) (size_t) oldpc) ;\n#else\n                        sprintf (accs, \"%016llX \", (long long) (size_t) oldpc) ;\n#endif\n                        switch (n)\n                            {\n                            case 0: break ;\n                            case 1:    i &= 0xFF ;\n                            case 2: i &= 0xFFFF ;\n                            case 3: i &= 0xFFFFFF ;\n                            case 4: sprintf (accs + 17, \"%0*X \", n*2, i) ;\n                                break ;\n                            default: sprintf (accs + 17, \"%08X \", i) ;\n                            }\n                        if (n > 4)\n                            {\n                            n -= 4 ;\n                            p += 4 ;\n                            oldpc += 4 ;\n                            }\n                        else \n                            n = 0 ;\n\n                        text (accs) ;\n\n                        if (*oldesi == '.')\n                            {\n                            tabit (26) ;\n                            do    \n                                {\n                                token (*oldesi++ ) ;\n                                }\n                            while (range0(*oldesi)) ;\n                            while (*oldesi == ' ') oldesi++ ;\n                            }\n                        tabit (38) ;\n                        while ((*oldesi != ':') && (*oldesi != 0x0D)) \n                            token (*oldesi++) ;\n                        crlf () ;\n                        }\n                    while (n) ;\n                    }\n                nxt () ;\n#if defined(__arm__) || defined(__aarch64__)\n                if ((liston & BIT6) == 0)\n\t#ifdef __APPLE__\n\t\t        sys_icache_invalidate (oldpc, PC - oldpc) ;\n\t#else\n                        __builtin___clear_cache (oldpc, PC) ;\n\t#endif\n#endif\n                oldpc = PC ;\n                oldesi = esi ;\n                break ;\n\n            case ';':\n            case TREM:\n                while ((*esi != 0x0D) && (*esi != ':')) esi++ ;\n                break ;\n\n            case '.':\n                if (init)\n                    oldpc = align () ;\n                {\n                VAR v ;\n                unsigned char type ;\n                void *ptr = getput (&type) ;\n                if (ptr == NULL)\n                    error (16, NULL) ; // 'Syntax error'\n                if (type >= 128)\n                    error (6, NULL) ; // 'Type mismatch'\n                if ((liston & BIT5) == 0)\n                    {\n                    v = loadn (ptr, type) ;\n                    if (v.i.n)\n                        error (3, NULL) ; // 'Multiple label'\n                    }\n                v.i.t = 0 ;\n                v.i.n = (intptr_t) PC ;\n                storen (v, ptr, type) ;\n                }\n                break ;\n\n            default:\n                esi-- ; // Switch was probably on the first character of an assembler mnemonic, include it in the search\n                mnemonic = lookup_mnemonic () ;\n\n                if (mnemonic != OPT)\n                    init = 0 ;\n\n                // Assember controls stay the same as 32-bit ARM\n                switch (mnemonic)\n                    {\n                    case OPT:\n                        liston = (liston & 0x0F) | (expri () << 4) ;\n                        continue ;\n\n                    case DB:\n                        {\n                        VAR v = expr () ;\n                        if (v.s.t == -1)\n                            {\n                            if (v.s.l > 256)\n                                error (19, NULL) ; // 'String too long'\n                            poke (v.s.p + zero, v.s.l) ;\n                            continue ;\n                            }\n                        if (v.i.t)\n                            v.i.n = v.f ;\n                        poke (&v.i.n, 1) ;\n                        continue ;\n                        }\n\n                    case DCB:\n                    case EQUB:\n                        {\n                        int n = expri () ;\n                        poke (&n, 1) ;\n                        continue ; // n.b. not break\n                        }\n \n                    case DCW:\n                    case EQUW:\n                        {\n                        int n = expri () ;\n                        poke (&n, 2) ;\n                        continue ; // n.b. not break\n                        }\n\n                    case DCD:\n                    case EQUD:\n                    case EQUQ:\n                        {\n                        VAR v = expr () ;\n                        long long n ;\n                        if (v.s.t == -1)\n                            {\n                            signed char *oldesi = esi ;\n                            int i ;\n                            memcpy (accs, v.s.p + zero, v.s.l) ;\n                            *(accs + v.s.l) = 0 ;\n                            esi = (signed char *)accs ;\n                            i = lookup (oslist, sizeof(oslist) /\n                                sizeof(oslist[0])) ;\n                            esi = oldesi ;\n                            if (i >= 0)\n                                n = (size_t) osfunc[i] ;\n                            else\n                                 n = (size_t) sysadr (accs) ;\n                            if (n == 0)\n                                error (51, NULL) ; // 'No such system call'\n                            }\n                        else if (v.i.t == 0)\n                            n = v.i.n ;\n                        else\n                            n = v.f ;\n                        if (mnemonic == EQUQ)\n                            {\n                            poke (&n, 8) ;\n                            continue ;\n                            }\n                        instruction = (int) n ;\n                        }\n                        break ;\n\n                    case DCS:\n                    case EQUS:\n                        {\n                        VAR v = exprs () ;\n                        if (v.s.l > 256)\n                            error (19, NULL) ; // 'String too long'\n                        poke (v.s.p + zero, v.s.l) ;\n                        continue ;\n                        }\n\n                    case ALIGN:\n                        oldpc = align () ;\n                        if ((nxt() >= '1') && (*esi <= '9'))\n                            {\n                            int n = expri () ;\n                            if ((n & (n - 1)) || (n & 0xFFFFFF03) || (n == 0))\n                                error (16, NULL) ; // 'Syntax error'\n                            instruction = 0xE1A00000 ;\n                            while (stavar[16] & (n - 1))\n                                poke (&instruction, 4) ; \n                            }\n                        continue ;\n\n                    case ADC:\n                    case ADCS:\n                    case ASRV:\n                    case LSLV:\n                    case LSRV:\n                    case MNEG:\n                    case MUL:\n                    case RORV:\n                    case SBC:\n                    case SBCS:\n                    case SDIV:\n                    case UDIV:\n                        {\n                        if ((mnemonic == MUL) && ('D' == nxt() || 'd' == nxt()))\n                            {\n                            instruction = validated_FB_SIMD_instruction( mnemonic );\n                            break;\n                            }\n\n                        // Three same-sized registers\n                        switch (mnemonic)\n                            {\n                            case ADC:  instruction = 0x1a000000; break; // C6.2.1\n                            case ADCS: instruction = 0x3a000000; break; // C6.2.2\n                            case ASRV: instruction = 0x1ac02800; break; // C6.2.17\n                            case LSLV: instruction = 0x1ac02000; break; // C6.2.159\n                            case LSRV: instruction = 0x1ac02400; break; // C6.2.162\n                            case MNEG: instruction = 0x1b00fc00; break; // C6.2.164\n                            case MUL:  instruction = 0x1b007c00; break; // C6.2.177\n                            case RORV: instruction = 0x1ac02c00; break; // C6.2.206\n                            case SBC:  instruction = 0x5a000000; break; // C6.2.207\n                            case SBCS: instruction = 0x7a000000; break; // C6.2.208\n                            case SDIV: instruction = 0x1ac00c00; break; // C6.2.212\n                            case UDIV: instruction = 0x1ac00800; break; // C6.2.296\n                            default: assembler_error() ;\n                            }\n\n                        unsigned d = reg () ;\n                        comma () ;\n                        unsigned n = reg () ;\n                        comma () ;\n                        unsigned m = reg () ;\n\n                        if (reg_size( d ) != reg_size( n )\n                         || reg_size( d ) != reg_size( m ))\n                            error( 16, NULL ) ;\n\n                        unsigned word_data = 32 == reg_size( d )  ;\n                        unsigned size_bit = (word_data ? 0 : (1 << 31)) ;\n\n                        instruction |= size_bit;\n                        instruction |= (d & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        instruction |= (m & 0x1f) << 16;\n                        }\n                        break;\n\n                    case ADD:\n                    case ADDS:\n                    case SUB:\n                    case SUBS:\n                    case CMN:\n                    case CMP:\n                        {\n                        if ((mnemonic == ADD || mnemonic == SUB) && ('D' == nxt() || 'd' == nxt()))\n                            {\n                            instruction = validated_FB_SIMD_instruction( mnemonic );\n                            break;\n                            }\n\n                        // Three forms: Immediate, Shifted or Extended register\n\n                        unsigned d;\n\n                        if (mnemonic != CMN && mnemonic != CMP)\n                            {\n                            d = reg () ;\n                            comma () ;\n                            }\n\n                        unsigned n = reg () ;\n                        comma () ;\n\n                        if (mnemonic == CMN || mnemonic == CMP)\n                            {\n                            // CMN m, n == ADDS z, m, n\n                            d = 31 | REGISTER_IS_ZERO | reg_size( n ) ;\n                            }\n\n                        unsigned word_data = 32 == reg_size( d )  ;\n                        unsigned size_bit = (word_data ? 0 : (1 << 31)) ;\n\n                        if (nxt() == '#')\n                            {\n                            switch (mnemonic)\n                                {\n                                case ADD:       instruction = 0x11000000; break; // C6.2.4\n                                case CMN:       // C6.2.53\n                                case ADDS:      instruction = 0x31000000; break; // C6.2.7\n                                case SUB:       instruction = 0x51000000; break; // C6.2.274\n                                case CMP:       // C6.2.56\n                                case SUBS:      instruction = 0x71000000; break; // C6.2.277\n                                default: assembler_error() ;\n                                }\n                            hash () ;\n                            long long imm = expri () ;\n                            if (nxt() == ',')\n                                {\n                                comma () ;\n                                nxt () ;\n                                if (strnicmp ((const char *) esi, \"LSL\", 3) == 0)\n                                    {\n                                    esi += 3;\n                                    hash () ;\n                                    int shift = expri () ;\n                                    if (shift != 12 && shift != 0)\n                                        error( 16, NULL ) ;\n                                    if (shift == 12)\n                                        instruction |= 1 << 22;\n                                    }\n                                else\n                                    {\n                                    error( 16, NULL ) ;\n                                    }\n                                }\n                            else if (imm >= 4096 && (imm & 0xfff) == 0 && (imm >> 12) < 4096)\n                                {\n                                // Automatically perform the shift for suitable larger numbers\n                                imm = imm >> 12;\n                                instruction |= 1 << 22;\n                                }\n\n                            if (imm < 0 || imm >= 4096)\n                                error( 16, NULL ) ;\n\n                            instruction |= imm << 10;\n                            }\n                        else\n                            {\n                            switch (mnemonic)\n                                {\n                                case ADD:       instruction = 0x0b000000; break; // C6.2.3 C6.2.5\n                                case CMN:       // C6.2.53\n                                case ADDS:      instruction = 0x2b000000; break; // C6.2.7 C6.2.8\n                                case SUB:       instruction = 0x4b000000; break; // C6.2.273, C6.2.275\n                                case CMP:       // C6.2.56\n                                case SUBS:      instruction = 0x6b000000; break; // C6.2.276, C6.2.278\n                                default: assembler_error() ;\n                                }\n\n                            unsigned m ;\n\n                            m = reg ();\n\n                            enum modifier { EXT_UXTB, EXT_UXTH, EXT_UXTW, EXT_UXTX,\n                                            EXT_SXTB, EXT_SXTH, EXT_SXTW, EXT_SXTX,\n                                            EXT_LSL,  EXT_LSR,  EXT_ASR,  EXT_ROR, EXT_NO_MODIFIER,\n                                            NOTFOUND = -1 };\n\n                            static char *modifiers[] = { \"UXTB\", \"UXTH\", \"UXTW\", \"UXTX\",\n                                                         \"SXTB\", \"SXTH\", \"SXTW\", \"SXTX\",\n                                                         \"LSL\",  \"LSR\",  \"ASR\",  \"ROR\" };\n\n                            int imm = 0;\n                            int amount_present = 0;\n                            enum modifier mod = EXT_NO_MODIFIER ;\n\n                            if (',' == nxt ())\n                                {\n                                comma () ;\n\n                                mod = lookup( modifiers, sizeof( modifiers )/sizeof( modifiers[0] ) ) ;\n\n                                if (mod == -1)\n                                    error( 16, NULL );\n\n                                amount_present = ('#' == nxt ());\n                                if (amount_present)\n                                    {\n                                    hash () ;\n                                    imm = expri () ;\n                                    }\n\n                                }\n\n                            // The encoding can be extended register or shifted register\n                            // Register n being number 31 is SP in extended, ZR in shifted\n                            // Register d being number 31 is SP in extended, ZR in shifted\n                            // The amount may only be 0-4 in extended, 0 to reg_size( m ) - 1 in shifted.\n                            // Either mode can use LSL, with two different encodings within extended mode.\n\n                            if (is_sp( m )) error( 16, \"Third register cannot be SP\" );\n\n                            if (is_sp( n ) || is_sp( d ) || (mod < EXT_LSL)) //  || (mod == EXT_LSL && 0 <= imm && 4 >= imm)))\n                                {\n                                // Extended\n                                instruction |= (1 << 21) ;\n\n                                if (mod == EXT_LSL || mod == EXT_NO_MODIFIER)\n                                    {\n                                    if (32 == reg_size( d ))\n                                        mod = EXT_UXTW;\n                                    else\n                                        mod = EXT_UXTX;\n                                    }\n\n                                if (mod >= EXT_LSL)\n                                    error( 16, NULL );\n\n                                instruction |= (mod & 7) << 13;\n\n                                if (imm < 0 || imm > 4)\n                                    error( 8, \"Extension amount must be 0..4\" ) ;\n                                }\n                            else\n                                {\n                                // Shifted\n                                if (mod != EXT_NO_MODIFIER)\n                                    instruction |= (mod - EXT_LSL) << 22;\n\n                                if (imm < 0 || imm >= reg_size( d ) )\n                                    error( 8, NULL ) ;\n                                }\n\n                            instruction |= imm << 10;\n\n                            if (reg_size( d ) != reg_size( n )\n                             || reg_size( d ) < reg_size( m ))\n                                error( 16, NULL ) ;\n\n                            instruction |= (m & 0x1f) << 16;\n                            }\n\n                        instruction |= size_bit;\n                        instruction |= (d & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        }\n                        break;\n\n                    case ADR: // Within 1MB of the PC, to the byte.\n                        {\n                        int offpc ;\n                        unsigned d = reg () ;\n\n                        comma () ;\n                        offpc = (void *) (size_t) expri () - PC ;\n\n                        if (((d & 0x1f) == 0x1f && 0 == (d & REGISTER_IS_ZERO)) // SP is not allowed, but XZR is!\n                         || 32 == reg_size( d )\n                         || offpc < -0x100000 || offpc >= 0x100000)\n                            error (16, NULL) ; // 'Syntax error'\n\n                        instruction = 0x10000000;   // C6.2.9\n                        instruction |= (d & 0x1f) ;\n                        // Words offset goes in bits [32:5], byte offset in [30:29]\n                        instruction |= ((offpc & 0x1ffffc) << 3) | ((offpc & 3) << 29) ;\n                        }\n                        break ;\n\n                    case ADRP: // Within 4GB of the current page, to 4k boundary\n                        {\n                        long long offpc ;\n                        unsigned d = reg () ;\n\n                        if (((d & 0x1f) == 0x1f && 0 == (d & REGISTER_IS_ZERO)) // SP is not allowed, but XZR is!\n                         || 32 == reg_size( d ))\n                            error (16, NULL) ;\n\n                        comma () ;\n                        offpc = (void *) (size_t) expri () - PC ;\n                        offpc = (offpc >> 12) & ((1 << 21)-1);\n                        unsigned immlo = offpc & 3;\n                        unsigned immhi = (offpc >> 2) & ((1 << 19)-1);\n                        instruction = 0x90000000;   // C6.2.10\n                        instruction |= (d & 0x1f) ;\n                        instruction |= (immhi << 5) | (immlo << 29) ;\n                        }\n                        break ;\n\n                    case AT:\n                        {\n                        char *ops[] = {\n                                \"S1E1R\", \"S1E1W\", \"S1E0R\", \"S1E0W\", \"S1E2R\", \"S1E2W\", \"S12E1R\",\n                                \"S12E1W\", \"S12E0R\", \"S12E0W\", \"S1E3R\", \"S1E3W\", \"S1E1RP\", \"S1E1WP\" };\n                        unsigned bits[] = {\n                                0x00000000, 0x00000020, 0x00000040, 0x00000060, 0x00040000, 0x00040020, 0x00040080,\n                                0x000400a0, 0x000400c0, 0x000400e0, 0x00060000, 0x00060020, 0x00000100, 0x00000120 };\n\n                        nxt () ;\n                        int op = lookup( ops, sizeof( ops ) / sizeof( ops[0] ) ) ;\n                        if (op == -1)\n                            error( 16, NULL ) ;\n                        instruction = 0xd5087800;       // C6.2.18\n                        instruction |= bits[op];\n                        comma () ;\n                        unsigned d = reg () ;\n                        if (32 == reg_size( d ) )\n                            error( 16, NULL ) ;\n                        instruction |= (d & 0x1f) ;\n                        }\n                        break ;\n\n                    case AUTDA:\n                    case AUTDB:\n                        {\n                        unsigned d = reg () ;\n                        comma () ;\n                        unsigned n = reg () ;\n                        if (32 == reg_size( d )  || 0 == reg_size( n ))\n                            error( 16, NULL ) ;\n                        instruction = 0xdac11800;       // C6.2.19\n                        if (mnemonic == AUTDB)\n                            instruction |= 0x00000400;  // C6.2.20\n                        instruction |= (d & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        }\n                        break ;\n\n                    case AUTDZA:\n                    case AUTDZB:\n                        {\n                        unsigned d = reg () ;\n                        if (32 == reg_size( d ) )\n                            error( 16, NULL ) ;\n                        instruction = 0xdac13be0;       // C6.2.19\n                        if (mnemonic == AUTDZB)\n                            instruction |= 0x00000400;  // C6.2.20\n                        instruction |= (d & 0x1f) << 0;\n                        }\n                        break ;\n\n\n                    case AUTIA:\n                    case AUTIB:\n                        {\n                        unsigned d = reg () ;\n                        comma () ;\n                        unsigned n = reg () ;\n                        if (32 == reg_size( d )  || 0 == reg_size( n ))\n                            error( 16, NULL ) ;\n                        instruction = 0xdac11000;       // C6.2.21\n                        if (mnemonic == AUTIB)\n                            instruction |= 0x00000400;  // C6.2.22\n                        instruction |= (d & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        }\n                        break ;\n\n                    case AUTIZA:\n                    case AUTIZB:\n                        {\n                        unsigned d = reg () ;\n                        if (32 == reg_size( d ) )\n                            error( 16, NULL ) ;\n                        instruction = 0xdac133e0;       // C6.2.21\n                        if (mnemonic == AUTIZB)\n                            instruction |= 0x00000400;  // C6.2.22\n                        instruction |= (d & 0x1f) << 0;\n                        }\n                        break ;\n\n                    case AUTIA1716:\n                        {\n                        instruction = 0xd503219f;       // C6.2.21\n                        }\n                        break;\n\n                    case AUTIB1716:\n                        {\n                        instruction = 0xd50321df;       // C6.2.22\n                        }\n                        break;\n\n                    case AUTIASP:\n                        {\n                        instruction = 0xd50323bf;       // C6.2.21\n                        }\n                        break;\n\n                    case AUTIBSP:\n                        {\n                        instruction = 0xd50323ff;       // C6.2.22\n                        }\n                        break;\n\n                    case AUTIAZ:\n                        {\n                        instruction = 0xd503239f;       // C6.2.21\n                        }\n                        break;\n\n                    case AUTIBZ:\n                        {\n                        instruction = 0xd50323df;       // C6.2.22\n                        }\n                        break;\n\n                    case B:\n                    case BL:\n                        {\n                        if (mnemonic == B && '.' == *esi)\n                            {\n                            esi++;\n                            instruction = 0x54000000;       // C6.2.23\n                            instruction |= validated_condition() ;\n                            int offpc = (void *) (size_t) expri () - PC ;\n                            instruction |= validated_literal_offset( offpc ) << 5;\n                            }\n                        else\n                            {\n                            if (!isspace( *esi ))\n                                error( 16, NULL );\n\n                            switch (mnemonic)\n                                {\n                                case B:  instruction = 0x14000000; break;       // C6.2.24\n                                case BL: instruction = 0x94000000; break;       // C6.2.31\n                                default: assembler_error() ;\n                                }\n                            int imm = (void *) (size_t) expri () - PC ;\n                            if ((((imm >> 28) != 0 && (imm >> 28) != -1) || (0 != (imm & 3))) && (liston & BIT5))\n                                error (1, \"Label is not within 128MB of the instruction, or is not word aliigned\" ) ;\n                            instruction |= (imm & 0xffffffc) >> 2;\n                            }\n                        }\n                        break;\n\n                    case CBNZ:\n                    case CBZ:\n                        {\n                        unsigned t = reg () ;\n                        comma () ;\n\n                        unsigned word_data = 32 == reg_size( t )  ;\n                        unsigned size_bit = (word_data ? 0 : (1 << 31)) ;\n\n                        switch (mnemonic)\n                            {\n                            case CBNZ:      instruction = 0x35000000; break;       // C6.2.41\n                            case CBZ:       instruction = 0x34000000; break;       // C6.2.42\n                            default: assembler_error() ;\n                            }\n\n                        int offpc = (void *) (size_t) expri () - PC ;\n\n                        instruction |= size_bit;\n                        instruction |= validated_literal_offset( offpc ) << 5;\n                        instruction |= (t & 0x1f) << 0;\n                        }\n                        break;\n\n                    case TBNZ:\n                    case TBZ:\n                        {\n                        unsigned t = reg () ;\n                        comma () ;\n                        hash () ;\n                        int bit = expri () ;\n                        comma () ;\n\n                        if (bit < 0 || bit >= reg_size( t ))\n                            error( 16, \"Bit numbers must be 0-31 for W registers, 0-63 for X registers\" ) ;\n\n                        switch (mnemonic)\n                            {\n                            case TBNZ:      instruction = 0x37000000; break;       // C6.2.288\n                            case TBZ:       instruction = 0x36000000; break;       // C6.2.289\n                            default: assembler_error() ;\n                            }\n\n                        int offpc = (void *) (size_t) expri () - PC ;\n\n                        if ((offpc & 3) != 0\n                         || offpc >= (1 << 16)\n                         || offpc < -(1 << 16))\n                            error( 8, NULL );\n\n                        if (bit >= 32)\n                            instruction |= (1 << 31) ;\n\n                        instruction |= (bit & 0x1f) << 19;\n                        instruction |= ((offpc >> 2) & 0x3fff) << 5;\n                        instruction |= (t & 0x1f) << 0;\n                        }\n                        break;\n\n                    case BLR:\n                    case BR:\n                        {\n                        switch (mnemonic)\n                            {\n                            case BLR: instruction = 0xd63f0000; break; // C6.2.32\n                            case BR:  instruction = 0xd61f0000; break; // C6.2.34\n                            default: assembler_error() ;\n                            }\n\n                        unsigned n = reg () ;\n                        if (32 == reg_size( n ) )\n                            error( 16, NULL ) ;\n\n                        instruction |= (n & 0x1f) << 5;\n                        }\n                        break;\n\n                    case BLRAA:\n                    case BLRAB:\n                    case BRAA:\n                    case BRAB:\n                        {\n                        switch (mnemonic)\n                            {\n                            case BLRAA: instruction = 0xd73f0800; break; // C6.2.32\n                            case BLRAB: instruction = 0xd73f0c00; break; // C6.2.32\n                            case BRAA:  instruction = 0xd71f0800; break; // C6.2.35\n                            case BRAB:  instruction = 0xd71f0c00; break; // C6.2.35\n                            default: assembler_error() ;\n                            }\n\n                        unsigned n = reg () ;\n                        comma () ;\n                        unsigned m = reg () ;\n\n                        if (32 == reg_size( n ) \n                         || 32 == reg_size( n ) )\n                            error( 16, NULL ) ;\n\n                        instruction |= (n & 0x1f) << 5;\n                        instruction |= (m & 0x1f) << 0;\n                        }\n                        break;\n\n                    case BLRAAZ:\n                    case BLRABZ:\n                    case BRAAZ:\n                    case BRABZ:\n                        {\n                        switch (mnemonic)\n                            {\n                            case BLRAAZ: instruction = 0xd63f081f; break; // C6.2.32\n                            case BLRABZ: instruction = 0xd63f0c1f; break; // C6.2.32\n                            case BRAAZ:  instruction = 0xd61f081f; break; // C6.2.35\n                            case BRABZ:  instruction = 0xd61f0c1f; break; // C6.2.35\n                            default: assembler_error() ;\n                            }\n\n                        unsigned n = reg () ;\n                        if (32 == reg_size( n ) )\n                            error( 16, NULL ) ;\n\n                        instruction |= (n & 0x1f) << 5;\n                        }\n                        break;\n\n                    case BRK:\n                    case HVC:\n                    case HLT:\n                    case SMC:\n                    case SVC:\n                        {\n                        switch (mnemonic)\n                            {\n                            case BRK:   instruction = 0xd4200000; break; // C6.2.36\n                            case HLT:   instruction = 0xd4400000; break; // C6.2.82\n                            case HVC:   instruction = 0xd4000002; break; // C6.2.83\n                            case SMC:   instruction = 0xd4000003; break; // C6.2.216\n                            case SVC:   instruction = 0xd4000001; break; // C6.2.279\n                            default: assembler_error() ;\n                            }\n\n                        hash () ;\n                        int imm = expri () ;\n                        if (imm < 0 || imm > 65535)\n                            error( 16, NULL ) ;\n                        instruction |= imm << 5;\n                        }\n                        break;\n\n                    case DCPS1:\n                    case DCPS2:\n                    case DCPS3:\n                        {\n                        switch (mnemonic)\n                            {\n                            case DCPS1: instruction = 0xd4a00001; break; // C6.2.68\n                            case DCPS2: instruction = 0xd4a00002; break; // C6.2.69\n                            case DCPS3: instruction = 0xd4a00003; break; // C6.2.70\n                            default: assembler_error() ;\n                            }\n\n                        int imm = 0;\n                        if ('#' == nxt ())\n                            {\n                            esi++;\n                            imm = expri () ;\n                            if (imm < 0 || imm > 65535)\n                                error( 16, NULL ) ;\n                            }\n                        instruction |= imm << 5;\n                        }\n                        break;\n\n                    case BFM:\n                    // Aliases that use a different bit identification scheme:\n                    case BFC:   // C6.2.25\n                    case BFI:   // C6.2.26\n                    case BFXIL: // C6.2.28\n                        {\n                        unsigned d = reg () ;\n                        comma () ;\n\n                        unsigned n;\n                        if (mnemonic == BFC) // Second register is WZR/XZR\n                            {\n                            n = 31 | REGISTER_IS_ZERO | reg_size( d ) ;\n                            }\n                        else\n                            {\n                            n = reg () ;\n                            comma () ;\n                            }\n\n                        hash () ;\n                        int immr = expri () ;\n                        comma () ;\n                        hash () ;\n                        int imms = expri () ;\n\n                        unsigned word_data = 32 == reg_size( d )  ;\n                        unsigned size_bits = (word_data ? 0 : 0x80400000) ;\n\n                        if (mnemonic == BFC || mnemonic == BFI)\n                            {\n                            imms = imms - 1; // width is 1...bits\n                            }\n                        else if (mnemonic == BFXIL)\n                            {\n                            imms = immr + imms - 1;\n                            }\n\n                        if (reg_size( d ) != reg_size( n )\n                         || immr < 0 || immr >= reg_size( d ) || imms < 0 || imms >= reg_size( d ))\n                            error( 16, NULL ) ;\n\n                        if (mnemonic == BFC || mnemonic == BFI)\n                            {\n                            immr = (-immr) & (reg_size( d ) - 1);\n                            }\n\n                        instruction = 0x33000000;       // C6.2.27\n                        instruction |= size_bits;\n                        instruction |= (d & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        instruction |= (immr & 0x3f) << 16;\n                        instruction |= (imms & 0x3f) << 10;\n                        }\n                        break;\n\n                    case BIC: // C6.2.29\n                    case BICS: // C6.2.30\n                        {\n                        if ((mnemonic == BIC) && ('D' == nxt() || 'd' == nxt()))\n                            {\n                            instruction = validated_FB_SIMD_instruction( mnemonic );\n                            break;\n                            }\n\n                        unsigned d = reg () ;\n                        comma () ;\n                        unsigned n = reg () ;\n                        comma () ;\n                        unsigned m = reg () ;\n                        int shift = 0;\n                        int amount = 0;\n\n                        unsigned word_data = 32 == reg_size( d )  ;\n                        unsigned size_bit = (word_data ? 0 : (1 << 31)) ;\n\n                        if (',' == nxt())\n                            {\n                            comma () ;\n                            shift = shift_type() ;\n                            hash () ;\n                            amount = expri() ;\n                            if (amount < 0 || amount >= reg_size( d ))\n                                error( 16, NULL ) ;\n                            }\n\n                        if (reg_size( d ) != reg_size( n )\n                         || amount < 0 || amount >= reg_size( d ))\n                            error( 16, NULL ) ;\n\n                        switch (mnemonic)\n                            {\n                            case BIC:  instruction = 0x0a200000; break; // C6.2.29\n                            case BICS: instruction = 0x6a200000; break; // C6.2.30\n                            default: assembler_error() ;\n                            }\n                        instruction |= size_bit;\n                        instruction |= shift << 22;\n                        instruction |= amount << 10;\n                        instruction |= (d & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        instruction |= (m & 0x1f) << 16;\n                        }\n                        break;\n\n                    /*************************************************************************\n                     * Byte/Halfword in memory instructions\n                     *************************************************************************/\n                    case CASB:\n                    case CASAB:\n                    case CASALB:\n                    case CASLB:\n                    case LDADDB:\n                    case LDADDAB:\n                    case LDADDALB:\n                    case LDADDLB:\n                    case LDCLRB:\n                    case LDCLRAB:\n                    case LDCLRALB:\n                    case LDCLRLB:\n                    case LDEORB:\n                    case LDEORAB:\n                    case LDEORALB:\n                    case LDEORLB:\n                    case LDSETB:\n                    case LDSETAB:\n                    case LDSETALB:\n                    case LDSETLB:\n                    case LDSMAXB:\n                    case LDSMAXAB:\n                    case LDSMAXALB:\n                    case LDSMAXLB:\n                    case LDSMINB:\n                    case LDSMINAB:\n                    case LDSMINALB:\n                    case LDSMINLB:\n                    case LDUMAXB:\n                    case LDUMAXAB:\n                    case LDUMAXALB:\n                    case LDUMAXLB:\n                    case LDUMINB:\n                    case LDUMINAB:\n                    case LDUMINALB:\n                    case LDUMINLB:\n\n                    case CASH:\n                    case CASAH:\n                    case CASALH:\n                    case CASLH:\n                    case LDADDH:\n                    case LDADDAH:\n                    case LDADDALH:\n                    case LDADDLH:\n                    case LDCLRH:\n                    case LDCLRAH:\n                    case LDCLRALH:\n                    case LDCLRLH:\n                    case LDEORH:\n                    case LDEORAH:\n                    case LDEORALH:\n                    case LDEORLH:\n                    case LDSETH:\n                    case LDSETAH:\n                    case LDSETALH:\n                    case LDSETLH:\n                    case LDSMAXH:\n                    case LDSMAXAH:\n                    case LDSMAXALH:\n                    case LDSMAXLH:\n                    case LDSMINH:\n                    case LDSMINAH:\n                    case LDSMINALH:\n                    case LDSMINLH:\n                    case LDUMAXH:\n                    case LDUMAXAH:\n                    case LDUMAXALH:\n                    case LDUMAXLH:\n                    case LDUMINH:\n                    case LDUMINAH:\n                    case LDUMINALH:\n                    case LDUMINLH:\n                        {\n                        // <Ws>, <Wt>, [<Xn|SP>] (documentation suggests an optional , #0 in the brackets.)\n                        unsigned s = reg () ;\n                        comma() ;\n                        unsigned t = reg () ;\n                        comma() ;\n                        open_square() ;\n                        unsigned n = reg () ;\n                        close_square() ;\n\n                        switch (mnemonic)\n                            {\n                            case CASB:          instruction = 0x08a07c00 | 0x00000000; break; // C6.2.37\n                            case CASAB:         instruction = 0x08a07c00 | 0x00400000; break; // C6.2.37\n                            case CASALB:        instruction = 0x08a07c00 | 0x00408000; break; // C6.2.37\n                            case CASLB:         instruction = 0x08a07c00 | 0x00008000; break; // C6.2.37\n\n                            case LDADDB:        instruction = 0x38200000 | 0x00000000; break; // C6.2.86\n                            case LDADDAB:       instruction = 0x38200000 | 0x00800000; break; // C6.2.86\n                            case LDADDALB:      instruction = 0x38200000 | 0x00c00000; break; // C6.2.86\n                            case LDADDLB:       instruction = 0x38200000 | 0x00400000; break; // C6.2.86\n\n                            case LDCLRB:        instruction = 0x38201000 | 0x00000000; break; // C6.2.99\n                            case LDCLRAB:       instruction = 0x38201000 | 0x00800000; break; // C6.2.99\n                            case LDCLRALB:      instruction = 0x38201000 | 0x00c00000; break; // C6.2.99\n                            case LDCLRLB:       instruction = 0x38201000 | 0x00400000; break; // C6.2.99\n\n                            case LDEORB:        instruction = 0x38202000 | 0x00000000; break; // C6.2.102\n                            case LDEORAB:       instruction = 0x38202000 | 0x00800000; break; // C6.2.102\n                            case LDEORALB:      instruction = 0x38202000 | 0x00c00000; break; // C6.2.102\n                            case LDEORLB:       instruction = 0x38202000 | 0x00400000; break; // C6.2.102\n\n                            case LDSETB:        instruction = 0x38203000 | 0x00000000; break; // C6.2.126\n                            case LDSETAB:       instruction = 0x38203000 | 0x00800000; break; // C6.2.126\n                            case LDSETALB:      instruction = 0x38203000 | 0x00c00000; break; // C6.2.126\n                            case LDSETLB:       instruction = 0x38203000 | 0x00400000; break; // C6.2.126\n\n                            case LDSMAXB:       instruction = 0x38204000 | 0x00000000; break; // C6.2.129\n                            case LDSMAXAB:      instruction = 0x38204000 | 0x00800000; break; // C6.2.129\n                            case LDSMAXALB:     instruction = 0x38204000 | 0x00c00000; break; // C6.2.129\n                            case LDSMAXLB:      instruction = 0x38204000 | 0x00400000; break; // C6.2.129\n\n                            case LDSMINB:       instruction = 0x38205000 | 0x00000000; break; // C6.2.132\n                            case LDSMINAB:      instruction = 0x38205000 | 0x00800000; break; // C6.2.132\n                            case LDSMINALB:     instruction = 0x38205000 | 0x00c00000; break; // C6.2.132\n                            case LDSMINLB:      instruction = 0x38205000 | 0x00400000; break; // C6.2.132\n\n                            case LDUMAXB:       instruction = 0x38206000 | 0x00000000; break; // C6.2.141\n                            case LDUMAXAB:      instruction = 0x38206000 | 0x00800000; break; // C6.2.141\n                            case LDUMAXALB:     instruction = 0x38206000 | 0x00c00000; break; // C6.2.141\n                            case LDUMAXLB:      instruction = 0x38206000 | 0x00400000; break; // C6.2.141\n\n                            case LDUMINB:       instruction = 0x38207000 | 0x00000000; break; // C6.2.144\n                            case LDUMINAB:      instruction = 0x38207000 | 0x00800000; break; // C6.2.144\n                            case LDUMINALB:     instruction = 0x38207000 | 0x00c00000; break; // C6.2.144\n                            case LDUMINLB:      instruction = 0x38207000 | 0x00400000; break; // C6.2.144\n\n                            case CASH:          instruction = 0x48a07c00 | 0x00000000; break; // C6.2.38\n                            case CASAH:         instruction = 0x48a07c00 | 0x00400000; break; // C6.2.38\n                            case CASALH:        instruction = 0x48a07c00 | 0x00408000; break; // C6.2.38\n                            case CASLH:         instruction = 0x48a07c00 | 0x00008000; break; // C6.2.38\n\n                            case LDADDH:        instruction = 0x78200000 | 0x00000000; break; // C6.2.87\n                            case LDADDAH:       instruction = 0x78200000 | 0x00800000; break; // C6.2.87\n                            case LDADDALH:      instruction = 0x78200000 | 0x00c00000; break; // C6.2.87\n                            case LDADDLH:       instruction = 0x78200000 | 0x00400000; break; // C6.2.87\n\n                            case LDCLRH:        instruction = 0x78201000 | 0x00000000; break; // C6.2.100\n                            case LDCLRAH:       instruction = 0x78201000 | 0x00800000; break; // C6.2.100\n                            case LDCLRALH:      instruction = 0x78201000 | 0x00c00000; break; // C6.2.100\n                            case LDCLRLH:       instruction = 0x78201000 | 0x00400000; break; // C6.2.100\n\n                            case LDEORH:        instruction = 0x78202000 | 0x00000000; break; // C6.2.103\n                            case LDEORAH:       instruction = 0x78202000 | 0x00800000; break; // C6.2.103\n                            case LDEORALH:      instruction = 0x78202000 | 0x00c00000; break; // C6.2.103\n                            case LDEORLH:       instruction = 0x78202000 | 0x00400000; break; // C6.2.103\n\n                            case LDSETH:        instruction = 0x78203000 | 0x00000000; break; // C6.2.127\n                            case LDSETAH:       instruction = 0x78203000 | 0x00800000; break; // C6.2.127\n                            case LDSETALH:      instruction = 0x78203000 | 0x00c00000; break; // C6.2.127\n                            case LDSETLH:       instruction = 0x78203000 | 0x00400000; break; // C6.2.127\n\n                            case LDSMAXH:       instruction = 0x78204000 | 0x00000000; break; // C6.2.130\n                            case LDSMAXAH:      instruction = 0x78204000 | 0x00800000; break; // C6.2.130\n                            case LDSMAXALH:     instruction = 0x78204000 | 0x00c00000; break; // C6.2.130\n                            case LDSMAXLH:      instruction = 0x78204000 | 0x00400000; break; // C6.2.130\n\n                            case LDSMINH:       instruction = 0x78205000 | 0x00000000; break; // C6.2.133\n                            case LDSMINAH:      instruction = 0x78205000 | 0x00800000; break; // C6.2.133\n                            case LDSMINALH:     instruction = 0x78205000 | 0x00c00000; break; // C6.2.133\n                            case LDSMINLH:      instruction = 0x78205000 | 0x00400000; break; // C6.2.133\n\n                            case LDUMAXH:       instruction = 0x78206000 | 0x00000000; break; // C6.2.142\n                            case LDUMAXAH:      instruction = 0x78206000 | 0x00800000; break; // C6.2.142\n                            case LDUMAXALH:     instruction = 0x78206000 | 0x00c00000; break; // C6.2.142\n                            case LDUMAXLH:      instruction = 0x78206000 | 0x00400000; break; // C6.2.142\n\n                            case LDUMINH:       instruction = 0x78207000 | 0x00000000; break; // C6.2.145\n                            case LDUMINAH:      instruction = 0x78207000 | 0x00800000; break; // C6.2.145\n                            case LDUMINALH:     instruction = 0x78207000 | 0x00c00000; break; // C6.2.145\n                            case LDUMINLH:      instruction = 0x78207000 | 0x00400000; break; // C6.2.145\n\n                            default: assembler_error() ;\n                            }\n\n                        if (64 == reg_size( s ) \n                         || 64 == reg_size( t ) \n                         || 32 == reg_size( n ) )\n                            error( 16, NULL ) ;\n\n                        instruction |= (s & 0x1f) << 16;\n                        instruction |= (t & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        }\n                        break;\n\n                    case LDAPR:\n                    case LDAPRB:\n                    case LDAPRH:\n                    case LDAXR:\n                    case LDAXRB:\n                    case LDAXRH:\n                    case LDAR:\n                    case LDARB:\n                    case LDARH:\n                    case LDLAR:\n                    case LDLARB:\n                    case LDLARH:\n                    case LDXR:\n                    case STLLRB:\n                    case STLLRH:\n                    case STLLR:\n                    case STLR:\n                    case STLRB:\n                    case STLRH:\n                        {\n                        unsigned only_32bit = 0;\n                        switch (mnemonic)\n                            {\n                            case LDAPR: instruction = 0xb8bfc000; only_32bit = 0; break; // C6.2.89\n                            case LDAPRB:instruction = 0x38bfc000; only_32bit = 1; break; // C6.2.90\n                            case LDAPRH:instruction = 0x78bfc000; only_32bit = 1; break; // C6.2.91\n                            case LDAXR: instruction = 0x885ffc00; only_32bit = 0; break; // C6.2.96\n                            case LDAXRB:instruction = 0x085ffc00; only_32bit = 1; break; // C6.2.97\n                            case LDAXRH:instruction = 0x485ffc00; only_32bit = 1; break; // C6.2.98\n                            case LDAR:  instruction = 0x88dffc00; only_32bit = 0; break; // C6.2.92\n                            case LDARB: instruction = 0x08dffc00; only_32bit = 1; break; // C6.2.93\n                            case LDARH: instruction = 0x48dffc00; only_32bit = 1; break; // C6.2.94\n                            case LDLAR: instruction = 0x88df7c00; only_32bit = 0; break; // C6.2.107\n                            case LDLARB:instruction = 0x08df7c00; only_32bit = 1; break; // C6.2.105\n                            case LDLARH:instruction = 0x48df7c00; only_32bit = 1; break; // C6.2.106\n                            case LDXR:  instruction = 0x885f7c00; only_32bit = 0; break; // C6.2.154\n\n                            case STLLRB:instruction = 0x089f7c00; only_32bit = 1; break; // C6.2.230\n                            case STLLRH:instruction = 0x489f7c00; only_32bit = 1; break; // C6.2.231\n                            case STLLR: instruction = 0x889f7c00; only_32bit = 0; break; // C6.2.232\n                            case STLR:  instruction = 0x889ffc00; only_32bit = 0; break; // C6.2.233\n                            case STLRB: instruction = 0x089ffc00; only_32bit = 1; break; // C6.2.234\n                            case STLRH: instruction = 0x489ffc00; only_32bit = 1; break; // C6.2.235\n                            default: assembler_error() ;\n                            }\n\n                        // <Ws>, [<Xn|SP> {, #0}]\n                        unsigned t = reg () ;\n                        comma() ;\n                        open_square() ;\n\n                        unsigned n = reg () ;\n                        optional_zero_offset() ;\n\n                        close_square() ;\n\n                        unsigned word_data = 32 == reg_size( t )  ;\n                        unsigned size_bit = word_data ? 0 : (1 << 30) ;\n\n                        if (32 == reg_size( n ) \n                         || (only_32bit && !word_data))\n                            error( 16, NULL ) ;\n\n                        instruction |= size_bit;\n                        instruction |= (t & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        }\n                        break;\n\n                    case SWP:\n                    case SWPA:\n                    case SWPAL:\n                    case SWPL:\n                    case SWPB:\n                    case SWPAB:\n                    case SWPALB:\n                    case SWPLB:\n                    case SWPH:\n                    case SWPAH:\n                    case SWPALH:\n                    case SWPLH:\n                        {\n                        unsigned only_32bit = 0;\n                        switch (mnemonic)\n                            {\n                            case SWPB:   instruction = 0x38208000; only_32bit = 1; break; // C6.2.280\n                            case SWPAB:  instruction = 0x38a08000; only_32bit = 1; break; // C6.2.280\n                            case SWPALB: instruction = 0x38e08000; only_32bit = 1; break; // C6.2.280\n                            case SWPLB:  instruction = 0x38608000; only_32bit = 1; break; // C6.2.280\n                            case SWPH:   instruction = 0x78208000; only_32bit = 1; break; // C6.2.281\n                            case SWPAH:  instruction = 0x78a08000; only_32bit = 1; break; // C6.2.281\n                            case SWPALH: instruction = 0x78e08000; only_32bit = 1; break; // C6.2.281\n                            case SWPLH:  instruction = 0x78608000; only_32bit = 1; break; // C6.2.281\n\n                            case SWP:    instruction = 0xb8208000; only_32bit = 0; break; // C6.2.282\n                            case SWPA:   instruction = 0xb8a08000; only_32bit = 0; break; // C6.2.282\n                            case SWPAL:  instruction = 0xb8e08000; only_32bit = 0; break; // C6.2.282\n                            case SWPL:   instruction = 0xb8608000; only_32bit = 0; break; // C6.2.282\n\n                            default: assembler_error() ;\n                            }\n\n                        // <Ws>, <Xt>|<Wt>, [<Xn|SP> {, #0}]\n                        unsigned s = reg () ;\n                        comma() ;\n                        unsigned t = reg () ;\n                        comma() ;\n                        open_square() ;\n\n                        unsigned n = reg () ;\n                        optional_zero_offset() ;\n\n                        close_square() ;\n\n                        if (reg_size( t ) != reg_size( s ) \n                         || (only_32bit && 64 == reg_size( t ) )\n                         || 32 == reg_size( n ) )\n                            error( 16, NULL ) ;\n\n                        if (!only_32bit && 64 == reg_size( t ) )\n                            {\n                            instruction |= (1 << 30) ;\n                            }\n\n                        instruction |= (t & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        instruction |= (s & 0x1f) << 16;\n                        }\n                        break;\n\n                    case SYSL:\n                    case SYS:\n                        {\n                        int op1;\n                        int cn = 0;\n                        int cm = 0;\n                        int op2;\n                        unsigned t = 31 | 64;\n\n                        if (mnemonic == SYSL)\n                            {\n                            instruction = 0xd5280000;       // C6.2.286\n                            t = reg () ;\n                            comma() ;\n                            }\n                        else\n                            {\n                            instruction = 0xd5080000;       // C6.2.286\n                            }\n\n                        hash() ;\n                        op1 = expri () ;\n                        comma () ;\n                        if ('C' == nxt() || 'c' == nxt())\n                            {\n                            esi++;\n                            cn = expri () ;\n                            }\n                        else\n                            error( 16, 0 ) ;\n\n                        comma () ;\n                        if ('C' == nxt() || 'c' == nxt())\n                            {\n                            esi++;\n                            cm = expri () ;\n                            }\n                        else\n                            error( 16, 0 ) ;\n                        comma () ;\n                        hash() ;\n                        op2 = expri () ;\n\n                        if (mnemonic == SYS && ',' == nxt())\n                            {\n                                comma() ;\n                                t = reg () ;\n                            }\n\n                        if (op1 < 0 || op1 > 7\n                         || cm < 0  || cm > 15\n                         || cn < 0  || cn > 15\n                         || op2 < 0 || op2 > 7\n                         || 32 == reg_size( t ) )\n                            error( 16, NULL ) ;\n\n                        instruction |= op1 << 16;\n                        instruction |= cn << 12;\n                        instruction |= cm << 8;\n                        instruction |= op2 << 5;\n                        instruction |= (t & 0x1f) << 0;\n                        }\n                        break;\n\n                    case TLBI:\n                        {\n                        char *ops[] = { \"ALLE1\", \"ALLE1IS\", \"ALLE2\", \"ALLE2IS\", \"ALLE3\", \"ALLE3IS\", \"ASIDE1\", \"ASIDE1IS\", \"IPAS2E1\", \"IPAS2E1IS\", \"IPAS2LE1\", \"IPAS2LE1IS\", \"VAAE1\", \"VAAE1IS\", \"VAALE1\", \"VAALE1IS\", \"VAE1\", \"VAE1IS\", \"VAE2\", \"VAE2IS\", \"VAE3\", \"VAE3IS\", \"VALE1\", \"VALE1IS\", \"VALE2\", \"VALE2IS\", \"VALE3\", \"VALE3IS\", \"VMALLE1\", \"VMALLE1IS\", \"VMALLS12E1\", \"VMALLS12E1IS\", };\n\n                        unsigned code[] = { 0x47080 , 0x43080 , 0x47000 , 0x43000 , 0x67000 , 0x63000 , 0x00740 , 0x00340 , 0x44020 , 0x40020 , 0x440a0 , 0x400a0 , 0x00760 , 0x00360 , 0x007e0 , 0x003e0 , 0x00720 , 0x00320 , 0x47020 , 0x43020 , 0x67020 , 0x63020 , 0x007a0 , 0x003a0 , 0x470a0 , 0x430a0 , 0x670a0 , 0x630a0 , 0x07000 , 0x03000 , 0x470c0 , 0x430c0 };\n\n                        unsigned t = 31;\n                        int op = lookup( ops, sizeof( ops ) / sizeof( ops[0] ) ) ;\n\n                        if (op == -1 || !isspace( *esi ))\n                            error( 16, NULL ) ;\n\n                        instruction = 0xd5088000;\n                        instruction |= code[op];\n                        if (',' == nxt())\n                            {\n                            comma() ;\n                            t = reg () ;\n                            }\n                        instruction |= (t & 0x1f) << 0;\n                        }\n                        break;\n\n                    case STLXP:\n                    case STXP:\n                        {\n                        switch (mnemonic)\n                            {\n                            case STLXP: instruction = 0x88208000; break; // C6.2.236\n                            case STXP:  instruction = 0x88200000; break; // C6.2.269\n                            default: assembler_error() ;\n                            }\n\n                        unsigned s = reg () ;\n                        comma() ;\n\n                        unsigned t1 = reg () ;\n                        comma() ;\n                        unsigned t2 = reg () ;\n                        comma() ;\n\n                        open_square() ;\n\n                        unsigned n = reg () ;\n                        optional_zero_offset() ;\n\n                        close_square() ;\n\n                        if (64 == reg_size( s ) \n                         || reg_size( t1 ) != reg_size( t2 )\n                         || (32 == reg_size( n ) ))\n                            error( 16, NULL ) ;\n\n                        unsigned word_data = 32 == reg_size( t1 )  ;\n                        unsigned size_bit = word_data ? 0 : (1 << 30) ;\n\n                        instruction |= size_bit;\n                        instruction |= (t1 & 0x1f) << 0;\n                        instruction |= (t2 & 0x1f) << 10;\n                        instruction |= (s & 0x1f) << 16;\n                        instruction |= (n & 0x1f) << 5;\n                        }\n                        break;\n\n                    case STLXR:\n                    case STLXRB:\n                    case STLXRH:\n                        {\n                        switch (mnemonic)\n                            {\n                            case STLXR:  instruction = 0x8800fc00; break; // C6.2.237\n                            case STLXRB: instruction = 0x0800fc00; break; // C6.2.238\n                            case STLXRH: instruction = 0x4800fc00; break; // C6.2.239\n\n                            default: assembler_error() ;\n                            }\n\n                        unsigned s = reg () ;\n                        comma() ;\n\n                        unsigned t = reg () ;\n                        comma() ;\n\n                        open_square() ;\n\n                        unsigned n = reg () ;\n                        optional_zero_offset() ;\n\n                        close_square() ;\n\n                        unsigned word_data = 32 == reg_size( t )  ;\n                        unsigned size_bit = word_data ? 0 : (1 << 30) ;\n\n                        if (64 == reg_size( s ) \n                         || (32 == reg_size( n ) )\n                         || (!word_data && mnemonic != STLXR))\n                            error( 16, NULL ) ;\n\n                        instruction |= size_bit;\n                        instruction |= (t & 0x1f) << 0;\n                        instruction |= (s & 0x1f) << 16;\n                        instruction |= (n & 0x1f) << 5;\n                        }\n                        break;\n\n                    case LDRAA:\n                    case LDRAB:\n                        {\n                        switch (mnemonic)\n                            {\n                            case LDRAA: instruction = 0xf8200400; break; // C6.2.114\n                            case LDRAB: instruction = 0xf8a00400; break; // C6.2.114\n                            default: assembler_error() ;\n                            }\n\n                        unsigned t = reg () ;\n                        comma() ;\n                        open_square() ;\n\n                        unsigned n = reg () ;\n                        int offset = 0;\n                        if (',' == nxt())\n                            {\n                            comma () ;\n                            hash();\n                            offset = expri () ;\n                            }\n\n                        close_square() ;\n\n                        if ('!' == nxt())\n                            {\n                            esi++;\n                            instruction |= (1 << 11) ; // W\n                            }\n\n                        if (32 == reg_size( t ) \n                         || 32 == reg_size( n ) \n                         || 0 != (offset & 7)\n                         || offset < -4096 || offset > 4088)\n                            error( 16, NULL ) ;\n\n                        instruction |= (offset & 0x0ff8) << (12 - 3) ;\n                        instruction |= (offset & 0x1000) << (22 - 12) ; // sign bit\n                        instruction |= (t & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        }\n                        break;\n\n                    case CAS:\n                    case CASA:\n                    case CASAL:\n                    case CASL:\n\n                    case LDADD:\n                    case LDADDA:\n                    case LDADDAL:\n                    case LDADDL:\n\n                    case LDCLR:\n                    case LDCLRA:\n                    case LDCLRAL:\n                    case LDCLRL:\n\n                    case LDEOR:\n                    case LDEORA:\n                    case LDEORAL:\n                    case LDEORL:\n\n                    case LDSET:\n                    case LDSETA:\n                    case LDSETAL:\n                    case LDSETL:\n\n                    case LDSMAX:\n                    case LDSMAXA:\n                    case LDSMAXAL:\n                    case LDSMAXL:\n\n                    case LDSMIN:\n                    case LDSMINA:\n                    case LDSMINAL:\n                    case LDSMINL:\n\n                    case LDUMAX:\n                    case LDUMAXA:\n                    case LDUMAXAL:\n                    case LDUMAXL:\n\n                    case LDUMIN:\n                    case LDUMINA:\n                    case LDUMINAL:\n                    case LDUMINL:\n\n                        {\n                        // <Ws>, <Wt>, [<Xn|SP>]\n                        unsigned s = reg () ;\n                        comma() ;\n                        unsigned t = reg () ;\n                        comma() ;\n                        open_square() ;\n                        unsigned n = reg () ;\n                        close_square() ;\n\n                        switch (mnemonic)\n                            {\n                            case CAS:           instruction = 0x88a07c00 | 0x00000000; break; // C6.2.37\n                            case CASA:          instruction = 0x88a07c00 | 0x00400000; break; // C6.2.37\n                            case CASAL:         instruction = 0x88a07c00 | 0x00408000; break; // C6.2.37\n                            case CASL:          instruction = 0x88a07c00 | 0x00008000; break; // C6.2.37\n\n                            case LDADD:         instruction = 0xb8200000 | 0x00000000; break; // C6.2.88\n                            case LDADDA:        instruction = 0xb8200000 | 0x00800000; break; // C6.2.88\n                            case LDADDAL:       instruction = 0xb8200000 | 0x00c00000; break; // C6.2.88\n                            case LDADDL:        instruction = 0xb8200000 | 0x00400000; break; // C6.2.88\n\n                            case LDCLR:         instruction = 0xb8201000 | 0x00000000; break; // C6.2.101\n                            case LDCLRA:        instruction = 0xb8201000 | 0x00800000; break; // C6.2.101\n                            case LDCLRAL:       instruction = 0xb8201000 | 0x00c00000; break; // C6.2.101\n                            case LDCLRL:        instruction = 0xb8201000 | 0x00400000; break; // C6.2.101\n\n                            case LDEOR:         instruction = 0xb8202000 | 0x00000000; break; // C6.2.104\n                            case LDEORA:        instruction = 0xb8202000 | 0x00800000; break; // C6.2.104\n                            case LDEORAL:       instruction = 0xb8202000 | 0x00c00000; break; // C6.2.104\n                            case LDEORL:        instruction = 0xb8202000 | 0x00400000; break; // C6.2.104\n\n                            case LDSET:         instruction = 0xb8203000 | 0x00000000; break; // C6.2.128\n                            case LDSETA:        instruction = 0xb8203000 | 0x00800000; break; // C6.2.128\n                            case LDSETAL:       instruction = 0xb8203000 | 0x00c00000; break; // C6.2.128\n                            case LDSETL:        instruction = 0xb8203000 | 0x00400000; break; // C6.2.128\n\n                            case LDSMAX:        instruction = 0xb8204000 | 0x00000000; break; // C6.2.131\n                            case LDSMAXA:       instruction = 0xb8204000 | 0x00800000; break; // C6.2.131\n                            case LDSMAXAL:      instruction = 0xb8204000 | 0x00c00000; break; // C6.2.131\n                            case LDSMAXL:       instruction = 0xb8204000 | 0x00400000; break; // C6.2.131\n\n                            case LDSMIN:        instruction = 0xb8205000 | 0x00000000; break; // C6.2.131\n                            case LDSMINA:       instruction = 0xb8205000 | 0x00800000; break; // C6.2.131\n                            case LDSMINAL:      instruction = 0xb8205000 | 0x00c00000; break; // C6.2.131\n                            case LDSMINL:       instruction = 0xb8205000 | 0x00400000; break; // C6.2.131\n\n                            case LDUMAX:        instruction = 0xb8206000 | 0x00000000; break; // C6.2.131\n                            case LDUMAXA:       instruction = 0xb8206000 | 0x00800000; break; // C6.2.131\n                            case LDUMAXAL:      instruction = 0xb8206000 | 0x00c00000; break; // C6.2.131\n                            case LDUMAXL:       instruction = 0xb8206000 | 0x00400000; break; // C6.2.131\n\n                            case LDUMIN:        instruction = 0xb8207000 | 0x00000000; break; // C6.2.131\n                            case LDUMINA:       instruction = 0xb8207000 | 0x00800000; break; // C6.2.131\n                            case LDUMINAL:      instruction = 0xb8207000 | 0x00c00000; break; // C6.2.131\n                            case LDUMINL:       instruction = 0xb8207000 | 0x00400000; break; // C6.2.131\n\n                            default: assembler_error() ;\n                            }\n\n                        unsigned word_data = 32 == reg_size( s )  ;\n                        unsigned size_bit = (word_data ? 0 : (1 << 30)) ;\n\n                        if (reg_size( s ) != reg_size( t )\n                         || 32 == reg_size( n ) )\n                            error( 16, NULL ) ;\n\n                        instruction |= size_bit;\n                        instruction |= (s & 0x1f) << 16;\n                        instruction |= (t & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        }\n                        break;\n\n                    case STADDB:        // C6.2.221\n                    case STADDLB:       // C6.2.221\n                    case STADDH:        // C6.2.222\n                    case STADDLH:       // C6.2.222\n\n                    case STCLRB:        // C6.2.224\n                    case STCLRLB:       // C6.2.224\n                    case STCLRH:        // C6.2.225\n                    case STCLRLH:       // C6.2.225\n\n                    case STEORB:        // C6.2.227\n                    case STEORLB:       // C6.2.227\n                    case STEORH:        // C6.2.228\n                    case STEORLH:       // C6.2.228\n\n                    case STSETB:        // C6.2.248\n                    case STSETLB:       // C6.2.248\n                    case STSETH:        // C6.2.249\n                    case STSETLH:       // C6.2.249\n\n                    case STSMAXB:       // C6.2.251\n                    case STSMAXLB:      // C6.2.251\n                    case STSMAXH:       // C6.2.252\n                    case STSMAXLH:      // C6.2.252\n\n                    case STSMINB:       // C6.2.254\n                    case STSMINLB:      // C6.2.254\n                    case STSMINH:       // C6.2.255\n                    case STSMINLH:      // C6.2.255\n\n                    case STUMAXB:       // C6.2.260\n                    case STUMAXLB:      // C6.2.260\n                    case STUMAXH:       // C6.2.261\n                    case STUMAXLH:      // C6.2.261\n\n                    case STUMINB:       // C6.2.263\n                    case STUMINLB:      // C6.2.263\n                    case STUMINH:       // C6.2.264\n                    case STUMINLH:      // C6.2.264\n\n                        {\n                        // <Ws>, <Wt>, [<Xn|SP>] (documentation suggests an optional , #0 in the brackets.)\n                        unsigned s = reg () ;\n                        comma() ;\n                        open_square() ;\n                        unsigned n = reg () ;\n                        close_square() ;\n\n                        switch (mnemonic)\n                            {\n                            case STADDB:        instruction = 0x38200000 | 0x00000000; break;\n                            case STADDLB:       instruction = 0x38200000 | 0x00400000; break;\n                            case STADDH:        instruction = 0x78200000 | 0x00000000; break;\n                            case STADDLH:       instruction = 0x78200000 | 0x00400000; break;\n\n                            case STCLRB:        instruction = 0x38201000 | 0x00000000; break;\n                            case STCLRLB:       instruction = 0x38201000 | 0x00400000; break;\n                            case STCLRH:        instruction = 0x78201000 | 0x00000000; break;\n                            case STCLRLH:       instruction = 0x78201000 | 0x00400000; break;\n\n                            case STEORB:        instruction = 0x38202000 | 0x00000000; break;\n                            case STEORLB:       instruction = 0x38202000 | 0x00400000; break;\n                            case STEORH:        instruction = 0x78202000 | 0x00000000; break;\n                            case STEORLH:       instruction = 0x78202000 | 0x00400000; break;\n\n                            case STSETB:        instruction = 0x38203000 | 0x00000000; break;\n                            case STSETLB:       instruction = 0x38203000 | 0x00400000; break;\n                            case STSETH:        instruction = 0x78203000 | 0x00000000; break;\n                            case STSETLH:       instruction = 0x78203000 | 0x00400000; break;\n\n                            case STSMAXB:       instruction = 0x38204000 | 0x00000000; break;\n                            case STSMAXLB:      instruction = 0x38204000 | 0x00400000; break;\n                            case STSMAXH:       instruction = 0x78204000 | 0x00000000; break;\n                            case STSMAXLH:      instruction = 0x78204000 | 0x00400000; break;\n\n                            case STSMINB:       instruction = 0x38205000 | 0x00000000; break;\n                            case STSMINLB:      instruction = 0x38205000 | 0x00400000; break;\n                            case STSMINH:       instruction = 0x78205000 | 0x00000000; break;\n                            case STSMINLH:      instruction = 0x78205000 | 0x00400000; break;\n\n                            case STUMAXB:       instruction = 0x38206000 | 0x00000000; break;\n                            case STUMAXLB:      instruction = 0x38206000 | 0x00400000; break;\n                            case STUMAXH:       instruction = 0x78206000 | 0x00000000; break;\n                            case STUMAXLH:      instruction = 0x78206000 | 0x00400000; break;\n\n                            case STUMINB:       instruction = 0x38207000 | 0x00000000; break;\n                            case STUMINLB:      instruction = 0x38207000 | 0x00400000; break;\n                            case STUMINH:       instruction = 0x78207000 | 0x00000000; break;\n                            case STUMINLH:      instruction = 0x78207000 | 0x00400000; break;\n\n                            default: assembler_error() ;\n                            }\n\n                        if (64 == reg_size( s ) \n                         || 32 == reg_size( n ) )\n                            error( 16, NULL ) ;\n\n                        instruction |= (s & 0x1f) << 16;\n                        instruction |= 31;\n                        instruction |= (n & 0x1f) << 5;\n                        }\n                        break;\n\n                    case STADD:         // C6.2.223\n                    case STADDL:        // C6.2.223\n                    case STCLR:         // C6.2.226\n                    case STCLRL:        // C6.2.226\n                    case STEOR:         // C6.2.229\n                    case STEORL:        // C6.2.229\n                    case STSET:         // C6.2.250\n                    case STSETL:        // C6.2.250\n                    case STSMAX:        // C6.2.253\n                    case STSMAXL:       // C6.2.253\n                    case STSMIN:        // C6.2.256\n                    case STSMINL:       // C6.2.256\n                    case STUMAX:        // C6.2.262\n                    case STUMAXL:       // C6.2.262\n                    case STUMIN:        // C6.2.265\n                    case STUMINL:       // C6.2.265\n\n                        {\n                        // <Xs|Ws>, <Xt|Wt>, [<Xn|SP>]\n                        // Equivalent to LD* <Xs|Ws>, <XZR|WZR>, [<Xn|SP>]\n                        unsigned s = reg () ;\n                        comma() ;\n                        open_square() ;\n                        unsigned n = reg () ;\n                        close_square() ;\n\n                        switch (mnemonic)\n                            {\n                            case STADD:         instruction = 0xb8200000 | 0x0000001f; break;\n                            case STADDL:        instruction = 0xb8200000 | 0x0040001f; break;\n\n                            case STCLR:         instruction = 0xb8201000 | 0x0000001f; break;\n                            case STCLRL:        instruction = 0xb8201000 | 0x0040001f; break;\n\n                            case STEOR:         instruction = 0xb8202000 | 0x0000001f; break;\n                            case STEORL:        instruction = 0xb8202000 | 0x0040001f; break;\n\n                            case STSET:         instruction = 0xb8203000 | 0x0000001f; break;\n                            case STSETL:        instruction = 0xb8203000 | 0x0040001f; break;\n\n                            case STSMAX:        instruction = 0xb8204000 | 0x0000001f; break;\n                            case STSMAXL:       instruction = 0xb8204000 | 0x0040001f; break;\n\n                            case STSMIN:        instruction = 0xb8205000 | 0x0000001f; break;\n                            case STSMINL:       instruction = 0xb8205000 | 0x0040001f; break;\n\n                            case STUMAX:        instruction = 0xb8206000 | 0x0000001f; break;\n                            case STUMAXL:       instruction = 0xb8206000 | 0x0040001f; break;\n\n                            case STUMIN:        instruction = 0xb8207000 | 0x0000001f; break;\n                            case STUMINL:       instruction = 0xb8207000 | 0x0040001f; break;\n\n                            default: assembler_error() ;\n                            }\n\n                        unsigned word_data = 32 == reg_size( s )  ;\n                        unsigned size_bit = (word_data ? 0 : (1 << 30)) ;\n\n                        if (32 == reg_size( n ) )\n                            error( 16, NULL ) ;\n\n                        instruction |= size_bit;\n                        instruction |= (s & 0x1f) << 16;\n                        instruction |= (n & 0x1f) << 5;\n                        }\n                        break;\n\n                    case CASP:\n                    case CASPA:\n                    case CASPAL:\n                    case CASPL:\n                        {\n                        // <Xs|Ws>, <Xt|Wt>, [<Xn|SP>]\n                        // Equivalent to LD* <Xs|Ws>, <XZR|WZR>, [<Xn|SP>]\n                        unsigned s = reg () ;\n                        comma() ;\n                        unsigned s1 = reg () ;\n                        comma() ;\n                        unsigned t = reg () ;\n                        comma() ;\n                        unsigned t1 = reg () ;\n                        comma() ;\n                        open_square() ;\n                        unsigned n = reg () ;\n                        close_square() ;\n\n                        switch (mnemonic)       // C6.2.39\n                            {\n                            case CASP:  instruction = 0x08207c00 | 0x00000000; break; \n                            case CASPA: instruction = 0x08207c00 | 0x00400000; break; \n                            case CASPAL:instruction = 0x08207c00 | 0x00408000; break; \n                            case CASPL: instruction = 0x08207c00 | 0x00008000; break; \n\n                            default: assembler_error() ;\n                            }\n\n                        unsigned word_data = 32 == reg_size( s )  ;\n                        unsigned size_bit = (word_data ? 0 : (1 << 30)) ;\n\n                        if (reg_size( s ) != reg_size( t )\n                         || ((s1 & 0x7f) != s + 1) // X30, XZR or W30, WZR is allowed\n                         || ((t1 & 0x7f) != t + 1) // X30, XZR or W30, WZR is allowed\n                         || 32 == reg_size( n ) )\n                            error( 16, \"Pairs of registers must have sequential numbers and all be the same width\" ) ;\n\n                        instruction |= size_bit;\n                        instruction |= (s & 0x1f) << 16;\n                        instruction |= (t & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        }\n                        break;\n\n                    case CCMN:\n                    case CCMP:\n                        {\n                        switch (mnemonic)\n                            {\n                            case CCMN: instruction = 0x3a400000; break; // C6.2.43, C6.2.44\n                            case CCMP: instruction = 0x7a400000; break; // C6.2.45, C6.2.46\n\n                            default: assembler_error() ;\n                            }\n\n                        unsigned n = reg () ;\n                        comma () ;\n\n                        unsigned word_data = 32 == reg_size( n )  ;\n                        unsigned size_bit = (word_data ? 0 : (1 << 31)) ;\n\n                        if ('#' == nxt())\n                            {\n                            hash () ;\n                            instruction |= 0x800; // Immediate form C6.2.43, C6.2.45\n                            int imm5 = expri () ;\n                            if (imm5 < 0 || imm5 > 31)\n                                error( 8, NULL ) ;\n                            instruction |= imm5 << 16;\n                            }\n                        else\n                            {\n                            unsigned m = reg() ;\n\n                            if (reg_size( n ) != reg_size( m ))\n                                error( 16, NULL ) ;\n\n                            instruction |= (m & 0x1f) << 16;\n                            }\n\n                        comma () ;\n                        hash () ;\n                        int new_cond = expri () ;\n                        if (new_cond < 0 || new_cond > 15)\n                            error( 8, NULL ) ;\n                        instruction |= new_cond;\n\n                        comma () ;\n                        instruction |= validated_condition() << 12;\n\n                        instruction |= size_bit;\n                        instruction |= (n & 0x1f) << 5;\n                        }\n                        break;\n\n                    case CLREX:\n                        {\n                        int CRm = 15;\n                        if ('#' == nxt())\n                            {\n                            hash() ;\n                            CRm = expri() ;\n                            if (CRm < 0 || CRm >15)\n                                error( 8, NULL ) ;\n                            }\n\n                        instruction = 0xd503305f; // C6.2.49\n                        instruction |= CRm << 8;\n                        }\n                        break;\n\n                    case CLS:\n                    case CLZ:\n                        {\n                        if ('D' == nxt() || 'd' == nxt())\n                            {\n                            instruction = validated_FB_SIMD_instruction( mnemonic );\n                            break;\n                            }\n\n                        unsigned d = reg () ;\n                        comma () ;\n                        unsigned n = reg () ;\n                        if (reg_size( d ) != reg_size( n ))\n                            {\n                            error( 16, NULL ) ;\n                            }\n\n                        unsigned word_data = 32 == reg_size( d )  ;\n                        unsigned size_bit = (word_data ? 0 : (1 << 31)) ;\n\n                        switch (mnemonic)\n                            {\n                            case CLS: instruction = 0x5ac01400; break; // C6.2.50\n                            case CLZ: instruction = 0x5ac01000; break; // C6.2.51\n\n                            default: assembler_error() ;\n                            }\n                        instruction |= size_bit;\n                        instruction |= (d & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        }\n                        break;\n\n                    case CSEL:\n                    case CSINC:\n                    case CSINV:\n                    case CSNEG:\n                        {\n                        unsigned d = reg () ;\n                        comma () ;\n                        unsigned n = reg () ;\n                        comma () ;\n                        unsigned m = reg () ;\n                        comma () ;\n\n                        if (reg_size( d ) != reg_size( n )\n                         || reg_size( d ) != reg_size( m ))\n                            error( 16, NULL ) ;\n\n                        unsigned word_data = 32 == reg_size( d )  ;\n                        unsigned size_bit = (word_data ? 0 : (1 << 31)) ;\n\n                        switch (mnemonic)\n                            {\n                            case CSEL:  instruction = 0x1a800000; break; // C6.2.61\n                            case CSINC: instruction = 0x1a800400; break; // C6.2.64\n                            case CSINV: instruction = 0x5a800000; break; // C6.2.65\n                            case CSNEG: instruction = 0x5a800400; break; // C6.2.66\n\n                            default: assembler_error() ;\n                            }\n\n                        instruction |= size_bit;\n                        instruction |= (d & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        instruction |= (m & 0x1f) << 16;\n                        instruction |= validated_condition() << 12;\n                        }\n                        break;\n\n\n                    case CINC:\n                    case CINV:\n                    case CNEG:\n                        {\n                        unsigned d = reg () ;\n                        comma () ;\n                        unsigned n = reg () ;\n                        comma () ;\n\n                        if (reg_size( d ) != reg_size( n ))\n                            error( 16, NULL ) ;\n\n                        unsigned word_data = 32 == reg_size( d )  ;\n                        unsigned size_bit = (word_data ? 0 : (1 << 31)) ;\n\n                        switch (mnemonic)\n                            {\n                            case CINC: instruction = 0x1a800400; break; // C6.2.47\n                            case CINV: instruction = 0x5a800000; break; // C6.2.48\n                            case CNEG: instruction = 0x5a800400; break; // C6.2.58\n\n                            default: assembler_error() ;\n                            }\n\n                        instruction |= size_bit;\n                        instruction |= (d & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        instruction |= (n & 0x1f) << 16; // Same register twice\n                        instruction |= validated_condition() << 12;\n                        instruction ^= (1 << 12) ; // Invert the condition\n                        }\n                        break;\n\n                    case CSET:\n                    case CSETM:\n                        {\n                        unsigned d = reg () ;\n                        comma () ;\n\n                        unsigned word_data = 32 == reg_size( d )  ;\n                        unsigned size_bit = (word_data ? 0 : (1 << 31)) ;\n\n                        switch (mnemonic)\n                            {\n                            case CSET:  instruction = 0x1a9f07e0; break; // C6.2.62\n                            case CSETM: instruction = 0x5a9f03e0; break; // C6.2.63\n\n                            default: assembler_error() ;\n                            }\n\n                        instruction |= size_bit;\n                        instruction |= (d & 0x1f) << 0;\n                        int cond = validated_condition() ;\n                        if (cond < 0 || cond > 13)\n                            error( 16, NULL ) ;\n                        instruction |= cond << 12;\n                        instruction ^= (1 << 12) ; // Invert the condition\n                        }\n                        break;\n\n                    case CRC32B:\n                    case CRC32H:\n                    case CRC32W:\n                    case CRC32X:\n                    case CRC32CB:\n                    case CRC32CH:\n                    case CRC32CW:\n                    case CRC32CX:\n                        {\n                        unsigned d = reg () ;\n                        comma () ;\n                        unsigned n = reg () ;\n                        comma () ;\n                        unsigned m = reg () ;\n\n                        if (64 == reg_size( d ) || 64 == reg_size( n )\n                         || ((64 == reg_size( m )) != (mnemonic == CRC32X || mnemonic == CRC32CX)))\n                            error( 16, NULL ) ;\n\n                        switch (mnemonic)\n                            {\n                            case CRC32B: instruction = 0x1ac04000; break; // C6.2.59\n                            case CRC32H: instruction = 0x1ac04400; break; // C6.2.59\n                            case CRC32W: instruction = 0x1ac04800; break; // C6.2.59\n                            case CRC32X: instruction = 0x9ac04c00; break; // C6.2.59\n\n                            case CRC32CB: instruction = 0x1ac05000; break; // C6.2.59\n                            case CRC32CH: instruction = 0x1ac05400; break; // C6.2.59\n                            case CRC32CW: instruction = 0x1ac05800; break; // C6.2.59\n                            case CRC32CX: instruction = 0x9ac05c00; break; // C6.2.59\n\n                            default: assembler_error() ;\n                            }\n\n                        instruction |= (m & 0x1f) << 16;\n                        instruction |= (d & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        }\n                        break;\n\n                    case DC:\n                        {\n                        char *ops[] = { \"IVAC\", \"ISW\", \"CSW\", \"CISW\", \"ZVA\", \"CVAC\", \"CVAU\", \"CIVAC\", \"CVAP\" };\n                        unsigned code[] = { 0x00000620, 0x00000640, 0x00000a40, 0x00000e40,\n                                            0x00030420, 0x00030a20, 0x00030b20, 0x00030c20 };\n                        int op = lookup( ops, sizeof( ops ) / sizeof( ops[0] ) ) ;\n                        comma () ;\n                        unsigned d = reg () ;\n\n                        if (op < 0 || (32 == reg_size( d ) ) || !isspace( *esi ))\n                            error( 16, NULL ) ;\n\n                        instruction = 0xd5087000;       // C6.2.67\n                        instruction |= code[op];\n                        instruction |= (d & 0x1f) ;\n                        }\n                        break;\n\n                    case IC:\n                        {\n                        char *ops[] = { \"IALLU\", \"IALLUIS\", \"IVAU\" };\n                        unsigned code[] = { 0x00000500, 0x00000100, 0x00030520 };\n\n                        int op = lookup( ops, sizeof( ops ) / sizeof( ops[0] ) ) ;\n\n                        unsigned d = 64 | 0b11111;\n\n                        if (',' == nxt())\n                            {\n                            comma () ;\n                            d = reg () ;\n                            }\n\n                        if (op < 0 || (32 == reg_size( d ) ))\n                            error( 16, NULL ) ;\n\n                        instruction = 0xd5087000;       // C6.2.84\n                        instruction |= code[op];\n                        instruction |= (d & 0x1f) ;\n                        }\n                        break;\n\n                    case DMB:\n                    case DSB:\n                    case ISB:\n                        {\n                        char *ops[] = { \"SY\", \"ST\", \"LD\",\n                                        \"ISH\", \"ISHST\", \"ISHLD\",\n                                        \"NSH\", \"NSHST\", \"NSHLD\",\n                                        \"OSH\", \"OSHST\", \"OSHLD\" };\n                        unsigned code[] = { 0b1111, 0b1110, 0b1101,\n                                            0b1011, 0b1010, 0b1001,\n                                            0b0111, 0b0110, 0b0101,\n                                            0b0011, 0b0010, 0b0001 };\n\n                        switch (mnemonic)\n                            {\n                            case DMB: instruction = 0xd50330bf; break; // C6.2.71\n                            case DSB: instruction = 0xd503309f; break; // C6.2.73\n                            case ISB: instruction = 0xd50330df; break; // C6.2.73\n\n                            default: assembler_error() ;\n                            }\n\n                        int CRm = 0;\n\n                        if ('#' == nxt() )\n                            {\n                            hash() ;\n                            CRm = expri() ;\n                            if (CRm < 0 || CRm > 15)\n                                error( 8, NULL ) ;\n                            }\n                        else if (mnemonic == ISB)\n                            {\n                            // Optional SY, encoded as 15\n                            if (0 == strnicmp ((const char *)esi, \"SY\", 2))\n                                {\n                                esi += 2;\n                                }\n                            CRm = 15;\n                            }\n                        else\n                            {\n                            int op = lookup( ops, sizeof( ops ) / sizeof( ops[0] ) ) ;\n\n                            if (op < 0)\n                                error( 16, NULL ) ;\n                            CRm = code[op];\n                            }\n\n                        instruction |= CRm << 8;\n                        }\n                        break;\n\n                    case LDAXP:\n                        {\n                        unsigned t1 = reg () ;\n                        comma() ;\n                        unsigned t2 = reg () ;\n                        comma() ;\n\n                        unsigned word_data = 32 == reg_size( t1 )  ;\n                        unsigned size_bit = (word_data ? 0 : (1 << 30)) ;\n\n                        open_square() ;\n                        unsigned n = reg () ;\n                        optional_zero_offset() ;\n                        close_square () ;\n\n                        if (32 == reg_size( n ) \n                         || reg_size( t1 ) != reg_size( t2 ))\n                            error( 16, NULL ) ;\n\n                        instruction = 0x887f8000;       // C6.2.95\n                        instruction |= size_bit;\n                        instruction |= (t1 & 0x1f) << 0;\n                        instruction |= (t2 & 0x1f) << 10;\n                        instruction |= (n & 0x1f) << 5;\n                        }\n                        break;\n\n\n                    case LDNP:\n                    case STNP:\n                        {\n                        switch (mnemonic)\n                            {\n                            case LDNP:  instruction = 0x28400000; break; // C6.2.108\n                            case STNP:  instruction = 0x28000000; break; // C6.2.240\n\n                            default: assembler_error() ;\n                            }\n\n                        unsigned t1 = reg () ;\n                        comma() ;\n                        unsigned t2 = reg () ;\n                        comma() ;\n\n                        unsigned word_data = 32 == reg_size( t1 ) ;\n                        unsigned size_bit = (word_data ? 0 : (1 << 31)) ;\n\n                        struct addressing addressing = read_addressing();\n                        if ((addressing.mode != NO_OFFSET && addressing.mode != IMMEDIATE)\n                         || reg_size( t1 ) != reg_size( t2 )\n                         || (addressing.imm & 3) != 0 || (!word_data && (addressing.imm & 7) != 0)\n                         || addressing.imm < -512 || addressing.imm > 504\n                         || (word_data && (addressing.imm < -256 || addressing.imm > 252)))\n                            error( 16, NULL ) ;\n\n                        instruction |= size_bit;\n                        instruction |= (t1 & 0x1f) << 0;\n                        instruction |= (t2 & 0x1f) << 10;\n                        instruction |= (addressing.n & 0x1f) << 5;\n                        instruction |= ((addressing.imm >> (word_data ? 2 : 3)) & 0x7f) << 15;\n                        }\n                        break;\n\n                    case LDP:\n                    case LDPSW:\n                    case STP:\n                        {\n                        switch (mnemonic)\n                            {\n                            case LDP:   instruction = 0x28400000; break; // C6.2.109\n                            case LDPSW: instruction = 0x68400000; break; // C6.2.110\n                            case STP:   instruction = 0x28000000; break; // C6.2.241\n\n                            default: assembler_error() ;\n                            }\n\n                        unsigned t1 = reg () ;\n                        comma() ;\n                        unsigned t2 = reg () ;\n                        comma() ;\n\n                        // The whole point of LDPSW is to read words and extend them, hence:\n                        unsigned word_data = (32 == reg_size( t1 )) || (mnemonic == LDPSW) ;\n                        unsigned size_bit = (word_data ? 0 : (1 << 31)) ;\n\n                        struct addressing addressing = read_addressing();\n\n                        if (reg_size( t1 ) != reg_size( t2 )\n                         || (addressing.imm & 3) != 0 || (!word_data && (addressing.imm & 7) != 0)\n                         || addressing.imm < -512 || addressing.imm > 504\n                         || (word_data && (addressing.imm < -256 || addressing.imm > 252)))\n                            error( 16, NULL ) ;\n\n                        // Post-indexed: 0x00800000\n                        // Pre-indexed:  0x01800000\n                        // Signed offset:0x01000000\n\n                        switch (addressing.mode)\n                            {\n                            case NO_OFFSET:\n                            case IMMEDIATE:     instruction |= 0x01000000; break; // Signed offset\n                            case PRE_INDEXED:   instruction |= 0x01800000; break;\n                            case POST_INDEXED:  instruction |= 0x00800000; break;\n                            default: error( 16, NULL );\n                            }\n\n                        instruction |= size_bit;\n                        instruction |= (t1 & 0x1f) << 0;\n                        instruction |= (t2 & 0x1f) << 10;\n                        instruction |= (addressing.n & 0x1f) << 5;\n                        instruction |= ((addressing.imm >> (word_data ? 2 : 3)) & 0x7f) << 15;\n                        }\n                        break;\n\n                    case LDR:\n                    case STr:\n                        {\n                        if ('B' == nxt() || 'b' == nxt()\n                         || 'H' == nxt() || 'h' == nxt()\n                         || 'S' == nxt() || 's' == nxt()\n                         || 'D' == nxt() || 'd' == nxt()\n                         || 'Q' == nxt() || 'q' == nxt())\n                            {\n                            instruction = validated_FB_SIMD_instruction( mnemonic );\n                            break;\n                            }\n\n                        unsigned load_store_bit = (mnemonic == STr) ? 0 : (1 << 22) ;\n                        unsigned t = reg () ;\n                        comma () ;\n\n                        struct addressing addressing = read_addressing();\n\n                        unsigned word_data = 32 == reg_size( t ) ;\n                        unsigned size_bit = (word_data ? 0 : (1 << 30)) ;\n\n                        unsigned allowed_imm = word_data ? 2 : 3;\n\n                        switch (addressing.mode)\n                            {\n                            case NO_OFFSET:\n                            case IMMEDIATE:\n                                {\n                                if (addressing.imm < 0 || (0 != (addressing.imm & 0x3))\n                                 || (!word_data && (0 != (addressing.imm & 7))))\n                                    {\n                                    // Use STUR/LDUR\n                                    instruction = 0xb8000000;\n                                    instruction |= (addressing.n & 0x1f) << 5;\n                                    instruction |= validated_imm9( addressing.imm ) << 12;\n                                    }\n                                else\n                                    {\n                                    instruction = 0xb9000000;\n                                    instruction |= (addressing.n & 0x1f) << 5;\n                                    // Only positive offsets, imm12 * size of destination register\n                                    instruction |= validated_imm12( addressing.imm, word_data ? 2 : 3 ) << 10;\n                                    }\n                                }\n                                break;\n                            case PRE_INDEXED:\n                                {\n                                instruction = 0xb8000c00;\n                                instruction |= (addressing.n & 0x1f) << 5;\n                                instruction |= validated_imm9( addressing.imm ) << 12;\n                                }\n                                break;\n                            case POST_INDEXED:\n                                {\n                                instruction = 0xb8000400;\n                                instruction |= (addressing.n & 0x1f) << 5;\n                                instruction |= validated_imm9( addressing.imm ) << 12;\n                                }\n                                break;\n\n                            case REG_LSL:\n                            case REG_UXTW:\n                            case REG_SXTW:\n                            case REG_SXTX:\n                            case REG_UNMODIFIED:\n                                {\n                                instruction = 0xb8200800;    // C6.2.113\n                                instruction |= address_extend_op[addressing.mode];\n                                instruction |= (addressing.n & 0x1f) << 5;\n                                instruction |= (addressing.m & 0x1f) << 16;\n                                if (addressing.imm == allowed_imm)\n                                    instruction |= addressing.amount_present ? (1 << 12) : 0 ; // S bit\n                                else if (addressing.imm != 0)\n                                    error( 8, NULL ) ; // address out of range\n                                }\n                                break;\n\n                            case LITERAL:\n                                { // Offset from PC\n                                if (!load_store_bit)\n                                    error( 16, NULL ) ; // There is no STR literal\n\n                                load_store_bit = 0;\n                                instruction = 0x18000000;\n                                instruction |= validated_literal_offset( addressing.imm ) << 5;\n                                break ;\n                                }\n\n                            default:\n                                {\n                                error (16, NULL) ;\n                                }\n                                break;\n                            }\n\n                        instruction |= size_bit;\n                        instruction |= (t & 0x1f) << 0;\n                        instruction |= load_store_bit;\n                        }\n                        break;\n\n                    case LDRB:\n                    case STRB:\n                        {\n                        unsigned load_store_bit = (mnemonic == STRB) ? 0 : (1 << 22) ;\n                        unsigned t = reg () ;\n                        comma () ;\n\n                        struct addressing addressing = read_addressing();\n\n                        if (64 == reg_size( t ))\n                            error( 16, NULL ) ;\n\n                        switch (addressing.mode)\n                            {\n                            case NO_OFFSET:\n                            case IMMEDIATE:\n                                {\n                                instruction = 0x39000000;\n                                instruction |= (addressing.n & 0x1f) << 5;\n                                instruction |= validated_imm12( addressing.imm, 0 ) << 10;\n                                }\n                                break;\n                            case PRE_INDEXED:\n                                {\n                                instruction = 0x38000c00;\n                                instruction |= (addressing.n & 0x1f) << 5;\n                                instruction |= validated_imm9( addressing.imm ) << 12;\n                                }\n                                break;\n                            case POST_INDEXED:\n                                {\n                                instruction = 0x38000400;\n                                instruction |= (addressing.n & 0x1f) << 5;\n                                instruction |= validated_imm9( addressing.imm ) << 12;\n                                }\n                                break;\n\n                            case REG_LSL:\n                            case REG_UXTW:\n                            case REG_SXTW:\n                            case REG_SXTX:\n                            case REG_UNMODIFIED:\n                                {\n                                instruction = 0x38200800;    // C6.2.116\n                                instruction |= address_extend_op[addressing.mode];\n                                instruction |= (addressing.n & 0x1f) << 5;\n                                instruction |= (addressing.m & 0x1f) << 16;\n                                if (addressing.imm == 0)\n                                    instruction |= addressing.amount_present ? (1 << 12) : 0 ; // S bit\n                                else if (addressing.imm != 0)\n                                    error( 8, NULL ) ; // address out of range\n                                }\n                                break;\n\n                            default:\n                                {\n                                error (16, NULL) ;\n                                }\n                                break;\n                            }\n                        instruction |= load_store_bit;\n                        instruction |= (t & 0x1f) << 0;\n                        }\n                        break;\n\n                    case LDRH:\n                    case STRH:\n                        {\n                        unsigned load_store_bit = (mnemonic == STRH) ? 0 : (1 << 22) ;\n                        unsigned t = reg () ;\n                        comma () ;\n\n                        struct addressing addressing = read_addressing();\n\n                        if (64 == reg_size( t ))\n                            error( 16, NULL ) ;\n\n                        switch (addressing.mode)\n                            {\n                            case NO_OFFSET:\n                            case IMMEDIATE:\n                                {\n                                instruction = 0x79000000;\n                                instruction |= (addressing.n & 0x1f) << 5;\n                                instruction |= validated_imm12( addressing.imm, 1 ) << 10;\n                                }\n                                break;\n                            case PRE_INDEXED:\n                                {\n                                instruction = 0x78000c00;\n                                instruction |= (addressing.n & 0x1f) << 5;\n                                instruction |= validated_imm9( addressing.imm ) << 12;\n                                }\n                                break;\n                            case POST_INDEXED:\n                                {\n                                instruction = 0x78000400;\n                                instruction |= (addressing.n & 0x1f) << 5;\n                                instruction |= validated_imm9( addressing.imm ) << 12;\n                                }\n                                break;\n\n                            case REG_LSL:\n                            case REG_UXTW:\n                            case REG_SXTW:\n                            case REG_SXTX:\n                            case REG_UNMODIFIED:\n                                {\n                                instruction = 0x78200800;    // C6.2.116\n                                instruction |= address_extend_op[addressing.mode];\n                                instruction |= (addressing.n & 0x1f) << 5;\n                                instruction |= (addressing.m & 0x1f) << 16;\n                                if (addressing.imm == 2)\n                                    instruction |= (1 << 12) ; // S bit\n                                else if (addressing.imm != 0)\n                                    error( 8, NULL ) ; // address out of range\n                                }\n                                break;\n\n                            default:\n                                {\n                                error (16, NULL) ;\n                                }\n                                break;\n                            }\n                        instruction |= (t & 0x1f) << 0;\n                        instruction |= load_store_bit;\n                        }\n                        break;\n\n                    case LDRSB:\n                    case LDRSH:\n                    case LDRSW:\n                        {\n                        unsigned t = reg () ;\n                        comma () ;\n\n                        struct addressing addressing = read_addressing();\n\n                        unsigned word_data = 32 == reg_size( t ) ;\n                        unsigned allowed_imm = 0;\n\n                        // Size of destination register\n                        unsigned size_bits = (word_data ? (1 << 22) : 0) ;\n\n                        switch (mnemonic) // Size of data read\n                            {\n                            case LDRSB: size_bits |= 0x00000000; allowed_imm = 0; break;\n                            case LDRSH: size_bits |= 0x40000000; allowed_imm = 1; break;\n                            case LDRSW: size_bits |= 0x80000000; allowed_imm = 2; break;\n                            default: assembler_error();\n                        };\n\n                        switch (addressing.mode)\n                            {\n                            case NO_OFFSET:\n                            case IMMEDIATE:\n                                {\n                                instruction = 0x39800000;    // C6.2.119, C6.2.121, C6.2.123\n                                instruction |= (addressing.n & 0x1f) << 5;\n                                instruction |= validated_imm12( addressing.imm, allowed_imm ) << 10;\n                                }\n                                break;\n                            case PRE_INDEXED:\n                                {\n                                instruction = 0x38800c00;    // C6.2.119, C6.2.121, C6.2.123\n                                instruction |= (addressing.n & 0x1f) << 5;\n                                instruction |= validated_imm9( addressing.imm ) << 12;\n                                }\n                                break;\n                            case POST_INDEXED:\n                                {\n                                instruction = 0x38800400;    // C6.2.119, C6.2.121, C6.2.123\n                                instruction |= (addressing.n & 0x1f) << 5;\n                                instruction |= validated_imm9( addressing.imm ) << 12;\n                                }\n                                break;\n\n                            case REG_LSL:\n                            case REG_SXTW:\n                            // case REG_UXTW: Not a valid option for LDRSB?\n                            case REG_SXTX:\n                            case REG_UNMODIFIED:\n                                {\n                                instruction = 0x38a00800;    // C6.2.120, C6.2.122, C6.2.125\n                                instruction |= address_extend_op[addressing.mode];\n                                instruction |= (addressing.n & 0x1f) << 5;\n                                instruction |= (addressing.m & 0x1f) << 16;\n                                if (addressing.imm == allowed_imm)\n                                    instruction |= addressing.amount_present ? (1 << 12) : 0 ; // S bit\n                                else if (addressing.imm != 0)\n                                    error( 8, NULL ) ; // address out of range\n                                }\n                                break;\n\n                            case LITERAL:\n                                {\n                                if (mnemonic != LDRSW || word_data)\n                                    error( 16, NULL ) ; // No literal option for others\n                                instruction = 0x98000000;       // C6.2.124\n                                size_bits = 0; // All known, in this case\n                                instruction |= validated_literal_offset( addressing.imm ) << 5;\n                                break ;\n                                }\n\n                            default:\n                                {\n                                error (16, NULL) ;\n                                }\n                                break;\n                            }\n\n                            instruction |= size_bits;\n                            instruction |= (t & 0x1f) << 0;\n                        }\n                        break;\n\n                    case LDTR:\n                    case LDTRB:\n                    case LDTRH:\n                        {\n                        unsigned t = reg () ;\n                        comma () ;\n\n                        unsigned word_data = 32 == reg_size( t ) ;\n\n                        struct addressing addressing = read_addressing();\n\n                        if ((addressing.mode != NO_OFFSET && addressing.mode != IMMEDIATE)\n                         || (!word_data && mnemonic != LDTR))\n                            error (16, NULL) ;\n\n                        switch (mnemonic)\n                            {\n                            case LDTR:\n                                instruction = 0xb8400800;\n                                if (!word_data)\n                                    instruction |= (1 << 30);\n                                break; // C6.2.135\n                            case LDTRB:\n                                instruction = 0x38400800;\n                                break; // C6.2.136\n                            case LDTRH:\n                                instruction = 0x78400800;\n                                break; // C6.2.137\n                            default: assembler_error();\n                            };\n                        \n                        instruction |= (t & 0x1f) << 0;\n                        instruction |= (addressing.n & 0x1f) << 5;\n                        // Not as wide a range of addresses as LDR\n                        instruction |= validated_imm9( addressing.imm ) << 12;\n                        }\n                        break;\n\n                    case LDTRSB:\n                    case LDTRSH:\n                    case LDTRSW:\n                        {\n                        unsigned t = reg () ;\n                        comma () ;\n\n                        unsigned word_data = 32 == reg_size( t ) ;\n                        unsigned size_bit = (word_data ? (1 << 22) : 0) ;\n\n                        struct addressing addressing = read_addressing();\n\n                        if ((addressing.mode != NO_OFFSET && addressing.mode != IMMEDIATE)\n                         || (word_data && mnemonic == LDTRSW))\n                            error (16, NULL) ;\n\n                        switch (mnemonic)\n                            {\n                            case LDTRSB:\n                                instruction = 0x38800800;\n                                break; // C6.2.138\n                            case LDTRSH:\n                                instruction = 0x78800800;\n                                break; // C6.2.139\n                            case LDTRSW:\n                                instruction = 0xb8800800;\n                                size_bit = 0;\n                                break; // C6.2.140\n                            default: assembler_error();\n                            };\n                        \n                        instruction |= size_bit;\n                        instruction |= (t & 0x1f) << 0;\n                        instruction |= (addressing.n & 0x1f) << 5;\n                        instruction |= validated_imm9( addressing.imm ) << 12;\n                        }\n                        break;\n\n                    case LDURB:\n                    case STURB:\n                    case LDURH:\n                    case STURH:\n                    case LDUR:\n                    case STUR:\n                    case LDURSB:\n                    case LDURSH:\n                    case LDURSW:\n                    case STTR:\n                    case STTRB:\n                    case STTRH:\n                        {\n                        switch (mnemonic)\n                            {\n                            case LDURB: instruction = 0x38400000; break; // C6.2.148\n                            case STURB: instruction = 0x38000000; break; // C6.2.267\n                            case LDURH: instruction = 0x78400000; break; // C6.2.149\n                            case LDURSB:instruction = 0x38800000; break; // C6.2.150\n                            case LDURSH:instruction = 0x78800000; break; // C6.2.151\n                            case LDURSW:instruction = 0xb8800000; break; // C6.2.152\n                            case STURH: instruction = 0x78000000; break; // C6.2.268\n                            case LDUR:  instruction = 0xb8400000; break; // C6.2.147\n                            case STUR:  instruction = 0xb8000000; break; // C6.2.265\n                            case STTR:  instruction = 0xb8000800; break; // C6.2.257\n                            case STTRB: instruction = 0x38000800; break; // C6.2.258\n                            case STTRH: instruction = 0x78000800; break; // C6.2.259\n\n                            default: assembler_error() ;\n                            }\n\n                        unsigned t = reg () ;\n                        comma () ;\n\n                        struct addressing addressing = read_addressing();\n\n                        unsigned word_data = 32 == reg_size( t )  ;\n                        if (!word_data)\n                            {\n                            if (mnemonic != LDUR\n                             && mnemonic != LDURSB\n                             && mnemonic != LDURSH\n                             && mnemonic != LDURSW\n                             && mnemonic != STUR\n                             && mnemonic != STTR)\n                                {\n                                error (16, NULL) ;\n                                }\n\n                            if (mnemonic == LDUR || mnemonic == STUR || mnemonic == STTR)\n                                {\n                                instruction |= (1 << 30) ; // Transfer 64 bits, default 32\n                                }\n                            }\n                        else\n                            {\n                            if (mnemonic == LDURSW)    // Always expands to 64 bits\n                                error( 16, NULL ) ;\n\n                            if (mnemonic == LDURSB || mnemonic == LDURSH)\n                                instruction |= (1 << 22) ; // Expand to 32 bits, default 64\n                            }\n\n                        if (addressing.mode != NO_OFFSET && addressing.mode != IMMEDIATE)\n                            error( 16, NULL ) ;\n\n                        instruction |= t & 0x1f;\n                        instruction |= (addressing.n & 0x1f) << 5;\n                        instruction |= validated_imm9( addressing.imm ) << 12;\n                        }\n                        break;\n\n                    case LDXP:\n                        {\n                        unsigned t1 = reg () ;\n                        comma () ;\n                        unsigned t2 = reg () ;\n                        comma () ;\n\n                        struct addressing addressing = read_addressing();\n\n                        unsigned word_data = 32 == reg_size( t1 )  ;\n                        unsigned size_bit = (word_data ? 0 : (1 << 30)) ;\n\n                        if ((addressing.mode != NO_OFFSET && addressing.mode != IMMEDIATE)\n                         || reg_size( t1 ) != reg_size( t2 )\n                         || 32 == reg_size( addressing.n )  || addressing.imm != 0)\n                            error( 16, NULL ) ;\n\n                        instruction = 0x887f0000 | size_bit;    // C6.2.153\n                        instruction |= (t1 & 0x1f) << 0;\n                        instruction |= (t2 & 0x1f) << 10;\n                        instruction |= (addressing.n & 0x1f) << 5;\n                        instruction |= validated_imm9( addressing.imm ) << 12;\n                        }\n                        break;\n\n                    case STXR:\n                    case STXRB:\n                    case STXRH:\n                        {\n                        switch (mnemonic)\n                            {\n                            case STXR:  instruction = 0x88007c00; break;        // C6.2.270\n                            case STXRB: instruction = 0x08007c00; break;        // C6.2.271\n                            case STXRH: instruction = 0x48007c00; break;        // C6.2.272\n                            default: assembler_error() ;\n                            }\n\n                        unsigned s = reg () ;\n                        comma () ;\n                        unsigned t = reg () ;\n                        comma () ;\n\n                        open_square() ;\n\n                        unsigned n = reg () ;\n                        optional_zero_offset() ;\n\n                        close_square() ;\n\n                        unsigned word_data = 32 == reg_size( t )  ;\n                        unsigned size_bit = word_data ? 0 : (1 << 30) ;\n\n                        if (32 == reg_size( n ) \n                         || 64 == reg_size( s ) )\n                            error( 16, NULL ) ;\n\n                        instruction |= size_bit;\n                        instruction |= (t & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        instruction |= (s & 0x1f) << 16;\n                        }\n                        break;\n\n                    case LDXRB:\n                    case LDXRH:\n                        {\n                        switch (mnemonic)\n                            {\n                            case LDXRB: instruction = 0x085f7c00; break; // C6.2.155\n                            case LDXRH: instruction = 0x485f7c00; break; // C6.2.156\n                            default: assembler_error() ;\n                            }\n\n                        unsigned t = reg () ;\n                        comma () ;\n\n                        struct addressing addressing = read_addressing();\n\n                        if ((addressing.mode != NO_OFFSET && addressing.mode != IMMEDIATE)\n                         || 32 == reg_size( addressing.n ) || addressing.imm != 0)\n                            error( 16, NULL ) ;\n\n                        instruction |= (t & 0x1f) << 0;\n                        instruction |= (addressing.n & 0x1f) << 5;\n                        }\n                        break;\n\n                    case ASR:\n                    case LSL:\n                    case ROR:\n                    case LSR:\n                        {\n                        // Alias for UBFM/SBFM or V variant\n                        unsigned d = reg () ;\n                        comma () ;\n                        unsigned word_data = 32 == reg_size( d )  ;\n                        unsigned n = reg () ;\n                        comma () ;\n\n                        if ('#' == nxt())       // Alias for UBFM/SBFM/EXTR\n                            {\n                            switch (mnemonic)\n                                {\n                                case ASR: instruction = 0x13007c00; break; // C6.2.16   (SBFM)\n                                case LSL: instruction = 0x53000000; break; // C6.2.158  (UBFM)\n                                case LSR: instruction = 0x53007c00; break; // C6.2.161  (UBFM)\n                                case ROR: instruction = 0x13800000; break; // C6.2.204  (EXTR)\n                                default: assembler_error() ;\n                                }\n\n                            hash () ;\n                            unsigned shift = expri () ;\n\n                            unsigned bits = reg_size( d ) ;\n\n                            if (reg_size( d ) != reg_size( n )\n                             || (shift >= bits))\n                                error( 16, NULL ) ;\n\n                            unsigned immr = 0, imms = 0;\n\n                            switch (mnemonic)\n                                {\n                                case ASR: immr = shift;           imms = bits - 1;       break; // C6.2.16\n                                case LSL: immr = (-shift) % bits; imms = (bits-1)-shift; break; // C6.2.158\n                                case LSR: immr = shift;           imms = bits - 1;       break; // C6.2.161\n                                case ROR: immr = (n & 0x1f) ;     imms = shift;          break; // C6.2.204\n                                default: assembler_error() ;\n                                }\n\n                            // sf == N\n                            unsigned size_bits = (word_data ? 0 : 0x80400000) ;\n                            instruction |= size_bits;\n                            instruction |= (imms & 0x3f) << 10;\n                            instruction |= (immr & 0x3f) << 16;\n                            }\n                        else                    // Alias for V form\n                            {\n                            switch (mnemonic)\n                                {\n                                case ASR: instruction = 0x1ac02800; break; // C6.2.17\n                                case LSL: instruction = 0x1ac02000; break; // C6.2.159\n                                case LSR: instruction = 0x1ac02400; break; // C6.2.162\n                                case ROR: instruction = 0x1ac02c00; break; // C6.2.206\n                                default: assembler_error() ;\n                                }\n\n                            unsigned m = reg () ;\n\n                            if (reg_size( d ) != reg_size( n )\n                             || reg_size( n ) != reg_size( m ))\n                                error( 16, NULL ) ;\n\n                            unsigned size_bit = (word_data ? 0 : (1 << 31)) ;\n                            instruction |= size_bit;\n                            instruction |= (m & 0x1f) << 16;\n                            }\n\n                        instruction |= (d & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        }\n                        break;\n\n                    case EXTR:\n                        {\n                        unsigned d = reg () ;\n                        comma () ;\n                        unsigned n = reg () ;\n                        comma () ;\n                        unsigned m = reg () ;\n                        comma () ;\n                        hash () ;\n                        int lsb = expri () ;\n\n                        unsigned word_data = 32 == reg_size( d )  ;\n\n                        if (reg_size( d ) != reg_size( n )\n                         || reg_size( n ) != reg_size( m )\n                         || lsb < 0 || lsb >= reg_size( d ))\n                            error( 16, NULL ) ;\n\n                        instruction = 0x13800000;\n\n                        // sf == N\n                        unsigned size_bits = (word_data ? 0 : 0x80400000) ;\n                        instruction |= lsb << 10;\n                        instruction |= size_bits;\n                        instruction |= (m & 0x1f) << 16;\n                        instruction |= (d & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        }\n                        break;\n\n                    case MADD:\n                    case MSUB:\n                        {\n                        unsigned d = reg () ;\n                        comma () ;\n                        unsigned n = reg () ;\n                        comma () ;\n                        unsigned m = reg () ;\n                        comma () ;\n                        unsigned a = reg () ;\n\n                        if (reg_size( d ) != reg_size( n )\n                         || reg_size( d ) != reg_size( m )\n                         || reg_size( d ) != reg_size( a ))\n                            error( 16, NULL ) ;\n\n                        unsigned word_data = 32 == reg_size( d )  ;\n                        unsigned size_bit = (word_data ? 0 : (1 << 31)) ;\n\n                        switch (mnemonic)\n                            {\n                            case MADD: instruction = 0x1b000000; break;    // C6.2.163\n                            case MSUB: instruction = 0x1b008000; break;    // C6.2.176\n                            default: assembler_error() ;\n                            }\n                        instruction |= size_bit;\n                        instruction |= (d & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        instruction |= (m & 0x1f) << 16;\n                        instruction |= (a & 0x1f) << 10;\n                        }\n                        break;\n\n                    case SMADDL:\n                    case SMSUBL:\n                    case UMADDL:\n                    case UMSUBL:\n                        {\n                        unsigned d = reg () ;\n                        comma () ;\n                        unsigned n = reg () ;\n                        comma () ;\n                        unsigned m = reg () ;\n                        comma () ;\n                        unsigned a = reg () ;\n\n                        if (32 == reg_size( d ) \n                         || 64 == reg_size( n ) \n                         || 64 == reg_size( m ) \n                         || 32 == reg_size( a ) )\n                            error( 16, \"Registers must be: Xd, Wn, Wm, Xa\" ) ;\n\n                        switch (mnemonic)\n                            {\n                            case SMADDL: instruction = 0x9b200000; break;    // C6.2.215\n                            case SMSUBL: instruction = 0x9b208000; break;    // C6.2.218\n                            case UMADDL: instruction = 0x9ba00000; break;    // C6.2.297\n                            case UMSUBL: instruction = 0x9ba08000; break;    // C6.2.299\n                            default: assembler_error() ;\n                            }\n                        instruction |= (d & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        instruction |= (m & 0x1f) << 16;\n                        instruction |= (a & 0x1f) << 10;\n                        }\n                        break;\n\n                    case SMNEGL:\n                    case SMULL:\n                    case UMNEGL:\n                    case UMULL:\n                        {\n                        if ((mnemonic == SMULL || mnemonic == UMULL) && ('D' == nxt() || 'd' == nxt()))\n                            {\n                            instruction = validated_FB_SIMD_instruction( mnemonic );\n                            break;\n                            }\n\n                        unsigned d = reg () ;\n                        comma () ;\n                        unsigned n = reg () ;\n                        comma () ;\n                        unsigned m = reg () ;\n\n                        if (32 == reg_size( d ) \n                         || 64 == reg_size( n ) \n                         || 64 == reg_size( m ) )\n                            error( 16, \"Registers must be: Xd, Wn, Wm\" ) ;\n\n                        switch (mnemonic)\n                            {\n                            case SMNEGL:instruction = 0x9b20fc00; break;    // C6.2.217\n                            case SMULL: instruction = 0x9b207c00; break;    // C6.2.220\n                            case UMULL: instruction = 0x9ba07c00; break;    // C6.2.301\n                            case UMNEGL:instruction = 0x9ba0fc00; break;    // C6.2.298\n                            default: assembler_error() ;\n                            }\n                        instruction |= (d & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        instruction |= (m & 0x1f) << 16;\n                        }\n                        break;\n\n                    case MOV:\n                        {\n                        // Variations:\n                        // C6.2.165 MOV (to/from SP)\n                        // C6.2.169 MOV (register)\n\n                        // C6.2.166 MOV (inverted wide immediate)\n                        // C6.2.167 MOV (wide immediate)\n                        // C6.2.168 MOV (bitmask immediate)\n\n                        if ('D' == nxt() || 'd' == nxt())\n                            {\n                            instruction = validated_FB_SIMD_instruction( mnemonic );\n                            break;\n                            }\n\n                        unsigned d = reg () ;\n                        comma () ;\n\n                        unsigned word_data = 32 == reg_size( d )  ;\n\n                        if (nxt() == '#')\n                            {\n                            esi++;\n                            long long imm = expri () ;\n\n                            if (is_sp( d ))\n                                {\n                                // Alias of ORR, needed to write to SP. Why you can MOV to the zero register, IDK.\n                                instruction = 0x320003e0;       // C6.2.168\n                                instruction |= validated_N_immr_imms( imm, word_data ) << 10 ;\n                                }\n                            else\n                                {\n                                unsigned long long all_ones = word_data ? 0xffffffff : 0xffffffffffffffffull;\n\n                                unsigned long long eor = 0; // Don't invert\n\n                                instruction = 0;\n                                // Are all the relevant bits within a 16-bit area?\n\n                                // First, all other bits are zeros? (Use MOVZ)\n                                if (imm == (imm & 0xffffull))\n                                    {\n                                    instruction = 0x52800000; // No shift\n                                    }\n                                else if (imm == (imm & 0xffff0000ull))\n                                    {\n                                    imm = imm >> 16;\n                                    instruction = 0x52a00000; // 16 bit left shift\n                                    }\n                                else if (!word_data && imm == (imm & 0xffff00000000ull))\n                                    {\n                                    imm = imm >> 32;\n                                    instruction = 0x52c00000; // 32 bit left shift\n                                    }\n                                else if (!word_data && imm == (imm & 0xffff000000000000ull))\n                                    {\n                                    imm = imm >> 48;\n                                    instruction = 0x52e00000; // 48 bit left shift\n                                    }\n                                // Or all other bits are ones (use MOVN)\n                                else if ((imm | 0xffffull) == all_ones)\n                                    {\n                                    instruction = 0x12800000; // No shift\n                                    eor = all_ones;\n                                    }\n                                else if ((imm | 0xffff0000ull) == all_ones)\n                                    {\n                                    imm = imm >> 16;\n                                    eor = all_ones;\n                                    instruction = 0x12a00000; // 16 bit left shift\n                                    }\n                                else if (!word_data && (imm | 0xffff00000000ull) == all_ones)\n                                    {\n                                    imm = imm >> 32;\n                                    eor = all_ones;\n                                    instruction = 0x12c00000; // 32 bit left shift\n                                    }\n                                else if (!word_data && (imm | 0xffff000000000000ull) == all_ones)\n                                    {\n                                    imm = imm >> 48;\n                                    eor = all_ones;\n                                    instruction = 0x12e00000; // 48 bit left shift\n                                    }\n\n                                if (instruction != 0)\n                                    {\n                                    imm = imm ^ eor;\n                                    instruction |= ((imm & 0xffff) << 5) ;\n                                    }\n                                else\n                                    {\n                                    // Alias of ORR, needed to write to SP. Why you can MOV to the zero register, IDK.\n                                    instruction = 0x320003e0;       // C6.2.168\n                                    instruction |= validated_N_immr_imms( imm, word_data ) << 10 ;\n                                    }\n                                }\n                            }\n                        else\n                            {\n                            unsigned s = reg () ;\n\n                            if (reg_size( d ) != reg_size( s ))\n                                error( 16, NULL ) ;\n\n                            if (is_sp( d ) || is_sp( s ))\n                                { // To or from SP\n                                instruction = 0x11000000;  // C6.2.165 MOV (to/from SP)\n                                instruction |= (s & 0x1f) << 5;         // Rn\n                                }\n                            else\n                                { // Other register\n                                instruction = 0x2a0003e0;  // C6.2.169 MOV (register)\n                                instruction |= (s & 0x1f) << 16;        // Rm\n                                }\n                            }\n\n                        unsigned size_bit = (word_data ? 0 : (1 << 31)) ;\n\n                        instruction |= size_bit;\n                        instruction |= (d & 0x1f) << 0;\n                        }\n                        break;\n\n                    case MOVK:\n                    case MOVN:\n                    case MOVZ:\n                        {\n                        unsigned d = reg () ;\n                        comma () ;\n\n                        unsigned word_data = 32 == reg_size( d )  ;\n\n                        switch (mnemonic)\n                            {\n                            case MOVK: instruction = 0x72800000; break;       // C6.2.170\n                            case MOVN: instruction = 0x12800000; break;       // C6.2.171\n                            case MOVZ: instruction = 0x52800000; break;       // C6.2.172\n                            default: assembler_error() ;\n                            }\n\n                        unsigned size_bit = (word_data ? 0 : (1 << 31)) ;\n\n                        instruction |= size_bit;\n                        instruction |= (d & 0x1f) << 0;\n\n                        hash() ;\n\n                        long long imm = expri () ;\n                        int shift = 0;\n\n                        if (imm < 0 || imm > 65535)\n                            error( 8, NULL ) ;\n\n                        instruction |= imm << 5;\n\n                        if (nxt() == ',')\n                            {\n                            comma() ;\n                            nxt() ;\n\n                            if (strnicmp ((const char *)esi, \"LSL\", 3) == 0)\n                                {\n                                esi += 3;\n\n                                hash() ;\n\n                                shift = expri () ;\n                                if (shift != 0 && shift != 16 && shift != 32 && shift != 48)\n                                    error ( 16, \"Shift must be a multiple of 16, up to 48\" ) ;\n                                shift = (shift / 16) & 3;\n                                instruction |= shift << 21;\n                                }\n                            else\n                                {\n                                error( 16, NULL ) ;\n                                }\n                            }\n                        }\n                        break;\n\n                    case MRS:\n                        {\n                        unsigned t = reg () ;\n                        comma () ;\n\n                        if (32 == reg_size( t ) )\n                            error( 16, NULL );\n\n                        instruction = 0xd5300000;\n                        instruction |= validated_system_register();\n                        instruction |= (t & 0x1f) << 0;\n                        }\n                        break;\n\n                    case MSR:\n                        {\n                        char *immediate_targets[] = { \"SPSel\", \"DAIFSet\", \"DAIFClr\", \"UAO\", \"PAN\" };\n                        int entry = lookup( immediate_targets, sizeof( immediate_targets ) / sizeof( immediate_targets[0] ) );\n                        unsigned code[] = { 0b000 << 16 | 0b101 << 5, // SPSel\n                                            0b011 << 16 | 0b110 << 5, // DAIFSet\n                                            0b011 << 16 | 0b111 << 5, // DAIFClr\n                                            0b000 << 16 | 0b011 << 5, // UAO\n                                            0b000 << 16 | 0b100 << 5  // PAN\n                                            };\n\n                        if (entry >= 0 && !isspace( *esi))\n                            error( 16, \"Unnown tlbi_op\" );\n\n                        if (entry >= 0)\n                            {\n                            instruction = 0xd5300000;   // C6.2.174\n                            instruction |= code[entry];\n                            }\n                        else\n                            {\n                            instruction = 0xd5100000;   // C6.2.175\n                            instruction |= validated_system_register();\n                            }\n\n                        comma () ;\n                        unsigned t = reg () ;\n                        instruction |= (t & 0x1f) << 0;\n\n                        if (32 == reg_size( t ) )\n                            error( 16, NULL );\n                        }\n                        break;\n\n                    case MVN:\n                    case NEG:\n                    case NEGS:\n                        {\n                        unsigned d = reg () ;\n\n                        unsigned word_data = 32 == reg_size( d )  ;\n\n                        comma () ;\n                        unsigned m = reg () ;\n\n                        int shift = 0;\n                        int amount = 0;\n\n                        if (',' == nxt())\n                            {\n                            comma () ;\n                            shift = shift_type() ;\n                            hash () ;\n                            amount = expri () ;\n                            if (amount < 0 || amount > 63 || (amount > 31 && word_data))\n                                {\n                                error ( 16, NULL ) ;\n                                }\n                            // Only MVN of these three allows ROR shifts\n                            if (shift == 3 && mnemonic != MVN)\n                                {\n                                error ( 16, NULL ) ;\n                                }\n                            }\n\n                        switch (mnemonic)\n                            {\n                            case MVN : instruction = 0x2a2003e0; break;       // C6.2.178\n                            case NEG : instruction = 0x4b0003e0; break;       // C6.2.179\n                            case NEGS: instruction = 0x6b0003e0; break;       // C6.2.180\n                            default: assembler_error() ;\n                            }\n\n                        unsigned size_bit = (word_data ? 0 : (1 << 31)) ;\n\n                        instruction |= size_bit;\n                        instruction |= (d & 0x1f) << 0;\n                        instruction |= (m & 0x1f) << 16;\n                        instruction |= shift << 22;\n                        instruction |= amount << 10;\n                        }\n                        break;\n\n\n                    case NGC:\n                    case NGCS:\n                        {\n                        unsigned d = reg () ;\n\n                        unsigned word_data = 32 == reg_size( d )  ;\n\n                        comma () ;\n                        unsigned m = reg () ;\n\n                        switch (mnemonic)\n                            {\n                            case NGC : instruction = 0x5a0003e0; break;       // C6.2.181\n                            case NGCS: instruction = 0x7a0003e0; break;       // C6.2.182\n                            default: assembler_error() ;\n                            }\n\n                        unsigned size_bit = (word_data ? 0 : (1 << 31)) ;\n\n                        instruction |= size_bit;\n                        instruction |= (d & 0x1f) << 0;\n                        instruction |= (m & 0x1f) << 16;\n                        }\n                        break;\n\n                    case ORN:\n                        {\n                        unsigned d = reg () ;\n                        comma () ;\n                        unsigned n = reg () ;\n                        comma () ;\n                        unsigned m = reg () ;\n\n                        unsigned word_data = 32 == reg_size( d )  ;\n\n                        int shift = 0;\n                        int amount = 0;\n\n                        if (',' == nxt())\n                            {\n                            comma () ;\n                            shift = shift_type() ;\n                            hash () ;\n                            amount = expri () ;\n                            if (amount < 0 || amount > 63 || (amount > 31 && word_data))\n                                {\n                                error ( 16, NULL ) ;\n                                }\n                            }\n\n                        instruction = 0x2a200000;       // C6.2.184\n\n                        if (reg_size( d ) != reg_size( n )\n                         || reg_size( d ) != reg_size( m ))\n                            error( 16, NULL ) ;\n\n                        unsigned size_bit = (word_data ? 0 : (1 << 31)) ;\n\n                        instruction |= size_bit;\n                        instruction |= (d & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        instruction |= (m & 0x1f) << 16;\n                        instruction |= shift << 22;\n                        instruction |= amount << 10;\n                        }\n                        break;\n\n                    case AND:\n                    case ANDS:\n                    case EOR:\n                    case ORR:\n                    case TST:\n                    case EON:\n                        {\n                        if ((mnemonic == ORR || mnemonic == AND || mnemonic == EOR)\n                         && ('D' == nxt() || 'd' == nxt()))\n                            {\n                            instruction = validated_FB_SIMD_instruction( mnemonic );\n                            break;\n                            }\n\n                        unsigned d;\n                        if (mnemonic != TST)\n                            {\n                            d = reg () ;\n                            comma () ;\n                            }\n\n                        unsigned n = reg () ;\n                        comma () ;\n\n                        if (mnemonic == TST)\n                            {\n                            d = 0x1f | reg_size( n ) | REGISTER_IS_ZERO; \n                            }\n\n                        if (reg_size( d ) != reg_size( n ))\n                            error( 16, NULL ) ;\n\n                        unsigned word_data = 32 == reg_size( d )  ;\n                        unsigned size_bit = (word_data ? 0 : (1 << 31)) ;\n\n                        if (mnemonic != EON && '#' == nxt())\n                            {\n                            switch (mnemonic)\n                                {\n                                case AND:       instruction = 0x12000000; break; // C6.2.11\n                                case TST:\n                                case ANDS:      instruction = 0x72000000; break; // C6.2.13\n                                case EOR:       instruction = 0x52000000; break; // C6.2.75\n                                case ORR:       instruction = 0x32000000; break; // C6.2.185\n                                default: assembler_error() ;\n                                }\n                            \n                            esi++;\n                            long long imm = expri () ;\n                            instruction |= validated_N_immr_imms( imm, word_data ) << 10;\n                            }\n                        else\n                            {\n                            switch (mnemonic)\n                                {\n                                case AND:       instruction = 0x0a000000; break; // C6.2.12\n                                case TST:\n                                case ANDS:      instruction = 0x6a000000; break; // C6.2.14\n                                case EON:       instruction = 0x4a200000; break; // C6.2.74\n                                case EOR:       instruction = 0x4a000000; break; // C6.2.76\n                                case ORR:       instruction = 0x2a000000; break; // C6.2.186\n                                default: assembler_error() ;\n                                }\n                            \n                            unsigned m = reg () ;\n\n                            int shift = 0;\n                            int amount = 0;\n\n                            if (',' == nxt())\n                                {\n                                comma () ;\n                                shift = shift_type() ;\n                                hash () ;\n                                amount = expri () ;\n                                if (amount < 0 || amount > 63 || (amount > 31 && word_data))\n                                    {\n                                    error ( 16, NULL ) ;\n                                    }\n                                }\n\n                            if (reg_size( d ) != reg_size( n )\n                             || reg_size( d ) != reg_size( m ))\n                                error( 16, NULL ) ;\n\n                            instruction |= (m & 0x1f) << 16;\n                            instruction |= shift << 22;\n                            instruction |= amount << 10;\n                            }\n\n                        instruction |= size_bit;\n                        instruction |= (d & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        }\n                        break;\n\n                    case PACDA:\n                    case PACDB:\n                    case PACIA:\n                    case PACIB:\n                        {\n                        unsigned d = reg () ;\n                        comma () ;\n                        unsigned n = reg () ;\n                        switch (mnemonic)\n                            {\n                            case PACDA: instruction = 0xdac10800; break;       // C6.2.187\n                            case PACDB: instruction = 0xdac10c00; break;       // C6.2.188\n                            case PACIA: instruction = 0xdac10000; break;       // C6.2.190\n                            case PACIB: instruction = 0xdac10400; break;       // C6.2.191\n                            default: assembler_error() ;\n                            }\n\n                        if (32 == reg_size( d ) \n                         || 32 == reg_size( n ) \n                         || (n == 31 && 0 != (n & REGISTER_IS_ZERO))) // XZR not allowed\n                            {\n                            error( 16, NULL ) ;\n                            }\n\n                        instruction |= (d & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        }\n                        break;\n\n                    case PACDZA:\n                    case PACDZB:\n                    case PACIZA:\n                    case PACIZB:\n                        {\n                        unsigned d = reg () ;\n                        switch (mnemonic)\n                            {\n                            case PACDZA: instruction = 0xdac12be0; break;       // C6.2.187\n                            case PACDZB: instruction = 0xdac12fe0; break;       // C6.2.188\n                            case PACIZA: instruction = 0xdac123e0; break;       // C6.2.190\n                            case PACIZB: instruction = 0xdac127e0; break;       // C6.2.191\n                            default: assembler_error() ;\n                            }\n                        \n                        instruction |= (d & 0x1f) << 0;\n                        if (32 == reg_size( d ) )\n                            {\n                            error( 16, NULL ) ;\n                            }\n                        }\n                        break;\n\n                    case PACGA:\n                        {\n                        unsigned d = reg () ;\n                        comma () ;\n                        unsigned n = reg () ;\n                        comma () ;\n                        unsigned m = reg () ;\n\n                        switch (mnemonic)\n                            {\n                            case PACGA: instruction = 0x9ac03000; break;       // C6.2.189\n                            default: assembler_error() ;\n                            }\n\n                        if (32 == reg_size( d ) \n                         || 32 == reg_size( n ) \n                         || 32 == reg_size( m ) \n                         || (m == 31 && 0 != (m & REGISTER_IS_ZERO))) // XZR not allowed\n                            {\n                            error( 16, NULL ) ;\n                            }\n\n                        instruction |= (d & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        instruction |= (m & 0x1f) << 16;\n                        }\n                        break;\n\n                    case PRFM:\n                        {\n                        char *prfops_type[] = { \"PLD\", \"PLI\", \"PST\" };\n                        char *prfops_target[] = { \"L1\", \"L2\", \"L3\" };\n                        char *prfops_policy[] = { \"KEEP\", \"STRM\" };\n\n                        int prfop = 0;\n\n                        if ('#' == nxt() )\n                            {\n                            hash();\n                            prfop = expri () ;\n                            }\n                        else\n                            {\n                            prfop = (lookup( prfops_type, 3 ) << 3)\n                                  | (lookup( prfops_target, 3 ) << 1)\n                                  | (lookup( prfops_policy, 2 ) << 0) ;\n                            }\n\n                        if (prfop < 0 || prfop > 31)\n                            error( 16, NULL ) ;\n\n                        comma () ;\n\n                        struct addressing addressing = read_addressing();\n\n                        if (addressing.mode == LITERAL)\n                            {\n                            // Literal\n                            instruction = 0xd8000000;           // C6.2.193\n                            instruction |= validated_literal_offset( addressing.imm ) << 5;\n                            }\n                        else if (addressing.mode == NO_OFFSET || addressing.mode == IMMEDIATE)\n                            {\n                            if (addressing.imm >= 0 && addressing.imm <= 32760 && (addressing.imm & 7) == 0)\n                                {\n                                instruction = 0xf9800000;       // C6.2.192\n                                instruction |= validated_imm12( addressing.imm, 3 ) << 10;\n                                }\n                            else\n                                {\n                                instruction = 0xf8800000;       // C6.2.195\n                                instruction |= validated_imm9( addressing.imm ) << 12;\n                                }\n                            }\n                        else if (addressing.mode < LITERAL)\n                            { // register\n                            instruction = 0xf8a00800;           // C6.2.194\n                            instruction |= address_extend_op[addressing.mode];\n                            instruction |= (addressing.m & 0x1f) << 16;\n                            if (addressing.imm == 3)\n                                instruction |= (1 << 12) ;\n                            else if (addressing.imm != 0\n                                  || (!addressing.amount_present && addressing.mode == REG_LSL))\n                                error( 8, \"Only shifts #0 and #3 allowed, must be present with LSL\" ) ;\n                            }\n                        else\n                            error( 16, NULL ) ;\n\n                        instruction |= (addressing.n & 0x1f) << 5;\n                        instruction |= prfop << 0;\n                        }\n                        break;\n\n                    case REV:\n                    case REV16:\n                    case REV32:\n                    case REV64:\n                    case RBIT:\n                        {\n                        unsigned d = reg () ;\n                        comma () ;\n                        unsigned n = reg () ;\n                        switch (mnemonic)\n                            {\n                            case REV:   instruction = 0x5ac00800; break; // C6.2.200\n                            case REV16: instruction = 0x5ac00400; break; // C6.2.201\n                            case REV32: instruction = 0xdac00800; break; // C6.2.202\n                            case REV64: instruction = 0xdac00c00; break; // C6.2.203\n                            case RBIT:  instruction = 0x5ac00000; break; // C6.2.197\n\n                            default: assembler_error() ;\n                            }\n\n                        switch (mnemonic)\n                            {\n                            case REV:   if (64 == reg_size( n ) ) instruction |= (1 << 31) | (1 << 10) ; break;\n                            case RBIT:\n                            case REV16: if (64 == reg_size( n ) ) instruction |= (1 << 31) ; break;\n\n                            case REV32: \n                            case REV64: if (32 == reg_size( n ) ) error( 16, NULL ) ; break;\n\n                            default: assembler_error() ;\n                            }\n\n                        if (reg_size( d ) != reg_size( n ))\n                            error( 16, NULL ) ;\n\n                        instruction |= (d & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        }\n                        break;\n\n                    case SMULH:\n                    case UMULH:\n                        {\n                        unsigned d = reg () ;\n                        comma () ;\n                        unsigned n = reg () ;\n                        comma () ;\n                        unsigned m = reg () ;\n                        switch (mnemonic)\n                            {\n                            case SMULH: instruction = 0x9b407c00; break; // C6.2.200\n                            case UMULH: instruction = 0x9bc07c00; break; // C6.2.300\n\n                            default: assembler_error() ;\n                            }\n\n                        if (32 == reg_size( d ) \n                         || 32 == reg_size( n ) \n                         || 32 == reg_size( m ) )\n                            error( 16, NULL ) ;\n\n                        instruction |= (d & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        instruction |= (m & 0x1f) << 16;\n                        }\n                        break;\n\n\n                    case SBFM:  // C6.2.210\n                    case UBFM:  // C6.2.294\n\n                    // Alias...\n                    case SBFIZ: // C6.2.209,\n                    case UBFIZ: // C6.2.293\n                    case SBFX:  // C6.2.211\n                    case UBFX:  // C6.2.295\n                        {\n                        // Two registers, two constants\n                        instruction = 0x13000000;\n                        if (mnemonic == UBFIZ || mnemonic == UBFM || mnemonic == UBFX) // Unsigned\n                            instruction |= 0x40000000;\n\n                        unsigned d = reg () ;\n                        comma () ;\n                        unsigned n = reg () ;\n                        comma () ;\n                        hash () ;\n                        int c1 = expri () ;\n                        comma() ;\n                        hash () ;\n                        int c2 = expri () ;\n\n                        unsigned word_data = 32 == reg_size( d )  ;\n                        unsigned size_bits = word_data ? 0 : 0x80400000; // sf != N is a reserved value\n\n                        switch (mnemonic)\n                            {\n                            case UBFIZ:\n                            case SBFIZ: c1 = ((unsigned) -c1) % reg_size( d ); c2 --; break;\n\n                            case UBFX:\n                            case SBFX: c2 += c1 - 1; break; \n\n                            case SBFM: break;\n                            case UBFM: break;\n                            default: assembler_error() ;\n                            }\n\n                        if (reg_size( d ) != reg_size( n )\n                         || c1 < 0 || c1 > 63 || (word_data && c1 > 31)\n                         || c2 < 0 || c2 > 63 || (word_data && c2 > 31))\n                            {\n                            error( 16, NULL ) ;\n                            }\n\n                        instruction |= size_bits;\n                        instruction |= (d & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        instruction |= c1 << 16;\n                        instruction |= c2 << 10;\n                        }\n                        break;\n\n                    case SXTB:\n                    case SXTH:\n                    case SXTW:\n                    case UXTB:\n                    case UXTH:\n                    case UXTW: // This is an 'unofficial' mnemonic\n                        {\n                        // Two registers, implicit constants\n\n                        switch (mnemonic)\n                            {\n                            case SXTB: instruction = 0x13001c00; break; // C6.2.283\n                            case SXTH: instruction = 0x13003c00; break; // C6.2.284\n                            case SXTW: instruction = 0x93407c00; break; // C6.2.285\n                            case UXTB: instruction = 0x53001c00; break; // C6.2.302\n                            case UXTH: instruction = 0x53003c00; break; // C6.2.303\n                            case UXTW: instruction = 0x53000000; break;\n                            default: assembler_error() ;\n                            }\n\n                        unsigned d = reg () ;\n                        comma () ;\n                        unsigned n = reg () ;\n                        int c1 = 0;\n                        int c2 = 0; // Initial value to avoid compiler warning\n\n                        unsigned word_data = 32 == reg_size( d )  ;\n                        unsigned size_bits = word_data ? 0 : ((1 << 31) | (1 << 22)) ;\n\n                        switch (mnemonic)\n                            {\n                            case UXTB:\n                            case SXTB: c2 = 7; break;\n                            case UXTH:\n                            case SXTH: c2 = 15; break;\n                            case SXTW:\n                            case UXTW: c2 = 31; break;\n                            default: assembler_error() ;\n                            }\n\n                        if (reg_size( d ) < reg_size( n ) \n                         || c1 < 0 || c1 >= reg_size( d )\n                         || c2 < 0 || c2 >= reg_size( d )\n                         || ( word_data && mnemonic == SXTW)\n                         || ( word_data && mnemonic == UXTW)\n                         || (!word_data && mnemonic == UXTB)\n                         || (!word_data && mnemonic == UXTH))\n                            {\n                            error( 16, NULL ) ;\n                            }\n\n                        instruction |= size_bits;\n                        instruction |= (d & 0x1f) << 0;\n                        instruction |= (n & 0x1f) << 5;\n                        instruction |= c1 << 16;\n                        instruction |= c2 << 10;\n                        }\n                        break;\n\n                    case DRPS:\n                        {\n                        instruction = 0xd6bf03e0;\n                        }\n                        break;\n\n                    case PACIA1716:\n                        {\n                        instruction = 0xd503211f;\n                        }\n                        break;\n\n                    case PACIASP:\n                        {\n                        instruction = 0xd503233f;\n                        }\n                        break;\n\n                    case PACIAZ:\n                        {\n                        instruction = 0xd503231f;\n                        }\n                        break;\n\n                    case PACIB1716:\n                        {\n                        instruction = 0xd503215f;\n                        }\n                        break;\n\n                    case PACIBSP:\n                        {\n                        instruction = 0xd503237f;\n                        }\n                        break;\n\n                    case PACIBZ:\n                        {\n                        instruction = 0xd503235f;\n                        }\n                        break;\n\n                    case RET:\n                        {\n                        instruction = 0xd65f0000;       // C6.2.198\n                        int link = 30;\n                        if ('X' == nxt() || 'x' == nxt ())\n                            link = reg () ;\n                        instruction |= (link & 0x1f) << 5;\n                        }\n                        break;\n\n                    case ERET:\n                        {\n                        instruction = 0xd69f03e0;       // C6.2.77\n                        }\n                        break;\n\n                    case RETAA:\n                        {\n                        instruction = 0xd65f0bff;       // C6.2.199\n                        }\n                        break;\n\n                    case RETAB:\n                        {\n                        instruction = 0xd65f0fff;       // C6.2.199\n                        }\n                        break;\n\n                    case ERETAA:\n                        {\n                        instruction = 0xd69f0bff;       // C6.2.78\n                        }\n                        break;\n\n                    case ERETAB:\n                        {\n                        instruction = 0xd69f0fff;       // C6.2.78\n                        }\n                        break;\n\n                    case HINT:\n                        {\n                        instruction = 0xd503201f;       // C6.2.81\n                        hash () ;\n                        int imm = expri () ;\n                        if (imm < 0 || imm > 127)\n                            error( 8, NULL ) ;\n                        instruction |= imm << 5;\n                        }\n                        break;\n\n                    case NOP:\n                        {\n                        instruction = 0xd503201f;       // C6.2.81\n                        instruction |= (0 << 5) ;        // C6.2.183\n                        }\n                        break;\n\n                    case YIELD:\n                        {\n                        instruction = 0xd503201f;       // C6.2.81\n                        instruction |= (1 << 5) ;        // C6.2.307\n                        }\n                        break;\n\n                    case WFE:\n                        {\n                        instruction = 0xd503201f;       // C6.2.81\n                        instruction |= (2 << 5) ;        // C6.2.304\n                        }\n                        break;\n\n                    case WFI:\n                        {\n                        instruction = 0xd503201f;       // C6.2.81\n                        instruction |= (3 << 5) ;        // C6.2.305\n                        }\n                        break;\n\n                    case SEV:\n                        {\n                        instruction = 0xd503201f;       // C6.2.81\n                        instruction |= (4 << 5) ;        // C6.2.213\n                        }\n                        break;\n\n                    case SEVL:\n                        {\n                        instruction = 0xd503201f;       // C6.2.81\n                        instruction |= (5 << 5) ;        // C6.2.214\n                        }\n                        break;\n\n                    case ESB:\n                        {\n                        instruction = 0xd503201f;       // C6.2.81\n                        instruction |= (16 << 5) ;       // C6.2.79\n                        }\n                        break;\n\n                    case PSB:\n                        {\n                        nxt () ;\n                        if (strnicmp ((const char *)esi, \"CSYNC\", 5) == 0)\n                            esi += 5;\n                        else\n                            error( 16, \"\" ) ;\n                        instruction = 0xd503201f;       // C6.2.81\n                        instruction |= (17 << 5) ;       // C6.2.196\n                        }\n                        break;\n\n                    case XPACD:\n                        {\n                        unsigned d = reg () ;\n                        if (32 == reg_size( d ) )\n                            error( 16, NULL ) ;\n                        instruction = 0xdac147e0;       // C6.2.306\n                        instruction |= (d & 0x1f) << 0;\n                        }\n                        break;\n\n                    case XPACI:\n                        {\n                        unsigned d = reg () ;\n                        if (32 == reg_size( d ) )\n                            error( 16, NULL ) ;\n                        instruction = 0xdac143e0;       // C6.2.306\n                        instruction |= (d & 0x1f) << 0;\n                        }\n                        break;\n\n                    case XPACLRI:\n                        {\n                        instruction = 0xd50320ff;       // C6.2.306\n                        }\n                        break;\n\n                    // Floating point and SIMD operations\n                    case ABS:\n                        {\n                        instruction = 0x5ee0b800;\n                        }\n                        break;\n\n                    case ADDHN:\n                    case ADDHN2:\n                    case ADDP:\n                    case ADDV:\n                    case AESD:\n                    case AESE:\n                    case AESIMC:\n                    case AESMC:\n                    case BCAX:\n                    case BIF:\n                    case BIT:\n                    case BSL:\n                    case CMEQ:\n                    case CMGE:\n                    case CMGT:\n                    case CMHI:\n                    case CMHS:\n                    case CMLE:\n                    case CMLT:\n                    case CMTST:\n                    case CNT:\n                    case DUP:\n                    case EOR3:\n                    case EXT:\n                    case FABD:\n                    case FABS:\n                    case FACGE:\n                    case FACGT:\n                    case FADD:\n                    case FADDP:\n                    case FCADD:\n                    case FCCMP:\n                    case FCCMPE:\n                    case FCMEQ:\n                    case FCMGE:\n                    case FCMGT:\n                    case FCMLA:\n                    case FCMLE:\n                    case FCMLT:\n                    case FCMP:\n                    case FCMPE:\n                    case FCSEL:\n                    case FCVT:\n                    case FCVTAS:\n                    case FCVTAU:\n                    case FCVTL:\n                    case FCVTL2:\n                    case FCVTMS:\n                    case FCVTMU:\n                    case FCVTN:\n                    case FCVTN2:\n                    case FCVTNS:\n                    case FCVTNU:\n                    case FCVTPS:\n                    case FCVTPU:\n                    case FCVTXN:\n                    case FCVTXN2:\n                    case FCVTZS:\n                    case FCVTZU:\n                    case FDIV:\n                    case FJCVTZS:\n                    case FMADD:\n                    case FMAX:\n                    case FMAXNM:\n                    case FMAXNMP:\n                    case FMAXNMV:\n                    case FMAXP:\n                    case FMAXV:\n                    case FMIN:\n                    case FMINNM:\n                    case FMINNMP:\n                    case FMINNMV:\n                    case FMINP:\n                    case FMINV:\n                    case FMLA:\n                    case FMLAL:\n                    case FMLAL2:\n                    case FMLS:\n                    case FMLSL:\n                    case FMLSL2:\n                    case FMOV:\n                    case FMSUB:\n                    case FMUL:\n                    case FMULX:\n                    case FNEG:\n                    case FNMADD:\n                    case FNMSUB:\n                    case FNMUL:\n                    case FRECPE:\n                    case FRECPS:\n                    case FRECPX:\n                    case FRINTA:\n                    case FRINTI:\n                    case FRINTM:\n                    case FRINTN:\n                    case FRINTP:\n                    case FRINTX:\n                    case FRINTZ:\n                    case FRSQRTE:\n                    case FRSQRTS:\n                    case FSQRT:\n                    case FSUB:\n                    case INS:\n                    case LD1:\n                    case LD1R:\n                    case LD2:\n                    case LD2R:\n                    case LD3:\n                    case LD3R:\n                    case LD4:\n                    case LD4R:\n                    case MLA:\n                    case MLS:\n                    case MOVI:\n                    case MVNI:\n                    case NOT:\n                    case PMUL:\n                    case PMULL:\n                    case PMULL2:\n                    case PSBCSYNC:\n                    case RADDHN:\n                    case RADDHN2:\n                    case RAX1:\n                    case RSHRN:\n                    case RSHRN2:\n                    case RSUBHN:\n                    case RSUBHN2:\n                    case SABA:\n                    case SABAL:\n                    case SABAL2:\n                    case SABD:\n                    case SABDL:\n                    case SABDL2:\n                    case SADALP:\n                    case SADDL:\n                    case SADDL2:\n                    case SADDLP:\n                    case SADDLV:\n                    case SADDW:\n                    case SADDW2:\n                    case SCVTF:\n                    case SDOT:\n                    case SHA1C:\n                    case SHA1H:\n                    case SHA1M:\n                    case SHA1P:\n                    case SHA1SU0:\n                    case SHA1SU1:\n                    case SHA256H:\n                    case SHA256H2:\n                    case SHA256SU0:\n                    case SHA256SU1:\n                    case SHA512H:\n                    case SHA512H2:\n                    case SHA512SU0:\n                    case SHA512SU1:\n                    case SHADD:\n                    case SHL:\n                    case SHLL:\n                    case SHLL2:\n                    case SHRN:\n                    case SHRN2:\n                    case SHSUB:\n                    case SLI:\n                    case SM3PARTW1:\n                    case SM3PARTW2:\n                    case SM3SS1:\n                    case SM3TT1A:\n                    case SM3TT1B:\n                    case SM3TT2A:\n                    case SM3TT2B:\n                    case SM4E:\n                    case SM4EKEY:\n                    case SMAX:\n                    case SMAXP:\n                    case SMAXV:\n                    case SMIN:\n                    case SMINP:\n                    case SMINV:\n                    case SMLAL:\n                    case SMLAL2:\n                    case SMLSL:\n                    case SMLSL2:\n                    case SMOV:\n                    case SMULL2:\n                    case SQABS:\n                    case SQADD:\n                    case SQDMLAL:\n                    case SQDMLAL2:\n                    case SQDMLSL:\n                    case SQDMLSL2:\n                    case SQDMULH:\n                    case SQDMULL:\n                    case SQDMULL2:\n                    case SQNEG:\n                    case SQRDMLAH:\n                    case SQRDMLSH:\n                    case SQRDMULH:\n                    case SQRSHL:\n                    case SQRSHRN:\n                    case SQRSHRN2:\n                    case SQRSHRUN:\n                    case SQRSHRUN2:\n                    case SQSHL:\n                    case SQSHLU:\n                    case SQSHRN:\n                    case SQSHRN2:\n                    case SQSHRUN:\n                    case SQSHRUN2:\n                    case SQSUB:\n                    case SQXTN:\n                    case SQXTN2:\n                    case SQXTUN:\n                    case SQXTUN2:\n                    case SRHADD:\n                    case SRI:\n                    case SRSHL:\n                    case SRSHR:\n                    case SRSRA:\n                    case SSHL:\n                    case SSHLL:\n                    case SSHLL2:\n                    case SSHR:\n                    case SSRA:\n                    case SSUBL:\n                    case SSUBL2:\n                    case SSUBW:\n                    case SSUBW2:\n                    case ST1:\n                    case ST2:\n                    case ST3:\n                    case ST4:\n                    case SUBHN:\n                    case SUBHN2:\n                    case SUQADD:\n                    case SXTL:\n                    case SXTL2:\n                    case TBL:\n                    case TBX:\n                    case TRN1:\n                    case TRN2:\n                    case UABA:\n                    case UABAL:\n                    case UABAL2:\n                    case UABD:\n                    case UABDL:\n                    case UABDL2:\n                    case UADALP:\n                    case UADDL:\n                    case UADDL2:\n                    case UADDLP:\n                    case UADDLV:\n                    case UADDW:\n                    case UADDW2:\n                    case UCVTF:\n                    case UDOT:\n                    case UHADD:\n                    case UHSUB:\n                    case UMAX:\n                    case UMAXP:\n                    case UMAXV:\n                    case UMIN:\n                    case UMINP:\n                    case UMINV:\n                    case UMLAL:\n                    case UMLAL2:\n                    case UMLSL:\n                    case UMLSL2:\n                    case UMOV:\n                    case UMULL2:\n                    case UQADD:\n                    case UQRSHL:\n                    case UQRSHRN:\n                    case UQRSHRN2:\n                    case UQSHL:\n                    case UQSHRN:\n                    case UQSHRN2:\n                    case UQSUB:\n                    case UQXTN:\n                    case UQXTN2:\n                    case URECPE:\n                    case URHADD:\n                    case URSHL:\n                    case URSHR:\n                    case URSQRTE:\n                    case URSRA:\n                    case USHL:\n                    case USHLL:\n                    case USHLL2:\n                    case USHR:\n                    case USQADD:\n                    case USRA:\n                    case USUBL:\n                    case USUBL2:\n                    case USUBW:\n                    case USUBW2:\n                    case UXTL:\n                    case UXTL2:\n                    case UZP1:\n                    case UZP2:\n                    case XAR:\n                    case XTN:\n                    case XTN2:\n                    case ZIP1:\n                    case ZIP2:\n                        instruction = validated_FB_SIMD_instruction( mnemonic );\n                        break;\n\n                    default:\n                        error (16, \"Unknown instruction\" );\n                    }\n\n                oldpc = align () ;\n\n                poke (&instruction, 4) ;\n            }\n        } ;\n}\n"
  },
  {
    "path": "src/bbasmb_arm_v6m.c",
    "content": "/*******************************************************************\\\n *       32-bit BBC BASIC Interpreter                              *\n *       (c) 2018-2021  R.T.Russell  http://www.rtrussell.co.uk/   *\n *                                                                 *\n *       bbasmb_arm_v6m.c Assembler for ARMv6m thunb instructions  *\n *       Unified & Divided syntax                                  *\n *       Version 1.24a, 12-Jul-2021                                *\n\\*******************************************************************/\n\n#include <stdlib.h>\n#include <stdio.h>\n#include <unistd.h>\n#include <ctype.h>\n#include <string.h>\n#include <stdint.h>\n#include \"BBC.h\"\n\n#ifndef __WINDOWS__\n#define stricmp strcasecmp\n#define strnicmp strncasecmp\n#endif\n\n#if defined(__x86_64__) || defined(__aarch64__)\n#define OC ((unsigned int) stavar[15] + (void *)((long long) stavar[13] << 32)) \n#define PC ((unsigned int) stavar[16] + (void *)((long long) stavar[17] << 32)) \n#else\n#define OC (void *) stavar[15]\n#define PC (void *) stavar[16]\n#endif\n\n// External routines:\nvoid newlin (void);\nvoid *getput (unsigned char *);\nvoid error (int, const char *);\nvoid token (signed char);\nvoid text (const char*);\nvoid crlf (void);\nvoid comma (void);\nvoid spaces (int);\nint range0 (char);\nsigned char nxt (void);\n\nlong long itemi (void);\nlong long expri (void);\nVAR expr (void);\nVAR exprs (void);\nVAR loadn (void *, unsigned char);\nvoid storen (VAR, void *, unsigned char);\n\n// Routines in bbcmos.c:\nvoid *sysadr (char *);\nunsigned char osrdch (void);\nvoid oswrch (unsigned char);\nint oskey (int);\nvoid osline (char *);\nint osopen (int, char *);\nvoid osshut (int);\nunsigned char osbget (int, int *);\nvoid osbput (int, unsigned char);\nlong long getptr (int);\nvoid setptr (int, long long);\nlong long getext (int);\nvoid oscli (char *);\nint osbyte (int, int);\nvoid osword (int, void *);\n\nint bUni = 1;   // Set for unified syntax\n\nenum {\n    ASR, LSL, LSR,                                                  // 0-2: 2 Opcodes\n    LDRB, STRB,                                                     // 3-4: 2 opcodes\n    LDRH, STRH,                                                     // 5-6: 2 opcodes\n    ADC, AND, BIC, CMN, EOR, MVN, ORR, REV16, REVSH, REV, ROR, SBC,\n    SXTB, SXTH, TST, UXTB, UXTH,                                    // 7-23: <reg8>, <reg8>\n    NOP, SEV, WFE, WFI, YIELD,                                      // 24-28: <opcode>\n    BLX, BX,                                                        // 29-30: <reg8>\n    DMB, DSB, ISB,                                                  // 31-33: 32-bit 0xF3BF____\n    LDRSB, LDRSH,                                                   // 34-35: <reg8>, [<reg8>, <reg8>]\n    CPSID, CPSIE,\n    CMP, MOV, ADD, ADR, BKPT, B, LDM, LDR, MRS, MSR, MUL,\n    POP, PUSH, RSB, STM, STr, SUB, SVC,                             // 36-53: Unique opcodes\n    ALIGN, DB, DCB, DCD, DCS, DCW, EQUB, EQUD, EQUQ, EQUS, EQUW,\n    OPT, SYNTAX                                                     // 54-66: Pseudo-ops\n    };\n\nstatic const char *mnemonics[] = {\n    \"asr\", \"lsl\", \"lsr\",\n    \"ldrb\", \"strb\",\n    \"ldrh\", \"strh\",\n    \"adc\", \"and\", \"bic\", \"cmn\", \"eor\", \"mvn\", \"orr\", \"rev16\", \"revsh\", \"rev\", \"ror\", \"sbc\",\n    \"sxtb\", \"sxth\", \"tst\", \"uxtb\", \"uxth\",\n    \"nop\", \"sev\", \"wfe\", \"wfi\", \"yield\",\n    \"blx\", \"bx\",\n    \"dmb\", \"dsb\", \"isb\",\n    \"ldrsb\", \"ldrsh\",\n    \"cpsid\", \"cpsie\",\n    \"cmp\", \"mov\", \"add\", \"adr\", \"bkpt\", \"b\", \"ldm\", \"ldr\", \"mrs\", \"msr\", \"mul\",\n    \"pop\", \"push\", \"rsb\", \"stm\", \"str\", \"sub\", \"svc\",\n    \"align\", \"db\", \"dcb\", \"dcd\", \"dcs\", \"dcw\", \"equb\", \"equd\", \"equq\", \"equs\", \"equw\", \"opt\", \"syntax\"};\n\nstatic const uint16_t opcodes[] = {\n    0x1000,     // ASR \\ <reg8>, <reg8>, #<imm5>\n    0x0000,     // LSL |\n    0x0800,     // LSR /\n    0x7800,     // LDRB \\ <reg8>, [<reg8>, #<imm5>]\n    0x7000,     // STRB /\n    0x8800,     // LDRH \\ <reg8>, [<reg8>. #<imm5:1>]\n    0x8000,     // STRH /\n    0x4140,     // ADC   \\ <reg8>, <reg8>\n    0x4000,     // AND   |\n    0x4380,     // BIC   |\n    0x42C0,     // CMN   |\n    0x4040,     // EOR   |\n    0x43C0,     // MVN   |\n    0x4300,     // ORR   |\n    0xBA40,     // REV16 |\n    0xBAC0,     // REVSH |\n    0xBA00,     // REV   |\n    0x41C0,     // ROR   |\n    0x4180,     // SBC   |\n    0xB240,     // SXTB  |\n    0xB200,     // SXTH  |\n    0x4200,     // TST   |\n    0xB2C0,     // UXTB  |\n    0xB280,     // UXTH  /\n    0xBF00,     // NOP   \\ <opcode>\n    0xBF40,     // SEV   |\n    0xBF20,     // WFE   |\n    0xBF30,     // WFI   |\n    0xBF10,     // YIELD /\n    0x4780,     // BLX \\ <reg8>\n    0x4700,     // BX  /\n    0x8F5F,     // DMB \\ 32-bit 0xF3BF____\n    0x8F4F,     // DSB |\n    0x8F6F,     // ISB /\n    0x5600,     // LDRSB \\ <reg8>, [<reg8>, <reg8>]\n    0x5E00,     // LDRSH /\n    0xB672,     // CPSID \\ i\n    0xB662      // CPSIE /\n    };\n\nstatic const uint16_t opcode2[] = {\n    0x4100,     // ASR \\ <reg8>, <reg8>\n    0x4080,     // LSL |\n    0x40C0,     // LSR /\n    0x5C00,     // LDRB \\ <reg8>, [<reg8>, <reg8>]\n    0x5400,     // STRB /\n    0x5A00,     // LDRH \\ <reg8>, [<reg8>, <reg8>]\n    0x5200,     // STRH /\n    };\n\nstatic const char *conditions[] = {\n    \"al\", \"cc\", \"cs\", \"eq\", \"ge\", \"gt\", \"hi\", \"hs\",\n    \"le\", \"lo\", \"ls\", \"lt\", \"mi\", \"ne\", \"pl\", \"vc\", \"vs\" };\n\nstatic const unsigned char ccodes[] = {\n    0b1110, 0b0011, 0b0010, 0b0000, 0b1010, 0b1100, 0b1000, 0b0010,\n    0b1101, 0b0011, 0b1001, 0b1011, 0b0100, 0b0001, 0b0101, 0b0111, 0b0110 };\n\nstatic const char *registers[] = {\n    \"lr\", \"pc\", \"r0\", \"r10\", \"r11\", \"r12\", \"r13\", \"r14\", \"r15\", \"r1\", \n    \"r2\", \"r3\", \"r4\", \"r5\", \"r6\", \"r7\", \"r8\", \"r9\", \"sp\" };\n\nstatic const unsigned char regno[] = {\n    14, 15, 0, 10, 11, 12, 13, 14, 15, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13 };\n\nstatic const char *sysm[] = { \"apsr\", \"iapsr\", \"eapsr\", \"xpsr\", \"ipsr\", \"epsr\",\n                              \"iepsr\", \"msp\", \"psp\", \"primask\", \"control\" };\n\nstatic const char *oslist[] = {\n    \"osrdch\", \"oswrch\", \"oskey\", \"osline\", \"oscli\", \"osopen\", \"osbyte\", \"osword\",\n    \"osshut\", \"osbget\", \"osbput\", \"getptr\", \"setptr\", \"getext\" };\n\nstatic const void *osfunc[] = {\n    osrdch, oswrch, oskey, osline, oscli, osopen, osbyte, osword, \n    osshut, osbget, osbput, getptr, setptr, getext };\n\nstatic const char *asmmsg[] = {\n    \"Invalid opcode\",               // 101\n    \"Too many parameters\",          // 102\n    \"Invalid register\",             // 103\n    \"Low register required\",        // 104\n    \"Invalid alignment\",            // 105\n    \"Register / list conflict\",     // 106\n    \"Invalid register list\",        // 107\n    \"Status flags not set\",         // 108\n    \"Invalid special register\",     // 109\n    \"Instruction sets status flags\" // 110\n    };\n\nstatic void asmerr (int ierr)\n    {\n    if ( liston & 0x20 )\n        {\n        const char *pserr = NULL;\n        if ( ierr > 100 ) pserr = asmmsg[ierr - 101];\n        error (ierr, pserr);\n        }\n    }\n\nstatic int lookup (const char **arr, int num)\n    {\n\tint i, n;\n\tfor (i = 0; i < num; i++)\n\t    {\n\t\tn = strlen (*(arr + i));\n\t\tif (strnicmp ((const char *)esi, *(arr + i), n) == 0)\n\t\t\tbreak;\n\t    }\n\tif (i >= num)\n\t\treturn -1;\n\tesi += n;\n\treturn i;\n    }\n\nstatic int status (void)\n    {\n    if (( *esi == 's' ) || ( *esi == 'S' ))\n        {\n        ++esi;\n        return 1;\n        }\n    return 0;\n    }\n\nstatic void chkstatus (void)\n    {\n    int st = status ();\n    if (( bUni ) && ( ! st )) asmerr (110); // 'Instruction sets status flags'\n    }\n\nstatic unsigned char reg (void)\n    {\n\tint i;\n\tnxt ();\n\ti = lookup (registers, sizeof(registers) / sizeof(registers[0]));\n\tif (i < 0)\n\t    {\n\t\ti = itemi();\n\t\tif ((i < 0) || (i > 15))\n\t\t\tasmerr (103); // 'Invalid register'\n\t\treturn i;\n\t    }\n\treturn regno[i];\n    }\n\nstatic unsigned char reg8 (void)\n    {\n    int i = reg ();\n    if ( i >= 8 ) asmerr (104); // 'Low register required'\n    return i;\n    }\n\nstatic int reglist (void) \n    {\n\tint temp = 0;\n\tif (nxt () != '{')\n\t\tasmerr (16); // 'Syntax error'\n\tdo\n\t    {\n\t\tunsigned char tmp;\n\t\tesi++;\n\t\ttmp = reg ();\n\t\ttemp |= 1 << tmp;\n\t\tif (nxt () == '-')\n\t\t    {\n\t\t\tunsigned char last;\n\t\t\tesi++;\n\t\t\tlast = reg ();\n\t\t\twhile (++tmp <= last)\n\t\t\t\ttemp |= 1 << tmp;\n\t\t    }\n\t    }\n\twhile (nxt () == ',');\n\tif (*esi != '}')\n\t\tasmerr (16); // 'Syntax error'\n\tesi++;\n\treturn temp;\n    }\n\nstatic int offset (int *pbImm)\n    {\n\t*pbImm = 0;\n\tif (nxt () == '#')\n\t    {\n\t\tesi++;\n        *pbImm = 1;\n\t\treturn expri ();\n\t    }\n\treturn reg ();\n    }\n\nstatic int offset2 (int *pbImm)\n    {\n    int or;\n    if ( nxt () == ',' )\n        {\n        ++esi;\n        or = offset (pbImm);\n        }\n    else\n        {\n        *pbImm = 1;\n        or = 0;\n        }\n    return or;\n    }\n\nstatic void tabit (int x)\n{\n\tif (vcount == x) \n\t\treturn ;\n\tif (vcount > x)\n\t\tcrlf () ;\n\tspaces (x - vcount) ;\n}\n\nstatic void poke (const void *p, int n) \n    {\n\tchar *d;\n\tif (liston & BIT6)\n\t    {\n\t\td = OC;\n\t\tstavar[15] += n;\n\t    }\n\telse\n\t\td = PC;\n\n\tstavar[16] += n;\n\tmemcpy (d, p, n);\n    }\n\nstatic void *align (int n)\n    {\n\twhile (stavar[16] & (n-1))\n\t    {\n\t\tstavar[16]++;\n\t\tif (liston & BIT6)\n\t\t\tstavar[15]++;\n\t    };\n\treturn PC;\n    }\n\nstatic inline int eol (char ch)\n    {\n    return (( ch == 0x0D ) || ( ch == ':' ) || ( ch == ';' ) || ( ch == TREM )) ? 1 : 0;\n    }\n\nstatic void asarg (int *rd, int *rn, int *offreg, int *bImm)\n    {\n    *bImm = 0;\n    *rd = reg ();\n    comma ();\n    *rn = offset (bImm);\n    if ( *bImm )\n        {\n        if ( bUni ) asmerr (16);    // 'Syntax error'\n        *offreg = *rn;\n        *rn = *rd;\n        }\n    else\n        {\n        if ( nxt () == ',' )\n            {\n            ++esi;\n            *offreg = offset (bImm);\n            }\n        else\n            {\n            if ( bUni ) asmerr (16);    // 'Syntax error'\n            *offreg = *rn;\n            *rn = *rd;\n            }\n        }\n    }\n\nstatic int addsi (int rd, int rn, int offreg)\n    {\n    int instruction;\n    if ( rd == rn )\n        {\n        if ( offreg >= 0 )\n            {\n            instruction = 0x3000 | ( rd << 8 ) | ( offreg & 0xFF );\n            }\n        else\n            {\n            offreg = -offreg;\n            instruction = 0x3800 | ( rd << 8 ) | ( offreg & 0xFF );\n            }\n        if (offreg > 255) asmerr (2); // 'Bad immediate constant'\n        }\n    else\n        {\n        if ( offreg >= 0 )\n            {\n            instruction = 0x1C00 | (( offreg & 0x07 ) << 6 ) | ( rn << 3 ) | rd;\n            }\n        else\n            {\n            offreg = -offreg;\n            instruction = 0x1E00 | (( offreg & 0x07 ) << 6 ) | ( rn << 3 ) | rd;\n            }\n        if (offreg > 7) asmerr (2); // 'Bad immediate constant'\n        }\n    return instruction;\n    }\n\nvoid assemble (void)\n    {\n\tsigned char al;\n\tsigned char *oldesi = esi;\n\tint init = 1 ;\n\tvoid *oldpc = PC;\n\n\twhile (1)\n\t    {\n\t\tint mnemonic, condition, instruction;\n\n\t\tif (liston & BIT7)\n\t\t    {\n\t\t\tint tmp;\n\t\t\tif (liston & BIT6)\n\t\t\t\ttmp = stavar[15];\n\t\t\telse\n\t\t\t\ttmp = stavar[16];\n\t\t\tif (tmp >= stavar[12])\n\t\t\t\terror (8, NULL); // 'Address out of range'\n\t\t    }\n\n\t\tal = nxt ();\n\t\tesi++;\n\n\t\tswitch (al) \n\t\t    {\n\t\t\tcase 0:\n\t\t\t\tesi--;\n\t\t\t\tliston = (liston & 0x0F) | 0x30;\n\t\t\t\treturn;\n\n\t\t\tcase ']':\n\t\t\t\tliston = (liston & 0x0F) | 0x30;\n\t\t\t\treturn;\n\n\t\t\tcase 0x0D:\n\t\t\t\tnewlin ();\n\t\t\t\tif (*esi == 0x0D)\n\t\t\t\t\tbreak;\n\t\t\tcase ':':\n\t\t\t\tif (liston & BIT4)\n\t\t\t\t    {\n\t\t\t\t\tvoid *p;\n\t\t\t\t\tint n = PC - oldpc;\n\t\t\t\t\tif (liston & BIT6)\n\t\t\t\t\t\tp = OC - n;\n\t\t\t\t\telse\n\t\t\t\t\t\tp = PC - n;\n\n\t\t\t\t\tdo\n\t\t\t\t\t    {\n#if (defined (_WIN32)) && (__GNUC__ < 9)\n\t\t\t\t\t\tsprintf (accs, \"%08I64X \", (long long) (size_t) oldpc);\n#else\n\t\t\t\t\t\tsprintf (accs, \"%08llX \", (long long) (size_t) oldpc);\n#endif\n                        char *ps = accs + 9;\n\t\t\t\t\t\tswitch (n)\n\t\t\t\t\t\t    {\n                            default:\n                                sprintf (ps, \"%02X \", *((unsigned char *)p));\n                                ps += 3;\n                                ++p;\n                            case 3:\n                                sprintf (ps, \"%02X \", *((unsigned char *)p));\n                                ps += 3;\n                                ++p;\n                            case 2:\n                                sprintf (ps, \"%02X \", *((unsigned char *)p));\n                                ps += 3;\n                                ++p;\n                            case 1:\n                                sprintf (ps, \"%02X \", *((unsigned char *)p));\n                                ps += 3;\n                                ++p;\n                            case 0:\n                                break;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\tif (n > 4)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tn -= 4;\n\t\t\t\t\t\t\toldpc += 4;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\telse \n\t\t\t\t\t\t\tn = 0;\n\n\t\t\t\t\t\ttext (accs);\n\n\t\t\t\t\t\tif (*oldesi == '.')\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\ttabit (21);\n\t\t\t\t\t\t\tdo\t\n\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\ttoken (*oldesi++ );\n\t\t\t\t\t\t\t    }\n\t\t\t\t\t\t\twhile (range0(*oldesi));\n\t\t\t\t\t\t\twhile (*oldesi == ' ') oldesi++;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\ttabit (30);\n\t\t\t\t\t\twhile ((*oldesi != ':') && (*oldesi != 0x0D)) \n\t\t\t\t\t\t\ttoken (*oldesi++);\n\t\t\t\t\t\tcrlf ();\n\t\t\t\t\t    }\n\t\t\t\t\twhile (n);\n\t\t\t\t    }\n\t\t\t\tnxt ();\n#ifdef __arm__\n\t\t\t\tif ((liston & BIT6) == 0)\n\t\t\t\t\t__builtin___clear_cache (oldpc, PC); \n#endif\n\t\t\t\toldpc = PC;\n\t\t\t\toldesi = esi;\n\t\t\t\tbreak;\n\n\t\t\tcase ';':\n\t\t\tcase TREM:\n\t\t\t\twhile ((*esi != 0x0D) && (*esi != ':')) esi++;\n\t\t\t\tbreak;\n\n\t\t\tcase '.':\n            {\n            VAR v;\n            unsigned char type;\n            void *ptr = getput (&type);\n            if (ptr == NULL)\n                asmerr (16); // 'Syntax error'\n            if (type >= 128)\n                asmerr (6); // 'Type mismatch'\n            if ((liston & BIT5) == 0)\n                {\n                v = loadn (ptr, type);\n                if (v.i.n)\n                    asmerr (3); // 'Multiple label'\n                }\n            if (init) oldpc = align (4);\n            v.i.t = 0;\n            v.i.n = (intptr_t) PC;\n            storen (v, ptr, type);\n            break;\n            }\n\n\t\t\tdefault:\n\t\t\t\tesi--;\n\t\t\t\tmnemonic = lookup (mnemonics, sizeof(mnemonics)/sizeof(mnemonics[0]));\n\n                oldpc = PC;\n\t\t\t\tif (mnemonic != OPT) init = 0;\n                instruction = opcodes[NOP];\n                int instruction2 = -1;\n                \n\t\t\t\tswitch (mnemonic)\n\t\t\t\t    {\n\t\t\t\t\tcase OPT:\n\t\t\t\t\t\tliston = (liston & 0x0F) | (expri () << 4);\n\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\tcase DB:\n                    {\n                    VAR v = expr ();\n                    if (v.s.t == -1)\n                        {\n                        if (v.s.l > 256)\n                            asmerr (19); // 'String too long'\n                        poke (v.s.p + zero, v.s.l);\n                        continue;\n                        }\n                    if (v.i.t)\n                        v.i.n = v.f;\n                    poke (&v.i.n, 1);\n                    continue;\n                    }\n\n\t\t\t\t\tcase DCB:\n\t\t\t\t\tcase EQUB:\n                    {\n                    int n = expri ();\n                    poke (&n, 1);\n                    continue; // n.b. not break\n                    }\n \n\t\t\t\t\tcase DCW:\n\t\t\t\t\tcase EQUW:\n                    {\n                    align (2);\n                    int n = expri ();\n                    poke (&n, 2);\n                    continue; // n.b. not break\n                    }\n\n\t\t\t\t\tcase DCD:\n\t\t\t\t\tcase EQUD:\n\t\t\t\t\tcase EQUQ:\n                    {\n                    VAR v = expr ();\n                    long long n;\n                    if (v.s.t == -1)\n                        {\n                        signed char *oldesi = esi;\n                        int i;\n                        memcpy (accs, v.s.p + zero, v.s.l);\n                        *(accs + v.s.l) = 0;\n                        esi = (signed char *)accs;\n                        i = lookup (oslist, sizeof(oslist) /\n                            sizeof(oslist[0]));\n                        esi = oldesi;\n                        if (i >= 0)\n                            n = (size_t) osfunc[i];\n                        else\n                            n = (size_t) sysadr (accs);\n                        if (n == 0)\n                            asmerr (51); // 'No such system call'\n                        }\n                    else if (v.i.t == 0)\n                        n = v.i.n;\n                    else\n                        n = v.f;\n                    align (4);\n                    if (mnemonic == EQUQ)   poke (&n, 8);\n                    else                    poke (&n, 4);\n                    }\n                    continue; // n.b. not break\n\n\t\t\t\t\tcase DCS:\n\t\t\t\t\tcase EQUS:\n                    {\n                    VAR v = exprs ();\n                    if (v.s.l > 256)\n                        asmerr (19); // 'String too long'\n                    poke (v.s.p + zero, v.s.l);\n                    continue;\n                    }\n\n                    case ALIGN:\n                        align (4);\n                        if ((nxt() >= '1') && (*esi <= '9'))\n                            {\n                            int n = expri ();\n                            if ((n & (n - 1)) || (n & 0xFFFFFF03) || (n == 0))\n                                asmerr (105); // 'invalid alignment'\n                            instruction = opcodes[NOP];\n                            while (stavar[16] & (n - 1))\n                                poke (&instruction, 2); \n                            }\n                        continue;\n\n                    case SYNTAX:\n                        switch (nxt ())\n                            {\n                            case 'u':\n                            case 'U':\n                                bUni = 1;\n                                break;\n                            case 'd':\n                            case 'D':\n                                bUni = 0;\n                                break;\n                            default:\n                                asmerr (16); // 'Syntax error'\n                                break;\n                            }\n                        ++esi;\n                        continue;\n\n                    // Thumb Instructions\n\n                    case MOV:\n                        // MOVS <reg8>, #<imm>\n                        // MOVS <reg8>, <reg8>\n                        // MOV <reg>, <reg>\n                        if ( status () )\n                            {\n                            int rd = reg8 ();\n                            comma ();\n                            int bImm;\n                            int offreg = offset (&bImm);\n                            if ( bImm )\n                                {\n                                if (( offreg < 0 ) || ( offreg > 0xFF ))\n                                    asmerr (2); // 'Bad immediate constant'\n                                instruction = 0x2000 | (( rd & 0x07 ) << 8 ) | ( offreg & 0xFF );\n                                }\n                            else\n                                {\n                                if ( offreg > 7 ) asmerr (104); // 'Low register required'\n                                instruction = 0x0000 | (( offreg & 0x07 ) << 3 ) | rd;\n                                }\n                            }\n                        else\n                            {\n                            int rd = reg ();\n                            comma ();\n                            int bImm;\n                            int offreg = offset (&bImm);\n                            if ( bImm )\n                                {\n                                if ( bUni ) asmerr (110);   // 'Instruction affects status flags'\n                                if ( rd > 7 ) asmerr (104); // 'Low register required'\n                                if (( offreg < 0 ) || ( offreg > 0xFF ))\n                                    asmerr (2); // 'Bad immediate constant'\n                                instruction = 0x2000 | (( rd & 0x07 ) << 8 ) | ( offreg & 0xFF );\n                                }\n                            else\n                                {\n                                instruction = 0x4600 | (( rd & 0x08 ) << 4 ) | ( offreg << 3 )\n                                    | ( rd & 0x07 );\n                                }\n                            }\n                        break;\n                        \n\t\t\t\t\tcase CMP:\n                    {\n                    // <opcode> <reg8>, #<imm8>\n                    // <opcode> <reg8>, <reg8>\n                    // <opcode> <reg>, <reg>\n                    int rn = reg ();\n                    comma ();\n                    int bImm;\n                    int\toffreg = offset (&bImm);\n                    if ( bImm )\n                        {\n                        if ( rn > 7 ) asmerr (104); // 'Low register required'\n                        if (( offreg < 0 ) || ( offreg > 0xFF ))\n                            asmerr (2); // 'Bad immediate constant'\n                        instruction = 0x2800 | ( rn << 8 ) | ( offreg & 0xFF );\n                        }\n                    else if (( rn < 8 ) && ( offreg < 8 ))\n                        {\n                        instruction = 0x4280 | ( offreg << 3 ) | rn;\n                        }\n                    else\n                        {\n                        instruction = 0x4500 | (( rn & 0x08 ) << 4 ) | ( reg () << 3 ) | ( rn & 0x07 );\n                        }\n                    break;\n                    }\n\n                    case ASR:\n                    case LSL:\n                    case LSR:\n                    {\n                    // <opcode> Rd, Rm, #<offset>\n                    // <opcode> {Rd,} Rd, Rm\n                    chkstatus ();\n                    int rd = reg8 ();\n                    comma ();\n                    int rm = reg8 ();\n                    int bImm = 0;\n                    int offreg = rm;\n                    if ( nxt () == ',' )\n                        {\n                        ++esi;\n                        offreg = offset (&bImm);\n                        }\n                    else if ( bUni )\n                        {\n                        asmerr (16);    // 'Syntax error'\n                        }\n                    else\n                        {\n                        rm = rd;\n                        }\n                    if ( bImm )\n                        {\n                        if (( offreg < 0 ) || ( offreg > 31 )) asmerr (2); // 'Bad immediate constant'\n                        instruction = opcodes[mnemonic] | ( offreg << 6 ) | ( rm << 3 ) | rd;\n                        }\n                    else if (( rm == rd ) && ( offreg < 8 ))\n                        {\n                        instruction = opcode2[mnemonic] | ( offreg << 3 ) | rd;\n                        }\n                    else\n                        {\n                        asmerr (103);   //'Invalid register'\n                        }\n                    break;\n                    }\n\n                    case LDRB:\n                    case STRB:\n                    {\n                    // <opcode> <reg8>, [<reg8>, #<imm5>]\n                    // <opcode> <reg8>, [<reg8>, <reg8>]\n                    int rd = reg8 ();\n                    comma ();\n                    if ( nxt () == '[' ) ++esi;\n                    else asmerr (16); // 'Syntax error'\n                    int rn = reg8 ();\n                    int bImm;\n                    int offreg = offset2 (&bImm);\n                    if ( bImm )\n                        {\n                        if (( offreg < 0 ) || ( offreg > 31 ))\n                            asmerr (2); // 'Bad immediate constant'\n                        instruction = opcodes[mnemonic] | (( offreg & 0x1F ) << 6 ) | ( rn << 3 ) | rd;\n                        }\n                    else\n                        {\n                        if ( offreg > 7 ) asmerr (104); // 'Low register required'\n                        instruction = opcode2[mnemonic] | (( offreg & 0x07 ) << 6 ) | ( rn << 3 ) | rd;\n                        }\n                    if ( nxt () == ']' ) ++esi;\n                    else asmerr (16); // 'Syntax error'\n                    break;\n                    }\n\n                    case LDRH:\n                    case STRH:\n                    {\n                    // LDRH <reg8>, [<reg8>, #<imm5:1>]\n                    // LDRH <reg8>, [<reg8>, <reg8>]\n                    int rd = reg8 ();\n                    comma ();\n                    if ( nxt () == '[' ) ++esi;\n                    else asmerr (16); // 'Syntax error'\n                    int rn = reg8 ();\n                    int bImm;\n                    int offreg = offset2 (&bImm);\n                    if ( bImm )\n                        {\n                        if (( offreg < 0 ) || ( offreg > 62 ))\n                            asmerr (2); // 'Bad immediate constant'\n                        else if ( offreg & 0x01 )\n                            asmerr (105);   // 'Invalid alignment'\n                        instruction = opcodes[mnemonic] | (( offreg & 0x3E ) << 5 ) | ( rn << 3 ) | rd;\n                        }\n                    else\n                        {\n                        if ( offreg > 7 ) asmerr (104); // 'Low register required'\n                        instruction = opcode2[mnemonic] | (( offreg & 0x07 ) << 6 ) | ( rn << 3 ) | rd;\n                        }\n                    if ( nxt () == ']' ) ++esi;\n                    else asmerr (16); // 'Syntax error'\n                    break;\n                    }\n\n\t\t\t\t\tcase ADC:\n\t\t\t\t\tcase AND:\n\t\t\t\t\tcase BIC:\n\t\t\t\t\tcase EOR:\n                    case ORR:\n                    case ROR:\n                    case SBC:\n                    {\n                    // <opcode> {rd,} rd, rn\n                    chkstatus ();\n                    int rd = reg8 ();\n                    comma ();\n                    int rn = reg8 ();\n                    int rm = rn;\n                    if ( nxt () == ',' )\n                        {\n                        ++esi;\n                        rm = reg8 ();\n                        if ( rn != rd ) asmerr (103);  // 'Invalid register'\n                        }\n                    else if ( bUni )\n                        {\n                        asmerr (16);    // 'Syntax error'\n                        }\n                    instruction = opcodes[mnemonic] | ( rm << 3 ) | rd;\n                    break;\n                    }\n                    \n                    case MVN:\n                        chkstatus ();\n\t\t\t\t\tcase CMN:\n                    case REV:\n                    case REV16:\n                    case REVSH:\n                    case SXTB:\n                    case SXTH:\n                    case TST:\n                    case UXTB:\n                    case UXTH:\n                        // <opcode> Rd, Rn\n                        instruction = opcodes[mnemonic] | reg8 ();\n                        comma ();\n                        instruction |= reg8 () << 3;\n                        break;\n\n\t\t\t\t\tcase NOP:\n                    case SEV:\n                    case WFE:\n                    case WFI:\n                    case YIELD:\n\t\t\t\t\t\tinstruction = opcodes[mnemonic];\n\t\t\t\t\t\tbreak;\n\n                    case BLX:\n                    case BX:\n                        // <opcode> <reg>\n                        instruction = opcodes[mnemonic] | ( reg () << 3 );\n                        break;\n\n                    case DMB:\n                    case DSB:\n                    case ISB:\n                        // <opcode32>\n                        nxt ();\n                        if ( !strnicmp ((const char *)esi, \"sy\", 2) ) esi += 2;\n                        instruction2 = 0xF3BF;\n                        instruction = opcodes[mnemonic];\n                        break;\n\n                    case LDRSB:\n                    case LDRSH:\n                        // <opcode> <reg8>, [<reg8>, <reg8>]\n                        instruction = opcodes[mnemonic] | reg8 ();\n                        comma ();\n                        if ( nxt () == '[' ) ++esi;\n                        else asmerr (16); // 'Syntax error'\n                        instruction |= reg8 () << 3;\n                        comma ();\n                        instruction |= reg8 () << 6;\n                        if ( nxt () == ']' ) ++esi;\n                        else asmerr (16); // 'Syntax error'\n                        break;\n\n                    case ADD:\n                    {\n                    int st = status ();\n                    int rd;\n                    int rn;\n                    int offreg;\n                    int bImm;\n                    asarg (&rd, &rn, &offreg, &bImm);\n                    if ( st )\n                        {\n                        if (( rd > 7 ) || ( rn > 7 )) asmerr (104); //'Low register required'\n                        if ( bImm )\n                            {\n                            instruction = addsi (rd, rn, offreg);\n                            }\n                        else\n                            {\n                            if ( offreg > 7 ) asmerr (104); // 'Low register required'\n                            instruction = 0x1800 | ( ( offreg & 0x07 ) << 6 ) | ( rn << 3 ) | rd;\n                            }\n                        }\n                    else\n                        {\n                        if ( bImm )\n                            {\n                            if ( rn == 13 )\n                                {\n                                if ( rd == 13 )\n                                    {\n                                    if ( offreg >= 0 )\n                                        {\n                                        instruction = 0xB000 | (( offreg >> 2 ) & 0x7F );\n                                        }\n                                    else\n                                        {\n                                        offreg = - offreg;\n                                        instruction = 0xB080 | (( offreg >> 2 ) & 0x7F );\n                                        }\n                                    if ( offreg > 508 ) asmerr (2); // 'Bad immediate constant'\n                                    else if ( offreg & 0x03 ) asmerr (105);   // 'Invalid alignment'\n                                    }\n                                else\n                                    {\n                                    if ( rd > 7 ) asmerr (104); //'Low register required'\n                                    if (( offreg < 0 ) || ( offreg > 1020 ))\n                                        asmerr (2); // 'Bad immediate constant'\n                                    else if ( offreg & 0x03 )\n                                        asmerr (105);   // 'Invalid alignment'\n                                    instruction = 0xA800 | (( rd & 0x07 ) << 8 )\n                                        | (( offreg >> 2 ) & 0xFF );\n                                    }\n                                }\n                            else if ( rn == 15 )\n                                {\n                                if ( rd > 7 ) asmerr (104); //'Low register required'\n                                if (( offreg < 0 ) || ( offreg > 1020 ))\n                                    asmerr (2); // 'Bad immediate constant'\n                                else if ( offreg & 0x03 )\n                                    asmerr (105);   // 'Invalid alignment'\n                                instruction = 0xA000 | (( rd & 0x07 ) << 8 )\n                                    | (( offreg >> 2 ) & 0xFF );\n                                }\n                            else if ( ! bUni )\n                                {\n                                if (( rd > 7 ) || ( rn > 7 )) asmerr (104); //'Low register required'\n                                instruction = addsi (rd, rn, offreg);\n                                }\n                            else\n                                {\n                                asmerr (103);   // 'Invalid register'\n                                }\n                            }\n                        else\n                            {\n                            if ( rn == rd )\n                                {\n                                instruction = 0x4400 | (( rd & 0x08 ) << 4 ) | ( offreg << 3 )\n                                    | ( rd & 0x07 );\n                                }\n                            else if ( ! bUni )\n                                {\n                                if (( rd > 7 ) || ( rn > 7 ) || ( offreg > 7 ))\n                                    asmerr (104); // 'Low register required'\n                                instruction = 0x1800 | ( ( offreg & 0x07 ) << 6 ) | ( rn << 3 ) | rd;\n                                }\n                            else\n                                {\n                                asmerr (103);   // 'Invalid register'\n                                }\n                            }\n                        }\n                    break;\n                    }\n\n                    case SUB:\n                    {\n                    int st = status ();\n                    int rd;\n                    int rn;\n                    int offreg;\n                    int bImm;\n                    asarg (&rd, &rn, &offreg, &bImm);\n                    if ( st )\n                        {\n                        if (( rd > 7 ) || ( rn > 7 )) asmerr (104); //'Low register required'\n                        if ( bImm )\n                            {\n                            instruction = addsi (rd, rn, -offreg);\n                            }\n                        else\n                            {\n                            if ( offreg > 7 ) asmerr (104); // 'Low register required'\n                            instruction = 0x1A00 | (( offreg & 0x07 ) << 6 ) | ( rn << 3 ) | rd;\n                            }\n                        }\n                    else\n                        {\n                        if (( rd == 13 ) && ( rn == 13 ) && ( bImm ))\n                            {\n                            if ( offreg >= 0 )\n                                {\n                                instruction = 0xB080 | (( offreg >> 2 ) & 0x7F );\n                                }\n                            else\n                                {\n                                offreg = - offreg;\n                                instruction = 0xB000 | (( offreg >> 2 ) & 0x7F );\n                                }\n                            if ( offreg > 508 ) asmerr (2); // 'Bad immediate constant'\n                            else if ( offreg & 0x03 ) asmerr (105);   // 'Invalid alignment'\n                            }\n                        else if ( ! bUni )\n                            {\n                            if ( bImm )\n                                {\n                                if (( rd > 7 ) || ( rn > 7 )) asmerr (104); //'Low register required'\n                                instruction = addsi (rd, rn, -offreg);\n                                }\n                            else\n                                {\n                                if (( rd > 7 ) || ( rn > 7 ) || ( offreg > 7 ))\n                                    asmerr (104); // 'Low register required'\n                                instruction = 0x1A00 | (( offreg & 0x07 ) << 6 ) | ( rn << 3 ) | rd;\n                                }\n                            }\n                        else\n                            {\n                            asmerr (103); // 'Invalid register'\n                            }\n                        }\n                    break;\n                    }\n\n\t\t\t\t\tcase ADR:\n                    {\n                    // ADR <reg8>, <label>\n                    int offpc;\n                    instruction = 0xA000 | reg8 () << 8;\n                    comma ();\n                    offpc = expri () - (((uint32_t)PC + 4) & 0xFFFFFFFC);\n                    if (( offpc > 0x3FC ) || ( offpc < 0 ))\n                        asmerr (8); // 'Address out of range'\n                    else if (offpc & 0x03)\n                        asmerr (105);   // 'Invalid allignment'\n                    if (offpc >= 0)\n                        instruction |= (offpc >> 2) & 0xFF;\n                    break;\n                    }\n\n\t\t\t\t\tcase B:\n                    {\n                    condition = lookup (conditions, \n                        sizeof(conditions) / sizeof(conditions[0]));\n\n                    if (condition == -1)\n                        {\n                        if (( *esi == 'l' ) || ( *esi == 'L' ))\n                            {\n                            // BL <label>\n                            ++esi;\n                            int dest = (void *) (size_t) expri () - PC - 4;\n                            if ( dest & 0x01 ) asmerr (105);    // 'Invalid alignment'\n                            dest >>= 1;\n                            if (( dest > 0x00FFFFFF ) || ( dest <= (int) 0xFF000000 ))\n                                asmerr (1); // 'Jump out of range'\n                            instruction2 = 0xF000 | (( dest >> 12 ) & 0x3FF );\n                            instruction = 0xD000 | (( dest & 0x1000) << 1 ) | ( dest & 0xFFF );\n                            if ( dest < 0 ) instruction2 ^= 0x400;\n                            else instruction ^= 0x2800;\n                            break;\n                            }\n                        condition = 0;\n                        }\n                    \n                    int dest = (void *) (size_t) expri () - PC - 4;\n                    if ( dest & 0x01 ) asmerr (105);    // 'Invalid alignment'\n                    dest >>= 1;\n                    if ( condition == 0 )\n                        {\n                        // B <label>\n                        // BAL <label>\n                        if (( dest < -1024 ) || ( dest >= 1024 )) asmerr (1); // 'Jump out of range'\n                        instruction = 0xE000 | ( dest & 0x7FF );\n                        }\n                    else\n                        {\n                        // B<cond> <label>\n                        if (( dest < -128 ) || ( dest >= 128 )) asmerr (1); // 'Jump out of range'\n                        instruction = 0xD000 | ( ccodes[condition] << 8 ) | ( dest & 0xFF );\n                        }\n                    break;\n                    }\n\n                    case BKPT:\n                        // BKPT <data>\n                        if ( nxt () == '#' ) ++esi;\n                        instruction = 0xBE00 | ( expri () & 0xFF );\n                        break;\n\n                    case CPSID:\n                    case CPSIE:\n                        nxt ();\n                        if (( *esi == 'i' ) || ( *esi == 'I' )) ++esi;\n                        else asmerr (16); // 'Syntax error' \n                        instruction = opcodes[mnemonic];\n                        break;\n\n\t\t\t\t\tcase LDM:\n                    {\n                    // LDM <reg8>!, <reg8 list>\n                    // LDM <reg8>, <reg8 list>\n                    if ( ! strnicmp ((const char *)esi, \"ia\", 2) ) esi += 2;\n                    else if ( ! strnicmp ((const char *)esi, \"fd\", 2) ) esi += 2;\n                    int rn = reg8 ();\n                    instruction = 0xC800 | ( rn << 8 );\n                    int bWB = 0;\n                    if ( nxt () == '!' )\n                        {\n                        bWB = 1;\n                        ++esi;\n                        }\n                    comma ();\n                    int rl = reglist ();\n                    instruction |= ( rl & 0xFF );\n                    int bIL = ( instruction & ( 1 << rn ) ) > 0 ? 1 : 0;\n                    if ( rl & 0xFF00 ) asmerr (107);    // 'Invalid register list'\n                    else if ( bIL == bWB ) asmerr (106); // 'Register / list conflict'\n                    break;\n                    }\n\n\t\t\t\t\tcase LDR:\n                    {\n                    // LDR <reg8>, [<reg8>, #<imm5>]\n                    // LDR <reg8>, [SP, #<imm8>]\n                    // LDR <reg8>, [PC, #<imm8>]\n                    // LDR <reg8>, <label>\n                    // LDR <reg8>, [<reg8>, <reg8>]\n                    int rd = reg8 ();\n                    comma ();\n                    if ( nxt () == '[' )\n                        {\n                        ++esi;\n                        int rn = reg ();\n                        int bImm;\n                        int\toffreg = offset2 (&bImm);\n                        if ( bImm )\n                            {\n                            if ( rn < 8 )\n                                {\n                                if ((offreg < 0) || (offreg > 124))\n                                    asmerr (2); // 'Bad immediate constant'\n                                else if (offreg & 0x03)\n                                    asmerr (105);   // 'Invalid allignment'\n                                instruction = 0x6800 | (( offreg & 0x7C ) << 4 ) | ( rn << 3 ) | rd;\n                                }\n                            else if (( rn == 13 ) || ( rn == 15 ))\n                                {\n                                if ((offreg < 0) || (offreg > 1020))\n                                    asmerr (2); // 'Bad immediate constant'\n                                else if (offreg & 0x03)\n                                    asmerr (105);   // 'Invalid alignment'\n                                instruction = ( rn == 15 ) ? 0x4800 : 0x9800;\n                                instruction |= ( rd << 8 ) | (( offreg >> 2 ) & 0xFF );\n                                }\n                            else\n                                {\n                                asmerr (103); // 'Invalid register'\n                                }\n                            }\n                        else\n                            {\n                            if (( rn > 7 ) || ( offreg > 7 )) asmerr (104); // 'Low register required'\n                            instruction = 0x5800 | (( offreg & 0x07 ) << 6 ) | (( rn & 0x07 ) << 3 ) | rd;\n                            }\n                        if ( nxt () == ']' ) ++esi;\n                        else asmerr (16); // 'Syntax error'\n                        }\n                    else\n                        {\n                        int offpc = expri () - (((uint32_t)PC + 4) & 0xFFFFFFFC);\n                        if ((offpc < 0) || (offpc > 1020))\n                            asmerr (8); // 'Address out of range'\n                        else if (offpc & 0x03)\n                            asmerr (105);   // 'Invalid allignment'\n                        instruction = 0x4800 | ( rd << 8 ) | (( offpc >> 2 ) & 0xFF );\n                        }\n                    break;\n                    }\n\n                    case MRS:\n                    {\n                    instruction = 0x8000 | ( reg () << 8 );\n                    comma ();\n                    nxt ();\n                    int sys = lookup (sysm, sizeof (sysm) / sizeof (sysm[0]));\n                    if ( sys < 0 ) asmerr (109);    // 'Invalid special register'\n                    if ( sys >= 4 ) ++sys;\n                    if ( sys == 10 ) sys = 16;\n                    else if ( sys == 11 ) sys = 20;\n                    instruction |= sys;\n                    instruction2 = 0xF3EF;\n                    break;\n                    }\n\n                    case MSR:\n                    {\n                    nxt ();\n                    int sys = lookup (sysm, sizeof (sysm) / sizeof (sysm[0]));\n                    if ( sys < 0 ) asmerr (109);    // 'Invalid special register'\n                    if ( sys >= 4 ) ++sys;\n                    if ( sys == 10 ) sys = 16;\n                    else if ( sys == 11 ) sys = 20;\n                    comma ();\n                    instruction2 = 0xF380 | reg ();\n                    instruction = 0x8800 | sys;\n                    break;\n                    }\n\n                    case MUL:\n                    {\n                    // MULS rd, rn, rd\n                    chkstatus ();\n                    int rd = reg8 ();\n                    comma ();\n                    int rn = reg8 ();\n                    if ( nxt () == ',' )\n                        {\n                        ++esi;\n                        if ( reg8 () != rd ) asmerr (103); // 'Invalid register'\n                        }\n                    else if ( bUni )\n                        {\n                        asmerr (16);    // 'Syntax error'\n                        }\n                    instruction = 0x4340 | ( rn << 3 ) | rd;\n                    break;\n                    }\n\n                    case POP:\n                    {\n                    int rl = reglist ();\n                    if ( rl & 0x7F00 ) asmerr (107); // 'Invalid register list'\n                    instruction = 0xBC00 | ( rl & 0xFF );\n                    if ( rl & 0x8000 ) instruction |= 0x100;\n                    break;\n                    }\n\n                    case PUSH:\n                    {\n                    int rl = reglist ();\n                    if ( rl & 0xBF00 ) asmerr (107); // 'Invalid register list'\n                    instruction = 0xB400 | ( rl & 0xFF );\n                    if ( rl & 0x4000 ) instruction |= 0x100;\n                    break;\n                    }\n\n                    case RSB:\n                        chkstatus ();\n                        instruction = 0x4240 | reg8 ();\n                        comma ();\n                        instruction |= ( reg8 () << 3 );\n                        comma ();\n                        if ( nxt () == '#' )\n                            {\n                            ++esi;\n                            int imm = expri ();\n                            if ( imm != 0 ) asmerr (2); // 'Bad immediate constant'\n                            }\n                        else\n                            {\n                            asmerr (16); // 'Syntax error'\n                            }\n                        break;\n                    \n\t\t\t\t\tcase STM:\n                    {\n                    // STM <reg8>!, <reg8 list>\n                    if ( ! strnicmp ((const char *)esi, \"ia\", 2) ) esi += 2;\n                    else if ( ! strnicmp ((const char *)esi, \"ei\", 2) ) esi += 2;\n                    int rn = reg8 ();\n                    instruction = 0xC000 | ( rn << 8 );\n                    if ( nxt () == '!' ) ++esi;\n                    else asmerr (16); // 'Syntax error'\n                    comma ();\n                    int rl = reglist ();\n                    if ( rl & 0xFF00 ) asmerr (107); // 'Invalid register list'\n                    instruction |= rl;\n                    break;\n                    }\n\n\t\t\t\t\tcase STr:\n                    {\n                    // LDR <reg8>, [<reg8>, #<imm5>]\n                    // LDR <reg8>, [SP, #<imm8>]\n                    // LDR <reg8>, [<reg8>, <reg8>]\n                    int rd = reg8 ();\n                    comma ();\n                    if ( nxt () == '[' )\n                        {\n                        ++esi;\n                        int rn = reg ();\n                        int bImm;\n\t\t\t\t\t\tint\toffreg = offset2 (&bImm);\n                        if ( bImm )\n                            {\n                            if ( rn < 8 )\n                                {\n                                if ((offreg < 0) || (offreg > 124))\n                                    asmerr (2); // 'Bad immediate constant'\n                                else if (offreg & 0x03)\n                                    asmerr (105);   // 'Invalid alignment'\n                                instruction = 0x6000 | (( offreg & 0x7C ) << 4 ) | ( rn << 3 ) | rd;\n                                }\n                            else if ( rn == 13 )\n                                {\n                                if ((offreg < 0) || (offreg > 1020))\n                                    asmerr (2); // 'Bad immediate constant'\n                                else if (offreg & 0x03)\n                                    asmerr (105);   // 'Invalid alignment'\n                                instruction = 0x9000 | ( rd << 8 ) | (( offreg >> 2 ) & 0xFF );\n                                }\n                            else\n                                {\n                                asmerr (103); // Invalid register\n                                }\n                            }\n                        else\n                            {\n                            if (( rn > 7 ) || ( offreg > 7 )) asmerr (104); // 'Low register required'\n                            instruction = 0x5000 | (( offreg & 0x07 ) << 6 ) | (( rn & 0x07 ) << 3 ) | rd;\n                            }\n                        if ( nxt () == ']' ) ++esi;\n                        else asmerr (16); // 'Syntax error'\n                        }\n                    else asmerr (16); // 'Syntax error'\n                    break;\n                    }\n\n                    case SVC:\n                    {\n                    // SVC #<imm8>\n                    if ( nxt () == '#' ) ++esi;\n                    int imm = expri ();\n                    if (( imm < 0 ) || ( imm > 0xFF ))\n                        asmerr (2); // 'Bad immediate constant'\n                    instruction = 0xDF00 | ( imm & 0xFF );\n                    break;\n                    }\n\n                    default:\n                        asmerr (101); // 'Invalid opcode'\n                        while (! eol (*esi)) ++esi;\n                    }\n\n                align (2);\n                if ( instruction2 >= 0 ) poke (&instruction2, 2);\n                poke (&instruction, 2);\n                if (! eol (nxt ())) asmerr (102); // 'Too many parameters'\n                while (! eol (*esi)) ++esi;\n            }\n        };\n    }\n"
  },
  {
    "path": "src/bbasmb_wasm32.c",
    "content": "/*****************************************************************\\\n*       32-bit BBC BASIC Interpreter (Emscripten / Web Assembly)  *\n*       (c) 2018-2026  R.T.Russell  http://www.rtrussell.co.uk/   *\n*                                                                 *\n*       The name 'BBC BASIC' is the property of the British       *\n*       Broadcasting Corporation and used with their permission   *\n*                                                                 *\n*       bbasmb.c: API Wrappers to satisfy function signatures     *\n*       Version 1.44a, 05-Feb-2026                                *\n\\*****************************************************************/\n\n#include <stdlib.h>\n#include <stdio.h>\n#include <unistd.h>\n#include <ctype.h>\n#include <string.h>\n#include <errno.h>\n#include <time.h>\n#include <emscripten.h>\n#include <GLES2/gl2.h>\n#include \"SDL2/SDL.h\"\n#include \"SDL_ttf.h\"\n#include \"SDL_net.h\"\n#include \"BBC.h\"\n#include \"SDL2_gfxPrimitives.h\"\n#include \"SDL2_rotozoom.h\"\n\ntypedef size_t st ;\ntypedef double db ;\nSDL_Surface* STBIMG_Load(const char*) ;\nSDL_Texture* STBIMG_LoadTexture(SDL_Renderer* renderer, const char* file) ;\n\ntypedef struct\n{\n    unsigned int outputChannels;\n    unsigned int outputSampleRate;\n} drmp3_config;\n\n// External routines:\nvoid error (int, const char *) ;\nvoid stbi_set_flip_vertically_on_load(int) ;\nunsigned char* stbi_load_gif_from_memory(const unsigned char*, int, int**, int*, int*, int*, int*, int);\nvoid stbi_image_free(void*);\nfloat* drmp3_open_file_and_read_f32 (const char*, drmp3_config*, uint64_t *) ;\nvoid drmp3dec_f32_to_s16 (const float*, int16_t *, int) ;\nvoid drmp3_free (void*) ;\nlong long B2D_GetProcAddress (st, st, st, st, st, st, st, st, st, st, st, st, db, db, db, db, db, db, db, db) ;\n\n// Global variables:\nextern int bYield ;\n\nvoid assemble (void)\n{\n\terror (255, \"Assembler code is not supported in WebAssembly\") ;\n}\n\n// Wrapper functions to match SYS signature:\n\n// Anti-aliased graphics (used by aagfxlib.bbc):\n\nlong long WASM_RenderSetClipRect(st renderer, st rect, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_RenderSetClipRect((SDL_Renderer*) renderer, (const SDL_Rect*) rect); }\n\nlong long BBC_bezierColor(st renderer, st vx, st vy, st n, st s, st color, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return bezierColor((SDL_Renderer*) renderer, (const Sint16*) vx, (const Sint16*) vy, n, s, color); }\n\nlong long BBC_filledPolyBezierColor(st renderer, st vx, st vy, st n, st s, st color, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return filledPolyBezierColor((SDL_Renderer*) renderer, (const Sint16*) vx, (const Sint16*) vy, n, s, color); }\n\nlong long BBC_aaFilledEllipseColor(st renderer, st i1, st i2, st i3, st i4, st color, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n{\n\tfloat cx = *(float *)&i1 ; float cy = *(float *)&i2 ;\n\tfloat rx = *(float *)&i3 ; float ry = *(float *)&i4 ;\n\treturn aaFilledEllipseColor((SDL_Renderer*) renderer, cx, cy, rx, ry, color);\n}\n\nlong long BBC_aaFilledPolygonColor(st renderer, st vx, st vy, st n, st color, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return aaFilledPolygonColor((SDL_Renderer*) renderer, (const double*) vx, (const double*) vy, n, color); }\n\nlong long BBC_aaFilledPieColor(st renderer, st i1, st i2, st i3, st i4, st i5, st i6, st chord,\n\t  st color, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n{\n\tfloat cx = *(float *)&i1 ; float cy = *(float *)&i2 ;\n\tfloat rx = *(float *)&i3 ; float ry = *(float *)&i4 ;\n\tfloat start = *(float *)&i5 ; float end = *(float *)&i6 ;\n\treturn aaFilledPieColor((SDL_Renderer*) renderer, cx, cy, rx, ry, start, end, chord, color);\n}\n\nlong long BBC_aaArcColor(st renderer, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st color, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n{\n\tfloat cx = *(float *)&i1 ; float cy = *(float *)&i2 ;\n\tfloat rx = *(float *)&i3 ; float ry = *(float *)&i4 ;\n\tfloat start = *(float *)&i5 ; float end = *(float *)&i6 ; float thick = *(float *)&i7 ;\n\treturn aaArcColor((SDL_Renderer*) renderer, cx, cy, rx, ry, start, end, thick, color);\n}\n\nlong long BBC_aaBezierColor(st renderer, st x, st y, st n, st s, st i5, st color, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n{\n\tfloat thick = *(float *)&i5 ;\n\treturn aaBezierColor((SDL_Renderer*) renderer, (double *) x, (double *) y, n, s, thick, color);\n}\n\nlong long BBC_aaFilledPolyBezierColor(st renderer, st x, st y, st n, st s, st color, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return aaFilledPolyBezierColor((SDL_Renderer*) renderer, (double *) x, (double *) y, n, s, color); }\n\ndouble BBC_EvaluateBezier(st data, st ndata, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db t, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return _evaluateBezier((double*) data, ndata, t); }\n\nlong long BBC_RotoZoomSurface(st src, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db angle, db zoomx, db zoomy, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) rotozoomSurfaceXY((SDL_Surface*) src, angle, zoomx, zoomy, 0); }\n\n// 2D Surfaces and Textures (e.g. used by imglib.bbc):\n\nlong long BBC_CreateTextureFromSurface(st renderer, st surface, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) SDL_CreateTextureFromSurface((SDL_Renderer *)renderer, (SDL_Surface *) surface); }\n\nlong long BBC_DestroyTexture(st texture, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ SDL_DestroyTexture((SDL_Texture*) texture); return 0; }\n\nlong long BBC_FreeSurface(st surface, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ SDL_FreeSurface((SDL_Surface*) surface); return 0; }\n\nlong long BBC_QueryTexture(st texture, st format, st access, st w, st h, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_QueryTexture((SDL_Texture*) texture, (Uint32*) format, (int*) access, (int*) w, (int*) h); }\n\nlong long BBC_RenderCopyEx(st renderer, st texture, st srcrect, st dstrect, st anglo, st anghi, st center, st flip,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n{\n\tlong long anglei = ((long long)anghi << 32) | anglo;\n\tdouble angle = *(double *)&anglei;\n\treturn SDL_RenderCopyEx((SDL_Renderer *)renderer, (SDL_Texture*) texture, (const SDL_Rect*) srcrect, (const SDL_Rect*) dstrect, (const double) angle, (const SDL_Point*) center, (const SDL_RendererFlip) flip);\n}\n\nlong long BBC_RenderCopyExF(st renderer, st texture, st srcrect, st dstrect, st anglo, st anghi, st center, st flip,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n{\n\tlong long anglei = ((long long)anghi << 32) | anglo;\n\tdouble angle = *(double *)&anglei;\n\treturn SDL_RenderCopyExF((SDL_Renderer *)renderer, (SDL_Texture*) texture, (const SDL_Rect*) srcrect, (const SDL_FRect*) dstrect, (const double) angle, (const SDL_FPoint*) center, (const SDL_RendererFlip) flip);\n}\n\nlong long BBC_SetTextureAlphaMod(st texture, st alpha, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_SetTextureAlphaMod((SDL_Texture*) texture, alpha); }\n\nlong long BBC_SetTextureBlendMode(st texture, st blendmode, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_SetTextureBlendMode((SDL_Texture*) texture, (SDL_BlendMode) blendmode); }\n\nlong long BBC_SetTextureColorMod(st texture, st r, st g, st b, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_SetTextureColorMod((SDL_Texture*) texture, r, g, b); }\n\nlong long BBC_SetColorKey(st surface, st flag, st key, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_SetColorKey((SDL_Surface*) surface, flag, key); }\n\nlong long BBC_CreateTexture(st renderer, st format, st access, st w, st h, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) SDL_CreateTexture((SDL_Renderer*) renderer, format, access, w, h); }\n\nlong long BBC_GetRenderTarget(st renderer, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) SDL_GetRenderTarget((SDL_Renderer*) renderer); }\n\nlong long BBC_SetRenderTarget(st renderer, st texture, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_SetRenderTarget((SDL_Renderer*) renderer, (SDL_Texture*) texture); }\n\nlong long BBC_RenderCopy(st renderer, st texture, st srcrect, st dstrect, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_RenderCopy((SDL_Renderer*) renderer, (SDL_Texture*) texture, (const SDL_Rect*) srcrect, (const SDL_Rect*) dstrect); }\n\nlong long BBC_RenderCopyF(st renderer, st texture, st srcrect, st dstrect, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_RenderCopyF((SDL_Renderer*) renderer, (SDL_Texture*) texture, (const SDL_Rect*) srcrect, (const SDL_FRect*) dstrect); }\n\nlong long BBC_SetRenderDrawBlendMode(st renderer, st mode, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_SetRenderDrawBlendMode((SDL_Renderer*) renderer, mode); }\n\nlong long BBC_SetRenderDrawColor(st renderer, st r, st g, st b, st a, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_SetRenderDrawColor((SDL_Renderer*) renderer, r, g, b, a); }\n\nlong long BBC_RenderFillRect(st renderer, st rect, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_RenderFillRect((SDL_Renderer*) renderer, (const SDL_Rect*) rect); }\n\nlong long BBC_RenderFillRects(st renderer, st rects, st count, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_RenderFillRects((SDL_Renderer*) renderer, (const SDL_Rect*) rects, count); }\n\nlong long BBC_RenderFlush(st renderer, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_RenderFlush((SDL_Renderer*) renderer); }\n\nlong long BBC_RenderDrawPoint(st renderer, st x, st y, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_RenderDrawPoint((SDL_Renderer*) renderer, x, y); }\n\nlong long BBC_RenderDrawPoints(st renderer, st points, st count, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_RenderDrawPoints((SDL_Renderer*) renderer, (const SDL_Point*) points, count); }\n\nlong long BBC_RenderClear(st renderer, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_RenderClear((SDL_Renderer*) renderer); }\n\nlong long BBC_LockTexture(st texture, st rect, st pixels, st pitch, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_LockTexture((SDL_Texture*) texture, (const SDL_Rect*) rect, (void**) pixels, (int*) pitch); }\n\nlong long BBC_UnlockTexture(st texture, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ SDL_UnlockTexture((SDL_Texture*) texture); return 0; }\n\nlong long BBC_ConvertSurfaceFormat(st surf, st pixel_format, st flgs, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) SDL_ConvertSurfaceFormat((SDL_Surface*) surf, pixel_format, flgs); }\n\nlong long BBC_ComposeCustomBlendMode(st srcColor, st dstColor, st colorOp, st srcAlpha, st dstAlpha, st alphaOp, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) SDL_ComposeCustomBlendMode(srcColor, dstColor, colorOp, srcAlpha, dstAlpha, alphaOp); }\n\nlong long BBC_GetDisplayUsableBounds(st displayIndex, st rect, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_GetDisplayUsableBounds(displayIndex, (SDL_Rect*) rect); }\n\nlong long BBC_RenderDrawLine(st renderer, st x1, st y1, st x2, st y2, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_RenderDrawLine((SDL_Renderer*) renderer, x1, y1, x2, y2); }\n\nlong long BBC_RenderDrawLines(st renderer, st points, st count, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_RenderDrawLines((SDL_Renderer*) renderer, (const SDL_Point*) points, count); }\n\nlong long BBC_RenderGeometry(st renderer, st texture, st vertices, st num_ver, st indices, st num_ind, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_RenderGeometry((SDL_Renderer*) renderer, (SDL_Texture*) texture,\n\t\t       (const SDL_Vertex*) vertices, num_ver, (const int*) indices, num_ind); }\n\nlong long WASM_RenderReadPixels(st renderer, st rect, st format, st pixels, st pitch, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_RenderReadPixels((SDL_Renderer*) renderer, (const SDL_Rect*) rect, format, (void*) pixels, pitch); }\n\nlong long BBC_CreateRGBSurface(st flgs, st width, st height, st depth, st Rmask, st Gmask, st Bmask, st Amask,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) SDL_CreateRGBSurface(flgs, width, height, depth, Rmask, Gmask, Bmask, Amask); }\n\nlong long BBC_CreateRGBSurfaceFrom(st pixels, st width, st height, st depth, st pitch, st Rmask, st Gmask,\n\t  st Bmask, st Amask, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) SDL_CreateRGBSurfaceFrom((void*)pixels, width, height, depth, pitch, Rmask, Gmask, Bmask, Amask); }\n\nlong long BBC_CreateRGBSurfaceWithFormat(st flgs, st width, st height, st depth, st format, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) SDL_CreateRGBSurfaceWithFormat(flgs, width, height, depth, format); }\n\nlong long BBC_SetSurfaceAlphaMod(st surface, st alpha, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_SetSurfaceAlphaMod((SDL_Surface*) surface, alpha); }\n\nlong long BBC_SetSurfaceColorMod(st surface, st r, st g, st b, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_SetSurfaceColorMod((SDL_Surface*) surface, r, g, b); }\n\nlong long BBC_SetSurfaceBlendMode(st surface, st blend, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_SetSurfaceBlendMode((SDL_Surface*) surface, blend); }\n\nlong long BBC_UpperBlit(st src, st srcrect, st dst, st dstrect, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_UpperBlit((SDL_Surface*) src, (const SDL_Rect*) srcrect, (SDL_Surface*) dst, (SDL_Rect*) dstrect); }\n\nlong long BBC_FillRect(st surface, st rect, st color, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_FillRect((SDL_Surface*) surface, (const SDL_Rect*) rect, color); }\n\nlong long BBC_STBIMG_Load(st file, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) STBIMG_Load((const char*) file); }\n\nlong long BBC_STBIMG_LoadTexture(st renderer, st file, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) STBIMG_LoadTexture((SDL_Renderer*) renderer, (const char*) file); }\n\nlong long BBC_LoadBMP_RW(st src, st freesrc, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) SDL_LoadBMP_RW((SDL_RWops*) src, freesrc); }\n\nlong long BBC_SetPaletteColors(st palette, st colors, st first, st ncolors, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_SetPaletteColors((SDL_Palette*) palette, (const SDL_Color*) colors, first, ncolors); }\n\nlong long BBC_stbi_set_flip_vertically_on_load(st flip, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ stbi_set_flip_vertically_on_load(flip); return 0; }\n\nlong long BBC_stbi_load_gif_from_memory(st buffer, st len, st delays, st x, st y, st z, st comp, st req_comp,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) stbi_load_gif_from_memory((const unsigned char*) buffer, len, (int**) delays,\n\t\t\t\t\t\t     (int*) x, (int*) y, (int*) z, (int*) comp, req_comp); }\n\nlong long BBC_stbi_image_free(st buffer, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ stbi_image_free((void*) buffer); return 0; }\n\n// 3D (OpenGL) graphics:\n\nlong long BBC_GL_BindTexture(st texture, st texw, st texh, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_GL_BindTexture((SDL_Texture*) texture, (float*) texw, (float*) texh); }\n\nlong long BBC_GL_CreateContext(st window, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) SDL_GL_CreateContext((SDL_Window*) window); }\n\nlong long BBC_GL_DeleteContext(st context, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ SDL_GL_DeleteContext((SDL_GLContext) context); return 0; }\n\nlong long BBC_GL_GetCurrentContext(st i0, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) SDL_GL_GetCurrentContext(); }\n\nlong long BBC_GL_GetDrawableSize(st window, st pw, st ph, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ SDL_GL_GetDrawableSize((SDL_Window*) window, (int*) pw, (int*) ph); return 0; }\n\nlong long BBC_GL_GetProcAddress(st, st, st, st, st, st, st, st, st, st, st, st, db, db, db, db, db, db, db, db) ;\n\nlong long BBC_GL_MakeCurrent(st window, st context, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_GL_MakeCurrent((SDL_Window*) window, (SDL_GLContext) context); }\n\nlong long BBC_GL_SetAttribute(st attr, st value, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_GL_SetAttribute(attr, value); }\n\nlong long BBC_GL_SetSwapInterval(st interval, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_GL_SetSwapInterval(interval); }\n\nlong long BBC_GL_SwapWindow(st window, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glFinish(); bYield = 1; return 0; }\n\n// Audio:\n\nlong long BBC_OpenAudioDevice(st device, st iscapture, st desired, st obtained, st allow, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_OpenAudioDevice((const char*) device, iscapture, (const SDL_AudioSpec*) desired, (SDL_AudioSpec*)obtained, allow); }\n\nlong long BBC_CloseAudioDevice(st device, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ SDL_CloseAudioDevice(device); return 0; }\n\nlong long BBC_QueueAudio(st device, st data, st len, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_QueueAudio(device, (const void*) data, len); }\n\nlong long BBC_ClearQueuedAudio(st device, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ SDL_ClearQueuedAudio(device); return 0; }\n\nlong long BBC_GetQueuedAudioSize(st device, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_GetQueuedAudioSize(device); }\n\nlong long BBC_MixAudioFormat(st dst, st src, st format, st len, st volume, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ SDL_MixAudioFormat((void*) dst, (const void*) src, format, len, volume); return 0; }\n\nlong long BBC_LockAudioDevice(st device, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ SDL_LockAudioDevice(device); return 0; }\n\nlong long BBC_UnlockAudioDevice(st device, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ SDL_UnlockAudioDevice(device); return 0; }\n\nlong long BBC_PauseAudioDevice(st device, st pause, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ SDL_PauseAudioDevice(device, pause); return 0; }\n\nlong long BBC_drmp3_open_file_and_read_f32(st path, st config, st total, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) drmp3_open_file_and_read_f32((const char*) path, (drmp3_config*) config, (uint64_t*) total); }\n\nlong long BBC_drmp3dec_f32_to_s16(st in, st out, st num, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ drmp3dec_f32_to_s16((const float*) in, (int16_t *) out, num); return 0; }\n\nlong long BBC_drmp3_free(st ptr, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ drmp3_free((void*) ptr); return 0; }\n\nlong long BBC_LoadWAV_RW(st src, st freesrc, st spec, st audio_buf, st audio_len, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) SDL_LoadWAV_RW((SDL_RWops*) src, freesrc, (SDL_AudioSpec*) spec, (Uint8**) audio_buf, (Uint32*) audio_len); }\n\nlong long BBC_FreeWAV(st audio_buf, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ SDL_FreeWAV((Uint8*) audio_buf); return 0; }\n\nlong long BBC_BuildAudioCVT(st cvt, st src_fmt, st src_chan, st src_rate, st dst_fmt, st dst_chan, st dst_rate, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_BuildAudioCVT((SDL_AudioCVT*) cvt, (SDL_AudioFormat) src_fmt, src_chan, src_rate,\n                      \t\t                        (SDL_AudioFormat) dst_fmt, dst_chan, dst_rate); }\n\nlong long BBC_ConvertAudio(st cvt, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_ConvertAudio((SDL_AudioCVT*) cvt); }\n\n// Time-related functions:\n\nlong long BBC_asctime(st tm, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) asctime((const struct tm*) tm); }\n\nlong long BBC_gmtime(st timep, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) gmtime((const time_t*) timep); }\n\nlong long BBC_localtime(st timep, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) localtime((const time_t*) timep); }\n\nlong long BBC_mktime(st tm, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) mktime((struct tm*) tm); }\n\nlong long BBC_time(st tloc, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) time((time_t*) tloc); }\n\nlong long BBC_GetTicks(st i0, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_GetTicks(); }\n\nlong long BBC_GetTicks64(st i0, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_GetTicks64(); }\n\nlong long BBC_AddTimer(st interval, st callback, st param, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_AddTimer(interval, (SDL_TimerCallback) callback, (void *) param); }\n\nlong long BBC_RemoveTimer(st id, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_RemoveTimer(id); }\n\n// Miscellaneous:\n\nlong long BBC_CaptureMouse(st enabled, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_CaptureMouse(enabled); }\n\nlong long BBC_CreateColorCursor(st surface, st hot_x, st hot_y, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) SDL_CreateColorCursor((SDL_Surface *)surface, hot_x, hot_y); }\n\nlong long BBC_Delay(st ms, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ SDL_Delay(ms); return 0; }\n\nlong long BBC_GetError(st i0, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) SDL_GetError(); }\n\nlong long BBC_HasIntersection(st recta, st rectb, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_HasIntersection((const SDL_Rect*) recta, (const SDL_Rect*) rectb); }\n\nlong long BBC_IntersectRectAndLine(st rect, st X1, st Y1, st X2, st Y2, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_IntersectRectAndLine((const SDL_Rect*) rect, (int*) X1, (int*) Y1, (int*) X2, (int*) Y2); }\n\nlong long BBC_SetCursor(st cursor, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ SDL_SetCursor((SDL_Cursor *)cursor); return 0; }\n\nlong long BBC_SetHint(st name, st value, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_SetHint((const char*) name, (const char*) value); }\n\nlong long BBC_GetWindowFlags(st window, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_GetWindowFlags((SDL_Window*) window); }\n\nlong long BBC_SetWindowFullscreen(st window, st flag, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ if (flag) emscripten_run_script(\"Module.requestFullscreen()\"); \n\t  else      emscripten_run_script(\"document.exitFullscreen()\"); return 0; }\n\nlong long BBC_SetWindowPosition(st window, st x, st y, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ SDL_SetWindowPosition((SDL_Window*) window, x, y); return 0; }\n\nlong long BBC_SetWindowResizable(st window, st resizable, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ SDL_SetWindowResizable((SDL_Window*) window, resizable); return 0; }\n\nlong long BBC_SetWindowSize(st window, st w, st h, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ SDL_SetWindowSize((SDL_Window*) window, w, h); return 0; }\n\nlong long BBC_SetWindowTitle(st window, st title, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ SDL_SetWindowTitle((SDL_Window*) window, (const char*) title); return 0; }\n\nlong long BBC_RWFromMem(st mem, st size, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) SDL_RWFromMem((void*) mem, size); }\n\nlong long BBC_RWFromFile(st file, st mode, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) SDL_RWFromFile((const char*) file, (const char*) mode); }\n\nlong long BBC_RWread(st context, st ptr, st size, st maxnum, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_RWread((SDL_RWops*)context, (void*)ptr, size, maxnum); }\n\nlong long BBC_RWwrite(st context, st ptr, st size, st num, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_RWwrite((SDL_RWops*)context, (void*)ptr, size, num); }\n\nlong long BBC_ShowSimpleMessageBox(st flgs, st title, st message, st window, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_ShowSimpleMessageBox(flgs, (const char*) title, (const char*) message, (SDL_Window*) window); }\n\nlong long BBC_GetPerformanceCounter(st i0, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_GetPerformanceCounter(); }\n\nlong long BBC_GetPerformanceFrequency(st i0, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_GetPerformanceFrequency(); }\n\nlong long BBC_malloc(st size, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) SDL_malloc(size); }\n\nlong long BBC_free(st ptr, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ SDL_free((void*) ptr); return 0; }\n\nlong long BBC_memcpy(st dest, st src, st n, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) SDL_memcpy((void*) dest, (void*) src, n); }\n\nlong long BBC_memmove(st dest, st src, st n, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) SDL_memmove((void*) dest, (void*) src, n); }\n\nlong long BBC_memset(st dest, st c, st n, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) SDL_memset((void*) dest, c, n); }\n\nlong long BBC_TTF_GetFontKerningSizeGlyphs(st font, st prev_index, st index, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return TTF_GetFontKerningSizeGlyphs((TTF_Font *) font, prev_index, index); }\n\nlong long BBC_TTF_Linked_Version(st i0, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) TTF_Linked_Version(); }\n\nlong long BBC_OpenURL(st url, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDL_OpenURL((const char *) url); }\n\n// Networking (web sockets)\n\nlong long BBC_Net_AddSocket(st set, st sock, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDLNet_AddSocket((SDLNet_SocketSet) set, (SDLNet_GenericSocket) sock); }\n\nlong long BBC_Net_AllocSocketSet(st maxsockets, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) SDLNet_AllocSocketSet(maxsockets); }\n\nlong long BBC_Net_CheckSockets(st set, st timeout, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDLNet_CheckSockets((SDLNet_SocketSet) set, timeout); }\n\nlong long BBC_Net_DelSocket(st set, st sock, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDLNet_DelSocket((SDLNet_SocketSet) set, (SDLNet_GenericSocket) sock); }\n\nlong long BBC_Net_FreeSocketSet(st set, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ SDLNet_FreeSocketSet((SDLNet_SocketSet) set); return 0; }\n\nlong long BBC_Net_GetError(st i0, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) SDLNet_GetError(); }\n\nlong long BBC_Net_Linked_Version(st i0, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) SDLNet_Linked_Version(); }\n\nlong long BBC_Net_ResolveHost(st addr, st host, st port, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDLNet_ResolveHost((IPaddress*) addr, (const char*) host, port); }\n\nlong long BBC_Net_ResolveIP(st addr, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) SDLNet_ResolveIP((IPaddress*) addr); }\n\nlong long BBC_Net_TCP_Accept(st server, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) SDLNet_TCP_Accept((TCPsocket) server); }\n\nlong long BBC_Net_TCP_Close(st sock, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ SDLNet_TCP_Close((TCPsocket) sock); return 0; }\n\nlong long BBC_Net_TCP_GetPeerAddress(st sock, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) SDLNet_TCP_GetPeerAddress((TCPsocket) sock); }\n\nlong long BBC_Net_TCP_Open(st ip, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) SDLNet_TCP_Open((IPaddress*) ip); }\n\nlong long BBC_Net_TCP_Recv(st sock, st data, st maxlen, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDLNet_TCP_Recv((TCPsocket) sock, (void*) data, maxlen); }\n\nlong long BBC_Net_TCP_Send(st sock, st data, st len, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return SDLNet_TCP_Send((TCPsocket) sock, (const void*) data, len); }\n\n// Emscripten:\n\nvoid wget_report(const char *message)\n{\n\tSDL_Log(\"emscripten_async_wget: %s\\r\\n\", message);\n}\n\nlong long BBC_emscripten_async_wget(st url, st file, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n{\n\temscripten_async_wget((const char*) url, (const char*) file, wget_report, wget_report);\n\treturn 0 ;\n}\n\nlong long BBC_emscripten_run_script_string(st script, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (intptr_t) emscripten_run_script_string((const char*) script); }\n\n#define NSYS 141\n\nstatic const char *sysname[NSYS] = {\n\t\"B2D_GetProcAddress\",\n\t\"GFX_EvaluateBezier\",\n\t\"GFX_RotoZoomSurface\",\n\t\"GFX_aaArcColor\",\n\t\"GFX_aaBezierColor\",\n\t\"GFX_aaFilledEllipseColor\",\n\t\"GFX_aaFilledPieColor\",\n\t\"GFX_aaFilledPolyBezierColor\",\n\t\"GFX_aaFilledPolygonColor\",\n\t\"GFX_bezierColor\",\n\t\"GFX_filledPolyBezierColor\",\n\t\"SDLNet_AddSocket\",\n\t\"SDLNet_AllocSocketSet\",\n\t\"SDLNet_CheckSockets\",\n\t\"SDLNet_DelSocket\",\n\t\"SDLNet_FreeSocketSet\",\n\t\"SDLNet_GetError\",\n\t\"SDLNet_Linked_Version\",\n\t\"SDLNet_ResolveHost\",\n\t\"SDLNet_ResolveIP\",\n\t\"SDLNet_TCP_Accept\",\n\t\"SDLNet_TCP_Close\",\n\t\"SDLNet_TCP_GetPeerAddress\",\n\t\"SDLNet_TCP_Open\",\n\t\"SDLNet_TCP_Recv\",\n\t\"SDLNet_TCP_Send\",\n\t\"SDL_AddTimer\",\n\t\"SDL_BuildAudioCVT\",\n\t\"SDL_CaptureMouse\",\n\t\"SDL_ClearQueuedAudio\",\n\t\"SDL_CloseAudioDevice\",\n\t\"SDL_ComposeCustomBlendMode\",\n\t\"SDL_ConvertAudio\",\n\t\"SDL_ConvertSurfaceFormat\",\n\t\"SDL_CreateColorCursor\",\n\t\"SDL_CreateRGBSurface\",\n\t\"SDL_CreateRGBSurfaceFrom\",\n\t\"SDL_CreateRGBSurfaceWithFormat\",\n\t\"SDL_CreateTexture\",\n\t\"SDL_CreateTextureFromSurface\",\n\t\"SDL_Delay\",\n\t\"SDL_DestroyTexture\",\n\t\"SDL_FillRect\",\n\t\"SDL_FreeSurface\",\n\t\"SDL_FreeWAV\",\n\t\"SDL_GL_BindTexture\",\n\t\"SDL_GL_CreateContext\",\n\t\"SDL_GL_DeleteContext\",\n\t\"SDL_GL_GetCurrentContext\",\n\t\"SDL_GL_GetDrawableSize\",\n\t\"SDL_GL_GetProcAddress\",\n\t\"SDL_GL_MakeCurrent\",\n\t\"SDL_GL_SetAttribute\",\n\t\"SDL_GL_SetSwapInterval\",\n\t\"SDL_GL_SwapWindow\",\n\t\"SDL_GetDisplayUsableBounds\",\n\t\"SDL_GetError\",\n\t\"SDL_GetPerformanceCounter\",\n\t\"SDL_GetPerformanceFrequency\",\n\t\"SDL_GetQueuedAudioSize\",\n\t\"SDL_GetRenderTarget\",\n\t\"SDL_GetTicks\",\n\t\"SDL_GetTicks64\",\n\t\"SDL_GetWindowFlags\",\n\t\"SDL_HasIntersection\",\n\t\"SDL_IntersectRectAndLine\",\n\t\"SDL_LoadBMP_RW\",\n\t\"SDL_LoadWAV_RW\",\n\t\"SDL_LockAudioDevice\",\n\t\"SDL_LockTexture\",\n\t\"SDL_MixAudioFormat\",\n\t\"SDL_OpenAudioDevice\",\n\t\"SDL_OpenURL\",\n\t\"SDL_PauseAudioDevice\",\n\t\"SDL_QueryTexture\",\n\t\"SDL_QueueAudio\",\n\t\"SDL_RWFromFile\",\n\t\"SDL_RWFromMem\",\n\t\"SDL_RWread\",\n\t\"SDL_RWwrite\",\n\t\"SDL_RemoveTimer\",\n\t\"SDL_RenderClear\",\n\t\"SDL_RenderCopy\",\n\t\"SDL_RenderCopyEx\",\n\t\"SDL_RenderCopyExF\",\n\t\"SDL_RenderCopyF\",\n\t\"SDL_RenderDrawLine\",\n\t\"SDL_RenderDrawLines\",\n\t\"SDL_RenderDrawPoint\",\n\t\"SDL_RenderDrawPoints\",\n\t\"SDL_RenderFillRect\",\n\t\"SDL_RenderFillRects\",\n\t\"SDL_RenderFlush\",\n\t\"SDL_RenderGeometry\",\n\t\"SDL_RenderReadPixels\",\n\t\"SDL_RenderSetClipRect\",\n\t\"SDL_SetColorKey\",\n\t\"SDL_SetCursor\",\n\t\"SDL_SetHint\",\n\t\"SDL_SetPaletteColors\",\n\t\"SDL_SetRenderDrawBlendMode\",\n\t\"SDL_SetRenderDrawColor\",\n\t\"SDL_SetRenderTarget\",\n\t\"SDL_SetSurfaceAlphaMod\",\n\t\"SDL_SetSurfaceBlendMode\",\n\t\"SDL_SetSurfaceColorMod\",\n\t\"SDL_SetTextureAlphaMod\",\n\t\"SDL_SetTextureBlendMode\",\n\t\"SDL_SetTextureColorMod\",\n\t\"SDL_SetWindowFullscreen\",\n\t\"SDL_SetWindowPosition\",\n\t\"SDL_SetWindowResizable\",\n\t\"SDL_SetWindowSize\",\n\t\"SDL_SetWindowTitle\",\n\t\"SDL_ShowSimpleMessageBox\",\n\t\"SDL_UnlockAudioDevice\",\n\t\"SDL_UnlockTexture\",\n\t\"SDL_UpperBlit\",\n\t\"SDL_free\",\n\t\"SDL_malloc\",\n\t\"SDL_memcpy\",\n\t\"SDL_memmove\",\n\t\"SDL_memset\",\n\t\"STBIMG_Load\",\n\t\"STBIMG_LoadTexture\",\n\t\"TTF_GetFontKerningSizeGlyphs\",\n\t\"TTF_Linked_Version\",\n\t\"asctime\",\n\t\"drmp3_free\",\n\t\"drmp3_open_file_and_read_f32\",\n\t\"drmp3dec_f32_to_s16\",\n\t\"emscripten_async_wget\",\n\t\"emscripten_run_script_string\",\n\t\"gmtime\",\n\t\"localtime\",\n\t\"mktime\",\n\t\"stbi_image_free\",\n\t\"stbi_load_gif_from_memory\",\n\t\"stbi_set_flip_vertically_on_load\",\n\t\"szNotice\",\n\t\"time\"} ;\n\nstatic void *sysfunc[NSYS] = {\n\tB2D_GetProcAddress,\n\tBBC_EvaluateBezier,\n\tBBC_RotoZoomSurface,\n\tBBC_aaArcColor,\n\tBBC_aaBezierColor,\n\tBBC_aaFilledEllipseColor,\n\tBBC_aaFilledPieColor,\n\tBBC_aaFilledPolyBezierColor,\n\tBBC_aaFilledPolygonColor,\n\tBBC_bezierColor,\n\tBBC_filledPolyBezierColor,\n\tBBC_Net_AddSocket,\n\tBBC_Net_AllocSocketSet,\n\tBBC_Net_CheckSockets,\n\tBBC_Net_DelSocket,\n\tBBC_Net_FreeSocketSet,\n\tBBC_Net_GetError,\n\tBBC_Net_Linked_Version,\n\tBBC_Net_ResolveHost,\n\tBBC_Net_ResolveIP,\n\tBBC_Net_TCP_Accept,\n\tBBC_Net_TCP_Close,\n\tBBC_Net_TCP_GetPeerAddress,\n\tBBC_Net_TCP_Open,\n\tBBC_Net_TCP_Recv,\n\tBBC_Net_TCP_Send,\n\tBBC_AddTimer,\n\tBBC_BuildAudioCVT,\n\tBBC_CaptureMouse,\n\tBBC_ClearQueuedAudio,\n\tBBC_CloseAudioDevice,\n\tBBC_ComposeCustomBlendMode,\n\tBBC_ConvertAudio,\n\tBBC_ConvertSurfaceFormat,\n\tBBC_CreateColorCursor,\n\tBBC_CreateRGBSurface,\n\tBBC_CreateRGBSurfaceFrom,\n\tBBC_CreateRGBSurfaceWithFormat,\n\tBBC_CreateTexture,\n\tBBC_CreateTextureFromSurface,\n\tBBC_Delay,\n\tBBC_DestroyTexture,\n\tBBC_FillRect,\n\tBBC_FreeSurface,\n\tBBC_FreeWAV,\n\tBBC_GL_BindTexture,\n\tBBC_GL_CreateContext,\n\tBBC_GL_DeleteContext,\n\tBBC_GL_GetCurrentContext,\n\tBBC_GL_GetDrawableSize,\n\tBBC_GL_GetProcAddress,\n\tBBC_GL_MakeCurrent,\n\tBBC_GL_SetAttribute,\n\tBBC_GL_SetSwapInterval,\n\tBBC_GL_SwapWindow,\n\tBBC_GetDisplayUsableBounds,\n\tBBC_GetError,\n\tBBC_GetPerformanceCounter,\n\tBBC_GetPerformanceFrequency,\n\tBBC_GetQueuedAudioSize,\n\tBBC_GetRenderTarget,\n\tBBC_GetTicks,\n\tBBC_GetTicks64,\n\tBBC_GetWindowFlags,\n\tBBC_HasIntersection,\n\tBBC_IntersectRectAndLine,\n\tBBC_LoadBMP_RW,\n\tBBC_LoadWAV_RW,\n\tBBC_LockAudioDevice,\n\tBBC_LockTexture,\n\tBBC_MixAudioFormat,\n\tBBC_OpenAudioDevice,\n\tBBC_OpenURL,\n\tBBC_PauseAudioDevice,\n\tBBC_QueryTexture,\n\tBBC_QueueAudio,\n\tBBC_RWFromFile,\n\tBBC_RWFromMem,\n\tBBC_RWread,\n\tBBC_RWwrite,\n\tBBC_RemoveTimer,\n\tBBC_RenderClear,\n\tBBC_RenderCopy,\n\tBBC_RenderCopyEx,\n\tBBC_RenderCopyExF,\n\tBBC_RenderCopyF,\n\tBBC_RenderDrawLine,\n\tBBC_RenderDrawLines,\n\tBBC_RenderDrawPoint,\n\tBBC_RenderDrawPoints,\n\tBBC_RenderFillRect,\n\tBBC_RenderFillRects,\n\tBBC_RenderFlush,\n\tBBC_RenderGeometry,\n\tWASM_RenderReadPixels,\n\tWASM_RenderSetClipRect,\n\tBBC_SetColorKey,\n\tBBC_SetCursor,\n\tBBC_SetHint,\n\tBBC_SetPaletteColors,\n\tBBC_SetRenderDrawBlendMode,\n\tBBC_SetRenderDrawColor,\n\tBBC_SetRenderTarget,\n\tBBC_SetSurfaceAlphaMod,\n\tBBC_SetSurfaceBlendMode,\n\tBBC_SetSurfaceColorMod,\n\tBBC_SetTextureAlphaMod,\n\tBBC_SetTextureBlendMode,\n\tBBC_SetTextureColorMod,\n\tBBC_SetWindowFullscreen,\n\tBBC_SetWindowPosition,\n\tBBC_SetWindowResizable,\n\tBBC_SetWindowSize,\n\tBBC_SetWindowTitle,\n\tBBC_ShowSimpleMessageBox,\n\tBBC_UnlockAudioDevice,\n\tBBC_UnlockTexture,\n\tBBC_UpperBlit,\n\tBBC_free,\n\tBBC_malloc,\n\tBBC_memcpy,\n\tBBC_memmove,\n\tBBC_memset,\n\tBBC_STBIMG_Load,\n\tBBC_STBIMG_LoadTexture,\n\tBBC_TTF_GetFontKerningSizeGlyphs,\n\tBBC_TTF_Linked_Version,\n\tBBC_asctime,\n\tBBC_drmp3_free,\n\tBBC_drmp3_open_file_and_read_f32,\n\tBBC_drmp3dec_f32_to_s16,\n\tBBC_emscripten_async_wget,\n\tBBC_emscripten_run_script_string,\n\tBBC_gmtime,\n\tBBC_localtime,\n\tBBC_mktime,\n\tBBC_stbi_image_free,\n\tBBC_stbi_load_gif_from_memory,\n\tBBC_stbi_set_flip_vertically_on_load,\n\t(void *) szNotice,\n\tBBC_time } ;\n\nvoid *dlsym (void *handle, const char *symbol)\n{\n\tint h = NSYS, l = 0, m, r ;\n\tdo\n\t    {\n\t\tm = (l + h) / 2 ;\n\t\tr = strcmp (symbol, sysname[m]) ;\n\t\tif (r == 0)\n\t\t\treturn sysfunc[m] ; \n\t\tif (r > 0)\n\t\t\tl = m + 1 ;\n\t\telse\n\t\t\th = m ;\n\t    }\n\twhile (l < h) ;\n\treturn NULL ;\n}\n\n// OpenGLES functions:\n\nlong long BBC_glAttachShader(st program, st shader, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glAttachShader(program, shader); return 0; }\n\nlong long BBC_glBindAttribLocation(st program, st index, st name, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glBindAttribLocation(program, index, (const GLchar *) name); return 0; }\n\nlong long BBC_glBindBuffer(st target, st buffer, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glBindBuffer((GLenum) target, buffer); return 0; }\n\nlong long BBC_glBlendFunc(st sfactor, st dfactor, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glBlendFunc((GLenum) sfactor,(GLenum) dfactor); return 0; }\n\nlong long BBC_glBufferData(st target, st size, st data, st usage, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glBufferData((GLenum) target, size, (const void*) data, (GLenum) usage); return 0; }\n\nlong long BBC_glClear(st mask, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glClear((GLbitfield) mask); return 0; }\n\nlong long BBC_glClearColor(st i0, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{\n\t\tfloat r = *(float *)&i0 ; float g = *(float *)&i1 ;\n\t\tfloat b = *(float *)&i2 ; float a = *(float *)&i3 ;\n\t\tglClearColor((GLclampf) r, (GLclampf) g, (GLclampf) b, (GLclampf) a);\n\t\treturn 0;\n\t}\n\nlong long BBC_glClearDepthf(st depth, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glClearDepthf(*(float *)&depth); return 0; }\n\nlong long BBC_glCompileShader(st shader, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glCompileShader(shader); return 0; }\n\nlong long BBC_glCreateProgram(st i0, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return glCreateProgram(); }\n\nlong long BBC_glCreateShader(st type, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return glCreateShader((GLenum) type); }\n\nlong long BBC_glCullFace(st mode, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glCullFace((GLenum) mode); return 0; }\n\nlong long BBC_glDeleteBuffers(st num, st buffers, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glDeleteBuffers(num, (const GLuint*) buffers); return 0; }\n\nlong long BBC_glDeleteProgram(st program, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glDeleteProgram(program); return 0; }\n\nlong long BBC_glDeleteShader(st shader, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glDeleteShader(shader); return 0; }\n\nlong long BBC_glDeleteTextures(st ntex, st textures, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glDeleteTextures(ntex, (const GLuint*) textures); return 0; }\n\nlong long BBC_glDisable(st cap, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glDisable(cap); return 0; }\n\nlong long BBC_glDisableVertexAttribArray(st index, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glDisableVertexAttribArray(index); return 0; }\n\nlong long BBC_glDrawArrays(st mode, st first, st count, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glDrawArrays((GLenum) mode, first, count); return 0; }\n\nlong long BBC_glEnable(st cap, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glEnable(cap); return 0; }\n\nlong long BBC_glEnableVertexAttribArray(st index, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glEnableVertexAttribArray(index); return 0; }\n\nlong long BBC_glFinish(st i0, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glFinish(); return 0; }\n\nlong long BBC_glGenBuffers(st num, st buffers, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glGenBuffers(num, (GLuint*) buffers); return 0; }\n\nlong long BBC_glGetAttribLocation(st program, st name, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return glGetAttribLocation(program, (const GLchar*) name); }\n\nlong long BBC_glGetIntegerv(st pname, st data, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glGetIntegerv(pname, (GLint *) data); return 0; }\n\nlong long BBC_glGetProgramInfoLog(st program, st maxLength, st length, st infoLog, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glGetProgramInfoLog(program, maxLength, (GLsizei*) length, (GLchar*) infoLog); return 0; }\n\nlong long BBC_glGetProgramiv(st program, st pname, st params, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glGetProgramiv(program, (GLenum) pname, (GLint*) params); return 0; }\n\nlong long BBC_glGetShaderInfoLog(st shader, st maxLength, st length, st infoLog, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glGetShaderInfoLog(shader, maxLength, (GLsizei*) length, (GLchar*) infoLog); return 0; }\n\nlong long BBC_glGetShaderiv(st shader, st pname, st params, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glGetShaderiv(shader, (GLenum) pname, (GLint*) params); return 0; }\n\nlong long BBC_glGetUniformLocation(st program, st name, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return glGetUniformLocation(program, (const GLchar*) name); }\n\nlong long BBC_glIsBuffer(st buffer, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return glIsBuffer(buffer); }\n\nlong long BBC_glIsTexture(st texture, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return glIsTexture(texture); }\n\nlong long BBC_glLinkProgram(st program, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glLinkProgram(program); return 0; }\n\nlong long BBC_glReadPixels(st x, st y, st width, st height, st format, st type, st data, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glReadPixels(x, y, width, height, format, type, (void*) data); return 0; }\n\nlong long BBC_glShaderSource(st shader, st count, st string, st length, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glShaderSource(shader, count,\t(const GLchar**) string, (const GLint*) length); return 0; }\n\nlong long BBC_glUniform1fv(st location, st count, st value, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glUniform1fv(location, count,\t(const GLfloat*) value); return 0; }\n\nlong long BBC_glUniform2fv(st location, st count, st value, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glUniform2fv(location, count,\t(const GLfloat*) value); return 0; }\n\nlong long BBC_glUniform3fv(st location, st count, st value, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glUniform3fv(location, count,\t(const GLfloat*) value); return 0; }\n\nlong long BBC_glUniform4fv(st location, st count, st value, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glUniform4fv(location, count,\t(const GLfloat*) value); return 0; }\n\nlong long BBC_glUniformMatrix4fv(st location, st count, st transpose, st value, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glUniformMatrix4fv(location, count, transpose, (const GLfloat*) value); return 0; }\n\nlong long BBC_glUseProgram(st program, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glUseProgram(program); return 0; }\n\nlong long BBC_glVertexAttribPointer(st index, st size, st type, st normalized, st stride, st pointer, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glVertexAttribPointer(index, size, type, normalized, stride, (const void*) pointer); return 0; }\n\nlong long BBC_glViewport(st x, st y, st w, st h, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glViewport(x, y, w, h); return 0; }\n\nlong long BBC_glScissor(st x, st y, st w, st h, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glScissor(x, y, w, h); return 0; }\n\nlong long BBC_glActiveTexture(st texture, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glActiveTexture(texture); return 0; }\n\nlong long BBC_glBindTexture(st target, st texture, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glBindTexture(target, texture); return 0; }\n\nlong long BBC_glGenTextures(st ntex, st textures, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glGenTextures(ntex, (GLuint*) textures); return 0; }\n\nlong long BBC_glTexImage2D(st target, st level, st internalformat, st width, st height, st border, st format, st type,\n\t  st data, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glTexImage2D(target, level, internalformat, width, height, border, format, type, (const void*) data); return 0; }\n\nlong long BBC_glTexParameteri(st target, st pname, st param, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glTexParameteri(target, pname, param); return 0; }\n\nlong long BBC_glUniform1i(st location, st v0, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glUniform1i(location, v0); return 0; }\n\nlong long BBC_glBindFramebuffer(st target, st fbo, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glBindFramebuffer(target, fbo); return 0; }\n\nlong long BBC_glGenFramebuffers(st num, st framebuffers, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glGenFramebuffers(num, (GLuint*) framebuffers); return 0; }\n\nlong long BBC_glFramebufferTexture2D(st target, st attach, st textarget, st texture, st level, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glFramebufferTexture2D(target, attach, textarget, texture, level); return 0; }\n\nlong long BBC_glDeleteFramebuffers(st num, st framebuffers, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ glDeleteFramebuffers(num, (const GLuint*) framebuffers); return 0; }\n\n#define GLNSYS 54\n\nstatic const char *GLname[GLNSYS] = {\n\t\"glActiveTexture\",\n\t\"glAttachShader\",\n\t\"glBindAttribLocation\",\n\t\"glBindBuffer\",\n\t\"glBindFramebuffer\",\n\t\"glBindTexture\",\n\t\"glBlendFunc\",\n\t\"glBufferData\",\n\t\"glClear\",\n\t\"glClearColor\",\n\t\"glClearDepthf\",\n\t\"glCompileShader\",\n\t\"glCreateProgram\",\n\t\"glCreateShader\",\n\t\"glCullFace\",\n\t\"glDeleteBuffers\",\n\t\"glDeleteFramebuffers\",\n\t\"glDeleteProgram\",\n\t\"glDeleteShader\",\n\t\"glDeleteTextures\",\n\t\"glDisable\",\n\t\"glDisableVertexAttribArray\",\n\t\"glDrawArrays\",\n\t\"glEnable\",\n\t\"glEnableVertexAttribArray\",\n\t\"glFinish\",\n\t\"glFramebufferTexture2D\",\n\t\"glGenBuffers\",\n\t\"glGenFramebuffers\",\n\t\"glGenTextures\",\n\t\"glGetAttribLocation\",\n\t\"glGetIntegerv\",\n\t\"glGetProgramInfoLog\",\n\t\"glGetProgramiv\",\n\t\"glGetShaderInfoLog\",\n\t\"glGetShaderiv\",\n\t\"glGetUniformLocation\",\n\t\"glIsBuffer\",\n\t\"glIsTexture\",\n\t\"glLinkProgram\",\n\t\"glReadPixels\",\n\t\"glScissor\",\n\t\"glShaderSource\",\n\t\"glTexImage2D\",\n\t\"glTexParameteri\",\n\t\"glUniform1fv\",\n\t\"glUniform1i\",\n\t\"glUniform2fv\",\n\t\"glUniform3fv\",\n\t\"glUniform4fv\",\n\t\"glUniformMatrix4fv\",\n\t\"glUseProgram\",\n\t\"glVertexAttribPointer\",\n\t\"glViewport\"} ;\n\nstatic void *GLfunc[GLNSYS] = {\n\tBBC_glActiveTexture,\n\tBBC_glAttachShader,\n\tBBC_glBindAttribLocation,\n\tBBC_glBindBuffer,\n\tBBC_glBindFramebuffer,\n\tBBC_glBindTexture,\n\tBBC_glBlendFunc,\n\tBBC_glBufferData,\n\tBBC_glClear,\n\tBBC_glClearColor,\n\tBBC_glClearDepthf,\n\tBBC_glCompileShader,\n\tBBC_glCreateProgram,\n\tBBC_glCreateShader,\n\tBBC_glCullFace,\n\tBBC_glDeleteBuffers,\n\tBBC_glDeleteFramebuffers,\n\tBBC_glDeleteProgram,\n\tBBC_glDeleteShader,\n\tBBC_glDeleteTextures,\n\tBBC_glDisable,\n\tBBC_glDisableVertexAttribArray,\n\tBBC_glDrawArrays,\n\tBBC_glEnable,\n\tBBC_glEnableVertexAttribArray,\n\tBBC_glFinish,\n\tBBC_glFramebufferTexture2D,\n\tBBC_glGenBuffers,\n\tBBC_glGenFramebuffers,\n\tBBC_glGenTextures,\n\tBBC_glGetAttribLocation,\n\tBBC_glGetIntegerv,\n\tBBC_glGetProgramInfoLog,\n\tBBC_glGetProgramiv,\n\tBBC_glGetShaderInfoLog,\n\tBBC_glGetShaderiv,\n\tBBC_glGetUniformLocation,\n\tBBC_glIsBuffer,\n\tBBC_glIsTexture,\n\tBBC_glLinkProgram,\n\tBBC_glReadPixels,\n\tBBC_glScissor,\n\tBBC_glShaderSource,\n\tBBC_glTexImage2D,\n\tBBC_glTexParameteri,\n\tBBC_glUniform1fv,\n\tBBC_glUniform1i,\n\tBBC_glUniform2fv,\n\tBBC_glUniform3fv,\n\tBBC_glUniform4fv,\n\tBBC_glUniformMatrix4fv,\n\tBBC_glUseProgram,\n\tBBC_glVertexAttribPointer,\n\tBBC_glViewport} ;\n\nlong long BBC_GL_GetProcAddress(st symbol, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n{\n\tint h = GLNSYS, l = 0, m, r ;\n\tdo\n\t    {\n \t\tm = (l + h) / 2 ;\n\t\tr = strcmp ((const char*) symbol, GLname[m]) ;\n\t\tif (r == 0)\n\t\t\treturn (intptr_t) GLfunc[m] ; \n\t\tif (r > 0)\n\t\t\tl = m + 1 ;\n\t\telse\n\t\t\th = m ;\n\t    }\n\twhile (l < h) ;\n\treturn 0 ;\n}\n"
  },
  {
    "path": "src/bbasmb_x86_32.TODO.c",
    "content": ""
  },
  {
    "path": "src/bbasmb_x86_64.c",
    "content": "/*****************************************************************\\\n*       64-bit BBC BASIC Interpreter                              *\n*       Copyright (c) 2021 R.T.Russell http://www.rtrussell.co.uk *\n*                                                                 *\n*       bbasmb_x86_64.c: x86-64 assembler                         *\n*       Version 1.23a, 05-Jun-2021                                *\n\\*****************************************************************/\n\n#include <stdlib.h>\n#include <stdio.h>\n#include <unistd.h>\n#include <ctype.h>\n#include <string.h>\n#include <limits.h>\n#include \"BBC.h\"\n\n#ifndef __WINDOWS__\n#define stricmp strcasecmp\n#define strnicmp strncasecmp\n#endif\n\n#if defined(__x86_64__) || defined(__aarch64__)\n#define OC ((unsigned int) stavar[15] + (void *)((long long) stavar[13] << 32)) \n#define PC ((unsigned int) stavar[16] + (void *)((long long) stavar[17] << 32)) \n#else\n#define OC (void *) stavar[15]\n#define PC (void *) stavar[16]\n#endif\n\n// External routines:\nvoid newlin (void) ; \nvoid *getput (unsigned char *) ; \nvoid error (int, const char *) ; \nvoid token (signed char) ; \nvoid text (const char*) ; \nvoid crlf (void) ; \nvoid comma (void) ; \nvoid spaces (int) ; \nint range0 (char) ; \nsigned char nxt (void) ; \n\nlong long expri (void) ; \nVAR expr (void) ; \nVAR exprs (void) ; \nVAR loadn (void *, unsigned char) ; \nvoid storen (VAR, void *, unsigned char) ; \n\n// Routines in bbcmos.c:\nvoid *sysadr (char *) ; \nunsigned char osrdch (void) ; \nvoid oswrch (unsigned char) ; \nint oskey (int) ; \nvoid osline (char *) ; \nint osopen (int, char *) ; \nvoid osshut (int) ; \nunsigned char osbget (int, int *) ; \nvoid osbput (int, unsigned char) ; \nlong long getptr (int) ; \nvoid setptr (int, long long) ; \nlong long getext (int) ; \nvoid oscli (char *) ;\nint osbyte (int, int) ;\nvoid osword (int, void*) ;\n\n// instruction mnemonics (alphabetically ordered):\n// No privileged ops, no SSSE3, no SSE4, no AVX\n\n#define CMPPD 0x3C\n#define CMPPS 0x3D\n#define CMPSD 0x3F\n#define CMPSS 0x41\n#define CMPXCHG16B 0x44\n#define FPLO 0x72\n#define FILD 0x93\n#define FISTP 0x98\n#define FLD 0x9C\n#define FSTP 0xBD\n#define FPHI 0xCB // <= FXCH\n#define LOCK 0xFF\n#define OPT 0x141\n#define REPLO 0x196\n#define REPHI 0x19A\n#define XCHG 0x1ED\n\nstatic char *mnemonics[] = {\n\t\"ADC\",\"ADD\",\"ADDPD\",\"ADDPS\",\"ADDSD\",\"ADDSS\",\"ADDSUBPD\",\"ADDSUBPS\",\n\t\"AND\",\"ANDNPD\",\"ANDNPS\",\"ANDPD\",\"ANDPS\",\"BSF\",\"BSR\",\"BSWAP\",\n\t\"BT\",\"BTC\",\"BTR\",\"BTS\",\"CALL\",\"CBW\",\"CDQ\",\"CDQE\",\n\t\"CLC\",\"CLD\",\"CLFLUSH\",\"CLI\",\"CMC\",\"CMOVA\",\"CMOVAE\",\"CMOVB\",\n\t\"CMOVBE\",\"CMOVC\",\"CMOVE\",\"CMOVG\",\"CMOVGE\",\"CMOVL\",\"CMOVLE\",\"CMOVNA\",\n\t\"CMOVNAE\",\"CMOVNB\",\"CMOVNBE\",\"CMOVNC\",\"CMOVNE\",\"CMOVNG\",\"CMOVNGE\",\"CMOVNL\",\n\t\"CMOVNLE\",\"CMOVNO\",\"CMOVNP\",\"CMOVNS\",\"CMOVNZ\",\"CMOVO\",\"CMOVP\",\"CMOVPE\",\n\t\"CMOVPO\",\"CMOVS\",\"CMOVZ\",\"CMP\",\"CMPPD\",\"CMPPS\",\"CMPSB\",\"CMPSD\",\n// 040\n\t\"CMPSQ\",\"CMPSS\",\"CMPSW\",\"CMPXCHG\",\"CMPXCHG16B\",\"CMPXCHG8B\",\"COMISD\",\"COMISS\",\n\t\"CPUID\",\"CQO\",\"CVTDQ2PD\",\"CVTDQ2PS\",\"CVTPD2DQ\",\"CVTPD2PI\",\"CVTPD2PS\",\"CVTPI2PD\",\n\t\"CVTPI2PS\",\"CVTPS2DQ\",\"CVTPS2PD\",\"CVTPS2PI\",\"CVTSD2SI\",\"CVTSD2SS\",\"CVTSI2SD\",\"CVTSI2SS\",\n\t\"CVTSS2SD\",\"CVTSS2SI\",\"CVTTPD2DQ\",\"CVTTPD2PI\",\"CVTTPS2DQ\",\"CVTTPS2PI\",\"CVTTSD2SI\",\"CVTTSS2SI\",\n\t\"CWD\",\"CWDE\",\"DB\",\"DD\",\"DEC\",\"DIV\",\"DIVPD\",\"DIVPS\",\n\t\"DIVSD\",\"DIVSS\",\"DQ\",\"DW\",\"EMMS\",\"ENTER\",\"EQUB\",\"EQUD\",\n\t\"EQUQ\",\"EQUW\",\"F2XM1\",\"FABS\",\"FADD\",\"FADDP\",\"FBLD\",\"FBSTP\",\n\t\"FCHS\",\"FCLEX\",\"FCMOVB\",\"FCMOVBE\",\"FCMOVE\",\"FCMOVNB\",\"FCMOVNBE\",\"FCMOVNE\",\n// 080\n\t\"FCMOVNU\",\"FCMOVU\",\"FCOM\",\"FCOMI\",\"FCOMIP\",\"FCOMP\",\"FCOMPP\",\"FCOS\",\n\t\"FDECSTP\",\"FDIV\",\"FDIVP\",\"FDIVR\",\"FDIVRP\",\"FFREE\",\"FIADD\",\"FICOM\",\n\t\"FICOMP\",\"FIDIV\",\"FIDIVR\",\"FILD\",\"FIMUL\",\"FINCSTP\",\"FINIT\",\"FIST\",\n\t\"FISTP\",\"FISTTP\",\"FISUB\",\"FISUBR\",\"FLD\",\"FLD1\",\"FLDCW\",\"FLDENV\",\n\t\"FLDL2E\",\"FLDL2T\",\"FLDLG2\",\"FLDLN2\",\"FLDPI\",\"FLDZ\",\"FMUL\",\"FMULP\",\n\t\"FNCLEX\",\"FNINIT\",\"FNOP\",\"FNSAVE\",\"FNSTCW\",\"FNSTENV\",\"FNSTSW\",\"FPATAN\",\n\t\"FPREM\",\"FPREM1\",\"FPTAN\",\"FRNDINT\",\"FRSTOR\",\"FSAVE\",\"FSCALE\",\"FSIN\",\n\t\"FSINCOS\",\"FSQRT\",\"FST\",\"FSTCW\",\"FSTENV\",\"FSTP\",\"FSTSW\",\"FSUB\",\n// 0C0\n\t\"FSUBP\",\"FSUBR\",\"FSUBRP\",\"FTST\",\"FUCOM\",\"FUCOMI\",\"FUCOMIP\",\"FUCOMP\",\n\t\"FUCOMPP\",\"FWAIT\",\"FXAM\",\"FXCH\",\"FXRSTOR\",\"FXSAVE\",\"FXTRACT\",\"FYL2X\",\n\t\"FYL2XP1\",\"HADDPD\",\"HADDPS\",\"HSUBPD\",\"HSUBPS\",\"IDIV\",\"IMUL\",\"INC\",\n\t\"JA\",\"JAE\",\"JB\",\"JBE\",\"JC\",\"JE\",\"JECXZ\",\"JG\",\n\t\"JGE\",\"JL\",\"JLE\",\"JMP\",\"JNA\",\"JNAE\",\"JNB\",\"JNBE\",\n\t\"JNC\",\"JNE\",\"JNG\",\"JNGE\",\"JNL\",\"JNLE\",\"JNO\",\"JNP\",\n\t\"JNS\",\"JNZ\",\"JO\",\"JP\",\"JPE\",\"JPO\",\"JRCXZ\",\"JS\",\n\t\"JZ\",\"LAHF\",\"LDDQU\",\"LDMXCSR\",\"LEA\",\"LEAVE\",\"LFENCE\",\"LOCK\",\n// 100\n\t\"LODSB\",\"LODSD\",\"LODSQ\",\"LODSW\",\"LOOP\",\"LOOPE\",\"LOOPNE\",\"LOOPNZ\",\n\t\"LOOPZ\",\"LSL\",\"MASKMOVDQU\",\"MASKMOVQ\",\"MAXPD\",\"MAXPS\",\"MAXSD\",\"MAXSS\",\n\t\"MFENCE\",\"MINPD\",\"MINPS\",\"MINSD\",\"MINSS\",\"MOV\",\"MOVAPD\",\"MOVAPS\",\n\t\"MOVBE\",\"MOVD\",\"MOVDDUP\",\"MOVDQ2Q\",\"MOVDQA\",\"MOVDQU\",\"MOVHLPS\",\"MOVHPD\",\n\t\"MOVHPS\",\"MOVLHPS\",\"MOVLPD\",\"MOVLPS\",\"MOVMSKPD\",\"MOVMSKPS\",\"MOVNTDQ\",\"MOVNTI\",\n\t\"MOVNTPD\",\"MOVNTPS\",\"MOVNTQ\",\"MOVQ\",\"MOVQ2DQ\",\"MOVSB\",\"MOVSD\",\"MOVSHDUP\",\n\t\"MOVSLDUP\",\"MOVSQ\",\"MOVSS\",\"MOVSW\",\"MOVSX\",\"MOVSXD\",\"MOVUPD\",\"MOVUPS\",\n\t\"MOVZX\",\"MUL\",\"MULPD\",\"MULPS\",\"MULSD\",\"MULSS\",\"NEG\",\"NOP\",\n// 140\n\t\"NOT\",\"OPT\",\"OR\",\"ORPD\",\"ORPS\",\"PACKSSDW\",\"PACKSSWB\",\"PACKUSWB\",\n\t\"PADDB\",\"PADDD\",\"PADDQ\",\"PADDSB\",\"PADDSW\",\"PADDUSB\",\"PADDUSW\",\"PADDW\",\n\t\"PAND\",\"PANDN\",\"PAUSE\",\"PAVGB\",\"PAVGW\",\"PCMPEQB\",\"PCMPEQD\",\"PCMPEQW\",\n\t\"PCMPGTB\",\"PCMPGTD\",\"PCMPGTW\",\"PEXTRW\",\"PINSRW\",\"PMADDWD\",\"PMAXSW\",\"PMAXUB\",\n\t\"PMINSW\",\"PMINUB\",\"PMOVMSKB\",\"PMULHUW\",\"PMULHW\",\"PMULLW\",\"PMULUDQ\",\"POP\",\n\t\"POPCNT\",\"POPF\",\"POPFQ\",\"POR\",\"PSADBW\",\"PSHUFD\",\"PSHUFHW\",\"PSHUFLW\",\n\t\"PSHUFW\",\"PSLLD\",\"PSLLDQ\",\"PSLLQ\",\"PSLLW\",\"PSRAD\",\"PSRAW\",\"PSRLD\",\n\t\"PSRLDQ\",\"PSRLQ\",\"PSRLW\",\"PSUBB\",\"PSUBD\",\"PSUBQ\",\"PSUBSB\",\"PSUBSW\",\n// 180\n\t\"PSUBUSB\",\"PSUBUSW\",\"PSUBW\",\"PUNPCKHBW\",\"PUNPCKHDQ\",\"PUNPCKHQDQ\",\"PUNPCKHWD\",\"PUNPCKLBW\",\n\t\"PUNPCKLDQ\",\"PUNPCKLQDQ\",\"PUNPCKLWD\",\"PUSH\",\"PUSHF\",\"PUSHFQ\",\"PXOR\",\"RCL\",\n\t\"RCPPS\",\"RCPSS\",\"RCR\",\"RDPMC\",\"RDTSC\",\"RDTSCP\",\"REP\",\"REPE\",\n\t\"REPNE\",\"REPNZ\",\"REPZ\",\"RET\",\"RETF\",\"RETN\",\"ROL\",\"ROR\",\n\t\"RSQRTPS\",\"RSQRTSS\",\"SAHF\",\"SAL\",\"SAR\",\"SBB\",\"SCASB\",\"SCASD\",\n\t\"SCASQ\",\"SCASW\",\"SETA\",\"SETAE\",\"SETB\",\"SETBE\",\"SETC\",\"SETE\",\n\t\"SETG\",\"SETGE\",\"SETL\",\"SETLE\",\"SETNA\",\"SETNAE\",\"SETNB\",\"SETNBE\",\n\t\"SETNC\",\"SETNE\",\"SETNG\",\"SETNGE\",\"SETNL\",\"SETNLE\",\"SETNO\",\"SETNP\",\n// 1C0\n\t\"SETNS\",\"SETNZ\",\"SETO\",\"SETP\",\"SETPE\",\"SETPO\",\"SETS\",\"SETZ\",\n\t\"SFENCE\",\"SGDT\",\"SHL\",\"SHLD\",\"SHR\",\"SHRD\",\"SHUFPD\",\"SHUFPS\",\n\t\"SMSW\",\"SQRTPD\",\"SQRTPS\",\"SQRTSD\",\"SQRTSS\",\"STC\",\"STD\",\"STI\",\n\t\"STMXCSR\",\"STOSB\",\"STOSD\",\"STOSQ\",\"STOSW\",\"SUB\",\"SUBPD\",\"SUBPS\",\n\t\"SUBSD\",\"SUBSS\",\"TEST\",\"UCOMISD\",\"UCOMISS\",\"UNPCKHPD\",\"UNPCKHPS\",\"UNPCKLPD\",\n\t\"UNPCKLPS\",\"VERR\",\"VERW\",\"WAIT\",\"XADD\",\"XCHG\",\"XLATB\",\"XOR\",\n\t\"XORPD\",\"XORPS\",\"XRSTOR\",\"XSAVE\" } ;\n\nstatic char *specials[] = {\n\t\"CMPEQPD\",\"CMPLTPD\",\"CMPLEPD\",\"CMPUNORDPD\",\"CMPNEQPD\",\"CMPNLTPD\",\"CMPNLEPD\",\"CMPORDPD\",\n\t\"CMPEQPS\",\"CMPLTPS\",\"CMPLEPS\",\"CMPUNORDPS\",\"CMPNEQPS\",\"CMPNLTPS\",\"CMPNLEPS\",\"CMPORDPS\",\n\t\"CMPEQSD\",\"CMPLTSD\",\"CMPLESD\",\"CMPUNORDSD\",\"CMPNEQSD\",\"CMPNLTSD\",\"CMPNLESD\",\"CMPORDSD\",\n\t\"CMPEQSS\",\"CMPLTSS\",\"CMPLESS\",\"CMPUNORDSS\",\"CMPNEQSS\",\"CMPNLTSS\",\"CMPNLESS\",\"CMPORDSS\" } ;\n\nstatic int special[4] = {CMPPD, CMPPS, CMPSD, CMPSS} ;\n\t\t\n// operands:\n// Note that 16-bit and 32-bit indirect operands are omitted because they\n// cannot address memory in a 64-bit flat addressing space such as BBCSDL's\n// 0x7C = [mem], 0x7D = [rip{+disp}], 0x7E = immediate, 0x7F = no operand\nstatic char *operands[] = {\n\t\"AL\",\"CL\",\"DL\",\"BL\",\"AH\",\"CH\",\"DH\",\"BH\", \t\t// 0x : 8-bit registers\n\t\"R8B\",\"R9B\",\"R10B\",\"R11B\",\"R12B\",\"R13B\",\"R14B\",\"R15B\",\n\t\"AX\",\"CX\",\"DX\",\"BX\",\"SP\",\"BP\",\"SI\",\"DI\",\t\t// 1x : 16-bit registers\n\t\"R8W\",\"R9W\",\"R10W\",\"R11W\",\"R12W\",\"R13W\",\"R14W\",\"R15W\",\n\t\"RAX\",\"RCX\",\"RDX\",\"RBX\",\"RSP\",\"RBP\",\"RSI\",\"RDI\",\t// 2x : 64-bit registers\n\t\"R8\",\"R9\",\"R10\",\"R11\",\"R12\",\"R13\",\"R14\",\"R15\",\n\t\"EAX\",\"ECX\",\"EDX\",\"EBX\",\"ESP\",\"EBP\",\"ESI\",\"EDI\",\t// 3x : 32-bit registers\n\t\"R8D\",\"R9D\",\"R10D\",\"R11D\",\"R12D\",\"R13D\",\"R14D\",\"R15D\",\n\t\"[RAX\",\"[RCX\",\"[RDX\",\"[RBX\",\"[RSP\",\"[RBP\",\"[RSI\",\"[RDI\",// 4x : 64-bit register indirect\n\t\"[R8\",\"[R9\",\"[R10\",\"[R11\",\"[R12\",\"[R13\",\"[R14\",\"[R15\",\n\t\"XMM0\",\"XMM1\",\"XMM2\",\"XMM3\",\"XMM4\",\"XMM5\",\"XMM6\",\"XMM7\",// 5x : XMM registers (128 bit)\n\t\"XMM8\",\"XMM9\",\"XMM10\",\"XMM11\",\"XMM12\",\"XMM13\",\"XMM14\",\"XMM15\",\n\t\"ST0\",\"ST1\",\"ST2\",\"ST3\",\"ST4\",\"ST5\",\"ST6\",\"ST7\",\t// 6x : floating-point stack...\n\t\"MM0\",\"MM1\",\"MM2\",\"MM3\",\"MM4\",\"MM5\",\"MM6\",\"MM7\",\t//      ..shared with MMX regs \n\t\"ES\",\"CS\",\"SS\",\"DS\",\"FS\",\"GS\",\"\",\"\",\t\t\t// 7x : segment regs and extras\n\t\"SPL\",\"BPL\",\"SIL\",\"DIL\",\"[REL\",\"[RIP\",\"\",\"\",\n\t\"BYTE\",\"WORD\",\"DWORD\",\"QWORD\",\"TBYTE\",\"SHORT\",\"NEAR\" } ;// 8x : overrides (internal)\n\n// List of instructions:\nstatic unsigned char instructions[] = {\n\t0x00,0x15,0xC4,0xFD,0x30,0x00, // adc rax,imm\n\t0x00,0x11,0x34,0x7E,0x3F,0x00, // adc reg,reg\n\t0x00,0x13,0x14,0x9E,0x3F,0x00, // adc reg,[r/m]\n\t0x10,0x81,0xFC,0xFD,0x3F,0x00, // adc reg,imm\n\t0x00,0x11,0x34,0x7E,0x4F,0x00, // adc [r/m],reg\n\t0x10,0x81,0xFC,0xFD,0x4F,0x00, // adc [r/m],imm\n\t0x00,0x05,0xC4,0xFD,0xB0,0x00, // add rax,imm\n\t0x00,0x01,0x34,0x7E,0xBF,0x00, // add reg,reg\n\t0x00,0x03,0x14,0x9E,0xBF,0x00, // add reg,[r/m]\n\t0x00,0x81,0xFC,0xFD,0xBF,0x00, // add reg,imm\n\t0x00,0x01,0x34,0x7E,0xCF,0x00, // add [r/m],reg\n\t0x00,0x81,0xFC,0xFD,0xCF,0x00, // add [r/m],imm\n\t0x00,0x58,0x13,0x9E,0x5F,0x01, // addpd xmm,[r/m]\n\t0x00,0x58,0x13,0xBE,0x5F,0x01, // addpd xmm,xmm\n\t0x00,0x58,0x12,0x9E,0xDF,0x01, // addps xmm,[r/m]\n\t0x00,0x58,0x12,0xBE,0xDF,0x01, // addps xmm,xmm\n\t0xF2,0x58,0x13,0x9E,0x5F,0x02, // addsd xmm,[r/m]\n\t0xF2,0x58,0x13,0xBE,0x5F,0x02, // addsd xmm,xmm\n\t0xF3,0x58,0x13,0x9E,0xDF,0x02, // addss xmm,[r/m]\n\t0xF3,0x58,0x13,0xBE,0xDF,0x02, // addss xmm,xmm\n\t0x00,0xD0,0x13,0x9E,0x5F,0x03, // addsubpd xmm,[r/m]\n\t0x00,0xD0,0x13,0xBE,0x5F,0x03, // addsubpd xmm,xmm\n\t0xF2,0xD0,0x13,0x9E,0xDF,0x03, // addsubps xmm,[r/m]\n\t0xF2,0xD0,0x13,0xBE,0xDF,0x03, // addsubps xmm,xmm\n\t0x00,0x25,0xC4,0xFD,0x30,0x04, // and rax,imm\n\t0x00,0x21,0x34,0x7E,0x3F,0x04, // and reg,reg\n\t0x00,0x23,0x14,0x9E,0x3F,0x04, // and reg,[r/m]\n\t0x20,0x81,0xFC,0xFD,0x3F,0x04, // and reg,imm\n\t0x00,0x21,0x34,0x7E,0x4F,0x04, // and [r/m],reg\n\t0x20,0x81,0xFC,0xFD,0x4F,0x04, // and [r/m],imm\n\t0x00,0x55,0x13,0x9E,0xDF,0x04, // andnpd xmm,[r/m]\n\t0x00,0x55,0x13,0xBE,0xDF,0x04, // andnpd xmm,xmm\n\t0x00,0x55,0x12,0x9E,0x5F,0x05, // andnps xmm,[r/m]\n\t0x00,0x55,0x12,0xBE,0x5F,0x05, // andnps xmm,xmm\n\t0x00,0x54,0x13,0x9E,0xDF,0x05, // andpd xmm,[r/m]\n\t0x00,0x54,0x13,0xBE,0xDF,0x05, // andpd xmm,xmm\n\t0x00,0x54,0x12,0x9E,0x5F,0x06, // andps xmm,[r/m]\n\t0x00,0x54,0x12,0xBE,0x5F,0x06, // andps xmm,xmm\n\t0x00,0xBC,0x12,0x7E,0xBF,0x06, // bsf reg,reg\n\t0x00,0xBC,0x12,0x9E,0xBF,0x06, // bsf reg,[r/m]\n\t0x00,0xBD,0x12,0x7E,0x3F,0x07, // bsr reg,reg\n\t0x00,0xBD,0x12,0x9E,0x3F,0x07, // bsr reg,[r/m]\n\t0x00,0xC8,0x22,0xFE,0xBF,0x07, // bswap reg\n\t0x00,0xA3,0x32,0x7E,0x3F,0x08, // bt reg,reg\n\t0x20,0xBA,0xB2,0xFD,0x3F,0x08, // bt reg,imm\n\t0x00,0xA3,0x32,0x7E,0x4F,0x08, // bt [r/m],reg\n\t0x20,0xBA,0xB2,0xFD,0x4F,0x08, // bt [r/m],imm\n\t0x00,0xBB,0x32,0x7E,0xBF,0x08, // btc reg,reg\n\t0x38,0xBA,0xB2,0xFD,0xBF,0x08, // btc reg,imm\n\t0x00,0xBB,0x32,0x7E,0xCF,0x08, // btc [r/m],reg\n\t0x38,0xBA,0xB2,0xFD,0xCF,0x08, // btc [r/m],imm\n\t0x00,0xB3,0x32,0x7E,0x3F,0x09, // btr reg,reg\n\t0x30,0xBA,0xB2,0xFD,0x3F,0x09, // btr reg,imm\n\t0x00,0xB3,0x32,0x7E,0x4F,0x09, // btr [r/m],reg\n\t0x30,0xBA,0xB2,0xFD,0x4F,0x09, // btr [r/m],imm\n\t0x00,0xAB,0x32,0x7E,0xBF,0x09, // bts reg,reg\n\t0x28,0xBA,0xB2,0xFD,0xBF,0x09, // bts reg,imm\n\t0x00,0xAB,0x32,0x7E,0xCF,0x09, // bts [r/m],reg\n\t0x28,0xBA,0xB2,0xFD,0xCF,0x09, // bts [r/m],imm\n\t0x10,0xFF,0x30,0xFE,0x2F,0x0A, // call reg64\n\t0x10,0xFF,0x30,0xFE,0x4F,0x0A, // call [r/m]\n\t0x00,0xE8,0x40,0xFF,0x7E,0x0A, // call imm\n\t0x00,0x98,0x01,0xFE,0xFF,0x0A, // cbw\n\t0x00,0x99,0x00,0xFE,0x7F,0x0B, // cdq\n\t0x48,0x98,0x01,0xFE,0xFF,0x0B, // cdqe\n\t0x00,0xF8,0x00,0xFE,0x7F,0x0C, // clc\n\t0x00,0xFC,0x00,0xFE,0xFF,0x0C, // cld\n\t0x38,0xAE,0x32,0xFE,0x4F,0x0D, // clflush [r/m]\n\t0x00,0xFA,0x00,0xFE,0xFF,0x0D, // cli\n\t0x00,0xF5,0x00,0xFE,0x7F,0x0E, // cmc\n\t0x00,0x47,0x12,0x7E,0xBF,0x0E, // cmova reg,reg\n\t0x00,0x47,0x12,0x9E,0xBF,0x0E, // cmova reg,[r/m]\n\t0x00,0x43,0x12,0x7E,0x3F,0x0F, // cmovae reg,reg\n\t0x00,0x43,0x12,0x9E,0x3F,0x0F, // cmovae reg,[r/m]\n\t0x00,0x42,0x12,0x7E,0xBF,0x0F, // cmovb reg,reg\n\t0x00,0x42,0x12,0x9E,0xBF,0x0F, // cmovb reg,[r/m]\n\t0x00,0x46,0x12,0x7E,0x3F,0x10, // cmovbe reg,reg\n\t0x00,0x46,0x12,0x9E,0x3F,0x10, // cmovbe reg,[r/m]\n\t0x00,0x42,0x12,0x7E,0xBF,0x10, // cmovc reg,reg\n\t0x00,0x42,0x12,0x9E,0xBF,0x10, // cmovc reg,[r/m]\n\t0x00,0x44,0x12,0x7E,0x3F,0x11, // cmove reg,reg\n\t0x00,0x44,0x12,0x9E,0x3F,0x11, // cmove reg,[r/m]\n\t0x00,0x4F,0x12,0x7E,0xBF,0x11, // cmovg reg,reg\n\t0x00,0x4F,0x12,0x9E,0xBF,0x11, // cmovg reg,[r/m]\n\t0x00,0x4D,0x12,0x7E,0x3F,0x12, // cmovge reg,reg\n\t0x00,0x4D,0x12,0x9E,0x3F,0x12, // cmovge reg,[r/m]\n\t0x00,0x4C,0x12,0x7E,0xBF,0x12, // cmovl reg,reg\n\t0x00,0x4C,0x12,0x9E,0xBF,0x12, // cmovl reg,[r/m]\n\t0x00,0x4E,0x12,0x7E,0x3F,0x13, // cmovle reg,reg\n\t0x00,0x4E,0x12,0x9E,0x3F,0x13, // cmovle reg,[r/m]\n\t0x00,0x46,0x12,0x7E,0xBF,0x13, // cmovna reg,reg\n\t0x00,0x46,0x12,0x9E,0xBF,0x13, // cmovna reg,[r/m]\n\t0x00,0x42,0x12,0x7E,0x3F,0x14, // cmovnae reg,reg\n\t0x00,0x42,0x12,0x9E,0x3F,0x14, // cmovnae reg,[r/m]\n\t0x00,0x43,0x12,0x7E,0xBF,0x14, // cmovnb reg,reg\n\t0x00,0x43,0x12,0x9E,0xBF,0x14, // cmovnb reg,[r/m]\n\t0x00,0x47,0x12,0x7E,0x3F,0x15, // cmovnbe reg,reg\n\t0x00,0x47,0x12,0x9E,0x3F,0x15, // cmovnbe reg,[r/m]\n\t0x00,0x43,0x12,0x7E,0xBF,0x15, // cmovnc reg,reg\n\t0x00,0x43,0x12,0x9E,0xBF,0x15, // cmovnc reg,[r/m]\n\t0x00,0x45,0x12,0x7E,0x3F,0x16, // cmovne reg,reg\n\t0x00,0x45,0x12,0x9E,0x3F,0x16, // cmovne reg,[r/m]\n\t0x00,0x4E,0x12,0x7E,0xBF,0x16, // cmovng reg,reg\n\t0x00,0x4E,0x12,0x9E,0xBF,0x16, // cmovng reg,[r/m]\n\t0x00,0x4C,0x12,0x7E,0x3F,0x17, // cmovnge reg,reg\n\t0x00,0x4C,0x12,0x9E,0x3F,0x17, // cmovnge reg,[r/m]\n\t0x00,0x4D,0x12,0x7E,0xBF,0x17, // cmovnl reg,reg\n\t0x00,0x4D,0x12,0x9E,0xBF,0x17, // cmovnl reg,[r/m]\n\t0x00,0x4F,0x12,0x7E,0x3F,0x18, // cmovnle reg,reg\n\t0x00,0x4F,0x12,0x9E,0x3F,0x18, // cmovnle reg,[r/m]\n\t0x00,0x41,0x12,0x7E,0xBF,0x18, // cmovno reg,reg\n\t0x00,0x41,0x12,0x9E,0xBF,0x18, // cmovno reg,[r/m]\n\t0x00,0x4B,0x12,0x7E,0x3F,0x19, // cmovnp reg,reg\n\t0x00,0x4B,0x12,0x9E,0x3F,0x19, // cmovnp reg,[r/m]\n\t0x00,0x49,0x12,0x7E,0xBF,0x19, // cmovns reg,reg\n\t0x00,0x49,0x12,0x9E,0xBF,0x19, // cmovns reg,[r/m]\n\t0x00,0x45,0x12,0x7E,0x3F,0x1A, // cmovnz reg,reg\n\t0x00,0x45,0x12,0x9E,0x3F,0x1A, // cmovnz reg,[r/m]\n\t0x00,0x40,0x12,0x7E,0xBF,0x1A, // cmovo reg,reg\n\t0x00,0x40,0x12,0x9E,0xBF,0x1A, // cmovo reg,[r/m]\n\t0x00,0x4A,0x12,0x7E,0x3F,0x1B, // cmovp reg,reg\n\t0x00,0x4A,0x12,0x9E,0x3F,0x1B, // cmovp reg,[r/m]\n\t0x00,0x4A,0x12,0x7E,0xBF,0x1B, // cmovpe reg,reg\n\t0x00,0x4A,0x12,0x9E,0xBF,0x1B, // cmovpe reg,[r/m]\n\t0x00,0x4B,0x12,0x7E,0x3F,0x1C, // cmovpo reg,reg\n\t0x00,0x4B,0x12,0x9E,0x3F,0x1C, // cmovpo reg,[r/m]\n\t0x00,0x48,0x12,0x7E,0xBF,0x1C, // cmovs reg,reg\n\t0x00,0x48,0x12,0x9E,0xBF,0x1C, // cmovs reg,[r/m]\n\t0x00,0x44,0x12,0x7E,0x3F,0x1D, // cmovz reg,reg\n\t0x00,0x44,0x12,0x9E,0x3F,0x1D, // cmovz reg,[r/m]\n\t0x00,0x3D,0xC4,0xFD,0xB0,0x1D, // cmp rax,imm\n\t0x00,0x39,0x34,0x7E,0xBF,0x1D, // cmp reg,reg\n\t0x00,0x3B,0x14,0x9E,0xBF,0x1D, // cmp reg,[r/m]\n\t0x38,0x81,0xFC,0xFD,0xBF,0x1D, // cmp reg,imm\n\t0x00,0x39,0x34,0x7E,0xCF,0x1D, // cmp [r/m],reg\n\t0x38,0x81,0xFC,0xFD,0xCF,0x1D, // cmp [r/m],imm\n\t0x00,0xC2,0x93,0x9F,0x5F,0x1E, // cmppd xmm,[r/m],imm\n\t0x00,0xC2,0x93,0xBF,0x5F,0x1E, // cmppd xmm,xmm,imm\n\t0x00,0xC2,0x92,0x9F,0xDF,0x1E, // cmpps xmm,[r/m],imm\n\t0x00,0xC2,0x92,0xBF,0xDF,0x1E, // cmpps xmm,xmm,imm\n\t0x00,0xA6,0x04,0xFE,0x7F,0x1F, // cmpsb\n\t0xF2,0xC2,0x93,0x9F,0xDF,0x1F, // cmpsd xmm,[r/m],imm\n\t0xF2,0xC2,0x93,0xBF,0xDF,0x1F, // cmpsd xmm,xmm,imm\n\t0x00,0xA7,0x00,0xFE,0xFF,0x1F, // cmpsd\n\t0x48,0xA7,0x01,0xFE,0x7F,0x20, // cmpsq\n\t0xF3,0xC2,0x93,0x9F,0xDF,0x20, // cmpss xmm,[r/m],imm\n\t0xF3,0xC2,0x93,0xBF,0xDF,0x20, // cmpss xmm,xmm,imm\n\t0x00,0xA7,0x01,0xFE,0x7F,0x21, // cmpsw\n\t0x00,0xB1,0x36,0x7E,0xBF,0x21, // cmpxchg reg,reg\n\t0x00,0xB1,0x36,0x7E,0xCF,0x21, // cmpxchg [r/m],reg\n\t0x08,0xC7,0x32,0xFE,0x4F,0x22, // cmpxchg16b [r/m]\n\t0x08,0xC7,0x32,0xFE,0xCF,0x22, // cmpxchg8b [r/m]\n\t0x00,0x2F,0x13,0x9E,0x5F,0x23, // comisd xmm,[r/m]\n\t0x00,0x2F,0x13,0xBE,0x5F,0x23, // comisd xmm,xmm\n\t0x00,0x2F,0x12,0x9E,0xDF,0x23, // comiss xmm,[r/m]\n\t0x00,0x2F,0x12,0xBE,0xDF,0x23, // comiss xmm,xmm\n\t0x00,0xA2,0x02,0xFE,0x7F,0x24, // cpuid\n\t0x48,0x99,0x01,0xFE,0xFF,0x24, // cqo\n\t0xF3,0xE6,0x13,0x9E,0x5F,0x25, // cvtdq2pd xmm,[r/m]\n\t0xF3,0xE6,0x13,0xBE,0x5F,0x25, // cvtdq2pd xmm,xmm\n\t0x00,0x5B,0x12,0x9E,0xDF,0x25, // cvtdq2ps xmm,[r/m]\n\t0x00,0x5B,0x12,0xBE,0xDF,0x25, // cvtdq2ps xmm,xmm\n\t0xF2,0xE6,0x13,0x9E,0x5F,0x26, // cvtpd2dq xmm,[r/m]\n\t0xF2,0xE6,0x13,0xBE,0x5F,0x26, // cvtpd2dq xmm,xmm\n\t0x00,0x2D,0x13,0x9E,0xEF,0x26, // cvtpd2pi mmx,[r/m]\n\t0x00,0x2D,0x13,0xBE,0xEF,0x26, // cvtpd2pi mmx,xmm\n\t0x00,0x5A,0x13,0x9E,0x5F,0x27, // cvtpd2ps xmm,[r/m]\n\t0x00,0x5A,0x13,0xBE,0x5F,0x27, // cvtpd2ps xmm,xmm\n\t0x00,0x2A,0x13,0x9E,0xDF,0x27, // cvtpi2pd xmm,[r/m]\n\t0x00,0x2A,0x13,0xDE,0xDF,0x27, // cvtpi2pd xmm,mmx\n\t0x00,0x2A,0x12,0x9E,0x5F,0x28, // cvtpi2ps xmm,[r/m]\n\t0x00,0x2A,0x12,0xDE,0x5F,0x28, // cvtpi2ps xmm,mmx\n\t0x00,0x5B,0x13,0x9E,0xDF,0x28, // cvtps2dq xmm,[r/m]\n\t0x00,0x5B,0x13,0xBE,0xDF,0x28, // cvtps2dq xmm,xmm\n\t0x00,0x5A,0x12,0x9E,0x5F,0x29, // cvtps2pd xmm,[r/m]\n\t0x00,0x5A,0x12,0xBE,0x5F,0x29, // cvtps2pd xmm,xmm\n\t0x00,0x2D,0x12,0x9E,0xEF,0x29, // cvtps2pi mmx,[r/m]\n\t0x00,0x2D,0x12,0xBE,0xEF,0x29, // cvtps2pi mmx,xmm\n\t0xF2,0x2D,0x13,0x9E,0x3F,0x2A, // cvtsd2si reg,[r/m]\n\t0xF2,0x2D,0x13,0xBE,0x3F,0x2A, // cvtsd2si reg,xmm\n\t0xF2,0x5A,0x13,0x9E,0xDF,0x2A, // cvtsd2ss xmm,[r/m]\n\t0xF2,0x5A,0x13,0xBE,0xDF,0x2A, // cvtsd2ss xmm,xmm\n\t0xF2,0x2A,0x13,0x7E,0x5F,0x2B, // cvtsi2sd xmm,reg\n\t0xF2,0x2A,0x13,0x9E,0x5F,0x2B, // cvtsi2sd xmm,[r/m]\n\t0xF3,0x2A,0x13,0x7E,0xDF,0x2B, // cvtsi2ss xmm,reg\n\t0xF3,0x2A,0x13,0x9E,0xDF,0x2B, // cvtsi2ss xmm,[r/m]\n\t0xF3,0x5A,0x13,0x9E,0x5F,0x2C, // cvtss2sd xmm,[r/m]\n\t0xF3,0x5A,0x13,0xBE,0x5F,0x2C, // cvtss2sd xmm,xmm\n\t0xF3,0x2D,0x13,0x9E,0xBF,0x2C, // cvtss2si reg,[r/m]\n\t0xF3,0x2D,0x13,0xBE,0xBF,0x2C, // cvtss2si reg,xmm\n\t0x00,0xE6,0x13,0x9E,0x5F,0x2D, // cvttpd2dq xmm,[r/m]\n\t0x00,0xE6,0x13,0xBE,0x5F,0x2D, // cvttpd2dq xmm,xmm\n\t0x00,0x2C,0x13,0x9E,0xEF,0x2D, // cvttpd2pi mmx,[r/m]\n\t0x00,0x2C,0x13,0xBE,0xEF,0x2D, // cvttpd2pi mmx,xmm\n\t0xF3,0x5B,0x13,0x9E,0x5F,0x2E, // cvttps2dq xmm,[r/m]\n\t0xF3,0x5B,0x13,0xBE,0x5F,0x2E, // cvttps2dq xmm,xmm\n\t0x00,0x2C,0x12,0x9E,0xEF,0x2E, // cvttps2pi mmx,[r/m]\n\t0x00,0x2C,0x12,0xBE,0xEF,0x2E, // cvttps2pi mmx,xmm\n\t0xF2,0x2C,0x13,0x9E,0x3F,0x2F, // cvttsd2si reg,[r/m]\n\t0xF2,0x2C,0x13,0xBE,0x3F,0x2F, // cvttsd2si reg,xmm\n\t0xF3,0x2C,0x13,0x9E,0xBF,0x2F, // cvttss2si reg,[r/m]\n\t0xF3,0x2C,0x13,0xBE,0xBF,0x2F, // cvttss2si reg,xmm\n\t0x00,0x99,0x01,0xFE,0x7F,0x30, // cwd\n\t0x00,0x98,0x00,0xFE,0xFF,0x30, // cwde\n\t0xFF,0xFF,0x80,0xFF,0x7E,0x31, // db imm\n\t0xFF,0xFF,0x40,0xFE,0xFE,0x31, // dd imm\n\t0x08,0xFF,0x34,0xFE,0x3F,0x32, // dec reg\n\t0x08,0xFF,0x34,0xFE,0x4F,0x32, // dec [r/m]\n\t0x30,0xF7,0x34,0xFE,0xBF,0x32, // div reg\n\t0x30,0xF7,0x34,0xFE,0xCF,0x32, // div [r/m]\n\t0x00,0x5E,0x13,0x9E,0x5F,0x33, // divpd xmm,[r/m]\n\t0x00,0x5E,0x13,0xBE,0x5F,0x33, // divpd xmm,xmm\n\t0x00,0x5E,0x12,0x9E,0xDF,0x33, // divps xmm,[r/m]\n\t0x00,0x5E,0x12,0xBE,0xDF,0x33, // divps xmm,xmm\n\t0xF2,0x5E,0x13,0x9E,0x5F,0x34, // divsd xmm,[r/m]\n\t0xF2,0x5E,0x13,0xBE,0x5F,0x34, // divsd xmm,xmm\n\t0xF3,0x5E,0x13,0x9E,0xDF,0x34, // divss xmm,[r/m]\n\t0xF3,0x5E,0x13,0xBE,0xDF,0x34, // divss xmm,xmm\n\t0xFF,0xFF,0xC0,0xFE,0x7E,0x35, // dq imm\n\t0xFF,0xFF,0x80,0xFE,0xFE,0x35, // dw imm\n\t0x00,0x77,0x02,0xFE,0x7F,0x36, // emms\n\t0x00,0xC8,0x80,0xFD,0xFE,0x36, // enter imm,imm\n\t0xFF,0xFF,0x80,0xFF,0x7E,0x37, // equb imm\n\t0xFF,0xFF,0x40,0xFE,0xFE,0x37, // equd imm\n\t0xFF,0xFF,0xC0,0xFE,0x7E,0x38, // equq imm\n\t0xFF,0xFF,0x80,0xFE,0xFE,0x38, // equw imm\n\t0xF0,0xD9,0x00,0xFE,0x7F,0x39, // f2xm1\n\t0xE1,0xD9,0x00,0xFE,0xFF,0x39, // fabs\n\t0x00,0xD8,0x3C,0xFE,0x4F,0x3A, // fadd [r/m]\n\t0x00,0xD8,0x1C,0xCE,0x60,0x3A, // fadd st0,stn\n\t0x00,0xDC,0x30,0xC0,0x67,0x3A, // fadd stn,st0\n\t0x00,0xDE,0x30,0xC0,0xE7,0x3A, // faddp stn,st0\n\t0xC1,0xDE,0x00,0xFE,0xFF,0x3A, // faddp\n\t0x20,0xDF,0x30,0xFE,0x4F,0x3B, // fbld [r/m]\n\t0x30,0xDF,0x30,0xFE,0xCF,0x3B, // fbstp [r/m]\n\t0xE0,0xD9,0x00,0xFE,0x7F,0x3C, // fchs\n\t0xE2,0xDB,0x02,0xFE,0xFF,0x3C, // fclex\n\t0x00,0xDA,0x10,0xCE,0x60,0x3D, // fcmovb st0,stn\n\t0x10,0xDA,0x10,0xCE,0xE0,0x3D, // fcmovbe st0,stn\n\t0x08,0xDA,0x10,0xCE,0x60,0x3E, // fcmove st0,stn\n\t0x00,0xDB,0x10,0xCE,0xE0,0x3E, // fcmovnb st0,stn\n\t0x10,0xDB,0x10,0xCE,0x60,0x3F, // fcmovnbe st0,stn\n\t0x08,0xDB,0x10,0xCE,0xE0,0x3F, // fcmovne st0,stn\n\t0x18,0xDB,0x10,0xCE,0x60,0x40, // fcmovnu st0,stn\n\t0x18,0xDA,0x10,0xCE,0xE0,0x40, // fcmovu st0,stn\n\t0x10,0xD8,0x3C,0xFE,0x4F,0x41, // fcom [r/m]\n\t0x10,0xD8,0x3C,0xFE,0x67,0x41, // fcom stn\n\t0xD1,0xD8,0x00,0xFE,0x7F,0x41, // fcom\n\t0x30,0xDB,0x10,0xCE,0xE0,0x41, // fcomi st0,stn\n\t0x30,0xDF,0x10,0xCE,0x60,0x42, // fcomip st0,stn\n\t0x18,0xD8,0x3C,0xFE,0xCF,0x42, // fcomp [r/m]\n\t0x18,0xD8,0x3C,0xFE,0xE7,0x42, // fcomp stn\n\t0xD9,0xD8,0x00,0xFE,0xFF,0x42, // fcomp\n\t0xD9,0xDE,0x00,0xFE,0x7F,0x43, // fcompp\n\t0xFF,0xD9,0x00,0xFE,0xFF,0x43, // fcos\n\t0xF6,0xD9,0x00,0xFE,0x7F,0x44, // fdecstp\n\t0x30,0xD8,0x3C,0xFE,0xCF,0x44, // fdiv [r/m]\n\t0x30,0xD8,0x1C,0xCE,0xE0,0x44, // fdiv st0,stn\n\t0x38,0xDC,0x30,0xC0,0xE7,0x44, // fdiv stn,st0\n\t0x38,0xDE,0x30,0xC0,0x67,0x45, // fdivp stn,st0\n\t0xF9,0xDE,0x00,0xFE,0x7F,0x45, // fdivp\n\t0x38,0xD8,0x3C,0xFE,0xCF,0x45, // fdivr [r/m]\n\t0x38,0xD8,0x1C,0xCE,0xE0,0x45, // fdivr st0,stn\n\t0x30,0xDC,0x30,0xC0,0xE7,0x45, // fdivr stn,st0\n\t0x30,0xDE,0x30,0xC0,0x67,0x46, // fdivrp stn,st0\n\t0xF1,0xDE,0x00,0xFE,0x7F,0x46, // fdivrp\n\t0x00,0xDD,0x30,0xFE,0xE7,0x46, // ffree stn\n\t0x00,0xDA,0x3C,0xFE,0x4F,0x47, // fiadd [r/m]\n\t0x10,0xDA,0x3C,0xFE,0xCF,0x47, // ficom [r/m]\n\t0x18,0xDA,0x3C,0xFE,0x4F,0x48, // ficomp [r/m]\n\t0x30,0xDA,0x3C,0xFE,0xCF,0x48, // fidiv [r/m]\n\t0x38,0xDA,0x3C,0xFE,0x4F,0x49, // fidivr [r/m]\n\t0x00,0xDB,0x3C,0xFE,0xCF,0x49, // fild [r/m]\n\t0x08,0xDA,0x3C,0xFE,0x4F,0x4A, // fimul [r/m]\n\t0xF7,0xD9,0x00,0xFE,0xFF,0x4A, // fincstp\n\t0xE3,0xDB,0x02,0xFE,0x7F,0x4B, // finit\n\t0x10,0xDB,0x3C,0xFE,0xCF,0x4B, // fist [r/m]\n\t0x18,0xDB,0x3C,0xFE,0x4F,0x4C, // fistp [r/m]\n\t0x08,0xDB,0x3C,0xFE,0xCF,0x4C, // fisttp [r/m]\n\t0x20,0xDA,0x3C,0xFE,0x4F,0x4D, // fisub [r/m]\n\t0x28,0xDA,0x3C,0xFE,0xCF,0x4D, // fisubr [r/m]\n\t0x00,0xD9,0x3C,0xFE,0x4F,0x4E, // fld [r/m]\n\t0x00,0xD9,0x3C,0xFE,0x67,0x4E, // fld stn\n\t0xE8,0xD9,0x00,0xFE,0xFF,0x4E, // fld1\n\t0x28,0xD9,0x30,0xFE,0x4F,0x4F, // fldcw [r/m]\n\t0x20,0xD9,0x30,0xFE,0xCF,0x4F, // fldenv [r/m]\n\t0xEA,0xD9,0x00,0xFE,0x7F,0x50, // fldl2e\n\t0xE9,0xD9,0x00,0xFE,0xFF,0x50, // fldl2t\n\t0xEC,0xD9,0x00,0xFE,0x7F,0x51, // fldlg2\n\t0xED,0xD9,0x00,0xFE,0xFF,0x51, // fldln2\n\t0xEB,0xD9,0x00,0xFE,0x7F,0x52, // fldpi\n\t0xEE,0xD9,0x00,0xFE,0xFF,0x52, // fldz\n\t0x08,0xD8,0x3C,0xFE,0x4F,0x53, // fmul [r/m]\n\t0x08,0xD8,0x1C,0xCE,0x60,0x53, // fmul st0,stn\n\t0x08,0xDC,0x30,0xC0,0x67,0x53, // fmul stn,st0\n\t0x08,0xDE,0x30,0xC0,0xE7,0x53, // fmulp stn,st0\n\t0xC9,0xDE,0x00,0xFE,0xFF,0x53, // fmulp\n\t0xE2,0xDB,0x00,0xFE,0x7F,0x54, // fnclex\n\t0xE3,0xDB,0x00,0xFE,0xFF,0x54, // fninit\n\t0xD0,0xD9,0x00,0xFE,0x7F,0x55, // fnop\n\t0x30,0xDD,0x30,0xFE,0xCF,0x55, // fnsave [r/m]\n\t0x38,0xD9,0x30,0xFE,0x4F,0x56, // fnstcw [r/m]\n\t0x30,0xD9,0x30,0xFE,0xCF,0x56, // fnstenv [r/m]\n\t0xE0,0xDF,0x00,0xFE,0x10,0x57, // fnstsw ax\n\t0x38,0xDD,0x30,0xFE,0x4F,0x57, // fnstsw [r/m]\n\t0xF3,0xD9,0x00,0xFE,0xFF,0x57, // fpatan\n\t0xF8,0xD9,0x00,0xFE,0x7F,0x58, // fprem\n\t0xF5,0xD9,0x00,0xFE,0xFF,0x58, // fprem1\n\t0xF2,0xD9,0x00,0xFE,0x7F,0x59, // fptan\n\t0xFC,0xD9,0x00,0xFE,0xFF,0x59, // frndint\n\t0x20,0xDD,0x30,0xFE,0x4F,0x5A, // frstor [r/m]\n\t0x30,0xDD,0x32,0xFE,0xCF,0x5A, // fsave [r/m]\n\t0xFD,0xD9,0x00,0xFE,0x7F,0x5B, // fscale\n\t0xFE,0xD9,0x00,0xFE,0xFF,0x5B, // fsin\n\t0xFB,0xD9,0x00,0xFE,0x7F,0x5C, // fsincos\n\t0xFA,0xD9,0x00,0xFE,0xFF,0x5C, // fsqrt\n\t0x10,0xD9,0x3C,0xFE,0x4F,0x5D, // fst [r/m]\n\t0x10,0xDD,0x30,0xFE,0x67,0x5D, // fst stn\n\t0x38,0xD9,0x32,0xFE,0xCF,0x5D, // fstcw [r/m]\n\t0x30,0xD9,0x32,0xFE,0x4F,0x5E, // fstenv [r/m]\n\t0x18,0xD9,0x3C,0xFE,0xCF,0x5E, // fstp [r/m]\n\t0x18,0xDD,0x30,0xFE,0xE7,0x5E, // fstp stn\n\t0xE0,0xDF,0x02,0xFE,0x10,0x5F, // fstsw ax\n\t0x38,0xDD,0x32,0xFE,0x4F,0x5F, // fstsw [r/m]\n\t0x20,0xD8,0x3C,0xFE,0xCF,0x5F, // fsub [r/m]\n\t0x20,0xD8,0x1C,0xCE,0xE0,0x5F, // fsub st0,stn\n\t0x28,0xDC,0x30,0xC0,0xE7,0x5F, // fsub stn,st0\n\t0x28,0xDE,0x30,0xC0,0x67,0x60, // fsubp stn,st0\n\t0xE9,0xDE,0x00,0xFE,0x7F,0x60, // fsubp\n\t0x28,0xD8,0x3C,0xFE,0xCF,0x60, // fsubr [r/m]\n\t0x28,0xD8,0x1C,0xCE,0xE0,0x60, // fsubr st0,stn\n\t0x20,0xDC,0x30,0xC0,0xE7,0x60, // fsubr stn,st0\n\t0x20,0xDE,0x30,0xC0,0x67,0x61, // fsubrp stn,st0\n\t0xE1,0xDE,0x00,0xFE,0x7F,0x61, // fsubrp\n\t0xE4,0xD9,0x00,0xFE,0xFF,0x61, // ftst\n\t0x20,0xDD,0x30,0xFE,0x67,0x62, // fucom stn\n\t0xE1,0xDD,0x00,0xFE,0x7F,0x62, // fucom\n\t0x28,0xDB,0x10,0xCE,0xE0,0x62, // fucomi st0,stn\n\t0x28,0xDF,0x10,0xCE,0x60,0x63, // fucomip st0,stn\n\t0x28,0xDD,0x30,0xFE,0xE7,0x63, // fucomp stn\n\t0xE9,0xDD,0x00,0xFE,0xFF,0x63, // fucomp\n\t0xE9,0xDA,0x00,0xFE,0x7F,0x64, // fucompp\n\t0x00,0x9B,0x00,0xFE,0xFF,0x64, // fwait\n\t0xE5,0xD9,0x00,0xFE,0x7F,0x65, // fxam\n\t0x08,0xD9,0x3C,0xFE,0xE7,0x65, // fxch stn\n\t0xC9,0xD9,0x00,0xFE,0xFF,0x65, // fxch\n\t0x08,0xAE,0x32,0xFE,0x4F,0x66, // fxrstor [r/m]\n\t0x00,0xAE,0x32,0xFE,0xCF,0x66, // fxsave [r/m]\n\t0xF4,0xD9,0x00,0xFE,0x7F,0x67, // fxtract\n\t0xF1,0xD9,0x00,0xFE,0xFF,0x67, // fyl2x\n\t0xF9,0xD9,0x00,0xFE,0x7F,0x68, // fyl2xp1\n\t0x00,0x7C,0x13,0x9E,0xDF,0x68, // haddpd xmm,[r/m]\n\t0x00,0x7C,0x13,0xBE,0xDF,0x68, // haddpd xmm,xmm\n\t0xF2,0x7C,0x13,0x9E,0x5F,0x69, // haddps xmm,[r/m]\n\t0xF2,0x7C,0x13,0xBE,0x5F,0x69, // haddps xmm,xmm\n\t0x00,0x7D,0x13,0x9E,0xDF,0x69, // hsubpd xmm,[r/m]\n\t0x00,0x7D,0x13,0xBE,0xDF,0x69, // hsubpd xmm,xmm\n\t0xF2,0x7D,0x13,0x9E,0x5F,0x6A, // hsubps xmm,[r/m]\n\t0xF2,0x7D,0x13,0xBE,0x5F,0x6A, // hsubps xmm,xmm\n\t0x38,0xF7,0x34,0xFE,0xBF,0x6A, // idiv reg\n\t0x38,0xF7,0x34,0xFE,0xCF,0x6A, // idiv [r/m]\n\t0x00,0xAF,0x16,0x7E,0x3F,0x6B, // imul reg,reg\n\t0x00,0x69,0xD8,0x7F,0x3F,0x6B, // imul reg,reg,imm\n\t0x00,0xAF,0x16,0x9E,0x3F,0x6B, // imul reg,[r/m]\n\t0x00,0x69,0xD8,0x9F,0x3F,0x6B, // imul reg,[r/m],imm\n\t0x28,0xF7,0x34,0xFE,0x3F,0x6B, // imul reg\n\t0x28,0xF7,0x34,0xFE,0x4F,0x6B, // imul [r/m]\n\t0x00,0xFF,0x34,0xFE,0xBF,0x6B, // inc reg\n\t0x00,0xFF,0x34,0xFE,0xCF,0x6B, // inc [r/m]\n\t0x00,0x77,0x00,0xFF,0x7E,0x6C, // ja imm\n\t0x00,0x73,0x00,0xFF,0xFE,0x6C, // jae imm\n\t0x00,0x72,0x00,0xFF,0x7E,0x6D, // jb imm\n\t0x00,0x76,0x00,0xFF,0xFE,0x6D, // jbe imm\n\t0x00,0x72,0x00,0xFF,0x7E,0x6E, // jc imm\n\t0x00,0x74,0x00,0xFF,0xFE,0x6E, // je imm\n\t0x67,0xE3,0x01,0xFF,0x7E,0x6F, // jecxz imm\n\t0x00,0x7F,0x00,0xFF,0xFE,0x6F, // jg imm\n\t0x00,0x7D,0x00,0xFF,0x7E,0x70, // jge imm\n\t0x00,0x7C,0x00,0xFF,0xFE,0x70, // jl imm\n\t0x00,0x7E,0x00,0xFF,0x7E,0x71, // jle imm\n\t0x20,0xFF,0x30,0xFE,0xAF,0x71, // jmp reg64\n\t0x20,0xFF,0x30,0xFE,0xCF,0x71, // jmp [r/m]\n\t0x00,0xEB,0x00,0xFF,0xFE,0x71, // jmp imm\n\t0x00,0x76,0x00,0xFF,0x7E,0x72, // jna imm\n\t0x00,0x72,0x00,0xFF,0xFE,0x72, // jnae imm\n\t0x00,0x73,0x00,0xFF,0x7E,0x73, // jnb imm\n\t0x00,0x77,0x00,0xFF,0xFE,0x73, // jnbe imm\n\t0x00,0x73,0x00,0xFF,0x7E,0x74, // jnc imm\n\t0x00,0x75,0x00,0xFF,0xFE,0x74, // jne imm\n\t0x00,0x7E,0x00,0xFF,0x7E,0x75, // jng imm\n\t0x00,0x7C,0x00,0xFF,0xFE,0x75, // jnge imm\n\t0x00,0x7D,0x00,0xFF,0x7E,0x76, // jnl imm\n\t0x00,0x7F,0x00,0xFF,0xFE,0x76, // jnle imm\n\t0x00,0x71,0x00,0xFF,0x7E,0x77, // jno imm\n\t0x00,0x7B,0x00,0xFF,0xFE,0x77, // jnp imm\n\t0x00,0x79,0x00,0xFF,0x7E,0x78, // jns imm\n\t0x00,0x75,0x00,0xFF,0xFE,0x78, // jnz imm\n\t0x00,0x70,0x00,0xFF,0x7E,0x79, // jo imm\n\t0x00,0x7A,0x00,0xFF,0xFE,0x79, // jp imm\n\t0x00,0x7A,0x00,0xFF,0x7E,0x7A, // jpe imm\n\t0x00,0x7B,0x00,0xFF,0xFE,0x7A, // jpo imm\n\t0x00,0xE3,0x00,0xFF,0x7E,0x7B, // jrcxz imm\n\t0x00,0x78,0x00,0xFF,0xFE,0x7B, // js imm\n\t0x00,0x74,0x00,0xFF,0x7E,0x7C, // jz imm\n\t0x00,0x9F,0x00,0xFE,0xFF,0x7C, // lahf\n\t0xF2,0xF0,0x13,0x9E,0x5F,0x7D, // lddqu xmm,[r/m]\n\t0x10,0xAE,0x32,0xFE,0xCF,0x7D, // ldmxcsr [r/m]\n\t0x00,0x8D,0x10,0x9E,0x3F,0x7E, // lea reg,[r/m]\n\t0x00,0xC9,0x00,0xFE,0xFF,0x7E, // leave\n\t0xE8,0xAE,0x02,0xFE,0x7F,0x7F, // lfence\n\t0x00,0xF0,0x00,0xFE,0xFF,0x7F, // lock\n\t0x00,0xAC,0x04,0xFE,0x7F,0x80, // lodsb\n\t0x00,0xAD,0x00,0xFE,0xFF,0x80, // lodsd\n\t0x48,0xAD,0x01,0xFE,0x7F,0x81, // lodsq\n\t0x00,0xAD,0x01,0xFE,0xFF,0x81, // lodsw\n\t0x00,0xE2,0x00,0xFF,0x7E,0x82, // loop imm\n\t0x00,0xE1,0x00,0xFF,0xFE,0x82, // loope imm\n\t0x00,0xE0,0x00,0xFF,0x7E,0x83, // loopne imm\n\t0x00,0xE0,0x00,0xFF,0xFE,0x83, // loopnz imm\n\t0x00,0xE1,0x00,0xFF,0x7E,0x84, // loopz imm\n\t0x00,0x03,0x12,0x7E,0xBF,0x84, // lsl reg,reg\n\t0x00,0x03,0x12,0x9E,0xBF,0x84, // lsl reg,[r/m]\n\t0x00,0xF7,0x13,0xBE,0x5F,0x85, // maskmovdqu xmm,xmm\n\t0x00,0xF7,0x12,0xDE,0xEF,0x85, // maskmovq mmx,mmx\n\t0x00,0x5F,0x13,0x9E,0x5F,0x86, // maxpd xmm,[r/m]\n\t0x00,0x5F,0x13,0xBE,0x5F,0x86, // maxpd xmm,xmm\n\t0x00,0x5F,0x12,0x9E,0xDF,0x86, // maxps xmm,[r/m]\n\t0x00,0x5F,0x12,0xBE,0xDF,0x86, // maxps xmm,xmm\n\t0xF2,0x5F,0x13,0x9E,0x5F,0x87, // maxsd xmm,[r/m]\n\t0xF2,0x5F,0x13,0xBE,0x5F,0x87, // maxsd xmm,xmm\n\t0xF3,0x5F,0x13,0x9E,0xDF,0x87, // maxss xmm,[r/m]\n\t0xF3,0x5F,0x13,0xBE,0xDF,0x87, // maxss xmm,xmm\n\t0xF0,0xAE,0x02,0xFE,0x7F,0x88, // mfence\n\t0x00,0x5D,0x13,0x9E,0xDF,0x88, // minpd xmm,[r/m]\n\t0x00,0x5D,0x13,0xBE,0xDF,0x88, // minpd xmm,xmm\n\t0x00,0x5D,0x12,0x9E,0x5F,0x89, // minps xmm,[r/m]\n\t0x00,0x5D,0x12,0xBE,0x5F,0x89, // minps xmm,xmm\n\t0xF2,0x5D,0x13,0x9E,0xDF,0x89, // minsd xmm,[r/m]\n\t0xF2,0x5D,0x13,0xBE,0xDF,0x89, // minsd xmm,xmm\n\t0xF3,0x5D,0x13,0x9E,0x5F,0x8A, // minss xmm,[r/m]\n\t0xF3,0x5D,0x13,0xBE,0x5F,0x8A, // minss xmm,xmm\n\t0x00,0xB0,0xA0,0xFD,0x8F,0x8A, // mov reg8,imm\n\t0x00,0xA1,0xC4,0xF8,0xB0,0x8A, // mov rax,[mem]\n\t0x00,0x89,0x34,0x7E,0xBF,0x8A, // mov reg,reg\n\t0x00,0x8B,0x14,0x9E,0xBF,0x8A, // mov reg,[r/m]\n\t0x00,0x8C,0x30,0xEE,0xBF,0x8A, // mov reg,sreg\n\t0x00,0xB8,0xE0,0xFD,0xBF,0x8A, // mov reg,imm\n\t0x00,0x89,0x34,0x7E,0xCF,0x8A, // mov [r/m],reg\n\t0x00,0x8C,0x30,0xEE,0xCF,0x8A, // mov [r/m],sreg\n\t0x00,0xC7,0xF4,0xFD,0xCF,0x8A, // mov [r/m],imm\n\t0x00,0x8E,0x10,0x3E,0xF7,0x8A, // mov sreg,reg16\n\t0x00,0x8E,0x10,0x9E,0xF7,0x8A, // mov sreg,[r/m]\n\t0x00,0xA3,0xC4,0x60,0xFC,0x8A, // mov [mem],rax\n\t0x00,0x29,0x33,0xBE,0x4F,0x8B, // movapd [r/m],xmm\n\t0x00,0x28,0x13,0x9E,0x5F,0x8B, // movapd xmm,[r/m]\n\t0x00,0x28,0x13,0xBE,0x5F,0x8B, // movapd xmm,xmm\n\t0x00,0x29,0x32,0xBE,0xCF,0x8B, // movaps [r/m],xmm\n\t0x00,0x28,0x12,0x9E,0xDF,0x8B, // movaps xmm,[r/m]\n\t0x00,0x28,0x12,0xBE,0xDF,0x8B, // movaps xmm,xmm\n\t0xF0,0x38,0x12,0x9E,0x3F,0x8C, // movbe reg,[r/m]\n\t0xF1,0x38,0x32,0x7E,0x4F,0x8C, // movbe [r/m],reg\n\t0x00,0x7E,0x33,0xBE,0xBF,0x8C, // movd reg,xmm\n\t0x00,0x7E,0x32,0xDE,0xBF,0x8C, // movd reg,mmx\n\t0x00,0x7E,0x33,0xBE,0xCF,0x8C, // movd [r/m],xmm\n\t0x00,0x7E,0x32,0xDE,0xCF,0x8C, // movd [r/m],mmx\n\t0x00,0x6E,0x13,0x7E,0xDF,0x8C, // movd xmm,reg\n\t0x00,0x6E,0x13,0x9E,0xDF,0x8C, // movd xmm,[r/m]\n\t0x00,0x6E,0x12,0x7E,0xEF,0x8C, // movd mmx,reg\n\t0x00,0x6E,0x12,0x9E,0xEF,0x8C, // movd mmx,[r/m]\n\t0xF2,0x12,0x13,0x9E,0x5F,0x8D, // movddup xmm,[r/m]\n\t0xF2,0x12,0x13,0xBE,0x5F,0x8D, // movddup xmm,xmm\n\t0xF2,0xD6,0x13,0xBE,0xEF,0x8D, // movdq2q mmx,xmm\n\t0x00,0x7F,0x33,0xBE,0x4F,0x8E, // movdqa [r/m],xmm\n\t0x00,0x6F,0x13,0x9E,0x5F,0x8E, // movdqa xmm,[r/m]\n\t0x00,0x6F,0x13,0xBE,0x5F,0x8E, // movdqa xmm,xmm\n\t0xF3,0x7F,0x33,0xBE,0xCF,0x8E, // movdqu [r/m],xmm\n\t0xF3,0x6F,0x13,0x9E,0xDF,0x8E, // movdqu xmm,[r/m]\n\t0xF3,0x6F,0x13,0xBE,0xDF,0x8E, // movdqu xmm,xmm\n\t0x00,0x12,0x12,0xBE,0x5F,0x8F, // movhlps xmm,xmm\n\t0x00,0x17,0x33,0xBE,0xCF,0x8F, // movhpd [r/m],xmm\n\t0x00,0x16,0x13,0x9E,0xDF,0x8F, // movhpd xmm,[r/m]\n\t0x00,0x17,0x32,0xBE,0x4F,0x90, // movhps [r/m],xmm\n\t0x00,0x16,0x12,0x9E,0x5F,0x90, // movhps xmm,[r/m]\n\t0x00,0x16,0x12,0xBE,0xDF,0x90, // movlhps xmm,xmm\n\t0x00,0x13,0x33,0xBE,0x4F,0x91, // movlpd [r/m],xmm\n\t0x00,0x12,0x13,0x9E,0x5F,0x91, // movlpd xmm,[r/m]\n\t0x00,0x13,0x32,0xBE,0xCF,0x91, // movlps [r/m],xmm\n\t0x00,0x12,0x12,0x9E,0xDF,0x91, // movlps xmm,[r/m]\n\t0x00,0x50,0x13,0xBE,0x3F,0x92, // movmskpd reg,xmm\n\t0x00,0x50,0x12,0xBE,0xBF,0x92, // movmskps reg,xmm\n\t0x00,0xE7,0x33,0xBE,0x4F,0x93, // movntdq [r/m],xmm\n\t0x00,0xC3,0x32,0x7E,0xCF,0x93, // movnti [r/m],reg\n\t0x00,0x2B,0x33,0xBE,0x4F,0x94, // movntpd [r/m],xmm\n\t0x00,0x2B,0x32,0xBE,0xCF,0x94, // movntps [r/m],xmm\n\t0x00,0xE7,0x32,0xDE,0x4F,0x95, // movntq [r/m],mmx\n\t0x00,0xD6,0x33,0xBE,0xCF,0x95, // movq [r/m],xmm\n\t0x00,0x7F,0x32,0xDE,0xCF,0x95, // movq [r/m],mmx\n\t0xF3,0x7E,0x13,0x9E,0xDF,0x95, // movq xmm,[r/m]\n\t0x00,0xD6,0x33,0xBE,0xDF,0x95, // movq xmm,xmm\n\t0x00,0x6F,0x12,0x9E,0xEF,0x95, // movq mmx,[r/m]\n\t0x00,0x6F,0x12,0xDE,0xEF,0x95, // movq mmx,mmx\n\t0xF3,0xD6,0x13,0xDE,0x5F,0x96, // movq2dq xmm,mmx\n\t0x00,0xA4,0x04,0xFE,0xFF,0x96, // movsb\n\t0xF2,0x11,0x33,0xBE,0x4F,0x97, // movsd [r/m],xmm\n\t0xF2,0x10,0x13,0x9E,0x5F,0x97, // movsd xmm,[r/m]\n\t0xF2,0x10,0x13,0xBE,0x5F,0x97, // movsd xmm,xmm\n\t0x00,0xA5,0x00,0xFE,0x7F,0x97, // movsd\n\t0xF3,0x16,0x13,0x9E,0xDF,0x97, // movshdup xmm,[r/m]\n\t0xF3,0x16,0x13,0xBE,0xDF,0x97, // movshdup xmm,xmm\n\t0xF3,0x12,0x13,0x9E,0x5F,0x98, // movsldup xmm,[r/m]\n\t0xF3,0x12,0x13,0xBE,0x5F,0x98, // movsldup xmm,xmm\n\t0x48,0xA5,0x01,0xFE,0xFF,0x98, // movsq\n\t0xF3,0x11,0x33,0xBE,0x4F,0x99, // movss [r/m],xmm\n\t0xF3,0x10,0x13,0x9E,0x5F,0x99, // movss xmm,[r/m]\n\t0xF3,0x10,0x13,0xBE,0x5F,0x99, // movss xmm,xmm\n\t0x00,0xA5,0x01,0xFE,0xFF,0x99, // movsw\n\t0x00,0xBF,0x16,0x3E,0x3F,0x9A, // movsx reg,reg16\n\t0x00,0xBF,0x16,0x9E,0x3F,0x9A, // movsx reg,[r/m]\n\t0x00,0x63,0x10,0x7E,0xBF,0x9A, // movsxd reg,reg\n\t0x00,0x63,0x10,0x9E,0xBF,0x9A, // movsxd reg,[r/m]\n\t0x00,0x11,0x33,0xBE,0x4F,0x9B, // movupd [r/m],xmm\n\t0x00,0x10,0x13,0x9E,0x5F,0x9B, // movupd xmm,[r/m]\n\t0x00,0x10,0x13,0xBE,0x5F,0x9B, // movupd xmm,xmm\n\t0x00,0x11,0x32,0xBE,0xCF,0x9B, // movups [r/m],xmm\n\t0x00,0x10,0x12,0x9E,0xDF,0x9B, // movups xmm,[r/m]\n\t0x00,0x10,0x12,0xBE,0xDF,0x9B, // movups xmm,xmm\n\t0x00,0xB7,0x16,0x3E,0x3F,0x9C, // movzx reg,reg16\n\t0x00,0xB7,0x16,0x9E,0x3F,0x9C, // movzx reg,[r/m]\n\t0x20,0xF7,0x34,0xFE,0xBF,0x9C, // mul reg\n\t0x20,0xF7,0x34,0xFE,0xCF,0x9C, // mul [r/m]\n\t0x00,0x59,0x13,0x9E,0x5F,0x9D, // mulpd xmm,[r/m]\n\t0x00,0x59,0x13,0xBE,0x5F,0x9D, // mulpd xmm,xmm\n\t0x00,0x59,0x12,0x9E,0xDF,0x9D, // mulps xmm,[r/m]\n\t0x00,0x59,0x12,0xBE,0xDF,0x9D, // mulps xmm,xmm\n\t0xF2,0x59,0x13,0x9E,0x5F,0x9E, // mulsd xmm,[r/m]\n\t0xF2,0x59,0x13,0xBE,0x5F,0x9E, // mulsd xmm,xmm\n\t0xF3,0x59,0x13,0x9E,0xDF,0x9E, // mulss xmm,[r/m]\n\t0xF3,0x59,0x13,0xBE,0xDF,0x9E, // mulss xmm,xmm\n\t0x18,0xF7,0x34,0xFE,0x3F,0x9F, // neg reg\n\t0x18,0xF7,0x34,0xFE,0x4F,0x9F, // neg [r/m]\n\t0x00,0x1F,0x32,0xFE,0xAF,0x9F, // nop reg64\n\t0x00,0x1F,0x32,0xFE,0xCF,0x9F, // nop [r/m]\n\t0x00,0x90,0x00,0xFE,0xFF,0x9F, // nop\n\t0x10,0xF7,0x34,0xFE,0x3F,0xA0, // not reg\n\t0x10,0xF7,0x34,0xFE,0x4F,0xA0, // not [r/m]\n\t0x00,0x0D,0xC4,0xFD,0x30,0xA1, // or rax,imm\n\t0x00,0x09,0x34,0x7E,0x3F,0xA1, // or reg,reg\n\t0x00,0x0B,0x14,0x9E,0x3F,0xA1, // or reg,[r/m]\n\t0x08,0x81,0xFC,0xFD,0x3F,0xA1, // or reg,imm\n\t0x00,0x09,0x34,0x7E,0x4F,0xA1, // or [r/m],reg\n\t0x08,0x81,0xFC,0xFD,0x4F,0xA1, // or [r/m],imm\n\t0x00,0x56,0x13,0x9E,0xDF,0xA1, // orpd xmm,[r/m]\n\t0x00,0x56,0x13,0xBE,0xDF,0xA1, // orpd xmm,xmm\n\t0x00,0x56,0x12,0x9E,0x5F,0xA2, // orps xmm,[r/m]\n\t0x00,0x56,0x12,0xBE,0x5F,0xA2, // orps xmm,xmm\n\t0x00,0x6B,0x13,0x9E,0xDF,0xA2, // packssdw xmm,[r/m]\n\t0x00,0x6B,0x13,0xBE,0xDF,0xA2, // packssdw xmm,xmm\n\t0x00,0x6B,0x12,0x9E,0xEF,0xA2, // packssdw mmx,[r/m]\n\t0x00,0x6B,0x12,0xDE,0xEF,0xA2, // packssdw mmx,mmx\n\t0x00,0x63,0x13,0x9E,0x5F,0xA3, // packsswb xmm,[r/m]\n\t0x00,0x63,0x13,0xBE,0x5F,0xA3, // packsswb xmm,xmm\n\t0x00,0x63,0x12,0x9E,0x6F,0xA3, // packsswb mmx,[r/m]\n\t0x00,0x63,0x12,0xDE,0x6F,0xA3, // packsswb mmx,mmx\n\t0x00,0x67,0x13,0x9E,0xDF,0xA3, // packuswb xmm,[r/m]\n\t0x00,0x67,0x13,0xBE,0xDF,0xA3, // packuswb xmm,xmm\n\t0x00,0x67,0x12,0x9E,0xEF,0xA3, // packuswb mmx,[r/m]\n\t0x00,0x67,0x12,0xDE,0xEF,0xA3, // packuswb mmx,mmx\n\t0x00,0xFC,0x13,0x9E,0x5F,0xA4, // paddb xmm,[r/m]\n\t0x00,0xFC,0x13,0xBE,0x5F,0xA4, // paddb xmm,xmm\n\t0x00,0xFC,0x12,0x9E,0x6F,0xA4, // paddb mmx,[r/m]\n\t0x00,0xFC,0x12,0xDE,0x6F,0xA4, // paddb mmx,mmx\n\t0x00,0xFE,0x13,0x9E,0xDF,0xA4, // paddd xmm,[r/m]\n\t0x00,0xFE,0x13,0xBE,0xDF,0xA4, // paddd xmm,xmm\n\t0x00,0xFE,0x12,0x9E,0xEF,0xA4, // paddd mmx,[r/m]\n\t0x00,0xFE,0x12,0xDE,0xEF,0xA4, // paddd mmx,mmx\n\t0x00,0xD4,0x13,0x9E,0x5F,0xA5, // paddq xmm,[r/m]\n\t0x00,0xD4,0x13,0xBE,0x5F,0xA5, // paddq xmm,xmm\n\t0x00,0xD4,0x12,0x9E,0x6F,0xA5, // paddq mmx,[r/m]\n\t0x00,0xD4,0x12,0xDE,0x6F,0xA5, // paddq mmx,mmx\n\t0x00,0xEC,0x13,0x9E,0xDF,0xA5, // paddsb xmm,[r/m]\n\t0x00,0xEC,0x13,0xBE,0xDF,0xA5, // paddsb xmm,xmm\n\t0x00,0xEC,0x12,0x9E,0xEF,0xA5, // paddsb mmx,[r/m]\n\t0x00,0xEC,0x12,0xDE,0xEF,0xA5, // paddsb mmx,mmx\n\t0x00,0xED,0x13,0x9E,0x5F,0xA6, // paddsw xmm,[r/m]\n\t0x00,0xED,0x13,0xBE,0x5F,0xA6, // paddsw xmm,xmm\n\t0x00,0xED,0x12,0x9E,0x6F,0xA6, // paddsw mmx,[r/m]\n\t0x00,0xED,0x12,0xDE,0x6F,0xA6, // paddsw mmx,mmx\n\t0x00,0xDC,0x13,0x9E,0xDF,0xA6, // paddusb xmm,[r/m]\n\t0x00,0xDC,0x13,0xBE,0xDF,0xA6, // paddusb xmm,xmm\n\t0x00,0xDC,0x12,0x9E,0xEF,0xA6, // paddusb mmx,[r/m]\n\t0x00,0xDC,0x12,0xDE,0xEF,0xA6, // paddusb mmx,mmx\n\t0x00,0xDD,0x13,0x9E,0x5F,0xA7, // paddusw xmm,[r/m]\n\t0x00,0xDD,0x13,0xBE,0x5F,0xA7, // paddusw xmm,xmm\n\t0x00,0xDD,0x12,0x9E,0x6F,0xA7, // paddusw mmx,[r/m]\n\t0x00,0xDD,0x12,0xDE,0x6F,0xA7, // paddusw mmx,mmx\n\t0x00,0xFD,0x13,0x9E,0xDF,0xA7, // paddw xmm,[r/m]\n\t0x00,0xFD,0x13,0xBE,0xDF,0xA7, // paddw xmm,xmm\n\t0x00,0xFD,0x12,0x9E,0xEF,0xA7, // paddw mmx,[r/m]\n\t0x00,0xFD,0x12,0xDE,0xEF,0xA7, // paddw mmx,mmx\n\t0x00,0xDB,0x13,0x9E,0x5F,0xA8, // pand xmm,[r/m]\n\t0x00,0xDB,0x13,0xBE,0x5F,0xA8, // pand xmm,xmm\n\t0x00,0xDB,0x12,0x9E,0x6F,0xA8, // pand mmx,[r/m]\n\t0x00,0xDB,0x12,0xDE,0x6F,0xA8, // pand mmx,mmx\n\t0x00,0xDF,0x13,0x9E,0xDF,0xA8, // pandn xmm,[r/m]\n\t0x00,0xDF,0x13,0xBE,0xDF,0xA8, // pandn xmm,xmm\n\t0x00,0xDF,0x12,0x9E,0xEF,0xA8, // pandn mmx,[r/m]\n\t0x00,0xDF,0x12,0xDE,0xEF,0xA8, // pandn mmx,mmx\n\t0xF3,0x90,0x01,0xFE,0x7F,0xA9, // pause\n\t0x00,0xE0,0x13,0x9E,0xDF,0xA9, // pavgb xmm,[r/m]\n\t0x00,0xE0,0x13,0xBE,0xDF,0xA9, // pavgb xmm,xmm\n\t0x00,0xE0,0x12,0x9E,0xEF,0xA9, // pavgb mmx,[r/m]\n\t0x00,0xE0,0x12,0xDE,0xEF,0xA9, // pavgb mmx,mmx\n\t0x00,0xE3,0x13,0x9E,0x5F,0xAA, // pavgw xmm,[r/m]\n\t0x00,0xE3,0x13,0xBE,0x5F,0xAA, // pavgw xmm,xmm\n\t0x00,0xE3,0x12,0x9E,0x6F,0xAA, // pavgw mmx,[r/m]\n\t0x00,0xE3,0x12,0xDE,0x6F,0xAA, // pavgw mmx,mmx\n\t0x00,0x74,0x13,0x9E,0xDF,0xAA, // pcmpeqb xmm,[r/m]\n\t0x00,0x74,0x13,0xBE,0xDF,0xAA, // pcmpeqb xmm,xmm\n\t0x00,0x74,0x12,0x9E,0xEF,0xAA, // pcmpeqb mmx,[r/m]\n\t0x00,0x74,0x12,0xDE,0xEF,0xAA, // pcmpeqb mmx,mmx\n\t0x00,0x76,0x13,0x9E,0x5F,0xAB, // pcmpeqd xmm,[r/m]\n\t0x00,0x76,0x13,0xBE,0x5F,0xAB, // pcmpeqd xmm,xmm\n\t0x00,0x76,0x12,0x9E,0x6F,0xAB, // pcmpeqd mmx,[r/m]\n\t0x00,0x76,0x12,0xDE,0x6F,0xAB, // pcmpeqd mmx,mmx\n\t0x00,0x75,0x13,0x9E,0xDF,0xAB, // pcmpeqw xmm,[r/m]\n\t0x00,0x75,0x13,0xBE,0xDF,0xAB, // pcmpeqw xmm,xmm\n\t0x00,0x75,0x12,0x9E,0xEF,0xAB, // pcmpeqw mmx,[r/m]\n\t0x00,0x75,0x12,0xDE,0xEF,0xAB, // pcmpeqw mmx,mmx\n\t0x00,0x64,0x13,0x9E,0x5F,0xAC, // pcmpgtb xmm,[r/m]\n\t0x00,0x64,0x13,0xBE,0x5F,0xAC, // pcmpgtb xmm,xmm\n\t0x00,0x64,0x12,0x9E,0x6F,0xAC, // pcmpgtb mmx,[r/m]\n\t0x00,0x64,0x12,0xDE,0x6F,0xAC, // pcmpgtb mmx,mmx\n\t0x00,0x66,0x13,0x9E,0xDF,0xAC, // pcmpgtd xmm,[r/m]\n\t0x00,0x66,0x13,0xBE,0xDF,0xAC, // pcmpgtd xmm,xmm\n\t0x00,0x66,0x12,0x9E,0xEF,0xAC, // pcmpgtd mmx,[r/m]\n\t0x00,0x66,0x12,0xDE,0xEF,0xAC, // pcmpgtd mmx,mmx\n\t0x00,0x65,0x13,0x9E,0x5F,0xAD, // pcmpgtw xmm,[r/m]\n\t0x00,0x65,0x13,0xBE,0x5F,0xAD, // pcmpgtw xmm,xmm\n\t0x00,0x65,0x12,0x9E,0x6F,0xAD, // pcmpgtw mmx,[r/m]\n\t0x00,0x65,0x12,0xDE,0x6F,0xAD, // pcmpgtw mmx,mmx\n\t0x00,0xC5,0x93,0xBF,0xBF,0xAD, // pextrw reg,xmm,imm\n\t0x00,0xC5,0x92,0xDF,0xBF,0xAD, // pextrw reg,mmx,imm\n\t0x00,0xC4,0x93,0x7F,0x5F,0xAE, // pinsrw xmm,reg,imm\n\t0x00,0xC4,0x93,0x9F,0x5F,0xAE, // pinsrw xmm,[r/m],imm\n\t0x00,0xC4,0x92,0x7F,0x6F,0xAE, // pinsrw mmx,reg,imm\n\t0x00,0xC4,0x92,0x9F,0x6F,0xAE, // pinsrw mmx,[r/m],imm\n\t0x00,0xF5,0x13,0x9E,0xDF,0xAE, // pmaddwd xmm,[r/m]\n\t0x00,0xF5,0x13,0xBE,0xDF,0xAE, // pmaddwd xmm,xmm\n\t0x00,0xF5,0x12,0x9E,0xEF,0xAE, // pmaddwd mmx,[r/m]\n\t0x00,0xF5,0x12,0xDE,0xEF,0xAE, // pmaddwd mmx,mmx\n\t0x00,0xEE,0x13,0x9E,0x5F,0xAF, // pmaxsw xmm,[r/m]\n\t0x00,0xEE,0x13,0xBE,0x5F,0xAF, // pmaxsw xmm,xmm\n\t0x00,0xEE,0x12,0x9E,0x6F,0xAF, // pmaxsw mmx,[r/m]\n\t0x00,0xEE,0x12,0xDE,0x6F,0xAF, // pmaxsw mmx,mmx\n\t0x00,0xDE,0x13,0x9E,0xDF,0xAF, // pmaxub xmm,[r/m]\n\t0x00,0xDE,0x13,0xBE,0xDF,0xAF, // pmaxub xmm,xmm\n\t0x00,0xDE,0x12,0x9E,0xEF,0xAF, // pmaxub mmx,[r/m]\n\t0x00,0xDE,0x12,0xDE,0xEF,0xAF, // pmaxub mmx,mmx\n\t0x00,0xEA,0x13,0x9E,0x5F,0xB0, // pminsw xmm,[r/m]\n\t0x00,0xEA,0x13,0xBE,0x5F,0xB0, // pminsw xmm,xmm\n\t0x00,0xEA,0x12,0x9E,0x6F,0xB0, // pminsw mmx,[r/m]\n\t0x00,0xEA,0x12,0xDE,0x6F,0xB0, // pminsw mmx,mmx\n\t0x00,0xDA,0x13,0x9E,0xDF,0xB0, // pminub xmm,[r/m]\n\t0x00,0xDA,0x13,0xBE,0xDF,0xB0, // pminub xmm,xmm\n\t0x00,0xDA,0x12,0x9E,0xEF,0xB0, // pminub mmx,[r/m]\n\t0x00,0xDA,0x12,0xDE,0xEF,0xB0, // pminub mmx,mmx\n\t0x00,0xD7,0x13,0xBE,0x3F,0xB1, // pmovmskb reg,xmm\n\t0x00,0xD7,0x12,0xDE,0x3F,0xB1, // pmovmskb reg,mmx\n\t0x00,0xE4,0x13,0x9E,0xDF,0xB1, // pmulhuw xmm,[r/m]\n\t0x00,0xE4,0x13,0xBE,0xDF,0xB1, // pmulhuw xmm,xmm\n\t0x00,0xE4,0x12,0x9E,0xEF,0xB1, // pmulhuw mmx,[r/m]\n\t0x00,0xE4,0x12,0xDE,0xEF,0xB1, // pmulhuw mmx,mmx\n\t0x00,0xE5,0x13,0x9E,0x5F,0xB2, // pmulhw xmm,[r/m]\n\t0x00,0xE5,0x13,0xBE,0x5F,0xB2, // pmulhw xmm,xmm\n\t0x00,0xE5,0x12,0x9E,0x6F,0xB2, // pmulhw mmx,[r/m]\n\t0x00,0xE5,0x12,0xDE,0x6F,0xB2, // pmulhw mmx,mmx\n\t0x00,0xD5,0x13,0x9E,0xDF,0xB2, // pmullw xmm,[r/m]\n\t0x00,0xD5,0x13,0xBE,0xDF,0xB2, // pmullw xmm,xmm\n\t0x00,0xD5,0x12,0x9E,0xEF,0xB2, // pmullw mmx,[r/m]\n\t0x00,0xD5,0x12,0xDE,0xEF,0xB2, // pmullw mmx,mmx\n\t0x00,0xF4,0x13,0x9E,0x5F,0xB3, // pmuludq xmm,[r/m]\n\t0x00,0xF4,0x13,0xBE,0x5F,0xB3, // pmuludq xmm,xmm\n\t0x00,0xF4,0x12,0x9E,0x6F,0xB3, // pmuludq mmx,[r/m]\n\t0x00,0xF4,0x12,0xDE,0x6F,0xB3, // pmuludq mmx,mmx\n\t0x00,0x58,0x20,0xFE,0xAF,0xB3, // pop reg64\n\t0x00,0x8F,0x34,0xFE,0xCF,0xB3, // pop [r/m]\n\t0xF3,0xB8,0x13,0x7E,0x3F,0xB4, // popcnt reg,reg\n\t0xF3,0xB8,0x13,0x9E,0x3F,0xB4, // popcnt reg,[r/m]\n\t0x00,0x9D,0x00,0xFE,0xFF,0xB4, // popf\n\t0x00,0x9D,0x00,0xFE,0x7F,0xB5, // popfq\n\t0x00,0xEB,0x13,0x9E,0xDF,0xB5, // por xmm,[r/m]\n\t0x00,0xEB,0x13,0xBE,0xDF,0xB5, // por xmm,xmm\n\t0x00,0xEB,0x12,0x9E,0xEF,0xB5, // por mmx,[r/m]\n\t0x00,0xEB,0x12,0xDE,0xEF,0xB5, // por mmx,mmx\n\t0x00,0xF6,0x13,0x9E,0x5F,0xB6, // psadbw xmm,[r/m]\n\t0x00,0xF6,0x13,0xBE,0x5F,0xB6, // psadbw xmm,xmm\n\t0x00,0xF6,0x12,0x9E,0x6F,0xB6, // psadbw mmx,[r/m]\n\t0x00,0xF6,0x12,0xDE,0x6F,0xB6, // psadbw mmx,mmx\n\t0x00,0x70,0x93,0x9F,0xDF,0xB6, // pshufd xmm,[r/m],imm\n\t0x00,0x70,0x93,0xBF,0xDF,0xB6, // pshufd xmm,xmm,imm\n\t0xF3,0x70,0x93,0x9F,0x5F,0xB7, // pshufhw xmm,[r/m],imm\n\t0xF3,0x70,0x93,0xBF,0x5F,0xB7, // pshufhw xmm,xmm,imm\n\t0xF2,0x70,0x93,0x9F,0xDF,0xB7, // pshuflw xmm,[r/m],imm\n\t0xF2,0x70,0x93,0xBF,0xDF,0xB7, // pshuflw xmm,xmm,imm\n\t0x00,0x70,0x92,0x9F,0x6F,0xB8, // pshufw mmx,[r/m],imm\n\t0x00,0x70,0x92,0xDF,0x6F,0xB8, // pshufw mmx,mmx,imm\n\t0x00,0xF2,0x13,0x9E,0xDF,0xB8, // pslld xmm,[r/m]\n\t0x00,0xF2,0x13,0xBE,0xDF,0xB8, // pslld xmm,xmm\n\t0x30,0x72,0xB3,0xFD,0xDF,0xB8, // pslld xmm,imm\n\t0x00,0xF2,0x12,0x9E,0xEF,0xB8, // pslld mmx,[r/m]\n\t0x00,0xF2,0x12,0xDE,0xEF,0xB8, // pslld mmx,mmx\n\t0x30,0x72,0xB2,0xFD,0xEF,0xB8, // pslld mmx,imm\n\t0x38,0x73,0xB3,0xFD,0x5F,0xB9, // pslldq xmm,imm\n\t0x00,0xF3,0x13,0x9E,0xDF,0xB9, // psllq xmm,[r/m]\n\t0x00,0xF3,0x13,0xBE,0xDF,0xB9, // psllq xmm,xmm\n\t0x30,0x73,0xB3,0xFD,0xDF,0xB9, // psllq xmm,imm\n\t0x00,0xF3,0x12,0x9E,0xEF,0xB9, // psllq mmx,[r/m]\n\t0x00,0xF3,0x12,0xDE,0xEF,0xB9, // psllq mmx,mmx\n\t0x30,0x73,0xB2,0xFD,0xEF,0xB9, // psllq mmx,imm\n\t0x00,0xF1,0x13,0x9E,0x5F,0xBA, // psllw xmm,[r/m]\n\t0x00,0xF1,0x13,0xBE,0x5F,0xBA, // psllw xmm,xmm\n\t0x30,0x71,0xB3,0xFD,0x5F,0xBA, // psllw xmm,imm\n\t0x00,0xF1,0x12,0x9E,0x6F,0xBA, // psllw mmx,[r/m]\n\t0x00,0xF1,0x12,0xDE,0x6F,0xBA, // psllw mmx,mmx\n\t0x30,0x71,0xB2,0xFD,0x6F,0xBA, // psllw mmx,imm\n\t0x00,0xE2,0x13,0x9E,0xDF,0xBA, // psrad xmm,[r/m]\n\t0x00,0xE2,0x13,0xBE,0xDF,0xBA, // psrad xmm,xmm\n\t0x20,0x72,0xB3,0xFD,0xDF,0xBA, // psrad xmm,imm\n\t0x00,0xE2,0x12,0x9E,0xEF,0xBA, // psrad mmx,[r/m]\n\t0x00,0xE2,0x12,0xDE,0xEF,0xBA, // psrad mmx,mmx\n\t0x20,0x72,0xB2,0xFD,0xEF,0xBA, // psrad mmx,imm\n\t0x00,0xE1,0x13,0x9E,0x5F,0xBB, // psraw xmm,[r/m]\n\t0x00,0xE1,0x13,0xBE,0x5F,0xBB, // psraw xmm,xmm\n\t0x20,0x71,0xB3,0xFD,0x5F,0xBB, // psraw xmm,imm\n\t0x00,0xE1,0x12,0x9E,0x6F,0xBB, // psraw mmx,[r/m]\n\t0x00,0xE1,0x12,0xDE,0x6F,0xBB, // psraw mmx,mmx\n\t0x20,0x71,0xB2,0xFD,0x6F,0xBB, // psraw mmx,imm\n\t0x00,0xD2,0x13,0x9E,0xDF,0xBB, // psrld xmm,[r/m]\n\t0x00,0xD2,0x13,0xBE,0xDF,0xBB, // psrld xmm,xmm\n\t0x10,0x72,0xB3,0xFD,0xDF,0xBB, // psrld xmm,imm\n\t0x00,0xD2,0x12,0x9E,0xEF,0xBB, // psrld mmx,[r/m]\n\t0x00,0xD2,0x12,0xDE,0xEF,0xBB, // psrld mmx,mmx\n\t0x10,0x72,0xB2,0xFD,0xEF,0xBB, // psrld mmx,imm\n\t0x18,0x73,0xB3,0xFD,0x5F,0xBC, // psrldq xmm,imm\n\t0x00,0xD3,0x13,0x9E,0xDF,0xBC, // psrlq xmm,[r/m]\n\t0x00,0xD3,0x13,0xBE,0xDF,0xBC, // psrlq xmm,xmm\n\t0x10,0x73,0xB3,0xFD,0xDF,0xBC, // psrlq xmm,imm\n\t0x00,0xD3,0x12,0x9E,0xEF,0xBC, // psrlq mmx,[r/m]\n\t0x00,0xD3,0x12,0xDE,0xEF,0xBC, // psrlq mmx,mmx\n\t0x10,0x73,0xB2,0xFD,0xEF,0xBC, // psrlq mmx,imm\n\t0x00,0xD1,0x13,0x9E,0x5F,0xBD, // psrlw xmm,[r/m]\n\t0x00,0xD1,0x13,0xBE,0x5F,0xBD, // psrlw xmm,xmm\n\t0x10,0x71,0xB3,0xFD,0x5F,0xBD, // psrlw xmm,imm\n\t0x00,0xD1,0x12,0x9E,0x6F,0xBD, // psrlw mmx,[r/m]\n\t0x00,0xD1,0x12,0xDE,0x6F,0xBD, // psrlw mmx,mmx\n\t0x10,0x71,0xB2,0xFD,0x6F,0xBD, // psrlw mmx,imm\n\t0x00,0xF8,0x13,0x9E,0xDF,0xBD, // psubb xmm,[r/m]\n\t0x00,0xF8,0x13,0xBE,0xDF,0xBD, // psubb xmm,xmm\n\t0x00,0xF8,0x12,0x9E,0xEF,0xBD, // psubb mmx,[r/m]\n\t0x00,0xF8,0x12,0xDE,0xEF,0xBD, // psubb mmx,mmx\n\t0x00,0xFA,0x13,0x9E,0x5F,0xBE, // psubd xmm,[r/m]\n\t0x00,0xFA,0x13,0xBE,0x5F,0xBE, // psubd xmm,xmm\n\t0x00,0xFA,0x12,0x9E,0x6F,0xBE, // psubd mmx,[r/m]\n\t0x00,0xFA,0x12,0xDE,0x6F,0xBE, // psubd mmx,mmx\n\t0x00,0xFB,0x13,0x9E,0xDF,0xBE, // psubq xmm,[r/m]\n\t0x00,0xFB,0x13,0xBE,0xDF,0xBE, // psubq xmm,xmm\n\t0x00,0xFB,0x12,0x9E,0xEF,0xBE, // psubq mmx,[r/m]\n\t0x00,0xFB,0x12,0xDE,0xEF,0xBE, // psubq mmx,mmx\n\t0x00,0xE8,0x13,0x9E,0x5F,0xBF, // psubsb xmm,[r/m]\n\t0x00,0xE8,0x13,0xBE,0x5F,0xBF, // psubsb xmm,xmm\n\t0x00,0xE8,0x12,0x9E,0x6F,0xBF, // psubsb mmx,[r/m]\n\t0x00,0xE8,0x12,0xDE,0x6F,0xBF, // psubsb mmx,mmx\n\t0x00,0xE9,0x13,0x9E,0xDF,0xBF, // psubsw xmm,[r/m]\n\t0x00,0xE9,0x13,0xBE,0xDF,0xBF, // psubsw xmm,xmm\n\t0x00,0xE9,0x12,0x9E,0xEF,0xBF, // psubsw mmx,[r/m]\n\t0x00,0xE9,0x12,0xDE,0xEF,0xBF, // psubsw mmx,mmx\n\t0x00,0xD8,0x13,0x9E,0x5F,0xC0, // psubusb xmm,[r/m]\n\t0x00,0xD8,0x13,0xBE,0x5F,0xC0, // psubusb xmm,xmm\n\t0x00,0xD8,0x12,0x9E,0x6F,0xC0, // psubusb mmx,[r/m]\n\t0x00,0xD8,0x12,0xDE,0x6F,0xC0, // psubusb mmx,mmx\n\t0x00,0xD9,0x13,0x9E,0xDF,0xC0, // psubusw xmm,[r/m]\n\t0x00,0xD9,0x13,0xBE,0xDF,0xC0, // psubusw xmm,xmm\n\t0x00,0xD9,0x12,0x9E,0xEF,0xC0, // psubusw mmx,[r/m]\n\t0x00,0xD9,0x12,0xDE,0xEF,0xC0, // psubusw mmx,mmx\n\t0x00,0xF9,0x13,0x9E,0x5F,0xC1, // psubw xmm,[r/m]\n\t0x00,0xF9,0x13,0xBE,0x5F,0xC1, // psubw xmm,xmm\n\t0x00,0xF9,0x12,0x9E,0x6F,0xC1, // psubw mmx,[r/m]\n\t0x00,0xF9,0x12,0xDE,0x6F,0xC1, // psubw mmx,mmx\n\t0x00,0x68,0x13,0x9E,0xDF,0xC1, // punpckhbw xmm,[r/m]\n\t0x00,0x68,0x13,0xBE,0xDF,0xC1, // punpckhbw xmm,xmm\n\t0x00,0x68,0x12,0x9E,0xEF,0xC1, // punpckhbw mmx,[r/m]\n\t0x00,0x68,0x12,0xDE,0xEF,0xC1, // punpckhbw mmx,mmx\n\t0x00,0x6A,0x13,0x9E,0x5F,0xC2, // punpckhdq xmm,[r/m]\n\t0x00,0x6A,0x13,0xBE,0x5F,0xC2, // punpckhdq xmm,xmm\n\t0x00,0x6A,0x12,0x9E,0x6F,0xC2, // punpckhdq mmx,[r/m]\n\t0x00,0x6A,0x12,0xDE,0x6F,0xC2, // punpckhdq mmx,mmx\n\t0x00,0x6D,0x13,0x9E,0xDF,0xC2, // punpckhqdq xmm,[r/m]\n\t0x00,0x6D,0x13,0xBE,0xDF,0xC2, // punpckhqdq xmm,xmm\n\t0x00,0x69,0x13,0x9E,0x5F,0xC3, // punpckhwd xmm,[r/m]\n\t0x00,0x69,0x13,0xBE,0x5F,0xC3, // punpckhwd xmm,xmm\n\t0x00,0x69,0x12,0x9E,0x6F,0xC3, // punpckhwd mmx,[r/m]\n\t0x00,0x69,0x12,0xDE,0x6F,0xC3, // punpckhwd mmx,mmx\n\t0x00,0x60,0x13,0x9E,0xDF,0xC3, // punpcklbw xmm,[r/m]\n\t0x00,0x60,0x13,0xBE,0xDF,0xC3, // punpcklbw xmm,xmm\n\t0x00,0x60,0x12,0x9E,0xEF,0xC3, // punpcklbw mmx,[r/m]\n\t0x00,0x60,0x12,0xDE,0xEF,0xC3, // punpcklbw mmx,mmx\n\t0x00,0x62,0x13,0x9E,0x5F,0xC4, // punpckldq xmm,[r/m]\n\t0x00,0x62,0x13,0xBE,0x5F,0xC4, // punpckldq xmm,xmm\n\t0x00,0x62,0x12,0x9E,0x6F,0xC4, // punpckldq mmx,[r/m]\n\t0x00,0x62,0x12,0xDE,0x6F,0xC4, // punpckldq mmx,mmx\n\t0x00,0x6C,0x13,0x9E,0xDF,0xC4, // punpcklqdq xmm,[r/m]\n\t0x00,0x6C,0x13,0xBE,0xDF,0xC4, // punpcklqdq xmm,xmm\n\t0x00,0x61,0x13,0x9E,0x5F,0xC5, // punpcklwd xmm,[r/m]\n\t0x00,0x61,0x13,0xBE,0x5F,0xC5, // punpcklwd xmm,xmm\n\t0x00,0x61,0x12,0x9E,0x6F,0xC5, // punpcklwd mmx,[r/m]\n\t0x00,0x61,0x12,0xDE,0x6F,0xC5, // punpcklwd mmx,mmx\n\t0x00,0x50,0x20,0xFE,0xAF,0xC5, // push reg64\n\t0x30,0xFF,0x30,0xFE,0xCF,0xC5, // push [r/m]\n\t0x00,0x68,0xC8,0xFF,0xFE,0xC5, // push imm\n\t0x00,0x9C,0x00,0xFE,0x7F,0xC6, // pushf\n\t0x00,0x9C,0x00,0xFE,0xFF,0xC6, // pushfq\n\t0x00,0xEF,0x13,0x9E,0x5F,0xC7, // pxor xmm,[r/m]\n\t0x00,0xEF,0x13,0xBE,0x5F,0xC7, // pxor xmm,xmm\n\t0x00,0xEF,0x12,0x9E,0x6F,0xC7, // pxor mmx,[r/m]\n\t0x00,0xEF,0x12,0xDE,0x6F,0xC7, // pxor mmx,mmx\n\t0x10,0xD3,0x34,0x02,0xBF,0xC7, // rcl reg,cl\n\t0x10,0xC1,0xB4,0xFD,0xBF,0xC7, // rcl reg,imm\n\t0x10,0xD3,0x34,0x02,0xCF,0xC7, // rcl [r/m],cl\n\t0x10,0xC1,0xB4,0xFD,0xCF,0xC7, // rcl [r/m],imm\n\t0x00,0x53,0x12,0x9E,0x5F,0xC8, // rcpps xmm,[r/m]\n\t0x00,0x53,0x12,0xBE,0x5F,0xC8, // rcpps xmm,xmm\n\t0xF3,0x53,0x13,0x9E,0xDF,0xC8, // rcpss xmm,[r/m]\n\t0xF3,0x53,0x13,0xBE,0xDF,0xC8, // rcpss xmm,xmm\n\t0x18,0xD3,0x34,0x02,0x3F,0xC9, // rcr reg,cl\n\t0x18,0xC1,0xB4,0xFD,0x3F,0xC9, // rcr reg,imm\n\t0x18,0xD3,0x34,0x02,0x4F,0xC9, // rcr [r/m],cl\n\t0x18,0xC1,0xB4,0xFD,0x4F,0xC9, // rcr [r/m],imm\n\t0x00,0x33,0x02,0xFE,0xFF,0xC9, // rdpmc\n\t0x00,0x31,0x02,0xFE,0x7F,0xCA, // rdtsc\n\t0xF9,0x01,0x02,0xFE,0xFF,0xCA, // rdtscp\n\t0x00,0xF3,0x00,0xFE,0x7F,0xCB, // rep\n\t0x00,0xF3,0x00,0xFE,0xFF,0xCB, // repe\n\t0x00,0xF2,0x00,0xFE,0x7F,0xCC, // repne\n\t0x00,0xF2,0x00,0xFE,0xFF,0xCC, // repnz\n\t0x00,0xF3,0x00,0xFE,0x7F,0xCD, // repz\n\t0x00,0xC2,0x80,0xFE,0xFE,0xCD, // ret imm\n\t0x00,0xC3,0x00,0xFE,0xFF,0xCD, // ret\n\t0x00,0xCA,0x80,0xFE,0x7E,0xCE, // retf imm\n\t0x00,0xCB,0x00,0xFE,0x7F,0xCE, // retf\n\t0x00,0xC2,0x80,0xFE,0xFE,0xCE, // retn imm\n\t0x00,0xC3,0x00,0xFE,0xFF,0xCE, // retn\n\t0x00,0xD3,0x34,0x02,0x3F,0xCF, // rol reg,cl\n\t0x00,0xC1,0xB4,0xFD,0x3F,0xCF, // rol reg,imm\n\t0x00,0xD3,0x34,0x02,0x4F,0xCF, // rol [r/m],cl\n\t0x00,0xC1,0xB4,0xFD,0x4F,0xCF, // rol [r/m],imm\n\t0x08,0xD3,0x34,0x02,0xBF,0xCF, // ror reg,cl\n\t0x08,0xC1,0xB4,0xFD,0xBF,0xCF, // ror reg,imm\n\t0x08,0xD3,0x34,0x02,0xCF,0xCF, // ror [r/m],cl\n\t0x08,0xC1,0xB4,0xFD,0xCF,0xCF, // ror [r/m],imm\n\t0x00,0x52,0x12,0x9E,0x5F,0xD0, // rsqrtps xmm,[r/m]\n\t0x00,0x52,0x12,0xBE,0x5F,0xD0, // rsqrtps xmm,xmm\n\t0xF3,0x52,0x13,0x9E,0xDF,0xD0, // rsqrtss xmm,[r/m]\n\t0xF3,0x52,0x13,0xBE,0xDF,0xD0, // rsqrtss xmm,xmm\n\t0x00,0x9E,0x00,0xFE,0x7F,0xD1, // sahf\n\t0x20,0xD3,0x34,0x02,0xBF,0xD1, // sal reg,cl\n\t0x20,0xC1,0xB4,0xFD,0xBF,0xD1, // sal reg,imm\n\t0x20,0xD3,0x34,0x02,0xCF,0xD1, // sal [r/m],cl\n\t0x20,0xC1,0xB4,0xFD,0xCF,0xD1, // sal [r/m],imm\n\t0x38,0xD3,0x34,0x02,0x3F,0xD2, // sar reg,cl\n\t0x38,0xC1,0xB4,0xFD,0x3F,0xD2, // sar reg,imm\n\t0x38,0xD3,0x34,0x02,0x4F,0xD2, // sar [r/m],cl\n\t0x38,0xC1,0xB4,0xFD,0x4F,0xD2, // sar [r/m],imm\n\t0x00,0x1D,0xC4,0xFD,0xB0,0xD2, // sbb rax,imm\n\t0x00,0x19,0x34,0x7E,0xBF,0xD2, // sbb reg,reg\n\t0x00,0x1B,0x14,0x9E,0xBF,0xD2, // sbb reg,[r/m]\n\t0x18,0x81,0xFC,0xFD,0xBF,0xD2, // sbb reg,imm\n\t0x00,0x19,0x34,0x7E,0xCF,0xD2, // sbb [r/m],reg\n\t0x18,0x81,0xFC,0xFD,0xCF,0xD2, // sbb [r/m],imm\n\t0x00,0xAE,0x04,0xFE,0x7F,0xD3, // scasb\n\t0x00,0xAF,0x00,0xFE,0xFF,0xD3, // scasd\n\t0x48,0xAF,0x01,0xFE,0x7F,0xD4, // scasq\n\t0x00,0xAF,0x01,0xFE,0xFF,0xD4, // scasw\n\t0x00,0x97,0x32,0xFE,0x0F,0xD5, // seta reg8\n\t0x00,0x97,0x32,0xFE,0x4F,0xD5, // seta [r/m]\n\t0x00,0x93,0x32,0xFE,0x8F,0xD5, // setae reg8\n\t0x00,0x93,0x32,0xFE,0xCF,0xD5, // setae [r/m]\n\t0x00,0x92,0x32,0xFE,0x0F,0xD6, // setb reg8\n\t0x00,0x92,0x32,0xFE,0x4F,0xD6, // setb [r/m]\n\t0x00,0x96,0x32,0xFE,0x8F,0xD6, // setbe reg8\n\t0x00,0x96,0x32,0xFE,0xCF,0xD6, // setbe [r/m]\n\t0x00,0x92,0x32,0xFE,0x0F,0xD7, // setc reg8\n\t0x00,0x92,0x32,0xFE,0x4F,0xD7, // setc [r/m]\n\t0x00,0x94,0x32,0xFE,0x8F,0xD7, // sete reg8\n\t0x00,0x94,0x32,0xFE,0xCF,0xD7, // sete [r/m]\n\t0x00,0x9F,0x32,0xFE,0x0F,0xD8, // setg reg8\n\t0x00,0x9F,0x32,0xFE,0x4F,0xD8, // setg [r/m]\n\t0x00,0x9D,0x32,0xFE,0x8F,0xD8, // setge reg8\n\t0x00,0x9D,0x32,0xFE,0xCF,0xD8, // setge [r/m]\n\t0x00,0x9C,0x32,0xFE,0x0F,0xD9, // setl reg8\n\t0x00,0x9C,0x32,0xFE,0x4F,0xD9, // setl [r/m]\n\t0x00,0x9E,0x32,0xFE,0x8F,0xD9, // setle reg8\n\t0x00,0x9E,0x32,0xFE,0xCF,0xD9, // setle [r/m]\n\t0x00,0x96,0x32,0xFE,0x0F,0xDA, // setna reg8\n\t0x00,0x96,0x32,0xFE,0x4F,0xDA, // setna [r/m]\n\t0x00,0x92,0x32,0xFE,0x8F,0xDA, // setnae reg8\n\t0x00,0x92,0x32,0xFE,0xCF,0xDA, // setnae [r/m]\n\t0x00,0x93,0x32,0xFE,0x0F,0xDB, // setnb reg8\n\t0x00,0x93,0x32,0xFE,0x4F,0xDB, // setnb [r/m]\n\t0x00,0x97,0x32,0xFE,0x8F,0xDB, // setnbe reg8\n\t0x00,0x97,0x32,0xFE,0xCF,0xDB, // setnbe [r/m]\n\t0x00,0x93,0x32,0xFE,0x0F,0xDC, // setnc reg8\n\t0x00,0x93,0x32,0xFE,0x4F,0xDC, // setnc [r/m]\n\t0x00,0x95,0x32,0xFE,0x8F,0xDC, // setne reg8\n\t0x00,0x95,0x32,0xFE,0xCF,0xDC, // setne [r/m]\n\t0x00,0x9E,0x32,0xFE,0x0F,0xDD, // setng reg8\n\t0x00,0x9E,0x32,0xFE,0x4F,0xDD, // setng [r/m]\n\t0x00,0x9C,0x32,0xFE,0x8F,0xDD, // setnge reg8\n\t0x00,0x9C,0x32,0xFE,0xCF,0xDD, // setnge [r/m]\n\t0x00,0x9D,0x32,0xFE,0x0F,0xDE, // setnl reg8\n\t0x00,0x9D,0x32,0xFE,0x4F,0xDE, // setnl [r/m]\n\t0x00,0x9F,0x32,0xFE,0x8F,0xDE, // setnle reg8\n\t0x00,0x9F,0x32,0xFE,0xCF,0xDE, // setnle [r/m]\n\t0x00,0x91,0x32,0xFE,0x0F,0xDF, // setno reg8\n\t0x00,0x91,0x32,0xFE,0x4F,0xDF, // setno [r/m]\n\t0x00,0x9B,0x32,0xFE,0x8F,0xDF, // setnp reg8\n\t0x00,0x9B,0x32,0xFE,0xCF,0xDF, // setnp [r/m]\n\t0x00,0x99,0x32,0xFE,0x0F,0xE0, // setns reg8\n\t0x00,0x99,0x32,0xFE,0x4F,0xE0, // setns [r/m]\n\t0x00,0x95,0x32,0xFE,0x8F,0xE0, // setnz reg8\n\t0x00,0x95,0x32,0xFE,0xCF,0xE0, // setnz [r/m]\n\t0x00,0x90,0x32,0xFE,0x0F,0xE1, // seto reg8\n\t0x00,0x90,0x32,0xFE,0x4F,0xE1, // seto [r/m]\n\t0x00,0x9A,0x32,0xFE,0x8F,0xE1, // setp reg8\n\t0x00,0x9A,0x32,0xFE,0xCF,0xE1, // setp [r/m]\n\t0x00,0x9A,0x32,0xFE,0x0F,0xE2, // setpe reg8\n\t0x00,0x9A,0x32,0xFE,0x4F,0xE2, // setpe [r/m]\n\t0x00,0x9B,0x32,0xFE,0x8F,0xE2, // setpo reg8\n\t0x00,0x9B,0x32,0xFE,0xCF,0xE2, // setpo [r/m]\n\t0x00,0x98,0x32,0xFE,0x0F,0xE3, // sets reg8\n\t0x00,0x98,0x32,0xFE,0x4F,0xE3, // sets [r/m]\n\t0x00,0x94,0x32,0xFE,0x8F,0xE3, // setz reg8\n\t0x00,0x94,0x32,0xFE,0xCF,0xE3, // setz [r/m]\n\t0xF8,0xAE,0x02,0xFE,0x7F,0xE4, // sfence\n\t0x00,0x01,0x32,0xFE,0xCF,0xE4, // sgdt [r/m]\n\t0x20,0xD3,0x34,0x02,0x3F,0xE5, // shl reg,cl\n\t0x20,0xC1,0xB4,0xFD,0x3F,0xE5, // shl reg,imm\n\t0x20,0xD3,0x34,0x02,0x4F,0xE5, // shl [r/m],cl\n\t0x20,0xC1,0xB4,0xFD,0x4F,0xE5, // shl [r/m],imm\n\t0x00,0xA5,0x32,0x7E,0xBF,0xE5, // shld reg,reg,cl\n\t0x00,0xA4,0xB2,0x7F,0xBF,0xE5, // shld reg,reg,imm\n\t0x00,0xA5,0x32,0x7E,0xCF,0xE5, // shld [r/m],reg,cl\n\t0x00,0xA4,0xB2,0x7F,0xCF,0xE5, // shld [r/m],reg,imm\n\t0x28,0xD3,0x34,0x02,0x3F,0xE6, // shr reg,cl\n\t0x28,0xC1,0xB4,0xFD,0x3F,0xE6, // shr reg,imm\n\t0x28,0xD3,0x34,0x02,0x4F,0xE6, // shr [r/m],cl\n\t0x28,0xC1,0xB4,0xFD,0x4F,0xE6, // shr [r/m],imm\n\t0x00,0xAD,0x32,0x7E,0xBF,0xE6, // shrd reg,reg,cl\n\t0x00,0xAC,0xB2,0x7F,0xBF,0xE6, // shrd reg,reg,imm\n\t0x00,0xAD,0x32,0x7E,0xCF,0xE6, // shrd [r/m],reg,cl\n\t0x00,0xAC,0xB2,0x7F,0xCF,0xE6, // shrd [r/m],reg,imm\n\t0x00,0xC6,0x93,0x9F,0x5F,0xE7, // shufpd xmm,[r/m],imm\n\t0x00,0xC6,0x93,0xBF,0x5F,0xE7, // shufpd xmm,xmm,imm\n\t0x00,0xC6,0x92,0x9F,0xDF,0xE7, // shufps xmm,[r/m],imm\n\t0x00,0xC6,0x92,0xBF,0xDF,0xE7, // shufps xmm,xmm,imm\n\t0x20,0x01,0x32,0xFE,0x3F,0xE8, // smsw reg\n\t0x20,0x01,0x32,0xFE,0x4F,0xE8, // smsw [r/m]\n\t0x00,0x51,0x13,0x9E,0xDF,0xE8, // sqrtpd xmm,[r/m]\n\t0x00,0x51,0x13,0xBE,0xDF,0xE8, // sqrtpd xmm,xmm\n\t0x00,0x51,0x12,0x9E,0x5F,0xE9, // sqrtps xmm,[r/m]\n\t0x00,0x51,0x12,0xBE,0x5F,0xE9, // sqrtps xmm,xmm\n\t0xF2,0x51,0x13,0x9E,0xDF,0xE9, // sqrtsd xmm,[r/m]\n\t0xF2,0x51,0x13,0xBE,0xDF,0xE9, // sqrtsd xmm,xmm\n\t0xF3,0x51,0x13,0x9E,0x5F,0xEA, // sqrtss xmm,[r/m]\n\t0xF3,0x51,0x13,0xBE,0x5F,0xEA, // sqrtss xmm,xmm\n\t0x00,0xF9,0x00,0xFE,0xFF,0xEA, // stc\n\t0x00,0xFD,0x00,0xFE,0x7F,0xEB, // std\n\t0x00,0xFB,0x00,0xFE,0xFF,0xEB, // sti\n\t0x18,0xAE,0x32,0xFE,0x4F,0xEC, // stmxcsr [r/m]\n\t0x00,0xAA,0x04,0xFE,0xFF,0xEC, // stosb\n\t0x00,0xAB,0x00,0xFE,0x7F,0xED, // stosd\n\t0x48,0xAB,0x01,0xFE,0xFF,0xED, // stosq\n\t0x00,0xAB,0x01,0xFE,0x7F,0xEE, // stosw\n\t0x00,0x2D,0xC4,0xFD,0xB0,0xEE, // sub rax,imm\n\t0x00,0x29,0x34,0x7E,0xBF,0xEE, // sub reg,reg\n\t0x00,0x2B,0x14,0x9E,0xBF,0xEE, // sub reg,[r/m]\n\t0x28,0x81,0xFC,0xFD,0xBF,0xEE, // sub reg,imm\n\t0x00,0x29,0x34,0x7E,0xCF,0xEE, // sub [r/m],reg\n\t0x28,0x81,0xFC,0xFD,0xCF,0xEE, // sub [r/m],imm\n\t0x00,0x5C,0x13,0x9E,0x5F,0xEF, // subpd xmm,[r/m]\n\t0x00,0x5C,0x13,0xBE,0x5F,0xEF, // subpd xmm,xmm\n\t0x00,0x5C,0x12,0x9E,0xDF,0xEF, // subps xmm,[r/m]\n\t0x00,0x5C,0x12,0xBE,0xDF,0xEF, // subps xmm,xmm\n\t0xF2,0x5C,0x13,0x9E,0x5F,0xF0, // subsd xmm,[r/m]\n\t0xF2,0x5C,0x13,0xBE,0x5F,0xF0, // subsd xmm,xmm\n\t0xF3,0x5C,0x13,0x9E,0xDF,0xF0, // subss xmm,[r/m]\n\t0xF3,0x5C,0x13,0xBE,0xDF,0xF0, // subss xmm,xmm\n\t0x00,0xA9,0xC4,0xFD,0x30,0xF1, // test rax,imm\n\t0x00,0x85,0x34,0x7E,0x3F,0xF1, // test reg,reg\n\t0x00,0xF7,0xF4,0xFD,0x3F,0xF1, // test reg,imm\n\t0x00,0x85,0x34,0x7E,0x4F,0xF1, // test [r/m],reg\n\t0x00,0xF7,0xF4,0xFD,0x4F,0xF1, // test [r/m],imm\n\t0x00,0x2E,0x13,0x9E,0xDF,0xF1, // ucomisd xmm,[r/m]\n\t0x00,0x2E,0x13,0xBE,0xDF,0xF1, // ucomisd xmm,xmm\n\t0x00,0x2E,0x12,0x9E,0x5F,0xF2, // ucomiss xmm,[r/m]\n\t0x00,0x2E,0x12,0xBE,0x5F,0xF2, // ucomiss xmm,xmm\n\t0x00,0x15,0x13,0x9E,0xDF,0xF2, // unpckhpd xmm,[r/m]\n\t0x00,0x15,0x13,0xBE,0xDF,0xF2, // unpckhpd xmm,xmm\n\t0x00,0x15,0x12,0x9E,0x5F,0xF3, // unpckhps xmm,[r/m]\n\t0x00,0x15,0x12,0xBE,0x5F,0xF3, // unpckhps xmm,xmm\n\t0x00,0x14,0x13,0x9E,0xDF,0xF3, // unpcklpd xmm,[r/m]\n\t0x00,0x14,0x13,0xBE,0xDF,0xF3, // unpcklpd xmm,xmm\n\t0x00,0x14,0x12,0x9E,0x5F,0xF4, // unpcklps xmm,[r/m]\n\t0x00,0x14,0x12,0xBE,0x5F,0xF4, // unpcklps xmm,xmm\n\t0x20,0x00,0x32,0xFE,0x9F,0xF4, // verr reg16\n\t0x20,0x00,0x32,0xFE,0xCF,0xF4, // verr [r/m]\n\t0x28,0x00,0x32,0xFE,0x1F,0xF5, // verw reg16\n\t0x28,0x00,0x32,0xFE,0x4F,0xF5, // verw [r/m]\n\t0x00,0x9B,0x00,0xFE,0xFF,0xF5, // wait\n\t0x00,0xC1,0x36,0x7E,0x3F,0xF6, // xadd reg,reg\n\t0x00,0xC1,0x36,0x7E,0x4F,0xF6, // xadd [r/m],reg\n\t0x00,0x87,0x14,0x7E,0xBF,0xF6, // xchg reg,reg\n\t0x00,0x87,0x14,0x9E,0xBF,0xF6, // xchg reg,[r/m]\n\t0x00,0x87,0x34,0x7E,0xCF,0xF6, // xchg [r/m],reg\n\t0x00,0xD7,0x00,0xFE,0x7F,0xF7, // xlatb\n\t0x00,0x35,0xC4,0xFD,0xB0,0xF7, // xor rax,imm\n\t0x00,0x31,0x34,0x7E,0xBF,0xF7, // xor reg,reg\n\t0x00,0x33,0x14,0x9E,0xBF,0xF7, // xor reg,[r/m]\n\t0x30,0x81,0xFC,0xFD,0xBF,0xF7, // xor reg,imm\n\t0x00,0x31,0x34,0x7E,0xCF,0xF7, // xor [r/m],reg\n\t0x30,0x81,0xFC,0xFD,0xCF,0xF7, // xor [r/m],imm\n\t0x00,0x57,0x13,0x9E,0x5F,0xF8, // xorpd xmm,[r/m]\n\t0x00,0x57,0x13,0xBE,0x5F,0xF8, // xorpd xmm,xmm\n\t0x00,0x57,0x12,0x9E,0xDF,0xF8, // xorps xmm,[r/m]\n\t0x00,0x57,0x12,0xBE,0xDF,0xF8, // xorps xmm,xmm\n\t0x28,0xAE,0x32,0xFE,0x4F,0xF9, // xrstor [r/m]\n\t0x20,0xAE,0x32,0xFE,0xCF,0xF9 } ; // xsave [r/m]\n\nstatic unsigned char segpfx[] = {0x26, 0x2E, 0x36, 0x3E, 0x64, 0x65} ;\n\nstatic char *oslist[] = {\n\t\t\"osrdch\", \"oswrch\", \"oskey\", \"osline\", \"oscli\", \"osopen\", \"osbyte\", \"osword\",\n\t\t\"osshut\", \"osbget\", \"osbput\", \"getptr\", \"setptr\", \"getext\" } ; \n\nstatic void *osfunc[] = {\n\t\tosrdch, oswrch, oskey, osline, oscli, osopen, osbyte, osword,\n\t\tosshut, osbget, osbput, getptr, setptr, getext } ;\n\n// String comparison (q is NUL-terminated):\nstatic int cmps (int n, char *p, char *q)\n{\n\tint c = strnicmp (p, q, n) ;\n\tif (c != 0)\n\t\treturn c ;\n\treturn -(n < strlen(q)) ;\n} \n\n// Scan for string in unordered table, e.g. operands[]\nstatic int scan (char **arr, int num)\n{\n\tint i, n = 0 ;\n\twhile (((*(esi + n) >= 'A') && (*(esi + n) != ']')) || ((*(esi + n) >= '0') && (*(esi + n) <= '9')))\n\t\tn++ ;\n\tif (n == 0)\n\t\treturn -1 ;\n\tfor (i = 0;  i < num;  i++)\n\t\tif (cmps (n, (char *)esi, *(arr + i)) == 0)\n\t\t\tbreak ; \n\tif (i >= num)\n\t\treturn -1 ; \n\tesi += n ; \n\treturn i ; \n}\n\n// Find string in ordered table, e.g. mnemonics[]:\nstatic int schop (char **arr, int num)\n{\n\tint b = 0, c = 0 , h = 1, n = 0 ;\n\twhile ((*(esi + n) >= 'A') || ((*(esi + n) >= '0') && (*(esi + n) <= '9')))\n\t\tn++ ; \n\twhile (h < num) { h *= 2 ; }\n\twhile (h)\n\t    {\n\t\tint i ;\n\t\th /= 2 ;\n\t\ti = b + h ;\n\t\tif (i < num)\n\t\t\tif ((c = cmps (n, (char *)esi, *(arr + i))) >= 0)\n\t\t\t\tb += h ;\n\t    }\n\tif (c != 0)\n\t\treturn -1 ;\n\tesi += n ;\n\treturn b ; \t\t\t\n}\n\n// Find 24-bit integer in ordered table, e.g. instructions[]\nstatic int nchop (unsigned char *arr, unsigned int v, int num)\n{\n\tint b = 0, h = 1 ;\n\twhile (h < num) { h *= 2 ; }\n\twhile (h)\n\t    {\n\t\tint i ;\n\t\th /= 2 ;\n\t\ti = b + h ;\n\t\tif (i < num)\n\t\t\tif (v >= (0xFFFFFF00 & *(unsigned int *)(arr + 6 * i)))\n\t\t\t\tb += h ;\n\t    }\n\tif (v != (0xFFFFFF00 & *(unsigned int *)(arr + 6 * b)))\n\t\treturn -1 ;\n\treturn b ; \t\t\t\n}\n\n// Lookup function address\nstatic void *function (char *addr, int len)\n{\n\tint i, n = sizeof(oslist) / sizeof(oslist[0]) ;\n\tfor (i = 0;  i < n;  i++)\n\t\tif (cmps (len, addr, *(oslist + i)) == 0)\n\t\t\tbreak ; \n\tif (i < n)\n\t\treturn *(osfunc + i) ;\n\n\t*(addr + len) = 0 ; // NUL-terminate (n.b. addr = accs)\n\treturn sysadr (addr) ;\n}\n\nstatic void tabit (int x)\n{\n\tif (vcount == x) \n\t\treturn ; \n\tif (vcount > x)\n\t\tcrlf () ; \n\tspaces (x - vcount) ; \n}\n\nstatic char *poke (void *p, int n) \n{\n\tchar *d ;\n\tint tmp ;\n\n\td = PC ;\n\tstavar[16] += n ;\n\ttmp = stavar[16] ;\n\tif (liston & BIT6)\n\t    {\n\t\td = OC ;\n\t\tstavar[15] += n ;\n\t\ttmp = stavar[15] ;\n\t    }\n\n\tif ((d < (char *) 0x10000) || ((liston & BIT7) && (tmp >= stavar[12])))\n\t\terror (8, NULL) ; // 'Address out of range'\n\n\tmemcpy (d, p, n) ;\n\treturn d ;\n}\n\n// Process 64-bit indexed operands: [reg{*n} {+{n*}reg{*n}} {+disp}]\nstatic long long sibeval(int type, int *pdis)\n{\n\tchar c ;\n\tint p = 1 ;\n\tlong long sibinfo = 0 ;\n\n\twhile (1)\n\t    {\n\t\ttype &= 15 ;\n\t\tc = nxt () ;\n\t\tif (c == '*')\n\t\t    {\n\t\t\tesi++ ;\n\t\t\tc = nxt () ;\n\t\t\tif ((c < '1') || (c > '9'))\n\t\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\t\tp *= (c & 0xF) ;\n\t\t\tesi++ ;\n\t\t\tc = nxt () ;\n\t\t    }\n\n\t\tsibinfo += ((long long) p << (type * 4)) ;\n\t\tp = 1 ;\n\n\t\tif (c == '-')\n\t\t    {\n\t\t\t*pdis = expri () ;\n\t\t\treturn sibinfo ;\t\t\t\n\t\t    }\n\n\t\tif (c != '+')\n\t\t\tbreak ;\n\n\t\tesi++ ;\n\t\tc = nxt () ;\n\t\tif ((c >= '1') && (c <= '9'))\n\t\t    {\n\t\t\tesi++ ;\n\t\t\tif (nxt () == '*')\n\t\t\t    {\n\t\t\t\tp *= (c & 0xF) ;\n\t\t\t\twhile (*++esi == ' ') ;\n\t\t\t    }\n\t\t\telse\n\t\t\t\tesi-- ;\n\t\t    }\n\t\ttype = scan (operands, sizeof(operands) / sizeof(operands[0])) ;\n\t\tif ((type < 0) && (p == 1))\n\t\t    {\n\t\t\t*pdis = expri () ;\n\t\t\treturn sibinfo ;\t\t\t\n\t\t    }\n\t\tif ((type < 0x20) || (type > 0x2F))\n\t\t\terror (16, NULL) ; // 'Syntax error'\n\t    }\n\treturn sibinfo ;\n}\n\n// Parse and evaluate an operand.  The 'displacement' and 'immediate' values\n// are updated only if the operand if of the relevant types (0x7C, 0x7E).\n// If no operand (or size override etc.) is present then 0x7F is returned.\nstatic int operand (int *pdis, long long *pimm, int *povr, long long *psib)\n{\n\tchar c ;\n\tint type ;\n\tVAR v ;\n\n\tc = nxt () ;\n\tif ((c == 0x0D) || (c == ':') || (c == ';') || (c == TREM))\n\t\treturn 0x7F ;\n\ttype = scan (operands, sizeof(operands) / sizeof(operands[0])) ;\n\n\tif (type >= 0x80) // size override\n\t    {\n\t\t*povr |= 1 << (type - 0x80) ;\n\t\treturn operand (pdis, pimm, povr, psib) ;\n\t    }\n\n\tif ((type >= 0x70) && (type < 0x76) && (*esi == ':')) // segment override\n\t    {\n\t\tesi++ ;\n\t\t*povr |= 1 << (type - 0x68) ;\n\t\treturn operand (pdis, pimm, povr, psib) ;\n\t    }\n\n\tif (type == 0x7C) // [rel dest]\n\t    {\n\t\t*pdis = expri () - (long long) PC ;\n\t\tif (nxt() != ']')\n\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\tesi++ ;\n\t\t*psib = 0 ;\n\t\treturn 0x45 ;\n\t    }\n\n\tif (type == 0x7D) // [rip + disp]\n\t    {\n\t\tif (nxt() != ']')\n\t\t\t*pdis = expri () ;\n\t\tif (nxt() != ']')\n\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\tesi++ ;\n\t\t*psib = 0 ;\n\t\treturn 0x45 ; // [rip coded as [rbp when SIB = 0\n\t    }\n\n\tif ((type >= 0x40) && (type <= 0x4F)) // indirect addressing\n\t    {\n\t\tif ((nxt () != ']') || (type == 0x44) || (type == 0x45) || (type == 0x4C) || (type == 0x4D))\n\t\t\t*psib = sibeval (type, pdis) ;\n\t\tif (nxt () != ']')\n\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\tesi++ ;\n\t    }\n\n\tif (type >= 0)\n\t\treturn type ;\n\n\tif (c == '[') // direct address\n\t    {\n\t\tesi++ ;\n\t\t*pimm = expri () ;\n\t\tif (nxt () != ']')\n\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\tesi++ ;\n\t\treturn 0x7C ;\n\t    }\n\n\tv = expr () ;\n\tif (v.s.t == -1)\n\t    {\n\t\tif (v.s.l > 255)\n\t\t\terror (19, NULL) ; // 'String too long'\n\t\tmemcpy (accs, (const char *) (v.s.p + zero), v.s.l) ;\n\t\t*pimm = v.s.l ;\n\t\t*povr |= 0b10000000 ; // flag string\n\t    }\n\telse\n\t    {\n\t\tif (v.i.t)\n\t\t\tv.i.n = v.f ;\n\t\tif (nxt () == '[')\n\t\t    {\n\t\t\t*pdis = v.i.n ;\n\t\t\treturn operand (pdis, pimm, povr, psib) ;\n\t\t    }\n\t\t*pimm = v.i.n ;\n\t    }\n\treturn 0x7E ;\n}\n\n// Lookup combination of mnemonic and operands in instructions table\nstatic int lookup (int mnemonic, int operand1, int operand2, int operand3)\n{\n\tint instruction = 0 ;\n\tint promote ;\n\tint found ;\n\n\tif ((operand1 >= 0x78) && (operand1 <= 0x7B)) // SPL etc.\n\t\toperand1 -= 0x74 ;\n\tif ((operand2 >= 0x78) && (operand2 <= 0x7B)) // SPL etc.\n\t\toperand2 -= 0x74 ;\n\n\tfor (promote = 0; promote < 180; promote++)\n\t    {\n\t\tinstruction = (mnemonic << 23) | (operand1 << 16) | (operand2 << 9) ;\n\t\tif ((operand1 == 0x7E) || (operand2 == 0x7E) || (operand3 == 0x7E))\n\t\t\tinstruction |= 0b00000000000000000000000100000000 ;\n\t\tif (promote / 90)\n\t\t\tinstruction &= 0b11111111111111111111111011111111 ;\n\n\t\t  switch (promote % 10) // vertical promotion (do first for al,ax,eax special cases)\n\t\t    {\n\t\t\tcase 9: instruction |= 0b00000000000100000010000000000000 ; // 0x->1x regb,regb\n\t\t\tcase 8:\n\t\t\t     if (instruction & 0b00000000001000000100000000000000)\n\t\t\t\t\tcontinue ;\n\t\t\t\tinstruction += 0b00000000000100000010000000000000 ; // 1x->2x regw,regw\n\t\t\tcase 7: instruction |= 0b00000000000100000010000000000000 ; // 2x->3x regq,regq\n\t\t\t     if (instruction & 0b00000000010000001000000000000000)\n\t\t\t\t\tcontinue ;\n\t\t\t\tbreak ;\n\n\t\t\tcase 6: instruction |= 0b00000000000000000010000000000000 ; // 0x->1x nc,regb\n\t\t\tcase 5:\n\t\t\t     if (instruction & 0b00000000000000000100000000000000)\n\t\t\t\t\tcontinue ;\n\t\t\t\tinstruction += 0b00000000000000000010000000000000 ; // 1x->2x nc,regw\n\t\t\tcase 4: instruction |= 0b00000000000000000010000000000000 ; // 2x->3x nc,regq\n\t\t\t     if (instruction & 0b00000000000000001000000000000000)\n\t\t\t\t\tcontinue ;\n\t\t\t\tbreak ;\n\n\t\t\tcase 3: instruction |= 0b00000000000100000000000000000000 ; // 0x->1x regb,nc\n\t\t\tcase 2:\n\t\t\t     if (instruction & 0b00000000001000000000000000000000)\n\t\t\t\t\tcontinue ;\n\t\t\t\tinstruction += 0b00000000000100000000000000000000 ; // 1x->2x regw,nc\n\t\t\tcase 1: instruction |= 0b00000000000100000000000000000000 ; // 2x->3x regq,nc\n\t\t\t     if (instruction & 0b00000000010000000000000000000000)\n\t\t\t\t\tcontinue ;\n\t\t    }\n\t\tswitch ((promote / 10) % 3) // horizontal promotion of operand 1\n\t\t    {\n\t\t\tcase 2: instruction |= 0b00000000000011110000000000000000 ; //        regd,[mem]\n\t\t\tcase 1: instruction |= 0b00000000000001110000000000000000 ; //     STn/MMn,[mem]\n\t\t    }\n\t\tswitch ((promote / 30) % 3) // horizontal promotion of operand 2\n\t\t    {\n\t\t\tcase 2: instruction |= 0b00000000000000000001111000000000 ; //      [mem],regd\n\t\t\tcase 1: instruction |= 0b00000000000000000000111000000000 ; //      [mem],STn/MMn\n\t\t    }\n\t\tfound = nchop (instructions + 2, instruction, sizeof(instructions) / 6) ;\n\t\tif (found >= 0)\n\t\t\treturn found ;\n\t    }\n\treturn -1 ;\n}\n\n// Encode a single assembly-language instruction:\nstatic char *encode (int mnemonic, int operand1, int operand2, int operand3, int override, \n\t\t     int displacement, long long sibinfo, long long immediate)\n{\n\tint found = -1 ;\n\tunsigned char opcode1, opcode2, modrm = 0 ;\n\tunsigned char scale = 0, index = 0, base = 0 ;\n\tshort flags ;\n\tchar *pdisp = NULL ;\n\n\tif ((operand1 == 0x30) && (operand2 == 0x7E) && (immediate >= -128) && (immediate <= 127))\n\t\tfound = lookup (mnemonic, 0x3F, operand2, operand3) ;\n\n// 32-bit addressing is not useful in a 64-bit flat addressing space.\n//\tif ((found < 0) && (operand1 == 0x7C))\n//\t\tfound = lookup (mnemonic, 0x4F, operand2, operand3) ;\n//\tif ((found < 0) && (operand2 == 0x7C))\n//\t\tfound = lookup (mnemonic, operand1, 0x4F, operand3) ;\n\n\tif (found < 0)\n\t\tfound = lookup (mnemonic, operand1, operand2, operand3) ;\n\tif (found < 0)\n\t\terror (16, NULL) ; // 'Syntax error'\n\tflags = *(short *)(instructions + found*6 + 2) ;\n\topcode1 = *(instructions + found*6 + 1) ;\n\topcode2 = *(instructions + found*6) ;\n\n\t// We now have everything we need to start encoding:\n\t//  mnemonic (e.g. to determine if it's a FP inst)\n\t//  operand1 type 00-7F\n\t//  operand2 type 00-7F\n\t//  operand3 type 00-7F\n\t//  immediate data, memory poimter or string length\n\t//  displacement, if any\n\t//  sibinfo, if SIB byte needed (16 4-bit fields)\n\t//  override (size and segment overrides, string flag)\n\t//  opcode1 byte (or none if opcode1=&FF and opcode2=&FF)\n\t//  opcode2 byte (or skeleton 'ModR/M' or prefix)\n\t//  flags (9 bits determining encoding rules etc.):\n\t// Flag bits:\n\t//  bit 0:    48, 66, F2 or F3 prefix present (depending on value of so) +\n\t//  bit 1:    add 0F prefix (Floating Point: 9B prefix)\n\t//  bit 2:    update word-size flag W (Floating Point: F flag)\n\t//  bit 3:    update sign-extend flag S (Floating Point: M flag)\n\t//  bits 5-4: 00 = normal *\n\t//            01 = Mod R/M present: reg from LH, r/m from RH operand\n\t//            10 = No Mod R/M: update LS 3-bits of opcode from LH operand\n\t//            11 = Mod R/M present: reg from RH, r/m from LH operand\n\t//  bits 8-6: 000 = no extra data bytes\n\t//            001 = 32-bit immediate data\n\t//            010 = 16-bit immediate data\n\t//            011 = 64-bit immediate data\n\t//            100 = 8-bit signed PC relative offset\n\t//            101 = 32-bit signed PC relative offset\n\t//            110 = 8-bit immediate data\n\t//            111 = 16-bit, 32-bit or 64-bit immediate data (8-bit ?SW)\n\t//\n\t// + if bit 0 is one  so& is prefix byte if 48, F2 or F3, otherwise prefix is 66\n\t// * if bit 4 is zero so& is second opcode byte (e.g for FP instructions)\n\t//   if bit 4 is one  so& is skeleton Mod R/M byte (with optional 3-bit opcode extension)\n\n\tif (override & 0b1111111 & ((override &0b1111111) - 1))\n\t\terror (16, NULL) ; // 'Syntax error'\n\n\tif (((opcode1 & 0xF6) != 0xB6) && (opcode1 != 0x63) && (opcode1 != 0xD3))\n\t\tif ((operand1 <= 0x3F) && (operand2 <= 0x3F) && ((operand1 ^ operand2) & 0x30))\n\t\t\terror (53, NULL) ; // 'Size mismatch'\n\n\tif (((opcode1 & 0xF6) == 0xB6) && (operand2 >= 0x40) && (operand2 <= 0x4F))\n\t\tif ((override & 0b11) == 0)\n\t\t\terror (2, \"Size needed\") ; // 'Size needed'\n\n\t// Output segment prefix, if any:\n\tif (override & 0x3F00)\n\t    {\n\t\tint i ;\n\t\tfor (i = 0; i < 6; i++)\n\t\t\tif (override & (1 << (i + 8)))\n\t\t\t\tpoke (&segpfx[i], 1) ;\n\t    }\n\n\t// Output 66 prefix if 16-bit register or WORD override:\n\tif ((opcode1 != 0x00) && (((operand1 >= 0x10) && (operand1 <= 0x1F))\n\t   || ((((operand2 >= 0x10) && (operand2 <= 0x1F)) || (override & 0b00000010))\n\t   && ((opcode1 & 0xF6) != 0xB6) && ((opcode1 != 0x01) || (opcode2 != 0x20)))))\n\n\t\tif ((mnemonic < FPLO) || (mnemonic > FPHI))\n\t\t\tif ((operand1 < 0x70) || (operand1 > 0x75))\n\t\t\t    {\n\t\t\t\tunsigned char prefix = 0x66 ;\n\t\t\t\tpoke (&prefix, 1) ;\n\t\t\t    }\n\n\t// Output 48, 66, 67, F2 or F3 prefix, if any:\n\tif (flags & 0b000000001)\n\t    {\n\t\tunsigned char prefix = 0x66 ;\n\t\tif ((opcode2 == 0xF2) || (opcode2 == 0xF3) || (opcode2 == 0x48) || (opcode2 == 0x67))\n\t\t    {\n\t\t\tprefix = opcode2 ;\n\t\t\topcode2 = 0 ;\n\t\t    }\n\t\tpoke (&prefix, 1) ;\n\t    }\n\n\t// Convert 64-bit sibinfo to scale, index and base:\n\tif (sibinfo != 0)\n\t    {\n\t\tint i, s ;\n\n\t\tfor (s = 3; s >= 0; s--)\n\t\t\tfor (i = 0; i < 16; i++)\n\t\t\t\tif ((sibinfo >> (i * 4)) & (1 << s))\n\t\t\t\t    {\n\t\t\t\t\tif (s)\n\t\t\t\t\t    {\n\t\t\t\t\t\tif (index)\n\t\t\t\t\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\t\t\t\t\tindex = i | 0x80 ;\n\t\t\t\t\t\tscale = s ;\n\t\t\t\t\t    }\n\t\t\t\t\telse if (base)\n\t\t\t\t\t    {\n\t\t\t\t\t\tif (index)\n\t\t\t\t\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\t\t\t\t\tindex = i | 0x80 ;\n\t\t\t\t\t\tscale = 0 ;\n\t\t\t\t\t    }\n\t\t\t\t\telse\n\t\t\t\t\t\tbase = i | 0x80 ;\n\t\t\t\t    }\n\n\t\t// Choose shorter encodings when there are alternatives:\n\t\tif ((scale == 0) && (index == 0x84)) // if index is RSP swap base and index\n\t\t    {\n\t\t\tindex = base ;\n\t\t\tbase = 0x84 ;\n\t\t    }\n\n\t\tif ((scale == 0) && (index != 0) && ((base == 0x85) || (base == 0x8D)))\n\t\t    {\n\t\t\tunsigned char tmp = index ;\n\t\t\tindex = base ;\n\t\t\tbase = tmp ;\n\t\t    }\n\n\t\tif ((scale == 1) && (base == 0)) // [reg+reg] has shorter encoding than [reg*2] \n\t\t    {\n\t\t\tscale = 0 ;\n\t\t\tbase = index ;\n\t\t    }\n\t    }\n\n\t// Output 9B prefix, if any:\n\tif ((flags & 0b000000010) && (mnemonic >= FPLO) && (mnemonic <= FPHI))\n\t    {\n\t\tunsigned char prefix = 0x9B ;\n\t\tpoke (&prefix, 1) ;\n\t    }\n\n\t// Output REX prefix, if any:\n\t    {\n\t\tunsigned char rex = 0x40 ;\n\n\t\tif ((opcode1 != 0x8F) && ((opcode1 != 0xFF) || (opcode2 < 0x10))\n\t\t    && (((opcode1 != 0x50) && (opcode1 != 0x58)) || (flags & 3)))\n\t\t    {\n\t\t\tif (((operand1 >= 0x20) && (operand1 <= 0x2F)) || ((operand2 >= 0x20) && (operand2 <= 0x2F))\n\t\t\t   || ((override & 0b00001000) && ((mnemonic < FPLO) || (mnemonic > FPHI))) \n\t\t\t   || (mnemonic == CMPXCHG16B))\n\t\t\t\t\trex |= 0b1000 ; // REX.W bit\n\t\t    }\n\t\telse\n\t\t    {\n\t\t\tif (override & 0b00000101)\n\t\t\t\terror (16, \"Invalid size override\") ;\n\n\t\t    }\n\n\t\tif (flags & 0b10000)\n\t\t    {\n\t\t\tif ((operand1 < 0x60) && (operand1 & 8))\n\t\t\t    {\n\t\t\t\tif (flags & 0b100000)\n\t\t\t\t\trex |= 0b0001 ; // REX.B\n\t\t\t\telse\n\t\t\t\t\trex |= 0b0100 ; // REX.R\n\t\t\t    }\n\t\t\tif ((operand2 < 0x60) && (operand2 & 8))\n\t\t\t    {\n\t\t\t\tif (flags & 0b100000)\n\t\t\t\t\trex |= 0b0100 ; // REX.R\n\t\t\t\telse\n\t\t\t\t\trex |= 0b0001 ; // REX.B\n\t\t\t    }\n\t\t    }\n\t\telse\n\t\t    {\n\t\t\tif (((operand1 < 0x60) && (operand1 & 8))\n\t\t\t || ((operand2 < 0x60) && (operand2 & 8)))\n\t\t\t\trex |= 0b0001 ; // REX.B\n\t\t    }\n\n\t\tif (index || base)\n\t\t\trex &= 0b11111100 ; // zero REX.B and REX.X\n\t\tif (index & 8)\n\t\t\trex |= 0b0010 ; // REX.X\n\t\tif (base & 8)\n\t\t\trex |= 0b0001 ; // REX.B\n\n\t\tif (((operand1 >= 0x78) && (operand1 <= 0x7B)) ||\n\t\t    ((operand2 >= 0x78) && (operand2 <= 0x7B)) ||\n\t\t    (rex != 0x40))\n\t\t    {\n\t\t\tif (((operand1 >= 0x04) && (operand1 <= 0x07)) ||\n\t\t\t    ((operand2 >= 0x04) && (operand2 <= 0x07)))\n\t\t\t\terror (16, \"Invalid register combination\") ;\n\t\t\tpoke (&rex, 1) ;\n\t\t    }\n\t    }\n\n\t// Short / near jumps: n.b. the assembler must not attempt to determine whether\n\t// a 'short' or 'near' jump is suitable because that needs more than two passes!\n\tif ((flags & 0b111000000) == 0b100000000)\n\t    {\n\t\tif (opcode1 == 0xEB) // unconditional jump\n\t\t    {\n\t\t\tif ((override & 0b0100000) == 0) // not short\n\t\t\t    {\n\t\t\t\tflags |= 0b001000000 ;\n\t\t\t\topcode1 -= 2 ;\n\t\t\t    }\n\t\t    }\n\t\telse if (opcode1 != 0xE8) // conditional jumps\n\t\t    {\n\t\t\tif ((override & 0b1000000) != 0) // near\n\t\t\t    {\n\t\t\t\tflags |= 0b001000010 ;\n\t\t\t\topcode1 += 0x10 ;\n\t\t\t    }\n\t\t    }\n \t    }\n\n\t// Output 0F prefix, if any:\n\tif ((flags & 0b000000010) && ((mnemonic < FPLO) || (mnemonic > FPHI)))\n\t    {\n\t\tunsigned char prefix = 0x0F ;\n\t\tpoke (&prefix, 1) ;\n\t    }\n\n\t// Affect W and S bits according to operand and displacement:\n\tif (((operand1 >= 0x00) && (operand1 <= 0x0F)) || ((operand2 >= 0x00) && (operand2 <= 0x0F) && (opcode1 != 0xD3))\n\t || ((operand1 >= 0x78) && (operand1 <= 0x7B)) || ((operand2 >= 0x78) && (operand2 <= 0x7B) && (opcode1 != 0xD3))\n\t || (override & 0b00000001))\n\t    {\n\t\tif (flags & 4)  // W bit\n\t\t\topcode1 &= 0xFE ;\n\t    }\n\telse if (flags & 8)\n\t    {\n\t\tif ((mnemonic < FPLO) || (mnemonic > FPHI)) // S bit\n\t\t    {\n\t\t\tif ((immediate < -128) || (immediate > 127) || (override & 1))\n\t\t\t\topcode1 &= 0xFD ;\n\t\t\telse\n\t\t\t    {\n\t\t\t\topcode1 |= 0x02 ;\n\t\t\t\tflags = (flags & 0b000111110) | 0b110000000 ;\n\t\t\t    }\n\t\t    }\n\t\telse  // MF bits\n\t\t    {\n\t\t\tif (override & 0b00001010)\n\t\t\t\topcode1 |= 0x04 ;\n\t\t\telse\n\t\t\t\topcode1 &= 0xFB ;\n\t\t    }\n\t    }\n\n\t// Reset W bit if BYTE override:\n\tif (flags & 4)\n\t\tif (((operand1 >= 0x40) && (operand1 <= 0x4F) && (operand2 >= 0x7D))\n\t\t || ((operand2 >= 0x40) && (operand2 <= 0x4F) && (operand1 >= 0x7D)))\n\t\t    {\n\t\t\tif ((override & 0b00011111) == 0)\n\t\t\t\terror (2, \"Size needed\") ; // 'Size needed'\n\t\t\tif (override & 1)\n\t\t\t\topcode1 &= 0xFE ;\n\t\t    }\n\n\t// Special treatment for FILD, FISTP:\n\tif (((mnemonic == FILD) || (mnemonic == FISTP)) && (override & 0b00001000))\n\t\topcode2 |= 5 << 3 ;\n\n\t// Special treatment for FLD, FSTP:\n\tif (((mnemonic == FLD) || (mnemonic == FSTP)) && (override & 0b00010000))\n\t    {\n\t\topcode1 |= 2 ;\n\t\topcode2 |= 5 << 3 ;\n\t    }\n\n\t// Special treatment for shifts:\n\tif (((opcode1 == 0xC0) || (opcode1 == 0xC1)) && (immediate == 1))\n\t    {\n\t\topcode1 += 0x10 ;\n\t\tflags &= 0b000111110 ;\n\t\toperand2 = 0 ;\n\t    }\n\tif (((opcode1 == 0xD2) || (opcode1 == 0xD3)) && (operand2 == 1))\n\t\toperand2 = 0 ;\n\n\t// Construct ModR/M byte (if any):\n\tif (flags & 0b10000)\n\t    {\n\t\tif (opcode2 < 0x80)\n\t\t    {\n\t\t\tmodrm = opcode2 ; // use as skeleton\n\t\t\topcode2 = 0 ;\n\t\t    }\n\n\t\t// Write Mod field:\n\t\tif ((operand1 == 0x7C) || (operand2 == 0x7C))\n\t\t    {\n\t\t\tmodrm &= 0x3F ;\n\t\t\tbase = 0x85 ;\n\t\t    }\n\t\telse if (((operand1 < 0x40) || (operand1 >= 0x50))\n\t\t      && ((operand2 < 0x40) || (operand2 >= 0x50)))\n\t\t\tmodrm |= 0xC0 ;\n\t\telse\n\t\t    {\n\t\t\tmodrm &= 0x3F ;\n\t\t\tif ((displacement < -128) || (displacement > 127))\n\t\t\t\tmodrm |= 0x80 ;\n\t\t\telse if ((displacement) || (base == 0x85) || (base == 0x8D))\n\t\t\t\tmodrm |= 0x40 ;\n\t\t\tif ((base == 0) && (index != 0))\n\t\t\t\tmodrm &= 0x3F ;\n\t\t\tif ((base == 0) && ((operand1 == 0x45) || (operand2 == 0x45)))\n\t\t\t\tmodrm &= 0x3F ;\n\t\t    }\n\n\t\t// Write R/M and/or reg fields:\n\t\tif (flags & 0b100000)\n\t\t    {  // reg from operand2, R/M from operand1\n\t\t\tif ((operand2 <= 0x7C) && !(modrm & 0b00111000))\n\t\t\t    {\n\t\t\t\tmodrm |= ((operand2 & 7) << 3) ; // reg\n\t\t\t\tif (operand2 >= 0x78)\n\t\t\t\t\tmodrm |= 4 << 3 ;\n\t\t\t    }\n\t\t\tif (operand1 <= 0x7C)\n\t\t\t    {\n\t\t\t\tmodrm |= (operand1 & 7) ;        // R/M\n\t\t\t\tif (operand1 >= 0x78)\n\t\t\t\t\tmodrm |= 4 ;\n\t\t\t    }\n\t\t    }\n\t\telse \n\t\t    {  // reg from operand1, R/M from operand2\n\t\t\tif ((operand1 <= 0x7C) && !(modrm & 0b00111000))\n\t\t\t    {\n\t\t\t\tmodrm |= ((operand1 & 7) << 3) ; // reg\n\t\t\t\tif (operand1 >= 0x78)\n\t\t\t\t\tmodrm |= 4 << 3 ;\n\t\t\t    }\n\t\t\tif (operand2 <= 0x7C)\n\t\t\t    {\n\t\t\t\tmodrm |= (operand2 & 7) ;        // R/M\n\t\t\t\tif (operand2 >= 0x78)\n\t\t\t\t\tmodrm |= 4 ;\n\t\t\t    }\n\t\t    }\n\n\t\t// Override R/M field if SIB:\n\t\tif (index != 0)\n\t\t\tmodrm = (modrm & 0b11111000) | 0b00000100 ;\n\t    }\n\n\t// Output opcode and ModR/M byte(s) (if any):\n\tif ((opcode1 != 0xFF) || (opcode2 != 0xFF))\n\t    {\n\t\tif ((flags & 0b110000) == 0b100000)\n\t\t    {\n\t\t\topcode1 |= (operand1 & 7) ;\n\t\t\tif (operand1 >= 0x78)\n\t\t\t\topcode1 |= 4 ;\n\t\t    }\n\t\tpoke (&opcode1, 1) ;\n\n\t\tif (opcode2 != 0)\n\t\t\tpoke (&opcode2, 1) ;\n\n\t\tif (flags & 0b10000)\n\t\t\tpoke (&modrm, 1) ;\n\t    }\n\n\t// Output SIB byte (if any):\n\tif (((modrm & 0b11000000) != 0b11000000) && ((modrm & 0b00000111) == 0b00000100))\n\t    {\n\t\tif (index == 0x84)\n\t\t\terror (16, \"Index cannot be RSP\") ;\n\t\tunsigned char sib = (scale << 6) | ((index & 7) << 3) | (base & 7) ;\n\t\tif ((displacement == 0) && (base == 0))\n\t\t\tsib |= 5 ;\n\t\tif (index == 0)\n\t\t\tsib |= 0b00100000 ;\n\t\tpoke (&sib, 1) ;\n\t\tif (sib == 0b00100101)\n\t\t\tpoke (&displacement, 4) ; // absolute address\n\t    }\n\n\t// Output displacement (if any) depends ModR/M\n\tif ((operand1 == 0x7E) && (operand2 == 0x7E))\n\t\tpoke (&displacement, 2) ; // for ENTER instruction\n\telse if ((modrm & 0b11000000) == 0b01000000)\n\t\tpoke (&displacement, 1) ; // disp8\n\telse if ((modrm & 0b11000000) == 0b10000000)\n\t\tpoke (&displacement, 4) ; // disp32\n\telse if ((index != 0) && (base == 0))\n\t\tpoke (&displacement, 4) ; // disp32\n\telse if ((base == 0) && ((operand1 == 0x45) || (operand2 == 0x45)))\n\t\tpdisp = poke (&displacement, 4) ; // disp32\n\n\t// Output immediate data (if any):\n\tswitch (flags & 0b111000000)\n\t    {\n\t\tcase 0b000000000: // no data\n\t\t\tif ((operand1 == 0x7E) || (operand2 == 0x7E) || (operand3 == 0x7E))\n\t\t\t\terror (16, NULL) ; // ' Syntax error'\n\t\t\tbreak ;\n\n\t\tcase 0b001000000: // 32-bit immediate data\n\t\t\tif (override & 0b10000000)\n\t\t\t\terror (6, NULL) ; // 'Type mismatch'\n\t\t\tpoke (&immediate, 4) ;\n\t\t\tbreak ;\n\n\t\tcase 0b010000000: // 16-bit immediate data\n\t\t\tif (override & 0b10000000)\n\t\t\t\terror (6, NULL) ; // 'Type mismatch'\n\t\t\tpoke (&immediate, 2) ;\n\t\t\tbreak ;\n\n\t\tcase 0b011000000: // 64-bit immediate data\n\t\t\tif (override & 0b10000000)\n\t\t\t    {\n\t\t\t\timmediate = (long long) function (accs, immediate) ;\n\t\t\t\tif (immediate == 0)\n\t\t\t\t\terror (51, NULL) ; // 'No such system call'\n\t\t\t    }\n\t\t\tpoke (&immediate, 8) ;\n\t\t\tbreak ;\n\n\t\tcase 0b100000000: // 8-bit PC-relative offset\n\t\t\tif (override & 0b10000000)\n\t\t\t\terror (6, NULL) ; // 'Type mismatch'\n\t\t\timmediate -= (long long) PC + 1 ;\n\t\t\tif (((immediate < -128) || (immediate > 127)) && ((liston & BIT5) != 0))\n\t\t\t\terror (1, NULL) ; // 'Jump out of range' \n\t\t\tpoke (&immediate, 1) ;\n\t\t\tbreak ;\n\n\t\tcase 0b101000000: // 32-bit PC-relative offset\n\t\t\tif (override & 0b10000000)\n\t\t\t\terror (6, NULL) ; // 'Type mismatch'\n\t\t\timmediate -= (long long) PC + 4 ;\n\t\t\tif ((immediate < (long long) INT_MIN) || (immediate > (long long) INT_MAX))\n\t\t\t\terror (1, NULL) ; // 'Jump out of range' \n\t\t\tpoke (&immediate, 4) ;\n\t\t\tbreak ;\n\n\t\tcase 0b110000000: // 8-bit immediate data or string\n\t\t\tif (override & 0b10000000)\n\t\t\t\tpoke ((void *)accs, immediate) ;\n\t\t\telse\n\t\t\t\tpoke (&immediate, 1) ;\n\t\t\tbreak ;\n\n\t\tcase 0b111000000: // Variable-length data depending on promotions etc.\n\t\t\tif ((operand1 <= 0x0F) || (operand2 <= 0x0F) || (override & 0b00000001)\n\t\t\t || ((operand1 >= 0x78) && (operand1 <= 0x7B))\n\t\t\t || ((operand2 >= 0x78) && (operand2 <= 0x7B)))\n\t\t\t\tpoke (&immediate, 1) ;\n\t\t\telse if (((operand1 >= 0x10) && (operand1 <= 0x1F)) || ((operand2 >= 0x10) && (operand2 <= 0x1F))\n\t\t\t  || (override & 0b00000010))\n\t\t\t\tpoke (&immediate, 2) ;\n\t\t\telse if ((((operand1 >= 0x20) && (operand1 <= 0x2F)) || ((operand2 >= 0x20) && (operand2 <= 0x2F))\n\t\t\t  || (override & 0b00001000)) && ((opcode1 & 0xF8) == 0xB8))\n\t\t\t    {\n\t\t\t\tif (override & 0b10000000)\n\t\t\t\t    {\n\t\t\t\t\timmediate = (long long) function (accs, immediate) ;\n\t\t\t\t\tif (immediate == 0)\n\t\t\t\t\t\terror (51, NULL) ; // 'No such system call'\n\t\t\t\t    }\n\t\t\t\tpoke (&immediate, 8) ;\n\t\t\t    }\n\t\t\telse\n\t\t\t\tpoke (&immediate, 4) ;\n\n\t    }\n\treturn pdisp ;\n}\n\nvoid assemble (void)\n{\n\tsigned char al ; \n\tsigned char *oldesi = esi ; \n\tvoid *oldpc = PC ; \n\n\twhile (1)\n\t    {\n\t\tint mnemonic ;\n\t\tint operand1 ;\n\t\tint operand2 ;\n\t\tint operand3 ;\n\t\tint override = 0 ;\n\t\tlong long sibinfo = 0 ;\n\t\tlong long immediate = 0 ;\n\t\tint displacement = 0 ;\n\t\tchar *pdisp ;\n\n\t\tal = nxt () ;\n\t\tesi++ ;\n\n\t\tswitch (al) \n\t\t    {\n\t\t\tcase 0:\n\t\t\t\tesi-- ;\n\t\t\t\tliston = (liston & 0x0F) | 0x30 ; \n\t\t\t\treturn ;\n\n\t\t\tcase ']':\n\t\t\t\tliston = (liston & 0x0F) | 0x30 ; \n\t\t\t\treturn ;\n\n\t\t\tcase 0x0D:\n\t\t\tcase ':':\n\t\t\t\tif (liston & BIT4)\n\t\t\t\t    {\n\t\t\t\t\tvoid *p ;\n\t\t\t\t\tint n = PC - oldpc ;\n\t\t\t\t\tif (liston & BIT6)\n\t\t\t\t\t\tp = OC - n ;\n\t\t\t\t\telse\n\t\t\t\t\t\tp = PC - n ;\n\n\t\t\t\t\tdo\n\t\t\t\t\t    {\n\t\t\t\t\t\tchar *t = accs ;\n#if (defined (_WIN32)) && (__GNUC__ < 9)\n\t\t\t\t\t\tt += sprintf (t, \"%016I64X \", (long long) (size_t) oldpc) ;\n#else\n\t\t\t\t\t\tt += sprintf (t, \"%016llX \", (long long) oldpc) ;\n#endif\n\t\t\t\t\t\twhile (n)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tt += sprintf (t, \"%02X \", *(unsigned char *)p) ;\n\t\t\t\t\t\t\toldpc++ ;\n\t\t\t\t\t\t\tp++ ;\n\t\t\t\t\t\t\tn-- ;\n\t\t\t\t\t\t\tif (strlen (accs) > 35)\n\t\t\t\t\t\t\t\tbreak ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\ttext (accs) ;\n\n\t\t\t\t\t\tif (*oldesi == '.')\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\ttabit (38) ;\n\t\t\t\t\t\t\tdo\t\n\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\ttoken (*oldesi++ ) ;\n\t\t\t\t\t\t\t    }\n\t\t\t\t\t\t\twhile (range0(*oldesi)) ;\n\t\t\t\t\t\t\ttoken (' ') ;\n\t\t\t\t\t\t\twhile (*oldesi == ' ') oldesi++ ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\ttabit (49) ;\n\t\t\t\t\t\twhile (oldesi < (esi-1)) \n\t\t\t\t\t\t\ttoken (*oldesi++) ;\n\t\t\t\t\t\tcrlf () ;\n\t\t\t\t\t    }\n\t\t\t\t\twhile (n) ;\n\t\t\t\t    }\n\t\t\t\tif (*(esi-1) == 0x0D)\n\t\t\t\t\tnewlin () ;\n\t\t\t\tnxt () ;\n\t\t\t\toldesi = esi ;\n\t\t\t\toldpc = PC ;\n\t\t\t\tbreak ;\n\n\t\t\tcase ';':\n\t\t\tcase TREM:\n\t\t\t\twhile ((*esi != 0x0D) && (*esi != ':')) esi++ ;\n\t\t\t\tbreak ;\n\n\t\t\tcase '.':\n\t\t\t\t{\n\t\t\t\tVAR v ;\n\t\t\t\tunsigned char type ;\n\t\t\t\tvoid *ptr = getput (&type) ;\n\t\t\t\tif (ptr == NULL)\n\t\t\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\t\t\tif (type >= 128)\n\t\t\t\t\terror (6, NULL) ; // 'Type mismatch'\n\t\t\t\tif ((liston & BIT5) == 0)\n\t\t\t\t    {\n\t\t\t\t\tv = loadn (ptr, type) ;\n\t\t\t\t\tif (v.i.n)\n\t\t\t\t\t\terror (3, NULL) ; // 'Multiple label'\n\t\t\t\t    }\n\t\t\t\tv.i.t = 0 ;\n\t\t\t\tv.i.n = (intptr_t) PC ;\n\t\t\t\tstoren (v, ptr, type) ;\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n\t\t\tdefault:\n\t\t\t\toperand1 = 0x7F ;\n\t\t\t\toperand2 = 0x7F ;\n\t\t\t\toperand3 = 0x7F ; \n\t\t\t\tesi-- ;\n\t\t\t\tmnemonic = schop (mnemonics, sizeof(mnemonics) / sizeof(mnemonics[0])) ;\n\n\t\t\t\tswitch (mnemonic)\n\t\t\t\t    {\n\t\t\t\t\tcase OPT:\n\t\t\t\t\t\tliston = (liston & 0x0F) | (expri () << 4) ;\n\t\t\t\t\t\tbreak ;\n\n\t\t\t\t\tcase -1:\n\t\t\t\t\t\tmnemonic = scan (specials, sizeof(specials) / sizeof(specials[0])) ;\n\t\t\t\t\t\tif (mnemonic == -1)\n\t\t\t\t\t\t\terror (16, \"Bad mnemonic\") ; // 'Syntax error'\n\t\t\t\t\t\timmediate = mnemonic % 8 ;\n\t\t\t\t\t\tmnemonic = special[mnemonic / 8] ;\n\t\t\t\t\t\toperand3 = 0x7E ;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\toperand1 = operand (&displacement, &immediate, &override, &sibinfo) ;\n\t\t\t\t\t\tif (nxt () == ',') esi++ ;\n\t\t\t\t\t\tif (operand1 == 0x7E)\n\t\t\t\t\t\t\tdisplacement = immediate ; // for ENTER\n\t\t\t\t\t\toperand2 = operand (&displacement, &immediate, &override, &sibinfo) ;\n\t\t\t\t\t\tif (nxt () == ',') esi++ ;\n\t\t\t\t\t\tif (operand3 == 0x7F)\n\t\t\t\t\t\toperand3 = operand (&displacement, &immediate, &override, &sibinfo) ;\n\n\t\t\t\t\tcase LOCK:\n\t\t\t\t\tcase REPLO ... REPHI:\n\t\t\t\t\t\tpdisp = encode (mnemonic, operand1, operand2, operand3, \n\t\t\t\t\t\t\t\toverride, displacement, sibinfo, immediate) ;\n\t\t\t\t\t\tif (pdisp != NULL)\n\t\t\t\t\t\t\t*(int *)pdisp -= PC - oldpc ;\n\t\t\t\t    }\n\t\t    }\n\t    } \n\n}\n"
  },
  {
    "path": "src/bbccli.c",
    "content": "/*****************************************************************\\\n*       32-bit or 64-bit BBC BASIC for SDL 2.0                    *\n*       (C) 2017-2026  R.T.Russell  http://www.rtrussell.co.uk/   *\n*                                                                 *\n*       The name 'BBC BASIC' is the property of the British       *\n*       Broadcasting Corporation and used with their permission   *\n*                                                                 *\n*       bbccli.c: Command Line Interface (OS emulation)           *\n*       This module runs in the context of the interpreter thread *\n*       Version 1.44a, 18-Mar-2026                                *\n\\*****************************************************************/\n\n#include <stdlib.h>\n#include <stdio.h>\n#include <unistd.h>\n#include <ctype.h>\n#include <string.h>\n#include <dirent.h>\n#include <sys/types.h>\n#include <sys/stat.h>\n#include \"SDL2/SDL.h\"\n#include \"SDL_ttf.h\"\n#include \"bbcsdl.h\"\n#include \"SDL_stbimage.h\"\n\n#undef MAX_PATH\n#define NCMDS 51\t// number of OSCLI commands\n#define POWR2 32\t// largest power-of-2 less than NCMDS\n#define COPYBUFLEN 4096\t// length of buffer used for *COPY command\n#define _S_IWRITE 0x0080\n#define _S_IREAD 0x0100\n#define MAX_PATH 260\n\n// External routines:\nvoid trap (void) ;\nvoid error (int, const char *) ;\nvoid oswrch (unsigned char) ;\nvoid pushev (int code, void *data1, void *data2) ;\nint waitev (void) ;\nUint32 UserTimerCallback(Uint32, void *) ;\nvoid crlf (void) ;\nvoid outchr (unsigned char) ;\nvoid text (const char*) ;\nvoid listline (signed char*, int*) ;\nvoid quiet (void) ;\nvoid getcsr (int*, int*) ;\nvoid SetErrorBBC (void) ;\n\nstatic char *cmds[NCMDS] = {\n\t\t\"bye\", \"cd\", \"chdir\", \"copy\", \"del\", \"delete\", \"dir\", \"display\",\n\t\t\"dump\", \"ega\", \"era\", \"erase\", \"esc\", \"exec\", \"float\", \"font\", \"fx\",\n\t\t\"gsave\", \"help\", \"hex\", \"input\", \"key\", \"list\", \"load\", \"lock\", \"lowercase\",\n\t\t\"md\", \"mdisplay\", \"mkdir\", \"noega\", \"osk\", \"output\", \"quit\", \"rd\", \"refresh\",\n\t\t\"ren\", \"rename\", \"rmdir\", \"run\", \"save\", \"screensave\", \"spool\", \"spoolon\",\n\t\t\"stereo\", \"sys\", \"tempo\", \"timer\", \"tv\", \"type\", \"unlock\", \"voice\"} ;\n\nenum {\n\t\tBYE, CD, CHDIR, COPY, DEL, DELETE, DIRCMD, DISPLAY,\n\t\tDUMP, EGA, ERA, ERASE, ESC, EXEC, FLOAT, FONT, FX,\n\t\tGSAVE, HELP, HEX, INPUT, KEY, LIST, LOAD, LOCK, LOWERCASE,\n\t\tMD, MDISPLAY, MKDIR, NOEGA, OSK, OUTPUT, QUIT, RD, REFRESH,\n\t\tREN, RENAME, RMDIR, RUN, SAVE, SCREENSAVE, SPOOL, SPOOLON,\n\t\tSTEREO, SYS, TEMPO, TIMER, TV, TYPE, UNLOCK, VOICE} ;\n\nstatic int BBC_RWclose (struct SDL_RWops* context)\n{\n\tint ret = SDL_RWclose (context) ;\n\tpushev (EVT_FSSYNC, NULL, NULL) ;\n\treturn ret ;\n}\n\n// Parse a filespec, return pointer to terminator.\n// Note that source string is CR-terminated\nchar *setup (char *dst, char *src, char *ext, char term, unsigned char *pflag)\n{\n\tunsigned char flag = 0 ;\n\tchar *limit = dst + 0x100 ;\n\n\twhile (*src == ' ') src++ ;\t\t// Skip leading spaces\n\tif ((*src == '\"') && (term != '\"'))\n\t{\n\t\tchar *ret ;\n\t\tsrc++ ;\n\t\tret = setup (dst, src, ext, '\"', pflag) ;\n\t\tif (*ret++ != '\"')\n\t\t\terror (253, \"Bad string\") ;\n\t\twhile (*ret == ' ')\n\t\t\tret++ ;\n\t\treturn ret ;\n\t}\n\n\twhile (1)\n\t{\n\t\tchar ch = *src++ ;\n\t\tif (((ch == ',') && (term == ' ')) || (ch == 0x0D) || (ch == term))\n\t\t\tbreak ;\n\t\tflag |= BIT0 ;\t\t\t// Flag filename\n\t\tif (ch == '.')\n\t\t\tflag |= BIT7 ;\t\t// Flag extension\n\t\tif ((ch == '/') || (ch == '\\\\'))\n\t\t{\n\t\t\tflag &= ~(BIT0 + BIT7) ;// Flag no extension, no filename\n\t\t\tflag |= BIT1 ;\t\t// Flag path present\n\t\t}\n\t\t*dst++ = ch ;\n\t\tif (dst >= limit) error (204, \"Bad name\") ;\n\t}\n\n\tif (flag & BIT7)\n\t{\n\t\tif ((*(dst-1) == '.') && (*(dst-2) != '.'))\n\t\t\tdst-- ;\n\t}\n\telse if (flag & BIT0)\n\t{\n\t\tint n = strlen(ext) ;\n\t\tif (dst + n >= limit) error (204, \"Bad name\") ;\n\t\tstrcpy (dst, ext) ;\n\t\tdst += n ;\n\t}\n\n\tif (pflag != NULL)\n\t\t*pflag = flag ;\n\t*dst = 0 ;\n\treturn src - 1 ;\n}\n\n// Parse a *KEY string:\n// Note that source string is CR-terminated\nstatic int parse (char *dst, char *src, char term)\n{\n\tint n = 0 ;\n\n\twhile ((term != '\"') && (*src == ' ')) src++ ;\t// Skip leading spaces\n\tif (*src == '\"')\n\t\treturn parse (dst, src + 1, '\"') ;\n\twhile ((*src != 0x0D) && (*src != term))\n\t{\n\t\tchar c, m = 0 ;\n\t\twhile ((c = *src++) == '|')\n\t\t{\n\t\t\tc = *src++ ;\n\t\t\tif (c == '!')\n\t\t\t    {\n\t\t\t\tm = 0x80 ;\n\t\t\t\tcontinue ;\n\t\t\t    }\n\t\t\telse if ((c >= '?') && (c < '`'))\n\t\t\t\tc ^= 0x40 ;\n\t\t\tbreak ;\n\t\t}\n\t\tif (dst) *dst++ = c | m ;\n\t\tn++ ;\n\t}\n\tif (dst) *dst = 0 ;\n\tif ((term == '\"') && (*src != term))\n\t\terror (253, \"Bad string\") ;\n\treturn n ;\n}\n\n// Parse ON or OFF:\nstatic int onoff (char *p)\n{\n\tint n = 0 ;\n\tif ((*p & 0x5F) == 'O')\n\t\tp++ ;\n\tsscanf (p, \"%x\", &n) ;\n\treturn !n ;\n}\n\n// Wildcard string compare\n// First string may contain ? and * wildcards\nstatic int wild (char *ebx, char *edx)\n{\n\tchar *ecx = NULL ;\n\n\tif (*ebx == 0)\n\t\treturn 1 ;\t\t// Empty string matches everything\n\tif (strcmp (ebx, \"*.*\") == 0)\n\t\treturn 1 ;\t\t// \"*.*\" matches everything\n\n\twhile (1)\n\t{\n\t\tchar al = 0x20 | *ebx++ ;\n\t\tchar ah = 0x20 | *edx++ ;\n\n\t\tif (al == '?')\n\t\t{\n\t\t\tif (*(edx - 1) == 0)\n\t\t\t\treturn 0 ;\n\t\t\tcontinue ;\n\t\t}\n\n\t\tif (al == ah)\n\t\t{\n\t\t\tif (*(ebx - 1) == 0)\n\t\t\t\treturn 1 ;\n\t\t\tcontinue ;\n\t\t}\n\n\t\tif (al != '*')\n\t\t{\n\t\t\tif (ecx == NULL)\n\t\t\t\treturn 0 ;\n\t\t\tebx = ecx ;\n\t\t\tedx-- ;\n\t\t}\n\n\t\tecx = ebx ;\n\t\tif (*(edx - 1) == 0)\n\t\t\treturn 0 ;\n\t\tal = *ebx++ ;\n\t\tif (al == 0)\n\t\t\treturn 1 ;\n\t\tal |= 0x20 ;\n\n\t\tdo\n\t\t{\n\t\t\tah = *edx++ ;\n\t\t\tif (ah == 0)\n\t\t\t\treturn 0 ;\n\t\t\tah |= 0x20 ;\n\t\t}\n\t\twhile (al != ah) ;\n\t}\n\treturn 0 ;\n}\n\nvoid oscli (char *cmd)\n{\n\tint b = 0, h = POWR2, n ;\n\tchar cpy[65536] ;\n\tchar path1[MAX_PATH], path2[MAX_PATH] ;\n\tSDL_RWops *srcfile, *dstfile ;\n\tDIR *d ;\n\tchar *p, *q, dd ;\n\tunsigned char flag ;\n\n\twhile (*cmd == ' ') cmd++ ;\n\n\tif ((*cmd == 0x0D) || (*cmd == '|'))\n\t\treturn ;\n\n\tq = memchr (cmd, 0x0D, sizeof(cpy)) ;\n\tif (q == NULL) return ;\n\tmemcpy (cpy, cmd, q - cmd) ;\n\tcpy[q - cmd] = 0 ;\n\tp = cpy ;\n\twhile ((*p = tolower (*p)) != 0) p++ ;\n\n\tdo\n\t{\n\t\tif (((b + h) < NCMDS) && ((strcmp (cpy, cmds[b + h])) >= 0))\n\t\t\tb += h ;\n\t\th /= 2 ;\n\t}\n\twhile (h > 0) ;\n\n\tn = strchr(cpy, '.') - cpy ;\n\tif ((n > 0) && ((b + 1) < NCMDS) &&\n\t\t\t(n <= strlen (cmds[b + 1])) &&\n\t\t\t(strncmp (cpy, cmds[b + 1], n) == 0))\n\t\tb++ ;\n\n\tp = cpy ;\n\tq = cmds[b] ;\n\twhile (*p && *q && (*p == *q))\n\t{\n\t\tp++ ;\n\t\tq++ ;\n\t}\n\n \tif (*p == '.')\n\t\tp++ ;\n\telse if (*q)\n\t    {\n\t\tb = RUN ;\n\t\tp = cpy ;\n\t\tif ((*p == '*') || (*p == '/'))\n\t\t\tp++ ;\n\t    }\n\n\tif (n == 0)\n\t\tb = DIRCMD ;\n\n\tp += cmd - cpy ;\n\twhile (*p == ' ') p++ ;\t\t// Skip leading spaces\n\n\tswitch (b)\n\t    {\n\t\tcase BYE:\t\t\t// *BYE\n\t\tcase QUIT:\t\t\t// *QUIT\n\t\t\terror (-1, NULL) ;\n\n\t\tcase CD:\t\t\t// *CD [directory]\n\t\tcase CHDIR:\t\t\t// *CHDIR [directory]\n\t\t\tsetup (path1, p, \"\", ' ', &flag) ;\n\t\t\tif (flag == 0)\n\t\t\t    {\n\t\t\t\tgetcwd (path1, MAX_PATH) ;\n\t\t\t\ttext (path1) ;\n\t\t\t\tcrlf () ;\n\t\t\t\treturn ;\n\t\t\t    }\n\t\t\tif (chdir (path1))\n\t\t\t    {\n\t\t\t\tSetErrorBBC () ;\n\t\t\t\terror (206, \"Bad directory\") ;\n\t\t\t    }\n\t\t\treturn ;\n\n\t\tcase COPY:\t\t\t// *COPY oldfile newfile\n\t\t\tp = setup (path1, p, \".bbc\", ' ', NULL) ;\n\t\t\tsrcfile = SDL_RWFromFile (path1, \"rb\") ;\n\t\t\tif (srcfile == NULL)\n\t\t\t\terror (214, \"File or path not found\") ;\n\t\t\tsetup (path1, p, \".bbc\", ' ', NULL) ;\n\t\t\tdstfile = SDL_RWFromFile (path1, \"wb\") ;\n\t\t\tif (dstfile == NULL)\n\t\t\t    {\n\t\t\t\tSDL_RWclose (srcfile) ;\n\t\t\t\terror (189, SDL_GetError ()) ;\t// SDL error\n\t\t\t    }\n\t\t\tp = malloc (COPYBUFLEN) ;\n\t\t\tdo\n\t\t\t    {\n\t\t\t\tn = SDL_RWread (srcfile, p, 1, COPYBUFLEN) ;\n\t\t\t\tif (n == 0)\n\t\t\t\t\tbreak ;\n\t\t\t    }\n\t\t\twhile (SDL_RWwrite (dstfile, p, 1, n)) ;\n\t\t\tfree (p) ;\n\t\t\tSDL_RWclose (srcfile) ;\n\t\t\tBBC_RWclose (dstfile) ;\n\t\t\tif (n)\n\t\t\t\terror (189, SDL_GetError ()) ;\n\t\t\treturn ;\n\n\t\tcase DEL:\t\t\t// *DEL filename\n\t\tcase DELETE:\t\t\t// *DELETE filename\n\t\tcase ERA:\t\t\t// *ERA filename\n\t\tcase ERASE:\t\t\t// *ERASE filename\n\t\t\tsetup (path1, p, \".bbc\", ' ', NULL) ;\n\t\t\tif (remove (path1))\n\t\t\t    {\n\t\t\t\tSetErrorBBC () ;\n\t\t\t\terror (254, \"Bad command\") ;\t// Bad command\n\t\t\t    }\n\t\t\treturn ;\n\n\t\tcase DIRCMD:\n\t\t\tsetup (path1, p, \".bbc\", ' ', &flag) ;\n\t\t\tif ((flag & BIT0) == 0)\n\t\t\t\tstrcat (path1, \"*.bbc\") ;\n\t\t\tif (flag & BIT1)\n\t\t\t    {\n\t\t\t\tp = path1 + strlen (path1) ;\n\t\t\t\tq = path1 ;\n\t\t\t\twhile ((*p != '/') && (*p != '\\\\')) p-- ;\n\t\t\t\tif ((p == path1) || (*(p - 1) == ':'))\n\t\t\t\t    {\n\t\t\t\t\tdd = 0 ;\n\t\t\t\t\t*++p = 0 ;\t// root\n\t\t\t\t    }\n\t\t\t\telse\n\t\t\t\t    {\n\t\t\t\t\tdd = *p ;\n\t\t\t\t\t*p++ = 0 ;\t// not root\n\t\t\t\t    }\n\t\t\t    }\n\t\t\telse\n\t\t\t    {\n\t\t\t\tgetcwd (path2, MAX_PATH) ;\n#ifdef __WINDOWS__\n\t\t\t\tdd = '\\\\' ;\n#else\n\t\t\t\tdd = '/' ;\n#endif\n\t\t\t\tp = path1 ;\n\t\t\t\tq = path2 ;\n\t\t\t    }\n\t\t\ttext (\"Directory of \") ;\n\t\t\ttext (q) ;\n\t\t\toutchr (dd) ;\n\t\t\ttext (p) ;\n\t\t\tcrlf () ;\n\n\t\t\td = opendir (q) ;\n\t\t\tif (d == NULL)\n\t\t\t    {\n\t\t\t\tSetErrorBBC () ;\n\t\t\t\terror (254, \"Bad command\") ;\n\t\t\t    }\n\n\t\t\twhile (1)\n\t\t\t    {\n\t\t\t\tif (flags & (ESCFLG | KILL))\n\t\t\t\t    {\n\t\t\t\t\tclosedir (d) ;\n\t\t\t\t\tcrlf () ;\n\t\t\t\t\ttrap () ;\n\t\t\t\t    }\n\t\t\t\tstruct dirent *r = readdir (d) ;\n\t\t\t\tif (r == NULL)\n\t\t\t\t\tbreak ;\n\t\t\t\tif (!wild (p, r -> d_name))\n\t\t\t\t\tcontinue ;\n\t\t\t\toutchr (' ') ;\n\t\t\t\toutchr (' ') ;\n\t\t\t\ttext (r -> d_name) ;\n\t\t\t\tdo\n\t\t\t\t\toutchr (' ') ;\n\t\t\t\twhile ( (vcount != 0) && (vcount != 20) &&\n\t\t\t\t\t(vcount != 40) && (vcount < 60)) ;\n\t\t\t\tif (vcount > 60)\n\t\t\t\t\tcrlf () ;\n\t\t\t    }\n\t\t\tclosedir (d) ;\n\t\t\tcrlf () ;\n\t\t\treturn ;\n\n\t\tcase DISPLAY:\t\t// *DISPLAY bmpfile [xpos,ypos[,width,height[,keycol]]]\n\t\t\t    {\n\t\t\t\tint col = 0 ;\n\t\t\t\tSDL_Rect rect = {0, 0, 0, 0} ;\n\t\t\t\tSDL_Surface *bmp ;\n\n\t\t\t\tp = setup (path1, p, \".bmp\", ' ', NULL) ;\n\n\t\t\t\tp += cpy - cmd ;\n\t\t\t\tsscanf (p, \"%i, %i, %i, %i, %x\",\n\t\t\t\t\t&rect.x, &rect.y, &rect.w, &rect.h, &col) ;\n\t\t\t\tif ((rect.h == 0) && (col == 0))\n\t\t\t\t    {\n\t\t\t\t\trect.w = 0 ;\n\t\t\t\t\tsscanf (p, \"%i, %i, %x\", &rect.x, &rect.y, &col) ;\n\t\t\t\t    }\n\t\t\t\trect.w /= 2 ;\n\t\t\t\trect.h /= 2 ;\n\n\t\t\t\tsrcfile = SDL_RWFromFile (path1, \"rb\") ;\n\t\t\t\tif (srcfile == 0)\n\t\t\t\t\terror (214, \"File or path not found\") ;\n\t\t\t\tbmp = SDL_LoadBMP_RW (srcfile, 0) ;\n\t\t\t\tif (bmp)\n\t\t\t\t\tSDL_RWclose (srcfile) ;\n\t\t\t\telse\n\t\t\t\t\tbmp = STBIMG_Load_RW (srcfile, 1) ;\n\t\t\t\tif (bmp == NULL)\n\t\t\t\t\terror (189, SDL_GetError ()) ;\n\t\t\t\tif (col)\n\t\t\t\t\tSDL_SetColorKey (bmp, 1, col) ;\n\n\t\t\t\tpushev (EVT_DISPLAY, &rect, bmp) ;\n\t\t\t\tif (0 == waitev ())\n\t\t\t\t\terror (189, SDL_GetError ()) ;\n\t\t\t\treturn ;\n\t\t\t    }\n\n\t\tcase EGA:\n\t\t\tvflags |= CGAFLG ;\n\t\t\tif (onoff (p))\n\t\t\t\tvflags |= EGAFLG ;\n\t\t\telse\n\t\t\t\tvflags &= ~EGAFLG ;\n\t\t\treturn ;\n\n\t\tcase ESC:\n\t\t\tif (onoff (p))\n\t\t\t\tflags &= ~ESCDIS ;\n\t\t\telse\n\t\t\t\tflags |= ESCDIS ;\n\t\t\treturn ;\n\n\t\tcase EXEC:\n\t\t\tif (exchan)\n\t\t\t    {\n\t\t\t\tSDL_RWclose (exchan) ;\n\t\t\t\texchan = NULL ;\n\t\t\t    }\n\t\t\tsetup (path1, p, \".bbc\", ' ', NULL) ;\n\t\t\tif (*path1 == 0)\n\t\t\t\treturn ;\n\t\t\texchan = SDL_RWFromFile (path1, \"rb\") ;\n\t\t\tif (exchan == NULL)\n\t\t\t\terror (214, \"File or path not found\") ;\n\t\t\treturn ;\n\n\t\tcase FLOAT:\n\t\t\tn = 0 ;\n\t\t\tsscanf (p, \"%i\", &n) ;\n\t\t\tswitch (n)\n\t\t\t    {\n\t\t\t\tcase 32:\n\t\t\t\t\tliston &= ~BIT0 ;\n\t\t\t\t\tliston |= BIT1 ;\n\t\t\t\t\tbreak ;\n\t\t\t\tcase 40:\n\t\t\t\t\tliston &= ~(BIT0 + BIT1) ;\n\t\t\t\t\tbreak ;\n\t\t\t\tcase 64:\n\t\t\t\t\tliston &= ~BIT1 ;\n\t\t\t\t\tliston |= BIT0 ;\n\t\t\t\t\tbreak ;\n\t\t\t\tcase 80:\n\t\t\t\t\tliston |= (BIT0 + BIT1) ;\n\t\t\t\t\tbreak ;\n\t\t\t\tdefault:\n\t\t\t\t\terror (254, \"Bad command\") ;\n\t\t\t    }\n\t\t\treturn ;\n\n\t\tcase FONT:\t\t\t// *FONT [filename,[size[,BIQU]]]\n\t\t\t    {\n\t\t\t\tint size = 0, style = 0 ;\n\t\t\t\tunsigned char attr = 0 ;\n\t\t\t\tunsigned char flag ;\n\t\t\t\tp = setup (path1, p, \".ttf\", ' ', &flag) ;\n\t\t\t\tif (*p == ',') p++ ;\n\t\t\t\tif (*p != 0x0D)\n\t\t\t\t\tsize = (strtol (p, &p, 10) * 21845 + 8192) >> 14 ;\n\t\t\t\tif ((size == 0) && flag) size = abs (chary) ;\n\t\t\t\twhile (*p == ' ') p++ ;\n\t\t\t\tif (*p == ',') p++ ;\n\t\t\t\twhile (*p != 0x0D) attr |= *p++ ;\n\t\t\t\tif ((attr & BIT2) && (attr & BIT4))\n\t\t\t\t\tstyle |= TTF_STYLE_UNDERLINE ;\n\t\t\t\tif ((attr & BIT4) && !(attr & BIT2))\n\t\t\t\t\tstyle |= TTF_STYLE_STRIKETHROUGH ;\n\t\t\t\tif (attr & BIT3)\n\t\t\t\t\tstyle |= TTF_STYLE_ITALIC ;\n\t\t\t\tif (attr & BIT1)\n\t\t\t\t\tstyle |= TTF_STYLE_BOLD ;\n\t\t\t\tpushev (EVT_FONT, path1, (void *)(intptr_t)((style << 16) | size)) ;\n\t\t\t\tif ((waitev() == 0) && (size != 0))\n\t\t\t\t\terror (246, \"No such font\") ;\n\t\t\t\treturn ;\n\t\t\t    }\n\n\t\tcase FX:\n\t\t\tn = 0 ; b = 0 ;\n\t\t\tsscanf (p, \"%i,%i\", &n, &b) ;\n\t\t\tif (n == 15)\n\t\t\t    {\n\t\t\t\tif (b == 0)\n\t\t\t\t\tquiet () ;\n\t\t\t\tkbdqr = kbdqw ;\n\t\t\t    }\n\t\t\telse if (n == 19)\n\t\t\t    {\n\t\t\t\tpushev (EVT_REFLAG, (void *) 0x201, 0) ;\n\t\t\t\twaitev () ;\n\t\t\t\twhile (reflag & 1)\n\t\t\t\t\tSDL_Delay (1) ;\n\t\t\t    }\n\t\t\telse if (n == 20)\n\t\t\t\tmemset (usrchr, 0, 256) ;\n\t\t\telse if (n == 21)\n\t\t\t    {\n\t\t\t\tif (b == 0)\n\t\t\t\t\tkbdqr = kbdqw ;\n\t\t\t\telse if ((b >= 4) && (b <= 7))\n\t\t\t\t    {\n\t\t\t\t\tsndqw[b - 4] = 0 ;\n\t\t\t\t\tsndqr[b - 4] = 0 ;\n\t\t\t\t\teenvel[b - 4] = 0 ;\n\t\t\t\t    }\n\t\t\t    }\n\t\t\treturn ;\n\n\t\tcase GSAVE:\t\t\t// *GSAVE bmpfile [xpos,ypos[,width,height]]\n\t\tcase SCREENSAVE:\n\t\t\t    {\n\t\t\t\tint bfSize ;\n\t\t\t\tSDL_Rect rect = {0, 0, 0, 0} ;\n\n\t\t\t\tp = setup (path1, p, \".bmp\", ' ', NULL) ;\n\n\t\t\t\tp += cpy - cmd ;\n\t\t\t\tsscanf (p, \"%i, %i, %i, %i\",\n\t\t\t\t\t&rect.x, &rect.y, &rect.w, &rect.h) ;\n\t\t\t\trect.w /= 2 ;\n\t\t\t\trect.h /= 2 ;\n\n\t\t\t\tif ((rect.w == 0) || (rect.h == 0))\n\t\t\t\t    {\n\t\t\t\t\tgetcsr (NULL, NULL) ;\n\t\t\t\t\trect.w = sizex ;\n\t\t\t\t\trect.h = sizey ;\n\t\t\t\t    }\n\n\t\t\t\tbfSize = rect.h * ((rect.w * 3 + 3) & -4) + 14 + 40 ;\n\t\t\t\tp = malloc (bfSize) ;\n\t\t\t\tif (p == NULL)\n\t\t\t\t\terror (254, \"Bad command\") ;\n\t\t\t\tmemset (p, 0, 54) ;\n\t\t\t\t* (short*) p = 0x4D42 ;\t\t// bfType = 'BM'\n\t\t\t\t* (int*) (p + 2) = bfSize ;\t// bfSize\n\t\t\t\t* (int*) (p + 10) = 54 ;\t// bfOffBits\n\t\t\t\t* (int*) (p + 14) = 40 ;\t// biSize\n\t\t\t\t* (int*) (p + 18) = rect.w ;\t// biWidth\n\t\t\t\t* (int*) (p + 22) = rect.h ;\t// biHeight (bottom-up)\n\t\t\t\t* (short*) (p + 26) = 1 ;\t// biPlanes\n\t\t\t\t* (short*) (p + 28) = 24 ;\t// biBitCount\n\n\t\t\t\tpushev (EVT_PIXELS, &rect, p + 54) ;\n\t\t\t\twaitev () ;\n\n\t\t\t\tdstfile = SDL_RWFromFile (path1, \"wb\") ;\n\t\t\t\tif (dstfile == NULL)\n\t\t\t\t    {\n\t\t\t\t\tfree (p) ;\n\t\t\t\t\terror (189, SDL_GetError ()) ;\n\t\t\t\t    }\n\t\t\t\tn = SDL_RWwrite (dstfile, p, 1, bfSize) ;\n\t\t\t\tfree (p) ;\n\t\t\t\tif (n != bfSize)\n\t\t\t\t\terror (189, SDL_GetError ()) ;\n\t\t\t\tBBC_RWclose (dstfile) ;\n\t\t\t\treturn ;\n\t\t\t    }\n\n\t\tcase HELP:\n\t\t\t\ttext (szVersion) ;\n\t\t\t\tcrlf () ;\n\t\t\t\treturn ;\n\n\t\tcase HEX:\n\t\t\tn = 0 ;\n\t\t\tsscanf (p, \"%i\", &n) ;\n\t\t\tswitch (n)\n\t\t\t    {\n\t\t\t\tcase 32:\n\t\t\t\t\tliston &= ~BIT2 ;\n\t\t\t\t\tbreak ;\n\t\t\t\tcase 64:\n\t\t\t\t\tliston |= BIT2 ;\n\t\t\t\t\tbreak ;\n\t\t\t\tdefault:\n\t\t\t\t\terror (254, \"Bad command\") ;\n\t\t\t    }\n\t\t\treturn ;\n\n\t\tcase KEY:\n\t\t\tn = 0 ;\n\t\t\tif (*p != 0x0D)\n\t\t\t\tn = strtol (p, &p, 10) ;\n\t\t\tif ((n < 1) || (n > 24))\n\t\t\t\terror (251, \"Bad key\") ;\n\t\t\tif (*(keystr + n))\n\t\t\t    {\n\t\t\t\tfree (*(keystr + n)) ;\n\t\t\t\t*(keystr + n) = NULL ;\n\t\t\t    }\n\t\t\tb = parse (NULL, p, 0) ;\n\t\t\tif (b == 0)\n\t\t\t\treturn ;\n\t\t\t*(keystr + n) = malloc (b + 1) ;\n\t\t\tparse (*(keystr + n), p, 0) ;\n\t\t\treturn ;\n\n\t\tcase LIST:\n\t\t\tsetup (path1, p, \".bbc\", ' ', NULL) ;\n\t\t\tsrcfile = SDL_RWFromFile (path1, \"rb\") ;\n\t\t\tif (srcfile == NULL)\n\t\t\t\terror (214, \"File or path not found\") ;\n\t\t\tb = 0 ;\n\t\t\twhile (1)\n\t\t\t    {\n\t\t\t\tunsigned char al ;\n\t\t\t\tif (flags & (ESCFLG | KILL))\n\t\t\t\t    {\n\t\t\t\t\tSDL_RWclose (srcfile) ;\n\t\t\t\t\ttrap () ;\n\t\t\t\t    }\n\t\t\t\tn = SDL_RWread (srcfile, &al, 1, 1) ;\n\t\t\t\tif (n && al)\n\t\t\t\t    {\n\t\t\t\t\tSDL_RWread (srcfile, path2, 1, al - 1) ;\n\t\t\t\t\tlistline ((signed char *)path2, &b) ;\n\t\t\t\t\tcrlf () ;\n\t\t\t\t    }\n\t\t\t\telse\n\t\t\t\t\tbreak ;\n\t\t\t    } ;\n\t\t\tSDL_RWclose (srcfile) ;\n\t\t\treturn ;\n\n\t\tcase LOAD:\t\t// *LOAD filename hexaddr [+maxlen]\n\t\t\tp = setup (path1, p, \".bbc\", ' ', NULL) ;\n\t\t\tn = 0 ;\n\t\t\tq = 0 ;\n\t\t\tif (*p != 0x0D)\n\t\t\t    {\n\t\t\t\tq = (char *) (size_t) strtoull (p, &p, 16) ;\n\t\t\t\twhile (*p == ' ') p++ ;\n\t\t\t\tif (*p == '+')\n\t\t\t\t\tn = strtol (p + 1, &p, 16) ;\n\t\t\t\telse if (*p != 0x0D)\n\t\t\t\t\tn = (char *) (size_t) strtoull (p, &p, 16) - q ;\n\t\t\t    }\n\t\t\tif ((n <= 0) && ((q < (char *)userRAM) || (q >= (char *)userTOP)))\n\t\t\t\terror (8, NULL) ; // 'Address out of range'\n\t\t\tif (n <= 0)\n\t\t\t\tn = (char *)userTOP - q ;\n\t\t\tsrcfile = SDL_RWFromFile (path1, \"rb\") ;\n\t\t\tif (srcfile == NULL)\n\t\t\t\terror (214, \"File or path not found\") ;\n\t\t\tif (0 == SDL_RWread(srcfile, q, 1, n))\n\t\t\t\terror (189, SDL_GetError ()) ;\n\t\t\tSDL_RWclose (srcfile ) ;\n\t\t\treturn ;\n\n\t\tcase LOCK:\n\t\t\tsetup (path1, p, \".bbc\", ' ', NULL) ;\n\t\t\tif (chmod (path1, _S_IREAD))\n\t\t\t    {\n\t\t\t\tSetErrorBBC () ;\n\t\t\t\terror (254, \"Bad command\") ;\n\t\t\t    }\n\t\t\treturn ;\n\n\t\tcase LOWERCASE:\n\t\t\tif (onoff (p))\n\t\t\t\tliston |= BIT3 ;\n\t\t\telse\n\t\t\t\tliston &= ~BIT3 ;\n\t\t\treturn ;\n\n\t\tcase MD:\n\t\tcase MKDIR:\n\t\t\tsetup (path1, p, \"\", ' ', NULL) ;\n#ifdef __WINDOWS__\n\t\t\tif (mkdir (path1))\n#else\n\t\t\tif (mkdir (path1, 0777))\n#endif\n\t\t\t    {\n\t\t\t\tSetErrorBBC () ;\n\t\t\t\terror (254, \"Bad command\") ;\n\t\t\t    }\n\t\t\treturn ;\n\n\t\tcase MDISPLAY:\t\t// *MDISPLAY hexaddr [xpos,ypos[,width,height[,keycol]]]\n\t\t\t    {\n\t\t\t\tint col = 0 ;\n\t\t\t\tvoid *addr = NULL ;\n\t\t\t\tSDL_Rect rect = {0, 0, 0, 0} ;\n\t\t\t\tSDL_Surface *bmp ;\n\n\t\t\t\tp += cpy - cmd ;\n\t\t\t\tsscanf (p, \"%p %i, %i, %i, %i, %x\",\n\t\t\t\t\t&addr, &rect.x, &rect.y, &rect.w, &rect.h, &col) ;\n\t\t\t\tif ((rect.h == 0) && (col == 0))\n\t\t\t\t    {\n\t\t\t\t\trect.w = 0 ;\n\t\t\t\t\tsscanf (p, \"%p %i, %i, %x\", &addr, &rect.x, &rect.y, &col) ;\n\t\t\t\t    }\n\t\t\t\trect.w /= 2 ;\n\t\t\t\trect.h /= 2 ;\n\n\t\t\t\tsrcfile = SDL_RWFromMem (addr, *(int*)(addr + 2)) ;\n\t\t\t\tif (srcfile == 0)\n\t\t\t\t\terror (189, SDL_GetError ()) ;\n\t\t\t\tbmp = SDL_LoadBMP_RW (srcfile, 0) ;\n\t\t\t\tif (bmp)\n\t\t\t\t\tSDL_RWclose (srcfile) ;\n\t\t\t\telse\n\t\t\t\t\tbmp = STBIMG_Load_RW (srcfile, 1) ;\n\t\t\t\tif (bmp == NULL)\n\t\t\t\t\terror (189, SDL_GetError ()) ;\n\t\t\t\tif (col)\n\t\t\t\t\tSDL_SetColorKey (bmp, 1, col) ;\n\n\t\t\t\tpushev (EVT_DISPLAY, &rect, bmp) ;\n\t\t\t\tif (0 == waitev ())\n\t\t\t\t\terror (189, SDL_GetError ()) ;\n\t\t\t\treturn ;\n\t\t\t    }\n\n\t\tcase NOEGA:\n\t\t\tvflags &= ~(CGAFLG + EGAFLG) ;\n\t\t\treturn ;\n\n\t\tcase OSK:\n\t\t\tif (onoff (p))\n\t\t\t\tpushev (EVT_OSK, (void *) 1, NULL) ;\n\t\t\telse\n\t\t\t\tpushev (EVT_OSK, NULL, NULL) ;\n\t\t\treturn ;\n\n\t\tcase RD:\n\t\tcase RMDIR:\n\t\t\tsetup (path1, p, \"\", ' ', NULL) ;\n\t\t\tif (rmdir (path1))\n\t\t\t    {\n\t\t\t\tSetErrorBBC () ;\n\t\t\t\terror (254, \"Bad command\") ;\n\t\t\t    }\n\t\t\treturn ;\n\n\t\tcase REFRESH:\n\t\t\twhile (*p == ' ') p++ ;\n\t\t\tif (*p != 0x0D)\n\t\t\t    {\n\t\t\t\tif (onoff (p))\n\t\t\t\t\tpushev (EVT_REFLAG, NULL, NULL) ;\n\t\t\t\telse\n\t\t\t\t\tpushev (EVT_REFLAG, (void *)2, NULL) ;\n\t\t\t\twaitev () ;\n\t\t\t\treturn ;\n\t\t\t    }\n\t\t\tpushev (EVT_REFLAG, (void *)0x201, NULL) ;\n\t\t\twaitev () ;\n\t\t\twhile (reflag & 1)\n\t\t\t\tSDL_Delay (1) ;\n\t\t\treturn ;\n\n\t\tcase REN:\n\t\tcase RENAME:\n\t\t\tp = setup (path1, p, \".bbc\", ' ', NULL) ;\n\t\t\tsetup (path2, p, \".bbc\", ' ', NULL) ;\n\t\t\tdstfile = SDL_RWFromFile (path2, \"rb\") ;\n\t\t\tif (dstfile != NULL)\n\t\t\t    {\n\t\t\t\tBBC_RWclose (dstfile) ;\n\t\t\t\terror (196, \"File exists\") ;\n\t\t\t    }\n\t\t\tif (rename (path1, path2))\n\t\t\t    {\n\t\t\t\tSetErrorBBC () ;\n\t\t\t\terror (196, \"File exists\") ;\n\t\t\t    }\n\t\t\treturn ;\n\n\t\tcase RUN:\n\t\t\tstrncpy (path1, p, MAX_PATH - 1) ;\n\t\t\tq = memchr (path1, 0x0D, MAX_PATH) ;\n\t\t\tif (q != NULL) *q = 0 ;\n\t\t\tq = path1 + strlen (path1) - 1 ;\n\t\t\tif (*q == ';')\n\t\t\t\t*q = '&' ;\n#if defined __IPHONEOS__\n\t\t\terror (255, \"Unsupported\") ;\n#elif defined __EMSCRIPTEN__\n\t\t\tpushev (EVT_RUNJS, path1, NULL) ;\n\t\t\twaitev () ;\n#else\n\t\t\tif (system (path1))\n\t\t\t    {\n\t\t\t\tSetErrorBBC () ;\n\t\t\t\terror (254, \"Bad command\") ;\n\t\t\t    }\n#endif\n\t\t\treturn ;\n\n\t\tcase SAVE:\t\t// *SAVE filename hexaddr +hexlen\n\t\t\tp = setup (path1, p, \".bbc\", ' ', NULL) ;\n\t\t\tn = 0 ;\n\t\t\tq = 0 ;\n\t\t\tif (*p != 0x0D)\n\t\t\t    {\n\t\t\t\tq = (char *) (size_t) strtoull (p, &p, 16) ;\n\t\t\t\twhile (*p == ' ') p++ ;\n\t\t\t\tif (*p == '+')\n\t\t\t\t\tn = strtol (p + 1, &p, 16) ;\n\t\t\t\telse if (*p != 0x0D)\n\t\t\t\t\tn = (char *) (size_t) strtoull (p, &p, 16) - q ;\n\t\t\t    }\n\t\t\tif (n <= 0)\n\t\t\t\terror (254, \"Bad command\") ;\n\t\t\tdstfile = SDL_RWFromFile (path1, \"wb\") ;\n\t\t\tif (dstfile == NULL)\n\t\t\t\terror (189, SDL_GetError ()) ;\n\t\t\tif (0 == SDL_RWwrite(dstfile, q, 1, n))\n\t\t\t\terror (189, SDL_GetError ()) ;\n\t\t\tBBC_RWclose (dstfile ) ;\n\t\t\treturn ;\n\n\t\tcase SPOOL:\n\t\t\tif (spchan != NULL)\n\t\t\t    {\n\t\t\t\tBBC_RWclose (spchan) ;\n\t\t\t\tspchan = NULL ;\n\t\t\t    }\n\t\t\twhile (*p == ' ') p++ ;\n\t\t\tif (*p == 0x0D)\n\t\t\t\treturn ;\n\t\t\tsetup (path1, p, \".bbc\", ' ', NULL) ;\n\t\t\tspchan = SDL_RWFromFile (path1, \"wb\") ;\n\t\t\tif (spchan == NULL)\n\t\t\t\terror (189, SDL_GetError ()) ;\n\t\t\treturn ;\n\n\t\tcase SPOOLON:\n\t\t\tif (spchan != NULL)\n\t\t\t    {\n\t\t\t\tBBC_RWclose (spchan) ;\n\t\t\t\tspchan = NULL ;\n\t\t\t    }\n\t\t\twhile (*p == ' ') p++ ;\n\t\t\tif (*p == 0x0D)\n\t\t\t\treturn ;\n\t\t\tsetup (path1, p, \".bbc\", ' ', NULL) ;\n\t\t\tspchan = SDL_RWFromFile (path1, \"ab\") ;\n\t\t\tif (spchan == NULL)\n\t\t\t\terror (189, SDL_GetError ()) ;\n\t\t\treturn ;\n\n\t\tcase STEREO:\n\t\t\tb = 0 ;\n\t\t\tn = 0 ;\n\t\t\tsscanf (p, \"%i,%i\", &b, &n) ;\n\t\t\tb &= 3 ;\n\t\t\tsmix[b]     = 0x4000 - (n << 7) ;\n\t\t\tsmix[b + 4] = 0x4000 + (n << 7) ;\n\t\t\treturn ;\n\n\t\tcase SYS:\n\t\t\tn = 0 ;\n\t\t\tsscanf (p, \"%i\", &n) ;\n\t\t\tsysflg = n ;\n\t\t\treturn ;\n\n\t\tcase TEMPO:\n\t\t\tn = 0 ;\n\t\t\tsscanf (p, \"%i\", &n) ;\n\t\t\tif (((n & 0x3F) <= MAX_TEMPO) && ((n & 0x3F) > 0))\n\t\t\t\ttempo = n ;\n\t\t\treturn ;\n\n\t\tcase TIMER:\n\t\t\tn = 0 ;\n\t\t\tsscanf (p, \"%i\", &n) ;\n\t\t\tif (n == 0)\n\t\t\t\treturn ;\n\t\t\tpushev (EVT_TIMER, (void *)(intptr_t) n, NULL) ;\n\t\t\treturn ;\n\n\t\tcase TV:\n\t\t\treturn ;\t\t// ignored\n\n\t\tcase TYPE:\n\t\t\tsetup (path1, p, \".bbc\", ' ', NULL) ;\n\t\t\tsrcfile = SDL_RWFromFile (path1, \"rb\") ;\n\t\t\tif (srcfile == NULL)\n\t\t\t\terror (214, \"File or path not found\") ;\n\t\t\tdo\n\t\t\t    {\n\t\t\t\tchar ch ;\n\t\t\t\tif (flags & (ESCFLG | KILL))\n\t\t\t\t    {\n\t\t\t\t\tSDL_RWclose (srcfile) ;\n\t\t\t\t\tcrlf () ;\n\t\t\t\t\ttrap () ;\n\t\t\t\t    }\n\t\t\t\tn = SDL_RWread (srcfile, &ch, 1, 1) ;\n\t\t\t\toswrch (ch) ;\n\t\t\t    }\n\t\t\twhile (n) ;\n\t\t\tSDL_RWclose (srcfile) ;\n\t\t\tcrlf () ; // Zero COUNT\n\t\t\treturn ;\n\n\t\tcase UNLOCK:\n\t\t\tsetup (path1, p, \".bbc\", ' ', NULL) ;\n\t\t\tif (chmod (path1, _S_IREAD | _S_IWRITE))\n\t\t\t    {\n\t\t\t\tSetErrorBBC () ;\n\t\t\t\terror (254, \"Bad command\") ;\n\t\t\t    }\n\t\t\treturn ;\n\n\t\tcase VOICE:\n\t\t\tb = 0 ;\n\t\t\tn = 0 ;\n\t\t\tsscanf (p, \"%i,%i\", &b, &n) ;\n\t\t\tvoices[b & 3] = n & 7 ;\n\t\t\treturn ;\n\n\t\tcase INPUT:\n\t\t\tn = 0 ;\n\t\t\tsscanf (p, \"%i\", &n) ;\n\t\t\toptval = (optval & 0x0F) | (n << 4) ;\n\t\t\treturn ;\n\n\t\tcase OUTPUT:\n\t\t\tn = 0 ;\n\t\t\tsscanf (p, \"%i\", &n) ;\n\t\t\toptval = (optval & 0xF0) | (n & 0x0F) ;\n\t\t\treturn ;\n\n\t\tcase DUMP:\n\t\t\tp = setup (path1, p, \".bbc\", ' ', NULL) ;\n\t\t\tsrcfile = SDL_RWFromFile (path1, \"rb\") ;\n\t\t\tif (srcfile == NULL)\n\t\t\t\terror (214, \"File or path not found\") ;\n\t\t\tb = 0 ;\n\t\t\th = 0 ;\n\t\t\tif (*p != 0x0D)\n\t\t\t    {\n\t\t\t\tunsigned long long s = strtoull (p, &p, 16) ;\n\t\t\t\tif ((s != 0) && (-1 == SDL_RWseek (srcfile, s, RW_SEEK_SET)))\n\t\t\t\t\terror (189, SDL_GetError ()) ;\n\t\t\t\twhile (*p == ' ') p++ ;\n\t\t\t\tif (*p == '+')\n\t\t\t\t\th = strtol (p + 1, &p, 16) ;\n\t\t\t\telse if (*p != 0x0D)\n\t\t\t\t\th = strtoull (p, &p, 16) - s ;\n\t\t\t\tb = s & 0xFFFFFFFF ;\n\t\t\t    }\n\t\t\tdo\n\t\t\t    {\n\t\t\t\tint i ;\n\t\t\t\tunsigned char dbuff[16] ;\n\t\t\t\tif (flags & (ESCFLG | KILL))\n\t\t\t\t    {\n\t\t\t\t\tSDL_RWclose (srcfile) ;\n\t\t\t\t\ttrap () ;\n\t\t\t\t    }\n\t\t\t\tn = SDL_RWread (srcfile, dbuff, 1, 16 - (b & 15)) ;\n\t\t\t\tif (n <= 0) break ;\n\t\t\t\tif ((h > 0) && (n > h)) n = h ; \n\t\t\t\tmemset (path1, ' ', 80) ;\n\t\t\t\tsprintf (path1, \"%08X  \", b) ;\n\t\t\t\tfor (i = 0; i < n; i++)\n\t\t\t\t    {\n\t\t\t\t\tsprintf (path1 + 10 + 3 * i, \"%02X \", dbuff[i]) ;\n\t\t\t\t\tif ((dbuff[i] >= ' ') && (dbuff[i] <= '~'))\n\t\t\t\t\t\tpath1[59+i] = dbuff[i] ;\n\t\t\t\t\telse\n\t\t\t\t\t\tpath1[59+i] = '.' ;\n\t\t\t\t    }\n\t\t\t\t\tpath1[10 + 3 * n] = ' ' ; path1[75] = 0 ;\n\t\t\t\ttext (path1) ;\n\t\t\t\tcrlf () ;\n\t\t\t\tb += n ;\n\t\t\t\th -= n ;\n\t\t\t    }\n\t\t\twhile (h) ;\n\t\t\tSDL_RWclose (srcfile) ;\n\t\t\treturn ;\n\t} ;\n\n\terror (254, \"Bad command\") ;\n}\n\n"
  },
  {
    "path": "src/bbccon.c",
    "content": "/*****************************************************************\\\n*       BBC BASIC Minimal Console Version                         *\n*       Copyright (C) R. T. Russell, 2021-2025                    *\n*                                                                 *\n*       bbccon.c Main program, Initialisation, Keyboard handling  *\n*       Version 0.48a, 13-Feb-2025                                *\n\\*****************************************************************/\n\n#define _GNU_SOURCE\n#define __USE_GNU\n#include <stdlib.h>\n#include <stdio.h>\n#include <stdint.h>\n#include <unistd.h>\n#include <string.h>\n#include <time.h>\n#include <math.h>\n#include \"bbccon.h\"\n#define HISTORY 100  // Number of items in command history\n#define ESCTIME 200  // Milliseconds to wait for escape sequence\n#define QRYTIME 1000 // Milliseconds to wait for cursor query response\n#define QSIZE 32     // Twice longest expected escape sequence\n\n#ifdef _WIN32\n#include <windows.h>\n#include <conio.h>\ntypedef int timer_t ;\n#undef WM_APP\n#define myftell _ftelli64\n#define myfseek _fseeki64\n#define PLATFORM \"Win32\"\n#define realpath(N,R) _fullpath((R),(N),_MAX_PATH)\n#define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x4\n#define DISABLE_NEWLINE_AUTO_RETURN 0x8\n#define ENABLE_VIRTUAL_TERMINAL_INPUT 0x200\nBOOL WINAPI K32EnumProcessModules (HANDLE, HMODULE*, DWORD, LPDWORD) ;\n#else\n#include <termios.h>\n#include <signal.h>\n#include <pthread.h>\n#include <sys/mman.h>\n#include <sys/stat.h>\n#include <sys/ioctl.h>\n#include \"dlfcn.h\"\n#define myftell ftell\n#define myfseek fseek\n#define PLATFORM \"Linux\"\n#define WM_TIMER 275\n#endif\n\n#ifdef __WIN64__\n#undef PLATFORM\n#define PLATFORM \"Win64\"\n#endif\n\n#ifdef __APPLE__\n#include <dispatch/dispatch.h>\n#include <mach-o/dyld.h>\ntypedef dispatch_source_t timer_t ;\ndispatch_queue_t timerqueue ;\n#undef PLATFORM\n#define PLATFORM \"MacOS\"\n#endif\n\n#undef MAX_PATH\n#define MAX(X,Y) (((X) > (Y)) ? (X) : (Y))\n\n// Program constants:\n#define SCREEN_WIDTH  640\n#define SCREEN_HEIGHT 500\n#define MAX_PATH 260\n#define AUDIOLEN 441 * 4\n\n// Global variables (external linkage):\n\nvoid *userRAM = NULL ;\nvoid *progRAM = NULL ;\nvoid *userTOP = NULL ;\nconst int bLowercase = 0 ;    // Dummy\nconst char szVersion[] = \"BBC BASIC for \"PLATFORM\" Console \"VERSION ;\nconst char szNotice[] = \"(C) Copyright R. T. Russell, \"YEAR ;\nchar *szLoadDir ;\nchar *szLibrary ;\nchar *szUserDir ;\nchar *szTempDir ;\nchar *szCmdLine ;\nintptr_t MaximumRAM = MAXIMUM_RAM ;\ntimer_t UserTimerID ;\nunsigned int palette[256] ;\nvoid *TTFcache[1] ;\n\n// Array of VDU command lengths:\nstatic int vdulen[] = {\n   0,   1,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,\n   0,   1,   2,   5,   0,   0,   1,   9,   8,   5,   0,   1,   4,   4,   0,   2 } ;\n\n// Keycode translation table:\nstatic unsigned char xkey[64] = {\n   0, 139, 138, 137, 136,   0, 131,   0, 130,   0,   0,   0,   0,   0,   0,   0,\n 145, 146, 147, 148,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,\n   0,   0, 134, 135,   0, 132, 133,   0,   0,   0,   0,   0,   0,   0,   0, 149,\n   0, 150, 151, 152, 153, 154,   0, 155, 156,   0,   0,   0,   0,   0,   0,   0 } ;\n\n// Declared in bbcans.c:\nvoid oscli (char *) ;\nvoid xeqvdu (int, int, int) ;\nchar *setup (char *, char *, char *, char, unsigned char *) ;\n\n// Declared in bbmain.c:\nvoid error (int, const char *) ;\nvoid text (const char *) ;\t// Output NUL-terminated string\nvoid crlf (void) ;\t\t// Output a newline\n\n// Declared in bbeval.c:\nunsigned int rnd (void) ;\t// Return a pseudo-random number\n\n// Interpreter entry point:\nint basic (void *, void *, void *) ;\n\n// Forward references:\nunsigned char osbget (void*, int*) ;\nvoid osbput (void*, unsigned char) ;\nvoid quiet (void) ;\n\n// Dummy functions:\nvoid gfxPrimitivesSetFont(void) { } ;\nvoid gfxPrimitivesGetFont(void) { } ;\nvoid RedefineChar(void) { } ;\n\n// File scope variables:\nstatic unsigned char inputq[QSIZE] ;\nstatic volatile int inpqr = 0, inpqw = 0 ;\n\n// Put to STDIN queue:\nstatic int putinp (unsigned char inp)\n{\n\tunsigned char bl = inpqw ;\n\tunsigned char al = (bl + 1) % QSIZE ;\n\tif (al != inpqr)\n\t    {\n\t\tinputq[bl] = inp ;\n\t\tinpqw = al ;\n\t\treturn 1 ;\n\t    }\n\treturn 0 ;\n}\n\n// Get from STDIN queue:\nstatic int getinp (unsigned char *pinp)\n{\n\tunsigned char bl = inpqr ;\n\tif (bl != inpqw)\n\t    {\n\t\t*pinp = inputq[bl] ;\n\t\tinpqr = (bl + 1) % QSIZE ;\n\t\treturn 1 ;\n\t    }\n\treturn 0 ;\n}\n\n#ifdef _WIN32\n#define RTLD_DEFAULT (void *)(-1)\nstatic void *dlsym (void *handle, const char *symbol)\n{\n\tvoid *procaddr ;\n\tHMODULE modules[100] ;\n\tlong unsigned int i, needed ;\n\tK32EnumProcessModules ((HANDLE)-1, modules, sizeof (modules), &needed) ;\n\tfor (i = 0; i < needed / sizeof (HMODULE); i++)\n\t    {\n\t\tprocaddr = GetProcAddress (modules[i], symbol) ;\n\t\tif (procaddr != NULL) break ;\n\t    }\n\treturn procaddr ;\n}\n\nstatic DWORD WINAPI myThread (void *parm)\n{\n\tint ch ;\n\tlong unsigned int nread ;\n\n\twhile (ReadFile (GetStdHandle(STD_INPUT_HANDLE), &ch, 1, &nread, NULL))\n\t    {\n\t\tif (nread)\n\t\t\twhile (putinp (ch) == 0)\n\t\t\t\tsleep (0) ;\n\t\telse\n\t\t\tsleep (0) ;\n\t    }\n\treturn 0 ;\n}\n\n#else\n\nvoid *myThread (void *parm)\n{\n\tint ch ;\n\tsize_t nread ;\n\n\tdo\n\t    {\n\t\tnread = read (STDIN_FILENO, &ch, 1) ;\n\t\tif (nread)\n\t\t\twhile (putinp (ch) == 0)\n\t\t\t\tusleep (1) ;\n\t\telse\n\t\t\tusleep (1) ;\n\t    }\n\twhile (nread >= 0) ;\n\treturn 0 ;\n}\n#endif\n\n#ifdef __linux__\nstatic void *mymap (uintptr_t size)\n{\n\tFILE *fp ;\n\tchar line[256] ;\n\tvoid *start, *finish, *base = (void *) 0x400000 ;\n\n\tfp = fopen (\"/proc/self/maps\", \"r\") ;\n\tif (fp == NULL)\n\t\treturn NULL ;\n\n\twhile (NULL != fgets (line, 256, fp))\n\t    {\n\t\tsscanf (line, \"%p-%p\", &start, &finish) ;\n\t\tstart = (void *)((size_t)start & -0x1000) ; // page align (GCC extension)\n\t\tif (start >= (base + size)) \n\t\t\treturn base ;\n\t\tbase = (void *)(((size_t)finish + 0xFFF) & -0x1000) ; // page align\n\t    }\n\treturn base ;\n}\n#endif\n\n// Put event into event queue, unless full:\nint putevt (heapptr handler, int msg, int wparam, int lparam)\n{\n\tunsigned char bl = evtqw ;\n\tunsigned char al = bl + 8 ;\n\tint index = bl >> 2 ;\n\tif ((al == evtqr) || (eventq == NULL))\n\t\treturn 0 ;\n\teventq[index] = lparam ;\n\teventq[index + 1] = msg ;\n\teventq[index + 64] = wparam ;\n\teventq[index + 65] = handler ;\n\tevtqw = al ;\n\treturn 1 ;\n}\n\n// Get event from event queue, unless empty:\nstatic heapptr getevt (void)\n{\n\theapptr handler ;\n\tunsigned char al = evtqr ;\n\tint index = al >> 2 ;\n\tflags &= ~ALERT ;\n\tif ((al == evtqw) || (eventq == NULL))\n\t\treturn 0 ;\n\tlParam = eventq[index] ;\n\tiMsg = eventq[index + 1] ;\n\twParam = eventq[index + 64] ;\n\thandler = eventq[index + 65] ;\n\tal += 8 ;\n\tevtqr = al ;\n\tif (al != evtqw)\n\t\tflags |= ALERT ;\n\treturn handler ;\n}\n\n// Put keycode to keyboard queue:\nstatic int putkey (char key)\n{\n\tunsigned char bl = kbdqw ;\n\tunsigned char al = bl + 1 ;\n\tif ((key == 0x1B) && !(flags & ESCDIS))\n\t    {\n\t\tflags |= ESCFLG ;\n\t\treturn 0 ;\n\t    }\n\tif (al != kbdqr)\n\t    {\n\t\tkeybdq[(int) bl] = key ;\n\t\tkbdqw = al ;\n\t\treturn 1 ;\n\t    }\n\treturn 0 ;\n}\n\n// Get keycode (if any) from keyboard queue:\nint getkey (unsigned char *pkey)\n{\n\tunsigned char bl = kbdqr ;\n\tif (bl != kbdqw)\n\t    {\n\t\t*pkey = keybdq[(int) bl] ;\n\t\tkbdqr = bl + 1 ;\n\t\treturn 1 ;\n\t    }\n\treturn 0 ;\n}\n\n// Get millisecond tick count:\nunsigned int GetTicks (void)\n{\n#ifdef _WIN32\n\treturn timeGetTime () ;\n#else\n\tstruct timespec ts ;\n\tif (clock_gettime (CLOCK_MONOTONIC, &ts))\n\t\tclock_gettime (CLOCK_REALTIME, &ts) ;\n\treturn (ts.tv_sec * 1000) + (ts.tv_nsec / 1000000) ;\n#endif\n}\n\nstatic int kbchk (void)\n{\n\treturn (inpqr != inpqw) ;\n}\n\nstatic unsigned char kbget (void)\n{\n\tunsigned char ch = 0 ;\n\tgetinp (&ch) ;\n\treturn ch ;\n}\n\nstatic int kwait (unsigned int timeout)\n{\n\tint ready ;\n\ttimeout += GetTicks () ;\n\twhile (!(ready = kbchk ()) && (GetTicks() < timeout))\n\t\tusleep (1) ;\n\treturn ready ;\n}\n\n// Returns 1 if the cursor position was read successfully or 0 if it was aborted\n// (in which case *px and *py will be unchanged) or if px and py are both NULL.\nint stdin_handler (int *px, int *py)\n{\n\tint wait = (px != NULL) || (py != NULL) ;\n\tstatic char report[16] ;\n\tstatic char *p = report, *q = report ;\n\tunsigned char ch ;\n\n\tif (wait)\n\t    {\n\t\tprintf (\"\\033[6n\") ;\n\t\tfflush (stdout) ;\n\t    }\n\n\tdo\n\t    {\n\t\tif (kbchk ())\n\t\t    {\n\t\t\tch = kbget () ;\n\t\t\t\t\n\t\t\tif (ch == 0x1B)\n\t\t\t    {\n\t\t\t\tif (p != report)\n\t\t\t\t\tq = p ;\n\t\t\t\t*p++ = 0x1B ;\n\t\t\t    }\n\t\t\telse if (p != report)\n\t\t\t    {\n\t\t\t\tif (p < report + sizeof(report))\n\t\t\t\t\t*p++ = ch ;\n\t\t\t\tif ((ch >= 'A') && (ch <= '~') && (ch != '[') && (ch != 'O') &&\n\t\t\t\t\t((*(q + 1) == '[') || (*(q + 1) == 'O')))\n\t\t\t\t    {\n\t\t\t\t\tp = q ;\n\t\t\t\t\tq = report ;\n\t\t\t\t\t\t\t\t\n\t\t\t\t\tif (ch == 'R')\n\t\t\t\t\t    {\n\t\t\t\t\t\tint row = 0, col = 0 ;\n\t\t\t\t\t\tif (sscanf (p, \"\\033[%d;%dR\", &row, &col) == 2)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tif (px) *px = col - 1 ;\n\t\t\t\t\t\t\tif (py) *py = row - 1 ;\n\t\t\t\t\t\t\treturn 1 ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t    }\n\t\t\t\t\tif (ch == '~')\n\t\t\t\t\t    {\n\t\t\t\t\t\tint key ;\n\t\t\t\t\t\tif (sscanf (p, \"\\033[%d~\", &key))\n\t\t\t\t\t\t\tputkey (xkey[key + 32]) ;\n\t\t\t\t\t    }\n\t\t\t\t\telse\n\t\t\t\t\t\tputkey (xkey[ch - 64]) ;\n\t\t\t\t    }\n\t\t\t    }\n\t\t\telse\n\t\t\t    {\n\t\t\t\tputkey (ch) ;\n\t\t\t\tif (((kbdqr - kbdqw - 1) & 0xFF) < 50)\n\t\t\t\t    {\n\t\t\t\t\tp = report ;\n\t\t\t\t\tq = report ;\n\t\t\t\t\twait = 0 ; // abort\n\t\t\t\t    }\n\t\t\t    }\n\t\t    }\n\t\tif ((wait || (p != report)) && !kwait (wait ? QRYTIME : ESCTIME))\n\t\t    {\n\t\t\tq = report ;\n\t\t\twhile (q < p) putkey (*q++) ;\n\t\t\tp = report ;\n\t\t\tq = report ;\n\t\t\twait = 0 ; // abort\n\t\t    }\n\t    }\n\twhile (wait || (p != report)) ;\n\treturn 0 ;\n}\n\n// Get text cursor (caret) coordinates:\nvoid getcsr(int *px, int *py)\n{\n\tif (!stdin_handler (px, py))\n\t    {\n\t\tif (px != NULL) *px = -1 ; // Flag unable to read\n\t\tif (py != NULL) *py = -1 ;\n\t    }\n}\n\n// SOUND Channel,Amplitude,Pitch,Duration\nvoid sound (short chan, signed char ampl, unsigned char pitch, unsigned char duration)\n{\n}\n\n// ENVELOPE N,T,PI1,PI2,PI3,PN1,PN2,PN3,AA,AD,AS,AR,ALA,ALD\nvoid envel (signed char *env)\n{\n}\n\n// Disable sound generation:\nvoid quiet (void)\n{\n}\n\n// Get pixel RGB colour:\nint vtint (int x, int y)\n{\n\terror (255, \"Sorry, not implemented\") ;\n\treturn -1 ;\n}\n\n// Get current MODE number:\nint getmodeno (void)\n{\n\treturn modeno ;\n}\n\n// Get nearest palette index:\nint vpoint (int x, int y)\n{\n\terror (255, \"Sorry, not implemented\") ;\n\treturn -1 ;\n}\n\nint vgetc (int x, int y)\n{\n\terror (255, \"Sorry, not implemented\") ;\n\treturn -1 ;\n}\n\nint osbyte (int al, int xy)\n{\n\terror (255, \"Sorry, not implemented\") ;\n\treturn -1 ;\n}\n\nvoid osword (int al, void *xy)\n{\n\terror (255, \"Sorry, not implemented\") ;\n\treturn ;\n}\n\n// Get string width in graphics units:\nint widths (unsigned char *s, int l)\n{\n\terror (255, \"Sorry, not implemented\") ;\n\treturn -1 ;\n}\n\n// ADVAL(n)\nint adval (int n)\n{\n\tif (n == -1)\n\t    \treturn (kbdqr - kbdqw - 1) & 0xFF ;\n\terror (255, \"Sorry, not implemented\") ;\n\treturn -1 ;\n}\n\n// APICALL\n#ifdef __llvm__\nlong long apicall_ (long long (*APIfunc) (size_t, size_t, size_t, size_t, size_t, size_t,\n\t\t\tsize_t, size_t, size_t, size_t, size_t, size_t,\n\t\t\tdouble, double, double, double, double, double, double, double), PARM *p)\n{\n\t\treturn APIfunc (p->i[0], p->i[1], p->i[2], p->i[3], p->i[4], p->i[5],\n\t\t\t\tp->i[6], p->i[7], p->i[8], p->i[9], p->i[10], p->i[11],\n\t\t\tp->f[0], p->f[1], p->f[2], p->f[3], p->f[4], p->f[5], p->f[6], p->f[7]) ;\n}\ndouble fltcall_ (double (*APIfunc) (size_t, size_t, size_t, size_t, size_t, size_t,\n\t\t\tsize_t, size_t, size_t, size_t, size_t, size_t,\n\t\t\tdouble, double, double, double, double, double, double, double), PARM *p)\n{\n\t\treturn APIfunc (p->i[0], p->i[1], p->i[2], p->i[3], p->i[4], p->i[5],\n\t\t\t\tp->i[6], p->i[7], p->i[8], p->i[9], p->i[10], p->i[11],\n\t\t\tp->f[0], p->f[1], p->f[2], p->f[3], p->f[4], p->f[5], p->f[6], p->f[7]) ;\n}\n#else\n#pragma GCC optimize (\"O0\")\nlong long apicall_ (long long (*APIfunc) (size_t, size_t, size_t, size_t, size_t, size_t,\n\t\t\t      size_t, size_t, size_t, size_t, size_t, size_t), PARM *p)\n{\n#ifdef ARMHF\n\tif (p->f[0] == 0.0)\n\t\tmemcpy (&p->f[0], &p->i[0], 48) ;\n#endif\n\tlong long wrapper (volatile double a, volatile double b, volatile double c, volatile double d,\n\t\t\tvolatile double e, volatile double f, volatile double g, volatile double h)\n\t{\n\t\tlong long result ;\n#ifdef __WIN64__\n\t\tstatic void* savesp ;\n\t\tasm (\"mov %%rsp,%0\" : \"=m\" (savesp)) ;\n#elif defined _WIN32\n\t\tstatic void* savesp ;\n\t\tasm (\"mov %%esp,%0\" : \"=m\" (savesp)) ;\n#endif\n\t\tresult = APIfunc (p->i[0], p->i[1], p->i[2], p->i[3], p->i[4], p->i[5],\n\t\t\t\tp->i[6], p->i[7], p->i[8], p->i[9], p->i[10], p->i[11]) ;\n#ifdef __WIN64__\n\t\tasm (\"mov %0,%%rsp\" : : \"m\" (savesp)) ;\n#elif defined _WIN32\n\t\tasm (\"mov %0,%%esp\" : : \"m\" (savesp)) ;\n#endif\n\t\treturn result ;\n\t}\n\n\treturn wrapper (p->f[0], p->f[1], p->f[2], p->f[3], p->f[4], p->f[5], p->f[6], p->f[7]) ;\n}\ndouble fltcall_ (double (*APIfunc) (size_t, size_t, size_t, size_t, size_t, size_t,\n\t\t\t      size_t, size_t, size_t, size_t, size_t, size_t), PARM *p)\n{\n#ifdef ARMHF\n\tif (p->f[0] == 0.0)\n\t\tmemcpy (&p->f[0], &p->i[0], 48) ;\n#endif\n\tdouble wrapper (volatile double a, volatile double b, volatile double c, volatile double d,\n\t\t\tvolatile double e, volatile double f, volatile double g, volatile double h)\n\t{\n\t\tdouble result ;\n#ifdef __WIN64__\n\t\tstatic void* savesp ;\n\t\tasm (\"mov %%rsp,%0\" : \"=m\" (savesp)) ;\n#elif defined _WIN32\n\t\tstatic void* savesp ;\n\t\tasm (\"mov %%esp,%0\" : \"=m\" (savesp)) ;\n#endif\n\t\tresult = APIfunc (p->i[0], p->i[1], p->i[2], p->i[3], p->i[4], p->i[5],\n\t\t\t\tp->i[6], p->i[7], p->i[8], p->i[9], p->i[10], p->i[11]) ;\n#ifdef __WIN64__\n\t\tasm (\"mov %0,%%rsp\" : : \"m\" (savesp)) ;\n#elif defined _WIN32\n\t\tasm (\"mov %0,%%esp\" : : \"m\" (savesp)) ;\n#endif\n\t\treturn result ;\n\t}\n\n\treturn wrapper (p->f[0], p->f[1], p->f[2], p->f[3], p->f[4], p->f[5], p->f[6], p->f[7]) ;\n}\n#pragma GCC reset_options\n#endif\n\n// Call a function in the context of the GUI thread:\nsize_t guicall (void *func, PARM *parm)\n{\n\treturn apicall_ (func, parm) ;\n}\n\n// Check for Escape (if enabled) and kill:\nvoid trap (void)\n{\n\tstdin_handler (NULL, NULL) ;\n\n\tif (flags & KILL)\n\t\terror (-1, NULL) ; // Quit\n\tif (flags & ESCFLG)\n\t    {\n\t\tflags &= ~ESCFLG ;\n\t\tkbdqr = kbdqw ;\n\t\tquiet () ;\n\t\tif (exchan)\n\t\t    {\n\t\t\tfclose (exchan) ;\n\t\t\texchan = NULL ;\n\t\t    }\n\t\terror (17, NULL) ; // 'Escape'\n\t    }\n}\n\n// Test for escape, kill, pause, single-step, flash and alert:\nheapptr xtrap (void)\n{\n\ttrap () ;\n\tif (flags & ALERT)\n\t\treturn getevt () ;\n\treturn 0 ;\n}\n\n// Report a 'fatal' error:\nvoid faterr (const char *msg)\n{\n\terror (512, \"\") ;\n}\n\n// Read keyboard or F-key expansion:\nstatic int rdkey (unsigned char *pkey)\n{\n\tif (keyptr)\n\t    {\n\t\t*pkey = *keyptr++ ;\n\t\tif (*keyptr == 0)\n\t\t\tkeyptr = NULL ;\n\t\treturn 1 ;\n\t    }\n\n\twhile (getkey (pkey))\n\t    {\n\t\tint keyno = 0 ;\n\n\t\tif ((*pkey >= 128) && (*pkey < 156))\n\t\t\tkeyno = *pkey ^ 144 ;\n\t\tif (keyno >= 24)\n\t\t\tkeyno -= 12 ;\n\t\tif (*pkey == 127)\n\t\t    {\n\t\t\t*pkey = 8 ;\n\t\t\tkeyno = 24 ;\n\t\t    }\n\t\tif (keyno)\n\t\t    {\n\t\t\tkeyptr = *((unsigned char **)keystr + keyno) ;\n\t\t\tif (keyptr)\n\t\t\t    {\n\t\t\t\t*pkey = *keyptr++ ;\n\t\t\t\tif (*keyptr == 0)\n\t\t\t\t\tkeyptr = NULL ;\n\t\t\t    }\n\t\t    }\n\t\treturn 1 ;\n\t    }\n\treturn 0 ;\n}\n\n// Wait a maximum period for a keypress, or test key asynchronously:\nint oskey (int wait)\n{\n\tif (wait >= 0)\n\t    {\n\t\tunsigned int start = GetTicks () ;\n\t\twhile (1)\n\t\t    {\n\t\t\tunsigned char key ;\n\t\t\ttrap () ;\n\t\t\tif (rdkey (&key))\n\t\t\t\treturn (int) key ;\n\t\t\tif ((unsigned int)(GetTicks () - start) >= wait * 10)\n\t\t\t\treturn -1 ;\n\t\t\tusleep (5000) ;\n\t\t    }\n\t    }\n\n\tif (wait == -256)\n\t\treturn 's' ;\n\n\treturn 0 ;\n}\n\n// Wait for keypress:\nunsigned char osrdch (void)\n{\n\tunsigned char key ;\n\tif (exchan)\n\t{\n\t\tif (fread (&key, 1, 1, exchan))\n\t\t\treturn key ;\n\t\tfclose (exchan) ;\n \t\texchan = NULL ;\n\t}\n\n\tif (optval >> 4)\n\t\treturn osbget ((void *)(size_t)(optval >> 4), NULL) ;\n\n\twhile (!rdkey (&key))\n\t{\n\t\tusleep (5000) ;\n\t\ttrap () ;\n\t}\n\treturn key ;\n}\n\n// Output byte to VDU stream:\nvoid oswrch (unsigned char vdu)\n{\n\tunsigned char *pqueue = vduq ;\n\n\tif (optval & 0x0F)\n\t    {\n\t\tosbput ((void *)(size_t)(optval & 0x0F), vdu) ;\n\t\treturn ;\n\t    }\n\n\tif (spchan)\n\t    {\n\t\tif (0 == fwrite (&vdu, 1, 1, spchan))\n\t\t    {\n\t\t\tfclose (spchan) ;\n\t\t\tspchan = NULL ;\n\t\t    }\n\t    }\n\n\tif (vduq[10] != 0)\t\t// Filling queue ?\n\t    {\n\t\tvduq[9 - vduq[10]] = vdu ;\n\t\tvduq[10] -- ;\n\t\tif (vduq[10] != 0)\n\t\t\treturn ;\n\t\tvdu = vduq[9] ;\n\t\tif (vdu >= 0x80)\n\t\t    {\n\t\t\txeqvdu (vdu << 8, 0, 0) ;\n\t\t\tint ecx = (vdu >> 4) & 3 ;\n\t\t\tif (ecx == 0) ecx++ ;\n\t\t\tpqueue -= ecx - 9 ;\n\t\t\t\tfor ( ; ecx > 0 ; ecx--)\n\t\t\t\t\txeqvdu (*pqueue++ << 8, 0, 0) ;\n\t\t\tfflush (stdout) ;\n\t\t\treturn ;\n\t\t    }\n\t    }\n\telse if (vdu >= 0x20)\n\t    {\n\t\tif ((vdu >= 0x80) && (vflags & UTF8))\n\t\t    {\n\t\t\tchar ah = (vdu >> 4) & 3 ;\n\t\t\tif (ah == 0) ah++ ;\n\t\t\tvduq[10] = ah ;\t// No. of bytes to follow\n\t\t\tvduq[9] = vdu ;\n\t\t\treturn ;\n\t\t    }\n\t\txeqvdu (vdu << 8, 0, 0) ;\n\t\tfflush (stdout) ;\n\t\treturn ;\n\t    }\n\telse\n\t    {\n\t\tvduq[10] = vdulen[(int) vdu] ;\n\t\tvduq[9] = vdu ;\n\t\tif (vduq[10] != 0)\n\t\t\treturn ;\n\t    }\n\n// Mapping of VDU queue to UserEvent parameters,\n// VDU 23 (defchr) has the most parameter bytes:\n//\n//          0  ^\n// status-> 0  | ev.user.code\n//          V  |\n//          h  v\n//          g  ^\n//          f  | ev.user.data1\n//          e  |\n//          d  v\n//          c  ^\n//          b  | ev.user.data2\n//          a  |\n//  vduq->  n  v\n\n\txeqvdu (*(int*)(pqueue + 8) & 0xFFFF, *(int*)(pqueue + 4), *(int*)pqueue) ;\n}\n\n// Prepare for outputting an error message:\nvoid reset (void)\n{\n\tvduq[10] = 0 ;\t// Flush VDU queue\n\tkeyptr = NULL ;\t// Cancel *KEY expansion\n\toptval = 0 ;\t// Cancel I/O redirection\n\treflag = 0 ;\t// *REFRESH ON\n}\n\n// Input and edit a string :\nvoid osline (char *buffer)\n{\n\tstatic char *history[HISTORY] = {NULL} ;\n\tstatic int empty = 0 ;\n\tint current = empty ;\n\tchar *eol = buffer ;\n\tchar *p = buffer ;\n\t*buffer = 0x0D ;\n\tint n ;\n\n\twhile (1)\n\t    {\n\t\tunsigned char key ;\n\n\t\tkey = osrdch () ;\n\t\tswitch (key)\n\t\t    {\n\t\t\tcase 0x0A:\n\t\t\tcase 0x0D:\n\t\t\t\tn = (char *) memchr (buffer, 0x0D, 256) - buffer ;\n\t\t\t\tif (n == 0)\n\t\t\t\t\treturn ;\n\t\t\t\tif ((current == (empty + HISTORY - 1) % HISTORY) &&\n\t\t\t\t\t\t(0 == memcmp (buffer, history[current], n)))\n\t\t\t\t\treturn ;\n\t\t\t\thistory[empty] = malloc (n + 1) ;\n\t\t\t\tmemcpy (history[empty], buffer, n + 1) ;\n\t\t\t\tempty = (empty + 1) % HISTORY ;\n\t\t\t\tif (history[empty])\n\t\t\t\t    {\n\t\t\t\t\tfree (history[empty]) ;\n\t\t\t\t\thistory[empty] = NULL ;\n\t\t\t\t    }\n\t\t\t\treturn ;\n\n\t\t\tcase 8:\n\t\t\tcase 127:\n\t\t\t\tif (p > buffer)\n\t\t\t\t    {\n\t\t\t\t\tchar *q = p ;\n\t\t\t\t\tdo p-- ; while ((vflags & UTF8) && (*(signed char*)p < -64)) ;\n\t\t\t\t\toswrch (8) ;\n\t\t\t\t\tmemmove (p, q, buffer + 256 - q) ;\n\t\t\t\t    }\n\t\t\t\tbreak ;\n\n\t\t\tcase 21:\n\t\t\t\twhile (p > buffer)\n\t\t\t\t    {\n\t\t\t\t\tchar *q = p ;\n\t\t\t\t\tdo p-- ; while ((vflags & UTF8) && (*(signed char*)p < -64)) ;\n\t\t\t\t\toswrch (8) ;\n\t\t\t\t\tmemmove (p, q, buffer + 256 - q) ;\n\t\t\t\t    }\n\t\t\t\tbreak ;\n\n\t\t\tcase 130:\n\t\t\t\twhile (p > buffer)\n\t\t\t\t    {\n\t\t\t\t\toswrch (8) ;\n\t\t\t\t\tdo p-- ; while ((vflags & UTF8) && (*(signed char*)p < -64)) ;\n\t\t\t\t    }\n\t\t\t\tbreak ;\n\n\t\t\tcase 131:\n\t\t\t\twhile (*p != 0x0D)\n\t\t\t\t    {\n\t\t\t\t\toswrch (9) ;\n\t\t\t\t\tdo p++ ; while ((vflags & UTF8) && (*(signed char*)p < -64)) ;\n\t\t\t\t    }\n\t\t\t\tbreak ;\n\n\t\t\tcase 134:\n\t\t\t\tvflags ^= IOFLAG ;\n\t\t\t\tif (vflags & IOFLAG)\n\t\t\t\t\tprintf (\"\\033[1 q\") ;\n\t\t\t\telse\n\t\t\t\t\tprintf (\"\\033[3 q\\033[7 q\") ;\n\t\t\t\tbreak ;\n\n\t\t\tcase 135:\n\t\t\t\tif (*p != 0x0D)\n\t\t\t\t    {\n\t\t\t\t\tchar *q = p ;\n\t\t\t\t\tdo q++ ; while ((vflags & UTF8) && (*(signed char*)q < -64)) ;\n\t\t\t\t\tmemmove (p, q, buffer + 256 - q) ;\n\t\t\t\t    }\n\t\t\t\tbreak ;\n\n\t\t\tcase 136:\n\t\t\t\tif (p > buffer)\n\t\t\t\t    {\n\t\t\t\t\toswrch (8) ;\n\t\t\t\t\tdo p-- ; while ((vflags & UTF8) && (*(signed char*)p < -64)) ;\n\t\t\t\t    }\n\t\t\t\tbreak ;\n\n\t\t\tcase 137:\n\t\t\t\tif (*p != 0x0D)\n\t\t\t\t    {\n\t\t\t\t\toswrch (9) ;\n\t\t\t\t\tdo p++ ; while ((vflags & UTF8) && (*(signed char*)p < -64)) ;\n\t\t\t\t    }\n\t\t\t\tbreak ;\n\n\t\t\tcase 138:\n\t\t\tcase 139:\n\t\t\t\tif (key == 138)\n\t\t\t\t\tn = (current + 1) % HISTORY ;\n\t\t\t\telse\n\t\t\t\t\tn = (current + HISTORY - 1) % HISTORY ;\n\t\t\t\tif (history[n])\n\t\t\t\t    {\n\t\t\t\t\tchar *s = history[n] ;\n\t\t\t\t\twhile (*p != 0x0D)\n\t\t\t\t\t    {\n\t\t\t\t\t\toswrch (9) ;\n\t\t\t\t\t\tdo p++ ; while ((vflags & UTF8) &&\n\t\t\t\t\t\t\t(*(signed char*)p < -64)) ;\n\t\t\t\t\t    }\n\t\t\t\t\twhile (p > buffer)\n\t\t\t\t\t    {\n\t\t\t\t\t\toswrch (127) ;\n\t\t\t\t\t\tdo p-- ; while ((vflags & UTF8) &&\n\t\t\t\t\t\t\t (*(signed char*)p < -64)) ;\n\t\t\t\t \t   }\n\t\t\t\t\twhile ((*s != 0x0D) && (p < (buffer + 255)))\n\t\t\t\t\t    {\n\t\t\t\t\t\toswrch (*s) ;\n\t\t\t\t\t\t*p++ = *s++ ;\n\t\t\t\t\t    }\n\t\t\t\t\t*p = 0x0D ;\n\t\t\t\t\tcurrent = n ;\n\t\t\t\t    }\n\t\t\t\tbreak ;\n\n\t\t\tcase 9:\n\t\t\tcase 132:\n\t\t\tcase 133:\n\t\t\tcase 140:\n\t\t\tcase 141:\n\t\t\t\tbreak ;\n\n\t\t\tdefault:\n\t\t\t\tif (p < (buffer + 255))\n\t\t\t\t    {\n\t\t\t\t\tif (key != 0x0A)\n\t\t\t\t\t    {\n\t\t\t\t\t\toswrch (key) ;\n\t\t\t\t\t    }\n\t\t\t\t\tif (key >= 32)\n\t\t\t\t\t    {\n\t\t\t\t\t\tmemmove (p + 1, p, buffer + 255 - p) ;\n\t\t\t\t\t\t*p++ = key ;\n\t\t\t\t\t\t*(buffer + 255) = 0x0D ;\n\t\t\t\t\t\tif ((*p != 0x0D) && (vflags & IOFLAG))\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tchar *q = p ;\n\t\t\t\t\t\t\tdo q++ ; while ((vflags & UTF8) &&\n\t\t\t\t\t\t\t\t(*(signed char*)q < -64)) ;\n\t\t\t\t\t\t\tmemmove (p, q, buffer + 256 - q) ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t    }\n\t\t\t\t    }\n\t\t    }\n\n\t\tif (*p != 0x0D)\n\t\t    {\n\t\t\toswrch (23) ;\n\t\t\toswrch (1) ;\n\t\t\tfor (n = 8 ; n != 0 ; n--)\n\t\t\t\toswrch (0) ;\n\t\t    }\n\t\tn = 0 ;\n\t\twhile (*p != 0x0D)\n\t\t    {\n\t\t\toswrch (*p++) ;\n\t\t\tn++ ;\n\t\t    }\n\t\tfor (int i = 0; i < (eol - p); i++)\n\t\t\toswrch (32) ;\n\t\tfor (int i = 0; i < (eol - p); i++)\n\t\t\toswrch (8) ;\n\t\teol = p ;\n\t\twhile (n)\n\t\t    {\n\t\t\tif (!(vflags & UTF8) || (*(signed char*)p >= -64))\n\t\t\t\toswrch (8) ;\n\t\t\tp-- ;\n\t\t\tn-- ;\n\t\t    }\n\t\tif (*p != 0x0D)\n\t\t    {\n\t\t\toswrch (23) ;\n\t\t\toswrch (1) ;\n\t\t\toswrch (1) ;\n\t\t\tfor (n = 7 ; n != 0 ; n--)\n\t\t\t\toswrch (0) ;\n\t\t    }\n\t    }\n}\n\n// Get TIME\nint getime (void)\n{\n\tunsigned int n = GetTicks () ;\n\tif (n < lastick)\n\t\ttimoff += 0x19999999 ;\n\tlastick = n ;\n\treturn n / 10 + timoff ;\n}\n\nint getims (void)\n{\n\tchar *at ;\n\ttime_t tt ;\n\n\ttime (&tt) ;\n\tat = ctime (&tt) ;\n\t*(int *)(accs + 0) = *(int *)(at + 0) ; // Day-of-week\n\t*(int *)(accs + 4) = *(int *)(at + 8) ; // Day-of-month\n\t*(int *)(accs + 7) = *(int *)(at + 4) ; // Month\n\t*(int *)(accs + 11) = *(int *)(at + 20) ; // Year\n\tif (*(accs + 4) == ' ') *(accs + 4) = '0' ;\n\tmemcpy (accs + 16, at + 11, 8) ; // Time\n\taccs[3] = '.' ;\n\taccs[15] = ',' ;\n\treturn 24 ;\n}\n\n// Put TIME\nvoid putime (int n)\n{\n\tlastick = GetTicks () ;\n\ttimoff = n - lastick / 10 ;\n}\n\n// Wait for a specified number of centiseconds:\n// On some platforms specifying a negative value causes a task switch\nvoid oswait (int cs)\n{\n\tunsigned int start = GetTicks () ;\n\tif (cs < 0)\n\t    {\n\t\tsleep (0) ;\n\t\treturn ;\n\t    }\n\tcs *= 10 ;\n\tdo\n\t    {\n\t\ttrap () ;\n\t\tusleep (1000) ;\n\t    }\n\twhile ((unsigned int)(GetTicks () - start) < cs) ;\n}\n\n\n// MOUSE x%, y%, b%\nvoid mouse (int *px, int *py, int *pb)\n{\n\tif (px) *px = 0 ;\n\tif (py) *py = 0 ;\n\tif (pb) *pb = 0 ;\n}\n\n// MOUSE ON [type]\nvoid mouseon (int type)\n{\n}\n\n// MOUSE OFF\nvoid mouseoff (void)\n{\n}\n\n// MOUSE TO x%, y%\nvoid mouseto (int x, int y)\n{\n}\n\n// Get address of an API function:\nvoid *sysadr (char *name)\n{\n\tvoid *addr = NULL ;\n\tif (addr != NULL)\n\t\treturn addr ; \n\treturn dlsym (RTLD_DEFAULT, name) ;\n}\n\n// Call an emulated OS subroutine (if CALL or USR to an address < 0x10000)\nint oscall (int addr)\n{\n\tint al = stavar[1] ;\n\tvoid *xy = (void *) ((size_t)stavar[24] | ((size_t)stavar[25] << 8)) ;\n\tswitch (addr)\n\t    {\n\t\tcase 0xFFE0: // OSRDCH\n\t\t\treturn (int) osrdch () ;\n\n\t\tcase 0xFFE3: // OSASCI\n\t\t\tif (al != 0x0D)\n\t\t\t    {\n\t\t\t\toswrch (al) ;\n\t\t\t\treturn 0 ;\n\t\t\t    }\n\n\t\tcase 0xFFE7: // OSNEWL\n\t\t\tcrlf () ;\n\t\t\treturn 0 ;\n\n\t\tcase 0xFFEE: // OSWRCH\n\t\t\toswrch (al) ;\n\t\t\treturn 0 ;\n\n\t\tcase 0xFFF1: // OSWORD\n\t\t\tmemcpy (xy + 1, &bbcfont[*(unsigned char*)(xy) << 3], 8) ;\n\t\t\treturn 0 ;\n\n\t\tcase 0xFFF4: // OSBYTE\n\t\t\treturn (vgetc (0x80000000, 0x80000000) << 8) ;\n\n\t\tcase 0xFFF7: // OSCLI\n\t\t\toscli (xy) ;\n\t\t\treturn 0 ; \n\n\t\tdefault:\n\t\t\terror (8, NULL) ; // 'Address out of range'\n\t    }\n\treturn 0 ;\n}\n\n// Request memory allocation above HIMEM:\nheapptr oshwm (void *addr, int settop)\n{\n#ifdef _WIN32\n\tif ((addr < userRAM) ||\n\t    (addr > (userRAM + MaximumRAM)) ||\n\t    (NULL == VirtualAlloc (userRAM, addr - userRAM,\n\t\t\tMEM_COMMIT, PAGE_EXECUTE_READWRITE)))\n\t\treturn 0 ;\n#else\n\tif ((addr < userRAM) ||\n\t    (addr > (userRAM + MaximumRAM)))\n\t\treturn 0 ;\n#endif\n\telse\n\t    {\n\t\tif (settop && (addr > userTOP))\n\t\t\tuserTOP = addr ;\n\t\treturn (size_t) addr ;\n\t    }\n}\n\n// Get a file context from a channel number:\nstatic FILE *lookup (void *chan)\n{\n\tFILE *file = NULL ;\n\n\tif ((chan >= (void *)1) && (chan <= (void *)(MAX_PORTS + MAX_FILES)))\n\t\tfile = (FILE*) filbuf[(size_t)chan] ;\n\telse\n\t\tfile = (FILE*) chan ;\n\n\tif (file == NULL)\n\t\terror (222, \"Invalid channel\") ;\n\treturn file ;\n}\n\n// Load a file into memory:\nvoid osload (char *p, void *addr, unsigned int max)\n{\n\tint n ;\n\tFILE *file ;\n\tif (NULL == setup (path, p, \".bbc\", '\\0', NULL))\n\t\terror (253, \"Bad string\") ;\n\tfile = fopen (path, \"rb\") ;\n\tif (file == NULL)\n\t\terror (214, \"File or path not found\") ;\n\tn = fread (addr, 1, max, file) ;\n\tfclose (file) ;\n\tif (n == 0)\n\t\terror (189, \"Couldn't read from file\") ;\n}\n\n// Save a file from memory:\nvoid ossave (char *p, void *addr, unsigned int len)\n{\n\tint n ;\n\tFILE *file ;\n\tif (NULL == setup (path, p, \".bbc\", '\\0', NULL))\n\t\terror (253, \"Bad string\") ;\n\tfile = fopen (path, \"w+b\") ;\n\tif (file == NULL)\n\t\terror (214, \"Couldn't create file\") ;\n\tn = fwrite (addr, 1, len, file) ;\n\tfclose (file) ;\n\tif (n < len)\n\t\terror (189, \"Couldn't write to file\") ;\n}\n\n// Open a file:\nvoid *osopen (int type, char *p)\n{\n\tint chan, first, last ;\n\tFILE *file ;\n\tif (setup (path, p, \".bbc\", '\\0', NULL) == NULL)\n\t\treturn 0 ;\n\tif (type == 0)\n\t\tfile = fopen (path, \"rb\") ;\n\telse if (type == 1)\n\t\tfile = fopen (path, \"w+b\") ;\n\telse\n\t\tfile = fopen (path, \"r+b\") ;\n\tif (file == NULL)\n\t\treturn NULL ;\n\n#ifdef _WIN32\n\tif (strchr (path+3, ':'))\n#else\n\tif (0 == memcmp (path, \"/dev\", 4))\n#endif\n\t    {\n\t\tfirst = 1 ;\n\t\tlast = MAX_PORTS ;\n\t    }\n\telse\n\t    {\n\t\tfirst = MAX_PORTS + 1 ;\n\t\tlast = MAX_PORTS + MAX_FILES ;\n\t    }\n\n\tfor (chan = first; chan <= last; chan++)\n\t    {\n\t\tif (filbuf[chan] == 0)\n\t\t    {\n\t\t\tfilbuf[chan] = file ;\n\t\t\tif (chan > MAX_PORTS)\n\t\t\t\t*(int *)&fcbtab[chan - MAX_PORTS - 1] = 0 ;\n\t\t\treturn (void *)(size_t)chan ;\n\t\t    }\n\t    }\n\tfclose (file) ;\n\terror (192, \"Too many open files\") ;\n\treturn NULL ; // never happens\n}\n\n// Read file to 256-byte buffer:\nstatic void readb (FILE *context, unsigned char *buffer, FCB *pfcb)\n{\n\tint amount ;\n\tif (context == NULL)\n\t\terror (222, \"Invalid channel\") ;\n//\tif (pfcb->p != pfcb->o) Windows requires fseek to be called ALWAYS\n\tmyfseek (context, (pfcb->p - pfcb->o) & 0xFF, SEEK_CUR) ;\n#ifdef _WIN32\n\tlong long ptr = myftell (context) ;\n#endif\n\tamount = fread (buffer, 1, 256, context) ;\n#ifdef _WIN32\n\tmyfseek (context, ptr + amount, SEEK_SET) ; // filetest.bbc fix (32-bit)\n#endif\n\tpfcb->p = 0 ;\n\tpfcb->o = amount & 0xFF ;\n\tpfcb->w = 0 ;\n\tpfcb->f = (amount != 0) ;\n\twhile (amount < 256)\n\t\tbuffer[amount++] = 0 ;\n\treturn ;\n}\n\n// Write 256-byte buffer to file:\nstatic int writeb (FILE *context, unsigned char *buffer, FCB *pfcb)\n{\n\tint amount ;\n\tif (pfcb->f >= 0)\n\t    {\n\t\tpfcb->f = 0 ;\n\t\treturn 0 ;\n\t    }\n\tif (context == NULL)\n\t\terror (222, \"Invalid channel\") ;\n\tif (pfcb->f & 1)\n\t\tmyfseek (context, pfcb->o ? -pfcb->o : -256, SEEK_CUR) ;\n#ifdef _WIN32\n\tlong long ptr = myftell (context) ;\n#endif\n\tamount = fwrite (buffer, 1, pfcb->w ? pfcb->w : 256, context) ;\n#ifdef _WIN32\n\tmyfseek (context, ptr + amount, SEEK_SET) ; // assemble.bbc asmtst64.bba fix\n#endif\n\tpfcb->o = amount & 0xFF ;\n\tpfcb->w = 0 ;\n\tpfcb->f = 1 ;\n\treturn (amount == 0) ;\n}\n\n// Close a single file:\nstatic int closeb (void *chan)\n{\n\tint result ;\n\tif ((chan > (void *)MAX_PORTS) && (chan <= (void *)(MAX_PORTS+MAX_FILES)))\n\t    {\n\t\tint index = (size_t) chan - MAX_PORTS - 1 ;\n\t\tunsigned char *buffer = (unsigned char *) filbuf[0] + index * 0x100 ;\n\t\tFCB *pfcb = &fcbtab[index] ;\n\t\tFILE *handle = (FILE *) filbuf[(size_t) chan] ;\n\t\tif (writeb (handle, buffer, pfcb))\n\t\t\treturn 1 ;\n\t    }\n\tresult = fclose (lookup (chan)) ;\n\tif ((chan >= (void *)1) && (chan <= (void *)(MAX_PORTS + MAX_FILES)))\n\t\tfilbuf[(size_t)chan] = 0 ;\n\treturn result ;\n}\n\n// Read a byte:\nunsigned char osbget (void *chan, int *peof)\n{\n\tunsigned char byte = 0 ;\n\tif (peof != NULL)\n\t\t*peof = 0 ;\n\tif (chan <= (void *)MAX_PORTS)\n\t    {\n#ifdef _WIN32\n\t\tintptr_t file = _get_osfhandle (fileno (lookup (chan))) ;\n\t\tReadFile ((HANDLE) file, &byte, 1, NULL, NULL) ;\n#else\n\t\tread (fileno (lookup (chan)), &byte, 1) ;\n#endif\n\t\treturn byte ;\n\t    }\n\tif ((chan > (void *)MAX_PORTS) && (chan <= (void *)(MAX_PORTS+MAX_FILES)))\n\t    {\n\t\tint index = (size_t) chan - MAX_PORTS - 1 ;\n\t\tunsigned char *buffer = (unsigned char *) filbuf[0] + index * 0x100 ;\n\t\tFCB *pfcb = &fcbtab[index] ;\n\t\tif (pfcb->p == pfcb->o)\n\t\t    {\n\t\t\tFILE *handle = (FILE *) filbuf[(size_t) chan] ;\n\t\t\tif (writeb (handle, buffer, pfcb))\n\t\t\t\terror (189, \"Couldn't write to file\") ;\n\t\t\treadb (handle, buffer, pfcb) ;\n\t\t\tif ((pfcb->f & 1) == 0)\n\t\t\t    {\n\t\t\t\tif (peof != NULL)\n\t\t\t\t\t*peof = 1 ;\n\t\t\t\treturn 0 ;\n\t\t\t    } \n\t\t    }\n\t\treturn buffer[pfcb->p++] ;\n\t    }\n\tif ((0 == fread (&byte, 1, 1, lookup (chan))) && (peof != NULL))\n\t\t*peof = 1 ;\n\treturn byte ;\n}\n\n// Write a byte:\nvoid osbput (void *chan, unsigned char byte)\n{\n\tif (chan <= (void *) MAX_PORTS)\n\t    {\n#ifdef _WIN32\n\t\tintptr_t file = _get_osfhandle (fileno (lookup (chan))) ;\n\t\tWriteFile ((HANDLE) file, &byte, 1, NULL, NULL) ;\n#else\n\t\twrite (fileno (lookup (chan)), &byte, 1) ;\n#endif\n\t\treturn ;\n\t    }\n\tif ((chan > (void *)MAX_PORTS) && (chan <= (void *)(MAX_PORTS+MAX_FILES)))\n\t    {\n\t\tint index = (size_t) chan - MAX_PORTS - 1 ;\n\t\tunsigned char *buffer = (unsigned char *) filbuf[0] + index * 0x100 ;\n\t\tFCB *pfcb = &fcbtab[index] ;\n\t\tif (pfcb->p == pfcb->o)\n\t\t    {\n\t\t\tFILE *handle = (FILE *) filbuf[(size_t) chan] ;\n\t\t\tif (writeb (handle, buffer, pfcb))\n\t\t\t\terror (189, \"Couldn't write to file\") ;\n\t\t\treadb (handle, buffer, pfcb) ;\n\t\t    }\n\t\tbuffer[pfcb->p++] = byte ;\n\t\tpfcb->w = pfcb->p ;\n\t\tpfcb->f |= 0x80 ;\n\t\treturn ;\n\t    }\n\tif (0 == fwrite (&byte, 1, 1, lookup (chan)))\n\t\terror (189, \"Couldn't write to file\") ;\n}\n\n// Get file pointer:\nlong long getptr (void *chan)\n{\n\tmyfseek (lookup (chan), 0, SEEK_CUR) ;\n\tlong long ptr = myftell (lookup (chan)) ;\n\tif (ptr == -1)\n\t\terror (189, \"Couldn't read file pointer\") ;\n\tif ((chan > (void *)MAX_PORTS) && (chan <= (void *)(MAX_PORTS+MAX_FILES)))\n\t    {\n\t\tFCB *pfcb = &fcbtab[(size_t) chan - MAX_PORTS - 1] ;\n\t\tif (pfcb->o)\n\t\t\tptr -= pfcb->o ;\n\t\telse if (pfcb->f & 1)\n\t\t\tptr -= 256 ;\n\t\tif (pfcb->p)\n\t\t\tptr += pfcb->p ;\n\t\telse if (pfcb->f & 0x81)\n\t\t\tptr += 256 ;\n\t    }\n\treturn ptr ;\n}\n\n// Set file pointer:\nvoid setptr (void *chan, long long ptr)\n{\n\tif ((chan > (void *)MAX_PORTS) && (chan <= (void *)(MAX_PORTS+MAX_FILES)))\n\t    {\n\t\tint index = (size_t) chan - MAX_PORTS - 1 ;\n\t\tunsigned char *buffer = (unsigned char *) filbuf[0] + index * 0x100 ;\n\t\tFCB *pfcb = &fcbtab[index] ;\n\t\tFILE *handle = (FILE *) filbuf[(size_t) chan] ;\n\t\tif (writeb (handle, buffer, pfcb))\n\t\t\terror (189, \"Couldn't write to file\") ;\n\t\t*(int *)pfcb = 0 ;\n\t    }\n\tif (-1 == myfseek (lookup (chan), ptr, SEEK_SET))\n\t\terror (189, \"Couldn't set file pointer\") ;\n}\n\n// Get file size:\nlong long getext (void *chan)\n{\n\tFILE *file = lookup (chan) ;\n\tif (chan <= (void *)MAX_PORTS)\n\t    {\n#ifdef _WIN32\n\t\tCOMSTAT cs = {0} ;\n\t\tClearCommError ((HANDLE) _get_osfhandle (fileno (file)), NULL, &cs) ;\n\t\treturn cs.cbInQue ;\n#elif defined(__linux__) || defined(__APPLE__)\n\t\tint waiting = 0 ;\n\t\tioctl (fileno (file), FIONREAD, &waiting) ;\n\t\treturn waiting ;\n#else\n\t\treturn 0 ;\n#endif\n\t    }\n\tlong long newptr = getptr (chan) ;\n\tmyfseek (file, 0, SEEK_CUR) ;\n\tlong long ptr = myftell (file) ;\n\tmyfseek (file, 0, SEEK_END) ;\n\tlong long size = myftell (file) ;\n\tif ((ptr == -1) || (size == -1))\n\t\terror (189, \"Couldn't set file pointer\") ;\n\tmyfseek (file, ptr, SEEK_SET) ;\n\tif (newptr > size)\n\t\treturn newptr ;\n\treturn size ;\n}\n\n// Set file size (if possible):\nvoid setext (void *chan, long long ptr)\n{\n\terror (255, \"Sorry, not implemented\") ;\n}\n\n// Get EOF status:\nlong long geteof (void *chan)\n{\n\tif ((chan > (void *)MAX_PORTS) && (chan <= (void *)(MAX_PORTS+MAX_FILES)))\n\t    {\n\t\tFCB *pfcb = &fcbtab[(size_t) chan - MAX_PORTS - 1] ;\n\t\tif ((pfcb->p != 0) && (pfcb->o == 0) && ((pfcb->f) & 1))\n\t\t\treturn 0 ;\n\t    }\n\treturn -(getptr (chan) >= getext (chan)) ;\n}\n\n// Close file (if chan = 0 all open files closed and errors ignored):\nvoid osshut (void *chan)\n{\n\tif (chan == NULL)\n\t    {\n\t\tint chan ;\n\t\tfor (chan = MAX_PORTS + MAX_FILES; chan > 0; chan--)\n\t\t    {\n\t\t\tif (filbuf[chan])\n\t\t\t\tcloseb ((void *)(size_t)chan) ; // ignore errors\n\t\t    }\n\t\treturn ;\n\t    }\n\tif (closeb (chan))\n\t\terror (189, \"Couldn't close file\") ;\n}\n\n// Start interpreter:\nint entry (void *immediate)\n{\n\n\taccs = (char*) userRAM ;\t\t// String accumulator\n\tbuff = (char*) accs + ACCSLEN ;\t\t// Temporary string buffer\n\tpath = (char*) buff + 0x100 ;\t\t// File path\n\tkeystr = (char**) (path + 0x100) ;\t// *KEY strings\n\tkeybdq = (char*) keystr + 0x100 ;\t// Keyboard queue\n\teventq = (void*) keybdq + 0x100 ;\t// Event queue\n\tfilbuf[0] = (eventq + 0x200 / 4) ;\t// File buffers n.b. pointer arithmetic!!\n\n\tfarray = 1 ;\t\t\t\t// @hfile%() number of dimensions\n\tfasize = MAX_PORTS + MAX_FILES + 4 ;\t// @hfile%() number of elements\n\n#ifndef _WIN32\n\tvflags = UTF8 ;\t\t\t\t// Not |= (fails on Linux build)\n#endif\n\n\tprand.l = (unsigned int) GetTicks () ;\t/// Seed PRNG\n\tprand.h = (prand.l == 0) ;\n\trnd () ;\t\t\t\t// Randomise !\n\n\tmemset (keystr, 0, 256) ;\n\txeqvdu (0x1700, 0, 0x1F) ;\t\t// initialise VDU drivers\n\tspchan = NULL ;\n\texchan = NULL ;\n\n\tif (immediate == (void *) 1)\n\t    {\n\t\ttext (szVersion) ;\n\t\tcrlf () ;\n\t\ttext (szNotice) ;\n\t\tcrlf () ;\n\t    }\n\n\treturn basic (progRAM, userTOP, immediate) ;\n}\n\n#ifdef _WIN32\nstatic void UserTimerProc (UINT uUserTimerID, UINT uMsg, void *dwUser, void *dw1, void *dw2)\n{\n\tif (timtrp)\n\t\tputevt (timtrp, WM_TIMER, 0, 0) ;\n\tflags |= ALERT ; // Always, for periodic ESCape detection\n\treturn ;\n}\n\ntimer_t StartTimer (int period)\n{\n\treturn timeSetEvent (period, 0, (LPTIMECALLBACK) UserTimerProc, 0, TIME_PERIODIC) ; \n}\n\nvoid StopTimer (timer_t timerid)\n{\n\ttimeKillEvent (timerid) ;\n}\n\nvoid SystemIO (int flag)\n{\n\tif (!flag)\n\t\tSetConsoleMode (GetStdHandle(STD_INPUT_HANDLE), ENABLE_VIRTUAL_TERMINAL_INPUT) ; \n}\n#endif\n\n#ifdef __linux__\nstatic void UserTimerProc (int sig, siginfo_t *si, void *uc)\n{\n\tif (timtrp)\n\t\tputevt (timtrp, WM_TIMER, 0, 0) ;\n\tflags |= ALERT ; // Always, for periodic ESCape detection\n}\n\ntimer_t StartTimer (int period)\n{\n\ttimer_t timerid ;\n\tstruct sigevent evp = {0} ;\n\tstruct sigaction sig ;\n\tstruct itimerspec tm ;\n\n\ttm.it_interval.tv_nsec = (period % 1000) * 1000000 ;\n\ttm.it_interval.tv_sec = (period / 1000) ;\n\ttm.it_value = tm.it_interval ;\n\n\tsig.sa_handler = (void *) &UserTimerProc ;\n\tsigemptyset (&sig.sa_mask) ;\n\tsig.sa_flags = 0 ;\n\n\tevp.sigev_value.sival_ptr = &timerid ;\n\tevp.sigev_notify = SIGEV_SIGNAL ;\n\tevp.sigev_signo = SIGALRM ;\n\n\ttimer_create (CLOCK_MONOTONIC, &evp, &timerid) ;\n\ttimer_settime (timerid, 0, &tm, NULL) ;\n\tsigaction (SIGALRM, &sig, NULL) ;\n\n\treturn timerid ;\n}\n\nvoid StopTimer (timer_t timerid)\n{\n\ttimer_delete (timerid) ;\n}\n\nvoid SystemIO (int flag)\n{\n\tstruct termios tmp ;\n\ttcgetattr (STDIN_FILENO, &tmp) ;\n\tif (flag)\n\t    {\n\t\ttmp.c_lflag |= ISIG ;\n\t\ttmp.c_oflag |= OPOST ;\n\t    }\n\telse\n\t    {\n\t\ttmp.c_lflag &= ~ISIG ;\n\t\ttmp.c_oflag &= ~OPOST ;\n\t    }\n\ttcsetattr (STDIN_FILENO, TCSAFLUSH, &tmp) ;\n}\n#endif\n\n#ifdef __APPLE__\nstatic void UserTimerProc (dispatch_source_t timerid)\n{\n\tif (timtrp)\n\t\tputevt (timtrp, WM_TIMER, 0, 0) ;\n\tflags |= ALERT ; // Always, for periodic ESCape detection\n}\n\ntimer_t StartTimer (int period)\n{\n\tdispatch_source_t timerid ;\n\tdispatch_time_t start ;\n\n\ttimerid = dispatch_source_create (DISPATCH_SOURCE_TYPE_TIMER, 0, 0, timerqueue) ;\n\n\tdispatch_source_set_event_handler (timerid, ^{UserTimerProc(timerid);}) ;\n\tstart = dispatch_time (DISPATCH_TIME_NOW, period * 1000000) ;\n\tdispatch_source_set_timer (timerid, start, period * 1000000, 0) ;\n\tdispatch_resume (timerid) ;\n\n\treturn timerid ;\n}\n\nvoid StopTimer (timer_t timerid)\n{\n\tdispatch_source_cancel (timerid) ;\n}\n\nvoid SystemIO (int flag)\n{\n\tstruct termios tmp ;\n\ttcgetattr (STDIN_FILENO, &tmp) ;\n\tif (flag)\n\t    {\n\t\ttmp.c_lflag |= ISIG ;\n\t\ttmp.c_oflag |= OPOST ;\n\t    }\n\telse\n\t    {\n\t\ttmp.c_lflag &= ~ISIG ;\n\t\ttmp.c_oflag &= ~OPOST ;\n\t    }\n\ttcsetattr (STDIN_FILENO, TCSAFLUSH, &tmp) ;\n}\n#endif\n\nstatic void SetLoadDir (char *path)\n{\n\tchar temp[MAX_PATH] ;\n\tchar *p ;\n\tstrcpy (temp, path) ;\n\tp = strrchr (temp, '/') ;\n\tif (p == NULL) p = strrchr (temp, '\\\\') ;\n\tif (p)\n\t{\n\t\t*p = '\\0' ;\n\t\trealpath (temp, szLoadDir) ;\n\t}\n\telse\n\t{\n\t\tgetcwd (szLoadDir, MAX_PATH) ;\n\t}\n\n#ifdef _WIN32\n\tstrcat (szLoadDir, \"\\\\\") ;\n#else\n\tstrcat (szLoadDir, \"/\") ;\n#endif\n}\n\nint main (int argc, char* argv[])\n{\nint i ;\nchar *env, *p, *q ;\nint exitcode = 0 ;\nvoid *immediate = NULL ;\nFILE *ProgFile, *TestFile ;\nchar szAutoRun[MAX_PATH + 1] ;\n\n#ifdef _WIN32\nint orig_stdout = -1 ;\nint orig_stdin = -1 ;\nHANDLE hThread = NULL ;\n\n\tplatform = 0 ;\n\n\t// Allocate the program buffer\n\t// First reserve the maximum amount:\n\n\tchar *pstrVirtual = NULL ;\n\n\twhile ((MaximumRAM >= DEFAULT_RAM) &&\n\t\t(NULL == (pstrVirtual = (char*) VirtualAlloc (NULL, MaximumRAM,\n\t\t\t\t\t\tMEM_RESERVE, PAGE_EXECUTE_READWRITE))))\n\t\tMaximumRAM /= 2 ;\n\n\t// Now commit the initial amount to physical RAM:\n\n\tif (pstrVirtual != NULL)\n\t\tuserRAM = (char*) VirtualAlloc (pstrVirtual, DEFAULT_RAM,\n\t\t\t\t\t\tMEM_COMMIT, PAGE_EXECUTE_READWRITE) ;\n\n#endif\n\n#ifdef __linux__\nstatic struct termios orig_termios ;\npthread_t hThread = 0 ;\n\n\tplatform = 1 ;\n\n\tvoid *base = NULL ;\n\n\twhile ((MaximumRAM >= MINIMUM_RAM) && (NULL == (base = mymap (MaximumRAM))))\n\t\tMaximumRAM /= 2 ;\n\n\t// Now commit the initial amount to physical RAM:\n\n\tif (base != NULL)\n\t\tuserRAM = mmap (base, MaximumRAM, PROT_EXEC | PROT_READ | PROT_WRITE, \n\t\t\t    MAP_FIXED | MAP_PRIVATE | MAP_ANON | MAP_NORESERVE, -1, 0) ;\n\n#endif\n\n#ifdef __APPLE__\nstatic struct termios orig_termios ;\npthread_t hThread = NULL ;\n\n\tplatform = 2 ;\n\n\twhile ((MaximumRAM >= MINIMUM_RAM) &&\n\t\t\t\t((void*)-1 == (userRAM = mmap ((void *)0x10000000, MaximumRAM, \n\t\t\t\t\t\tPROT_EXEC | PROT_READ | PROT_WRITE, \n\t\t\t\t\t\tMAP_PRIVATE | MAP_ANON, -1, 0))) &&\n\t\t\t\t((void*)-1 == (userRAM = mmap ((void *)0x10000000, MaximumRAM, \n\t\t\t\t\t\tPROT_READ | PROT_WRITE, \n\t\t\t\t\t\tMAP_PRIVATE | MAP_ANON, -1, 0))))\n\t\tMaximumRAM /= 2 ;\n#endif\n\n\tif ((userRAM == NULL) || (userRAM == (void *)-1))\n\t    {\n\t\tfprintf(stderr, \"Couldn't allocate memory\\r\\n\") ;\n\t\treturn 9 ;\n\t    }\n\n#if defined __x86_64__ || defined __aarch64__ \n\tplatform |= 0x40 ;\n#endif\n\n\tif (MaximumRAM > DEFAULT_RAM)\n\t\tuserTOP = userRAM + DEFAULT_RAM ;\n\telse\n\t\tuserTOP = userRAM + MaximumRAM ;\n\tprogRAM = userRAM + PAGE_OFFSET ; // Will be raised if @cmd$ exceeds 255 bytes\n\tszCmdLine = progRAM - 0x100 ;     // Must be immediately below default progRAM\n\tszTempDir = szCmdLine - 0x100 ;   // Strings must be allocated on BASIC's heap\n\tszUserDir = szTempDir - 0x100 ;\n\tszLibrary = szUserDir - 0x100 ;\n\tszLoadDir = szLibrary - 0x100 ;\n\n// Get path to executable:\n\n#ifdef _WIN32\n\tif (GetModuleFileName(NULL, szLibrary, 256) == 0)\n#endif\n#ifdef __linux__\n\ti = readlink (\"/proc/self/exe\", szLibrary, 255) ;\n\tif (i > 0)\n\t\tszLibrary[i] = '\\0' ;\n\telse\n#endif\n#ifdef __APPLE__\n\ti = 256 ;\n\tif (_NSGetExecutablePath(szLibrary, (unsigned int *)&i))\n#endif\n\t    {\n\t\tp = realpath (argv[0], NULL) ;\n\t\tif (p)\n\t\t    {\n\t\t\tstrncpy (szLibrary, p, 256) ;\n\t\t\tfree (p) ;\n\t\t    }\n\t    }\n\n\tfor (i = 1; i < argc; i++)\n\t    {\n\t\tif (NULL != strstr(argv[i], \"-quit\")) immediate = (void *) -1 ;\n\t\tif (NULL != strstr(argv[i], \"-load\")) immediate = (void *) 1 ;\n\t\tif (NULL != strstr(argv[i], \"-help\")) immediate = (void *) 2 ;\n\t\tif (immediate)\n\t\t    {\n\t\t\targc-- ;\n\t\t\twhile (i++ < argc)\n\t\t\t\targv[i - 1] = argv[i] ;\n\t\t\tbreak ;\n\t\t    }\n\t    }\n\n\tif (immediate == (void *) 2)\n\t    {\n\t\tprintf (\"%s %s\\n\\n\", szVersion, szNotice) ;\n\t\tprintf (\"The command syntax is: bbcbasic [option] [bbcfile]\\n\\n\") ;\n\t\tprintf (\"where <option> is one of:\\n\") ;\n\t\tprintf (\"  -help  Display this message.\\n\") ;\n\t\tprintf (\"  -load  Load BASIC program <bbcfile> but don't run it.\\n\") ;\n\t\tprintf (\"  -quit  Run BASIC program <bbcfile> and quit when it ends.\\n\") ;\n\t\tprintf (\"otherwise run <bbcfile> (if any) and stay in the interpreter.\\n\") ;\n\t\treturn 0 ;\n\t    }\n\n\tstrcpy (szAutoRun, szLibrary) ;\n\n\tq = strrchr (szAutoRun, '/') ;\n\tif (q == NULL) q = strrchr (szAutoRun, '\\\\') ;\n\tp = strrchr (szAutoRun, '.') ;\n\n\tif (p > q) *p = '\\0' ;\n\tstrcat (szAutoRun, \".bbc\") ;\n\n\tTestFile = fopen (szAutoRun, \"rb\") ;\n\tif (TestFile != NULL)\n\t\tfclose (TestFile) ;\n\telse if ((argc >= 2) && (*argv[1] != '-'))\n\t\tstrcpy (szAutoRun, argv[1]) ;\n\n\tstrcpy (szCmdLine, szAutoRun) ;\n\n\tif (argc >= 2)\n\t    {\n\t\t*szCmdLine = 0 ;\n\t\tfor (i = 1; i < argc; i++)\n\t\t    {\n\t\t\tif (i > 1) strcat (szCmdLine, \" \") ;\n\t\t\tstrcat (szCmdLine, argv[i]) ;\n\t\t    }\n\t\tprogRAM = (void *)(((intptr_t) szCmdLine + strlen(szCmdLine) + 256) & -256) ;\n\t    }\n\n\tif (*szAutoRun && (NULL != (ProgFile = fopen (szAutoRun, \"rb\"))))\n\t    {\n\t\tunsigned char *esi = progRAM ;\n\t\tfread (progRAM, 1, userTOP - progRAM, ProgFile) ;\n\t\tfclose (ProgFile) ;\n\t\twhile (*esi)\n\t\t    {\n\t\t\tesi += (int) *esi ; \n\t\t\tif (*(esi-1) != 0x0D) \n\t\t\t    {\n\t\t\t\tfprintf(stderr, \"%s isn't a valid internal-format (.bbc) file\\r\\n\",\n\t\t\t\t\t\tszAutoRun) ;\n\t\t\t\treturn 10 ;\n\t\t\t    }\n\t\t    }\n\t    }\n\telse\n\t    {\n\t\timmediate = (void *) 1 ;\n\t\t*szAutoRun = '\\0' ;\n\t    }\n\n\tenv = getenv (\"TMPDIR\") ;\n\tif (!env) env = getenv (\"TMP\") ;\n\tif (!env) env = getenv (\"TEMP\") ;\n\tif (env) strcpy (szTempDir, env) ;\n\telse strcpy (szTempDir, \"/tmp\") ;\n\n\tenv = getenv (\"HOME\") ;\n\tif (!env) env = getenv (\"APPDATA\") ;\n\tif (!env) env = getenv (\"HOMEPATH\") ;\n\tif (env) strcpy (szUserDir, env) ;\n\n\tp = strrchr (szLibrary, '/') ;\n\tif (p == NULL) p = strrchr (szLibrary, '\\\\') ;\n\tif (p)\n\t\t*p = '\\0' ;\n\n#ifdef _WIN32\n\tstrcat (szTempDir, \"\\\\\") ;\n\tstrcat (szLibrary, \"\\\\lib\\\\\") ;\n\tstrcat (szUserDir, \"\\\\bbcbasic\\\\\") ;\n\tmkdir (szUserDir) ;\n#else\n\tstrcat (szTempDir, \"/\") ;\n\tstrcat (szLibrary, \"/lib/\") ;\n\tstrcat (szUserDir, \"/bbcbasic/\") ;\n\tmkdir (szUserDir, 0777) ;\n#endif\n\n\tSetLoadDir (szAutoRun) ;\n\n\tif (argc < 2)\n\t\t*szCmdLine = 0 ;\n\telse if (TestFile == NULL)\n\t\tchdir (szLoadDir) ;\n\n\t// Set console for raw input and ANSI output:\n#ifdef _WIN32\n\t// n.b.  Description of DISABLE_NEWLINE_AUTO_RETURN at MSDN is completely wrong!\n\t// What it actually does is to disable converting LF into CRLF, not wrap action.\n\tif (GetConsoleMode(GetStdHandle(STD_OUTPUT_HANDLE), (LPDWORD) &orig_stdout)) \n\t\tSetConsoleMode (GetStdHandle(STD_OUTPUT_HANDLE), orig_stdout | ENABLE_WRAP_AT_EOL_OUTPUT |\n                                ENABLE_VIRTUAL_TERMINAL_PROCESSING | DISABLE_NEWLINE_AUTO_RETURN) ;\n\tif (GetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), (LPDWORD) &orig_stdin)) \n\t\tSetConsoleMode (GetStdHandle(STD_INPUT_HANDLE), ENABLE_VIRTUAL_TERMINAL_INPUT) ; \n\thThread = CreateThread (NULL, 0, myThread, 0, 0, NULL) ;\n#else\n\ttcgetattr (STDIN_FILENO, &orig_termios) ;\n\tstruct termios raw = orig_termios ;\n\traw.c_iflag &= ~(BRKINT | ICRNL | INPCK | ISTRIP | IXON) ;\n\traw.c_oflag &= ~OPOST ;\n\traw.c_cflag |= CS8 ;\n\traw.c_lflag &= ~(ECHO | ICANON | IEXTEN | ISIG) ;\n\traw.c_cc[VMIN] = 0 ;\n\traw.c_cc[VTIME] = 1 ;\n\ttcsetattr (STDIN_FILENO, TCSAFLUSH, &raw) ;\n        pthread_create(&hThread, NULL, &myThread, NULL);\n#endif\n\n#ifdef __APPLE__\n\ttimerqueue = dispatch_queue_create (\"timerQueue\", 0) ;\n#endif\n\n\tUserTimerID = StartTimer (250) ;\n\n\tflags = 0 ;\n\texitcode = entry (immediate) ;\n\n\tif (UserTimerID)\n\t\tStopTimer (UserTimerID) ;\n\n#ifdef __APPLE__\n        dispatch_release (timerqueue) ;\n#endif\n\n#ifdef _WIN32\n\tif (_isatty (_fileno (stdout)))\n\t\tprintf (\"\\033[0m\\033[!p\") ;\n\tCloseHandle (hThread) ;\n\tif (orig_stdout != -1)\n\t\tSetConsoleMode (GetStdHandle(STD_OUTPUT_HANDLE), orig_stdout) ;\n\tif (orig_stdin != -1)\n\t\tSetConsoleMode (GetStdHandle(STD_INPUT_HANDLE), orig_stdin) ;\n#else\n\tif (isatty (STDOUT_FILENO))\n\t\tprintf (\"\\033[0m\\033[!p\") ;\n\ttcsetattr(STDIN_FILENO, TCSAFLUSH, &orig_termios) ;\n#endif\n\n\texit (exitcode) ;\n}\n"
  },
  {
    "path": "src/bbccos.c",
    "content": "/*****************************************************************\\\n*       BBC BASIC Minimal Console Version                         *\n*       Copyright (C) R. T. Russell, 2025                         *\n*                                                                 *\n*       bbccos.c: Command Line Interface, ANSI VDU drivers        *\n*       Version 0.50, 22-Sep-2025                                 *\n\\*****************************************************************/\n\n#include <stdlib.h>\n#include <stdio.h>\n#include <stdint.h>\n#include <unistd.h>\n#include <ctype.h>\n#include <string.h>\n#ifdef PICO\n#include <picocos.h>\n#include \"lfswrap.h\"\nextern char *szLoadDir ;  // @dir$\nextern int dirlen;\n#else\n#include <dirent.h>\n#endif\n#include <sys/types.h>\n#include <sys/stat.h>\n#include \"bbccon.h\"\n\n#ifdef _WIN32\n#include <io.h>\ntypedef int timer_t ;\n#define myfseek _fseeki64\n#else\n#define myfseek fseek\n#endif\n\n#ifdef __APPLE__\n#include <dispatch/dispatch.h>\ntypedef dispatch_source_t timer_t ;\n#endif\n\n#undef MAX_PATH\n#define NCMDS 42\t// number of OSCLI commands\n#define POWR2 32\t// largest power-of-2 less than NCMDS\n#ifdef PICO\n#define COPYBUFLEN 512\t// length of buffer used for *COPY command\n#else\n#define COPYBUFLEN 4096\t// length of buffer used for *COPY command\n#endif\n#define _S_IWRITE 0x0080\n#define _S_IREAD 0x0100\n#define MAX_PATH 260\n#define NUMMODES 10\n\nextern void *userRAM ;\n#if defined(__x86_64__) || defined(__aarch64__) || defined(__arm64__)\n#define zero (char *) userRAM\n#else\n#define zero (char*) 0\n#endif\n\n#if defined(__arm__) || defined(__aarch64__) || defined(__arm64__) || defined(__EMSCRIPTEN__)\ntypedef __attribute__((aligned(1))) double variant;\n#else\ntypedef long double variant ;\n#endif\n\ntypedef __attribute__((aligned(1))) int unaligned_int;\ntypedef __attribute__((aligned(1))) short unaligned_short;\ntypedef __attribute__((aligned(1))) double unaligned_double;\ntypedef __attribute__((aligned(1))) char* unaligned_charptr;\ntypedef __attribute__((aligned(1))) long long unaligned_longlong;\n\ntypedef struct tagSTR\n{\n\tunsigned int p ; // 32 bit pointer\n\tunsigned int l ;\n} STR, *LPSTR ;\n\n// External routines:\nvoid trap (void) ;\nint oskey (int) ;\nvoid error (int, const char *) ;\nvoid oswrch (unsigned char) ;\nvoid crlf (void) ;\nvoid outchr (unsigned char) ;\nvoid text (const char*) ;\nvoid listline (signed char*, int*) ;\nvoid quiet (void) ;\ntimer_t StartTimer (int) ;\nvoid StopTimer (timer_t) ;\nvoid SystemIO (int) ;\nint stdin_handler (int*, int*) ;\nint getkey (unsigned char *) ;\n\n// Global variables:\nextern timer_t UserTimerID ;\n\nstatic short modetab[NUMMODES][5] =\n{\n        {640,512,8,16,2},      // MODE 0\n        {640,512,16,16,4},     // MODE 1\n        {640,512,32,16,16},    // MODE 2\n        {640,500,8,20,16},     // MODE 3 (3,11,15)\n        {640,512,16,16,2},     // MODE 4\n        {640,512,32,16,4},     // MODE 5\n        {640,500,16,20,16},    // MODE 6 (6,14)\n        {640,500,16,20,8},     // MODE 7 (7)\n\n        {640,512,8,16,16},     // MODE 8\n        {640,512,16,16,16}     // MODE 9\n} ;\n\nstatic char *cmds[NCMDS] = {\n\t\t\"bye\", \"cd\", \"chdir\", \"copy\", \"del\", \"delete\", \"dir\",\n\t\t\"dump\", \"era\", \"erase\", \"esc\", \"exec\", \"float\", \"fx\",\n\t\t\"help\", \"hex\", \"input\", \"key\", \"list\", \"load\", \"lock\", \"lowercase\",\n\t\t\"md\", \"mkdir\", \"output\", \"quit\", \"rd\", \"refresh\",\n\t\t\"ren\", \"rename\", \"rmdir\", \"run\", \"save\", \"spool\", \"spoolon\",\n\t\t\"stereo\", \"tempo\", \"timer\", \"tv\", \"type\", \"unlock\", \"voice\" } ;\n\nenum {\n\t\tBYE, CD, CHDIR, COPY, DEL, DELETE, DIRCMD,\n\t\tDUMP, ERA, ERASE, ESC, EXEC, FLOAT, FX,\n\t\tHELP, HEX, INPUT, KEY, LIST, LOAD, LOCK, LOWERCASE,\n\t\tMD, MKDIR, OUTPUT, QUIT, RD, REFRESH,\n\t\tREN, RENAME, RMDIR, RUN, SAVE, SPOOL, SPOOLON,\n\t\tSTEREO, TEMPO, TIMER, TV, TYPE, UNLOCK, VOICE } ;\n\n// Change to a new screen mode:\nstatic void newmode (short wx, short wy, short cx, short cy, short nc, signed char bc) \n{\n\tprintf (\"\\033[8;%d;%dt\", wy/cy, wx/cx) ;\n\n\tif (bc & 1)\n\t\tprintf (\"\\033(0\") ;\n\telse\n\t\tprintf (\"\\033(B\") ;\n\n\tif (bc & 0x80)\n\t\tprintf (\"\\033[30m\\033[107m\") ;\n\telse\n\t\tprintf (\"\\033[37m\\033[40m\") ;\n\n\tprintf (\"\\033[H\\033[J\") ;\n\tprintf (\"\\033[?25h\") ;\n\n\tscroln = 0 ;\n}\n\n//VDU 22,n - MODE n\nstatic void modechg (char al) \n{\n\tshort wx, wy, cx, cy, nc ;\n\n\tif (al >= NUMMODES)\n\t\treturn ;\n\n\twx = modetab[(int) al][0] ;\t// width\n\twy = modetab[(int) al][1] ;\t// height\n\tcx = modetab[(int) al][2] ;\t// charx\n\tcy = modetab[(int) al][3] ;\t// chary\n\tnc = modetab[(int) al][4] ;\t// no. of colours\n\tnewmode (wx, wy, cx, cy, nc, vflags & (CGAFLG + EGAFLG)) ;\n}\n\n//VDU 23, n, a, b, c, d, e, f, g, h - DEFINE CHARACTER (etc.)\nstatic void defchr (unsigned char n, unsigned char a, unsigned char b,\n\t\t    unsigned char c, unsigned char d, unsigned char e,\n\t\t    unsigned char f, unsigned char g, unsigned char h)\n{\n\tswitch (n)\n\t{\n\tcase 1:\t\t// cursor on/off\n\t\tif (a)\n\t\t\tprintf (\"\\033[?25h\") ;\n\t\telse\n\t\t\tprintf (\"\\033[?25l\") ;\n\t\tbreak ;\n\n\tcase 16:\t// enable line wrap\n\t\tcmcflg = (cmcflg & b) ^ a ;\n\t\tbreak;\n\n\tcase 22:\t// user-defined mode\n\t\tnewmode (a + 256*b, c + 256*d, e, f, g, h) ;\n\t\tif (h & 8)\n\t\t\tvflags |= UTF8 ;\n\t\telse\n\t\t\tvflags &= ~UTF8 ;\n\t\tbreak ;\n\t}\n}\n\nstatic void newline (int *px, int *py)\n{\n\tint oldrow = *py ;\n\tprintf (\"\\012\") ;\n\tif (!stdin_handler (NULL, py)) *py += 1 ;\n\tif (*px)\n\t\tprintf (\"\\033[%i;%iH\", *py + 1, *px + 1) ;\n\tif ((oldrow == *py) && (scroln & 0x80) && (--scroln == 0x7F))\n\t    {\n\t\tunsigned char ch ;\n\t\tscroln = 0x7F + oldrow ;\n\t\tdo\n\t\t    {\n\t\t\tusleep (5000) ;\n\t\t\tstdin_handler (NULL, NULL) ;\n\t\t    } \n\t\twhile ((getkey (&ch) == 0) && ((flags & (ESCFLG | KILL)) == 0)) ;\n\t    }\n}\n\n/*****************************************************************\\\n*       VDU codes                                                 *\n\\*****************************************************************/\n\n// Execute a VDU command:\n//          0  ^\n//          0  | ev.user.code\n//          V  |\n//          h  v\n//          g  ^\n//          f  | ev.user.data1\n//          e  |\n//          d  v\n//          c  ^\n//          b  | ev.user.data2\n//          a  |\n//          n  v\n\nvoid xeqvdu (int code, int data1, int data2)\n{\n\tint vdu = code >> 8 ;\n\tstatic int col = 0, row = 0 ;\n\tstatic int rhs = 999 ;\n\n#ifdef _WIN32\n\tif (!_isatty (_fileno (stdin)) || !_isatty (_fileno (stdout)))\n#else\n# ifdef PICO\n    if (0)\n# else\n\tif (!isatty (STDIN_FILENO) || !isatty (STDOUT_FILENO))\n# endif\n#endif\n\t    {\n\t\tprintf (\"%c\", vdu) ;\n\t\treturn ;\n\t    }\n\n\tif ((vflags & VDUDIS) && (vdu != 6))\n\t\treturn ;\n\n\tif ((rhs == 999) && (stdin_handler (&col, &row)))\n\t    {\n\t\tprintf (\"\\033[%i;999H\", row + 1) ;\n\t\tstdin_handler (&rhs, NULL) ;\n\t\tprintf (\"\\033[%i;%iH\", row + 1, col + 1) ;\n\t    }\n\n\tswitch (vdu)\n\t    {\n\t\tcase 2: // PRINTER ON\n\t\t\tprintf (\"\\033[5i\") ;\n\t\t  \tbreak ;\n\n\t\tcase 3: // PRINTER OFF\n\t\t\tprintf (\"\\033[4i\") ;\n\t\t\tbreak ;\n\n\t\tcase 4: // LO-RES TEXT\n\t\t\tvflags &= ~HRGFLG ;\n\t\t\tbreak ;\n\n\t\tcase 5: // HI-RES TEXT\n\t\t\tvflags |= HRGFLG ;\n\t\t\tbreak ;\n\n\t\tcase 6: // ENABLE VDU DRIVERS\n\t\t\tvflags &= ~VDUDIS ;\n\t\t\tbreak ;\n\n\t\tcase 7: // BELL\n\t\t\tprintf (\"%c\", vdu) ;\n\t\t\tbreak ;\n\n\t\tcase 8: // LEFT\n\t\t\tif (col == 0)\n\t\t\t    {\n\t\t\t\tcol = rhs ;\n\t\t\t\tif (row == 0)\n\t\t\t\t\tprintf (\"\\033M\") ;\n\t\t\t\telse\n\t\t\t\t\trow -- ;\n\t\t\t\tprintf (\"\\033[%i;%iH\", row + 1, col + 1) ;\n\t\t\t    }\n\t\t\telse\n\t\t\t    {\n\t\t\t\tcol-- ;\n\t\t\t\tprintf (\"%c\", vdu) ;\n\t\t\t    }\n\t\t\tbreak ;\n\n\t\tcase 9: // RIGHT\n\t\t\tif (col == rhs)\n\t\t\t    {\n\t\t\t\tprintf (\"\\015\") ;\n\t\t\t\tcol = 0 ; // in case of aborted cursor query\n\t\t\t\tnewline (&col, &row) ;\n\t\t\t    }\n\t\t\telse\n\t\t\t    {\n\t\t\t\tcol++ ;\n\t\t\t\tprintf (\"\\033[C\") ;\n\t\t\t    }\n\t\t\tbreak ;\n\n\t\tcase 10: // LINE FEED\n\t\t\tnewline (&col, &row) ;\n\t\t\tbreak ;\n\n\t\tcase 11: // UP\n\t\t\tprintf (\"\\033M\") ;\n\t\t\tif (!stdin_handler (&col, &row))\n\t\t\t\trow -= 1 ;\n\t\t\tbreak ;\n\n\t\tcase 12: // CLEAR SCREEN\n\t\t\tprintf (\"\\033[H\\033[J\") ;\n\t\t\tcol = 0 ;\n\t\t\trow = 0 ;\n\t\t\tbreak ;\n\n\t\tcase 13: // RETURN\n\t\t\tprintf (\"%c\", vdu) ;\n\t\t\tcol = 0 ;\n\t\t\tbreak ;\n\n\t\tcase 14: // PAGING ON\n\t\t\tscroln = 0x80 + row ;\n\t\t\tbreak ;\n\n\t\tcase 15: // PAGING OFF\n\t\t\tscroln = 0 ;\n\t\t\tbreak ;\n\n\t\tcase 17: // COLOUR n\n\t\t\tvdu = 30 + (code & 7) ;\n\t\t\tif (code & 8)\n\t\t\t\tvdu += 60 ;\n\t\t\tif (code & 0x80)\n\t\t\t\tvdu += 10 ;\n\t\t\tprintf (\"\\033[%im\", vdu) ;\n\t\t\tbreak ;\n\n\t\tcase 20: // RESET COLOURS\n\t\t\tprintf (\"\\033[37m\\033[40m\") ;\n\t\t\tbreak ;\n\n\t\tcase 21: // DISABLE VDU DRIVERS\n\t\t\tvflags |= VDUDIS ;\n\t\t\tbreak ;\n\n\t\tcase 22: // MODE CHANGE\n\t\t\tmodechg (code & 0x7F) ;\n\t\t\tcol = 0 ;\n\t\t\trow = 0 ;\n\t\t\trhs = 999 ;\n\t\t\tbreak ;\n\n\t\tcase 23: // DEFINE CHARACTER ETC.\n\t\t\tdefchr (data2 & 0xFF, (data2 >> 8) & 0xFF, (data2 >> 16) & 0xFF,\n\t\t\t\t(data2 >> 24) & 0xFF, data1 & 0xFF, (data1 >> 8) & 0xFF,\n\t\t\t\t(data1 >> 16) & 0xFF, (data1 >> 24) & 0xFF, code & 0xFF) ;\n\t\t\tif ((data2 & 0xFF) == 22)\n\t\t\t    {\n\t\t\t\tcol = 0 ;\n\t\t\t\trow = 0 ;\n\t\t\t\trhs = 999 ;\n\t\t\t    }\n\t\t\tbreak ;\n\n\t\tcase 26: // RESET VIEWPORTS\n\t\t\tcol = 0 ;\n\t\t\trow = 0 ;\n\t\t\trhs = 999 ;\n\t\t\tbreak ;\n\n\t\tcase 27: // SEND NEXT TO OUTC\n\t\t\tif (col > rhs)\n\t\t\t    {\n\t\t\t\tprintf (\"\\015\") ;\n\t\t\t\tcol = 0 ;\n\t\t\t\tnewline (&col, &row) ;\n\t\t\t    }\n\t\t\tprintf (\"%c\", code) ;\n\t\t\tif ((col == rhs) && ((cmcflg & 1) == 0))\n\t\t\t    {\n\t\t\t\tprintf (\"\\015\") ;\n\t\t\t\tcol = 0 ;\n\t\t\t\tnewline (&col, &row) ;\n\t\t\t    }\n\t\t\telse if (!(vflags & UTF8) || ((signed char)(code & 0xFF) >= -64))\n\t\t\t\tcol++ ;\n\t\t\tbreak ;\n\n\t\tcase 30: // CURSOR HOME\n\t\t\tprintf (\"\\033[H\") ;\n\t\t\tcol = 0 ;\n\t\t\trow = 0 ;\n\t\t\tscroln &= 0x80 ;\n\t\t\tbreak ;\n\n\t\tcase 31: // TAB(X,Y)\n\t\t\tcol = data1 >> 24 & 0xFF ;\n\t\t\trow = code & 0xFF ;\n\t\t\tprintf (\"\\033[%i;%iH\", row + 1, col + 1) ;\n\t\t\tbreak ;\n\n\t\tcase 127: // DEL\n\t\t\txeqvdu (0x0800, 0, 0) ;\n\t\t\txeqvdu (0x2000, 0, 0) ;\n\t\t\txeqvdu (0x0800, 0, 0) ;\n\t\t\tbreak ;\n\n\t\tdefault:\n\t\t\tif (vdu >= 0x20)\n\t\t\t    {\n\t\t\t\tif (col > rhs)\n\t\t\t\t    {\n\t\t\t\t\tprintf (\"\\015\") ;\n\t\t\t\t\tcol = 0 ;\n\t\t\t\t\tnewline (&col, &row) ;\n\t\t\t\t    }\n\t\t\t\tprintf (\"%c\", vdu) ;\n\t\t\t\tif ((col == rhs) && ((cmcflg & 1) == 0))\n\t\t\t\t    {\n\t\t\t\t\tprintf (\"\\015\") ;\n\t\t\t\t\tcol = 0 ;\n\t\t\t\t\tnewline (&col, &row) ;\n\t\t\t\t    }\n\t\t\t\telse if (!(vflags & UTF8) || ((signed char)vdu >= -64))\n\t\t\t\t\tcol++ ;\n\t\t\t    }\n\t    }\n\tfflush (stdout) ;\n}\n\n// Parse a filespec, return pointer to terminator.\n// Note that source string is CR-terminated\nchar *setup (char *dst, char *src, char *ext, char term, unsigned char *pflag)\n{\n\tunsigned char flag = 0 ;\n\tchar *limit = dst + 0x100 ;\n\n\twhile (*src == ' ') src++ ;\t\t// Skip leading spaces\n\tif ((*src == '\"') && (term != '\"'))\n\t{\n\t\tchar *ret ;\n\t\tsrc++ ;\n\t\tret = setup (dst, src, ext, '\"', pflag) ;\n\t\tif (*ret++ != '\"')\n\t\t\terror (253, \"Bad string\") ;\n\t\twhile (*ret == ' ')\n\t\t\tret++ ;\n\t\treturn ret ;\n\t}\n\n\twhile (1)\n\t{\n\t\tchar ch = *src++ ;\n\t\tif (((ch == ',') && (term == ' ')) || (ch == 0x0D) || (ch == term))\n\t\t\tbreak ;\n\t\tflag |= BIT0 ;\t\t\t// Flag filename\n\t\tif (ch == '.')\n\t\t\tflag |= BIT7 ;\t\t// Flag extension\n\t\tif ((ch == '/') || (ch == '\\\\'))\n\t\t{\n\t\t\tflag &= ~(BIT0 + BIT7) ;// Flag no extension, no filename\n\t\t\tflag |= BIT1 ;\t\t// Flag path present\n\t\t}\n\t\t*dst++ = ch ;\n\t\tif (dst >= limit) error (204, \"Bad name\") ;\n\t}\n\n\tif (flag & BIT7)\n\t{\n\t\tif ((*(dst-1) == '.') && (*(dst-2) != '.'))\n\t\t\tdst-- ;\n\t}\n\telse if (flag & BIT0)\n\t{\n\t\tint n = strlen (ext) ;\n\t\tif (dst + n >= limit) error (204, \"Bad name\") ;\n\t\tstrcpy (dst, ext) ;\n\t\tdst += n ;\n\t}\n\n\tif (pflag != NULL)\n\t\t*pflag = flag ;\n\t*dst = 0 ;\n\treturn src - 1 ;\n}\n\n// Parse a *KEY string:\n// Note that source string is CR-terminated\nstatic int parse (char *dst, char *src, char term)\n{\n\tint n = 0 ;\n\n\twhile ((term != '\"') && (*src == ' ')) src++ ;\t\t// Skip leading spaces\n\tif (*src == '\"')\n\t\treturn parse (dst, src + 1, '\"') ;\n\twhile ((*src != 0x0D) && (*src != term))\n\t{\n\t\tchar c, m = 0 ;\n\t\twhile ((c = *src++) == '|')\n\t\t{\n\t\t\tc = *src++ ;\n\t\t\tif (c == '!')\n\t\t\t    {\n\t\t\t\tm = 0x80 ;\n\t\t\t\tcontinue ;\n\t\t\t    }\n\t\t\telse if ((c >= '?') && (c < '`'))\n\t\t\t\tc ^= 0x40 ;\n\t\t\tbreak ;\n\t\t}\n\t\tif (dst) *dst++ = c | m ;\n\t\tn++ ;\n\t}\n\tif (dst) *dst = 0 ;\n\tif ((term == '\"') && (*src != term))\n\t\terror (253, \"Bad string\") ;\n\treturn n ;\n}\n\n// Parse ON or OFF:\nstatic int onoff (char *p)\n{\n\tint n = 0 ;\n\tif ((*p & 0x5F) == 'O')\n\t\tp++ ;\n\tsscanf (p, \"%x\", &n) ;\n\treturn !n ;\n}\n\n// Wildcard string compare\n// First string may contain ? and * wildcards\nstatic int wild (char *ebx, char *edx)\n{\n\tchar *ecx = NULL ;\n\n\tif (*ebx == 0)\n\t\treturn 1 ;\t\t// Empty string matches everything\n\tif (strcmp (ebx, \"*.*\") == 0)\n\t\treturn 1 ;\t\t// \"*.*\" matches everything\n\n\twhile (1)\n\t{\n\t\tchar al = 0x20 | *ebx++ ;\n\t\tchar ah = 0x20 | *edx++ ;\n\n\t\tif (al == '?')\n\t\t{\n\t\t\tif (*(edx - 1) == 0)\n\t\t\t\treturn 0 ;\n\t\t\tcontinue ;\n\t\t}\n\n\t\tif (al == ah)\n\t\t{\n\t\t\tif (*(ebx - 1) == 0)\n\t\t\t\treturn 1 ;\n\t\t\tcontinue ;\n\t\t}\n\n\t\tif (al != '*')\n\t\t{\n\t\t\tif (ecx == NULL)\n\t\t\t\treturn 0 ;\n\t\t\tebx = ecx ;\n\t\t\tedx-- ;\n\t\t}\n\n\t\tecx = ebx ;\n\t\tif (*(edx - 1) == 0)\n\t\t\treturn 0 ;\n\t\tal = *ebx++ ;\n\t\tif (al == 0)\n\t\t\treturn 1 ;\n\t\tal |= 0x20 ;\n\n\t\tdo\n\t\t{\n\t\t\tah = *edx++ ;\n\t\t\tif (ah == 0)\n\t\t\t\treturn 0 ;\n\t\t\tah |= 0x20 ;\n\t\t}\n\t\twhile (al != ah) ;\n\t}\n\treturn 0 ;\n}\n\nvoid oscli (char *cmd)\n{\n\tint b = 0, h = POWR2, n ;\n\tchar cpy[MAX_PATH] ;\n\tchar path[MAX_PATH], path2[MAX_PATH] ;\n\tFILE *srcfile, *dstfile ;\n\tDIR *d ;\n\tchar *p, *q, dd ;\n\tunsigned char flag ;\n\n\twhile (*cmd == ' ') cmd++ ;\n\n\tif ((*cmd == 0x0D) || (*cmd == '|'))\n\t\treturn ;\n\n\tq = memchr (cmd, 0x0D, sizeof(cpy)) ;\n\tif (q == NULL)\n\t\terror (19, NULL) ; // 'String too long'\n\tmemcpy (cpy, cmd, q - cmd) ;\n\tcpy[q - cmd] = 0 ;\n\tp = cpy ;\n\twhile ((*p = tolower (*p)) != 0) p++ ;\n\n\tdo\n\t    {\n\t\tif (((b + h) < NCMDS) && ((strcmp (cpy, cmds[b + h])) >= 0))\n\t\t\tb += h ;\n\t\th /= 2 ;\n\t    }\n\twhile (h > 0) ;\n\n\tn = strchr(cpy, '.') - cpy ;\n\tif ((n > 0) && ((b + 1) < NCMDS) &&\n\t\t\t(n <= strlen (cmds[b + 1])) &&\n\t\t\t(strncmp (cpy, cmds[b + 1], n) == 0))\n\t\tb++ ;\n\n\tp = cpy ;\n\tq = cmds[b] ;\n\twhile (*p && *q && (*p == *q))\n\t    {\n\t\tp++ ;\n\t\tq++ ;\n\t    }\n\n \tif (*p == '.')\n\t\tp++ ;\n\telse if (*q)\n\t    {\n\t\tb = RUN ;\n\t\tp = cpy ;\n\t\tif ((*p == '*') || (*p == '/'))\n\t\t\tp++ ;\n\t    }\n\n\tif (n == 0)\n\t\tb = DIRCMD ;\n\n\tp += cmd - cpy ;\n\twhile (*p == ' ') p++ ;\t\t// Skip leading spaces\n\n\tswitch (b)\n\t    {\n\t\tcase BYE:\t\t\t// *BYE\n\t\tcase QUIT:\t\t\t// *QUIT\n\t\t\terror (-1, NULL) ;\n\n\t\tcase CD:\t\t\t// *CD [directory]\n\t\tcase CHDIR:\t\t\t// *CHDIR [directory]\n\t\t\tsetup (path, p, \"\", ' ', &flag) ;\n\t\t\tif (flag == 0)\n\t\t\t    {\n\t\t\t\tgetcwd (path, MAX_PATH) ;\n\t\t\t\ttext (path) ;\n\t\t\t\tcrlf () ;\n\t\t\t\treturn ;\n\t\t\t    }\n\t\t\tif (chdir (path))\n\t\t\t\terror (206, \"Bad directory\") ;\n#ifdef PICO\n\t\t\tgetcwd (szLoadDir,255) ;\n\t\t\tdirlen = strlen (szLoadDir) ;\n\t\t\tszLoadDir[dirlen++] = '/' ;\n#endif\n\t\t\treturn ;\n\n\t\tcase COPY:\t\t\t// *COPY oldfile newfile\n\t\t\tp = setup (path, p, \".bbc\", ' ', NULL) ;\n\t\t\tsrcfile = fopen (path, \"rb\") ;\n\t\t\tif (srcfile == NULL)\n\t\t\t\terror (214, \"File or path not found\") ;\n\t\t\tsetup (path, p, \".bbc\", ' ', NULL) ;\n\t\t\tdstfile = fopen (path, \"wb\") ;\n\t\t\tif (dstfile == NULL)\n\t\t\t    {\n\t\t\t\tfclose (srcfile) ;\n\t\t\t\terror (189, \"Couldn't create file\") ;\n\t\t\t    }\n\t\t\tp = malloc (COPYBUFLEN) ;\n\t\t\tif (p == NULL)\n\t\t\t\terror (255, \"Out of memory\") ;\n\t\t\tdo\n\t\t\t    {\n\t\t\t\tn = fread (p, 1, COPYBUFLEN, srcfile) ;\n\t\t\t\tif (n == 0)\n\t\t\t\t\tbreak ;\n\t\t\t    }\n\t\t\twhile (fwrite (p, 1, n, dstfile)) ;\n\t\t\tfree (p) ;\n\t\t\tfclose (srcfile) ;\n\t\t\tfclose (dstfile) ;\n\t\t\tif (n)\n\t\t\t\terror (189, \"Couldn't copy file\") ;\n\t\t\treturn ;\n\n\t\tcase DEL:\t\t\t// *DEL filename\n\t\tcase DELETE:\t\t\t// *DELETE filename\n\t\tcase ERA:\t\t\t// *ERA filename\n\t\tcase ERASE:\t\t\t// *ERASE filename\n\t\t\tsetup (path, p, \".bbc\", ' ', NULL) ;\n\t\t\tif (remove (path))\n\t\t\t\terror (254, \"Bad command\") ;\t// Bad command\n\t\t\treturn ;\n\n\t\tcase DIRCMD:\n\t\t\tsetup (path, p, \".bbc\", ' ', &flag) ;\n\t\t\tif ((flag & BIT0) == 0)\n\t\t\t\tstrcat (path, \"*.bbc\") ;\n\t\t\tif (flag & BIT1)\n\t\t\t    {\n\t\t\t\tp = path + strlen (path) ;\n\t\t\t\tq = path ;\n\t\t\t\twhile ((*p != '/') && (*p != '\\\\')) p-- ;\n\t\t\t\tif ((p == path) || (*(p - 1) == ':'))\n\t\t\t\t    {\n\t\t\t\t\tdd = 0 ;\n\t\t\t\t\t*++p = 0 ;\t// root\n\t\t\t\t    }\n\t\t\t\telse\n\t\t\t\t    {\n\t\t\t\t\tdd = *p ;\n\t\t\t\t\t*p++ = 0 ;\t// not root\n\t\t\t\t    }\n\t\t\t    }\n\t\t\telse\n\t\t\t    {\n\t\t\t\tgetcwd (path2, MAX_PATH) ;\n#ifdef _WIN32\n\t\t\t\tdd = '\\\\' ;\n#else\n\t\t\t\tdd = '/' ;\n#endif\n\t\t\t\tp = path ;\n\t\t\t\tq = path2 ;\n\t\t\t    }\n\t\t\ttext (\"Directory of \") ;\n\t\t\ttext (q) ;\n\t\t\toutchr (dd) ;\n\t\t\ttext (p) ;\n\t\t\tcrlf () ;\n\n\t\t\td = opendir (q) ;\n\t\t\tif (d == NULL)\n\t\t\t\terror (254, \"Bad command\") ;\n\n\t\t\twhile (1)\n\t\t\t    {\n\t\t\t\tstdin_handler (NULL, NULL) ;\n\t\t\t\tif (flags & (ESCFLG | KILL))\n\t\t\t\t    {\n\t\t\t\t\tclosedir (d) ;\n\t\t\t\t\tcrlf () ;\n\t\t\t\t\ttrap () ;\n\t\t\t\t    }\n\t\t\t\tstruct dirent *r = readdir (d) ;\n\t\t\t\tif (r == NULL)\n\t\t\t\t\tbreak ;\n\t\t\t\tif (!wild (p, r -> d_name))\n\t\t\t\t\tcontinue ;\n\t\t\t\toutchr (' ') ;\n\t\t\t\toutchr (' ') ;\n\t\t\t\ttext (r -> d_name) ;\n\t\t\t\tdo\n\t\t\t\t\toutchr (' ') ;\n\t\t\t\twhile ( (vcount != 0) && (vcount != 20) &&\n\t\t\t\t\t(vcount != 40) && (vcount < 60)) ;\n\t\t\t\tif (vcount > 60)\n\t\t\t\t\tcrlf () ;\n\t\t\t    }\n\t\t\tclosedir (d) ;\n\t\t\tcrlf () ;\n\t\t\treturn ;\n\n\t\tcase ESC:\n\t\t\tif (onoff (p))\n\t\t\t\tflags &= ~ESCDIS ;\n\t\t\telse\n\t\t\t\tflags |= ESCDIS ;\n\t\t\treturn ;\n\n\t\tcase EXEC:\n\t\t\tif (exchan)\n\t\t\t    {\n\t\t\t\tfclose (exchan) ;\n\t\t\t\texchan = NULL ;\n\t\t\t    }\n\t\t\tsetup (path, p, \".bbc\", ' ', NULL) ;\n\t\t\tif (*path == 0)\n\t\t\t\treturn ;\n\t\t\texchan = fopen (path, \"rb\") ;\n\t\t\tif (exchan == NULL)\n\t\t\t\terror (214, \"File or path not found\") ;\n\t\t\treturn ;\n\n\t\tcase FLOAT:\n\t\t\tn = 0 ;\n\t\t\tsscanf (p, \"%i\", &n) ;\n\t\t\tswitch (n)\n\t\t\t    {\n\t\t\t\tcase 32:\n\t\t\t\t\tliston &= ~BIT0 ;\n\t\t\t\t\tliston |= BIT1 ;\n\t\t\t\t\tbreak ;\n\t\t\t\tcase 40:\n\t\t\t\t\tliston &= ~(BIT0 + BIT1) ;\n\t\t\t\t\tbreak ;\n\t\t\t\tcase 64:\n\t\t\t\t\tliston &= ~BIT1 ;\n\t\t\t\t\tliston |= BIT0 ;\n\t\t\t\t\tbreak ;\n\t\t\t\tcase 80:\n\t\t\t\t\tliston |= (BIT0 + BIT1) ;\n\t\t\t\t\tbreak ;\n\t\t\t\tdefault:\n\t\t\t\t\terror (254, \"Bad command\") ;\n\t\t\t    }\n\t\t\treturn ;\n\n\t\tcase FX:\n\t\t\tn = 0 ; b = 0 ;\n\t\t\tsscanf (p, \"%i,%i\", &n, &b) ;\n\t\t\tif (n == 15)\n\t\t\t    {\n\t\t\t\tif (b == 0)\n\t\t\t\t\tquiet () ;\n\t\t\t\tkbdqr = kbdqw ;\n\t\t\t    }\n\t\t\telse if (n == 21)\n\t\t\t    {\n\t\t\t\tif (b == 0)\n\t\t\t\t\tkbdqr = kbdqw ;\n\t\t\t\telse if ((b >= 4) && (b <= 7))\n\t\t\t\t    {\n\t\t\t\t\tsndqw[b - 4] = 0 ;\n\t\t\t\t\tsndqr[b - 4] = 0 ;\n\t\t\t\t\teenvel[b - 4] = 0 ;\n\t\t\t\t    }\n\t\t\t    }\n\t\t\treturn ;\n\n\t\tcase HELP:\n\t\t\ttext (szVersion) ;\n\t\t\tcrlf () ;\n\t\t\treturn ;\n\n\t\tcase HEX:\n\t\t\tn = 0 ;\n\t\t\tsscanf (p, \"%i\", &n) ;\n\t\t\tswitch (n)\n\t\t\t    {\n\t\t\t\tcase 32:\n\t\t\t\t\tliston &= ~BIT2 ;\n\t\t\t\t\tbreak ;\n\t\t\t\tcase 64:\n\t\t\t\t\tliston |= BIT2 ;\n\t\t\t\t\tbreak ;\n\t\t\t\tdefault:\n\t\t\t\t\terror (254, \"Bad command\") ;\n\t\t\t    }\n\t\t\treturn ;\n\n\t\tcase KEY:\n\t\t\tn = 0 ;\n\t\t\tif (*p != 0x0D)\n\t\t\t\tn = strtol (p, &p, 10) ;\n\t\t\tif ((n < 1) || (n > 24))\n\t\t\t\terror (251, \"Bad key\") ;\n\t\t\tif (*(keystr + n))\n\t\t\t    {\n\t\t\t\tfree (*(keystr + n)) ;\n\t\t\t\t*(keystr + n) = NULL ;\n\t\t\t    }\n\t\t\tb = parse (NULL, p, 0) ;\n\t\t\tif (b == 0)\n\t\t\t\treturn ;\n\t\t\t*(keystr + n) = malloc (b + 1) ;\n\t\t\tparse (*(keystr + n), p, 0) ;\n\t\t\treturn ;\n\n\t\tcase LIST:\n\t\t\tsetup (path, p, \".bbc\", ' ', NULL) ;\n\t\t\tsrcfile = fopen (path, \"rb\") ;\n\t\t\tif (srcfile == NULL)\n\t\t\t\terror (214, \"File or path not found\") ;\n\t\t\tb = 0 ;\n\t\t\twhile (1)\n\t\t\t    {\n\t\t\t\tunsigned char al ;\n\t\t\t\tstdin_handler (NULL, NULL) ;\n\t\t\t\tif (flags & (ESCFLG | KILL))\n\t\t\t\t    {\n\t\t\t\t\tfclose (srcfile) ;\n\t\t\t\t\ttrap () ;\n\t\t\t\t    }\n\t\t\t\tn = fread (&al, 1, 1, srcfile) ;\n\t\t\t\tif (n && al)\n\t\t\t\t    {\n\t\t\t\t\tfread (path2, 1, al - 1, srcfile) ;\n\t\t\t\t\tlistline ((signed char *)path2, &b) ;\n\t\t\t\t\tcrlf () ;\n\t\t\t\t    }\n\t\t\t\telse\n\t\t\t\t\tbreak ;\n\t\t\t    } ;\n\t\t\tfclose (srcfile) ;\n\t\t\treturn ;\n\n\t\tcase LOAD:\t\t// *LOAD filename hexaddr [+maxlen]\n\t\t\tp = setup (path, p, \".bbc\", ' ', NULL) ;\n\t\t\tn = 0 ;\n\t\t\tq = 0 ;\n\t\t\tif (*p != 0x0D)\n\t\t\t    {\n\t\t\t\tq = (char *) (size_t) strtoull (p, &p, 16) ;\n\t\t\t\twhile (*p == ' ') p++ ;\n\t\t\t\tif (*p == '+')\n\t\t\t\t\tn = strtol (p + 1, &p, 16) ;\n\t\t\t\telse if (*p != 0x0D)\n\t\t\t\t\tn = (char *) (size_t) strtoull (p, &p, 16) - q ;\n\t\t\t    }\n\t\t\tif ((n <= 0) && ((q < (char *)userRAM) || (q >= (char *)userTOP)))\n\t\t\t\terror (8, NULL) ; // 'Address out of range'\n\t\t\tif (n <= 0)\n\t\t\t\tn = (char *)userTOP - q ;\n\t\t\tsrcfile = fopen (path, \"rb\") ;\n\t\t\tif (srcfile == NULL)\n\t\t\t\terror (214, \"File or path not found\") ;\n\t\t\tif (0 == fread(q, 1, n, srcfile))\n\t\t\t\terror (189, \"Couldn't read file\") ;\n\t\t\tfclose (srcfile ) ;\n\t\t\treturn ;\n\n\t\tcase LOCK:\n\t\t\tsetup (path, p, \".bbc\", ' ', NULL) ;\n\t\t\tif (0 != chmod (path, _S_IREAD))\n\t\t\t\terror (254, \"Bad command\") ;\n\t\t\treturn ;\n\n\t\tcase LOWERCASE:\n\t\t\tif (onoff (p))\n\t\t\t\tliston |= BIT3 ;\n\t\t\telse\n\t\t\t\tliston &= ~BIT3 ;\n\t\t\treturn ;\n\n\t\tcase MD:\n\t\tcase MKDIR:\n\t\t\tsetup (path, p, \"\", ' ', NULL) ;\n#ifdef _WIN32\n\t\t\tif (0 != mkdir (path))\n#else\n\t\t\tif (0 != mkdir (path, 0777))\n#endif\n\t\t\t\terror (254, \"Bad command\") ;\n\t\t\treturn ;\n\n\t\tcase RD:\n\t\tcase RMDIR:\n\t\t\tsetup (path, p, \"\", ' ', NULL) ;\n\t\t\tif (0 != rmdir (path))\n\t\t\t\terror (254, \"Bad command\") ;\n\t\t\treturn ;\n\n\t\tcase REFRESH:\n\t\t\treturn ;\n\n\t\tcase REN:\n\t\tcase RENAME:\n\t\t\tp = setup (path, p, \".bbc\", ' ', NULL) ;\n\t\t\tsetup (path2, p, \".bbc\", ' ', NULL) ;\n\t\t\tdstfile = fopen (path2, \"rb\") ;\n\t\t\tif (dstfile != NULL)\n\t\t\t    {\n\t\t\t\tfclose (dstfile) ;\n\t\t\t\terror (196, \"File exists\") ;\n\t\t\t    }\n\t\t\tif (0 != rename (path, path2))\n\t\t\t\terror (196, \"File exists\") ;\n\t\t\treturn ;\n\n\t\tcase RUN:\n\t\t\tstrncpy (path, p, MAX_PATH - 1) ;\n\t\t\tq = memchr (path, 0x0D, MAX_PATH) ;\n\t\t\tif (q != NULL) *q = 0 ;\n\t\t\tq = path + strlen (path) - 1 ;\n\t\t\tif (*q == ';')\n\t\t\t\t*q = '&' ;\n\t\t\tSystemIO (1) ;\n\t\t\tif (0 != system (path))\n\t\t\t    {\n\t\t\t\tSystemIO (0) ;\n\t\t\t\terror (254, \"Bad command\") ;\n\t\t\t    }\n\t\t\tSystemIO (0) ;\n\t\t\treturn ;\n\n\t\tcase SAVE:\t\t// *SAVE filename hexaddr +hexlen\n\t\t\tp = setup (path, p, \".bbc\", ' ', NULL) ;\n\t\t\tn = 0 ;\n\t\t\tq = 0 ;\n\t\t\tif (*p != 0x0D)\n\t\t\t    {\n\t\t\t\tq = (char *) (size_t) strtoull (p, &p, 16) ;\n\t\t\t\twhile (*p == ' ') p++ ;\n\t\t\t\tif (*p == '+')\n\t\t\t\t\tn = strtol (p + 1, &p, 16) ;\n\t\t\t\telse if (*p != 0x0D)\n\t\t\t\t\tn = (char *) (size_t) strtoull (p, &p, 16) - q ;\n\t\t\t    }\n\t\t\tif (n <= 0)\n\t\t\t\terror (254, \"Bad command\") ;\n\t\t\tdstfile = fopen (path, \"wb\") ;\n\t\t\tif (dstfile == NULL)\n\t\t\t\terror (189, \"Couldn't create file\") ;\n\t\t\tif (0 == fwrite(q, 1, n, dstfile))\n\t\t\t\terror (189, \"Couldn't write file\") ;\n\t\t\tfclose (dstfile ) ;\n\t\t\treturn ;\n\n\t\tcase SPOOL:\n\t\t\tif (spchan != NULL)\n\t\t\t    {\n\t\t\t\tfclose (spchan) ;\n\t\t\t\tspchan = NULL ;\n\t\t\t    }\n\t\t\twhile (*p == ' ') p++ ;\n\t\t\tif (*p == 0x0D)\n\t\t\t\treturn ;\n\t\t\tsetup (path, p, \".bbc\", ' ', NULL) ;\n\t\t\tspchan = fopen (path, \"wb\") ;\n\t\t\tif (spchan == NULL)\n\t\t\t\terror (189, \"Couldn't create file\") ;\n\t\t\treturn ;\n\n\t\tcase SPOOLON:\n\t\t\tif (spchan != NULL)\n\t\t\t    {\n\t\t\t\tfclose (spchan) ;\n\t\t\t\tspchan = NULL ;\n\t\t\t    }\n\t\t\twhile (*p == ' ') p++ ;\n\t\t\tif (*p == 0x0D)\n\t\t\t\treturn ;\n\t\t\tsetup (path, p, \".bbc\", ' ', NULL) ;\n\t\t\tspchan = fopen (path, \"ab\") ;\n\t\t\tif (spchan == NULL)\n\t\t\t\terror (189, \"Couldn't open file\") ;\n\t\t\treturn ;\n\n\t\tcase TIMER:\n\t\t\tn = 0 ;\n\t\t\tsscanf (p, \"%i\", &n) ;\n\t\t\tif (n == 0)\n\t\t\t\treturn ;\n\t\t\tStopTimer (UserTimerID) ;\n\t\t\tUserTimerID = StartTimer (n) ; \n\t\t\treturn ;\n\n\t\tcase TV:\n\t\t\treturn ;\t\t// ignored\n\n\t\tcase TYPE:\n\t\t\tsetup (path, p, \".bbc\", ' ', NULL) ;\n\t\t\tsrcfile = fopen (path, \"rb\") ;\n\t\t\tif (srcfile == NULL)\n\t\t\t\terror (214, \"File or path not found\") ;\n\t\t\tdo\n\t\t\t    {\n\t\t\t\tchar ch ;\n\t\t\t\tstdin_handler (NULL, NULL) ;\n\t\t\t\tif (flags & (ESCFLG | KILL))\n\t\t\t\t    {\n\t\t\t\t\tfclose (srcfile) ;\n\t\t\t\t\tcrlf () ;\n\t\t\t\t\ttrap () ;\n\t\t\t\t    }\n\t\t\t\tn = fread (&ch, 1, 1, srcfile) ;\n\t\t\t\toswrch (ch) ;\n\t\t\t    }\n\t\t\twhile (n) ;\n\t\t\tfclose (srcfile) ;\n\t\t\tcrlf () ; // Zero COUNT\n\t\t\treturn ;\n\n\t\tcase UNLOCK:\n\t\t\tsetup (path, p, \".bbc\", ' ', NULL) ;\n\t\t\tif (0 != chmod (path, _S_IREAD | _S_IWRITE))\n\t\t\t\terror (254, \"Bad command\") ;\n\t\t\treturn ;\n\n\t\tcase INPUT:\n\t\t\tn = 0 ;\n\t\t\tsscanf (p, \"%i\", &n) ;\n\t\t\toptval = (optval & 0x0F) | (n << 4) ;\n\t\t\treturn ;\n\n\t\tcase OUTPUT:\n\t\t\tn = 0 ;\n\t\t\tsscanf (p, \"%i\", &n) ;\n\t\t\toptval = (optval & 0xF0) | (n & 0x0F) ;\n\t\t\treturn ;\n\n\t\tcase DUMP:\n\t\t\tp = setup (path, p, \".bbc\", ' ', NULL) ;\n\t\t\tsrcfile = fopen (path, \"rb\") ;\n\t\t\tif (srcfile == NULL)\n\t\t\t\terror (214, \"File or path not found\") ;\n\t\t\tb = 0 ;\n\t\t\th = 0 ;\n\t\t\tif (*p != 0x0D)\n\t\t\t    {\n\t\t\t\tunsigned long long s = strtoull (p, &p, 16) ;\n\t\t\t\tif ((s != 0) && (-1 == myfseek (srcfile, s, SEEK_SET)))\n\t\t\t\t\terror (189, \"Couldn't seek\") ;\n\t\t\t\twhile (*p == ' ') p++ ;\n\t\t\t\tif (*p == '+')\n\t\t\t\t\th = strtol (p + 1, &p, 16) ;\n\t\t\t\telse\n\t\t\t\t\th = strtoull (p, &p, 16) - s ;\n\t\t\t\tb = s & 0xFFFFFFFF ;\n\t\t\t    }\n\t\t\tdo\n\t\t\t    {\n\t\t\t\tint i ;\n\t\t\t\tunsigned char buff[16] ;\n\t\t\t\tstdin_handler (NULL, NULL) ;\n\t\t\t\tif (flags & (ESCFLG | KILL))\n\t\t\t\t    {\n\t\t\t\t\tfclose (srcfile) ;\n\t\t\t\t\ttrap () ;\n\t\t\t\t    }\n\t\t\t\tn = fread (buff, 1, 16 - (b & 15), srcfile) ;\n\t\t\t\tif (n <= 0) break ;\n\t\t\t\tif ((h > 0) && (n > h)) n = h ; \n\t\t\t\tmemset (path, ' ', 80) ;\n\t\t\t\tsprintf (path, \"%08X  \", b) ;\n\t\t\t\tfor (i = 0; i < n; i++)\n\t\t\t\t    {\n\t\t\t\t\tsprintf (path + 10 + 3 * i, \"%02X \", buff[i]) ;\n\t\t\t\t\tif ((buff[i] >= ' ') && (buff[i] <= '~'))\n\t\t\t\t\t\tpath[59+i] = buff[i] ;\n\t\t\t\t\telse\n\t\t\t\t\t\tpath[59+i] = '.' ;\n\t\t\t\t    }\n\t\t\t\t\tpath[10 + 3 * n] = ' ' ; path[75] = 0 ;\n\t\t\t\ttext (path) ;\n\t\t\t\tcrlf () ;\n\t\t\t\tb += n ;\n\t\t\t\th -= n ;\n\t\t\t    }\n\t\t\twhile (h) ;\n\t\t\tfclose (srcfile) ;\n\t\t\treturn ;\n\n\t\tcase STEREO:\n\t\t\tb = 0 ;\n\t\t\tn = 0 ;\n\t\t\tsscanf (p, \"%i,%i\", &b, &n) ;\n\t\t\tb &= 3 ;\n\t\t\tsmix[b]     = 0x4000 - (n << 7) ;\n\t\t\tsmix[b + 4] = 0x4000 + (n << 7) ;\n\t\t\treturn ;\n\n\t\tcase TEMPO:\n\t\t\tn = 0 ;\n\t\t\tsscanf (p, \"%i\", &n) ;\n\t\t\tif (((n & 0x3F) <= MAX_TEMPO) && ((n & 0x3F) > 0))\n\t\t\t\ttempo = n ;\n\t\t\treturn ;\n\n\t\tcase VOICE:\n\t\t\tb = 0 ;\n\t\t\tn = 0 ;\n\t\t\tsscanf (p, \"%i,%i\", &b, &n) ;\n\t\t\tvoices[b & 3] = n & 7 ;\n\t\t\treturn ;\n\t\t} ;\n\n\terror (254, \"Bad command\") ;\n}\n\n// Shell sort\n\nstatic int compare (void *src, void *dst, unsigned char type)\n{\n\tswitch (type)\n\t    {\n\t\tcase 1:\treturn\t(*(unsigned char*)dst > *(unsigned char*)src) -\n\t\t\t\t(*(unsigned char*)dst < *(unsigned char*)src) ; \n\n\t\tcase 4: return\t(*(unaligned_int*)dst > *(unaligned_int*)src) -\n\t\t\t\t(*(unaligned_int*)dst < *(unaligned_int*)src) ; \n\n\t\tcase 10:\n\t\t\tif ((*(unaligned_short*)(dst+8) == 0) && (*(unaligned_short*)(src+8) == 0))\n\t\t\t\tgoto case40 ;\n\t\t    {\n\t\t\tvariant d, s ;\n\t\t\tif (*(unaligned_short*)(dst+8) == 0)\n\t\t\t\td = *(unaligned_longlong *)dst ;\n\t\t\telse\n\t\t\t\td = *(variant *)dst ;\n\t\t\tif (*(unaligned_short*)(src+8) == 0)\n\t\t\t\ts = *(unaligned_longlong *)src ;\n\t\t\telse\n\t\t\t\ts = *(variant *)src ;\n\t\t\treturn (d > s) - (d < s) ;\n\t\t    }\n\t\t    \n\t\tcase 8:\n\t\t    {\n\t\t\tdouble d = *(unaligned_double *)dst ;\n\t\t\tdouble s = *(unaligned_double *)src ;\n\t\t\treturn (d > s) - (d < s) ;\n\t\t    }\n\n\t\tcase 40:\n\t\tcase40:\n\t\t    {\n\t\t\tlong long d = *(unaligned_longlong*)dst ;\n\t\t\tlong long s = *(unaligned_longlong*)src ;\n\t\t\treturn (d > s) - (d < s) ;\n\t\t    }\n\n\t\tcase 136:\n\t\t    {\n\t\t\tunsigned int len ;\n\t\t\tSTR s = *(STR*)src ;\n\t\t\tSTR d = *(STR*)dst ;\n\t\t\tlen = s.l ;\n\t\t\tif (len > d.l)\n\t\t\t\tlen = d.l ;\n\t\t\twhile (len--)\n\t\t\t    {\n\t\t\t\tint result = ((*(d.p + zero) > *(s.p + zero)) -\n\t\t\t\t\t      (*(d.p + zero) < *(s.p + zero))) ;\n\t\t\t\tif (result)\n\t\t\t\t\treturn result ;\n\t\t\t\td.p++ ;\n\t\t\t\ts.p++ ;\n\t\t\t    }\n\t\t\treturn (d.l > s.l) - (d.l < s.l) ;\n\t\t    }\n\t    }\n\treturn 0 ;\n}\n\nstatic void shellsort (int dir, int ecx, void* ebp)\n{\n\tint edx ;\n\tunsigned int esi, edi ;\n\tunsigned int gap = 0xFFFFFFFF ;\n\tvoid *savebp = ebp ;\n\n\tif (ecx <= 0)\n\t\treturn ;\n\n\tdo\n\t\tgap = gap >> 1 ; // n.b. unsigned\n\twhile (gap >= ecx) ;\n\n\tdo\n\t    {\n\t\tedx = 0 ;\n\t\tesi = 0 ;\n\t\tedi = esi + gap ;\n\t\tdo\n\t\t    {\n\t\t\tint result = 0 ;\n\t\t\tunsigned int num ;\n\n\t\t\tebp = savebp ;\n\t\t\tnum = *(unsigned char*)ebp++ ; // number of arrays\n\t\t\twhile (num--)\n\t\t\t    {\n\t\t\t\tunsigned char type = *(unsigned char*)ebp++ ;\n\t\t\t\tchar *ebx = *(unaligned_charptr*)ebp ;\n\t\t\t\tebp += sizeof(void *) ;\n\t\t\t\tchar *src = ebx + esi * (type & 15) ;\n\t\t\t\tchar *dst = ebx + edi * (type & 15) ;\n\t\t\t\tresult = compare (src, dst, type) ;\n\t\t\t\tif (result) \n\t\t\t\t\tbreak ;\n\t\t\t    }\n\t\t\tif (dir ? result > 0 : result < 0)\n\t\t\t    {\n\t\t\t\tebp = savebp ;\n\t\t\t\tnum = *(unsigned char*)ebp++ ; // number of arrays\n\t\t\t\twhile (num--)\n\t\t\t\t    {\n\t\t\t\t\tunsigned char size = *(unsigned char*)ebp++ & 15 ;\n\t\t\t\t\tchar *ebx = *(unaligned_charptr*)ebp ;\n\t\t\t\t\tebp += sizeof(void *) ;\n\t\t\t\t\tchar *src = ebx + esi * size ;\n\t\t\t\t\tchar *dst = ebx + edi * size ;\n\t\t\t\t\twhile (size--)\n\t\t\t\t\t    {\n\t\t\t\t\t\tchar tmp = *src ;\n\t\t\t\t\t\t*src++ = *dst ;\n\t\t\t\t\t\t*dst++ = tmp ;\n\t\t\t\t\t    }\n\t\t\t\t    }\n\n\t\t\t\tif (esi >= gap)\n\t\t\t\t    {\n\t\t\t\t\tedi = esi ;\n\t\t\t\t\tesi -= gap ;\n\t\t\t\t\tcontinue ;\n\t\t\t\t    }\n\t\t\t    }\n\t\t\tedx += 1 ;\n\t\t\tesi = edx ;\n\t\t\tedi = esi + gap ;\n\t\t    }\n\t\twhile (edi < ecx) ;\n\t\tgap = gap >> 1 ;\n\t    }\n\twhile (gap) ;\n\treturn ;\n}\n\nvoid sortup (int eax, int ebx, int ecx, unsigned int edx, unsigned int esi, unsigned int edi, void *ebp)\n{ shellsort (0, ecx, ebp) ; }\nvoid sortdn (int eax, int ebx, int ecx, unsigned int edx, unsigned int esi, unsigned int edi, void *ebp)\n{ shellsort (1, ecx, ebp) ; }\nvoid hook(void){} ;\n"
  },
  {
    "path": "src/bbcmos.c",
    "content": "/*****************************************************************\\\n*       32-bit or 64-bit BBC BASIC for SDL 2.0                    *\n*       (C) 2017-2026  R.T.Russell  http://www.rtrussell.co.uk/   *\n*                                                                 *\n*       The name 'BBC BASIC' is the property of the British       *\n*       Broadcasting Corporation and used with their permission   *\n*                                                                 *\n*       bbcmos.c  Machine Operating System emulation              *\n*       This module runs in the context of the interpreter thread *\n*       Version 1.44a, 18-Mar-2026                                *\n\\*****************************************************************/\n\n#define _GNU_SOURCE\n#define __USE_GNU\n#include <string.h>\n#include <stdlib.h>\n#include <unistd.h>\n#include <time.h>\n#include <math.h>\n#include <setjmp.h>\n#include \"SDL2/SDL.h\"\n#include \"SDL_ttf.h\"\n#include \"bbcsdl.h\"\n\n#if defined __WINDOWS__\n#include <windows.h>\n#elif defined(__LINUX__) || defined(__MACOSX__)\n#include <sys/ioctl.h>\n#endif\n\n#if defined __WINDOWS__ || defined __EMSCRIPTEN__\nvoid *dlsym (void *, const char *) ;\n#define RTLD_DEFAULT (void *)(-1)\n#else\n#include \"dlfcn.h\"\n#endif\n\n#if defined __EMSCRIPTEN__\n// WASM has no official SIMD support yet\n#elif defined __arm__ || defined __aarch64__\n#include <arm_neon.h>\n#else\n#include <emmintrin.h>\n#endif\n\n#if defined __i386__ || defined __x86_64__ || defined __arm__\n#ifndef __ANDROID__\nvoid sortup(void){} ;\nvoid sortdn(void){} ;\n#endif\n#endif \n\n// Delared in bbmain.c:\nvoid error (int, const char *) ;\nvoid text (const char *) ;\t// Output NUL-terminated string\nvoid crlf (void) ;\t\t// Output a newline\n\n// Declared in bbeval.c:\nunsigned int rnd (void) ;\t// Return a pseudo-random number\n\n// Declared in bbccli.c:\nchar *setup (char *, char *, char *, char, unsigned char *) ;\nvoid oscli (char *) ;\t\t// Execute an emulated OS command\n\n// Interpreter entry point:\nint basic (void *, void *, void *) ;\n\n// Global jump buffer:\nextern jmp_buf env ;\n\n// Forward references:\nvoid oswrch (unsigned char) ;\nunsigned char osbget (void*, int*) ;\nvoid osbput (void*, unsigned char) ;\n\n// Array of VDU command lengths:\nstatic int vdulen[] = {\n\t0,\n\t1,\t\t// print next\n\t0,\n\t0,\n\t0,\n\t0,\n\t0,\n\t0,\n\t0,\n\t0,\n\t0,\n\t0,\n\t0,\n\t0,\n\t0,\n\t0,\n\t0,\n\t1,\t\t// COLOUR\n\t2,\t\t// GCOL\n\t5,\t\t// set palette\n\t0,\n\t0,\n\t1,\t\t// MODE\n\t9,\t\t// reprogram character (etc.)\n\t8,\t\t// set graphics viewport\n\t5,\t\t// PLOT\n\t0,\n\t1,\t\t// ESCape\n\t4,\t\t// set text viewport\n\t4,\t\t// set graphics origin\n\t0,\n\t2} ;\t\t// move text cursor (caret)\n\n// Translation table for negative INKEY:\nstatic unsigned char xkey[] = {\n\t225,\t\t// -1 (SHIFT)\n\t224,\t\t// -2 (CTRL)\n\t226,\t\t// -3 (ALT)\n\t225,\t\t// -4 (left SHIFT)\n\t224,\t\t// -5 (left CTRL)\n\t226,\t\t// -6 (left ALT)\n\t229,\t\t// -7 (right SHIFT)\n\t228,\t\t// -8 (right CTRL)\n\t230,\t\t// -9 (right ALT)\n\t0,\t\t// -10 (left button)\n\t0,\t\t// -11 (middle button)\n\t0,\t\t// -12 (right button)\n\t155,\t\t// -13 (CANCEL)\n\t0,\t\t// -14\n\t0,\t\t// -15\n\t0,\t\t// -16\n\t0x14,\t\t// -17 (Q)\n\t0x20,\t\t// -18 (3)\n\t0x21,\t\t// -19 (4)\n\t0x22,\t\t// -20 (5)\n\t0x3D,\t\t// -21 (f4)\n\t0x25,\t\t// -22 (8)\n\t0x40,\t\t// -23 (f7)\n\t0x2D,\t\t// -24 (-)\n\t0,\t\t// -25\n\t0x50,\t\t// -26 (LEFT)\n\t0x5E,\t\t// -27 (keypad 6)\n\t0x5F,\t\t// -28 (keypad 7)\n\t0x44,\t\t// -29 (f11)\n\t0x45,\t\t// -30 (f12)\n\t0x43,\t\t// -31 (f10)\n\t0x47,\t\t// -32 (SCROLL LOCK)\n\t0x46,\t\t// -33 (PRINT SCREEN)\n\t0x1A,\t\t// -34 (W)\n\t0x08,\t\t// -35 (E)\n\t0x17,\t\t// -36 (T)\n\t0x24,\t\t// -37 (7)\n\t0x0C,\t\t// -38 (I)\n\t0x26,\t\t// -39 (9)\n\t0x27,\t\t// -40 (0)\n\t0,\t\t// -41\n\t0x51,\t\t// -42 (DOWN)\n\t0x60,\t\t// -43 (keypad 8)\n\t0x61,\t\t// -44 (keypad 9)\n\t0x48,\t\t// -45 (BREAK/PAUSE)\n\t0x35,\t\t// -46 (`)\n\t0x31,\t\t// -47 (#)\n\t0x2A,\t\t// -48 (BACKSPACE)\n\t0x1E,\t\t// -49 (1)\n\t0x1F,\t\t// -50 (2)\n\t0x07,\t\t// -51 (D)\n\t0x15,\t\t// -52 (R)\n\t0x23,\t\t// -53 (6)\n\t0x18,\t\t// -54 (U)\n\t0x12,\t\t// -55 (O)\n\t0x13,\t\t// -56 (P)\n\t0x2F,\t\t// -57 ([)\n\t0x52,\t\t// -58 (UP)\n\t0x57,\t\t// -59 (keypad +)\n\t0x56,\t\t// -60 (keypad -)\n\t0x58,\t\t// -61 (keypad ENTER)\n\t0x49,\t\t// -62 (INSERT)\n\t0x4A,\t\t// -63 (HOME)\n\t0x4B,\t\t// -64 (PAGE UP)\n\t0x39,\t\t// -65 (CAPS LOCK)\n\t0x04,\t\t// -66 (A)\n\t0x1B,\t\t// -67 (X)\n\t0x09,\t\t// -68 (F)\n\t0x1C,\t\t// -69 (Y)\n\t0x0D,\t\t// -70 (J)\n\t0x0E,\t\t// -71 (K)\n\t0,\t\t// -72\n\t0x77,\t\t// -73 (SELECT)\n\t0x28,\t\t// -74 (RETURN)\n\t0x54,\t\t// -75 (keypad /)\n\t0,\t\t// -76\n\t0x63,\t\t// -77 (keypad .)\n\t0x53,\t\t// -78 (NUM LOCK)\n\t0x4E,\t\t// -79 (PAGE DOWN)\n\t0x34,\t\t// -80 (')\n\t0,\t\t// -81 (was SHIFT LOCK)\n\t0x16,\t\t// -82 (S)\n\t0x06,\t\t// -83 (C)\n\t0x0A,\t\t// -84 (G)\n\t0x0B,\t\t// -85 (H)\n\t0x11,\t\t// -86 (N)\n\t0x0F,\t\t// -87 (L)\n\t0x33,\t\t// -88 (;)\n\t0x30,\t\t// -89 (])\n\t0x4C,\t\t// -90 (DELETE)\n\t0x31,\t\t// -91 (#)\n\t0x55,\t\t// -92 (keypad *)\n\t117,\t\t// -93 (HELP)\n\t0x2E,\t\t// -94 (=)\n\t0,\t\t// -95\n\t0,\t\t// -96\n\t0x2B,\t\t// -97 (TAB)\n\t0x1D,\t\t// -98 (Z)\n\t0x2C,\t\t// -99 (SPACE)\n\t0x19,\t\t// -100 (V)\n\t0x05,\t\t// -101 (B)\n\t0x10,\t\t// -102 (M)\n\t0x36,\t\t// -103 (,)\n\t0x37,\t\t// -104 (.)\n\t0x38,\t\t// -105 (/)\n\t0x4D,\t\t// -106 (END) (COPY)\n\t0x62,\t\t// -107 (keypad 0)\n\t0x59,\t\t// -108 (keypad 1)\n\t0x5B,\t\t// -109 (keypad 3)\n\t227,\t\t// -110 (left Windows key)\n\t231,\t\t// -111 (right Windows key)\n\t101,\t\t// -112 (context menu key)\n\t0x29,\t\t// -113 (ESCAPE)\n\t0x3A,\t\t// -114 (f1)\n\t0x3B,\t\t// -115 (f2)\n\t0x3C,\t\t// -116 (f3)\n\t0x3E,\t\t// -117 (f5)\n\t0x3F,\t\t// -118 (f6)\n\t0x41,\t\t// -119 (f8)\n\t0x42,\t\t// -120 (f9)\n\t0x64,\t\t// -121 (\\)\n\t0x4F,\t\t// -122 (RIGHT)\n\t0x5C,\t\t// -123 (keypad 4)\n\t0x5D,\t\t// -124 (keypad 5)\n\t0x5A,\t\t// -125 (keypad 2)\n\t0x68,\t\t// -126 (f13)\n\t0x69,\t\t// -127 (f14)\n\t0x6A\t\t// -128 (f15)\n} ;\n\nstatic unsigned short noises[8] = {\n\t0x8050,\n\t0x8300,\n\t0x8180,\n\t0x8300,\n\t0x8018,\n\t0x8018,\n\t0x8018,\n\t0x8018} ;\n\n// Table of SOUND pitches for 44.100 kHz sampling frequency):\nstatic unsigned short freqs[256] = {\n\t0,\t// 0 = silence\n\t745,\t// 1 = 62.63 Hz\n\t755,\t// 2 = 63.54 Hz\n\t766,\t// 3 = 64.47 Hz\n\t778,\t// 4 = 65.41 Hz\n\t789,\t// 5 = 66.36 Hz\n\t800,\t// 6 = 67.32 Hz\n\t812,\t// 7 = 68.30 Hz\n\t824,\t// 8 = 69.30 Hz\n\t836,\t// 9 = 70.30 Hz\n\t848,\t// 10 = 71.33 Hz\n\t860,\t// 11 = 72.36 Hz\n\t873,\t// 12 = 73.42 Hz\n\t886,\t// 13 = 74.48 Hz\n\t898,\t// 14 = 75.57 Hz\n\t911,\t// 15 = 76.67 Hz\n\t925,\t// 16 = 77.78 Hz\n\t938,\t// 17 = 78.91 Hz\n\t952,\t// 18 = 80.06 Hz\n\t966,\t// 19 = 81.23 Hz\n\t980,\t// 20 = 82.41 Hz\n\t994,\t// 21 = 83.61 Hz\n\t1008,\t// 22 = 84.82 Hz\n\t1023,\t// 23 = 86.06 Hz\n\t1038,\t// 24 = 87.31 Hz\n\t1053,\t// 25 = 88.58 Hz\n\t1068,\t// 26 = 89.87 Hz\n\t1084,\t// 27 = 91.17 Hz\n\t1100,\t// 28 = 92.50 Hz\n\t1116,\t// 29 = 93.84 Hz\n\t1132,\t// 30 = 95.21 Hz\n\t1148,\t// 31 = 96.59 Hz\n\t1165,\t// 32 = 98.00 Hz\n\t1182,\t// 33 = 99.42 Hz\n\t1199,\t// 34 = 100.87 Hz\n\t1217,\t// 35 = 102.34 Hz\n\t1234,\t// 36 = 103.83 Hz\n\t1252,\t// 37 = 105.34 Hz\n\t1271,\t// 38 = 106.87 Hz\n\t1289,\t// 39 = 108.42 Hz\n\t1308,\t// 40 = 110.00 Hz\n\t1327,\t// 41 = 111.60 Hz\n\t1346,\t// 42 = 113.22 Hz\n\t1366,\t// 43 = 114.87 Hz\n\t1386,\t// 44 = 116.54 Hz\n\t1406,\t// 45 = 118.24 Hz\n\t1426,\t// 46 = 119.96 Hz\n\t1447,\t// 47 = 121.70 Hz\n\t1468,\t// 48 = 123.47 Hz\n\t1489,\t// 49 = 125.27 Hz\n\t1511,\t// 50 = 127.09 Hz\n\t1533,\t// 51 = 128.94 Hz\n\t1555,\t// 52 = 130.81 Hz\n\t1578,\t// 53 = 132.72 Hz\n\t1601,\t// 54 = 134.65 Hz\n\t1624,\t// 55 = 136.60 Hz\n\t1648,\t// 56 = 138.59 Hz\n\t1672,\t// 57 = 140.61 Hz\n\t1696,\t// 58 = 142.65 Hz\n\t1721,\t// 59 = 144.73 Hz\n\t1746,\t// 60 = 146.83 Hz\n\t1771,\t// 61 = 148.97 Hz\n\t1797,\t// 62 = 151.13 Hz\n\t1823,\t// 63 = 153.33 Hz\n\t1849,\t// 64 = 155.56 Hz\n\t1876,\t// 65 = 157.83 Hz\n\t1904,\t// 66 = 160.12 Hz\n\t1931,\t// 67 = 162.45 Hz\n\t1959,\t// 68 = 164.81 Hz\n\t1988,\t// 69 = 167.21 Hz\n\t2017,\t// 70 = 169.64 Hz\n\t2046,\t// 71 = 172.11 Hz\n\t2076,\t// 72 = 174.61 Hz\n\t2106,\t// 73 = 177.15 Hz\n\t2137,\t// 74 = 179.73 Hz\n\t2168,\t// 75 = 182.34 Hz\n\t2199,\t// 76 = 185.00 Hz\n\t2231,\t// 77 = 187.69 Hz\n\t2264,\t// 78 = 190.42 Hz\n\t2297,\t// 79 = 193.19 Hz\n\t2330,\t// 80 = 196.00 Hz\n\t2364,\t// 81 = 198.85 Hz\n\t2398,\t// 82 = 201.74 Hz\n\t2433,\t// 83 = 204.68 Hz\n\t2469,\t// 84 = 207.65 Hz\n\t2505,\t// 85 = 210.67 Hz\n\t2541,\t// 86 = 213.74 Hz\n\t2578,\t// 87 = 216.85 Hz\n\t2615,\t// 88 = 220.00 Hz\n\t2654,\t// 89 = 223.20 Hz\n\t2692,\t// 90 = 226.45 Hz\n\t2731,\t// 91 = 229.74 Hz\n\t2771,\t// 92 = 233.08 Hz\n\t2811,\t// 93 = 236.47 Hz\n\t2852,\t// 94 = 239.91 Hz\n\t2894,\t// 95 = 243.40 Hz\n\t2936,\t// 96 = 246.94 Hz\n\t2978,\t// 97 = 250.53 Hz\n\t3022,\t// 98 = 254.18 Hz\n\t3066,\t// 99 = 257.87 Hz\n\t3110,\t// 100 = 261.63 Hz\n\t3156,\t// 101 = 265.43 Hz\n\t3202,\t// 102 = 269.29 Hz\n\t3248,\t// 103 = 273.21 Hz\n\t3295,\t// 104 = 277.18 Hz\n\t3343,\t// 105 = 281.21 Hz\n\t3392,\t// 106 = 285.30 Hz\n\t3441,\t// 107 = 289.45 Hz\n\t3491,\t// 108 = 293.66 Hz\n\t3542,\t// 109 = 297.94 Hz\n\t3594,\t// 110 = 302.27 Hz\n\t3646,\t// 111 = 306.67 Hz\n\t3699,\t// 112 = 311.13 Hz\n\t3753,\t// 113 = 315.65 Hz\n\t3807,\t// 114 = 320.24 Hz\n\t3863,\t// 115 = 324.90 Hz\n\t3919,\t// 116 = 329.63 Hz\n\t3976,\t// 117 = 334.42 Hz\n\t4034,\t// 118 = 339.29 Hz\n\t4092,\t// 119 = 344.22 Hz\n\t4152,\t// 120 = 349.23 Hz\n\t4212,\t// 121 = 354.31 Hz\n\t4273,\t// 122 = 359.46 Hz\n\t4336,\t// 123 = 364.69 Hz\n\t4399,\t// 124 = 369.99 Hz\n\t4463,\t// 125 = 375.38 Hz\n\t4528,\t// 126 = 380.84 Hz\n\t4593,\t// 127 = 386.38 Hz\n\t4660,\t// 128 = 392.00 Hz\n\t4728,\t// 129 = 397.70 Hz\n\t4797,\t// 130 = 403.48 Hz\n\t4867,\t// 131 = 409.35 Hz\n\t4937,\t// 132 = 415.30 Hz\n\t5009,\t// 133 = 421.35 Hz\n\t5082,\t// 134 = 427.47 Hz\n\t5156,\t// 135 = 433.69 Hz\n\t5231,\t// 136 = 440.00 Hz\n\t5307,\t// 137 = 446.40 Hz\n\t5384,\t// 138 = 452.89 Hz\n\t5463,\t// 139 = 459.48 Hz\n\t5542,\t// 140 = 466.16 Hz\n\t5623,\t// 141 = 472.94 Hz\n\t5704,\t// 142 = 479.82 Hz\n\t5787,\t// 143 = 486.80 Hz\n\t5872,\t// 144 = 493.88 Hz\n\t5957,\t// 145 = 501.07 Hz\n\t6044,\t// 146 = 508.36 Hz\n\t6132,\t// 147 = 515.75 Hz\n\t6221,\t// 148 = 523.25 Hz\n\t6311,\t// 149 = 530.86 Hz\n\t6403,\t// 150 = 538.58 Hz\n\t6496,\t// 151 = 546.42 Hz\n\t6591,\t// 152 = 554.37 Hz\n\t6686,\t// 153 = 562.43 Hz\n\t6784,\t// 154 = 570.61 Hz\n\t6882,\t// 155 = 578.91 Hz\n\t6983,\t// 156 = 587.33 Hz\n\t7084,\t// 157 = 595.87 Hz\n\t7187,\t// 158 = 604.54 Hz\n\t7292,\t// 159 = 613.33 Hz\n\t7398,\t// 160 = 622.25 Hz\n\t7505,\t// 161 = 631.30 Hz\n\t7615,\t// 162 = 640.49 Hz\n\t7725,\t// 163 = 649.80 Hz\n\t7838,\t// 164 = 659.26 Hz\n\t7952,\t// 165 = 668.84 Hz\n\t8067,\t// 166 = 678.57 Hz\n\t8185,\t// 167 = 688.44 Hz\n\t8304,\t// 168 = 698.46 Hz\n\t8424,\t// 169 = 708.62 Hz\n\t8547,\t// 170 = 718.92 Hz\n\t8671,\t// 171 = 729.38 Hz\n\t8797,\t// 172 = 739.99 Hz\n\t8925,\t// 173 = 750.75 Hz\n\t9055,\t// 174 = 761.67 Hz\n\t9187,\t// 175 = 772.75 Hz\n\t9321,\t// 176 = 783.99 Hz\n\t9456,\t// 177 = 795.39 Hz\n\t9594,\t// 178 = 806.96 Hz\n\t9733,\t// 179 = 818.70 Hz\n\t9875,\t// 180 = 830.61 Hz\n\t10018,\t// 181 = 842.69 Hz\n\t10164,\t// 182 = 854.95 Hz\n\t10312,\t// 183 = 867.38 Hz\n\t10462,\t// 184 = 880.00 Hz\n\t10614,\t// 185 = 892.80 Hz\n\t10769,\t// 186 = 905.79 Hz\n\t10925,\t// 187 = 918.96 Hz\n\t11084,\t// 188 = 932.33 Hz\n\t11245,\t// 189 = 945.89 Hz\n\t11409,\t// 190 = 959.65 Hz\n\t11575,\t// 191 = 973.61 Hz\n\t11743,\t// 192 = 987.77 Hz\n\t11914,\t// 193 = 1002.13 Hz\n\t12087,\t// 194 = 1016.71 Hz\n\t12263,\t// 195 = 1031.50 Hz\n\t12441,\t// 196 = 1046.50 Hz\n\t12622,\t// 197 = 1061.72 Hz\n\t12806,\t// 198 = 1077.17 Hz\n\t12992,\t// 199 = 1092.83 Hz\n\t13181,\t// 200 = 1108.73 Hz\n\t13373,\t// 201 = 1124.86 Hz\n\t13568,\t// 202 = 1141.22 Hz\n\t13765,\t// 203 = 1157.82 Hz\n\t13965,\t// 204 = 1174.66 Hz\n\t14168,\t// 205 = 1191.74 Hz\n\t14374,\t// 206 = 1209.08 Hz\n\t14583,\t// 207 = 1226.67 Hz\n\t14795,\t// 208 = 1244.51 Hz\n\t15011,\t// 209 = 1262.61 Hz\n\t15229,\t// 210 = 1280.97 Hz\n\t15451,\t// 211 = 1299.61 Hz\n\t15675,\t// 212 = 1318.51 Hz\n\t15903,\t// 213 = 1337.69 Hz\n\t16135,\t// 214 = 1357.15 Hz\n\t16369,\t// 215 = 1376.89 Hz\n\t16607,\t// 216 = 1396.91 Hz\n\t16849,\t// 217 = 1417.23 Hz\n\t17094,\t// 218 = 1437.85 Hz\n\t17343,\t// 219 = 1458.76 Hz\n\t17595,\t// 220 = 1479.98 Hz\n\t17851,\t// 221 = 1501.50 Hz\n\t18110,\t// 222 = 1523.34 Hz\n\t18374,\t// 223 = 1545.50 Hz\n\t18641,\t// 224 = 1567.98 Hz\n\t18912,\t// 225 = 1590.79 Hz\n\t19187,\t// 226 = 1613.93 Hz\n\t19466,\t// 227 = 1637.40 Hz\n\t19750,\t// 228 = 1661.22 Hz\n\t20037,\t// 229 = 1685.38 Hz\n\t20328,\t// 230 = 1709.90 Hz\n\t20624,\t// 231 = 1734.77 Hz\n\t20924,\t// 232 = 1760.00 Hz\n\t21228,\t// 233 = 1785.60 Hz\n\t21537,\t// 234 = 1811.57 Hz\n\t21850,\t// 235 = 1837.92 Hz\n\t22168,\t// 236 = 1864.66 Hz\n\t22491,\t// 237 = 1891.78 Hz\n\t22818,\t// 238 = 1919.29 Hz\n\t23150,\t// 239 = 1947.21 Hz\n\t23486,\t// 240 = 1975.53 Hz\n\t23828,\t// 241 = 2004.27 Hz\n\t24175,\t// 242 = 2033.42 Hz\n\t24526,\t// 243 = 2063.00 Hz\n\t24883,\t// 244 = 2093.00 Hz\n\t25245,\t// 245 = 2123.45 Hz\n\t25612,\t// 246 = 2154.33 Hz\n\t25985,\t// 247 = 2185.67 Hz\n\t26363,\t// 248 = 2217.46 Hz\n\t26746,\t// 249 = 2249.71 Hz\n\t27135,\t// 250 = 2282.44 Hz\n\t27530,\t// 251 = 2315.64 Hz\n\t27930,\t// 252 = 2349.32 Hz\n\t28336,\t// 253 = 2383.49 Hz\n\t28749,\t// 254 = 2418.16 Hz\n\t29167\t// 255 = 2453.33 Hz\n} ;\n\n// Logarithmic amplitude table:\nstatic short ampl[128] = {\n\t0x0000, 0x0368, 0x0381, 0x039B, 0x03B6, 0x03D2, 0x03EF, 0x040C,\n\t0x042A, 0x044A, 0x046A, 0x048B, 0x04AD, 0x04D0, 0x04F3, 0x0518,\n\t0x053F, 0x0566, 0x058E, 0x05B8, 0x05E2, 0x060E, 0x063C, 0x066A,\n\t0x069A, 0x06CC, 0x06FE, 0x0733, 0x0768, 0x07A0, 0x07D9, 0x0813,\n\t0x0850, 0x088E, 0x08CE, 0x0910, 0x0953, 0x0999, 0x09E1, 0x0A2B,\n\t0x0A77, 0x0AC5, 0x0B16, 0x0B68, 0x0BBE, 0x0C15, 0x0C70, 0x0CCD,\n\t0x0D2C, 0x0D8F, 0x0DF4, 0x0E5D, 0x0EC8, 0x0F36, 0x0FA8, 0x101D,\n\t0x1096, 0x1112, 0x1191, 0x1214, 0x129C, 0x1327, 0x13B6, 0x1449,\n\t0x14E1, 0x157D, 0x161E, 0x16C3, 0x176D, 0x181C, 0x18D0, 0x198A,\n\t0x1A49, 0x1B0D, 0x1BD7, 0x1CA8, 0x1D7E, 0x1E5A, 0x1F3D, 0x2027,\n\t0x2117, 0x220E, 0x230D, 0x2413, 0x2521, 0x2636, 0x2754, 0x287A,\n\t0x29A8, 0x2AE0, 0x2C20, 0x2D6A, 0x2EBE, 0x301B, 0x3183, 0x32F5,\n\t0x3472, 0x35FA, 0x378D, 0x392C, 0x3AD8, 0x3C90, 0x3E54, 0x4026,\n\t0x4206, 0x43F3, 0x45EF, 0x47FA, 0x4A14, 0x4C3E, 0x4E78, 0x50C3,\n\t0x531E, 0x558C, 0x580B, 0x5A9D, 0x5D43, 0x5FFC, 0x62C9, 0x65AC,\n\t0x68A4, 0x6BB2, 0x6ED7, 0x7214, 0x7568, 0x78D6, 0x7C5D, 0x7FFF} ;\n\n// Table of mask bytes for channel synchronisation:\nstatic unsigned char syncs[256] = {\n\t0b11111111,\t// 00000000B\n\t0b11111111,\t// 00000001B\n\t0b11111111,\t// 00000010B\n\t0b11111111,\t// 00000011B\n\t0b11111111,\t// 00000100B\n\t0b11111010,\t// 00000101B\n\t0b11111111,\t// 00000110B\n\t0b11111111,\t// 00000111B\n\t0b11111111,\t// 00001000B\n\t0b11111111,\t// 00001001B\n\t0b11111111,\t// 00001010B\n\t0b11111111,\t// 00001011B\n\t0b11111111,\t// 00001100B\n\t0b11111111,\t// 00001101B\n\t0b11111111,\t// 00001110B\n\t0b11111111,\t// 00001111B\n\t0b11111111,\t// 00010000B\n\t0b11101110,\t// 00010001B\n\t0b11111111,\t// 00010010B\n\t0b11111111,\t// 00010011B\n\t0b11101011,\t// 00010100B\n\t0b11101010,\t// 00010101B\n\t0b11101011,\t// 00010110B\n\t0b11101011,\t// 00010111B\n\t0b11111111,\t// 00011000B\n\t0b11101110,\t// 00011001B\n\t0b11111111,\t// 00011010B\n\t0b11111111,\t// 00011011B\n\t0b11111111,\t// 00011100B\n\t0b11101110,\t// 00011101B\n\t0b11111111,\t// 00011110B\n\t0b11111111,\t// 00011111B\n\t0b11111111,\t// 00100000B\n\t0b11111111,\t// 00100001B\n\t0b11111111,\t// 00100010B\n\t0b11111111,\t// 00100011B\n\t0b11111111,\t// 00100100B\n\t0b11111010,\t// 00100101B\n\t0b11111111,\t// 00100110B\n\t0b11111111,\t// 00100111B\n\t0b11111111,\t// 00101000B\n\t0b11111111,\t// 00101001B\n\t0b11101010,\t// 00101010B\n\t0b11111111,\t// 00101011B\n\t0b11111111,\t// 00101100B\n\t0b11111111,\t// 00101101B\n\t0b11111111,\t// 00101110B\n\t0b11111111,\t// 00101111B\n\t0b11111111,\t// 00110000B\n\t0b11111111,\t// 00110001B\n\t0b11111111,\t// 00110010B\n\t0b11111111,\t// 00110011B\n\t0b11111111,\t// 00110100B\n\t0b11111010,\t// 00110101B\n\t0b11111111,\t// 00110110B\n\t0b11111111,\t// 00110111B\n\t0b11111111,\t// 00111000B\n\t0b11111111,\t// 00111001B\n\t0b11111111,\t// 00111010B\n\t0b11111111,\t// 00111011B\n\t0b11111111,\t// 00111100B\n\t0b11111111,\t// 00111101B\n\t0b11111111,\t// 00111110B\n\t0b11111111,\t// 00111111B\n\t0b11111111,\t// 01000000B\n\t0b10111110,\t// 01000001B\n\t0b11111111,\t// 01000010B\n\t0b11111111,\t// 01000011B\n\t0b10111011,\t// 01000100B\n\t0b10111010,\t// 01000101B\n\t0b10111011,\t// 01000110B\n\t0b10111011,\t// 01000111B\n\t0b11111111,\t// 01001000B\n\t0b10111110,\t// 01001001B\n\t0b11111111,\t// 01001010B\n\t0b11111111,\t// 01001011B\n\t0b11111111,\t// 01001100B\n\t0b10111110,\t// 01001101B\n\t0b11111111,\t// 01001110B\n\t0b11111111,\t// 01001111B\n\t0b10101111,\t// 01010000B\n\t0b10101110,\t// 01010001B\n\t0b10101111,\t// 01010010B\n\t0b10101111,\t// 01010011B\n\t0b10101011,\t// 01010100B\n\t0b10101010,\t// 01010101B\n\t0b10101011,\t// 01010110B\n\t0b10101011,\t// 01010111B\n\t0b10101111,\t// 01011000B\n\t0b10101110,\t// 01011001B\n\t0b10101111,\t// 01011010B\n\t0b10101111,\t// 01011011B\n\t0b10101111,\t// 01011100B\n\t0b10101110,\t// 01011101B\n\t0b10101111,\t// 01011110B\n\t0b10101111,\t// 01011111B\n\t0b11111111,\t// 01100000B\n\t0b10111110,\t// 01100001B\n\t0b11111111,\t// 01100010B\n\t0b11111111,\t// 01100011B\n\t0b10111011,\t// 01100100B\n\t0b10111010,\t// 01100101B\n\t0b10111011,\t// 01100110B\n\t0b10111011,\t// 01100111B\n\t0b11111111,\t// 01101000B\n\t0b10111110,\t// 01101001B\n\t0b11101010,\t// 01101010B\n\t0b11111111,\t// 01101011B\n\t0b11111111,\t// 01101100B\n\t0b10111110,\t// 01101101B\n\t0b11111111,\t// 01101110B\n\t0b11111111,\t// 01101111B\n\t0b11111111,\t// 01110000B\n\t0b10111110,\t// 01110001B\n\t0b11111111,\t// 01110010B\n\t0b11111111,\t// 01110011B\n\t0b10111011,\t// 01110100B\n\t0b10111010,\t// 01110101B\n\t0b10111011,\t// 01110110B\n\t0b10111011,\t// 01110111B\n\t0b11111111,\t// 01111000B\n\t0b10111110,\t// 01111001B\n\t0b11111111,\t// 01111010B\n\t0b11111111,\t// 01111011B\n\t0b11111111,\t// 01111100B\n\t0b10111110,\t// 01111101B\n\t0b11111111,\t// 01111110B\n\t0b11111111,\t// 01111111B\n\t0b11111111,\t// 10000000B\n\t0b11111111,\t// 10000001B\n\t0b11111111,\t// 10000010B\n\t0b11111111,\t// 10000011B\n\t0b11111111,\t// 10000100B\n\t0b11111010,\t// 10000101B\n\t0b11111111,\t// 10000110B\n\t0b11111111,\t// 10000111B\n\t0b11111111,\t// 10001000B\n\t0b11111111,\t// 10001001B\n\t0b10111010,\t// 10001010B\n\t0b11111111,\t// 10001011B\n\t0b11111111,\t// 10001100B\n\t0b11111111,\t// 10001101B\n\t0b11111111,\t// 10001110B\n\t0b11111111,\t// 10001111B\n\t0b11111111,\t// 10010000B\n\t0b11101110,\t// 10010001B\n\t0b11111111,\t// 10010010B\n\t0b11111111,\t// 10010011B\n\t0b11101011,\t// 10010100B\n\t0b11101010,\t// 10010101B\n\t0b11101011,\t// 10010110B\n\t0b11101011,\t// 10010111B\n\t0b11111111,\t// 10011000B\n\t0b11101110,\t// 10011001B\n\t0b10111010,\t// 10011010B\n\t0b11111111,\t// 10011011B\n\t0b11111111,\t// 10011100B\n\t0b11101110,\t// 10011101B\n\t0b11111111,\t// 10011110B\n\t0b11111111,\t// 10011111B\n\t0b11111111,\t// 10100000B\n\t0b11111111,\t// 10100001B\n\t0b10101110,\t// 10100010B\n\t0b11111111,\t// 10100011B\n\t0b11111111,\t// 10100100B\n\t0b11111010,\t// 10100101B\n\t0b10101110,\t// 10100110B\n\t0b11111111,\t// 10100111B\n\t0b10101011,\t// 10101000B\n\t0b10101011,\t// 10101001B\n\t0b10101010,\t// 10101010B\n\t0b10101011,\t// 10101011B\n\t0b11111111,\t// 10101100B\n\t0b11111111,\t// 10101101B\n\t0b10101110,\t// 10101110B\n\t0b11111111,\t// 10101111B\n\t0b11111111,\t// 10110000B\n\t0b11111111,\t// 10110001B\n\t0b11111111,\t// 10110010B\n\t0b11111111,\t// 10110011B\n\t0b11111111,\t// 10110100B\n\t0b11111010,\t// 10110101B\n\t0b11111111,\t// 10110110B\n\t0b11111111,\t// 10110111B\n\t0b11111111,\t// 10111000B\n\t0b11111111,\t// 10111001B\n\t0b10111010,\t// 10111010B\n\t0b11111111,\t// 10111011B\n\t0b11111111,\t// 10111100B\n\t0b11111111,\t// 10111101B\n\t0b11111111,\t// 10111110B\n\t0b11111111,\t// 10111111B\n\t0b11111111,\t// 11000000B\n\t0b11111111,\t// 11000001B\n\t0b11111111,\t// 11000010B\n\t0b11111111,\t// 11000011B\n\t0b11111111,\t// 11000100B\n\t0b11111010,\t// 11000101B\n\t0b11111111,\t// 11000110B\n\t0b11111111,\t// 11000111B\n\t0b11111111,\t// 11001000B\n\t0b11111111,\t// 11001001B\n\t0b11111111,\t// 11001010B\n\t0b11111111,\t// 11001011B\n\t0b11111111,\t// 11001100B\n\t0b11111111,\t// 11001101B\n\t0b11111111,\t// 11001110B\n\t0b11111111,\t// 11001111B\n\t0b11111111,\t// 11010000B\n\t0b11101110,\t// 11010001B\n\t0b11111111,\t// 11010010B\n\t0b11111111,\t// 11010011B\n\t0b11101011,\t// 11010100B\n\t0b11101010,\t// 11010101B\n\t0b11101011,\t// 11010110B\n\t0b11101011,\t// 11010111B\n\t0b11111111,\t// 11011000B\n\t0b11101110,\t// 11011001B\n\t0b11111111,\t// 11011010B\n\t0b11111111,\t// 11011011B\n\t0b11111111,\t// 11011100B\n\t0b11101110,\t// 11011101B\n\t0b11111111,\t// 11011110B\n\t0b11111111,\t// 11011111B\n\t0b11111111,\t// 11100000B\n\t0b11111111,\t// 11100001B\n\t0b11111111,\t// 11100010B\n\t0b11111111,\t// 11100011B\n\t0b11111111,\t// 11100100B\n\t0b11111010,\t// 11100101B\n\t0b11111111,\t// 11100110B\n\t0b11111111,\t// 11100111B\n\t0b11111111,\t// 11101000B\n\t0b11111111,\t// 11101001B\n\t0b11101010,\t// 11101010B\n\t0b11111111,\t// 11101011B\n\t0b11111111,\t// 11101100B\n\t0b11111111,\t// 11101101B\n\t0b11111111,\t// 11101110B\n\t0b11111111,\t// 11101111B\n\t0b11111111,\t// 11110000B\n\t0b11111111,\t// 11110001B\n\t0b11111111,\t// 11110010B\n\t0b11111111,\t// 11110011B\n\t0b11111111,\t// 11110100B\n\t0b11111010,\t// 11110101B\n\t0b11111111,\t// 11110110B\n\t0b11111111,\t// 11110111B\n\t0b11111111,\t// 11111000B\n\t0b11111111,\t// 11111001B\n\t0b11111111,\t// 11111010B\n\t0b11111111,\t// 11111011B\n\t0b11111111,\t// 11111100B\n\t0b11111111,\t// 11111101B\n\t0b11111111,\t// 11111110B\n\t0b10101010\t// 11111111B\n} ;\n\n// Sound waveform harmonics:\nstatic float harms[8][9] = {\n// Waveform 0 (square):\n{\n\t0.5,\n\t0.0,\n\t0.166667,\t// 1/3\n\t0.0,\n\t0.100000,\t// 1/5\n\t0.0,\n\t0.071429,\t// 1/7\n\t0.0,\n\t0.055556\t// 1/9\n},\n// Waveform 1 (triangular):\n{\n\t0.8,\n\t0.0,\n\t-0.0888889,\t// 1/9\n\t0.0,\n\t0.0320000,\t// 1/25\n\t0.0,\n\t-0.0163265,\t// 1/49\n\t0.0,\n\t0.0098765\t// 1/81\n},\n// Waveform 2:\n{\n\t0.6,\n\t0.1,\t\t// 1/5\n\t0.0,\n\t0.1,\t\t// 1/5\n\t0.2,\t\t// 2/5\n\t0.0,\n\t0.0,\n\t0.0,\n\t0.0\n},\n// Waveform 3:\n{\n\t0.5,\n\t-0.5,\n\t0.0,\n\t0.0,\n\t0.0,\n\t0.0,\n\t0.0,\n\t0.0,\n\t0.0\n},\n// Waveform 4 (sine):\n{\n\t1.0,\n\t0.0,\n\t0.0,\n\t0.0,\n\t0.0,\n\t0.0,\n\t0.0,\n\t0.0,\n\t0.0\n},\n// Waveform 5:\n{\n\t0.500,\n\t0.250,\t\t// 1/2\n\t0.0,\n\t0.125,\t\t// 1/4\n\t0.0,\n\t0.0,\n\t0.0,\n\t0.0,\n\t0.0\n},\n// Waveform 6:\n{\n\t0.270,\n\t0.225,\t\t// 5/6\n\t0.180,\t\t// 4/6\n\t0.135,\t\t// 3/6\n\t0.090,\t\t// 2/6\n\t0.045,\t\t// 1/6\n\t0.0,\n\t0.0,\n\t0.0\n},\n// Waveform 7:\n{\n\t0.520,\n\t0.260,\t\t// 1/2\n\t0.0,\n\t0.0,\n\t0.0,\n\t0.0,\n\t0.0,\n\t0.0,\n\t0.0\n}} ;\n\n// Forward reference:\nvoid quiet (void) ;\n\n// Prepare for outputting an error message:\nvoid reset (void)\n{\n\tvduq[10] = 0 ;\t// Flush VDU queue\n\tkeyptr = NULL ;\t// Cancel *KEY expansion\n\tif (*(keystr + 0))\n\t    {\n\t\tSDL_free (*(keystr + 0)) ; // Clipboard\n\t\t*(keystr + 0) = NULL ;\n\t    }\n\toptval = 0 ;\t// Cancel I/O redirection\n\treflag = 0 ;\t// *REFRESH ON\n }\n\nstatic int BBC_PushEvent(SDL_Event* event)\n{\n\tint ret ;\n#ifdef MUTEX\n\tSDL_LockMutex (Mutex) ;\n#endif\n\tret = SDL_PushEvent (event) ;\n#ifdef MUTEX\n\tSDL_UnlockMutex (Mutex) ;\n#endif\n\treturn ret ;\n}\n\n// Push event onto queue:\nvoid pushev (int code, void *data1, void *data2)\n{\n\tSDL_Event event ;\n\n\tevent.type = SDL_USEREVENT ;\n\tevent.user.code = code ;\n\tevent.user.data1 = data1 ;\n\tevent.user.data2 = data2 ;\n\n\twhile (SDL_SemValue (Sema4))\n\t\tSDL_SemWait (Sema4) ;\n\n\tSDL_AtomicIncRef ((SDL_atomic_t*) &nUserEv) ;\n\twhile (BBC_PushEvent (&event) <= 0)\n\t\tSDL_Delay (1) ;\n\twhile (nUserEv >= MAX_EVENTS)\n\t\tSDL_Delay (1) ;\n}\n\nstatic int BBC_RWclose (struct SDL_RWops* context)\n{\n\tint ret = SDL_RWclose (context) ;\n\tpushev (EVT_FSSYNC, NULL, NULL) ;\n\treturn ret ;\n}\n\n// Wait for an event to be acknowledged:\nsize_t waitev (void)\n{\n\tSDL_SemWait (Sema4) ;\n\treturn iResult ;\n}\n\n// Put event into event queue, unless full:\nint putevt (heapptr handler, int msg, int wparam, int lparam)\n{\n\tunsigned char bl = evtqw ;\n\tunsigned char al = bl + 8 ;\n\tint index = bl >> 2 ;\n\tif ((al == evtqr) || (eventq == NULL))\n\t\treturn 0 ;\n\teventq[index] = lparam ;\n\teventq[index + 1] = msg ;\n\teventq[index + 64] = wparam ;\n\teventq[index + 65] = handler ;\n\tevtqw = al ;\n\treturn 1 ;\n}\n\n// Get event from event queue, unless empty:\nstatic heapptr getevt (void)\n{\n\theapptr handler ;\n\tunsigned char al = evtqr ;\n\tint index = al >> 2 ;\n\tflags &= ~ALERT ;\n\tif ((al == evtqw) || (eventq == NULL))\n\t\treturn 0 ;\n\tlParam = eventq[index] ;\n\tiMsg = eventq[index + 1] ;\n\twParam = eventq[index + 64] ;\n\thandler = eventq[index + 65] ;\n\tal += 8 ;\n\tevtqr = al ;\n\tif (al != evtqw)\n\t\tflags |= ALERT ;\n\treturn handler ;\n}\n\n// Put keycode to keyboard queue:\nint putkey (char key)\n{\n\tunsigned char bl = kbdqw ;\n\tunsigned char al = bl + 1 ;\n\tif (al != kbdqr)\n\t{\n\t\tkeybdq[(int) bl] = key ;\n\t\tkbdqw = al ;\n\t\treturn 1 ;\n\t}\n\treturn 0 ;\n}\n\n// Get keycode (if any) from keyboard queue:\nstatic int getkey (unsigned char *pkey)\n{\n\tunsigned char bl = kbdqr ;\n\tOSKtime = 6 ;\n\tif (bl != kbdqw)\n\t{\n\t\t*pkey = keybdq[(int) bl] ;\n\t\tkbdqr = bl + 1 ;\n\t\treturn 1 ;\n\t}\n\treturn 0 ;\n}\n\n// Get text cursor (caret) coordinates:\nvoid getcsr(int *px, int *py)\n{\n\tunsigned int xy ;\n\tpushev (EVT_CARET, NULL, NULL) ;\n\txy = waitev() ;\n\tif (px != NULL)\n\t\t*px = xy & 0xFFFF ;\n\tif (py != NULL)\n\t\t*py = xy >> 16 ;\n}\n\n// Get pixel RGB colour:\nint vtint (int x, int y)\n{\n\tpushev (EVT_TINT, (void *)(intptr_t)x, (void *)(intptr_t)y) ;\n\treturn waitev () ;\n}\n\n// Get current MODE number:\nint getmodeno (void)\n{\n\treturn modeno ;\n}\n\n// Get nearest palette index:\nint vpoint (int x, int y)\n{\n\tunsigned char rgb[3] ;\n\tunsigned int best = 0x7FFFFFFF ;\n\tint i, n = -1 ;\n\tpushev (EVT_TINT, (void *)(intptr_t)x, (void *)(intptr_t)y) ;\n\ti = waitev () ;\n\tif (i < 0)\n\t\treturn i ;\n\trgb[0] = i & 0xFF ;\n\trgb[1] = i >> 8 ;\n\trgb[2] = i >> 16 ;\n\tfor (i = 0; i <= colmsk; i++)\n\t    {\n\t\tunsigned int sqr ;\n\t\tint dif ;\n\t\tdif = rgb[0] - (palette[i] & 0xFF) ;\n\t\tsqr = dif * dif ;\n\t\tdif = rgb[1] - ((palette[i] >> 8) & 0xFF) ;\n\t\tsqr += dif * dif ;\n\t\tdif = rgb[2] - ((palette[i] >> 16) & 0xFF) ;\n\t\tsqr += dif * dif ;\n\t\tif (sqr < best)\n\t\t    {\n\t\t\tbest = sqr ;\n\t\t\tn = i ;\n\t\t    }\n\t    }\n\treturn n ;\n}\n\nint vgetc (int x, int y)\n{\n\tint eax, ebx, ecx ;\n\tpushev (EVT_CHAR, (void *)(intptr_t)x, (void *)(intptr_t)y) ;\n\teax = waitev () ;\n\tif (eax < 0)\n\t\treturn -1 ;\n\teax &= 0xFFFF ;\n\tif ((eax < 0x80) || ((vflags & UTF8) == 0))\n\t\treturn eax ;\n\tecx = -64 ;\n\tebx = 0 ;\n\tdo\n\t    {\n\t\tebx = (ebx & 0xFFFF00) | (eax & 0x3F) | 0x80 ;\n\t\tecx = ecx >> 1 ;\n\t\teax = eax >> 6 ;\n\t\tebx = ebx << 8 ;\n\t    }\n\twhile (eax & ecx) ;\n\teax |= (ecx << 1) & 0xFF ;\n\treturn (eax | ebx) ;\n}\n\n// Enable on-screen keyboard (Android):\nstatic void oskon (void)\n{\n#if defined(__ANDROID__) || defined(__IPHONEOS__)\n\tpushev (EVT_OSK, (void *) 1, NULL) ;\n\tOSKtime = 6 ;\n#endif\n}\n\n// Read (possibly on-screen) keyboard:\nstatic int rdkey (unsigned char *pkey)\n{\n\tif (keyptr)\n\t{\n\t\t*pkey = *keyptr++ ;\n\t\tif (*keyptr == 0)\n\t\t    {\n\t\t\tkeyptr = NULL ;\n\t\t\tif (*(keystr + 0))\n\t\t\t    {\n\t\t\t\tSDL_free (*(keystr + 0)) ; // Clipboard\n\t\t\t\t*(keystr + 0) = NULL ;\n\t\t\t    }\n\t\t    }\n\t\treturn 1 ;\n\t}\n\n\tif (getkey (pkey))\n\t{\n\t\tint keyno = 0 ;\n\t\tif ((*pkey >= 128) && (*pkey < 156))\n\t\t\tkeyno = *pkey ^ 144 ;\n\t\tif (keyno >= 24)\n\t\t\tkeyno -= 12 ;\n\t\tif (*pkey == 8)\n\t\t\tkeyno = 24 ;\n\t\tif (keyno)\n\t\t{\n\t\t\tkeyptr = *((unsigned char **)keystr + keyno) ;\n\t\t\tif (keyptr)\n\t\t\t{\n\t\t\t\t*pkey = *keyptr++ ;\n\t\t\t\tif (*keyptr == 0)\n\t\t\t\t\tkeyptr = NULL ;\n\t\t\t}\n\t\t}\n\t\treturn 1 ;\n\t}\n\treturn 0 ;\n}\n\n// Check for Escape (if enabled) and kill:\nvoid trap (void)\n{\n\t\twhile (bBackground)\n\t\t\tSDL_Delay (5) ;\n\t\tif (flags & KILL)\n\t\t\terror (-1, NULL) ; // Quit\n\t\tif (flags & ESCFLG)\n\t\t    {\n\t\t\tflags &= ~ESCFLG ;\n\t\t\tkbdqr = kbdqw ;\n\t\t\tquiet () ;\n\t\t\tif (exchan)\n\t\t\t    {\n\t\t\t\tSDL_RWclose (exchan) ;\n \t\t\t\texchan = NULL ;\n\t\t\t    }\n\t\t\terror (17, NULL) ; // 'Escape'\n\t\t    }\n}\n\n// Test for escape, kill, pause, single-step, flash and alert:\nheapptr xtrap (void)\n{\n\t\tif (flags & KILL)\n\t\t\terror (-1, NULL) ; // Quit\n\t\tif (flags & ESCFLG)\n\t\t    {\n\t\t\tflags &= ~ESCFLG ;\n\t\t\tkbdqr = kbdqw ;\n\t\t\tquiet () ;\n\t\t\tif (exchan)\n\t\t\t    {\n\t\t\t\tSDL_RWclose (exchan) ;\n \t\t\t\texchan = NULL ;\n\t\t\t    }\n\t\t\terror (17, NULL) ; // 'Escape'\n\t\t    }\n\t\tif (flags & ALERT)\n\t\t\treturn getevt () ;\n\t\tif ((flags & PAUSE) && (curlin < breakhi) && (curlin >= breakpt))\n\t\t    {\n\t\t\tflags |= SSTEP ; \n\t\t\twhile (flags & SSTEP)\n\t\t\t    {\n\t\t\t\tSDL_Delay (1) ;\n\t\t\t\ttrap () ;\n\t\t\t    }\n\t\t    }\n\t\treturn 0 ;\n}\n\n// Report a 'fatal' error:\nvoid faterr (const char *msg)\n{\n\tif (SDL_ShowSimpleMessageBox (SDL_MESSAGEBOX_ERROR, szVersion, msg, hwndProg))\n\t    {\n\t\treset () ;\n\t\toswrch (22) ; oswrch (7) ;\n\t\ttext (msg) ;\n\t\tcrlf () ;\n\t\tlongjmp (env, 256) ;\t\t\n\t    }\n}\n\n// Wait a maximum period for a keypress, or test key asynchronously:\nint oskey (int wait)\n{\n\tif (wait >= 0)\n\t    {\n\t\tunsigned int start = SDL_GetTicks () ;\n\t\twhile (1)\n\t\t    {\n\t\t\tunsigned char key ;\n\t\t\tif (rdkey (&key))\n\t\t\t\treturn (int) key ;\n\t\t\tif ((unsigned int)(SDL_GetTicks () - start) >= wait * 10)\n\t\t\t\treturn -1 ;\n\t\t\tSDL_Delay (5) ;\n\t\t\ttrap () ;\n\t\t    }\n\t    }\n\n\tif ((wait <= -10) && (wait >= -12))\n\t    {\n\t\tint state = SDL_GetMouseState (NULL, NULL) ;\n\t\treturn -((state & (0x40 >> (wait & 7))) != 0) ;\n\t    }\n\n\tif (wait >= -128)\n\t    {\n\t\tconst unsigned char *keys = SDL_GetKeyboardState (NULL) ;\n\t\tint index = xkey[~wait] ;\n\t\tint state = keys[index] ;\n\t\tif (wait >= -3)\n\t\t\tstate |= keys[index + 4 ] ; // Shift, Ctrl, Alt\n\t\treturn -state ;\n\t    }\n\n\treturn 's' ;\n}\n\n// Wait for keypress:\nunsigned char osrdch (void)\n{\n\tunsigned char key ;\n\tif (exchan)\n\t{\n\t\tif (SDL_RWread (exchan, &key, 1, 1))\n\t\t\treturn key ;\n\t\tSDL_RWclose (exchan) ;\n \t\texchan = NULL ;\n\t}\n\n\tif (optval >> 4)\n\t\treturn osbget ((void *)(size_t)(optval >> 4), NULL) ;\n\n\toskon () ;\n\twhile (!rdkey (&key))\n\t{\n\t\tSDL_Delay (5) ;\n\t\tif (SDL_GetMouseState (NULL, NULL) & 1) oskon () ;\n\t\ttrap () ;\n\t}\n\treturn key ;\n}\n\n// Output byte (ANSI or UTF-8) to VDU stream:\nvoid oswrch (unsigned char vdu)\n{\n\tunsigned char *pqueue = vduq ;\n\n\tif (optval & 0x0F)\n\t    {\n\t\tosbput ((void *)(size_t)(optval & 0x0F), vdu) ;\n\t\treturn ;\n\t    }\n\n\tif (spchan)\n\t{\n\t\tif (0 == SDL_RWwrite (spchan, &vdu, 1, 1))\n\t\t    {\n\t\t\tBBC_RWclose (spchan) ;\n\t\t\tspchan = NULL ;\n\t\t    }\n\t}\n\n\tif (vduq[10] != 0)\t\t// Filling queue ?\n\t{\n\t\tvduq[9 - vduq[10]] = vdu ;\n\t\tvduq[10] -- ;\n\t\tif (vduq[10] != 0)\n\t\t\treturn ;\n\t\tvdu = vduq[9] ;\n\t\tif (vdu >= 0x80)\n\t\t{\n\t\t\tint eax = vdu ;\n\t\t\tint ecx = (vdu >> 4) & 3 ;\n\t\t\tif (ecx == 0) ecx++ ;\n\t\t\tpqueue -= ecx - 9 ;\n\t\t\teax &= 0x1F ;\n\t\t\tfor ( ; ecx > 0 ; ecx--)\n\t\t\t\teax = (eax << 6) | (0x3F & *pqueue++) ;\n\t\t\tpushev (EVT_VDU, (void *)(intptr_t)eax, NULL) ;\n\t\t\treturn ;\n\t\t}\n\t}\n\telse if (vdu >= 0x20)\n\t{\n\t\tif ((vdu >= 0x80) && (vflags & UTF8))\n\t\t{\n\t\t\tchar ah = (vdu >> 4) & 3 ;\n\t\t\tif (ah == 0) ah++ ;\n\t\t\tvduq[10] = ah ;\t// No. of bytes to follow\n\t\t\tvduq[9] = vdu ;\n\t\t\treturn ;\n\t\t}\n\t\tpushev (EVT_VDU, (void *)(size_t) vdu, NULL) ;\n\t\treturn ;\n\t}\n\telse\n\t{\n\t\tvduq[10] = vdulen[(int) vdu] ;\n\t\tvduq[9] = vdu ;\n\t\tif (vduq[10] != 0)\n\t\t\treturn ;\n\t}\n\n// Mapping of VDU queue to UserEvent parameters,\n// VDU 23 (defchr) has the most parameter bytes:\n//\n//          0  ^\n// status-> 0  | ev.user.code\n//          V  | (eax)\n//          h  v\n//          g  ^\n//          f  | ev.user.data1\n//          e  | (ecx)\n//          d  v\n//          c  ^\n//          b  | ev.user.data2\n//          a  | (edx)\n//  vduq->  n  v\n\n\tpushev (*(int*)(pqueue + 8) & 0xFFFF, (void *)(intptr_t)*(int*)(pqueue + 4), \n\t\t\t\t\t      (void *)(intptr_t)*(int*)pqueue) ;\n\tif ((vduq[9] == 23) && (vduq[0] == 22))\n\t\tgetcsr(NULL, NULL) ; // thread sync after possible UTF8 change\n}\n\nstatic unsigned char copykey (int *cc, int key)\n{\n\tpushev (EVT_COPYKEY, cc, (void *)(intptr_t) key) ;\n\treturn (unsigned char) waitev () ;\n}\n\n// Input and edit a string :\nvoid osline (char *buffer)\n{\n\tchar *eol = buffer ;\n\tchar *p = buffer ;\n\t*buffer = 0x0D ;\n\tint cc = -1 ; // Copy key\n\tint n ;\n\n\twhile (1)\n\t    {\n\t\tunsigned char key ;\n\n\t\tcopykey (&cc, 0) ;\n\t\tdo\n\t\t\tkey = osrdch () ;\n\t\twhile ((key = copykey (&cc, key)) == 0) ;\n\n\t\tswitch (key)\n\t\t    {\n\t\t\tcase 0x0D:\n\t\t\t\treturn ;\n\n\t\t\tcase 8:\n\t\t\tcase 127:\n\t\t\t\tif (p > buffer)\n\t\t\t\t    {\n\t\t\t\t\tchar *q = p ;\n\t\t\t\t\tdo p-- ; while ((vflags & UTF8) && (*(signed char*)p < -64)) ;\n\t\t\t\t\toswrch (8) ;\n\t\t\t\t\tmemmove (p, q, buffer + 256 - q) ;\n\t\t\t\t    }\n\t\t\t\tbreak ;\n\n\t\t\tcase 21:\n\t\t\t\twhile (p > buffer)\n\t\t\t\t    {\n\t\t\t\t\tchar *q = p ;\n\t\t\t\t\tdo p-- ; while ((vflags & UTF8) && (*(signed char*)p < -64)) ;\n\t\t\t\t\toswrch (8) ;\n\t\t\t\t\tmemmove (p, q, buffer + 256 - q) ;\n\t\t\t\t    }\n\t\t\t\tbreak ;\n\n\t\t\tcase 130:\n\t\t\t\twhile (p > buffer)\n\t\t\t\t    {\n\t\t\t\t\toswrch (8) ;\n\t\t\t\t\tdo p-- ; while ((vflags & UTF8) && (*(signed char*)p < -64)) ;\n\t\t\t\t    }\n\t\t\t\tbreak ;\n\n\t\t\tcase 131:\n\t\t\t\twhile (*p != 0x0D)\n\t\t\t\t    {\n\t\t\t\t\toswrch (9) ;\n\t\t\t\t\tdo p++ ; while ((vflags & UTF8) && (*(signed char*)p < -64)) ;\n\t\t\t\t    }\n\t\t\t\tbreak ;\n\n\t\t\tcase 135:\n\t\t\t\tif (*p != 0x0D)\n\t\t\t\t    {\n\t\t\t\t\tchar *q = p ;\n\t\t\t\t\tdo q++ ; while ((vflags & UTF8) && (*(signed char*)q < -64)) ;\n\t\t\t\t\tmemmove (p, q, buffer + 256 - q) ;\n\t\t\t\t    }\n\t\t\t\tbreak ;\n\n\t\t\tcase 136:\n\t\t\t\tif (p > buffer)\n\t\t\t\t    {\n\t\t\t\t\toswrch (8) ;\n\t\t\t\t\tdo p-- ; while ((vflags & UTF8) && (*(signed char*)p < -64)) ;\n\t\t\t\t    }\n\t\t\t\tbreak ;\n\n\t\t\tcase 137:\n\t\t\t\tif (*p != 0x0D)\n\t\t\t\t    {\n\t\t\t\t\toswrch (9) ;\n\t\t\t\t\tdo p++ ; while ((vflags & UTF8) && (*(signed char*)p < -64)) ;\n\t\t\t\t    }\n\t\t\t\tbreak ;\n\n\t\t\tcase 138:\n\t\t\tcase 139:\n\t\t\t\tcopykey (&cc, 9) ;\n\t\t\t\tcopykey (&cc, 0) ;\n\t\t\t\tcopykey (&cc, key) ;\n\t\t\t\tcopykey (&cc, 32) ;\n\t\t\t\tif (*p == 0x0D)\n\t\t\t\t    {\n\t\t\t\t\toswrch (32) ;\n\t\t\t\t\toswrch (8) ;\n\t\t\t\t    }\n\t\t\t\tbreak ;\n\n\t\t\tcase 155:\n\t\t\t\tcopykey (&cc, 155) ;\n\t\t\t\tbreak ;\n\n\t\t\tcase 22:\n\t\t\t\tif (SDL_HasClipboardText ())\n\t\t\t\t    {\n\t\t\t\t\t*(keystr + 0) = SDL_GetClipboardText () ;\n\t\t\t\t\tkeyptr = (unsigned char *) *(keystr + 0) ;\n\t\t\t\t    }\n\t\t\t\tbreak ;\n\n\t\t\tcase 140:\n\t\t\tcase 141:\n\t\t\t\tbreak ;\n\n\t\t\tdefault:\n\t\t\t\tif (p < (buffer + 255))\n\t\t\t\t    {\n\t\t\t\t\tif (key != 0x0A)\n\t\t\t\t\t    {\n\t\t\t\t\t\tsclflg = -1 ;\n\t\t\t\t\t\toswrch (key) ;\n\t\t\t\t\t\tif (cc != -1)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tgetcsr (NULL, NULL) ; // thread sync\n\t\t\t\t\t\t\tswitch (sclflg)\n\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\tcase 0:\tcc += charx ;\n\t\t\t\t\t\t\t\t\tbreak ;\n\t\t\t\t\t\t\t\tcase 1:\tcc += chary << 16 ;\n\t\t\t\t\t\t\t\t\tbreak ;\n\t\t\t\t\t\t\t\tcase 2:\tcc -= charx ;\n\t\t\t\t\t\t\t\t\tbreak ;\n\t\t\t\t\t\t\t\tcase 3:\tcc -= chary << 16 ;\n\t\t\t\t\t\t\t    }\n\t\t\t\t\t\t    } \n\t\t\t\t\t    }\n\t\t\t\t\tif (key >= 32)\n\t\t\t\t\t    {\n\t\t\t\t\t\tmemmove (p + 1, p, buffer + 255 - p) ;\n\t\t\t\t\t\t*p++ = key ;\n\t\t\t\t\t\t*(buffer + 255) = 0x0D ;\n\t\t\t\t\t\tif ((*p != 0x0D) && (vflags & IOFLAG) && (queue == 0))\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tchar *q = p ;\n\t\t\t\t\t\t\tdo q++ ; while ((vflags & UTF8) &&\n\t\t\t\t\t\t\t\t(*(signed char*)q < -64)) ;\n\t\t\t\t\t\t\tmemmove (p, q, buffer + 256 - q) ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t    }\n\t\t\t\t    }\n\t\t    }\n\n\t\tif (queue == 0)\n\t\t    {\n\t\t\tint i ;\n\t\t\toswrch (23) ;\n\t\t\toswrch (1) ;\n\t\t\toswrch (128) ;\n\t\t\tfor (n = 7 ; n != 0 ; n--)\n\t\t\t\toswrch (0) ;\n\t\t\twhile (*p != 0x0D)\n\t\t\t    {\n\t\t\t\toswrch (*p++) ;\n\t\t\t\tn++ ;\n\t\t\t    }\n\t\t\tfor (i = 0; i < (eol - p); i++)\n\t\t\t\toswrch (32) ;\n\t\t\tfor (i = 0; i < (eol - p); i++)\n\t\t\t\toswrch (8) ;\n\t\t\teol = p ;\n\t\t\twhile (n)\n\t\t\t    {\n\t\t\t\tif (!(vflags & UTF8) || (*(signed char*)p >= -64))\n\t\t\t\t\toswrch (8) ;\n\t\t\t\tp-- ;\n\t\t\t\tn-- ;\n\t\t\t    }\n\t\t\toswrch (23) ;\n\t\t\toswrch (1) ;\n\t\t\toswrch (129) ;\n\t\t\tfor (n = 7 ; n != 0 ; n--)\n\t\t\t\toswrch (0) ;\n\t\t    }\n\t    }\n}\n\n// Get TIME\nint getime (void)\n{\n\tunsigned int n = SDL_GetTicks () ;\n\tif (n < lastick)\n\t\ttimoff += 0x19999999 ;\n\tlastick = n ;\n\treturn n / 10 + timoff ;\n}\n\nint getims (void)\n{\n\tchar *at ;\n\ttime_t tt ;\n\n\ttime (&tt) ;\n\tat = ctime (&tt) ;\n\t*(int *)(accs + 0) = *(int *)(at + 0) ; // Day-of-week\n\t*(int *)(accs + 4) = *(int *)(at + 8) ; // Day-of-month\n\t*(int *)(accs + 7) = *(int *)(at + 4) ; // Month\n\t*(int *)(accs + 11) = *(int *)(at + 20) ; // Year\n\tif (*(accs + 4) == ' ') *(accs + 4) = '0' ;\n\tmemcpy (accs + 16, at + 11, 8) ; // Time\n\t*(accs + 3) = '.' ;\n\t*(accs + 15) = ',' ;\n\treturn 24 ;\n}\n\n// Put TIME\nvoid putime (int n)\n{\n\tlastick = SDL_GetTicks () ;\n\ttimoff = n - lastick / 10 ;\n}\n\n// Wait for a specified number of centiseconds:\n// On some platforms specifying a negative value causes a task switch\nvoid oswait (int cs)\n{\n\tunsigned int start = SDL_GetTicks () ;\n\tif (cs < 0)\n\t    {\n\t\tSDL_Delay (0) ;\n\t\treturn ;\n\t    }\n\tcs *= 10 ;\n\tdo\n\t    {\n\t\ttrap () ;\n\t\tSDL_Delay (1) ;\n\t    }\n\twhile ((unsigned int)(SDL_GetTicks () - start) < cs) ;\n}\n\n\n// MOUSE x%, y%, b%\nvoid mouse (int *px, int *py, int *pb)\n{\n\tpushev (EVT_MOUSE, px, py) ;\n\t*pb = waitev () ;\n}\n\n// MOUSE ON [type]\nvoid mouseon (int type)\n{\n\tSDL_Cursor* cursor ;\n\tint x, y;\n\n\tif (type >= 135) type-- ;\n\tif (type >= 130) type -= 125 ;\n\tcursor = SDL_CreateSystemCursor (type) ;\n\tSDL_FreeCursor (SDL_GetCursor ()) ;\n\tSDL_SetCursor (cursor) ;\n\tSDL_ShowCursor (SDL_ENABLE) ;\n\tSDL_GetMouseState (&x, &y) ;\n\tSDL_WarpMouseInWindow (0, x, y) ;\n}\n\n// MOUSE OFF\nvoid mouseoff (void)\n{\n\tint x, y ;\n\tSDL_ShowCursor (SDL_DISABLE) ;\n\tSDL_GetMouseState (&x, &y) ;\n\tSDL_WarpMouseInWindow (0, x, y) ;\n}\n\n// MOUSE TO x%, y%\nvoid mouseto (int x, int y)\n{\n\tpushev (EVT_MOUSETO, (void *)(intptr_t)x, (void *)(intptr_t)y) ;\n\twaitev () ;\n}\n\n// Get address of an API function:\nvoid *sysadr (char *name)\n{\n// On Android it's important to use 'SDL_GL_GetProcAddress' in preference\n// because 'dlsym' may return the wrong address for OpenGLES functions.\n\tvoid *addr = NULL ;\n\tif (useGPA)\n\t\taddr = SDL_GL_GetProcAddress (name) ;\n\tif (addr != NULL)\n\t\treturn addr ; \n\treturn dlsym (RTLD_DEFAULT, name) ;\n}\n\n// Call a function in the context of the GUI thread:\nsize_t guicall (void *func, PARM *parm)\n{\n\tpushev (EVT_SYSCALL, func, parm) ;\n\treturn waitev () ;\n}\n\nint osbyte (int al, int xy)\n{\n\tif (al == 129)\n\t\treturn (oskey (xy) << 8) + 129 ;\n\treturn ((vgetc (0x80000000, 0x80000000) << 8) + 135) ;\n}\n\nvoid osword (int al, void *xy)\n{\n\tif (al == 139)\n\t\tmemcpy (xy + 4, &ttxtfont[*(unsigned char*)(xy + 2) * 20], 40) ;\n\telse if (al == 140)\n\t    {\n\t\tpushev (EVT_OSWORD, (void *)140, xy) ;\n\t\twaitev () ;\n\t    }\n\telse\n\t\tmemcpy (xy + 1, &bbcfont[*(unsigned char*)(xy) << 3], 8) ;\n}\n\n// Call an emulated OS subroutine (if CALL or USR to an address < 0x10000)\nint oscall (int addr)\n{\n\tint al = stavar[1] ;\n\tvoid *xy = (void *) ((size_t)stavar[24] | ((size_t)stavar[25] << 8)) ;\n\tswitch (addr)\n\t    {\n\t\tcase 0xFFE0: // OSRDCH\n\t\t\treturn (int) osrdch () ;\n\n\t\tcase 0xFFE3: // OSASCI\n\t\t\tif (al != 0x0D)\n\t\t\t    {\n\t\t\t\toswrch (al) ;\n\t\t\t\treturn 0 ;\n\t\t\t    }\n\n\t\tcase 0xFFE7: // OSNEWL\n\t\t\tcrlf () ;\n\t\t\treturn 0 ;\n\n\t\tcase 0xFFEE: // OSWRCH\n\t\t\toswrch (al) ;\n\t\t\treturn 0 ;\n\n\t\tcase 0xFFF1: // OSWORD\n\t\t\tosword (al, xy) ;\n\t\t\treturn 0 ;\n\n\t\tcase 0xFFF4: // OSBYTE\n\t\t\treturn osbyte (al, stavar[24] | stavar[25] << 8) ;\n\n\t\tcase 0xFFF7: // OSCLI\n\t\t\toscli (xy) ;\n\t\t\treturn 0 ; \n\n\t\tdefault:\n\t\t\terror (8, NULL) ; // 'Address out of range'\n\t    }\n\treturn 0 ;\n}\n\n// Get string width in graphics units:\nint widths (unsigned char *s, int l)\n{\n\tint i ;\n\tchar *t = malloc (l + 1) ;\n\tchar *p = t ;\n\tfor (i = 0; i < l; i++)\n\t    {\n\t\tunsigned char al ;\n\t\tif ((al = *s++) >= ' ')\n\t\t\t*p++ = al ;\n\t\telse\n\t\t    {\n\t\t\tint n = vdulen[(int) al];\n\t\t\ts += n ;\n\t\t\ti += n ;\n\t\t    }\n\t    }\n\t*p = 0 ; // NUL termination\n\tpushev (EVT_WIDTH, (void *)(p - t), t) ;\n\ti = waitev () ;\n\tfree (t) ;\n\treturn i ;\n}\n\n// Request memory allocation above HIMEM:\nheapptr oshwm (void *addr, int settop)\n{\n\tpushev (WMU_REALLOC, addr, (void *)(size_t) settop) ;\n\treturn waitev () ;\n}\n\n// ADVAL(n)\nint adval (int n)\n{\n\tif (n <= -5)\n\t    {\n\t\tn = (3 - n) & 3 ; // 0,1,2,3\n\t\tn = sndqr[n] - sndqw[n] ;\n\t\tif (n <= 0)\n\t\t\tn += SOUNDQL ;\n\t\treturn n - SOUNDQE ;\n\t    }\n\tif (n <= -1)\n\t    \treturn (kbdqr - kbdqw - 1) & 0xFF ;\n\n\tif (Joystick == NULL)\n\t    {\n\t\tJoystick = SDL_JoystickOpen (0) ;\n\t\tif (Joystick == NULL)\n\t\t\terror (245, \"Device unavailable\") ;\n\t    }\n\tif (n == 0)\n\t    {\n\t\tunsigned char buttons = 0 ;\n\t\tfor (n = 0; n < 8; n++)\n\t\t    {\n\t\t\tbuttons |= (SDL_JoystickGetButton (Joystick, n) << n) ;\n\t\t\tbuttons |= (SDL_JoystickGetButton (Joystick, n + 20) << n) ;\n\t\t    }\n\t\treturn buttons ;\n\t    }\n \treturn (SDL_JoystickGetAxis (Joystick, n - 1) + 0x8000) ;\n}\n\n// ENVELOPE N,T,PI1,PI2,PI3,PN1,PN2,PN3,AA,AD,AS,AR,ALA,ALD\nvoid envel (signed char *env)\n{\n\tint n ;\n\tint chan = *env++ & 15 ;\n\tfor (n = 0; n < 13; n++)\n\t\t*(envels + 16 * chan + n) = *env++ ;\n\t*(envels + 16 * chan + n) = 0 ; // Target for sustain & release\n}\n\n// SOUND Channel,Amplitude,Pitch,Duration\nvoid sound (short chan, signed char ampl, unsigned char pitch, unsigned char duration)\n{\n\tunsigned char al ;\n\tint index ;\n\tint ch = chan & 3 ;\n\tif (chan & 0xE000) return ;\n\tif (hwo == 0)\n\t    {\n\t\tpushev (WMU_WAVEOPEN, NULL, NULL) ;\n\t\twaitev () ;\n\t    }\n\tif (chan & 0x00F0) // Flush ?\n\t    {\n\t\tdo\n\t\t\tsndqw[ch] = sndqr[ch] ; // might be interrupted\n\t\twhile (sndqw[ch] != sndqr[ch]) ;\n\t    }\n\tal = sndqw[ch] ;\n\tindex = ch * SOUNDQL + al ;\n\tsoundq[index + 0] = duration ;\n\tsoundq[index + 1] = pitch ;\n\tsoundq[index + 2] = ampl ;\n\tsoundq[index + 3] = chan >> 8 ;\n\tal += SOUNDQE ;\n\tif (al >= SOUNDQL)\n\t\tal = 0 ;\n\twhile (al == sndqr[ch])\n\t    {\n\t\tSDL_Delay (1) ;\n\t\ttrap () ;\n\t    }\n\tsndqw[ch] = al ;\n}\n\n// Disable sound generation:\nvoid quiet (void)\n{\n\tint i ;\n\tfor (i = 0; i < 4; i++)\n\t    {\n\t\tsndqw[i] = 0 ;\n\t\tsndqr[i] = 0 ;\n\t\teenvel[i] = 0 ;\n\t\tsacc[i] = 0 ;\n\t    }\n\tpushev (WMU_WAVECLOSE, NULL, NULL) ;\n}\n\n// Process note(s) from sound queue:\nstatic unsigned char note (unsigned char mask)\n{\n\tunsigned char al ;\n\tunsigned char ch ;\n\tfor (ch = 0; ch < 4; ch++)\n\t    {\n\t\twhile (((mask & BIT0) == 0) && ((al = sndqr[ch]) != sndqw[ch]))\n\t\t    {\n\t\t\tint index = ch * SOUNDQL + al ;\n \t\t\tunsigned char duration = soundq[index + 0] ;\n\t\t\tunsigned char pitch = soundq[index + 1] ;\n\t\t\tsigned char ampl = soundq[index + 2] ;\n\t\t\tunsigned char hs = soundq[index + 3] ;\n\t\t\tif (((mask & BIT1) == 0) && ((hs & 3) != 0))\n\t\t\t    {\n\t\t\t\tmask |= hs & 3 ; // waiting for sync\n\t\t\t\tbreak ;\n\t\t\t    }\n\t\t\telse\n\t\t\t    {\n\t\t\t\tsoundq[index + 3] = 0x10 ;\n\t\t\t\tif ((hs & 0xF0) == 0)\n\t\t\t\t    {\n\t\t\t\t\teenvel[ch] = ampl ;\n\t\t\t\t\tepitch[ch] = pitch ;\n\t\t\t\t\teasect[ch] = 0 ;\n\t\t\t\t\tepsect[ch] = 0 ;\n\t\t\t\t\tecount[ch] = 0 ;\n\t\t\t\t\tescale[ch] = 1 ;\n\t\t\t\t    }\n\t\t\t\tif (duration == 0)\n\t\t\t\t    {\n\t\t\t\t\teasect[ch] = 3 ; // release phase\n\t\t\t\t\tif (ampl <= 0)\n\t\t\t\t\t    {\n\t\t\t\t\t\tepitch[ch] = 0 ; // silence\n\t\t\t\t\t\tif ((ch == 0) && (tempo < 128))\n\t\t\t\t\t\t\teenvel[ch] = 0 ;\n\t\t\t\t\t    }\n\t\t\t\t\tal += SOUNDQE ;\n\t\t\t\t\tif (al >= SOUNDQL)\n\t\t\t\t\t\tal = 0 ;\n\t\t\t\t\tsndqr[ch] = al ;\n\t\t\t\t\tmask &= 0xFD ;\n\t\t\t\t    }\n\t\t\t\telse if (duration != 255)\n\t\t\t\t    {\n\t\t\t\t\tsoundq[index + 0] = duration - 1 ;\n\t\t\t\t\tbreak ;\n\t\t\t\t    }\n\t\t\t\telse\n\t\t\t\t\tbreak ;\n\t\t\t    }\n\t\t    } ;\n\t\tmask = (mask >> 2) | (mask << 6) ;\n\t    }\n\treturn mask ;\n}\n\n// Synthesise sound waveform:\nstatic void tone (short **pbuffer)\n{\n\tint i, ch ;\n\tshort *buffer ;\n\tunsigned char taps ;\n\tstatic unsigned short noise ;\n\tstatic unsigned int __attribute__((aligned(16))) tempi[4] ;\n\tstatic short __attribute__((aligned(16))) temps[8] ;\n\n\tfor (ch = 0; ch < 4; ch++)\n\t    {\n\t\tsigned char bl = eenvel[ch] ;\n\t\tif (bl < 0) // fixed amplitude\n\t\t\televel[ch] = -bl << 3 ;\n\t\telse if (bl == 0) // silence\n\t\t    {\n\t\t\tif (ch == 0)\n\t\t\t\televel[ch] = 0 ; // noise channel\n\t\t\telse\n\t\t\t\tepitch[ch] = 0 ;\n\t\t    }\n\t\telse // envelope\n\t\t    {\n\t\t\tescale[ch]-- ;\n\t\t\tif (escale[ch] == 0)\n\t\t\t    {\n\t\t\t\tsigned char *ebx = envels + ((bl & 15) << 4) ;\n\t\t\t\tchar cl = *ebx & 0x7F ; // strip repeat bit\n\t\t\t\tif (cl == 0) cl++ ;\n\t\t\t\tescale[ch] = cl ;\n\t\t\t\tunsigned char al = easect[ch] ; // amplitude section\n\t\t\t\tif (al < 4)\n\t\t\t\t    {\n\t\t\t\t\tsigned char step = *(ebx + al + 7) ; // level change\n\t\t\t\t\tsigned char target = *(ebx + al + 11) ; // target level\n\t\t\t\t\tsigned char level = elevel[ch] ; // current level\n\t\t\t\t\tlevel += step ; // adjust level\n\t\t\t\t\tif ((level <= 0) && (step > 0)) level = 127 ;\n\t\t\t\t\tif ((level < 0) && (step < 0)) level = 0 ;\n\t\t\t\t\televel[ch] = level ; // update level\n\t\t\t\t\tif (((step < 0) && (level <= target)) ||\n\t\t\t\t\t    ((step > 0) && (level >= target)))\n\t\t\t\t\t    {\n\t\t\t\t\t\tal++ ; // move to next section\n\t\t\t\t\t\tif (al < 3)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\televel[ch] = target ;\n\t\t\t\t\t\t\teasect[ch] = al ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t    }\n\t\t\t\t    }\n\t\t\t\tal = epsect[ch] ; // pitch section\n\t\t\t\tif ((al >= 3) && ((*ebx & BIT7) == 0)) // repeat ?\n\t\t\t\t    {\n\t\t\t\t\tal = 0 ;\n\t\t\t\t\tepsect[ch] = 0 ;\n\t\t\t\t\tif (tempo & 0x40)\n\t\t\t\t\t\tepitch[ch] -= *(ebx+1) * *(ebx+4) +\n\t\t\t\t\t\t\t      *(ebx+2) * *(ebx+5) +\n\t\t\t\t\t\t\t      *(ebx+3) * *(ebx+6) ;\n\t\t\t\t    }\n\t\t\t\tif (al < 3)\n\t\t\t\t    {\n\t\t\t\t\tsigned char step = *(ebx + al + 1) ; // pitch change\n\t\t\t\t\tunsigned char num = *(ebx + al + 4) ; // no.of steps\n\t\t\t\t\tecount[ch]++ ;\n\t\t\t\t\tif (ecount[ch] >= num)\n\t\t\t\t\t    {\n\t\t\t\t\t\tecount[ch] = 0 ;\n\t\t\t\t\t\tal++ ; // move to next section\n\t\t\t\t\t\tepsect[ch] = al ;\n\t\t\t\t\t    }\n\t\t\t\t\tif (num)\n\t\t\t\t\t\tepitch[ch] += step ;\n\t\t\t\t    }\n\t\t\t    }\n\t\t    }\n\t    }\n\n\ttempi[0] = voices[0] ;\n\ttempi[1] = voices[1] ;\n\ttempi[2] = voices[2] ;\n\ttempi[3] = voices[3] ;\n#if defined __EMSCRIPTEN__\n\tint wavep[4] = { tempi[0] << 13, tempi[1] << 13, tempi[2] << 13, tempi[3] << 13 } ;\n#elif defined __arm__ || defined __aarch64__\n\tint32x4_t wavep = vshlq_n_s32 (vld1q_s32 ((int32_t*) tempi), 13) ;\n#else\n\t__m128i wavep = _mm_slli_epi32 (_mm_load_si128 ((__m128i*)tempi), 13) ;\n#endif\n\ttempi[0] = freqs[epitch[0]] ;\n\ttempi[1] = freqs[epitch[1]] ;\n\ttempi[2] = freqs[epitch[2]] ;\n\ttempi[3] = freqs[epitch[3]] ;\n#if defined __EMSCRIPTEN__\n\tunsigned int inctp[4] = { tempi[0] << 13, tempi[1] << 13, tempi[2] << 13, tempi[3] << 13 } ;\n#elif defined __arm__ || defined __aarch64__\n\tuint32x4_t inctp = vshlq_n_u32 (vld1q_u32 ((uint32_t*)tempi), 13) ;\n#else\n\t__m128i inctp = _mm_slli_epi32 (_mm_load_si128 ((__m128i*)tempi), 13) ;\n#endif\n\ttemps[0] = ampl[elevel[0]] ;\n\ttemps[1] = ampl[elevel[1]] ;\n\ttemps[2] = ampl[elevel[2]] ;\n\ttemps[3] = ampl[elevel[3]] ;\n\ttemps[4] = temps[0] ;\n\ttemps[5] = temps[1] ;\n\ttemps[6] = temps[2] ;\n\ttemps[7] = temps[3] ;\n#if defined __EMSCRIPTEN__\n\tshort smixp[8] = { (smix[0] * temps[0]) >> 16, (smix[1] * temps[1]) >> 16,\n\t\t\t   (smix[2] * temps[2]) >> 16, (smix[3] * temps[3]) >> 16, \n\t\t\t   (smix[4] * temps[4]) >> 16, (smix[5] * temps[5]) >> 16, \n\t\t\t   (smix[6] * temps[6]) >> 16, (smix[7] * temps[7]) >> 16 } ; \n#elif defined __arm__ || defined __aarch64__\n\tint16x8_t smixp = vqdmulhq_s16 (vld1q_s16 ((int16_t*)smix),\n\t\t\t\t\t   vld1q_s16 ((int16_t*)temps)) ;\n\tuint32x4_t saccp = vld1q_u32 ((uint32_t*) sacc) ;\n#else\n\t__m128i smixp = _mm_mulhi_epi16 (_mm_load_si128 ((__m128i*)smix),\n\t\t\t\t\t _mm_load_si128 ((__m128i*)temps)) ;\n\t__m128i saccp = _mm_loadu_si128 ((__m128i*) sacc) ;\n#endif\n\n\ttaps = noises[epitch[0] & 7] >> 3 ;\n\tif (noise == 0xFFFF) noise = 0 ;\n\tbuffer = *pbuffer ;\n\tfor (i = 0; i < 441; i++) // samples in 0.01 seconds\n\t    {\n#if defined __EMSCRIPTEN__\n\t\tsacc[0] += inctp[0] ; sacc[1] += inctp[1] ; sacc[2] += inctp[2] ; sacc[3] += inctp[3] ;\n\t\ttempi[0] = (sacc[0] >> 19) + wavep[0] ; tempi[1] = (sacc[1] >> 19) + wavep[1] ;\n\t\ttempi[2] = (sacc[2] >> 19) + wavep[2] ; tempi[3] = (sacc[3] >> 19) + wavep[3] ;\n#elif defined __arm__ || defined __aarch64__\n\t\tsaccp = vaddq_u32 (saccp, inctp) ; // DDS accumulator\n\t\tvst1q_u32 ((uint32_t*) tempi, vorrq_u32 (vshrq_n_u32 (saccp, 19), (uint32x4_t)wavep)) ; \n#else\n\t\tsaccp = _mm_add_epi32 (saccp, inctp) ; // DDS accumulator\n\t\t_mm_store_si128 ((__m128i*) tempi, _mm_or_si128 (_mm_srli_epi32 (saccp, 19), wavep)) ;\n#endif\n\n\t\tif (tempo < 128)\n\t\t    {\n\t\t\tnoise = noise >> 1 ;\n\t\t\tnoise |= (((noise & taps) == taps) || ((noise & taps) == 0)) << 15 ;\n\t\t\ttempi[0] = noise ;\n\t\t    }\n\t\ttemps[0] = *(waves + tempi[0]) ;\n\t\ttemps[1] = *(waves + tempi[1]) ;\n\t\ttemps[2] = *(waves + tempi[2]) ;\n\t\ttemps[3] = *(waves + tempi[3]) ;\n \t\ttemps[4] = temps[0] ;\n \t\ttemps[5] = temps[1] ;\n \t\ttemps[6] = temps[2] ;\n \t\ttemps[7] = temps[3] ;\n\n#if defined __EMSCRIPTEN__\n\t\ttemps[0] = (temps[0] * smixp[0]) >> 16 ; temps[1] = (temps[1] * smixp[1]) >> 16 ; \n\t\ttemps[2] = (temps[2] * smixp[2]) >> 16 ; temps[3] = (temps[3] * smixp[3]) >> 16 ; \n\t\ttemps[4] = (temps[4] * smixp[4]) >> 16 ; temps[5] = (temps[5] * smixp[5]) >> 16 ; \n\t\ttemps[6] = (temps[6] * smixp[6]) >> 16 ; temps[7] = (temps[7] * smixp[7]) >> 16 ; \n\t\t*buffer++ = ((int)temps[0] + (int)temps[1] + (int)temps[2] + (int)temps[3]) << 1 ; // left\n\t\t*buffer++ = ((int)temps[4] + (int)temps[5] + (int)temps[6] + (int)temps[7]) << 1 ; // right\n#elif defined __arm__ || defined __aarch64__\n\t\tvst1q_s16 ((int16_t*) temps,\n\t\t\t\tvqdmulhq_s16 (vld1q_s16 ((int16_t*) temps), smixp)) ;\n\t\t*buffer++ = ((int)temps[0] + (int)temps[1] + (int)temps[2] + (int)temps[3]) >> 1 ; // left\n\t\t*buffer++ = ((int)temps[4] + (int)temps[5] + (int)temps[6] + (int)temps[7]) >> 1 ; // right\n#else\n\t\t_mm_store_si128 ((__m128i*) temps,\n\t\t\t\t_mm_mulhi_epi16 (_mm_load_si128 ((__m128i*) temps), smixp)) ;\n\t\t*buffer++ = (temps[0] + temps[1] + temps[2] + temps[3]) << 1 ; // left\n\t\t*buffer++ = (temps[4] + temps[5] + temps[6] + temps[7]) << 1 ; // right\n#endif\n\t    }\n\n#if defined __EMSCRIPTEN__\n//\n#elif defined __arm__ || defined __aarch64__\n\tvst1q_u32 ((uint32_t*) sacc, saccp) ;\n#else\n\t_mm_storeu_si128 ((__m128i*) sacc, saccp) ;\n#endif\n\n\t*pbuffer = buffer ;\n}\n\n// Refill sound buffer (called at approx 100/tempo Hz):\nvoid stick (short* buffer)\n{\n\tunsigned char al = note (0) ;\n\tunsigned char ah = tempo & 0x3F ;\n\n\tif (al)\n\t\tnote (syncs [al]) ;\n\twhile (ah--)\n\t\ttone (&buffer) ;\n}\n\n// Get a file context from a channel number:\nstatic SDL_RWops *lookup (void *chan)\n{\n\tSDL_RWops *file = NULL ;\n\n\tif ((chan >= (void *)1) && (chan <= (void *)(MAX_PORTS + MAX_FILES)))\n\t\tfile = (SDL_RWops*) filbuf[(size_t)chan] ;\n\telse\n\t\tfile = (SDL_RWops*) chan ;\n\n\tif (file == NULL)\n\t\terror (222, \"Invalid channel\") ;\n\treturn file ;\n}\n\n// Load a file into memory:\nvoid osload (char *p, void *addr, unsigned int max)\n{\n\tint n ;\n\tSDL_RWops *file ;\n\tif (NULL == setup (path, p, \".bbc\", '\\0', NULL))\n\t\terror (253, \"Bad string\") ;\n\tfile = SDL_RWFromFile (path, \"rb\") ;\n\tif (file == NULL)\n\t\terror (214, \"File or path not found\") ;\n\tn = SDL_RWread(file, addr, 1, max) ;\n\tSDL_RWclose (file) ;\n\tif (n == 0)\n\t\terror (189, SDL_GetError()) ;\n}\n\n// Save a file from memory:\nvoid ossave (char *p, void *addr, unsigned int len)\n{\n\tint n ;\n\tSDL_RWops *file ;\n\tif (NULL == setup (path, p, \".bbc\", '\\0', NULL))\n\t\terror (253, \"Bad string\") ;\n\tfile = SDL_RWFromFile (path, \"w+b\") ;\n\tif (file == NULL)\n\t\terror (214, \"Couldn't create file\") ;\n\tn = SDL_RWwrite(file, addr, 1, len) ;\n\tBBC_RWclose (file) ;\n\tif (n < len)\n\t\terror (189, SDL_GetError ()) ;\n}\n\n// Open a file:\nvoid *osopen (int type, char *p)\n{\n\tint chan, first, last ;\n\tSDL_RWops *file ;\n\tif (setup (path, p, \".bbc\", '\\0', NULL) == NULL)\n\t\treturn 0 ;\n\tif (type == 0)\n\t\tfile = SDL_RWFromFile (path, \"rb\") ;\n\telse if (type == 1)\n\t\tfile = SDL_RWFromFile (path, \"w+b\") ;\n\telse\n\t\tfile = SDL_RWFromFile (path, \"r+b\") ;\n\tif (file == NULL)\n\t\treturn NULL ;\n\n#ifdef __WINDOWS__\n\tif (strchr (path+3, ':'))\n#else\n\tif (0 == memcmp (path, \"/dev\", 4))\n#endif\n\t    {\n\t\tfirst = 1 ;\n\t\tlast = MAX_PORTS ;\n\t    }\n\telse\n\t    {\n\t\tfirst = MAX_PORTS + 1 ;\n\t\tlast = MAX_PORTS + MAX_FILES ;\n\t    }\n\n\tfor (chan = first; chan <= last; chan++)\n\t    {\n\t\tif (filbuf[chan] == 0)\n\t\t    {\n\t\t\tfilbuf[chan] = file ;\n\t\t\tif (chan > MAX_PORTS)\n\t\t\t\t*(int *)&fcbtab[chan - MAX_PORTS - 1] = 0 ;\n\t\t\treturn (void *)(size_t)chan ;\n\t\t    }\n\t    }\n\tSDL_RWclose (file) ;\n\terror (192, \"Too many open files\") ;\n\treturn NULL ; // never happens\n}\n\n// Read file to 256-byte buffer:\nstatic void readb (SDL_RWops *context, unsigned char *buffer, FCB *pfcb)\n{\n\tint amount ;\n\tif (context == NULL)\n\t\terror (222, \"Invalid channel\") ;\n\tSDL_RWseek (context, (pfcb->p - pfcb->o) & 0xFF, RW_SEEK_CUR) ;\n\tamount = SDL_RWread (context, buffer, 1, 256) ;\n\tpfcb->p = 0 ;\n\tpfcb->o = amount & 0xFF ;\n\tpfcb->w = 0 ;\n\tpfcb->f = (amount != 0) ;\n\twhile (amount < 256)\n\t\tbuffer[amount++] = 0 ;\n\treturn ;\n}\n\n// Write 256-byte buffer to file:\nstatic int writeb (SDL_RWops *context, unsigned char *buffer, FCB *pfcb)\n{\n\tint amount ;\n\tif (pfcb->f >= 0)\n\t    {\n\t\tpfcb->f = 0 ;\n\t\treturn 0 ;\n\t    }\n\tif (context == NULL)\n\t\terror (222, \"Invalid channel\") ;\n\tif (pfcb->f & 1)\n\t\tSDL_RWseek (context, pfcb->o ? -pfcb->o : -256, RW_SEEK_CUR) ;\n\tamount = SDL_RWwrite (context, buffer, 1, pfcb->w ? pfcb->w : 256) ;\n\tpfcb->o = amount & 0xFF ;\n\tpfcb->w = 0 ;\n\tpfcb->f = 1 ;\n\treturn (amount == 0) ;\n}\n\n// Close a single file:\nstatic int closeb (void *chan)\n{\n\tint result ;\n\tif ((chan > (void *)MAX_PORTS) && (chan <= (void *)(MAX_PORTS+MAX_FILES)))\n\t    {\n\t\tint index = (size_t) chan - MAX_PORTS - 1 ;\n\t\tunsigned char *buffer = (unsigned char *) filbuf[0] + index * 0x100 ;\n\t\tFCB *pfcb = &fcbtab[index] ;\n\t\tSDL_RWops *handle = (SDL_RWops *) filbuf[(size_t) chan] ;\n\t\tif (writeb (handle, buffer, pfcb))\n\t\t\treturn 1 ;\n\t    }\n\tresult = BBC_RWclose (lookup (chan)) ;\n\tif ((chan >= (void *)1) && (chan <= (void *)(MAX_PORTS + MAX_FILES)))\n\t\tfilbuf[(size_t)chan] = 0 ;\n\treturn result ;\n}\n\n// Read a byte:\nunsigned char osbget (void *chan, int *peof)\n{\n\tunsigned char byte = 0 ;\n\tif (peof != NULL)\n\t\t*peof = 0 ;\n\tif (chan <= (void *)MAX_PORTS)\n\t    {\n\t\tSDL_RWops *file = lookup (chan) ;\n#ifdef __WINDOWS__\n\t\tReadFile (file->hidden.windowsio.h, &byte, 1, NULL, NULL) ;\n#else\n\t\tread (fileno (file->hidden.stdio.fp), &byte, 1) ;\n#endif\n\t\treturn byte ;\n\t    }\n\tif ((chan > (void *)MAX_PORTS) && (chan <= (void *)(MAX_PORTS+MAX_FILES)))\n\t    {\n\t\tint index = (size_t) chan - MAX_PORTS - 1 ;\n\t\tunsigned char *buffer = (unsigned char *) filbuf[0] + index * 0x100 ;\n\t\tFCB *pfcb = &fcbtab[index] ;\n\t\tif (pfcb->p == pfcb->o)\n\t\t    {\n\t\t\tSDL_RWops *handle = (SDL_RWops *) filbuf[(size_t) chan] ;\n\t\t\tif (writeb (handle, buffer, pfcb))\n\t\t\t\terror (189, SDL_GetError ()) ;\n\t\t\treadb (handle, buffer, pfcb) ;\n\t\t\tif ((pfcb->f & 1) == 0)\n\t\t\t    {\n\t\t\t\tif (peof != NULL)\n\t\t\t\t\t*peof = 1 ;\n\t\t\t\treturn 0 ;\n\t\t\t    } \n\t\t    }\n\t\treturn buffer[pfcb->p++] ;\n\t    }\n\tif ((0 == SDL_RWread (lookup (chan), &byte, 1, 1)) && (peof != NULL))\n\t\t*peof = 1 ;\n\treturn byte ;\n}\n\n// Write a byte:\nvoid osbput (void *chan, unsigned char byte)\n{\n\tif (chan <= (void *) MAX_PORTS)\n\t    {\n\t\tSDL_RWops *file = lookup (chan) ;\n#ifdef __WINDOWS__\n\t\tWriteFile (file->hidden.windowsio.h, &byte, 1, NULL, NULL) ;\n#else\n\t\twrite (fileno (file->hidden.stdio.fp), &byte, 1) ;\n#endif\n\t\treturn ;\n\t    }\n\tif ((chan > (void *)MAX_PORTS) && (chan <= (void *)(MAX_PORTS+MAX_FILES)))\n\t    {\n\t\tint index = (size_t) chan - MAX_PORTS - 1 ;\n\t\tunsigned char *buffer = (unsigned char *) filbuf[0] + index * 0x100 ;\n\t\tFCB *pfcb = &fcbtab[index] ;\n\t\tif (pfcb->p == pfcb->o)\n\t\t    {\n\t\t\tSDL_RWops *handle = (SDL_RWops *) filbuf[(size_t) chan] ;\n\t\t\tif (writeb (handle, buffer, pfcb))\n\t\t\t\terror (189, SDL_GetError ()) ;\n\t\t\treadb (handle, buffer, pfcb) ;\n\t\t    }\n\t\tbuffer[pfcb->p++] = byte ;\n\t\tpfcb->w = pfcb->p ;\n\t\tpfcb->f |= 0x80 ;\n\t\treturn ;\n\t    }\n\tif (0 == SDL_RWwrite (lookup (chan), &byte, 1, 1))\n\t\terror (189, SDL_GetError ()) ;\n}\n\n// Get file pointer:\nlong long getptr (void *chan)\n{\n\tlong long ptr = SDL_RWseek (lookup (chan), 0, RW_SEEK_CUR) ;\n\tif (ptr == -1)\n\t\terror (189, SDL_GetError ()) ;\n\tif ((chan > (void *)MAX_PORTS) && (chan <= (void *)(MAX_PORTS+MAX_FILES)))\n\t    {\n\t\tFCB *pfcb = &fcbtab[(size_t) chan - MAX_PORTS - 1] ;\n\t\tif (pfcb->o)\n\t\t\tptr -= pfcb->o ;\n\t\telse if (pfcb->f & 1)\n\t\t\tptr -= 256 ;\n\t\tif (pfcb->p)\n\t\t\tptr += pfcb->p ;\n\t\telse if (pfcb->f & 0x81)\n\t\t\tptr += 256 ;\n\t    }\n\treturn ptr ;\n}\n\n// Set file pointer:\nvoid setptr (void *chan, long long ptr)\n{\n\tif ((chan > (void *)MAX_PORTS) && (chan <= (void *)(MAX_PORTS+MAX_FILES)))\n\t    {\n\t\tint index = (size_t) chan - MAX_PORTS - 1 ;\n\t\tunsigned char *buffer = (unsigned char *) filbuf[0] + index * 0x100 ;\n\t\tFCB *pfcb = &fcbtab[index] ;\n\t\tSDL_RWops *handle = (SDL_RWops *) filbuf[(size_t) chan] ;\n\t\tif (writeb (handle, buffer, pfcb))\n\t\t\terror (189, SDL_GetError ()) ;\n\t\t*(int *)pfcb = 0 ;\n\t    }\n\tif (-1 == SDL_RWseek (lookup (chan), ptr, RW_SEEK_SET))\n\t\terror (189, SDL_GetError ()) ;\n}\n\n// Get file size:\nlong long getext (void *chan)\n{\n\tSDL_RWops *file = lookup (chan) ;\n\tif (chan <= (void *)MAX_PORTS)\n\t    {\n#ifdef __WINDOWS__\n\t\tCOMSTAT cs = {0} ;\n\t\tClearCommError (file->hidden.windowsio.h, NULL, &cs) ;\n\t\treturn cs.cbInQue ;\n#elif defined(__LINUX__) || defined(__MACOSX__)\n\t\tint waiting = 0 ;\n\t\tioctl (fileno (file->hidden.stdio.fp), FIONREAD, &waiting) ;\n\t\treturn waiting ;\n#else\n\t\treturn 0 ;\n#endif\n\t    }\n\tlong long newptr = getptr (chan) ;\n\tlong long ptr = SDL_RWseek (file, 0, RW_SEEK_CUR) ;\n\tlong long size = SDL_RWseek (file, 0, RW_SEEK_END) ;\n\tif ((ptr == -1) || (size == -1))\n\t\terror (189, SDL_GetError ()) ;\n\tSDL_RWseek (file, ptr, RW_SEEK_SET) ;\n\tif (newptr > size)\n\t\treturn newptr ;\n\treturn size ;\n}\n\n// Set file size (if possible):\nvoid setext (void *chan, long long ptr)\n{\n\terror (255, \"Sorry, not implemented\") ;\n}\n\n// Get EOF status:\nlong long geteof (void *chan)\n{\n\tif ((chan > (void *)MAX_PORTS) && (chan <= (void *)(MAX_PORTS+MAX_FILES)))\n\t    {\n\t\tFCB *pfcb = &fcbtab[(size_t) chan - MAX_PORTS - 1] ;\n\t\tif ((pfcb->p != 0) && (pfcb->o == 0) && ((pfcb->f) & 1))\n\t\t\treturn 0 ;\n\t    }\n\treturn -(getptr (chan) >= getext (chan)) ;\n}\n\n// Close file (if chan = 0 all open files closed and errors ignored):\nvoid osshut (void *chan)\n{\n\tif (chan == NULL)\n\t    {\n\t\tint chan ;\n\t\tfor (chan = MAX_PORTS + MAX_FILES; chan > 0; chan--)\n\t\t    {\n\t\t\tif (filbuf[chan])\n\t\t\t\tcloseb ((void *)(size_t)chan) ; // ignore errors\n\t\t    }\n\t\treturn ;\n\t    }\n\tif (closeb (chan))\n\t\terror (189, SDL_GetError()) ;\n}\n\n// Start interpreter:\nint entry (void *immediate)\n{\n\tint i ;\n\tshort *table ;\n\n\taccs = (char*) userRAM ;\t\t// String accumulator\n\tbuff = (char*) accs + ACCSLEN ;\t\t// Temporary string buffer\n\tpath = (char*) buff + 0x100 ;\t\t// File path\n\tkeystr = (char**) (path + 0x100) ;\t// *KEY strings\n\tkeybdq = (char*) keystr + 0x100 ;\t// Keyboard queue\n\teventq = (void*) keybdq + 0x100 ;\t// Event queue\n\tenvels = (signed char*) eventq + 0x200 ;// Envelopes\n\twaves = (short*) (envels + 0x100) ;\t// Waveforms n.b. &20000 bytes long\n\tfilbuf[0] = (waves + 0x10000) ;\t\t// File buffers n.b. pointer arithmetic!!\n\tusrchr = (char*) (filbuf[0] + 0x800) ;\t// User-defined characters\n\ttempo = 0x45 ;\t\t\t\t// Default SOUND tempo\n\tfarray = 1 ;\t\t\t\t// @hfile%() number of dimensions\n\tfasize = MAX_PORTS + MAX_FILES + 4 ;\t// @hfile%() number of elements\n\n\tprand.l = (unsigned int) SDL_GetPerformanceCounter() ;\t// Seed PRNG\n\tprand.h = (prand.l == 0) ;\n\trnd () ;\t\t\t\t// Randomise !\n\n\ttable = waves ;\n\tfor (i = 0; i < 8; i++)\n\t    {\n\t\tint sample ;\n\t\tfor (sample = 0; sample < 8192; sample++)\n\t\t    {\n\t\t\tint harmonic ;\n\t\t\tfloat sum = 0 ;\n\t\t\tfor (harmonic = 0; harmonic < 9; harmonic++)\n\t\t\t    {\n\t\t\t\tsum += harms[i][harmonic] *\n\t\t\t\t    sinf ((float)(harmonic + 1) * (float)sample * 0.00076699) ;\n\t\t\t    }\n\t\t\t*table++ = (short) 32767.0 * sum ;\n\t\t    }\n\t\tsmix[i] = 0x4000 ;\n\t    }\n\n\tmemset (keystr, 0, 256) ;\n\tpushev (0x171F, NULL, (void *) 0x171F) ;\t// initialise VDU drivers\n\tspchan = NULL ;\n\texchan = NULL ;\n\n\tif (immediate)\n\t    {\n\t\ttext (szVersion) ;\n\t\tcrlf () ;\n\t\ttext (szNotice) ;\n\t\tcrlf () ;\n\t    }\n\n\tpushev (EVT_QUIT, NULL, (void *)(intptr_t) basic (progRAM, userTOP, immediate)) ;\n\treturn 0 ;\n}\n\n"
  },
  {
    "path": "src/bbcsdl.c",
    "content": "/*****************************************************************\\\n*       32-bit or 64-bit BBC BASIC for SDL 2.0                    *\n*       (C) 2017-2026  R.T.Russell  http://www.rtrussell.co.uk/   *\n*                                                                 *\n*       The name 'BBC BASIC' is the property of the British       *\n*       Broadcasting Corporation and used with their permission   *\n*                                                                 *\n*       bbcsdl.c Main program: Initialisation, Polling Loop       *\n*       Version 1.44a, 14-Mar-2026                                *\n\\*****************************************************************/\n\n#include <stdlib.h>\n#include <stdio.h>\n#include <stdint.h>\n#include <unistd.h>\n#include <sys/stat.h>\n#include <errno.h>\n#include \"SDL2_gfxPrimitives.h\"\n#include \"SDL_ttf.h\"\n#include \"SDL_net.h\"\n#if defined(__WINDOWS__) || defined(__MACOSX__) || defined(__LINUX__)\n#include \"zlib.h\"\n#endif\n\n#ifdef __WINDOWS__\n#include <windows.h>\n#include <wchar.h>\n#include <shellapi.h>\n#if defined __x86_64__\n#define PLATFORM \"Win64\"\n#else\n#include <psapi.h>\n#define PLATFORM \"Win32\"\n#define K32EnumProcessModules EnumProcessModules\n#endif\n#define realpath(N,R) _fullpath((R),(N),_MAX_PATH)\nBOOL WINAPI K32EnumProcessModules (HANDLE, HMODULE*, DWORD, LPDWORD) ;\n#endif\n#ifdef __LINUX__\n#include <sys/mman.h>\n#include <sys/stat.h>\n#define PLATFORM \"Linux\"\n#endif\n#ifdef __MACOSX__\n#include <sys/mman.h>\n#define PLATFORM \"MacOS\"\nint GetTempPath(size_t, char *) ;\n#endif\n#ifdef __ANDROID__\n#include <sys/mman.h>\nunsigned int DIRoff = 19 ; // Used by Android x86-32 build\n#define PLATFORM \"Android\"\n#endif\n#ifdef __IPHONEOS__\n#include <sys/mman.h>\n#define PLATFORM \"iOS\"\n#endif\n#ifdef __EMSCRIPTEN__\n#include <emscripten/emscripten.h>\n#include <emscripten/html5.h>\n#include <sys/mman.h>\n#define PLATFORM \"Wasm\"\n#endif\n\n#undef MAX_PATH\n#define MAX(X,Y) (((X) > (Y)) ? (X) : (Y))\n#define GL_TEXTURE_2D\t\t0x0DE1\n#define GL_TEXTURE_MAG_FILTER\t0x2800\n#define GL_TEXTURE_MIN_FILTER\t0x2801\n#define GL_NEAREST\t\t0x2600\n#define GL_LINEAR\t\t0x2601\n#define GL_SCISSOR_TEST         0x0C11\n\n// Program constants:\n#define SCREEN_WIDTH  640\n#define SCREEN_HEIGHT 500\n#define WM_MOVE 0x0003\n#define WM_SIZE 0x0005\n#define WM_CLOSE 0x0010\n#define WM_TIMER 0x0113\n#define WM_LBUTTONDOWN 0x0201\n#define WM_MBUTTONDOWN 0x0207\n#define WM_RBUTTONDOWN 0x0204\n#define MAX_PATH 260\n#define AUDIOLEN 441 * 4\n\n// Performance tuning parameters:\n#define POLLT 2  // Poll for approaching vSync every 2 milliseconds \n#define FGDLY 80 // Wait 80 * POLLT ms after returning to foreground\n#define BUSYT 40 // Busy-wait for 40 ms after last user output event\n#define PACER 12 // 12 ms 'processing time' per frame (max. ~75 fps)\n#define MAXEV 10 // Don't refresh display if > 10 waiting events ...\n#define MAXFP 50 // ... unless >50 ms has elapsed since last refresh\n#define PUMPT 16 // Call SDL_PollEvent at least every 16 milliseconds\n\n#include \"bbcsdl.h\"\n#include \"version.h\"\n\n// Routines in BBCCMOS:\n\nint entry (void*) ;\nvoid stick (unsigned char*) ;\nint putkey (char) ;\nint putevt (int, int, int, int) ; // Force first parameter 32-bits\n\n// Routines in BBCCVDU:\n\nvoid xeqvdu_ (void *, void *, int) ;\nvoid vduchr_ (void *) ;\nint getcsr_ (void) ;\nint getchar_ (void *, void *) ;\nint copkey_ (void *, void *) ;\nint vtint_ (void *, void *) ;\nint disply_ (void *, void *) ;\nvoid getpix_ (void *, void *) ;\nint openfont_ (void *, void *) ;\nint getwid_ (void *, void *) ;\nlong long apicall_ (void *, void *) ;\n\n// Routines in BBCTTXT:\n\nvoid flip7 (void) ;\n\n// Routines in SDL2_gfxPrimitives:\n\nint RedefineChar (SDL_Renderer*, char, unsigned char*, Uint32, Uint32);\n\n// Global variables (external linkage):\n\nvoid *userRAM = NULL ;\nvoid *progRAM = NULL ;\nvoid *userTOP = NULL ;\nconst int bLowercase = 0 ;    // Dummy\nconst char szVersion[] = \"BBC BASIC for \"PLATFORM\" version \"VERSION ;\nconst char szNotice[] = \"(C) Copyright R. T. Russell, \"YEAR ;\nchar szAutoRun[MAX_PATH + 1] = \"autorun.bbc\" ;\nchar *szLoadDir ;\nchar *szLibrary ;\nchar *szUserDir ;\nchar *szTempDir ;\nchar *szCmdLine ;\nSDL_Texture *TTFcache[65536] = {NULL} ; // cache for character textures\nunsigned int palette[256] ;\nsize_t iResult = 0 ;\nint bChanged = 0 ;\nint nUserEv = 0 ;\nint OSKtime = 6 ;\nSDL_Rect ClipRect ;\nSDL_Rect DestRect ;\nSDL_TimerID PollTimerID ;\nSDL_TimerID UserTimerID ;\nSDL_TimerID BlinkTimerID ;\nSDL_Event UserEvent ; // Used by Android x86-32 build\nSDL_Joystick * Joystick = NULL ;\nSDL_sem * Sema4 ;\n#ifdef MUTEX\nSDL_mutex * Mutex ;\n#endif\nSDL_sem * Idler ;\nint bBackground = 0 ;\nint bYield = 0 ;\n\nint useGPA = 0 ;\n\n#ifdef __WINDOWS__\nvoid (__stdcall *glEnableBBC)  (int) ;\nvoid (__stdcall *glLogicOpBBC) (int) ;\nvoid (__stdcall *glDisableBBC) (int) ;\nvoid (__stdcall *glTexParameteriBBC) (int, int, int) ;\n#else\nvoid (*glEnableBBC)  (int) ;\nvoid (*glLogicOpBBC) (int) ;\nvoid (*glDisableBBC) (int) ;\nvoid (*glTexParameteriBBC) (int, int, int) ;\n#endif\nvoid (*SDL_RenderFlushBBC) (SDL_Renderer*) ;\nvoid SetErrorBBC (void) { SDL_SetError (\"OS error %i\", errno) ; }\n\nstatic SDL_Window * window ;\nstatic SDL_Renderer *renderer ;\nstatic SDL_Thread *Thread ;\nstatic int blink = 0 ;\nstatic signed char oldscroln = 0 ;\nstatic const Uint8* keystate ;\nstatic int exitcode = 0, running = 1 ;\nstatic intptr_t MaximumRAM = MAXIMUM_RAM ;\nstatic SDL_AudioSpec want, have ;\nstatic SDL_Rect backbutton = {0} ;\nstatic SDL_Texture *buttexture ;\n\n#if defined __EMSCRIPTEN__\nstatic EM_BOOL Emscripten_HandleFullscreenChange(int eventType, \n\t\tconst EmscriptenFullscreenChangeEvent *fullscreenChangeEvent, void *userData)\n{\n\tstatic int oldw, oldh ;\n\tint neww = oldw, newh = oldh ;\n\tSDL_Window *window = userData ;\n\tSDL_Event event ;\n\tif (fullscreenChangeEvent->isFullscreen)\n\t    {\n\t\tSDL_GetWindowSize (window, &oldw, &oldh) ;\n\t\tneww = fullscreenChangeEvent->screenWidth ;\n\t\tnewh = fullscreenChangeEvent->screenHeight ;\n\t    }\n\tSDL_SetWindowSize (window, neww, newh) ;\n\tevent.type = SDL_WINDOWEVENT ;\n\tevent.window.windowID = SDL_GetWindowID(window) ;\n\tevent.window.event = SDL_WINDOWEVENT_RESIZED ;\n\tevent.window.data1 = neww ;\n\tevent.window.data2 = newh ;\n\twhile (SDL_PushEvent(&event) < 0)\n\t\tSDL_Delay(1) ;\n\treturn 0;\n}\n#elif defined __WINDOWS__\nvoid *dlsym (void *handle, const char *symbol)\n{\n\tvoid *procaddr ;\n\tHMODULE modules[100] ;\n\tlong unsigned int i, needed ;\n\tK32EnumProcessModules ((HANDLE)-1, modules, sizeof (modules), &needed) ;\n\tfor (i = 0; i < needed / sizeof (HMODULE); i++)\n\t    {\n\t\tprocaddr = GetProcAddress (modules[i], symbol) ;\n\t\tif (procaddr != NULL) break ;\n\t    }\n\treturn procaddr ;\n}\n#else\n#include \"dlfcn.h\"\n#endif\n\n#if defined __LINUX__ || defined __ANDROID__\nstatic void *mymap (uintptr_t size)\n{\n\tFILE *fp ;\n\tchar line[256] ;\n\tvoid *start, *finish, *base = (void *) 0x400000 ;\n\n\tfp = fopen (\"/proc/self/maps\", \"r\") ;\n\tif (fp == NULL)\n\t\treturn NULL ;\n\n\twhile (NULL != fgets (line, 256, fp))\n\t    {\n\t\tsscanf (line, \"%p-%p\", &start, &finish) ;\n\t\tstart = (void *)((size_t)start & -0x1000) ; // page align (GCC extension)\n\t\tif (start >= (base + size)) \n\t\t\treturn base ;\n\t\tbase = (void *)(((size_t)finish + 0xFFF) & -0x1000) ; // page align\n\t    }\n\treturn base ;\n}\n#endif\n\nstatic int BBC_PushEvent(SDL_Event* event)\n{\n\tint ret ;\n#ifdef MUTEX\n\tSDL_LockMutex (Mutex) ;\n#endif\n\tret = SDL_PushEvent (event) ;\n#ifdef MUTEX\n\tSDL_UnlockMutex (Mutex) ;\n#endif\n\treturn ret ;\n}\n\nstatic Uint32 BlinkTimerCallback(Uint32 interval, void *param)\n{\n#if defined __ANDROID__ || defined __IPHONEOS__\n\tif ((--OSKtime == 0) && SDL_IsTextInputActive())\n\t    {\n\t\tSDL_Event event = {0} ;\n\t\tevent.type = SDL_USEREVENT ;\n\t\tevent.user.code = EVT_OSK ;\n\t\tSDL_AtomicIncRef ((SDL_atomic_t*) &nUserEv) ;\n\t\twhile (BBC_PushEvent(&event) < 0)\n\t\t\tSDL_Delay (1) ;\n\t    }\n#endif\n\tif (flags & KILL)\n\t    {\n\t\tif (!SDL_SemValue(Sema4))\n\t\t\tSDL_SemPost (Sema4) ;\n\t\tnUserEv = 0 ;\n\t\treflag = 0 ;\n\t\tbBackground = 0 ;\n\t    }\n\tblink = !blink ;\n\tbChanged = 1 ;\n\treturn(interval) ;\n}\n\nUint32 UserTimerCallback(Uint32 interval, void *param)\n{\n\tSDL_Event event ;\n\tif (bBackground)\n\t\treturn(interval) ;\n\n\tevent.type = SDL_USEREVENT ;\n\tevent.user.code = WMU_TIMER ;\n\n\tSDL_AtomicIncRef ((SDL_atomic_t*)&nUserEv) ; // Before PushEvent\n\twhile (BBC_PushEvent(&event) < 0)\n\t\tSDL_Delay(1) ;\n\treturn(interval) ;\n}\n\n#ifndef __EMSCRIPTEN__\nstatic Uint32 PollTimerCallback(Uint32 interval, void *param)\n{\n\tif (!SDL_SemValue(Idler))\n\t\tSDL_SemPost (Idler) ;\n\tif (bBackground < 0)\n\t\tbBackground++ ;\n\treturn interval ;\n}\n#endif\n\nstatic void UserAudioCallback(void* userdata, Uint8* stream, int len)\n{\nstatic Uint8 surplus[AUDIOLEN * MAX_TEMPO] ;\nstatic int leftover ;\nint blocksize = AUDIOLEN * (tempo & 0x3F) ;\n\n\tif (len < leftover)\n\t    {\n\t\tmemcpy (stream, surplus, len) ;\n\t\tleftover -= len ;\n\t\tmemmove (surplus, surplus + len, leftover) ;\n\t\treturn ;\n\t    }\n\n\tif (leftover)\n\t    {\n\t\tmemcpy (stream, surplus, leftover) ;\n\t\tstream += leftover ;\n\t\tlen -= leftover ;\n\t\tleftover = 0 ;\n\t    }\n\n\twhile (len >= blocksize)\n\t    {\n\t\tstick (stream) ;\n\t\tstream += blocksize ;\n\t\tlen -= blocksize ;\n\t    }\n\n\tif (len)\n\t    {\n\t\tstick (surplus) ;\n\t\tmemcpy (stream, surplus, len) ;\n\t\tleftover = blocksize - len ;\n\t\tmemmove (surplus, surplus + len, leftover) ;\n\t    }\n\n\treturn;\n}\n\nSDL_Texture *MakeBackButton(SDL_Renderer *renderer)\n{\n\tunsigned int *pixels ;\n\tint i, pitch ;\n\tSDL_Texture *buttexture = SDL_CreateTexture (renderer, SDL_PIXELFORMAT_ABGR8888, \n\t\t\t\t\t\t     SDL_TEXTUREACCESS_STREAMING, 32, 32) ;\n\tSDL_LockTexture (buttexture, NULL, (void **)&pixels, &pitch) ;\n\tfor (i = 0; i < 32 * 32; i++)\n\t\t*(pixels + i) = 0xC0FFFFFF ; // background\n\tfor (i = 5; i < 16; i++)\n\t    {\n\t\t*(pixels + i*32 - i -  7) = 0xE0E0A090 ; // arrow\n\t\t*(pixels + i*32 - i -  8) = 0xFFFF4020 ; // arrow\n\t\t*(pixels + i*32 - i -  9) = 0xFFFF4020 ; // arrow\n\t\t*(pixels + i*32 - i - 10) = 0xFFFF4020 ; // arrow\n\t\t*(pixels + i*32 - i - 11) = 0xE0E0A090 ; // arrow\n\t    }\n\tfor (i--; i < 32 - 5; i++)\n\t    {\n\t\t*(pixels + i*32 + i -  6) = 0xE0E0A090 ; // arrow\n\t\t*(pixels + i*32 + i -  7) = 0xFFFF4020 ; // arrow\n\t\t*(pixels + i*32 + i -  8) = 0xFFFF4020 ; // arrow\n\t\t*(pixels + i*32 + i -  9) = 0xFFFF4020 ; // arrow\n\t\t*(pixels + i*32 + i - 10) = 0xE0E0A090 ; // arrow\n\t    }\n\tSDL_UnlockTexture (buttexture) ;\n\tSDL_SetTextureBlendMode(buttexture, SDL_BLENDMODE_BLEND) ;\n\treturn buttexture ;\n}\n\nstatic Uint32 FlipCaret(SDL_Renderer *renderer, SDL_Rect *rect)\n{\n\tSDL_Texture *texture ;\n\tint *p ;\n\tint w = rect -> w ;\n\tint h = rect -> h ;\n\tint *buffer = (int *) malloc (w * h * 4) ;\n\tSDL_RenderReadPixels (renderer, rect, SDL_PIXELFORMAT_ABGR8888, buffer, w * 4) ;\n\ttexture = SDL_CreateTexture (renderer, SDL_PIXELFORMAT_ABGR8888, 0, w, h) ;\n\tfor (p = buffer; p < buffer + w * h; p += 1)\n\t\t*p = *p ^ 0xFFFFFF ;\n\tSDL_UpdateTexture (texture, 0, buffer, w * 4) ;\n\tSDL_RenderCopy (renderer, texture, 0, rect) ;\n\tSDL_DestroyTexture (texture) ;\n\tfree (buffer) ;\n\treturn (0) ;\n}\n\nstatic void CaptureScreen (void)\n{\n\tint i ;\n\tshort *eol ;\n\tshort *ptr = chrmap ;\n\tshort *end = chrmap + ((XSCREEN+7)>>3)*((YSCREEN+7)>>3) ;\n\tchar *tmp ;\n\tchar clip[((XSCREEN+7)>>3)*((YSCREEN+7)>>3)] ;\n\n\twhile (((--end) >= chrmap) && (end[0] == ' ')) ;\n\n\ttmp = clip ;\n\n\twhile (ptr <= end)\n\t    {\n\t\teol = ptr + ((XSCREEN + 7) >> 3) ;\n\t\twhile (((--eol) >= ptr) && (eol[0] == ' ')) ;\n\t\tfor (i = 0; i < (eol - ptr + 1); i++)\n\t\t\ttmp[i] = (char) ptr[i] ; /// Needs UCS-2 to UTF-8 conversion!! \n\t\ttmp += (eol - ptr + 1) ;\n\t\t(tmp++)[0] = 0x0D ;\n\t\t(tmp++)[0] = 0x0A ;\n\t\tptr += (XSCREEN + 7) >> 3 ;\n\t    }\n\ttmp[0] = 0 ; // Null terminator\n\tSDL_SetClipboardText (clip) ;\n\treturn ;\n}\n\nstatic void SetDir (char *newpath)\n{\n\tchar temp[MAX_PATH] ;\n\tchar *p ;\n\tstrcpy (temp, newpath) ;\n\tp = strrchr (temp, '/') ;\n\tif (p == NULL) p = strrchr (temp, '\\\\') ;\n\tif (p)\n\t    {\n\t\t*p = '\\0' ;\n\t\t(void) realpath (temp, szLoadDir) ;\n\t    }\n\telse\n\t    {\n\t\tgetcwd (szLoadDir, MAX_PATH) ;\n\t    }\n#ifdef __WINDOWS__\n\twchar_t widepath[MAX_PATH] ;\n\tstrcat (szLoadDir, \"\\\\\") ;\n\tMultiByteToWideChar (CP_UTF8, 0, szLoadDir, -1, widepath, MAX_PATH) ;\n\t_wchdir (widepath) ;\n#else\n\tstrcat (szLoadDir, \"/\") ;\n\tchdir (szLoadDir) ;\n#endif\n}\n\nstatic void ShutDown (void)\n{\n\tint i ;\n\n\tflags |= KILL ;       // Tell worker thread to commit suicide\n\tif (!SDL_SemValue(Sema4))\n\t\tSDL_SemPost (Sema4) ; // Worker thread may be waiting on semaphore\n\tnUserEv = 0 ;         // Worker thread may be waiting on nUserEv\n\treflag = 0 ;          // Worker thread may be waiting on reflag\n\tbBackground = 0 ;     // Worker thread may be waiting on bBackground\n\tSDL_WaitThread (Thread, &i) ;\n\tSDL_DestroySemaphore (Sema4) ;\n#ifdef MUTEX\n\tSDL_DestroyMutex (Mutex) ; \n#endif\n#ifndef __EMSCRIPTEN__\n\tSDL_RemoveTimer(PollTimerID) ;\n#endif\n\tSDL_RemoveTimer(UserTimerID) ;\n\tSDL_RemoveTimer(BlinkTimerID) ;\n\n\tSDL_DestroyTexture(SDL_GetRenderTarget (renderer)) ;\n\tSDL_DestroyRenderer(renderer) ;\n\tSDL_DestroyWindow(window) ;\n\n\tfree (chrmap) ;\n\t// free (userRAM) ; Don't free memory as it contains the worker thread's stack!\n\n\tSDLNet_Quit() ;\n\tTTF_Quit() ;\n\tSDL_Quit() ;\n\treturn ;\n}\n\nstatic int BBC_PeepEvents(SDL_Event* ev, int nev, SDL_eventaction action, Uint32 min, Uint32 max)\n{\n\tint ret ;\n#ifdef MUTEX\n\tSDL_LockMutex (Mutex) ;\n#endif\n\tret = SDL_PeepEvents (ev, nev, action, min, max) ;\n#ifdef MUTEX\n\tSDL_UnlockMutex (Mutex) ;\n#endif\n\treturn ret ;\n}\n\nstatic int myEventFilter(void* userdata, SDL_Event* pev)\n{\n#ifndef __EMSCRIPTEN__\n\tif (!SDL_SemValue(Idler))\n\t\tSDL_SemPost (Idler) ;\n#endif\n\n\tswitch (pev->type)\n\t    {\n\t\tcase SDL_APP_WILLENTERBACKGROUND:\n\t\tcase SDL_APP_DIDENTERBACKGROUND:\n\t\tbBackground = 1 ;\n\t\tbreak ;\n\n#ifndef __EMSCRIPTEN__\n\t\tcase SDL_WINDOWEVENT:\n\t\tswitch (pev->window.event)\n\t\t    {\n\t\t\tcase SDL_WINDOWEVENT_RESIZED:\n\t\t\tcase SDL_WINDOWEVENT_SIZE_CHANGED:\n\t\t\tbBackground = -FGDLY ;\n\t\t    }\n\t\tbreak ;\n#endif\n\t    }\n\n#if defined __EMSCRIPTEN__ && defined MUTEX\n\tif ((pev->type == SDL_USEREVENT) || (pev->type == SDL_WINDOWEVENT))\n\t\treturn 1;\n\tBBC_PeepEvents (pev, 1, SDL_ADDEVENT, SDL_FIRSTEVENT, SDL_LASTEVENT) ;\n#endif\n\treturn 0 ;\n}\n\nstatic int maintick (void) ;\n\nvoid mainloop (void)\n{\n\twhile (maintick()) ;\n}\n\nint main(int argc, char* argv[])\n{\nint i ;\nsize_t immediate ;\nint fullscreen = 0, fixedsize = 0, hidden = 0, highdpi = 0, borderless = 0 ;\nSDL_RWops *ProgFile ;\nconst SDL_version *TTFversion ;\nSDL_version SDLversion ;\nSDL_Event ev ;\n\n#if defined(__WINDOWS__) || defined(__MACOSX__) || defined(__LINUX__)\n\tgzclose(gzopen(\"bbc256x.png\", \"rb\"));\n#endif\n\n#ifdef __WINDOWS__\n\tSDL_setenv (\"SDL_AUDIODRIVER\", \"directsound\", 1) ;\n\tLPWSTR* argw = CommandLineToArgvW(GetCommandLineW(), &argc);\n\tfor (i = 0; i < argc; i++)\n\t    {\n\t\tint len = WideCharToMultiByte(CP_UTF8, 0, argw[i], -1, NULL, 0, NULL, NULL);\n\t\targv[i] = malloc(len);\n\t\tWideCharToMultiByte(CP_UTF8, 0, argw[i], -1, argv[i], len, NULL, NULL);\n\t    }\n\tLocalFree(argw);\n#endif\n\nif (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER |\n\t\tSDL_INIT_EVENTS | SDL_INIT_JOYSTICK) != 0)\n{\n\tSDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR,\n\t\t\t\tszVersion, SDL_GetError(), NULL) ;\n\treturn 1;\n}\n\nSDL_GetVersion (&SDLversion) ;\nplatform = SDLversion.major * 0x1000000 +\n\t   SDLversion.minor * 0x10000 +\n\t   SDLversion.patch * 0x100 ;\nif (platform < 0x2000200)\n{\n\tSDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR,\n\t\t\t\tszVersion, \"Requires SDL version 2.0.2 or later\", NULL) ;\n\tSDL_Quit() ;\n\treturn 2;\n}\n\n#ifdef __LINUX__\n\tplatform |= 1 ;\n#endif\n#ifdef __MACOSX__\n\tplatform |= 2 ;\n#endif\n#ifdef __ANDROID__\n\tplatform |= 3 ;\n\tif (!SDL_IsChromebook())\n\t\tfullscreen = 1 ;\n#endif\n#ifdef __IPHONEOS__\n\tplatform |= 4 ;\n\tfullscreen = 1 ;\n#endif\n#ifdef __EMSCRIPTEN__\n\tplatform |= 5 ;\n#endif\n#if defined __x86_64__ || defined __aarch64__ \n\tplatform |= 0x40 ;\n#endif\n\nif (TTF_Init() == -1)\n{\n\tSDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR,\n\t\t\t\tszVersion, TTF_GetError(), NULL) ;\n\tSDL_Quit() ;\n\treturn 3;\n}\n\nTTFversion = TTF_Linked_Version () ;\nif ((TTFversion->major * 10000 + TTFversion->minor * 100 + TTFversion->patch) < 20012)\n{\n\tSDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR,\n\t\t\t\tszVersion, \"Requires SDL2_ttf version 2.0.12 or later\", NULL) ;\n\tTTF_Quit() ;\n\tSDL_Quit() ;\n\treturn 4;\n}\n\nif (SDLNet_Init() == -1)\n{\n\tSDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR,\n\t\t\t\tszVersion, SDLNet_GetError(), NULL) ;\n\tTTF_Quit() ;\n\tSDL_Quit() ;\n\treturn 5;\n}\n\n// Setting quality to \"linear\" can break flood-fill, affecting 'jigsaw.bbc' etc.\n#if defined __ANDROID__ || defined __IPHONEOS__\n\tSDL_SetHint (SDL_HINT_THREAD_STACK_SIZE, \"0x2000000\") ;\n\tSDL_SetHint (SDL_HINT_RENDER_DRIVER, \"opengles\") ;\n\tSDL_SetHint (\"SDL_RENDER_BATCHING\", \"1\") ;\n\tSDL_SetHint (SDL_HINT_RENDER_SCALE_QUALITY, \"nearest\") ;\n\tSDL_SetHint (\"SDL_TV_REMOTE_AS_JOYSTICK\", \"0\") ;\n\tSDL_GL_SetAttribute (SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES) ;\n\tSDL_GL_SetAttribute (SDL_GL_CONTEXT_MAJOR_VERSION, 1) ;\n\tSDL_GL_SetAttribute (SDL_GL_RED_SIZE, 8) ;\n\tSDL_GL_SetAttribute (SDL_GL_GREEN_SIZE, 8) ;\n\tSDL_GL_SetAttribute (SDL_GL_BLUE_SIZE, 8) ;\n#else\n\tSDL_SetHint (SDL_HINT_THREAD_STACK_SIZE, \"0x2000000\") ;\n\tSDL_SetHint (SDL_HINT_RENDER_DRIVER, \"opengl\") ;\n\tSDL_SetHint (\"SDL_RENDER_BATCHING\", \"1\") ;\n\tSDL_SetHint (SDL_HINT_RENDER_SCALE_QUALITY, \"nearest\") ;\n\tSDL_SetHint (\"SDL_MOUSE_FOCUS_CLICKTHROUGH\", \"1\") ; \n#endif\n\nfor (i = 1; i < argc; i++)\n{\n\tfixedsize |= (NULL != strstr (argv[i], \"-fixedsize\")) ;\n\tfullscreen |= (NULL != strstr (argv[i], \"-fullscreen\")) ;\n\tborderless |= (NULL != strstr (argv[i], \"-borderless\")) ;\n\thighdpi |= (NULL != strstr (argv[i], \"-highdpi\")) ;\n\thidden |= (NULL != strstr (argv[i], \"-hidden\")) ;\n}\n\nwindow = SDL_CreateWindow(\"BBCSDL\",  SDL_WINDOWPOS_CENTERED,  SDL_WINDOWPOS_CENTERED, \n\t\t\t\tSCREEN_WIDTH, SCREEN_HEIGHT, \n#ifdef __IPHONEOS__\n\t\t\t\tSDL_WINDOW_ALLOW_HIGHDPI |\n#endif\n#ifdef __ANDROID__\n\t\t\t\tSDL_WINDOW_BORDERLESS |\n#endif\n\t\t\t\t(getenv(\"SDL_RENDER_DRIVER\") ? 0 : SDL_WINDOW_OPENGL) |\n\t\t\t\t(fixedsize ? 0 : SDL_WINDOW_RESIZABLE) | \n\t\t\t\t(fullscreen ? SDL_WINDOW_FULLSCREEN_DESKTOP : 0) | \n\t\t\t\t(borderless ? SDL_WINDOW_BORDERLESS : 0) | \n\t\t\t\t(highdpi ? SDL_WINDOW_ALLOW_HIGHDPI : 0) | \n\t\t\t\t(hidden ? SDL_WINDOW_HIDDEN : 0)) ;\nif (window == NULL)\n{\n\tSDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR,\n\t\t\t\tszVersion, SDL_GetError(), NULL) ;\n\tSDLNet_Quit() ;\n\tTTF_Quit() ;\n\tSDL_Quit() ;\n\treturn 6;\n}\n\nrenderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC) ;\nif (renderer == NULL)\n{\n\tSDL_DestroyWindow(window) ;\n\tSDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR,\n\t\t\t\tszVersion, SDL_GetError(), NULL) ;\n\tSDLNet_Quit() ;\n\tTTF_Quit() ;\n\tSDL_Quit() ;\n\treturn 7;\n}\n\nif (!SDL_RenderTargetSupported(renderer))\n{\n\tSDL_DestroyWindow(window) ;\n\tSDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR,\n\t\t\t\tszVersion, \"Render targets not supported\", NULL) ;\n\tSDLNet_Quit() ;\n\tTTF_Quit() ;\n\tSDL_Quit() ;\n\treturn 8;\n}\n\nSDL_GetRendererOutputSize (renderer, &sizex, &sizey) ; // Window may not be the requested size\n\n#if defined __ANDROID__ || defined __IPHONEOS__\n{\n\tint size = MAX (sizex, sizey) ;\n\tSDL_SetRenderTarget(renderer, SDL_CreateTexture(renderer, SDL_PIXELFORMAT_ABGR8888, \n\t\t\t\tSDL_TEXTUREACCESS_TARGET, MAX(size,XSCREEN), MAX(size,YSCREEN))) ;\n}\n#else\n{\n\tSDL_DisplayMode dm ;\n\tSDL_GetDesktopDisplayMode (0, &dm) ;\n\tSDL_SetRenderTarget(renderer, SDL_CreateTexture(renderer, SDL_PIXELFORMAT_ARGB8888, \n\t\t\t\tSDL_TEXTUREACCESS_TARGET, MAX(dm.w,XSCREEN), MAX(dm.h,YSCREEN))) ;\n}\n#endif\n\n#ifdef __IPHONEOS__\nSDL_SetRenderDrawColor(renderer, 0, 0, 0, 255) ;\n#else\nSDL_SetRenderDrawColor(renderer, 255, 255, 255, 255) ;\n#endif\nSDL_RenderClear(renderer) ;\n\nif (sizex < sizey * 5 / 8)\n\tbackbutton.w = sizex / 10 ;\nelse if (sizey < sizex * 5 / 8)\n \tbackbutton.w = sizey / 10 ;\nelse if (sizex < sizey)\n\tbackbutton.w = sizex / 24 ;\nelse\n\tbackbutton.w = sizey / 24 ;\nbackbutton.h = backbutton.w ;\nbuttexture = MakeBackButton (renderer) ;\n\n#if defined __WINDOWS__\n\t// Allocate the program buffer\n\t// First reserve the maximum amount:\n\n\tchar *pstrVirtual = NULL ;\n\n\twhile ((MaximumRAM > DEFAULT_RAM) &&\n\t\t(NULL == (pstrVirtual = (char*) VirtualAlloc (NULL, MaximumRAM,\n\t\t\t\t\t\tMEM_RESERVE, PAGE_EXECUTE_READWRITE))))\n\t\tMaximumRAM /= 2 ;\n\n\t// Now commit the initial amount to physical RAM:\n\n\tif (pstrVirtual != NULL)\n\t\tuserRAM = (char*) VirtualAlloc (pstrVirtual, DEFAULT_RAM,\n\t\t\t\t\t\tMEM_COMMIT, PAGE_EXECUTE_READWRITE) ;\n\n#elif defined __APPLE__\n\n\twhile ((MaximumRAM > DEFAULT_RAM) &&\n\t\t\t((void*)-1 == (userRAM = mmap ((void *)0x10000000, MaximumRAM, \n\t\t\t\t\t\tPROT_EXEC | PROT_READ | PROT_WRITE, \n\t\t\t\t\t\tMAP_PRIVATE | MAP_ANON, -1, 0))) &&\n\t\t\t((void*)-1 == (userRAM = mmap ((void *)0x10000000, MaximumRAM, \n\t\t\t\t\t\tPROT_READ | PROT_WRITE, \n\t\t\t\t\t\tMAP_PRIVATE | MAP_ANON, -1, 0))))\n\t\tMaximumRAM /= 2 ;\n\n#elif defined __EMSCRIPTEN__\n\n\twhile ((MaximumRAM > DEFAULT_RAM) &&\n\t\t\t((void*)-1 == (userRAM = mmap ((void *)0, MaximumRAM, \n\t\t\t\t\t\tPROT_READ | PROT_WRITE, \n\t\t\t\t\t\tMAP_PRIVATE | MAP_ANON, -1, 0))))\n\t\tMaximumRAM /= 2 ;\n\n#else // __LINUX__ and __ANDROID__\n\n\tvoid *base = NULL ;\n\n\twhile ((MaximumRAM > DEFAULT_RAM) && (NULL == (base = mymap (MaximumRAM))))\n\t\tMaximumRAM /= 2 ;\n\n\t// Now commit the initial amount to physical RAM:\n\n\tif (base != NULL)\n\t\tuserRAM = mmap (base, MaximumRAM, PROT_EXEC | PROT_READ | PROT_WRITE, \n\t\t\t    MAP_FIXED | MAP_PRIVATE | MAP_ANON | MAP_NORESERVE, -1, 0) ;\n\n#endif\n\nif ((userRAM == NULL) || (userRAM == (void *)-1))\n{\n\tSDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR,\n\t\t\t\tszVersion, \"Couldn't allocate memory\", NULL) ;\n\tSDLNet_Quit() ;\n\tTTF_Quit() ;\n\tSDL_Quit() ;\n\treturn 9 ;\n}\n\nuserTOP = userRAM + DEFAULT_RAM ;\nprogRAM = userRAM + PAGE_OFFSET ; // Will be raised if @cmd$ exceeds 255 bytes\nszCmdLine = progRAM - 0x100 ;     // Must be immediately below default progRAM\nszTempDir = szCmdLine - 0x100 ;   // Strings must be allocated on BASIC's heap\nszUserDir = szTempDir - 0x100 ;\nszLibrary = szUserDir - 0x100 ;\nszLoadDir = szLibrary - 0x100 ;\n\n#if defined __IPHONEOS__ || defined __EMSCRIPTEN__\nSDL_RenderFlushBBC = SDL_GL_GetProcAddress (\"SDL_RenderFlush\") ;\n#else\nSDL_RenderFlushBBC = dlsym ((void *) -1, \"SDL_RenderFlush\") ;\n#endif\n\nglTexParameteriBBC = SDL_GL_GetProcAddress (\"glTexParameteri\") ;\nglLogicOpBBC = SDL_GL_GetProcAddress(\"glLogicOp\") ;\nglEnableBBC  = SDL_GL_GetProcAddress(\"glEnable\") ;\nglDisableBBC = SDL_GL_GetProcAddress(\"glDisable\") ;\n\n#ifdef __WINDOWS__\n\twchar_t widepath[MAX_PATH] ;\n\tGetTempPathW (MAX_PATH, widepath) ;\n\t_wmkdir (widepath) ;\n\tWideCharToMultiByte (CP_UTF8, 0, widepath, -1, szTempDir, 256, NULL, NULL) ;\n#endif\n\n#ifdef __LINUX__\n\tstrcpy (szTempDir, SDL_GetPrefPath(\"tmp\", \"\")) ;\n\t*(szTempDir + strlen(szTempDir) - 1) = 0 ;\n\tmkdir (szTempDir, 0777) ;\n#endif\n\n#ifdef __MACOSX__\n\tGetTempPath (MAX_PATH, szTempDir) ;\n\tmkdir (szTempDir, 0777) ;\n#endif\n\n#ifdef __ANDROID__\n\tstrcpy (szTempDir, (char *) SDL_AndroidGetInternalStoragePath ()) ;\n\tstrcat (szTempDir, \"/tmp/\") ;\n\tmkdir (szTempDir, 0777) ;\n#endif\n\n#ifdef __IPHONEOS__\n\tstrcpy (szTempDir, SDL_GetPrefPath(\"BBCBasic\", \"tmp\")) ;\n\tchar *p = strstr (szTempDir, \"/Library/\") ;\n\tif (p)\n\t    {\n\t\tstrcpy (p, \"/tmp/\") ;\n\t\tmkdir (szTempDir, 0777) ;\n\t    }\n#endif\n\n#ifdef __ANDROID__\n\tuseGPA = 1 ;\n\tstrcpy (szUserDir, (char *) SDL_AndroidGetExternalStoragePath ()) ;\n\tstrcat (szUserDir, \"/\") ;\n\tstrcpy (szLibrary, (char *) SDL_AndroidGetInternalStoragePath ()) ;\n\tstrcat (szLibrary, \"/lib/\") ;\n\tmkdir (szLibrary, 0777) ;\n#else\n#ifdef __IPHONEOS__\n\tuseGPA = 1 ;\n\tstrcpy (szUserDir, SDL_GetPrefPath(\"BBCBasic\", \"usr\")) ;\n\tstrcpy (szLibrary, SDL_GetBasePath()) ;\n\tstrcat (szLibrary, \"lib/\") ;\n\n\tp = strstr (szUserDir, \"/Library/\") ;\n\tif (p)\n\t    {\n\t\tstrcpy (p, \"/Documents/\") ;\n\t\tmkdir (szUserDir, 0777) ;\n\t    }\n#else\n\tstrcpy (szUserDir, SDL_GetPrefPath(\"BBCBasic\", \"\")) ;\n\tstrcpy (szLibrary, SDL_GetBasePath()) ;\n\n\tchar *p ;\n\t*(szUserDir + strlen(szUserDir) - 1) = 0 ;\n\n\tp = strrchr (szLibrary, '/') ;\n\tif (p == NULL) p = strrchr (szLibrary, '\\\\') ;\n#ifdef __WINDOWS__\n\tif (p) strcpy (p + 1, \"lib\\\\\") ;\n#else\n\tif (p) strcpy (p + 1, \"lib/\") ;\n#endif\n\n#ifdef __EMSCRIPTEN__\n\tstrcpy (szTempDir, \"/tmp/\") ;\n\tstrcpy (szUserDir, \"/usr/\") ;\n\tEM_ASM(\n\t    FS.mkdir('/usr');\n            FS.mount(IDBFS, {}, '/usr');\n            FS.syncfs(true, function (err) {});\n\t);\n#endif\n\n\tif (argc >= 2)\n\t{\n\t\tstrncpy (szAutoRun, argv[1], 256) ;\n\t\tszAutoRun[255] = '\\0';\n\t}\n\tif ((argc == 1) || (*argv[1] == '-'))\n\t{\n\t\tchar *q ;\n\t\tstrcpy (szAutoRun, SDL_GetBasePath()) ;\n\t\tq = szAutoRun + strlen (szAutoRun) ;\n\t\tp = strrchr (argv[0], '/') ;\n\t\tif (p == NULL) p = strrchr (argv[0], '\\\\') ;\n\t\tif (p)\n\t\t\tstrcat (szAutoRun, p + 1) ;\n\t\telse\n\t\t\tstrcat (szAutoRun, argv[0]) ;\n\t\tp = strrchr (szAutoRun, '.') ;\n\t\tif (p > q) *p = '\\0' ;\n\t\tstrcat (szAutoRun, \".bbc\") ;\n\t\tSDL_SetWindowTitle (window, szVersion) ;\n\t}\n#endif\n#endif\n\nstrcpy (szCmdLine, szAutoRun) ;\n\nif (argc >= 2)\n\t{\n\t\t*szCmdLine = 0 ;\n\t\tfor (i = 1; i < argc; i++)\n\t\t{\n\t\t\tif (i > 1) strcat (szCmdLine, \" \") ;\n\t\t\tstrcat (szCmdLine, argv[i]) ;\n\t\t}\n\t\tSDL_SetWindowTitle (window, szCmdLine) ;\n\t\tprogRAM = (void *)(((intptr_t) szCmdLine + strlen(szCmdLine) + 256) & -256) ;\n\t}\n\n#ifdef __IPHONEOS__\n\tstrcpy (szAutoRun, SDL_GetBasePath()) ;\n\tstrcat (szAutoRun, \"autorun.bbc\") ;\n#endif\n\n#ifdef __EMSCRIPTEN__\n\tstrcpy (szAutoRun, \"lib/autorun.bbc\") ;\n#endif\n\n#ifdef MUTEX\n// Mutex (before first SDL_PeepEvents and timer creation):\nMutex = SDL_CreateMutex () ;\n#endif\n\nSDL_EventState(SDL_DROPFILE, SDL_ENABLE);\nSDL_EventState(SDL_DROPTEXT, SDL_ENABLE);\nSDL_PumpEvents () ;\nif (SDL_PeepEvents (&ev, 1, SDL_GETEVENT, SDL_DROPFILE, SDL_DROPFILE))\n{\n\tchar *p = strstr (ev.drop.file, \"://\") ;\n\tif (p)\n\t    {\n\t\tstrcpy (szAutoRun, szUserDir) ;\n\t\tstrcat (szAutoRun, p + 3) ;\n\t    }\n\telse\n\t\tstrcpy (szAutoRun, ev.drop.file) ;\n\tSDL_free (ev.drop.file) ;\n}\n\nif (*szAutoRun && (NULL != (ProgFile = SDL_RWFromFile (szAutoRun, \"rb\"))))\n{\n\tSDL_RWread(ProgFile, progRAM, 1, userTOP - progRAM) ;\n\tSDL_RWclose(ProgFile) ;\n\timmediate = 0 ;\n}\nelse\n\timmediate = 1 ;\n\nSetDir (szAutoRun) ;\n\nif (argc < 2)\n\t*szCmdLine = 0 ;\n\nchrmap = (short*) malloc (2 * ((XSCREEN + 7) >> 3) * ((YSCREEN + 7) >> 3)) ;\n\n// Audio buffer should be <= 40 ms (total queued SOUNDs at min. duration)\n// but must be >= 20ms (minimum likely frame rate) because in Emscripten /\n// Web Assembly the browser can only service audio interrupts at frame rate.  \nSDL_memset(&want, 0, sizeof(want)) ;\nwant.freq = 44100 ;\nwant.format = AUDIO_S16LSB ;\nwant.channels = 2 ;\nwant.samples = 1024 ; // Largest power-of-two <= AUDIOLEN (~ 23 ms)\nwant.callback = UserAudioCallback ;\n\nif (sizex > 800)\n{\n\tcharx = 16 ;\n\tchary = 38 ;\n}\nelse\n{\n\tcharx = 8 ;\n\tchary = 20 ;\n}\n\ngfxPrimitivesSetFont(bbcfont, 8, 8) ;\ngfxPrimitivesSetFontZoom(charx >> 3, chary >> 3) ;\n\nreflag = 0 ;\nsysflg = 0 ;\npanx = 0 ;\npany = 0 ;\noffsetx = 0 ;\noffsety = 0 ;\ncursx = 0 ;\nzoom = 32768 ; // normalised 1.0\n\nDestRect.w = sizex ; // Prevent crash if MOUSE used too soon\nDestRect.h = sizey ;\n\n#ifndef __EMSCRIPTEN__\n// Poll timer:\nPollTimerID = SDL_AddTimer(POLLT, PollTimerCallback, 0) ;\n#endif\n\n// 4 Hz timer:\nUserTimerID = SDL_AddTimer(250, UserTimerCallback, 0) ;\n\n// Caret timer:\nBlinkTimerID = SDL_AddTimer(400, BlinkTimerCallback, 0) ;\n\n// Semaphores:\nSema4 = SDL_CreateSemaphore (0) ;\n#ifndef __EMSCRIPTEN__\nIdler = SDL_CreateSemaphore (0) ;\n#endif\n\n// Copies of window and renderer:\nhwndProg = window ;\nmemhdc = renderer ;\n\n// Get global keyboard state:\nkeystate = SDL_GetKeyboardState(NULL) ;\n\n// Set up to monitor enter/exit background events:\n#if defined __EMSCRIPTEN__ && defined MUTEX\nSDL_SetEventFilter(myEventFilter, 0) ;\n#else\nSDL_AddEventWatch(myEventFilter, 0) ;\n#endif\n\n// Start interpreter thread:\nwhile ((Thread = SDL_CreateThread(entry, \"Interpreter\", (void *) immediate)) == NULL)\n\tSDL_Delay(1) ;\n\n// Main polling loop:\n#ifdef __EMSCRIPTEN__\n    emscripten_set_fullscreenchange_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, window, 0,\n\t\t\t\t\t\tEmscripten_HandleFullscreenChange);\n    emscripten_set_main_loop(mainloop, 0, 1);\n#else\nwhile (running)\n    {\n\tmainloop () ;\n\tSDL_SemWait (Idler) ;\n    }\n#endif\n\nShutDown () ;\nexit(exitcode) ;\n}\n\nstatic int maintick (void)\n{\n\tint ptsx, ptsy, winx, winy, i, c ;\n\tstatic float oldx, oldy ;\n\tstatic int oldtextx, oldtexty ;\n\tstatic unsigned int lastpaint, lastusrev, lastpump ;\n\tstatic SDL_Texture* target = NULL ;\n\tunsigned int now = SDL_GetTicks () ;\n\tfloat scale = (float)(zoom) / 32768.0 ; // must be float\n\tfloat yscale = scale ;\n\tSDL_GetWindowSize (window, &ptsx, &ptsy) ;\n\tSDL_GL_GetDrawableSize (window, &winx, &winy) ;\n\tSDL_Rect caret ;\n\tSDL_Event ev ;\n\n\tDestRect.x = -panx * scale ;\n\tDestRect.w = sizex * scale ;\n#if defined __ANDROID__ || defined __IPHONEOS__\n\tDestRect.x += (winx - DestRect.w) >> 1 ;\n#endif\n#ifdef __IPHONEOS__\n\tif (SDL_GetWindowFlags(window) & SDL_WINDOW_FULLSCREEN)\n\t\tbackbutton.y = 0 ;\n\telse\n\t\tbackbutton.y = 50 ; // Move down to avoid status bar\n\tDestRect.y = -pany * scale + backbutton.y ;\n\tDestRect.h = sizey * scale - backbutton.y ;\n\tyscale = (float)DestRect.h / (float)sizey ;\n#else\n\tDestRect.y = -pany * scale ;\n\tDestRect.h = sizey * scale ;\n#endif\n\n#define PAINT1 (((unsigned int)(now - lastpaint) >= PACER) && (nUserEv < MAXEV)) // Time window\n#define PAINT2 (reflag & 1) // Interpreter thread is waiting for refresh (vSync)\n#define PAINT3 ((unsigned int)(now - lastpaint) >= MAXFP) // Fallback minimum frame rate\n\n\tif ((reflag != 2) && (PAINT1 || PAINT2 || PAINT3) && (bBackground == 0) &&\n\t    (bChanged || (reflag & 1) || (textx != oldtextx) || (texty != oldtexty)))\n\t    {\n\t\tSDL_Rect SrcRect ;\n\t\tSDL_Texture *bitmap = SDL_GetRenderTarget (renderer) ;\n\t\tSrcRect.x = offsetx ;\n\t\tSrcRect.y = offsety ;\n\t\tSrcRect.w = sizex ;\n\t\tSrcRect.h = sizey ;\n\n\t\toldtextx = textx ;\n\t\toldtexty = texty ;\n\t\tint careton = blink && (cursa < 32) ;\n\t\tcaret.x = (textx - offsetx) * scale + DestRect.x ;\n\t\tcaret.y = (texty - offsety + cursa) * yscale + DestRect.y ;\n\t\tif (cursx) caret.w = cursx * scale ; else caret.w = charx * scale ;\n\t\tcaret.h = (cursb - cursa) * yscale ;\n\t\tif (caret.h < 0) caret.h = 0 ; \n\n\t\tif ((bitmap != NULL) && (bBackground == 0))\t// Immediately before SetRenderTarget\n\t\t    {\n\t\t\tSDL_SetRenderTarget(renderer, NULL) ;\n\t\t\tSDL_SetRenderDrawColor (renderer, 0, 0, 0, 255) ;\n#ifdef __IPHONEOS__\n\t\t\tglDisableBBC (GL_SCISSOR_TEST) ;\n#endif\n\t\t\tSDL_RenderClear (renderer) ;\n\t\t\tif (glTexParameteriBBC)\n\t\t\t    {\n\t\t\t\tSDL_GL_BindTexture (bitmap, NULL, NULL) ;\n\t\t\t\tglTexParameteriBBC (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR) ;\n\t\t\t\tglTexParameteriBBC (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR) ;\n\t\t\t\tSDL_GL_UnbindTexture (bitmap) ;\n\t\t\t    }\n\t\t\tSDL_RenderCopy(renderer, bitmap, &SrcRect, &DestRect) ;\n#ifdef __IPHONEOS__\n\t\t\tif ((flags & ESCDIS) == 0)\n\t\t\t\tSDL_RenderCopy (renderer, buttexture, NULL, &backbutton) ;\n#endif\n\t\t\tif (glTexParameteriBBC)\n\t\t\t    {\n\t\t\t\tSDL_GL_BindTexture (bitmap, NULL, NULL) ;\n\t\t\t\tglTexParameteriBBC (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST) ;\n\t\t\t\tglTexParameteriBBC (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST) ;\n\t\t\t\tSDL_GL_UnbindTexture (bitmap) ;\n\t\t\t    }\n\t\t\tif (careton) FlipCaret (renderer, &caret) ;\n\t\t\tif (bBackground == 0) SDL_RenderPresent(renderer) ;\n\t\t\tSDL_SetRenderTarget(renderer, bitmap);\n\t\t    }\n\t\tlastpaint = SDL_GetTicks() ; // wraps around after 50 days\n\t\tnow = lastpaint ;\n\t\tbChanged = 0 ;\n\t\treflag &= 2 ;\n\t\treturn 0 ; // Must yield back to Browser after RenderPresent\n\t    }\n\n\t// SDL_PumpEvents is very slow on iOS (more than 2 microseconds!) so run it only\n\t// every PUMPT milliseconds.  Note that, contrary to what the SDL docs imply, we\n\t// do not need to call SDL_PumpEvents to put SDL_USEREVENTs in the queue.\n\n\tif ((unsigned int)(now - lastpump) >= PUMPT)\n\t    {\n#ifdef MUTEX\n\t\tSDL_LockMutex (Mutex) ;\n#endif\n\t\tSDL_PumpEvents() ;\n#ifdef MUTEX\n\t\tSDL_UnlockMutex (Mutex) ;\n#endif\n\t\tlastpump = SDL_GetTicks() ;\n\t    }\n\n\tif (scroln != oldscroln)\n\t    {\n\t\toldscroln = scroln ;\n\t\tif (*(keystate + SDL_SCANCODE_LSHIFT) || *(keystate + SDL_SCANCODE_RSHIFT) ||\n\t\t\t\tSDL_GetMouseState (NULL,NULL))\n\t\t\tSDL_Delay (10) ;\n\t    }\n\n\tif (scroln > 0)\n\t    {\n\t\tif (*(keystate + SDL_SCANCODE_LSHIFT) || *(keystate + SDL_SCANCODE_RSHIFT) ||\n\t\t\t\tSDL_GetMouseState (NULL,NULL))\n\t\t\tscroln = 18 - 128 ; // 18 lines before next pause\n\t\tif (*(keystate + SDL_SCANCODE_ESCAPE) || (flags & ESCFLG))\n\t\t\tscroln = 0 ;        // exit paged mode\n\t    }\n\n\tif (bBackground || (scroln > 0) ?\n\t\tBBC_PeepEvents(&ev, 1, SDL_GETEVENT, 0, SDL_USEREVENT-1) :\n\t\tBBC_PeepEvents(&ev, 1, SDL_GETEVENT, 0, SDL_LASTEVENT))\n\t{\n\t\tswitch (ev.type)\n\t\t{\n\t\tcase SDL_QUIT:\n\t\t\tif (clotrp)\n\t\t\t{\n\t\t\t\tputevt (clotrp, WM_CLOSE, 0, 0) ;\n\t\t\t\tflags |= ALERT ;\n\t\t\t\tbreak ;\n\t\t\t}\n\t\t\trunning = 0 ;\n\t\t\tbreak ;\n\n\t\tcase SDL_TEXTINPUT:\n\t\t\ti = 0;\n\t\t\twhile (ev.text.text[i] != '\\0')\n\t\t\t  putkey(ev.text.text[i++]) ;\n\t\t\tbreak ;\n\n\t\tcase SDL_USEREVENT:\n\t\t\tSDL_AtomicDecRef ((SDL_atomic_t*) &nUserEv) ;\n\n\t\t\tif ((ev.user.code >= 0x0100) && (ev.user.code <= 0x1FFF))\n\t\t\t{\n\t\t\t\txeqvdu_ (ev.user.data2, ev.user.data1, ev.user.code) ;\n\t\t\t\tif ((ev.user.code >> 8) == 25)\n\t\t\t\t\tlastusrev = SDL_GetTicks() ;\n\t\t\t\tbreak ;\n\t\t\t}\n\t\t\telse switch (ev.user.code)\n\t\t\t{\n\t\t\t\tcase EVT_VDU :\n\t\t\t\tvduchr_ (ev.user.data1) ;\n\t\t\t\tlastusrev = SDL_GetTicks() ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase EVT_COPYKEY :\n\t\t\t\tiResult = copkey_ (ev.user.data1, ev.user.data2) ;\n\t\t\t\tSDL_SemPost (Sema4) ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase EVT_TINT :\n\t\t\t\tiResult = vtint_ (ev.user.data1, ev.user.data2) ;\n\t\t\t\tSDL_SemPost (Sema4) ;\n\t\t\t\tlastusrev = SDL_GetTicks() ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase EVT_DISPLAY :\n\t\t\t\tiResult = disply_ (ev.user.data1, ev.user.data2) ;\n\t\t\t\tSDL_SemPost (Sema4) ;\n\t\t\t\tlastusrev = SDL_GetTicks() ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase EVT_PIXELS :\n\t\t\t\tgetpix_ (ev.user.data1, ev.user.data2) ;\n\t\t\t\tSDL_SemPost (Sema4) ;\n\t\t\t\tlastusrev = SDL_GetTicks() ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase EVT_CARET :\n\t\t\t\tiResult = getcsr_ () ;\n\t\t\t\tSDL_SemPost (Sema4) ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase EVT_FONT :\n\t\t\t\tiResult = openfont_ (ev.user.data1, ev.user.data2) ;\n\t\t\t\tSDL_SemPost (Sema4) ;\n\t\t\t\tlastusrev = SDL_GetTicks() ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase EVT_CHAR :\n\t\t\t\tiResult = getchar_ (ev.user.data1, ev.user.data2) ;\n\t\t\t\tSDL_SemPost (Sema4) ;\n\t\t\t\tlastusrev = SDL_GetTicks() ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase EVT_WIDTH :\n\t\t\t\tiResult = getwid_ (ev.user.data1, ev.user.data2) ;\n\t\t\t\tSDL_SemPost (Sema4) ;\n\t\t\t\tlastusrev = SDL_GetTicks() ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase EVT_REFLAG :\n\t\t\t\treflag = ((reflag & ((size_t)ev.user.data1 & 0xFF00) >> 8)\n\t\t\t\t\t^  ((size_t)ev.user.data1 & 0x00FF)) ;\n\t\t\t\tSDL_SemPost (Sema4) ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase EVT_OSWORD :\n\t\t\t\tRedefineChar (renderer, *(char *)(ev.user.data2 + 2),\n\t\t\t\t\t\t\tev.user.data2 + 4, 16, 20) ;\n\t\t\t\tSDL_SemPost (Sema4) ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase EVT_SYSCALL :\n\t\t\t\tiResult = apicall_ (ev.user.data1, ev.user.data2) ;\n\t\t\t\tSDL_SemPost (Sema4) ;\n\t\t\t\tlastusrev = SDL_GetTicks() ;\n\t\t\t\tif (bYield)\n\t\t\t\t    {\n\t\t\t\t\tbYield = 0 ;\n\t\t\t\t\treturn 0 ; // Force yield when SDL_GL_SwapWindow\n\t\t\t\t    }\n\t\t\t\tbreak ;\n\n\t\t\t\tcase EVT_MOUSE :\n\t\t\t\t{\n\t\t\t\tint x, y, b ;\n\t\t\t\tb = SDL_GetMouseState (&x, &y) ;\n\t\t\t\tx = (x * winx) / ptsx ;\n\t\t\t\ty = (y * winy) / ptsy ;\n\t\t\t\t*(int *)ev.user.data1 = ((((x - DestRect.x) * sizex / DestRect.w)\n\t\t\t\t\t\t\t+ offsetx) << 1) - origx ;\n\t\t\t\t*(int *)ev.user.data2 = ((sizey + ~(((y - DestRect.y) * sizey / DestRect.h)\n\t\t\t\t\t\t\t+ offsety)) << 1) - origy ;\n\t\t\t\tiResult = (b & 0x1A) | (((b & BIT0) != 0) << 2) | ((b & BIT2) != 0) ;\n\t\t\t\t}\n\t\t\t\tSDL_SemPost (Sema4) ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase EVT_MOUSETO :\n\t\t\t\t{\n\t\t\t\tint x, y ;\n\t\t\t\tx = (((((size_t)ev.user.data1 + origx) >> 1) - offsetx) \n\t\t\t\t\t\t* DestRect.w / sizex) + DestRect.x ;\n\t\t\t\ty = ((~((((size_t)ev.user.data2 + origy) >> 1) - sizey) - offsety)\n\t\t\t\t\t\t* DestRect.h / sizey) + DestRect.y ;\n\t\t\t\tx = (x * ptsx) / winx ;\n\t\t\t\ty = (y * ptsy) / winy ;\n\t\t\t\tSDL_WarpMouseInWindow (hwndProg, x, y) ;\n\t\t\t\t}\n\t\t\t\tSDL_SemPost (Sema4) ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase EVT_QUIT :\n\t\t\t\texitcode = (size_t) ev.user.data2 ;\n\t\t\t\trunning = 0 ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase EVT_OSK :\n\t\t\t\tif (ev.user.data1)\n\t\t\t\t    {\n\t\t\t\t\tif (!SDL_IsTextInputActive ())\n\t\t\t\t\t\tSDL_StartTextInput () ;\n\t\t\t\t    }\n\t\t\t\telse\n\t\t\t\t    {\n\t\t\t\t\tif (SDL_IsTextInputActive ())\n\t\t\t\t\t\tSDL_StopTextInput () ;\n\t\t\t\t    }\n\t\t\t\tbreak ;\n\n\t\t\t\tcase WMU_REALLOC :\n#ifdef __WINDOWS__\n\t\t\t\tif ((ev.user.data1 < userRAM) ||\n\t\t\t\t    (ev.user.data1 > (userRAM + MaximumRAM)) ||\n\t\t\t\t    (NULL == VirtualAlloc (userRAM, ev.user.data1 - userRAM,\n\t\t\t\t\t\tMEM_COMMIT, PAGE_EXECUTE_READWRITE)))\n\t\t\t\t\tiResult = 0 ;\n#else\n\t\t\t\tif ((ev.user.data1 < userRAM) ||\n\t\t\t\t    (ev.user.data1 > (userRAM + MaximumRAM)))\n\t\t\t\t\tiResult = 0 ;\n#endif\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tif ((ev.user.data2) && (ev.user.data1 > userTOP))\n\t\t\t\t\t\tuserTOP = ev.user.data1 ;\n\t\t\t\t\tiResult = (size_t) ev.user.data1 ;\n\t\t\t\t}\n\t\t\t\tSDL_SemPost (Sema4) ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase WMU_WAVEOPEN :\n\t\t\t\thwo = SDL_OpenAudioDevice (NULL, 0, &want, &have, 0) ;\n\t\t\t\tSDL_PauseAudioDevice(hwo, 0) ;\n\t\t\t\tSDL_SemPost (Sema4) ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase WMU_WAVECLOSE :\n\t\t\t\tif (hwo)\n\t\t\t\t\tSDL_CloseAudioDevice (hwo) ;\n\t\t\t\thwo = 0 ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase EVT_TIMER :\n\t\t\t\tSDL_RemoveTimer (UserTimerID) ;\n\t\t\t\tUserTimerID = SDL_AddTimer ((intptr_t) ev.user.data1, UserTimerCallback, 0) ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase WMU_TIMER :\n\t\t\t\tif (nUserEv <= 0)\n\t\t\t\t\tflip7 () ;\n\t\t\t\tif (timtrp)\n\t\t\t\t{\n\t\t\t\t\tputevt (timtrp, WM_TIMER, 0, 0) ;\n\t\t\t\t\tflags |= ALERT ;\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n#ifdef __EMSCRIPTEN__\n\t\t\t\tcase EVT_FSSYNC:\n\t\t\t\tEM_ASM(\n\t\t\t\t    FS.syncfs(function (err) {});\n\t\t\t\t);\n\t\t\t\tbreak ;\n\n\t\t\t\tcase EVT_RUNJS:\n\t\t\t\temscripten_run_script (ev.user.data1) ;\n\t\t\t\tSDL_SemPost (Sema4) ; // ev.user.data1 is volatile ptr\n\t\t\t\tbreak ;\n#endif\n\n\t\t\t}\n\t\t\tbreak ;\n\n\t\tcase SDL_KEYDOWN:\n\t\t\tc = ev.key.keysym.sym ;\n\n\t\t\tswitch (c)\n\t\t\t    {\n\t\t\t\tcase SDLK_KP_7 :\n\t\t\t\tc = 0 ;\n\t\t\t\tif (ev.key.keysym.mod & KMOD_NUM) break ;\n\t\t\t\tcase SDLK_HOME :\n\t\t\t\tc = 130 ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase SDLK_KP_1 :\n\t\t\t\tc = 0 ;\n\t\t\t\tif (ev.key.keysym.mod & KMOD_NUM) break ;\n\t\t\t\tcase SDLK_END :\n\t\t\t\tc = 131 ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase SDLK_KP_9 :\n\t\t\t\tc = 0 ;\n\t\t\t\tif (ev.key.keysym.mod & KMOD_NUM) break ;\n\t\t\t\tcase SDLK_PAGEUP :\n\t\t\t\tc = 132 ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase SDLK_KP_3 :\n\t\t\t\tc = 0 ;\n\t\t\t\tif (ev.key.keysym.mod & KMOD_NUM) break ;\n\t\t\t\tcase SDLK_PAGEDOWN :\n\t\t\t\tc = 133 ;\n \t\t\t\tbreak ;\n\n\t\t\t\tcase SDLK_KP_0 :\n\t\t\t\tc = 0 ;\n\t\t\t\tif (ev.key.keysym.mod & KMOD_NUM) break ;\n\t\t\t\tcase SDLK_INSERT :\n\t\t\t\tc = 134 ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase SDLK_KP_PERIOD :\n\t\t\t\tc = 0 ;\n\t\t\t\tif (ev.key.keysym.mod & KMOD_NUM) break ;\n\t\t\t\tcase SDLK_DELETE :\n\t\t\t\tc = 135 ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase SDLK_KP_4 :\n\t\t\t\tc = 0 ;\n\t\t\t\tif (ev.key.keysym.mod & KMOD_NUM) break ;\n\t\t\t\tcase SDLK_LEFT :\n\t\t\t\tc = 136 ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase SDLK_KP_6 :\n\t\t\t\tc = 0 ;\n\t\t\t\tif (ev.key.keysym.mod & KMOD_NUM) break ;\n\t\t\t\tcase SDLK_RIGHT :\n\t\t\t\tc = 137 ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase SDLK_KP_2 :\n\t\t\t\tc = 0 ;\n\t\t\t\tif (ev.key.keysym.mod & KMOD_NUM) break ;\n\t\t\t\tcase SDLK_DOWN :\n\t\t\t\tc = 138 ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase SDLK_KP_8:\n\t\t\t\tc = 0 ;\n\t\t\t\tif (ev.key.keysym.mod & KMOD_NUM) break ;\n\t\t\t\tcase SDLK_UP :\n\t\t\t\tc = 139 ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase SDLK_TAB :\n\t\t\t\tif (ev.key.keysym.mod & KMOD_SHIFT)\n\t\t\t\t\tc = 155 ;\n\t\t\t\telse if (ev.key.keysym.mod & KMOD_CTRL)\n\t\t\t\t\t{\n\t\t\t\t\tCaptureScreen () ;\n\t\t\t\t\tc = 0 ;\n\t\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t\tc = 9 ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase SDLK_BACKSPACE :\n\t\t\t\tc = 8 ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase SDLK_MENU :\n\t\t\t\tc = 9 ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase SDLK_RETURN :\n\t\t\t\tcase SDLK_SELECT :\n\t\t\t\tcase SDLK_KP_ENTER :\n\t\t\t\tc = 13 ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase SDLK_AUDIOPLAY :\n\t\t\t\tc = 32 ;\n\t\t\t\tbreak ;\n\n\t\t\t\tcase SDLK_ESCAPE :\n\t\t\t\tcase SDLK_AC_BACK : // Android 'back' button\n\t\t\t\tc = 27 ;\n\t\t\t\tif ((flags & ESCDIS) == 0)\n\t\t\t\t    {\n\t\t\t\t\tflags |= ESCFLG ;\n\t\t\t\t\tc = 0 ;\n\t\t\t\t    }\n\t\t\t\tbreak ;\n\n\t\t\t\tdefault:\n\t\t\t\tif ((c >= SDLK_F1) && (c <= SDLK_F12))\n\t\t\t\t    {\n\t\t\t\t\tc = c - SDLK_F1 + 145 ;\n\t\t\t\t\tif (ev.key.keysym.mod & KMOD_SHIFT)\n\t\t\t\t\t\tc += 16 ;\n\t\t\t\t\tif (ev.key.keysym.mod & KMOD_CTRL)\n\t\t\t\t\t\tc += 32 ;\n\t\t\t\t    }\n\t\t\t\telse if ((c >= SDLK_F13) && (c <= SDLK_F15))\n\t\t\t\t    {\n\t\t\t\t\tc = c - SDLK_F13 + 157 ;\n\t\t\t\t\tif (ev.key.keysym.mod & KMOD_SHIFT)\n\t\t\t\t\t\tc += 16 ;\n\t\t\t\t\tif (ev.key.keysym.mod & KMOD_CTRL)\n\t\t\t\t\t\tc += 32 ;\n\t\t\t\t    }\n\t\t\t\telse if ((ev.key.keysym.mod & KMOD_CTRL) &&\n\t\t\t\t\t!(ev.key.keysym.mod & KMOD_ALT) &&\n\t\t\t\t\t (c >= SDLK_a) && (c <= SDLK_z))\n\t\t\t\t\tc = c - SDLK_a + 1 ;\n\t\t\t\telse if ((ev.key.keysym.mod & KMOD_GUI) &&\n\t\t\t\t\t ((c == SDLK_a) || (c == SDLK_c) || (c == SDLK_f) ||\n\t\t\t\t\t  (c == SDLK_v) || (c == SDLK_x) || (c == SDLK_z)))\n\t\t\t\t\tc = c - SDLK_a + 1 ;\n\t\t\t\telse if (ev.key.keysym.scancode == SDL_SCANCODE_AUDIOREWIND)\n\t\t\t\t\tc = 128 ;\n\t\t\t\telse if (ev.key.keysym.scancode == SDL_SCANCODE_AUDIOFASTFORWARD)\n\t\t\t\t\tc = 129 ;\n\t\t\t\telse\n\t\t\t\t\tc = 0 ;\n\n\t\t\t    }\n\n\t\t\tif ((c >= 130) && (c <= 133) && (ev.key.keysym.mod & KMOD_CTRL))\n\t\t\t\tc += 26 ;\n\t\t\tif ((c >= 136) && (c <= 137) && (ev.key.keysym.mod & KMOD_CTRL))\n\t\t\t\tc -= 8 ;\n\t\t\tif ((c >= 136) && (c <= 137) && (ev.key.keysym.mod & KMOD_GUI))\n\t\t\t\tc -= 6 ;  // Mac Cmd+left, Cmd+right\n\t\t\tif ((c >= 138) && (c <= 139) && (ev.key.keysym.mod & KMOD_GUI))\n\t\t\t\tc ^= 23 ; // Mac Cmd+down, Cmd+up\n\n\t\t\tif (c) putkey (c) ;\n\t\t\tbreak ;\n\n#ifdef __IPHONEOS__\n\t\tcase SDL_MOUSEBUTTONUP:\n\t\t\tif ((flags & ESCDIS) == 0)\n\t\t\t    {\n\t\t\t\tSDL_Point pt = {ev.button.x * winx / ptsx, ev.button.y * winy / ptsy} ;\n\t\t\t\tif (SDL_PointInRect (&pt, &backbutton))\n\t\t\t\t\tflags |= ESCFLG ;\n\t\t\t    }\n\t\t\tbreak ;\n#endif\n\n\t\tcase SDL_MOUSEBUTTONDOWN:\n\t\t\tif (moutrp)\n\t\t\t    {\n\t\t\t\tint x = (ev.button.x * winx) / ptsx ; // SDL 2.0.8 and later\n\t\t\t\tint y = (ev.button.y * winy) / ptsy ;\n\t\t\t\tx = (x - DestRect.x) * sizex / DestRect.w ;\n\t\t\t\ty = (y - DestRect.y) * sizey / DestRect.h ;\n\n\t\t\t\tswitch (ev.button.button)\n\t\t\t\t    {\n\t\t\t\t\tcase SDL_BUTTON_LEFT :\n\t\t\t\t\tputevt (moutrp, WM_LBUTTONDOWN, 1, y << 16 | (x & 0xFFFF)) ;\n\t\t\t\t\tbreak ;\n\n\t\t\t\t\tcase SDL_BUTTON_MIDDLE :\n\t\t\t\t\tputevt (moutrp, WM_MBUTTONDOWN, 16, y << 16 | (x & 0xFFFF)) ;\n\t\t\t\t\tbreak ;\n\n\t\t\t\t\tcase SDL_BUTTON_RIGHT :\n\t\t\t\t\tputevt (moutrp, WM_RBUTTONDOWN, 2, y << 16 | (x & 0xFFFF)) ;\n\t\t\t\t\tbreak ;\n\t\t\t\t    }\n\t\t\t\tflags |= ALERT ;\n\t\t\t    }\n\t\t\tbreak ;\n\n\t\tcase SDL_FINGERDOWN:\n\t\tcase SDL_FINGERUP:\n\t\tcase SDL_FINGERMOTION:\n\t\t\tif (moutrp && (sysflg & 2))\n\t\t\t{\n\t\t\t\tint x = (ev.tfinger.x * winx - DestRect.x) * sizex / DestRect.w ;\n\t\t\t\tint y = (ev.tfinger.y * winy - DestRect.y) * sizey / DestRect.h ;\n\n\t\t\t\tputevt (moutrp, ev.type, ev.tfinger.fingerId, y << 16 | (x & 0xFFFF)) ;\n\t\t\t\tflags |= ALERT ;\n\t\t\t}\n\t\t\tbreak ;\n\n\t\tcase SDL_MULTIGESTURE :\n\t\t\tif (sysflg & 4) // Can be used to disable pan/zoom\n\t\t\t{\n\t\t\t\tif (!systrp) break ; // Not moutrp to avoid flood\n\t\t\t\tint x = (ev.mgesture.x * ptsx - DestRect.x) * sizex / DestRect.w ;\n\t\t\t\tint y = (ev.mgesture.y * ptsy - DestRect.y) * sizey / DestRect.h ;\n\t\t\t\tint z = ev.mgesture.dDist * 0x10000 ;\n\n\t\t\t\tputevt (systrp, ev.type, z, y << 16 | (x & 0xFFFF)) ;\n\t\t\t\tflags |= ALERT ;\n\t\t\t\tbreak ;\n\t\t\t}\n\t\t\tif (fabs(ev.mgesture.dDist) > 0.002)\n\t\t\t{\n\t\t\t\tzoom = zoom * (1.0 + ev.mgesture.dDist) /\n\t\t\t\t\t      (1.0 - ev.mgesture.dDist) ;\n\t\t\t\tbChanged = 1 ;\n\t\t\t}\n\t\t\tif (fabs(ev.mgesture.x - oldx) < 0.05)\n\t\t\t{\n\t\t\t\tpanx -= winx * (ev.mgesture.x - oldx) / scale ;\n\t\t\t\tbChanged = 1 ;\n\t\t\t}\n\t\t\tif (fabs(ev.mgesture.y - oldy) < 0.05)\n\t\t\t{\n\t\t\t\tpany -= winy * (ev.mgesture.y - oldy) / scale ;\n\t\t\t\tbChanged = 1 ;\n\t\t\t}\n\t\t\toldx = ev.mgesture.x ;\n\t\t\toldy = ev.mgesture.y ;\n\t\t\tbreak ;\n\n\t\tcase SDL_DROPFILE:\n\t\tcase SDL_DROPTEXT:\n\t\t\tif (systrp && (sysflg & 8)) \n\t\t\t{\n\t\t\t\tint wparam = ((intptr_t) ev.drop.file) & 0x0FFFFFFFFUL ;\n\t\t\t\tint lparam = ((intptr_t) ev.drop.file) / 0x100000000UL ;\n\t\t\t\tputevt (systrp, ev.type, wparam, lparam) ;\n\t\t\t\tflags |= ALERT ;\n\t\t\t\tbreak ;\n\t\t\t}\n\t\t\tbreak ;\n\n\t\tcase SDL_WINDOWEVENT:\n\t\t\tev.window.data1 *= winx / ptsx ;\n\t\t\tev.window.data2 *= winy / ptsy ;\n\t\t\tif (clotrp && (ev.window.event == SDL_WINDOWEVENT_CLOSE))\n\t\t\t\t{\n\t\t\t\t\tputevt (clotrp, WM_CLOSE, 0, ev.window.windowID) ;\n\t\t\t\t\tflags |= ALERT ;\n\t\t\t\t\tbreak ;\n\t\t\t\t}\n\t\t\tif (siztrp)\n\t\t\t{\n\t\t\t\tswitch (ev.window.event)\n\t\t\t\t{\n\t\t\t\t\tcase SDL_WINDOWEVENT_MOVED :\n\t\t\t\t\t    putevt (siztrp, WM_MOVE, ev.window.windowID,\n\t\t\t\t\t\t(ev.window.data2 << 16) | ev.window.data1) ;\n\t\t\t\t\tbreak ;\n\n\t\t\t\t\tcase SDL_WINDOWEVENT_RESIZED :\n\t\t\t\t\t    putevt (siztrp, WM_SIZE, ev.window.windowID,\n\t\t\t\t\t\t(ev.window.data2 << 16) | ev.window.data1) ;\n\t\t\t\t\tbreak ;\n\t\t\t\t}\n\t\t\t\tflags |= ALERT ;\n\t\t\t}\n\t\t\telse if (ev.window.event == SDL_WINDOWEVENT_RESIZED)\n\t\t\t{\n\t\t\t\tif ((ev.window.data1 * sizey) > (ev.window.data2 * sizex))\n\t\t\t\t\tzoom = 0x8000LL * ev.window.data2 / sizey ;\n\t\t\t\telse\n\t\t\t\t\tzoom = 0x8000LL * ev.window.data1 / sizex ;\n\t\t\t\tif (zoom < 0x8000) zoom = 0x8000 ;\n#if !defined(__ANDROID__) && !defined(__IPHONEOS__)\n\t\t\t\tpanx = (sizex - 0x8000LL * ev.window.data1 / zoom) / 2 ;\n\t\t\t\tpany = (sizey - 0x8000LL * ev.window.data2 / zoom) / 2 ;\n#endif\n\t\t\t}\n\t\t\tbreak ;\n\n\t\tcase SDL_MOUSEWHEEL:\n\t\t\tif (ev.wheel.y > 0)\n\t\t\t\tputkey (0x8D) ;\n\t\t\tif (ev.wheel.y < 0)\n\t\t\t\tputkey (0x8C) ;\n\t\t\tbreak ;\n\n\t\tcase SDL_APP_WILLENTERBACKGROUND:\n\t\t\ttarget = SDL_GetRenderTarget (renderer) ;\n\t\t\tSDL_SetRenderTarget (renderer, NULL) ;\n\t\t\tbreak ;\n\n\t\tcase SDL_APP_DIDENTERFOREGROUND:\n\t\t\tif (target) SDL_SetRenderTarget (renderer, target) ;\n\n\t\t\tbBackground = -FGDLY ;\n\t\t\tbChanged = 1 ;\n\t\t\tif (siztrp)\n\t\t\t{\n\t\t\t\t// Signal 'restored from background'\n\t\t\t\tputevt (siztrp, WM_SIZE, 0, (winy << 16) | winx) ; \n\t\t\t\tflags |= ALERT ;\n\t\t\t}\n\t\t\tbreak ;\n\n\t\tcase SDL_RENDER_DEVICE_RESET:\n\t\tcase SDL_RENDER_TARGETS_RESET:\n\t\t\t{\n\t\t\t\tint w, h ;\n\t\t\t\tSDL_Texture **p, *t = SDL_GetRenderTarget (renderer) ;\n\t\t\t\tSDL_GL_GetDrawableSize (window, &w, &h) ;\n\t\t\t\tSDL_SetRenderTarget(renderer, SDL_CreateTexture(renderer, \n\t\t\t\t\tSDL_PIXELFORMAT_ABGR8888, SDL_TEXTUREACCESS_TARGET,\n\t\t\t\t\tMAX(MAX(w,h),XSCREEN), MAX(MAX(w,h),YSCREEN))) ;\n\t\t\t\tif (t != NULL) SDL_DestroyTexture (t) ;\n\t\t\t\tfor (p = TTFcache; p < TTFcache + 65536; p++)\n\t\t\t\t\tif (*p != NULL)\n\t\t\t\t\t{\n\t\t\t\t\t\tSDL_DestroyTexture (*p) ;\n\t\t\t\t\t\t*p = NULL ;\n\t\t\t\t\t}\n\t\t\t\tbuttexture = MakeBackButton (renderer) ;\n\t\t\t\tif (siztrp)\n\t\t\t\t\t{\n\t\t\t\t\t\t// Signal 'render device/targets reset'\n\t\t\t\t\t\tputevt (siztrp, WM_SIZE, -1, (h << 16) | w) ; \n\t\t\t\t\t\tflags |= ALERT ;\n\t\t\t\t\t}\n\t\t\t}\n\t\t\tbreak ;\n\t\t}\n\t\treturn 1 ; // Must not yield if outstanding events\n\t}\n\n\treturn ((unsigned int)(now - lastusrev) < BUSYT) ; // Yield if idle\n}\n"
  },
  {
    "path": "src/bbctmp.m",
    "content": "#include <Foundation/Foundation.h>\n#include <string.h>\n\nint GetTempPath(size_t buflen, char *buffer)\n{ @autoreleasepool\n{\n    NSString *str = NSTemporaryDirectory () ;\n    const char *temppath = [str fileSystemRepresentation] ;\n    if (temppath == NULL) return 0 ;\n    const size_t tmplen = strlen (temppath) + 1 ;\n    if (tmplen > buflen) return tmplen ;\n    strcpy (buffer, temppath) ;\n    return tmplen - 1 ;\n}}\n"
  },
  {
    "path": "src/bbcvdu.c",
    "content": "/*****************************************************************\\\n*       32-bit or 64-bit BBC BASIC for SDL 2.0                    *\n*       (C) 2017-2026  R.T.Russell  http://www.rtrussell.co.uk/   *\n*                                                                 *\n*       The name 'BBC BASIC' is the property of the British       *\n*       Broadcasting Corporation and used with their permission   *\n*                                                                 *\n*       bbcvdu.c  VDU emulator and graphics drivers               *\n*       This module runs in the context of the GUI thread         *\n*       Version 1.44a, 13-Mar-2026                                *\n\\*****************************************************************/\n\n#include <stdlib.h>\n#include <stdio.h>\n#include <unistd.h>\n#include <string.h>\n#include \"SDL2_gfxPrimitives.h\"\n#include \"SDL_ttf.h\"\n#include \"bbcsdl.h\"\n\n#define WM_SIZING 532\n#define GL_COLOR_LOGIC_OP 0xBF2\n#define NUMCOLOURS 16\n#define NUMMODES 34\n\n#define INSERT_KEY  134\n#define DELETE_KEY  135\n#define CARET_LEFT  136\n#define CARET_RIGHT 137\n#define CARET_UP    139\n#define CARET_DOWN  138\n#define COPY_KEY    9\n#define CANCEL_COPY 155\n\n// Functions in SDL_gfxPrimitives.c:\nint thickEllipseColor(SDL_Renderer*, Sint16, Sint16, Sint16, Sint16, Uint32, Uint8) ;\nint thickArcColor(SDL_Renderer*, Sint16, Sint16, Sint16, Sint16, Sint16, Uint32, Uint8) ;\nint thickCircleColor(SDL_Renderer*, Sint16, Sint16, Sint16, Uint32, Uint8) ;\nint thickLineColorStyle (SDL_Renderer*, Sint16, Sint16, Sint16, Sint16, Uint8, Uint32, int) ;\nint RedefineChar (SDL_Renderer*, char, unsigned char*, Uint32, Uint32) ;\n\n// Functions in flood.c:\nvoid flood(unsigned int* pBitmap, int x, int y, int w, int h,\n\t\tunsigned int fill_color, unsigned int target_color, int type) ;\n\n// Functions in bbcsdl.c:\n#ifdef __WINDOWS__\nextern void (__stdcall *glEnableBBC)  (int) ;\nextern void (__stdcall *glLogicOpBBC) (int) ;\nextern void (__stdcall *glDisableBBC) (int) ;\n#else\nextern void (*glEnableBBC)  (int) ;\nextern void (*glLogicOpBBC) (int) ;\nextern void (*glDisableBBC) (int) ;\n#endif\nextern int (*SDL_RenderFlushBBC) (SDL_Renderer*) ;\n\n// Functions in bbcttx.c:\nvoid page7 (void) ;\nvoid send7 (char, short *, short *, int) ;\nextern unsigned char frigo[], frign[] ;\n\nstatic char xscrol[] = {0, 2, 1, 3} ;\n\nstatic short logicop[] =\n{\n\t0,\t// GCOL 0 - just plot\n        0x1507,\t// GCOL 1 - OR  (GL_OR)\n        0x1501,\t// GCOL 2 - AND (GL_AND)\n        0x1506,\t// GCOL 3 - XOR (GL_XOR)\n        0x150A,\t// GCOL 4 - NOT (GL_INVERT)\n        0x1505,\t// GCOL 5 - GL_NOOP\n        0x1504,\t// GCOL 6 - GL_AND_INVERTED\n        0x150D\t// GCOL 7 - GL_OR_INVERTED\n} ;\n\nstatic SDL_BlendMode blendop[] = \n{\n\tSDL_BLENDMODE_NONE, // GCOL 0 - just plot\n\tSDL_BLENDMODE_ADD,  // GCOL 1 - add\n\tSDL_BLENDMODE_MOD,  // GCOL 2 - multiply\n\t0,\t\t    // GCOL 3 (populated in vduinit)\n\t0,\t\t    // GCOL 4 (populated in vduinit)\n        0,\t\t    // GCOL 5 (populated in vduinit)\n\tSDL_BLENDMODE_MOD,  // GCOL 6 - multiply by NOT src\n\tSDL_BLENDMODE_ADD   // GCOL 7 - add to NOT src\n} ;\n\n// It is important that solid colours aren't dithered, since\n// 'flood fill while background' fails with dithered colours.\n// Therefore make sure these colours can all be represented\n// exactly even with the poorest colour resolution (15-bit RGB).\n\n// With a non-paletted display, logical plotting modes (AND, OR,\n// XOR, INVERT) act upon the RGB value, *not* the palette index;\n// this may give unexpected results.  To maximise compatibility\n// between paletted and non-paletted displays, the default coltab\n// should have the property that logical manipulation of the index\n// has the same effect as the equivalent manipulation of the RGB\n// value.  This is achieved by a direct mapping between each bit\n// of the index value and bits in the RGB values.  The mapping\n// from RGB555 to RGB888 is not universal across platforms but\n// this seems to be a common algorithm which preserves this rule:\n//    col8 = (col5 << 3) OR (col5 >> 2)\n// so the following mapping is chosen to satisfy both 15-bit and\n// 24-bit modes:\n//    00:  00000B -> 00000000B -> (0x00)\n//    01:  00110B -> 00110001B -> (0x31)\n//    10:  11001B -> 11001110B -> (0xCE)\n//    11:  11111B -> 11111111B -> (0xFF)\n// Fortuitously these four values also satisfy another common\n// algorithm: col8 = round((col5 / 31) * 255)\n//\n// DO NOT MODIFY THESE TABLES WITHOUT REFERENCE TO THE ABOVE !!\n\nstatic unsigned int coltab[NUMCOLOURS] =\n{\n0xFF000000,        // Black\n0xFF0000CE,        // Red\n0xFF00CE00,        // Green\n0xFF00CECE,        // Yellow\n0xFFCE0000,        // Blue\n0xFFCE00CE,        // Magenta\n0xFFCECE00,        // Cyan\n0xFFCECECE,        // White\n0xFF313131,        // Grey\n0xFF3131FF,        // Intensified red\n0xFF31FF31,        // Intensified green\n0xFF31FFFF,        // Intensified yellow\n0xFFFF3131,        // Intensified blue\n0xFFFF31FF,        // Intensified magenta\n0xFFFFFF31,        // Intensified cyan\n0xFFFFFFFF         // Intensified white\n} ;\n\n// For logical plotting to work correctly in 4-colour modes\n// (with both paletted and non-paletted displays) the colours\n// other than black and white must be complementary.  It is\n// impossible to maintain compatibility with the BBC Micro's\n// default palette (black, red, yellow, white) in this case:\n\nstatic unsigned int coltb4[] =\n{\n0xFF000000,        // Black\n0xFFCE00CE,        // Magenta\n0xFF00CE00,        // Green\n0xFFCECECE         // White\n} ;\n\nstatic unsigned int coltb2[] =\n{\n0xFF000000,        // Black\n0xFFCECECE         // White\n} ;\n\n// Table of client area width & height, character width & height\n// and colour mask:\n\nstatic short modetab[34][5] =\n{\n        {640,512,8,16,2},      // MODE 0\n        {640,512,16,16,4},     // MODE 1\n        {640,512,32,16,16},    // MODE 2\n        {640,500,8,20,16},     // MODE 3 (3,11,15)\n        {640,512,16,16,2},     // MODE 4\n        {640,512,32,16,4},     // MODE 5\n        {640,500,16,20,16},    // MODE 6 (6,14)\n        {640,500,16,20,8},     // MODE 7 (7)\n\n        {640,512,8,16,16},     // MODE 8\n        {640,512,16,16,16},    // MODE 9\n        {720,576,8,16,16},     // MODE 10\n        {720,576,16,16,16},    // MODE 11\n        {960,768,8,16,16},     // MODE 12\n        {960,768,16,16,16},    // MODE 13\n        {1280,1024,8,16,16},   // MODE 14\n        {1280,1024,16,16,16},  // MODE 15\n\n        {640,400,8,16,16},     // MODE 16 (8)\n        {640,400,16,16,16},    // MODE 17 (9,10,12,13)\n        {640,480,8,16,16},     // MODE 18 (18)\n        {640,480,16,16,16},    // MODE 19\n        {800,600,8,20,16},     // MODE 20\n        {800,600,16,20,16},    // MODE 21\n        {1024,768,8,16,16},    // MODE 22\n        {1024,768,16,16,16},   // MODE 23\n\n        {1152,864,8,16,16},    // MODE 24\n        {1152,864,16,16,16},   // MODE 25\n        {1280,960,8,16,16},    // MODE 26\n        {1280,960,16,16,16},   // MODE 27\n        {1440,1080,8,20,16},   // MODE 28\n        {1440,1080,16,20,16},  // MODE 29\n        {1600,1200,8,16,16},   // MODE 30\n        {1600,1200,16,16,16},  // MODE 31\n\n// The following modes are provided for compatibility with BBC BASIC (86):\n\n        {640,400,8,16,2},      // MODE 32 (0)\n        {640,400,16,16,4}      // MODE 33 (1,2,4,5)\n} ;\n\n// Conversion from BBC BASIC (86) modes to BBC BASIC for Windows modes:\n\nstatic char xmodes[] = {32,33,33,3,33,33,6,7,16,17,17,3,17,17,6,3} ;\n\n// Function template for universal API function:\nvoid (*APIfunc) (int, int, int, int, int, int, int, int, int, int) ;\n\n/*****************************************************************\\\n*       Bugfix replacements for SDL 2.0 functions                 *\n\\*****************************************************************/\n\n// Bugfix version of SDL_RenderSetClipRect (SDL Bugzilla 2700)\n// n.b. writes to the rect, which is supposedly a constant!\nstatic int BBC_RenderSetClipRect (SDL_Renderer* renderer, SDL_Rect* rect)\n{\n\tint w, h, result ;\n\n\tif ((rect == NULL) || (platform >= 0x02000400))\n\t\treturn SDL_RenderSetClipRect(renderer, rect) ;\n\n\tSDL_GetRendererOutputSize (renderer, &w, &h) ;\n\trect->y = h - rect->y - rect->h ;\n\tresult = SDL_RenderSetClipRect (renderer, rect) ;\n\trect->y = h - rect->y - rect->h ;\n\treturn result ;\n}\n\n// Bugfix version of SDL_RenderReadPixels (SDL Bugzilla 2740)\n// Also much faster on some platforms because reading pixels from the\n// default render target is faster than reading from a target texture.\n// n.b. This bugfix routine cannot read a bigger rect than the window!\nint BBC_RenderReadPixels (SDL_Renderer* renderer, const SDL_Rect* rect,\n                          Uint32 format, void* pixels, int pitch)\n{\n#ifdef __EMSCRIPTEN__\n\treturn SDL_RenderReadPixels (renderer, rect, format, pixels, pitch) ;\n#else\n\tint result ;\n\tSDL_Rect dst = {0, 0, rect->w, rect->h} ;\n\tSDL_Texture *tex = SDL_GetRenderTarget (renderer) ;\n\tSDL_SetRenderTarget (renderer, NULL) ;\n\tSDL_RenderCopy (renderer, tex, rect, &dst) ;\n\tresult = SDL_RenderReadPixels (renderer, &dst, format, pixels, pitch) ;\n\tSDL_SetRenderTarget (renderer, tex) ;\n\treturn result ;\n#endif\n}\n\n/*****************************************************************\\\n*       Graphics support functions                                *\n\\*****************************************************************/\n\n// Copy the RGB MSBs to all 8 bits:\nstatic unsigned int rgbsra7 (unsigned int rgb)\n{\n\trgb &= 0x808080 ;\n\trgb |= (rgb >> 4) ;\n\trgb |= (rgb >> 2) ;\n\trgb |= (rgb >> 1) ;\n\treturn rgb | 0xFF000000 ;\n}\n\n// Set render draw colour:\nstatic void setcol (unsigned char ci)\n{\n\tint col = palette[(int) ci] ;\n\tSDL_SetRenderDrawColor (memhdc, col & 0xFF, (col >> 8) & 0xFF,\n\t\t\t\t(col >> 16) & 0xFF, (col >> 24) & 0xFF) ;\n}\n\n// Get graphics viewport coordinates\nstatic void grawin (int *l, int *r, int *t, int *b)\n{\n\tif (hrect != NULL)\n\t{\n\t\t*l = hrect -> x ;\n\t\t*r = hrect -> x + hrect -> w ;\n\t\t*t = hrect -> y ;\n\t\t*b = hrect -> y + hrect -> h ;\n\t}\n\telse\n\t{\n\t\t*l = 0 ;\n\t\t*r = sizex ;\n\t\t*t = 0 ;\n\t\t*b = sizey ;\n\t}\n}\n\n// Scale from BBC BASIC graphics units to pixels:\nstatic void ascale (int *x, int *y)\n{\n\t*x = (*x + origx) >> 1 ;\n\t*y = sizey - 1 - ((*y + origy) >> 1) ;\n}\n\n// calculate radius:\nstatic int radius (int cx, int cy, int rx, int ry)\n{\n\treturn (int)(sqrt ((rx - cx) * (rx - cx) + (ry - cy) * (ry - cy))) ;\n}\n\n// calculate arctangent (degrees 0-360):\nstatic int arctan (int dx, int dy)\n{\n\tint atn, octant = 0 ;\n\tint atntab[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9,10,11,12,13,14,\n\t\t\t14,15,16,17,18,19,19,20,21,22,22,23,24,25,25,26,\n\t\t\t27,28,28,29,30,30,31,32,32,33,34,34,35,35,36,37,\n\t\t\t37,38,38,39,39,40,40,41,41,42,42,43,43,44,44,45,45} ;\n\n\tif (dx < 0)\n\t{\n\t\tdx = -dx ;\n\t\toctant |= 1 ;\n\t}\n\n\tif (dy < 0)\n\t{\n\t\tdy = - dy ;\n\t\toctant |= 2 ;\n\t}\n\n\tif (dx < dy)\n\t{\n\t\tint tmp = dx ;\n\t\tdx = dy ;\n\t\tdy = tmp ;\n\t\toctant |= 4 ;\n\t}\n\n\tatn = atntab[(dy << 6) / dx] ;\n\tswitch (octant)\n\t{\n\tcase 4:\n\t\tatn = 90 - atn ;\n\t\tbreak ;\n\tcase 1:\n\t\tatn = 180 - atn ;\n\t\tbreak ;\n\tcase 7:\n\t\tatn = 270 - atn ;\n\t\tbreak ;\n\tcase 2:\n\t\tatn = 360 - atn ;\n\t\tbreak ;\n\tcase 5:\n\t\tatn += 90 ;\n\t\tbreak ;\n\tcase 3:\n\t\tatn += 180 ;\n\t\tbreak ;\n\tcase 6:\n\t\tatn += 270 ;\n\t\tbreak ;\n\t}\n\treturn atn ;\n}\n\n// Blit a rectangular region (source and destination may overlap):\nstatic void blit (int dstx, int dsty, int srcx, int srcy, int w, int h, int bg)\n{\n\tSDL_Rect dst = {dstx, dsty, w, h} ;\n\tSDL_Rect src = {srcx, srcy, w, h} ;\n\tSDL_Texture *tex, *tex2, *target ;\n\n\ttex = SDL_CreateTexture (memhdc, SDL_PIXELFORMAT_ABGR8888,\n                                 SDL_TEXTUREACCESS_TARGET, w, h) ;\n\ttarget = SDL_GetRenderTarget (memhdc) ;\n\tSDL_SetRenderTarget (memhdc, tex) ;\n\tSDL_RenderClear (memhdc) ; // important\n\tSDL_RenderCopy (memhdc, target, &src, NULL) ;\n\tif (bg == 1)\n\t{\n\t\ttex2 = SDL_CreateTexture (memhdc, SDL_PIXELFORMAT_ABGR8888,\n\t\t\t\t\t  SDL_TEXTUREACCESS_TARGET, w, h) ;\n\t\tSDL_SetRenderTarget (memhdc, tex2) ;\n\t\tSDL_RenderCopy (memhdc, target, &dst, NULL) ;\n\t}\n\tSDL_SetRenderTarget (memhdc, target) ;\n\tif (bg < 0)\n\t{\n\t\tsetcol (bg & 0xFF) ;\n\t\tSDL_RenderFillRect (memhdc, &src) ;\n\t}\n\tSDL_RenderCopy (memhdc, tex, NULL, &dst) ;\n\tif (bg == 1)\n\t{\n\t\tSDL_RenderCopy (memhdc, tex2, NULL, &src) ;\n\t\tSDL_DestroyTexture (tex2) ;\n\t}\n\tSDL_DestroyTexture (tex) ;\n}\n\n// Flood fill WHILE colour = specified target\nstatic void flooda (unsigned char col, unsigned char tar, int cx, int cy, int vl, int vr, int vt, int vb)\n{\n\tunsigned int *p ;\n\tSDL_Texture *tex ;\n\n\tSDL_Rect rect = {vl, vt, vr - vl, vb - vt} ;\n\n\tif ((rect.w <= 0) || (rect.h <= 0) ||\n\t    (cx < vl) || (cx >= vr) || (cy < vt) || (cy >= vb))\n\t\treturn ;\n\n\tp = (unsigned int*) malloc (rect.w * rect.h * 4) ;\n\tBBC_RenderReadPixels (memhdc, &rect, SDL_PIXELFORMAT_ABGR8888, p, rect.w * 4) ;\n\tflood(p, cx-rect.x, cy-rect.y, rect.w, rect.h, palette[(int)col], palette[(int)tar], 0) ;\n\ttex = SDL_CreateTexture (memhdc, SDL_PIXELFORMAT_ABGR8888, SDL_TEXTUREACCESS_STREAMING, \n\t\t\t\trect.w, rect.h) ;\n\tSDL_UpdateTexture (tex, NULL, p, rect.w * 4) ;\n\tfree (p) ;\n\tSDL_RenderCopy (memhdc, tex, NULL, &rect) ;\n\tSDL_DestroyTexture (tex) ;\n}\n\n// Flood fill UNTIL colour = specified target\nstatic void floodb (unsigned char col, unsigned char tar, int cx, int cy, int vl, int vr, int vt, int vb)\n{\n\tunsigned int *p ;\n\tSDL_Texture *tex ;\n\n\tSDL_Rect rect = {vl, vt, vr - vl, vb - vt} ;\n\n\tif ((rect.w <= 0) || (rect.h <= 0) ||\n\t    (cx < vl) || (cx >= vr) || (cy < vt) || (cy >= vb))\n\t\treturn ;\n\n\tp = (unsigned int*) malloc (rect.w * rect.h * 4) ;\n\tBBC_RenderReadPixels (memhdc, &rect, SDL_PIXELFORMAT_ABGR8888, p, rect.w * 4) ;\n\tflood(p, cx-rect.x, cy-rect.y, rect.w, rect.h, palette[(int)col], palette[(int)tar], 1) ;\n\ttex = SDL_CreateTexture (memhdc, SDL_PIXELFORMAT_ABGR8888, SDL_TEXTUREACCESS_STREAMING, \n\t\t\t\trect.w, rect.h) ;\n\tSDL_UpdateTexture (tex, NULL, p, rect.w * 4) ;\n\tfree (p) ;\n\tSDL_RenderCopy (memhdc, tex, NULL, &rect) ;\n\tSDL_DestroyTexture (tex) ;\n}\n\n/*****************************************************************\\\n*       Text cursor (caret) support functions                     *\n\\*****************************************************************/\n\n//Get cursor position:\n//n.b. textx or texty may be negative in 'pending scroll' state!\nstatic int gcsr (void)\n{\n\treturn (texty << 16) | (textx & 0xFFFF) ;\n}\n\n// Convert pixel coordinates to location in 'chrmap'\nstatic void p2c (int x, int y, short **pc, short **sl, int *nc, int *oc)\n{\n\t*nc = ((XSCREEN + 7) >> 3) ;\t// no. of (wide) chars per line\n\t*oc = x / charx ;\t\t// char offset from line start\n\t*sl = chrmap + (y / chary) * (*nc) ; // pointer to line start\n\t*pc = *sl + *oc ;\t\t// pointer to chrmap\n}\n\n// Convert character coordinates to pixel coordinates\n// adjusting for text viewport and checking range:\nstatic int xy2p (int *x, int *y)\n{\n\tint w, h ;\n\n\tif ((cmcflg & BIT3) != 0)\n\t{\n\t\tint tmp = *x ;\n\t\t*x = *y ;\n\t\t*y = tmp ;\n\t}\n\n\tw = (textwr - textwl) / charx ;\n\tif ((*x > w) || (*x < 0))\n\t\treturn 0 ;  // Allow pending CRLF/scroll\n\tif ((cmcflg & BIT1) != 0)\n\t\t*x = ~(*x - w) ;\n\n\th = (textwb - textwt) / chary ;\n\tif ((*y > h) || (*y < 0))\n\t\treturn 0 ;  // Allow pending CRLF/scroll\n\tif ((cmcflg & BIT2) != 0)\n\t\t*y = ~(*y - h) ;\n\n\t*x = textwl + charx * (*x) ;\n\t*y = textwt + chary * (*y) ;\n\treturn 1 ;\n}\n\n// Invert cursor/caret blob for 'copy key' editing:\nstatic void blob (void)\n{\n\tint pitch ;\n\tint *pixels, *p ;\n\tSDL_Texture *tex ;\n\tSDL_Rect rect = {textx, texty, charx, chary} ;\n\n\tif ((cursa & BIT6) != 0)\n\t\treturn ;\n\n\ttex = SDL_CreateTexture (memhdc, SDL_PIXELFORMAT_ABGR8888, SDL_TEXTUREACCESS_STREAMING,\n\t\t\t\t rect.w, rect.h) ;\n\tSDL_LockTexture (tex, NULL, (void **) &pixels, &pitch) ;\n\tBBC_RenderReadPixels (memhdc, &rect, SDL_PIXELFORMAT_ABGR8888, pixels, pitch) ;\n\tfor (p = pixels; p < (pixels + rect.h * rect.w); p++)\n\t\t*p ^= 0xFFFFFF ;\n\tSDL_UnlockTexture (tex) ;\n\tSDL_RenderCopy (memhdc, tex, NULL, &rect) ;\n\tSDL_DestroyTexture (tex) ;\n\tbChanged = 1 ;\n}\n\n//Swap cursors:\nstatic void swap (int *xy)\n{\n\tshort x = *xy & 0xFFFF, y = (*xy >> 16) & 0xFFFF ;\n\t*xy = gcsr () ;\n\ttextx = x ;\n\ttexty = y ;\n}\n\nstatic void home (void) ;\n\n// clear text viewport to background\nstatic void cls (void)\n{\n\tshort *dst, *p ;\n\tshort *pctl, *pcbr ; // pointers to character in character map\n\tshort *sl ;          // pointer to start of line in character map\n\tint nc ;             // total number of (wide) characters per line\n\tint octl, ocbr ;     // (wide) character offset from start of line\n\tSDL_Rect rect = {textwl, textwt, textwr - textwl, textwb - textwt} ;\n\n\t// Find character coordinates from pixel coordinates:\n\tp2c (textwl, textwt, &pctl, &sl, &nc, &octl) ; // top-left (inside)\n\tp2c (textwr, textwb, &pcbr, &sl, &nc, &ocbr) ; // bottom-right (outside)\n\tocbr -= octl ;\t\t// no. of (wide) chars per line of viewport\n\n\t// Clear character map:\n\tdst = pctl ;\n\twhile (dst < (pcbr - nc))\n\t{\n\t\tfor (p = dst; p < dst + ocbr; p++)\n\t\t\t*p = L' ' ;\n\t\tdst += nc ;\n\t}\n\n\t// Clear text viewport:\n\tif (modeno == 7)\n\t{\n\t\tpage7 () ;\t// update screen from character map\n\t\treturn ;\n\t}\n\n\tsetcol (txtbak) ;\n\tSDL_RenderFillRect (memhdc, &rect) ; // n.b. Android needs SDL patch\n\tbChanged = 1 ;\n}\n\n//\n// Scroll text up, down, left or right.\n// al = 0 (right), 1 (down), 2 (left), 3 (up)\n// ah = 0 for text viewport, ah != 0 for whole window\n//\nstatic void scroll (char al, char ah)\n{\n\tint tl, tt, tr, tb ;\n\tshort *src, *dst, *p ;\n\tshort *pctl, *pcbr ; // pointers to character in character map\n\tshort *sl ;          // pointer to start of line in character map\n\tint nc ;             // total number of (wide) characters per line\n\tint octl, ocbr ;     // (wide) character offset from start of line\n\n\tif (ah == 0)\n\t{\n\t\ttl = textwl ;\n\t\ttt = textwt ;\n\t\ttr = textwr ;\n\t\ttb = textwb ;\n\t}\n\telse\n\t{\n\t\ttl = 0 ;\n\t\ttt = 0 ;\n\t\ttr = sizex ;\n\t\ttb = sizey ;\n\t\tif (tr > XSCREEN)\n\t\t\ttr = XSCREEN ;\n\t\tif (tb > YSCREEN)\n\t\t\ttb = YSCREEN ;\n\t}\n\n\t// Find character coordinates from pixel coordinates:\n\tp2c (tl, tt, &pctl, &sl, &nc, &octl) ; // top-left (inside)\n\tp2c (tr, tb, &pcbr, &sl, &nc, &ocbr) ; // bottom-right (outside)\n\tocbr -= octl ;\t\t// no. of (wide) chars per line of viewport\n\n\t// Check for degenerate cases where we just do a CLS:\n\tif ((((al & BIT0) == 0) && (ocbr <= 1)) // horiz scroll with width <= 1 char\n\t|| (((al & BIT0) != 0) && ((pcbr - pctl) <= (nc + ocbr)))) // vert scroll with height <= 1 line\n\t{\n\t\tcls () ;\n\t\treturn ;\n\t}\n\n\t// Scroll character map:\n\tswitch (al & 3)\n\t{\n\tcase 0:\t\t// scroll right\n\t\tsrc = pctl ;\t\t// source\n\t\tdst = src + 1 \t;\t// destination\n\t\twhile (src <= (pcbr - ocbr - nc))\n\t\t{\n\t\t\tmemmove (dst, src, 2 * (ocbr - 1)) ;\n\t\t\t*src = L' ' ;\n\t\t\tsrc += nc ;\n\t\t\tdst += nc ;\n\t\t}\n\t\tbreak ;\n\n\tcase 2:\t\t// scroll left\n\t\tdst = pctl ;\t\t// destination\n\t\tsrc = dst + 1 ;\t\t// source\n\t\twhile (dst <= (pcbr - ocbr - nc))\n\t\t{\n\t\t\tmemmove (dst, src, 2 * (ocbr - 1)) ;\n\t\t\t*(dst + ocbr - 1) = L' ' ;\n\t\t\tsrc += nc ;\n\t\t\tdst += nc ;\n\t\t}\n\t\tbreak ;\n\n\tcase 1:\t\t// scroll down\n\t\tsrc = pcbr - ocbr - 2*nc ;\n\t\tdst = pcbr - ocbr - nc ;\n\t\twhile (src >= pctl)\n\t\t{\n\t\t\tmemmove (dst, src, 2 * ocbr) ;\n\t\t\tsrc -= nc ;\n\t\t\tdst -= nc ;\n\t\t}\n\t\tfor (p = dst; p < dst + ocbr; p++)\n\t\t\t*p = L' ' ;\n\t\tbreak ;\n\n\tcase 3:\t\t// scroll up\n\t\tdst = pctl ;\n\t\tsrc = pctl + nc ;\n\t\twhile (src <= (pcbr - ocbr - nc))\n\t\t{\n\t\t\tmemmove (dst, src, 2 * ocbr) ;\n\t\t\tsrc += nc ;\n\t\t\tdst += nc ;\n\t\t}\n\t\tfor (p = dst; p < dst + ocbr; p++)\n\t\t\t*p = L' ' ;\n\t}\n\n\t// Scroll page:\n\tif (modeno == 7)\n\t{\n\t\tpage7 () ;\t// update screen from character map\n\t\treturn ;\n\t}\n\n\ttr -= tl ;\t\t// width (pixels)\n\ttb -= tt ;\t\t// height (lines)\n\tswitch (al & 3)\n\t{\n\tcase 0:\t\t// scroll right\n\t\tblit (tl + charx, tt, tl, tt, tr - charx, tb, txtbak + 0x80000000) ; \n\t\tbreak ;\n\n\tcase 2:\t\t// scroll left\n\t\tblit (tl, tt, tl + charx, tt, tr - charx, tb, txtbak + 0x80000000) ; \n\t\tbreak ;\n\n\tcase 1:\t\t// scroll down\n\t\tblit (tl, tt + chary, tl, tt, tr, tb - chary, txtbak + 0x80000000) ; \n\t\tbreak ;\n\n\tcase 3:\t\t// scroll up\n\t\tblit (tl, tt, tl, tt + chary, tr, tb - chary, txtbak + 0x80000000) ; \n\t}\n\tbChanged = 1 ;\n}\n\n// Scroll text viewport, testing for 'paged mode' first, or eject printer page:\nstatic int scrolp (char al, char ah)\n{\n\tif ((al & BIT4) == 0)\n\t    {\n\t\tif ((scroln > 0) && !(al & BIT0))\n\t\t\treturn 0 ;\n\t\tsclflg = ah ;\t\t\t// for COPY key\n\t\tscroll (ah, 0) ;\n\t    }\n\t/// else if ((al & BIT1) == 0)\n\t/// \tpsheet () ;\n\treturn 1 ;\n}\n\nstatic void psend (char al)\n{\n}\n\n// Text caret movement, taking account of VDU 23,16... settings\n//   movement code: return = &C0, home = &80, char = &40\n//                  right = 0, left = 6, down = 8, up = 14\n//                  unpend = 1 (CRLF) or 9 (scroll)\n//                  set BIT5 to force 'wrap' rather than 'scroll'\n//                  (inverting bit 3 gives correct secondary action)\n//                  Secondary action corresponds to 'wrap' or 'home'\n//        |  VDU 4  |  VDU 5  |  VDU 2\n//  xpos  |  textx  |  lastx  |  prntx\n//  ypos  |  texty  |  lasty  |  prnty\n//  width |  charx* |  charx* |  prchx*\n// height |  chary* |  chary* |  prchy*\n//  left  | textwl  |    +    |  paperl\n//   top  | textwt  |    +    |  papert\n//  right | textwr  |    +    |  paperr\n// bottom | textwb  |    +    |  paperb\n//\n// Notes: * or actual character metrics if proportional-spaced\n//        + as returned from 'grawin'\n\nstatic void cmove (unsigned char al, int dx, int dy, int *px, int *py, int ml, int mt, int mr, int mb)\n{\n\tunsigned char tmp ;\n\tchar ah = cmcflg ;\n\tmr -= dx ;\t// adjust right edge\n        mb -= dy ; \t// adjust bottom edge\n\n\twhile (1)\n\t{\n\t\tif (((al & 0xC0) == 0x40) && ((ah & BIT5) != 0))\n\t\t\tbreak ;\n\t\tif (((al & BIT7) != 0) || ((al & 0x30) == 0))\n\t\t\tah &= ~BIT6 ;\t// if not VDU 5 or VDU 2 mode\n\t\tif (((al & 0xB0) != 0) || ((al & BIT6) == 0))\n\t\t\tah &= ~BIT0 ;\t// if not a character\n\t\tif ((ah & BIT4) != 0)\n\t\t\tal |= BIT5 ; \t// wrap rather than scroll\n\t\ttmp = al ^ (ah & 0x0E) ;\n\t\tif ((tmp & BIT3) == 0)\n\t\t{\t// left or right\n\t\t\tif ((tmp & BIT1) == 0)\n\t\t\t{\t// right\n\t\t\t\tif ((tmp & BIT7) == 0)\n\t\t\t\t{\n\t\t\t\t\tif ((tmp & BIT0) == 0)\n\t\t\t\t\t\t*px += dx ;\t// move right\n\t\t\t\t\tif (*px <= mr)\n\t\t\t\t\t\tbreak ;\t\t// all done\n\t\t\t\t}\n\t\t\t\tif (scroln && ((al & 9) == 8))\n\t\t\t\t\tscroln -= 1 ;\n\t\t\t\tif ((al & 0x07) == 6)\n\t\t\t\t\tmr = ml + ((mr - ml) / dx) * dx ;\n\t\t\t\tif ((ah & (BIT0 + BIT6)) != 0)\n\t\t\t\t\tbreak ;\n\t\t\t\tif (al & 8)\n\t\t\t\t{\t// redgey\n\t\t\t\t\tif (al & 0xA0)\n\t\t\t\t\t{\n\t\t\t\t\t\t*px = ml ;\n\t\t\t\t\t\tbreak ;\n\t\t\t\t\t}\n\t\t\t\t\tif ((al & 0x50) == 0x40)\n\t\t\t\t\t\tbreak ;\n\t\t\t\t\tif (scrolp (al, 2)) *px -= dx ;\t// undo move\n\t\t\t\t\tbreak ;\n\t\t\t\t}\n\t\t\t\t*px = ml ;\n\t\t\t\tif (al >= 0xC0)\n\t\t\t\t\tbreak ;\n\t\t\t}\n\t\t\telse\n\t\t\t{\t// left\n\t\t\t\tif ((tmp & BIT7) == 0)\n\t\t\t\t{\n\t\t\t\t\tif ((tmp & BIT0) == 0)\n\t\t\t\t\t\t*px -= dx ;\t// move left\n\t\t\t\t\tif (*px >= ml)\n\t\t\t\t\t\tbreak ;\t\t// all done\n\t\t\t\t}\n\t\t\t\tif (scroln && ((al & 9) == 8))\n\t\t\t\t\tscroln -= 1 ;\n\t\t\t\tif ((al & 0x07) == 6)\n\t\t\t\t\tml = mr + ((ml - mr) / dx) * dx ;\n\t\t\t\tif ((ah & (BIT0 + BIT6)) != 0)\n\t\t\t\t\tbreak ;\n\t\t\t\tif (al & 8)\n\t\t\t\t{\t// ledgey\n\t\t\t\t\tif (al & 0xA0)\n\t\t\t\t\t{\n\t\t\t\t\t\t*px = mr ;\n\t\t\t\t\t\tbreak ;\n\t\t\t\t\t}\n\t\t\t\t\tif ((al & 0x50) == 0x40)\n\t\t\t\t\t\tbreak ;\n\t\t\t\t\tif (scrolp (al, 0)) *px += dx ;\t// undo move\n\t\t\t\t\tbreak ;\n\t\t\t\t}\n\t\t\t\t*px = mr ;\n\t\t\t\tif (al >= 0xC0)\n\t\t\t\t\tbreak ;\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\t// up or down\n\t\t\tif ((tmp & BIT2) == 0)\n\t\t\t{\t// down\n\t\t\t\tif ((tmp & BIT7) == 0)\n\t\t\t\t{\n\t\t\t\t\tif ((tmp & BIT0) == 0)\n\t\t\t\t\t\t*py += dy ;\t// move down\n\t\t\t\t\tif (*py <= mb)\n\t\t\t\t\t\tbreak ;\t\t// all done\n\t\t\t\t}\n\t\t\t\tif (scroln && ((al & 9) == 8))\n\t\t\t\t\tscroln -= 1 ;\n\t\t\t\tif ((al & 0x07) == 6)\n\t\t\t\t\tmb = mt + ((mb - mt) / dy) * dy ;\n\t\t\t\tif ((ah & (BIT0 + BIT6)) != 0)\n\t\t\t\t\tbreak ;\n\t\t\t\tif (al & 8)\n\t\t\t\t{\t// bedgey\n\t\t\t\t\tif (al & 0xA0)\n\t\t\t\t\t{\n\t\t\t\t\t\t*py = mt ;\n\t\t\t\t\t\tbreak ;\n\t\t\t\t\t}\n\t\t\t\t\tif ((al & 0x50) == 0x40)\n\t\t\t\t\t\tbreak ;\n\t\t\t\t\tif (scrolp (al, 3)) *py -= dy ;\t// undo move\n\t\t\t\t\tbreak ;\n\t\t\t\t}\n\t\t\t\t*py = mt ;\n\t\t\t\tif (al >= 0xC0)\n\t\t\t\t\tbreak ;\n\t\t\t}\n\t\t\telse\n\t\t\t{\t// up\n\t\t\t\tif ((tmp & BIT7) == 0)\n\t\t\t\t{\n\t\t\t\t\tif ((tmp & BIT0) == 0)\n\t\t\t\t\t\t*py -= dy ;\t// move up\n\t\t\t\t\tif (*py >= mt)\n\t\t\t\t\t\tbreak ;\t\t// all done\n\t\t\t\t}\n\t\t\t\tif (scroln && ((al & 9) == 8))\n\t\t\t\t\tscroln -= 1 ;\n\t\t\t\tif ((al & 0x07) == 6)\n\t\t\t\t\tmt = mb + ((mt - mb) / dy) * dy ;\n\t\t\t\tif ((ah & (BIT0 + BIT6)) != 0)\n\t\t\t\t\tbreak ;\n\t\t\t\tif (al & 8)\n\t\t\t\t{\t// tedgey\n\t\t\t\t\tif (al & 0xA0)\n\t\t\t\t\t{\n\t\t\t\t\t\t*py = mb ;\n\t\t\t\t\t\tbreak ;\n\t\t\t\t\t}\n\t\t\tif ((al & 0x50) == 0x40)\n\t\t\t\t\t\tbreak ;\n\t\t\t\t\tif (scrolp (al, 1)) *py += dy ;\t// undo move\n\t\t\t\t\tbreak ;\n\t\t\t\t}\n\t\t\t\t*py = mb ;\n\t\t\t\tif (al >= 0xC0)\n\t\t\t\t\tbreak ;\n\t\t\t}\n\t\t}\n\t\tal = ((al ^ BIT3) & ~BIT0) ;\t// secondary action\n\t}\n}\n\n//Move cursor, with wrap (taking account of VDU 23,16 mode):\nstatic void mcsr (char code)\n{\n\tcmove (code, charx, chary, &textx, &texty, 0, 0, sizex, sizey) ;\n}\n\nstatic short getch (int x, int y)\n{\n\tshort *pc ; // pointer to character in character map\n\tshort *sl ; // pointer to start of line in character map\n\tint nc ;    // total number of (wide) characters per line\n\tint oc ;    // (wide) character offset from start of line\n\tshort ch ;\n\n\tp2c (x, y, &pc, &sl, &nc, &oc) ;\n\tch = *pc ;\n\tif (modeno == 7)\n\t{\n\t\tswitch (ch)\n\t\t{\n\t\tcase 0x23:\n\t\t\tch = 0x60 ;\n\t\t\tbreak ;\n\t\tcase 0x60:\n\t\t\tch = 0x5F ;\n\t\t\tbreak ;\n\t\tcase 0x5F:\n\t\t\tch = 0x23 ;\n\t\t}\n\t}\n\treturn ch ;\n}\n\n/*****************************************************************\\\n*       Text output support functions                             *\n\\*****************************************************************/\n\n// Outout a proportional-spaced character to the screen.\nvoid charttf(unsigned short ax, int col, SDL_Rect rect)\n{\n\tSDL_Texture *tex = TTFcache[ax] ;\n\tif (tex == NULL)\n\t{\n\t\tSDL_Surface *surf ;\n\t\tSDL_Color white = {0xFF, 0xFF, 0xFF, 0xFF} ;\n\t\tUint16 wchar[2] = {ax, 0} ;\n\t\tsurf = TTF_RenderUNICODE_Blended (hfont, wchar, white) ;\n\t\ttex = SDL_CreateTextureFromSurface (memhdc, surf) ;\n\t\tSDL_FreeSurface (surf) ;\n\t\tTTFcache[ax] = tex ;\n\t}\n\tSDL_SetTextureColorMod (tex, col & 0xFF, (col >> 8) & 0xFF, (col >> 16) & 0xFF) ;\n\tSDL_QueryTexture (tex, NULL, NULL, &rect.w, &rect.h) ;\n\tSDL_RenderCopy (memhdc, tex, NULL, &rect) ;\n}\n\n// Output a character to the screen.\nstatic void charout(unsigned short ax, unsigned char fg, unsigned char bg,\n                    int cx, int cy, int dx)\n{\n\tSDL_Rect rect = {cx, cy, dx, chary} ;\n\tint col = 0xFFFFFFFF ;\n\n\tif (fg != 0xFF)\n\t\tcol = palette [(int) fg] ;\n\n\tif (bg != 0xFF)\n\t{\n\t\tsetcol (bg) ;\n\t\tSDL_RenderFillRect (memhdc, &rect) ;\n\t}\n\n\tif ((vflags & UFONT) && ((ax >= 0x100) || (usrchr[ax] == 0)))\n\t\tcharttf (ax, col, rect) ;\n\telse\n\t\tcharacterColor (memhdc, cx, cy, ax, col) ;\n\treturn ;\n}\n\n// Output a character with a logical plotting mode\nstatic void charout_logic (short ax, short fg, int cx, int cy, int dx)\n{\n\tint pitch ;\n\tint *p ;\n\tunsigned char rop = fg & 7, col = fg >> 8 ;\n\tif (glLogicOpBBC)\n\t    {\n\t\tint c, x, y ;\n\t\tSDL_Rect rect = {0, 0, dx, chary} ;\n\t\tSDL_Texture *tex = SDL_GetRenderTarget (memhdc) ;\n\t\tSDL_Texture *src = SDL_CreateTexture (memhdc, SDL_PIXELFORMAT_ABGR8888,\n\t\t\t\tSDL_TEXTUREACCESS_STREAMING, dx, chary) ;\n\t\tSDL_SetRenderTarget (memhdc, NULL) ;\n\t\tSDL_SetRenderDrawColor (memhdc, 0, 0, 0, 0xFF) ;\n\t\tSDL_RenderFillRect (memhdc, &rect) ;\n\t\tcharout (ax, 0xFF, 0xFF, 0, 0, dx) ;\n\t\tSDL_LockTexture (src, NULL, (void **) &p, &pitch) ;\n\t\tSDL_RenderReadPixels (memhdc, &rect, SDL_PIXELFORMAT_ABGR8888, p, pitch) ;\n\t\tSDL_SetRenderTarget (memhdc, tex) ;\n\t\tBBC_RenderSetClipRect (memhdc, hrect) ;\n\t\t\tif (SDL_RenderFlushBBC) SDL_RenderFlushBBC (memhdc) ;\n\t\tglEnableBBC (GL_COLOR_LOGIC_OP) ;\n\t\tglLogicOpBBC (logicop[rop]) ;\n\t\tsetcol (col) ;\n\t\tfor (y = cy; y < (cy + chary); y++)\n\t\t\tfor (x = cx; x < (cx + dx); x++)\n\t\t\t    {\n\t\t\t\tc = *p++ ;\n\t\t\t\tif (c & 0x8000)\n\t\t\t\t\tSDL_RenderDrawPoint(memhdc, x, y) ;\n\t\t\t    }\n\t\tif (SDL_RenderFlushBBC) SDL_RenderFlushBBC (memhdc) ;\n\t\tglDisableBBC (GL_COLOR_LOGIC_OP) ;\n\t\tSDL_UnlockTexture (src) ;\n\t\tSDL_DestroyTexture (src) ;\n\t    }\n\telse\n\t    {\n\t\tSDL_Rect rect = {cx, cy, dx, chary} ;\n\t\tSDL_Texture *tex = SDL_CreateTexture (memhdc, SDL_PIXELFORMAT_ABGR8888,\n\t\t\t\tSDL_TEXTUREACCESS_STREAMING, dx, chary) ;\n\t\tSDL_LockTexture (tex, NULL, (void **) &p, &pitch) ;\n\t\tSDL_RenderReadPixels (memhdc, &rect, SDL_PIXELFORMAT_ABGR8888, p, pitch) ;\n\t\tSDL_UnlockTexture (tex) ;\n\t\tSDL_SetTextureBlendMode (tex, blendop[rop]) ;\n\t\tif ((rop == 2) || (rop == 6))\n\t\t\tSDL_SetRenderDrawColor (memhdc, 0xFF, 0xFF, 0xFF, 0xFF) ;\n\t\telse\n\t\t\tSDL_SetRenderDrawColor (memhdc, 0, 0, 0, 0xFF) ;\n\t\tBBC_RenderSetClipRect (memhdc, hrect) ;\n\t\tSDL_RenderFillRect (memhdc, &rect) ;\n\t\tif (rop == 3) { palette[255] = rgbsra7 (palette[col]) ; col = 255; }\n\t\tif (rop == 4) { palette[255] = 0xFFFFFFFF ; col = 255 ; }\n\t\tif (rop >= 6) { palette[255] = palette[col] ^ 0xFFFFFF; col = 255; }\n\t\tcharout (ax, col, 0xFF, cx, cy, dx) ;\n\t\tSDL_RenderCopy (memhdc, tex, NULL, &rect) ;\n\t\tSDL_DestroyTexture (tex) ;\n\t    }\n}\n\n// (variable pitch)\nstatic void vmove (char code, int dx, int dy)\n{\n\tif (vflags & HRGFLG)\n\t{\n\t\tint l, r, t, b ;\n\t\tgrawin (&l, &r, &t, &b) ;\n\t\tcmove (code | BIT5, dx, dy, &lastx, &lasty, l, t, r, b) ;\n\t\t*((unsigned char*)&pixelx + 3) = 0 ;\n\t\t*((unsigned char*)&pixely + 3) = 0 ;\n\t}\n\telse\n\t\tcmove (code, dx, dy, &textx, &texty, textwl, textwt, textwr, textwb) ;\n}\n\n// (fixed pitch)\nstatic void fmove (char code)\n{\n\tvmove (code, charx, chary) ;\n}\n\n// action pending scroll/CRLF\nstatic void unpend (void)\n{\n\tif (cmcflg & BIT0)\n\t\tfmove (1) ;\n\tfmove (9) ;\n}\n\n// Home text cursor:\nstatic void home (void)\n{\n\tscroln &= 0x80 ;\n\tcmove (0x80, charx, chary, &textx, &texty, textwl, textwt, textwr, textwb) ;\n}\n\n// Display character as text (VDU 4):\nstatic void send (short ch)\n{\n\tshort *pc ; // pointer to character in character map\n\tshort *sl ; // pointer to start of line in character map\n\tint nc ;    // total number of (wide) characters per line\n\tint oc ;    // (wide) character offset from start of line\n\tint dx ;    // character width\n\n\tunpend () ;\n\tp2c (textx, texty, &pc, &sl, &nc, &oc) ;\n\tif (modeno == 7)\n\t{\n\t\tsend7 (ch, pc, sl, texty) ;\n\t\tfmove (0x40) ;\n\t}\n\telse\n\t{\n\t\t*pc = ch ;              // store character in chrmap\n\t\tdx = charx ;\t\t// width (in case not ufont)\n\t\tif (vflags & UFONT)\n\t\t{\n\t\t\tint sp ;\n\t\t\tUint16 tmp[3] = {ch, 0x20, 0} ;\n\t\t\tTTF_SizeUNICODE (hfont, tmp, &dx, NULL) ;\n\t\t\tTTF_SizeUNICODE (hfont, tmp + 1, &sp, NULL) ;\n\t\t\tdx = dx - sp + tweak ;\n\t\t}\n\n\t\tif (cmcflg & BIT1)\t// direction\n\t\t\tcharout(ch, txtfor, txtbak, textx+charx-dx, texty, dx) ;\n\t\telse\n\t\t\tcharout(ch, txtfor, txtbak, textx, texty, dx) ;\n\n\t\tbChanged = 1 ;\n\n\t\tvmove (0x40, dx, chary) ;\n\t}\n}\n\n// Display character as graphics (VDU 5):\nstatic void sendg (short ch)\n{\n\tint dx = charx ;    // character width (default if not ufont)\n\n\tif (vflags & UFONT)\n\t{\n\t\tint sp ;\n\t\tUint16 tmp[3] = {ch, 0x20, 0} ;\n\t\tTTF_SizeUNICODE (hfont, tmp, &dx, NULL) ;\n\t\tTTF_SizeUNICODE (hfont, tmp + 1, &sp, NULL) ;\n\t\tdx = dx - sp + tweak ;\n\t}\n\n\tif (ch == 0x20)\n\t    {\n\t\tvmove (0x40, dx, chary) ;\n\t\treturn ;\n\t    }\n\n\tif ((lastx >= 0) && (lastx < XSCREEN) && (lasty >= 0) && (lasty < YSCREEN))\n\t{\n\t\tshort *pc ; // pointer to character in character map\n\t\tshort *sl ; // pointer to start of line in character map\n\t\tint nc ;    // total number of (wide) characters per line\n\t\tint oc ;    // (wide) character offset from start of line\n\t\tp2c (lastx, lasty, &pc, &sl, &nc, &oc) ;\n\t\t*pc = ch ;\n\t}\n\n\tif (forgnd & 0xFF)\n\t{\n\t\tif (cmcflg & BIT1)\t\t// direction\n\t\t\tcharout_logic(ch, forgnd, lastx+charx-dx, lasty, dx) ;\n\t\telse\n\t\t\tcharout_logic(ch, forgnd, lastx, lasty, dx) ;\n\t}\n\telse\n\t{\n\t\tBBC_RenderSetClipRect (memhdc, hrect) ;\n\t\tif (cmcflg & BIT1)\t\t// direction\n\t\t\tcharout(ch, forgnd >> 8, 0xFF, lastx+charx-dx, lasty, dx) ;\n\t\telse\n\t\t\tcharout(ch, forgnd >> 8, 0xFF, lastx, lasty, dx) ;\n\t}\n\n\tSDL_RenderSetClipRect (memhdc, NULL) ;\n\tbChanged = 1 ;\n\n\tvmove (0x40, dx, chary) ;\n}\n\nstatic void vducurs (void)\n{\n\tcursa &= BIT5 + BIT6 ;\t\t// Leave 'disabled' bits\n\tif ((vflags & IOFLAG) == 0)\t// Insert or overtype ?\n\t\tcursa |= cursb - 2 ;\n}\n\nstatic void iniwin (void)\n{\n\ttextx = 0 ;\t\t\t// text caret position\n\ttexty = 0 ;\n\ttextwl = 0 ;\t\t\t// text viewport\n\ttextwr = sizex ;\n\ttextwt = 0 ;\n\ttextwb = sizey ;\n\torigx = 0 ;\t\t\t// graphics origin\n\torigy = 0 ;\n\tlastx = 0 ;\t\t\t// graphics position bottom-left\n\tlasty = sizey - 1 ;\n\tprevx = 0 ;\t\t\t// graphics position bottom-left\n\tprevy = sizey - 1 ;\n\threct = NULL ;\n\thome () ;\n}\n\nstatic void minit (signed char bc)\n{\n\tshort *p ;\n\n\tif (bc < 0)\n\t    {\n\t\tforgnd = 0 ;\n\t\ttxtfor = 0 ;\n\t\tbakgnd = colmsk << 8 ;\n\t\ttxtbak = colmsk ;\n\t\tpalette[(int) colmsk] = 0xFFFFFFFF ;\n\t    }\n\n\tvflags &= ~UFONT ;\n\tvflags &= ~HRGFLG ;\t// VDU 4\n\tcursa &= ~(BIT5 | BIT6) ;\n\tvducurs () ;\t\t// Set cursor shape (after VDU 4)\n        iniwin () ;\t\t// Initialise viewports\n\tscroln = 0 ;\t\t// Paging off\n\ttweak = 0 ;\t\t// No character spacing adjustment\n\tsetcol (txtbak) ;\n\n\t// Clear ALL character map:\n\tfor (p = chrmap; p < chrmap + ((XSCREEN + 7) >> 3) * ((YSCREEN + 7) >> 3); p++)\n\t\t*p = L' ' ;\n\n\t//SDL_Delay (80) ;\n\tSDL_RenderClear (memhdc) ;\n\tbChanged = 1 ;\n}\n\n// SET graphics plotting mode & colour:\nstatic void gcol (char al, signed char ah)\n{\n\tal &= 7 ;\n\tif (ah >= 0)\n\t\tforgnd = (((ah & colmsk) << 8) | al) ;\n\telse\n\t\tbakgnd = (((ah & colmsk) << 8) | al) ;\n}\n\n// Set default palette and colours:\nstatic void rescol (void)\n{\n\tint i, n = colmsk + 1 ;\n\tunsigned int *p ;\n\tswitch (n)\n\t{\n\tcase 2:\n\t\tp = coltb2 ;\n\t\tbreak ;\n\tcase 4:\n\t\tp = coltb4 ;\n\t\tbreak ;\n\tdefault:\n\t\tp = coltab ;\n\t}\n\tfor (i = 0; i < n; i++)\n\t\tpalette[i] = p[i & (NUMCOLOURS - 1)] ;\n\n\ttxtfor = colmsk & 7 ;\n\ttxtbak = 0 ;\n\tgcol (0, txtfor) ;\n\tgcol (0, 0x80) ;\n}\n\n// Change to a new screen mode:\nstatic void newmode (short wx, short wy, short cx, short cy, short nc, signed char bc) \n{\n\tif (cx < 8) cx = 8 ;\n        if (cy < 8) cy = 8 ;\n\tsizex = wx ;\n\tsizey = wy ;\n\tcharx = cx ;\n\tpixelx = cx >> 3 ;\n\tchary = cy ;\n\tpixely = cy >> 3 ;\n\tcursb = cy ;\n\tcolmsk = nc - 1 ;\n\n#if defined(__ANDROID__) || defined(__IPHONEOS__)\n\t{\n\t\tint w, h, wr, hr ;\n\t\tSDL_GL_GetDrawableSize (hwndProg, &w, &h) ;\n\t\twr = (w << 15) / wx ;\n\t\thr = (h << 15) / wy ;\n\t\tif (wr < hr)\n\t\t\tzoom = wr ;\n\t\telse\n\t\t\tzoom = hr ;\n\t}\n#else\n\t{\n\t\tint x, y ;\n\t\tSDL_Texture *tex = SDL_GetRenderTarget (memhdc) ;\n\t\tSDL_SetRenderTarget (memhdc, NULL) ;\n\t\tSDL_DisplayMode dm ;\n\t\tSDL_SetWindowSize (hwndProg, wx, wy) ;\n\t\tSDL_GetDesktopDisplayMode (0, &dm) ;\n\t\tSDL_GetWindowPosition (hwndProg, &x, &y) ;\n\t\tif ((x < 0) || (y < 0) || ((x + wx) > dm.w) || ((y + wy) > dm.h))\n\t\t    SDL_SetWindowPosition (hwndProg, (dm.w - wx) >> 1, (dm.h - wy) >> 1) ;\n\t\tSDL_SetRenderTarget (memhdc, tex) ;\n\t}\n#endif\n\n\t// Set font\n\tif ((modeno == 7) || ((modeno == -1) && (cx >= 16) && (cy >= 20) && ((bc & 1) == 0)))\n\t{\n\t\tgfxPrimitivesSetFont (ttxtfont, 16, 20) ;\n\t\tgfxPrimitivesSetFontZoom (cx / 16,  cy / 20) ;\n\t\tif (modeno == 7)\n\t\t    {\n\t\t\tint i ;\n\t\t\tfor (i = 0; i < 12; i++)\n\t\t\t\tRedefineChar (memhdc, frigo[i],\n\t\t\t\t\t(unsigned char *) &ttxtfont[frign[i] * 20], 16, 20) ;\n\t\t    }\n\t}\n\telse\n\t{\n\t\tgfxPrimitivesSetFont (bbcfont, 8, 8) ;\n\t\tgfxPrimitivesSetFontZoom (cx / 8, cy / 8) ;\n\t}\n\n\tmemset (usrchr, 0, 256) ;\n\trescol () ;\n\tminit (bc) ;\n}\n\n// Initialise VDU system:\nstatic void vduinit (void)\n{\n#ifdef __EMSCRIPTEN__\n\tblendop[3] = SDL_ComposeCustomBlendMode (SDL_BLENDFACTOR_ONE_MINUS_DST_COLOR, \n\t\t\tSDL_BLENDFACTOR_ONE_MINUS_SRC_COLOR, SDL_BLENDOPERATION_ADD, \n\t\t\tSDL_BLENDFACTOR_ZERO, SDL_BLENDFACTOR_ONE, SDL_BLENDOPERATION_ADD) ;\n\tblendop[4] = blendop[3] ;\n\tblendop[5] = SDL_ComposeCustomBlendMode (SDL_BLENDFACTOR_ZERO, \n\t\t\tSDL_BLENDFACTOR_ONE, SDL_BLENDOPERATION_ADD, \n\t\t\tSDL_BLENDFACTOR_ZERO, SDL_BLENDFACTOR_ONE, SDL_BLENDOPERATION_ADD) ;\n#endif\n\thfont = NULL ;\n\tmodeno = -1 ;\n\tcursb = chary ;\n\tcolmsk = 15 ;\n\tpixelx = 1 ;\n\tpixely = 1 ;\n\tlthick = 1 ;\n\tcursx = 0 ;\n\ttweak = 0 ;\n\trescol () ;\n#ifdef __IPHONEOS__\n\tminit (0) ;\n#else\n\tminit (-1) ;\n#endif\n}\n\n// VDU 4\nstatic void qmove (char code)\n{\n\tif (vflags & PTFLAG)\n\t{\n\t\t/// pstart () ;\n\t\t/// pmove (code, prchx, prchy) ;\n\t}\n\tfmove (code) ;\n}\n\n/*****************************************************************\\\n*       Graphics PLOT codes                                       *\n\\*****************************************************************/\n\n//plot - multi-function plotting routine\n//   Inputs: code = plot code (0-95)\n//           xpos = x-coordinate (BASIC units, absolute or relative)\n//           ypos = y-coordinate (BASIC units, absolute or relative)\n//     0 : move relative\n//     1 : draw line relative (foreground)\n//     2 : draw line relative (inverse)\n//     3 : draw line relative (background)\n//   4-7 : as 0-3 but absolute\n//  8-15 : as 0-7 but omit last point\n// 16-31 : as 0-15 but dotted (....)\n// 32-47 : as 0-15 but dashed (----)\n// 48-63 : as 0-15 but broken (.-.-)\n// 64-71 : as 0-7 but plot single 'dot'\n// 72-79 : left & right fill while background\n// 80-87 : plot & fill triangle\n// 88-95 : right only fill until background\n// 96-103: plot & fill axis-aligned rectangle\n//104-111: left & right fill until foreground\n//112-119: plot & fill parallelogram\n//120-127: right only fill while foreground\n//128-135: flood fill while background\n//136-143: flood fill until foreground\n//144-151: draw circle (outline)\n//152-159: draw disc (filled circle)\n//160-167: draw a circular arc\n//168-175: plot & fill a segment\n//176-183: plot & fill a sector\n//185/189: move a rectangular block\n//187/191: copy a rectangular block\n//192-199: draw an outline axis-aligned ellipse\n//200-207: plot & fill a solid axis-aligned ellipse\n//249/253: swap a rectangular block\n//\n// Plot (absolute pixel coordinates, no scaling)\nstatic void plotns (unsigned char al, int cx, int cy)\n{\n\tint style = 0 ;\n\tunsigned char rop = 5, col = 0 ;\n\tint lx, ly, px, py ;\n\tshort vx[4], vy[4] ;\n\tSDL_Rect rect ;\n\n\tswitch (al & 3)\n\t{\n\tcase 1:\t\t// plot in foreground colour\n\t\trop = forgnd & 7 ;\n\t\tcol = forgnd >> 8 ;\n\t\tbreak ;\n\n\tcase 2:\t\t// plot in inverse colour\n\t\trop = 4 ;\n\t\tcol = colmsk ;\n\t\tbreak ;\n\n\tcase 3:\t\t// plot in background colour\n\t\trop = bakgnd & 7 ;\n\t\tcol = bakgnd >> 8 ;\n\t}\n\n\tlx = lastx ;\n\tly = lasty ;\n\tpx = prevx ;\n\tpy = prevy ;\n\n\tprevx = lx ;\n\tprevy = ly ;\n\tlastx = cx ;\n\tlasty = cy ;\n\n\tif ((al & 0xC3) == 0)\n\t    {\n\t\tbChanged = 1 ;\t\t// so moves can't flood event queue\n\t\treturn ;\t\t// just move, don't plot\n\t    }\n\n\tif (rop != 0)\n\t{\n\t\tif (glLogicOpBBC)\n\t\t    {\n\t\t\tif (SDL_RenderFlushBBC) SDL_RenderFlushBBC (memhdc) ;\n\t\t\tglEnableBBC (GL_COLOR_LOGIC_OP) ;\n\t\t\tglLogicOpBBC (logicop[rop]) ;\n\t\t    }\n\t\telse\n\t\t    {\n\t\t\tSDL_SetRenderDrawBlendMode (memhdc, blendop[rop]) ;\n\t\t\tif (rop == 3) { palette[255] = rgbsra7 (palette[col]) ; col = 255; }\n\t\t\tif (rop == 4) { palette[255] = 0xFFFFFFFF ; col = 255 ; }\n\t\t\tif (rop >= 6) { palette[255] = palette[col] ^ 0xFFFFFF; col = 255; }\n\t\t    }\n\t}\n\n\tBBC_RenderSetClipRect (memhdc, hrect) ;\n\n\tswitch (al >> 3)\n\t{\n\tcase 0:\n\tcase 1:\n\tcase 2:\n\tcase 3:\n\tcase 4:\n\tcase 5:\n\tcase 6:\n\tcase 7:\t// PLOT 0-63, draw line\n\t\tswitch (al & 0x30)\n\t\t{\n\t\tcase 0x00:\t// solid\n\t\t\tstyle = 0xFFFFFFFF ;\n\t\t\tbreak ;\n\n\t\tcase 0x10:\t// dotted\n\t\t\tstyle = 0xCCCCCCCC ;\n\t\t\tbreak ;\n\n\t\tcase 0x20:\t// dashed\n\t\t\tstyle = 0xF8F8F8F8 ;\n\t\t\tbreak ;\n\n\t\tcase 0x30:\t// broken\n\t\t\tstyle = 0xFE38FE38 ;\n\t\t}\n\n\t\tif ((lthick > 1) || (style != 0xFFFFFFFF))\n\t\t\tthickLineColorStyle (memhdc, lx, ly, cx, cy, \n\t\t\t\t\t     lthick, palette[(int) col], style) ;\n\t\telse\n\t\t{\n\t\t\tsetcol (col) ;\n\t\t\tif ((lx != cx) || (ly != cy))\n\t\t\t\tSDL_RenderDrawLine (memhdc, lx, ly, cx, cy) ;\n\t\t\telse\n\t\t\t\tal |= BIT3 ;\n\t\t\tif ((al & BIT3) != 0)\n\t\t\t\tSDL_RenderDrawPoint (memhdc, cx, cy) ;\n\t\t}\n\t\tbreak ;\n\n\tcase 8:\t\t// PLOT 64-71, Plot a single 'dot' (size depends on mode)\n\t\trect.x = cx ;\n\t\trect.y = cy ;\n\t\trect.w = pixelx & 0xFFFF ;\n\t\trect.h = pixely & 0xFFFF ;\n\t\tsetcol (col) ;\n\t\tSDL_RenderFillRect(memhdc, &rect) ;\n\t\tbreak ;\n\n\tcase 9:\t\t// PLOT 72-79, Fill left & right while background\n\t\tgrawin (&lx, &px, &ly, &py) ;\n\t\tflooda (col, bakgnd >> 8, cx, cy, lx, px, cy, cy + (pixely & 0xFFFF)) ;\n\t\tbreak ;\n\n\tcase 10:\t// PLOT 80-87, Plot and fill triangle\n\t\tvx[0] = cx ;\n\t\tvy[0] = cy ;\n\t\tvx[1] = lx ;\n\t\tvy[1] = ly ;\n\t\tvx[2] = px ;\n\t\tvy[2] = py ;\n\t\tfilledPolygonColor (memhdc, vx, vy, 3, palette[(int) col]) ;\n\t\tbreak ;\n\n\tcase 11:\t// PLOT 88-95, Fill right until background\n\t\tgrawin (&lx, &px, &ly, &py) ;\n\t\tfloodb (col, bakgnd >> 8, cx, cy, cx, px, cy, cy + (pixely & 0xFFFF)) ;\n\t\tbreak ;\n\n\tcase 12:\t// PLOT 96-103, Plot & fill rectangle\n\t\tvx[0] = lx ;\n\t\tvy[0] = cy ;\n\t\tvx[1] = cx ;\n\t\tvy[1] = cy ;\n\t\tvx[2] = cx ;\n\t\tvy[2] = ly ;\n\t\tvx[3] = lx ;\n\t\tvy[3] = ly ;\n\t\tfilledPolygonColor (memhdc, vx, vy, 4, palette[(int) col]) ;\n\t\tbreak ;\n\n\tcase 13:\t// PLOT 104-111, Fill left & right until foreground\n\t\tgrawin (&lx, &px, &ly, &py) ;\n\t\tfloodb (col, forgnd >> 8, cx, cy, lx, px, cy, cy + (pixely & 0xFFFF)) ;\n\t\tbreak ;\n\n\tcase 14:\t// PLOT 112-119, Plot & fill parallelogram\n\t\tvx[0] = px ;\n\t\tvy[0] = py ;\n\t\tvx[1] = lx ;\n\t\tvy[1] = ly ;\n\t\tvx[2] = cx ;\n\t\tvy[2] = cy ;\n\t\tvx[3] = cx - lx + px ;\n\t\tvy[3] = cy - ly + py ;\n\t\tfilledPolygonColor (memhdc, vx, vy, 4, palette[(int) col]) ;\n\t\tbreak ;\n\n\tcase 15:\t// PLOT 120-127, Fill right while foreground\n\t\tgrawin (&lx, &px, &ly, &py) ;\n\t\tflooda (col, forgnd >> 8, cx, cy, cx, px, cy, cy + (pixely & 0xFFFF)) ;\n\t\tbreak ;\n\n\tcase 16:\t// PLOT 128-135, Flood fill while background\n\t\tgrawin (&lx, &px, &ly, &py) ;\n\t\tflooda (col, bakgnd >> 8, cx, cy, lx, px, ly, py) ;\n\t\tbreak ;\n\n\tcase 17:\t// PLOT 136-143, Flood fill until foreground\n\t\tgrawin (&lx, &px, &ly, &py) ;\n\t\tfloodb (col, forgnd >> 8, cx, cy, lx, px, ly, py) ;\n\t\tbreak ;\n\n\tcase 18:\t// PLOT 144-151, Draw outline circle\n\t\tthickCircleColor (memhdc, lx, ly, radius (lx, ly, cx, cy), palette[(int) col], lthick) ;\n\t\tbreak ;\n\n\tcase 19:\t// PLOT 152-159, Draw filled disc\n\t\tfilledCircleColor (memhdc, lx, ly, radius (lx, ly, cx, cy), palette[(int) col]) ;\n\t\tbreak ;\n\n\tcase 20:\t// PLOT 160-167, Draw circular arc\n\t\tthickArcColor (memhdc, px, py, radius (px, py, lx, ly),\n\t\t\t  arctan (cx-px, cy-py), arctan (lx-px, ly-py), palette[(int) col], lthick) ;\n\t\tbreak ;\n\n\tcase 21:\t// PLOT 168-175, Plot filled segment (NOT CURRENTLY IMPLEMENTED)\n\t\tbreak ;\n\n\tcase 22:\t// PLOT 176-183, Plot filled sector\n\t\tfilledPieColor (memhdc, px, py, radius (px, py, lx, ly),\n\t\t\t\tarctan (cx-px, cy-py), arctan (lx-px, ly-py), palette[(int) col]) ;\n\t\tbreak ;\n\n\tcase 23:\t// PLOT 184-191, Block copy / move\n\t\tif (lx < px)\n\t\t{\n\t\t\tint tmp = lx ;\n\t\t\tlx = px ;\n\t\t\tpx = tmp ;\n\t\t}\n\t\tif (ly < py)\n\t\t{\n\t\t\tint tmp = ly ;\n\t\t\tly = py ;\n\t\t\tpy = tmp ;\n\t\t}\n\t\tif (rop != 0)\n\t\t    {\n\t\t\tif (glLogicOpBBC)\n\t\t\t    {\n\t\t\t\tif (SDL_RenderFlushBBC) SDL_RenderFlushBBC (memhdc) ;\n\t\t\t\tglDisableBBC (GL_COLOR_LOGIC_OP) ;\n\t\t\t    }\n\t\t\telse\n\t\t\t\tSDL_SetRenderDrawBlendMode (memhdc, SDL_BLENDMODE_NONE) ;\n\t\t\trop = 0 ;\n\t\t    }\n\t\tif ((al & BIT1) != 0)\n\t\t\tblit (cx, cy-ly+py, px, py, lx-px+1, ly-py+1, 0) ; // Copy\n\t\telse\n\t\t\tblit (cx, cy-ly+py, px, py, lx-px+1, ly-py+1, (bakgnd >> 8) | 0x80000000) ;\n\t\tbreak ;\n\n\tcase 24:\t// PLOT 192-199, Draw outline ellipse\n\t\tthickEllipseColor (memhdc, px, py, abs(lx - px), abs(cy - py), palette[(int) col], lthick) ;\n\t\tbreak ;\n\n\tcase 25:\t// PLOT 200-207, Plot filled ellipse\n\t\tfilledEllipseColor (memhdc, px, py, abs(lx - px), abs(cy - py),\n\t\t\t\t    palette[(int) col]) ;\n\t\tbreak ;\n\n\tcase 31:\t// PLOT 248-255, Block swap\n\t\tif (lx < px)\n\t\t{\n\t\t\tint tmp = lx ;\n\t\t\tlx = px ;\n\t\t\tpx = tmp ;\n\t\t}\n\t\tif (ly < py)\n\t\t{\n\t\t\tint tmp = ly ;\n\t\t\tly = py ;\n\t\t\tpy = tmp ;\n\t\t}\n\t\tif (rop != 0)\n\t\t    {\n\t\t\tif (glLogicOpBBC)\n\t\t\t    {\n\t\t\t\tif (SDL_RenderFlushBBC) SDL_RenderFlushBBC (memhdc) ;\n\t\t\t\tglDisableBBC (GL_COLOR_LOGIC_OP) ;\n\t\t\t    }\n\t\t\telse\n\t\t\t\tSDL_SetRenderDrawBlendMode (memhdc, SDL_BLENDMODE_NONE) ;\n\t\t\trop = 0 ;\n\t\t    }\n\t\tblit (cx, cy-ly+py, px, py, lx-px+1, ly-py+1, 1) ; // Swap\n\t\tbreak ;\n\t}\n\n\tSDL_RenderSetClipRect (memhdc, NULL) ;\n\tif (rop != 0)\n\t    {\n\t\tif (glLogicOpBBC)\n\t\t    {\n\t\t\tif (SDL_RenderFlushBBC) SDL_RenderFlushBBC (memhdc) ;\n\t\t\tglDisableBBC (GL_COLOR_LOGIC_OP) ;\n\t\t    }\n\t\telse\n\t\t\tSDL_SetRenderDrawBlendMode (memhdc, SDL_BLENDMODE_NONE) ;\n\t    }\n\tbChanged = 1 ;\n}\n\nstatic void plot (unsigned char code, short xs, short ys)\n{\n\tint xpos = xs, ypos = ys ;\n\n\tif (code >= 144)\n\t    {\n\t\t*((unsigned char*)&pixelx + 3) = 0 ;\n\t\t*((unsigned char*)&pixely + 3) = 0 ;\n\t    }\n\n\tif ((code & BIT2) != 0)\n\t    {\n\t\txpos += origx ;\n\t\typos += origy ;\n\t\t*((unsigned char*)&pixelx + 3) = xpos & 1 ;\n\t\t*((unsigned char*)&pixely + 3) = ypos & 1 ;\n\t\txpos = xpos >> 1 ;\n\t\typos = sizey - 1 - (ypos >> 1) ;\n\t    }\n\telse\n\t    {\n\t\txpos += *((unsigned char*)&pixelx + 3) ;\n\t\typos += *((unsigned char*)&pixely + 3) ;\n\t\t*((unsigned char*)&pixelx + 3) = xpos & 1 ;\n\t\t*((unsigned char*)&pixely + 3) = ypos & 1 ;\n\t\txpos = lastx + (xpos >> 1) ;\n\t\typos = lasty - (ypos >> 1) ;\n\t    }\n\tplotns (code, xpos, ypos) ;\n}\n\n//VDU 16 - CLG\nstatic void clg (void)\n{\n\tif (modeno != 7)\n\t{\n\t\tint l, r, t, b ;\n\t\tunsigned char rop = bakgnd & 7, col = bakgnd >> 8 ;\n\t\tgrawin (&l, &r, &t, &b) ;\n\t\tif (rop != 0)\n\t\t    {\n\t\t\tshort vx[4], vy[4] ;\n\t\t\tvx[0] = l ;\n\t\t\tvy[0] = t ;\n\t\t\tvx[1] = r - 1 ;\n\t\t\tvy[1] = t ;\n\t\t\tvx[2] = r - 1 ;\n\t\t\tvy[2] = b - 1 ;\n\t\t\tvx[3] = l ;\n\t\t\tvy[3] = b - 1 ;\n\n\t\t\tif (glLogicOpBBC)\n\t\t\t    {\n\t\t\t\tif (SDL_RenderFlushBBC) SDL_RenderFlushBBC (memhdc) ;\n\t\t\t\tglEnableBBC (GL_COLOR_LOGIC_OP) ;\n\t\t\t\tglLogicOpBBC (logicop[rop]) ;\n\t\t\t    }\n\t\t\telse\n\t\t\t    {\n\t\t\t\tSDL_SetRenderDrawBlendMode (memhdc, blendop[rop]) ;\n\t\t\t\tif (rop == 3) { palette[255] = rgbsra7 (palette[col]) ; col = 255; }\n\t\t\t\tif (rop == 4) { palette[255] = 0xFFFFFFFF ; col = 255 ; }\n\t\t\t\tif (rop >= 6) { palette[255] = palette[col] ^ 0xFFFFFF; col = 255; }\n\t\t\t    }\n\t\t\tfilledPolygonColor (memhdc, vx, vy, 4, palette[(int) col]) ;\n\t\t\tif (glLogicOpBBC)\n\t\t\t    {\n\t\t\t\tif (SDL_RenderFlushBBC) SDL_RenderFlushBBC (memhdc) ;\n\t\t\t\tglDisableBBC (GL_COLOR_LOGIC_OP) ;\n\t\t\t    }\n\t\t\telse\n\t\t\t\tSDL_SetRenderDrawBlendMode (memhdc, SDL_BLENDMODE_NONE) ;\n\t\t    }\n\t\telse\n\t\t    {\n\t\t\tSDL_Rect rect = {l, t, r - l, b - t} ;\n\t\t\tsetcol (bakgnd >> 8) ;\n\t\t\tSDL_RenderFillRect (memhdc, &rect) ; // n.b. Android needs SDL patch\n\t\t    }\n\t\tbChanged = 1 ;\n\t}\n}\n\n//VDU 17 - COLOUR - Set text fgnd + backgnd colour\nstatic void colour (signed char al)\n{\n\tif (al >= 0)\n\t\ttxtfor = al & colmsk ;\n\telse\n\t\ttxtbak = al & colmsk ;\n}\n\n//VDU 19, l, p, 0, 0, 0 - SET PHYSICAL COLOUR\n//VDU 19, l,-1, r, g, b (rgb: 6-bits)\n//VDU 19, l,16, R, G, B (RGB: 8-bits)\n//VDU 19, l+128, A, R, G, B\nstatic void setpal (unsigned char n, signed char m, unsigned char r, unsigned char g, unsigned char b)\n{\n\tif (n > 127)\n\t\tpalette[(int) (n & 0x7F)] = (m << 24) | (b << 16) | (g << 8) | r ;\n\telse switch (m)\n\t{\n\tcase 16:\n\t\tpalette[(int) n] = 0xFF000000 | (b << 16) | (g << 8) | r ;\n\t\tbreak ;\n\n\tcase -1:\n\t\tpalette[(int) n] = 0xFF000000 | (b << 18) | (g << 10) | (r << 2) ;\n\t\tbreak ;\n\n\tdefault:\n\t\tpalette[(int) n] = (coltab[m & 15] & 0xFFE0F0F0) |\n\t\t\t     ((n & 1) << 3) | ((n & 2) << 10) | ((n & 12) << 17) ;\n\t}\n}\n\n//VDU 22,n - MODE n\nstatic void modechg (char al) \n{\n\tshort wx, wy, cx, cy, nc ;\n\n\tal &= 0x7F ;\n\tif (al >= NUMMODES)\n\t\treturn ;\n\n\tif ((al < 16) && ((vflags & CGAFLG) != 0))\n\t{\n\t\tif ((vflags & EGAFLG) != 0)\n\t\t\tal |= BIT3 ;\n\t\tal = xmodes[(int) al] ;\t// translate mode for CGA/EGA\n\t}\n\n\tmodeno = al ;\t\t// MODE number\n\twx = modetab[(int) al][0] ;\t// width\n\twy = modetab[(int) al][1] ;\t// height\n\tcx = modetab[(int) al][2] ;\t// charx\n\tcy = modetab[(int) al][3] ;\t// chary\n\tnc = modetab[(int) al][4] ;\t// no. of colours\n\tnewmode (wx, wy, cx, cy, nc, vflags & (CGAFLG + EGAFLG)) ;\n}\n\n//VDU 23, n, a, b, c, d, e, f, g, h - DEFINE CHARACTER (etc.)\nstatic void defchr (unsigned char n, unsigned char a, unsigned char b,\n\t\t    unsigned char c, unsigned char d, unsigned char e,\n\t\t    unsigned char f, unsigned char g, unsigned char h)\n{\n\tswitch (n)\n\t{\n\tcase 0:\t\t// cursor shape\n\t\tswitch (a)\n\t\t{\n\t\tcase 10:\n\t\t\tcursa = b ;\n\t\t\tbreak ;\n\t\tcase 11:\n\t\t\tcursb = b;\n\t\t\tbreak ;\n\t\tcase 18:\n\t\t\tcursx = b;\n\t\t}\n\t\tbreak ;\n\n\tcase 1:\t\t// cursor on/off\n\t\tswitch (a)\n\t\t{\n\t\tcase 0:\n\t\t\tcursa |= BIT5 ;\n\t\t\tbreak ;\n\t\tcase 1:\n\t\t\tcursa &= ~BIT5 ;\n\t\t\tbreak ;\n\t\tcase 128:\n\t\t\tcursa |= BIT7 ;\n\t\t\tbreak ;\n\t\tcase 129:\n\t\t\tcursa &= ~BIT7 ;\n\t\t}\n\t\tbreak ;\n\n\tcase 7:\t\t// text scroll\n\t\tscroll (xscrol[b & 3], a) ;\n\t\tbreak ;\n\n\tcase 16:\t// caret movement control\n\t\tcmcflg = (cmcflg & b) ^ a ;\n\t\tbreak ;\n\n\tcase 18:\t// teletext extensions\n\t\tif (a == 3)\n\t\t    {\n\t\t\tif (b)\n\t\t\t\tvflags |= EGAFLG ;\n\t\t\telse \n\t\t\t\tvflags &= ~EGAFLG ;\n\t\t\tif (modeno == 7)\n\t\t\t\tpage7 () ;\n\t\t    }\n\t\tbreak ;\n\n\tcase 22:\t// user-defined mode\n\t\tmodeno = -1 ;\n\t\tnewmode (a + 256*b, c + 256*d, e, f, g, h) ;\n\t\tif (h & 8)\n\t\t\tvflags |= UTF8 ;\n\t\telse\n\t\t\tvflags &= ~UTF8 ;\n\t\tbreak ;\n\n\tcase 23:\t// line thickness\n\t\tlthick = a ;\n\t\tbreak ;\n\n\tcase 24:\t// character spacing adjustment\n\t\ttweak = (signed char) a ;\n\t\tbreak ;\n\n\tcase 31:\t// initialise VDU system\n\t\tvduinit () ;\n\t\tbreak ;\n\n\tdefault:\t// redefine character\n\t\tif (n >= 32)\n\t\t{\n\t\t\tunsigned char pattern[8] ;\n\t\t\tpattern[0] = a ;\n\t\t\tpattern[1] = b ;\n\t\t\tpattern[2] = c ;\n\t\t\tpattern[3] = d ;\n\t\t\tpattern[4] = e ;\n\t\t\tpattern[5] = f ;\n\t\t\tpattern[6] = g ;\n\t\t\tpattern[7] = h ;\n\t\t\tRedefineChar (memhdc, n, pattern, 8, 8) ;\n\t\t\tusrchr[n] = 1 ;\n\t\t}\n\t}\n}\n\n//VDU 24,lx;by;rx;ty; - SET GRAPHICS VIEWPORT\nstatic void gwind (short sl, short sb, short sr, short st)\n{\n\tint left = sl, top = st, right = sr, bottom = sb ;\n\tascale (&right, &bottom) ;\n\tascale (&left, &top) ;\n\tright += 1 ;\t\t\t// right outside\n\tbottom += 1 ;\t\t\t// bottom outside\n\tif ((left < 0) | (right <= left) | (top < 0) | (bottom <= top))\n\t\treturn ;\n\tClipRect.x = left ;\n\tClipRect.y = top ;\n\tClipRect.w = right - left ;\n\tClipRect.h = bottom - top ;\n\threct = &ClipRect ;\n}\n\n//VDU 26 - reset viewports and home cursor\nstatic void reswin (void)\n{\n\tint w = 0, h = 0 ;\n\tSDL_GL_GetDrawableSize (hwndProg, &w, &h) ;\n\tif ((w != 0) && (h != 0))\n\t    {\n\t\tSDL_Texture *tex = SDL_GetRenderTarget (memhdc) ;\n\t\tif (tex)\n\t\t    {\n\t\t\tSDL_SetRenderTarget (memhdc, NULL) ;\n\t\t\tSDL_SetWindowSize (hwndProg, w, h) ;\n\t\t\tSDL_SetRenderTarget (memhdc, tex) ;\n\t\t    }\n\t    }\n\tsizex = w ;\n\tsizey = h ;\n\tzoom = 0x8000 ;\n\tpanx = 0 ;\n\tpany = 0 ;\n\tiniwin () ;\n}\n\n//VDU 28,lx,by,rx,ty - SET TEXT VIEWPORT\nstatic void twind (unsigned char lx, unsigned char by, unsigned char rx, unsigned char ty)\n{\n\tint l, r, t, b ;\n\tl = lx * charx ;\n\tr = (rx + 1) * charx ;\n\tt = ty * chary ;\n\tb = (by + 1) * chary ;\n\n\tif ((l < 0) | (r <= l) | (r > XSCREEN) | (t < 0) | (b <= t) | (b > YSCREEN))\n\t\treturn ;\n\n\ttextwl = l ;\n\ttextwt = t ;\n\ttextwr = r ;\n\ttextwb = b ;\n\n\tif ((textx < l) | (textx >= r) | (texty < t) | (texty >= b))\n\t\thome () ;\n}\n\n//VDU 29,x;y; - SET GRAPHICS ORIGIN\nstatic void origin (short x, short y)\n{\n\torigx = x ;\n\torigy = y ;\n}\n\n//VDU 31,x,y - POSITION CURSOR\n//Co-ords are relative to text viewport\nstatic void tabxy(unsigned char x, unsigned char y)\n{\n\tint px = x ;\n\tint py = y ;\n\tif (xy2p (&px, &py))\n\t{\n\t\ttextx = px ;\n\t\ttexty = py ;\n\t}\n}\n\n/*****************************************************************\\\n*       VDU codes                                                 *\n\\*****************************************************************/\n\n// Execute a VDU command:\n//          0  ^\n// queue->  0  | ev.user.code\n//          V  | (eax)\n//          h  v\n//          g  ^\n//          f  | ev.user.data1\n//          e  | (ecx)\n//          d  v\n//          c  ^\n//          b  | ev.user.data2\n//          a  | (edx)\n//          n  v\n\nvoid xeqvdu_ (int data2, int data1, int code)\n{\n\tint vdu = code >> 8 ;\n\n\tif ((vflags & VDUDIS) && (vdu != 1) && (vdu != 6))\n\t  psend (vdu) ;\n\telse\n\t  switch (vdu)\n\t{\n\t\tcase 1: // PRINT NEXT BYTE\n\t\t  // prtnxt (code & 0xFF) ;\n\t\t  break ;\n\n\t\tcase 2: // PRINTER ON\n\t\t  vflags |= PTFLAG ;\n\t\t  break ;\n\n\t\tcase 3: // PRINTER OFF\n\t\t  vflags &= ~PTFLAG ;\n\t\t  break ;\n\n\t\tcase 4: // LO-RES TEXT\n\t\t  vflags &= ~HRGFLG ;\n\t\t  cursa &= ~BIT6 ;\n\t\t  break ;\n\n\t\tcase 5: // HI-RES TEXT\n\t\t  if (modeno == 7)\n\t\t    cursa &= ~BIT6 ;\n\t\t  else\n\t\t    {\n\t\t      vflags |= HRGFLG ;\n\t\t      cursa |= BIT6 ;\n\t\t    }\n\t\t  break ;\n\n\t\tcase 6: // ENABLE VDU DRIVERS\n\t\t  vflags &= ~VDUDIS ;\n\t\t  break ;\n\n\t\tcase 7: // BELL\n\t\t  printf (\"\\7\") ;\n\t\t  break ;\n\n\t\tcase 8: // BACKSPACE\n\t\t  qmove (6) ;\n\t\t  break ;\n\n\t\tcase 9: // RIGHT\n\t\t  unpend () ;\n\t\t  qmove (0) ;\n\t\t  break ;\n\n\t\tcase 10: // LINE FEED\n\t\t  qmove (8) ;\n\t\t  break ;\n\n\t\tcase 11: // UP\n\t\t  qmove (14) ;\n\t\t  break ;\n\n\t\tcase 12: // CLEAR SCREEN\n\t\t  home () ;\n\t\t  cls () ;\n\t\t  break ;\n\n\t\tcase 13: // RETURN\n\t\t  qmove (0xC0) ;\n\t\t  break ;\n\n\t\tcase 14: // PAGING ON\n\t\t  scroln = 0x80 ;\n\t\t  break ;\n\n\t\tcase 15: // PAGING OFF\n\t\t  scroln = 0 ;\n\t\t  break ;\n\n\t\tcase 16: // CLG\n\t\t  clg () ;\n\t\t  break ;\n\n\t\tcase 17: // COLOUR n\n\t\t  colour (code & 0xFF) ;\n\t\t  break ;\n\n\t\tcase 18: // GCOL m,n\n\t\t  gcol ((data1 >> 24) & 0xFF, code & 0xFF) ;\n\t\t  break ;\n\n\t\tcase 19: // CHANGE PALETTE\n\t\t  setpal (data1 & 0xFF, (data1 >> 8) & 0xFF,\n\t\t\t  (data1 >> 16) & 0xFF, (data1 >> 24) & 0xFF, code & 0xFF) ;\n\t\t  break ;\n\n\t\tcase 20: // RESET COLOURS\n\t\t  rescol() ;\n\t\t  break ;\n\n\t\tcase 21: // DISABLE VDU DRIVERS\n\t\t  vflags |= VDUDIS ;\n\t\t  break ;\n\n\t\tcase 22: // MODE CHANGE\n\t\t  modechg (code & 0xFF) ;\n\t\t  break ;\n\n\t\tcase 23: // DEFINE CHARACTER ETC.\n\t\t  defchr (data2 & 0xFF, (data2 >> 8) & 0xFF, (data2 >> 16) & 0xFF,\n\t\t\t (data2 >> 24) & 0xFF, data1 & 0xFF, (data1 >> 8) & 0xFF,\n\t\t\t (data1 >> 16) & 0xFF, (data1 >> 24) & 0xFF, code & 0xFF) ;\n\t\t  break ;\n\n\t\tcase 24: // DEFINE GRAPHICS VIEWPORT\n\t\t  gwind ((data2 >> 8) & 0xFFFF,\n\t\t\t((data2 >> 24) & 0xFF) + ((data1 & 0xFF) << 8),\n \t\t\t (data1 >> 8) & 0xFFFF,\n\t\t\t((data1 >> 24) & 0xFF) + ((code & 0xFF) << 8)) ;\n\t\t  break ;\n\n\t\tcase 25: // PLOT\n\t\t  if (modeno != 7)\n\t\t  \tplot (data1 & 0xFF, (data1 >> 8) & 0xFFFF,\n                  \t((data1 >> 24) & 0xFF) + ((code & 0xFF) << 8)) ;\n\t\t  break ;\n\n\t\tcase 26: // RESET VIEWPORTS ETC.\n\t\t  reswin () ;\n\t\t  break ;\n\n\t\tcase 27: // SEND NEXT TO OUTC\n\t\t  if (vflags & HRGFLG)\n\t\t\tsendg (code & 0xFF) ;\n\t\t  else\n\t\t\tsend (code & 0xFF) ;\n\t\t  break ;\n\n\t\tcase 28: // SET TEXT VIEWPORT\n\t\t  twind ((data1 >> 8) & 0xFF, (data1 >> 16) & 0xFF,\n\t\t\t(data1 >> 24) & 0xFF, code & 0xFF) ;\n\t\t  break ;\n\n\t\tcase 29: // SET GRAPHICS ORIGIN\n\t\t  origin ((data1 >> 8) & 0xFFFF,\n\t\t\t ((data1 >> 24) & 0xFF) + ((code & 0xFF) << 8)) ;\n\t\t  break ;\n\n\t\tcase 30: // CURSOR HOME\n\t\t  scroln &= 0x80 ;\n\t\t  qmove (0x80) ;\n\t\t  break ;\n\n\t\tcase 31: // TAB(X,Y)\n\t\t  tabxy ((data1 >> 24) & 0xFF, code & 0xFF) ;\n\t\t  break ;\n\t}\n}\n\n// Get character at specified text coordinates\n// x coordinate = 0x80000000 signifies return character at cursor\nint getchar_ (int x, int y)\n{\n\tif (x == 0x80000000)\n\t\treturn getch (textx, texty) & 0xFFFF ;\n\tif (xy2p (&x, &y))\n\t\treturn getch (x, y) & 0xFFFF ;\n\treturn -1 ;\n}\n\n// Get RGB colour at specified graphics coordinates\nint vtint_ (int x, int y)\n{\n\tint l, r, t, b, p ;\n\tSDL_Rect rect ;\n\n\tascale (&x, &y) ;\n\tgrawin (&l, &r, &t, &b) ;\n\tif ((x < l) || (x >= r) || (y < t) || (y >= b))\n\t\treturn -1 ;\n\n\trect.x = x ;\n\trect.y = y ;\n\trect.w = 1 ;\n\trect.h = 1 ;\n\tBBC_RenderReadPixels (memhdc, &rect, SDL_PIXELFORMAT_ABGR8888, &p, 4) ;\n\treturn (p & 0xFFFFFF) ;\n}\n\n// Get text caret coordinates:\n// x returned in LS 16 bits, y in MS 16 bits\nint getcsr_ (void) \n{\n\tunsigned short x, y ;\n\tif ((cmcflg & BIT1) != 0)\n\t\tx = (textwr - textx) / charx - 1 ;\n\telse\n\t\tx = (textx - textwl) / charx ;\n\tif ((cmcflg & BIT2) != 0)\n\t\ty = (textwb - texty) / chary - 1 ;\n\telse\n\t\ty = (texty - textwt) / chary ;\n\tif ((cmcflg & BIT3) != 0)\n\t\treturn ((x << 16) | y) ;\n\treturn ((y << 16) | x) ;\n}\n\n// Get string width in graphics units:\nint getwid_ (int l, char *s)\n{\n\tif ((vflags & UFONT) == 0)\n\t\treturn (l * charx * 2) ;\n\tif ((vflags & UTF8) != 0)\n\t\tTTF_SizeUTF8 (hfont, s, &l, NULL) ;\n\telse\n\t\tTTF_SizeText (hfont, s, &l, NULL) ;\n\treturn (l * 2) ;\n}\n\n// OPENFONT\nTTF_Font *openfont_ (char *filename, int sizestyle)\n{\n\tSDL_Texture **p ;\n\tif (hfont)\n\t\t{\n\t\t\tTTF_CloseFont (hfont) ;\n\t\t\thfont = NULL ;\n\t\t}\n\n\tfor (p = TTFcache; p < TTFcache + 65536; p++)\n\t\tif (*p != NULL)\n\t\t{\n\t\t\tSDL_DestroyTexture (*p) ;\n\t\t\t*p = NULL ;\n\t\t}\n\n\tvflags &= ~UFONT ;\n\tif ((sizestyle & 0xFFFF) == 0)\t// default font?\n\t{\n\t\tif (modeno == -1)\n\t\t{\n\t\t\tcharx = 8 ;\n\t\t\tchary = 20 ;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tcharx = modetab[(int) modeno][2] ;\n\t\t\tchary = modetab[(int) modeno][3] ;\n\t\t}\n\t}\n\telse\n\t{\n\t\thfont = TTF_OpenFont (filename, sizestyle & 0xFFFF) ;\n\t\tif (hfont)\n\t\t{\n\t\t\tint dx, dy ;\n\t\t\tTTF_SetFontStyle (hfont, sizestyle >> 16) ;\n\t\t\tTTF_SizeText (hfont, \"x\", &dx, &dy) ;\n\t\t\tcharx = dx ;\n\t\t\tchary = dy ;\n\t\t\tcursb = dy ;\n\t\t\tvducurs () ;\n\t\t\tvflags |= UFONT ;\n\t\t}\n\t}\n\treturn hfont ;\n}\n\n// Copy Key support:\nint copkey_ (int *xy, int al)\n{\n\tswitch (al)\n\t{\n\tcase 0:\t\t// swap cursors\n\t\tif (*xy != -1)\n\t\t{\n\t\t\tblob () ;\n\t\t\tswap (xy) ;\n\t\t}\n\t\treturn 0 ;\n\n\tcase COPY_KEY:\n\t\tif (*xy != -1)\n\t\t{\n\t\t\tal = getch (textx, texty) ;\n\t\t\tmcsr (0x20) ;\n\t\t}\n\t\telse\n\t\t{\n\t\t\t*xy = gcsr () ;\n\t\t\tal = 0 ;\n\t\t}\n\t\tbreak ;\n\n\tcase CANCEL_COPY:\n\t\tif (*xy != -1)\n\t\t{\n\t\t\tswap (xy) ;\n\t\t\tblob () ;\n\t\t\t*xy = -1 ;\n\t\t}\n\t\treturn 0 ;\n\n\tcase CARET_RIGHT:\n\t\tif (*xy == -1)\n\t\t\treturn al ;\n\t\tmcsr ((cmcflg & 0x0E) | 0x20) ;\n\t\treturn 0 ;\n\n\tcase CARET_LEFT:\n\t\tif (*xy == -1)\n\t\t\treturn al ;\n\t\tmcsr (((cmcflg ^ 6) & 0x0E) | 0x20) ;\n\t\treturn 0 ;\n\n\tcase CARET_DOWN:\n\t\tif (*xy == -1)\n\t\t\treturn al ;\n\t\tmcsr (((cmcflg ^ 8) & 0x0E) | 0x20) ;\n\t\treturn 0 ;\n\n\tcase CARET_UP:\n\t\tif (*xy == -1)\n\t\t\treturn al ;\n\t\tmcsr (((cmcflg ^ 14) & 0x0E) | 0x20) ;\n\t\treturn 0 ;\n\n\tcase INSERT_KEY:\n\t\tvflags ^= IOFLAG ;\n\t\tvducurs () ;\n\t\treturn 0 ;\n\t}\n\n\tif (*xy != -1)\n\t{\n\t\tswap (xy) ;\n\t\tblob () ;\n\t}\n\treturn al ;\n}\n\n// Output 'printing' character (may be DEL):\nvoid vduchr_ (short ucs2)\n{\n\tif (vflags & VDUDIS)\n\t  return ;\n\n\tif (vflags & HRGFLG)\n\t{\n\t  if (ucs2 == 127)\n\t  {\n\t\tfmove (6) ;\n\t\tBBC_RenderSetClipRect (memhdc, hrect) ;\n\t\tcharout(' ', 0xFF, bakgnd >> 8, lastx, lasty, charx) ;\n\t\tSDL_RenderSetClipRect (memhdc, NULL) ;\n\t\tbChanged = 1 ;\n\t  }\n\t  else\n\t    sendg (ucs2) ;\n\t}\n\telse\n\t{\n\t  if (ucs2 == 127)\n\t  {\n\t    qmove (6) ;\n\t    send (' ') ;\n\t    qmove (6) ;\n\t  }\n\t  else\n\t    send (ucs2) ;\n\t}\n}\n\n// APICALL\n#ifdef __llvm__\nlong long apicall_ (long long (*APIfunc) (size_t, size_t, size_t, size_t, size_t, size_t,\n\t\t\tsize_t, size_t, size_t, size_t, size_t, size_t,\n\t\t\tdouble, double, double, double, double, double, double, double), PARM *p)\n{\n\t\treturn APIfunc (p->i[0], p->i[1], p->i[2], p->i[3], p->i[4], p->i[5],\n\t\t\t\tp->i[6], p->i[7], p->i[8], p->i[9], p->i[10], p->i[11],\n\t\t\tp->f[0], p->f[1], p->f[2], p->f[3], p->f[4], p->f[5], p->f[6], p->f[7]) ;\n}\ndouble fltcall_ (double (*APIfunc) (size_t, size_t, size_t, size_t, size_t, size_t,\n\t\t\tsize_t, size_t, size_t, size_t, size_t, size_t,\n\t\t\tdouble, double, double, double, double, double, double, double), PARM *p)\n{\n\t\treturn APIfunc (p->i[0], p->i[1], p->i[2], p->i[3], p->i[4], p->i[5],\n\t\t\t\tp->i[6], p->i[7], p->i[8], p->i[9], p->i[10], p->i[11],\n\t\t\tp->f[0], p->f[1], p->f[2], p->f[3], p->f[4], p->f[5], p->f[6], p->f[7]) ;\n}\n#else\n#pragma GCC optimize (\"O0\")\nlong long apicall_ (long long (*APIfunc) (size_t, size_t, size_t, size_t, size_t, size_t,\n\t\t\t      size_t, size_t, size_t, size_t, size_t, size_t), PARM *p)\n{\n#ifdef ARMHF\n\tif (p->f[0] == -1.7e308)\n\t\tmemcpy (&p->f[0], &p->i[0], 48) ;\n\tif ((void*) APIfunc == (void*) SDL_RenderCopyEx) \n\t    {\n\t\tmemcpy (&p->f[0], &p->i[4], 8) ;\n\t\tmemcpy (&p->i[4], &p->i[6], 24) ;\n\t    }\n#endif\n\tlong long wrapper (volatile double a, volatile double b, volatile double c, volatile double d,\n\t\t\tvolatile double e, volatile double f, volatile double g, volatile double h)\n\t{\n\t\tlong long result ;\n#ifdef __WIN64__\n\t\tstatic void* savesp ;\n\t\tasm (\"mov %%rsp,%0\" : \"=m\" (savesp)) ;\n#elif defined _WIN32\n\t\tstatic void* savesp ;\n\t\tasm (\"mov %%esp,%0\" : \"=m\" (savesp)) ;\n#endif\n\t\tresult = APIfunc (p->i[0], p->i[1], p->i[2], p->i[3], p->i[4], p->i[5],\n\t\t\t\tp->i[6], p->i[7], p->i[8], p->i[9], p->i[10], p->i[11]) ;\n#ifdef __WIN64__\n\t\tasm (\"mov %0,%%rsp\" : : \"m\" (savesp)) ;\n#elif defined _WIN32\n\t\tasm (\"mov %0,%%esp\" : : \"m\" (savesp)) ;\n#endif\n\t\treturn result ;\n\t}\n\n\treturn wrapper (p->f[0], p->f[1], p->f[2], p->f[3], p->f[4], p->f[5], p->f[6], p->f[7]) ;\n}\ndouble fltcall_ (double (*APIfunc) (size_t, size_t, size_t, size_t, size_t, size_t,\n\t\t\t      size_t, size_t, size_t, size_t, size_t, size_t), PARM *p)\n{\n#ifdef ARMHF\n\tif (p->f[0] == -1.7e308)\n\t\tmemcpy (&p->f[0], &p->i[0], 48) ;\n\tif ((void*) APIfunc == (void*) SDL_RenderCopyEx) \n\t    {\n\t\tmemcpy (&p->f[0], &p->i[4], 8) ;\n\t\tmemcpy (&p->i[4], &p->i[6], 24) ;\n\t    }\n#endif\n\tdouble wrapper (volatile double a, volatile double b, volatile double c, volatile double d,\n\t\t\tvolatile double e, volatile double f, volatile double g, volatile double h)\n\t{\n\t\tdouble result ;\n#ifdef __WIN64__\n\t\tstatic void* savesp ;\n\t\tasm (\"mov %%rsp,%0\" : \"=m\" (savesp)) ;\n#elif defined _WIN32\n\t\tstatic void* savesp ;\n\t\tasm (\"mov %%esp,%0\" : \"=m\" (savesp)) ;\n#endif\n\t\tresult = APIfunc (p->i[0], p->i[1], p->i[2], p->i[3], p->i[4], p->i[5],\n\t\t\t\tp->i[6], p->i[7], p->i[8], p->i[9], p->i[10], p->i[11]) ;\n#ifdef __WIN64__\n\t\tasm (\"mov %0,%%rsp\" : : \"m\" (savesp)) ;\n#elif defined _WIN32\n\t\tasm (\"mov %0,%%esp\" : : \"m\" (savesp)) ;\n#endif\n\t\treturn result ;\n\t}\n\n\treturn wrapper (p->f[0], p->f[1], p->f[2], p->f[3], p->f[4], p->f[5], p->f[6], p->f[7]) ;\n}\n#pragma GCC reset_options\n#endif\n\n// Display surface (for *DISPLAY):\nint disply_ (SDL_Rect *dst, SDL_Surface *surf)\n{\n\tint flip = 0 ;\n\tSDL_Texture *tex ;\n\tascale (&dst->x, &dst->y) ;\n\ttex = SDL_CreateTextureFromSurface (memhdc, surf) ;\n\tSDL_FreeSurface (surf) ;\n\tif ((dst->w == 0) || (dst->h == 0))\n\t\tSDL_QueryTexture (tex, NULL, NULL, &dst->w, &dst->h) ;\n\tif (dst->w < 0)\n\t    {\n\t\tflip |= SDL_FLIP_HORIZONTAL ;\n\t\tdst->w = - dst->w ;\n\t\tdst->x -= dst->w ;\n\t    }\n\tif (dst->h < 0)\n\t    {\n\t\tflip |= SDL_FLIP_VERTICAL ;\n\t\tdst->h = - dst->h ;\n\t\tdst->y += dst->h + 1 ;\n\t    }\n\tdst->y -= (dst->h - 1) ;\t// adjust ypos to top\n\tif (flip)\n\t\tSDL_RenderCopyEx (memhdc, tex, NULL, dst, 0, NULL, flip) ;\n\telse\n\t\tSDL_RenderCopy (memhdc, tex, NULL, dst) ;\n\tSDL_DestroyTexture (tex) ;\n\tbChanged = 1 ;\n\treturn 1 ;\n}\n\n// Read pixels (for *GSAVE/*SCREENSAVE):\nvoid getpix_ (SDL_Rect *src, void *buffer)\n{\n#ifdef __EMSCRIPTEN__\n\tint i, j, k = src->h - 1 ;\n\tint pitch = (src->w * 3 + 3) & -4 ;\n\tascale (&src->x, &src->y) ;\n\tsrc->y -= (src->h - 1) ;\t// adjust ypos to top\n\tSDL_RenderReadPixels (memhdc, src, SDL_PIXELFORMAT_BGR24, buffer, pitch) ;\n\tfor (j = 0; j < src->h / 2; j++, k--)\n\t\tfor (i = 0; i < pitch; i += 4)\n\t\t    {\n\t\t\tint t = *(int *)(buffer + j*pitch + i) ;\n\t\t\t*(int *)(buffer + j*pitch + i) = *(int *)(buffer + k*pitch + i) ;\n\t\t\t*(int *)(buffer + k*pitch + i) = t ;\n\t\t    }\n#else\n\tSDL_Texture *tex = SDL_GetRenderTarget (memhdc) ;\n\tSDL_SetRenderTarget (memhdc, NULL) ;\n\tSDL_Rect dst = {0, 0, src->w, src->h} ;\n\tint pitch = (src->w * 3 + 3) & -4 ;\n\tascale (&src->x, &src->y) ;\n\tsrc->y -= (src->h - 1) ;\t// adjust ypos to top\n\tSDL_RenderCopyEx (memhdc, tex, src, &dst, 0, NULL, SDL_FLIP_VERTICAL) ;\n\tSDL_RenderReadPixels (memhdc, &dst, SDL_PIXELFORMAT_BGR24, buffer, pitch) ;\n\tSDL_SetRenderTarget (memhdc, tex) ;\n#endif\n}\n"
  },
  {
    "path": "src/bbcvtx.c",
    "content": "/*****************************************************************\\\n*       32-bit or 64-bit BBC BASIC for SDL 2.0                    *\n*       (C) 2017-2020  R.T.Russell  http://www.rtrussell.co.uk/   *\n*                                                                 *\n*       The name 'BBC BASIC' is the property of the British       *\n*       Broadcasting Corporation and used with their permission   *\n*                                                                 *\n*       bbcvtx.c  MODE 7 (teletext / videotex) emulator           *\n*       This module runs in the context of the GUI thread         *\n*       Version 1.15a, 06-Sep-2020                                *\n\\*****************************************************************/\n\n#include <stdlib.h>\n#include <stdio.h>\n#include <unistd.h>\n#include <string.h>\n#include \"SDL2_gfxPrimitives.h\"\n#include \"SDL_ttf.h\"\n#include \"bbcsdl.h\"\n\n#define\tCHARX\t16      // Character width (pixels)\n#define\tCHARY\t20      // Character height (pixels)\n#define\tTHIRD\t7       // Height of a 'sixel'\n#define\tSEPSIZ\t4       // Width/height of separated\n\nvoid charttf(unsigned short ax, int col, SDL_Rect rect) ;\n\n//Code conversion for special symbols:\nunsigned char frigo[] = {0x23,0x5B,0x5C,0x5D,0x5E,0x5F,0x60,0x7B,0x7C,0x7D,0x7E,0x7F} ;\nunsigned char frign[] = { 163, 143, 189, 144, 141,  35, 151, 188, 157, 190, 247, 129} ; // not 035\nunsigned short frigw[] = {0xA3,0x2190,0xBD,0x2192,0x2191,0x23,0x2014,0xBC,0x2016,0xBE,0xF7,0x25A0} ;\n\nstatic int rgbtab[] = {\n\t\t0xFF000000,\t// black\n        \t0xFFFF0000,\t// blue\n        \t0xFF00FF00,\t// green\n        \t0xFFFFFF00,\t// cyan\n        \t0xFF0000FF,\t// red\n        \t0xFFFF00FF,\t// magenta\n        \t0xFF00FFFF,\t// yellow\n        \t0xFFFFFFFF} ; \t// white\n\n//In this table, bit significance is as follows:\n//\n//\t bit 7  - flashing      ) If ONE of bits 7-3\n//       bit 6  - graphics      ) is set, then set the\n//       bit 5  - separated     ) appropriate attribute,\n//       bit 4  - double-height ) if FOUR bits are set,\n//       bit 3  - release       ) then clear attribute.\n//\n//       bit 2  - red           ) If ANY of bits 0-2\n//       bit 1  - green         ) are set, then use ALL\n//       bit 0  - blue          ) three bits as colour.\n//\nstatic char ctab7[] = {\n\t\t0x00,\t// 0b00000000: NUL (no effect or Alpha black)\n\t\t0xBC,\t// 0b10111100: Alpha red\n\t\t0xBA,\t// 0b10111010: Alpha green\n\t\t0xBE,\t// 0b10111110: Alpha yellow\n\t\t0xB9,\t// 0b10111001: Alpha blue\n\t\t0xBD,\t// 0b10111101: Alpha magenta\n\t\t0xBB,\t// 0b10111011: Alpha cyan\n\t\t0xBF,\t// 0b10111111: Alpha white\n\t\t0x80, \t// 0b10000000: Flash\n\t\t0x78,\t// 0b01111000: Steady\n\t\t0x00,\t// 0b00000000: End box (no effect)\n\t\t0x00,\t// 0b00000000: Start box (no effect)\n\t\t0xE8,\t// 0b11101000: Normal height\n\t\t0x10,\t// 0b00010000: Double height\n\t\t0x00,\t// 0b00000000: SO (no effect)\n\t\t0x00,\t// 0b00000000: SI (no effect)\n\t\t0x00,\t// 0b00000000: DLE (no effect or Graphics black)\n\t\t0x44,\t// 0b01000100: Graphics red\n\t\t0x42,\t// 0b01000010: Graphics green\n\t\t0x46,\t// 0b01000110: Graphics yellow\n\t\t0x41,\t// 0b01000001: Graphics blue\n\t\t0x45,\t// 0b01000101: Graphics magenta\n\t\t0x43,\t// 0b01000011: Graphics cyan\n\t\t0x47,\t// 0b01000111: Graphics white\n\t\t0x00,\t// 0b00000000: Conceal\n\t\t0xD8,\t// 0b11011000: Contiguous graphics\n\t\t0x20,\t// 0b00100000: Separated graphics\n\t\t0x00,\t// 0b00000000: ESC (no effect or toggle charset)\n\t\t0x00,\t// 0b00000000: Black background\n\t\t0x00,\t// 0b00000000: New background\n\t\t0xF0,\t// 0b11110000: Hold graphics\n\t\t0x08} ;\t// 0b00001000: Release graphics\n\n// Check if row contains any double-height characters:\nstatic int anydh (short *sl)\n{\n\tint col ;\n\tfor (col = 0; col < 40; col++)\n\t\tif ((*sl++ & 0x7F) == 13)\n\t\t\treturn 1 ;\n\treturn 0 ; \n}\n\nstatic int find7 (short *sl)\n{\n\tint row = 0 ;\n\twhile (sl > chrmap)\n\t{\n\t\tsl -= (XSCREEN + 7) >> 3 ;\n\t\tif (!anydh (sl))\n\t\t\tbreak ;\n\t\trow-- ;\n\t}\n\treturn (row & BIT0) ;\n}\n\n// Set render draw colour:\nstatic void setrgb (char al)\n{\n\tSDL_SetRenderDrawColor (memhdc, al & BIT2 ? 0xFF : 0,\n\t\t\t\t\tal & BIT1 ? 0xFF : 0,\n\t\t\t\t\tal & BIT0 ? 0xFF : 0, 0xFF ) ;\n}\n\n//Output a character to the screen (outputs both normal\n//ASCII alphanumerics and 'sixel' graphics characters).\n//  al = character:\n//         bit 7 - 0=alpha, 1=graphics\n//         if alpha:    bit 6..bit 0 is ASCII code\n//         if graphics: bit 6 and bit 4..bit 0 are sixels\n//                      bit 5 - 0=contiguous, 1=separated\n//  ah = colour:\n//         bit 6 - background R\n//         bit 5 - background G\n//         bit 4 - background B\n//         bit 3 - 0=normal, 1=secondary charset\n//         bit 2 - foreground R\n//         bit 1 - foreground G\n//         bit 0 - foreground B\n//  xpos = horizontal coordinate\n//  ypos = vertical coordinate\n\nstatic void chout7 (unsigned char al, unsigned char ah, int xpos, int ypos)\n{\n\tSDL_Rect rect = {xpos, ypos, CHARX, CHARY} ;\n\n\tsetrgb (ah >> 4) ;\t// background colour\n\tSDL_RenderFillRect (memhdc, &rect) ;\n\n\tif ((al & 0x5F) == 0)\n\t\tal = ' ' ;\n\n\tif ((al & BIT7) == 0)\n\t{\n\t\tif (ah & BIT3)\n\t\t\tal |= BIT7 ;\n\t\tif (vflags & UFONT)\n\t\t    {\n\t\t\tint i ;\n\t\t\tUint16 tmp[2] = {al, 0} ;\n\t\t\tfor (i = 0; i < 12; i++)\n\t\t\t\tif (al == frigo[i])\n\t\t\t\t\ttmp[0] = frigw[i] ;\n\t\t\tTTF_SizeUNICODE (hfont, tmp, &rect.w, &rect.h) ;\n\t\t\tcharttf (tmp[0], rgbtab[ah & 7], rect) ;\n\t\t    }\n\t\telse\n\t\t    {\n\t\t\tcharacterColor (memhdc, xpos, ypos, al, rgbtab[ah & 7]) ;\n\t\t    }\n\t\treturn ;\n\t}\n\n\tsetrgb (ah) ;\n\tsigned char mask = 1 ;\n\tif (al & BIT5)\n\t{\n\t\trect.x = xpos + SEPSIZ/2 ;\n\t\trect.y = ypos + SEPSIZ/2 ;\n\t\trect.w = SEPSIZ ;\n\t\trect.h = SEPSIZ ;\n\t}\n\telse\n\t{\n\t\trect.x = xpos ;\n\t\trect.y = ypos ;\n\t\trect.w = CHARX / 2 ;\n\t\trect.h = THIRD ;\n\t}\n\tfor ( ; mask >= 0; mask = mask << 1)\n\t{\n\t\tif (al & mask)\n\t\t\tSDL_RenderFillRect (memhdc, &rect) ;\n\t\tif (mask == 0x10)\n\t\t\tmask = mask << 1 ;\n\t\trect.x += CHARX / 2 ;\n\t\tif (mask & 0x0A)\n\t\t{\n\t\t\trect.x -= CHARX ;\n\t\t\trect.y += THIRD ;\n\t\t\tif (mask & 8)\n\t\t\t\trect.h &= ~BIT0 ;\n\t\t}\n\t}\n}\n\n//Subroutine outch7\nstatic void outch7 (unsigned char al, unsigned char ah, unsigned char mode, int xpos, int ypos)\n{\n\tif ((ah & BIT7) && (flags & PHASE))\n\t\tal = ' ' ;\n\tchout7 (al, ah, xpos, ypos) ;\n\tif ((mode & BIT5) && (al & 0x5F))\n\t{\n\t\tSDL_Rect src = {xpos, ypos, CHARX, CHARY/2} ;\n\t\tSDL_Rect dst = {xpos, ypos, CHARX, CHARY} ;\n\t\tSDL_Texture *tex, *target ;\n\n\t\tif (mode & BIT3)\n\t\t\tsrc.y += CHARY/2 ;\t// bottom half\n\t\ttex = SDL_CreateTexture (memhdc, SDL_PIXELFORMAT_ABGR8888,\n\t\t\tSDL_TEXTUREACCESS_TARGET, CHARX, CHARY/2) ;\n\t\ttarget = SDL_GetRenderTarget (memhdc) ;\n\t\tSDL_SetRenderTarget (memhdc, tex) ;\n\t\tSDL_RenderClear (memhdc) ;\n\t\tSDL_RenderCopy (memhdc, target, &src, NULL) ;\n\t\tSDL_SetRenderTarget (memhdc, target) ;\n\t\tSDL_RenderCopy (memhdc, tex, NULL, &dst) ;\n\t\tSDL_DestroyTexture (tex) ;\n\t}\n\tbChanged = 1 ;\n}\n\n//Process a character from the character map\n//and update the display attributes etc.\n//\n//   Inputs:  pc = address of character in character map\n//          attr = current display attributes (&07 at row start):\n//                 (n.b. 0s are SET AT, 1s are SET AFTER)\n//                 bit 7 - 0=steady, 1=flashing\n//                 bit 6 - background R\n//                 bit 5 - background G\n//                 bit 4 - background B\n//                 bit 3 - 0=normal, 1=secondary charset\n//                 bit 2 - foreground R\n//                 bit 1 - foreground G\n//                 bit 0 - foreground B\n//          mode = current mode (&10 at row start):\n//                 bit 7 - 0=alphanumerics, 1=graphics\n//                 bit 6 - 0=contiguous, 1=separated graphics\n//                 bit 5 - 0=normal-height, 1=double-height\n//                 bit 4 - 0=hold graphics, 1=release graphics\n//                 bit 3 - 0=top half, 1=bottom half of pair\n//                 bit 2 - 1=double-height changed (unaffected)\n//                 bit 1 - 1=held-graphics changed (unaffected)\n//                 bit 0 - 1=control-char changed (unaffected)\n//          held = held graphics character\n//\nstatic short char7 (short *pc, unsigned char *pattr, unsigned char *pmode, char *pheld)\n{\n\tunsigned char ah, al = *pc++ & ~BIT7 ;\n\tunsigned char attr = *pattr ;\n\tunsigned char mode = *pmode ;\n\tunsigned char oldmode = *pmode ;\n\tchar held = *pheld ;\n\n\tif (al & BIT5)\n\t{\t\t\t\t// Lowercase or graphics\n\t\tif (mode & BIT7)\n\t\t{\t\t\t// Graphics\n\t\t\tal |= BIT7 ;\n\t\t\tif ((mode & BIT6) == 0)\n\t\t\t\tal &= ~BIT5 ;\t// Contiguous\n\t\t\theld = al ;\n\t\t}\n\t}\n\telse if ((al & BIT6) == 0)\t// Capitals or control\n\t{\n\t\tif ((mode & BIT7) == 0)\t\n\t\t\theld = 0 ;\t// Clear held graphics character\n\n\t\tswitch (al)\n\t\t{\n\t\tcase 24:\t\t// Conceal\n\t\t\tattr = (attr & 0xF8) | ((attr & 0x70) >> 4) ;\n\t\t\t*pattr = attr ;\t// Set at\n\t\t\tbreak ;\n\n\t\tcase 28:\t\t// Black background\n\t\t\tattr &= 0x8F ;\n\t\t\t*pattr = attr ;\t// Set at\n\t\t\tbreak ;\n\n\t\tcase 29:\t\t// New background\n\t\t\tattr = (attr & 0x8F) | ((attr & 7) << 4) ;\n\t\t\t*pattr = attr ;\t// Set at\n\t\t\tbreak ;\n\n\t\tcase 27:\t\t// Toggle character set\n\t\t\tif (vflags & EGAFLG)\n\t\t\t\tattr ^= BIT3 ;\n\t\t\tbreak ;\n\n\t\tcase 0:\t\t\t// Alpha black\n\t\t\tif (vflags & EGAFLG)\n\t\t\t    {\n\t\t\t\tattr &= 0xF8 ;\n\t\t\t\tmode &= 0x7F ;\n\t\t\t    }\n\t\t\tbreak ;\n\n\t\tcase 16:\t\t// Graphics black\n\t\t\tif (vflags & EGAFLG)\n\t\t\t    {\n\t\t\t\tattr &= 0xF8 ;\n\t\t\t\tmode |= 0x80 ;\n\t\t\t    }\n\t\t\tbreak ;\n\n\t\tdefault:\n\t\t\tal = ctab7[(int) al] ;\t\t// Action code\n\n\t\t\tif ((al & 0xF8 & ((al & 0xF8) - 1)))\t// Reset bit\n\t\t\t{\n\t\t\t\tmode &= ((al << 1) | 0x0F) ;\n\t\t\t\tattr &= (al | 0x7F) ;\t// flashing\n\t\t\t\t*pmode = mode ;\n\t\t\t\t*pattr = attr ;\t\t// Set AT\n\t\t\t}\n\t\t\telse\n\t\t\t{\t\t\t\t// Set bit (or nothing)\n\t\t\t\tmode |= ((al << 1) & 0xF0) ; \n\t\t\t\tattr |= (al & 0x80) ;\t// flashing\n\t\t\t}\n\n\t\t\tif (al & 7)\t\t\t// Foreground colour\n\t\t\t\tattr = (attr & 0xF8) | (al & 7) ;\n\t\t}\n\n\t\tif ((mode ^ oldmode) & BIT5)\n\t\t\theld = 0 ;\t\t// Clear held graphic on D/H change\n\n\t\tif (*pmode & BIT4)\n\t\t{\n\t\t\tif ((vflags & EGAFLG) == 0)\n\t\t\t\theld = 0 ;\t// Clear held graphic (SAA5050 bug)\n\t\t\tal = ' ' ;\t\t// Display space\n\t\t}\n\t\telse\n\t\t\tal = held ;\t\t// Display held graphic\n\t}\n\n\tif ((mode & BIT3) && !(mode & BIT5))\n\t\tal = ' ' ;\t\t\t// Second row of D/H pair\n\n\tah = *pattr ;\n\t*pattr = attr ;\n\t*pmode = mode ;\n\t*pheld = held ;\n\treturn (ah << 8) | al ;\n}\n\n// Process next row:\nstatic void next7 (short *sl, int ypos, unsigned char *pattr,  unsigned char *pmode)\n{\n\tchar held = 0 ;\n\tint col, xpos = 0 ;\n\tfor (col = 0; col < 40; col++)\n\t{\n\t\tshort atch = char7 (sl, pattr, pmode, &held) ;\n\t\tif ((*pmode & (BIT0 | BIT2)) || ((*pmode & BIT1) && !(*pmode & BIT4)))\n\t\t\toutch7 (atch & 0xFF, atch >> 8, *pmode, xpos, ypos) ;\n\t\tsl++ ;\n\t\txpos += CHARX ;\n\t}\n}\n\n//Process one (40-character) row of the Viewdata screen.\nstatic void row7 (short *pc, short *sl, int ypos, unsigned char *pattr,  unsigned char *pmode)\n{\n\tchar held = 0 ;\n\tint col, xpos = 0 ;\n\tfor (col = 0; col < 40; col++)\n\t{\n\t\tshort atch = char7 (sl, pattr, pmode, &held) ;\n\t\tif (sl == pc)\n\t\t{\n\t\t\toutch7 (atch & 0xFF, atch >> 8, *pmode, xpos, ypos) ;\n\t\t\tif (!(*pmode & (BIT0 | BIT2)) && !((*pmode & BIT1) && (*pmode & BIT7)))\n\t\t\t\treturn ;\n\t\t}\n\t\tif ((sl > pc) && ((*pmode & (BIT0 | BIT2))\n\t\t\t\t || ((*pmode & BIT1) && !(*pmode & BIT4))))\n\t\t\toutch7 (atch & 0xFF, atch >> 8, *pmode, xpos, ypos) ;\n\t\tsl++ ;\n\t\txpos += CHARX ;\n\t}\n}\n\n// Write a character to the teletext screen and update the\n// screen as appropriate.\n//\n// The rules are as follows:\n// 1. If the character written is the same as the previous\n//    character at that location, then do nothing.\n// 2. If the character written *or the character it replaces*\n//    is a control character, re-display the rest of the row.\n// 3. If the character written *or the character it replaces*\n//    could be a held-graphics character, re-display any held\n//    graphics characters in the rest of the row.\n// 4. If the character written *or the character it replaces*\n//    is a double-height control character, re-display double\n//    height characters in the next and subsequent rows until\n//    one is found which doesn't contain a D/H control (n.b.\n//    display single-height characters too - as spaces - if\n//    the row is the second row of a double-height pair).\nvoid send7 (unsigned char al, short *pc, short *sl, int ypos)\n{\n\tunsigned char ah, attr, mode ;\n\tswitch (al)\n\t{\n\tcase 0x23:\tal = 0x5F ;\n\t\t\tbreak ;\n\n\tcase 0x5F:\tal = 0x60 ;\n\t\t\tbreak ;\n\n\tcase 0x60:\tal = 0x23 ;\n\t}\n\n\tah = *pc ;\n\tif (al == ah)\n\t\treturn ;\n\t*pc = al ;\n\n\tattr = 7 ;\n\tmode = 0x10 ;\n\n// Test new and old characters:\n\tal &= ~BIT7 ;\t\t\t// Strip high bits\n\tah &= ~BIT7 ;\n\tif ((al < 0x20) || (ah < 0x20))\n\t\tmode |= BIT0 ;\t\t// Flag control character\n\tif ((al & BIT5) || (ah & BIT5))\n\t\tmode |= BIT1 ;\t\t// Could be held-graphics\n\tif ((al == 13) || (ah == 13))\n\t\tmode |= BIT2 ;\t\t// Flag double-height\n\tif (find7 (sl))\n\t\tmode |= BIT3 ;\t\t// Flag second of pair\n\trow7 (pc, sl, ypos, &attr, &mode) ;\n\n\tif ((mode & BIT2) == 0)\t\t// Double-height changed?\n\t\treturn ;\n\tif (!anydh (sl))\n\t\tmode |= BIT3 ;\n\n\twhile (sl <= (chrmap + 24 * ((XSCREEN + 7) >> 3)))\n\t{\n\t\tsl += (XSCREEN + 7) >> 3 ;\n\t\typos += CHARY ;\n\t\tattr = 7 ;\n\t\tmode = (mode & 8) ^ 0x1C ;\n\t\tnext7 (sl, ypos, &attr, &mode) ;\n\t\tif (!anydh (sl))\n\t\t\treturn ;\n\t}\n}\n\n// Update the entire Viewdata screen\nstatic void update7 (unsigned char flag)\n{\n\tint row, ypos = 0 ;\n\tshort *pc = chrmap ;\n\tunsigned char attr ;\n\tunsigned char mode = 0x10 ;\t// Initial mode\n\n\tfor (row = 0; row < 25; row++)\n\t{\n\t\tint col, xpos = 0 ;\n\t\tchar held = 0 ;\t\t// Held graphics character\n\t\tunsigned char sticky = flag ;\t// To detect any D/H\n\t\tattr = 7 ; \t\t// Initial attributes\n\t\tfor (col = 0; col < 40; col++)\n\t\t{\n\t\t\tshort atch = char7 (pc, &attr, &mode, &held) ;\n\t\t\tsticky |= mode ;\n\t\t\tif ((atch & 0x8000) || (sticky & BIT0))\n\t\t\t\toutch7 (atch & 0xFF, atch >> 8, mode, xpos, ypos) ; \n\t\t\tpc++ ;\n\t\t\txpos += CHARX ;\n\t\t}\n\t\tpc += ((XSCREEN + 7) >> 3) - 40 ;\n\t\typos += CHARY ;\n\t\tmode = (mode & 8) ^ 0x18 ;\n\t\tif ((sticky & BIT5) == 0)\n\t\t\tmode = 0x10 ;\n\t}\n}\n\n// Flip the state of flashing characters:\nvoid flip7 (void)\n{\n\tif (modeno == 7)\n\t{\n\t\tflags ^= PHASE ;\n\t\tupdate7 (0) ;\t\t// Flash update only\n\t}\n}\n\n// Update the entire MODE7 screen:\nvoid page7 (void)\n{\n\tupdate7 (1) ;\t\t\t// Full update\n}"
  },
  {
    "path": "src/bbdata_arm_32.s",
    "content": "/*****************************************************************\\\n*       BBC BASIC for SDL 2.0 (ARM_32)                            *\n*       Copyright (c) R. T. Russell, 2018-2024                    *\n*                                                                 *\n*       BBCDAT.S RAM data definitions                             *\n*       Version 1.40a, 12-Mar-2024                                *\n\\*****************************************************************/\n\n.equ\tMAX_PORTS,4\n.equ\tMAX_FILES,8\n.equ\tSOUNDQL,20\n\n.global\tstavar\n.global lc\n.global oc\n.global pc\n.global dynvar\n.global fnptr\n.global proptr\n.global prand\n.global accs\n.global buff\n.global vpage\n.global flist\n.global lomem\n.global pfree\n.global himem\n.global errtxt\n.global onersp\n.global errtrp\n.global datptr\n.global curlin\n.global errlin\n.global tracen\n.global vcount\n.global vwidth\n.global errnum\n.global liston\n.global lstopt\n.global tmps\n\n.global path\n.global keystr\n.global keybdq\n.global keyptr\n.global spchan\n.global exchan\n.global tweak\n.global fcbtab\n.global timoff\n.global usrchr\n.global soundq\n.global envels\n.global waves\n.global libase\n.global eventq\n.global timtrp\n.global clotrp\n.global siztrp\n.global systrp\n.global moutrp\n.global alltrp\n.global iMsg\n.global wParam\n.global lParam\n.global filbuf\n.global portab\n.global fvtab\n\n.global forgnd\n.global bakgnd\n.global hfont\n.global colmsk\n.global modeno\n.global lthick\n.global hrect\n.global origx\n.global origy\n.global lastx\n.global lasty\n.global prevx\n.global prevy\n.global pfont\n.global cmcflg\n.global textwl\n.global textwr\n.global textwt\n.global textwb\n.global sizex\n.global sizey\n.global sclflg\n.global textx\n.global texty\n.global charx\n.global chary\n.global cursa\n.global cursb\n.global tempo\n.global pixelx\n.global pixely\n.global txtfor\n.global txtbak\n.global optval\n.global farray\n.global fasize\n\n.global vduq\n.global queue\n.global flags\n.global kbdqw\n.global kbdqr\n.global keyexp\n.global scroln\n.global vflags\n.global sndqw\n.global sndqr\n.global sacc\n.global smix\n.global evtqw\n.global evtqr\n.global eenvel\n.global escale\n.global epsect\n.global easect\n.global epitch\n.global elevel\n.global ecount\n\n.global hwndProg\n.global zoom\n.global offsetx\n.global offsety\n.global platform\n.global memhdc\n.global reflag\n.global sysflg\n.global panx\n.global pany\n.global prntx\n.global prnty\n.global prchx\n.global prchy\n.global cursx\n.global bPaletted\n.global paperl\n.global paperr\n.global papert\n.global paperb\n\n.global datend\n.global sysvar\n.global savesp\n.global bbcfont\n.global lastick\n.global link00\n.global cmdlen\n.global cmdadr\n.global dirlen\n.global diradr\n.global liblen\n.global libadr\n.global usrlen\n.global usradr\n.global tmplen\n.global tmpadr\n.global hwo\n.global vdufmt\n.global vduvar\n.global vduptr\n.global voices\n.global chrmap\n.global breakpt\n.global breakhi\n.global ttxtfont\n\n.data\n\n/* Variables used by generic modules (bbmain, bbexec, bbeval, bbasmb) */\n\nstavar:\t.fill\t12,4,0\t/* Static variables @% to K% */\nlc:\t.long\t0\t/* Static variable L% */\n\t.long\t0,0\t/* Static variables M%, N% */\noc:\t.long\t0\t/* Static variable O% */\npc:\t.long\t0\t/* Static variable P% */\n\t.fill\t10,4,0\t/* Static variables Q% to Z% */\ndynvar:\t.fill\t54,4,0\t/* Pointers to dynamic vars */\nfnptr:\t.long\t0\t/* Pointer to user FuNctions */\nproptr:\t.long\t0\t/* Pointer to user PROCedures */\naccs:\t.long\t0\t/* Pointer to string accumulator */\nbuff:\t.long\t0\t/* Pointer to string input buffer */\nvpage:\t.long\t0\t/* Current value of PAGE */\ntracen:\t.long\t0\t/* Maximum line number to trace */\nlomem:\t.long\t0\t/* Current value of LOMEM */\npfree:\t.long\t0\t/* Pointer to start of free space */\nhimem:\t.long\t0\t/* Current value of HIMEM */\nlibase:\t.long\t0\t/* Pointer to INSTALLed library */\nerrtxt:\t.long\t0\t/* Pointer to error text for REPORT */\nonersp:\t.long\t0\t/* ESP storage for ON ERROR LOCAL */\nerrtrp:\t.long\t0\t/* Pointer to ON ERROR statement */\ndatptr:\t.long\t0\t/* Pointer to DATA statements */\nvcount:\t.long\t0\t/* Current value of COUNT */\ncurlin:\t.long\t0\t/* Pointer to current statement */\nalltrp:\t\t\t/* Start of trap pointers */\ntimtrp:\t.long\t0\t/* Pointer to ON TIME statement */\nclotrp:\t.long\t0\t/* Pointer to ON CLOSE statement */\nsiztrp:\t.long\t0\t/* Pointer to ON MOVE statement */\nsystrp:\t.long\t0\t/* Pointer to ON SYS statement */\nmoutrp:\t.long\t0\t/* Pointer to ON MOUSE statement */\nerrlin:\t.long\t0\t/* Pointer to last error statement */\n\nprand:\t.byte\t0,0,0,0,0\t/* Current 'random' number (5 bytes) */\nvwidth:\t.byte\t0\t/* Current value of WIDTH */\nerrnum:\t.byte\t0\t/* Error code of last error */\nliston:\t.byte\t0\t/* *FLOAT / *HEX / *LOWERCASE / OPT */\n\n/* Variables used by OS-specific modules (bbcmos, bbccli, bbcvdu, bbcvtx) */\n\npath:\t.long\t0\t/* Pointer to path/filename buffer */\nkeystr:\t.long\t0\t/* Pointer to user *KEY strings */\nkeybdq:\t.long\t0\t/* Pointer to keyboard queue */\neventq:\t.long\t0\t/* Pointer to event queue */\nkeyptr:\t.long\t0\t/* Pointer to *KEY string */\nusrchr:\t.long\t0\t/* Pointer to user-defined characters */\n\nlstopt:\t.byte\t0\t/* LISTO value (indentation) */\nsclflg:\t.byte\t0\t/* V5.3 scroll flag (COPY key) */\noptval:\t.byte\t0\t/* *OUTPUT and *INPUT values */\n\n/* ------ End of 'absolutely-addressed' variables ------ */\n\nfarray:\t.byte\t0\t/* Number of dimensions = 1  | */\nfasize:\t.long\t0\t/* Number of elements = 13   | */\nfilbuf:\t.long\t0\t/* Pointer to file buffers   | */\nportab:\t.fill\tMAX_PORTS,4,0\t/* Table of port handles     | */\nchntab:\t.fill\tMAX_FILES,4,0\t/* Table of file handles     | */\nfcbtab:\t.fill\tMAX_FILES,4,0\t/* Table of FCBs (must follow chntab) */\n\nspchan:\t.long\t0\t/* Channel for *SPOOL/*SPOOLON */\nexchan:\t.long\t0\t/* Channel for *EXEC */\nsacc:\t.long\t0,0,0,0\t/* Sound accumulators */\nsmix:\t.long\t0,0,0,0\t/* Stereo mix */\n\n/* Text/graphics metrics (pointed to by @vdu%) */\n\nvduvar:\norigx:\t.long\t0\t/* Graphics horizontal origin */\norigy:\t.long\t0\t/* Graphics vertical origin */\nlastx:\t.long\t0\t/* Immediately preceding x-coordinate */\nlasty:\t.long\t0\t/* Immediately preceding y-coordinate */\nprevx:\t.long\t0\t/* Previous x-coordinate */\nprevy:\t.long\t0\t/* Previous y-coordinate */\ntextwl:\t.long\t0\t/* Text window left (pixels) */\ntextwr:\t.long\t0\t/* Text window right (pixels) */\ntextwt:\t.long\t0\t/* Text window top (pixels) */\ntextwb:\t.long\t0\t/* Text window bottom (pixels) */\npixelx:\t.long\t0\t/* Width of a graphics pixel */\npixely:\t.long\t0\t/* Height of a graphics pixel */\ntextx:\t.long\t0\t/* Text pointer (cursor x) */\ntexty:\t.long\t0\t/* Text pointer (cursor y) */\nhfont:\t.long\t0\t/* Handle of current font */\nhrect:\t.long\t0\t/* Pointer to clipping rect */\n\nforgnd:\t.short\t0\t/* Graphics foreground colour/action */\nbakgnd:\t.short\t0\t/* Graphics background colour/action */\n\ncursa:\t.byte\t0\t/* Start (top) line of cursor */\ncursb:\t.byte\t0\t/* Finish (bottom) line of cursor */\ntxtfor:\t.byte\t0\t/* Text foreground colour */\ntxtbak:\t.byte\t0\t/* Text background colour */\nmodeno:\t.byte\t0\t/* Mode number */\ncolmsk:\t.byte\t0\t/* Mask for maximum number of colours */\nvflags:\t.byte\t0\t/* VDU driver flags */\nscroln:\t.byte\t0\t/* Scroll counter in paged mode */\ncursx:\t.byte\t0\t/* Cursor (caret) width */\nlthick:\t.byte\t0\t/* Line thickness (lines, outline shapes) */\ncmcflg:\t.byte\t0\t/* cursor movement flags */\ntweak:\t.byte\t0\t/* Character spacing adjustment (signed) */ \n\nsndqw:\t.byte\t0,0,0,0\t/* Sound queue write pointers */\nsndqr:\t.byte\t0,0,0,0\t/* Sound queue read pointers */\neenvel:\t.byte\t0,0,0,0\t/* Envelope number */\nescale:\t.byte\t0,0,0,0\t/* Envelope scaler */\nepsect:\t.byte\t0,0,0,0\t/* Envelope pitch section */\neasect:\t.byte\t0,0,0,0\t/* Envelope amplitude section */\nepitch:\t.byte\t0,0,0,0\t/* Envelope pitch (frequency) */\necount:\t.byte\t0,0,0,0\t/* Envelope count */\nsoundq:\t.fill\tSOUNDQL,4,0\t/* Sound queue (four channels) */\n\nvduq:\t.fill\t10,1,0\t/* VDU queue (must precede 'queue') */\nqueue:\t.byte\t0\t/* VDU queue status */\n\nkbdqw:\t.byte\t0\t/* Keyboard queue write pointer */\nkbdqr:\t.byte\t0\t/* Keyboard queue read pointer */\nevtqw:\t.byte\t0\t/* Event queue write pointer */\nevtqr:\t.byte\t0\t/* Event queue read pointer */\nkeyexp:\t.byte\t0\t/* *KEY character counter */\n\n/* ------ End of initialised variables ------ */\n\ndatend:\n\n/* The following locations are NOT initialised when program is RUN */\n/* (but are guaranteed to be zero on initial execution) */\n\nsizex:\t.long\t0\t/* Total width of client area */\nsizey:\t.long\t0\t/* Total height of client area */\ncharx:\t.long\t0\t/* Average character width */\nchary:\t.long\t0\t/* Average character height */\nprchx:\t.long\t0\t/* Average character width (printer) */\nprchy:\t.long\t0\t/* Average character height (printer) */\npaperl:\t.long\t0\t/* Printer left edge */\npaperr:\t.long\t0\t/* Printer right edge */\npapert:\t.long\t0\t/* Printer top edge */\npaperb:\t.long\t0\t/* Printer bottom edge */\nprntx:\t.long\t0\t/* Horizontal printing position */\nprnty:\t.long\t0\t/* Vertical printing position */\n\n/* ------ End of VDU variables ------ */\n\n/* The following variables are organised as a linked-list at */\n/* sysvar, for access via 'system variables' starting with @ */\n\nsysvar:\t.long\tlink2 - sysvar\n\t.asciz\t\"memhdc%\"\nmemhdc:\t.long\t0\t/* Shadow screen device context */\n\nlink2:\t.long\tlink3 - link2\n\t.asciz\t\"wparam%\"\nwParam:\t.long\t0\t/* Saved wParam for ON xxxx interrupt */\n\nlink3:\t.long\tlink4 - link3\n\t.asciz\t\"lparam%\"\nlParam:\t.long\t0\t/* Saved lParam for ON xxxx interrupt */\n\n\t.short\t0\t/* Padding */\nlink4:\t.long\tlink5 - link4\n\t.asciz\t\"hwnd%\"\nhwndProg: .long\t0\t/* Handle for program window */\n\n\t.short\t0\t/* Padding */\nlink5:\t.long\tlink6 - link5\n\t.asciz\t\"hpal%\"\n\t.long\tpalette\t/* Colour palette */\n\nlink6:\t.long\tlink7 - link6\n\t.asciz\t\"ox%\"\noffsetx:.long\t0\t/* x-offset memhdc->hwnd */\n\nlink7:\t.long\tlink8 - link7\n\t.asciz\t\"oy%\" \noffsety:.long\t0\t/* y-offset memhdc->hwnd */\n\nlink8:\t.long\tlink9 - link8\n\t.asciz\t\"hfile%(\"\n\t.long\tfarray\t/* Pointer to file handles array */\n\n\t.byte\t0,0,0\t/* Padding */\nlink9:\t.long\tlink10 - link9\n\t.asciz\t\"msg%\"\niMsg:\t.long\t0\t/* Saved iMsg for ON xxxx interrupt */\n\n\t.byte\t0,0,0\t/* Padding */\nlink10:\t.long\tlink11 - link10\n\t.asciz\t\"vdu%\"\n\t.long\tvduvar\t/* Pointer to VDU variables */\n\n\t.short\t0\t/* Padding */\nlink11:\t.long\tlink12 - link11\n\t.asciz\t\"platform%\"\nplatform: .long\t0\t/* SDL version & OS */\n\n\t.byte\t0\t/* Padding */\nlink12:\t.long\tlink13 - link12\n\t.asciz\t\"flags%\"\ntempo:\t.byte\t0\t/* *TEMPO value */\nsysflg:\t.byte\t0\t/* *SYS flags */\nreflag:\t.byte\t0\t/* *REFRESH flags */\nflags:\t.byte\t0\t/* Boolean flags (byte) @ 3FBH */\n\n\t.byte\t0\t/* Padding */\nlink13:\t.long\tlink14 - link13\n\t.asciz\t\"cache%\"\n\t.long\tTTFcache /* Font cache */\n\n\t.short\t0\t/* Padding */\nlink14:\t.long\tlink15 - link14\n\t.asciz\t\"zoom%\"\nzoom:\t.long\t0\n\n\t.byte\t0,0,0\t/* Padding */\nlink15:\t.long\tlink16 - link15\n\t.asciz\t\"hwo%\"\nhwo:\t.long\t0\t/* Handle for wave output */\n\nlink16:\t.long\tlink17 - link16\n\t.asciz\t\"chrmap%\"\nchrmap:\t.long\t0\n\nsavesp:\t.long\t0\t/* Store for caller's stack pointer */\nflist:\t.fill\t33,4,0\t/* Pointers to string free lists */\ntmps:\t.long\t0\t/* Temp string descriptor: address */\n\t.long\t0\t/* Temp string descriptor: length  */\n\nlastick:.long\t0\t/* To check for TickCount wraparound */\ntimoff:\t.long\t0\t/* Offset to add to TickCount */\nenvels:\t.long\t0\t/* Pointer to ENVELOPEs */\nwaves:\t.long\t0\t/* Pointer to SOUND waveforms */\nvoices:\t.byte\t0,0,0,0\t/* Voices (waveforms) for sound channels */\nelevel:\t.byte\t0,0,0,0\t/* Envelope level (amplitude) */\n\n\t.byte\t0,0,0\t/* Padding */\nlink17:\t.long\tlink18 - link17\n\t.asciz\t\"dir$\"\ndiradr:\t.long\t0\t/* Load directory address */\ndirlen:\t.long\t0\t/* Load directory length */\n\n\t.byte\t0,0,0\t/* Padding */\nlink18:\t.long\tlink19 - link18\n\t.asciz\t\"lib$\"\nlibadr:\t.long\t0\t/* Lib directory address */\nliblen:\t.long\t0\t/* Lib directory length */\n\n\t.byte\t0,0,0\t/* Padding */\nlink19:\t.long\tlink20 - link19\n\t.asciz\t\"cmd$\"\ncmdadr:\t.long\t0\t/* Command line address */\ncmdlen:\t.long\t0\t/* Command line length */\n\n\t.byte\t0,0,0\t/* Padding */\nlink20:\t.long\tlink21 - link20\n\t.asciz\t\"usr$\"\nusradr:\t.long\t0\t/* User directory address */\nusrlen:\t.long\t0\t/* User directory length */\n\n\t.byte\t0,0,0\t/* Padding */\nlink21:\t.long\tlink22 - link21\n\t.asciz\t\"tmp$\"\ntmpadr:\t.long\t0\t/* Temp directory address */\ntmplen:\t.long\t0\t/* Temp directory length */\n\n\t.byte\t0,0,0\t/* Padding */\nlink22:\t.long\tlink23 - link22\n\t.asciz\t\"vdu{\"\nvduptr:\t.long\tvdufmt\t/* Format address */\n\t.long\tvduvar\t/* Data address */\n\n\t.byte\t0\t/* Padding */\nlink23:\t.long\tlink24 - link23\n\t.asciz\t\"ispal%\"\nbPaletted: .long  0\t/* Paletted display flag (BOOL) */\n\n\t.short\t0\t/* Padding */\nlink24:\t.long\tlink25 - link24\n\t.asciz\t\"panx%\"\npanx:\t.long\t0\t/* Horizontal pan */\n\n\t.short\t0\t/* Padding */\nlink25:\t.long\tlink26 - link25\n\t.asciz\t\"pany%\"\npany:\t.long\t0\t/* Vertical pan */\n\n\t.byte\t0\t/* Padding */\nlink26:\t.long\tlink27 - link26\n\t.asciz\t\"brkpt%\"\nbreakpt:.long\t0\t/* Breakpoint (bottom of range) */\n\n\t.byte\t0\t/* Padding */\nlink27:\t.long\tlink28 - link27\n\t.asciz\t\"brkhi%\"\nbreakhi:.long\t0\t/* Breakpoint (top of range) */\n\n\t.short\t0\t/* Padding */\nlink28:\t.long\tlink29 - link28\n\t.asciz\t\"size{\"\t/* Member name */\n\t.long\tptfmt\t/* Format address */\n\t.long\tsizex\t/* Data address */\n\n\t.short\t0\t/* Padding */\nlink29:\t.long\tlink00 - link29\n\t.asciz\t\"char{\"\t/* Member name */\n\t.long\tptfmt\t/* Format address */\n\t.long\tcharx\t/* Data address */\n\n/* Structure @vdu{o{x%,y%}, l{x%,y%}, p{x%,y%}, tl%, tr%, tt%, tb%, */\n/*                d{x%,y%}, c{x%,y%}, hf%, hr%, */\n/*                g{a&,b&,c&,d&}, t{a&,b&,c&,d&}, m{a&,b&,c&,d&}} */\n\n\t.byte\t0\t/* Padding */\nvdufmt:\t.long\tsndqw-vduvar\t/* Total length (bytes) */\n\nvlnk00:\t.long\tvlnk01 - vlnk00\t/* Link to next */\n\t.asciz\t\"o{\"\t/* Member name */\n\t.long\tptfmt\t/* Format address */\n\t.long\torigx-vduvar\t/* Data offset */\n\n\t.byte\t0\t/* Padding */\nvlnk01:\t.long\tvlnk02 - vlnk01\n\t.asciz\t\"l{\"\t/* Member name */\n\t.long\tptfmt\t/* Format address */\n\t.long\tlastx-vduvar\t/* Data offset */\n\n\t.byte\t0\t/* Padding */\nvlnk02:\t.long\tvlnk03 - vlnk02\n\t.asciz\t\"p{\"\t/* Member name */\n\t.long\tptfmt\t/* Format address */\n\t.long\tprevx-vduvar\t/* Data offset */\n\nvlnk03:\t.long\tvlnk04 - vlnk03\n\t.asciz\t\"tl%\"\t/* Member name */\n\t.long\ttextwl-vduvar\t/* Data offset */\n\nvlnk04:\t.long\tvlnk05 - vlnk04\n\t.asciz\t\"tr%\"\t/* Member name */\n\t.long\ttextwr-vduvar\t/* Data offset */\n\nvlnk05:\t.long\tvlnk06 - vlnk05\n\t.asciz\t\"tt%\"\t/* Member name */\n\t.long\ttextwt-vduvar\t/* Data offset */\n\nvlnk06:\t.long\tvlnk07 - vlnk06\n\t.asciz\t\"tb%\"\t/* Member name */\n\t.long\ttextwb-vduvar\t/* Data offset */\n\n\t.byte\t0\t/* Padding */\nvlnk07:\t.long\tvlnk08 - vlnk07\n\t.asciz\t\"d{\"\t/* Member name */\n\t.long\tptfmt\t/* Format address */\n\t.long\tpixelx-vduvar\t/* Data offset */\n\n\t.byte\t0\t/* Padding */\nvlnk08:\t.long\tvlnk09 - vlnk08\n\t.asciz\t\"c{\"\t/* Member name */\n\t.long\tptfmt\t/* Format address */\n\t.long\ttextx-vduvar\t/* Data offset */\n\nvlnk09:\t.long\tvlnk10 - vlnk09\n\t.asciz\t\"hf%\"\t/* Member name */\n\t.long\thfont-vduvar\t/* Data offset */\n\nvlnk10:\t.long\tvlnk11 - vlnk10\n\t.asciz\t\"hr%\"\t/* Member name */\n\t.long\threct-vduvar\t/* Data offset */\n\n\t.byte\t0\t/* Padding */\nvlnk11:\t.long\tvlnk12 - vlnk11\n\t.asciz\t\"g{\"\t/* Member name */\n\t.long\tb4fmt\t/* Format address */\n\t.long\tforgnd-vduvar\t/* Data offset */\n\n\t.byte\t0\t/* Padding */\nvlnk12:\t.long\tvlnk13 - vlnk12\n\t.asciz\t\"t{\"\t/* Member name */\n\t.long\tb4fmt\t/* Format address */\n\t.long\tcursa-vduvar\t/* Data offset */\n\n\t.byte\t0\t/* Padding */\nvlnk13:\t.long\tvlnk14 - vlnk13\n\t.asciz\t\"m{\"\t/* Member name */\n\t.long\tb4fmt\t/* Format address */\n\t.long\tmodeno-vduvar\t/* Data offset */\n\n\t.byte\t0\t/* Padding */\nvlnk14:\t.long\t0\n\t.asciz\t\"w{\"\t/* Member name */\n\t.long\tb4fmt\t/* Format address */\n\t.long\tcursx-vduvar\t/* Data offset */\n\n\t.byte\t0,0,0\t/* Padding */\nlink00:\t.long\t0\t/* End of list */\n\t.asciz\t\"fn%(\"\n\t.long\tfnarr\t/* Pointer to function array */\n\n/* Structure {x%,y%} */\n\nptfmt:\t.long\t8\t\t/* Total length (bytes) */\nptlnk0:\t.long\tptlnk1 - ptlnk0\t/* Link to next member */\n\t.asciz\t\"x%\"\t\t/* Member name */\n\t.long\t0\t\t/* Member offset (bytes) */\nptlnk1:\t.long\t0\t\t/* Terminating link */\n\t.asciz\t\"y%\"\t\t/* Member name */\n\t.long\t4\t\t/* Member offset (bytes) */\n\n/* Structure {a&,b&,c&,d&} */\n\nb4fmt:\t.long\t4\t\t/* Total length (bytes) */\nb4lnk0:\t.long\tb4lnk1 - b4lnk0\t/* Link to next member */\n\t.asciz\t\"a&\"\t\t/* Member name */\n\t.long\t0\t\t/* Member offset (bytes) */\nb4lnk1:\t.long\tb4lnk2 - b4lnk1\t/* Link to next member */\n\t.asciz\t\"b&\"\t\t/* Member name */\n\t.long\t1\t\t/* Member offset (bytes) */\nb4lnk2:\t.long\tb4lnk3 - b4lnk2\t/* Link to next member */\n\t.asciz\t\"c&\"\t\t/* Member name */\n\t.long\t2\t\t/* Member offset (bytes) */\nb4lnk3:\t.long\t0\t\t/* Terminating link */\n\t.asciz\t\"d&\"\t\t/* Member name */\n\t.long\t3\t\t/* Member offset (bytes) */\n\n/* Array of function entry points */\n\nfnarr:\t.byte\t1\t\t/* Number of dimensions */\n\t.long\t22\t\t/* Number of entries */\n\t.long\tloadn\t\t/* Load numeric */\n\t.long\tloads\t\t/* Load string */\n\t.long\tstoren\t\t/* Store numeric */\n\t.long\tstores\t\t/* Store string */\n\t.long\tgetvar\t\t/* Get variable address & type */\n\t.long\tputvar\t\t/* Create a variable */\n\t.long\texpr\t\t/* Evaluate expression */\n\t.long\titem\t\t/* Evaluate item */\n\t.long\tlexan\t\t/* Lexical analysis (tokenise) */\n\t.long\ttoken\t\t/* Print character or keyword */\n\t.long\txfloat\t\t/* Convert integer to float */\n\t.long\txfix\t\t/* Convert float to integer */\n\t.long\tstr\t\t/* Convert a number to a string */\n\t.long\tcon\t\t/* Convert a string to a number */\n\t.long\tsortup\t\t/* (Reserved in BBCSDL) */\n\t.long\tsortdn\t\t/* (Reserved in BBCSDL) */\n\t.long\t0\t\t/* Reserved for hook */\n\t.long\txeq\t\t/* Run BASIC code */\n\t.long\tputevt\t\t/* Put event in queue */\n\t.long\tgfxPrimitivesGetFont\n\t.long\tgfxPrimitivesSetFont\n\t.long\tRedefineChar\n\n\t.text\n\nfvtab:\t.byte\t1\t\t/* &19 v&  Unsigned byte (8 bits) */\n\t.byte\t4\t\t/* &1A v%  Signed dword (32 bits) */\n\t.byte\t8\t\t/* &1B v#  Float double (64 bits) */\n\t.byte\t10\t\t/* &1C v   Variant numeric (80 bits) */\n\t.byte\t24\t\t/* &1D v{} Structure (4+4 bytes) */\n\t.byte\t40\t\t/* &1E v%% Signed qword (64 bits) */\n\t.byte\t136\t\t/* &1F v$  String (4+4 bytes) */\n\n\t.align\t8\nbbcfont:\n\t.byte\t0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 /* NUL */\n\t.byte\t0x7E,0x81,0xA5,0x81,0xBD,0x99,0x81,0x7E /* SOH */\n\t.byte\t0x7E,0xFF,0xDB,0xFF,0xC3,0xE7,0xFF,0x7E /* STX */\n\t.byte\t0x6C,0xFE,0xFE,0xFE,0x7C,0x38,0x10,0x00 /* ETX */\n\t.byte\t0x10,0x38,0x7C,0xFE,0x7C,0x38,0x10,0x00 /* EOT */\n\t.byte\t0x10,0x38,0x38,0xD6,0xFE,0xD6,0x10,0x38 /* ENQ */\n\t.byte\t0x10,0x38,0x7C,0xFE,0xFE,0xFE,0x38,0x7C /* ACK */\n\t.byte\t0x00,0x00,0x18,0x3C,0x3C,0x18,0x00,0x00 /* BEL */\n\t.byte\t0xFF,0xFF,0xE7,0xC3,0xC3,0xE7,0xFF,0xFF /* BS */\n\t.byte\t0x00,0x3C,0x66,0x42,0x42,0x66,0x3C,0x00 /* HT */\n\t.byte\t0xFF,0xC3,0x99,0xBD,0xBD,0x99,0xC3,0xFF /* LF */\n\t.byte\t0x0F,0x07,0x0F,0x7D,0xCC,0xCC,0xCC,0x78 /* VT */\n\t.byte\t0x3C,0x66,0x66,0x66,0x3C,0x18,0x7E,0x18 /* FF */\n\t.byte\t0x3F,0x33,0x3F,0x30,0x30,0x70,0xF0,0xE0 /* CR */\n\t.byte\t0x7F,0x63,0x7F,0x63,0x63,0x67,0xE6,0xC0 /* SO */\n\t.byte\t0x99,0x5A,0x3C,0xE7,0xE7,0x3C,0x5A,0x99 /* SI */\n\t.byte\t0x80,0xE0,0xF8,0xFE,0xF8,0xE0,0x80,0x00 /* DLE */\n\t.byte\t0x02,0x0E,0x3E,0xFE,0x3E,0x0E,0x02,0x00 /* DC1 */\n\t.byte\t0x18,0x3C,0x7E,0x18,0x18,0x7E,0x3C,0x18 /* DC2 */\n\t.byte\t0x66,0x66,0x66,0x66,0x66,0x00,0x66,0x00 /* DC3 */\n\t.byte\t0x7F,0xDB,0xDB,0x7B,0x1B,0x1B,0x1B,0x00 /* DC4 */\n\t.byte\t0x3E,0x63,0x38,0x6C,0x6C,0x38,0xCC,0x78 /* NAK */\n\t.byte\t0x00,0x00,0x00,0x00,0x7E,0x7E,0x7E,0x00 /* SYN */\n\t.byte\t0x18,0x3C,0x7E,0x18,0x7E,0x3C,0x18,0xFF /* ETB */\n\t.byte\t0x18,0x3C,0x7E,0x18,0x18,0x18,0x18,0x00 /* CAN */\n\t.byte\t0x18,0x18,0x18,0x18,0x7E,0x3C,0x18,0x00 /* EM */\n\t.byte\t0x00,0x18,0x0C,0xFE,0x0C,0x18,0x00,0x00 /* SUB */\n\t.byte\t0x00,0x30,0x60,0xFE,0x60,0x30,0x00,0x00 /* ESC */\n\t.byte\t0x00,0x00,0xC0,0xC0,0xC0,0xFE,0x00,0x00 /* FS */\n\t.byte\t0x00,0x24,0x66,0xFF,0x66,0x24,0x00,0x00 /* GS */\n\t.byte\t0x00,0x18,0x3C,0x7E,0xFF,0xFF,0x00,0x00 /* RS */\n\t.byte\t0x00,0xFF,0xFF,0x7E,0x3C,0x18,0x00,0x00 /* US */\n\t.byte\t0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 /*   */\n\t.byte\t0x30,0x30,0x30,0x30,0x30,0x00,0x30,0x00 /* ! */\n\t.byte\t0x6C,0x6C,0x6C,0x00,0x00,0x00,0x00,0x00 /* \" */\n\t.byte\t0x6C,0x6C,0xFE,0x6C,0xFE,0x6C,0x6C,0x00 /* # */\n\t.byte\t0x18,0x7E,0xD0,0x7C,0x16,0xFC,0x30,0x00 /* $ */\n\t.byte\t0xC0,0xCC,0x18,0x30,0x60,0xCC,0x0C,0x00 /* % */\n\t.byte\t0x38,0x6C,0x38,0x76,0xDC,0xCC,0x76,0x00 /* & */\n\t.byte\t0x18,0x30,0x60,0x00,0x00,0x00,0x00,0x00 /* ' */\n\t.byte\t0x18,0x30,0x60,0x60,0x60,0x30,0x18,0x00 /* ( */\n\t.byte\t0x60,0x30,0x18,0x18,0x18,0x30,0x60,0x00 /* ) */\n\t.byte\t0x00,0x6C,0x38,0xFE,0x38,0x6C,0x00,0x00 /* * */\n\t.byte\t0x00,0x30,0x30,0xFC,0x30,0x30,0x00,0x00 /* + */\n\t.byte\t0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x60 /* , */\n\t.byte\t0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00 /* - */\n\t.byte\t0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00 /* . */\n\t.byte\t0x00,0x0C,0x18,0x30,0x60,0xC0,0x00,0x00 /* / */\n\t.byte\t0x78,0xCC,0xDC,0xFC,0xEC,0xCC,0x78,0x00 /* 0 */\n\t.byte\t0x30,0x70,0x30,0x30,0x30,0x30,0xFC,0x00 /* 1 */\n\t.byte\t0x78,0xCC,0x0C,0x18,0x30,0x60,0xFC,0x00 /* 2 */\n\t.byte\t0x78,0xCC,0x0C,0x38,0x0C,0xCC,0x78,0x00 /* 3 */\n\t.byte\t0x18,0x38,0x78,0xD8,0xFC,0x18,0x18,0x00 /* 4 */\n\t.byte\t0xFC,0xC0,0xF8,0x0C,0x0C,0xCC,0x78,0x00 /* 5 */\n\t.byte\t0x38,0x60,0xC0,0xF8,0xCC,0xCC,0x78,0x00 /* 6 */\n\t.byte\t0xFC,0x0C,0x18,0x30,0x60,0x60,0x60,0x00 /* 7 */\n\t.byte\t0x78,0xCC,0xCC,0x78,0xCC,0xCC,0x78,0x00 /* 8 */\n\t.byte\t0x78,0xCC,0xCC,0x7C,0x0C,0x18,0x70,0x00 /* 9 */\n\t.byte\t0x00,0x00,0x30,0x30,0x00,0x30,0x30,0x00 /* : */\n\t.byte\t0x00,0x00,0x30,0x30,0x00,0x30,0x30,0x60 /* ; */\n\t.byte\t0x18,0x30,0x60,0xC0,0x60,0x30,0x18,0x00 /* < */\n\t.byte\t0x00,0x00,0xFC,0x00,0xFC,0x00,0x00,0x00 /* = */\n\t.byte\t0x60,0x30,0x18,0x0C,0x18,0x30,0x60,0x00 /* > */\n\t.byte\t0x78,0xCC,0x18,0x30,0x30,0x00,0x30,0x00 /* ? */\n\t.byte\t0x78,0xCC,0xDC,0xD4,0xDC,0xC0,0x78,0x00 /* @ */\n\t.byte\t0x78,0xCC,0xCC,0xFC,0xCC,0xCC,0xCC,0x00 /* A */\n\t.byte\t0xF8,0xCC,0xCC,0xF8,0xCC,0xCC,0xF8,0x00 /* B */\n\t.byte\t0x78,0xCC,0xC0,0xC0,0xC0,0xCC,0x78,0x00 /* C */\n\t.byte\t0xF0,0xD8,0xCC,0xCC,0xCC,0xD8,0xF0,0x00 /* D */\n\t.byte\t0xFC,0xC0,0xC0,0xF8,0xC0,0xC0,0xFC,0x00 /* E */\n\t.byte\t0xFC,0xC0,0xC0,0xF8,0xC0,0xC0,0xC0,0x00 /* F */\n\t.byte\t0x78,0xCC,0xC0,0xDC,0xCC,0xCC,0x78,0x00 /* G */\n\t.byte\t0xCC,0xCC,0xCC,0xFC,0xCC,0xCC,0xCC,0x00 /* H */\n\t.byte\t0xFC,0x30,0x30,0x30,0x30,0x30,0xFC,0x00 /* I */\n\t.byte\t0x7C,0x18,0x18,0x18,0x18,0xD8,0x70,0x00 /* J */\n\t.byte\t0xCC,0xD8,0xF0,0xE0,0xF0,0xD8,0xCC,0x00 /* K */\n\t.byte\t0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xFC,0x00 /* L */\n\t.byte\t0xC6,0xEE,0xFE,0xD6,0xD6,0xC6,0xC6,0x00 /* M */\n\t.byte\t0xCC,0xCC,0xEC,0xFC,0xDC,0xCC,0xCC,0x00 /* N */\n\t.byte\t0x78,0xCC,0xCC,0xCC,0xCC,0xCC,0x78,0x00 /* O */\n\t.byte\t0xF8,0xCC,0xCC,0xF8,0xC0,0xC0,0xC0,0x00 /* P */\n\t.byte\t0x78,0xCC,0xCC,0xCC,0xDC,0x78,0x1C,0x00 /* Q */\n\t.byte\t0xF8,0xCC,0xCC,0xF8,0xD8,0xCC,0xCC,0x00 /* R */\n\t.byte\t0x78,0xCC,0xC0,0x78,0x0C,0xCC,0x78,0x00 /* S */\n\t.byte\t0xFC,0x30,0x30,0x30,0x30,0x30,0x30,0x00 /* T */\n\t.byte\t0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x78,0x00 /* U */\n\t.byte\t0xCC,0xCC,0xCC,0xCC,0xCC,0x78,0x30,0x00 /* V */\n\t.byte\t0xC6,0xC6,0xD6,0xD6,0xFE,0xEE,0xC6,0x00 /* W */\n\t.byte\t0xCC,0xCC,0x78,0x30,0x78,0xCC,0xCC,0x00 /* X */\n\t.byte\t0xCC,0xCC,0xCC,0x78,0x30,0x30,0x30,0x00 /* Y */\n\t.byte\t0xFC,0x0C,0x18,0x30,0x60,0xC0,0xFC,0x00 /* Z */\n\t.byte\t0xF8,0xC0,0xC0,0xC0,0xC0,0xC0,0xF8,0x00 /* [ */\n\t.byte\t0x00,0xC0,0x60,0x30,0x18,0x0C,0x00,0x00 /* \\ */\n\t.byte\t0x7C,0x0C,0x0C,0x0C,0x0C,0x0C,0x7C,0x00 /* ] */\n\t.byte\t0x10,0x38,0x6C,0xC6,0x00,0x00,0x00,0x00 /* ^ */\n\t.byte\t0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF /* _ */\n\t.byte\t0x60,0x30,0x18,0x00,0x00,0x00,0x00,0x00 /* ` */\n\t.byte\t0x00,0x00,0x78,0x0C,0x7C,0xCC,0x7C,0x00 /* a */\n\t.byte\t0xC0,0xC0,0xF8,0xCC,0xCC,0xCC,0xF8,0x00 /* b */\n\t.byte\t0x00,0x00,0x78,0xCC,0xC0,0xCC,0x78,0x00 /* c */\n\t.byte\t0x0C,0x0C,0x7C,0xCC,0xCC,0xCC,0x7C,0x00 /* d */\n\t.byte\t0x00,0x00,0x78,0xCC,0xFC,0xC0,0x78,0x00 /* e */\n\t.byte\t0x38,0x60,0x60,0xF8,0x60,0x60,0x60,0x00 /* f */\n\t.byte\t0x00,0x00,0x7C,0xCC,0xCC,0x7C,0x0C,0x78 /* g */\n\t.byte\t0xC0,0xC0,0xF8,0xCC,0xCC,0xCC,0xCC,0x00 /* h */\n\t.byte\t0x30,0x00,0x70,0x30,0x30,0x30,0x78,0x00 /* i */\n\t.byte\t0x30,0x00,0x70,0x30,0x30,0x30,0x30,0xE0 /* j */\n\t.byte\t0xC0,0xC0,0xCC,0xD8,0xF0,0xD8,0xCC,0x00 /* k */\n\t.byte\t0x70,0x30,0x30,0x30,0x30,0x30,0x78,0x00 /* l */\n\t.byte\t0x00,0x00,0x6C,0xFE,0xD6,0xD6,0xC6,0x00 /* m */\n\t.byte\t0x00,0x00,0xF8,0xCC,0xCC,0xCC,0xCC,0x00 /* n */\n\t.byte\t0x00,0x00,0x78,0xCC,0xCC,0xCC,0x78,0x00 /* o */\n\t.byte\t0x00,0x00,0xF8,0xCC,0xCC,0xF8,0xC0,0xC0 /* p */\n\t.byte\t0x00,0x00,0x7C,0xCC,0xCC,0x7C,0x0C,0x0E /* q */\n\t.byte\t0x00,0x00,0xD8,0xEC,0xC0,0xC0,0xC0,0x00 /* r */\n\t.byte\t0x00,0x00,0x7C,0xC0,0x78,0x0C,0xF8,0x00 /* s */\n\t.byte\t0x60,0x60,0xF8,0x60,0x60,0x60,0x38,0x00 /* t */\n\t.byte\t0x00,0x00,0xCC,0xCC,0xCC,0xCC,0x7C,0x00 /* u */\n\t.byte\t0x00,0x00,0xCC,0xCC,0xCC,0x78,0x30,0x00 /* v */\n\t.byte\t0x00,0x00,0xC6,0xD6,0xD6,0xFE,0x6C,0x00 /* w */\n\t.byte\t0x00,0x00,0xCC,0x78,0x30,0x78,0xCC,0x00 /* x */\n\t.byte\t0x00,0x00,0xCC,0xCC,0xCC,0x7C,0x0C,0x78 /* y */\n\t.byte\t0x00,0x00,0xFC,0x18,0x30,0x60,0xFC,0x00 /* z */\n\t.byte\t0x18,0x30,0x30,0xE0,0x30,0x30,0x18,0x00 /* { */\n\t.byte\t0x30,0x30,0x30,0x00,0x30,0x30,0x30,0x00 /* | */\n\t.byte\t0x60,0x30,0x30,0x1C,0x30,0x30,0x60,0x00 /* } */\n\t.byte\t0x76,0xDC,0x00,0x00,0x00,0x00,0x00,0x00 /* ~ */\n\t.byte\t0x00,0x10,0x38,0x6C,0xC6,0xC6,0xFE,0x00 /* DEL */\n\t.byte\t0x3C,0x62,0xF8,0x60,0xF8,0x62,0x3C,0x00 /* &80 euro symbol */\n\t.byte\t0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00 /* &81 block (teletext) */\n\t.byte\t0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x30 /* &82 single low quotation mark */\n\t.byte\t0x00,0x0C,0x18,0x18,0x3C,0x18,0x18,0x70 /* &83 small letter f with hook */\n\t.byte\t0x00,0x00,0x00,0x00,0x00,0x6C,0x6C,0xD8 /* &84 double low quotation mark */\n\t.byte\t0x00,0x00,0x00,0x00,0x00,0x00,0x54,0x00 /* &85 horizontal ellipsis */\n\t.byte\t0x18,0x18,0x7E,0x18,0x18,0x18,0x18,0x00 /* &86 dagger */\n\t.byte\t0x18,0x18,0x7E,0x18,0x18,0x7E,0x18,0x18 /* &87 double dagger */\n\t.byte\t0x10,0x38,0x6C,0x00,0x00,0x00,0x00,0x00 /* &88 circumflex accent */\n\t.byte\t0xC6,0xCC,0x18,0x30,0x60,0xDB,0x1B,0x00 /* &89 per mille */\n\t.byte\t0x38,0x7C,0xC6,0x70,0x1C,0xC6,0x7C,0x00 /* &8A capital S caron */\n\t.byte\t0x00,0x18,0x30,0x60,0x30,0x18,0x00,0x00 /* &8B left angle quotation mark */\n\t.byte\t0x7E,0xD8,0xD8,0xDE,0xD8,0xD8,0x7E,0x00 /* &8C capital OE ligature */\n\t.byte\t0x30,0x78,0xFC,0x30,0x30,0x30,0x30,0x00 /* &8D up arrow (teletext) */\n\t.byte\t0x38,0xFE,0x0C,0x18,0x30,0x60,0xFE,0x00 /* &8E capital Z caron */\n\t.byte\t0x00,0x20,0x60,0xFE,0x60,0x20,0x00,0x00 /* &8F left arrow (teletext) */\n\t.byte\t0x00,0x08,0x0C,0xFE,0x0C,0x08,0x00,0x00 /* &90 right arrow (teletext) */\n\t.byte\t0x30,0x30,0x18,0x00,0x00,0x00,0x00,0x00 /* &91 left single quotation mark */\n\t.byte\t0x18,0x18,0x30,0x00,0x00,0x00,0x00,0x00 /* &92 right single quotation mark */\n\t.byte\t0x6C,0x6C,0x36,0x00,0x00,0x00,0x00,0x00 /* &93 left double quotation mark */\n\t.byte\t0x36,0x36,0x6C,0x00,0x00,0x00,0x00,0x00 /* &94 right double quotation mark */\n\t.byte\t0x00,0x00,0x18,0x3C,0x3C,0x18,0x00,0x00 /* &95 bullet */\n\t.byte\t0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00 /* &96 en dash */\n\t.byte\t0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00 /* &97 em dash */\n\t.byte\t0x36,0x6C,0x00,0x00,0x00,0x00,0x00,0x00 /* &98 small tilde */\n\t.byte\t0xEA,0x4E,0x4A,0x4A,0x00,0x00,0x00,0x00 /* &99 trade mark sign */\n\t.byte\t0x6C,0x38,0x7C,0xC0,0x78,0x0C,0xF8,0x00 /* &9A small S caron */\n\t.byte\t0x00,0x30,0x18,0x0C,0x18,0x30,0x00,0x00 /* &9B right angle quotation mark */\n\t.byte\t0x00,0x00,0x7E,0xDB,0xDF,0xD8,0x7F,0x00 /* &9C small OE ligature */\n\t.byte\t0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x00 /* &9D double line (teletext) */\n\t.byte\t0x6C,0x38,0x7C,0x18,0x30,0x60,0x7C,0x00 /* &9E small Z caron */\n\t.byte\t0xCC,0x00,0xCC,0xCC,0x78,0x30,0x30,0x00 /* &9F capital Y diaeresis */\n\t.byte\t0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 /*   */\n\t.byte\t0x18,0x00,0x18,0x18,0x18,0x18,0x18,0x00 /*   */\n\t.byte\t0x00,0x18,0x7E,0xD8,0xD8,0x7E,0x18,0x00 /*   */\n\t.byte\t0x38,0x6C,0x60,0xF0,0x60,0x66,0xFC,0x00 /*   */\n\t.byte\t0x66,0x3C,0x66,0x3C,0x66,0x00,0x00,0x00 /*   */\n\t.byte\t0xC3,0x66,0x3C,0x18,0x3C,0x18,0x18,0x00 /*   */\n\t.byte\t0x18,0x18,0x18,0x00,0x18,0x18,0x18,0x00 /*   */\n\t.byte\t0x3C,0x60,0x3C,0x66,0x66,0x3C,0x06,0x3C /*   */\n\t.byte\t0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00 /*   */\n\t.byte\t0x7E,0x81,0x9D,0xB1,0xB1,0x9D,0x81,0x7E /*   */\n\t.byte\t0x3C,0x6C,0x6C,0x3E,0x00,0x7E,0x00,0x00 /*   */\n\t.byte\t0x00,0x33,0x66,0xCC,0x66,0x33,0x00,0x00 /*   */\n\t.byte\t0x00,0x7E,0x06,0x06,0x00,0x00,0x00,0x00 /*   */\n\t.byte\t0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x00\n\t.byte\t0x7E,0x81,0xB9,0xA5,0xB9,0xA5,0x81,0x7E /*   */\n\t.byte\t0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00 /*   */\n\t.byte\t0x3C,0x66,0x3C,0x00,0x00,0x00,0x00,0x00 /*   */\n\t.byte\t0x18,0x18,0x7E,0x18,0x18,0x00,0x7E,0x00 /*   */\n\t.byte\t0x70,0x18,0x30,0x60,0x78,0x00,0x00,0x00 /*   */\n\t.byte\t0x78,0x0C,0x18,0x0C,0x78,0x00,0x00,0x00 /*   */\n\t.byte\t0x0C,0x18,0x30,0x00,0x00,0x00,0x00,0x00 /*   */\n\t.byte\t0x00,0x00,0x66,0x66,0x66,0x7C,0x60,0xC0 /*   */\n\t.byte\t0x3E,0x7A,0x7A,0x3A,0x1A,0x1A,0x1A,0x00 /*   */\n\t.byte\t0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00 /*   */\n\t.byte\t0x00,0x00,0x00,0x00,0x00,0x08,0x18,0x00 /*   */\n\t.byte\t0x30,0x70,0x30,0x30,0x30,0x00,0x00,0x00 /*   */\n\t.byte\t0x38,0x6C,0x6C,0x38,0x00,0x7C,0x00,0x00 /*   */\n\t.byte\t0x00,0xCC,0x66,0x33,0x66,0xCC,0x00,0x00 /*   */\n\t.byte\t0x43,0xC6,0x4C,0x5A,0x36,0x6A,0xCF,0x02 /*   */\n\t.byte\t0x40,0xC6,0x4C,0x5E,0x33,0x66,0xCC,0x0F /*   */\n\t.byte\t0xC0,0x23,0x66,0x2D,0xDB,0x35,0x67,0x01 /*   */\n\t.byte\t0x18,0x00,0x18,0x30,0x60,0x66,0x3C,0x00 /*   */\n\t.byte\t0x70,0x00,0x3C,0x66,0x7E,0x66,0x66,0x00 /*   */\n\t.byte\t0x0E,0x00,0x3C,0x66,0x7E,0x66,0x66,0x00 /*   */\n\t.byte\t0x18,0x66,0x00,0x3C,0x66,0x7E,0x66,0x00 /*   */\n\t.byte\t0x76,0xDC,0x00,0x3C,0x66,0x7E,0x66,0x00 /*   */\n\t.byte\t0x66,0x00,0x3C,0x66,0x7E,0x66,0x66,0x00 /*   */\n\t.byte\t0x18,0x18,0x00,0x3C,0x66,0x7E,0x66,0x00 /*   */\n\t.byte\t0x3F,0x6C,0xCC,0xFE,0xCC,0xCC,0xCF,0x00 /*   */\n\t.byte\t0x3C,0x66,0x60,0x60,0x60,0x66,0x3C,0x18 /*   */\n\t.byte\t0x70,0x00,0x3C,0x66,0x7E,0x66,0x66,0x00 /*   */\n\t.byte\t0x0E,0x00,0x3C,0x66,0x7E,0x66,0x66,0x00 /*   */\n\t.byte\t0x18,0x66,0x00,0xFE,0xF0,0xC0,0xFE,0x00 /*   */\n\t.byte\t0x66,0x00,0x3C,0x66,0x7E,0x66,0x66,0x00 /*   */\n\t.byte\t0x70,0x00,0x7E,0x18,0x18,0x18,0x7E,0x00 /*   */\n\t.byte\t0x0E,0x00,0x7E,0x18,0x18,0x18,0x7E,0x00 /*   */\n\t.byte\t0x18,0x66,0x00,0x7E,0x18,0x18,0x7E,0x00 /*   */\n\t.byte\t0x66,0x00,0x7E,0x18,0x18,0x18,0x7E,0x00 /*   */\n\t.byte\t0x78,0x6C,0x66,0xF6,0x66,0x6C,0x78,0x00 /*   */\n\t.byte\t0x76,0xDC,0x00,0xC6,0xF6,0xDE,0xC6,0x00 /*   */\n\t.byte\t0x70,0x00,0x7C,0xC6,0xC6,0xC6,0x7C,0x00 /*   */\n\t.byte\t0x0E,0x00,0x7C,0xC6,0xC6,0xC6,0x7C,0x00 /*   */\n\t.byte\t0x18,0x66,0x00,0x7C,0xC6,0xC6,0x7C,0x00 /*   */\n\t.byte\t0x76,0xDC,0x00,0x7C,0xC6,0xC6,0x7C,0x00 /*   */\n\t.byte\t0x66,0x00,0x7C,0xC6,0xC6,0xC6,0x7C,0x00 /*   */\n\t.byte\t0x00,0xC6,0x6C,0x38,0x6C,0xC6,0x00,0x00 /*   */\n\t.byte\t0x3E,0x66,0x6E,0x7E,0x76,0x66,0x7C,0x00 /*   */\n\t.byte\t0x70,0x00,0xC6,0xC6,0xC6,0xC6,0x7C,0x00 /*   */\n\t.byte\t0x0E,0x00,0xC6,0xC6,0xC6,0xC6,0x7C,0x00 /*   */\n\t.byte\t0x18,0x66,0x00,0xC6,0xC6,0xC6,0x7C,0x00 /*   */\n\t.byte\t0x66,0x00,0xC6,0xC6,0xC6,0xC6,0x7C,0x00 /*   */\n\t.byte\t0x0E,0x00,0x66,0x66,0x3C,0x18,0x18,0x00 /*   */\n\t.byte\t0xC0,0xC0,0xFC,0xC6,0xFC,0xC0,0xC0,0x00 /*   */\n\t.byte\t0x3C,0x66,0x66,0x6C,0x66,0x66,0x6C,0x00 /*   */\n\t.byte\t0x70,0x00,0x3C,0x06,0x3E,0x66,0x3E,0x00 /*   */\n\t.byte\t0x0E,0x00,0x3C,0x06,0x3E,0x66,0x3E,0x00 /*   */\n\t.byte\t0x18,0x66,0x00,0x3E,0x66,0xC6,0x7E,0x00 /*   */\n\t.byte\t0x76,0xDC,0x00,0x3E,0x66,0xC6,0x7E,0x00 /*   */\n\t.byte\t0x66,0x00,0x3C,0x06,0x3E,0x66,0x3E,0x00 /*   */\n\t.byte\t0x18,0x18,0x00,0x3E,0x66,0xC6,0x7E,0x00 /*   */\n\t.byte\t0x00,0x00,0x7E,0x1B,0x7F,0xD8,0x77,0x00 /*   */\n\t.byte\t0x00,0x00,0x3C,0x60,0x60,0x60,0x3C,0x18 /*   */\n\t.byte\t0x70,0x00,0x3C,0x66,0x7E,0x60,0x3C,0x00 /*   */\n\t.byte\t0x0E,0x00,0x3C,0x66,0x7E,0x60,0x3C,0x00 /*   */\n\t.byte\t0x18,0x66,0x00,0x3C,0x7E,0x60,0x3C,0x00 /*   */\n\t.byte\t0x66,0x00,0x3C,0x66,0x7E,0x60,0x3C,0x00 /*   */\n\t.byte\t0x70,0x00,0x38,0x18,0x18,0x18,0x3C,0x00 /*   */\n\t.byte\t0x0E,0x00,0x38,0x18,0x18,0x18,0x3C,0x00 /*   */\n\t.byte\t0x18,0x66,0x00,0x38,0x18,0x18,0x3C,0x00 /*   */\n\t.byte\t0x66,0x00,0x38,0x18,0x18,0x18,0x3C,0x00 /*   */\n\t.byte\t0x0C,0x3E,0x0C,0x7C,0xCC,0xCC,0x78,0x00 /*   */\n\t.byte\t0x76,0xDC,0x00,0x7C,0x66,0x66,0x66,0x00 /*   */\n\t.byte\t0x70,0x00,0x3C,0x66,0x66,0x66,0x3C,0x00 /*   */\n\t.byte\t0x0E,0x00,0x3C,0x66,0x66,0x66,0x3C,0x00 /*   */\n\t.byte\t0x18,0x66,0x00,0x3C,0x66,0x66,0x3C,0x00 /*   */\n\t.byte\t0x76,0xDC,0x00,0x3C,0x66,0x66,0x3C,0x00 /*   */\n\t.byte\t0x66,0x00,0x3C,0x66,0x66,0x66,0x3C,0x00 /*   */\n\t.byte\t0x18,0x18,0x00,0x7E,0x00,0x18,0x18,0x00 /*   */\n\t.byte\t0x00,0x02,0x7C,0xCE,0xD6,0xE6,0x7C,0x80 /*   */\n\t.byte\t0x70,0x00,0x66,0x66,0x66,0x66,0x3E,0x00 /*   */\n\t.byte\t0x0E,0x00,0x66,0x66,0x66,0x66,0x3E,0x00 /*   */\n\t.byte\t0x18,0x66,0x00,0x66,0x66,0x66,0x3E,0x00 /*   */\n\t.byte\t0x66,0x00,0x66,0x66,0x66,0x66,0x3E,0x00 /*   */\n\t.byte\t0x0E,0x00,0x66,0x66,0x66,0x3E,0x06,0x3C /*   */\n\t.byte\t0x60,0x60,0x7C,0x66,0x66,0x7C,0x60,0x60 /*   */\n\t.byte\t0x66,0x00,0x66,0x66,0x66,0x3E,0x06,0x3C /*   */\n\nttxtfont:\n\t.short\t0x0000,0x0011,0x0011,0x0019,0x0015,0x0013,0x0011,0x0011,0x8800,0x8800,0x8800,0x8800,0x8800,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000 /* NU */\n\t.short\t0x0000,0x000E,0x0011,0x0011,0x001F,0x0011,0x0011,0x0011,0xF000,0x8800,0x8800,0xF000,0x8800,0x8800,0x8800,0x0000,0x0000,0x0000,0x0000,0x0000 /* AR */\n\t.short\t0x0000,0x000E,0x0011,0x0011,0x001F,0x0011,0x0011,0x0011,0x7000,0x8800,0x8000,0x9800,0x8800,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000 /* AG */\n\t.short\t0x0000,0x000E,0x0011,0x0011,0x001F,0x0011,0x0011,0x0011,0x8800,0x8800,0x5000,0x2000,0x2000,0x2000,0x2000,0x0000,0x0000,0x0000,0x0000,0x0000 /* AY */\n\t.short\t0x0000,0x000E,0x0011,0x0011,0x001F,0x0011,0x0011,0x0011,0xF000,0x8800,0x8800,0xF000,0x8800,0x8800,0xF000,0x0000,0x0000,0x0000,0x0000,0x0000 /* AB */\n\t.short\t0x0000,0x000E,0x0011,0x0011,0x001F,0x0011,0x0011,0x0011,0x8800,0xD800,0xA800,0xA800,0x8800,0x8800,0x8800,0x0000,0x0000,0x0000,0x0000,0x0000 /* AM */\n\t.short\t0x0000,0x000E,0x0011,0x0011,0x001F,0x0011,0x0011,0x0011,0x7000,0x8800,0x8000,0x8000,0x8000,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000 /* AC */\n\t.short\t0x0000,0x000E,0x0011,0x0011,0x001F,0x0011,0x0011,0x0011,0x8800,0x8800,0x8800,0xA800,0xA800,0xD800,0x8800,0x0000,0x0000,0x0000,0x0000,0x0000 /* AW */\n\t.short\t0x0000,0x001F,0x0010,0x0010,0x001E,0x0010,0x0010,0x0010,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0xF800,0x0000,0x0000,0x0000,0x0000,0x0000 /* FL */\n\t.short\t0x0000,0x000E,0x0011,0x0010,0x000E,0x0001,0x0011,0x000E,0xF800,0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x0000,0x0000,0x0000,0x0000,0x0000 /* ST */\n\t.short\t0x0000,0x001F,0x0010,0x0010,0x001E,0x0010,0x0010,0x001F,0xF000,0x8800,0x8800,0xF000,0x8800,0x8800,0xF000,0x0000,0x0000,0x0000,0x0000,0x0000 /* EB */\n\t.short\t0x0000,0x000E,0x0011,0x0010,0x000E,0x0001,0x0011,0x000E,0xF000,0x8800,0x8800,0xF000,0x8800,0x8800,0xF000,0x0000,0x0000,0x0000,0x0000,0x0000 /* SB */\n\t.short\t0x0000,0x0011,0x0011,0x0019,0x0015,0x0013,0x0011,0x0011,0x8800,0x8800,0x8800,0xF800,0x8800,0x8800,0x8800,0x0000,0x0000,0x0000,0x0000,0x0000 /* NH */\n\t.short\t0x0000,0x001C,0x0012,0x0011,0x0011,0x0011,0x0012,0x001C,0x8800,0x8800,0x8800,0xF800,0x8800,0x8800,0x8800,0x0000,0x0000,0x0000,0x0000,0x0000 /* DH */\n\t.short\t0x0000,0x000E,0x0011,0x0010,0x000E,0x0001,0x0011,0x000E,0x7000,0x8800,0x8800,0x8800,0x8800,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000 /* SO */\n\t.short\t0x0000,0x000E,0x0011,0x0010,0x000E,0x0001,0x0011,0x000E,0x7000,0x2000,0x2000,0x2000,0x2000,0x2000,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000 /* SI */\n\t.short\t0x0000,0x001C,0x0012,0x0011,0x0011,0x0011,0x0012,0x001C,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0xF800,0x0000,0x0000,0x0000,0x0000,0x0000 /* DL */\n\t.short\t0x0000,0x000E,0x0011,0x0010,0x0013,0x0011,0x0011,0x000E,0xF000,0x8800,0x8800,0xF000,0x8800,0x8800,0x8800,0x0000,0x0000,0x0000,0x0000,0x0000 /* GR */\n\t.short\t0x0000,0x000E,0x0011,0x0010,0x0013,0x0011,0x0011,0x000E,0x7000,0x8800,0x8000,0x9800,0x8800,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000 /* GG */\n\t.short\t0x0000,0x000E,0x0011,0x0010,0x0013,0x0011,0x0011,0x000E,0x8800,0x8800,0x5000,0x2000,0x2000,0x2000,0x2000,0x0000,0x0000,0x0000,0x0000,0x0000 /* GY */\n\t.short\t0x0000,0x000E,0x0011,0x0010,0x0013,0x0011,0x0011,0x000E,0xF000,0x8800,0x8800,0xF000,0x8800,0x8800,0xF000,0x0000,0x0000,0x0000,0x0000,0x0000 /* GB */\n\t.short\t0x0000,0x000E,0x0011,0x0010,0x0013,0x0011,0x0011,0x000E,0x8800,0xD800,0xA800,0xA800,0x8800,0x8800,0x8800,0x0000,0x0000,0x0000,0x0000,0x0000 /* GM */\n\t.short\t0x0000,0x000E,0x0011,0x0010,0x0013,0x0011,0x0011,0x000E,0x7000,0x8800,0x8000,0x8000,0x8000,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000 /* GC */\n\t.short\t0x0000,0x000E,0x0011,0x0010,0x0013,0x0011,0x0011,0x000E,0x8800,0x8800,0x8800,0xA800,0xA800,0xD800,0x8800,0x0000,0x0000,0x0000,0x0000,0x0000 /* GW */\n\t.short\t0x0000,0x000E,0x0011,0x0010,0x0010,0x0010,0x0011,0x000E,0xE000,0x9000,0x8800,0x8800,0x8800,0x9000,0xE000,0x0000,0x0000,0x0000,0x0000,0x0000 /* CD */\n\t.short\t0x0000,0x000E,0x0011,0x0010,0x0010,0x0010,0x0011,0x000E,0x7000,0x8800,0x8000,0x9800,0x8800,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000 /* CG */\n\t.short\t0x0000,0x000E,0x0011,0x0010,0x000E,0x0001,0x0011,0x000E,0x7000,0x8800,0x8000,0x9800,0x8800,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000 /* SG */\n\t.short\t0x0000,0x001F,0x0010,0x0010,0x001E,0x0010,0x0010,0x001F,0x7000,0x8800,0x8000,0x7000,0x0800,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000 /* ES */\n\t.short\t0x0000,0x001E,0x0011,0x0011,0x001E,0x0011,0x0011,0x001E,0xF000,0x8800,0x8800,0xF000,0x8800,0x8800,0xF000,0x0000,0x0000,0x0000,0x0000,0x0000 /* BB */\n\t.short\t0x0000,0x0011,0x0011,0x0019,0x0015,0x0013,0x0011,0x0011,0xF000,0x8800,0x8800,0xF000,0x8800,0x8800,0xF000,0x0000,0x0000,0x0000,0x0000,0x0000 /* NB */\n\t.short\t0x0000,0x0011,0x0011,0x0011,0x001F,0x0011,0x0011,0x0011,0x7000,0x8800,0x8000,0x9800,0x8800,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000 /* HG */\n\t.short\t0x0000,0x001E,0x0011,0x0011,0x001E,0x0011,0x0011,0x0011,0x7000,0x8800,0x8000,0x9800,0x8800,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000 /* RG */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /* ! */\n\t.short\t0x0000,0x700E,0x700E,0x700E,0x700E,0x700E,0x700E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* \" */\n\t.short\t0x0000,0x700E,0x700E,0x700E,0x700E,0xFC3F,0xFC3F,0x700E,0x700E,0xFC3F,0xFC3F,0x700E,0x700E,0x700E,0x700E,0x0000,0x0000,0x0000,0x0000,0x0000 /* # */\n\t.short\t0x0000,0xF00F,0xF81F,0x9C39,0x8C31,0x8031,0x8039,0xF01F,0xF80F,0x9C01,0x8C01,0x8C31,0x9C39,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* $ */\n\t.short\t0x0000,0x003C,0x0C3C,0x1C3C,0x383C,0x7000,0xE000,0xC001,0x8003,0x0007,0x000E,0x3C1C,0x3C38,0x3C30,0x3C00,0x0000,0x0000,0x0000,0x0000,0x0000 /* % */\n\t.short\t0x0000,0x000E,0x001F,0x803B,0x8031,0x803B,0x001F,0x000E,0x001F,0x8C3B,0xDC31,0xF830,0xF838,0xDC1F,0x8C0F,0x0000,0x0000,0x0000,0x0000,0x0000 /* & */\n\t.short\t0x0000,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* ' */\n\t.short\t0x0000,0x6000,0xE000,0xC001,0x8003,0x0007,0x0006,0x0006,0x0006,0x0006,0x0007,0x8003,0xC001,0xE000,0x6000,0x0000,0x0000,0x0000,0x0000,0x0000 /* ( */\n\t.short\t0x0000,0x0006,0x0007,0x8003,0xC001,0xE000,0x6000,0x6000,0x6000,0x6000,0xE000,0xC001,0x8003,0x0007,0x0006,0x0000,0x0000,0x0000,0x0000,0x0000 /* ) */\n\t.short\t0x0000,0x8001,0x8001,0x8C31,0x9C39,0xF81F,0xF00F,0x8001,0x8001,0xF00F,0xF81F,0x9C39,0x8C31,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /* * */\n\t.short\t0x0000,0x0000,0x0000,0x8001,0x8001,0x8001,0x8001,0xF81F,0xF81F,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* + */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x8001,0x8003,0x0007,0x0006,0x0000,0x0000,0x0000 /* , */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* - */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /* . */\n\t.short\t0x0000,0x0000,0x0C00,0x1C00,0x3800,0x7000,0xE000,0xC001,0x8003,0x0007,0x000E,0x001C,0x0038,0x0030,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* / */\n\t.short\t0x0000,0xC003,0xE007,0x700E,0x381C,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0x381C,0x700E,0xE007,0xC003,0x0000,0x0000,0x0000,0x0000,0x0000 /* 0 */\n\t.short\t0x0000,0x8001,0x8001,0x800F,0x800F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* 1 */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C00,0x1C00,0xF803,0xF007,0x000E,0x001C,0x0038,0x0030,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /* 2 */\n\t.short\t0x0000,0xFC3F,0xFC3F,0x1C00,0x3800,0x7000,0xE000,0xF801,0xFC01,0x0C00,0x0C00,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* 3 */\n\t.short\t0x0000,0x7000,0xF000,0xF001,0xB003,0x3007,0x300E,0x301C,0x3038,0xFC3F,0xFC3F,0x3000,0x3000,0x3000,0x3000,0x0000,0x0000,0x0000,0x0000,0x0000 /* 4 */\n\t.short\t0x0000,0xFC3F,0xFC3F,0x0030,0x0030,0xF03F,0xF83F,0x1C00,0x0C00,0x0C00,0x0C00,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* 5 */\n\t.short\t0x0000,0xF001,0xF007,0x000F,0x001C,0x0038,0x0030,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* 6 */\n\t.short\t0x0000,0xFC3F,0xFC3F,0x0C00,0x1C00,0x3800,0x7000,0xE000,0xC001,0x8003,0x0007,0x0006,0x0006,0x0006,0x0006,0x0000,0x0000,0x0000,0x0000,0x0000 /* 7 */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x1C38,0xF81F,0xF81F,0x1C38,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* 8 */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0C00,0x1C00,0x3800,0xF000,0xE00F,0x800F,0x0000,0x0000,0x0000,0x0000,0x0000 /* 9 */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /* : */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x8001,0x8003,0x0007,0x0006,0x0000,0x0000,0x0000 /* ; */\n\t.short\t0x0000,0x6000,0xE000,0xC001,0x8003,0x0007,0x000E,0x001C,0x001C,0x000E,0x0007,0x8003,0xC001,0xE000,0x6000,0x0000,0x0000,0x0000,0x0000,0x0000 /* < */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xFC3F,0xFC3F,0x0000,0x0000,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* = */\n\t.short\t0x0000,0x0006,0x0007,0x8003,0xC001,0xE000,0x7000,0x3800,0x3800,0x7000,0xE000,0xC001,0x8003,0x0007,0x0006,0x0000,0x0000,0x0000,0x0000,0x0000 /* > */\n\t.short\t0x0000,0xE00F,0xF01F,0x3838,0x1830,0x3800,0x7000,0xE000,0xC001,0x8001,0x8001,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /* ? */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC31,0xFC31,0x8C31,0x8C31,0xFC31,0xFC31,0x0030,0x0038,0xF01F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* @ */\n\t.short\t0x0000,0x8001,0xC003,0xE007,0x700E,0x381C,0x1C38,0x0C30,0x0C30,0xFC3F,0xFC3F,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /* A */\n\t.short\t0x0000,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x1C30,0xF83F,0xF83F,0x1C30,0x0C30,0x0C30,0x1C30,0xF83F,0xF03F,0x0000,0x0000,0x0000,0x0000,0x0000 /* B */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* C */\n\t.short\t0x0000,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C30,0xF83F,0xF03F,0x0000,0x0000,0x0000,0x0000,0x0000 /* D */\n\t.short\t0x0000,0xFC3F,0xFC3F,0x0030,0x0030,0x0030,0x0030,0xF03F,0xF03F,0x0030,0x0030,0x0030,0x0030,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /* E */\n\t.short\t0x0000,0xFC3F,0xFC3F,0x0030,0x0030,0x0030,0x0030,0xF03F,0xF03F,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0000,0x0000,0x0000,0x0000,0x0000 /* F */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0030,0x0030,0x0030,0x0030,0x3C30,0x3C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /* G */\n\t.short\t0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0xFC3F,0xFC3F,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /* H */\n\t.short\t0x0000,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* I */\n\t.short\t0x0000,0x0C00,0x0C00,0x0C00,0x0C00,0x0C00,0x0C00,0x0C00,0x0C00,0x0C00,0x0C00,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* J */\n\t.short\t0x0000,0x1830,0x3830,0x7030,0xE030,0xC031,0x8033,0x003F,0x003F,0x8033,0xC031,0xE030,0x7030,0x3830,0x1830,0x0000,0x0000,0x0000,0x0000,0x0000 /* K */\n\t.short\t0x0000,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /* L */\n\t.short\t0x0000,0x0C30,0x0C30,0x1C38,0x3C3C,0x7C3E,0xEC37,0xCC33,0x8C31,0x8C31,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /* M */\n\t.short\t0x0000,0x0C30,0x0C30,0x0C38,0x0C3C,0x0C3E,0x0C37,0x8C33,0xCC31,0xEC30,0x7C30,0x3C30,0x1C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /* N */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* O */\n\t.short\t0x0000,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x1C30,0xF83F,0xF03F,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0000,0x0000,0x0000,0x0000,0x0000 /* P */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0xCC30,0xEC30,0x7830,0x3838,0xFC1F,0xCC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /* Q */\n\t.short\t0x0000,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x1C30,0xF83F,0xF03F,0xC031,0xE030,0x7030,0x3830,0x1C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /* R */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0030,0x0038,0xF01F,0xF80F,0x1C00,0x0C00,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* S */\n\t.short\t0x0000,0xFC3F,0xFC3F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /* T */\n\t.short\t0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* U */\n\t.short\t0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0x1818,0x381C,0x300C,0x700E,0xE007,0xC003,0xC003,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /* V */\n\t.short\t0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x8C31,0x8C31,0x8C31,0x8C31,0x8C31,0xFC3F,0xF81F,0x700E,0x0000,0x0000,0x0000,0x0000,0x0000 /* W */\n\t.short\t0x0000,0x0C30,0x0C30,0x1C38,0x381C,0x700E,0xE007,0xC003,0xC003,0xE007,0x700E,0x381C,0x1C38,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /* X */\n\t.short\t0x0000,0x0C30,0x0C30,0x1C38,0x381C,0x700E,0xE007,0xC003,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /* Y */\n\t.short\t0x0000,0xFC3F,0xFC3F,0x1C00,0x3800,0x7000,0xE000,0xC001,0x8003,0x0007,0x000E,0x001C,0x0038,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /* Z */\n\t.short\t0x0000,0xE007,0xE007,0x0006,0x0006,0x0006,0x0006,0x0006,0x0006,0x0006,0x0006,0x0006,0x0006,0xE007,0xE007,0x0000,0x0000,0x0000,0x0000,0x0000 /* [ */\n\t.short\t0x0000,0x0000,0x0030,0x0038,0x001C,0x000E,0x0007,0x8003,0xC001,0xE000,0x7000,0x3800,0x1C00,0x0C00,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* \\ */\n\t.short\t0x0000,0xE007,0xE007,0x6000,0x6000,0x6000,0x6000,0x6000,0x6000,0x6000,0x6000,0x6000,0x6000,0xE007,0xE007,0x0000,0x0000,0x0000,0x0000,0x0000 /* ] */\n\t.short\t0x0000,0x8001,0xC003,0xE007,0x700E,0x381C,0x1818,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* ^ */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xFFFF,0xFFFF,0x0000,0x0000 /* _ */\n\t.short\t0x0000,0x0006,0x0007,0x8003,0xC001,0xE000,0x6000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* ` */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xF00F,0xF80F,0x1C00,0x0C00,0xFC1F,0xFC3F,0x0C30,0x0C30,0xFC3F,0xFC1F,0x0000,0x0000,0x0000,0x0000,0x0000 /* a */\n\t.short\t0x0000,0x0030,0x0030,0x0030,0x0030,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C30,0xF83F,0xF03F,0x0000,0x0000,0x0000,0x0000,0x0000 /* b */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xFC0F,0xFC1F,0x0038,0x0030,0x0030,0x0030,0x0030,0x0038,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /* c */\n\t.short\t0x0000,0x0C00,0x0C00,0x0C00,0x0C00,0xFC0F,0xFC1F,0x0C38,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /* d */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0030,0x0038,0xF01F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* e */\n\t.short\t0x0000,0x3000,0xF000,0xC001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /* f */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xFC0F,0xFC1F,0x0C38,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0C00,0x1C00,0xF80F,0xF00F,0x0000 /* g */\n\t.short\t0x0000,0x0030,0x0030,0x0030,0x0030,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /* h */\n\t.short\t0x0000,0x8001,0x8001,0x0000,0x0000,0x800F,0x800F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* i */\n\t.short\t0x0000,0x8001,0x8001,0x0000,0x0000,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8003,0x000F,0x000C,0x0000 /* j */\n\t.short\t0x0000,0x000C,0x000C,0x000C,0x180C,0x380C,0x700C,0xE00C,0xC00F,0x800F,0xC00D,0xE00C,0x700C,0x380C,0x180C,0x0000,0x0000,0x0000,0x0000,0x0000 /* k */\n\t.short\t0x0000,0x800F,0x800F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* l */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x303E,0xF83F,0xFC33,0x8C31,0x8C31,0x8C31,0x8C31,0x8C31,0x8C31,0x8C31,0x0000,0x0000,0x0000,0x0000,0x0000 /* m */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /* n */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* o */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C30,0xF83F,0xF03F,0x0030,0x0030,0x0030,0x0030,0x0000 /* p */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xFC0F,0xFC1F,0x0C38,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0C00,0x0C00,0x0C00,0x0C00,0x0000 /* q */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xF819,0xF81B,0x001F,0x001E,0x0018,0x0018,0x0018,0x0018,0x0018,0x0018,0x0000,0x0000,0x0000,0x0000,0x0000 /* r */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xFC0F,0xFC1F,0x0030,0x0030,0xF01F,0xF80F,0x0C00,0x0C00,0xF83F,0xF03F,0x0000,0x0000,0x0000,0x0000,0x0000 /* s */\n\t.short\t0x0000,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0x8001,0xC001,0xF000,0x3000,0x0000,0x0000,0x0000,0x0000,0x0000 /* t */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /* u */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0C30,0x0C30,0x0C30,0x1C38,0x1818,0x381C,0x700E,0xE007,0xC003,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /* v */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x8C31,0x8C31,0x8C31,0xFC3F,0xF81F,0x700E,0x0000,0x0000,0x0000,0x0000,0x0000 /* w */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0C30,0x1C38,0x781E,0xF00F,0xC003,0xC003,0xF00F,0x781E,0x1C38,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /* x */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0C00,0x1C00,0xF80F,0xF00F,0x0000 /* y */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xFC3F,0xFC3F,0x3800,0x7000,0xE001,0x8007,0x000E,0x001C,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /* z */\n\t.short\t0x0000,0xF000,0xF001,0x8001,0x8001,0x8003,0x0003,0x000F,0x000F,0x0003,0x8003,0x8001,0x8001,0xF000,0xF000,0x0000,0x0000,0x0000,0x0000,0x0000 /* { */\n\t.short\t0x0000,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /* | */\n\t.short\t0x0000,0x000F,0x800F,0x8001,0x8001,0xC001,0xC000,0xF000,0xF000,0xC000,0xC001,0x8001,0x8001,0x000F,0x000F,0x0000,0x0000,0x0000,0x0000,0x0000 /* } */\n\t.short\t0x0000,0x000E,0x0C1F,0xDC3B,0xF831,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* ~ */\n\t.short\t0x0000,0x8001,0xC003,0xC003,0x6006,0x6006,0x300C,0x300C,0x1818,0x1818,0x0C30,0x0C30,0x0C30,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /* &7F DEL */\n\t.short\t0x0000,0xF003,0xF807,0x1C0E,0x0C0C,0xC03F,0xC03F,0x000C,0x000C,0x803F,0x803F,0x0C0C,0x1C0E,0xF807,0xF003,0x0000,0x0000,0x0000,0x0000,0x0000 /* &80 euro symbol */\n\t.short\t0x0000,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /* &81 block (teletext) */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x8003,0x8003,0x8001,0x8003,0x0007,0x000E,0x0000,0x0000,0x0000 /* &82 single low quotation mark */\n\t.short\t0x0000,0x7000,0xF000,0xC001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8003,0x000F,0x000E,0x0000 /* &83 small letter f with hook */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x1C0E,0x1C0E,0x0C06,0x1C0E,0x381C,0x7038,0x0000,0x0000,0x0000 /* &84 double low quotation mark */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x9819,0x9819,0x0000,0x0000,0x0000,0x0000,0x0000 /* &85 horizontal ellipsis */\n\t.short\t0x0000,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /* &86 dagger */\n\t.short\t0x0000,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /* &87 double dagger */\n\t.short\t0x8001,0xC003,0x6006,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &88 circumflex accent */\n\t.short\t0x0000,0x3038,0x706C,0xE06C,0xC039,0x8003,0x0007,0x000E,0x001C,0x0038,0x0070,0x1C67,0xB60D,0xB60D,0x1C07,0x0000,0x0000,0x0000,0x0000,0x0000 /* &89 per mille */\n\t.short\t0x6006,0xE007,0xC003,0xF00F,0xF81F,0x1C38,0x0C30,0x0038,0xF01F,0xF80F,0x1C00,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* &8A capital S caron */\n\t.short\t0x0000,0x0000,0x0000,0x8001,0x8003,0x0007,0x000E,0x000C,0x000E,0x0007,0x8003,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &8B left angle quotation mark */\n\t.short\t0x0000,0xFC0F,0xFC1F,0x8039,0x8031,0x8031,0x8031,0xF831,0xF831,0x8031,0x8031,0x8031,0x8039,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /* &8C capital OE ligature */\n\t.short\t0x0000,0x0000,0x8001,0xC003,0xE007,0xF00F,0xB81D,0x9C39,0x8C31,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &8D up arrow (teletext) */\n\t.short\t0x6006,0xE007,0xC003,0xFC3F,0xFC3F,0x3800,0x7000,0xE000,0xC001,0x8003,0x0007,0x000E,0x001C,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /* &8E capital Z caron */\n\t.short\t0x0000,0x0000,0x8001,0x8003,0x0007,0x000E,0x001C,0xFC3F,0xFC3F,0x001C,0x000E,0x0007,0x8003,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &8F left arrow (teletext) */\n\t.short\t0x0000,0x0000,0x8001,0xC001,0xE000,0x7000,0x3800,0xFC3F,0xFC3F,0x3800,0x7000,0xE000,0xC001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &90 right arrow (teletext) */\n\t.short\t0x0000,0x7000,0xE000,0xC001,0x8001,0xC001,0xC001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &91 left single quotation mark */\n\t.short\t0x0000,0x8003,0x8003,0x8001,0x8003,0x0007,0x000E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &92 right single quotation mark */\n\t.short\t0x0000,0x1C0E,0x381C,0x7038,0x6030,0x7038,0x7038,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &93 left double quotation mark */\n\t.short\t0x0000,0x1C0E,0x1C0E,0x0C06,0x1C0E,0x381C,0x7038,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &94 right double quotation mark */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0xC003,0xE007,0xE007,0xC003,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &95 bullet */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xF81F,0xF81F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &96 en dash */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xFE7F,0xFE7F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &97 em dash */\n\t.short\t0x6007,0xC00D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &98 small tilde */\n\t.short\t0x0000,0x0000,0xC67E,0xC67E,0xEE18,0xFE18,0xD618,0xD618,0xC618,0xC618,0xC618,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &99 trade mark sign */\n\t.short\t0x0000,0x6006,0xE007,0xC003,0x0000,0xFC0F,0xFC1F,0x0038,0x0038,0xF01F,0xF80F,0x1C00,0x1C00,0xF83F,0xF03F,0x0000,0x0000,0x0000,0x0000,0x0000 /* &9A small S caron */\n\t.short\t0x0000,0x0000,0x0000,0x8001,0xC001,0xE000,0x7000,0x3000,0x7000,0xE000,0xC001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &9B right angle quotation mark */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x780E,0xFC1F,0xCC3B,0x8C31,0xFC31,0xFC31,0x8031,0xC03B,0xFC1F,0x7C0E,0x0000,0x0000,0x0000,0x0000,0x0000 /* &9C small OE ligature */\n\t.short\t0x0000,0x381C,0x381C,0x381C,0x381C,0x381C,0x381C,0x381C,0x381C,0x381C,0x381C,0x381C,0x381C,0x381C,0x381C,0x0000,0x0000,0x0000,0x0000,0x0000 /* &9D double line (teletext) */\n\t.short\t0x0000,0x6006,0xE007,0xC003,0x0000,0xFC3F,0xFC3F,0x3800,0x7000,0xE001,0x8007,0x000E,0x001C,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /* &9E small Z caron */\n\t.short\t0x300C,0x300C,0x300C,0x0000,0x0C30,0x1C38,0x381C,0x700E,0xE007,0xC003,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /* &9F capital Y diaeresis */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &A0 non-break space */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x8001,0x8001,0xFC0F,0xFC1F,0x8039,0x8031,0x8031,0x8031,0x8031,0x8039,0xFC1F,0xFC0F,0x8001,0x8001,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0xF003,0xF807,0x1C0E,0x0C0C,0x000C,0x000C,0x803F,0x803F,0x000C,0x000C,0x000C,0x000C,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0C30,0x1C38,0xF81F,0xF00F,0x700E,0x700E,0xF00F,0xF81F,0x1C38,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0C30,0x1C38,0x381C,0x700E,0xFC3F,0xFC3F,0x8001,0x8001,0xFC3F,0xFC3F,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0030,0x0038,0xF01F,0xF81F,0x1C38,0x1C38,0xF81F,0xF80F,0x1C00,0x0C00,0x0C30,0x1C38,0xF81F,0xF00F,0x0000 /*   */\n\t.short\t0x1818,0x1818,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xCC33,0xEC37,0x6C36,0x0C36,0x0C36,0x0C36,0x6C36,0xEC37,0xCC33,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000 /*   */\n\t.short\t0x0000,0xF00F,0xF80F,0x1C00,0x0C00,0xFC0F,0xFC1F,0x0C38,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x1C0E,0x381C,0x7038,0x7038,0x381C,0x1C0E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xFC3F,0xFC3F,0x0C00,0x0C00,0x0C00,0x0C00,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xE007,0xE007,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xCC37,0xEC37,0x6C36,0x6C36,0xCC37,0x8C37,0xCC37,0xEC36,0x6C36,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000 /*   */\n\t.short\t0x0000,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0xC003,0xE007,0x700E,0x381C,0x700E,0xE007,0xC003,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x8001,0x8001,0x8001,0x8001,0xFC3F,0xFC3F,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0xC00F,0xE00F,0x7000,0x7000,0xE003,0xC007,0x000E,0x000C,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0xC00F,0xE00F,0x7000,0x7000,0xE00F,0xE00F,0x7000,0x7000,0xE00F,0xC00F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x6000,0xE000,0xC001,0x8003,0x0007,0x0006,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x6030,0x6030,0x6030,0x6030,0x6030,0x6030,0x6030,0xF830,0xFC3F,0x8C3F,0x0030,0x0030,0x0030,0x0030,0x0000 /*   */\n\t.short\t0x0000,0x8C0F,0x8C1F,0x8C39,0x8C31,0x8C31,0x8C39,0x8C1F,0x8C0F,0x8C01,0x8C01,0x8C01,0x8C01,0x8C01,0x8C01,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x8003,0x0007,0x0006,0x0000 /*   */\n\t.short\t0x0000,0x8003,0x8007,0x800F,0x800D,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x7038,0x381C,0x1C0E,0x1C0E,0x381C,0x7038,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x000C,0x000C,0x000C,0x000C,0x000C,0x000C,0x000C,0x000C,0x1C0C,0x3C0C,0x7C00,0xEC00,0xCC01,0x8C01,0xFC01,0xFC01,0x0C00,0x0C00,0x0000 /*   */\n\t.short\t0x0000,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0xF831,0xFC31,0x0C00,0x0C00,0x7C00,0xF800,0xC001,0x8001,0xFC01,0xFC01,0x0000 /*   */\n\t.short\t0x0000,0x003E,0x003F,0x8003,0x8003,0x003F,0x003F,0x8003,0x8003,0x1C3F,0x3C3E,0x7C00,0xEC00,0xCC01,0x8C01,0xFC01,0xFC01,0x0C00,0x0C00,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x8001,0x8001,0x8003,0x0007,0x000E,0x001C,0x0C18,0x1C1C,0xF80F,0xF00F,0x0000 /*   */\n\t.short\t0x0006,0x0007,0x8003,0x8001,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x6000,0xE000,0xC001,0x8001,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x8001,0xC003,0xE007,0x6006,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x1807,0xB80F,0xF01D,0xE018,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x300C,0x300C,0x300C,0x0000,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x8001,0xC003,0x6006,0x6006,0xC003,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0xFC0F,0xFC1F,0x8039,0x8031,0x8031,0x8031,0xF83F,0xF83F,0x8031,0x8031,0x8031,0x8031,0xFC31,0xFC31,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0C30,0x1C38,0xF81F,0xF00F,0x8001,0x8003,0x0007,0x0006,0x0000 /*   */\n\t.short\t0x0006,0x0007,0x8003,0x8001,0x0000,0xFC3F,0xFC3F,0x0030,0x0030,0xF03F,0xF03F,0x0030,0x0030,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x6000,0xE000,0xC001,0x8001,0x0000,0xFC3F,0xFC3F,0x0030,0x0030,0xF03F,0xF03F,0x0030,0x0030,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x8001,0xC003,0xE007,0x6006,0x0000,0xFC3F,0xFC3F,0x0030,0x0030,0xF03F,0xF03F,0x0030,0x0030,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x300C,0x300C,0x300C,0x0000,0x0000,0xFC3F,0xFC3F,0x0030,0x0030,0xF03F,0xF03F,0x0030,0x0030,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0006,0x0007,0x8003,0x8001,0x0000,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x6000,0xE000,0xC001,0x8001,0x0000,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x8001,0xC003,0xE007,0x6006,0x0000,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x300C,0x300C,0x300C,0x0000,0x0000,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0xF00F,0xF80F,0x1C0C,0x0C0C,0x0C0C,0x0C0C,0x8C3F,0x8C3F,0x0C0C,0x0C0C,0x0C0C,0x1C0C,0xF80F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x1807,0xB80F,0xF01D,0xE018,0x0000,0x0C30,0x0C3C,0x0C3E,0x0C37,0x8C33,0xCC31,0xEC30,0x7C30,0x3C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0006,0x0007,0x8003,0x8001,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x6000,0xE000,0xC001,0x8001,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x8001,0xC003,0xE007,0x6006,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x1807,0xB80F,0xF01D,0xE018,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x300C,0x300C,0x300C,0x0000,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x1818,0x381C,0x700E,0xE007,0xC003,0xE007,0x700E,0x381C,0x1818,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x3C30,0x7C30,0xEC30,0xCC31,0x8C33,0x0C37,0x0C3E,0x0C3C,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0006,0x0007,0x8003,0x8001,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x6000,0xE000,0xC001,0x8001,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x8001,0xC003,0xE007,0x6006,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x300C,0x300C,0x300C,0x0000,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x6000,0xE000,0xC001,0x8001,0x0C30,0x1C38,0x381C,0x700E,0xE007,0xC003,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0030,0x0030,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x1C30,0xF83F,0xF03F,0x0030,0x0030,0x0030,0x0030,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0xC00F,0xE01F,0x7038,0x3030,0x3030,0x3030,0xF031,0xF831,0x1C30,0x0C30,0x0C30,0x1C30,0xF831,0xF031,0x0030,0x0030,0x0030,0x0030,0x0000 /*   */\n\t.short\t0x0006,0x0007,0x8003,0x8001,0x0000,0xF00F,0xF80F,0x1C00,0x0C00,0xFC0F,0xFC1F,0x0C38,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x6000,0xE000,0xC001,0x8001,0x0000,0xF00F,0xF80F,0x1C00,0x0C00,0xFC0F,0xFC1F,0x0C38,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x8001,0xC003,0xE007,0x6006,0x0000,0xF00F,0xF80F,0x1C00,0x0C00,0xFC0F,0xFC1F,0x0C38,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x1807,0xB80F,0xF01D,0xE018,0x0000,0xF00F,0xF80F,0x1C00,0x0C00,0xFC0F,0xFC1F,0x0C38,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x300C,0x300C,0x300C,0x0000,0xF00F,0xF80F,0x1C00,0x0C00,0xFC0F,0xFC1F,0x0C38,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x8001,0xC003,0x6006,0xC003,0x8001,0xF00F,0xF80F,0x1C00,0x0C00,0xFC0F,0xFC1F,0x0C38,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x781E,0xFC1F,0x8C03,0x8C01,0xFC1F,0xFC3F,0x8031,0x8031,0xF83F,0xF81F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xFC0F,0xFC1F,0x0038,0x0030,0x0030,0x0030,0x0030,0x0038,0xFC1F,0xFC0F,0xC000,0xC001,0x8003,0x0003,0x0000 /*   */\n\t.short\t0x0006,0x0007,0x8003,0x8001,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0030,0x0038,0xF01F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x6000,0xE000,0xC001,0x8001,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0030,0x0038,0xF01F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x8001,0xC003,0xE007,0x6006,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0030,0x0038,0xF01F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x300C,0x300C,0x300C,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0030,0x0038,0xF01F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0006,0x0007,0x8003,0x8001,0x0000,0x800F,0x800F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x6000,0xE000,0xC001,0x8001,0x0000,0x800F,0x800F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x8001,0xC003,0xE007,0x6006,0x0000,0x800F,0x800F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x300C,0x300C,0x300C,0x0000,0x800F,0x800F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x601E,0xE01F,0xC003,0xE007,0x700E,0x380C,0x1C00,0x0C00,0xFC0F,0xFC1F,0x1C38,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x1807,0xB80F,0xF01D,0xE018,0x0000,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0006,0x0007,0x8003,0x8001,0x0000,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x6000,0xE000,0xC001,0x8001,0x0000,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x8001,0xC003,0xE007,0x6006,0x0000,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x1807,0xB80F,0xF01D,0xE018,0x0000,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x300C,0x300C,0x300C,0x0000,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0xFC3F,0xFC3F,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xF00F,0xF81F,0x7C38,0xEC30,0xCC31,0x8C33,0x0C37,0x1C3E,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0006,0x0007,0x8003,0x8001,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x6000,0xE000,0xC001,0x8001,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x8001,0xC003,0xE007,0x6006,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x300C,0x300C,0x300C,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x6000,0xE000,0xC001,0x8001,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0C00,0x1C00,0xF80F,0xF00F,0x0000 /*   */\n\t.short\t0x0000,0x0030,0x0030,0x0030,0x0030,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C30,0xF83F,0xF03F,0x0030,0x0030,0x0030,0x0030,0x0000 /*   */\n\t.short\t0x0000,0x300C,0x300C,0x300C,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0C00,0x1C00,0xF80F,0xF00F,0x0000 /*   */\n"
  },
  {
    "path": "src/bbdata_arm_64.s",
    "content": "/*****************************************************************\\\n*       BBC BASIC for SDL 2.0 (ARM_64)                            *\n*       Copyright (c) R. T. Russell, 2000-2023                    *\n*                                                                 *\n*       BBCDAT.S RAM data definitions                             *\n*       Version 1.38a, 02-Sep-2023                                *\n\\*****************************************************************/\n\n.equ\tMAX_PORTS,4\n.equ\tMAX_FILES,8\n.equ\tSOUNDQL,20\n\n.global _stavar\n.global _lc\n.global _oc\n.global _pc\n.global _dynvar\n.global _fnptr\n.global _proptr\n.global _prand\n.global _accs\n.global _buff\n.global _vpage\n.global _flist\n.global _lomem\n.global _pfree\n.global _himem\n.global _errtxt\n.global _onersp\n.global _errtrp\n.global _datptr\n.global _curlin\n.global _errlin\n.global _tracen\n.global _vcount\n.global _vwidth\n.global _errnum\n.global _liston\n.global _lstopt\n.global _tmps\n\n.global _path\n.global _keystr\n.global _keybdq\n.global _keyptr\n.global _spchan\n.global _exchan\n.global _tweak\n.global _fcbtab\n.global _timoff\n.global _usrchr\n.global _soundq\n.global _envels\n.global _waves\n.global _libase\n.global _eventq\n.global _timtrp\n.global _clotrp\n.global _siztrp\n.global _systrp\n.global _moutrp\n.global _alltrp\n.global _iMsg\n.global _wParam\n.global _lParam\n.global _filbuf\n.global _portab\n.global _fvtab\n\n.global _forgnd\n.global _bakgnd\n.global _hfont\n.global _colmsk\n.global _modeno\n.global _lthick\n.global _hrect\n.global _origx\n.global _origy\n.global _lastx\n.global _lasty\n.global _prevx\n.global _prevy\n.global _pfont\n.global _cmcflg\n.global _textwl\n.global _textwr\n.global _textwt\n.global _textwb\n.global _sizex\n.global _sizey\n.global _sclflg\n.global _textx\n.global _texty\n.global _charx\n.global _chary\n.global _cursa\n.global _cursb\n.global _tempo\n.global _pixelx\n.global _pixely\n.global _txtfor\n.global _txtbak\n.global _optval\n.global _farray\n.global _fasize\n\n.global _vduq\n.global _queue\n.global _flags\n.global _kbdqw\n.global _kbdqr\n.global _keyexp\n.global _scroln\n.global _vflags\n.global _sndqw\n.global _sndqr\n.global _sacc\n.global _smix\n.global _evtqw\n.global _evtqr\n.global _eenvel\n.global _escale\n.global _epsect\n.global _easect\n.global _epitch\n.global _elevel\n.global _ecount\n\n.global _hwndProg\n.global _zoom\n.global _offsetx\n.global _offsety\n.global _platform\n.global _memhdc\n.global _reflag\n.global _sysflg\n.global _panx\n.global _pany\n.global _prntx\n.global _prnty\n.global _prchx\n.global _prchy\n.global _cursx\n.global _bPaletted\n.global _paperl\n.global _paperr\n.global _papert\n.global _paperb\n\n.global _datend\n.global _sysvar\n.global _savesp\n.global _bbcfont\n.global _lastick\n.global _link00\n.global _cmdlen\n.global _cmdadr\n.global _dirlen\n.global _diradr\n.global _liblen\n.global _libadr\n.global _usrlen\n.global _usradr\n.global _tmplen\n.global _tmpadr\n.global _hwo\n.global _vdufmt\n.global _vduvar\n.global _vduptr\n.global _voices\n.global _chrmap\n.global _breakpt\n.global _breakhi\n.global _ttxtfont\n\n.data\n\n\t.balign\t16\n\n/* Variables used by generic modules (bbmain, bbexec, bbeval, bbasmb) */\n\n_stavar:.fill\t12,4,0\t/* Static variables @% to K% */\n_lc:\t.long\t0\t\t/* Static variable L% */\n\t.fill\t2,4,0\t/* Static variables M%, N% */\n_oc:\t.long\t0\t\t/* Static variable O% */\n_pc:\t.long\t0\t\t/* Static variable P% */\n\t.fill\t10,4,0\t\t/* Static variables Q% to Z% */\n_dynvar:.fill\t54,4,0\t\t/* ( Pointers to dynamic vars   ) */\n_fnptr:\t.long\t0\t\t/* ( Pointer to user FuNctions  ) */\n_proptr:.long\t0\t\t/* ( Pointer to user PROCedures ) */\n_accs:\t.long\t0\t\t/* Pointer to string accumulator */\n\t.long\t0\t\t/* 64-bit pointer */\n_vpage:\t.long\t0\t\t/* Current value of PAGE */\n_tracen:.long\t0\t\t/* Maximum line number to trace */\n_lomem:\t.long\t0\t\t/* Current value of LOMEM */\n_pfree:\t.long\t0\t\t/* Pointer to start of free space */\n_himem:\t.long\t0\t\t/* Current value of HIMEM */\n_libase:.long\t0\t\t/* Pointer to INSTALLed library */\n_errtxt:.long\t0\t\t/* Pointer to error text for REPORT */\n\t.long\t0\t\t/* 64-bit pointer */\n_errtrp:.long\t0\t\t/* Pointer to ON ERROR statement */\n_datptr:.long\t0\t\t/* Pointer to DATA statements */\n_vcount:.long\t0\t\t/* Current value of COUNT */\n_curlin:.long\t0\t\t/* Pointer to current statement */\n_alltrp:\t\t\t/* Start of trap pointers */\n_timtrp:.long\t0\t\t/* Pointer to ON TIME statement */\n_clotrp:.long\t0\t\t/* Pointer to ON CLOSE statement */\n_siztrp:.long\t0\t\t/* Pointer to ON MOVE statement */\n_systrp:.long\t0\t\t/* Pointer to ON SYS statement */\n_moutrp:.long\t0\t\t/* Pointer to ON MOUSE statement */\n_errlin:.long\t0\t\t/* Pointer to last error statement */\n\n_prand:\n_random:.fill\t5,1,0\t\t/* Current 'random' number (5 bytes) */\n_vwidth:.byte\t0\t\t/* Current value of WIDTH */\n_errnum:.byte\t0\t\t/* Error code of last error */\n_liston:.byte\t0\t\t/* *FLOAT / *HEX / *LOWERCASE / OPT */\n\n/* Variables used by OS-specific modules (bbcmos, bbccli, bbcvdu, bbcvtx) */\n\n\t.balign\t4\n_path:\t.long\t0\t\t/* Pointer to path/filename buffer */\n\t.long\t0\t\t/* 64-bit pointer */\n_keybdq:.long\t0\t\t/* Pointer to keyboard queue */\n\t.long\t0\t\t/* 64-bit pointer */\n_keyptr:.long\t0\t\t/* Pointer to *KEY string */\n\t.long\t0\t\t/* 64-bit pointer */\n\n_lstopt:.byte\t0\t\t/* LISTO value (indentation) */\n_sclflg:.byte\t0\t\t/* Scroll flag (COPY key) */\n_optval:.byte\t0\t\t/* *OUTPUT and *INPUT values */\n\n/* ------ End of 'absolutely-addressed' variables ------ */\n\n_farray:.byte\t0\t\t/* Number of dimensions = 1  | */\n_fasize:.long\t0\t\t/* Number of elements = 16   | */\n_filbuf:.quad\t0\t\t/* Pointer to file buffers   | */\n_portab:.fill\tMAX_PORTS,8,0\t/* Table of port handles | */\n_chntab:.fill\tMAX_FILES,8,0\t/* Table of file handles | */\n_exchan:.quad\t0\t\t/* Handle for *EXEC   @hfile%%(13) */\n_spchan:.quad\t0\t\t/* Handle for *SPOOL  @hfile%%(14) */\n_ptchan:.quad\t0\t\t/* Handle for printer @hfile%%(15) */\n\n_fcbtab:.fill\tMAX_FILES,4,0\t/* Table of FCBs */\n_voices:.byte\t0,0,0,0\t\t/* Voices (waveforms) for sound channels */\n\n_flist:\t.fill\t33,8,0\t\t/* Pointers to string free lists */\n_tmps:\t.long\t0\t\t/* Temp string descriptor: address */\n\t.long\t0\t\t/* Temp string descriptor: length */\n\n/* Variables moved here to make room for 64-bit pointers and handles */\n\n_onersp:.long\t0\t\t/* ESP storage for ON ERROR LOCAL */\n\t.long\t0\t\t/* 64-bit pointer */\n_buff:\t.long\t0\t\t/* Pointer to string input buffer */\n\t.long\t0\t\t/* 64-bit pointer */\n_keystr:.long\t0\t\t/* Pointer to user *KEY strings */\n\t.long\t0\t\t/* 64-bit pointer */\n_usrchr:.long\t0\t\t/* Pointer to user-defined characters */\n\t.long\t0\t\t/* 64-bit pointer */\n_waves:\t.long\t0\t\t/* Pointer to SOUND waveforms */\n\t.long\t0\t\t/* 64-bit pointer */\n_envels:.long\t0\t\t/* Pointer to ENVELOPEs */\n\t.long\t0\t\t/* 64-bit pointer */\n_eventq:.long\t0\t\t/* Pointer to event queue */\n\t.long\t0\t\t/* 64-bit pointer */\n_hrect:\t.long\t0\t\t/* Pointer to clip rect (part of @vdu{}) */\n\t.long\t0\t\t/* 64-bit pointer */\n\n/* Text/graphics metrics (pointed to by @vdu%) */\n\n_vduvar:\n_origx:\t.long\t0\t\t/* Graphics horizontal origin */\n_origy:\t.long\t0\t\t/* Graphics vertical origin */\n_lastx:\t.long\t0\t\t/* Immediately preceding x-coordinate */\n_lasty:\t.long\t0\t\t/* Immediately preceding y-coordinate */\n_prevx:\t.long\t0\t\t/* Previous x-coordinate */\n_prevy:\t.long\t0\t\t/* Previous y-coordinate */\n_textwl:.long\t0\t\t/* Text window left (pixels) */\n_textwr:.long\t0\t\t/* Text window right (pixels) */\n_textwt:.long\t0\t\t/* Text window top (pixels) */\n_textwb:.long\t0\t\t/* Text window bottom (pixels) */\n_pixelx:.long\t0\t\t/* Width of a graphics pixel */\n_pixely:.long\t0\t\t/* Height of a graphics pixel */\n_textx:\t.long\t0\t\t/* Text pointer (cursor x) */\n_texty:\t.long\t0\t\t/* Text pointer (cursor y) */\n_hfont:\t.long\t0\t\t/* Handle of current font */\n\t.long\t0\t\t/* 64-bit handle */\n\n_forgnd:.short\t0\t\t/* Graphics foreground colour/action */\n_bakgnd:.short\t0\t\t/* Graphics background colour/action */\n\n_cursa:\t.byte\t0\t\t/* Start (top) line of cursor */\n_cursb:\t.byte\t0\t\t/* Finish (bottom) line of cursor */\n_txtfor:.byte\t0\t\t/* Text foreground colour */\n_txtbak:.byte\t0\t\t/* Text background colour */\n_modeno:.byte\t0\t\t/* Mode number */\n_colmsk:.byte\t0\t\t/* Mask for maximum number of colours */\n_vflags:.byte\t0\t\t/* VDU driver flags */\n_scroln:.byte\t0\t\t/* Scroll counter in paged mode */\n_cursx:\t.byte\t0\t\t/* Cursor (caret) width */\n_lthick:.byte\t0\t\t/* Line thickness (lines, outline shapes) */\n_cmcflg:.byte\t0\t\t/* cursor movement flags */\n_tweak:\t.byte\t0\t\t/* Character spacing adjustment (signed) */ \n\n_sndqw:\t.fill\t4,1,0\t\t/* Sound queue write pointers */\n_sndqr:\t.fill\t4,1,0\t\t/* Sound queue read pointers */\n_eenvel:.fill\t4,1,0\t\t/* Envelope number */\n_escale:.fill\t4,1,0\t\t/* Envelope scaler */\n_epsect:.fill\t4,1,0\t\t/* Envelope pitch section */\n_easect:.fill\t4,1,0\t\t/* Envelope amplitude section */\n_epitch:.fill\t4,1,0\t\t/* Envelope pitch (frequency) */\n_ecount:.fill\t4,1,0\t\t/* Envelope count */\n_soundq:.fill\t4*SOUNDQL,1,0\t/* Sound queue (four channels) */\n\n_vduq:\t.fill\t10,1,0\t\t/* VDU queue (must precede 'queue') */\n_queue:\t.byte\t0\t\t/* VDU queue status */\n\n_kbdqw:\t.byte\t0\t\t/* Keyboard queue write pointer */\n_kbdqr:\t.byte\t0\t\t/* Keyboard queue read pointer */\n_evtqw:\t.byte\t0\t\t/* Event queue write pointer */\n_evtqr:\t.byte\t0\t\t/* Event queue read pointer */\n_keyexp:.byte\t0\t\t/* *KEY character counter */\n\n\t.balign\t4\n\n/* ------ End of initialised variables ------ */\n\n_datend:\n\n/* The following locations are NOT initialised when program is RUN */\n/* (but are guaranteed to be zero on initial execution). */\n\n_sizex:\t.long\t0\t\t/* Total width of client area */\n_sizey:\t.long\t0\t\t/* Total height of client area */\n_charx:\t.long\t0\t\t/* Average character width */\n_chary:\t.long\t0\t\t/* Average character height */\n_prchx:\t.long\t0\t\t/* Average character width (printer) */\n_prchy:\t.long\t0\t\t/* Average character height (printer) */\n_paperl:.long\t0\t\t/* Printer left edge */\n_paperr:.long\t0\t\t/* Printer right edge */\n_papert:.long\t0\t\t/* Printer top edge */\n_paperb:.long\t0\t\t/* Printer bottom edge */\n_prntx:\t.long\t0\t\t/* Horizontal printing position */\n_prnty:\t.long\t0\t\t/* Vertical printing position */\n\n/* ------ End of VDU variables ------ */\n\n_lastick:.long\t0\t\t/* To check for TickCount wraparound */\n_timoff:.long\t0\t\t/* Offset to add to TickCount */\n_sacc:\t.fill\t4,4,0\t\t/* Sound accumulators */\n_smix:\t.fill\t4,4,0\t\t/* Stereo mix */\n_elevel:.fill\t4,1,0\t\t/* Envelope level (amplitude) */\n\n/* The following variables are organised as a linked-list at */\n/* sysvar, for access via 'system variables' starting with @ */\n\n_sysvar:.long\tlink1 - _sysvar\n.asciz\t\"wparam%\"\n_wParam:.long\t0\t\t/* Saved wParam for ON xxxx interrupt */\n\nlink3:\t.long\tlink4 - link3\n\t.asciz\t\"lparam%\"\n_lParam:.long\t0\t\t/* Saved lParam for ON xxxx interrupt */\n\n\t.byte\t0\t\t/* Padding */\nlink23:\t.long\tlink24 - link23\n\t.asciz\t\"ispal%\"\n_bPaletted: .long\t0\t/* Paletted display flag (BOOL) */\n\n\t.fill\t7,1,0\t\t/* Padding */\nlink1:\t.long\tlink3 - link1\n\t.asciz\t\"memhdc%%\"/* n.b. aliased to @memhdc% */\n_memhdc:.quad\t0\t\t/* Shadow screen device context */\n\n\t.fill\t7,1,0\t\t/* Padding */\nlink9:\t.long\tlink10 - link9\n\t.asciz\t\"msg%\"\n_iMsg:\t.long\t0\t\t/* Saved iMsg for ON xxxx interrupt */\n\n\t.byte\t0\t\t/* Padding */\nlink4:\t.long\tlink5 - link4\n\t.asciz\t\"hwnd%%\"\t/* n.b. aliased to @hwnd% */\n_hwndProg: .quad\t0\t/* Handle for program window */\n\n\t.fill\t5,1,0\t\t/* Padding */\nlink12:\t.long\tlink13 - link12\n\t.asciz\t\"flags%\"\n_tempo:\t.byte\t0\t\t/* *TEMPO value */\n_sysflg:.byte\t0\t\t/* *SYS flags */\n_reflag:.byte\t0\t\t/* *REFRESH flags */\n_flags:\t.byte\t0\t\t/* Boolean flags (byte) */\n\n\t.fill\t7,1,0\t\t/* Padding */\nlink16:\t.long\tlink17 - link16\n\t.asciz\t\"chrmap%%\"\t/* n.b. aliased to @chrmap% */\n_chrmap:.quad\t0\n\n\t.fill\t5,1,0\t\t/* Padding */\nlink5:\t.long\tlink6 - link5\n\t.asciz\t\"hpal%%\"\n\t.quad\t_palette\t/* Colour palette */\n\n\t.fill\t6,1,00\t\t/* Padding */\nlink10:\t.long\tlink11 - link10\n\t.asciz\t\"vdu%%\"\n\t.quad\t_vduvar\t\t/* Pointer to VDU variables */\n\n\t.fill\t6,1,00\t\t/* Padding */\n_link00:.long\t0\t\t/* End of list */\n\t.asciz\t\"fn%%(\"\n\t.quad\tfnarr\t\t/* Pointer to function array */\n\n\t.short\t0\t\t/* Padding */\nlink11:\t.long\tlink12 - link11\n\t.asciz\t\"platform%\"\n_platform: .long 0\t\t/* SDL version & OS */\n\n\t.long\t0\t\t/* Padding */\nlink6:\t.long\tlink7 - link6\n\t.asciz\t\"ox%\"\t\n_offsetx:.long\t0\t\t/* x-offset memhdc->hwnd */\n\n\t.long\t0\t\t/* Padding */\nlink7:\t.long\tlink8 - link7\n\t.asciz\t\"oy%\"\t \n_offsety:.long\t0\t\t/* y-offset memhdc->hwnd */\n\n\t.fill\t3,1,00\t\t/* Padding */\nlink17:\t.long\tlink18 - link17\n\t.asciz\t\"dir$\"\n_diradr:.long\t0\t\t/* Program directory address */\n_dirlen:.long\t0\t\t/* Program directory length */\n\n\t.fill\t7,1,00\t\t/* Padding */\nlink18:\t.long\tlink19 - link18\n\t.asciz\t\"lib$\"\n_libadr:.long\t0\t\t/* Library directory address */\n_liblen:.long\t0\t\t/* Library directory length */\n\n\t.fill\t6,1,00\t\t/* Padding */\nlink24:\t.long\tlink25 - link24\n\t.asciz\t\"panx%\"\n_panx:\t.long\t0\t\t/* Horizontal pan */\n\n\t.fill\t3,1,00\t\t/* Padding */\nlink19:\t.long\tlink20 - link19\n\t.asciz\t\"cmd$\"\n_cmdadr:.long\t0\t\t/* Command line address */\n_cmdlen:.long\t0\t\t/* Command line length */\n\n\t.fill\t7,1,00\t\t/* Padding */\nlink20:\t.long\tlink21 - link20\n\t.asciz\t\"usr$\"\n_usradr:.long\t0\t\t/* User directory address */\n_usrlen:.long\t0\t\t/* User directory length */\n\n\t.fill\t6,1,00\t\t/* Padding */\nlink25:\t.long\tlink26 - link25\n\t.asciz\t\"pany%\"\n_pany:\t.long\t0\t\t/* Vertical pan */\n\n\t.fill\t3,1,00\t\t/* Padding */\nlink21:\t.long\tlink22 - link21\n\t.asciz\t\"tmp$\"\n_tmpadr:.long\t0\t\t/* Temp directory address */\n_tmplen:.long\t0\t\t/* Temp directory length */\n\n\t.fill\t7,1,00\t\t/* Padding */\nlink22:\t.long\tlink23 - link22\n\t.asciz\t\"vdu{\"\n\t.quad\tvdufmt\t\t/* Structure format address */\n\t.quad\t_hrect\t\t/* Structure data address */\n\n\t.fill\t6,1,00\t\t/* Padding */\nlink14:\t.long\tlink15 - link14\n\t.asciz\t\"zoom%\"\n_zoom:\t.long\t0\n\n\t.fill\t7,1,00\t\t/* Padding */\nlink8:\t.long\tlink9 - link8\n\t.asciz\t\"hfile%%(\"\n\t.quad\t_farray\t\t/* Pointer to file handles array */\n\n\t.fill\t5,1,00\t\t/* Padding */\nlink26:\t.long\tlink27 - link26\n\t.asciz\t\"brkpt%\"\n_breakpt:.long\t0\t\t/* Breakpoint (bottom of range) */\n\n\t.fill\t3,1,00\t\t/* Padding */\nlink15:\t.long\tlink16 - link15\n\t.asciz\t\"hwo%\"\n_hwo:\t.long\t0\t\t/* Handle for wave output */\n\n\t.byte\t0\t\t/* Padding */\nlink27:\t.long\tlink28 - link27\n\t.asciz\t\"brkhi%\"\n_breakhi:.long\t0\t\t/* Breakpoint (top of range) */\n\n\t.short\t0\t\t/* Padding */\nlink28:\t.long\tlink29 - link28\n\t.asciz\t\"size{\"\n\t.quad\tptfmt\n\t.quad\t_sizex\n\n\t.short\t0\t\t/* Padding */\n\t.long\t0\nlink29:\t.long\t_link00 - link29\n\t.asciz\t\"char{\"\n\t.quad\tptfmt\n\t.quad\t_charx\n\n\t.long\t0\t\t/* Padding */\nlink13:\t.long\tlink14 - link13\n\t.asciz\t\"cache%%\"\n\t.quad\t_TTFcache\t/* Font cache */\n\n/* Structure @vdu{o{x%,y%}, l{x%,y%}, p{x%,y%}, tl%, tr%, tt%, tb%, */\n/*d{x%,y%}, c{x%,y%}, hf%%, hr%%,   */\n/*g{a&,b&,c&,d&}, t{a&,b&,c&,d&}, m{a&,b&,c&,d&}}   */\n\n\t.byte\t0\t\t/* Padding */\n\t.long\t0\nvdufmt:\t.long\t_sndqw-_hrect\t/* Total length (bytes) */\nvlnk00:\t.long\tvlnk01 - vlnk00\t/* Link to next */\n\t.asciz\t\"o{\"\t\t/* Member name */\n\t.quad\tptfmt\n\t.quad\t_origx-_hrect\t/* Data offset */\n\n\t.byte\t0\t\t/* Padding */\nvlnk01:\t.long\tvlnk02 - vlnk01\n\t.asciz\t\"l{\"\t\t/* Member name */\n\t.quad\tptfmt\n\t.quad\t_lastx-_hrect\t/* Data offset */\n\n\t.byte\t0\t\t/* Padding */\nvlnk02:\t.long\tvlnk03 - vlnk02\n\t.asciz\t\"p{\"\t\t/* Member name */\n\t.quad\tptfmt\n\t.quad\t_prevx-_hrect\t/* Data offset */\n\nvlnk03:\t.long\tvlnk04 - vlnk03\n\t.asciz\t\"tl%\"\t\t/* Member name */\n\t.long\t_textwl-_hrect\t/* Data offset */\n\n\t.long\t0\t\t/* Padding */\nvlnk04:\t.long\tvlnk05 - vlnk04\n\t.asciz\t\"tr%\"\t\t/* Member name */\n\t.long\t_textwr-_hrect\t/* Data offset */\n\n\t.long\t0\t\t/* Padding */\nvlnk05:\t.long\tvlnk06 - vlnk05\n\t.asciz\t\"tt%\"\t\t/* Member name */\n\t.long\t_textwt-_hrect\t/* Data offset */\n\n\t.long\t0\t\t/* Padding */\nvlnk06:\t.long\tvlnk07 - vlnk06\n\t.asciz\t\"tb%\"\t\t/* Member name */\n\t.long\t_textwb-_hrect\t/* Data offset */\n\n\t.fill\t5,1,00\t\t/* Padding */\nvlnk07:\t.long\tvlnk08 - vlnk07\n\t.asciz\t\"d{\"\t\t/* Member name */\n\t.quad\tptfmt\n\t.quad\t_pixelx-_hrect\t/* Data offset */\n\n\t.byte\t0\t\t/* Padding */\nvlnk08:\t.long\tvlnk09 - vlnk08\n\t.asciz\t\"c{\"\t\t/* Member name */\n\t.quad\tptfmt\n\t.quad\t_textx-_hrect\t/* Data offset */\n\n\t.fill\t7,1,00\t\t/* Padding */\nvlnk09:\t.long\tvlnk10 - vlnk09\n\t.asciz\t\"hf%%\"\t\t/* Member name */\n\t.long\t_hfont-_hrect\t/* Data offset */\n\n\t.fill\t3,1,00\t\t/* Padding */\nvlnk10:\t.long\tvlnk11 - vlnk10\n\t.asciz\t\"hr%%\"\t\t/* Member name */\n\t.long\t_hrect-_hrect\t/* Data offset */\n\n\t.fill\t5,1,00\t\t/* Padding */\nvlnk11:\t.long\tvlnk12 - vlnk11\n\t.asciz\t\"g{\"\t\t/* Member name */\n\t.quad\tb4fmt\n\t.quad\t_forgnd-_hrect\t/* Data offset */\n\n\t.byte\t0\t\t/* Padding */\nvlnk12:\t.long\tvlnk13 - vlnk12\n\t.asciz\t\"t{\"\t\t/* Member name */\n\t.quad\tb4fmt\n\t.quad\t_cursa-_hrect\t/* Data offset */\n\n\t.byte\t0\t\t/* Padding */\nvlnk13:\t.long\tvlnk14 - vlnk13\n\t.asciz\t\"m{\"\t\t/* Member name */\n\t.quad\tb4fmt\n\t.quad\t_modeno-_hrect\t/* Data offset */\n\n\t.byte\t0\t\t/* Padding */\nvlnk14:\t.long\t0\n\t.asciz\t\"w{\"\t\t/* Member name */\n\t.quad\tb4fmt\n\t.quad\t_cursx-_hrect\t/* Data offset */\n\n/* Structure {x%,y%} */\n\nptfmt:\t.long\t8\t\t/* Total length (bytes) */\nptlnk0:\t.long\tptlnk1-ptlnk0\t/* Link to next member */\n\t.asciz\t\"x%\"\t\t/* Member name */\n\t.long\t0\t\t/* Member offset (bytes) */\nptlnk1:\t.long\t0\t\t/* Terminating link */\n\t.asciz\t\"y%\"\t\t/* Member name */\n\t.long\t4\t\t/* Member offset (bytes) */\n\n/* Structure {a&,b&,c&,d&} */\n\nb4fmt:\t.long\t4\t\t/* Total length (bytes) */\nb4lnk0:\t.long\tb4lnk1-b4lnk0\t/* Link to next member */\n\t.asciz\t\"a&\"\t\t/* Member name */\n\t.long\t0\t\t/* Member offset (bytes) */\nb4lnk1:\t.long\tb4lnk2-b4lnk1\t/* Link to next member */\n\t.asciz\t\"b&\"\t\t/* Member name */\n\t.long\t1\t\t/* Member offset (bytes) */\nb4lnk2:\t.long\tb4lnk3-b4lnk2\t/* Link to next member */\n\t.asciz\t\"c&\"\t\t/* Member name */\n\t.long\t2\t\t/* Member offset (bytes) */\nb4lnk3:\t.long\t0\t\t/* Terminating link */\n\t.asciz\t\"d&\"\t\t/* Member name */\n\t.long\t3\t\t/* Member offset (bytes) */\n\n/* Array of function entry points */\n\n\t.fill\t1,1,0\t\t/* Padding */\nfnarr:\t.byte\t1\t\t/* Number of dimensions */\n\t.long\t22  \t\t/* Number of entries */\nfnarr0:\t.quad\t_loadn\t\t/* Load numeric  */\n\t.quad\t_loads\t\t/* Load string */\n\t.quad\t_storen\t\t/* Store numeric */\n\t.quad\t_stores\t\t/* Store string */\n\t.quad\t_getvar\t\t/* Get variable address */\n\t.quad\t_putvar\t\t/* Create variable */\n\t.quad\t_expr\t\t/* Evaluate expression */\n\t.quad\t_item\t\t/* Evaluate item */\n\t.quad\t_lexan\t\t/* Lexical analysis (tokenise) */\n\t.quad\t_token\t\t/* Print character or keyword */\n\t.quad\t_xfloat\t\t/* Convert integer to float */\n\t.quad\t_xfix\t\t/* Convert float to integer */\n\t.quad\t_str00\t\t/* Convert a number to a string */\n\t.quad\t_con\t\t/* Convert a string to a number */\n\t.quad\t_sortup\t\t/* Sort ascending (used by sortlib) */\n\t.quad\t_sortdn\t\t/* Sort descending (used by sortlib) */\n\t.quad\t_hook\t\t/* Timer callback (used by timerlib) */\n\t.quad\t_xeq\t\t/* Return to BASIC */\n\t.quad\t_putevt\t\t/* Store event in queue */\n\t.quad\t_gfxPrimitivesGetFont\n\t.quad\t_gfxPrimitivesSetFont\n\t.quad\t_RedefineChar\nfnarrt:\n\n\t.text\n\n_fvtab:\t.byte\t1\t\t/* &19 v&  Unsigned byte (8 bits) */\n\t.byte\t4\t\t/* &1A v%  Signed dword (32 bits) */\n\t.byte\t8\t\t/* &1B v#  Float double (64 bits) */\n\t.byte\t10\t\t/* &1C v   Variant numeric (80 bits) */\n\t.byte\t16\t\t/* &1D v{} Structure (8+8 bytes) */\n\t.byte\t40\t\t/* &1E v%% Signed qword (64 bits) */\n\t.byte\t136\t\t/* &1F v$  String (4+4 bytes) */\n\n.text\n\t.balign\t8\n_bbcfont:\n\t.byte\t0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 /* NUL */\n\t.byte\t0x7E,0x81,0xA5,0x81,0xBD,0x99,0x81,0x7E /* SOH */\n\t.byte\t0x7E,0xFF,0xDB,0xFF,0xC3,0xE7,0xFF,0x7E /* STX */\n\t.byte\t0x6C,0xFE,0xFE,0xFE,0x7C,0x38,0x10,0x00 /* ETX */\n\t.byte\t0x10,0x38,0x7C,0xFE,0x7C,0x38,0x10,0x00 /* EOT */\n\t.byte\t0x10,0x38,0x38,0xD6,0xFE,0xD6,0x10,0x38 /* ENQ */\n\t.byte\t0x10,0x38,0x7C,0xFE,0xFE,0xFE,0x38,0x7C /* ACK */\n\t.byte\t0x00,0x00,0x18,0x3C,0x3C,0x18,0x00,0x00 /* BEL */\n\t.byte\t0xFF,0xFF,0xE7,0xC3,0xC3,0xE7,0xFF,0xFF /* BS */\n\t.byte\t0x00,0x3C,0x66,0x42,0x42,0x66,0x3C,0x00 /* HT */\n\t.byte\t0xFF,0xC3,0x99,0xBD,0xBD,0x99,0xC3,0xFF /* LF */\n\t.byte\t0x0F,0x07,0x0F,0x7D,0xCC,0xCC,0xCC,0x78 /* VT */\n\t.byte\t0x3C,0x66,0x66,0x66,0x3C,0x18,0x7E,0x18 /* FF */\n\t.byte\t0x3F,0x33,0x3F,0x30,0x30,0x70,0xF0,0xE0 /* CR */\n\t.byte\t0x7F,0x63,0x7F,0x63,0x63,0x67,0xE6,0xC0 /* SO */\n\t.byte\t0x99,0x5A,0x3C,0xE7,0xE7,0x3C,0x5A,0x99 /* SI */\n\t.byte\t0x80,0xE0,0xF8,0xFE,0xF8,0xE0,0x80,0x00 /* DLE */\n\t.byte\t0x02,0x0E,0x3E,0xFE,0x3E,0x0E,0x02,0x00 /* DC1 */\n\t.byte\t0x18,0x3C,0x7E,0x18,0x18,0x7E,0x3C,0x18 /* DC2 */\n\t.byte\t0x66,0x66,0x66,0x66,0x66,0x00,0x66,0x00 /* DC3 */\n\t.byte\t0x7F,0xDB,0xDB,0x7B,0x1B,0x1B,0x1B,0x00 /* DC4 */\n\t.byte\t0x3E,0x63,0x38,0x6C,0x6C,0x38,0xCC,0x78 /* NAK */\n\t.byte\t0x00,0x00,0x00,0x00,0x7E,0x7E,0x7E,0x00 /* SYN */\n\t.byte\t0x18,0x3C,0x7E,0x18,0x7E,0x3C,0x18,0xFF /* ETB */\n\t.byte\t0x18,0x3C,0x7E,0x18,0x18,0x18,0x18,0x00 /* CAN */\n\t.byte\t0x18,0x18,0x18,0x18,0x7E,0x3C,0x18,0x00 /* EM */\n\t.byte\t0x00,0x18,0x0C,0xFE,0x0C,0x18,0x00,0x00 /* SUB */\n\t.byte\t0x00,0x30,0x60,0xFE,0x60,0x30,0x00,0x00 /* ESC */\n\t.byte\t0x00,0x00,0xC0,0xC0,0xC0,0xFE,0x00,0x00 /* FS */\n\t.byte\t0x00,0x24,0x66,0xFF,0x66,0x24,0x00,0x00 /* GS */\n\t.byte\t0x00,0x18,0x3C,0x7E,0xFF,0xFF,0x00,0x00 /* RS */\n\t.byte\t0x00,0xFF,0xFF,0x7E,0x3C,0x18,0x00,0x00 /* US */\n\t.byte\t0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 /*   */\n\t.byte\t0x30,0x30,0x30,0x30,0x30,0x00,0x30,0x00 /* ! */\n\t.byte\t0x6C,0x6C,0x6C,0x00,0x00,0x00,0x00,0x00 /* \" */\n\t.byte\t0x6C,0x6C,0xFE,0x6C,0xFE,0x6C,0x6C,0x00 /* # */\n\t.byte\t0x18,0x7E,0xD0,0x7C,0x16,0xFC,0x30,0x00 /* $ */\n\t.byte\t0xC0,0xCC,0x18,0x30,0x60,0xCC,0x0C,0x00 /* % */\n\t.byte\t0x38,0x6C,0x38,0x76,0xDC,0xCC,0x76,0x00 /* & */\n\t.byte\t0x18,0x30,0x60,0x00,0x00,0x00,0x00,0x00 /* ' */\n\t.byte\t0x18,0x30,0x60,0x60,0x60,0x30,0x18,0x00 /* ( */\n\t.byte\t0x60,0x30,0x18,0x18,0x18,0x30,0x60,0x00 /* ) */\n\t.byte\t0x00,0x6C,0x38,0xFE,0x38,0x6C,0x00,0x00 /* * */\n\t.byte\t0x00,0x30,0x30,0xFC,0x30,0x30,0x00,0x00 /* + */\n\t.byte\t0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x60 /* , */\n\t.byte\t0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00 /* - */\n\t.byte\t0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00 /* . */\n\t.byte\t0x00,0x0C,0x18,0x30,0x60,0xC0,0x00,0x00 /* / */\n\t.byte\t0x78,0xCC,0xDC,0xFC,0xEC,0xCC,0x78,0x00 /* 0 */\n\t.byte\t0x30,0x70,0x30,0x30,0x30,0x30,0xFC,0x00 /* 1 */\n\t.byte\t0x78,0xCC,0x0C,0x18,0x30,0x60,0xFC,0x00 /* 2 */\n\t.byte\t0x78,0xCC,0x0C,0x38,0x0C,0xCC,0x78,0x00 /* 3 */\n\t.byte\t0x18,0x38,0x78,0xD8,0xFC,0x18,0x18,0x00 /* 4 */\n\t.byte\t0xFC,0xC0,0xF8,0x0C,0x0C,0xCC,0x78,0x00 /* 5 */\n\t.byte\t0x38,0x60,0xC0,0xF8,0xCC,0xCC,0x78,0x00 /* 6 */\n\t.byte\t0xFC,0x0C,0x18,0x30,0x60,0x60,0x60,0x00 /* 7 */\n\t.byte\t0x78,0xCC,0xCC,0x78,0xCC,0xCC,0x78,0x00 /* 8 */\n\t.byte\t0x78,0xCC,0xCC,0x7C,0x0C,0x18,0x70,0x00 /* 9 */\n\t.byte\t0x00,0x00,0x30,0x30,0x00,0x30,0x30,0x00 /* : */\n\t.byte\t0x00,0x00,0x30,0x30,0x00,0x30,0x30,0x60 /* ; */\n\t.byte\t0x18,0x30,0x60,0xC0,0x60,0x30,0x18,0x00 /* < */\n\t.byte\t0x00,0x00,0xFC,0x00,0xFC,0x00,0x00,0x00 /* = */\n\t.byte\t0x60,0x30,0x18,0x0C,0x18,0x30,0x60,0x00 /* > */\n\t.byte\t0x78,0xCC,0x18,0x30,0x30,0x00,0x30,0x00 /* ? */\n\t.byte\t0x78,0xCC,0xDC,0xD4,0xDC,0xC0,0x78,0x00 /* @ */\n\t.byte\t0x78,0xCC,0xCC,0xFC,0xCC,0xCC,0xCC,0x00 /* A */\n\t.byte\t0xF8,0xCC,0xCC,0xF8,0xCC,0xCC,0xF8,0x00 /* B */\n\t.byte\t0x78,0xCC,0xC0,0xC0,0xC0,0xCC,0x78,0x00 /* C */\n\t.byte\t0xF0,0xD8,0xCC,0xCC,0xCC,0xD8,0xF0,0x00 /* D */\n\t.byte\t0xFC,0xC0,0xC0,0xF8,0xC0,0xC0,0xFC,0x00 /* E */\n\t.byte\t0xFC,0xC0,0xC0,0xF8,0xC0,0xC0,0xC0,0x00 /* F */\n\t.byte\t0x78,0xCC,0xC0,0xDC,0xCC,0xCC,0x78,0x00 /* G */\n\t.byte\t0xCC,0xCC,0xCC,0xFC,0xCC,0xCC,0xCC,0x00 /* H */\n\t.byte\t0xFC,0x30,0x30,0x30,0x30,0x30,0xFC,0x00 /* I */\n\t.byte\t0x7C,0x18,0x18,0x18,0x18,0xD8,0x70,0x00 /* J */\n\t.byte\t0xCC,0xD8,0xF0,0xE0,0xF0,0xD8,0xCC,0x00 /* K */\n\t.byte\t0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xFC,0x00 /* L */\n\t.byte\t0xC6,0xEE,0xFE,0xD6,0xD6,0xC6,0xC6,0x00 /* M */\n\t.byte\t0xCC,0xCC,0xEC,0xFC,0xDC,0xCC,0xCC,0x00 /* N */\n\t.byte\t0x78,0xCC,0xCC,0xCC,0xCC,0xCC,0x78,0x00 /* O */\n\t.byte\t0xF8,0xCC,0xCC,0xF8,0xC0,0xC0,0xC0,0x00 /* P */\n\t.byte\t0x78,0xCC,0xCC,0xCC,0xDC,0x78,0x1C,0x00 /* Q */\n\t.byte\t0xF8,0xCC,0xCC,0xF8,0xD8,0xCC,0xCC,0x00 /* R */\n\t.byte\t0x78,0xCC,0xC0,0x78,0x0C,0xCC,0x78,0x00 /* S */\n\t.byte\t0xFC,0x30,0x30,0x30,0x30,0x30,0x30,0x00 /* T */\n\t.byte\t0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x78,0x00 /* U */\n\t.byte\t0xCC,0xCC,0xCC,0xCC,0xCC,0x78,0x30,0x00 /* V */\n\t.byte\t0xC6,0xC6,0xD6,0xD6,0xFE,0xEE,0xC6,0x00 /* W */\n\t.byte\t0xCC,0xCC,0x78,0x30,0x78,0xCC,0xCC,0x00 /* X */\n\t.byte\t0xCC,0xCC,0xCC,0x78,0x30,0x30,0x30,0x00 /* Y */\n\t.byte\t0xFC,0x0C,0x18,0x30,0x60,0xC0,0xFC,0x00 /* Z */\n\t.byte\t0xF8,0xC0,0xC0,0xC0,0xC0,0xC0,0xF8,0x00 /* [ */\n\t.byte\t0x00,0xC0,0x60,0x30,0x18,0x0C,0x00,0x00 /* \\ */\n\t.byte\t0x7C,0x0C,0x0C,0x0C,0x0C,0x0C,0x7C,0x00 /* ] */\n\t.byte\t0x10,0x38,0x6C,0xC6,0x00,0x00,0x00,0x00 /* ^ */\n\t.byte\t0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF /* _ */\n\t.byte\t0x60,0x30,0x18,0x00,0x00,0x00,0x00,0x00 /* ` */\n\t.byte\t0x00,0x00,0x78,0x0C,0x7C,0xCC,0x7C,0x00 /* a */\n\t.byte\t0xC0,0xC0,0xF8,0xCC,0xCC,0xCC,0xF8,0x00 /* b */\n\t.byte\t0x00,0x00,0x78,0xCC,0xC0,0xCC,0x78,0x00 /* c */\n\t.byte\t0x0C,0x0C,0x7C,0xCC,0xCC,0xCC,0x7C,0x00 /* d */\n\t.byte\t0x00,0x00,0x78,0xCC,0xFC,0xC0,0x78,0x00 /* e */\n\t.byte\t0x38,0x60,0x60,0xF8,0x60,0x60,0x60,0x00 /* f */\n\t.byte\t0x00,0x00,0x7C,0xCC,0xCC,0x7C,0x0C,0x78 /* g */\n\t.byte\t0xC0,0xC0,0xF8,0xCC,0xCC,0xCC,0xCC,0x00 /* h */\n\t.byte\t0x30,0x00,0x70,0x30,0x30,0x30,0x78,0x00 /* i */\n\t.byte\t0x30,0x00,0x70,0x30,0x30,0x30,0x30,0xE0 /* j */\n\t.byte\t0xC0,0xC0,0xCC,0xD8,0xF0,0xD8,0xCC,0x00 /* k */\n\t.byte\t0x70,0x30,0x30,0x30,0x30,0x30,0x78,0x00 /* l */\n\t.byte\t0x00,0x00,0x6C,0xFE,0xD6,0xD6,0xC6,0x00 /* m */\n\t.byte\t0x00,0x00,0xF8,0xCC,0xCC,0xCC,0xCC,0x00 /* n */\n\t.byte\t0x00,0x00,0x78,0xCC,0xCC,0xCC,0x78,0x00 /* o */\n\t.byte\t0x00,0x00,0xF8,0xCC,0xCC,0xF8,0xC0,0xC0 /* p */\n\t.byte\t0x00,0x00,0x7C,0xCC,0xCC,0x7C,0x0C,0x0E /* q */\n\t.byte\t0x00,0x00,0xD8,0xEC,0xC0,0xC0,0xC0,0x00 /* r */\n\t.byte\t0x00,0x00,0x7C,0xC0,0x78,0x0C,0xF8,0x00 /* s */\n\t.byte\t0x60,0x60,0xF8,0x60,0x60,0x60,0x38,0x00 /* t */\n\t.byte\t0x00,0x00,0xCC,0xCC,0xCC,0xCC,0x7C,0x00 /* u */\n\t.byte\t0x00,0x00,0xCC,0xCC,0xCC,0x78,0x30,0x00 /* v */\n\t.byte\t0x00,0x00,0xC6,0xD6,0xD6,0xFE,0x6C,0x00 /* w */\n\t.byte\t0x00,0x00,0xCC,0x78,0x30,0x78,0xCC,0x00 /* x */\n\t.byte\t0x00,0x00,0xCC,0xCC,0xCC,0x7C,0x0C,0x78 /* y */\n\t.byte\t0x00,0x00,0xFC,0x18,0x30,0x60,0xFC,0x00 /* z */\n\t.byte\t0x18,0x30,0x30,0xE0,0x30,0x30,0x18,0x00 /* { */\n\t.byte\t0x30,0x30,0x30,0x00,0x30,0x30,0x30,0x00 /* | */\n\t.byte\t0x60,0x30,0x30,0x1C,0x30,0x30,0x60,0x00 /* } */\n\t.byte\t0x76,0xDC,0x00,0x00,0x00,0x00,0x00,0x00 /* ~ */\n\t.byte\t0x00,0x10,0x38,0x6C,0xC6,0xC6,0xFE,0x00 /* DEL */\n\t.byte\t0x3C,0x62,0xF8,0x60,0xF8,0x62,0x3C,0x00 /* &80 euro symbol */\n\t.byte\t0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00 /* &81 block (teletext) */\n\t.byte\t0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x30 /* &82 single low quotation mark */\n\t.byte\t0x00,0x0C,0x18,0x18,0x3C,0x18,0x18,0x70 /* &83 small letter f with hook */\n\t.byte\t0x00,0x00,0x00,0x00,0x00,0x6C,0x6C,0xD8 /* &84 double low quotation mark */\n\t.byte\t0x00,0x00,0x00,0x00,0x00,0x00,0x54,0x00 /* &85 horizontal ellipsis */\n\t.byte\t0x18,0x18,0x7E,0x18,0x18,0x18,0x18,0x00 /* &86 dagger */\n\t.byte\t0x18,0x18,0x7E,0x18,0x18,0x7E,0x18,0x18 /* &87 double dagger */\n\t.byte\t0x10,0x38,0x6C,0x00,0x00,0x00,0x00,0x00 /* &88 circumflex accent */\n\t.byte\t0xC6,0xCC,0x18,0x30,0x60,0xDB,0x1B,0x00 /* &89 per mille */\n\t.byte\t0x38,0x7C,0xC6,0x70,0x1C,0xC6,0x7C,0x00 /* &8A capital S caron */\n\t.byte\t0x00,0x18,0x30,0x60,0x30,0x18,0x00,0x00 /* &8B left angle quotation mark */\n\t.byte\t0x7E,0xD8,0xD8,0xDE,0xD8,0xD8,0x7E,0x00 /* &8C capital OE ligature */\n\t.byte\t0x30,0x78,0xFC,0x30,0x30,0x30,0x30,0x00 /* &8D up arrow (teletext) */\n\t.byte\t0x38,0xFE,0x0C,0x18,0x30,0x60,0xFE,0x00 /* &8E capital Z caron */\n\t.byte\t0x00,0x20,0x60,0xFE,0x60,0x20,0x00,0x00 /* &8F left arrow (teletext) */\n\t.byte\t0x00,0x08,0x0C,0xFE,0x0C,0x08,0x00,0x00 /* &90 right arrow (teletext) */\n\t.byte\t0x30,0x30,0x18,0x00,0x00,0x00,0x00,0x00 /* &91 left single quotation mark */\n\t.byte\t0x18,0x18,0x30,0x00,0x00,0x00,0x00,0x00 /* &92 right single quotation mark */\n\t.byte\t0x6C,0x6C,0x36,0x00,0x00,0x00,0x00,0x00 /* &93 left double quotation mark */\n\t.byte\t0x36,0x36,0x6C,0x00,0x00,0x00,0x00,0x00 /* &94 right double quotation mark */\n\t.byte\t0x00,0x00,0x18,0x3C,0x3C,0x18,0x00,0x00 /* &95 bullet */\n\t.byte\t0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00 /* &96 en dash */\n\t.byte\t0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00 /* &97 em dash */\n\t.byte\t0x36,0x6C,0x00,0x00,0x00,0x00,0x00,0x00 /* &98 small tilde */\n\t.byte\t0xEA,0x4E,0x4A,0x4A,0x00,0x00,0x00,0x00 /* &99 trade mark sign */\n\t.byte\t0x6C,0x38,0x7C,0xC0,0x78,0x0C,0xF8,0x00 /* &9A small S caron */\n\t.byte\t0x00,0x30,0x18,0x0C,0x18,0x30,0x00,0x00 /* &9B right angle quotation mark */\n\t.byte\t0x00,0x00,0x7E,0xDB,0xDF,0xD8,0x7F,0x00 /* &9C small OE ligature */\n\t.byte\t0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x00 /* &9D double line (teletext) */\n\t.byte\t0x6C,0x38,0x7C,0x18,0x30,0x60,0x7C,0x00 /* &9E small Z caron */\n\t.byte\t0xCC,0x00,0xCC,0xCC,0x78,0x30,0x30,0x00 /* &9F capital Y diaeresis */\n\t.byte\t0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 /*   */\n\t.byte\t0x18,0x00,0x18,0x18,0x18,0x18,0x18,0x00 /*   */\n\t.byte\t0x00,0x18,0x7E,0xD8,0xD8,0x7E,0x18,0x00 /*   */\n\t.byte\t0x38,0x6C,0x60,0xF0,0x60,0x66,0xFC,0x00 /*   */\n\t.byte\t0x66,0x3C,0x66,0x3C,0x66,0x00,0x00,0x00 /*   */\n\t.byte\t0xC3,0x66,0x3C,0x18,0x3C,0x18,0x18,0x00 /*   */\n\t.byte\t0x18,0x18,0x18,0x00,0x18,0x18,0x18,0x00 /*   */\n\t.byte\t0x3C,0x60,0x3C,0x66,0x66,0x3C,0x06,0x3C /*   */\n\t.byte\t0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00 /*   */\n\t.byte\t0x7E,0x81,0x9D,0xB1,0xB1,0x9D,0x81,0x7E /*   */\n\t.byte\t0x3C,0x6C,0x6C,0x3E,0x00,0x7E,0x00,0x00 /*   */\n\t.byte\t0x00,0x33,0x66,0xCC,0x66,0x33,0x00,0x00 /*   */\n\t.byte\t0x00,0x7E,0x06,0x06,0x00,0x00,0x00,0x00 /*   */\n\t.byte\t0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x00\n\t.byte\t0x7E,0x81,0xB9,0xA5,0xB9,0xA5,0x81,0x7E /*   */\n\t.byte\t0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00 /*   */\n\t.byte\t0x3C,0x66,0x3C,0x00,0x00,0x00,0x00,0x00 /*   */\n\t.byte\t0x18,0x18,0x7E,0x18,0x18,0x00,0x7E,0x00 /*   */\n\t.byte\t0x70,0x18,0x30,0x60,0x78,0x00,0x00,0x00 /*   */\n\t.byte\t0x78,0x0C,0x18,0x0C,0x78,0x00,0x00,0x00 /*   */\n\t.byte\t0x0C,0x18,0x30,0x00,0x00,0x00,0x00,0x00 /*   */\n\t.byte\t0x00,0x00,0x66,0x66,0x66,0x7C,0x60,0xC0 /*   */\n\t.byte\t0x3E,0x7A,0x7A,0x3A,0x1A,0x1A,0x1A,0x00 /*   */\n\t.byte\t0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00 /*   */\n\t.byte\t0x00,0x00,0x00,0x00,0x00,0x08,0x18,0x00 /*   */\n\t.byte\t0x30,0x70,0x30,0x30,0x30,0x00,0x00,0x00 /*   */\n\t.byte\t0x38,0x6C,0x6C,0x38,0x00,0x7C,0x00,0x00 /*   */\n\t.byte\t0x00,0xCC,0x66,0x33,0x66,0xCC,0x00,0x00 /*   */\n\t.byte\t0x43,0xC6,0x4C,0x5A,0x36,0x6A,0xCF,0x02 /*   */\n\t.byte\t0x40,0xC6,0x4C,0x5E,0x33,0x66,0xCC,0x0F /*   */\n\t.byte\t0xC0,0x23,0x66,0x2D,0xDB,0x35,0x67,0x01 /*   */\n\t.byte\t0x18,0x00,0x18,0x30,0x60,0x66,0x3C,0x00 /*   */\n\t.byte\t0x70,0x00,0x3C,0x66,0x7E,0x66,0x66,0x00 /*   */\n\t.byte\t0x0E,0x00,0x3C,0x66,0x7E,0x66,0x66,0x00 /*   */\n\t.byte\t0x18,0x66,0x00,0x3C,0x66,0x7E,0x66,0x00 /*   */\n\t.byte\t0x76,0xDC,0x00,0x3C,0x66,0x7E,0x66,0x00 /*   */\n\t.byte\t0x66,0x00,0x3C,0x66,0x7E,0x66,0x66,0x00 /*   */\n\t.byte\t0x18,0x18,0x00,0x3C,0x66,0x7E,0x66,0x00 /*   */\n\t.byte\t0x3F,0x6C,0xCC,0xFE,0xCC,0xCC,0xCF,0x00 /*   */\n\t.byte\t0x3C,0x66,0x60,0x60,0x60,0x66,0x3C,0x18 /*   */\n\t.byte\t0x70,0x00,0x3C,0x66,0x7E,0x66,0x66,0x00 /*   */\n\t.byte\t0x0E,0x00,0x3C,0x66,0x7E,0x66,0x66,0x00 /*   */\n\t.byte\t0x18,0x66,0x00,0xFE,0xF0,0xC0,0xFE,0x00 /*   */\n\t.byte\t0x66,0x00,0x3C,0x66,0x7E,0x66,0x66,0x00 /*   */\n\t.byte\t0x70,0x00,0x7E,0x18,0x18,0x18,0x7E,0x00 /*   */\n\t.byte\t0x0E,0x00,0x7E,0x18,0x18,0x18,0x7E,0x00 /*   */\n\t.byte\t0x18,0x66,0x00,0x7E,0x18,0x18,0x7E,0x00 /*   */\n\t.byte\t0x66,0x00,0x7E,0x18,0x18,0x18,0x7E,0x00 /*   */\n\t.byte\t0x78,0x6C,0x66,0xF6,0x66,0x6C,0x78,0x00 /*   */\n\t.byte\t0x76,0xDC,0x00,0xC6,0xF6,0xDE,0xC6,0x00 /*   */\n\t.byte\t0x70,0x00,0x7C,0xC6,0xC6,0xC6,0x7C,0x00 /*   */\n\t.byte\t0x0E,0x00,0x7C,0xC6,0xC6,0xC6,0x7C,0x00 /*   */\n\t.byte\t0x18,0x66,0x00,0x7C,0xC6,0xC6,0x7C,0x00 /*   */\n\t.byte\t0x76,0xDC,0x00,0x7C,0xC6,0xC6,0x7C,0x00 /*   */\n\t.byte\t0x66,0x00,0x7C,0xC6,0xC6,0xC6,0x7C,0x00 /*   */\n\t.byte\t0x00,0xC6,0x6C,0x38,0x6C,0xC6,0x00,0x00 /*   */\n\t.byte\t0x3E,0x66,0x6E,0x7E,0x76,0x66,0x7C,0x00 /*   */\n\t.byte\t0x70,0x00,0xC6,0xC6,0xC6,0xC6,0x7C,0x00 /*   */\n\t.byte\t0x0E,0x00,0xC6,0xC6,0xC6,0xC6,0x7C,0x00 /*   */\n\t.byte\t0x18,0x66,0x00,0xC6,0xC6,0xC6,0x7C,0x00 /*   */\n\t.byte\t0x66,0x00,0xC6,0xC6,0xC6,0xC6,0x7C,0x00 /*   */\n\t.byte\t0x0E,0x00,0x66,0x66,0x3C,0x18,0x18,0x00 /*   */\n\t.byte\t0xC0,0xC0,0xFC,0xC6,0xFC,0xC0,0xC0,0x00 /*   */\n\t.byte\t0x3C,0x66,0x66,0x6C,0x66,0x66,0x6C,0x00 /*   */\n\t.byte\t0x70,0x00,0x3C,0x06,0x3E,0x66,0x3E,0x00 /*   */\n\t.byte\t0x0E,0x00,0x3C,0x06,0x3E,0x66,0x3E,0x00 /*   */\n\t.byte\t0x18,0x66,0x00,0x3E,0x66,0xC6,0x7E,0x00 /*   */\n\t.byte\t0x76,0xDC,0x00,0x3E,0x66,0xC6,0x7E,0x00 /*   */\n\t.byte\t0x66,0x00,0x3C,0x06,0x3E,0x66,0x3E,0x00 /*   */\n\t.byte\t0x18,0x18,0x00,0x3E,0x66,0xC6,0x7E,0x00 /*   */\n\t.byte\t0x00,0x00,0x7E,0x1B,0x7F,0xD8,0x77,0x00 /*   */\n\t.byte\t0x00,0x00,0x3C,0x60,0x60,0x60,0x3C,0x18 /*   */\n\t.byte\t0x70,0x00,0x3C,0x66,0x7E,0x60,0x3C,0x00 /*   */\n\t.byte\t0x0E,0x00,0x3C,0x66,0x7E,0x60,0x3C,0x00 /*   */\n\t.byte\t0x18,0x66,0x00,0x3C,0x7E,0x60,0x3C,0x00 /*   */\n\t.byte\t0x66,0x00,0x3C,0x66,0x7E,0x60,0x3C,0x00 /*   */\n\t.byte\t0x70,0x00,0x38,0x18,0x18,0x18,0x3C,0x00 /*   */\n\t.byte\t0x0E,0x00,0x38,0x18,0x18,0x18,0x3C,0x00 /*   */\n\t.byte\t0x18,0x66,0x00,0x38,0x18,0x18,0x3C,0x00 /*   */\n\t.byte\t0x66,0x00,0x38,0x18,0x18,0x18,0x3C,0x00 /*   */\n\t.byte\t0x0C,0x3E,0x0C,0x7C,0xCC,0xCC,0x78,0x00 /*   */\n\t.byte\t0x76,0xDC,0x00,0x7C,0x66,0x66,0x66,0x00 /*   */\n\t.byte\t0x70,0x00,0x3C,0x66,0x66,0x66,0x3C,0x00 /*   */\n\t.byte\t0x0E,0x00,0x3C,0x66,0x66,0x66,0x3C,0x00 /*   */\n\t.byte\t0x18,0x66,0x00,0x3C,0x66,0x66,0x3C,0x00 /*   */\n\t.byte\t0x76,0xDC,0x00,0x3C,0x66,0x66,0x3C,0x00 /*   */\n\t.byte\t0x66,0x00,0x3C,0x66,0x66,0x66,0x3C,0x00 /*   */\n\t.byte\t0x18,0x18,0x00,0x7E,0x00,0x18,0x18,0x00 /*   */\n\t.byte\t0x00,0x02,0x7C,0xCE,0xD6,0xE6,0x7C,0x80 /*   */\n\t.byte\t0x70,0x00,0x66,0x66,0x66,0x66,0x3E,0x00 /*   */\n\t.byte\t0x0E,0x00,0x66,0x66,0x66,0x66,0x3E,0x00 /*   */\n\t.byte\t0x18,0x66,0x00,0x66,0x66,0x66,0x3E,0x00 /*   */\n\t.byte\t0x66,0x00,0x66,0x66,0x66,0x66,0x3E,0x00 /*   */\n\t.byte\t0x0E,0x00,0x66,0x66,0x66,0x3E,0x06,0x3C /*   */\n\t.byte\t0x60,0x60,0x7C,0x66,0x66,0x7C,0x60,0x60 /*   */\n\t.byte\t0x66,0x00,0x66,0x66,0x66,0x3E,0x06,0x3C /*   */\n\n_ttxtfont:\n\t.short\t0x0000,0x0011,0x0011,0x0019,0x0015,0x0013,0x0011,0x0011,0x8800,0x8800,0x8800,0x8800,0x8800,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000 /* NU */\n\t.short\t0x0000,0x000E,0x0011,0x0011,0x001F,0x0011,0x0011,0x0011,0xF000,0x8800,0x8800,0xF000,0x8800,0x8800,0x8800,0x0000,0x0000,0x0000,0x0000,0x0000 /* AR */\n\t.short\t0x0000,0x000E,0x0011,0x0011,0x001F,0x0011,0x0011,0x0011,0x7000,0x8800,0x8000,0x9800,0x8800,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000 /* AG */\n\t.short\t0x0000,0x000E,0x0011,0x0011,0x001F,0x0011,0x0011,0x0011,0x8800,0x8800,0x5000,0x2000,0x2000,0x2000,0x2000,0x0000,0x0000,0x0000,0x0000,0x0000 /* AY */\n\t.short\t0x0000,0x000E,0x0011,0x0011,0x001F,0x0011,0x0011,0x0011,0xF000,0x8800,0x8800,0xF000,0x8800,0x8800,0xF000,0x0000,0x0000,0x0000,0x0000,0x0000 /* AB */\n\t.short\t0x0000,0x000E,0x0011,0x0011,0x001F,0x0011,0x0011,0x0011,0x8800,0xD800,0xA800,0xA800,0x8800,0x8800,0x8800,0x0000,0x0000,0x0000,0x0000,0x0000 /* AM */\n\t.short\t0x0000,0x000E,0x0011,0x0011,0x001F,0x0011,0x0011,0x0011,0x7000,0x8800,0x8000,0x8000,0x8000,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000 /* AC */\n\t.short\t0x0000,0x000E,0x0011,0x0011,0x001F,0x0011,0x0011,0x0011,0x8800,0x8800,0x8800,0xA800,0xA800,0xD800,0x8800,0x0000,0x0000,0x0000,0x0000,0x0000 /* AW */\n\t.short\t0x0000,0x001F,0x0010,0x0010,0x001E,0x0010,0x0010,0x0010,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0xF800,0x0000,0x0000,0x0000,0x0000,0x0000 /* FL */\n\t.short\t0x0000,0x000E,0x0011,0x0010,0x000E,0x0001,0x0011,0x000E,0xF800,0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x0000,0x0000,0x0000,0x0000,0x0000 /* ST */\n\t.short\t0x0000,0x001F,0x0010,0x0010,0x001E,0x0010,0x0010,0x001F,0xF000,0x8800,0x8800,0xF000,0x8800,0x8800,0xF000,0x0000,0x0000,0x0000,0x0000,0x0000 /* EB */\n\t.short\t0x0000,0x000E,0x0011,0x0010,0x000E,0x0001,0x0011,0x000E,0xF000,0x8800,0x8800,0xF000,0x8800,0x8800,0xF000,0x0000,0x0000,0x0000,0x0000,0x0000 /* SB */\n\t.short\t0x0000,0x0011,0x0011,0x0019,0x0015,0x0013,0x0011,0x0011,0x8800,0x8800,0x8800,0xF800,0x8800,0x8800,0x8800,0x0000,0x0000,0x0000,0x0000,0x0000 /* NH */\n\t.short\t0x0000,0x001C,0x0012,0x0011,0x0011,0x0011,0x0012,0x001C,0x8800,0x8800,0x8800,0xF800,0x8800,0x8800,0x8800,0x0000,0x0000,0x0000,0x0000,0x0000 /* DH */\n\t.short\t0x0000,0x000E,0x0011,0x0010,0x000E,0x0001,0x0011,0x000E,0x7000,0x8800,0x8800,0x8800,0x8800,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000 /* SO */\n\t.short\t0x0000,0x000E,0x0011,0x0010,0x000E,0x0001,0x0011,0x000E,0x7000,0x2000,0x2000,0x2000,0x2000,0x2000,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000 /* SI */\n\t.short\t0x0000,0x001C,0x0012,0x0011,0x0011,0x0011,0x0012,0x001C,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0xF800,0x0000,0x0000,0x0000,0x0000,0x0000 /* DL */\n\t.short\t0x0000,0x000E,0x0011,0x0010,0x0013,0x0011,0x0011,0x000E,0xF000,0x8800,0x8800,0xF000,0x8800,0x8800,0x8800,0x0000,0x0000,0x0000,0x0000,0x0000 /* GR */\n\t.short\t0x0000,0x000E,0x0011,0x0010,0x0013,0x0011,0x0011,0x000E,0x7000,0x8800,0x8000,0x9800,0x8800,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000 /* GG */\n\t.short\t0x0000,0x000E,0x0011,0x0010,0x0013,0x0011,0x0011,0x000E,0x8800,0x8800,0x5000,0x2000,0x2000,0x2000,0x2000,0x0000,0x0000,0x0000,0x0000,0x0000 /* GY */\n\t.short\t0x0000,0x000E,0x0011,0x0010,0x0013,0x0011,0x0011,0x000E,0xF000,0x8800,0x8800,0xF000,0x8800,0x8800,0xF000,0x0000,0x0000,0x0000,0x0000,0x0000 /* GB */\n\t.short\t0x0000,0x000E,0x0011,0x0010,0x0013,0x0011,0x0011,0x000E,0x8800,0xD800,0xA800,0xA800,0x8800,0x8800,0x8800,0x0000,0x0000,0x0000,0x0000,0x0000 /* GM */\n\t.short\t0x0000,0x000E,0x0011,0x0010,0x0013,0x0011,0x0011,0x000E,0x7000,0x8800,0x8000,0x8000,0x8000,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000 /* GC */\n\t.short\t0x0000,0x000E,0x0011,0x0010,0x0013,0x0011,0x0011,0x000E,0x8800,0x8800,0x8800,0xA800,0xA800,0xD800,0x8800,0x0000,0x0000,0x0000,0x0000,0x0000 /* GW */\n\t.short\t0x0000,0x000E,0x0011,0x0010,0x0010,0x0010,0x0011,0x000E,0xE000,0x9000,0x8800,0x8800,0x8800,0x9000,0xE000,0x0000,0x0000,0x0000,0x0000,0x0000 /* CD */\n\t.short\t0x0000,0x000E,0x0011,0x0010,0x0010,0x0010,0x0011,0x000E,0x7000,0x8800,0x8000,0x9800,0x8800,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000 /* CG */\n\t.short\t0x0000,0x000E,0x0011,0x0010,0x000E,0x0001,0x0011,0x000E,0x7000,0x8800,0x8000,0x9800,0x8800,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000 /* SG */\n\t.short\t0x0000,0x001F,0x0010,0x0010,0x001E,0x0010,0x0010,0x001F,0x7000,0x8800,0x8000,0x7000,0x0800,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000 /* ES */\n\t.short\t0x0000,0x001E,0x0011,0x0011,0x001E,0x0011,0x0011,0x001E,0xF000,0x8800,0x8800,0xF000,0x8800,0x8800,0xF000,0x0000,0x0000,0x0000,0x0000,0x0000 /* BB */\n\t.short\t0x0000,0x0011,0x0011,0x0019,0x0015,0x0013,0x0011,0x0011,0xF000,0x8800,0x8800,0xF000,0x8800,0x8800,0xF000,0x0000,0x0000,0x0000,0x0000,0x0000 /* NB */\n\t.short\t0x0000,0x0011,0x0011,0x0011,0x001F,0x0011,0x0011,0x0011,0x7000,0x8800,0x8000,0x9800,0x8800,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000 /* HG */\n\t.short\t0x0000,0x001E,0x0011,0x0011,0x001E,0x0011,0x0011,0x0011,0x7000,0x8800,0x8000,0x9800,0x8800,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000 /* RG */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /* ! */\n\t.short\t0x0000,0x700E,0x700E,0x700E,0x700E,0x700E,0x700E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* \" */\n\t.short\t0x0000,0x700E,0x700E,0x700E,0x700E,0xFC3F,0xFC3F,0x700E,0x700E,0xFC3F,0xFC3F,0x700E,0x700E,0x700E,0x700E,0x0000,0x0000,0x0000,0x0000,0x0000 /* # */\n\t.short\t0x0000,0xF00F,0xF81F,0x9C39,0x8C31,0x8031,0x8039,0xF01F,0xF80F,0x9C01,0x8C01,0x8C31,0x9C39,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* $ */\n\t.short\t0x0000,0x003C,0x0C3C,0x1C3C,0x383C,0x7000,0xE000,0xC001,0x8003,0x0007,0x000E,0x3C1C,0x3C38,0x3C30,0x3C00,0x0000,0x0000,0x0000,0x0000,0x0000 /* % */\n\t.short\t0x0000,0x000E,0x001F,0x803B,0x8031,0x803B,0x001F,0x000E,0x001F,0x8C3B,0xDC31,0xF830,0xF838,0xDC1F,0x8C0F,0x0000,0x0000,0x0000,0x0000,0x0000 /* & */\n\t.short\t0x0000,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* ' */\n\t.short\t0x0000,0x6000,0xE000,0xC001,0x8003,0x0007,0x0006,0x0006,0x0006,0x0006,0x0007,0x8003,0xC001,0xE000,0x6000,0x0000,0x0000,0x0000,0x0000,0x0000 /* ( */\n\t.short\t0x0000,0x0006,0x0007,0x8003,0xC001,0xE000,0x6000,0x6000,0x6000,0x6000,0xE000,0xC001,0x8003,0x0007,0x0006,0x0000,0x0000,0x0000,0x0000,0x0000 /* ) */\n\t.short\t0x0000,0x8001,0x8001,0x8C31,0x9C39,0xF81F,0xF00F,0x8001,0x8001,0xF00F,0xF81F,0x9C39,0x8C31,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /* * */\n\t.short\t0x0000,0x0000,0x0000,0x8001,0x8001,0x8001,0x8001,0xF81F,0xF81F,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* + */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x8001,0x8003,0x0007,0x0006,0x0000,0x0000,0x0000 /* , */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* - */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /* . */\n\t.short\t0x0000,0x0000,0x0C00,0x1C00,0x3800,0x7000,0xE000,0xC001,0x8003,0x0007,0x000E,0x001C,0x0038,0x0030,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* / */\n\t.short\t0x0000,0xC003,0xE007,0x700E,0x381C,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0x381C,0x700E,0xE007,0xC003,0x0000,0x0000,0x0000,0x0000,0x0000 /* 0 */\n\t.short\t0x0000,0x8001,0x8001,0x800F,0x800F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* 1 */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C00,0x1C00,0xF803,0xF007,0x000E,0x001C,0x0038,0x0030,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /* 2 */\n\t.short\t0x0000,0xFC3F,0xFC3F,0x1C00,0x3800,0x7000,0xE000,0xF801,0xFC01,0x0C00,0x0C00,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* 3 */\n\t.short\t0x0000,0x7000,0xF000,0xF001,0xB003,0x3007,0x300E,0x301C,0x3038,0xFC3F,0xFC3F,0x3000,0x3000,0x3000,0x3000,0x0000,0x0000,0x0000,0x0000,0x0000 /* 4 */\n\t.short\t0x0000,0xFC3F,0xFC3F,0x0030,0x0030,0xF03F,0xF83F,0x1C00,0x0C00,0x0C00,0x0C00,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* 5 */\n\t.short\t0x0000,0xF001,0xF007,0x000F,0x001C,0x0038,0x0030,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* 6 */\n\t.short\t0x0000,0xFC3F,0xFC3F,0x0C00,0x1C00,0x3800,0x7000,0xE000,0xC001,0x8003,0x0007,0x0006,0x0006,0x0006,0x0006,0x0000,0x0000,0x0000,0x0000,0x0000 /* 7 */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x1C38,0xF81F,0xF81F,0x1C38,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* 8 */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0C00,0x1C00,0x3800,0xF000,0xE00F,0x800F,0x0000,0x0000,0x0000,0x0000,0x0000 /* 9 */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /* : */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x8001,0x8003,0x0007,0x0006,0x0000,0x0000,0x0000 /* ; */\n\t.short\t0x0000,0x6000,0xE000,0xC001,0x8003,0x0007,0x000E,0x001C,0x001C,0x000E,0x0007,0x8003,0xC001,0xE000,0x6000,0x0000,0x0000,0x0000,0x0000,0x0000 /* < */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xFC3F,0xFC3F,0x0000,0x0000,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* = */\n\t.short\t0x0000,0x0006,0x0007,0x8003,0xC001,0xE000,0x7000,0x3800,0x3800,0x7000,0xE000,0xC001,0x8003,0x0007,0x0006,0x0000,0x0000,0x0000,0x0000,0x0000 /* > */\n\t.short\t0x0000,0xE00F,0xF01F,0x3838,0x1830,0x3800,0x7000,0xE000,0xC001,0x8001,0x8001,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /* ? */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC31,0xFC31,0x8C31,0x8C31,0xFC31,0xFC31,0x0030,0x0038,0xF01F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* @ */\n\t.short\t0x0000,0x8001,0xC003,0xE007,0x700E,0x381C,0x1C38,0x0C30,0x0C30,0xFC3F,0xFC3F,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /* A */\n\t.short\t0x0000,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x1C30,0xF83F,0xF83F,0x1C30,0x0C30,0x0C30,0x1C30,0xF83F,0xF03F,0x0000,0x0000,0x0000,0x0000,0x0000 /* B */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* C */\n\t.short\t0x0000,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C30,0xF83F,0xF03F,0x0000,0x0000,0x0000,0x0000,0x0000 /* D */\n\t.short\t0x0000,0xFC3F,0xFC3F,0x0030,0x0030,0x0030,0x0030,0xF03F,0xF03F,0x0030,0x0030,0x0030,0x0030,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /* E */\n\t.short\t0x0000,0xFC3F,0xFC3F,0x0030,0x0030,0x0030,0x0030,0xF03F,0xF03F,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0000,0x0000,0x0000,0x0000,0x0000 /* F */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0030,0x0030,0x0030,0x0030,0x3C30,0x3C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /* G */\n\t.short\t0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0xFC3F,0xFC3F,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /* H */\n\t.short\t0x0000,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* I */\n\t.short\t0x0000,0x0C00,0x0C00,0x0C00,0x0C00,0x0C00,0x0C00,0x0C00,0x0C00,0x0C00,0x0C00,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* J */\n\t.short\t0x0000,0x1830,0x3830,0x7030,0xE030,0xC031,0x8033,0x003F,0x003F,0x8033,0xC031,0xE030,0x7030,0x3830,0x1830,0x0000,0x0000,0x0000,0x0000,0x0000 /* K */\n\t.short\t0x0000,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /* L */\n\t.short\t0x0000,0x0C30,0x0C30,0x1C38,0x3C3C,0x7C3E,0xEC37,0xCC33,0x8C31,0x8C31,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /* M */\n\t.short\t0x0000,0x0C30,0x0C30,0x0C38,0x0C3C,0x0C3E,0x0C37,0x8C33,0xCC31,0xEC30,0x7C30,0x3C30,0x1C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /* N */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* O */\n\t.short\t0x0000,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x1C30,0xF83F,0xF03F,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0000,0x0000,0x0000,0x0000,0x0000 /* P */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0xCC30,0xEC30,0x7830,0x3838,0xFC1F,0xCC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /* Q */\n\t.short\t0x0000,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x1C30,0xF83F,0xF03F,0xC031,0xE030,0x7030,0x3830,0x1C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /* R */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0030,0x0038,0xF01F,0xF80F,0x1C00,0x0C00,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* S */\n\t.short\t0x0000,0xFC3F,0xFC3F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /* T */\n\t.short\t0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* U */\n\t.short\t0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0x1818,0x381C,0x300C,0x700E,0xE007,0xC003,0xC003,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /* V */\n\t.short\t0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x8C31,0x8C31,0x8C31,0x8C31,0x8C31,0xFC3F,0xF81F,0x700E,0x0000,0x0000,0x0000,0x0000,0x0000 /* W */\n\t.short\t0x0000,0x0C30,0x0C30,0x1C38,0x381C,0x700E,0xE007,0xC003,0xC003,0xE007,0x700E,0x381C,0x1C38,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /* X */\n\t.short\t0x0000,0x0C30,0x0C30,0x1C38,0x381C,0x700E,0xE007,0xC003,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /* Y */\n\t.short\t0x0000,0xFC3F,0xFC3F,0x1C00,0x3800,0x7000,0xE000,0xC001,0x8003,0x0007,0x000E,0x001C,0x0038,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /* Z */\n\t.short\t0x0000,0xE007,0xE007,0x0006,0x0006,0x0006,0x0006,0x0006,0x0006,0x0006,0x0006,0x0006,0x0006,0xE007,0xE007,0x0000,0x0000,0x0000,0x0000,0x0000 /* [ */\n\t.short\t0x0000,0x0000,0x0030,0x0038,0x001C,0x000E,0x0007,0x8003,0xC001,0xE000,0x7000,0x3800,0x1C00,0x0C00,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* \\ */\n\t.short\t0x0000,0xE007,0xE007,0x6000,0x6000,0x6000,0x6000,0x6000,0x6000,0x6000,0x6000,0x6000,0x6000,0xE007,0xE007,0x0000,0x0000,0x0000,0x0000,0x0000 /* ] */\n\t.short\t0x0000,0x8001,0xC003,0xE007,0x700E,0x381C,0x1818,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* ^ */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xFFFF,0xFFFF,0x0000,0x0000 /* _ */\n\t.short\t0x0000,0x0006,0x0007,0x8003,0xC001,0xE000,0x6000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* ` */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xF00F,0xF80F,0x1C00,0x0C00,0xFC1F,0xFC3F,0x0C30,0x0C30,0xFC3F,0xFC1F,0x0000,0x0000,0x0000,0x0000,0x0000 /* a */\n\t.short\t0x0000,0x0030,0x0030,0x0030,0x0030,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C30,0xF83F,0xF03F,0x0000,0x0000,0x0000,0x0000,0x0000 /* b */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xFC0F,0xFC1F,0x0038,0x0030,0x0030,0x0030,0x0030,0x0038,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /* c */\n\t.short\t0x0000,0x0C00,0x0C00,0x0C00,0x0C00,0xFC0F,0xFC1F,0x0C38,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /* d */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0030,0x0038,0xF01F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* e */\n\t.short\t0x0000,0x3000,0xF000,0xC001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /* f */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xFC0F,0xFC1F,0x0C38,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0C00,0x1C00,0xF80F,0xF00F,0x0000 /* g */\n\t.short\t0x0000,0x0030,0x0030,0x0030,0x0030,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /* h */\n\t.short\t0x0000,0x8001,0x8001,0x0000,0x0000,0x800F,0x800F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* i */\n\t.short\t0x0000,0x8001,0x8001,0x0000,0x0000,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8003,0x000F,0x000C,0x0000 /* j */\n\t.short\t0x0000,0x000C,0x000C,0x000C,0x180C,0x380C,0x700C,0xE00C,0xC00F,0x800F,0xC00D,0xE00C,0x700C,0x380C,0x180C,0x0000,0x0000,0x0000,0x0000,0x0000 /* k */\n\t.short\t0x0000,0x800F,0x800F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* l */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x303E,0xF83F,0xFC33,0x8C31,0x8C31,0x8C31,0x8C31,0x8C31,0x8C31,0x8C31,0x0000,0x0000,0x0000,0x0000,0x0000 /* m */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /* n */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* o */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C30,0xF83F,0xF03F,0x0030,0x0030,0x0030,0x0030,0x0000 /* p */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xFC0F,0xFC1F,0x0C38,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0C00,0x0C00,0x0C00,0x0C00,0x0000 /* q */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xF819,0xF81B,0x001F,0x001E,0x0018,0x0018,0x0018,0x0018,0x0018,0x0018,0x0000,0x0000,0x0000,0x0000,0x0000 /* r */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xFC0F,0xFC1F,0x0030,0x0030,0xF01F,0xF80F,0x0C00,0x0C00,0xF83F,0xF03F,0x0000,0x0000,0x0000,0x0000,0x0000 /* s */\n\t.short\t0x0000,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0x8001,0xC001,0xF000,0x3000,0x0000,0x0000,0x0000,0x0000,0x0000 /* t */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /* u */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0C30,0x0C30,0x0C30,0x1C38,0x1818,0x381C,0x700E,0xE007,0xC003,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /* v */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x8C31,0x8C31,0x8C31,0xFC3F,0xF81F,0x700E,0x0000,0x0000,0x0000,0x0000,0x0000 /* w */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0C30,0x1C38,0x781E,0xF00F,0xC003,0xC003,0xF00F,0x781E,0x1C38,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /* x */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0C00,0x1C00,0xF80F,0xF00F,0x0000 /* y */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xFC3F,0xFC3F,0x3800,0x7000,0xE001,0x8007,0x000E,0x001C,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /* z */\n\t.short\t0x0000,0xF000,0xF001,0x8001,0x8001,0x8003,0x0003,0x000F,0x000F,0x0003,0x8003,0x8001,0x8001,0xF000,0xF000,0x0000,0x0000,0x0000,0x0000,0x0000 /* { */\n\t.short\t0x0000,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /* | */\n\t.short\t0x0000,0x000F,0x800F,0x8001,0x8001,0xC001,0xC000,0xF000,0xF000,0xC000,0xC001,0x8001,0x8001,0x000F,0x000F,0x0000,0x0000,0x0000,0x0000,0x0000 /* } */\n\t.short\t0x0000,0x000E,0x0C1F,0xDC3B,0xF831,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* ~ */\n\t.short\t0x0000,0x8001,0xC003,0xC003,0x6006,0x6006,0x300C,0x300C,0x1818,0x1818,0x0C30,0x0C30,0x0C30,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /* &7F DEL */\n\t.short\t0x0000,0xF003,0xF807,0x1C0E,0x0C0C,0xC03F,0xC03F,0x000C,0x000C,0x803F,0x803F,0x0C0C,0x1C0E,0xF807,0xF003,0x0000,0x0000,0x0000,0x0000,0x0000 /* &80 euro symbol */\n\t.short\t0x0000,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /* &81 block (teletext) */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x8003,0x8003,0x8001,0x8003,0x0007,0x000E,0x0000,0x0000,0x0000 /* &82 single low quotation mark */\n\t.short\t0x0000,0x7000,0xF000,0xC001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8003,0x000F,0x000E,0x0000 /* &83 small letter f with hook */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x1C0E,0x1C0E,0x0C06,0x1C0E,0x381C,0x7038,0x0000,0x0000,0x0000 /* &84 double low quotation mark */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x9819,0x9819,0x0000,0x0000,0x0000,0x0000,0x0000 /* &85 horizontal ellipsis */\n\t.short\t0x0000,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /* &86 dagger */\n\t.short\t0x0000,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /* &87 double dagger */\n\t.short\t0x8001,0xC003,0x6006,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &88 circumflex accent */\n\t.short\t0x0000,0x3038,0x706C,0xE06C,0xC039,0x8003,0x0007,0x000E,0x001C,0x0038,0x0070,0x1C67,0xB60D,0xB60D,0x1C07,0x0000,0x0000,0x0000,0x0000,0x0000 /* &89 per mille */\n\t.short\t0x6006,0xE007,0xC003,0xF00F,0xF81F,0x1C38,0x0C30,0x0038,0xF01F,0xF80F,0x1C00,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /* &8A capital S caron */\n\t.short\t0x0000,0x0000,0x0000,0x8001,0x8003,0x0007,0x000E,0x000C,0x000E,0x0007,0x8003,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &8B left angle quotation mark */\n\t.short\t0x0000,0xFC0F,0xFC1F,0x8039,0x8031,0x8031,0x8031,0xF831,0xF831,0x8031,0x8031,0x8031,0x8039,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /* &8C capital OE ligature */\n\t.short\t0x0000,0x0000,0x8001,0xC003,0xE007,0xF00F,0xB81D,0x9C39,0x8C31,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &8D up arrow (teletext) */\n\t.short\t0x6006,0xE007,0xC003,0xFC3F,0xFC3F,0x3800,0x7000,0xE000,0xC001,0x8003,0x0007,0x000E,0x001C,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /* &8E capital Z caron */\n\t.short\t0x0000,0x0000,0x8001,0x8003,0x0007,0x000E,0x001C,0xFC3F,0xFC3F,0x001C,0x000E,0x0007,0x8003,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &8F left arrow (teletext) */\n\t.short\t0x0000,0x0000,0x8001,0xC001,0xE000,0x7000,0x3800,0xFC3F,0xFC3F,0x3800,0x7000,0xE000,0xC001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &90 right arrow (teletext) */\n\t.short\t0x0000,0x7000,0xE000,0xC001,0x8001,0xC001,0xC001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &91 left single quotation mark */\n\t.short\t0x0000,0x8003,0x8003,0x8001,0x8003,0x0007,0x000E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &92 right single quotation mark */\n\t.short\t0x0000,0x1C0E,0x381C,0x7038,0x6030,0x7038,0x7038,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &93 left double quotation mark */\n\t.short\t0x0000,0x1C0E,0x1C0E,0x0C06,0x1C0E,0x381C,0x7038,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &94 right double quotation mark */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0xC003,0xE007,0xE007,0xC003,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &95 bullet */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xF81F,0xF81F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &96 en dash */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xFE7F,0xFE7F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &97 em dash */\n\t.short\t0x6007,0xC00D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &98 small tilde */\n\t.short\t0x0000,0x0000,0xC67E,0xC67E,0xEE18,0xFE18,0xD618,0xD618,0xC618,0xC618,0xC618,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &99 trade mark sign */\n\t.short\t0x0000,0x6006,0xE007,0xC003,0x0000,0xFC0F,0xFC1F,0x0038,0x0038,0xF01F,0xF80F,0x1C00,0x1C00,0xF83F,0xF03F,0x0000,0x0000,0x0000,0x0000,0x0000 /* &9A small S caron */\n\t.short\t0x0000,0x0000,0x0000,0x8001,0xC001,0xE000,0x7000,0x3000,0x7000,0xE000,0xC001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &9B right angle quotation mark */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x780E,0xFC1F,0xCC3B,0x8C31,0xFC31,0xFC31,0x8031,0xC03B,0xFC1F,0x7C0E,0x0000,0x0000,0x0000,0x0000,0x0000 /* &9C small OE ligature */\n\t.short\t0x0000,0x381C,0x381C,0x381C,0x381C,0x381C,0x381C,0x381C,0x381C,0x381C,0x381C,0x381C,0x381C,0x381C,0x381C,0x0000,0x0000,0x0000,0x0000,0x0000 /* &9D double line (teletext) */\n\t.short\t0x0000,0x6006,0xE007,0xC003,0x0000,0xFC3F,0xFC3F,0x3800,0x7000,0xE001,0x8007,0x000E,0x001C,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /* &9E small Z caron */\n\t.short\t0x300C,0x300C,0x300C,0x0000,0x0C30,0x1C38,0x381C,0x700E,0xE007,0xC003,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /* &9F capital Y diaeresis */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* &A0 non-break space */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x8001,0x8001,0xFC0F,0xFC1F,0x8039,0x8031,0x8031,0x8031,0x8031,0x8039,0xFC1F,0xFC0F,0x8001,0x8001,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0xF003,0xF807,0x1C0E,0x0C0C,0x000C,0x000C,0x803F,0x803F,0x000C,0x000C,0x000C,0x000C,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0C30,0x1C38,0xF81F,0xF00F,0x700E,0x700E,0xF00F,0xF81F,0x1C38,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0C30,0x1C38,0x381C,0x700E,0xFC3F,0xFC3F,0x8001,0x8001,0xFC3F,0xFC3F,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0030,0x0038,0xF01F,0xF81F,0x1C38,0x1C38,0xF81F,0xF80F,0x1C00,0x0C00,0x0C30,0x1C38,0xF81F,0xF00F,0x0000 /*   */\n\t.short\t0x1818,0x1818,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xCC33,0xEC37,0x6C36,0x0C36,0x0C36,0x0C36,0x6C36,0xEC37,0xCC33,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000 /*   */\n\t.short\t0x0000,0xF00F,0xF80F,0x1C00,0x0C00,0xFC0F,0xFC1F,0x0C38,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x1C0E,0x381C,0x7038,0x7038,0x381C,0x1C0E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xFC3F,0xFC3F,0x0C00,0x0C00,0x0C00,0x0C00,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xE007,0xE007,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xCC37,0xEC37,0x6C36,0x6C36,0xCC37,0x8C37,0xCC37,0xEC36,0x6C36,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000 /*   */\n\t.short\t0x0000,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0xC003,0xE007,0x700E,0x381C,0x700E,0xE007,0xC003,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x8001,0x8001,0x8001,0x8001,0xFC3F,0xFC3F,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0xC00F,0xE00F,0x7000,0x7000,0xE003,0xC007,0x000E,0x000C,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0xC00F,0xE00F,0x7000,0x7000,0xE00F,0xE00F,0x7000,0x7000,0xE00F,0xC00F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x6000,0xE000,0xC001,0x8003,0x0007,0x0006,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x6030,0x6030,0x6030,0x6030,0x6030,0x6030,0x6030,0xF830,0xFC3F,0x8C3F,0x0030,0x0030,0x0030,0x0030,0x0000 /*   */\n\t.short\t0x0000,0x8C0F,0x8C1F,0x8C39,0x8C31,0x8C31,0x8C39,0x8C1F,0x8C0F,0x8C01,0x8C01,0x8C01,0x8C01,0x8C01,0x8C01,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x8003,0x0007,0x0006,0x0000 /*   */\n\t.short\t0x0000,0x8003,0x8007,0x800F,0x800D,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x7038,0x381C,0x1C0E,0x1C0E,0x381C,0x7038,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x000C,0x000C,0x000C,0x000C,0x000C,0x000C,0x000C,0x000C,0x1C0C,0x3C0C,0x7C00,0xEC00,0xCC01,0x8C01,0xFC01,0xFC01,0x0C00,0x0C00,0x0000 /*   */\n\t.short\t0x0000,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0xF831,0xFC31,0x0C00,0x0C00,0x7C00,0xF800,0xC001,0x8001,0xFC01,0xFC01,0x0000 /*   */\n\t.short\t0x0000,0x003E,0x003F,0x8003,0x8003,0x003F,0x003F,0x8003,0x8003,0x1C3F,0x3C3E,0x7C00,0xEC00,0xCC01,0x8C01,0xFC01,0xFC01,0x0C00,0x0C00,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x8001,0x8001,0x8003,0x0007,0x000E,0x001C,0x0C18,0x1C1C,0xF80F,0xF00F,0x0000 /*   */\n\t.short\t0x0006,0x0007,0x8003,0x8001,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x6000,0xE000,0xC001,0x8001,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x8001,0xC003,0xE007,0x6006,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x1807,0xB80F,0xF01D,0xE018,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x300C,0x300C,0x300C,0x0000,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x8001,0xC003,0x6006,0x6006,0xC003,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0xFC0F,0xFC1F,0x8039,0x8031,0x8031,0x8031,0xF83F,0xF83F,0x8031,0x8031,0x8031,0x8031,0xFC31,0xFC31,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0C30,0x1C38,0xF81F,0xF00F,0x8001,0x8003,0x0007,0x0006,0x0000 /*   */\n\t.short\t0x0006,0x0007,0x8003,0x8001,0x0000,0xFC3F,0xFC3F,0x0030,0x0030,0xF03F,0xF03F,0x0030,0x0030,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x6000,0xE000,0xC001,0x8001,0x0000,0xFC3F,0xFC3F,0x0030,0x0030,0xF03F,0xF03F,0x0030,0x0030,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x8001,0xC003,0xE007,0x6006,0x0000,0xFC3F,0xFC3F,0x0030,0x0030,0xF03F,0xF03F,0x0030,0x0030,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x300C,0x300C,0x300C,0x0000,0x0000,0xFC3F,0xFC3F,0x0030,0x0030,0xF03F,0xF03F,0x0030,0x0030,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0006,0x0007,0x8003,0x8001,0x0000,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x6000,0xE000,0xC001,0x8001,0x0000,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x8001,0xC003,0xE007,0x6006,0x0000,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x300C,0x300C,0x300C,0x0000,0x0000,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0xF00F,0xF80F,0x1C0C,0x0C0C,0x0C0C,0x0C0C,0x8C3F,0x8C3F,0x0C0C,0x0C0C,0x0C0C,0x1C0C,0xF80F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x1807,0xB80F,0xF01D,0xE018,0x0000,0x0C30,0x0C3C,0x0C3E,0x0C37,0x8C33,0xCC31,0xEC30,0x7C30,0x3C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0006,0x0007,0x8003,0x8001,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x6000,0xE000,0xC001,0x8001,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x8001,0xC003,0xE007,0x6006,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x1807,0xB80F,0xF01D,0xE018,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x300C,0x300C,0x300C,0x0000,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x1818,0x381C,0x700E,0xE007,0xC003,0xE007,0x700E,0x381C,0x1818,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0xF00F,0xF81F,0x1C38,0x3C30,0x7C30,0xEC30,0xCC31,0x8C33,0x0C37,0x0C3E,0x0C3C,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0006,0x0007,0x8003,0x8001,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x6000,0xE000,0xC001,0x8001,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x8001,0xC003,0xE007,0x6006,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x300C,0x300C,0x300C,0x0000,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x6000,0xE000,0xC001,0x8001,0x0C30,0x1C38,0x381C,0x700E,0xE007,0xC003,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0030,0x0030,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x1C30,0xF83F,0xF03F,0x0030,0x0030,0x0030,0x0030,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0xC00F,0xE01F,0x7038,0x3030,0x3030,0x3030,0xF031,0xF831,0x1C30,0x0C30,0x0C30,0x1C30,0xF831,0xF031,0x0030,0x0030,0x0030,0x0030,0x0000 /*   */\n\t.short\t0x0006,0x0007,0x8003,0x8001,0x0000,0xF00F,0xF80F,0x1C00,0x0C00,0xFC0F,0xFC1F,0x0C38,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x6000,0xE000,0xC001,0x8001,0x0000,0xF00F,0xF80F,0x1C00,0x0C00,0xFC0F,0xFC1F,0x0C38,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x8001,0xC003,0xE007,0x6006,0x0000,0xF00F,0xF80F,0x1C00,0x0C00,0xFC0F,0xFC1F,0x0C38,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x1807,0xB80F,0xF01D,0xE018,0x0000,0xF00F,0xF80F,0x1C00,0x0C00,0xFC0F,0xFC1F,0x0C38,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x300C,0x300C,0x300C,0x0000,0xF00F,0xF80F,0x1C00,0x0C00,0xFC0F,0xFC1F,0x0C38,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x8001,0xC003,0x6006,0xC003,0x8001,0xF00F,0xF80F,0x1C00,0x0C00,0xFC0F,0xFC1F,0x0C38,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0x781E,0xFC1F,0x8C03,0x8C01,0xFC1F,0xFC3F,0x8031,0x8031,0xF83F,0xF81F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xFC0F,0xFC1F,0x0038,0x0030,0x0030,0x0030,0x0030,0x0038,0xFC1F,0xFC0F,0xC000,0xC001,0x8003,0x0003,0x0000 /*   */\n\t.short\t0x0006,0x0007,0x8003,0x8001,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0030,0x0038,0xF01F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x6000,0xE000,0xC001,0x8001,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0030,0x0038,0xF01F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x8001,0xC003,0xE007,0x6006,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0030,0x0038,0xF01F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x300C,0x300C,0x300C,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0030,0x0038,0xF01F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0006,0x0007,0x8003,0x8001,0x0000,0x800F,0x800F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x6000,0xE000,0xC001,0x8001,0x0000,0x800F,0x800F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x8001,0xC003,0xE007,0x6006,0x0000,0x800F,0x800F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x300C,0x300C,0x300C,0x0000,0x800F,0x800F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x601E,0xE01F,0xC003,0xE007,0x700E,0x380C,0x1C00,0x0C00,0xFC0F,0xFC1F,0x1C38,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x1807,0xB80F,0xF01D,0xE018,0x0000,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0006,0x0007,0x8003,0x8001,0x0000,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x6000,0xE000,0xC001,0x8001,0x0000,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x8001,0xC003,0xE007,0x6006,0x0000,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x1807,0xB80F,0xF01D,0xE018,0x0000,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x300C,0x300C,0x300C,0x0000,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0xFC3F,0xFC3F,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x0000,0x0000,0x0000,0x0000,0xF00F,0xF81F,0x7C38,0xEC30,0xCC31,0x8C33,0x0C37,0x1C3E,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0006,0x0007,0x8003,0x8001,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x6000,0xE000,0xC001,0x8001,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x8001,0xC003,0xE007,0x6006,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x0000,0x300C,0x300C,0x300C,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000 /*   */\n\t.short\t0x6000,0xE000,0xC001,0x8001,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0C00,0x1C00,0xF80F,0xF00F,0x0000 /*   */\n\t.short\t0x0000,0x0030,0x0030,0x0030,0x0030,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C30,0xF83F,0xF03F,0x0030,0x0030,0x0030,0x0030,0x0000 /*   */\n\t.short\t0x0000,0x300C,0x300C,0x300C,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0C00,0x1C00,0xF80F,0xF00F,0x0000 /*   */\n"
  },
  {
    "path": "src/bbdata_wasm32.c",
    "content": "/*****************************************************************\\\n*   BBC BASIC for SDL 2.0 (32-bit Web Assembly)                   *\n*   Copyright (c) R. T. Russell, 2000-2023                        *\n*                                                                 *\n*   BBDATA_WASM.C RAM data definitions                            *\n*   Version 1.38a, 03-Sep-2023                                    *\n\\*****************************************************************/\n\n#include <stdlib.h>\n\n#define MAX_PORTS 4\n#define MAX_FILES 8\n#define SOUNDQL 20\n#define STYPE 24\n\n// Variant:\ntypedef union tagVAR\n{\n\tdouble f ;\n        struct\n        {\n          long long n ;\n          short t ; // = 0\n        } i ;\n        struct\n        {\n          unsigned int p ; // Assumed to be 32 bits\n          unsigned int l ; // Must be unsigned for overflow tests in 'math'\n          short t ; // = -1\n        } s ;\n\tstruct\n\t{\n\t  double d ;\n\t  short t ; // unused (loadn/storen only)\n\t} d ;\n} VAR, *LPVAR ; \n\n// String descriptor:\ntypedef struct tagSTR\n{\n\tunsigned int p ; // Assumed to be 32 bits\n\tint l ;\n} STR, *LPSTR ;\n\ntypedef struct tagFCB\n{\n\tunsigned char p ; // pointer\n\tunsigned char o ; // offset  (0-256)\n\tunsigned char w ; // written (0-256)\n\tsigned char f ;   // bit0: offset<>0, bit7: written<>0\n} FCB, *LPFCB ;\n\n// Structure for linked list of string free space\nstruct node\n{\n\tstruct node *next ;\n\tchar *data ;\n} ;\ntypedef struct node node ;\n\n// Type definitions for SYS wrapper:\ntypedef size_t st ;\ntypedef double db ;\ntypedef struct {char *handler; char *proc; unsigned char *flags; } timerparam ;\n\n// Externals:\n\nextern unsigned int palette[256] ;\nextern void *TTFcache[] ;\n\n// Functions:\n\nVAR loadn (void *, unsigned char) ;\nVAR loads (void *, unsigned char) ;\nvoid storen (VAR, void *, unsigned char) ;\nvoid stores (VAR, void *, unsigned char) ;\nvoid *getvar (unsigned char *) ;\nvoid *putvar (void *, unsigned char *) ;\nVAR expr (void) ;\nVAR item (void) ;\nchar *lexan (char *, char *, unsigned char) ;\nvoid token (signed char) ;\nvoid xfloat (VAR *) ;\nvoid xfix (VAR *) ;\nint str00 (VAR, char*, int) ;\nVAR con (void) ;\nvoid sortup (int, int, int, unsigned int, unsigned int, unsigned int, void *);\nvoid sortdn (int, int, int, unsigned int, unsigned int, unsigned int, void *);\nunsigned int hook (unsigned int, timerparam *) ;\nVAR xeq (void) ;\nint putevt (int, int, int, int) ;\nconst void *gfxPrimitivesGetFont (void) ;\nvoid gfxPrimitivesSetFont (const void *, unsigned int, unsigned int) ;\nint RedefineChar(void *, char, unsigned char *, unsigned int, unsigned int) ;\n\n// Variables used by generic modules (BBMAIN, BBEXEC, BBEVAL, BBASMB):\n\nint stavar[27+54+64] = {0} ;\t// Static+dynamic variables, interpreter internal variables\nnode *flist[33] = {0} ;\t\t// Pointers to string free lists\nSTR tmps = {0} ; \t\t// Temp string descriptor\n\n// Text/graphics metrics (pointed to by @vdu% or accessed as @vdu{}):\n\nint vduvar[64] = {0} ;\t\t// First is origx (@vdu%!0), last is prnty (@vdu%!252)\n\nunsigned int lastick = 0 ;\n\n// Sub-structure {x%,y%}:\n\nint ptfmt[7] =  {8,\t\t\t// size\n\t\t12, 0x00002578, 0,\t// x% (offset 0)\n\t\t 0, 0x04002579, 0 } ;\t// y% (offset 4)\n\n// Sub-structure {a&,b&,c&,d&}:\n\nint b4fmt[13] = {4,\t\t\t// size\n\t\t12, 0x00002661, 0,\t// a& (offset 0)\n\t\t12, 0x01002662, 0,\t// b& (offset 1)\n\t\t12, 0x02002663, 0,\t// c& (offset 2)\n\t\t 0, 0x03002664, 0 } ;\t// d& (offset 3)\n\n// Structure @vdu{o{x%,y%}, l{x%,y%}, p{x%,y%}, tl%, tr%, tt%, tb%,\n//                d{x%,y%}, c{x%,y%}, hf%,  hr%,  g{a&,b&,c&,d&}, \n//                t{a&,b&,c&,d&}, m{a&,b&,c&,d&}, w{a&,b&,c&,d&}}:\n\nint vdustr[55] = { 0x00005000, // vdufmt = vdustr + 1\n\t0x00001000, 0x007B6F00, (int) ptfmt, 0x00000000, // @vdu.o{}\n\t0x00001000, 0x007B6C00, (int) ptfmt, 0x00000008, // @vdu.l{}\n\t0x00000F00, 0x007B7000, (int) ptfmt, 0x00000010, // @vdu.p{}\n\t0x0000000C, 0x00256C74,              0x00000018, // @vdu.tl%\n\t0x0000000C, 0x00257274,              0x0000001C, // @vdu.tr%\n\t0x0000000C, 0x00257474,              0x00000020, // @vdu.tt%\n\t0x0000000D, 0x00256274,              0x00000024, // @vdu.tb%\n\t0x00001000, 0x007B6400, (int) ptfmt, 0x00000028, // @vdu.d{}\n\t0x00000F00, 0x007B6300, (int) ptfmt, 0x00000030, // @vdu.c{}\n\t0x0000000C, 0x00256668,              0x00000038, // @vdu.hf%\n\t0x0000000D, 0x00257268,              0x0000003C, // @vdu.hr%\n\t0x00001000, 0x007B6700, (int) b4fmt, 0x00000040, // @vdu.g{}\n\t0x00001000, 0x007B7400, (int) b4fmt, 0x00000044, // @vdu.t{}\n\t0x00001000, 0x007B6D00, (int) b4fmt, 0x00000048, // @vdu.m{}\n\t0x00000000, 0x007B7700, (int) b4fmt, 0x0000004C};// @vdu.w{}\n\n// Wrapper functions to match SYS signature:\n\nlong long BBC_putevt(st handler, st msg, st wparam, st lparam, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return putevt(handler, msg, wparam, lparam); }\n\nlong long GFX_GetFont(st i0, st i1, st i2, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return (int) gfxPrimitivesGetFont(); }\n\nlong long GFX_SetFont(st fontdata, st cw, st ch, st i3, st i4, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ gfxPrimitivesSetFont((void *) fontdata, cw, ch); return 0; }\n\nlong long GFX_DefChar(st renderer, st c, st charpos, st width, st height, st i5, st i6, st i7,\n\t  st i8, st i9, st i10, st i11, db f0, db f1, db f2, db f3, db f4, db f5, db f6, db f7)\n\t{ return RedefineChar((void *) renderer, (char) c, (unsigned char *) charpos, width, height); }\n\n// Array of function entry points:\n\nvoid *fntab[24] = {\t// fnarr = fntab + 3\n\t(void *) 0x01000000,\t// no. of dimensions = 1\t\n\t(void *) 22, \t\t// no. of elements\n\tloadn,\t\t// Load numeric \n\tloads,\t\t// Load string\n\tstoren,\t\t// Store numeric\n\tstores,\t\t// Store string\n\tgetvar,\t\t// Get variable address\n\tputvar,\t\t// Create variable\n\texpr,\t\t// Evaluate expression\n\titem,\t\t// Evaluate item\n\tlexan,\t\t// Lexical analysis (tokenise)\n\ttoken,\t\t// Print character or keyword\n\txfloat,\t\t// Convert integer to float\n\txfix,\t\t// Convert float to integer\n\tstr00,\t\t// Convert a number to a string\n\tcon,\t\t// Convert a string to a number\n\tsortup,\t\t// Sort ascending (used by sortlib)\n\tsortdn,\t\t// Sort descending (used by sortlib)\n\thook,\t\t// Timer callback (used by timerlib)\n\txeq,\t\t// Return to BASIC\n\tBBC_putevt,\t// Store event in queue\n\tGFX_GetFont,\n\tGFX_SetFont,\n\tGFX_DefChar } ;\n\n// The following variables are organised as a linked-list\n// for access via 'system variables' starting with @:\n\nint sysvar[128] = {\n\t0x00000010, 0x686D656D, 0x00256364, 0x00000000, \t\t// 0   @memhdc%\n\t0x00000010, 0x72617077, 0x00256D61, 0x00000000, \t\t// 4   @wparam%\n\t0x00000012, 0x7261706C, 0x00256D61, 0x00000000, \t\t// 8   @lparam%\n\t0x00100000, 0x77680000, 0x0025646E, 0x00000000,\t\t\t// 12  @hwnd%\n\t0x000E0000, 0x70680000, 0x00256C61, (int) palette,\t\t// 16  @hpal%\n\t0x0000000C, 0x0025786F, 0x00000000,\t\t\t\t// 20  @ox%\n\t0x0000000C, 0x0025796F, 0x00000000,\t\t\t\t// 23  @oy%\n\t0x00000013, 0x6C696668, 0x00282565, (int) stavar+447,\t\t// 26  @hfile%(\n\t0x10000000, 0x6D000000,\t0x00256773, 0x00000000, \t\t// 30  @msg%\n\t0x0E000000, 0x76000000, 0x00257564, (int) vduvar,\t\t// 34  @vdu%\n\t0x00001000, 0x70736900, 0x00256C61, 0x00000000, \t\t// 38  @ispal%\n\t0x00001000, 0x616C6600, 0x00257367, 0x00000000, \t\t// 42  @flags%\n\t0x00001100, 0x63616300, 0x00256568, (int) TTFcache, \t\t// 46  @cache%\n\t0x00110000, 0x6F7A0000, 0x00256D6F, 0x00008000, \t\t// 50  @zoom%\n\t0x14000000, 0x64000000, 0x00247269, 0x00000000, 0x00000000,\t// 54  @dir$\n\t0x14000000, 0x6C000000, 0x00246269, 0x00000000, 0x00000000,\t// 59  @lib$\n\t0x14000000, 0x63000000, 0x0024646D, 0x00000000, 0x00000000,\t// 64  @cmd$\n\t0x14000000, 0x75000000, 0x00247273, 0x00000000, 0x00000000,\t// 69  @usr$\n\t0x14000000, 0x74000000, 0x0024706D, 0x00000000, 0x00000000,\t// 74  @tmp$\n\t0x0F000000, 0x68000000, 0x00256F77, 0x00000000,\t\t\t// 79  @hwo%\n\t0x00120000, 0x6C700000, 0x6F667461, 0x00256D72, 0x00000000, \t// 83  @platform%\n\t0x00000012, 0x6D726863, 0x00257061, 0x00000000,\t\t\t// 88  @chrmap%\n\t0x00100000, 0x61700000, 0x0025786E, 0x00000000, \t\t// 92  @panx%\n\t0x00110000, 0x61700000, 0x0025796E, 0x00000000, \t\t// 96  @pany%\n\t0x14000000, 0x76000000, 0x007B7564, (int) vdustr + 1, (int) vduvar, \t// 100 @vdu{\n\t0x0E000000, 0x66000000, 0x0028256E, (int) fntab + 3, \t\t// 105 @fn%(\n\t0x00001000, 0x6B726200, 0x00257470, 0x00000000,    \t\t// 109 @brkpt%\n\t0x00001100, 0x6B726200, 0x00256968, 0x00000000, \t\t// 113 @brkhi%\n\t0x00140000, 0x69730000, 0x007B657A, (int) ptfmt, (int) vduvar + 208, \t// 117 @size{\n\t0x00000000, 0x68630000, 0x007B7261, (int) ptfmt, (int) vduvar + 216,\t// 122 @char{\n\t0x00000000};\t// 127 voices\n\nunsigned char fvtab[7] = { 1, 4, 8, 10, STYPE, 40, 136 } ;\t// Fast variable types\n\nunsigned char bbcfont[256*8] = {\n\t0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // NUL \n\t0x7E,0x81,0xA5,0x81,0xBD,0x99,0x81,0x7E, // SOH \n\t0x7E,0xFF,0xDB,0xFF,0xC3,0xE7,0xFF,0x7E, // STX \n\t0x6C,0xFE,0xFE,0xFE,0x7C,0x38,0x10,0x00, // ETX \n\t0x10,0x38,0x7C,0xFE,0x7C,0x38,0x10,0x00, // EOT \n\t0x10,0x38,0x38,0xD6,0xFE,0xD6,0x10,0x38, // ENQ \n\t0x10,0x38,0x7C,0xFE,0xFE,0xFE,0x38,0x7C, // ACK \n\t0x00,0x00,0x18,0x3C,0x3C,0x18,0x00,0x00, // BEL \n\t0xFF,0xFF,0xE7,0xC3,0xC3,0xE7,0xFF,0xFF, // BS \n\t0x00,0x3C,0x66,0x42,0x42,0x66,0x3C,0x00, // HT \n\t0xFF,0xC3,0x99,0xBD,0xBD,0x99,0xC3,0xFF, // LF \n\t0x0F,0x07,0x0F,0x7D,0xCC,0xCC,0xCC,0x78, // VT \n\t0x3C,0x66,0x66,0x66,0x3C,0x18,0x7E,0x18, // FF \n\t0x3F,0x33,0x3F,0x30,0x30,0x70,0xF0,0xE0, // CR \n\t0x7F,0x63,0x7F,0x63,0x63,0x67,0xE6,0xC0, // SO \n\t0x99,0x5A,0x3C,0xE7,0xE7,0x3C,0x5A,0x99, // SI \n\t0x80,0xE0,0xF8,0xFE,0xF8,0xE0,0x80,0x00, // DLE \n\t0x02,0x0E,0x3E,0xFE,0x3E,0x0E,0x02,0x00, // DC1 \n\t0x18,0x3C,0x7E,0x18,0x18,0x7E,0x3C,0x18, // DC2 \n\t0x66,0x66,0x66,0x66,0x66,0x00,0x66,0x00, // DC3 \n\t0x7F,0xDB,0xDB,0x7B,0x1B,0x1B,0x1B,0x00, // DC4 \n\t0x3E,0x63,0x38,0x6C,0x6C,0x38,0xCC,0x78, // NAK \n\t0x00,0x00,0x00,0x00,0x7E,0x7E,0x7E,0x00, // SYN \n\t0x18,0x3C,0x7E,0x18,0x7E,0x3C,0x18,0xFF, // ETB \n\t0x18,0x3C,0x7E,0x18,0x18,0x18,0x18,0x00, // CAN \n\t0x18,0x18,0x18,0x18,0x7E,0x3C,0x18,0x00, // EM \n\t0x00,0x18,0x0C,0xFE,0x0C,0x18,0x00,0x00, // SUB \n\t0x00,0x30,0x60,0xFE,0x60,0x30,0x00,0x00, // ESC \n\t0x00,0x00,0xC0,0xC0,0xC0,0xFE,0x00,0x00, // FS \n\t0x00,0x24,0x66,0xFF,0x66,0x24,0x00,0x00, // GS \n\t0x00,0x18,0x3C,0x7E,0xFF,0xFF,0x00,0x00, // RS \n\t0x00,0xFF,0xFF,0x7E,0x3C,0x18,0x00,0x00, // US \n\t0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //   \n\t0x30,0x30,0x30,0x30,0x30,0x00,0x30,0x00, // ! \n\t0x6C,0x6C,0x6C,0x00,0x00,0x00,0x00,0x00, // \" \n\t0x6C,0x6C,0xFE,0x6C,0xFE,0x6C,0x6C,0x00, // # \n\t0x18,0x7E,0xD0,0x7C,0x16,0xFC,0x30,0x00, // $ \n\t0xC0,0xCC,0x18,0x30,0x60,0xCC,0x0C,0x00, // % \n\t0x38,0x6C,0x38,0x76,0xDC,0xCC,0x76,0x00, // & \n\t0x18,0x30,0x60,0x00,0x00,0x00,0x00,0x00, // ' \n\t0x18,0x30,0x60,0x60,0x60,0x30,0x18,0x00, // ( \n\t0x60,0x30,0x18,0x18,0x18,0x30,0x60,0x00, // ) \n\t0x00,0x6C,0x38,0xFE,0x38,0x6C,0x00,0x00, // * \n\t0x00,0x30,0x30,0xFC,0x30,0x30,0x00,0x00, // + \n\t0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x60, // , \n\t0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00, // - \n\t0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00, // . \n\t0x00,0x0C,0x18,0x30,0x60,0xC0,0x00,0x00, // / \n\t0x78,0xCC,0xDC,0xFC,0xEC,0xCC,0x78,0x00, // 0 \n\t0x30,0x70,0x30,0x30,0x30,0x30,0xFC,0x00, // 1 \n\t0x78,0xCC,0x0C,0x18,0x30,0x60,0xFC,0x00, // 2 \n\t0x78,0xCC,0x0C,0x38,0x0C,0xCC,0x78,0x00, // 3 \n\t0x18,0x38,0x78,0xD8,0xFC,0x18,0x18,0x00, // 4 \n\t0xFC,0xC0,0xF8,0x0C,0x0C,0xCC,0x78,0x00, // 5 \n\t0x38,0x60,0xC0,0xF8,0xCC,0xCC,0x78,0x00, // 6 \n\t0xFC,0x0C,0x18,0x30,0x60,0x60,0x60,0x00, // 7 \n\t0x78,0xCC,0xCC,0x78,0xCC,0xCC,0x78,0x00, // 8 \n\t0x78,0xCC,0xCC,0x7C,0x0C,0x18,0x70,0x00, // 9 \n\t0x00,0x00,0x30,0x30,0x00,0x30,0x30,0x00, // : \n\t0x00,0x00,0x30,0x30,0x00,0x30,0x30,0x60, // ; \n\t0x18,0x30,0x60,0xC0,0x60,0x30,0x18,0x00, // < \n\t0x00,0x00,0xFC,0x00,0xFC,0x00,0x00,0x00, // = \n\t0x60,0x30,0x18,0x0C,0x18,0x30,0x60,0x00, // > \n\t0x78,0xCC,0x18,0x30,0x30,0x00,0x30,0x00, // ? \n\t0x78,0xCC,0xDC,0xD4,0xDC,0xC0,0x78,0x00, // @ \n\t0x78,0xCC,0xCC,0xFC,0xCC,0xCC,0xCC,0x00, // A \n\t0xF8,0xCC,0xCC,0xF8,0xCC,0xCC,0xF8,0x00, // B \n\t0x78,0xCC,0xC0,0xC0,0xC0,0xCC,0x78,0x00, // C \n\t0xF0,0xD8,0xCC,0xCC,0xCC,0xD8,0xF0,0x00, // D \n\t0xFC,0xC0,0xC0,0xF8,0xC0,0xC0,0xFC,0x00, // E \n\t0xFC,0xC0,0xC0,0xF8,0xC0,0xC0,0xC0,0x00, // F \n\t0x78,0xCC,0xC0,0xDC,0xCC,0xCC,0x78,0x00, // G \n\t0xCC,0xCC,0xCC,0xFC,0xCC,0xCC,0xCC,0x00, // H \n\t0xFC,0x30,0x30,0x30,0x30,0x30,0xFC,0x00, // I \n\t0x7C,0x18,0x18,0x18,0x18,0xD8,0x70,0x00, // J \n\t0xCC,0xD8,0xF0,0xE0,0xF0,0xD8,0xCC,0x00, // K \n\t0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xFC,0x00, // L \n\t0xC6,0xEE,0xFE,0xD6,0xD6,0xC6,0xC6,0x00, // M \n\t0xCC,0xCC,0xEC,0xFC,0xDC,0xCC,0xCC,0x00, // N \n\t0x78,0xCC,0xCC,0xCC,0xCC,0xCC,0x78,0x00, // O \n\t0xF8,0xCC,0xCC,0xF8,0xC0,0xC0,0xC0,0x00, // P \n\t0x78,0xCC,0xCC,0xCC,0xDC,0x78,0x1C,0x00, // Q \n\t0xF8,0xCC,0xCC,0xF8,0xD8,0xCC,0xCC,0x00, // R \n\t0x78,0xCC,0xC0,0x78,0x0C,0xCC,0x78,0x00, // S \n\t0xFC,0x30,0x30,0x30,0x30,0x30,0x30,0x00, // T \n\t0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x78,0x00, // U \n\t0xCC,0xCC,0xCC,0xCC,0xCC,0x78,0x30,0x00, // V \n\t0xC6,0xC6,0xD6,0xD6,0xFE,0xEE,0xC6,0x00, // W \n\t0xCC,0xCC,0x78,0x30,0x78,0xCC,0xCC,0x00, // X \n\t0xCC,0xCC,0xCC,0x78,0x30,0x30,0x30,0x00, // Y \n\t0xFC,0x0C,0x18,0x30,0x60,0xC0,0xFC,0x00, // Z \n\t0xF8,0xC0,0xC0,0xC0,0xC0,0xC0,0xF8,0x00, // [ \n\t0x00,0xC0,0x60,0x30,0x18,0x0C,0x00,0x00, // backslash \n\t0x7C,0x0C,0x0C,0x0C,0x0C,0x0C,0x7C,0x00, // ] \n\t0x10,0x38,0x6C,0xC6,0x00,0x00,0x00,0x00, // ^ \n\t0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF, // _ \n\t0x60,0x30,0x18,0x00,0x00,0x00,0x00,0x00, // ` \n\t0x00,0x00,0x78,0x0C,0x7C,0xCC,0x7C,0x00, // a \n\t0xC0,0xC0,0xF8,0xCC,0xCC,0xCC,0xF8,0x00, // b \n\t0x00,0x00,0x78,0xCC,0xC0,0xCC,0x78,0x00, // c \n\t0x0C,0x0C,0x7C,0xCC,0xCC,0xCC,0x7C,0x00, // d \n\t0x00,0x00,0x78,0xCC,0xFC,0xC0,0x78,0x00, // e \n\t0x38,0x60,0x60,0xF8,0x60,0x60,0x60,0x00, // f \n\t0x00,0x00,0x7C,0xCC,0xCC,0x7C,0x0C,0x78, // g \n\t0xC0,0xC0,0xF8,0xCC,0xCC,0xCC,0xCC,0x00, // h \n\t0x30,0x00,0x70,0x30,0x30,0x30,0x78,0x00, // i \n\t0x30,0x00,0x70,0x30,0x30,0x30,0x30,0xE0, // j \n\t0xC0,0xC0,0xCC,0xD8,0xF0,0xD8,0xCC,0x00, // k \n\t0x70,0x30,0x30,0x30,0x30,0x30,0x78,0x00, // l \n\t0x00,0x00,0x6C,0xFE,0xD6,0xD6,0xC6,0x00, // m \n\t0x00,0x00,0xF8,0xCC,0xCC,0xCC,0xCC,0x00, // n \n\t0x00,0x00,0x78,0xCC,0xCC,0xCC,0x78,0x00, // o \n\t0x00,0x00,0xF8,0xCC,0xCC,0xF8,0xC0,0xC0, // p \n\t0x00,0x00,0x7C,0xCC,0xCC,0x7C,0x0C,0x0E, // q \n\t0x00,0x00,0xD8,0xEC,0xC0,0xC0,0xC0,0x00, // r \n\t0x00,0x00,0x7C,0xC0,0x78,0x0C,0xF8,0x00, // s \n\t0x60,0x60,0xF8,0x60,0x60,0x60,0x38,0x00, // t \n\t0x00,0x00,0xCC,0xCC,0xCC,0xCC,0x7C,0x00, // u \n\t0x00,0x00,0xCC,0xCC,0xCC,0x78,0x30,0x00, // v \n\t0x00,0x00,0xC6,0xD6,0xD6,0xFE,0x6C,0x00, // w \n\t0x00,0x00,0xCC,0x78,0x30,0x78,0xCC,0x00, // x \n\t0x00,0x00,0xCC,0xCC,0xCC,0x7C,0x0C,0x78, // y \n\t0x00,0x00,0xFC,0x18,0x30,0x60,0xFC,0x00, // z \n\t0x18,0x30,0x30,0xE0,0x30,0x30,0x18,0x00, // { \n\t0x30,0x30,0x30,0x00,0x30,0x30,0x30,0x00, // | \n\t0x60,0x30,0x30,0x1C,0x30,0x30,0x60,0x00, // } \n\t0x76,0xDC,0x00,0x00,0x00,0x00,0x00,0x00, // ~ \n\t0x00,0x10,0x38,0x6C,0xC6,0xC6,0xFE,0x00, // DEL \n\t0x3C,0x62,0xF8,0x60,0xF8,0x62,0x3C,0x00, // &80 euro symbol\n\t0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00, // &81 block (teletext)\n\t0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x30, // &82 single low quotation mark\n\t0x00,0x0C,0x18,0x18,0x3C,0x18,0x18,0x70, // &83 small letter f with hook\n\t0x00,0x00,0x00,0x00,0x00,0x6C,0x6C,0xD8, // &84 double low quotation mark\n\t0x00,0x00,0x00,0x00,0x00,0x00,0x54,0x00, // &85 horizontal ellipsis\n\t0x18,0x18,0x7E,0x18,0x18,0x18,0x18,0x00, // &86 dagger\n\t0x18,0x18,0x7E,0x18,0x18,0x7E,0x18,0x18, // &87 double dagger\n\t0x10,0x38,0x6C,0x00,0x00,0x00,0x00,0x00, // &88 circumflex accent\n\t0xC6,0xCC,0x18,0x30,0x60,0xDB,0x1B,0x00, // &89 per mille\n\t0x38,0x7C,0xC6,0x70,0x1C,0xC6,0x7C,0x00, // &8A capital S caron\n\t0x00,0x18,0x30,0x60,0x30,0x18,0x00,0x00, // &8B left angle quotation mark\n\t0x7E,0xD8,0xD8,0xDE,0xD8,0xD8,0x7E,0x00, // &8C capital OE ligature\n\t0x30,0x78,0xFC,0x30,0x30,0x30,0x30,0x00, // &8D up arrow (teletext)\n\t0x38,0xFE,0x0C,0x18,0x30,0x60,0xFE,0x00, // &8E capital Z caron\n\t0x00,0x20,0x60,0xFE,0x60,0x20,0x00,0x00, // &8F left arrow (teletext)\n\t0x00,0x08,0x0C,0xFE,0x0C,0x08,0x00,0x00, // &90 right arrow (teletext)\n\t0x30,0x30,0x18,0x00,0x00,0x00,0x00,0x00, // &91 left single quotation mark\n\t0x18,0x18,0x30,0x00,0x00,0x00,0x00,0x00, // &92 right single quotation mark\n\t0x6C,0x6C,0x36,0x00,0x00,0x00,0x00,0x00, // &93 left double quotation mark\n\t0x36,0x36,0x6C,0x00,0x00,0x00,0x00,0x00, // &94 right double quotation mark\n\t0x00,0x00,0x18,0x3C,0x3C,0x18,0x00,0x00, // &95 bullet\n\t0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00, // &96 en dash\n\t0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00, // &97 em dash\n\t0x36,0x6C,0x00,0x00,0x00,0x00,0x00,0x00, // &98 small tilde\n\t0xEA,0x4E,0x4A,0x4A,0x00,0x00,0x00,0x00, // &99 trade mark sign\n\t0x6C,0x38,0x7C,0xC0,0x78,0x0C,0xF8,0x00, // &9A small S caron\n\t0x00,0x30,0x18,0x0C,0x18,0x30,0x00,0x00, // &9B right angle quotation mark\n\t0x00,0x00,0x7E,0xDB,0xDF,0xD8,0x7F,0x00, // &9C small OE ligature\n\t0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x00, // &9D double line (teletext)\n\t0x6C,0x38,0x7C,0x18,0x30,0x60,0x7C,0x00, // &9E small Z caron\n\t0xCC,0x00,0xCC,0xCC,0x78,0x30,0x30,0x00, // &9F capital Y diaeresis\n\t0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //   \n\t0x18,0x00,0x18,0x18,0x18,0x18,0x18,0x00, //   \n\t0x00,0x18,0x7E,0xD8,0xD8,0x7E,0x18,0x00, //   \n\t0x38,0x6C,0x60,0xF0,0x60,0x66,0xFC,0x00, //   \n\t0x66,0x3C,0x66,0x3C,0x66,0x00,0x00,0x00, //   \n\t0xC3,0x66,0x3C,0x18,0x3C,0x18,0x18,0x00, //   \n\t0x18,0x18,0x18,0x00,0x18,0x18,0x18,0x00, //   \n\t0x3C,0x60,0x3C,0x66,0x66,0x3C,0x06,0x3C, //   \n\t0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //   \n\t0x7E,0x81,0x9D,0xB1,0xB1,0x9D,0x81,0x7E, //   \n\t0x3C,0x6C,0x6C,0x3E,0x00,0x7E,0x00,0x00, //   \n\t0x00,0x33,0x66,0xCC,0x66,0x33,0x00,0x00, //   \n\t0x00,0x7E,0x06,0x06,0x00,0x00,0x00,0x00, //   \n\t0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,\n\t0x7E,0x81,0xB9,0xA5,0xB9,0xA5,0x81,0x7E, //   \n\t0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //  \n\t0x3C,0x66,0x3C,0x00,0x00,0x00,0x00,0x00, //   \n\t0x18,0x18,0x7E,0x18,0x18,0x00,0x7E,0x00, //   \n\t0x70,0x18,0x30,0x60,0x78,0x00,0x00,0x00, //   \n\t0x78,0x0C,0x18,0x0C,0x78,0x00,0x00,0x00, //   \n\t0x0C,0x18,0x30,0x00,0x00,0x00,0x00,0x00, //   \n\t0x00,0x00,0x66,0x66,0x66,0x7C,0x60,0xC0, //   \n\t0x3E,0x7A,0x7A,0x3A,0x1A,0x1A,0x1A,0x00, //   \n\t0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00, //   \n\t0x00,0x00,0x00,0x00,0x00,0x08,0x18,0x00, //   \n\t0x30,0x70,0x30,0x30,0x30,0x00,0x00,0x00, //   \n\t0x38,0x6C,0x6C,0x38,0x00,0x7C,0x00,0x00, //   \n\t0x00,0xCC,0x66,0x33,0x66,0xCC,0x00,0x00, //   \n\t0x43,0xC6,0x4C,0x5A,0x36,0x6A,0xCF,0x02, //   \n\t0x40,0xC6,0x4C,0x5E,0x33,0x66,0xCC,0x0F, //   \n\t0xC0,0x23,0x66,0x2D,0xDB,0x35,0x67,0x01, //   \n\t0x18,0x00,0x18,0x30,0x60,0x66,0x3C,0x00, //   \n\t0x70,0x00,0x3C,0x66,0x7E,0x66,0x66,0x00, //   \n\t0x0E,0x00,0x3C,0x66,0x7E,0x66,0x66,0x00, //   \n\t0x18,0x66,0x00,0x3C,0x66,0x7E,0x66,0x00, //   \n\t0x76,0xDC,0x00,0x3C,0x66,0x7E,0x66,0x00, //   \n\t0x66,0x00,0x3C,0x66,0x7E,0x66,0x66,0x00, //   \n\t0x18,0x18,0x00,0x3C,0x66,0x7E,0x66,0x00, //   \n\t0x3F,0x6C,0xCC,0xFE,0xCC,0xCC,0xCF,0x00, //   \n\t0x3C,0x66,0x60,0x60,0x60,0x66,0x3C,0x18, //   \n\t0x70,0x00,0x3C,0x66,0x7E,0x66,0x66,0x00, //   \n\t0x0E,0x00,0x3C,0x66,0x7E,0x66,0x66,0x00, //   \n\t0x18,0x66,0x00,0xFE,0xF0,0xC0,0xFE,0x00, //   \n\t0x66,0x00,0x3C,0x66,0x7E,0x66,0x66,0x00, //   \n\t0x70,0x00,0x7E,0x18,0x18,0x18,0x7E,0x00, //   \n\t0x0E,0x00,0x7E,0x18,0x18,0x18,0x7E,0x00, //   \n\t0x18,0x66,0x00,0x7E,0x18,0x18,0x7E,0x00, //   \n\t0x66,0x00,0x7E,0x18,0x18,0x18,0x7E,0x00, //   \n\t0x78,0x6C,0x66,0xF6,0x66,0x6C,0x78,0x00, //   \n\t0x76,0xDC,0x00,0xC6,0xF6,0xDE,0xC6,0x00, //   \n\t0x70,0x00,0x7C,0xC6,0xC6,0xC6,0x7C,0x00, //   \n\t0x0E,0x00,0x7C,0xC6,0xC6,0xC6,0x7C,0x00, //   \n\t0x18,0x66,0x00,0x7C,0xC6,0xC6,0x7C,0x00, //   \n\t0x76,0xDC,0x00,0x7C,0xC6,0xC6,0x7C,0x00, //   \n\t0x66,0x00,0x7C,0xC6,0xC6,0xC6,0x7C,0x00, //   \n\t0x00,0xC6,0x6C,0x38,0x6C,0xC6,0x00,0x00, //   \n\t0x3E,0x66,0x6E,0x7E,0x76,0x66,0x7C,0x00, //   \n\t0x70,0x00,0xC6,0xC6,0xC6,0xC6,0x7C,0x00, //   \n\t0x0E,0x00,0xC6,0xC6,0xC6,0xC6,0x7C,0x00, //   \n\t0x18,0x66,0x00,0xC6,0xC6,0xC6,0x7C,0x00, //   \n\t0x66,0x00,0xC6,0xC6,0xC6,0xC6,0x7C,0x00, //   \n\t0x0E,0x00,0x66,0x66,0x3C,0x18,0x18,0x00, //   \n\t0xC0,0xC0,0xFC,0xC6,0xFC,0xC0,0xC0,0x00, //   \n\t0x3C,0x66,0x66,0x6C,0x66,0x66,0x6C,0x00, //   \n\t0x70,0x00,0x3C,0x06,0x3E,0x66,0x3E,0x00, //   \n\t0x0E,0x00,0x3C,0x06,0x3E,0x66,0x3E,0x00, //   \n\t0x18,0x66,0x00,0x3E,0x66,0xC6,0x7E,0x00, //   \n\t0x76,0xDC,0x00,0x3E,0x66,0xC6,0x7E,0x00, //   \n\t0x66,0x00,0x3C,0x06,0x3E,0x66,0x3E,0x00, //   \n\t0x18,0x18,0x00,0x3E,0x66,0xC6,0x7E,0x00, //   \n\t0x00,0x00,0x7E,0x1B,0x7F,0xD8,0x77,0x00, //   \n\t0x00,0x00,0x3C,0x60,0x60,0x60,0x3C,0x18, //   \n\t0x70,0x00,0x3C,0x66,0x7E,0x60,0x3C,0x00, //   \n\t0x0E,0x00,0x3C,0x66,0x7E,0x60,0x3C,0x00, //   \n\t0x18,0x66,0x00,0x3C,0x7E,0x60,0x3C,0x00, //   \n\t0x66,0x00,0x3C,0x66,0x7E,0x60,0x3C,0x00, //   \n\t0x70,0x00,0x38,0x18,0x18,0x18,0x3C,0x00, //   \n\t0x0E,0x00,0x38,0x18,0x18,0x18,0x3C,0x00, //   \n\t0x18,0x66,0x00,0x38,0x18,0x18,0x3C,0x00, //   \n\t0x66,0x00,0x38,0x18,0x18,0x18,0x3C,0x00, //   \n\t0x0C,0x3E,0x0C,0x7C,0xCC,0xCC,0x78,0x00, //   \n\t0x76,0xDC,0x00,0x7C,0x66,0x66,0x66,0x00, //   \n\t0x70,0x00,0x3C,0x66,0x66,0x66,0x3C,0x00, //   \n\t0x0E,0x00,0x3C,0x66,0x66,0x66,0x3C,0x00, //   \n\t0x18,0x66,0x00,0x3C,0x66,0x66,0x3C,0x00, //   \n\t0x76,0xDC,0x00,0x3C,0x66,0x66,0x3C,0x00, //   \n\t0x66,0x00,0x3C,0x66,0x66,0x66,0x3C,0x00, //   \n\t0x18,0x18,0x00,0x7E,0x00,0x18,0x18,0x00, //   \n\t0x00,0x02,0x7C,0xCE,0xD6,0xE6,0x7C,0x80, //   \n\t0x70,0x00,0x66,0x66,0x66,0x66,0x3E,0x00, //   \n\t0x0E,0x00,0x66,0x66,0x66,0x66,0x3E,0x00, //   \n\t0x18,0x66,0x00,0x66,0x66,0x66,0x3E,0x00, //   \n\t0x66,0x00,0x66,0x66,0x66,0x66,0x3E,0x00, //   \n\t0x0E,0x00,0x66,0x66,0x66,0x3E,0x06,0x3C, //   \n\t0x60,0x60,0x7C,0x66,0x66,0x7C,0x60,0x60, //   \n\t0x66,0x00,0x66,0x66,0x66,0x3E,0x06,0x3C } ; //   \n\nunsigned short ttxtfont[256*20] = {\n\t0x0000,0x0011,0x0011,0x0019,0x0015,0x0013,0x0011,0x0011,0x8800,0x8800,0x8800,0x8800,0x8800,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000, // NU\n\t0x0000,0x000E,0x0011,0x0011,0x001F,0x0011,0x0011,0x0011,0xF000,0x8800,0x8800,0xF000,0x8800,0x8800,0x8800,0x0000,0x0000,0x0000,0x0000,0x0000, // AR\n\t0x0000,0x000E,0x0011,0x0011,0x001F,0x0011,0x0011,0x0011,0x7000,0x8800,0x8000,0x9800,0x8800,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000, // AG\n\t0x0000,0x000E,0x0011,0x0011,0x001F,0x0011,0x0011,0x0011,0x8800,0x8800,0x5000,0x2000,0x2000,0x2000,0x2000,0x0000,0x0000,0x0000,0x0000,0x0000, // AY\n\t0x0000,0x000E,0x0011,0x0011,0x001F,0x0011,0x0011,0x0011,0xF000,0x8800,0x8800,0xF000,0x8800,0x8800,0xF000,0x0000,0x0000,0x0000,0x0000,0x0000, // AB\n\t0x0000,0x000E,0x0011,0x0011,0x001F,0x0011,0x0011,0x0011,0x8800,0xD800,0xA800,0xA800,0x8800,0x8800,0x8800,0x0000,0x0000,0x0000,0x0000,0x0000, // AM\n\t0x0000,0x000E,0x0011,0x0011,0x001F,0x0011,0x0011,0x0011,0x7000,0x8800,0x8000,0x8000,0x8000,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000, // AC\n\t0x0000,0x000E,0x0011,0x0011,0x001F,0x0011,0x0011,0x0011,0x8800,0x8800,0x8800,0xA800,0xA800,0xD800,0x8800,0x0000,0x0000,0x0000,0x0000,0x0000, // AW\n\t0x0000,0x001F,0x0010,0x0010,0x001E,0x0010,0x0010,0x0010,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0xF800,0x0000,0x0000,0x0000,0x0000,0x0000, // FL\n\t0x0000,0x000E,0x0011,0x0010,0x000E,0x0001,0x0011,0x000E,0xF800,0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x0000,0x0000,0x0000,0x0000,0x0000, // ST\n\t0x0000,0x001F,0x0010,0x0010,0x001E,0x0010,0x0010,0x001F,0xF000,0x8800,0x8800,0xF000,0x8800,0x8800,0xF000,0x0000,0x0000,0x0000,0x0000,0x0000, // EB\n\t0x0000,0x000E,0x0011,0x0010,0x000E,0x0001,0x0011,0x000E,0xF000,0x8800,0x8800,0xF000,0x8800,0x8800,0xF000,0x0000,0x0000,0x0000,0x0000,0x0000, // SB\n\t0x0000,0x0011,0x0011,0x0019,0x0015,0x0013,0x0011,0x0011,0x8800,0x8800,0x8800,0xF800,0x8800,0x8800,0x8800,0x0000,0x0000,0x0000,0x0000,0x0000, // NH\n\t0x0000,0x001C,0x0012,0x0011,0x0011,0x0011,0x0012,0x001C,0x8800,0x8800,0x8800,0xF800,0x8800,0x8800,0x8800,0x0000,0x0000,0x0000,0x0000,0x0000, // DH\n\t0x0000,0x000E,0x0011,0x0010,0x000E,0x0001,0x0011,0x000E,0x7000,0x8800,0x8800,0x8800,0x8800,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000, // SO\n\t0x0000,0x000E,0x0011,0x0010,0x000E,0x0001,0x0011,0x000E,0x7000,0x2000,0x2000,0x2000,0x2000,0x2000,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000, // SI\n\t0x0000,0x001C,0x0012,0x0011,0x0011,0x0011,0x0012,0x001C,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0xF800,0x0000,0x0000,0x0000,0x0000,0x0000, // DL\n\t0x0000,0x000E,0x0011,0x0010,0x0013,0x0011,0x0011,0x000E,0xF000,0x8800,0x8800,0xF000,0x8800,0x8800,0x8800,0x0000,0x0000,0x0000,0x0000,0x0000, // GR\n\t0x0000,0x000E,0x0011,0x0010,0x0013,0x0011,0x0011,0x000E,0x7000,0x8800,0x8000,0x9800,0x8800,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000, // GG\n\t0x0000,0x000E,0x0011,0x0010,0x0013,0x0011,0x0011,0x000E,0x8800,0x8800,0x5000,0x2000,0x2000,0x2000,0x2000,0x0000,0x0000,0x0000,0x0000,0x0000, // GY\n\t0x0000,0x000E,0x0011,0x0010,0x0013,0x0011,0x0011,0x000E,0xF000,0x8800,0x8800,0xF000,0x8800,0x8800,0xF000,0x0000,0x0000,0x0000,0x0000,0x0000, // GB\n\t0x0000,0x000E,0x0011,0x0010,0x0013,0x0011,0x0011,0x000E,0x8800,0xD800,0xA800,0xA800,0x8800,0x8800,0x8800,0x0000,0x0000,0x0000,0x0000,0x0000, // GM\n\t0x0000,0x000E,0x0011,0x0010,0x0013,0x0011,0x0011,0x000E,0x7000,0x8800,0x8000,0x8000,0x8000,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000, // GC\n\t0x0000,0x000E,0x0011,0x0010,0x0013,0x0011,0x0011,0x000E,0x8800,0x8800,0x8800,0xA800,0xA800,0xD800,0x8800,0x0000,0x0000,0x0000,0x0000,0x0000, // GW\n\t0x0000,0x000E,0x0011,0x0010,0x0010,0x0010,0x0011,0x000E,0xE000,0x9000,0x8800,0x8800,0x8800,0x9000,0xE000,0x0000,0x0000,0x0000,0x0000,0x0000, // CD\n\t0x0000,0x000E,0x0011,0x0010,0x0010,0x0010,0x0011,0x000E,0x7000,0x8800,0x8000,0x9800,0x8800,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000, // CG\n\t0x0000,0x000E,0x0011,0x0010,0x000E,0x0001,0x0011,0x000E,0x7000,0x8800,0x8000,0x9800,0x8800,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000, // SG\n\t0x0000,0x001F,0x0010,0x0010,0x001E,0x0010,0x0010,0x001F,0x7000,0x8800,0x8000,0x7000,0x0800,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000, // ES\n\t0x0000,0x001E,0x0011,0x0011,0x001E,0x0011,0x0011,0x001E,0xF000,0x8800,0x8800,0xF000,0x8800,0x8800,0xF000,0x0000,0x0000,0x0000,0x0000,0x0000, // BB\n\t0x0000,0x0011,0x0011,0x0019,0x0015,0x0013,0x0011,0x0011,0xF000,0x8800,0x8800,0xF000,0x8800,0x8800,0xF000,0x0000,0x0000,0x0000,0x0000,0x0000, // NB\n\t0x0000,0x0011,0x0011,0x0011,0x001F,0x0011,0x0011,0x0011,0x7000,0x8800,0x8000,0x9800,0x8800,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000, // HG\n\t0x0000,0x001E,0x0011,0x0011,0x001E,0x0011,0x0011,0x0011,0x7000,0x8800,0x8000,0x9800,0x8800,0x8800,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000, // RG\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000, // \"!\"\n\t0x0000,0x700E,0x700E,0x700E,0x700E,0x700E,0x700E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // \"\"\"\n\t0x0000,0x700E,0x700E,0x700E,0x700E,0xFC3F,0xFC3F,0x700E,0x700E,0xFC3F,0xFC3F,0x700E,0x700E,0x700E,0x700E,0x0000,0x0000,0x0000,0x0000,0x0000, // \"#\"\n\t0x0000,0xF00F,0xF81F,0x9C39,0x8C31,0x8031,0x8039,0xF01F,0xF80F,0x9C01,0x8C01,0x8C31,0x9C39,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"$\"\n\t0x0000,0x003C,0x0C3C,0x1C3C,0x383C,0x7000,0xE000,0xC001,0x8003,0x0007,0x000E,0x3C1C,0x3C38,0x3C30,0x3C00,0x0000,0x0000,0x0000,0x0000,0x0000, // \"%\"\n\t0x0000,0x000E,0x001F,0x803B,0x8031,0x803B,0x001F,0x000E,0x001F,0x8C3B,0xDC31,0xF830,0xF838,0xDC1F,0x8C0F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"&\"\n\t0x0000,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // \"'\"\n\t0x0000,0x6000,0xE000,0xC001,0x8003,0x0007,0x0006,0x0006,0x0006,0x0006,0x0007,0x8003,0xC001,0xE000,0x6000,0x0000,0x0000,0x0000,0x0000,0x0000, // \"(\"\n\t0x0000,0x0006,0x0007,0x8003,0xC001,0xE000,0x6000,0x6000,0x6000,0x6000,0xE000,0xC001,0x8003,0x0007,0x0006,0x0000,0x0000,0x0000,0x0000,0x0000, // \")\"\n\t0x0000,0x8001,0x8001,0x8C31,0x9C39,0xF81F,0xF00F,0x8001,0x8001,0xF00F,0xF81F,0x9C39,0x8C31,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000, // \"*\"\n\t0x0000,0x0000,0x0000,0x8001,0x8001,0x8001,0x8001,0xF81F,0xF81F,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // \"+\"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x8001,0x8003,0x0007,0x0006,0x0000,0x0000,0x0000, // \",\"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // \"-\"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000, // \".\"\n\t0x0000,0x0000,0x0C00,0x1C00,0x3800,0x7000,0xE000,0xC001,0x8003,0x0007,0x000E,0x001C,0x0038,0x0030,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // \"/\"\n\t0x0000,0xC003,0xE007,0x700E,0x381C,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0x381C,0x700E,0xE007,0xC003,0x0000,0x0000,0x0000,0x0000,0x0000, // \"0\"\n\t0x0000,0x8001,0x8001,0x800F,0x800F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"1\"\n\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C00,0x1C00,0xF803,0xF007,0x000E,0x001C,0x0038,0x0030,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"2\"\n\t0x0000,0xFC3F,0xFC3F,0x1C00,0x3800,0x7000,0xE000,0xF801,0xFC01,0x0C00,0x0C00,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"3\"\n\t0x0000,0x7000,0xF000,0xF001,0xB003,0x3007,0x300E,0x301C,0x3038,0xFC3F,0xFC3F,0x3000,0x3000,0x3000,0x3000,0x0000,0x0000,0x0000,0x0000,0x0000, // \"4\"\n\t0x0000,0xFC3F,0xFC3F,0x0030,0x0030,0xF03F,0xF83F,0x1C00,0x0C00,0x0C00,0x0C00,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"5\"\n\t0x0000,0xF001,0xF007,0x000F,0x001C,0x0038,0x0030,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"6\"\n\t0x0000,0xFC3F,0xFC3F,0x0C00,0x1C00,0x3800,0x7000,0xE000,0xC001,0x8003,0x0007,0x0006,0x0006,0x0006,0x0006,0x0000,0x0000,0x0000,0x0000,0x0000, // \"7\"\n\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x1C38,0xF81F,0xF81F,0x1C38,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"8\"\n\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0C00,0x1C00,0x3800,0xF000,0xE00F,0x800F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"9\"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000, // \":\"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x8001,0x8003,0x0007,0x0006,0x0000,0x0000,0x0000, // \";\"\n\t0x0000,0x6000,0xE000,0xC001,0x8003,0x0007,0x000E,0x001C,0x001C,0x000E,0x0007,0x8003,0xC001,0xE000,0x6000,0x0000,0x0000,0x0000,0x0000,0x0000, // \"<\"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0xFC3F,0xFC3F,0x0000,0x0000,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // \"=\"\n\t0x0000,0x0006,0x0007,0x8003,0xC001,0xE000,0x7000,0x3800,0x3800,0x7000,0xE000,0xC001,0x8003,0x0007,0x0006,0x0000,0x0000,0x0000,0x0000,0x0000, // \">\"\n\t0x0000,0xE00F,0xF01F,0x3838,0x1830,0x3800,0x7000,0xE000,0xC001,0x8001,0x8001,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000, // \"?\"\n\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC31,0xFC31,0x8C31,0x8C31,0xFC31,0xFC31,0x0030,0x0038,0xF01F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"@\"\n\t0x0000,0x8001,0xC003,0xE007,0x700E,0x381C,0x1C38,0x0C30,0x0C30,0xFC3F,0xFC3F,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000, // \"A\"\n\t0x0000,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x1C30,0xF83F,0xF83F,0x1C30,0x0C30,0x0C30,0x1C30,0xF83F,0xF03F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"B\"\n\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"C\"\n\t0x0000,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C30,0xF83F,0xF03F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"D\"\n\t0x0000,0xFC3F,0xFC3F,0x0030,0x0030,0x0030,0x0030,0xF03F,0xF03F,0x0030,0x0030,0x0030,0x0030,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"E\"\n\t0x0000,0xFC3F,0xFC3F,0x0030,0x0030,0x0030,0x0030,0xF03F,0xF03F,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0000,0x0000,0x0000,0x0000,0x0000, // \"F\"\n\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0030,0x0030,0x0030,0x0030,0x3C30,0x3C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"G\"\n\t0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0xFC3F,0xFC3F,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000, // \"H\"\n\t0x0000,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"I\"\n\t0x0000,0x0C00,0x0C00,0x0C00,0x0C00,0x0C00,0x0C00,0x0C00,0x0C00,0x0C00,0x0C00,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"J\"\n\t0x0000,0x1830,0x3830,0x7030,0xE030,0xC031,0x8033,0x003F,0x003F,0x8033,0xC031,0xE030,0x7030,0x3830,0x1830,0x0000,0x0000,0x0000,0x0000,0x0000, // \"K\"\n\t0x0000,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"L\"\n\t0x0000,0x0C30,0x0C30,0x1C38,0x3C3C,0x7C3E,0xEC37,0xCC33,0x8C31,0x8C31,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000, // \"M\"\n\t0x0000,0x0C30,0x0C30,0x0C38,0x0C3C,0x0C3E,0x0C37,0x8C33,0xCC31,0xEC30,0x7C30,0x3C30,0x1C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000, // \"N\"\n\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"O\"\n\t0x0000,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x1C30,0xF83F,0xF03F,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0000,0x0000,0x0000,0x0000,0x0000, // \"P\"\n\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0xCC30,0xEC30,0x7830,0x3838,0xFC1F,0xCC0F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"Q\"\n\t0x0000,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x1C30,0xF83F,0xF03F,0xC031,0xE030,0x7030,0x3830,0x1C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000, // \"R\"\n\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0030,0x0038,0xF01F,0xF80F,0x1C00,0x0C00,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"S\"\n\t0x0000,0xFC3F,0xFC3F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000, // \"T\"\n\t0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"U\"\n\t0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0x1818,0x381C,0x300C,0x700E,0xE007,0xC003,0xC003,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000, // \"V\"\n\t0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x8C31,0x8C31,0x8C31,0x8C31,0x8C31,0xFC3F,0xF81F,0x700E,0x0000,0x0000,0x0000,0x0000,0x0000, // \"W\"\n\t0x0000,0x0C30,0x0C30,0x1C38,0x381C,0x700E,0xE007,0xC003,0xC003,0xE007,0x700E,0x381C,0x1C38,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000, // \"X\"\n\t0x0000,0x0C30,0x0C30,0x1C38,0x381C,0x700E,0xE007,0xC003,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000, // \"Y\"\n\t0x0000,0xFC3F,0xFC3F,0x1C00,0x3800,0x7000,0xE000,0xC001,0x8003,0x0007,0x000E,0x001C,0x0038,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"Z\"\n\t0x0000,0xE007,0xE007,0x0006,0x0006,0x0006,0x0006,0x0006,0x0006,0x0006,0x0006,0x0006,0x0006,0xE007,0xE007,0x0000,0x0000,0x0000,0x0000,0x0000, // \"[\"\n\t0x0000,0x0000,0x0030,0x0038,0x001C,0x000E,0x0007,0x8003,0xC001,0xE000,0x7000,0x3800,0x1C00,0x0C00,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // \"\\\"\n\t0x0000,0xE007,0xE007,0x6000,0x6000,0x6000,0x6000,0x6000,0x6000,0x6000,0x6000,0x6000,0x6000,0xE007,0xE007,0x0000,0x0000,0x0000,0x0000,0x0000, // \"]\"\n\t0x0000,0x8001,0xC003,0xE007,0x700E,0x381C,0x1818,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // \"^\"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xFFFF,0xFFFF,0x0000,0x0000, // \"_\"\n\t0x0000,0x0006,0x0007,0x8003,0xC001,0xE000,0x6000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // \"`\"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0xF00F,0xF80F,0x1C00,0x0C00,0xFC1F,0xFC3F,0x0C30,0x0C30,0xFC3F,0xFC1F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"a\"\n\t0x0000,0x0030,0x0030,0x0030,0x0030,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C30,0xF83F,0xF03F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"b\"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0xFC0F,0xFC1F,0x0038,0x0030,0x0030,0x0030,0x0030,0x0038,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"c\"\n\t0x0000,0x0C00,0x0C00,0x0C00,0x0C00,0xFC0F,0xFC1F,0x0C38,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"d\"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0030,0x0038,0xF01F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"e\"\n\t0x0000,0x3000,0xF000,0xC001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000, // \"f\"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0xFC0F,0xFC1F,0x0C38,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0C00,0x1C00,0xF80F,0xF00F,0x0000, // \"g\"\n\t0x0000,0x0030,0x0030,0x0030,0x0030,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000, // \"h\"\n\t0x0000,0x8001,0x8001,0x0000,0x0000,0x800F,0x800F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"i\"\n\t0x0000,0x8001,0x8001,0x0000,0x0000,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8003,0x000F,0x000C,0x0000, // \"j\"\n\t0x0000,0x000C,0x000C,0x000C,0x180C,0x380C,0x700C,0xE00C,0xC00F,0x800F,0xC00D,0xE00C,0x700C,0x380C,0x180C,0x0000,0x0000,0x0000,0x0000,0x0000, // \"k\"\n\t0x0000,0x800F,0x800F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"l\"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x303E,0xF83F,0xFC33,0x8C31,0x8C31,0x8C31,0x8C31,0x8C31,0x8C31,0x8C31,0x0000,0x0000,0x0000,0x0000,0x0000, // \"m\"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000, // \"n\"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"o\"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C30,0xF83F,0xF03F,0x0030,0x0030,0x0030,0x0030,0x0000, // \"p\"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0xFC0F,0xFC1F,0x0C38,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0C00,0x0C00,0x0C00,0x0C00,0x0000, // \"q\"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0xF819,0xF81B,0x001F,0x001E,0x0018,0x0018,0x0018,0x0018,0x0018,0x0018,0x0000,0x0000,0x0000,0x0000,0x0000, // \"r\"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0xFC0F,0xFC1F,0x0030,0x0030,0xF01F,0xF80F,0x0C00,0x0C00,0xF83F,0xF03F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"s\"\n\t0x0000,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0x8001,0xC001,0xF000,0x3000,0x0000,0x0000,0x0000,0x0000,0x0000, // \"t\"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"u\"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0C30,0x0C30,0x0C30,0x1C38,0x1818,0x381C,0x700E,0xE007,0xC003,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000, // \"v\"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x8C31,0x8C31,0x8C31,0xFC3F,0xF81F,0x700E,0x0000,0x0000,0x0000,0x0000,0x0000, // \"w\"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0C30,0x1C38,0x781E,0xF00F,0xC003,0xC003,0xF00F,0x781E,0x1C38,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000, // \"x\"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0C00,0x1C00,0xF80F,0xF00F,0x0000, // \"y\"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0xFC3F,0xFC3F,0x3800,0x7000,0xE001,0x8007,0x000E,0x001C,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"z\"\n\t0x0000,0xF000,0xF001,0x8001,0x8001,0x8003,0x0003,0x000F,0x000F,0x0003,0x8003,0x8001,0x8001,0xF000,0xF000,0x0000,0x0000,0x0000,0x0000,0x0000, // \"{\"\n\t0x0000,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000, // \"|\"\n\t0x0000,0x000F,0x800F,0x8001,0x8001,0xC001,0xC000,0xF000,0xF000,0xC000,0xC001,0x8001,0x8001,0x000F,0x000F,0x0000,0x0000,0x0000,0x0000,0x0000, // \"}\"\n\t0x0000,0x000E,0x0C1F,0xDC3B,0xF831,0x7000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // \"~\"\n\t0x0000,0x8001,0xC003,0xC003,0x6006,0x6006,0x300C,0x300C,0x1818,0x1818,0x0C30,0x0C30,0x0C30,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000, // &7F DEL\n\t0x0000,0xF003,0xF807,0x1C0E,0x0C0C,0xC03F,0xC03F,0x000C,0x000C,0x803F,0x803F,0x0C0C,0x1C0E,0xF807,0xF003,0x0000,0x0000,0x0000,0x0000,0x0000, // &80 euro symbol\n\t0x0000,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000, // &81 block (teletext)\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x8003,0x8003,0x8001,0x8003,0x0007,0x000E,0x0000,0x0000,0x0000, // &82 single low quotation mark\n\t0x0000,0x7000,0xF000,0xC001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8003,0x000F,0x000E,0x0000, // &83 small letter f with hook\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x1C0E,0x1C0E,0x0C06,0x1C0E,0x381C,0x7038,0x0000,0x0000,0x0000, // &84 double low quotation mark\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x9819,0x9819,0x0000,0x0000,0x0000,0x0000,0x0000, // &85 horizontal ellipsis\n\t0x0000,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000, // &86 dagger\n\t0x0000,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000, // &87 double dagger\n\t0x8001,0xC003,0x6006,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // &88 circumflex accent\n\t0x0000,0x3038,0x706C,0xE06C,0xC039,0x8003,0x0007,0x000E,0x001C,0x0038,0x0070,0x1C67,0xB60D,0xB60D,0x1C07,0x0000,0x0000,0x0000,0x0000,0x0000, // &89 per mille\n\t0x6006,0xE007,0xC003,0xF00F,0xF81F,0x1C38,0x0C30,0x0038,0xF01F,0xF80F,0x1C00,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // &8A capital S caron\n\t0x0000,0x0000,0x0000,0x8001,0x8003,0x0007,0x000E,0x000C,0x000E,0x0007,0x8003,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // &8B left angle quotation mark\n\t0x0000,0xFC0F,0xFC1F,0x8039,0x8031,0x8031,0x8031,0xF831,0xF831,0x8031,0x8031,0x8031,0x8039,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000, // &8C capital OE ligature\n\t0x0000,0x0000,0x8001,0xC003,0xE007,0xF00F,0xB81D,0x9C39,0x8C31,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // &8D up arrow (teletext)\n\t0x6006,0xE007,0xC003,0xFC3F,0xFC3F,0x3800,0x7000,0xE000,0xC001,0x8003,0x0007,0x000E,0x001C,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000, // &8E capital Z caron\n\t0x0000,0x0000,0x8001,0x8003,0x0007,0x000E,0x001C,0xFC3F,0xFC3F,0x001C,0x000E,0x0007,0x8003,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // &8F left arrow (teletext)\n\t0x0000,0x0000,0x8001,0xC001,0xE000,0x7000,0x3800,0xFC3F,0xFC3F,0x3800,0x7000,0xE000,0xC001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // &90 right arrow (teletext)\n\t0x0000,0x7000,0xE000,0xC001,0x8001,0xC001,0xC001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // &91 left single quotation mark\n\t0x0000,0x8003,0x8003,0x8001,0x8003,0x0007,0x000E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // &92 right single quotation mark\n\t0x0000,0x1C0E,0x381C,0x7038,0x6030,0x7038,0x7038,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // &93 left double quotation mark\n\t0x0000,0x1C0E,0x1C0E,0x0C06,0x1C0E,0x381C,0x7038,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // &94 right double quotation mark\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0xC003,0xE007,0xE007,0xC003,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // &95 bullet\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xF81F,0xF81F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // &96 en dash\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xFE7F,0xFE7F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // &97 em dash\n\t0x6007,0xC00D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // &98 small tilde\n\t0x0000,0x0000,0xC67E,0xC67E,0xEE18,0xFE18,0xD618,0xD618,0xC618,0xC618,0xC618,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // &99 trade mark sign\n\t0x0000,0x6006,0xE007,0xC003,0x0000,0xFC0F,0xFC1F,0x0038,0x0038,0xF01F,0xF80F,0x1C00,0x1C00,0xF83F,0xF03F,0x0000,0x0000,0x0000,0x0000,0x0000, // &9A small S caron\n\t0x0000,0x0000,0x0000,0x8001,0xC001,0xE000,0x7000,0x3000,0x7000,0xE000,0xC001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // &9B right angle quotation mark\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x780E,0xFC1F,0xCC3B,0x8C31,0xFC31,0xFC31,0x8031,0xC03B,0xFC1F,0x7C0E,0x0000,0x0000,0x0000,0x0000,0x0000, // &9C small OE ligature\n\t0x0000,0x381C,0x381C,0x381C,0x381C,0x381C,0x381C,0x381C,0x381C,0x381C,0x381C,0x381C,0x381C,0x381C,0x381C,0x0000,0x0000,0x0000,0x0000,0x0000, // &9D double line (teletext)\n\t0x0000,0x6006,0xE007,0xC003,0x0000,0xFC3F,0xFC3F,0x3800,0x7000,0xE001,0x8007,0x000E,0x001C,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000, // &9E small Z caron\n\t0x300C,0x300C,0x300C,0x0000,0x0C30,0x1C38,0x381C,0x700E,0xE007,0xC003,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000, // &9F capital Y diaeresis\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // &A0 non-break space\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000, // \" \"\n\t0x0000,0x0000,0x0000,0x8001,0x8001,0xFC0F,0xFC1F,0x8039,0x8031,0x8031,0x8031,0x8031,0x8039,0xFC1F,0xFC0F,0x8001,0x8001,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0xF003,0xF807,0x1C0E,0x0C0C,0x000C,0x000C,0x803F,0x803F,0x000C,0x000C,0x000C,0x000C,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0C30,0x1C38,0xF81F,0xF00F,0x700E,0x700E,0xF00F,0xF81F,0x1C38,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0x0C30,0x1C38,0x381C,0x700E,0xFC3F,0xFC3F,0x8001,0x8001,0xFC3F,0xFC3F,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0030,0x0038,0xF01F,0xF81F,0x1C38,0x1C38,0xF81F,0xF80F,0x1C00,0x0C00,0x0C30,0x1C38,0xF81F,0xF00F,0x0000, // \" \"\n\t0x1818,0x1818,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xCC33,0xEC37,0x6C36,0x0C36,0x0C36,0x0C36,0x6C36,0xEC37,0xCC33,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000, // \" \"\n\t0x0000,0xF00F,0xF80F,0x1C00,0x0C00,0xFC0F,0xFC1F,0x0C38,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x1C0E,0x381C,0x7038,0x7038,0x381C,0x1C0E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0xFC3F,0xFC3F,0x0C00,0x0C00,0x0C00,0x0C00,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xE007,0xE007,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xCC37,0xEC37,0x6C36,0x6C36,0xCC37,0x8C37,0xCC37,0xEC36,0x6C36,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000, // \" \"\n\t0x0000,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0xC003,0xE007,0x700E,0x381C,0x700E,0xE007,0xC003,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0x8001,0x8001,0x8001,0x8001,0xFC3F,0xFC3F,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0xC00F,0xE00F,0x7000,0x7000,0xE003,0xC007,0x000E,0x000C,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0xC00F,0xE00F,0x7000,0x7000,0xE00F,0xE00F,0x7000,0x7000,0xE00F,0xC00F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0x6000,0xE000,0xC001,0x8003,0x0007,0x0006,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x6030,0x6030,0x6030,0x6030,0x6030,0x6030,0x6030,0xF830,0xFC3F,0x8C3F,0x0030,0x0030,0x0030,0x0030,0x0000, // \" \"\n\t0x0000,0x8C0F,0x8C1F,0x8C39,0x8C31,0x8C31,0x8C39,0x8C1F,0x8C0F,0x8C01,0x8C01,0x8C01,0x8C01,0x8C01,0x8C01,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x8003,0x0007,0x0006,0x0000, // \" \"\n\t0x0000,0x8003,0x8007,0x800F,0x800D,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x7038,0x381C,0x1C0E,0x1C0E,0x381C,0x7038,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0x000C,0x000C,0x000C,0x000C,0x000C,0x000C,0x000C,0x000C,0x1C0C,0x3C0C,0x7C00,0xEC00,0xCC01,0x8C01,0xFC01,0xFC01,0x0C00,0x0C00,0x0000, // \" \"\n\t0x0000,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0xF831,0xFC31,0x0C00,0x0C00,0x7C00,0xF800,0xC001,0x8001,0xFC01,0xFC01,0x0000, // \" \"\n\t0x0000,0x003E,0x003F,0x8003,0x8003,0x003F,0x003F,0x8003,0x8003,0x1C3F,0x3C3E,0x7C00,0xEC00,0xCC01,0x8C01,0xFC01,0xFC01,0x0C00,0x0C00,0x0000, // \" \"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x8001,0x8001,0x8003,0x0007,0x000E,0x001C,0x0C18,0x1C1C,0xF80F,0xF00F,0x0000, // \" \"\n\t0x0006,0x0007,0x8003,0x8001,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x6000,0xE000,0xC001,0x8001,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x8001,0xC003,0xE007,0x6006,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x1807,0xB80F,0xF01D,0xE018,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x300C,0x300C,0x300C,0x0000,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x8001,0xC003,0x6006,0x6006,0xC003,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0xFC0F,0xFC1F,0x8039,0x8031,0x8031,0x8031,0xF83F,0xF83F,0x8031,0x8031,0x8031,0x8031,0xFC31,0xFC31,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0030,0x0030,0x0030,0x0030,0x0030,0x0030,0x0C30,0x1C38,0xF81F,0xF00F,0x8001,0x8003,0x0007,0x0006,0x0000, // \" \"\n\t0x0006,0x0007,0x8003,0x8001,0x0000,0xFC3F,0xFC3F,0x0030,0x0030,0xF03F,0xF03F,0x0030,0x0030,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x6000,0xE000,0xC001,0x8001,0x0000,0xFC3F,0xFC3F,0x0030,0x0030,0xF03F,0xF03F,0x0030,0x0030,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x8001,0xC003,0xE007,0x6006,0x0000,0xFC3F,0xFC3F,0x0030,0x0030,0xF03F,0xF03F,0x0030,0x0030,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x300C,0x300C,0x300C,0x0000,0x0000,0xFC3F,0xFC3F,0x0030,0x0030,0xF03F,0xF03F,0x0030,0x0030,0xFC3F,0xFC3F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0006,0x0007,0x8003,0x8001,0x0000,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x6000,0xE000,0xC001,0x8001,0x0000,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x8001,0xC003,0xE007,0x6006,0x0000,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x300C,0x300C,0x300C,0x0000,0x0000,0xF00F,0xF00F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0xF00F,0xF80F,0x1C0C,0x0C0C,0x0C0C,0x0C0C,0x8C3F,0x8C3F,0x0C0C,0x0C0C,0x0C0C,0x1C0C,0xF80F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x1807,0xB80F,0xF01D,0xE018,0x0000,0x0C30,0x0C3C,0x0C3E,0x0C37,0x8C33,0xCC31,0xEC30,0x7C30,0x3C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0006,0x0007,0x8003,0x8001,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x6000,0xE000,0xC001,0x8001,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x8001,0xC003,0xE007,0x6006,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x1807,0xB80F,0xF01D,0xE018,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x300C,0x300C,0x300C,0x0000,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0x0000,0x0000,0x1818,0x381C,0x700E,0xE007,0xC003,0xE007,0x700E,0x381C,0x1818,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0xF00F,0xF81F,0x1C38,0x3C30,0x7C30,0xEC30,0xCC31,0x8C33,0x0C37,0x0C3E,0x0C3C,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0006,0x0007,0x8003,0x8001,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x6000,0xE000,0xC001,0x8001,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x8001,0xC003,0xE007,0x6006,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x300C,0x300C,0x300C,0x0000,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x6000,0xE000,0xC001,0x8001,0x0C30,0x1C38,0x381C,0x700E,0xE007,0xC003,0x8001,0x8001,0x8001,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0x0030,0x0030,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x1C30,0xF83F,0xF03F,0x0030,0x0030,0x0030,0x0030,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0xC00F,0xE01F,0x7038,0x3030,0x3030,0x3030,0xF031,0xF831,0x1C30,0x0C30,0x0C30,0x1C30,0xF831,0xF031,0x0030,0x0030,0x0030,0x0030,0x0000, // \" \"\n\t0x0006,0x0007,0x8003,0x8001,0x0000,0xF00F,0xF80F,0x1C00,0x0C00,0xFC0F,0xFC1F,0x0C38,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x6000,0xE000,0xC001,0x8001,0x0000,0xF00F,0xF80F,0x1C00,0x0C00,0xFC0F,0xFC1F,0x0C38,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x8001,0xC003,0xE007,0x6006,0x0000,0xF00F,0xF80F,0x1C00,0x0C00,0xFC0F,0xFC1F,0x0C38,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x1807,0xB80F,0xF01D,0xE018,0x0000,0xF00F,0xF80F,0x1C00,0x0C00,0xFC0F,0xFC1F,0x0C38,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0x300C,0x300C,0x300C,0x0000,0xF00F,0xF80F,0x1C00,0x0C00,0xFC0F,0xFC1F,0x0C38,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x8001,0xC003,0x6006,0xC003,0x8001,0xF00F,0xF80F,0x1C00,0x0C00,0xFC0F,0xFC1F,0x0C38,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0x781E,0xFC1F,0x8C03,0x8C01,0xFC1F,0xFC3F,0x8031,0x8031,0xF83F,0xF81F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0xFC0F,0xFC1F,0x0038,0x0030,0x0030,0x0030,0x0030,0x0038,0xFC1F,0xFC0F,0xC000,0xC001,0x8003,0x0003,0x0000, // \" \"\n\t0x0006,0x0007,0x8003,0x8001,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0030,0x0038,0xF01F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x6000,0xE000,0xC001,0x8001,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0030,0x0038,0xF01F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x8001,0xC003,0xE007,0x6006,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0030,0x0038,0xF01F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0x300C,0x300C,0x300C,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0xFC3F,0xFC3F,0x0030,0x0038,0xF01F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0006,0x0007,0x8003,0x8001,0x0000,0x800F,0x800F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x6000,0xE000,0xC001,0x8001,0x0000,0x800F,0x800F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x8001,0xC003,0xE007,0x6006,0x0000,0x800F,0x800F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0x300C,0x300C,0x300C,0x0000,0x800F,0x800F,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xF00F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0x601E,0xE01F,0xC003,0xE007,0x700E,0x380C,0x1C00,0x0C00,0xFC0F,0xFC1F,0x1C38,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x1807,0xB80F,0xF01D,0xE018,0x0000,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0006,0x0007,0x8003,0x8001,0x0000,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x6000,0xE000,0xC001,0x8001,0x0000,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x8001,0xC003,0xE007,0x6006,0x0000,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x1807,0xB80F,0xF01D,0xE018,0x0000,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0x300C,0x300C,0x300C,0x0000,0x0000,0xF00F,0xF81F,0x1C38,0x0C30,0x0C30,0x0C30,0x1C38,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0xFC3F,0xFC3F,0x0000,0x0000,0x8001,0x8001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0x0000,0x0000,0x0000,0x0000,0xF00F,0xF81F,0x7C38,0xEC30,0xCC31,0x8C33,0x0C37,0x1C3E,0xF81F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0006,0x0007,0x8003,0x8001,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x6000,0xE000,0xC001,0x8001,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x8001,0xC003,0xE007,0x6006,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x0000,0x300C,0x300C,0x300C,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0000,0x0000,0x0000,0x0000,0x0000, // \" \"\n\t0x6000,0xE000,0xC001,0x8001,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0C00,0x1C00,0xF80F,0xF00F,0x0000, // \" \"\n\t0x0000,0x0030,0x0030,0x0030,0x0030,0xF03F,0xF83F,0x1C30,0x0C30,0x0C30,0x0C30,0x0C30,0x1C30,0xF83F,0xF03F,0x0030,0x0030,0x0030,0x0030,0x0000, // \" \"\n\t0x0000,0x300C,0x300C,0x300C,0x0000,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C30,0x0C38,0xFC1F,0xFC0F,0x0C00,0x1C00,0xF80F,0xF00F,0x0000} ; // \" \"\n"
  },
  {
    "path": "src/bbdata_x86_32.nas",
    "content": ";/*****************************************************************\\\n;*       BBC BASIC for SDL 2.0 (x86_32)                            *\n;*       Copyright (c) R. T. Russell, 2000-2025                    *\n;*                                                                 *\n;*       BBCDATA.NAS RAM data definitions                          *\n;*       Version 1.44a, 22-Dec-2025                                *\n;\\*****************************************************************/\n;\nMAX_PORTS       EQU     4       ; Maximum number of i/o ports\nMAX_FILES       EQU     8       ; Maximum number of open files\nSOUNDQE         EQU     4       ; Number of bytes per sound entry\nSOUNDQL         EQU     5*SOUNDQE ; Number of bytes per channel\n;\n\tGLOBAL\tstavar,lc,oc,pc,dynvar,fnptr,proptr,prand\n\tGLOBAL\taccs,buff,vpage,flist,lomem,pfree,himem\n\tGLOBAL\terrtxt,onersp,errtrp,datptr,curlin,errlin\n\tGLOBAL\ttracen,vcount,vwidth,errnum,liston,tmps\n;\n\tGLOBAL\tpath,keystr,keybdq,keyptr,spchan,exchan,tweak\n\tGLOBAL\tfcbtab,timoff,usrchr,soundq,envels,waves,libase\n\tGLOBAL\teventq,timtrp,clotrp,siztrp,systrp,moutrp\n\tGLOBAL\talltrp,iMsg,wParam,lParam,filbuf,portab,fvtab\n;\n\tGLOBAL\tforgnd,bakgnd,hfont,colmsk,modeno,lthick,hrect\n\tGLOBAL\torigx,origy,lastx,lasty,prevx,prevy,pfont,cmcflg\n\tGLOBAL\ttextwl,textwr,textwt,textwb,sizex,sizey,sclflg\n\tGLOBAL\ttextx,texty,charx,chary,cursa,cursb,tempo\n\tGLOBAL\tpixelx,pixely,txtfor,txtbak,optval,farray,fasize\n;\n\tGLOBAL\tvduq,queue,flags,kbdqw,kbdqr,keyexp,scroln\n\tGLOBAL\tvflags,sndqw,sndqr,sacc,smix,evtqw,evtqr\n\tGLOBAL\teenvel,escale,epsect,easect,epitch,elevel,ecount\n;\n\tGLOBAL\thwndProg,zoom,offsetx,offsety,platform\n\tGLOBAL\tmemhdc,reflag,sysflg,panx,pany\n\tGLOBAL\tprntx,prnty,prchx,prchy,cursx,bPaletted\n\tGLOBAL\tpaperl,paperr,papert,paperb,lstopt\n;\n\tGLOBAL\tdatend,sysvar,savesp,bbcfont,lastick,link00\n\tGLOBAL\tcmdlen,cmdadr,dirlen,diradr,liblen,libadr\n\tGLOBAL\tusrlen,usradr,tmplen,tmpadr,hwo\n\tGLOBAL\tvdufmt,vduvar,vduptr,voices,chrmap\n\tGLOBAL\tbreakpt,breakhi,ttxtfont\n;\n\tEXTERN\tloadn,loads,storen,stores,getvar,putvar,expr,item,lexan\n\tEXTERN\txfloat,xfix,xeq,token,putevt,palette,str00,con,TTFcache\n;\n\tEXTERN\tgfxPrimitivesGetFont,gfxPrimitivesSetFont,RedefineChar\n\tEXTERN\tsortup,sortdn\n;\n\tSEGMENT .data\t\t; Crashes if .bss\n;\n;The following locations are initialised to zero when program is RUN:\n;Variables used by generic modules (bbmain, bbexec, bbeval, bbasmb)\n;\n\talign\t16,db 0\nstavar:\ttimes 12 dd 0\t\t; Static variables @% to K%\nlc:\tdd\t0\t\t; Static variable L%\n\ttimes 2 dd 0\t\t; Static variables M%, N%\noc:\tdd\t0\t\t; Static variable O%\npc:\tdd\t0\t\t; Static variable P%\n\ttimes 10 dd 0\t\t; Static variables Q% to Z%\ndynvar:\ttimes 54 dd 0\t\t; ( Pointers to dynamic vars   )\nfnptr:\tdd\t0\t\t; ( Pointer to user FuNctions  ) grouped\nproptr:\tdd\t0\t\t; ( Pointer to user PROCedures )\naccs:\tdd\t0\t\t; Pointer to string accumulator\nbuff:\tdd\t0\t\t; Pointer to string input buffer\nvpage:\tdd\t0\t\t; Current value of PAGE\ntracen:\tdd\t0\t\t; Maximum line number to trace\nlomem:\tdd\t0\t\t; Current value of LOMEM\npfree:\tdd\t0\t\t; Pointer to start of free space\nhimem:\tdd\t0\t\t; Current value of HIMEM\nlibase:\tdd\t0\t\t; Pointer to INSTALLed library\nerrtxt:\tdd\t0\t\t; Pointer to error text for REPORT\nonersp:\tdd\t0\t\t; ESP storage for ON ERROR LOCAL\nerrtrp:\tdd\t0\t\t; Pointer to ON ERROR statement\ndatptr:\tdd\t0\t\t; Pointer to DATA statements\nvcount:\tdd\t0\t\t; Current value of COUNT\ncurlin:\tdd\t0\t\t; Pointer to current statement\nalltrp:\t\t\t\t; Start of trap pointers\ntimtrp:\tdd\t0\t\t; Pointer to ON TIME statement\nclotrp:\tdd\t0\t\t; Pointer to ON CLOSE statement\nsiztrp:\tdd\t0\t\t; Pointer to ON MOVE statement\nsystrp:\tdd\t0\t\t; Pointer to ON SYS statement\nmoutrp:\tdd\t0\t\t; Pointer to ON MOUSE statement\nerrlin:\tdd\t0\t\t; Pointer to last error statement\n;\nprand:\nrandom:\ttimes 5 db 0\t\t; Current 'random' number (5 bytes)\nvwidth:\tdb\t0\t\t; Current value of WIDTH\nerrnum:\tdb\t0\t\t; Error code of last error\nliston:\tdb\t0\t\t; *FLOAT/*HEX/*LOWERCASE/OPT\n;\n;Variables used by OS-specific modules (bbcmos, bbccli, bbcvdu, bbcvtx)\n;\n\talign\t4,db 0\npath:\tdd\t0\t\t; Pointer to path/filename buffer\nkeystr:\tdd\t0\t\t; Pointer to user *KEY strings\nkeybdq:\tdd\t0\t\t; Pointer to keyboard queue\neventq:\tdd\t0\t\t; Pointer to event queue\nkeyptr:\tdd\t0\t\t; Pointer to *KEY string\nusrchr:\tdd\t0\t\t; Pointer to user-defined characters\n;\nlstopt:\tdb\t0\t\t; LISTO value (indentation)\nsclflg:\tdb\t0\t\t; V5.3 scroll flag (COPY key)\noptval:\tdb\t0\t\t; *OUTPUT and *INPUT values\n;\n; ------ End of 'absolutely-addressed' variables ------\n;\nfarray:\tdb\t0\t\t; Number of dimensions = 1  |\nfasize:\tdd\t0\t\t; Number of elements = 13   |\nfilbuf:\tdd\t0\t\t; Pointer to file buffers   | hfile%()\nportab:\ttimes MAX_PORTS dd 0\t; Table of port handles     |\nchntab:\ttimes MAX_FILES dd 0\t; Table of file handles     |\nfcbtab:\ttimes MAX_FILES dd 0\t; Table of FCBs (must follow chntab)\n;\nspchan:\tdd\t0\t\t; Channel for *SPOOL/*SPOOLON\nexchan:\tdd\t0\t\t; Channel for *EXEC\nsacc:\ttimes 4 dd 0\t\t; Sound accumulators\nsmix:\ttimes 4 dd 0\t\t; Stereo mix\n;\n;Text/graphics metrics (pointed to by @vdu%):\n;\nvduvar:\norigx:\tdd\t0\t\t; Graphics horizontal origin\norigy:\tdd\t0\t\t; Graphics vertical origin\nlastx:\tdd\t0\t\t; Immediately preceding x-coordinate\nlasty:\tdd\t0\t\t; Immediately preceding y-coordinate\nprevx:\tdd\t0\t\t; Previous x-coordinate\nprevy:\tdd\t0\t\t; Previous y-coordinate\ntextwl:\tdd\t0\t\t; Text window left (pixels)\ntextwr:\tdd\t0\t\t; Text window right (pixels)\ntextwt:\tdd\t0\t\t; Text window top (pixels)\ntextwb:\tdd\t0\t\t; Text window bottom (pixels)\npixelx:\tdd\t0\t\t; Width of a graphics pixel\npixely:\tdd\t0\t\t; Height of a graphics pixel\ntextx:\tdd\t0\t\t; Text pointer (cursor x)\ntexty:\tdd\t0\t\t; Text pointer (cursor y)\nhfont:\tdd\t0\t\t; Handle of current font\nhrect:\tdd\t0\t\t; Pointer to clipping rect\n;\nforgnd:\tdw\t0\t\t; Graphics foreground colour/action\nbakgnd:\tdw\t0\t\t; Graphics background colour/action\n;\ncursa:\tdb\t0\t\t; Start (top) line of cursor\ncursb:\tdb\t0\t\t; Finish (bottom) line of cursor\ntxtfor:\tdb\t0\t\t; Text foreground colour\ntxtbak:\tdb\t0\t\t; Text background colour\nmodeno:\tdb\t0\t\t; Mode number\ncolmsk:\tdb\t0\t\t; Mask for maximum number of colours\nvflags:\tdb\t0\t\t; VDU driver flags\nscroln:\tdb\t0\t\t; Scroll counter in paged mode\ncursx:\tdb\t0\t\t; Cursor (caret) width\nlthick:\tdb\t0\t\t; Line thickness (lines, outline shapes)\ncmcflg:\tdb\t0\t\t; V5.3 cursor movement flags\ntweak:\tdb\t0\t\t; Character spacing adjustment (signed) \n;\nsndqw:\ttimes 4 db 0\t\t; Sound queue write pointers\nsndqr:\ttimes 4 db 0\t\t; Sound queue read pointers\neenvel:\ttimes 4 db 0\t\t; Envelope number\nescale:\ttimes 4 db 0\t\t; Envelope scaler\nepsect:\ttimes 4 db 0\t\t; Envelope pitch section\neasect:\ttimes 4 db 0\t\t; Envelope amplitude section\nepitch:\ttimes 4 db 0\t\t; Envelope pitch (frequency)\necount:\ttimes 4 db 0\t\t; Envelope count\nsoundq:\ttimes 4*SOUNDQL db 0\t; Sound queue (four channels)\nvduq:\ttimes 10 db 0\t\t; VDU queue (must precede 'queue')\nqueue:\tdb\t0\t\t; VDU queue status\n;\nkbdqw:\tdb\t0\t\t; Keyboard queue write pointer\nkbdqr:\tdb\t0\t\t; Keyboard queue read pointer\nevtqw:\tdb\t0\t\t; Event queue write pointer\nevtqr:\tdb\t0\t\t; Event queue read pointer\nkeyexp:\tdb\t0\t\t; *KEY character counter\n;\n\talign\t4,db 0\n;\n; ------ End of initialised variables ------\n;\ndatend:\n;\n;The following locations are NOT initialised when program is RUN\n;(but are guaranteed to be zero on initial execution).\n;\nsizex:\tdd\t0\t\t; Total width of client area\nsizey:\tdd\t0\t\t; Total height of client area\ncharx:\tdd\t0\t\t; Average character width\nchary:\tdd\t0\t\t; Average character height\nprchx:\tdd\t0\t\t; Average character width (printer)\nprchy:\tdd\t0\t\t; Average character height (printer)\npaperl:\tdd\t0\t\t; Printer left edge\npaperr:\tdd\t0\t\t; Printer right edge\npapert:\tdd\t0\t\t; Printer top edge\npaperb:\tdd\t0\t\t; Printer bottom edge\nprntx:\tdd\t0\t\t; Horizontal printing position\nprnty:\tdd\t0\t\t; Vertical printing position\n;\n; ------ End of VDU variables ------\n;\n;The following variables are organised as a linked-list at\n;sysvar, for access via 'system variables' starting with @:\n;\n\talign\t4,db 0\n;\nsysvar:\tdd\tlink2 - sysvar\n\tdb\t'memhdc%',0\nmemhdc:\tdd\t0\t\t; Shadow screen device context\n;\nlink2:\tdd\tlink3 - link2\n\tdb\t'wparam%',0\nwParam:\tdd\t0\t\t; Saved wParam for ON xxxx interrupt\n;\nlink3:\tdd\tlink4 - link3\n\tdb\t'lparam%',0\nlParam:\tdd\t0\t\t; Saved lParam for ON xxxx interrupt\n;\n\tdw\t0\t\t; Padding\nlink4:\tdd\tlink5 - link4\n\tdb\t'hwnd%',0\nhwndProg: dd\t0\t\t; Handle for program window\n;\n\tdw\t0\t\t; Padding\nlink5:\tdd\tlink6 - link5\n\tdb\t'hpal%',0\n\tdd\tpalette\t\t; Colour palette\n;\nlink6:\tdd\tlink7 - link6\n\tdb\t'ox%',0\t\t; V5.2\noffsetx:dd\t0\t\t; V5.2 x-offset memhdc->hwnd\n;\nlink7:\tdd\tlink8 - link7\n\tdb\t'oy%',0\t\t; V5.2 \noffsety:dd\t0\t\t; V5.2 y-offset memhdc->hwnd\n;\nlink8:\tdd\tlink9 - link8\n\tdb\t'hfile%(',0\n\tdd\tfarray\t\t; Pointer to file handles array\n;\n\tdb\t0,0,0\t\t; Padding\nlink9:\tdd\tlink10 - link9\n\tdb\t'msg%',0\niMsg:\tdd\t0\t\t; Saved iMsg for ON xxxx interrupt\n;\n\tdb\t0,0,0\t\t; Padding\nlink10:\tdd\tlink11 - link10\n\tdb\t'vdu%',0\n\tdd\tvduvar\t\t; Pointer to VDU variables\n;\n\tdw\t0\t\t; Padding\nlink11:\tdd\tlink12 - link11\n\tdb\t'platform%',0\nplatform: dd\t0\t\t; SDL version & OS\n;\n\tdb\t0\t\t; Padding\nlink12:\tdd\tlink13 - link12\t; V3.0\n\tdb\t'flags%',0\t; V3.0\ntempo:\tdb\t0\t\t; *TEMPO value\nsysflg:\tdb\t0\t\t; *SYS flags\nreflag:\tdb\t0\t\t; *REFRESH flags\nflags:\tdb\t0\t\t; Boolean flags (byte) @ 3FBH\n;\n\tdb\t0\t\t; Padding\nlink13:\tdd\tlink14 - link13\n\tdb\t'cache%',0\n\tdd\tTTFcache\t; Font cache\n;\n\tdw\t0\t\t; Padding\nlink14:\tdd\tlink15 - link14\n\tdb\t'zoom%',0\t; V3.0\nzoom:\tdd\t0\t\t; V3.0\n;\n\tdb\t0,0,0\t\t; Padding\nlink15:\tdd\tlink16 - link15\n\tdb\t'hwo%',0\t; V5.4\nhwo:\tdd\t0\t\t; V5.4 Handle for wave output\n;\nlink16:\tdd\tlink17 - link16\t; V6.0\n\tdb\t'chrmap%',0\t; V6.0\nchrmap:\tdd\t0\t\t; V6.0\n;\n\talign\t4,db 0\nsavesp:\tdd\t0\t\t; Store for caller's stack pointer\nflist:\ttimes 33 dd 0\t\t; Pointers to string free lists @ 440H\ntmps:\tdd\t0\t\t; V6.0 Temp string descriptor:\taddress\n\tdd\t0\t\t; V6.0 Temp string descriptor:\tlength\n;\nlastick:dd\t0\t\t; To check for TickCount wraparound\ntimoff:\tdd\t0\t\t; Offset to add to TickCount\nenvels:\tdd\t0\t\t; Pointer to ENVELOPEs\nwaves:\tdd\t0\t\t; Pointer to SOUND waveforms\nvoices:\ttimes 4 db 0\t\t; Voices (waveforms) for sound channels\nelevel:\ttimes 4 db 0\t\t; Envelope level (amplitude)\n;\n\tdb\t0,0,0\t\t; Padding\nlink17:\tdd\tlink18 - link17\n\tdb\t'dir$',0\t; V3.0\ndiradr:\tdd\t0\t\t; V3.0 Load directory address\ndirlen:\tdd\t0\t\t; V6.0 Load directory length\n;\n\tdb\t0,0,0\t\t; Padding\nlink18:\tdd\tlink19 - link18\n\tdb\t'lib$',0\t; V4.0\nlibadr:\tdd\t0\t\t; V4.0 Lib directory address\nliblen:\tdd\t0\t\t; V6.0 Lib directory length\n;\n\tdb\t0,0,0\t\t; Padding\nlink19:\tdd\tlink20 - link19\n\tdb\t'cmd$',0\ncmdadr:\tdd\t0\t\t; Command line address\ncmdlen:\tdd\t0\t\t; V6.0 Command line length\n;\n\tdb\t0,0,0\t\t; Padding\nlink20:\tdd\tlink21 - link20\n\tdb\t'usr$',0\t; V5.4\nusradr:\tdd\t0\t\t; V5.4 User directory address\nusrlen:\tdd\t0\t\t; V6.0 User directory length\n;\n\tdb\t0,0,0\t\t; Padding\nlink21:\tdd\tlink22 - link21\n\tdb\t'tmp$',0\t; V5.4\ntmpadr:\tdd\t0\t\t; V5.4 Temp directory address\ntmplen:\tdd\t0\t\t; V6.0 Temp directory length\n;\n\tdb\t0,0,0\t\t; Padding\nlink22:\tdd\tlink23 - link22\t; V5.4\n\tdb\t'vdu{',0\t; V5.4\nvduptr:\tdd\tvdufmt\t\t; V5.4 Format address\n\tdd\tvduvar\t\t; V5.4 Data address\n;\n\tdb\t0\t\t; Padding\nlink23:\tdd\tlink24 - link23\n\tdb\t'ispal%',0\nbPaletted: dd\t0\t\t; Paletted display flag (BOOL)\n;\n\tdw\t0\t\t; Padding\nlink24:\tdd\tlink25 - link24\n\tdb\t'panx%',0\npanx:\tdd\t0\t\t; Horizontal pan\n;\n\tdw\t0\t\t; Padding\nlink25:\tdd\tlink26 - link25\n\tdb\t'pany%',0\npany:\tdd\t0\t\t; Vertical pan\n;\n\tdb\t0\t\t; Padding\nlink26:\tdd\tlink27 - link26\n\tdb\t'brkpt%',0\nbreakpt:dd\t0\t\t; Breakpoint (bottom of range)\n;\n\tdb\t0\t\t; Padding\nlink27:\tdd\tlink28 - link27\n\tdb\t'brkhi%',0\nbreakhi:dd\t0\t\t; Breakpoint (top of range)\n;\n\tdw\t0\t\t; Padding\nlink28:\tdd\tlink29 - link28\n\tdb\t'size{',0\t; V6.1 Member name\n\tdd\tptfmt\t\t; V6.1 Format address\n\tdd\tsizex\t\t; V6.1 Data address\n;\n\tdw\t0\t\t; Padding\nlink29:\tdd\tlink00 - link29\n\tdb\t'char{',0\t; V6.1 Member name\n\tdd\tptfmt\t\t; V6.1 Format address\n\tdd\tcharx\t\t; V6.1 Data address\n;\n; Structure @vdu{o{x%,y%}, l{x%,y%}, p{x%,y%}, tl%, tr%, tt%, tb%,\n;                d{x%,y%}, c{x%,y%}, hf%, hr%,\n;                g{a&,b&,c&,d&}, t{a&,b&,c&,d&}, m{a&,b&,c&,d&}}\n;\n\tdb\t0\t\t; Padding\nvdufmt:\tdd\tsndqw-vduvar\t; V5.4 Total length (bytes)\n;\nvlnk00:\tdd\tvlnk01 - vlnk00\t; V5.4 Link to next\n\tdb\t'o{',0\t\t; V5.4 Member name\n\tdd\tptfmt\t\t; V5.4 Format address\n\tdd\torigx-vduvar\t; V5.4 Data offset\n;\n\tdb\t0\t\t; Padding\nvlnk01:\tdd\tvlnk02 - vlnk01\n\tdb\t'l{',0\t\t; V5.4 Member name\n\tdd\tptfmt\t\t; V5.4 Format address\n\tdd\tlastx-vduvar\t; V5.4 Data offset\n;\n\tdb\t0\t\t; Padding\nvlnk02:\tdd\tvlnk03 - vlnk02\n\tdb\t'p{',0\t\t; V5.4 Member name\n\tdd\tptfmt\t\t; V5.4 Format address\n\tdd\tprevx-vduvar\t; V5.4 Data offset\n;\nvlnk03:\tdd\tvlnk04 - vlnk03\n\tdb\t'tl%',0\t\t; V5.4 Member name\n\tdd\ttextwl-vduvar\t; V5.4 Data offset\n;\nvlnk04:\tdd\tvlnk05 - vlnk04\n\tdb\t'tr%',0\t\t; V5.4 Member name\n\tdd\ttextwr-vduvar\t; V5.4 Data offset\n;\nvlnk05:\tdd\tvlnk06 - vlnk05\n\tdb\t'tt%',0\t\t; V5.4 Member name\n\tdd\ttextwt-vduvar\t; V5.4 Data offset\n;\nvlnk06:\tdd\tvlnk07 - vlnk06\n\tdb\t'tb%',0\t\t; V5.4 Member name\n\tdd\ttextwb-vduvar\t; V5.4 Data offset\n;\n\tdb\t0\t\t; Padding\nvlnk07:\tdd\tvlnk08 - vlnk07\n\tdb\t'd{',0\t\t; V5.4 Member name\n\tdd\tptfmt\t\t; V5.4 Format address\n\tdd\tpixelx-vduvar\t; V5.4 Data offset\n;\n\tdb\t0\t\t; Padding\nvlnk08:\tdd\tvlnk09 - vlnk08\n\tdb\t'c{',0\t\t; V5.4 Member name\n\tdd\tptfmt\t\t; V5.4 Format address\n\tdd\ttextx-vduvar\t; V5.4 Data offset\n;\nvlnk09:\tdd\tvlnk10 - vlnk09\n\tdb\t'hf%',0\t\t; V5.4 Member name\n\tdd\thfont-vduvar\t; V5.4 Data offset\n;\nvlnk10:\tdd\tvlnk11 - vlnk10\n\tdb\t'hr%',0\t\t; V5.4 Member name\n\tdd\threct-vduvar\t; V5.4 Data offset\n;\n\tdb\t0\t\t; Padding\nvlnk11:\tdd\tvlnk12 - vlnk11\n\tdb\t'g{',0\t\t; V5.4 Member name\n\tdd\tb4fmt\t\t; V5.4 Format address\n\tdd\tforgnd-vduvar\t; V5.4 Data offset\n;\n\tdb\t0\t\t; Padding\nvlnk12:\tdd\tvlnk13 - vlnk12\n\tdb\t't{',0\t\t; V5.4 Member name\n\tdd\tb4fmt\t\t; V5.4 Format address\n\tdd\tcursa-vduvar\t; V5.4 Data offset\n;\n\tdb\t0\t\t; Padding\nvlnk13:\tdd\tvlnk14 - vlnk13\n\tdb\t'm{',0\t\t; V5.4 Member name\n\tdd\tb4fmt\t\t; V5.4 Format address\n\tdd\tmodeno-vduvar\t; V5.4 Data offset\n;\n\tdb\t0\t\t; Padding\nvlnk14:\tdd\t0\n\tdb\t'w{',0\t\t; V6.1 Member name\n\tdd\tb4fmt\t\t; V6.1 Format address\n\tdd\tcursx-vduvar\t; V6.1 Data offset\n;\n\tdb\t0,0,0\t\t; Padding\nlink00:\tdd\t0\t\t; V5.7 End of list\n\tdb\t'fn%(',0\t; V5.7\n\tdd\tfnarr\t\t; V5.7 Pointer to function array\n;\n\tSEGMENT .text\n;\nbbcfont:\n\tDB\t00H,00H,00H,00H,00H,00H,00H,00H\t\t;NUL\n\tDB\t07EH,081H,0A5H,081H,0BDH,099H,081H,07EH\t;SOH\n\tDB\t07EH,0FFH,0DBH,0FFH,0C3H,0E7H,0FFH,07EH\t;STX\n\tDB\t06CH,0FEH,0FEH,0FEH,07CH,038H,010H,00H\t;ETX\n\tDB\t010H,038H,07CH,0FEH,07CH,038H,010H,00H\t;EOT\n\tDB\t010H,038H,038H,0D6H,0FEH,0D6H,010H,038H\t;ENQ\n\tDB\t010H,038H,07CH,0FEH,0FEH,0FEH,038H,07CH\t;ACK\n\tDB\t00H,00H,018H,03CH,03CH,018H,00H,00H\t;BEL\n\tDB\t0FFH,0FFH,0E7H,0C3H,0C3H,0E7H,0FFH,0FFH\t;BS\n\tDB\t00H,03CH,066H,042H,042H,066H,03CH,00H\t;HT\n\tDB\t0FFH,0C3H,099H,0BDH,0BDH,099H,0C3H,0FFH\t;LF\n\tDB\t0FH,07H,0FH,07DH,0CCH,0CCH,0CCH,078H\t;VT\n\tDB\t03CH,066H,066H,066H,03CH,018H,07EH,018H\t;FF\n\tDB\t03FH,033H,03FH,030H,030H,070H,0F0H,0E0H\t;CR\n\tDB\t07FH,063H,07FH,063H,063H,067H,0E6H,0C0H\t;SO\n\tDB\t099H,05AH,03CH,0E7H,0E7H,03CH,05AH,099H\t;SI\n\tDB\t080H,0E0H,0F8H,0FEH,0F8H,0E0H,080H,00H\t;DLE\n\tDB\t02H,0EH,03EH,0FEH,03EH,0EH,02H,00H\t;DC1\n\tDB\t018H,03CH,07EH,018H,018H,07EH,03CH,018H\t;DC2\n\tDB\t066H,066H,066H,066H,066H,00H,066H,00H\t;DC3\n\tDB\t07FH,0DBH,0DBH,07BH,01BH,01BH,01BH,00H\t;DC4\n\tDB\t03EH,063H,038H,06CH,06CH,038H,0CCH,078H\t;NAK\n\tDB\t00H,00H,00H,00H,07EH,07EH,07EH,00H\t;SYN\n\tDB\t018H,03CH,07EH,018H,07EH,03CH,018H,0FFH\t;ETB\n\tDB\t018H,03CH,07EH,018H,018H,018H,018H,00H\t;CAN\n\tDB\t018H,018H,018H,018H,07EH,03CH,018H,00H\t;EM\n\tDB\t00H,018H,0CH,0FEH,0CH,018H,00H,00H\t;SUB\n\tDB\t00H,030H,060H,0FEH,060H,030H,00H,00H\t;ESC\n\tDB\t00H,00H,0C0H,0C0H,0C0H,0FEH,00H,00H\t;FS\n\tDB\t00H,024H,066H,0FFH,066H,024H,00H,00H\t;GS\n\tDB\t00H,018H,03CH,07EH,0FFH,0FFH,00H,00H\t;RS\n\tDB\t00H,0FFH,0FFH,07EH,03CH,018H,00H,00H\t;US\n\tDB\t00H,00H,00H,00H,00H,00H,00H,00H\t\t;\" \"\n\tDB\t030H,030H,030H,030H,030H,00H,030H,00H\t;\"!\"\n\tDB\t06CH,06CH,06CH,00H,00H,00H,00H,00H\t;\"\"\"\n\tDB\t06CH,06CH,0FEH,06CH,0FEH,06CH,06CH,00H\t;\"#\"\n\tDB\t018H,07EH,0D0H,07CH,016H,0FCH,030H,00H\t;\"$\"\n\tDB\t0C0H,0CCH,018H,030H,060H,0CCH,0CH,00H\t;\"%\"\n\tDB\t038H,06CH,038H,076H,0DCH,0CCH,076H,00H\t;\"&\"\n\tDB\t018H,030H,060H,00H,00H,00H,00H,00H\t;\"'\"\n\tDB\t018H,030H,060H,060H,060H,030H,018H,00H\t;\"(\"\n\tDB\t060H,030H,018H,018H,018H,030H,060H,00H\t;\")\"\n\tDB\t00H,06CH,038H,0FEH,038H,06CH,00H,00H\t;\"*\"\n\tDB\t00H,030H,030H,0FCH,030H,030H,00H,00H\t;\"+\"\n\tDB\t00H,00H,00H,00H,00H,030H,030H,060H\t;\",\"\n\tDB\t00H,00H,00H,0FCH,00H,00H,00H,00H\t;\"-\"\n\tDB\t00H,00H,00H,00H,00H,030H,030H,00H\t;\".\"\n\tDB\t00H,0CH,018H,030H,060H,0C0H,00H,00H\t;\"/\"\n\tDB\t078H,0CCH,0DCH,0FCH,0ECH,0CCH,078H,00H\t;\"0\"\n\tDB\t030H,070H,030H,030H,030H,030H,0FCH,00H\t;\"1\"\n\tDB\t078H,0CCH,0CH,018H,030H,060H,0FCH,00H\t;\"2\"\n\tDB\t078H,0CCH,0CH,038H,0CH,0CCH,078H,00H\t;\"3\"\n\tDB\t018H,038H,078H,0D8H,0FCH,018H,018H,00H\t;\"4\"\n\tDB\t0FCH,0C0H,0F8H,0CH,0CH,0CCH,078H,00H\t;\"5\"\n\tDB\t038H,060H,0C0H,0F8H,0CCH,0CCH,078H,00H\t;\"6\"\n\tDB\t0FCH,0CH,018H,030H,060H,060H,060H,00H\t;\"7\"\n\tDB\t078H,0CCH,0CCH,078H,0CCH,0CCH,078H,00H\t;\"8\"\n\tDB\t078H,0CCH,0CCH,07CH,0CH,018H,070H,00H\t;\"9\"\n\tDB\t00H,00H,030H,030H,00H,030H,030H,00H\t;\":\"\n\tDB\t00H,00H,030H,030H,00H,030H,030H,060H\t;\";\"\n\tDB\t018H,030H,060H,0C0H,060H,030H,018H,00H\t;\"<\"\n\tDB\t00H,00H,0FCH,00H,0FCH,00H,00H,00H\t;\"=\"\n\tDB\t060H,030H,018H,0CH,018H,030H,060H,00H\t;\">\"\n\tDB\t078H,0CCH,018H,030H,030H,00H,030H,00H\t;\"?\"\n\tDB\t078H,0CCH,0DCH,0D4H,0DCH,0C0H,078H,00H\t;\"@\"\n\tDB\t078H,0CCH,0CCH,0FCH,0CCH,0CCH,0CCH,00H\t;\"A\"\n\tDB\t0F8H,0CCH,0CCH,0F8H,0CCH,0CCH,0F8H,00H\t;\"B\"\n\tDB\t078H,0CCH,0C0H,0C0H,0C0H,0CCH,078H,00H\t;\"C\"\n\tDB\t0F0H,0D8H,0CCH,0CCH,0CCH,0D8H,0F0H,00H\t;\"D\"\n\tDB\t0FCH,0C0H,0C0H,0F8H,0C0H,0C0H,0FCH,00H\t;\"E\"\n\tDB\t0FCH,0C0H,0C0H,0F8H,0C0H,0C0H,0C0H,00H\t;\"F\"\n\tDB\t078H,0CCH,0C0H,0DCH,0CCH,0CCH,078H,00H\t;\"G\"\n\tDB\t0CCH,0CCH,0CCH,0FCH,0CCH,0CCH,0CCH,00H\t;\"H\"\n\tDB\t0FCH,030H,030H,030H,030H,030H,0FCH,00H\t;\"I\"\n\tDB\t07CH,018H,018H,018H,018H,0D8H,070H,00H\t;\"J\"\n\tDB\t0CCH,0D8H,0F0H,0E0H,0F0H,0D8H,0CCH,00H\t;\"K\"\n\tDB\t0C0H,0C0H,0C0H,0C0H,0C0H,0C0H,0FCH,00H\t;\"L\"\n\tDB\t0C6H,0EEH,0FEH,0D6H,0D6H,0C6H,0C6H,00H\t;\"M\"\n\tDB\t0CCH,0CCH,0ECH,0FCH,0DCH,0CCH,0CCH,00H\t;\"N\"\n\tDB\t078H,0CCH,0CCH,0CCH,0CCH,0CCH,078H,00H\t;\"O\"\n\tDB\t0F8H,0CCH,0CCH,0F8H,0C0H,0C0H,0C0H,00H\t;\"P\"\n\tDB\t078H,0CCH,0CCH,0CCH,0DCH,078H,01CH,00H\t;\"Q\"\n\tDB\t0F8H,0CCH,0CCH,0F8H,0D8H,0CCH,0CCH,00H\t;\"R\"\n\tDB\t078H,0CCH,0C0H,078H,0CH,0CCH,078H,00H\t;\"S\"\n\tDB\t0FCH,030H,030H,030H,030H,030H,030H,00H\t;\"T\"\n\tDB\t0CCH,0CCH,0CCH,0CCH,0CCH,0CCH,078H,00H\t;\"U\"\n\tDB\t0CCH,0CCH,0CCH,0CCH,0CCH,078H,030H,00H\t;\"V\"\n\tDB\t0C6H,0C6H,0D6H,0D6H,0FEH,0EEH,0C6H,00H\t;\"W\"\n\tDB\t0CCH,0CCH,078H,030H,078H,0CCH,0CCH,00H\t;\"X\"\n\tDB\t0CCH,0CCH,0CCH,078H,030H,030H,030H,00H\t;\"Y\"\n\tDB\t0FCH,0CH,018H,030H,060H,0C0H,0FCH,00H\t;\"Z\"\n\tDB\t0F8H,0C0H,0C0H,0C0H,0C0H,0C0H,0F8H,00H\t;\"[\"\n\tDB\t00H,0C0H,060H,030H,018H,0CH,00H,00H\t;\"\\\"\n\tDB\t07CH,0CH,0CH,0CH,0CH,0CH,07CH,00H\t;\"]\"\n\tDB\t010H,038H,06CH,0C6H,00H,00H,00H,00H\t;\"^\"\n\tDB\t00H,00H,00H,00H,00H,00H,00H,0FFH\t;\"_\"\n\tDB\t060H,030H,018H,00H,00H,00H,00H,00H\t;\"`\"\n\tDB\t00H,00H,078H,0CH,07CH,0CCH,07CH,00H\t;\"a\"\n\tDB\t0C0H,0C0H,0F8H,0CCH,0CCH,0CCH,0F8H,00H\t;\"b\"\n\tDB\t00H,00H,078H,0CCH,0C0H,0CCH,078H,00H\t;\"c\"\n\tDB\t0CH,0CH,07CH,0CCH,0CCH,0CCH,07CH,00H\t;\"d\"\n\tDB\t00H,00H,078H,0CCH,0FCH,0C0H,078H,00H\t;\"e\"\n\tDB\t038H,060H,060H,0F8H,060H,060H,060H,00H\t;\"f\"\n\tDB\t00H,00H,07CH,0CCH,0CCH,07CH,0CH,078H\t;\"g\"\n\tDB\t0C0H,0C0H,0F8H,0CCH,0CCH,0CCH,0CCH,00H\t;\"h\"\n\tDB\t030H,00H,070H,030H,030H,030H,078H,00H\t;\"i\"\n\tDB\t030H,00H,070H,030H,030H,030H,030H,0E0H\t;\"j\"\n\tDB\t0C0H,0C0H,0CCH,0D8H,0F0H,0D8H,0CCH,00H\t;\"k\"\n\tDB\t070H,030H,030H,030H,030H,030H,078H,00H\t;\"l\"\n\tDB\t00H,00H,06CH,0FEH,0D6H,0D6H,0C6H,00H\t;\"m\"\n\tDB\t00H,00H,0F8H,0CCH,0CCH,0CCH,0CCH,00H\t;\"n\"\n\tDB\t00H,00H,078H,0CCH,0CCH,0CCH,078H,00H\t;\"o\"\n\tDB\t00H,00H,0F8H,0CCH,0CCH,0F8H,0C0H,0C0H\t;\"p\"\n\tDB\t00H,00H,07CH,0CCH,0CCH,07CH,0CH,0EH\t;\"q\"\n\tDB\t00H,00H,0D8H,0ECH,0C0H,0C0H,0C0H,00H\t;\"r\"\n\tDB\t00H,00H,07CH,0C0H,078H,0CH,0F8H,00H\t;\"s\"\n\tDB\t060H,060H,0F8H,060H,060H,060H,038H,00H\t;\"t\"\n\tDB\t00H,00H,0CCH,0CCH,0CCH,0CCH,07CH,00H\t;\"u\"\n\tDB\t00H,00H,0CCH,0CCH,0CCH,078H,030H,00H\t;\"v\"\n\tDB\t00H,00H,0C6H,0D6H,0D6H,0FEH,06CH,00H\t;\"w\"\n\tDB\t00H,00H,0CCH,078H,030H,078H,0CCH,00H\t;\"x\"\n\tDB\t00H,00H,0CCH,0CCH,0CCH,07CH,0CH,078H\t;\"y\"\n\tDB\t00H,00H,0FCH,018H,030H,060H,0FCH,00H\t;\"z\"\n\tDB\t018H,030H,030H,0E0H,030H,030H,018H,00H\t;\"{\"\n\tDB\t030H,030H,030H,00H,030H,030H,030H,00H\t;\"|\"\n\tDB\t060H,030H,030H,01CH,030H,030H,060H,00H\t;\"}\"\n\tDB\t076H,0DCH,00H,00H,00H,00H,00H,00H\t;\"~\"\n\tDB\t00H,010H,038H,06CH,0C6H,0C6H,0FEH,00H\t;DEL\n\tDB\t03CH,062H,0F8H,060H,0F8H,062H,03CH,000H ; &80 euro symbol\n\tDB\t000H,07EH,07EH,07EH,07EH,07EH,07EH,000H ; &81 block (teletext)\n\tDB\t000H,000H,000H,000H,000H,018H,018H,030H ; &82 single low quotation mark\n\tDB\t000H,00CH,018H,018H,03CH,018H,018H,070H ; &83 small letter f with hook\n\tDB\t000H,000H,000H,000H,000H,06CH,06CH,0D8H ; &84 double low quotation mark\n\tDB\t000H,000H,000H,000H,000H,000H,054H,000H ; &85 horizontal ellipsis\n\tDB\t018H,018H,07EH,018H,018H,018H,018H,000H ; &86 dagger\n\tDB\t018H,018H,07EH,018H,018H,07EH,018H,018H ; &87 double dagger\n\tDB\t010H,038H,06CH,000H,000H,000H,000H,000H ; &88 circumflex accent\n\tDB\t0C6H,0CCH,018H,030H,060H,0DBH,01BH,000H ; &89 per mille\n\tDB\t038H,07CH,0C6H,070H,01CH,0C6H,07CH,000H ; &8A capital S caron\n\tDB\t000H,018H,030H,060H,030H,018H,000H,000H ; &8B left angle quotation mark\n\tDB\t07EH,0D8H,0D8H,0DEH,0D8H,0D8H,07EH,000H ; &8C capital OE ligature\n\tDB\t030H,078H,0FCH,030H,030H,030H,030H,000H ; &8D up arrow (teletext)\n\tDB\t038H,0FEH,00CH,018H,030H,060H,0FEH,000H ; &8E capital Z caron\n\tDB\t000H,020H,060H,0FEH,060H,020H,000H,000H ; &8F left arrow (teletext)\n\tDB\t000H,008H,00CH,0FEH,00CH,008H,000H,000H ; &90 right arrow (teletext)\n\tDB\t030H,030H,018H,000H,000H,000H,000H,000H ; &91 left single quotation mark\n\tDB\t018H,018H,030H,000H,000H,000H,000H,000H ; &92 right single quotation mark\n\tDB\t06CH,06CH,036H,000H,000H,000H,000H,000H ; &93 left double quotation mark\n\tDB\t036H,036H,06CH,000H,000H,000H,000H,000H ; &94 right double quotation mark\n\tDB\t000H,000H,018H,03CH,03CH,018H,000H,000H ; &95 bullet\n\tDB\t000H,000H,000H,0FEH,000H,000H,000H,000H ; &96 en dash\n\tDB\t000H,000H,000H,0FFH,000H,000H,000H,000H ; &97 em dash\n\tDB\t036H,06CH,000H,000H,000H,000H,000H,000H ; &98 small tilde\n\tDB\t0EAH,04EH,04AH,04AH,000H,000H,000H,000H ; &99 trade mark sign\n\tDB\t06CH,038H,07CH,0C0H,078H,00CH,0F8H,000H ; &9A small S caron\n\tDB\t000H,030H,018H,00CH,018H,030H,000H,000H ; &9B right angle quotation mark\n\tDB\t000H,000H,07EH,0DBH,0DFH,0D8H,07FH,000H ; &9C small OE ligature\n\tDB\t0CCH,0CCH,0CCH,0CCH,0CCH,0CCH,0CCH,000H ; &9D double line (teletext)\n\tDB\t06CH,038H,07CH,018H,030H,060H,07CH,000H ; &9E small Z caron\n\tDB\t0CCH,000H,0CCH,0CCH,078H,030H,030H,000H ; &9F capital Y diaeresis\n\tDB\t000H,000H,000H,000H,000H,000H,000H,000H ;\" \"\n\tDB\t018H,000H,018H,018H,018H,018H,018H,000H ;\" \"\n\tDB\t000H,018H,07EH,0D8H,0D8H,07EH,018H,000H ;\" \"\n\tDB\t038H,06CH,060H,0F0H,060H,066H,0FCH,000H ;\" \"\n\tDB\t066H,03CH,066H,03CH,066H,000H,000H,000H ;\" \"\n\tDB\t0C3H,066H,03CH,018H,03CH,018H,018H,000H ;\" \"\n\tDB\t018H,018H,018H,000H,018H,018H,018H,000H ;\" \"\n\tDB\t03CH,060H,03CH,066H,066H,03CH,006H,03CH ;\" \"\n\tDB\t066H,000H,000H,000H,000H,000H,000H,000H ;\" \"\n\tDB\t07EH,081H,09DH,0B1H,0B1H,09DH,081H,07EH ;\" \"\n\tDB\t03CH,06CH,06CH,03EH,000H,07EH,000H,000H ;\" \"\n\tDB\t000H,033H,066H,0CCH,066H,033H,000H,000H ;\" \"\n\tDB\t000H,07EH,006H,006H,000H,000H,000H,000H ;\" \"\n\tDB\t000H,000H,000H,03CH,000H,000H,000H,000H ;\" \"\n\tDB\t07EH,081H,0B9H,0A5H,0B9H,0A5H,081H,07EH ;\" \"\n\tDB\t03CH,000H,000H,000H,000H,000H,000H,000H ;\" \"\n\tDB\t03CH,066H,03CH,000H,000H,000H,000H,000H ;\" \"\n\tDB\t018H,018H,07EH,018H,018H,000H,07EH,000H ;\" \"\n\tDB\t070H,018H,030H,060H,078H,000H,000H,000H ;\" \"\n\tDB\t078H,00CH,018H,00CH,078H,000H,000H,000H ;\" \"\n\tDB\t00CH,018H,030H,000H,000H,000H,000H,000H ;\" \"\n\tDB\t000H,000H,066H,066H,066H,07CH,060H,0C0H ;\" \"\n\tDB\t03EH,07AH,07AH,03AH,01AH,01AH,01AH,000H ;\" \"\n\tDB\t000H,000H,000H,018H,000H,000H,000H,000H ;\" \"\n\tDB\t000H,000H,000H,000H,000H,008H,018H,000H ;\" \"\n\tDB\t030H,070H,030H,030H,030H,000H,000H,000H ;\" \"\n\tDB\t038H,06CH,06CH,038H,000H,07CH,000H,000H ;\" \"\n\tDB\t000H,0CCH,066H,033H,066H,0CCH,000H,000H ;\" \"\n\tDB\t043H,0C6H,04CH,05AH,036H,06AH,0CFH,002H ;\" \"\n\tDB\t040H,0C6H,04CH,05EH,033H,066H,0CCH,00FH ;\" \"\n\tDB\t0C0H,023H,066H,02DH,0DBH,035H,067H,001H ;\" \"\n\tDB\t018H,000H,018H,030H,060H,066H,03CH,000H ;\" \"\n\tDB\t070H,000H,03CH,066H,07EH,066H,066H,000H ;\" \"\n\tDB\t00EH,000H,03CH,066H,07EH,066H,066H,000H ;\" \"\n\tDB\t018H,066H,000H,03CH,066H,07EH,066H,000H ;\" \"\n\tDB\t076H,0DCH,000H,03CH,066H,07EH,066H,000H ;\" \"\n\tDB\t066H,000H,03CH,066H,07EH,066H,066H,000H ;\" \"\n\tDB\t018H,018H,000H,03CH,066H,07EH,066H,000H ;\" \"\n\tDB\t03FH,06CH,0CCH,0FEH,0CCH,0CCH,0CFH,000H ;\" \"\n\tDB\t03CH,066H,060H,060H,060H,066H,03CH,018H ;\" \"\n\tDB\t070H,000H,07EH,060H,07CH,060H,07EH,000H ;\" \"\n\tDB\t00EH,000H,07EH,060H,07CH,060H,07EH,000H ;\" \"\n\tDB\t018H,066H,000H,0FEH,0F0H,0C0H,0FEH,000H ;\" \"\n\tDB\t066H,000H,07EH,060H,07CH,060H,07EH,000H ;\" \"\n\tDB\t070H,000H,07EH,018H,018H,018H,07EH,000H ;\" \"\n\tDB\t00EH,000H,07EH,018H,018H,018H,07EH,000H ;\" \"\n\tDB\t018H,066H,000H,07EH,018H,018H,07EH,000H ;\" \"\n\tDB\t066H,000H,07EH,018H,018H,018H,07EH,000H ;\" \"\n\tDB\t078H,06CH,066H,0F6H,066H,06CH,078H,000H ;\" \"\n\tDB\t076H,0DCH,000H,0C6H,0F6H,0DEH,0C6H,000H ;\" \"\n\tDB\t070H,000H,07CH,0C6H,0C6H,0C6H,07CH,000H ;\" \"\n\tDB\t00EH,000H,07CH,0C6H,0C6H,0C6H,07CH,000H ;\" \"\n\tDB\t018H,066H,000H,07CH,0C6H,0C6H,07CH,000H ;\" \"\n\tDB\t076H,0DCH,000H,07CH,0C6H,0C6H,07CH,000H ;\" \"\n\tDB\t066H,000H,07CH,0C6H,0C6H,0C6H,07CH,000H ;\" \"\n\tDB\t000H,0C6H,06CH,038H,06CH,0C6H,000H,000H ;\" \"\n\tDB\t03EH,066H,06EH,07EH,076H,066H,07CH,000H ;\" \"\n\tDB\t070H,000H,0C6H,0C6H,0C6H,0C6H,07CH,000H ;\" \"\n\tDB\t00EH,000H,0C6H,0C6H,0C6H,0C6H,07CH,000H ;\" \"\n\tDB\t018H,066H,000H,0C6H,0C6H,0C6H,07CH,000H ;\" \"\n\tDB\t066H,000H,0C6H,0C6H,0C6H,0C6H,07CH,000H ;\" \"\n\tDB\t00EH,000H,066H,066H,03CH,018H,018H,000H ;\" \"\n\tDB\t0C0H,0C0H,0FCH,0C6H,0FCH,0C0H,0C0H,000H ;\" \"\n\tDB\t03CH,066H,066H,06CH,066H,066H,06CH,000H ;\" \"\n\tDB\t070H,000H,03CH,006H,03EH,066H,03EH,000H ;\" \"\n\tDB\t00EH,000H,03CH,006H,03EH,066H,03EH,000H ;\" \"\n\tDB\t018H,066H,000H,03EH,066H,0C6H,07EH,000H ;\" \"\n\tDB\t076H,0DCH,000H,03EH,066H,0C6H,07EH,000H ;\" \"\n\tDB\t066H,000H,03CH,006H,03EH,066H,03EH,000H ;\" \"\n\tDB\t018H,018H,000H,03EH,066H,0C6H,07EH,000H ;\" \"\n\tDB\t000H,000H,07EH,01BH,07FH,0D8H,077H,000H ;\" \"\n\tDB\t000H,000H,03CH,060H,060H,060H,03CH,018H ;\" \"\n\tDB\t070H,000H,03CH,066H,07EH,060H,03CH,000H ;\" \"\n\tDB\t00EH,000H,03CH,066H,07EH,060H,03CH,000H ;\" \"\n\tDB\t018H,066H,000H,03CH,07EH,060H,03CH,000H ;\" \"\n\tDB\t066H,000H,03CH,066H,07EH,060H,03CH,000H ;\" \"\n\tDB\t070H,000H,038H,018H,018H,018H,03CH,000H ;\" \"\n\tDB\t00EH,000H,038H,018H,018H,018H,03CH,000H ;\" \"\n\tDB\t018H,066H,000H,038H,018H,018H,03CH,000H ;\" \"\n\tDB\t066H,000H,038H,018H,018H,018H,03CH,000H ;\" \"\n\tDB\t00CH,03EH,00CH,07CH,0CCH,0CCH,078H,000H ;\" \"\n\tDB\t076H,0DCH,000H,07CH,066H,066H,066H,000H ;\" \"\n\tDB\t070H,000H,03CH,066H,066H,066H,03CH,000H ;\" \"\n\tDB\t00EH,000H,03CH,066H,066H,066H,03CH,000H ;\" \"\n\tDB\t018H,066H,000H,03CH,066H,066H,03CH,000H ;\" \"\n\tDB\t076H,0DCH,000H,03CH,066H,066H,03CH,000H ;\" \"\n\tDB\t066H,000H,03CH,066H,066H,066H,03CH,000H ;\" \"\n\tDB\t018H,018H,000H,07EH,000H,018H,018H,000H ;\" \"\n\tDB\t000H,002H,07CH,0CEH,0D6H,0E6H,07CH,080H ;\" \"\n\tDB\t070H,000H,066H,066H,066H,066H,03EH,000H ;\" \"\n\tDB\t00EH,000H,066H,066H,066H,066H,03EH,000H ;\" \"\n\tDB\t018H,066H,000H,066H,066H,066H,03EH,000H ;\" \"\n\tDB\t066H,000H,066H,066H,066H,066H,03EH,000H ;\" \"\n\tDB\t00EH,000H,066H,066H,066H,03EH,006H,03CH ;\" \"\n\tDB\t060H,060H,07CH,066H,066H,07CH,060H,060H ;\" \"\n\tDB\t066H,000H,066H,066H,066H,03EH,006H,03CH ;\" \"\n;\nttxtfont:\n\tDW\t00000H,00011H,00011H,00019H,00015H,00013H,00011H,00011H,08800H,08800H,08800H,08800H,08800H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; NU\n\tDW\t00000H,0000EH,00011H,00011H,0001FH,00011H,00011H,00011H,0F000H,08800H,08800H,0F000H,08800H,08800H,08800H,00000H,00000H,00000H,00000H,00000H ; AR\n\tDW\t00000H,0000EH,00011H,00011H,0001FH,00011H,00011H,00011H,07000H,08800H,08000H,09800H,08800H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; AG\n\tDW\t00000H,0000EH,00011H,00011H,0001FH,00011H,00011H,00011H,08800H,08800H,05000H,02000H,02000H,02000H,02000H,00000H,00000H,00000H,00000H,00000H ; AY\n\tDW\t00000H,0000EH,00011H,00011H,0001FH,00011H,00011H,00011H,0F000H,08800H,08800H,0F000H,08800H,08800H,0F000H,00000H,00000H,00000H,00000H,00000H ; AB\n\tDW\t00000H,0000EH,00011H,00011H,0001FH,00011H,00011H,00011H,08800H,0D800H,0A800H,0A800H,08800H,08800H,08800H,00000H,00000H,00000H,00000H,00000H ; AM\n\tDW\t00000H,0000EH,00011H,00011H,0001FH,00011H,00011H,00011H,07000H,08800H,08000H,08000H,08000H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; AC\n\tDW\t00000H,0000EH,00011H,00011H,0001FH,00011H,00011H,00011H,08800H,08800H,08800H,0A800H,0A800H,0D800H,08800H,00000H,00000H,00000H,00000H,00000H ; AW\n\tDW\t00000H,0001FH,00010H,00010H,0001EH,00010H,00010H,00010H,08000H,08000H,08000H,08000H,08000H,08000H,0F800H,00000H,00000H,00000H,00000H,00000H ; FL\n\tDW\t00000H,0000EH,00011H,00010H,0000EH,00001H,00011H,0000EH,0F800H,02000H,02000H,02000H,02000H,02000H,02000H,00000H,00000H,00000H,00000H,00000H ; ST\n\tDW\t00000H,0001FH,00010H,00010H,0001EH,00010H,00010H,0001FH,0F000H,08800H,08800H,0F000H,08800H,08800H,0F000H,00000H,00000H,00000H,00000H,00000H ; EB\n\tDW\t00000H,0000EH,00011H,00010H,0000EH,00001H,00011H,0000EH,0F000H,08800H,08800H,0F000H,08800H,08800H,0F000H,00000H,00000H,00000H,00000H,00000H ; SB\n\tDW\t00000H,00011H,00011H,00019H,00015H,00013H,00011H,00011H,08800H,08800H,08800H,0F800H,08800H,08800H,08800H,00000H,00000H,00000H,00000H,00000H ; NH\n\tDW\t00000H,0001CH,00012H,00011H,00011H,00011H,00012H,0001CH,08800H,08800H,08800H,0F800H,08800H,08800H,08800H,00000H,00000H,00000H,00000H,00000H ; DH\n\tDW\t00000H,0000EH,00011H,00010H,0000EH,00001H,00011H,0000EH,07000H,08800H,08800H,08800H,08800H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; SO\n\tDW\t00000H,0000EH,00011H,00010H,0000EH,00001H,00011H,0000EH,07000H,02000H,02000H,02000H,02000H,02000H,07000H,00000H,00000H,00000H,00000H,00000H ; SI\n\tDW\t00000H,0001CH,00012H,00011H,00011H,00011H,00012H,0001CH,08000H,08000H,08000H,08000H,08000H,08000H,0F800H,00000H,00000H,00000H,00000H,00000H ; DL\n\tDW\t00000H,0000EH,00011H,00010H,00013H,00011H,00011H,0000EH,0F000H,08800H,08800H,0F000H,08800H,08800H,08800H,00000H,00000H,00000H,00000H,00000H ; GR\n\tDW\t00000H,0000EH,00011H,00010H,00013H,00011H,00011H,0000EH,07000H,08800H,08000H,09800H,08800H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; GG\n\tDW\t00000H,0000EH,00011H,00010H,00013H,00011H,00011H,0000EH,08800H,08800H,05000H,02000H,02000H,02000H,02000H,00000H,00000H,00000H,00000H,00000H ; GY\n\tDW\t00000H,0000EH,00011H,00010H,00013H,00011H,00011H,0000EH,0F000H,08800H,08800H,0F000H,08800H,08800H,0F000H,00000H,00000H,00000H,00000H,00000H ; GB\n\tDW\t00000H,0000EH,00011H,00010H,00013H,00011H,00011H,0000EH,08800H,0D800H,0A800H,0A800H,08800H,08800H,08800H,00000H,00000H,00000H,00000H,00000H ; GM\n\tDW\t00000H,0000EH,00011H,00010H,00013H,00011H,00011H,0000EH,07000H,08800H,08000H,08000H,08000H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; GC\n\tDW\t00000H,0000EH,00011H,00010H,00013H,00011H,00011H,0000EH,08800H,08800H,08800H,0A800H,0A800H,0D800H,08800H,00000H,00000H,00000H,00000H,00000H ; GW\n\tDW\t00000H,0000EH,00011H,00010H,00010H,00010H,00011H,0000EH,0E000H,09000H,08800H,08800H,08800H,09000H,0E000H,00000H,00000H,00000H,00000H,00000H ; CD\n\tDW\t00000H,0000EH,00011H,00010H,00010H,00010H,00011H,0000EH,07000H,08800H,08000H,09800H,08800H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; CG\n\tDW\t00000H,0000EH,00011H,00010H,0000EH,00001H,00011H,0000EH,07000H,08800H,08000H,09800H,08800H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; SG\n\tDW\t00000H,0001FH,00010H,00010H,0001EH,00010H,00010H,0001FH,07000H,08800H,08000H,07000H,00800H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; ES\n\tDW\t00000H,0001EH,00011H,00011H,0001EH,00011H,00011H,0001EH,0F000H,08800H,08800H,0F000H,08800H,08800H,0F000H,00000H,00000H,00000H,00000H,00000H ; BB\n\tDW\t00000H,00011H,00011H,00019H,00015H,00013H,00011H,00011H,0F000H,08800H,08800H,0F000H,08800H,08800H,0F000H,00000H,00000H,00000H,00000H,00000H ; NB\n\tDW\t00000H,00011H,00011H,00011H,0001FH,00011H,00011H,00011H,07000H,08800H,08000H,09800H,08800H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; HG\n\tDW\t00000H,0001EH,00011H,00011H,0001EH,00011H,00011H,00011H,07000H,08800H,08000H,09800H,08800H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; RG\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \"!\"\n\tDW\t00000H,0700EH,0700EH,0700EH,0700EH,0700EH,0700EH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \"\"\"\n\tDW\t00000H,0700EH,0700EH,0700EH,0700EH,0FC3FH,0FC3FH,0700EH,0700EH,0FC3FH,0FC3FH,0700EH,0700EH,0700EH,0700EH,00000H,00000H,00000H,00000H,00000H ; \"#\"\n\tDW\t00000H,0F00FH,0F81FH,09C39H,08C31H,08031H,08039H,0F01FH,0F80FH,09C01H,08C01H,08C31H,09C39H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"$\"\n\tDW\t00000H,0003CH,00C3CH,01C3CH,0383CH,07000H,0E000H,0C001H,08003H,00007H,0000EH,03C1CH,03C38H,03C30H,03C00H,00000H,00000H,00000H,00000H,00000H ; \"%\"\n\tDW\t00000H,0000EH,0001FH,0803BH,08031H,0803BH,0001FH,0000EH,0001FH,08C3BH,0DC31H,0F830H,0F838H,0DC1FH,08C0FH,00000H,00000H,00000H,00000H,00000H ; \"&\"\n\tDW\t00000H,08001H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \"'\"\n\tDW\t00000H,06000H,0E000H,0C001H,08003H,00007H,00006H,00006H,00006H,00006H,00007H,08003H,0C001H,0E000H,06000H,00000H,00000H,00000H,00000H,00000H ; \"(\"\n\tDW\t00000H,00006H,00007H,08003H,0C001H,0E000H,06000H,06000H,06000H,06000H,0E000H,0C001H,08003H,00007H,00006H,00000H,00000H,00000H,00000H,00000H ; \")\"\n\tDW\t00000H,08001H,08001H,08C31H,09C39H,0F81FH,0F00FH,08001H,08001H,0F00FH,0F81FH,09C39H,08C31H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \"*\"\n\tDW\t00000H,00000H,00000H,08001H,08001H,08001H,08001H,0F81FH,0F81FH,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \"+\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,08001H,08001H,08001H,08003H,00007H,00006H,00000H,00000H,00000H ; \",\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \"-\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \".\"\n\tDW\t00000H,00000H,00C00H,01C00H,03800H,07000H,0E000H,0C001H,08003H,00007H,0000EH,0001CH,00038H,00030H,00000H,00000H,00000H,00000H,00000H,00000H ; \"/\"\n\tDW\t00000H,0C003H,0E007H,0700EH,0381CH,01C38H,00C30H,00C30H,00C30H,00C30H,01C38H,0381CH,0700EH,0E007H,0C003H,00000H,00000H,00000H,00000H,00000H ; \"0\"\n\tDW\t00000H,08001H,08001H,0800FH,0800FH,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"1\"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00C00H,01C00H,0F803H,0F007H,0000EH,0001CH,00038H,00030H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \"2\"\n\tDW\t00000H,0FC3FH,0FC3FH,01C00H,03800H,07000H,0E000H,0F801H,0FC01H,00C00H,00C00H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"3\"\n\tDW\t00000H,07000H,0F000H,0F001H,0B003H,03007H,0300EH,0301CH,03038H,0FC3FH,0FC3FH,03000H,03000H,03000H,03000H,00000H,00000H,00000H,00000H,00000H ; \"4\"\n\tDW\t00000H,0FC3FH,0FC3FH,00030H,00030H,0F03FH,0F83FH,01C00H,00C00H,00C00H,00C00H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"5\"\n\tDW\t00000H,0F001H,0F007H,0000FH,0001CH,00038H,00030H,0F03FH,0F83FH,01C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"6\"\n\tDW\t00000H,0FC3FH,0FC3FH,00C00H,01C00H,03800H,07000H,0E000H,0C001H,08003H,00007H,00006H,00006H,00006H,00006H,00000H,00000H,00000H,00000H,00000H ; \"7\"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,01C38H,0F81FH,0F81FH,01C38H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"8\"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00C00H,01C00H,03800H,0F000H,0E00FH,0800FH,00000H,00000H,00000H,00000H,00000H ; \"9\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,08001H,08001H,00000H,00000H,00000H,00000H,00000H,00000H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \":\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,08001H,08001H,00000H,00000H,00000H,00000H,08001H,08001H,08001H,08003H,00007H,00006H,00000H,00000H,00000H ; \";\"\n\tDW\t00000H,06000H,0E000H,0C001H,08003H,00007H,0000EH,0001CH,0001CH,0000EH,00007H,08003H,0C001H,0E000H,06000H,00000H,00000H,00000H,00000H,00000H ; \"<\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0FC3FH,0FC3FH,00000H,00000H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \"=\"\n\tDW\t00000H,00006H,00007H,08003H,0C001H,0E000H,07000H,03800H,03800H,07000H,0E000H,0C001H,08003H,00007H,00006H,00000H,00000H,00000H,00000H,00000H ; \">\"\n\tDW\t00000H,0E00FH,0F01FH,03838H,01830H,03800H,07000H,0E000H,0C001H,08001H,08001H,00000H,00000H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \"?\"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,0FC31H,0FC31H,08C31H,08C31H,0FC31H,0FC31H,00030H,00038H,0F01FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"@\"\n\tDW\t00000H,08001H,0C003H,0E007H,0700EH,0381CH,01C38H,00C30H,00C30H,0FC3FH,0FC3FH,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \"A\"\n\tDW\t00000H,0F03FH,0F83FH,01C30H,00C30H,00C30H,01C30H,0F83FH,0F83FH,01C30H,00C30H,00C30H,01C30H,0F83FH,0F03FH,00000H,00000H,00000H,00000H,00000H ; \"B\"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00030H,00030H,00030H,00030H,00030H,00030H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"C\"\n\tDW\t00000H,0F03FH,0F83FH,01C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,01C30H,0F83FH,0F03FH,00000H,00000H,00000H,00000H,00000H ; \"D\"\n\tDW\t00000H,0FC3FH,0FC3FH,00030H,00030H,00030H,00030H,0F03FH,0F03FH,00030H,00030H,00030H,00030H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \"E\"\n\tDW\t00000H,0FC3FH,0FC3FH,00030H,00030H,00030H,00030H,0F03FH,0F03FH,00030H,00030H,00030H,00030H,00030H,00030H,00000H,00000H,00000H,00000H,00000H ; \"F\"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00030H,00030H,00030H,00030H,03C30H,03C30H,00C30H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \"G\"\n\tDW\t00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,0FC3FH,0FC3FH,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \"H\"\n\tDW\t00000H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"I\"\n\tDW\t00000H,00C00H,00C00H,00C00H,00C00H,00C00H,00C00H,00C00H,00C00H,00C00H,00C00H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"J\"\n\tDW\t00000H,01830H,03830H,07030H,0E030H,0C031H,08033H,0003FH,0003FH,08033H,0C031H,0E030H,07030H,03830H,01830H,00000H,00000H,00000H,00000H,00000H ; \"K\"\n\tDW\t00000H,00030H,00030H,00030H,00030H,00030H,00030H,00030H,00030H,00030H,00030H,00030H,00030H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \"L\"\n\tDW\t00000H,00C30H,00C30H,01C38H,03C3CH,07C3EH,0EC37H,0CC33H,08C31H,08C31H,00C30H,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \"M\"\n\tDW\t00000H,00C30H,00C30H,00C38H,00C3CH,00C3EH,00C37H,08C33H,0CC31H,0EC30H,07C30H,03C30H,01C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \"N\"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"O\"\n\tDW\t00000H,0F03FH,0F83FH,01C30H,00C30H,00C30H,01C30H,0F83FH,0F03FH,00030H,00030H,00030H,00030H,00030H,00030H,00000H,00000H,00000H,00000H,00000H ; \"P\"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,00C30H,00C30H,0CC30H,0EC30H,07830H,03838H,0FC1FH,0CC0FH,00000H,00000H,00000H,00000H,00000H ; \"Q\"\n\tDW\t00000H,0F03FH,0F83FH,01C30H,00C30H,00C30H,01C30H,0F83FH,0F03FH,0C031H,0E030H,07030H,03830H,01C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \"R\"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00030H,00038H,0F01FH,0F80FH,01C00H,00C00H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"S\"\n\tDW\t00000H,0FC3FH,0FC3FH,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \"T\"\n\tDW\t00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"U\"\n\tDW\t00000H,00C30H,00C30H,00C30H,00C30H,01C38H,01818H,0381CH,0300CH,0700EH,0E007H,0C003H,0C003H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \"V\"\n\tDW\t00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,08C31H,08C31H,08C31H,08C31H,08C31H,0FC3FH,0F81FH,0700EH,00000H,00000H,00000H,00000H,00000H ; \"W\"\n\tDW\t00000H,00C30H,00C30H,01C38H,0381CH,0700EH,0E007H,0C003H,0C003H,0E007H,0700EH,0381CH,01C38H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \"X\"\n\tDW\t00000H,00C30H,00C30H,01C38H,0381CH,0700EH,0E007H,0C003H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \"Y\"\n\tDW\t00000H,0FC3FH,0FC3FH,01C00H,03800H,07000H,0E000H,0C001H,08003H,00007H,0000EH,0001CH,00038H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \"Z\"\n\tDW\t00000H,0E007H,0E007H,00006H,00006H,00006H,00006H,00006H,00006H,00006H,00006H,00006H,00006H,0E007H,0E007H,00000H,00000H,00000H,00000H,00000H ; \"[\"\n\tDW\t00000H,00000H,00030H,00038H,0001CH,0000EH,00007H,08003H,0C001H,0E000H,07000H,03800H,01C00H,00C00H,00000H,00000H,00000H,00000H,00000H,00000H ; \"\\\"\n\tDW\t00000H,0E007H,0E007H,06000H,06000H,06000H,06000H,06000H,06000H,06000H,06000H,06000H,06000H,0E007H,0E007H,00000H,00000H,00000H,00000H,00000H ; \"]\"\n\tDW\t00000H,08001H,0C003H,0E007H,0700EH,0381CH,01818H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \"^\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,0FFFFH,0FFFFH,00000H,00000H ; \"_\"\n\tDW\t00000H,00006H,00007H,08003H,0C001H,0E000H,06000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \"`\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0F00FH,0F80FH,01C00H,00C00H,0FC1FH,0FC3FH,00C30H,00C30H,0FC3FH,0FC1FH,00000H,00000H,00000H,00000H,00000H ; \"a\"\n\tDW\t00000H,00030H,00030H,00030H,00030H,0F03FH,0F83FH,01C30H,00C30H,00C30H,00C30H,00C30H,01C30H,0F83FH,0F03FH,00000H,00000H,00000H,00000H,00000H ; \"b\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0FC0FH,0FC1FH,00038H,00030H,00030H,00030H,00030H,00038H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \"c\"\n\tDW\t00000H,00C00H,00C00H,00C00H,00C00H,0FC0FH,0FC1FH,00C38H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \"d\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00030H,00038H,0F01FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"e\"\n\tDW\t00000H,03000H,0F000H,0C001H,08001H,08001H,08001H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \"f\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0FC0FH,0FC1FH,00C38H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00C00H,01C00H,0F80FH,0F00FH,00000H ; \"g\"\n\tDW\t00000H,00030H,00030H,00030H,00030H,0F03FH,0F83FH,01C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \"h\"\n\tDW\t00000H,08001H,08001H,00000H,00000H,0800FH,0800FH,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"i\"\n\tDW\t00000H,08001H,08001H,00000H,00000H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08003H,0000FH,0000CH,00000H ; \"j\"\n\tDW\t00000H,0000CH,0000CH,0000CH,0180CH,0380CH,0700CH,0E00CH,0C00FH,0800FH,0C00DH,0E00CH,0700CH,0380CH,0180CH,00000H,00000H,00000H,00000H,00000H ; \"k\"\n\tDW\t00000H,0800FH,0800FH,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"l\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0303EH,0F83FH,0FC33H,08C31H,08C31H,08C31H,08C31H,08C31H,08C31H,08C31H,00000H,00000H,00000H,00000H,00000H ; \"m\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0F03FH,0F83FH,01C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \"n\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"o\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0F03FH,0F83FH,01C30H,00C30H,00C30H,00C30H,00C30H,01C30H,0F83FH,0F03FH,00030H,00030H,00030H,00030H,00000H ; \"p\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0FC0FH,0FC1FH,00C38H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00C00H,00C00H,00C00H,00C00H,00000H ; \"q\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0F819H,0F81BH,0001FH,0001EH,00018H,00018H,00018H,00018H,00018H,00018H,00000H,00000H,00000H,00000H,00000H ; \"r\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0FC0FH,0FC1FH,00030H,00030H,0F01FH,0F80FH,00C00H,00C00H,0F83FH,0F03FH,00000H,00000H,00000H,00000H,00000H ; \"s\"\n\tDW\t00000H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,08001H,0C001H,0F000H,03000H,00000H,00000H,00000H,00000H,00000H ; \"t\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \"u\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00C30H,00C30H,00C30H,01C38H,01818H,0381CH,0700EH,0E007H,0C003H,08001H,00000H,00000H,00000H,00000H,00000H ; \"v\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00C30H,00C30H,00C30H,00C30H,08C31H,08C31H,08C31H,0FC3FH,0F81FH,0700EH,00000H,00000H,00000H,00000H,00000H ; \"w\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00C30H,01C38H,0781EH,0F00FH,0C003H,0C003H,0F00FH,0781EH,01C38H,00C30H,00000H,00000H,00000H,00000H,00000H ; \"x\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00C00H,01C00H,0F80FH,0F00FH,00000H ; \"y\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0FC3FH,0FC3FH,03800H,07000H,0E001H,08007H,0000EH,0001CH,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \"z\"\n\tDW\t00000H,0F000H,0F001H,08001H,08001H,08003H,00003H,0000FH,0000FH,00003H,08003H,08001H,08001H,0F000H,0F000H,00000H,00000H,00000H,00000H,00000H ; \"{\"\n\tDW\t00000H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \"|\"\n\tDW\t00000H,0000FH,0800FH,08001H,08001H,0C001H,0C000H,0F000H,0F000H,0C000H,0C001H,08001H,08001H,0000FH,0000FH,00000H,00000H,00000H,00000H,00000H ; \"}\"\n\tDW\t00000H,0000EH,00C1FH,0DC3BH,0F831H,07000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \"~\"\n\tDW\t00000H,08001H,0C003H,0C003H,06006H,06006H,0300CH,0300CH,01818H,01818H,00C30H,00C30H,00C30H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; &7F DEL\n\tDW\t00000H,0F003H,0F807H,01C0EH,00C0CH,0C03FH,0C03FH,0000CH,0000CH,0803FH,0803FH,00C0CH,01C0EH,0F807H,0F003H,00000H,00000H,00000H,00000H,00000H ; &80 euro symbol\n\tDW\t00000H,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; &81 block (teletext)\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,08003H,08003H,08001H,08003H,00007H,0000EH,00000H,00000H,00000H ; &82 single low quotation mark\n\tDW\t00000H,07000H,0F000H,0C001H,08001H,08001H,08001H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08003H,0000FH,0000EH,00000H ; &83 small letter f with hook\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,01C0EH,01C0EH,00C06H,01C0EH,0381CH,07038H,00000H,00000H,00000H ; &84 double low quotation mark\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,09819H,09819H,00000H,00000H,00000H,00000H,00000H ; &85 horizontal ellipsis\n\tDW\t00000H,08001H,08001H,08001H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; &86 dagger\n\tDW\t00000H,08001H,08001H,08001H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,0F00FH,0F00FH,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; &87 double dagger\n\tDW\t08001H,0C003H,06006H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &88 circumflex accent\n\tDW\t00000H,03038H,0706CH,0E06CH,0C039H,08003H,00007H,0000EH,0001CH,00038H,00070H,01C67H,0B60DH,0B60DH,01C07H,00000H,00000H,00000H,00000H,00000H ; &89 per mille\n\tDW\t06006H,0E007H,0C003H,0F00FH,0F81FH,01C38H,00C30H,00038H,0F01FH,0F80FH,01C00H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; &8A capital S caron\n\tDW\t00000H,00000H,00000H,08001H,08003H,00007H,0000EH,0000CH,0000EH,00007H,08003H,08001H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &8B left angle quotation mark\n\tDW\t00000H,0FC0FH,0FC1FH,08039H,08031H,08031H,08031H,0F831H,0F831H,08031H,08031H,08031H,08039H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; &8C capital OE ligature\n\tDW\t00000H,00000H,08001H,0C003H,0E007H,0F00FH,0B81DH,09C39H,08C31H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H,00000H ; &8D up arrow (teletext)\n\tDW\t06006H,0E007H,0C003H,0FC3FH,0FC3FH,03800H,07000H,0E000H,0C001H,08003H,00007H,0000EH,0001CH,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; &8E capital Z caron\n\tDW\t00000H,00000H,08001H,08003H,00007H,0000EH,0001CH,0FC3FH,0FC3FH,0001CH,0000EH,00007H,08003H,08001H,00000H,00000H,00000H,00000H,00000H,00000H ; &8F left arrow (teletext)\n\tDW\t00000H,00000H,08001H,0C001H,0E000H,07000H,03800H,0FC3FH,0FC3FH,03800H,07000H,0E000H,0C001H,08001H,00000H,00000H,00000H,00000H,00000H,00000H ; &90 right arrow (teletext)\n\tDW\t00000H,07000H,0E000H,0C001H,08001H,0C001H,0C001H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &91 left single quotation mark\n\tDW\t00000H,08003H,08003H,08001H,08003H,00007H,0000EH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &92 right single quotation mark\n\tDW\t00000H,01C0EH,0381CH,07038H,06030H,07038H,07038H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &93 left double quotation mark\n\tDW\t00000H,01C0EH,01C0EH,00C06H,01C0EH,0381CH,07038H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &94 right double quotation mark\n\tDW\t00000H,00000H,00000H,00000H,00000H,08001H,0C003H,0E007H,0E007H,0C003H,08001H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &95 bullet\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,0F81FH,0F81FH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &96 en dash\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,0FE7FH,0FE7FH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &97 em dash\n\tDW\t06007H,0C00DH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &98 small tilde\n\tDW\t00000H,00000H,0C67EH,0C67EH,0EE18H,0FE18H,0D618H,0D618H,0C618H,0C618H,0C618H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &99 trade mark sign\n\tDW\t00000H,06006H,0E007H,0C003H,00000H,0FC0FH,0FC1FH,00038H,00038H,0F01FH,0F80FH,01C00H,01C00H,0F83FH,0F03FH,00000H,00000H,00000H,00000H,00000H ; &9A small S caron\n\tDW\t00000H,00000H,00000H,08001H,0C001H,0E000H,07000H,03000H,07000H,0E000H,0C001H,08001H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &9B right angle quotation mark\n\tDW\t00000H,00000H,00000H,00000H,00000H,0780EH,0FC1FH,0CC3BH,08C31H,0FC31H,0FC31H,08031H,0C03BH,0FC1FH,07C0EH,00000H,00000H,00000H,00000H,00000H ; &9C small OE ligature\n\tDW\t00000H,0381CH,0381CH,0381CH,0381CH,0381CH,0381CH,0381CH,0381CH,0381CH,0381CH,0381CH,0381CH,0381CH,0381CH,00000H,00000H,00000H,00000H,00000H ; &9D double line (teletext)\n\tDW\t00000H,06006H,0E007H,0C003H,00000H,0FC3FH,0FC3FH,03800H,07000H,0E001H,08007H,0000EH,0001CH,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; &9E small Z caron\n\tDW\t0300CH,0300CH,0300CH,00000H,00C30H,01C38H,0381CH,0700EH,0E007H,0C003H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; &9F capital Y diaeresis\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &A0 non-break space\n\tDW\t00000H,00000H,00000H,00000H,00000H,08001H,08001H,00000H,00000H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,08001H,08001H,0FC0FH,0FC1FH,08039H,08031H,08031H,08031H,08031H,08039H,0FC1FH,0FC0FH,08001H,08001H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0F003H,0F807H,01C0EH,00C0CH,0000CH,0000CH,0803FH,0803FH,0000CH,0000CH,0000CH,0000CH,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00C30H,01C38H,0F81FH,0F00FH,0700EH,0700EH,0F00FH,0F81FH,01C38H,00C30H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00C30H,01C38H,0381CH,0700EH,0FC3FH,0FC3FH,08001H,08001H,0FC3FH,0FC3FH,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,08001H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,08001H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00030H,00038H,0F01FH,0F81FH,01C38H,01C38H,0F81FH,0F80FH,01C00H,00C00H,00C30H,01C38H,0F81FH,0F00FH,00000H ; \" \"\n\tDW\t01818H,01818H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,0CC33H,0EC37H,06C36H,00C36H,00C36H,00C36H,06C36H,0EC37H,0CC33H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H ; \" \"\n\tDW\t00000H,0F00FH,0F80FH,01C00H,00C00H,0FC0FH,0FC1FH,00C38H,00C38H,0FC1FH,0FC0FH,00000H,00000H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,01C0EH,0381CH,07038H,07038H,0381CH,01C0EH,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0FC3FH,0FC3FH,00C00H,00C00H,00C00H,00C00H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,0E007H,0E007H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,0CC37H,0EC37H,06C36H,06C36H,0CC37H,08C37H,0CC37H,0EC36H,06C36H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H ; \" \"\n\tDW\t00000H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t0C003H,0E007H,0700EH,0381CH,0700EH,0E007H,0C003H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,08001H,08001H,08001H,08001H,0FC3FH,0FC3FH,08001H,08001H,08001H,08001H,00000H,00000H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0C00FH,0E00FH,07000H,07000H,0E003H,0C007H,0000EH,0000CH,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0C00FH,0E00FH,07000H,07000H,0E00FH,0E00FH,07000H,07000H,0E00FH,0C00FH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,06000H,0E000H,0C001H,08003H,00007H,00006H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,06030H,06030H,06030H,06030H,06030H,06030H,06030H,0F830H,0FC3FH,08C3FH,00030H,00030H,00030H,00030H,00000H ; \" \"\n\tDW\t00000H,08C0FH,08C1FH,08C39H,08C31H,08C31H,08C39H,08C1FH,08C0FH,08C01H,08C01H,08C01H,08C01H,08C01H,08C01H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,08001H,08001H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,08001H,08001H,08003H,00007H,00006H,00000H ; \" \"\n\tDW\t00000H,08003H,08007H,0800FH,0800DH,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,07038H,0381CH,01C0EH,01C0EH,0381CH,07038H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0000CH,0000CH,0000CH,0000CH,0000CH,0000CH,0000CH,0000CH,01C0CH,03C0CH,07C00H,0EC00H,0CC01H,08C01H,0FC01H,0FC01H,00C00H,00C00H,00000H ; \" \"\n\tDW\t00000H,00030H,00030H,00030H,00030H,00030H,00030H,00030H,00030H,0F831H,0FC31H,00C00H,00C00H,07C00H,0F800H,0C001H,08001H,0FC01H,0FC01H,00000H ; \" \"\n\tDW\t00000H,0003EH,0003FH,08003H,08003H,0003FH,0003FH,08003H,08003H,01C3FH,03C3EH,07C00H,0EC00H,0CC01H,08C01H,0FC01H,0FC01H,00C00H,00C00H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,08001H,08001H,00000H,00000H,08001H,08001H,08003H,00007H,0000EH,0001CH,00C18H,01C1CH,0F80FH,0F00FH,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t01807H,0B80FH,0F01DH,0E018H,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t0300CH,0300CH,0300CH,00000H,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,06006H,06006H,0C003H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0FC0FH,0FC1FH,08039H,08031H,08031H,08031H,0F83FH,0F83FH,08031H,08031H,08031H,08031H,0FC31H,0FC31H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00030H,00030H,00030H,00030H,00030H,00030H,00C30H,01C38H,0F81FH,0F00FH,08001H,08003H,00007H,00006H,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,0FC3FH,0FC3FH,00030H,00030H,0F03FH,0F03FH,00030H,00030H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,0FC3FH,0FC3FH,00030H,00030H,0F03FH,0F03FH,00030H,00030H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,0FC3FH,0FC3FH,00030H,00030H,0F03FH,0F03FH,00030H,00030H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t0300CH,0300CH,0300CH,00000H,00000H,0FC3FH,0FC3FH,00030H,00030H,0F03FH,0F03FH,00030H,00030H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t0300CH,0300CH,0300CH,00000H,00000H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0F00FH,0F80FH,01C0CH,00C0CH,00C0CH,00C0CH,08C3FH,08C3FH,00C0CH,00C0CH,00C0CH,01C0CH,0F80FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t01807H,0B80FH,0F01DH,0E018H,00000H,00C30H,00C3CH,00C3EH,00C37H,08C33H,0CC31H,0EC30H,07C30H,03C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t01807H,0B80FH,0F01DH,0E018H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t0300CH,0300CH,0300CH,00000H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,01818H,0381CH,0700EH,0E007H,0C003H,0E007H,0700EH,0381CH,01818H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,03C30H,07C30H,0EC30H,0CC31H,08C33H,00C37H,00C3EH,00C3CH,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t0300CH,0300CH,0300CH,00000H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00C30H,01C38H,0381CH,0700EH,0E007H,0C003H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00030H,00030H,0F03FH,0F83FH,01C30H,00C30H,00C30H,01C30H,0F83FH,0F03FH,00030H,00030H,00030H,00030H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0C00FH,0E01FH,07038H,03030H,03030H,03030H,0F031H,0F831H,01C30H,00C30H,00C30H,01C30H,0F831H,0F031H,00030H,00030H,00030H,00030H,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,0F00FH,0F80FH,01C00H,00C00H,0FC0FH,0FC1FH,00C38H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,0F00FH,0F80FH,01C00H,00C00H,0FC0FH,0FC1FH,00C38H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,0F00FH,0F80FH,01C00H,00C00H,0FC0FH,0FC1FH,00C38H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t01807H,0B80FH,0F01DH,0E018H,00000H,0F00FH,0F80FH,01C00H,00C00H,0FC0FH,0FC1FH,00C38H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0300CH,0300CH,0300CH,00000H,0F00FH,0F80FH,01C00H,00C00H,0FC0FH,0FC1FH,00C38H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,06006H,0C003H,08001H,0F00FH,0F80FH,01C00H,00C00H,0FC0FH,0FC1FH,00C38H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0781EH,0FC1FH,08C03H,08C01H,0FC1FH,0FC3FH,08031H,08031H,0F83FH,0F81FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0FC0FH,0FC1FH,00038H,00030H,00030H,00030H,00030H,00038H,0FC1FH,0FC0FH,0C000H,0C001H,08003H,00003H,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00030H,00038H,0F01FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00030H,00038H,0F01FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00030H,00038H,0F01FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0300CH,0300CH,0300CH,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00030H,00038H,0F01FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,0800FH,0800FH,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,0800FH,0800FH,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,0800FH,0800FH,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0300CH,0300CH,0300CH,00000H,0800FH,0800FH,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0601EH,0E01FH,0C003H,0E007H,0700EH,0380CH,01C00H,00C00H,0FC0FH,0FC1FH,01C38H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t01807H,0B80FH,0F01DH,0E018H,00000H,0F03FH,0F83FH,01C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t01807H,0B80FH,0F01DH,0E018H,00000H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0300CH,0300CH,0300CH,00000H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,08001H,08001H,00000H,00000H,0FC3FH,0FC3FH,00000H,00000H,08001H,08001H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0F00FH,0F81FH,07C38H,0EC30H,0CC31H,08C33H,00C37H,01C3EH,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0300CH,0300CH,0300CH,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00C00H,01C00H,0F80FH,0F00FH,00000H ; \" \"\n\tDW\t00000H,00030H,00030H,00030H,00030H,0F03FH,0F83FH,01C30H,00C30H,00C30H,00C30H,00C30H,01C30H,0F83FH,0F03FH,00030H,00030H,00030H,00030H,00000H ; \" \"\n\tDW\t00000H,0300CH,0300CH,0300CH,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00C00H,01C00H,0F80FH,0F00FH,00000H ; \" \"\n;\n; Structure {x%,y%}\n;\nptfmt:\tdd\t8\t\t; Total length (bytes)\nptlnk0:\tdd\tptlnk1 - ptlnk0\t; Link to next member\n\tdb\t'x%',0\t\t; Member name\n\tdd\t0\t\t; Member offset (bytes)\nptlnk1:\tdd\t0\t\t; Terminating link\n\tdb\t'y%',0\t\t; Member name\n\tdd\t4\t\t; Member offset (bytes)\n;\n; Structure {a&,b&,c&,d&}\n;\nb4fmt:\tdd\t4\t\t; Total length (bytes)\nb4lnk0:\tdd\tb4lnk1 - b4lnk0\t; Link to next member\n\tdb\t'a&',0\t\t; Member name\n\tdd\t0\t\t; Member offset (bytes)\nb4lnk1:\tdd\tb4lnk2 - b4lnk1\t; Link to next member\n\tdb\t'b&',0\t\t; Member name\n\tdd\t1\t\t; Member offset (bytes)\nb4lnk2:\tdd\tb4lnk3 - b4lnk2\t; Link to next member\n\tdb\t'c&',0\t\t; Member name\n\tdd\t2\t\t; Member offset (bytes)\nb4lnk3:\tdd\t0\t\t; Terminating link\n\tdb\t'd&',0\t\t; Member name\n\tdd\t3\t\t; Member offset (bytes)\n;\n; FastVar token type values:\n;\nfvtab:\tdb\t1\t\t; &19 v&  Unsigned byte (8 bits)\n\tdb\t4\t\t; &1A v%  Signed dword (32 bits)\n\tdb\t8\t\t; &1B v#  Float double (64 bits)\n\tdb\t10\t\t; &1C v   Variant numeric (80 bits)\n\tdb\t24\t\t; &1D v{} Structure (4+4 bytes)\n\tdb\t40\t\t; &1E v%% Signed qword (64 bits)\n\tdb\t136\t\t; &1F v$  String (4+4 bytes)\n;\n\tSEGMENT .data\t\t; Necessary for Position Independent Code\n;\n; Array of assembler entry points:\n;\n\tdb\t0\t\t; Padding\nfnarr:\tdb\t1\t\t; Number of dimensions\n\tdd\t(fnarrt-fnarr0)/4 ; Number of entries\nfnarr0:\tdd\tloadn\t\t; Load numeric \n\tdd\tloads\t\t; Load string\n\tdd\tstoren\t\t; Store numeric\n\tdd\tstores\t\t; Store string\n\tdd\tgetvar\t\t; Get variable address\n\tdd\tputvar\t\t; Create variable\n\tdd\texpr\t\t; Evaluate expression\n\tdd\titem\t\t; Evaluate item\n\tdd\tlexan\t\t; Lexical analysis (tokenise)\n\tdd\ttoken\t\t; Print character or keyword\n\tdd\txfloat\t\t; Convert integer to float\n\tdd\txfix\t\t; Convert float to integer\n\tdd\tstr00\t\t; Convert a number to a string\n\tdd\tcon\t\t; Convert a string to a number\n\tdd\tsortup\t\t; (Reserved in BBCSDL)\n\tdd\tsortdn\t\t; (Reserved in BBCSDL)\n\tdd\t0\t\t; Reserved for hook\n\tdd\txeq\t\t; Return to BASIC\n\tdd\tputevt\t\t; V5.8\n\tdd\tgfxPrimitivesGetFont\n\tdd\tgfxPrimitivesSetFont\n\tdd\tRedefineChar\nfnarrt:\n;\n"
  },
  {
    "path": "src/bbdata_x86_64.nas",
    "content": ";/*****************************************************************\\\n;*       BBC BASIC for SDL 2.0 (x86_64)                            *\n;*       Copyright (c) R. T. Russell, 2000-2025                    *\n;*                                                                 *\n;*       BBCDATA.NAS RAM data definitions                          *\n;*       Version 1.44a, 22-Dec-2025                                *\n;\\*****************************************************************/\n;\nMAX_PORTS       EQU     4       ; Maximum number of i/o ports\nMAX_FILES       EQU     8       ; Maximum number of open files\nSOUNDQE         EQU     4       ; Number of bytes per sound entry\nSOUNDQL         EQU     5*SOUNDQE ; Number of bytes per channel\n;\n\tGLOBAL\tstavar,lc,oc,pc,dynvar,fnptr,proptr,prand\n\tGLOBAL\taccs,buff,vpage,flist,lomem,pfree,himem\n\tGLOBAL\terrtxt,onersp,errtrp,datptr,curlin,errlin\n\tGLOBAL\ttracen,vcount,vwidth,errnum,liston,tmps\n;\n\tGLOBAL\tpath,keystr,keybdq,keyptr,spchan,exchan,tweak\n\tGLOBAL\tfcbtab,timoff,usrchr,soundq,envels,waves,libase\n\tGLOBAL\teventq,timtrp,clotrp,siztrp,systrp,moutrp\n\tGLOBAL\talltrp,iMsg,wParam,lParam,filbuf,portab,fvtab\n;\n\tGLOBAL\tforgnd,bakgnd,hfont,colmsk,modeno,lthick,hrect\n\tGLOBAL\torigx,origy,lastx,lasty,prevx,prevy,pfont,cmcflg\n\tGLOBAL\ttextwl,textwr,textwt,textwb,sizex,sizey,sclflg\n\tGLOBAL\ttextx,texty,charx,chary,cursa,cursb,tempo\n\tGLOBAL\tpixelx,pixely,txtfor,txtbak,optval,farray,fasize\n;\n\tGLOBAL\tvduq,queue,flags,kbdqw,kbdqr,keyexp,scroln\n\tGLOBAL\tvflags,sndqw,sndqr,sacc,smix,evtqw,evtqr\n\tGLOBAL\teenvel,escale,epsect,easect,epitch,elevel,ecount\n;\n\tGLOBAL\thwndProg,zoom,offsetx,offsety,platform\n\tGLOBAL\tmemhdc,reflag,sysflg,panx,pany\n\tGLOBAL\tprntx,prnty,prchx,prchy,cursx\n\tGLOBAL\tpaperl,paperr,papert,paperb,lstopt\n;\n\tGLOBAL\tdatend,sysvar,bbcfont,lastick,link00\n\tGLOBAL\tcmdlen,cmdadr,dirlen,diradr,liblen,libadr\n\tGLOBAL\tusrlen,usradr,tmplen,tmpadr,hwo\n\tGLOBAL\tvoices,chrmap\n\tGLOBAL\tbreakpt,breakhi,ttxtfont\n;\n\tEXTERN\tloadn,loads,storen,stores,getvar,putvar,expr,item,lexan\n\tEXTERN\txfloat,xfix,xeq,token,putevt,palette,str00,con,TTFcache\n;\n\tEXTERN\tgfxPrimitivesGetFont,gfxPrimitivesSetFont,RedefineChar\n\tEXTERN\tsortup,sortdn\n;\n%macro  checkalign\t0\n\t%if (($ - $$) & 7)\n\t%error \"Alignment fault\"\n\t%endif\n%endmacro\n;\n\tSEGMENT .data\t\t; Crashes if .bss\n;\n;The following locations are initialised to zero when program is RUN:\n;Variables used by generic modules (bbmain, bbexec, bbeval, bbasmb)\n;\n\talign\t16,db 0\nstavar:\ttimes 12 dd 0\t\t; Static variables @% to K%\nlc:\tdd\t0\t\t; Static variable L%\n\ttimes 2\tdd 0\t\t; Static variables M%, N%\noc:\tdd\t0\t\t; Static variable O%\npc:\tdd\t0\t\t; Static variable P%\n\ttimes 10 dd 0\t\t; Static variables Q% to Z%\ndynvar:\ttimes 54 dd 0\t\t; ( Pointers to dynamic vars   )\nfnptr:\tdd\t0\t\t; ( Pointer to user FuNctions  ) grouped\nproptr:\tdd\t0\t\t; ( Pointer to user PROCedures )\naccs:\tdd\t0\t\t; Pointer to string accumulator\n\tdd\t0\t\t; 64-bit pointer\nvpage:\tdd\t0\t\t; Current value of PAGE\ntracen:\tdd\t0\t\t; Maximum line number to trace\nlomem:\tdd\t0\t\t; Current value of LOMEM\npfree:\tdd\t0\t\t; Pointer to start of free space\nhimem:\tdd\t0\t\t; Current value of HIMEM\nlibase:\tdd\t0\t\t; Pointer to INSTALLed library\nerrtxt:\tdd\t0\t\t; Pointer to error text for REPORT\n\tdd\t0\t\t; 64-bit pointer\nerrtrp:\tdd\t0\t\t; Pointer to ON ERROR statement\ndatptr:\tdd\t0\t\t; Pointer to DATA statements\nvcount:\tdd\t0\t\t; Current value of COUNT\ncurlin:\tdd\t0\t\t; Pointer to current statement\nalltrp:\t\t\t\t; Start of trap pointers\ntimtrp:\tdd\t0\t\t; Pointer to ON TIME statement\nclotrp:\tdd\t0\t\t; Pointer to ON CLOSE statement\nsiztrp:\tdd\t0\t\t; Pointer to ON MOVE statement\nsystrp:\tdd\t0\t\t; Pointer to ON SYS statement\nmoutrp:\tdd\t0\t\t; Pointer to ON MOUSE statement\nerrlin:\tdd\t0\t\t; Pointer to last error statement\n;\nprand:\nrandom:\ttimes 5 db 0\t\t; Current 'random' number (5 bytes)\nvwidth:\tdb\t0\t\t; Current value of WIDTH\nerrnum:\tdb\t0\t\t; Error code of last error\nliston:\tdb\t0\t\t; *FLOAT/*HEX/*LOWERCASE/OPT\n;\n;Variables used by OS-specific modules (bbcmos, bbccli, bbcvdu, bbcvtx)\n;\n\talign\t4,db 0\npath:\tdd\t0\t\t; Pointer to path/filename buffer\n\tdd\t0\t\t; 64-bit pointer\nkeybdq:\tdd\t0\t\t; Pointer to keyboard queue\n\tdd\t0\t\t; 64-bit pointer\nkeyptr:\tdd\t0\t\t; Pointer to *KEY string\n\tdd\t0\t\t; 64-bit pointer\n;\nlstopt:\tdb\t0\t\t; LISTO value (indentation)\nsclflg:\tdb\t0\t\t; Scroll flag (COPY key)\noptval:\tdb\t0\t\t; *OUTPUT and *INPUT values\n;\n; ------ End of 'absolutely-addressed' variables ------\n;\nfarray:\tdb\t0\t\t; Number of dimensions = 1  |\nfasize:\tdd\t0\t\t; Number of elements = 16   |\nfilbuf:\tdq\t0\t\t; Pointer to file buffers   | @hfile%%()\nportab:\ttimes MAX_PORTS dq 0\t; Table of port handles     | \nchntab:\ttimes MAX_FILES dq 0\t; Table of file handles     | \nexchan:\tdq\t0\t\t; Handle for *EXEC   @hfile%%(13)\nspchan:\tdq\t0\t\t; Handle for *SPOOL  @hfile%%(14)\nptchan:\tdq\t0\t\t; Handle for printer @hfile%%(15)\n;\nfcbtab:\ttimes MAX_FILES dd 0\t; Table of FCBs\nvoices:\ttimes 4 db 0\t\t; Voices (waveforms) for sound channels\n;\nflist:\ttimes 33 dq 0\t\t; Pointers to string free lists\ntmps:\tdd\t0\t\t; Temp string descriptor: address\n\tdd\t0\t\t; Temp string descriptor: length\n;\n; Variables moved here to make room for 64-bit pointers and handles:\n;\nonersp:\tdd\t0\t\t; ESP storage for ON ERROR LOCAL\n\tdd\t0\t\t; 64-bit pointer\nbuff:\tdd\t0\t\t; Pointer to string input buffer\n\tdd\t0\t\t; 64-bit pointer\nkeystr:\tdd\t0\t\t; Pointer to user *KEY strings\n\tdd\t0\t\t; 64-bit pointer\nusrchr:\tdd\t0\t\t; Pointer to user-defined characters\n\tdd\t0\t\t; 64-bit pointer\nwaves:\tdd\t0\t\t; Pointer to SOUND waveforms\n\tdd\t0\t\t; 64-bit pointer\nenvels:\tdd\t0\t\t; Pointer to ENVELOPEs\n\tdd\t0\t\t; 64-bit pointer\neventq:\tdd\t0\t\t; Pointer to event queue\n\tdd\t0\t\t; 64-bit pointer\nhrect:\tdd\t0\t\t; Pointer to clip rect (part of @vdu{})\n\tdd\t0\t\t; 64-bit pointer\n;\n;Text/graphics metrics (pointed to by @vdu%):\n;\nvduvar:\norigx:\tdd\t0\t\t; Graphics horizontal origin\norigy:\tdd\t0\t\t; Graphics vertical origin\nlastx:\tdd\t0\t\t; Immediately preceding x-coordinate\nlasty:\tdd\t0\t\t; Immediately preceding y-coordinate\nprevx:\tdd\t0\t\t; Previous x-coordinate\nprevy:\tdd\t0\t\t; Previous y-coordinate\ntextwl:\tdd\t0\t\t; Text window left (pixels)\ntextwr:\tdd\t0\t\t; Text window right (pixels)\ntextwt:\tdd\t0\t\t; Text window top (pixels)\ntextwb:\tdd\t0\t\t; Text window bottom (pixels)\npixelx:\tdd\t0\t\t; Width of a graphics pixel\npixely:\tdd\t0\t\t; Height of a graphics pixel\ntextx:\tdd\t0\t\t; Text pointer (cursor x)\ntexty:\tdd\t0\t\t; Text pointer (cursor y)\nhfont:\tdd\t0\t\t; Handle of current font\n\tdd\t0\t\t; 64-bit handle\n;\nforgnd:\tdw\t0\t\t; Graphics foreground colour/action\nbakgnd:\tdw\t0\t\t; Graphics background colour/action\n;\ncursa:\tdb\t0\t\t; Start (top) line of cursor\ncursb:\tdb\t0\t\t; Finish (bottom) line of cursor\ntxtfor:\tdb\t0\t\t; Text foreground colour\ntxtbak:\tdb\t0\t\t; Text background colour\nmodeno:\tdb\t0\t\t; Mode number\ncolmsk:\tdb\t0\t\t; Mask for maximum number of colours\nvflags:\tdb\t0\t\t; VDU driver flags\nscroln:\tdb\t0\t\t; Scroll counter in paged mode\ncursx:\tdb\t0\t\t; Cursor (caret) width\nlthick:\tdb\t0\t\t; Line thickness (lines, outline shapes)\ncmcflg:\tdb\t0\t\t; V5.3 cursor movement flags\ntweak:\tdb\t0\t\t; Character spacing adjustment (signed) \n;\nsndqw:\ttimes 4 db 0\t\t; Sound queue write pointers\nsndqr:\ttimes 4 db 0\t\t; Sound queue read pointers\neenvel:\ttimes 4 db 0\t\t; Envelope number\nescale:\ttimes 4 db 0\t\t; Envelope scaler\nepsect:\ttimes 4 db 0\t\t; Envelope pitch section\neasect:\ttimes 4 db 0\t\t; Envelope amplitude section\nepitch:\ttimes 4 db 0\t\t; Envelope pitch (frequency)\necount:\ttimes 4 db 0\t\t; Envelope count\nsoundq:\ttimes 4*SOUNDQL db 0\t; Sound queue (four channels)\nvduq:\ttimes 10 db 0\t\t; VDU queue (must precede 'queue')\nqueue:\tdb\t0\t\t; VDU queue status\n;\nkbdqw:\tdb\t0\t\t; Keyboard queue write pointer\nkbdqr:\tdb\t0\t\t; Keyboard queue read pointer\nevtqw:\tdb\t0\t\t; Event queue write pointer\nevtqr:\tdb\t0\t\t; Event queue read pointer\nkeyexp:\tdb\t0\t\t; *KEY character counter\n;\n\talign\t4,db 0\n;\n; ------ End of initialised variables ------\n;\ndatend:\n;\n;The following locations are NOT initialised when program is RUN\n;(but are guaranteed to be zero on initial execution).\n;\nsizex:\tdd\t0\t\t; Total width of client area\nsizey:\tdd\t0\t\t; Total height of client area\ncharx:\tdd\t0\t\t; Average character width\nchary:\tdd\t0\t\t; Average character height\nprchx:\tdd\t0\t\t; Average character width (printer)\nprchy:\tdd\t0\t\t; Average character height (printer)\npaperl:\tdd\t0\t\t; Printer left edge\npaperr:\tdd\t0\t\t; Printer right edge\npapert:\tdd\t0\t\t; Printer top edge\npaperb:\tdd\t0\t\t; Printer bottom edge\nprntx:\tdd\t0\t\t; Horizontal printing position\nprnty:\tdd\t0\t\t; Vertical printing position\n;\n; ------ End of VDU variables ------\n;\nlastick:dd\t0\t\t; To check for TickCount wraparound\ntimoff:\tdd\t0\t\t; Offset to add to TickCount\nsacc:\ttimes 4\tdd 0\t\t; Sound accumulators (not initialised)\nsmix:\ttimes 4\tdd 0\t\t; Stereo mix\nelevel:\ttimes 4 db 0\t\t; Envelope level (amplitude)\n;\n;The following variables are organised as a linked-list at\n;sysvar, for access via 'system variables' starting with @:\n;\n\talign\t4,db 0\n;\nsysvar:\tdd\tlink1 - sysvar\n\tdb\t'wparam%',0\n\tcheckalign\nwParam:\tdd\t0\t\t; Saved wParam for ON xxxx interrupt\n;\nlink3:\tdd\tlink4 - link3\n\tdb\t'lparam%',0\n\tcheckalign\nlParam:\tdd\t0\t\t; Saved lParam for ON xxxx interrupt\n;\n\tdb\t0\t\t; Padding\nlink23:\tdd\tlink24 - link23\n\tdb\t'ispal%',0\n\tcheckalign\nbPaletted: dd\t0\t\t; Paletted display flag (BOOL)\n;\n\ttimes 7\tdb 0\t\t; Padding\nlink1:\tdd\tlink3 - link1\n\tdb\t'memhdc%%',0    ; n.b. aliased to @memhdc%\n\tcheckalign\nmemhdc:\tdd\t0\t\t; Shadow screen device context\n\tdd\t0\t\t; 64-bit handle\n;\n\ttimes 7\tdb 0\t\t; Padding\nlink9:\tdd\tlink10 - link9\n\tdb\t'msg%',0\n\tcheckalign\niMsg:\tdd\t0\t\t; Saved iMsg for ON xxxx interrupt\n;\n\tdb\t0\t\t; Padding\nlink4:\tdd\tlink5 - link4\n\tdb\t'hwnd%%',0\t; n.b. aliased to @hwnd%\n\tcheckalign\nhwndProg: dd\t0\t\t; Handle for program window\n\tdd\t0\t\t; 64-bit handle\n;\n\ttimes 5\tdb 0\t\t; Padding\nlink12:\tdd\tlink13 - link12\n\tdb\t'flags%',0\n\tcheckalign\ntempo:\tdb\t0\t\t; *TEMPO value\nsysflg:\tdb\t0\t\t; *SYS flags\nreflag:\tdb\t0\t\t; *REFRESH flags\nflags:\tdb\t0\t\t; Boolean flags (byte) @ 3FBH\n;\n\ttimes 7\tdb 0\t\t; Padding\nlink16:\tdd\tlink17 - link16\n\tdb\t'chrmap%%',0\t; n.b. aliased to @chrmap%\n\tcheckalign\nchrmap:\tdd\t0\n\tdd\t0\t\t; 64-bit pointer\n;\n\ttimes 5\tdb 0\t\t; Padding\nlink5:\tdd\tlink6 - link5\n\tdb\t'hpal%%',0\n\tcheckalign\n\tdq\tpalette\t\t; Colour palette\n;\n\ttimes 6\tdb 0\t\t; Padding\nlink10:\tdd\tlink11 - link10\n\tdb\t'vdu%%',0\n\tcheckalign\n\tdq\tvduvar\t\t; Pointer to VDU variables\n;\n\ttimes 6\tdb 0\t\t; Padding\nlink00:\tdd\t0\t\t; End of list\n\tdb\t'fn%%(',0\n\tcheckalign\n\tdq\tfnarr\t\t; Pointer to function array\n;\n\tdw\t0\t\t; Padding\nlink11:\tdd\tlink12 - link11\n\tdb\t'platform%',0\n\tcheckalign\nplatform: dd\t0\t\t; SDL version & OS\n;\n\tdd\t0\t\t; Padding\nlink6:\tdd\tlink7 - link6\n\tdb\t'ox%',0\t\n\tcheckalign\noffsetx:dd\t0\t\t; x-offset memhdc->hwnd\n;\n\tdd\t0\t\t; Padding\nlink7:\tdd\tlink8 - link7\n\tdb\t'oy%',0\t \n\tcheckalign\noffsety:dd\t0\t\t; y-offset memhdc->hwnd\n;\n\ttimes 3\tdb 0\t\t; Padding\nlink17:\tdd\tlink18 - link17\n\tdb\t'dir$',0\n\tcheckalign\ndiradr:\tdd\t0\t\t; Program directory address\ndirlen:\tdd\t0\t\t; Program directory length\n;\n\ttimes 7\tdb 0\t\t; Padding\nlink18:\tdd\tlink19 - link18\n\tdb\t'lib$',0\n\tcheckalign\nlibadr:\tdd\t0\t\t; Library directory address\nliblen:\tdd\t0\t\t; Library directory length\n;\n\ttimes 6\tdb 0\t\t; Padding\nlink24:\tdd\tlink25 - link24\n\tdb\t'panx%',0\n\tcheckalign\npanx:\tdd\t0\t\t; Horizontal pan\n;\n\ttimes 3\tdb 0\t\t; Padding\nlink19:\tdd\tlink20 - link19\n\tdb\t'cmd$',0\n\tcheckalign\ncmdadr:\tdd\t0\t\t; Command line address\ncmdlen:\tdd\t0\t\t; Command line length\n;\n\ttimes 7\tdb 0\t\t; Padding\nlink20:\tdd\tlink21 - link20\n\tdb\t'usr$',0\n\tcheckalign\nusradr:\tdd\t0\t\t; User directory address\nusrlen:\tdd\t0\t\t; User directory length\n;\n\ttimes 6\tdb 0\t\t; Padding\nlink25:\tdd\tlink26 - link25\n\tdb\t'pany%',0\n\tcheckalign\npany:\tdd\t0\t\t; Vertical pan\n;\n\ttimes 3\tdb 0\t\t; Padding\nlink21:\tdd\tlink22 - link21\n\tdb\t'tmp$',0\n\tcheckalign\ntmpadr:\tdd\t0\t\t; Temp directory address\ntmplen:\tdd\t0\t\t; Temp directory length\n;\n\ttimes 7\tdb 0\t\t; Padding\nlink22:\tdd\tlink23 - link22\n\tdb\t'vdu{',0\n\tcheckalign\n\tdq\tvdufmt\t\t; Structure format address \n\tdq\threct\t\t; Structure data address\n;\n\ttimes 6\tdb 0\t\t; Padding\nlink14:\tdd\tlink15 - link14\n\tdb\t'zoom%',0\n\tcheckalign\nzoom:\tdd\t0\n;\n\ttimes 7\tdb 0\t\t; Padding\nlink8:\tdd\tlink9 - link8\n\tdb\t'hfile%%(',0\n\tcheckalign\n\tdq\tfarray\t\t; Pointer to file handles array\n;\n\ttimes 5\tdb 0\t\t; Padding\nlink26:\tdd\tlink27 - link26\n\tdb\t'brkpt%',0\n\tcheckalign\nbreakpt:dd\t0\t\t; Breakpoint (bottom of range)\n;\n\ttimes 3\tdb 0\t\t; Padding\nlink15:\tdd\tlink16 - link15\n\tdb\t'hwo%',0\n\tcheckalign\nhwo:\tdd\t0\t\t; Handle for wave output\n;\n\tdb\t0\t\t; Padding\nlink27:\tdd\tlink28 - link27\n\tdb\t'brkhi%',0\n\tcheckalign\nbreakhi:dd\t0\t\t; Breakpoint (top of range)\n;\n\tdw\t0\t\t; Padding\nlink28:\tdd\tlink29 - link28\n\tdb\t'size{',0\t; V6.1 Member name\n\tcheckalign\n\tdq\tptfmt\t\t; V6.1 Format address\n\tdq\tsizex\t\t; V6.1 Data offset\n;\n\ttimes 6\tdb 0\t\t; Padding\nlink29:\tdd\tlink00 - link29\n\tdb\t'char{',0\t; V6.1 Member name\n\tcheckalign\n\tdq\tptfmt\t\t; V6.1 Format address\n\tdq\tcharx\t\t; V6.1 Data offset\n;\n\tdd\t0\t\t; Padding\nlink13:\tdd\tlink14 - link13\n\tdb\t'cache%%',0\n\tcheckalign\n\tdq\tTTFcache\t; Font cache\n;\n; Structure @vdu{o{x%,y%}, l{x%,y%}, p{x%,y%}, tl%, tr%, tt%, tb%,\n;                d{x%,y%}, c{x%,y%}, hf%%, hr%%,\n;                g{a&,b&,c&,d&}, t{a&,b&,c&,d&}, m{a&,b&,c&,d&}}\n;\n\ttimes 5\tdb 0\t\t; Padding\nvdufmt:\tdd\tsndqw-hrect\t; Total length (bytes)\nvlnk00:\tdd\tvlnk01 - vlnk00\t; Link to next\n\tdb\t'o{',0\t\t; Member name\n\tcheckalign\n\tdq\tptfmt\n\tdq\torigx-hrect\t; Data offset\n;\n\tdb\t0\t\t; Padding\nvlnk01:\tdd\tvlnk02 - vlnk01\n\tdb\t'l{',0\t\t; Member name\n\tcheckalign\n\tdq\tptfmt\n\tdq\tlastx-hrect\t; Data offset\n;\n\tdb\t0\t\t; Padding\nvlnk02:\tdd\tvlnk03 - vlnk02\n\tdb\t'p{',0\t\t; Member name\n\tcheckalign\n\tdq\tptfmt\n\tdq\tprevx-hrect\t; Data offset\n;\nvlnk03:\tdd\tvlnk04 - vlnk03\n\tdb\t'tl%',0\t\t; Member name\n\tcheckalign\n\tdd\ttextwl-hrect\t; Data offset\n;\n\tdd\t0\t\t; Padding\nvlnk04:\tdd\tvlnk05 - vlnk04\n\tdb\t'tr%',0\t\t; Member name\n\tcheckalign\n\tdd\ttextwr-hrect\t; Data offset\n;\n\tdd\t0\t\t; Padding\nvlnk05:\tdd\tvlnk06 - vlnk05\n\tdb\t'tt%',0\t\t; Member name\n\tcheckalign\n\tdd\ttextwt-hrect\t; Data offset\n;\n\tdd\t0\t\t; Padding\nvlnk06:\tdd\tvlnk07 - vlnk06\n\tdb\t'tb%',0\t\t; Member name\n\tcheckalign\n\tdd\ttextwb-hrect\t; Data offset\n;\n\ttimes 5\tdb 0\t\t; Padding\nvlnk07:\tdd\tvlnk08 - vlnk07\n\tdb\t'd{',0\t\t; Member name\n\tcheckalign\n\tdq\tptfmt\n\tdq\tpixelx-hrect\t; Data offset\n;\n\tdb\t0\t\t; Padding\nvlnk08:\tdd\tvlnk09 - vlnk08\n\tdb\t'c{',0\t\t; Member name\n\tcheckalign\n\tdq\tptfmt\n\tdq\ttextx-hrect\t; Data offset\n;\n\ttimes 7\tdb 0\t\t; Padding\nvlnk09:\tdd\tvlnk10 - vlnk09\n\tdb\t'hf%%',0\t; Member name\n\tcheckalign\n\tdd\thfont-hrect\t; Data offset\n;\n\ttimes 3\tdb 0\t\t; Padding\nvlnk10:\tdd\tvlnk11 - vlnk10\n\tdb\t'hr%%',0\t; Member name\n\tcheckalign\n\tdd\threct-hrect\t; Data offset\n;\n\ttimes 5\tdb 0\t\t; Padding\nvlnk11:\tdd\tvlnk12 - vlnk11\n\tdb\t'g{',0\t\t; Member name\n\tcheckalign\n\tdq\tb4fmt\n\tdq\tforgnd-hrect\t; Data offset\n;\n\tdb\t0\t\t; Padding\nvlnk12:\tdd\tvlnk13 - vlnk12\n\tdb\t't{',0\t\t; Member name\n\tcheckalign\n\tdq\tb4fmt\n\tdq\tcursa-hrect\t; Data offset\n;\n\tdb\t0\t\t; Padding\nvlnk13:\tdd\tvlnk14 - vlnk13\n\tdb\t'm{',0\t\t; Member name\n\tcheckalign\n\tdq\tb4fmt\n\tdq\tmodeno-hrect\t; Data offset\n;\n\tdb\t0\t\t; Padding\nvlnk14:\tdd\t0\n\tdb\t'w{',0\t\t; V6.1 Member name\n\tcheckalign\n\tdq\tb4fmt\t\t; V6.1 Format address\n\tdq\tcursx-hrect\t; V6.1 Data offset\n;\n\tSEGMENT .text\n;\nbbcfont:\n\tDB\t00H,00H,00H,00H,00H,00H,00H,00H\t\t;NUL\n\tDB\t07EH,081H,0A5H,081H,0BDH,099H,081H,07EH\t;SOH\n\tDB\t07EH,0FFH,0DBH,0FFH,0C3H,0E7H,0FFH,07EH\t;STX\n\tDB\t06CH,0FEH,0FEH,0FEH,07CH,038H,010H,00H\t;ETX\n\tDB\t010H,038H,07CH,0FEH,07CH,038H,010H,00H\t;EOT\n\tDB\t010H,038H,038H,0D6H,0FEH,0D6H,010H,038H\t;ENQ\n\tDB\t010H,038H,07CH,0FEH,0FEH,0FEH,038H,07CH\t;ACK\n\tDB\t00H,00H,018H,03CH,03CH,018H,00H,00H\t;BEL\n\tDB\t0FFH,0FFH,0E7H,0C3H,0C3H,0E7H,0FFH,0FFH\t;BS\n\tDB\t00H,03CH,066H,042H,042H,066H,03CH,00H\t;HT\n\tDB\t0FFH,0C3H,099H,0BDH,0BDH,099H,0C3H,0FFH\t;LF\n\tDB\t0FH,07H,0FH,07DH,0CCH,0CCH,0CCH,078H\t;VT\n\tDB\t03CH,066H,066H,066H,03CH,018H,07EH,018H\t;FF\n\tDB\t03FH,033H,03FH,030H,030H,070H,0F0H,0E0H\t;CR\n\tDB\t07FH,063H,07FH,063H,063H,067H,0E6H,0C0H\t;SO\n\tDB\t099H,05AH,03CH,0E7H,0E7H,03CH,05AH,099H\t;SI\n\tDB\t080H,0E0H,0F8H,0FEH,0F8H,0E0H,080H,00H\t;DLE\n\tDB\t02H,0EH,03EH,0FEH,03EH,0EH,02H,00H\t;DC1\n\tDB\t018H,03CH,07EH,018H,018H,07EH,03CH,018H\t;DC2\n\tDB\t066H,066H,066H,066H,066H,00H,066H,00H\t;DC3\n\tDB\t07FH,0DBH,0DBH,07BH,01BH,01BH,01BH,00H\t;DC4\n\tDB\t03EH,063H,038H,06CH,06CH,038H,0CCH,078H\t;NAK\n\tDB\t00H,00H,00H,00H,07EH,07EH,07EH,00H\t;SYN\n\tDB\t018H,03CH,07EH,018H,07EH,03CH,018H,0FFH\t;ETB\n\tDB\t018H,03CH,07EH,018H,018H,018H,018H,00H\t;CAN\n\tDB\t018H,018H,018H,018H,07EH,03CH,018H,00H\t;EM\n\tDB\t00H,018H,0CH,0FEH,0CH,018H,00H,00H\t;SUB\n\tDB\t00H,030H,060H,0FEH,060H,030H,00H,00H\t;ESC\n\tDB\t00H,00H,0C0H,0C0H,0C0H,0FEH,00H,00H\t;FS\n\tDB\t00H,024H,066H,0FFH,066H,024H,00H,00H\t;GS\n\tDB\t00H,018H,03CH,07EH,0FFH,0FFH,00H,00H\t;RS\n\tDB\t00H,0FFH,0FFH,07EH,03CH,018H,00H,00H\t;US\n\tDB\t00H,00H,00H,00H,00H,00H,00H,00H\t\t;\" \"\n\tDB\t030H,030H,030H,030H,030H,00H,030H,00H\t;\"!\"\n\tDB\t06CH,06CH,06CH,00H,00H,00H,00H,00H\t;\"\"\"\n\tDB\t06CH,06CH,0FEH,06CH,0FEH,06CH,06CH,00H\t;\"#\"\n\tDB\t018H,07EH,0D0H,07CH,016H,0FCH,030H,00H\t;\"$\"\n\tDB\t0C0H,0CCH,018H,030H,060H,0CCH,0CH,00H\t;\"%\"\n\tDB\t038H,06CH,038H,076H,0DCH,0CCH,076H,00H\t;\"&\"\n\tDB\t018H,030H,060H,00H,00H,00H,00H,00H\t;\"'\"\n\tDB\t018H,030H,060H,060H,060H,030H,018H,00H\t;\"(\"\n\tDB\t060H,030H,018H,018H,018H,030H,060H,00H\t;\")\"\n\tDB\t00H,06CH,038H,0FEH,038H,06CH,00H,00H\t;\"*\"\n\tDB\t00H,030H,030H,0FCH,030H,030H,00H,00H\t;\"+\"\n\tDB\t00H,00H,00H,00H,00H,030H,030H,060H\t;\",\"\n\tDB\t00H,00H,00H,0FCH,00H,00H,00H,00H\t;\"-\"\n\tDB\t00H,00H,00H,00H,00H,030H,030H,00H\t;\".\"\n\tDB\t00H,0CH,018H,030H,060H,0C0H,00H,00H\t;\"/\"\n\tDB\t078H,0CCH,0DCH,0FCH,0ECH,0CCH,078H,00H\t;\"0\"\n\tDB\t030H,070H,030H,030H,030H,030H,0FCH,00H\t;\"1\"\n\tDB\t078H,0CCH,0CH,018H,030H,060H,0FCH,00H\t;\"2\"\n\tDB\t078H,0CCH,0CH,038H,0CH,0CCH,078H,00H\t;\"3\"\n\tDB\t018H,038H,078H,0D8H,0FCH,018H,018H,00H\t;\"4\"\n\tDB\t0FCH,0C0H,0F8H,0CH,0CH,0CCH,078H,00H\t;\"5\"\n\tDB\t038H,060H,0C0H,0F8H,0CCH,0CCH,078H,00H\t;\"6\"\n\tDB\t0FCH,0CH,018H,030H,060H,060H,060H,00H\t;\"7\"\n\tDB\t078H,0CCH,0CCH,078H,0CCH,0CCH,078H,00H\t;\"8\"\n\tDB\t078H,0CCH,0CCH,07CH,0CH,018H,070H,00H\t;\"9\"\n\tDB\t00H,00H,030H,030H,00H,030H,030H,00H\t;\":\"\n\tDB\t00H,00H,030H,030H,00H,030H,030H,060H\t;\";\"\n\tDB\t018H,030H,060H,0C0H,060H,030H,018H,00H\t;\"<\"\n\tDB\t00H,00H,0FCH,00H,0FCH,00H,00H,00H\t;\"=\"\n\tDB\t060H,030H,018H,0CH,018H,030H,060H,00H\t;\">\"\n\tDB\t078H,0CCH,018H,030H,030H,00H,030H,00H\t;\"?\"\n\tDB\t078H,0CCH,0DCH,0D4H,0DCH,0C0H,078H,00H\t;\"@\"\n\tDB\t078H,0CCH,0CCH,0FCH,0CCH,0CCH,0CCH,00H\t;\"A\"\n\tDB\t0F8H,0CCH,0CCH,0F8H,0CCH,0CCH,0F8H,00H\t;\"B\"\n\tDB\t078H,0CCH,0C0H,0C0H,0C0H,0CCH,078H,00H\t;\"C\"\n\tDB\t0F0H,0D8H,0CCH,0CCH,0CCH,0D8H,0F0H,00H\t;\"D\"\n\tDB\t0FCH,0C0H,0C0H,0F8H,0C0H,0C0H,0FCH,00H\t;\"E\"\n\tDB\t0FCH,0C0H,0C0H,0F8H,0C0H,0C0H,0C0H,00H\t;\"F\"\n\tDB\t078H,0CCH,0C0H,0DCH,0CCH,0CCH,078H,00H\t;\"G\"\n\tDB\t0CCH,0CCH,0CCH,0FCH,0CCH,0CCH,0CCH,00H\t;\"H\"\n\tDB\t0FCH,030H,030H,030H,030H,030H,0FCH,00H\t;\"I\"\n\tDB\t07CH,018H,018H,018H,018H,0D8H,070H,00H\t;\"J\"\n\tDB\t0CCH,0D8H,0F0H,0E0H,0F0H,0D8H,0CCH,00H\t;\"K\"\n\tDB\t0C0H,0C0H,0C0H,0C0H,0C0H,0C0H,0FCH,00H\t;\"L\"\n\tDB\t0C6H,0EEH,0FEH,0D6H,0D6H,0C6H,0C6H,00H\t;\"M\"\n\tDB\t0CCH,0CCH,0ECH,0FCH,0DCH,0CCH,0CCH,00H\t;\"N\"\n\tDB\t078H,0CCH,0CCH,0CCH,0CCH,0CCH,078H,00H\t;\"O\"\n\tDB\t0F8H,0CCH,0CCH,0F8H,0C0H,0C0H,0C0H,00H\t;\"P\"\n\tDB\t078H,0CCH,0CCH,0CCH,0DCH,078H,01CH,00H\t;\"Q\"\n\tDB\t0F8H,0CCH,0CCH,0F8H,0D8H,0CCH,0CCH,00H\t;\"R\"\n\tDB\t078H,0CCH,0C0H,078H,0CH,0CCH,078H,00H\t;\"S\"\n\tDB\t0FCH,030H,030H,030H,030H,030H,030H,00H\t;\"T\"\n\tDB\t0CCH,0CCH,0CCH,0CCH,0CCH,0CCH,078H,00H\t;\"U\"\n\tDB\t0CCH,0CCH,0CCH,0CCH,0CCH,078H,030H,00H\t;\"V\"\n\tDB\t0C6H,0C6H,0D6H,0D6H,0FEH,0EEH,0C6H,00H\t;\"W\"\n\tDB\t0CCH,0CCH,078H,030H,078H,0CCH,0CCH,00H\t;\"X\"\n\tDB\t0CCH,0CCH,0CCH,078H,030H,030H,030H,00H\t;\"Y\"\n\tDB\t0FCH,0CH,018H,030H,060H,0C0H,0FCH,00H\t;\"Z\"\n\tDB\t0F8H,0C0H,0C0H,0C0H,0C0H,0C0H,0F8H,00H\t;\"[\"\n\tDB\t00H,0C0H,060H,030H,018H,0CH,00H,00H\t;\"\\\"\n\tDB\t07CH,0CH,0CH,0CH,0CH,0CH,07CH,00H\t;\"]\"\n\tDB\t010H,038H,06CH,0C6H,00H,00H,00H,00H\t;\"^\"\n\tDB\t00H,00H,00H,00H,00H,00H,00H,0FFH\t;\"_\"\n\tDB\t060H,030H,018H,00H,00H,00H,00H,00H\t;\"`\"\n\tDB\t00H,00H,078H,0CH,07CH,0CCH,07CH,00H\t;\"a\"\n\tDB\t0C0H,0C0H,0F8H,0CCH,0CCH,0CCH,0F8H,00H\t;\"b\"\n\tDB\t00H,00H,078H,0CCH,0C0H,0CCH,078H,00H\t;\"c\"\n\tDB\t0CH,0CH,07CH,0CCH,0CCH,0CCH,07CH,00H\t;\"d\"\n\tDB\t00H,00H,078H,0CCH,0FCH,0C0H,078H,00H\t;\"e\"\n\tDB\t038H,060H,060H,0F8H,060H,060H,060H,00H\t;\"f\"\n\tDB\t00H,00H,07CH,0CCH,0CCH,07CH,0CH,078H\t;\"g\"\n\tDB\t0C0H,0C0H,0F8H,0CCH,0CCH,0CCH,0CCH,00H\t;\"h\"\n\tDB\t030H,00H,070H,030H,030H,030H,078H,00H\t;\"i\"\n\tDB\t030H,00H,070H,030H,030H,030H,030H,0E0H\t;\"j\"\n\tDB\t0C0H,0C0H,0CCH,0D8H,0F0H,0D8H,0CCH,00H\t;\"k\"\n\tDB\t070H,030H,030H,030H,030H,030H,078H,00H\t;\"l\"\n\tDB\t00H,00H,06CH,0FEH,0D6H,0D6H,0C6H,00H\t;\"m\"\n\tDB\t00H,00H,0F8H,0CCH,0CCH,0CCH,0CCH,00H\t;\"n\"\n\tDB\t00H,00H,078H,0CCH,0CCH,0CCH,078H,00H\t;\"o\"\n\tDB\t00H,00H,0F8H,0CCH,0CCH,0F8H,0C0H,0C0H\t;\"p\"\n\tDB\t00H,00H,07CH,0CCH,0CCH,07CH,0CH,0EH\t;\"q\"\n\tDB\t00H,00H,0D8H,0ECH,0C0H,0C0H,0C0H,00H\t;\"r\"\n\tDB\t00H,00H,07CH,0C0H,078H,0CH,0F8H,00H\t;\"s\"\n\tDB\t060H,060H,0F8H,060H,060H,060H,038H,00H\t;\"t\"\n\tDB\t00H,00H,0CCH,0CCH,0CCH,0CCH,07CH,00H\t;\"u\"\n\tDB\t00H,00H,0CCH,0CCH,0CCH,078H,030H,00H\t;\"v\"\n\tDB\t00H,00H,0C6H,0D6H,0D6H,0FEH,06CH,00H\t;\"w\"\n\tDB\t00H,00H,0CCH,078H,030H,078H,0CCH,00H\t;\"x\"\n\tDB\t00H,00H,0CCH,0CCH,0CCH,07CH,0CH,078H\t;\"y\"\n\tDB\t00H,00H,0FCH,018H,030H,060H,0FCH,00H\t;\"z\"\n\tDB\t018H,030H,030H,0E0H,030H,030H,018H,00H\t;\"{\"\n\tDB\t030H,030H,030H,00H,030H,030H,030H,00H\t;\"|\"\n\tDB\t060H,030H,030H,01CH,030H,030H,060H,00H\t;\"}\"\n\tDB\t076H,0DCH,00H,00H,00H,00H,00H,00H\t;\"~\"\n\tDB\t00H,010H,038H,06CH,0C6H,0C6H,0FEH,00H\t;DEL\n\tDB\t03CH,062H,0F8H,060H,0F8H,062H,03CH,000H ; &80 euro symbol\n\tDB\t000H,07EH,07EH,07EH,07EH,07EH,07EH,000H ; &81 block (teletext)\n\tDB\t000H,000H,000H,000H,000H,018H,018H,030H ; &82 single low quotation mark\n\tDB\t000H,00CH,018H,018H,03CH,018H,018H,070H ; &83 small letter f with hook\n\tDB\t000H,000H,000H,000H,000H,06CH,06CH,0D8H ; &84 double low quotation mark\n\tDB\t000H,000H,000H,000H,000H,000H,054H,000H ; &85 horizontal ellipsis\n\tDB\t018H,018H,07EH,018H,018H,018H,018H,000H ; &86 dagger\n\tDB\t018H,018H,07EH,018H,018H,07EH,018H,018H ; &87 double dagger\n\tDB\t010H,038H,06CH,000H,000H,000H,000H,000H ; &88 circumflex accent\n\tDB\t0C6H,0CCH,018H,030H,060H,0DBH,01BH,000H ; &89 per mille\n\tDB\t038H,07CH,0C6H,070H,01CH,0C6H,07CH,000H ; &8A capital S caron\n\tDB\t000H,018H,030H,060H,030H,018H,000H,000H ; &8B left angle quotation mark\n\tDB\t07EH,0D8H,0D8H,0DEH,0D8H,0D8H,07EH,000H ; &8C capital OE ligature\n\tDB\t030H,078H,0FCH,030H,030H,030H,030H,000H ; &8D up arrow (teletext)\n\tDB\t038H,0FEH,00CH,018H,030H,060H,0FEH,000H ; &8E capital Z caron\n\tDB\t000H,020H,060H,0FEH,060H,020H,000H,000H ; &8F left arrow (teletext)\n\tDB\t000H,008H,00CH,0FEH,00CH,008H,000H,000H ; &90 right arrow (teletext)\n\tDB\t030H,030H,018H,000H,000H,000H,000H,000H ; &91 left single quotation mark\n\tDB\t018H,018H,030H,000H,000H,000H,000H,000H ; &92 right single quotation mark\n\tDB\t06CH,06CH,036H,000H,000H,000H,000H,000H ; &93 left double quotation mark\n\tDB\t036H,036H,06CH,000H,000H,000H,000H,000H ; &94 right double quotation mark\n\tDB\t000H,000H,018H,03CH,03CH,018H,000H,000H ; &95 bullet\n\tDB\t000H,000H,000H,0FEH,000H,000H,000H,000H ; &96 en dash\n\tDB\t000H,000H,000H,0FFH,000H,000H,000H,000H ; &97 em dash\n\tDB\t036H,06CH,000H,000H,000H,000H,000H,000H ; &98 small tilde\n\tDB\t0EAH,04EH,04AH,04AH,000H,000H,000H,000H ; &99 trade mark sign\n\tDB\t06CH,038H,07CH,0C0H,078H,00CH,0F8H,000H ; &9A small S caron\n\tDB\t000H,030H,018H,00CH,018H,030H,000H,000H ; &9B right angle quotation mark\n\tDB\t000H,000H,07EH,0DBH,0DFH,0D8H,07FH,000H ; &9C small OE ligature\n\tDB\t0CCH,0CCH,0CCH,0CCH,0CCH,0CCH,0CCH,000H ; &9D double line (teletext)\n\tDB\t06CH,038H,07CH,018H,030H,060H,07CH,000H ; &9E small Z caron\n\tDB\t0CCH,000H,0CCH,0CCH,078H,030H,030H,000H ; &9F capital Y diaeresis\n\tDB\t000H,000H,000H,000H,000H,000H,000H,000H ;\" \"\n\tDB\t018H,000H,018H,018H,018H,018H,018H,000H ;\" \"\n\tDB\t000H,018H,07EH,0D8H,0D8H,07EH,018H,000H ;\" \"\n\tDB\t038H,06CH,060H,0F0H,060H,066H,0FCH,000H ;\" \"\n\tDB\t066H,03CH,066H,03CH,066H,000H,000H,000H ;\" \"\n\tDB\t0C3H,066H,03CH,018H,03CH,018H,018H,000H ;\" \"\n\tDB\t018H,018H,018H,000H,018H,018H,018H,000H ;\" \"\n\tDB\t03CH,060H,03CH,066H,066H,03CH,006H,03CH ;\" \"\n\tDB\t066H,000H,000H,000H,000H,000H,000H,000H ;\" \"\n\tDB\t07EH,081H,09DH,0B1H,0B1H,09DH,081H,07EH ;\" \"\n\tDB\t03CH,06CH,06CH,03EH,000H,07EH,000H,000H ;\" \"\n\tDB\t000H,033H,066H,0CCH,066H,033H,000H,000H ;\" \"\n\tDB\t000H,07EH,006H,006H,000H,000H,000H,000H ;\" \"\n\tDB\t000H,000H,000H,03CH,000H,000H,000H,000H ;\" \"\n\tDB\t07EH,081H,0B9H,0A5H,0B9H,0A5H,081H,07EH ;\" \"\n\tDB\t03CH,000H,000H,000H,000H,000H,000H,000H ;\" \"\n\tDB\t03CH,066H,03CH,000H,000H,000H,000H,000H ;\" \"\n\tDB\t018H,018H,07EH,018H,018H,000H,07EH,000H ;\" \"\n\tDB\t070H,018H,030H,060H,078H,000H,000H,000H ;\" \"\n\tDB\t078H,00CH,018H,00CH,078H,000H,000H,000H ;\" \"\n\tDB\t00CH,018H,030H,000H,000H,000H,000H,000H ;\" \"\n\tDB\t000H,000H,066H,066H,066H,07CH,060H,0C0H ;\" \"\n\tDB\t03EH,07AH,07AH,03AH,01AH,01AH,01AH,000H ;\" \"\n\tDB\t000H,000H,000H,018H,000H,000H,000H,000H ;\" \"\n\tDB\t000H,000H,000H,000H,000H,008H,018H,000H ;\" \"\n\tDB\t030H,070H,030H,030H,030H,000H,000H,000H ;\" \"\n\tDB\t038H,06CH,06CH,038H,000H,07CH,000H,000H ;\" \"\n\tDB\t000H,0CCH,066H,033H,066H,0CCH,000H,000H ;\" \"\n\tDB\t043H,0C6H,04CH,05AH,036H,06AH,0CFH,002H ;\" \"\n\tDB\t040H,0C6H,04CH,05EH,033H,066H,0CCH,00FH ;\" \"\n\tDB\t0C0H,023H,066H,02DH,0DBH,035H,067H,001H ;\" \"\n\tDB\t018H,000H,018H,030H,060H,066H,03CH,000H ;\" \"\n\tDB\t070H,000H,03CH,066H,07EH,066H,066H,000H ;\" \"\n\tDB\t00EH,000H,03CH,066H,07EH,066H,066H,000H ;\" \"\n\tDB\t018H,066H,000H,03CH,066H,07EH,066H,000H ;\" \"\n\tDB\t076H,0DCH,000H,03CH,066H,07EH,066H,000H ;\" \"\n\tDB\t066H,000H,03CH,066H,07EH,066H,066H,000H ;\" \"\n\tDB\t018H,018H,000H,03CH,066H,07EH,066H,000H ;\" \"\n\tDB\t03FH,06CH,0CCH,0FEH,0CCH,0CCH,0CFH,000H ;\" \"\n\tDB\t03CH,066H,060H,060H,060H,066H,03CH,018H ;\" \"\n\tDB\t070H,000H,07EH,060H,07CH,060H,07EH,000H ;\" \"\n\tDB\t00EH,000H,07EH,060H,07CH,060H,07EH,000H ;\" \"\n\tDB\t018H,066H,000H,0FEH,0F0H,0C0H,0FEH,000H ;\" \"\n\tDB\t066H,000H,07EH,060H,07CH,060H,07EH,000H ;\" \"\n\tDB\t070H,000H,07EH,018H,018H,018H,07EH,000H ;\" \"\n\tDB\t00EH,000H,07EH,018H,018H,018H,07EH,000H ;\" \"\n\tDB\t018H,066H,000H,07EH,018H,018H,07EH,000H ;\" \"\n\tDB\t066H,000H,07EH,018H,018H,018H,07EH,000H ;\" \"\n\tDB\t078H,06CH,066H,0F6H,066H,06CH,078H,000H ;\" \"\n\tDB\t076H,0DCH,000H,0C6H,0F6H,0DEH,0C6H,000H ;\" \"\n\tDB\t070H,000H,07CH,0C6H,0C6H,0C6H,07CH,000H ;\" \"\n\tDB\t00EH,000H,07CH,0C6H,0C6H,0C6H,07CH,000H ;\" \"\n\tDB\t018H,066H,000H,07CH,0C6H,0C6H,07CH,000H ;\" \"\n\tDB\t076H,0DCH,000H,07CH,0C6H,0C6H,07CH,000H ;\" \"\n\tDB\t066H,000H,07CH,0C6H,0C6H,0C6H,07CH,000H ;\" \"\n\tDB\t000H,0C6H,06CH,038H,06CH,0C6H,000H,000H ;\" \"\n\tDB\t03EH,066H,06EH,07EH,076H,066H,07CH,000H ;\" \"\n\tDB\t070H,000H,0C6H,0C6H,0C6H,0C6H,07CH,000H ;\" \"\n\tDB\t00EH,000H,0C6H,0C6H,0C6H,0C6H,07CH,000H ;\" \"\n\tDB\t018H,066H,000H,0C6H,0C6H,0C6H,07CH,000H ;\" \"\n\tDB\t066H,000H,0C6H,0C6H,0C6H,0C6H,07CH,000H ;\" \"\n\tDB\t00EH,000H,066H,066H,03CH,018H,018H,000H ;\" \"\n\tDB\t0C0H,0C0H,0FCH,0C6H,0FCH,0C0H,0C0H,000H ;\" \"\n\tDB\t03CH,066H,066H,06CH,066H,066H,06CH,000H ;\" \"\n\tDB\t070H,000H,03CH,006H,03EH,066H,03EH,000H ;\" \"\n\tDB\t00EH,000H,03CH,006H,03EH,066H,03EH,000H ;\" \"\n\tDB\t018H,066H,000H,03EH,066H,0C6H,07EH,000H ;\" \"\n\tDB\t076H,0DCH,000H,03EH,066H,0C6H,07EH,000H ;\" \"\n\tDB\t066H,000H,03CH,006H,03EH,066H,03EH,000H ;\" \"\n\tDB\t018H,018H,000H,03EH,066H,0C6H,07EH,000H ;\" \"\n\tDB\t000H,000H,07EH,01BH,07FH,0D8H,077H,000H ;\" \"\n\tDB\t000H,000H,03CH,060H,060H,060H,03CH,018H ;\" \"\n\tDB\t070H,000H,03CH,066H,07EH,060H,03CH,000H ;\" \"\n\tDB\t00EH,000H,03CH,066H,07EH,060H,03CH,000H ;\" \"\n\tDB\t018H,066H,000H,03CH,07EH,060H,03CH,000H ;\" \"\n\tDB\t066H,000H,03CH,066H,07EH,060H,03CH,000H ;\" \"\n\tDB\t070H,000H,038H,018H,018H,018H,03CH,000H ;\" \"\n\tDB\t00EH,000H,038H,018H,018H,018H,03CH,000H ;\" \"\n\tDB\t018H,066H,000H,038H,018H,018H,03CH,000H ;\" \"\n\tDB\t066H,000H,038H,018H,018H,018H,03CH,000H ;\" \"\n\tDB\t00CH,03EH,00CH,07CH,0CCH,0CCH,078H,000H ;\" \"\n\tDB\t076H,0DCH,000H,07CH,066H,066H,066H,000H ;\" \"\n\tDB\t070H,000H,03CH,066H,066H,066H,03CH,000H ;\" \"\n\tDB\t00EH,000H,03CH,066H,066H,066H,03CH,000H ;\" \"\n\tDB\t018H,066H,000H,03CH,066H,066H,03CH,000H ;\" \"\n\tDB\t076H,0DCH,000H,03CH,066H,066H,03CH,000H ;\" \"\n\tDB\t066H,000H,03CH,066H,066H,066H,03CH,000H ;\" \"\n\tDB\t018H,018H,000H,07EH,000H,018H,018H,000H ;\" \"\n\tDB\t000H,002H,07CH,0CEH,0D6H,0E6H,07CH,080H ;\" \"\n\tDB\t070H,000H,066H,066H,066H,066H,03EH,000H ;\" \"\n\tDB\t00EH,000H,066H,066H,066H,066H,03EH,000H ;\" \"\n\tDB\t018H,066H,000H,066H,066H,066H,03EH,000H ;\" \"\n\tDB\t066H,000H,066H,066H,066H,066H,03EH,000H ;\" \"\n\tDB\t00EH,000H,066H,066H,066H,03EH,006H,03CH ;\" \"\n\tDB\t060H,060H,07CH,066H,066H,07CH,060H,060H ;\" \"\n\tDB\t066H,000H,066H,066H,066H,03EH,006H,03CH ;\" \"\n;\nttxtfont:\n\tDW\t00000H,00011H,00011H,00019H,00015H,00013H,00011H,00011H,08800H,08800H,08800H,08800H,08800H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; NU\n\tDW\t00000H,0000EH,00011H,00011H,0001FH,00011H,00011H,00011H,0F000H,08800H,08800H,0F000H,08800H,08800H,08800H,00000H,00000H,00000H,00000H,00000H ; AR\n\tDW\t00000H,0000EH,00011H,00011H,0001FH,00011H,00011H,00011H,07000H,08800H,08000H,09800H,08800H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; AG\n\tDW\t00000H,0000EH,00011H,00011H,0001FH,00011H,00011H,00011H,08800H,08800H,05000H,02000H,02000H,02000H,02000H,00000H,00000H,00000H,00000H,00000H ; AY\n\tDW\t00000H,0000EH,00011H,00011H,0001FH,00011H,00011H,00011H,0F000H,08800H,08800H,0F000H,08800H,08800H,0F000H,00000H,00000H,00000H,00000H,00000H ; AB\n\tDW\t00000H,0000EH,00011H,00011H,0001FH,00011H,00011H,00011H,08800H,0D800H,0A800H,0A800H,08800H,08800H,08800H,00000H,00000H,00000H,00000H,00000H ; AM\n\tDW\t00000H,0000EH,00011H,00011H,0001FH,00011H,00011H,00011H,07000H,08800H,08000H,08000H,08000H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; AC\n\tDW\t00000H,0000EH,00011H,00011H,0001FH,00011H,00011H,00011H,08800H,08800H,08800H,0A800H,0A800H,0D800H,08800H,00000H,00000H,00000H,00000H,00000H ; AW\n\tDW\t00000H,0001FH,00010H,00010H,0001EH,00010H,00010H,00010H,08000H,08000H,08000H,08000H,08000H,08000H,0F800H,00000H,00000H,00000H,00000H,00000H ; FL\n\tDW\t00000H,0000EH,00011H,00010H,0000EH,00001H,00011H,0000EH,0F800H,02000H,02000H,02000H,02000H,02000H,02000H,00000H,00000H,00000H,00000H,00000H ; ST\n\tDW\t00000H,0001FH,00010H,00010H,0001EH,00010H,00010H,0001FH,0F000H,08800H,08800H,0F000H,08800H,08800H,0F000H,00000H,00000H,00000H,00000H,00000H ; EB\n\tDW\t00000H,0000EH,00011H,00010H,0000EH,00001H,00011H,0000EH,0F000H,08800H,08800H,0F000H,08800H,08800H,0F000H,00000H,00000H,00000H,00000H,00000H ; SB\n\tDW\t00000H,00011H,00011H,00019H,00015H,00013H,00011H,00011H,08800H,08800H,08800H,0F800H,08800H,08800H,08800H,00000H,00000H,00000H,00000H,00000H ; NH\n\tDW\t00000H,0001CH,00012H,00011H,00011H,00011H,00012H,0001CH,08800H,08800H,08800H,0F800H,08800H,08800H,08800H,00000H,00000H,00000H,00000H,00000H ; DH\n\tDW\t00000H,0000EH,00011H,00010H,0000EH,00001H,00011H,0000EH,07000H,08800H,08800H,08800H,08800H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; SO\n\tDW\t00000H,0000EH,00011H,00010H,0000EH,00001H,00011H,0000EH,07000H,02000H,02000H,02000H,02000H,02000H,07000H,00000H,00000H,00000H,00000H,00000H ; SI\n\tDW\t00000H,0001CH,00012H,00011H,00011H,00011H,00012H,0001CH,08000H,08000H,08000H,08000H,08000H,08000H,0F800H,00000H,00000H,00000H,00000H,00000H ; DL\n\tDW\t00000H,0000EH,00011H,00010H,00013H,00011H,00011H,0000EH,0F000H,08800H,08800H,0F000H,08800H,08800H,08800H,00000H,00000H,00000H,00000H,00000H ; GR\n\tDW\t00000H,0000EH,00011H,00010H,00013H,00011H,00011H,0000EH,07000H,08800H,08000H,09800H,08800H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; GG\n\tDW\t00000H,0000EH,00011H,00010H,00013H,00011H,00011H,0000EH,08800H,08800H,05000H,02000H,02000H,02000H,02000H,00000H,00000H,00000H,00000H,00000H ; GY\n\tDW\t00000H,0000EH,00011H,00010H,00013H,00011H,00011H,0000EH,0F000H,08800H,08800H,0F000H,08800H,08800H,0F000H,00000H,00000H,00000H,00000H,00000H ; GB\n\tDW\t00000H,0000EH,00011H,00010H,00013H,00011H,00011H,0000EH,08800H,0D800H,0A800H,0A800H,08800H,08800H,08800H,00000H,00000H,00000H,00000H,00000H ; GM\n\tDW\t00000H,0000EH,00011H,00010H,00013H,00011H,00011H,0000EH,07000H,08800H,08000H,08000H,08000H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; GC\n\tDW\t00000H,0000EH,00011H,00010H,00013H,00011H,00011H,0000EH,08800H,08800H,08800H,0A800H,0A800H,0D800H,08800H,00000H,00000H,00000H,00000H,00000H ; GW\n\tDW\t00000H,0000EH,00011H,00010H,00010H,00010H,00011H,0000EH,0E000H,09000H,08800H,08800H,08800H,09000H,0E000H,00000H,00000H,00000H,00000H,00000H ; CD\n\tDW\t00000H,0000EH,00011H,00010H,00010H,00010H,00011H,0000EH,07000H,08800H,08000H,09800H,08800H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; CG\n\tDW\t00000H,0000EH,00011H,00010H,0000EH,00001H,00011H,0000EH,07000H,08800H,08000H,09800H,08800H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; SG\n\tDW\t00000H,0001FH,00010H,00010H,0001EH,00010H,00010H,0001FH,07000H,08800H,08000H,07000H,00800H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; ES\n\tDW\t00000H,0001EH,00011H,00011H,0001EH,00011H,00011H,0001EH,0F000H,08800H,08800H,0F000H,08800H,08800H,0F000H,00000H,00000H,00000H,00000H,00000H ; BB\n\tDW\t00000H,00011H,00011H,00019H,00015H,00013H,00011H,00011H,0F000H,08800H,08800H,0F000H,08800H,08800H,0F000H,00000H,00000H,00000H,00000H,00000H ; NB\n\tDW\t00000H,00011H,00011H,00011H,0001FH,00011H,00011H,00011H,07000H,08800H,08000H,09800H,08800H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; HG\n\tDW\t00000H,0001EH,00011H,00011H,0001EH,00011H,00011H,00011H,07000H,08800H,08000H,09800H,08800H,08800H,07000H,00000H,00000H,00000H,00000H,00000H ; RG\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \"!\"\n\tDW\t00000H,0700EH,0700EH,0700EH,0700EH,0700EH,0700EH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \"\"\"\n\tDW\t00000H,0700EH,0700EH,0700EH,0700EH,0FC3FH,0FC3FH,0700EH,0700EH,0FC3FH,0FC3FH,0700EH,0700EH,0700EH,0700EH,00000H,00000H,00000H,00000H,00000H ; \"#\"\n\tDW\t00000H,0F00FH,0F81FH,09C39H,08C31H,08031H,08039H,0F01FH,0F80FH,09C01H,08C01H,08C31H,09C39H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"$\"\n\tDW\t00000H,0003CH,00C3CH,01C3CH,0383CH,07000H,0E000H,0C001H,08003H,00007H,0000EH,03C1CH,03C38H,03C30H,03C00H,00000H,00000H,00000H,00000H,00000H ; \"%\"\n\tDW\t00000H,0000EH,0001FH,0803BH,08031H,0803BH,0001FH,0000EH,0001FH,08C3BH,0DC31H,0F830H,0F838H,0DC1FH,08C0FH,00000H,00000H,00000H,00000H,00000H ; \"&\"\n\tDW\t00000H,08001H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \"'\"\n\tDW\t00000H,06000H,0E000H,0C001H,08003H,00007H,00006H,00006H,00006H,00006H,00007H,08003H,0C001H,0E000H,06000H,00000H,00000H,00000H,00000H,00000H ; \"(\"\n\tDW\t00000H,00006H,00007H,08003H,0C001H,0E000H,06000H,06000H,06000H,06000H,0E000H,0C001H,08003H,00007H,00006H,00000H,00000H,00000H,00000H,00000H ; \")\"\n\tDW\t00000H,08001H,08001H,08C31H,09C39H,0F81FH,0F00FH,08001H,08001H,0F00FH,0F81FH,09C39H,08C31H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \"*\"\n\tDW\t00000H,00000H,00000H,08001H,08001H,08001H,08001H,0F81FH,0F81FH,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \"+\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,08001H,08001H,08001H,08003H,00007H,00006H,00000H,00000H,00000H ; \",\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \"-\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \".\"\n\tDW\t00000H,00000H,00C00H,01C00H,03800H,07000H,0E000H,0C001H,08003H,00007H,0000EH,0001CH,00038H,00030H,00000H,00000H,00000H,00000H,00000H,00000H ; \"/\"\n\tDW\t00000H,0C003H,0E007H,0700EH,0381CH,01C38H,00C30H,00C30H,00C30H,00C30H,01C38H,0381CH,0700EH,0E007H,0C003H,00000H,00000H,00000H,00000H,00000H ; \"0\"\n\tDW\t00000H,08001H,08001H,0800FH,0800FH,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"1\"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00C00H,01C00H,0F803H,0F007H,0000EH,0001CH,00038H,00030H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \"2\"\n\tDW\t00000H,0FC3FH,0FC3FH,01C00H,03800H,07000H,0E000H,0F801H,0FC01H,00C00H,00C00H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"3\"\n\tDW\t00000H,07000H,0F000H,0F001H,0B003H,03007H,0300EH,0301CH,03038H,0FC3FH,0FC3FH,03000H,03000H,03000H,03000H,00000H,00000H,00000H,00000H,00000H ; \"4\"\n\tDW\t00000H,0FC3FH,0FC3FH,00030H,00030H,0F03FH,0F83FH,01C00H,00C00H,00C00H,00C00H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"5\"\n\tDW\t00000H,0F001H,0F007H,0000FH,0001CH,00038H,00030H,0F03FH,0F83FH,01C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"6\"\n\tDW\t00000H,0FC3FH,0FC3FH,00C00H,01C00H,03800H,07000H,0E000H,0C001H,08003H,00007H,00006H,00006H,00006H,00006H,00000H,00000H,00000H,00000H,00000H ; \"7\"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,01C38H,0F81FH,0F81FH,01C38H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"8\"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00C00H,01C00H,03800H,0F000H,0E00FH,0800FH,00000H,00000H,00000H,00000H,00000H ; \"9\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,08001H,08001H,00000H,00000H,00000H,00000H,00000H,00000H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \":\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,08001H,08001H,00000H,00000H,00000H,00000H,08001H,08001H,08001H,08003H,00007H,00006H,00000H,00000H,00000H ; \";\"\n\tDW\t00000H,06000H,0E000H,0C001H,08003H,00007H,0000EH,0001CH,0001CH,0000EH,00007H,08003H,0C001H,0E000H,06000H,00000H,00000H,00000H,00000H,00000H ; \"<\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0FC3FH,0FC3FH,00000H,00000H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \"=\"\n\tDW\t00000H,00006H,00007H,08003H,0C001H,0E000H,07000H,03800H,03800H,07000H,0E000H,0C001H,08003H,00007H,00006H,00000H,00000H,00000H,00000H,00000H ; \">\"\n\tDW\t00000H,0E00FH,0F01FH,03838H,01830H,03800H,07000H,0E000H,0C001H,08001H,08001H,00000H,00000H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \"?\"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,0FC31H,0FC31H,08C31H,08C31H,0FC31H,0FC31H,00030H,00038H,0F01FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"@\"\n\tDW\t00000H,08001H,0C003H,0E007H,0700EH,0381CH,01C38H,00C30H,00C30H,0FC3FH,0FC3FH,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \"A\"\n\tDW\t00000H,0F03FH,0F83FH,01C30H,00C30H,00C30H,01C30H,0F83FH,0F83FH,01C30H,00C30H,00C30H,01C30H,0F83FH,0F03FH,00000H,00000H,00000H,00000H,00000H ; \"B\"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00030H,00030H,00030H,00030H,00030H,00030H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"C\"\n\tDW\t00000H,0F03FH,0F83FH,01C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,01C30H,0F83FH,0F03FH,00000H,00000H,00000H,00000H,00000H ; \"D\"\n\tDW\t00000H,0FC3FH,0FC3FH,00030H,00030H,00030H,00030H,0F03FH,0F03FH,00030H,00030H,00030H,00030H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \"E\"\n\tDW\t00000H,0FC3FH,0FC3FH,00030H,00030H,00030H,00030H,0F03FH,0F03FH,00030H,00030H,00030H,00030H,00030H,00030H,00000H,00000H,00000H,00000H,00000H ; \"F\"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00030H,00030H,00030H,00030H,03C30H,03C30H,00C30H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \"G\"\n\tDW\t00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,0FC3FH,0FC3FH,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \"H\"\n\tDW\t00000H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"I\"\n\tDW\t00000H,00C00H,00C00H,00C00H,00C00H,00C00H,00C00H,00C00H,00C00H,00C00H,00C00H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"J\"\n\tDW\t00000H,01830H,03830H,07030H,0E030H,0C031H,08033H,0003FH,0003FH,08033H,0C031H,0E030H,07030H,03830H,01830H,00000H,00000H,00000H,00000H,00000H ; \"K\"\n\tDW\t00000H,00030H,00030H,00030H,00030H,00030H,00030H,00030H,00030H,00030H,00030H,00030H,00030H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \"L\"\n\tDW\t00000H,00C30H,00C30H,01C38H,03C3CH,07C3EH,0EC37H,0CC33H,08C31H,08C31H,00C30H,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \"M\"\n\tDW\t00000H,00C30H,00C30H,00C38H,00C3CH,00C3EH,00C37H,08C33H,0CC31H,0EC30H,07C30H,03C30H,01C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \"N\"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"O\"\n\tDW\t00000H,0F03FH,0F83FH,01C30H,00C30H,00C30H,01C30H,0F83FH,0F03FH,00030H,00030H,00030H,00030H,00030H,00030H,00000H,00000H,00000H,00000H,00000H ; \"P\"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,00C30H,00C30H,0CC30H,0EC30H,07830H,03838H,0FC1FH,0CC0FH,00000H,00000H,00000H,00000H,00000H ; \"Q\"\n\tDW\t00000H,0F03FH,0F83FH,01C30H,00C30H,00C30H,01C30H,0F83FH,0F03FH,0C031H,0E030H,07030H,03830H,01C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \"R\"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00030H,00038H,0F01FH,0F80FH,01C00H,00C00H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"S\"\n\tDW\t00000H,0FC3FH,0FC3FH,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \"T\"\n\tDW\t00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"U\"\n\tDW\t00000H,00C30H,00C30H,00C30H,00C30H,01C38H,01818H,0381CH,0300CH,0700EH,0E007H,0C003H,0C003H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \"V\"\n\tDW\t00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,08C31H,08C31H,08C31H,08C31H,08C31H,0FC3FH,0F81FH,0700EH,00000H,00000H,00000H,00000H,00000H ; \"W\"\n\tDW\t00000H,00C30H,00C30H,01C38H,0381CH,0700EH,0E007H,0C003H,0C003H,0E007H,0700EH,0381CH,01C38H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \"X\"\n\tDW\t00000H,00C30H,00C30H,01C38H,0381CH,0700EH,0E007H,0C003H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \"Y\"\n\tDW\t00000H,0FC3FH,0FC3FH,01C00H,03800H,07000H,0E000H,0C001H,08003H,00007H,0000EH,0001CH,00038H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \"Z\"\n\tDW\t00000H,0E007H,0E007H,00006H,00006H,00006H,00006H,00006H,00006H,00006H,00006H,00006H,00006H,0E007H,0E007H,00000H,00000H,00000H,00000H,00000H ; \"[\"\n\tDW\t00000H,00000H,00030H,00038H,0001CH,0000EH,00007H,08003H,0C001H,0E000H,07000H,03800H,01C00H,00C00H,00000H,00000H,00000H,00000H,00000H,00000H ; \"\\\"\n\tDW\t00000H,0E007H,0E007H,06000H,06000H,06000H,06000H,06000H,06000H,06000H,06000H,06000H,06000H,0E007H,0E007H,00000H,00000H,00000H,00000H,00000H ; \"]\"\n\tDW\t00000H,08001H,0C003H,0E007H,0700EH,0381CH,01818H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \"^\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,0FFFFH,0FFFFH,00000H,00000H ; \"_\"\n\tDW\t00000H,00006H,00007H,08003H,0C001H,0E000H,06000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \"`\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0F00FH,0F80FH,01C00H,00C00H,0FC1FH,0FC3FH,00C30H,00C30H,0FC3FH,0FC1FH,00000H,00000H,00000H,00000H,00000H ; \"a\"\n\tDW\t00000H,00030H,00030H,00030H,00030H,0F03FH,0F83FH,01C30H,00C30H,00C30H,00C30H,00C30H,01C30H,0F83FH,0F03FH,00000H,00000H,00000H,00000H,00000H ; \"b\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0FC0FH,0FC1FH,00038H,00030H,00030H,00030H,00030H,00038H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \"c\"\n\tDW\t00000H,00C00H,00C00H,00C00H,00C00H,0FC0FH,0FC1FH,00C38H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \"d\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00030H,00038H,0F01FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"e\"\n\tDW\t00000H,03000H,0F000H,0C001H,08001H,08001H,08001H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \"f\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0FC0FH,0FC1FH,00C38H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00C00H,01C00H,0F80FH,0F00FH,00000H ; \"g\"\n\tDW\t00000H,00030H,00030H,00030H,00030H,0F03FH,0F83FH,01C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \"h\"\n\tDW\t00000H,08001H,08001H,00000H,00000H,0800FH,0800FH,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"i\"\n\tDW\t00000H,08001H,08001H,00000H,00000H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08003H,0000FH,0000CH,00000H ; \"j\"\n\tDW\t00000H,0000CH,0000CH,0000CH,0180CH,0380CH,0700CH,0E00CH,0C00FH,0800FH,0C00DH,0E00CH,0700CH,0380CH,0180CH,00000H,00000H,00000H,00000H,00000H ; \"k\"\n\tDW\t00000H,0800FH,0800FH,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"l\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0303EH,0F83FH,0FC33H,08C31H,08C31H,08C31H,08C31H,08C31H,08C31H,08C31H,00000H,00000H,00000H,00000H,00000H ; \"m\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0F03FH,0F83FH,01C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \"n\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \"o\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0F03FH,0F83FH,01C30H,00C30H,00C30H,00C30H,00C30H,01C30H,0F83FH,0F03FH,00030H,00030H,00030H,00030H,00000H ; \"p\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0FC0FH,0FC1FH,00C38H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00C00H,00C00H,00C00H,00C00H,00000H ; \"q\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0F819H,0F81BH,0001FH,0001EH,00018H,00018H,00018H,00018H,00018H,00018H,00000H,00000H,00000H,00000H,00000H ; \"r\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0FC0FH,0FC1FH,00030H,00030H,0F01FH,0F80FH,00C00H,00C00H,0F83FH,0F03FH,00000H,00000H,00000H,00000H,00000H ; \"s\"\n\tDW\t00000H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,08001H,0C001H,0F000H,03000H,00000H,00000H,00000H,00000H,00000H ; \"t\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \"u\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00C30H,00C30H,00C30H,01C38H,01818H,0381CH,0700EH,0E007H,0C003H,08001H,00000H,00000H,00000H,00000H,00000H ; \"v\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00C30H,00C30H,00C30H,00C30H,08C31H,08C31H,08C31H,0FC3FH,0F81FH,0700EH,00000H,00000H,00000H,00000H,00000H ; \"w\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00C30H,01C38H,0781EH,0F00FH,0C003H,0C003H,0F00FH,0781EH,01C38H,00C30H,00000H,00000H,00000H,00000H,00000H ; \"x\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00C00H,01C00H,0F80FH,0F00FH,00000H ; \"y\"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0FC3FH,0FC3FH,03800H,07000H,0E001H,08007H,0000EH,0001CH,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \"z\"\n\tDW\t00000H,0F000H,0F001H,08001H,08001H,08003H,00003H,0000FH,0000FH,00003H,08003H,08001H,08001H,0F000H,0F000H,00000H,00000H,00000H,00000H,00000H ; \"{\"\n\tDW\t00000H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \"|\"\n\tDW\t00000H,0000FH,0800FH,08001H,08001H,0C001H,0C000H,0F000H,0F000H,0C000H,0C001H,08001H,08001H,0000FH,0000FH,00000H,00000H,00000H,00000H,00000H ; \"}\"\n\tDW\t00000H,0000EH,00C1FH,0DC3BH,0F831H,07000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \"~\"\n\tDW\t00000H,08001H,0C003H,0C003H,06006H,06006H,0300CH,0300CH,01818H,01818H,00C30H,00C30H,00C30H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; &7F DEL\n\tDW\t00000H,0F003H,0F807H,01C0EH,00C0CH,0C03FH,0C03FH,0000CH,0000CH,0803FH,0803FH,00C0CH,01C0EH,0F807H,0F003H,00000H,00000H,00000H,00000H,00000H ; &80 euro symbol\n\tDW\t00000H,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; &81 block (teletext)\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,08003H,08003H,08001H,08003H,00007H,0000EH,00000H,00000H,00000H ; &82 single low quotation mark\n\tDW\t00000H,07000H,0F000H,0C001H,08001H,08001H,08001H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08003H,0000FH,0000EH,00000H ; &83 small letter f with hook\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,01C0EH,01C0EH,00C06H,01C0EH,0381CH,07038H,00000H,00000H,00000H ; &84 double low quotation mark\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,09819H,09819H,00000H,00000H,00000H,00000H,00000H ; &85 horizontal ellipsis\n\tDW\t00000H,08001H,08001H,08001H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; &86 dagger\n\tDW\t00000H,08001H,08001H,08001H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,0F00FH,0F00FH,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; &87 double dagger\n\tDW\t08001H,0C003H,06006H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &88 circumflex accent\n\tDW\t00000H,03038H,0706CH,0E06CH,0C039H,08003H,00007H,0000EH,0001CH,00038H,00070H,01C67H,0B60DH,0B60DH,01C07H,00000H,00000H,00000H,00000H,00000H ; &89 per mille\n\tDW\t06006H,0E007H,0C003H,0F00FH,0F81FH,01C38H,00C30H,00038H,0F01FH,0F80FH,01C00H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; &8A capital S caron\n\tDW\t00000H,00000H,00000H,08001H,08003H,00007H,0000EH,0000CH,0000EH,00007H,08003H,08001H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &8B left angle quotation mark\n\tDW\t00000H,0FC0FH,0FC1FH,08039H,08031H,08031H,08031H,0F831H,0F831H,08031H,08031H,08031H,08039H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; &8C capital OE ligature\n\tDW\t00000H,00000H,08001H,0C003H,0E007H,0F00FH,0B81DH,09C39H,08C31H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H,00000H ; &8D up arrow (teletext)\n\tDW\t06006H,0E007H,0C003H,0FC3FH,0FC3FH,03800H,07000H,0E000H,0C001H,08003H,00007H,0000EH,0001CH,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; &8E capital Z caron\n\tDW\t00000H,00000H,08001H,08003H,00007H,0000EH,0001CH,0FC3FH,0FC3FH,0001CH,0000EH,00007H,08003H,08001H,00000H,00000H,00000H,00000H,00000H,00000H ; &8F left arrow (teletext)\n\tDW\t00000H,00000H,08001H,0C001H,0E000H,07000H,03800H,0FC3FH,0FC3FH,03800H,07000H,0E000H,0C001H,08001H,00000H,00000H,00000H,00000H,00000H,00000H ; &90 right arrow (teletext)\n\tDW\t00000H,07000H,0E000H,0C001H,08001H,0C001H,0C001H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &91 left single quotation mark\n\tDW\t00000H,08003H,08003H,08001H,08003H,00007H,0000EH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &92 right single quotation mark\n\tDW\t00000H,01C0EH,0381CH,07038H,06030H,07038H,07038H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &93 left double quotation mark\n\tDW\t00000H,01C0EH,01C0EH,00C06H,01C0EH,0381CH,07038H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &94 right double quotation mark\n\tDW\t00000H,00000H,00000H,00000H,00000H,08001H,0C003H,0E007H,0E007H,0C003H,08001H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &95 bullet\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,0F81FH,0F81FH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &96 en dash\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,0FE7FH,0FE7FH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &97 em dash\n\tDW\t06007H,0C00DH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &98 small tilde\n\tDW\t00000H,00000H,0C67EH,0C67EH,0EE18H,0FE18H,0D618H,0D618H,0C618H,0C618H,0C618H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &99 trade mark sign\n\tDW\t00000H,06006H,0E007H,0C003H,00000H,0FC0FH,0FC1FH,00038H,00038H,0F01FH,0F80FH,01C00H,01C00H,0F83FH,0F03FH,00000H,00000H,00000H,00000H,00000H ; &9A small S caron\n\tDW\t00000H,00000H,00000H,08001H,0C001H,0E000H,07000H,03000H,07000H,0E000H,0C001H,08001H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &9B right angle quotation mark\n\tDW\t00000H,00000H,00000H,00000H,00000H,0780EH,0FC1FH,0CC3BH,08C31H,0FC31H,0FC31H,08031H,0C03BH,0FC1FH,07C0EH,00000H,00000H,00000H,00000H,00000H ; &9C small OE ligature\n\tDW\t00000H,0381CH,0381CH,0381CH,0381CH,0381CH,0381CH,0381CH,0381CH,0381CH,0381CH,0381CH,0381CH,0381CH,0381CH,00000H,00000H,00000H,00000H,00000H ; &9D double line (teletext)\n\tDW\t00000H,06006H,0E007H,0C003H,00000H,0FC3FH,0FC3FH,03800H,07000H,0E001H,08007H,0000EH,0001CH,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; &9E small Z caron\n\tDW\t0300CH,0300CH,0300CH,00000H,00C30H,01C38H,0381CH,0700EH,0E007H,0C003H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; &9F capital Y diaeresis\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; &A0 non-break space\n\tDW\t00000H,00000H,00000H,00000H,00000H,08001H,08001H,00000H,00000H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,08001H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,08001H,08001H,0FC0FH,0FC1FH,08039H,08031H,08031H,08031H,08031H,08039H,0FC1FH,0FC0FH,08001H,08001H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0F003H,0F807H,01C0EH,00C0CH,0000CH,0000CH,0803FH,0803FH,0000CH,0000CH,0000CH,0000CH,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00C30H,01C38H,0F81FH,0F00FH,0700EH,0700EH,0F00FH,0F81FH,01C38H,00C30H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00C30H,01C38H,0381CH,0700EH,0FC3FH,0FC3FH,08001H,08001H,0FC3FH,0FC3FH,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,08001H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,08001H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00030H,00038H,0F01FH,0F81FH,01C38H,01C38H,0F81FH,0F80FH,01C00H,00C00H,00C30H,01C38H,0F81FH,0F00FH,00000H ; \" \"\n\tDW\t01818H,01818H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,0CC33H,0EC37H,06C36H,00C36H,00C36H,00C36H,06C36H,0EC37H,0CC33H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H ; \" \"\n\tDW\t00000H,0F00FH,0F80FH,01C00H,00C00H,0FC0FH,0FC1FH,00C38H,00C38H,0FC1FH,0FC0FH,00000H,00000H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,01C0EH,0381CH,07038H,07038H,0381CH,01C0EH,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0FC3FH,0FC3FH,00C00H,00C00H,00C00H,00C00H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,0E007H,0E007H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,0CC37H,0EC37H,06C36H,06C36H,0CC37H,08C37H,0CC37H,0EC36H,06C36H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H ; \" \"\n\tDW\t00000H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t0C003H,0E007H,0700EH,0381CH,0700EH,0E007H,0C003H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,08001H,08001H,08001H,08001H,0FC3FH,0FC3FH,08001H,08001H,08001H,08001H,00000H,00000H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0C00FH,0E00FH,07000H,07000H,0E003H,0C007H,0000EH,0000CH,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0C00FH,0E00FH,07000H,07000H,0E00FH,0E00FH,07000H,07000H,0E00FH,0C00FH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,06000H,0E000H,0C001H,08003H,00007H,00006H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,06030H,06030H,06030H,06030H,06030H,06030H,06030H,0F830H,0FC3FH,08C3FH,00030H,00030H,00030H,00030H,00000H ; \" \"\n\tDW\t00000H,08C0FH,08C1FH,08C39H,08C31H,08C31H,08C39H,08C1FH,08C0FH,08C01H,08C01H,08C01H,08C01H,08C01H,08C01H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,08001H,08001H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,08001H,08001H,08003H,00007H,00006H,00000H ; \" \"\n\tDW\t00000H,08003H,08007H,0800FH,0800DH,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,00000H,00000H,07038H,0381CH,01C0EH,01C0EH,0381CH,07038H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0000CH,0000CH,0000CH,0000CH,0000CH,0000CH,0000CH,0000CH,01C0CH,03C0CH,07C00H,0EC00H,0CC01H,08C01H,0FC01H,0FC01H,00C00H,00C00H,00000H ; \" \"\n\tDW\t00000H,00030H,00030H,00030H,00030H,00030H,00030H,00030H,00030H,0F831H,0FC31H,00C00H,00C00H,07C00H,0F800H,0C001H,08001H,0FC01H,0FC01H,00000H ; \" \"\n\tDW\t00000H,0003EH,0003FH,08003H,08003H,0003FH,0003FH,08003H,08003H,01C3FH,03C3EH,07C00H,0EC00H,0CC01H,08C01H,0FC01H,0FC01H,00C00H,00C00H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,08001H,08001H,00000H,00000H,08001H,08001H,08003H,00007H,0000EH,0001CH,00C18H,01C1CH,0F80FH,0F00FH,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t01807H,0B80FH,0F01DH,0E018H,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t0300CH,0300CH,0300CH,00000H,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,06006H,06006H,0C003H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0FC0FH,0FC1FH,08039H,08031H,08031H,08031H,0F83FH,0F83FH,08031H,08031H,08031H,08031H,0FC31H,0FC31H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,00C30H,00030H,00030H,00030H,00030H,00030H,00030H,00C30H,01C38H,0F81FH,0F00FH,08001H,08003H,00007H,00006H,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,0FC3FH,0FC3FH,00030H,00030H,0F03FH,0F03FH,00030H,00030H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,0FC3FH,0FC3FH,00030H,00030H,0F03FH,0F03FH,00030H,00030H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,0FC3FH,0FC3FH,00030H,00030H,0F03FH,0F03FH,00030H,00030H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t0300CH,0300CH,0300CH,00000H,00000H,0FC3FH,0FC3FH,00030H,00030H,0F03FH,0F03FH,00030H,00030H,0FC3FH,0FC3FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t0300CH,0300CH,0300CH,00000H,00000H,0F00FH,0F00FH,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0F00FH,0F80FH,01C0CH,00C0CH,00C0CH,00C0CH,08C3FH,08C3FH,00C0CH,00C0CH,00C0CH,01C0CH,0F80FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t01807H,0B80FH,0F01DH,0E018H,00000H,00C30H,00C3CH,00C3EH,00C37H,08C33H,0CC31H,0EC30H,07C30H,03C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t01807H,0B80FH,0F01DH,0E018H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t0300CH,0300CH,0300CH,00000H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,01818H,0381CH,0700EH,0E007H,0C003H,0E007H,0700EH,0381CH,01818H,00000H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0F00FH,0F81FH,01C38H,03C30H,07C30H,0EC30H,0CC31H,08C33H,00C37H,00C3EH,00C3CH,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t0300CH,0300CH,0300CH,00000H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00C30H,01C38H,0381CH,0700EH,0E007H,0C003H,08001H,08001H,08001H,08001H,08001H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00030H,00030H,0F03FH,0F83FH,01C30H,00C30H,00C30H,01C30H,0F83FH,0F03FH,00030H,00030H,00030H,00030H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0C00FH,0E01FH,07038H,03030H,03030H,03030H,0F031H,0F831H,01C30H,00C30H,00C30H,01C30H,0F831H,0F031H,00030H,00030H,00030H,00030H,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,0F00FH,0F80FH,01C00H,00C00H,0FC0FH,0FC1FH,00C38H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,0F00FH,0F80FH,01C00H,00C00H,0FC0FH,0FC1FH,00C38H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,0F00FH,0F80FH,01C00H,00C00H,0FC0FH,0FC1FH,00C38H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t01807H,0B80FH,0F01DH,0E018H,00000H,0F00FH,0F80FH,01C00H,00C00H,0FC0FH,0FC1FH,00C38H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0300CH,0300CH,0300CH,00000H,0F00FH,0F80FH,01C00H,00C00H,0FC0FH,0FC1FH,00C38H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,06006H,0C003H,08001H,0F00FH,0F80FH,01C00H,00C00H,0FC0FH,0FC1FH,00C38H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0781EH,0FC1FH,08C03H,08C01H,0FC1FH,0FC3FH,08031H,08031H,0F83FH,0F81FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0FC0FH,0FC1FH,00038H,00030H,00030H,00030H,00030H,00038H,0FC1FH,0FC0FH,0C000H,0C001H,08003H,00003H,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00030H,00038H,0F01FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00030H,00038H,0F01FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00030H,00038H,0F01FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0300CH,0300CH,0300CH,00000H,0F00FH,0F81FH,01C38H,00C30H,0FC3FH,0FC3FH,00030H,00038H,0F01FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,0800FH,0800FH,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,0800FH,0800FH,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,0800FH,0800FH,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0300CH,0300CH,0300CH,00000H,0800FH,0800FH,08001H,08001H,08001H,08001H,08001H,08001H,0F00FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0601EH,0E01FH,0C003H,0E007H,0700EH,0380CH,01C00H,00C00H,0FC0FH,0FC1FH,01C38H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t01807H,0B80FH,0F01DH,0E018H,00000H,0F03FH,0F83FH,01C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t01807H,0B80FH,0F01DH,0E018H,00000H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0300CH,0300CH,0300CH,00000H,00000H,0F00FH,0F81FH,01C38H,00C30H,00C30H,00C30H,01C38H,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,08001H,08001H,00000H,00000H,0FC3FH,0FC3FH,00000H,00000H,08001H,08001H,00000H,00000H,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,00000H,00000H,00000H,00000H,0F00FH,0F81FH,07C38H,0EC30H,0CC31H,08C33H,00C37H,01C3EH,0F81FH,0F00FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00006H,00007H,08003H,08001H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t08001H,0C003H,0E007H,06006H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t00000H,0300CH,0300CH,0300CH,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00000H,00000H,00000H,00000H,00000H ; \" \"\n\tDW\t06000H,0E000H,0C001H,08001H,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00C00H,01C00H,0F80FH,0F00FH,00000H ; \" \"\n\tDW\t00000H,00030H,00030H,00030H,00030H,0F03FH,0F83FH,01C30H,00C30H,00C30H,00C30H,00C30H,01C30H,0F83FH,0F03FH,00030H,00030H,00030H,00030H,00000H ; \" \"\n\tDW\t00000H,0300CH,0300CH,0300CH,00000H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C30H,00C38H,0FC1FH,0FC0FH,00C00H,01C00H,0F80FH,0F00FH,00000H ; \" \"\n;\n; Structure {x%,y%}\n;\nptfmt:\tdd\t8\t\t; Total length (bytes)\nptlnk0:\tdd\tptlnk1 - ptlnk0\t; Link to next member\n\tdb\t'x%',0\t\t; Member name\n\tdd\t0\t\t; Member offset (bytes)\nptlnk1:\tdd\t0\t\t; Terminating link\n\tdb\t'y%',0\t\t; Member name\n\tdd\t4\t\t; Member offset (bytes)\n;\n; Structure {a&,b&,c&,d&}\n;\nb4fmt:\tdd\t4\t\t; Total length (bytes)\nb4lnk0:\tdd\tb4lnk1 - b4lnk0\t; Link to next member\n\tdb\t'a&',0\t\t; Member name\n\tdd\t0\t\t; Member offset (bytes)\nb4lnk1:\tdd\tb4lnk2 - b4lnk1\t; Link to next member\n\tdb\t'b&',0\t\t; Member name\n\tdd\t1\t\t; Member offset (bytes)\nb4lnk2:\tdd\tb4lnk3 - b4lnk2\t; Link to next member\n\tdb\t'c&',0\t\t; Member name\n\tdd\t2\t\t; Member offset (bytes)\nb4lnk3:\tdd\t0\t\t; Terminating link\n\tdb\t'd&',0\t\t; Member name\n\tdd\t3\t\t; Member offset (bytes)\n;\n; FastVar token type values:\n;\nfvtab:\tdb\t1\t\t; &19 v&  Unsigned byte (8 bits)\n\tdb\t4\t\t; &1A v%  Signed dword (32 bits)\n\tdb\t8\t\t; &1B v#  Float double (64 bits)\n\tdb\t10\t\t; &1C v   Variant numeric (80 bits)\n\tdb\t16\t\t; &1D v{} Structure (8+8 bytes)\n\tdb\t40\t\t; &1E v%% Signed qword (64 bits)\n\tdb\t136\t\t; &1F v$  String (4+4 bytes)\n;\n\tSEGMENT .data\t\t; Necessary for Position Independent Code\n;\n; Array of function entry points:\n;\n\ttimes 3\tdb 0\t\t; Padding\nfnarr:\tdb\t1\t\t; Number of dimensions\n\tdd\t(fnarrt-fnarr0)/8 ; Number of entries\n\tcheckalign\nfnarr0:\tdq\tloadn\t\t; Load numeric \n\tdq\tloads\t\t; Load string\n\tdq\tstoren\t\t; Store numeric\n\tdq\tstores\t\t; Store string\n\tdq\tgetvar\t\t; Get variable address\n\tdq\tputvar\t\t; Create variable\n\tdq\texpr\t\t; Evaluate expression\n\tdq\titem\t\t; Evaluate item\n\tdq\tlexan\t\t; Lexical analysis (tokenise)\n\tdq\ttoken\t\t; Print character or keyword\n\tdq\txfloat\t\t; Convert integer to float\n\tdq\txfix\t\t; Convert float to integer\n\tdq\tstr00\t\t; Convert a number to a string\n\tdq\tcon\t\t; Convert a string to a number\n\tdq\tsortup\t\t; (Reserved in BBCSDL)\n\tdq\tsortdn\t\t; (Reserved in BBCSDL)\n\tdq\t0\t\t; Reserved for hook\n\tdq\txeq\t\t; Return to BASIC\n\tdq\tputevt\t\t; Store event in queue\n\tdq\tgfxPrimitivesGetFont\n\tdq\tgfxPrimitivesSetFont\n\tdq\tRedefineChar\nfnarrt:\n;\n"
  },
  {
    "path": "src/bbeval.c",
    "content": "/*****************************************************************\\\n*       32-bit or 64-bit BBC BASIC Interpreter                    *\n*       (C) 2017-2026  R.T.Russell  http://www.rtrussell.co.uk/   *\n*                                                                 *\n*       The name 'BBC BASIC' is the property of the British       *\n*       Broadcasting Corporation and used with their permission,  *\n*       it is not transferrable to a forked or derived work.      *\n*                                                                 *\n*       bbeval.c: Expression evaluation, functions and arithmetic *\n*       Version 1.43c, 03-Feb-2026                                *\n\\*****************************************************************/\n\n#define __USE_MINGW_ANSI_STDIO 1\n\n#include <stdlib.h>\n#include <stdio.h>\n#include <stdint.h>\n#include <unistd.h>\n#include <string.h>\n#include <math.h>\n#include <errno.h>\n#include <setjmp.h>\n#include \"BBC.h\"\n\n#if defined __arm__ || defined __aarch64__ || defined __EMSCRIPTEN__ || defined __ANDROID__\n#define powl pow\n#define sqrtl sqrt\n#define sinl sin\n#define cosl cos\n#define tanl tan\n#define asinl asin\n#define acosl acos\n#define atanl atan\n#define expl exp\n#define logl log\n#define fabsl fabs\n#define truncl trunc\n#define EFORMAT \"%.*E\"\n#define FFORMAT \"%.*f\"\n#define GFORMAT \"%.*G\"\n#else\n#define EFORMAT \"%.*LE\"\n#define FFORMAT \"%.*Lf\"\n#define GFORMAT \"%.*LG\"\n#endif\n\n// Routines in bbmain:\nvoid check (void) ;\t\t// Check for running out of memory\nint range0 (char) ;\t\t// Test char for valid in a variable name\nsigned char nxt (void) ;\t// Skip spaces, handle line continuation\nvoid error (int, const char*) ;\t// Process an error\nvoid outchr (unsigned char) ;\t// Output a character\nvoid text (const char *) ;\t// Output NUL-terminated string\nvoid crlf (void) ;\t\t// Output a newline\nunsigned short report (void) ;\t// Put error message in string accumulator\nchar *moves (STR *, int) ;\t// Move string into temporary buffer\nvoid fixs (VAR) ;\t\t// Copy to string accumulator\nheapptr *pushs (VAR) ;\t\t// Push string on stack\nvoid comma (void) ;\t\t// Check for comma\nvoid braket (void) ;\t\t// Check for closing parenthesis\nchar *alloct (int) ;\t\t// Allocate a temporary string buffer\nint arrlen (void **) ;\t\t// Count elements in an array\nvoid *getvar (unsigned char *) ;\t// Get a variable's pointer and type\nvoid *getput (unsigned char *) ;\t// Get, and if necessary create, var\nvoid *putvar (void *ptr, unsigned char*) ;\nchar *lexan (char *, char *, unsigned char) ;\nsigned char *gettop (signed char *, unsigned short *) ;\nunsigned short setlin (signed char *, char **) ;\nsigned char *search (signed char *, signed char) ;\nchar *allocs (STR *, int) ;\n\n// Routines in bbexec:\nvoid modify (VAR, void *, unsigned char, signed char) ;\nvoid modifs (VAR, void *, unsigned char, signed char) ;\nvoid storen (VAR, void *, unsigned char) ;\nvoid procfn (signed char) ;\t// User-defined PROC or FN\nVAR xeq (void) ;\t\t// Execute\n\n// Routines in bbcmos:\nunsigned char osrdch (void) ;\t// Get character from console input\nint oskey (int) ;\t\t// Wait for character or test key\nint getime (void) ;\t\t// Return centisecond count\nint getims (void) ;\t\t// Get clock time string to accs\nint vtint (int, int) ;\t\t// Get RGB pixel colour or -1\nint vpoint (int, int) ;\t\t// Get palette index or -1\nvoid getcsr (int*, int*) ;\t// Get text cursor (caret) coords\nint vgetc (int, int) ;\t\t// Get character at specified coords\nint oscall (int) ;\t\t// Call an emulated OS function\nint widths (char *, int) ;\t// Get string width in graphics units\nint adval (int) ;\t\t// ADVAL function\nvoid *osopen (int, char *) ;\t// Open a file\nunsigned char osbget (void*, int*) ; // Get a byte from a file\nlong long getptr (void*) ;\t// Get file pointer\nlong long getext (void*) ;\t// Get file length\nlong long geteof (void*) ;\t// Get EOF status\nvoid *sysadr (char *) ;\t\t// Get the address of an API function\nint getmodeno (void) ;\t\t// Get the current MODE number\n\n// Global jump buffer:\nextern jmp_buf env ;\n\n#if defined __arm__ || defined __aarch64__ || defined __EMSCRIPTEN__ || defined __ANDROID__\nstatic void setfpu(void) {}\nstatic double xpower[9] = {1.0e1, 1.0e2, 1.0e4, 1.0e8, 1.0e16, 1.0e32, 1.0e64,\n\t\t\t   1.0e128, 1.0e256} ;\n#else\nstatic void setfpu(void) { unsigned int mode = 0x37F; asm (\"fldcw %0\" : : \"m\" (*&mode)); } \nstatic long double xpower[13] = {1.0e1L, 1.0e2L, 1.0e4L, 1.0e8L, 1.0e16L, 1.0e32L, 1.0e64L,\n\t\t\t\t1.0e128L, 1.0e256L, 1.0e512L, 1.0e1024L, 1.0e2048L, 1.0e4096L} ;\n#endif\n\n// Get possibly-parenthesised variable:\nstatic void *getvbr(unsigned char *ptype)\n{\n\tif (nxt () == '(')\n\t    {\n\t\tvoid *ptr ;\n\t\tesi++ ;\n\t\tptr = getvbr (ptype) ;\n\t\tbraket () ;\n\t\treturn ptr ;\n\t    }\n\treturn getvar (ptype) ;\n}\n\n// Convert a numeric value to a NUL-terminated decimal string:\nint str (VAR v, char *dst, int format)\n{\n\tint n ;\n\tchar *p ;\n\tchar fmt[5] = \"%d\" ;\n\tint width = format & 0xFF ;\n        int prec = (format & 0xFF00) >> 8 ;\n\n\tswitch (format & 0x30000)\n\t    {\n\t\tcase 0x10000:\n\t\t\tif (prec) prec-- ;\n\t\t\tif (v.i.t == 0) v.f = v.i.n ;\n\t\t\tn = sprintf(dst, EFORMAT, prec, v.f) ;\n\t\t\tstrcpy (fmt, \"%-3d\") ;\n\t\t\tbreak ;\n\n\t\tcase 0x20000:\n\t\t\tif (v.i.t == 0) v.f = v.i.n ;\n\t\t\tn = sprintf(dst, FFORMAT, prec, v.f) ;\n\t\t\tbreak ;\n\n\t\tdefault:\n\t\tif (prec == 0) prec = 9 ;\n\t\tif (v.i.t == 0)\n\t\t    {\n\t\t\tn = sprintf(dst, \"%lld\", v.i.n) ; // ARM (no 80-bit float)\n\t\t\tif (n <= prec) break ;\n\t\t\tv.f = v.i.n ;\n\t\t    }\n\t\tn = sprintf(dst, GFORMAT, prec, v.f) ;\n\t    }\n\n\tp = strchr (dst, 'E') ;\n\tif (p)\n\t    {\n\t\tsprintf (p + 1, fmt, atoi (p + 1)) ;\n\t\tn = strlen (dst) ;\n\t    }\n\n\tif (n < width) \n\t    {\n\t\tmemmove (dst + width - n, dst, n + 1) ;\n\t\tmemset (dst, ' ', width - n) ;\n\t\tn = width ;\n\t    }\n\n\tif (format & 0x800000)\n\t    {\n\t\tp = strchr (dst, '.') ;\n\t\tif (p) *p = ',' ;\n\t    }\n\treturn n ;\n}\n\n// Convert a numeric value to a NUL-terminated hexadecimal string:\nint strhex (VAR v, char *dst, int field)\n{\n#ifdef _WIN32\n\tchar fmt[7] = \"%*I64X\" ;\n#else\n\tchar fmt[6] = \"%*llX\" ;\n#endif\n\tlong long n ;\n\n\tif (v.i.t)\n\t    {\n\t\tn = v.f ;\n\t\tif (n != truncl (v.f))\n\t\t\terror (20, NULL) ; // 'Number too big'\n\t    }\n\telse\n\t\tn = v.i.n ;\n\n\tif ((liston & BIT2) == 0)\n\t    {\n\t\tint i = n ;\n\t\tif (i != n)\n\t\t\terror (20, NULL) ; // 'Number too big'\n\t\tn &= 0xFFFFFFFF ;\n\t    }\n\n\treturn sprintf(dst, fmt, field, n) ;\n}\n\n// Multiply by an integer-power of 10:\n#if defined __arm__ || defined __aarch64__ || defined __EMSCRIPTEN__ || defined __ANDROID__\nstatic double xpow10 (double n, int p)\n{\n\tint f = 0, i = 0 ;\n\n\tif (p >= 512)\n\t\terror (20, NULL) ; // 'Number too big'\n\tif (p <= -512)\n\t\treturn 0.0L ;\n#else\nstatic long double xpow10 (long double n, int p)\n{\n\tint f = 0, i = 0 ;\n\tsetfpu () ;\n\n\tif (p >= 8192)\n\t\terror (20, NULL) ; // 'Number too big'\n\tif (p <= -8192)\n\t\treturn 0.0L ;\n#endif\n\n\tif (p < 0)\n\t    {\n\t\tp = -p ;\n\t\tf = 1 ;\n\t    }\n\n\twhile (p)\n\t    {\n\t\tif (p & 1)\n\t\t    {\n\t\t\tif (f)\n\t\t\t\tn /= xpower[i] ;\n\t\t\telse\n\t\t\t\tn *= xpower[i] ;\n\t\t    }\n\t\ti++ ;\n\t\tp = p >> 1 ;\n\t    }\n\treturn n ;\n}\n\n// Get an unsigned integer from a string:\n\nstatic unsigned long long number (int *pcount, int *ptrunc)\n{\n\tunsigned long long n = 0 ;\n\twhile (1)\n\t    {\n\t\tchar al = *esi ;\n\t\tif ((al < '0') || (al > '9'))\n\t\t\tbreak ;\n\t\tesi++ ;\n\t\t(*pcount)++ ;\n\t\tif ((n > 0x1999999999999999L) || ((n == 0x1999999999999999L) && \n\t\t\t\t((al > '5') || *ptrunc)))\n\t\t\t(*ptrunc)++ ;\n\t\telse\n\t\t\tn = n * 10 + (al - '0') ;\n\t    }\n\treturn n ;\n}\n\n// Get an unsigned numeric constant:\nVAR con (void)\n{\n\tVAR v ;\n\tunsigned long long i = 0, f = 0 ;\n\tint e = 0, ni, nf = 0, ne = 0, nt = 0 ;\n\tsetfpu () ;\n\n\ti = number (&ni, &nt) ;\n\tv.i.n = i ;\n\tv.i.t = 0 ;\n\tif ((*esi == '.') || (v.i.n < 0) || (nt != 0))\n\t    {\n\t\tv.i.t = 1 ; // ARM\n\t\tv.f = i ; // integer overflow\n\t    }\n\n\tif (nt != 0)\n\t    {\n\t\tv.f = xpow10 (v.f, nt) ;\n\t\tnt = 0 ;\n\t    }\n\n\tif (*esi == '.')\n\t    {\n\t\tesi++ ;\n\t\tf = number (&nf, &nt) ;\n\t\tv.f += xpow10 (f, nt - nf) ;\n\t    }\n\n\tif ((*esi == 'E') || ((liston & BIT3) && (*esi == 'e')))\n\t    {\n\t\tint neg = 0 ;\n\n\t\tesi++ ;\n\t\tif (*esi == '-')\n\t\t    {\n\t\t\tesi++ ;\n\t\t\tneg = 1 ;\n\t\t    }\n\t\telse if (*esi == '+')\n\t\t\tesi++ ;\n\t\te = number (&ne, &nt) ;\n\t\tif (neg)\n\t\t\te = -e ;\n\n\t\tif (v.i.t == 0)\n\t\t    {\n\t\t\tv.i.t = 1 ; // ARM\n\t\t\tv.f = i ;\n\t\t    }\n\t\tv.f = xpow10 (v.f, e) ;\n\t\tif ((v.i.t == 0) || (v.i.t == (short)0x8000))\n\t\t\tv.f = 0.0L ; // underflow\n\t\tif (isinf(v.f) || (v.i.t == -1))\n\t\t\terror (20, NULL) ; // 'Number too big'\n\t    }\n\n\tif (*esi == '#') esi++ ;\n\treturn v ;\n}\n\n// Get a string constant (quoted string):\nVAR cons (void)\n{\n\tVAR v ;\n\tsigned char al ;\n\tchar *p = accs ;\n\twhile (1)\n\t    {\n\t\tal = *esi++ ;\n\t\tif (al == 0x0D)\n\t\t\terror (9, NULL) ; // 'Missing \"'\n\t\tif ((al == '\"') && (*esi++ != '\"'))\n\t\t    {\n\t\t\tesi-- ;\n\t\t\tv.s.p = accs - (char *) zero ;\n\t\t\tv.s.l = p - accs ;\n\t\t\tv.s.t = -1 ;\n\t\t\tbreak ;\n\t\t    }\n\t\t*p++ = al ;\n\t    }\n\treturn v ;\n}\n\n// Load a numeric variable:\n// type is 1, 4, 5, 8, 10, 32, 36 or 40\nVAR loadn (void *ptr, unsigned char type)\n{\n\tVAR v ;\n\tswitch (type)\n\t    {\n\t\tcase 1:\n\t\t\tv.i.t = 0 ;\n\t\t\tv.i.n = *(unsigned char*)ptr ;\n\t\t\tbreak ;\n\n\t\tcase 4:\n\t\t\tv.i.t = 0 ;\n\t\t\tv.i.n = ILOAD(ptr) ;\n\t\t\tbreak ;\n\n\t\tcase 5:\n\t\t\t{\n\t\t\tint ecx = *((unsigned char*)ptr + 4) ;\n\t\t\tint edx = ILOAD(ptr) ;\n\t\t\tint sign = (edx < 0) ;\n\t\t\tif (ecx == 0)\n\t\t\t    {\n\t\t\t\tv.i.t = 0 ;\n\t\t\t\tv.i.n = edx ;\n\t\t\t\tbreak ;\n\t\t\t    }\n\t\t\tecx += 895 ;\n\t\t\tedx = edx << 1 ;\n\t\t\tecx = (ecx << 20) | ((unsigned int)edx >> 12) ;\n\t\t\tedx = edx << 20 ;\n\t\t\tif (sign) ecx |= 0x80000000 ;\n\t\t\tv.s.p = edx ;\n\t\t\tv.s.l = ecx ;\n\t\t\tv.i.t = 1 ; // ARM\n\t\t\tv.f = v.d.d ;\n\t\t\t}\n\t\t\tbreak ;\n\n\t\tcase 8:\n\t\t\tif (ILOAD((char *) ptr + 4) == 0)\n\t\t\t    {\n\t\t\t\tv.i.t = 0 ;\n\t\t\t\tv.i.n = ILOAD(ptr) ; // 64-bit variant\n\t\t\t\tbreak ;\n\t\t\t    }\n\t\t\t{\n\t\t\t// v.s.p = *(heapptr*)ptr ;\n\t\t\t// v.s.l = *(int *)((char *)ptr + 4) ;\n\t\t\tmemcpy (&v.s.p, ptr, 8) ; // may be unaligned\n\t\t\tv.i.t = 1 ; // ARM\n\t\t\tv.f = v.d.d ;\n\t\t\t}\n\t\t\tbreak ;\n\n\t\tcase 10:\n\t\t\t// v.s.p = *(heapptr*)ptr ;\n\t\t\t// v.s.l = *(int *)((char *)ptr + 4) ;\n\t\t\t// v.i.t = *(short *)((char *)ptr + 8) ;\n\t\t\tmemcpy (&v.s.p, ptr, 10) ; // may be unaligned\n\t\t\tbreak ;\n\n\t\tcase 40:\n\t\t\tv.i.t = 0 ;\n\t\t\t// v.s.p = *(heapptr*)ptr ;\n\t\t\t// v.s.l = *(int *)((char *)ptr + 4) ;\n\t\t\tmemcpy (&v.s.p, ptr, 8) ; // may be unaligned\n\t\t\tbreak ;\n\n\t\tcase 32:\n\t\t\t{\n\t\t\tunion { int i; float f; } u ;\n\t\t\tu.i = ILOAD(ptr) ;\n\t\t\tv.i.t = 1 ; // ARM\n\t\t\tv.f = u.f ;\n\t\t\tbreak ;\n\t\t\t}\n\n\t\tcase 36:\n\t\t\tv.i.t = 0 ;\n\t\t\tv.i.n = (intptr_t) VLOAD(ptr) ;\n\t\t\tbreak ;\n\n\t\tdefault:\n\t\t\tv.i.t = 0 ;\n\t\t\tv.i.n = 0 ;\n\t\t\terror (6, NULL) ; // 'Type mismatch'\n\t    }\n\treturn v ;\n}\n\n// Load a string variable:\n// type is 128, 130 or 136\nVAR loads (void *ptr, unsigned char type)\n{\n\tVAR v ;\n\tswitch (type)\n\t    {\n\t\tcase 128:\n\t\t\tv.s.l = memchr (ptr, 0x0D, 0x1000000) - ptr ;\n\t\t\tif (v.s.l > 0xFFFFFF)\n\t\t\t\terror (19, NULL) ; // 'String too long'\n\t\t\tif ((ptr < zero) || ((ptr + v.s.l) > (zero + 0xFFFFFFFF)))\n\t\t\t    {\n\t\t\t\t// Don't use alloct because it will put string in accs\n\t\t\t\tv.s.p = allocs (&tmps, v.s.l) - (char *) zero ;\n\t\t\t\tmemcpy (v.s.p + zero, ptr, v.s.l) ;\n\t\t\t    }\n\t\t\telse\n\t\t\t\tv.s.p = ptr - zero ;\n\t\t\tbreak ;\n\n\t\tcase 130:\n\t\t\tv.s.l = strlen (ptr) ;\n\t\t\tif ((ptr < zero) || ((ptr + v.s.l) > (zero + 0xFFFFFFFF)))\n\t\t\t    {\n\t\t\t\t// Don't use alloct because it will put string in accs\n\t\t\t\tv.s.p = allocs (&tmps, v.s.l) - (char *) zero ;\n\t\t\t\tmemcpy (v.s.p + zero, ptr, v.s.l) ;\n\t\t\t    }\n\t\t\telse\n\t\t\t\tv.s.p = ptr - zero ;\n\t\t\tbreak ;\n\n\t\tcase 136:\n\t\t\tv.s.p = ULOAD(ptr) ;\n\t\t\tv.s.l = ILOAD(ptr + 4) ;\n\t\t\tbreak ;\n\n\t\tdefault:\n\t\t\terror (6, NULL) ; // 'Type mismatch'\n\t    }\n\tv.s.t = -1 ;\n\treturn v ;\n}\n\n// Load an integer numeric:\nlong long loadi (void *ptr, unsigned char type)\n{\n\tVAR v = loadn (ptr, type) ;\n\tif (v.i.t != 0)\n\t    {\n\t\tlong long t = v.f ;\n\t\tif (t != truncl (v.f))\n\t\t\terror (20, NULL) ; // 'Number too big'\n\t\tv.i.n = t ;\n\t    }\n\treturn v.i.n ;\n}\n\nvoid xfix (VAR *px)\n{\n\tif (px->i.t)\n\t    {\n\t\tlong long t = px->f ;\n\t\tif (t != truncl (px->f))\n\t\t\terror (20, NULL) ; // 'Number too big'\n\t\tpx->i.n = t ;\n\t\tpx->i.t = 0 ;\n\t    }\n}\n\nstatic void fix2 (VAR *px, VAR *py)\n{\n\tif (px->i.t)\n\t    {\n\t\tlong long t = px->f ;\n\t\tif (t != truncl (px->f))\n\t\t\terror (20, NULL) ; // 'Number too big'\n\t\tpx->i.n = t ;\n\t\tpx->i.t = 0 ;\n\t    }\n\tif (py->i.t)\n\t    {\n\t\tlong long t = py->f ;\n\t\tif (t != truncl (py->f))\n\t\t\terror (20, NULL) ; // 'Number too big'\n\t\tpy->i.n = t ; \n\t\tpy->i.t = 0 ;\n\t    }\n}\n\nvoid xfloat (VAR *px)\n{\n\tif (px->i.t == 0)\n\t    {\n\t\tpx->i.t = 1 ; // ARM\n\t\tpx->f = px->i.n ;\n\t    }\n}\n\nstatic void float2 (VAR *px, VAR *py)\n{\n\tif (px->i.t == 0)\n\t    {\n\t\tpx->i.t = 1 ; // ARM\n\t\tpx->f = px->i.n ;\n\t    }\n\tif (py->i.t == 0)\n\t    {\n\t\tpy->i.t = 1 ; // ARM\n\t\tpy->f = py->i.n ;\n\t    }\n}\n\n// Return a pseudo-random integer:\nunsigned int rnd (void)\n{\n\tunsigned int ecx = prand.h ;\n\tunsigned int edx = prand.l ;\n\tunsigned int eax = (edx >> 1) | (ecx << 31) ;\n\tprand.h = (ecx & ~1) | (edx & 1) ; // Preserve bits 1-7\n\teax = eax ^ (edx << 12) ;\n\tedx = eax ^ (eax >> 20) ;\n\tprand.l = edx ;\n\treturn edx ;\n}\n\nVAR math (VAR x, signed char op, VAR y)\n{\n\terrno = 0 ;\n\tsetfpu () ;\n\tswitch (op)\n\t    {\n\t\tcase '+':\n\t\t\tif ((x.i.t == 0) && (y.i.t == 0))\n\t\t\t    {\n#if !(defined(__GNUC__) && (__GNUC__ >= 7) || defined(__clang__) && (__clang_major__ >= 4))\n\t\t\t\tlong long sum = x.i.n + y.i.n ;\n\t\t\t\tif (((int)(x.s.l ^ y.s.l) < 0) || ((sum ^ x.i.n) >= 0))\n#else\n\t\t\t\tlong long sum ;\n\t\t\t\tif (! __builtin_saddll_overflow (x.i.n, y.i.n, &sum))\n#endif\n\t\t\t\t    {\n\t\t\t\t\tx.i.n = sum ;\n\t\t\t\t\treturn x ;\n\t\t\t\t    }\n\t\t\t    }\n\t\t\tfloat2 (&x, &y) ;\n\t\t\tx.f += y.f ;\n\t\t\tbreak ;\n\n\t\tcase '-':\n\t\t\tif ((x.i.t == 0) && (y.i.t == 0))\n\t\t\t    {\n#if !(defined(__GNUC__) && (__GNUC__ >= 7) || defined(__clang__) && (__clang_major__ >= 4))\n\t\t\t\tlong long dif = x.i.n - y.i.n ;\n\t\t\t\tif (((int)(x.s.l ^ y.s.l) >= 0) || ((dif ^ x.i.n) >= 0))\n#else\n\t\t\t\tlong long dif ;\n\t\t\t\tif (! __builtin_ssubll_overflow (x.i.n, y.i.n, &dif))\n#endif\n\t\t\t\t    {\n\t\t\t\t\tx.i.n = dif ;\n\t\t\t\t\treturn x ;\n\t\t\t\t    }\n\t\t\t    }\n\t\t\tfloat2 (&x, &y) ;\n\t\t\tx.f -= y.f ;\n\t\t\tbreak ;\n\n\t\tcase '*':\n\t\t\tif (x.i.n == 0)\n\t\t\t\treturn x ;\n\t\t\tif (y.i.n == 0)\n\t\t\t\treturn y ;\n\t\t\tif ((x.i.t == 0) && (y.i.t == 0))\n\t\t\t    {\n#if !(defined(__GNUC__) && (__GNUC__ >= 7) || defined(__clang__) && (__clang_major__ >= 4))\n\t\t\t\tint lz = __builtin_clzll(x.i.n) + __builtin_clzll(~x.i.n) +\n\t\t\t                 __builtin_clzll(y.i.n) + __builtin_clzll(~y.i.n) ;\n\t\t\t\tif ((lz > 64) || ((lz == 64) && (\n\t\t\t\t  ((x.i.n >= 0) && (y.i.n >= 0) && (x.i.n <= INT64_MAX / y.i.n)) ||\n\t\t\t\t  ((x.i.n >= 0) && (y.i.n < 0)  && (x.i.n <= INT64_MIN / y.i.n)) ||\n\t\t\t\t  ((x.i.n < 0)  && (y.i.n >= 0) && (y.i.n <= INT64_MIN / x.i.n)) ||\n\t\t\t\t  ((x.i.n < 0)  && (y.i.n < 0)  && (y.i.n >= INT64_MAX / x.i.n)))))\n\t\t\t\t    {\n\t\t\t\t\tx.i.n *= y.i.n ;\n\t\t\t\t\treturn x ;\n\t\t\t\t    }\n#else\n\t\t\t\tlong long prod ;\n\t\t\t\tif (! __builtin_smulll_overflow (x.i.n, y.i.n, &prod))\n\t\t\t\t    {\n\t\t\t\t\tx.i.n = prod ;\n\t\t\t\t\treturn x ;\n\t\t\t\t    }\n#endif\n\t\t\t    }\n\t\t\tfloat2 (&x, &y) ;\n\t\t\tx.f *= y.f ;\n\t\t\tbreak ;\n\n\t\tcase '/':\n\t\t\tfloat2 (&x, &y) ;\n\t\t\tx.f /= y.f ;\n\t\t\tbreak ;\n\n\t\tcase '^':\n\t\t\tif (y.i.t == 0)\n\t\t\t    {\n\t\t\t\tif (y.i.n == 0)\n\t\t\t\t    {\n\t\t\t\t\ty.i.n = 1 ;\n\t\t\t\t\treturn y ;\n\t\t\t\t    }\n\t\t\t\tint n ;\n\t\t\t\tif (y.i.n == -1)\n\t\t\t\t\tn = 64 ;\n\t\t\t\telse\n\t\t\t\t\tn = __builtin_clzll(y.i.n) + __builtin_clzll(~y.i.n) ;\n\t\t\t\tif (n > 32)\n\t\t\t\t    {\n\t\t\t\t\tVAR v ;\n\t\t\t\t\tint yi = y.i.n ;\n\t\t\t\t\tv.i.t = 0 ;\n\t\t\t\t\tv.i.n = 1 ;\n\n\t\t\t\t\tif (yi < 0)\n\t\t\t\t\t    {\n\t\t\t\t\t\tyi = -yi ;\n\t\t\t\t\t\tx = math (v, '/', x) ;\n\t\t\t\t\t    }\n\t\t\t\t\tyi = yi << (n - 33) ;\n\t\t\t\t\tn = 65 - n ;\n\t\t\t\t\twhile (n--)\n\t\t\t\t\t    {\n\t\t\t\t\t\tv = math (v, '*', v) ;\n\t\t\t\t\t\tif (yi < 0)\n\t\t\t\t\t\t\tv = math (v, '*', x) ;\n\t\t\t\t\t\tyi = yi << 1 ;\n\t\t\t\t\t    }\n\t\t\t\t\treturn v ;\n\t\t\t\t    }\n\t\t\t    }\n\t\t\tfloat2 (&x, &y) ;\n\t\t\tx.f = powl(x.f, y.f) ;\n\t\t\tbreak ;\n\n\t\tcase TDIV:\n\t\t\tfix2 (&x, &y) ;\n\t\t\tif (y.i.n == 0) error (18, NULL) ; // 'Division by zero'\n\t\t\tx.i.n /= y.i.n ;\n\t\t\treturn x ;\n\n\t\tcase TMOD:\n\t\t\tfix2 (&x, &y) ;\n\t\t\tif (y.i.n == 0) error (18, NULL) ; // 'Division by zero'\n\t\t\tx.i.n %= y.i.n ;\n\t\t\treturn x ;\n\n\t\tcase TAND:\n\t\t\tfix2(&x, &y) ;\n\t\t\tx.i.n &= y.i.n ;\n\t\t\treturn x ;\n\n\t\tcase TOR:\n\t\t\tfix2(&x, &y) ;\n\t\t\tx.i.n |= y.i.n ;\n\t\t\treturn x ;\n\n\t\tcase TEOR:\n\t\t\tfix2(&x, &y) ;\n\t\t\tx.i.n ^= y.i.n ;\n\t\t\treturn x ;\n\n\t\tcase TSUM:\n\t\t\tfix2(&x, &y) ;\n\t\t\tx.i.n += y.i.n ;\n\t\t\treturn x ;\n\n\t\tcase '<':\n\t\t\tif ((x.i.t == 0) && (y.i.t == 0))\n\t\t\t\tx.i.n = -(x.i.n < y.i.n) ;\n\t\t\telse\n\t\t\t    {\n\t\t\t\tfloat2 (&x, &y) ;\n\t\t\t\tx.i.n = -(x.f < y.f) ;\n\t\t\t\tx.i.t = 0 ; // must come after!\n\t\t\t    }\n\t\t\treturn x ;\n\n\t\tcase '=':\n\t\t\tif ((x.i.t == 0) && (y.i.t == 0))\n\t\t\t\tx.i.n = -(x.i.n == y.i.n) ;\n\t\t\telse\n\t\t\t    {\n\t\t\t\tfloat2 (&x, &y) ;\n\t\t\t\tx.i.n = -(x.f == y.f) ;\n\t\t\t\tx.i.t = 0 ; // must come after!\n\t\t\t    }\n\t\t\treturn x ;\n\n\t\tcase '>':\n\t\t\tif ((x.i.t == 0) && (y.i.t == 0))\n\t\t\t\tx.i.n = -(x.i.n > y.i.n) ;\n\t\t\telse\n\t\t\t    {\n\t\t\t\tfloat2 (&x, &y) ;\n\t\t\t\tx.i.n = -(x.f > y.f) ;\n\t\t\t\tx.i.t = 0 ; // must come after!\n\t\t\t    }\n\t\t\treturn x ;\n\n\t\tcase 'y':\n\t\t\tif ((x.i.t == 0) && (y.i.t == 0))\n\t\t\t\tx.i.n = -(x.i.n <= y.i.n) ;\n\t\t\telse\n\t\t\t    {\n\t\t\t\tfloat2 (&x, &y) ;\n\t\t\t\tx.i.n = -(x.f <= y.f) ;\n\t\t\t\tx.i.t = 0 ; // must come after!\n\t\t\t    }\n\t\t\treturn x ;\n\n\t\tcase 'z':\n\t\t\tif ((x.i.t == 0) && (y.i.t == 0))\n\t\t\t\tx.i.n = -(x.i.n != y.i.n) ;\n\t\t\telse\n\t\t\t    {\n\t\t\t\tfloat2 (&x, &y) ;\n\t\t\t\tx.i.n = -(x.f != y.f) ;\n\t\t\t\tx.i.t = 0 ; // must come after!\n\t\t\t    }\n\t\t\treturn x ;\n\n\t\tcase '{':\n\t\t\tif ((x.i.t == 0) && (y.i.t == 0))\n\t\t\t\tx.i.n = -(x.i.n >= y.i.n) ;\n\t\t\telse\n\t\t\t    {\n\t\t\t\tfloat2 (&x, &y) ;\n\t\t\t\tx.i.n = -(x.f >= y.f) ;\n\t\t\t\tx.i.t = 0 ; // must come after!\n\t\t\t    }\n\t\t\treturn x ;\n\n\t\tcase 4:\n\t\t\tfix2 (&x, &y) ;\n\t\t\tif (y.i.n > 63)\n\t\t\t    {\n\t\t\t\tx.i.n = 0 ;\n\t\t\t\treturn x ;\n\t\t\t    }\n\t\t\tx.i.n = x.i.n << y.i.n ;\n\t\t\tif ((liston & BIT2) == 0)\n\t\t\t\tx.i.n = (x.i.n << 32) >> 32 ;\n\t\t\treturn x ;\n\n\t\tcase 5:\n\t\t\tfix2 (&x, &y) ;\n\t\t\tif (y.i.n > 63)\n\t\t\t    {\n\t\t\t\tx.i.n = 0 ;\n\t\t\t\treturn x ;\n\t\t\t    }\n\t\t\tx.i.n = x.i.n << y.i.n ;\n\t\t\treturn x ;\n\n\t\tcase 6:\n\t\t\tfix2 (&x, &y) ;\n\t\t\tif (y.i.n > 63)\n\t\t\t\ty.i.n = 63 ;\n\t\t\tx.i.n = x.i.n >> y.i.n ;\n\t\t\treturn x ;\n\n\t\tcase 7:\n\t\t\tfix2 (&x, &y) ;\n\t\t\tif (y.i.n > 63)\n\t\t\t    {\n\t\t\t\tx.i.n = 0 ;\n\t\t\t\treturn x ;\n\t\t\t    }\n\t\t\tif (((liston & BIT2) == 0) && (y.i.n != 0))\n\t\t\t\tx.i.n &= 0xFFFFFFFF ;\n\t\t\tx.i.n = (unsigned long long) x.i.n >> y.i.n ;\n\t\t\treturn x ;\n\t    }\n\n\tif (isinf(x.f) || isnan(x.f) || (x.i.t == -1) || errno)\n\t    {\n\t\tif (op == '/')\n\t\t\terror (18, NULL) ; // 'Division by zero'\n\t\telse if (op == '^')\n\t\t\terror (22, NULL) ; // 'Logarithm range'\n\t\telse\n\t\t\terror (20, NULL) ; // 'Number too big'\n\t    }\n\n\tif ((x.i.t == 0) || (x.i.t == (short) 0x8000))\n\t\tx.f = 0.0 ; // Underflow\n\n\treturn x ;\n}\n\n// Get a possibly signed numeric constant from string accumulator:\nVAR val (void)\n{\n\tVAR v ;\n\tsigned char *tmpesi = esi ;\n\tesi = (signed char *) accs ;\n\twhile (*esi == ' ') esi++ ;\n\tif (*esi == '-')\n\t    {\n\t\tVAR z ;\n\t\tz.i.n = 0 ;\n\t\tz.i.t = 0 ;\n\t\tesi++ ;\n\t\tv = math (z, '-', con ()) ;\n\t    }\n\telse\n\t    {\n\t\tif (*esi == '+') esi++ ;\n\t\tv = con () ;\n\t    }\n\tesi = tmpesi ;\n\treturn v ;\n}\n\nVAR item (void) ;\nVAR expr (void) ;\n\nVAR items (void)\n{\n\tVAR v = item () ;\n\tif (v.s.t != -1)\n\t\terror (6, NULL) ; // 'Type mismatch'\n\treturn v ;\n}\n\nstatic VAR itemn (void)\n{\n\tVAR v = item () ;\n\tif (v.s.t == -1)\n\t\terror (6, NULL) ; // 'Type mismatch'\n\treturn v ;\n}\n\nstatic VAR itemf (void)\n{\n\tVAR v = item () ;\n\tif (v.s.t == -1)\n\t\terror (6, NULL) ; // 'Type mismatch'\n\tif (v.i.t == 0)\n\t    {\n\t\tv.i.t = 1 ; // ARM\n\t\tv.f = v.i.n ;\n\t    }\n\treturn v ;\n}\n\nlong long itemi (void)\n{\n\tVAR v = item () ;\n\tif (v.s.t == -1)\n\t\terror (6, NULL) ; // 'Type mismatch'\n\tif (v.i.t != 0)\n\t    {\n\t\tlong long t = v.f ;\n\t\tif (t != truncl (v.f))\n\t\t\terror (20, NULL) ; // 'Number too big'\n\t\tv.i.n = t ;\n\t    }\n\treturn v.i.n ;\n}\n\nVAR exprs (void)\n{\n\tVAR v = expr () ;\n\tif (v.s.t != -1)\n\t\terror (6, NULL) ; // 'Type mismatch'\n\treturn v ;\n}\n\nVAR exprn (void)\n{\n\tVAR v = expr () ;\n\tif (v.s.t == -1)\n\t\terror (6, NULL) ; // 'Type mismatch'\n\treturn v ;\n}\n\nlong long expri (void)\n{\n\tVAR v = expr () ;\n\tif (v.s.t == -1)\n\t\terror (6, NULL) ; // 'Type mismatch'\n\tif (v.i.t != 0)\n\t    {\n\t\tlong long t = v.f ;\n\t\tif (t != truncl (v.f))\n\t\t\terror (20, NULL) ; // 'Number too big'\n\t\tv.i.n = t ;\n\t    }\n\treturn v.i.n ;\n}\n\nvoid *channel (void)\n{\n\tif (nxt () != '#')\n\t\terror (45, NULL) ; // 'Missing #'\n\tesi++ ;\n\treturn (void *) (size_t) itemi () ;\n}\n\nstatic int dimfunc (void)\n{\n\tunsigned int d, n ;\n\tvoid *ptr ;\n\tunsigned char type ;\n\tif (nxt () == '(')\n\t    {\n\t\tesi++ ;\n\t\tn = dimfunc () ;\n\t\tbraket () ;\n\t\treturn n ;\n\t    }\n\tptr = getvar (&type) ;\n\tif (ptr == NULL)\n\t\terror (16, NULL) ; // 'Syntax error'\n\tif (type == 0)\n\t\terror (26, NULL) ; // 'No such variable'\n\tif ((type & (BIT4 | BIT6)) == 0)\n\t\terror (6, NULL) ; // 'Type mismatch'\n\tif ((type & BIT6) == 0)\n\t    {\n\t\tptr = VLOAD(ptr) ; // Structure format ptr\n\t\tif (ptr < (void *)2)\n\t\t\terror (56, NULL) ; // 'Bad use of structure'\n\t\treturn ILOAD(ptr) ;\n\t    }\n\tptr = VLOAD(ptr) ;\n\tif (ptr < (void *)2)\n\t\terror (14, NULL) ; // 'Bad use of array'\n\td = *(unsigned char *)ptr ;\n\tif (*esi != ',')\n\t\treturn d;\n\tesi++ ;\n\tn = expri () - 1 ;\n\tif (n > (d - 1 + (d == 0)))\n\t\terror (15, NULL) ; // 'Bad subscript'\n\treturn ILOAD(ptr + 1 + n * 4) - 1 ;\n}\n\nVAR item (void)\n{\n\tVAR v ;\n\tsigned char al = nxt () ;\n\tesi++ ;\n\tswitch (al)\n\t    {\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tauto void nestedFN(void);\n\t\tauto void nestedUSR(void);\n\t\tauto void nestedPTR(void);\n\t\tauto void nestedGETS(void);\n\t\tauto void nestedLOG(void);\n\t\tauto void nestedMOD(void);\n\t\tauto void nestedSUM(void);\n\t\tauto void nestedMID(void);\n\t\tauto void nestedADDR(void);\n\t\tauto void nestedEVAL(void);\n\t\tauto void nestedLEFT(void);\n\t\tauto void nestedTINT(void);\n\t\tauto void nestedINSTR(void);\n\t\tauto void nestedPOINT(void);\n\t\tauto void nestedRIGHT(void);\n\t\tauto void nestedSTRING(void);\n\t\tauto VAR nesteddefault(void);\n#endif\n\n/************************* Parenthesised expression ****************************/\n\n\t\tcase '(':\n\t\t\tv = expr () ;\n\t\t\tif (nxt () != ')')\n\t\t\t\terror (27, NULL) ; // 'Missing )'\n\t\t\tesi++ ;\n\t\t\treturn v ;\n\n/************************************* FN **************************************/\n\n\t\tcase TFN:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedFN();\n\t\tvoid __attribute__ ((noinline)) nestedFN(void)\n#endif\n\t\t\t{\n\t\t\tint errcode = 0 ;\n\t\t\tjmp_buf savenv ;\n\t\t\theapptr* savesp ;\n\n\t\t\tprocfn (TFN) ;\n\n\t\t\tmemcpy (&savenv, &env, sizeof(env)) ;\n\t\t\tsavesp = esp;\n\t\t\terrcode = (setjmp (env)) ; // <0 : QUIT, >0 : error, 256: END\n\t\t\tif (errcode)\n\t\t\t    {\n\t\t\t\tif ((errcode < 0) || (errcode > 255) || (errtrp == 0) ||\n\t\t\t\t\t(onersp == NULL) || (onersp > savesp))\n\t\t\t\t    {\n\t\t\t\t\tmemcpy (&env, &savenv, sizeof(env)) ;\n\t\t\t\t\tlongjmp (env, errcode) ;\n\t\t\t\t    }\n\t\t\t\tesi = errtrp + (signed char *) zero ;\n\t\t\t\tesp = onersp ;\n\t\t\t    }\n\n\t\t\tv = xeq () ;\n\t\t\tmemcpy (&env, &savenv, sizeof(env)) ;\n\t\t\t}\n\t\t\treturn v ;\n\n/************************************* USR *************************************/\n\n\t\tcase TUSR:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedUSR();\n\t\tvoid __attribute__ ((noinline)) nestedUSR(void)\n#endif\n\t\t\t{\n\t\t\tint (*func) (int,int,int,int,int,int) ;\n\t\t\tsize_t n = itemi () ;\n\n\t\t\tv.i.t = 0 ;\n\t\t\tif ((n >= 0x8000) && (n <= 0xFFFF))\n\t\t\t\tv.i.n = oscall (n) ;\n\t\t\telse\n\t\t\t    {\n\t\t\t\tfunc = (void *) n ;\n\t\t\t\tv.i.n = func (stavar[1], stavar[2], stavar[3],\n\t\t\t\t\t      stavar[4], stavar[5], stavar[6]) ;\n\t\t\t    }\n\t\t\t}\n\t\t\treturn v ;\n\n/************************************ FALSE ************************************/\n\n\t\tcase TFALSE:\n\t\t\tv.i.n = 0 ;\n\t\t\tv.i.t = 0 ;\n\t\t\treturn v ;\n\n/************************************ TRUE *************************************/\n\n\t\tcase TTRUE:\n\t\t\tv.i.n = -1 ;\n\t\t\tv.i.t = 0 ;\n\t\t\treturn v ;\n\n/*********************************** OPENIN ************************************/\n\n\t\tcase TOPENIN:\n\t\t\tv = items () ;\n\t\t\tfixs (v) ;\n\t\t\tv.i.t = 0 ;\n\t\t\tv.i.n = (size_t) osopen (0, accs) ;\n\t\t\treturn v ;\n\n/*********************************** OPENOUT ***********************************/\n\n\t\tcase TOPENOUT:\n\t\t\tv = items () ;\n\t\t\tfixs (v) ;\n\t\t\tv.i.t = 0 ;\n\t\t\tv.i.n = (size_t) osopen (1, accs) ;\n\t\t\treturn v ;\n\n/*********************************** OPENUP ************************************/\n\n\t\tcase TOPENUP:\n\t\t\tv = items () ;\n\t\t\tfixs (v) ;\n\t\t\tv.i.t = 0 ;\n\t\t\tv.i.n = (size_t) osopen (2, accs) ;\n\t\t\treturn v ;\n\n/************************************* PTR *************************************/\n\n\t\tcase TPTRR:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedPTR();\n\t\tvoid __attribute__ ((noinline)) nestedPTR(void)\n#endif\n\t\t    {\n\t\t\tif (*esi == '(')\n\t\t\t    {\n\t\t\t\tvoid *ptr ;\n\t\t\t\tunsigned char type ;\n\t\t\t\tesi++ ;\n\t\t\t\tnxt () ;\n\t\t\t\tptr = getvar (&type) ;\n\t\t\t\tif (ptr == NULL)\n\t\t\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\t\t\tif (type == 0)\n\t\t\t\t\terror (26, NULL) ; // 'No such variable'\n\t\t\t\tbraket () ;\n\t\t\t\tv.i.t = 0 ;\n\t\t\t\tif (type == 136)\n\t\t\t\t\tv.i.n = ULOAD(ptr) + (size_t) zero ;\n\t\t\t\telse if ((type == 36) || (type & 0x40))\n\t\t\t\t\tv.i.n = TLOAD(ptr) ;\n\t\t\t\telse if (type == STYPE)\n\t\t\t\t\tv.i.n = TLOAD(ptr + sizeof (void *)) ;\n\t\t\t\telse\n\t\t\t\t\terror (6, NULL) ; // 'Type mismatch'\n\t\t\t    }\n\t\t\telse\n\t\t\t    {\n\t\t\t\tvoid *n = channel () ;\n\t\t\t\tv.i.t = 0 ;\n\t\t\t\tv.i.n = getptr (n) ;\n\t\t\t    }\n\t\t    }\n\t\treturn v ;\n\n/************************************* EXT *************************************/\n\n\t\tcase TEXTR:\n\t\t\tv.i.t = 0 ;\n\t\t\tv.i.n = getext (channel ()) ;\n\t\t\treturn v ;\n\n/************************************* EOF *************************************/\n\n\t\tcase TEOF:\n\t\t\tv.i.t = 0 ;\n\t\t\tv.i.n = geteof (channel ()) ;\n\t\t\treturn v ;\n\n/************************************ BGET *************************************/\n\n\t\tcase TBGET:\n\t\t\tv.i.t = 0 ;\n\t\t\tv.i.n = osbget (channel (), NULL) ;\n\t\t\treturn v ;\n\n/************************************ PAGE *************************************/\n\n\t\tcase TPAGER:\n\t\t\tv.i.n = vpage + (size_t) zero ;\n\t\t\tv.i.t = 0 ;\n\t\t\treturn v ;\n\n/************************************* TOP *************************************/\n\n\t\tcase TTO:\n\t\t\tif ((*esi == 'P') || (((liston & BIT3) != 0) && (*esi == 'p')))\n\t\t\t    {\n\t\t\t\tesi++ ;\n\t\t\t\tv.i.n = (size_t) gettop (vpage + (signed char *) zero, NULL) + 3 ;\n\t\t\t\tv.i.t = 0 ;\n\t\t\t\treturn v ;\n\t\t\t    }\n\t\t\telse\n\t\t\t\terror (16, NULL) ; // 'Syntax error'\n\n/************************************ LOMEM ************************************/\n\n\t\tcase TLOMEMR:\n\t\t\tv.i.n = lomem + (size_t) zero ;\n\t\t\tv.i.t = 0 ;\n\t\t\treturn v ;\n\n/************************************* END *************************************/\n\n\t\tcase TEND:\n\t\t\tv.i.n = pfree + (size_t) zero ;\n\t\t\tv.i.t = 0 ;\n\t\t\treturn v ;\n\n/************************************ HIMEM ************************************/\n\n\t\tcase THIMEMR:\n\t\t\tv.i.n = himem + (size_t) zero ;\n\t\t\tv.i.t = 0 ;\n\t\t\treturn v ;\n\n/************************************ MODE *************************************/\n\n\t\tcase TMODE:\n\t\t\tv.i.n = getmodeno() ;\n\t\t\tv.i.t = 0 ;\n\t\t\treturn v ;\n\n/************************************ TIME *************************************/\n\n\t\tcase TTIMER:\n\t\t\tif (*esi == '$')\n\t\t\t    {\n\t\t\t\tesi++ ;\n\t\t\t\tv.s.t = -1 ;\n\t\t\t\tv.s.p = accs - (char *) zero ;\n\t\t\t\tv.s.l = getims () ;\n\t\t\t\treturn v ;\n\t\t\t    }\n\t\t\tv.i.n = (int) getime () ; // Must not overflow 32-bit int\n\t\t\tv.i.t = 0 ;\n\t\t\treturn v ;\n\n/************************************ ADVAL ************************************/\n\n\t\tcase TADVAL:\n\t\t\tv.i.n = adval (itemi ()) ;\n\t\t\tv.i.t = 0 ;\n\t\t\treturn v ;\n\n/************************************ COUNT ************************************/\n\n\t\tcase TCOUNT:\n\t\t\tv.i.n = vcount ;\n\t\t\tv.i.t = 0 ;\n\t\t\treturn v ;\n\n/************************************ WIDTH ************************************/\n\n\t\tcase TWIDTH:\n\t\t\tif (*esi == '(')\n\t\t\t    {\n\t\t\t\tesi++ ;\n\t\t\t\tv = exprs () ;\n\t\t\t\tbraket () ;\n\t\t\t\tif (v.s.l > ((char *)esp - (char *)zero - pfree - STACK_NEEDED))\n\t\t\t\t\terror (0, NULL) ; // 'No room'\n\t\t\t\tv.i.n = widths (v.s.p + (char *) zero, v.s.l) ;\n\t\t\t\tv.i.t = 0 ;\n\t\t\t\treturn v ;\n\t\t\t    }\n\t\t\tv.i.n = vwidth ;\n\t\t\tv.i.t = 0 ;\n\t\t\treturn v ;\n\n/************************************* DIM *************************************/\n\n\t\tcase TDIM:\n\t\t\tv.i.t = 0 ;\n\t\t\tv.i.n = dimfunc () ;\n\t\t\treturn v ;\n\n/************************************* GET *************************************/\n\n\t\tcase TGET:\n\t\t\t{\n\t\t\tif (*esi == '(')\n\t\t\t    {\n\t\t\t\tint x, y ;\n\t\t\t\tesi++ ;\n\t\t\t\tx = expri () ;\n\t\t\t\tcomma () ;\n\t\t\t\ty = expri () ;\n\t\t\t\tbraket () ;\n\t\t\t\tv.i.n = vgetc (x, y) ;\n\t\t\t\tv.i.t = 0 ;\n\t\t\t    }\n\t\t\telse\n\t\t\t    {\n\t\t\t\tv.i.n = osrdch () ;\n\t\t\t\tv.i.t = 0 ;\n\t\t\t    }\n\t\t\t}\n\t\t\treturn v ;\n\n/************************************ GET$ *************************************/\n\n\t\tcase TGETS:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedGETS();\n\t\tvoid __attribute__ ((noinline)) nestedGETS(void)\n#endif\n\t\t    {\n\t\t\tif (*esi == '#')\n\t\t\t    {\n\t\t\t\tchar *p ;\n\t\t\t\tint term = 0x100 ;\n\t\t\t\tint count = 0x7FFFFFFF ;\n\t\t\t\tvoid *chan = channel () ;\n\t\t\t\tif (nxt () == TBY)\n\t\t\t\t    {\n\t\t\t\t\tesi++ ;\n\t\t\t\t\tterm = -1 ;\n\t\t\t\t\tcount = itemi () ;\n\t\t\t\t    }\n\t\t\t\telse if (*esi == TTO)\n\t\t\t\t    {\n\t\t\t\t\tesi++ ;\n\t\t\t\t\tterm = itemi () ;\n\t\t\t\t    }\n\t\t\t\tallocs (&tmps, 0) ; // Free tmps (may change pfree)\t\n\t\t\t\tp = pfree + (char *) zero ;\n\t\t\t\twhile (count--)\n\t\t\t\t    {\n\t\t\t\t\tint eof ;\n\t\t\t\t\tchar al = osbget (chan, &eof) ;\n\t\t\t\t\tif (eof) break ;\n\t\t\t\t\tif (term >= 0)\n\t\t\t\t\t    {\n\t\t\t\t\t\tif (al == (term & 0xFF)) break ;\n\t\t\t\t\t\tif ((al == 0x0D) && (term & 0x8100)) break ;\n\t\t\t\t\t\tif ((al == 0x0A) && (term & 0x100)) break ;\n\t\t\t\t\t    }\n\t\t\t\t\t*p++ = al ;\n\t\t\t\t\tif (p > ((char *) esp - STACK_NEEDED))\n\t\t\t\t\t\terror (0, NULL) ; // 'No room'\n\t\t\t\t    }\n\t\t\t\tv.s.t = -1 ;\n\t\t\t\tv.s.p = pfree ;\n\t\t\t\tv.s.l = p - (char *) zero - pfree ;\n\t\t\t\tv.s.p = moves ((STR *) &v, 0) - (char *) zero ;\n\t\t\t    }\n\t\t\telse if (*esi == '(')\n\t\t\t    {\n\t\t\t\tint c, x, y ;\n\t\t\t\tesi++ ;\n\t\t\t\tx = expri () ;\n\t\t\t\tcomma () ;\n\t\t\t\ty = expri () ;\n\t\t\t\tbraket () ;\n\t\t\t\tc = vgetc (x, y) ;\n\t\t\t\tISTORE(accs, c) ;\n\t\t\t\tv.s.t = -1 ;\n\t\t\t\tv.s.p = accs - (char *) zero ;\n\t\t\t\tif (c < 0)\n\t\t\t\t\tv.s.l = 0 ;\n\t\t\t\telse\n\t\t\t\t\tv.s.l = strlen (accs) ;\n\t\t\t    }\n\t\t\telse\n\t\t\t    {\n\t\t\t\t*accs = osrdch () ;\n\t\t\t\tv.s.t = -1 ;\n\t\t\t\tv.s.p = accs - (char *) zero ;\n\t\t\t\tv.s.l = 1 ;\n\t\t\t    }\n\t\t    }\n\t\treturn v ;\n\n/************************************ INKEY ************************************/\n\n\t\tcase TINKEY:\n\t\t\tv.i.t = 0 ;\n\t\t\tv.i.n = oskey (itemi ()) ;\n\t\t\treturn v ;\n\n/*********************************** INKEY$ ************************************/\n\n\t\tcase TINKEYS:\n\t\t\t{\n\t\t\tint n = oskey (itemi ()) ;\n\t\t\t*accs = n ;\n\t\t\tv.s.t = -1 ;\n\t\t\tv.s.p = accs - (char *) zero ;\n\t\t\tv.s.l = (n != -1) ;\n\t\t\t}\n\t\t\treturn v ;\n\n/************************************* POS *************************************/\n\n\t\tcase TPOS:\n\t\t\t{\n\t\t\tint x ;\n\t\t\tgetcsr (&x, NULL) ;\n\t\t\tv.i.t = 0 ;\n\t\t\tv.i.n = x ;\n\t\t\t}\n\t\t\treturn v ;\n\n/************************************ VPOS *************************************/\n\n\t\tcase TVPOS:\n\t\t\t{\n\t\t\tint y ;\n\t\t\tgetcsr (NULL, &y) ;\n\t\t\tv.i.t = 0 ;\n\t\t\tv.i.n = y ;\n\t\t\t}\n\t\t\treturn v ;\n\n/************************************ TINT *************************************/\n\n\t\tcase TTINT:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedTINT();\n\t\tvoid __attribute__ ((noinline)) nestedTINT(void)\n#endif\n\t\t\t{\n\t\t\tint p, x, y ;\n\t\t\tif (*esi++ != '(')\n\t\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\t\tx = expri () ;\n\t\t\tcomma () ;\n\t\t\ty = expri () ;\n\t\t\tbraket () ;\n\t\t\tp = vtint (x, y) ;\n\t\t\tv.i.t = 0 ;\n\t\t\tv.i.n = p ;\n\t\t\t}\n\t\t\treturn v ;\n\n/*********************************** TPOINT ************************************/\n\n\t\tcase TPOINT:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedPOINT();\n\t\tvoid __attribute__ ((noinline)) nestedPOINT(void)\n#endif\n\t\t\t{\n\t\t\tint p, x, y ;\n\t\t\tx = expri () ;\n\t\t\tcomma () ;\n\t\t\ty = expri () ;\n\t\t\tbraket () ;\n\t\t\tp = vpoint (x, y) ;\n\t\t\tv.i.t = 0 ;\n\t\t\tv.i.n = p ;\n\t\t\t}\n\t\t\treturn v ;\n\n/************************************* ASC *************************************/\n\n\t\tcase TASC:\n\t\t\tv = items () ;\n\t\t\tif (v.s.l)\n\t\t\t\tv.i.n = *(v.s.p + (unsigned char *) zero) ;\n\t\t\telse\n\t\t\t\tv.i.n = -1 ;\n\t\t\tv.i.t = 0 ;\n\t\t\treturn v ;\n\n/************************************* ERR *************************************/\n\n\t\tcase TERR:\n\t\t\tv.i.n = errnum ;\n\t\t\tv.i.t = 0 ;\n\t\t\treturn v ;\n\n/************************************* ERL *************************************/\n\n\t\tcase TERL:\n\t\t\tv.i.n = setlin (errlin + (signed char *) zero , NULL) ;\n\t\t\tv.i.t = 0 ;\n\t\t\treturn v ;\n\n/************************************* PI **************************************/\n\n\t\tcase TPI:\n\t\t\tif (*esi == '#') esi++ ;\n#if defined __arm__ || defined __aarch64__ || defined __EMSCRIPTEN__ || defined __ANDROID__\n\t\t\tv.i.n = 0x400921FB54442D18L ;\n\t\t\tv.i.t = 1 ;\n#else\n\t\t\tv.i.n = 0xC90FDAA22168C235L ;\n\t\t\tv.i.t = 0x4000 ;\n#endif\n\t\t\treturn v ;\n\n/************************************* SIN *************************************/\n\n\t\tcase TSIN:\n\t\t\tv = itemf () ;\n\t\t\terrno = 0 ;\n\t\t\tv.f = sinl (v.f) ;\n\t\t\tbreak ;\n\n/************************************* COS *************************************/\n\n\t\tcase TCOS:\n\t\t\tv = itemf () ;\n\t\t\terrno = 0 ;\n\t\t\tv.f = cosl (v.f) ;\n\t\t\tbreak ;\n\n/************************************* TAN *************************************/\n\n\t\tcase TTAN:\n\t\t\tv = itemf () ;\n\t\t\terrno = 0 ;\n\t\t\tv.f = tanl (v.f) ;\n\t\t\tbreak ;\n\n/************************************* ASN *************************************/\n\n\t\tcase TASN:\n\t\t\tv = itemf () ;\n\t\t\terrno = 0 ;\n\t\t\tv.f = asinl (v.f) ;\n\t\t\tbreak ;\n\n/************************************* ACS *************************************/\n\n\t\tcase TACS:\n\t\t\tv = itemf () ;\n\t\t\terrno = 0 ;\n\t\t\tv.f = acosl (v.f) ;\n\t\t\tbreak ;\n\n/************************************* ATN *************************************/\n\n\t\tcase TATN:\n\t\t\tv = itemf () ;\n\t\t\terrno = 0 ;\n\t\t\tv.f = atanl (v.f) ;\n\t\t\tbreak ;\n\n/************************************* DEG *************************************/\n\n\t\tcase TDEG:\n#if defined __arm__ || defined __aarch64__ || defined __EMSCRIPTEN__ || defined __ANDROID__\n\t\t\tv.i.n = 0x404CA5DC1A63C1F8L ;\n\t\t\tv.i.t = 1 ;\n#else\n\t\t\tv.i.n = 0xE52EE0D31E0FBDC3L ;\n\t\t\tv.i.t = 0x4004 ;\n#endif\n\t\t\treturn math (itemf(), '*', v) ;\n\n/************************************* RAD *************************************/\n\n\t\tcase TRAD:\n#if defined __arm__ || defined __aarch64__ || defined __EMSCRIPTEN__ || defined __ANDROID__\n\t\t\tv.i.n = 0x3F91DF46A2529D39L ;\n\t\t\tv.i.t = 1 ;\n#else\n\t\t\tv.i.n = 0x8EFA351294E9C8AEL ;\n\t\t\tv.i.t = 0x3FF9 ;\n#endif\n\t\t\treturn math (itemf(), '*', v) ;\n\n/************************************* EXP *************************************/\n\n\t\tcase TEXP:\n\t\t\tv = itemf () ;\n\t\t\terrno = 0 ;\n\t\t\tv.f = expl (v.f) ;\n\t\t\tbreak ;\n\n/************************************* LN **************************************/\n\n\t\tcase TLN:\n\t\t\tv = itemf () ;\n\t\t\terrno = 0 ;\n\t\t\tv.f = logl (v.f) ;\n\t\t\tbreak ;\n\n/************************************* LOG *************************************/\n\n\t\tcase TLOG:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedLOG();\n\t\tvoid __attribute__ ((noinline)) nestedLOG(void)\n#endif\n\t\t\t{\n\t\t\tVAR loge ;\n#if defined __arm__ || defined __aarch64__ || defined __EMSCRIPTEN__ || defined __ANDROID__\n\t\t\tloge.i.n = 0x3FDBCB7B1526E50EL ;\n\t\t\tloge.i.t = 1 ;\n#else\n\t\t\tloge.i.n = 0xDE5BD8A937287195L ;\n\t\t\tloge.i.t = 0x3FFD ;\n#endif\n\t\t\tv = itemf () ;\n\t\t\tv.f = logl (v.f );\n\t\t\tif (isnan (v.f) || isinf (v.f))\n\t\t\t\terror (22, NULL) ; // 'Logarithm range'\n\t\t\tv = math (v, '*', loge) ;\n\t\t\t}\n\t\t\treturn v ;\n\n/************************************* SQR *************************************/\n\n\t\tcase TSQR:\n\t\t\tv = itemf () ;\n\t\t\terrno = 0 ;\n\t\t\tv.f = sqrtl (v.f) ;\n\t\t\tbreak ;\n\n/************************************* MOD *************************************/\n\n\t\tcase TMOD:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedMOD();\n\t\tvoid __attribute__ ((noinline)) nestedMOD(void)\n#endif\n\t\t\t{\n\t\t\tint i, count ;\n\t\t\tunsigned char type ;\n\t\t\tvoid *ptr = getvbr (&type) ;\n\t\t\tif (ptr == NULL)\n\t\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\t\tif (type == 0)\n\t\t\t\terror (26, NULL) ; // 'No such variable'\n\t\t\tif ((type >= 128) || (type < 64))\n\t\t\t\terror (6, NULL) ; // 'Type mismatch'\n\t\t\tptr = VLOAD(ptr) ;\n\t\t\tcount = arrlen (&ptr) ;\n\t\t\tv.i.t = 0 ;\n\t\t\tv.i.n = 0 ;\n\t\t\ttype &= ~BIT6 ;\n\t\t\tfor (i = 0; i < count; i++)\n\t\t\t    {\n\t\t\t\tVAR x = loadn (ptr, type) ; // n.b. type can be 40\n#if !(defined(__GNUC__) && (__GNUC__ >= 7) || defined(__clang__) && (__clang_major__ >= 4))\n\t\t\t\tv = math (v, '+', math (x, '*', x)) ;\n#else\n\t\t\t\tlong long tmp ;\n\t\t\t\tif ((x.i.t == 0) && ! __builtin_smulll_overflow (x.i.n, x.i.n, &tmp))\n\t\t\t\t\tx.i.n = tmp ;\n\t\t\t\telse\n\t\t\t\t    {\n\t\t\t\t\txfloat (&x) ;\n\t\t\t\t\tx.f *= x.f ;\n\t\t\t\t\tif (x.i.t == 0)\n\t\t\t\t\t\tx.f = 0.0 ; // Underflow\n\t\t\t\t    }\n\t\t\t\tif ((v.i.t == 0) && (x.i.t == 0) &&\n\t\t\t\t    ! __builtin_saddll_overflow (v.i.n, x.i.n, &tmp))\n\t\t\t\t\tv.i.n = tmp ;\n\t\t\t\telse\n\t\t\t\t    {\n\t\t\t\t\tfloat2 (&v, &x) ;\n\t\t\t\t\tv.f += x.f ;\n\t\t\t\t\tif (isinf(v.f) || (v.i.t == -1))\n\t\t\t\t\t\terror (20, NULL) ; // 'Number too big'\n\t\t\t\t    }\n#endif\n\t\t\t\tptr += type & TMASK ;\n\t\t\t    }\n\t\t\tif (v.i.t == 0)\n\t\t\t    {\n\t\t\t\tv.i.t = 1 ; // ARM\n\t\t\t\tv.f = v.i.n ;\n\t\t\t    }\n\t\t\tv.f = sqrtl (v.f) ;\n\t\t\t}\n\t\t\treturn v;\n\n/************************************* SUM *************************************/\n\n\t\tcase TSUM:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedSUM();\n\t\tvoid __attribute__ ((noinline)) nestedSUM(void)\n#endif\n\t\t\t{\n\t\t\tVAR x ;\n\t\t\tint count ;\n\t\t\tunsigned char type ;\n\t\t\tvoid *ptr ;\n\t\t\tint sumlen = (nxt () == TLEN) ;\n\t\t\tif (sumlen) esi++ ;\n\n\t\t\tptr = getvbr (&type) ;\n\t\t\tif (ptr == NULL)\n\t\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\t\tif ((type & 64) == 0)\n\t\t\t\terror (6, NULL) ; // 'Type mismatch'\n\t\t\tptr = VLOAD(ptr) ;\n\t\t\tcount = arrlen (&ptr) ;\n\t\t\tif (type < 128)\n\t\t\t    {\n\t\t\t\tif (sumlen)\n\t\t\t\t\terror (6, NULL) ; // 'Type mismatch'\n\t\t\t\tv.i.t = 0 ;\n\t\t\t\tv.i.n = 0 ;\n\t\t\t\ttype &= ~BIT6 ;\n\t\t\t\twhile (count--)\n\t\t\t\t    {\n#if !(defined(__GNUC__) && (__GNUC__ >= 7) || defined(__clang__) && (__clang_major__ >= 4))\n\t\t\t\t\tv = math (v, '+', loadn (ptr, type)) ; // n.b. type can be 40\n#else\n\t\t\t\t\tlong long sum ;\n\t\t\t\t\tx = loadn (ptr, type) ; // n.b. type can be 40\n\t\t\t\t\tif ((v.i.t == 0) && (x.i.t == 0) &&\n\t\t\t\t\t    (! __builtin_saddll_overflow (v.i.n, x.i.n, &sum)))\n\t\t\t\t\t\tv.i.n = sum ;\n\t\t\t\t\telse\n\t\t\t\t\t    {\n\t\t\t\t\t\tfloat2 (&v, &x) ;\n\t\t\t\t\t\tv.f += x.f ;\n\t\t\t\t\t\tif (isinf(v.f) || (v.i.t == -1))\n\t\t\t\t\t\t\terror (20, NULL) ; // 'Number too big'\n\t\t\t\t\t\tif ((v.i.t == 0) || (v.i.t == (short) 0x8000))\n\t\t\t\t\t\t\tv.f = 0.0 ; // Underflow\n\t\t\t\t\t    }\n#endif\n\t\t\t\t\tptr += type & TMASK ;\n\t\t\t\t    }\n\t\t\t    }\n\t\t\telse if (sumlen)\n\t\t\t    {\n\t\t\t\tint n = 0 ;\n\t\t\t\ttype &= ~BIT6 ;\n\t\t\t\twhile (count--)\n\t\t\t\t    {\n\t\t\t\t\tx = loads (ptr, type) ;\n\t\t\t\t\tptr += 8 ;\n\t\t\t\t\tn += x.s.l ;\n\t\t\t\t    }\n\t\t\t\tv.i.t = 0 ;\n\t\t\t\tv.i.n = n ;\n\t\t\t    }\n\t\t\telse\n\t\t\t    {\n\t\t\t\tint i, n = 0 ;\n\t\t\t\tvoid *tmp = ptr ;\n\t\t\t\ttype &= ~BIT6 ;\n\t\t\t\tfor (i = 0 ; i < count; i++)\n\t\t\t\t    {\n\t\t\t\t\tx = loads (tmp, type) ;\n\t\t\t\t\ttmp += 8 ;\n\t\t\t\t\tn += x.s.l ;\n\t\t\t\t    }\n\t\t\t\tv.s.t = -1 ;\n\t\t\t\tv.s.l = n ;\n\t\t\t\tv.s.p = alloct (n) - (char *) zero ;\n\t\t\t\tn = 0 ;\n\t\t\t\twhile (count--)\n\t\t\t\t    {\n\t\t\t\t\tx = loads (ptr, type) ;\n\t\t\t\t\tptr += 8 ;\n\t\t\t\t\tif (x.s.l)\n\t\t\t\t\t\tmemcpy (v.s.p + n + zero, x.s.p + zero, x.s.l) ;\n\t\t\t\t\tn += x.s.l ;\n\t\t\t\t    }\n\t\t\t    }\n\t\t\t}\n\t\t\treturn v ;\n\n/************************************* ABS *************************************/\n\n\t\tcase TABS:\n\t\t\tv = itemn () ;\n\t\t\tif (v.i.t)\n\t\t\t\tv.f = fabsl (v.f) ; // both double and long double\n\t\t\telse if (v.i.n == 0x8000000000000000)\n\t\t\t    {\n\t\t\t\tv.i.t = 1 ; // ARM\n\t\t\t\tv.f = 9223372036854775808.0L ;\n\t\t\t    }\n\t\t\telse\n\t\t\t\tv.i.n = llabs (v.i.n) ;\n\t\t\treturn v ;\n\n/************************************* SGN *************************************/\n\n\t\tcase TSGN:\n\t\t\tv = itemn () ;\n\t\t\tif (v.i.t)\n\t\t\t\tv.i.n = (v.f > 0) - (v.f < 0) ;\n\t\t\telse\n\t\t\t\tv.i.n = (v.i.n > 0) - (v.i.n < 0) ;\n\t\t\tv.i.t = 0 ;\n\t\t\treturn v ;\n\n/************************************* INT *************************************/\n\n\t\tcase TINT:\n\t\t\t{\n\t\t\tlong long tmp ;\n\t\t\tv = itemf () ;\n\t\t\tv.f = floorl (v.f) ;\n\t\t\ttmp = v.f ;\n\t\t\tif (v.f == tmp)\n\t\t\t    {\n\t\t\t\tv.i.n = tmp ;\n\t\t\t\tv.i.t = 0 ;\n\t\t\t    }\n\t\t\t}\n\t\t\treturn v ;\n\n/************************************* NOT *************************************/\n\n\t\tcase TNOT:\n\t\t\tv.i.t = 0 ;\n\t\t\tv.i.n = ~itemi () ;\n\t\t\treturn v ;\n\n/************************************* LEN *************************************/\n\n\t\tcase TLEN:\n\t\t\tv = items () ;\n\t\t\tv.i.n = v.s.l ;\n\t\t\tv.i.t = 0 ;\n\t\t\treturn v ;\n\n/************************************* RND *************************************/\n\n\t\tcase TRND:\n\t\t\tv.i.t = 0 ;\n\t\t\tif (*esi == '(')\n\t\t\t    {\n\t\t\t\tint n ;\n\t\t\t\tesi++ ;\n\t\t\t\tn = expri () ;\n\t\t\t\tbraket () ;\n\n\t\t\t\tif (n == 0)\n\t\t\t\t    {\n\t\t\t\t\tunsigned int edx = (prand.l >> 16) | (prand.l << 16) ;\n\t\t\t\t\tv.i.t = 1 ; // ARM\n\t\t\t\t\tv.f = (double)edx / 4294967296.0L ;\n\t\t\t\t    }\n\t\t\t\telse if (n == 1)\n\t\t\t\t    {\n\t\t\t\t\tunsigned int edx = rnd () ;\n\t\t\t\t\tedx = (edx >> 16) | (edx << 16) ;\n\t\t\t\t\tv.i.t = 1 ; // ARM\n\t\t\t\t\tv.f = (double)edx / 4294967296.0L ;\n\t\t\t\t    }\n\t\t\t\telse if (n > 1)\n\t\t\t\t\tv.i.n = (rnd() % n) + 1 ;\n\t\t\t\telse \n\t\t\t\t    {\n\t\t\t\t\tprand.l = (unsigned int) n ;\n\t\t\t\t\tprand.h = (n & 0x80000) == 0 ;\n\t\t\t\t\tv.i.n = n ;\n\t\t\t\t    }\n\t\t\t\treturn v ;\n\t\t\t    }\n\t\t\tv.i.n = (signed int) rnd () ;\n\t\t\treturn v;\n\n/************************************* VAL *************************************/\n\n\t\tcase TVAL:\n\t\t\tv = items () ;\n\t\t\tfixs (v) ;\n\t\t\treturn val () ;\n\n/************************************ EVAL *************************************/\n\n\t\tcase TEVAL:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedEVAL();\n\t\tvoid __attribute__ ((noinline)) nestedEVAL(void)\n#endif\n\t\t\t{\n\t\t\tsigned char *oldesi ;\n\t\t\theapptr *oldesp ;\n\t\t\tv = items () ;\n\t\t\tfixs (v) ;\n\t\t\tlexan (accs, accs, 0) ; // assumes string gets no longer\n\t\t\tv.s.p = accs - (char *) zero ;\n\t\t\tv.s.l += 1 ;\n\t\t\toldesp = pushs (v) ;\n\t\t\toldesi = esi ;\n\t\t\tesi = (signed char *) esp ;\n\t\t\tv = expr () ;\n\t\t\tesi = oldesi ;\n\t\t\tesp = oldesp ;\n\t\t\t}\n\t\t\treturn v ;\n\n/************************************ STR$ *************************************/\n\n\t\tcase TSTR:\n\t\t\tif (nxt () == '~')\n\t\t\t    {\n\t\t\t\tesi++ ;\n\t\t\t\tv.s.l = strhex (itemn (), accs, 0) ;\n\t\t\t    }\n\t\t\telse\n\t\t\t    {\n\t\t\t\tv = itemn () ;\n\t\t\t\tif (stavar[0] & 0xFF000000)\n\t\t\t\t\tv.s.l = str (v, accs, stavar[0] & 0xFFFF00) ;\n\t\t\t\telse\n\t\t\t\t\tv.s.l = str (v, accs, 0x900) ;\n\t\t\t    }\n\t\t\tv.s.p = accs - (char *) zero ;\n\t\t\tv.s.t = -1 ;\n\t\t\treturn v ;\n\n/************************************ CHR$ *************************************/\n\n\t\tcase TCHR:\n\t\t\t*accs = itemi () ;\n\t\t\tv.s.t = -1 ;\n\t\t\tv.s.p = accs - (char *) zero ;\n\t\t\tv.s.l = 1 ;\n\t\t\treturn v ;\n\n/************************************ MID$ *************************************/\n\n\t\tcase TMID:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedMID();\n\t\tvoid __attribute__ ((noinline)) nestedMID(void)\n#endif\n\t\t\t{\n\t\t\theapptr *oldesp ;\n\t\t\tchar * tmp ;\n\t\t\tint s, n ;\n\n\t\t\tv = exprs () ;\n\t\t\tn = v.s.l ;\n\t\t\tcomma () ;\n\t\t\toldesp = pushs (v) ;\n\n\t\t\ts = expri () ;\n\t\t\tif (s < 1)\n\t\t\t\ts = 1 ;\n\n\t\t\tif (*esi == ',')\n\t\t\t    {\n\t\t\t\tesi++ ;\n\t\t\t\tn = expri () ;\n\t\t\t\tif (n < 0)\n\t\t\t\t\tn = v.s.l ;\n\t\t\t    }\n\t\t\tbraket () ;\n\n\t\t\tif (n > ((int)v.s.l - s + 1))\n\t\t\t\tn = (int)v.s.l - s + 1 ;\n\t\t\tif (n < 0)\n\t\t\t\tn = 0 ;\n\t\t\tif (n == 0)\n\t\t\t    {\n\t\t\t\tesp = oldesp ;\n\t\t\t\tv.s.p = 0 ;\n\t\t\t\tv.s.l = 0 ;\n\t\t\t    }\n\t\t\telse\n\t\t\t    {\n\t\t\t\tv.s.p = (char *) esp - (char *) zero + s - 1 ;\n\t\t\t\tv.s.l = n ;\n\t\t\t\ttmp = moves ((STR*) &v, 0) ;\n\t\t\t\tesp = oldesp ;\n\t\t\t\tv.s.p = tmp - (char *) zero ;\n\t\t\t    }\n\t\t\t}\n\t\t\treturn v ;\n\n/*********************************** LEFT$ *************************************/\n\n\t\tcase TLEFT:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedLEFT();\n\t\tvoid __attribute__ ((noinline)) nestedLEFT(void)\n#endif\n\t\t\t{\n\t\t\theapptr *oldesp ;\n\t\t\tchar * tmp ;\n\t\t\tint n ;\n\n\t\t\tv = exprs () ;\n\t\t\tif (*esi != ',')\n\t\t\t    {\n\t\t\t\tbraket () ;\n\t\t\t\tif (v.s.l)\n\t\t\t\t\tv.s.l -= 1 ;\n\t\t\t    }\n\t\t\telse\n\t\t\t    {\n\t\t\t\tesi++ ;\n\t\t\t\toldesp = pushs (v) ;\n\t\t\t\tn = expri () ;\n\t\t\t\tbraket () ;\n\n\t\t\t\tif ((n < 0) || (n > v.s.l))\n\t\t\t\t\tn = v.s.l ;\n\n\t\t\t\tv.s.p = (char *) esp - (char *) zero ;\n\t\t\t\tv.s.l = n;\n\t\t\t\ttmp = moves ((STR*) &v, 0) ;\n\t\t\t\tesp = oldesp ;\n\t\t\t\tv.s.p = tmp - (char *) zero ;\n\t\t\t    }\n\t\t\t}\n\t\t\treturn v ;\n\n/*********************************** RIGHT$ ************************************/\n\n\t\tcase TRIGHT:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedRIGHT();\n\t\tvoid __attribute__ ((noinline)) nestedRIGHT(void)\n#endif\n\t\t\t{\n\t\t\theapptr *oldesp ;\n\t\t\tchar * tmp ;\n\t\t\tint n ;\n\n\t\t\tv = exprs () ;\n\t\t\tif (*esi != ',')\n\t\t\t    {\n\t\t\t\tbraket () ;\n\t\t\t\tif (v.s.l > 1)\n\t\t\t\t    {\n\t\t\t\t\tv.s.p += (int)v.s.l - 1 ;\n\t\t\t\t\tv.s.l = 1 ;\n\t\t\t\t    }\n\t\t\t    }\n\t\t\telse\n\t\t\t    {\n\t\t\t\tesi++ ;\n\t\t\t\toldesp = pushs (v) ;\n\t\t\t\tn = expri () ;\n\t\t\t\tbraket () ;\n\n\t\t\t\tif ((n < 0) || (n > v.s.l))\n\t\t\t\t\tn = v.s.l ;\n\n\t\t\t\tv.s.p = (char *) esp - (char *) zero + v.s.l - n ;\n\t\t\t\tv.s.l = n;\n\t\t\t\ttmp = moves ((STR*) &v, 0) ;\n\t\t\t\tesp = oldesp ;\n\t\t\t\tv.s.p = tmp - (char *) zero ;\n\t\t\t    }\n\t\t\t}\n\t\t\treturn v ;\n\n/*********************************** STRING$ ***********************************/\n\n\t\tcase TSTRING:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedSTRING();\n\t\tvoid __attribute__ ((noinline)) nestedSTRING(void)\n#endif\n\t\t\t{\n\t\t\tchar *tmp, *p ;\n\t\t\tlong long size, n = expri () ;\n\t\t\tcomma () ;\n\t\t\tv = exprs () ;\n\t\t\tbraket () ;\n\t\t\tif ((n <= 0) || (v.s.l == 0))\n\t\t\t    {\n\t\t\t\tv.s.p = 0 ;\n\t\t\t\tv.s.l = 0 ;\n\t\t\t    }\n\t\t\telse\n\t\t\t    {\n\t\t\t\tsize = n * v.s.l ;\n\t\t\t\tif (size > 0x7FFFFFFF)\n\t\t\t\t\terror (19, NULL) ; // 'String too long'\n\t\t\t\ttmp = alloct (size) ;\n\t\t\t\tfor (p = tmp ; n-- ; p += v.s.l)\n\t\t\t\t\tmemcpy (p, v.s.p + zero , v.s.l) ;\n\t\t\t\tv.s.p = tmp - (char *) zero ;\n\t\t\t\tv.s.l = size ;\n\t\t\t    }\n\t\t\t}\n\t\t\treturn v ;\n\n/*********************************** INSTR *************************************/\n\n\t\tcase TINSTR:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedINSTR();\n\t\tvoid __attribute__ ((noinline)) nestedINSTR(void)\n#endif\n\t\t\t{\n\t\t\theapptr *oldesp ;\n\t\t\tint n = 0 ;\n\t\t\tchar *p ;\n\t\t\tVAR x = exprs () ;\n\t\t\toldesp = pushs (x) ;\n\t\t\tx.s.p = (char *) esp - (char *) zero ;\n\t\t\tcomma () ;\n\t\t\tv = exprs () ;\n\t\t\tpushs (v) ;\n\t\t\tv.s.p = (char *) esp - (char *) zero ;\n\t\t\tif (*esi == ',')\n\t\t\t    {\n\t\t\t\tesi++ ;\n\t\t\t\tn = expri () - 1 ;\n\t\t\t\tif (n < 0)\n\t\t\t\t\tn = 0 ;\n\t\t\t    }\n\t\t\tbraket () ;\n\n\t\t\tif ((x.s.l == 0) || (v.s.l == 0) || ((n + v.s.l) > x.s.l))\n\t\t\t    {\n\t\t\t\tv.i.t = 0 ;\n\t\t\t\tv.i.n = 0 ;\n\t\t\t\tesp = oldesp ;\n\t\t\t    }\n\t\t\telse\n\t\t\t    {\n\t\t\t\tp = x.s.p + n + (char *) zero ;\n\t\t\t\tn = 0 ;\n\t\t\t\twhile (p != NULL)\n\t\t\t\t    {\n\t\t\t\t\tif (0 == memcmp (p, v.s.p + zero, v.s.l))\n\t\t\t\t\t    {\n\t\t\t\t\t\tn = p - (char *) zero - x.s.p + 1 ;\n\t\t\t\t\t\tbreak ;\n\t\t\t\t\t    }\n\t\t\t\t\tp = memchr (p + 1, *(v.s.p + (char *) zero),\n\t\t\t\t\t\t\tx.s.p + x.s.l - v.s.l + (char *) zero - p) ;\n\t\t\t\t    }\n\t\t\t\tv.i.t = 0 ;\n\t\t\t\tv.i.n = n ;\n\t\t\t\tesp = oldesp ;\n\t\t\t    }\n\t\t\t}\n\t\t\treturn  v ;\n\n/*********************************** REPORT ************************************/\n\n\t\tcase TREPORT:\n\t\t\tif (nxt () != '$')\n\t\t\t\terror (16, NULL) ; // Syntax error\n\t\t\tesi++ ;\n\t\t\treport () ;\n\t\t\tv.s.t = -1 ;\n\t\t\tv.s.p = accs - (char *) zero ;\n\t\t\tv.s.l = strlen (accs) ;\n\t\t\treturn v ;\n\n/******************************* Line number ***********************************/\n\n\t\tcase TLINO:\n\t\t\t{\n\t\t\tunsigned char ah = *(unsigned char *)esi++ ;\n\t\t\tv.i.t = 0 ;\n\t\t\tv.i.n = ((*(unsigned char *)esi++) ^ ((ah << 2) & 0xC0)) ;\n\t\t\tv.i.n += ((*(unsigned char *)esi++) ^ ((ah << 4) & 0xC0)) * 256 ; \n\t\t\t} \n\t\t\treturn v ;\n\n\n/************************************ SYS **************************************/\n\n\t\tcase TSYS:\n\t\t\tv = items () ;\n\t\t\tif (v.s.l > 255)\n\t\t\t\terror (19, NULL) ; // 'String too long'\n\t\t\tmemcpy (accs, v.s.p + zero, v.s.l) ;\n\t\t\t*(accs + v.s.l) = 0 ;\n\t\t\tv.i.t = 0 ;\n\t\t\tv.i.n = (intptr_t) sysadr (accs) ;\n\t\t\treturn v ;\n\n/*********************************** PROC **************************************/\n\n\t\tcase TPROC:\n\t\t\terror (16, NULL) ; // 'Syntax error'\n\n/*************************** Hexadecimal constant ******************************/\n\n\t\tcase '&':\n\t\t\t{\n\t\t\tsigned char *p = esi ;\n\t\t\tv.i.n = 0 ;\n\t\t\twhile (1)\n\t\t\t    {\n\t\t\t\tsigned char x = *esi ;\n\t\t\t\tsigned char d ;\n\t\t\t\tif ((x >= '0') && (x <= '9')) d = x - 48 ;\n\t\t\t\telse if ((x >= 'A') && (x <= 'F')) d = x - 55 ;\n\t\t\t\telse if ((x >= 'a') && (x <= 'f')) d = x - 87 ;\n\t\t\t\telse break ;\n\t\t\t\tv.i.n = (v.i.n << 4) | d ;\n\t\t\t\tesi++ ;\n\t\t\t    }\n\t\t\tif (p == esi)\n\t\t\t\terror (28, NULL) ; // 'Bad hex or binary'\n\t\t\tif ((liston & BIT2) == 0)\n\t\t\t\tv.i.n = (v.i.n << 32) >> 32 ;\n\t\t\tv.i.t = 0 ;\n\t\t\t}\n\t\t\treturn v ;\n\n/****************************** Binary constant ********************************/\n\n\t\tcase '%':\n\t\t\t{\n\t\t\tsigned char al = *esi++ ;\n\t\t\tv.i.n = 0 ;\n\t\t\tif ((al != '0') && (al != '1'))\n\t\t\t\terror (28, NULL) ; // 'Bad hex or binary'\n\t\t\twhile ((al == '0') || (al == '1'))\n\t\t\t    {\n\t\t\t\tv.i.n = (v.i.n << 1) | (al - '0') ;\n\t\t\t\tal = *esi++ ;\n\t\t\t    } \n\t\t\tif ((liston & BIT2) == 0)\n\t\t\t\tv.i.n = (v.i.n << 32) >> 32 ;\n\t\t\tv.i.t = 0 ;\n\t\t\tesi-- ;\n\t\t\t}\n\t\t\treturn v ;\n\n/********************************* Unary plus **********************************/\n\n\t\tcase '+':\n\t\t\treturn itemn () ; // unary plus\n\n/******************************** Unary minus **********************************/\n\n\t\tcase '-':\n\t\t\tv = itemn () ;\n\t\t\tif (v.i.t)\n\t\t\t\tv.f = -v.f ; // Both double and long-double\n\t\t\telse if (v.i.n == 0x8000000000000000)\n\t\t\t    {\n\t\t\t\tv.i.t = 1 ; // ARM\n\t\t\t\tv.f = 9223372036854775808.0L ;\n\t\t\t    }\n\t\t\telse\n\t\t\t\tv.i.n = -v.i.n ;\n\t\t\treturn v ;\n\n/************************** Quoted (constant) string ***************************/\n\n\t\tcase '\"':\n\t\t\treturn cons () ;\n\n/***************************** Address-of operator *****************************/\n\n\t\tcase '^':\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedADDR();\n\t\tvoid __attribute__ ((noinline)) nestedADDR(void)\n#endif\n\t\t\t{\n\t\t\tunsigned char type ;\n\t\t\tvoid *ptr = getput (&type) ;\n\t\t\tv.i.t = 0 ;\n\t\t\tv.i.n = (size_t) ptr ;\n\t\t\t}\n\t\t\treturn v ;\n\n/************************ Decimal constant or variable *************************/\n\n\t\tdefault:\n\t\t\tesi-- ;\n\t\t\tif (((al >= '0') && (al <= '9')) || (al == '.'))\n\t\t\t\treturn con() ;\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\treturn nesteddefault();\n\t\tVAR __attribute__ ((noinline)) nesteddefault(void)\n#endif\n\t\t\t{\n\t\t\tunsigned char type ;\n\t\t\tsigned char *savesi = esi ;\n\t\t\tvoid *ptr = getvar (&type) ;\n\t\t\tif (ptr == NULL)\n\t\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\t\tif (type == 0)\n\t\t\t    {\n\t\t\t\tsigned char *edi = vpage + (signed char *) zero ;\n\t\t\t\tif ((liston & BIT5) == 0)\n\t\t\t\t    {\n\t\t\t\t\twhile (range0 (*++esi)) ;\n\t\t\t\t\tv.i.t = 0 ;\n#if defined(__x86_64__) || defined(__aarch64__)\n\t\t\t\t\tv.i.n = (unsigned int) stavar[16] + ((long long) stavar[17] << 32) ;\n#else\n\t\t\t\t\tv.i.n = stavar[16] ;\n#endif\n\t\t\t\t\treturn v ;\n\t\t\t\t    }\n\t\t\t\twhile ((*(unsigned char*)edi != 0) &&\n\t\t\t\t\t((edi = search (edi, '(')) != NULL))\n\t\t\t\t    {\n\t\t\t\t\tsigned char *oldesi = esi ;\n\t\t\t\t\tesi = edi + 1 ;\n\t\t\t\t\tedi -= 3 ;\n\t\t\t\t\tptr = getvar (&type) ;\n\t\t\t\t\tif ((ptr != NULL) && (type == 0))\n\t\t\t\t\t\tptr = putvar (ptr, &type) ;\n\t\t\t\t\tif (type)\n\t\t\t\t\t    {\n\t\t\t\t\t\tv.i.t = 0 ;\n\t\t\t\t\t\tv.i.n = edi - (signed char *) zero ;\n\t\t\t\t\t\tstoren (v, ptr, type) ;\n\t\t\t\t\t    }\n\t\t\t\t\tesi = oldesi ;\n\t\t\t\t\tedi += (int)*(unsigned char*)edi ;\n\t\t\t\t    }\n\t\t\t\tesi = savesi ;\n\t\t\t\tptr = getvar (&type) ;\n\t\t\t\tif (type == 0)\n\t\t\t\t\terror (26, NULL) ; // 'No such variable'\n\t\t\t    }\n\t\t\tif (type & BIT6)\n\t\t\t\terror (14, NULL) ; // 'Bad use of array'\n\t\t\tif (type & BIT4)\n\t\t\t    {\n\t\t\t\tv.i.t = 0 ;\n\t\t\t\tv.i.n = (intptr_t) VLOAD(ptr + sizeof(void *)) ; // GCC extension: sizeof(void) = 1\n\t\t\t\treturn v ;\n\t\t\t    }\n\t\t\tif (type < 128)\n\t\t\t\treturn loadn (ptr, type) ;\n\t\t\treturn loads (ptr, type) ;\n\t\t\t}\n\t    }\n\n\tif (isinf(v.f) || isnan(v.f) || (v.i.t == -1) || errno)\n\t    {\n\t\tif ((al == TLN) || (al == TLOG))\n\t\t\terror (22, NULL) ; // 'Logarithm range'\n\t\telse if (al == TSQR)\n\t\t\terror (21, NULL) ; // 'Negative root'\n\t\telse if (al == TEXP)\n\t\t\terror (24, NULL) ; // 'Exponent range'\n\t\telse\n\t\t\terror (20, NULL) ; // 'Number too big'\n\t    }\n\n\tif (v.i.t == 0)\n\t\tv.i.n = 0 ; // Underflow\n\n\treturn v ;\n}\n\n// Check for relational or shift operator.\n//           <   0x3C   =   0x3D   >   0x3E\n//           <=  0x79   <>  0x7A   >=  0x7B\n//           <<  0x04   <<< 0x05   >>  0x06   >>> 0x07\n\nstatic signed char relop (void)\n{\n\tunsigned char al, op = *esi ;\n\tif ((op != '<') && (op != '=') && (op != '>'))\n\t\treturn 0 ;\n\tesi++ ;\n \tal = nxt () ;\n\tif ((al != '<') && (al != '=') && (al != '>'))\n\t\treturn op ; // < = >\n\tesi++ ;\n\tif (al != op)\n\t\treturn op + al ; // <= <> >=\n\tif (al == '=')\n\t\treturn op ; // == treated as =\n\tal = nxt () ;\n\tif (al == op)\n\t    {\n\t\tesi++ ;\n\t\top += 1 ;\n\t    }\n\treturn (op & 7) ; // << <<< >> >>>\n}\n\n// Evaluate an expression:\n// Hierarchy: (1) Variables, functions, constants, parenthesized expressions.\n//            (2) ^\n//            (3) * / MOD DIV\n//            (4) + -\n//            (5) = <> <= >= > < << >> >>>\n//            (6) AND\n//            (7) EOR OR\n\n// Level 5: ^:\nstatic VAR expr5 (void)\n{\n\tVAR x = item () ;\n\tsigned char op = nxt () ;\n\tif (x.s.t == -1)\n\t\treturn x ; // string\n\twhile (1) \n\t    {\n\t\tif (op == '^')\n\t\t    {\n\t\t\tesi++ ;\n\t\t\tVAR y = item () ;\n\t\t\tif (y.s.t == -1)\n\t\t\t\terror (6, NULL) ; // 'Type mismatch'\n\t\t\tx = math (x, op, y) ;\n\t\t    }\n\t\telse\n\t\t\tbreak ;\n\t\top = nxt () ;\n\t    }\n\treturn x;\n}\n\n// Level 4: *, /, MOD, DIV:\nstatic VAR expr4 (void)\n{\n\tVAR x = expr5 () ;\n\tif (x.s.t == -1)\n\t\treturn x ; // string\n\twhile (1) \n\t    {\n\t\tsigned char op = *esi ;\n\t\tif ((op == '*') || (op == '/') || (op == TMOD) || (op == TDIV))\n\t\t    {\n\t\t\tesi++ ;\n\t\t\tVAR y = expr5 () ;\n\t\t\tif (y.s.t == -1)\n\t\t\t\terror (6, NULL) ; // 'Type mismatch'\n\t\t\tx = math (x, op, y) ;\n\t\t    }\n\t\telse\n\t\t\tbreak ;\n\t    }\n\treturn x;\n}\n\n// Level 3: +, -, SUM:\nstatic VAR expr3 (void)\n{\n\tVAR x = expr4 () ;\n\tif (x.s.t == -1)\n\t    {\n\t\twhile (1)\n\t\t    {\n\t\t\tsigned char op = *esi ;\n\t\t\tif (op == '+') // concatenate strings\n\t\t\t    {\n\t\t\t\tchar *tmp ;\n\t\t\t\theapptr *oldesp ;\n\t\t\t\tesi++ ;\n\t\t\t\toldesp = pushs (x) ;\n\t\t\t\tVAR y = expr4 () ;\n\t\t\t\tif (y.s.t != -1)\n\t\t\t\t\terror (6, NULL) ; // 'Type mismatch'\n\t\t\t\ttmp = moves ((STR *) &y, x.s.l) ;\n\t\t\t\tmemmove (tmp, esp, x.s.l) ;\n\t\t\t\tesp = oldesp ;\n\t\t\t\tx.s.p = tmp - (char *) zero ;\n\t\t\t\tx.s.l += y.s.l ;\n\t\t\t    }\n\t\t\telse\n\t\t\t\tbreak ;\n\t\t    }\n\t\treturn x ;\n\t    }\n\twhile (1) \n\t    {\n\t\tsigned char op = *esi ;\n\t\tif ((op == '+') || (op == '-') || (op == TSUM))\n\t\t    {\n\t\t\tesi++ ;\n\t\t\tVAR y = expr4 () ;\n\t\t\tif (y.s.t == -1)\n\t\t\t\terror (6, NULL) ; // 'Type mismatch'\n\t\t\tx = math (x, op, y) ;\n\t\t    }\n\t\telse\n\t\t\tbreak ;\n\t    }\n\treturn x;\n}\n\n// Level 2: =, <, >, <>, <=, >=, <<, >>, >>>:\n// (these operators do not chain)\nstatic VAR expr2 (void)\n{\n\tVAR x = expr3 () ;\n\tsigned char op = relop () ;\n\tif (op == 0)\n\t\treturn x ;\n\tif (x.s.t == -1)\n\t    {\n\t\tVAR y ;\n\t\tint n, r ;\n\t\theapptr *oldesp ;\n\n\t\toldesp = pushs (x) ;\n\t\ty = expr3 () ;\n\t\tif (y.s.t != -1)\n\t\t\terror (6, NULL) ; // 'Type mismatch'\n\n\t\tn = x.s.l ;\n\t\tif (n > y.s.l)\n\t\t\tn = y.s.l ;\n\t\tr = memcmp (esp, y.s.p + zero, n) ;\n\t\tif (r == 0)\n\t\t\tr = (x.s.l > y.s.l) - (x.s.l < y.s.l) ;\n\t\tesp = oldesp ;\n\n\t\tswitch (op)\n\t\t    {\n\t\t\tcase '<':\n\t\t\t\tx.i.n = -(r < 0) ;\n\t\t\t\tbreak ;\n\t\t\tcase '=':\n\t\t\t\tx.i.n = -(r == 0) ;\n\t\t\t\tbreak ;\n\t\t\tcase '>':\n\t\t\t\tx.i.n = -(r > 0) ;\n\t\t\t\tbreak ;\n\t\t\tcase 'y':\n\t\t\t\tx.i.n = -(r <= 0) ;\n\t\t\t\tbreak ;\n\t\t\tcase 'z':\n\t\t\t\tx.i.n = -(r != 0) ;\n\t\t\t\tbreak ;\n\t\t\tcase '{':\n\t\t\t\tx.i.n = -(r >= 0) ;\n\t\t\t\tbreak ;\n\t\t\tdefault:\n\t\t\t\terror (16, NULL) ; // Syntax error\n\t\t    }\n\t\tx.i.t = 0 ;\n\t    }\n\telse\n\t    {\n\t\tVAR y = expr3 () ;\n\t\tif (y.s.t == -1)\n\t\t\terror (6, NULL) ; // 'Type mismatch'\n\t\tx = math (x, op, y) ;\n\t    }\n\treturn x;\n}\n\n// Level 1: AND:\nstatic VAR expr1 (void)\n{\n\tVAR x = expr2 () ;\n\tif (x.s.t == -1)\n\t\treturn x ; // string\n\twhile (1)\n\t    {\n\t\tsigned char op = *esi ;\n\t\tif (op == TAND)\n\t\t    {\n\t\t\tesi++ ;\n\t\t\tVAR y = expr2 () ;\n\t\t\tif (y.s.t == -1)\n\t\t\t\terror (6, NULL) ; // 'Type mismatch'\n\t\t\tx = math (x, op, y) ;\n\t\t    }\n\t\telse\n\t\t\tbreak ;\n\t    }\n\treturn x;\n}\n\n// Level 0: OR, EOR:\nVAR expr (void)\n{\n\tVAR x = expr1 () ;\n\tif (x.s.t == -1)\n\t\treturn x ; // string\n\twhile (1) \n\t    {\n\t\tsigned char op = *esi ;\n\t\tif ((op == TOR) || (op == TEOR))\n\t\t    {\n\t\t\tesi++ ;\n\t\t\tVAR y = expr1 () ;\n\t\t\tif (y.s.t == -1)\n\t\t\t\terror (6, NULL) ; // 'Type mismatch'\n\t\t\tx = math (x, op, y) ;\n\t\t    }\n\t\telse\n\t\t\tbreak ;\n\t    }\n\treturn x;\n}\n\n// Evaluate an array expression (strictly left-to-right):\nint expra (void *ebp, int ecx, unsigned char type)\n{\n\tint i ;\n\tsigned char op ;\n\tunsigned char type2 ;\n\tvoid *ptr ;\n\n\tif (nxt () == TEVAL)\n\t    {\n\t\tint count ;\n\t\tsigned char *tmpesi ;\n\t\tesi++ ;\n\t\tVAR v = items () ;\n\t\tfixs (v) ;\n\t\tlexan (accs, buff, 0) ;\n\t\ttmpesi = esi ;\n\t\tesi = (signed char *) buff ;\n\t\tcount = expra (ebp, ecx, type) ; // recursive call\n\t\tesi = tmpesi ;\n\t\tif (nxt () != ',')\n\t\t\treturn count ;\n\t    }\n\telse\n\t    {\n\t\top = '=' ; // for initial assignment\n\t\twhile (1)\n\t\t    {\n\t\t\tvoid *savebp = ebp ;\n\t\t\tsigned char *savesi = esi ;\n\t\t\tsigned char saveop = op ;\n\n\t\t\tif ((nxt () == '-') && (op == '=')) // unary minus\n\t\t\t    {\n\t\t\t\tesi++ ;\n\t\t\t\tnxt () ;\n\t\t\t\top = '-' ;\n\t\t\t    }\n\n\t\t\tptr = getvar (&type2) ;\n\t\t\tif ((ptr != NULL) && (type2 & BIT6)) // RHS is an array\n\t\t\t    {\n\t\t\t\tif (ptr < (void *)2)\n\t\t\t\t\terror (14, NULL) ; // 'Bad use of array'\n\t\t\t\tptr = VLOAD(ptr) ;\n\n\t\t\t\tif (nxt () == '.') // dot product\n\t\t\t\t\tbreak ;\n\n\t\t\t\tif (((type < 128) != (type2 < 128)) || (ecx != arrlen(&ptr)))\n\t\t\t\t\terror (6, NULL) ; // 'Type mismatch'\n\t\t\t\tif (type < 128) // numeric array\n\t\t\t\t    {\n\t\t\t\t\tfor (i = 0; i < ecx; i++)\n\t\t\t\t\t    {\n\t\t\t\t\t\tVAR v = loadn (ptr, type2 & ~BIT6) ;\n\t\t\t\t\t\tmodify (v, ebp, type & ~BIT6, op) ;\n\t\t\t\t\t\tebp += type & TMASK ; // GCC extension\n\t\t\t\t\t\tptr += type2 & TMASK ; // GCC extension\n\t\t\t\t\t    }\n\t\t\t\t    }\n\t\t\t\telse // string array\n\t\t\t\t    {\n\t\t\t\t\tfor (i = 0; i < ecx; i++)\n\t\t\t\t\t    {\n\t\t\t\t\t\tmodifs (NLOAD(ptr), ebp, type & ~BIT6, op) ;\n\t\t\t\t\t\tebp += 8 ; // GCC extension (void has size 1)\n\t\t\t\t\t\tptr += 8 ; // GCC extension (void has size 1)\n\t\t\t\t\t    }\n\t\t\t\t    }\n\t\t\t    }\n\t\t\telse // RHS is not an array\n\t\t\t    {\n\t\t\t\tVAR v ;\n\t\t\t\tesi = savesi ;\n\t\t\t\top = saveop ;\n\n\t\t\t\tif (type < 128) // numeric non-array\n\t\t\t\t    {\n\t\t\t\t\tswitch (op)\n\t\t\t\t\t    {\n\t\t\t\t\t\tcase TOR:\n\t\t\t\t\t\tcase TEOR:\n\t\t\t\t\t\t\tv = expr1 () ;\n\t\t\t\t\t\t\tbreak ;\n\n\t\t\t\t\t\tcase TAND:\n\t\t\t\t\t\t\tv = expr3 () ;\n\t\t\t\t\t\t\tbreak ;\n\n\t\t\t\t\t\tcase '+':\n\t\t\t\t\t\tcase '-':\n\t\t\t\t\t\t\tv = expr4 () ;\n\t\t\t\t\t\t\tbreak ;\n\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tv = expr5 () ;\n\t\t\t\t\t    }\n\t\t\t\t\tif (v.s.t == -1)\n\t\t\t\t\t\terror (6, NULL) ; // 'Type mismatch'\n\n\t\t\t\t\tfor (i = 0; i < ecx; i++)\n\t\t\t\t\t    {\n\t\t\t\t\t\tmodify (v, ebp, type & ~BIT6, op) ;\n\t\t\t\t\t\tebp += type & TMASK ; // GCC extension\n\t\t\t\t\t\tif (nxt () == ',') break ;\n\t\t\t\t\t    }\n\t\t\t\t    }\n\t\t\t\telse // string non-array\n\t\t\t\t    {\n\t\t\t\t\theapptr *savesp ;\n\t\t\t\t\tv = items () ;\n\t\t\t\t\tsavesp = pushs (v) ;\n\t\t\t\t\tv.s.p = (char *) esp - (char *) zero ;\n\t\t\t\t\tfor (i = 0; i < ecx; i++)\n\t\t\t\t\t    {\n\t\t\t\t\t\tmodifs (v, ebp, type & ~BIT6, op) ;\n\t\t\t\t\t\tebp += 8 ; // GCC extension\n\t\t\t\t\t\tif (nxt () == ',') break ;\n\t\t\t\t\t    }\n\t\t\t\t\tesp = savesp ;\n\t\t\t\t    }\n\t\t\t    }\n\n\t\t\tebp = savebp ;\n\t\t\top = nxt () ;\n\t\t\tif ((op == '+') || (op == '-') || (op == '*') || (op == '/') ||\n\t\t\t\t(op == '^') || ((op >= TAND) && (op <= TOR)))\n\t\t\t    {\n\t\t\t\tesi++ ;\n\t\t\t\tcontinue ;\n\t\t\t    }\n\t\t\tbreak ;\n\t\t    }\n\t    }\n\n\tif (*esi == '.')\n\t    {\n\t\tint i, j, k, dimsl, dimsr, size ;\n\t\tint rowsl, colsl, rowsr, colsr ;\n\t\tunsigned char type3 ;\n\t\tvoid *rhs ;\n\n\t\tesi++ ; // skip dot\n\t\tnxt () ;\n\t\trhs = getvar (&type3) ;\n\t\tif ((rhs == NULL) || (ptr == NULL))\n\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\tif (type3 == 0)\n\t\t\terror (26, NULL) ; // 'No such variable'\n\t\tif ((type2 != type3) || (type3 & BIT7))\n\t\t\terror (6, NULL) ; // 'Type mismatch'\n\t\tif (rhs < (void *)2)\n\t\t\terror (14, NULL) ; // 'Bad use of array'\n\t\trhs = VLOAD(rhs) ;\n\n\t\tdimsl = *(unsigned char *)ptr ;\n\t\tdimsr = *(unsigned char *)rhs ;\n\t\tif ((dimsl > 2) || (dimsr > 2))\n\t\t\terror (6, NULL) ; // 'Type mismatch'\n\n\t\tif (dimsl == 2)\n\t\t    {\n\t\t\trowsl = ILOAD(ptr + 1) ; // GCC extension: sizeof(void) = 1\n\t\t\tcolsl = ILOAD(ptr + 5) ; // GCC extension: sizeof(void) = 1\n\t\t\tptr += 9 ;\n\t\t    }\n\t\telse\n\t\t    {\n\t\t\trowsl = 1 ;\n\t\t\tcolsl = arrlen (&ptr) ;\n\t\t    }\n\n\t\tif (dimsr == 2)\n\t\t    {\n\t\t\trowsr = ILOAD(rhs + 1) ; // GCC extension: sizeof(void) = 1\n\t\t\tcolsr = ILOAD(rhs + 5) ; // GCC extension: sizeof(void) = 1\n\t\t\trhs += 9 ;\n\t\t    }\n\t\telse\n\t\t    {\n\t\t\tcolsr = 1 ;\n\t\t\trowsr = arrlen (&rhs) ;\n\t\t    }\n\n\t\tif ((colsl != rowsr) || (ecx != (colsr * rowsl)))\n\t\t\terror (6, NULL) ; // 'Type mismatch'\n\n\t\ttype &= ~BIT6 ;\n\t\ttype2 &= ~BIT6 ;\n\t\tsize = type2 & TMASK ;\n\t\tfor (i = 0; i < rowsl; i++)\n\t\t    {\n\t\t\tvoid *oldrhs = rhs ;\n\t\t\tfor (j = 0; j < colsr; j++)\n\t\t\t    {\n\t\t\t\tvoid *oldptr = ptr ;\n\t\t\t\tvoid *oldrhs = rhs ;\n\t\t\t\tVAR v = {0} ;\n\t\t\t\tfor (k = 0; k < colsl; k++)\n\t\t\t\t    {\n#if !(defined(__GNUC__) && (__GNUC__ >= 7) || defined(__clang__) && (__clang_major__ >= 4))\n\t\t\t\t\tv = math( math (loadn (ptr,type2), '*', loadn (rhs,type2)), \n\t\t\t\t\t\t  '+', v) ;\n#else\n\t\t\t\t\tlong long tmp ;\n\t\t\t\t\tVAR x = loadn (ptr, type2) ;\n\t\t\t\t\tVAR y = loadn (rhs, type2) ;\n\t\t\t\t\tif ((x.i.t == 0) && (y.i.t == 0) &&\n\t\t\t\t\t    ! __builtin_smulll_overflow (x.i.n, y.i.n, &tmp))\n\t\t\t\t\t\tx.i.n = tmp ;\n\t\t\t\t\telse\n\t\t\t\t\t    {\n\t\t\t\t\t\tfloat2 (&x, &y) ;\n\t\t\t\t\t\tx.f *= y.f ;\n\t\t\t\t\t\tif (x.i.t == 0)\n\t\t\t\t\t\t\tx.f = 0.0 ; // Underflow\n\t\t\t\t\t    }\n\t\t\t\t\tif ((v.i.t == 0) && (x.i.t == 0) &&\n\t\t\t\t\t    ! __builtin_saddll_overflow (v.i.n, x.i.n, &tmp))\n\t\t\t\t\t\tv.i.n = tmp ;\n\t\t\t\t\telse\n\t\t\t\t\t    {\n\t\t\t\t\t\tfloat2 (&v, &x) ;\n\t\t\t\t\t\tv.f += x.f ;\n\t\t\t\t\t\tif (isinf(v.f) || (v.i.t == -1))\n\t\t\t\t\t\t\terror (20, NULL) ; // 'Number too big'\n\t\t\t\t\t\tif ((v.i.t == 0) || (v.i.t == (short) 0x8000))\n\t\t\t\t\t\t\tv.f = 0.0 ; // Underflow\n\t\t\t\t\t    }\n#endif\n\t\t\t\t\tptr += size ;\n\t\t\t\t\trhs += size * colsr ;\n\t\t\t\t    }\n\t\t\t\tstoren (v, ebp, type) ;\n\t\t\t\tebp += (type & 15) ;\n\t\t\t\trhs = oldrhs + size ;\n\t\t\t\tptr = oldptr ;\n\t\t\t    }\n\t\t\trhs = oldrhs ;\n\t\t\tptr += size * colsl ;\n\t\t    }\n\t\treturn ecx ;\n\t    }\n\n\ti = 0 ;\n\twhile ((nxt () == ',') && (++i < ecx)) // list of initialisers supplied\n\t    {\n\t\tVAR v ;\n\t\tesi++ ;\n\t\tif (type < 128)\n\t\t    {\n\t\t\tv = exprn () ;\n\t\t\tebp += type & TMASK ; // GCC extension\n\t\t\tmodify (v, ebp, type & ~BIT6, '=') ;\n\t\t    }\n\t\telse\n\t\t    {\n\t\t\tv = exprs () ;\n\t\t\tebp += 8 ; // GCC extension\n\t\t\tmodifs (v, ebp, type & ~BIT6, '=') ;\n\t\t    }\n\t    }\n\n\tif (i) ecx = i + 1 ;\n\treturn ecx ;\n}\n\n// Function aliases:\nint str00 (VAR v, char *dst, int format)\n{\n\treturn str (v, dst, format) ;\n}\n"
  },
  {
    "path": "src/bbexec.c",
    "content": "/*****************************************************************\\\n*       32-bit or 64-bit BBC BASIC Interpreter                    *\n*       (C) 2017-2026  R.T.Russell  http://www.rtrussell.co.uk/   *\n*                                                                 *\n*       The name 'BBC BASIC' is the property of the British       *\n*       Broadcasting Corporation and used with their permission,  *\n*       it is not transferrable to a forked or derived work.      *\n*                                                                 *\n*       bbexec.c: Variable assignment and statement execution     *\n*       Version 1.43c, 03-Feb-2026                                *\n\\*****************************************************************/\n\n#include <string.h>\n#include <stdio.h>\n#include <stdint.h>\n#include <math.h>\n#include \"BBC.h\"\n\n// Routines in bbmain:\nint range1 (char) ;\t\t// Test char for valid in a variable name\nsigned char nxt (void) ;\t// Skip spaces, handle line continuation\nvoid check (void) ;\t\t// Check for running out of memory\nvoid error (int, const char*) ;\t// Process an error\nvoid outchr (unsigned char) ;\t// Output a character\nvoid text (const char *) ;\t// Output NUL-terminated string\nunsigned short report (void) ;\t// Build an error string in accs\nvoid crlf (void) ;\t\t// Output a newline\nchar *allocs (STR *, int) ;\t// Reallocate a string\nchar *alloct (int) ;\t\t// Allocate temporary string space\nheapptr *pushs (VAR) ;\t\t// Push string on stack\nchar *moves (STR *, int) ;\t// Move string into temporary buffer\nvoid braket (void) ;\t\t// Check for closing parenthesis\nvoid comma (void) ;\t\t// Check for a comma\nvoid clear (void) ;\t\t// Clear dynamic variables etc.\nvoid clrtrp (void) ;\t\t// Clear ON event handlers\nsigned char *findl (unsigned int) ;\t// Find a specified line number or label\nint arrlen (void **) ;\t\t// Count elements in an array\nvoid *getvar (unsigned char*) ;\t// Get a variable's pointer and type\nvoid *getdim (unsigned char*) ;\nvoid *getdef (unsigned char*) ;\nvoid *getput (unsigned char*) ;\nvoid *putvar (void *, unsigned char*) ;\nvoid *create (unsigned char **, unsigned char *) ;\nvoid *putdef (void *) ;\nsigned char *gettop (signed char *, unsigned short *) ;\nsigned char *search (signed char *, signed char) ;\nunsigned short setlin (signed char *, char **) ;\n\n// Routines in bbeval:\nVAR expr (void) ;\t\t// Evaluate an expression\nVAR exprn (void) ;\t\t// Evaluate a numeric expression\nVAR exprs (void) ;\t\t// Evaluate a string expression\nlong long itemi (void) ;\t// Evaluate an integer item\nlong long expri (void) ;\t// Evaluate an integer expression\nvoid fixs (VAR) ;\t\t// Copy to accs and terminate with CR\nVAR cons (void) ;\t\t// Get a constant (quoted) string\nVAR val (void) ;\t\t// Get a numeric constant from accs\nint str (VAR, char *, int) ;\t// Convert number to decimal string\nint strhex (VAR, char*, int) ;\t// Convert number to hexadecimal string\nvoid *channel (void) ;\t\t// Get a file channel number\nint expra (void *, int, unsigned char) ; // Evaluate an array expression\nVAR loadn (void *, unsigned char) ; // Load a numeric from memory\nVAR loads (void *, unsigned char) ; // Load a string from memory\nVAR math (VAR, signed char, VAR) ;  // Perform arithmetic\n\n// Routines in bbcmos:\nheapptr xtrap (void) ;\t\t// Handle an event interrupt etc.\nvoid oswrch (unsigned char) ;\t// Output a byte\nvoid oswait (int) ;\t\t// Pause for a specified time\nvoid osline (char *) ;\t\t// Get a line of console input\nvoid putime (int) ;\t\t// Store centisecond ticks\nvoid mouse (int*, int*, int*) ;\t// Get mouse state\nvoid mouseon (int) ;\t\t// Set mouse cursor (pointer)\nvoid mouseoff (void) ;\t\t// Hide mouse cursor\nvoid mouseto (int, int) ;\t// Move mouse cursor\nvoid *sysadr (char *) ;\t\t// Get the address of an API function\nsize_t guicall (void *, PARM *) ;\t// Call function in GUI thread context\nheapptr oshwm (void *, int) ;\t// Allocate memory above HIMEM\nint oscall (int) ;\t\t// Call an emulated OS function\nvoid envel (signed char *) ;\t// ENVELOPE statement\nvoid quiet (void) ;\t\t// Disable sound generation\nvoid sound (short, signed char, unsigned char, unsigned char) ; // SOUND statement\nvoid *osopen (int, char *) ;\t// Open a file\nunsigned char osbget (void *, int*) ; // Read a byte from a file\nvoid osbput (void *, unsigned char) ; // Write a byte to a file\nvoid setptr (void *, long long) ;\t// Set the file pointer\nvoid setext (void *, long long) ;\t// Set the file size\nlong long getext (void *) ;\t// Get file length\nvoid osshut (void *) ;\t\t// Close file(s)\nvoid osload (char*, void *, unsigned int) ; // Load a file to memory\n#ifdef CAN_SET_RTC\nvoid putims (const char *) ;\t// Set real-time-clock\n#endif\n\n// Routines in bbasmb:\nvoid assemble (void) ;\n\n// Routines in bbccli:\nvoid oscli (char*) ;\t\t// OSCLI\n\n// Routines in bbcvdu:\nlong long apicall_ (void *, PARM *) ;\ndouble fltcall_ (void *, PARM *) ;\n\nvoid spaces (int num)\n{\n\twhile (num-- > 0)\n\t\toutchr (' ') ;\n}\n\nstatic void dotab (void)\n{\n\tint x = expri () ;\n\tif (*esi == ',')\n\t    {\n\t\tint y ;\n\t\tesi++ ;\n\t\ty = expri () ;\n\t\tbraket () ;\n\t\toswrch (31) ;\n\t\toswrch (x) ;\n\t\toswrch (y) ;\n\t\treturn ;\n\t    }\n\tbraket () ;\n\tif (vcount == x)\n\t\treturn ;\n\tif (vcount > x)\n\t\tcrlf () ;\n\tspaces (x - vcount) ;\n}\n\nstatic int format (signed char al)\n{\n\tswitch (al)\n\t    {\n\t\tcase 0x27:\n\t\t\tcrlf () ;\n\t\t\treturn 1 ;\n\n\t\tcase TTAB:\n\t\t\tdotab () ;\n\t\t\treturn 1 ;\n\n\t\tcase TSPC:\n\t\t\tspaces (itemi ()) ;\n\t\t\treturn 1 ;\n\t    }\nreturn 0 ;\n}\n\nstatic void ptext (char *p, int l)\n{\n\tint i ;\n\tfor (i = 0; i < l; i++)\n\t\toutchr (*p++) ;\n}\n\nstatic void equals (void)\n{\n\tif (nxt () != '=')\n\t\terror (4, NULL) ; // 'Mistake'\n\tesi++ ;\n}\n\n// Store numeric variable:\nvoid storen (VAR v, void *ptr, unsigned char type)\n{\n\tint n ;\n\tswitch (type)\n\t    {\n\t\tcase 1:\n\t\t\tif (v.i.t)\n\t\t\t\tv.i.n = v.f ;\n\t\t\tn = v.i.n ;\n\t\t\tif (v.i.n != n)\n\t\t\t\terror (20, NULL) ; // 'Number too big'\n\t\t\t*(unsigned char*)ptr = n ;\n\t\t\tbreak ;\n\n\t\tcase 4:\n\t\t\tif (v.i.t)\n\t\t\t\tv.i.n = v.f ;\n\t\t\tn = v.i.n ;\n\t\t\tif (v.i.n != n)\n\t\t\t\terror (20, NULL) ; // 'Number too big'\n\t\t\tISTORE(ptr, n) ;\n\t\t\tbreak ;\n\n\t\tcase 5:\n\t\t\t{\n\t\t\tlong long l ;\n\t\t\tint e ;\n\n\t\t\tif (v.i.t == 0)\n\t\t\t\tv.f = v.i.n ;\n\t\t\tv.d.d = v.f ;\n\n\t\t\tl = ((v.i.n & 0x7FFFFFFFFFFFFFFFL) + 0x100000) >> 21 ;\n\t\t\te = (l >> 31) - 895 ;\n\t\t\tif (v.d.d < 0) l |= 0x80000000 ; else l &= 0x7FFFFFFF ;\n\t\t\tif (e > 255)\n\t\t\t\terror (20, NULL) ; // 'Number too big'\n\t\t\tif (e <= 0)\n\t\t\t    {\n\t\t\t\tISTORE(ptr, 0) ;\n\t\t\t\t* ((char *)ptr+4) = 0 ;\n\t\t\t    }\n\t\t\telse\n\t\t\t    {\n\t\t\t\tISTORE(ptr, l) ;\n\t\t\t\t* ((char *)ptr+4) = e ;\n\t\t\t    }\n\t\t\t}\n\t\t\tbreak ;\n\n\t\tcase 8:\n\t\t\t{\n\t\t\tif (v.i.t == 0)\n\t\t\t\tv.f = v.i.n ;\n\t\t\tv.d.d = v.f ;\n\t\t\tif ((v.s.l == 0x7FF00000) || (v.s.l == 0xFFF00000))\n\t\t\t\terror (20, NULL) ; // 'Number too big'\n\t\t\tif (v.s.l == 0) v.d.d = 0.0 ;\n\t\t\tUSTORE(ptr, v.s.p) ;\n\t\t\tUSTORE((char *)ptr + 4, v.s.l) ;\n\t\t\t}\n\t\t\tbreak ;\n\n\t\tcase 10:\n\t\t\t// *(int *)ptr = (int) v.s.p ;\n\t\t\t// *(int *)((char *)ptr + 4) = v.s.l ;\n\t\t\t// *(short *)((char *)ptr + 8) = v.s.t ;\n\t\t\tmemcpy (ptr, &v.s.p, 10) ; // may be unaligned\n\t\t\tbreak ;\n\n\t\tcase 40:\n\t\t\tif (v.i.t)\n\t\t\t    {\n\t\t\t\tlong long t = v.f ;\n\t\t\t\tif (t != truncl(v.f))\n\t\t\t\t\terror (20, NULL) ; // 'Number too big'\n\t\t\t\tv.i.n = t ;\n\t\t\t    }\n\t\t\t// *(int *)ptr = (int) v.s.p ;\n\t\t\t// *(int *)((char *)ptr + 4) = v.s.l ;\n\t\t\tmemcpy (ptr, &v.s.p, 8) ; // may be unaligned\n\t\t\tbreak ;\n\n\t\tcase 32:\n\t\t\t{\n\t\t\tunion { int i; float f; } u ;\n\t\t\tif (v.i.t == 0)\n\t\t\t\tv.f = v.i.n ;\n\t\t\tu.f = v.f ;\n\t\t\tif ((u.i == 0x7F800000) || (u.i == 0xFF800000))\n\t\t\t\terror (20, NULL) ; // 'Number too big'\n\t\t\tISTORE(ptr, u.i) ;\n\n\t\t\tbreak ;\n\t\t\t}\n\n\t\tcase 36:\n\t\t\tVSTORE(ptr, (void *) (size_t) v.i.n) ;\n\t\t\tbreak ;\n\n\t\tdefault:\n\t\t\terror (6, NULL) ; // 'Type mismatch'\n\t    }\n}\n\n// Store string variable:\nvoid stores (VAR v, void *ptr, unsigned char type)\n{\n\tif (ptr == NULL)\n\t\treturn ;\n\tswitch (type)\n\t    {\n\t\tcase 128:\n\t\t\tmemmove (ptr, v.s.p + zero, v.s.l) ;\n\t\t\t*((char *)ptr + v.s.l) = 0x0D ;\n\t\t\tbreak ;\n\n\t\tcase 130:\n\t\t\tmemmove (ptr, v.s.p + zero, v.s.l) ;\n\t\t\t*((char *)ptr + v.s.l) = 0 ;\n\t\t\tbreak ;\n\n\t\tcase 136:\n\t\t\tif ((v.s.l != 0) && (v.s.l == tmps.l) && (v.s.p == tmps.p))\n\t\t\t    {\n\t\t\t\t// Source string is pointed to by the tmps descriptor so simply\n\t\t\t\t// swap the descriptors rather than copying the string contents:\n\t\t\t\tSTR swap = tmps ;\n\t\t\t\tmemcpy(&tmps, ptr, sizeof(STR)) ;\n\t\t\t\tmemcpy(ptr, &swap, sizeof(STR)) ;\n\t\t\t\tbreak ;\n\t\t\t    }\n\t\t\tmemmove (allocs ((STR *)ptr, v.s.l), v.s.p + zero, v.s.l) ;\n\t\t\tbreak ;\n\n\t\tdefault:\n\t\t\terror (6, NULL) ; // 'Type mismatch'\n\t    }\n}\n\n// Modify numeric variable:\nvoid modify (VAR v, void *ptr, unsigned char type, signed char op)\n{\n\tif (op == '=')\n\t    {\n\t\tstoren (v, ptr, type) ;\n\t\treturn ;\n\t    }\n\tstoren (math (loadn (ptr, type), op, v), ptr, type) ;\n} \n\n// Modify string variable:\nvoid modifs (VAR v, void *ptr, unsigned char type, signed char op)\n{\n\tVAR s ;\n\tchar *tmp ;\n\tif (op == '=')\n\t    {\n\t\tstores (v, ptr, type) ;\n\t\treturn ;\n\t    }\n\tif (op != '+')\n\t\terror (6, NULL) ; // 'Type mismatch'\n\n\ts = loads (ptr, type) ;\n\ttmp = moves ((STR *) &v, s.s.l) ;\n\tmemmove (tmp, s.s.p + zero, s.s.l) ;\n\ts.s.p = tmp - (char *) zero ;\n\ts.s.l += v.s.l ;\n\tstores (s, ptr, type) ;\n} \n\n// Assign to a numeric variable (supports compound assignment operators):\nstatic void assign (void *ptr, unsigned char type)\n{\n\tsigned char op = nxt () ;\n\tesi++ ;\n\tif (op != '=')\n\t    {\n\t\tif ((op == '+') || (op == '-') || (op == '*') || (op == '/') ||\n\t\t\t(op == '^') || ((op >= TAND) && (op <= TOR)))\n\t\t\tequals () ;\n\t\telse\n\t\t\terror (4, NULL) ; // Mistake\n\t    }\n\tmodify (exprn (), ptr, type, op) ;\n}\n\n// Assign to a string variable (supports compound += operator):\nstatic void assigns (void *ptr, unsigned char type)\n{\n\tsigned char op = nxt () ;\n\tesi++ ;\n\tif (op != '=')\n\t    {\n\t\tif (op == '+')\n\t\t\tequals () ;\n\t\telse\n\t\t\terror (4, NULL) ; // Mistake\n\t    }\n\tmodifs (exprs (), ptr, type, op) ;\n}\n\n// Test for statement terminator:\nstatic int termq (void)\n{\n\tsigned char al = nxt () ;\n\treturn (al == TELSE) || (al == ':') || (al == 0x0D) ;\n}\n\n// Skip a quoted (constant) string:\nstatic void quote (void)\n{\n\tsigned char al ;\n\twhile ((al = *esi++) != '\"')\n\t    {\n\t\tif (al == 0x0D)\n\t\t\terror (9, NULL) ; // 'Missing \"'\n\t    }\n}\n\n// Skip until end of statement:\nstatic void skip (void)\n{\n\twhile (!termq ())\n\t    {\n\t\tsigned char al = *esi++ ;\n\t\tif (al == TLINO) esi += 3 ;\n\t\tif (al == '\"') quote () ;\n\t    }\n}\n\n// Search forward for a token, which may be anywhere in a line\n// Handle nested inner structures (nest token ignored after EXIT)\nstatic void wsurch (signed char token, signed char nest, int level)\n{\n\twhile (1)\n\t    {\n\t\tsigned char al = *esi++ ;\n\t\tif (al == '\"')\n\t\t\tquote () ;\n\t\telse if (al == TREM)\n\t\t\tesi = memchr (esi, 0x0D, 255) ;\n\t\telse if (al == TEXIT)\n\t\t    {\n\t\t\tnxt () ;\n\t\t\tesi++ ;\n\t\t    }\n\t\telse if ((al == token) && (--level == 0))\n\t\t\treturn ; // found\n\t\telse if (al == nest)\n\t\t\tlevel++ ;\n\t\telse if (al == 0x0D)\n\t\t    {\n\t\t\tif (*esi == 0)\n\t\t\t\treturn ; // not found\n\t\t\tesi += 3 ;\n\t\t\tif (*esi == TDATA)\n\t\t\t\tesi = memchr (esi, 0x0D, 255) ;\n\t\t    }\n\t    }\n}\n\n// Search forward for one of two tokens at the start of a line.\n// Handle nesting of structures ('nest' looked for at end of line,\n// 'unnest' looked for at start of line).\n// The initial level should normally be set to zero.\nstatic signed char *nsurch (signed char tok1, signed char tok2,\n\t\t\tsigned char nest, signed char unnest, int level)\n{\n\twhile (1)\n\t    {\n\t\tint n = (int)*(unsigned char*)esi ;\n\t\tif (n == 0)\n\t\t\treturn NULL ; // Not found\n\t\tif ((level == 0) && ((tok1 == *(esi+3)) || (tok2 == *(esi+3))))\n\t\t\treturn esi ;\n\t\tif (unnest == *(esi+3))\n\t\t\tlevel-- ;\n\t\tif (level < 0)\n\t\t\treturn esi ;\n\t\tesi += n ;\n\t\tif ((n > 4) && (nest == *(esi-2)))\n\t\t\tlevel++ ;\n\t    }\n}\n\n// Get a (possibly quoted) string to string accumulator:\nstatic int fetchs (char **psrc)\n{\n\tVAR v ;\n\tchar *src = *psrc ;\n\tchar *dst = accs ;\n\twhile (*src == ' ') src++ ;\n\tif (*src == '\"')\n\t    {\n\t\tsigned char *oldesi = esi ;\n\t\tesi = (signed char*) src + 1 ;\n\t\tv = cons () ;\n\t\tnxt () ;\n\t\tfixs (v) ;\n\t\t*psrc = (char *) esi ;\n\t\tesi = oldesi ;\n\t\treturn v.s.l ;\n\t    }\n\twhile ((*src != ',') && (*src != 0x0D))\n\t\t*dst++ = *src++ ;\n\t*psrc = src ;\n\t*dst = 0x0D ;\n\treturn dst - accs ;\n}\n\n// Test for being inside a function or procedure:\nstatic void isloc (void)\n{\n\tint eax = *(int *)esp ;\n\tif ((eax != FNCHK) && (eax != PROCHK) && (eax != LOCCHK) &&\n\t    (eax != RETCHK) && (eax != DIMCHK) && (eax != LDCHK) && (eax != ONCHK))\n\t\terror (12, NULL) ; // 'Not in a FN or PROC'\n}\n\n// Send a PLOT command:\nstatic void plot (int n, int x, int y)\n{\n\toswrch (25) ;\n\toswrch (n) ;\n\toswrch (x) ;\n\toswrch (x >> 8) ;\n\toswrch (y) ;\n\toswrch (y >> 8) ;\n}\n\n// Create a 'secret' variable name based on code pointer, for use by PRIVATE:\nchar *secret (char *p, unsigned char type)\n{\n\tunsigned int i, ebp = 54 , eax = esi - (signed char *) zero ;\n\teax = (eax << 1) | (eax > ((void *) esp - zero)) ; // library bit in LSB\n\tfor (i = 0; i < 4; i++)\n\t    {\n\t\tunsigned char al = 'A' + (eax % ebp) ;\n\t\tif (al > 'Z') al += '_' - '[' ;\n\t\tif (al > 'z') al -= '{' - '0' ;\n\t\t*p++ = al ;\n\t\teax = eax / ebp ;\n\t\tebp = 64 ;\n\t    }\n\t*p++ = '@' ;\n\tswitch (type)\n\t    {\n\t\tcase STYPE:\n\t\t\t*p++ = '{' ;\n\t\t\t*p++ = '}' ;\n\t\t\tbreak ;\n\n\t\tcase 40:\n\t\t\t*p++ = '%' ;\n\t\tcase 4:\n\t\t\t*p++ = '%' ;\n\t\t\tbreak ;\n\n\t\tcase 8:\n\t\t\t*p++ = '#' ;\n\t\t\tbreak ;\n\n\t\tcase 1:\n\t\t\t*p++ = '&' ;\n\t\t\tbreak ;\n\n\t\tcase 128:\n\t\tcase 130:\n\t\tcase 136:\n\t\t\t*p++ = '$' ;\n\t    }\n\treturn p ;\n}\n\n// Free scalar strings and string arrays contained in a structure:\nstatic void undims (void *ebp, void *ebx)\n{\n\tVAR v ;\n\tv.s.t = -1 ;\n\tv.s.l = 0 ;\n\tv.s.p = 0 ;\n\n\tebp += 4 ; // skip length field\n\twhile (1)\n\t    {\n\t\tvoid *edx = ebp ; // pointer to link\n\t\tebp += 4 ; // bump past link\n\t\tebp = memchr (ebp, 0, 255) + 1 ;// scan for NUL\n\t\tchar al = *((char *)ebp - 2) ;\t// type character\n\t\tif (al == '$')\t\t\t// scalar string\n\t\t    {\n\t\t\tebp = ebx + ILOAD(ebp) ;\n\t\t\tstores (v, ebp, 0x88) ;\t// free string\n\t\t    }\n\t\telse if ((al == '(') && (*((char *)ebp - 3) == '$'))\t// string array\n\t\t    {\n\t\t\tvoid *edi = ebx + ILOAD(ebp) ; // string pointer\n\t\t\tebp += 4 ; // skip data offset\n\t\t\tint eax = arrlen (&ebp) ;\n\t\t\twhile (eax--)\n\t\t\t    {\n\t\t\t\tstores (v, edi, 0x88) ;\n\t\t\t\tedi += 8 ; // string descriptor GCC extension: sizeof(void) = 1\n\t\t\t    }\n\t\t    }\n\t\telse if (al == '{')\t\t// sub-structure\n\t\t    {\n\t\t\tundims (VLOAD(ebp), ebx + ILOAD(ebp + sizeof(void *))) ;\n\t\t    }\n\t\tebp = edx + ILOAD(edx) ; // follow relative link (GCC extension)\n\t\tif (ebp == edx)\n\t\t\tbreak ;\n\t    }\n}\n\n// Release stack used by LOCAL structure or array or structure-array\n// Also free any strings contained in the structure or array\nstatic void undim (void)\n{\n\tunsigned char type ;\n\tvoid *data, *desc, *varptr ;\n\tint size ;\n\tVAR v = {0} ;\n\n\tesp++ ;\t// bump past DIMCHK\n\ttype = (unsigned char)(int) *esp++ ;\n\tvarptr = *(void **)esp ; esp += STRIDE ;\n\tdesc = *(void **)esp ; esp += STRIDE ;\n\tdata = *(void **)esp ; esp += STRIDE ;\n\tsize = (int) *esp++ ;\n\tif (varptr != NULL)\n\t    {\n\t\tUSTORE(varptr , 1) ; // restore LOCAL marker\n\t\tif (type == STYPE) // scalar structure\n\t\t    {\n\t\t\tundims (desc, data) ;\n\t\t    }\n\t\tif (type == 0xC8) // string array\n\t\t    {\n\t\t\tint n = arrlen (&desc) ;\n\t\t\twhile (n--)\n\t\t\t    {\n\t\t\t\tstores (v, desc, 0x88) ;\n\t\t\t\tdesc += 8 ; // GCC extension sizeof(void) = 1\n\t\t\t    }\n\t\t    }\n\t\tif (type == (STYPE + 0x40)) // structure array\n\t\t    {\n\t\t\tint n = arrlen (&desc) ;\n\t\t\twhile (n--)\n\t\t\t    {\n\t\t\t\tundims (VLOAD(desc), VLOAD(desc + sizeof(void *))) ;\n\t\t\t\tdesc += 2 * sizeof(size_t) ;\n\t\t\t    }\t\t\t\t\n\t\t    }\n\t    }\n\tesp += size >> 2 ;\n}\n\n// Save a LOCAL variable or FN/PROC formal variable to stack:\nstatic void savloc (void *ptr, unsigned char type)\n{\n\tVAR v ;\n\tif (type & BIT6)\n\t\ttype = ATYPE ; // array pointer\n\n\tif (type == STYPE)\n\t    {\n\t\tesp -= STRIDE * 2 ;\n\t\t*((void **)esp + 1) = VLOAD(ptr + sizeof(void*)) ; // struct data ptr\n\t\t*(void **)esp       = VLOAD(ptr) ; // struct format ptr\n\t    }\n\telse if (type < 128)\n\t    {\n\t\tv = loadn (ptr, type) ;\n\t\t*--esp = (int)v.s.t ;\n\t\t*--esp = v.s.l ;\n\t\t*--esp = v.s.p ; // Assumed 32-bits\n\t    }\n\telse if (type == 136) \n\t    {\n\t\t// can't use long long because of ARM alignment requirements\n\t\t*(int *)--esp = ILOAD((char *)ptr + 4) ; // string length\n\t\t*(int *)--esp = ILOAD(ptr) ; // string pointer\n\t    }\n\telse\n\t    {\n\t\tv = loads (ptr, type) ;\n\t\tint n = (v.s.l + 3) & -4 ;\n\t\tif (n > ((char *)esp - (char *)zero - pfree - STACK_NEEDED))\n\t\t\terror (0, NULL) ; // No room\n\t\tesp -= n >> 2 ;\n\t\tmemcpy ((char *) esp, v.s.p + zero, v.s.l) ;\n\t\t*--esp = v.s.l ; // length\n\t    }\n\tesp -= STRIDE ;\n\t*(void **)esp = ptr ;\n\t*--esp = (int)type ;\n\t*--esp = LOCCHK ;\n\tcheck () ;\n}\n\n// Restore LOCALs or formal parameters from stack:\nstatic void resloc (void)\n{\n\tunsigned char type ;\n\tvoid *ptr ;\n\tdo\n\t    {\n\t\tesp++ ; // discard LOCCHK\n\t\ttype = (int) *esp++ ;\n\t\tptr = *(void **)esp ;\n\t\tesp += STRIDE ;\n\n\t\tif (type == STYPE)\n\t\t    {\n\t\t\tif (ptr != NULL)\n\t\t\t    {\n\t\t\t\tVSTORE(ptr, *(void **)esp) ; // struct format ptr\n\t\t\t\tVSTORE(ptr + sizeof(void*), *((void **)esp + 1)) ; // struct data ptr\n\t\t\t    }\n\t\t\tesp += STRIDE * 2 ;\n\t\t    }\n\t\telse if (type < 128)\n\t\t    {\n\t\t\tif (ptr != NULL)\n\t\t\t\tstoren (NLOAD(esp), ptr, type) ;\n\t\t\tesp += 3 ;\n\t\t    }\n\t\telse if (type == 136)\n\t\t    {\n\t\t\tVAR v ;\n\t\t\tv.s.l = 0 ;\n\t\t\tv.s.p = 0 ;\n\t\t\tif (ptr != NULL)\n\t\t\t    {\n\t\t\t\tstores (v, ptr, type) ; // free local string\n\t\t\t\t// can't use long long because of ARM alignment requirements\n\t\t\t\tISTORE(ptr, *(int *)esp++) ; // string pointer\n\t\t\t\tISTORE((char *)ptr + 4, *(int *)esp++) ; // string length\n\t\t\t    }\n\t\t\telse\n\t\t\t\tesp += 2 ;\n\t\t    }\n\t\telse\n\t\t    {\n\t\t\tVAR v ;\n\t\t\tv.s.l = (int) *esp++ ;\n\t\t\tv.s.p = (void *) esp - zero ;\n\t\t\tif (ptr != NULL)\n\t\t\t\tstores (v, ptr, type) ;\n\t\t\tesp += (v.s.l + 3) >> 2 ;\n\t\t    }\n\t    }\n\twhile (*(int *)esp == LOCCHK) ;\n}\n\n// Restore variables from stack, used by both 'unret' and 'argue':\nstatic void unstack (int count)\n{\n\twhile (count--)\n\t    {\n\t\tunsigned char type = (int) *esp++ ;\n\t\tvoid *ptr = *(void **)esp ;\n\t\tesp += STRIDE ;\n\n\t\tif (type & BIT6)\n\t\t    {\n\t\t\tVSTORE(ptr, *(void **)esp) ; // array pointer\n\t\t\tesp += STRIDE ;\n\t\t    }\n\t\telse if (type & BIT4)\n\t\t    {\n\t\t\tVSTORE(ptr, *(void **)esp) ; // struct format ptr\n\t\t\tVSTORE(ptr + sizeof(void*), *((void **)esp + 1)) ; // struct data ptr\n\t\t\tesp += STRIDE * 2 ;\n\t\t    }\n\t\telse if (type < 128)\n\t\t    {\n\t\t\tstoren (NLOAD(esp), ptr, type) ; // numeric\n\t\t\tesp += 3 ;\n\t\t    }\n\t\telse\n\t\t    {\n\t\t\tVAR v ;\n\t\t\tv.s.l = *(int *)esp++ ;\n\t\t\tv.s.p = (void *) esp - zero ;\n\t\t\tstores (v, ptr, type) ;\n\t\t\tesp += (v.s.l + 3) >> 2 ;\n\t\t    }\n\t    }\n}\n\n// Update RETURNed parameters or PRIVATE variables on return fron FN/PROC:\n// Do it via the stack to support PROC1(A,B)  DEF PROC1(RETURN B,RETURN A)\nstatic void unret (void)\n{\n\tesp++ ; \n\tint count = *(int *)esp++ ;\n\tif (count == 0)\n\t\treturn ;\n\theapptr *edi = esp ;\n\tint n = count ;\n\n\twhile (n--)\n\t    {\n\t\tunsigned char srctype = (int) *edi++ ; // formal/private type\n\t\tvoid *srcptr = *(void **)edi ;\n\t\tedi += STRIDE ;\n\t\tunsigned char dsttype = (int) *edi++ ; // actual/secret type\n\t\tvoid *dstptr = *(void **)edi ;\n\t\tedi += STRIDE ;\n\n\t\tif (srctype & BIT6)\n\t\t    {\n\t\t\tesp -= STRIDE ;\n\t\t\t*(void **)esp = VLOAD(srcptr) ; // array pointer\n\t\t    }\n\t\telse if (srctype & BIT4)\n\t\t    {\n\t\t\tesp -= STRIDE * 2 ;\n\t\t\t*((void **)esp + 1) = VLOAD(srcptr + sizeof(void*)) ; // struct data ptr\n\t\t\t*(void **)esp       = VLOAD(srcptr) ; // struct format ptr\n\t\t    }\n\t\telse if (srctype < 128)\n\t\t    {\n\t\t\tVAR v = loadn (srcptr, srctype) ;\n\t\t\t*--esp = (int)v.s.t ;\n\t\t\t*--esp = v.s.l ;\n\t\t\t*--esp = v.s.p ;\n\t\t    }\n\t\telse\n\t\t    {\n\t\t\tVAR v = loads (srcptr, srctype) ;\n\t\t\tpushs (v) ;\n\t\t\t*--esp = v.s.l ;\n\t\t    }\n\n\t\tesp -= STRIDE ;\n\t\t*(void **)esp = dstptr ;\n\t\t*--esp = (int) dsttype ;\n\t    }\n\n\tunstack (count) ;\n\tesp = edi ;\n}\n\n// Transfer actual parameters to formal parameters via the stack:\nstatic signed char* argue (signed char *ebx, heapptr *edi, int flag)\n{\n\tint i, count = 0 ;\n\tvoid *ptr ;\n\tsigned char *tmp ;\n\tsigned char delim ;\n\tunsigned char type ;\n\n\tdo\n\t    {\n\t\tunsigned char otype ;\n\t\tvoid *optr ;\n\n\t\tesi++ ;\n\t\tebx++ ;\n\t\tif ((nxt () == TRETURN) || flag)\n\t\t    {\n\t\t\tif (*esi == TRETURN)\n\t\t\t\tesi++ ;\n\t\t\tnxt () ;\n\t\t\tptr = getput (&type) ;\n\t\t\tif (type & BIT6)\n\t\t\t\ttype = ATYPE ;\n\t\t\t*edi++ = (int)type ; // formal/private type\n\t\t\t*(void **)edi = ptr ; // formal/private ptr\n\t\t\tedi += STRIDE ;\n\n\t\t\ttmp = esi ; esi = ebx ; ebx = tmp ; // swap\n\t\t\tnxt () ;\n\t\t\toptr = getput (&otype) ;\n\t\t\tif (otype & BIT6)\n\t\t\t    {\n\t\t\t\tif (ILOAD(optr) == 1)\n\t\t\t\t\terror (14, NULL) ; // Don't allow a LOCAL array\n\t\t\t\totype = ATYPE ;\n \t\t\t    }\n\t\t\t*edi++ = (int)otype ; // actual/secret type\n\t\t\t*(void **)edi = optr ; // actual/secret pointer\n\t\t\tedi += STRIDE ;\n\n\t\t\tif ((type ^ otype) & BIT7)\n\t\t\t\terror (6, NULL) ; // 'Type mismatch'\n\n\t\t\tif (type == STYPE)\n\t\t\t    {\n\t\t\t\tif (ILOAD(optr) == 1)\n\t\t\t\t\terror (56, NULL) ; // Don't allow a LOCAL structure\n\t\t\t\tesp -= STRIDE * 2 ;\n\t\t\t\t*((void **)esp + 1) = VLOAD(optr + sizeof(void*)) ; // struct data ptr\n\t\t\t\t*(void **)esp       = VLOAD(optr) ; // struct format ptr\n\t\t\t    }\n\t\t\telse if (type < 128)\n\t\t\t    {\n\t\t\t\tVAR v = loadn (optr, otype) ;\n\t\t\t\t*--esp = (int)v.s.t ;\n\t\t\t\t*--esp = v.s.l ;\n\t\t\t\t*--esp = v.s.p ;\n\t\t\t    }\n\t\t\telse\n\t\t\t    {\n\t\t\t\tVAR v = loads (optr, otype) ;\n\t\t\t\tpushs (v) ;\n\t\t\t\t*--esp = v.s.l ;\n\t\t\t    }\n\t\t    }\n\t\telse\n\t\t    {\n\n\t\t\tptr = getput (&type) ;\n\n\t\t\ttmp = esi ; esi = ebx ; ebx = tmp ; // swap\n\t\t\tif (type & (BIT4 | BIT6))\n\t\t\t    {\n\t\t\t\tnxt () ;\n\t\t\t\toptr = getvar (&otype) ;\n\t\t\t\tif (optr == NULL)\n\t\t\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\t\t\tif (otype == 0)\n\t\t\t\t\terror (26, NULL) ; // 'No such variable'\n\t\t\t\tif (type != otype)\n\t\t\t\t\terror (6, NULL) ; // 'Type mismatch'\n\t\t\t\tif (type == STYPE)\n\t\t\t\t    {\n\t\t\t\t\tesp -= STRIDE ;\n\t\t\t\t\t*(void **)esp = VLOAD(optr + sizeof(void*)) ; // struct data ptr\n\t\t\t\t    }\n\t\t\t\tesp -= STRIDE ;\n\t\t\t\t*(void **)esp = VLOAD(optr) ; // array pointer/struct fmt pointer\n\t\t\t    }\n\t\t\telse if (type < 128)\n\t\t\t    {\n\t\t\t\tVAR v = exprn () ;\n\t\t\t\t*--esp = (int)v.s.t ;\n\t\t\t\t*--esp = v.s.l ;\n\t\t\t\t*--esp = v.s.p ;\n\t\t\t    }\n\t\t\telse\n\t\t\t    {\n\t\t\t\tVAR v = exprs () ;\n\t\t\t\tpushs (v) ;\n\t\t\t\t*--esp = v.s.l ;\n\t\t\t    }\n\t\t    }\n\n\t\tesp -= STRIDE ;\n\t\t*(void **)esp = ptr ;\n\t\t*--esp = (int) type ;\n\t\tcount ++ ;\n\n\t\tdelim = nxt () ;\n\t\ttmp = esi ; esi = ebx ; ebx = tmp ; // swap\n\t    }\n\twhile ((nxt () == ',') && (delim == ',')) ;\n\tif ((*esi == ',') || (delim == ','))\n\t\terror (31, NULL) ; // 'Incorrect arguments'\n\n\ttmp = esi ; esi = ebx ; ebx = tmp ; // swap\n\n// Have now finished stacking the parameters.\n// Check all the (movable) string formal parameters to confirm that\n// a user-defined function actual parameter hasn't moved any of them,\n// because that leaves BB4W in an unstable state ('Geoff Webb' bug).\n// Then orphan those formal strings so they are preserved in the heap.\n\n\tfor (i = 0; i < count; i++)\n\t    {\n\t\tedi++ ; // skip LOCCHK\n\t\tunsigned char type = (unsigned char) *(int *)edi++ ;\n\t\tvoid *ebp = *(void **)edi ;\n\t\tedi += STRIDE ;\n\t\tif (type == STYPE)\n\t\t\tedi += STRIDE * 2 ;\n\t\telse if (type < 128)\n\t\t\tedi += 3 ;\n\t\telse if (type == 136)\n\t\t    {\n\t\t\theapptr sptr = *edi++ ; // string pointer\n\t\t\tedi++ ; // skip string length\n\t\t\tif (sptr != ULOAD(ebp))\n\t\t\t\terror (31, NULL) ; // 'Incorrect arguments'\n\t\t\tUSTORE(ebp, 0) ; // zero string pointer\n\t\t\tUSTORE(ebp + 4, 0) ; //  zero string length (GCC extension)\n\t\t    }\n\t\telse\n\t\t\tedi += (((int) *edi + 3) >> 2) + 1 ;\n\t    }\n\n// Unstack values of actual parameters into formal parameters:\n\n\tunstack (count) ;\n\n\treturn ebx ;\n}\n\n// Adjust the format pointers in nested structures to point into stack:\nstatic void fixup (void *edi, intptr_t ebx)\n{\n\tedi += 4 ; // bump past size field (GCC extension)\n\twhile (1)\n\t    {\n\t\tvoid *edx = edi ;\n\t\tedi = memchr (edi + 4, 0, 255) ; // search for NUL\n\t\tif (*((char *)edi - 1) == '{')\n\t\t    {\n\t\t\tedi++ ; // GCC extension: sizeof(void) = 1\n\t\t\tvoid *tmp = VLOAD(edi) ;\n\t\t\tif (tmp > edi)\n\t\t\t    {\n\t\t\t\tVSTORE(edi, tmp + ebx) ;\n\t\t\t\tfixup (tmp, ebx) ; // nested structure\n\t\t\t    }\n\t\t    }\n\t\tedi = edx + ILOAD(edx) ; // relative link\n\t\tif (edi == edx)\n\t\t\tbreak ;\n\t    }\n}\n\n// Build a structure or sub-structure template:\nstatic int structure (void **pedi)\n{\n\tint ecx = 0 ;\n\tunsigned char type ;\n\tvoid *edi = *pedi ;\n\n\twhile (1)\n\t    {\n\t\tsigned char al = nxt () ;\n\t\tvoid *tmp ;\n\t\tvoid *ebx = edi + 4 ;\n\t\tISTORE(edi, 0) ;\t// zero terminating link\n\n\t\tif (al == '}')\n\t\t    {\n\t\t\tvoid *ptr ;\n\n\t\t\tesi++ ; // bump past }\n\t\t\tequals () ;\n\t\t\tnxt () ;\n\t\t\tptr = getvar (&type) ;\n\t\t\tif (ptr == NULL)\n\t\t\t\terror (10, NULL) ; // 'Bad DIM statement'\n\t\t\tif (type != STYPE)\n\t\t\t\terror (6, NULL) ; // 'Type mismatch'\n\t\t\tedi = VLOAD(ptr) ; // descriptor pointer\n\t\t\tif (((edi > (void *)esp) && ((edi - zero) < himem)) || (edi < (void *)2)) \n\t\t\t\terror (10, NULL) ; // 'Bad DIM statement'\n\t\t\t*pedi = edi ;\n\t\t\treturn ecx + ILOAD(edi) ; // add structure size\n\t\t    }\n\t\tif (!range1 (al))\n\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\tebx = create ((unsigned char **)&ebx, &type) ;\n\t\tif (type == STYPE) // nested struct ?\n\t\t    {\n\t\t\tint eax ;\n\t\t\tvoid *ebp ;\n\t\t\tvoid *edi = ebx + 2 * sizeof(void *) ; // GCC extension: sizeof(void) = 1\n\t\t\tVSTORE(ebx, edi) ; // format pointer\n\t\t\tVSTORE(ebx + sizeof(void*), (void *)(size_t)ecx) ; // GCC extension\n\t\t\tebp = edi ;\n\t\t\tedi += 4 ;\n\t\t\teax = structure (&edi) ;\n\t\t\tISTORE(ebp, eax) ;\n\t\t\tecx += eax ;\n\t\t\tif (edi < ebx)\n\t\t\t    {\n\t\t\t\tVSTORE(ebx, edi) ; \n\t\t\t\tedi = ebx + 2 * sizeof(void *) ; // GCC extension: sizeof(void) = 1\n\t\t\t    }\n\t\t\tebx = edi ;\n\t\t    }\n\t\telse\n\t\t    {\n\t\t\tISTORE(ebx, ecx) ;\t// store member offset\n\t\t\tebx += 4 ;\t// GCC extension: sizeof(void) = 1\n\t\t\tif (*esi == '(') // array member ?\n\t\t\t    {\n\t\t\t\tunsigned char dims = 0 ;\n\t\t\t\tint size = type & TMASK ;\n\t\t\t\tvoid *desc = ebx + 1 ;\n\t\t\t\tdo\n\t\t\t\t    {\n\t\t\t\t\tesi++ ;\n\t\t\t\t\tint n = expri () + 1 ;\n\t\t\t\t\tif (n < 1)\n\t\t\t\t\t\terror (10, NULL) ; // 'Bad DIM statement'\n\t\t\t\t\tISTORE(desc, n) ; desc += 4 ;\n\t\t\t\t\tsize *= n ;\n\t\t\t\t\tdims++ ;\n\t\t\t\t    }\n\t\t\t\twhile (*esi == ',') ;\n\t\t\t\tbraket () ;\n\t\t\t\t*(unsigned char*)ebx = dims ;\n\t\t\t\tebx = desc ;\n\t\t\t\tecx += size ;\n\t\t\t    }\n\t\t\telse\n\t\t\t\tecx += type & TMASK ;\n\t\t    }\n\t\ttmp = ebx ; ebx = edi ; edi = tmp ; // swap\n\t\tal = nxt () ;\n\t\tesi++ ;\n\t\tif (al == '}')\n\t\t\tbreak ;\n\t\tif (al != ',')\n\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\tISTORE(ebx, edi - ebx) ; // relative link (signed)\n\t    }\n\t*pedi = edi ; // format pointer\n\treturn ecx ;\n}\n\n// Scan for DEF PROC and DEF FN\nstatic void defscan (signed char *edx)\n{\n\tvoid *ptr ;\n\tunsigned char found ;\n\n\twhile (1)\n\t    {\n\t\tsigned char *oldesi ;\n\t\tedx = search (edx, TDEF) ;\n\t\tif (edx == NULL)\n\t\t\treturn ;\n\t\toldesi = esi ;\n\t\tesi = edx + 1 ; // Byte after DEF\n\t\tcurlin = esi - (signed char *) zero ;\n\t\tnxt () ;\n\t\tif ((*esi == TPROC) || (*esi == TFN))\n\t\t    {\n\t\t\tptr = getdef (&found) ;\n\t\t\tif (found == 0)\n\t\t\t\tptr = putdef (ptr) ;\n\t\t\tVSTORE(ptr, esi) ;\n\t\t    }\n\t\tesi = oldesi ;\n\t\tcurlin = esi - (signed char *) zero ;\n\t\tedx -= 3 ; // point to line-length byte\n\t\tedx += (int) *(unsigned char *)edx ;\n\t    }\n}\n\n// User-defined PROC, ON PROC and FN:\nvoid procfn (signed char flag)\n{\n\tvoid *ptr ;\n\tsigned char *ebx ;\n\tunsigned char found ;\n\tsigned char *oldesi ;\n\theapptr *edi ;\n\theapptr *resesp ;\n\n\tesi-- ;\t\t// Point to TFN or TPROC token\n\toldesi = esi ;\n\tptr = getdef (&found) ;\n\tif (ptr == NULL)\n\t\terror (16, NULL) ; // 'Syntax error'\n\tif ((found == 0) || (ILOAD(ptr) == 0))\n\t    {\n\t\tif (libase)\n\t\t\tdefscan (libase + (signed char *) zero) ;\n\t\tdefscan (vpage + (signed char *) zero) ;\n\t\tesi = oldesi ;\n\t\tptr = getdef (&found) ;\n\t\tif ((found == 0) || (ILOAD(ptr) == 0))\n\t\t\terror (29, NULL) ; // 'No such FN/PROC'\n\t    }\n\n\tebx = VLOAD(ptr) ;\t// Get FN/PROC pointer\n\n\tesp -= STRIDE ; // Reserve space\n\tresesp = esp ;\n\tif (flag == TFN)\n\t\t*--esp = FNCHK ;\n\telse\n\t\t*--esp = PROCHK ;\n\tcheck () ;\n\n\tif (nxt () == '(')\n\t    {\n\t\tint nret = 0 ;\n\t\toldesi = esi ;\n\t\tesi = ebx ;\n\t\tif (nxt () != '(')\n\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\tdo\n\t\t    {\n\t\t\tesi++ ; // skip '(' or ','\n\t\t\tunsigned char type ;\n\t\t\tif (nxt () == TRETURN)\n\t\t\t    {\n\t\t\t\tnret++ ;\n\t\t\t\tesi++ ;\n\t\t\t\tnxt () ;\n\t\t\t    }\n\t\t\tptr = getput (&type) ;\n\t\t\tsavloc (ptr, type) ;\n\t\t    }\n\t\twhile (nxt () == ',') ;\n\t\tbraket () ;\n\t\tedi = esp ; // pointer to saved parameters\n\n\t\tcheck () ;\n\t\tesp -= 2 * (STRIDE + 1) * nret ; // make space for RETURN info\n\t\t*--esp = nret ;\n\t\t*--esp = RETCHK ;\n\n\t\tesi = ebx ;\n\t\tebx = argue (oldesi, esp + 2, 0) + 1 ; // Transfer arguments\n\t\tbraket() ;\n\n// If any of the dummy arguments are the same as passed-by-reference\n// variables, then they must not be restored on exit (they would\n// overwrite the wanted returned values), therefore search the saved\n// values on the stack and if a match is found set the 'pointer' to\n// zero.  On exit from the FN/PROC this will prevent the dummies\n// being restored.  Here edi points to first saved dummy argument\n\n\t\twhile ((nret != 0) && (*edi++ == LOCCHK))\n\t\t    {\n\t\t\tint i ;\n\t\t\theapptr *ebp = esp + 4 + STRIDE ;\n\t\t\tunsigned char type = (unsigned char) *(int *)edi++ ;\n\t\t\tfor (i = 0; i < nret; i++)\n\t\t\t    {\n\t\t\t\tif (*(void **)ebp == *(void **)edi)\n\t\t\t\t    {\n\t\t\t\t\t*(void **)edi = NULL ;\n\t\t\t\t\tif (type == 136)\n\t\t\t\t\t\tallocs ((STR *)(edi+STRIDE), 0) ;\n\t\t\t  \t    }\n\t\t\t\tebp += 2 * (STRIDE + 1) ;\n\t\t\t    }\n\t\t\tedi += STRIDE ;\n\t\t\tif (type == STYPE)\n\t\t\t\tedi += STRIDE * 2 ;\n\t\t\telse if (type < 128)\n\t\t\t\tedi += 3 ;\n\t\t\telse if (type == 136)\n\t\t\t\tedi += 2 ;\n\t\t\telse\n\t\t\t\tedi += ((*((int *)edi) + 3) >> 2) + 1 ;\n\t\t    }\n\t    }\n\n\tif (flag == TON)\n\t\tskip () ;\n\t*(void **)resesp = esi ;\n\tesi = ebx ;\n}\n\n// Process end-of-line:\nvoid newlin (void)\n{\n\tunsigned char al = *esi ;\t// line length\n\tif (al == 0) return ;\n\tesi += 3 ;\n\tcurlin = esi - (signed char *) zero ;\n\tif (tracen)\n\t    {\n\t\tunsigned short lino = SLOAD(esi - 2) ;\n\t\tif ((lino != 0) && (lino < tracen))\n\t\t    {\n\t\t\toutchr ('[') ;\n\t\t\tif (lino)\n\t\t\t    {\n\t\t\t\tsprintf (accs, \"%d\", lino) ;\n\t\t\t\ttext (accs) ;\n\t\t\t    }\n\t\t\toutchr (']') ;\n\t\t\toutchr (' ') ;\n\t\t    }\n\t    }\n}\n\n// Execute the program:\nVAR xeq (void)\n{\n\tsigned char al ;\n\tvoid *tmpesi ;\n\twhile (1) // for each statement\n\t    {\n\t\t__label__ xeq1 ;\n#ifdef PICO\n\t\tif((&al < (signed char *)libtop + 0x800) && (&al >= (signed char *)userRAM))\n\t\t\terror(0, \"Recursion too deep!\");\n#endif\n\t \tif (flags & (KILL + PAUSE + ALERT + ESCFLG))\n\t\t    {\n\t\t\theapptr jump = xtrap () ;\n\t\t\tif (jump)\n\t\t\t    {\n\t\t\t\tesp -= STRIDE ;\n\t\t\t\t*(void **)esp = esi ;\n\t\t\t\t*--esp = GOSCHK ;\n\t\t\t\tesi = jump + (signed char *) zero ;\n\t\t\t    }\n\t\t    }\n\txeq1:\n\t\tal = nxt () ;\n\t\ttmpesi = esi ;\n\t\tcurlin = esi - (signed char *) zero ;\n\t\twhile (*++esi == ' ') ;\n\n\t\tswitch (al)\n\t\t    {\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tauto void nestedLOCAL(void);\n\t\tauto void nestedPRIVATE(void);\n\t\tauto void nestedINSTALL(void);\n\t\tauto void nestedRESTOR(void);\n\t\tauto void nestedBPUT(void);\n\t\tauto void nestedPTR(void);\n\t\tauto void nestedINPUT(void);\n\t\tauto void nestedPRINT(void);\n\t\tauto void nestedERROR(void);\n\t\tauto void nestedCOLOUR(void);\n\t\tauto void nestedLINE(void);\n\t\tauto void nestedCIRCLE(void);\n\t\tauto void nestedELLIPSE(void);\n\t\tauto void nestedRECT(void);\n\t\tauto void nestedON(void);\n\t\tauto void nestedFOR(void);\n\t\tauto void nestedNEXT(void);\n\t\tauto void nestedEXIT(void);\n\t\tauto void nestedSWAP(void);\n\t\tauto void nestedCASE(void);\n\t\tauto void nestedMOUSE(void);\n\t\tauto void nestedSYS(void);\n\t\tauto void nestedDIM(void);\n\t\tauto void nestedSOUND(void);\n\t\tauto void nestedENVEL(void);\n\t\tauto void nestedSLICE(void);\n#endif\n\t\t\tcase ':':\n\t\t\t\tgoto xeq1 ;\n\n\t\t\tcase TENDIF:\n\t\t\tcase TENDCASE:\n\t\t\t\tbreak ;\n\n\t\t\tcase TSTOP:\n\t\t\t\t{\n\t\t\t\tunsigned short lino = setlin (esi, NULL) ;\n\t\t\t\ttext (\"\\r\\nSTOP\") ;\n\t\t\t\tif (lino)\n\t\t\t\t    {\n\t\t\t\t\tsprintf (accs, \" at line %d\", lino) ;\n\t\t\t\t\ttext (accs) ;\n\t\t\t\t    }\n\t\t\t\tcrlf () ;\n\t\t\t\terror (256, NULL) ;\n\t\t\t\t}\n\n\t\t\tcase TEND:\n\t\t\t\tosshut (0) ;\n\t\t\tcase 0:\n\t\t\t\terror (256, NULL) ;\n\n/************************************ WHEN *************************************/\n/********************************** OTHERWISE **********************************/\n\n\t\t\tcase TWHEN:\n\t\t\tcase TOTHERWISE:\n\t\t\t\terror (44, NULL) ; // 'WHEN/OTHERWISE not first'\n\n/************************************ QUIT *************************************/\n\n\t\t\tcase TQUIT:\n\t\t\t\t{\n\t\t\t\tint n = 0 ;\n\t\t\t\tif (!termq ())\n\t\t\t\t\tn = expri () ;\n\t\t\t\terror (~n, NULL) ;\n\t\t\t\t}\n\n/************************************* REM *************************************/\n\n\t\t\tcase TREM:\n\t\t\tcase TDEF:\n\t\t\tcase TDATA:\n\t\t\tcase TELSE:\n\t\t\t\tesi = (signed char*) memchr ((char *) esi, 0x0D, 255) ;\n\t\t\t\tbreak ;\n\n/************************************ GOTO *************************************/\n/************************************ GOSUB ************************************/\n\n\t\t\tcase TLINO:\n\t\t\t\tesi = tmpesi ;\n\t\t\tcase TGOTO:\n\t\t\tcase TGOSUB:\n\t\t\t\t{\n\t\t\t\tint n = itemi () ;\n\t\t\t\tif (al == TGOSUB)\n\t\t\t\t    {\n\t\t\t\t\tcheck () ;\n\t\t\t\t\tesp -= STRIDE ;\n\t\t\t\t\t*(void **)esp = esi ;\n\t\t\t\t\t*--esp = GOSCHK ;\n\t\t\t\t    }\n\t\t\t\tif (!termq ())\n\t\t\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\t\t\tesi = findl (n) ;\n\t\t\t\tif (esi == NULL)\n\t\t\t\t\terror (41, NULL) ; // 'No such line'\n\t\t\t\tnewlin () ;\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/*********************************** RETURN ************************************/\n\n\t\t\tcase TRETURN:\n\t\t\t\twhile (*(int *)esp != GOSCHK)\n\t\t\t\t    {\n\t\t\t\t\tint ebx = *(int *)esp ;\n\t\t\t\t\tif (ebx == LOCCHK)\n\t\t\t\t\t\tresloc () ;\n\t\t\t\t\telse if (ebx == DIMCHK)\n\t\t\t\t\t\tundim () ;\n\t\t\t\t\telse if (ebx == RETCHK)\n\t\t\t\t\t\tunret () ;\n\t\t\t\t\telse if (ebx == FORCHK)\n\t\t\t\t\t\tesp += 9 + 2 * STRIDE ;\n\t\t\t\t\telse if ((ebx == REPCHK) || (ebx == WHICHK))\n\t\t\t\t\t\tesp += 1 + STRIDE ;\n\t\t\t\t\telse if (ebx == ONCHK)\n\t\t\t\t\t    {\n\t\t\t\t\t\tesp++ ;\n\t\t\t\t\t\tonersp = *(heapptr **)esp ;\n\t\t\t\t\t\tesp += STRIDE ;\n\t\t\t\t\t\terrtrp = *esp++ ;\n\t\t\t\t\t    }\n\t\t\t\t\telse if (ebx == LDCHK)\n\t\t\t\t\t    {\n\t\t\t\t\t\tesp++ ;\n\t\t\t\t\t\tdatptr = *esp++ ;\n\t\t\t\t\t    }\n\t\t\t\t\telse if (ebx == CALCHK)\n\t\t\t\t\t    {\n\t\t\t\t\t\tesp++ ;\n\t\t\t\t\t\tvoid *ebx = *(void **)esp ;\n\t\t\t\t\t\tesp += STRIDE ;\n\t\t\t\t\t\tVSTORE(ebx, NULL) ; // remove called module\n#ifdef PICO\n\t\t\t\t\t\tlibtop = ebx ;\n#endif\n\t\t\t\t\t    }\n\t\t\t\t\telse\n\t\t\t\t\t\terror (38, NULL) ; // 'Not in a subroutine'\n\t\t\t\t    }\n\t\t\t\tesp++ ;\n\t\t\t\tif (termq ())\n\t\t\t\t    {\n\t\t\t\t\tesi = *(void **)esp ;\n\t\t\t\t\tesp += STRIDE ;\n\t\t\t\t\tbreak ;\n\t\t\t\t    }\n\t\t\t\tesp++ ;\n\t\t\t\t{\n\t\t\t\tesi = findl (itemi ()) ;\n\t\t\t\tif (esi == NULL)\n\t\t\t\t\terror (41, NULL) ; // 'No such line'\n\t\t\t\tesi += 3 ; // n.b. in case very first line!\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/************************************ PROC *************************************/\n\n\t\t\tcase TPROC:\n\t\t\t\tif (*(esi-1) == ' ')\n\t\t\t\t\terror (30, NULL) ; // 'Bad call'\n\t\t\t\tprocfn (TPROC) ;\n\t\t\t\tbreak ;\n\n/************************************ LOCAL ************************************/\n\n\t\t\tcase TLOCAL:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedLOCAL();\n\t\tvoid __attribute__ ((noinline)) nestedLOCAL(void)\n#endif\n\t\t\t    {\n\t\t\t\tif (*esi == TERROR)\n\t\t\t\t\tesi++ ; // Ignore\n\t\t\t\telse if (*esi == TDATA)\n\t\t\t\t    {\n\t\t\t\t\tesi++ ;\n\t\t\t\t\t*--esp = datptr ;\n\t\t\t\t\t*--esp = LDCHK ;\n\t\t\t\t    }\n\t\t\t\telse\n\t\t\t\t    {\n\t\t\t\t\tisloc () ;\n\t\t\t\t\twhile (1)\n\t\t\t\t\t    {\n\t\t\t\t\t\tunsigned char type ;\n\t\t\t\t\t\tvoid *ptr = getput (&type) ;\n\t\t\t\t\t\tsavloc (ptr, type) ;\n\t\t\t\t\t\tif (type & (BIT4 | BIT6))\n\t\t\t\t\t\t\tVSTORE(ptr, (void *) 1) ; // Flag LOCAL array/struct\n\t\t\t\t\t\telse if (type == 128)\n\t\t\t\t\t\t\t*(char *)ptr = 0x0D ; // CR-term string\n\t\t\t\t\t\telse if (type == 130)\n\t\t\t\t\t\t\t*(char *)ptr = 0 ; // NUL-term string\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tmemset (ptr, 0, type & TMASK) ; // zero var/desc\n\t\t\t\t\t\tif (nxt () != ',')\n\t\t\t\t\t\t\tbreak ;\n\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\tnxt () ;\n\t\t\t\t\t    }\n\t\t\t\t    }\n\t\t\t    }\n\t\t\tbreak ;\n\n/*********************************** PRIVATE ***********************************/\n\n\t\t\tcase TPRIVATE:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedPRIVATE();\n\t\tvoid __attribute__ ((noinline)) nestedPRIVATE(void)\n#endif\n\t\t\t    {\n\t\t\t\tunsigned char type ;\n\t\t\t\tvoid *ptr ;\n\t\t\t\tvolatile int seq ;\n\t\t\t\tint count = 0 ;\n\t\t\t\tsigned char *oldesi = esi ;\n\t\t\t\tchar *edi = accs ;\n\t\t\t\tisloc () ;\n\n\t\t\t\t*secret (edi, 4) = 0x0D ;\n\t\t\t\tesi = (signed char *) accs ;\n\t\t\t\tptr = getput (&type) ;\n\t\t\t\tesi = oldesi ;\n\t\t\t\tif (ILOAD(ptr))\n\t\t\t\t    {\n\t\t\t\t\tskip () ; // reentrant call, ignore\n\t\t\t\t    }\n\t\t\t\telse\n\t\t\t\t    {\n\t\t\t\t\tISTORE(ptr, 1) ;\n\t\t\t\t\t*--esp = 0 ;\n\t\t\t\t\t*--esp = 0 ;\n\t\t\t\t\t*--esp = 0 ;\n\t\t\t\t\tesp -= STRIDE ;\n\t\t\t\t\t*(void **)esp = ptr ;\n\t\t\t\t\t*--esp = 4 ;\n\t\t\t\t\t*--esp = LOCCHK ;\n\n\t\t\t\t\twhile (1)\n\t\t\t\t\t    {\n\t\t\t\t\t\tptr = getput (&type) ;\n\t\t\t\t\t\tsavloc (ptr, type) ;\n\t\t\t\t\t\tedi = secret (edi, type) ;\n\t\t\t\t\t\tcount += 1 ;\n\t\t\t\t\t\tif (nxt () != ',')\n\t\t\t\t\t\t\tbreak ;\n\t\t\t\t\t\t*edi++ = ',' ;\n\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\tnxt () ;\n\t\t\t\t\t    } ;\n\t\t\t\t\t*edi++ = 0x0D ;\n\n\t\t\t\t\tif ((count << 4) > ((char *)esp - (char *)zero - pfree - STACK_NEEDED))\n\t\t\t\t\t\terror (0, NULL) ; // 'No room'\n\t\t\t\t\tesp -= count * 2 * (STRIDE + 1) ;\n\t\t\t\t\t*--esp = count ;\n\t\t\t\t\t*--esp = RETCHK ;\n\t\t\t\t\tesi = oldesi - 1 ;\n\t\t\t\t\tfor (seq=0; seq<1; seq++) ; // GCC bug?\n\t\t\t\t\t// transfer secret [accs] to formal [esi] \n\t\t\t\t\tesi = argue ((signed char *)accs - 1, esp + 2, 1) ;\n\t\t\t\t    }\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/*********************************** ENDPROC ***********************************/\n\n\t\t\tcase TENDPROC:\n\t\t\t\twhile (*(int *)esp != PROCHK)\n\t\t\t\t    {\n\t\t\t\t\tint ebx = *(int *)esp ;\n\t\t\t\t\tif (ebx == LOCCHK)\n\t\t\t\t\t\tresloc () ;\n\t\t\t\t\telse if (ebx == DIMCHK)\n\t\t\t\t\t\tundim () ;\n\t\t\t\t\telse if (ebx == RETCHK)\n\t\t\t\t\t\tunret () ;\n\t\t\t\t\telse if (ebx == FORCHK)\n\t\t\t\t\t\tesp += 9 + 2 * STRIDE ;\n\t\t\t\t\telse if ((ebx == REPCHK) || (ebx == WHICHK))\n\t\t\t\t\t\tesp += 1 + STRIDE ;\n\t\t\t\t\telse if (ebx == ONCHK)\n\t\t\t\t\t    {\n\t\t\t\t\t\tesp++ ;\n\t\t\t\t\t\tonersp = *(heapptr **)esp ;\n\t\t\t\t\t\tesp += STRIDE ;\n\t\t\t\t\t\terrtrp = *esp++ ;\n\t\t\t\t\t    }\n\t\t\t\t\telse if (ebx == LDCHK)\n\t\t\t\t\t    {\n\t\t\t\t\t\tesp++ ;\n\t\t\t\t\t\tdatptr = *esp++ ;\n\t\t\t\t\t    }\n\t\t\t\t\telse\n\t\t\t\t\t\terror (13, NULL) ; // 'Not in a procedure'\n\t\t\t\t    }\n\t\t\t\tesp++ ;\n\t\t\t\tesi = *(void **)esp ;\n\t\t\t\tesp += STRIDE ;\n\t\t\t\tbreak ;\n\n/***********************************  ENDFN  ***********************************/\n\n\t\t\tcase '=':\n\t\t\t\t{\n\t\t\t\tVAR v = expr () ;\n\t\t\t\tif (v.s.t == -1)\n\t\t\t\t\tv.s.p = moves ((STR *)&v, 0) - (char *) zero ;\n\t\t\t\twhile (*(int *)esp != FNCHK)\n\t\t\t\t    {\n\t\t\t\t\tint ebx = *(int *)esp ;\n\t\t\t\t\tif (ebx == LOCCHK)\n\t\t\t\t\t\tresloc () ;\n\t\t\t\t\telse if (ebx == DIMCHK)\n\t\t\t\t\t\tundim () ;\n\t\t\t\t\telse if (ebx == RETCHK)\n\t\t\t\t\t\tunret () ;\n\t\t\t\t\telse if (ebx == FORCHK)\n\t\t\t\t\t\tesp += 9 + 2 * STRIDE ;\n\t\t\t\t\telse if ((ebx == REPCHK) || (ebx == WHICHK))\n\t\t\t\t\t\tesp += 1 + STRIDE ;\n\t\t\t\t\telse if (ebx == ONCHK)\n\t\t\t\t\t    {\n\t\t\t\t\t\tesp++ ;\n\t\t\t\t\t\tonersp = *(heapptr **)esp ;\n\t\t\t\t\t\tesp += STRIDE ;\n\t\t\t\t\t\terrtrp = *esp++ ;\n\t\t\t\t\t    }\n\t\t\t\t\telse if (ebx == LDCHK)\n\t\t\t\t\t    {\n\t\t\t\t\t\tesp++ ;\n\t\t\t\t\t\tdatptr = *esp++ ;\n\t\t\t\t\t    }\n\t\t\t\t\telse\n\t\t\t\t\t\terror (7, NULL) ; // 'Not in a function'\n\t\t\t\t    }\n\t\t\t\tesp++ ;\n\t\t\t\tesi = *(void **)esp ;\n\t\t\t\tesp += STRIDE ;\n\t\t\t\tcurlin = esi - (signed char *) zero ;\n\t\t\t\treturn v ;\n\t\t\t\t}\n\n/*********************************** RESTORE ***********************************/\n\n\t\t\tcase TRESTOR:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedRESTOR();\n\t\tvoid __attribute__ ((noinline)) nestedRESTOR(void)\n#endif\n\t\t\t    {\n\t\t\t\tif (*esi == TDATA)\n\t\t\t\t    {\n\t\t\t\t\tesi++ ;\n\t\t\t\t\tif (*(int *)esp++ != LDCHK)\n\t\t\t\t\t\terror (54, \"DATA not LOCAL\") ;\n\t\t\t\t\tdatptr = *esp++ ;\n\t\t\t\t    }\n\t\t\t\telse if (*esi == TERROR)\n\t\t\t\t    {\n\t\t\t\t\tesi++ ;\n\t\t\t\t\tif (*(int *)esp++ != ONCHK)\n\t\t\t\t\t\terror (0, \"ON ERROR not LOCAL\") ;\n\t\t\t\t\tonersp = *(heapptr **)esp ;\n\t\t\t\t\tesp += STRIDE ;\n\t\t\t\t\terrtrp = *esp++ ;\n\t\t\t\t    }\n\t\t\t\telse if (*esi == TLOCAL)\n\t\t\t\t    {\n\t\t\t\t\tesi++ ;\n\t\t\t\t\twhile ((*(int *)esp != PROCHK) && (*(int *)esp != FNCHK))\n\t\t\t\t\t    {\n\t\t\t\t\t\tint ebx = *(int *)esp ;\n\t\t\t\t\t\tif (ebx == LOCCHK)\n\t\t\t\t\t\t\tresloc () ;\n\t\t\t\t\t\telse if (ebx == DIMCHK)\n\t\t\t\t\t\t\tundim () ;\n\t\t\t\t\t\telse if (ebx == RETCHK)\n\t\t\t\t\t\t\tunret () ;\n\t\t\t\t\t\telse if (ebx == FORCHK)\n\t\t\t\t\t\t\tesp += 9 + 2 * STRIDE ;\n\t\t\t\t\t\telse if ((ebx == REPCHK) || (ebx == WHICHK))\n\t\t\t\t\t\t\tesp += 1 + STRIDE ;\n\t\t\t\t\t\telse if (ebx == ONCHK)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tesp++ ;\n\t\t\t\t\t\t\tonersp = *(heapptr **)esp ;\n\t\t\t\t\t\t\tesp += STRIDE ;\n\t\t\t\t\t\t\terrtrp = *esp++ ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\telse if (ebx == LDCHK)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tesp++ ;\n\t\t\t\t\t\t\tdatptr = *esp++ ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\terror (12, NULL) ; // 'Not in a FN or PROC'\n\t\t\t\t\t    }\n\t\t\t\t    }\n\t\t\t\telse if (*esi == '+')\n\t\t\t\t    {\n\t\t\t\t\tint n ;\n\t\t\t\t\tsigned char *edi ;\n\n\t\t\t\t\tesi++ ;\n\t\t\t\t\tn = expri () ;\n\t\t\t\t\tif (n <= 0)\n\t\t\t\t\t\tn = 1 ;\n\t\t\t\t\tedi = memchr (esi, 0x0D, 255) + 1 ;\n\t\t\t\t\twhile (--n)\n\t\t\t\t\t\tedi += (int)*(unsigned char *)edi ;\n\t\t\t\t\tdatptr = search (edi, TDATA) - (signed char *) zero ;\n\t\t\t\t    }\n\t\t\t\telse if (!termq ())\n\t\t\t\t    {\n\t\t\t\t\tint n = expri () ;\n\t\t\t\t\tsigned char *edi = findl (n) ;\n\t\t\t\t\tif (edi == NULL)\n\t\t\t\t\t\terror (41, NULL) ; // 'No such line'\n\t\t\t\t\tdatptr = search (edi, TDATA) - (signed char *) zero ;\n\t\t\t\t    }\n\t\t\t\telse\n\t\t\t\t\tdatptr = search (vpage + (signed char *) zero, TDATA) -\n\t\t\t\t\t\t\t(signed char *) zero ;\n\t\t\t    }\n\t\t\tbreak ;\n\n/************************************ CALL *************************************/\n\n\t\t\tcase TCALL:\n\t\t\t\t{\n\t\t\t\tVAR v = expr () ;\n\t\t\t\tif (v.s.t != -1)\n\t\t\t\t    {\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tauto void nestedCALL(void);\n\t\tnestedCALL();\n\t\tvoid __attribute__ ((noinline)) nestedCALL(void)\n#endif\n\t\t\t\t\t{\n\t\t\t\t\tsize_t n = v.i.n ;\n\t\t\t\t\tvoid (*func) (int,int,int,int,int,int,char *) ;\n\t\t\t\t\tchar *p = buff + 1 ;\n\t\t\t\t\tunsigned char count = 0 ;\n\n\t\t\t\t\tif (v.i.t != 0)\n\t\t\t\t\t\tn = v.f ;\n\n\t\t\t\t\twhile (nxt () == ',')\n\t\t\t\t\t    {\n\t\t\t\t\t\tvoid *ptr ;\n\t\t\t\t\t\tunsigned char type ;\n\n\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\tnxt () ;\n\t\t\t\t\t\tptr = getvar (&type) ;\n\t\t\t\t\t\tif (ptr == NULL)\n\t\t\t\t\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\t\t\t\t\tif (type == 0)\n\t\t\t\t\t\t\terror (26, NULL) ; // 'No such variable' \n\t\t\t\t\t\t*p++ = type ;\n\t\t\t\t\t\tVSTORE(p, ptr) ;\n\t\t\t\t\t\tp += sizeof(void *) ; // GCC extension \n\t\t\t\t\t\tcount += 1 ;\n\t\t\t\t\t    } ;\n\t\t\t\t\t*buff = count ;\n\n\t\t\t\t\tif ((n >= 0x8000) && (n <= 0xFFFF))\n\t\t\t\t\t\toscall (n) ;\n\t\t\t\t\telse\n\t\t\t\t\t    {\n\t\t\t\t\t\tfunc = (void *) n ;\n\t\t\t\t\t\tfunc (stavar[1], stavar[2], stavar[3],\n\t\t\t\t\t\t      stavar[4], stavar[5], stavar[6], buff) ;\n\t\t\t\t\t    }\n\t\t\t\t\t}\n\t\t\t\t    break ;\n\t\t\t\t    }\n\t\t\t\telse\n\t\t\t\t\tfixs (v) ;\n\t\t\t\t}\n\n\t\t\t\t// Falls through ...\n\n/*********************************** INSTALL ***********************************/\n\n\t\t\tcase TINSTALL:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedINSTALL();\n\t\tvoid __attribute__ ((noinline)) nestedINSTALL(void)\n#endif\n\t\t\t\t{\n\t\t\t\tVAR v ;\n\t\t\t\tvoid *chan ;\n\t\t\t\tint size ;\n\t\t\t\tsigned char *edi = libase + (signed char *) zero ;\n\t\t\t\tsigned char *newtop ;\n\t\t\t\tif (al == TINSTALL)\n\t\t\t\t    {\n\t\t\t\t\tv = exprs () ;\n\t\t\t\t\tfixs (v) ;\n\t\t\t\t    }\n\t\t\t\telse\n\t\t\t\t\tv.s.l = (char *) memchr (accs, 0x0D, 255) - accs ;\n\n\t\t\t\tif (edi == (signed char *) zero)\n\t\t\t\t    {\n\t\t\t\t\tedi = himem + (signed char *) zero ;\n\t\t\t\t\toshwm (edi + 1, 0) ;\n\t\t\t\t\tlibase = edi - (signed char *) zero ;\n\t\t\t\t\t*edi = 0 ;\n\t\t\t\t    }\n\t\t\t\tint ll ;\n\t\t\t\twhile ((ll = (int)*(unsigned char *)edi) != 0)\n\t\t\t\t    {\n\t\t\t\t\tif ((al == TINSTALL) && (*(edi+3) == 0) &&\n\t\t\t\t\t\t\t(0 == memcmp (accs, edi+4, v.s.l+1)))\n\t\t\t\t\t\tbreak ; // already installed\n\t\t\t\t\tedi += ll ;\n\t\t\t\t    }\n\t\t\t\tif (ll == 0)\n\t\t\t\t    {\n\t\t\t\t\tchan = osopen (0, accs) ;\n\t\t\t\t\tif (chan == 0)\n\t\t\t\t\t\terror (214, \"File or path not found\") ;\n \t\t\t\t\tsize = getext (chan) ;\n\t\t\t\t\tosshut (chan) ;\n\t\t\t\t\toshwm (edi + v.s.l + 5 + size, 0) ;\n\t\t\t\t\tISTORE(edi, v.s.l + 5) ;\n\t\t\t\t\tmemcpy (edi + 4, accs, v.s.l + 1) ;\n\t\t\t\t\tosload (accs, edi + v.s.l + 5, size) ;\n\t\t\t\t\tnewtop = gettop (edi, NULL) ;\n\t\t\t\t\tif (newtop == NULL) \n\t\t\t\t\t\terror (52, NULL) ; // 'Bad library'\n#ifdef PICO\n\t\t\t\t\tlibtop = newtop ;\n#endif\n\t\t\t\t\tif (al == TINSTALL)\n\t\t\t\t\t    {\n\t\t\t\t\t\tdefscan (libase + (signed char *) zero) ;\n\t\t\t\t\t\tdefscan (vpage + (signed char *) zero) ;\n\t\t\t\t\t    }\n\t\t\t\t\telse\n\t\t\t\t\t    {\n\t\t\t\t\t\tISTORE(newtop, 0xF8000005) ;\n\t\t\t\t\t\tSSTORE(newtop + 4, 0x0D) ;\n\t\t\t\t\t\tcheck () ;\n\t\t\t\t\t\tesp -= STRIDE ;\n\t\t\t\t\t\t*(void **)esp = esi ;\n\t\t\t\t\t\t*--esp = GOSCHK ;\n\t\t\t\t\t\tesp -= STRIDE ;\n\t\t\t\t\t\t*(void **)esp = edi ;\n\t\t\t\t\t\t*--esp = CALCHK ;\n\t\t\t\t\t\tesi = edi + v.s.l + 4 ;\n\t\t\t\t\t    }\n\t\t\t\t    }\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/************************************ TRACE ************************************/\n\n\t\t\tcase TTRACE:\n\t\t\t\tswitch (*esi)\n\t\t\t\t    {\n\t\t\t\t\tcase TON:\n\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\ttracen = 0xFFFF ;\n\t\t\t\t\t\tbreak ;\n\t\t\t\t\tcase TOFF:\n\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\ttracen = 0 ;\n\t\t\t\t\t\tbreak ;\n\t\t\t\t\tcase TSTEP:\n\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\tflags |= PAUSE ;\n\t\t\t\t\t\tswitch (nxt ())\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tcase TOFF:\n\t\t\t\t\t\t\t\tflags &= ~PAUSE ;\n\t\t\t\t\t\t\tcase TON:\n\t\t\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\tbreak ;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\ttracen = expri () ;\n\t\t\t\t    }\n\t\t\t\tbreak ;\n\n/************************************ BPUT *************************************/\n\n\t\t\tcase TBPUT:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedBPUT();\n\t\tvoid __attribute__ ((noinline)) nestedBPUT(void)\n#endif\n\t\t\t\t{\n\t\t\t\tVAR v ;\n\t\t\t\tvoid *chan = channel () ;\n\t\t\t\tcomma () ;\n\t\t\t\tv = expr () ;\n\t\t\t\tif (v.s.t != -1)\n\t\t\t\t    {\n\t\t\t\t\tif (v.i.t != 0)\n\t\t\t\t\t\tv.i.n = v.f ;\n\t\t\t\t\tosbput (chan, v.i.n) ;\n\t\t\t\t    }\n\t\t\t\telse\n\t\t\t\t    {\n\t\t\t\t\tint i ;\n\t\t\t\t\tchar *p = v.s.p + (char *) zero ;\n\t\t\t\t\tfor (i = 0; i < v.s.l; i++)\n\t\t\t\t\t\tosbput (chan, *p++) ;\n\t\t\t\t\tif (nxt () == ';')\n\t\t\t\t\t\tesi++ ;\n\t\t\t\t\telse\n\t\t\t\t\t\tosbput (chan, 0x0A) ;\n\t\t\t\t    }\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/************************************  PTR  ************************************/\n\n\t\t\tcase TPTRL:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedPTR();\n\t\tvoid __attribute__ ((noinline)) nestedPTR(void)\n#endif\n\t\t\t    {\n\t\t\t\tif (*esi == '(')\n\t\t\t\t    {\n\t\t\t\t\tvoid *ptr ;\n\t\t\t\t\tunsigned char type ;\n\t\t\t\t\tesi++ ;\n\t\t\t\t\tnxt () ;\n\t\t\t\t\tptr = getvar (&type) ;\n\t\t\t\t\tif (ptr == NULL)\n\t\t\t\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\t\t\t\tif (type == 0)\n\t\t\t\t\t\terror (26, NULL) ; // 'No such variable'\n\t\t\t\t\tbraket () ;\n\t\t\t\t\tequals () ;\n\t\t\t\t\tif (type == 136)\n\t\t\t\t\t\tUSTORE(ptr, expri () - (size_t) zero) ;\n\t\t\t\t\telse if ((type == 36) || (type & 0x40))\n\t\t\t\t\t\tTSTORE(ptr, expri ()) ;\n\t\t\t\t\telse if (type == STYPE)\n\t\t\t\t\t\tTSTORE(ptr + sizeof(void*), expri ()) ;\n\t\t\t\t\telse\n\t\t\t\t\t\terror (6, NULL) ; // 'Type mismatch'\n\t\t\t\t    }\n\t\t\t\telse\n\t\t\t\t    {\n\t\t\t\t\tlong long n ;\n\t\t\t\t\tvoid *chan = channel () ;\n\t\t\t\t\tequals () ;\n\t\t\t\t\tn = expri () ;\n\t\t\t\t\tsetptr (chan, n) ;\n\t\t\t\t    }\n\t\t\t    }\n\t\t\tbreak ;\n\n/************************************  EXT  ************************************/\n\n\t\t\tcase TEXTR:\n\t\t\t\t{\n\t\t\t\tlong long n ;\n\t\t\t\tvoid *chan = channel () ;\n\t\t\t\tequals () ;\n\t\t\t\tn = expri () ;\n\t\t\t\tsetext (chan, n) ;\n\t\t\t\t}\n\n/************************************ PAGE *************************************/\n\n\t\t\tcase TPAGEL:\n\t\t\t\t{\n\t\t\t\tequals () ;\n\t\t\t\tvoid *n = (void *) (size_t) expri () ;\n\t\t\t\tif ((n + STACK_NEEDED) > (void *) esp)\n\t\t\t\t\terror (8, NULL) ; // 'Address out of range'\n\t\t\t\tvpage = n - zero ;\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/************************************ LOMEM ************************************/\n\n\t\t\tcase TLOMEML:\n\t\t\t\t{\n\t\t\t\tequals () ;\n\t\t\t\tvoid *n = (void *) (size_t) expri () ;\n\t\t\t\tif ((n + STACK_NEEDED) > (void *) esp)\n\t\t\t\t\terror (8, NULL) ; // 'Address out of range'\n\t\t\t\tclear () ;\n\t\t\t\tlomem = n - zero ;\n\t\t\t\tpfree = n - zero ;\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/************************************ HIMEM ************************************/\n\n\t\t\tcase THIMEML:\n\t\t\t\t{\n\t\t\t\tequals () ;\n\t\t\t\tvoid *n = (void *) (size_t) (expri () & -4) ; // align\n\t\t\t\tif ((n < (pfree + zero + STACK_NEEDED)) ||\n\t\t\t\t\t\t(oshwm (n, 1) == 0))\n\t\t\t\t\terror (0, NULL) ; // 'No room'\n\t\t\t\tif ((void *) esp == himem + zero)\n\t\t\t\t\tesp = n ;\n\t\t\t\thimem = n - zero ;\n\t\t\t\tif ((libase != 0) && (himem > libase))\n\t\t\t\t    {\n\t\t\t\t\tlibase = 0 ;\n#ifdef PICO\n\t\t\t\t\tlibtop = n ;\n#endif\n\t\t\t\t\tproptr[0] = 0 ;\n\t\t\t\t\tfnptr[0] = 0 ;\n\t\t\t\t    }\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/************************************  RUN  ************************************/\n/************************************ CHAIN ************************************/\n\n\t\t\tcase TRUN:\n\t\t\t\tif (!termq ())\n\t\t\t\t\tal = TCHAIN ;\n\t\t\tcase TCHAIN:\n\t\t\t\tif (al == TCHAIN)\n\t\t\t\t    {\n\t\t\t\t\tVAR v = exprs () ;\n\t\t\t\t\tfixs (v) ;\n\t\t\t\t\tosload (accs, vpage + zero, \n\t\t\t\t\t\t(signed char *)esp - (signed char *)zero - vpage - STACK_NEEDED) ;\n\t\t\t\t    }\n\t\t\t\tclrtrp () ;\n\t\t\t\tclear () ;\n\t\t\t\tdatptr = search (vpage + (signed char *) zero, TDATA) -\t\n\t\t\t\t\t\t\t(signed char *) zero ;\n\t\t\t\tesi = vpage + (signed char *) zero ;\n\t\t\t\tesp = (heapptr *)((himem & -4) + zero) ; // align\n\t\t\t\tnewlin () ;\n\t\t\t\tbreak ;\n\n/************************************ READ *************************************/\n\n\t\t\tcase TREAD:\n\t\t\t\tif (*esi != '#')\n\t\t\t\t    {\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tauto void nestedREAD(void);\n\t\tnestedREAD();\n\t\tvoid __attribute__ ((noinline)) nestedREAD(void)\n#endif\n\t\t\t\t\t{\n\t\t\t\t\tunsigned char type ;\n\t\t\t\t\tvoid *ptr ;\n\t\t\t\t\tif (datptr == (unsigned int) (NULL - (void *) zero))\n\t\t\t\t\t\terror (42, NULL) ; // 'Out of DATA'\n\t\t\t\t\tsigned char *edx = datptr + (signed char *) zero ;\n\t\t\t\t\twhile (1)\n\t\t\t\t\t    {\n\t\t\t\t\t\tsigned char al = *edx++ ;\n\t\t\t\t\t\tif ((al != TDATA) && (al != ','))\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tif (al != 0x0D)\n\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\tif (al != ':')\n\t\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\t\tcurlin = edx - 1 - (signed char *) zero ;\n\t\t\t\t\t\t\t\t\terror (16, NULL) ;\n\t\t\t\t\t\t\t\t    }\n\t\t\t\t\t\t\t\tedx = memchr (edx, 0x0D, 255) + 1 ;\n\t\t\t\t\t\t\t    }\n\t\t\t\t\t\t\tedx = search (edx, TDATA) ;\n\t\t\t\t\t\t\tif (edx == NULL)\n\t\t\t\t\t\t\t\terror (42, NULL) ; // 'Out of DATA'\n\t\t\t\t\t\t\tedx++ ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\tptr = getput (&type) ;\n\t\t\t\t\t\tif (type & BIT6)\n\t\t\t\t\t\t\terror (14, NULL) ; // 'Bad use of array'\n\t\t\t\t\t\tif (type & BIT4)\n\t\t\t\t\t\t\terror (56, NULL) ; // 'Bad use of structure'\n\t\t\t\t\t\tif (type < 128)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tVAR v ;\n\t\t\t\t\t\t\tsigned char *oldesi = esi ;\n\t\t\t\t\t\t\tesi = edx ;\n\t\t\t\t\t\t\tcurlin = esi - (signed char *) zero ;\n\t\t\t\t\t\t\tv = exprn () ;\n\t\t\t\t\t\t\tedx = esi ;\n\t\t\t\t\t\t\tesi = oldesi ;\n\t\t\t\t\t\t\tstoren (v, ptr, type) ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\telse\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tVAR v ;\n\t\t\t\t\t\t\tv.s.l = fetchs ((char **) &edx) ;\n\t\t\t\t\t\t\tv.s.p = accs - (char *) zero ;\n\t\t\t\t\t\t\tstores (v, ptr, type) ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\tdatptr = edx - (signed char *) zero ;\n\t\t\t\t\t\tif (nxt () != ',')\n\t\t\t\t\t\t\tbreak ;\n\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\tnxt () ;\n\t\t\t\t\t\tcurlin = esi - (signed char *) zero ;\n\t\t\t\t\t    }\n\t\t\t\t\t}\n\t\t\t\t\tbreak ;\n\t\t\t\t    }\n\n\t\t\t\t// Falls through to INPUT....\n\n/************************************ INPUT ************************************/\n\n\t\t\tcase TINPUT:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedINPUT();\n\t\tvoid __attribute__ ((noinline)) nestedINPUT(void)\n#endif\n\t\t\t    {\n\t\t\t\tif (*esi == '#')\n\t\t\t\t    {\n\t\t\t\t\tvoid *chan = channel () ;\n\t\t\t\t\twhile (nxt () == ',')\n\t\t\t\t\t    {\n\t\t\t\t\t\tvoid *ptr ;\n\t\t\t\t\t\tunsigned char type ;\n\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\tnxt () ;\n\t\t\t\t\t\tptr = getput (&type) ;\n\t\t\t\t\t\tif (type & BIT6)\n\t\t\t\t\t\t\terror (14, NULL) ; // 'Bad use of array'\n\t\t\t\t\t\tif (type & BIT4)\n\t\t\t\t\t\t\terror (56, NULL) ; // 'Bad use of structure'\n\t\t\t\t\t\tif (type < 128)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tVAR v ;\n\t\t\t\t\t\t\tchar *p = pfree + (char *) zero ;\n\t\t\t\t\t\t\tint i, size = 5 ;\n\t\t\t\t\t\t\tif ((liston & 3) == 1) size = 8 ;\n\t\t\t\t\t\t\tif ((liston & 3) == 2) size = 32 ;\n\t\t\t\t\t\t\tif ((liston & 3) == 3) size = 10 ;\n\t\t\t\t\t\t\tfor (i = 0; i < (size > 10 ? 4 : size); i++)\n\t\t\t\t\t\t\t\t*p++ = osbget (chan, NULL) ;\n\t\t\t\t\t\t\tv = loadn (pfree + zero, size) ;\n\t\t\t\t\t\t\tstoren (v, ptr, type) ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\telse\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tVAR v ;\n\t\t\t\t\t\t\tchar al, *p ;\n\t\t\t\t\t\t\tint eof ;\n\t\t\t\t\t\t\tv.s.t = -1 ;\n\t\t\t\t\t\t\tv.s.l = 0 ;\n\t\t\t\t\t\t\tv.s.p = 0 ;\n\t\t\t\t\t\t\tstores (v, ptr, type) ; // May affect pfree\n\t\t\t\t\t\t\tp = pfree + 3 + (char *) zero ;\n\t\t\t\t\t\t\tv.s.p = p - (char *) zero ;\n\t\t\t\t\t\t\twhile (((al = osbget (chan, &eof)) != 0x0D) &&\n\t\t\t\t\t\t\t\t(eof == 0))\n\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\t*p++ = al ;\n\t\t\t\t\t\t\t\tif ((p + STACK_NEEDED) > (char *)esp)\n\t\t\t\t\t\t\t\t\terror (0, NULL) ; // 'No room'\n\t\t\t\t\t\t\t    }\n\t\t\t\t\t\t\tv.s.l = p - (char *) zero - v.s.p ;\n\t\t\t\t\t\t\tstores (v, ptr, type) ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t    }\n\t\t\t\t    }\n\t\t\t\telse\n\t\t\t\t    {\n\t\t\t\t\tunsigned char flag = 0 ;\n\t\t\t\t\tchar *bufptr = buff ;\n\t\t\t\t\t*bufptr = 0x0D ;\n\n\t\t\t\t\tif (*esi == TLINE)\n\t\t\t\t\t    {\n\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\tflag = BIT7 ;\n\t\t\t\t\t\tnxt () ;\n\t\t\t\t\t    }\n\n\t\t\t\t\twhile (1)\n\t\t\t\t\t    {\n\t\t\t\t\t\tVAR v ;\n\t\t\t\t\t\tsigned char al ;\n\n\t\t\t\t\t\tif (termq ())\n\t\t\t\t\t\t\tbreak ;\n\n\t\t\t\t\t\tal = *esi++ ;\n\t\t\t\t\t\tif ((al == ',') || (al == ';'))\n\t\t\t\t\t\t\tflag ^= BIT0 ;\n\t\t\t\t\t\telse if (al == '\"')\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tv = cons () ;\n\t\t\t\t\t\t\tptext (v.s.p + (char *) zero, v.s.l) ;\n\t\t\t\t\t\t\tflag |= BIT0 ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\telse if (format (al))\n\t\t\t\t\t\t\tflag |= BIT0 ;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tvoid *ptr ;\n\t\t\t\t\t\t\tunsigned char type ;\n\t\t\t\t\t\t\tesi-- ;\n\t\t\t\t\t\t\tptr = getput (&type) ;\n\t\t\t\t\t\t\t\tif (type & BIT6)\n\t\t\t\t\t\t\t\terror (14, NULL) ; // 'Bad use of array'\n\t\t\t\t\t\t\tif (type & BIT4)\n\t\t\t\t\t\t\t\terror (56, NULL) ; // 'Bad use of structure'\n\t\t\t\t\t\t\tif (*bufptr == 0x0D)\n\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\tif (!(flag & BIT0))\n\t\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\t\toutchr ('?') ;\n\t\t\t\t\t\t\t\t\toutchr (' ') ;\n\t\t\t\t\t\t\t\t    }\n\t\t\t\t\t\t\t\tosline (buff) ;\n\t\t\t\t\t\t\t\tcrlf () ;\n\t\t\t\t\t\t\t\tbufptr = buff ;\n\t\t\t\t\t\t\t    }\n\t\t\t\t\t\t\tif (flag & BIT7)\n\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\tv.s.l = (char *) memchr (bufptr, 0x0D, 256) - bufptr ;\n\t\t\t\t\t\t\t\tmemcpy (accs, bufptr, v.s.l + 1) ;\n\t\t\t\t\t\t\t\tbufptr += v.s.l ;\n\t\t\t\t\t\t\t    }\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\tv.s.l = fetchs (&bufptr) ;\n\t\t\t\t\t\t\t\tif ((*bufptr == ',') || (*bufptr == ';'))\n\t\t\t\t\t\t\t\t\tbufptr++ ;\n\t\t\t\t\t\t\t    }\n\t\t\t\t\t\t\tv.s.p = accs - (char *) zero ;\n\t\t\t\t\t\t\tif (type >= 128)\n\t\t\t\t\t\t\t\tstores (v, ptr, type) ;\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tstoren (val (), ptr, type) ;\n\t\t\t\t\t\t\tflag ^= BIT0 ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t    }\n\t\t\t\t    }\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/************************************ PRINT ************************************/\n\n\t\t\tcase TPRINT:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedPRINT();\n\t\tvoid __attribute__ ((noinline)) nestedPRINT(void)\n#endif\n\t\t\t    {\n\t\t\t\tif (*esi == '#')\n\t\t\t\t    {\n\t\t\t\t\tvoid *chan = channel () ;\n\t\t\t\t\twhile (nxt () == ',')\n\t\t\t\t\t    {\n\t\t\t\t\t\tVAR v ; \n\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\tv = expr () ;\n\t\t\t\t\t\tif (v.s.t != -1)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tchar *p = pfree + (char *) zero ;\n\t\t\t\t\t\t\tint i, size = 5 ;\n\t\t\t\t\t\t\tif ((liston & 3) == 1) size = 8 ;\n\t\t\t\t\t\t\tif ((liston & 3) == 2) size = 32 ;\n\t\t\t\t\t\t\tif ((liston & 3) == 3) size = 10 ;\n\t\t\t\t\t\t\tstoren (v, p, size) ;\n\t\t\t\t\t\t\tfor (i = 0; i < (size > 10 ? 4 : size); i++)\n\t\t\t\t\t\t\t\tosbput (chan, *p++) ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\telse\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tint i ;\n\t\t\t\t\t\t\tchar *p = v.s.p + (char *) zero ;\n\t\t\t\t\t\t\tfor (i = 0; i < v.s.l; i++)\n\t\t\t\t\t\t\t\tosbput (chan, *p++) ;\n\t\t\t\t\t\t\tosbput (chan, 0x0D) ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t    }\n\t\t\t\t    }\n\t\t\t\telse\n\t\t\t\t    {\n\t\t\t\t\tsigned char al ;\n\t\t\t\t\tVAR v ;\n\t\t\t\t\tunsigned char mode = 0 ;\n\t\t\t\t\tint field = stavar[0] & 0xFF ;\n\n\t\t\t\t\twhile (1)\n\t\t\t\t\t    {\n\t\t\t\t\t\tal = nxt () ;\n\t\t\t\t\t\tif ((al == ':') || (al == 0x0D) || (al == TELSE))\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tif ((mode & BIT0) == 0) crlf () ;\n\t\t\t\t\t\t\tbreak ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\tmode &= ~BIT0 ;\n\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\tif (al == '~')\n\t\t\t\t\t\t\tmode = 2 ;\n\t\t\t\t\t\telse if (al == ';')\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tmode = 1 ;\n\t\t\t\t\t\t\tfield = 0 ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\telse if (al == ',')\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tmode &= ~2 ;\n\t\t\t\t\t\t\tfield = stavar[0] & 0xFF ;\n\t\t\t\t\t\t\tif (field)\n\t\t\t\t\t\t\twhile (vcount % field)\n\t\t\t\t\t\t\t\toutchr (' ') ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\telse if (!format(al))\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tesi-- ;\n\t\t\t\t\t\t\tv = expr () ;\n\t\t\t\t\t\t\tif (v.s.t == -1)\n\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\tptext (v.s.p + (char *) zero, v.s.l) ;\n\t\t\t\t\t\t\t    }\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\tif (mode & BIT1)\n\t\t\t\t\t\t\t\t    strhex (v, accs, field) ;\n\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t    str (v, accs, (stavar[0] & 0xFFFF00) + field) ;\n\t\t\t\t\t\t\t\ttext (accs) ;\n\t\t\t\t\t\t\t    }\n\t\t\t\t\t\t    }\n\t\t\t\t\t    }\n\t\t\t\t    }\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/*********************************** WIDTH *************************************/\n\n\t\t\tcase TWIDTH:\n\t\t\t\tvwidth = expri () ;\n\t\t\t\tbreak ;\n\n/*********************************** CLOSE *************************************/\n\n\t\t\tcase TCLOSE:\n\t\t\t\tosshut (channel ()) ;\n\t\t\t\tbreak ;\n\n/***********************************  OFF  *************************************/\n\n\t\t\tcase TOFF:\n\t\t\t\toswrch (23) ;\n\t\t\t\toswrch (1) ;\n\t\t\t\tfor (al = 0; al < 8; al++)\n\t\t\t\t\toswrch(0) ;\n\t\t\t\tbreak ;\n\n/*********************************** ERROR *************************************/\n\n\t\t\tcase TERROR:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedERROR();\n\t\tvoid __attribute__ ((noinline)) nestedERROR(void)\n#endif\n\t\t\t\t{\n\t\t\t\tVAR v ;\n\t\t\t\tint n = expri () ;\n\t\t\t\tcomma () ;\n\t\t\t\tv = exprs () ;\n\t\t\t\tmemcpy (buff, v.s.p + zero, v.s.l) ;\n\t\t\t\t*(buff + v.s.l) = 0 ;\n\t\t\t\terror (n, buff) ;\n\t\t\t\t}\n\n/*********************************** CLEAR *************************************/\n\n\t\t\tcase TCLEAR:\n\t\t\t\tclear () ;\n\t\t\t\tdatptr = search (vpage + (signed char *) zero, TDATA) -\n\t\t\t\t\t\t(signed char *) zero ;\n\t\t\t\tbreak ;\n\n/***********************************  VDU  *************************************/\n\n\t\t\tcase TVDU:\n\t\t\t\tdo\n\t\t\t\t    {\n\t\t\t\t\tint n = expri () ;\n\t\t\t\t\toswrch (n) ;\n\t\t\t\t\tif (*esi == ',')\n\t\t\t\t\t\tesi++ ;\n\t\t\t\t\telse if (*esi == ';')\n\t\t\t\t\t    {\n\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\toswrch (n >> 8) ;\n\t\t\t\t\t    }\n\t\t\t\t\telse if (*esi == '|')\n\t\t\t\t\t    {\n\t\t\t\t\t\tint i = 9 ;\n\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\twhile (i--) oswrch (0) ;\n\t\t\t\t\t    }\n\t\t\t\t    }\n\t\t\t\twhile (!termq ()) ;\n\t\t\t\tbreak ;\n\n/***********************************  CLS  *************************************/\n\n\t\t\tcase TCLS:\n\t\t\t\toswrch (12) ;\n\t\t\t\tvcount = 0 ;\n\t\t\t\tbreak ;\n\n/***********************************  CLG  *************************************/\n\n\t\t\tcase TCLG:\n\t\t\t\toswrch (16) ;\n\t\t\t\tbreak ;\n\n/***********************************  MODE  ************************************/\n\n\t\t\tcase TMODE:\n\t\t\t\t{\n\t\t\t\tint n = expri () ;\n\t\t\t\toswrch (22) ;\n\t\t\t\toswrch (n) ;\n\t\t\t\tvcount = 0 ;\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/*********************************** COLOUR ************************************/\n\n\t\t\tcase TCOLOUR:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedCOLOUR();\n\t\tvoid __attribute__ ((noinline)) nestedCOLOUR(void)\n#endif\n\t\t\t\t{\n\t\t\t\tint r = 0, g = 0, b = 0, t, n = expri () ;\n\t\t\t\tif (*esi != ',')\n\t\t\t\t    {\n\t\t\t\t\toswrch (17) ;\n\t\t\t\t\toswrch (n) ;\n\t\t\t\t    }\n\t\t\t\telse\n\t\t\t\t    {\n\t\t\t\t\tesi ++ ;\n\t\t\t\t\tt = expri () ;\n\t\t\t\t\tif (*esi == ',')\n\t\t\t\t\t    {\n\t\t\t\t\t\tr = t ;\n\t\t\t\t\t\tt = 16 ;\n\t\t\t\t\t\tesi ++ ;\n\t\t\t\t\t\tg = expri () ;\n\t\t\t\t\t\tcomma ();\n\t\t\t\t\t\tb = expri () ;\n\t\t\t\t\t    }\n\t\t\t\t\toswrch (19) ;\n\t\t\t\t\toswrch (n) ;\n\t\t\t\t\toswrch (t) ;\n\t\t\t\t\toswrch (r) ;\n\t\t\t\t\toswrch (g) ;\n\t\t\t\t\toswrch (b) ;\n\t\t\t\t    }\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/***********************************  GCOL  ************************************/\n\n\t\t\tcase TGCOL:\n\t\t\t\t{\n\t\t\t\tint m = 0, n = expri () ;\n\t\t\t\tif (*esi == ',')\n\t\t\t\t    {\n\t\t\t\t\tesi++ ;\n\t\t\t\t\tm = n ;\n\t\t\t\t\tn = expri () ;\n\t\t\t\t    }\n\t\t\t\toswrch (18) ;\n\t\t\t\toswrch (m) ;\n\t\t\t\toswrch (n) ;\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/**************************  TINT (not implemented)  ***************************/\n\n\t\t\tcase TTINT:\n\t\t\t\texpri () ;\n\t\t\t\tbreak ;\n\n/***********************************  MOVE  ************************************/\n\n\t\t\tcase TMOVE:\n\t\t\t\t{\n\t\t\t\tint c = 4, x, y ;\n\t\t\t\tif (*esi == TBY)\n\t\t\t\t    {\n\t\t\t\t\tesi++ ;\n\t\t\t\t\tc = 0 ;\n\t\t\t\t    }\n\t\t\t\tx = expri () ;\n\t\t\t\tcomma () ;\n\t\t\t\ty = expri () ;\n\t\t\t\tplot (c, x, y) ;\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/***********************************  DRAW  ************************************/\n\n\t\t\tcase TDRAW:\n\t\t\t\t{\n\t\t\t\tint c = 5, x, y ;\n\t\t\t\tif (*esi == TBY)\n\t\t\t\t    {\n\t\t\t\t\tesi++ ;\n\t\t\t\t\tc = 1 ;\n\t\t\t\t    }\n\t\t\t\tx = expri () ;\n\t\t\t\tcomma () ;\n\t\t\t\ty = expri () ;\n\t\t\t\tplot (c, x, y) ;\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/***********************************  FILL  ************************************/\n\n\t\t\tcase TFILL:\n\t\t\t\t{\n\t\t\t\tint c = 133, x, y ;\n\t\t\t\tif (*esi == TBY)\n\t\t\t\t    {\n\t\t\t\t\tesi++ ;\n\t\t\t\t\tc = 129 ;\n\t\t\t\t    }\n\t\t\t\tx = expri () ;\n\t\t\t\tcomma () ;\n\t\t\t\ty = expri () ;\n\t\t\t\tplot (c, x, y) ;\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/***********************************  LINE  ************************************/\n\n\t\t\tcase TLINE:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedLINE();\n\t\tvoid __attribute__ ((noinline)) nestedLINE(void)\n#endif\n\t\t\t\t{\n\t\t\t\tint x1, y1, x2, y2 ;\n\t\t\t\tx1 = expri () ;\n\t\t\t\tcomma () ;\n\t\t\t\ty1 = expri () ;\n\t\t\t\tcomma () ;\n\t\t\t\tx2 = expri () ;\n\t\t\t\tcomma () ;\n\t\t\t\ty2 = expri () ;\n\t\t\t\tplot (4, x1, y1) ;\n\t\t\t\tplot (5, x2, y2) ;\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/*********************************** ORIGIN ************************************/\n\n\t\t\tcase TORIGIN:\n\t\t\t\t{\n\t\t\t\tint x, y ;\n\t\t\t\tx = expri () ;\n\t\t\t\tcomma () ;\n\t\t\t\ty = expri () ;\n\t\t\t\toswrch (29) ;\n\t\t\t\toswrch (x) ;\n\t\t\t\toswrch (x >> 8) ;\n\t\t\t\toswrch (y) ;\n\t\t\t\toswrch (y >> 8) ;\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/***********************************  PLOT  ************************************/\n\n\t\t\tcase TPLOT:\n\t\t\t\t{\n\t\t\t\tint n, x, y ;\n\t\t\t\tif (*esi == TBY)\n\t\t\t\t    {\n\t\t\t\t\tesi++ ;\n\t\t\t\t\tn = 65 ;\n\t\t\t\t    }\n\t\t\t\telse\n\t\t\t\t    {\n\t\t\t\t\tn = expri () ;\n\t\t\t\t\tcomma () ;\n\t\t\t\t    }\n\t\t\t\tx = expri () ;\n\t\t\t\tif (*esi == ',')\n\t\t\t\t    {\n\t\t\t\t\tesi++ ;\n\t\t\t\t\ty = expri () ;\n\t\t\t\t    }\n\t\t\t\telse\n\t\t\t\t    {\n\t\t\t\t\ty = x ;\n\t\t\t\t\tx = n ;\n\t\t\t\t\tn = 69 ;\n\t\t\t\t    }\n\t\t\t\tplot (n, x, y) ;\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/************************************ CIRCLE ***********************************/\n\n\t\t\tcase TCIRCLE:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedCIRCLE();\n\t\tvoid __attribute__ ((noinline)) nestedCIRCLE(void)\n#endif\n\t\t\t\t{\n\t\t\t\tint n = 145, x, y, r ;\n\t\t\t\tif (*esi == TFILL)\n\t\t\t\t    {\n\t\t\t\t\tesi++ ;\n\t\t\t\t\tn = 153 ;\n\t\t\t\t    }\n\t\t\t\tx = expri () ;\n\t\t\t\tcomma () ;\n\t\t\t\ty = expri () ;\n\t\t\t\tcomma () ;\n\t\t\t\tr = expri () ;\n\t\t\t\tplot (4, x, y) ;\n\t\t\t\tplot (n, r, 0) ;\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/*********************************** ELLIPSE ***********************************/\n\n\t\t\tcase TELLIPSE:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedELLIPSE();\n\t\tvoid __attribute__ ((noinline)) nestedELLIPSE(void)\n#endif\n\t\t\t\t{\n\t\t\t\tint n = 193, x, y, a, b ;\n\t\t\t\tif (*esi == TFILL)\n\t\t\t\t    {\n\t\t\t\t\tesi++ ;\n\t\t\t\t\tn = 201 ;\n\t\t\t\t    }\n\t\t\t\tx = expri () ;\n\t\t\t\tcomma () ;\n\t\t\t\ty = expri () ;\n\t\t\t\tcomma () ;\n\t\t\t\ta = expri () ;\n\t\t\t\tcomma () ;\n\t\t\t\tb = expri () ;\n\t\t\t\tplot (4, x, y) ;\n\t\t\t\tplot (0, a, 0) ;\n\t\t\t\tplot (n, 0, b) ;\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/********************************** RECTANGLE **********************************/\n\n\t\t\tcase TRECT:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedRECT();\n\t\tvoid __attribute__ ((noinline)) nestedRECT(void)\n#endif\n\t\t\t\t{\n\t\t\t\tint n = 191, x, y, w, h ;\n\t\t\t\tif (*esi == TFILL)\n\t\t\t\t    {\n\t\t\t\t\tesi++ ;\n\t\t\t\t\tn = 189 ;\n\t\t\t\t    }\n\t\t\t\telse if (*esi == TSWAP)\n\t\t\t\t    {\n\t\t\t\t\tesi++ ;\n\t\t\t\t\tn = 253 ;\n\t\t\t\t    }\n\t\t\t\tx = expri () ;\n\t\t\t\tcomma () ;\n\t\t\t\ty = expri () ;\n\t\t\t\tcomma () ;\n\t\t\t\tw = expri () ;\n\t\t\t\tif (*esi == ',')\n\t\t\t\t    {\n\t\t\t\t\tesi++ ;\n\t\t\t\t\th = expri () ;\n\t\t\t\t    }\n\t\t\t\telse\n\t\t\t\t\th = w ;\n\n\t\t\t\tif (*esi == TTO)\n\t\t\t\t    {\n\t\t\t\t\tesi++ ;\n\t\t\t\t\tplot (4, x, y) ;\n\t\t\t\t\tplot (0, w, h) ;\n\t\t\t\t\tx = expri () ;\n\t\t\t\t\tcomma () ;\n\t\t\t\t\ty = expri () ;\n\t\t\t\t\tplot (n, x, y) ;\n\t\t\t\t    }\n\t\t\t\telse if (n == 191) // RECTANGLE\n\t\t\t\t    {\n\t\t\t\t\tplot (4, x, y) ;\n\t\t\t\t\tplot (9, w, 0) ;\n\t\t\t\t\tplot (9, 0, h) ;\n\t\t\t\t\tplot (9, -w, 0) ;\n\t\t\t\t\tplot (9, 0, -h) ;\n\t\t\t\t    }\n\t\t\t\telse if (n == 189) // RECTANGLE FILL\n\t\t\t\t    {\n\t\t\t\t\tplot (4, x, y) ;\n\t\t\t\t\tplot (97, w, h) ;\n\t\t\t\t    }\n\t\t\t\telse\n\t\t\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/*************************************  IF  ************************************/\n\n\t\t\tcase TIF:\n\t\t\t\t{\n\t\t\t\tlong long n = expri () ;\n\t\t\t\tif (n)\n\t\t\t\t    {\n\t\t\t\t\tif (*esi == TTHEN)\n\t\t\t\t\t\twhile (*++esi == ';') ;\n\t\t\t\t\tgoto xeq1 ;\n\t\t\t\t    }\n\t\t\t\t}\n\n\t\t\t\twhile (1)\n\t\t\t  \t    {\n\t\t\t\t\tsigned char al = *esi ;\n\t\t\t\t\tif ((al == TREM) || (al == 0x0D))\n\t\t\t\t\t\tbreak ;\n\t\t\t\t\tesi++ ;\n\n\t\t\t\t\tif (al == '\"')\n\t\t\t\t\t\tquote () ;\n\n\t\t\t\t\tif (al == TELSE)\n\t\t\t\t\t\tgoto xeq1 ; // To prevent event interrupt\n\n\t\t\t\t\tif (al == TTHEN)\n\t\t\t\t\t    {\n\t\t\t\t\t\twhile (*esi == ';') esi++ ;\n\t\t\t\t\t\tif (*esi == 0x0D)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\t\tesi = nsurch (TELSE, 0, TTHEN, TENDIF, 0) ;\n\t\t\t\t\t\t\tif (esi == NULL)\n\t\t\t\t\t\t\t\terror (49, NULL) ; // 'Missing ENDIF'\n\t\t\t\t\t\t\tesi += 4 ;\n\t\t\t\t\t\t\tbreak ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t    }\n\t\t\t  \t    }\n\t\t\t\tbreak ;\n\n\n/*************************************  ON  ************************************/\n\n\t\t\tcase TON:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedON();\n\t\tvoid __attribute__ ((noinline)) nestedON(void)\n#endif\n\t\t\t\t{\n\t\t\t\tint n, nest ;\n\t\t\t\tvoid *edx ;\n\t\t\t\theapptr *ebx ;\n\n\t\t\t\tal = *esi++ ;\n\t\t\t\tswitch (al)\n\t\t\t\t    {\n\t\t\t\t\tcase TERROR:\n\t\t\t\t\t\tif (nxt () == TLOCAL)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\t\t*--esp = errtrp ;\n\t\t\t\t\t\t\tesp -= STRIDE ;\n\t\t\t\t\t\t\t*(heapptr **)esp = onersp ;\n\t\t\t\t\t\t\t*--esp = ONCHK ;\n\t\t\t\t\t\t\tedx = esp ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tedx = NULL ;\n\n\t\t\t\t\t\tif (nxt () == TOFF)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\t\terrtrp = 0 ;\n\t\t\t\t\t\t\tonersp = NULL ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\telse\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\terrtrp = esi - (signed char *) zero ;\n\t\t\t\t\t\t\tonersp = edx ;\n\t\t\t\t\t\t\tesi = memchr (esi, 0x0D, 255) ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\tbreak ;\n\n\t\t\t\t\tcase TTIMER:\n\t\t\t\t\t\tebx = &timtrp ;\n\t\t\t\t\t\tgoto onevt ;\n\t\t\t\t\tcase TCLOSE:\n\t\t\t\t\t\tebx = &clotrp ;\n\t\t\t\t\t\tgoto onevt ;\n\t\t\t\t\tcase TMOVE:\n\t\t\t\t\t\tebx = &siztrp ;\n\t\t\t\t\t\tgoto onevt ;\n\t\t\t\t\tcase TSYS:\n\t\t\t\t\t\tebx = &systrp ;\n\t\t\t\t\t\tgoto onevt ;\n\t\t\t\t\tcase TMOUSE:\n\t\t\t\t\t\tebx = &moutrp ;\n\t\t\t\t\tonevt:\n\t\t\t\t\t\tif (nxt () == TLOCAL)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tisloc () ;\n\t\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\t\tsavloc (ebx, 4) ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\tif (nxt () == TOFF)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\t\t*ebx = 0 ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\telse\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t*ebx = esi - (signed char *) zero ;\n\t\t\t\t\t\t\tesi = memchr (esi, 0x0D, 255) ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\tbreak ;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tesi-- ;\n\t\t\t\t\t\tif (termq ())\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\toswrch (23) ;\n\t\t\t\t\t\t\toswrch (1) ;\n\t\t\t\t\t\t\toswrch (1) ;\n\t\t\t\t\t\t\tfor (al = 0; al < 7; al++)\n\t\t\t\t\t\t\t\toswrch(0) ;\n\t\t\t\t\t\t\tbreak ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\tn = expri () - 1 ;\n\t\t\t\t\t\tnest = 0 ;\n\t\t\t\t\t\tal = *esi++ ;\n\t\t\t\t\t\tif ((al != TGOTO) && (al != TGOSUB) && (al != TPROC))\n\t\t\t\t\t\t\terror (39, NULL) ; // 'ON syntax'\n\t\t\t\t\t\twhile (n)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tswitch (*esi++)\n\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\tcase '(':\n\t\t\t\t\t\t\t\t\tnest++ ;\n\t\t\t\t\t\t\t\t\tbreak ;\n\t\t\t\t\t\t\t\tcase ')':\n\t\t\t\t\t\t\t\t\tnest-- ;\n\t\t\t\t\t\t\t\t\tbreak ;\n\t\t\t\t\t\t\t\tcase '\"':\n\t\t\t\t\t\t\t\t\tquote () ;\n\t\t\t\t\t\t\t\t\tbreak ;\n\t\t\t\t\t\t\t\tcase TLINO:\n\t\t\t\t\t\t\t\t\tesi += 3 ;\n\t\t\t\t\t\t\t\t\tbreak ;\n\t\t\t\t\t\t\t\tcase ',':\n\t\t\t\t\t\t\t\t\tif (nest == 0)\n\t\t\t\t\t\t\t\t\t\tn-- ;\n\t\t\t\t\t\t\t    }\n\t\t\t\t\t\t\tif (termq ())\n\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\tif (nxt () == TELSE)\n\t\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\t\t\t\tgoto xeq1 ;\n\t\t\t\t\t\t\t\t    }\n\t\t\t\t\t\t\t\terror (40, NULL) ; // 'ON range'\n\t\t\t\t\t\t\t    }\n\t\t\t\t\t\t    }\n\t\t\t\t\t\tif (al == TPROC)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tif (nxt () == TPROC)\n\t\t\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\t\tprocfn (TON) ;\n\t\t\t\t\t\t\tbreak ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\tn = itemi () ;\n\t\t\t\t\t\tskip () ;\n\t\t\t\t\t\tif (al == TGOSUB)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tcheck () ;\n\t\t\t\t\t\t\tesp -= STRIDE ;\n\t\t\t\t\t\t\t*(void **)esp = esi ;\n\t\t\t\t\t\t\t*--esp = GOSCHK ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\tesi = findl (n) ;\n\t\t\t\t\t\tif (esi == NULL)\n\t\t\t\t\t\t\terror (41, NULL) ; // 'No such line'\n\t\t\t\t\t\tnewlin () ;\n\t\t\t\t    }\n\t\t\t    }\n\t\t\t\tbreak ;\n\n/************************************  FOR  ************************************/\n\n\t\t\tcase TFOR:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedFOR();\n\t\tvoid __attribute__ ((noinline)) nestedFOR(void)\n#endif\n\t\t\t\t{\n\t\t\t\tvoid *ptr ;\n\t\t\t\tunsigned char type ;\n\t\t\t\tVAR v ;\n\n\t\t\t\tptr = getvar (&type) ;\n\t\t\t\tif (ptr == NULL)\n\t\t\t\t\terror (34, NULL) ; // 'Bad FOR variable'\n\t\t\t\tif (type == 0)\n\t\t\t\t\tptr = putvar (ptr, &type) ;\n\t\t\t\tif (type >= 128)\n\t\t\t\t\terror (34, NULL) ; // 'Bad FOR variable'\n\t\t\t\tassign (ptr, type) ;\n\t\t\t\tif (*esi++ != TTO)\n\t\t\t\t\terror (36, NULL) ; // 'Missing TO'\n\t\t\t\tesp -= STRIDE ;\n\t\t\t\t*(void **)esp = ptr ;\n\t\t\t\t*--esp = (int) type ;\n\n\t\t\t\tv = exprn () ; // limit\n\t\t\t\t*--esp = (int)v.i.t ;\n\t\t\t\tesp -= 2 ;\n\t\t\t\t*(long long *) esp = v.i.n ;\n\n\t\t\t\tif (*esi == TSTEP)\n\t\t\t\t    {\n\t\t\t\t\tesi++ ;\n\t\t\t\t\tv = exprn () ; // step\n\t\t\t\t\tif (v.i.n == 0)\n\t\t\t\t\t\terror (35, NULL) ; // 'STEP cannot be zero'\n\t\t\t\t    }\n\t\t\t\telse\n\t\t\t\t    {\n\t\t\t\t\tv.i.t = 0 ;\n\t\t\t\t\tv.i.n = 1 ;\n\t\t\t\t    }\n\t\t\t\t*--esp = (int)v.i.t ;\n\t\t\t\tesp -= 2 ;\n\t\t\t\t*(long long *) esp = v.i.n ;\n\n\t\t\t\tif (v.i.t == 0)\n\t\t\t\t\t*--esp = (int) (v.i.n >= 0) ;\n\t\t\t\telse\n\t\t\t\t\t*--esp = (int) (v.f >= 0.0) ;\n\t\t\t\tesp -= STRIDE ;\n\t\t\t\t*(void **)esp = esi ;\n\t\t\t\t*--esp = FORCHK ;\n\t\t\t\tcheck () ;\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/************************************* NEXT *************************************/\n\n\t\t\tcase TNEXT:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedNEXT();\n\t\tvoid __attribute__ ((noinline)) nestedNEXT(void)\n#endif\n\t\t\t    {\n\t\t\t\twhile (1)\n\t\t\t\t    {\n\t\t\t\t\tvoid *ptr = NULL ;\n\t\t\t\t\tunsigned char type ;\n\t\t\t\t\tVAR v, L, s ;\n\t\t\t\t\tlong long tmpll ;\n\t\t\t\t\tsigned char al = *esi ;\n\t\t\t\t\tint b ;\n\n\t\t\t\t\tif ((al != ':') && (al != 0x0D) &&\n\t\t\t\t\t    (al != TELSE) && (al != ','))\n\t\t\t\t\t\tptr = getvar (&type) ;\n\n\t\t\t\t\twhile (*(int *)esp != FORCHK)\n\t\t\t\t\t    {\n\t\t\t\t\t\tif (*(int *)esp == ONCHK)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tesp++ ;\n\t\t\t\t\t\t\tonersp = *(heapptr **)esp ;\n\t\t\t\t\t\t\tesp += STRIDE ;\n\t\t\t\t\t\t\terrtrp = *esp++ ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\telse if (*(int *)esp == LDCHK)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tesp++ ;\n\t\t\t\t\t\t\tdatptr = *esp++ ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\terror (32, NULL) ; // 'Not in a FOR loop'\n\t\t\t\t\t    }\n\n\t\t\t\t\tif (ptr == NULL)\n\t\t\t\t\t\tptr = *(void **)(esp + 9 + STRIDE) ;\n\n\t\t\t\t\twhile (ptr != *(void **)(esp + 9 + STRIDE))\n\t\t\t\t\t    {\n\t\t\t\t\t\tesp += 9 + 2 * STRIDE ;\n\t\t\t\t\t\twhile (*(int *)esp != FORCHK)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tif (*(int *)esp == ONCHK)\n\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\tesp++ ;\n\t\t\t\t\t\t\t\tonersp = *(heapptr **)esp ;\n\t\t\t\t\t\t\t\tesp += STRIDE ;\n\t\t\t\t\t\t\t\terrtrp = *esp++ ;\n\t\t\t\t\t\t\t    }\n\t\t\t\t\t\t\telse if (*(int *)esp == LDCHK)\n\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\tesp++ ;\n\t\t\t\t\t\t\t\tdatptr = *esp++ ;\n\t\t\t\t\t\t\t    }\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\terror (33, NULL) ; // 'Can't match FOR'\n\t\t\t\t\t\t    }\n\t\t\t\t\t    }\n\n\t\t\t\t\ttype = (char) (int) *(esp + 8 + STRIDE) ;\n\t\t\t\t\tv = loadn (ptr, type) ;\n\t\t\t\t\ts.i.t = *(short *)(esp + 4 + STRIDE) ;\n\t\t\t\t\ts.i.n = *(long long *)(esp + 2 + STRIDE) ;\n#if !(defined(__GNUC__) && (__GNUC__ >= 7) || defined(__clang__) && (__clang_major__ >= 4))\n\t\t\t\t\tif ((v.i.t == 0) && (s.i.t == 0) && ((((tmpll = v.i.n + s.i.n) ^\n\t\t\t\t\t\t             v.i.n) >= 0) || ((int)(v.s.l ^ s.s.l) < 0)))\n#else\n\t\t\t\t\tif ((v.i.t == 0) && (s.i.t == 0) &&\n\t\t\t\t\t    (! __builtin_saddll_overflow (v.i.n, s.i.n, &tmpll)))\n#endif\n\t\t\t\t\t\t v.i.n = tmpll ;\n\t\t\t\t\telse\n\t\t\t\t\t    {\n\t\t\t\t\t\tif (v.i.t == 0)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tv.i.t = 1 ; // ARM\n\t\t\t\t\t\t\tv.f = v.i.n ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\tif (s.i.t == 0)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\ts.i.t = 1 ; // ARM\n\t\t\t\t\t\t\ts.f = s.i.n ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\tv.f += s.f ;\n\t\t\t\t\t    }\n\t\t\t\t\tstoren (v, ptr, type) ;\n\n\t\t\t\t\tal = *(signed char *)(esp + 1 + STRIDE) ;\n\t\t\t\t\tL.i.t = *(short *)(esp + 7 + STRIDE) ;\n\t\t\t\t\tL.i.n = *(long long*)(esp + 5 + STRIDE) ;\n\t\t\t\t\tif ((v.i.t == 0) && (L.i.t == 0))\n\t\t\t\t\t    {\n\t\t\t\t\t\tif (al)\n\t\t\t\t\t\t\tb = v.i.n > L.i.n ;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tb = v.i.n < L.i.n ;\n\t\t\t\t\t    }\n\t\t\t\t\telse\n\t\t\t\t\t    {\n\t\t\t\t\t\tif (v.i.t == 0)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tv.i.t = 1 ; // ARM\n\t\t\t\t\t\t\tv.f = v.i.n ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\tif (L.i.t == 0)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tL.i.t = 1 ; // ARM\n\t\t\t\t\t\t\tL.f = L.i.n ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\tif (al)\n\t\t\t\t\t\t\tb = v.f > L.f ;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tb = v.f < L.f ;\n\t\t\t\t\t    }\n\n\t\t\t\t\tif (b)\n\t\t\t\t\t    {\n\t\t\t\t\t\tesp += 9 + 2 * STRIDE ;\n\t\t\t\t\t\tif (nxt () != ',')\n\t\t\t\t\t\t\tbreak ;\n\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\tnxt () ;\n\t\t\t\t\t    }\n\t\t\t\t\telse\n\t\t\t\t\t    {\n\t\t\t\t\t\tesi = *(void **)(esp + 1) ;\n\t\t\t\t\t\tbreak ;\n\t\t\t\t\t    }\n\t\t\t\t    }\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/*********************************** REPEAT ************************************/\n\n\t\t\tcase TREPEAT:\n\t\t\t\tcheck () ;\n\t\t\t\tesp -= STRIDE ;\n\t\t\t\t*(void **)esp = esi ;\n\t\t\t\t*--esp = REPCHK ;\n\t\t\t\tbreak ;\n\n/*********************************** UNTIL *************************************/\n\n\t\t\tcase TUNTIL:\n\t\t\t\twhile (*(int *)esp != REPCHK)\n\t\t\t\t    {\n\t\t\t\t\tif (*(int *)esp == ONCHK)\n\t\t\t\t\t    {\n\t\t\t\t\t\tesp++ ;\n\t\t\t\t\t\tonersp = *(heapptr **)esp ;\n\t\t\t\t\t\tesp += STRIDE ;\n\t\t\t\t\t\terrtrp = *esp++ ;\n\t\t\t\t\t    }\n\t\t\t\t\telse if (*(int *)esp == LDCHK)\n\t\t\t\t\t    {\n\t\t\t\t\t\tesp++ ;\n\t\t\t\t\t\tdatptr = *esp++ ;\n\t\t\t\t\t    }\n\t\t\t\t\telse\n\t\t\t\t\t\terror (43, NULL) ; // 'Not in a REPEAT loop'\n\t\t\t\t    }\n\t\t\t\t{\n\t\t\t\tlong long n = expri () ;\n\t\t\t\tif (n)\n\t\t\t\t\tesp +=  1 + STRIDE ;\n\t\t\t\telse\n\t\t\t\t\tesi = *(void **)(esp+1) ;\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/*********************************** WHILE *************************************/\n\n\t\t\tcase TWHILE:\n\t\t\t\tcheck () ;\n\t\t\t\tesp -= STRIDE ;\n\t\t\t\t*(void **)esp = esi ;\n\t\t\t\t*--esp = WHICHK ;\n\n\t\t\t\tif (expri()) \n\t\t\t\t\tbreak ;\n\t\t\t\tesp += 1 + STRIDE ;\n\t\t\t\twsurch (TENDWHILE, TWHILE, 1) ;\n\t\t\t\tbreak ;\n\n/********************************* ENDWHILE ************************************/\n\n\t\t\tcase TENDWHILE:\n\t\t\t\twhile (*(int *)esp != WHICHK)\n\t\t\t\t    {\n\t\t\t\t\tif (*(int *)esp == ONCHK)\n\t\t\t\t\t    {\n\t\t\t\t\t\tesp++ ;\n\t\t\t\t\t\tonersp = *(heapptr **)esp ;\n\t\t\t\t\t\tesp += STRIDE ;\n\t\t\t\t\t\terrtrp = *esp++ ;\n\t\t\t\t\t    }\n\t\t\t\t\telse if (*(int *)esp == LDCHK)\n\t\t\t\t\t    {\n\t\t\t\t\t\tesp++ ;\n\t\t\t\t\t\tdatptr = *esp++ ;\n\t\t\t\t\t    }\n\t\t\t\t\telse\n\t\t\t\t\t\terror (46, NULL) ; // 'Not in a WHILE loop'\n\t\t\t\t    }\n\t\t\t\t{\n\t\t\t\tsigned char *esiold = esi ;\n\t\t\t\tesi = *(void **)(esp+1) ;\n\t\t\t\tif (expri())\n\t\t\t\t\tbreak ;\n\t\t\t\tesp += 1 + STRIDE ;\n\t\t\t\tesi = esiold ;\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/************************************ EXIT *************************************/\n\n\t\t\tcase TEXIT:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedEXIT();\n\t\tvoid __attribute__ ((noinline)) nestedEXIT(void)\n#endif\n\t\t\t\t{\n\t\t\t\tint level = 1 ;\n\t\t\t\tunsigned char type ;\n\t\t\t\tchar *ptr = NULL ;\n\t\t\t\tsigned char al = *esi++ ;\n\n\t\t\t\tif ((al == TFOR) && !termq ())\n\t\t\t\t\tptr = getvar (&type) ;\n\n\t\t\t\twhile (1)\n\t\t\t\t    {\n\t\t\t\t\tint ebx = *esp ;\n\t\t\t\t\tif (ebx == FORCHK)\n\t\t\t\t\t    {\n\t\t\t\t\t\tvoid *forptr = *(void **)(esp + 9 + STRIDE) ;\n\t\t\t\t\t\tesp += 9 + 2 * STRIDE ;\n\t\t\t\t\t\tif (al == TFOR)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tif ((ptr == NULL) || (ptr == forptr))\n\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\twsurch (TNEXT, TFOR, level) ;\n\t\t\t\t\t\t\t\tbreak ;\n\t\t\t\t\t\t\t    }\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tlevel++ ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t    }\n\n\t\t\t\t\telse if (ebx == REPCHK)\n\t\t\t\t\t    {\n\t\t\t\t\t\tesp += 1 + STRIDE ;\n\t\t\t\t\t\tif (al == TREPEAT)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\twsurch (TUNTIL, TREPEAT, level) ;\n\t\t\t\t\t\t\tbreak ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t    }\n\n\t\t\t\t\telse if (ebx == WHICHK)\n\t\t\t\t\t    {\n\t\t\t\t\t\tesp += 1 + STRIDE ;\n\t\t\t\t\t\tif (al == TWHILE)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\twsurch (TENDWHILE, TWHILE, level) ;\n\t\t\t\t\t\t\tbreak ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t    }\n\n\t\t\t\t\telse if (ebx == ONCHK)\n\t\t\t\t\t    {\n\t\t\t\t\t\tesp++ ;\n\t\t\t\t\t\tonersp = *(heapptr **)esp ;\n\t\t\t\t\t\tesp += STRIDE ;\n\t\t\t\t\t\terrtrp = *esp++ ;\n\t\t\t\t\t    }\n\n\t\t\t\t\telse if (ebx == LDCHK)\n\t\t\t\t\t    {\n\t\t\t\t\t\tesp++ ;\n\t\t\t\t\t\tdatptr = *esp++ ;\n\t\t\t\t\t    }\n\t\t\t\t\telse\n\t\t\t\t\t    {\n\t\t\t\t\t\tif ((al == TFOR) && (level > 1))\n\t\t\t\t\t\t\terror (33, NULL) ; // 'Can't match FOR'\n\t\t\t\t\t\tif (al == TFOR)\n\t\t\t\t\t\t\terror (32, NULL) ; // 'Not in a FOR loop'\n\t\t\t\t\t\tif (al == TREPEAT)\n\t\t\t\t\t\t\terror (43, NULL) ; // 'Not in a REPEAT loop'\n\t\t\t\t\t\tif (al == TWHILE)\n\t\t\t\t\t\t\terror (46, NULL) ; // 'Not in a WHILE loop'\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\t\t\t\t    }\n\t\t\t\t    }\n\t\t\t\tskip () ;\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/************************************ SWAP *************************************/\n\n\t\t\tcase TSWAP:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedSWAP();\n\t\tvoid __attribute__ ((noinline)) nestedSWAP(void)\n#endif\n\t\t\t\t{\n\t\t\t\tvoid *ptr1, *ptr2 ;\n\t\t\t\tunsigned char type1, type2 ;\n\t\t\t\tunsigned int n ;\n\t\t\t\tptr1 = getvar (&type1) ;\n\t\t\t\tcomma () ;\n\t\t\t\tnxt () ;\n\t\t\t\tptr2 = getvar (&type2) ;\n\t\t\t\tif ((ptr1 == NULL) || (ptr2 == NULL))\n\t\t\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\t\t\tif ((type1 == 0) || (type2 == 0))\n\t\t\t\t\terror (26, NULL) ; // 'No such variable'\n\t\t\t\tif (type1 != type2)\n\t\t\t\t\terror (6, NULL) ; // 'Type mismatch'\n\t\t\t\tif ((type1 == 36) || (type1 & BIT6))\n\t\t\t\t\tn = sizeof(size_t) ; // whole array or FN/PROC\n\t\t\t\telse if (type1 == 128)\n\t\t\t\t    {\n\t\t\t\t\tunsigned int t ;\n\t\t\t\t\tn = memchr (ptr1, 0x0D, 0x10000) - ptr1 + 1 ;\n\t\t\t\t\tt = memchr (ptr2, 0x0D, 0x10000) - ptr2 + 1 ;\n\t\t\t\t\tif ((n > 0x10000) || (t > 0x10000))\n\t\t\t\t\t\terror (19, NULL) ; // 'String too long'\n\t\t\t\t\tif (n < t) n = t ;\n\t\t\t\t    }\n\t\t\t\telse if (type1 == 130)\n\t\t\t\t    {\n\t\t\t\t\tunsigned int t ;\n\t\t\t\t\tn = strlen (ptr1) + 1 ;\n\t\t\t\t\tt = strlen (ptr2) + 1 ;\n\t\t\t\t\tif (n < t) n = t ;\n\t\t\t\t    }\n\t\t\t\telse\n\t\t\t\t\tn = type1 & TMASK ;\n\n\t\t\t\tif (n > ((char *)esp - (char *)zero - pfree - STACK_NEEDED))\n\t\t\t\t\terror (0, NULL) ; // No room\n\t\t\t\tmemcpy (pfree + zero, ptr1, n) ;\n\t\t\t\tmemcpy (ptr1, ptr2, n) ;\n\t\t\t\tmemcpy (ptr2, pfree + zero, n) ;\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/************************************ CASE *************************************/\n\n\t\t\tcase TCASE:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedCASE();\n\t\tvoid __attribute__ ((noinline)) nestedCASE(void)\n#endif\n\t\t\t\t{\n\t\t\t\tint level = 0 ;\n\t\t\t\tsigned char *oldesi ;\n\t\t\t\theapptr *oldesp = NULL ;\n\t\t\t\tVAR w ;\n\t\t\t\tVAR v = expr () ;\n\n\t\t\t\tif (*esi++ != TOF)\n\t\t\t\t\terror (37, NULL) ; // 'Missing OF'\n\t\t\t\tif (*esi++ != 0x0D)\n\t\t\t\t\terror (48, NULL) ; // 'OF not last'\n\t\t\t\tif (v.s.t == -1)\n\t\t\t\t\toldesp = pushs (v) ;\n\t\t\t\twhile (1)\n\t\t\t\t    {\n\t\t\t\t\tesi = nsurch (TWHEN, TOTHERWISE, TOF, TENDCASE, level) ;\n\t\t\t\t\tif (esi == NULL)\n\t\t\t\t\t\terror (47, NULL) ; // 'Missing ENDCASE'\n\t\t\t\t\toldesi = esi ;\n\t\t\t\t\tesi += 3 ;\n\t\t\t\t\tif (*esi++ != TWHEN)\n\t\t\t\t\t    {\n\t\t\t\t\t\tif (oldesp) esp = oldesp ;\n\t\t\t\t\t\tbreak ; // Not found\n\t\t\t\t\t    }\n\t\t\t\t\tdo\n\t\t\t\t\t    {\n\t\t\t\t\t\tif (oldesp)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tw = exprs () ;\n\t\t\t\t\t\t\tif ((v.s.l == w.s.l) &&\n\t\t\t\t\t\t\t    (0 == memcmp (esp, w.s.p + zero, w.s.l)))\n\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\tesp = oldesp ;\n\t\t\t\t\t\t\t\twhile (*esi == ',')\n\t\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\t\t\t\texpr () ;\n\t\t\t\t\t\t\t\t    }\n\t\t\t\t\t\t\t\tgoto xeq1 ; // Found\n\t\t\t\t\t\t\t    }\n\t\t\t\t\t\t    }\n\t\t\t\t\t\telse\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tw = exprn () ;\n\t\t\t\t\t\t\tw = math (v, '=', w) ;\n\t\t\t\t\t\t\tif (w.i.n)\n\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\twhile (*esi == ',')\n\t\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\t\t\t\texpr () ;\n\t\t\t\t\t\t\t\t    }\n\t\t\t\t\t\t\t\tgoto xeq1 ; // Found\n\t\t\t\t\t\t\t    }\n\t\t\t\t\t\t    }\n\t\t\t\t\t    }\n\t\t\t\t\twhile (*esi++ == ',') ;\n\t\t\t\t\tesi = oldesi ;\n\t\t\t\t\tesi += (int)*(unsigned char *)esi ;\n\t\t\t\t\tif (*(esi-2) == TOF)\n\t\t\t\t\t\tlevel = 1 ;\n\t\t\t\t\telse\n\t\t\t\t\t\tlevel = 0 ;\n\t\t\t\t    }\n\t\t\t    }\n\t\t\tbreak ;\n\n/******************************* TIME and TIME$ ********************************/\n\n\t\t\tcase TTIMEL:\n#ifdef CAN_SET_RTC\n\t\t\t\tif ( *esi == '$' )\n\t\t\t\t    {\n\t\t\t\t\tesi++;\n\t\t\t\t\tequals ();\n\t\t\t\t\tfixs (exprs ());\n\t\t\t\t\tputims (accs);\n\t\t\t\t\tbreak;\n\t\t\t\t    }\n#endif\n\t\t\t\tequals () ;\n\t\t\t\tputime (expri()) ;\n\t\t\t\tbreak ;\n\n/************************************ WAIT *************************************/\n\n\t\t\tcase TWAIT:\n\t\t\t\t{\n\t\t\t\tint n ;\n\t\t\t\tif (termq ())\n\t\t\t\t\tn = -1 ;\n\t\t\t\telse\n\t\t\t\t\tn = expri () ;\n\t\t\t\toswait (n) ;\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/*********************************** REPORT ************************************/\n\n\t\t\tcase TREPORT:\n\t\t\t\treport () ;\n\t\t\t\ttext (accs) ;\n\t\t\t\tbreak ;\n\n/*********************************** MOUSE *************************************/\n\n\t\t\tcase TMOUSE:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedMOUSE();\n\t\tvoid __attribute__ ((noinline)) nestedMOUSE(void)\n#endif\n\t\t\t\t{\n\t\t\t\tint b, x, y ;\n\t\t\t\tVAR v ;\n\t\t\t\tvoid *ptr ;\n\t\t\t\tunsigned char type ;\n\n\t\t\t\tswitch (*esi++)\n\t\t\t\t    {\n\t\t\t\t\tcase TON:\n\t\t\t\t\t\tif (termq ())\n\t\t\t\t\t\t\tb = 0 ;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tb = expri () ;\n\t\t\t\t\t\tmouseon (b) ;\n\t\t\t\t\t\tbreak ;\n\n\t\t\t\t\tcase TOFF:\n\t\t\t\t\t\tmouseoff () ;\n\t\t\t\t\t\tbreak ;\n\n\t\t\t\t\tcase TTO:\n\t\t\t\t\t\tx = expri () ;\n\t\t\t\t\t\tcomma () ;\n\t\t\t\t\t\ty = expri () ;\n\t\t\t\t\t\tmouseto (x, y) ;\n\t\t\t\t\t\tbreak ;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\tesi-- ;\n\t\t\t\t\tv.i.t = 0 ;\n\t\t\t\t\tmouse (&x, &y, &b) ;\n\t\t\t\t\tptr = getput (&type) ;\n\t\t\t\t\tif (type >= 64)\n\t\t\t\t\t\terror (50, NULL) ; // 'Bad MOUSE variable'\n\t\t\t\t\tv.i.n = x ;\n\t\t\t\t\tstoren (v, ptr, type) ;\n\n\t\t\t\t\tcomma () ;\n\t\t\t\t\tnxt () ;\n\t\t\t\t\tptr = getput (&type) ;\n\t\t\t\t\tif (type >= 64)\n\t\t\t\t\t\terror (50, NULL) ; // 'Bad MOUSE variable'\n\t\t\t\t\tv.i.n = y ;\n\t\t\t\t\tstoren (v, ptr, type) ;\n\n\t\t\t\t\tcomma () ;\n\t\t\t\t\tnxt () ;\n\t\t\t\t\tptr = getput (&type) ;\n\t\t\t\t\tif (type >= 64)\n\t\t\t\t\t\terror (50, NULL) ; // 'Bad MOUSE variable'\n\t\t\t\t\tv.i.n = b ;\n\t\t\t\t\tstoren (v, ptr, type) ;\n\t\t\t\t    }\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/***********************************  SYS  *************************************/\n\n\t\t\tcase TSYS:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedSYS();\n\t\tvoid __attribute__ ((noinline)) nestedSYS(void)\n#endif\n\t\t\t\t{\n\t\t\t\tint ni = 0, nf = 0 ;\n\t\t\t\theapptr *oldesp = esp ;\n\t\t\t\tVAR v = expr () ;\n\t\t\t\tlong long (*func) (size_t, size_t, size_t, size_t, size_t, size_t, \n\t\t\t\t\t\t   size_t, size_t, size_t, size_t, size_t, size_t) ;\n\t\t\t\tPARM parm ;\n\t\t\t\tvoid *ptr = NULL ;\n\t\t\t\tunsigned char type = 0 ;\n\t\t\t\tparm.f[0] = -1.7e308 ;\n\t\t\t\tparm.i[0] = 0 ;\n\n\t\t\t\tif (v.s.t == -1)\n\t\t\t\t    {\n\t\t\t\t\tif (v.s.l > 255)\n\t\t\t\t\t\terror (19, NULL) ; // 'String too long'\n\t\t\t\t\tmemcpy (accs, v.s.p + zero, v.s.l) ;\n\t\t\t\t\t*(accs + v.s.l) = 0 ;\n\t\t\t\t\tfunc = sysadr (accs) ;\n\t\t\t\t\tif (func == NULL)\n\t\t\t\t\t\terror (51, NULL) ; // 'No such system call'\n\t\t\t\t    }\n\t\t\t\telse if (v.i.t == 0)\n\t\t\t\t\tfunc = (void *)(size_t) v.i.n ;\n\t\t\t\telse\n\t\t\t\t\tfunc = (void *)(size_t) v.f ;\n\n#ifndef __EMSCRIPTEN__\n\t\t\t\tif ((size_t)func < 0x10000)\n\t\t\t\t\terror (8, NULL) ; // 'Address out of range'\n#endif\n\n\t\t\t\twhile (*esi == ',')\n\t\t\t\t    {\n\t\t\t\t\tesi++ ;\n\t\t\t\t\tv = expr () ;\n\t\t\t\t\tif (v.s.t == -1)\n\t\t\t\t\t    {\n\t\t\t\t\t\tif ((v.s.l != 0) && \n\t\t\t\t\t\t\t(*(v.s.p + v.s.l + (char *) zero - 1) == 0))\n\t\t\t\t\t\t\tparm.i[ni++] = (size_t) (v.s.p + zero) ; // use in-situ\n\t\t\t\t\t\telse\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tint n = (v.s.l + 4) & -4 ;\n\t\t\t\t\t\t\tif (n > ((char *)esp-(char *)zero-pfree-STACK_NEEDED))\n\t\t\t\t\t\t\t\terror (0, NULL) ; // 'No room'\n\t\t\t\t\t\t\tesp -= n >> 2 ;\n\t\t\t\t\t\t\tmemcpy ((char *)esp, v.s.p + zero, v.s.l) ;\n\t\t\t\t\t\t\tmemset ((char *)esp + v.s.l, 0, 1) ;\n\t\t\t\t\t\t\tparm.i[ni++] = (size_t) esp ;\n\t\t\t\t\t\t    }\n#ifdef _WIN32\n\t\t\t\t\t\tif (nf < 8) nf++ ;\n#endif\n\t\t\t\t\t    }\n\t\t\t\t\telse if (v.i.t == 0)\n\t\t\t\t\t    {\n\t\t\t\t\t\tparm.i[ni++] = v.i.n ;\n#ifdef _WIN32\n\t\t\t\t\t\tif (nf < 8) nf++ ;\n#endif\n\t\t\t\t\t    }\n\t\t\t\t\telse\n\t\t\t\t\t    {\n\t\t\t\t\t\tparm.f[nf++] = (double) v.f ;\n#if defined(__x86_64__) || defined(__aarch64__) || defined(ARMHF)\n#ifdef _WIN32\n\t\t\t\t\t\tunion { double f ; long long i ; } u ;\n\t\t\t\t\t\tu.f = v.f ;\n\t\t\t\t\t\tparm.i[ni++] = u.i ;\n#endif\n#else\n\t\t\t\t\t\tunion\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tdouble f ;\n\t\t\t\t\t\t\tstruct { int l ; int h ; } i ;\n\t\t\t\t\t\t    } u ;\n\t\t\t\t\t\tu.f = v.f ;\n\t\t\t\t\t\tparm.i[ni++] = u.i.l ;\n\t\t\t\t\t\tparm.i[ni++] = u.i.h ;\n#endif\n\t\t\t\t\t    }\n\t\t\t\t\tif ((ni > 16) || (nf > 8)) \n\t\t\t\t\t\terror (31, NULL) ; // 'Incorrect arguments'\n\t\t\t\t    }\n\n\t\t\t\twhile (ni)\n\t\t\t\t    {\n\t\t\t\t\tif (parm.i[--ni] == memhdc)\n\t\t\t\t\t\tbreak ; \n\t\t\t\t    }\n\n\t\t\t\tif (*esi == TTO)\n\t\t\t\t    {\n\t\t\t\t\tesi++ ;\n\t\t\t\t\tnxt () ;\n\t\t\t\t\tptr = getput (&type) ;\n\t\t\t\t    }\n\n\t\t\t\tv.i.t = 0 ;\n\t\t\t\tif (type == 8)\n\t\t\t\t    {\n\t\t\t\t\tv.i.t = 1 ; // ARM\n\t\t\t\t\tv.f = fltcall_ (func, &parm) ;\n\t\t\t\t    }\n\t\t\t\telse if (parm.i[ni] == memhdc)\n\t\t\t\t\tv.i.n = guicall (func, &parm) ;\n\t\t\t\telse\n\t\t\t\t\tv.i.n = apicall_ (func, &parm) ;\n\n\t\t\t\tesp = oldesp ;\n\n\t\t\t\tif ((type != 40) && (type != 8))\n\t\t\t\t\tv.i.n = (int) v.i.n ;\n\n\t\t\t\tif (ptr)\n\t\t\t\t\tstoren (v, ptr, type) ;\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/*********************************** OSCLI *************************************/\n\n\t\t\tcase TOSCLI:\n\t\t\t\tfixs (exprs ()) ;\n\t\t\t\toscli (accs) ;\n\t\t\t\tbreak ;\n\n/*********************************** SOUND *************************************/\n\n\t\t\tcase TSOUND:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedSOUND();\n\t\tvoid __attribute__ ((noinline)) nestedSOUND(void)\n#endif\n\t\t\t\t{\n\t\t\t\tif (*esi == TOFF)\n\t\t\t\t    {\n\t\t\t\t\tesi++ ;\n\t\t\t\t\tquiet () ;\n\t\t\t\t    }\n\t\t\t\telse\n\t\t\t\t    {\n\t\t\t\t\tshort chan = expri () ;\n\t\t\t\t\tcomma () ;\n\t\t\t\t\tsigned char ampl = expri () ;\n\t\t\t\t\tcomma () ;\n\t\t\t\t\tunsigned char pitch = expri () ;\n\t\t\t\t\tcomma () ;\n\t\t\t\t\tunsigned char duration = expri () ;\n\t\t\t\t\tsound (chan, ampl, pitch, duration) ;\n\t\t\t\t    }\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/********************************** ENVELOPE ***********************************/\n\n\t\t\tcase TENVEL:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedENVEL();\n\t\tvoid __attribute__ ((noinline)) nestedENVEL(void)\n#endif\n\t\t\t\t{\n\t\t\t\tint n;\n\t\t\t\tsigned char envelope[14] ;\n\t\t\t\tfor (n = 0; n < 14; n++)\n\t\t\t\t    {\n\t\t\t\t\tenvelope[n] = expri () ;\n\t\t\t\t\tif (n != 13)\n\t\t\t\t\t\tcomma () ;\n\t\t\t\t    }\n\t\t\t\tenvel (envelope) ;\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/************************************* DIM *************************************/\n\n\t\t\tcase TDIM:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedDIM();\n\t\tvoid __attribute__ ((noinline)) nestedDIM(void)\n#endif\n\t\t\t    {\n\t\t\t\twhile (1)\n\t\t\t\t    {\n\t\t\t\t\tvoid *ebp ;\n\t\t\t\t\tunsigned int ebx = 0 ; // data size\n\t\t\t\t\tunsigned int ecx = 0 ; // dims count\n\t\t\t\t\tchar *edx ; // heap pointer\n\t\t\t\t\tunsigned char type = 0 ;\n\t\t\t\t\tsigned char *oldesi ;\n\n\t\t\t\t\tnxt () ;\n\t\t\t\t\toldesi = esi ;\n\t\t\t\t\tebp = getdim (&type) ;\n\t\t\t\t\tif (ebp == NULL)\n\t\t\t\t\t\terror (10, NULL) ; // 'Bad DIM statement'\n\t\t\t\t\tcheck () ;\n\n\t\t\t\t\t// Get array dimensions:\n\t\t\t\t\tif (*esi == '(') // Array or structure array ?\n\t\t\t\t\t    {\n\t\t\t\t\t\tdo\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tint n ;\n\t\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\t\tn = expri () ;\n\t\t\t\t\t\t\tif (n < 0)\n\t\t\t\t\t\t\t\terror (10, NULL) ; // 'Bad DIM statement'\n\t\t\t\t\t\t\t*--esp = (n + 1) ;\n\t\t\t\t\t\t\tecx += 1 ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\twhile (*esi == ',') ;\n\t\t\t\t\t\tbraket () ;\n\t\t\t\t\t    }\n\n\t\t\t\t\tedx = pfree + (char *) zero ; // Must be after getdim and expri!\n\n\t\t\t\t\t// Build structure descriptor:\n\t\t\t\t\tif ((type == STYPE) && (*esi != '.'))\n\t\t\t\t\t    {\n\t\t\t\t\t\tvolatile char *edi = pfree + (char *) zero ; // Emscripten\n\t\t\t\t\t\tedx += 4 ; // room for structure size\n\t\t\t\t\t\tebx = structure ((void **)&edx) ; \n\t\t\t\t\t\tISTORE(edi, ebx) ; // structure size\n\t\t\t\t\t    }\n\n\t\t\t\t\t// Build array descriptor above structure descriptor:\n\t\t\t\t\tif (ecx != 0)\n\t\t\t\t\t    {\n\t\t\t\t\t\tint i ;\n\t\t\t\t\t\tchar *edi = pfree + (char *) zero ;\n\t\t\t\t\t\tif ((edx > edi) && (edx < (char *)esp))\n\t\t\t\t\t\t\tedi = edx ;\n\t\t\t\t\t\telse if ((edx == edi) && (ILOAD(ebp) != 1))\n\t\t\t\t\t\t\tedi = (char *) ((intptr_t) edi | 3) ; // Align\n\n\t\t\t\t\t\ttype |= BIT6 ; // Flag array\n\t\t\t\t\t\tebx += (type & TMASK) ;\n\t\t\t\t\t\t*edi++ = (unsigned char) ecx ;\n\t\t\t\t\t\tfor (i = ecx-1; i >= 0; i--)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tunsigned int eax = *(int *)(esp + i) ;\n\t\t\t\t\t\t\tISTORE(edi, eax) ;\n\t\t\t\t\t\t\tedi += 4 ;\n#if !(defined(__GNUC__) && (__GNUC__ >= 7) || defined(__clang__) && (__clang_major__ >= 4))\n\t\t\t\t\t\t\tebx *= eax ;\n#else\n\t\t\t\t\t\t\tif (__builtin_umul_overflow (eax, ebx, &ebx))\n\t\t\t\t\t\t\t\terror (11, NULL) ; // 'DIM space'\n#endif\n\t\t\t\t\t\t    }\n\t\t\t\t\t\tesp += ecx ;\n\t\t\t\t\t\tecx = ecx * 4 + 1 ; // size of array descriptor\n\t\t\t\t\t    }\n\n\t\t\t\t\t// Support DIM a%(100) 100\n\n\t\t\t\t\tif ((ecx != 0) && (!termq ()) && (*esi != ','))\n\t\t\t\t\t    {\n\t\t\t\t\t\tebx = 0 ;\n\t\t\t\t\t\tecx = 0 ;\n\t\t\t\t\t\tesi = oldesi ;\n\t\t\t\t\t\tebp = getvar (&type) ;\n\t\t\t\t\t\tif (ebp == NULL)\n\t\t\t\t\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\t\t\t\t\tif (type == 0)\n\t\t\t\t\t\t\terror (26, NULL) ; // 'No such variable'\n\t\t\t\t\t    }\n\n\t\t\t\t\t// Complete DIM processing:\n\t\t\t\t\t// ebx = total size of data (excludes descriptors)\n\t\t\t\t\t// ecx = size of array descriptor (0 if no array)\n\t\t\t\t\t// edx = top of structure descriptor (< pfree if tagged)\n\t\t\t\t\t// if (edx < pfree) edx is base (not top) of descriptor!\n\t\t\t\t\t// ebp = varptr (*ebp == 1 for PRIVATE)\n\t\t\t\t\t// type = type (BIT4 set if structure, BIT6 set if array)\n\n\t\t\t\t\t// ------ Just allocate memory from heap or stack ------\n\n\t\t\t\t\tif ((ebx == 0) && (ecx == 0))\n\t\t\t\t\t    {\n\t\t\t\t\t\tint n ;\n\t\t\t\t\t\tVAR v ;\n\n\t\t\t\t\t\tif ((type & (BIT6 + BIT7)) || (type < 4))\n\t\t\t\t\t\t\terror (10, NULL) ; // 'Bad DIM statement\n\t\t\t\t\t\tif (nxt () == TLOCAL)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\t\tn = expri () + 1 ;\n\t\t\t\t\t\t\tif (n < 0)\n\t\t\t\t\t\t\t\terror (10, NULL) ; // 'Bad DIM'\n\t\t\t\t\t\t\tif (n > 0)\n\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\tisloc () ;\n\t\t\t\t\t\t\t\tn = (n + 7) & -8 ;\n\t\t\t\t\t\t\t\tif (n > ((char *)esp - (char *)zero - pfree - STACK_NEEDED))\n\t\t\t\t\t\t\t\t\terror (0, NULL) ; // No room\n\t\t\t\t\t\t\t\tesp -= (n >> 2) ;\n\t\t\t\t\t\t\t\tedx = (char *) esp ;\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t*--esp = n ;\n\t\t\t\t\t\t\t\tesp -= STRIDE ; *(void **)esp = NULL ; // 'data'\n\t\t\t\t\t\t\t\tesp -= STRIDE ; *(void **)esp = NULL ; // 'desc'\n\t\t\t\t\t\t\t\tesp -= STRIDE ; *(void **)esp = NULL ; // 'varptr'\n\t\t\t\t\t\t\t\t*--esp = 0 ; // 'type'\n\t\t\t\t\t\t\t\t*--esp = DIMCHK ;\n\t\t\t\t\t\t\t    }\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tedx = (char *) esp ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\telse\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tn = expri () + 1 ;\n\t\t\t\t\t\t\tif (n < 0)\n\t\t\t\t\t\t\t\terror (10, NULL) ; // 'Bad DIM'\n\t\t\t\t\t\t\tedx = pfree + (char *) zero ;\n\t\t\t\t\t\t\tif ((edx + n + STACK_NEEDED) > (char*) esp)\n\t\t\t\t\t\t\t\terror (11, NULL) ; // 'DIM space'\n\t\t\t\t\t\t\tpfree += n ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\tmemset (edx, 0, n) ;\n\t\t\t\t\t\tv.i.t = 0 ;\n\t\t\t\t\t\tv.i.n = (size_t) edx ;\n\t\t\t\t\t\tstoren (v, ebp, type) ;\n\t\t\t\t\t    }\n\n\t\t\t\t\t// -------- Normal or PRIVATE DIM (on heap) -----------\n\n\t\t\t\t\telse if (ILOAD(ebp) == 0)\n\t\t\t\t\t    {\n\t\t\t\t\t\tchar *edi = pfree + (char *) zero ;\n\t\t\t\t\t\tif ((edx < edi) || (edx > (char *) esp))\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tedi = edx ;  // tag structure\n\t\t\t\t\t\t\tedx = pfree + (char *) zero ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\telse if (edx == edi)\n\t\t\t\t\t\t\tedx = (char *) ((intptr_t) edx | 3) ; // Align\n\n\t\t\t\t\t\tif (ecx == 0)\n\t\t\t\t\t\t\tCSTORE(ebp, edi) ; // no array\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tCSTORE(ebp, edx) ; // array\n\n\t\t\t\t\t\tedx += ecx ; // add in array descriptor\n\t\t\t\t\t\tif (type & 0x10)\n\t\t\t\t\t\t\twhile ((size_t)edx & 7)\n\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\tecx++ ;\n\t\t\t\t\t\t\t\tedx++ ;\n\t\t\t\t\t\t\t    }\n\n\t\t\t\t\t\tif ((edx + ebx + STACK_NEEDED) > (char *) esp)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tCSTORE(ebp, 0) ; \n\t\t\t\t\t\t\terror (11, NULL) ; // 'DIM space'\n\t\t\t\t\t\t    }\n\n\t\t\t\t\t\tpfree = edx + ebx - (char *) zero ;\n\n\t\t\t\t\t\tif (type == (STYPE + 0x40)) // structure array ?\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tchar *tmp = edx - ecx ; \n\t\t\t\t\t\t\tint eax = arrlen ((void **)&tmp) ;\n\t\t\t\t\t\t\tedx += (2 * sizeof(size_t)) * eax ; // 8 or 16\n\t\t\t\t\t\t\twhile (eax--)\n\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\tVSTORE(tmp, edi) ; // struct fmt\n\t\t\t\t\t\t\t\ttmp += sizeof(void*) ;\n\t\t\t\t\t\t\t\tVSTORE(tmp, edx) ; // struct data\n\t\t\t\t\t\t\t\ttmp += sizeof(void*) ;\n\t\t\t\t\t\t\t\tedx += ILOAD(edi) ;\n\t\t\t\t\t\t\t    }\n\t\t\t\t\t\t\tebx = edx - tmp ;\n\t\t\t\t\t\t\tedx = tmp ;\n\t\t\t\t\t\t    }\n\n\t\t\t\t\t\tif (ebx)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tmemset (edx, 0, ebx) ;\n\t\t\t\t\t\t\tif (type == STYPE)\n\t\t\t\t\t\t\t\tVSTORE(ebp + sizeof(void*), edx) ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t    }\n\n\t\t\t\t\t// --------------- LOCAL DIM (on stack) -----------------\n\n\t\t\t\t\telse if (VLOAD(ebp) == (void *)1)\n\t\t\t\t\t    {\n\t\t\t\t\t\tint n ;\n\t\t\t\t\t\tchar *edi = pfree + (char *) zero ;\n\t\t\t\t\t\tint eax = 0 ;\n\n\t\t\t\t\t\tif ((edx > edi) && (edx < (char *)esp))\n\t\t\t\t\t\t\teax = edx - edi ; // size of struct desc\n\t\t\t\t\t\tif ((pfree + (char *) zero + 2*(eax + ecx) + ebx + STACK_NEEDED)\n\t\t\t\t\t\t\t\t> (char *)esp)\n\t\t\t\t\t\t\terror (11, NULL) ; // 'DIM space'\n\n\t\t\t\t\t\tn = (ebx + 7) & -8 ;\t // data size \n\t\t\t\t\t\tedi = (char *) esp - n ; // data pointer\n\t\t\t\t\t\tn += (eax + ecx + 7) & -8 ; // add descriptors\n\t\t\t\t\t\tesp -= n >> 2 ;\t// make space on stack\n\n\t\t\t\t\t\tif (ecx == 0)\n\t\t\t\t\t\t\tCSTORE(ebp, edi - eax) ; // no array\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tCSTORE(ebp, edi - ecx) ; // array\n\n\t\t\t\t\t\tif (eax)\n\t\t\t\t\t\t\tfixup (pfree + zero, edi - eax - ecx - pfree - (char *) zero) ;\n\t\t\t\t\t\telse if (ecx == 0)\n\t\t\t\t\t\t\tCSTORE(ebp, edx) ; // tagged structure\n\n\t\t\t\t\t\tmemcpy (edi - eax - ecx, pfree + zero, eax + ecx) ; // copy descriptors\n\n\t\t\t\t\t\tif ((edx > (pfree + (char *) zero)) && (edx < (char*) esp))\n\t\t\t\t\t\t\tedx = edi - eax - ecx ;\n\n\t\t\t\t\t\tif (type == (STYPE + 0x40)) // structure array ?\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tchar *tmp = VLOAD(ebp) ; \n\t\t\t\t\t\t\tint eax = arrlen ((void **)&tmp) ;\n\t\t\t\t\t\t\tedi += (2 * sizeof(size_t)) * eax ; // 8 or 16\n\t\t\t\t\t\t\twhile (eax--)\n\t\t\t\t\t\t\t    {\n\t\t\t\t\t\t\t\tVSTORE(tmp, edx) ; // struct fmt\n\t\t\t\t\t\t\t\ttmp += sizeof(void*) ;\n\t\t\t\t\t\t\t\tVSTORE(tmp, edi) ; // struct data\n\t\t\t\t\t\t\t\ttmp += sizeof(void*) ;\n\t\t\t\t\t\t\t\tedi += ILOAD(edx) ;\n\t\t\t\t\t\t\t    }\n\t\t\t\t\t\t\tebx = edi - tmp ;\n\t\t\t\t\t\t\tedi = tmp ;\n\t\t\t\t\t\t    }\n\n\t\t\t\t\t\t*--esp = n ;\n\t\t\t\t\t\tesp -= STRIDE ;\n\t\t\t\t\t\t*(void **)esp = edi ; // data\n\t\t\t\t\t\tesp -= STRIDE ;\n\t\t\t\t\t\t*(void **)esp = VLOAD(ebp) ;\n\t\t\t\t\t\tesp -= STRIDE ;\n\t\t\t\t\t\t*(void **)esp = ebp ; // varptr\n\t\t\t\t\t\t*--esp = (int)type ;\n\t\t\t\t\t\t*--esp = DIMCHK ;\n\n\t\t\t\t\t\tif (ebx)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tmemset (edi, 0, ebx) ;\n\t\t\t\t\t\t\tif (type == STYPE)\n\t\t\t\t\t\t\t\tVSTORE(ebp + sizeof(void*), edi) ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t    }\n\n\t\t\t\t\t// ------ Re-DIM an existing array or structure ------\n\n\t\t\t\t\telse // compare descriptors to check same dimensions \n\t\t\t\t\t    {\n\t\t\t\t\t\tchar *edi = VLOAD(ebp) ; // old pointer\n\t\t\t\t\t\tif (edx < (pfree + (char *) zero))\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tchar *eax = edi ;\n\t\t\t\t\t\t\tif (ecx)\n\t\t\t\t\t\t\t\teax = VLOAD(edi + ecx) ;\n\t\t\t\t\t\t\tif (eax != edx)\n\t\t\t\t\t\t\t\terror (10, NULL) ; // 'Bad DIM'\n\t\t\t\t\t\t\tedx = pfree + zero ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\telse if (edx > (pfree + (char *) zero))\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tif (ecx)\n\t\t\t\t\t\t\t\tedi -= edx - pfree - (char *) zero ;\n\t\t\t\t\t\t\tecx += edx - pfree - (char *) zero ;\n\t\t\t\t\t\t\tfixup (pfree + zero, edi - pfree - (char *) zero) ;\n\t\t\t\t\t\t\tedx = pfree + zero ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tedx = (char *) ((intptr_t) edx | 3) ; // Align3\n\n\t\t\t\t\t\tif ((ecx != 0) && memcmp (edx, edi, ecx))\n\t\t\t\t\t\t\terror (10, NULL) ; // 'Bad DIM statement'\n\t\t\t\t\t    }\n\n\t\t\t\t\tif (nxt () != ',')\n\t\t\t\t\t\tbreak ;\n\t\t\t\t\tesi++ ;\n\t\t\t\t    }\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/*********************************** Label *************************************/\n\n\t\t\tcase '(':\n\t\t\t\twhile ((*esi != 0x0D) && (*esi++ != ')')) ;\n\t\t\t\tbreak ;\n\n/******************************* Star command **********************************/\n\n\t\t\tcase '*':\n\t\t\t\toscli ((char *) esi) ;\n\t\t\t\tesi = (signed char*) memchr ((char *) esi, 0x0D, 255) ;\n\t\t\t\tbreak ;\n\n/********************************* Assembler ***********************************/\n\n\t\t\tcase '[':\n\t\t\t\tassemble () ;\n\t\t\t\tbreak ;\n\n/******************************** End of Line **********************************/\n\n\t\t\tcase 0x0D:\n\t\t\t\tesi = tmpesi + 1 ;\n\t\t\t\tnewlin () ;\n\t\t\t\tal = *esi ;\n\t\t\t\tif (al == TELSE)\n\t\t\t\t    {\n\t\t\t\t\tesi -= 3 ;\n\t\t\t\t\tesi = nsurch (TENDIF, 0, TTHEN, TENDIF, 0) ;\n\t\t\t\t\tif (esi == NULL)\n\t\t\t\t\t\terror (49, NULL) ; // 'Missing ENDIF'\n\t\t\t\t\tesi += 3 ;\n\t\t\t\t    }\n\t\t\t\telse if ((al == TWHEN) || (al == TOTHERWISE))\n\t\t\t\t    {\n\t\t\t\t\tesi -= 3 ;\n\t\t\t\t\tesi = nsurch (TENDCASE, 0, TOF, TENDCASE, 0) ;\n\t\t\t\t\tif (esi == NULL)\n\t\t\t\t\t\terror (47, NULL) ; // 'Missing ENDCASE'\n\t\t\t\t\tesi += 3 ;\n\t\t\t\t    }\n\t\t\t\telse if (al == '\\\\')\n\t\t\t\t    {\n\t\t\t\t\tif (al != *(esi-5))\n\t\t\t\t\t\terror (16, NULL) ; // Syntax error\n\t\t\t\t\tesi = (signed char*) memchr ((const char *) esi, 0x0D, 255) ;\n\t\t\t\t    }\n\t\t\t\tbreak ;\n\n/*********************************** LEFT$ *************************************/\n/********************************** RIGHT$ *************************************/\n/*********************************** MID$  *************************************/\n\n\t\t\tcase TLEFT:\n\t\t\tcase TRIGHT:\n\t\t\tcase TMID:\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tnestedSLICE();\n\t\tvoid __attribute__ ((noinline)) nestedSLICE(void)\n#endif\n\t\t\t\t{\n\t\t\t\tVAR v,r ;\n\t\t\t\tint n = 1, s = 0 ;\n\t\t\t\tunsigned char type ;\n\t\t\t\tvoid *ptr = getvar (&type) ;\n\t\t\t\tif (ptr == NULL)\n\t\t\t\t\terror (16, NULL) ; // 'Syntax error'\n\t\t\t\tif (type == 0)\n\t\t\t\t\terror (26, NULL) ; // 'No such variable'\n\t\t\t\tif (type & BIT6)\n\t\t\t\t\terror (14, NULL) ; // 'Bad use of array'\n\t\t\t\tif (!(type & BIT7))\n\t\t\t\t\terror (6, NULL) ;  // 'Type mismatch'\n\n\t\t\t\tif (*esi == ',')\n\t\t\t\t    {\n\t\t\t\t\tesi++ ;\n\t\t\t\t\tn = expri () ;\n\t\t\t\t\tif (al == TMID)\n\t\t\t\t\t    {\n\t\t\t\t\t\ts = n - 1 ;\n\t\t\t\t\t\tn = 0x7FFFFFFF ;\n\t\t\t\t\t\tif (*esi == ',')\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tesi++ ;\n\t\t\t\t\t\t\tn = expri () ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t    }\n\t\t\t\t    }\n\t\t\t\telse\n\t\t\t\t    {\n\t\t\t\t\tif (al == TMID)\n\t\t\t\t\t\terror (16, NULL) ; // Syntax error\n\t\t\t\t\tif (al == TLEFT)\n\t\t\t\t\t\tn = -1 ;\n\t\t\t\t    }\n\n\t\t\t\tv = loads (ptr, type) ; // simply to find string length\n\t\t\t\tbraket () ;\n\t\t\t\tequals () ;\n\t\t\t\tr = exprs () ;\n\n\t\t\t\tif (n == -1)\n\t\t\t\t\tn = v.s.l - 1 ;\n\t\t\t\tif (n > (int) r.s.l) // careful with signedness!\n\t\t\t\t\tn = r.s.l ;\n\t\t\t\tif ((s >= 0) && (s < v.s.l) && (n != 0))\n\t\t\t\t    {\n\t\t\t\t\tif (al == TRIGHT)\n\t\t\t\t\t\ts = (unsigned int)v.s.l - n ;\n\t\t\t\t\tif (s < 0)\n\t\t\t\t\t\ts = 0 ;\n\t\t\t\t\tif (n > ((unsigned int)v.s.l - s))\n\t\t\t\t\t\tn = (unsigned int)v.s.l - s ;\n\n\t\t\t\t\tmemcpy (v.s.p + s + zero, r.s.p + zero, n) ;\n\t\t\t\t    }\n\t\t\t\t}\n\t\t\t\tbreak ;\n\n/************************************* LET *************************************/\n\n\t\t\tdefault:\n\t\t\t\tesi = tmpesi ;\n\t\t\tcase TLET:\n\t\t\t    {\n\t\t\t\tvoid *ptr ;\n\t\t\t\tunsigned char type ;\n\n\t\t\t\tptr = getput (&type) ;\n\t\t\t\tif ((type & (BIT4 | BIT6)) == 0) // scalar\n\t\t\t\t    {\n\t\t\t\t\tif (type < 128)\n\t\t\t\t\t\tassign (ptr, type) ; // scalar numeric\n\t\t\t\t\telse\n\t\t\t\t\t \tassigns (ptr, type) ; // scalar string\n\t\t\t\t\tbreak ;\n\t\t\t\t    }\n\n#if defined (REDUCE_STACK_SIZE) && defined(__GNUC__) && !defined(__llvm__)\n\t\tauto void nestedLET(void);\n\t\tnestedLET();\n\t\tvoid __attribute__ ((noinline)) nestedLET(void)\n#endif\n\t\t\t\t{\n\t\t\t\tif ((type & BIT6) == 0) // structure\n\t\t\t\t    {\n\t\t\t\t\tint len, srclen ;\n\t\t\t\t\tvoid *srcptr, *fmt, *srcfmt ;\n\t\t\t\t\tunsigned char srctype ;\n\t\t\t\t\tequals () ;\n\t\t\t\t\tnxt () ;\n\t\t\t\t\tsrcptr = getvar (&srctype) ;\n\t\t\t\t\tif (srcptr == NULL)\n\t\t\t\t\t\terror (56, NULL) ; // 'Bad use of structure'\n\t\t\t\t\tif (srctype == 0)\n\t\t\t\t\t\terror (26, NULL) ; // 'No such variable'\n\t\t\t\t\tif (srctype != type)\n\t\t\t\t\t\terror (6, NULL) ;  // 'Type mismatch'\n\t\t\t\t\tfmt = VLOAD(ptr) ;\n\t\t\t\t\tsrcfmt = VLOAD(srcptr) ;\n\t\t\t\t\tif ((fmt < (void *)2) || (srcfmt < (void *)2))\n\t\t\t\t\t\terror (56, NULL) ; // 'Bad use of structure'\n\t\t\t\t\tlen = ILOAD(fmt) ;\n\t\t\t\t\tsrclen = ILOAD(srcfmt) ;\n\t\t\t\t\tif (len != srclen)\n\t\t\t\t\t\terror (6, NULL) ;  // 'Type mismatch'\n\t\t\t\t\tmemcpy (VLOAD(ptr + sizeof(void *)),\n\t\t\t\t\t\tVLOAD(srcptr + sizeof(void *)), len) ;\n\t\t\t\t    }\n\n\t\t\t\telse \n\t\t\t\t    {\n\t\t\t\t\tvoid *ebp ;\n\t\t\t\t\tptr = VLOAD(ptr) ;\n\t\t\t\t\tif (ptr < (void *)2)\n\t\t\t\t\t\terror (14, NULL) ; // 'Bad use of array'\n\n\t\t\t\t\tsigned char op = nxt () ;\n\t\t\t\t\tunsigned int ecx = arrlen (&ptr) ; // number of array elements\n\t\t\t\t\tunsigned int eax = ecx * (type & TMASK) ; // array size in bytes\n\t\t\t\t\tif (eax > ((char *)esp - (char *)zero - pfree - STACK_NEEDED))\n\t\t\t\t\t\terror (0, NULL) ; // 'No room'\n\t\t\t\t\tesp -= (eax + 3) >> 2 ;\n\t\t\t\t\tebp = esp ;\n\t\t\t\t\tmemset ((char *)ebp, 0, eax) ; // Zero 'array descriptors'\n\n\t\t\t\t\tesi++ ;\n\t\t\t\t\tif (op != '=')\n\t\t\t\t\t    {\n\t\t\t\t\t\tif ((op == '+') || (op == '-') || (op == '*') || (op == '/') ||\n\t\t\t\t\t\t    (op == '^') || ((op >= TAND) && (op <= TOR)))\n\t\t\t\t\t\t\tequals () ;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\terror (4, NULL) ; // Mistake\n\t\t\t\t\t    }\n\n\t\t\t\t\tecx = expra (ebp, ecx, type) ; // Evaluate array expression\n\n\t\t\t\t\ttype &= ~BIT6 ;\n\t\t\t\t\tif (type < 128)\n\t\t\t\t\t    {\n\t\t\t\t\t\twhile (ecx--)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tmodify (loadn((void *)ebp, type), ptr, type, op) ;\n\t\t\t\t\t\t\tebp += type & TMASK ; // GCC extension\n\t\t\t\t\t\t\tptr += type & TMASK ; // GCC extension\n\t\t\t\t\t\t    }\n\t\t\t\t\t    }\n\t\t\t\t\telse\n\t\t\t\t\t    {\n\t\t\t\t\t\tVAR v = {0} ;\n\t\t\t\t\t\twhile (ecx--)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tmodifs (NLOAD(ebp), ptr, type, op) ;\n\t\t\t\t\t\t\tstores (v, ebp, type) ;\n\t\t\t\t\t\t\tebp += 8 ; // GCC extension (void has size 1)\n\t\t\t\t\t\t\tptr += 8 ; // GCC extension (void has size 1)\n\t\t\t\t\t\t    }\n\t\t\t\t\t    }\n\t\t\t\t\tesp += (eax + 3) >> 2 ;\n\t\t\t\t    }\n\t\t\t\t}\n\t\t\t    }\n\t\t    }\n\t    }\n}\n"
  },
  {
    "path": "src/bbmain.c",
    "content": "/*****************************************************************\\\n*       32-bit or 64-bit BBC BASIC Interpreter                    *\n*       (C) 2017-2025  R.T.Russell  http://www.rtrussell.co.uk/   *\n*                                                                 *\n*       The name 'BBC BASIC' is the property of the British       *\n*       Broadcasting Corporation and used with their permission,  *\n*       it is not transferrable to a forked or derived work.      *\n*                                                                 *\n*       bbmain.c: Immediate mode, error handling, variable lookup *\n*       Version 1.43a, 04-Sep-2025                                *\n\\*****************************************************************/\n\n#include <stdio.h>\n#include <stdint.h>\n#include <string.h>\n#include <setjmp.h>\n#include \"BBC.h\"\n\n// Routines in bbcmos:\nvoid oswrch (unsigned char) ;\t// Write to display or other output stream (VDU)\nvoid osline (char *) ;\t\t// Read line of input\nvoid reset (void) ;\t\t// Prepare for reporting an error\nvoid faterr (const char *) ;\t// Report a 'fatal' error message\nvoid trap (void) ;\t\t// Test for ESCape\nvoid osload (char*, void*, unsigned int) ; // Load a file to memory\nvoid ossave (char*, void*, unsigned int) ; // Save a file from memory\nint osopen (int, char *) ;\t// Open a file\nunsigned char osbget (int, int*) ; // Read a byte from a file\nvoid osshut (int) ;\t\t// Close file(s)\n\n// Routines in bbccli:\nvoid oscli (char*) ;            // Command Line Interface\n\n// Routines in bbexec:\nVAR xeq (void) ;\t\t// Execute program\nchar *secret (char *, unsigned char) ;\n\n// Routines in bbeval:\nlong long itemi (void);\t\t// Return an integer numeric item\nlong long expri (void);\t\t// Evaluate an integer numeric expression\nlong long loadi (void *, unsigned char) ;\n\n// Forward references:\nvoid *getvar (unsigned char *) ;\nvoid *putvar (void *, unsigned char *) ;\n\n// Global jump buffer:\njmp_buf env ;\n\n#ifdef __llvm__\nsigned char *esi ;\t\t// Program pointer\nheapptr *esp ;\t\t\t// Stack pointer\n#endif\n\n#ifdef PICO\nvoid *libtop ;\t\t\t// For stack overflow checking\n#endif\n\n// List of immediate mode commands:\n\nstatic const signed char comnds[] = {\n\t0x18,'A','U','T','O',\n\t0x19,'D','E','L','E','T','E',\n\t0x1A,'E','D','I','T',\n\t0x1B,'L','I','S','T',\n\t0x1C,'L','O','A','D',\n\t0x1D,'N','E','W',\n\t0x1E,'R','E','N','U','M','B','E','R',\n\t0x1F,'S','A','V','E',\n\t0x00,0x7F } ;\n\t\n// List of token values and associated keywords.\n// If a keyword is followed by a space it will only\n// match the word followed immediately by a delimiter.\n\nstatic const signed char keywds[] = {\n\tTAND,'A','N','D',\n\tTABS,'A','B','S',\n\tTACS,'A','C','S',\n\tTADVAL,'A','D','V','A','L',\n\tTASC,'A','S','C',\n\tTASN,'A','S','N',\n\tTATN,'A','T','N',\n\tTBGET,'B','G','E','T',' ',\n\tTBPUT,'B','P','U','T',' ',\n\tTBY,'B','Y',' ',\n\tTCOLOUR,'C','O','L','O','U','R',\n\tTCOLOUR,'C','O','L','O','R',\n\tTCALL,'C','A','L','L',\n\tTCASE,'C','A','S','E',\n\tTCHAIN,'C','H','A','I','N',\n\tTCHR,'C','H','R','$',\n\tTCLEAR,'C','L','E','A','R',' ',\n\tTCLOSE,'C','L','O','S','E',' ',\n\tTCLG,'C','L','G',' ',\n\tTCLS,'C','L','S',' ',\n\tTCOS,'C','O','S',\n\tTCOUNT,'C','O','U','N','T',' ',\n\tTCIRCLE,'C','I','R','C','L','E',\n\tTDATA,'D','A','T','A',\n\tTDEG,'D','E','G',\n\tTDEF,'D','E','F',\n\tTDIV,'D','I','V',\n\tTDIM,'D','I','M',\n\tTDRAW,'D','R','A','W',\n\tTENDPROC,'E','N','D','P','R','O','C',' ',\n\tTENDWHILE,'E','N','D','W','H','I','L','E',' ',\n\tTENDCASE,'E','N','D','C','A','S','E',' ',\n\tTENDIF,'E','N','D','I','F',' ',\n\tTEND,'E','N','D',' ',\n\tTENVEL,'E','N','V','E','L','O','P','E',\n\tTELSE,'E','L','S','E',\n\tTEVAL,'E','V','A','L',\n\tTERL,'E','R','L',' ',\n\tTERROR,'E','R','R','O','R',\n\tTEOF,'E','O','F',' ',\n\tTEOR,'E','O','R',\n\tTERR,'E','R','R',' ',\n\tTEXIT,'E','X','I','T',' ',\n\tTEXP,'E','X','P',\n\tTEXTR,'E','X','T',' ',\n\tTELLIPSE,'E','L','L','I','P','S','E',\n\tTFOR,'F','O','R',\n\tTFALSE,'F','A','L','S','E',' ',\n\tTFILL,'F','I','L','L',\n\tTFN,'F','N',\n\tTGOTO,'G','O','T','O',\n\tTGETS,'G','E','T','$',\n\tTGET,'G','E','T',\n\tTGOSUB,'G','O','S','U','B',\n\tTGCOL,'G','C','O','L',\n\tTHIMEMR,'H','I','M','E','M',' ',\n\tTINPUT,'I','N','P','U','T',\n\tTIF,'I','F',\n\tTINKEYS,'I','N','K','E','Y','$',\n\tTINKEY,'I','N','K','E','Y',\n\tTINT,'I','N','T',\n\tTINSTR,'I','N','S','T','R','(',\n\tTINSTALL,'I','N','S','T','A','L','L',\n\tTLINE,'L','I','N','E',\n\tTLOMEMR,'L','O','M','E','M',' ',\n\tTLOCAL,'L','O','C','A','L',\n\tTLEFT,'L','E','F','T','$','(',\n\tTLEN,'L','E','N',\n\tTLET,'L','E','T',\n\tTLOG,'L','O','G',\n\tTLN,'L','N',\n\tTMID,'M','I','D','$','(',\n\tTMODE,'M','O','D','E',\n\tTMOD,'M','O','D',\n\tTMOVE,'M','O','V','E',\n\tTMOUSE,'M','O','U','S','E',\n\tTNEXT,'N','E','X','T',\n\tTNOT,'N','O','T',\n\tTON,'O','N',\n\tTOFF,'O','F','F',' ',\n\tTOF,'O','F',' ',\n\tTORIGIN,'O','R','I','G','I','N',\n\tTOR,'O','R',\n\tTOPENIN,'O','P','E','N','I','N',\n\tTOPENOUT,'O','P','E','N','O','U','T',\n\tTOPENUP,'O','P','E','N','U','P',\n\tTOSCLI,'O','S','C','L','I',\n\tTOTHERWISE,'O','T','H','E','R','W','I','S','E',\n\tTPRINT,'P','R','I','N','T',\n\tTPAGER,'P','A','G','E',' ',\n\tTPRIVATE,'P','R','I','V','A','T','E',\n\tTPTRR,'P','T','R',' ',\n\tTPI,'P','I',' ',\n\tTPLOT,'P','L','O','T',\n\tTPOINT,'P','O','I','N','T','(',\n\tTPROC,'P','R','O','C',\n\tTPOS,'P','O','S',' ',\n\tTQUIT,'Q','U','I','T',' ',\n\tTRETURN,'R','E','T','U','R','N',' ',\n\tTREPEAT,'R','E','P','E','A','T',\n\tTREPORT,'R','E','P','O','R','T',' ',\n\tTREAD,'R','E','A','D',\n\tTREM,'R','E','M',\n\tTRUN,'R','U','N',' ',\n\tTRAD,'R','A','D',\n\tTRESTOR,'R','E','S','T','O','R','E',\n\tTRIGHT,'R','I','G','H','T','$','(',\n\tTRND,'R','N','D',' ',\n\tTRECT,'R','E','C','T','A','N','G','L','E',\n\tTSTEP,'S','T','E','P',\n\tTSGN,'S','G','N',\n\tTSIN,'S','I','N',\n\tTSQR,'S','Q','R',\n\tTSPC,'S','P','C',\n\tTSTR,'S','T','R','$',\n\tTSTRING,'S','T','R','I','N','G','$','(',\n\tTSOUND,'S','O','U','N','D',\n\tTSTOP,'S','T','O','P',' ',\n\tTSUM,'S','U','M',\n\tTSWAP,'S','W','A','P',\n\tTSYS,'S','Y','S',\n\tTTAN,'T','A','N',\n\tTTAB,'T','A','B','(',\n\tTTHEN,'T','H','E','N',\n\tTTIMER,'T','I','M','E',' ',\n\tTTINT,'T','I','N','T',\n\tTTO,'T','O',\n\tTTRACE,'T','R','A','C','E',\n\tTTRUE,'T','R','U','E',' ',\n\tTUNTIL,'U','N','T','I','L',\n\tTUSR,'U','S','R',\n\tTVDU,'V','D','U',\n\tTVAL,'V','A','L',\n\tTVPOS,'V','P','O','S',' ',\n\tTWHILE,'W','H','I','L','E',\n\tTWHEN,'W','H','E','N',\n\tTWAIT,'W','A','I','T',' ',\n\tTWIDTH,'W','I','D','T','H',\n\tTHIMEML,'H','I','M','E','M',' ',\n\tTLOMEML,'L','O','M','E','M',' ',\n\tTPAGEL,'P','A','G','E',' ',\n\tTPTRL,'P','T','R',' ',\n\tTTIMEL,'T','I','M','E',' ',\n\t0x00,0x7F} ;\n\n// Error messages:\n\nstatic char* errwds[] = {\n\t\"No room\", \t\t// 0\n\t\"Jump out of range\", \t// 1\n\t\"Bad immediate constant\", // 2\n\t\"Multiple label\", \t// 3\n\t\"Mistake\", \t\t// 4\n\t\"Missing ,\", \t\t// 5\n\t\"Type mismatch\", \t// 6\n\t\"Not in a function\", \t// 7\n\t\"Address out of range\",\t// 8\n\t\"Missing \\\"\", \t\t// 9\n\t\"Bad DIM statement\", \t// 10\n\t\"DIM space\", \t\t// 11\n\t\"Not in a FN or PROC\", \t// 12\n\t\"Not in a procedure\", \t// 13\n\t\"Bad use of array\", \t// 14\n\t\"Bad subscript\", \t// 15\n\t\"Syntax error\", \t// 16\n\t\"Escape\", \t\t// 17\n\t\"Division by zero\", \t// 18\n\t\"String too long\", \t// 19\n\t\"Number too big\", \t// 20\n\t\"Negative root\", \t// 21\n\t\"Logarithm range\", \t// 22\n\t\"Accuracy lost\", \t// 23\n\t\"Exponent range\", \t// 24\n\t\"Bad MODE\", \t\t// 25\n\t\"No such variable\", \t// 26\n\t\"Missing )\", \t\t// 27\n\t\"Bad hex or binary\", \t// 28\n\t\"No such FN/PROC\", \t// 29\n\t\"Bad call\", \t\t// 30\n\t\"Incorrect arguments\", \t// 31\n\t\"Not in a FOR loop\", \t// 32\n\t\"Can't match FOR\",\t// 33\n\t\"Bad FOR variable\", \t// 34\n\t\"STEP cannot be zero\", \t// 35\n\t\"Missing TO\", \t\t// 36\n\t\"Missing OF\", \t\t// 37\n\t\"Not in a subroutine\", \t// 38\n\t\"ON syntax\", \t\t// 39\n\t\"ON range\", \t\t// 40\n\t\"No such line\", \t// 41\n\t\"Out of data\", \t\t// 42\n\t\"Not in a REPEAT loop\",\t// 43\n\t\"WHEN/OTHERWISE not first\", // 44\n\t\"Missing #\", \t\t// 45\n\t\"Not in a WHILE loop\", \t// 46\n\t\"Missing ENDCASE\", \t// 47\n\t\"OF not last\", \t\t// 48\n\t\"Missing ENDIF\", \t// 49\n\t\"Bad MOUSE variable\", \t// 50\n\t\"No such system call\", \t// 51\n\t\"Bad library\", \t\t// 52\n\t\"Size mismatch\", \t// 53\n\t\"DATA not LOCAL\", \t// 54\n\t\"Missing \\\\\", \t\t// 55\n\t\"Bad use of structure\",\t// 56\n        \"\"} ;\n\n// list1 is tokens that can be followed by an encoded line number:\nstatic signed char list1[] = {TGOTO, TGOSUB, TRESTOR, TTRACE, TTHEN, TELSE, 0} ;\n\n// list2 is tokens that switch the lexical analyser to 'left' mode:\nstatic signed char list2[] = {TTHEN, TELSE, TREPEAT, TERROR, TCLOSE, TMOUSE, TMOVE, TSYS, ':', 0} ;\n\n// Test a character for valid in, or terminating, a variable name.\n// Permissible characters are: '{', '.', '#', '$', '%', '&', '(', 0-9, '@', '_', '`', A-Z and a-z.\n// Test most likely matches first, n.b. individual compares are faster than 'strchr'.\nint range0 (char c)\n{\n\treturn (((c >= '_') && (c <= '{')) ||\n\t        ((c >= '@') && (c <= 'Z')) || \n\t        ((c >= '0') && (c <= '9')) ||\n\t\t((c >= '#') && (c <= '&')) ||\n\t         (c == '(') || (c == '.')) ;\n}\n\n// Test a character for valid in a variable name.\n// Permissible characters are: 0-9, '@', '_', '`', A-Z and a-z.\nint range1 (char c)\n{\n\treturn (((c >= '_') && (c <= 'z')) ||\n\t        ((c >= '@') && (c <= 'Z')) ||\n\t        ((c >= '0') && (c <= '9'))) ;\n}\n\n// Test a character for valid as the first character of a variable name.\n// Permissible characters are: '@', '_', '`', A-Z and a-z.\nint range2 (char c)\n{\n\treturn (((c >= '_') && (c <= 'z')) ||\n\t        ((c >= '@') && (c <= 'Z'))) ;\n}\n\n// Handle error condition\n// If NULL supplied as msg, look up message from code\n// If ON ERROR is active, execution continues\n// Error code zero signifies a 'fatal' error\n// Error code < 0 signifies QUIT (inverted exitcode)\n// Error code 256 signifies return to immediate mode\nvoid error (int code, const char * msg)\n{\n\tif ((code < 0) || (code >= 256))\n\t\tlongjmp (env, code) ; // Quit or immediate mode\n\tif (msg == NULL)\n\t    {\n\t\tif (code <= 56)\n\t\t\tmsg = errwds [code] ;\n\t\telse\n\t\t\tmsg = \"Unknown error\" ;\n\t    }\n\terrnum = code ;\n\terrtxt = msg ;\n\terrlin = curlin ;\n\tif (code != 0)\n\t\tlongjmp (env, code) ;\n\tfaterr (msg) ;\n\tlongjmp (env, ~512) ;\n}\n\n// Return next non-space character (handling line continuation)\nsigned char nxt (void)\n{\n\tunsigned char al ;\n\twhile ((al = *(unsigned char *)esi) == ' ')\n\t\tesi++ ;\n\tif (al == '\\\\')\n\t    {\n\t\tesi = (signed char *) memchr((const char *) esi, 0x0D, 256) + 4 ;\n\t\tcurlin = esi - (signed char *) zero ;\n\t\tif (*esi++ != '\\\\')\n\t\t\terror (55, NULL) ; // 'Missing \\'\n\t\treturn nxt () ;\n\t    }\n\treturn al ;\n}\n\n// Simple search for token at start of line:\nsigned char *search (signed char *edx, signed char token)\n{\n\tint ll ;\n\twhile (((ll = (int)*(unsigned char *)edx) != 0) && (*((signed char *)edx+3) != token))\n\t\tedx += ll ;\n\tif (ll)\n\t\treturn edx + 3 ;\n\treturn NULL ; \n}\n\n// Encode line number into pseudo binary form.\nstatic char * encode (unsigned short lino, char *ebx)\n{\n\tunsigned char al = lino & 0xC0 ;\n\tunsigned char ah = (lino >> 8) & 0xC0 ;\n\tlino = (lino & 0x3F3F) | 0x4040 ;\n\t*ebx++ = TLINO ;\n\t*ebx++ = ((al | (ah >> 2)) >> 2) ^ 0x54 ;\n\t*ebx++ = lino & 0xFF ;\n\t*ebx++ = lino >> 8 ;\n\treturn ebx ;\n}\n\n// Search for a keyword\n// Return token if found, unchanged character if not found\n// If found, advance pointer past keyword\nstatic signed char tokit (char **pesi, const signed char *ebx)\n{\n\tsigned char al, ah ;\n\twhile (1)\n\t    {\n\t\tchar *esi = *pesi ;\n\t\tsigned char tok = *ebx++ ;\n\t\tal = *esi++ ;\n\t\tah = *ebx++ ;\n\t\tif (al < ah) break ;\n\t\tif ((al == ah) || ((liston & BIT3) && ((al - 0x20) == ah)))\n\t\t    {\n\t\t\tsigned char lc = al - ah ;\n\t\t\tdo\n\t\t\t    {\n\t\t\t\tal = *esi++ ;\n\t\t\t\tah = *ebx++ ;\n\t\t\t\tif ((ah == '(') || (ah == '$'))\n\t\t\t\t\tlc = 0 ;\n\t\t\t    }\n\t\t\twhile (((al - lc) == ah) && (ah > ' ')) ;\n\t\t\tif ((al == '.') || (ah < ' ') || ((ah == ' ') && !range1(al)))\n\t\t\t    {\n\t\t\t\tif (al == '.')\n\t\t\t\t\t*pesi = esi - 1 ;\n\t\t\t\telse\n\t\t\t\t\t*pesi = esi - 2 ;\n\t\t\t  \treturn tok ;\n\t\t\t    }\n\t\t    }\n\t\twhile (*ebx >= ' ') ebx++ ;\n\t    }\n\treturn **pesi ;\n}\n\n// Lexical analysis:\nchar *lexan (char *esi, char *ebx, unsigned char mode)\n{\n\tsigned char al ;\n\twhile (1)\n\t    {\n\t\tal = *esi ;\n\t\tif (al == 0x0D) break ;\n\t\tif (!range1(al)) mode &= ~(BIT3+BIT5) ;\n\t\tif ((al != ' ') && (al != ','))\n\t\t    {\n\t\t\tif ((al >= 'g') || (al == '@') || (al == '_') || (al == '`') ||\n\t\t\t((al >= 'G') && (((liston & BIT3) == 0) || (al < 'a'))))\n\t\t\t\tmode &= ~BIT3 ; // not in hex\n\t\t\tif (al == '\"') mode ^= BIT7 ;\n\t\t\tif (mode & BIT4)\n\t\t\t    {\n\t\t\t\tmode &= ~BIT4 ;\n\t\t\t\tunsigned int lino = 0 ;\n\t\t\t\tint n = 0 ;\n\t\t\t\tif (al != '+')\n\t\t\t\t\tsscanf (esi, \" %u%n\", &lino, &n) ;\n\t\t\t\tesi += n ;\n\t\t\t\tif (lino)\n\t\t\t\t    {\n\t\t\t\t\tmode |= BIT4 ;\n\t\t\t\t\tencode (lino, ebx) ;\n\t\t\t\t\tebx += 4 ;\n\t\t\t\t    }\n\t\t\t\tcontinue ;\n\t\t\t    }\n\t\t\tif (mode <= 1)\n\t\t\t    {\n\t\t\t\tif (mode == 1)\t// left mode\n\t\t\t\t    {\n\t\t\t\t\tmode = 0 ; // right mode\n\t\t\t\t\tif (al == '*')\n\t\t\t\t\t\tmode |= BIT6 ;\n\t\t\t\t\telse if ((al >= 'A') && (al <= 'z'))\n\t\t\t\t\t\tal = tokit (&esi, keywds) ;\n\t\t\t\t\tif (al == TDATA)\n\t\t\t\t\t\tmode |= BIT6 ;\n\t\t\t\t\telse if ((al >= TOKLO) && (al <= TOKHI))\n\t\t\t\t\t\tal += OFFSIT ;\n\t\t\t\t    }\n\t\t\t\telse if ((al >= 'A') && (al <= 'z'))\n\t\t\t\t\tal = tokit (&esi, keywds) ;\n\t\t\t\tif (al == TREM) mode |= BIT6 ; // quit tokenising\n\t\t\t\tif ((al == TFN) || (al == TPROC) || range2(al)) mode |= BIT5 ;\n\t\t\t\tif (al == '&') mode |= BIT3 ; // in hex\n\t\t\t\tif (strchr((const char *)list1, al)) mode |= BIT4 ; // accept line number\n\t\t\t\tif (strchr((const char *)list2, al)) mode |= BIT0 ; // enter left mode\n\t\t\t    }\n\t\t    }\n\t\t*ebx++ = al ;\n\t\tesi++ ;\n\t    }\n\t*ebx++ = 0x0D ;\n\treturn ebx ;\n}\n\nvoid crlf (void) ;\n\n// Output a character:\nvoid outchr (unsigned char al)\n{\n\toswrch (al) ;\n\tif (al == 0x0D) vcount = 0 ;\n\tif (al >= ' ')\n\t    {\n\t\tvcount += 1 ;\n\t\tif ((vwidth != 0) && (vcount == vwidth))\n\t\t    crlf () ;\n\t    }\n}\n\n// Output a character or keyword:\nvoid token (signed char al)\n{\n\tif (al >= ' ')\n\t\toutchr (al) ;\n\telse\n\t    {\n\t\tsigned char *tok = (signed char*) strchr ((char *)keywds, al) ;\n\t\tif (tok != NULL)\n\t\t\twhile (*++tok > ' ')\n\t\t\t\toutchr (*tok | ((liston & BIT3) << 2)) ;\n\t    }\n}\n\n// Output Carriage Return, Line Feed:\nvoid crlf (void)\n{\n\toutchr (0x0D) ;\n\toutchr (0x0A) ;\n\tvcount = 0 ;\n}\n\n// Output a NUL-terminated string:\nvoid text (const char *txt)\n{\n\twhile (*txt)\n\t\toutchr (*txt++) ;\n}\n\n// List a program line without CRLF (entered with pointer to line number)\nvoid listline (signed char *p, int *pindent)\n{\n\tint n ;\n\tsigned char al = 0 ;\n\tchar number[7] ;\n\tunsigned char mode = BIT0 ; // set left\n\tunsigned short lino = SLOAD(p) ;\n\tif (lino)\n\t\tsprintf (number, \"%5d\", lino) ;\n\telse\n\t\tsprintf (number, \"     \") ;\n\ttext (number) ;\n\tp += 2 ;\n\n\tif (lstopt & 1)\n\t\toswrch (32) ;\n\n\tif (strchr (\"\\355\\375\\316\\315\\213\\311\\314\", *p))\n\t\t*pindent -= 1 ;\n\tif (*p == TENDCASE)\n\t\t*pindent -= 2 ;\n\tif (lstopt & 2)\n\t\tfor (n = 0; n < *pindent * 2; n++)\n\t\t\toswrch (' ') ;\n\tif (strchr (\"\\343\\365\\307\\213\\311\\314\", *p))\n\t\t*pindent += 1 ;\n\tif (*p == TCASE)\n\t\t*pindent += 2 ;\n\n\twhile (*p != 0x0D)\n\t    {\n\t\tal = *p++ ;\n\t\tif ((al == '\"') && !(mode & 0x60))\n\t\t\tmode ^= BIT7 ;\n\t\tif (mode & (BIT5 | BIT6 | BIT7))\n\t\t\toswrch (al) ;\n\t\telse\n\t\t    {\n\t\t\tif ((al == '*') && (mode & BIT0))\n\t\t\t\tmode |= BIT4 ; // *command\n\t\t\tif ((al == TDATA) && (mode & BIT0))\n\t\t\t\tmode |= BIT5 ; // DATA\n\t\t\tif (al == TREM)\n\t\t\t\tmode |= BIT6 ; // REM\n\t\t\tif (al != ' ')\n\t\t\t\tmode &= ~(BIT0 | BIT1) ; // right mode, clear EXIT\n\t\t\tif (al == TEXIT)\n\t\t\t\tmode |= BIT1 ; // EXIT\n\t\t\tif (strchr((const char *)list2, al))\n\t\t\t\tmode |= BIT0 ;\n\t\t\tif (al == TLINO)\n\t\t\t    {\n\t\t\t\tunsigned char ah = *(unsigned char *)p++ ;\n\t\t\t\tlino = ((*(unsigned char *)p++) ^ ((ah << 2) & 0xC0)) ;\n\t\t\t\tlino += ((*(unsigned char *)p++) ^ ((ah << 4) & 0xC0)) * 256 ;\n\t\t\t\tsprintf (number, \"%d\", lino) ;\n\t\t\t\ttext (number) ;\n\t\t\t    }\n\t\t\telse\n\t\t\t\ttoken (al) ;\n\t\t    }\n\t\tif (!(mode & 0xF2))\n\t\t    {\n\t\t\tif (strchr (\"\\343\\365\\307\", *p))\n\t\t\t\t*pindent += 1 ;\n\t\t\tif (strchr (\"\\355\\375\\316\", *p))\n\t\t\t\t*pindent -= 1 ;\n\t\t\tif (*p == TCASE)\n\t\t\t\t*pindent += 2 ;\n\t\t    }\n\t    }\n\tif (!(mode & 0xF2) && (al == TTHEN))\n\t\t*pindent += 1 ;\n}\n\n// Search for top of program\n// Return pointer to terminating NUL\n// If NULL is returned 'bad program'.\nsigned char *gettop (signed char *ebx, unsigned short *reserved)\n{\n\tif (reserved != NULL) *reserved = 0 ;\n\tint n ;\n\tdo\n\t    {\n\t\tif ((n = (int)*(unsigned char *)ebx) == 0)\n\t\t\treturn ebx ;\n\t\tebx += n ;\n\t\tif (n == 3)\n\t\t    {\n\t\t\tif (reserved != NULL)\n\t\t\t\t*reserved = SLOAD(ebx - 2) ;\n\t\t\tif (*ebx == 0) return ebx ;\n\t\t\treturn NULL ;\n\t\t    }\n\t    }\n\twhile (*(ebx - 1) == 0x0D) ;\n\treturn NULL ;\n}\n\n// Clear all dynamic variables including functions and procedures\n// Make space for 'fast' variables if appropriate\nvoid clear (void)\n{\n\tint i ;\n\tunsigned short fastvars ;\n\tsigned char *ebx = vpage + (signed char *) zero ;\n\tsigned char *top = gettop (ebx, &fastvars) ;\n\tif (top == NULL)\n\t    {\n\t\t*(signed char *)(vpage + zero) = 0 ;\n\t\ttext (\"Bad program\") ;\n\t\tcrlf () ;\n\t\terror (256, NULL) ;\n\t    }\n\t*(top+1) = 0xFF ;\n\t*(top+2) = 0xFF ;\n\tlomem = top + 3 - (signed char *) zero ;\n\tif (fastvars)\n\t\tlomem = (lomem + 7) & -8 ; // align\n\tmemset (lomem + zero, 0, 4 * fastvars) ;\n\tpfree = lomem + 4 * fastvars ;\n\tmemset (dynvar, 0, 4 * (54 + 2)) ;\n\tmemset (flist, 0, sizeof(void *) * 33 + 8) ;\n        // link00 is a non-aligned 32-bit word \n        for(i=0; i<4; i++)\n            ((volatile char *)&link00)[i]=0;\n}\n\n// Find the line containing a particular address\n// Return NULL if not found\nstatic signed char* findlin (signed char *ebx, signed char *edx, char **pebp)\n{\n\tint n  = 0 ;\n\tif (pebp != NULL) *pebp = NULL ;\n\twhile ((edx >= ebx) && (n = (int)*(unsigned char *)ebx) != 0) // must compare first\n\t    {\n\t\tif ((*((signed char *)ebx+3) == 0) && (pebp != NULL))\n\t\t\t*pebp = (char *) ebx + 4 ; // library name\n\t\tebx += n ;\n\t    }\n\tif (n == 0)\n\t\treturn NULL ;\n\treturn (ebx - n) ;\n}\n\n// Search user's program and libraries for\n// the line containing a particular address\n// If the address is not within the user's program\n// or libraries, return zero.\nunsigned short setlin (signed char *edx, char **pebp)\n{\n\tsigned char *tmp = findlin(vpage + zero, edx, NULL) ;\n\tif ((tmp == NULL) && (libase != 0))\n\t\ttmp = findlin(libase + zero, edx, pebp) ;\n\tif (tmp == NULL)\n\t\treturn 0 ;\n\treturn SLOAD(tmp + 1) ;\n}\n\n// Find a specified numbered line in the program by\n// searching from the beginning.  The performance of\n// GOTO, GOSUB and RESTORE is critically dependent\n// on the speed of this routine.\n// Can optionally be entered with a target address.\nsigned char * findl (unsigned int edx)\n{\n\tsigned char *ebx = vpage + (signed char *) zero ;\n\tif (*ebx == 0)\n\t\treturn NULL ; // No program\n\tif ((edx + (signed char *) zero) >= ebx)\n\t    {\n\t\tebx = edx + (signed char *) zero ;\n\t\tint n = (int)*(unsigned char *)ebx ;\n\t\tif (*(ebx + n - 1) == 0x0D)\n\t\t\treturn ebx ;\n\t\treturn NULL ;\n\t    }\n\tedx &= 0xFFFF ;\n\twhile (edx > SLOAD(ebx + 1))\n\t\tebx += (int)*(unsigned char *)ebx ; \n\tif (edx == SLOAD(ebx + 1))\n\t\treturn ebx ;\n\treturn NULL ;\n}\n\n// Clear ON ERROR, ON event pointers etc.\nvoid clrtrp (void)\n{\n\tif (errtrp >= vpage)\n\t\terrtrp = 0 ; // ON ERROR\n\tonersp = NULL ;\n\ttimtrp = 0 ; // ON TIME\n\tclotrp = 0 ; // ON CLOSE\n\tsiztrp = 0 ; // ON MOVE\n\tsystrp = 0 ; // ON SYS\n\tmoutrp = 0 ; // ON MOUSE\n\tevtqw = 0 ; // Flush event queue...\n\tevtqr = 0 ; // ... after xxxtrp\n}\n\n// Prepare an error message in the string accumulator\nunsigned short report (void)\n{\n\tchar *module = NULL ;\n\tunsigned short lino ;\n\tstrcpy (accs, errtxt) ;\n\tlino = setlin (errlin + zero, &module) ;\n\tif (module != NULL)\n\t    {\n\t\tstrcat (accs, \" in module \") ;\n\t\tstrncat (accs, module, (char *)memchr(module, 0x0D, 255) - module) ;\n\t    }\n\treturn lino ;\n}\n\n// Free old string (if any) pointed to by descriptor,\n// allocate space for new string and update descriptor:\nchar * allocs (unsigned int *ps, int len)\n{\n\tchar *addr ;\n\tnode *head ;\n\tint new = 0, old = 0, size ;\n\n\tif (len)\n\t\tnew = 32 - __builtin_clz (len) ;\n\tif (ULOAD(ps+1))\n\t\told = 32 - __builtin_clz (ULOAD(ps+1)) ;\n\tUSTORE(ps+1, len) ;\n\n// if old and new strings have the same allocation, just change the length:\n\n\tif (old == new)\n\t    {\n\t\treturn ULOAD(ps) + (char *) zero ; \n\t    }\n\n\tsize = ((1 << new) - 1) ; // new allocation\n\n// the allocations differ: so first see if new allocation is in free list;\n// if it is, just swap with old allocation:\n\n\tif (flist[new] != NULL)\n\t    {\n\t\thead = flist[new] ;\n\t\tflist[new] = head->next ; // remove from 'new' list\n\t\thead->next = flist[old] ;\n\t\tflist[old] = head ; \t  // insert into 'old' list\n\t\taddr = head->data ;\n\t\thead->data = ULOAD(ps) + (char *) zero ; \n\t\tUSTORE(ps, addr - (char *) zero) ;\n\t\treturn addr ;\n\t    }\n\n// new allocation is not in free list, see if we can expand into heap.\n// It is extremely important that a block in the free list is used *\n// IN PREFERENCE TO expanding into the heap.\n\n\tif (old && ((ULOAD(ps) + (1 << old) - 1) == pfree))\n\t    {\n\t\taddr = ULOAD(ps) + (char *) zero ;\n\t\tif (size > ((char *)esp - addr - STACK_NEEDED))\n\t\t\terror (0, NULL) ; // 'No room'\n\t\tpfree = addr + size - (char *) zero ;\n\t\treturn addr ;\n\t    }\n\n// add old allocation to the free list (unless zero):\n\n\tif (old)\n\t    {\n\t\tif (flist[0]) // spare node available?\n\t\t    {\n\t\t\thead = flist[0] ; \n\t\t\tflist[0] = head->next ;\n\t\t    }\n\t\telse\n\t\t    {\n\t\t\taddr = ((pfree + 3) & -4) + (char *) zero ;\n\t\t\tpfree = addr + sizeof (node) - (char *) zero ;\n\t\t\thead = (node *) addr ;\n\t\t    }\n\t\thead->data = ULOAD(ps) + (char *) zero ;\n\t\thead->next = flist[old] ;\n\t\tflist[old] = head ;\n\t    }\n\n// allocate new string space from the heap:\n\n\taddr = ((pfree + 1) & -2) + (char *) zero ; // Unicode align\n\tif (size > ((char *)esp - addr - STACK_NEEDED))\n\t\terror (0, NULL) ; // 'No room'\n\tpfree = addr + size - (char *) zero ;\n\tUSTORE(ps, addr - (char *) zero) ;\n\treturn addr ;\n}\n\n// Allocate memory for a temporary string:\n//  For lengths < ACCSLEN use the string accumulator\n//  For lengths >= ACCSLEN allocate from the heap\nchar *alloct (int len) \n{\n\tif (len < ACCSLEN)\n\t\treturn accs ;\n\treturn allocs ((unsigned int *)&tmps, len) ;\n}\n\n// Move string into a temporary buffer (with optional offset):\nchar *moves (STR *ps, int offset)\n{\n\tchar *dst = alloct (offset + ps->l) ;\n \tmemmove (dst + offset, ps->p + zero, ps->l) ;\n\treturn dst ;\n}\n\n// Copy string to string accumulator and append CR:\nvoid fixs (VAR v)\n{\n\tif (v.s.l > ACCSLEN-1)\n\t\terror (19, NULL) ; // 'String too long'\n\tmemmove (accs, v.s.p + zero, v.s.l) ;\n\t*(accs + v.s.l) = 0x0D ;\n}\n\n// Push a string onto the stack, returning the original stack pointer:\nheapptr *pushs (VAR v)\n{\n\theapptr *oldesp = esp ;\n\tif (v.s.l > ((char *)esp - (char *)zero - pfree - STACK_NEEDED))\n\t\terror (0, NULL) ; // 'No room'\n\tesp = (heapptr *)(((size_t)esp - v.s.l) & -4) ;\n\tmemmove (esp, v.s.p + zero, v.s.l) ;\n\treturn oldesp ;\n}\n\n// Check for running out of memory:\nvoid check (void)\n{\n\tif ((pfree + STACK_NEEDED + (char *) zero) > (char *)esp)\n\t\terror (0, NULL) ; // 'No room'\n}\n\nvoid comma (void)\n{\n\tif (nxt () != ',')\n\t\terror (5, NULL) ; // 'Missing ,'\n\tesi++ ;\n}\n\nvoid braket (void)\n{\n\tif (nxt () != ')')\n\t\terror (27, NULL) ; // 'Missing )'\n\tesi++ ;\n}\n\n// Count number of elements in an array and return pointer to the first:\nint arrlen (void **pebx)\n{\n\tint dims ;\n\tunsigned char *ebx = *(unsigned char**)pebx ;\n\tint edx = 1 ;\n\tif (ebx < (unsigned char*)2)\n\t\terror(14, NULL) ; // 'Bad use of array'\n\tdims = *ebx++ ;\n\twhile (1)\n\t    {\n\t\tedx *= ULOAD(ebx) ;\n\t\tebx += 4 ;\n\t\tif (--dims <= 0) break ;\n\t    }\n\tif (dims == 0) *pebx = ebx ; else *pebx = VLOAD(ebx) ;\n\treturn edx ;\n} \n\n// Process array subscripts\n// Returns offset into array data\nstatic unsigned int getsub (void **pebx, unsigned char *ptype)\n{\n\tint dims ;\n\tunsigned int eax ;\n\tunsigned char *ebx = (unsigned char*) CLOAD(pebx) ;\n\tunsigned int ecx, edx = 0 ;\n\tif (ebx < (unsigned char*)2)\n\t\terror(14, NULL) ; // 'Bad use of array'\n\tdims = *ebx++ ;\n\twhile (1)\n\t    {\n\t\teax = expri () ;\n\t\tecx = ULOAD(ebx) ;\n\t\tebx += 4 ;\n\t\tif (eax >= ecx)\n\t\t\terror (15, NULL) ; // 'Bad subscript'\n\t\tedx = edx * ecx + eax ;\n\t\tif (--dims > 0) comma () ; else break ;\n\t    }\n\tif (dims == 0) *pebx = ebx ; else *pebx = VLOAD(ebx) ;\n\tedx *= (*ptype & TMASK) ;\n\tif (*esi == TTO)\n\t    {\n\t\tunsigned int n ;\n\t\tsigned char *oldesi ;\n\t\tvoid *ebp ;\n\t\tunsigned char pok = 0 ;\n\t\tchar *edi = accs ;\n\n\t\tesi++ ;\n\t\tif (nxt () == ')')\n\t\t\tn = ecx ;\n\t\telse\n\t\t\tn = expri () + 1 ;\n\t\tif ((n > ecx) || (n <= eax))\n\t\t\terror (15, NULL) ; // 'Bad subscript'\n\t\tn -= eax ;\n\n\t\tedi = secret (edi, *ptype) ;\n\t\t*edi++ = '(' ;\n\t\t*edi++ = ')' ;\n\t\t*edi = 0x0D ;\n\n\t\toldesi = esi ;\n\t\tesi = (signed char*) accs ;\n\t\tebp = getvar (&pok) ;\n\n\t\tif (pok == 0)\n\t\t    {\n\t\t\tebp = putvar (ebp, &pok) ;\n\t\t\tpfree = ebp + 2 * sizeof(void*) + 5 - zero ;\n\t\t    }\n\t\tVSTORE(ebp, ebp + sizeof(void*)) ;\n\t\t*(unsigned char *) (ebp + sizeof(void*)) = 0 ;\n\t\tUSTORE(ebp + sizeof(void*) + 1, n) ;\n\t\tVSTORE(ebp + sizeof(void*) + 5, *pebx + edx) ;\n\n\t\tesi = oldesi ;\n\t\tedx = 0 ;\n\t\t*pebx = ebp ;\n\t\t*ptype |= BIT6 ;\n\t    }\n\tbraket () ;\n\treturn edx ;\n}\n\n// Make struct.array&() look like a NUL-terminated string:\nstatic unsigned int getsbs (void *ebx, unsigned char *ptype)\n{\n\tif (nxt () == ')') \n\t    {\n\t\tif (*ptype != 1)\n\t\t\terror (15, NULL) ;\n\t\tesi++ ; // skip )\n\t\t*ptype = 130 ; \n\t\treturn 0 ;\n\t    }\n\treturn getsub (&ebx, ptype) ;\n}\n\n// Create a new variable and initialise to zero.\n// Called only after getvar() has discovered variable does not exist.\n// Returns pointer to variable\n// Types are: 1 = unsigned byte\n//            4 = signed integer\n//            8 = 64-bit floating point\n//           10 = 80-bit floating point\n//           16 = structure (64-bit) \n//           24 = structure (32-bit)\n//           40 = 64-bit signed integer\n//          136 = (moveable) string\nvoid *create (unsigned char **pedi, unsigned char *ptype)\n{\n\tint i, size ;\n\tsigned char al ;\n\tunsigned char *edi = *pedi ;\n\n\twhile (range1 (al = *esi++))\n\t\t*edi++ = al ;\n\tswitch (al) \n\t    {\n\t\tcase '%':\n\t\t\tif (*esi == al)\n\t\t\t    {\n\t\t\t\tesi++ ;\n\t\t\t\t*edi++ = al ;\n\t\t\t\t*ptype = 40 ;\n\t\t\t\tbreak ;\n\t\t\t    }\n\t\t\t*ptype = 4;\n\t\t\tbreak ;\n\t\tcase '$':\n\t\t\t*ptype = 136 ;\n\t\t\tbreak ;\n\t\tcase '#':\n\t\t\t*ptype = 8 ;\n\t\t\tbreak ;\n\t\tcase '&':\n\t\t\t*ptype = 1 ;\n\t\t\tbreak ;\n\t\tcase '{':\n\t\tcase '.':\n\t\t\t*ptype = STYPE ;\n\t\t\tal = '{' ;\n\t\t\tbreak ;\n\t\tdefault:\n\t\t\t*ptype = 10 ;\n\t\t\tesi-- ;\n\t    }\n\tif (*ptype != 10)\n\t\t*edi++ = al ; // type character\n\tsize = *ptype & TMASK ;\n\tif (*esi == '(')\n\t    {\n\t\t*edi++ = '(' ;\n\t\tsize = 8 ; // array pointer\n\t    }\n\tfor (i = 0; i <= size; i++)\n\t\t*edi++ = 0 ; // terminate and initialise\n\n\t*pedi = edi ;\n\treturn edi - size ;\n}\n\n// As create but handle whole array and whole structure\nvoid * putvar (void *ebx, unsigned char *ptype)\n{\n\tunsigned char *edi = pfree + (unsigned char *) zero ;\n\n\tUSTORE(edi, ULOAD(ebx)) ;\n\tUSTORE(ebx, edi - (unsigned char *) zero) ;\n\tedi += 4 ;\n\n\tebx = create (&edi, ptype) ;\n\tpfree = edi - (unsigned char *) zero ;\n\n\tcheck () ;\n\tif (*esi == '(')\n\t    {\n\t\tesi++ ;\n\t\tif (nxt () != ')')\n\t\t\terror (14, NULL) ; // 'Bad use of array'\n\t\tesi++ ;\n\t\t*ptype |= BIT6 ; // Flag whole array\n\t    }\n\tif ((*ptype & BIT4) && (*esi == '}'))\n\t\tesi++ ;\n\treturn ebx ;\n}\n\n// As create but for creating FN and PROC entries :\nvoid * putdef (void *ebx)\n{\n\tunsigned char type ;\n\tunsigned char *edi = pfree + (unsigned char *) zero ;\n\n\tUSTORE(edi, ULOAD(ebx)) ; \n\tUSTORE(ebx, edi - (unsigned char *) zero) ;\n\tedi += 4 ;\n\n\tebx = create (&edi, &type) ;\n\tpfree = ebx + sizeof(void *) - zero ; // room for FN/PROC pointer\n\n\tcheck () ;\n\treturn ebx ;\n}\n\n// Scan linked-list for variable etc. (used for regular dynamic variables,\n// system variables, structure members, function and procedure definitions).\n// If found move to head of list unless sysvar or structure (base link = 0).\n// Return pointer to terminator character:\nstatic void *scanll (heapptr *base, signed char *edi)\n{\n\tsigned char al ;\n\tsigned char *save = esi ;\n\tvoid *prev = NULL, *this ;\n\tint next ; // n.b. signed for relative links\n\n\tif (base && (edi < ((signed char *) zero + 6)))\n\t\treturn NULL ; // not found\n\n\tdo\n\t    {\n\t\tthis = edi ;\n\t\tedi += 4 ;  // skip link\n\t\twhile (*esi++ == *edi++) ;\n\t\tesi-- ; edi-- ;\n\t\tal = *edi ; // first character not to match\n\t\tif (((al == 0) && !range0(*esi)) ||\t// full match\n                    ((al == 0) && (*(esi-1) == '(')) ||\t// array\n\t\t    ((al == 0) && (*esi != '%') && (*esi != '(') && !range1(*(esi-1))) || // PRINT a#b\n\t\t    ((al == '{') && (*++edi == 0) && (*esi == '.')) || // structure member\n\t\t    ((al == '%') && (base == NULL) && (*(esi-1) == '%') && (*esi != '(') && (*++edi == 0)) ||\n\t\t    ((al == '%') && (base == NULL) && (*(esi-1) == '%') && (*esi == '(') && \n\t\t\t\t\t\t(*++edi == '(') && (*++edi == 0)))\n\t\t    {\n\t\t\tif (base && prev && ((this - zero) != *base))\n\t\t\t    {\n\t\t\t\tnext = ULOAD(base) ;\n\t\t\t\tUSTORE(base, this - zero) ;\n\t\t\t\tUSTORE(prev, ULOAD(this)) ;\n\t\t\t\tUSTORE(this, next) ;\n\t\t\t    }\n\t\t\tif (*(esi-1) == '(')\n\t\t\t\tesi-- ;\n\t\t\treturn edi + 1 ;\n\t\t    }\n\t\tesi = save ;\n\t\tprev = this ;\n\t\tnext = ILOAD(prev) ;\n\t\tif (base)\n\t\t\tedi = next + (signed char *) zero ;\n\t\telse\n\t\t\tedi = this + next ;\n\t    }\n\twhile (next) ;\n\treturn NULL ; // not found\n}\n\n// Try to locate a function or procedure, or indirect call\nvoid *getdef (unsigned char *found)\n{\n\tvoid *ebx ;\n\tsigned char al = *esi ;\n\n\t*found = 0 ;\n\tif (al == TFN)\n\t\tebx = &fnptr[0] ;\n\telse if (al == TPROC)\n\t\tebx = &proptr[0] ;\n\telse\n\t\treturn NULL ;\n\n\tal = *++esi ;\n\tif (al == 0x18)\n\t    {\n\t\tunsigned short index = SLOAD(esi + 1) ;\n\t\tesi += 3 ;\n\t\t*found = 1 ;\n\t\treturn lomem + index * 4 + zero ;\n\t    }\n\tif (range1(al))\n\t    {\n\t\tvoid *ptr = scanll (ebx, ULOAD(ebx) + zero) ;\n\t\tif (ptr != NULL)\n\t\t    {\n\t\t\t*found = 1 ;\n\t\t\treturn ptr ;\n\t\t    }\n\t\treturn ebx ;\n\t    }\n\tif (al == '(')\n\t    {\n\t\tvoid *n = (void *) (size_t) itemi () ;\n\t\tif ((size_t) n < 0x10000)\n\t\t\terror (8, NULL) ; // 'Address out of range'\n\t\t*found = 1 ;\n\t\treturn n ;\n\t    }\n\treturn NULL ;\n}\n\n// Find variable/array type from suffix character(s):\nstatic unsigned char getype (char *ptr)\n{\n\tchar al = *(ptr - 2) ; // type character\n\tchar ah = *(ptr - 3) ; // to check for %%\n\tif (al == '(')\n\t    {\n\t\tal = *(ptr - 3) ; // array type\n\t\tah = *(ptr - 4) ;\n\t    }\n\tswitch (al)\n\t    {\n\t\tcase '%':\n\t\t\tif (ah == '%')\n\t\t\t\treturn 40 ;\n\t\t\telse\n\t\t\t\treturn 4 ;\n\n\t\tcase '#':\n\t\t\treturn 8 ;\n\n\t\tcase '$':\n\t\t\treturn 136 ;\n\n\t\tcase '{':\n\t\t\treturn STYPE ; \n\n\t\tcase '&':\n\t\t\treturn 1 ;\n\t    }\n\treturn 10 ;\n}\n\n// Try to locate variable (etc.) in static or dynamic variables.\n// If illegal initial character, return NULL.\n// If not found, return pointer to linked-list base link and set type to 0.\n// If found, return pointer to variable (etc.) and set type as appropriate.\n// Types are:   1 = unsigned byte (a&)\n//              4 = 32-bit signed integer (a%)\n//              8 = 64-bit floating point (a#)\n//             10 = 80-bit floating point (a)\n//             16 = structure (a{ or a.) 64-bit\n//             24 = structure (a{ or a.) 32-bit\n//             36 = FN/PROC\n//             40 = 64-bit signed integer (a%%)\n//            136 = string (a$)\nstatic void *locate (unsigned char *ptype)\n{\n\tvoid *ebx, *edx ;\n\tchar *ptr ;\n\tsigned char al = *esi ;\n\t*ptype = 0 ;\n\n\tif (al < '@')\n\t    { // FN, PROC or fastvar\n\t\tif ((al >= 0x19) && (al <= 0x1F))\n\t\t    {\n\t\t\t*ptype = fvtab[(int)(al - 0x19)] ;\n\t\t\tebx = lomem + (SLOAD(esi + 1) << 2) + zero ;\n\t\t\tesi += 3 ;\n\t\t\treturn ebx ;\n\t\t    }\n\t\tebx = getdef (ptype) ;\n\t\tif (ebx == NULL)\n\t\t\treturn NULL ;\n\t\tif (*ptype == 0)\n\t\t\terror (29, NULL) ; // 'No such FN/PROC'\n\t\t*ptype = 36 ;\n\t\treturn ebx ;\n\t    }\n\tif ((al <= 'Z') && (*(esi+1) == '%') && (*(esi+2) != '(') && (*(esi+2) != '%'))\n\t    { // Static integer variable\n\t\tesi += 2 ;\n\t\t*ptype = 4 ;\n\t\treturn &stavar[al - '@'] ;\n\t    }\n\tif (al > 'Z')\n\t    {\n\t\tif ((al < '_') || (al > 'z'))\n\t\t\treturn NULL ;\n\t\tal -= 4 ;\n\t    }\n\tif (al == '@')\n\t    {\n\t\tebx = NULL ;\n\t\tedx = &sysvar ;\n\t    }\n\telse\n\t    {\n\t\tebx = &dynvar[al - 'A'] ;\n\t\tedx = ULOAD(ebx) + zero ;\n\t    }\n\tesi++ ;\n\tptr = scanll (ebx, edx) ;\n\tif (ptr == NULL)\n\t\treturn ebx ;\n\n\t*ptype = getype (ptr) ;\n\treturn ptr ;\n}\n\n// Try to locate variable or FN/PROC in static or dynamic variables.\n// If invalid, return NULL.\n// If not found, return pointer to linked-list terminator and set type to 0.\n// If found, return pointer to variable (etc.) and set type as appropriate.\n// Types are: 1, 4, 5, 8, 10, 32, 40 numeric\n//            128, 130, 136 string\n//            16/24, 80/88 structure, structure array\n//            36, 100 function or procedure\n//            65, 68, 72, 74, 104, 200 whole array\nvoid * getvar (unsigned char *ptype)\n{\n\tvoid *ebx ;\n\tsigned char al = *esi ;\n\t*ptype = 0 ;\n\n\tif ((al == '$') || (al == '?') || (al == '!') || (al == '|') || (al == ']'))\n\t    {\n\t\tvoid *n ;\n\t\tesi++ ;\n\t\tif (al == '$')\n\t\t    {\n\t\t\tif (*esi == '$')\n\t\t  \t    {\n\t\t\t\tesi ++ ;\n\t\t\t\t*ptype = 130 ;\n\t\t\t    }\n\t\t\telse\n\t\t\t\t*ptype = 128 ;\n\t\t    }\n\t\telse if (al == '?')\n\t\t\t*ptype = 1 ;\n\t\telse if (al == '!')\n\t\t\t*ptype = 4 ;\n\t\telse if (al == ']')\n\t\t\t*ptype = 40 ;\n\t\telse if ((liston & 3) == 0)\n\t\t\t*ptype = 5 ;\n\t\telse if ((liston & 3) == 1)\n\t\t\t*ptype = 8 ;\n\t\telse if ((liston & 3) == 2)\n\t\t\t*ptype = 32 ;\n\t\telse\n\t\t\t*ptype = 10 ;\n\n\t\tn = (void *) (size_t) itemi () ;\n\t\tif ((size_t) n < 0x10000)\n\t\t    {\n\t\t\tif ((size_t) n >= 0x400)\n\t\t\t\terror (8, NULL) ; // 'Address out of range'\n\t\t\treturn (char *)&stavar[0] + (size_t) n ;\n\t\t    }\n\t\treturn n ;\n\t    }\n\n\tebx = locate (ptype) ;\n\tif ((*ptype == 0) || (ebx == NULL))\n\t\treturn ebx ;\n\n\tif (*esi == '(')\n\t    {\n\t\tunsigned int ecx ;\n\t\tesi++ ;\n\t\tif (nxt () == ')')\n\t\t    {\n\t\t\tesi++ ;\n\t\t\t*ptype |= BIT6 ; // Flag whole array\n\t\t\tif ((*ptype & BIT4) && (*esi == '}'))\n\t\t\t\tesi++ ;\n\t\t\treturn ebx ;\n\t\t    }\n\t\tif (*ptype == 36)\n\t\t\treturn ebx ; // FNxxx( or PROCxxx( so not an array\n\t\tebx = VLOAD(ebx) ;\n\t\tecx = getsub (&ebx, ptype) ; // get array data pointer\n\t\tebx += ecx ; // n.b. ebx is modified by getsub !\n\t    }\n\n\tif (*ptype & BIT4)\n\t    {\n\t\tvoid *ebp = VLOAD((int *)ebx + STRIDE) ;  // data pointer\n\t\twhile (((al = *esi) == '.') || (al == '}'))\n\t\t    {\n\t\t\tif (al == '}')\n\t\t\t\tal = *++esi ;\n\n\t\t\tif (al == '.')\n\t\t\t    {\n\t\t\t\tsigned char *edx = VLOAD(ebx) ; // template pointer\n\t\t\t\tif (edx == NULL)\n\t\t\t\t\terror (26, NULL); // 'No such variable'\n\t\t\t\tesi++ ; \n\t\t\t\tedx += 4 ; \t\t    // skip size record\n\t\t\t\tebx = scanll (NULL, edx) ;\n\t\t\t\tif (ebx == NULL)\n\t\t\t\t\terror (26, NULL); // 'No such variable'\n\t\t\t\t*ptype = getype (ebx) ;\n\t\t\t\tif (*ptype & BIT4) \n\t\t\t\t    {\n\t\t\t\t\tebp += ILOAD((int *)ebx + STRIDE) ;  // data pointer\n\t\t\t\t\tcontinue ; // recurse into nested structure\n\t\t\t\t    }\n\t\t\t\tebp += ILOAD(ebx) ; // address data/array\n\t\t\t\tif (*esi == '(')\n\t\t\t\t    {\n\t\t\t\t\tesi++ ;\n\t\t\t\t\tebx += 4 ; // n.b. GCC extension: sizeof(void) = 1\n\t\t\t\t\tebx = ebp + getsbs (ebx, ptype) ;\n\t\t\t\t\tif ((*ptype & BIT6) != 0)\n\t\t\t\t\t\terror (56, NULL) ; // 'Bad use of structure'\n\t\t\t\t    }\n\t\t\t\telse\n\t\t\t\t\tebx = ebp ;\n\t\t\t    }\n\t\t\tif (ebx < (void *)0x10000)\n\t\t\t\terror (56, NULL) ; // 'Bad use of structure\n\t\t\tbreak ;\n\t\t    }\n\t    }\n\n\tif ((((al = *esi) == '!') || (al == '?')) && (*ptype < 128))\n\t    {\n\t\tesi++ ;\n\t\tvoid *n = (void *) (size_t) loadi (ebx, *ptype) + itemi () ;\n\t\tif (al == '!')\n\t\t\t*ptype = 4 ;\n\t\telse\n\t\t\t*ptype = 1 ;\n\t\tif ((size_t) n < 0x10000)\n\t\t\treturn (char *)&stavar[0] + (size_t) n ;\n\t\treturn n ;\n\t    }\n\n\treturn ebx ;\n}\n\n// Get a variable pointer / type, creating it if necessary:\nvoid *getput (unsigned char *ptype)\n{\n\tvoid *ptr = getvar (ptype) ;\n\tif (ptr == NULL)\n\t\terror (16, NULL) ; // 'Syntax error'\n\tif (*ptype == 0)\n\t\tptr = putvar (ptr, ptype) ;\n\treturn ptr ;\n}\n\n// Called from DIM:\nvoid * getdim (unsigned char *ptype)\n{\n\tvoid *ebx ;\n\tunsigned char *edi = pfree + (unsigned char *) zero ;\n\tsigned char *oldesi = esi ;\n\tchar c = nxt () ;\n\n\tif ((c == '!') || (c == ']'))\n\t\treturn getvar (ptype) ;\n\n\t*ptype = 0 ;\n\n\tebx = locate (ptype) ;\n\n\tif (ebx == NULL)\n\t\treturn ebx ;\n\n\tif ((*ptype) && (*esi != '(') && (*esi != '}'))\n\t    {\n\t\tesi = oldesi ;\n\t\treturn getvar (ptype) ;\n\t    }\n\n\tif (*ptype)\n\t\treturn ebx ;\n\n\tUSTORE(edi, ULOAD(ebx)) ;\n\tUSTORE(ebx, edi - (unsigned char *) zero) ;\n\tedi += 4 ;\n\n\tebx = create (&edi, ptype) ;\n\tpfree = edi - (unsigned char *) zero ;\n\treturn ebx ;\n}\n\n// Get a range of line numbers [lo[,[hi]]]:\nstatic void lrange (char *ptr, unsigned short *plo, unsigned short *phi)\n{\n\tint n = 0 ;\n\t*plo = 0 ;\n\t*phi = 0 ;\n\tif (sscanf (ptr, \"%hu ,%n%hu\", plo, &n, phi) == 0)\n\t\tsscanf (ptr, \" ,%n%hu\", &n, phi) ;\n\tif ((*phi == 0) && (*plo == 0))\t*phi = 0xFFFF ;\n\tif ((*phi == 0) && (n != 0))    *phi = 0xFFFF ;\n}\n\n// Replacement for strstr() which uses a string terminator other than NUL:\nstatic char *strstrt (signed char *lookin, char *lookfor, char t)\n{\n\tchar *t1 = memchr (lookin, t, 256) ;\n\tchar *t2 = memchr (lookfor, t, 256) ;\n\tif ((t1 == NULL) || (t2 == NULL)) return NULL ;\n\t*t1 = 0 ; *t2 = 0 ;\n\tchar *result = strstr ((char *) lookin, lookfor) ;\n\t*t1 = t ; *t2 = t ;\n\treturn result ;\n}\n\n// Fixup line-number cross-references in a line:\nstatic void fixup (signed char *ptr, int nlines, unsigned short start, unsigned short step)\n{\n\tsigned char c ;\n\tint quote = 0 ;\n\tunsigned short n ;\n\tunsigned short lino = SLOAD(ptr + 1) ;\n\tptr += 3 ;\n\twhile ((c = *ptr++) != 0x0D)\n\t    {\n\t\tif (c == '\"') quote = !quote ;\n\t\tif ((c == TLINO) && !quote) \n\t\t    {\n\t\t\tint i ;\n\t\t\tunsigned char ah = *(unsigned char *)ptr++ ;\n\t\t\tn = ((*(unsigned char *)ptr++) ^ ((ah << 2) & 0xC0)) ;\n\t\t\tn += ((*(unsigned char *)ptr++) ^ ((ah << 4) & 0xC0)) * 256 ;\n\n\t\t\tfor (i = 0; i < nlines; i++)\n\t\t\t\tif (n == SLOAD(lomem + zero + i * 2))\n\t\t\t\t\tbreak ;\n\n\t\t\tif (n == SLOAD(lomem + zero + i * 2))\n\t\t\t\tencode (start + i * step, (char *) ptr - 4) ;\n\t\t\telse\n\t\t\t    {\n\t\t\t\tsprintf (accs, \"No such line %hu referenced in (new) \"\n\t\t\t\t\t\t\"line %hu\\r\\n\", n, lino) ;\n\t\t\t\ttext (accs) ;\n\t\t\t    }\n\t\t    }\n\t    }\n}\n\n// Main interpreter entry point:\nint basic (void *ecx, void *edx, void *prompt)\n{\n\tint errcode ;\n\tunsigned short autoinc = 0, autonum = 0 ;\n\n\tstavar[0] = 0x90A ;\t// Initialise @%\n\tliston = 0x30 ;\t\t// Initialise OPT/*FLOAT/*HEX/*LOWERCASE\n\tlstopt = 3 ;\t\t// Initialise LISTO\n\terrtxt = szNotice ;\n\tcmdadr = szCmdLine - (char *) zero ;\n\tcmdlen = strlen (szCmdLine) ;\n\tdiradr = szLoadDir - (char *) zero ;\n\tdirlen = strlen (szLoadDir) ;\n\tlibadr = szLibrary - (char *) zero ;\n\tliblen = strlen (szLibrary) ;\n\tusradr = szUserDir - (char *) zero ;\n\tusrlen = strlen (szUserDir) ;\n\ttmpadr = szTempDir - (char *) zero ;\n\ttmplen = strlen (szTempDir) ;\n\tvpage = ecx - zero ;\n\tcurlin = ecx - zero ;\n\thimem = edx - zero ;\n#ifdef PICO\n\tlibtop = edx ;\n#endif\n\terrcode = setjmp (env) ; // In case of 'Bad program'\n\tif (errcode == 0) clear () ; \n\tdatptr = search (vpage + (signed char *) zero, TDATA) - (signed char *) zero ;\n\n\tesi = vpage + 3 + (signed char *) zero ;\n\tesp = (heapptr *)((himem + (size_t) zero) & -4) ;\n\n\tif (errcode == 0) errcode = setjmp (env) ; // >0 = error, <0 = QUIT, 256 = END/STOP\n\n\tif (errcode < 0)\n\t\treturn ~errcode ;\n\n\tif (errcode)\n\t    {\n\t\tesp = (heapptr *)((himem + (size_t) zero) & -4) ;\n\t\tif (errtrp && (autonum == 0) && (errcode < 256))\n\t\t    {\n\t\t\tesi = errtrp + (signed char *) zero ;\n\t\t\tprompt = NULL ;\n\t\t\tif (onersp != NULL)\n\t\t\t\tesp = onersp ;\n\t\t    }\n\t\telse if (errcode == 256)\n\t\t    {\n\t\t\tif (prompt == (void *) -1)\n\t\t\t\treturn (errcode) ;\n\t\t\tprompt = (void *) 1 ;\n\t\t    }\n\t\telse\n\t\t    {\n\t\t\tunsigned short lino ;\n\t\t\ttracen = 0 ;\n\t\t\treset () ;\n\t\t\tcrlf () ;\n\t\t\tlino = report () ;\n\t\t\ttext (errtxt) ;\n\t\t\tif (lino)\n\t\t\t    {\n\t\t\t\tsprintf (accs, \" at line %d\", lino) ;\n\t\t\t\ttext (accs) ;\n\t\t\t    }\n\t\t\tcrlf () ;\n\t\t\tif (prompt == (void *) -1)\n\t\t\t\treturn (errcode) ;\n\t\t\tprompt = (void *) 1 ;\n\t\t\tautonum = 0 ;\n\t\t\tautoinc = 0 ;\n\t\t    }\n\t    }\n\n\twhile (prompt == (void *) 1)\n\t    {\n\t\tint n = 0 ;\n\t\tunsigned short lino = 0 ;\n\n\t\tesp = (heapptr *)((himem + (size_t) zero) & -4) ;\n\t\tif (autonum)\n\t\t    {\n\t\t\tsprintf (accs, \"%5hu \", autonum) ;\n\t\t\ttext (accs) ;\n\t\t    }\t\t\t\n\t\telse if (autoinc)\n\t\t\tautoinc = 0 ;\n\t\telse\n\t\t\toswrch ('>') ;\n\n\t\tliston = (liston & 0x0F) | 0x30 ;\n\t\tclrtrp () ;\n\t\tosline (accs) ;\n\t\t*(char *)(memchr (accs, 0x0D, 256) + 1) = 0 ; // Add NUL term for sscanf\n\t\tcrlf () ;\n\n\t\tsscanf (accs, \"%hu%n\", &lino, &n) ;\n\t\tif (lino == 0)\n\t\t    {\n\t\t\tn = 0 ;\n\t\t\tlino = autonum ;\n\t\t\tautonum += autoinc ;\n\t\t    }\n\t\twhile (*(accs + n) == 32) n++ ;\n\t\t*(lexan (accs + n, buff, 1)) = 0 ;\t// Lexical analysis\n\t\tcurlin = buff - (char *)zero ; // In case of error\n\n\t\tif (lino)\n\t\t    {\n\t\t\tsigned char *tmp = vpage + (signed char *) zero ;\n\t\t\tclear () ;\n\t\t\tn = strlen (buff) + 3 ;\n\t\t\tif (n > 255) error (19, NULL) ; // 'String too long'\n\t\t\twhile (lino > SLOAD(tmp + 1))\n\t\t\t\ttmp += (int)*(unsigned char *)tmp ; \n\t\t\tif (lino == SLOAD(tmp + 1))\n\t\t\t\tmemmove (tmp, tmp + *(unsigned char *)tmp,\n\t\t\t\tgettop (vpage + zero, NULL) - tmp + 3 - *(unsigned char *)tmp) ;\n\t\t\tif (n > 4)\n\t\t\t    {\n\t\t\t\tmemmove (tmp + n, tmp, gettop (vpage + zero, NULL) - tmp + 3) ;\n\t\t\t\t*(unsigned char *)tmp = n ;\n\t\t\t\tSSTORE(tmp + 1, lino) ;\n\t\t\t\tmemcpy (tmp + 3, buff, n - 3) ;\n\t\t\t    }\n\t\t\tclear () ; // essential to set lomem correctly\n\t\t    }\n\t\telse\n\t\t    {\n\t\t\tunsigned short lo, hi ;\n\t\t\tchar *tmp = accs + n ;\n\t\t\tn = tokit (&tmp, comnds) ;\n\t\t\ttmp++ ;\n\t\t\tswitch (n)\n\t\t\t    {\n\t\t\t\tcase 0x18: // AUTO\n\t\t\t\t\tlrange (tmp, &autonum, &autoinc) ;\n\t\t\t\t\tif (autonum == 0) autonum = 10 ;\n\t\t\t\t\tif (autoinc == 0xFFFF) autoinc = 10 ;\n\t\t\t\t\tif (autoinc == 0) autoinc = 10 ;\n\t\t\t\t\tbreak ;\n\n\t\t\t\tcase 0x19: // DELETE\n\t\t\t\t\tclear () ;\n\t\t\t\t\tlrange (tmp, &lo, &hi) ;\n\t\t\t\t\tif ((lo == 0) && (hi == 0xFFFF)) error (16, NULL) ;\n\t\t\t\t\tif (hi == 0) hi = lo ;\n\t\t\t\t\tesi = vpage + (signed char *) zero ;\n\t\t\t\t\twhile (*esi && (SLOAD(esi + 1) < lo))\n\t\t\t\t\t\tesi += (int)*(unsigned char *)esi ;\n\t\t\t\t\ttmp = (char*) esi ;\n\t\t\t\t\twhile (*esi && (SLOAD(esi + 1) <= hi))\n\t\t\t\t\t\tesi += (int)*(unsigned char *)esi ;\n\t\t\t\t\tmemmove (tmp, esi, gettop (vpage + zero, NULL) - esi + 3) ;\n\t\t\t\t\tbreak ;\n\n\t\t\t\tcase 0x1A: // EDIT\n\t\t\t\t\tlrange (tmp, &lo, &hi) ;\n\t\t\t\t\tif ((lo == 0) && (hi == 0xFFFF)) error (16, NULL) ;\n\t\t\t\t\tif (hi == 0) hi = lo ;\n\t\t\t\t\tesi = findl (lo) ;\n\t\t\t\t\tif (esi == NULL) error (41, NULL) ;\n\t\t\t\t\tstrcpy (accs, \"spool \\042\") ;\n\t\t\t\t\tstrcat (accs, szTempDir) ;\n\t\t\t\t\tstrcat (accs, \"bbc.edit.tmp\\042\\015\") ;\n\t\t\t\t\toswrch (21) ;\n\t\t\t\t\toscli (accs) ;\n\t\t\t\t\twhile (*esi && (SLOAD(esi + 1) <= hi))\n\t\t\t\t\t    {\n\t\t\t\t\t\tn = 0 ;\n\t\t\t\t\t\tlistline (esi + 1, &n) ;\n\t\t\t\t\t\tesi += *(unsigned char *)esi ;\n\t\t\t\t\t    }\n\t\t\t\t\t*(accs + 5) = 0x0D ;\n\t\t\t\t\toscli (accs) ;\n\t\t\t\t\toswrch (6) ;\n\t\t\t\t\tmemcpy (accs, \"exec  \", 6) ;\n\t\t\t\t\toscli (accs) ;\n\t\t\t\t\tautoinc = 1 ; // suppress prompt\n\t\t\t\t\tbreak ;\n\n\t\t\t\tcase 0x1B: // LIST[O]\n\t\t\t\t\tif ((*tmp == 'O') || (*tmp == 'o'))\n\t\t\t\t\t    {\n\t\t\t\t\t\tn = 0 ;\n\t\t\t\t\t\tsscanf (tmp + 1, \"%u\", &n) ;\n\t\t\t\t\t\tlstopt = n ;\n\t\t\t\t\t\tbreak ;\n\t\t\t\t\t    }\n\t\t\t\t\tlrange (tmp, &lo, &hi) ;\n\t\t\t\t\tif (hi == 0) hi = lo ;\n\t\t\t\t\tesi = vpage + (signed char *) zero ;\n\t\t\t\t\tn = 0 ;\n\t\t\t\t\t*(lexan (tmp, buff, 1)) = 0 ; // to support LISTIF\n\t\t\t\t\ttmp = strchr (buff, TIF) ;\n\t\t\t\t\twhile ((tmp != NULL) && (*(++tmp) == ' ')) ;\n\t\t\t\t\twhile (*esi && (SLOAD(esi + 1) < lo))\n\t\t\t\t\t\tesi += (int)*(unsigned char *)esi ; \n\t\t\t\t\twhile (*esi && (SLOAD(esi + 1) <= hi))\n\t\t\t\t\t    {\n\t\t\t\t\t\ttrap () ;\n\t\t\t\t\t\tif ((tmp == NULL) || (strstrt (esi + 3, tmp, 13)))\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\tlistline (esi + 1, &n) ;\n\t\t\t\t\t\t\tcrlf () ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\tesi += *(unsigned char *)esi ;\n\t\t\t\t\t    }\n\t\t\t\t\tbreak ;\n\n\t\t\t\tcase 0x1C: // LOAD\n\t\t\t\t\tmemset (vpage + zero, 0, 256) ; // in case a short text file\n\t\t\t\t\tosload (tmp, vpage + zero, (void *)esp -\n\t\t\t\t\t\t (vpage + zero) - STACK_NEEDED) ;\n\t\t\t\t\tesi = vpage + (signed char *) zero ;\n\t\t\t\t\twhile (*esi)\n\t\t\t\t\t    {\n\t\t\t\t\t\tesi += (int)*(unsigned char *)esi ; \n\t\t\t\t\t\tif (*(esi-1) != 0x0D) break ;\n\t\t\t\t\t    }\n\t\t\t\t\tif (*(esi-1) != 0x0D)\n\t\t\t\t\t    {\n\t\t\t\t\t\tint eof = 0 ;\n\t\t\t\t\t\tint file = osopen (0, tmp) ;\n\t\t\t\t\t\tesi = vpage + (signed char *) zero ;\n\t\t\t\t\t\tlino = 0 ;\n\t\t\t\t\t\twhile (1)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\ttmp = accs ; n = ACCSLEN-1 ;\n\t\t\t\t\t\t\tdo *tmp = osbget (file, &eof) ;\n\t\t\t\t\t\t\twhile (!eof && --n && (*tmp++ != 0x0A)) ;\n\t\t\t\t\t\t\tif (eof || (n <= 0)) break ;\n\t\t\t\t\t\t\t*(tmp - 1) = 0x0D ; *tmp = 0 ;\n\t\t\t\t\t\t\ttmp = accs ; lino++ ; n = 0 ;\n\t\t\t\t\t\t\tsscanf (tmp, \"%hu%n\", &lino, &n) ;\n\t\t\t\t\t\t\ttmp += n ;\n\t\t\t\t\t\t\twhile ((*tmp == 32) || (*tmp == 9)) tmp++ ;\n\t\t\t\t\t\t\tn = lexan (tmp, (char *) esi + 3, 1)\n\t\t\t\t\t\t\t\t- (char *) esi ;\n\t\t\t\t\t\t\tif (n > 255) break ;\n\t\t\t\t\t\t\t*esi = n ;\n\t\t\t\t\t\t\tSSTORE(esi + 1, lino) ;\n\t\t\t\t\t\t\tesi += n ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t\tosshut (file) ;\n\t\t\t\t\t\t*esi = 0 ;\n\t\t\t\t\t    }\n\t\t\t\t\tclear () ;\n\t\t\t\t\tbreak ;\n\n\t\t\t\tcase 0x1D: // NEW \n\t\t\t\t\t*(signed char *)(vpage + zero) = 0 ;\n\t\t\t\t\tbreak ;\n\n\t\t\t\tcase 0x1E: // RENUMBER\n\t\t\t\t\tclear () ;\n\t\t\t\t\tlrange (tmp, &lo, &hi) ;\n\t\t\t\t\tif (lo == 0) lo = 10 ;\n\t\t\t\t\tif (hi == 0xFFFF) hi = 10 ;\n\t\t\t\t\tif (hi == 0) hi = 10 ;\n\t\t\t\t\tesi = vpage + (signed char *) zero ;\n\t\t\t\t\tn = 0 ;\n\t\t\t\t\twhile (*esi)\n\t\t\t\t\t    {\n\t\t\t\t\t\tSSTORE(lomem + zero + 2*n, \n\t\t\t\t\t\t\tSLOAD(esi + 1)) ;\n\t\t\t\t\t\tesi += *(unsigned char *)esi ;\n\t\t\t\t\t\tn++ ;\n\t\t\t\t\t    }\n\t\t\t\t\tif ((lo + n*hi - hi) > 65535) error (20, NULL) ; \n\t\t\t\t\tesi = vpage + (signed char *) zero ;\n\t\t\t\t\tlino = lo ;\n\t\t\t\t\twhile (*esi)\n\t\t\t\t\t    {\n\t\t\t\t\t\tunsigned char c = *(unsigned char *)esi ;\n\t\t\t\t\t\tSSTORE(esi + 1, lino) ;\n\t\t\t\t\t\tif (memchr (esi + 3, TLINO, c - 4))\n\t\t\t\t\t\t\tfixup (esi, n, lo, hi) ;\n\t\t\t\t\t\tlino += hi ;\n\t\t\t\t\t\tesi += c ;\n\t\t\t\t\t    }\n\t\t\t\t\tbreak ;\n\n\t\t\t\tcase 0x1F: // SAVE\n\t\t\t\t\tclear () ;\n\t\t\t\t\tossave (tmp, vpage + zero, gettop (vpage + zero, NULL) -\n\t\t\t\t\t\t(signed char *) (vpage + zero) + 3) ;\n\t\t\t\t\tbreak ;\n\n\t\t\t\tdefault:\n\t\t\t\t\tprompt = NULL ;\n\t\t\t    }\n\t\t    }\n\n\t\tesi = (signed char *) buff ;\n\t    }\n\txeq () ;\n\treturn 0 ;\n}\n"
  },
  {
    "path": "src/flood.c",
    "content": "// Adapted by Richard Russell, 18-Jun-2016 from QuickFill.cpp\n//\n// Author : John R. Shaw (shawj2@earthlink.net)\n// Date   : Jan. 26 2004\n//\n// Copyright (C) 2004 John R. Shaw\n// All rights reserved.\n//\n// This code may be used in compiled form in any way you desire. This\n// file may be redistributed unmodified by any means PROVIDING it is \n// not sold for profit without the authors written consent, and \n// providing that this notice and the authors name is included. If \n// the source code in this file is used in any commercial application \n// then a simple email would be nice.\n//\n// Warranties and Disclaimers:\n// THIS SOFTWARE IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF ANY KIND\n// INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.\n// IN NO EVENT WILL JOHN R. SHAW BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES,\n// INCLUDING DAMAGES FOR LOSS OF PROFITS, LOSS OR INACCURACY OF DATA,\n// INCURRED BY ANY PERSON FROM SUCH PERSON'S USAGE OF THIS SOFTWARE\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\n//\n// Please email bug reports, bug fixes, enhancements, requests and\n// comments to: shawj2@earthlink.net\n//\n// Feb.  6, 2004 : Added left optimization, eliminates some revisits.\n// Feb.  8, 2004 : Added reverse clip optimization, eliminates some revisits.\n// Feb. 15, 2004 : Found PushOpposite() special case and corrected it.\n// Feb. 19, 2004 : Changed internal scan, search and line drawing routines\n//                 to use pixel color values, in order to increase overall\n//                 speed while working with palettized bitmaps.\n// Mar.  5, 2004 : 1) Moved PushVisitedLine() from QuickFill() to\n//                 PushOpposite(), this increases the number of revisits and\n//                 reduces the size of the visit-list (8:1).\n//                 2) Changed visit-list to use HLINE_NODE, since block\n//                 checking is no longer required and the number of\n//                 allocations are reduce because the free-list can now be\n//                 used by all (of course HLINE_NODE is larger than we need,\n//                 since it is not a visit-list specific node type)\n//----------------------------------------------------------------------------\n//\n\n#include <stdlib.h> \n#include \"SDL2_gfxPrimitives.h\"\n\n// Doubly-linked-list node:\n\ntypedef struct hlineNode\n{\n\tint x1, x2, y, dy ;\n\tstruct hlineNode *pNext, *pPrev ;\n} HLINE_NODE ;\n\n// Global variables:\n\nstatic HLINE_NODE*\tpVisitList ;\nstatic HLINE_NODE*\tpLineList ;\nstatic HLINE_NODE*\tpFreeList ;\nstatic int\t\tLastY ;\nstatic int\t\tbXSortOn ;\n\n//----------------------------------------------------------------------------\n// Private methods\n//----------------------------------------------------------------------------\n\n/* Frees the list of free nodes */\nstatic void FreeList(void)\n{\n\tHLINE_NODE *pNext ;\n\twhile (pFreeList) \n\t{\n\t\tpNext = pFreeList->pNext ;\n\t  \tfree(pFreeList) ;\n\t  \tpFreeList = pNext ;\n\t}\n\n\twhile (pLineList)\n\t{\n\t\tpNext = pLineList->pNext ;\n\t  \tfree(pLineList) ;\n\t  \tpLineList = pNext ;\n\t}\n\t\n\twhile (pVisitList)\n\t{\n\t\tpNext = pVisitList->pNext ;\n\t  \tfree(pVisitList) ;\n\t  \tpVisitList = pNext ;\n\t}\n}\n\n/* Push a node onto the line list */\nstatic void PushLine(int x1, int x2, int y, int dy)\n{\n\tHLINE_NODE *pNew = pFreeList ;\n\tif (pNew)\n\t\tpFreeList = pFreeList->pNext ;\n\telse\n\t\tpNew = (HLINE_NODE*) malloc (sizeof(HLINE_NODE)) ;\n\n\t/* Add to start of list */\n\tpNew->x1 = x1 ;\n\tpNew->x2 = x2 ;\n\tpNew->y  = y ;\n\tpNew->dy = dy ;\n\n\tif (bXSortOn)\n\t{\n\t\t/* This is for the single line visiting code.\n\t\t * The code runs about 18% slower but you can\n\t\t * use fill patterns with it.\n\t\t * Since the basic algorithym scans lines from\n\t\t * left to right it is required that the list\n\t\t * be sorted from left to right.\n\t\t */\n\t\tHLINE_NODE *pThis,*pPrev=(HLINE_NODE*)0 ;\n\t\tfor (pThis=pLineList ;pThis ;pThis=pThis->pNext) \n\t\t{\n\t\t\tif (x1 <= pThis->x1) \n\t\t\t\tbreak ;\n\t\t\tpPrev = pThis ;\n\t\t}\n\t\tif (pPrev)\n\t\t{\n\t\t\tpNew->pNext = pPrev->pNext ;\n\t\t\tpNew->pPrev = pPrev ;\n\t\t\tpPrev->pNext = pNew ;\n\t\t\tif (pNew->pNext) \n\t\t\t\tpNew->pNext->pPrev = pNew ;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tpNew->pNext = pLineList ;\n\t\t\tpNew->pPrev = (HLINE_NODE*)0 ;\n\t\t\tif (pNew->pNext) \n\t\t\t\tpNew->pNext->pPrev = pNew ;\n\t\t\tpLineList = pNew ;\n\t\t}\n\t}\n\telse\n\t{\n\t\tpNew->pNext = pLineList ;\n\t\tpLineList = pNew ;\n\t}\n}\n\n/* Pop a node off the line list */\nstatic void PopLine(int *x1, int *x2, int *y, int *dy)\n{\n\tif (pLineList)\n\t{\n\t\tHLINE_NODE *pThis,*pPrev ;\n\t\t/* Search lines on stack for same line as last line.\n\t\t * This smooths out the flooding of the graphics object\n\t\t * and reduces the size of the stack.\n\t\t */\n\t\tpPrev = pLineList ;\n\t\tfor (pThis=pLineList->pNext ; pThis ; pThis=pThis->pNext)\n\t\t{\n\t\t\tif (pThis->y == LastY)\n\t\t\t\tbreak ;\n\t\t\tpPrev = pThis ;\n\t\t}\n\t\t/* If pThis found - remove it from list */\n\t\tif (pThis)\n\t\t{\n\t\t\tpPrev->pNext = pThis->pNext ;\n\t\t\tif (pPrev->pNext) \n\t\t\t\tpPrev->pNext->pPrev = pPrev ;\n\t\t\t*x1 = pThis->x1 ;\n\t\t\t*x2 = pThis->x2 ;\n\t\t\t*y  = pThis->y ;\n\t\t\t*dy = pThis->dy ;\n\t\t}\n\t\t/* Remove from start of list */\n\t\telse\n\t\t{\n\t\t\t*x1 = pLineList->x1 ;\n\t\t\t*x2 = pLineList->x2 ;\n\t\t\t*y  = pLineList->y ;\n\t\t\t*dy = pLineList->dy ;\n\t\t\tpThis = pLineList ;\n\t\t\tpLineList = pLineList->pNext ;\n\t\t\tif (pLineList) \n\t\t\t\tpLineList->pPrev = (HLINE_NODE*)0 ;\n\t\t}\n\n\t\tpThis->pNext = pFreeList ;\n\t\tpFreeList = pThis ;\n\t\tLastY = *y ;\n\t}\n}\n\n/***** Single Visit Code *******************************************/\n\n/* Jan 24, 2004\n * Testing showed a gaping hole in the push opposite code, that\n * would cause QuickFill to get stuck. The cause of this was the\n * fact that push opposite just reduced the number of revisits but\n * did not stop them.\n */\n\n/* Adds line to visited block list */\nstatic void PushVisitedLine(int x1, int x2, int y)\n{\n\tHLINE_NODE *pNew = pFreeList ;\n\tif (pNew) \n\t\tpFreeList = pFreeList->pNext ;\n\telse\n\t\tpNew = (HLINE_NODE*) malloc (sizeof(HLINE_NODE)) ;\n\t/* Add to start of list */\n\tpNew->x1 = x1 ;\n\tpNew->x2 = x2 ;\n\tpNew->y  = y ;\n\tpNew->pNext = pVisitList ;\n\tpVisitList = pNew ;\n}\n\n/* Checks if line has already been visited */\nstatic int IsRevisit(int x1,int x2,int y)\n{\n\tHLINE_NODE* pNext = pVisitList ;\n\twhile (pNext)\n\t{\n\t\tif (pNext->y == y && pNext->x1 <= x1 && x2 <= pNext->x2)\n\t\t\tbreak ;\n\t\tpNext = pNext->pNext ;\n\t}\n\treturn (pNext != NULL) ;\n}\n\n/* Find next line segment on parent line.\n * Note: This function is designed to be\n *\t\tcalled until NULL is returned.\n */\nstatic HLINE_NODE* FindNextLine(int x1,int x2,int y)\n{\n\tstatic HLINE_NODE *pFindNext ;\n\tHLINE_NODE *pThis ;\n\tif (!pFindNext) \n\t\tpFindNext = pLineList ;\n\tfor (pThis=pFindNext ;pThis ;pThis=pThis->pNext)\n\t{\n\t\tif ((pThis->y+pThis->dy) == y)\n\t\t{\n\t\t\tif (x1 < pThis->x1 && pThis->x1 <= x2) \n\t\t\t{\n\t\t\t\tpFindNext = pThis->pNext ;\n\t\t\t\treturn pThis ;\n\t\t\t}\n\t\t}\n\t}\n\tpFindNext = NULL ;\n\treturn NULL ;\n}\n\n/* Removes pThis from line list */\nstatic void PopThis(HLINE_NODE *pThis)\n{\n\tif (pLineList)\n\t{\n\t\t/* If pThis is not start of list */\n\t\tif (pThis->pPrev)\n\t\t{\n\t\t\tHLINE_NODE *pPrev = pThis->pPrev ;\n\t\t\tpPrev->pNext = pThis->pNext ;\n\t\t\tif (pPrev->pNext) \n\t\t\t\tpPrev->pNext->pPrev = pPrev ;\n\t\t}\n\t\t/* Remove pThis from start of list */\n\t\telse\n\t\t{\n\t\t\tpLineList = pLineList->pNext ;\n\t\t\tif (pLineList) \n\t\t\t\tpLineList->pPrev = (HLINE_NODE*)0 ;\n\t\t}\n\t\tpThis->pNext = pFreeList ;\n\t\tpFreeList = pThis ;\n\t}\n}\n\n/* Push unvisited lines onto the stack\n *\n * +-----------------------------------+\n * |                                   |\n * +---+   +---+   +---+   +---+   +---+\n * |   |   |   |   |   |   |   |   |   |\n * |   |(..+---+...+---+...+---+..)|   | <- Pushed Up\n * |   |xxxxxxxxxxxxxSxxxxxxxxxxxxx|   | <- Drawn\n * +---+(-------------------------)+---+ <- Pushed Down\n *\n * +-----------------------------------+\n * |                                   |\n * +---+   +---+   +---+   +---+   +---+\n * |   |(.)|   |(.)|   |(.)|   |(.)|   | <- Pushed Up\n * |   |xxx+...+xxx+...+xxx+...+xxx|   | <- Drawn\n * |   |xxxxxxxxxxxxxxxxxxxxxxxxxxx|   |\n * +---+---------------------------+---+\n *\n * +-----------------------------------+\n * |                                   |\n * +---+(.)+---+(.)+---+(.)+---+(.)+---+ <- Pushed Up\n * |   |xxx|   |xxx|   |xxx|   |xxx|   | <- Drawn\n * |   |xxx+---+xxx+---+xxx+---+xxx|   |\n * |   |xxxxxxxxxxxxxxxxxxxxxxxxxxx|   |\n * +---+---------------------------+---+\n *\n * +-----------------------------------+\n * |    (.)     (.)     (.)     (.)    | <- Pushed Up\n * +---+xxx+---+xxx+---+xxx+---+xxx+---+ <- Drawn\n * |   |xxx|   |xxx|   |xxx|   |xxx|   |\n * |   |xxx+---+xxx+---+xxx+---+xxx|   |\n * |   |xxxxxxxxxxxxxxxxxxxxxxxxxxx|   |\n * +---+---------------------------+---+\n *\n * +(---------------------------------)+ <- Pushed Up\n * |xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx| <- Drawn\n * +(-)+xxx+(-)+xxx+(-)+xxx+(-)+xxx+(-)+ <- Pushed Down (PushOpposite)\n * |   |xxx|   |xxx|   |xxx|   |xxx|   |\n * |   |xxx+---+xxx+---+xxx+---+xxx|   |\n * |   |xxxxxxxxxxxxxxxxxxxxxxxxxxx|   |\n * +---+---------------------------+---+\n */\nstatic void PushOpposite(int OldX1,int OldX2,int x1,int x2,int y,int dy)\n{\n\t/* Find next line on parent line */\n\tHLINE_NODE *pFind = FindNextLine(x1,x2,y) ;\n\tif (!pFind)\n\t{\n\t\t/* push cliped left ends */\n\t\tif (x1 < --OldX1) \n\t\t\tPushLine(x1,--OldX1,y,-dy) ;\n\t\tif (x2 > ++OldX2) \n\t\t\tPushLine(++OldX2,x2,y,-dy) ;\n\t}\n\telse\n\t{\n\t\t/* push cliped left */\n\t\tif (x1 < --OldX1) \n\t\t\tPushLine(x1,--OldX1,y,-dy) ;\n\t\t/* set test value for right cliping */\n\t\tOldX1 = x2+1 ;\n\t\tdo\n\t\t{\n\t\t\t/* push valid line only */\n\t\t\tif (++OldX2 < pFind->x1-2) \n\t\t\t\tPushLine(++OldX2,pFind->x1-2,y,-dy) ;\n\t\t\tOldX2 = pFind->x2 ;\n\t\t\t/* clip right end if needed */\n\t\t\tif (OldX2 > OldX1)\n\t\t\t{\n\t\t\t\tpFind->x1 = ++OldX1 ;\n\t\t\t}\n\t\t\telse /* pop previously visited line */\n\t\t\t\tPopThis(pFind) ;\n\t\t\tpFind = FindNextLine(x1,x2,y) ;\n\t\t} while (pFind) ;\n\n\t\t/* Special Cases\n\t\t *\n\t\t * S = Seed point\n\t\t * x = Filled point\n\t\t * o = Unfilled point\n\t\t *\n\t\t * CASE 1:                CASE 2: Indirectly solved by\n\t\t *                                the solution to case 1.\n\t\t * +-----------------+    +-----------------+\n\t\t * |xxxxxxxxxxxxxxxxx|    |xxxxxxxxxxxxxxxxx|\n\t\t * |x+-----+x+-----+x|    |x+-----+x+-----+x|\n\t\t * |x|xxxxx|x|x|x|x|x|    |x|xxxxx|x|x|x|x|x|\n\t\t * |x|x|x|x|x|x|x|x|x|    |x|x|x|x|x|x|x|x|x|\n\t\t * |x|x|x|x|x|x|x|x|x|    |x|x|x|x|x|x|x|x|x|\n\t\t * |x|x|x|x|x|x|x|x|x|    |x|x|x|x|x|x|x|x|x|\n\t\t * |xxxxxxxxxxxxxxx|x|    |xxxxxxxSxxxxxxx|x|\n\t\t * |x|x|x|x|x|o|o|o|x|    |x|x|x|o|x|x|x|x|x|\n\t\t * |x|x|x|x|x|o|o|o|x|    |x|x|x|o|x|x|x|x|x|\n\t\t * |x|x|x|x|x|o|o|o|x|    |x|x|x|o|x|x|x|x|x|\n\t\t * |x|xxxxx|x|o|o|o|x|    |x|xxxxx|x|x|x|x|x|\n\t\t * |x+-----+x+-----+x|    |x+-----+x+-----+x|\n\t\t * |xxxxxxxxxxxxxxxxS|    |xxxxxxxxxxxxxxxxx|\n\t\t * +-----------------+    +-----------------+\n\t\t *\n\t\t */\n\t\tif (++OldX2 < x2) \n\t\t\tPushLine(OldX2,x2,y,-dy) ;\n\t}\n\tPushVisitedLine(x1,x2,y) ;\n}\n\n// Arguments: Coordinates of horizontal line and new color of line.\nstatic void DrawHorizontalLine(unsigned int *pBitmap, int x1, int x2, int y, int w, unsigned int dwValue)\n{\n\tunsigned int *p = &pBitmap[x1 + w*y] ;\n\tfor ( ; x1 <= x2 ; ++x1) \n\t\t*p++ = dwValue ;\n}\n\n//\txmin > result -> failure\nstatic int ScanLeft(unsigned int *pBitmap, int x, int y, int w, int h, int xmin, unsigned int dwValue)\n{\n\tunsigned int *p = &pBitmap[x + w*y] ;\n\tif ((x < 0) || (x >= w) || (y < 0) || (y >= h))\n\t\treturn --xmin ;\n\tfor ( ; x >= xmin ; --x)\n\t\tif (dwValue != *p--)\n\t\t\tbreak ;\n\treturn x ;\n}\n\n//\txmin > result -> failure\nstatic int SearchLeft(unsigned int *pBitmap, int x, int y, int w, int h, int xmin, unsigned int dwValue)\n{\n\tunsigned int *p = &pBitmap[x + w*y] ;\n\tif ((x < 0) || (x >= w) || (y < 0) || (y >= h))\n\t\treturn --xmin ;\n\tfor ( ; x >= xmin ; --x)\n\t\tif (dwValue == *p--)\n\t\t\tbreak ;\n\treturn x ;\n}\n\n//\txmax < result -> failure\nstatic int ScanRight(unsigned int *pBitmap, int x, int y, int w, int h, int xmax, unsigned int dwValue)\n{\n\tunsigned int *p = &pBitmap[x + w*y] ;\n\tif ((x < 0) || (x >= w) || (y < 0) || (y >= h))\n\t\treturn ++xmax ;\n\tfor ( ; x <= xmax ; ++x)\n\t\tif (dwValue != *p++)\n\t\t\tbreak ;\n\treturn x ;\n}\n\n//\txmax < result -> failure\nstatic int SearchRight(unsigned int *pBitmap, int x, int y, int w, int h, int xmax, unsigned int dwValue)\n{\n\tunsigned int *p = &pBitmap[x + w*y] ;\n\tif ((x < 0) || (x >= w) || (y < 0) || (y >= h))\n\t\treturn ++xmax ;\n\tfor ( ; x <= xmax ; ++x)\n\t\tif (dwValue == *p++)\n\t\t\tbreak ;\n\treturn x ;\n}\n\n//----------------------------------------------------------------------------\n// Public methods\n//----------------------------------------------------------------------------\n\n/* Arguments:\n *\t\tPointer to 32-bpp bitmap to fill\n *\t\tcoordinates of start point\n *\t\twidth and height of bitmap\n *\t\tfill color 32-bits\n *\t\ttarget color 32-bits\n *\t\ttype 0 = flood while target, 1 = flood until target\n*/\nvoid flood(unsigned int* pBitmap, int x, int y, int w, int h,\n\t\tunsigned int fill_color, unsigned int target_color, int type)\n{\n\tint dy ;\n\tint ChildLeft, ChildRight ;\n\tint ParentLeft, ParentRight ;\n\n\t/* Initialize global variables */\n\tLastY = -1 ;\n\tpVisitList = NULL ;\n\tpLineList = NULL ;\n\tpFreeList = NULL ;\n\n\t/* Initialize internal info based on fill type */\n\tif (type)\n\t\tbXSortOn = 1 ;\n\telse\n\t\tbXSortOn = 0 ;\n\n#define FindLeft(p,x,y,w,h,xmin,color) \\\n\t(type ? SearchLeft(p,x,y,w,h,xmin,color) : ScanLeft(p,x,y,w,h,xmin,color))\n#define FindRight(p,x,y,w,h,xmax,color) \\\n\t(type ? SearchRight(p,x,y,w,h,xmax,color) : ScanRight(p,x,y,w,h,xmax,color))\n#define SkipRight(p,x,y,w,h,xmax,color) \\\n\t(type ? ScanRight(p,x,y,w,h,xmax,color) : SearchRight(p,x,y,w,h,xmax,color))\n\n\t// initialise line list\n\tpFreeList = (HLINE_NODE*) malloc (sizeof(HLINE_NODE)) ;\n\tpFreeList->pNext = NULL ;\n\n\t/* Push starting point on stack.\n\t * During testing calling FindLeft() & FindRight() here reduced the number\n\t * of revisits by 1 and the number of items on the visit list by 2.\n\t */\n\tChildLeft  = FindLeft(pBitmap,x,y,w,h,0,target_color)+1 ;\n\tChildRight = FindRight(pBitmap,x,y,w,h,w - 1,target_color)-1 ;\n\tPushLine(ChildLeft,ChildRight,y,+1) ; /* Needed in one special case */\n\tPushLine(ChildLeft,ChildRight,++y,-1) ;\n\n\t/* Now start flooding */\n\twhile (pLineList)\n\t{\n\t\tPopLine(&ParentLeft,&ParentRight,&y,&dy) ;\n\t\ty += dy ;\n\t\tif (y < 0 || h - 1 < y)\n\t\t\tcontinue ;\n\n\t\tif (bXSortOn && IsRevisit(ParentLeft,ParentRight,y))\n\t\t\tcontinue ;\n\n\t\t/* Find ChildLeft end  (ChildLeft>ParentLeft on failure)  */\n\t\tChildLeft = FindLeft(pBitmap,ParentLeft,y,w,h,0,target_color)+1 ;\n\t\tif (ChildLeft<=ParentLeft)\n\t\t{\n\t\t\t/* Find ChildRight end  (this should not fail here)  */\n\t\t\tChildRight = FindRight(pBitmap,ParentLeft+1,y,w,h,w - 1,target_color)-1 ;\n\n\t\t\t/* Fill line */\n\t\t\tif (ChildLeft == ChildRight) \n\t\t\t\tpBitmap[ChildRight + y*w] = fill_color ;\n\t\t\telse\n\t\t\t\tDrawHorizontalLine(pBitmap,ChildLeft,ChildRight,y,w,fill_color) ;\n\n\t\t\t/* Push unvisited lines */\n\t\t\tif (ParentLeft-1<=ChildLeft && ChildRight<=ParentRight+1)\n\t\t\t{\n\t\t\t\t/* No reverse clipping required\n\t\t\t\t *\n\t\t\t\t * Example: Going down\n\t\t\t\t * +-------------+\n\t\t\t\t * |xxxxxxxxxxxxx|\n\t\t\t\t * +---+xxxxx+---+\n\t\t\t\t * |   |xxxxx|\t |   <- Parent Line (CASE 1)\n\t\t\t\t * |   |xxxxx|\t |   <- Child Line\n\t\t\t\t * |   |xxxxx|   |\n\t\t\t\t * |  ++xxxxx++  |   <- Parent Line (CASE 2)\n\t\t\t\t * |  |xxxxxxx|  |   <- Child Line\n\t\t\t\t * +--+-------+--+\n\t\t\t\t */\n\t\t\t\tPushLine(ChildLeft,ChildRight,y,dy) ;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tif (bXSortOn)\n\t\t\t\t{\n\t\t\t\t\tPushOpposite(ParentLeft,ParentRight,ChildLeft,ChildRight,y,dy) ;\n\t\t\t\t}\n\t\t\t\telse if (ChildLeft == ParentLeft)\n\t\t\t\t{\n\t\t\t\t\t/* Reverse clip left\n\t\t\t\t\t *\n\t\t\t\t\t * Example: Going up\n\t\t\t\t\t * +-----------------+\n\t\t\t\t\t * |xxxxxxxxxxxxxxxxx|   <- Child Line\n\t\t\t\t\t * |xxx+----+   +----+   <- Parent Line\n\t\t\t\t\t * |xxx|    |   |    |\n\t\t\t\t\t * +---+----+---+----+\n\t\t\t\t\t */\n\t\t\t\t\tPushLine(ParentRight+2,ChildRight,y,-dy) ;\n\t\t\t\t}\n\t\t\t\telse if (ChildRight == ParentRight)\n\t\t\t\t{\n\t\t\t\t\t/* Reverse clip right\n\t\t\t\t\t *\n\t\t\t\t\t * Example: Going up\n\t\t\t\t\t * +-----------------+\n\t\t\t\t\t * |xxxxxxxxxxxxxxxxx|   <- Child Line\n\t\t\t\t\t * +----+   +----+xxx|   <- Parent Line\n\t\t\t\t\t * |    |   |    |xxx|\n\t\t\t\t\t * +----+---+----+---+\n\t\t\t\t\t */\n\t\t\t\t\tPushLine(ChildLeft,ParentLeft-2,y,-dy) ;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\t/* Normal reverse push\n\t\t\t\t\t *\n\t\t\t\t\t * Example: Going up\n\t\t\t\t\t * +-------------------+\n\t\t\t\t\t * |xxxxxxxxxxxxxxxxxxx| <- Child Line\n\t\t\t\t\t * +   +---+xxx+---+   | <- Parent Line\n\t\t\t\t\t * |   |   |xxx|   |   |\n\t\t\t\t\t * +---+---+---+---+---+\n\t\t\t\t\t */\n\t\t\t\t\tPushLine(ChildLeft,ChildRight,y,-dy) ;\n\t\t\t\t}\n\t\t\t\tPushLine(ChildLeft,ChildRight,y,dy) ;\n\t\t\t}\n\t\t\t/* Addvance ChildRight end on to border */\n\t\t\t++ChildRight ;\n\t\t}\n\t\telse ChildRight = ParentLeft ;\n\n\t\t/* Fill betweens */\n\t\twhile (ChildRight < ParentRight)\n\t\t{\n\t\t\t/* Skip to new ChildLeft end  (ChildRight>ParentRight on failure)  */\n\t\t\tChildRight = SkipRight(pBitmap,ChildRight+1,y,w,h,ParentRight,target_color) ;\n\t\t\t/* If new ChildLeft end found */\n\t\t\tif (ChildRight<=ParentRight)\n\t\t\t{\n\t\t\t\tChildLeft = ChildRight ;\n\n\t\t\t\t/* Find ChildRight end  (this should not fail here)  */\n\t\t\t\tChildRight = FindRight(pBitmap,ChildLeft+1,y,w,h,w - 1,target_color)-1 ;\n\n\t\t\t\t/* Fill line */\n\t\t\t\tif (ChildLeft == ChildRight) \n\t\t\t\t\tpBitmap[ChildRight + y*w] = fill_color ;\n\t\t\t\telse\n\t\t\t\t\tDrawHorizontalLine(pBitmap,ChildLeft,ChildRight,y,w,fill_color) ;\n\n\t\t\t\t/* Push unvisited lines */\n\t\t\t\tif (ChildRight <= ParentRight+1)\n\t\t\t\t{\n\t\t\t\t\tPushLine(ChildLeft,ChildRight,y,dy) ;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tif (bXSortOn)\n\t\t\t\t\t{\n\t\t\t\t\t\tPushOpposite(ParentLeft,ParentRight,ChildLeft,ChildRight,y,dy) ;\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tPushLine(ChildLeft,ChildRight,y,-dy) ;\n\t\t\t\t\tPushLine(ChildLeft,ChildRight,y,dy) ;\n\t\t\t\t}\n\t\t\t\t/* Advance ChildRight end onto border */\n\t\t\t\t++ChildRight ;\n\t\t\t}\n\t\t}\n\t}\n\n\tFreeList() ;\n}\n"
  },
  {
    "path": "src/sort.c",
    "content": "// Shell sort\n// iOS does not permit arbitrary code execution so the code which would normally\n// go in 'sortlib.bbc' is put here to be compiled with the BBC Basic application\n\n#include <unistd.h>\n\n// Base address for 32-bit offsets into heap:\n#if defined(__x86_64__) || defined(__aarch64__) || defined(__arm64__)\nextern char *userRAM ;\n#define zero userRAM\n#else\n#define zero (char*) 0\n#endif\n\n#if defined(__arm__) || defined(__aarch64__) || defined(__arm64__) || defined(__EMSCRIPTEN__)\ntypedef double variant ;\n#else\ntypedef long double variant ;\n#endif\n\ntypedef struct tagSTR\n{\n\tunsigned int p ; // 32 bit pointer\n\tunsigned int l ;\n} STR, *LPSTR ;\n\nstatic int compare (void *src, void *dst, unsigned char type)\n{\n\tswitch (type)\n\t    {\n\t\tcase 1:\treturn\t(*(unsigned char*)dst > *(unsigned char*)src) -\n\t\t\t\t(*(unsigned char*)dst < *(unsigned char*)src) ; \n\n\t\tcase 4: return\t(*(int*)dst > *(int*)src) - (*(int*)dst < *(int*)src) ; \n\n\t\tcase 10:\n\t\t\tif ((*(short*)(dst+8) == 0) && (*(short*)(src+8) == 0))\n\t\t\t\tgoto case40 ;\n\t\t    {\n\t\t\tvariant d, s ;\n\t\t\tif (*(short*)(dst+8) == 0)\n\t\t\t\td = *(long long *)dst ;\n\t\t\telse\n\t\t\t\td = *(variant *)dst ;\n\t\t\tif (*(short*)(src+8) == 0)\n\t\t\t\ts = *(long long *)src ;\n\t\t\telse\n\t\t\t\ts = *(variant *)src ;\n\t\t\treturn (d > s) - (d < s) ;\n\t\t    }\n\t\t    \n\t\tcase 8:\n\t\t    {\n\t\t\tdouble d = *(double *)dst ;\n\t\t\tdouble s = *(double *)src ;\n\t\t\treturn (d > s) - (d < s) ;\n\t\t    }\n\n\t\tcase 40:\n\t\tcase40:\n\t\t    {\n\t\t\tlong long d = *(long long*)dst ;\n\t\t\tlong long s = *(long long*)src ;\n\t\t\treturn (d > s) - (d < s) ;\n\t\t    }\n\n\t\tcase 136:\n\t\t    {\n\t\t\tunsigned int len ;\n\t\t\tSTR s = *(STR*)src ;\n\t\t\tSTR d = *(STR*)dst ;\n\t\t\tlen = s.l ;\n\t\t\tif (len > d.l)\n\t\t\t\tlen = d.l ;\n\t\t\twhile (len--)\n\t\t\t    {\n\t\t\t\tint result = ((*(d.p + zero) > *(s.p + zero)) -\n\t\t\t\t\t      (*(d.p + zero) < *(s.p + zero))) ;\n\t\t\t\tif (result)\n\t\t\t\t\treturn result ;\n\t\t\t\td.p++ ;\n\t\t\t\ts.p++ ;\n\t\t\t    }\n\t\t\treturn (d.l > s.l) - (d.l < s.l) ;\n\t\t    }\n\t    }\n\treturn 0 ;\n}\n\nvoid sortup (int eax, int ebx, int ecx, unsigned int edx, unsigned int esi, unsigned int edi, void *ebp)\n{\n\tunsigned int gap = 0xFFFFFFFF ;\n\tvoid *savebp = ebp ;\n\n\tif (ecx <= 0)\n\t\treturn ;\n\n\tdo\n\t\tgap = gap >> 1 ; // n.b. unsigned\n\twhile (gap >= ecx) ;\n\n\tdo\n\t    {\n\t\tedx = 0 ;\n\t\tesi = 0 ;\n\t\tedi = esi + gap ;\n\t\tdo\n\t\t    {\n\t\t\tint result = 0 ;\n\t\t\tunsigned int num ;\n\n\t\t\tebp = savebp ;\n\t\t\tnum = *(unsigned char*)ebp++ ; // number of arrays\n\t\t\twhile (num--)\n\t\t\t    {\n\t\t\t\tunsigned char type = *(unsigned char*)ebp++ ;\n\t\t\t\tchar *ebx = *(char **)ebp ;\n\t\t\t\tebp += sizeof(void *) ;\n\t\t\t\tchar *src = ebx + esi * (type & 15) ;\n\t\t\t\tchar *dst = ebx + edi * (type & 15) ;\n\t\t\t\tresult = compare (src, dst, type) ;\n\t\t\t\tif (result) \n\t\t\t\t\tbreak ;\n\t\t\t    }\n\t\t\tif (result < 0)\n\t\t\t    {\n\t\t\t\tebp = savebp ;\n\t\t\t\tnum = *(unsigned char*)ebp++ ; // number of arrays\n\t\t\t\twhile (num--)\n\t\t\t\t    {\n\t\t\t\t\tunsigned char size = *(unsigned char*)ebp++ & 15 ;\n\t\t\t\t\tchar *ebx = *(char **)ebp ;\n\t\t\t\t\tebp += sizeof(void *) ;\n\t\t\t\t\tchar *src = ebx + esi * size ;\n\t\t\t\t\tchar *dst = ebx + edi * size ;\n\t\t\t\t\twhile (size--)\n\t\t\t\t\t    {\n\t\t\t\t\t\tchar tmp = *src ;\n\t\t\t\t\t\t*src++ = *dst ;\n\t\t\t\t\t\t*dst++ = tmp ;\n\t\t\t\t\t    }\n\t\t\t\t    }\n\n\t\t\t\tif (esi >= gap)\n\t\t\t\t    {\n\t\t\t\t\tedi = esi ;\n\t\t\t\t\tesi -= gap ;\n\t\t\t\t\tcontinue ;\n\t\t\t\t    }\n\t\t\t    }\n\t\t\tedx += 1 ;\n\t\t\tesi = edx ;\n\t\t\tedi = esi + gap ;\n\t\t    }\n\t\twhile (edi < ecx) ;\n\t\tgap = gap >> 1 ;\n\t    }\n\twhile (gap) ;\n\treturn ;\n}\n\nvoid sortdn (int eax, int ebx, int ecx, unsigned int edx, unsigned int esi, unsigned int edi, void *ebp)\n{\n\tunsigned int gap = 0xFFFFFFFF ;\n\tvoid *savebp = ebp ;\n\n\tif (ecx <= 0)\n\t\treturn ;\n\n\tdo\n\t\tgap = gap >> 1 ; // n.b. unsigned\n\twhile (gap >= ecx) ;\n\n\tdo\n\t    {\n\t\tedx = 0 ;\n\t\tesi = 0 ;\n\t\tedi = esi + gap ;\n\t\tdo\n\t\t    {\n\t\t\tint result = 0 ;\n\t\t\tunsigned int num ;\n\n\t\t\tebp = savebp ;\n\t\t\tnum = *(unsigned char*)ebp++ ; // number of arrays\n\t\t\twhile (num--)\n\t\t\t    {\n\t\t\t\tunsigned char type = *(unsigned char*)ebp++ ;\n\t\t\t\tchar *ebx = *(char **)ebp ;\n\t\t\t\tebp += sizeof(void *) ;\n\t\t\t\tchar *src = ebx + esi * (type & 15) ;\n\t\t\t\tchar *dst = ebx + edi * (type & 15) ;\n\t\t\t\tresult = compare (src, dst, type) ;\n\t\t\t\tif (result) \n\t\t\t\t\tbreak ;\n\t\t\t    }\n\t\t\tif (result > 0)\n\t\t\t    {\n\t\t\t\tebp = savebp ;\n\t\t\t\tnum = *(unsigned char*)ebp++ ; // number of arrays\n\t\t\t\twhile (num--)\n\t\t\t\t    {\n\t\t\t\t\tunsigned char size = *(unsigned char*)ebp++ & 15 ;\n\t\t\t\t\tchar *ebx = *(char **)ebp ;\n\t\t\t\t\tebp += sizeof(void *) ;\n\t\t\t\t\tchar *src = ebx + esi * size ;\n\t\t\t\t\tchar *dst = ebx + edi * size ;\n\t\t\t\t\twhile (size--)\n\t\t\t\t\t    {\n\t\t\t\t\t\tchar tmp = *src ;\n\t\t\t\t\t\t*src++ = *dst ;\n\t\t\t\t\t\t*dst++ = tmp ;\n\t\t\t\t\t    }\n\t\t\t\t    }\n\n\t\t\t\tif (esi >= gap)\n\t\t\t\t    {\n\t\t\t\t\tedi = esi ;\n\t\t\t\t\tesi -= gap ;\n\t\t\t\t\tcontinue ;\n\t\t\t\t    }\n\t\t\t    }\n\t\t\tedx += 1 ;\n\t\t\tesi = edx ;\n\t\t\tedi = esi + gap ;\n\t\t    }\n\t\twhile (edi < ecx) ;\n\t\tgap = gap >> 1 ;\n\t    }\n\twhile (gap) ;\n\treturn ;\n}\n\n// Timer callback\n// iOS does not permit arbitrary code execution so the code which would normally\n// go in 'timerlib.bbc' is put here to be compiled with the BBC Basic application\n\nint putevt (int, int, int, int) ;\ntypedef struct {char *handler; char *proc; unsigned char *flags; } timerparam ;\n\nunsigned int hook(unsigned int interval, timerparam *param)\n{\n\twhile (putevt (param->handler - zero, param->proc - zero, interval, 0x113) == 0)\n\t\tusleep(1000) ;\n\t*(param->flags) |= 0x20 ;\n\treturn interval ;\n}"
  },
  {
    "path": "src/sound_sdl.c",
    "content": "/*****************************************************************\\\n*       BBC BASIC Console Mode edition for Raspberry Pi Pico      *\n*       (C) 2022  R.T.Russell  http://www.rtrussell.co.uk/        *\n*                                                                 *\n*       The name 'BBC BASIC' is the property of the British       *\n*       Broadcasting Corporation and used with their permission   *\n*                                                                 *\n*       sound_sdl.c  BBCSDL-like sound (runs in second core)      *\n*       Version 0.13, 09-Feb-2022                                 *\n*                                                                 *\n*       Supports stereo PCM audio with a 16 kHz sampling rate and *\n*       ~13-bit samples (10-bit linear plus 8-fold over-sampling) *\n\\*****************************************************************/\n\n#define _GNU_SOURCE\n#define __USE_GNU\n#include <stdio.h>\n#include \"bbccon.h\"\n#include \"pico.h\"\n#include \"pico/stdlib.h\"\n#include \"pico/multicore.h\"\n#include \"hardware/irq.h\"  // interrupts\n#include \"hardware/pwm.h\"  // pwm \n#include \"hardware/sync.h\" // wait for interrupt\n\nvoid trap(void) ;\n \n#ifdef PICO_AUDIO_PWM_L_PIN\n#define AUDIO_PIN_L    PICO_AUDIO_PWM_L_PIN\n#else\n#define AUDIO_PIN_L    28\n#endif\n#ifdef PICO_AUDIO_PWM_R_PIN\n#define AUDIO_PIN_R    PICO_AUDIO_PWM_R_PIN\n#else\n#define AUDIO_PIN_R    27\n#endif\n#define AUDIO_CHUNK 160 // number of samples for 10 milliseconds at 16 kHz\n#define AUDIO_TOTAL AUDIO_CHUNK * 3 // total buffer size = 3 chunks\n\nstatic const unsigned short noises[8] = {\n\t0x8050,\n\t0x8300,\n\t0x8180,\n\t0x8300,\n\t0x8018,\n\t0x8018,\n\t0x8018,\n\t0x8018} ;\n\n// Table of SOUND pitches for 32 kHz sampling frequency):\nstatic const unsigned short freqs[256] = {\n\t0,\t// 0 = silence\n\t1026,\t// 1 = 62.63 Hz\n\t1041,\t// 2 = 63.54 Hz\n\t1056,\t// 3 = 64.47 Hz\n\t1072,\t// 4 = 65.41 Hz\n\t1087,\t// 5 = 66.36 Hz\n\t1103,\t// 6 = 67.32 Hz\n\t1119,\t// 7 = 68.30 Hz\n\t1135,\t// 8 = 69.30 Hz\n\t1152,\t// 9 = 70.30 Hz\n\t1169,\t// 10 = 71.33 Hz\n\t1186,\t// 11 = 72.36 Hz\n\t1203,\t// 12 = 73.42 Hz\n\t1220,\t// 13 = 74.48 Hz\n\t1238,\t// 14 = 75.57 Hz\n\t1256,\t// 15 = 76.67 Hz\n\t1274,\t// 16 = 77.78 Hz\n\t1293,\t// 17 = 78.91 Hz\n\t1312,\t// 18 = 80.06 Hz\n\t1331,\t// 19 = 81.23 Hz\n\t1350,\t// 20 = 82.41 Hz\n\t1370,\t// 21 = 83.61 Hz\n\t1390,\t// 22 = 84.82 Hz\n\t1410,\t// 23 = 86.06 Hz\n\t1430,\t// 24 = 87.31 Hz\n\t1451,\t// 25 = 88.58 Hz\n\t1472,\t// 26 = 89.87 Hz\n\t1494,\t// 27 = 91.17 Hz\n\t1515,\t// 28 = 92.50 Hz\n\t1538,\t// 29 = 93.84 Hz\n\t1560,\t// 30 = 95.21 Hz\n\t1583,\t// 31 = 96.59 Hz\n\t1606,\t// 32 = 98.00 Hz\n\t1629,\t// 33 = 99.42 Hz\n\t1653,\t// 34 = 100.87 Hz\n\t1677,\t// 35 = 102.34 Hz\n\t1701,\t// 36 = 103.83 Hz\n\t1726,\t// 37 = 105.34 Hz\n\t1751,\t// 38 = 106.87 Hz\n\t1776,\t// 39 = 108.42 Hz\n\t1802,\t// 40 = 110.00 Hz\n\t1828,\t// 41 = 111.60 Hz\n\t1855,\t// 42 = 113.22 Hz\n\t1882,\t// 43 = 114.87 Hz\n\t1909,\t// 44 = 116.54 Hz\n\t1937,\t// 45 = 118.24 Hz\n\t1965,\t// 46 = 119.96 Hz\n\t1994,\t// 47 = 121.70 Hz\n\t2023,\t// 48 = 123.47 Hz\n\t2052,\t// 49 = 125.27 Hz\n\t2082,\t// 50 = 127.09 Hz\n\t2113,\t// 51 = 128.94 Hz\n\t2143,\t// 52 = 130.81 Hz\n\t2174,\t// 53 = 132.72 Hz\n\t2206,\t// 54 = 134.65 Hz\n\t2238,\t// 55 = 136.60 Hz\n\t2271,\t// 56 = 138.59 Hz\n\t2304,\t// 57 = 140.61 Hz\n\t2337,\t// 58 = 142.65 Hz\n\t2371,\t// 59 = 144.73 Hz\n\t2406,\t// 60 = 146.83 Hz\n\t2441,\t// 61 = 148.97 Hz\n\t2476,\t// 62 = 151.13 Hz\n\t2512,\t// 63 = 153.33 Hz\n\t2549,\t// 64 = 155.56 Hz\n\t2586,\t// 65 = 157.83 Hz\n\t2623,\t// 66 = 160.12 Hz\n\t2662,\t// 67 = 162.45 Hz\n\t2700,\t// 68 = 164.81 Hz\n\t2740,\t// 69 = 167.21 Hz\n\t2779,\t// 70 = 169.64 Hz\n\t2820,\t// 71 = 172.11 Hz\n\t2861,\t// 72 = 174.61 Hz\n\t2902,\t// 73 = 177.15 Hz\n\t2945,\t// 74 = 179.73 Hz\n\t2988,\t// 75 = 182.34 Hz\n\t3031,\t// 76 = 185.00 Hz\n\t3075,\t// 77 = 187.69 Hz\n\t3120,\t// 78 = 190.42 Hz\n\t3165,\t// 79 = 193.19 Hz\n\t3211,\t// 80 = 196.00 Hz\n\t3258,\t// 81 = 198.85 Hz\n\t3305,\t// 82 = 201.74 Hz\n\t3353,\t// 83 = 204.68 Hz\n\t3402,\t// 84 = 207.65 Hz\n\t3452,\t// 85 = 210.67 Hz\n\t3502,\t// 86 = 213.74 Hz\n\t3553,\t// 87 = 216.85 Hz\n\t3604,\t// 88 = 220.00 Hz\n\t3657,\t// 89 = 223.20 Hz\n\t3710,\t// 90 = 226.45 Hz\n\t3764,\t// 91 = 229.74 Hz\n\t3819,\t// 92 = 233.08 Hz\n\t3874,\t// 93 = 236.47 Hz\n\t3931,\t// 94 = 239.91 Hz\n\t3988,\t// 95 = 243.40 Hz\n\t4046,\t// 96 = 246.94 Hz\n\t4105,\t// 97 = 250.53 Hz\n\t4164,\t// 98 = 254.18 Hz\n\t4225,\t// 99 = 257.87 Hz\n\t4286,\t// 100 = 261.63 Hz\n\t4349,\t// 101 = 265.43 Hz\n\t4412,\t// 102 = 269.29 Hz\n\t4476,\t// 103 = 273.21 Hz\n\t4541,\t// 104 = 277.18 Hz\n\t4607,\t// 105 = 281.21 Hz\n\t4674,\t// 106 = 285.30 Hz\n\t4742,\t// 107 = 289.45 Hz\n\t4811,\t// 108 = 293.66 Hz\n\t4881,\t// 109 = 297.94 Hz\n\t4952,\t// 110 = 302.27 Hz\n\t5024,\t// 111 = 306.67 Hz\n\t5098,\t// 112 = 311.13 Hz\n\t5172,\t// 113 = 315.65 Hz\n\t5247,\t// 114 = 320.24 Hz\n\t5323,\t// 115 = 324.90 Hz\n\t5401,\t// 116 = 329.63 Hz\n\t5479,\t// 117 = 334.42 Hz\n\t5559,\t// 118 = 339.29 Hz\n\t5640,\t// 119 = 344.22 Hz\n\t5722,\t// 120 = 349.23 Hz\n\t5805,\t// 121 = 354.31 Hz\n\t5889,\t// 122 = 359.46 Hz\n\t5975,\t// 123 = 364.69 Hz\n\t6062,\t// 124 = 369.99 Hz\n\t6150,\t// 125 = 375.38 Hz\n\t6240,\t// 126 = 380.84 Hz\n\t6330,\t// 127 = 386.38 Hz\n\t6422,\t// 128 = 392.00 Hz\n\t6516,\t// 129 = 397.70 Hz\n\t6611,\t// 130 = 403.48 Hz\n\t6707,\t// 131 = 409.35 Hz\n\t6804,\t// 132 = 415.30 Hz\n\t6903,\t// 133 = 421.35 Hz\n\t7004,\t// 134 = 427.47 Hz\n\t7106,\t// 135 = 433.69 Hz\n\t7209,\t// 136 = 440.00 Hz\n\t7314,\t// 137 = 446.40 Hz\n\t7420,\t// 138 = 452.89 Hz\n\t7528,\t// 139 = 459.48 Hz\n\t7638,\t// 140 = 466.16 Hz\n\t7749,\t// 141 = 472.94 Hz\n\t7861,\t// 142 = 479.82 Hz\n\t7976,\t// 143 = 486.80 Hz\n\t8092,\t// 144 = 493.88 Hz\n\t8209,\t// 145 = 501.07 Hz\n\t8329,\t// 146 = 508.36 Hz\n\t8450,\t// 147 = 515.75 Hz\n\t8573,\t// 148 = 523.25 Hz\n\t8698,\t// 149 = 530.86 Hz\n\t8824,\t// 150 = 538.58 Hz\n\t8953,\t// 151 = 546.42 Hz\n\t9083,\t// 152 = 554.37 Hz\n\t9215,\t// 153 = 562.43 Hz\n\t9349,\t// 154 = 570.61 Hz\n\t9485,\t// 155 = 578.91 Hz\n\t9623,\t// 156 = 587.33 Hz\n\t9763,\t// 157 = 595.87 Hz\n\t9905,\t// 158 = 604.54 Hz\n\t10049,\t// 159 = 613.33 Hz\n\t10195,\t// 160 = 622.25 Hz\n\t10343,\t// 161 = 631.30 Hz\n\t10494,\t// 162 = 640.49 Hz\n\t10646,\t// 163 = 649.80 Hz\n\t10801,\t// 164 = 659.26 Hz\n\t10958,\t// 165 = 668.84 Hz\n\t11118,\t// 166 = 678.57 Hz\n\t11279,\t// 167 = 688.44 Hz\n\t11444,\t// 168 = 698.46 Hz\n\t11610,\t// 169 = 708.62 Hz\n\t11779,\t// 170 = 718.92 Hz\n\t11950,\t// 171 = 729.38 Hz\n\t12124,\t// 172 = 739.99 Hz\n\t12300,\t// 173 = 750.75 Hz\n\t12479,\t// 174 = 761.67 Hz\n\t12661,\t// 175 = 772.75 Hz\n\t12845,\t// 176 = 783.99 Hz\n\t13032,\t// 177 = 795.39 Hz\n\t13221,\t// 178 = 806.96 Hz\n\t13414,\t// 179 = 818.70 Hz\n\t13609,\t// 180 = 830.61 Hz\n\t13807,\t// 181 = 842.69 Hz\n\t14007,\t// 182 = 854.95 Hz\n\t14211,\t// 183 = 867.38 Hz\n\t14418,\t// 184 = 880.00 Hz\n\t14628,\t// 185 = 892.80 Hz\n\t14840,\t// 186 = 905.79 Hz\n\t15056,\t// 187 = 918.96 Hz\n\t15275,\t// 188 = 932.33 Hz\n\t15497,\t// 189 = 945.89 Hz\n\t15723,\t// 190 = 959.65 Hz\n\t15952,\t// 191 = 973.61 Hz\n\t16184,\t// 192 = 987.77 Hz\n\t16419,\t// 193 = 1002.13 Hz\n\t16658,\t// 194 = 1016.71 Hz\n\t16900,\t// 195 = 1031.50 Hz\n\t17146,\t// 196 = 1046.50 Hz\n\t17395,\t// 197 = 1061.72 Hz\n\t17648,\t// 198 = 1077.17 Hz\n\t17905,\t// 199 = 1092.83 Hz\n\t18165,\t// 200 = 1108.73 Hz\n\t18430,\t// 201 = 1124.86 Hz\n\t18698,\t// 202 = 1141.22 Hz\n\t18970,\t// 203 = 1157.82 Hz\n\t19246,\t// 204 = 1174.66 Hz\n\t19526,\t// 205 = 1191.74 Hz\n\t19810,\t// 206 = 1209.08 Hz\n\t20098,\t// 207 = 1226.67 Hz\n\t20390,\t// 208 = 1244.51 Hz\n\t20687,\t// 209 = 1262.61 Hz\n\t20987,\t// 210 = 1280.97 Hz\n\t21293,\t// 211 = 1299.61 Hz\n\t21602,\t// 212 = 1318.51 Hz\n\t21917,\t// 213 = 1337.69 Hz\n\t22235,\t// 214 = 1357.15 Hz\n\t22559,\t// 215 = 1376.89 Hz\n\t22887,\t// 216 = 1396.91 Hz\n\t23220,\t// 217 = 1417.23 Hz\n\t23558,\t// 218 = 1437.85 Hz\n\t23900,\t// 219 = 1458.76 Hz\n\t24248,\t// 220 = 1479.98 Hz\n\t24601,\t// 221 = 1501.50 Hz\n\t24958,\t// 222 = 1523.34 Hz\n\t25322,\t// 223 = 1545.50 Hz\n\t25690,\t// 224 = 1567.98 Hz\n\t26063,\t// 225 = 1590.79 Hz\n\t26443,\t// 226 = 1613.93 Hz\n\t26827,\t// 227 = 1637.40 Hz\n\t27217,\t// 228 = 1661.22 Hz\n\t27613,\t// 229 = 1685.38 Hz\n\t28015,\t// 230 = 1709.90 Hz\n\t28422,\t// 231 = 1734.77 Hz\n\t28836,\t// 232 = 1760.00 Hz\n\t29255,\t// 233 = 1785.60 Hz\n\t29681,\t// 234 = 1811.57 Hz\n\t30113,\t// 235 = 1837.92 Hz\n\t30551,\t// 236 = 1864.66 Hz\n\t30995,\t// 237 = 1891.78 Hz\n\t31446,\t// 238 = 1919.29 Hz\n\t31903,\t// 239 = 1947.21 Hz\n\t32367,\t// 240 = 1975.53 Hz\n\t32838,\t// 241 = 2004.27 Hz\n\t33316,\t// 242 = 2033.42 Hz\n\t33800,\t// 243 = 2063.00 Hz\n\t34292,\t// 244 = 2093.00 Hz\n\t34791,\t// 245 = 2123.45 Hz\n\t35297,\t// 246 = 2154.33 Hz\n\t35810,\t// 247 = 2185.67 Hz\n\t36331,\t// 248 = 2217.46 Hz\n\t36859,\t// 249 = 2249.71 Hz\n\t37395,\t// 250 = 2282.44 Hz\n\t37939,\t// 251 = 2315.64 Hz\n\t38491,\t// 252 = 2349.32 Hz\n\t39051,\t// 253 = 2383.49 Hz\n\t39619,\t// 254 = 2418.16 Hz\n\t40195\t// 255 = 2453.33 Hz\n} ;\n\n// Logarithmic amplitude table:\nstatic const short ampl[128] = {\n\t0x0000, 0x0368, 0x0381, 0x039B, 0x03B6, 0x03D2, 0x03EF, 0x040C,\n\t0x042A, 0x044A, 0x046A, 0x048B, 0x04AD, 0x04D0, 0x04F3, 0x0518,\n\t0x053F, 0x0566, 0x058E, 0x05B8, 0x05E2, 0x060E, 0x063C, 0x066A,\n\t0x069A, 0x06CC, 0x06FE, 0x0733, 0x0768, 0x07A0, 0x07D9, 0x0813,\n\t0x0850, 0x088E, 0x08CE, 0x0910, 0x0953, 0x0999, 0x09E1, 0x0A2B,\n\t0x0A77, 0x0AC5, 0x0B16, 0x0B68, 0x0BBE, 0x0C15, 0x0C70, 0x0CCD,\n\t0x0D2C, 0x0D8F, 0x0DF4, 0x0E5D, 0x0EC8, 0x0F36, 0x0FA8, 0x101D,\n\t0x1096, 0x1112, 0x1191, 0x1214, 0x129C, 0x1327, 0x13B6, 0x1449,\n\t0x14E1, 0x157D, 0x161E, 0x16C3, 0x176D, 0x181C, 0x18D0, 0x198A,\n\t0x1A49, 0x1B0D, 0x1BD7, 0x1CA8, 0x1D7E, 0x1E5A, 0x1F3D, 0x2027,\n\t0x2117, 0x220E, 0x230D, 0x2413, 0x2521, 0x2636, 0x2754, 0x287A,\n\t0x29A8, 0x2AE0, 0x2C20, 0x2D6A, 0x2EBE, 0x301B, 0x3183, 0x32F5,\n\t0x3472, 0x35FA, 0x378D, 0x392C, 0x3AD8, 0x3C90, 0x3E54, 0x4026,\n\t0x4206, 0x43F3, 0x45EF, 0x47FA, 0x4A14, 0x4C3E, 0x4E78, 0x50C3,\n\t0x531E, 0x558C, 0x580B, 0x5A9D, 0x5D43, 0x5FFC, 0x62C9, 0x65AC,\n\t0x68A4, 0x6BB2, 0x6ED7, 0x7214, 0x7568, 0x78D6, 0x7C5D, 0x7FFF} ;\n\n// Table of mask bytes for channel synchronisation:\nstatic const unsigned char syncs[256] = {\n\t0b11111111,\t// 00000000B\n\t0b11111111,\t// 00000001B\n\t0b11111111,\t// 00000010B\n\t0b11111111,\t// 00000011B\n\t0b11111111,\t// 00000100B\n\t0b11111010,\t// 00000101B\n\t0b11111111,\t// 00000110B\n\t0b11111111,\t// 00000111B\n\t0b11111111,\t// 00001000B\n\t0b11111111,\t// 00001001B\n\t0b11111111,\t// 00001010B\n\t0b11111111,\t// 00001011B\n\t0b11111111,\t// 00001100B\n\t0b11111111,\t// 00001101B\n\t0b11111111,\t// 00001110B\n\t0b11111111,\t// 00001111B\n\t0b11111111,\t// 00010000B\n\t0b11101110,\t// 00010001B\n\t0b11111111,\t// 00010010B\n\t0b11111111,\t// 00010011B\n\t0b11101011,\t// 00010100B\n\t0b11101010,\t// 00010101B\n\t0b11101011,\t// 00010110B\n\t0b11101011,\t// 00010111B\n\t0b11111111,\t// 00011000B\n\t0b11101110,\t// 00011001B\n\t0b11111111,\t// 00011010B\n\t0b11111111,\t// 00011011B\n\t0b11111111,\t// 00011100B\n\t0b11101110,\t// 00011101B\n\t0b11111111,\t// 00011110B\n\t0b11111111,\t// 00011111B\n\t0b11111111,\t// 00100000B\n\t0b11111111,\t// 00100001B\n\t0b11111111,\t// 00100010B\n\t0b11111111,\t// 00100011B\n\t0b11111111,\t// 00100100B\n\t0b11111010,\t// 00100101B\n\t0b11111111,\t// 00100110B\n\t0b11111111,\t// 00100111B\n\t0b11111111,\t// 00101000B\n\t0b11111111,\t// 00101001B\n\t0b11101010,\t// 00101010B\n\t0b11111111,\t// 00101011B\n\t0b11111111,\t// 00101100B\n\t0b11111111,\t// 00101101B\n\t0b11111111,\t// 00101110B\n\t0b11111111,\t// 00101111B\n\t0b11111111,\t// 00110000B\n\t0b11111111,\t// 00110001B\n\t0b11111111,\t// 00110010B\n\t0b11111111,\t// 00110011B\n\t0b11111111,\t// 00110100B\n\t0b11111010,\t// 00110101B\n\t0b11111111,\t// 00110110B\n\t0b11111111,\t// 00110111B\n\t0b11111111,\t// 00111000B\n\t0b11111111,\t// 00111001B\n\t0b11111111,\t// 00111010B\n\t0b11111111,\t// 00111011B\n\t0b11111111,\t// 00111100B\n\t0b11111111,\t// 00111101B\n\t0b11111111,\t// 00111110B\n\t0b11111111,\t// 00111111B\n\t0b11111111,\t// 01000000B\n\t0b10111110,\t// 01000001B\n\t0b11111111,\t// 01000010B\n\t0b11111111,\t// 01000011B\n\t0b10111011,\t// 01000100B\n\t0b10111010,\t// 01000101B\n\t0b10111011,\t// 01000110B\n\t0b10111011,\t// 01000111B\n\t0b11111111,\t// 01001000B\n\t0b10111110,\t// 01001001B\n\t0b11111111,\t// 01001010B\n\t0b11111111,\t// 01001011B\n\t0b11111111,\t// 01001100B\n\t0b10111110,\t// 01001101B\n\t0b11111111,\t// 01001110B\n\t0b11111111,\t// 01001111B\n\t0b10101111,\t// 01010000B\n\t0b10101110,\t// 01010001B\n\t0b10101111,\t// 01010010B\n\t0b10101111,\t// 01010011B\n\t0b10101011,\t// 01010100B\n\t0b10101010,\t// 01010101B\n\t0b10101011,\t// 01010110B\n\t0b10101011,\t// 01010111B\n\t0b10101111,\t// 01011000B\n\t0b10101110,\t// 01011001B\n\t0b10101111,\t// 01011010B\n\t0b10101111,\t// 01011011B\n\t0b10101111,\t// 01011100B\n\t0b10101110,\t// 01011101B\n\t0b10101111,\t// 01011110B\n\t0b10101111,\t// 01011111B\n\t0b11111111,\t// 01100000B\n\t0b10111110,\t// 01100001B\n\t0b11111111,\t// 01100010B\n\t0b11111111,\t// 01100011B\n\t0b10111011,\t// 01100100B\n\t0b10111010,\t// 01100101B\n\t0b10111011,\t// 01100110B\n\t0b10111011,\t// 01100111B\n\t0b11111111,\t// 01101000B\n\t0b10111110,\t// 01101001B\n\t0b11101010,\t// 01101010B\n\t0b11111111,\t// 01101011B\n\t0b11111111,\t// 01101100B\n\t0b10111110,\t// 01101101B\n\t0b11111111,\t// 01101110B\n\t0b11111111,\t// 01101111B\n\t0b11111111,\t// 01110000B\n\t0b10111110,\t// 01110001B\n\t0b11111111,\t// 01110010B\n\t0b11111111,\t// 01110011B\n\t0b10111011,\t// 01110100B\n\t0b10111010,\t// 01110101B\n\t0b10111011,\t// 01110110B\n\t0b10111011,\t// 01110111B\n\t0b11111111,\t// 01111000B\n\t0b10111110,\t// 01111001B\n\t0b11111111,\t// 01111010B\n\t0b11111111,\t// 01111011B\n\t0b11111111,\t// 01111100B\n\t0b10111110,\t// 01111101B\n\t0b11111111,\t// 01111110B\n\t0b11111111,\t// 01111111B\n\t0b11111111,\t// 10000000B\n\t0b11111111,\t// 10000001B\n\t0b11111111,\t// 10000010B\n\t0b11111111,\t// 10000011B\n\t0b11111111,\t// 10000100B\n\t0b11111010,\t// 10000101B\n\t0b11111111,\t// 10000110B\n\t0b11111111,\t// 10000111B\n\t0b11111111,\t// 10001000B\n\t0b11111111,\t// 10001001B\n\t0b10111010,\t// 10001010B\n\t0b11111111,\t// 10001011B\n\t0b11111111,\t// 10001100B\n\t0b11111111,\t// 10001101B\n\t0b11111111,\t// 10001110B\n\t0b11111111,\t// 10001111B\n\t0b11111111,\t// 10010000B\n\t0b11101110,\t// 10010001B\n\t0b11111111,\t// 10010010B\n\t0b11111111,\t// 10010011B\n\t0b11101011,\t// 10010100B\n\t0b11101010,\t// 10010101B\n\t0b11101011,\t// 10010110B\n\t0b11101011,\t// 10010111B\n\t0b11111111,\t// 10011000B\n\t0b11101110,\t// 10011001B\n\t0b10111010,\t// 10011010B\n\t0b11111111,\t// 10011011B\n\t0b11111111,\t// 10011100B\n\t0b11101110,\t// 10011101B\n\t0b11111111,\t// 10011110B\n\t0b11111111,\t// 10011111B\n\t0b11111111,\t// 10100000B\n\t0b11111111,\t// 10100001B\n\t0b10101110,\t// 10100010B\n\t0b11111111,\t// 10100011B\n\t0b11111111,\t// 10100100B\n\t0b11111010,\t// 10100101B\n\t0b10101110,\t// 10100110B\n\t0b11111111,\t// 10100111B\n\t0b10101011,\t// 10101000B\n\t0b10101011,\t// 10101001B\n\t0b10101010,\t// 10101010B\n\t0b10101011,\t// 10101011B\n\t0b11111111,\t// 10101100B\n\t0b11111111,\t// 10101101B\n\t0b10101110,\t// 10101110B\n\t0b11111111,\t// 10101111B\n\t0b11111111,\t// 10110000B\n\t0b11111111,\t// 10110001B\n\t0b11111111,\t// 10110010B\n\t0b11111111,\t// 10110011B\n\t0b11111111,\t// 10110100B\n\t0b11111010,\t// 10110101B\n\t0b11111111,\t// 10110110B\n\t0b11111111,\t// 10110111B\n\t0b11111111,\t// 10111000B\n\t0b11111111,\t// 10111001B\n\t0b10111010,\t// 10111010B\n\t0b11111111,\t// 10111011B\n\t0b11111111,\t// 10111100B\n\t0b11111111,\t// 10111101B\n\t0b11111111,\t// 10111110B\n\t0b11111111,\t// 10111111B\n\t0b11111111,\t// 11000000B\n\t0b11111111,\t// 11000001B\n\t0b11111111,\t// 11000010B\n\t0b11111111,\t// 11000011B\n\t0b11111111,\t// 11000100B\n\t0b11111010,\t// 11000101B\n\t0b11111111,\t// 11000110B\n\t0b11111111,\t// 11000111B\n\t0b11111111,\t// 11001000B\n\t0b11111111,\t// 11001001B\n\t0b11111111,\t// 11001010B\n\t0b11111111,\t// 11001011B\n\t0b11111111,\t// 11001100B\n\t0b11111111,\t// 11001101B\n\t0b11111111,\t// 11001110B\n\t0b11111111,\t// 11001111B\n\t0b11111111,\t// 11010000B\n\t0b11101110,\t// 11010001B\n\t0b11111111,\t// 11010010B\n\t0b11111111,\t// 11010011B\n\t0b11101011,\t// 11010100B\n\t0b11101010,\t// 11010101B\n\t0b11101011,\t// 11010110B\n\t0b11101011,\t// 11010111B\n\t0b11111111,\t// 11011000B\n\t0b11101110,\t// 11011001B\n\t0b11111111,\t// 11011010B\n\t0b11111111,\t// 11011011B\n\t0b11111111,\t// 11011100B\n\t0b11101110,\t// 11011101B\n\t0b11111111,\t// 11011110B\n\t0b11111111,\t// 11011111B\n\t0b11111111,\t// 11100000B\n\t0b11111111,\t// 11100001B\n\t0b11111111,\t// 11100010B\n\t0b11111111,\t// 11100011B\n\t0b11111111,\t// 11100100B\n\t0b11111010,\t// 11100101B\n\t0b11111111,\t// 11100110B\n\t0b11111111,\t// 11100111B\n\t0b11111111,\t// 11101000B\n\t0b11111111,\t// 11101001B\n\t0b11101010,\t// 11101010B\n\t0b11111111,\t// 11101011B\n\t0b11111111,\t// 11101100B\n\t0b11111111,\t// 11101101B\n\t0b11111111,\t// 11101110B\n\t0b11111111,\t// 11101111B\n\t0b11111111,\t// 11110000B\n\t0b11111111,\t// 11110001B\n\t0b11111111,\t// 11110010B\n\t0b11111111,\t// 11110011B\n\t0b11111111,\t// 11110100B\n\t0b11111010,\t// 11110101B\n\t0b11111111,\t// 11110110B\n\t0b11111111,\t// 11110111B\n\t0b11111111,\t// 11111000B\n\t0b11111111,\t// 11111001B\n\t0b11111111,\t// 11111010B\n\t0b11111111,\t// 11111011B\n\t0b11111111,\t// 11111100B\n\t0b11111111,\t// 11111101B\n\t0b11111111,\t// 11111110B\n\t0b10101010\t// 11111111B\n} ;\n\n// Sound waveform table (8 voices):\nstatic const short wavetable[8 * 2048] = {\n// Waveform 0 (square):\n        0x0000, 0x00FB, 0x01F6, 0x02F1, 0x03EC, 0x04E6, 0x05E1, 0x06DA, \n        0x07D3, 0x08CC, 0x09C4, 0x0ABB, 0x0BB1, 0x0CA6, 0x0D9A, 0x0E8E, \n        0x0F80, 0x1071, 0x1160, 0x124E, 0x133B, 0x1426, 0x1510, 0x15F8, \n        0x16DE, 0x17C3, 0x18A5, 0x1986, 0x1A65, 0x1B42, 0x1C1C, 0x1CF5, \n        0x1DCB, 0x1E9F, 0x1F71, 0x2040, 0x210D, 0x21D8, 0x22A0, 0x2365, \n        0x2428, 0x24E7, 0x25A5, 0x265F, 0x2717, 0x27CC, 0x287D, 0x292C, \n        0x29D8, 0x2A81, 0x2B27, 0x2BCA, 0x2C6A, 0x2D06, 0x2DA0, 0x2E36, \n        0x2EC9, 0x2F59, 0x2FE5, 0x306F, 0x30F5, 0x3177, 0x31F7, 0x3273, \n        0x32EB, 0x3361, 0x33D3, 0x3441, 0x34AC, 0x3514, 0x3579, 0x35DA, \n        0x3638, 0x3692, 0x36E9, 0x373D, 0x378E, 0x37DB, 0x3825, 0x386B, \n        0x38AE, 0x38EE, 0x392B, 0x3965, 0x399B, 0x39CE, 0x39FE, 0x3A2B, \n        0x3A55, 0x3A7C, 0x3A9F, 0x3AC0, 0x3ADE, 0x3AF9, 0x3B11, 0x3B26, \n        0x3B38, 0x3B48, 0x3B54, 0x3B5E, 0x3B66, 0x3B6B, 0x3B6D, 0x3B6D, \n        0x3B6A, 0x3B65, 0x3B5D, 0x3B54, 0x3B48, 0x3B39, 0x3B29, 0x3B16, \n        0x3B01, 0x3AEB, 0x3AD2, 0x3AB8, 0x3A9B, 0x3A7D, 0x3A5D, 0x3A3C, \n        0x3A19, 0x39F4, 0x39CE, 0x39A6, 0x397D, 0x3953, 0x3928, 0x38FB, \n        0x38CD, 0x389E, 0x386E, 0x383D, 0x380B, 0x37D9, 0x37A5, 0x3771, \n        0x373C, 0x3706, 0x36D0, 0x369A, 0x3663, 0x362C, 0x35F4, 0x35BC, \n        0x3584, 0x354B, 0x3513, 0x34DB, 0x34A2, 0x346A, 0x3431, 0x33F9, \n        0x33C1, 0x338A, 0x3352, 0x331B, 0x32E4, 0x32AE, 0x3279, 0x3243, \n        0x320F, 0x31DB, 0x31A8, 0x3175, 0x3143, 0x3112, 0x30E2, 0x30B2, \n        0x3084, 0x3056, 0x3029, 0x2FFE, 0x2FD3, 0x2FA9, 0x2F81, 0x2F59, \n        0x2F33, 0x2F0E, 0x2EEA, 0x2EC7, 0x2EA5, 0x2E85, 0x2E66, 0x2E48, \n        0x2E2B, 0x2E10, 0x2DF6, 0x2DDD, 0x2DC6, 0x2DB0, 0x2D9B, 0x2D87, \n        0x2D76, 0x2D65, 0x2D56, 0x2D48, 0x2D3B, 0x2D30, 0x2D26, 0x2D1E, \n        0x2D17, 0x2D11, 0x2D0D, 0x2D0A, 0x2D08, 0x2D07, 0x2D08, 0x2D0B, \n        0x2D0E, 0x2D13, 0x2D19, 0x2D20, 0x2D29, 0x2D32, 0x2D3D, 0x2D49, \n        0x2D56, 0x2D65, 0x2D74, 0x2D85, 0x2D96, 0x2DA9, 0x2DBC, 0x2DD1, \n        0x2DE7, 0x2DFD, 0x2E14, 0x2E2D, 0x2E46, 0x2E60, 0x2E7A, 0x2E96, \n        0x2EB2, 0x2ECF, 0x2EEC, 0x2F0A, 0x2F29, 0x2F48, 0x2F68, 0x2F89, \n        0x2FA9, 0x2FCB, 0x2FEC, 0x300E, 0x3030, 0x3053, 0x3076, 0x3099, \n        0x30BC, 0x30E0, 0x3103, 0x3127, 0x314B, 0x316E, 0x3192, 0x31B6, \n        0x31D9, 0x31FD, 0x3220, 0x3243, 0x3266, 0x3289, 0x32AB, 0x32CE, \n        0x32EF, 0x3311, 0x3332, 0x3353, 0x3373, 0x3393, 0x33B2, 0x33D1, \n        0x33EF, 0x340C, 0x342A, 0x3446, 0x3462, 0x347D, 0x3497, 0x34B1, \n        0x34CA, 0x34E2, 0x34F9, 0x3510, 0x3526, 0x353B, 0x354F, 0x3563, \n        0x3575, 0x3587, 0x3597, 0x35A7, 0x35B6, 0x35C4, 0x35D1, 0x35DD, \n        0x35E9, 0x35F3, 0x35FC, 0x3605, 0x360C, 0x3612, 0x3618, 0x361C, \n        0x3620, 0x3623, 0x3624, 0x3625, 0x3625, 0x3623, 0x3621, 0x361E, \n        0x361A, 0x3615, 0x360F, 0x3608, 0x3601, 0x35F8, 0x35EF, 0x35E4, \n        0x35D9, 0x35CD, 0x35C0, 0x35B3, 0x35A4, 0x3595, 0x3585, 0x3575, \n        0x3563, 0x3551, 0x353F, 0x352B, 0x3517, 0x3502, 0x34ED, 0x34D7, \n        0x34C1, 0x34AA, 0x3493, 0x347B, 0x3462, 0x344A, 0x3430, 0x3417, \n        0x33FD, 0x33E3, 0x33C8, 0x33AD, 0x3392, 0x3377, 0x335B, 0x333F, \n        0x3324, 0x3308, 0x32EB, 0x32CF, 0x32B3, 0x3297, 0x327B, 0x325E, \n        0x3242, 0x3226, 0x320A, 0x31EE, 0x31D3, 0x31B7, 0x319C, 0x3181, \n        0x3166, 0x314C, 0x3132, 0x3118, 0x30FE, 0x30E5, 0x30CD, 0x30B4, \n        0x309D, 0x3085, 0x306E, 0x3058, 0x3042, 0x302D, 0x3018, 0x3004, \n        0x2FF1, 0x2FDE, 0x2FCB, 0x2FBA, 0x2FA9, 0x2F98, 0x2F89, 0x2F7A, \n        0x2F6C, 0x2F5E, 0x2F51, 0x2F45, 0x2F3A, 0x2F30, 0x2F26, 0x2F1D, \n        0x2F15, 0x2F0E, 0x2F07, 0x2F01, 0x2EFC, 0x2EF8, 0x2EF5, 0x2EF2, \n        0x2EF1, 0x2EF0, 0x2EF0, 0x2EF0, 0x2EF2, 0x2EF4, 0x2EF7, 0x2EFB, \n        0x2F00, 0x2F06, 0x2F0C, 0x2F13, 0x2F1B, 0x2F23, 0x2F2D, 0x2F37, \n        0x2F41, 0x2F4D, 0x2F59, 0x2F66, 0x2F74, 0x2F82, 0x2F91, 0x2FA0, \n        0x2FB0, 0x2FC1, 0x2FD2, 0x2FE4, 0x2FF7, 0x300A, 0x301D, 0x3031, \n        0x3046, 0x305B, 0x3070, 0x3086, 0x309C, 0x30B2, 0x30C9, 0x30E1, \n        0x30F8, 0x3110, 0x3128, 0x3140, 0x3159, 0x3172, 0x318A, 0x31A3, \n        0x31BD, 0x31D6, 0x31EF, 0x3209, 0x3222, 0x323C, 0x3255, 0x326E, \n        0x3288, 0x32A1, 0x32BA, 0x32D3, 0x32EC, 0x3305, 0x331D, 0x3335, \n        0x334D, 0x3365, 0x337C, 0x3393, 0x33AA, 0x33C1, 0x33D7, 0x33EC, \n        0x3401, 0x3416, 0x342B, 0x343E, 0x3452, 0x3465, 0x3477, 0x3489, \n        0x349A, 0x34AB, 0x34BB, 0x34CA, 0x34D9, 0x34E7, 0x34F5, 0x3501, \n        0x350E, 0x3519, 0x3524, 0x352E, 0x3538, 0x3540, 0x3548, 0x354F, \n        0x3556, 0x355C, 0x3561, 0x3565, 0x3568, 0x356B, 0x356D, 0x356E, \n        0x356E, 0x356E, 0x356D, 0x356B, 0x3568, 0x3565, 0x3561, 0x355C, \n        0x3556, 0x354F, 0x3548, 0x3540, 0x3538, 0x352E, 0x3524, 0x3519, \n        0x350E, 0x3501, 0x34F5, 0x34E7, 0x34D9, 0x34CA, 0x34BB, 0x34AB, \n        0x349A, 0x3489, 0x3477, 0x3465, 0x3452, 0x343E, 0x342B, 0x3416, \n        0x3401, 0x33EC, 0x33D7, 0x33C1, 0x33AA, 0x3393, 0x337C, 0x3365, \n        0x334D, 0x3335, 0x331D, 0x3305, 0x32EC, 0x32D3, 0x32BA, 0x32A1, \n        0x3288, 0x326E, 0x3255, 0x323C, 0x3222, 0x3209, 0x31EF, 0x31D6, \n        0x31BD, 0x31A4, 0x318A, 0x3172, 0x3159, 0x3140, 0x3128, 0x3110, \n        0x30F8, 0x30E1, 0x30C9, 0x30B2, 0x309C, 0x3086, 0x3070, 0x305B, \n        0x3046, 0x3031, 0x301D, 0x300A, 0x2FF7, 0x2FE4, 0x2FD3, 0x2FC1, \n        0x2FB0, 0x2FA0, 0x2F91, 0x2F82, 0x2F74, 0x2F66, 0x2F59, 0x2F4D, \n        0x2F42, 0x2F37, 0x2F2D, 0x2F23, 0x2F1B, 0x2F13, 0x2F0C, 0x2F06, \n        0x2F00, 0x2EFB, 0x2EF7, 0x2EF4, 0x2EF2, 0x2EF0, 0x2EF0, 0x2EF0, \n        0x2EF1, 0x2EF2, 0x2EF5, 0x2EF8, 0x2EFC, 0x2F01, 0x2F07, 0x2F0E, \n        0x2F15, 0x2F1D, 0x2F26, 0x2F30, 0x2F3A, 0x2F45, 0x2F51, 0x2F5E, \n        0x2F6C, 0x2F7A, 0x2F89, 0x2F98, 0x2FA9, 0x2FBA, 0x2FCB, 0x2FDE, \n        0x2FF1, 0x3004, 0x3018, 0x302D, 0x3042, 0x3058, 0x306E, 0x3085, \n        0x309D, 0x30B4, 0x30CD, 0x30E5, 0x30FE, 0x3118, 0x3132, 0x314C, \n        0x3166, 0x3181, 0x319C, 0x31B7, 0x31D3, 0x31EE, 0x320A, 0x3226, \n        0x3242, 0x325E, 0x327B, 0x3297, 0x32B3, 0x32CF, 0x32EB, 0x3308, \n        0x3324, 0x333F, 0x335B, 0x3377, 0x3392, 0x33AD, 0x33C8, 0x33E3, \n        0x33FD, 0x3417, 0x3430, 0x344A, 0x3462, 0x347B, 0x3493, 0x34AA, \n        0x34C1, 0x34D7, 0x34ED, 0x3502, 0x3517, 0x352B, 0x353F, 0x3551, \n        0x3563, 0x3575, 0x3585, 0x3595, 0x35A4, 0x35B3, 0x35C0, 0x35CD, \n        0x35D9, 0x35E4, 0x35EF, 0x35F8, 0x3601, 0x3608, 0x360F, 0x3615, \n        0x361A, 0x361E, 0x3621, 0x3623, 0x3625, 0x3625, 0x3624, 0x3623, \n        0x3620, 0x361C, 0x3618, 0x3612, 0x360C, 0x3605, 0x35FC, 0x35F3, \n        0x35E9, 0x35DE, 0x35D1, 0x35C4, 0x35B6, 0x35A7, 0x3597, 0x3587, \n        0x3575, 0x3563, 0x354F, 0x353B, 0x3526, 0x3510, 0x34F9, 0x34E2, \n        0x34CA, 0x34B1, 0x3497, 0x347D, 0x3462, 0x3446, 0x342A, 0x340C, \n        0x33EF, 0x33D1, 0x33B2, 0x3393, 0x3373, 0x3353, 0x3332, 0x3311, \n        0x32EF, 0x32CE, 0x32AB, 0x3289, 0x3266, 0x3243, 0x3220, 0x31FD, \n        0x31D9, 0x31B6, 0x3192, 0x316E, 0x314B, 0x3127, 0x3103, 0x30E0, \n        0x30BC, 0x3099, 0x3076, 0x3053, 0x3030, 0x300E, 0x2FEC, 0x2FCB, \n        0x2FA9, 0x2F89, 0x2F68, 0x2F48, 0x2F29, 0x2F0A, 0x2EEC, 0x2ECF, \n        0x2EB2, 0x2E96, 0x2E7A, 0x2E60, 0x2E46, 0x2E2D, 0x2E14, 0x2DFD, \n        0x2DE7, 0x2DD1, 0x2DBC, 0x2DA9, 0x2D96, 0x2D85, 0x2D74, 0x2D65, \n        0x2D56, 0x2D49, 0x2D3D, 0x2D32, 0x2D29, 0x2D20, 0x2D19, 0x2D13, \n        0x2D0E, 0x2D0B, 0x2D08, 0x2D07, 0x2D08, 0x2D0A, 0x2D0D, 0x2D11, \n        0x2D17, 0x2D1E, 0x2D26, 0x2D30, 0x2D3B, 0x2D48, 0x2D56, 0x2D65, \n        0x2D75, 0x2D87, 0x2D9B, 0x2DB0, 0x2DC6, 0x2DDD, 0x2DF6, 0x2E10, \n        0x2E2B, 0x2E48, 0x2E66, 0x2E85, 0x2EA5, 0x2EC7, 0x2EEA, 0x2F0E, \n        0x2F33, 0x2F59, 0x2F81, 0x2FA9, 0x2FD3, 0x2FFE, 0x3029, 0x3056, \n        0x3084, 0x30B2, 0x30E2, 0x3112, 0x3143, 0x3175, 0x31A7, 0x31DB, \n        0x320F, 0x3243, 0x3279, 0x32AE, 0x32E4, 0x331B, 0x3352, 0x3389, \n        0x33C1, 0x33F9, 0x3431, 0x346A, 0x34A2, 0x34DA, 0x3513, 0x354B, \n        0x3584, 0x35BC, 0x35F4, 0x362C, 0x3663, 0x369A, 0x36D0, 0x3706, \n        0x373C, 0x3771, 0x37A5, 0x37D8, 0x380B, 0x383D, 0x386E, 0x389E, \n        0x38CD, 0x38FB, 0x3928, 0x3953, 0x397D, 0x39A6, 0x39CE, 0x39F4, \n        0x3A19, 0x3A3C, 0x3A5D, 0x3A7D, 0x3A9B, 0x3AB8, 0x3AD2, 0x3AEB, \n        0x3B01, 0x3B16, 0x3B29, 0x3B39, 0x3B47, 0x3B54, 0x3B5D, 0x3B65, \n        0x3B6A, 0x3B6D, 0x3B6D, 0x3B6B, 0x3B66, 0x3B5F, 0x3B54, 0x3B48, \n        0x3B38, 0x3B26, 0x3B11, 0x3AF9, 0x3ADE, 0x3AC0, 0x3A9F, 0x3A7C, \n        0x3A55, 0x3A2B, 0x39FE, 0x39CE, 0x399B, 0x3965, 0x392B, 0x38EE, \n        0x38AE, 0x386B, 0x3825, 0x37DB, 0x378E, 0x373D, 0x36EA, 0x3692, \n        0x3638, 0x35DA, 0x3579, 0x3514, 0x34AD, 0x3441, 0x33D3, 0x3361, \n        0x32EB, 0x3273, 0x31F7, 0x3177, 0x30F5, 0x306F, 0x2FE5, 0x2F59, \n        0x2EC9, 0x2E36, 0x2DA0, 0x2D06, 0x2C6A, 0x2BCA, 0x2B27, 0x2A81, \n        0x29D8, 0x292C, 0x287D, 0x27CC, 0x2717, 0x265F, 0x25A5, 0x24E8, \n        0x2428, 0x2365, 0x22A0, 0x21D8, 0x210D, 0x2040, 0x1F71, 0x1E9F, \n        0x1DCB, 0x1CF5, 0x1C1D, 0x1B42, 0x1A65, 0x1986, 0x18A5, 0x17C3, \n        0x16DE, 0x15F8, 0x1510, 0x1426, 0x133B, 0x124E, 0x1160, 0x1071, \n        0x0F80, 0x0E8E, 0x0D9B, 0x0CA6, 0x0BB1, 0x0ABB, 0x09C4, 0x08CC, \n        0x07D4, 0x06DA, 0x05E1, 0x04E7, 0x03EC, 0x02F1, 0x01F6, 0x00FB, \n        0x0000, 0xFF05, 0xFE0A, 0xFD0F, 0xFC14, 0xFB1A, 0xFA20, 0xF926, \n        0xF82D, 0xF734, 0xF63C, 0xF545, 0xF44F, 0xF35A, 0xF266, 0xF172, \n        0xF080, 0xEF90, 0xEEA0, 0xEDB2, 0xECC5, 0xEBDA, 0xEAF0, 0xEA08, \n        0xE922, 0xE83D, 0xE75B, 0xE67A, 0xE59B, 0xE4BE, 0xE3E4, 0xE30B, \n        0xE235, 0xE161, 0xE08F, 0xDFC0, 0xDEF3, 0xDE28, 0xDD61, 0xDC9B, \n        0xDBD9, 0xDB19, 0xDA5B, 0xD9A1, 0xD8E9, 0xD835, 0xD783, 0xD6D4, \n        0xD628, 0xD57F, 0xD4D9, 0xD436, 0xD396, 0xD2FA, 0xD260, 0xD1CA, \n        0xD137, 0xD0A7, 0xD01B, 0xCF92, 0xCF0C, 0xCE89, 0xCE0A, 0xCD8D, \n        0xCD15, 0xCC9F, 0xCC2D, 0xCBBF, 0xCB54, 0xCAEC, 0xCA87, 0xCA26, \n        0xC9C8, 0xC96E, 0xC917, 0xC8C3, 0xC872, 0xC825, 0xC7DB, 0xC795, \n        0xC752, 0xC712, 0xC6D5, 0xC69B, 0xC665, 0xC632, 0xC602, 0xC5D5, \n        0xC5AB, 0xC584, 0xC561, 0xC540, 0xC522, 0xC507, 0xC4EF, 0xC4DA, \n        0xC4C8, 0xC4B8, 0xC4AC, 0xC4A2, 0xC49A, 0xC495, 0xC493, 0xC493, \n        0xC496, 0xC49B, 0xC4A3, 0xC4AC, 0xC4B8, 0xC4C7, 0xC4D7, 0xC4EA, \n        0xC4FE, 0xC515, 0xC52E, 0xC548, 0xC565, 0xC583, 0xC5A3, 0xC5C4, \n        0xC5E7, 0xC60C, 0xC632, 0xC65A, 0xC683, 0xC6AD, 0xC6D8, 0xC705, \n        0xC733, 0xC762, 0xC792, 0xC7C3, 0xC7F5, 0xC827, 0xC85B, 0xC88F, \n        0xC8C4, 0xC8FA, 0xC930, 0xC966, 0xC99D, 0xC9D4, 0xCA0C, 0xCA44, \n        0xCA7C, 0xCAB5, 0xCAED, 0xCB25, 0xCB5E, 0xCB96, 0xCBCF, 0xCC07, \n        0xCC3F, 0xCC76, 0xCCAE, 0xCCE5, 0xCD1C, 0xCD52, 0xCD87, 0xCDBD, \n        0xCDF1, 0xCE25, 0xCE58, 0xCE8B, 0xCEBD, 0xCEEE, 0xCF1E, 0xCF4E, \n        0xCF7C, 0xCFAA, 0xCFD7, 0xD002, 0xD02D, 0xD057, 0xD07F, 0xD0A7, \n        0xD0CD, 0xD0F2, 0xD116, 0xD139, 0xD15B, 0xD17B, 0xD19A, 0xD1B8, \n        0xD1D5, 0xD1F0, 0xD20A, 0xD223, 0xD23A, 0xD250, 0xD265, 0xD278, \n        0xD28A, 0xD29B, 0xD2AA, 0xD2B8, 0xD2C5, 0xD2D0, 0xD2DA, 0xD2E2, \n        0xD2E9, 0xD2EF, 0xD2F3, 0xD2F6, 0xD2F8, 0xD2F9, 0xD2F8, 0xD2F5, \n        0xD2F2, 0xD2ED, 0xD2E7, 0xD2E0, 0xD2D7, 0xD2CE, 0xD2C3, 0xD2B7, \n        0xD2AA, 0xD29B, 0xD28C, 0xD27B, 0xD26A, 0xD257, 0xD244, 0xD22F, \n        0xD219, 0xD203, 0xD1EC, 0xD1D3, 0xD1BA, 0xD1A0, 0xD186, 0xD16A, \n        0xD14E, 0xD131, 0xD114, 0xD0F6, 0xD0D7, 0xD0B8, 0xD098, 0xD077, \n        0xD057, 0xD035, 0xD014, 0xCFF2, 0xCFD0, 0xCFAD, 0xCF8A, 0xCF67, \n        0xCF44, 0xCF20, 0xCEFD, 0xCED9, 0xCEB5, 0xCE92, 0xCE6E, 0xCE4A, \n        0xCE27, 0xCE03, 0xCDE0, 0xCDBD, 0xCD9A, 0xCD77, 0xCD55, 0xCD32, \n        0xCD11, 0xCCEF, 0xCCCE, 0xCCAD, 0xCC8D, 0xCC6D, 0xCC4E, 0xCC2F, \n        0xCC11, 0xCBF4, 0xCBD7, 0xCBBA, 0xCB9E, 0xCB83, 0xCB69, 0xCB4F, \n        0xCB36, 0xCB1E, 0xCB07, 0xCAF0, 0xCADA, 0xCAC5, 0xCAB1, 0xCA9D, \n        0xCA8B, 0xCA79, 0xCA69, 0xCA59, 0xCA4A, 0xCA3C, 0xCA2F, 0xCA23, \n        0xCA17, 0xCA0D, 0xCA04, 0xC9FB, 0xC9F4, 0xC9EE, 0xC9E8, 0xC9E4, \n        0xC9E0, 0xC9DD, 0xC9DC, 0xC9DB, 0xC9DB, 0xC9DD, 0xC9DF, 0xC9E2, \n        0xC9E6, 0xC9EB, 0xC9F1, 0xC9F8, 0xC9FF, 0xCA08, 0xCA11, 0xCA1C, \n        0xCA27, 0xCA33, 0xCA40, 0xCA4D, 0xCA5C, 0xCA6B, 0xCA7B, 0xCA8B, \n        0xCA9D, 0xCAAF, 0xCAC1, 0xCAD5, 0xCAE9, 0xCAFE, 0xCB13, 0xCB29, \n        0xCB3F, 0xCB56, 0xCB6D, 0xCB85, 0xCB9E, 0xCBB6, 0xCBD0, 0xCBE9, \n        0xCC03, 0xCC1D, 0xCC38, 0xCC53, 0xCC6E, 0xCC89, 0xCCA5, 0xCCC1, \n        0xCCDC, 0xCCF8, 0xCD15, 0xCD31, 0xCD4D, 0xCD69, 0xCD85, 0xCDA2, \n        0xCDBE, 0xCDDA, 0xCDF6, 0xCE12, 0xCE2D, 0xCE49, 0xCE64, 0xCE7F, \n        0xCE9A, 0xCEB4, 0xCECE, 0xCEE8, 0xCF02, 0xCF1B, 0xCF33, 0xCF4C, \n        0xCF63, 0xCF7B, 0xCF92, 0xCFA8, 0xCFBE, 0xCFD3, 0xCFE8, 0xCFFC, \n        0xD00F, 0xD022, 0xD035, 0xD046, 0xD057, 0xD068, 0xD077, 0xD086, \n        0xD094, 0xD0A2, 0xD0AF, 0xD0BB, 0xD0C6, 0xD0D0, 0xD0DA, 0xD0E3, \n        0xD0EB, 0xD0F2, 0xD0F9, 0xD0FF, 0xD104, 0xD108, 0xD10B, 0xD10E, \n        0xD10F, 0xD110, 0xD110, 0xD110, 0xD10E, 0xD10C, 0xD109, 0xD105, \n        0xD100, 0xD0FA, 0xD0F4, 0xD0ED, 0xD0E5, 0xD0DD, 0xD0D3, 0xD0C9, \n        0xD0BF, 0xD0B3, 0xD0A7, 0xD09A, 0xD08C, 0xD07E, 0xD06F, 0xD060, \n        0xD050, 0xD03F, 0xD02E, 0xD01C, 0xD009, 0xCFF6, 0xCFE3, 0xCFCF, \n        0xCFBA, 0xCFA5, 0xCF90, 0xCF7A, 0xCF64, 0xCF4E, 0xCF37, 0xCF1F, \n        0xCF08, 0xCEF0, 0xCED8, 0xCEC0, 0xCEA7, 0xCE8E, 0xCE76, 0xCE5D, \n        0xCE43, 0xCE2A, 0xCE11, 0xCDF7, 0xCDDE, 0xCDC4, 0xCDAB, 0xCD92, \n        0xCD78, 0xCD5F, 0xCD46, 0xCD2D, 0xCD14, 0xCCFB, 0xCCE3, 0xCCCB, \n        0xCCB3, 0xCC9B, 0xCC84, 0xCC6D, 0xCC56, 0xCC3F, 0xCC29, 0xCC14, \n        0xCBFF, 0xCBEA, 0xCBD5, 0xCBC2, 0xCBAE, 0xCB9B, 0xCB89, 0xCB77, \n        0xCB66, 0xCB55, 0xCB45, 0xCB36, 0xCB27, 0xCB19, 0xCB0B, 0xCAFF, \n        0xCAF2, 0xCAE7, 0xCADC, 0xCAD2, 0xCAC9, 0xCAC0, 0xCAB8, 0xCAB1, \n        0xCAAA, 0xCAA4, 0xCA9F, 0xCA9B, 0xCA98, 0xCA95, 0xCA93, 0xCA92, \n        0xCA92, 0xCA92, 0xCA93, 0xCA95, 0xCA98, 0xCA9B, 0xCA9F, 0xCAA4, \n        0xCAAA, 0xCAB1, 0xCAB8, 0xCAC0, 0xCAC8, 0xCAD2, 0xCADC, 0xCAE7, \n        0xCAF2, 0xCAFF, 0xCB0B, 0xCB19, 0xCB27, 0xCB36, 0xCB45, 0xCB55, \n        0xCB66, 0xCB77, 0xCB89, 0xCB9B, 0xCBAE, 0xCBC2, 0xCBD5, 0xCBEA, \n        0xCBFE, 0xCC14, 0xCC29, 0xCC3F, 0xCC56, 0xCC6D, 0xCC84, 0xCC9B, \n        0xCCB3, 0xCCCB, 0xCCE3, 0xCCFB, 0xCD14, 0xCD2D, 0xCD46, 0xCD5F, \n        0xCD78, 0xCD92, 0xCDAB, 0xCDC4, 0xCDDE, 0xCDF7, 0xCE11, 0xCE2A, \n        0xCE43, 0xCE5C, 0xCE76, 0xCE8E, 0xCEA7, 0xCEC0, 0xCED8, 0xCEF0, \n        0xCF08, 0xCF1F, 0xCF37, 0xCF4E, 0xCF64, 0xCF7A, 0xCF90, 0xCFA5, \n        0xCFBA, 0xCFCF, 0xCFE3, 0xCFF6, 0xD009, 0xD01C, 0xD02D, 0xD03F, \n        0xD050, 0xD060, 0xD06F, 0xD07E, 0xD08C, 0xD09A, 0xD0A7, 0xD0B3, \n        0xD0BE, 0xD0C9, 0xD0D3, 0xD0DD, 0xD0E5, 0xD0ED, 0xD0F4, 0xD0FA, \n        0xD100, 0xD105, 0xD109, 0xD10C, 0xD10E, 0xD110, 0xD110, 0xD110, \n        0xD10F, 0xD10E, 0xD10B, 0xD108, 0xD104, 0xD0FF, 0xD0F9, 0xD0F2, \n        0xD0EB, 0xD0E3, 0xD0DA, 0xD0D0, 0xD0C6, 0xD0BB, 0xD0AF, 0xD0A2, \n        0xD094, 0xD086, 0xD077, 0xD068, 0xD057, 0xD046, 0xD035, 0xD022, \n        0xD00F, 0xCFFC, 0xCFE8, 0xCFD3, 0xCFBE, 0xCFA8, 0xCF92, 0xCF7B, \n        0xCF63, 0xCF4C, 0xCF33, 0xCF1B, 0xCF02, 0xCEE8, 0xCECE, 0xCEB4, \n        0xCE9A, 0xCE7F, 0xCE64, 0xCE49, 0xCE2D, 0xCE12, 0xCDF6, 0xCDDA, \n        0xCDBE, 0xCDA2, 0xCD85, 0xCD69, 0xCD4D, 0xCD31, 0xCD15, 0xCCF8, \n        0xCCDC, 0xCCC1, 0xCCA5, 0xCC89, 0xCC6E, 0xCC53, 0xCC38, 0xCC1D, \n        0xCC03, 0xCBE9, 0xCBD0, 0xCBB6, 0xCB9E, 0xCB85, 0xCB6D, 0xCB56, \n        0xCB3F, 0xCB29, 0xCB13, 0xCAFE, 0xCAE9, 0xCAD5, 0xCAC1, 0xCAAF, \n        0xCA9D, 0xCA8B, 0xCA7B, 0xCA6B, 0xCA5C, 0xCA4D, 0xCA40, 0xCA33, \n        0xCA27, 0xCA1C, 0xCA11, 0xCA08, 0xC9FF, 0xC9F8, 0xC9F1, 0xC9EB, \n        0xC9E6, 0xC9E2, 0xC9DF, 0xC9DD, 0xC9DB, 0xC9DB, 0xC9DC, 0xC9DD, \n        0xC9E0, 0xC9E4, 0xC9E8, 0xC9EE, 0xC9F4, 0xC9FB, 0xCA04, 0xCA0D, \n        0xCA17, 0xCA22, 0xCA2F, 0xCA3C, 0xCA4A, 0xCA59, 0xCA68, 0xCA79, \n        0xCA8B, 0xCA9D, 0xCAB1, 0xCAC5, 0xCADA, 0xCAF0, 0xCB06, 0xCB1E, \n        0xCB36, 0xCB4F, 0xCB69, 0xCB83, 0xCB9E, 0xCBBA, 0xCBD6, 0xCBF3, \n        0xCC11, 0xCC2F, 0xCC4E, 0xCC6D, 0xCC8D, 0xCCAD, 0xCCCE, 0xCCEF, \n        0xCD11, 0xCD32, 0xCD55, 0xCD77, 0xCD9A, 0xCDBD, 0xCDE0, 0xCE03, \n        0xCE27, 0xCE4A, 0xCE6E, 0xCE92, 0xCEB5, 0xCED9, 0xCEFD, 0xCF20, \n        0xCF44, 0xCF67, 0xCF8A, 0xCFAD, 0xCFD0, 0xCFF2, 0xD014, 0xD035, \n        0xD057, 0xD077, 0xD098, 0xD0B8, 0xD0D7, 0xD0F6, 0xD114, 0xD131, \n        0xD14E, 0xD16A, 0xD186, 0xD1A0, 0xD1BA, 0xD1D3, 0xD1EC, 0xD203, \n        0xD219, 0xD22F, 0xD244, 0xD257, 0xD26A, 0xD27B, 0xD28C, 0xD29B, \n        0xD2AA, 0xD2B7, 0xD2C3, 0xD2CE, 0xD2D7, 0xD2E0, 0xD2E7, 0xD2ED, \n        0xD2F2, 0xD2F5, 0xD2F8, 0xD2F9, 0xD2F8, 0xD2F6, 0xD2F3, 0xD2EF, \n        0xD2E9, 0xD2E2, 0xD2DA, 0xD2D0, 0xD2C5, 0xD2B8, 0xD2AA, 0xD29B, \n        0xD28B, 0xD279, 0xD265, 0xD250, 0xD23A, 0xD223, 0xD20A, 0xD1F0, \n        0xD1D5, 0xD1B8, 0xD19A, 0xD17B, 0xD15B, 0xD139, 0xD116, 0xD0F2, \n        0xD0CD, 0xD0A7, 0xD07F, 0xD057, 0xD02D, 0xD002, 0xCFD7, 0xCFAA, \n        0xCF7C, 0xCF4E, 0xCF1E, 0xCEEE, 0xCEBD, 0xCE8B, 0xCE59, 0xCE25, \n        0xCDF1, 0xCDBD, 0xCD87, 0xCD52, 0xCD1C, 0xCCE5, 0xCCAE, 0xCC77, \n        0xCC3F, 0xCC07, 0xCBCF, 0xCB96, 0xCB5E, 0xCB26, 0xCAED, 0xCAB5, \n        0xCA7C, 0xCA44, 0xCA0C, 0xC9D5, 0xC99D, 0xC966, 0xC930, 0xC8FA, \n        0xC8C4, 0xC88F, 0xC85B, 0xC828, 0xC7F5, 0xC7C3, 0xC792, 0xC762, \n        0xC733, 0xC705, 0xC6D8, 0xC6AD, 0xC683, 0xC65A, 0xC632, 0xC60C, \n        0xC5E7, 0xC5C4, 0xC5A3, 0xC583, 0xC565, 0xC548, 0xC52E, 0xC515, \n        0xC4FF, 0xC4EA, 0xC4D7, 0xC4C7, 0xC4B9, 0xC4AC, 0xC4A3, 0xC49B, \n        0xC496, 0xC493, 0xC493, 0xC495, 0xC49A, 0xC4A1, 0xC4AC, 0xC4B8, \n        0xC4C8, 0xC4DA, 0xC4EF, 0xC507, 0xC522, 0xC540, 0xC561, 0xC584, \n        0xC5AB, 0xC5D5, 0xC602, 0xC632, 0xC665, 0xC69B, 0xC6D5, 0xC712, \n        0xC752, 0xC795, 0xC7DB, 0xC825, 0xC872, 0xC8C3, 0xC916, 0xC96E, \n        0xC9C8, 0xCA26, 0xCA87, 0xCAEC, 0xCB53, 0xCBBF, 0xCC2D, 0xCC9F, \n        0xCD15, 0xCD8D, 0xCE09, 0xCE89, 0xCF0B, 0xCF91, 0xD01B, 0xD0A7, \n        0xD137, 0xD1CA, 0xD260, 0xD2FA, 0xD396, 0xD436, 0xD4D9, 0xD57F, \n        0xD628, 0xD6D3, 0xD782, 0xD834, 0xD8E9, 0xD9A1, 0xDA5B, 0xDB18, \n        0xDBD8, 0xDC9B, 0xDD60, 0xDE28, 0xDEF2, 0xDFBF, 0xE08F, 0xE160, \n        0xE234, 0xE30B, 0xE3E3, 0xE4BE, 0xE59B, 0xE67A, 0xE75A, 0xE83D, \n        0xE922, 0xEA08, 0xEAF0, 0xEBDA, 0xECC5, 0xEDB2, 0xEEA0, 0xEF8F, \n        0xF080, 0xF172, 0xF265, 0xF35A, 0xF44F, 0xF545, 0xF63C, 0xF734, \n        0xF82C, 0xF925, 0xFA1F, 0xFB19, 0xFC14, 0xFD0F, 0xFE0A, 0xFF05, \n// Waveform 1 (triangular):\n        0x0000, 0x0043, 0x0086, 0x00C9, 0x010C, 0x014F, 0x0192, 0x01D5, \n        0x0218, 0x025B, 0x029E, 0x02E1, 0x0324, 0x0367, 0x03AA, 0x03ED, \n        0x042F, 0x0472, 0x04B5, 0x04F7, 0x0539, 0x057C, 0x05BE, 0x0600, \n        0x0643, 0x0685, 0x06C7, 0x0708, 0x074A, 0x078C, 0x07CE, 0x080F, \n        0x0850, 0x0892, 0x08D3, 0x0914, 0x0955, 0x0996, 0x09D7, 0x0A17, \n        0x0A58, 0x0A98, 0x0AD9, 0x0B19, 0x0B59, 0x0B99, 0x0BD9, 0x0C18, \n        0x0C58, 0x0C97, 0x0CD7, 0x0D16, 0x0D55, 0x0D94, 0x0DD3, 0x0E11, \n        0x0E50, 0x0E8E, 0x0ECD, 0x0F0B, 0x0F49, 0x0F87, 0x0FC5, 0x1002, \n        0x1040, 0x107D, 0x10BB, 0x10F8, 0x1135, 0x1172, 0x11AF, 0x11EC, \n        0x1229, 0x1265, 0x12A2, 0x12DE, 0x131A, 0x1357, 0x1393, 0x13CF, \n        0x140B, 0x1447, 0x1483, 0x14BE, 0x14FA, 0x1536, 0x1571, 0x15AD, \n        0x15E8, 0x1623, 0x165F, 0x169A, 0x16D5, 0x1710, 0x174B, 0x1787, \n        0x17C2, 0x17FD, 0x1838, 0x1873, 0x18AE, 0x18E9, 0x1924, 0x195F, \n        0x199A, 0x19D5, 0x1A10, 0x1A4B, 0x1A86, 0x1AC1, 0x1AFC, 0x1B37, \n        0x1B72, 0x1BAD, 0x1BE9, 0x1C24, 0x1C5F, 0x1C9B, 0x1CD6, 0x1D11, \n        0x1D4D, 0x1D89, 0x1DC4, 0x1E00, 0x1E3C, 0x1E78, 0x1EB4, 0x1EF0, \n        0x1F2C, 0x1F69, 0x1FA5, 0x1FE1, 0x201E, 0x205B, 0x2098, 0x20D4, \n        0x2111, 0x214F, 0x218C, 0x21C9, 0x2207, 0x2244, 0x2282, 0x22C0, \n        0x22FE, 0x233C, 0x237B, 0x23B9, 0x23F7, 0x2436, 0x2475, 0x24B4, \n        0x24F3, 0x2532, 0x2572, 0x25B1, 0x25F1, 0x2631, 0x2670, 0x26B1, \n        0x26F1, 0x2731, 0x2772, 0x27B2, 0x27F3, 0x2834, 0x2875, 0x28B6, \n        0x28F7, 0x2939, 0x297A, 0x29BC, 0x29FD, 0x2A3F, 0x2A81, 0x2AC3, \n        0x2B06, 0x2B48, 0x2B8B, 0x2BCD, 0x2C10, 0x2C53, 0x2C95, 0x2CD8, \n        0x2D1B, 0x2D5F, 0x2DA2, 0x2DE5, 0x2E28, 0x2E6C, 0x2EAF, 0x2EF3, \n        0x2F37, 0x2F7A, 0x2FBE, 0x3002, 0x3046, 0x308A, 0x30CE, 0x3111, \n        0x3155, 0x3199, 0x31DD, 0x3221, 0x3266, 0x32AA, 0x32EE, 0x3332, \n        0x3376, 0x33BA, 0x33FE, 0x3442, 0x3486, 0x34C9, 0x350D, 0x3551, \n        0x3595, 0x35D9, 0x361C, 0x3660, 0x36A3, 0x36E7, 0x372A, 0x376E, \n        0x37B1, 0x37F4, 0x3837, 0x387A, 0x38BD, 0x3900, 0x3942, 0x3985, \n        0x39C7, 0x3A09, 0x3A4B, 0x3A8E, 0x3ACF, 0x3B11, 0x3B53, 0x3B94, \n        0x3BD6, 0x3C17, 0x3C58, 0x3C99, 0x3CD9, 0x3D1A, 0x3D5A, 0x3D9B, \n        0x3DDB, 0x3E1B, 0x3E5A, 0x3E9A, 0x3ED9, 0x3F19, 0x3F58, 0x3F97, \n        0x3FD5, 0x4014, 0x4052, 0x4091, 0x40CF, 0x410C, 0x414A, 0x4188, \n        0x41C5, 0x4202, 0x423F, 0x427C, 0x42B9, 0x42F5, 0x4331, 0x436E, \n        0x43AA, 0x43E5, 0x4421, 0x445C, 0x4498, 0x44D3, 0x450E, 0x4549, \n        0x4584, 0x45BE, 0x45F9, 0x4633, 0x466D, 0x46A7, 0x46E1, 0x471B, \n        0x4755, 0x478F, 0x47C8, 0x4802, 0x483B, 0x4874, 0x48AD, 0x48E6, \n        0x491F, 0x4958, 0x4991, 0x49CA, 0x4A03, 0x4A3C, 0x4A74, 0x4AAD, \n        0x4AE6, 0x4B1E, 0x4B57, 0x4B8F, 0x4BC8, 0x4C01, 0x4C39, 0x4C72, \n        0x4CAA, 0x4CE3, 0x4D1C, 0x4D55, 0x4D8D, 0x4DC6, 0x4DFF, 0x4E38, \n        0x4E71, 0x4EAA, 0x4EE4, 0x4F1D, 0x4F57, 0x4F90, 0x4FCA, 0x5004, \n        0x503E, 0x5078, 0x50B2, 0x50EC, 0x5127, 0x5162, 0x519C, 0x51D7, \n        0x5213, 0x524E, 0x528A, 0x52C5, 0x5301, 0x533E, 0x537A, 0x53B7, \n        0x53F4, 0x5431, 0x546E, 0x54AB, 0x54E9, 0x5527, 0x5566, 0x55A4, \n        0x55E3, 0x5622, 0x5661, 0x56A1, 0x56E1, 0x5721, 0x5761, 0x57A2, \n        0x57E3, 0x5824, 0x5865, 0x58A7, 0x58E9, 0x592B, 0x596E, 0x59B1, \n        0x59F4, 0x5A37, 0x5A7B, 0x5ABF, 0x5B03, 0x5B47, 0x5B8C, 0x5BD1, \n        0x5C16, 0x5C5C, 0x5CA2, 0x5CE8, 0x5D2E, 0x5D75, 0x5DBC, 0x5E03, \n        0x5E4A, 0x5E91, 0x5ED9, 0x5F21, 0x5F69, 0x5FB1, 0x5FFA, 0x6043, \n        0x608C, 0x60D5, 0x611E, 0x6167, 0x61B1, 0x61FB, 0x6245, 0x628F, \n        0x62D9, 0x6323, 0x636D, 0x63B8, 0x6402, 0x644D, 0x6497, 0x64E2, \n        0x652C, 0x6577, 0x65C2, 0x660C, 0x6657, 0x66A2, 0x66EC, 0x6737, \n        0x6781, 0x67CC, 0x6816, 0x6860, 0x68AA, 0x68F4, 0x693E, 0x6987, \n        0x69D1, 0x6A1A, 0x6A63, 0x6AAC, 0x6AF4, 0x6B3D, 0x6B84, 0x6BCC, \n        0x6C14, 0x6C5B, 0x6CA1, 0x6CE8, 0x6D2E, 0x6D73, 0x6DB9, 0x6DFD, \n        0x6E42, 0x6E86, 0x6EC9, 0x6F0C, 0x6F4E, 0x6F90, 0x6FD2, 0x7013, \n        0x7053, 0x7093, 0x70D2, 0x7110, 0x714E, 0x718B, 0x71C8, 0x7204, \n        0x723F, 0x7279, 0x72B3, 0x72EC, 0x7324, 0x735B, 0x7392, 0x73C8, \n        0x73FD, 0x7431, 0x7464, 0x7497, 0x74C8, 0x74F9, 0x7529, 0x7558, \n        0x7586, 0x75B3, 0x75DF, 0x760A, 0x7634, 0x765D, 0x7685, 0x76AC, \n        0x76D2, 0x76F7, 0x771A, 0x773D, 0x775F, 0x7780, 0x779F, 0x77BD, \n        0x77DB, 0x77F7, 0x7812, 0x782C, 0x7845, 0x785C, 0x7873, 0x7888, \n        0x789C, 0x78AF, 0x78C1, 0x78D1, 0x78E0, 0x78EE, 0x78FB, 0x7907, \n        0x7911, 0x791B, 0x7923, 0x7929, 0x792F, 0x7933, 0x7936, 0x7938, \n        0x7939, 0x7938, 0x7936, 0x7933, 0x792F, 0x7929, 0x7923, 0x791B, \n        0x7911, 0x7907, 0x78FB, 0x78EE, 0x78E0, 0x78D1, 0x78C1, 0x78AF, \n        0x789C, 0x7888, 0x7873, 0x785C, 0x7845, 0x782C, 0x7812, 0x77F7, \n        0x77DB, 0x77BE, 0x779F, 0x7780, 0x775F, 0x773D, 0x771A, 0x76F7, \n        0x76D2, 0x76AC, 0x7685, 0x765D, 0x7634, 0x760A, 0x75DF, 0x75B3, \n        0x7586, 0x7558, 0x7529, 0x74F9, 0x74C8, 0x7497, 0x7464, 0x7431, \n        0x73FD, 0x73C8, 0x7392, 0x735C, 0x7324, 0x72EC, 0x72B3, 0x7279, \n        0x723F, 0x7204, 0x71C8, 0x718B, 0x714E, 0x7110, 0x70D2, 0x7093, \n        0x7053, 0x7013, 0x6FD2, 0x6F90, 0x6F4F, 0x6F0C, 0x6EC9, 0x6E86, \n        0x6E42, 0x6DFD, 0x6DB9, 0x6D73, 0x6D2E, 0x6CE8, 0x6CA1, 0x6C5B, \n        0x6C14, 0x6BCC, 0x6B85, 0x6B3D, 0x6AF4, 0x6AAC, 0x6A63, 0x6A1A, \n        0x69D1, 0x6987, 0x693E, 0x68F4, 0x68AA, 0x6860, 0x6816, 0x67CC, \n        0x6781, 0x6737, 0x66EC, 0x66A2, 0x6657, 0x660C, 0x65C2, 0x6577, \n        0x652C, 0x64E2, 0x6497, 0x644D, 0x6402, 0x63B8, 0x636D, 0x6323, \n        0x62D9, 0x628F, 0x6245, 0x61FB, 0x61B1, 0x6167, 0x611E, 0x60D5, \n        0x608C, 0x6043, 0x5FFA, 0x5FB1, 0x5F69, 0x5F21, 0x5ED9, 0x5E91, \n        0x5E4A, 0x5E03, 0x5DBC, 0x5D75, 0x5D2E, 0x5CE8, 0x5CA2, 0x5C5C, \n        0x5C17, 0x5BD1, 0x5B8C, 0x5B47, 0x5B03, 0x5ABF, 0x5A7B, 0x5A37, \n        0x59F4, 0x59B1, 0x596E, 0x592B, 0x58E9, 0x58A7, 0x5865, 0x5824, \n        0x57E3, 0x57A2, 0x5761, 0x5721, 0x56E1, 0x56A1, 0x5661, 0x5622, \n        0x55E3, 0x55A4, 0x5566, 0x5527, 0x54E9, 0x54AC, 0x546E, 0x5431, \n        0x53F4, 0x53B7, 0x537A, 0x533E, 0x5301, 0x52C5, 0x528A, 0x524E, \n        0x5213, 0x51D7, 0x519C, 0x5162, 0x5127, 0x50EC, 0x50B2, 0x5078, \n        0x503E, 0x5004, 0x4FCA, 0x4F90, 0x4F57, 0x4F1D, 0x4EE4, 0x4EAA, \n        0x4E71, 0x4E38, 0x4DFF, 0x4DC6, 0x4D8D, 0x4D55, 0x4D1C, 0x4CE3, \n        0x4CAA, 0x4C72, 0x4C39, 0x4C01, 0x4BC8, 0x4B8F, 0x4B57, 0x4B1E, \n        0x4AE6, 0x4AAD, 0x4A74, 0x4A3C, 0x4A03, 0x49CA, 0x4991, 0x4958, \n        0x491F, 0x48E6, 0x48AD, 0x4874, 0x483B, 0x4802, 0x47C8, 0x478F, \n        0x4755, 0x471B, 0x46E1, 0x46A7, 0x466D, 0x4633, 0x45F9, 0x45BE, \n        0x4584, 0x4549, 0x450E, 0x44D3, 0x4498, 0x445D, 0x4421, 0x43E5, \n        0x43AA, 0x436E, 0x4331, 0x42F5, 0x42B9, 0x427C, 0x423F, 0x4202, \n        0x41C5, 0x4188, 0x414A, 0x410D, 0x40CF, 0x4091, 0x4052, 0x4014, \n        0x3FD5, 0x3F97, 0x3F58, 0x3F19, 0x3EDA, 0x3E9A, 0x3E5B, 0x3E1B, \n        0x3DDB, 0x3D9B, 0x3D5A, 0x3D1A, 0x3CD9, 0x3C99, 0x3C58, 0x3C17, \n        0x3BD6, 0x3B94, 0x3B53, 0x3B11, 0x3ACF, 0x3A8E, 0x3A4C, 0x3A09, \n        0x39C7, 0x3985, 0x3942, 0x3900, 0x38BD, 0x387A, 0x3837, 0x37F4, \n        0x37B1, 0x376E, 0x372A, 0x36E7, 0x36A3, 0x3660, 0x361C, 0x35D9, \n        0x3595, 0x3551, 0x350D, 0x34CA, 0x3486, 0x3442, 0x33FE, 0x33BA, \n        0x3376, 0x3332, 0x32EE, 0x32AA, 0x3266, 0x3222, 0x31DD, 0x3199, \n        0x3155, 0x3112, 0x30CE, 0x308A, 0x3046, 0x3002, 0x2FBE, 0x2F7A, \n        0x2F37, 0x2EF3, 0x2EAF, 0x2E6C, 0x2E28, 0x2DE5, 0x2DA2, 0x2D5F, \n        0x2D1B, 0x2CD8, 0x2C95, 0x2C53, 0x2C10, 0x2BCD, 0x2B8B, 0x2B48, \n        0x2B06, 0x2AC4, 0x2A81, 0x2A3F, 0x29FE, 0x29BC, 0x297A, 0x2939, \n        0x28F7, 0x28B6, 0x2875, 0x2834, 0x27F3, 0x27B2, 0x2772, 0x2731, \n        0x26F1, 0x26B1, 0x2670, 0x2631, 0x25F1, 0x25B1, 0x2572, 0x2532, \n        0x24F3, 0x24B4, 0x2475, 0x2436, 0x23F7, 0x23B9, 0x237B, 0x233C, \n        0x22FE, 0x22C0, 0x2282, 0x2244, 0x2207, 0x21C9, 0x218C, 0x214F, \n        0x2112, 0x20D4, 0x2098, 0x205B, 0x201E, 0x1FE1, 0x1FA5, 0x1F69, \n        0x1F2C, 0x1EF0, 0x1EB4, 0x1E78, 0x1E3C, 0x1E00, 0x1DC4, 0x1D89, \n        0x1D4D, 0x1D12, 0x1CD6, 0x1C9B, 0x1C5F, 0x1C24, 0x1BE9, 0x1BAD, \n        0x1B72, 0x1B37, 0x1AFC, 0x1AC1, 0x1A86, 0x1A4B, 0x1A10, 0x19D5, \n        0x199A, 0x195F, 0x1924, 0x18E9, 0x18AE, 0x1873, 0x1838, 0x17FD, \n        0x17C2, 0x1787, 0x174C, 0x1710, 0x16D5, 0x169A, 0x165F, 0x1623, \n        0x15E8, 0x15AD, 0x1571, 0x1536, 0x14FA, 0x14BE, 0x1483, 0x1447, \n        0x140B, 0x13CF, 0x1393, 0x1357, 0x131B, 0x12DE, 0x12A2, 0x1265, \n        0x1229, 0x11EC, 0x11AF, 0x1172, 0x1135, 0x10F8, 0x10BB, 0x107D, \n        0x1040, 0x1002, 0x0FC5, 0x0F87, 0x0F49, 0x0F0B, 0x0ECD, 0x0E8E, \n        0x0E50, 0x0E11, 0x0DD3, 0x0D94, 0x0D55, 0x0D16, 0x0CD7, 0x0C97, \n        0x0C58, 0x0C18, 0x0BD9, 0x0B99, 0x0B59, 0x0B19, 0x0AD9, 0x0A98, \n        0x0A58, 0x0A17, 0x09D7, 0x0996, 0x0955, 0x0914, 0x08D3, 0x0892, \n        0x0850, 0x080F, 0x07CE, 0x078C, 0x074A, 0x0708, 0x06C7, 0x0685, \n        0x0643, 0x0600, 0x05BE, 0x057C, 0x053A, 0x04F7, 0x04B5, 0x0472, \n        0x042F, 0x03ED, 0x03AA, 0x0367, 0x0324, 0x02E1, 0x029E, 0x025B, \n        0x0218, 0x01D5, 0x0192, 0x014F, 0x010C, 0x00C9, 0x0086, 0x0043, \n        0x0000, 0xFFBD, 0xFF7A, 0xFF37, 0xFEF4, 0xFEB1, 0xFE6E, 0xFE2B, \n        0xFDE8, 0xFDA5, 0xFD62, 0xFD1F, 0xFCDC, 0xFC99, 0xFC56, 0xFC13, \n        0xFBD1, 0xFB8E, 0xFB4C, 0xFB09, 0xFAC7, 0xFA84, 0xFA42, 0xFA00, \n        0xF9BE, 0xF97B, 0xF939, 0xF8F8, 0xF8B6, 0xF874, 0xF832, 0xF7F1, \n        0xF7B0, 0xF76E, 0xF72D, 0xF6EC, 0xF6AB, 0xF66A, 0xF629, 0xF5E9, \n        0xF5A8, 0xF568, 0xF528, 0xF4E7, 0xF4A7, 0xF467, 0xF428, 0xF3E8, \n        0xF3A8, 0xF369, 0xF32A, 0xF2EA, 0xF2AB, 0xF26C, 0xF22E, 0xF1EF, \n        0xF1B0, 0xF172, 0xF134, 0xF0F5, 0xF0B7, 0xF079, 0xF03B, 0xEFFE, \n        0xEFC0, 0xEF83, 0xEF45, 0xEF08, 0xEECB, 0xEE8E, 0xEE51, 0xEE14, \n        0xEDD7, 0xED9B, 0xED5E, 0xED22, 0xECE6, 0xECA9, 0xEC6D, 0xEC31, \n        0xEBF5, 0xEBB9, 0xEB7D, 0xEB42, 0xEB06, 0xEACA, 0xEA8F, 0xEA53, \n        0xEA18, 0xE9DD, 0xE9A1, 0xE966, 0xE92B, 0xE8F0, 0xE8B5, 0xE879, \n        0xE83E, 0xE803, 0xE7C8, 0xE78D, 0xE752, 0xE717, 0xE6DC, 0xE6A1, \n        0xE666, 0xE62B, 0xE5F0, 0xE5B5, 0xE57A, 0xE53F, 0xE504, 0xE4C9, \n        0xE48E, 0xE453, 0xE417, 0xE3DC, 0xE3A1, 0xE365, 0xE32A, 0xE2EF, \n        0xE2B3, 0xE277, 0xE23C, 0xE200, 0xE1C4, 0xE188, 0xE14C, 0xE110, \n        0xE0D4, 0xE097, 0xE05B, 0xE01F, 0xDFE2, 0xDFA5, 0xDF69, 0xDF2C, \n        0xDEEF, 0xDEB1, 0xDE74, 0xDE37, 0xDDF9, 0xDDBC, 0xDD7E, 0xDD40, \n        0xDD02, 0xDCC4, 0xDC86, 0xDC47, 0xDC09, 0xDBCA, 0xDB8B, 0xDB4C, \n        0xDB0D, 0xDACE, 0xDA8E, 0xDA4F, 0xDA0F, 0xD9D0, 0xD990, 0xD950, \n        0xD90F, 0xD8CF, 0xD88F, 0xD84E, 0xD80D, 0xD7CC, 0xD78B, 0xD74A, \n        0xD709, 0xD6C7, 0xD686, 0xD644, 0xD603, 0xD5C1, 0xD57F, 0xD53D, \n        0xD4FA, 0xD4B8, 0xD475, 0xD433, 0xD3F0, 0xD3AD, 0xD36B, 0xD328, \n        0xD2E5, 0xD2A1, 0xD25E, 0xD21B, 0xD1D8, 0xD194, 0xD151, 0xD10D, \n        0xD0C9, 0xD086, 0xD042, 0xCFFE, 0xCFBA, 0xCF76, 0xCF33, 0xCEEF, \n        0xCEAB, 0xCE67, 0xCE23, 0xCDDF, 0xCD9B, 0xCD56, 0xCD12, 0xCCCE, \n        0xCC8A, 0xCC46, 0xCC02, 0xCBBE, 0xCB7A, 0xCB37, 0xCAF3, 0xCAAF, \n        0xCA6B, 0xCA27, 0xC9E4, 0xC9A0, 0xC95D, 0xC919, 0xC8D6, 0xC892, \n        0xC84F, 0xC80C, 0xC7C9, 0xC786, 0xC743, 0xC701, 0xC6BE, 0xC67B, \n        0xC639, 0xC5F7, 0xC5B5, 0xC573, 0xC531, 0xC4EF, 0xC4AD, 0xC46C, \n        0xC42A, 0xC3E9, 0xC3A8, 0xC367, 0xC327, 0xC2E6, 0xC2A6, 0xC265, \n        0xC225, 0xC1E5, 0xC1A6, 0xC166, 0xC127, 0xC0E7, 0xC0A8, 0xC069, \n        0xC02B, 0xBFEC, 0xBFAE, 0xBF6F, 0xBF31, 0xBEF4, 0xBEB6, 0xBE78, \n        0xBE3B, 0xBDFE, 0xBDC1, 0xBD84, 0xBD47, 0xBD0B, 0xBCCF, 0xBC93, \n        0xBC57, 0xBC1B, 0xBBDF, 0xBBA4, 0xBB68, 0xBB2D, 0xBAF2, 0xBAB7, \n        0xBA7C, 0xBA42, 0xBA07, 0xB9CD, 0xB993, 0xB959, 0xB91F, 0xB8E5, \n        0xB8AB, 0xB871, 0xB838, 0xB7FE, 0xB7C5, 0xB78C, 0xB753, 0xB71A, \n        0xB6E1, 0xB6A8, 0xB66F, 0xB636, 0xB5FD, 0xB5C4, 0xB58C, 0xB553, \n        0xB51B, 0xB4E2, 0xB4A9, 0xB471, 0xB438, 0xB400, 0xB3C7, 0xB38E, \n        0xB356, 0xB31D, 0xB2E4, 0xB2AB, 0xB273, 0xB23A, 0xB201, 0xB1C8, \n        0xB18F, 0xB156, 0xB11C, 0xB0E3, 0xB0AA, 0xB070, 0xB036, 0xAFFC, \n        0xAFC2, 0xAF88, 0xAF4E, 0xAF14, 0xAED9, 0xAE9F, 0xAE64, 0xAE29, \n        0xADED, 0xADB2, 0xAD76, 0xAD3B, 0xACFF, 0xACC2, 0xAC86, 0xAC49, \n        0xAC0C, 0xABCF, 0xAB92, 0xAB55, 0xAB17, 0xAAD9, 0xAA9A, 0xAA5C, \n        0xAA1D, 0xA9DE, 0xA99F, 0xA95F, 0xA91F, 0xA8DF, 0xA89F, 0xA85E, \n        0xA81D, 0xA7DC, 0xA79B, 0xA759, 0xA717, 0xA6D5, 0xA692, 0xA64F, \n        0xA60C, 0xA5C9, 0xA585, 0xA541, 0xA4FD, 0xA4B9, 0xA474, 0xA42F, \n        0xA3EA, 0xA3A4, 0xA35E, 0xA318, 0xA2D2, 0xA28B, 0xA245, 0xA1FD, \n        0xA1B6, 0xA16F, 0xA127, 0xA0DF, 0xA097, 0xA04F, 0xA006, 0x9FBD, \n        0x9F74, 0x9F2B, 0x9EE2, 0x9E99, 0x9E4F, 0x9E05, 0x9DBB, 0x9D71, \n        0x9D27, 0x9CDD, 0x9C93, 0x9C48, 0x9BFE, 0x9BB4, 0x9B69, 0x9B1E, \n        0x9AD4, 0x9A89, 0x9A3E, 0x99F4, 0x99A9, 0x995E, 0x9914, 0x98C9, \n        0x987F, 0x9834, 0x97EA, 0x97A0, 0x9756, 0x970C, 0x96C2, 0x9679, \n        0x962F, 0x95E6, 0x959D, 0x9554, 0x950C, 0x94C4, 0x947C, 0x9434, \n        0x93EC, 0x93A5, 0x935F, 0x9318, 0x92D2, 0x928D, 0x9247, 0x9203, \n        0x91BE, 0x917A, 0x9137, 0x90F4, 0x90B2, 0x9070, 0x902E, 0x8FED, \n        0x8FAD, 0x8F6D, 0x8F2E, 0x8EF0, 0x8EB2, 0x8E75, 0x8E38, 0x8DFC, \n        0x8DC1, 0x8D87, 0x8D4D, 0x8D14, 0x8CDC, 0x8CA5, 0x8C6E, 0x8C38, \n        0x8C03, 0x8BCF, 0x8B9C, 0x8B69, 0x8B38, 0x8B07, 0x8AD7, 0x8AA8, \n        0x8A7A, 0x8A4D, 0x8A21, 0x89F6, 0x89CC, 0x89A3, 0x897B, 0x8954, \n        0x892E, 0x8909, 0x88E6, 0x88C3, 0x88A1, 0x8880, 0x8861, 0x8843, \n        0x8825, 0x8809, 0x87EE, 0x87D4, 0x87BB, 0x87A4, 0x878D, 0x8778, \n        0x8764, 0x8751, 0x873F, 0x872F, 0x8720, 0x8712, 0x8705, 0x86F9, \n        0x86EF, 0x86E5, 0x86DD, 0x86D7, 0x86D1, 0x86CD, 0x86CA, 0x86C8, \n        0x86C7, 0x86C8, 0x86CA, 0x86CD, 0x86D1, 0x86D7, 0x86DD, 0x86E5, \n        0x86EF, 0x86F9, 0x8705, 0x8712, 0x8720, 0x872F, 0x873F, 0x8751, \n        0x8764, 0x8778, 0x878D, 0x87A4, 0x87BB, 0x87D4, 0x87EE, 0x8809, \n        0x8825, 0x8842, 0x8861, 0x8880, 0x88A1, 0x88C3, 0x88E6, 0x8909, \n        0x892E, 0x8954, 0x897B, 0x89A3, 0x89CC, 0x89F6, 0x8A21, 0x8A4D, \n        0x8A7A, 0x8AA8, 0x8AD7, 0x8B07, 0x8B38, 0x8B69, 0x8B9C, 0x8BCF, \n        0x8C03, 0x8C38, 0x8C6E, 0x8CA4, 0x8CDC, 0x8D14, 0x8D4D, 0x8D87, \n        0x8DC1, 0x8DFC, 0x8E38, 0x8E75, 0x8EB2, 0x8EF0, 0x8F2E, 0x8F6D, \n        0x8FAD, 0x8FED, 0x902E, 0x9070, 0x90B1, 0x90F4, 0x9137, 0x917A, \n        0x91BE, 0x9203, 0x9247, 0x928D, 0x92D2, 0x9318, 0x935F, 0x93A5, \n        0x93EC, 0x9434, 0x947B, 0x94C3, 0x950C, 0x9554, 0x959D, 0x95E6, \n        0x962F, 0x9679, 0x96C2, 0x970C, 0x9756, 0x97A0, 0x97EA, 0x9834, \n        0x987F, 0x98C9, 0x9914, 0x995E, 0x99A9, 0x99F4, 0x9A3E, 0x9A89, \n        0x9AD4, 0x9B1E, 0x9B69, 0x9BB3, 0x9BFE, 0x9C48, 0x9C93, 0x9CDD, \n        0x9D27, 0x9D71, 0x9DBB, 0x9E05, 0x9E4F, 0x9E98, 0x9EE2, 0x9F2B, \n        0x9F74, 0x9FBD, 0xA006, 0xA04E, 0xA097, 0xA0DF, 0xA127, 0xA16F, \n        0xA1B6, 0xA1FD, 0xA244, 0xA28B, 0xA2D2, 0xA318, 0xA35E, 0xA3A4, \n        0xA3E9, 0xA42F, 0xA474, 0xA4B9, 0xA4FD, 0xA541, 0xA585, 0xA5C9, \n        0xA60C, 0xA64F, 0xA692, 0xA6D5, 0xA717, 0xA759, 0xA79B, 0xA7DC, \n        0xA81D, 0xA85E, 0xA89F, 0xA8DF, 0xA91F, 0xA95F, 0xA99F, 0xA9DE, \n        0xAA1D, 0xAA5C, 0xAA9A, 0xAAD9, 0xAB17, 0xAB54, 0xAB92, 0xABCF, \n        0xAC0C, 0xAC49, 0xAC86, 0xACC2, 0xACFE, 0xAD3A, 0xAD76, 0xADB2, \n        0xADED, 0xAE29, 0xAE64, 0xAE9E, 0xAED9, 0xAF14, 0xAF4E, 0xAF88, \n        0xAFC2, 0xAFFC, 0xB036, 0xB070, 0xB0A9, 0xB0E3, 0xB11C, 0xB156, \n        0xB18F, 0xB1C8, 0xB201, 0xB23A, 0xB273, 0xB2AB, 0xB2E4, 0xB31D, \n        0xB356, 0xB38E, 0xB3C7, 0xB3FF, 0xB438, 0xB471, 0xB4A9, 0xB4E2, \n        0xB51A, 0xB553, 0xB58C, 0xB5C4, 0xB5FD, 0xB636, 0xB66F, 0xB6A8, \n        0xB6E1, 0xB71A, 0xB753, 0xB78C, 0xB7C5, 0xB7FE, 0xB838, 0xB871, \n        0xB8AB, 0xB8E5, 0xB91F, 0xB959, 0xB993, 0xB9CD, 0xBA07, 0xBA42, \n        0xBA7C, 0xBAB7, 0xBAF2, 0xBB2D, 0xBB68, 0xBBA3, 0xBBDF, 0xBC1B, \n        0xBC56, 0xBC92, 0xBCCF, 0xBD0B, 0xBD47, 0xBD84, 0xBDC1, 0xBDFE, \n        0xBE3B, 0xBE78, 0xBEB6, 0xBEF3, 0xBF31, 0xBF6F, 0xBFAE, 0xBFEC, \n        0xC02A, 0xC069, 0xC0A8, 0xC0E7, 0xC126, 0xC166, 0xC1A5, 0xC1E5, \n        0xC225, 0xC265, 0xC2A5, 0xC2E6, 0xC326, 0xC367, 0xC3A8, 0xC3E9, \n        0xC42A, 0xC46C, 0xC4AD, 0xC4EF, 0xC531, 0xC572, 0xC5B4, 0xC5F7, \n        0xC639, 0xC67B, 0xC6BE, 0xC700, 0xC743, 0xC786, 0xC7C9, 0xC80C, \n        0xC84F, 0xC892, 0xC8D6, 0xC919, 0xC95C, 0xC9A0, 0xC9E4, 0xCA27, \n        0xCA6B, 0xCAAF, 0xCAF3, 0xCB36, 0xCB7A, 0xCBBE, 0xCC02, 0xCC46, \n        0xCC8A, 0xCCCE, 0xCD12, 0xCD56, 0xCD9A, 0xCDDE, 0xCE22, 0xCE66, \n        0xCEAA, 0xCEEE, 0xCF32, 0xCF76, 0xCFBA, 0xCFFE, 0xD042, 0xD086, \n        0xD0C9, 0xD10D, 0xD151, 0xD194, 0xD1D7, 0xD21B, 0xD25E, 0xD2A1, \n        0xD2E5, 0xD328, 0xD36B, 0xD3AD, 0xD3F0, 0xD433, 0xD475, 0xD4B8, \n        0xD4FA, 0xD53C, 0xD57F, 0xD5C1, 0xD602, 0xD644, 0xD686, 0xD6C7, \n        0xD709, 0xD74A, 0xD78B, 0xD7CC, 0xD80D, 0xD84E, 0xD88E, 0xD8CF, \n        0xD90F, 0xD94F, 0xD98F, 0xD9CF, 0xDA0F, 0xDA4F, 0xDA8E, 0xDACE, \n        0xDB0D, 0xDB4C, 0xDB8B, 0xDBCA, 0xDC08, 0xDC47, 0xDC85, 0xDCC4, \n        0xDD02, 0xDD40, 0xDD7E, 0xDDBC, 0xDDF9, 0xDE37, 0xDE74, 0xDEB1, \n        0xDEEE, 0xDF2B, 0xDF68, 0xDFA5, 0xDFE2, 0xE01F, 0xE05B, 0xE097, \n        0xE0D4, 0xE110, 0xE14C, 0xE188, 0xE1C4, 0xE200, 0xE23C, 0xE277, \n        0xE2B3, 0xE2EE, 0xE32A, 0xE365, 0xE3A1, 0xE3DC, 0xE417, 0xE453, \n        0xE48E, 0xE4C9, 0xE504, 0xE53F, 0xE57A, 0xE5B5, 0xE5F0, 0xE62B, \n        0xE666, 0xE6A1, 0xE6DC, 0xE717, 0xE752, 0xE78D, 0xE7C8, 0xE803, \n        0xE83E, 0xE879, 0xE8B4, 0xE8F0, 0xE92B, 0xE966, 0xE9A1, 0xE9DD, \n        0xEA18, 0xEA53, 0xEA8F, 0xEACA, 0xEB06, 0xEB42, 0xEB7D, 0xEBB9, \n        0xEBF5, 0xEC31, 0xEC6D, 0xECA9, 0xECE5, 0xED22, 0xED5E, 0xED9B, \n        0xEDD7, 0xEE14, 0xEE51, 0xEE8E, 0xEECB, 0xEF08, 0xEF45, 0xEF83, \n        0xEFC0, 0xEFFE, 0xF03B, 0xF079, 0xF0B7, 0xF0F5, 0xF133, 0xF172, \n        0xF1B0, 0xF1EF, 0xF22D, 0xF26C, 0xF2AB, 0xF2EA, 0xF329, 0xF369, \n        0xF3A8, 0xF3E8, 0xF427, 0xF467, 0xF4A7, 0xF4E7, 0xF527, 0xF568, \n        0xF5A8, 0xF5E9, 0xF629, 0xF66A, 0xF6AB, 0xF6EC, 0xF72D, 0xF76E, \n        0xF7AF, 0xF7F1, 0xF832, 0xF874, 0xF8B6, 0xF8F7, 0xF939, 0xF97B, \n        0xF9BD, 0xFA00, 0xFA42, 0xFA84, 0xFAC6, 0xFB09, 0xFB4B, 0xFB8E, \n        0xFBD1, 0xFC13, 0xFC56, 0xFC99, 0xFCDC, 0xFD1F, 0xFD62, 0xFDA5, \n        0xFDE8, 0xFE2B, 0xFE6E, 0xFEB1, 0xFEF4, 0xFF37, 0xFF7A, 0xFFBD, \n// Waveform 2:\n        0x0000, 0x00DD, 0x01BA, 0x0297, 0x0374, 0x0451, 0x052D, 0x060A, \n        0x06E6, 0x07C2, 0x089E, 0x0979, 0x0A55, 0x0B2F, 0x0C0A, 0x0CE4, \n        0x0DBD, 0x0E96, 0x0F6E, 0x1046, 0x111E, 0x11F4, 0x12CA, 0x13A0, \n        0x1474, 0x1548, 0x161B, 0x16EE, 0x17BF, 0x1890, 0x1960, 0x1A2F, \n        0x1AFD, 0x1BCA, 0x1C96, 0x1D61, 0x1E2B, 0x1EF4, 0x1FBC, 0x2083, \n        0x2148, 0x220D, 0x22D0, 0x2392, 0x2453, 0x2512, 0x25D0, 0x268D, \n        0x2749, 0x2803, 0x28BC, 0x2973, 0x2A29, 0x2ADD, 0x2B90, 0x2C42, \n        0x2CF2, 0x2DA0, 0x2E4D, 0x2EF8, 0x2FA1, 0x3049, 0x30EF, 0x3194, \n        0x3237, 0x32D8, 0x3377, 0x3415, 0x34B1, 0x354B, 0x35E3, 0x367A, \n        0x370F, 0x37A1, 0x3832, 0x38C1, 0x394F, 0x39DA, 0x3A63, 0x3AEB, \n        0x3B70, 0x3BF3, 0x3C75, 0x3CF4, 0x3D72, 0x3DED, 0x3E67, 0x3EDE, \n        0x3F54, 0x3FC7, 0x4038, 0x40A7, 0x4115, 0x4180, 0x41E9, 0x424F, \n        0x42B4, 0x4317, 0x4377, 0x43D6, 0x4432, 0x448C, 0x44E4, 0x453A, \n        0x458E, 0x45DF, 0x462E, 0x467C, 0x46C7, 0x4710, 0x4757, 0x479B, \n        0x47DE, 0x481E, 0x485C, 0x4898, 0x48D2, 0x490A, 0x4940, 0x4973, \n        0x49A5, 0x49D4, 0x4A01, 0x4A2C, 0x4A55, 0x4A7C, 0x4AA0, 0x4AC3, \n        0x4AE3, 0x4B02, 0x4B1E, 0x4B38, 0x4B51, 0x4B67, 0x4B7B, 0x4B8D, \n        0x4B9D, 0x4BAC, 0x4BB8, 0x4BC2, 0x4BCA, 0x4BD0, 0x4BD5, 0x4BD7, \n        0x4BD8, 0x4BD6, 0x4BD3, 0x4BCE, 0x4BC7, 0x4BBE, 0x4BB3, 0x4BA7, \n        0x4B99, 0x4B89, 0x4B77, 0x4B63, 0x4B4E, 0x4B37, 0x4B1F, 0x4B04, \n        0x4AE8, 0x4ACB, 0x4AAC, 0x4A8B, 0x4A69, 0x4A45, 0x4A20, 0x49F9, \n        0x49D0, 0x49A7, 0x497B, 0x494F, 0x4921, 0x48F1, 0x48C1, 0x488E, \n        0x485B, 0x4826, 0x47F1, 0x47B9, 0x4781, 0x4748, 0x470D, 0x46D1, \n        0x4694, 0x4656, 0x4617, 0x45D7, 0x4596, 0x4554, 0x4511, 0x44CE, \n        0x4489, 0x4443, 0x43FD, 0x43B6, 0x436E, 0x4325, 0x42DB, 0x4291, \n        0x4246, 0x41FA, 0x41AE, 0x4161, 0x4114, 0x40C6, 0x4078, 0x4029, \n        0x3FDA, 0x3F8A, 0x3F3A, 0x3EE9, 0x3E98, 0x3E47, 0x3DF6, 0x3DA4, \n        0x3D52, 0x3D00, 0x3CAD, 0x3C5B, 0x3C08, 0x3BB6, 0x3B63, 0x3B10, \n        0x3ABD, 0x3A6A, 0x3A18, 0x39C5, 0x3972, 0x3920, 0x38CE, 0x387C, \n        0x382A, 0x37D8, 0x3787, 0x3736, 0x36E5, 0x3694, 0x3644, 0x35F5, \n        0x35A6, 0x3557, 0x3508, 0x34BB, 0x346D, 0x3421, 0x33D5, 0x3389, \n        0x333E, 0x32F4, 0x32AA, 0x3261, 0x3219, 0x31D2, 0x318B, 0x3145, \n        0x3100, 0x30BC, 0x3079, 0x3036, 0x2FF4, 0x2FB4, 0x2F74, 0x2F35, \n        0x2EF8, 0x2EBB, 0x2E7F, 0x2E44, 0x2E0B, 0x2DD2, 0x2D9B, 0x2D65, \n        0x2D2F, 0x2CFB, 0x2CC9, 0x2C97, 0x2C67, 0x2C37, 0x2C09, 0x2BDD, \n        0x2BB1, 0x2B87, 0x2B5E, 0x2B37, 0x2B11, 0x2AEC, 0x2AC8, 0x2AA6, \n        0x2A86, 0x2A66, 0x2A48, 0x2A2C, 0x2A11, 0x29F7, 0x29DF, 0x29C9, \n        0x29B4, 0x29A0, 0x298E, 0x297D, 0x296E, 0x2960, 0x2954, 0x2949, \n        0x2940, 0x2939, 0x2933, 0x292F, 0x292C, 0x292A, 0x292B, 0x292D, \n        0x2930, 0x2935, 0x293C, 0x2944, 0x294E, 0x2959, 0x2966, 0x2975, \n        0x2985, 0x2997, 0x29AA, 0x29BF, 0x29D6, 0x29EE, 0x2A08, 0x2A23, \n        0x2A40, 0x2A5F, 0x2A7F, 0x2AA0, 0x2AC3, 0x2AE8, 0x2B0E, 0x2B36, \n        0x2B60, 0x2B8B, 0x2BB7, 0x2BE5, 0x2C15, 0x2C46, 0x2C78, 0x2CAC, \n        0x2CE2, 0x2D19, 0x2D51, 0x2D8B, 0x2DC6, 0x2E03, 0x2E41, 0x2E81, \n        0x2EC2, 0x2F04, 0x2F48, 0x2F8D, 0x2FD3, 0x301B, 0x3064, 0x30AE, \n        0x30FA, 0x3147, 0x3195, 0x31E4, 0x3235, 0x3287, 0x32DA, 0x332E, \n        0x3383, 0x33DA, 0x3432, 0x348A, 0x34E4, 0x353F, 0x359B, 0x35F8, \n        0x3656, 0x36B5, 0x3715, 0x3776, 0x37D7, 0x383A, 0x389E, 0x3902, \n        0x3968, 0x39CE, 0x3A35, 0x3A9C, 0x3B05, 0x3B6E, 0x3BD8, 0x3C43, \n        0x3CAE, 0x3D1A, 0x3D87, 0x3DF4, 0x3E61, 0x3ED0, 0x3F3F, 0x3FAE, \n        0x401E, 0x408E, 0x40FF, 0x4170, 0x41E1, 0x4253, 0x42C6, 0x4338, \n        0x43AB, 0x441E, 0x4491, 0x4505, 0x4578, 0x45EC, 0x4660, 0x46D4, \n        0x4749, 0x47BD, 0x4831, 0x48A5, 0x491A, 0x498E, 0x4A02, 0x4A76, \n        0x4AEA, 0x4B5E, 0x4BD2, 0x4C45, 0x4CB8, 0x4D2B, 0x4D9E, 0x4E10, \n        0x4E82, 0x4EF4, 0x4F66, 0x4FD6, 0x5047, 0x50B7, 0x5127, 0x5196, \n        0x5205, 0x5273, 0x52E0, 0x534D, 0x53B9, 0x5425, 0x5490, 0x54FA, \n        0x5564, 0x55CD, 0x5635, 0x569C, 0x5702, 0x5768, 0x57CD, 0x5831, \n        0x5894, 0x58F6, 0x5957, 0x59B7, 0x5A17, 0x5A75, 0x5AD2, 0x5B2E, \n        0x5B89, 0x5BE3, 0x5C3C, 0x5C94, 0x5CEB, 0x5D40, 0x5D94, 0x5DE7, \n        0x5E39, 0x5E8A, 0x5ED9, 0x5F27, 0x5F74, 0x5FC0, 0x600A, 0x6052, \n        0x609A, 0x60E0, 0x6125, 0x6168, 0x61AA, 0x61EA, 0x6229, 0x6266, \n        0x62A2, 0x62DD, 0x6316, 0x634D, 0x6383, 0x63B7, 0x63EA, 0x641B, \n        0x644B, 0x6479, 0x64A5, 0x64D0, 0x64F9, 0x6521, 0x6547, 0x656B, \n        0x658D, 0x65AE, 0x65CE, 0x65EB, 0x6607, 0x6621, 0x6639, 0x6650, \n        0x6665, 0x6678, 0x668A, 0x669A, 0x66A8, 0x66B4, 0x66BE, 0x66C7, \n        0x66CE, 0x66D4, 0x66D7, 0x66D9, 0x66D9, 0x66D7, 0x66D3, 0x66CE, \n        0x66C7, 0x66BE, 0x66B4, 0x66A7, 0x6699, 0x6689, 0x6678, 0x6664, \n        0x664F, 0x6638, 0x6620, 0x6605, 0x65E9, 0x65CB, 0x65AC, 0x658A, \n        0x6567, 0x6543, 0x651C, 0x64F4, 0x64CA, 0x649F, 0x6472, 0x6443, \n        0x6412, 0x63E0, 0x63AC, 0x6377, 0x6340, 0x6307, 0x62CD, 0x6291, \n        0x6254, 0x6215, 0x61D4, 0x6192, 0x614F, 0x610A, 0x60C3, 0x607B, \n        0x6032, 0x5FE7, 0x5F9A, 0x5F4C, 0x5EFD, 0x5EAC, 0x5E5A, 0x5E07, \n        0x5DB2, 0x5D5C, 0x5D04, 0x5CAB, 0x5C51, 0x5BF6, 0x5B99, 0x5B3C, \n        0x5ADC, 0x5A7C, 0x5A1B, 0x59B8, 0x5954, 0x58EF, 0x5889, 0x5822, \n        0x57BA, 0x5751, 0x56E7, 0x567B, 0x560F, 0x55A2, 0x5534, 0x54C5, \n        0x5455, 0x53E4, 0x5372, 0x52FF, 0x528C, 0x5218, 0x51A3, 0x512D, \n        0x50B6, 0x503F, 0x4FC7, 0x4F4F, 0x4ED5, 0x4E5B, 0x4DE1, 0x4D66, \n        0x4CEA, 0x4C6E, 0x4BF1, 0x4B74, 0x4AF7, 0x4A79, 0x49FA, 0x497B, \n        0x48FC, 0x487C, 0x47FC, 0x477C, 0x46FC, 0x467B, 0x45FA, 0x4578, \n        0x44F7, 0x4475, 0x43F4, 0x4372, 0x42F0, 0x426E, 0x41EB, 0x4169, \n        0x40E7, 0x4065, 0x3FE3, 0x3F61, 0x3EDF, 0x3E5D, 0x3DDB, 0x3D59, \n        0x3CD8, 0x3C57, 0x3BD6, 0x3B55, 0x3AD4, 0x3A54, 0x39D4, 0x3954, \n        0x38D5, 0x3856, 0x37D8, 0x3759, 0x36DC, 0x365E, 0x35E2, 0x3565, \n        0x34E9, 0x346E, 0x33F3, 0x3379, 0x3300, 0x3286, 0x320E, 0x3196, \n        0x311F, 0x30A9, 0x3033, 0x2FBE, 0x2F4A, 0x2ED6, 0x2E63, 0x2DF1, \n        0x2D80, 0x2D10, 0x2CA0, 0x2C32, 0x2BC4, 0x2B57, 0x2AEB, 0x2A7F, \n        0x2A15, 0x29AC, 0x2943, 0x28DC, 0x2876, 0x2810, 0x27AC, 0x2748, \n        0x26E6, 0x2684, 0x2624, 0x25C5, 0x2567, 0x2509, 0x24AD, 0x2452, \n        0x23F9, 0x23A0, 0x2348, 0x22F2, 0x229D, 0x2249, 0x21F6, 0x21A4, \n        0x2153, 0x2104, 0x20B6, 0x2069, 0x201D, 0x1FD2, 0x1F89, 0x1F41, \n        0x1EFA, 0x1EB4, 0x1E70, 0x1E2D, 0x1DEB, 0x1DAA, 0x1D6B, 0x1D2D, \n        0x1CF0, 0x1CB4, 0x1C7A, 0x1C41, 0x1C09, 0x1BD2, 0x1B9D, 0x1B69, \n        0x1B36, 0x1B05, 0x1AD4, 0x1AA5, 0x1A78, 0x1A4B, 0x1A20, 0x19F6, \n        0x19CD, 0x19A6, 0x197F, 0x195A, 0x1937, 0x1914, 0x18F3, 0x18D3, \n        0x18B4, 0x1896, 0x187A, 0x185F, 0x1845, 0x182C, 0x1814, 0x17FE, \n        0x17E8, 0x17D4, 0x17C1, 0x17AF, 0x179F, 0x178F, 0x1780, 0x1773, \n        0x1767, 0x175B, 0x1751, 0x1748, 0x1740, 0x1739, 0x1733, 0x172E, \n        0x172A, 0x1727, 0x1725, 0x1724, 0x1724, 0x1725, 0x1727, 0x172A, \n        0x172D, 0x1732, 0x1737, 0x173D, 0x1744, 0x174C, 0x1755, 0x175F, \n        0x1769, 0x1774, 0x1780, 0x178C, 0x179A, 0x17A8, 0x17B6, 0x17C6, \n        0x17D6, 0x17E6, 0x17F8, 0x180A, 0x181C, 0x182F, 0x1843, 0x1857, \n        0x186C, 0x1881, 0x1896, 0x18AC, 0x18C3, 0x18DA, 0x18F1, 0x1909, \n        0x1921, 0x193A, 0x1953, 0x196C, 0x1986, 0x199F, 0x19B9, 0x19D4, \n        0x19EE, 0x1A09, 0x1A24, 0x1A3F, 0x1A5A, 0x1A76, 0x1A91, 0x1AAD, \n        0x1AC8, 0x1AE4, 0x1B00, 0x1B1C, 0x1B37, 0x1B53, 0x1B6F, 0x1B8B, \n        0x1BA6, 0x1BC2, 0x1BDD, 0x1BF9, 0x1C14, 0x1C2F, 0x1C4A, 0x1C64, \n        0x1C7F, 0x1C99, 0x1CB3, 0x1CCC, 0x1CE6, 0x1CFF, 0x1D17, 0x1D30, \n        0x1D48, 0x1D5F, 0x1D77, 0x1D8D, 0x1DA4, 0x1DBA, 0x1DCF, 0x1DE4, \n        0x1DF9, 0x1E0D, 0x1E20, 0x1E33, 0x1E46, 0x1E58, 0x1E69, 0x1E7A, \n        0x1E8A, 0x1E99, 0x1EA8, 0x1EB6, 0x1EC4, 0x1ED0, 0x1EDC, 0x1EE8, \n        0x1EF2, 0x1EFC, 0x1F05, 0x1F0E, 0x1F15, 0x1F1C, 0x1F22, 0x1F27, \n        0x1F2C, 0x1F2F, 0x1F32, 0x1F34, 0x1F35, 0x1F35, 0x1F34, 0x1F33, \n        0x1F30, 0x1F2D, 0x1F28, 0x1F23, 0x1F1C, 0x1F15, 0x1F0D, 0x1F04, \n        0x1EFA, 0x1EEF, 0x1EE2, 0x1ED5, 0x1EC7, 0x1EB8, 0x1EA8, 0x1E97, \n        0x1E85, 0x1E72, 0x1E5D, 0x1E48, 0x1E32, 0x1E1B, 0x1E02, 0x1DE9, \n        0x1DCE, 0x1DB3, 0x1D96, 0x1D79, 0x1D5A, 0x1D3A, 0x1D1A, 0x1CF8, \n        0x1CD5, 0x1CB1, 0x1C8C, 0x1C66, 0x1C3E, 0x1C16, 0x1BED, 0x1BC2, \n        0x1B97, 0x1B6A, 0x1B3D, 0x1B0E, 0x1ADF, 0x1AAE, 0x1A7C, 0x1A4A, \n        0x1A16, 0x19E1, 0x19AB, 0x1974, 0x193C, 0x1904, 0x18CA, 0x188F, \n        0x1853, 0x1816, 0x17D8, 0x1799, 0x175A, 0x1719, 0x16D7, 0x1695, \n        0x1651, 0x160D, 0x15C7, 0x1581, 0x153A, 0x14F2, 0x14A9, 0x145F, \n        0x1414, 0x13C9, 0x137D, 0x132F, 0x12E1, 0x1293, 0x1243, 0x11F3, \n        0x11A2, 0x1150, 0x10FD, 0x10AA, 0x1056, 0x1001, 0x0FAC, 0x0F56, \n        0x0EFF, 0x0EA7, 0x0E4F, 0x0DF7, 0x0D9D, 0x0D44, 0x0CE9, 0x0C8E, \n        0x0C33, 0x0BD7, 0x0B7A, 0x0B1D, 0x0ABF, 0x0A61, 0x0A03, 0x09A4, \n        0x0944, 0x08E5, 0x0884, 0x0824, 0x07C3, 0x0762, 0x0700, 0x069E, \n        0x063C, 0x05DA, 0x0577, 0x0514, 0x04B1, 0x044E, 0x03EA, 0x0386, \n        0x0322, 0x02BE, 0x025A, 0x01F6, 0x0191, 0x012D, 0x00C9, 0x0064, \n        0x0000, 0xFF9C, 0xFF38, 0xFED3, 0xFE6F, 0xFE0A, 0xFDA6, 0xFD42, \n        0xFCDE, 0xFC7A, 0xFC16, 0xFBB3, 0xFB4F, 0xFAEC, 0xFA89, 0xFA26, \n        0xF9C4, 0xF962, 0xF900, 0xF89E, 0xF83D, 0xF7DC, 0xF77C, 0xF71B, \n        0xF6BC, 0xF65C, 0xF5FD, 0xF59F, 0xF541, 0xF4E3, 0xF486, 0xF42A, \n        0xF3CD, 0xF372, 0xF317, 0xF2BC, 0xF263, 0xF209, 0xF1B1, 0xF159, \n        0xF101, 0xF0AA, 0xF054, 0xEFFF, 0xEFAA, 0xEF56, 0xEF03, 0xEEB0, \n        0xEE5E, 0xEE0D, 0xEDBD, 0xED6D, 0xED1F, 0xECD1, 0xEC84, 0xEC37, \n        0xEBEC, 0xEBA1, 0xEB57, 0xEB0E, 0xEAC6, 0xEA7F, 0xEA39, 0xE9F3, \n        0xE9AF, 0xE96B, 0xE929, 0xE8E7, 0xE8A6, 0xE867, 0xE828, 0xE7EA, \n        0xE7AD, 0xE771, 0xE736, 0xE6FD, 0xE6C4, 0xE68C, 0xE655, 0xE61F, \n        0xE5EA, 0xE5B6, 0xE584, 0xE552, 0xE521, 0xE4F2, 0xE4C3, 0xE496, \n        0xE469, 0xE43E, 0xE413, 0xE3EA, 0xE3C2, 0xE39B, 0xE374, 0xE34F, \n        0xE32B, 0xE308, 0xE2E7, 0xE2C6, 0xE2A6, 0xE287, 0xE26A, 0xE24D, \n        0xE232, 0xE217, 0xE1FE, 0xE1E5, 0xE1CE, 0xE1B8, 0xE1A3, 0xE18E, \n        0xE17B, 0xE169, 0xE158, 0xE148, 0xE139, 0xE12B, 0xE11E, 0xE111, \n        0xE106, 0xE0FC, 0xE0F3, 0xE0EB, 0xE0E4, 0xE0DD, 0xE0D8, 0xE0D3, \n        0xE0D0, 0xE0CD, 0xE0CC, 0xE0CB, 0xE0CB, 0xE0CC, 0xE0CE, 0xE0D1, \n        0xE0D4, 0xE0D9, 0xE0DE, 0xE0E4, 0xE0EB, 0xE0F2, 0xE0FB, 0xE104, \n        0xE10E, 0xE118, 0xE124, 0xE130, 0xE13C, 0xE14A, 0xE158, 0xE167, \n        0xE176, 0xE186, 0xE197, 0xE1A8, 0xE1BA, 0xE1CD, 0xE1DF, 0xE1F3, \n        0xE207, 0xE21C, 0xE231, 0xE246, 0xE25C, 0xE273, 0xE289, 0xE2A1, \n        0xE2B8, 0xE2D0, 0xE2E9, 0xE301, 0xE31A, 0xE334, 0xE34D, 0xE367, \n        0xE381, 0xE39C, 0xE3B6, 0xE3D1, 0xE3EC, 0xE407, 0xE423, 0xE43E, \n        0xE45A, 0xE475, 0xE491, 0xE4AD, 0xE4C9, 0xE4E4, 0xE500, 0xE51C, \n        0xE538, 0xE553, 0xE56F, 0xE58A, 0xE5A6, 0xE5C1, 0xE5DC, 0xE5F7, \n        0xE612, 0xE62C, 0xE647, 0xE661, 0xE67A, 0xE694, 0xE6AD, 0xE6C6, \n        0xE6DF, 0xE6F7, 0xE70F, 0xE726, 0xE73D, 0xE753, 0xE76A, 0xE77F, \n        0xE794, 0xE7A9, 0xE7BD, 0xE7D1, 0xE7E4, 0xE7F6, 0xE808, 0xE81A, \n        0xE82A, 0xE83A, 0xE84A, 0xE858, 0xE866, 0xE874, 0xE880, 0xE88C, \n        0xE897, 0xE8A1, 0xE8AB, 0xE8B4, 0xE8BC, 0xE8C3, 0xE8C9, 0xE8CE, \n        0xE8D3, 0xE8D6, 0xE8D9, 0xE8DB, 0xE8DC, 0xE8DC, 0xE8DB, 0xE8D9, \n        0xE8D6, 0xE8D2, 0xE8CD, 0xE8C7, 0xE8C0, 0xE8B8, 0xE8AF, 0xE8A5, \n        0xE899, 0xE88D, 0xE880, 0xE871, 0xE861, 0xE851, 0xE83F, 0xE82C, \n        0xE818, 0xE802, 0xE7EC, 0xE7D4, 0xE7BB, 0xE7A1, 0xE786, 0xE76A, \n        0xE74C, 0xE72D, 0xE70D, 0xE6EC, 0xE6C9, 0xE6A6, 0xE681, 0xE65A, \n        0xE633, 0xE60A, 0xE5E0, 0xE5B5, 0xE589, 0xE55B, 0xE52C, 0xE4FC, \n        0xE4CA, 0xE497, 0xE463, 0xE42E, 0xE3F7, 0xE3BF, 0xE386, 0xE34C, \n        0xE310, 0xE2D3, 0xE295, 0xE256, 0xE215, 0xE1D3, 0xE190, 0xE14C, \n        0xE106, 0xE0BF, 0xE077, 0xE02E, 0xDFE3, 0xDF97, 0xDF4A, 0xDEFC, \n        0xDEAD, 0xDE5C, 0xDE0A, 0xDDB7, 0xDD63, 0xDD0E, 0xDCB8, 0xDC60, \n        0xDC07, 0xDBAE, 0xDB53, 0xDAF7, 0xDA9A, 0xDA3B, 0xD9DC, 0xD97C, \n        0xD91A, 0xD8B8, 0xD855, 0xD7F0, 0xD78B, 0xD724, 0xD6BD, 0xD654, \n        0xD5EB, 0xD581, 0xD516, 0xD4A9, 0xD43C, 0xD3CF, 0xD360, 0xD2F0, \n        0xD280, 0xD20F, 0xD19D, 0xD12A, 0xD0B6, 0xD042, 0xCFCD, 0xCF57, \n        0xCEE1, 0xCE6A, 0xCDF2, 0xCD7A, 0xCD01, 0xCC87, 0xCC0D, 0xCB92, \n        0xCB17, 0xCA9B, 0xCA1F, 0xC9A2, 0xC924, 0xC8A7, 0xC829, 0xC7AA, \n        0xC72B, 0xC6AC, 0xC62C, 0xC5AC, 0xC52C, 0xC4AB, 0xC42A, 0xC3A9, \n        0xC328, 0xC2A7, 0xC225, 0xC1A3, 0xC121, 0xC09F, 0xC01D, 0xBF9B, \n        0xBF19, 0xBE97, 0xBE15, 0xBD93, 0xBD11, 0xBC8F, 0xBC0D, 0xBB8B, \n        0xBB09, 0xBA88, 0xBA06, 0xB985, 0xB905, 0xB884, 0xB804, 0xB784, \n        0xB704, 0xB685, 0xB606, 0xB588, 0xB509, 0xB48C, 0xB40F, 0xB392, \n        0xB316, 0xB29A, 0xB21F, 0xB1A5, 0xB12B, 0xB0B2, 0xB039, 0xAFC1, \n        0xAF4A, 0xAED3, 0xAE5D, 0xADE8, 0xAD74, 0xAD01, 0xAC8E, 0xAC1C, \n        0xABAB, 0xAB3B, 0xAACC, 0xAA5E, 0xA9F1, 0xA985, 0xA919, 0xA8AF, \n        0xA846, 0xA7DE, 0xA777, 0xA711, 0xA6AC, 0xA648, 0xA5E5, 0xA584, \n        0xA524, 0xA4C5, 0xA467, 0xA40A, 0xA3AF, 0xA355, 0xA2FC, 0xA2A4, \n        0xA24E, 0xA1F9, 0xA1A6, 0xA154, 0xA103, 0xA0B4, 0xA066, 0xA019, \n        0x9FCE, 0x9F85, 0x9F3D, 0x9EF6, 0x9EB1, 0x9E6E, 0x9E2C, 0x9DEB, \n        0x9DAC, 0x9D6F, 0x9D33, 0x9CF9, 0x9CC0, 0x9C89, 0x9C54, 0x9C20, \n        0x9BEE, 0x9BBD, 0x9B8E, 0x9B61, 0x9B36, 0x9B0C, 0x9AE4, 0x9ABD, \n        0x9A99, 0x9A76, 0x9A54, 0x9A35, 0x9A17, 0x99FB, 0x99E0, 0x99C8, \n        0x99B1, 0x999C, 0x9988, 0x9977, 0x9967, 0x9959, 0x994C, 0x9942, \n        0x9939, 0x9932, 0x992D, 0x9929, 0x9927, 0x9927, 0x9929, 0x992C, \n        0x9932, 0x9939, 0x9942, 0x994C, 0x9958, 0x9966, 0x9976, 0x9988, \n        0x999B, 0x99B0, 0x99C7, 0x99DF, 0x99F9, 0x9A15, 0x9A32, 0x9A52, \n        0x9A72, 0x9A95, 0x9AB9, 0x9ADF, 0x9B07, 0x9B30, 0x9B5B, 0x9B87, \n        0x9BB5, 0x9BE5, 0x9C16, 0x9C49, 0x9C7D, 0x9CB3, 0x9CEA, 0x9D23, \n        0x9D5E, 0x9D9A, 0x9DD7, 0x9E16, 0x9E56, 0x9E98, 0x9EDB, 0x9F20, \n        0x9F66, 0x9FAD, 0x9FF6, 0xA040, 0xA08C, 0xA0D9, 0xA127, 0xA176, \n        0xA1C7, 0xA218, 0xA26B, 0xA2C0, 0xA315, 0xA36C, 0xA3C4, 0xA41D, \n        0xA477, 0xA4D2, 0xA52E, 0xA58B, 0xA5E9, 0xA648, 0xA6A9, 0xA70A, \n        0xA76C, 0xA7CF, 0xA833, 0xA898, 0xA8FD, 0xA964, 0xA9CB, 0xAA33, \n        0xAA9C, 0xAB06, 0xAB70, 0xABDB, 0xAC47, 0xACB3, 0xAD20, 0xAD8D, \n        0xADFB, 0xAE6A, 0xAED9, 0xAF49, 0xAFB9, 0xB029, 0xB09A, 0xB10C, \n        0xB17D, 0xB1F0, 0xB262, 0xB2D5, 0xB348, 0xB3BB, 0xB42E, 0xB4A2, \n        0xB516, 0xB58A, 0xB5FE, 0xB672, 0xB6E6, 0xB75A, 0xB7CF, 0xB843, \n        0xB8B7, 0xB92B, 0xB9A0, 0xBA14, 0xBA87, 0xBAFB, 0xBB6F, 0xBBE2, \n        0xBC55, 0xBCC8, 0xBD3A, 0xBDAD, 0xBE1E, 0xBE90, 0xBF01, 0xBF72, \n        0xBFE2, 0xC052, 0xC0C1, 0xC130, 0xC19E, 0xC20C, 0xC279, 0xC2E6, \n        0xC352, 0xC3BD, 0xC428, 0xC492, 0xC4FB, 0xC564, 0xC5CB, 0xC632, \n        0xC698, 0xC6FE, 0xC762, 0xC7C6, 0xC828, 0xC88A, 0xC8EB, 0xC94B, \n        0xC9AA, 0xCA08, 0xCA65, 0xCAC1, 0xCB1C, 0xCB76, 0xCBCE, 0xCC26, \n        0xCC7C, 0xCCD2, 0xCD26, 0xCD79, 0xCDCB, 0xCE1C, 0xCE6B, 0xCEB9, \n        0xCF06, 0xCF52, 0xCF9C, 0xCFE5, 0xD02D, 0xD073, 0xD0B8, 0xD0FC, \n        0xD13E, 0xD17F, 0xD1BF, 0xD1FD, 0xD23A, 0xD275, 0xD2AF, 0xD2E7, \n        0xD31E, 0xD354, 0xD388, 0xD3BA, 0xD3EB, 0xD41B, 0xD449, 0xD475, \n        0xD4A0, 0xD4CA, 0xD4F1, 0xD518, 0xD53D, 0xD560, 0xD581, 0xD5A1, \n        0xD5C0, 0xD5DD, 0xD5F8, 0xD612, 0xD62A, 0xD641, 0xD656, 0xD669, \n        0xD67B, 0xD68B, 0xD69A, 0xD6A7, 0xD6B2, 0xD6BC, 0xD6C4, 0xD6CB, \n        0xD6D0, 0xD6D3, 0xD6D5, 0xD6D6, 0xD6D4, 0xD6D1, 0xD6CD, 0xD6C7, \n        0xD6C0, 0xD6B7, 0xD6AC, 0xD6A0, 0xD692, 0xD683, 0xD672, 0xD660, \n        0xD64D, 0xD637, 0xD621, 0xD609, 0xD5EF, 0xD5D4, 0xD5B8, 0xD59A, \n        0xD57A, 0xD55A, 0xD538, 0xD514, 0xD4EF, 0xD4C9, 0xD4A2, 0xD479, \n        0xD44F, 0xD423, 0xD3F7, 0xD3C9, 0xD39A, 0xD369, 0xD337, 0xD305, \n        0xD2D1, 0xD29C, 0xD265, 0xD22E, 0xD1F5, 0xD1BC, 0xD181, 0xD145, \n        0xD108, 0xD0CB, 0xD08C, 0xD04C, 0xD00C, 0xCFCA, 0xCF88, 0xCF44, \n        0xCF00, 0xCEBB, 0xCE75, 0xCE2E, 0xCDE7, 0xCD9F, 0xCD56, 0xCD0C, \n        0xCCC2, 0xCC77, 0xCC2C, 0xCBDF, 0xCB93, 0xCB45, 0xCAF8, 0xCAA9, \n        0xCA5B, 0xCA0B, 0xC9BC, 0xC96C, 0xC91B, 0xC8CA, 0xC879, 0xC828, \n        0xC7D6, 0xC784, 0xC732, 0xC6E0, 0xC68E, 0xC63B, 0xC5E8, 0xC596, \n        0xC543, 0xC4F0, 0xC49D, 0xC44B, 0xC3F8, 0xC3A5, 0xC353, 0xC300, \n        0xC2AE, 0xC25C, 0xC20B, 0xC1B9, 0xC168, 0xC117, 0xC0C6, 0xC076, \n        0xC027, 0xBFD7, 0xBF88, 0xBF3A, 0xBEEC, 0xBE9F, 0xBE52, 0xBE06, \n        0xBDBA, 0xBD6F, 0xBD25, 0xBCDB, 0xBC93, 0xBC4B, 0xBC03, 0xBBBD, \n        0xBB77, 0xBB32, 0xBAEF, 0xBAAC, 0xBA6A, 0xBA29, 0xB9E9, 0xB9AA, \n        0xB96C, 0xB92F, 0xB8F3, 0xB8B8, 0xB87F, 0xB847, 0xB80F, 0xB7DA, \n        0xB7A5, 0xB772, 0xB740, 0xB70F, 0xB6DF, 0xB6B1, 0xB685, 0xB659, \n        0xB630, 0xB607, 0xB5E0, 0xB5BB, 0xB597, 0xB575, 0xB554, 0xB535, \n        0xB518, 0xB4FC, 0xB4E1, 0xB4C9, 0xB4B2, 0xB49D, 0xB489, 0xB477, \n        0xB467, 0xB459, 0xB44D, 0xB442, 0xB439, 0xB432, 0xB42D, 0xB42A, \n        0xB428, 0xB429, 0xB42B, 0xB430, 0xB436, 0xB43E, 0xB448, 0xB454, \n        0xB463, 0xB473, 0xB485, 0xB499, 0xB4AF, 0xB4C8, 0xB4E2, 0xB4FE, \n        0xB51D, 0xB53D, 0xB560, 0xB584, 0xB5AB, 0xB5D4, 0xB5FF, 0xB62C, \n        0xB65B, 0xB68D, 0xB6C0, 0xB6F6, 0xB72E, 0xB768, 0xB7A4, 0xB7E2, \n        0xB822, 0xB865, 0xB8A9, 0xB8F0, 0xB939, 0xB984, 0xB9D1, 0xBA21, \n        0xBA72, 0xBAC6, 0xBB1C, 0xBB74, 0xBBCE, 0xBC2A, 0xBC89, 0xBCE9, \n        0xBD4C, 0xBDB1, 0xBE17, 0xBE80, 0xBEEB, 0xBF58, 0xBFC8, 0xC039, \n        0xC0AC, 0xC122, 0xC199, 0xC213, 0xC28E, 0xC30B, 0xC38B, 0xC40C, \n        0xC490, 0xC515, 0xC59D, 0xC626, 0xC6B1, 0xC73E, 0xC7CD, 0xC85E, \n        0xC8F1, 0xC986, 0xCA1C, 0xCAB5, 0xCB4F, 0xCBEB, 0xCC88, 0xCD28, \n        0xCDC9, 0xCE6C, 0xCF10, 0xCFB7, 0xD05F, 0xD108, 0xD1B3, 0xD260, \n        0xD30E, 0xD3BE, 0xD470, 0xD522, 0xD5D7, 0xD68D, 0xD744, 0xD7FD, \n        0xD8B7, 0xD972, 0xDA2F, 0xDAED, 0xDBAD, 0xDC6E, 0xDD30, 0xDDF3, \n        0xDEB7, 0xDF7D, 0xE044, 0xE10C, 0xE1D5, 0xE29F, 0xE36A, 0xE436, \n        0xE503, 0xE5D1, 0xE6A0, 0xE770, 0xE840, 0xE912, 0xE9E4, 0xEAB8, \n        0xEB8B, 0xEC60, 0xED36, 0xEE0C, 0xEEE2, 0xEFBA, 0xF091, 0xF16A, \n        0xF243, 0xF31C, 0xF3F6, 0xF4D1, 0xF5AB, 0xF686, 0xF762, 0xF83E, \n        0xF91A, 0xF9F6, 0xFAD2, 0xFBAF, 0xFC8C, 0xFD69, 0xFE46, 0xFF23, \n// Waveform 3:\n        0x0000, 0xFFCE, 0xFF9C, 0xFF6A, 0xFF37, 0xFF05, 0xFED3, 0xFEA1, \n        0xFE6F, 0xFE3D, 0xFE0A, 0xFDD8, 0xFDA6, 0xFD74, 0xFD42, 0xFD10, \n        0xFCDF, 0xFCAD, 0xFC7B, 0xFC49, 0xFC18, 0xFBE6, 0xFBB5, 0xFB83, \n        0xFB52, 0xFB21, 0xFAEF, 0xFABE, 0xFA8D, 0xFA5C, 0xFA2B, 0xF9FB, \n        0xF9CA, 0xF99A, 0xF969, 0xF939, 0xF909, 0xF8D9, 0xF8A9, 0xF879, \n        0xF849, 0xF81A, 0xF7EA, 0xF7BB, 0xF78C, 0xF75D, 0xF72E, 0xF6FF, \n        0xF6D1, 0xF6A2, 0xF674, 0xF646, 0xF618, 0xF5EA, 0xF5BD, 0xF58F, \n        0xF562, 0xF535, 0xF508, 0xF4DB, 0xF4AF, 0xF483, 0xF457, 0xF42B, \n        0xF3FF, 0xF3D4, 0xF3A8, 0xF37D, 0xF352, 0xF328, 0xF2FD, 0xF2D3, \n        0xF2A9, 0xF280, 0xF256, 0xF22D, 0xF204, 0xF1DB, 0xF1B3, 0xF18A, \n        0xF162, 0xF13A, 0xF113, 0xF0EC, 0xF0C5, 0xF09E, 0xF078, 0xF051, \n        0xF02B, 0xF006, 0xEFE0, 0xEFBB, 0xEF96, 0xEF72, 0xEF4E, 0xEF2A, \n        0xEF06, 0xEEE3, 0xEEC0, 0xEE9D, 0xEE7B, 0xEE59, 0xEE37, 0xEE15, \n        0xEDF4, 0xEDD3, 0xEDB3, 0xED92, 0xED73, 0xED53, 0xED34, 0xED15, \n        0xECF6, 0xECD8, 0xECBA, 0xEC9D, 0xEC80, 0xEC63, 0xEC46, 0xEC2A, \n        0xEC0E, 0xEBF3, 0xEBD8, 0xEBBD, 0xEBA3, 0xEB89, 0xEB6F, 0xEB56, \n        0xEB3D, 0xEB25, 0xEB0D, 0xEAF5, 0xEADE, 0xEAC7, 0xEAB0, 0xEA9A, \n        0xEA84, 0xEA6F, 0xEA5A, 0xEA46, 0xEA31, 0xEA1E, 0xEA0A, 0xE9F7, \n        0xE9E5, 0xE9D3, 0xE9C1, 0xE9B0, 0xE99F, 0xE98E, 0xE97E, 0xE96F, \n        0xE95F, 0xE951, 0xE942, 0xE934, 0xE927, 0xE91A, 0xE90D, 0xE901, \n        0xE8F5, 0xE8EA, 0xE8DF, 0xE8D5, 0xE8CB, 0xE8C1, 0xE8B8, 0xE8AF, \n        0xE8A7, 0xE8A0, 0xE898, 0xE892, 0xE88B, 0xE885, 0xE880, 0xE87B, \n        0xE876, 0xE872, 0xE86F, 0xE86C, 0xE869, 0xE867, 0xE865, 0xE864, \n        0xE863, 0xE863, 0xE863, 0xE864, 0xE865, 0xE867, 0xE869, 0xE86B, \n        0xE86E, 0xE872, 0xE876, 0xE87A, 0xE87F, 0xE885, 0xE88B, 0xE891, \n        0xE898, 0xE8A0, 0xE8A8, 0xE8B0, 0xE8B9, 0xE8C3, 0xE8CD, 0xE8D7, \n        0xE8E2, 0xE8EE, 0xE8F9, 0xE906, 0xE913, 0xE920, 0xE92E, 0xE93D, \n        0xE94C, 0xE95B, 0xE96B, 0xE97C, 0xE98C, 0xE99E, 0xE9B0, 0xE9C2, \n        0xE9D5, 0xE9E9, 0xE9FD, 0xEA11, 0xEA26, 0xEA3C, 0xEA52, 0xEA69, \n        0xEA80, 0xEA97, 0xEAAF, 0xEAC8, 0xEAE1, 0xEAFB, 0xEB15, 0xEB2F, \n        0xEB4A, 0xEB66, 0xEB82, 0xEB9F, 0xEBBC, 0xEBDA, 0xEBF8, 0xEC17, \n        0xEC36, 0xEC56, 0xEC76, 0xEC97, 0xECB8, 0xECDA, 0xECFC, 0xED1F, \n        0xED42, 0xED66, 0xED8A, 0xEDAF, 0xEDD4, 0xEDFA, 0xEE20, 0xEE47, \n        0xEE6E, 0xEE96, 0xEEBF, 0xEEE7, 0xEF11, 0xEF3B, 0xEF65, 0xEF90, \n        0xEFBB, 0xEFE7, 0xF013, 0xF040, 0xF06E, 0xF09C, 0xF0CA, 0xF0F9, \n        0xF128, 0xF158, 0xF188, 0xF1B9, 0xF1EA, 0xF21C, 0xF24E, 0xF281, \n        0xF2B4, 0xF2E8, 0xF31C, 0xF351, 0xF386, 0xF3BC, 0xF3F2, 0xF429, \n        0xF460, 0xF497, 0xF4D0, 0xF508, 0xF541, 0xF57B, 0xF5B4, 0xF5EF, \n        0xF62A, 0xF665, 0xF6A1, 0xF6DD, 0xF71A, 0xF757, 0xF795, 0xF7D3, \n        0xF812, 0xF851, 0xF890, 0xF8D0, 0xF910, 0xF951, 0xF993, 0xF9D4, \n        0xFA16, 0xFA59, 0xFA9C, 0xFAE0, 0xFB24, 0xFB68, 0xFBAD, 0xFBF2, \n        0xFC38, 0xFC7E, 0xFCC4, 0xFD0B, 0xFD53, 0xFD9A, 0xFDE2, 0xFE2B, \n        0xFE74, 0xFEBE, 0xFF07, 0xFF52, 0xFF9C, 0xFFE7, 0x0032, 0x007E, \n        0x00CA, 0x0117, 0x0164, 0x01B1, 0x01FF, 0x024D, 0x029C, 0x02EB, \n        0x033A, 0x038A, 0x03DA, 0x042A, 0x047B, 0x04CC, 0x051E, 0x0570, \n        0x05C2, 0x0615, 0x0668, 0x06BB, 0x070F, 0x0763, 0x07B8, 0x080C, \n        0x0861, 0x08B7, 0x090D, 0x0963, 0x09B9, 0x0A10, 0x0A67, 0x0ABE, \n        0x0B16, 0x0B6E, 0x0BC6, 0x0C1F, 0x0C78, 0x0CD1, 0x0D2B, 0x0D85, \n        0x0DDF, 0x0E39, 0x0E94, 0x0EEF, 0x0F4B, 0x0FA6, 0x1002, 0x105E, \n        0x10BB, 0x1117, 0x1174, 0x11D2, 0x122F, 0x128D, 0x12EB, 0x1349, \n        0x13A8, 0x1406, 0x1465, 0x14C5, 0x1524, 0x1584, 0x15E4, 0x1644, \n        0x16A4, 0x1705, 0x1766, 0x17C7, 0x1828, 0x188A, 0x18EB, 0x194D, \n        0x19AF, 0x1A12, 0x1A74, 0x1AD7, 0x1B3A, 0x1B9D, 0x1C00, 0x1C63, \n        0x1CC7, 0x1D2A, 0x1D8E, 0x1DF2, 0x1E57, 0x1EBB, 0x1F1F, 0x1F84, \n        0x1FE9, 0x204E, 0x20B3, 0x2118, 0x217D, 0x21E3, 0x2248, 0x22AE, \n        0x2314, 0x237A, 0x23E0, 0x2446, 0x24AC, 0x2513, 0x2579, 0x25E0, \n        0x2646, 0x26AD, 0x2714, 0x277B, 0x27E2, 0x2849, 0x28B0, 0x2917, \n        0x297E, 0x29E6, 0x2A4D, 0x2AB4, 0x2B1C, 0x2B83, 0x2BEB, 0x2C52, \n        0x2CBA, 0x2D21, 0x2D89, 0x2DF1, 0x2E58, 0x2EC0, 0x2F28, 0x2F8F, \n        0x2FF7, 0x305F, 0x30C6, 0x312E, 0x3196, 0x31FD, 0x3265, 0x32CC, \n        0x3334, 0x339B, 0x3403, 0x346A, 0x34D2, 0x3539, 0x35A0, 0x3607, \n        0x366F, 0x36D6, 0x373D, 0x37A4, 0x380B, 0x3871, 0x38D8, 0x393F, \n        0x39A5, 0x3A0C, 0x3A72, 0x3AD8, 0x3B3F, 0x3BA5, 0x3C0B, 0x3C70, \n        0x3CD6, 0x3D3C, 0x3DA1, 0x3E06, 0x3E6C, 0x3ED1, 0x3F36, 0x3F9A, \n        0x3FFF, 0x4063, 0x40C8, 0x412C, 0x4190, 0x41F4, 0x4257, 0x42BB, \n        0x431E, 0x4381, 0x43E4, 0x4447, 0x44A9, 0x450B, 0x456E, 0x45CF, \n        0x4631, 0x4693, 0x46F4, 0x4755, 0x47B6, 0x4816, 0x4877, 0x48D7, \n        0x4937, 0x4996, 0x49F6, 0x4A55, 0x4AB4, 0x4B12, 0x4B70, 0x4BCF, \n        0x4C2C, 0x4C8A, 0x4CE7, 0x4D44, 0x4DA1, 0x4DFD, 0x4E59, 0x4EB5, \n        0x4F11, 0x4F6C, 0x4FC7, 0x5021, 0x507C, 0x50D6, 0x512F, 0x5189, \n        0x51E2, 0x523A, 0x5293, 0x52EA, 0x5342, 0x5399, 0x53F0, 0x5447, \n        0x549D, 0x54F3, 0x5549, 0x559E, 0x55F3, 0x5647, 0x569B, 0x56EF, \n        0x5742, 0x5795, 0x57E7, 0x5839, 0x588B, 0x58DC, 0x592D, 0x597E, \n        0x59CE, 0x5A1D, 0x5A6D, 0x5ABB, 0x5B0A, 0x5B58, 0x5BA5, 0x5BF2, \n        0x5C3F, 0x5C8B, 0x5CD7, 0x5D22, 0x5D6D, 0x5DB8, 0x5E02, 0x5E4B, \n        0x5E94, 0x5EDD, 0x5F25, 0x5F6D, 0x5FB4, 0x5FFB, 0x6041, 0x6086, \n        0x60CC, 0x6110, 0x6155, 0x6198, 0x61DC, 0x621E, 0x6261, 0x62A2, \n        0x62E4, 0x6324, 0x6365, 0x63A4, 0x63E3, 0x6422, 0x6460, 0x649E, \n        0x64DB, 0x6517, 0x6553, 0x658F, 0x65CA, 0x6604, 0x663E, 0x6677, \n        0x66B0, 0x66E8, 0x671F, 0x6756, 0x678D, 0x67C3, 0x67F8, 0x682D, \n        0x6861, 0x6894, 0x68C7, 0x68FA, 0x692B, 0x695D, 0x698D, 0x69BD, \n        0x69ED, 0x6A1C, 0x6A4A, 0x6A78, 0x6AA5, 0x6AD1, 0x6AFD, 0x6B28, \n        0x6B53, 0x6B7D, 0x6BA6, 0x6BCF, 0x6BF7, 0x6C1E, 0x6C45, 0x6C6B, \n        0x6C91, 0x6CB6, 0x6CDA, 0x6CFE, 0x6D21, 0x6D43, 0x6D65, 0x6D86, \n        0x6DA7, 0x6DC7, 0x6DE6, 0x6E04, 0x6E22, 0x6E3F, 0x6E5C, 0x6E78, \n        0x6E93, 0x6EAE, 0x6EC8, 0x6EE1, 0x6EF9, 0x6F11, 0x6F29, 0x6F3F, \n        0x6F55, 0x6F6A, 0x6F7F, 0x6F93, 0x6FA6, 0x6FB8, 0x6FCA, 0x6FDB, \n        0x6FEC, 0x6FFB, 0x700A, 0x7019, 0x7027, 0x7033, 0x7040, 0x704B, \n        0x7056, 0x7060, 0x706A, 0x7073, 0x707B, 0x7082, 0x7089, 0x708F, \n        0x7094, 0x7099, 0x709D, 0x70A0, 0x70A2, 0x70A4, 0x70A5, 0x70A5, \n        0x70A5, 0x70A4, 0x70A2, 0x709F, 0x709C, 0x7098, 0x7093, 0x708E, \n        0x7088, 0x7081, 0x7079, 0x7071, 0x7068, 0x705E, 0x7054, 0x7049, \n        0x703D, 0x7030, 0x7023, 0x7015, 0x7006, 0x6FF6, 0x6FE6, 0x6FD5, \n        0x6FC3, 0x6FB1, 0x6F9E, 0x6F8A, 0x6F75, 0x6F60, 0x6F4A, 0x6F33, \n        0x6F1B, 0x6F03, 0x6EEA, 0x6ED1, 0x6EB6, 0x6E9B, 0x6E7F, 0x6E62, \n        0x6E45, 0x6E27, 0x6E08, 0x6DE9, 0x6DC8, 0x6DA7, 0x6D86, 0x6D63, \n        0x6D40, 0x6D1C, 0x6CF7, 0x6CD2, 0x6CAC, 0x6C85, 0x6C5E, 0x6C35, \n        0x6C0C, 0x6BE3, 0x6BB8, 0x6B8D, 0x6B61, 0x6B35, 0x6B07, 0x6AD9, \n        0x6AAB, 0x6A7B, 0x6A4B, 0x6A1A, 0x69E8, 0x69B6, 0x6983, 0x694F, \n        0x691B, 0x68E6, 0x68B0, 0x6879, 0x6842, 0x680A, 0x67D1, 0x6798, \n        0x675E, 0x6723, 0x66E7, 0x66AB, 0x666E, 0x6631, 0x65F2, 0x65B3, \n        0x6574, 0x6533, 0x64F2, 0x64B0, 0x646E, 0x642B, 0x63E7, 0x63A2, \n        0x635D, 0x6317, 0x62D1, 0x6289, 0x6242, 0x61F9, 0x61B0, 0x6166, \n        0x611B, 0x60D0, 0x6084, 0x6037, 0x5FEA, 0x5F9C, 0x5F4D, 0x5EFE, \n        0x5EAE, 0x5E5E, 0x5E0C, 0x5DBA, 0x5D68, 0x5D15, 0x5CC1, 0x5C6C, \n        0x5C17, 0x5BC1, 0x5B6B, 0x5B14, 0x5ABC, 0x5A64, 0x5A0B, 0x59B1, \n        0x5957, 0x58FC, 0x58A1, 0x5845, 0x57E8, 0x578B, 0x572D, 0x56CF, \n        0x5670, 0x5610, 0x55AF, 0x554F, 0x54ED, 0x548B, 0x5428, 0x53C5, \n        0x5361, 0x52FD, 0x5298, 0x5232, 0x51CC, 0x5165, 0x50FE, 0x5096, \n        0x502D, 0x4FC4, 0x4F5A, 0x4EF0, 0x4E85, 0x4E1A, 0x4DAE, 0x4D42, \n        0x4CD5, 0x4C68, 0x4BFA, 0x4B8B, 0x4B1C, 0x4AAC, 0x4A3C, 0x49CB, \n        0x495A, 0x48E8, 0x4876, 0x4803, 0x4790, 0x471C, 0x46A8, 0x4633, \n        0x45BE, 0x4548, 0x44D2, 0x445B, 0x43E4, 0x436C, 0x42F4, 0x427C, \n        0x4202, 0x4189, 0x410F, 0x4094, 0x4019, 0x3F9E, 0x3F22, 0x3EA5, \n        0x3E29, 0x3DAB, 0x3D2E, 0x3CAF, 0x3C31, 0x3BB2, 0x3B33, 0x3AB3, \n        0x3A32, 0x39B2, 0x3931, 0x38AF, 0x382D, 0x37AB, 0x3728, 0x36A5, \n        0x3622, 0x359E, 0x3519, 0x3495, 0x3410, 0x338A, 0x3305, 0x327F, \n        0x31F8, 0x3171, 0x30EA, 0x3062, 0x2FDB, 0x2F52, 0x2ECA, 0x2E41, \n        0x2DB8, 0x2D2E, 0x2CA4, 0x2C1A, 0x2B8F, 0x2B04, 0x2A79, 0x29EE, \n        0x2962, 0x28D6, 0x284A, 0x27BD, 0x2730, 0x26A3, 0x2615, 0x2588, \n        0x24FA, 0x246B, 0x23DD, 0x234E, 0x22BF, 0x222F, 0x21A0, 0x2110, \n        0x2080, 0x1FF0, 0x1F5F, 0x1ECE, 0x1E3D, 0x1DAC, 0x1D1B, 0x1C89, \n        0x1BF7, 0x1B65, 0x1AD3, 0x1A41, 0x19AE, 0x191B, 0x1888, 0x17F5, \n        0x1762, 0x16CE, 0x163B, 0x15A7, 0x1513, 0x147F, 0x13EB, 0x1356, \n        0x12C2, 0x122D, 0x1198, 0x1103, 0x106E, 0x0FD9, 0x0F44, 0x0EAE, \n        0x0E19, 0x0D83, 0x0CED, 0x0C58, 0x0BC2, 0x0B2C, 0x0A96, 0x0A00, \n        0x0969, 0x08D3, 0x083D, 0x07A6, 0x0710, 0x0679, 0x05E3, 0x054C, \n        0x04B6, 0x041F, 0x0388, 0x02F1, 0x025B, 0x01C4, 0x012D, 0x0096, \n        0x0000, 0xFF6A, 0xFED3, 0xFE3C, 0xFDA5, 0xFD0F, 0xFC78, 0xFBE1, \n        0xFB4B, 0xFAB4, 0xFA1D, 0xF987, 0xF8F0, 0xF85A, 0xF7C3, 0xF72D, \n        0xF697, 0xF601, 0xF56A, 0xF4D4, 0xF43E, 0xF3A9, 0xF313, 0xF27D, \n        0xF1E7, 0xF152, 0xF0BC, 0xF027, 0xEF92, 0xEEFD, 0xEE68, 0xEDD3, \n        0xED3E, 0xECAA, 0xEC15, 0xEB81, 0xEAED, 0xEA59, 0xE9C5, 0xE932, \n        0xE89E, 0xE80B, 0xE778, 0xE6E5, 0xE652, 0xE5BF, 0xE52D, 0xE49B, \n        0xE409, 0xE377, 0xE2E5, 0xE254, 0xE1C3, 0xE132, 0xE0A1, 0xE010, \n        0xDF80, 0xDEF0, 0xDE60, 0xDDD1, 0xDD41, 0xDCB2, 0xDC23, 0xDB95, \n        0xDB07, 0xDA79, 0xD9EB, 0xD95D, 0xD8D0, 0xD843, 0xD7B7, 0xD72A, \n        0xD69E, 0xD612, 0xD587, 0xD4FC, 0xD471, 0xD3E6, 0xD35C, 0xD2D2, \n        0xD249, 0xD1BF, 0xD136, 0xD0AE, 0xD026, 0xCF9E, 0xCF16, 0xCE8F, \n        0xCE08, 0xCD82, 0xCCFB, 0xCC76, 0xCBF0, 0xCB6B, 0xCAE7, 0xCA62, \n        0xC9DF, 0xC95B, 0xC8D8, 0xC855, 0xC7D3, 0xC751, 0xC6D0, 0xC64E, \n        0xC5CE, 0xC54D, 0xC4CE, 0xC44E, 0xC3CF, 0xC351, 0xC2D3, 0xC255, \n        0xC1D8, 0xC15B, 0xC0DE, 0xC062, 0xBFE7, 0xBF6C, 0xBEF1, 0xBE77, \n        0xBDFE, 0xBD85, 0xBD0C, 0xBC94, 0xBC1C, 0xBBA5, 0xBB2E, 0xBAB8, \n        0xBA42, 0xB9CD, 0xB958, 0xB8E4, 0xB870, 0xB7FD, 0xB78A, 0xB718, \n        0xB6A6, 0xB635, 0xB5C4, 0xB554, 0xB4E4, 0xB475, 0xB407, 0xB399, \n        0xB32B, 0xB2BE, 0xB252, 0xB1E6, 0xB17B, 0xB110, 0xB0A6, 0xB03C, \n        0xAFD3, 0xAF6B, 0xAF03, 0xAE9B, 0xAE34, 0xADCE, 0xAD69, 0xAD04, \n        0xAC9F, 0xAC3B, 0xABD8, 0xAB75, 0xAB13, 0xAAB2, 0xAA51, 0xA9F0, \n        0xA991, 0xA931, 0xA8D3, 0xA875, 0xA818, 0xA7BB, 0xA75F, 0xA704, \n        0xA6A9, 0xA64F, 0xA5F5, 0xA59C, 0xA544, 0xA4EC, 0xA495, 0xA43F, \n        0xA3E9, 0xA394, 0xA33F, 0xA2EB, 0xA298, 0xA246, 0xA1F4, 0xA1A3, \n        0xA152, 0xA102, 0xA0B3, 0xA064, 0xA016, 0x9FC9, 0x9F7C, 0x9F30, \n        0x9EE5, 0x9E9A, 0x9E50, 0x9E07, 0x9DBF, 0x9D77, 0x9D2F, 0x9CE9, \n        0x9CA3, 0x9C5E, 0x9C19, 0x9BD5, 0x9B92, 0x9B50, 0x9B0E, 0x9ACD, \n        0x9A8C, 0x9A4D, 0x9A0E, 0x99CF, 0x9992, 0x9955, 0x9919, 0x98DD, \n        0x98A2, 0x9868, 0x982F, 0x97F6, 0x97BE, 0x9787, 0x9750, 0x971A, \n        0x96E5, 0x96B1, 0x967D, 0x964A, 0x9618, 0x95E6, 0x95B5, 0x9585, \n        0x9555, 0x9527, 0x94F9, 0x94CB, 0x949F, 0x9473, 0x9448, 0x941D, \n        0x93F4, 0x93CB, 0x93A2, 0x937B, 0x9354, 0x932E, 0x9309, 0x92E4, \n        0x92C0, 0x929D, 0x927B, 0x9259, 0x9238, 0x9218, 0x91F8, 0x91D9, \n        0x91BB, 0x919E, 0x9181, 0x9165, 0x914A, 0x9130, 0x9116, 0x90FD, \n        0x90E5, 0x90CD, 0x90B6, 0x90A0, 0x908B, 0x9076, 0x9062, 0x904F, \n        0x903D, 0x902B, 0x901A, 0x900A, 0x8FFA, 0x8FEB, 0x8FDD, 0x8FD0, \n        0x8FC3, 0x8FB7, 0x8FAC, 0x8FA2, 0x8F98, 0x8F8F, 0x8F87, 0x8F7F, \n        0x8F78, 0x8F72, 0x8F6D, 0x8F68, 0x8F64, 0x8F61, 0x8F5E, 0x8F5C, \n        0x8F5B, 0x8F5B, 0x8F5B, 0x8F5C, 0x8F5E, 0x8F60, 0x8F63, 0x8F67, \n        0x8F6C, 0x8F71, 0x8F77, 0x8F7E, 0x8F85, 0x8F8D, 0x8F96, 0x8FA0, \n        0x8FAA, 0x8FB5, 0x8FC0, 0x8FCC, 0x8FD9, 0x8FE7, 0x8FF6, 0x9005, \n        0x9014, 0x9025, 0x9036, 0x9048, 0x905A, 0x906D, 0x9081, 0x9096, \n        0x90AB, 0x90C1, 0x90D7, 0x90EF, 0x9107, 0x911F, 0x9138, 0x9152, \n        0x916D, 0x9188, 0x91A4, 0x91C1, 0x91DE, 0x91FC, 0x921A, 0x9239, \n        0x9259, 0x927A, 0x929B, 0x92BD, 0x92DF, 0x9302, 0x9326, 0x934A, \n        0x936F, 0x9395, 0x93BB, 0x93E2, 0x9409, 0x9431, 0x945A, 0x9483, \n        0x94AD, 0x94D8, 0x9503, 0x952F, 0x955B, 0x9588, 0x95B6, 0x95E4, \n        0x9613, 0x9643, 0x9673, 0x96A3, 0x96D4, 0x9706, 0x9739, 0x976C, \n        0x979F, 0x97D3, 0x9808, 0x983D, 0x9873, 0x98AA, 0x98E1, 0x9918, \n        0x9950, 0x9989, 0x99C2, 0x99FC, 0x9A36, 0x9A71, 0x9AAD, 0x9AE9, \n        0x9B25, 0x9B62, 0x9BA0, 0x9BDE, 0x9C1C, 0x9C5C, 0x9C9B, 0x9CDB, \n        0x9D1C, 0x9D5D, 0x9D9F, 0x9DE1, 0x9E24, 0x9E67, 0x9EAB, 0x9EEF, \n        0x9F34, 0x9F79, 0x9FBF, 0xA005, 0xA04C, 0xA093, 0xA0DB, 0xA123, \n        0xA16C, 0xA1B5, 0xA1FE, 0xA248, 0xA293, 0xA2DD, 0xA329, 0xA375, \n        0xA3C1, 0xA40D, 0xA45B, 0xA4A8, 0xA4F6, 0xA544, 0xA593, 0xA5E3, \n        0xA632, 0xA682, 0xA6D3, 0xA724, 0xA775, 0xA7C7, 0xA819, 0xA86B, \n        0xA8BE, 0xA911, 0xA965, 0xA9B9, 0xAA0D, 0xAA62, 0xAAB7, 0xAB0D, \n        0xAB63, 0xABB9, 0xAC10, 0xAC66, 0xACBE, 0xAD15, 0xAD6D, 0xADC6, \n        0xAE1E, 0xAE77, 0xAED1, 0xAF2A, 0xAF84, 0xAFDF, 0xB039, 0xB094, \n        0xB0EF, 0xB14B, 0xB1A7, 0xB203, 0xB25F, 0xB2BC, 0xB319, 0xB376, \n        0xB3D4, 0xB431, 0xB48F, 0xB4EE, 0xB54C, 0xB5AB, 0xB60A, 0xB66A, \n        0xB6C9, 0xB729, 0xB789, 0xB7EA, 0xB84A, 0xB8AB, 0xB90C, 0xB96D, \n        0xB9CF, 0xBA30, 0xBA92, 0xBAF4, 0xBB57, 0xBBB9, 0xBC1C, 0xBC7F, \n        0xBCE2, 0xBD45, 0xBDA9, 0xBE0C, 0xBE70, 0xBED4, 0xBF38, 0xBF9C, \n        0xC001, 0xC066, 0xC0CA, 0xC12F, 0xC194, 0xC1F9, 0xC25F, 0xC2C4, \n        0xC32A, 0xC38F, 0xC3F5, 0xC45B, 0xC4C1, 0xC527, 0xC58E, 0xC5F4, \n        0xC65B, 0xC6C1, 0xC728, 0xC78E, 0xC7F5, 0xC85C, 0xC8C3, 0xC92A, \n        0xC991, 0xC9F8, 0xCA60, 0xCAC7, 0xCB2E, 0xCB96, 0xCBFD, 0xCC65, \n        0xCCCC, 0xCD34, 0xCD9B, 0xCE03, 0xCE6A, 0xCED2, 0xCF3A, 0xCFA1, \n        0xD009, 0xD071, 0xD0D8, 0xD140, 0xD1A8, 0xD20F, 0xD277, 0xD2DF, \n        0xD346, 0xD3AE, 0xD415, 0xD47D, 0xD4E4, 0xD54C, 0xD5B3, 0xD61A, \n        0xD682, 0xD6E9, 0xD750, 0xD7B7, 0xD81E, 0xD885, 0xD8EC, 0xD953, \n        0xD9B9, 0xDA20, 0xDA87, 0xDAED, 0xDB53, 0xDBBA, 0xDC20, 0xDC86, \n        0xDCEC, 0xDD52, 0xDDB7, 0xDE1D, 0xDE82, 0xDEE8, 0xDF4D, 0xDFB2, \n        0xE017, 0xE07C, 0xE0E0, 0xE145, 0xE1A9, 0xE20E, 0xE272, 0xE2D5, \n        0xE339, 0xE39D, 0xE400, 0xE463, 0xE4C6, 0xE529, 0xE58C, 0xE5EE, \n        0xE651, 0xE6B3, 0xE715, 0xE776, 0xE7D8, 0xE839, 0xE89A, 0xE8FB, \n        0xE95B, 0xE9BC, 0xEA1C, 0xEA7C, 0xEADC, 0xEB3B, 0xEB9A, 0xEBF9, \n        0xEC58, 0xECB7, 0xED15, 0xED73, 0xEDD1, 0xEE2E, 0xEE8C, 0xEEE9, \n        0xEF45, 0xEFA2, 0xEFFE, 0xF05A, 0xF0B5, 0xF111, 0xF16C, 0xF1C6, \n        0xF221, 0xF27B, 0xF2D5, 0xF32F, 0xF388, 0xF3E1, 0xF439, 0xF492, \n        0xF4EA, 0xF542, 0xF599, 0xF5F0, 0xF647, 0xF69D, 0xF6F3, 0xF749, \n        0xF79F, 0xF7F4, 0xF848, 0xF89D, 0xF8F1, 0xF945, 0xF998, 0xF9EB, \n        0xFA3E, 0xFA90, 0xFAE2, 0xFB33, 0xFB85, 0xFBD6, 0xFC26, 0xFC76, \n        0xFCC6, 0xFD15, 0xFD64, 0xFDB3, 0xFE01, 0xFE4F, 0xFE9C, 0xFEE9, \n        0xFF36, 0xFF82, 0xFFCE, 0x0019, 0x0064, 0x00AE, 0x00F9, 0x0142, \n        0x018C, 0x01D5, 0x021D, 0x0266, 0x02AD, 0x02F5, 0x033C, 0x0382, \n        0x03C8, 0x040E, 0x0453, 0x0498, 0x04DC, 0x0520, 0x0564, 0x05A7, \n        0x05E9, 0x062C, 0x066D, 0x06AF, 0x06EF, 0x0730, 0x0770, 0x07AF, \n        0x07EE, 0x082D, 0x086B, 0x08A9, 0x08E6, 0x0923, 0x095F, 0x099B, \n        0x09D6, 0x0A11, 0x0A4B, 0x0A85, 0x0ABF, 0x0AF8, 0x0B30, 0x0B68, \n        0x0BA0, 0x0BD7, 0x0C0E, 0x0C44, 0x0C7A, 0x0CAF, 0x0CE4, 0x0D18, \n        0x0D4C, 0x0D7F, 0x0DB2, 0x0DE4, 0x0E16, 0x0E47, 0x0E78, 0x0EA8, \n        0x0ED8, 0x0F07, 0x0F36, 0x0F64, 0x0F92, 0x0FC0, 0x0FEC, 0x1019, \n        0x1045, 0x1070, 0x109B, 0x10C5, 0x10EF, 0x1118, 0x1141, 0x116A, \n        0x1192, 0x11B9, 0x11E0, 0x1206, 0x122C, 0x1251, 0x1276, 0x129A, \n        0x12BE, 0x12E1, 0x1304, 0x1326, 0x1348, 0x1369, 0x138A, 0x13AA, \n        0x13CA, 0x13E9, 0x1408, 0x1426, 0x1444, 0x1461, 0x147E, 0x149A, \n        0x14B6, 0x14D1, 0x14EB, 0x1505, 0x151F, 0x1538, 0x1551, 0x1569, \n        0x1580, 0x1597, 0x15AE, 0x15C4, 0x15DA, 0x15EF, 0x1603, 0x1617, \n        0x162B, 0x163E, 0x1650, 0x1662, 0x1674, 0x1684, 0x1695, 0x16A5, \n        0x16B4, 0x16C3, 0x16D2, 0x16E0, 0x16ED, 0x16FA, 0x1707, 0x1712, \n        0x171E, 0x1729, 0x1733, 0x173D, 0x1747, 0x1750, 0x1758, 0x1760, \n        0x1768, 0x176F, 0x1775, 0x177B, 0x1781, 0x1786, 0x178A, 0x178E, \n        0x1792, 0x1795, 0x1797, 0x1799, 0x179B, 0x179C, 0x179D, 0x179D, \n        0x179D, 0x179C, 0x179B, 0x1799, 0x1797, 0x1794, 0x1791, 0x178E, \n        0x178A, 0x1785, 0x1780, 0x177B, 0x1775, 0x176F, 0x1768, 0x1760, \n        0x1759, 0x1751, 0x1748, 0x173F, 0x1735, 0x172B, 0x1721, 0x1716, \n        0x170B, 0x16FF, 0x16F3, 0x16E6, 0x16D9, 0x16CC, 0x16BE, 0x16AF, \n        0x16A1, 0x1691, 0x1682, 0x1672, 0x1661, 0x1650, 0x163F, 0x162D, \n        0x161B, 0x1609, 0x15F6, 0x15E2, 0x15CF, 0x15BB, 0x15A6, 0x1591, \n        0x157C, 0x1566, 0x1550, 0x1539, 0x1522, 0x150B, 0x14F3, 0x14DB, \n        0x14C3, 0x14AA, 0x1491, 0x1477, 0x145D, 0x1443, 0x1428, 0x140D, \n        0x13F2, 0x13D6, 0x13BA, 0x139D, 0x1380, 0x1363, 0x1346, 0x1328, \n        0x130A, 0x12EB, 0x12CC, 0x12AD, 0x128D, 0x126E, 0x124D, 0x122D, \n        0x120C, 0x11EB, 0x11C9, 0x11A7, 0x1185, 0x1163, 0x1140, 0x111D, \n        0x10FA, 0x10D6, 0x10B2, 0x108E, 0x106A, 0x1045, 0x1020, 0x0FFA, \n        0x0FD5, 0x0FAF, 0x0F89, 0x0F62, 0x0F3B, 0x0F14, 0x0EED, 0x0EC6, \n        0x0E9E, 0x0E76, 0x0E4D, 0x0E25, 0x0DFC, 0x0DD3, 0x0DAA, 0x0D80, \n        0x0D57, 0x0D2D, 0x0D03, 0x0CD8, 0x0CAE, 0x0C83, 0x0C58, 0x0C2C, \n        0x0C01, 0x0BD5, 0x0BA9, 0x0B7D, 0x0B51, 0x0B25, 0x0AF8, 0x0ACB, \n        0x0A9E, 0x0A71, 0x0A43, 0x0A16, 0x09E8, 0x09BA, 0x098C, 0x095E, \n        0x092F, 0x0901, 0x08D2, 0x08A3, 0x0874, 0x0845, 0x0816, 0x07E6, \n        0x07B7, 0x0787, 0x0757, 0x0727, 0x06F7, 0x06C7, 0x0697, 0x0666, \n        0x0636, 0x0605, 0x05D5, 0x05A4, 0x0573, 0x0542, 0x0511, 0x04E0, \n        0x04AE, 0x047D, 0x044B, 0x041A, 0x03E8, 0x03B7, 0x0385, 0x0353, \n        0x0322, 0x02F0, 0x02BE, 0x028C, 0x025A, 0x0228, 0x01F6, 0x01C4, \n        0x0191, 0x015F, 0x012D, 0x00FB, 0x00C9, 0x0096, 0x0064, 0x0032, \n// Waveform 4 (sine):\n        0x0000, 0x0064, 0x00C9, 0x012D, 0x0192, 0x01F6, 0x025B, 0x02BF, \n        0x0324, 0x0388, 0x03ED, 0x0451, 0x04B6, 0x051A, 0x057E, 0x05E3, \n        0x0647, 0x06AC, 0x0710, 0x0774, 0x07D9, 0x083D, 0x08A1, 0x0906, \n        0x096A, 0x09CE, 0x0A32, 0x0A97, 0x0AFB, 0x0B5F, 0x0BC3, 0x0C27, \n        0x0C8B, 0x0CEF, 0x0D53, 0x0DB7, 0x0E1B, 0x0E7F, 0x0EE3, 0x0F47, \n        0x0FAB, 0x100E, 0x1072, 0x10D6, 0x1139, 0x119D, 0x1200, 0x1264, \n        0x12C7, 0x132B, 0x138E, 0x13F2, 0x1455, 0x14B8, 0x151B, 0x157E, \n        0x15E1, 0x1644, 0x16A7, 0x170A, 0x176D, 0x17D0, 0x1833, 0x1895, \n        0x18F8, 0x195B, 0x19BD, 0x1A20, 0x1A82, 0x1AE4, 0x1B46, 0x1BA9, \n        0x1C0B, 0x1C6D, 0x1CCF, 0x1D31, 0x1D93, 0x1DF4, 0x1E56, 0x1EB8, \n        0x1F19, 0x1F7B, 0x1FDC, 0x203D, 0x209F, 0x2100, 0x2161, 0x21C2, \n        0x2223, 0x2284, 0x22E4, 0x2345, 0x23A6, 0x2406, 0x2467, 0x24C7, \n        0x2527, 0x2587, 0x25E7, 0x2647, 0x26A7, 0x2707, 0x2767, 0x27C6, \n        0x2826, 0x2885, 0x28E5, 0x2944, 0x29A3, 0x2A02, 0x2A61, 0x2AC0, \n        0x2B1E, 0x2B7D, 0x2BDB, 0x2C3A, 0x2C98, 0x2CF6, 0x2D54, 0x2DB2, \n        0x2E10, 0x2E6E, 0x2ECC, 0x2F29, 0x2F86, 0x2FE4, 0x3041, 0x309E, \n        0x30FB, 0x3158, 0x31B4, 0x3211, 0x326D, 0x32CA, 0x3326, 0x3382, \n        0x33DE, 0x343A, 0x3496, 0x34F1, 0x354D, 0x35A8, 0x3603, 0x365E, \n        0x36B9, 0x3714, 0x376F, 0x37C9, 0x3824, 0x387E, 0x38D8, 0x3932, \n        0x398C, 0x39E6, 0x3A3F, 0x3A99, 0x3AF2, 0x3B4B, 0x3BA4, 0x3BFD, \n        0x3C56, 0x3CAE, 0x3D07, 0x3D5F, 0x3DB7, 0x3E0F, 0x3E67, 0x3EBF, \n        0x3F16, 0x3F6E, 0x3FC5, 0x401C, 0x4073, 0x40CA, 0x4120, 0x4177, \n        0x41CD, 0x4223, 0x4279, 0x42CF, 0x4325, 0x437A, 0x43D0, 0x4425, \n        0x447A, 0x44CF, 0x4523, 0x4578, 0x45CC, 0x4620, 0x4674, 0x46C8, \n        0x471C, 0x476F, 0x47C3, 0x4816, 0x4869, 0x48BC, 0x490E, 0x4961, \n        0x49B3, 0x4A05, 0x4A57, 0x4AA9, 0x4AFA, 0x4B4C, 0x4B9D, 0x4BEE, \n        0x4C3F, 0x4C8F, 0x4CE0, 0x4D30, 0x4D80, 0x4DD0, 0x4E20, 0x4E6F, \n        0x4EBF, 0x4F0E, 0x4F5D, 0x4FAC, 0x4FFA, 0x5049, 0x5097, 0x50E5, \n        0x5133, 0x5180, 0x51CE, 0x521B, 0x5268, 0x52B5, 0x5301, 0x534E, \n        0x539A, 0x53E6, 0x5432, 0x547D, 0x54C9, 0x5514, 0x555F, 0x55AA, \n        0x55F4, 0x563F, 0x5689, 0x56D3, 0x571D, 0x5766, 0x57B0, 0x57F9, \n        0x5842, 0x588A, 0x58D3, 0x591B, 0x5963, 0x59AB, 0x59F3, 0x5A3A, \n        0x5A81, 0x5AC8, 0x5B0F, 0x5B56, 0x5B9C, 0x5BE2, 0x5C28, 0x5C6D, \n        0x5CB3, 0x5CF8, 0x5D3D, 0x5D82, 0x5DC6, 0x5E0B, 0x5E4F, 0x5E93, \n        0x5ED6, 0x5F1A, 0x5F5D, 0x5FA0, 0x5FE2, 0x6025, 0x6067, 0x60A9, \n        0x60EB, 0x612C, 0x616E, 0x61AF, 0x61F0, 0x6230, 0x6271, 0x62B1, \n        0x62F1, 0x6330, 0x6370, 0x63AF, 0x63EE, 0x642D, 0x646B, 0x64A9, \n        0x64E7, 0x6525, 0x6562, 0x65A0, 0x65DD, 0x6619, 0x6656, 0x6692, \n        0x66CE, 0x670A, 0x6745, 0x6781, 0x67BC, 0x67F7, 0x6831, 0x686B, \n        0x68A5, 0x68DF, 0x6919, 0x6952, 0x698B, 0x69C4, 0x69FC, 0x6A34, \n        0x6A6C, 0x6AA4, 0x6ADB, 0x6B13, 0x6B4A, 0x6B80, 0x6BB7, 0x6BED, \n        0x6C23, 0x6C58, 0x6C8E, 0x6CC3, 0x6CF8, 0x6D2C, 0x6D61, 0x6D95, \n        0x6DC9, 0x6DFC, 0x6E30, 0x6E63, 0x6E95, 0x6EC8, 0x6EFA, 0x6F2C, \n        0x6F5E, 0x6F8F, 0x6FC0, 0x6FF1, 0x7022, 0x7052, 0x7082, 0x70B2, \n        0x70E1, 0x7111, 0x7140, 0x716E, 0x719D, 0x71CB, 0x71F9, 0x7226, \n        0x7254, 0x7281, 0x72AE, 0x72DA, 0x7306, 0x7332, 0x735E, 0x7389, \n        0x73B5, 0x73DF, 0x740A, 0x7434, 0x745E, 0x7488, 0x74B1, 0x74DB, \n        0x7503, 0x752C, 0x7554, 0x757C, 0x75A4, 0x75CC, 0x75F3, 0x761A, \n        0x7640, 0x7667, 0x768D, 0x76B2, 0x76D8, 0x76FD, 0x7722, 0x7747, \n        0x776B, 0x778F, 0x77B3, 0x77D6, 0x77F9, 0x781C, 0x783F, 0x7861, \n        0x7883, 0x78A5, 0x78C6, 0x78E7, 0x7908, 0x7929, 0x7949, 0x7969, \n        0x7989, 0x79A8, 0x79C7, 0x79E6, 0x7A04, 0x7A23, 0x7A41, 0x7A5E, \n        0x7A7C, 0x7A99, 0x7AB5, 0x7AD2, 0x7AEE, 0x7B0A, 0x7B25, 0x7B41, \n        0x7B5C, 0x7B76, 0x7B91, 0x7BAB, 0x7BC4, 0x7BDE, 0x7BF7, 0x7C10, \n        0x7C29, 0x7C41, 0x7C59, 0x7C70, 0x7C88, 0x7C9F, 0x7CB6, 0x7CCC, \n        0x7CE2, 0x7CF8, 0x7D0E, 0x7D23, 0x7D38, 0x7D4D, 0x7D61, 0x7D75, \n        0x7D89, 0x7D9C, 0x7DB0, 0x7DC2, 0x7DD5, 0x7DE7, 0x7DF9, 0x7E0B, \n        0x7E1C, 0x7E2D, 0x7E3E, 0x7E4E, 0x7E5E, 0x7E6E, 0x7E7E, 0x7E8D, \n        0x7E9C, 0x7EAA, 0x7EB9, 0x7EC7, 0x7ED4, 0x7EE2, 0x7EEF, 0x7EFC, \n        0x7F08, 0x7F14, 0x7F20, 0x7F2C, 0x7F37, 0x7F42, 0x7F4C, 0x7F57, \n        0x7F61, 0x7F6A, 0x7F74, 0x7F7D, 0x7F86, 0x7F8E, 0x7F96, 0x7F9E, \n        0x7FA6, 0x7FAD, 0x7FB4, 0x7FBB, 0x7FC1, 0x7FC7, 0x7FCD, 0x7FD2, \n        0x7FD7, 0x7FDC, 0x7FE0, 0x7FE4, 0x7FE8, 0x7FEC, 0x7FEF, 0x7FF2, \n        0x7FF5, 0x7FF7, 0x7FF9, 0x7FFB, 0x7FFC, 0x7FFD, 0x7FFE, 0x7FFE, \n        0x7FFF, 0x7FFE, 0x7FFE, 0x7FFD, 0x7FFC, 0x7FFB, 0x7FF9, 0x7FF7, \n        0x7FF5, 0x7FF2, 0x7FEF, 0x7FEC, 0x7FE8, 0x7FE4, 0x7FE0, 0x7FDC, \n        0x7FD7, 0x7FD2, 0x7FCD, 0x7FC7, 0x7FC1, 0x7FBB, 0x7FB4, 0x7FAD, \n        0x7FA6, 0x7F9E, 0x7F96, 0x7F8E, 0x7F86, 0x7F7D, 0x7F74, 0x7F6A, \n        0x7F61, 0x7F57, 0x7F4C, 0x7F42, 0x7F37, 0x7F2C, 0x7F20, 0x7F14, \n        0x7F08, 0x7EFC, 0x7EEF, 0x7EE2, 0x7ED4, 0x7EC7, 0x7EB9, 0x7EAA, \n        0x7E9C, 0x7E8D, 0x7E7E, 0x7E6E, 0x7E5E, 0x7E4E, 0x7E3E, 0x7E2D, \n        0x7E1C, 0x7E0B, 0x7DF9, 0x7DE7, 0x7DD5, 0x7DC2, 0x7DB0, 0x7D9C, \n        0x7D89, 0x7D75, 0x7D61, 0x7D4D, 0x7D38, 0x7D23, 0x7D0E, 0x7CF8, \n        0x7CE2, 0x7CCC, 0x7CB6, 0x7C9F, 0x7C88, 0x7C70, 0x7C59, 0x7C41, \n        0x7C29, 0x7C10, 0x7BF7, 0x7BDE, 0x7BC4, 0x7BAB, 0x7B91, 0x7B76, \n        0x7B5C, 0x7B41, 0x7B25, 0x7B0A, 0x7AEE, 0x7AD2, 0x7AB5, 0x7A99, \n        0x7A7C, 0x7A5E, 0x7A41, 0x7A23, 0x7A04, 0x79E6, 0x79C7, 0x79A8, \n        0x7989, 0x7969, 0x7949, 0x7929, 0x7908, 0x78E7, 0x78C6, 0x78A5, \n        0x7883, 0x7861, 0x783F, 0x781C, 0x77F9, 0x77D6, 0x77B3, 0x778F, \n        0x776B, 0x7747, 0x7722, 0x76FD, 0x76D8, 0x76B2, 0x768D, 0x7667, \n        0x7640, 0x761A, 0x75F3, 0x75CC, 0x75A4, 0x757C, 0x7554, 0x752C, \n        0x7503, 0x74DB, 0x74B1, 0x7488, 0x745E, 0x7434, 0x740A, 0x73DF, \n        0x73B5, 0x7389, 0x735E, 0x7332, 0x7306, 0x72DA, 0x72AE, 0x7281, \n        0x7254, 0x7226, 0x71F9, 0x71CB, 0x719D, 0x716E, 0x7140, 0x7111, \n        0x70E1, 0x70B2, 0x7082, 0x7052, 0x7022, 0x6FF1, 0x6FC0, 0x6F8F, \n        0x6F5E, 0x6F2C, 0x6EFA, 0x6EC8, 0x6E95, 0x6E63, 0x6E30, 0x6DFC, \n        0x6DC9, 0x6D95, 0x6D61, 0x6D2C, 0x6CF8, 0x6CC3, 0x6C8E, 0x6C58, \n        0x6C23, 0x6BED, 0x6BB7, 0x6B80, 0x6B4A, 0x6B13, 0x6ADB, 0x6AA4, \n        0x6A6C, 0x6A34, 0x69FC, 0x69C4, 0x698B, 0x6952, 0x6919, 0x68DF, \n        0x68A5, 0x686B, 0x6831, 0x67F7, 0x67BC, 0x6781, 0x6745, 0x670A, \n        0x66CE, 0x6692, 0x6656, 0x6619, 0x65DD, 0x65A0, 0x6562, 0x6525, \n        0x64E7, 0x64A9, 0x646B, 0x642D, 0x63EE, 0x63AF, 0x6370, 0x6330, \n        0x62F1, 0x62B1, 0x6271, 0x6230, 0x61F0, 0x61AF, 0x616E, 0x612D, \n        0x60EB, 0x60A9, 0x6067, 0x6025, 0x5FE2, 0x5FA0, 0x5F5D, 0x5F1A, \n        0x5ED6, 0x5E93, 0x5E4F, 0x5E0B, 0x5DC6, 0x5D82, 0x5D3D, 0x5CF8, \n        0x5CB3, 0x5C6E, 0x5C28, 0x5BE2, 0x5B9C, 0x5B56, 0x5B0F, 0x5AC8, \n        0x5A81, 0x5A3A, 0x59F3, 0x59AB, 0x5963, 0x591B, 0x58D3, 0x588A, \n        0x5842, 0x57F9, 0x57B0, 0x5766, 0x571D, 0x56D3, 0x5689, 0x563F, \n        0x55F5, 0x55AA, 0x555F, 0x5514, 0x54C9, 0x547D, 0x5432, 0x53E6, \n        0x539A, 0x534E, 0x5301, 0x52B5, 0x5268, 0x521B, 0x51CE, 0x5180, \n        0x5133, 0x50E5, 0x5097, 0x5049, 0x4FFA, 0x4FAC, 0x4F5D, 0x4F0E, \n        0x4EBF, 0x4E6F, 0x4E20, 0x4DD0, 0x4D80, 0x4D30, 0x4CE0, 0x4C8F, \n        0x4C3F, 0x4BEE, 0x4B9D, 0x4B4C, 0x4AFA, 0x4AA9, 0x4A57, 0x4A05, \n        0x49B3, 0x4961, 0x490E, 0x48BC, 0x4869, 0x4816, 0x47C3, 0x476F, \n        0x471C, 0x46C8, 0x4674, 0x4620, 0x45CC, 0x4578, 0x4523, 0x44CF, \n        0x447A, 0x4425, 0x43D0, 0x437A, 0x4325, 0x42CF, 0x4279, 0x4223, \n        0x41CD, 0x4177, 0x4120, 0x40CA, 0x4073, 0x401C, 0x3FC5, 0x3F6E, \n        0x3F16, 0x3EBF, 0x3E67, 0x3E0F, 0x3DB7, 0x3D5F, 0x3D07, 0x3CAE, \n        0x3C56, 0x3BFD, 0x3BA4, 0x3B4B, 0x3AF2, 0x3A99, 0x3A3F, 0x39E6, \n        0x398C, 0x3932, 0x38D8, 0x387E, 0x3824, 0x37C9, 0x376F, 0x3714, \n        0x36B9, 0x365E, 0x3603, 0x35A8, 0x354D, 0x34F1, 0x3496, 0x343A, \n        0x33DE, 0x3382, 0x3326, 0x32CA, 0x326D, 0x3211, 0x31B4, 0x3158, \n        0x30FB, 0x309E, 0x3041, 0x2FE4, 0x2F86, 0x2F29, 0x2ECC, 0x2E6E, \n        0x2E10, 0x2DB2, 0x2D54, 0x2CF6, 0x2C98, 0x2C3A, 0x2BDC, 0x2B7D, \n        0x2B1E, 0x2AC0, 0x2A61, 0x2A02, 0x29A3, 0x2944, 0x28E5, 0x2885, \n        0x2826, 0x27C6, 0x2767, 0x2707, 0x26A7, 0x2647, 0x25E8, 0x2587, \n        0x2527, 0x24C7, 0x2467, 0x2406, 0x23A6, 0x2345, 0x22E5, 0x2284, \n        0x2223, 0x21C2, 0x2161, 0x2100, 0x209F, 0x203D, 0x1FDC, 0x1F7B, \n        0x1F19, 0x1EB8, 0x1E56, 0x1DF4, 0x1D93, 0x1D31, 0x1CCF, 0x1C6D, \n        0x1C0B, 0x1BA9, 0x1B47, 0x1AE4, 0x1A82, 0x1A20, 0x19BD, 0x195B, \n        0x18F8, 0x1895, 0x1833, 0x17D0, 0x176D, 0x170A, 0x16A7, 0x1644, \n        0x15E1, 0x157E, 0x151B, 0x14B8, 0x1455, 0x13F2, 0x138E, 0x132B, \n        0x12C7, 0x1264, 0x1200, 0x119D, 0x1139, 0x10D6, 0x1072, 0x100E, \n        0x0FAB, 0x0F47, 0x0EE3, 0x0E7F, 0x0E1B, 0x0DB7, 0x0D53, 0x0CEF, \n        0x0C8B, 0x0C27, 0x0BC3, 0x0B5F, 0x0AFB, 0x0A97, 0x0A33, 0x09CE, \n        0x096A, 0x0906, 0x08A1, 0x083D, 0x07D9, 0x0774, 0x0710, 0x06AC, \n        0x0647, 0x05E3, 0x057F, 0x051A, 0x04B6, 0x0451, 0x03ED, 0x0388, \n        0x0324, 0x02BF, 0x025B, 0x01F6, 0x0192, 0x012D, 0x00C9, 0x0064, \n        0x0000, 0xFF9C, 0xFF37, 0xFED3, 0xFE6E, 0xFE0A, 0xFDA5, 0xFD41, \n        0xFCDC, 0xFC78, 0xFC13, 0xFBAF, 0xFB4A, 0xFAE6, 0xFA82, 0xFA1D, \n        0xF9B9, 0xF954, 0xF8F0, 0xF88C, 0xF827, 0xF7C3, 0xF75F, 0xF6FA, \n        0xF696, 0xF632, 0xF5CE, 0xF569, 0xF505, 0xF4A1, 0xF43D, 0xF3D9, \n        0xF375, 0xF311, 0xF2AD, 0xF249, 0xF1E5, 0xF181, 0xF11D, 0xF0B9, \n        0xF056, 0xEFF2, 0xEF8E, 0xEF2A, 0xEEC7, 0xEE63, 0xEE00, 0xED9C, \n        0xED39, 0xECD5, 0xEC72, 0xEC0F, 0xEBAB, 0xEB48, 0xEAE5, 0xEA82, \n        0xEA1F, 0xE9BC, 0xE959, 0xE8F6, 0xE893, 0xE830, 0xE7CD, 0xE76B, \n        0xE708, 0xE6A5, 0xE643, 0xE5E1, 0xE57E, 0xE51C, 0xE4BA, 0xE457, \n        0xE3F5, 0xE393, 0xE331, 0xE2CF, 0xE26D, 0xE20C, 0xE1AA, 0xE148, \n        0xE0E7, 0xE085, 0xE024, 0xDFC3, 0xDF61, 0xDF00, 0xDE9F, 0xDE3E, \n        0xDDDD, 0xDD7C, 0xDD1C, 0xDCBB, 0xDC5A, 0xDBFA, 0xDB99, 0xDB39, \n        0xDAD9, 0xDA79, 0xDA19, 0xD9B9, 0xD959, 0xD8F9, 0xD899, 0xD83A, \n        0xD7DA, 0xD77B, 0xD71B, 0xD6BC, 0xD65D, 0xD5FE, 0xD59F, 0xD540, \n        0xD4E2, 0xD483, 0xD425, 0xD3C6, 0xD368, 0xD30A, 0xD2AC, 0xD24E, \n        0xD1F0, 0xD192, 0xD135, 0xD0D7, 0xD07A, 0xD01C, 0xCFBF, 0xCF62, \n        0xCF05, 0xCEA8, 0xCE4C, 0xCDEF, 0xCD93, 0xCD36, 0xCCDA, 0xCC7E, \n        0xCC22, 0xCBC6, 0xCB6A, 0xCB0F, 0xCAB3, 0xCA58, 0xC9FD, 0xC9A2, \n        0xC947, 0xC8EC, 0xC891, 0xC837, 0xC7DC, 0xC782, 0xC728, 0xC6CE, \n        0xC674, 0xC61A, 0xC5C1, 0xC567, 0xC50E, 0xC4B5, 0xC45C, 0xC403, \n        0xC3AA, 0xC352, 0xC2F9, 0xC2A1, 0xC249, 0xC1F1, 0xC199, 0xC141, \n        0xC0EA, 0xC092, 0xC03B, 0xBFE4, 0xBF8D, 0xBF36, 0xBEE0, 0xBE89, \n        0xBE33, 0xBDDD, 0xBD87, 0xBD31, 0xBCDB, 0xBC86, 0xBC30, 0xBBDB, \n        0xBB86, 0xBB31, 0xBADD, 0xBA88, 0xBA34, 0xB9E0, 0xB98C, 0xB938, \n        0xB8E4, 0xB891, 0xB83D, 0xB7EA, 0xB797, 0xB744, 0xB6F2, 0xB69F, \n        0xB64D, 0xB5FB, 0xB5A9, 0xB557, 0xB506, 0xB4B4, 0xB463, 0xB412, \n        0xB3C1, 0xB371, 0xB320, 0xB2D0, 0xB280, 0xB230, 0xB1E0, 0xB191, \n        0xB141, 0xB0F2, 0xB0A3, 0xB054, 0xB006, 0xAFB7, 0xAF69, 0xAF1B, \n        0xAECD, 0xAE80, 0xAE32, 0xADE5, 0xAD98, 0xAD4B, 0xACFF, 0xACB2, \n        0xAC66, 0xAC1A, 0xABCE, 0xAB83, 0xAB37, 0xAAEC, 0xAAA1, 0xAA56, \n        0xAA0C, 0xA9C1, 0xA977, 0xA92D, 0xA8E3, 0xA89A, 0xA850, 0xA807, \n        0xA7BE, 0xA776, 0xA72D, 0xA6E5, 0xA69D, 0xA655, 0xA60D, 0xA5C6, \n        0xA57F, 0xA538, 0xA4F1, 0xA4AB, 0xA464, 0xA41E, 0xA3D8, 0xA393, \n        0xA34D, 0xA308, 0xA2C3, 0xA27E, 0xA23A, 0xA1F5, 0xA1B1, 0xA16D, \n        0xA12A, 0xA0E6, 0xA0A3, 0xA060, 0xA01E, 0x9FDB, 0x9F99, 0x9F57, \n        0x9F15, 0x9ED4, 0x9E92, 0x9E51, 0x9E10, 0x9DD0, 0x9D8F, 0x9D4F, \n        0x9D0F, 0x9CD0, 0x9C90, 0x9C51, 0x9C12, 0x9BD3, 0x9B95, 0x9B57, \n        0x9B19, 0x9ADB, 0x9A9E, 0x9A60, 0x9A23, 0x99E7, 0x99AA, 0x996E, \n        0x9932, 0x98F6, 0x98BB, 0x987F, 0x9844, 0x980A, 0x97CF, 0x9795, \n        0x975B, 0x9721, 0x96E7, 0x96AE, 0x9675, 0x963C, 0x9604, 0x95CC, \n        0x9594, 0x955C, 0x9525, 0x94ED, 0x94B6, 0x9480, 0x9449, 0x9413, \n        0x93DD, 0x93A8, 0x9372, 0x933D, 0x9308, 0x92D4, 0x929F, 0x926B, \n        0x9237, 0x9204, 0x91D1, 0x919D, 0x916B, 0x9138, 0x9106, 0x90D4, \n        0x90A2, 0x9071, 0x9040, 0x900F, 0x8FDE, 0x8FAE, 0x8F7E, 0x8F4E, \n        0x8F1F, 0x8EEF, 0x8EC0, 0x8E92, 0x8E63, 0x8E35, 0x8E07, 0x8DDA, \n        0x8DAC, 0x8D7F, 0x8D52, 0x8D26, 0x8CFA, 0x8CCE, 0x8CA2, 0x8C77, \n        0x8C4C, 0x8C21, 0x8BF6, 0x8BCC, 0x8BA2, 0x8B78, 0x8B4F, 0x8B25, \n        0x8AFD, 0x8AD4, 0x8AAC, 0x8A84, 0x8A5C, 0x8A34, 0x8A0D, 0x89E6, \n        0x89C0, 0x8999, 0x8973, 0x894E, 0x8928, 0x8903, 0x88DE, 0x88B9, \n        0x8895, 0x8871, 0x884D, 0x882A, 0x8807, 0x87E4, 0x87C1, 0x879F, \n        0x877D, 0x875B, 0x873A, 0x8719, 0x86F8, 0x86D7, 0x86B7, 0x8697, \n        0x8677, 0x8658, 0x8639, 0x861A, 0x85FC, 0x85DD, 0x85BF, 0x85A2, \n        0x8584, 0x8567, 0x854B, 0x852E, 0x8512, 0x84F6, 0x84DB, 0x84BF, \n        0x84A4, 0x848A, 0x846F, 0x8455, 0x843C, 0x8422, 0x8409, 0x83F0, \n        0x83D8, 0x83BF, 0x83A7, 0x8390, 0x8378, 0x8361, 0x834A, 0x8334, \n        0x831E, 0x8308, 0x82F2, 0x82DD, 0x82C8, 0x82B3, 0x829F, 0x828B, \n        0x8277, 0x8264, 0x8251, 0x823E, 0x822B, 0x8219, 0x8207, 0x81F5, \n        0x81E4, 0x81D3, 0x81C2, 0x81B2, 0x81A2, 0x8192, 0x8182, 0x8173, \n        0x8164, 0x8156, 0x8147, 0x8139, 0x812C, 0x811E, 0x8111, 0x8104, \n        0x80F8, 0x80EC, 0x80E0, 0x80D4, 0x80C9, 0x80BE, 0x80B4, 0x80A9, \n        0x809F, 0x8096, 0x808C, 0x8083, 0x807A, 0x8072, 0x806A, 0x8062, \n        0x805A, 0x8053, 0x804C, 0x8045, 0x803F, 0x8039, 0x8033, 0x802E, \n        0x8029, 0x8024, 0x8020, 0x801C, 0x8018, 0x8014, 0x8011, 0x800E, \n        0x800B, 0x8009, 0x8007, 0x8005, 0x8004, 0x8003, 0x8002, 0x8002, \n        0x8001, 0x8002, 0x8002, 0x8003, 0x8004, 0x8005, 0x8007, 0x8009, \n        0x800B, 0x800E, 0x8011, 0x8014, 0x8018, 0x801C, 0x8020, 0x8024, \n        0x8029, 0x802E, 0x8033, 0x8039, 0x803F, 0x8045, 0x804C, 0x8053, \n        0x805A, 0x8062, 0x806A, 0x8072, 0x807A, 0x8083, 0x808C, 0x8096, \n        0x809F, 0x80A9, 0x80B4, 0x80BE, 0x80C9, 0x80D4, 0x80E0, 0x80EC, \n        0x80F8, 0x8104, 0x8111, 0x811E, 0x812C, 0x8139, 0x8147, 0x8156, \n        0x8164, 0x8173, 0x8182, 0x8192, 0x81A2, 0x81B2, 0x81C2, 0x81D3, \n        0x81E4, 0x81F5, 0x8207, 0x8219, 0x822B, 0x823E, 0x8250, 0x8264, \n        0x8277, 0x828B, 0x829F, 0x82B3, 0x82C8, 0x82DD, 0x82F2, 0x8308, \n        0x831E, 0x8334, 0x834A, 0x8361, 0x8378, 0x8390, 0x83A7, 0x83BF, \n        0x83D7, 0x83F0, 0x8409, 0x8422, 0x843C, 0x8455, 0x846F, 0x848A, \n        0x84A4, 0x84BF, 0x84DB, 0x84F6, 0x8512, 0x852E, 0x854B, 0x8567, \n        0x8584, 0x85A2, 0x85BF, 0x85DD, 0x85FB, 0x861A, 0x8639, 0x8658, \n        0x8677, 0x8697, 0x86B7, 0x86D7, 0x86F8, 0x8719, 0x873A, 0x875B, \n        0x877D, 0x879F, 0x87C1, 0x87E4, 0x8807, 0x882A, 0x884D, 0x8871, \n        0x8895, 0x88B9, 0x88DE, 0x8903, 0x8928, 0x894E, 0x8973, 0x8999, \n        0x89C0, 0x89E6, 0x8A0D, 0x8A34, 0x8A5C, 0x8A84, 0x8AAC, 0x8AD4, \n        0x8AFD, 0x8B25, 0x8B4F, 0x8B78, 0x8BA2, 0x8BCC, 0x8BF6, 0x8C21, \n        0x8C4B, 0x8C77, 0x8CA2, 0x8CCE, 0x8CFA, 0x8D26, 0x8D52, 0x8D7F, \n        0x8DAC, 0x8DDA, 0x8E07, 0x8E35, 0x8E63, 0x8E92, 0x8EC0, 0x8EEF, \n        0x8F1F, 0x8F4E, 0x8F7E, 0x8FAE, 0x8FDE, 0x900F, 0x9040, 0x9071, \n        0x90A2, 0x90D4, 0x9106, 0x9138, 0x916B, 0x919D, 0x91D0, 0x9204, \n        0x9237, 0x926B, 0x929F, 0x92D3, 0x9308, 0x933D, 0x9372, 0x93A7, \n        0x93DD, 0x9413, 0x9449, 0x9480, 0x94B6, 0x94ED, 0x9524, 0x955C, \n        0x9594, 0x95CC, 0x9604, 0x963C, 0x9675, 0x96AE, 0x96E7, 0x9721, \n        0x975B, 0x9795, 0x97CF, 0x9809, 0x9844, 0x987F, 0x98BA, 0x98F6, \n        0x9932, 0x996E, 0x99AA, 0x99E7, 0x9A23, 0x9A60, 0x9A9D, 0x9ADB, \n        0x9B19, 0x9B57, 0x9B95, 0x9BD3, 0x9C12, 0x9C51, 0x9C90, 0x9CD0, \n        0x9D0F, 0x9D4F, 0x9D8F, 0x9DD0, 0x9E10, 0x9E51, 0x9E92, 0x9ED3, \n        0x9F15, 0x9F57, 0x9F99, 0x9FDB, 0xA01D, 0xA060, 0xA0A3, 0xA0E6, \n        0xA12A, 0xA16D, 0xA1B1, 0xA1F5, 0xA23A, 0xA27E, 0xA2C3, 0xA308, \n        0xA34D, 0xA392, 0xA3D8, 0xA41E, 0xA464, 0xA4AA, 0xA4F1, 0xA538, \n        0xA57F, 0xA5C6, 0xA60D, 0xA655, 0xA69D, 0xA6E5, 0xA72D, 0xA776, \n        0xA7BE, 0xA807, 0xA850, 0xA89A, 0xA8E3, 0xA92D, 0xA977, 0xA9C1, \n        0xAA0B, 0xAA56, 0xAAA1, 0xAAEC, 0xAB37, 0xAB82, 0xABCE, 0xAC1A, \n        0xAC66, 0xACB2, 0xACFF, 0xAD4B, 0xAD98, 0xADE5, 0xAE32, 0xAE80, \n        0xAECD, 0xAF1B, 0xAF69, 0xAFB7, 0xB006, 0xB054, 0xB0A3, 0xB0F2, \n        0xB141, 0xB190, 0xB1E0, 0xB230, 0xB280, 0xB2D0, 0xB320, 0xB370, \n        0xB3C1, 0xB412, 0xB463, 0xB4B4, 0xB506, 0xB557, 0xB5A9, 0xB5FB, \n        0xB64D, 0xB69F, 0xB6F2, 0xB744, 0xB797, 0xB7EA, 0xB83D, 0xB891, \n        0xB8E4, 0xB938, 0xB98C, 0xB9E0, 0xBA34, 0xBA88, 0xBADD, 0xBB31, \n        0xBB86, 0xBBDB, 0xBC30, 0xBC86, 0xBCDB, 0xBD31, 0xBD87, 0xBDDD, \n        0xBE33, 0xBE89, 0xBEE0, 0xBF36, 0xBF8D, 0xBFE4, 0xC03B, 0xC092, \n        0xC0EA, 0xC141, 0xC199, 0xC1F1, 0xC249, 0xC2A1, 0xC2F9, 0xC352, \n        0xC3AA, 0xC403, 0xC45C, 0xC4B5, 0xC50E, 0xC567, 0xC5C1, 0xC61A, \n        0xC674, 0xC6CE, 0xC728, 0xC782, 0xC7DC, 0xC837, 0xC891, 0xC8EC, \n        0xC947, 0xC9A2, 0xC9FD, 0xCA58, 0xCAB3, 0xCB0F, 0xCB6A, 0xCBC6, \n        0xCC22, 0xCC7E, 0xCCDA, 0xCD36, 0xCD92, 0xCDEF, 0xCE4C, 0xCEA8, \n        0xCF05, 0xCF62, 0xCFBF, 0xD01C, 0xD079, 0xD0D7, 0xD134, 0xD192, \n        0xD1F0, 0xD24E, 0xD2AC, 0xD30A, 0xD368, 0xD3C6, 0xD424, 0xD483, \n        0xD4E2, 0xD540, 0xD59F, 0xD5FE, 0xD65D, 0xD6BC, 0xD71B, 0xD77B, \n        0xD7DA, 0xD839, 0xD899, 0xD8F9, 0xD959, 0xD9B8, 0xDA18, 0xDA78, \n        0xDAD9, 0xDB39, 0xDB99, 0xDBFA, 0xDC5A, 0xDCBB, 0xDD1B, 0xDD7C, \n        0xDDDD, 0xDE3E, 0xDE9F, 0xDF00, 0xDF61, 0xDFC2, 0xE024, 0xE085, \n        0xE0E7, 0xE148, 0xE1AA, 0xE20C, 0xE26D, 0xE2CF, 0xE331, 0xE393, \n        0xE3F5, 0xE457, 0xE4B9, 0xE51C, 0xE57E, 0xE5E0, 0xE643, 0xE6A5, \n        0xE708, 0xE76A, 0xE7CD, 0xE830, 0xE893, 0xE8F6, 0xE958, 0xE9BB, \n        0xEA1E, 0xEA82, 0xEAE5, 0xEB48, 0xEBAB, 0xEC0E, 0xEC72, 0xECD5, \n        0xED38, 0xED9C, 0xEDFF, 0xEE63, 0xEEC7, 0xEF2A, 0xEF8E, 0xEFF2, \n        0xF055, 0xF0B9, 0xF11D, 0xF181, 0xF1E5, 0xF249, 0xF2AD, 0xF311, \n        0xF375, 0xF3D9, 0xF43D, 0xF4A1, 0xF505, 0xF569, 0xF5CD, 0xF632, \n        0xF696, 0xF6FA, 0xF75E, 0xF7C3, 0xF827, 0xF88B, 0xF8F0, 0xF954, \n        0xF9B9, 0xFA1D, 0xFA81, 0xFAE6, 0xFB4A, 0xFBAF, 0xFC13, 0xFC78, \n        0xFCDC, 0xFD41, 0xFDA5, 0xFE0A, 0xFE6E, 0xFED3, 0xFF37, 0xFF9C, \n// Waveform 5:\n        0x0000, 0x0096, 0x012D, 0x01C4, 0x025B, 0x02F1, 0x0388, 0x041E, \n        0x04B5, 0x054B, 0x05E2, 0x0678, 0x070E, 0x07A4, 0x083A, 0x08D0, \n        0x0965, 0x09FB, 0x0A90, 0x0B25, 0x0BBA, 0x0C4F, 0x0CE3, 0x0D78, \n        0x0E0C, 0x0EA0, 0x0F33, 0x0FC6, 0x1059, 0x10EC, 0x117F, 0x1211, \n        0x12A3, 0x1335, 0x13C6, 0x1457, 0x14E7, 0x1578, 0x1608, 0x1697, \n        0x1726, 0x17B5, 0x1843, 0x18D1, 0x195F, 0x19EC, 0x1A79, 0x1B05, \n        0x1B91, 0x1C1C, 0x1CA7, 0x1D32, 0x1DBC, 0x1E45, 0x1ECE, 0x1F57, \n        0x1FDF, 0x2066, 0x20ED, 0x2173, 0x21F9, 0x227E, 0x2303, 0x2387, \n        0x240B, 0x248E, 0x2510, 0x2592, 0x2613, 0x2694, 0x2714, 0x2793, \n        0x2812, 0x2890, 0x290D, 0x298A, 0x2A06, 0x2A81, 0x2AFC, 0x2B76, \n        0x2BF0, 0x2C68, 0x2CE0, 0x2D57, 0x2DCE, 0x2E44, 0x2EB9, 0x2F2D, \n        0x2FA1, 0x3014, 0x3086, 0x30F7, 0x3168, 0x31D8, 0x3247, 0x32B5, \n        0x3323, 0x338F, 0x33FB, 0x3466, 0x34D1, 0x353A, 0x35A3, 0x360B, \n        0x3672, 0x36D8, 0x373E, 0x37A2, 0x3806, 0x3869, 0x38CB, 0x392C, \n        0x398D, 0x39EC, 0x3A4B, 0x3AA9, 0x3B06, 0x3B62, 0x3BBD, 0x3C18, \n        0x3C71, 0x3CCA, 0x3D22, 0x3D78, 0x3DCE, 0x3E24, 0x3E78, 0x3ECB, \n        0x3F1E, 0x3F6F, 0x3FC0, 0x400F, 0x405E, 0x40AC, 0x40F9, 0x4145, \n        0x4191, 0x41DB, 0x4224, 0x426D, 0x42B4, 0x42FB, 0x4341, 0x4386, \n        0x43CA, 0x440D, 0x444F, 0x4490, 0x44D1, 0x4510, 0x454F, 0x458C, \n        0x45C9, 0x4605, 0x4640, 0x467A, 0x46B3, 0x46EB, 0x4722, 0x4758, \n        0x478E, 0x47C2, 0x47F6, 0x4829, 0x485B, 0x488C, 0x48BC, 0x48EB, \n        0x4919, 0x4947, 0x4973, 0x499F, 0x49CA, 0x49F4, 0x4A1D, 0x4A45, \n        0x4A6C, 0x4A93, 0x4AB8, 0x4ADD, 0x4B01, 0x4B24, 0x4B46, 0x4B68, \n        0x4B88, 0x4BA8, 0x4BC7, 0x4BE4, 0x4C02, 0x4C1E, 0x4C3A, 0x4C54, \n        0x4C6E, 0x4C87, 0x4C9F, 0x4CB7, 0x4CCE, 0x4CE4, 0x4CF9, 0x4D0D, \n        0x4D21, 0x4D33, 0x4D45, 0x4D57, 0x4D67, 0x4D77, 0x4D86, 0x4D94, \n        0x4DA2, 0x4DAF, 0x4DBB, 0x4DC6, 0x4DD1, 0x4DDB, 0x4DE4, 0x4DEC, \n        0x4DF4, 0x4DFB, 0x4E02, 0x4E08, 0x4E0D, 0x4E11, 0x4E15, 0x4E18, \n        0x4E1B, 0x4E1D, 0x4E1E, 0x4E1F, 0x4E1F, 0x4E1E, 0x4E1D, 0x4E1B, \n        0x4E19, 0x4E16, 0x4E12, 0x4E0E, 0x4E0A, 0x4E04, 0x4DFF, 0x4DF8, \n        0x4DF1, 0x4DEA, 0x4DE2, 0x4DDA, 0x4DD1, 0x4DC7, 0x4DBD, 0x4DB3, \n        0x4DA8, 0x4D9D, 0x4D91, 0x4D84, 0x4D78, 0x4D6A, 0x4D5D, 0x4D4F, \n        0x4D40, 0x4D31, 0x4D22, 0x4D12, 0x4D02, 0x4CF1, 0x4CE1, 0x4CCF, \n        0x4CBE, 0x4CAC, 0x4C99, 0x4C87, 0x4C74, 0x4C60, 0x4C4C, 0x4C38, \n        0x4C24, 0x4C0F, 0x4BFB, 0x4BE5, 0x4BD0, 0x4BBA, 0x4BA4, 0x4B8E, \n        0x4B77, 0x4B61, 0x4B4A, 0x4B32, 0x4B1B, 0x4B03, 0x4AEB, 0x4AD3, \n        0x4ABB, 0x4AA3, 0x4A8A, 0x4A71, 0x4A58, 0x4A3F, 0x4A26, 0x4A0C, \n        0x49F3, 0x49D9, 0x49BF, 0x49A5, 0x498B, 0x4971, 0x4957, 0x493D, \n        0x4922, 0x4908, 0x48ED, 0x48D3, 0x48B8, 0x489D, 0x4883, 0x4868, \n        0x484D, 0x4832, 0x4817, 0x47FC, 0x47E1, 0x47C6, 0x47AC, 0x4791, \n        0x4776, 0x475B, 0x4740, 0x4725, 0x470B, 0x46F0, 0x46D5, 0x46BB, \n        0x46A0, 0x4686, 0x466B, 0x4651, 0x4637, 0x461D, 0x4603, 0x45E9, \n        0x45CF, 0x45B5, 0x459C, 0x4582, 0x4569, 0x4550, 0x4536, 0x451D, \n        0x4505, 0x44EC, 0x44D3, 0x44BB, 0x44A3, 0x448B, 0x4473, 0x445B, \n        0x4444, 0x442C, 0x4415, 0x43FE, 0x43E7, 0x43D1, 0x43BA, 0x43A4, \n        0x438E, 0x4378, 0x4362, 0x434D, 0x4338, 0x4323, 0x430E, 0x42F9, \n        0x42E5, 0x42D1, 0x42BD, 0x42AA, 0x4296, 0x4283, 0x4270, 0x425D, \n        0x424B, 0x4239, 0x4227, 0x4215, 0x4204, 0x41F3, 0x41E2, 0x41D1, \n        0x41C0, 0x41B0, 0x41A0, 0x4191, 0x4181, 0x4172, 0x4163, 0x4155, \n        0x4146, 0x4138, 0x412A, 0x411D, 0x410F, 0x4102, 0x40F6, 0x40E9, \n        0x40DD, 0x40D1, 0x40C5, 0x40BA, 0x40AF, 0x40A4, 0x4099, 0x408F, \n        0x4084, 0x407B, 0x4071, 0x4068, 0x405E, 0x4056, 0x404D, 0x4045, \n        0x403D, 0x4035, 0x402D, 0x4026, 0x401F, 0x4018, 0x4011, 0x400B, \n        0x4005, 0x3FFF, 0x3FF9, 0x3FF4, 0x3FEF, 0x3FEA, 0x3FE5, 0x3FE0, \n        0x3FDC, 0x3FD8, 0x3FD4, 0x3FD0, 0x3FCD, 0x3FCA, 0x3FC7, 0x3FC4, \n        0x3FC1, 0x3FBF, 0x3FBC, 0x3FBA, 0x3FB9, 0x3FB7, 0x3FB5, 0x3FB4, \n        0x3FB3, 0x3FB2, 0x3FB1, 0x3FB0, 0x3FB0, 0x3FAF, 0x3FAF, 0x3FAF, \n        0x3FAF, 0x3FAF, 0x3FB0, 0x3FB0, 0x3FB1, 0x3FB1, 0x3FB2, 0x3FB3, \n        0x3FB4, 0x3FB5, 0x3FB6, 0x3FB8, 0x3FB9, 0x3FBB, 0x3FBC, 0x3FBE, \n        0x3FBF, 0x3FC1, 0x3FC3, 0x3FC5, 0x3FC7, 0x3FC9, 0x3FCB, 0x3FCD, \n        0x3FCF, 0x3FD1, 0x3FD3, 0x3FD5, 0x3FD7, 0x3FD9, 0x3FDB, 0x3FDE, \n        0x3FE0, 0x3FE2, 0x3FE4, 0x3FE6, 0x3FE8, 0x3FEA, 0x3FEC, 0x3FED, \n        0x3FEF, 0x3FF1, 0x3FF2, 0x3FF4, 0x3FF6, 0x3FF7, 0x3FF8, 0x3FF9, \n        0x3FFB, 0x3FFC, 0x3FFC, 0x3FFD, 0x3FFE, 0x3FFE, 0x3FFF, 0x3FFF, \n        0x3FFF, 0x3FFF, 0x3FFF, 0x3FFE, 0x3FFE, 0x3FFD, 0x3FFC, 0x3FFB, \n        0x3FFA, 0x3FF8, 0x3FF6, 0x3FF4, 0x3FF2, 0x3FF0, 0x3FED, 0x3FEA, \n        0x3FE7, 0x3FE4, 0x3FE1, 0x3FDD, 0x3FD9, 0x3FD4, 0x3FD0, 0x3FCB, \n        0x3FC6, 0x3FC0, 0x3FBA, 0x3FB4, 0x3FAE, 0x3FA7, 0x3FA0, 0x3F99, \n        0x3F91, 0x3F89, 0x3F81, 0x3F79, 0x3F70, 0x3F66, 0x3F5D, 0x3F53, \n        0x3F48, 0x3F3D, 0x3F32, 0x3F27, 0x3F1B, 0x3F0F, 0x3F02, 0x3EF5, \n        0x3EE7, 0x3ED9, 0x3ECB, 0x3EBC, 0x3EAD, 0x3E9E, 0x3E8E, 0x3E7D, \n        0x3E6C, 0x3E5B, 0x3E49, 0x3E37, 0x3E25, 0x3E12, 0x3DFE, 0x3DEA, \n        0x3DD6, 0x3DC1, 0x3DAB, 0x3D95, 0x3D7F, 0x3D68, 0x3D51, 0x3D39, \n        0x3D21, 0x3D08, 0x3CEF, 0x3CD5, 0x3CBA, 0x3CA0, 0x3C84, 0x3C68, \n        0x3C4C, 0x3C2F, 0x3C12, 0x3BF4, 0x3BD5, 0x3BB6, 0x3B97, 0x3B77, \n        0x3B56, 0x3B35, 0x3B14, 0x3AF1, 0x3ACF, 0x3AAC, 0x3A88, 0x3A63, \n        0x3A3F, 0x3A19, 0x39F3, 0x39CD, 0x39A6, 0x397E, 0x3956, 0x392D, \n        0x3904, 0x38DA, 0x38B0, 0x3885, 0x3859, 0x382D, 0x3801, 0x37D3, \n        0x37A6, 0x3777, 0x3749, 0x3719, 0x36E9, 0x36B9, 0x3688, 0x3656, \n        0x3624, 0x35F1, 0x35BE, 0x358A, 0x3556, 0x3521, 0x34EC, 0x34B6, \n        0x347F, 0x3448, 0x3411, 0x33D9, 0x33A0, 0x3367, 0x332D, 0x32F3, \n        0x32B8, 0x327D, 0x3241, 0x3204, 0x31C8, 0x318A, 0x314C, 0x310E, \n        0x30CF, 0x308F, 0x3050, 0x300F, 0x2FCE, 0x2F8D, 0x2F4B, 0x2F08, \n        0x2EC5, 0x2E82, 0x2E3E, 0x2DFA, 0x2DB5, 0x2D70, 0x2D2A, 0x2CE4, \n        0x2C9D, 0x2C56, 0x2C0F, 0x2BC7, 0x2B7E, 0x2B36, 0x2AEC, 0x2AA3, \n        0x2A59, 0x2A0E, 0x29C3, 0x2978, 0x292C, 0x28E0, 0x2893, 0x2847, \n        0x27F9, 0x27AC, 0x275E, 0x270F, 0x26C0, 0x2671, 0x2622, 0x25D2, \n        0x2582, 0x2532, 0x24E1, 0x2490, 0x243E, 0x23ED, 0x239B, 0x2349, \n        0x22F6, 0x22A3, 0x2250, 0x21FD, 0x21A9, 0x2155, 0x2101, 0x20AD, \n        0x2058, 0x2003, 0x1FAE, 0x1F59, 0x1F03, 0x1EAE, 0x1E58, 0x1E02, \n        0x1DAB, 0x1D55, 0x1CFE, 0x1CA8, 0x1C51, 0x1BFA, 0x1BA3, 0x1B4B, \n        0x1AF4, 0x1A9C, 0x1A45, 0x19ED, 0x1995, 0x193D, 0x18E5, 0x188D, \n        0x1835, 0x17DD, 0x1785, 0x172D, 0x16D4, 0x167C, 0x1624, 0x15CB, \n        0x1573, 0x151B, 0x14C3, 0x146A, 0x1412, 0x13BA, 0x1362, 0x130A, \n        0x12B2, 0x125A, 0x1202, 0x11AA, 0x1152, 0x10FB, 0x10A3, 0x104C, \n        0x0FF5, 0x0F9E, 0x0F47, 0x0EF0, 0x0E99, 0x0E43, 0x0DED, 0x0D97, \n        0x0D41, 0x0CEB, 0x0C95, 0x0C40, 0x0BEB, 0x0B96, 0x0B42, 0x0AED, \n        0x0A99, 0x0A45, 0x09F2, 0x099F, 0x094C, 0x08F9, 0x08A7, 0x0854, \n        0x0803, 0x07B1, 0x0760, 0x070F, 0x06BF, 0x066F, 0x061F, 0x05D0, \n        0x0581, 0x0532, 0x04E4, 0x0496, 0x0449, 0x03FC, 0x03AF, 0x0363, \n        0x0317, 0x02CC, 0x0281, 0x0237, 0x01ED, 0x01A4, 0x015B, 0x0112, \n        0x00CA, 0x0083, 0x003C, 0xFFF6, 0xFFB0, 0xFF6B, 0xFF26, 0xFEE1, \n        0xFE9E, 0xFE5A, 0xFE18, 0xFDD5, 0xFD94, 0xFD53, 0xFD12, 0xFCD2, \n        0xFC93, 0xFC54, 0xFC16, 0xFBD9, 0xFB9C, 0xFB5F, 0xFB24, 0xFAE9, \n        0xFAAE, 0xFA75, 0xFA3B, 0xFA03, 0xF9CB, 0xF994, 0xF95D, 0xF927, \n        0xF8F2, 0xF8BE, 0xF88A, 0xF857, 0xF824, 0xF7F2, 0xF7C1, 0xF791, \n        0xF761, 0xF732, 0xF704, 0xF6D6, 0xF6AA, 0xF67D, 0xF652, 0xF627, \n        0xF5FD, 0xF5D4, 0xF5AC, 0xF584, 0xF55D, 0xF537, 0xF511, 0xF4EC, \n        0xF4C8, 0xF4A5, 0xF483, 0xF461, 0xF440, 0xF420, 0xF400, 0xF3E1, \n        0xF3C4, 0xF3A6, 0xF38A, 0xF36E, 0xF354, 0xF339, 0xF320, 0xF308, \n        0xF2F0, 0xF2D9, 0xF2C3, 0xF2AD, 0xF299, 0xF285, 0xF272, 0xF25F, \n        0xF24E, 0xF23D, 0xF22D, 0xF21E, 0xF210, 0xF202, 0xF1F5, 0xF1E9, \n        0xF1DE, 0xF1D3, 0xF1CA, 0xF1C1, 0xF1B8, 0xF1B1, 0xF1AA, 0xF1A5, \n        0xF19F, 0xF19B, 0xF198, 0xF195, 0xF193, 0xF191, 0xF191, 0xF191, \n        0xF192, 0xF194, 0xF196, 0xF199, 0xF19D, 0xF1A2, 0xF1A7, 0xF1AE, \n        0xF1B4, 0xF1BC, 0xF1C4, 0xF1CD, 0xF1D7, 0xF1E2, 0xF1ED, 0xF1F9, \n        0xF205, 0xF212, 0xF220, 0xF22F, 0xF23E, 0xF24E, 0xF25F, 0xF271, \n        0xF283, 0xF295, 0xF2A9, 0xF2BD, 0xF2D1, 0xF2E7, 0xF2FC, 0xF313, \n        0xF32A, 0xF342, 0xF35A, 0xF373, 0xF38D, 0xF3A7, 0xF3C2, 0xF3DE, \n        0xF3FA, 0xF416, 0xF433, 0xF451, 0xF46F, 0xF48E, 0xF4AD, 0xF4CD, \n        0xF4EE, 0xF50F, 0xF530, 0xF552, 0xF575, 0xF597, 0xF5BB, 0xF5DF, \n        0xF603, 0xF628, 0xF64E, 0xF673, 0xF69A, 0xF6C0, 0xF6E7, 0xF70F, \n        0xF737, 0xF75F, 0xF788, 0xF7B1, 0xF7DB, 0xF805, 0xF82F, 0xF85A, \n        0xF885, 0xF8B0, 0xF8DC, 0xF908, 0xF934, 0xF961, 0xF98E, 0xF9BB, \n        0xF9E9, 0xFA17, 0xFA45, 0xFA73, 0xFAA2, 0xFAD1, 0xFB00, 0xFB2F, \n        0xFB5F, 0xFB8F, 0xFBBF, 0xFBEF, 0xFC1F, 0xFC50, 0xFC80, 0xFCB1, \n        0xFCE2, 0xFD14, 0xFD45, 0xFD76, 0xFDA8, 0xFDDA, 0xFE0B, 0xFE3D, \n        0xFE6F, 0xFEA1, 0xFED3, 0xFF05, 0xFF38, 0xFF6A, 0xFF9C, 0xFFCE, \n        0x0000, 0x0032, 0x0064, 0x0096, 0x00C8, 0x00FB, 0x012D, 0x015F, \n        0x0191, 0x01C3, 0x01F5, 0x0226, 0x0258, 0x028A, 0x02BB, 0x02EC, \n        0x031E, 0x034F, 0x0380, 0x03B0, 0x03E1, 0x0411, 0x0441, 0x0471, \n        0x04A1, 0x04D1, 0x0500, 0x052F, 0x055E, 0x058D, 0x05BB, 0x05E9, \n        0x0617, 0x0645, 0x0672, 0x069F, 0x06CC, 0x06F8, 0x0724, 0x0750, \n        0x077B, 0x07A6, 0x07D1, 0x07FB, 0x0825, 0x084F, 0x0878, 0x08A1, \n        0x08C9, 0x08F1, 0x0919, 0x0940, 0x0966, 0x098D, 0x09B2, 0x09D8, \n        0x09FD, 0x0A21, 0x0A45, 0x0A68, 0x0A8B, 0x0AAE, 0x0AD0, 0x0AF1, \n        0x0B12, 0x0B33, 0x0B53, 0x0B72, 0x0B91, 0x0BAF, 0x0BCD, 0x0BEA, \n        0x0C06, 0x0C22, 0x0C3E, 0x0C59, 0x0C73, 0x0C8D, 0x0CA6, 0x0CBE, \n        0x0CD6, 0x0CED, 0x0D04, 0x0D19, 0x0D2F, 0x0D43, 0x0D57, 0x0D6B, \n        0x0D7D, 0x0D8F, 0x0DA1, 0x0DB2, 0x0DC2, 0x0DD1, 0x0DE0, 0x0DEE, \n        0x0DFB, 0x0E07, 0x0E13, 0x0E1E, 0x0E29, 0x0E33, 0x0E3C, 0x0E44, \n        0x0E4C, 0x0E52, 0x0E59, 0x0E5E, 0x0E63, 0x0E67, 0x0E6A, 0x0E6C, \n        0x0E6E, 0x0E6F, 0x0E6F, 0x0E6F, 0x0E6D, 0x0E6B, 0x0E68, 0x0E65, \n        0x0E61, 0x0E5B, 0x0E56, 0x0E4F, 0x0E48, 0x0E3F, 0x0E36, 0x0E2D, \n        0x0E22, 0x0E17, 0x0E0B, 0x0DFE, 0x0DF0, 0x0DE2, 0x0DD3, 0x0DC3, \n        0x0DB2, 0x0DA1, 0x0D8E, 0x0D7B, 0x0D67, 0x0D53, 0x0D3D, 0x0D27, \n        0x0D10, 0x0CF8, 0x0CE0, 0x0CC7, 0x0CAD, 0x0C92, 0x0C76, 0x0C5A, \n        0x0C3C, 0x0C1F, 0x0C00, 0x0BE0, 0x0BC0, 0x0B9F, 0x0B7D, 0x0B5B, \n        0x0B38, 0x0B14, 0x0AEF, 0x0AC9, 0x0AA3, 0x0A7C, 0x0A54, 0x0A2C, \n        0x0A03, 0x09D9, 0x09AE, 0x0983, 0x0956, 0x092A, 0x08FC, 0x08CE, \n        0x089F, 0x086F, 0x083F, 0x080E, 0x07DC, 0x07A9, 0x0776, 0x0742, \n        0x070E, 0x06D9, 0x06A3, 0x066C, 0x0635, 0x05FD, 0x05C5, 0x058C, \n        0x0552, 0x0517, 0x04DC, 0x04A1, 0x0464, 0x0427, 0x03EA, 0x03AC, \n        0x036D, 0x032E, 0x02EE, 0x02AD, 0x026C, 0x022B, 0x01E9, 0x01A6, \n        0x0162, 0x011F, 0x00DA, 0x0095, 0x0050, 0x000A, 0xFFC4, 0xFF7D, \n        0xFF36, 0xFEEE, 0xFEA5, 0xFE5D, 0xFE13, 0xFDC9, 0xFD7F, 0xFD34, \n        0xFCE9, 0xFC9D, 0xFC51, 0xFC04, 0xFBB7, 0xFB6A, 0xFB1C, 0xFACE, \n        0xFA7F, 0xFA30, 0xF9E1, 0xF991, 0xF941, 0xF8F1, 0xF8A0, 0xF84F, \n        0xF7FD, 0xF7AC, 0xF75A, 0xF707, 0xF6B4, 0xF661, 0xF60E, 0xF5BB, \n        0xF567, 0xF513, 0xF4BE, 0xF46A, 0xF415, 0xF3C0, 0xF36B, 0xF315, \n        0xF2BF, 0xF26A, 0xF213, 0xF1BD, 0xF167, 0xF110, 0xF0B9, 0xF062, \n        0xF00B, 0xEFB4, 0xEF5D, 0xEF05, 0xEEAE, 0xEE56, 0xEDFE, 0xEDA6, \n        0xED4E, 0xECF6, 0xEC9E, 0xEC46, 0xEBEE, 0xEB96, 0xEB3E, 0xEAE5, \n        0xEA8D, 0xEA35, 0xE9DC, 0xE984, 0xE92C, 0xE8D3, 0xE87B, 0xE823, \n        0xE7CB, 0xE773, 0xE71B, 0xE6C3, 0xE66B, 0xE613, 0xE5BB, 0xE564, \n        0xE50C, 0xE4B5, 0xE45D, 0xE406, 0xE3AF, 0xE358, 0xE302, 0xE2AB, \n        0xE255, 0xE1FE, 0xE1A8, 0xE153, 0xE0FD, 0xE0A7, 0xE052, 0xDFFD, \n        0xDFA8, 0xDF54, 0xDEFF, 0xDEAB, 0xDE57, 0xDE03, 0xDDB0, 0xDD5D, \n        0xDD0A, 0xDCB8, 0xDC65, 0xDC13, 0xDBC2, 0xDB70, 0xDB1F, 0xDACE, \n        0xDA7E, 0xDA2E, 0xD9DE, 0xD98F, 0xD940, 0xD8F1, 0xD8A2, 0xD854, \n        0xD807, 0xD7BA, 0xD76D, 0xD720, 0xD6D4, 0xD688, 0xD63D, 0xD5F2, \n        0xD5A8, 0xD55D, 0xD514, 0xD4CA, 0xD482, 0xD439, 0xD3F1, 0xD3AA, \n        0xD363, 0xD31C, 0xD2D6, 0xD290, 0xD24B, 0xD206, 0xD1C2, 0xD17E, \n        0xD13B, 0xD0F8, 0xD0B5, 0xD073, 0xD032, 0xCFF1, 0xCFB1, 0xCF71, \n        0xCF31, 0xCEF2, 0xCEB4, 0xCE76, 0xCE39, 0xCDFC, 0xCDBF, 0xCD83, \n        0xCD48, 0xCD0D, 0xCCD3, 0xCC99, 0xCC60, 0xCC27, 0xCBEF, 0xCBB8, \n        0xCB81, 0xCB4A, 0xCB14, 0xCADF, 0xCAAA, 0xCA76, 0xCA42, 0xCA0F, \n        0xC9DC, 0xC9AA, 0xC978, 0xC947, 0xC917, 0xC8E7, 0xC8B7, 0xC889, \n        0xC85A, 0xC82D, 0xC800, 0xC7D3, 0xC7A7, 0xC77B, 0xC750, 0xC726, \n        0xC6FC, 0xC6D3, 0xC6AA, 0xC682, 0xC65A, 0xC633, 0xC60D, 0xC5E7, \n        0xC5C1, 0xC59D, 0xC578, 0xC554, 0xC531, 0xC50F, 0xC4EC, 0xC4CB, \n        0xC4AA, 0xC489, 0xC469, 0xC44A, 0xC42B, 0xC40C, 0xC3EE, 0xC3D1, \n        0xC3B4, 0xC398, 0xC37C, 0xC360, 0xC346, 0xC32B, 0xC311, 0xC2F8, \n        0xC2DF, 0xC2C7, 0xC2AF, 0xC298, 0xC281, 0xC26B, 0xC255, 0xC23F, \n        0xC22A, 0xC216, 0xC202, 0xC1EE, 0xC1DB, 0xC1C9, 0xC1B7, 0xC1A5, \n        0xC194, 0xC183, 0xC172, 0xC162, 0xC153, 0xC144, 0xC135, 0xC127, \n        0xC119, 0xC10B, 0xC0FE, 0xC0F1, 0xC0E5, 0xC0D9, 0xC0CE, 0xC0C3, \n        0xC0B8, 0xC0AD, 0xC0A3, 0xC09A, 0xC090, 0xC087, 0xC07F, 0xC077, \n        0xC06F, 0xC067, 0xC060, 0xC059, 0xC052, 0xC04C, 0xC046, 0xC040, \n        0xC03A, 0xC035, 0xC030, 0xC02C, 0xC027, 0xC023, 0xC01F, 0xC01C, \n        0xC019, 0xC016, 0xC013, 0xC010, 0xC00E, 0xC00C, 0xC00A, 0xC008, \n        0xC006, 0xC005, 0xC004, 0xC003, 0xC002, 0xC002, 0xC001, 0xC001, \n        0xC001, 0xC001, 0xC001, 0xC002, 0xC002, 0xC003, 0xC004, 0xC004, \n        0xC005, 0xC007, 0xC008, 0xC009, 0xC00A, 0xC00C, 0xC00E, 0xC00F, \n        0xC011, 0xC013, 0xC014, 0xC016, 0xC018, 0xC01A, 0xC01C, 0xC01E, \n        0xC020, 0xC022, 0xC025, 0xC027, 0xC029, 0xC02B, 0xC02D, 0xC02F, \n        0xC031, 0xC033, 0xC035, 0xC037, 0xC039, 0xC03B, 0xC03D, 0xC03F, \n        0xC041, 0xC042, 0xC044, 0xC045, 0xC047, 0xC048, 0xC04A, 0xC04B, \n        0xC04C, 0xC04D, 0xC04E, 0xC04F, 0xC04F, 0xC050, 0xC050, 0xC051, \n        0xC051, 0xC051, 0xC051, 0xC051, 0xC050, 0xC050, 0xC04F, 0xC04E, \n        0xC04D, 0xC04C, 0xC04B, 0xC049, 0xC047, 0xC046, 0xC044, 0xC041, \n        0xC03F, 0xC03C, 0xC039, 0xC036, 0xC033, 0xC030, 0xC02C, 0xC028, \n        0xC024, 0xC020, 0xC01B, 0xC016, 0xC011, 0xC00C, 0xC007, 0xC001, \n        0xBFFB, 0xBFF5, 0xBFEF, 0xBFE8, 0xBFE1, 0xBFDA, 0xBFD3, 0xBFCB, \n        0xBFC3, 0xBFBB, 0xBFB3, 0xBFAA, 0xBFA2, 0xBF98, 0xBF8F, 0xBF85, \n        0xBF7C, 0xBF71, 0xBF67, 0xBF5C, 0xBF51, 0xBF46, 0xBF3B, 0xBF2F, \n        0xBF23, 0xBF17, 0xBF0A, 0xBEFE, 0xBEF1, 0xBEE3, 0xBED6, 0xBEC8, \n        0xBEBA, 0xBEAB, 0xBE9D, 0xBE8E, 0xBE7F, 0xBE6F, 0xBE60, 0xBE50, \n        0xBE40, 0xBE2F, 0xBE1E, 0xBE0D, 0xBDFC, 0xBDEB, 0xBDD9, 0xBDC7, \n        0xBDB5, 0xBDA3, 0xBD90, 0xBD7D, 0xBD6A, 0xBD56, 0xBD43, 0xBD2F, \n        0xBD1B, 0xBD07, 0xBCF2, 0xBCDD, 0xBCC8, 0xBCB3, 0xBC9E, 0xBC88, \n        0xBC72, 0xBC5C, 0xBC46, 0xBC2F, 0xBC19, 0xBC02, 0xBBEB, 0xBBD4, \n        0xBBBC, 0xBBA5, 0xBB8D, 0xBB75, 0xBB5D, 0xBB45, 0xBB2D, 0xBB14, \n        0xBAFB, 0xBAE3, 0xBACA, 0xBAB0, 0xBA97, 0xBA7E, 0xBA64, 0xBA4B, \n        0xBA31, 0xBA17, 0xB9FD, 0xB9E3, 0xB9C9, 0xB9AF, 0xB995, 0xB97A, \n        0xB960, 0xB945, 0xB92B, 0xB910, 0xB8F5, 0xB8DB, 0xB8C0, 0xB8A5, \n        0xB88A, 0xB86F, 0xB854, 0xB83A, 0xB81F, 0xB804, 0xB7E9, 0xB7CE, \n        0xB7B3, 0xB798, 0xB77D, 0xB763, 0xB748, 0xB72D, 0xB713, 0xB6F8, \n        0xB6DE, 0xB6C3, 0xB6A9, 0xB68F, 0xB675, 0xB65B, 0xB641, 0xB627, \n        0xB60D, 0xB5F4, 0xB5DA, 0xB5C1, 0xB5A8, 0xB58F, 0xB576, 0xB55D, \n        0xB545, 0xB52D, 0xB515, 0xB4FD, 0xB4E5, 0xB4CE, 0xB4B6, 0xB49F, \n        0xB489, 0xB472, 0xB45C, 0xB446, 0xB430, 0xB41B, 0xB405, 0xB3F1, \n        0xB3DC, 0xB3C8, 0xB3B4, 0xB3A0, 0xB38D, 0xB379, 0xB367, 0xB354, \n        0xB342, 0xB331, 0xB31F, 0xB30F, 0xB2FE, 0xB2EE, 0xB2DE, 0xB2CF, \n        0xB2C0, 0xB2B1, 0xB2A3, 0xB296, 0xB288, 0xB27C, 0xB26F, 0xB263, \n        0xB258, 0xB24D, 0xB243, 0xB239, 0xB22F, 0xB226, 0xB21E, 0xB216, \n        0xB20F, 0xB208, 0xB201, 0xB1FC, 0xB1F6, 0xB1F2, 0xB1EE, 0xB1EA, \n        0xB1E7, 0xB1E5, 0xB1E3, 0xB1E2, 0xB1E1, 0xB1E1, 0xB1E2, 0xB1E3, \n        0xB1E5, 0xB1E8, 0xB1EB, 0xB1EF, 0xB1F3, 0xB1F8, 0xB1FE, 0xB205, \n        0xB20C, 0xB214, 0xB21C, 0xB225, 0xB22F, 0xB23A, 0xB245, 0xB251, \n        0xB25E, 0xB26C, 0xB27A, 0xB289, 0xB299, 0xB2A9, 0xB2BB, 0xB2CD, \n        0xB2DF, 0xB2F3, 0xB307, 0xB31C, 0xB332, 0xB349, 0xB361, 0xB379, \n        0xB392, 0xB3AC, 0xB3C6, 0xB3E2, 0xB3FE, 0xB41B, 0xB439, 0xB458, \n        0xB478, 0xB498, 0xB4BA, 0xB4DC, 0xB4FF, 0xB523, 0xB548, 0xB56D, \n        0xB594, 0xB5BB, 0xB5E3, 0xB60C, 0xB636, 0xB661, 0xB68D, 0xB6B9, \n        0xB6E7, 0xB715, 0xB744, 0xB774, 0xB7A5, 0xB7D7, 0xB80A, 0xB83D, \n        0xB872, 0xB8A7, 0xB8DE, 0xB915, 0xB94D, 0xB986, 0xB9C0, 0xB9FB, \n        0xBA37, 0xBA74, 0xBAB1, 0xBAF0, 0xBB2F, 0xBB70, 0xBBB1, 0xBBF3, \n        0xBC36, 0xBC7A, 0xBCBF, 0xBD05, 0xBD4B, 0xBD93, 0xBDDC, 0xBE25, \n        0xBE6F, 0xBEBB, 0xBF07, 0xBF54, 0xBFA2, 0xBFF1, 0xC040, 0xC091, \n        0xC0E2, 0xC135, 0xC188, 0xC1DC, 0xC231, 0xC287, 0xC2DE, 0xC336, \n        0xC38F, 0xC3E8, 0xC443, 0xC49E, 0xC4FA, 0xC557, 0xC5B5, 0xC613, \n        0xC673, 0xC6D3, 0xC735, 0xC797, 0xC7FA, 0xC85E, 0xC8C2, 0xC928, \n        0xC98E, 0xC9F5, 0xCA5D, 0xCAC6, 0xCB2F, 0xCB9A, 0xCC05, 0xCC71, \n        0xCCDD, 0xCD4B, 0xCDB9, 0xCE28, 0xCE98, 0xCF09, 0xCF7A, 0xCFEC, \n        0xD05F, 0xD0D3, 0xD147, 0xD1BC, 0xD232, 0xD2A8, 0xD320, 0xD398, \n        0xD410, 0xD48A, 0xD504, 0xD57E, 0xD5FA, 0xD676, 0xD6F3, 0xD770, \n        0xD7EE, 0xD86D, 0xD8EC, 0xD96C, 0xD9ED, 0xDA6E, 0xDAF0, 0xDB72, \n        0xDBF5, 0xDC79, 0xDCFD, 0xDD81, 0xDE07, 0xDE8D, 0xDF13, 0xDF9A, \n        0xE021, 0xE0A9, 0xE132, 0xE1BB, 0xE244, 0xE2CE, 0xE359, 0xE3E4, \n        0xE46F, 0xE4FB, 0xE587, 0xE614, 0xE6A1, 0xE72E, 0xE7BC, 0xE84B, \n        0xE8DA, 0xE969, 0xE9F8, 0xEA88, 0xEB18, 0xEBA9, 0xEC3A, 0xECCB, \n        0xED5D, 0xEDEF, 0xEE81, 0xEF14, 0xEFA6, 0xF039, 0xF0CD, 0xF160, \n        0xF1F4, 0xF288, 0xF31C, 0xF3B1, 0xF446, 0xF4DB, 0xF570, 0xF605, \n        0xF69A, 0xF730, 0xF7C6, 0xF85C, 0xF8F2, 0xF988, 0xFA1E, 0xFAB4, \n        0xFB4B, 0xFBE1, 0xFC78, 0xFD0F, 0xFDA5, 0xFE3C, 0xFED3, 0xFF6A, \n// Waveform 6:\n        0x0000, 0x00FD, 0x01FA, 0x02F7, 0x03F4, 0x04F1, 0x05EE, 0x06EB, \n        0x07E7, 0x08E3, 0x09DF, 0x0ADA, 0x0BD6, 0x0CD0, 0x0DCA, 0x0EC4, \n        0x0FBD, 0x10B6, 0x11AE, 0x12A5, 0x139C, 0x1492, 0x1588, 0x167C, \n        0x1770, 0x1863, 0x1956, 0x1A47, 0x1B37, 0x1C27, 0x1D15, 0x1E03, \n        0x1EEF, 0x1FDB, 0x20C5, 0x21AE, 0x2296, 0x237D, 0x2463, 0x2547, \n        0x262A, 0x270C, 0x27EC, 0x28CB, 0x29A9, 0x2A85, 0x2B60, 0x2C3A, \n        0x2D11, 0x2DE8, 0x2EBC, 0x2F90, 0x3061, 0x3131, 0x31FF, 0x32CC, \n        0x3397, 0x3460, 0x3528, 0x35ED, 0x36B1, 0x3773, 0x3833, 0x38F1, \n        0x39AE, 0x3A68, 0x3B21, 0x3BD8, 0x3C8C, 0x3D3F, 0x3DEF, 0x3E9E, \n        0x3F4B, 0x3FF5, 0x409E, 0x4144, 0x41E8, 0x428A, 0x432A, 0x43C8, \n        0x4464, 0x44FD, 0x4594, 0x4629, 0x46BC, 0x474C, 0x47DB, 0x4867, \n        0x48F0, 0x4978, 0x49FD, 0x4A80, 0x4B00, 0x4B7E, 0x4BFA, 0x4C74, \n        0x4CEB, 0x4D60, 0x4DD2, 0x4E42, 0x4EB0, 0x4F1B, 0x4F84, 0x4FEA, \n        0x504E, 0x50B0, 0x510F, 0x516C, 0x51C6, 0x521E, 0x5274, 0x52C7, \n        0x5318, 0x5366, 0x53B2, 0x53FC, 0x5443, 0x5488, 0x54CA, 0x550A, \n        0x5548, 0x5583, 0x55BC, 0x55F2, 0x5626, 0x5658, 0x5687, 0x56B4, \n        0x56DE, 0x5706, 0x572C, 0x5750, 0x5771, 0x5790, 0x57AC, 0x57C6, \n        0x57DE, 0x57F4, 0x5807, 0x5819, 0x5827, 0x5834, 0x583F, 0x5847, \n        0x584D, 0x5851, 0x5852, 0x5852, 0x584F, 0x584B, 0x5844, 0x583B, \n        0x5830, 0x5823, 0x5814, 0x5803, 0x57EF, 0x57DA, 0x57C3, 0x57AA, \n        0x578F, 0x5772, 0x5753, 0x5733, 0x5710, 0x56EC, 0x56C5, 0x569D, \n        0x5673, 0x5648, 0x561B, 0x55EB, 0x55BB, 0x5588, 0x5554, 0x551F, \n        0x54E7, 0x54AE, 0x5474, 0x5438, 0x53FA, 0x53BB, 0x537B, 0x5339, \n        0x52F5, 0x52B1, 0x526A, 0x5223, 0x51DA, 0x5190, 0x5144, 0x50F8, \n        0x50AA, 0x505B, 0x500A, 0x4FB9, 0x4F66, 0x4F12, 0x4EBE, 0x4E68, \n        0x4E11, 0x4DB9, 0x4D60, 0x4D06, 0x4CAB, 0x4C50, 0x4BF3, 0x4B96, \n        0x4B38, 0x4AD9, 0x4A79, 0x4A18, 0x49B7, 0x4955, 0x48F2, 0x488F, \n        0x482B, 0x47C6, 0x4761, 0x46FB, 0x4695, 0x462E, 0x45C7, 0x455F, \n        0x44F7, 0x448F, 0x4426, 0x43BD, 0x4353, 0x42E9, 0x427F, 0x4215, \n        0x41AA, 0x413F, 0x40D4, 0x4069, 0x3FFE, 0x3F92, 0x3F27, 0x3EBB, \n        0x3E4F, 0x3DE3, 0x3D78, 0x3D0C, 0x3CA0, 0x3C35, 0x3BC9, 0x3B5E, \n        0x3AF2, 0x3A87, 0x3A1C, 0x39B1, 0x3947, 0x38DC, 0x3872, 0x3808, \n        0x379F, 0x3735, 0x36CC, 0x3664, 0x35FB, 0x3594, 0x352C, 0x34C5, \n        0x345E, 0x33F8, 0x3392, 0x332D, 0x32C8, 0x3264, 0x3200, 0x319D, \n        0x313A, 0x30D8, 0x3076, 0x3015, 0x2FB5, 0x2F55, 0x2EF6, 0x2E98, \n        0x2E3A, 0x2DDD, 0x2D80, 0x2D25, 0x2CCA, 0x2C6F, 0x2C16, 0x2BBD, \n        0x2B65, 0x2B0D, 0x2AB7, 0x2A61, 0x2A0C, 0x29B8, 0x2965, 0x2912, \n        0x28C0, 0x2870, 0x2820, 0x27D0, 0x2782, 0x2734, 0x26E8, 0x269C, \n        0x2651, 0x2607, 0x25BE, 0x2576, 0x252E, 0x24E8, 0x24A2, 0x245E, \n        0x241A, 0x23D7, 0x2395, 0x2354, 0x2314, 0x22D5, 0x2297, 0x2259, \n        0x221D, 0x21E2, 0x21A7, 0x216D, 0x2135, 0x20FD, 0x20C6, 0x2090, \n        0x205B, 0x2027, 0x1FF3, 0x1FC1, 0x1F90, 0x1F5F, 0x1F2F, 0x1F01, \n        0x1ED3, 0x1EA6, 0x1E7A, 0x1E4F, 0x1E24, 0x1DFB, 0x1DD2, 0x1DAB, \n        0x1D84, 0x1D5E, 0x1D39, 0x1D14, 0x1CF1, 0x1CCE, 0x1CAC, 0x1C8B, \n        0x1C6B, 0x1C4C, 0x1C2D, 0x1C0F, 0x1BF2, 0x1BD6, 0x1BBA, 0x1BA0, \n        0x1B86, 0x1B6C, 0x1B54, 0x1B3C, 0x1B25, 0x1B0E, 0x1AF8, 0x1AE3, \n        0x1ACF, 0x1ABB, 0x1AA8, 0x1A96, 0x1A84, 0x1A73, 0x1A62, 0x1A52, \n        0x1A43, 0x1A34, 0x1A26, 0x1A18, 0x1A0B, 0x19FE, 0x19F2, 0x19E7, \n        0x19DC, 0x19D1, 0x19C7, 0x19BE, 0x19B5, 0x19AC, 0x19A4, 0x199C, \n        0x1995, 0x198E, 0x1987, 0x1981, 0x197B, 0x1976, 0x1971, 0x196C, \n        0x1967, 0x1963, 0x1960, 0x195C, 0x1959, 0x1956, 0x1953, 0x1951, \n        0x194F, 0x194D, 0x194B, 0x1949, 0x1948, 0x1947, 0x1946, 0x1945, \n        0x1944, 0x1944, 0x1943, 0x1943, 0x1943, 0x1943, 0x1943, 0x1943, \n        0x1943, 0x1943, 0x1944, 0x1944, 0x1944, 0x1945, 0x1945, 0x1945, \n        0x1946, 0x1946, 0x1946, 0x1946, 0x1947, 0x1947, 0x1947, 0x1947, \n        0x1947, 0x1947, 0x1947, 0x1946, 0x1946, 0x1945, 0x1944, 0x1944, \n        0x1943, 0x1942, 0x1940, 0x193F, 0x193D, 0x193B, 0x1939, 0x1937, \n        0x1935, 0x1932, 0x1930, 0x192D, 0x192A, 0x1926, 0x1922, 0x191F, \n        0x191B, 0x1916, 0x1912, 0x190D, 0x1908, 0x1902, 0x18FD, 0x18F7, \n        0x18F1, 0x18EA, 0x18E4, 0x18DD, 0x18D5, 0x18CE, 0x18C6, 0x18BE, \n        0x18B5, 0x18AD, 0x18A4, 0x189A, 0x1891, 0x1887, 0x187D, 0x1872, \n        0x1867, 0x185C, 0x1851, 0x1845, 0x1839, 0x182D, 0x1820, 0x1813, \n        0x1806, 0x17F8, 0x17EB, 0x17DC, 0x17CE, 0x17BF, 0x17B0, 0x17A1, \n        0x1791, 0x1781, 0x1771, 0x1761, 0x1750, 0x173F, 0x172D, 0x171C, \n        0x170A, 0x16F7, 0x16E5, 0x16D2, 0x16BF, 0x16AC, 0x1698, 0x1684, \n        0x1670, 0x165C, 0x1647, 0x1632, 0x161D, 0x1608, 0x15F2, 0x15DD, \n        0x15C7, 0x15B0, 0x159A, 0x1583, 0x156D, 0x1555, 0x153E, 0x1527, \n        0x150F, 0x14F7, 0x14DF, 0x14C7, 0x14AF, 0x1496, 0x147E, 0x1465, \n        0x144C, 0x1433, 0x141A, 0x1400, 0x13E7, 0x13CD, 0x13B4, 0x139A, \n        0x1380, 0x1366, 0x134C, 0x1332, 0x1317, 0x12FD, 0x12E3, 0x12C8, \n        0x12AE, 0x1293, 0x1279, 0x125E, 0x1243, 0x1229, 0x120E, 0x11F3, \n        0x11D9, 0x11BE, 0x11A3, 0x1188, 0x116E, 0x1153, 0x1138, 0x111E, \n        0x1103, 0x10E9, 0x10CE, 0x10B4, 0x1099, 0x107F, 0x1065, 0x104B, \n        0x1031, 0x1017, 0x0FFD, 0x0FE3, 0x0FCA, 0x0FB0, 0x0F97, 0x0F7D, \n        0x0F64, 0x0F4B, 0x0F32, 0x0F19, 0x0F01, 0x0EE8, 0x0ED0, 0x0EB8, \n        0x0EA0, 0x0E88, 0x0E70, 0x0E58, 0x0E41, 0x0E2A, 0x0E13, 0x0DFC, \n        0x0DE6, 0x0DCF, 0x0DB9, 0x0DA3, 0x0D8D, 0x0D78, 0x0D62, 0x0D4D, \n        0x0D38, 0x0D24, 0x0D0F, 0x0CFB, 0x0CE7, 0x0CD3, 0x0CC0, 0x0CAD, \n        0x0C9A, 0x0C87, 0x0C74, 0x0C62, 0x0C50, 0x0C3E, 0x0C2D, 0x0C1B, \n        0x0C0A, 0x0BF9, 0x0BE9, 0x0BD9, 0x0BC9, 0x0BB9, 0x0BA9, 0x0B9A, \n        0x0B8B, 0x0B7D, 0x0B6E, 0x0B60, 0x0B52, 0x0B44, 0x0B37, 0x0B2A, \n        0x0B1D, 0x0B10, 0x0B04, 0x0AF8, 0x0AEC, 0x0AE1, 0x0AD6, 0x0ACA, \n        0x0AC0, 0x0AB5, 0x0AAB, 0x0AA1, 0x0A97, 0x0A8E, 0x0A84, 0x0A7B, \n        0x0A73, 0x0A6A, 0x0A62, 0x0A5A, 0x0A52, 0x0A4B, 0x0A43, 0x0A3C, \n        0x0A35, 0x0A2F, 0x0A28, 0x0A22, 0x0A1C, 0x0A16, 0x0A11, 0x0A0B, \n        0x0A06, 0x0A01, 0x09FC, 0x09F8, 0x09F4, 0x09EF, 0x09EB, 0x09E8, \n        0x09E4, 0x09E0, 0x09DD, 0x09DA, 0x09D7, 0x09D4, 0x09D2, 0x09CF, \n        0x09CD, 0x09CB, 0x09C8, 0x09C7, 0x09C5, 0x09C3, 0x09C1, 0x09C0, \n        0x09BF, 0x09BD, 0x09BC, 0x09BB, 0x09BA, 0x09BA, 0x09B9, 0x09B8, \n        0x09B8, 0x09B7, 0x09B7, 0x09B6, 0x09B6, 0x09B6, 0x09B5, 0x09B5, \n        0x09B5, 0x09B5, 0x09B5, 0x09B5, 0x09B5, 0x09B5, 0x09B5, 0x09B5, \n        0x09B5, 0x09B5, 0x09B5, 0x09B5, 0x09B5, 0x09B5, 0x09B5, 0x09B5, \n        0x09B5, 0x09B4, 0x09B4, 0x09B4, 0x09B4, 0x09B4, 0x09B3, 0x09B3, \n        0x09B2, 0x09B2, 0x09B1, 0x09B0, 0x09B0, 0x09AF, 0x09AE, 0x09AD, \n        0x09AC, 0x09AA, 0x09A9, 0x09A8, 0x09A6, 0x09A5, 0x09A3, 0x09A1, \n        0x099F, 0x099D, 0x099B, 0x0998, 0x0996, 0x0993, 0x0990, 0x098E, \n        0x098B, 0x0987, 0x0984, 0x0981, 0x097D, 0x0979, 0x0975, 0x0971, \n        0x096D, 0x0969, 0x0964, 0x095F, 0x095A, 0x0955, 0x0950, 0x094B, \n        0x0945, 0x093F, 0x0939, 0x0933, 0x092D, 0x0927, 0x0920, 0x0919, \n        0x0912, 0x090B, 0x0904, 0x08FC, 0x08F4, 0x08ED, 0x08E5, 0x08DC, \n        0x08D4, 0x08CB, 0x08C3, 0x08BA, 0x08B0, 0x08A7, 0x089E, 0x0894, \n        0x088A, 0x0880, 0x0876, 0x086B, 0x0861, 0x0856, 0x084B, 0x0840, \n        0x0835, 0x082A, 0x081E, 0x0812, 0x0806, 0x07FA, 0x07EE, 0x07E2, \n        0x07D5, 0x07C9, 0x07BC, 0x07AF, 0x07A2, 0x0794, 0x0787, 0x0779, \n        0x076C, 0x075E, 0x0750, 0x0742, 0x0734, 0x0725, 0x0717, 0x0708, \n        0x06FA, 0x06EB, 0x06DC, 0x06CD, 0x06BE, 0x06AE, 0x069F, 0x0690, \n        0x0680, 0x0670, 0x0661, 0x0651, 0x0641, 0x0631, 0x0621, 0x0611, \n        0x0601, 0x05F1, 0x05E1, 0x05D0, 0x05C0, 0x05AF, 0x059F, 0x058E, \n        0x057E, 0x056D, 0x055D, 0x054C, 0x053C, 0x052B, 0x051A, 0x0509, \n        0x04F9, 0x04E8, 0x04D7, 0x04C7, 0x04B6, 0x04A5, 0x0495, 0x0484, \n        0x0473, 0x0463, 0x0452, 0x0442, 0x0431, 0x0421, 0x0410, 0x0400, \n        0x03F0, 0x03DF, 0x03CF, 0x03BF, 0x03AF, 0x039F, 0x038F, 0x037F, \n        0x036F, 0x0360, 0x0350, 0x0341, 0x0331, 0x0322, 0x0313, 0x0303, \n        0x02F4, 0x02E5, 0x02D7, 0x02C8, 0x02B9, 0x02AB, 0x029C, 0x028E, \n        0x0280, 0x0272, 0x0264, 0x0256, 0x0249, 0x023B, 0x022E, 0x0221, \n        0x0214, 0x0207, 0x01FA, 0x01EE, 0x01E1, 0x01D5, 0x01C9, 0x01BD, \n        0x01B1, 0x01A5, 0x019A, 0x018E, 0x0183, 0x0178, 0x016D, 0x0162, \n        0x0158, 0x014E, 0x0143, 0x0139, 0x0130, 0x0126, 0x011C, 0x0113, \n        0x010A, 0x0101, 0x00F8, 0x00EF, 0x00E7, 0x00DF, 0x00D7, 0x00CF, \n        0x00C7, 0x00BF, 0x00B8, 0x00B0, 0x00A9, 0x00A2, 0x009C, 0x0095, \n        0x008F, 0x0089, 0x0082, 0x007D, 0x0077, 0x0071, 0x006C, 0x0067, \n        0x0061, 0x005D, 0x0058, 0x0053, 0x004F, 0x004A, 0x0046, 0x0042, \n        0x003E, 0x003B, 0x0037, 0x0034, 0x0030, 0x002D, 0x002A, 0x0027, \n        0x0024, 0x0022, 0x001F, 0x001D, 0x001B, 0x0018, 0x0016, 0x0014, \n        0x0013, 0x0011, 0x000F, 0x000E, 0x000C, 0x000B, 0x000A, 0x0009, \n        0x0008, 0x0007, 0x0006, 0x0005, 0x0004, 0x0004, 0x0003, 0x0002, \n        0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, \n        0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \n        0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \n        0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFE, \n        0xFFFE, 0xFFFE, 0xFFFD, 0xFFFC, 0xFFFC, 0xFFFB, 0xFFFA, 0xFFF9, \n        0xFFF8, 0xFFF7, 0xFFF6, 0xFFF5, 0xFFF4, 0xFFF2, 0xFFF1, 0xFFEF, \n        0xFFED, 0xFFEC, 0xFFEA, 0xFFE8, 0xFFE5, 0xFFE3, 0xFFE1, 0xFFDE, \n        0xFFDC, 0xFFD9, 0xFFD6, 0xFFD3, 0xFFD0, 0xFFCC, 0xFFC9, 0xFFC5, \n        0xFFC2, 0xFFBE, 0xFFBA, 0xFFB6, 0xFFB1, 0xFFAD, 0xFFA8, 0xFFA3, \n        0xFF9F, 0xFF99, 0xFF94, 0xFF8F, 0xFF89, 0xFF83, 0xFF7E, 0xFF78, \n        0xFF71, 0xFF6B, 0xFF64, 0xFF5E, 0xFF57, 0xFF50, 0xFF48, 0xFF41, \n        0xFF39, 0xFF31, 0xFF2A, 0xFF21, 0xFF19, 0xFF11, 0xFF08, 0xFEFF, \n        0xFEF6, 0xFEED, 0xFEE4, 0xFEDA, 0xFED0, 0xFEC7, 0xFEBD, 0xFEB2, \n        0xFEA8, 0xFE9E, 0xFE93, 0xFE88, 0xFE7D, 0xFE72, 0xFE66, 0xFE5B, \n        0xFE4F, 0xFE43, 0xFE37, 0xFE2B, 0xFE1F, 0xFE13, 0xFE06, 0xFDF9, \n        0xFDEC, 0xFDDF, 0xFDD2, 0xFDC5, 0xFDB7, 0xFDAA, 0xFD9C, 0xFD8E, \n        0xFD80, 0xFD72, 0xFD64, 0xFD55, 0xFD47, 0xFD38, 0xFD29, 0xFD1B, \n        0xFD0C, 0xFCFD, 0xFCED, 0xFCDE, 0xFCCF, 0xFCBF, 0xFCB0, 0xFCA0, \n        0xFC91, 0xFC81, 0xFC71, 0xFC61, 0xFC51, 0xFC41, 0xFC31, 0xFC21, \n        0xFC10, 0xFC00, 0xFBF0, 0xFBDF, 0xFBCF, 0xFBBE, 0xFBAE, 0xFB9D, \n        0xFB8D, 0xFB7C, 0xFB6B, 0xFB5B, 0xFB4A, 0xFB39, 0xFB29, 0xFB18, \n        0xFB07, 0xFAF7, 0xFAE6, 0xFAD5, 0xFAC5, 0xFAB4, 0xFAA3, 0xFA93, \n        0xFA82, 0xFA72, 0xFA61, 0xFA51, 0xFA40, 0xFA30, 0xFA1F, 0xFA0F, \n        0xF9FF, 0xF9EF, 0xF9DF, 0xF9CF, 0xF9BF, 0xF9AF, 0xF99F, 0xF990, \n        0xF980, 0xF970, 0xF961, 0xF952, 0xF942, 0xF933, 0xF924, 0xF915, \n        0xF906, 0xF8F8, 0xF8E9, 0xF8DB, 0xF8CC, 0xF8BE, 0xF8B0, 0xF8A2, \n        0xF894, 0xF887, 0xF879, 0xF86C, 0xF85E, 0xF851, 0xF844, 0xF837, \n        0xF82B, 0xF81E, 0xF812, 0xF806, 0xF7FA, 0xF7EE, 0xF7E2, 0xF7D6, \n        0xF7CB, 0xF7C0, 0xF7B5, 0xF7AA, 0xF79F, 0xF795, 0xF78A, 0xF780, \n        0xF776, 0xF76C, 0xF762, 0xF759, 0xF750, 0xF746, 0xF73D, 0xF735, \n        0xF72C, 0xF724, 0xF71B, 0xF713, 0xF70C, 0xF704, 0xF6FC, 0xF6F5, \n        0xF6EE, 0xF6E7, 0xF6E0, 0xF6D9, 0xF6D3, 0xF6CD, 0xF6C7, 0xF6C1, \n        0xF6BB, 0xF6B5, 0xF6B0, 0xF6AB, 0xF6A6, 0xF6A1, 0xF69C, 0xF697, \n        0xF693, 0xF68F, 0xF68B, 0xF687, 0xF683, 0xF67F, 0xF67C, 0xF679, \n        0xF675, 0xF672, 0xF670, 0xF66D, 0xF66A, 0xF668, 0xF665, 0xF663, \n        0xF661, 0xF65F, 0xF65D, 0xF65B, 0xF65A, 0xF658, 0xF657, 0xF656, \n        0xF654, 0xF653, 0xF652, 0xF651, 0xF650, 0xF650, 0xF64F, 0xF64E, \n        0xF64E, 0xF64D, 0xF64D, 0xF64C, 0xF64C, 0xF64C, 0xF64C, 0xF64C, \n        0xF64B, 0xF64B, 0xF64B, 0xF64B, 0xF64B, 0xF64B, 0xF64B, 0xF64B, \n        0xF64B, 0xF64B, 0xF64B, 0xF64B, 0xF64B, 0xF64B, 0xF64B, 0xF64B, \n        0xF64B, 0xF64B, 0xF64B, 0xF64A, 0xF64A, 0xF64A, 0xF649, 0xF649, \n        0xF648, 0xF648, 0xF647, 0xF646, 0xF646, 0xF645, 0xF644, 0xF643, \n        0xF641, 0xF640, 0xF63F, 0xF63D, 0xF63B, 0xF639, 0xF637, 0xF635, \n        0xF633, 0xF631, 0xF62E, 0xF62C, 0xF629, 0xF626, 0xF623, 0xF620, \n        0xF61C, 0xF618, 0xF615, 0xF611, 0xF60C, 0xF608, 0xF604, 0xF5FF, \n        0xF5FA, 0xF5F5, 0xF5EF, 0xF5EA, 0xF5E4, 0xF5DE, 0xF5D8, 0xF5D1, \n        0xF5CB, 0xF5C4, 0xF5BD, 0xF5B5, 0xF5AE, 0xF5A6, 0xF59E, 0xF596, \n        0xF58D, 0xF585, 0xF57C, 0xF572, 0xF569, 0xF55F, 0xF555, 0xF54B, \n        0xF540, 0xF536, 0xF52B, 0xF51F, 0xF514, 0xF508, 0xF4FC, 0xF4F0, \n        0xF4E3, 0xF4D6, 0xF4C9, 0xF4BC, 0xF4AE, 0xF4A0, 0xF492, 0xF483, \n        0xF475, 0xF466, 0xF457, 0xF447, 0xF437, 0xF427, 0xF417, 0xF407, \n        0xF3F6, 0xF3E5, 0xF3D4, 0xF3C2, 0xF3B0, 0xF39E, 0xF38C, 0xF379, \n        0xF366, 0xF353, 0xF340, 0xF32D, 0xF319, 0xF305, 0xF2F1, 0xF2DC, \n        0xF2C8, 0xF2B3, 0xF29E, 0xF288, 0xF273, 0xF25D, 0xF247, 0xF231, \n        0xF21A, 0xF204, 0xF1ED, 0xF1D6, 0xF1BF, 0xF1A8, 0xF190, 0xF178, \n        0xF160, 0xF148, 0xF130, 0xF118, 0xF0FF, 0xF0E7, 0xF0CE, 0xF0B5, \n        0xF09C, 0xF083, 0xF06A, 0xF050, 0xF037, 0xF01D, 0xF003, 0xEFE9, \n        0xEFCF, 0xEFB5, 0xEF9B, 0xEF81, 0xEF67, 0xEF4C, 0xEF32, 0xEF17, \n        0xEEFD, 0xEEE2, 0xEEC8, 0xEEAD, 0xEE92, 0xEE78, 0xEE5D, 0xEE42, \n        0xEE27, 0xEE0D, 0xEDF2, 0xEDD7, 0xEDBD, 0xEDA2, 0xED87, 0xED6D, \n        0xED52, 0xED38, 0xED1D, 0xED03, 0xECE9, 0xECCE, 0xECB4, 0xEC9A, \n        0xEC80, 0xEC66, 0xEC4C, 0xEC33, 0xEC19, 0xEC00, 0xEBE6, 0xEBCD, \n        0xEBB4, 0xEB9B, 0xEB82, 0xEB6A, 0xEB51, 0xEB39, 0xEB21, 0xEB09, \n        0xEAF1, 0xEAD9, 0xEAC2, 0xEAAB, 0xEA93, 0xEA7D, 0xEA66, 0xEA50, \n        0xEA39, 0xEA23, 0xEA0E, 0xE9F8, 0xE9E3, 0xE9CE, 0xE9B9, 0xE9A4, \n        0xE990, 0xE97C, 0xE968, 0xE954, 0xE941, 0xE92E, 0xE91B, 0xE909, \n        0xE8F6, 0xE8E4, 0xE8D3, 0xE8C1, 0xE8B0, 0xE8A0, 0xE88F, 0xE87F, \n        0xE86F, 0xE85F, 0xE850, 0xE841, 0xE832, 0xE824, 0xE815, 0xE808, \n        0xE7FA, 0xE7ED, 0xE7E0, 0xE7D3, 0xE7C7, 0xE7BB, 0xE7AF, 0xE7A4, \n        0xE799, 0xE78E, 0xE783, 0xE779, 0xE76F, 0xE766, 0xE75C, 0xE753, \n        0xE74B, 0xE742, 0xE73A, 0xE732, 0xE72B, 0xE723, 0xE71C, 0xE716, \n        0xE70F, 0xE709, 0xE703, 0xE6FE, 0xE6F8, 0xE6F3, 0xE6EE, 0xE6EA, \n        0xE6E5, 0xE6E1, 0xE6DE, 0xE6DA, 0xE6D6, 0xE6D3, 0xE6D0, 0xE6CE, \n        0xE6CB, 0xE6C9, 0xE6C7, 0xE6C5, 0xE6C3, 0xE6C1, 0xE6C0, 0xE6BE, \n        0xE6BD, 0xE6BC, 0xE6BC, 0xE6BB, 0xE6BA, 0xE6BA, 0xE6B9, 0xE6B9, \n        0xE6B9, 0xE6B9, 0xE6B9, 0xE6B9, 0xE6B9, 0xE6BA, 0xE6BA, 0xE6BA, \n        0xE6BA, 0xE6BB, 0xE6BB, 0xE6BB, 0xE6BC, 0xE6BC, 0xE6BC, 0xE6BD, \n        0xE6BD, 0xE6BD, 0xE6BD, 0xE6BD, 0xE6BD, 0xE6BD, 0xE6BD, 0xE6BC, \n        0xE6BC, 0xE6BB, 0xE6BA, 0xE6B9, 0xE6B8, 0xE6B7, 0xE6B5, 0xE6B3, \n        0xE6B1, 0xE6AF, 0xE6AD, 0xE6AA, 0xE6A7, 0xE6A4, 0xE6A0, 0xE69D, \n        0xE699, 0xE694, 0xE68F, 0xE68A, 0xE685, 0xE67F, 0xE679, 0xE672, \n        0xE66B, 0xE664, 0xE65C, 0xE654, 0xE64B, 0xE642, 0xE639, 0xE62F, \n        0xE624, 0xE619, 0xE60E, 0xE602, 0xE5F5, 0xE5E8, 0xE5DA, 0xE5CC, \n        0xE5BD, 0xE5AE, 0xE59E, 0xE58D, 0xE57C, 0xE56A, 0xE558, 0xE545, \n        0xE531, 0xE51D, 0xE508, 0xE4F2, 0xE4DB, 0xE4C4, 0xE4AC, 0xE494, \n        0xE47B, 0xE460, 0xE446, 0xE42A, 0xE40E, 0xE3F1, 0xE3D3, 0xE3B4, \n        0xE395, 0xE375, 0xE354, 0xE332, 0xE30F, 0xE2EC, 0xE2C7, 0xE2A2, \n        0xE27C, 0xE255, 0xE22E, 0xE205, 0xE1DC, 0xE1B1, 0xE186, 0xE15A, \n        0xE12D, 0xE0FF, 0xE0D1, 0xE0A1, 0xE070, 0xE03F, 0xE00D, 0xDFD9, \n        0xDFA5, 0xDF70, 0xDF3A, 0xDF03, 0xDECB, 0xDE93, 0xDE59, 0xDE1E, \n        0xDDE3, 0xDDA7, 0xDD69, 0xDD2B, 0xDCEC, 0xDCAC, 0xDC6B, 0xDC29, \n        0xDBE6, 0xDBA2, 0xDB5E, 0xDB18, 0xDAD2, 0xDA8A, 0xDA42, 0xD9F9, \n        0xD9AF, 0xD964, 0xD918, 0xD8CC, 0xD87E, 0xD830, 0xD7E1, 0xD791, \n        0xD740, 0xD6EE, 0xD69B, 0xD648, 0xD5F4, 0xD59F, 0xD549, 0xD4F3, \n        0xD49B, 0xD443, 0xD3EA, 0xD391, 0xD337, 0xD2DC, 0xD280, 0xD223, \n        0xD1C6, 0xD169, 0xD10A, 0xD0AB, 0xD04B, 0xCFEB, 0xCF8A, 0xCF28, \n        0xCEC6, 0xCE64, 0xCE00, 0xCD9C, 0xCD38, 0xCCD3, 0xCC6E, 0xCC08, \n        0xCBA2, 0xCB3B, 0xCAD4, 0xCA6D, 0xCA05, 0xC99C, 0xC934, 0xC8CB, \n        0xC861, 0xC7F8, 0xC78E, 0xC724, 0xC6B9, 0xC64F, 0xC5E4, 0xC579, \n        0xC50E, 0xC4A2, 0xC437, 0xC3CB, 0xC360, 0xC2F4, 0xC288, 0xC21D, \n        0xC1B1, 0xC145, 0xC0DA, 0xC06E, 0xC003, 0xBF97, 0xBF2C, 0xBEC1, \n        0xBE56, 0xBDEB, 0xBD81, 0xBD17, 0xBCAD, 0xBC43, 0xBBDA, 0xBB71, \n        0xBB09, 0xBAA1, 0xBA39, 0xB9D2, 0xB96B, 0xB905, 0xB89F, 0xB83A, \n        0xB7D5, 0xB771, 0xB70E, 0xB6AB, 0xB649, 0xB5E8, 0xB587, 0xB528, \n        0xB4C9, 0xB46A, 0xB40D, 0xB3B0, 0xB355, 0xB2FA, 0xB2A0, 0xB247, \n        0xB1EF, 0xB198, 0xB142, 0xB0EE, 0xB09A, 0xB047, 0xAFF6, 0xAFA5, \n        0xAF56, 0xAF08, 0xAEBC, 0xAE70, 0xAE26, 0xADDD, 0xAD96, 0xAD50, \n        0xAD0B, 0xACC7, 0xAC85, 0xAC45, 0xAC06, 0xABC8, 0xAB8C, 0xAB52, \n        0xAB19, 0xAAE2, 0xAAAC, 0xAA78, 0xAA45, 0xAA15, 0xA9E6, 0xA9B8, \n        0xA98D, 0xA963, 0xA93B, 0xA914, 0xA8F0, 0xA8CD, 0xA8AD, 0xA88E, \n        0xA871, 0xA856, 0xA83D, 0xA826, 0xA811, 0xA7FD, 0xA7EC, 0xA7DD, \n        0xA7D0, 0xA7C5, 0xA7BC, 0xA7B5, 0xA7B1, 0xA7AE, 0xA7AE, 0xA7AF, \n        0xA7B3, 0xA7B9, 0xA7C1, 0xA7CC, 0xA7D9, 0xA7E7, 0xA7F9, 0xA80C, \n        0xA822, 0xA83A, 0xA854, 0xA870, 0xA88F, 0xA8B0, 0xA8D4, 0xA8FA, \n        0xA922, 0xA94C, 0xA979, 0xA9A8, 0xA9DA, 0xAA0E, 0xAA44, 0xAA7D, \n        0xAAB8, 0xAAF6, 0xAB36, 0xAB78, 0xABBD, 0xAC04, 0xAC4D, 0xAC99, \n        0xACE8, 0xAD39, 0xAD8C, 0xADE1, 0xAE39, 0xAE94, 0xAEF1, 0xAF50, \n        0xAFB2, 0xB016, 0xB07C, 0xB0E5, 0xB150, 0xB1BE, 0xB22E, 0xB2A0, \n        0xB315, 0xB38C, 0xB406, 0xB482, 0xB500, 0xB580, 0xB603, 0xB688, \n        0xB70F, 0xB799, 0xB825, 0xB8B3, 0xB944, 0xB9D7, 0xBA6C, 0xBB03, \n        0xBB9C, 0xBC38, 0xBCD6, 0xBD76, 0xBE18, 0xBEBC, 0xBF62, 0xC00B, \n        0xC0B5, 0xC162, 0xC210, 0xC2C1, 0xC374, 0xC428, 0xC4DF, 0xC597, \n        0xC652, 0xC70E, 0xC7CD, 0xC88D, 0xC94F, 0xCA13, 0xCAD8, 0xCBA0, \n        0xCC69, 0xCD34, 0xCE00, 0xCECF, 0xCF9F, 0xD070, 0xD143, 0xD218, \n        0xD2EE, 0xD3C6, 0xD4A0, 0xD57A, 0xD657, 0xD734, 0xD813, 0xD8F4, \n        0xD9D6, 0xDAB9, 0xDB9D, 0xDC83, 0xDD6A, 0xDE52, 0xDF3B, 0xE025, \n        0xE110, 0xE1FD, 0xE2EA, 0xE3D9, 0xE4C8, 0xE5B9, 0xE6AA, 0xE79C, \n        0xE88F, 0xE983, 0xEA78, 0xEB6D, 0xEC64, 0xED5A, 0xEE52, 0xEF4A, \n        0xF042, 0xF13C, 0xF235, 0xF330, 0xF42A, 0xF525, 0xF621, 0xF71C, \n        0xF819, 0xF915, 0xFA11, 0xFB0E, 0xFC0B, 0xFD08, 0xFE06, 0xFF03, \n// Waveform 7:\n        0x0000, 0x0068, 0x00D1, 0x0139, 0x01A2, 0x020A, 0x0273, 0x02DB, \n        0x0344, 0x03AC, 0x0415, 0x047D, 0x04E5, 0x054E, 0x05B6, 0x061E, \n        0x0687, 0x06EF, 0x0757, 0x07BF, 0x0827, 0x088F, 0x08F7, 0x095F, \n        0x09C7, 0x0A2F, 0x0A97, 0x0AFE, 0x0B66, 0x0BCD, 0x0C35, 0x0C9C, \n        0x0D04, 0x0D6B, 0x0DD2, 0x0E39, 0x0EA0, 0x0F07, 0x0F6E, 0x0FD5, \n        0x103B, 0x10A2, 0x1108, 0x116F, 0x11D5, 0x123B, 0x12A1, 0x1307, \n        0x136D, 0x13D2, 0x1438, 0x149D, 0x1503, 0x1568, 0x15CD, 0x1632, \n        0x1697, 0x16FB, 0x1760, 0x17C4, 0x1828, 0x188C, 0x18F0, 0x1954, \n        0x19B8, 0x1A1B, 0x1A7F, 0x1AE2, 0x1B45, 0x1BA8, 0x1C0A, 0x1C6D, \n        0x1CCF, 0x1D31, 0x1D93, 0x1DF5, 0x1E57, 0x1EB8, 0x1F1A, 0x1F7B, \n        0x1FDC, 0x203C, 0x209D, 0x20FD, 0x215D, 0x21BD, 0x221D, 0x227D, \n        0x22DC, 0x233B, 0x239A, 0x23F9, 0x2457, 0x24B5, 0x2513, 0x2571, \n        0x25CF, 0x262C, 0x2689, 0x26E6, 0x2743, 0x279F, 0x27FC, 0x2858, \n        0x28B3, 0x290F, 0x296A, 0x29C5, 0x2A20, 0x2A7A, 0x2AD5, 0x2B2F, \n        0x2B88, 0x2BE2, 0x2C3B, 0x2C94, 0x2CED, 0x2D45, 0x2D9D, 0x2DF5, \n        0x2E4D, 0x2EA4, 0x2EFB, 0x2F52, 0x2FA9, 0x2FFF, 0x3055, 0x30AB, \n        0x3100, 0x3155, 0x31AA, 0x31FF, 0x3253, 0x32A7, 0x32FA, 0x334E, \n        0x33A1, 0x33F4, 0x3446, 0x3498, 0x34EA, 0x353B, 0x358D, 0x35DE, \n        0x362E, 0x367E, 0x36CE, 0x371E, 0x376D, 0x37BC, 0x380B, 0x3859, \n        0x38A7, 0x38F5, 0x3942, 0x398F, 0x39DC, 0x3A28, 0x3A74, 0x3AC0, \n        0x3B0B, 0x3B56, 0x3BA1, 0x3BEB, 0x3C35, 0x3C7F, 0x3CC8, 0x3D11, \n        0x3D59, 0x3DA1, 0x3DE9, 0x3E31, 0x3E78, 0x3EBF, 0x3F05, 0x3F4B, \n        0x3F91, 0x3FD6, 0x401B, 0x405F, 0x40A4, 0x40E7, 0x412B, 0x416E, \n        0x41B1, 0x41F3, 0x4235, 0x4277, 0x42B8, 0x42F9, 0x4339, 0x4379, \n        0x43B9, 0x43F8, 0x4437, 0x4475, 0x44B3, 0x44F1, 0x452F, 0x456B, \n        0x45A8, 0x45E4, 0x4620, 0x465B, 0x4696, 0x46D1, 0x470B, 0x4745, \n        0x477E, 0x47B7, 0x47F0, 0x4828, 0x4860, 0x4897, 0x48CE, 0x4904, \n        0x493A, 0x4970, 0x49A5, 0x49DA, 0x4A0F, 0x4A43, 0x4A76, 0x4AAA, \n        0x4ADD, 0x4B0F, 0x4B41, 0x4B72, 0x4BA4, 0x4BD4, 0x4C05, 0x4C35, \n        0x4C64, 0x4C93, 0x4CC2, 0x4CF0, 0x4D1E, 0x4D4B, 0x4D78, 0x4DA4, \n        0x4DD0, 0x4DFC, 0x4E27, 0x4E52, 0x4E7C, 0x4EA6, 0x4ED0, 0x4EF9, \n        0x4F22, 0x4F4A, 0x4F72, 0x4F99, 0x4FC0, 0x4FE6, 0x500C, 0x5032, \n        0x5057, 0x507C, 0x50A0, 0x50C4, 0x50E8, 0x510B, 0x512D, 0x514F, \n        0x5171, 0x5192, 0x51B3, 0x51D3, 0x51F3, 0x5213, 0x5232, 0x5251, \n        0x526F, 0x528D, 0x52AA, 0x52C7, 0x52E3, 0x52FF, 0x531B, 0x5336, \n        0x5351, 0x536B, 0x5385, 0x539E, 0x53B7, 0x53D0, 0x53E8, 0x53FF, \n        0x5416, 0x542D, 0x5443, 0x5459, 0x546F, 0x5484, 0x5498, 0x54AC, \n        0x54C0, 0x54D3, 0x54E6, 0x54F9, 0x550A, 0x551C, 0x552D, 0x553E, \n        0x554E, 0x555E, 0x556D, 0x557C, 0x558A, 0x5598, 0x55A6, 0x55B3, \n        0x55C0, 0x55CC, 0x55D8, 0x55E3, 0x55EE, 0x55F9, 0x5603, 0x560C, \n        0x5616, 0x561F, 0x5627, 0x562F, 0x5636, 0x563E, 0x5644, 0x564A, \n        0x5650, 0x5656, 0x565B, 0x565F, 0x5663, 0x5667, 0x566A, 0x566D, \n        0x5670, 0x5672, 0x5673, 0x5674, 0x5675, 0x5676, 0x5676, 0x5675, \n        0x5674, 0x5673, 0x5671, 0x566F, 0x566C, 0x5669, 0x5666, 0x5662, \n        0x565E, 0x5659, 0x5654, 0x564F, 0x5649, 0x5643, 0x563C, 0x5635, \n        0x562E, 0x5626, 0x561E, 0x5615, 0x560C, 0x5603, 0x55F9, 0x55EF, \n        0x55E4, 0x55D9, 0x55CE, 0x55C2, 0x55B6, 0x55A9, 0x559C, 0x558F, \n        0x5581, 0x5573, 0x5564, 0x5556, 0x5546, 0x5537, 0x5527, 0x5516, \n        0x5505, 0x54F4, 0x54E3, 0x54D1, 0x54BF, 0x54AC, 0x5499, 0x5486, \n        0x5472, 0x545E, 0x5449, 0x5435, 0x541F, 0x540A, 0x53F4, 0x53DE, \n        0x53C7, 0x53B0, 0x5399, 0x5381, 0x5369, 0x5351, 0x5338, 0x531F, \n        0x5305, 0x52EC, 0x52D2, 0x52B7, 0x529C, 0x5281, 0x5266, 0x524A, \n        0x522E, 0x5211, 0x51F5, 0x51D7, 0x51BA, 0x519C, 0x517E, 0x5160, \n        0x5141, 0x5122, 0x5103, 0x50E3, 0x50C3, 0x50A3, 0x5082, 0x5061, \n        0x5040, 0x501E, 0x4FFC, 0x4FDA, 0x4FB8, 0x4F95, 0x4F72, 0x4F4F, \n        0x4F2B, 0x4F07, 0x4EE3, 0x4EBE, 0x4E99, 0x4E74, 0x4E4F, 0x4E29, \n        0x4E03, 0x4DDD, 0x4DB6, 0x4D90, 0x4D69, 0x4D41, 0x4D1A, 0x4CF2, \n        0x4CCA, 0x4CA1, 0x4C79, 0x4C50, 0x4C26, 0x4BFD, 0x4BD3, 0x4BA9, \n        0x4B7F, 0x4B55, 0x4B2A, 0x4AFF, 0x4AD4, 0x4AA8, 0x4A7C, 0x4A50, \n        0x4A24, 0x49F8, 0x49CB, 0x499E, 0x4971, 0x4944, 0x4916, 0x48E8, \n        0x48BA, 0x488C, 0x485E, 0x482F, 0x4800, 0x47D1, 0x47A2, 0x4772, \n        0x4742, 0x4712, 0x46E2, 0x46B2, 0x4681, 0x4650, 0x461F, 0x45EE, \n        0x45BD, 0x458B, 0x455A, 0x4528, 0x44F6, 0x44C3, 0x4491, 0x445E, \n        0x442B, 0x43F8, 0x43C5, 0x4392, 0x435E, 0x432A, 0x42F7, 0x42C3, \n        0x428E, 0x425A, 0x4225, 0x41F1, 0x41BC, 0x4187, 0x4152, 0x411D, \n        0x40E7, 0x40B2, 0x407C, 0x4046, 0x4010, 0x3FDA, 0x3FA4, 0x3F6D, \n        0x3F37, 0x3F00, 0x3EC9, 0x3E92, 0x3E5B, 0x3E24, 0x3DED, 0x3DB6, \n        0x3D7E, 0x3D47, 0x3D0F, 0x3CD7, 0x3C9F, 0x3C67, 0x3C2F, 0x3BF7, \n        0x3BBE, 0x3B86, 0x3B4D, 0x3B15, 0x3ADC, 0x3AA3, 0x3A6A, 0x3A31, \n        0x39F8, 0x39BF, 0x3986, 0x394C, 0x3913, 0x38DA, 0x38A0, 0x3867, \n        0x382D, 0x37F3, 0x37B9, 0x3780, 0x3746, 0x370C, 0x36D2, 0x3698, \n        0x365D, 0x3623, 0x35E9, 0x35AF, 0x3574, 0x353A, 0x3500, 0x34C5, \n        0x348B, 0x3450, 0x3416, 0x33DB, 0x33A0, 0x3366, 0x332B, 0x32F1, \n        0x32B6, 0x327B, 0x3240, 0x3206, 0x31CB, 0x3190, 0x3155, 0x311B, \n        0x30E0, 0x30A5, 0x306A, 0x302F, 0x2FF4, 0x2FBA, 0x2F7F, 0x2F44, \n        0x2F09, 0x2ECF, 0x2E94, 0x2E59, 0x2E1E, 0x2DE4, 0x2DA9, 0x2D6E, \n        0x2D34, 0x2CF9, 0x2CBE, 0x2C84, 0x2C49, 0x2C0F, 0x2BD4, 0x2B9A, \n        0x2B5F, 0x2B25, 0x2AEB, 0x2AB0, 0x2A76, 0x2A3C, 0x2A02, 0x29C8, \n        0x298E, 0x2954, 0x291A, 0x28E0, 0x28A6, 0x286C, 0x2833, 0x27F9, \n        0x27BF, 0x2786, 0x274C, 0x2713, 0x26DA, 0x26A0, 0x2667, 0x262E, \n        0x25F5, 0x25BC, 0x2583, 0x254B, 0x2512, 0x24D9, 0x24A1, 0x2468, \n        0x2430, 0x23F8, 0x23C0, 0x2388, 0x2350, 0x2318, 0x22E0, 0x22A8, \n        0x2271, 0x2239, 0x2202, 0x21CB, 0x2194, 0x215D, 0x2126, 0x20EF, \n        0x20B8, 0x2082, 0x204B, 0x2015, 0x1FDF, 0x1FA8, 0x1F72, 0x1F3D, \n        0x1F07, 0x1ED1, 0x1E9C, 0x1E66, 0x1E31, 0x1DFC, 0x1DC7, 0x1D92, \n        0x1D5D, 0x1D29, 0x1CF4, 0x1CC0, 0x1C8C, 0x1C58, 0x1C24, 0x1BF0, \n        0x1BBD, 0x1B89, 0x1B56, 0x1B23, 0x1AF0, 0x1ABD, 0x1A8A, 0x1A58, \n        0x1A25, 0x19F3, 0x19C1, 0x198F, 0x195D, 0x192C, 0x18FA, 0x18C9, \n        0x1898, 0x1867, 0x1836, 0x1805, 0x17D5, 0x17A5, 0x1775, 0x1745, \n        0x1715, 0x16E5, 0x16B6, 0x1686, 0x1657, 0x1628, 0x15FA, 0x15CB, \n        0x159D, 0x156E, 0x1540, 0x1513, 0x14E5, 0x14B7, 0x148A, 0x145D, \n        0x1430, 0x1403, 0x13D7, 0x13AA, 0x137E, 0x1352, 0x1326, 0x12FA, \n        0x12CF, 0x12A4, 0x1279, 0x124E, 0x1223, 0x11F9, 0x11CE, 0x11A4, \n        0x117A, 0x1151, 0x1127, 0x10FE, 0x10D5, 0x10AC, 0x1083, 0x105A, \n        0x1032, 0x100A, 0x0FE2, 0x0FBA, 0x0F93, 0x0F6B, 0x0F44, 0x0F1D, \n        0x0EF7, 0x0ED0, 0x0EAA, 0x0E84, 0x0E5E, 0x0E38, 0x0E13, 0x0DED, \n        0x0DC8, 0x0DA4, 0x0D7F, 0x0D5A, 0x0D36, 0x0D12, 0x0CEE, 0x0CCB, \n        0x0CA7, 0x0C84, 0x0C61, 0x0C3E, 0x0C1C, 0x0BF9, 0x0BD7, 0x0BB5, \n        0x0B94, 0x0B72, 0x0B51, 0x0B30, 0x0B0F, 0x0AEE, 0x0ACE, 0x0AAE, \n        0x0A8E, 0x0A6E, 0x0A4E, 0x0A2F, 0x0A10, 0x09F1, 0x09D2, 0x09B3, \n        0x0995, 0x0977, 0x0959, 0x093B, 0x091E, 0x0901, 0x08E4, 0x08C7, \n        0x08AA, 0x088E, 0x0872, 0x0856, 0x083A, 0x081E, 0x0803, 0x07E8, \n        0x07CD, 0x07B2, 0x0798, 0x077D, 0x0763, 0x074A, 0x0730, 0x0716, \n        0x06FD, 0x06E4, 0x06CB, 0x06B3, 0x069A, 0x0682, 0x066A, 0x0652, \n        0x063B, 0x0624, 0x060C, 0x05F5, 0x05DF, 0x05C8, 0x05B2, 0x059C, \n        0x0586, 0x0570, 0x055B, 0x0545, 0x0530, 0x051B, 0x0507, 0x04F2, \n        0x04DE, 0x04CA, 0x04B6, 0x04A2, 0x048F, 0x047B, 0x0468, 0x0455, \n        0x0443, 0x0430, 0x041E, 0x040C, 0x03FA, 0x03E8, 0x03D6, 0x03C5, \n        0x03B4, 0x03A3, 0x0392, 0x0382, 0x0371, 0x0361, 0x0351, 0x0341, \n        0x0332, 0x0322, 0x0313, 0x0304, 0x02F5, 0x02E6, 0x02D7, 0x02C9, \n        0x02BB, 0x02AD, 0x029F, 0x0291, 0x0284, 0x0277, 0x026A, 0x025D, \n        0x0250, 0x0243, 0x0237, 0x022B, 0x021F, 0x0213, 0x0207, 0x01FB, \n        0x01F0, 0x01E5, 0x01DA, 0x01CF, 0x01C4, 0x01B9, 0x01AF, 0x01A5, \n        0x019A, 0x0190, 0x0187, 0x017D, 0x0174, 0x016A, 0x0161, 0x0158, \n        0x014F, 0x0146, 0x013E, 0x0135, 0x012D, 0x0125, 0x011D, 0x0115, \n        0x010D, 0x0106, 0x00FE, 0x00F7, 0x00F0, 0x00E9, 0x00E2, 0x00DB, \n        0x00D4, 0x00CE, 0x00C8, 0x00C1, 0x00BB, 0x00B5, 0x00AF, 0x00AA, \n        0x00A4, 0x009F, 0x0099, 0x0094, 0x008F, 0x008A, 0x0085, 0x0080, \n        0x007C, 0x0077, 0x0073, 0x006E, 0x006A, 0x0066, 0x0062, 0x005E, \n        0x005A, 0x0057, 0x0053, 0x004F, 0x004C, 0x0049, 0x0046, 0x0042, \n        0x003F, 0x003C, 0x003A, 0x0037, 0x0034, 0x0032, 0x002F, 0x002D, \n        0x002A, 0x0028, 0x0026, 0x0024, 0x0022, 0x0020, 0x001E, 0x001C, \n        0x001B, 0x0019, 0x0017, 0x0016, 0x0014, 0x0013, 0x0012, 0x0010, \n        0x000F, 0x000E, 0x000D, 0x000C, 0x000B, 0x000A, 0x0009, 0x0008, \n        0x0008, 0x0007, 0x0006, 0x0005, 0x0005, 0x0004, 0x0004, 0x0003, \n        0x0003, 0x0002, 0x0002, 0x0002, 0x0001, 0x0001, 0x0001, 0x0001, \n        0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \n        0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \n        0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \n        0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \n        0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFE, 0xFFFE, \n        0xFFFD, 0xFFFD, 0xFFFC, 0xFFFC, 0xFFFB, 0xFFFB, 0xFFFA, 0xFFF9, \n        0xFFF8, 0xFFF8, 0xFFF7, 0xFFF6, 0xFFF5, 0xFFF4, 0xFFF3, 0xFFF2, \n        0xFFF1, 0xFFF0, 0xFFEE, 0xFFED, 0xFFEC, 0xFFEA, 0xFFE9, 0xFFE7, \n        0xFFE5, 0xFFE4, 0xFFE2, 0xFFE0, 0xFFDE, 0xFFDC, 0xFFDA, 0xFFD8, \n        0xFFD6, 0xFFD3, 0xFFD1, 0xFFCE, 0xFFCC, 0xFFC9, 0xFFC6, 0xFFC4, \n        0xFFC1, 0xFFBE, 0xFFBA, 0xFFB7, 0xFFB4, 0xFFB1, 0xFFAD, 0xFFA9, \n        0xFFA6, 0xFFA2, 0xFF9E, 0xFF9A, 0xFF96, 0xFF92, 0xFF8D, 0xFF89, \n        0xFF84, 0xFF80, 0xFF7B, 0xFF76, 0xFF71, 0xFF6C, 0xFF67, 0xFF61, \n        0xFF5C, 0xFF56, 0xFF51, 0xFF4B, 0xFF45, 0xFF3F, 0xFF38, 0xFF32, \n        0xFF2C, 0xFF25, 0xFF1E, 0xFF17, 0xFF10, 0xFF09, 0xFF02, 0xFEFA, \n        0xFEF3, 0xFEEB, 0xFEE3, 0xFEDB, 0xFED3, 0xFECB, 0xFEC2, 0xFEBA, \n        0xFEB1, 0xFEA8, 0xFE9F, 0xFE96, 0xFE8D, 0xFE83, 0xFE79, 0xFE70, \n        0xFE66, 0xFE5B, 0xFE51, 0xFE47, 0xFE3C, 0xFE31, 0xFE26, 0xFE1B, \n        0xFE10, 0xFE05, 0xFDF9, 0xFDED, 0xFDE2, 0xFDD5, 0xFDC9, 0xFDBD, \n        0xFDB0, 0xFDA3, 0xFD96, 0xFD89, 0xFD7C, 0xFD6F, 0xFD61, 0xFD53, \n        0xFD45, 0xFD37, 0xFD29, 0xFD1A, 0xFD0B, 0xFCFC, 0xFCED, 0xFCDE, \n        0xFCCF, 0xFCBF, 0xFCAF, 0xFC9F, 0xFC8F, 0xFC7E, 0xFC6E, 0xFC5D, \n        0xFC4C, 0xFC3B, 0xFC2A, 0xFC18, 0xFC06, 0xFBF4, 0xFBE2, 0xFBD0, \n        0xFBBD, 0xFBAB, 0xFB98, 0xFB85, 0xFB71, 0xFB5E, 0xFB4A, 0xFB36, \n        0xFB22, 0xFB0E, 0xFAF9, 0xFAE5, 0xFAD0, 0xFABB, 0xFAA5, 0xFA90, \n        0xFA7A, 0xFA64, 0xFA4E, 0xFA38, 0xFA21, 0xFA0B, 0xF9F4, 0xF9DD, \n        0xF9C5, 0xF9AE, 0xF996, 0xF97E, 0xF966, 0xF94D, 0xF935, 0xF91C, \n        0xF903, 0xF8EA, 0xF8D0, 0xF8B6, 0xF89D, 0xF883, 0xF868, 0xF84E, \n        0xF833, 0xF818, 0xF7FD, 0xF7E2, 0xF7C6, 0xF7AA, 0xF78E, 0xF772, \n        0xF756, 0xF739, 0xF71C, 0xF6FF, 0xF6E2, 0xF6C5, 0xF6A7, 0xF689, \n        0xF66B, 0xF64D, 0xF62E, 0xF60F, 0xF5F0, 0xF5D1, 0xF5B2, 0xF592, \n        0xF572, 0xF552, 0xF532, 0xF512, 0xF4F1, 0xF4D0, 0xF4AF, 0xF48E, \n        0xF46C, 0xF44B, 0xF429, 0xF407, 0xF3E4, 0xF3C2, 0xF39F, 0xF37C, \n        0xF359, 0xF335, 0xF312, 0xF2EE, 0xF2CA, 0xF2A6, 0xF281, 0xF25D, \n        0xF238, 0xF213, 0xF1ED, 0xF1C8, 0xF1A2, 0xF17C, 0xF156, 0xF130, \n        0xF109, 0xF0E3, 0xF0BC, 0xF095, 0xF06D, 0xF046, 0xF01E, 0xEFF6, \n        0xEFCE, 0xEFA6, 0xEF7D, 0xEF54, 0xEF2B, 0xEF02, 0xEED9, 0xEEAF, \n        0xEE86, 0xEE5C, 0xEE32, 0xEE07, 0xEDDD, 0xEDB2, 0xED87, 0xED5C, \n        0xED31, 0xED06, 0xECDA, 0xECAE, 0xEC82, 0xEC56, 0xEC29, 0xEBFD, \n        0xEBD0, 0xEBA3, 0xEB76, 0xEB49, 0xEB1B, 0xEAEE, 0xEAC0, 0xEA92, \n        0xEA63, 0xEA35, 0xEA06, 0xE9D8, 0xE9A9, 0xE97A, 0xE94A, 0xE91B, \n        0xE8EB, 0xE8BB, 0xE88B, 0xE85B, 0xE82B, 0xE7FB, 0xE7CA, 0xE799, \n        0xE768, 0xE737, 0xE706, 0xE6D4, 0xE6A3, 0xE671, 0xE63F, 0xE60D, \n        0xE5DB, 0xE5A8, 0xE576, 0xE543, 0xE510, 0xE4DD, 0xE4AA, 0xE477, \n        0xE443, 0xE410, 0xE3DC, 0xE3A8, 0xE374, 0xE340, 0xE30C, 0xE2D7, \n        0xE2A3, 0xE26E, 0xE239, 0xE204, 0xE1CF, 0xE19A, 0xE164, 0xE12F, \n        0xE0F9, 0xE0C4, 0xE08E, 0xE058, 0xE022, 0xDFEB, 0xDFB5, 0xDF7E, \n        0xDF48, 0xDF11, 0xDEDA, 0xDEA3, 0xDE6C, 0xDE35, 0xDDFE, 0xDDC7, \n        0xDD8F, 0xDD58, 0xDD20, 0xDCE8, 0xDCB0, 0xDC78, 0xDC40, 0xDC08, \n        0xDBD0, 0xDB98, 0xDB5F, 0xDB27, 0xDAEE, 0xDAB5, 0xDA7D, 0xDA44, \n        0xDA0B, 0xD9D2, 0xD999, 0xD960, 0xD926, 0xD8ED, 0xD8B4, 0xD87A, \n        0xD841, 0xD807, 0xD7CE, 0xD794, 0xD75A, 0xD720, 0xD6E6, 0xD6AC, \n        0xD672, 0xD638, 0xD5FE, 0xD5C4, 0xD58A, 0xD550, 0xD515, 0xD4DB, \n        0xD4A1, 0xD466, 0xD42C, 0xD3F1, 0xD3B7, 0xD37C, 0xD342, 0xD307, \n        0xD2CD, 0xD292, 0xD257, 0xD21D, 0xD1E2, 0xD1A7, 0xD16C, 0xD132, \n        0xD0F7, 0xD0BC, 0xD081, 0xD046, 0xD00C, 0xCFD1, 0xCF96, 0xCF5B, \n        0xCF20, 0xCEE6, 0xCEAB, 0xCE70, 0xCE35, 0xCDFA, 0xCDC0, 0xCD85, \n        0xCD4A, 0xCD10, 0xCCD5, 0xCC9A, 0xCC60, 0xCC25, 0xCBEA, 0xCBB0, \n        0xCB75, 0xCB3B, 0xCB00, 0xCAC6, 0xCA8C, 0xCA51, 0xCA17, 0xC9DD, \n        0xC9A3, 0xC969, 0xC92E, 0xC8F4, 0xC8BA, 0xC881, 0xC847, 0xC80D, \n        0xC7D3, 0xC79A, 0xC760, 0xC726, 0xC6ED, 0xC6B4, 0xC67A, 0xC641, \n        0xC608, 0xC5CF, 0xC596, 0xC55D, 0xC524, 0xC4EB, 0xC4B3, 0xC47A, \n        0xC442, 0xC409, 0xC3D1, 0xC399, 0xC361, 0xC329, 0xC2F1, 0xC2BA, \n        0xC282, 0xC24A, 0xC213, 0xC1DC, 0xC1A5, 0xC16E, 0xC137, 0xC100, \n        0xC0C9, 0xC093, 0xC05C, 0xC026, 0xBFF0, 0xBFBA, 0xBF84, 0xBF4E, \n        0xBF19, 0xBEE3, 0xBEAE, 0xBE79, 0xBE44, 0xBE0F, 0xBDDB, 0xBDA6, \n        0xBD72, 0xBD3E, 0xBD09, 0xBCD6, 0xBCA2, 0xBC6E, 0xBC3B, 0xBC08, \n        0xBBD5, 0xBBA2, 0xBB6F, 0xBB3D, 0xBB0B, 0xBAD8, 0xBAA6, 0xBA75, \n        0xBA43, 0xBA12, 0xB9E1, 0xB9B0, 0xB97F, 0xB94E, 0xB91E, 0xB8EE, \n        0xB8BE, 0xB88E, 0xB85E, 0xB82F, 0xB800, 0xB7D1, 0xB7A2, 0xB774, \n        0xB746, 0xB718, 0xB6EA, 0xB6BC, 0xB68F, 0xB662, 0xB635, 0xB608, \n        0xB5DC, 0xB5B0, 0xB584, 0xB558, 0xB52C, 0xB501, 0xB4D6, 0xB4AC, \n        0xB481, 0xB457, 0xB42D, 0xB403, 0xB3DA, 0xB3B0, 0xB388, 0xB35F, \n        0xB336, 0xB30E, 0xB2E6, 0xB2BF, 0xB297, 0xB270, 0xB24A, 0xB223, \n        0xB1FD, 0xB1D7, 0xB1B1, 0xB18C, 0xB167, 0xB142, 0xB11D, 0xB0F9, \n        0xB0D5, 0xB0B2, 0xB08E, 0xB06B, 0xB048, 0xB026, 0xB004, 0xAFE2, \n        0xAFC0, 0xAF9F, 0xAF7E, 0xAF5D, 0xAF3D, 0xAF1D, 0xAEFD, 0xAEDE, \n        0xAEBF, 0xAEA0, 0xAE82, 0xAE64, 0xAE46, 0xAE29, 0xAE0B, 0xADEF, \n        0xADD2, 0xADB6, 0xAD9A, 0xAD7F, 0xAD64, 0xAD49, 0xAD2F, 0xAD14, \n        0xACFB, 0xACE1, 0xACC8, 0xACAF, 0xAC97, 0xAC7F, 0xAC67, 0xAC50, \n        0xAC39, 0xAC22, 0xAC0C, 0xABF6, 0xABE1, 0xABCC, 0xABB7, 0xABA2, \n        0xAB8E, 0xAB7A, 0xAB67, 0xAB54, 0xAB41, 0xAB2F, 0xAB1D, 0xAB0C, \n        0xAAFB, 0xAAEA, 0xAAD9, 0xAAC9, 0xAABA, 0xAAAA, 0xAA9C, 0xAA8D, \n        0xAA7F, 0xAA71, 0xAA64, 0xAA57, 0xAA4A, 0xAA3E, 0xAA32, 0xAA27, \n        0xAA1C, 0xAA11, 0xAA07, 0xA9FD, 0xA9F4, 0xA9EB, 0xA9E2, 0xA9DA, \n        0xA9D2, 0xA9CB, 0xA9C4, 0xA9BD, 0xA9B7, 0xA9B1, 0xA9AC, 0xA9A7, \n        0xA9A2, 0xA99E, 0xA99A, 0xA997, 0xA994, 0xA991, 0xA98F, 0xA98D, \n        0xA98C, 0xA98B, 0xA98A, 0xA98A, 0xA98B, 0xA98C, 0xA98D, 0xA98E, \n        0xA990, 0xA993, 0xA996, 0xA999, 0xA99D, 0xA9A1, 0xA9A5, 0xA9AA, \n        0xA9B0, 0xA9B6, 0xA9BC, 0xA9C2, 0xA9CA, 0xA9D1, 0xA9D9, 0xA9E1, \n        0xA9EA, 0xA9F4, 0xA9FD, 0xAA07, 0xAA12, 0xAA1D, 0xAA28, 0xAA34, \n        0xAA40, 0xAA4D, 0xAA5A, 0xAA68, 0xAA76, 0xAA84, 0xAA93, 0xAAA2, \n        0xAAB2, 0xAAC2, 0xAAD3, 0xAAE4, 0xAAF6, 0xAB07, 0xAB1A, 0xAB2D, \n        0xAB40, 0xAB54, 0xAB68, 0xAB7C, 0xAB91, 0xABA7, 0xABBD, 0xABD3, \n        0xABEA, 0xAC01, 0xAC18, 0xAC30, 0xAC49, 0xAC62, 0xAC7B, 0xAC95, \n        0xACAF, 0xACCA, 0xACE5, 0xAD01, 0xAD1D, 0xAD39, 0xAD56, 0xAD73, \n        0xAD91, 0xADAF, 0xADCE, 0xADED, 0xAE0D, 0xAE2D, 0xAE4D, 0xAE6E, \n        0xAE8F, 0xAEB1, 0xAED3, 0xAEF5, 0xAF18, 0xAF3C, 0xAF60, 0xAF84, \n        0xAFA9, 0xAFCE, 0xAFF4, 0xB01A, 0xB040, 0xB067, 0xB08E, 0xB0B6, \n        0xB0DE, 0xB107, 0xB130, 0xB15A, 0xB183, 0xB1AE, 0xB1D9, 0xB204, \n        0xB22F, 0xB25C, 0xB288, 0xB2B5, 0xB2E2, 0xB310, 0xB33E, 0xB36D, \n        0xB39C, 0xB3CB, 0xB3FB, 0xB42C, 0xB45C, 0xB48D, 0xB4BF, 0xB4F1, \n        0xB523, 0xB556, 0xB589, 0xB5BD, 0xB5F1, 0xB626, 0xB65B, 0xB690, \n        0xB6C6, 0xB6FC, 0xB732, 0xB769, 0xB7A0, 0xB7D8, 0xB810, 0xB849, \n        0xB882, 0xB8BB, 0xB8F5, 0xB92F, 0xB96A, 0xB9A5, 0xB9E0, 0xBA1C, \n        0xBA58, 0xBA94, 0xBAD1, 0xBB0F, 0xBB4C, 0xBB8B, 0xBBC9, 0xBC08, \n        0xBC47, 0xBC87, 0xBCC7, 0xBD07, 0xBD48, 0xBD89, 0xBDCB, 0xBE0D, \n        0xBE4F, 0xBE92, 0xBED5, 0xBF18, 0xBF5C, 0xBFA0, 0xBFE5, 0xC02A, \n        0xC06F, 0xC0B5, 0xC0FB, 0xC141, 0xC188, 0xC1CF, 0xC217, 0xC25E, \n        0xC2A7, 0xC2EF, 0xC338, 0xC381, 0xC3CB, 0xC415, 0xC45F, 0xC4AA, \n        0xC4F5, 0xC540, 0xC58C, 0xC5D8, 0xC624, 0xC671, 0xC6BE, 0xC70B, \n        0xC759, 0xC7A7, 0xC7F5, 0xC844, 0xC893, 0xC8E2, 0xC932, 0xC982, \n        0xC9D2, 0xCA22, 0xCA73, 0xCAC4, 0xCB16, 0xCB68, 0xCBBA, 0xCC0C, \n        0xCC5F, 0xCCB2, 0xCD05, 0xCD59, 0xCDAD, 0xCE01, 0xCE56, 0xCEAB, \n        0xCF00, 0xCF55, 0xCFAB, 0xD001, 0xD057, 0xD0AE, 0xD104, 0xD15C, \n        0xD1B3, 0xD20B, 0xD262, 0xD2BB, 0xD313, 0xD36C, 0xD3C5, 0xD41E, \n        0xD478, 0xD4D1, 0xD52B, 0xD586, 0xD5E0, 0xD63B, 0xD696, 0xD6F1, \n        0xD74D, 0xD7A8, 0xD804, 0xD861, 0xD8BD, 0xD91A, 0xD977, 0xD9D4, \n        0xDA31, 0xDA8F, 0xDAED, 0xDB4B, 0xDBA9, 0xDC07, 0xDC66, 0xDCC5, \n        0xDD24, 0xDD83, 0xDDE3, 0xDE43, 0xDEA3, 0xDF03, 0xDF63, 0xDFC4, \n        0xE024, 0xE085, 0xE0E6, 0xE148, 0xE1A9, 0xE20B, 0xE26C, 0xE2CE, \n        0xE331, 0xE393, 0xE3F6, 0xE458, 0xE4BB, 0xE51E, 0xE581, 0xE5E5, \n        0xE648, 0xE6AC, 0xE70F, 0xE773, 0xE7D8, 0xE83C, 0xE8A0, 0xE905, \n        0xE969, 0xE9CE, 0xEA33, 0xEA98, 0xEAFD, 0xEB63, 0xEBC8, 0xEC2E, \n        0xEC93, 0xECF9, 0xED5F, 0xEDC5, 0xEE2B, 0xEE91, 0xEEF8, 0xEF5E, \n        0xEFC5, 0xF02B, 0xF092, 0xF0F9, 0xF160, 0xF1C7, 0xF22E, 0xF295, \n        0xF2FC, 0xF364, 0xF3CB, 0xF432, 0xF49A, 0xF502, 0xF569, 0xF5D1, \n        0xF639, 0xF6A1, 0xF709, 0xF771, 0xF7D9, 0xF841, 0xF8A9, 0xF911, \n        0xF979, 0xF9E2, 0xFA4A, 0xFAB2, 0xFB1B, 0xFB83, 0xFBEB, 0xFC54, \n        0xFCBC, 0xFD25, 0xFD8D, 0xFDF6, 0xFE5E, 0xFEC7, 0xFF2F, 0xFF98} ;\n\n// ADVAL\nint snd_free (int n)\n{\n\tn &= 3 ; // 0,1,2,3\n\tn = sndqr[n] - sndqw[n] ;\n\tif (n <= 0)\n\t\tn += SOUNDQL ;\n\treturn n - SOUNDQE ;\n}\n\n// ENVELOPE N,T,PI1,PI2,PI3,PN1,PN2,PN3,AA,AD,AS,AR,ALA,ALD\nvoid envel (signed char *env)\n{\n\tint n ;\n\tint chan = *env++ & 15 ;\n\tfor (n = 0; n < 13; n++)\n\t\t*(envels + 16 * chan + n) = *env++ ;\n\t*(envels + 16 * chan + n) = 0 ; // Target for sustain & release\n}\n\n// SOUND Channel,Amplitude,Pitch,Duration\nvoid sound (short chan, signed char ampl, unsigned char pitch, unsigned char duration)\n{\n\tunsigned char al ;\n\tint index ;\n\tint ch = chan & 3 ;\n\tif (chan & 0xE000) return ;\n\tif (chan & 0x00F0) // Flush ?\n\t    {\n\t\tdo\n\t\t\tsndqw[ch] = sndqr[ch] ; // might be interrupted\n\t\twhile (sndqw[ch] != sndqr[ch]) ;\n\t    }\n\tal = sndqw[ch] ;\n\tindex = ch * SOUNDQL + al ;\n\tsoundq[index + 0] = duration ;\n\tsoundq[index + 1] = pitch ;\n\tsoundq[index + 2] = ampl ;\n\tsoundq[index + 3] = chan >> 8 ;\n\tal += SOUNDQE ;\n\tif (al >= SOUNDQL)\n\t\tal = 0 ;\n\twhile (al == sndqr[ch])\n\t    {\n\t\tsleep_ms (1) ;\n\t\ttrap() ;\n\t    }\n\tsndqw[ch] = al ;\n}\n\n// Disable sound generation:\nvoid quiet (void)\n{\n\tint i ;\n\tfor (i = 0; i < 4; i++)\n\t    {\n\t\tsndqw[i] = 0 ;\n\t\tsndqr[i] = 0 ;\n\t\teenvel[i] = 0 ;\n\t\tsacc[i] = 0 ;\n\t    }\n}\n\n// Process note(s) from sound queue:\nstatic unsigned char note (unsigned char mask)\n{\n\tunsigned char al ;\n\tunsigned char ch ;\n\tfor (ch = 0; ch < 4; ch++)\n\t    {\n\t\twhile (((mask & BIT0) == 0) && ((al = sndqr[ch]) != sndqw[ch]))\n\t\t    {\n\t\t\tint index = ch * SOUNDQL + al ;\n \t\t\tunsigned char duration = soundq[index + 0] ;\n\t\t\tunsigned char pitch = soundq[index + 1] ;\n\t\t\tsigned char ampl = soundq[index + 2] ;\n\t\t\tunsigned char hs = soundq[index + 3] ;\n\t\t\tif (((mask & BIT1) == 0) && ((hs & 3) != 0))\n\t\t\t    {\n\t\t\t\tmask |= hs & 3 ; // waiting for sync\n\t\t\t\tbreak ;\n\t\t\t    }\n\t\t\telse\n\t\t\t    {\n\t\t\t\tsoundq[index + 3] = 0x10 ;\n\t\t\t\tif ((hs & 0xF0) == 0)\n\t\t\t\t    {\n\t\t\t\t\teenvel[ch] = ampl ;\n\t\t\t\t\tepitch[ch] = pitch ;\n\t\t\t\t\teasect[ch] = 0 ;\n\t\t\t\t\tepsect[ch] = 0 ;\n\t\t\t\t\tecount[ch] = 0 ;\n\t\t\t\t\tescale[ch] = 1 ;\n\t\t\t\t    }\n\t\t\t\tif (duration == 0)\n\t\t\t\t    {\n\t\t\t\t\teasect[ch] = 3 ; // release phase\n\t\t\t\t\tif (ampl <= 0)\n\t\t\t\t\t    {\n\t\t\t\t\t\tepitch[ch] = 0 ; // silence\n\t\t\t\t\t\tif ((ch == 0) && (tempo < 128))\n\t\t\t\t\t\t\teenvel[ch] = 0 ;\n\t\t\t\t\t    }\n\t\t\t\t\tal += SOUNDQE ;\n\t\t\t\t\tif (al >= SOUNDQL)\n\t\t\t\t\t\tal = 0 ;\n\t\t\t\t\tsndqr[ch] = al ;\n\t\t\t\t\tmask &= 0xFD ;\n\t\t\t\t    }\n\t\t\t\telse if (duration != 255)\n\t\t\t\t    {\n\t\t\t\t\tsoundq[index + 0] = duration - 1 ;\n\t\t\t\t\tbreak ;\n\t\t\t\t    }\n\t\t\t\telse\n\t\t\t\t\tbreak ;\n\t\t\t    }\n\t\t    } ;\n\t\tmask = (mask >> 2) | (mask << 6) ;\n\t    }\n\treturn mask ;\n}\n\n// Synthesise sound waveform:\nstatic void tone (short *buffer)\n{\n\tint i, ch ;\n\tunsigned char taps ;\n\tstatic unsigned short noise ;\n\tstatic unsigned int __attribute__((aligned(16))) tempi[4] ;\n\tstatic short __attribute__((aligned(16))) temps[8] ;\n\n\tfor (ch = 0; ch < 4; ch++)\n\t    {\n\t\tsigned char bl = eenvel[ch] ;\n\t\tif (bl < 0) // fixed amplitude\n\t\t\televel[ch] = -bl << 3 ;\n\t\telse if (bl == 0) // silence\n\t\t    {\n\t\t\tif (ch == 0)\n\t\t\t\televel[ch] = 0 ; // noise channel\n\t\t\telse\n\t\t\t\tepitch[ch] = 0 ;\n\t\t    }\n\t\telse // envelope\n\t\t    {\n\t\t\tescale[ch]-- ;\n\t\t\tif (escale[ch] == 0)\n\t\t\t    {\n\t\t\t\tsigned char *ebx = envels + ((bl & 15) << 4) ;\n\t\t\t\tchar cl = *ebx & 0x7F ; // strip repeat bit\n\t\t\t\tif (cl == 0) cl++ ;\n\t\t\t\tescale[ch] = cl ;\n\t\t\t\tunsigned char al = easect[ch] ; // amplitude section\n\t\t\t\tif (al < 4)\n\t\t\t\t    {\n\t\t\t\t\tsigned char step = *(ebx + al + 7) ; // level change\n\t\t\t\t\tsigned char target = *(ebx + al + 11) ; // target level\n\t\t\t\t\tsigned char level = elevel[ch] ; // current level\n\t\t\t\t\tlevel += step ; // adjust level\n\t\t\t\t\tif ((level <= 0) && (step > 0)) level = 127 ;\n\t\t\t\t\tif ((level < 0) && (step < 0)) level = 0 ;\n\t\t\t\t\televel[ch] = level ; // update level\n\t\t\t\t\tif (((step < 0) && (level <= target)) ||\n\t\t\t\t\t    ((step > 0) && (level >= target)))\n\t\t\t\t\t    {\n\t\t\t\t\t\tal++ ; // move to next section\n\t\t\t\t\t\tif (al < 3)\n\t\t\t\t\t\t    {\n\t\t\t\t\t\t\televel[ch] = target ;\n\t\t\t\t\t\t\teasect[ch] = al ;\n\t\t\t\t\t\t    }\n\t\t\t\t\t    }\n\t\t\t\t    }\n\t\t\t\tal = epsect[ch] ; // pitch section\n\t\t\t\tif ((al >= 3) && ((*ebx & BIT7) == 0)) // repeat ?\n\t\t\t\t    {\n\t\t\t\t\tal = 0 ;\n\t\t\t\t\tepsect[ch] = 0 ;\n\t\t\t\t\tif (tempo & 0x40)\n\t\t\t\t\t\tepitch[ch] -= *(ebx+1) * *(ebx+4) +\n\t\t\t\t\t\t\t      *(ebx+2) * *(ebx+5) +\n\t\t\t\t\t\t\t      *(ebx+3) * *(ebx+6) ;\n\t\t\t\t    }\n\t\t\t\tif (al < 3)\n\t\t\t\t    {\n\t\t\t\t\tsigned char step = *(ebx + al + 1) ; // pitch change\n\t\t\t\t\tunsigned char num = *(ebx + al + 4) ; // no.of steps\n\t\t\t\t\tecount[ch]++ ;\n\t\t\t\t\tif (ecount[ch] >= num)\n\t\t\t\t\t    {\n\t\t\t\t\t\tecount[ch] = 0 ;\n\t\t\t\t\t\tal++ ; // move to next section\n\t\t\t\t\t\tepsect[ch] = al ;\n\t\t\t\t\t    }\n\t\t\t\t\tif (num)\n\t\t\t\t\t\tepitch[ch] += step ;\n\t\t\t\t    }\n\t\t\t    }\n\t\t    }\n\t    }\n\n\ttempi[0] = voices[0] ;\n\ttempi[1] = voices[1] ;\n\ttempi[2] = voices[2] ;\n\ttempi[3] = voices[3] ;\n\tint wavep[4] = { tempi[0] << 11, tempi[1] << 11, tempi[2] << 11, tempi[3] << 11 } ;\n\n\ttempi[0] = freqs[epitch[0]] ;\n\ttempi[1] = freqs[epitch[1]] ;\n\ttempi[2] = freqs[epitch[2]] ;\n\ttempi[3] = freqs[epitch[3]] ;\n\tunsigned int inctp[4] = { tempi[0] << 14, tempi[1] << 14, tempi[2] << 14, tempi[3] << 14 } ;\n\n\ttemps[0] = ampl[elevel[0]] ;\n\ttemps[1] = ampl[elevel[1]] ;\n\ttemps[2] = ampl[elevel[2]] ;\n\ttemps[3] = ampl[elevel[3]] ;\n\ttemps[4] = temps[0] ;\n\ttemps[5] = temps[1] ;\n\ttemps[6] = temps[2] ;\n\ttemps[7] = temps[3] ;\n\tshort smixp[8] = { (smix[0] * temps[0]) >> 16, (smix[1] * temps[1]) >> 16,\n\t\t\t   (smix[2] * temps[2]) >> 16, (smix[3] * temps[3]) >> 16, \n\t\t\t   (smix[4] * temps[4]) >> 16, (smix[5] * temps[5]) >> 16, \n\t\t\t   (smix[6] * temps[6]) >> 16, (smix[7] * temps[7]) >> 16 } ; \n\n\ttaps = noises[epitch[0] & 7] >> 3 ;\n\tif (noise == 0xFFFF) noise = 0 ;\n\n\tfor (i = 0; i < AUDIO_CHUNK; i++) // samples in 0.01 seconds\n\t    {\n\t\tsacc[0] += inctp[0] ; sacc[1] += inctp[1] ; sacc[2] += inctp[2] ; sacc[3] += inctp[3] ;\n\t\ttempi[0] = (sacc[0] >> 21) + wavep[0] ; tempi[1] = (sacc[1] >> 21) + wavep[1] ;\n\t\ttempi[2] = (sacc[2] >> 21) + wavep[2] ; tempi[3] = (sacc[3] >> 21) + wavep[3] ;\n\n\t\tif (tempo < 128)\n\t\t    {\n\t\t\tnoise = noise >> 1 ;\n\t\t\tnoise |= (((noise & taps) == taps) || ((noise & taps) == 0)) << 15 ;\n\t\t\ttempi[0] = noise & 0x3FFF ;\n\t\t    }\n\t\ttemps[0] = wavetable[tempi[0]] ;\n\t\ttemps[1] = wavetable[tempi[1]] ;\n\t\ttemps[2] = wavetable[tempi[2]] ;\n\t\ttemps[3] = wavetable[tempi[3]] ;\n \t\ttemps[4] = temps[0] ;\n \t\ttemps[5] = temps[1] ;\n \t\ttemps[6] = temps[2] ;\n \t\ttemps[7] = temps[3] ;\n\n\t\ttemps[0] = (temps[0] * smixp[0]) >> 16 ; temps[1] = (temps[1] * smixp[1]) >> 16 ; \n\t\ttemps[2] = (temps[2] * smixp[2]) >> 16 ; temps[3] = (temps[3] * smixp[3]) >> 16 ; \n\t\ttemps[4] = (temps[4] * smixp[4]) >> 16 ; temps[5] = (temps[5] * smixp[5]) >> 16 ; \n\t\ttemps[6] = (temps[6] * smixp[6]) >> 16 ; temps[7] = (temps[7] * smixp[7]) >> 16 ; \n\t\t*buffer++ = (((int)temps[0] + (int)temps[1] + (int)temps[2] + (int)temps[3]) << 1) ; // left\n\t\t*buffer++ = (((int)temps[4] + (int)temps[5] + (int)temps[6] + (int)temps[7]) << 1) ; // right\n\t    }\n}\n\n// PWM Wrap Interrupt Handler (stereo, 8-fold over-sampling with dither)\nvoid pwm_interrupt_handler(void)\n{\n    static unsigned short dither[8] = {0x8034, 0x8004, 0x8024, 0x8014, 0x803C, 0x800C, 0x802C, 0x801C};\n    short *wav_ptr = waves + ((hwo >> 3) * 2);\n    pwm_clear_irq(pwm_gpio_to_slice_num(AUDIO_PIN_L));\n    if (waves == NULL) return;\n    pwm_set_gpio_level(AUDIO_PIN_L, (*(wav_ptr + 0) + dither[hwo & 7]) >> 6);\n    pwm_set_gpio_level(AUDIO_PIN_R, (*(wav_ptr + 1) + dither[hwo & 7]) >> 6);\n    hwo++;\n    if (hwo >= (AUDIO_TOTAL << 3))\n        hwo = 0;\n}\n\nvoid core1_entry(void) {\n    int wav_writeptr = AUDIO_CHUNK;\n\n    multicore_lockout_victim_init();\n\n    // Configure PWM for stereo audio output\n    gpio_set_function(AUDIO_PIN_R, GPIO_FUNC_PWM);\n    int audio_pin_slice_R = pwm_gpio_to_slice_num(AUDIO_PIN_R);\n    gpio_set_function(AUDIO_PIN_L, GPIO_FUNC_PWM);\n    int audio_pin_slice_L = pwm_gpio_to_slice_num(AUDIO_PIN_L);\n\n    // Base clock 131 MHz divided by wrap 1024 to set the interrupt rate, which\n    // is then divided again by eight for 8-fold over-sampling to give ~16 kHz \n    pwm_config config = pwm_get_default_config();\n    pwm_config_set_clkdiv(&config, 1.0f); \n    pwm_config_set_wrap(&config, 1024); \n\n    // Right audio channel (shares interrupt with left channel)\n    if (audio_pin_slice_R != audio_pin_slice_L)\n      {\n        pwm_clear_irq(audio_pin_slice_R);\n        pwm_set_irq_enabled(audio_pin_slice_R, false);\n        pwm_init(audio_pin_slice_R, &config, true);\n      }\n\n    // Left audio channel (AFTER right so it runs slightly late)\n    pwm_clear_irq(audio_pin_slice_L);\n    pwm_set_irq_enabled(audio_pin_slice_L, true);\n    pwm_init(audio_pin_slice_L, &config, true);\n\n    pwm_set_gpio_level(AUDIO_PIN_R, 0);\n    pwm_set_gpio_level(AUDIO_PIN_L, 0);\n    pwm_set_counter(audio_pin_slice_R, 0);\n    pwm_set_counter(audio_pin_slice_L, 0);\n\n    // set the interrupt handler function and enable it:\n    irq_set_exclusive_handler(PWM_IRQ_WRAP, pwm_interrupt_handler);\n    irq_set_enabled(PWM_IRQ_WRAP, true);\n\n    while (1)\n      {\n\tunsigned char al = note (0) ;\n\tunsigned char ah = tempo & 0x3F ;\n\n\tif (al)\n \t\tnote (syncs [al]) ;\n\tif (ah == 0)\n\t\t__wfi();\n\twhile (ah--)\n\t    {\n\t\tint chunk = wav_writeptr / AUDIO_CHUNK ;\n\t\twhile (chunk == ((hwo >> 3) / AUDIO_CHUNK))\n\t\t\t__wfi(); // Wait for Interrupt\n\t\ttone (waves + wav_writeptr * 2) ;\n\t\twav_writeptr += AUDIO_CHUNK ;\n\t\tif (wav_writeptr >= AUDIO_TOTAL)\n\t\t\twav_writeptr = 0;\n\t    }\n      }\n}\n\n// Setup sound:\nvoid snd_setup (void)\n{\n\tint i ;\n\n\t// Small degree of overclocking to achieve ~15.99 kHz sampling\n\tset_sys_clock_khz(131000, true);\n\n\ttempo = 0x45 ;\t\t\t\t// Default SOUND tempo\n\n\tfor (i = 0; i < 8; i++)\n\t\tsmix[i] = 0x4000 ;\n\n\tmulticore_launch_core1(\tcore1_entry ) ;\n}\n"
  }
]