]> git.sur5r.net Git - freertos/commitdiff
Remove MicroBlaze with full Ethernet project, so it can be generated again.
authorrichardbarry <richardbarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Fri, 26 Aug 2011 17:42:54 +0000 (17:42 +0000)
committerrichardbarry <richardbarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Fri, 26 Aug 2011 17:42:54 +0000 (17:42 +0000)
git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@1559 1d2547de-c912-0410-9cb9-b8ca96c0e9e2

26 files changed:
Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/.cproject [deleted file]
Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/.project [deleted file]
Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/CreateProjectDirectoryStructure.bat [deleted file]
Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/FreeRTOSConfig.h [deleted file]
Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/ParTest.c [deleted file]
Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/RegisterTests.c [deleted file]
Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/fs.c [deleted file]
Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/fs.h [deleted file]
Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/fsdata.c [deleted file]
Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/fsdata.h [deleted file]
Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/httpd.c [deleted file]
Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/httpd.h [deleted file]
Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/httpd_structs.h [deleted file]
Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/404.html [deleted file]
Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/index.shtml [deleted file]
Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/logo.jpg [deleted file]
Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/runtime.shtml [deleted file]
Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/makefsdata.c-source-file [deleted file]
Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/makefsdata.exe [deleted file]
Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/lwIP_Apps.c [deleted file]
Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/lwipcfg_MicroBlaze.h [deleted file]
Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/lwipopts.h [deleted file]
Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/main-blinky.c [deleted file]
Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/main-full.c [deleted file]
Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/serial.c [deleted file]
Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/src/lscript.ld [deleted file]

diff --git a/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/.cproject b/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/.cproject
deleted file mode 100644 (file)
index 3d78ded..0000000
+++ /dev/null
@@ -1,1985 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
-<?fileVersion 4.0.0?>\r
-\r
-<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">\r
-       <storageModule moduleId="org.eclipse.cdt.core.settings">\r
-               <cconfiguration id="xilinx.gnu.mb.exe.debug.1890710697.1551842913">\r
-                       <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="xilinx.gnu.mb.exe.debug.1890710697.1551842913" moduleId="org.eclipse.cdt.core.settings" name="Blilnky">\r
-                               <externalSettings/>\r
-                               <extensions>\r
-                                       <extension id="com.xilinx.sdk.managedbuilder.XELF.mb" point="org.eclipse.cdt.core.BinaryParser"/>\r
-                                       <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
-                                       <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>\r
-                                       <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
-                                       <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
-                                       <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
-                               </extensions>\r
-                       </storageModule>\r
-                       <storageModule moduleId="cdtBuildSystem" version="4.0.0">\r
-                               <configuration artifactExtension="elf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="Very simple starter example" id="xilinx.gnu.mb.exe.debug.1890710697.1551842913" name="Blilnky" parent="xilinx.gnu.mb.exe.debug">\r
-                                       <folderInfo id="xilinx.gnu.mb.exe.debug.1890710697.1551842913." name="/" resourcePath="">\r
-                                               <toolChain id="xilinx.gnu.mb.exe.debug.toolchain.257341927" name="Xilinx MicroBlaze GNU Toolchain" superClass="xilinx.gnu.mb.exe.debug.toolchain">\r
-                                                       <targetPlatform binaryParser="com.xilinx.sdk.managedbuilder.XELF.mb" id="xilinx.mb.target.gnu.base.debug.424447469" isAbstract="false" name="Debug Platform" superClass="xilinx.mb.target.gnu.base.debug"/>\r
-                                                       <builder buildPath="${workspace_loc:/RTOSDemoSource/Debug}" enableAutoBuild="true" id="xilinx.gnu.mb.toolchain.builder.debug.930852495" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="GNU make" superClass="xilinx.gnu.mb.toolchain.builder.debug"/>\r
-                                                       <tool id="xilinx.gnu.mb.c.toolchain.assembler.debug.978073207" name="MicroBlaze gcc assembler" superClass="xilinx.gnu.mb.c.toolchain.assembler.debug">\r
-                                                               <option id="xilinx.gnu.mb.assembler.usele.2022235394" name="Produce little endian code (-mlittle-endian)" superClass="xilinx.gnu.mb.assembler.usele" value="true" valueType="boolean"/>\r
-                                                               <inputType id="xilinx.gnu.assembler.input.278099745" superClass="xilinx.gnu.assembler.input"/>\r
-                                                       </tool>\r
-                                                       <tool id="xilinx.gnu.mb.c.toolchain.compiler.debug.835271198" name="MicroBlaze gcc compiler" superClass="xilinx.gnu.mb.c.toolchain.compiler.debug">\r
-                                                               <option defaultValue="gnu.c.optimization.level.none" id="xilinx.gnu.compiler.option.optimization.level.716987775" name="Optimization Level" superClass="xilinx.gnu.compiler.option.optimization.level" valueType="enumerated"/>\r
-                                                               <option id="xilinx.gnu.compiler.option.debugging.level.1945788166" name="Debug Level" superClass="xilinx.gnu.compiler.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/>\r
-                                                               <option id="xilinx.gnu.mb.compiler.inferred.mbversion.96719191" name="MicroBlaze Version" superClass="xilinx.gnu.mb.compiler.inferred.mbversion" value="8.10.a" valueType="string"/>\r
-                                                               <option id="xilinx.gnu.mb.compiler.inferred.usele.706567309" name="Produce little endian code (-mlittle-endian)" superClass="xilinx.gnu.mb.compiler.inferred.usele" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.compiler.inferred.usebarrel.1579209203" name="Use Barrel Shifter (-mxl-barrel-shift)" superClass="xilinx.gnu.mb.compiler.inferred.usebarrel" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.compiler.inferred.usepcmp.1892830682" name="Use Pattern Compare (-mxl-pattern-compare)" superClass="xilinx.gnu.mb.compiler.inferred.usepcmp" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.compiler.inferred.usediv.441061894" name="Use hardware divider (-mno-xl-soft-div)" superClass="xilinx.gnu.mb.compiler.inferred.usediv" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.compiler.inferred.fpu.889919540" name="FPU" superClass="xilinx.gnu.mb.compiler.inferred.fpu" value="xilinx.gnu.mb.compiler.inferred.fpu.basic" valueType="enumerated"/>\r
-                                                               <option id="xilinx.gnu.mb.compiler.inferred.mul.769937239" name="Hardware Multiplier" superClass="xilinx.gnu.mb.compiler.inferred.mul" value="xilinx.gnu.mb.compiler.inferred.mul.32bit" valueType="enumerated"/>\r
-                                                               <option id="xilinx.gnu.compiler.inferred.swplatform.includes.702422111" name="Software Platform Include Path" superClass="xilinx.gnu.compiler.inferred.swplatform.includes" valueType="includePath">\r
-                                                                       <listOptionValue builtIn="false" value="../../RTOSDemoBSP/microblaze_0/include"/>\r
-                                                               </option>\r
-                                                               <option id="xilinx.gnu.compiler.dircategory.includes.788537379" name="Include Paths" superClass="xilinx.gnu.compiler.dircategory.includes" valueType="includePath">\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lwIP/netif/include}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lwIP/include}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lwIP/lwIP_Apps/apps/httpserver_raw}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lwIP/lwIP_Apps}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lwIP/include/ipv4}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Demo_Source/include}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/FreeRTOS_Source/include}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/FreeRTOS_Source/portable/GCC/MicroBlazeV8}&quot;"/>\r
-                                                               </option>\r
-                                                               <option id="xilinx.gnu.compiler.symbols.defined.522894226" name="Defined symbols (-D)" superClass="xilinx.gnu.compiler.symbols.defined"/>\r
-                                                               <inputType id="xilinx.gnu.compiler.input.264309084" name="C source files" superClass="xilinx.gnu.compiler.input"/>\r
-                                                       </tool>\r
-                                                       <tool id="xilinx.gnu.mb.cxx.toolchain.compiler.debug.1757864406" name="MicroBlaze g++ compiler" superClass="xilinx.gnu.mb.cxx.toolchain.compiler.debug">\r
-                                                               <option defaultValue="gnu.c.optimization.level.none" id="xilinx.gnu.compiler.option.optimization.level.1341113404" name="Optimization Level" superClass="xilinx.gnu.compiler.option.optimization.level" valueType="enumerated"/>\r
-                                                               <option id="xilinx.gnu.compiler.option.debugging.level.437017279" name="Debug Level" superClass="xilinx.gnu.compiler.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/>\r
-                                                               <option id="xilinx.gnu.mb.compiler.inferred.mbversion.73247828" name="MicroBlaze Version" superClass="xilinx.gnu.mb.compiler.inferred.mbversion" value="8.10.a" valueType="string"/>\r
-                                                               <option id="xilinx.gnu.mb.compiler.inferred.usele.1996765397" name="Produce little endian code (-mlittle-endian)" superClass="xilinx.gnu.mb.compiler.inferred.usele" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.compiler.inferred.usebarrel.1004904872" name="Use Barrel Shifter (-mxl-barrel-shift)" superClass="xilinx.gnu.mb.compiler.inferred.usebarrel" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.compiler.inferred.usepcmp.2102491479" name="Use Pattern Compare (-mxl-pattern-compare)" superClass="xilinx.gnu.mb.compiler.inferred.usepcmp" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.compiler.inferred.usediv.1878612258" name="Use hardware divider (-mno-xl-soft-div)" superClass="xilinx.gnu.mb.compiler.inferred.usediv" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.compiler.inferred.fpu.548710489" name="FPU" superClass="xilinx.gnu.mb.compiler.inferred.fpu" value="xilinx.gnu.mb.compiler.inferred.fpu.basic" valueType="enumerated"/>\r
-                                                               <option id="xilinx.gnu.mb.compiler.inferred.mul.901018577" name="Hardware Multiplier" superClass="xilinx.gnu.mb.compiler.inferred.mul" value="xilinx.gnu.mb.compiler.inferred.mul.32bit" valueType="enumerated"/>\r
-                                                               <option id="xilinx.gnu.compiler.inferred.swplatform.includes.579575146" name="Software Platform Include Path" superClass="xilinx.gnu.compiler.inferred.swplatform.includes" valueType="includePath">\r
-                                                                       <listOptionValue builtIn="false" value="../../RTOSDemoBSP/microblaze_0/include"/>\r
-                                                               </option>\r
-                                                               <option id="xilinx.gnu.compiler.dircategory.includes.877153321" superClass="xilinx.gnu.compiler.dircategory.includes" valueType="includePath">\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lwIP/netif/include}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lwIP/include}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lwIP/lwIP_Apps/apps/httpserver_raw}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lwIP/lwIP_Apps}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lwIP/include/ipv4}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Demo_Source/include}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/FreeRTOS_Source/include}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/FreeRTOS_Source/portable/GCC/MicroBlazeV8}&quot;"/>\r
-                                                               </option>\r
-                                                       </tool>\r
-                                                       <tool id="xilinx.gnu.mb.toolchain.archiver.1048677661" name="MicroBlaze archiver" superClass="xilinx.gnu.mb.toolchain.archiver"/>\r
-                                                       <tool id="xilinx.gnu.mb.c.toolchain.linker.debug.1152738454" name="MicroBlaze gcc linker" superClass="xilinx.gnu.mb.c.toolchain.linker.debug">\r
-                                                               <option id="xilinx.gnu.mb.linker.inferred.mbversion.1959093628" name="MicroBlaze Version" superClass="xilinx.gnu.mb.linker.inferred.mbversion" value="8.10.a" valueType="string"/>\r
-                                                               <option id="xilinx.gnu.mb.linker.inferred.usele.1271633588" name="Produce little endian artifacts (-mlittle-endian)" superClass="xilinx.gnu.mb.linker.inferred.usele" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.linker.inferred.usebarrel.1223851799" name="Use Barrel Shifter (-mxl-barrel-shift)" superClass="xilinx.gnu.mb.linker.inferred.usebarrel" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.linker.inferred.usepcmp.1132489905" name="Use Pattern Compare (-mxl-pattern-compare)" superClass="xilinx.gnu.mb.linker.inferred.usepcmp" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.linker.inferred.usediv.7712425" name="Use hardware divider (-mno-xl-soft-div)" superClass="xilinx.gnu.mb.linker.inferred.usediv" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.linker.inferred.fpu.563163194" name="FPU" superClass="xilinx.gnu.mb.linker.inferred.fpu" value="xilinx.gnu.mb.linker.inferred.fpu.basic" valueType="enumerated"/>\r
-                                                               <option id="xilinx.gnu.mb.linker.inferred.mul.1195982521" name="Hardware Multiplier" superClass="xilinx.gnu.mb.linker.inferred.mul" value="xilinx.gnu.mb.linker.inferred.mul.32bit" valueType="enumerated"/>\r
-                                                               <option id="xilinx.gnu.linker.inferred.swplatform.lpath.989668099" name="Software Platform Library Path" superClass="xilinx.gnu.linker.inferred.swplatform.lpath" valueType="libPaths">\r
-                                                                       <listOptionValue builtIn="false" value="../../RTOSDemoBSP/microblaze_0/lib"/>\r
-                                                               </option>\r
-                                                               <option id="xilinx.gnu.c.linker.option.lscript.176750025" name="Linker Script" superClass="xilinx.gnu.c.linker.option.lscript" value="../src/lscript.ld" valueType="string"/>\r
-                                                               <option id="xilinx.gnu.c.link.option.ldflags.1590675094" name="Linker Flags" superClass="xilinx.gnu.c.link.option.ldflags" value="" valueType="string"/>\r
-                                                               <inputType id="xilinx.gnu.linker.input.384537517" superClass="xilinx.gnu.linker.input">\r
-                                                                       <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>\r
-                                                                       <additionalInput kind="additionalinput" paths="$(LIBS)"/>\r
-                                                               </inputType>\r
-                                                               <inputType id="xilinx.gnu.linker.input.lscript.728905130" name="Linker Script" superClass="xilinx.gnu.linker.input.lscript"/>\r
-                                                       </tool>\r
-                                                       <tool id="xilinx.gnu.mb.cxx.toolchain.linker.debug.1026703573" name="MicroBlaze g++ linker" superClass="xilinx.gnu.mb.cxx.toolchain.linker.debug">\r
-                                                               <option id="xilinx.gnu.mb.linker.inferred.mbversion.1521662887" name="MicroBlaze Version" superClass="xilinx.gnu.mb.linker.inferred.mbversion" value="8.10.a" valueType="string"/>\r
-                                                               <option id="xilinx.gnu.mb.linker.inferred.usele.304488947" name="Produce little endian artifacts (-mlittle-endian)" superClass="xilinx.gnu.mb.linker.inferred.usele" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.linker.inferred.usebarrel.1307373804" name="Use Barrel Shifter (-mxl-barrel-shift)" superClass="xilinx.gnu.mb.linker.inferred.usebarrel" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.linker.inferred.usepcmp.972908817" name="Use Pattern Compare (-mxl-pattern-compare)" superClass="xilinx.gnu.mb.linker.inferred.usepcmp" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.linker.inferred.usediv.1587557455" name="Use hardware divider (-mno-xl-soft-div)" superClass="xilinx.gnu.mb.linker.inferred.usediv" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.linker.inferred.fpu.186398214" name="FPU" superClass="xilinx.gnu.mb.linker.inferred.fpu" value="xilinx.gnu.mb.linker.inferred.fpu.basic" valueType="enumerated"/>\r
-                                                               <option id="xilinx.gnu.mb.linker.inferred.mul.1765763083" name="Hardware Multiplier" superClass="xilinx.gnu.mb.linker.inferred.mul" value="xilinx.gnu.mb.linker.inferred.mul.32bit" valueType="enumerated"/>\r
-                                                               <option id="xilinx.gnu.linker.inferred.swplatform.lpath.771165792" name="Software Platform Library Path" superClass="xilinx.gnu.linker.inferred.swplatform.lpath" valueType="libPaths">\r
-                                                                       <listOptionValue builtIn="false" value="../../RTOSDemoBSP/microblaze_0/lib"/>\r
-                                                               </option>\r
-                                                               <option id="xilinx.gnu.c.linker.option.lscript.664782973" name="Linker Script" superClass="xilinx.gnu.c.linker.option.lscript" value="../src/lscript.ld" valueType="string"/>\r
-                                                               <option id="xilinx.gnu.c.link.option.ldflags.1516959028" name="Linker Flags" superClass="xilinx.gnu.c.link.option.ldflags" value="" valueType="string"/>\r
-                                                       </tool>\r
-                                                       <tool id="xilinx.gnu.mb.size.debug.778946449" name="MicroBlaze Print Size" superClass="xilinx.gnu.mb.size.debug"/>\r
-                                                       <tool id="xilinx.elfcheck.mb.debug.225695907" name="Xilinx ELF Check" superClass="xilinx.elfcheck.mb.debug">\r
-                                                               <option id="xilinx.elfcheck.option.hwspec.581017009" name="Hardware Specification" superClass="xilinx.elfcheck.option.hwspec" value="-hw ../../HardwareWithEthernetLite/system.xml" valueType="string"/>\r
-                                                               <option id="xilinx.elfcheck.option.procname.479774108" name="Processor Name" superClass="xilinx.elfcheck.option.procname" value="-pe microblaze_0" valueType="string"/>\r
-                                                       </tool>\r
-                                               </toolChain>\r
-                                       </folderInfo>\r
-                                       <sourceEntries>\r
-                                               <entry excluding="lwIP|lwIP/lwIP_Apps/apps/httpserver_raw/fsdata.c|serial.c|src/testperiph.c|ParTest.c|src/xuartlite_selftest_example.c|src/xtmrctr_selftest_example.c|src/xtmrctr_intr_example.c|src/xintc_tapp_example.c|src/xgpio_tapp_example.c|src/xgpio_intr_tapp_example.c|src/xemaclite_polled_example.c|src/xemaclite_intr_example.c|Demo_Source|RegisterTests.c|main-full.c" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>\r
-                                       </sourceEntries>\r
-                               </configuration>\r
-                       </storageModule>\r
-                       <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>\r
-                       <storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>\r
-                       <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>\r
-                       <storageModule moduleId="scannerConfiguration">\r
-                               <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>\r
-                               <profile id="com.xilinx.managedbuilder.ui.MBGCCManagedMakePerProjectProfileC">\r
-                                       <buildOutputProvider>\r
-                                               <openAction enabled="true" filePath=""/>\r
-                                               <parser enabled="true"/>\r
-                                       </buildOutputProvider>\r
-                                       <scannerInfoProvider id="specsFile">\r
-                                               <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="mb-gcc" useDefault="true"/>\r
-                                               <parser enabled="true"/>\r
-                                       </scannerInfoProvider>\r
-                               </profile>\r
-                               <profile id="com.xilinx.managedbuilder.ui.PPCGCCManagedMakePerProjectProfileC">\r
-                                       <buildOutputProvider>\r
-                                               <openAction enabled="true" filePath=""/>\r
-                                               <parser enabled="true"/>\r
-                                       </buildOutputProvider>\r
-                                       <scannerInfoProvider id="specsFile">\r
-                                               <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="powerpc-eabi-gcc" useDefault="true"/>\r
-                                               <parser enabled="true"/>\r
-                                       </scannerInfoProvider>\r
-                               </profile>\r
-                               <profile id="com.xilinx.managedbuilder.ui.ARMGCCManagedMakePerProjectProfileC">\r
-                                       <buildOutputProvider>\r
-                                               <openAction enabled="true" filePath=""/>\r
-                                               <parser enabled="true"/>\r
-                                       </buildOutputProvider>\r
-                                       <scannerInfoProvider id="specsFile">\r
-                                               <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-xilinxa9-eabi-gcc" useDefault="true"/>\r
-                                               <parser enabled="true"/>\r
-                                       </scannerInfoProvider>\r
-                               </profile>\r
-                               <profile id="com.xilinx.managedbuilder.ui.ARMLinuxGCCManagedMakePerProjectProfileC">\r
-                                       <buildOutputProvider>\r
-                                               <openAction enabled="true" filePath=""/>\r
-                                               <parser enabled="true"/>\r
-                                       </buildOutputProvider>\r
-                                       <scannerInfoProvider id="specsFile">\r
-                                               <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-xilinxa9-linux-gnueabi-gcc" useDefault="true"/>\r
-                                               <parser enabled="true"/>\r
-                                       </scannerInfoProvider>\r
-                               </profile>\r
-                               <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">\r
-                                       <buildOutputProvider>\r
-                                               <openAction enabled="true" filePath=""/>\r
-                                               <parser enabled="true"/>\r
-                                       </buildOutputProvider>\r
-                                       <scannerInfoProvider id="specsFile">\r
-                                               <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
-                                               <parser enabled="true"/>\r
-                                       </scannerInfoProvider>\r
-                               </profile>\r
-                               <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">\r
-                                       <buildOutputProvider>\r
-                                               <openAction enabled="true" filePath=""/>\r
-                                               <parser enabled="true"/>\r
-                                       </buildOutputProvider>\r
-                                       <scannerInfoProvider id="makefileGenerator">\r
-                                               <runAction arguments="-E -P -v -dD" command="" useDefault="true"/>\r
-                                               <parser enabled="true"/>\r
-                                       </scannerInfoProvider>\r
-                               </profile>\r
-                               <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">\r
-                                       <buildOutputProvider>\r
-                                               <openAction enabled="true" filePath=""/>\r
-                                               <parser enabled="true"/>\r
-                                       </buildOutputProvider>\r
-                                       <scannerInfoProvider id="specsFile">\r
-                                               <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
-                                               <parser enabled="true"/>\r
-                                       </scannerInfoProvider>\r
-                               </profile>\r
-                               <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">\r
-                                       <buildOutputProvider>\r
-                                               <openAction enabled="true" filePath=""/>\r
-                                               <parser enabled="true"/>\r
-                                       </buildOutputProvider>\r
-                                       <scannerInfoProvider id="specsFile">\r
-                                               <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>\r
-                                               <parser enabled="true"/>\r
-                                       </scannerInfoProvider>\r
-                               </profile>\r
-                               <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">\r
-                                       <buildOutputProvider>\r
-                                               <openAction enabled="true" filePath=""/>\r
-                                               <parser enabled="true"/>\r
-                                       </buildOutputProvider>\r
-                                       <scannerInfoProvider id="specsFile">\r
-                                               <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>\r
-                                               <parser enabled="true"/>\r
-                                       </scannerInfoProvider>\r
-                               </profile>\r
-                               <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">\r
-                                       <buildOutputProvider>\r
-                                               <openAction enabled="true" filePath=""/>\r
-                                               <parser enabled="true"/>\r
-                                       </buildOutputProvider>\r
-                                       <scannerInfoProvider id="specsFile">\r
-                                               <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>\r
-                                               <parser enabled="true"/>\r
-                                       </scannerInfoProvider>\r
-                               </profile>\r
-                               <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">\r
-                                       <buildOutputProvider>\r
-                                               <openAction enabled="true" filePath=""/>\r
-                                               <parser enabled="true"/>\r
-                                       </buildOutputProvider>\r
-                                       <scannerInfoProvider id="specsFile">\r
-                                               <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>\r
-                                               <parser enabled="true"/>\r
-                                       </scannerInfoProvider>\r
-                               </profile>\r
-                               <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">\r
-                                       <buildOutputProvider>\r
-                                               <openAction enabled="true" filePath=""/>\r
-                                               <parser enabled="true"/>\r
-                                       </buildOutputProvider>\r
-                                       <scannerInfoProvider id="specsFile">\r
-                                               <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>\r
-                                               <parser enabled="true"/>\r
-                                       </scannerInfoProvider>\r
-                               </profile>\r
-                               <scannerConfigBuildInfo instanceId="xilinx.gnu.mb.exe.release.1186286811;xilinx.gnu.mb.exe.release.1186286811.">\r
-                                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.xilinx.managedbuilder.ui.MBGCCManagedMakePerProjectProfileC"/>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.MBGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="mb-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.PPCGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="powerpc-eabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.ARMGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-xilinxa9-eabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.ARMLinuxGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-xilinxa9-linux-gnueabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="makefileGenerator">\r
-                                                       <runAction arguments="-E -P -v -dD" command="" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                               </scannerConfigBuildInfo>\r
-                               <scannerConfigBuildInfo instanceId="xilinx.gnu.mb.exe.debug.1890710697;xilinx.gnu.mb.exe.debug.1890710697.">\r
-                                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.xilinx.managedbuilder.ui.MBGCCManagedMakePerProjectProfileC"/>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.MBGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="mb-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.PPCGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="powerpc-eabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.ARMGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-xilinxa9-eabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.ARMLinuxGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-xilinxa9-linux-gnueabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="makefileGenerator">\r
-                                                       <runAction arguments="-E -P -v -dD" command="" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                               </scannerConfigBuildInfo>\r
-                               <scannerConfigBuildInfo instanceId="xilinx.gnu.mb.exe.debug.1890710697.1551842913;xilinx.gnu.mb.exe.debug.1890710697.1551842913.">\r
-                                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.xilinx.managedbuilder.ui.MBGCCManagedMakePerProjectProfileC"/>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.MBGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="mb-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.PPCGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="powerpc-eabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.ARMGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-xilinxa9-eabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.ARMLinuxGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-xilinxa9-linux-gnueabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="makefileGenerator">\r
-                                                       <runAction arguments="-E -P -v -dD" command="" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                               </scannerConfigBuildInfo>\r
-                               <scannerConfigBuildInfo instanceId="xilinx.gnu.mb.exe.debug.1890710697.1551842913;xilinx.gnu.mb.exe.debug.1890710697.1551842913.;xilinx.gnu.mb.c.toolchain.compiler.debug.835271198;xilinx.gnu.compiler.input.264309084">\r
-                                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.xilinx.managedbuilder.ui.MBGCCManagedMakePerProjectProfileC"/>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.MBGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="mb-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.PPCGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="powerpc-eabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.ARMGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-xilinxa9-eabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.ARMLinuxGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-xilinxa9-linux-gnueabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="makefileGenerator">\r
-                                                       <runAction arguments="-E -P -v -dD" command="" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                               </scannerConfigBuildInfo>\r
-                               <scannerConfigBuildInfo instanceId="xilinx.gnu.mb.exe.debug.1890710697;xilinx.gnu.mb.exe.debug.1890710697.;xilinx.gnu.mb.c.toolchain.compiler.debug.1867440614;xilinx.gnu.compiler.input.2107818916">\r
-                                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.xilinx.managedbuilder.ui.MBGCCManagedMakePerProjectProfileC"/>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.MBGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="mb-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.PPCGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="powerpc-eabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.ARMGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-xilinxa9-eabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.ARMLinuxGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-xilinxa9-linux-gnueabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="makefileGenerator">\r
-                                                       <runAction arguments="-E -P -v -dD" command="" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                               </scannerConfigBuildInfo>\r
-                               <scannerConfigBuildInfo instanceId="xilinx.gnu.mb.exe.release.1186286811;xilinx.gnu.mb.exe.release.1186286811.;xilinx.gnu.mb.c.toolchain.compiler.release.1828722124;xilinx.gnu.compiler.input.690911521">\r
-                                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.xilinx.managedbuilder.ui.MBGCCManagedMakePerProjectProfileC"/>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.MBGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="mb-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.PPCGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="powerpc-eabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.ARMGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-xilinxa9-eabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.ARMLinuxGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-xilinxa9-linux-gnueabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="makefileGenerator">\r
-                                                       <runAction arguments="-E -P -v -dD" command="" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                               </scannerConfigBuildInfo>\r
-                       </storageModule>\r
-               </cconfiguration>\r
-               <cconfiguration id="xilinx.gnu.mb.exe.debug.1890710697.1391169017">\r
-                       <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="xilinx.gnu.mb.exe.debug.1890710697.1391169017" moduleId="org.eclipse.cdt.core.settings" name="Full">\r
-                               <externalSettings/>\r
-                               <extensions>\r
-                                       <extension id="com.xilinx.sdk.managedbuilder.XELF.mb" point="org.eclipse.cdt.core.BinaryParser"/>\r
-                                       <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
-                                       <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>\r
-                                       <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
-                                       <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
-                                       <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
-                               </extensions>\r
-                       </storageModule>\r
-                       <storageModule moduleId="cdtBuildSystem" version="4.0.0">\r
-                               <configuration artifactExtension="elf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="Comprehensive example" id="xilinx.gnu.mb.exe.debug.1890710697.1391169017" name="Full" parent="xilinx.gnu.mb.exe.debug">\r
-                                       <folderInfo id="xilinx.gnu.mb.exe.debug.1890710697.1391169017." name="/" resourcePath="">\r
-                                               <toolChain id="xilinx.gnu.mb.exe.debug.toolchain.1065681176" name="Xilinx MicroBlaze GNU Toolchain" superClass="xilinx.gnu.mb.exe.debug.toolchain">\r
-                                                       <targetPlatform binaryParser="com.xilinx.sdk.managedbuilder.XELF.mb" id="xilinx.mb.target.gnu.base.debug.472412552" isAbstract="false" name="Debug Platform" superClass="xilinx.mb.target.gnu.base.debug"/>\r
-                                                       <builder buildPath="${workspace_loc:/RTOSDemoSource/Debug}" enableAutoBuild="true" id="xilinx.gnu.mb.toolchain.builder.debug.2034661333" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="GNU make" superClass="xilinx.gnu.mb.toolchain.builder.debug"/>\r
-                                                       <tool id="xilinx.gnu.mb.c.toolchain.assembler.debug.1663720311" name="MicroBlaze gcc assembler" superClass="xilinx.gnu.mb.c.toolchain.assembler.debug">\r
-                                                               <option id="xilinx.gnu.mb.assembler.usele.787661810" name="Produce little endian code (-mlittle-endian)" superClass="xilinx.gnu.mb.assembler.usele" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.both.asm.option.include.paths.67817492" name="Include Paths (-I)" superClass="xilinx.gnu.both.asm.option.include.paths" valueType="includePath">\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}}&quot;"/>\r
-                                                               </option>\r
-                                                               <inputType id="xilinx.gnu.assembler.input.828396103" superClass="xilinx.gnu.assembler.input"/>\r
-                                                       </tool>\r
-                                                       <tool id="xilinx.gnu.mb.c.toolchain.compiler.debug.1610218702" name="MicroBlaze gcc compiler" superClass="xilinx.gnu.mb.c.toolchain.compiler.debug">\r
-                                                               <option defaultValue="gnu.c.optimization.level.none" id="xilinx.gnu.compiler.option.optimization.level.116271748" name="Optimization Level" superClass="xilinx.gnu.compiler.option.optimization.level" value="gnu.c.optimization.level.none" valueType="enumerated"/>\r
-                                                               <option id="xilinx.gnu.compiler.option.debugging.level.171855055" name="Debug Level" superClass="xilinx.gnu.compiler.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/>\r
-                                                               <option id="xilinx.gnu.mb.compiler.inferred.mbversion.900759104" name="MicroBlaze Version" superClass="xilinx.gnu.mb.compiler.inferred.mbversion" value="8.10.a" valueType="string"/>\r
-                                                               <option id="xilinx.gnu.mb.compiler.inferred.usele.366091388" name="Produce little endian code (-mlittle-endian)" superClass="xilinx.gnu.mb.compiler.inferred.usele" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.compiler.inferred.usebarrel.1212298558" name="Use Barrel Shifter (-mxl-barrel-shift)" superClass="xilinx.gnu.mb.compiler.inferred.usebarrel" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.compiler.inferred.usepcmp.1277381811" name="Use Pattern Compare (-mxl-pattern-compare)" superClass="xilinx.gnu.mb.compiler.inferred.usepcmp" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.compiler.inferred.usediv.192502540" name="Use hardware divider (-mno-xl-soft-div)" superClass="xilinx.gnu.mb.compiler.inferred.usediv" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.compiler.inferred.fpu.2033157740" name="FPU" superClass="xilinx.gnu.mb.compiler.inferred.fpu" value="xilinx.gnu.mb.compiler.inferred.fpu.basic" valueType="enumerated"/>\r
-                                                               <option id="xilinx.gnu.mb.compiler.inferred.mul.2087417140" name="Hardware Multiplier" superClass="xilinx.gnu.mb.compiler.inferred.mul" value="xilinx.gnu.mb.compiler.inferred.mul.32bit" valueType="enumerated"/>\r
-                                                               <option id="xilinx.gnu.compiler.inferred.swplatform.includes.729428302" name="Software Platform Include Path" superClass="xilinx.gnu.compiler.inferred.swplatform.includes" valueType="includePath">\r
-                                                                       <listOptionValue builtIn="false" value="../../RTOSDemoBSP/microblaze_0/include"/>\r
-                                                               </option>\r
-                                                               <option id="xilinx.gnu.compiler.dircategory.includes.1539819216" name="Include Paths" superClass="xilinx.gnu.compiler.dircategory.includes" valueType="includePath">\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lwIP/netif/include}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lwIP/include}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lwIP/lwIP_Apps/apps/httpserver_raw}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lwIP/lwIP_Apps}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lwIP/include/ipv4}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Demo_Source/include}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/FreeRTOS_Source/include}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/FreeRTOS_Source/portable/GCC/MicroBlazeV8}&quot;"/>\r
-                                                               </option>\r
-                                                               <option id="xilinx.gnu.compiler.misc.other.1660455181" name="Other flags" superClass="xilinx.gnu.compiler.misc.other" value="-c -fmessage-length=0 -fno-strict-aliasing -Wextra" valueType="string"/>\r
-                                                               <option id="xilinx.gnu.compiler.option.warnings.pedantic.86490975" name="Pedantic (-pedantic)" superClass="xilinx.gnu.compiler.option.warnings.pedantic" value="false" valueType="boolean"/>\r
-                                                               <inputType id="xilinx.gnu.compiler.input.505106416" name="C source files" superClass="xilinx.gnu.compiler.input"/>\r
-                                                       </tool>\r
-                                                       <tool id="xilinx.gnu.mb.cxx.toolchain.compiler.debug.2087155544" name="MicroBlaze g++ compiler" superClass="xilinx.gnu.mb.cxx.toolchain.compiler.debug">\r
-                                                               <option defaultValue="gnu.c.optimization.level.none" id="xilinx.gnu.compiler.option.optimization.level.76035929" name="Optimization Level" superClass="xilinx.gnu.compiler.option.optimization.level" valueType="enumerated"/>\r
-                                                               <option id="xilinx.gnu.compiler.option.debugging.level.830648985" name="Debug Level" superClass="xilinx.gnu.compiler.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/>\r
-                                                               <option id="xilinx.gnu.mb.compiler.inferred.mbversion.1609359386" name="MicroBlaze Version" superClass="xilinx.gnu.mb.compiler.inferred.mbversion" value="8.10.a" valueType="string"/>\r
-                                                               <option id="xilinx.gnu.mb.compiler.inferred.usele.777715972" name="Produce little endian code (-mlittle-endian)" superClass="xilinx.gnu.mb.compiler.inferred.usele" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.compiler.inferred.usebarrel.1922242390" name="Use Barrel Shifter (-mxl-barrel-shift)" superClass="xilinx.gnu.mb.compiler.inferred.usebarrel" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.compiler.inferred.usepcmp.75463556" name="Use Pattern Compare (-mxl-pattern-compare)" superClass="xilinx.gnu.mb.compiler.inferred.usepcmp" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.compiler.inferred.usediv.1698265058" name="Use hardware divider (-mno-xl-soft-div)" superClass="xilinx.gnu.mb.compiler.inferred.usediv" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.compiler.inferred.fpu.1268286956" name="FPU" superClass="xilinx.gnu.mb.compiler.inferred.fpu" value="xilinx.gnu.mb.compiler.inferred.fpu.basic" valueType="enumerated"/>\r
-                                                               <option id="xilinx.gnu.mb.compiler.inferred.mul.147816156" name="Hardware Multiplier" superClass="xilinx.gnu.mb.compiler.inferred.mul" value="xilinx.gnu.mb.compiler.inferred.mul.32bit" valueType="enumerated"/>\r
-                                                               <option id="xilinx.gnu.compiler.inferred.swplatform.includes.1260701076" name="Software Platform Include Path" superClass="xilinx.gnu.compiler.inferred.swplatform.includes" valueType="includePath">\r
-                                                                       <listOptionValue builtIn="false" value="../../RTOSDemoBSP/microblaze_0/include"/>\r
-                                                               </option>\r
-                                                               <option id="xilinx.gnu.compiler.dircategory.includes.747654423" superClass="xilinx.gnu.compiler.dircategory.includes" valueType="includePath">\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lwIP/netif/include}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lwIP/include}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lwIP/lwIP_Apps/apps/httpserver_raw}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lwIP/lwIP_Apps}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lwIP/include/ipv4}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Demo_Source/include}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/FreeRTOS_Source/include}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/FreeRTOS_Source/portable/GCC/MicroBlazeV8}&quot;"/>\r
-                                                               </option>\r
-                                                       </tool>\r
-                                                       <tool id="xilinx.gnu.mb.toolchain.archiver.1361288263" name="MicroBlaze archiver" superClass="xilinx.gnu.mb.toolchain.archiver"/>\r
-                                                       <tool id="xilinx.gnu.mb.c.toolchain.linker.debug.512205974" name="MicroBlaze gcc linker" superClass="xilinx.gnu.mb.c.toolchain.linker.debug">\r
-                                                               <option id="xilinx.gnu.mb.linker.inferred.mbversion.88071915" name="MicroBlaze Version" superClass="xilinx.gnu.mb.linker.inferred.mbversion" value="8.10.a" valueType="string"/>\r
-                                                               <option id="xilinx.gnu.mb.linker.inferred.usele.2098428761" name="Produce little endian artifacts (-mlittle-endian)" superClass="xilinx.gnu.mb.linker.inferred.usele" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.linker.inferred.usebarrel.337502401" name="Use Barrel Shifter (-mxl-barrel-shift)" superClass="xilinx.gnu.mb.linker.inferred.usebarrel" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.linker.inferred.usepcmp.1186226796" name="Use Pattern Compare (-mxl-pattern-compare)" superClass="xilinx.gnu.mb.linker.inferred.usepcmp" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.linker.inferred.usediv.694766114" name="Use hardware divider (-mno-xl-soft-div)" superClass="xilinx.gnu.mb.linker.inferred.usediv" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.linker.inferred.fpu.1355435021" name="FPU" superClass="xilinx.gnu.mb.linker.inferred.fpu" value="xilinx.gnu.mb.linker.inferred.fpu.basic" valueType="enumerated"/>\r
-                                                               <option id="xilinx.gnu.mb.linker.inferred.mul.1335029834" name="Hardware Multiplier" superClass="xilinx.gnu.mb.linker.inferred.mul" value="xilinx.gnu.mb.linker.inferred.mul.32bit" valueType="enumerated"/>\r
-                                                               <option id="xilinx.gnu.linker.inferred.swplatform.lpath.1334512887" name="Software Platform Library Path" superClass="xilinx.gnu.linker.inferred.swplatform.lpath" valueType="libPaths">\r
-                                                                       <listOptionValue builtIn="false" value="../../RTOSDemoBSP/microblaze_0/lib"/>\r
-                                                               </option>\r
-                                                               <option id="xilinx.gnu.c.linker.option.lscript.1073578867" name="Linker Script" superClass="xilinx.gnu.c.linker.option.lscript" value="../src/lscript.ld" valueType="string"/>\r
-                                                               <option id="xilinx.gnu.c.link.option.ldflags.471396681" name="Linker Flags" superClass="xilinx.gnu.c.link.option.ldflags" value="" valueType="string"/>\r
-                                                               <option id="xilinx.gnu.c.link.option.other.791541632" name="Other options (-XLinker [option])" superClass="xilinx.gnu.c.link.option.other"/>\r
-                                                               <inputType id="xilinx.gnu.linker.input.1399699093" superClass="xilinx.gnu.linker.input">\r
-                                                                       <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>\r
-                                                                       <additionalInput kind="additionalinput" paths="$(LIBS)"/>\r
-                                                               </inputType>\r
-                                                               <inputType id="xilinx.gnu.linker.input.lscript.751524851" name="Linker Script" superClass="xilinx.gnu.linker.input.lscript"/>\r
-                                                       </tool>\r
-                                                       <tool id="xilinx.gnu.mb.cxx.toolchain.linker.debug.2073868051" name="MicroBlaze g++ linker" superClass="xilinx.gnu.mb.cxx.toolchain.linker.debug">\r
-                                                               <option id="xilinx.gnu.mb.linker.inferred.mbversion.563798700" name="MicroBlaze Version" superClass="xilinx.gnu.mb.linker.inferred.mbversion" value="8.10.a" valueType="string"/>\r
-                                                               <option id="xilinx.gnu.mb.linker.inferred.usele.143230105" name="Produce little endian artifacts (-mlittle-endian)" superClass="xilinx.gnu.mb.linker.inferred.usele" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.linker.inferred.usebarrel.1356384257" name="Use Barrel Shifter (-mxl-barrel-shift)" superClass="xilinx.gnu.mb.linker.inferred.usebarrel" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.linker.inferred.usepcmp.1766995151" name="Use Pattern Compare (-mxl-pattern-compare)" superClass="xilinx.gnu.mb.linker.inferred.usepcmp" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.linker.inferred.usediv.1611022077" name="Use hardware divider (-mno-xl-soft-div)" superClass="xilinx.gnu.mb.linker.inferred.usediv" value="true" valueType="boolean"/>\r
-                                                               <option id="xilinx.gnu.mb.linker.inferred.fpu.484719747" name="FPU" superClass="xilinx.gnu.mb.linker.inferred.fpu" value="xilinx.gnu.mb.linker.inferred.fpu.basic" valueType="enumerated"/>\r
-                                                               <option id="xilinx.gnu.mb.linker.inferred.mul.494988599" name="Hardware Multiplier" superClass="xilinx.gnu.mb.linker.inferred.mul" value="xilinx.gnu.mb.linker.inferred.mul.32bit" valueType="enumerated"/>\r
-                                                               <option id="xilinx.gnu.linker.inferred.swplatform.lpath.1681875689" name="Software Platform Library Path" superClass="xilinx.gnu.linker.inferred.swplatform.lpath" valueType="libPaths">\r
-                                                                       <listOptionValue builtIn="false" value="../../RTOSDemoBSP/microblaze_0/lib"/>\r
-                                                               </option>\r
-                                                               <option id="xilinx.gnu.c.linker.option.lscript.480905448" name="Linker Script" superClass="xilinx.gnu.c.linker.option.lscript" value="../src/lscript.ld" valueType="string"/>\r
-                                                               <option id="xilinx.gnu.c.link.option.ldflags.548655668" name="Linker Flags" superClass="xilinx.gnu.c.link.option.ldflags" value="" valueType="string"/>\r
-                                                       </tool>\r
-                                                       <tool id="xilinx.gnu.mb.size.debug.536351174" name="MicroBlaze Print Size" superClass="xilinx.gnu.mb.size.debug"/>\r
-                                                       <tool id="xilinx.elfcheck.mb.debug.1281142255" name="Xilinx ELF Check" superClass="xilinx.elfcheck.mb.debug">\r
-                                                               <option id="xilinx.elfcheck.option.hwspec.1602098677" name="Hardware Specification" superClass="xilinx.elfcheck.option.hwspec" value="-hw ../../HardwareWithEthernetLite/system.xml" valueType="string"/>\r
-                                                               <option id="xilinx.elfcheck.option.procname.1990677201" name="Processor Name" superClass="xilinx.elfcheck.option.procname" value="-pe microblaze_0" valueType="string"/>\r
-                                                       </tool>\r
-                                               </toolChain>\r
-                                       </folderInfo>\r
-                                       <sourceEntries>\r
-                                               <entry excluding="lwIP/lwIP_Apps/apps/httpserver_raw/fsdata.c|src/xuartlite_selftest_example.c|src/xtmrctr_selftest_example.c|src/xtmrctr_intr_example.c|src/xintc_tapp_example.c|src/xgpio_tapp_example.c|src/xgpio_intr_tapp_example.c|src/xemaclite_polled_example.c|src/xemaclite_intr_example.c|src/testperiph.c|main-blinky.c" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>\r
-                                       </sourceEntries>\r
-                               </configuration>\r
-                       </storageModule>\r
-                       <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>\r
-                       <storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>\r
-                       <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>\r
-                       <storageModule moduleId="scannerConfiguration">\r
-                               <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>\r
-                               <profile id="com.xilinx.managedbuilder.ui.MBGCCManagedMakePerProjectProfileC">\r
-                                       <buildOutputProvider>\r
-                                               <openAction enabled="true" filePath=""/>\r
-                                               <parser enabled="true"/>\r
-                                       </buildOutputProvider>\r
-                                       <scannerInfoProvider id="specsFile">\r
-                                               <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="mb-gcc" useDefault="true"/>\r
-                                               <parser enabled="true"/>\r
-                                       </scannerInfoProvider>\r
-                               </profile>\r
-                               <profile id="com.xilinx.managedbuilder.ui.PPCGCCManagedMakePerProjectProfileC">\r
-                                       <buildOutputProvider>\r
-                                               <openAction enabled="true" filePath=""/>\r
-                                               <parser enabled="true"/>\r
-                                       </buildOutputProvider>\r
-                                       <scannerInfoProvider id="specsFile">\r
-                                               <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="powerpc-eabi-gcc" useDefault="true"/>\r
-                                               <parser enabled="true"/>\r
-                                       </scannerInfoProvider>\r
-                               </profile>\r
-                               <profile id="com.xilinx.managedbuilder.ui.ARMGCCManagedMakePerProjectProfileC">\r
-                                       <buildOutputProvider>\r
-                                               <openAction enabled="true" filePath=""/>\r
-                                               <parser enabled="true"/>\r
-                                       </buildOutputProvider>\r
-                                       <scannerInfoProvider id="specsFile">\r
-                                               <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-xilinxa9-eabi-gcc" useDefault="true"/>\r
-                                               <parser enabled="true"/>\r
-                                       </scannerInfoProvider>\r
-                               </profile>\r
-                               <profile id="com.xilinx.managedbuilder.ui.ARMLinuxGCCManagedMakePerProjectProfileC">\r
-                                       <buildOutputProvider>\r
-                                               <openAction enabled="true" filePath=""/>\r
-                                               <parser enabled="true"/>\r
-                                       </buildOutputProvider>\r
-                                       <scannerInfoProvider id="specsFile">\r
-                                               <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-xilinxa9-linux-gnueabi-gcc" useDefault="true"/>\r
-                                               <parser enabled="true"/>\r
-                                       </scannerInfoProvider>\r
-                               </profile>\r
-                               <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">\r
-                                       <buildOutputProvider>\r
-                                               <openAction enabled="true" filePath=""/>\r
-                                               <parser enabled="true"/>\r
-                                       </buildOutputProvider>\r
-                                       <scannerInfoProvider id="specsFile">\r
-                                               <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
-                                               <parser enabled="true"/>\r
-                                       </scannerInfoProvider>\r
-                               </profile>\r
-                               <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">\r
-                                       <buildOutputProvider>\r
-                                               <openAction enabled="true" filePath=""/>\r
-                                               <parser enabled="true"/>\r
-                                       </buildOutputProvider>\r
-                                       <scannerInfoProvider id="makefileGenerator">\r
-                                               <runAction arguments="-E -P -v -dD" command="" useDefault="true"/>\r
-                                               <parser enabled="true"/>\r
-                                       </scannerInfoProvider>\r
-                               </profile>\r
-                               <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">\r
-                                       <buildOutputProvider>\r
-                                               <openAction enabled="true" filePath=""/>\r
-                                               <parser enabled="true"/>\r
-                                       </buildOutputProvider>\r
-                                       <scannerInfoProvider id="specsFile">\r
-                                               <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
-                                               <parser enabled="true"/>\r
-                                       </scannerInfoProvider>\r
-                               </profile>\r
-                               <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">\r
-                                       <buildOutputProvider>\r
-                                               <openAction enabled="true" filePath=""/>\r
-                                               <parser enabled="true"/>\r
-                                       </buildOutputProvider>\r
-                                       <scannerInfoProvider id="specsFile">\r
-                                               <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>\r
-                                               <parser enabled="true"/>\r
-                                       </scannerInfoProvider>\r
-                               </profile>\r
-                               <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">\r
-                                       <buildOutputProvider>\r
-                                               <openAction enabled="true" filePath=""/>\r
-                                               <parser enabled="true"/>\r
-                                       </buildOutputProvider>\r
-                                       <scannerInfoProvider id="specsFile">\r
-                                               <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>\r
-                                               <parser enabled="true"/>\r
-                                       </scannerInfoProvider>\r
-                               </profile>\r
-                               <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">\r
-                                       <buildOutputProvider>\r
-                                               <openAction enabled="true" filePath=""/>\r
-                                               <parser enabled="true"/>\r
-                                       </buildOutputProvider>\r
-                                       <scannerInfoProvider id="specsFile">\r
-                                               <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>\r
-                                               <parser enabled="true"/>\r
-                                       </scannerInfoProvider>\r
-                               </profile>\r
-                               <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">\r
-                                       <buildOutputProvider>\r
-                                               <openAction enabled="true" filePath=""/>\r
-                                               <parser enabled="true"/>\r
-                                       </buildOutputProvider>\r
-                                       <scannerInfoProvider id="specsFile">\r
-                                               <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>\r
-                                               <parser enabled="true"/>\r
-                                       </scannerInfoProvider>\r
-                               </profile>\r
-                               <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">\r
-                                       <buildOutputProvider>\r
-                                               <openAction enabled="true" filePath=""/>\r
-                                               <parser enabled="true"/>\r
-                                       </buildOutputProvider>\r
-                                       <scannerInfoProvider id="specsFile">\r
-                                               <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>\r
-                                               <parser enabled="true"/>\r
-                                       </scannerInfoProvider>\r
-                               </profile>\r
-                               <scannerConfigBuildInfo instanceId="xilinx.gnu.mb.exe.release.1186286811;xilinx.gnu.mb.exe.release.1186286811.">\r
-                                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.xilinx.managedbuilder.ui.MBGCCManagedMakePerProjectProfileC"/>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.MBGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="mb-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.PPCGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="powerpc-eabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.ARMGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-xilinxa9-eabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.ARMLinuxGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-xilinxa9-linux-gnueabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="makefileGenerator">\r
-                                                       <runAction arguments="-E -P -v -dD" command="" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                               </scannerConfigBuildInfo>\r
-                               <scannerConfigBuildInfo instanceId="xilinx.gnu.mb.exe.debug.1890710697;xilinx.gnu.mb.exe.debug.1890710697.">\r
-                                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.xilinx.managedbuilder.ui.MBGCCManagedMakePerProjectProfileC"/>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.MBGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="mb-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.PPCGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="powerpc-eabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.ARMGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-xilinxa9-eabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.ARMLinuxGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-xilinxa9-linux-gnueabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="makefileGenerator">\r
-                                                       <runAction arguments="-E -P -v -dD" command="" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                               </scannerConfigBuildInfo>\r
-                               <scannerConfigBuildInfo instanceId="xilinx.gnu.mb.exe.debug.1890710697.1551842913;xilinx.gnu.mb.exe.debug.1890710697.1551842913.">\r
-                                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.xilinx.managedbuilder.ui.MBGCCManagedMakePerProjectProfileC"/>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.MBGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="mb-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.PPCGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="powerpc-eabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.ARMGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-xilinxa9-eabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.ARMLinuxGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-xilinxa9-linux-gnueabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="makefileGenerator">\r
-                                                       <runAction arguments="-E -P -v -dD" command="" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                               </scannerConfigBuildInfo>\r
-                               <scannerConfigBuildInfo instanceId="xilinx.gnu.mb.exe.debug.1890710697.1551842913;xilinx.gnu.mb.exe.debug.1890710697.1551842913.;xilinx.gnu.mb.c.toolchain.compiler.debug.835271198;xilinx.gnu.compiler.input.264309084">\r
-                                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.xilinx.managedbuilder.ui.MBGCCManagedMakePerProjectProfileC"/>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.MBGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="mb-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.PPCGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="powerpc-eabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.ARMGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-xilinxa9-eabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.ARMLinuxGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-xilinxa9-linux-gnueabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="makefileGenerator">\r
-                                                       <runAction arguments="-E -P -v -dD" command="" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                               </scannerConfigBuildInfo>\r
-                               <scannerConfigBuildInfo instanceId="xilinx.gnu.mb.exe.debug.1890710697;xilinx.gnu.mb.exe.debug.1890710697.;xilinx.gnu.mb.c.toolchain.compiler.debug.1867440614;xilinx.gnu.compiler.input.2107818916">\r
-                                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.xilinx.managedbuilder.ui.MBGCCManagedMakePerProjectProfileC"/>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.MBGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="mb-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.PPCGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="powerpc-eabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.ARMGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-xilinxa9-eabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.ARMLinuxGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-xilinxa9-linux-gnueabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="makefileGenerator">\r
-                                                       <runAction arguments="-E -P -v -dD" command="" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                               </scannerConfigBuildInfo>\r
-                               <scannerConfigBuildInfo instanceId="xilinx.gnu.mb.exe.release.1186286811;xilinx.gnu.mb.exe.release.1186286811.;xilinx.gnu.mb.c.toolchain.compiler.release.1828722124;xilinx.gnu.compiler.input.690911521">\r
-                                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.xilinx.managedbuilder.ui.MBGCCManagedMakePerProjectProfileC"/>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.MBGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="mb-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.PPCGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="powerpc-eabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.ARMGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-xilinxa9-eabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="com.xilinx.managedbuilder.ui.ARMLinuxGCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-xilinxa9-linux-gnueabi-gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="makefileGenerator">\r
-                                                       <runAction arguments="-E -P -v -dD" command="" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">\r
-                                               <buildOutputProvider>\r
-                                                       <openAction enabled="true" filePath=""/>\r
-                                                       <parser enabled="true"/>\r
-                                               </buildOutputProvider>\r
-                                               <scannerInfoProvider id="specsFile">\r
-                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>\r
-                                                       <parser enabled="true"/>\r
-                                               </scannerInfoProvider>\r
-                                       </profile>\r
-                               </scannerConfigBuildInfo>\r
-                       </storageModule>\r
-               </cconfiguration>\r
-       </storageModule>\r
-       <storageModule moduleId="cdtBuildSystem" version="4.0.0">\r
-               <project id="RTOSDemoSource.xilinx.gnu.mb.exe.1831715756" name="Xilinx MicroBlaze Executable" projectType="xilinx.gnu.mb.exe"/>\r
-       </storageModule>\r
-</cproject>\r
diff --git a/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/.project b/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/.project
deleted file mode 100644 (file)
index 40ea646..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<projectDescription>\r
-       <name>RTOSDemoSource</name>\r
-       <comment>RTOSDemoBSP - microblaze_0</comment>\r
-       <projects>\r
-               <project>RTOSDemoBSP</project>\r
-       </projects>\r
-       <buildSpec>\r
-               <buildCommand>\r
-                       <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>\r
-                       <arguments>\r
-                               <dictionary>\r
-                                       <key>?name?</key>\r
-                                       <value></value>\r
-                               </dictionary>\r
-                               <dictionary>\r
-                                       <key>org.eclipse.cdt.make.core.append_environment</key>\r
-                                       <value>true</value>\r
-                               </dictionary>\r
-                               <dictionary>\r
-                                       <key>org.eclipse.cdt.make.core.autoBuildTarget</key>\r
-                                       <value>all</value>\r
-                               </dictionary>\r
-                               <dictionary>\r
-                                       <key>org.eclipse.cdt.make.core.buildArguments</key>\r
-                                       <value></value>\r
-                               </dictionary>\r
-                               <dictionary>\r
-                                       <key>org.eclipse.cdt.make.core.buildCommand</key>\r
-                                       <value>make</value>\r
-                               </dictionary>\r
-                               <dictionary>\r
-                                       <key>org.eclipse.cdt.make.core.buildLocation</key>\r
-                                       <value>${workspace_loc:/RTOSDemoSource/Debug}</value>\r
-                               </dictionary>\r
-                               <dictionary>\r
-                                       <key>org.eclipse.cdt.make.core.cleanBuildTarget</key>\r
-                                       <value>clean</value>\r
-                               </dictionary>\r
-                               <dictionary>\r
-                                       <key>org.eclipse.cdt.make.core.contents</key>\r
-                                       <value>org.eclipse.cdt.make.core.activeConfigSettings</value>\r
-                               </dictionary>\r
-                               <dictionary>\r
-                                       <key>org.eclipse.cdt.make.core.enableAutoBuild</key>\r
-                                       <value>true</value>\r
-                               </dictionary>\r
-                               <dictionary>\r
-                                       <key>org.eclipse.cdt.make.core.enableCleanBuild</key>\r
-                                       <value>true</value>\r
-                               </dictionary>\r
-                               <dictionary>\r
-                                       <key>org.eclipse.cdt.make.core.enableFullBuild</key>\r
-                                       <value>true</value>\r
-                               </dictionary>\r
-                               <dictionary>\r
-                                       <key>org.eclipse.cdt.make.core.fullBuildTarget</key>\r
-                                       <value>all</value>\r
-                               </dictionary>\r
-                               <dictionary>\r
-                                       <key>org.eclipse.cdt.make.core.stopOnError</key>\r
-                                       <value>true</value>\r
-                               </dictionary>\r
-                               <dictionary>\r
-                                       <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>\r
-                                       <value>true</value>\r
-                               </dictionary>\r
-                       </arguments>\r
-               </buildCommand>\r
-               <buildCommand>\r
-                       <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>\r
-                       <triggers>full,incremental,</triggers>\r
-                       <arguments>\r
-                       </arguments>\r
-               </buildCommand>\r
-       </buildSpec>\r
-       <natures>\r
-               <nature>org.eclipse.cdt.core.cnature</nature>\r
-               <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>\r
-               <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>\r
-       </natures>\r
-</projectDescription>\r
diff --git a/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/CreateProjectDirectoryStructure.bat b/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/CreateProjectDirectoryStructure.bat
deleted file mode 100644 (file)
index 6c5b434..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-REM This file should be executed from the command line prior to the first\r
-REM build.  It will be necessary to refresh the Eclipse project once the\r
-REM .bat file has been executed (normally just press F5 to refresh).\r
-\r
-REM Copies all the required files from their location within the standard\r
-REM FreeRTOS directory structure to under the Eclipse project directory.\r
-REM This permits the Eclipse project to be used in 'managed' mode and without\r
-REM having to setup any linked resources.\r
-\r
-REM Have the files already been copied?\r
-IF EXIST FreeRTOS_Source Goto END\r
-\r
-    REM Create the required directory structure.\r
-    MD FreeRTOS_Source\r
-    MD FreeRTOS_Source\include    \r
-    MD FreeRTOS_Source\portable\GCC\r
-    MD FreeRTOS_Source\portable\GCC\MicroBlazeV8\r
-    MD FreeRTOS_Source\portable\MemMang    \r
-    MD Demo_Source\r
-    MD Demo_Source\include\r
-    MD lwIP\api\r
-    MD lwIP\core\r
-    MD lwIP\core\ipv4\r
-    MD lwIP\include\r
-    MD lwIP\include\ipv4\r
-    MD lwIP\include\ipv4\lwip\r
-    MD lwIP\include\lwip\r
-    MD lwIP\include\netif\r
-    MD lwIP\netif\r
-    MD lwIP\netif\include\r
-    MD lwIP\netif\include\arch\r
-    \r
-    REM Copy the core kernel files.\r
-    copy ..\..\..\..\Source\tasks.c FreeRTOS_Source\r
-    copy ..\..\..\..\Source\queue.c FreeRTOS_Source\r
-    copy ..\..\..\..\Source\list.c FreeRTOS_Source\r
-    copy ..\..\..\..\Source\timers.c FreeRTOS_Source\r
-    \r
-    REM Copy the common header files\r
-    copy ..\..\..\..\Source\include\*.* FreeRTOS_Source\include\r
-    \r
-    REM Copy the portable layer files\r
-    copy ..\..\..\..\Source\portable\GCC\MicroBlazeV8\*.* FreeRTOS_Source\portable\GCC\MicroBlazeV8\r
-    \r
-    REM Copy the basic memory allocation files\r
-    copy ..\..\..\..\Source\portable\MemMang\heap_2.c FreeRTOS_Source\portable\MemMang\r
-\r
-    REM Copy the files that define the common demo tasks.\r
-    copy ..\..\..\Common\minimal\dynamic.c         Demo_Source\r
-    copy ..\..\..\Common\minimal\BlockQ.c          Demo_Source\r
-    copy ..\..\..\Common\minimal\death.c           Demo_Source\r
-    copy ..\..\..\Common\minimal\blocktim.c        Demo_Source\r
-    copy ..\..\..\Common\minimal\semtest.c         Demo_Source\r
-    copy ..\..\..\Common\minimal\PollQ.c           Demo_Source\r
-    copy ..\..\..\Common\minimal\GenQTest.c        Demo_Source\r
-    copy ..\..\..\Common\minimal\QPeek.c           Demo_Source\r
-    copy ..\..\..\Common\minimal\recmutex.c        Demo_Source\r
-    copy ..\..\..\Common\minimal\sp_flop.c         Demo_Source\r
-    copy ..\..\..\Common\minimal\flash.c           Demo_Source\r
-    copy ..\..\..\Common\minimal\comtest_strings.c Demo_Source\r
-    copy ..\..\..\Common\minimal\TimerDemo.c       Demo_Source\r
-    \r
-    REM Copy the common demo file headers.\r
-    copy ..\..\..\Common\include\dynamic.h         Demo_Source\include\r
-    copy ..\..\..\Common\include\partest.h         Demo_Source\include\r
-    copy ..\..\..\Common\include\BlockQ.h          Demo_Source\include\r
-    copy ..\..\..\Common\include\death.h           Demo_Source\include\r
-    copy ..\..\..\Common\include\blocktim.h        Demo_Source\include\r
-    copy ..\..\..\Common\include\semtest.h         Demo_Source\include\r
-    copy ..\..\..\Common\include\PollQ.h           Demo_Source\include\r
-    copy ..\..\..\Common\include\GenQTest.h        Demo_Source\include\r
-    copy ..\..\..\Common\include\QPeek.h           Demo_Source\include\r
-    copy ..\..\..\Common\include\recmutex.h        Demo_Source\include\r
-    copy ..\..\..\Common\include\flop.h            Demo_Source\include\r
-    copy ..\..\..\Common\include\flash.h           Demo_Source\include\r
-    copy ..\..\..\Common\include\comtest_strings.h Demo_Source\include\r
-    copy ..\..\..\Common\include\serial.h          Demo_Source\include\r
-    copy ..\..\..\Common\include\comtest.h         Demo_Source\include\r
-    copy ..\..\..\Common\include\TimerDemo.h       Demo_Source\include\r
-    \r
-    REM Copy the required lwIP files\r
-    copy ..\..\..\Common\ethernet\lwip-1.4.0\src\api\*.c                       lwIP\api\r
-    copy ..\..\..\Common\ethernet\lwip-1.4.0\src\core\*.c                      lwIP\core\r
-    copy ..\..\..\Common\ethernet\lwip-1.4.0\src\core\ipv4\*.c                 lwIP\core\ipv4\r
-    copy ..\..\..\Common\ethernet\lwip-1.4.0\src\include\ipv4\lwip\*.h         lwIP\include\ipv4\lwip\r
-    copy ..\..\..\Common\ethernet\lwip-1.4.0\src\include\lwip\*.h              lwIP\include\lwip\r
-    copy ..\..\..\Common\ethernet\lwip-1.4.0\src\include\netif\*.h             lwIP\include\netif\r
-    copy ..\..\..\Common\ethernet\lwip-1.4.0\src\netif\etharp.c                lwIP\netif\r
-    copy ..\..\..\Common\ethernet\lwip-1.4.0\ports\MicroBlaze-Ethernet-Lite    lwip\netif\r
-    copy ..\..\..\Common\ethernet\lwip-1.4.0\ports\MicroBlaze-Ethernet-Lite\include\arch lwip\netif\include\arch\r
-\r
-: END\r
diff --git a/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/FreeRTOSConfig.h b/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/FreeRTOSConfig.h
deleted file mode 100644 (file)
index c4397d9..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
-/*\r
-    FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd.\r
-       \r
-\r
-    ***************************************************************************\r
-     *                                                                       *\r
-     *    FreeRTOS tutorial books are available in pdf and paperback.        *\r
-     *    Complete, revised, and edited pdf reference manuals are also       *\r
-     *    available.                                                         *\r
-     *                                                                       *\r
-     *    Purchasing FreeRTOS documentation will not only help you, by       *\r
-     *    ensuring you get running as quickly as possible and with an        *\r
-     *    in-depth knowledge of how to use FreeRTOS, it will also help       *\r
-     *    the FreeRTOS project to continue with its mission of providing     *\r
-     *    professional grade, cross platform, de facto standard solutions    *\r
-     *    for microcontrollers - completely free of charge!                  *\r
-     *                                                                       *\r
-     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *\r
-     *                                                                       *\r
-     *    Thank you for using FreeRTOS, and thank you for your support!      *\r
-     *                                                                       *\r
-    ***************************************************************************\r
-\r
-\r
-    This file is part of the FreeRTOS distribution.\r
-\r
-    FreeRTOS is free software; you can redistribute it and/or modify it under\r
-    the terms of the GNU General Public License (version 2) as published by the\r
-    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.\r
-    >>>NOTE<<< The modification to the GPL is included to allow you to\r
-    distribute a combined work that includes FreeRTOS without being obliged to\r
-    provide the source code for proprietary components outside of the FreeRTOS\r
-    kernel.  FreeRTOS is distributed in the hope that it will be useful, but\r
-    WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
-    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for\r
-    more details. You should have received a copy of the GNU General Public\r
-    License and the FreeRTOS license exception along with FreeRTOS; if not it\r
-    can be viewed here: http://www.freertos.org/a00114.html and also obtained\r
-    by writing to Richard Barry, contact details for whom are available on the\r
-    FreeRTOS WEB site.\r
-\r
-    1 tab == 4 spaces!\r
-\r
-    http://www.FreeRTOS.org - Documentation, latest information, license and\r
-    contact details.\r
-\r
-    http://www.SafeRTOS.com - A version that is certified for use in safety\r
-    critical systems.\r
-\r
-    http://www.OpenRTOS.com - Commercial support, development, porting,\r
-    licensing and training services.\r
-*/\r
-\r
-\r
-/* The following #error directive is to remind users that a batch file must be\r
- * executed prior to this project being built.  The batch file *cannot* be \r
- * executed from within older versions of Eclipse, but probably can be executed\r
- * from within the Xilinx SDK.  Once it has been executed, re-open or refresh \r
- * the Eclipse project and remove the #error line below.\r
- */\r
-//#error Ensure CreateProjectDirectoryStructure.bat has been executed before building.  See comment immediately above.\r
-\r
-\r
-#ifndef FREERTOS_CONFIG_H\r
-#define FREERTOS_CONFIG_H\r
-\r
-/*-----------------------------------------------------------\r
- * Application specific definitions.\r
- *\r
- * These definitions should be adjusted for your particular hardware and\r
- * application requirements.\r
- *\r
- * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE\r
- * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.\r
- *\r
- * See http://www.freertos.org/a00110.html.\r
- *----------------------------------------------------------*/\r
-#define configUSE_PREEMPTION                   1\r
-#define configUSE_IDLE_HOOK                            1\r
-#define configUSE_TICK_HOOK                            1\r
-#define configCPU_CLOCK_HZ                             ( XPAR_MICROBLAZE_CORE_CLOCK_FREQ_HZ ) /* Not actually used in this demo as the timer is set up in main() and uses the peripheral clock, not the CPU clock. */\r
-#define configTICK_RATE_HZ                             ( ( portTickType ) 1000 )\r
-#define configMAX_PRIORITIES                   ( 6 )\r
-#define configTOTAL_HEAP_SIZE                  ( ( size_t ) ( 64 * 1024 ) )\r
-#define configMAX_TASK_NAME_LEN                        ( 10 )\r
-#define configUSE_TRACE_FACILITY               1\r
-#define configUSE_16_BIT_TICKS                 0\r
-#define configIDLE_SHOULD_YIELD                        1\r
-#define configUSE_MUTEXES                              1\r
-#define configQUEUE_REGISTRY_SIZE              0\r
-#define configCHECK_FOR_STACK_OVERFLOW 2\r
-#define configUSE_RECURSIVE_MUTEXES            1\r
-#define configUSE_MALLOC_FAILED_HOOK   1\r
-#define configUSE_APPLICATION_TASK_TAG 0\r
-#define configUSE_COUNTING_SEMAPHORES  1\r
-#define configMINIMAL_STACK_SIZE               ( ( unsigned short ) 200 )\r
-#define configINTERRUPT_STACK_SIZE             configMINIMAL_STACK_SIZE\r
-\r
-/* If configINSTALL_EXCEPTION_HANDLERS is set to 1, then the kernel will\r
-automatically install its own exception handlers before the kernel is started,\r
-if the application writer has not already caused them to be installed using the \r
-vPortExceptionsInstallHandlers() API function.  See the documentation page for\r
-this demo on the FreeRTOS.org web site for more information. */\r
-#define configINSTALL_EXCEPTION_HANDLERS 1\r
-\r
-/* configINTERRUPT_CONTROLLER_TO_USE must be set to the ID of the interrupt\r
-controller that is going to be used directly by FreeRTOS itself.  Most hardware\r
-designs will only include on interrupt controller. */\r
-#define configINTERRUPT_CONTROLLER_TO_USE XPAR_INTC_SINGLE_DEVICE_ID\r
-\r
-/* Co-routine definitions. */\r
-#define configUSE_CO_ROUTINES                  0\r
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )\r
-\r
-/* Software timer definitions. */\r
-#define configUSE_TIMERS                               1\r
-#define configTIMER_TASK_PRIORITY              ( configMAX_PRIORITIES - 1 )\r
-#define configTIMER_QUEUE_LENGTH               10\r
-#define configTIMER_TASK_STACK_DEPTH   ( configMINIMAL_STACK_SIZE )\r
-\r
-/* Set the following definitions to 1 to include the API function, or zero\r
-to exclude the API function. */\r
-#define INCLUDE_vTaskPrioritySet               1\r
-#define INCLUDE_uxTaskPriorityGet              1\r
-#define INCLUDE_vTaskDelete                            1\r
-#define INCLUDE_vTaskCleanUpResources  0\r
-#define INCLUDE_vTaskSuspend                   1\r
-#define INCLUDE_vTaskDelayUntil                        1\r
-#define INCLUDE_vTaskDelay                             1\r
-\r
-#define configASSERT( x ) if( ( x ) == 0 ) { portDISABLE_INTERRUPTS(); for( ;; ); }\r
-       \r
-\r
-/* Run time stats gathering definitions.  The conditional compilation is to\r
-prevent the C syntax being included in assembly files. */\r
-#ifndef __ASSEMBLER__\r
-       unsigned long ulMainGetRunTimeCounterValue( void );\r
-       void vMainConfigureTimerForRunTimeStats( void );\r
-#endif\r
-#define configGENERATE_RUN_TIME_STATS  1\r
-#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() vMainConfigureTimerForRunTimeStats()\r
-#define portGET_RUN_TIME_COUNTER_VALUE() ulMainGetRunTimeCounterValue()\r
-\r
-\r
-\r
-#define configLWIP_TASK_PRIORITY       ( configMAX_PRIORITIES - 2 )\r
-\r
-/* MAC address configuration. */\r
-#define configMAC_ADDR0        0x00\r
-#define configMAC_ADDR1        0x12\r
-#define configMAC_ADDR2        0x13\r
-#define configMAC_ADDR3        0x10\r
-#define configMAC_ADDR4        0x15\r
-#define configMAC_ADDR5        0x11\r
-\r
-/* IP address configuration. */\r
-#define configIP_ADDR0         192\r
-#define configIP_ADDR1         168\r
-#define configIP_ADDR2         0\r
-#define configIP_ADDR3         200\r
-\r
-/* Gateway IP address configuration. */\r
-#define configGW_IP_ADDR0      192\r
-#define configGW_IP_ADDR1      168\r
-#define configGW_IP_ADDR2      0\r
-#define configGW_IP_ADDR3      3\r
-\r
-/* Netmask configuration. */\r
-#define configNET_MASK0                255\r
-#define configNET_MASK1                255\r
-#define configNET_MASK2                255\r
-#define configNET_MASK3                0\r
-\r
-#endif /* FREERTOS_CONFIG_H */\r
-\r
diff --git a/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/ParTest.c b/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/ParTest.c
deleted file mode 100644 (file)
index 4037181..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-/*\r
-    FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd.\r
-       \r
-\r
-    ***************************************************************************\r
-     *                                                                       *\r
-     *    FreeRTOS tutorial books are available in pdf and paperback.        *\r
-     *    Complete, revised, and edited pdf reference manuals are also       *\r
-     *    available.                                                         *\r
-     *                                                                       *\r
-     *    Purchasing FreeRTOS documentation will not only help you, by       *\r
-     *    ensuring you get running as quickly as possible and with an        *\r
-     *    in-depth knowledge of how to use FreeRTOS, it will also help       *\r
-     *    the FreeRTOS project to continue with its mission of providing     *\r
-     *    professional grade, cross platform, de facto standard solutions    *\r
-     *    for microcontrollers - completely free of charge!                  *\r
-     *                                                                       *\r
-     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *\r
-     *                                                                       *\r
-     *    Thank you for using FreeRTOS, and thank you for your support!      *\r
-     *                                                                       *\r
-    ***************************************************************************\r
-\r
-\r
-    This file is part of the FreeRTOS distribution.\r
-\r
-    FreeRTOS is free software; you can redistribute it and/or modify it under\r
-    the terms of the GNU General Public License (version 2) as published by the\r
-    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.\r
-    >>>NOTE<<< The modification to the GPL is included to allow you to\r
-    distribute a combined work that includes FreeRTOS without being obliged to\r
-    provide the source code for proprietary components outside of the FreeRTOS\r
-    kernel.  FreeRTOS is distributed in the hope that it will be useful, but\r
-    WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
-    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for\r
-    more details. You should have received a copy of the GNU General Public\r
-    License and the FreeRTOS license exception along with FreeRTOS; if not it\r
-    can be viewed here: http://www.freertos.org/a00114.html and also obtained\r
-    by writing to Richard Barry, contact details for whom are available on the\r
-    FreeRTOS WEB site.\r
-\r
-    1 tab == 4 spaces!\r
-\r
-    http://www.FreeRTOS.org - Documentation, latest information, license and\r
-    contact details.\r
-\r
-    http://www.SafeRTOS.com - A version that is certified for use in safety\r
-    critical systems.\r
-\r
-    http://www.OpenRTOS.com - Commercial support, development, porting,\r
-    licensing and training services.\r
-*/\r
-\r
-/*-----------------------------------------------------------\r
- * Simple digital IO routines.\r
- *-----------------------------------------------------------*/\r
-\r
-/* Kernel includes. */\r
-#include "FreeRTOS.h"\r
-\r
-/* Demo application includes. */\r
-#include "partest.h"\r
-\r
-/* Library includes. */\r
-#include "xgpio.h"\r
-\r
-/* The hardware design that accompanies this demo project has four LED \r
-outputs. */\r
-#define partstMAX_LED  4\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-/* A hardware specific constant required to use the Xilinx driver library. */\r
-static const unsigned portBASE_TYPE uxGPIOOutputChannel = 1UL;\r
-\r
-/* The current state of the output port. */\r
-static unsigned char ucGPIOState = 0U;\r
-\r
-/* Structure that hold the state of the ouptut peripheral used by this demo.\r
-This is used by the Xilinx peripheral driver API functions. */\r
-static XGpio xOutputGPIOInstance;\r
-\r
-/*\r
- * Setup the IO for the LED outputs.\r
- */\r
-void vParTestInitialise( void )\r
-{\r
-portBASE_TYPE xStatus;\r
-const unsigned char ucSetToOutput = 0U;\r
-\r
-       /* Initialise the GPIO for the LEDs. */\r
-       xStatus = XGpio_Initialize( &xOutputGPIOInstance, XPAR_LEDS_4BITS_DEVICE_ID );\r
-       if( xStatus == XST_SUCCESS )\r
-       {\r
-               /* All bits on this channel are going to be outputs (LEDs). */\r
-               XGpio_SetDataDirection( &xOutputGPIOInstance, uxGPIOOutputChannel, ucSetToOutput );\r
-\r
-               /* Start with all LEDs off. */\r
-               ucGPIOState = 0U;\r
-               XGpio_DiscreteWrite( &xOutputGPIOInstance, uxGPIOOutputChannel, ucGPIOState );\r
-       }\r
-       \r
-       configASSERT( xStatus == XST_SUCCESS );\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )\r
-{\r
-unsigned char ucLED = 1U;\r
-\r
-       /* Only attempt to set the LED if it is in range. */\r
-       if( uxLED < partstMAX_LED )\r
-       {\r
-               ucLED <<= ( unsigned char ) uxLED;\r
-\r
-               portENTER_CRITICAL();\r
-               {\r
-                       if( xValue == pdFALSE )\r
-                       {\r
-                               ucGPIOState &= ~ucLED;\r
-                       }\r
-                       else\r
-                       {\r
-                               ucGPIOState |= ucLED;\r
-                       }\r
-                       XGpio_DiscreteWrite( &xOutputGPIOInstance, uxGPIOOutputChannel, ucGPIOState );\r
-               }\r
-               portEXIT_CRITICAL();\r
-       }\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void vParTestToggleLED( unsigned portBASE_TYPE uxLED )\r
-{\r
-unsigned char ucLED = 1U;\r
-\r
-       /* Only attempt to toggle the LED if it is in range. */\r
-       if( uxLED < partstMAX_LED )\r
-       {\r
-               ucLED <<= ( unsigned char ) uxLED;\r
-\r
-               portENTER_CRITICAL();\r
-               {\r
-                       if( ( ucGPIOState & ucLED ) != 0 )\r
-                       {\r
-                               ucGPIOState &= ~ucLED;\r
-                       }\r
-                       else\r
-                       {\r
-                               ucGPIOState |= ucLED;\r
-                       }\r
-\r
-                       XGpio_DiscreteWrite( &xOutputGPIOInstance, uxGPIOOutputChannel, ucGPIOState );\r
-               }\r
-               portEXIT_CRITICAL();\r
-       }\r
-}\r
-\r
-\r
-\r
diff --git a/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/RegisterTests.c b/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/RegisterTests.c
deleted file mode 100644 (file)
index 1302a09..0000000
+++ /dev/null
@@ -1,307 +0,0 @@
-/*\r
-    FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd.\r
-       \r
-\r
-    ***************************************************************************\r
-     *                                                                       *\r
-     *    FreeRTOS tutorial books are available in pdf and paperback.        *\r
-     *    Complete, revised, and edited pdf reference manuals are also       *\r
-     *    available.                                                         *\r
-     *                                                                       *\r
-     *    Purchasing FreeRTOS documentation will not only help you, by       *\r
-     *    ensuring you get running as quickly as possible and with an        *\r
-     *    in-depth knowledge of how to use FreeRTOS, it will also help       *\r
-     *    the FreeRTOS project to continue with its mission of providing     *\r
-     *    professional grade, cross platform, de facto standard solutions    *\r
-     *    for microcontrollers - completely free of charge!                  *\r
-     *                                                                       *\r
-     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *\r
-     *                                                                       *\r
-     *    Thank you for using FreeRTOS, and thank you for your support!      *\r
-     *                                                                       *\r
-    ***************************************************************************\r
-\r
-\r
-    This file is part of the FreeRTOS distribution.\r
-\r
-    FreeRTOS is free software; you can redistribute it and/or modify it under\r
-    the terms of the GNU General Public License (version 2) as published by the\r
-    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.\r
-    >>>NOTE<<< The modification to the GPL is included to allow you to\r
-    distribute a combined work that includes FreeRTOS without being obliged to\r
-    provide the source code for proprietary components outside of the FreeRTOS\r
-    kernel.  FreeRTOS is distributed in the hope that it will be useful, but\r
-    WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
-    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for\r
-    more details. You should have received a copy of the GNU General Public\r
-    License and the FreeRTOS license exception along with FreeRTOS; if not it\r
-    can be viewed here: http://www.freertos.org/a00114.html and also obtained\r
-    by writing to Richard Barry, contact details for whom are available on the\r
-    FreeRTOS WEB site.\r
-\r
-    1 tab == 4 spaces!\r
-\r
-    http://www.FreeRTOS.org - Documentation, latest information, license and\r
-    contact details.\r
-\r
-    http://www.SafeRTOS.com - A version that is certified for use in safety\r
-    critical systems.\r
-\r
-    http://www.OpenRTOS.com - Commercial support, development, porting,\r
-    licensing and training services.\r
-*/\r
-\r
-/* Scheduler includes. */\r
-#include "FreeRTOS.h"\r
-#include "task.h"\r
-\r
-/*\r
- * The register test task as described in the comments at the top of main-full.c.\r
- */\r
-void vRegisterTest1( void *pvParameters );\r
-void vRegisterTest2( void *pvParameters );\r
-\r
-/* Variables that are incremented on each iteration of the reg test tasks -\r
-provided the tasks have not reported any errors.  The check timer inspects these\r
-variables to ensure they are still incrementing as expected.  If a variable\r
-stops incrementing then it is likely that its associate task has stalled or\r
-detected an error. */\r
-volatile unsigned long ulRegTest1CycleCount = 0UL, ulRegTest2CycleCount = 0UL;\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-void vRegisterTest1( void *pvParameters )\r
-{\r
-       /* This task uses an infinite loop that is implemented in the assembly \r
-       code.\r
-       \r
-       First fill the relevant registers with known values. */\r
-       asm volatile (  "       addi r3, r0, 3          \n\t" \\r
-                                       "       addi r4, r0, 4          \n\t" \\r
-                                       "       addi r6, r0, 6          \n\t" \\r
-                                       "       addi r7, r0, 7          \n\t" \\r
-                                       "       addi r8, r0, 8          \n\t" \\r
-                                       "       addi r9, r0, 9          \n\t" \\r
-                                       "       addi r10, r0, 10        \n\t" \\r
-                                       "       addi r11, r0, 11        \n\t" \\r
-                                       "       addi r12, r0, 12        \n\t" \\r
-                                       "       addi r16, r0, 16        \n\t" \\r
-                                       "       addi r19, r0, 19        \n\t" \\r
-                                       "       addi r20, r0, 20        \n\t" \\r
-                                       "       addi r21, r0, 21        \n\t" \\r
-                                       "       addi r22, r0, 22        \n\t" \\r
-                                       "       addi r23, r0, 23        \n\t" \\r
-                                       "       addi r24, r0, 24        \n\t" \\r
-                                       "       addi r25, r0, 25        \n\t" \\r
-                                       "       addi r26, r0, 26        \n\t" \\r
-                                       "       addi r27, r0, 27        \n\t" \\r
-                                       "       addi r28, r0, 28        \n\t" \\r
-                                       "       addi r29, r0, 29        \n\t" \\r
-                                       "       addi r30, r0, 30        \n\t" \\r
-                                       "       addi r31, r0, 31        \n\t"\r
-                               );\r
-\r
-       /* Now test the register values to ensure they contain the same value that\r
-       was written to them above.       This task will get preempted frequently so \r
-       other tasks are likely to have executed since the register values were \r
-       written.  If any register contains an unexpected value then the task will\r
-       branch to Error_Loop_1, which in turn prevents it from incrementing its\r
-       loop counter, enabling the check timer to determine that all is not as it\r
-       should be. */\r
-\r
-       asm volatile (  "Loop_Start_1:                          \n\t" \\r
-                                       "       xori r18, r3, 3                 \n\t" \\r
-                                       "       bnei r18, Error_Loop_1  \n\t" \\r
-                                       "       xori r18, r4, 4                 \n\t" \\r
-                                       "       bnei r18, Error_Loop_1  \n\t" \\r
-                                       "       xori r18, r6, 6                 \n\t" \\r
-                                       "       bnei r18, Error_Loop_1  \n\t" \\r
-                                       "       xori r18, r7, 7                 \n\t" \\r
-                                       "       bnei r18, Error_Loop_1  \n\t" \\r
-                                       "       xori r18, r8, 8                 \n\t" \\r
-                                       "       bnei r18, Error_Loop_1  \n\t" \\r
-                                       "       xori r18, r9, 9                 \n\t" \\r
-                                       "       bnei r18, Error_Loop_1  \n\t" \\r
-                                       "       xori r18, r10, 10               \n\t" \\r
-                                       "       bnei r18, Error_Loop_1  \n\t" \\r
-                                       "       xori r18, r11, 11               \n\t" \\r
-                                       "       bnei r18, Error_Loop_1  \n\t" \\r
-                                       "       xori r18, r12, 12               \n\t" \\r
-                                       "       bnei r18, Error_Loop_1  \n\t" \\r
-                                       "       xori r18, r16, 16               \n\t" \\r
-                                       "       bnei r18, Error_Loop_1  \n\t" \\r
-                                       "       xori r18, r19, 19               \n\t" \\r
-                                       "       bnei r18, Error_Loop_1  \n\t" \\r
-                                       "       xori r18, r20, 20               \n\t" \\r
-                                       "       bnei r18, Error_Loop_1  \n\t" \\r
-                                       "       xori r18, r21, 21               \n\t" \\r
-                                       "       bnei r18, Error_Loop_1  \n\t" \\r
-                                       "       xori r18, r22, 22               \n\t" \\r
-                                       "       bnei r18, Error_Loop_1  \n\t" \\r
-                                       "       xori r18, r23, 23               \n\t" \\r
-                                       "       bnei r18, Error_Loop_1  \n\t" \\r
-                                       "       xori r18, r24, 24               \n\t" \\r
-                                       "       bnei r18, Error_Loop_1  \n\t" \\r
-                                       "       xori r18, r25, 25               \n\t" \\r
-                                       "       bnei r18, Error_Loop_1  \n\t" \\r
-                                       "       xori r18, r26, 26               \n\t" \\r
-                                       "       bnei r18, Error_Loop_1  \n\t" \\r
-                                       "       xori r18, r27, 27               \n\t" \\r
-                                       "       bnei r18, Error_Loop_1  \n\t" \\r
-                                       "       xori r18, r28, 28               \n\t" \\r
-                                       "       bnei r18, Error_Loop_1  \n\t" \\r
-                                       "       xori r18, r29, 29               \n\t" \\r
-                                       "       bnei r18, Error_Loop_1  \n\t" \\r
-                                       "       xori r18, r30, 30               \n\t" \\r
-                                       "       bnei r18, Error_Loop_1  \n\t" \\r
-                                       "       xori r18, r31, 31               \n\t" \\r
-                                       "       bnei r18, Error_Loop_1  \n\t"\r
-                                );\r
-\r
-       /* If this task has not branched to the error loop, then everything is ok,\r
-       and the check variable can be incremented to indicate that this task\r
-       is still running.  Then, brach back to the top to check the register\r
-       contents again. */\r
-       asm volatile (  "       lwi r18, r0, ulRegTest1CycleCount       \n\t" \\r
-                                       "       addik r18, r18, 1                                       \n\t" \\r
-                                       "       swi r18, r0, ulRegTest1CycleCount       \n\t" \\r
-                                       "                                                                               \n\t" \\r
-                                       "       bri Loop_Start_1 "\r
-                                );\r
-\r
-        /* The test function will branch here if it discovers an error.  This part\r
-       of the code just sits in a NULL loop, which prevents the check variable\r
-       incrementing any further to allow the check timer to recognize that this\r
-       test has failed. */\r
-       asm volatile (  "Error_Loop_1:                  \n\t" \\r
-                                       "       bri 0                           \n\t" \\r
-                                       "       nop                                     \n\t" \\r
-                                );\r
-\r
-       ( void ) pvParameters;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void vRegisterTest2( void *pvParameters )\r
-{\r
-       /* This task uses an infinite loop that is implemented in the assembly \r
-       code.\r
-       \r
-       First fill the registers with known values. */\r
-       asm volatile (  "       addi r16, r0, 1016      \n\t" \\r
-                                       "       addi r19, r0, 1019      \n\t" \\r
-                                       "       addi r20, r0, 1020      \n\t" \\r
-                                       "       addi r21, r0, 1021      \n\t" \\r
-                                       "       addi r22, r0, 1022      \n\t" \\r
-                                       "       addi r23, r0, 1023      \n\t" \\r
-                                       "       addi r24, r0, 1024      \n\t" \\r
-                                       "       addi r25, r0, 1025      \n\t" \\r
-                                       "       addi r26, r0, 1026      \n\t" \\r
-                                       "       addi r27, r0, 1027      \n\t" \\r
-                                       "       addi r28, r0, 1028      \n\t" \\r
-                                       "       addi r29, r0, 1029      \n\t" \\r
-                                       "       addi r30, r0, 1030      \n\t" \\r
-                                       "       addi r31, r0, 1031      \n\t" \\r
-                                       "                                                       " \\r
-                                       "Loop_Start_2:                          "\r
-                               );\r
-\r
-       /* Unlike vRegisterTest1, vRegisterTest2 performs a yield.  This increases\r
-       the test coverage, but does mean volatile registers need re-loading with \r
-       their exepcted values. */\r
-       taskYIELD();\r
-\r
-       /* taskYIELD() could have changed temporaries - set them back to those\r
-       expected by the reg test task. */\r
-       asm volatile (  "       addi r3, r0, 103        \n\t" \\r
-                                       "       addi r4, r0, 104        \n\t" \\r
-                                       "       addi r6, r0, 106        \n\t" \\r
-                                       "       addi r7, r0, 107        \n\t" \\r
-                                       "       addi r8, r0, 108        \n\t" \\r
-                                       "       addi r9, r0, 109        \n\t" \\r
-                                       "       addi r10, r0, 1010      \n\t" \\r
-                                       "       addi r11, r0, 1011      \n\t" \\r
-                                       "       addi r12, r0, 1012      \n\t" \\r
-                               );\r
-\r
-\r
-       /* Now test the register values to ensure they contain the same value that\r
-       was written to them above.       This task will get preempted frequently so \r
-       other tasks are likely to have executed since the register values were \r
-       written. */\r
-       asm volatile (  "       xori r18, r3, 103               \n\t" \\r
-                                       "       bnei r18, Error_Loop_2  \n\t" \\r
-                                       "       xori r18, r4, 104               \n\t" \\r
-                                       "       bnei r18, Error_Loop_2  \n\t" \\r
-                                       "       xori r18, r6, 106               \n\t" \\r
-                                       "       bnei r18, Error_Loop_2  \n\t" \\r
-                                       "       xori r18, r7, 107               \n\t" \\r
-                                       "       bnei r18, Error_Loop_2  \n\t" \\r
-                                       "       xori r18, r8, 108               \n\t" \\r
-                                       "       bnei r18, Error_Loop_2  \n\t" \\r
-                                       "       xori r18, r9, 109               \n\t" \\r
-                                       "       bnei r18, Error_Loop_2  \n\t" \\r
-                                       "       xori r18, r10, 1010             \n\t" \\r
-                                       "       bnei r18, Error_Loop_2  \n\t" \\r
-                                       "       xori r18, r11, 1011             \n\t" \\r
-                                       "       bnei r18, Error_Loop_2  \n\t" \\r
-                                       "       xori r18, r12, 1012             \n\t" \\r
-                                       "       bnei r18, Error_Loop_2  \n\t" \\r
-                                       "       xori r18, r16, 1016             \n\t" \\r
-                                       "       bnei r18, Error_Loop_2  \n\t" \\r
-                                       "       xori r18, r19, 1019             \n\t" \\r
-                                       "       bnei r18, Error_Loop_2  \n\t" \\r
-                                       "       xori r18, r20, 1020             \n\t" \\r
-                                       "       bnei r18, Error_Loop_2  \n\t" \\r
-                                       "       xori r18, r21, 1021             \n\t" \\r
-                                       "       bnei r18, Error_Loop_2  \n\t" \\r
-                                       "       xori r18, r22, 1022             \n\t" \\r
-                                       "       bnei r18, Error_Loop_2  \n\t" \\r
-                                       "       xori r18, r23, 1023             \n\t" \\r
-                                       "       bnei r18, Error_Loop_2  \n\t" \\r
-                                       "       xori r18, r24, 1024             \n\t" \\r
-                                       "       bnei r18, Error_Loop_2  \n\t" \\r
-                                       "       xori r18, r25, 1025             \n\t" \\r
-                                       "       bnei r18, Error_Loop_2  \n\t" \\r
-                                       "       xori r18, r26, 1026             \n\t" \\r
-                                       "       bnei r18, Error_Loop_2  \n\t" \\r
-                                       "       xori r18, r27, 1027             \n\t" \\r
-                                       "       bnei r18, Error_Loop_2  \n\t" \\r
-                                       "       xori r18, r28, 1028             \n\t" \\r
-                                       "       bnei r18, Error_Loop_2  \n\t" \\r
-                                       "       xori r18, r29, 1029             \n\t" \\r
-                                       "       bnei r18, Error_Loop_2  \n\t" \\r
-                                       "       xori r18, r30, 1030             \n\t" \\r
-                                       "       bnei r18, Error_Loop_2  \n\t" \\r
-                                       "       xori r18, r31, 1031             \n\t" \\r
-                                       "       bnei r18, Error_Loop_2  \n\t"\r
-                                );\r
-\r
-       /* If this task has not branched to the error loop, then everything is ok,\r
-       and the check variable should be incremented to indicate that this task\r
-       is still running.  Then, brach back to the top to check the registers\r
-       again. */\r
-       asm volatile (  "       lwi r18, r0, ulRegTest2CycleCount       \n\t" \\r
-                                       "       addik r18, r18, 1                                       \n\t" \\r
-                                       "       swi r18, r0, ulRegTest2CycleCount       \n\t" \\r
-                                       "                                                                               \n\t" \\r
-                                       "       bri Loop_Start_2 "\r
-                                );\r
-\r
-        /* The test function will branch here if it discovers an error.  This part\r
-       of the code just sits in a NULL loop, which prevents the check variable\r
-       incrementing any further to allow the check timer to recognize that this\r
-       test has failed. */\r
-       asm volatile (  "Error_Loop_2:                  \n\t" \\r
-                                       "       bri 0                           \n\t" \\r
-                                       "       nop                                     \n\t" \\r
-                                );\r
-\r
-       ( void ) pvParameters;\r
-}\r
-\r
-\r
-\r
-\r
-\r
-\r
diff --git a/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/fs.c b/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/fs.c
deleted file mode 100644 (file)
index 993fffc..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * Copyright (c) 2001-2003 Swedish Institute of Computer Science.
- * All rights reserved. 
- * 
- * Redistribution and use in source and binary forms, with or without modification, 
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission. 
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- * 
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#include "lwip/opt.h"
-#include "lwip/def.h"
-#include "fs.h"
-#include "fsdata.h"
-#include <string.h>
-
-/** Set this to 1 to include "fsdata_custom.c" instead of "fsdata.c" for the
- * file system (to prevent changing the file included in CVS) */
-#ifndef HTTPD_USE_CUSTUM_FSDATA
-#define HTTPD_USE_CUSTUM_FSDATA 0
-#endif
-
-#if HTTPD_USE_CUSTUM_FSDATA
-#include "fsdata_custom.c"
-#else /* HTTPD_USE_CUSTUM_FSDATA */
-#include "fsdata.c"
-#endif /* HTTPD_USE_CUSTUM_FSDATA */
-
-/*-----------------------------------------------------------------------------------*/
-/* Define the number of open files that we can support. */
-#ifndef LWIP_MAX_OPEN_FILES
-#define LWIP_MAX_OPEN_FILES     10
-#endif
-
-/* Define the file system memory allocation structure. */
-struct fs_table {
-  struct fs_file file;
-  u8_t inuse;
-};
-
-/* Allocate file system memory */
-struct fs_table fs_memory[LWIP_MAX_OPEN_FILES];
-
-#if LWIP_HTTPD_CUSTOM_FILES
-int fs_open_custom(struct fs_file *file, const char *name);
-void fs_close_custom(struct fs_file *file);
-#endif /* LWIP_HTTPD_CUSTOM_FILES */
-
-/*-----------------------------------------------------------------------------------*/
-static struct fs_file *
-fs_malloc(void)
-{
-  int i;
-  for(i = 0; i < LWIP_MAX_OPEN_FILES; i++) {
-    if(fs_memory[i].inuse == 0) {
-      fs_memory[i].inuse = 1;
-      return(&fs_memory[i].file);
-    }
-  }
-  return(NULL);
-}
-
-/*-----------------------------------------------------------------------------------*/
-static void
-fs_free(struct fs_file *file)
-{
-  int i;
-  for(i = 0; i < LWIP_MAX_OPEN_FILES; i++) {
-    if(&fs_memory[i].file == file) {
-      fs_memory[i].inuse = 0;
-      break;
-    }
-  }
-  return;
-}
-
-/*-----------------------------------------------------------------------------------*/
-struct fs_file *
-fs_open(const char *name)
-{
-  struct fs_file *file;
-  const struct fsdata_file *f;
-
-  file = fs_malloc();
-  if(file == NULL) {
-    return NULL;
-  }
-
-#if LWIP_HTTPD_CUSTOM_FILES
-  if(fs_open_custom(file, name)) {
-    file->is_custom_file = 1;
-    return file;
-  }
-  file->is_custom_file = 0;
-#endif /* LWIP_HTTPD_CUSTOM_FILES */
-
-  for(f = FS_ROOT; f != NULL; f = f->next) {
-    if (!strcmp(name, (char *)f->name)) {
-      file->data = (const char *)f->data;
-      file->len = f->len;
-      file->index = f->len;
-      file->pextension = NULL;
-      file->http_header_included = f->http_header_included;
-#if HTTPD_PRECALCULATED_CHECKSUM
-      file->chksum_count = f->chksum_count;
-      file->chksum = f->chksum;
-#endif /* HTTPD_PRECALCULATED_CHECKSUM */
-#if LWIP_HTTPD_FILE_STATE
-      file->state = fs_state_init(file, name);
-#endif /* #if LWIP_HTTPD_FILE_STATE */
-      return file;
-    }
-  }
-  fs_free(file);
-  return NULL;
-}
-
-/*-----------------------------------------------------------------------------------*/
-void
-fs_close(struct fs_file *file)
-{
-#if LWIP_HTTPD_CUSTOM_FILES
-  if (file->is_custom_file) {
-    fs_close_custom(file);
-  }
-#endif /* LWIP_HTTPD_CUSTOM_FILES */
-#if LWIP_HTTPD_FILE_STATE
-  fs_state_free(file, file->state);
-#endif /* #if LWIP_HTTPD_FILE_STATE */
-  fs_free(file);
-}
-/*-----------------------------------------------------------------------------------*/
-int
-fs_read(struct fs_file *file, char *buffer, int count)
-{
-  int read;
-
-  if(file->index == file->len) {
-    return -1;
-  }
-
-  read = file->len - file->index;
-  if(read > count) {
-    read = count;
-  }
-
-  MEMCPY(buffer, (file->data + file->index), read);
-  file->index += read;
-
-  return(read);
-}
-/*-----------------------------------------------------------------------------------*/
-int fs_bytes_left(struct fs_file *file)
-{
-  return file->len - file->index;
-}
diff --git a/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/fs.h b/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/fs.h
deleted file mode 100644 (file)
index cd76759..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (c) 2001-2003 Swedish Institute of Computer Science.
- * All rights reserved. 
- * 
- * Redistribution and use in source and binary forms, with or without modification, 
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission. 
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- * 
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __FS_H__
-#define __FS_H__
-
-#include "lwip/opt.h"
-
-/** Set this to 1 and provide the functions:
- * - "int fs_open_custom(struct fs_file *file, const char *name)"
- *    Called first for every opened file to allow opening files
- *    that are not included in fsdata(_custom).c
- * - "void fs_close_custom(struct fs_file *file)"
- *    Called to free resources allocated by fs_open_custom().
- */
-#ifndef LWIP_HTTPD_CUSTOM_FILES
-#define LWIP_HTTPD_CUSTOM_FILES       0
-#endif
-
-/** Set this to 1 to include an application state argument per file
- * that is opened. This allows to keep a state per connection/file.
- */
-#ifndef LWIP_HTTPD_FILE_STATE
-#define LWIP_HTTPD_FILE_STATE         0
-#endif
-
-/** HTTPD_PRECALCULATED_CHECKSUM==1: include precompiled checksums for
- * predefined (MSS-sized) chunks of the files to prevent having to calculate
- * the checksums at runtime. */
-#ifndef HTTPD_PRECALCULATED_CHECKSUM
-#define HTTPD_PRECALCULATED_CHECKSUM  0
-#endif
-
-#if HTTPD_PRECALCULATED_CHECKSUM
-struct fsdata_chksum {
-  u32_t offset;
-  u16_t chksum;
-  u16_t len;
-};
-#endif /* HTTPD_PRECALCULATED_CHECKSUM */
-
-struct fs_file {
-  const char *data;
-  int len;
-  int index;
-  void *pextension;
-#if HTTPD_PRECALCULATED_CHECKSUM
-  const struct fsdata_chksum *chksum;
-  u16_t chksum_count;
-#endif /* HTTPD_PRECALCULATED_CHECKSUM */
-  u8_t http_header_included;
-#if LWIP_HTTPD_CUSTOM_FILES
-  u8_t is_custom_file;
-#endif /* LWIP_HTTPD_CUSTOM_FILES */
-#if LWIP_HTTPD_FILE_STATE
-  void *state;
-#endif /* LWIP_HTTPD_FILE_STATE */
-};
-
-struct fs_file *fs_open(const char *name);
-void fs_close(struct fs_file *file);
-int fs_read(struct fs_file *file, char *buffer, int count);
-int fs_bytes_left(struct fs_file *file);
-
-#if LWIP_HTTPD_FILE_STATE
-/** This user-defined function is called when a file is opened. */
-void *fs_state_init(struct fs_file *file, const char *name);
-/** This user-defined function is called when a file is closed. */
-void fs_state_free(struct fs_file *file, void *state);
-#endif /* #if LWIP_HTTPD_FILE_STATE */
-
-#endif /* __FS_H__ */
diff --git a/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/fsdata.c b/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/fsdata.c
deleted file mode 100644 (file)
index 19ebe78..0000000
+++ /dev/null
@@ -1,2084 +0,0 @@
-#include "fs.h"\r
-#include "lwip/def.h"\r
-#include "fsdata.h"\r
-\r
-\r
-#define file_NULL (struct fsdata_file *) NULL\r
-\r
-\r
-static const unsigned int dummy_align__404_html = 0;\r
-static const unsigned char data__404_html[] = {\r
-/* /404.html (10 chars) */\r
-0x2f,0x34,0x30,0x34,0x2e,0x68,0x74,0x6d,0x6c,0x00,0x00,0x00,\r
-\r
-/* HTTP header */\r
-/* "HTTP/1.0 404 File not found\r
-" (29 bytes) */\r
-0x48,0x54,0x54,0x50,0x2f,0x31,0x2e,0x30,0x20,0x34,0x30,0x34,0x20,0x46,0x69,0x6c,\r
-0x65,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x0d,0x0a,\r
-/* "Server: lwIP/1.3.1 (http://savannah.nongnu.org/projects/lwip)\r
-" (63 bytes) */\r
-0x53,0x65,0x72,0x76,0x65,0x72,0x3a,0x20,0x6c,0x77,0x49,0x50,0x2f,0x31,0x2e,0x33,\r
-0x2e,0x31,0x20,0x28,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x73,0x61,0x76,0x61,0x6e,\r
-0x6e,0x61,0x68,0x2e,0x6e,0x6f,0x6e,0x67,0x6e,0x75,0x2e,0x6f,0x72,0x67,0x2f,0x70,\r
-0x72,0x6f,0x6a,0x65,0x63,0x74,0x73,0x2f,0x6c,0x77,0x69,0x70,0x29,0x0d,0x0a,\r
-/* "Content-type: text/html\r
-\r
-" (27 bytes) */\r
-0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x74,0x79,0x70,0x65,0x3a,0x20,0x74,0x65,\r
-0x78,0x74,0x2f,0x68,0x74,0x6d,0x6c,0x0d,0x0a,0x0d,0x0a,\r
-/* raw file data (544 bytes) */\r
-0x3c,0x68,0x74,0x6d,0x6c,0x3e,0x0a,0x3c,0x68,0x65,0x61,0x64,0x3e,0x3c,0x74,0x69,\r
-0x74,0x6c,0x65,0x3e,0x6c,0x77,0x49,0x50,0x20,0x2d,0x20,0x41,0x20,0x4c,0x69,0x67,\r
-0x68,0x74,0x77,0x65,0x69,0x67,0x68,0x74,0x20,0x54,0x43,0x50,0x2f,0x49,0x50,0x20,\r
-0x53,0x74,0x61,0x63,0x6b,0x3c,0x2f,0x74,0x69,0x74,0x6c,0x65,0x3e,0x3c,0x2f,0x68,\r
-0x65,0x61,0x64,0x3e,0x0a,0x3c,0x62,0x6f,0x64,0x79,0x20,0x62,0x67,0x63,0x6f,0x6c,\r
-0x6f,0x72,0x3d,0x22,0x77,0x68,0x69,0x74,0x65,0x22,0x20,0x74,0x65,0x78,0x74,0x3d,\r
-0x22,0x62,0x6c,0x61,0x63,0x6b,0x22,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x3c,0x74,\r
-0x61,0x62,0x6c,0x65,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22,0x31,0x30,0x30,0x25,\r
-0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x20,0x76,0x61,0x6c,\r
-0x69,0x67,0x6e,0x3d,0x22,0x74,0x6f,0x70,0x22,0x3e,0x3c,0x74,0x64,0x20,0x77,0x69,\r
-0x64,0x74,0x68,0x3d,0x22,0x38,0x30,0x22,0x3e,0x09,0x20,0x20,0x0a,0x09,0x20,0x20,\r
-0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,\r
-0x77,0x77,0x77,0x2e,0x73,0x69,0x63,0x73,0x2e,0x73,0x65,0x2f,0x22,0x3e,0x3c,0x69,\r
-0x6d,0x67,0x20,0x73,0x72,0x63,0x3d,0x22,0x2f,0x69,0x6d,0x67,0x2f,0x73,0x69,0x63,\r
-0x73,0x2e,0x67,0x69,0x66,0x22,0x0a,0x09,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,\r
-0x3d,0x22,0x30,0x22,0x20,0x61,0x6c,0x74,0x3d,0x22,0x53,0x49,0x43,0x53,0x20,0x6c,\r
-0x6f,0x67,0x6f,0x22,0x20,0x74,0x69,0x74,0x6c,0x65,0x3d,0x22,0x53,0x49,0x43,0x53,\r
-0x20,0x6c,0x6f,0x67,0x6f,0x22,0x3e,0x3c,0x2f,0x61,0x3e,0x0a,0x09,0x3c,0x2f,0x74,\r
-0x64,0x3e,0x3c,0x74,0x64,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22,0x35,0x30,0x30,\r
-0x22,0x3e,0x09,0x20,0x20,0x0a,0x09,0x20,0x20,0x3c,0x68,0x31,0x3e,0x6c,0x77,0x49,\r
-0x50,0x20,0x2d,0x20,0x41,0x20,0x4c,0x69,0x67,0x68,0x74,0x77,0x65,0x69,0x67,0x68,\r
-0x74,0x20,0x54,0x43,0x50,0x2f,0x49,0x50,0x20,0x53,0x74,0x61,0x63,0x6b,0x3c,0x2f,\r
-0x68,0x31,0x3e,0x0a,0x09,0x20,0x20,0x3c,0x68,0x32,0x3e,0x34,0x30,0x34,0x20,0x2d,\r
-0x20,0x50,0x61,0x67,0x65,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x3c,\r
-0x2f,0x68,0x32,0x3e,0x0a,0x09,0x20,0x20,0x3c,0x70,0x3e,0x0a,0x09,0x20,0x20,0x20,\r
-0x20,0x53,0x6f,0x72,0x72,0x79,0x2c,0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x67,0x65,\r
-0x20,0x79,0x6f,0x75,0x20,0x61,0x72,0x65,0x20,0x72,0x65,0x71,0x75,0x65,0x73,0x74,\r
-0x69,0x6e,0x67,0x20,0x77,0x61,0x73,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,\r
-0x64,0x20,0x6f,0x6e,0x20,0x74,0x68,0x69,0x73,0x0a,0x09,0x20,0x20,0x20,0x20,0x73,\r
-0x65,0x72,0x76,0x65,0x72,0x2e,0x20,0x0a,0x09,0x20,0x20,0x3c,0x2f,0x70,0x3e,0x0a,\r
-0x09,0x3c,0x2f,0x74,0x64,0x3e,0x3c,0x74,0x64,0x3e,0x0a,0x09,0x20,0x20,0x26,0x6e,\r
-0x62,0x73,0x70,0x3b,0x0a,0x09,0x3c,0x2f,0x74,0x64,0x3e,0x3c,0x2f,0x74,0x72,0x3e,\r
-0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x0a,\r
-0x3c,0x2f,0x62,0x6f,0x64,0x79,0x3e,0x0a,0x3c,0x2f,0x68,0x74,0x6d,0x6c,0x3e,0x0a,\r
-};\r
-\r
-static const unsigned int dummy_align__index_shtml = 1;\r
-static const unsigned char data__index_shtml[] = {\r
-/* /index.shtml (13 chars) */\r
-0x2f,0x69,0x6e,0x64,0x65,0x78,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x00,0x00,0x00,0x00,\r
-\r
-/* HTTP header */\r
-/* "HTTP/1.0 200 OK\r
-" (17 bytes) */\r
-0x48,0x54,0x54,0x50,0x2f,0x31,0x2e,0x30,0x20,0x32,0x30,0x30,0x20,0x4f,0x4b,0x0d,\r
-0x0a,\r
-/* "Server: lwIP/1.3.1 (http://savannah.nongnu.org/projects/lwip)\r
-" (63 bytes) */\r
-0x53,0x65,0x72,0x76,0x65,0x72,0x3a,0x20,0x6c,0x77,0x49,0x50,0x2f,0x31,0x2e,0x33,\r
-0x2e,0x31,0x20,0x28,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x73,0x61,0x76,0x61,0x6e,\r
-0x6e,0x61,0x68,0x2e,0x6e,0x6f,0x6e,0x67,0x6e,0x75,0x2e,0x6f,0x72,0x67,0x2f,0x70,\r
-0x72,0x6f,0x6a,0x65,0x63,0x74,0x73,0x2f,0x6c,0x77,0x69,0x70,0x29,0x0d,0x0a,\r
-/* "Content-type: text/html\r
-Expires: Fri, 10 Apr 2008 14:00:00 GMT\r
-Pragma: no-cache\r
-\r
-" (85 bytes) */\r
-0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x74,0x79,0x70,0x65,0x3a,0x20,0x74,0x65,\r
-0x78,0x74,0x2f,0x68,0x74,0x6d,0x6c,0x0d,0x0a,0x45,0x78,0x70,0x69,0x72,0x65,0x73,\r
-0x3a,0x20,0x46,0x72,0x69,0x2c,0x20,0x31,0x30,0x20,0x41,0x70,0x72,0x20,0x32,0x30,\r
-0x30,0x38,0x20,0x31,0x34,0x3a,0x30,0x30,0x3a,0x30,0x30,0x20,0x47,0x4d,0x54,0x0d,\r
-0x0a,0x50,0x72,0x61,0x67,0x6d,0x61,0x3a,0x20,0x6e,0x6f,0x2d,0x63,0x61,0x63,0x68,\r
-0x65,0x0d,0x0a,0x0d,0x0a,\r
-/* raw file data (886 bytes) */\r
-0x3c,0x21,0x44,0x4f,0x43,0x54,0x59,0x50,0x45,0x20,0x48,0x54,0x4d,0x4c,0x20,0x50,\r
-0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f,0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,\r
-0x54,0x44,0x20,0x48,0x54,0x4d,0x4c,0x20,0x34,0x2e,0x30,0x31,0x20,0x54,0x72,0x61,\r
-0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x2f,0x2f,0x45,0x4e,0x22,0x20,0x22,\r
-0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,\r
-0x67,0x2f,0x54,0x52,0x2f,0x68,0x74,0x6d,0x6c,0x34,0x2f,0x6c,0x6f,0x6f,0x73,0x65,\r
-0x2e,0x64,0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x68,0x74,0x6d,0x6c,0x3e,0x0d,0x0a,\r
-0x20,0x20,0x3c,0x68,0x65,0x61,0x64,0x3e,0x0d,0x0a,0x20,0x20,0x20,0x20,0x3c,0x74,\r
-0x69,0x74,0x6c,0x65,0x3e,0x46,0x72,0x65,0x65,0x52,0x54,0x4f,0x53,0x2e,0x6f,0x72,\r
-0x67,0x20,0x75,0x49,0x50,0x20,0x57,0x45,0x42,0x20,0x73,0x65,0x72,0x76,0x65,0x72,\r
-0x20,0x64,0x65,0x6d,0x6f,0x3c,0x2f,0x74,0x69,0x74,0x6c,0x65,0x3e,0x0d,0x0a,0x20,\r
-0x20,0x3c,0x2f,0x68,0x65,0x61,0x64,0x3e,0x0d,0x0a,0x20,0x20,0x3c,0x42,0x4f,0x44,\r
-0x59,0x20,0x6f,0x6e,0x4c,0x6f,0x61,0x64,0x3d,0x22,0x77,0x69,0x6e,0x64,0x6f,0x77,\r
-0x2e,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x26,0x71,0x75,0x6f,\r
-0x74,0x3b,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x68,0x72,0x65,0x66,0x3d,\r
-0x27,0x69,0x6e,0x64,0x65,0x78,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x27,0x26,0x71,0x75,\r
-0x6f,0x74,0x3b,0x2c,0x32,0x30,0x30,0x30,0x29,0x22,0x3e,0x0d,0x0a,0x3c,0x66,0x6f,\r
-0x6e,0x74,0x20,0x66,0x61,0x63,0x65,0x3d,0x22,0x61,0x72,0x69,0x61,0x6c,0x22,0x3e,\r
-0x0d,0x0a,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x69,0x6e,0x64,0x65,0x78,\r
-0x2e,0x73,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x54,0x61,0x73,0x6b,0x20,0x53,0x74,0x61,\r
-0x74,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x62,0x3e,0x7c,0x3c,0x2f,0x62,0x3e,0x20,\r
-0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,\r
-0x2e,0x73,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x52,0x75,0x6e,0x20,0x54,0x69,0x6d,0x65,\r
-0x20,0x53,0x74,0x61,0x74,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x62,0x3e,0x7c,0x3c,\r
-0x2f,0x62,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x73,0x74,0x61,\r
-0x74,0x73,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x54,0x43,0x50,0x20,0x53,0x74,\r
-0x61,0x74,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x62,0x3e,0x7c,0x3c,0x2f,0x62,0x3e,\r
-0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x74,0x63,0x70,0x2e,0x73,0x68,\r
-0x74,0x6d,0x6c,0x22,0x3e,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,\r
-0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x62,0x3e,0x7c,0x3c,0x2f,0x62,0x3e,0x20,0x3c,0x61,\r
-0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,\r
-0x77,0x2e,0x66,0x72,0x65,0x65,0x72,0x74,0x6f,0x73,0x2e,0x6f,0x72,0x67,0x2f,0x22,\r
-0x3e,0x46,0x72,0x65,0x65,0x52,0x54,0x4f,0x53,0x20,0x48,0x6f,0x6d,0x65,0x70,0x61,\r
-0x67,0x65,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x62,0x3e,0x7c,0x3c,0x2f,0x62,0x3e,0x20,\r
-0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x69,0x6f,0x2e,0x73,0x68,0x74,0x6d,\r
-0x6c,0x22,0x3e,0x49,0x4f,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x62,0x3e,0x7c,0x3c,0x2f,\r
-0x62,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x6c,0x6f,0x67,0x6f,\r
-0x2e,0x6a,0x70,0x67,0x22,0x3e,0x33,0x37,0x4b,0x20,0x6a,0x70,0x67,0x3c,0x2f,0x61,\r
-0x3e,0x0d,0x0a,0x3c,0x62,0x72,0x3e,0x3c,0x70,0x3e,0x0d,0x0a,0x3c,0x68,0x72,0x3e,\r
-0x0d,0x0a,0x3c,0x62,0x72,0x3e,0x3c,0x70,0x3e,0x0d,0x0a,0x3c,0x68,0x32,0x3e,0x54,\r
-0x61,0x73,0x6b,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x3c,0x2f,\r
-0x68,0x32,0x3e,0x0d,0x0a,0x50,0x61,0x67,0x65,0x20,0x77,0x69,0x6c,0x6c,0x20,0x72,\r
-0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x65,0x76,0x65,0x72,0x79,0x20,0x32,0x20,0x73,\r
-0x65,0x63,0x6f,0x6e,0x64,0x73,0x2e,0x3c,0x70,0x3e,0x0d,0x0a,0x3c,0x66,0x6f,0x6e,\r
-0x74,0x20,0x66,0x61,0x63,0x65,0x3d,0x22,0x63,0x6f,0x75,0x72,0x69,0x65,0x72,0x22,\r
-0x3e,0x3c,0x70,0x72,0x65,0x3e,0x54,0x61,0x73,0x6b,0x20,0x20,0x20,0x20,0x20,0x20,\r
-0x20,0x20,0x20,0x20,0x53,0x74,0x61,0x74,0x65,0x20,0x20,0x50,0x72,0x69,0x6f,0x72,\r
-0x69,0x74,0x79,0x20,0x20,0x53,0x74,0x61,0x63,0x6b,0x09,0x23,0x3c,0x62,0x72,0x3e,\r
-0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,\r
-0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,\r
-0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,\r
-0x3c,0x62,0x72,0x3e,0x0d,0x0a,0x3c,0x21,0x2d,0x2d,0x23,0x72,0x74,0x6f,0x73,0x5f,\r
-0x73,0x74,0x61,0x74,0x73,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x2f,0x70,0x72,0x65,0x3e,\r
-0x3c,0x2f,0x66,0x6f,0x6e,0x74,0x3e,0x0d,0x0a,0x3c,0x2f,0x66,0x6f,0x6e,0x74,0x3e,\r
-0x0d,0x0a,0x3c,0x2f,0x62,0x6f,0x64,0x79,0x3e,0x0d,0x0a,0x3c,0x2f,0x68,0x74,0x6d,\r
-0x6c,0x3e,0x0d,0x0a,0x0d,0x0a,};\r
-\r
-static const unsigned int dummy_align__logo_jpg = 2;\r
-static const unsigned char data__logo_jpg[] = {\r
-/* /logo.jpg (10 chars) */\r
-0x2f,0x6c,0x6f,0x67,0x6f,0x2e,0x6a,0x70,0x67,0x00,0x00,0x00,\r
-\r
-/* HTTP header */\r
-/* "HTTP/1.0 200 OK\r
-" (17 bytes) */\r
-0x48,0x54,0x54,0x50,0x2f,0x31,0x2e,0x30,0x20,0x32,0x30,0x30,0x20,0x4f,0x4b,0x0d,\r
-0x0a,\r
-/* "Server: lwIP/1.3.1 (http://savannah.nongnu.org/projects/lwip)\r
-" (63 bytes) */\r
-0x53,0x65,0x72,0x76,0x65,0x72,0x3a,0x20,0x6c,0x77,0x49,0x50,0x2f,0x31,0x2e,0x33,\r
-0x2e,0x31,0x20,0x28,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x73,0x61,0x76,0x61,0x6e,\r
-0x6e,0x61,0x68,0x2e,0x6e,0x6f,0x6e,0x67,0x6e,0x75,0x2e,0x6f,0x72,0x67,0x2f,0x70,\r
-0x72,0x6f,0x6a,0x65,0x63,0x74,0x73,0x2f,0x6c,0x77,0x69,0x70,0x29,0x0d,0x0a,\r
-/* "Content-type: image/jpeg\r
-\r
-" (28 bytes) */\r
-0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x74,0x79,0x70,0x65,0x3a,0x20,0x69,0x6d,\r
-0x61,0x67,0x65,0x2f,0x6a,0x70,0x65,0x67,0x0d,0x0a,0x0d,0x0a,\r
-/* raw file data (28602 bytes) */\r
-0xff,0xd8,0xff,0xe0,0x00,0x10,0x4a,0x46,0x49,0x46,0x00,0x01,0x01,0x00,0x00,0x01,\r
-0x00,0x01,0x00,0x00,0xff,0xdb,0x00,0x43,0x00,0x03,0x02,0x02,0x03,0x02,0x02,0x03,\r
-0x03,0x03,0x03,0x04,0x03,0x03,0x04,0x05,0x08,0x05,0x05,0x04,0x04,0x05,0x0a,0x07,\r
-0x07,0x06,0x08,0x0c,0x0a,0x0c,0x0c,0x0b,0x0a,0x0b,0x0b,0x0d,0x0e,0x12,0x10,0x0d,\r
-0x0e,0x11,0x0e,0x0b,0x0b,0x10,0x16,0x10,0x11,0x13,0x14,0x15,0x15,0x15,0x0c,0x0f,\r
-0x17,0x18,0x16,0x14,0x18,0x12,0x14,0x15,0x14,0xff,0xdb,0x00,0x43,0x01,0x03,0x04,\r
-0x04,0x05,0x04,0x05,0x09,0x05,0x05,0x09,0x14,0x0d,0x0b,0x0d,0x14,0x14,0x14,0x14,\r
-0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,\r
-0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,\r
-0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0xff,0xc0,\r
-0x00,0x11,0x08,0x00,0xea,0x02,0x71,0x03,0x01,0x22,0x00,0x02,0x11,0x01,0x03,0x11,\r
-0x01,0xff,0xc4,0x00,0x1f,0x00,0x00,0x01,0x05,0x01,0x01,0x01,0x01,0x01,0x01,0x00,\r
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,\r
-0x0a,0x0b,0xff,0xc4,0x00,0xb5,0x10,0x00,0x02,0x01,0x03,0x03,0x02,0x04,0x03,0x05,\r
-0x05,0x04,0x04,0x00,0x00,0x01,0x7d,0x01,0x02,0x03,0x00,0x04,0x11,0x05,0x12,0x21,\r
-0x31,0x41,0x06,0x13,0x51,0x61,0x07,0x22,0x71,0x14,0x32,0x81,0x91,0xa1,0x08,0x23,\r
-0x42,0xb1,0xc1,0x15,0x52,0xd1,0xf0,0x24,0x33,0x62,0x72,0x82,0x09,0x0a,0x16,0x17,\r
-0x18,0x19,0x1a,0x25,0x26,0x27,0x28,0x29,0x2a,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,\r
-0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,\r
-0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,\r
-0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,\r
-0x9a,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,\r
-0xb8,0xb9,0xba,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xd2,0xd3,0xd4,0xd5,\r
-0xd6,0xd7,0xd8,0xd9,0xda,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xf1,\r
-0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xff,0xc4,0x00,0x1f,0x01,0x00,0x03,\r
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,\r
-0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0xff,0xc4,0x00,0xb5,0x11,0x00,\r
-0x02,0x01,0x02,0x04,0x04,0x03,0x04,0x07,0x05,0x04,0x04,0x00,0x01,0x02,0x77,0x00,\r
-0x01,0x02,0x03,0x11,0x04,0x05,0x21,0x31,0x06,0x12,0x41,0x51,0x07,0x61,0x71,0x13,\r
-0x22,0x32,0x81,0x08,0x14,0x42,0x91,0xa1,0xb1,0xc1,0x09,0x23,0x33,0x52,0xf0,0x15,\r
-0x62,0x72,0xd1,0x0a,0x16,0x24,0x34,0xe1,0x25,0xf1,0x17,0x18,0x19,0x1a,0x26,0x27,\r
-0x28,0x29,0x2a,0x35,0x36,0x37,0x38,0x39,0x3a,0x43,0x44,0x45,0x46,0x47,0x48,0x49,\r
-0x4a,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x63,0x64,0x65,0x66,0x67,0x68,0x69,\r
-0x6a,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x82,0x83,0x84,0x85,0x86,0x87,0x88,\r
-0x89,0x8a,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0xa2,0xa3,0xa4,0xa5,0xa6,\r
-0xa7,0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xc2,0xc3,0xc4,\r
-0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xe2,\r
-0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,\r
-0xfa,0xff,0xda,0x00,0x0c,0x03,0x01,0x00,0x02,0x11,0x03,0x11,0x00,0x3f,0x00,0xfd,\r
-0x53,0xa2,0x8a,0x28,0x00,0xa2,0x8a,0x28,0x00,0xa2,0x8a,0x28,0x00,0xa4,0x34,0x8e,\r
-0x70,0x09,0xaf,0x0b,0xf1,0xbf,0xc6,0x4b,0x8f,0x13,0x78,0xc2,0xdb,0xc1,0x7e,0x0f,\r
-0xb8,0x2b,0x24,0x93,0x08,0xae,0xf5,0x48,0x88,0x3b,0x47,0xf1,0x2c,0x7f,0x4e,0x72,\r
-0xdf,0x97,0xad,0x72,0x62,0x71,0x54,0xf0,0xb1,0xe6,0x9e,0xef,0x44,0xba,0xb6,0x73,\r
-0x57,0xc4,0x43,0x0e,0x93,0x9e,0xef,0x44,0xba,0xb6,0x77,0xbe,0x3b,0xf8,0xb9,0xa1,\r
-0xf8,0x16,0x39,0x23,0x9d,0xe4,0xd4,0x35,0x05,0x1c,0x58,0x59,0x2e,0xf9,0x3d,0xb7,\r
-0x76,0x51,0xf5,0xfc,0x8d,0x78,0x07,0x8a,0xff,0x00,0x69,0x3f,0x1b,0x6a,0xb3,0x3a,\r
-0x69,0x3a,0x7f,0xf6,0x2d,0xb7,0xf0,0x81,0x09,0x96,0x5f,0xc5,0x98,0x63,0xf2,0x15,\r
-0xf4,0xde,0x83,0xe0,0xdd,0x27,0xc3,0xf6,0x62,0x0b,0x6b,0x38,0xc9,0x3f,0x33,0xcb,\r
-0x20,0xde,0xf2,0x37,0x76,0x66,0x3c,0x92,0x6b,0x40,0xe9,0x16,0x47,0xad,0x9c,0x1f,\r
-0xf7,0xec,0x57,0x9d,0x88,0xc2,0xe3,0x31,0x2b,0xf8,0xbc,0x8b,0xb2,0x5f,0xad,0xce,\r
-0x3c,0x46,0x1b,0x13,0x88,0x56,0x8d,0x5e,0x45,0xe4,0xbf,0x53,0xe0,0x8d,0x4f,0xc6,\r
-0xfe,0x33,0xd5,0x18,0x9b,0xcd,0x5f,0x56,0x90,0x93,0x9c,0x19,0xa4,0x0b,0xf9,0x0e,\r
-0x2b,0x35,0x75,0xff,0x00,0x10,0xc7,0x9c,0x6a,0x3a,0x82,0xfa,0xfe,0xfa,0x41,0xfd,\r
-0x6b,0xf4,0x19,0xb4,0x2d,0x39,0xba,0xd8,0x5b,0x7f,0xdf,0xa1,0xfe,0x15,0x19,0xf0,\r
-0xce,0x94,0xff,0x00,0x7b,0x4d,0xb5,0x3f,0xf6,0xc5,0x7f,0xc2,0xbc,0x79,0x64,0x15,\r
-0xa4,0xef,0xed,0xaf,0xf2,0x7f,0xe6,0x78,0x72,0xc8,0x6a,0x49,0xdd,0xd7,0x7f,0xd7,\r
-0xcc,0xf8,0x0d,0x3c,0x5f,0xe2,0x68,0x94,0x05,0xd6,0x35,0x45,0x03,0xa0,0x17,0x32,\r
-0x0f,0xeb,0x53,0x27,0x8f,0xbc,0x59,0x11,0x25,0x75,0xfd,0x59,0x33,0xe9,0x77,0x28,\r
-0xfe,0xb5,0xf7,0x8b,0x78,0x3b,0x44,0x7e,0xba,0x4d,0x99,0xff,0x00,0xb6,0x2b,0x51,\r
-0x37,0x81,0x7c,0x3c,0xf9,0xce,0x8d,0x66,0x73,0xff,0x00,0x4c,0x56,0xa5,0x64,0x58,\r
-0x85,0xb5,0x6f,0xcc,0x9f,0xec,0x2a,0xeb,0x6a,0xef,0xf1,0xff,0x00,0x33,0xe1,0x6f,\r
-0xf8,0x59,0x3e,0x2f,0x5f,0xf9,0x98,0xb5,0x7f,0xfc,0x0c,0x93,0xfc,0x69,0xeb,0xf1,\r
-0x4f,0xc6,0x51,0x9c,0xaf,0x89,0x35,0x5c,0xfb,0xdd,0x3f,0xf8,0xd7,0xdc,0x0d,0xf0,\r
-0xf3,0xc3,0x6f,0xd7,0x44,0xb2,0x3f,0xf6,0xc8,0x54,0x4f,0xf0,0xcb,0xc2,0xaf,0xf7,\r
-0xb4,0x2b,0x23,0xff,0x00,0x6c,0x85,0x2f,0xec,0x4c,0x5f,0xfc,0xfe,0xfc,0xc5,0xfd,\r
-0x89,0x8a,0x5b,0x57,0x7f,0x89,0xf1,0x54,0x7f,0x17,0xfc,0x6b,0x1f,0xfc,0xcc,0x9a,\r
-0x99,0xfa,0xdc,0x35,0x58,0x8b,0xe3,0x87,0x8e,0xe1,0x6c,0xaf,0x89,0x2f,0x73,0xd3,\r
-0xe6,0x21,0x87,0xe4,0x45,0x7d,0x8e,0xff,0x00,0x09,0x7c,0x20,0xfd,0x74,0x0b,0x3f,\r
-0xc2,0x3c,0x54,0x2f,0xf0,0x6b,0xc1,0xaf,0xd7,0x41,0xb5,0x1f,0x45,0xa4,0xb2,0x7c,\r
-0x72,0xda,0xb7,0xe2,0xc7,0xfd,0x8f,0x8d,0x5b,0x62,0x1f,0xe2,0x7c,0x8a,0x9f,0x1f,\r
-0xbc,0x7e,0x83,0x1f,0xf0,0x91,0x5c,0x7d,0x4c,0x71,0x9f,0xfd,0x96,0xa6,0x1f,0xb4,\r
-0x37,0x8f,0xc7,0xfc,0xcc,0x12,0xfe,0x30,0x45,0xff,0x00,0xc4,0x57,0xd5,0xaf,0xf0,\r
-0x43,0xc1,0x4e,0x0f,0xfc,0x48,0xa0,0x1f,0x4a,0x89,0xbe,0x03,0xf8,0x21,0xf3,0xff,\r
-0x00,0x12,0x48,0x86,0x7d,0x09,0xa7,0xfd,0x95,0x98,0xad,0xab,0x7e,0x2c,0x3f,0xb2,\r
-0xb3,0x15,0xb6,0x21,0xfd,0xec,0xf9,0x69,0x7f,0x68,0xaf,0x1f,0x8f,0xf9,0x8f,0x39,\r
-0xfa,0xdb,0xc5,0xff,0x00,0xc4,0xd4,0x89,0xfb,0x48,0x78,0xf9,0x08,0x3f,0xdb,0x59,\r
-0xc7,0xad,0xb4,0x47,0xff,0x00,0x65,0xaf,0xa6,0x9f,0xf6,0x7d,0xf0,0x33,0x8e,0x74,\r
-0x75,0x1e,0xe1,0x8d,0x42,0xff,0x00,0xb3,0x9f,0x81,0x9c,0x7f,0xc8,0x2d,0x97,0xe9,\r
-0x21,0xa3,0xfb,0x33,0x34,0x5b,0x56,0xff,0x00,0xc9,0x98,0xbf,0xb3,0x33,0x35,0xb5,\r
-0x7f,0xc5,0x9f,0x39,0xc7,0xfb,0x4d,0xf8,0xf1,0x17,0x07,0x52,0x85,0xcf,0xab,0x5a,\r
-0xa6,0x7f,0x95,0x58,0x4f,0xda,0x9b,0xc7,0x49,0x8f,0xf4,0x9b,0x36,0xc7,0xad,0xaa,\r
-0xf3,0xfa,0xd7,0xbe,0xbf,0xec,0xd5,0xe0,0x86,0xc9,0x16,0x32,0xaf,0xd2,0x43,0x50,\r
-0x3f,0xec,0xc5,0xe0,0xa6,0xe9,0x6f,0x3a,0xff,0x00,0xdb,0x4a,0x5f,0xd9,0xf9,0xb2,\r
-0xda,0xaf,0xfe,0x4c,0xc3,0xfb,0x3f,0x36,0x5b,0x57,0xfc,0x59,0xe2,0x0b,0xfb,0x57,\r
-0x78,0xdd,0x7a,0x9d,0x39,0xbe,0xb6,0xc7,0xfa,0x35,0x3d,0x7f,0x6b,0x0f,0x1a,0x82,\r
-0x32,0x9a,0x61,0xff,0x00,0xb7,0x66,0xff,0x00,0xe2,0xeb,0xd9,0xdb,0xf6,0x5a,0xf0,\r
-0x63,0x0e,0x12,0xe5,0x7f,0xed,0xa5,0x42,0xff,0x00,0xb2,0xa7,0x83,0xcf,0x47,0xbb,\r
-0x5f,0xfb,0x69,0x43,0xc1,0xe7,0x0b,0x6a,0x9f,0xf9,0x30,0x7d,0x4b,0x37,0x5b,0x56,\r
-0xfc,0x4f,0x23,0x5f,0xda,0xd7,0xc6,0x43,0xad,0xbe,0x96,0xdf,0xf6,0xc1,0xff,0x00,\r
-0xf8,0xba,0x91,0x3f,0x6b,0x8f,0x16,0x82,0x37,0x59,0x69,0x6d,0xeb,0xfb,0xa7,0xff,\r
-0x00,0xe2,0xeb,0xd4,0x24,0xfd,0x93,0xbc,0x2a,0xd8,0xdb,0x75,0x78,0xbf,0xf0,0x20,\r
-0x6a,0x07,0xfd,0x92,0x3c,0x34,0x73,0x8b,0xfb,0xb5,0xf4,0xe9,0x4b,0xea,0xb9,0xca,\r
-0xfb,0x7f,0x88,0x7d,0x53,0x39,0x5b,0x55,0xfc,0x4f,0x3d,0x8b,0xf6,0xbe,0xf1,0x32,\r
-0xe7,0xcc,0xd2,0xb4,0xc7,0xf4,0xc2,0xc8,0x3f,0xf6,0x6a,0xb0,0x9f,0xb6,0x16,0xbc,\r
-0x31,0xbb,0x43,0xd3,0x5b,0xd7,0x0d,0x20,0xfe,0xb5,0xda,0xc9,0xfb,0x22,0xe8,0x19,\r
-0xf9,0x75,0x3b,0xa0,0x3d,0xd4,0x54,0x0f,0xfb,0x21,0x68,0xe4,0x7c,0xba,0xbd,0xcf,\r
-0xe2,0x82,0x9f,0xb1,0xce,0x97,0xda,0xfc,0x50,0x7b,0x0c,0xe9,0x7d,0xbf,0xc8,0xe6,\r
-0x07,0xed,0x89,0xaa,0xf7,0xf0,0xf5,0x99,0xfa,0x4e,0xdf,0xe1,0x4f,0x5f,0xdb,0x1b,\r
-0x50,0x1f,0x7b,0xc3,0x96,0xa7,0xe9,0x72,0xdf,0xfc,0x4d,0x6f,0x3f,0xec,0x7f,0xa6,\r
-0x1c,0xed,0xd6,0xe7,0x5f,0xac,0x60,0xd4,0x12,0x7e,0xc7,0xb6,0x99,0x1b,0x35,0xd9,\r
-0x31,0xef,0x17,0xff,0x00,0x5e,0x8e,0x4c,0xed,0x75,0xfc,0x85,0xec,0xf3,0xb5,0xf6,\r
-0xbf,0x23,0x35,0x7f,0x6c,0x7b,0xc3,0xf7,0xbc,0x35,0x01,0x1e,0xd7,0x67,0xff,0x00,\r
-0x89,0xa9,0x93,0xf6,0xc8,0x70,0x06,0xef,0x0b,0xa9,0x3d,0xf1,0x7b,0xff,0x00,0xd8,\r
-0x54,0xaf,0xfb,0x1e,0xa0,0x5f,0x97,0x5d,0xe7,0xde,0x2a,0x85,0xbf,0x63,0xe9,0x32,\r
-0x76,0xeb,0xa9,0xed,0x98,0x8d,0x2f,0xf8,0x5b,0x5d,0xff,0x00,0xf2,0x50,0xb6,0x76,\r
-0xba,0xfe,0x44,0xeb,0xfb,0x64,0xc4,0x7e,0xf7,0x85,0xdf,0x1e,0xd7,0xa3,0xff,0x00,\r
-0x8d,0xd4,0xcb,0xfb,0x63,0xda,0x63,0xe6,0xf0,0xcc,0xc0,0xfb,0x5e,0x03,0xff,0x00,\r
-0xb2,0x56,0x63,0xfe,0xc7,0xd7,0x7d,0xb5,0xc8,0x4f,0xd5,0x0d,0x40,0xff,0x00,0xb2,\r
-0x06,0xa6,0x01,0xdb,0xad,0x5b,0x13,0xee,0x84,0x53,0xf6,0x99,0xda,0xe8,0xfe,0xe8,\r
-0x87,0x3e,0x78,0xbf,0xa4,0x6f,0x27,0xed,0x8b,0xa7,0x13,0xcf,0x87,0x2e,0x40,0xff,\r
-0x00,0xaf,0x95,0x3f,0xfb,0x2d,0x48,0x3f,0x6c,0x3d,0x27,0x1f,0x37,0x87,0xaf,0x01,\r
-0xf6,0x9d,0x0f,0xf4,0xae,0x59,0xbf,0x64,0x2d,0x68,0x1e,0x35,0x6b,0x53,0xef,0x83,\r
-0x50,0x37,0xec,0x8d,0xe2,0x11,0xf7,0x75,0x0b,0x46,0xfc,0x4d,0x4f,0xb7,0xce,0x97,\r
-0xd9,0x7f,0x72,0x17,0xb5,0xce,0xd7,0xd9,0xfc,0x11,0xdd,0x45,0xfb,0x5f,0xf8,0x74,\r
-0xb7,0xcf,0xa3,0x6a,0x4a,0x3d,0x54,0xc6,0x7f,0xf6,0x6a,0xb3,0x1f,0xed,0x75,0xe1,\r
-0x36,0x5c,0xbe,0x9b,0xab,0x2b,0x7a,0x08,0xe3,0x3f,0xfb,0x3d,0x79,0xb4,0x9f,0xb2,\r
-0x67,0x89,0x54,0x1c,0x5e,0x5a,0x13,0xfe,0xf1,0xa8,0x1b,0xf6,0x50,0xf1,0x5f,0x69,\r
-0xad,0x1b,0xfe,0x07,0x42,0xc5,0x67,0x0b,0xec,0x3f,0xb9,0x0f,0xeb,0x39,0xd2,0xfb,\r
-0x1f,0x82,0x3d,0x54,0x7e,0xd6,0xfe,0x0e,0xce,0x0d,0x96,0xae,0x07,0xaf,0x93,0x1f,\r
-0xff,0x00,0x17,0x4f,0x1f,0xb5,0xaf,0x83,0x31,0xff,0x00,0x1e,0xba,0xb7,0xfd,0xf8,\r
-0x4f,0xfe,0x2e,0xbc,0x85,0xbf,0x65,0x4f,0x18,0x0f,0xbb,0xf6,0x46,0xff,0x00,0xb6,\r
-0xb5,0x03,0xfe,0xcb,0xbe,0x34,0x4c,0xe2,0x0b,0x76,0x03,0xd2,0x51,0x43,0xc7,0x66,\r
-0xeb,0x7a,0x7f,0xf9,0x28,0x7d,0x73,0x39,0x5f,0xf2,0xeb,0xf0,0x3d,0xa9,0x7f,0x6a,\r
-0xff,0x00,0x05,0x36,0x3f,0x75,0xa9,0xaf,0xd6,0xdd,0x7f,0xf8,0xaa,0x91,0x7f,0x6a,\r
-0xaf,0x04,0x11,0xc9,0xd4,0x53,0xeb,0x6c,0x3f,0xf8,0xaa,0xf0,0xb6,0xfd,0x99,0x7c,\r
-0x6c,0xbd,0x2c,0xe2,0x3f,0x49,0x45,0x42,0xff,0x00,0xb3,0x67,0x8d,0xd4,0x7f,0xc8,\r
-0x3d,0x4f,0xd1,0xc5,0x2f,0xed,0x1c,0xd5,0x7f,0xcb,0xbf,0xfc,0x95,0x8b,0xeb,0xf9,\r
-0xba,0xff,0x00,0x97,0x5f,0x87,0xfc,0x13,0xe8,0x48,0xbf,0x69,0xef,0x01,0xc8,0xe0,\r
-0x1b,0xeb,0xa8,0xc1,0xfe,0x26,0xb5,0x6c,0x0f,0xca,0xad,0x2f,0xed,0x27,0xf0,0xfd,\r
-0x81,0x3f,0xdb,0x2e,0xbe,0xc6,0xd6,0x5f,0xfe,0x26,0xbe,0x6b,0x6f,0xd9,0xd7,0xc7,\r
-0x0a,0x78,0xd2,0xc9,0xc7,0xa3,0x8a,0x81,0xff,0x00,0x67,0xef,0x1c,0xa9,0xff,0x00,\r
-0x90,0x34,0x87,0xe8,0xc0,0xff,0x00,0x5a,0x7f,0xda,0x99,0x9c,0x77,0xa5,0xff,0x00,\r
-0x92,0xb0,0xfe,0xd2,0xcd,0x56,0xf4,0x7f,0x06,0x7d,0x42,0x3f,0x68,0x9f,0x87,0xcd,\r
-0xff,0x00,0x33,0x02,0x8f,0xad,0xb4,0xdf,0xfc,0x45,0x38,0x7e,0xd0,0x9f,0x0f,0xcf,\r
-0x4f,0x11,0x47,0xff,0x00,0x80,0xf2,0x8f,0xfd,0x92,0xbe,0x55,0x6f,0x81,0x3e,0x37,\r
-0x43,0xce,0x89,0x37,0xe1,0x51,0x3f,0xc1,0x4f,0x1a,0x27,0x5d,0x0e,0xe7,0x8f,0x6a,\r
-0x6f,0x38,0xcc,0x16,0xf4,0xbf,0xf2,0x59,0x07,0xf6,0xae,0x64,0xb7,0xa1,0xf8,0x3f,\r
-0xf3,0x3e,0xb2,0x1f,0x1f,0xfc,0x00,0xd8,0xff,0x00,0x8a,0x8e,0x1e,0x7d,0x62,0x93,\r
-0xff,0x00,0x89,0xa9,0xd3,0xe3,0xaf,0x80,0xdc,0x64,0x78,0x92,0xd4,0x7d,0x43,0x8f,\r
-0xe9,0x5f,0x1f,0xbf,0xc1,0xff,0x00,0x18,0xa0,0xe7,0x42,0xba,0xe7,0xfd,0x9a,0x85,\r
-0xbe,0x14,0xf8,0xb9,0x3a,0xe8,0x77,0x7f,0xf7,0xc5,0x2f,0xed,0xac,0x72,0xff,0x00,\r
-0x97,0x4b,0xee,0x62,0xfe,0xd8,0xc7,0xad,0xe8,0x7e,0x0c,0xfb,0x3d,0x3e,0x32,0xf8,\r
-0x21,0xc0,0xc7,0x89,0xb4,0xfe,0x7d,0x65,0xc5,0x48,0x9f,0x17,0x7c,0x14,0xf9,0xc7,\r
-0x89,0xf4,0xce,0x3d,0x6e,0x14,0x57,0xc4,0xef,0xf0,0xd3,0xc5,0x51,0x9f,0x9b,0x44,\r
-0xbd,0x1f,0xf6,0xc8,0xd4,0x0d,0xe0,0x0f,0x12,0x27,0x5d,0x1e,0xf0,0x7f,0xdb,0x23,\r
-0x47,0xf6,0xee,0x29,0x6f,0x49,0x7e,0x23,0xfe,0xdb,0xc6,0x2d,0xe8,0x7e,0x67,0xdc,\r
-0x63,0xe2,0xbf,0x83,0x4f,0x4f,0x13,0xe9,0x7f,0xf8,0x16,0x9f,0xe3,0x52,0x2f,0xc4,\r
-0xef,0x09,0x36,0x71,0xe2,0x5d,0x2f,0x8f,0xfa,0x7b,0x4f,0xf1,0xaf,0x85,0x1b,0xc1,\r
-0x5e,0x20,0x5e,0xba,0x55,0xd0,0xff,0x00,0xb6,0x46,0xa2,0x6f,0x0a,0x6b,0x69,0xd7,\r
-0x4c,0xba,0x1f,0xf6,0xc8,0xd1,0xfd,0xbf,0x89,0xeb,0x49,0x7e,0x22,0xfe,0xdd,0xc5,\r
-0x2d,0xe8,0x7e,0x67,0xde,0xc9,0xf1,0x07,0xc2,0xf2,0x80,0x57,0xc4,0x3a,0x59,0x07,\r
-0xa7,0xfa,0x64,0x7f,0xe3,0x56,0x13,0xc6,0x5a,0x04,0x9f,0x77,0x5a,0xd3,0x9b,0x1e,\r
-0x97,0x49,0xfe,0x35,0xf9,0xfa,0xde,0x1c,0xd5,0xd7,0xae,0x9f,0x72,0x3f,0xed,0x91,\r
-0xa8,0xce,0x89,0xa9,0x27,0x06,0xca,0xe0,0x7d,0x63,0x34,0xd7,0x10,0xd6,0x5b,0xd3,\r
-0x5f,0x8f,0xf9,0x0f,0xfb,0x7e,0xbf,0x5a,0x1f,0x99,0xfa,0x1a,0x9e,0x23,0xd2,0x64,\r
-0x50,0x57,0x54,0xb3,0x60,0x7a,0x62,0xe1,0x3f,0xc6,0x9f,0xfd,0xbb,0xa6,0x9e,0x9a,\r
-0x8d,0xa9,0xff,0x00,0xb6,0xeb,0xfe,0x35,0xf9,0xd8,0x74,0xbb,0xe1,0xd6,0xd6,0x61,\r
-0xff,0x00,0x00,0x34,0xc3,0x61,0x78,0xbd,0x60,0x90,0x7d,0x54,0xd3,0xff,0x00,0x58,\r
-0xe7,0xd6,0x97,0xe3,0xff,0x00,0x00,0x7f,0xeb,0x0d,0x45,0xff,0x00,0x2e,0x7f,0x1f,\r
-0xf8,0x07,0xe8,0xca,0x6a,0xf6,0x2e,0x32,0x2f,0x2d,0xd8,0x7a,0x89,0x54,0xff,0x00,\r
-0x5a,0x78,0xd4,0x6d,0x49,0xe2,0xe6,0x03,0xf4,0x90,0x7f,0x8d,0x7e,0x71,0x7d,0x9e,\r
-0xed,0x7f,0xe5,0x9c,0xa3,0xf0,0x34,0xb9,0xbb,0x43,0xff,0x00,0x2d,0x47,0xe7,0x47,\r
-0xfa,0xc7,0x2f,0xf9,0xf5,0xf8,0xff,0x00,0xc0,0x0f,0xf5,0x8a,0x56,0xd6,0x8b,0xfb,\r
-0xff,0x00,0xe0,0x1f,0xa4,0x0b,0x75,0x13,0x8c,0xac,0xa8,0xc3,0xd4,0x30,0x34,0xf1,\r
-0x20,0x3d,0xc1,0xfc,0x6b,0xf3,0x78,0x5e,0x5e,0xa7,0x49,0x66,0x51,0xec,0xcd,0x53,\r
-0x2e,0xb5,0xaa,0xc6,0xc0,0xad,0xf5,0xda,0x9f,0x51,0x33,0x83,0xfc,0xea,0xd7,0x11,\r
-0xf7,0xa5,0xf8,0xff,0x00,0xc0,0x29,0x71,0x1a,0xeb,0x49,0xfd,0xff,0x00,0xf0,0x0f,\r
-0xd1,0xb0,0xc3,0xd6,0x97,0x75,0x7e,0x74,0x0f,0x13,0x6b,0x4a,0x30,0x35,0x4b,0xe5,\r
-0xfa,0x5c,0x3f,0xf8,0xd2,0x8f,0x16,0x6b,0x8a,0x72,0x35,0x7d,0x40,0x1f,0xfa,0xfa,\r
-0x93,0xfc,0x6a,0xff,0x00,0xd6,0x38,0xff,0x00,0xcf,0xbf,0xc7,0xfe,0x00,0xff,0x00,\r
-0xd6,0x48,0x75,0xa4,0xfe,0xf3,0xf4,0x58,0x36,0x69,0x6b,0xf3,0xb1,0x7c,0x6b,0xe2,\r
-0x04,0x04,0x0d,0x6b,0x51,0x1f,0xf6,0xf5,0x27,0xf8,0xd5,0x88,0xfe,0x23,0x78,0xa2,\r
-0x10,0x36,0x78,0x83,0x54,0x5c,0x70,0x31,0x79,0x27,0xf8,0xd3,0x5c,0x45,0x0e,0xb4,\r
-0xdf,0xde,0x52,0xe2,0x4a,0x5d,0x69,0xb3,0xf4,0x32,0x8a,0xfc,0xf9,0x5f,0x8a,0x5e,\r
-0x2e,0x41,0x81,0xe2,0x4d,0x54,0x0f,0xfa,0xfb,0x73,0xfd,0x6a,0xc2,0x7c,0x62,0xf1,\r
-0xaa,0x63,0x1e,0x26,0xd4,0xb8,0xe9,0xfb,0xf2,0x6a,0xd7,0x11,0x52,0xeb,0x4d,0xfe,\r
-0x05,0x7f,0xac,0x94,0x3a,0xc1,0xfe,0x07,0xdf,0xd4,0x57,0xc0,0xa3,0xe3,0x57,0x8d,\r
-0xd7,0xfe,0x66,0x6d,0x43,0xf1,0x97,0xff,0x00,0xad,0x4f,0x4f,0x8d,0xfe,0x38,0x5c,\r
-0x7f,0xc5,0x4b,0x7c,0x71,0xea,0xe0,0xff,0x00,0x4a,0xaf,0xf5,0x8a,0x87,0xf2,0x3f,\r
-0xc0,0xaf,0xf5,0x8f,0x0d,0xfc,0x8f,0xf0,0x3e,0xf7,0xa2,0xbe,0x0c,0x5f,0x8e,0xde,\r
-0x3a,0x5e,0x9e,0x24,0xbc,0xfc,0x76,0x9f,0xe9,0x56,0x53,0xf6,0x84,0xf1,0xea,0x63,\r
-0xfe,0x2a,0x19,0x8e,0x3d,0x61,0x8c,0xff,0x00,0xec,0xb4,0xd7,0x11,0x61,0xdf,0xd8,\r
-0x97,0xe1,0xfe,0x65,0x2e,0x22,0xc2,0xf5,0x8c,0xbf,0x0f,0xf3,0x3e,0xea,0xa2,0xbe,\r
-0x1c,0x8b,0xf6,0x8e,0xf1,0xf4,0x44,0x9f,0xed,0xc2,0xd9,0xfe,0xf5,0xbc,0x47,0xff,\r
-0x00,0x65,0xab,0xf6,0x3f,0xb5,0x17,0x8e,0xed,0x26,0x57,0x96,0xee,0xd2,0xed,0x07,\r
-0x54,0x9a,0xd5,0x40,0x3f,0xf7,0xce,0x0d,0x68,0xb8,0x83,0x0a,0xf7,0x4f,0xf0,0xff,\r
-0x00,0x32,0xd7,0x10,0xe0,0xde,0xe9,0xaf,0x97,0xfc,0x13,0xed,0x4a,0x2b,0xe6,0x2f,\r
-0x0c,0xfe,0xd8,0x52,0x06,0x58,0xfc,0x41,0xa1,0x86,0x5e,0xf3,0xe9,0xcf,0x83,0xed,\r
-0xf2,0x39,0xff,0x00,0xd9,0xab,0xda,0xbc,0x15,0xf1,0x6f,0xc2,0xfe,0x3f,0x5d,0xba,\r
-0x46,0xa9,0x1c,0x97,0x40,0x65,0xad,0x26,0xfd,0xdc,0xcb,0xff,0x00,0x01,0x3d,0x7e,\r
-0xa3,0x22,0xbd,0x6c,0x3e,0x63,0x86,0xc4,0xe9,0x4e,0x7a,0xf6,0xd9,0x9e,0xa6,0x1f,\r
-0x32,0xc2,0xe2,0x9d,0xa9,0xcd,0x5f,0xb6,0xcc,0xec,0xe8,0xa6,0xa9,0xcd,0x3a,0xbd,\r
-0x13,0xd3,0x0a,0x28,0xa2,0x80,0x0a,0x28,0xa2,0x80,0x0a,0x28,0xa2,0x80,0x0a,0x42,\r
-0x69,0x6a,0xbd,0xe5,0xd4,0x56,0x56,0xd3,0x5c,0x4f,0x22,0xc5,0x04,0x48,0x5d,0xdd,\r
-0xce,0x02,0xa8,0x19,0x24,0x9a,0x4f,0x45,0x71,0x37,0x65,0x76,0x78,0x6f,0xed,0x35,\r
-0xf1,0x65,0xfc,0x33,0xa6,0x2f,0x86,0xb4,0xb9,0xb6,0x6a,0x57,0xd1,0xee,0xb8,0x95,\r
-0x1b,0x0d,0x0c,0x3d,0x30,0x3d,0x0b,0x72,0x3e,0x80,0xfa,0x8a,0xe4,0xbf,0x64,0xbf,\r
-0x08,0xfd,0xa7,0x55,0xbe,0xd7,0x66,0x43,0xb6,0xdd,0x7c,0xa8,0x8f,0x6d,0xc7,0xad,\r
-0x78,0x9f,0x8c,0xbc,0x4d,0x71,0xe3,0x9f,0x17,0xea,0x3a,0xbc,0xdb,0x8b,0xde,0x4e,\r
-0x5a,0x34,0x3d,0x51,0x33,0x84,0x5f,0xc0,0x00,0x2b,0xed,0x7f,0x82,0x9e,0x13,0x1e,\r
-0x11,0xf8,0x7d,0xa6,0xdb,0x15,0xdb,0x3c,0xa9,0xe7,0xcb,0x91,0x83,0xb9,0xb9,0xaf,\r
-0x89,0xc3,0x4e,0x59,0x96,0x64,0xea,0xbf,0x86,0x1b,0x7e,0x9f,0xe6,0x7c,0x56,0x0a,\r
-0xa4,0xb3,0x3c,0xc1,0xd7,0x97,0xc3,0x0d,0xbf,0x4f,0xf3,0x3b,0xb0,0x31,0x4b,0x45,\r
-0x15,0xf6,0xe7,0xdb,0x09,0x4b,0x45,0x14,0x00,0x53,0x43,0x83,0xd2,0x9d,0x5e,0x0f,\r
-0xf1,0xcb,0xf6,0xdc,0xf8,0x3b,0xfb,0x3e,0x5c,0xc9,0x61,0xe2,0xaf,0x16,0xc2,0xfa,\r
-0xda,0x02,0x7f,0xb1,0xf4,0xc4,0x6b,0xbb,0xa0,0x47,0x66,0x54,0xc8,0x8c,0x9e,0xde,\r
-0x61,0x5c,0xd0,0x07,0xba,0x89,0x01,0x6d,0xbc,0xe7,0xdc,0x1a,0x7d,0x7e,0x71,0xeb,\r
-0xdf,0xf0,0x5a,0xdf,0x00,0x5b,0xb3,0x0d,0x1b,0xe1,0xf7,0x89,0x2f,0x80,0xe8,0xd7,\r
-0xd3,0xdb,0xdb,0xe7,0xf0,0x56,0x92,0xbe,0x9f,0xfd,0x94,0x7f,0x6a,0xb8,0xbf,0x69,\r
-0x8f,0x85,0xfa,0xaf,0x8f,0x2e,0x7c,0x36,0xfe,0x0b,0xd0,0xac,0xae,0x64,0xb7,0x59,\r
-0xef,0xef,0x92,0x44,0x91,0x63,0x40,0xd2,0xca,0x5b,0x6a,0x85,0x45,0xce,0x32,0x7d,\r
-0x1b,0xa6,0x28,0x11,0xef,0xb4,0x57,0x17,0x6d,0xf1,0xb3,0xe1,0xe5,0xeb,0x2a,0xdb,\r
-0xf8,0xf3,0xc3,0x33,0xb3,0x1c,0x05,0x8b,0x58,0xb7,0x62,0x4f,0xe0,0xf5,0xd9,0x83,\r
-0x9e,0x94,0x0c,0x5a,0x2b,0x33,0x5f,0xf1,0x1e,0x9f,0xe1,0x7d,0x3d,0xaf,0xb5,0x3b,\r
-0x91,0x6b,0x6a,0xac,0x14,0xb9,0x52,0xdc,0x93,0x80,0x30,0x01,0x35,0x81,0x17,0xc5,\r
-0xff,0x00,0x07,0xcd,0xd3,0x5d,0x80,0x7f,0xbe,0xae,0xbf,0xcc,0x57,0x34,0xf1,0x34,\r
-0x69,0x4b,0x96,0xa4,0xd2,0x7e,0x6d,0x22,0x1c,0xe1,0x17,0x66,0xd2,0x3b,0x1a,0x31,\r
-0x5c,0xcc,0x7f,0x12,0xfc,0x2b,0x26,0x31,0xe2,0x0b,0x01,0x9f,0xef,0x4e,0xa3,0xf9,\r
-0xd4,0xc3,0xe2,0x0f,0x86,0x0f,0x4f,0x10,0xe9,0x9f,0xf8,0x16,0x9f,0xe3,0x49,0x62,\r
-0xb0,0xef,0x6a,0x8b,0xef,0x42,0xf6,0x90,0xfe,0x64,0x74,0x34,0x56,0x12,0xf8,0xe7,\r
-0xc3,0x8e,0x78,0xd7,0xf4,0xc3,0xff,0x00,0x6f,0x91,0xff,0x00,0x8d,0x58,0x8b,0xc5,\r
-0x3a,0x34,0xe3,0xf7,0x7a,0xb5,0x8c,0x9f,0xee,0xdc,0x21,0xfe,0xb5,0xa2,0xad,0x4d,\r
-0xed,0x25,0xf7,0x8f,0x9a,0x2f,0x66,0x6a,0xd1,0x55,0x13,0x55,0xb2,0x97,0x95,0xbb,\r
-0x81,0xbf,0xdd,0x95,0x4f,0xf5,0xa9,0x96,0x78,0xa4,0xfb,0xb2,0x2b,0x7d,0x1a,0xaf,\r
-0x9e,0x2f,0x66,0x55,0xd1,0x2d,0x14,0xdd,0xdd,0xc1,0xa5,0x07,0x35,0x43,0x16,0x8a,\r
-0x28,0xa6,0x01,0x45,0x21,0xe9,0x49,0x9a,0x00,0x75,0x26,0x29,0x32,0x3d,0x69,0x73,\r
-0x48,0x05,0xa4,0xc5,0x18,0xf7,0xa5,0xa6,0x02,0x62,0x96,0x8a,0x28,0x00,0xa2,0x8a,\r
-0x28,0x01,0x29,0x68,0xa2,0x80,0x12,0x8c,0x52,0xd1,0x40,0x05,0x14,0x51,0x40,0x05,\r
-0x26,0x29,0x68,0xa0,0x04,0xc5,0x18,0x1e,0x94,0xb4,0x50,0x02,0x6d,0x1e,0x82,0x93,\r
-0xcb,0x53,0xfc,0x23,0xf2,0xa0,0x92,0x3f,0x87,0x3f,0x8d,0x28,0xcf,0x71,0x8a,0x00,\r
-0x69,0x82,0x33,0xd6,0x35,0x3f,0x80,0xa6,0x9b,0x58,0x5b,0xac,0x48,0x7f,0xe0,0x22,\r
-0xa5,0xa2,0x95,0x97,0x61,0x59,0x10,0x1b,0x1b,0x73,0xd6,0x08,0xff,0x00,0xef,0x91,\r
-0x4d,0x3a,0x6d,0xa3,0x75,0xb6,0x84,0xfd,0x50,0x55,0x9a,0x29,0x72,0xc7,0xb0,0x59,\r
-0x14,0x9b,0x46,0xb0,0x6e,0xb6,0x56,0xe7,0xfe,0xd9,0x8f,0xf0,0xa8,0xdb,0xc3,0xba,\r
-0x5b,0x75,0xd3,0xed,0x8f,0xfd,0xb2,0x5f,0xf0,0xad,0x1a,0x29,0x7b,0x38,0x76,0x17,\r
-0x2a,0xec,0x64,0xb7,0x85,0x74,0x76,0xeb,0xa6,0x5a,0x9f,0xfb,0x64,0xbf,0xe1,0x51,\r
-0xb7,0x83,0x74,0x36,0xeb,0xa4,0xda,0x1f,0xac,0x23,0xfc,0x2b,0x6a,0x8a,0x9f,0x65,\r
-0x4f,0xf9,0x57,0xdc,0x2e,0x48,0x76,0x30,0x1f,0xc0,0x9e,0x1e,0x93,0xef,0x68,0xd6,\r
-0x67,0xfe,0xd8,0x8a,0x89,0xbe,0x1c,0xf8,0x65,0xba,0xe8,0x96,0x7f,0xf7,0xec,0x57,\r
-0x49,0x45,0x4b,0xc3,0xd2,0x7b,0xc1,0x7d,0xc4,0xfb,0x28,0x3f,0xb2,0x8e,0x55,0xbe,\r
-0x17,0xf8,0x55,0xfa,0xe8,0x96,0x9f,0xf7,0xc5,0x42,0xdf,0x09,0x3c,0x22,0xdd,0x74,\r
-0x3b,0x5f,0xfb,0xe6,0xba,0xfa,0x5a,0x8f,0xaa,0xd0,0xfe,0x45,0xf7,0x21,0x7b,0x1a,\r
-0x5f,0xca,0xbe,0xe3,0x89,0x7f,0x83,0x7e,0x0e,0x7e,0xba,0x1d,0xb7,0xe5,0x50,0x3f,\r
-0xc0,0xff,0x00,0x05,0x3f,0xfc,0xc0,0xe0,0x1f,0x4c,0xd7,0x7b,0x45,0x4b,0xc1,0xe1,\r
-0xdf,0xfc,0xbb,0x5f,0x72,0x27,0xea,0xf4,0x7f,0x91,0x7d,0xc7,0x9e,0x3f,0xc0,0x5f,\r
-0x04,0xbf,0xfc,0xc1,0xa3,0x1f,0x46,0x35,0x0b,0xfe,0xcf,0x7e,0x09,0x7f,0xf9,0x85,\r
-0x63,0xe8,0xe6,0xbd,0x23,0x34,0x64,0x7a,0xd4,0x7d,0x47,0x0b,0xff,0x00,0x3e,0xd7,\r
-0xdc,0x88,0xfa,0xa5,0x0f,0xe4,0x5f,0x71,0xe6,0x0f,0xfb,0x39,0x78,0x25,0xff,0x00,\r
-0xe6,0x1c,0xc3,0xe8,0xf5,0x0b,0xfe,0xcd,0x5e,0x09,0x7f,0xf9,0x72,0x90,0x7d,0x24,\r
-0xaf,0x55,0xa2,0xa7,0xfb,0x3f,0x08,0xff,0x00,0xe5,0xda,0xfb,0x89,0xfa,0x96,0x19,\r
-0xef,0x4d,0x7d,0xc7,0x92,0x3f,0xec,0xc5,0xe0,0xb6,0xe9,0x05,0xc2,0xff,0x00,0xdb,\r
-0x4a,0x81,0xff,0x00,0x65,0xcf,0x07,0xb7,0x41,0x72,0xbf,0xf6,0xd2,0xbd,0x8e,0x8a,\r
-0x9f,0xec,0xcc,0x1b,0xff,0x00,0x97,0x4b,0xee,0x27,0xea,0x18,0x57,0xff,0x00,0x2e,\r
-0xd7,0xdc,0x78,0xb3,0xfe,0xca,0xbe,0x12,0x6e,0x92,0x5d,0x2f,0xfc,0x08,0x54,0x2f,\r
-0xfb,0x27,0xf8,0x5d,0xba,0x5c,0xdd,0x0f,0xc4,0x57,0xb7,0xd1,0x51,0xfd,0x95,0x82,\r
-0xff,0x00,0x9f,0x48,0x97,0x97,0x61,0x1f,0xfc,0xbb,0x47,0x84,0xbf,0xec,0x95,0xe1,\r
-0xb6,0xe9,0x7d,0x76,0x3f,0x2a,0xa5,0x77,0xfb,0x24,0x69,0xd0,0x95,0x9f,0x4e,0xd6,\r
-0x6e,0xed,0xae,0xe3,0x21,0xe2,0x90,0x60,0x15,0x61,0xd0,0x82,0x39,0x06,0xbe,0x83,\r
-0xa4,0x3d,0x29,0x7f,0x64,0xe0,0xf7,0x54,0xed,0xf7,0x99,0xbc,0xaf,0x07,0x2f,0xf9,\r
-0x76,0x8f,0x01,0xf0,0x97,0xc6,0x3d,0x4f,0xe1,0xff,0x00,0x89,0xd3,0xc2,0x5e,0x3e,\r
-0xb9,0x59,0xa1,0x77,0x10,0xda,0x6b,0xa4,0x6d,0xcb,0x67,0x01,0x66,0xed,0xcf,0x1f,\r
-0x3f,0xe7,0xeb,0x5e,0xfa,0x8c,0x18,0x70,0x72,0x3d,0x6b,0xe3,0x1f,0xda,0x88,0xa5,\r
-0xee,0xbb,0x24,0x4c,0x01,0x05,0x88,0xc7,0xad,0x77,0x1f,0xb1,0xff,0x00,0xc6,0x49,\r
-0xbc,0x47,0x65,0x79,0xe0,0x6d,0x66,0xe9,0xa6,0xd5,0xf4,0xa8,0x84,0xd6,0x53,0x4a,\r
-0xd9,0x79,0xed,0x72,0x06,0x09,0xee,0x63,0x25,0x47,0xd1,0x97,0xd2,0xb9,0x70,0x18,\r
-0xde,0x6a,0xd3,0xc3,0x4d,0xdf,0x95,0xe8,0xcf,0x23,0x07,0x98,0xfb,0x2c,0x6b,0xcb,\r
-0xea,0xbb,0xaf,0xb2,0xdf,0xe4,0xff,0x00,0x43,0xe9,0x8a,0x29,0x9b,0xbd,0xff,0x00,\r
-0x5a,0x2b,0xe8,0x8f,0xaa,0xe6,0x43,0xe8,0xa2,0x8a,0x45,0x05,0x14,0x51,0x40,0x05,\r
-0x79,0x0f,0xed,0x3d,0xe2,0xdf,0xf8,0x46,0xfe,0x1a,0xdc,0x5a,0x45,0x26,0xcb,0xad,\r
-0x55,0xc5,0xa2,0x60,0xf3,0xb3,0xac,0x9f,0xf8,0xe8,0x23,0xfe,0x05,0x5e,0xb8,0x49,\r
-0xed,0x5f,0x1b,0x7e,0xd4,0xbe,0x30,0x3a,0xff,0x00,0xc4,0x4f,0xec,0xb8,0xdf,0x75,\r
-0xae,0x93,0x10,0x8b,0x00,0x82,0x0c,0xad,0x86,0x73,0xf8,0x0d,0xa3,0xea,0x0d,0x78,\r
-0xf9,0xb6,0x23,0xea,0xf8,0x59,0x35,0xbb,0xd1,0x7c,0xcf,0x13,0x38,0xc4,0xfd,0x5b,\r
-0x07,0x26,0xb7,0x96,0x8b,0xe6,0x72,0x5f,0x06,0x7c,0x26,0x7c,0x5d,0xe3,0xed,0x32,\r
-0xd3,0x6e,0xe8,0x52,0x41,0x2c,0xb9,0xfe,0xe8,0xe6,0xbe,0xf6,0x8d,0x04,0x68,0xa8,\r
-0xa3,0x0a,0xa3,0x00,0x0f,0x4a,0xf9,0xd3,0xf6,0x49,0xf0,0x8f,0xd9,0xf4,0xfb,0xfd,\r
-0x7a,0x68,0xfe,0x79,0x4f,0x93,0x13,0x1f,0x4e,0xf5,0xf4,0x60,0xae,0x3c,0x8b,0x0f,\r
-0xec,0xb0,0xde,0xd1,0xef,0x2d,0x7e,0x5d,0x0c,0x32,0x2c,0x37,0xb0,0xc2,0x29,0x3d,\r
-0xe5,0xa8,0xb4,0x51,0x45,0x7d,0x21,0xf4,0x41,0x48,0x4e,0x29,0x6b,0x95,0xf8,0xad,\r
-0xe3,0x88,0x3e,0x19,0xfc,0x32,0xf1,0x5f,0x8b,0x6e,0x81,0x68,0x34,0x4d,0x2e,0xe7,\r
-0x50,0x65,0x03,0x39,0xf2,0xa3,0x67,0xc7,0xe3,0x8a,0x00,0xfc,0xfb,0xff,0x00,0x82,\r
-0x96,0x7f,0xc1,0x41,0x75,0x2f,0x01,0x6a,0xd7,0xbf,0x09,0xbe,0x1b,0x6a,0x06,0xcf,\r
-0x59,0x8e,0x30,0x35,0xcd,0x72,0x03,0x87,0xb6,0xdc,0x33,0xf6,0x68,0x5b,0xb3,0xed,\r
-0x20,0xb3,0x8f,0xbb,0xb8,0x01,0xce,0xec,0x7c,0x27,0xf0,0x53,0xf6,0x29,0xf8,0xcd,\r
-0xfb,0x4a,0x59,0xcb,0xaf,0x78,0x6b,0xc3,0xb2,0x4d,0xa4,0xc9,0x21,0x27,0x5a,0xd5,\r
-0xee,0x45,0xbc,0x33,0xbe,0x4e,0xe2,0xae,0xe7,0x32,0x1c,0x83,0x92,0xa0,0xe0,0xf5,\r
-0x35,0xe5,0x9a,0x76,0xab,0x1f,0x8f,0xbe,0x29,0xda,0x6a,0x3e,0x2e,0xbf,0x2b,0x0e,\r
-0xb3,0xac,0xa4,0xfa,0xb5,0xfb,0xb6,0xd2,0xa9,0x2c,0xe0,0xcf,0x21,0x3d,0xb0,0x19,\r
-0x8f,0xb5,0x7f,0x40,0x9f,0x1c,0x3e,0x24,0xe8,0x3f,0xb3,0x97,0xec,0xbf,0xae,0xf8,\r
-0x9b,0x43,0x5b,0x5b,0x7d,0x2b,0x46,0xd1,0x44,0x7a,0x34,0x36,0xa5,0x44,0x4c,0xcc,\r
-0xa2,0x3b,0x61,0x1e,0x38,0x20,0xb3,0x27,0x4e,0xdc,0xd3,0x25,0x6a,0x7f,0x3e,0x1e,\r
-0x2f,0xf0,0x4e,0xa1,0xe0,0xef,0x1d,0x6a,0xbe,0x13,0x9d,0xa1,0xbe,0xd5,0x74,0xeb,\r
-0xe7,0xd3,0xa4,0xfb,0x03,0x99,0x63,0x92,0x64,0x7d,0x85,0x50,0xe0,0x6e,0xf9,0x81,\r
-0x03,0x8e,0x71,0x5f,0xbd,0xbe,0x1c,0xf8,0x6b,0xa7,0x7e,0xce,0x7f,0xb0,0xcd,0xef,\r
-0x86,0x2e,0x84,0x51,0xc7,0xa3,0x78,0x42,0xed,0xf5,0x07,0xc6,0x16,0x4b,0x86,0xb7,\r
-0x91,0xe7,0x27,0xeb,0x23,0x30,0xfc,0xab,0xf2,0x6b,0xfe,0x09,0xd5,0xf0,0x92,0x7f,\r
-0x8e,0x9f,0xb5,0xbf,0x87,0xae,0x75,0x24,0x6b,0xed,0x3f,0x45,0x95,0xfc,0x45,0xa9,\r
-0xcb,0x29,0xfb,0xcd,0x11,0x06,0x32,0x4f,0x72,0xd3,0xb4,0x59,0xf5,0x19,0xaf,0xb2,\r
-0xff,0x00,0xe0,0xac,0x1f,0xb6,0x06,0x8d,0xa5,0x78,0x12,0xe7,0xe0,0xdf,0x85,0xb5,\r
-0x38,0x6f,0xf5,0xfd,0x52,0x44,0xfe,0xde,0x6b,0x67,0x0e,0xb6,0x56,0xc8,0x43,0x08,\r
-0x19,0x81,0xe2,0x47,0x60,0x99,0x5e,0x48,0x50,0x72,0x06,0xe1,0x40,0x2d,0x35,0x3f,\r
-0x2c,0xfe,0x17,0x78,0x72,0xe3,0xc6,0x1f,0x12,0xfc,0x27,0xa0,0xd9,0x0c,0xdd,0xea,\r
-0x7a,0xb5,0xa5,0x9c,0x5c,0xe3,0xe6,0x92,0x64,0x51,0xfc,0xeb,0xfa,0x6e,0x8d,0x3c,\r
-0xb4,0x55,0xeb,0x80,0x06,0x6b,0xf1,0x1f,0xfe,0x09,0x3f,0xf0,0x0e,0xe3,0xe2,0x67,\r
-0xed,0x0b,0x17,0x8c,0xaf,0x2d,0x0b,0xf8,0x7b,0xc1,0xa9,0xf6,0xb6,0x92,0x45,0x3b,\r
-0x1e,0xf1,0x81,0x10,0x20,0x3e,0xaa,0x73,0x27,0xb6,0xc1,0xeb,0x5f,0xb7,0x2c,0xc1,\r
-0x14,0x92,0x70,0x00,0xcd,0x0c,0x16,0xc7,0x81,0xfe,0xd2,0x7e,0x22,0x12,0xdd,0x69,\r
-0x9a,0x24,0x6d,0x91,0x18,0x37,0x52,0x8f,0x73,0x95,0x4f,0xd3,0x77,0xe6,0x2b,0xc4,\r
-0xab,0x7b,0xc7,0x5e,0x20,0x3e,0x28,0xf1,0x6e,0xa7,0xa9,0x64,0x98,0xe5,0x98,0x88,\r
-0xb3,0xd9,0x07,0x0b,0xfa,0x01,0x58,0x35,0xf8,0x96,0x67,0x89,0xfa,0xde,0x2e,0x75,\r
-0x56,0xd7,0xb2,0xf4,0x5a,0x1f,0x29,0x88,0xa9,0xed,0x6a,0xb9,0x06,0x68,0xa2,0x8c,\r
-0xd7,0x98,0x73,0x85,0x14,0x51,0x48,0x00,0x71,0x4e,0x49,0x5e,0x33,0x95,0x76,0x52,\r
-0x3b,0x83,0x8a,0x6d,0x14,0xd3,0x6b,0x60,0xb9,0xb5,0xa6,0xf8,0xd7,0x5f,0xd2,0x0a,\r
-0xfd,0x93,0x58,0xbd,0x84,0x2f,0x45,0x13,0x31,0x5f,0xc8,0xf1,0x5e,0x89,0xe1,0x6f,\r
-0xda,0x2b,0x56,0xb0,0x91,0x22,0xd6,0xed,0xd3,0x51,0xb7,0xef,0x2c,0x2a,0x12,0x51,\r
-0xf8,0x7d,0xd3,0xfa,0x7d,0x6b,0xc8,0x68,0xaf,0x43,0x0f,0x98,0xe2,0xb0,0xb2,0xbd,\r
-0x2a,0x8f,0xf4,0xfb,0x8d,0xe1,0x5e,0xa5,0x37,0x78,0xc8,0xfb,0x57,0xc3,0x5e,0x28,\r
-0xd3,0xbc,0x59,0xa6,0xa5,0xf6,0x9b,0x72,0xb7,0x10,0x31,0xc1,0xec,0xc8,0xdd,0xd5,\r
-0x87,0x63,0x5a,0xd5,0xf2,0x47,0xc2,0x6f,0x18,0x4f,0xe1,0x2f,0x17,0xda,0x10,0xe7,\r
-0xec,0x57,0x6e,0xb0,0x5c,0xc7,0x9e,0x08,0x27,0x01,0xbe,0xaa,0x4e,0x7f,0x3f,0x5a,\r
-0xfa,0xd9,0x4e,0x46,0x6b,0xf5,0x3c,0xa7,0x31,0x59,0x8d,0x0e,0x76,0xad,0x25,0xa3,\r
-0x3e,0x8b,0x0d,0x5f,0xdb,0xc2,0xfd,0x50,0x37,0x00,0xd7,0xcd,0x1f,0x15,0x3e,0x26,\r
-0xeb,0x51,0x78,0xeb,0x51,0xb7,0xd2,0xf5,0x5b,0x9b,0x5b,0x4b,0x56,0x10,0x04,0x89,\r
-0xf0,0xa5,0x94,0x7c,0xc7,0x1f,0xef,0x64,0x7e,0x15,0xf4,0x4e,0xbb,0xaa,0xc7,0xa1,\r
-0xe8,0xd7,0xda,0x84,0xdc,0xc5,0x6b,0x0b,0xcc,0xc0,0x75,0x21,0x41,0x38,0xfd,0x2b,\r
-0xe2,0x8b,0xbb,0xa9,0x2f,0x6e,0xa6,0xb8,0x95,0xb7,0xcb,0x33,0xb4,0x8e,0xc7,0xbb,\r
-0x13,0x92,0x6b,0xc6,0xe2,0x5c,0x64,0xe8,0xd3,0xa7,0x4a,0x9c,0xac,0xdb,0xbe,0x9d,\r
-0x8e,0x6c,0x7d,0x57,0x08,0xa8,0xc5,0xd8,0xea,0x13,0xe2,0xc7,0x8b,0xa3,0xe9,0xae,\r
-0xdd,0x7e,0x3b,0x4f,0xf3,0x15,0x32,0x7c,0x64,0xf1,0x94,0x7d,0x35,0xb9,0x0f,0xfb,\r
-0xd1,0x46,0x7f,0xf6,0x5a,0xe3,0x28,0xaf,0x82,0x58,0xec,0x52,0xda,0xac,0xbe,0xf6,\r
-0x78,0x9e,0xda,0xa7,0xf3,0x3f,0xbc,0xef,0x13,0xe3,0x8f,0x8c,0xd3,0xfe,0x62,0xc1,\r
-0xbf,0xde,0xb7,0x8b,0xff,0x00,0x89,0xab,0x09,0xf1,0xef,0xc6,0x0b,0xd6,0xf6,0x06,\r
-0xfa,0xdb,0xaf,0xf8,0x57,0x9d,0xd1,0x5a,0x2c,0xcb,0x1a,0xb6,0xad,0x2f,0xbd,0x97,\r
-0xf5,0x8a,0xbf,0xcc,0xcf,0x4a,0x5f,0xda,0x0b,0xc5,0xca,0x79,0x96,0xd1,0xff,0x00,\r
-0xde,0xb7,0xff,0x00,0x03,0x53,0xa7,0xed,0x17,0xe2,0xa4,0xeb,0x16,0x9c,0xff,0x00,\r
-0x58,0x1b,0xff,0x00,0x8b,0xaf,0x2e,0xa2,0xb4,0x59,0xb6,0x39,0x6d,0x59,0xfd,0xe3,\r
-0x58,0x9a,0xcb,0xed,0x33,0xd6,0x23,0xfd,0xa4,0xbc,0x48,0xbf,0x7a,0xcb,0x4e,0x6f,\r
-0xfb,0x66,0xe3,0xff,0x00,0x67,0xab,0x09,0xfb,0x4b,0x6b,0x60,0x7c,0xda,0x5d,0x8b,\r
-0x1f,0x6d,0xe3,0xfa,0xd7,0x8f,0xd1,0x56,0xb3,0x9c,0x7a,0xff,0x00,0x97,0xac,0x7f,\r
-0x5a,0xaf,0xfc,0xc7,0xb3,0x27,0xed,0x33,0xaa,0x0f,0xbd,0xa2,0xda,0xb7,0xd2,0x56,\r
-0x1f,0xd2,0xa7,0x5f,0xda,0x6e,0xef,0xf8,0xb4,0x08,0x7f,0x0b,0xa3,0xff,0x00,0xc4,\r
-0xd7,0x89,0x51,0xfa,0xd6,0xab,0x3c,0xcc,0x3a,0x55,0xfc,0x17,0xf9,0x14,0xb1,0x95,\r
-0xff,0x00,0x98,0xfb,0x1b,0xe1,0xef,0x8b,0x26,0xf1,0xb7,0x86,0x61,0xd5,0xa5,0xb3,\r
-0x16,0x42,0x67,0x75,0x48,0xc3,0xee,0xc8,0x52,0x57,0x39,0xc0,0xee,0x0d,0x74,0xb5,\r
-0x89,0xe0,0xad,0x23,0xfb,0x03,0xc2,0x9a,0x56,0x9e,0x7e,0xf4,0x16,0xe8,0xaf,0xee,\r
-0xd8,0xcb,0x1f,0xcf,0x35,0xb4,0x6b,0xf5,0xac,0x3f,0x3f,0xb1,0x87,0xb5,0x77,0x95,\r
-0x95,0xfd,0x4f,0xa5,0x85,0xf9,0x17,0x36,0xe2,0xd2,0x13,0x8a,0xaf,0x7b,0x7f,0x6f,\r
-0xa7,0x5a,0x49,0x73,0x75,0x3c,0x76,0xf6,0xf1,0x8d,0xcf,0x2c,0xac,0x15,0x54,0x7a,\r
-0x92,0x6b,0xc7,0x3c,0x65,0xfb,0x45,0xdb,0xda,0xb3,0xdb,0x78,0x7a,0xdf,0xed,0x72,\r
-0x0e,0x3e,0xd9,0x70,0x08,0x8f,0xea,0xab,0xd4,0xfe,0x38,0xfc,0x6b,0x0c,0x5e,0x3b,\r
-0x0f,0x82,0x8f,0x35,0x69,0x5b,0xcb,0xaf,0xdc,0x4d,0x5a,0xd0,0xa4,0xaf,0x36,0x7b,\r
-0x51,0x70,0xa3,0x24,0xe0,0x7a,0x9a,0xe5,0xf5,0x8f,0x8a,0x3e,0x16,0xd0,0xb7,0x0b,\r
-0x9d,0x6a,0xd8,0xba,0x9c,0x18,0xe0,0x6f,0x39,0x81,0xf7,0x09,0x92,0x2b,0xe5,0xbf,\r
-0x10,0xf8,0xe3,0x5d,0xf1,0x4c,0x8c,0xda,0x96,0xa5,0x34,0xe8,0x4e,0x7c,0xa0,0xdb,\r
-0x63,0x1f,0x45,0x18,0x15,0x85,0xd2,0xbe,0x33,0x11,0xc5,0x2f,0x6c,0x3d,0x3f,0x9b,\r
-0xff,0x00,0x25,0xfe,0x67,0x95,0x3c,0xc7,0xf9,0x23,0xf7,0x9f,0x4b,0xdf,0xfe,0xd1,\r
-0x7e,0x19,0xb6,0x72,0xb0,0x45,0x7d,0x79,0xe8,0xd1,0xc4,0x15,0x7f,0xf1,0xe6,0x07,\r
-0xf4,0xac,0xb9,0xbf,0x69,0x9d,0x31,0x4f,0xee,0x74,0x6b,0xb7,0x1f,0xed,0xc8,0xab,\r
-0xfc,0xb3,0x5f,0x3e,0x51,0x5e,0x44,0xb8,0x8f,0x1f,0x2d,0x9a,0x5f,0x2f,0xf3,0x39,\r
-0x5e,0x3a,0xb3,0xea,0x7b,0xfa,0xfe,0xd3,0x76,0x64,0xfc,0xda,0x14,0xe0,0x7b,0x4e,\r
-0xa7,0xfa,0x55,0xb8,0xbf,0x69,0x6d,0x10,0xe3,0xcc,0xd2,0xf5,0x04,0xf5,0xda,0x23,\r
-0x6f,0xfd,0x98,0x57,0xce,0xb4,0x54,0xae,0x21,0xcc,0x17,0xda,0x4f,0xe4,0x84,0xb1,\r
-0xd5,0xfb,0x9f,0x53,0x58,0x7c,0x7b,0xf0,0x85,0xe8,0x4f,0x32,0xf2,0x6b,0x36,0x6f,\r
-0xe1,0x9e,0xdd,0xb8,0xfa,0x95,0x04,0x7e,0xb5,0xd8,0xe9,0x3e,0x25,0xd2,0xb5,0xe0,\r
-0x4e,0x9d,0xa9,0x5a,0xde,0xe0,0x64,0x88,0x25,0x56,0x23,0xea,0x07,0x4a,0xf8,0xa2,\r
-0x9d,0x14,0xaf,0x04,0x8a,0xf1,0xbb,0x46,0xeb,0xca,0xb2,0x1c,0x11,0xf4,0x22,0xbd,\r
-0x0a,0x3c,0x51,0x88,0x8b,0xfd,0xf4,0x13,0x5e,0x5a,0x3f,0xd4,0xde,0x19,0x8c,0xd7,\r
-0xc4,0xae,0x7d,0xcf,0x9c,0x9e,0xb4,0xb5,0xf2,0xcf,0x84,0xfe,0x39,0x78,0x8b,0xc3,\r
-0xae,0x91,0xdd,0x4d,0xfd,0xaf,0x68,0x3a,0xc7,0x72,0x7e,0x70,0x3d,0x9f,0xaf,0xe7,\r
-0x9a,0xf7,0xbf,0x04,0x7c,0x49,0xd1,0xfc,0x75,0x6e,0x4d,0x94,0xde,0x55,0xda,0x0c,\r
-0xc9,0x69,0x36,0x04,0x8b,0xee,0x3d,0x47,0xb8,0xaf,0xaf,0xc0,0xe7,0x18,0x5c,0x73,\r
-0xe5,0x83,0xb4,0xbb,0x3f,0xd0,0xf4,0xe8,0xe2,0xa9,0xd6,0xd1,0x3b,0x33,0xac,0xa2,\r
-0x90,0x1c,0x8a,0x5a,0xf7,0x0e,0xc0,0xa2,0x8a,0x28,0x00,0xa2,0x90,0x9c,0x57,0x3b,\r
-0xe2,0x9f,0x88,0x1a,0x1f,0x83,0x93,0x3a,0x9d,0xfc,0x71,0x4a,0x46,0x44,0x09,0xf3,\r
-0xc8,0xdf,0xf0,0x11,0xce,0x3d,0xcf,0x15,0x95,0x4a,0xb0,0xa5,0x1e,0x6a,0x92,0xb2,\r
-0xf3,0x26,0x52,0x51,0x57,0x93,0x3a,0x3a,0x4c,0xd7,0x84,0x6b,0xdf,0xb4,0xb3,0x1d,\r
-0xc9,0xa3,0xe9,0x20,0x0e,0xd2,0xde,0x3f,0x3f,0xf7,0xc2,0xff,0x00,0xf1,0x55,0xc3,\r
-0xea,0x7f,0x1b,0x7c,0x5f,0xa9,0x13,0xff,0x00,0x13,0x31,0x68,0xa7,0xf8,0x6d,0xa2,\r
-0x55,0xc7,0xe3,0x82,0x7f,0x5a,0xf9,0xca,0xfc,0x45,0x81,0xa5,0xa4,0x5b,0x97,0xa2,\r
-0xff,0x00,0x33,0x82,0x78,0xea,0x31,0xd1,0x6a,0x7d,0x5d,0x9f,0xca,0x8d,0xc3,0xd6,\r
-0xbe,0x30,0xba,0xf1,0xaf,0x88,0x2f,0x73,0xe7,0xeb,0x7a,0x84,0x80,0xf5,0x06,0xe5,\r
-0xf1,0xf9,0x66,0xb3,0x1e,0xfa,0xe6,0x43,0x96,0xb8,0x95,0x89,0xee,0xce,0x4d,0x79,\r
-0x92,0xe2,0xaa,0x6b,0xe1,0xa4,0xfe,0xff,0x00,0xf8,0x07,0x3b,0xcc,0xa3,0xd2,0x27,\r
-0xdc,0x04,0x2b,0x1f,0x9b,0x69,0xfa,0xd3,0x86,0xd0,0x30,0x00,0xfc,0x2b,0xe1,0xbf,\r
-0xb5,0xcf,0xff,0x00,0x3d,0xa4,0xff,0x00,0xbe,0x8d,0x58,0xb6,0xd7,0x35,0x2b,0x33,\r
-0x9b,0x7d,0x42,0xea,0x03,0xeb,0x1c,0xcc,0xbf,0xc8,0xd4,0xae,0x2a,0x87,0x5a,0x3f,\r
-0x8f,0xfc,0x01,0x7f,0x69,0x2e,0xb1,0xfc,0x4f,0xb6,0xb6,0xa9,0x3d,0x06,0x69,0xd9,\r
-0xe3,0x8a,0xf8,0xe6,0xd3,0xe2,0x37,0x8a,0x2c,0xbf,0xd5,0x6b,0xd7,0xff,0x00,0x47,\r
-0x9d,0x9c,0x7f,0xe3,0xd9,0xae,0x82,0xc3,0xe3,0xcf,0x8b,0xec,0x48,0xdf,0x75,0x05,\r
-0xea,0x8e,0xd3,0xc0,0xbf,0xcd,0x71,0x5d,0x74,0xf8,0x9f,0x0b,0x2f,0x8e,0x2d,0x7d,\r
-0xcc,0xda,0x39,0x85,0x37,0xba,0x68,0xfa,0xa2,0x90,0xf1,0x5e,0x27,0xe1,0x2f,0xda,\r
-0x22,0x6d,0x5f,0x53,0xb3,0xd3,0xef,0xb4,0x61,0xe6,0xdc,0xca,0x90,0xac,0x96,0xb2,\r
-0x7f,0x13,0x10,0x07,0xca,0xdf,0x5f,0x5a,0xf6,0xc1,0xc8,0x15,0xf4,0x78,0x4c,0x75,\r
-0x0c,0x74,0x5c,0xa8,0x4a,0xf6,0x3b,0xa9,0x56,0x85,0x65,0x78,0x30,0x56,0x0e,0xa0,\r
-0x8e,0x86,0x96,0x9a,0xab,0xb4,0x60,0x74,0xa7,0x57,0x79,0xb0,0x53,0x5c,0xe1,0x49,\r
-0xf4,0x14,0xea,0x8a,0xe9,0xfc,0xbb,0x69,0x5b,0xd1,0x09,0xfd,0x29,0x3d,0x80,0xf8,\r
-0x93,0xf6,0x80,0xb9,0xfb,0x47,0x8a,0xe4,0x5c,0xe7,0x04,0xd7,0x87,0xe8,0xfe,0x3c,\r
-0x97,0xe1,0x5f,0xc5,0x4f,0x09,0x78,0xaa,0x10,0x0a,0x5a,0x5f,0x24,0x57,0x0a,0x4e,\r
-0x03,0x41,0x27,0xee,0xe4,0x07,0xfe,0x02,0xc4,0x8f,0x70,0x3d,0x2b,0xd6,0xbe,0x33,\r
-0x5c,0x79,0xde,0x2d,0xb8,0x39,0xce,0x33,0x5f,0x2e,0x7c,0x77,0xba,0x30,0xe8,0x72,\r
-0xed,0x38,0x60,0xa4,0x8c,0x7a,0xd7,0xe7,0x18,0x29,0x37,0x8e,0x94,0x97,0x76,0x7e,\r
-0x39,0x8f,0xa9,0x25,0x9a,0x53,0x9c,0x77,0xe7,0x47,0xec,0x77,0xdb,0x61,0xff,0x00,\r
-0x9e,0xc9,0xf9,0xd1,0x5e,0x03,0xfd,0x91,0x7b,0xff,0x00,0x3f,0x72,0xff,0x00,0xdf,\r
-0x46,0x8a,0xfd,0x0f,0x9d,0x9f,0xaf,0x73,0x79,0x1f,0x44,0xd1,0x45,0x15,0xa9,0xa8,\r
-0x51,0x45,0x14,0x01,0x93,0xe2,0x9d,0x7a,0x1f,0x0b,0xf8,0x77,0x53,0xd5,0xae,0x48,\r
-0xf2,0x6c,0xed,0xde,0x76,0x1e,0xbb,0x41,0x38,0xfc,0x4f,0x15,0xf9,0xe8,0xf3,0x5d,\r
-0x78,0x97,0x5b,0x92,0x79,0x4b,0x4d,0x79,0x7d,0x39,0x76,0x3d,0x49,0x66,0x6c,0xff,\r
-0x00,0x5a,0xfa,0x97,0xf6,0xb9,0xf1,0x6b,0x69,0x9e,0x11,0xb1,0xd0,0xa0,0x90,0x2c,\r
-0xba,0x9c,0xdb,0xe5,0x51,0x8c,0xf9,0x51,0xf3,0xfa,0xb1,0x5f,0xc8,0xd7,0x8e,0x7e,\r
-0xce,0xde,0x11,0xff,0x00,0x84,0xa3,0xe2,0x15,0xa3,0xc8,0xbb,0xad,0xac,0xff,0x00,\r
-0x7e,0xfc,0x71,0xc7,0x41,0xf9,0xd7,0xc3,0xe7,0x33,0x78,0xac,0x54,0x30,0x90,0xfe,\r
-0x9b,0xff,0x00,0x80,0x7c,0x26,0x6f,0x27,0x8c,0xc7,0x53,0xc2,0x47,0x65,0xbf,0xab,\r
-0xff,0x00,0x80,0x7d,0x75,0xf0,0xeb,0xc3,0x51,0xf8,0x4f,0xc1,0xba,0x5e,0x9a,0x8b,\r
-0xb5,0xa2,0x84,0x17,0xf7,0x62,0x32,0x6b,0xa4,0x03,0x14,0x2f,0x02,0x96,0xbe,0xd2,\r
-0x9c,0x15,0x38,0x28,0x47,0x64,0x7d,0xc4,0x22,0xa1,0x15,0x15,0xb2,0x0a,0x28,0xa2,\r
-0xb4,0x2c,0x2b,0x88,0xf8,0xe1,0xe0,0x17,0xf8,0xa9,0xf0,0x77,0xc6,0xbe,0x0f,0x8e,\r
-0x5f,0x22,0x5d,0x73,0x48,0xba,0xb0,0x8e,0x53,0xfc,0x0f,0x24,0x4c,0xaa,0x7f,0x02,\r
-0x45,0x76,0xf4,0x84,0x66,0x80,0x3f,0x97,0xbf,0x12,0xf8,0x6f,0x53,0xf0,0x77,0x88,\r
-0x75,0x2d,0x0f,0x59,0xb3,0x97,0x4f,0xd5,0x74,0xeb,0x87,0xb5,0xba,0xb5,0x9d,0x70,\r
-0xf1,0x48,0xa4,0x86,0x52,0x3e,0xa2,0xb4,0xa7,0xf8,0x99,0xe2,0xdb,0x9f,0x06,0x0f,\r
-0x08,0x4d,0xe2,0x5d,0x56,0x6f,0x0b,0x09,0x56,0x71,0xa3,0x49,0x79,0x23,0x5a,0xac,\r
-0x8b,0x9d,0xac,0x23,0x27,0x68,0x23,0x27,0xa0,0xef,0x5f,0xbd,0xff,0x00,0xb4,0x67,\r
-0xec,0x2b,0xf0,0x9f,0xf6,0x99,0xb8,0x6d,0x4b,0xc4,0xba,0x3c,0xba,0x77,0x88,0xf6,\r
-0x04,0x1a,0xee,0x8f,0x20,0x82,0xe9,0x80,0x18,0x01,0xf8,0x29,0x26,0x07,0x03,0x7a,\r
-0x92,0x07,0x00,0x81,0x5f,0x2a,0x6a,0xbf,0xf0,0x44,0xcf,0x0c,0x49,0x76,0x0e,0x99,\r
-0xf1,0x3b,0x56,0xb6,0xb5,0xef,0x1d,0xde,0x9b,0x14,0xcf,0x8f,0xf7,0x95,0x90,0x7e,\r
-0x95,0x57,0x22,0xcf,0xa1,0xf9,0x77,0xe0,0xff,0x00,0x89,0x7e,0x2c,0xf8,0x7d,0x0e,\r
-0xa7,0x17,0x86,0x3c,0x45,0xa9,0x78,0x7d,0x75,0x38,0x84,0x17,0x9f,0xd9,0xb7,0x2f,\r
-0x03,0x4f,0x18,0x24,0x84,0x62,0xa4,0x12,0x32,0x4f,0x15,0xdb,0xfe,0xcf,0x3f,0xb3,\r
-0x4f,0x8e,0xff,0x00,0x6a,0x2f,0x1c,0x47,0xa3,0x78,0x5a,0xc6,0x49,0x63,0xf3,0x03,\r
-0x6a,0x1a,0xcd,0xc8,0x3f,0x66,0xb3,0x42,0x79,0x79,0x1f,0xb9,0xeb,0x85,0x19,0x66,\r
-0x3d,0x2b,0xf5,0x27,0xe1,0xef,0xfc,0x11,0xd7,0xe0,0xf7,0x86,0x2f,0xe1,0xbb,0xf1,\r
-0x1e,0xad,0xe2,0x0f,0x18,0x98,0xf9,0x36,0x97,0x17,0x0b,0x6b,0x6e,0xc7,0xdc,0x44,\r
-0xa1,0xff,0x00,0x0d,0xf5,0xf6,0xa7,0x82,0x3c,0x03,0xe1,0xcf,0x86,0xbe,0x1e,0xb6,\r
-0xd0,0x7c,0x2b,0xa2,0x58,0xf8,0x7f,0x47,0xb7,0x1f,0xbb,0xb3,0xd3,0xe0,0x58,0xa3,\r
-0x07,0xb9,0x20,0x0e,0x58,0xf7,0x63,0xc9,0xee,0x69,0x5c,0x12,0xee,0x71,0xdf,0xb3,\r
-0x97,0xec,0xfd,0xe1,0xbf,0xd9,0xab,0xe1,0x7e,0x9d,0xe0,0xcf,0x0d,0xc6,0x5a,0x38,\r
-0x7f,0x7b,0x77,0x7d,0x22,0x81,0x35,0xed,0xc3,0x01,0xbe,0x67,0x3e,0xa7,0x00,0x01,\r
-0xd8,0x00,0x07,0x02,0xb6,0x7e,0x30,0xf8,0x8c,0x78,0x6f,0xc0,0x7a,0x8c,0x8a,0xc1,\r
-0x6e,0x2e,0x57,0xec,0xb0,0xf3,0x83,0xb9,0xf8,0x24,0x7b,0x85,0xdc,0x7f,0x0a,0xed,\r
-0xeb,0xe7,0x8f,0xda,0x43,0xc4,0x5f,0x6b,0xd6,0x6c,0x34,0x68,0xdf,0x29,0x6b,0x19,\r
-0x9e,0x50,0x3a,0x6f,0x6e,0x07,0xe4,0x07,0xfe,0x3d,0x5e,0x2e,0x6f,0x89,0xfa,0xae,\r
-0x0e,0x73,0x5b,0xbd,0x17,0xab,0xd0,0xe7,0xc5,0x54,0xf6,0x74,0x9b,0x3c,0x6e,0x8a,\r
-0x28,0xaf,0xc6,0x0f,0x95,0x0a,0xf6,0xff,0x00,0xd9,0xcf,0xc2,0x90,0x5e,0xc5,0xaa,\r
-0xea,0xf7,0x76,0xf1,0x4e,0x99,0x16,0xd1,0x09,0x50,0x30,0xc8,0xf9,0x98,0xe0,0xfd,\r
-0x57,0xf5,0xaf,0x10,0xaf,0xb0,0xbe,0x1a,0x78,0x74,0xf8,0x63,0xc1,0x1a,0x4d,0x8b,\r
-0xa9,0x59,0xc4,0x5e,0x64,0xc0,0x8c,0x10,0xee,0x77,0x30,0xfc,0x09,0xc7,0xe1,0x5f,\r
-0x57,0xc3,0xb8,0x5f,0x6f,0x8b,0xf6,0x92,0x5a,0x45,0x7e,0x2f,0x44,0x7a,0x58,0x0a,\r
-0x7c,0xf5,0x79,0x9f,0x43,0x4e,0x4f,0x09,0xe8,0x93,0x0f,0xde,0x69,0x16,0x2f,0xf5,\r
-0xb6,0x43,0xfd,0x2b,0x36,0xf3,0xe1,0x87,0x85,0x2f,0x91,0x96,0x4d,0x02,0xc5,0x41,\r
-0xea,0x62,0x84,0x46,0x7f,0x35,0xc1,0xae,0x9c,0x0c,0x51,0x5f,0xa6,0xcb,0x0f,0x46,\r
-0x5f,0x14,0x13,0xf9,0x23,0xe8,0x1d,0x38,0x3d,0xd2,0x3c,0x33,0xe2,0x17,0xc0,0x1b,\r
-0x3b,0x6d,0x3a,0xe3,0x50,0xf0,0xf3,0xcb,0x1c,0x90,0xa1,0x76,0xb3,0x95,0xb7,0x87,\r
-0x03,0x93,0xb5,0x8f,0x39,0xfa,0x93,0x9f,0x6a,0xf0,0x8a,0xfb,0x2b,0xc7,0x7e,0x21,\r
-0x83,0xc3,0x3e,0x14,0xd4,0x6f,0xe6,0x20,0x6c,0x89,0x95,0x14,0xff,0x00,0x1b,0x91,\r
-0x85,0x1f,0x99,0xaf,0x8d,0x40,0xc0,0x02,0xbf,0x34,0xe2,0x2c,0x2e,0x1b,0x0d,0x5a,\r
-0x1e,0xc1,0x59,0xb5,0xaa,0x5f,0x81,0xe0,0x63,0xa9,0xc2,0x9c,0xd7,0x26,0x81,0x45,\r
-0x14,0x57,0xc9,0x1e,0x61,0x6f,0x49,0xb5,0x7b,0xed,0x56,0xce,0xde,0x21,0x99,0x25,\r
-0x99,0x23,0x5c,0x7a,0x96,0x00,0x7f,0x3a,0xfb,0x79,0x38,0x50,0x2b,0xe5,0xdf,0x81,\r
-0x3e,0x13,0x6f,0x10,0x78,0xce,0x2b,0xc9,0x13,0x75,0xa6,0x9a,0x3c,0xf7,0x24,0x70,\r
-0x64,0xe8,0x83,0xeb,0x9f,0x9b,0xfe,0x03,0x5f,0x51,0x81,0x5f,0xa5,0xf0,0xc5,0x09,\r
-0x53,0xc3,0xce,0xab,0xfb,0x4f,0x4f,0x91,0xef,0xe5,0xd0,0x71,0x83,0x93,0xea,0x61,\r
-0x78,0xdb,0xc3,0x4f,0xe2,0xff,0x00,0x0e,0x5d,0xe9,0x2b,0x78,0xf6,0x22,0xe3,0x68,\r
-0x69,0x91,0x37,0x10,0x03,0x02,0x46,0x32,0x3a,0xe3,0x15,0xe4,0xf2,0x7e,0xcc,0x63,\r
-0xf8,0x3c,0x40,0x7f,0xe0,0x56,0x9f,0xfd,0x9d,0x7b,0xb5,0x26,0x2b,0xe8,0x71,0x59,\r
-0x6e,0x17,0x19,0x25,0x3a,0xf0,0xbb,0xf5,0x67,0x75,0x4c,0x3d,0x3a,0xae,0xf3,0x57,\r
-0x3c,0x09,0xff,0x00,0x66,0x4b,0xaf,0xe0,0xd7,0xa1,0x3f,0xef,0x5b,0x11,0xff,0x00,\r
-0xb3,0x55,0x77,0xfd,0x99,0xf5,0x31,0xf7,0x35,0xab,0x46,0xfa,0xc4,0xc2,0xbe,0x85,\r
-0xc5,0x52,0xd6,0x35,0x38,0xb4,0x7d,0x2a,0xf2,0xfa,0x63,0x88,0xad,0xa2,0x79,0x58,\r
-0xfb,0x28,0x26,0xbc,0xe9,0xe4,0x39,0x72,0x4d,0xb8,0x5b,0xe6,0xff,0x00,0xcc,0xc1,\r
-0xe0,0xa8,0x2d,0x6c,0x7c,0x65,0xe2,0x0d,0x20,0xe8,0x1a,0xdd,0xee,0x9a,0xd7,0x11,\r
-0xdc,0xbd,0xac,0x86,0x26,0x92,0x20,0x42,0x96,0x1d,0x40,0xcf,0xa1,0xc8,0xfc,0x2b,\r
-0x3e,0xa6,0xbc,0xba,0x96,0xfe,0xee,0x6b,0x99,0xdb,0x7c,0xf3,0x3b,0x49,0x23,0x7a,\r
-0xb1,0x39,0x27,0xf3,0x35,0x0d,0x7e,0x51,0x53,0x95,0xcd,0xb8,0x2d,0x2f,0xa1,0xf3,\r
-0x4e,0xd7,0x76,0x0a,0x28,0xad,0x2f,0x0d,0xe9,0x2d,0xaf,0x78,0x83,0x4d,0xd3,0xd4,\r
-0x13,0xf6,0x9b,0x84,0x8c,0xe3,0xb2,0x93,0xc9,0xfc,0xb3,0x4a,0x10,0x75,0x24,0xa0,\r
-0xb7,0x6e,0xc1,0x15,0x76,0x91,0xd2,0xda,0xfc,0x17,0xf1,0x7d,0xe5,0xa4,0x37,0x30,\r
-0xe9,0x41,0xe2,0x99,0x04,0x88,0x7c,0xf8,0xc1,0xc1,0x19,0x19,0x05,0xb8,0xa4,0x93,\r
-0xe0,0xb7,0x8c,0xe3,0xeb,0xa2,0x39,0xff,0x00,0x76,0x68,0x8f,0xfe,0xcd,0x5f,0x59,\r
-0x43,0x1a,0xc5,0x12,0x22,0x8d,0xaa,0xa0,0x00,0x07,0x61,0x4e,0xc7,0xbd,0x7e,0x99,\r
-0xfe,0xac,0x61,0x1a,0x5e,0xf4,0xaf,0xea,0xbf,0xc8,0xf7,0xff,0x00,0xb3,0xa9,0xf7,\r
-0x67,0xc8,0x12,0x7c,0x2a,0xf1,0x6c,0x47,0xe6,0xd0,0x6e,0xcf,0xfb,0xaa,0x0f,0xf2,\r
-0x35,0xa1,0xe1,0x2f,0x86,0x1e,0x20,0x9b,0xc5,0x3a,0x52,0x5e,0xe8,0xb7,0x50,0x5a,\r
-0x7d,0xa5,0x1a,0x67,0x9a,0x22,0x10,0x20,0x39,0x6c,0x9f,0x70,0x31,0x5f,0x57,0x8a,\r
-0x31,0x44,0x38,0x67,0x0d,0x09,0xa9,0x29,0xbd,0x3d,0x06,0xb2,0xfa,0x69,0xde,0xec,\r
-0x07,0x02,0xb1,0x7c,0x59,0xe2,0xed,0x3f,0xc1,0xba,0x3c,0x9a,0x86,0xa1,0x2e,0xc8,\r
-0xc7,0xca,0x91,0xaf,0xdf,0x95,0xbb,0x2a,0x8e,0xe7,0xf9,0x75,0x35,0x7f,0x56,0xd5,\r
-0x6d,0xb4,0x4d,0x36,0xe6,0xfa,0xf2,0x51,0x0d,0xb4,0x08,0x64,0x91,0xcf,0x60,0x3f,\r
-0xcf,0x4a,0xf9,0x1b,0xe2,0x07,0x8e,0x6e,0xfc,0x77,0xae,0xbd,0xe4,0xe5,0xa3,0xb6,\r
-0x8c,0x95,0xb6,0xb7,0xcf,0x11,0x27,0xf8,0x9e,0xe7,0xfa,0x62,0xbd,0x1c,0xdb,0x34,\r
-0x8e,0x5d,0x4a,0xd1,0xd6,0x6f,0x65,0xfa,0xb3,0x7c,0x4e,0x21,0x50,0x8e,0x9b,0xb2,\r
-0x6f,0x1e,0x7c,0x48,0xd5,0x3c,0x79,0x78,0x5a,0xe5,0xcd,0xbd,0x8a,0x1c,0xc5,0x67,\r
-0x1b,0x1d,0x8b,0xe8,0x4f,0xf7,0x9b,0xdc,0xfe,0x18,0xae,0x4e,0x8a,0x2b,0xf2,0x5a,\r
-0xd5,0xaa,0x62,0x26,0xea,0x55,0x77,0x6c,0xf9,0x99,0x4e,0x53,0x7c,0xd2,0x7a,0x85,\r
-0x14,0x57,0x5d,0xe0,0x0f,0x86,0x9a,0xa7,0x8f,0xae,0x8f,0xd9,0x80,0xb7,0xb1,0x8d,\r
-0xb1,0x2d,0xe4,0x83,0xe5,0x1f,0xec,0x81,0xfc,0x4d,0xed,0xf9,0xd3,0xa3,0x46,0xa6,\r
-0x22,0x6a,0x9d,0x25,0x76,0xc7,0x08,0x4a,0xa4,0xb9,0x62,0xae,0xce,0x46,0xa7,0xb7,\r
-0xb1,0xb9,0xbc,0xff,0x00,0x51,0x6f,0x2c,0xf8,0xeb,0xe5,0xa1,0x6f,0xe5,0x5f,0x55,\r
-0xf8,0x5f,0xe0,0xe7,0x86,0x7c,0x35,0x12,0x11,0x60,0x97,0xf7,0x23,0x19,0x9e,0xf0,\r
-0x09,0x0e,0x7d,0x40,0x3f,0x28,0xfc,0x05,0x76,0xc9,0x0a,0x46,0x00,0x55,0x0a,0x07,\r
-0x18,0x03,0x02,0xbe,0xce,0x87,0x0b,0x54,0x94,0x6f,0x5a,0xa2,0x4f,0xb2,0x57,0xfc,\r
-0x74,0x3d,0x58,0x65,0xd2,0x7f,0x1c,0xac,0x7c,0x3f,0x71,0xa7,0x5d,0xda,0x0c,0xcf,\r
-0x6b,0x34,0x23,0xd6,0x48,0xca,0xff,0x00,0x31,0x55,0xeb,0xee,0x96,0x8d,0x5d,0x48,\r
-0x60,0x08,0x3d,0x8d,0x71,0xde,0x29,0xf8,0x4d,0xe1,0xcf,0x15,0x42,0xfe,0x6d,0x8a,\r
-0x59,0xdd,0x31,0x2c,0x2e,0xad,0x00,0x8d,0xf7,0x7a,0x9c,0x70,0xdf,0x88,0x34,0xeb,\r
-0xf0,0xb5,0x48,0xc6,0xf4,0x6a,0x5d,0xf6,0x6a,0xc1,0x3c,0xb9,0xa5,0xee,0x4a,0xe7,\r
-0xc8,0xf4,0x57,0x4b,0xe3,0xbf,0x02,0x5f,0xf8,0x0f,0x56,0xfb,0x25,0xd8,0xf3,0x61,\r
-0x93,0x2d,0x05,0xca,0x8c,0x2c,0x8b,0xfd,0x08,0xee,0x3d,0xeb,0x9a,0xaf,0x89,0xab,\r
-0x4a,0x74,0x26,0xe9,0xd4,0x56,0x68,0xf2,0x65,0x17,0x07,0xcb,0x2d,0xc2,0xac,0x69,\r
-0xfa,0x85,0xce,0x95,0x7b,0x0d,0xdd,0x9c,0xef,0x6d,0x73,0x0b,0x6e,0x8e,0x58,0xdb,\r
-0x05,0x4d,0x57,0xa2,0xb3,0x4d,0xc5,0xa7,0x1d,0x1a,0x25,0x3b,0x6a,0x8f,0xaa,0xfe,\r
-0x13,0xfc,0x4d,0x8f,0xc7,0x9a,0x61,0x86,0xe3,0x6c,0x5a,0xb5,0xb2,0x8f,0x3a,0x31,\r
-0xc0,0x91,0x7f,0xbe,0xbe,0xde,0xa3,0xb1,0xfa,0x8a,0xef,0xc5,0x7c,0x59,0xe1,0x3f,\r
-0x12,0xdc,0x78,0x47,0xc4,0x16,0x7a,0xad,0xb1,0x25,0xe0,0x6f,0x99,0x33,0xfe,0xb1,\r
-0x0f,0xde,0x53,0xf5,0x19,0xaf,0xb2,0xf4,0xeb,0xd8,0x75,0x2b,0x0b,0x7b,0xbb,0x77,\r
-0x12,0x41,0x3c,0x6b,0x24,0x6c,0x3a,0x15,0x23,0x20,0xd7,0xeb,0x39,0x16,0x64,0xf1,\r
-0xd4,0x5c,0x2a,0x3f,0x7e,0x3b,0xf9,0xae,0x8c,0xfa,0x5c,0x1d,0x77,0x5a,0x16,0x96,\r
-0xe8,0xb3,0x48,0x4e,0xd1,0x93,0x41,0xaf,0x29,0xf8,0xf9,0xe3,0x99,0x3c,0x3f,0xa2,\r
-0x45,0xa4,0xd9,0xc8,0x52,0xf3,0x50,0x07,0x7b,0x29,0xe5,0x22,0x1d,0x7f,0x3e,0x9f,\r
-0x4c,0xd7,0xb5,0x8b,0xc4,0xc3,0x07,0x46,0x55,0xa7,0xb2,0x3a,0xea,0xd4,0x54,0xa0,\r
-0xe6,0xfa,0x1c,0xff,0x00,0xc5,0x1f,0x8e,0xb2,0x2c,0xb3,0x69,0x5e,0x1b,0x94,0x2e,\r
-0xdc,0xa4,0xba,0x82,0xf3,0xcf,0x71,0x1f,0xff,0x00,0x15,0xf9,0x7a,0xd7,0x87,0x4f,\r
-0x3c,0xb7,0x33,0x3c,0xb3,0x48,0xf2,0xca,0xec,0x59,0x9d,0xd8,0xb3,0x31,0x3d,0x49,\r
-0x26,0x99,0x45,0x7e,0x39,0x8d,0xc7,0xd7,0xc7,0xd4,0xe7,0xaa,0xfd,0x17,0x44,0x7c,\r
-0xb5,0x5a,0xd3,0xac,0xef,0x20,0xa2,0x8a,0x2b,0xce,0x30,0x0a,0x2b,0xba,0xf0,0xbf,\r
-0xc1,0x8f,0x13,0x78,0xa2,0x14,0xb8,0x4b,0x64,0xb0,0xb5,0x7e,0x56,0x5b,0xc6,0x29,\r
-0xb8,0x7a,0x85,0x00,0x9f,0xd2,0xbb,0x28,0x3f,0x66,0x5b,0xb6,0x51,0xe7,0xeb,0xd1,\r
-0x21,0xee,0x23,0xb6,0x2d,0xfa,0x96,0x15,0xeb,0xd1,0xca,0x31,0xd5,0xd7,0x34,0x29,\r
-0xbb,0x79,0xe9,0xf9,0x9d,0x31,0xc3,0x56,0x9a,0xba,0x89,0xe2,0x74,0x57,0xb9,0x37,\r
-0xec,0xc6,0xf8,0xf9,0x7c,0x42,0x3f,0x1b,0x4f,0xfe,0xce,0xaa,0x5c,0x7e,0xcc,0xfa,\r
-0x8a,0xa9,0xf2,0x35,0xab,0x59,0x0f,0x61,0x24,0x2c,0x9f,0xc8,0x9a,0xdd,0xe4,0x59,\r
-0x82,0xff,0x00,0x97,0x7f,0x8a,0xff,0x00,0x32,0xfe,0xa7,0x5d,0x7d,0x93,0xc6,0x28,\r
-0xaf,0x47,0xd4,0xbe,0x01,0x78,0xb2,0xc4,0x33,0x43,0x05,0xb5,0xf2,0x8f,0xf9,0xe1,\r
-0x38,0xcf,0xe4,0xc0,0x57,0x15,0xac,0x78,0x6b,0x56,0xf0,0xfb,0xed,0xd4,0xb4,0xdb,\r
-0x9b,0x2e,0x70,0x1a,0x68,0xc8,0x53,0xf4,0x3d,0x0d,0x79,0xd5,0xb0,0x58,0x9c,0x3e,\r
-0xb5,0x69,0xb5,0xf2,0x30,0x95,0x2a,0x90,0xf8,0xa3,0x63,0xac,0xf8,0x1d,0xa4,0x0d,\r
-0x57,0xe2,0x25,0x83,0x32,0x6e,0x8e,0xd5,0x5e,0xe1,0xbd,0xb0,0x30,0xa7,0xfe,0xfa,\r
-0x65,0xaf,0xab,0x07,0x4a,0xf0,0x8f,0xd9,0x9f,0x48,0x05,0xb5,0x9d,0x51,0x97,0xfb,\r
-0x96,0xc8,0x7f,0xf1,0xe6,0xff,0x00,0xd9,0x6b,0xde,0x2b,0xf4,0xce,0x1d,0xa3,0xec,\r
-0xb0,0x2a,0x5f,0xcc,0xdb,0xfd,0x3f,0x43,0xe8,0x30,0x30,0xe5,0xa3,0x7e,0xe1,0x45,\r
-0x14,0x57,0xd3,0x9e,0x80,0x55,0x2d,0x66,0x4f,0x2b,0x4a,0xbb,0x6f,0x48,0xcd,0x5d,\r
-0xac,0x7f,0x16,0xcb,0xe4,0x78,0x7a,0xf9,0xff,0x00,0xe9,0x99,0xac,0xea,0x3b,0x41,\r
-0xb2,0x64,0xed,0x16,0xcf,0x83,0x7e,0x27,0xcf,0xe7,0x78,0xa6,0xf4,0x83,0x9c,0x12,\r
-0x3f,0x5a,0xf9,0xc3,0xe2,0xbc,0x5f,0xda,0x1a,0xa6,0x95,0x65,0xb7,0x79,0xb8,0xbd,\r
-0x82,0x1d,0x9d,0x77,0x6e,0x91,0x57,0x1f,0xad,0x7d,0x01,0xe3,0xa9,0xbc,0xdd,0x7a,\r
-0xf5,0xb3,0x9f,0x9c,0x8a,0xf1,0x3b,0xa8,0x3f,0xb4,0xfe,0x36,0xfc,0x3b,0xb2,0xed,\r
-0x37,0x88,0xf4,0xe4,0xfa,0x8f,0xb4,0xc7,0xfe,0x15,0xf9,0xde,0x54,0xb9,0xb1,0x2d,\r
-0xf9,0xfe,0xa7,0xe3,0x33,0x5e,0xd7,0x36,0xa4,0xbf,0xbc,0x7e,0xb6,0xff,0x00,0x61,\r
-0x5a,0xff,0x00,0xcf,0xba,0xfe,0x54,0x56,0xad,0x15,0xfa,0x2f,0x2a,0x3f,0x66,0xb2,\r
-0x1f,0x45,0x14,0x55,0x94,0x14,0xd2,0x69,0xd5,0xc8,0xfc,0x55,0xf1,0x6f,0xfc,0x21,\r
-0x1e,0x01,0xd6,0xb5,0x75,0x60,0xb3,0xc3,0x09,0x48,0x33,0x8f,0xf5,0xad,0xf2,0xa7,\r
-0x07,0xaf,0x24,0x1c,0x7b,0x56,0x75,0x26,0xa9,0xc1,0xce,0x5b,0x23,0x3a,0x93,0x54,\r
-0xa0,0xe7,0x2d,0x96,0xa7,0xc8,0x5f,0x1f,0xbc,0x5f,0xff,0x00,0x09,0x8f,0xc4,0xfd,\r
-0x4e,0x48,0xa4,0x2f,0x69,0x64,0x45,0x94,0x18,0x24,0x8c,0x26,0x77,0x11,0xf5,0x62,\r
-0xdf,0xa5,0x7b,0xc7,0xec,0xaf,0xe1,0x1f,0xec,0x7f,0x08,0x4d,0xab,0x4a,0x98,0x9a,\r
-0xf9,0xfe,0x52,0x47,0x3b,0x05,0x7c,0xa9,0xa0,0x69,0x73,0xf8,0x83,0x5d,0xb5,0xb3,\r
-0x8c,0x19,0x66,0xb9,0x98,0x2f,0xa9,0x24,0x9e,0x4d,0x7e,0x85,0x78,0x67,0x45,0x8b,\r
-0xc3,0xfa,0x0d,0x8e,0x9f,0x12,0x85,0x4b,0x78,0x95,0x30,0x3d,0x40,0xe6,0xbe,0x27,\r
-0x28,0x83,0xc5,0xe3,0x27,0x8a,0x9f,0x4f,0xcd,0xff,0x00,0xc0,0x3e,0x27,0x23,0x84,\r
-0xb1,0x58,0x9a,0x98,0xc9,0xff,0x00,0x57,0x34,0xc5,0x2d,0x14,0x57,0xdd,0x1f,0x74,\r
-0x14,0x51,0x45,0x00,0x32,0x49,0x16,0x18,0xd9,0xdd,0x82,0x22,0x82,0x59,0x98,0xe0,\r
-0x01,0xea,0x6b,0xe0,0x7f,0xda,0x6b,0xfe,0x0a,0xd3,0xe0,0xaf,0x85,0x9a,0x95,0xe7,\r
-0x87,0xbe,0x1e,0x69,0xc9,0xe3,0xcd,0x72,0xdd,0x8c,0x73,0x5f,0xb4,0xa6,0x3d,0x36,\r
-0x17,0x07,0x95,0x0e,0x3e,0x69,0x88,0xff,0x00,0x67,0x0b,0xfe,0xd7,0x5a,0xe2,0xbf,\r
-0xe0,0xad,0x3f,0xb5,0xed,0xe7,0x84,0xed,0x62,0xf8,0x37,0xe1,0x3b,0xf6,0xb6,0xbe,\r
-0xd4,0x2d,0xc5,0xc7,0x88,0x6e,0xa0,0x7c,0x3c,0x76,0xef,0xfe,0xae,0xd8,0x10,0x78,\r
-0x2e,0x3e,0x66,0xff,0x00,0x64,0xa8,0xe8,0xc6,0xbe,0x5a,0xfd,0x8a,0x7f,0xe0,0x9d,\r
-0x9a,0xff,0x00,0xed,0x53,0xa7,0xc9,0xe2,0x9d,0x5f,0x55,0x3e,0x15,0xf0,0x3c,0x53,\r
-0x18,0x12,0xed,0x21,0xf3,0x2e,0x6f,0x5d,0x71,0xb9,0x61,0x52,0x40,0x0a,0xbd,0x0b,\r
-0xb6,0x46,0x78,0x00,0xe0,0xe1,0x92,0xfc,0x8c,0xef,0x1a,0xff,0x00,0xc1,0x51,0x7f,\r
-0x68,0x5f,0x17,0xcd,0x37,0x91,0xe2,0xeb,0x7f,0x0e,0xdb,0x3b,0x16,0x5b,0x7d,0x1b,\r
-0x4f,0x86,0x30,0x83,0xb0,0x0e,0xea,0xcf,0xf9,0xb5,0x7d,0x1d,0xff,0x00,0x04,0xc4,\r
-0xf8,0xc5,0xf1,0xb7,0xf6,0x81,0xf8,0xe3,0x7d,0x71,0xe2,0x9f,0x88,0x1a,0xe6,0xad,\r
-0xe0,0xff,0x00,0x0f,0xd8,0xbd,0xd5,0xe5,0xb5,0xc3,0x29,0x86,0x79,0xe4,0xcc,0x70,\r
-0xc4,0xc7,0x6e,0x47,0x57,0x93,0x03,0xfe,0x79,0x57,0xc9,0xbf,0xb7,0x6f,0xc0,0x4f,\r
-0x01,0xfe,0xcd,0x7f,0x18,0x6d,0xbc,0x0b,0xe0,0x8d,0x57,0x58,0xd5,0xde,0xd7,0x4f,\r
-0x8e,0xe3,0x53,0x9f,0x57,0x9e,0x29,0x19,0x27,0x90,0x96,0x58,0xc0,0x8e,0x34,0x0b,\r
-0x88,0xf6,0x31,0xce,0x7f,0xd6,0x0e,0x98,0xaf,0xd3,0xef,0xf8,0x25,0x5f,0xc1,0x81,\r
-0xf0,0xbf,0xf6,0x5f,0xb1,0xd7,0x2e,0xad,0xfc,0xad,0x5f,0xc5,0xf3,0x9d,0x56,0x56,\r
-0x3f,0x7b,0xec,0xff,0x00,0x72,0xdd,0x7d,0x86,0xd0,0x5b,0xfe,0xda,0x50,0x08,0x8f,\r
-0xe3,0x97,0xfc,0x15,0x17,0xc0,0x9f,0x00,0x7e,0x2c,0xeb,0xfe,0x01,0xd7,0xfc,0x21,\r
-0xe2,0x5b,0xbd,0x43,0x48,0x92,0x34,0x92,0xea,0xc4,0x5b,0xb4,0x32,0x07,0x89,0x24,\r
-0x56,0x5d,0xd2,0x29,0xe8,0xe3,0xb7,0x50,0x6b,0xe8,0x3f,0xd9,0xdb,0xe3,0xe6,0x87,\r
-0xfb,0x4a,0xfc,0x30,0xb3,0xf1,0xc7,0x87,0x6c,0xef,0xac,0x34,0xcb,0x99,0xe5,0xb7,\r
-0x58,0x35,0x15,0x45,0x98,0x34,0x6d,0xb5,0xb2,0x15,0x98,0x63,0x3d,0x39,0xaf,0xc2,\r
-0xdf,0xdb,0xb3,0xc7,0x76,0x9f,0x11,0xbf,0x6b,0x6f,0x89,0x5a,0xcd,0x84,0xbe,0x75,\r
-0x90,0xd4,0xbe,0xc5,0x13,0x8e,0x84,0x5b,0xc6,0x90,0x12,0x3d,0x8b,0x46,0xc7,0xf1,\r
-0xaf,0xd8,0xaf,0xf8,0x27,0x2f,0x81,0x67,0xf0,0x0f,0xec,0x75,0xf0,0xfa,0xd2,0xe5,\r
-0x59,0x2e,0x2f,0xed,0xa4,0xd5,0x59,0x58,0x60,0x81,0x71,0x2b,0x4a,0x9f,0xf8,0xe3,\r
-0x2d,0x03,0x4f,0x53,0xe9,0x19,0xa7,0x5b,0x78,0x9e,0x49,0x18,0x24,0x68,0xa5,0x99,\r
-0x98,0xe0,0x00,0x3b,0xd7,0xc5,0xfe,0x2d,0xd7,0x5f,0xc4,0xde,0x25,0xd4,0x75,0x37,\r
-0x27,0xfd,0x22,0x66,0x65,0x07,0xb2,0x74,0x51,0xf8,0x00,0x05,0x7d,0x29,0xf1,0xbf,\r
-0xc4,0x5f,0xd8,0x1e,0x01,0xbc,0x54,0x70,0xb7,0x17,0xc4,0x5a,0x46,0x3d,0x43,0x7d,\r
-0xff,0x00,0xfc,0x74,0x37,0xe9,0x5f,0x2a,0x57,0xe7,0x1c,0x51,0x8a,0xe6,0x9c,0x30,\r
-0xeb,0xa6,0xaf,0xe7,0xb1,0xe1,0xe6,0x15,0x2f,0x25,0x4f,0xe6,0x14,0x51,0x45,0x7c,\r
-0x29,0xe3,0x9a,0x5e,0x1a,0x92,0xc6,0x2d,0x7f,0x4f,0x93,0x52,0x25,0x6c,0x23,0x99,\r
-0x5e,0x6d,0xab,0xb8,0x95,0x07,0x24,0x60,0x7a,0xe3,0x1f,0x8d,0x7d,0x2b,0x1f,0xc7,\r
-0x9f,0x06,0xb0,0x03,0xed,0xf2,0xaf,0xd6,0xda,0x4f,0xf0,0xaf,0x96,0x28,0xaf,0x6b,\r
-0x01,0x9b,0x56,0xcb,0xa3,0x28,0xd2,0x49,0xdf,0xbf,0xfc,0x39,0xd7,0x47,0x13,0x3a,\r
-0x09,0xa8,0xad,0xcf,0xaa,0xcf,0xc7,0x5f,0x06,0x81,0x9f,0xed,0x37,0xff,0x00,0xc0,\r
-0x69,0x3f,0xf8,0x9a,0xc7,0xd6,0x3f,0x68,0xcf,0x0e,0xda,0x44,0xc2,0xc6,0xde,0xef,\r
-0x50,0x97,0xb0,0xd9,0xe5,0xaf,0xe2,0x4f,0x3f,0xa5,0x7c,0xd9,0x45,0x7a,0x53,0xe2,\r
-0x6c,0x6c,0x95,0x92,0x8a,0xf9,0x7f,0xc1,0x37,0x79,0x85,0x67,0xb5,0x8e,0xa7,0xc7,\r
-0x5f,0x11,0x35,0x5f,0x1e,0xdd,0xab,0xde,0x32,0xc3,0x69,0x19,0x26,0x1b,0x48,0xbe,\r
-0xe2,0x7b,0x9f,0x53,0xee,0x7f,0x0c,0x57,0x2d,0x45,0x6b,0xe9,0x1e,0x12,0xd6,0xb5,\r
-0xed,0xa7,0x4f,0xd2,0xee,0xae,0x91,0xba,0x3c,0x71,0x1d,0x9f,0xf7,0xd7,0x4f,0xd6,\r
-0xbe,0x72,0x73,0xad,0x8b,0xa8,0xe5,0x2b,0xca,0x4f,0xe6,0x70,0xc9,0xce,0xac,0xae,\r
-0xf5,0x66,0x45,0x69,0x78,0x7b,0xc3,0xb7,0xfe,0x29,0xd5,0x21,0xd3,0xf4,0xe8,0x0c,\r
-0xd7,0x12,0x1f,0xf8,0x0a,0x0e,0xec,0xc7,0xb0,0x15,0xe9,0x5e,0x18,0xfd,0x9d,0x75,\r
-0x7d,0x45,0xd2,0x4d,0x66,0xe2,0x3d,0x36,0x0e,0x09,0x8a,0x32,0x24,0x94,0x8f,0x4e,\r
-0x38,0x1f,0x99,0xfa,0x57,0xb9,0x78,0x4f,0xc1,0x7a,0x57,0x82,0xec,0x3e,0xcb,0xa6,\r
-0x5b,0x08,0xb3,0x83,0x24,0xad,0xcc,0x92,0x1f,0x56,0x6e,0xff,0x00,0x4e,0x83,0xb0,\r
-0x15,0xf4,0x79,0x7f,0x0f,0xe2,0x31,0x12,0x52,0xc4,0x2e,0x48,0xfe,0x2f,0xfa,0xf3,\r
-0x3b,0xa8,0x60,0xa7,0x37,0x79,0xe8,0x8a,0xfe,0x01,0xf0,0x5d,0xaf,0x81,0xbc,0x3f,\r
-0x0e,0x9f,0x6e,0x7c,0xc9,0x4f,0xcf,0x3c,0xf8,0xc1,0x95,0xcf,0x53,0xf4,0xec,0x3d,\r
-0x85,0x74,0xb4,0x94,0xb5,0xfa,0x7d,0x2a,0x51,0xa3,0x05,0x4e,0x0a,0xc9,0x1f,0x43,\r
-0x18,0xa8,0xa5,0x15,0xb0,0x51,0x45,0x15,0xa9,0x41,0x5e,0x6f,0xf1,0xeb,0x5c,0xfe,\r
-0xc9,0xf0,0x05,0xc4,0x0a,0xdb,0x65,0xbe,0x91,0x6d,0xd7,0x1e,0x99,0xdc,0xdf,0xa0,\r
-0x23,0xf1,0xaf,0x47,0x3d,0x2b,0xe7,0x8f,0xda,0x4f,0x5b,0xfb,0x4e,0xbd,0xa6,0x69,\r
-0x68,0xdf,0x25,0xac,0x26,0x67,0x03,0xfb,0xce,0x70,0x3f,0x20,0xbf,0xad,0x78,0x79,\r
-0xd5,0x7f,0xab,0xe0,0x6a,0x49,0x6e,0xf4,0xfb,0xce,0x4c,0x5c,0xf9,0x28,0xc9,0x9e,\r
-0x39,0x45,0x14,0x57,0xe3,0x67,0xca,0x85,0x7a,0x67,0xec,0xfb,0xa2,0xff,0x00,0x69,\r
-0x78,0xec,0x5d,0xba,0x93,0x1d,0x84,0x0d,0x2e,0x7b,0x07,0x6f,0x95,0x41,0xfc,0x0b,\r
-0x1f,0xc2,0xbc,0xce,0xbe,0x89,0xfd,0x9b,0x74,0x41,0x6b,0xe1,0xdd,0x47,0x54,0x65,\r
-0x22,0x4b,0xc9,0xc4,0x4a,0x4f,0x42,0x91,0x8e,0x08,0xfc,0x59,0x87,0xe1,0x5e,0xf6,\r
-0x47,0x43,0xdb,0xe3,0xe0,0x9e,0xcb,0x5f,0xbb,0xfe,0x09,0xd9,0x84,0x87,0x3d,0x68,\r
-0xf9,0x6a,0x7b,0x08,0xe9,0x4b,0x45,0x15,0xfb,0x11,0xf5,0x21,0x48,0x4e,0x29,0x6a,\r
-0x9e,0xad,0xa8,0xc5,0xa4,0xe9,0xb7,0x57,0xb3,0x9c,0x43,0x6f,0x13,0x4a,0xe7,0xd9,\r
-0x41,0x27,0xf9,0x54,0xc9,0xa8,0xa6,0xde,0xc2,0x6e,0xda,0xb3,0xc3,0x3f,0x68,0x9f,\r
-0x1b,0xb5,0xc5,0xdc,0x3e,0x1b,0xb5,0x90,0x88,0xa2,0x02,0x6b,0xbd,0xa7,0xef,0x31,\r
-0xe5,0x50,0xfd,0x07,0xcd,0x8f,0x71,0xe9,0x5e,0x27,0x57,0x35,0x9d,0x52,0x7d,0x6f,\r
-0x55,0xbb,0xd4,0x2e,0x4e,0x67,0xb9,0x95,0xa5,0x7f,0xa9,0x39,0xc7,0xd0,0x74,0xfc,\r
-0x2a,0x9d,0x7e,0x25,0x98,0x62,0xe5,0x8d,0xc4,0xca,0xb3,0xdb,0xa7,0xa7,0x43,0xe4,\r
-0xab,0xd5,0x75,0xaa,0x39,0x30,0xa2,0x8a,0x2b,0xce,0x30,0x3a,0x5f,0x87,0xde,0x0a,\r
-0x9f,0xc7,0x5e,0x22,0x86,0xc2,0x32,0x63,0xb7,0x5f,0xde,0x5c,0x4c,0x07,0xdc,0x8f,\r
-0xbf,0xe2,0x7a,0x0f,0xfe,0xb5,0x7d,0x71,0xa3,0x69,0x16,0x9a,0x16,0x9b,0x05,0x8d,\r
-0x8c,0x2b,0x6f,0x6b,0x02,0xed,0x48,0xd0,0x71,0xf5,0x3e,0xa4,0xf5,0x27,0xa9,0xae,\r
-0x13,0xe0,0x4f,0x84,0xd7,0xc3,0xde,0x0d,0x8a,0xf2,0x44,0x02,0xf3,0x52,0xc5,0xc3,\r
-0x92,0x39,0x11,0xff,0x00,0xcb,0x31,0xf9,0x73,0xf5,0x63,0x5e,0x93,0x5f,0xad,0x64,\r
-0x59,0x7c,0x70,0x98,0x75,0x52,0x4b,0xdf,0x9e,0xaf,0xc9,0x74,0x47,0xd2,0xe0,0xe8,\r
-0x2a,0x54,0xd4,0x9e,0xec,0x4a,0x5a,0x28,0xaf,0xa6,0x3d,0x00,0xa2,0x8a,0x28,0x03,\r
-0x8c,0xf8,0xb1,0xe1,0x58,0xbc,0x55,0xe0,0xbb,0xe8,0x76,0x03,0x75,0x6e,0x86,0xe2,\r
-0xdd,0xb1,0xc8,0x75,0x19,0xc0,0xfa,0x8c,0x8f,0xc6,0xbe,0x47,0xaf,0xb9,0xe4,0x50,\r
-0xe8,0x54,0x8c,0x82,0x30,0x6b,0xe2,0x0d,0x46,0x11,0x6f,0xa8,0xdd,0x42,0x3a,0x47,\r
-0x2b,0xa0,0xfc,0x09,0x15,0xf9,0xd7,0x14,0xd0,0x8c,0x67,0x4e,0xb2,0xdd,0xdd,0x3f,\r
-0x91,0xe1,0x66,0x30,0x49,0xc6,0x5d,0xca,0xf4,0x51,0x45,0x7c,0x21,0xe3,0x85,0x7d,\r
-0x49,0xf0,0x17,0x5a,0x6d,0x57,0xe1,0xf5,0xb4,0x4e,0xe5,0xe4,0xb2,0x95,0xed,0xc9,\r
-0x3e,0x83,0xe6,0x51,0xf8,0x2b,0x01,0xf8,0x57,0xcb,0x75,0xf4,0x27,0xec,0xcf,0x29,\r
-0x3a,0x0e,0xb3,0x1f,0x65,0xba,0x56,0xfc,0xd3,0x1f,0xd2,0xbe,0xa7,0x86,0xea,0x38,\r
-0x63,0x94,0x57,0x54,0xff,0x00,0xcc,0xf4,0x70,0x12,0x6a,0xb5,0xbb,0x9e,0xcc,0x6b,\r
-0xe5,0x2f,0x8e,0x1a,0x9b,0xea,0x3f,0x11,0xb5,0x14,0x66,0x2d,0x1d,0xa8,0x48,0x23,\r
-0x1e,0x80,0x28,0x27,0xff,0x00,0x1e,0x66,0xaf,0xab,0x3b,0x57,0xc8,0xdf,0x17,0x6d,\r
-0x5a,0xd3,0xe2,0x3e,0xb8,0xad,0xd5,0xa6,0x12,0x0f,0xa3,0x28,0x23,0xf9,0xd7,0xd3,\r
-0x71,0x3c,0xa4,0xb0,0x91,0x4b,0x67,0x2f,0xd1,0x9d,0xf9,0x83,0xfd,0xd2,0xf5,0x38,\r
-0xfa,0x28,0xa2,0xbf,0x30,0x3e,0x7c,0x2b,0xb7,0xf8,0x35,0xa3,0xd9,0xeb,0x5e,0x3f,\r
-0xb0,0x8a,0xf7,0x6b,0x45,0x18,0x69,0x96,0x37,0xe4,0x48,0xca,0x32,0xa3,0xf3,0xe7,\r
-0xf0,0xae,0x22,0xac,0xe9,0xba,0x8d,0xce,0x91,0x7f,0x05,0xed,0xa4,0xcd,0x05,0xcc,\r
-0x0e,0x1e,0x39,0x13,0xaa,0x91,0x5d,0x38,0x6a,0x91,0xa3,0x5e,0x15,0x26,0xae,0x93,\r
-0x4e,0xc5,0xd3,0x92,0x8c,0xd4,0x9e,0xc7,0xdb,0xea,0x38,0xc5,0x3b,0x15,0xe2,0xbe,\r
-0x10,0xfd,0xa3,0x2c,0xe7,0x8d,0x21,0xf1,0x0d,0xb3,0xda,0xcc,0x38,0x37,0x56,0xeb,\r
-0xba,0x33,0xee,0x57,0xa8,0xfc,0x33,0x5e,0xa7,0xa3,0x78,0xbb,0x46,0xf1,0x0a,0x06,\r
-0xd3,0xb5,0x2b,0x6b,0xbf,0x55,0x8e,0x41,0xb8,0x7d,0x57,0xa8,0xaf,0xd9,0x70,0xb9,\r
-0x86,0x17,0x16,0x93,0xa5,0x35,0xe9,0xd7,0xee,0x3e,0xae,0x9d,0x7a,0x75,0x7e,0x16,\r
-0x6b,0xe2,0x82,0x29,0x37,0x52,0xe6,0xbd,0x23,0x70,0xc7,0xe3,0x4c,0x9e,0xde,0x3b,\r
-0x98,0xda,0x39,0x51,0x64,0x8d,0x86,0x19,0x1d,0x72,0x08,0xf4,0x22,0xa4,0xa2,0x95,\r
-0x93,0xdc,0x2c,0x50,0xd2,0x74,0x2b,0x0d,0x06,0x29,0x62,0xd3,0xed,0x21,0xb3,0x8a,\r
-0x49,0x0c,0xad,0x1c,0x08,0x15,0x4b,0x10,0x01,0x38,0x1f,0x41,0x57,0xe8,0xa2,0x94,\r
-0x62,0xa2,0xad,0x15,0x64,0x24,0x92,0xd1,0x05,0x14,0x51,0x54,0x30,0xae,0x67,0xe2,\r
-0x24,0xfe,0x47,0x85,0x2f,0x5b,0xa1,0xdb,0x8a,0xe9,0xab,0x88,0xf8,0xbd,0x71,0xf6,\r
-0x7f,0x07,0xdc,0x1c,0xe3,0x3f,0xe1,0x5c,0xb8,0xa9,0x72,0xd0,0x9b,0xf2,0x66,0x35,\r
-0x9d,0xa9,0xc9,0x9f,0x08,0x78,0xa6,0x5d,0xfa,0x9d,0xe3,0x67,0xf8,0xcd,0x79,0xb7,\r
-0xc3,0x9b,0x15,0xd7,0x3f,0x6a,0xdf,0x86,0x16,0x6f,0xc8,0x1a,0xd4,0x73,0xe3,0xde,\r
-0x25,0x69,0x47,0xea,0x95,0xdf,0x6b,0xaf,0xba,0x7b,0x86,0xf5,0x63,0x5c,0x9f,0xec,\r
-0xe3,0x0b,0xea,0x3f,0xb6,0xaf,0xc3,0xb4,0x0b,0xb9,0x21,0x96,0xf6,0x66,0xf6,0x0b,\r
-0x67,0x3e,0x0f,0xe6,0x45,0x7c,0x36,0x48,0xaf,0x56,0xe7,0xe4,0x38,0x15,0xed,0x33,\r
-0x9a,0x5e,0xad,0x9f,0xab,0x7b,0x68,0xa5,0xcd,0x15,0xfa,0x21,0xfb,0x08,0xb4,0x51,\r
-0x45,0x22,0xc4,0xcd,0x7c,0xcb,0xfb,0x60,0xf8,0xbc,0xee,0xd1,0xfc,0x33,0x0b,0xe0,\r
-0x1c,0xdf,0x5c,0x80,0x4f,0xba,0xc6,0x3e,0x9f,0x7c,0xfe,0x02,0xbe,0x97,0x95,0xc4,\r
-0x68,0xce,0xc4,0x2a,0xa8,0x24,0x92,0x70,0x00,0xaf,0xcf,0xaf,0x89,0xbe,0x2c,0x93,\r
-0xc6,0xfe,0x3c,0xd6,0x35,0x56,0x72,0xf1,0x4b,0x39,0x8e,0x01,0x9c,0x85,0x89,0x7e,\r
-0x54,0xc7,0xe0,0x33,0xf8,0xd7,0xce,0x67,0x98,0x8f,0x63,0x86,0xf6,0x6b,0x79,0x69,\r
-0xf2,0xea,0x7c,0xc7,0x10,0x62,0x7d,0x96,0x17,0xd9,0x47,0x79,0xbb,0x7c,0xba,0x9e,\r
-0x89,0xfb,0x2d,0x78,0x47,0xfb,0x6b,0xc6,0x8d,0xa9,0xcb,0x1e,0xe8,0x2c,0x17,0x70,\r
-0x27,0xa6,0xf3,0xd2,0xbe,0xc4,0x1d,0x2b,0xca,0x3f,0x67,0x0f,0x08,0xff,0x00,0xc2,\r
-0x37,0xf0,0xfe,0x09,0xe4,0x4d,0xb7,0x17,0xc7,0xce,0x62,0x47,0x38,0xed,0x5e,0xaf,\r
-0x5d,0x19,0x3e,0x1f,0xd8,0x61,0x63,0x7d,0xe5,0xab,0xf9,0xff,0x00,0xc0,0x3d,0x0c,\r
-0xab,0x0d,0xf5,0x6c,0x24,0x62,0xf7,0x7a,0xb1,0x68,0xa2,0x8a,0xf6,0xcf,0x5c,0x29,\r
-0x09,0xa5,0xa4,0xc5,0x00,0x7f,0x37,0xdf,0xb5,0x6f,0x8c,0xaf,0x3c,0x7d,0xfb,0x4a,\r
-0x7c,0x4c,0xd6,0xef,0x9c,0xc9,0x34,0xda,0xfd,0xe4,0x28,0x4f,0x55,0x8a,0x29,0x4c,\r
-0x51,0x2f,0xe1,0x1c,0x68,0x3f,0x0a,0xfd,0x53,0xfd,0x82,0x7f,0x6c,0xcf,0x83,0xf6,\r
-0x1f,0xb3,0x47,0x85,0xfc,0x31,0xa9,0xf8,0xa7,0x4c,0xf0,0xae,0xbb,0xe1,0xbb,0x13,\r
-0x6f,0x77,0xa7,0x6a,0x93,0xad,0xb1,0x99,0x94,0xb3,0x19,0x62,0x67,0x20,0x49,0xbf,\r
-0x24,0xe0,0x1c,0xe4,0x90,0x47,0x4a,0xf8,0x47,0xfe,0x0a,0x39,0xfb,0x2b,0x78,0x83,\r
-0xe0,0x87,0xc7,0x0f,0x10,0xf8,0xa2,0x1d,0x3e,0x69,0xfc,0x11,0xe2,0x7b,0xf9,0x75,\r
-0x1b,0x2d,0x4a,0x35,0xdd,0x1c,0x32,0xca,0xdb,0xe5,0x82,0x4c,0x0f,0x91,0x83,0xb3,\r
-0x6d,0xcf,0x55,0x23,0x07,0x39,0x03,0xe4,0x43,0xc7,0x19,0xaa,0x22,0xf6,0x67,0xaf,\r
-0x6b,0x7a,0xcd,0xcf,0xed,0x4b,0xfb,0x51,0x5c,0xea,0x1a,0x95,0xf2,0x58,0x0f,0x17,\r
-0x78,0x83,0x32,0x5d,0x5d,0xca,0xa8,0xb6,0x76,0xaf,0x20,0x03,0x73,0x36,0x00,0x11,\r
-0xc2,0x00,0xe7,0xfb,0x95,0xfa,0x69,0xfb,0x5b,0xff,0x00,0xc1,0x44,0x3e,0x1f,0x7c,\r
-0x15,0xf8,0x50,0xfe,0x01,0xf8,0x43,0xac,0xda,0x78,0x83,0xc4,0xc7,0x4f,0x5d,0x32,\r
-0xd2,0xe7,0x49,0x71,0x2d,0xa6,0x95,0x08,0x4f,0x2c,0x48,0x65,0x19,0x57,0x90,0x28,\r
-0xf9,0x55,0x49,0xc1,0xc1,0x38,0xc6,0x0f,0xe3,0x6f,0x5a,0xf5,0x3f,0x80,0xff,0x00,\r
-0xb3,0x47,0xc4,0x3f,0xda,0x3b,0xc4,0x91,0x69,0x3e,0x0b,0xd0,0x66,0xbc,0x8b,0x78,\r
-0x17,0x3a,0x9c,0xe0,0xc7,0x65,0x6a,0x33,0xcb,0x4b,0x2e,0x30,0x31,0x9f,0xba,0x32,\r
-0xc7,0xb0,0x34,0x09,0x17,0x3f,0x65,0xcf,0x80,0x7a,0xc7,0xed,0x37,0xf1,0xb7,0x43,\r
-0xf0,0x8d,0x92,0xcc,0x6d,0x27,0x9b,0xed,0x3a,0xb5,0xf8,0xc9,0xfb,0x35,0xa2,0x90,\r
-0x65,0x90,0x9e,0x79,0x3f,0x75,0x73,0xd5,0x99,0x6b,0xfa,0x2e,0xd2,0xb4,0xcb,0x6d,\r
-0x13,0x4b,0xb4,0xd3,0xec,0xa2,0x58,0x2c,0xed,0x21,0x48,0x21,0x89,0x06,0x02,0x22,\r
-0xa8,0x55,0x03,0xe8,0x00,0xaf,0x0f,0xfd,0x90,0xff,0x00,0x64,0x5f,0x0d,0x7e,0xc9,\r
-0xbe,0x00,0x1a,0x4e,0x98,0xcb,0xaa,0x78,0x86,0xfb,0x6c,0x9a,0xb6,0xb6,0xf1,0xed,\r
-0x7b,0x99,0x00,0xe1,0x50,0x73,0xb2,0x35,0xe7,0x6a,0xe4,0xf5,0x24,0x92,0x6b,0xdd,\r
-0x2f,0x6f,0x22,0xb0,0xb4,0x9e,0xe6,0x76,0xd9,0x0c,0x31,0xb4,0x8e,0xc7,0xb2,0x81,\r
-0x92,0x7f,0x2a,0x87,0x24,0x95,0xd9,0x5b,0x23,0xe7,0x6f,0xda,0x2f,0xc4,0x7f,0xda,\r
-0x1e,0x26,0xb5,0xd2,0xa3,0x6c,0xc7,0x61,0x16,0xe7,0x19,0xe3,0xcc,0x7c,0x1f,0xd1,\r
-0x42,0xfe,0x75,0xe4,0x95,0xa1,0xe2,0x0d,0x62,0x4f,0x10,0x6b,0x97,0xfa,0x94,0xbf,\r
-0x7e,0xea,0x66,0x97,0x1e,0x80,0x9e,0x07,0xe0,0x30,0x3f,0x0a,0xcf,0xaf,0xc4,0x31,\r
-0xf8,0x87,0x8a,0xc5,0x4e,0xb7,0x77,0xf8,0x74,0x3e,0x4a,0xb5,0x4f,0x6b,0x51,0xcc,\r
-0x28,0xa2,0xba,0x5f,0x87,0x1e,0x1f,0xff,0x00,0x84,0x9f,0xc6,0xba,0x5d,0x8b,0x2e,\r
-0xe8,0x4c,0xa2,0x49,0x81,0xe9,0xb1,0x7e,0x66,0x07,0xeb,0x8c,0x7e,0x35,0xcb,0x46,\r
-0x94,0xab,0x54,0x8d,0x28,0xef,0x27,0x6f,0xbc,0xce,0x31,0x73,0x92,0x8a,0xea,0x61,\r
-0x49,0xa7,0xdd,0x43,0xfe,0xb2,0xda,0x64,0xff,0x00,0x7a,0x32,0x2a,0xb9,0x18,0x35,\r
-0xf7,0x40,0x41,0x80,0x36,0x8c,0x56,0x37,0x88,0x3c,0x17,0xa3,0x78,0x9e,0xd9,0xe1,\r
-0xd4,0x34,0xe8,0x27,0xdc,0x31,0xe6,0x6c,0x02,0x45,0xf7,0x0c,0x39,0x15,0xf7,0x15,\r
-0x38,0x56,0x49,0x5e,0x9d,0x5b,0xbf,0x35,0xff,0x00,0x04,0xf5,0xe5,0x97,0x3b,0x7b,\r
-0xb2,0x3e,0x30,0xa2,0xba,0x4f,0x88,0x3e,0x0e,0x97,0xc0,0xfe,0x26,0xb8,0xd3,0x5d,\r
-0x8c,0x90,0xe0,0x4b,0x04,0xad,0xd5,0xe3,0x3d,0x09,0xf7,0x18,0x20,0xfb,0x8a,0xe6,\r
-0xeb,0xe1,0xaa,0xd2,0x9d,0x1a,0x8e,0x9c,0xd5,0x9a,0xd0,0xf2,0x25,0x17,0x06,0xe2,\r
-0xfa,0x05,0x74,0x7e,0x0d,0xf1,0xde,0xab,0xe0,0x9d,0x4a,0x3b,0x8b,0x2b,0x87,0x36,\r
-0xfb,0x81,0x96,0xd5,0x98,0xf9,0x72,0xaf,0x70,0x47,0x63,0xef,0xd4,0x57,0x39,0x45,\r
-0x14,0xaa,0xce,0x8c,0xd5,0x4a,0x6e,0xcd,0x04,0x64,0xe0,0xf9,0xa3,0xb9,0xf7,0x06,\r
-0x95,0xa8,0xc3,0xab,0xe9,0xb6,0xd7,0xb6,0xed,0xba,0x0b,0x88,0xd6,0x54,0x3e,0xc4,\r
-0x64,0x7f,0x3a,0xb7,0x5c,0x27,0xc1,0x2b,0xef,0xb7,0x7c,0x37,0xd2,0x49,0x39,0x68,\r
-0x83,0xc2,0x7f,0xe0,0x2e,0x40,0xfd,0x31,0x5d,0xdd,0x7e,0xe5,0x86,0xab,0xed,0xe8,\r
-0x42,0xaf,0x74,0x9f,0xde,0x8f,0xaf,0xa7,0x2e,0x78,0x29,0x77,0x0a,0x28,0xa2,0xba,\r
-0x4d,0x02,0x8a,0x28,0xa0,0x04,0x27,0x00,0xd7,0xc7,0x1f,0x11,0x35,0xcf,0xf8,0x48,\r
-0xbc,0x6d,0xac,0x5f,0x2b,0x07,0x8d,0xa7,0x64,0x8c,0x8e,0x85,0x17,0xe5,0x53,0xf8,\r
-0x80,0x0f,0xe3,0x5f,0x54,0x78,0xf7,0x5d,0xff,0x00,0x84,0x73,0xc1,0xfa,0xb6,0xa0,\r
-0xae,0x12,0x48,0xad,0xdb,0xcb,0x2d,0xd3,0x79,0x18,0x4f,0xfc,0x78,0x8a,0xf8,0xcc,\r
-0x0c,0x0c,0x57,0xc0,0x71,0x4d,0x7d,0x29,0xd0,0x5e,0xaf,0xf2,0x5f,0xa9,0xe2,0xe6,\r
-0x33,0xf8,0x60,0x2d,0x14,0x51,0x5f,0x9f,0x1e,0x20,0x57,0xd8,0xdf,0x0e,0xb4,0x4f,\r
-0xec,0x0f,0x04,0xe8,0xf6,0x44,0x61,0xd6,0xdd,0x5d,0xc7,0xfb,0x4d,0xf3,0x37,0xea,\r
-0xc6,0xbe,0x53,0xf0,0x5e,0x91,0xfd,0xbf,0xe2,0xcd,0x27,0x4f,0xc6,0x56,0x7b,0x94,\r
-0x0e,0x3f,0xd9,0x07,0x2d,0xfa,0x03,0x5f,0x68,0x28,0x01,0x40,0x1c,0x01,0x5f,0x7f,\r
-0xc2,0xd4,0x3f,0x89,0x5d,0xfa,0x7e,0xaf,0xf4,0x3d,0xac,0xba,0x1f,0x14,0xfe,0x41,\r
-0x4b,0x45,0x15,0xfa,0x09,0xed,0x85,0x79,0xb7,0xc7,0xed,0x63,0xfb,0x2f,0xe1,0xfc,\r
-0xf0,0xa9,0x2b,0x25,0xf4,0xc9,0x6e,0xa4,0x7a,0x67,0x73,0x7e,0x88,0x47,0xe3,0x5e,\r
-0x93,0x5e,0x17,0xfb,0x4e,0x6a,0x0e,0xb1,0xe8,0x36,0x4a,0x7e,0x46,0x32,0xcc,0xc3,\r
-0xdc,0x6d,0x03,0xf9,0xb5,0x78,0xd9,0xc5,0x57,0x47,0x01,0x56,0x4b,0xb5,0xbe,0xfd,\r
-0x0e,0x5c,0x54,0xb9,0x28,0xc9,0x9e,0x11,0x45,0x14,0x57,0xe3,0x07,0xca,0x05,0x5e,\r
-0xd0,0xb4,0xc6,0xd6,0xb5,0xab,0x0d,0x3d,0x0e,0x1a,0xea,0x74,0x87,0x3e,0x9b,0x88,\r
-0x19,0xaa,0x35,0xda,0x7c,0x1b,0xb4,0x5b,0xdf,0x89,0x3a,0x2a,0x3f,0xdd,0x57,0x79,\r
-0x3f,0x15,0x8d,0x88,0xfd,0x40,0xae,0xac,0x2d,0x3f,0x6d,0x5e,0x14,0xdf,0x56,0x97,\r
-0xe2,0x69,0x4e,0x3c,0xd3,0x8c,0x7c,0xcf,0xac,0xad,0xa0,0x8e,0xd6,0xde,0x28,0x62,\r
-0x50,0x91,0x46,0xa1,0x11,0x47,0x40,0x00,0xc0,0x02,0xa5,0xa4,0x14,0xb5,0xfb,0xaa,\r
-0x49,0x2b,0x23,0xec,0x42,0x8a,0x28,0xa6,0x01,0x45,0x14,0x50,0x04,0x73,0x38,0x86,\r
-0x27,0x76,0x38,0x55,0x04,0x93,0xf8,0x57,0xc3,0xd7,0x93,0x7d,0xa6,0xf2,0x79,0xbf,\r
-0xe7,0xa4,0x8c,0xff,0x00,0x99,0xcd,0x7d,0x79,0xf1,0x37,0x5a,0x5d,0x07,0xc0,0xba,\r
-0xc5,0xd1,0x38,0x73,0x01,0x8a,0x3c,0x1e,0x77,0x3f,0xca,0x3f,0x9e,0x7f,0x0a,0xf8,\r
-0xf6,0xbf,0x3a,0xe2,0x9a,0xa9,0xce,0x95,0x25,0xd1,0x36,0x78,0x59,0x8c,0xb5,0x8c,\r
-0x42,0x8a,0x28,0xaf,0x84,0x3c,0x70,0xaf,0xa1,0xff,0x00,0x66,0x98,0x36,0xf8,0x6b,\r
-0x56,0x97,0x04,0x6f,0xbb,0x0b,0x9f,0xa2,0x0f,0xf1,0xaf,0x9e,0x3a,0xd7,0xd5,0x5f,\r
-0x02,0xf4,0xa6,0xd3,0x3e,0x1d,0x58,0x3b,0xae,0xd9,0x2e,0x9d,0xee,0x08,0xf6,0x27,\r
-0x0b,0xff,0x00,0x8e,0x81,0x5f,0x55,0xc3,0x74,0xdc,0xf1,0xdc,0xdd,0x93,0xff,0x00,\r
-0x23,0xd1,0xc0,0x46,0xf5,0xaf,0xd9,0x1e,0x81,0x8e,0x2b,0xc3,0xbf,0x68,0x6f,0x02,\r
-0xcd,0x71,0xe4,0xf8,0x8e,0xce,0x33,0x20,0x89,0x04,0x57,0x61,0x47,0x21,0x73,0xf2,\r
-0xbf,0xe1,0x9c,0x1f,0xc3,0xde,0xbd,0xc4,0x53,0x66,0x85,0x27,0x8d,0xa3,0x91,0x16,\r
-0x44,0x71,0xb5,0x95,0x86,0x41,0x1e,0x86,0xbf,0x46,0xc7,0x60,0xe1,0x8e,0xa1,0x2a,\r
-0x33,0xeb,0xf8,0x33,0xdd,0xad,0x49,0x56,0x83,0x83,0x3e,0x17,0xa2,0xbd,0xc7,0xe2,\r
-0x1f,0xec,0xff,0x00,0x20,0x96,0x5b,0xff,0x00,0x0d,0x60,0xa3,0x65,0x9b,0x4f,0x76,\r
-0xc1,0x53,0xff,0x00,0x4c,0xd8,0xff,0x00,0x23,0xef,0xcf,0x41,0x5e,0x2d,0x7f,0xa7,\r
-0x5d,0x69,0x57,0x2f,0x6f,0x79,0x6f,0x2d,0xac,0xe9,0xf7,0xa3,0x95,0x0a,0xb0,0xfc,\r
-0x0d,0x7e,0x43,0x8c,0xcb,0xf1,0x18,0x19,0xb8,0xd5,0x8e,0x9d,0xfa,0x33,0xe6,0x2a,\r
-0xd0,0x9d,0x17,0x69,0x22,0xbd,0x14,0x51,0x5e,0x69,0x80,0x52,0xab,0x14,0x60,0xca,\r
-0x4a,0xb0,0x39,0x04,0x1c,0x11,0x49,0x45,0x34,0xed,0xaa,0x03,0xab,0xd1,0xbe,0x29,\r
-0xf8,0xa7,0x41,0xda,0xb6,0xba,0xcd,0xc3,0x46,0x08,0xfd,0xdd,0xc1,0xf3,0x94,0x8f,\r
-0x4f,0x9b,0x24,0x0f,0xa6,0x2b,0xd1,0x34,0x0f,0xda,0x56,0x65,0x65,0x4d,0x6b,0x4a,\r
-0x57,0x52,0x79,0x9a,0xc9,0x88,0x20,0x7f,0xb8,0xc7,0x9f,0xfb,0xe8,0x57,0x88,0x51,\r
-0x5e,0xae,0x1f,0x35,0xc6,0x61,0xbf,0x87,0x51,0xdb,0xb3,0xd5,0x7e,0x27,0x4c,0x31,\r
-0x35,0x69,0xfc,0x32,0x3e,0xc3,0xf0,0xc7,0xc4,0x9f,0x0f,0xf8,0xb8,0x2a,0xe9,0xf7,\r
-0xe8,0x6e,0x08,0xcf,0xd9,0xa5,0xf9,0x25,0x1f,0xf0,0x13,0xd7,0xf0,0xcd,0x74,0xf9,\r
-0xaf,0x85,0x91,0xda,0x37,0x57,0x46,0x2a,0xca,0x72,0x18,0x1c,0x10,0x6b,0xd6,0x7e,\r
-0x1c,0xfc,0x75,0xbe,0xd1,0x25,0x8a,0xc7,0x5e,0x77,0xbf,0xd3,0xce,0x14,0x5c,0x9e,\r
-0x66,0x8b,0xeb,0xfd,0xe1,0xf5,0xe7,0xeb,0xd2,0xbe,0xcb,0x01,0xc4,0xb0,0xaa,0xd5,\r
-0x3c,0x52,0xe5,0x7d,0xd6,0xdf,0x3e,0xc7,0xab,0x47,0x1e,0xa4,0xf9,0x6a,0x2b,0x1f,\r
-0x48,0xd1,0x50,0x59,0x5e,0xc1,0xa8,0x5a,0xc5,0x73,0x6d,0x2a,0xcf,0x6f,0x2a,0x87,\r
-0x8e,0x44,0x39,0x56,0x53,0xd0,0x83,0x53,0xd7,0xdb,0xa6,0x9a,0xba,0x3d,0x7d,0xc2,\r
-0x8a,0x28,0xa6,0x01,0x5e,0x5f,0xf1,0xfa,0xf4,0xda,0xf8,0x48,0xa8,0xfe,0x2c,0xd7,\r
-0xa8,0x57,0x8a,0xfe,0xd2,0xd7,0x5e,0x57,0x87,0xe3,0x4c,0xff,0x00,0x09,0x38,0xaf,\r
-0x2f,0x33,0x97,0x2e,0x12,0xa3,0xf2,0x38,0xb1,0xb2,0xe5,0xc3,0xcd,0xf9,0x1f,0x18,\r
-0x6b,0x32,0x65,0x65,0x6e,0xe4,0x93,0x55,0xff,0x00,0x62,0x7b,0x51,0xaa,0x7e,0xd9,\r
-0x36,0xcf,0x8c,0x8b,0x2d,0x16,0xfa,0xe7,0xe8,0x49,0x8a,0x3c,0xff,0x00,0xe4,0x43,\r
-0xf9,0xd1,0xad,0xbe,0xdb,0x69,0x0f,0xb1,0xad,0x6f,0xf8,0x27,0x95,0x9f,0xdb,0x3f,\r
-0x6a,0x3f,0x15,0x5e,0xe3,0x22,0xd7,0xc3,0x72,0xc5,0xbb,0xd0,0xc9,0x73,0x01,0xff,\r
-0x00,0xda,0x66,0xbe,0x63,0x21,0x8f,0xbd,0x73,0xf2,0xcc,0x8d,0x73,0xe7,0x09,0xf6,\r
-0x4c,0xfd,0x29,0xdb,0x45,0x1c,0xd1,0x5f,0x79,0x73,0xf5,0xeb,0x21,0xd4,0x51,0x49,\r
-0x48,0xa3,0xcd,0x3f,0x68,0x5f,0x18,0x9f,0x07,0xfc,0x31,0xd4,0xa4,0x85,0xf6,0x5d,\r
-0xdf,0x62,0xc6,0x03,0xe8,0x5f,0x3b,0x8f,0xe0,0x81,0x8f,0xd4,0x0a,0xf8,0xeb,0xc0,\r
-0x3e,0x1d,0x93,0xc5,0x3e,0x2c,0xd3,0x74,0xd8,0xd7,0x3e,0x6c,0xca,0x1b,0xd8,0x67,\r
-0x9a,0xf5,0x7f,0xda,0xdb,0xc6,0x1f,0xda,0xbe,0x30,0xb2,0xd0,0x61,0x7c,0xc1,0xa6,\r
-0xc3,0xe6,0x4a,0x01,0xe0,0xca,0xfe,0xbe,0xe1,0x40,0xff,0x00,0xbe,0xab,0x43,0xf6,\r
-0x4b,0xf0,0x7f,0xda,0xb5,0x7b,0xdd,0x76,0x64,0xca,0x5b,0x2f,0x97,0x11,0x3f,0xde,\r
-0x3d,0x6b,0xe0,0xb1,0xcd,0xe6,0x19,0x8c,0x68,0x2d,0x96,0x9f,0xe6,0x7c,0x06,0x2d,\r
-0xbc,0xc7,0x35,0x54,0x57,0xc3,0x1d,0x3e,0xed,0x59,0xf5,0x0e,0x9f,0x65,0x1e,0x9d,\r
-0x63,0x6f,0x6d,0x12,0x85,0x8e,0x14,0x08,0xa0,0x7a,0x01,0x8a,0xb3,0x48,0x3a,0x52,\r
-0xd7,0xde,0x24,0x92,0xb2,0x3e,0xf9,0x2b,0x2b,0x20,0xa2,0x8a,0x29,0x8c,0x2b,0xf2,\r
-0xdf,0xf6,0xd7,0xff,0x00,0x82,0x9b,0x78,0xf3,0xe1,0x1f,0xed,0x0d,0xa9,0xf8,0x43,\r
-0xe1,0xcc,0x9a,0x4b,0xe8,0xfa,0x0c,0x49,0x69,0x7d,0xfd,0xa1,0x69,0xf6,0x81,0x3d,\r
-0xe6,0x37,0x49,0x82,0x19,0x59,0x42,0x6e,0x09,0x80,0x7a,0xab,0x57,0xea,0x2c,0xb2,\r
-0xa4,0x31,0xb3,0xc8,0xea,0x88,0xa0,0x96,0x66,0x38,0x00,0x7a,0x93,0x5f,0x84,0x3f,\r
-0xf0,0x51,0x9f,0xd9,0xb7,0xc4,0x9f,0x0a,0xbe,0x3b,0xf8,0xa7,0xc5,0xe2,0xde,0x4d,\r
-0x4b,0xc1,0xbe,0x27,0xd4,0x65,0xd4,0xad,0x75,0x8b,0x71,0xbe,0x28,0xe5,0x99,0x8b,\r
-0xc9,0x04,0x84,0x67,0x63,0x2b,0xb3,0x63,0x38,0xdc,0xb8,0x23,0xb8,0x0d,0x09,0x9f,\r
-0x6d,0x7e,0xc1,0xff,0x00,0xb5,0xcf,0xc4,0xef,0xdb,0x5b,0xc4,0xde,0x24,0xd0,0xbc,\r
-0x73,0xe1,0x9f,0x07,0xcf,0xe0,0x9d,0x2e,0xc5,0x5f,0x51,0x78,0x74,0xf9,0x77,0x4d,\r
-0x2c,0x84,0x88,0x62,0xdb,0x24,0xce,0x9c,0xec,0x91,0x89,0xdb,0xc0,0x4c,0x63,0x90,\r
-0x47,0xb1,0xf8,0xbf,0xfe,0x09,0x9f,0xfb,0x3c,0xf8,0xc2,0xe9,0xae,0x64,0xf0,0x2a,\r
-0xe9,0x13,0x39,0x25,0x8e,0x91,0x79,0x35,0xb2,0x1c,0xff,0x00,0xb0,0x1b,0x68,0xfc,\r
-0x00,0xaf,0x84,0xbf,0xe0,0x93,0xbf,0xb5,0x1f,0x82,0x3e,0x09,0xea,0xfe,0x2e,0xf0,\r
-0x97,0x8d,0xb5,0x2b,0x7f,0x0f,0x45,0xe2,0x09,0x2d,0xee,0x2c,0xb5,0x6b,0xaf,0x92,\r
-0x01,0x24,0x61,0xd5,0xa2,0x96,0x4e,0x88,0x08,0x60,0x54,0x9e,0x33,0xbf,0x24,0x64,\r
-0x67,0xf5,0xef,0x4a,0xf1,0x66,0x89,0xad,0xdb,0x47,0x71,0xa7,0xeb,0x36,0x17,0xf0,\r
-0x48,0x01,0x49,0x6d,0xae,0x92,0x45,0x61,0xec,0x54,0x90,0x68,0x04,0x7c,0xe9,0xe1,\r
-0x0f,0xf8,0x26,0x9f,0xec,0xf1,0xe0,0xeb,0x85,0xb8,0x8f,0xc0,0x51,0xea,0xf3,0x29,\r
-0x05,0x5b,0x58,0xbc,0x9a,0xe5,0x47,0xfc,0x01,0x9f,0x69,0xfc,0x41,0xaf,0xa4,0x34,\r
-0x2f,0x0f,0x69,0x7e,0x18,0xd2,0xe0,0xd3,0x74,0x7d,0x3a,0xd7,0x4a,0xd3,0xe0,0x1b,\r
-0x62,0xb4,0xb2,0x85,0x61,0x89,0x07,0xa0,0x55,0x00,0x0a,0xd0,0x0c,0x18,0x02,0x08,\r
-0x20,0xf7,0x14,0x64,0x1a,0x43,0x16,0xbc,0xdb,0xe3,0xcf,0x88,0xff,0x00,0xb1,0x3c,\r
-0x0d,0x35,0xb4,0x6d,0x89,0xf5,0x17,0x16,0xeb,0x83,0xc8,0x5e,0xae,0x7e,0x98,0x18,\r
-0xff,0x00,0x81,0x0a,0xf4,0x83,0xc0,0xaf,0x99,0x7f,0x68,0x4f,0x10,0x9d,0x5f,0xc6,\r
-0x69,0xa7,0xa3,0x66,0x1d,0x3a,0x30,0x84,0x7f,0xd3,0x46,0xc3,0x37,0xe9,0xb4,0x7e,\r
-0x15,0xe0,0xe7,0x78,0x9f,0xaa,0xe0,0xa6,0xd6,0xf2,0xd1,0x7c,0xff,0x00,0xe0,0x1c,\r
-0x58,0xba,0x9e,0xce,0x93,0xf3,0x3c,0xbe,0x8a,0x28,0xaf,0xc7,0x4f,0x97,0x0a,0xf7,\r
-0x2f,0xd9,0xaf,0xc3,0xd9,0x93,0x55,0xd6,0xa4,0x5c,0xe3,0x16,0xb1,0x1f,0xfc,0x79,\r
-0xff,0x00,0xf6,0x5a,0xf0,0xda,0xfa,0xff,0x00,0xe1,0x77,0x87,0x8f,0x86,0x7c,0x0f,\r
-0xa5,0x5a,0x32,0x14,0x99,0xa2,0x13,0x4c,0x0f,0x50,0xef,0xf3,0x10,0x7e,0x99,0xc7,\r
-0xe1,0x5f,0x55,0xc3,0x98,0x6f,0x6d,0x8c,0xf6,0x8f,0x68,0x2b,0xfc,0xf6,0x47,0xa3,\r
-0x80,0xa7,0xcf,0x57,0x9b,0xb1,0xd6,0x51,0x49,0x4b,0x5f,0xab,0x1f,0x48,0x78,0x4f,\r
-0xed,0x35,0xa7,0x28,0x3a,0x1d,0xfa,0xaf,0xcc,0x7c,0xd8,0x5d,0xbd,0x7e,0xe9,0x5f,\r
-0xfd,0x9b,0xf3,0xaf,0x0a,0xaf,0xa3,0xff,0x00,0x69,0x38,0x03,0xf8,0x3a,0xc2,0x5c,\r
-0x72,0x97,0xca,0x33,0xec,0x63,0x7f,0xf0,0x15,0xf3,0x85,0x7e,0x47,0xc4,0x30,0x50,\r
-0xcc,0x26,0xd7,0x54,0x9f,0xe0,0x7c,0xce,0x39,0x5a,0xbb,0x0a,0x28,0xa2,0xbe,0x6c,\r
-0xe0,0x3e,0x92,0xfd,0x9b,0xef,0x84,0xfe,0x0c,0xbc,0xb6,0xce,0x5a,0x0b,0xc6,0xe3,\r
-0xd1,0x59,0x54,0x8f,0xd7,0x35,0xeb,0x35,0xe1,0x1f,0xb3,0x1d,0xd0,0x0d,0xe2,0x0b,\r
-0x62,0xdc,0x91,0x0c,0x8a,0xbf,0xf7,0xd8,0x27,0xf9,0x57,0xbb,0x66,0xbf,0x64,0xc9,\r
-0x6a,0x7b,0x4c,0x05,0x27,0xd9,0x5b,0xee,0x76,0x3e,0xa7,0x09,0x2e,0x6a,0x11,0x16,\r
-0x8a,0x28,0xaf,0x70,0xec,0x0a,0x28,0xa4,0x3d,0x28,0x03,0xc8,0x3f,0x69,0x0d,0x6f,\r
-0xec,0x9e,0x19,0xb1,0xd3,0x11,0x80,0x7b,0xd9,0xf7,0xb0,0xf5,0x44,0xe7,0xff,0x00,\r
-0x42,0x2b,0xf9,0x57,0xce,0x95,0xe9,0x7f,0xb4,0x06,0xb8,0x75,0x4f,0x1e,0x3d,0xa0,\r
-0x20,0xc5,0x61,0x0a,0xc2,0x30,0x73,0xf3,0x1f,0x99,0xbf,0xf4,0x20,0x3f,0x0a,0xf3,\r
-0x4a,0xfc,0x77,0x3b,0xaf,0xf5,0x8c,0x74,0xda,0xd9,0x69,0xf7,0x7f,0xc1,0x3e,0x5b,\r
-0x19,0x3e,0x7a,0xcf,0xcb,0x40,0xa2,0x8a,0x2b,0xc1,0x38,0xcf,0x55,0xfd,0x9d,0x74,\r
-0x53,0x7f,0xe3,0x2b,0x8b,0xf6,0x40,0x62,0xb1,0xb7,0x24,0x37,0xa3,0xb9,0xda,0x3f,\r
-0x40,0xf5,0xf4,0xb5,0x79,0x2f,0xec,0xe7,0xa2,0x7d,0x87,0xc1,0xf7,0x3a,0x83,0xc6,\r
-0x04,0x97,0xd7,0x07,0x6b,0xf7,0x31,0xa7,0xca,0x07,0xfd,0xf5,0xbf,0xf3,0xaf,0x5a,\r
-0xaf,0xd8,0x32,0x2a,0x1e,0xc3,0x01,0x0b,0xef,0x2d,0x7e,0xff,0x00,0xf8,0x16,0x3e,\r
-0xa3,0x07,0x0e,0x4a,0x2b,0xcf,0x50,0xa2,0x8a,0x2b,0xe8,0x0e,0xd0,0xaf,0x00,0xfd,\r
-0xa6,0xc6,0x35,0x3d,0x04,0xf6,0x30,0xcb,0xfc,0xd6,0xbd,0xfe,0xbc,0x67,0xf6,0x97,\r
-0xd2,0xbc,0xed,0x0f,0x49,0xd4,0x42,0x92,0x6d,0xe7,0x68,0x4e,0x07,0x00,0x3a,0xe7,\r
-0x27,0xf1,0x41,0xf9,0xd7,0x81,0x9e,0xc1,0xcf,0x2f,0xa8,0x97,0x93,0xfc,0x4e,0x2c,\r
-0x62,0xbd,0x09,0x1f,0x3d,0x51,0x45,0x15,0xf8,0xf1,0xf2,0xe1,0x5d,0xa7,0xc1,0xcb,\r
-0xc4,0xb1,0xf8,0x93,0xa2,0xbb,0x9c,0x2b,0xc8,0xf1,0x7e,0x2c,0x8c,0xa3,0xf5,0x22,\r
-0xb8,0xba,0xb1,0xa7,0xdf,0x4d,0xa5,0xdf,0xdb,0x5e,0x5b,0xb6,0xd9,0xed,0xe4,0x59,\r
-0x50,0xfa,0x32,0x9c,0x8f,0xe5,0x5d,0x38,0x6a,0xbe,0xc2,0xbc,0x2a,0xbf,0xb2,0xd3,\r
-0xfb,0x99,0x74,0xe5,0xc9,0x35,0x2e,0xcc,0xfb,0x88,0x52,0xd6,0x4f,0x86,0x3c,0x43,\r
-0x6d,0xe2,0x9d,0x0e,0xcf,0x53,0xb4,0x6c,0xc5,0x70,0x81,0xb6,0xe7,0x25,0x1b,0xba,\r
-0x9f,0x70,0x72,0x3f,0x0a,0xd6,0xaf,0xdd,0x21,0x38,0xce,0x2a,0x71,0x77,0x4c,0xfb,\r
-0x14,0xd3,0x57,0x41,0x45,0x14,0x55,0x8c,0x28,0xa4,0xc8,0xae,0x4f,0xe2,0x2f,0x8f,\r
-0xed,0x3c,0x07,0xa2,0xb5,0xcc,0x84,0x4b,0x7b,0x28,0x2b,0x6d,0x6d,0x9e,0x5d,0xbd,\r
-0x4f,0xfb,0x23,0xb9,0xff,0x00,0x1a,0xc6,0xb5,0x68,0x50,0xa6,0xea,0xd4,0x76,0x48,\r
-0x89,0x49,0x41,0x39,0x4b,0x63,0xcb,0x7f,0x68,0xdf,0x17,0x2d,0xc5,0xcd,0x9f,0x87,\r
-0xad,0xdf,0x3e,0x41,0x17,0x37,0x38,0xec,0xc4,0x10,0x8b,0xf9,0x12,0x7f,0x11,0x5e,\r
-0x27,0x56,0x75,0x2d,0x46,0xe3,0x56,0xbf,0x9e,0xf6,0xee,0x53,0x35,0xcc,0xee,0x64,\r
-0x91,0xcf,0x72,0x6a,0xb5,0x7e,0x2d,0x98,0x62,0xde,0x3b,0x13,0x2a,0xcf,0xae,0xde,\r
-0x9d,0x0f,0x94,0xaf,0x55,0xd6,0x9b,0x98,0x51,0x45,0x15,0xe7,0x18,0x16,0x74,0xcd,\r
-0x3e,0x6d,0x5b,0x51,0xb5,0xb2,0xb6,0x5d,0xf7,0x17,0x32,0x2c,0x51,0xa9,0xe8,0x59,\r
-0x8e,0x07,0xf3,0xaf,0xb5,0xb4,0x7d,0x3a,0x2d,0x1f,0x4a,0xb4,0xb1,0x80,0x62,0x1b,\r
-0x68,0x96,0x14,0x1e,0xca,0x00,0x1f,0xca,0xbc,0x03,0xf6,0x78,0xf0,0x69,0xd4,0x75,\r
-0xa9,0xb5,0xfb,0x84,0xff,0x00,0x47,0xb2,0x06,0x38,0x32,0x3e,0xf4,0xa4,0x72,0x7f,\r
-0x05,0x3f,0x99,0xf6,0xaf,0xa2,0x87,0x4a,0xfd,0x3b,0x86,0xb0,0x8e,0x8d,0x09,0x62,\r
-0x24,0xb5,0x9e,0xde,0x88,0xfa,0x0c,0xbe,0x97,0x2c,0x1c,0xdf,0x51,0x68,0xa4,0xcd,\r
-0x2d,0x7d,0x91,0xea,0x88,0x46,0x6b,0x33,0x5b,0xf0,0xd6,0x97,0xe2,0x2b,0x63,0x06,\r
-0xa5,0x61,0x05,0xec,0x7d,0x84,0xa8,0x09,0x1f,0x43,0xd4,0x7e,0x15,0xa9,0x45,0x4c,\r
-0xa1,0x19,0xae,0x59,0x2b,0xa1,0x34,0x9a,0xb3,0x3c,0x7b,0x5f,0xfd,0x9b,0xf4,0x8b,\r
-0xd6,0x32,0x69,0x57,0xd3,0xe9,0xac,0x4e,0x7c,0xb9,0x07,0x9d,0x18,0x1e,0x83,0x90,\r
-0x47,0xe6,0x6b,0xce,0x35,0xdf,0x81,0x3e,0x2a,0xd1,0x81,0x78,0xad,0xa2,0xd4,0xe2,\r
-0x19,0xf9,0xad,0x1f,0x2d,0x8e,0xdf,0x29,0xc1,0xfc,0xb3,0x5f,0x54,0x52,0x11,0x5f,\r
-0x3d,0x88,0xc8,0x30,0x35,0xf5,0x51,0xe5,0x7e,0x5f,0xe5,0xb1,0xc3,0x3c,0x15,0x19,\r
-0xf4,0xb7,0xa1,0xf0,0xe5,0xed,0x85,0xd6,0x9b,0x39,0x86,0xee,0xda,0x5b,0x59,0x87,\r
-0x58,0xe6,0x42,0x8d,0xf9,0x1a,0x82,0xbe,0xdb,0xd5,0xf4,0x1d,0x3f,0x5d,0xb6,0x36,\r
-0xfa,0x85,0x9c,0x37,0xb0,0x9f,0xe1,0x99,0x03,0x63,0xdc,0x7a,0x57,0x8b,0xfc,0x45,\r
-0xf8,0x03,0x1d,0xbd,0xb4,0xda,0x8f,0x86,0xb7,0xe5,0x32,0xef,0x60,0xe7,0x76,0x47,\r
-0x7d,0x84,0xf3,0x9f,0x63,0x9c,0xfa,0xf6,0xaf,0x91,0xc6,0xf0,0xe5,0x7a,0x11,0x75,\r
-0x28,0x4b,0x9d,0x2e,0x9b,0x3f,0xf8,0x27,0x9b,0x57,0x01,0x38,0x2e,0x68,0x3b,0xa3,\r
-0xc3,0x28,0xa0,0x8c,0x1c,0x74,0xa2,0xbe,0x40,0xf2,0xc2,0x8a,0x28,0xa0,0x0f,0x6f,\r
-0xfd,0x9d,0xbc,0x6b,0x22,0xdc,0xcf,0xe1,0xcb,0x99,0x0b,0x46,0xca,0x67,0xb5,0xdc,\r
-0x7e,0xe9,0x1f,0x79,0x07,0xb1,0xeb,0xf8,0x1a,0xf7,0xba,0xf8,0xf7,0xe1,0x7d,0xe3,\r
-0xd8,0xfc,0x41,0xd0,0x64,0x8c,0xe0,0xb5,0xd2,0xc6,0x7e,0x8d,0xf2,0x9f,0xd1,0x8d,\r
-0x7d,0x84,0x2b,0xf5,0x6e,0x1c,0xc4,0x4a,0xb6,0x13,0x92,0x6f,0xe1,0x76,0xf9,0x1f,\r
-0x47,0x80,0xa8,0xe7,0x4a,0xcf,0xa0,0xb4,0x51,0x45,0x7d,0x51,0xe9,0x08,0x78,0xaf,\r
-0x9f,0xbf,0x6a,0x3b,0xbd,0x96,0x51,0xc7,0x9e,0x89,0xd2,0xbe,0x81,0x35,0xf3,0x27,\r
-0xed,0x4f,0x77,0xfe,0x90,0x23,0x07,0xf8,0x45,0x78,0x59,0xd4,0xb9,0x70,0x53,0x3c,\r
-0xac,0xce,0x5c,0xb8,0x59,0xb3,0xe5,0x3f,0x11,0x3e,0xdb,0x19,0x4f,0xfb,0x26,0xbb,\r
-0xef,0xf8,0x26,0x55,0x81,0xb9,0xf8,0x97,0xf1,0x53,0x53,0xed,0x0d,0xa5,0x8d,0xb0,\r
-0x3f,0xef,0xbc,0xcd,0xff,0x00,0xb2,0x0a,0xf3,0x8f,0x16,0xc9,0xe5,0xe9,0xb3,0x9f,\r
-0x45,0xaf,0x63,0xff,0x00,0x82,0x5b,0xdb,0x16,0xb7,0xf8,0xab,0x7d,0xb7,0x89,0x35,\r
-0x1b,0x38,0x43,0x7a,0xec,0x8a,0x42,0x7f,0xf4,0x3a,0xf2,0xb2,0x28,0xe8,0xd9,0xf9,\r
-0xdf,0x0d,0x47,0x9b,0x33,0x9c,0xbb,0x44,0xfb,0xb3,0x9a,0x29,0xd4,0x57,0xd9,0x1f,\r
-0xac,0x85,0x52,0xd5,0xb5,0x28,0x74,0x9d,0x36,0xee,0xfa,0xe0,0xed,0x82,0xda,0x26,\r
-0x99,0xcf,0xfb,0x2a,0x32,0x6a,0xed,0x78,0xaf,0xed,0x53,0xe3,0x0f,0xec,0x0f,0x87,\r
-0xab,0xa5,0xc3,0x26,0xdb,0xad,0x5e,0x61,0x09,0x00,0xe0,0xf9,0x4b,0xf3,0x48,0x7e,\r
-0x9f,0x75,0x7f,0xe0,0x55,0xcd,0x89,0xac,0xb0,0xf4,0x65,0x55,0xf4,0x47,0x26,0x2e,\r
-0xba,0xc2,0xd0,0x9d,0x67,0xd1,0x1f,0x26,0x78,0x83,0x5a,0xb8,0xf1,0x6f,0x89,0x2f,\r
-0xf5,0x4b,0x8c,0xb5,0xc5,0xf5,0xc3,0x4a,0x47,0xa6,0x4f,0x03,0xf0,0x18,0x1f,0x85,\r
-0x7d,0xbd,0xf0,0x4b,0xc2,0x63,0xc2,0x3f,0x0f,0xf4,0xeb,0x76,0x4d,0xb3,0xcc,0x82,\r
-0x69,0x78,0xc7,0x26,0xbe,0x43,0xf8,0x3b,0xe1,0x46,0xf1,0x77,0x8f,0x74,0xcb,0x3d,\r
-0xbb,0xa1,0x59,0x04,0x92,0x9f,0x45,0x1c,0xd7,0xde,0xf0,0xc4,0xb0,0xc2,0x91,0xa0,\r
-0xda,0xaa,0x00,0x03,0xda,0xbe,0x4f,0x21,0xa2,0xea,0x54,0xa9,0x89,0x9f,0xa7,0xdf,\r
-0xab,0x3e,0x57,0x87,0xa8,0x39,0x73,0xe2,0xa7,0xbb,0xfe,0x99,0x25,0x14,0x56,0x47,\r
-0x8b,0xfc,0x53,0xa7,0x78,0x1f,0xc2,0x9a,0xcf,0x88,0xb5,0x79,0xbe,0xcf,0xa5,0xe9,\r
-0x36,0x73,0x5f,0x5d,0x4b,0x8c,0xec,0x8a,0x34,0x2e,0xe7,0x1d,0xf8,0x53,0x5f,0x6a,\r
-0x7d,0xa9,0xaf,0x45,0x7e,0x2d,0xcd,0xff,0x00,0x05,0x91,0xf8,0xd2,0x35,0x2b,0x86,\r
-0xb6,0xd1,0x7c,0x20,0xd6,0x2d,0x2b,0x18,0x22,0x9e,0xc2,0x7f,0x31,0x63,0x2c,0x76,\r
-0xab,0x30,0x9c,0x02,0x40,0xc0,0xce,0x2b,0xf5,0x5f,0xf6,0x6a,0xf1,0xbf,0x8a,0xfe,\r
-0x25,0x7c,0x0e,0xf0,0x8f,0x8a,0xfc,0x6b,0x65,0x63,0xa6,0xf8,0x83,0x5a,0xb3,0x5b,\r
-0xf9,0x2d,0x34,0xe4,0x74,0x8a,0x38,0xa4,0x25,0xa1,0xe1,0xd9,0x8e,0x4c,0x65,0x09,\r
-0xc9,0xea,0x48,0xa0,0x49,0xdc,0xf9,0xef,0xfe,0x0a,0xb9,0xf1,0xa3,0xfe,0x15,0x97,\r
-0xec,0xc9,0x73,0xe1,0xfb,0x39,0x8c,0x7a,0xb7,0x8c,0x6e,0x06,0x96,0x81,0x7a,0x8b,\r
-0x60,0x37,0xdc,0x1f,0xa1,0x50,0x13,0xfe,0xda,0x57,0xe2,0x00,0xd4,0x6e,0xc5,0xab,\r
-0xdb,0x0b,0xa9,0x85,0xb3,0xfd,0xe8,0x44,0x87,0x63,0x73,0x9e,0x47,0x4e,0xa2,0xbf,\r
-0xa2,0x9f,0x8f,0x5f,0xb2,0x2f,0xc3,0x3f,0xda,0x5e,0xfb,0x4b,0xbc,0xf1,0xf6,0x95,\r
-0x77,0xaa,0xcd,0xa6,0x44,0xf0,0xda,0x79,0x3a,0x8c,0xd6,0xeb,0x12,0xb1,0xcb,0x7c,\r
-0xa8,0xc0,0x12,0x48,0x19,0x24,0x67,0x81,0xe9,0x5e,0x33,0x7d,0xff,0x00,0x04,0x93,\r
-0xfd,0x9e,0xae,0xff,0x00,0xd5,0x69,0x5a,0xed,0x97,0xfd,0x70,0xd6,0x24,0x3f,0xfa,\r
-0x1e,0xea,0x62,0x6a,0xe7,0xe1,0xa7,0x34,0xf8,0x66,0x92,0xde,0x41,0x24,0x4e,0xd1,\r
-0x48,0x3a,0x32,0x1c,0x11,0xf8,0xd7,0xed,0x36,0xa9,0xff,0x00,0x04,0x70,0xf8,0x23,\r
-0x78,0xa7,0xec,0x9a,0xb7,0x8b,0xb4,0xf2,0x7b,0xa5,0xfc,0x2f,0x8f,0xfb,0xea,0x13,\r
-0x5c,0x9d,0xff,0x00,0xfc,0x11,0x47,0xe1,0xf4,0xad,0xfe,0x85,0xf1,0x0f,0xc4,0xd6,\r
-0xe3,0xd2,0xe2,0xde,0xde,0x5f,0xe4,0xab,0x4e,0xe2,0xb3,0x3f,0x28,0xad,0x3e,0x21,\r
-0xf8,0xaa,0xc3,0x02,0xd7,0xc4,0xda,0xc5,0xb6,0x3a,0x08,0x6f,0xe5,0x4c,0x7e,0x4d,\r
-0x5f,0xb1,0x9f,0xf0,0x49,0x2f,0x0c,0x78,0x9e,0x4f,0x82,0x3a,0xbf,0x8e,0x7c,0x53,\r
-0xae,0xea,0xda,0xcc,0xbe,0x20,0xbe,0xf2,0x74,0xf4,0xd4,0xef,0x25,0x9c,0x43,0x6d,\r
-0x06,0x54,0xb2,0x07,0x63,0x8d,0xf2,0x17,0xe9,0xd7,0x60,0xaf,0x36,0xbe,0xff,0x00,\r
-0x82,0x23,0xe8,0x0e,0xa7,0xec,0x9f,0x15,0xb5,0x28,0x4f,0xfd,0x36,0xd1,0xa3,0x93,\r
-0xf9,0x4c,0xb5,0xfa,0x0f,0xf0,0x97,0xe1,0xbe,0x9f,0xf0,0x87,0xe1,0x9f,0x86,0x7c,\r
-0x19,0xa5,0xb6,0xfb,0x1d,0x12,0xc2,0x2b,0x28,0xe5,0x2b,0xb4,0xc9,0xb5,0x70,0xce,\r
-0x47,0x38,0x2c,0xd9,0x63,0xcf,0x52,0x69,0x31,0xa4,0xce,0x8f,0x55,0xd4,0x62,0xd2,\r
-0x74,0xdb,0xab,0xd9,0xdb,0x6c,0x36,0xf1,0x34,0xae,0x7d,0x94,0x64,0xd7,0xc5,0x5a,\r
-0xb6,0xa5,0x2e,0xb1,0xaa,0x5d,0xdf,0x4e,0x73,0x35,0xcc,0xad,0x2b,0x7d,0x49,0xcd,\r
-0x7d,0x6b,0xf1,0x2b,0xc3,0xba,0x97,0x8a,0xfc,0x29,0x73,0xa5,0x69,0x93,0x41,0x04,\r
-0xd7,0x0c,0xa1,0xde,0x76,0x65,0x1b,0x01,0xc9,0x03,0x00,0xf2,0x70,0x07,0xd0,0x9a,\r
-0xf1,0x39,0x7f,0x67,0x2f,0x13,0xa2,0x92,0xb7,0x3a,0x6c,0x87,0xd1,0x66,0x70,0x7f,\r
-0x54,0xaf,0x85,0xe2,0x1a,0x18,0xbc,0x5c,0xe1,0x0a,0x34,0xdb,0x8a,0xd7,0x4e,0xe7,\r
-0x93,0x8e,0x85,0x5a,0x8d,0x46,0x11,0xba,0x47,0x95,0xd1,0x5e,0x87,0x3f,0xc0,0x5f,\r
-0x18,0xc2,0x7e,0x5b,0x18,0x26,0xf7,0x4b,0x84,0xfe,0xa4,0x55,0x39,0x3e,0x0a,0x78,\r
-0xd2,0x3c,0x9f,0xec,0x46,0x61,0xfe,0xcd,0xc4,0x47,0xff,0x00,0x66,0xaf,0x89,0x79,\r
-0x6e,0x36,0x3b,0xd2,0x97,0xdc,0xcf,0x25,0xd0,0xaa,0xbe,0xcb,0x32,0xfe,0x1d,0xf8,\r
-0x7b,0xfe,0x12,0x8f,0x19,0xe9,0x76,0x0c,0x81,0xe1,0x69,0x44,0x92,0x83,0xd3,0xcb,\r
-0x5f,0x99,0x87,0xe2,0x06,0x3f,0x1a,0xfb,0x1c,0x70,0x05,0x78,0xcf,0xc0,0xaf,0x87,\r
-0x5a,0x9f,0x86,0x75,0x2d,0x47,0x51,0xd6,0x2c,0x9a,0xd2,0x7d,0x82,0x08,0x55,0xc8,\r
-0x24,0x82,0x72,0xc7,0x82,0x7d,0x14,0x7e,0x75,0xec,0xd5,0xfa,0x37,0x0f,0x61,0x25,\r
-0x86,0xc2,0xb9,0x54,0x56,0x94,0x9f,0xe5,0xa2,0x3d,0xdc,0x0d,0x27,0x4e,0x9d,0xda,\r
-0xd5,0x8b,0x45,0x14,0x57,0xd4,0x9e,0x89,0xe6,0x1f,0xb4,0x3c,0x7e,0x67,0xc3,0xfc,\r
-0xff,0x00,0x72,0xee,0x36,0xfd,0x18,0x7f,0x5a,0xf9,0x8e,0xbe,0xa7,0xf8,0xf7,0x1e,\r
-0xff,0x00,0x86,0xb7,0xed,0xfd,0xc9,0x61,0x6f,0xfc,0x88,0x07,0xf5,0xaf,0x96,0x33,\r
-0x5f,0x96,0x71,0x32,0xb6,0x35,0x3f,0xee,0xaf,0xcd,0x9f,0x3b,0x98,0x2f,0xde,0xdf,\r
-0xc8,0x28,0xa2,0x8a,0xf9,0x23,0xcc,0x3d,0x5f,0xf6,0x6f,0xb9,0x31,0xf8,0xd6,0xf2,\r
-0x1c,0xe1,0x64,0xb1,0x63,0x8f,0x52,0x1d,0x3f,0xc4,0xd7,0xd2,0x63,0xad,0x7c,0xa1,\r
-0xf0,0x42,0xf1,0xad,0x3e,0x25,0x69,0x4a,0xa7,0x0b,0x30,0x96,0x26,0xfa,0x79,0x6c,\r
-0x7f,0x98,0x15,0xf5,0x78,0xaf,0xd5,0x38,0x6a,0x7c,0xd8,0x2e,0x5e,0xcd,0xff,0x00,\r
-0x99,0xf4,0x78,0x07,0x7a,0x36,0xec,0xc5,0xa2,0x8a,0x2b,0xeb,0x0f,0x48,0x2a,0x3b,\r
-0x89,0xd2,0xda,0x09,0x25,0x91,0x82,0x47,0x1a,0x96,0x66,0x27,0x80,0x00,0xe4,0xd3,\r
-0xcd,0x70,0xff,0x00,0x19,0xb5,0xcf,0xec,0x4f,0x87,0xba,0xa1,0x5c,0x79,0xb7,0x4a,\r
-0x2d,0x14,0x1e,0xfb,0xf8,0x6f,0xfc,0x77,0x71,0xfc,0x2b,0x9f,0x11,0x59,0x50,0xa3,\r
-0x3a,0xaf,0xa2,0x6c,0x89,0xcb,0x92,0x2e,0x5d,0x8f,0x96,0xb5,0xbd,0x56,0x4d,0x73,\r
-0x59,0xbe,0xd4,0x65,0x1b,0x64,0xba,0x9d,0xe6,0x2b,0xfd,0xdd,0xc4,0x9c,0x7e,0x15,\r
-0x4a,0x8a,0x2b,0xf0,0x99,0xc9,0xce,0x4e,0x4f,0x76,0x7c,0x73,0x77,0x77,0x61,0x40,\r
-0x04,0x90,0x07,0x24,0xd1,0x5d,0x17,0xc3,0xcd,0x1b,0xfb,0x7f,0xc6,0xda,0x3d,0x91,\r
-0x5d,0xc8,0xf7,0x0a,0xee,0x3d,0x51,0x7e,0x66,0xfd,0x14,0xd5,0xd1,0xa6,0xeb,0x54,\r
-0x8d,0x35,0xbb,0x69,0x0e,0x31,0x72,0x92,0x8a,0xea,0x7d,0x59,0xe0,0x9d,0x10,0x78,\r
-0x77,0xc2,0x7a,0x56,0x9e,0x17,0x6b,0x43,0x6e,0x81,0xc7,0xfb,0x64,0x65,0xbf,0x52,\r
-0x6b,0x76,0x90,0x74,0x18,0xe9,0x4b,0x5f,0xbb,0xd3,0x82,0xa7,0x05,0x05,0xb2,0x56,\r
-0x3e,0xc6,0x2b,0x95,0x24,0x82,0x8a,0x28,0xad,0x0a,0x0a,0xc0,0xf1,0xcf,0x86,0x93,\r
-0xc5,0xde,0x16,0xd4,0x34,0xb6,0x21,0x5a,0x78,0xff,0x00,0x76,0xc7,0xa2,0xc8,0x0e,\r
-0x54,0x9f,0x6c,0x81,0x5b,0xf4,0x86,0xb3,0xa9,0x08,0xd5,0x83,0x84,0xb6,0x7a,0x0a,\r
-0x49,0x49,0x38,0xbe,0xa7,0xc3,0x57,0x56,0xb2,0xd9,0x5c,0xcb,0x6f,0x3c,0x6d,0x14,\r
-0xd1,0x39,0x8d,0xd1,0x86,0x0a,0xb0,0x38,0x20,0xd4,0x55,0xf4,0x07,0xc6,0xef,0x85,\r
-0x32,0xea,0x8c,0xfe,0x20,0xd1,0xe1,0x32,0x5d,0x01,0x9b,0xab,0x64,0x1c,0xc8,0x07,\r
-0xf1,0xa8,0xee,0x40,0xea,0x3b,0x8f,0x7e,0xbf,0x3f,0xd7,0xe2,0xd9,0x86,0x06,0xa6,\r
-0x02,0xb3,0xa7,0x3d,0xba,0x3e,0xeb,0xfa,0xdc,0xf9,0x3a,0xf4,0x65,0x46,0x7c,0xac,\r
-0x28,0xa2,0x8a,0xf3,0x0e,0x73,0xb3,0xf8,0x73,0xf1,0x3a,0xfb,0xe1,0xf5,0xe3,0x04,\r
-0x43,0x77,0xa7,0x4a,0x73,0x35,0xab,0x1c,0x73,0xfd,0xe5,0x3d,0x8f,0xf3,0xfc,0xb1,\r
-0xf4,0x3f,0x86,0xbe,0x2b,0xf8,0x67,0xc4,0xd1,0x21,0x87,0x52,0x8a,0xd6,0x72,0x39,\r
-0xb7,0xbb,0x61,0x13,0x83,0xe9,0xc9,0xc1,0xfc,0x09,0xaf,0x91,0x68,0xaf,0xa1,0xcb,\r
-0xf3,0xbc,0x46,0x02,0x3e,0xcd,0x7b,0xd1,0xec,0xfa,0x7a,0x33,0xba,0x8e,0x2e,0xa5,\r
-0x15,0xcb,0xba,0x3e,0xe7,0x8e,0xe2,0x29,0x90,0x3c,0x72,0x23,0xa1,0xe8,0xca,0xc0,\r
-0x83,0x54,0xf5,0x0d,0x7f,0x4c,0xd2,0x50,0xb5,0xee,0xa1,0x6b,0x68,0xa3,0xbc,0xd3,\r
-0x2a,0xff,0x00,0x33,0x5f,0x13,0x2c,0x8e,0x83,0x0a,0xcc,0xa3,0xd8,0xe2,0x9a,0x79,\r
-0x39,0x27,0x27,0xde,0xbd,0xd7,0xc5,0x52,0xb7,0xbb,0x47,0x5f,0x5f,0xf8,0x07,0x67,\r
-0xf6,0x93,0xe9,0x1f,0xc7,0xfe,0x01,0xf4,0x6f,0x8c,0x7f,0x68,0x5d,0x2b,0x4c,0x89,\r
-0xe1,0xd0,0xe3,0x3a,0xa5,0xd9,0xc8,0x13,0x30,0x29,0x0a,0x7e,0x7c,0xb7,0xe1,0xc1,\r
-0xf5,0xaf,0x03,0xd7,0xbc,0x41,0x7f,0xe2,0x6d,0x4a,0x5b,0xfd,0x46,0xe1,0xae,0x6e,\r
-0x64,0xea,0xcd,0xd0,0x0e,0xc0,0x0e,0xc0,0x7a,0x0a,0xce,0xa2,0xbe,0x5f,0x1d,0x9a,\r
-0x62,0x71,0xef,0xf7,0xaf,0x4e,0xcb,0x63,0xce,0xad,0x88,0xa9,0x5b,0xe2,0xd8,0x28,\r
-0xa2,0x8a,0xf2,0x4e,0x60,0xad,0x8f,0x09,0xf8,0x5e,0xf7,0xc6,0x1a,0xe5,0xbe,0x9b,\r
-0x62,0x84,0xc9,0x21,0xcb,0xc8,0x47,0xcb,0x1a,0x7f,0x13,0x1f,0x61,0xfa,0x9c,0x0e,\r
-0xf4,0x78,0x5f,0xc2,0x9a,0x97,0x8c,0x35,0x44,0xb1,0xd3,0x60,0x32,0xc8,0x7e,0xfb,\r
-0x9c,0x84,0x89,0x7f,0xbc,0xc7,0xb0,0xfd,0x7d,0x33,0x5f,0x54,0x7c,0x3e,0xf8,0x7f,\r
-0x63,0xe0,0x2d,0x24,0x41,0x6e,0x04,0xd7,0x72,0x00,0x6e,0x2e,0x98,0x61,0xa4,0x3f,\r
-0xd0,0x0e,0xc2,0xbe,0x8b,0x29,0xca,0x67,0x8f,0xa8,0xa7,0x35,0x6a,0x6b,0x77,0xdf,\r
-0xc9,0x1d,0xb8,0x6c,0x34,0xab,0xca,0xef,0xe1,0x35,0xbc,0x35,0xe1,0xeb,0x5f,0x0b,\r
-0x68,0xb6,0xba,0x65,0x92,0x95,0x82,0x04,0xda,0x09,0xea,0xc7,0xbb,0x1f,0x72,0x72,\r
-0x7f,0x1a,0xd4,0x14,0x52,0xd7,0xeb,0x70,0x84,0x69,0xc5,0x46,0x2a,0xc9,0x1f,0x4e,\r
-0x92,0x4a,0xc8,0xc7,0xf1,0x4f,0x8a,0x6c,0x7c,0x21,0xa5,0x9d,0x43,0x51,0x76,0x4b,\r
-0x60,0xe9,0x19,0x28,0xbb,0x8e,0x58,0xe3,0xa7,0xb7,0x5e,0x39,0xc0,0xa9,0x74,0x3f,\r
-0x12,0x69,0x9e,0x23,0xb5,0x17,0x1a,0x6d,0xf4,0x37,0x91,0x11,0x92,0x62,0x6c,0x95,\r
-0xfa,0x8e,0xa0,0xfb,0x1a,0xf1,0xdf,0xda,0x5f,0x5d,0xf9,0x74,0x8d,0x1d,0x1b,0xae,\r
-0xeb,0xa9,0x00,0x3f,0xf0,0x15,0xff,0x00,0xd9,0xab,0xc4,0x2c,0xaf,0xee,0x74,0xeb,\r
-0x85,0x9e,0xd2,0xe2,0x5b,0x69,0xd7,0xee,0xc9,0x0b,0x94,0x61,0xf8,0x8a,0xf8,0xec,\r
-0x77,0x10,0x3c,0x16,0x32,0x54,0x79,0x79,0xa2,0xad,0xeb,0x73,0xcb,0xad,0x8d,0xf6,\r
-0x55,0x5c,0x6d,0x74,0x7d,0xc7,0x9a,0x5a,0xf9,0x63,0x44,0xf8,0xf1,0xe2,0xbd,0x1c,\r
-0x2a,0x4d,0x71,0x16,0xa7,0x10,0xfe,0x1b,0xa8,0xf2,0xd8,0xff,0x00,0x79,0x70,0x7f,\r
-0x3c,0xd7,0x6f,0xa6,0x7e,0xd3,0x36,0xcc,0x48,0xd4,0x34,0x39,0xa2,0x03,0xf8,0xad,\r
-0xa6,0x0f,0x93,0xf4,0x60,0xbf,0xce,0xbb,0xe8,0xf1,0x0e,0x06,0xaa,0xf7,0xa4,0xe2,\r
-0xfc,0xd7,0xf9,0x5c,0xda,0x18,0xea,0x32,0xdd,0xd8,0xf6,0xfc,0xd1,0x9a,0xf3,0x1b,\r
-0x0f,0xda,0x1f,0xc2,0xb7,0x6a,0x0c,0xdf,0x6d,0xb1,0x3e,0x93,0x41,0x9f,0xfd,0x00,\r
-0xb5,0x5f,0x5f,0x8e,0xbe,0x0b,0x23,0xfe,0x42,0xce,0x3e,0xb6,0xb2,0xff,0x00,0xf1,\r
-0x35,0xe9,0x47,0x33,0xc1,0x4b,0x6a,0xb1,0xfb,0xcd,0xd6,0x22,0x93,0xda,0x48,0xef,\r
-0xe9,0x1d,0x82,0xa1,0x24,0x80,0x31,0xce,0x6b,0xcd,0xaf,0xff,0x00,0x68,0x1f,0x09,\r
-0x5a,0xc2,0xcd,0x0c,0xd7,0x37,0xcc,0x3f,0x82,0x1b,0x76,0x52,0x7f,0xef,0xbd,0xa3,\r
-0xf5,0xaf,0x35,0xf1,0xe7,0xc7,0xab,0xef,0x12,0x5a,0x4d,0xa7,0xe9,0x36,0xe7,0x4c,\r
-0xb2,0x94,0x15,0x92,0x56,0x6c,0xcc,0xeb,0xe9,0xc7,0x0b,0xef,0x8c,0xfd,0x6b,0x93,\r
-0x13,0x9d,0xe0,0xa8,0x41,0xb5,0x35,0x27,0xd9,0x6a,0x67,0x53,0x17,0x4a,0x0a,0xf7,\r
-0xb9,0xe7,0xbe,0x28,0x96,0x0b,0x8f,0x12,0xea,0xd2,0xda,0xe3,0xec,0xcf,0x77,0x2b,\r
-0x45,0xb7,0xa6,0xd2,0xe4,0x8c,0x7e,0x15,0x97,0x45,0x15,0xf9,0x04,0xe5,0xcf,0x37,\r
-0x2e,0xee,0xe7,0xcb,0xb7,0x77,0x70,0xa2,0x8a,0x2a,0x04,0x75,0xff,0x00,0x08,0xf4,\r
-0xf6,0xd4,0xbe,0x22,0xe8,0x88,0x01,0xc4,0x73,0x79,0xc4,0x8e,0xc1,0x14,0xb7,0xf4,\r
-0xaf,0xae,0xc7,0x4a,0xf0,0x7f,0xd9,0xbf,0xc2,0xac,0x64,0xbe,0xf1,0x04,0xc9,0x85,\r
-0xdb,0xf6,0x6b,0x72,0x47,0x5e,0xee,0x7f,0x40,0x3f,0x3a,0xf7,0x81,0xd2,0xbf,0x57,\r
-0xe1,0xcc,0x3b,0xa3,0x82,0xe7,0x97,0xda,0x77,0xf9,0x74,0x3e,0x93,0x03,0x07,0x1a,\r
-0x57,0x7d,0x45,0xa2,0x8a,0x2b,0xea,0x4f,0x44,0x69,0xaf,0x92,0xff,0x00,0x69,0xfb,\r
-0xbf,0x33,0x5a,0x74,0xce,0x70,0xd5,0xf5,0xab,0x74,0xaf,0x8c,0x7f,0x68,0xdb,0xbf,\r
-0x3b,0xc4,0xb2,0x8c,0xff,0x00,0x19,0xaf,0x99,0xcf,0xdd,0xb0,0xb6,0xee,0xd1,0xe0,\r
-0x67,0x72,0xe5,0xc2,0x48,0xf9,0xcb,0xc7,0x32,0xec,0xd2,0x67,0x3d,0x3e,0x5a,0xfa,\r
-0x47,0xfe,0x09,0x79,0xa6,0x88,0x7e,0x0f,0xf8,0xbb,0x50,0xc7,0xcd,0x77,0xe2,0x39,\r
-0x57,0x38,0xec,0x90,0x42,0x07,0xea,0x4d,0x7c,0xc3,0xf1,0x1e,0x5f,0x2f,0x46,0x9c,\r
-0xe7,0xb1,0xfe,0x55,0xf5,0xff,0x00,0xfc,0x13,0x53,0x4f,0x36,0x9f,0xb3,0x2c,0x17,\r
-0x24,0x63,0xed,0xda,0xcd,0xf5,0xc0,0x3e,0xb8,0x93,0xcb,0xff,0x00,0xda,0x75,0x9e,\r
-0x47,0x1b,0x53,0xb9,0xf1,0xbc,0x27,0x1b,0xe2,0xeb,0xcf,0xc9,0x1f,0x55,0x51,0x45,\r
-0x15,0xf5,0x47,0xea,0x21,0x5f,0x13,0x7e,0xd3,0x3e,0x2f,0x3e,0x27,0xf8,0x9b,0x71,\r
-0x68,0x8e,0x4d,0xa6,0x92,0x9f,0x64,0x41,0xdb,0x7f,0x59,0x0f,0xe7,0x81,0xff,0x00,\r
-0x01,0xaf,0xae,0xbc,0x73,0xe2,0x68,0x7c,0x1d,0xe1,0x2d,0x57,0x59,0x9b,0x1b,0x6c,\r
-0xe0,0x69,0x14,0x1f,0xe2,0x7c,0x61,0x57,0xf1,0x62,0x07,0xe3,0x5f,0x9f,0x28,0x2e,\r
-0x75,0xcd,0x57,0x74,0x8c,0xd3,0x5d,0x5d,0xcc,0x59,0x98,0xf2,0x59,0xd9,0xb2,0x4f,\r
-0xe6,0x6b,0xe4,0xb8,0x83,0x11,0xcb,0x4e,0x34,0x23,0xbb,0xd7,0xfa,0xf9,0x9f,0x1b,\r
-0xc4,0x58,0x87,0xc9,0x0c,0x34,0x77,0x93,0xbb,0xf4,0xff,0x00,0x87,0x3e,0x96,0xfd,\r
-0x92,0x7c,0x1f,0xe4,0xd9,0xdf,0x6b,0xf2,0xa6,0x0c,0x87,0xc9,0x88,0x91,0xdb,0xb9,\r
-0xaf,0xa3,0xeb,0x97,0xf8,0x6f,0xe1,0xa4,0xf0,0x97,0x83,0x74,0xcd,0x39,0x54,0x2b,\r
-0x47,0x10,0x2f,0x8e,0xec,0x7a,0xd7,0x51,0x5e,0xde,0x5d,0x87,0xfa,0xb6,0x1a,0x14,\r
-0xfa,0xf5,0xf5,0x3e,0x8f,0x03,0x87,0x58,0x5c,0x3c,0x29,0x76,0x41,0x5f,0x0c,0x7f,\r
-0xc1,0x5c,0xbe,0x35,0x9f,0x87,0x7f,0xb3,0xbc,0x3e,0x0f,0xb2,0x9b,0xcb,0xd5,0x3c,\r
-0x65,0x75,0xf6,0x56,0xda,0xd8,0x65,0xb4,0x88,0xac,0x93,0x1f,0x70,0xc7,0xcb,0x42,\r
-0x3b,0x87,0x6f,0x4a,0xfb,0x9e,0xbf,0x23,0xff,0x00,0xe0,0xb6,0x56,0x5a,0x90,0xf8,\r
-0x89,0xf0,0xd6,0xf2,0x48,0xdc,0xe9,0x07,0x4a,0xb9,0x8a,0x17,0xc7,0xc8,0x26,0x13,\r
-0x29,0x90,0x7d,0x76,0x98,0xff,0x00,0x2a,0xf4,0xd1,0xdc,0xcf,0x86,0xbf,0x67,0xbf,\r
-0x04,0xe9,0xbf,0x12,0x7e,0x39,0x78,0x17,0xc3,0x3a,0xcd,0xe4,0x76,0x1a,0x56,0xa9,\r
-0xac,0x5b,0xdb,0x5d,0x4f,0x2b,0x05,0x51,0x19,0x71,0xb8,0x64,0xf7,0x61,0xf2,0x8f,\r
-0x72,0x2b,0xfa,0x16,0xf8,0xcd,0xf1,0x1b,0x4e,0xf8,0x1d,0xf0,0x6f,0xc5,0x1e,0x2e,\r
-0x9e,0x38,0xe3,0xb4,0xd0,0x34,0xc9,0x27,0x86,0xd9,0x70,0x81,0xdd,0x53,0x11,0x44,\r
-0xbd,0x86,0xe6,0xda,0xa0,0x7b,0xd7,0xf3,0x4e,0xac,0x51,0x83,0x29,0x2a,0xc0,0xe4,\r
-0x11,0xd4,0x57,0x5f,0xaa,0xfc,0x62,0xf1,0xde,0xbb,0xe1,0x97,0xf0,0xee,0xa7,0xe3,\r
-0x2d,0x7b,0x51,0xd0,0x5f,0x6e,0xed,0x32,0xeb,0x52,0x9a,0x5b,0x73,0xb4,0x86,0x5c,\r
-0xc6,0xcc,0x47,0x04,0x02,0x38,0xe3,0x14,0xc8,0x4e,0xc7,0x77,0xe1,0x9f,0xda,0x7f,\r
-0xe3,0xb6,0xb5,0xe2,0xab,0x6b,0x5d,0x23,0xe2,0x6f,0x8b,0x5b,0x55,0xd5,0x2f,0x16,\r
-0x28,0xa1,0x4d,0x5a,0x72,0xad,0x2c,0x8f,0x85,0x01,0x4b,0x60,0x0c,0xb7,0x40,0x31,\r
-0x5f,0xd0,0x5f,0xc3,0xcd,0x07,0x50,0xf0,0xbf,0x81,0x74,0x0d,0x27,0x55,0xd4,0xae,\r
-0x35,0x9d,0x52,0xce,0xc6,0x18,0x6f,0x35,0x0b,0xa9,0x0c,0x92,0x5c,0xcc,0x10,0x79,\r
-0x92,0x33,0x1e,0x4e,0x5b,0x26,0xbf,0x99,0xff,0x00,0x09,0xf8,0xaf,0x55,0xf0,0x37,\r
-0x89,0x34,0xed,0x7f,0x43,0xbc,0x6d,0x3f,0x58,0xd3,0xa7,0x5b,0x9b,0x5b,0xa4,0x55,\r
-0x66,0x8a,0x45,0x39,0x56,0x01,0x81,0x19,0x1e,0xe2,0xbe,0x84,0xd3,0x3f,0xe0,0xa5,\r
-0x1f,0xb4,0x76,0x95,0xf7,0x3e,0x24,0x5c,0x4e,0x3d,0x2e,0xb4,0xfb,0x49,0x7f,0xf4,\r
-0x28,0x8d,0x0c,0x69,0x9f,0xbf,0xd4,0x57,0xe1,0x66,0x99,0xff,0x00,0x05,0x62,0xfd,\r
-0xa1,0xec,0x17,0x12,0xeb,0xda,0x46,0xa1,0xef,0x73,0xa4,0x42,0x3f,0xf4,0x00,0xb5,\r
-0xbf,0x63,0xff,0x00,0x05,0x87,0xf8,0xed,0x6b,0x81,0x35,0x9f,0x84,0xaf,0x3f,0xeb,\r
-0xae,0x99,0x2a,0x9f,0xfc,0x76,0x61,0x4a,0xc5,0x5d,0x1f,0xb6,0x94,0x57,0x86,0xfe,\r
-0xc6,0x7f,0x16,0x3c,0x69,0xf1,0xc7,0xe0,0x3e,0x8b,0xe3,0x8f,0x1c,0x58,0xe9,0xba,\r
-0x6e,0xa3,0xac,0x49,0x2c,0xd6,0xb6,0xfa,0x64,0x4f,0x1c,0x7f,0x66,0x0d,0xb5,0x18,\r
-0x87,0x76,0x39,0x62,0xac,0x7a,0xe3,0x05,0x7f,0x1f,0x4a,0xf8,0xa1,0xe3,0xfd,0x3f,\r
-0xe1,0x67,0xc3,0xbf,0x12,0x78,0xbf,0x54,0x60,0x2c,0x34,0x4b,0x09,0xaf,0xa5,0x05,\r
-0xb1,0xbf,0x62,0x92,0x14,0x7b,0xb1,0xc2,0x8f,0x72,0x29,0x0c,0xea,0x28,0xaf,0xcb,\r
-0xad,0x3b,0xfe,0x0b,0x77,0x64,0x42,0x8b,0xef,0x84,0xd3,0xab,0x77,0xfb,0x3e,0xb8,\r
-0x0f,0xf3,0x80,0x57,0x61,0xa5,0x7f,0xc1,0x6a,0xfe,0x1b,0xcb,0x1e,0x75,0x2f,0x00,\r
-0x78,0xa6,0xd2,0x4f,0xee,0xda,0xbd,0xb4,0xe3,0xf3,0x69,0x13,0xf9,0x53,0xb0,0xae,\r
-0x8f,0xd1,0x5a,0x2b,0xe0,0x5b,0x4f,0xf8,0x2c,0xef,0xc1,0x89,0xb1,0xe7,0x78,0x6b,\r
-0xc6,0xb6,0xe7,0xd3,0xec,0x56,0xad,0xfc,0xae,0x2b,0xab,0xd1,0xbf,0xe0,0xad,0xdf,\r
-0xb3,0xe6,0xa6,0xa0,0xdd,0x6a,0x9a,0xee,0x90,0x7d,0x2f,0x34,0x89,0x1b,0x1f,0xf7,\r
-0xe8,0xbd,0x01,0x74,0x7d,0x9f,0x45,0x7c,0xa7,0x69,0xff,0x00,0x05,0x44,0xfd,0x9b,\r
-0x6e,0x80,0x27,0xe2,0x04,0x90,0x67,0xfe,0x7a,0xe8,0xb7,0xe3,0xf9,0x42,0x6b,0xa6,\r
-0xd2,0xff,0x00,0xe0,0xa0,0xbf,0xb3,0xce,0xae,0x14,0xc3,0xf1,0x4f,0x46,0x8b,0x77,\r
-0x41,0x74,0xb3,0x40,0x7f,0xf1,0xf4,0x14,0x87,0x73,0xe8,0x6a,0x2b,0xc9,0xf4,0xff,\r
-0x00,0xda,0xcb,0xe0,0xb6,0xa8,0xa1,0xad,0xfe,0x2b,0xf8,0x35,0x81,0xec,0xfa,0xe5,\r
-0xba,0x1f,0xc9,0x9c,0x56,0xfd,0x97,0xc7,0x5f,0x86,0xda,0x96,0x3e,0xc9,0xf1,0x07,\r
-0xc2,0xd7,0x39,0xe9,0xe5,0x6b,0x56,0xcd,0x9f,0xc9,0xe8,0x03,0xb4,0x9a,0x08,0xe7,\r
-0x52,0x92,0x22,0xc8,0x87,0xaa,0xb0,0xc8,0x3f,0x85,0x50,0x9f,0xc3,0x3a,0x3d,0xcf,\r
-0xfa,0xed,0x2e,0xce,0x5f,0xf7,0xed,0xd0,0xff,0x00,0x4a,0x76,0x9f,0xe2,0x4d,0x27,\r
-0x56,0x8c,0x49,0x63,0xa9,0xd9,0x5e,0xc6,0x79,0x0d,0x6f,0x70,0x92,0x03,0xf9,0x13,\r
-0x5a,0x0a,0xe1,0x86,0x41,0x04,0x7a,0x83,0x51,0x28,0x46,0x5f,0x12,0xb8,0x9a,0x4f,\r
-0x74,0x73,0xf3,0x7c,0x3c,0xf0,0xc5,0xc7,0x32,0x78,0x7f,0x4e,0x3f,0xf6,0xea,0x83,\r
-0xfa,0x55,0x49,0x7e,0x15,0x78,0x46,0x51,0xce,0x81,0x66,0xbf,0xee,0x47,0xb7,0xf9,\r
-0x57,0x59,0x9a,0x5a,0xc2,0x58,0x5a,0x12,0xde,0x0b,0xee,0x44,0x3a,0x70,0x7b,0xc5,\r
-0x1c,0x8e,0x9d,0xf0,0xaf,0xc2,0xfa,0x4e,0xa5,0x6f,0x7f,0x65,0xa5,0xad,0xbd,0xd4,\r
-0x0d,0xba,0x37,0x49,0x5f,0x83,0xd3,0xa6,0x71,0x5d,0x68,0xeb,0x4b,0x45,0x69,0x4e,\r
-0x8d,0x3a,0x2a,0xd4,0xe2,0x92,0xf2,0x2a,0x31,0x8c,0x34,0x8a,0xb0,0x51,0x45,0x15,\r
-0xb1,0x42,0x1a,0xe2,0x7e,0x28,0x7c,0x3c,0x9b,0xe2,0x1d,0x85,0x9d,0xaa,0x6a,0x22,\r
-0xc2,0x3b,0x79,0x0c,0xa5,0x4c,0x3e,0x66,0xf6,0xc6,0x07,0xf1,0x0c,0x63,0x27,0xd7,\r
-0xad,0x76,0xf4,0x56,0x15,0xe8,0x43,0x13,0x4d,0xd2,0xa8,0xaf,0x17,0xb9,0x13,0x82,\r
-0xa9,0x17,0x19,0x6c,0x7c,0xf5,0x37,0xec,0xcd,0xaa,0x2e,0x7c,0x9d,0x66,0xd1,0xff,\r
-0x00,0xdf,0x8d,0x97,0xfc,0x6a,0x93,0xfe,0xcd,0xbe,0x23,0x19,0xd9,0x7d,0xa6,0xb7,\r
-0xd6,0x49,0x07,0xfe,0xc9,0x5f,0x49,0x51,0x5e,0x0b,0xe1,0xdc,0xbd,0xfd,0x97,0xf7,\r
-0xb3,0x8d,0xe0,0x68,0xbe,0x9f,0x89,0xf3,0x1c,0xff,0x00,0xb3,0xbf,0x8a,0xa2,0x52,\r
-0x55,0xf4,0xf9,0x88,0xfe,0x14,0x9c,0x8f,0xe6,0xa2,0xbb,0x0f,0x83,0x7f,0x0a,0xb5,\r
-0x8f,0x0a,0x78,0x9a,0x7d,0x4b,0x57,0x82,0x38,0x55,0x20,0x31,0xc3,0xb6,0x45,0x7d,\r
-0xcc,0xc4,0x64,0xf0,0x78,0xc0,0x18,0xfc,0x6b,0xdb,0x28,0xaa,0xa1,0x90,0xe1,0x30,\r
-0xd5,0x63,0x5a,0x17,0xbc,0x7c,0xc2,0x18,0x2a,0x54,0xe4,0xa4,0xaf,0xa0,0x51,0x45,\r
-0x15,0xf4,0x67,0x78,0x51,0x45,0x14,0x00,0x51,0x45,0x14,0x00,0x87,0x9a,0xf2,0xef,\r
-0x88,0x7f,0x03,0xac,0x3c,0x55,0x24,0x97,0xda,0x63,0xa6,0x9b,0xa9,0xb6,0x59,0xb8,\r
-0xfd,0xd4,0xc7,0xd5,0x80,0xe8,0x7d,0xc7,0xe4,0x6b,0xd4,0xa8,0xae,0x4c,0x4e,0x16,\r
-0x8e,0x2e,0x1e,0xce,0xb4,0x6e,0x8c,0xea,0x53,0x8d,0x55,0xcb,0x35,0x73,0xe3,0x1f,\r
-0x13,0x78,0x1f,0x5b,0xf0,0x84,0xc5,0x35,0x4b,0x09,0x20,0x8f,0x38,0x13,0xaf,0xcd,\r
-0x13,0x7d,0x18,0x71,0xf8,0x75,0xf6,0xac,0x2a,0xfb,0x9e,0x68,0x52,0x78,0xca,0x48,\r
-0xaa,0xe8,0x78,0x2a,0xc3,0x20,0xd7,0x15,0xae,0x7c,0x18,0xf0,0x9e,0xb8,0x59,0xdf,\r
-0x4d,0x5b,0x49,0x4f,0xfc,0xb4,0xb3,0x6f,0x2b,0xf4,0x1f,0x2f,0xe9,0x5f,0x0f,0x8a,\r
-0xe1,0x79,0x5e,0xf8,0x69,0xfc,0x9f,0xf9,0xa3,0xc7,0xa9,0x97,0x3d,0xe9,0xbf,0xbc,\r
-0xf9,0x36,0x8a,0xf7,0xed,0x43,0xf6,0x65,0xb2,0x91,0x89,0xb0,0xd6,0xe7,0x85,0x7b,\r
-0x2d,0xc4,0x2b,0x27,0xea,0x0a,0xd6,0x0d,0xcf,0xec,0xd5,0xad,0x23,0x91,0x06,0xa9,\r
-0x63,0x2a,0xf6,0x32,0x07,0x43,0xfa,0x03,0x5e,0x0c,0xf2,0x2c,0xc2,0x0f,0xf8,0x77,\r
-0xf4,0x68,0xe3,0x78,0x3a,0xeb,0xec,0x9e,0x3f,0x45,0x7a,0xb1,0xfd,0x9b,0xfc,0x4b,\r
-0xda,0xf7,0x4b,0x3f,0xf6,0xd6,0x4f,0xfe,0x22,0x9e,0x9f,0xb3,0x6f,0x88,0xc9,0xf9,\r
-0xef,0xb4,0xd5,0x1e,0xd2,0x48,0x7f,0xf6,0x4a,0xc1,0x64,0xf8,0xf7,0xff,0x00,0x2e,\r
-0x99,0x1f,0x55,0xad,0xfc,0xac,0xf2,0x6a,0x2b,0xdb,0x74,0xff,0x00,0xd9,0x9a,0xe9,\r
-0xb9,0xbd,0xd7,0x22,0x8f,0xd5,0x60,0xb7,0x2f,0xfa,0x92,0x3f,0x95,0x75,0x9a,0x3f,\r
-0xec,0xf3,0xe1,0x9b,0x0c,0x35,0xdb,0x5d,0x6a,0x4c,0x3b,0x4b,0x26,0xc4,0xfc,0x97,\r
-0x07,0xf5,0xae,0xda,0x5c,0x3d,0x8f,0xa8,0xf5,0x8a,0x8f,0xab,0xff,0x00,0x2b,0x9a,\r
-0xc7,0x03,0x5a,0x5b,0xab,0x1f,0x36,0x59,0xd9,0x5c,0x6a,0x17,0x09,0x05,0xac,0x12,\r
-0xdc,0xcc,0xe7,0x0b,0x1c,0x28,0x59,0x8f,0xd0,0x0a,0xf5,0x5f,0x05,0xfe,0xcf,0x9a,\r
-0x9e,0xaa,0xd1,0xdc,0xeb,0xb2,0x7f,0x66,0x5a,0x13,0x9f,0x21,0x08,0x69,0xd8,0x7e,\r
-0xa1,0x7f,0x1c,0x9f,0x6a,0xf7,0xdd,0x1f,0xc3,0xba,0x6f,0x87,0xe1,0x31,0x69,0xd6,\r
-0x36,0xf6,0x51,0x9e,0xa2,0x18,0xc2,0xe7,0xeb,0xeb,0x5a,0x75,0xf4,0xd8,0x3e,0x19,\r
-0xa3,0x49,0xa9,0xe2,0x25,0xcc,0xfb,0x6c,0xbf,0xcd,0x9e,0x85,0x2c,0xbe,0x31,0xd6,\r
-0xa3,0xb9,0x93,0xe1,0xdf,0x0c,0xe9,0xbe,0x15,0xd3,0xd6,0xcf,0x4c,0xb5,0x4b,0x58,\r
-0x47,0x5d,0xbf,0x79,0xcf,0xab,0x1e,0xa4,0xfd,0x6b,0x54,0x74,0xa5,0xa2,0xbe,0xca,\r
-0x10,0x8d,0x38,0xa8,0xc1,0x59,0x23,0xd5,0x49,0x45,0x59,0x05,0x35,0xba,0x73,0x4e,\r
-0xa8,0x2f,0x56,0x66,0xb5,0x98,0x40,0x50,0x4f,0xb0,0xf9,0x65,0xfe,0xee,0xec,0x71,\r
-0x9f,0x6c,0xd5,0x3d,0x15,0xc6,0x7c,0x99,0xf1,0x6f,0x5d,0xfe,0xdf,0xf1,0xfe,0xab,\r
-0x32,0xb6,0xe8,0xa1,0x93,0xec,0xd1,0xf3,0x9e,0x13,0x83,0x8f,0xab,0x6e,0x3f,0x8d,\r
-0x71,0xd5,0xdd,0x6b,0xff,0x00,0x06,0x7c,0x5b,0xa3,0xb4,0x92,0x35,0x81,0xd4,0x50,\r
-0x1c,0x99,0xac,0xdb,0xcc,0x2d,0xef,0xb7,0xef,0x7e,0x95,0xc5,0xde,0xd9,0x5c,0x69,\r
-0xb3,0x18,0x6e,0xed,0xe5,0xb5,0x98,0x75,0x8e,0x64,0x28,0xdf,0x91,0xe6,0xbf,0x11,\r
-0xc6,0xd2,0xc4,0x2a,0xd3,0xa9,0x5e,0x0d,0x36,0xdb,0xd5,0x1f,0x23,0x5a,0x33,0xe7,\r
-0x72,0x92,0xdc,0x86,0x8a,0x28,0xaf,0x38,0xc0,0x28,0xa2,0x8a,0x00,0x28,0xa2,0x8a,\r
-0x00,0x28,0xa2,0xae,0xe9,0x5a,0x26,0xa1,0xae,0xcf,0xe4,0xe9,0xd6,0x53,0xde,0xcb,\r
-0xdd,0x60,0x42,0xd8,0xf7,0x38,0xe9,0xf8,0xd5,0x46,0x32,0x9b,0xe5,0x8a,0xbb,0x1a,\r
-0x4d,0xe8,0x8a,0x55,0xd4,0x78,0x03,0xc0,0x17,0xfe,0x3d,0xd5,0xd6,0xde,0xdd,0x5a,\r
-0x2b,0x38,0xc8,0x37,0x17,0x44,0x7c,0xb1,0xaf,0xa0,0xf5,0x63,0xd8,0x7f,0x4a,0xef,\r
-0xbc,0x1b,0xfb,0x3b,0xde,0xdd,0xba,0x5c,0x78,0x86,0x71,0x67,0x00,0xe4,0xda,0x40,\r
-0xc1,0xa4,0x6f,0x62,0xc3,0x81,0xf8,0x67,0xf0,0xaf,0x76,0xd1,0x74,0x5b,0x1f,0x0f,\r
-0xd8,0x47,0x65,0xa7,0xdb,0x25,0xad,0xb4,0x63,0xe5,0x44,0x1f,0xa9,0xf5,0x3e,0xe6,\r
-0xbe,0xc3,0x2c,0xe1,0xfa,0xb5,0xa4,0xaa,0x62,0x97,0x2c,0x7b,0x75,0x7f,0xe4,0x7a,\r
-0x98,0x7c,0x14,0xa4,0xd4,0xaa,0x68,0x83,0x45,0xd1,0xad,0x74,0x0d,0x32,0xdb,0x4f,\r
-0xb2,0x8c,0x45,0x6d,0x02,0x04,0x45,0xf6,0xf5,0x3e,0xa4,0xfa,0xd5,0xe1,0x4b,0x45,\r
-0x7e,0x99,0x18,0xa8,0x25,0x18,0xec,0x8f,0x7d,0x24,0x95,0x90,0x51,0x45,0x15,0x43,\r
-0x1b,0x21,0xdb,0x1b,0x1f,0x40,0x4d,0x7c,0x35,0xf1,0xd6,0xeb,0xcf,0xf1,0x4c,0xbc,\r
-0xe7,0xe6,0x26,0xbe,0xe0,0xbe,0x7f,0x2e,0xce,0x76,0x3d,0x90,0x9f,0xd2,0xbe,0x0b,\r
-0xf8,0xbb,0x38,0x9f,0xc5,0x13,0xfd,0x4f,0xf3,0xaf,0x91,0xe2,0x19,0x5a,0x9d,0x38,\r
-0xf7,0x67,0xcb,0x71,0x0c,0xad,0x86,0xb1,0xe0,0x5f,0x15,0xe7,0xf2,0xb4,0x59,0xb9,\r
-0xec,0x7f,0x95,0x7d,0xeb,0xfb,0x03,0x69,0xbf,0xd9,0xdf,0xb2,0x7f,0x81,0x7d,0x6e,\r
-0x23,0xb8,0xb9,0x38,0xff,0x00,0x6e,0xe2,0x53,0x5f,0x9f,0x7f,0x19,0x26,0x11,0xe8,\r
-0x92,0xf3,0x8f,0x94,0xff,0x00,0x2a,0xfd,0x29,0xfd,0x90,0xec,0x06,0x9b,0xfb,0x31,\r
-0x7c,0x33,0x84,0x2e,0xdc,0xe8,0x76,0xd2,0x90,0x7d,0x5d,0x77,0x9f,0xd5,0xab,0xb3,\r
-0x26,0x56,0xa2,0x78,0x1c,0x1f,0x1b,0xfb,0x79,0xf9,0xa3,0xd7,0xa8,0xa2,0x8a,0xfa,\r
-0x23,0xf4,0x83,0xe7,0x5f,0xda,0xf7,0xc6,0x0d,0x69,0xa2,0xe9,0x5e,0x1c,0x81,0xf0,\r
-0x6f,0x64,0x37,0x37,0x00,0x7f,0x71,0x3e,0xe8,0x3f,0x56,0x39,0xff,0x00,0x80,0xd7,\r
-0x94,0x7e,0xcf,0x3e,0x12,0xff,0x00,0x84,0xa3,0xe2,0x15,0xa3,0x3a,0x6e,0xb7,0xb3,\r
-0xfd,0xfb,0xfa,0x71,0xd2,0xb2,0x7e,0x36,0xf8,0xb1,0xbc,0x65,0xf1,0x33,0x5a,0xbb,\r
-0x0f,0xbe,0xda,0xde,0x53,0x67,0x6f,0xce,0x40,0x48,0xf2,0x38,0xfa,0xb6,0xe3,0xf8,\r
-0xd7,0xd0,0x7f,0xb2,0xb7,0x84,0x46,0x93,0xe1,0x29,0xf5,0x79,0x53,0x13,0xde,0xbe,\r
-0x14,0x91,0xfc,0x03,0xff,0x00,0xaf,0x5f,0x01,0xff,0x00,0x23,0x1c,0xd3,0xfb,0xa9,\r
-0xfe,0x0b,0xfc,0xd9,0xf9,0xfd,0x2f,0xf8,0x52,0xcd,0x5c,0xf7,0x8c,0x7f,0x25,0xff,\r
-0x00,0x04,0xf7,0x30,0x30,0x00,0xe9,0x4b,0x48,0x29,0x6b,0xef,0xcf,0xd0,0x02,0xbc,\r
-0xff,0x00,0xe3,0x67,0xc0,0x9f,0x05,0xfe,0xd0,0x9e,0x0c,0x97,0xc3,0x1e,0x37,0xd1,\r
-0xe3,0xd5,0xb4,0xd2,0xe2,0x58,0x9b,0x71,0x49,0xad,0xe5,0x00,0x81,0x24,0x4e,0x39,\r
-0x46,0xc1,0x23,0x8e,0xa0,0x90,0x72,0x09,0x15,0xe8,0x14,0x50,0x07,0xe6,0x47,0x8d,\r
-0x3f,0xe0,0x89,0xda,0x1d,0xc5,0xc3,0x4b,0xe1,0x5f,0x89,0xb7,0xfa,0x7c,0x1c,0x9f,\r
-0x23,0x57,0xd3,0x92,0xe5,0x87,0xfd,0xb4,0x47,0x8f,0xff,0x00,0x41,0xaf,0xcb,0x8f,\r
-0x1b,0x68,0x56,0x5e,0x17,0xf1,0x86,0xb5,0xa3,0xe9,0xda,0xb4,0x7a,0xf5,0x8e,0x9f,\r
-0x79,0x2d,0xac,0x3a,0x9c,0x31,0x98,0xe3,0xba,0x54,0x72,0xa2,0x55,0x52,0x49,0x0a,\r
-0xd8,0xc8,0xe7,0xa1,0xaf,0xe9,0x9b,0xc6,0x1a,0x1d,0xc7,0x89,0x7c,0x2b,0xac,0x69,\r
-0x16,0x9a,0x94,0xba,0x35,0xcd,0xfd,0x9c,0xb6,0xb1,0xea,0x10,0x20,0x69,0x2d,0x99,\r
-0xd0,0xa8,0x91,0x01,0xe0,0xb2,0xe7,0x23,0x3c,0x64,0x0a,0xfc,0xdd,0xd4,0x3f,0xe0,\r
-0x89,0x1a,0x41,0x95,0x5a,0xc7,0xe2,0x9d,0xea,0xc6,0x18,0x12,0x97,0x3a,0x42,0x31,\r
-0x23,0xb8,0xca,0xca,0x3f,0x95,0x3b,0x92,0xd1,0xf2,0x97,0xc2,0x7f,0xf8,0x26,0x5f,\r
-0xc6,0x3f,0x8c,0xbf,0x0d,0x34,0x4f,0x1b,0xe8,0x03,0x41,0x87,0x4b,0xd5,0xe2,0x69,\r
-0xad,0xed,0xf5,0x0b,0xd7,0x86,0xe3,0x60,0x76,0x50,0xc5,0x7c,0xb2,0x30,0xdb,0x77,\r
-0x0e,0x79,0x04,0x1a,0xd3,0xbc,0xff,0x00,0x82,0x4e,0x7e,0xd1,0x16,0xa4,0x88,0xf4,\r
-0x0d,0x1e,0xe8,0x0e,0xf0,0xeb,0x30,0x8c,0xff,0x00,0xdf,0x44,0x57,0xed,0xff,0x00,\r
-0x85,0x7c,0x35,0x63,0xe0,0xdf,0x0c,0xe9,0x3a,0x06,0x99,0x17,0x91,0xa6,0xe9,0x76,\r
-0x91,0x59,0x5a,0xc5,0x9c,0xec,0x8a,0x34,0x08,0x83,0xf2,0x51,0x5a,0xb4,0x5c,0x2c,\r
-0x8f,0xc0,0x4d,0x47,0xfe,0x09,0xa7,0xfb,0x47,0x69,0xcc,0xc0,0xfc,0x38,0x9a,0xe5,\r
-0x57,0xf8,0xad,0xb5,0x1b,0x47,0x07,0xe9,0xfb,0xdc,0x9a,0xc6,0xd1,0xbf,0x60,0x7f,\r
-0x8e,0xf7,0xde,0x25,0xd3,0x34,0xbb,0xcf,0x86,0x7e,0x20,0xb0,0x86,0xea,0xee,0x2b,\r
-0x79,0x6f,0x5e,0xd7,0x74,0x50,0x2b,0x38,0x53,0x23,0x32,0x92,0x02,0xa8,0x39,0x27,\r
-0x3d,0x05,0x7f,0x42,0x78,0xa0,0x80,0x7b,0x51,0x70,0xe5,0x46,0x2f,0x82,0xfc,0x29,\r
-0x63,0xe0,0x5f,0x07,0x68,0x9e,0x1c,0xd3,0x23,0x58,0xb4,0xfd,0x26,0xce,0x1b,0x28,\r
-0x11,0x46,0x00,0x48,0xd0,0x28,0xfd,0x05,0x7c,0x4f,0xff,0x00,0x05,0x7d,0xf8,0xb1,\r
-0x73,0xe1,0x4f,0x80,0x9a,0x6f,0x82,0x34,0xd5,0xb8,0x6b,0xef,0x15,0xde,0xff,0x00,\r
-0xa4,0x98,0x63,0x2c,0xa2,0xce,0xdf,0x6b,0xb8,0x62,0x3a,0x66,0x46,0x84,0x0f,0x50,\r
-0x1b,0xd2,0xbe,0xf3,0xa6,0xb2,0x2b,0x75,0x00,0xfd,0x45,0x22,0x8f,0xe5,0xad,0xa3,\r
-0x64,0x24,0x32,0xb2,0xe3,0xfb,0xc3,0x14,0xd1,0xcf,0x4e,0x6b,0xfa,0x8b,0xbc,0xd1,\r
-0x74,0xfd,0x42,0x33,0x1d,0xd5,0x85,0xb5,0xca,0x1e,0xab,0x34,0x2a,0xe0,0xfe,0x04,\r
-0x57,0x2d,0xab,0xfc,0x11,0xf8,0x77,0xaf,0xa9,0x5d,0x4b,0xc0,0x7e,0x19,0xbf,0x53,\r
-0xd4,0x5c,0xe9,0x16,0xf2,0x67,0xf3,0x4a,0x77,0x23,0x94,0xfe,0x67,0x71,0x9a,0x2b,\r
-0xfa,0x3a,0xba,0xfd,0x90,0x3e,0x07,0x5e,0xe7,0xcd,0xf8,0x43,0xe0,0x9c,0x9e,0xa5,\r
-0x34,0x1b,0x64,0x3f,0x98,0x41,0x5c,0xbe,0xad,0xff,0x00,0x04,0xfb,0xfd,0x9e,0xb5,\r
-0x9c,0xf9,0xdf,0x0b,0x74,0x58,0x73,0xff,0x00,0x3e,0x7e,0x6d,0xbf,0xfe,0x8b,0x75,\r
-0xc5,0x3b,0x87,0x29,0xfc,0xf6,0xd1,0x5f,0xbd,0x17,0x5f,0xf0,0x4b,0x8f,0xd9,0xb2,\r
-0xe9,0xcb,0x0f,0x01,0xcd,0x01,0x3f,0xf3,0xcb,0x5b,0xbe,0x03,0xf2,0xf3,0xab,0x9f,\r
-0xd5,0x3f,0xe0,0x92,0x1f,0xb3,0xed,0xfe,0xef,0xb3,0xe9,0xba,0xf6,0x9b,0x9e,0x9f,\r
-0x66,0xd5,0xdd,0xb1,0xff,0x00,0x7f,0x03,0x51,0x70,0xe5,0x3f,0x0d,0xe8,0xaf,0xd9,\r
-0xab,0xef,0xf8,0x23,0x0f,0xc1,0xdb,0x87,0x63,0x6d,0xe2,0x8f,0x19,0x5a,0x03,0xd1,\r
-0x7e,0xd5,0x6c,0xe0,0x7e,0x70,0x56,0x05,0xff,0x00,0xfc,0x11,0x43,0xc0,0x32,0x03,\r
-0xf6,0x2f,0x88,0x9e,0x24,0xb7,0x3d,0xbe,0xd1,0x6f,0x6f,0x2e,0x3f,0x25,0x5a,0x2e,\r
-0x1c,0xac,0xfc,0x89,0x8a,0xee,0x68,0x71,0xe5,0xcd,0x24,0x78,0xfe,0xeb,0x11,0x5a,\r
-0xf6,0x3e,0x3b,0xf1,0x2e,0x98,0x41,0xb3,0xf1,0x0e,0xab,0x69,0x8e,0x9e,0x45,0xec,\r
-0xa9,0xfc,0x9a,0xbf,0x4c,0x35,0x5f,0xf8,0x22,0x28,0x24,0xff,0x00,0x66,0x7c,0x59,\r
-0xd8,0x3b,0x0b,0xbd,0x13,0x71,0xff,0x00,0xc7,0x67,0x15,0xcd,0xde,0xff,0x00,0xc1,\r
-0x12,0xbc,0x5d,0x19,0x3f,0x64,0xf8,0x9d,0xa2,0x4e,0x3b,0x79,0xda,0x6c,0xd1,0xff,\r
-0x00,0x27,0x6a,0x05,0x66,0x7c,0x2f,0xa6,0xfe,0xd0,0x9f,0x14,0x34,0x62,0x0d,0x8f,\r
-0xc4,0x5f,0x15,0x5a,0xe3,0xa7,0x95,0xac,0xdc,0x2f,0xfe,0xcf,0x5d,0x56,0x9f,0xfb,\r
-0x6a,0xfc,0x77,0xd2,0xc0,0x16,0xff,0x00,0x15,0xfc,0x53,0x81,0xda,0x5d,0x45,0xe4,\r
-0xff,0x00,0xd0,0xb3,0x5f,0x4c,0x6a,0xdf,0xf0,0x46,0x1f,0x8b,0x96,0xc7,0xfe,0x25,\r
-0xfe,0x2c,0xf0,0x85,0xf0,0xff,0x00,0xa6,0xb3,0x5c,0xc2,0x7f,0xf4,0x4b,0x57,0x29,\r
-0x7d,0xff,0x00,0x04,0x87,0xf8,0xfd,0x68,0x48,0x8a,0x1f,0x0d,0x5e,0x81,0xde,0x1d,\r
-0x57,0x19,0xff,0x00,0xbe,0xd1,0x68,0x1d,0x99,0xe6,0x56,0x1f,0xf0,0x50,0xcf,0xda,\r
-0x23,0x4f,0x60,0x53,0xe2,0x86,0xab,0x28,0x1d,0xae,0x22,0x82,0x5f,0xfd,0x0a,0x33,\r
-0x5d,0x4e,0x9b,0xff,0x00,0x05,0x4c,0xfd,0xa3,0x34,0xec,0x67,0xc6,0x36,0x97,0x80,\r
-0x76,0xb9,0xd2,0x2d,0x9b,0x3f,0x92,0x03,0x4b,0xa9,0xff,0x00,0xc1,0x2c,0x7f,0x68,\r
-0xdd,0x3c,0x9d,0x9e,0x0d,0xb4,0xbd,0x03,0xbd,0xb6,0xb1,0x68,0x73,0xf8,0x34,0x8a,\r
-0x6b,0x8d,0xbf,0xff,0x00,0x82,0x7f,0xfe,0xd0,0xba,0x73,0xb2,0xc9,0xf0,0xb3,0x5a,\r
-0x93,0x6f,0x7b,0x7f,0x2a,0x50,0x7e,0x9b,0x5c,0xe6,0x8d,0x03,0x53,0xd5,0xac,0x7f,\r
-0xe0,0xaf,0x7f,0x1f,0x6d,0x14,0x09,0x64,0xf0,0xcd,0xe7,0xfb,0x53,0x69,0x44,0x1f,\r
-0xfc,0x72,0x45,0xae,0x9f,0x4b,0xff,0x00,0x82,0xce,0xfc,0x5e,0xb4,0x50,0x2f,0x7c,\r
-0x2f,0xe1,0x1b,0xff,0x00,0x53,0xf6,0x7b,0x88,0xcf,0xe9,0x35,0x7c,0xc5,0x7b,0xfb,\r
-0x1b,0xfc,0x73,0xd3,0xf7,0x79,0xff,0x00,0x09,0xbc,0x5c,0x02,0x8c,0x92,0x9a,0x4c,\r
-0xce,0x07,0xe2,0xaa,0x6b,0x90,0xd4,0x7e,0x0a,0xfc,0x42,0xd1,0xd9,0x96,0xfb,0xc0,\r
-0x9e,0x25,0xb4,0x2b,0xf7,0xbc,0xed,0x22,0xe1,0x71,0xf9,0xa5,0x1a,0x05,0xd9,0xf7,\r
-0xa6,0x9f,0xff,0x00,0x05,0xb3,0xf1,0x7c,0x48,0x3e,0xdd,0xf0,0xcb,0x44,0xb8,0x7f,\r
-0x5b,0x7d,0x46,0x68,0x87,0xe4,0x55,0xab,0x7f,0x4f,0xff,0x00,0x82,0xdd,0xce,0x31,\r
-0xf6,0xef,0x84,0x91,0xb7,0xa9,0xb7,0xd7,0x88,0xfd,0x0c,0x06,0xbf,0x32,0xee,0x7c,\r
-0x31,0xac,0x59,0x92,0x27,0xd2,0xaf,0x61,0x23,0xaf,0x99,0x6c,0xeb,0x8f,0xcc,0x56,\r
-0x73,0xa1,0x8d,0xb6,0xb0,0x2a,0xde,0x87,0x8a,0x34,0x0b,0xb3,0xf5,0xc7,0x4a,0xff,\r
-0x00,0x82,0xd8,0xf8,0x36,0x54,0xce,0xa5,0xf0,0xd7,0x5d,0xb6,0x6e,0xe2,0xd2,0xfa,\r
-0x19,0x87,0xfe,0x3c,0x12,0xba,0x0b,0x2f,0xf8,0x2d,0x17,0xc2,0x59,0x71,0xf6,0x9f,\r
-0x06,0xf8,0xc6,0xdc,0xfa,0xa4,0x36,0xae,0x3f,0xf4,0x78,0xaf,0xc6,0xdc,0xe7,0xbd,\r
-0x18,0x34,0x58,0x2e,0xcf,0xdb,0xbd,0x37,0xfe,0x0a,0xfd,0xf0,0x16,0xf5,0x03,0x5c,\r
-0x7f,0xc2,0x4d,0x60,0x4f,0x69,0xb4,0xb0,0xf8,0xff,0x00,0xbe,0x24,0x6a,0xe9,0xec,\r
-0xbf,0xe0,0xaa,0x5f,0xb3,0x75,0xdc,0x41,0xe4,0xf1,0xb5,0xdd,0xa3,0x1f,0xe0,0x9b,\r
-0x44,0xbd,0x24,0x7e,0x2b,0x11,0x1f,0xad,0x7e,0x0e,0xe2,0x8a,0x2c,0x1c,0xc7,0xf4,\r
-0x01,0x63,0xff,0x00,0x05,0x23,0xfd,0x9c,0x6f,0xc0,0xd9,0xf1,0x32,0xce,0x2c,0xf6,\r
-0x9e,0xc6,0xee,0x3f,0xfd,0x0a,0x21,0x5d,0x6e,0x99,0xfb,0x6a,0xfc,0x06,0xd5,0xe3,\r
-0x0f,0x07,0xc5,0xcf,0x08,0xc6,0x0f,0x6b,0xad,0x56,0x2b,0x73,0xf9,0x48,0x54,0xd7,\r
-0xf3,0xa5,0x9a,0x29,0x58,0x39,0x8f,0xe9,0x32,0xcf,0xf6,0x9c,0xf8,0x3f,0xa8,0x15,\r
-0x16,0xdf,0x15,0x3c,0x17,0x39,0x6e,0x82,0x3f,0x10,0x5a,0x1c,0xff,0x00,0xe4,0x4a,\r
-0xeb,0xb4,0xdf,0x1f,0x78,0x63,0x59,0x50,0xd6,0x1e,0x22,0xd2,0x6f,0x94,0xf2,0x0d,\r
-0xb5,0xf4,0x52,0x03,0xf9,0x31,0xaf,0xe6,0x16,0x9c,0xb2,0x32,0x10,0x55,0x8a,0x91,\r
-0xdc,0x1a,0x2c,0x1c,0xc7,0xf5,0x25,0x14,0xf1,0xcc,0x9b,0xe3,0x75,0x75,0xf5,0x52,\r
-0x08,0xa7,0xe6,0xbf,0x97,0x8b,0x7f,0x10,0xea,0xb6,0x98,0xf2,0x35,0x3b,0xc8,0x71,\r
-0xd3,0xcb,0xb8,0x75,0xc7,0xe4,0x6b,0x7b,0x4f,0xf8,0xc3,0xe3,0xcd,0x2b,0x1f,0x62,\r
-0xf1,0xb7,0x88,0xad,0x31,0xd3,0xc9,0xd5,0x67,0x4c,0x7e,0x4f,0x45,0x87,0xcc,0x7f,\r
-0x4d,0x39,0xa5,0xaf,0xe7,0x07,0x4e,0xfd,0xae,0x3e,0x35,0xe9,0x48,0xa9,0x69,0xf1,\r
-0x5b,0xc5,0xf0,0xa2,0xf0,0x17,0xfb,0x66,0x72,0x3f,0x22,0xd5,0xd1,0xe9,0xff,0x00,\r
-0xb7,0xbf,0xed,0x07,0xa6,0xe3,0xca,0xf8,0xab,0xaf,0xc9,0x8e,0xd7,0x12,0x24,0xdf,\r
-0xfa,0x1a,0x9a,0x2c,0x1c,0xc8,0xfe,0x86,0xe8,0xaf,0xc0,0xed,0x33,0xfe,0x0a,0x75,\r
-0xfb,0x46,0xe9,0x7d,0x3c,0x7c,0x2e,0x87,0xa5,0xd6,0x99,0x69,0x27,0xf3,0x8f,0x35,\r
-0xd2,0xd9,0x7f,0xc1,0x5b,0x3f,0x68,0x4b,0x5c,0x79,0xba,0xae,0x85,0x79,0xff,0x00,\r
-0x5d,0xb4,0x88,0xc6,0x7f,0xef,0x82,0xb4,0x58,0x77,0x47,0xee,0x65,0x15,0xf8,0xa9,\r
-0xa6,0xff,0x00,0xc1,0x63,0xbe,0x37,0x5a,0x11,0xf6,0xad,0x2f,0xc2,0x77,0xc3,0xbe,\r
-0xeb,0x09,0x90,0xff,0x00,0xe3,0xb3,0x0a,0xea,0xf4,0xff,0x00,0xf8,0x2d,0x67,0xc4,\r
-0x28,0x71,0xf6,0xdf,0x87,0xfe,0x1b,0xb9,0xff,0x00,0xae,0x33,0xdc,0x45,0xfc,0xd9,\r
-0xa8,0xb0,0x5d,0x1f,0xb0,0x14,0x57,0xe4,0xf5,0x8f,0xfc,0x16,0xe7,0x5b,0x56,0x1f,\r
-0x6c,0xf8,0x51,0x60,0xeb,0xdc,0xc1,0xad,0x3a,0x9f,0xd6,0x13,0x5d,0x66,0x99,0xff,\r
-0x00,0x05,0xb7,0xd0,0x5d,0x07,0xf6,0x8f,0xc2,0xdd,0x4a,0x27,0xef,0xf6,0x5d,0x56,\r
-0x37,0x1f,0xf8,0xf4,0x62,0x8b,0x05,0xd1,0xfa,0x6b,0x45,0x7e,0x77,0xd8,0xff,0x00,\r
-0xc1,0x6a,0x7e,0x18,0xc8,0x83,0xed,0x7e,0x06,0xf1,0x6c,0x12,0x1e,0xa2,0x1f,0xb2,\r
-0xc8,0x07,0xe2,0x65,0x5f,0xe5,0x5d,0x16,0x9b,0xff,0x00,0x05,0x8e,0xf8,0x23,0x76,\r
-0x07,0xda,0x74,0xaf,0x17,0x58,0x9e,0xfb,0xec,0x21,0x7c,0x7f,0xdf,0x33,0x1a,0x56,\r
-0x0b,0xa3,0xee,0xea,0x2b,0xe3,0xdd,0x33,0xfe,0x0a,0xbd,0xfb,0x3a,0xdf,0x45,0xbe,\r
-0x7f,0x12,0x6a,0xba,0x71,0xfe,0xe5,0xce,0x8d,0x72,0xc7,0xff,0x00,0x21,0xab,0x0a,\r
-0xdd,0xb2,0xff,0x00,0x82,0x9c,0x7e,0xcd,0xd7,0xcc,0x14,0x7c,0x43,0x10,0x93,0xff,\r
-0x00,0x3d,0xb4,0xab,0xd4,0xfe,0x70,0xd0,0x3b,0x9f,0x52,0xd1,0x5e,0x13,0xa6,0xfe,\r
-0xdd,0x5f,0x00,0x35,0x58,0x95,0xe2,0xf8,0xb1,0xe1,0xa8,0x81,0xed,0x75,0x77,0xe4,\r
-0x1f,0xc9,0xc0,0x35,0xbd,0x6b,0xfb,0x59,0x7c,0x14,0xbd,0x0a,0x61,0xf8,0xb5,0xe0,\r
-0xa6,0xdd,0xd0,0x1d,0x7e,0xd4,0x13,0xf8,0x17,0xa0,0x0f,0x58,0xa2,0xb8,0xed,0x33,\r
-0xe3,0x27,0x80,0xb5,0xa4,0x56,0xd3,0xfc,0x6d,0xe1,0xdb,0xd5,0x6e,0x86,0xdf,0x55,\r
-0x81,0xf3,0xf9,0x3d,0x74,0xd6,0x9a,0xb5,0x8d,0xfc,0x61,0xed,0xaf,0x2d,0xee,0x10,\r
-0xf4,0x68,0xa5,0x56,0x07,0xf1,0x06,0x80,0x2d,0xd4,0x17,0x56,0x70,0x5e,0x46,0x63,\r
-0x9e,0x08,0xe7,0x8c,0xf5,0x59,0x14,0x30,0x3f,0x81,0xa9,0x43,0x82,0x32,0x0e,0x7e,\r
-0x94,0xb9,0xa4,0xd2,0x6a,0xcc,0x37,0x39,0x4b,0xff,0x00,0x85,0x9e,0x14,0xd4,0x41,\r
-0x12,0xe8,0x56,0x6a,0x4f,0x56,0x85,0x3c,0xa3,0xf9,0xae,0x2b,0x02,0xf3,0xf6,0x7d,\r
-0xf0,0x95,0xc6,0x7c,0xb8,0x6e,0xad,0x73,0xff,0x00,0x3c,0xae,0x09,0xff,0x00,0xd0,\r
-0xb3,0x5e,0x95,0x9a,0x2b,0x86,0xa6,0x5f,0x84,0xab,0xf1,0xd2,0x8b,0xf9,0x23,0x07,\r
-0x42,0x9c,0xb7,0x8a,0x3c,0x7e,0x6f,0xd9,0xa7,0x44,0x63,0xfb,0xad,0x57,0x50,0x4f,\r
-0xf7,0xbc,0xb6,0xff,0x00,0xd9,0x45,0x56,0x6f,0xd9,0x9b,0x4f,0xcf,0xcb,0xad,0x5c,\r
-0x8f,0xac,0x4a,0x7f,0xad,0x7b,0x55,0x26,0x2b,0x8d,0xe4,0xb9,0x7b,0xff,0x00,0x97,\r
-0x4b,0xf1,0xff,0x00,0x33,0x3f,0xaa,0x50,0xfe,0x53,0xc6,0x13,0xf6,0x66,0xd3,0x54,\r
-0xfc,0xda,0xcd,0xd1,0xff,0x00,0x76,0x35,0x15,0x7e,0xd3,0xf6,0x70,0xf0,0xdc,0x0c,\r
-0x0c,0xd7,0x7a,0x85,0xcf,0xb3,0x48,0x8a,0x3f,0x45,0xaf,0x58,0xc5,0x2d,0x38,0xe4,\r
-0xd8,0x08,0xed,0x49,0x02,0xc2,0xd1,0x5f,0x64,0xe2,0x74,0xcf,0x83,0x7e,0x11,0xd2,\r
-0x88,0x29,0xa3,0xc5,0x3b,0x7a,0xdc,0xb3,0x4b,0xfa,0x31,0x22,0xba,0xfb,0x4b,0x2b,\r
-0x7b,0x08,0x56,0x1b,0x68,0x23,0x82,0x25,0xe0,0x24,0x48,0x14,0x0f,0xc0,0x54,0xf4,\r
-0x57,0xa5,0x4b,0x0f,0x46,0x82,0xb5,0x28,0x25,0xe8,0x8e,0x88,0xc2,0x30,0xf8,0x55,\r
-0x82,0x8a,0x28,0xae,0x82,0xc2,0x8a,0x28,0xa0,0x02,0x8a,0x28,0xa0,0x0c,0xef,0x10,\r
-0xcb,0xe4,0xe8,0x97,0xaf,0xe9,0x13,0x7f,0x2a,0xf8,0x0b,0xe2,0x14,0xe6,0x7f,0x11,\r
-0x5d,0x31,0xe7,0xe6,0x35,0xf7,0x7f,0x8e,0x66,0xf2,0x3c,0x2d,0xa8,0x36,0x71,0xfb,\r
-0xb2,0x2b,0xe0,0x2f,0x18,0x4b,0xe6,0xeb,0x37,0x6d,0xfe,0xd1,0xaf,0x88,0xe2,0x29,\r
-0x7b,0xf4,0xa3,0xea,0x7c,0x67,0x12,0x4a,0xd4,0xa2,0x8f,0x00,0xf8,0xed,0x75,0xe5,\r
-0x68,0x93,0x8c,0xf4,0x42,0x7f,0x4a,0xfd,0x6a,0xf8,0x37,0xa6,0xff,0x00,0x63,0x7c,\r
-0x24,0xf0,0x55,0x81,0x50,0x86,0xdb,0x45,0xb3,0x88,0xa8,0x18,0xc1,0x10,0xa0,0xaf,\r
-0xc8,0x7f,0x8e,0xbf,0xe9,0x36,0x82,0xd8,0x13,0x99,0x59,0x63,0xe3,0xfd,0xa3,0x8f,\r
-0xeb,0x5f,0xb3,0x7a,0x25,0xa8,0xb1,0xd1,0xec,0x6d,0x87,0x48,0x60,0x8e,0x31,0xf8,\r
-0x28,0x1f,0xd2,0xbd,0xcc,0xa9,0x5a,0x82,0x38,0xf8,0x3e,0x3f,0xec,0xd5,0x27,0xde,\r
-0x45,0xea,0x28,0xa2,0xbd,0xb3,0xef,0xcf,0xcd,0xfd,0x0b,0x4e,0x93,0xc4,0x1e,0x25,\r
-0x8e,0xce,0x20,0x5a,0x4b,0x8b,0x92,0xbf,0x9b,0x1a,0xfd,0x0a,0xf0,0xbe,0x8b,0x17,\r
-0x87,0xb4,0x1b,0x1d,0x3a,0x15,0xc2,0x41,0x12,0xa7,0xe3,0x8e,0x6b,0xe1,0x7f,0x80,\r
-0x9a,0xce,0x9f,0xa2,0x7c,0x4f,0x67,0xd6,0x07,0x96,0x6c,0xae,0x65,0x88,0xa3,0x8e,\r
-0x56,0x40,0xe4,0x73,0x9f,0xa5,0x7d,0xb5,0x6f,0xf1,0x0b,0x40,0xb8,0x50,0x57,0x51,\r
-0x8b,0xf1,0x35,0xf2,0x19,0x34,0x29,0xd1,0x9d,0x59,0xce,0x49,0x4a,0xf6,0xf9,0x1f,\r
-0x11,0xc3,0x2a,0x9a,0xc3,0xca,0xa4,0x9f,0xbc,0xdd,0xbe,0xe3,0xa4,0xa2,0xb1,0xe3,\r
-0xf1,0x6e,0x91,0x2f,0xdd,0xbf,0x84,0xff,0x00,0xc0,0xaa,0xd2,0x6b,0x76,0x12,0x7d,\r
-0xdb,0xc8,0x4f,0xfc,0x0c,0x57,0xd5,0xaa,0x90,0x7b,0x34,0x7d,0xaa,0x94,0x5f,0x52,\r
-0xf5,0x23,0x67,0x1c,0x75,0xf7,0xa8,0x12,0xf6,0xde,0x5f,0xb9,0x3c,0x6d,0xf4,0x61,\r
-0x52,0x89,0x50,0xf4,0x70,0x7f,0x1a,0xbb,0xa6,0x3b,0x8e,0x19,0xc0,0xc8,0xe6,0x8a,\r
-0x40,0xd9,0x1d,0x69,0x73,0x4c,0x62,0xd1,0x49,0x45,0x00,0x2d,0x14,0x51,0x40,0x05,\r
-0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x09,0x8a,0x5a,0x28,0xa0,\r
-0x02,0x8a,0x28,0xa0,0x02,0x92,0x96,0x8a,0x00,0x4c,0x0f,0x4a,0x31,0x4b,0x45,0x00,\r
-0x25,0x2d,0x14,0x50,0x01,0x45,0x14,0x50,0x03,0x1e,0x24,0x91,0x4a,0xba,0x2b,0x29,\r
-0xea,0x08,0xc8,0xac,0x4d,0x5b,0xc0,0x5e,0x19,0xd7,0xa2,0x31,0xea,0x7e,0x1d,0xd2,\r
-0x75,0x18,0xcf,0x54,0xba,0xb1,0x8a,0x50,0x7f,0x06,0x53,0x5b,0xd4,0x50,0x07,0x98,\r
-0xdf,0x7e,0xcb,0xdf,0x07,0x35,0x26,0x66,0xba,0xf8,0x51,0xe0,0xa9,0xd9,0xba,0xb3,\r
-0xf8,0x7e,0xd0,0x93,0xf8,0xf9,0x75,0x85,0xa9,0xfe,0xc5,0x1f,0x01,0xb5,0x58,0xca,\r
-0x4d,0xf0,0x8f,0xc2,0x31,0x8f,0x5b,0x6d,0x2a,0x28,0x0f,0xe7,0x18,0x53,0x5e,0xd7,\r
-0x45,0x00,0x7c,0xcb,0xa9,0x7f,0xc1,0x35,0xff,0x00,0x67,0x0d,0x53,0x3e,0x67,0xc3,\r
-0x4b,0x58,0x49,0xef,0x6d,0xa8,0x5d,0xc3,0xff,0x00,0xa0,0xca,0x2b,0x9e,0xbe,0xff,\r
-0x00,0x82,0x54,0x7e,0xce,0x37,0x6b,0x88,0xbc,0x21,0x7f,0x64,0x7f,0xbd,0x06,0xb7,\r
-0x78,0x4f,0xfe,0x3f,0x23,0x57,0xd7,0x74,0x50,0x16,0x3e,0x1b,0xd6,0x3f,0xe0,0x8f,\r
-0x5f,0x02,0xb5,0x01,0xfe,0x89,0x71,0xe2,0x9d,0x2c,0xff,0x00,0xd3,0xbe,0xa4,0x8f,\r
-0xff,0x00,0xa3,0x23,0x6a,0xe5,0xae,0xbf,0xe0,0x8a,0xff,0x00,0x0b,0x1c,0x9f,0xb3,\r
-0xf8,0xe3,0xc6,0x10,0xe7,0xa7,0x98,0xd6,0xaf,0x8f,0xca,0x11,0x5f,0xa1,0xb4,0x50,\r
-0x2b,0x23,0xf3,0x37,0x55,0xff,0x00,0x82,0x25,0x78,0x72,0x40,0xdf,0xd9,0x9f,0x14,\r
-0x35,0x4b,0x73,0xdb,0xed,0x7a,0x5c,0x72,0xe3,0xfe,0xf9,0x75,0xae,0x4e,0xef,0xfe,\r
-0x08,0x8b,0xab,0xab,0x1f,0xb2,0xfc,0x59,0xb1,0x91,0x7b,0x09,0xb4,0x37,0x53,0xf8,\r
-0xe2,0x73,0x5f,0xab,0xd4,0x50,0x16,0x47,0xe4,0x0e,0xa5,0xff,0x00,0x04,0x51,0xf8,\r
-0x81,0x10,0x3f,0x60,0xf8,0x85,0xe1,0xbb,0xa3,0xdb,0xcf,0xb7,0x9e,0x1c,0xfe,0x41,\r
-0xab,0x8f,0xd4,0xff,0x00,0xe0,0x8e,0x7f,0x1c,0x2d,0x1b,0x16,0xba,0x97,0x84,0xaf,\r
-0xc7,0xaa,0xea,0x12,0xa7,0xe8,0xd0,0xd7,0xed,0x6d,0x18,0xa7,0x70,0xb2,0x3f,0x0c,\r
-0x35,0x0f,0xf8,0x24,0xc7,0xed,0x0d,0x65,0x9f,0x2b,0x45,0xd1,0x6f,0xb1,0xff,0x00,\r
-0x3e,0xfa,0xc4,0x43,0x3f,0xf7,0xde,0xda,0xe5,0x35,0x6f,0xf8,0x26,0x9f,0xed,0x1d,\r
-0xa4,0xb1,0x07,0xe1,0xcc,0xd7,0x60,0x75,0x6b,0x5d,0x42,0xd2,0x41,0xff,0x00,0xa3,\r
-0x6b,0xf7,0xeb,0x14,0x62,0x8b,0x85,0x91,0xfc,0xf0,0x5e,0xfe,0xc2,0x3f,0xb4,0x05,\r
-0x81,0x22,0x5f,0x85,0x1e,0x22,0x6c,0x7f,0xcf,0x1b,0x71,0x2f,0xfe,0x80,0x4d,0x72,\r
-0xfa,0xa7,0xec,0xb7,0xf1,0x8b,0x46,0x62,0xb7,0x9f,0x0b,0x7c,0x5f,0x16,0x3a,0x91,\r
-0xa2,0x5c,0x38,0x1f,0x8a,0xa1,0x15,0xfd,0x23,0xd1,0x8a,0x2e,0x2b,0x1f,0xcc,0x7d,\r
-0xff,0x00,0xc2,0xef,0x19,0xe9,0x4c,0x56,0xf7,0xc2,0x5a,0xed,0x99,0x1d,0x44,0xfa,\r
-0x6c,0xc9,0x8f,0xcd,0x6b,0x02,0xe7,0x4e,0xbb,0xb3,0x62,0xb3,0xda,0xcd,0x03,0x0e,\r
-0xa2,0x48,0xca,0x91,0xf9,0x8a,0xfe,0xa3,0xf0,0x2a,0xbd,0xc6,0x99,0x67,0x76,0x8c,\r
-0x93,0xda,0xc1,0x32,0xb7,0x05,0x64,0x8c,0x30,0x3f,0x98,0xa2,0xe1,0xca,0x7f,0x2e,\r
-0x18,0xa2,0xbf,0xa6,0x6d,0x43,0xe0,0xc7,0xc3,0xed,0x58,0xb1,0xbe,0xf0,0x2f,0x86,\r
-0xaf,0x0b,0x72,0xc6,0x7d,0x22,0xdd,0xc9,0xfa,0xe5,0x2b,0x9e,0xbd,0xfd,0x95,0xbe,\r
-0x0c,0xea,0x0a,0xcb,0x3f,0xc2,0x8f,0x06,0x3e,0xee,0xa4,0x68,0x36,0xca,0x7f,0x30,\r
-0x80,0xd1,0x71,0x72,0x9f,0xcd,0xd5,0x18,0x3d,0x6b,0xfa,0x1a,0xd5,0x7f,0x60,0x8f,\r
-0xd9,0xf7,0x58,0x56,0x13,0xfc,0x29,0xd0,0x23,0xdd,0xd4,0xda,0xc4,0xd0,0x1f,0xcd,\r
-0x18,0x57,0x23,0x77,0xff,0x00,0x04,0xbb,0xfd,0x9b,0x2e,0xd9,0x9b,0xfe,0x15,0xfc,\r
-0x90,0x33,0x73,0x98,0x75,0xbb,0xf1,0xfa,0x79,0xf8,0x1f,0x95,0x3b,0x87,0x29,0xf8,\r
-0x27,0x45,0x7e,0xe5,0xeb,0x3f,0xf0,0x49,0x4f,0xd9,0xef,0x53,0x8c,0xad,0xae,0x91,\r
-0xad,0xe9,0x07,0xb3,0x5a,0x6b,0x12,0xb9,0x1f,0xf7,0xf7,0x7d,0x71,0xd7,0xbf,0xf0,\r
-0x46,0x0f,0x83,0x73,0xb9,0x6b,0x7f,0x14,0xf8,0xd6,0xdb,0x3f,0xc3,0xf6,0xcb,0x47,\r
-0x03,0xf3,0xb6,0xcf,0xeb,0x45,0xc3,0x94,0xfc,0x65,0xa2,0xbf,0x5f,0xb5,0x5f,0xf8,\r
-0x22,0x97,0xc3,0xc9,0x50,0x0d,0x37,0xe2,0x0f,0x89,0xed,0x5f,0xd6,0xea,0x1b,0x79,\r
-0xc7,0xe4,0xa8,0x95,0xc8,0xea,0x7f,0xf0,0x44,0x58,0x49,0x3f,0xd9,0xdf,0x16,0x9d,\r
-0x7d,0x05,0xd6,0x85,0x9f,0xd5,0x67,0x14,0x5c,0x56,0x67,0xe5,0x7d,0x48,0x97,0x33,\r
-0x45,0xf7,0x25,0x74,0xff,0x00,0x75,0x88,0xaf,0xd2,0x8b,0xef,0xf8,0x22,0x57,0x8a,\r
-0x63,0xcf,0xd8,0xfe,0x28,0xe9,0x13,0xfa,0x79,0xfa,0x54,0xb1,0x67,0xf2,0x91,0xab,\r
-0x95,0xd4,0xff,0x00,0xe0,0x8c,0x1f,0x16,0xad,0xc9,0xfb,0x0f,0x8b,0x3c,0x27,0x7a,\r
-0x07,0x4f,0x32,0x6b,0x88,0x89,0xff,0x00,0xc8,0x46,0x80,0xb3,0x3e,0x19,0xd3,0xfc,\r
-0x77,0xe2,0x5d,0x25,0x95,0xac,0x7c,0x43,0xaa,0xd9,0x95,0xe4,0x1b,0x7b,0xd9,0x13,\r
-0x1f,0x93,0x57,0x63,0xa7,0x7e,0xd3,0xbf,0x17,0xf4,0x95,0x55,0xb3,0xf8,0xa1,0xe2,\r
-0xfb,0x74,0x5e,0x8a,0x9a,0xdd,0xc8,0x03,0xf0,0xdf,0x5f,0x47,0x5e,0x7f,0xc1,0x20,\r
-0x7e,0x3e,0x5b,0x13,0xe5,0x8f,0x0b,0xdd,0x81,0xd3,0xc9,0xd5,0x58,0x67,0xfe,0xfa,\r
-0x8c,0x57,0x35,0xa9,0xff,0x00,0xc1,0x2b,0xff,0x00,0x68,0xcd,0x3c,0x31,0x8f,0xc2,\r
-0x16,0x77,0xd8,0xff,0x00,0x9f,0x5d,0x5e,0xd8,0xe7,0xe9,0xb9,0xd6,0x80,0xd4,0xf3,\r
-0x8b,0x4f,0xdb,0x7b,0xe3,0xdd,0x96,0x3c,0xaf,0x8b,0x3e,0x29,0x38,0xe9,0xe6,0xdf,\r
-0xb4,0x9f,0xfa,0x16,0x6b,0xa5,0xd3,0x7f,0xe0,0xa3,0xbf,0xb4,0x5e,0x99,0x81,0x1f,\r
-0xc4,0xbb,0xd9,0x80,0xed,0x73,0x69,0x6d,0x2e,0x7f,0xef,0xa8,0xcd,0x56,0xbf,0xff,\r
-0x00,0x82,0x78,0x7e,0xd1,0x3a,0x71,0x3e,0x67,0xc2,0xed,0x52,0x4c,0x7f,0xcf,0x09,\r
-0xed,0xe5,0xff,0x00,0xd0,0x64,0x35,0xcd,0x6a,0x5f,0xb1,0x97,0xc7,0x4d,0x28,0x91,\r
-0x71,0xf0,0x9f,0xc5,0x9c,0x75,0x30,0xe9,0x92,0x4a,0x3f,0x34,0x06,0x80,0xd4,0xf5,\r
-0x8b,0x2f,0xf8,0x2a,0xd7,0xed,0x17,0x68,0xa0,0x3f,0x8a,0x34,0xdb,0xac,0x77,0x9f,\r
-0x46,0xb7,0xe7,0xfe,0xf9,0x51,0x5b,0xf6,0x1f,0xf0,0x57,0xff,0x00,0x8f,0x56,0xa4,\r
-0x79,0xeb,0xe1,0x8b,0xc0,0x3a,0xf9,0xba,0x5b,0x29,0x3f,0xf7,0xcc,0x82,0xbe,0x5b,\r
-0xd4,0xfe,0x04,0xfc,0x49,0xd1,0x5c,0xa5,0xf7,0xc3,0xff,0x00,0x14,0x5a,0x30,0xea,\r
-0x25,0xd1,0xee,0x17,0xff,0x00,0x64,0xae,0x7e,0xf3,0xc1,0x5e,0x21,0xd3,0xce,0x2e,\r
-0xb4,0x1d,0x4e,0xd8,0xff,0x00,0xd3,0x6b,0x39,0x13,0xf9,0xad,0x03,0xd4,0xfb,0xcb,\r
-0x4d,0xff,0x00,0x82,0xd2,0xfc,0x51,0xb7,0x50,0x2f,0x7c,0x15,0xe1,0x5b,0xcf,0x52,\r
-0x82,0xe2,0x23,0xff,0x00,0xa3,0x0d,0x74,0x56,0x5f,0xf0,0x5b,0x5f,0x14,0x2e,0x05,\r
-0xdf,0xc3,0x0d,0x22,0x5f,0x53,0x06,0xa7,0x2a,0x7f,0x34,0x35,0xf9,0xab,0x34,0x12,\r
-0xdb,0xb6,0xd9,0x63,0x78,0x9b,0xd1,0xd4,0x83,0x4c,0xa3,0x40,0xbb,0x3f,0x54,0x74,\r
-0xbf,0xf8,0x2d,0xcd,0xbe,0x40,0xd4,0x7e,0x14,0x4a,0x07,0x73,0x6b,0xad,0x03,0xfa,\r
-0x34,0x35,0xd4,0x58,0xff,0x00,0xc1,0x6b,0xfc,0x07,0x20,0x1f,0x6c,0xf8,0x77,0xe2,\r
-0x38,0x0f,0xfd,0x30,0xb9,0xb7,0x93,0xf9,0x95,0xaf,0xc8,0x6c,0x51,0x45,0x85,0xcc,\r
-0xcf,0xd9,0x9d,0x3b,0xfe,0x0b,0x39,0xf0,0x82,0xe4,0x81,0x77,0xe1,0x8f,0x17,0xd9,\r
-0x67,0xf8,0xbe,0xcd,0x6f,0x20,0x1f,0x94,0xd5,0xd7,0x69,0xdf,0xf0,0x56,0xff,0x00,\r
-0xd9,0xf6,0xf2,0x20,0xd7,0x1a,0x96,0xbd,0xa7,0xb1,0xfe,0x19,0xf4,0x99,0x18,0x8f,\r
-0xfb,0xe0,0xb0,0xaf,0xc3,0x8a,0xb5,0xa4,0xd8,0xbe,0xa7,0xaa,0xd9,0xd9,0xc4,0xbb,\r
-0xa5,0xb8,0x99,0x21,0x50,0x3b,0x96,0x60,0x07,0xf3,0xa2,0xc3,0xb9,0xfd,0x3f,0xe8,\r
-0x3a,0xd5,0xb7,0x88,0xf4,0x4d,0x3f,0x56,0xb3,0x2e,0x6c,0xef,0xed,0xe3,0xba,0x84,\r
-0xc8,0xa5,0x58,0xa3,0xa8,0x65,0xca,0x9e,0x41,0xc1,0x1c,0x1a,0xbf,0x55,0x34,0xab,\r
-0x18,0xf4,0xcd,0x32,0xd2,0xce,0x14,0x11,0xc5,0x6f,0x0a,0x44,0x88,0x3a,0x28,0x55,\r
-0x00,0x0f,0xd2,0xad,0xd4,0x96,0x14,0x51,0x45,0x00,0x72,0x3f,0x14,0xe7,0xfb,0x3f,\r
-0x83,0x6f,0x4f,0xa8,0xc5,0x7c,0x0d,0xe2,0x29,0x37,0xdf,0xdd,0x37,0xab,0x9a,0xfb,\r
-0x9b,0xe3,0x65,0xcf,0x91,0xe0,0xc9,0x87,0xf7,0x8e,0x3f,0x4a,0xf8,0x43,0x5a,0x7d,\r
-0xd3,0x4e,0xde,0xac,0x6b,0xe0,0x33,0xe7,0x7c,0x54,0x23,0xd9,0x1f,0x01,0xc4,0xf3,\r
-0xb2,0x48,0xf1,0x4f,0x1a,0x42,0x35,0x2f,0x88,0x9e,0x12,0xb1,0x64,0xf3,0x16,0xe7,\r
-0x5a,0xb2,0x84,0xa6,0x33,0xb8,0x34,0xe8,0x08,0xfc,0x8d,0x7e,0xcc,0xa0,0x0a,0xa1,\r
-0x40,0xc0,0x1c,0x57,0xe3,0xef,0x87,0xac,0x9f,0x5c,0xfd,0xa4,0xfe,0x19,0x59,0x2f,\r
-0x3b,0xbc,0x47,0x67,0x26,0x3d,0x92,0x40,0xe7,0xff,0x00,0x40,0xaf,0xd8,0x31,0x5f,\r
-0x57,0x97,0x46,0xd4,0x11,0xd7,0xc2,0x71,0xe5,0xcb,0xef,0xdd,0xb1,0x68,0xa2,0x8a,\r
-0xf5,0x0f,0xb4,0x3f,0x3c,0xbf,0x6b,0x4f,0x07,0xde,0xfc,0x28,0xf8,0xc1,0x3e,0xbf,\r
-0x6f,0x19,0x5d,0x0b,0xc4,0x4d,0xf6,0x95,0x78,0xc6,0x04,0x73,0x80,0x04,0xaa,0x7d,\r
-0xc9,0xf9,0xff,0x00,0xe0,0x47,0xd2,0xb9,0x0d,0x2b,0xc6,0x12,0x5d,0xc4,0xaf,0x15,\r
-0xeb,0xe0,0x8e,0xcf,0x5f,0xa1,0xbf,0x13,0xfe,0x1a,0x68,0xdf,0x15,0xfc,0x21,0x77,\r
-0xe1,0xfd,0x6e,0x0f,0x36,0xda,0x61,0xba,0x39,0x57,0x1b,0xe0,0x90,0x0f,0x96,0x44,\r
-0x3d,0x88,0xcf,0xe3,0xc8,0x3c,0x1a,0xfc,0xed,0xf8,0x9f,0xfb,0x2e,0xf8,0xe3,0xe1,\r
-0x16,0xa9,0x33,0xdb,0xac,0x97,0xda,0x46,0xec,0xc3,0x7f,0x6e,0xa4,0xc6,0xc3,0x3c,\r
-0x06,0x1f,0xc2,0x7d,0x8f,0xe1,0x9a,0xf9,0x3c,0xcb,0x2d,0x84,0xe4,0xea,0x6c,0x7e,\r
-0x4f,0x9d,0xe5,0x78,0x9c,0x16,0x22,0x58,0xac,0x22,0x6e,0x13,0x77,0x69,0x74,0x66,\r
-0xfc,0x3e,0x28,0xd4,0x23,0xe6,0x3b,0xf9,0x47,0xfc,0x0e,0xaf,0x43,0xe3,0x9d,0x6e,\r
-0x1f,0xbb,0xa9,0x4b,0xf8,0xb5,0x78,0xb9,0xb9,0xf1,0x3e,0x9f,0xf2,0x4d,0x68,0x5c,\r
-0x8e,0xf8,0xe4,0xd2,0x8f,0x15,0xeb,0x11,0x7d,0xfb,0x09,0x3f,0x23,0x5f,0x35,0xf5,\r
-0x19,0xaf,0x86,0x4b,0xef,0x3c,0x48,0xe2,0x71,0xd1,0x5f,0x0c,0xbe,0xf3,0xdd,0x21,\r
-0xf8,0x9f,0xe2,0x38,0x0f,0xcb,0xa8,0xb9,0xad,0x1b,0x7f,0x8c,0xfe,0x26,0xb7,0xe9,\r
-0x7a,0xcd,0xf5,0xaf,0x9f,0x57,0xc7,0x97,0x91,0xfd,0xfb,0x49,0x57,0xf0,0x35,0x22,\r
-0x7c,0x46,0x2b,0xf7,0xe2,0x90,0x1f,0x71,0x4d,0x61,0x71,0x31,0xf8,0x64,0xfe,0xf3,\r
-0x55,0x99,0x63,0x61,0xba,0x91,0xf4,0x94,0x1f,0xb4,0x1f,0x8a,0x21,0xc7,0xef,0xf3,\r
-0xf8,0xd6,0xa5,0xbf,0xed,0x33,0xe2,0x38,0xb1,0xbc,0x96,0xc7,0xbd,0x7c,0xc2,0x9f,\r
-0x12,0x60,0xfe,0x2d,0xc3,0xf0,0xab,0x31,0xfc,0x44,0xb4,0x60,0x32,0xff,0x00,0xa5,\r
-0x5a,0x58,0xf8,0xed,0x37,0xf7,0x9b,0x47,0x3c,0xc5,0x43,0x79,0x4b,0xee,0x3e,0xa8,\r
-0xb5,0xfd,0xaa,0x75,0x98,0x88,0xf3,0x22,0xdc,0x3f,0x3a,0xd5,0xb7,0xfd,0xac,0xae,\r
-0x86,0x3c,0xcb,0x6c,0xfa,0xfc,0xa2,0xbe,0x4c,0x8f,0xc7,0x96,0x4d,0xff,0x00,0x2d,\r
-0x16,0xac,0xa7,0x8c,0xac,0x9f,0x1f,0xbd,0x43,0xf8,0xd5,0xac,0x46,0x63,0x0f,0xb4,\r
-0xcd,0xe3,0xc4,0x98,0x88,0xef,0x3f,0xc0,0xfa,0xfe,0xd7,0xf6,0xb2,0x84,0xe3,0xce,\r
-0xb6,0xff,0x00,0xc7,0x6b,0x52,0xdb,0xf6,0xab,0xd2,0xe4,0x23,0xcc,0x80,0x0f,0xc0,\r
-0xd7,0xc6,0x69,0xe2,0x8b,0x37,0xe9,0x2a,0xfe,0x06,0xa7,0x4d,0x7a,0xd5,0xfa,0x38,\r
-0x3f,0x8d,0x52,0xcc,0x73,0x18,0x6e,0xff,0x00,0x03,0xaa,0x3c,0x51,0x5b,0xf9,0x91,\r
-0xf6,0xdd,0xbf,0xed,0x3b,0xe1,0xe9,0x00,0xde,0x30,0x4f,0xfb,0x55,0xa9,0x6d,0xfb,\r
-0x43,0xf8,0x66,0x7c,0x66,0x5d,0xbf,0xf0,0x21,0x5f,0x0a,0xae,0xad,0x6e,0xdd,0x1c,\r
-0x54,0x83,0x50,0x84,0xf4,0x93,0xf5,0xad,0x16,0x73,0x8f,0x8e,0xf6,0xfb,0x8e,0xb8,\r
-0x71,0x45,0x4e,0xb6,0x3e,0xf8,0xb7,0xf8,0xdf,0xe1,0x99,0xc8,0xc5,0xd0,0x1f,0x88,\r
-0xad,0x28,0x3e,0x2a,0xf8,0x72,0x71,0x91,0x7e,0xa3,0xf2,0xaf,0xcf,0xa5,0xbf,0x51,\r
-0xf7,0x66,0x23,0xe8,0x6a,0x64,0xd4,0xe4,0x5f,0xbb,0x70,0xc3,0xfe,0x05,0x5a,0xac,\r
-0xfb,0x14,0xbe,0x28,0x2f,0xc4,0xeb,0x8f,0x13,0xcb,0xac,0x51,0xfa,0x19,0x17,0x8f,\r
-0xb4,0x29,0xbe,0xee,0xa1,0x1f,0xe7,0x57,0x23,0xf1,0x4e,0x95,0x2f,0xdd,0xbe,0x84,\r
-0xff,0x00,0xc0,0xab,0xf3,0xbe,0x3d,0x6e,0xf1,0x3e,0xe5,0xe4,0xa3,0xe8,0xf5,0x66,\r
-0x3f,0x15,0xea,0xb1,0x11,0xb7,0x50,0x9b,0xfe,0xfb,0x35,0xb2,0xe2,0x1a,0x8b,0xe2,\r
-0xa7,0xf8,0x9d,0x51,0xe2,0x58,0x3d,0xe0,0x7e,0x88,0xa6,0xb1,0x63,0x27,0xdd,0xbb,\r
-0x88,0xff,0x00,0xc0,0xc5,0x4a,0xb7,0x90,0x3f,0xdd,0x99,0x0f,0xd1,0x85,0x7e,0x7b,\r
-0x43,0xe3,0xfd,0x7a,0x2f,0xbb,0xa8,0xcb,0xf9,0xd5,0xf8,0x3e,0x2b,0x78,0x8e,0x0c,\r
-0x62,0xf9,0xcf,0xd4,0xd6,0xeb,0x88,0xa3,0xf6,0xa9,0xbf,0xbc,0xe8,0x8f,0x11,0xd0,\r
-0x7b,0xc5,0x9f,0x7f,0x09,0x14,0xff,0x00,0x10,0xfc,0xe9,0x73,0xef,0x5f,0x08,0xc1,\r
-0xf1,0xbf,0xc4,0xd0,0x7f,0xcb,0xd1,0x6f,0xc4,0xd6,0x9d,0xb7,0xed,0x11,0xe2,0x58,\r
-0x3a,0xcb,0x9f,0xf8,0x11,0xad,0xe3,0xc4,0x34,0x1e,0xf0,0x67,0x44,0x78,0x83,0x0a,\r
-0xf7,0xb9,0xf6,0xe0,0x34,0x66,0xbe,0x37,0xb6,0xfd,0xa7,0x35,0xf8,0x71,0xbf,0x2d,\r
-0xf8,0xd6,0xad,0xbf,0xed,0x57,0xaa,0x2f,0xfa,0xc8,0x49,0x1f,0x85,0x6d,0x1c,0xfb,\r
-0x08,0xf7,0xbf,0xdc,0x6f,0x1c,0xf3,0x06,0xfe,0xd1,0xf5,0x9e,0x68,0x07,0x35,0xf3,\r
-0x0d,0xbf,0xed,0x65,0x28,0xff,0x00,0x59,0x6f,0x9f,0xf8,0x0e,0x6b,0x52,0xdb,0xf6,\r
-0xb1,0xb5,0x38,0xf3,0x6d,0xc0,0xfc,0x2b,0xa2,0x39,0xd6,0x09,0xfd,0xaf,0xc0,0xe9,\r
-0x8e,0x6d,0x83,0x97,0xdb,0x3e,0x8b,0xa2,0xbc,0x26,0x0f,0xda,0xa3,0x47,0x7c,0x07,\r
-0x88,0x03,0xdf,0xad,0x6a,0x5b,0x7e,0xd2,0xde,0x1e,0x98,0x0d,0xe4,0x2f,0xfc,0x0a,\r
-0xb7,0x8e,0x6b,0x83,0x97,0xfc,0xbc,0x46,0xf1,0xc7,0xe1,0xa5,0xb4,0xd1,0xec,0x54,\r
-0x57,0x98,0xdb,0xfe,0xd0,0x3e,0x19,0x9f,0xfe,0x5b,0x05,0xff,0x00,0x81,0x56,0x9c,\r
-0x1f,0x19,0xfc,0x35,0x36,0x3f,0xd3,0x00,0xfc,0x45,0x74,0x47,0x1d,0x86,0x96,0xd5,\r
-0x17,0xde,0x6e,0xb1,0x34,0x65,0xb4,0xd1,0xdd,0xd1,0x5c,0xa4,0x1f,0x13,0xfc,0x3d,\r
-0x38,0x18,0xbe,0x41,0xf5,0x35,0x76,0x2f,0x1c,0xe8,0x93,0x7d,0xdb,0xf8,0x8f,0xe3,\r
-0x5b,0x2c,0x45,0x29,0x6d,0x25,0xf7,0x9a,0x2a,0xb4,0xde,0xd2,0x46,0xf5,0x15,0x97,\r
-0x1f,0x89,0x74,0xc9,0x47,0xcb,0x7d,0x09,0xff,0x00,0x81,0x55,0x94,0xd5,0xac,0xe4,\r
-0xfb,0xb7,0x51,0x1f,0xf8,0x10,0xad,0x54,0xe2,0xf6,0x65,0xa9,0x27,0xb3,0x2d,0xd1,\r
-0x51,0x0b,0xa8,0x5b,0xa4,0xa8,0x7f,0xe0,0x42,0x9e,0x1d,0x58,0x64,0x10,0x7e,0x86,\r
-0xaa,0xe8,0xab,0x8e,0xa2,0x93,0x34,0x66,0x98,0x0b,0x45,0x26,0x45,0x19,0xa0,0x05,\r
-0xa2,0x93,0x34,0xb4,0x00,0x51,0x45,0x14,0x00,0x51,0x45,0x14,0x00,0x51,0x45,0x14,\r
-0x00,0x51,0x45,0x14,0x00,0x51,0x45,0x14,0x00,0x51,0x45,0x14,0x00,0x51,0x45,0x14,\r
-0x00,0x51,0x45,0x14,0x00,0x94,0x6d,0x06,0x96,0x8a,0x00,0x4c,0x51,0x8a,0x5a,0x28,\r
-0x01,0x31,0x4d,0x31,0xa1,0x04,0x15,0x04,0x1e,0xb9,0x14,0xfa,0x28,0x03,0x1e,0xfb,\r
-0xc1,0xba,0x06,0xa9,0x9f,0xb6,0x68,0x7a,0x6d,0xde,0x7a,0xf9,0xf6,0x91,0xbe,0x7f,\r
-0x31,0x5c,0xe5,0xf7,0xc0,0x6f,0x86,0x7a,0x9e,0xef,0xb5,0xfc,0x3c,0xf0,0xad,0xc9,\r
-0x6e,0xa6,0x5d,0x16,0xd9,0x89,0xfc,0x4a,0x57,0x77,0x45,0x00,0x78,0xd6,0xa9,0xfb,\r
-0x1a,0x7c,0x0b,0xd6,0x15,0xc5,0xcf,0xc2,0x6f,0x09,0x12,0xfd,0x5a,0x2d,0x2a,0x28,\r
-0x9b,0xfe,0xfa,0x40,0x08,0xae,0x2e,0xfb,0xfe,0x09,0xb1,0xfb,0x37,0x5f,0xbb,0xb4,\r
-0x9f,0x0c,0xad,0x23,0x2d,0xd7,0xc8,0xd4,0x6f,0x22,0x03,0xe8,0x16,0x60,0x05,0x7d,\r
-0x33,0x45,0x00,0x7c,0x97,0x7f,0xff,0x00,0x04,0xb0,0xfd,0x9b,0xaf,0x22,0x65,0x8f,\r
-0xc1,0x17,0x56,0x6c,0x7f,0x8e,0x0d,0x6e,0xf4,0x91,0xff,0x00,0x7d,0x4a,0xc3,0xf4,\r
-0xac,0x5d,0x0f,0xfe,0x09,0x3f,0xf0,0x43,0xc3,0x5e,0x2b,0xd2,0x3c,0x41,0xa7,0x37,\r
-0x89,0x21,0xba,0xd2,0xef,0x61,0xbe,0x86,0x17,0xd4,0x52,0x48,0x59,0xe3,0x70,0xe1,\r
-0x58,0x34,0x44,0x95,0x25,0x40,0x23,0x3d,0x3b,0xd7,0xd9,0xd4,0x50,0x2b,0x05,0x14,\r
-0x51,0x40,0xc2,0x8a,0x28,0xa0,0x0f,0x29,0xfd,0xa1,0x2e,0x7c,0x9f,0x0a,0x05,0xce,\r
-0x32,0x58,0xfe,0x95,0xf0,0xf6,0xaa,0xfc,0x48,0x7d,0xcd,0x7d,0x97,0xfb,0x4b,0xdc,\r
-0xf9,0x7a,0x24,0x29,0x9f,0xe1,0x3c,0x57,0xc5,0xda,0xb3,0xe2,0x27,0x3f,0x5a,0xfc,\r
-0xeb,0x38,0x7c,0xd8,0xfb,0x76,0x48,0xfc,0xd3,0x8a,0x27,0xef,0xdb,0xc8,0xe4,0x3e,\r
-0x04,0xda,0x0d,0x63,0xf6,0xc8,0xf8,0x6d,0x01,0xc9,0xf2,0xaf,0xe6,0xb9,0xe3,0xfe,\r
-0x99,0xdb,0xca,0xc3,0xf9,0x57,0xeb,0x58,0xaf,0xcb,0x1f,0xd8,0xe7,0x4f,0x6d,0x5f,\r
-0xf6,0xce,0xd0,0xa5,0x03,0x29,0x61,0xa7,0xdf,0x5d,0x37,0xb0,0xf2,0xbc,0xb1,0xfa,\r
-0xc8,0x2b,0xf5,0x38,0x77,0xaf,0xb7,0xc1,0xab,0x51,0x47,0xd1,0xf0,0xd4,0x39,0x32,\r
-0xca,0x7e,0x62,0xd1,0x45,0x15,0xdc,0x7d,0x40,0x98,0xa6,0xc9,0x0a,0x4a,0xa5,0x5d,\r
-0x43,0xa1,0xe0,0xab,0x0c,0x83,0x4f,0xa2,0x80,0x38,0xad,0x6b,0xe0,0xcf,0x83,0x35,\r
-0xf9,0x1a,0x4b,0xbd,0x02,0xd7,0xcc,0x61,0x82,0xd0,0x83,0x17,0xe8,0xa4,0x0a,0xe5,\r
-0xaf,0x7f,0x65,0x8f,0x01,0x5d,0x9c,0xad,0x95,0xc5,0xbf,0xb4,0x53,0x7f,0xf1,0x40,\r
-0xd7,0xaf,0x51,0x5c,0xd2,0xc3,0x51,0x96,0xf0,0x47,0x24,0xb0,0x98,0x79,0xbb,0xca,\r
-0x9a,0xfb,0x8f,0x09,0xba,0xfd,0x8f,0x3c,0x13,0x36,0x4a,0x4d,0xa8,0x46,0x7d,0xdd,\r
-0x08,0xff,0x00,0xd0,0x2b,0x02,0xff,0x00,0xf6,0x26,0xd0,0x27,0xcf,0xd9,0xf5,0x69,\r
-0x22,0x3f,0xf4,0xd2,0xdc,0x3f,0xf2,0x61,0x5f,0x4a,0x51,0xf8,0xd6,0x4f,0x03,0x87,\r
-0x7f,0x60,0xe7,0x79,0x6e,0x16,0x5f,0x63,0xf3,0x3e,0x50,0xbc,0xfd,0x84,0xec,0x64,\r
-0xe6,0x2d,0x6a,0x17,0x3f,0xed,0xda,0x95,0xff,0x00,0xd9,0x8d,0x73,0xd7,0xdf,0xb0,\r
-0x65,0xd9,0x62,0x20,0xbb,0xd3,0x5c,0x76,0x2c,0x59,0x4f,0xfe,0x81,0x5f,0x68,0x62,\r
-0x8c,0x56,0x4f,0x2e,0xa0,0xfa,0x3f,0xbd,0x98,0xbc,0xa7,0x0a,0xfe,0xcb,0xfb,0xd9,\r
-0xf0,0x8d,0xe7,0xec,0x1d,0xae,0x2a,0xb1,0x8d,0x6c,0x65,0x3d,0x82,0x4d,0x8c,0xfe,\r
-0x78,0xae,0x7a,0xfb,0xf6,0x20,0xf1,0x54,0x07,0xe4,0xd3,0x0b,0x0f,0xfa,0x67,0x70,\r
-0x87,0xff,0x00,0x66,0xaf,0xd0,0xfc,0x51,0x8a,0x87,0x96,0xd3,0xe9,0x27,0xf7,0x9c,\r
-0xf2,0xc8,0xf0,0xb2,0xef,0xf8,0x7f,0x91,0xf9,0xa7,0x7b,0xfb,0x1f,0x78,0xc6,0xd4,\r
-0x90,0xba,0x46,0xa0,0x4f,0xfb,0x1f,0x30,0xfd,0x2b,0x0a,0xef,0xf6,0x69,0xf1,0x85,\r
-0x91,0x3b,0xb4,0xed,0x4e,0x3c,0x7a,0xdb,0xb7,0xf8,0x57,0xea,0x4e,0x29,0x0a,0xe6,\r
-0xa1,0xe5,0xab,0xa4,0xdf,0xe0,0x72,0xcb,0x87,0x70,0xd2,0xeb,0xf8,0x23,0xf2,0x7a,\r
-0xef,0xe0,0xd7,0x8a,0x6c,0x72,0x59,0x6e,0xa3,0x03,0xfb,0xf1,0x11,0x59,0xef,0xe0,\r
-0x3f,0x13,0xdb,0x74,0x91,0xce,0x3d,0x54,0xd7,0xeb,0x83,0x44,0xae,0x30,0xc0,0x11,\r
-0xe8,0x45,0x55,0x9f,0x45,0xb0,0xba,0xff,0x00,0x5d,0x65,0x6f,0x30,0xff,0x00,0x6e,\r
-0x25,0x3f,0xd2,0xb2,0x79,0x6c,0xba,0x4f,0xf0,0x38,0xe5,0xc2,0xf8,0x79,0x76,0xfb,\r
-0xbf,0xe0,0x9f,0x92,0x6d,0xa0,0x78,0xaa,0xdf,0xdf,0xeb,0x9a,0x88,0xa7,0x8a,0x2d,\r
-0xfe,0xf4,0x3b,0xbe,0x86,0xbf,0x57,0xee,0x3c,0x03,0xe1,0xbb,0xa0,0x7c,0xdd,0x07,\r
-0x4d,0x7c,0xf7,0x36,0xa9,0xfe,0x15,0x97,0x73,0xf0,0x6f,0xc1,0x77,0x79,0xf3,0x3c,\r
-0x3b,0x67,0xff,0x00,0x00,0x52,0x9f,0xc8,0x8a,0xc9,0xe5,0xb5,0x3b,0xa6,0x72,0x4b,\r
-0x84,0xe9,0x74,0xb7,0xe2,0x8f,0xcb,0x31,0xaa,0xf8,0x8a,0x0f,0xbf,0x68,0xc6,0x94,\r
-0x78,0xab,0x58,0x8b,0xef,0xd8,0xcb,0xc7,0xfb,0x26,0xbf,0x4d,0xae,0x7f,0x67,0x8f,\r
-0x00,0xdd,0x67,0x3a,0x12,0x46,0x4f,0x74,0x99,0xff,0x00,0xf8,0xaa,0xc5,0xbb,0xfd,\r
-0x94,0xfc,0x09,0x75,0x9d,0xb6,0xf7,0x70,0x67,0xfe,0x79,0xca,0xbf,0xd5,0x4d,0x63,\r
-0x2c,0xb2,0xa7,0xf2,0xc5,0x9c,0xb2,0xe1,0x37,0xd3,0xff,0x00,0x4a,0x67,0xe7,0x32,\r
-0xf8,0xee,0xf6,0x3f,0xbf,0x6b,0x28,0xfc,0x0d,0x4c,0x9f,0x11,0x4a,0x9f,0x9e,0x17,\r
-0x1f,0x85,0x7d,0xf7,0x79,0xfb,0x1c,0x78,0x36,0x7f,0xf5,0x37,0x57,0xd1,0x1f,0xf6,\r
-0x8a,0x37,0xfe,0xca,0x2b,0x02,0xf3,0xf6,0x22,0xd1,0x26,0x72,0x62,0xd6,0x9d,0x17,\r
-0xd1,0xed,0x43,0x1f,0xcf,0x78,0xac,0x1e,0x59,0x3e,0xb4,0x97,0xde,0x73,0x4b,0x85,\r
-0xab,0xaf,0x86,0xff,0x00,0x7a,0x3e,0x2b,0x4f,0x89,0x10,0xff,0x00,0x10,0x65,0xfa,\r
-0x8a,0xb1,0x1f,0xc4,0x4b,0x46,0xea,0xf8,0xaf,0xac,0x2f,0x7f,0x61,0x2b,0x49,0x01,\r
-0xf2,0x35,0x88,0x1d,0xbb,0x09,0x2d,0x8a,0xff,0x00,0x53,0x5c,0xf5,0xe7,0xec,0x19,\r
-0xa8,0x1f,0xf5,0x77,0x5a,0x63,0x8f,0xf7,0x98,0x7f,0xec,0xb5,0x83,0xcb,0x5f,0x5a,\r
-0x4c,0xe7,0x97,0x0e,0xe2,0xe3,0xb3,0x97,0xe0,0xcf,0x9e,0xa3,0xf1,0xed,0x9b,0xff,\r
-0x00,0xcb,0x45,0x15,0x66,0x3f,0x19,0xd9,0x3f,0xfc,0xb5,0x4f,0xce,0xbd,0x7a,0xfb,\r
-0xf6,0x11,0xd7,0xe3,0x62,0x23,0x86,0xce,0x61,0xeb,0x1c,0xc0,0x67,0xf3,0xc5,0x73,\r
-0xf7,0x9f,0xb1,0x27,0x8b,0x21,0xdd,0xb3,0x4a,0x76,0x03,0xfe,0x79,0xdc,0x21,0xff,\r
-0x00,0xd9,0xab,0x09,0x65,0xb1,0x5b,0xd3,0x92,0xf9,0x1c,0xd2,0xc9,0x31,0xd1,0xea,\r
-0xff,0x00,0xf0,0x13,0x89,0x4f,0x14,0xd9,0xbf,0xfc,0xb5,0x4f,0xfb,0xea,0xa7,0x4d,\r
-0x7e,0xd5,0xff,0x00,0x8d,0x4f,0xe2,0x2b,0x4a,0xf7,0xf6,0x43,0xf1,0x8d,0xa0,0x2d,\r
-0xfd,0x8f,0xa8,0x81,0xe9,0x1a,0x16,0xfe,0x42,0xb0,0xef,0x7f,0x66,0xdf,0x17,0x58,\r
-0xf2,0xda,0x76,0xa7,0x17,0xfb,0xf6,0xed,0xfe,0x15,0xcf,0x2c,0xbe,0x9a,0xee,0xbe,\r
-0x47,0x3c,0xb2,0xdc,0x74,0x3a,0xfe,0x0c,0xbe,0xba,0xb5,0xbb,0x7f,0x18,0xa9,0x17,\r
-0x51,0x80,0xff,0x00,0x18,0xae,0x46,0xe7,0xe1,0x07,0x89,0xac,0x8e,0x1b,0xed,0x28,\r
-0x47,0x67,0x88,0xd5,0x17,0xf0,0x2f,0x89,0xad,0x8f,0x12,0x3f,0x1e,0xaa,0x6b,0x17,\r
-0x81,0xa5,0xd2,0x46,0x2f,0x0d,0x8d,0x8f,0x63,0xd0,0x16,0xfa,0x23,0xd2,0x4f,0xd6,\r
-0xa5,0x5b,0xdc,0x7d,0xd9,0x88,0xfc,0x6b,0xcc,0xdb,0x42,0xf1,0x4d,0xbe,0x79,0x27,\r
-0xeb,0x9a,0x66,0xcf,0x13,0x41,0xf7,0xa2,0x2d,0x8f,0x43,0x51,0xfd,0x9f,0x17,0xb4,\r
-0x85,0xc9,0x8d,0x8f,0xd8,0xfc,0x4f,0x55,0x4d,0x52,0x74,0xfb,0xb7,0x4e,0x3e,0x8d,\r
-0x56,0x23,0xd7,0xef,0xe3,0xfb,0x97,0xb2,0x8f,0xa3,0x1a,0xf2,0x1f,0xed,0x5f,0x10,\r
-0xc2,0x3e,0x6b,0x47,0x3f,0x4a,0x51,0xe2,0x9d,0x62,0x3f,0xbf,0x67,0x27,0xfd,0xf3,\r
-0x51,0xfd,0x9d,0x2e,0x92,0x41,0xed,0x31,0xb0,0xde,0x9b,0xfb,0xcf,0x67,0x8f,0xc6,\r
-0x1a,0xc4,0x5f,0x77,0x50,0x97,0xfe,0xfa,0xab,0xb0,0x7c,0x44,0xd7,0xe0,0xfb,0xba,\r
-0x84,0x9f,0x8d,0x78,0x7a,0xf8,0xea,0xf2,0x3f,0xf5,0x96,0xb2,0x8f,0xf8,0x09,0xa9,\r
-0x53,0xe2,0x29,0x5f,0xbf,0x14,0x8b,0xf5,0x14,0x96,0x06,0xbc,0x7e,0x17,0xf8,0x94,\r
-0xb1,0xd8,0xb8,0x6f,0x19,0x23,0xde,0x60,0xf8,0xb7,0xe2,0x48,0x3f,0xe5,0xf4,0x9f,\r
-0xad,0x69,0x43,0xf1,0xd7,0xc4,0xd0,0x81,0x8b,0x8c,0xe3,0xdc,0xd7,0xcf,0x91,0xfc,\r
-0x48,0x87,0xb8,0x65,0xfc,0x2a,0xcc,0x7f,0x11,0x2d,0x5b,0xab,0xe3,0xea,0x2a,0x95,\r
-0x0c,0x5c,0x7e,0x19,0x3f,0xbc,0xd5,0x67,0x18,0x98,0x6e,0xe4,0xbe,0x47,0xd1,0xb6,\r
-0xbf,0xb4,0x67,0x88,0xe0,0x00,0x17,0xcf,0xd0,0xd6,0xa5,0xbf,0xed,0x3f,0xae,0x46,\r
-0x7e,0x70,0xc7,0xf1,0xaf,0x99,0xe3,0xf1,0xed,0x9b,0x7f,0xcb,0x41,0xf8,0xd5,0x98,\r
-0xfc,0x69,0x66,0xf8,0xfd,0xea,0x7e,0x75,0x4a,0x58,0xf8,0x6d,0x26,0x6f,0x1e,0x20,\r
-0xaf,0x1f,0xb6,0xfe,0xe3,0xea,0x5b,0x7f,0xda,0xb3,0x50,0x4c,0x6f,0x84,0x93,0xf4,\r
-0x15,0xa9,0x6b,0xfb,0x58,0x37,0x1e,0x6c,0x39,0xff,0x00,0x80,0xd7,0xc9,0xd1,0xf8,\r
-0xae,0xd1,0xff,0x00,0xe5,0xa2,0x7e,0x75,0x3a,0x78,0x86,0xd5,0xfa,0x3a,0xfe,0x75,\r
-0x6b,0x19,0x98,0xc3,0xed,0x33,0xa6,0x3c,0x4d,0x59,0x7f,0xcb,0xc4,0x7d,0x7f,0x6f,\r
-0xfb,0x56,0xd9,0x39,0xc3,0xc2,0x07,0xd4,0x56,0xad,0xb7,0xed,0x45,0xa2,0xc9,0x8f,\r
-0x31,0x00,0xfc,0x6b,0xe3,0x15,0xd6,0x2d,0xdb,0xf8,0x87,0xe7,0x52,0x2e,0xa5,0x03,\r
-0x7f,0x1e,0x2b,0x45,0x9a,0xe6,0x11,0xdd,0xfe,0x07,0x5c,0x38,0x9a,0xb7,0xf3,0x26,\r
-0x7d,0xbb,0x6d,0xfb,0x48,0x78,0x7a,0x7c,0x6e,0x60,0xbf,0xf0,0x2a,0xd4,0x83,0xe3,\r
-0xdf,0x86,0x66,0xc7,0xef,0xc0,0xff,0x00,0x81,0x0a,0xf8,0x48,0x5f,0x44,0x7a,0x3f,\r
-0xeb,0x4f,0x5b,0xc5,0xea,0x25,0xc7,0xe3,0x5a,0x2c,0xef,0x1b,0x1d,0xd2,0xfb,0x8e,\r
-0xc8,0xf1,0x35,0x5e,0xa9,0x33,0xef,0xd8,0x3e,0x30,0xf8,0x6e,0x7c,0x62,0xec,0x0f,\r
-0xc4,0x55,0xe8,0x7e,0x25,0x78,0x7e,0x7c,0x6d,0xbe,0x4f,0xc6,0xbf,0x3e,0x56,0xf9,\r
-0x86,0x31,0x3b,0x7f,0xdf,0x55,0x3a,0x6a,0xd7,0x51,0xfd,0xcb,0xb9,0x07,0xd1,0xab,\r
-0x65,0xc4,0x18,0x85,0xbc,0x11,0xd5,0x1e,0x25,0x7d,0x60,0x7e,0x86,0x47,0xe3,0x4d,\r
-0x16,0x5c,0x62,0xfe,0x2f,0xc4,0xd5,0xa8,0xfc,0x45,0xa6,0xcb,0xf7,0x6f,0x61,0x3f,\r
-0xf0,0x2a,0xfc,0xf1,0x8f,0xc4,0x7a,0x8c,0x7f,0x76,0xf6,0x51,0xff,0x00,0x02,0xab,\r
-0x91,0x78,0xdf,0x5a,0x87,0xee,0xea,0x12,0x7e,0x75,0xb2,0xe2,0x29,0xaf,0x8a,0x9f,\r
-0xe2,0x74,0x47,0x89,0x21,0xd6,0x07,0xe8,0x52,0xea,0x96,0x8f,0xf7,0x6e,0x62,0x3f,\r
-0x46,0x15,0x2a,0xdc,0x44,0xdd,0x24,0x43,0xf4,0x22,0xbf,0x3f,0x20,0xf8,0x97,0xe2,\r
-0x08,0x08,0xdb,0x7c,0xe7,0xeb,0x57,0xe1,0xf8,0xc5,0xe2,0x48,0x7f,0xe5,0xec,0x9a,\r
-0xde,0x3c,0x45,0x0f,0xb5,0x4d,0x9d,0x31,0xe2,0x2c,0x3b,0xde,0x2c,0xfb,0xdc,0x3a,\r
-0x9e,0x8c,0x0f,0xe3,0x4b,0x9a,0xf8,0x66,0xdf,0xe3,0xdf,0x89,0x2d,0xff,0x00,0xe5,\r
-0xb6,0x7f,0x13,0x5a,0x96,0xdf,0xb4,0x87,0x88,0x21,0xc6,0xe6,0x2d,0xf8,0x9a,0xdd,\r
-0x71,0x0e,0x1d,0xef,0x16,0x8d,0xe3,0x9f,0xe1,0x1e,0xec,0xfb,0x4b,0x38,0xa3,0x22,\r
-0xbe,0x42,0xb7,0xfd,0xa8,0xb5,0x98,0xf1,0xb9,0x0f,0xe7,0x9a,0xd4,0xb5,0xfd,0xab,\r
-0x2e,0xd7,0x1e,0x64,0x44,0xfe,0x15,0xba,0xcf,0xb0,0x8f,0x7b,0xfd,0xc7,0x44,0x73,\r
-0xac,0x1c,0xbe,0xd1,0xf5,0x4e,0x45,0x15,0xf3,0x55,0xb7,0xed,0x5c,0xac,0x47,0x99,\r
-0x00,0x03,0xfd,0xda,0xd5,0xb7,0xfd,0xaa,0x74,0xe6,0xc6,0xf8,0x97,0xf2,0x35,0xbc,\r
-0x73,0x9c,0x14,0xbe,0xd9,0xd1,0x1c,0xd3,0x09,0x2d,0xa6,0x8f,0xa0,0x33,0x4b,0x5e,\r
-0x25,0x6b,0xfb,0x4e,0x68,0xb2,0xfd,0xf0,0x8b,0xf8,0x9a,0xd5,0xb7,0xfd,0xa2,0xfc,\r
-0x3b,0x36,0x01,0x60,0x0f,0xfb,0xd5,0xd1,0x1c,0xcf,0x07,0x2d,0xaa,0x23,0x75,0x8e,\r
-0xc3,0xcb,0x69,0xa3,0xd6,0x28,0xaf,0x3a,0x83,0xe3,0x9f,0x86,0xe6,0xc7,0xfa,0x40,\r
-0x5c,0xff,0x00,0xb4,0x2b,0x46,0xdf,0xe2,0xdf,0x87,0x6e,0x31,0x8b,0xb5,0x1f,0x52,\r
-0x2b,0x75,0x8d,0xc3,0x4b,0x6a,0x8b,0xef,0x36,0x58,0x8a,0x2f,0x69,0x23,0xb4,0xa2,\r
-0xb9,0xa8,0xfe,0x22,0xe8,0x12,0xfd,0xdb,0xf4,0xcd,0x5b,0x8b,0xc6,0x1a,0x44,0xdf,\r
-0x76,0xfa,0x2f,0xc4,0xd6,0xca,0xbd,0x29,0x6d,0x25,0xf7,0x9a,0x2a,0x90,0x7b,0x33,\r
-0x6a,0x8a,0xce,0x4f,0x10,0x69,0xd2,0x7d,0xdb,0xc8,0x5b,0xfe,0x05,0x56,0x13,0x51,\r
-0xb6,0x7e,0x97,0x11,0x1f,0xf8,0x18,0xad,0x14,0xe2,0xf6,0x65,0x73,0x2e,0xe5,0x9a,\r
-0x2a,0x35,0xb8,0x89,0xfe,0xec,0x88,0x7e,0x8d,0x4f,0xdc,0x3d,0x45,0x55,0xca,0x16,\r
-0x8a,0x29,0x33,0x4c,0x05,0xa2,0x93,0x34,0x66,0x80,0x16,0x8a,0x4a,0x33,0x40,0x0b,\r
-0x45,0x14,0x94,0x01,0xf3,0xdf,0xed,0x45,0x77,0xb6,0xde,0x38,0xf3,0xd2,0x3c,0x57,\r
-0xc7,0x5e,0x24,0xbc,0x5b,0x7b,0x39,0x58,0x9c,0x61,0x4d,0x7d,0x53,0xfb,0x54,0x5f,\r
-0x88,0xee,0x4a,0x93,0x8c,0x28,0x02,0xbe,0x1a,0xf8,0x97,0xe2,0x95,0xb6,0xb3,0x78,\r
-0x95,0xf2,0xc4,0x73,0xcd,0x7e,0x79,0x88,0xa6,0xeb,0xe6,0x53,0xf2,0xb1,0xf9,0x1f,\r
-0x13,0xd4,0x73,0xc4,0xaa,0x31,0xdd,0x9e,0xad,0xff,0x00,0x04,0xe8,0xd3,0xe6,0xd6,\r
-0x3f,0x69,0x8f,0x14,0xea,0xe1,0x37,0xda,0x69,0xfe,0x1f,0x92,0x06,0x7c,0xfd,0xd9,\r
-0x25,0xb8,0x8b,0x60,0xfc,0x44,0x4f,0xf9,0x57,0xe9,0x78,0xaf,0x87,0x7f,0xe0,0x96,\r
-0xbe,0x07,0x96,0xcb,0xc1,0x1e,0x34,0xf1,0xa4,0xe0,0x8f,0xed,0xcd,0x42,0x3b,0x3b,\r
-0x70,0xc3,0xac,0x56,0xca,0xd9,0x61,0xf5,0x69,0x98,0x7f,0xc0,0x2b,0xee,0x3a,0xfb,\r
-0xba,0x11,0xe5,0xa6,0x91,0xfa,0x46,0x59,0x43,0xea,0xf8,0x3a,0x74,0xfb,0x20,0xa2,\r
-0x8a,0x2b,0xa0,0xf5,0x02,0x8a,0x28,0xa0,0x02,0x8a,0x28,0xa0,0x02,0x8a,0x28,0xa0,\r
-0x02,0x8a,0x28,0xa0,0x02,0x8a,0x28,0xa0,0x02,0x8a,0x28,0xa0,0x02,0x8a,0x28,0xa0,\r
-0x02,0x8a,0x28,0xa0,0x02,0x8a,0x28,0xa0,0x02,0x93,0x14,0xb4,0x50,0x02,0x62,0x8c,\r
-0x52,0xd1,0x40,0x0d,0x23,0xd2,0x94,0x0a,0x5a,0x28,0x01,0x31,0x46,0xd1,0x4b,0x45,\r
-0x00,0x46,0xd0,0xa3,0x82,0x19,0x15,0x81,0xec,0x45,0x54,0x9b,0x40,0xd3,0x6e,0x46,\r
-0x26,0xd3,0xed,0x65,0x1f,0xed,0xc2,0xa7,0xfa,0x55,0xfa,0x2a,0x5c,0x53,0xdd,0x12,\r
-0xe2,0x9e,0xe8,0xe7,0x6e,0x7e,0x1e,0x78,0x62,0xf3,0xfd,0x76,0x81,0xa7,0x3f,0xfd,\r
-0xbb,0x20,0xfe,0x42,0xb2,0xee,0x7e,0x0b,0xf8,0x26,0xef,0x3e,0x67,0x87,0x2c,0xc6,\r
-0x7f,0xb8,0xa5,0x3f,0x91,0x15,0xdb,0x51,0x59,0xba,0x34,0x9e,0xf1,0x5f,0x71,0x93,\r
-0xa1,0x4a,0x5b,0xc1,0x7d,0xc8,0xf3,0x2b,0xbf,0xd9,0xc7,0xc0,0x37,0x60,0x8f,0xec,\r
-0x51,0x1f,0xba,0x4c,0xff,0x00,0xd4,0x9a,0xc7,0xba,0xfd,0x93,0xfc,0x09,0x70,0x72,\r
-0xb0,0xdd,0xc3,0xec,0x92,0xaf,0xf5,0x53,0x5e,0xcb,0x45,0x64,0xf0,0x94,0x1f,0xd8,\r
-0x46,0x0f,0x03,0x86,0x7b,0xd3,0x5f,0x71,0xe0,0x37,0xbf,0xb1,0xaf,0x84,0x27,0xcf,\r
-0x91,0x77,0x79,0x11,0x3f,0xdf,0xd8,0xf8,0xfd,0x05,0x61,0x5d,0x7e,0xc3,0xba,0x2c,\r
-0xb9,0xf2,0xf5,0xc6,0x5f,0x4d,0xd6,0x80,0xff,0x00,0xec,0xf5,0xf4,0xdd,0x15,0x9b,\r
-0xc0,0xe1,0xdf,0xd9,0xfc,0xcc,0x9e,0x5b,0x84,0x7f,0x63,0xf3,0x3e,0x46,0xd4,0x3f,\r
-0x61,0x38,0x98,0x9f,0xb3,0x6a,0xd6,0x92,0x0f,0xfa,0x69,0x01,0x4f,0xe5,0x9a,0xe7,\r
-0xef,0x3f,0x60,0xcd,0x49,0x89,0xf2,0xee,0xb4,0xb7,0x1d,0xbe,0x77,0x07,0xff,0x00,\r
-0x40,0xaf,0xb6,0x31,0x46,0x2b,0x37,0x97,0x50,0xe9,0x75,0xf3,0x31,0x79,0x46,0x15,\r
-0xf4,0x7f,0x79,0xf0,0x45,0xff,0x00,0xec,0x29,0xe2,0x18,0x81,0x31,0x5b,0x5a,0x4d,\r
-0x8e,0xd1,0xdc,0x00,0x4f,0xe7,0x8a,0xc0,0xba,0xfd,0x89,0xbc,0x5d,0x10,0x24,0x69,\r
-0x12,0x71,0xfd,0xcb,0x84,0x3f,0xc9,0xab,0xf4,0x5b,0x14,0x98,0x35,0x1f,0xd9,0xb4,\r
-0xfa,0x49,0x9c,0xf2,0xc8,0xf0,0xd2,0xea,0xff,0x00,0x0f,0xf2,0x3f,0x33,0x2f,0xbf,\r
-0x64,0xaf,0x18,0x59,0x96,0x1f,0xd8,0xda,0x96,0x47,0xfc,0xf3,0x8d,0x98,0x7e,0x60,\r
-0x56,0x15,0xdf,0xec,0xe7,0xe2,0xcb,0x30,0x49,0xd3,0xf5,0x38,0xc0,0xea,0x5a,0xdd,\r
-0xb1,0xfc,0xab,0xf5,0x47,0x14,0x9b,0x73,0xd6,0xb3,0x79,0x6f,0x6a,0x8c,0xe5,0x97,\r
-0x0e,0xe1,0xe5,0xd7,0xf0,0x47,0xe4,0xbd,0xcf,0xc2,0x3f,0x11,0xd9,0x83,0x93,0x70,\r
-0x9f,0xef,0x46,0x45,0x51,0x93,0xc0,0xfe,0x25,0xb7,0xe9,0x23,0xf1,0xea,0xa6,0xbf,\r
-0x5c,0xde,0xde,0x39,0x06,0x19,0x15,0x87,0xa3,0x0c,0xd5,0x3b,0x8f,0x0f,0x69,0x77,\r
-0x9f,0xeb,0xf4,0xeb,0x49,0xbf,0xdf,0x81,0x5b,0xf9,0x8a,0xcd,0xe5,0xd3,0xe9,0x3f,\r
-0xc0,0xe3,0x9f,0x0b,0xd0,0x97,0x6f,0xbb,0xfe,0x09,0xf9,0x24,0xda,0x1f,0x8a,0x2d,\r
-0xfb,0x96,0xc7,0xd6,0xa3,0x2b,0xe2,0x58,0x3a,0xc5,0xbb,0xe8,0x6b,0xf5,0x7a,0xe3,\r
-0xe1,0xb7,0x85,0x6e,0xb3,0xe6,0xf8,0x7b,0x4d,0x6c,0xf5,0x3f,0x66,0x40,0x7f,0x41,\r
-0x59,0x57,0x5f,0x04,0x7c,0x0f,0x77,0xf7,0xfc,0x3b,0x68,0x3d,0x76,0xee,0x5f,0xe4,\r
-0x6b,0x27,0x96,0xd5,0xee,0x99,0xc7,0x2e,0x14,0xa6,0xf6,0xb7,0xe2,0x7e,0x5a,0xff,\r
-0x00,0x6a,0xf8,0x86,0x1f,0xbd,0x6a,0xc7,0x1e,0x94,0xe1,0xe2,0x9d,0x62,0x2f,0xbf,\r
-0x67,0x27,0xfd,0xf3,0x5f,0xa6,0x37,0x7f,0xb3,0x5f,0x80,0x2e,0xff,0x00,0xe6,0x0c,\r
-0x61,0xff,0x00,0xae,0x73,0x3f,0xf5,0x26,0xb1,0xee,0xbf,0x64,0xbf,0x01,0xdc,0x92,\r
-0x56,0x1b,0xd8,0x7d,0x92,0x65,0xfe,0xaa,0x6b,0x17,0x96,0xd5,0xfe,0x58,0x9c,0xb2,\r
-0xe1,0x3e,0xcb,0xf1,0x7f,0xe4,0x7e,0x74,0x8f,0x1c,0xde,0xc6,0x7e,0x7b,0x59,0x07,\r
-0xe0,0x6a,0x54,0xf8,0x88,0xeb,0xf7,0xe2,0x71,0xf9,0xd7,0xde,0xd7,0xbf,0xb1,0x87,\r
-0x85,0x27,0xcf,0x91,0x7f,0x79,0x0f,0xfb,0xea,0xaf,0xfe,0x15,0x89,0x75,0xfb,0x0e,\r
-0x68,0xf2,0x92,0x63,0xd7,0x18,0x7b,0x35,0xa0,0x3f,0xfb,0x3d,0x61,0x2c,0xb6,0xa7,\r
-0x5a,0x6b,0xef,0x39,0xa5,0xc2,0xd5,0x97,0xc3,0x7f,0xbd,0x1f,0x16,0xc7,0xf1,0x1e,\r
-0x2e,0xe0,0x8a,0xb3,0x1f,0xc4,0x4b,0x66,0xea,0xf5,0xf5,0x5e,0xa1,0xfb,0x08,0x29,\r
-0xcf,0xd9,0xb5,0x6b,0x39,0x07,0x6f,0x36,0x16,0x5f,0xe5,0x9a,0xe7,0xee,0xff,0x00,\r
-0x60,0xbd,0x4c,0x82,0x52,0xe7,0x4a,0x7f,0x6d,0xce,0x3f,0xf6,0x4a,0xc2,0x59,0x6b,\r
-0xeb,0x49,0x9c,0xd2,0xe1,0xcc,0x5c,0x76,0x72,0xfc,0x19,0xf3,0xec,0x7e,0x3d,0xb4,\r
-0x7c,0x66,0x40,0x3e,0xb5,0x66,0x3f,0x1a,0xd9,0xbe,0x3f,0x7a,0xb5,0xea,0xfa,0x87,\r
-0xec,0x2f,0xe2,0x58,0x58,0x88,0xac,0x6d,0xe7,0x03,0xbc,0x57,0x0a,0x07,0xea,0x45,\r
-0x61,0x5e,0x7e,0xc5,0x3e,0x2f,0x81,0x49,0x1a,0x3c,0xa7,0x1f,0xf3,0xce,0x74,0x6f,\r
-0xe4,0xd5,0x83,0xcb,0xa3,0xd6,0x9c,0x97,0xc8,0xe7,0x96,0x49,0x8e,0x8e,0xd2,0x7f,\r
-0xf8,0x09,0xc6,0xc7,0xe2,0xcb,0x47,0xc7,0xef,0x53,0xf3,0xa9,0xd3,0xc4,0x76,0xaf,\r
-0xd2,0x45,0x3f,0x8d,0x5d,0xbc,0xfd,0x93,0x7c,0x61,0x66,0x0b,0x7f,0x62,0xea,0x60,\r
-0x7f,0xb1,0x13,0x37,0xf2,0x15,0x87,0x79,0xfb,0x3b,0xf8,0xb2,0xc7,0xef,0xe9,0xfa,\r
-0x9c,0x5f,0xef,0xdb,0xb0,0xfe,0x95,0xce,0xf0,0x14,0x97,0x46,0xbe,0x47,0x3c,0xb2,\r
-0xec,0x74,0x3e,0xd7,0xe0,0xcd,0x55,0xd6,0xad,0xdb,0xf8,0x87,0xe7,0x52,0x0d,0x4e,\r
-0x06,0xfe,0x31,0x5c,0x6d,0xc7,0xc2,0x9f,0x10,0xda,0x31,0x52,0xd3,0xa1,0x07,0x18,\r
-0x68,0xc8,0xaa,0x72,0x78,0x23,0xc4,0x96,0xfd,0x24,0x63,0x8f,0xf6,0x4d,0x66,0xf0,\r
-0x34,0xba,0x48,0xc1,0xe1,0x71,0xb1,0xec,0xcf,0x41,0x17,0xf0,0xff,0x00,0x7a,0x9e,\r
-0xb7,0x91,0xf6,0x7f,0xd6,0xbc,0xd1,0xb4,0x4f,0x13,0x41,0xdc,0x9f,0x6e,0x69,0xa4,\r
-0x78,0x96,0x0e,0xb1,0x16,0xfc,0x6b,0x37,0x97,0xc5,0xed,0x22,0x7d,0x9e,0x35,0x7d,\r
-0x84,0xfe,0x67,0xa8,0xad,0xe0,0x1d,0x25,0x23,0xf1,0xa9,0x93,0x50,0x95,0x7e,0xed,\r
-0xc3,0x8f,0xa3,0x57,0x93,0xff,0x00,0x6a,0xf8,0x82,0x1f,0xbd,0x6a,0xc7,0x1e,0x94,\r
-0xa3,0xc5,0x3a,0xbc,0x5f,0x7e,0xd2,0x4f,0xfb,0xe6,0xa1,0xe5,0xcf,0xa4,0x90,0x73,\r
-0x62,0xe3,0xbd,0x37,0xf7,0x9e,0xbd,0x1e,0xb5,0x7b,0x11,0xf9,0x2e,0xe4,0x1f,0x47,\r
-0x35,0x65,0x3c,0x55,0xaa,0xc7,0xf7,0x6f,0xa5,0xff,0x00,0xbe,0x8d,0x78,0xe0,0xf1,\r
-0xcd,0xe4,0x7f,0x7e,0xda,0x41,0xff,0x00,0x01,0x35,0x2a,0x7c,0x44,0x61,0xf7,0xa2,\r
-0x71,0x51,0xfd,0x9f,0x55,0x6c,0xff,0x00,0x11,0xac,0x5e,0x26,0x3b,0xc2,0x47,0xb4,\r
-0xc3,0xe3,0xcd,0x72,0x0f,0xbb,0x7d,0x27,0xe2,0x6a,0xec,0x3f,0x14,0x7c,0x43,0x0e,\r
-0x31,0x7a,0xe7,0xea,0x6b,0xc4,0x13,0xe2,0x3c,0x47,0x19,0xdd,0x56,0xa3,0xf8,0x89,\r
-0x6c,0x71,0x97,0x22,0x8f,0xa9,0xe2,0x63,0xb5,0xfe,0xf3,0x45,0x9a,0x57,0x86,0xfc,\r
-0xcb,0xef,0x3d,0xda,0xdf,0xe3,0x4f,0x89,0x20,0xc6,0x2e,0x4f,0xe6,0x6b,0x46,0xdb,\r
-0xe3,0xff,0x00,0x88,0xa0,0xc6,0x64,0x2c,0x7d,0x77,0x57,0x81,0x47,0xe3,0xdb,0x46,\r
-0xff,0x00,0x96,0x95,0x66,0x3f,0x1a,0xda,0x37,0xfc,0xb5,0x5a,0x7c,0x98,0xc8,0x6d,\r
-0x27,0xf7,0x9b,0x47,0x3c,0xad,0x1f,0xb6,0xfe,0xe3,0xe8,0x8b,0x7f,0xda,0x53,0x5f,\r
-0x8b,0x86,0x27,0x1e,0xcd,0x5a,0x96,0xdf,0xb5,0x26,0xab,0x10,0x1b,0xe3,0x63,0xf5,\r
-0x35,0xf3,0x5c,0x7e,0x2d,0xb4,0x7e,0x92,0xaf,0xe7,0x53,0xaf,0x88,0xed,0x5f,0xa3,\r
-0xaf,0xe7,0x56,0xab,0xe3,0xe1,0xb4,0xd9,0xd3,0x1e,0x22,0xac,0xbf,0xe5,0xe1,0xf5,\r
-0x0d,0xb7,0xed,0x59,0x73,0x91,0xe6,0xa1,0xff,0x00,0xbe,0x45,0x6b,0x5b,0x7e,0xd5,\r
-0xb0,0xb6,0x03,0xc2,0x3e,0xa4,0x57,0xc9,0xc9,0xad,0xdb,0xbf,0xf1,0x8f,0xce,0xa5,\r
-0x5d,0x52,0x06,0xfe,0x2a,0xb5,0x98,0x66,0x10,0xfb,0x6f,0xee,0x3a,0xe1,0xc4,0x95,\r
-0x97,0xdb,0x47,0xd8,0x16,0xbf,0xb5,0x26,0x9a,0xc3,0xf7,0xa8,0xbf,0x91,0xad,0x4b,\r
-0x6f,0xda,0x5b,0x44,0x9b,0x19,0x0a,0x3f,0x1a,0xf8,0xb4,0x6a,0x30,0x9e,0x77,0x0a,\r
-0x6b,0xea,0xb0,0x20,0x3f,0x3f,0xeb,0x5b,0x47,0x36,0xc7,0xad,0x2f,0x7f,0x91,0xd4,\r
-0xb8,0x9e,0xac,0x77,0x68,0xfb,0xa2,0xdf,0xf6,0x84,0xf0,0xec,0xa0,0x66,0x50,0x0f,\r
-0xb3,0x0a,0xb7,0x37,0xc7,0x8f,0x0d,0x43,0x6e,0x65,0x7b,0x8c,0x01,0xdb,0x70,0xcd,\r
-0x7e,0x7b,0xdf,0xf8,0xce,0xd6,0xc9,0x09,0x33,0x85,0xc7,0xfb,0x55,0xc0,0x78,0x93,\r
-0xe2,0xcc,0x80,0x34,0x76,0x92,0xb1,0x27,0xbe,0x6b,0xd5,0xa1,0x8f,0xcc,0x2a,0xbd,\r
-0x52,0x17,0xfa,0xd9,0x56,0x4f,0x96,0x9d,0x3e,0x66,0x7b,0xb7,0xed,0x37,0xf1,0xc6,\r
-0xcf,0x5f,0xd5,0xee,0xe4,0xb5,0x93,0x31,0x74,0x8c,0x1e,0xb5,0xf2,0xd7,0x87,0x3c,\r
-0x2b,0xaf,0xfc,0x6d,0xf1,0xe6,0x9f,0xe1,0x8d,0x0a,0x16,0xb8,0xd4,0x35,0x09,0x76,\r
-0x6e,0xfe,0x08,0x63,0xcf,0xcd,0x23,0x9e,0xca,0xa3,0x24,0x9f,0x6f,0x5a,0x93,0xc2,\r
-0xbe,0x13,0xf1,0x57,0xc6,0x6f,0x16,0x41,0xa3,0x68,0x36,0x13,0x6a,0xba,0x95,0xc3,\r
-0x70,0x89,0xf7,0x51,0x7b,0xbb,0xb1,0xe1,0x54,0x77,0x27,0xfa,0x8a,0xfd,0x46,0xfd,\r
-0x97,0x3f,0x65,0xdd,0x1b,0xf6,0x79,0xf0,0xdb,0x39,0x31,0xea,0x5e,0x2b,0xbe,0x41,\r
-0xfd,0xa1,0xa9,0xe3,0x8c,0x75,0xf2,0xa2,0xcf,0x21,0x01,0xfc,0x58,0xf2,0x7b,0x01,\r
-0xe9,0x61,0x70,0xaf,0x99,0xce,0x5b,0xbd,0x5b,0x34,0xcb,0x30,0x15,0x73,0x1c,0x53,\r
-0xc6,0x62,0x3f,0xe0,0x7a,0x23,0xd2,0xfe,0x17,0x7c,0x3e,0xd3,0x7e,0x15,0xf8,0x03,\r
-0x44,0xf0,0xa6,0x92,0x81,0x6c,0x74,0xbb,0x65,0x81,0x5b,0x1c,0xbb,0x75,0x67,0x3e,\r
-0xec,0xc4,0x93,0xf5,0xae,0xaa,0x90,0x0c,0x52,0xd7,0xd0,0x25,0x6d,0x0f,0xd2,0xd2,\r
-0xb2,0xb2,0x0a,0x28,0xa2,0x81,0x85,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,\r
-0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,\r
-0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,\r
-0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,\r
-0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,\r
-0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,\r
-0x51,0x40,0x05,0x14,0x51,0x40,0x09,0x46,0x29,0x68,0xa0,0x04,0xc5,0x18,0xa5,0xa2,\r
-0x80,0x13,0x6d,0x26,0xda,0x75,0x14,0x01,0x13,0xda,0xc3,0x26,0x77,0xc4,0x8d,0x9e,\r
-0xb9,0x50,0x6a,0x8d,0xc7,0x86,0xb4,0x9b,0xa0,0x44,0xda,0x5d,0x9c,0xca,0x7a,0x89,\r
-0x20,0x43,0xfd,0x2b,0x4e,0x8a,0x97,0x18,0xbd,0xd1,0x2e,0x31,0x7b,0xa3,0x98,0xb9,\r
-0xf8,0x65,0xe1,0x3b,0xb1,0xfb,0xdf,0x0e,0xe9,0xa7,0xe9,0x6c,0x8b,0xfc,0x85,0x65,\r
-0xdd,0x7c,0x0e,0xf0,0x35,0xd9,0x26,0x4f,0x0e,0x5a,0x0f,0xf7,0x37,0x27,0xf2,0x22,\r
-0xbb,0xba,0x2b,0x37,0x42,0x93,0xde,0x2b,0xee,0x31,0x78,0x7a,0x32,0xde,0x0b,0xee,\r
-0x47,0x96,0x5d,0xfe,0xcc,0xfe,0x00,0xbb,0x24,0xff,0x00,0x64,0x34,0x24,0xff,0x00,\r
-0xcf,0x39,0x9b,0x8f,0xcc,0x9a,0xc7,0xba,0xfd,0x91,0xfc,0x0b,0x71,0xf7,0x12,0xf6,\r
-0x13,0xfe,0xcc,0xaa,0x7f,0x9a,0xd7,0xb5,0xd1,0x59,0x3c,0x25,0x07,0xf6,0x11,0x8b,\r
-0xc0,0xe1,0x9f,0xfc,0xbb,0x47,0xcf,0x37,0xbf,0xb1,0x77,0x85,0x67,0x27,0xc8,0xd4,\r
-0x2e,0xe1,0x1e,0x8e,0x88,0xff,0x00,0xcb,0x15,0x8b,0x75,0xfb,0x0d,0x69,0x12,0xe7,\r
-0xcb,0xd7,0x58,0x7a,0x6f,0xb4,0x07,0xff,0x00,0x66,0xaf,0xa8,0x28,0xac,0xde,0x07,\r
-0x0e,0xfe,0xcf,0xe6,0x64,0xf2,0xcc,0x2b,0xfb,0x1f,0x8b,0x3e,0x3e,0xbf,0xfd,0x84,\r
-0x1c,0x93,0xf6,0x7d,0x56,0xc6,0x40,0x7f,0xe7,0xac,0x4c,0xbf,0xc8,0x1a,0xc1,0xbd,\r
-0xfd,0x83,0x35,0x65,0xc9,0x8e,0xe7,0x4b,0x97,0xe8,0xee,0x0f,0xea,0xa2,0xbe,0xdf,\r
-0xa4,0x6e,0x95,0x93,0xcb,0xa8,0x74,0xbf,0xde,0x60,0xf2,0x8c,0x2b,0xe8,0xfe,0xf3,\r
-0xe0,0x0b,0xef,0xd8,0x67,0xc4,0xd1,0x93,0xe5,0xe9,0xf0,0x4c,0x3f,0xe9,0x95,0xc2,\r
-0x0f,0xe6,0x45,0x61,0x5e,0x7e,0xc5,0x7e,0x30,0xb7,0x04,0x8d,0x16,0x63,0xff,0x00,\r
-0x5c,0xe7,0x46,0xfe,0x4c,0x6b,0xf4,0x6c,0x75,0xa0,0x75,0xac,0xde,0x5d,0x4f,0xa4,\r
-0x99,0xcf,0x2c,0x8f,0x0c,0xfa,0xbf,0xc3,0xfc,0x8f,0xcc,0x3b,0xcf,0xd9,0x53,0xc5,\r
-0xd6,0x8c,0x41,0xd1,0x35,0x51,0x8f,0xee,0xc0,0xec,0x3f,0x30,0x2b,0x16,0xfb,0xf6,\r
-0x7b,0xf1,0x56,0x9e,0xa5,0xa4,0xb1,0xd4,0xa1,0x03,0xbb,0xc0,0xc3,0xfa,0x57,0xea,\r
-0xb8,0xe9,0x4d,0x3c,0xd4,0x3c,0xbb,0xb4,0xd9,0xcb,0x2e,0x1d,0xc3,0xbe,0xbf,0x82,\r
-0x3f,0x24,0x67,0xf8,0x59,0xaf,0xda,0x9c,0x16,0x99,0x7f,0xde,0x42,0x2a,0xa3,0xf8,\r
-0x2b,0xc4,0x50,0x1e,0x25,0x6f,0xc4,0x1a,0xfd,0x75,0x96,0xd6,0x19,0x57,0xe7,0x89,\r
-0x1f,0xfd,0xe5,0x06,0xb3,0x2f,0x3c,0x37,0xa4,0x5d,0xff,0x00,0xaf,0xd2,0xec,0xa6,\r
-0xff,0x00,0xae,0x96,0xe8,0xdf,0xcc,0x57,0x34,0xf0,0x72,0x8f,0xdb,0xfc,0x3f,0xe0,\r
-0x9e,0x65,0x5e,0x1d,0xc3,0xc7,0xb7,0xdd,0xff,0x00,0x04,0xfc,0x94,0x9b,0x44,0xf1,\r
-0x2c,0x2b,0xc3,0x13,0xf4,0xcd,0x64,0x5d,0xe8,0x9e,0x28,0x94,0x13,0x99,0x31,0xec,\r
-0x09,0xaf,0xd4,0x6f,0x14,0x78,0x37,0x40,0x44,0x98,0xae,0x87,0xa6,0x83,0x8e,0xa2,\r
-0xd2,0x3f,0xf0,0xac,0x0f,0x06,0xf8,0x4b,0x43,0x9e,0xf1,0xd6,0x5d,0x1b,0x4f,0x91,\r
-0x72,0x38,0x7b,0x54,0x23,0xf9,0x57,0x1c,0x63,0x25,0x2b,0x2b,0x7d,0xc7,0x8f,0x2c,\r
-0x97,0x0c,0xa5,0xca,0x92,0xfb,0x8f,0xcc,0x9b,0x2f,0x86,0x9e,0x2d,0xf1,0x2d,0xd8,\r
-0xb7,0xb3,0xd3,0xef,0x75,0x19,0xd8,0xf1,0x15,0xbc,0x4c,0xed,0xcf,0xb0,0x15,0xf4,\r
-0x27,0xc2,0x4f,0xf8,0x27,0x6f,0x8a,0x7c,0x4d,0x3c,0x37,0x7e,0x31,0xb9,0x5f,0x0d,\r
-0xe9,0x99,0x05,0xa0,0x52,0x24,0xba,0x71,0xd7,0x85,0x1f,0x2a,0xfd,0x58,0xe4,0x7f,\r
-0x76,0xbf,0x46,0x74,0xed,0x2e,0xcf,0x4c,0xb7,0x58,0xac,0xed,0x20,0xb4,0x8c,0x0e,\r
-0x12,0x08,0xd5,0x00,0xfc,0x00,0xab,0x8b,0x5e,0xfd,0x1c,0x3d,0xd2,0x94,0xdd,0xcf,\r
-0xa2,0xc0,0xf0,0xed,0x18,0x5a,0x75,0x26,0xe4,0xbb,0x5a,0xc8,0xe2,0x7e,0x16,0xfc,\r
-0x1b,0xf0,0xa7,0xc1,0xcd,0x0c,0x69,0x9e,0x18,0xd2,0xe3,0xb3,0x46,0x03,0xce,0xb8,\r
-0x6f,0x9a,0x79,0xc8,0xef,0x23,0xf5,0x3f,0x4e,0x83,0xb0,0x15,0xdb,0x8e,0x28,0x1d,\r
-0x29,0x6b,0xd0,0x49,0x25,0x64,0x7d,0x8c,0x29,0xc6,0x9c,0x54,0x20,0xac,0x90,0x51,\r
-0x45,0x14,0xcd,0x02,0x8a,0x28,0xa0,0x0f,0xff,0xd9,};\r
-\r
-static const unsigned int dummy_align__runtime_shtml = 3;\r
-static const unsigned char data__runtime_shtml[] = {\r
-/* /runtime.shtml (15 chars) */\r
-0x2f,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x00,0x00,\r
-\r
-/* HTTP header */\r
-/* "HTTP/1.0 200 OK\r
-" (17 bytes) */\r
-0x48,0x54,0x54,0x50,0x2f,0x31,0x2e,0x30,0x20,0x32,0x30,0x30,0x20,0x4f,0x4b,0x0d,\r
-0x0a,\r
-/* "Server: lwIP/1.3.1 (http://savannah.nongnu.org/projects/lwip)\r
-" (63 bytes) */\r
-0x53,0x65,0x72,0x76,0x65,0x72,0x3a,0x20,0x6c,0x77,0x49,0x50,0x2f,0x31,0x2e,0x33,\r
-0x2e,0x31,0x20,0x28,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x73,0x61,0x76,0x61,0x6e,\r
-0x6e,0x61,0x68,0x2e,0x6e,0x6f,0x6e,0x67,0x6e,0x75,0x2e,0x6f,0x72,0x67,0x2f,0x70,\r
-0x72,0x6f,0x6a,0x65,0x63,0x74,0x73,0x2f,0x6c,0x77,0x69,0x70,0x29,0x0d,0x0a,\r
-/* "Content-type: text/html\r
-Expires: Fri, 10 Apr 2008 14:00:00 GMT\r
-Pragma: no-cache\r
-\r
-" (85 bytes) */\r
-0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x74,0x79,0x70,0x65,0x3a,0x20,0x74,0x65,\r
-0x78,0x74,0x2f,0x68,0x74,0x6d,0x6c,0x0d,0x0a,0x45,0x78,0x70,0x69,0x72,0x65,0x73,\r
-0x3a,0x20,0x46,0x72,0x69,0x2c,0x20,0x31,0x30,0x20,0x41,0x70,0x72,0x20,0x32,0x30,\r
-0x30,0x38,0x20,0x31,0x34,0x3a,0x30,0x30,0x3a,0x30,0x30,0x20,0x47,0x4d,0x54,0x0d,\r
-0x0a,0x50,0x72,0x61,0x67,0x6d,0x61,0x3a,0x20,0x6e,0x6f,0x2d,0x63,0x61,0x63,0x68,\r
-0x65,0x0d,0x0a,0x0d,0x0a,\r
-/* raw file data (882 bytes) */\r
-0x3c,0x21,0x44,0x4f,0x43,0x54,0x59,0x50,0x45,0x20,0x48,0x54,0x4d,0x4c,0x20,0x50,\r
-0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f,0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44,\r
-0x54,0x44,0x20,0x48,0x54,0x4d,0x4c,0x20,0x34,0x2e,0x30,0x31,0x20,0x54,0x72,0x61,\r
-0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x2f,0x2f,0x45,0x4e,0x22,0x20,0x22,\r
-0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,\r
-0x67,0x2f,0x54,0x52,0x2f,0x68,0x74,0x6d,0x6c,0x34,0x2f,0x6c,0x6f,0x6f,0x73,0x65,\r
-0x2e,0x64,0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x68,0x74,0x6d,0x6c,0x3e,0x0d,0x0a,\r
-0x20,0x20,0x3c,0x68,0x65,0x61,0x64,0x3e,0x0d,0x0a,0x20,0x20,0x20,0x20,0x3c,0x74,\r
-0x69,0x74,0x6c,0x65,0x3e,0x46,0x72,0x65,0x65,0x52,0x54,0x4f,0x53,0x2e,0x6f,0x72,\r
-0x67,0x20,0x75,0x49,0x50,0x20,0x57,0x45,0x42,0x20,0x73,0x65,0x72,0x76,0x65,0x72,\r
-0x20,0x64,0x65,0x6d,0x6f,0x3c,0x2f,0x74,0x69,0x74,0x6c,0x65,0x3e,0x0d,0x0a,0x20,\r
-0x20,0x3c,0x2f,0x68,0x65,0x61,0x64,0x3e,0x0d,0x0a,0x20,0x20,0x3c,0x42,0x4f,0x44,\r
-0x59,0x20,0x6f,0x6e,0x4c,0x6f,0x61,0x64,0x3d,0x22,0x77,0x69,0x6e,0x64,0x6f,0x77,\r
-0x2e,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x26,0x71,0x75,0x6f,\r
-0x74,0x3b,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x68,0x72,0x65,0x66,0x3d,\r
-0x27,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x27,0x26,\r
-0x71,0x75,0x6f,0x74,0x3b,0x2c,0x32,0x30,0x30,0x30,0x29,0x22,0x3e,0x0d,0x0a,0x3c,\r
-0x66,0x6f,0x6e,0x74,0x20,0x66,0x61,0x63,0x65,0x3d,0x22,0x61,0x72,0x69,0x61,0x6c,\r
-0x22,0x3e,0x0d,0x0a,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x69,0x6e,0x64,\r
-0x65,0x78,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x54,0x61,0x73,0x6b,0x20,0x53,\r
-0x74,0x61,0x74,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x62,0x3e,0x7c,0x3c,0x2f,0x62,\r
-0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x72,0x75,0x6e,0x74,0x69,\r
-0x6d,0x65,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x52,0x75,0x6e,0x20,0x54,0x69,\r
-0x6d,0x65,0x20,0x53,0x74,0x61,0x74,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x62,0x3e,\r
-0x7c,0x3c,0x2f,0x62,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x73,\r
-0x74,0x61,0x74,0x73,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x54,0x43,0x50,0x20,\r
-0x53,0x74,0x61,0x74,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x62,0x3e,0x7c,0x3c,0x2f,\r
-0x62,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x74,0x63,0x70,0x2e,\r
-0x73,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,\r
-0x6e,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x62,0x3e,0x7c,0x3c,0x2f,0x62,0x3e,0x20,\r
-0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,\r
-0x77,0x77,0x77,0x2e,0x66,0x72,0x65,0x65,0x72,0x74,0x6f,0x73,0x2e,0x6f,0x72,0x67,\r
-0x2f,0x22,0x3e,0x46,0x72,0x65,0x65,0x52,0x54,0x4f,0x53,0x20,0x48,0x6f,0x6d,0x65,\r
-0x70,0x61,0x67,0x65,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x62,0x3e,0x7c,0x3c,0x2f,0x62,\r
-0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x69,0x6f,0x2e,0x73,0x68,\r
-0x74,0x6d,0x6c,0x22,0x3e,0x49,0x4f,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x62,0x3e,0x7c,\r
-0x3c,0x2f,0x62,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x6c,0x6f,\r
-0x67,0x6f,0x2e,0x6a,0x70,0x67,0x22,0x3e,0x33,0x37,0x4b,0x20,0x6a,0x70,0x67,0x3c,\r
-0x2f,0x61,0x3e,0x0d,0x0a,0x3c,0x62,0x72,0x3e,0x3c,0x70,0x3e,0x0d,0x0a,0x3c,0x68,\r
-0x72,0x3e,0x0d,0x0a,0x3c,0x62,0x72,0x3e,0x3c,0x70,0x3e,0x0d,0x0a,0x3c,0x68,0x32,\r
-0x3e,0x52,0x75,0x6e,0x2d,0x74,0x69,0x6d,0x65,0x20,0x73,0x74,0x61,0x74,0x69,0x73,\r
-0x74,0x69,0x63,0x73,0x3c,0x2f,0x68,0x32,0x3e,0x0d,0x0a,0x50,0x61,0x67,0x65,0x20,\r
-0x77,0x69,0x6c,0x6c,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x65,0x76,0x65,\r
-0x72,0x79,0x20,0x32,0x20,0x73,0x65,0x63,0x6f,0x6e,0x64,0x73,0x2e,0x3c,0x70,0x3e,\r
-0x0d,0x0a,0x3c,0x66,0x6f,0x6e,0x74,0x20,0x66,0x61,0x63,0x65,0x3d,0x22,0x63,0x6f,\r
-0x75,0x72,0x69,0x65,0x72,0x22,0x3e,0x3c,0x70,0x72,0x65,0x3e,0x54,0x61,0x73,0x6b,\r
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x41,0x62,0x73,0x20,\r
-0x54,0x69,0x6d,0x65,0x20,0x20,0x20,0x20,0x20,0x20,0x25,0x20,0x54,0x69,0x6d,0x65,\r
-0x3c,0x62,0x72,0x3e,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,\r
-0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,\r
-0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x3c,0x62,0x72,0x3e,\r
-0x0d,0x0a,0x3c,0x21,0x2d,0x2d,0x23,0x72,0x75,0x6e,0x5f,0x73,0x74,0x61,0x74,0x73,\r
-0x2d,0x2d,0x3e,0x0d,0x0d,0x0a,0x3c,0x2f,0x70,0x72,0x65,0x3e,0x3c,0x2f,0x66,0x6f,\r
-0x6e,0x74,0x3e,0x0d,0x0a,0x3c,0x2f,0x66,0x6f,0x6e,0x74,0x3e,0x0d,0x0a,0x3c,0x2f,\r
-0x62,0x6f,0x64,0x79,0x3e,0x0d,0x0a,0x3c,0x2f,0x68,0x74,0x6d,0x6c,0x3e,0x0d,0x0a,\r
-0x0d,0x0a,};\r
-\r
-\r
-\r
-const struct fsdata_file file__404_html[] = { {\r
-file_NULL,\r
-data__404_html,\r
-data__404_html + 12,\r
-sizeof(data__404_html) - 12,\r
-1,\r
-}};\r
-\r
-const struct fsdata_file file__index_shtml[] = { {\r
-file__404_html,\r
-data__index_shtml,\r
-data__index_shtml + 16,\r
-sizeof(data__index_shtml) - 16,\r
-1,\r
-}};\r
-\r
-const struct fsdata_file file__logo_jpg[] = { {\r
-file__index_shtml,\r
-data__logo_jpg,\r
-data__logo_jpg + 12,\r
-sizeof(data__logo_jpg) - 12,\r
-1,\r
-}};\r
-\r
-const struct fsdata_file file__runtime_shtml[] = { {\r
-file__logo_jpg,\r
-data__runtime_shtml,\r
-data__runtime_shtml + 16,\r
-sizeof(data__runtime_shtml) - 16,\r
-1,\r
-}};\r
-\r
-#define FS_ROOT file__runtime_shtml\r
-#define FS_NUMFILES 4\r
-\r
diff --git a/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/fsdata.h b/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/fsdata.h
deleted file mode 100644 (file)
index 6f6c557..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 2001-2003 Swedish Institute of Computer Science.
- * All rights reserved. 
- * 
- * Redistribution and use in source and binary forms, with or without modification, 
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission. 
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- * 
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __FSDATA_H__
-#define __FSDATA_H__
-
-#include "lwip/opt.h"
-#include "fs.h"
-
-struct fsdata_file {
-  const struct fsdata_file *next;
-  const unsigned char *name;
-  const unsigned char *data;
-  int len;
-  u8_t http_header_included;
-#if HTTPD_PRECALCULATED_CHECKSUM
-  u16_t chksum_count;
-  const struct fsdata_chksum *chksum;
-#endif /* HTTPD_PRECALCULATED_CHECKSUM */
-};
-
-#endif /* __FSDATA_H__ */
diff --git a/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/httpd.c b/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/httpd.c
deleted file mode 100644 (file)
index 6f1132c..0000000
+++ /dev/null
@@ -1,2184 +0,0 @@
-/*
- * Copyright (c) 2001-2003 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-
-/* This httpd supports for a
- * rudimentary server-side-include facility which will replace tags of the form
- * <!--#tag--> in any file whose extension is .shtml, .shtm or .ssi with
- * strings provided by an include handler whose pointer is provided to the
- * module via function http_set_ssi_handler().
- * Additionally, a simple common
- * gateway interface (CGI) handling mechanism has been added to allow clients
- * to hook functions to particular request URIs.
- *
- * To enable SSI support, define label LWIP_HTTPD_SSI in lwipopts.h.
- * To enable CGI support, define label LWIP_HTTPD_CGI in lwipopts.h.
- *
- * By default, the server assumes that HTTP headers are already present in
- * each file stored in the file system.  By defining LWIP_HTTPD_DYNAMIC_HEADERS in
- * lwipopts.h, this behavior can be changed such that the server inserts the
- * headers automatically based on the extension of the file being served.  If
- * this mode is used, be careful to ensure that the file system image used
- * does not already contain the header information.
- *
- * File system images without headers can be created using the makefsfile
- * tool with the -h command line option.
- *
- *
- * Notes about valid SSI tags
- * --------------------------
- *
- * The following assumptions are made about tags used in SSI markers:
- *
- * 1. No tag may contain '-' or whitespace characters within the tag name.
- * 2. Whitespace is allowed between the tag leadin "<!--#" and the start of
- *    the tag name and between the tag name and the leadout string "-->".
- * 3. The maximum tag name length is LWIP_HTTPD_MAX_TAG_NAME_LEN, currently 8 characters.
- *
- * Notes on CGI usage
- * ------------------
- *
- * The simple CGI support offered here works with GET method requests only
- * and can handle up to 16 parameters encoded into the URI. The handler
- * function may not write directly to the HTTP output but must return a
- * filename that the HTTP server will send to the browser as a response to
- * the incoming CGI request.
- *
- * @todo:
- * - don't use mem_malloc() (for SSI/dynamic headers)
- * - split too long functions into multiple smaller functions?
- * - support more file types?
- */
-#include "lwip/debug.h"
-#include "lwip/stats.h"
-#include "httpd.h"
-#include "httpd_structs.h"
-#include "lwip/tcp.h"
-#include "fs.h"
-
-#include <string.h>
-#include <stdlib.h>
-
-#if LWIP_TCP
-
-#ifndef HTTPD_DEBUG
-#define HTTPD_DEBUG         LWIP_DBG_OFF
-#endif
-
-/** Set this to 1 and add the next line to lwippools.h to use a memp pool
- * for allocating struct http_state instead of the heap:
- *
- * LWIP_MEMPOOL(HTTPD_STATE, 20, 100, "HTTPD_STATE")
- */
-#ifndef HTTPD_USE_MEM_POOL
-#define HTTPD_USE_MEM_POOL  0
-#endif
-
-/** The server port for HTTPD to use */
-#ifndef HTTPD_SERVER_PORT
-#define HTTPD_SERVER_PORT                   80
-#endif
-
-/** Maximum retries before the connection is aborted/closed.
- * - number of times pcb->poll is called -> default is 4*500ms = 2s;
- * - reset when pcb->sent is called
- */
-#ifndef HTTPD_MAX_RETRIES
-#define HTTPD_MAX_RETRIES                   4
-#endif
-
-/** The poll delay is X*500ms */
-#ifndef HTTPD_POLL_INTERVAL
-#define HTTPD_POLL_INTERVAL                 4
-#endif
-
-/** Priority for tcp pcbs created by HTTPD (very low by default).
- *  Lower priorities get killed first when running out of memroy.
- */
-#ifndef HTTPD_TCP_PRIO
-#define HTTPD_TCP_PRIO                      TCP_PRIO_MIN
-#endif
-
-/** Set this to 1 to enabled timing each file sent */
-#ifndef LWIP_HTTPD_TIMING
-#define LWIP_HTTPD_TIMING                   0
-#endif
-#ifndef HTTPD_DEBUG_TIMING
-#define HTTPD_DEBUG_TIMING                  LWIP_DBG_OFF
-#endif
-
-/** Set this to 1 on platforms where strnstr is not available */
-#ifndef LWIP_HTTPD_STRNSTR_PRIVATE
-#define LWIP_HTTPD_STRNSTR_PRIVATE          1
-#endif
-
-/** Set this to one to show error pages when parsing a request fails instead
-    of simply closing the connection. */
-#ifndef LWIP_HTTPD_SUPPORT_EXTSTATUS
-#define LWIP_HTTPD_SUPPORT_EXTSTATUS        0
-#endif
-
-/** Set this to 0 to drop support for HTTP/0.9 clients (to save some bytes) */
-#ifndef LWIP_HTTPD_SUPPORT_V09
-#define LWIP_HTTPD_SUPPORT_V09              1
-#endif
-
-/** Set this to 1 to support HTTP request coming in in multiple packets/pbufs */
-#ifndef LWIP_HTTPD_SUPPORT_REQUESTLIST
-#define LWIP_HTTPD_SUPPORT_REQUESTLIST      0
-#endif
-
-#if LWIP_HTTPD_SUPPORT_REQUESTLIST
-/** Number of rx pbufs to enqueue to parse an incoming request (up to the first
-    newline) */
-#ifndef LWIP_HTTPD_REQ_QUEUELEN
-#define LWIP_HTTPD_REQ_QUEUELEN             10
-#endif
-
-/** Number of (TCP payload-) bytes (in pbufs) to enqueue to parse and incoming
-    request (up to the first double-newline) */
-#ifndef LWIP_HTTPD_REQ_BUFSIZE
-#define LWIP_HTTPD_REQ_BUFSIZE              LWIP_HTTPD_MAX_REQ_LENGTH
-#endif
-
-/** Defines the maximum length of a HTTP request line (up to the first CRLF,
-    copied from pbuf into this a global buffer when pbuf- or packet-queues
-    are received - otherwise the input pbuf is used directly) */
-#ifndef LWIP_HTTPD_MAX_REQ_LENGTH
-#define LWIP_HTTPD_MAX_REQ_LENGTH           1023
-#endif
-#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */
-
-/** Maximum length of the filename to send as response to a POST request,
- * filled in by the application when a POST is finished.
- */
-#ifndef LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN
-#define LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN 63
-#endif
-
-/** Set this to 0 to not send the SSI tag (default is on, so the tag will
- * be sent in the HTML page */
-#ifndef LWIP_HTTPD_SSI_INCLUDE_TAG
-#define LWIP_HTTPD_SSI_INCLUDE_TAG           1
-#endif
-
-/** Set this to 1 to call tcp_abort when tcp_close fails with memory error.
- * This can be used to prevent consuming all memory in situations where the
- * HTTP server has low priority compared to other communication. */
-#ifndef LWIP_HTTPD_ABORT_ON_CLOSE_MEM_ERROR
-#define LWIP_HTTPD_ABORT_ON_CLOSE_MEM_ERROR  0
-#endif
-
-#ifndef true
-#define true ((u8_t)1)
-#endif
-
-#ifndef false
-#define false ((u8_t)0)
-#endif
-
-/** Minimum length for a valid HTTP/0.9 request: "GET /\r\n" -> 7 bytes */
-#define MIN_REQ_LEN   7
-
-#define CRLF "\r\n"
-
-/** These defines check whether tcp_write has to copy data or not */
-
-/** This was TI's check whether to let TCP copy data or not
-#define HTTP_IS_DATA_VOLATILE(hs) ((hs->file < (char *)0x20000000) ? 0 : TCP_WRITE_FLAG_COPY)*/
-#ifndef HTTP_IS_DATA_VOLATILE
-#if LWIP_HTTPD_SSI
-/* Copy for SSI files, no copy for non-SSI files */
-#define HTTP_IS_DATA_VOLATILE(hs)   ((hs)->tag_check ? TCP_WRITE_FLAG_COPY : 0)
-#else /* LWIP_HTTPD_SSI */
-/** Default: don't copy if the data is sent from file-system directly */
-#define HTTP_IS_DATA_VOLATILE(hs) (((hs->file != NULL) && (hs->handle != NULL) && (hs->file == \
-                                   (char*)hs->handle->data + hs->handle->len - hs->left)) \
-                                   ? 0 : TCP_WRITE_FLAG_COPY)
-#endif /* LWIP_HTTPD_SSI */
-#endif
-
-/** Default: headers are sent from ROM */
-#ifndef HTTP_IS_HDR_VOLATILE
-#define HTTP_IS_HDR_VOLATILE(hs, ptr) 0
-#endif
-
-#if LWIP_HTTPD_SSI
-/** Default: Tags are sent from struct http_state and are therefore volatile */
-#ifndef HTTP_IS_TAG_VOLATILE
-#define HTTP_IS_TAG_VOLATILE(ptr) TCP_WRITE_FLAG_COPY
-#endif
-#endif /* LWIP_HTTPD_SSI */
-
-typedef struct
-{
-  const char *name;
-  u8_t shtml;
-} default_filename;
-
-const default_filename g_psDefaultFilenames[] = {
-  {"/index.shtml", true },
-  {"/index.ssi", true },
-  {"/index.shtm", true },
-  {"/index.html", false },
-  {"/index.htm", false }
-};
-
-#define NUM_DEFAULT_FILENAMES (sizeof(g_psDefaultFilenames) /   \
-                               sizeof(default_filename))
-
-#if LWIP_HTTPD_SUPPORT_REQUESTLIST
-/** HTTP request is copied here from pbufs for simple parsing */
-static char httpd_req_buf[LWIP_HTTPD_MAX_REQ_LENGTH+1];
-#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */
-
-#if LWIP_HTTPD_SUPPORT_POST
-/** Filename for response file to send when POST is finished */
-static char http_post_response_filename[LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN+1];
-#endif /* LWIP_HTTPD_SUPPORT_POST */
-
-#if LWIP_HTTPD_DYNAMIC_HEADERS
-/* The number of individual strings that comprise the headers sent before each
- * requested file.
- */
-#define NUM_FILE_HDR_STRINGS 3
-#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */
-
-#if LWIP_HTTPD_SSI
-
-#define HTTPD_LAST_TAG_PART 0xFFFF
-
-const char * const g_pcSSIExtensions[] = {
-  ".shtml", ".shtm", ".ssi", ".xml"
-};
-
-#define NUM_SHTML_EXTENSIONS (sizeof(g_pcSSIExtensions) / sizeof(const char *))
-
-enum tag_check_state {
-  TAG_NONE,       /* Not processing an SSI tag */
-  TAG_LEADIN,     /* Tag lead in "<!--#" being processed */
-  TAG_FOUND,      /* Tag name being read, looking for lead-out start */
-  TAG_LEADOUT,    /* Tag lead out "-->" being processed */
-  TAG_SENDING     /* Sending tag replacement string */
-};
-#endif /* LWIP_HTTPD_SSI */
-
-struct http_state {
-  struct fs_file *handle;
-  char *file;       /* Pointer to first unsent byte in buf. */
-
-#if LWIP_HTTPD_SUPPORT_REQUESTLIST
-  struct pbuf *req;
-#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */
-
-#if LWIP_HTTPD_SSI || LWIP_HTTPD_DYNAMIC_HEADERS
-  char *buf;        /* File read buffer. */
-  int buf_len;      /* Size of file read buffer, buf. */
-#endif /* LWIP_HTTPD_SSI || LWIP_HTTPD_DYNAMIC_HEADERS */
-  u32_t left;       /* Number of unsent bytes in buf. */
-  u8_t retries;
-#if LWIP_HTTPD_SSI
-  const char *parsed;     /* Pointer to the first unparsed byte in buf. */
-#if !LWIP_HTTPD_SSI_INCLUDE_TAG
-  const char *tag_started;/* Poitner to the first opening '<' of the tag. */
-#endif /* !LWIP_HTTPD_SSI_INCLUDE_TAG */
-  const char *tag_end;    /* Pointer to char after the closing '>' of the tag. */
-  u32_t parse_left; /* Number of unparsed bytes in buf. */
-  u16_t tag_index;   /* Counter used by tag parsing state machine */
-  u16_t tag_insert_len; /* Length of insert in string tag_insert */
-#if LWIP_HTTPD_SSI_MULTIPART
-  u16_t tag_part; /* Counter passed to and changed by tag insertion function to insert multiple times */
-#endif /* LWIP_HTTPD_SSI_MULTIPART */
-  u8_t tag_check;   /* true if we are processing a .shtml file else false */
-  u8_t tag_name_len; /* Length of the tag name in string tag_name */
-  char tag_name[LWIP_HTTPD_MAX_TAG_NAME_LEN + 1]; /* Last tag name extracted */
-  char tag_insert[LWIP_HTTPD_MAX_TAG_INSERT_LEN + 1]; /* Insert string for tag_name */
-  enum tag_check_state tag_state; /* State of the tag processor */
-#endif /* LWIP_HTTPD_SSI */
-#if LWIP_HTTPD_CGI
-  char *params[LWIP_HTTPD_MAX_CGI_PARAMETERS]; /* Params extracted from the request URI */
-  char *param_vals[LWIP_HTTPD_MAX_CGI_PARAMETERS]; /* Values for each extracted param */
-#endif /* LWIP_HTTPD_CGI */
-#if LWIP_HTTPD_DYNAMIC_HEADERS
-  const char *hdrs[NUM_FILE_HDR_STRINGS]; /* HTTP headers to be sent. */
-  u16_t hdr_pos;     /* The position of the first unsent header byte in the
-                        current string */
-  u16_t hdr_index;   /* The index of the hdr string currently being sent. */
-#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */
-#if LWIP_HTTPD_TIMING
-  u32_t time_started;
-#endif /* LWIP_HTTPD_TIMING */
-#if LWIP_HTTPD_SUPPORT_POST
-  u32_t post_content_len_left;
-#if LWIP_HTTPD_POST_MANUAL_WND
-  u32_t unrecved_bytes;
-  struct tcp_pcb *pcb;
-  u8_t no_auto_wnd;
-#endif /* LWIP_HTTPD_POST_MANUAL_WND */
-#endif /* LWIP_HTTPD_SUPPORT_POST*/
-};
-
-static err_t http_find_file(struct http_state *hs, const char *uri, int is_09);
-static err_t http_init_file(struct http_state *hs, struct fs_file *file, int is_09, const char *uri);
-static err_t http_poll(void *arg, struct tcp_pcb *pcb);
-
-#if LWIP_HTTPD_SSI
-/* SSI insert handler function pointer. */
-tSSIHandler g_pfnSSIHandler = NULL;
-int g_iNumTags = 0;
-const char **g_ppcTags = NULL;
-
-#define LEN_TAG_LEAD_IN 5
-const char * const g_pcTagLeadIn = "<!--#";
-
-#define LEN_TAG_LEAD_OUT 3
-const char * const g_pcTagLeadOut = "-->";
-#endif /* LWIP_HTTPD_SSI */
-
-#if LWIP_HTTPD_CGI
-/* CGI handler information */
-const tCGI *g_pCGIs;
-int g_iNumCGIs;
-#endif /* LWIP_HTTPD_CGI */
-
-#if LWIP_HTTPD_STRNSTR_PRIVATE
-/** Like strstr but does not need 'buffer' to be NULL-terminated */
-static char*
-strnstr(const char* buffer, const char* token, size_t n)
-{
-  const char* p;
-  int tokenlen = (int)strlen(token);
-  if (tokenlen == 0) {
-    return (char *)buffer;
-  }
-  for (p = buffer; *p && (p + tokenlen <= buffer + n); p++) {
-    if ((*p == *token) && (strncmp(p, token, tokenlen) == 0)) {
-      return (char *)p;
-    }
-  }
-  return NULL;
-} 
-#endif /* LWIP_HTTPD_STRNSTR_PRIVATE */
-
-/** Allocate a struct http_state. */
-static struct http_state*
-http_state_alloc(void)
-{
-  struct http_state *ret;
-#if HTTPD_USE_MEM_POOL
-  ret = (struct http_state *)memp_malloc(MEMP_HTTPD_STATE);
-#else /* HTTPD_USE_MEM_POOL */
-  ret = (struct http_state *)mem_malloc(sizeof(struct http_state));
-#endif /* HTTPD_USE_MEM_POOL */
-  if (ret != NULL) {
-    /* Initialize the structure. */
-    memset(ret, 0, sizeof(struct http_state));
-#if LWIP_HTTPD_DYNAMIC_HEADERS
-    /* Indicate that the headers are not yet valid */
-    ret->hdr_index = NUM_FILE_HDR_STRINGS;
-#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */
-  }
-  return ret;
-}
-
-/** Free a struct http_state.
- * Also frees the file data if dynamic.
- */
-static void
-http_state_free(struct http_state *hs)
-{
-  if (hs != NULL) {
-    if(hs->handle) {
-#if LWIP_HTTPD_TIMING
-      u32_t ms_needed = sys_now() - hs->time_started;
-      u32_t needed = LWIP_MAX(1, (ms_needed/100));
-      LWIP_DEBUGF(HTTPD_DEBUG_TIMING, ("httpd: needed %"U32_F" ms to send file of %d bytes -> %"U32_F" bytes/sec\n",
-        ms_needed, hs->handle->len, ((((u32_t)hs->handle->len) * 10) / needed)));
-#endif /* LWIP_HTTPD_TIMING */
-      fs_close(hs->handle);
-      hs->handle = NULL;
-    }
-#if LWIP_HTTPD_SSI || LWIP_HTTPD_DYNAMIC_HEADERS
-    if (hs->buf != NULL) {
-      mem_free(hs->buf);
-      hs->buf = NULL;
-    }
-#endif /* LWIP_HTTPD_SSI || LWIP_HTTPD_DYNAMIC_HEADERS */
-#if HTTPD_USE_MEM_POOL
-    memp_free(MEMP_HTTPD_STATE, hs);
-#else /* HTTPD_USE_MEM_POOL */
-    mem_free(hs);
-#endif /* HTTPD_USE_MEM_POOL */
-  }
-}
-
-/** Call tcp_write() in a loop trying smaller and smaller length
- *
- * @param pcb tcp_pcb to send
- * @param ptr Data to send
- * @param length Length of data to send (in/out: on return, contains the
- *        amount of data sent)
- * @param apiflags directly passed to tcp_write
- * @return the return value of tcp_write
- */
-static err_t
-http_write(struct tcp_pcb *pcb, const void* ptr, u16_t *length, u8_t apiflags)
-{
-   u16_t len;
-   err_t err;
-   LWIP_ASSERT("length != NULL", length != NULL);
-   len = *length;
-   do {
-     LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Trying go send %d bytes\n", len));
-     err = tcp_write(pcb, ptr, len, apiflags);
-     if (err == ERR_MEM) {
-       if ((tcp_sndbuf(pcb) == 0) ||
-           (tcp_sndqueuelen(pcb) >= TCP_SND_QUEUELEN)) {
-         /* no need to try smaller sizes */
-         len = 1;
-       } else {
-         len /= 2;
-       }
-       LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, 
-                   ("Send failed, trying less (%d bytes)\n", len));
-     }
-   } while ((err == ERR_MEM) && (len > 1));
-
-   if (err == ERR_OK) {
-     LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Sent %d bytes\n", len));
-   } else {
-     LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Send failed with err %d (\"%s\")\n", err, lwip_strerr(err)));
-   }
-
-   *length = len;
-   return err;
-}
-
-/**
- * The connection shall be actively closed.
- * Reset the sent- and recv-callbacks.
- *
- * @param pcb the tcp pcb to reset callbacks
- * @param hs connection state to free
- */
-static err_t
-http_close_conn(struct tcp_pcb *pcb, struct http_state *hs)
-{
-  err_t err;
-  LWIP_DEBUGF(HTTPD_DEBUG, ("Closing connection %p\n", (void*)pcb));
-
-#if LWIP_HTTPD_SUPPORT_POST
-  if (hs != NULL) {
-    if ((hs->post_content_len_left != 0)
-#if LWIP_HTTPD_POST_MANUAL_WND
-       || ((hs->no_auto_wnd != 0) && (hs->unrecved_bytes != 0))
-#endif /* LWIP_HTTPD_POST_MANUAL_WND */
-       ) {
-      /* make sure the post code knows that the connection is closed */
-      http_post_response_filename[0] = 0;
-      httpd_post_finished(hs, http_post_response_filename, LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN);
-    }
-  }
-#endif /* LWIP_HTTPD_SUPPORT_POST*/
-
-
-  tcp_arg(pcb, NULL);
-  tcp_recv(pcb, NULL);
-  tcp_err(pcb, NULL);
-  tcp_poll(pcb, NULL, 0);
-  tcp_sent(pcb, NULL);
-  if(hs != NULL) {
-    http_state_free(hs);
-  }
-
-  err = tcp_close(pcb);
-  if (err != ERR_OK) {
-    LWIP_DEBUGF(HTTPD_DEBUG, ("Error %d closing %p\n", err, (void*)pcb));
-    /* error closing, try again later in poll */
-    tcp_poll(pcb, http_poll, HTTPD_POLL_INTERVAL);
-  }
-  return err;
-}
-#if LWIP_HTTPD_CGI
-/**
- * Extract URI parameters from the parameter-part of an URI in the form
- * "test.cgi?x=y" @todo: better explanation!
- * Pointers to the parameters are stored in hs->param_vals.
- *
- * @param hs http connection state
- * @param params pointer to the NULL-terminated parameter string from the URI
- * @return number of parameters extracted
- */
-static int
-extract_uri_parameters(struct http_state *hs, char *params)
-{
-  char *pair;
-  char *equals;
-  int loop;
-
-  /* If we have no parameters at all, return immediately. */
-  if(!params || (params[0] == '\0')) {
-      return(0);
-  }
-
-  /* Get a pointer to our first parameter */
-  pair = params;
-
-  /* Parse up to LWIP_HTTPD_MAX_CGI_PARAMETERS from the passed string and ignore the
-   * remainder (if any) */
-  for(loop = 0; (loop < LWIP_HTTPD_MAX_CGI_PARAMETERS) && pair; loop++) {
-
-    /* Save the name of the parameter */
-    hs->params[loop] = pair;
-
-    /* Remember the start of this name=value pair */
-    equals = pair;
-
-    /* Find the start of the next name=value pair and replace the delimiter
-     * with a 0 to terminate the previous pair string. */
-    pair = strchr(pair, '&');
-    if(pair) {
-      *pair = '\0';
-      pair++;
-    } else {
-       /* We didn't find a new parameter so find the end of the URI and
-        * replace the space with a '\0' */
-        pair = strchr(equals, ' ');
-        if(pair) {
-            *pair = '\0';
-        }
-
-        /* Revert to NULL so that we exit the loop as expected. */
-        pair = NULL;
-    }
-
-    /* Now find the '=' in the previous pair, replace it with '\0' and save
-     * the parameter value string. */
-    equals = strchr(equals, '=');
-    if(equals) {
-      *equals = '\0';
-      hs->param_vals[loop] = equals + 1;
-    } else {
-      hs->param_vals[loop] = NULL;
-    }
-  }
-
-  return loop;
-}
-#endif /* LWIP_HTTPD_CGI */
-
-#if LWIP_HTTPD_SSI
-/**
- * Insert a tag (found in an shtml in the form of "<!--#tagname-->" into the file.
- * The tag's name is stored in hs->tag_name (NULL-terminated), the replacement
- * should be written to hs->tag_insert (up to a length of LWIP_HTTPD_MAX_TAG_INSERT_LEN).
- * The amount of data written is stored to hs->tag_insert_len.
- *
- * @todo: return tag_insert_len - maybe it can be removed from struct http_state?
- *
- * @param hs http connection state
- */
-static void
-get_tag_insert(struct http_state *hs)
-{
-  int loop;
-  size_t len;
-#if LWIP_HTTPD_SSI_MULTIPART
-  u16_t current_tag_part = hs->tag_part;
-  hs->tag_part = HTTPD_LAST_TAG_PART;
-#endif /* LWIP_HTTPD_SSI_MULTIPART */
-
-  if(g_pfnSSIHandler && g_ppcTags && g_iNumTags) {
-
-    /* Find this tag in the list we have been provided. */
-    for(loop = 0; loop < g_iNumTags; loop++) {
-      if(strcmp(hs->tag_name, g_ppcTags[loop]) == 0) {
-        hs->tag_insert_len = g_pfnSSIHandler(loop, hs->tag_insert,
-           LWIP_HTTPD_MAX_TAG_INSERT_LEN
-#if LWIP_HTTPD_SSI_MULTIPART
-           , current_tag_part, &hs->tag_part
-#endif /* LWIP_HTTPD_SSI_MULTIPART */
-#if LWIP_HTTPD_FILE_STATE
-           , hs->handle->state
-#endif /* LWIP_HTTPD_FILE_STATE */
-           );
-        return;
-      }
-    }
-  }
-
-  /* If we drop out, we were asked to serve a page which contains tags that
-   * we don't have a handler for. Merely echo back the tags with an error
-   * marker. */
-#define UNKNOWN_TAG1_TEXT "<b>***UNKNOWN TAG "
-#define UNKNOWN_TAG1_LEN  18
-#define UNKNOWN_TAG2_TEXT "***</b>"
-#define UNKNOWN_TAG2_LEN  7
-  len = LWIP_MIN(strlen(hs->tag_name),
-    LWIP_HTTPD_MAX_TAG_INSERT_LEN - (UNKNOWN_TAG1_LEN + UNKNOWN_TAG2_LEN));
-  MEMCPY(hs->tag_insert, UNKNOWN_TAG1_TEXT, UNKNOWN_TAG1_LEN);
-  MEMCPY(&hs->tag_insert[UNKNOWN_TAG1_LEN], hs->tag_name, len);
-  MEMCPY(&hs->tag_insert[UNKNOWN_TAG1_LEN + len], UNKNOWN_TAG2_TEXT, UNKNOWN_TAG2_LEN);
-  hs->tag_insert[UNKNOWN_TAG1_LEN + len + UNKNOWN_TAG2_LEN] = 0;
-
-  len = strlen(hs->tag_insert);
-  LWIP_ASSERT("len <= 0xffff", len <= 0xffff);
-  hs->tag_insert_len = (u16_t)len;
-}
-#endif /* LWIP_HTTPD_SSI */
-
-#if LWIP_HTTPD_DYNAMIC_HEADERS
-/**
- * Generate the relevant HTTP headers for the given filename and write
- * them into the supplied buffer.
- */
-static void
-get_http_headers(struct http_state *pState, char *pszURI)
-{
-  unsigned int iLoop;
-  char *pszWork;
-  char *pszExt;
-  char *pszVars;
-
-  /* Ensure that we initialize the loop counter. */
-  iLoop = 0;
-
-  /* In all cases, the second header we send is the server identification
-     so set it here. */
-  pState->hdrs[1] = g_psHTTPHeaderStrings[HTTP_HDR_SERVER];
-
-  /* Is this a normal file or the special case we use to send back the
-     default "404: Page not found" response? */
-  if (pszURI == NULL) {
-    pState->hdrs[0] = g_psHTTPHeaderStrings[HTTP_HDR_NOT_FOUND];
-    pState->hdrs[2] = g_psHTTPHeaderStrings[DEFAULT_404_HTML];
-
-    /* Set up to send the first header string. */
-    pState->hdr_index = 0;
-    pState->hdr_pos = 0;
-    return;
-  } else {
-    /* We are dealing with a particular filename. Look for one other
-       special case.  We assume that any filename with "404" in it must be
-       indicative of a 404 server error whereas all other files require
-       the 200 OK header. */
-    if (strstr(pszURI, "404")) {
-      pState->hdrs[0] = g_psHTTPHeaderStrings[HTTP_HDR_NOT_FOUND];
-    } else if (strstr(pszURI, "400")) {
-      pState->hdrs[0] = g_psHTTPHeaderStrings[HTTP_HDR_BAD_REQUEST];
-    } else if (strstr(pszURI, "501")) {
-      pState->hdrs[0] = g_psHTTPHeaderStrings[HTTP_HDR_NOT_IMPL];
-    } else {
-      pState->hdrs[0] = g_psHTTPHeaderStrings[HTTP_HDR_OK];
-    }
-
-    /* Determine if the URI has any variables and, if so, temporarily remove 
-       them. */
-    pszVars = strchr(pszURI, '?');
-    if(pszVars) {
-      *pszVars = '\0';
-    }
-
-    /* Get a pointer to the file extension.  We find this by looking for the
-       last occurrence of "." in the filename passed. */
-    pszExt = NULL;
-    pszWork = strchr(pszURI, '.');
-    while(pszWork) {
-      pszExt = pszWork + 1;
-      pszWork = strchr(pszExt, '.');
-    }
-
-    /* Now determine the content type and add the relevant header for that. */
-    for(iLoop = 0; (iLoop < NUM_HTTP_HEADERS) && pszExt; iLoop++) {
-      /* Have we found a matching extension? */
-      if(!strcmp(g_psHTTPHeaders[iLoop].extension, pszExt)) {
-        pState->hdrs[2] =
-          g_psHTTPHeaderStrings[g_psHTTPHeaders[iLoop].headerIndex];
-        break;
-      }
-    }
-
-    /* Reinstate the parameter marker if there was one in the original URI. */
-    if(pszVars) {
-      *pszVars = '?';
-    }
-  }
-
-  /* Does the URL passed have any file extension?  If not, we assume it
-     is a special-case URL used for control state notification and we do
-     not send any HTTP headers with the response. */
-  if(!pszExt) {
-    /* Force the header index to a value indicating that all headers
-       have already been sent. */
-    pState->hdr_index = NUM_FILE_HDR_STRINGS;
-  } else {
-    /* Did we find a matching extension? */
-    if(iLoop == NUM_HTTP_HEADERS) {
-      /* No - use the default, plain text file type. */
-      pState->hdrs[2] = g_psHTTPHeaderStrings[HTTP_HDR_DEFAULT_TYPE];
-    }
-
-    /* Set up to send the first header string. */
-    pState->hdr_index = 0;
-    pState->hdr_pos = 0;
-  }
-}
-#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */
-
-/**
- * Try to send more data on this pcb.
- *
- * @param pcb the pcb to send data
- * @param hs connection state
- */
-static u8_t
-http_send_data(struct tcp_pcb *pcb, struct http_state *hs)
-{
-  err_t err;
-  u16_t len;
-  u16_t mss;
-  u8_t data_to_send = false;
-#if LWIP_HTTPD_DYNAMIC_HEADERS
-  u16_t hdrlen, sendlen;
-#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */
-
-  LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("http_send_data: pcb=%p hs=%p left=%d\n", (void*)pcb,
-    (void*)hs, hs != NULL ? hs->left : 0));
-
-#if LWIP_HTTPD_SUPPORT_POST && LWIP_HTTPD_POST_MANUAL_WND
-  if (hs->unrecved_bytes != 0) {
-    return 0;
-  }
-#endif /* LWIP_HTTPD_SUPPORT_POST && LWIP_HTTPD_POST_MANUAL_WND */
-
-#if LWIP_HTTPD_DYNAMIC_HEADERS
-  /* If we were passed a NULL state structure pointer, ignore the call. */
-  if (hs == NULL) {
-    return 0;
-  }
-
-  /* Assume no error until we find otherwise */
-  err = ERR_OK;
-
-  /* Do we have any more header data to send for this file? */
-  if(hs->hdr_index < NUM_FILE_HDR_STRINGS) {
-    /* How much data can we send? */
-    len = tcp_sndbuf(pcb);
-    sendlen = len;
-
-    while(len && (hs->hdr_index < NUM_FILE_HDR_STRINGS) && sendlen) {
-      const void *ptr;
-      u16_t old_sendlen;
-      /* How much do we have to send from the current header? */
-      hdrlen = (u16_t)strlen(hs->hdrs[hs->hdr_index]);
-
-      /* How much of this can we send? */
-      sendlen = (len < (hdrlen - hs->hdr_pos)) ? len : (hdrlen - hs->hdr_pos);
-
-      /* Send this amount of data or as much as we can given memory
-      * constraints. */
-      ptr = (const void *)(hs->hdrs[hs->hdr_index] + hs->hdr_pos);
-      old_sendlen = sendlen;
-      err = http_write(pcb, ptr, &sendlen, HTTP_IS_HDR_VOLATILE(hs, ptr));
-      if ((err == ERR_OK) && (old_sendlen != sendlen)) {
-        /* Remember that we added some more data to be transmitted. */
-        data_to_send = true;
-      } else if (err != ERR_OK) {
-         /* special case: http_write does not try to send 1 byte */
-        sendlen = 0;
-      }
-
-      /* Fix up the header position for the next time round. */
-      hs->hdr_pos += sendlen;
-      len -= sendlen;
-
-      /* Have we finished sending this string? */
-      if(hs->hdr_pos == hdrlen) {
-        /* Yes - move on to the next one */
-        hs->hdr_index++;
-        hs->hdr_pos = 0;
-      }
-    }
-
-    /* If we get here and there are still header bytes to send, we send
-    * the header information we just wrote immediately.  If there are no
-    * more headers to send, but we do have file data to send, drop through
-    * to try to send some file data too. */
-    if((hs->hdr_index < NUM_FILE_HDR_STRINGS) || !hs->file) {
-      LWIP_DEBUGF(HTTPD_DEBUG, ("tcp_output\n"));
-      return 1;
-    }
-  }
-#else /* LWIP_HTTPD_DYNAMIC_HEADERS */
-  /* Assume no error until we find otherwise */
-  err = ERR_OK;
-#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */
-
-  /* Have we run out of file data to send? If so, we need to read the next
-   * block from the file. */
-  if (hs->left == 0) {
-#if LWIP_HTTPD_SSI || LWIP_HTTPD_DYNAMIC_HEADERS
-    int count;
-#endif /* LWIP_HTTPD_SSI || LWIP_HTTPD_DYNAMIC_HEADERS */
-
-    /* Do we have a valid file handle? */
-    if (hs->handle == NULL) {
-      /* No - close the connection. */
-      http_close_conn(pcb, hs);
-      return 0;
-    }
-    if (fs_bytes_left(hs->handle) <= 0) {
-      /* We reached the end of the file so this request is done.
-       * @todo: don't close here for HTTP/1.1? */
-      LWIP_DEBUGF(HTTPD_DEBUG, ("End of file.\n"));
-      http_close_conn(pcb, hs);
-      return 0;
-    }
-#if LWIP_HTTPD_SSI || LWIP_HTTPD_DYNAMIC_HEADERS
-    /* Do we already have a send buffer allocated? */
-    if(hs->buf) {
-      /* Yes - get the length of the buffer */
-      count = hs->buf_len;
-    } else {
-      /* We don't have a send buffer so allocate one up to 2mss bytes long. */
-      count = 2 * tcp_mss(pcb);
-      do {
-        hs->buf = (char*)mem_malloc((mem_size_t)count);
-        if (hs->buf != NULL) {
-          hs->buf_len = count;
-          break;
-        }
-        count = count / 2;
-      } while (count > 100);
-
-      /* Did we get a send buffer? If not, return immediately. */
-      if (hs->buf == NULL) {
-        LWIP_DEBUGF(HTTPD_DEBUG, ("No buff\n"));
-        return 0;
-      }
-    }
-
-    /* Read a block of data from the file. */
-    LWIP_DEBUGF(HTTPD_DEBUG, ("Trying to read %d bytes.\n", count));
-
-    count = fs_read(hs->handle, hs->buf, count);
-    if(count < 0) {
-      /* We reached the end of the file so this request is done.
-       * @todo: don't close here for HTTP/1.1? */
-      LWIP_DEBUGF(HTTPD_DEBUG, ("End of file.\n"));
-      http_close_conn(pcb, hs);
-      return 1;
-    }
-
-    /* Set up to send the block of data we just read */
-    LWIP_DEBUGF(HTTPD_DEBUG, ("Read %d bytes.\n", count));
-    hs->left = count;
-    hs->file = hs->buf;
-#if LWIP_HTTPD_SSI
-    hs->parse_left = count;
-    hs->parsed = hs->buf;
-#endif /* LWIP_HTTPD_SSI */
-#else /* LWIP_HTTPD_SSI || LWIP_HTTPD_DYNAMIC_HEADERS */
-    LWIP_ASSERT("SSI and DYNAMIC_HEADERS turned off but eof not reached", 0);
-#endif /* LWIP_HTTPD_SSI || LWIP_HTTPD_DYNAMIC_HEADERS */
-  }
-
-#if LWIP_HTTPD_SSI
-  if(!hs->tag_check) {
-#endif /* LWIP_HTTPD_SSI */
-    /* We are not processing an SHTML file so no tag checking is necessary.
-     * Just send the data as we received it from the file. */
-
-    /* We cannot send more data than space available in the send
-       buffer. */
-    if (tcp_sndbuf(pcb) < hs->left) {
-      len = tcp_sndbuf(pcb);
-    } else {
-      len = (u16_t)hs->left;
-      LWIP_ASSERT("hs->left did not fit into u16_t!", (len == hs->left));
-    }
-    mss = tcp_mss(pcb);
-    if(len > (2 * mss)) {
-      len = 2 * mss;
-    }
-
-    err = http_write(pcb, hs->file, &len, HTTP_IS_DATA_VOLATILE(hs));
-    if (err == ERR_OK) {
-      data_to_send = true;
-      hs->file += len;
-      hs->left -= len;
-    }
-#if LWIP_HTTPD_SSI
-  } else {
-    /* We are processing an SHTML file so need to scan for tags and replace
-     * them with insert strings. We need to be careful here since a tag may
-     * straddle the boundary of two blocks read from the file and we may also
-     * have to split the insert string between two tcp_write operations. */
-
-    /* How much data could we send? */
-    len = tcp_sndbuf(pcb);
-
-    /* Do we have remaining data to send before parsing more? */
-    if(hs->parsed > hs->file) {
-      /* We cannot send more data than space available in the send
-         buffer. */
-      if (tcp_sndbuf(pcb) < (hs->parsed - hs->file)) {
-        len = tcp_sndbuf(pcb);
-      } else {
-        LWIP_ASSERT("Data size does not fit into u16_t!",
-                    (hs->parsed - hs->file) <= 0xffff);
-        len = (u16_t)(hs->parsed - hs->file);
-      }
-      mss = tcp_mss(pcb);
-      if(len > (2 * mss)) {
-        len = 2 * mss;
-      }
-
-      err = http_write(pcb, hs->file, &len, HTTP_IS_DATA_VOLATILE(hs));
-      if (err == ERR_OK) {
-        data_to_send = true;
-        hs->file += len;
-        hs->left -= len;
-      }
-
-      /* If the send buffer is full, return now. */
-      if(tcp_sndbuf(pcb) == 0) {
-        return data_to_send;
-      }
-    }
-
-    LWIP_DEBUGF(HTTPD_DEBUG, ("State %d, %d left\n", hs->tag_state, hs->parse_left));
-
-    /* We have sent all the data that was already parsed so continue parsing
-     * the buffer contents looking for SSI tags. */
-    while((hs->parse_left) && (err == ERR_OK)) {
-      /* @todo: somewhere in this loop, 'len' should grow again... */
-      if (len == 0) {
-        return data_to_send;
-      }
-      switch(hs->tag_state) {
-        case TAG_NONE:
-          /* We are not currently processing an SSI tag so scan for the
-           * start of the lead-in marker. */
-          if(*hs->parsed == g_pcTagLeadIn[0]) {
-            /* We found what could be the lead-in for a new tag so change
-             * state appropriately. */
-            hs->tag_state = TAG_LEADIN;
-            hs->tag_index = 1;
-#if !LWIP_HTTPD_SSI_INCLUDE_TAG
-            hs->tag_started = hs->parsed;
-#endif /* !LWIP_HTTPD_SSI_INCLUDE_TAG */
-          }
-
-          /* Move on to the next character in the buffer */
-          hs->parse_left--;
-          hs->parsed++;
-          break;
-
-        case TAG_LEADIN:
-          /* We are processing the lead-in marker, looking for the start of
-           * the tag name. */
-
-          /* Have we reached the end of the leadin? */
-          if(hs->tag_index == LEN_TAG_LEAD_IN) {
-            hs->tag_index = 0;
-            hs->tag_state = TAG_FOUND;
-          } else {
-            /* Have we found the next character we expect for the tag leadin? */
-            if(*hs->parsed == g_pcTagLeadIn[hs->tag_index]) {
-              /* Yes - move to the next one unless we have found the complete
-               * leadin, in which case we start looking for the tag itself */
-              hs->tag_index++;
-            } else {
-              /* We found an unexpected character so this is not a tag. Move
-               * back to idle state. */
-              hs->tag_state = TAG_NONE;
-            }
-
-            /* Move on to the next character in the buffer */
-            hs->parse_left--;
-            hs->parsed++;
-          }
-          break;
-
-        case TAG_FOUND:
-          /* We are reading the tag name, looking for the start of the
-           * lead-out marker and removing any whitespace found. */
-
-          /* Remove leading whitespace between the tag leading and the first
-           * tag name character. */
-          if((hs->tag_index == 0) && ((*hs->parsed == ' ') ||
-             (*hs->parsed == '\t') || (*hs->parsed == '\n') ||
-             (*hs->parsed == '\r'))) {
-            /* Move on to the next character in the buffer */
-            hs->parse_left--;
-            hs->parsed++;
-            break;
-          }
-
-          /* Have we found the end of the tag name? This is signalled by
-           * us finding the first leadout character or whitespace */
-          if((*hs->parsed == g_pcTagLeadOut[0]) ||
-             (*hs->parsed == ' ') || (*hs->parsed == '\t') ||
-             (*hs->parsed == '\n')  || (*hs->parsed == '\r')) {
-
-            if(hs->tag_index == 0) {
-              /* We read a zero length tag so ignore it. */
-              hs->tag_state = TAG_NONE;
-            } else {
-              /* We read a non-empty tag so go ahead and look for the
-               * leadout string. */
-              hs->tag_state = TAG_LEADOUT;
-              LWIP_ASSERT("hs->tag_index <= 0xff", hs->tag_index <= 0xff);
-              hs->tag_name_len = (u8_t)hs->tag_index;
-              hs->tag_name[hs->tag_index] = '\0';
-              if(*hs->parsed == g_pcTagLeadOut[0]) {
-                hs->tag_index = 1;
-              } else {
-                hs->tag_index = 0;
-              }
-            }
-          } else {
-            /* This character is part of the tag name so save it */
-            if(hs->tag_index < LWIP_HTTPD_MAX_TAG_NAME_LEN) {
-              hs->tag_name[hs->tag_index++] = *hs->parsed;
-            } else {
-              /* The tag was too long so ignore it. */
-              hs->tag_state = TAG_NONE;
-            }
-          }
-
-          /* Move on to the next character in the buffer */
-          hs->parse_left--;
-          hs->parsed++;
-
-          break;
-
-        /* We are looking for the end of the lead-out marker. */
-        case TAG_LEADOUT:
-          /* Remove leading whitespace between the tag leading and the first
-           * tag leadout character. */
-          if((hs->tag_index == 0) && ((*hs->parsed == ' ') ||
-             (*hs->parsed == '\t') || (*hs->parsed == '\n') ||
-             (*hs->parsed == '\r'))) {
-            /* Move on to the next character in the buffer */
-            hs->parse_left--;
-            hs->parsed++;
-            break;
-          }
-
-          /* Have we found the next character we expect for the tag leadout? */
-          if(*hs->parsed == g_pcTagLeadOut[hs->tag_index]) {
-            /* Yes - move to the next one unless we have found the complete
-             * leadout, in which case we need to call the client to process
-             * the tag. */
-
-            /* Move on to the next character in the buffer */
-            hs->parse_left--;
-            hs->parsed++;
-
-            if(hs->tag_index == (LEN_TAG_LEAD_OUT - 1)) {
-              /* Call the client to ask for the insert string for the
-               * tag we just found. */
-#if LWIP_HTTPD_SSI_MULTIPART
-              hs->tag_part = 0; /* start with tag part 0 */
-#endif /* LWIP_HTTPD_SSI_MULTIPART */
-              get_tag_insert(hs);
-
-              /* Next time through, we are going to be sending data
-               * immediately, either the end of the block we start
-               * sending here or the insert string. */
-              hs->tag_index = 0;
-              hs->tag_state = TAG_SENDING;
-              hs->tag_end = hs->parsed;
-#if !LWIP_HTTPD_SSI_INCLUDE_TAG
-              hs->parsed = hs->tag_started;
-#endif /* !LWIP_HTTPD_SSI_INCLUDE_TAG*/
-
-              /* If there is any unsent data in the buffer prior to the
-               * tag, we need to send it now. */
-              if (hs->tag_end > hs->file) {
-                /* How much of the data can we send? */
-#if LWIP_HTTPD_SSI_INCLUDE_TAG
-                if(len > hs->tag_end - hs->file) {
-                  len = (u16_t)(hs->tag_end - hs->file);
-                }
-#else /* LWIP_HTTPD_SSI_INCLUDE_TAG*/
-                if(len > hs->tag_started - hs->file) {
-                  /* we would include the tag in sending */
-                  len = (u16_t)(hs->tag_started - hs->file);
-                }
-#endif /* LWIP_HTTPD_SSI_INCLUDE_TAG*/
-
-                err = http_write(pcb, hs->file, &len, HTTP_IS_DATA_VOLATILE(hs));
-                if (err == ERR_OK) {
-                  data_to_send = true;
-#if !LWIP_HTTPD_SSI_INCLUDE_TAG
-                  if(hs->tag_started <= hs->file) {
-                    /* pretend to have sent the tag, too */
-                    len += hs->tag_end - hs->tag_started;
-                  }
-#endif /* !LWIP_HTTPD_SSI_INCLUDE_TAG*/
-                  hs->file += len;
-                  hs->left -= len;
-                }
-              }
-            } else {
-              hs->tag_index++;
-            }
-          } else {
-            /* We found an unexpected character so this is not a tag. Move
-             * back to idle state. */
-            hs->parse_left--;
-            hs->parsed++;
-            hs->tag_state = TAG_NONE;
-          }
-          break;
-
-        /*
-         * We have found a valid tag and are in the process of sending
-         * data as a result of that discovery. We send either remaining data
-         * from the file prior to the insert point or the insert string itself.
-         */
-        case TAG_SENDING:
-          /* Do we have any remaining file data to send from the buffer prior
-           * to the tag? */
-          if(hs->tag_end > hs->file) {
-            /* How much of the data can we send? */
-#if LWIP_HTTPD_SSI_INCLUDE_TAG
-            if(len > hs->tag_end - hs->file) {
-              len = (u16_t)(hs->tag_end - hs->file);
-            }
-#else /* LWIP_HTTPD_SSI_INCLUDE_TAG*/
-            LWIP_ASSERT("hs->started >= hs->file", hs->tag_started >= hs->file);
-            if (len > hs->tag_started - hs->file) {
-              /* we would include the tag in sending */
-              len = (u16_t)(hs->tag_started - hs->file);
-            }
-#endif /* LWIP_HTTPD_SSI_INCLUDE_TAG*/
-            if (len != 0) {
-              err = http_write(pcb, hs->file, &len, HTTP_IS_DATA_VOLATILE(hs));
-            } else {
-              err = ERR_OK;
-            }
-            if (err == ERR_OK) {
-              data_to_send = true;
-#if !LWIP_HTTPD_SSI_INCLUDE_TAG
-              if(hs->tag_started <= hs->file) {
-                /* pretend to have sent the tag, too */
-                len += hs->tag_end - hs->tag_started;
-              }
-#endif /* !LWIP_HTTPD_SSI_INCLUDE_TAG*/
-              hs->file += len;
-              hs->left -= len;
-            }
-          } else {
-#if LWIP_HTTPD_SSI_MULTIPART
-            if(hs->tag_index >= hs->tag_insert_len) {
-              /* Did the last SSIHandler have more to send? */
-              if (hs->tag_part != HTTPD_LAST_TAG_PART) {
-                /* If so, call it again */
-                hs->tag_index = 0;
-                get_tag_insert(hs);
-              }
-            }
-#endif /* LWIP_HTTPD_SSI_MULTIPART */
-
-            /* Do we still have insert data left to send? */
-            if(hs->tag_index < hs->tag_insert_len) {
-              /* We are sending the insert string itself. How much of the
-               * insert can we send? */
-              if(len > (hs->tag_insert_len - hs->tag_index)) {
-                len = (hs->tag_insert_len - hs->tag_index);
-              }
-
-              /* Note that we set the copy flag here since we only have a
-               * single tag insert buffer per connection. If we don't do
-               * this, insert corruption can occur if more than one insert
-               * is processed before we call tcp_output. */
-              err = http_write(pcb, &(hs->tag_insert[hs->tag_index]), &len,
-                               HTTP_IS_TAG_VOLATILE(hs));
-              if (err == ERR_OK) {
-                data_to_send = true;
-                hs->tag_index += len;
-                /* Don't return here: keep on sending data */
-              }
-            } else {
-              /* We have sent all the insert data so go back to looking for
-               * a new tag. */
-              LWIP_DEBUGF(HTTPD_DEBUG, ("Everything sent.\n"));
-              hs->tag_index = 0;
-              hs->tag_state = TAG_NONE;
-#if !LWIP_HTTPD_SSI_INCLUDE_TAG
-              hs->parsed = hs->tag_end;
-#endif /* !LWIP_HTTPD_SSI_INCLUDE_TAG*/
-            }
-            break;
-        }
-      }
-    }
-
-    /* If we drop out of the end of the for loop, this implies we must have
-     * file data to send so send it now. In TAG_SENDING state, we've already
-     * handled this so skip the send if that's the case. */
-    if((hs->tag_state != TAG_SENDING) && (hs->parsed > hs->file)) {
-      /* We cannot send more data than space available in the send
-         buffer. */
-      if (tcp_sndbuf(pcb) < (hs->parsed - hs->file)) {
-        len = tcp_sndbuf(pcb);
-      } else {
-        LWIP_ASSERT("Data size does not fit into u16_t!",
-                    (hs->parsed - hs->file) <= 0xffff);
-        len = (u16_t)(hs->parsed - hs->file);
-      }
-      if(len > (2 * tcp_mss(pcb))) {
-        len = 2 * tcp_mss(pcb);
-      }
-
-      err = http_write(pcb, hs->file, &len, HTTP_IS_DATA_VOLATILE(hs));
-      if (err == ERR_OK) {
-        data_to_send = true;
-        hs->file += len;
-        hs->left -= len;
-      }
-    }
-  }
-#endif /* LWIP_HTTPD_SSI */
-
-  if((hs->left == 0) && (fs_bytes_left(hs->handle) <= 0)) {
-    /* We reached the end of the file so this request is done.
-     * This adds the FIN flag right into the last data segment.
-     * @todo: don't close here for HTTP/1.1? */
-    LWIP_DEBUGF(HTTPD_DEBUG, ("End of file.\n"));
-    http_close_conn(pcb, hs);
-    return 0;
-  }
-  LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("send_data end.\n"));
-  return data_to_send;
-}
-
-#if LWIP_HTTPD_SUPPORT_EXTSTATUS
-/** Initialize a http connection with a file to send for an error message
- *
- * @param hs http connection state
- * @param error_nr HTTP error number
- * @return ERR_OK if file was found and hs has been initialized correctly
- *         another err_t otherwise
- */
-static err_t
-http_find_error_file(struct http_state *hs, u16_t error_nr)
-{
-  const char *uri1, *uri2, *uri3;
-  struct fs_file *file;
-
-  if (error_nr == 501) {
-    uri1 = "/501.html";
-    uri2 = "/501.htm";
-    uri3 = "/501.shtml";
-  } else {
-    /* 400 (bad request is the default) */
-    uri1 = "/400.html";
-    uri2 = "/400.htm";
-    uri3 = "/400.shtml";
-  }
-  file = fs_open(uri1);
-  if (file == NULL) {
-    file = fs_open(uri2);
-    if (file == NULL) {
-      file = fs_open(uri3);
-      if (file == NULL) {
-        LWIP_DEBUGF(HTTPD_DEBUG, ("Error page for error %"U16_F" not found\n",
-          error_nr));
-        return ERR_ARG;
-      }
-    }
-  }
-  return http_init_file(hs, file, 0, NULL);
-}
-#else /* LWIP_HTTPD_SUPPORT_EXTSTATUS */
-#define http_find_error_file(hs, error_nr) ERR_ARG
-#endif /* LWIP_HTTPD_SUPPORT_EXTSTATUS */
-
-/**
- * Get the file struct for a 404 error page.
- * Tries some file names and returns NULL if none found.
- *
- * @param uri pointer that receives the actual file name URI
- * @return file struct for the error page or NULL no matching file was found
- */
-static struct fs_file *
-http_get_404_file(const char **uri)
-{
-  struct fs_file *file;
-
-  *uri = "/404.html";
-  file = fs_open(*uri);
-  if(file == NULL) {
-    /* 404.html doesn't exist. Try 404.htm instead. */
-    *uri = "/404.htm";
-    file = fs_open(*uri);
-    if(file == NULL) {
-      /* 404.htm doesn't exist either. Try 404.shtml instead. */
-      *uri = "/404.shtml";
-      file = fs_open(*uri);
-      if(file == NULL) {
-        /* 404.htm doesn't exist either. Indicate to the caller that it should
-         * send back a default 404 page.
-         */
-        *uri = NULL;
-      }
-    }
-  }
-
-  return file;
-}
-
-#if LWIP_HTTPD_SUPPORT_POST
-static err_t
-http_handle_post_finished(struct http_state *hs)
-{
-  /* application error or POST finished */
-  /* NULL-terminate the buffer */
-  http_post_response_filename[0] = 0;
-  httpd_post_finished(hs, http_post_response_filename, LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN);
-  return http_find_file(hs, http_post_response_filename, 0);
-}
-
-/** Pass received POST body data to the application and correctly handle
- * returning a response document or closing the connection.
- * ATTENTION: The application is responsible for the pbuf now, so don't free it!
- *
- * @param hs http connection state
- * @param p pbuf to pass to the application
- * @return ERR_OK if passed successfully, another err_t if the response file
- *         hasn't been found (after POST finished)
- */
-static err_t
-http_post_rxpbuf(struct http_state *hs, struct pbuf *p)
-{
-  err_t err;
-
-  /* adjust remaining Content-Length */
-  if (hs->post_content_len_left < p->tot_len) {
-    hs->post_content_len_left = 0;
-  } else {
-    hs->post_content_len_left -= p->tot_len;
-  }
-  err = httpd_post_receive_data(hs, p);
-  if ((err != ERR_OK) || (hs->post_content_len_left == 0)) {
-#if LWIP_HTTPD_SUPPORT_POST && LWIP_HTTPD_POST_MANUAL_WND
-    if (hs->unrecved_bytes != 0) {
-       return ERR_OK;
-    }
-#endif /* LWIP_HTTPD_SUPPORT_POST && LWIP_HTTPD_POST_MANUAL_WND */
-    /* application error or POST finished */
-    return http_handle_post_finished(hs);
-  }
-
-  return ERR_OK;
-}
-
-/** Handle a post request. Called from http_parse_request when method 'POST'
- * is found.
- *
- * @param pcb The tcp_pcb which received this packet.
- * @param p The input pbuf (containing the POST header and body).
- * @param hs The http connection state.
- * @param data HTTP request (header and part of body) from input pbuf(s).
- * @param data_len Size of 'data'.
- * @param uri The HTTP URI parsed from input pbuf(s).
- * @param uri_end Pointer to the end of 'uri' (here, the rest of the HTTP
- *                header starts).
- * @return ERR_OK: POST correctly parsed and accepted by the application.
- *         ERR_INPROGRESS: POST not completely parsed (no error yet)
- *         another err_t: Error parsing POST or denied by the application
- */
-static err_t
-http_post_request(struct tcp_pcb *pcb, struct pbuf **inp, struct http_state *hs,
-                  char *data, u16_t data_len, char *uri, char *uri_end)
-{
-  err_t err;
-  /* search for end-of-header (first double-CRLF) */
-  char* crlfcrlf = strnstr(uri_end + 1, CRLF CRLF, data_len - (uri_end + 1 - data));
-
-#if LWIP_HTTPD_POST_MANUAL_WND
-  hs->pcb = pcb;
-#else /* LWIP_HTTPD_POST_MANUAL_WND */
-  LWIP_UNUSED_ARG(pcb); /* only used for LWIP_HTTPD_POST_MANUAL_WND */
-#endif /*  LWIP_HTTPD_POST_MANUAL_WND */
-
-  if (crlfcrlf != NULL) {
-    /* search for "Content-Length: " */
-#define HTTP_HDR_CONTENT_LEN                "Content-Length: "
-#define HTTP_HDR_CONTENT_LEN_LEN            16
-#define HTTP_HDR_CONTENT_LEN_DIGIT_MAX_LEN  10
-    char *scontent_len = strnstr(uri_end + 1, HTTP_HDR_CONTENT_LEN, crlfcrlf - (uri_end + 1));
-    if (scontent_len != NULL) {
-      char *scontent_len_end = strnstr(scontent_len + HTTP_HDR_CONTENT_LEN_LEN, CRLF, HTTP_HDR_CONTENT_LEN_DIGIT_MAX_LEN);
-      if (scontent_len_end != NULL) {
-        int content_len;
-        char *conten_len_num = scontent_len + HTTP_HDR_CONTENT_LEN_LEN;
-        *scontent_len_end = 0;
-        content_len = atoi(conten_len_num);
-        if (content_len > 0) {
-          /* adjust length of HTTP header passed to application */
-          const char *hdr_start_after_uri = uri_end + 1;
-          u16_t hdr_len = LWIP_MIN(data_len, crlfcrlf + 4 - data);
-          u16_t hdr_data_len = LWIP_MIN(data_len, crlfcrlf + 4 - hdr_start_after_uri);
-          u8_t post_auto_wnd = 1;
-          http_post_response_filename[0] = 0;
-          err = httpd_post_begin(hs, uri, hdr_start_after_uri, hdr_data_len, content_len,
-            http_post_response_filename, LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN, &post_auto_wnd);
-          if (err == ERR_OK) {
-            /* try to pass in data of the first pbuf(s) */
-            struct pbuf *q = *inp;
-            u16_t start_offset = hdr_len;
-#if LWIP_HTTPD_POST_MANUAL_WND
-            hs->no_auto_wnd = !post_auto_wnd;
-#endif /* LWIP_HTTPD_POST_MANUAL_WND */
-            /* set the Content-Length to be received for this POST */
-            hs->post_content_len_left = (u32_t)content_len;
-
-            /* get to the pbuf where the body starts */
-            while((q != NULL) && (q->len <= start_offset)) {
-              struct pbuf *head = q;
-              start_offset -= q->len;
-              q = q->next;
-              /* free the head pbuf */
-              head->next = NULL;
-              pbuf_free(head);
-            }
-            *inp = NULL;
-            if (q != NULL) {
-              /* hide the remaining HTTP header */
-              pbuf_header(q, -(s16_t)start_offset);
-#if LWIP_HTTPD_POST_MANUAL_WND
-              if (!post_auto_wnd) {
-                /* already tcp_recved() this data... */
-                hs->unrecved_bytes = q->tot_len;
-              }
-#endif /* LWIP_HTTPD_POST_MANUAL_WND */
-              return http_post_rxpbuf(hs, q);
-            } else {
-              return ERR_OK;
-            }
-          } else {
-            /* return file passed from application */
-            return http_find_file(hs, http_post_response_filename, 0);
-          }
-        } else {
-          LWIP_DEBUGF(HTTPD_DEBUG, ("POST received invalid Content-Length: %s\n",
-            conten_len_num));
-          return ERR_ARG;
-        }
-      }
-    }
-  }
-  /* if we come here, the POST is incomplete */
-#if LWIP_HTTPD_SUPPORT_REQUESTLIST
-  return ERR_INPROGRESS;
-#else /* LWIP_HTTPD_SUPPORT_REQUESTLIST */
-  return ERR_ARG;
-#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */
-}
-
-#if LWIP_HTTPD_POST_MANUAL_WND
-/** A POST implementation can call this function to update the TCP window.
- * This can be used to throttle data reception (e.g. when received data is
- * programmed to flash and data is received faster than programmed).
- *
- * @param connection A connection handle passed to httpd_post_begin for which
- *        httpd_post_finished has *NOT* been called yet!
- * @param recved_len Length of data received (for window update)
- */
-void httpd_post_data_recved(void *connection, u16_t recved_len)
-{
-  struct http_state *hs = (struct http_state*)connection;
-  if (hs != NULL) {
-    if (hs->no_auto_wnd) {
-      u16_t len = recved_len;
-      if (hs->unrecved_bytes >= recved_len) {
-        hs->unrecved_bytes -= recved_len;
-      } else {
-        LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_LEVEL_WARNING, ("httpd_post_data_recved: recved_len too big\n"));
-        len = (u16_t)hs->unrecved_bytes;
-        hs->unrecved_bytes = 0;
-      }
-      if (hs->pcb != NULL) {
-        if (len != 0) {
-          tcp_recved(hs->pcb, len);
-        }
-        if ((hs->post_content_len_left == 0) && (hs->unrecved_bytes == 0)) {
-          /* finished handling POST */
-          http_handle_post_finished(hs);
-          http_send_data(hs->pcb, hs);
-        }
-      }
-    }
-  }
-}
-#endif /* LWIP_HTTPD_POST_MANUAL_WND */
-
-#endif /* LWIP_HTTPD_SUPPORT_POST */
-
-/**
- * When data has been received in the correct state, try to parse it
- * as a HTTP request.
- *
- * @param p the received pbuf
- * @param hs the connection state
- * @param pcb the tcp_pcb which received this packet
- * @return ERR_OK if request was OK and hs has been initialized correctly
- *         ERR_INPROGRESS if request was OK so far but not fully received
- *         another err_t otherwise
- */
-static err_t
-http_parse_request(struct pbuf **inp, struct http_state *hs, struct tcp_pcb *pcb)
-{
-  char *data;
-  char *crlf;
-  u16_t data_len;
-  struct pbuf *p = *inp;
-#if LWIP_HTTPD_SUPPORT_REQUESTLIST
-  u16_t clen;
-#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */
-#if LWIP_HTTPD_SUPPORT_POST
-  err_t err;
-#endif /* LWIP_HTTPD_SUPPORT_POST */
-
-  LWIP_UNUSED_ARG(pcb); /* only used for post */
-  LWIP_ASSERT("p != NULL", p != NULL);
-  LWIP_ASSERT("hs != NULL", hs != NULL);
-
-  if ((hs->handle != NULL) || (hs->file != NULL)) {
-    LWIP_DEBUGF(HTTPD_DEBUG, ("Received data while sending a file\n"));
-    /* already sending a file */
-    /* @todo: abort? */
-    return ERR_USE;
-  }
-
-#if LWIP_HTTPD_SUPPORT_REQUESTLIST
-
-  LWIP_DEBUGF(HTTPD_DEBUG, ("Received %"U16_F" bytes\n", p->tot_len));
-
-  /* first check allowed characters in this pbuf? */
-
-  /* enqueue the pbuf */
-  if (hs->req == NULL) {
-    LWIP_DEBUGF(HTTPD_DEBUG, ("First pbuf\n"));
-    hs->req = p;
-  } else {
-    LWIP_DEBUGF(HTTPD_DEBUG, ("pbuf enqueued\n"));
-    pbuf_cat(hs->req, p);
-  }
-
-  if (hs->req->next != NULL) {
-    data_len = LWIP_MIN(hs->req->tot_len, LWIP_HTTPD_MAX_REQ_LENGTH);
-    pbuf_copy_partial(hs->req, httpd_req_buf, data_len, 0);
-    data = httpd_req_buf;
-  } else
-#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */
-  {
-    data = (char *)p->payload;
-    data_len = p->len;
-    if (p->len != p->tot_len) {
-      LWIP_DEBUGF(HTTPD_DEBUG, ("Warning: incomplete header due to chained pbufs\n"));
-    }
-  }
-
-  /* received enough data for minimal request? */
-  if (data_len >= MIN_REQ_LEN) {
-    /* wait for CRLF before parsing anything */
-    crlf = strnstr(data, CRLF, data_len);
-    if (crlf != NULL) {
-#if LWIP_HTTPD_SUPPORT_POST
-      int is_post = 0;
-#endif /* LWIP_HTTPD_SUPPORT_POST */
-      int is_09 = 0;
-      char *sp1, *sp2;
-      u16_t left_len, uri_len;
-      LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("CRLF received, parsing request\n"));
-      /* parse method */
-      if (!strncmp(data, "GET ", 4)) {
-        sp1 = data + 3;
-        /* received GET request */
-        LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Received GET request\"\n"));
-#if LWIP_HTTPD_SUPPORT_POST
-      } else if (!strncmp(data, "POST ", 5)) {
-        /* store request type */
-        is_post = 1;
-        sp1 = data + 4;
-        /* received GET request */
-        LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Received POST request\n"));
-#endif /* LWIP_HTTPD_SUPPORT_POST */
-      } else {
-        /* null-terminate the METHOD (pbuf is freed anyway wen returning) */
-        data[4] = 0;
-        /* unsupported method! */
-        LWIP_DEBUGF(HTTPD_DEBUG, ("Unsupported request method (not implemented): \"%s\"\n",
-          data));
-        return http_find_error_file(hs, 501);
-      }
-      /* if we come here, method is OK, parse URI */
-      left_len = data_len - ((sp1 +1) - data);
-      sp2 = strnstr(sp1 + 1, " ", left_len);
-#if LWIP_HTTPD_SUPPORT_V09
-      if (sp2 == NULL) {
-        /* HTTP 0.9: respond with correct protocol version */
-        sp2 = strnstr(sp1 + 1, CRLF, left_len);
-        is_09 = 1;
-#if LWIP_HTTPD_SUPPORT_POST
-        if (is_post) {
-          /* HTTP/0.9 does not support POST */
-          goto badrequest;
-        }
-#endif /* LWIP_HTTPD_SUPPORT_POST */
-      }
-#endif /* LWIP_HTTPD_SUPPORT_V09 */
-      uri_len = sp2 - (sp1 + 1);
-      if ((sp2 != 0) && (sp2 > sp1)) {
-        char *uri = sp1 + 1;
-        /* null-terminate the METHOD (pbuf is freed anyway wen returning) */
-        *sp1 = 0;
-        uri[uri_len] = 0;
-        LWIP_DEBUGF(HTTPD_DEBUG, ("Received \"%s\" request for URI: \"%s\"\n",
-                    data, uri));
-#if LWIP_HTTPD_SUPPORT_POST
-        if (is_post) {
-#if LWIP_HTTPD_SUPPORT_REQUESTLIST
-          struct pbuf **q = &hs->req;
-#else /* LWIP_HTTPD_SUPPORT_REQUESTLIST */
-          struct pbuf **q = inp;
-#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */
-          err = http_post_request(pcb, q, hs, data, data_len, uri, sp2);
-          if (err != ERR_OK) {
-            /* restore header for next try */
-            *sp1 = ' ';
-            *sp2 = ' ';
-            uri[uri_len] = ' ';
-          }
-          if (err == ERR_ARG) {
-            goto badrequest;
-          }
-          return err;
-        } else
-#endif /* LWIP_HTTPD_SUPPORT_POST */
-        {
-          return http_find_file(hs, uri, is_09);
-        }
-      } else {
-        LWIP_DEBUGF(HTTPD_DEBUG, ("invalid URI\n"));
-      }
-    }
-  }
-
-#if LWIP_HTTPD_SUPPORT_REQUESTLIST
-  clen = pbuf_clen(hs->req);
-  if ((hs->req->tot_len <= LWIP_HTTPD_REQ_BUFSIZE) &&
-    (clen <= LWIP_HTTPD_REQ_QUEUELEN)) {
-    /* request not fully received (too short or CRLF is missing) */
-    return ERR_INPROGRESS;
-  } else
-#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */
-  {
-#if LWIP_HTTPD_SUPPORT_POST
-badrequest:
-#endif /* LWIP_HTTPD_SUPPORT_POST */
-    LWIP_DEBUGF(HTTPD_DEBUG, ("bad request\n"));
-    /* could not parse request */
-    return http_find_error_file(hs, 400);
-  }
-}
-
-/** Try to find the file specified by uri and, if found, initialize hs
- * accordingly.
- *
- * @param hs the connection state
- * @param uri the HTTP header URI
- * @param is_09 1 if the request is HTTP/0.9 (no HTTP headers in response)
- * @return ERR_OK if file was found and hs has been initialized correctly
- *         another err_t otherwise
- */
-static err_t
-http_find_file(struct http_state *hs, const char *uri, int is_09)
-{
-  size_t loop;
-  struct fs_file *file = NULL;
-  char *params;
-#if LWIP_HTTPD_CGI
-  int i;
-  int count;
-#endif /* LWIP_HTTPD_CGI */
-
-#if LWIP_HTTPD_SSI
-  /*
-   * By default, assume we will not be processing server-side-includes
-   * tags
-   */
-  hs->tag_check = false;
-#endif /* LWIP_HTTPD_SSI */
-
-  /* Have we been asked for the default root file? */
-  if((uri[0] == '/') &&  (uri[1] == 0)) {
-    /* Try each of the configured default filenames until we find one
-       that exists. */
-    for (loop = 0; loop < NUM_DEFAULT_FILENAMES; loop++) {
-      LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Looking for %s...\n", g_psDefaultFilenames[loop].name));
-      file = fs_open((char *)g_psDefaultFilenames[loop].name);
-      uri = (char *)g_psDefaultFilenames[loop].name;
-      if(file != NULL) {
-        LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Opened.\n"));
-#if LWIP_HTTPD_SSI
-        hs->tag_check = g_psDefaultFilenames[loop].shtml;
-#endif /* LWIP_HTTPD_SSI */
-        break;
-      }
-    }
-    if (file == NULL) {
-      /* None of the default filenames exist so send back a 404 page */
-      file = http_get_404_file(&uri);
-#if LWIP_HTTPD_SSI
-      hs->tag_check = false;
-#endif /* LWIP_HTTPD_SSI */
-    }
-  } else {
-    /* No - we've been asked for a specific file. */
-    /* First, isolate the base URI (without any parameters) */
-    params = (char *)strchr(uri, '?');
-    if (params != NULL) {
-      /* URI contains parameters. NULL-terminate the base URI */
-      *params = '\0';
-      params++;
-    }
-
-#if LWIP_HTTPD_CGI
-    /* Does the base URI we have isolated correspond to a CGI handler? */
-    if (g_iNumCGIs && g_pCGIs) {
-      for (i = 0; i < g_iNumCGIs; i++) {
-        if (strcmp(uri, g_pCGIs[i].pcCGIName) == 0) {
-          /*
-           * We found a CGI that handles this URI so extract the
-           * parameters and call the handler.
-           */
-           count = extract_uri_parameters(hs, params);
-           uri = g_pCGIs[i].pfnCGIHandler(i, count, hs->params,
-                                          hs->param_vals);
-           break;
-        }
-      }
-    }
-#endif /* LWIP_HTTPD_CGI */
-
-    LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Opening %s\n", uri));
-
-    file = fs_open(uri);
-    if (file == NULL) {
-      file = http_get_404_file(&uri);
-    }
-#if LWIP_HTTPD_SSI
-    if (file != NULL) {
-      /*
-       * See if we have been asked for an shtml file and, if so,
-       * enable tag checking.
-       */
-      hs->tag_check = false;
-      for (loop = 0; loop < NUM_SHTML_EXTENSIONS; loop++) {
-        if (strstr(uri, g_pcSSIExtensions[loop])) {
-          hs->tag_check = true;
-          break;
-        }
-      }
-    }
-#endif /* LWIP_HTTPD_SSI */
-  }
-  return http_init_file(hs, file, is_09, uri);
-}
-
-/** Initialize a http connection with a file to send (if found).
- * Called by http_find_file and http_find_error_file.
- *
- * @param hs http connection state
- * @param file file structure to send (or NULL if not found)
- * @param is_09 1 if the request is HTTP/0.9 (no HTTP headers in response)
- * @param uri the HTTP header URI
- * @return ERR_OK if file was found and hs has been initialized correctly
- *         another err_t otherwise
- */
-static err_t
-http_init_file(struct http_state *hs, struct fs_file *file, int is_09, const char *uri)
-{
-  if (file != NULL) {
-    /* file opened, initialise struct http_state */
-#if LWIP_HTTPD_SSI
-    hs->tag_index = 0;
-    hs->tag_state = TAG_NONE;
-    hs->parsed = file->data;
-    hs->parse_left = file->len;
-    hs->tag_end = file->data;
-#endif /* LWIP_HTTPD_SSI */
-    hs->handle = file;
-    hs->file = (char*)file->data;
-    LWIP_ASSERT("File length must be positive!", (file->len >= 0));
-    hs->left = file->len;
-    hs->retries = 0;
-#if LWIP_HTTPD_TIMING
-    hs->time_started = sys_now();
-#endif /* LWIP_HTTPD_TIMING */
-#if !LWIP_HTTPD_DYNAMIC_HEADERS
-    LWIP_ASSERT("HTTP headers not included in file system", hs->handle->http_header_included);
-#endif /* !LWIP_HTTPD_DYNAMIC_HEADERS */
-#if LWIP_HTTPD_SUPPORT_V09
-    if (hs->handle->http_header_included && is_09) {
-      /* HTTP/0.9 responses are sent without HTTP header,
-         search for the end of the header. */
-      char *file_start = strnstr(hs->file, CRLF CRLF, hs->left);
-      if (file_start != NULL) {
-        size_t diff = file_start + 4 - hs->file;
-        hs->file += diff;
-        hs->left -= (u32_t)diff;
-      }
-    }
-#endif /* LWIP_HTTPD_SUPPORT_V09*/
-  } else {
-    hs->handle = NULL;
-    hs->file = NULL;
-    hs->left = 0;
-    hs->retries = 0;
-  }
-#if LWIP_HTTPD_DYNAMIC_HEADERS
-    /* Determine the HTTP headers to send based on the file extension of
-   * the requested URI. */
-  if ((hs->handle == NULL) || !hs->handle->http_header_included) {
-    get_http_headers(hs, (char*)uri);
-  }
-#else /* LWIP_HTTPD_DYNAMIC_HEADERS */
-  LWIP_UNUSED_ARG(uri);
-#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */
-  return ERR_OK;
-}
-
-/**
- * The pcb had an error and is already deallocated.
- * The argument might still be valid (if != NULL).
- */
-static void
-http_err(void *arg, err_t err)
-{
-  struct http_state *hs = (struct http_state *)arg;
-  LWIP_UNUSED_ARG(err);
-
-  LWIP_DEBUGF(HTTPD_DEBUG, ("http_err: %s", lwip_strerr(err)));
-
-  if (hs != NULL) {
-    http_state_free(hs);
-  }
-}
-
-/**
- * Data has been sent and acknowledged by the remote host.
- * This means that more data can be sent.
- */
-static err_t
-http_sent(void *arg, struct tcp_pcb *pcb, u16_t len)
-{
-  struct http_state *hs = (struct http_state *)arg;
-
-  LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("http_sent %p\n", (void*)pcb));
-
-  LWIP_UNUSED_ARG(len);
-
-  if (hs == NULL) {
-    return ERR_OK;
-  }
-
-  hs->retries = 0;
-
-  http_send_data(pcb, hs);
-
-  return ERR_OK;
-}
-
-/**
- * The poll function is called every 2nd second.
- * If there has been no data sent (which resets the retries) in 8 seconds, close.
- * If the last portion of a file has not been sent in 2 seconds, close.
- *
- * This could be increased, but we don't want to waste resources for bad connections.
- */
-static err_t
-http_poll(void *arg, struct tcp_pcb *pcb)
-{
-  struct http_state *hs = (struct http_state *)arg;
-  LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("http_poll: pcb=%p hs=%p pcb_state=%s\n",
-    (void*)pcb, (void*)hs, tcp_debug_state_str(pcb->state)));
-
-  if (hs == NULL) {
-    err_t closed;
-    /* arg is null, close. */
-    LWIP_DEBUGF(HTTPD_DEBUG, ("http_poll: arg is NULL, close\n"));
-    closed = http_close_conn(pcb, hs);
-    LWIP_UNUSED_ARG(closed);
-#if LWIP_HTTPD_ABORT_ON_CLOSE_MEM_ERROR
-    if (closed == ERR_MEM) {
-       tcp_abort(pcb);
-       return ERR_ABRT;
-    }
-#endif /* LWIP_HTTPD_ABORT_ON_CLOSE_MEM_ERROR */
-    return ERR_OK;
-  } else {
-    hs->retries++;
-    if (hs->retries == HTTPD_MAX_RETRIES) {
-      LWIP_DEBUGF(HTTPD_DEBUG, ("http_poll: too many retries, close\n"));
-      http_close_conn(pcb, hs);
-      return ERR_OK;
-    }
-
-    /* If this connection has a file open, try to send some more data. If
-     * it has not yet received a GET request, don't do this since it will
-     * cause the connection to close immediately. */
-    if(hs && (hs->handle)) {
-      LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("http_poll: try to send more data\n"));
-      if(http_send_data(pcb, hs)) {
-        /* If we wrote anything to be sent, go ahead and send it now. */
-        LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("tcp_output\n"));
-        tcp_output(pcb);
-      }
-    }
-  }
-
-  return ERR_OK;
-}
-
-/**
- * Data has been received on this pcb.
- * For HTTP 1.0, this should normally only happen once (if the request fits in one packet).
- */
-static err_t
-http_recv(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err)
-{
-  err_t parsed = ERR_ABRT;
-  struct http_state *hs = (struct http_state *)arg;
-  LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("http_recv: pcb=%p pbuf=%p err=%s\n", (void*)pcb,
-    (void*)p, lwip_strerr(err)));
-
-  if ((err != ERR_OK) || (p == NULL) || (hs == NULL)) {
-    /* error or closed by other side? */
-    if (p != NULL) {
-      /* Inform TCP that we have taken the data. */
-      tcp_recved(pcb, p->tot_len);
-      pbuf_free(p);
-    }
-    if (hs == NULL) {
-      /* this should not happen, only to be robust */
-      LWIP_DEBUGF(HTTPD_DEBUG, ("Error, http_recv: hs is NULL, close\n"));
-    }
-    http_close_conn(pcb, hs);
-    return ERR_OK;
-  }
-
-#if LWIP_HTTPD_SUPPORT_POST && LWIP_HTTPD_POST_MANUAL_WND
-  if (hs->no_auto_wnd) {
-     hs->unrecved_bytes += p->tot_len;
-  } else
-#endif /* LWIP_HTTPD_SUPPORT_POST && LWIP_HTTPD_POST_MANUAL_WND */
-  {
-    /* Inform TCP that we have taken the data. */
-    tcp_recved(pcb, p->tot_len);
-  }
-
-#if LWIP_HTTPD_SUPPORT_POST
-  if (hs->post_content_len_left > 0) {
-    /* reset idle counter when POST data is received */
-    hs->retries = 0;
-    /* this is data for a POST, pass the complete pbuf to the application */
-    http_post_rxpbuf(hs, p);
-    /* pbuf is passed to the application, don't free it! */
-    if (hs->post_content_len_left == 0) {
-      /* all data received, send response or close connection */
-      http_send_data(pcb, hs);
-    }
-    return ERR_OK;
-  } else
-#endif /* LWIP_HTTPD_SUPPORT_POST */
-  {
-    if (hs->handle == NULL) {
-      parsed = http_parse_request(&p, hs, pcb);
-      LWIP_ASSERT("http_parse_request: unexpected return value", parsed == ERR_OK
-        || parsed == ERR_INPROGRESS ||parsed == ERR_ARG || parsed == ERR_USE);
-    } else {
-      LWIP_DEBUGF(HTTPD_DEBUG, ("http_recv: already sending data\n"));
-    }
-#if LWIP_HTTPD_SUPPORT_REQUESTLIST
-    if (parsed != ERR_INPROGRESS) {
-      /* request fully parsed or error */
-      if (hs->req != NULL) {
-        pbuf_free(hs->req);
-        hs->req = NULL;
-      }
-    }
-#else /* LWIP_HTTPD_SUPPORT_REQUESTLIST */
-    if (p != NULL) {
-      /* pbuf not passed to application, free it now */
-      pbuf_free(p);
-    }
-#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */
-    if (parsed == ERR_OK) {
-#if LWIP_HTTPD_SUPPORT_POST
-      if (hs->post_content_len_left == 0)
-#endif /* LWIP_HTTPD_SUPPORT_POST */
-      {
-        LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("http_recv: data %p len %"S32_F"\n", hs->file, hs->left));
-        http_send_data(pcb, hs);
-      }
-    } else if (parsed == ERR_ARG) {
-      /* @todo: close on ERR_USE? */
-      http_close_conn(pcb, hs);
-    }
-  }
-  return ERR_OK;
-}
-
-/**
- * A new incoming connection has been accepted.
- */
-static err_t
-http_accept(void *arg, struct tcp_pcb *pcb, err_t err)
-{
-  struct http_state *hs;
-  struct tcp_pcb_listen *lpcb = (struct tcp_pcb_listen*)arg;
-  LWIP_UNUSED_ARG(err);
-  LWIP_DEBUGF(HTTPD_DEBUG, ("http_accept %p / %p\n", (void*)pcb, arg));
-
-  /* Decrease the listen backlog counter */
-  tcp_accepted(lpcb);
-  /* Set priority */
-  tcp_setprio(pcb, HTTPD_TCP_PRIO);
-
-  /* Allocate memory for the structure that holds the state of the
-     connection - initialized by that function. */
-  hs = http_state_alloc();
-  if (hs == NULL) {
-    LWIP_DEBUGF(HTTPD_DEBUG, ("http_accept: Out of memory, RST\n"));
-    return ERR_MEM;
-  }
-
-  /* Tell TCP that this is the structure we wish to be passed for our
-     callbacks. */
-  tcp_arg(pcb, hs);
-
-  /* Set up the various callback functions */
-  tcp_recv(pcb, http_recv);
-  tcp_err(pcb, http_err);
-  tcp_poll(pcb, http_poll, HTTPD_POLL_INTERVAL);
-  tcp_sent(pcb, http_sent);
-
-  return ERR_OK;
-}
-
-/**
- * Initialize the httpd with the specified local address.
- */
-static void
-httpd_init_addr(ip_addr_t *local_addr)
-{
-  struct tcp_pcb *pcb;
-  err_t err;
-
-  pcb = tcp_new();
-  LWIP_ASSERT("httpd_init: tcp_new failed", pcb != NULL);
-  tcp_setprio(pcb, HTTPD_TCP_PRIO);
-  /* set SOF_REUSEADDR here to explicitly bind httpd to multiple interfaces */
-  err = tcp_bind(pcb, local_addr, HTTPD_SERVER_PORT);
-  LWIP_ASSERT("httpd_init: tcp_bind failed", err == ERR_OK);
-  pcb = tcp_listen(pcb);
-  LWIP_ASSERT("httpd_init: tcp_listen failed", pcb != NULL);
-  /* initialize callback arg and accept callback */
-  tcp_arg(pcb, pcb);
-  tcp_accept(pcb, http_accept);
-}
-
-/**
- * Initialize the httpd: set up a listening PCB and bind it to the defined port
- */
-void
-httpd_init(void)
-{
-#if HTTPD_USE_MEM_POOL
-  LWIP_ASSERT("memp_sizes[MEMP_HTTPD_STATE] >= sizeof(http_state)",
-     memp_sizes[MEMP_HTTPD_STATE] >= sizeof(http_state));
-#endif
-  LWIP_DEBUGF(HTTPD_DEBUG, ("httpd_init\n"));
-
-  httpd_init_addr(IP_ADDR_ANY);
-}
-
-#if LWIP_HTTPD_SSI
-/**
- * Set the SSI handler function.
- *
- * @param ssi_handler the SSI handler function
- * @param tags an array of SSI tag strings to search for in SSI-enabled files
- * @param num_tags number of tags in the 'tags' array
- */
-void
-http_set_ssi_handler(tSSIHandler ssi_handler, const char **tags, int num_tags)
-{
-  LWIP_DEBUGF(HTTPD_DEBUG, ("http_set_ssi_handler\n"));
-
-  LWIP_ASSERT("no ssi_handler given", ssi_handler != NULL);
-  LWIP_ASSERT("no tags given", tags != NULL);
-  LWIP_ASSERT("invalid number of tags", num_tags > 0);
-
-  g_pfnSSIHandler = ssi_handler;
-  g_ppcTags = tags;
-  g_iNumTags = num_tags;
-}
-#endif /* LWIP_HTTPD_SSI */
-
-#if LWIP_HTTPD_CGI
-/**
- * Set an array of CGI filenames/handler functions
- *
- * @param cgis an array of CGI filenames/handler functions
- * @param num_handlers number of elements in the 'cgis' array
- */
-void
-http_set_cgi_handlers(const tCGI *cgis, int num_handlers)
-{
-  LWIP_ASSERT("no cgis given", cgis != NULL);
-  LWIP_ASSERT("invalid number of handlers", num_handlers > 0);
-  
-  g_pCGIs = cgis;
-  g_iNumCGIs = num_handlers;
-}
-#endif /* LWIP_HTTPD_CGI */
-
-#endif /* LWIP_TCP */
diff --git a/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/httpd.h b/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/httpd.h
deleted file mode 100644 (file)
index 8c3c03d..0000000
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
- * Copyright (c) 2001-2003 Swedish Institute of Computer Science.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- * Author: Adam Dunkels <adam@sics.se>
- *
- * This version of the file has been modified by Texas Instruments to offer
- * simple server-side-include (SSI) and Common Gateway Interface (CGI)
- * capability.
- */
-
-#ifndef __HTTPD_H__
-#define __HTTPD_H__
-
-#include "lwip/opt.h"
-#include "lwip/err.h"
-#include "lwip/pbuf.h"
-
-
-/** Set this to 1 to support CGI */
-#ifndef LWIP_HTTPD_CGI
-#define LWIP_HTTPD_CGI            0
-#endif
-
-/** Set this to 1 to support SSI (Server-Side-Includes) */
-#ifndef LWIP_HTTPD_SSI
-#define LWIP_HTTPD_SSI            1     
-#endif
-
-/** Set this to 1 to support HTTP POST */
-#ifndef LWIP_HTTPD_SUPPORT_POST
-#define LWIP_HTTPD_SUPPORT_POST   0
-#endif
-
-
-#if LWIP_HTTPD_CGI
-
-/*
- * Function pointer for a CGI script handler.
- *
- * This function is called each time the HTTPD server is asked for a file
- * whose name was previously registered as a CGI function using a call to
- * http_set_cgi_handler. The iIndex parameter provides the index of the
- * CGI within the ppcURLs array passed to http_set_cgi_handler. Parameters
- * pcParam and pcValue provide access to the parameters provided along with
- * the URI. iNumParams provides a count of the entries in the pcParam and
- * pcValue arrays. Each entry in the pcParam array contains the name of a
- * parameter with the corresponding entry in the pcValue array containing the
- * value for that parameter. Note that pcParam may contain multiple elements
- * with the same name if, for example, a multi-selection list control is used
- * in the form generating the data.
- *
- * The function should return a pointer to a character string which is the
- * path and filename of the response that is to be sent to the connected
- * browser, for example "/thanks.htm" or "/response/error.ssi".
- *
- * The maximum number of parameters that will be passed to this function via
- * iNumParams is defined by LWIP_HTTPD_MAX_CGI_PARAMETERS. Any parameters in the incoming
- * HTTP request above this number will be discarded.
- *
- * Requests intended for use by this CGI mechanism must be sent using the GET
- * method (which encodes all parameters within the URI rather than in a block
- * later in the request). Attempts to use the POST method will result in the
- * request being ignored.
- *
- */
-typedef const char *(*tCGIHandler)(int iIndex, int iNumParams, char *pcParam[],
-                             char *pcValue[]);
-
-/*
- * Structure defining the base filename (URL) of a CGI and the associated
- * function which is to be called when that URL is requested.
- */
-typedef struct
-{
-    const char *pcCGIName;
-    tCGIHandler pfnCGIHandler;
-} tCGI;
-
-void http_set_cgi_handlers(const tCGI *pCGIs, int iNumHandlers);
-
-
-/* The maximum number of parameters that the CGI handler can be sent. */
-#ifndef LWIP_HTTPD_MAX_CGI_PARAMETERS
-#define LWIP_HTTPD_MAX_CGI_PARAMETERS 16
-#endif
-
-#endif /* LWIP_HTTPD_CGI */
-
-#if LWIP_HTTPD_SSI
-
-/** LWIP_HTTPD_SSI_MULTIPART==1: SSI handler function is called with 2 more
- * arguments indicating a counter for insert string that are too long to be
- * inserted at once: the SSI handler function must then set 'next_tag_part'
- * which will be passed back to it in the next call. */
-#ifndef LWIP_HTTPD_SSI_MULTIPART
-#define LWIP_HTTPD_SSI_MULTIPART    0
-#endif
-
-/*
- * Function pointer for the SSI tag handler callback.
- *
- * This function will be called each time the HTTPD server detects a tag of the
- * form <!--#name--> in a .shtml, .ssi or .shtm file where "name" appears as
- * one of the tags supplied to http_set_ssi_handler in the ppcTags array.  The
- * returned insert string, which will be appended after the the string
- * "<!--#name-->" in file sent back to the client,should be written to pointer
- * pcInsert.  iInsertLen contains the size of the buffer pointed to by
- * pcInsert.  The iIndex parameter provides the zero-based index of the tag as
- * found in the ppcTags array and identifies the tag that is to be processed.
- *
- * The handler returns the number of characters written to pcInsert excluding
- * any terminating NULL or a negative number to indicate a failure (tag not
- * recognized, for example).
- *
- * Note that the behavior of this SSI mechanism is somewhat different from the
- * "normal" SSI processing as found in, for example, the Apache web server.  In
- * this case, the inserted text is appended following the SSI tag rather than
- * replacing the tag entirely.  This allows for an implementation that does not
- * require significant additional buffering of output data yet which will still
- * offer usable SSI functionality.  One downside to this approach is when
- * attempting to use SSI within JavaScript.  The SSI tag is structured to
- * resemble an HTML comment but this syntax does not constitute a comment
- * within JavaScript and, hence, leaving the tag in place will result in
- * problems in these cases.  To work around this, any SSI tag which needs to
- * output JavaScript code must do so in an encapsulated way, sending the whole
- * HTML <script>...</script> section as a single include.
- */
-typedef u16_t (*tSSIHandler)(int iIndex, char *pcInsert, int iInsertLen
-#if LWIP_HTTPD_SSI_MULTIPART
-                             , u16_t current_tag_part, u16_t *next_tag_part
-#endif /* LWIP_HTTPD_SSI_MULTIPART */
-#if LWIP_HTTPD_FILE_STATE
-                             , void *connection_state
-#endif /* LWIP_HTTPD_FILE_STATE */
-                             );
-
-void http_set_ssi_handler(tSSIHandler pfnSSIHandler,
-                          const char **ppcTags, int iNumTags);
-
-/* The maximum length of the string comprising the tag name */
-#ifndef LWIP_HTTPD_MAX_TAG_NAME_LEN
-#define LWIP_HTTPD_MAX_TAG_NAME_LEN 8
-#endif
-
-/* The maximum length of string that can be returned to replace any given tag */
-#ifndef LWIP_HTTPD_MAX_TAG_INSERT_LEN
-#define LWIP_HTTPD_MAX_TAG_INSERT_LEN 192
-#endif
-
-#endif /* LWIP_HTTPD_SSI */
-
-#if LWIP_HTTPD_SUPPORT_POST
-
-/* These functions must be implemented by the application */
-
-/** Called when a POST request has been received. The application can decide
- * whether to accept it or not.
- *
- * @param connection Unique connection identifier, valid until httpd_post_end
- *        is called.
- * @param uri The HTTP header URI receiving the POST request.
- * @param http_request The raw HTTP request (the first packet, normally).
- * @param http_request_len Size of 'http_request'.
- * @param content_len Content-Length from HTTP header.
- * @param response_uri Filename of response file, to be filled when denying the
- *        request
- * @param response_uri_len Size of the 'response_uri' buffer.
- * @param post_auto_wnd Set this to 0 to let the callback code handle window
- *        updates by calling 'httpd_post_data_recved' (to throttle rx speed)
- *        default is 1 (httpd handles window updates automatically)
- * @return ERR_OK: Accept the POST request, data may be passed in
- *         another err_t: Deny the POST request, send back 'bad request'.
- */
-err_t httpd_post_begin(void *connection, const char *uri, const char *http_request,
-                       u16_t http_request_len, int content_len, char *response_uri,
-                       u16_t response_uri_len, u8_t *post_auto_wnd);
-
-/** Called for each pbuf of data that has been received for a POST.
- * ATTENTION: The application is responsible for freeing the pbufs passed in!
- *
- * @param connection Unique connection identifier.
- * @param p Received data.
- * @return ERR_OK: Data accepted.
- *         another err_t: Data denied, http_post_get_response_uri will be called.
- */
-err_t httpd_post_receive_data(void *connection, struct pbuf *p);
-
-/** Called when all data is received or when the connection is closed.
- * The application must return the filename/URI of a file to send in response
- * to this POST request. If the response_uri buffer is untouched, a 404
- * response is returned.
- *
- * @param connection Unique connection identifier.
- * @param response_uri Filename of response file, to be filled when denying the request
- * @param response_uri_len Size of the 'response_uri' buffer.
- */
-void httpd_post_finished(void *connection, char *response_uri, u16_t response_uri_len);
-
-#ifndef LWIP_HTTPD_POST_MANUAL_WND
-#define LWIP_HTTPD_POST_MANUAL_WND  0
-#endif
-
-#if LWIP_HTTPD_POST_MANUAL_WND
-void httpd_post_data_recved(void *connection, u16_t recved_len);
-#endif /* LWIP_HTTPD_POST_MANUAL_WND */
-
-#endif /* LWIP_HTTPD_SUPPORT_POST */
-
-void httpd_init(void);
-
-#endif /* __HTTPD_H__ */
diff --git a/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/httpd_structs.h b/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/httpd_structs.h
deleted file mode 100644 (file)
index 1080a55..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-#ifndef __HTTPD_STRUCTS_H__
-#define __HTTPD_STRUCTS_H__
-
-#include "httpd.h"
-
-/** This string is passed in the HTTP header as "Server: " */
-#ifndef HTTPD_SERVER_AGENT
-#define HTTPD_SERVER_AGENT "lwIP/1.3.1 (http://savannah.nongnu.org/projects/lwip)"
-#endif
-
-/** Set this to 1 if you want to include code that creates HTTP headers
- * at runtime. Default is off: HTTP headers are then created statically
- * by the makefsdata tool. Static headers mean smaller code size, but
- * the (readonly) fsdata will grow a bit as every file includes the HTTP
- * header. */
-#ifndef LWIP_HTTPD_DYNAMIC_HEADERS
-#define LWIP_HTTPD_DYNAMIC_HEADERS 0
-#endif
-
-
-#if LWIP_HTTPD_DYNAMIC_HEADERS
-/** This struct is used for a list of HTTP header strings for various
- * filename extensions. */
-typedef struct
-{
-  const char *extension;
-  int headerIndex;
-} tHTTPHeader;
-
-/** A list of strings used in HTTP headers */
-static const char * const g_psHTTPHeaderStrings[] =
-{
- "Content-type: text/html\r\n\r\n",
- "Content-type: text/html\r\nExpires: Fri, 10 Apr 2008 14:00:00 GMT\r\nPragma: no-cache\r\n\r\n",
- "Content-type: image/gif\r\n\r\n",
- "Content-type: image/png\r\n\r\n",
- "Content-type: image/jpeg\r\n\r\n",
- "Content-type: image/bmp\r\n\r\n",
- "Content-type: image/x-icon\r\n\r\n",
- "Content-type: application/octet-stream\r\n\r\n",
- "Content-type: application/x-javascript\r\n\r\n",
- "Content-type: application/x-javascript\r\n\r\n",
- "Content-type: text/css\r\n\r\n",
- "Content-type: application/x-shockwave-flash\r\n\r\n",
- "Content-type: text/xml\r\n\r\n",
- "Content-type: text/plain\r\n\r\n",
- "HTTP/1.0 200 OK\r\n",
- "HTTP/1.0 404 File not found\r\n",
- "HTTP/1.0 400 Bad Request\r\n",
- "HTTP/1.0 501 Not Implemented\r\n",
- "HTTP/1.1 200 OK\r\n",
- "HTTP/1.1 404 File not found\r\n",
- "HTTP/1.1 400 Bad Request\r\n",
- "HTTP/1.1 501 Not Implemented\r\n",
- "Content-Length: ",
- "Connection: Close\r\n",
- "Server: "HTTPD_SERVER_AGENT"\r\n",
- "\r\n<html><body><h2>404: The requested file cannot be found.</h2></body></html>\r\n"
-};
-
-/* Indexes into the g_psHTTPHeaderStrings array */
-#define HTTP_HDR_HTML           0  /* text/html */
-#define HTTP_HDR_SSI            1  /* text/html Expires... */
-#define HTTP_HDR_GIF            2  /* image/gif */
-#define HTTP_HDR_PNG            3  /* image/png */
-#define HTTP_HDR_JPG            4  /* image/jpeg */
-#define HTTP_HDR_BMP            5  /* image/bmp */
-#define HTTP_HDR_ICO            6  /* image/x-icon */
-#define HTTP_HDR_APP            7  /* application/octet-stream */
-#define HTTP_HDR_JS             8  /* application/x-javascript */
-#define HTTP_HDR_RA             9  /* application/x-javascript */
-#define HTTP_HDR_CSS            10 /* text/css */
-#define HTTP_HDR_SWF            11 /* application/x-shockwave-flash */
-#define HTTP_HDR_XML            12 /* text/xml */
-#define HTTP_HDR_DEFAULT_TYPE   13 /* text/plain */
-#define HTTP_HDR_OK             14 /* 200 OK */
-#define HTTP_HDR_NOT_FOUND      15 /* 404 File not found */
-#define HTTP_HDR_BAD_REQUEST    16 /* 400 Bad request */
-#define HTTP_HDR_NOT_IMPL       17 /* 501 Not Implemented */
-#define HTTP_HDR_OK_11          18 /* 200 OK */
-#define HTTP_HDR_NOT_FOUND_11   19 /* 404 File not found */
-#define HTTP_HDR_BAD_REQUEST_11 20 /* 400 Bad request */
-#define HTTP_HDR_NOT_IMPL_11    21 /* 501 Not Implemented */
-#define HTTP_HDR_CONTENT_LENGTH 22 /* Content-Length: (HTTP 1.1)*/
-#define HTTP_HDR_CONN_CLOSE     23 /* Connection: Close (HTTP 1.1) */
-#define HTTP_HDR_SERVER         24 /* Server: HTTPD_SERVER_AGENT */
-#define DEFAULT_404_HTML        25 /* default 404 body */
-
-/** A list of extension-to-HTTP header strings */
-const static tHTTPHeader g_psHTTPHeaders[] =
-{
- { "html", HTTP_HDR_HTML},
- { "htm",  HTTP_HDR_HTML},
- { "shtml",HTTP_HDR_SSI},
- { "shtm", HTTP_HDR_SSI},
- { "ssi",  HTTP_HDR_SSI},
- { "gif",  HTTP_HDR_GIF},
- { "png",  HTTP_HDR_PNG},
- { "jpg",  HTTP_HDR_JPG},
- { "bmp",  HTTP_HDR_BMP},
- { "ico",  HTTP_HDR_ICO},
- { "class",HTTP_HDR_APP},
- { "cls",  HTTP_HDR_APP},
- { "js",   HTTP_HDR_JS},
- { "ram",  HTTP_HDR_RA},
- { "css",  HTTP_HDR_CSS},
- { "swf",  HTTP_HDR_SWF},
- { "xml",  HTTP_HDR_XML}
-};
-
-#define NUM_HTTP_HEADERS (sizeof(g_psHTTPHeaders) / sizeof(tHTTPHeader))
-
-#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */
-
-#endif /* __HTTPD_STRUCTS_H__ */
diff --git a/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/404.html b/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/404.html
deleted file mode 100644 (file)
index 40b343a..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<html>
-<head><title>lwIP - A Lightweight TCP/IP Stack</title></head>
-<body bgcolor="white" text="black">
-
-    <table width="100%">
-      <tr valign="top"><td width="80">   
-         <a href="http://www.sics.se/"><img src="/img/sics.gif"
-         border="0" alt="SICS logo" title="SICS logo"></a>
-       </td><td width="500">     
-         <h1>lwIP - A Lightweight TCP/IP Stack</h1>
-         <h2>404 - Page not found</h2>
-         <p>
-           Sorry, the page you are requesting was not found on this
-           server. 
-         </p>
-       </td><td>
-         &nbsp;
-       </td></tr>
-      </table>
-</body>
-</html>
diff --git a/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/index.shtml b/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/index.shtml
deleted file mode 100644 (file)
index 67b82c8..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<html>\r
-  <head>\r
-    <title>FreeRTOS.org uIP WEB server demo</title>\r
-  </head>\r
-  <BODY onLoad="window.setTimeout(&quot;location.href='index.shtml'&quot;,2000)">\r
-<font face="arial">\r
-<a href="index.shtml">Task Stats</a> <b>|</b> <a href="runtime.shtml">Run Time Stats</a> <b>|</b> <a href="stats.shtml">TCP Stats</a> <b>|</b> <a href="tcp.shtml">Connections</a> <b>|</b> <a href="http://www.freertos.org/">FreeRTOS Homepage</a> <b>|</b> <a href="io.shtml">IO</a> <b>|</b> <a href="logo.jpg">37K jpg</a>\r
-<br><p>\r
-<hr>\r
-<br><p>\r
-<h2>Task statistics</h2>\r
-Page will refresh every 2 seconds.<p>\r
-<font face="courier"><pre>Task          State  Priority  Stack #<br>************************************************<br>\r
-<!--#rtos_stats-->\r
-</pre></font>\r
-</font>\r
-</body>\r
-</html>\r
-\r
diff --git a/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/logo.jpg b/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/logo.jpg
deleted file mode 100644 (file)
index d3670e4..0000000
Binary files a/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/logo.jpg and /dev/null differ
diff --git a/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/runtime.shtml b/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/runtime.shtml
deleted file mode 100644 (file)
index 5beab4a..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
-<html>\r
-  <head>\r
-    <title>FreeRTOS.org uIP WEB server demo</title>\r
-  </head>\r
-  <BODY onLoad="window.setTimeout(&quot;location.href='runtime.shtml'&quot;,2000)">\r
-<font face="arial">\r
-<a href="index.shtml">Task Stats</a> <b>|</b> <a href="runtime.shtml">Run Time Stats</a> <b>|</b> <a href="stats.shtml">TCP Stats</a> <b>|</b> <a href="tcp.shtml">Connections</a> <b>|</b> <a href="http://www.freertos.org/">FreeRTOS Homepage</a> <b>|</b> <a href="io.shtml">IO</a> <b>|</b> <a href="logo.jpg">37K jpg</a>\r
-<br><p>\r
-<hr>\r
-<br><p>\r
-<h2>Run-time statistics</h2>\r
-Page will refresh every 2 seconds.<p>\r
-<font face="courier"><pre>Task            Abs Time      % Time<br>****************************************<br>\r
-<!--#run_stats-->\r\r
-</pre></font>\r
-</font>\r
-</body>\r
-</html>\r
-\r
diff --git a/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/makefsdata.c-source-file b/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/makefsdata.c-source-file
deleted file mode 100644 (file)
index b065caa..0000000
+++ /dev/null
@@ -1,610 +0,0 @@
-/**
- * makefsdata: Converts a directory structure for use with the lwIP httpd.
- *
- * This file is part of the lwIP TCP/IP stack.
- * 
- * Author: Jim Pettinato
- *         Simon Goldschmidt
- *
- * @todo:
- * - take TCP_MSS, LWIP_TCP_TIMESTAMPS and
- *   PAYLOAD_ALIGN_TYPE/PAYLOAD_ALIGNMENT as arguments
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#ifdef WIN32
-#define WIN32_LEAN_AND_MEAN
-#include "windows.h"
-#else
-#include <dir.h>
-#endif
-#include <dos.h>
-#include <string.h>
-
-/* Compatibility defines Win32 vs. DOS */
-#ifdef WIN32
-
-#define FIND_T                        WIN32_FIND_DATAA
-#define FIND_T_FILENAME(fInfo)        (fInfo.cFileName)
-#define FIND_T_IS_DIR(fInfo)          ((fInfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0)
-#define FIND_T_IS_FILE(fInfo)         ((fInfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0)
-#define FIND_RET_T                    HANDLE
-#define FINDFIRST_FILE(path, result)  FindFirstFileA(path, result)
-#define FINDFIRST_DIR(path, result)   FindFirstFileA(path, result)
-#define FINDNEXT(ff_res, result)      FindNextFileA(ff_res, result)
-#define FINDFIRST_SUCCEEDED(ret)      (ret != INVALID_HANDLE_VALUE)
-#define FINDNEXT_SUCCEEDED(ret)       (ret == TRUE)
-
-#define GETCWD(path, len)             GetCurrentDirectoryA(len, path)
-#define CHDIR(path)                   SetCurrentDirectoryA(path)
-
-#define NEWLINE     "\r\n"
-#define NEWLINE_LEN 2
-
-#else
-
-#define FIND_T                        struct fflbk
-#define FIND_T_FILENAME(fInfo)        (fInfo.ff_name)
-#define FIND_T_IS_DIR(fInfo)          ((fInfo.ff_attrib & FA_DIREC) == FA_DIREC)
-#define FIND_T_IS_FILE(fInfo)         (1)
-#define FIND_RET_T                    int
-#define FINDFIRST_FILE(path, result)  findfirst(path, result, FA_ARCH)
-#define FINDFIRST_DIR(path, result)   findfirst(path, result, FA_DIREC)
-#define FINDNEXT(ff_res, result)      FindNextFileA(ff_res, result)
-#define FINDFIRST_SUCCEEDED(ret)      (ret == 0)
-#define FINDNEXT_SUCCEEDED(ret)       (ret == 0)
-
-#define GETCWD(path, len)             getcwd(path, len)
-#define CHDIR(path)                   chdir(path)
-
-#endif
-
-/* define this to get the header variables we use to build HTTP headers */
-#define LWIP_HTTPD_DYNAMIC_HEADERS 1
-#include "../httpd_structs.h"
-
-#include "../../../lwip-1.4.0/src/core/ipv4/inet_chksum.c"
-#include "../../../lwip-1.4.0/src/core/def.c"
-
-/** (Your server name here) */
-const char *serverID = "Server: "HTTPD_SERVER_AGENT"\r\n";
-
-/* change this to suit your MEM_ALIGNMENT */
-#define PAYLOAD_ALIGNMENT 4
-/* set this to 0 to prevent aligning payload */
-#define ALIGN_PAYLOAD 1
-/* define this to a type that has the required alignment */
-#define PAYLOAD_ALIGN_TYPE "unsigned int"
-static int payload_alingment_dummy_counter = 0;
-
-#define HEX_BYTES_PER_LINE 16
-
-#define MAX_PATH_LEN 256
-
-#define COPY_BUFSIZE 10240
-
-int process_sub(FILE *data_file, FILE *struct_file);
-int process_file(FILE *data_file, FILE *struct_file, const char *filename);
-int file_write_http_header(FILE *data_file, const char *filename, int file_size,
-                           u16_t *http_hdr_len, u16_t *http_hdr_chksum);
-int file_put_ascii(FILE *file, const char *ascii_string, int len, int *i);
-int s_put_ascii(char *buf, const char *ascii_string, int len, int *i);
-void concat_files(const char *file1, const char *file2, const char *targetfile);
-
-static unsigned char file_buffer_raw[COPY_BUFSIZE];
-/* 5 bytes per char + 3 bytes per line */
-static char file_buffer_c[COPY_BUFSIZE * 5 + ((COPY_BUFSIZE / HEX_BYTES_PER_LINE) * 3)];
-
-char curSubdir[MAX_PATH_LEN];
-char lastFileVar[MAX_PATH_LEN];
-char hdr_buf[4096];
-
-unsigned char processSubs = 1;
-unsigned char includeHttpHeader = 1;
-unsigned char useHttp11 = 0;
-unsigned char precalcChksum = 0;
-
-int main(int argc, char *argv[])
-{
-  FIND_T fInfo;
-  FIND_RET_T fret;
-  char path[MAX_PATH_LEN];
-  char appPath[MAX_PATH_LEN];
-  FILE *data_file;
-  FILE *struct_file;
-  int filesProcessed;
-  int i;
-  char targetfile[MAX_PATH_LEN];
-  strcpy(targetfile, "fsdata.c");
-
-  memset(path, 0, sizeof(path));
-  memset(appPath, 0, sizeof(appPath));
-
-  printf(NEWLINE " makefsdata - HTML to C source converter" NEWLINE);
-  printf("     by Jim Pettinato               - circa 2003 " NEWLINE);
-  printf("     extended by Simon Goldschmidt  - 2009 " NEWLINE NEWLINE);
-
-  strcpy(path, "fs");
-  for(i = 1; i < argc; i++) {
-    if (argv[i][0] == '-') {
-      if (strstr(argv[i], "-s")) {
-        processSubs = 0;
-      } else if (strstr(argv[i], "-e")) {
-        includeHttpHeader = 0;
-      } else if (strstr(argv[i], "-11")) {
-        useHttp11 = 1;
-      } else if (strstr(argv[i], "-c")) {
-        precalcChksum = 1;
-      } else if((argv[i][1] == 'f') && (argv[i][2] == ':')) {
-        strcpy(targetfile, &argv[i][3]);
-        printf("Writing to file \"%s\"\n", targetfile);
-      }
-    } else {
-      strcpy(path, argv[i]);
-    }
-  }
-
-  /* if command line param or subdir named 'fs' not found spout usage verbiage */
-  fret = FINDFIRST_DIR(path, &fInfo);
-  if (!FINDFIRST_SUCCEEDED(fret)) {
-    /* if no subdir named 'fs' (or the one which was given) exists, spout usage verbiage */
-    printf(" Failed to open directory \"%s\"." NEWLINE NEWLINE, path);
-    printf(" Usage: htmlgen [targetdir] [-s] [-i] [-f:<filename>]" NEWLINE NEWLINE);
-    printf("   targetdir: relative or absolute path to files to convert" NEWLINE);
-    printf("   switch -s: toggle processing of subdirectories (default is on)" NEWLINE);
-    printf("   switch -e: exclude HTTP header from file (header is created at runtime, default is off)" NEWLINE);
-    printf("   switch -11: include HTTP 1.1 header (1.0 is default)" NEWLINE);
-    printf("   switch -c: precalculate checksums for all pages (default is off)" NEWLINE);
-    printf("   switch -f: target filename (default is \"fsdata.c\")" NEWLINE);
-    printf("   if targetdir not specified, htmlgen will attempt to" NEWLINE);
-    printf("   process files in subdirectory 'fs'" NEWLINE);
-    exit(-1);
-  }
-
-  printf("HTTP %sheader will %s statically included." NEWLINE,
-    (includeHttpHeader ? (useHttp11 ? "1.1 " : "1.0 ") : ""),
-    (includeHttpHeader ? "be" : "not be"));
-
-  sprintf(curSubdir, "");  /* start off in web page's root directory - relative paths */
-  printf("  Processing all files in directory %s", path);
-  if (processSubs) {
-    printf(" and subdirectories..." NEWLINE NEWLINE);
-  } else {
-    printf("..." NEWLINE NEWLINE);
-  }
-
-  GETCWD(appPath, MAX_PATH_LEN);
-  data_file = fopen("fsdata.tmp", "wb");
-  if (data_file == NULL) {
-    printf("Failed to create file \"fsdata.tmp\"\n");
-    exit(-1);
-  }
-  struct_file = fopen("fshdr.tmp", "wb");
-  if (struct_file == NULL) {
-    printf("Failed to create file \"fshdr.tmp\"\n");
-    exit(-1);
-  }
-
-  CHDIR(path);
-
-  fprintf(data_file, "#include \"fs.h\"" NEWLINE);
-  fprintf(data_file, "#include \"lwip/def.h\"" NEWLINE);
-  fprintf(data_file, "#include \"fsdata.h\"" NEWLINE NEWLINE NEWLINE);
-
-  fprintf(data_file, "#define file_NULL (struct fsdata_file *) NULL" NEWLINE NEWLINE NEWLINE);
-
-  sprintf(lastFileVar, "NULL");
-
-  filesProcessed = process_sub(data_file, struct_file);
-
-  /* data_file now contains all of the raw data.. now append linked list of
-   * file header structs to allow embedded app to search for a file name */
-  fprintf(data_file, NEWLINE NEWLINE);
-  fprintf(struct_file, "#define FS_ROOT file_%s" NEWLINE, lastFileVar);
-  fprintf(struct_file, "#define FS_NUMFILES %d" NEWLINE NEWLINE, filesProcessed);
-
-  fclose(data_file);
-  fclose(struct_file);
-
-  CHDIR(appPath);
-  /* append struct_file to data_file */
-  printf(NEWLINE "Creating target file..." NEWLINE NEWLINE);
-  concat_files("fsdata.tmp", "fshdr.tmp", targetfile);
-
-  /* if succeeded, delete the temporary files */
-  remove("fsdata.tmp");
-  remove("fshdr.tmp"); 
-
-  printf(NEWLINE "Processed %d files - done." NEWLINE NEWLINE, filesProcessed);
-
-  return 0;
-}
-
-static void copy_file(const char *filename_in, FILE *fout)
-{
-  FILE *fin;
-  size_t len;
-  fin = fopen(filename_in, "rb");
-  if (fin == NULL) {
-    printf("Failed to open file \"%s\"\n", filename_in);
-    exit(-1);
-  }
-
-  while((len = fread(file_buffer_raw, 1, COPY_BUFSIZE, fin)) > 0)
-  {
-    fwrite(file_buffer_raw, 1, len, fout);
-  }
-  fclose(fin);
-}
-
-void concat_files(const char *file1, const char *file2, const char *targetfile)
-{
-  FILE *fout;
-  fout = fopen(targetfile, "wb");
-  if (fout == NULL) {
-    printf("Failed to open file \"%s\"\n", targetfile);
-    exit(-1);
-  }
-  copy_file(file1, fout);
-  copy_file(file2, fout);
-  fclose(fout);
-}
-
-int process_sub(FILE *data_file, FILE *struct_file)
-{
-  FIND_T fInfo;
-  FIND_RET_T fret;
-  int filesProcessed = 0;
-  char oldSubdir[MAX_PATH_LEN];
-
-  if (processSubs) {
-    /* process subs recursively */
-    strcpy(oldSubdir, curSubdir);
-    fret = FINDFIRST_DIR("*", &fInfo);
-    if (FINDFIRST_SUCCEEDED(fret)) {
-      do {
-        const char *curName = FIND_T_FILENAME(fInfo);
-        if (curName == NULL) continue;
-        if (curName[0] == '.') continue;
-        if (strcmp(curName, "CVS") == 0) continue;
-        if (!FIND_T_IS_DIR(fInfo)) continue;
-        CHDIR(curName);
-        strcat(curSubdir, "/");
-        strcat(curSubdir, curName);
-        printf(NEWLINE "processing subdirectory %s/..." NEWLINE, curSubdir);
-        filesProcessed += process_sub(data_file, struct_file);
-        CHDIR("..");
-        strcpy(curSubdir, oldSubdir);
-      } while (FINDNEXT_SUCCEEDED(FINDNEXT(fret, &fInfo)));
-    }
-  }
-
-  fret = FINDFIRST_FILE("*.*", &fInfo);
-  if (FINDFIRST_SUCCEEDED(fret)) {
-    /* at least one file in directory */
-    do {
-      if (FIND_T_IS_FILE(fInfo)) {
-        const char *curName = FIND_T_FILENAME(fInfo);
-        printf("processing %s/%s..." NEWLINE, curSubdir, curName);
-        if (process_file(data_file, struct_file, curName) < 0) {
-          printf(NEWLINE "Error... aborting" NEWLINE);
-          return -1;
-        }
-        filesProcessed++;
-      }
-    } while (FINDNEXT_SUCCEEDED(FINDNEXT(fret, &fInfo)));
-  }
-  return filesProcessed;
-}
-
-int get_file_size(const char* filename)
-{
-  FILE *inFile;
-  int file_size = -1;
-  inFile = fopen(filename, "rb");
-  if (inFile == NULL) {
-    printf("Failed to open file \"%s\"\n", filename);
-    exit(-1);
-  }
-  fseek(inFile, 0, SEEK_END);
-  file_size = ftell(inFile);
-  fclose(inFile);
-  return file_size;
-}
-
-void process_file_data(const char *filename, FILE *data_file)
-{
-  FILE *source_file;
-  size_t len, written, i, src_off=0;
-
-  source_file = fopen(filename, "rb");
-
-  do {
-    size_t off = 0;
-    len = fread(file_buffer_raw, 1, COPY_BUFSIZE, source_file);
-    if (len > 0) {
-      for (i = 0; i < len; i++) {
-        sprintf(&file_buffer_c[off], "0x%02.2x,", file_buffer_raw[i]);
-        off += 5;
-        if ((++src_off % HEX_BYTES_PER_LINE) == 0) {
-          memcpy(&file_buffer_c[off], NEWLINE, NEWLINE_LEN);
-          off += NEWLINE_LEN;
-        }
-      }
-      written = fwrite(file_buffer_c, 1, off, data_file);
-    }
-  } while(len > 0);
-  fclose(source_file);
-}
-
-int write_checksums(FILE *struct_file, const char *filename, const char *varname,
-                    u16_t hdr_len, u16_t hdr_chksum)
-{
-  int chunk_size = TCP_MSS;
-  int offset;
-  size_t len;
-  int i = 0;
-  FILE *f;
-#if LWIP_TCP_TIMESTAMPS
-  /* when timestamps are used, usable space is 12 bytes less per segment */
-  chunk_size -= 12;
-#endif
-
-  fprintf(struct_file, "#if HTTPD_PRECALCULATED_CHECKSUM" NEWLINE);
-  fprintf(struct_file, "const struct fsdata_chksum chksums_%s[] = {" NEWLINE, varname);
-
-  memset(file_buffer_raw, 0xab, sizeof(file_buffer_raw));
-  f = fopen(filename, "rb");
-  if (f == INVALID_HANDLE_VALUE) {
-    printf("Failed to open file \"%s\"\n", filename);
-    exit(-1);
-  }
-  if (hdr_len > 0) {
-    /* add checksum for HTTP header */
-    fprintf(struct_file, "{%d, 0x%04x, %d}," NEWLINE, 0, hdr_chksum, hdr_len);
-    i++;
-  }
-  for (offset = hdr_len; ; offset += len) {
-    unsigned short chksum;
-    len = fread(file_buffer_raw, 1, chunk_size, f);
-    if (len == 0) {
-      break;
-    }
-    chksum = ~inet_chksum(file_buffer_raw, (u16_t)len);
-    /* add checksum for data */
-    fprintf(struct_file, "{%d, 0x%04x, %d}," NEWLINE, offset, chksum, len);
-    i++;
-  }
-  fclose(f);
-  fprintf(struct_file, "};" NEWLINE);
-  fprintf(struct_file, "#endif /* HTTPD_PRECALCULATED_CHECKSUM */" NEWLINE);
-  return i;
-}
-
-int process_file(FILE *data_file, FILE *struct_file, const char *filename)
-{
-  char *pch;
-  char varname[MAX_PATH_LEN];
-  int i = 0;
-  char qualifiedName[MAX_PATH_LEN];
-  int file_size;
-  u16_t http_hdr_chksum = 0;
-  u16_t http_hdr_len = 0;
-  int chksum_count = 0;
-
-  /* create qualified name (TODO: prepend slash or not?) */
-  sprintf(qualifiedName,"%s/%s", curSubdir, filename);
-  /* create C variable name */
-  strcpy(varname, qualifiedName);
-  /* convert slashes & dots to underscores */
-  while ((pch = strpbrk(varname, "./\\")) != NULL) {
-    *pch = '_';
-  }
-#if ALIGN_PAYLOAD
-  /* to force even alignment of array */
-  fprintf(data_file, "static const " PAYLOAD_ALIGN_TYPE " dummy_align_%s = %d;" NEWLINE, varname, payload_alingment_dummy_counter++);
-#endif /* ALIGN_PAYLOAD */
-  fprintf(data_file, "static const unsigned char data_%s[] = {" NEWLINE, varname);
-  /* encode source file name (used by file system, not returned to browser) */
-  fprintf(data_file, "/* %s (%d chars) */" NEWLINE, qualifiedName, strlen(qualifiedName)+1);
-  file_put_ascii(data_file, qualifiedName, strlen(qualifiedName)+1, &i);
-#if ALIGN_PAYLOAD
-  /* pad to even number of bytes to assure payload is on aligned boundary */
-  while(i % PAYLOAD_ALIGNMENT != 0) {
-    fprintf(data_file, "0x%02.2x,", 0);
-    i++;
-  }
-#endif /* ALIGN_PAYLOAD */
-  fprintf(data_file, NEWLINE);
-
-  file_size = get_file_size(filename);
-  if (includeHttpHeader) {
-    file_write_http_header(data_file, filename, file_size, &http_hdr_len, &http_hdr_chksum);
-  }
-  if (precalcChksum) {
-    chksum_count = write_checksums(struct_file, filename, varname, http_hdr_len, http_hdr_chksum);
-  }
-
-  /* build declaration of struct fsdata_file in temp file */
-  fprintf(struct_file, "const struct fsdata_file file_%s[] = { {" NEWLINE, varname);
-  fprintf(struct_file, "file_%s," NEWLINE, lastFileVar);
-  fprintf(struct_file, "data_%s," NEWLINE, varname);
-  fprintf(struct_file, "data_%s + %d," NEWLINE, varname, i);
-  fprintf(struct_file, "sizeof(data_%s) - %d," NEWLINE, varname, i);
-  fprintf(struct_file, "%d," NEWLINE, includeHttpHeader);
-  if (precalcChksum) {
-    fprintf(struct_file, "#if HTTPD_PRECALCULATED_CHECKSUM" NEWLINE);
-    fprintf(struct_file, "%d, chksums_%s," NEWLINE, chksum_count, varname);
-    fprintf(struct_file, "#endif /* HTTPD_PRECALCULATED_CHECKSUM */" NEWLINE);
-  }
-  fprintf(struct_file, "}};" NEWLINE NEWLINE);
-  strcpy(lastFileVar, varname);
-
-  /* write actual file contents */
-  i = 0;
-  fprintf(data_file, NEWLINE "/* raw file data (%d bytes) */" NEWLINE, file_size);
-  process_file_data(filename, data_file);
-  fprintf(data_file, "};" NEWLINE NEWLINE);
-
-  return 0;
-}
-
-int file_write_http_header(FILE *data_file, const char *filename, int file_size,
-                           u16_t *http_hdr_len, u16_t *http_hdr_chksum)
-{
-  int i = 0;
-  int response_type = HTTP_HDR_OK;
-  int file_type = HTTP_HDR_DEFAULT_TYPE;
-  const char *cur_string;
-  size_t cur_len;
-  int written = 0;
-  size_t hdr_len = 0;
-  u16_t acc;
-  const char *file_ext;
-  int j;
-
-  memset(hdr_buf, 0, sizeof(hdr_buf));
-  
-  if (useHttp11) {
-    response_type = HTTP_HDR_OK_11;
-  }
-
-  fprintf(data_file, NEWLINE "/* HTTP header */");
-  if (strstr(filename, "404") == filename) {
-    response_type = HTTP_HDR_NOT_FOUND;
-    if (useHttp11) {
-      response_type = HTTP_HDR_NOT_FOUND_11;
-    }
-  } else if (strstr(filename, "400") == filename) {
-    response_type = HTTP_HDR_BAD_REQUEST;
-    if (useHttp11) {
-      response_type = HTTP_HDR_BAD_REQUEST_11;
-    }
-  } else if (strstr(filename, "501") == filename) {
-    response_type = HTTP_HDR_NOT_IMPL;
-    if (useHttp11) {
-      response_type = HTTP_HDR_NOT_IMPL_11;
-    }
-  }
-  cur_string = g_psHTTPHeaderStrings[response_type];
-  cur_len = strlen(cur_string);
-  fprintf(data_file, NEWLINE "/* \"%s\" (%d bytes) */" NEWLINE, cur_string, cur_len);
-  written += file_put_ascii(data_file, cur_string, cur_len, &i);
-  i = 0;
-  if (precalcChksum) {
-    memcpy(&hdr_buf[hdr_len], cur_string, cur_len);
-    hdr_len += cur_len;
-  }
-
-  cur_string = serverID;
-  cur_len = strlen(cur_string);
-  fprintf(data_file, NEWLINE "/* \"%s\" (%d bytes) */" NEWLINE, cur_string, cur_len);
-  written += file_put_ascii(data_file, cur_string, cur_len, &i);
-  i = 0;
-  if (precalcChksum) {
-    memcpy(&hdr_buf[hdr_len], cur_string, cur_len);
-    hdr_len += cur_len;
-  }
-
-  file_ext = filename;
-  while(strstr(file_ext, ".") != NULL) {
-    file_ext = strstr(file_ext, ".");
-    file_ext++;
-  }
-  if((file_ext == NULL) || (*file_ext == 0)) {
-    printf("failed to get extension for file \"%s\", using default.\n", filename);
-  } else {
-    for(j = 0; j < NUM_HTTP_HEADERS; j++) {
-      if(!strcmp(file_ext, g_psHTTPHeaders[j].extension)) {
-        file_type = g_psHTTPHeaders[j].headerIndex;
-        break;
-      }
-    }
-    if (j >= NUM_HTTP_HEADERS) {
-      printf("failed to get file type for extension \"%s\", using default.\n", file_ext);
-      file_type = HTTP_HDR_DEFAULT_TYPE;
-    }
-  }
-
-  if (useHttp11) {
-    char intbuf[MAX_PATH_LEN];
-    memset(intbuf, 0, sizeof(intbuf));
-
-    cur_string = g_psHTTPHeaderStrings[HTTP_HDR_CONTENT_LENGTH];
-    cur_len = strlen(cur_string);
-    fprintf(data_file, NEWLINE "/* \"%s%d\r\n\" (%d+ bytes) */" NEWLINE, cur_string, file_size, cur_len+2);
-    written += file_put_ascii(data_file, cur_string, cur_len, &i);
-    if (precalcChksum) {
-      memcpy(&hdr_buf[hdr_len], cur_string, cur_len);
-      hdr_len += cur_len;
-    }
-
-    _itoa(file_size, intbuf, 10);
-    strcat(intbuf, "\r\n");
-    cur_len = strlen(intbuf);
-    written += file_put_ascii(data_file, intbuf, cur_len, &i);
-    i = 0;
-    if (precalcChksum) {
-      memcpy(&hdr_buf[hdr_len], intbuf, cur_len);
-      hdr_len += cur_len;
-    }
-
-    cur_string = g_psHTTPHeaderStrings[HTTP_HDR_CONN_CLOSE];
-    cur_len = strlen(cur_string);
-    fprintf(data_file, NEWLINE "/* \"%s\" (%d bytes) */" NEWLINE, cur_string, cur_len);
-    written += file_put_ascii(data_file, cur_string, cur_len, &i);
-    i = 0;
-    if (precalcChksum) {
-      memcpy(&hdr_buf[hdr_len], cur_string, cur_len);
-      hdr_len += cur_len;
-    }
-  }
-
-  cur_string = g_psHTTPHeaderStrings[file_type];
-  cur_len = strlen(cur_string);
-  fprintf(data_file, NEWLINE "/* \"%s\" (%d bytes) */" NEWLINE, cur_string, cur_len);
-  written += file_put_ascii(data_file, cur_string, cur_len, &i);
-  i = 0;
-  if (precalcChksum) {
-    memcpy(&hdr_buf[hdr_len], cur_string, cur_len);
-    hdr_len += cur_len;
-
-    LWIP_ASSERT("hdr_len <= 0xffff", hdr_len <= 0xffff);
-    LWIP_ASSERT("strlen(hdr_buf) == hdr_len", strlen(hdr_buf) == hdr_len);
-    acc = ~inet_chksum(hdr_buf, (u16_t)hdr_len);
-    *http_hdr_len = (u16_t)hdr_len;
-    *http_hdr_chksum = acc;
-  }
-
-  return written;
-}
-
-int file_put_ascii(FILE *file, const char* ascii_string, int len, int *i)
-{
-  int x;
-  for(x = 0; x < len; x++) {
-    unsigned char cur = ascii_string[x];
-    fprintf(file, "0x%02.2x,", cur);
-    if ((++(*i) % HEX_BYTES_PER_LINE) == 0) {
-      fprintf(file, NEWLINE);
-    }
-  }
-  return len;
-}
-
-int s_put_ascii(char *buf, const char *ascii_string, int len, int *i)
-{
-  int x;
-  int idx = 0;
-  for(x = 0; x < len; x++) {
-    unsigned char cur = ascii_string[x];
-    sprintf(&buf[idx], "0x%02.2x,", cur);
-    idx += 5;
-    if ((++(*i) % HEX_BYTES_PER_LINE) == 0) {
-      sprintf(&buf[idx], NEWLINE);
-      idx += NEWLINE_LEN;
-    }
-  }
-  return len;
-}
diff --git a/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/makefsdata.exe b/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/makefsdata.exe
deleted file mode 100644 (file)
index 7d4271d..0000000
Binary files a/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/makefsdata.exe and /dev/null differ
diff --git a/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/lwIP_Apps.c b/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/lwIP_Apps.c
deleted file mode 100644 (file)
index d2c192c..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-/*\r
-    FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd.\r
-       \r
-\r
-    ***************************************************************************\r
-     *                                                                       *\r
-     *    FreeRTOS tutorial books are available in pdf and paperback.        *\r
-     *    Complete, revised, and edited pdf reference manuals are also       *\r
-     *    available.                                                         *\r
-     *                                                                       *\r
-     *    Purchasing FreeRTOS documentation will not only help you, by       *\r
-     *    ensuring you get running as quickly as possible and with an        *\r
-     *    in-depth knowledge of how to use FreeRTOS, it will also help       *\r
-     *    the FreeRTOS project to continue with its mission of providing     *\r
-     *    professional grade, cross platform, de facto standard solutions    *\r
-     *    for microcontrollers - completely free of charge!                  *\r
-     *                                                                       *\r
-     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *\r
-     *                                                                       *\r
-     *    Thank you for using FreeRTOS, and thank you for your support!      *\r
-     *                                                                       *\r
-    ***************************************************************************\r
-\r
-\r
-    This file is part of the FreeRTOS distribution.\r
-\r
-    FreeRTOS is free software; you can redistribute it and/or modify it under\r
-    the terms of the GNU General Public License (version 2) as published by the\r
-    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.\r
-    >>>NOTE<<< The modification to the GPL is included to allow you to\r
-    distribute a combined work that includes FreeRTOS without being obliged to\r
-    provide the source code for proprietary components outside of the FreeRTOS\r
-    kernel.  FreeRTOS is distributed in the hope that it will be useful, but\r
-    WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
-    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for\r
-    more details. You should have received a copy of the GNU General Public\r
-    License and the FreeRTOS license exception along with FreeRTOS; if not it\r
-    can be viewed here: http://www.freertos.org/a00114.html and also obtained\r
-    by writing to Richard Barry, contact details for whom are available on the\r
-    FreeRTOS WEB site.\r
-\r
-    1 tab == 4 spaces!\r
-\r
-    http://www.FreeRTOS.org - Documentation, latest information, license and\r
-    contact details.\r
-\r
-    http://www.SafeRTOS.com - A version that is certified for use in safety\r
-    critical systems.\r
-\r
-    http://www.OpenRTOS.com - Commercial support, development, porting,\r
-    licensing and training services.\r
-*/\r
-\r
-/* Standard includes. */\r
-#include <string.h>\r
-\r
-/* lwIP core includes */\r
-#include "lwip/opt.h"\r
-#include "lwip/sys.h"\r
-#include "lwip/timers.h"\r
-#include "lwip/debug.h"\r
-#include "lwip/stats.h"\r
-#include "lwip/init.h"\r
-#include "lwip/tcpip.h"\r
-#include "lwip/netif.h"\r
-#include "lwip/tcp.h"\r
-#include "lwip/udp.h"\r
-#include "lwip/dns.h"\r
-#include "lwip/dhcp.h"\r
-#include "lwip/autoip.h"\r
-\r
-/* lwIP netif includes */\r
-#include "netif/etharp.h"\r
-\r
-/* applications includes */\r
-#include "apps/httpserver_raw/httpd.h"\r
-\r
-\r
-#define LWIP_PORT_INIT_IPADDR(addr)   IP4_ADDR((addr), configIP_ADDR0, configIP_ADDR1, configIP_ADDR2, configIP_ADDR3 )\r
-#define LWIP_PORT_INIT_GW(addr)       IP4_ADDR((addr), configGW_IP_ADDR0, configGW_IP_ADDR1, configGW_IP_ADDR2, configGW_IP_ADDR3 )\r
-#define LWIP_PORT_INIT_NETMASK(addr)  IP4_ADDR((addr), configNET_MASK0,configNET_MASK1,configNET_MASK2,configNET_MASK3)\r
-\r
-/* remember to change this MAC address to suit your needs!\r
-   the last octet will be increased by netif->num for each netif */\r
-#define LWIP_MAC_ADDR_BASE            { configMAC_ADDR0, configMAC_ADDR1, configMAC_ADDR2, configMAC_ADDR3, configMAC_ADDR4, configMAC_ADDR5 }\r
-\r
-/* configuration for applications */\r
-\r
-#define LWIP_CHARGEN_APP              0\r
-#define LWIP_DNS_APP                  0\r
-#define LWIP_HTTPD_APP                1\r
-\r
-static struct netif netif;\r
-\r
-static void apps_init( void );\r
-\r
-#define ssiTASK_STATS_INDEX                    0\r
-#define ssiRUN_TIME_STATS_INDEX                1\r
-\r
-\r
-/*\r
- * The SSI handler callback function passed to lwIP.\r
- */\r
-static unsigned short uslwIPAppsSSIHandler( int iIndex, char *pcBuffer, int iBufferLength );\r
-\r
-\r
-/* The SSI strings that are embedded in the served html files. */\r
-static const char *pccSSITags[] = \r
-{\r
-       "rtos_stats",\r
-       "run_stats"\r
-};\r
-\r
-\r
-/* Called from the TCP/IP thread. */\r
-void lwIPAppsInit( void *pvArgument )\r
-{\r
-ip_addr_t ipaddr, netmask, gw;\r
-extern err_t ethernetif_init( struct netif *netif );\r
-\r
-       ( void ) pvArgument;\r
-\r
-       ip_addr_set_zero( &gw );\r
-       ip_addr_set_zero( &ipaddr );\r
-       ip_addr_set_zero( &netmask );\r
-\r
-       LWIP_PORT_INIT_GW(&gw);\r
-       LWIP_PORT_INIT_IPADDR(&ipaddr);\r
-       LWIP_PORT_INIT_NETMASK(&netmask);\r
-\r
-       netif_set_default(netif_add(&netif, &ipaddr, &netmask, &gw, NULL, ethernetif_init, tcpip_input));\r
-\r
-       netif_set_up( &netif );\r
-       apps_init();\r
-       http_set_ssi_handler( uslwIPAppsSSIHandler, pccSSITags, sizeof( pccSSITags ) / sizeof( char * ) );\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-/* This function initializes applications */\r
-static void apps_init( void )\r
-{\r
-       /* Taken from the lwIP example code. */\r
-       \r
-       #if LWIP_HTTPD_APP && LWIP_TCP\r
-       {\r
-               httpd_init();\r
-       }\r
-       #endif /* LWIP_HTTPD_APP && LWIP_TCP */\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static unsigned short uslwIPAppsSSIHandler( int iIndex, char *pcBuffer, int iBufferLength )\r
-{\r
-static unsigned int uiUpdateCount = 0;\r
-static char cUpdateString[ 200 ];\r
-extern char *pcMainGetTaskStatusMessage( void );\r
-\r
-       ( void ) iBufferLength;\r
-\r
-       /* The SSI handler function that generates text depending on the index of\r
-       the SSI tag encountered. */\r
-       \r
-       switch( iIndex )\r
-       {\r
-               case ssiTASK_STATS_INDEX :\r
-                       vTaskList( ( signed char * ) pcBuffer );\r
-                       break;\r
-\r
-               case ssiRUN_TIME_STATS_INDEX :\r
-                       vTaskGetRunTimeStats( ( signed char * ) pcBuffer );\r
-                       break;\r
-       }\r
-\r
-       uiUpdateCount++;\r
-       sprintf( cUpdateString, "\r\n\r\n%u\r\nStatus - %s", uiUpdateCount, pcMainGetTaskStatusMessage() );\r
-       strcat( pcBuffer, cUpdateString );\r
-       return strlen( pcBuffer );\r
-}\r
-\r
diff --git a/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/lwipcfg_MicroBlaze.h b/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/lwipcfg_MicroBlaze.h
deleted file mode 100644 (file)
index f7109fa..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-
-#define LWIP_PORT_INIT_IPADDR(addr)   IP4_ADDR((addr), configIP_ADDR0, configIP_ADDR1, configIP_ADDR2, configIP_ADDR3 )
-#define LWIP_PORT_INIT_GW(addr)       IP4_ADDR((addr), configGW_IP_ADDR0, configGW_IP_ADDR1, configGW_IP_ADDR2, configGW_IP_ADDR3 )
-#define LWIP_PORT_INIT_NETMASK(addr)  IP4_ADDR((addr), configNET_MASK0,configNET_MASK1,configNET_MASK2,configNET_MASK3)
-
-/* remember to change this MAC address to suit your needs!
-   the last octet will be increased by netif->num for each netif */
-#define LWIP_MAC_ADDR_BASE            { configMAC_ADDR0, configMAC_ADDR1, configMAC_ADDR2, configMAC_ADDR3, configMAC_ADDR4, configMAC_ADDR5 }
-
-/* configuration for applications */
-
-#define LWIP_CHARGEN_APP              0
-#define LWIP_DNS_APP                  0
-#define LWIP_HTTPD_APP                1
-
diff --git a/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/lwipopts.h b/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/lwIP/lwIP_Apps/lwipopts.h
deleted file mode 100644 (file)
index 15aea5d..0000000
+++ /dev/null
@@ -1,307 +0,0 @@
-/*
- * Copyright (c) 2001-2003 Swedish Institute of Computer Science.
- * All rights reserved. 
- * 
- * Redistribution and use in source and binary forms, with or without modification, 
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission. 
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
- * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 
- * OF SUCH DAMAGE.
- *
- * This file is part of the lwIP TCP/IP stack.
- * 
- * Author: Adam Dunkels <adam@sics.se>
- *
- */
-#ifndef __LWIPOPTS_H__
-#define __LWIPOPTS_H__
-
-#include "xparameters.h"
-
-/* Define platform endianness (might already be defined) */
-#ifndef BYTE_ORDER
-       #if XPAR_MICROBLAZE_0_ENDIANNESS == 1
-               #define BYTE_ORDER LITTLE_ENDIAN
-       #else
-               #define BYTE_ORDER BIG_ENDIAN
-       #endif
-#endif /* BYTE_ORDER */
-
-#define XLWIP_CONFIG_INCLUDE_EMACLITE 1
-
-/* SSI options. */
-#define TCPIP_THREAD_NAME              "tcpip"
-#define LWIP_HTTPD_MAX_TAG_NAME_LEN 20
-#define LWIP_HTTPD_MAX_TAG_INSERT_LEN 1024
-#define TCPIP_THREAD_PRIO configLWIP_TASK_PRIORITY
-#define TCPIP_THREAD_STACKSIZE configMINIMAL_STACK_SIZE * 3
-
-#define NO_SYS                     0
-#define LWIP_SOCKET               (NO_SYS==0)
-#define LWIP_NETCONN              (NO_SYS==0)
-
-#define LWIP_IGMP                  0
-#define LWIP_ICMP                  1
-#define LWIP_SNMP                  0
-
-#define LWIP_DNS                   1
-
-#define LWIP_HAVE_LOOPIF           1
-#define LWIP_NETIF_LOOPBACK        1
-#define LWIP_LOOPBACK_MAX_PBUFS    10
-
-#define TCP_LISTEN_BACKLOG         0
-
-#define LWIP_COMPAT_SOCKETS        1
-#define LWIP_SO_RCVTIMEO           1
-#define LWIP_SO_RCVBUF             1
-
-#define LWIP_TCPIP_CORE_LOCKING    0
-
-#define LWIP_NETIF_LINK_CALLBACK   0
-#define LWIP_NETIF_STATUS_CALLBACK 0
-
-
-#ifdef LWIP_DEBUG
-
-#define LWIP_DBG_MIN_LEVEL         0
-#define PPP_DEBUG                  LWIP_DBG_OFF
-#define MEM_DEBUG                  LWIP_DBG_OFF
-#define MEMP_DEBUG                 LWIP_DBG_OFF
-#define PBUF_DEBUG                 LWIP_DBG_OFF
-#define API_LIB_DEBUG              LWIP_DBG_ON
-#define API_MSG_DEBUG              LWIP_DBG_ON
-#define TCPIP_DEBUG                LWIP_DBG_ON
-#define NETIF_DEBUG                LWIP_DBG_ON
-#define SOCKETS_DEBUG              LWIP_DBG_OFF
-#define DNS_DEBUG                  LWIP_DBG_OFF
-#define AUTOIP_DEBUG               LWIP_DBG_OFF
-#define DHCP_DEBUG                 LWIP_DBG_OFF
-#define IP_DEBUG                   LWIP_DBG_O
-#define IP_REASS_DEBUG             LWIP_DBG_ON
-#define ICMP_DEBUG                 LWIP_DBG_OFF
-#define IGMP_DEBUG                 LWIP_DBG_OFF
-#define UDP_DEBUG                  LWIP_DBG_OFF
-#define TCP_DEBUG                  LWIP_DBG_ON
-#define TCP_INPUT_DEBUG            LWIP_DBG_ON
-#define TCP_OUTPUT_DEBUG           LWIP_DBG_ON
-#define TCP_RTO_DEBUG              LWIP_DBG_ON
-#define TCP_CWND_DEBUG             LWIP_DBG_ON
-#define TCP_WND_DEBUG              LWIP_DBG_ON
-#define TCP_FR_DEBUG               LWIP_DBG_ON
-#define TCP_QLEN_DEBUG             LWIP_DBG_ON
-#define TCP_RST_DEBUG              LWIP_DBG_ON
-#endif
-
-#define LWIP_DBG_TYPES_ON         (LWIP_DBG_ON|LWIP_DBG_TRACE|LWIP_DBG_STATE|LWIP_DBG_FRESH|LWIP_DBG_HALT)
-
-#define TCPIP_MBOX_SIZE             10
-
-/* ---------- Memory options ---------- */
-/* MEM_ALIGNMENT: should be set to the alignment of the CPU for which
-   lwIP is compiled. 4 byte alignment -> define MEM_ALIGNMENT to 4, 2
-   byte alignment -> define MEM_ALIGNMENT to 2. */
-/* MSVC port: intel processors don't need 4-byte alignment,
-   but are faster that way! */
-#define MEM_ALIGNMENT           4
-
-/* MEM_SIZE: the size of the heap memory. If the application will send
-a lot of data that needs to be copied, this should be set high. */
-#define MEM_SIZE               10240
-
-/* MEMP_NUM_PBUF: the number of memp struct pbufs. If the application
-   sends a lot of data out of ROM (or other static memory), this
-   should be set high. */
-#define MEMP_NUM_PBUF           16
-/* MEMP_NUM_RAW_PCB: the number of UDP protocol control blocks. One
-   per active RAW "connection". */
-#define MEMP_NUM_RAW_PCB        3
-/* MEMP_NUM_UDP_PCB: the number of UDP protocol control blocks. One
-   per active UDP "connection". */
-#define MEMP_NUM_UDP_PCB        4
-/* MEMP_NUM_TCP_PCB: the number of simulatenously active TCP
-   connections. */
-#define MEMP_NUM_TCP_PCB        5
-/* MEMP_NUM_TCP_PCB_LISTEN: the number of listening TCP
-   connections. */
-#define MEMP_NUM_TCP_PCB_LISTEN 8
-/* MEMP_NUM_TCP_SEG: the number of simultaneously queued TCP
-   segments. */
-#define MEMP_NUM_TCP_SEG        16
-/* MEMP_NUM_SYS_TIMEOUT: the number of simulateously active
-   timeouts. */
-#define MEMP_NUM_SYS_TIMEOUT    15
-
-/* The following four are used only with the sequential API and can be
-   set to 0 if the application only will use the raw API. */
-/* MEMP_NUM_NETBUF: the number of struct netbufs. */
-#define MEMP_NUM_NETBUF         2
-/* MEMP_NUM_NETCONN: the number of struct netconns. */
-#define MEMP_NUM_NETCONN        10
-/* MEMP_NUM_TCPIP_MSG_*: the number of struct tcpip_msg, which is used
-   for sequential API communication and incoming packets. Used in
-   src/api/tcpip.c. */
-#define MEMP_NUM_TCPIP_MSG_API   16
-#define MEMP_NUM_TCPIP_MSG_INPKT 16
-
-
-/* ---------- Pbuf options ---------- */
-/* PBUF_POOL_SIZE: the number of buffers in the pbuf pool. */
-#define PBUF_POOL_SIZE          100
-
-/* PBUF_POOL_BUFSIZE: the size of each pbuf in the pbuf pool. */
-#define PBUF_POOL_BUFSIZE       128
-
-/* PBUF_LINK_HLEN: the number of bytes that should be allocated for a
-   link level header. */
-#define PBUF_LINK_HLEN          16
-
-/** SYS_LIGHTWEIGHT_PROT
- * define SYS_LIGHTWEIGHT_PROT in lwipopts.h if you want inter-task protection
- * for certain critical regions during buffer allocation, deallocation and memory
- * allocation and deallocation.
- */
-#define SYS_LIGHTWEIGHT_PROT    (NO_SYS==0)
-
-
-/* ---------- TCP options ---------- */
-#define LWIP_TCP                1
-#define TCP_TTL                 255
-
-/* Controls if TCP should queue segments that arrive out of
-   order. Define to 0 if your device is low on memory. */
-#define TCP_QUEUE_OOSEQ         1
-
-/* TCP Maximum segment size. */
-#define TCP_MSS                 1024
-
-/* TCP sender buffer space (bytes). */
-#define TCP_SND_BUF             2048
-
-/* TCP sender buffer space (pbufs). This must be at least = 2 *
-   TCP_SND_BUF/TCP_MSS for things to work. */
-#define TCP_SND_QUEUELEN       (4 * TCP_SND_BUF/TCP_MSS)
-
-/* TCP writable space (bytes). This must be less than or equal
-   to TCP_SND_BUF. It is the amount of space which must be
-   available in the tcp snd_buf for select to return writable */
-#define TCP_SNDLOWAT           (TCP_SND_BUF/2)
-
-/* TCP receive window. */
-#define TCP_WND                 8096
-
-/* Maximum number of retransmissions of data segments. */
-#define TCP_MAXRTX              12
-
-/* Maximum number of retransmissions of SYN segments. */
-#define TCP_SYNMAXRTX           4
-
-
-/* ---------- ARP options ---------- */
-#define LWIP_ARP                1
-#define ARP_TABLE_SIZE          10
-#define ARP_QUEUEING            1
-
-
-/* ---------- IP options ---------- */
-/* Define IP_FORWARD to 1 if you wish to have the ability to forward
-   IP packets across network interfaces. If you are going to run lwIP
-   on a device with only one network interface, define this to 0. */
-#define IP_FORWARD              1
-
-/* IP reassembly and segmentation.These are orthogonal even
- * if they both deal with IP fragments */
-#define IP_REASSEMBLY           1
-#define IP_REASS_MAX_PBUFS      10
-#define MEMP_NUM_REASSDATA      10
-#define IP_FRAG                 1
-
-
-/* ---------- ICMP options ---------- */
-#define ICMP_TTL                255
-
-
-/* ---------- DHCP options ---------- */
-/* Define LWIP_DHCP to 1 if you want DHCP configuration of
-   interfaces. */
-#define LWIP_DHCP               0
-
-/* 1 if you want to do an ARP check on the offered address
-   (recommended). */
-#define DHCP_DOES_ARP_CHECK    (LWIP_DHCP)
-
-
-/* ---------- AUTOIP options ------- */
-#define LWIP_AUTOIP             0
-#define LWIP_DHCP_AUTOIP_COOP  (LWIP_DHCP && LWIP_AUTOIP)
-
-
-/* ---------- UDP options ---------- */
-#define LWIP_UDP                1
-#define LWIP_UDPLITE            1
-#define UDP_TTL                 255
-
-
-/* ---------- Statistics options ---------- */
-
-#define LWIP_STATS              1
-#define LWIP_STATS_DISPLAY      1
-
-#if LWIP_STATS
-#define LINK_STATS              1
-#define IP_STATS                1
-#define ICMP_STATS              1
-#define IGMP_STATS              1
-#define IPFRAG_STATS            1
-#define UDP_STATS               1
-#define TCP_STATS               1
-#define MEM_STATS               1
-#define MEMP_STATS              1
-#define PBUF_STATS              1
-#define SYS_STATS               1
-#endif /* LWIP_STATS */
-
-
-/* ---------- PPP options ---------- */
-
-#define PPP_SUPPORT             0      /* Set > 0 for PPP */
-
-#if PPP_SUPPORT
-
-#define NUM_PPP                 1      /* Max PPP sessions. */
-
-
-/* Select modules to enable.  Ideally these would be set in the makefile but
- * we're limited by the command line length so you need to modify the settings
- * in this file.
- */
-#define PPPOE_SUPPORT           1
-#define PPPOS_SUPPORT           1
-
-#define PAP_SUPPORT             1      /* Set > 0 for PAP. */
-#define CHAP_SUPPORT            1      /* Set > 0 for CHAP. */
-#define MSCHAP_SUPPORT          0      /* Set > 0 for MSCHAP (NOT FUNCTIONAL!) */
-#define CBCP_SUPPORT            0      /* Set > 0 for CBCP (NOT FUNCTIONAL!) */
-#define CCP_SUPPORT             0      /* Set > 0 for CCP (NOT FUNCTIONAL!) */
-#define VJ_SUPPORT              1      /* Set > 0 for VJ header compression. */
-#define MD5_SUPPORT             1      /* Set > 0 for MD5 (see also CHAP) */
-
-#endif /* PPP_SUPPORT */
-
-#endif /* __LWIPOPTS_H__ */
diff --git a/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/main-blinky.c b/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/main-blinky.c
deleted file mode 100644 (file)
index a68b786..0000000
+++ /dev/null
@@ -1,540 +0,0 @@
-/*\r
-    FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd.\r
-\r
-\r
-       FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by:\r
-       Atollic AB - Atollic provides professional embedded systems development\r
-       tools for C/C++ development, code analysis and test automation.\r
-       See http://www.atollic.com\r
-\r
-\r
-    ***************************************************************************\r
-     *                                                                       *\r
-     *    FreeRTOS tutorial books are available in pdf and paperback.        *\r
-     *    Complete, revised, and edited pdf reference manuals are also       *\r
-     *    available.                                                         *\r
-     *                                                                       *\r
-     *    Purchasing FreeRTOS documentation will not only help you, by       *\r
-     *    ensuring you get running as quickly as possible and with an        *\r
-     *    in-depth knowledge of how to use FreeRTOS, it will also help       *\r
-     *    the FreeRTOS project to continue with its mission of providing     *\r
-     *    professional grade, cross platform, de facto standard solutions    *\r
-     *    for microcontrollers - completely free of charge!                  *\r
-     *                                                                       *\r
-     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *\r
-     *                                                                       *\r
-     *    Thank you for using FreeRTOS, and thank you for your support!      *\r
-     *                                                                       *\r
-    ***************************************************************************\r
-\r
-\r
-    This file is part of the FreeRTOS distribution.\r
-\r
-    FreeRTOS is free software; you can redistribute it and/or modify it under\r
-    the terms of the GNU General Public License (version 2) as published by the\r
-    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.\r
-    >>>NOTE<<< The modification to the GPL is included to allow you to\r
-    distribute a combined work that includes FreeRTOS without being obliged to\r
-    provide the source code for proprietary components outside of the FreeRTOS\r
-    kernel.  FreeRTOS is distributed in the hope that it will be useful, but\r
-    WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
-    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for\r
-    more details. You should have received a copy of the GNU General Public\r
-    License and the FreeRTOS license exception along with FreeRTOS; if not it\r
-    can be viewed here: http://www.freertos.org/a00114.html and also obtained\r
-    by writing to Richard Barry, contact details for whom are available on the\r
-    FreeRTOS WEB site.\r
-\r
-    1 tab == 4 spaces!\r
-\r
-    http://www.FreeRTOS.org - Documentation, latest information, license and\r
-    contact details.\r
-\r
-    http://www.SafeRTOS.com - A version that is certified for use in safety\r
-    critical systems.\r
-\r
-    http://www.OpenRTOS.com - Commercial support, development, porting,\r
-    licensing and training services.\r
-*/\r
-\r
-/*\r
- * main-blinky.c is included when the "Blinky" build configuration is used.\r
- * main-full.c is included when the "Full" build configuration is used.\r
- *\r
- * main-blinky.c (this file) defines a very simple demo that creates two tasks,\r
- * one queue, and one timer.  It also demonstrates how MicroBlaze interrupts\r
- * can interact with FreeRTOS tasks/timers.\r
- *\r
- * This simple demo project was developed and tested on the Spartan-6 SP605 \r
- * development board, using the hardware configuration found in the hardware\r
- * project that is already included in the Eclipse project.\r
- *\r
- * The idle hook function:\r
- * The idle hook function demonstrates how to query the amount of FreeRTOS heap\r
- * space that is remaining (see vApplicationIdleHook() defined in this file).\r
- *\r
- * The main() Function:\r
- * main() creates one software timer, one queue, and two tasks.  It then starts\r
- * the scheduler.\r
- *\r
- * The Queue Send Task:\r
- * The queue send task is implemented by the prvQueueSendTask() function in\r
- * this file.  prvQueueSendTask() sits in a loop that causes it to repeatedly\r
- * block for 200 milliseconds, before sending the value 100 to the queue that\r
- * was created within main().  Once the value is sent, the task loops back\r
- * around to block for another 200 milliseconds.\r
- *\r
- * The Queue Receive Task:\r
- * The queue receive task is implemented by the prvQueueReceiveTask() function\r
- * in this file.  prvQueueReceiveTask() sits in a loop that causes it to\r
- * repeatedly attempt to read data from the queue that was created within\r
- * main().  When data is received, the task checks the value of the data, and\r
- * if the value equals the expected 100, toggles an LED.  The 'block time' \r
- * parameter passed to the queue receive function specifies that the task\r
- * should be held in the Blocked state indefinitely to wait for data to be\r
- * available on the queue.  The queue receive task will only leave the Blocked\r
- * state when the queue send task writes to the queue.  As the queue send task\r
- * writes to the queue every 200 milliseconds, the queue receive task leaves\r
- * the Blocked state every 200 milliseconds, and therefore toggles the LED\r
- * every 200 milliseconds.\r
- *\r
- * The LED Software Timer and the Button Interrupt:\r
- * The user buttons are configured to generate an interrupt each time one is\r
- * pressed.  The interrupt service routine switches an LED on, and resets the\r
- * LED software timer.  The LED timer has a 5000 millisecond (5 second) period,\r
- * and uses a callback function that is defined to just turn the LED off again.\r
- * Therefore, pressing the user button will turn the LED on, and the LED will\r
- * remain on until a full five seconds pass without the button being pressed.\r
- */\r
-\r
-/* Kernel includes. */\r
-#include "FreeRTOS.h"\r
-#include "task.h"\r
-#include "queue.h"\r
-#include "timers.h"\r
-\r
-/* BSP includes. */\r
-#include "xtmrctr.h"\r
-#include "xgpio.h"\r
-\r
-/* Priorities at which the tasks are created. */\r
-#define mainQUEUE_RECEIVE_TASK_PRIORITY                ( tskIDLE_PRIORITY + 2 )\r
-#define        mainQUEUE_SEND_TASK_PRIORITY            ( tskIDLE_PRIORITY + 1 )\r
-\r
-/* The rate at which data is sent to the queue, specified in milliseconds, and\r
-converted to ticks using the portTICK_RATE_MS constant. */\r
-#define mainQUEUE_SEND_FREQUENCY_MS                    ( 200 / portTICK_RATE_MS )\r
-\r
-/* The number of items the queue can hold.  This is 1 as the receive task\r
-will remove items as they are added because it has the higher priority, meaning \r
-the send task should always find the queue empty. */\r
-#define mainQUEUE_LENGTH                                       ( 1 )\r
-\r
-/* The LED toggled by the queue receive task. */\r
-#define mainTASK_CONTROLLED_LED                                0x01UL\r
-\r
-/* The LED turned on by the button interrupt, and turned off by the LED timer. */\r
-#define mainTIMER_CONTROLLED_LED                       0x02UL\r
-\r
-/* A block time of 0 simply means, "don't block". */\r
-#define mainDONT_BLOCK                                         ( portTickType ) 0\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-/*\r
- * Setup the NVIC, LED outputs, and button inputs.\r
- */\r
-static void prvSetupHardware( void );\r
-\r
-/*\r
- * The tasks as described in the comments at the top of this file.\r
- */\r
-static void prvQueueReceiveTask( void *pvParameters );\r
-static void prvQueueSendTask( void *pvParameters );\r
-\r
-/*\r
- * The LED timer callback function.  This does nothing but switch off the\r
- * LED defined by the mainTIMER_CONTROLLED_LED constant.\r
- */\r
-static void vLEDTimerCallback( xTimerHandle xTimer );\r
-\r
-/* \r
- * The handler executed each time a button interrupt is generated.  This ensures\r
- * the LED defined by mainTIMER_CONTROLLED_LED is on, and resets the timer so\r
- * the timer will not turn the LED off for a full 5 seconds after the button\r
- * interrupt occurred.\r
- */\r
-static void prvButtonInputInterruptHandler( void *pvUnused );\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-/* The queue used by the queue send and queue receive tasks. */\r
-static xQueueHandle xQueue = NULL;\r
-\r
-/* The LED software timer.  This uses vLEDTimerCallback() as its callback\r
-function. */\r
-static xTimerHandle xLEDTimer = NULL;\r
-\r
-/* Maintains the current LED output state. */\r
-static volatile unsigned char ucGPIOState = 0U;\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-/* Structures that hold the state of the various peripherals used by this demo.\r
-These are used by the Xilinx peripheral driver API functions. */\r
-static XTmrCtr xTimer0Instance;\r
-static XGpio xOutputGPIOInstance, xInputGPIOInstance;\r
-\r
-/* Constants required by the Xilinx peripheral driver API functions that are\r
-relevant to the particular hardware set up. */\r
-static const unsigned long ulGPIOOutputChannel = 1UL, ulGPIOInputChannel = 1UL;\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-int main( void )\r
-{\r
-       /* *************************************************************************\r
-       This is a very simple project suitable for getting started with FreeRTOS.  \r
-       If you would prefer a more complex project that demonstrates a lot more \r
-       features and tests, then select the 'Full' build configuration within the \r
-       SDK Eclipse IDE. \r
-       ***************************************************************************/\r
-\r
-       /* Configure the interrupt controller, LED outputs and button inputs. */\r
-       prvSetupHardware();\r
-\r
-       /* Create the queue used by the queue send and queue receive tasks as\r
-       described in the comments at the top of this file. */\r
-       xQueue = xQueueCreate( mainQUEUE_LENGTH, sizeof( unsigned long ) );\r
-\r
-       /* Sanity check that the queue was created. */\r
-       configASSERT( xQueue );\r
-\r
-       /* Start the two tasks as described in the comments at the top of this \r
-       file. */\r
-       xTaskCreate( prvQueueReceiveTask, ( signed char * ) "Rx", configMINIMAL_STACK_SIZE, NULL, mainQUEUE_RECEIVE_TASK_PRIORITY, NULL );\r
-       xTaskCreate( prvQueueSendTask, ( signed char * ) "TX", configMINIMAL_STACK_SIZE, NULL, mainQUEUE_SEND_TASK_PRIORITY, NULL );\r
-\r
-       /* Create the software timer that is responsible for turning off the LED\r
-       if the button is not pushed within 5000ms, as described at the top of\r
-       this file.  The timer is not actually started until a button interrupt is\r
-       pushed, as it is not until that point that the LED is turned on. */\r
-       xLEDTimer = xTimerCreate(       ( const signed char * ) "LEDTimer", /* A text name, purely to help debugging. */\r
-                                                               ( 5000 / portTICK_RATE_MS ),            /* The timer period, in this case 5000ms (5s). */\r
-                                                               pdFALSE,                                                        /* This is a one shot timer, so xAutoReload is set to pdFALSE. */\r
-                                                               ( void * ) 0,                                           /* The ID is not used, so can be set to anything. */\r
-                                                               vLEDTimerCallback                                       /* The callback function that switches the LED off. */\r
-                                                       );\r
-\r
-       /* Start the tasks and timer running. */\r
-       vTaskStartScheduler();\r
-\r
-       /* If all is well, the scheduler will now be running, and the following line\r
-       will never be reached.  If the following line does execute, then there was\r
-       insufficient FreeRTOS heap memory available for the idle and/or timer tasks\r
-       to be created.  See the memory management section on the FreeRTOS web site\r
-       for more details. */\r
-       for( ;; );\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-/* The callback is executed when the LED timer expires. */\r
-static void vLEDTimerCallback( xTimerHandle xTimer )\r
-{\r
-       /* The timer has expired - so no button pushes have occurred in the last\r
-       five seconds - turn the LED off.  NOTE - accessing the LED port should use\r
-       a critical section because it is accessed from multiple tasks, and the\r
-       button interrupt - in this trivial case, for simplicity, the critical\r
-       section is omitted. */\r
-       ucGPIOState &= ~mainTIMER_CONTROLLED_LED;\r
-       XGpio_DiscreteWrite( &xOutputGPIOInstance, ulGPIOOutputChannel, ucGPIOState );\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-/* The ISR is executed when the user button is pushed. */\r
-static void prvButtonInputInterruptHandler( void *pvUnused )\r
-{\r
-long lHigherPriorityTaskWoken = pdFALSE;\r
-\r
-       /* The button was pushed, so ensure the LED is on before resetting the\r
-       LED timer.  The LED timer will turn the LED off if the button is not\r
-       pushed within 5000ms. */\r
-       ucGPIOState |= mainTIMER_CONTROLLED_LED;\r
-       XGpio_DiscreteWrite( &xOutputGPIOInstance, ulGPIOOutputChannel, ucGPIOState );\r
-\r
-       /* Ensure only the ISR safe reset API function is used, as this is executed\r
-       in an interrupt context. */\r
-       xTimerResetFromISR( xLEDTimer, &lHigherPriorityTaskWoken );\r
-\r
-       /* Clear the interrupt before leaving. */\r
-       XGpio_InterruptClear( &xInputGPIOInstance, ulGPIOInputChannel );\r
-\r
-       /* If calling xTimerResetFromISR() caused a task (in this case the timer\r
-       service/daemon task) to unblock, and the unblocked task has a priority\r
-       higher than or equal to the task that was interrupted, then\r
-       lHigherPriorityTaskWoken will now be set to pdTRUE, and calling\r
-       portEND_SWITCHING_ISR() will ensure the unblocked task runs next. */\r
-       portYIELD_FROM_ISR( lHigherPriorityTaskWoken );\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static void prvQueueSendTask( void *pvParameters )\r
-{\r
-portTickType xNextWakeTime;\r
-const unsigned long ulValueToSend = 100UL;\r
-\r
-       /* Initialise xNextWakeTime - this only needs to be done once. */\r
-       xNextWakeTime = xTaskGetTickCount();\r
-\r
-       for( ;; )\r
-       {\r
-               /* Place this task in the blocked state until it is time to run again.\r
-               The block time is specified in ticks, the constant used converts ticks\r
-               to ms.  While in the Blocked state this task will not consume any CPU\r
-               time. */\r
-               vTaskDelayUntil( &xNextWakeTime, mainQUEUE_SEND_FREQUENCY_MS );\r
-\r
-               /* Send to the queue - causing the queue receive task to unblock and\r
-               toggle an LED.  0 is used as the block time so the sending operation\r
-               will not block - it shouldn't need to block as the queue should always\r
-               be empty at this point in the code. */\r
-               xQueueSend( xQueue, &ulValueToSend, mainDONT_BLOCK );\r
-       }\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static void prvQueueReceiveTask( void *pvParameters )\r
-{\r
-unsigned long ulReceivedValue;\r
-\r
-       for( ;; )\r
-       {\r
-               /* Wait until something arrives in the queue - this task will block\r
-               indefinitely provided INCLUDE_vTaskSuspend is set to 1 in\r
-               FreeRTOSConfig.h. */\r
-               xQueueReceive( xQueue, &ulReceivedValue, portMAX_DELAY );\r
-\r
-               /*  To get here something must have been received from the queue, but\r
-               is it the expected value?  If it is, toggle the green LED. */\r
-               if( ulReceivedValue == 100UL )\r
-               {\r
-                       /* NOTE - accessing the LED port should use a critical section\r
-                       because it is accessed from multiple tasks, and the button interrupt\r
-                       - in this trivial case, for simplicity, the critical section is\r
-                       omitted. */\r
-                       if( ( ucGPIOState & mainTASK_CONTROLLED_LED ) != 0 )\r
-                       {\r
-                               ucGPIOState &= ~mainTASK_CONTROLLED_LED;\r
-                       }\r
-                       else\r
-                       {\r
-                               ucGPIOState |= mainTASK_CONTROLLED_LED;\r
-                       }\r
-\r
-                       XGpio_DiscreteWrite( &xOutputGPIOInstance, ulGPIOOutputChannel, ucGPIOState );\r
-               }\r
-       }\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static void prvSetupHardware( void )\r
-{\r
-portBASE_TYPE xStatus;\r
-const unsigned char ucSetToOutput = 0U;\r
-\r
-       /* Initialize the GPIO for the LEDs. */\r
-       xStatus = XGpio_Initialize( &xOutputGPIOInstance, XPAR_LEDS_4BITS_DEVICE_ID );\r
-       if( xStatus == XST_SUCCESS )\r
-       {\r
-               /* All bits on this channel are going to be outputs (LEDs). */\r
-               XGpio_SetDataDirection( &xOutputGPIOInstance, ulGPIOOutputChannel, ucSetToOutput );\r
-\r
-               /* Start with all LEDs off. */\r
-               ucGPIOState = 0U;\r
-               XGpio_DiscreteWrite( &xOutputGPIOInstance, ulGPIOOutputChannel, ucGPIOState );\r
-       }\r
-\r
-       /* Initialise the GPIO for the button inputs. */\r
-       if( xStatus == XST_SUCCESS )\r
-       {\r
-               xStatus = XGpio_Initialize( &xInputGPIOInstance, XPAR_PUSH_BUTTONS_4BITS_DEVICE_ID );\r
-       }\r
-\r
-       if( xStatus == XST_SUCCESS )\r
-       {\r
-               /* Install the handler defined in this task for the button input. \r
-               *NOTE* The FreeRTOS defined xPortInstallInterruptHandler() API function\r
-               must be used for this purpose. */\r
-               xStatus = xPortInstallInterruptHandler( XPAR_MICROBLAZE_0_INTC_PUSH_BUTTONS_4BITS_IP2INTC_IRPT_INTR, prvButtonInputInterruptHandler, NULL );\r
-\r
-               if( xStatus == pdPASS )\r
-               {\r
-                       /* Set buttons to input. */\r
-                       XGpio_SetDataDirection( &xInputGPIOInstance, ulGPIOInputChannel, ~( ucSetToOutput ) );\r
-                       \r
-                       /* Enable the button input interrupts in the interrupt controller.\r
-                       *NOTE* The vPortEnableInterrupt() API function must be used for this\r
-                       purpose. */\r
-                       vPortEnableInterrupt( XPAR_MICROBLAZE_0_INTC_PUSH_BUTTONS_4BITS_IP2INTC_IRPT_INTR );\r
-\r
-                       /* Enable GPIO channel interrupts. */\r
-                       XGpio_InterruptEnable( &xInputGPIOInstance, ulGPIOInputChannel );\r
-                       XGpio_InterruptGlobalEnable( &xInputGPIOInstance );\r
-               }\r
-       }\r
-\r
-       configASSERT( ( xStatus == pdPASS ) );\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void vApplicationMallocFailedHook( void )\r
-{\r
-       /* vApplicationMallocFailedHook() will only be called if\r
-       configUSE_MALLOC_FAILED_HOOK is set to 1 in FreeRTOSConfig.h.  It is a hook\r
-       function that will get called if a call to pvPortMalloc() fails. \r
-       pvPortMalloc() is called internally by the kernel whenever a task, queue or\r
-       semaphore is created.  It is also called by various parts of the demo\r
-       application.  If heap_1.c or heap_2.c are used, then the size of the heap\r
-       available to pvPortMalloc() is defined by configTOTAL_HEAP_SIZE in\r
-       FreeRTOSConfig.h, and the xPortGetFreeHeapSize() API function can be used\r
-       to query the size of free heap space that remains (although it does not\r
-       provide information on how the remaining heap might be fragmented). */\r
-       taskDISABLE_INTERRUPTS();\r
-       for( ;; );\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void vApplicationStackOverflowHook( xTaskHandle *pxTask, signed char *pcTaskName )\r
-{\r
-       ( void ) pcTaskName;\r
-       ( void ) pxTask;\r
-\r
-       /* vApplicationStackOverflowHook() will only be called if\r
-       configCHECK_FOR_STACK_OVERFLOW is set to either 1 or 2.  The handle and name\r
-       of the offending task will be passed into the hook function via its \r
-       parameters.  However, when a stack has overflowed, it is possible that the\r
-       parameters will have been corrupted, in which case the pxCurrentTCB variable\r
-       can be inspected directly. */\r
-       taskDISABLE_INTERRUPTS();\r
-       for( ;; );\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void vApplicationIdleHook( void )\r
-{\r
-volatile size_t xFreeHeapSpace;\r
-\r
-       /* vApplicationIdleHook() will only be called if configUSE_IDLE_HOOK is set \r
-       to 1 in FreeRTOSConfig.h.  It will be called on each iteration of the idle \r
-       task.  It is essential that code added to this hook function never attempts \r
-       to block in any way (for example, call xQueueReceive() with a block time \r
-       specified, or call vTaskDelay()).  If the application makes use of the \r
-       vTaskDelete() API function (as this demo application does) then it is also \r
-       important that vApplicationIdleHook() is permitted to return to its calling \r
-       function, because it is the responsibility of the idle task to clean up \r
-       memory allocated by the kernel to any task that has since been deleted. */\r
-\r
-       /* This implementation of vApplicationIdleHook() simply demonstrates how\r
-       the xPortGetFreeHeapSize() function can be used. */\r
-       xFreeHeapSpace = xPortGetFreeHeapSize();\r
-\r
-       if( xFreeHeapSpace > 100 )\r
-       {\r
-               /* By now, the kernel has allocated everything it is going to, so\r
-               if there is a lot of heap remaining unallocated then\r
-               the value of configTOTAL_HEAP_SIZE in FreeRTOSConfig.h can be\r
-               reduced accordingly. */\r
-       }\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void vApplicationTickHook( void )\r
-{\r
-       /* vApplicationTickHook() will only be called if configUSE_TICK_HOOK is set\r
-       to 1 in FreeRTOSConfig.h.  It executes from an interrupt context so must\r
-       not use any FreeRTOS API functions that do not end in ...FromISR().\r
-\r
-       This simple blinky demo does not use the tick hook, but a tick hook is\r
-       required to be defined as the blinky and full demos share a\r
-       FreeRTOSConfig.h header file. */
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-/* This is an application defined callback function used to install the tick\r
-interrupt handler.  It is provided as an application callback because the kernel\r
-will run on lots of different MicroBlaze and FPGA configurations - not all of\r
-which will have the same timer peripherals defined or available.  This example\r
-uses the AXI Timer 0.  If that is available on your hardware platform then this\r
-example callback implementation should not require modification.   The name of\r
-the interrupt handler that should be installed is vPortTickISR(), which the \r
-function below declares as an extern. */\r
-void vApplicationSetupTimerInterrupt( void )\r
-{\r
-portBASE_TYPE xStatus;\r
-const unsigned char ucTimerCounterNumber = ( unsigned char ) 0U;\r
-const unsigned long ulCounterValue = ( ( XPAR_AXI_TIMER_0_CLOCK_FREQ_HZ / configTICK_RATE_HZ ) - 1UL );\r
-extern void vPortTickISR( void *pvUnused );\r
-\r
-       /* Initialise the timer/counter. */\r
-       xStatus = XTmrCtr_Initialize( &xTimer0Instance, XPAR_AXI_TIMER_0_DEVICE_ID );\r
-\r
-       if( xStatus == XST_SUCCESS )\r
-       {\r
-               /* Install the tick interrupt handler as the timer ISR. \r
-               *NOTE* The xPortInstallInterruptHandler() API function must be used for\r
-               this purpose. */\r
-               xStatus = xPortInstallInterruptHandler( XPAR_INTC_0_TMRCTR_0_VEC_ID, vPortTickISR, NULL );\r
-       }\r
-\r
-       if( xStatus == pdPASS )\r
-       {\r
-               /* Enable the timer interrupt in the interrupt controller.\r
-               *NOTE* The vPortEnableInterrupt() API function must be used for this\r
-               purpose. */\r
-               vPortEnableInterrupt( XPAR_INTC_0_TMRCTR_0_VEC_ID );\r
-\r
-               /* Configure the timer interrupt handler. */\r
-               XTmrCtr_SetHandler( &xTimer0Instance, ( void * ) vPortTickISR, NULL );\r
-\r
-               /* Set the correct period for the timer. */\r
-               XTmrCtr_SetResetValue( &xTimer0Instance, ucTimerCounterNumber, ulCounterValue );\r
-\r
-               /* Enable the interrupts.  Auto-reload mode is used to generate a\r
-               periodic tick.  Note that interrupts are disabled when this function is\r
-               called, so interrupts will not start to be processed until the first\r
-               task has started to run. */\r
-               XTmrCtr_SetOptions( &xTimer0Instance, ucTimerCounterNumber, ( XTC_INT_MODE_OPTION | XTC_AUTO_RELOAD_OPTION | XTC_DOWN_COUNT_OPTION ) );\r
-\r
-               /* Start the timer. */\r
-               XTmrCtr_Start( &xTimer0Instance, ucTimerCounterNumber );\r
-       }\r
-\r
-       /* Sanity check that the function executed as expected. */\r
-       configASSERT( ( xStatus == pdPASS ) );\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-/* This is an application defined callback function used to clear whichever\r
-interrupt was installed by the the vApplicationSetupTimerInterrupt() callback\r
-function - in this case the interrupt generated by the AXI timer.  It is \r
-provided as an application callback because the kernel will run on lots of \r
-different MicroBlaze and FPGA configurations - not all of which will have the \r
-same timer peripherals defined or available.  This example uses the AXI Timer 0.  \r
-If that is available on your hardware platform then this example callback \r
-implementation should not require modification provided the example definition\r
-of vApplicationSetupTimerInterrupt() is also not modified. */\r
-void vApplicationClearTimerInterrupt( void )\r
-{\r
-unsigned long ulCSR;\r
-\r
-       /* Clear the timer interrupt */\r
-       ulCSR = XTmrCtr_GetControlStatusReg( XPAR_AXI_TIMER_0_BASEADDR, 0 );\r
-       XTmrCtr_SetControlStatusReg( XPAR_AXI_TIMER_0_BASEADDR, 0, ulCSR );\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-/* These functions are not used by the Blinky build configuration.  However,\r
-they need to be defined because the Blinky and Full build configurations share\r
-a FreeRTOSConifg.h configuration file. */
-void vMainConfigureTimerForRunTimeStats( void ) {}\r
-unsigned long ulMainGetRunTimeCounterValue( void ) { return 1; }\r
diff --git a/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/main-full.c b/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/main-full.c
deleted file mode 100644 (file)
index 36c4159..0000000
+++ /dev/null
@@ -1,617 +0,0 @@
-/*\r
-    FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd.\r
-       \r
-\r
-    ***************************************************************************\r
-     *                                                                       *\r
-     *    FreeRTOS tutorial books are available in pdf and paperback.        *\r
-     *    Complete, revised, and edited pdf reference manuals are also       *\r
-     *    available.                                                         *\r
-     *                                                                       *\r
-     *    Purchasing FreeRTOS documentation will not only help you, by       *\r
-     *    ensuring you get running as quickly as possible and with an        *\r
-     *    in-depth knowledge of how to use FreeRTOS, it will also help       *\r
-     *    the FreeRTOS project to continue with its mission of providing     *\r
-     *    professional grade, cross platform, de facto standard solutions    *\r
-     *    for microcontrollers - completely free of charge!                  *\r
-     *                                                                       *\r
-     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *\r
-     *                                                                       *\r
-     *    Thank you for using FreeRTOS, and thank you for your support!      *\r
-     *                                                                       *\r
-    ***************************************************************************\r
-\r
-\r
-    This file is part of the FreeRTOS distribution.\r
-\r
-    FreeRTOS is free software; you can redistribute it and/or modify it under\r
-    the terms of the GNU General Public License (version 2) as published by the\r
-    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.\r
-    >>>NOTE<<< The modification to the GPL is included to allow you to\r
-    distribute a combined work that includes FreeRTOS without being obliged to\r
-    provide the source code for proprietary components outside of the FreeRTOS\r
-    kernel.  FreeRTOS is distributed in the hope that it will be useful, but\r
-    WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
-    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for\r
-    more details. You should have received a copy of the GNU General Public\r
-    License and the FreeRTOS license exception along with FreeRTOS; if not it\r
-    can be viewed here: http://www.freertos.org/a00114.html and also obtained\r
-    by writing to Richard Barry, contact details for whom are available on the\r
-    FreeRTOS WEB site.\r
-\r
-    1 tab == 4 spaces!\r
-\r
-    http://www.FreeRTOS.org - Documentation, latest information, license and\r
-    contact details.\r
-\r
-    http://www.SafeRTOS.com - A version that is certified for use in safety\r
-    critical systems.\r
-\r
-    http://www.OpenRTOS.com - Commercial support, development, porting,\r
-    licensing and training services.\r
-*/\r
-\r
-/* ****************************************************************************\r
- * main-blinky.c is included when the "Blinky" build configuration is used.\r
- * main-full.c is included when the "Full" build configuration is used.\r
- *\r
- * main-full.c creates a lot of demo and test tasks and timers,  and is \r
- * therefore very comprehensive but also complex.  If you would prefer a much \r
- * simpler project to get started with, then select the 'Blinky' build \r
- * configuration within the SDK Eclipse IDE.  See the documentation page for\r
- * this demo on the http://www.FreeRTOS.org web site for more information.\r
- * ****************************************************************************\r
- *\r
- * main() creates all the demo application tasks and timers, then starts the \r
- * scheduler.  The web documentation provides more details of the standard demo \r
- * application tasks, which provide no particular functionality, but do provide \r
- * a good example of how to use the FreeRTOS API.  \r
- *\r
- * In addition to the standard demo tasks, the following tasks and tests are\r
- * defined and/or created within this file:\r
- *\r
- * TCP/IP ("lwIP") task - TBD _RB_\r
- *\r
- * "Reg test" tasks - These test the task context switch mechanism by first \r
- * filling the MicroBlaze registers with known values, before checking that each\r
- * register maintains the value that was written to it as the tasks are switched\r
- * in and out.  The two register test tasks do not use the same values, and\r
- * execute at a very low priority to ensure they are pre-empted regularly.\r
- *\r
- * "Check" timer - The check timer period is initially set to five seconds.  \r
- * The check timer callback function checks that all the standard demo tasks,\r
- * and the register check tasks, are not only still executing, but are executing\r
- * without reporting any errors.  If the check timer discovers that a task has\r
- * either stalled, or reported an error, then it changes its own period from\r
- * the initial five seconds, to just 200ms.  The check timer callback function\r
- * also toggles an LED each time it is called.  This provides a visual\r
- * indication of the system status:  If the LED toggles every five seconds then\r
- * no issues have been discovered.  If the LED toggles every 200ms then an issue\r
- * has been discovered with at least one task.  The last reported issue is\r
- * latched into the pcStatusMessage variable.\r
- *\r
- * This file also includes example implementations of the vApplicationTickHook(),\r
- * vApplicationIdleHook(), vApplicationStackOverflowHook(),\r
- * vApplicationMallocFailedHook(), vApplicationClearTimerInterrupt(), and\r
- * vApplicationSetupTimerInterrupt() callback (hook) functions.\r
- */\r
-\r
-/* Standard includes. */\r
-#include <string.h>\r
-#include <stdio.h>\r
-\r
-/* BSP includes. */\r
-#include "xtmrctr.h"\r
-#include "microblaze_exceptions_g.h"\r
-\r
-/* Kernel includes. */\r
-#include "FreeRTOS.h"\r
-#include "task.h"\r
-#include "timers.h"\r
-\r
-/* Standard demo includes. */\r
-#include "partest.h"\r
-#include "flash.h"\r
-#include "BlockQ.h"\r
-#include "death.h"\r
-#include "blocktim.h"\r
-#include "semtest.h"\r
-#include "PollQ.h"\r
-#include "GenQTest.h"\r
-#include "QPeek.h"\r
-#include "recmutex.h"\r
-#include "flop.h"\r
-#include "dynamic.h"\r
-#include "comtest_strings.h"\r
-#include "TimerDemo.h"\r
-\r
-/* lwIP includes. */\r
-#include "lwip/tcpip.h"\r
-\r
-\r
-/* Priorities at which the various tasks are created. */\r
-#define mainQUEUE_POLL_PRIORITY                ( tskIDLE_PRIORITY + 1 )\r
-#define mainSEM_TEST_PRIORITY          ( tskIDLE_PRIORITY + 1 )\r
-#define mainBLOCK_Q_PRIORITY           ( tskIDLE_PRIORITY + 2 )\r
-#define mainCREATOR_TASK_PRIORITY   ( tskIDLE_PRIORITY + 3 )\r
-#define mainFLASH_TASK_PRIORITY                ( tskIDLE_PRIORITY + 1 )\r
-#define mainuIP_TASK_PRIORITY          ( tskIDLE_PRIORITY + 2 )\r
-#define mainCOM_TEST_PRIORITY          ( tskIDLE_PRIORITY + 2 )\r
-#define mainINTEGER_TASK_PRIORITY   ( tskIDLE_PRIORITY )\r
-#define mainGEN_QUEUE_TASK_PRIORITY    ( tskIDLE_PRIORITY )\r
-#define mainFLOP_TASK_PRIORITY         ( tskIDLE_PRIORITY )\r
-\r
-/* The LED toggled by the check task. */\r
-#define mainCHECK_LED                          ( 3 )\r
-\r
-/* The rate at which mainCHECK_LED will toggle when all the tasks are running\r
-without error.  See the description of the check timer in the comments at the\r
-top of this file. */\r
-#define mainNO_ERROR_CHECK_TIMER_PERIOD                ( 5000 / portTICK_RATE_MS )\r
-\r
-/* The rate at which mainCHECK_LED will toggle when an error has been reported\r
-by at least one task.  See the description of the check timer in the comments at \r
-the top of this file. */\r
-#define mainERROR_CHECK_TIMER_PERIOD           ( 200 / portTICK_RATE_MS )\r
-\r
-/* A block time of zero simply means "don't block". */
-#define mainDONT_BLOCK                                         ( ( portTickType ) 0 )\r
-\r
-/* The LED used by the comtest tasks. See the comtest_strings.c file for more\r
-information.  In this case an invalid LED number is provided as all four\r
-available LEDs (LEDs 0 to 3) are already in use. */\r
-#define mainCOM_TEST_LED                       ( 4 )\r
-\r
-/* Baud rate used by the comtest tasks.  The baud rate used is actually fixed in \r
-UARTLite IP when the hardware was built, but the standard serial init function \r
-required a baud rate parameter to be provided - in this case it is just \r
-ignored. */\r
-#define mainCOM_TEST_BAUD_RATE                         ( XPAR_RS232_UART_1_BAUDRATE )\r
-\r
-/* The timer test task generates a lot of timers that all use a different \r
-period that is a multiple of the mainTIMER_TEST_PERIOD definition. */\r
-#define mainTIMER_TEST_PERIOD                  ( 20 )\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-/*\r
- * The register test tasks as described in the comments at the top of this file.\r
- * The nature of the register test tasks means they have to be implemented in\r
- * assembler.\r
- */\r
-extern void vRegisterTest1( void *pvParameters );\r
-extern void vRegisterTest2( void *pvParameters );\r
-\r
-/*\r
- * Defines the 'check' timer functionality as described at the top of this file.  \r
- * This function is the callback function associated with the 'check' timer.\r
- */\r
-static void vCheckTimerCallback( xTimerHandle xTimer );\r
-\r
-/* \r
- * Configure the interrupt controller, LED outputs and button inputs. \r
- */\r
-static void prvSetupHardware( void );\r
-\r
-/* Defined in lwIPApps.c. */\r
-extern void lwIPAppsInit( void *pvArguments );\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-/* The check timer callback function sets pcStatusMessage to a string that\r
-indicates the last reported error that it discovered. */\r
-static const char *pcStatusMessage = NULL;\r
-\r
-/* Structures that hold the state of the various peripherals used by this demo.\r
-These are used by the Xilinx peripheral driver API functions.  In this case,\r
-only the timer/counter is used directly within this file. */\r
-static XTmrCtr xTimer0Instance;\r
-\r
-/* The 'check' timer, as described at the top of this file. */\r
-static xTimerHandle xCheckTimer = NULL;\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-int main( void )\r
-{\r
-       /***************************************************************************\r
-       This project includes a lot of demo and test tasks and timers,  and is \r
-       therefore comprehensive, but complex.  If you would prefer a much simpler \r
-       project to get started with, then select the 'Blinky' build configuration \r
-       within the SDK Eclipse IDE.\r
-       ***************************************************************************/\r
-\r
-       /* Configure the interrupt controller, LED outputs and button inputs. */\r
-       prvSetupHardware();\r
-\r
-       /* This call creates the TCP/IP thread. */\r
-       tcpip_init( lwIPAppsInit, NULL );\r
-\r
-       /* Start the reg test tasks, as described in the comments at the top of this\r
-       file. */\r
-       xTaskCreate( vRegisterTest1, ( const signed char * const ) "RegTst1", configMINIMAL_STACK_SIZE, ( void * ) 0, tskIDLE_PRIORITY, NULL );\r
-       xTaskCreate( vRegisterTest2, ( const signed char * const ) "RegTst2", configMINIMAL_STACK_SIZE, ( void * ) 0, tskIDLE_PRIORITY, NULL );\r
-\r
-       /* Create the standard demo tasks. */\r
-       vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY );\r
-       vCreateBlockTimeTasks();\r
-       vStartSemaphoreTasks( mainSEM_TEST_PRIORITY );\r
-       vStartPolledQueueTasks( mainQUEUE_POLL_PRIORITY );\r
-       vStartGenericQueueTasks( mainGEN_QUEUE_TASK_PRIORITY );\r
-       vStartLEDFlashTasks( mainFLASH_TASK_PRIORITY );\r
-       vStartQueuePeekTasks();\r
-       vStartRecursiveMutexTasks();\r
-       vStartComTestStringsTasks( mainCOM_TEST_PRIORITY, mainCOM_TEST_BAUD_RATE, mainCOM_TEST_LED );\r
-       vStartDynamicPriorityTasks();\r
-       vStartTimerDemoTask( mainTIMER_TEST_PERIOD );\r
-\r
-       /* Note - the set of standard demo tasks contains two versions of\r
-       vStartMathTasks.c.  One is defined in flop.c, and uses double precision\r
-       floating point numbers and variables.  The other is defined in sp_flop.c,\r
-       and uses single precision floating point numbers and variables.  The\r
-       MicroBlaze floating point unit only handles single precision floating.\r
-       Therefore, to test the floating point hardware, sp_flop.c should be included\r
-       in this project. */\r
-       vStartMathTasks( mainFLOP_TASK_PRIORITY );\r
-\r
-       /* The suicide tasks must be created last as they need to know how many\r
-       tasks were running prior to their creation.  This then allows them to \r
-       ascertain whether or not the correct/expected number of tasks are running at \r
-       any given time. */\r
-       vCreateSuicidalTasks( mainCREATOR_TASK_PRIORITY );\r
-\r
-       /* Create the 'check' timer - the timer that periodically calls the\r
-       check function as described in the comments at the top of this file.  Note \r
-       that, for reasons stated in the comments within vApplicationIdleHook()\r
-       (defined in this file), the check timer is not actually started until after \r
-       the scheduler has been started. */\r
-       xCheckTimer = xTimerCreate( ( const signed char * ) "Check timer", mainNO_ERROR_CHECK_TIMER_PERIOD, pdTRUE, ( void * ) 0, vCheckTimerCallback );\r
-\r
-       /* Start the scheduler running.  From this point on, only tasks and \r
-       interrupts will be executing. */\r
-       vTaskStartScheduler();\r
-\r
-       /* If all is well then the following line will never be reached.  If\r
-       execution does reach here, then it is highly probably that the heap size\r
-       is too small for the idle and/or timer tasks to be created within \r
-       vTaskStartScheduler(). */\r
-       taskDISABLE_INTERRUPTS();\r
-       for( ;; );\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static void vCheckTimerCallback( xTimerHandle xTimer )\r
-{\r
-extern unsigned long ulRegTest1CycleCount, ulRegTest2CycleCount;\r
-static volatile unsigned long ulLastRegTest1CycleCount = 0UL, ulLastRegTest2CycleCount = 0UL;\r
-static long lErrorAlreadyLatched = pdFALSE;\r
-portTickType xExecutionRate = mainNO_ERROR_CHECK_TIMER_PERIOD;\r
-\r
-       /* This is the callback function used by the 'check' timer, as described\r
-       in the comments at the top of this file. */\r
-\r
-       /* Check the standard demo tasks are running without error. */\r
-       if( xAreGenericQueueTasksStillRunning() != pdTRUE )\r
-       {\r
-               pcStatusMessage = "Error: GenQueue";\r
-       }\r
-       else if( xAreQueuePeekTasksStillRunning() != pdTRUE )\r
-       {\r
-               pcStatusMessage = "Error: QueuePeek\r\n";\r
-       }\r
-       else if( xAreBlockingQueuesStillRunning() != pdTRUE )\r
-       {\r
-               pcStatusMessage = "Error: BlockQueue\r\n";\r
-       }\r
-       else if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )\r
-       {\r
-               pcStatusMessage = "Error: BlockTime\r\n";\r
-       }\r
-       else if( xAreSemaphoreTasksStillRunning() != pdTRUE )\r
-       {\r
-               pcStatusMessage = "Error: SemTest\r\n";\r
-       }\r
-       else if( xArePollingQueuesStillRunning() != pdTRUE )\r
-       {\r
-               pcStatusMessage = "Error: PollQueue\r\n";\r
-       }\r
-       else if( xIsCreateTaskStillRunning() != pdTRUE )\r
-       {\r
-               pcStatusMessage = "Error: Death\r\n";\r
-       }\r
-       else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )\r
-       {\r
-               pcStatusMessage = "Error: RecMutex\r\n";\r
-       }\r
-       else if( xAreMathsTaskStillRunning() != pdPASS )\r
-       {\r
-               pcStatusMessage = "Error: Flop\r\n";\r
-       }\r
-       else if( xAreComTestTasksStillRunning() != pdPASS )\r
-       {\r
-               pcStatusMessage = "Error: Comtest\r\n";\r
-       }\r
-       else if( xAreDynamicPriorityTasksStillRunning() != pdPASS )\r
-       {\r
-               pcStatusMessage = "Error: Dynamic\r\n";\r
-       }\r
-       else if( xAreTimerDemoTasksStillRunning( xExecutionRate ) != pdTRUE )\r
-       {\r
-               pcStatusMessage = "Error: TimerDemo";\r
-       }\r
-       else if( ulRegTest1CycleCount == ulLastRegTest1CycleCount )\r
-       {\r
-               /* Check the reg test tasks are still cycling.  They will stop\r
-               incrementing their loop counters if they encounter an error. */\r
-               pcStatusMessage = "Error: RegTest1\r\n";\r
-       }\r
-       else if( ulRegTest2CycleCount == ulLastRegTest2CycleCount )\r
-       {\r
-               pcStatusMessage = "Error: RegTest2\r\n";\r
-       }\r
-\r
-       /* Store a local copy of the current reg test loop counters.  If these have\r
-       not incremented the next time this callback function is executed then the\r
-       reg test tasks have either stalled or discovered an error. */\r
-       ulLastRegTest1CycleCount = ulRegTest1CycleCount;\r
-       ulLastRegTest2CycleCount = ulRegTest2CycleCount;\r
-\r
-       /* Toggle the check LED to give an indication of the system status.  If\r
-       the LED toggles every 5 seconds then everything is ok.  A faster toggle\r
-       indicates an error. */\r
-       vParTestToggleLED( mainCHECK_LED );\r
-\r
-       if( pcStatusMessage != NULL )\r
-       {\r
-               if( lErrorAlreadyLatched == pdFALSE )\r
-               {\r
-                       /* An error has occurred, so change the period of the timer that\r
-                       calls this callback function.  This results in the LED toggling at\r
-                       a faster rate - giving the user visual feedback that something is not\r
-                       as it should be.  This function is called from the context of the\r
-                       timer service task so must ***not*** attempt to block while calling\r
-                       this function. */
-                       if( xTimerChangePeriod( xTimer, mainERROR_CHECK_TIMER_PERIOD, mainDONT_BLOCK ) == pdPASS )\r
-                       {\r
-                               /* If the command to change the timer period was sent to the\r
-                               timer command queue successfully, then latch the fact that the\r
-                               timer period has already been changed.  This is just done to\r
-                               prevent xTimerChangePeriod() being called on every execution of\r
-                               this function once an error has been discovered.  */\r
-                               lErrorAlreadyLatched = pdTRUE;\r
-                       }\r
-\r
-                       /* Update the xExecutionRate variable too as the rate at which this\r
-                       callback is executed has to be passed into the\r
-                       xAreTimerDemoTasksStillRunning() function. */\r
-                       xExecutionRate = mainERROR_CHECK_TIMER_PERIOD;\r
-               }\r
-       }\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-/* This is an application defined callback function used to install the tick\r
-interrupt handler.  It is provided as an application callback because the kernel\r
-will run on lots of different MicroBlaze and FPGA configurations - not all of\r
-which will have the same timer peripherals defined or available.  This example\r
-uses the AXI Timer 0.  If that is available on your hardware platform then this\r
-example callback implementation should not require modification.   The name of\r
-the interrupt handler that should be installed is vPortTickISR(), which the \r
-function below declares as an extern. */\r
-void vApplicationSetupTimerInterrupt( void )\r
-{\r
-portBASE_TYPE xStatus;\r
-const unsigned char ucTimerCounterNumber = ( unsigned char ) 0U;\r
-const unsigned long ulCounterValue = ( ( XPAR_AXI_TIMER_0_CLOCK_FREQ_HZ / configTICK_RATE_HZ ) - 1UL );\r
-extern void vPortTickISR( void *pvUnused );\r
-\r
-       /* Initialise the timer/counter. */\r
-       xStatus = XTmrCtr_Initialize( &xTimer0Instance, XPAR_AXI_TIMER_0_DEVICE_ID );\r
-\r
-       if( xStatus == XST_SUCCESS )\r
-       {\r
-               /* Install the tick interrupt handler as the timer ISR. \r
-               *NOTE* The xPortInstallInterruptHandler() API function must be used for\r
-               this purpose. */\r
-               xStatus = xPortInstallInterruptHandler( XPAR_INTC_0_TMRCTR_0_VEC_ID, vPortTickISR, NULL );\r
-       }\r
-\r
-       if( xStatus == pdPASS )\r
-       {\r
-               /* Enable the timer interrupt in the interrupt controller.\r
-               *NOTE* The vPortEnableInterrupt() API function must be used for this\r
-               purpose. */\r
-               vPortEnableInterrupt( XPAR_INTC_0_TMRCTR_0_VEC_ID );\r
-\r
-               /* Configure the timer interrupt handler. */\r
-               XTmrCtr_SetHandler( &xTimer0Instance, ( void * ) vPortTickISR, NULL );\r
-\r
-               /* Set the correct period for the timer. */\r
-               XTmrCtr_SetResetValue( &xTimer0Instance, ucTimerCounterNumber, ulCounterValue );\r
-\r
-               /* Enable the interrupts.  Auto-reload mode is used to generate a\r
-               periodic tick.  Note that interrupts are disabled when this function is\r
-               called, so interrupts will not start to be processed until the first\r
-               task has started to run. */\r
-               XTmrCtr_SetOptions( &xTimer0Instance, ucTimerCounterNumber, ( XTC_INT_MODE_OPTION | XTC_AUTO_RELOAD_OPTION | XTC_DOWN_COUNT_OPTION ) );\r
-\r
-               /* Start the timer. */\r
-               XTmrCtr_Start( &xTimer0Instance, ucTimerCounterNumber );\r
-       }\r
-\r
-       /* Sanity check that the function executed as expected. */\r
-       configASSERT( ( xStatus == pdPASS ) );\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-/* This is an application defined callback function used to clear whichever\r
-interrupt was installed by the the vApplicationSetupTimerInterrupt() callback\r
-function - in this case the interrupt generated by the AXI timer.  It is \r
-provided as an application callback because the kernel will run on lots of \r
-different MicroBlaze and FPGA configurations - not all of which will have the \r
-same timer peripherals defined or available.  This example uses the AXI Timer 0.  \r
-If that is available on your hardware platform then this example callback \r
-implementation should not require modification provided the example definition\r
-of vApplicationSetupTimerInterrupt() is also not modified. */\r
-void vApplicationClearTimerInterrupt( void )\r
-{\r
-unsigned long ulCSR;\r
-\r
-       /* Clear the timer interrupt */\r
-       ulCSR = XTmrCtr_GetControlStatusReg( XPAR_AXI_TIMER_0_BASEADDR, 0 );\r
-       XTmrCtr_SetControlStatusReg( XPAR_AXI_TIMER_0_BASEADDR, 0, ulCSR );\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void vApplicationMallocFailedHook( void )\r
-{\r
-       /* vApplicationMallocFailedHook() will only be called if\r
-       configUSE_MALLOC_FAILED_HOOK is set to 1 in FreeRTOSConfig.h.  It is a hook\r
-       function that will get called if a call to pvPortMalloc() fails. \r
-       pvPortMalloc() is called internally by the kernel whenever a task, queue or\r
-       semaphore is created.  It is also called by various parts of the demo\r
-       application.  If heap_1.c or heap_2.c are used, then the size of the heap\r
-       available to pvPortMalloc() is defined by configTOTAL_HEAP_SIZE in\r
-       FreeRTOSConfig.h, and the xPortGetFreeHeapSize() API function can be used\r
-       to query the size of free heap space that remains (although it does not\r
-       provide information on how the remaining heap might be fragmented). */\r
-       taskDISABLE_INTERRUPTS();\r
-       for( ;; );\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void vApplicationStackOverflowHook( xTaskHandle *pxTask, signed char *pcTaskName )\r
-{\r
-       ( void ) pcTaskName;\r
-       ( void ) pxTask;\r
-\r
-       /* vApplicationStackOverflowHook() will only be called if\r
-       configCHECK_FOR_STACK_OVERFLOW is set to either 1 or 2.  The handle and name\r
-       of the offending task will be passed into the hook function via its \r
-       parameters.  However, when a stack has overflowed, it is possible that the\r
-       parameters will have been corrupted, in which case the pxCurrentTCB variable\r
-       can be inspected directly. */\r
-       taskDISABLE_INTERRUPTS();\r
-       for( ;; );\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void vApplicationIdleHook( void )\r
-{\r
-static long lCheckTimerStarted = pdFALSE;\r
-\r
-       /* vApplicationIdleHook() will only be called if configUSE_IDLE_HOOK is set \r
-       to 1 in FreeRTOSConfig.h.  It will be called on each iteration of the idle \r
-       task.  It is essential that code added to this hook function never attempts \r
-       to block in any way (for example, call xQueueReceive() with a block time \r
-       specified, or call vTaskDelay()).  If the application makes use of the \r
-       vTaskDelete() API function (as this demo application does) then it is also \r
-       important that vApplicationIdleHook() is permitted to return to its calling \r
-       function, because it is the responsibility of the idle task to clean up \r
-       memory allocated by the kernel to any task that has since been deleted. */\r
-\r
-       /* If the check timer has not already been started, then start it now.\r
-       Normally, the xTimerStart() API function can be called immediately after the\r
-       timer is created - how this demo application includes the timer demo tasks.\r
-       The timer demo tasks, as part of their test function, deliberately fill up\r
-       the timer command queue - meaning the check timer cannot be started until\r
-       after the scheduler has been started - at which point the timer command\r
-       queue will have been drained. */\r
-       if( lCheckTimerStarted == pdFALSE )\r
-       {\r
-               xTimerStart( xCheckTimer, mainDONT_BLOCK ); \r
-               lCheckTimerStarted = pdTRUE;\r
-       }\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void vApplicationTickHook( void )\r
-{\r
-       /* vApplicationTickHook() will only be called if configUSE_TICK_HOOK is set\r
-       to 1 in FreeRTOSConfig.h.  It executes from an interrupt context so must\r
-       not use any FreeRTOS API functions that do not end in ...FromISR(). */\r
-\r
-       /* Call the periodic timer test, which tests the timer API functions that\r
-       can be called from an ISR. */\r
-       vTimerPeriodicISRTests();\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void vApplicationExceptionRegisterDump( xPortRegisterDump *xRegisterDump )\r
-{\r
-       ( void ) xRegisterDump;\r
-\r
-       /* If configINSTALL_EXCEPTION_HANDLERS is set to 1 in FreeRTOSConfig.h, then \r
-       the kernel will automatically install its own exception handlers before the \r
-       kernel is started, if the application writer has not already caused them to \r
-       be installed by calling either of the vPortExceptionsInstallHandlers() \r
-       or xPortInstallInterruptHandler() API functions before that time.  The \r
-       kernels exception handler populates an xPortRegisterDump structure with\r
-       the processor state at the point that the exception was triggered - and also\r
-       includes a strings that say what the exception cause was and which task was\r
-       running at the time.  The exception handler then passes the populated\r
-       xPortRegisterDump structure into vApplicationExceptionRegisterDump() to\r
-       allow the application writer to perform any debugging that may be necessary.\r
-       However, defining vApplicationExceptionRegisterDump() within the application\r
-       itself is optional.  The kernel will use a default implementation if the\r
-       application writer chooses not to provide their own. */\r
-       for( ;; )\r
-       {\r
-               portNOP();\r
-       }\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static void prvSetupHardware( void )\r
-{\r
-       taskDISABLE_INTERRUPTS();\r
-       \r
-       /* Configure the LED outputs. */\r
-       vParTestInitialise();\r
-\r
-       /* Tasks inherit the exception and cache configuration of the MicroBlaze\r
-       at the point that they are created. */\r
-       #if MICROBLAZE_EXCEPTIONS_ENABLED == 1\r
-               microblaze_enable_exceptions();\r
-       #endif\r
-\r
-       #if XPAR_MICROBLAZE_USE_ICACHE == 1\r
-               microblaze_invalidate_icache();\r
-               microblaze_enable_icache();\r
-       #endif\r
-\r
-       #if XPAR_MICROBLAZE_USE_DCACHE == 1\r
-               microblaze_invalidate_dcache();\r
-               microblaze_enable_dcache();\r
-       #endif\r
-\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void vMainConfigureTimerForRunTimeStats( void )\r
-{\r
-unsigned long ulRunTimeStatsDivisor;\r
-\r
-       /* How many times does the counter counter increment in 10ms? */\r
-       ulRunTimeStatsDivisor = 0UL / 1000UL; //_RB_\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-unsigned long ulMainGetRunTimeCounterValue( void )\r
-{\r
-unsigned long ulReturn, ulCurrentCount;\r
-\r
-       ulCurrentCount = 0UL;\r
-       ulReturn = 0UL;\r
-\r
-       return ulReturn;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-char *pcMainGetTaskStatusMessage( void )\r
-{\r
-       return ( char * ) pcStatusMessage;\r
-}\r
-\r
-\r
-\r
diff --git a/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/serial.c b/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/serial.c
deleted file mode 100644 (file)
index f32e40a..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-/*\r
-    FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd.\r
-       \r
-\r
-    ***************************************************************************\r
-     *                                                                       *\r
-     *    FreeRTOS tutorial books are available in pdf and paperback.        *\r
-     *    Complete, revised, and edited pdf reference manuals are also       *\r
-     *    available.                                                         *\r
-     *                                                                       *\r
-     *    Purchasing FreeRTOS documentation will not only help you, by       *\r
-     *    ensuring you get running as quickly as possible and with an        *\r
-     *    in-depth knowledge of how to use FreeRTOS, it will also help       *\r
-     *    the FreeRTOS project to continue with its mission of providing     *\r
-     *    professional grade, cross platform, de facto standard solutions    *\r
-     *    for microcontrollers - completely free of charge!                  *\r
-     *                                                                       *\r
-     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *\r
-     *                                                                       *\r
-     *    Thank you for using FreeRTOS, and thank you for your support!      *\r
-     *                                                                       *\r
-    ***************************************************************************\r
-\r
-\r
-    This file is part of the FreeRTOS distribution.\r
-\r
-    FreeRTOS is free software; you can redistribute it and/or modify it under\r
-    the terms of the GNU General Public License (version 2) as published by the\r
-    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.\r
-    >>>NOTE<<< The modification to the GPL is included to allow you to\r
-    distribute a combined work that includes FreeRTOS without being obliged to\r
-    provide the source code for proprietary components outside of the FreeRTOS\r
-    kernel.  FreeRTOS is distributed in the hope that it will be useful, but\r
-    WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
-    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for\r
-    more details. You should have received a copy of the GNU General Public\r
-    License and the FreeRTOS license exception along with FreeRTOS; if not it\r
-    can be viewed here: http://www.freertos.org/a00114.html and also obtained\r
-    by writing to Richard Barry, contact details for whom are available on the\r
-    FreeRTOS WEB site.\r
-\r
-    1 tab == 4 spaces!\r
-\r
-    http://www.FreeRTOS.org - Documentation, latest information, license and\r
-    contact details.\r
-\r
-    http://www.SafeRTOS.com - A version that is certified for use in safety\r
-    critical systems.\r
-\r
-    http://www.OpenRTOS.com - Commercial support, development, porting,\r
-    licensing and training services.\r
-*/\r
-\r
-/*\r
-       BASIC INTERRUPT DRIVEN SERIAL PORT DRIVER FOR a UARTLite peripheral.\r
-*/\r
-\r
-/* Scheduler includes. */\r
-#include "FreeRTOS.h"\r
-#include "queue.h"\r
-#include "comtest_strings.h"\r
-\r
-/* Library includes. */\r
-#include "xuartlite.h"\r
-#include "xuartlite_l.h"\r
-\r
-/* Demo application includes. */\r
-#include "serial.h"\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-/* Functions that are installed as the handler for interrupts that are caused by\r
-Rx and Tx events respectively. */\r
-static void prvRxHandler( void *pvUnused, unsigned portBASE_TYPE uxByteCount );\r
-static void prvTxHandler( void *pvUnused, unsigned portBASE_TYPE uxByteCount );\r
-\r
-/* Structure that hold the state of the UARTLite peripheral used by this demo.\r
-This is used by the Xilinx peripheral driver API functions. */\r
-static XUartLite xUartLiteInstance;\r
-\r
-/* The queue used to hold received characters. */\r
-static xQueueHandle xRxedChars;\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-xComPortHandle xSerialPortInitMinimal( unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )\r
-{\r
-portBASE_TYPE xStatus;\r
-\r
-       /* The standard demo header file requires a baud rate to be passed into this\r
-       function.  However, in this case the baud rate is configured when the\r
-       hardware is generated, leaving the ulWantedBaud parameter redundant. */\r
-       ( void ) ulWantedBaud;\r
-\r
-       /* Create the queue used to hold Rx characters. */\r
-       xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed char ) );\r
-\r
-       /* If the queue was created correctly, then setup the serial port\r
-       hardware. */\r
-       if( xRxedChars != NULL )\r
-       {\r
-               xStatus = XUartLite_Initialize( &xUartLiteInstance, XPAR_UARTLITE_1_DEVICE_ID );\r
-\r
-               if( xStatus == XST_SUCCESS )\r
-               {\r
-                       /* Complete initialisation of the UART and its associated\r
-                       interrupts. */\r
-                       XUartLite_ResetFifos( &xUartLiteInstance );\r
-                       \r
-                       /* Install the handlers that the standard Xilinx library interrupt\r
-                       service routine will call when Rx and Tx events occur \r
-                       respectively. */\r
-                       XUartLite_SetRecvHandler( &xUartLiteInstance, ( XUartLite_Handler ) prvRxHandler, NULL );\r
-                       XUartLite_SetSendHandler( &xUartLiteInstance, ( XUartLite_Handler ) prvTxHandler, NULL );\r
-                       \r
-                       /* Install the standard Xilinx library interrupt handler itself.\r
-                       *NOTE* The xPortInstallInterruptHandler() API function must be used \r
-                       for     this purpose. */                        \r
-                       xStatus = xPortInstallInterruptHandler( XPAR_INTC_0_UARTLITE_1_VEC_ID, ( XInterruptHandler ) XUartLite_InterruptHandler, &xUartLiteInstance );\r
-                       \r
-                       /* Enable the interrupt in the peripheral. */\r
-                       XUartLite_EnableIntr( xUartLiteInstance.RegBaseAddress );\r
-                       \r
-                       /* Enable the interrupt in the interrupt controller.\r
-                       *NOTE* The vPortEnableInterrupt() API function must be used for this\r
-                       purpose. */\r
-                       vPortEnableInterrupt( XPAR_INTC_0_UARTLITE_1_VEC_ID );\r
-               }\r
-\r
-               configASSERT( xStatus == pdPASS );\r
-       }\r
-\r
-       /* This demo file only supports a single port but something must be\r
-       returned to comply with the standard demo header file. */\r
-       return ( xComPortHandle ) 0;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed char *pcRxedChar, portTickType xBlockTime )\r
-{\r
-       /* The port handle is not required as this driver only supports one port. */\r
-       ( void ) pxPort;\r
-\r
-       /* Get the next character from the receive queue.  Return false if no \r
-       characters are available, or arrive before xBlockTime expires. */\r
-       if( xQueueReceive( xRxedChars, pcRxedChar, xBlockTime ) )\r
-       {\r
-               return pdTRUE;\r
-       }\r
-       else\r
-       {\r
-               return pdFALSE;\r
-       }\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void vSerialPutString( xComPortHandle pxPort, const signed char * const pcString, unsigned short usStringLength )\r
-{\r
-       ( void ) pxPort;\r
-\r
-       /* Output uxStringLength bytes starting from pcString. */\r
-       XUartLite_Send( &xUartLiteInstance, ( unsigned char * ) pcString, usStringLength );\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static void prvRxHandler( void *pvUnused, unsigned portBASE_TYPE uxByteCount )\r
-{\r
-signed char cRxedChar;\r
-portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;\r
-\r
-       ( void ) pvUnused;\r
-       ( void ) uxByteCount;\r
-\r
-       /* Place any received characters into the receive queue. */\r
-       while( XUartLite_IsReceiveEmpty( xUartLiteInstance.RegBaseAddress ) == pdFALSE )\r
-       {\r
-               cRxedChar = XUartLite_ReadReg( xUartLiteInstance.RegBaseAddress, XUL_RX_FIFO_OFFSET);\r
-               xQueueSendFromISR( xRxedChars, &cRxedChar, &xHigherPriorityTaskWoken );\r
-       }\r
-\r
-       /* If calling xQueueSendFromISR() caused a task to unblock, and the task \r
-       that unblocked has a priority equal to or greater than the task currently\r
-       in the Running state (the task that was interrupted), then \r
-       xHigherPriorityTaskWoken will have been set to pdTRUE internally within the\r
-       xQueueSendFromISR() API function.  If xHigherPriorityTaskWoken is equal to\r
-       pdTRUE then a context switch should be requested to ensure that the \r
-       interrupt returns to the highest priority task that is able     to run. */\r
-       portYIELD_FROM_ISR( xHigherPriorityTaskWoken );\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static void prvTxHandler( void *pvUnused, unsigned portBASE_TYPE uxByteCount )\r
-{\r
-       ( void ) pvUnused;\r
-       ( void ) uxByteCount;\r
-\r
-       /* Nothing to do here.  The Xilinx library function takes care of the\r
-       transmission. */\r
-       portNOP();\r
-}\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-       \r
diff --git a/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/src/lscript.ld b/Demo/MicroBlaze_Spartan-6_Ethernet/RTOSDemoSource/src/lscript.ld
deleted file mode 100644 (file)
index c076755..0000000
+++ /dev/null
@@ -1,213 +0,0 @@
-/*******************************************************************/\r
-/*                                                                 */\r
-/* This file is automatically generated by linker script generator.*/\r
-/*                                                                 */\r
-/* Version: Xilinx EDK 13.1 EDK_O.40d                                */\r
-/*                                                                 */\r
-/* Copyright (c) 2010 Xilinx, Inc.  All rights reserved.           */\r
-/*                                                                 */\r
-/* Description : MicroBlaze Linker Script                          */\r
-/*                                                                 */\r
-/*******************************************************************/\r
-\r
-_STACK_SIZE = DEFINED(_STACK_SIZE) ? _STACK_SIZE : 0x400;\r
-_HEAP_SIZE = DEFINED(_HEAP_SIZE) ? _HEAP_SIZE : 0x8;\r
-\r
-/* Define Memories in the system */\r
-\r
-MEMORY\r
-{\r
-   microblaze_0_i_bram_ctrl_microblaze_0_d_bram_ctrl : ORIGIN = 0x00000050, LENGTH = 0x00001FB0\r
-   MCB_DDR3_S0_AXI_BASEADDR : ORIGIN = 0xC0000000, LENGTH = 0x08000000\r
-}\r
-\r
-/* Specify the default entry point to the program */\r
-\r
-ENTRY(_start)\r
-\r
-/* Define the sections, and where they are mapped in memory */\r
-\r
-SECTIONS\r
-{\r
-.vectors.reset 0x00000000 : {\r
-   *(.vectors.reset)\r
-} \r
-\r
-.vectors.sw_exception 0x00000008 : {\r
-   *(.vectors.sw_exception)\r
-} \r
-\r
-.vectors.interrupt 0x00000010 : {\r
-   *(.vectors.interrupt)\r
-} \r
-\r
-.vectors.hw_exception 0x00000020 : {\r
-   *(.vectors.hw_exception)\r
-} \r
-\r
-.text : {\r
-   *(.text)\r
-   *(.text.*)\r
-   *(.gnu.linkonce.t.*)\r
-} > MCB_DDR3_S0_AXI_BASEADDR\r
-\r
-.init : {\r
-   KEEP (*(.init))\r
-} > MCB_DDR3_S0_AXI_BASEADDR\r
-\r
-.fini : {\r
-   KEEP (*(.fini))\r
-} > MCB_DDR3_S0_AXI_BASEADDR\r
-\r
-.rodata : {\r
-   __rodata_start = .;\r
-   *(.rodata)\r
-   *(.rodata.*)\r
-   *(.gnu.linkonce.r.*)\r
-   __rodata_end = .;\r
-} > MCB_DDR3_S0_AXI_BASEADDR\r
-\r
-.sdata2 : {\r
-   . = ALIGN(8);\r
-   __sdata2_start = .;\r
-   *(.sdata2)\r
-   *(.sdata2.*)\r
-   *(.gnu.linkonce.s2.*)\r
-   . = ALIGN(8);\r
-   __sdata2_end = .;\r
-} > MCB_DDR3_S0_AXI_BASEADDR\r
-\r
-.sbss2 : {\r
-   __sbss2_start = .;\r
-   *(.sbss2)\r
-   *(.sbss2.*)\r
-   *(.gnu.linkonce.sb2.*)\r
-   __sbss2_end = .;\r
-} > MCB_DDR3_S0_AXI_BASEADDR\r
-\r
-.data : {\r
-   . = ALIGN(4);\r
-   __data_start = .;\r
-   *(.data)\r
-   *(.data.*)\r
-   *(.gnu.linkonce.d.*)\r
-   __data_end = .;\r
-} > MCB_DDR3_S0_AXI_BASEADDR\r
-\r
-.got : {\r
-   *(.got)\r
-} > MCB_DDR3_S0_AXI_BASEADDR\r
-\r
-.got1 : {\r
-   *(.got1)\r
-} > MCB_DDR3_S0_AXI_BASEADDR\r
-\r
-.got2 : {\r
-   *(.got2)\r
-} > MCB_DDR3_S0_AXI_BASEADDR\r
-\r
-.ctors : {\r
-   __CTOR_LIST__ = .;\r
-   ___CTORS_LIST___ = .;\r
-   KEEP (*crtbegin.o(.ctors))\r
-   KEEP (*(EXCLUDE_FILE(*crtend.o) .ctors))\r
-   KEEP (*(SORT(.ctors.*)))\r
-   KEEP (*(.ctors))\r
-   __CTOR_END__ = .;\r
-   ___CTORS_END___ = .;\r
-} > MCB_DDR3_S0_AXI_BASEADDR\r
-\r
-.dtors : {\r
-   __DTOR_LIST__ = .;\r
-   ___DTORS_LIST___ = .;\r
-   KEEP (*crtbegin.o(.dtors))\r
-   KEEP (*(EXCLUDE_FILE(*crtend.o) .dtors))\r
-   KEEP (*(SORT(.dtors.*)))\r
-   KEEP (*(.dtors))\r
-   __DTOR_END__ = .;\r
-   ___DTORS_END___ = .;\r
-} > MCB_DDR3_S0_AXI_BASEADDR\r
-\r
-.eh_frame : {\r
-   *(.eh_frame)\r
-} > MCB_DDR3_S0_AXI_BASEADDR\r
-\r
-.jcr : {\r
-   *(.jcr)\r
-} > MCB_DDR3_S0_AXI_BASEADDR\r
-\r
-.gcc_except_table : {\r
-   *(.gcc_except_table)\r
-} > MCB_DDR3_S0_AXI_BASEADDR\r
-\r
-.sdata : {\r
-   . = ALIGN(8);\r
-   __sdata_start = .;\r
-   *(.sdata)\r
-   *(.sdata.*)\r
-   *(.gnu.linkonce.s.*)\r
-   __sdata_end = .;\r
-} > MCB_DDR3_S0_AXI_BASEADDR\r
-\r
-.sbss : {\r
-   . = ALIGN(4);\r
-   __sbss_start = .;\r
-   *(.sbss)\r
-   *(.sbss.*)\r
-   *(.gnu.linkonce.sb.*)\r
-   . = ALIGN(8);\r
-   __sbss_end = .;\r
-} > MCB_DDR3_S0_AXI_BASEADDR\r
-\r
-.tdata : {\r
-   __tdata_start = .;\r
-   *(.tdata)\r
-   *(.tdata.*)\r
-   *(.gnu.linkonce.td.*)\r
-   __tdata_end = .;\r
-} > MCB_DDR3_S0_AXI_BASEADDR\r
-\r
-.tbss : {\r
-   __tbss_start = .;\r
-   *(.tbss)\r
-   *(.tbss.*)\r
-   *(.gnu.linkonce.tb.*)\r
-   __tbss_end = .;\r
-} > MCB_DDR3_S0_AXI_BASEADDR\r
-\r
-.bss : {\r
-   . = ALIGN(4);\r
-   __bss_start = .;\r
-   *(.bss)\r
-   *(.bss.*)\r
-   *(.gnu.linkonce.b.*)\r
-   *(COMMON)\r
-   . = ALIGN(4);\r
-   __bss_end = .;\r
-} > MCB_DDR3_S0_AXI_BASEADDR\r
-\r
-_SDA_BASE_ = __sdata_start + ((__sbss_end - __sdata_start) / 2 );\r
-\r
-_SDA2_BASE_ = __sdata2_start + ((__sbss2_end - __sdata2_start) / 2 );\r
-\r
-/* Generate Stack and Heap definitions */\r
-\r
-.heap : {\r
-   . = ALIGN(8);\r
-   _heap = .;\r
-   _heap_start = .;\r
-   . += _HEAP_SIZE;\r
-   _heap_end = .;\r
-} > MCB_DDR3_S0_AXI_BASEADDR\r
-\r
-.stack : {\r
-   _stack_end = .;\r
-   . += _STACK_SIZE;\r
-   . = ALIGN(8);\r
-   _stack = .;\r
-   __stack = _stack;\r
-} > MCB_DDR3_S0_AXI_BASEADDR\r
-\r
-_end = .;\r
-}\r
-\r