From 0d91bb7230731b3488fb8520afb774b9d5374d71 Mon Sep 17 00:00:00 2001 From: jhh8 Date: Tue, 15 Apr 2025 21:46:52 +0300 Subject: [PATCH 1/2] TraceLineParams vscript function i just want to use a custom mask and collision group... --- src/game/server/vscript_server.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/game/server/vscript_server.cpp b/src/game/server/vscript_server.cpp index 3d46a8438..2f4e986bb 100644 --- a/src/game/server/vscript_server.cpp +++ b/src/game/server/vscript_server.cpp @@ -1143,6 +1143,22 @@ static float ScriptTraceLine( const Vector &vecStart, const Vector &vecEnd, HSCR } } +static float ScriptTraceLineParams( const Vector &vecStart, const Vector &vecEnd, HSCRIPT entIgnore, int nMask, int nCollisiongroup ) +{ + // UTIL_TraceLine( vecAbsStart, vecAbsEnd, MASK_BLOCKLOS, pLooker, COLLISION_GROUP_NONE, ptr ); + trace_t tr; + CBaseEntity *pLooker = ToEnt(entIgnore); + UTIL_TraceLine( vecStart, vecEnd, ( unsigned int )nMask, pLooker, nCollisiongroup, &tr ); + if (tr.fractionleftsolid && tr.startsolid) + { + return 1.0 - tr.fractionleftsolid; + } + else + { + return tr.fraction; + } +} + static void ScriptTraceLineTable( HSCRIPT hTable ) { if ( !hTable ) @@ -1720,6 +1736,7 @@ bool VScriptServerInit() ScriptRegisterFunction( g_pScriptVM, SendToServerConsole, "Send a string to the server console as a command" ); ScriptRegisterFunction( g_pScriptVM, GetMapName, "Get the name of the map."); ScriptRegisterFunctionNamed( g_pScriptVM, ScriptTraceLine, "TraceLine", "given 2 points & ent to ignore, return fraction along line that hits world or models" ); + ScriptRegisterFunctionNamed( g_pScriptVM, ScriptTraceLineParams, "TraceLineParams", "given 2 points, ent to ignore, mask and collision group, return fraction along line that hits world or models" ); ScriptRegisterFunctionNamed( g_pScriptVM, ScriptTraceLineTable, "TraceLineTable", "Uses a configuration table to do a raytrace, puts return information into the table for return usage." ); ScriptRegisterFunction( g_pScriptVM, Time, "Get the current server time" ); From 7ae2d845fcfcbaa63443af6d666741ea16048506 Mon Sep 17 00:00:00 2001 From: jhh8 Date: Wed, 16 Apr 2025 11:12:00 +0300 Subject: [PATCH 2/2] fix TraceLineTable function degrading performance over time issue is in the built-in g_pScriptVM->GetValue when it tries to get a value of a vector from a table. Here we make a wrapper to the TraceLineTable function to extract the vectors in squirrel instead --- src/game/server/vscript_server.cpp | 53 +- src/game/server/vscript_server.nut | 19 + src/game/server/vscript_server_nut.h | 939 ++++++++++++++------------- 3 files changed, 526 insertions(+), 485 deletions(-) diff --git a/src/game/server/vscript_server.cpp b/src/game/server/vscript_server.cpp index 2f4e986bb..c23ec9589 100644 --- a/src/game/server/vscript_server.cpp +++ b/src/game/server/vscript_server.cpp @@ -1143,23 +1143,7 @@ static float ScriptTraceLine( const Vector &vecStart, const Vector &vecEnd, HSCR } } -static float ScriptTraceLineParams( const Vector &vecStart, const Vector &vecEnd, HSCRIPT entIgnore, int nMask, int nCollisiongroup ) -{ - // UTIL_TraceLine( vecAbsStart, vecAbsEnd, MASK_BLOCKLOS, pLooker, COLLISION_GROUP_NONE, ptr ); - trace_t tr; - CBaseEntity *pLooker = ToEnt(entIgnore); - UTIL_TraceLine( vecStart, vecEnd, ( unsigned int )nMask, pLooker, nCollisiongroup, &tr ); - if (tr.fractionleftsolid && tr.startsolid) - { - return 1.0 - tr.fractionleftsolid; - } - else - { - return tr.fraction; - } -} - -static void ScriptTraceLineTable( HSCRIPT hTable ) +static void ScriptTraceLineTable( HSCRIPT hTable, const Vector &vecStart, const Vector &vecEnd, const Vector &vecMins, const Vector &vecMaxs ) { if ( !hTable ) return; @@ -1168,26 +1152,22 @@ static void ScriptTraceLineTable( HSCRIPT hTable ) return; trace_t tr; - ScriptVariant_t start, end, mask, ignore, collisiongroup, mins, maxs; - mask = MASK_VISIBLE_AND_NPCS; - collisiongroup = COLLISION_GROUP_NONE; - mins = vec3_origin; - maxs = vec3_origin; - g_pScriptVM->GetValue( hTable, "start", &start ); - g_pScriptVM->GetValue( hTable, "end", &end ); - g_pScriptVM->GetValue( hTable, "mask", &mask ); - g_pScriptVM->GetValue( hTable, "ignore", &ignore ); - g_pScriptVM->GetValue( hTable, "collisiongroup", &collisiongroup ); - g_pScriptVM->GetValue( hTable, "mins", &mins ); - g_pScriptVM->GetValue( hTable, "maxs", &maxs ); - const Vector vecStart = start; - const Vector vecEnd = end; - const Vector vecMins = mins; - const Vector vecMaxs = maxs; + ScriptVariant_t rval; + int nMask = MASK_VISIBLE_AND_NPCS; + int nCollisionGroup = COLLISION_GROUP_NONE; + CBaseEntity *pIgnore = NULL; + + if ( g_pScriptVM->GetValue( hTable, "mask", &rval ) ) + nMask = ( int )rval; + if ( g_pScriptVM->GetValue( hTable, "ignore", &rval ) ) + pIgnore = ToEnt( ( HSCRIPT )rval ); + if ( g_pScriptVM->GetValue( hTable, "collisiongroup", &rval ) ) + nCollisionGroup = ( int )rval; + if ( vecMins == vecMaxs ) - UTIL_TraceLine( vecStart, vecEnd, ( int )mask, ToEnt( ignore ), ( int )collisiongroup, &tr ); + UTIL_TraceLine( vecStart, vecEnd, ( unsigned int )nMask, pIgnore, nCollisionGroup, &tr ); else - UTIL_TraceHull( vecStart, vecEnd, vecMins, vecMaxs, ( int )mask, ToEnt( ignore ), ( int )collisiongroup, &tr ); + UTIL_TraceHull( vecStart, vecEnd, vecMins, vecMaxs, ( unsigned int )nMask, pIgnore, nCollisionGroup, &tr ); g_pScriptVM->SetValue( hTable, "pos", tr.endpos ); g_pScriptVM->SetValue( hTable, "fraction", tr.fraction ); @@ -1736,8 +1716,7 @@ bool VScriptServerInit() ScriptRegisterFunction( g_pScriptVM, SendToServerConsole, "Send a string to the server console as a command" ); ScriptRegisterFunction( g_pScriptVM, GetMapName, "Get the name of the map."); ScriptRegisterFunctionNamed( g_pScriptVM, ScriptTraceLine, "TraceLine", "given 2 points & ent to ignore, return fraction along line that hits world or models" ); - ScriptRegisterFunctionNamed( g_pScriptVM, ScriptTraceLineParams, "TraceLineParams", "given 2 points, ent to ignore, mask and collision group, return fraction along line that hits world or models" ); - ScriptRegisterFunctionNamed( g_pScriptVM, ScriptTraceLineTable, "TraceLineTable", "Uses a configuration table to do a raytrace, puts return information into the table for return usage." ); + ScriptRegisterFunction( g_pScriptVM, ScriptTraceLineTable, "Uses a configuration table to do a raytrace, puts return information into the table for return usage." ); ScriptRegisterFunction( g_pScriptVM, Time, "Get the current server time" ); ScriptRegisterFunction( g_pScriptVM, FrameTime, "Get the time spent on the server in the last frame" ); diff --git a/src/game/server/vscript_server.nut b/src/game/server/vscript_server.nut index b7d98d9a0..290a7ae39 100644 --- a/src/game/server/vscript_server.nut +++ b/src/game/server/vscript_server.nut @@ -272,3 +272,22 @@ function ClientPrint( player, target, message, param1 = "", param2 = "", param3 { DoClientPrint( player, target, message, param1.tostring(), param2.tostring(), param3.tostring(), param4.tostring() ); } + +function TraceLineTable( table ) +{ + local vecStart = Vector( 0.0, 0.0, 0.0 ); + local vecEnd = Vector( 0.0, 0.0, 0.0 ); + local vecMins = Vector( 0.0, 0.0, 0.0 ); + local vecMaxs = Vector( 0.0, 0.0, 0.0 ); + + if ( "start" in table ) + vecStart = table[ "start" ]; + if ( "end" in table ) + vecEnd = table[ "end" ]; + if ( "mins" in table ) + vecMins = table[ "mins" ]; + if ( "maxs" in table ) + vecMaxs = table[ "maxs" ]; + + ScriptTraceLineTable( table, vecStart, vecEnd, vecMins, vecMaxs ); +} diff --git a/src/game/server/vscript_server_nut.h b/src/game/server/vscript_server_nut.h index c26c3f8a3..e7d1bf5ec 100644 --- a/src/game/server/vscript_server_nut.h +++ b/src/game/server/vscript_server_nut.h @@ -3,482 +3,525 @@ // generated using xxd -i vscript_server.nut constexpr unsigned char g_Script_vscript_server[] = { 0x2f, 0x2f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, - 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0xa9, - 0x20, 0x32, 0x30, 0x30, 0x38, 0x2c, 0x20, 0x56, 0x61, 0x6c, 0x76, 0x65, - 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2c, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, - 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x20, 0x3d, - 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0d, 0x0a, 0x2f, 0x2f, 0x0d, - 0x0a, 0x2f, 0x2f, 0x20, 0x50, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x3a, - 0x0d, 0x0a, 0x2f, 0x2f, 0x0d, 0x0a, 0x2f, 0x2f, 0x3d, 0x3d, 0x3d, 0x3d, + 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0xc2, + 0xa9, 0x20, 0x32, 0x30, 0x30, 0x38, 0x2c, 0x20, 0x56, 0x61, 0x6c, 0x76, + 0x65, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2c, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x73, 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x20, + 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0d, 0x0a, 0x2f, 0x2f, + 0x0d, 0x0a, 0x2f, 0x2f, 0x20, 0x50, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, + 0x3a, 0x0d, 0x0a, 0x2f, 0x2f, 0x0d, 0x0a, 0x2f, 0x2f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, - 0x3d, 0x0d, 0x0a, 0x0d, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x28, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x3d, - 0x20, 0x22, 0x22, 0x20, 0x29, 0x0d, 0x0a, 0x7b, 0x0d, 0x0a, 0x09, 0x72, - 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x44, 0x6f, 0x55, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x20, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x74, 0x6f, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x29, 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, - 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x45, 0x6e, - 0x74, 0x46, 0x69, 0x72, 0x65, 0x28, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x2c, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, - 0x20, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x30, 0x2e, 0x30, - 0x2c, 0x20, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x6f, 0x72, 0x20, - 0x3d, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x20, 0x29, 0x0d, 0x0a, 0x7b, 0x0d, - 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x21, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x20, 0x29, 0x0d, 0x0a, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x3b, 0x0d, 0x0a, - 0x09, 0x7d, 0x0d, 0x0a, 0x09, 0x0d, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x3d, 0x20, 0x6e, - 0x75, 0x6c, 0x6c, 0x3b, 0x0d, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, - 0x22, 0x73, 0x65, 0x6c, 0x66, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x69, 0x73, 0x20, 0x29, 0x0d, 0x0a, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, - 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x3d, 0x20, 0x73, 0x65, 0x6c, - 0x66, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x21, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x29, 0x0d, - 0x0a, 0x09, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x73, 0x65, 0x6c, - 0x66, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x7d, 0x0d, 0x0a, 0x09, 0x7d, 0x0d, - 0x0a, 0x09, 0x0d, 0x0a, 0x09, 0x44, 0x6f, 0x45, 0x6e, 0x74, 0x46, 0x69, - 0x72, 0x65, 0x28, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x74, - 0x6f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x29, 0x2c, 0x20, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x74, 0x6f, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x28, 0x29, 0x2c, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, - 0x74, 0x6f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x29, 0x2c, 0x20, - 0x64, 0x65, 0x6c, 0x61, 0x79, 0x2c, 0x20, 0x61, 0x63, 0x74, 0x69, 0x76, - 0x61, 0x74, 0x6f, 0x72, 0x2c, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, - 0x20, 0x29, 0x3b, 0x20, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x66, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x5f, 0x5f, 0x52, 0x65, - 0x70, 0x6c, 0x61, 0x63, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, - 0x73, 0x28, 0x20, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2c, 0x20, 0x73, - 0x63, 0x6f, 0x70, 0x65, 0x20, 0x29, 0x0d, 0x0a, 0x7b, 0x0d, 0x0a, 0x09, - 0x69, 0x66, 0x20, 0x28, 0x20, 0x21, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x20, - 0x29, 0x0d, 0x0a, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x73, 0x63, 0x6f, - 0x70, 0x65, 0x20, 0x3d, 0x20, 0x67, 0x65, 0x74, 0x72, 0x6f, 0x6f, 0x74, - 0x74, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x7d, - 0x0d, 0x0a, 0x09, 0x0d, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, - 0x74, 0x65, 0x6d, 0x70, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, - 0x20, 0x7b, 0x20, 0x67, 0x65, 0x74, 0x72, 0x6f, 0x6f, 0x74, 0x74, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x28, 0x29, 0x20, 0x7b, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, - 0x6e, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x3b, 0x20, 0x7d, 0x20, 0x7d, 0x3b, - 0x0d, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x74, 0x65, 0x6d, - 0x70, 0x20, 0x3d, 0x20, 0x7b, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x20, 0x3d, 0x20, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x20, 0x7d, 0x3b, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x50, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x20, 0x3a, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x3b, 0x0d, 0x0a, 0x09, - 0x0d, 0x0a, 0x09, 0x74, 0x65, 0x6d, 0x70, 0x2e, 0x72, 0x75, 0x6e, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x28, 0x29, 0x0d, 0x0a, 0x09, 0x66, 0x6f, - 0x72, 0x65, 0x61, 0x63, 0x68, 0x28, 0x20, 0x6b, 0x65, 0x79, 0x2c, 0x76, - 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x20, 0x29, - 0x0d, 0x0a, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x28, 0x76, 0x61, 0x6c, 0x29, - 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x20, 0x26, 0x26, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x21, 0x3d, - 0x20, 0x22, 0x72, 0x75, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x22, - 0x20, 0x29, 0x0d, 0x0a, 0x09, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x09, - 0x70, 0x72, 0x69, 0x6e, 0x74, 0x6c, 0x28, 0x20, 0x22, 0x20, 0x20, 0x20, - 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x20, 0x22, 0x20, - 0x2b, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, - 0x09, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x5b, 0x6b, 0x65, 0x79, 0x5d, 0x20, - 0x3c, 0x2d, 0x20, 0x76, 0x61, 0x6c, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x7d, - 0x0d, 0x0a, 0x09, 0x7d, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x5f, - 0x5f, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x20, 0x3c, 0x2d, 0x20, 0x72, 0x65, 0x67, 0x65, 0x78, - 0x70, 0x28, 0x22, 0x5e, 0x4f, 0x6e, 0x2e, 0x2a, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x24, 0x22, 0x29, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x66, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x28, 0x20, 0x74, - 0x61, 0x62, 0x6c, 0x65, 0x20, 0x29, 0x0d, 0x0a, 0x7b, 0x0d, 0x0a, 0x09, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x6e, 0x43, 0x68, 0x61, 0x72, 0x73, - 0x54, 0x6f, 0x53, 0x74, 0x72, 0x69, 0x70, 0x20, 0x3d, 0x20, 0x36, 0x3b, - 0x0d, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x28, 0x20, - 0x6b, 0x65, 0x79, 0x2c, 0x20, 0x76, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x29, 0x0d, 0x0a, 0x09, 0x7b, 0x0d, - 0x0a, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x6f, 0x66, 0x28, 0x20, 0x76, 0x61, 0x6c, 0x20, 0x29, 0x20, 0x3d, 0x3d, - 0x20, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x20, - 0x26, 0x26, 0x20, 0x5f, 0x5f, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x2e, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x28, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x29, 0x20, 0x29, 0x0d, 0x0a, - 0x09, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x2f, 0x2f, 0x70, 0x72, - 0x69, 0x6e, 0x74, 0x6c, 0x28, 0x6b, 0x65, 0x79, 0x2e, 0x73, 0x6c, 0x69, - 0x63, 0x65, 0x28, 0x20, 0x30, 0x2c, 0x20, 0x6e, 0x43, 0x68, 0x61, 0x72, - 0x73, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x69, 0x70, 0x20, 0x29, 0x20, 0x29, - 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, - 0x73, 0x65, 0x6c, 0x66, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x28, 0x20, 0x6b, 0x65, 0x79, 0x2e, - 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x20, 0x30, 0x2c, 0x20, 0x6b, 0x65, - 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x28, 0x29, 0x20, 0x2d, 0x20, 0x6e, 0x43, - 0x68, 0x61, 0x72, 0x73, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x69, 0x70, 0x20, - 0x29, 0x2c, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x09, - 0x09, 0x7d, 0x0d, 0x0a, 0x09, 0x7d, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, - 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x49, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x28, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x20, 0x73, 0x63, 0x6f, 0x70, 0x65, + 0x3d, 0x3d, 0x0d, 0x0a, 0x0d, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, + 0x3d, 0x20, 0x22, 0x22, 0x20, 0x29, 0x0d, 0x0a, 0x7b, 0x0d, 0x0a, 0x09, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x44, 0x6f, 0x55, 0x6e, 0x69, + 0x71, 0x75, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x20, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x74, 0x6f, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x28, 0x29, 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, + 0x0d, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x45, + 0x6e, 0x74, 0x46, 0x69, 0x72, 0x65, 0x28, 0x20, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x2c, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x6e, 0x75, 0x6c, 0x6c, + 0x2c, 0x20, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x30, 0x2e, + 0x30, 0x2c, 0x20, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x20, 0x29, 0x0d, 0x0a, 0x7b, - 0x0d, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x73, 0x63, 0x6f, 0x70, - 0x65, 0x20, 0x3d, 0x3d, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x20, 0x29, 0x0d, - 0x0a, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x73, 0x63, 0x6f, 0x70, 0x65, - 0x20, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x3b, 0x0d, 0x0a, 0x09, 0x7d, - 0x0d, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x3a, 0x3a, - 0x44, 0x6f, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x28, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x20, 0x73, - 0x63, 0x6f, 0x70, 0x65, 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, - 0x0d, 0x0a, 0x2f, 0x2f, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x0d, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x21, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x29, 0x0d, 0x0a, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x3b, 0x0d, + 0x0a, 0x09, 0x7d, 0x0d, 0x0a, 0x09, 0x0d, 0x0a, 0x09, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x3d, 0x20, + 0x6e, 0x75, 0x6c, 0x6c, 0x3b, 0x0d, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, + 0x20, 0x22, 0x73, 0x65, 0x6c, 0x66, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x29, 0x0d, 0x0a, 0x09, 0x7b, 0x0d, 0x0a, 0x09, + 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x3d, 0x20, 0x73, 0x65, + 0x6c, 0x66, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, + 0x21, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x29, + 0x0d, 0x0a, 0x09, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x73, 0x65, + 0x6c, 0x66, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x7d, 0x0d, 0x0a, 0x09, 0x7d, + 0x0d, 0x0a, 0x09, 0x0d, 0x0a, 0x09, 0x44, 0x6f, 0x45, 0x6e, 0x74, 0x46, + 0x69, 0x72, 0x65, 0x28, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, + 0x74, 0x6f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x29, 0x2c, 0x20, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x74, 0x6f, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x29, 0x2c, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x2e, 0x74, 0x6f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x29, 0x2c, + 0x20, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x2c, 0x20, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x61, 0x74, 0x6f, 0x72, 0x2c, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x65, + 0x72, 0x20, 0x29, 0x3b, 0x20, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x5f, 0x5f, 0x52, + 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x75, 0x72, + 0x65, 0x73, 0x28, 0x20, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2c, 0x20, + 0x73, 0x63, 0x6f, 0x70, 0x65, 0x20, 0x29, 0x0d, 0x0a, 0x7b, 0x0d, 0x0a, + 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x21, 0x73, 0x63, 0x6f, 0x70, 0x65, + 0x20, 0x29, 0x0d, 0x0a, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x73, 0x63, + 0x6f, 0x70, 0x65, 0x20, 0x3d, 0x20, 0x67, 0x65, 0x74, 0x72, 0x6f, 0x6f, + 0x74, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x29, 0x3b, 0x0d, 0x0a, 0x09, + 0x7d, 0x0d, 0x0a, 0x09, 0x0d, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x20, 0x74, 0x65, 0x6d, 0x70, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, + 0x3d, 0x20, 0x7b, 0x20, 0x67, 0x65, 0x74, 0x72, 0x6f, 0x6f, 0x74, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x20, 0x7b, 0x20, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x3b, 0x20, 0x7d, 0x20, 0x7d, + 0x3b, 0x0d, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x74, 0x65, + 0x6d, 0x70, 0x20, 0x3d, 0x20, 0x7b, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x20, 0x3d, 0x20, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x20, 0x7d, 0x3b, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x65, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x50, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x20, 0x3a, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x3b, 0x0d, 0x0a, + 0x09, 0x0d, 0x0a, 0x09, 0x74, 0x65, 0x6d, 0x70, 0x2e, 0x72, 0x75, 0x6e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x28, 0x29, 0x0d, 0x0a, 0x09, 0x66, + 0x6f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x28, 0x20, 0x6b, 0x65, 0x79, 0x2c, + 0x76, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x20, + 0x29, 0x0d, 0x0a, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x69, 0x66, 0x20, + 0x28, 0x20, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x28, 0x76, 0x61, 0x6c, + 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x20, 0x26, 0x26, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x21, + 0x3d, 0x20, 0x22, 0x72, 0x75, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x22, 0x20, 0x29, 0x0d, 0x0a, 0x09, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, + 0x09, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x6c, 0x28, 0x20, 0x22, 0x20, 0x20, + 0x20, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x20, 0x22, + 0x20, 0x2b, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x09, + 0x09, 0x09, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x5b, 0x6b, 0x65, 0x79, 0x5d, + 0x20, 0x3c, 0x2d, 0x20, 0x76, 0x61, 0x6c, 0x3b, 0x0d, 0x0a, 0x09, 0x09, + 0x7d, 0x0d, 0x0a, 0x09, 0x7d, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, + 0x5f, 0x5f, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x20, 0x3c, 0x2d, 0x20, 0x72, 0x65, 0x67, 0x65, + 0x78, 0x70, 0x28, 0x22, 0x5e, 0x4f, 0x6e, 0x2e, 0x2a, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x24, 0x22, 0x29, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x43, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x28, 0x20, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x29, 0x0d, 0x0a, 0x7b, 0x0d, 0x0a, + 0x09, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x6e, 0x43, 0x68, 0x61, 0x72, + 0x73, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x69, 0x70, 0x20, 0x3d, 0x20, 0x36, + 0x3b, 0x0d, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x28, + 0x20, 0x6b, 0x65, 0x79, 0x2c, 0x20, 0x76, 0x61, 0x6c, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x29, 0x0d, 0x0a, 0x09, 0x7b, + 0x0d, 0x0a, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x6f, 0x66, 0x28, 0x20, 0x76, 0x61, 0x6c, 0x20, 0x29, 0x20, 0x3d, + 0x3d, 0x20, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x20, 0x26, 0x26, 0x20, 0x5f, 0x5f, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x73, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x2e, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x28, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x29, 0x20, 0x29, 0x0d, + 0x0a, 0x09, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x2f, 0x2f, 0x70, + 0x72, 0x69, 0x6e, 0x74, 0x6c, 0x28, 0x6b, 0x65, 0x79, 0x2e, 0x73, 0x6c, + 0x69, 0x63, 0x65, 0x28, 0x20, 0x30, 0x2c, 0x20, 0x6e, 0x43, 0x68, 0x61, + 0x72, 0x73, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x69, 0x70, 0x20, 0x29, 0x20, + 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x2e, 0x73, 0x65, 0x6c, 0x66, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x28, 0x20, 0x6b, 0x65, 0x79, + 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x20, 0x30, 0x2c, 0x20, 0x6b, + 0x65, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x28, 0x29, 0x20, 0x2d, 0x20, 0x6e, + 0x43, 0x68, 0x61, 0x72, 0x73, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x69, 0x70, + 0x20, 0x29, 0x2c, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x29, 0x3b, 0x0d, 0x0a, + 0x09, 0x09, 0x7d, 0x0d, 0x0a, 0x09, 0x7d, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, + 0x0d, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x49, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x28, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x20, 0x73, 0x63, 0x6f, 0x70, + 0x65, 0x20, 0x3d, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x20, 0x29, 0x0d, 0x0a, + 0x7b, 0x0d, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x73, 0x63, 0x6f, + 0x70, 0x65, 0x20, 0x3d, 0x3d, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x20, 0x29, + 0x0d, 0x0a, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x73, 0x63, 0x6f, 0x70, + 0x65, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x3b, 0x0d, 0x0a, 0x09, + 0x7d, 0x0d, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x3a, + 0x3a, 0x44, 0x6f, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x28, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x20, + 0x73, 0x63, 0x6f, 0x70, 0x65, 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x7d, 0x0d, + 0x0a, 0x0d, 0x0a, 0x2f, 0x2f, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x0d, 0x0a, 0x2f, 0x2f, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, 0x64, - 0x75, 0x6d, 0x70, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x63, 0x6f, - 0x70, 0x65, 0x27, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, - 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x0d, 0x0a, 0x2f, 0x2f, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x0d, 0x0a, 0x2f, 0x2f, 0x20, 0x54, 0x65, 0x78, 0x74, 0x20, + 0x64, 0x75, 0x6d, 0x70, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x63, + 0x6f, 0x70, 0x65, 0x27, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, + 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x0d, 0x0a, 0x2f, 0x2f, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0d, 0x0a, 0x66, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x5f, 0x5f, 0x44, 0x75, 0x6d, 0x70, 0x53, - 0x63, 0x6f, 0x70, 0x65, 0x28, 0x20, 0x64, 0x65, 0x70, 0x74, 0x68, 0x2c, - 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x29, 0x0d, 0x0a, 0x7b, 0x0d, - 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x64, 0x65, - 0x6e, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, - 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x29, 0x0d, 0x0a, 0x09, 0x7b, - 0x0d, 0x0a, 0x09, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x3b, - 0x0d, 0x0a, 0x09, 0x09, 0x66, 0x6f, 0x72, 0x28, 0x20, 0x69, 0x20, 0x3d, - 0x20, 0x30, 0x20, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x20, 0x3b, 0x20, 0x69, 0x2b, 0x2b, 0x20, 0x29, 0x0d, 0x0a, - 0x09, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6e, - 0x74, 0x28, 0x22, 0x20, 0x20, 0x20, 0x22, 0x29, 0x3b, 0x0d, 0x0a, 0x09, - 0x09, 0x7d, 0x0d, 0x0a, 0x09, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x09, 0x66, - 0x6f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x28, 0x6b, 0x65, 0x79, 0x2c, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x29, 0x0d, 0x0a, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x69, - 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x28, 0x64, 0x65, 0x70, 0x74, 0x68, 0x29, - 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x28, 0x20, - 0x6b, 0x65, 0x79, 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x73, 0x77, - 0x69, 0x74, 0x63, 0x68, 0x20, 0x28, 0x74, 0x79, 0x70, 0x65, 0x28, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x29, 0x29, 0x0d, 0x0a, 0x09, 0x09, 0x7b, 0x0d, - 0x0a, 0x09, 0x09, 0x09, 0x63, 0x61, 0x73, 0x65, 0x20, 0x22, 0x74, 0x61, - 0x62, 0x6c, 0x65, 0x22, 0x3a, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x70, - 0x72, 0x69, 0x6e, 0x74, 0x28, 0x22, 0x28, 0x54, 0x41, 0x42, 0x4c, 0x45, - 0x29, 0x5c, 0x6e, 0x22, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0d, 0x0a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x5f, 0x5f, 0x44, 0x75, 0x6d, 0x70, + 0x53, 0x63, 0x6f, 0x70, 0x65, 0x28, 0x20, 0x64, 0x65, 0x70, 0x74, 0x68, + 0x2c, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x29, 0x0d, 0x0a, 0x7b, + 0x0d, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x64, + 0x65, 0x6e, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x29, 0x0d, 0x0a, 0x09, + 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x69, + 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x66, 0x6f, 0x72, 0x28, 0x20, 0x69, 0x20, + 0x3d, 0x20, 0x30, 0x20, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x20, 0x3b, 0x20, 0x69, 0x2b, 0x2b, 0x20, 0x29, 0x0d, + 0x0a, 0x09, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, + 0x6e, 0x74, 0x28, 0x22, 0x20, 0x20, 0x20, 0x22, 0x29, 0x3b, 0x0d, 0x0a, + 0x09, 0x09, 0x7d, 0x0d, 0x0a, 0x09, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x09, + 0x66, 0x6f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x28, 0x6b, 0x65, 0x79, 0x2c, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x29, 0x0d, 0x0a, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x28, 0x64, 0x65, 0x70, 0x74, 0x68, - 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6e, - 0x74, 0x28, 0x22, 0x7b, 0x5c, 0x6e, 0x22, 0x29, 0x3b, 0x0d, 0x0a, 0x09, + 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x28, + 0x20, 0x6b, 0x65, 0x79, 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x20, 0x28, 0x74, 0x79, 0x70, 0x65, 0x28, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x29, 0x0d, 0x0a, 0x09, 0x09, 0x7b, + 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x63, 0x61, 0x73, 0x65, 0x20, 0x22, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x22, 0x3a, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, + 0x70, 0x72, 0x69, 0x6e, 0x74, 0x28, 0x22, 0x28, 0x54, 0x41, 0x42, 0x4c, + 0x45, 0x29, 0x5c, 0x6e, 0x22, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, + 0x09, 0x69, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x28, 0x64, 0x65, 0x70, 0x74, + 0x68, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, + 0x6e, 0x74, 0x28, 0x22, 0x7b, 0x5c, 0x6e, 0x22, 0x29, 0x3b, 0x0d, 0x0a, + 0x09, 0x09, 0x09, 0x09, 0x5f, 0x5f, 0x44, 0x75, 0x6d, 0x70, 0x53, 0x63, + 0x6f, 0x70, 0x65, 0x28, 0x20, 0x64, 0x65, 0x70, 0x74, 0x68, 0x20, 0x2b, + 0x20, 0x31, 0x2c, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x3b, 0x0d, + 0x0a, 0x09, 0x09, 0x09, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x28, + 0x64, 0x65, 0x70, 0x74, 0x68, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, + 0x09, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x28, 0x22, 0x7d, 0x22, 0x29, 0x3b, + 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, + 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x63, 0x61, 0x73, 0x65, 0x20, 0x22, 0x61, + 0x72, 0x72, 0x61, 0x79, 0x22, 0x3a, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, + 0x70, 0x72, 0x69, 0x6e, 0x74, 0x28, 0x22, 0x28, 0x41, 0x52, 0x52, 0x41, + 0x59, 0x29, 0x5c, 0x6e, 0x22, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, + 0x09, 0x69, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x28, 0x64, 0x65, 0x70, 0x74, + 0x68, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, + 0x6e, 0x74, 0x28, 0x22, 0x5b, 0x5c, 0x6e, 0x22, 0x29, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x5f, 0x5f, 0x44, 0x75, 0x6d, 0x70, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x28, 0x20, 0x64, 0x65, 0x70, 0x74, 0x68, 0x20, 0x2b, 0x20, 0x31, 0x2c, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x28, 0x64, 0x65, 0x70, 0x74, 0x68, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, - 0x70, 0x72, 0x69, 0x6e, 0x74, 0x28, 0x22, 0x7d, 0x22, 0x29, 0x3b, 0x0d, + 0x70, 0x72, 0x69, 0x6e, 0x74, 0x28, 0x22, 0x5d, 0x22, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x0d, - 0x0a, 0x09, 0x09, 0x09, 0x63, 0x61, 0x73, 0x65, 0x20, 0x22, 0x61, 0x72, - 0x72, 0x61, 0x79, 0x22, 0x3a, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x70, - 0x72, 0x69, 0x6e, 0x74, 0x28, 0x22, 0x28, 0x41, 0x52, 0x52, 0x41, 0x59, - 0x29, 0x5c, 0x6e, 0x22, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, - 0x69, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x28, 0x64, 0x65, 0x70, 0x74, 0x68, - 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6e, - 0x74, 0x28, 0x22, 0x5b, 0x5c, 0x6e, 0x22, 0x29, 0x0d, 0x0a, 0x09, 0x09, - 0x09, 0x09, 0x5f, 0x5f, 0x44, 0x75, 0x6d, 0x70, 0x53, 0x63, 0x6f, 0x70, - 0x65, 0x28, 0x20, 0x64, 0x65, 0x70, 0x74, 0x68, 0x20, 0x2b, 0x20, 0x31, - 0x2c, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x3b, 0x0d, 0x0a, 0x09, - 0x09, 0x09, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x28, 0x64, 0x65, - 0x70, 0x74, 0x68, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x70, - 0x72, 0x69, 0x6e, 0x74, 0x28, 0x22, 0x5d, 0x22, 0x29, 0x3b, 0x0d, 0x0a, - 0x09, 0x09, 0x09, 0x09, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x0d, 0x0a, - 0x09, 0x09, 0x09, 0x63, 0x61, 0x73, 0x65, 0x20, 0x22, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x70, - 0x72, 0x69, 0x6e, 0x74, 0x28, 0x22, 0x20, 0x3d, 0x20, 0x5c, 0x22, 0x22, - 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6e, - 0x74, 0x28, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x3b, 0x0d, 0x0a, 0x09, - 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x28, 0x22, 0x5c, 0x22, - 0x22, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x62, 0x72, 0x65, - 0x61, 0x6b, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x3a, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x70, 0x72, - 0x69, 0x6e, 0x74, 0x28, 0x22, 0x20, 0x3d, 0x20, 0x22, 0x29, 0x3b, 0x0d, - 0x0a, 0x09, 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x28, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, - 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x7d, 0x0d, - 0x0a, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x28, 0x22, 0x5c, 0x6e, - 0x22, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x7d, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, - 0x0d, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x44, - 0x65, 0x65, 0x70, 0x50, 0x72, 0x69, 0x6e, 0x74, 0x54, 0x61, 0x62, 0x6c, - 0x65, 0x28, 0x20, 0x64, 0x65, 0x62, 0x75, 0x67, 0x54, 0x61, 0x62, 0x6c, - 0x65, 0x2c, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x3d, 0x20, - 0x22, 0x22, 0x20, 0x29, 0x0d, 0x0a, 0x7b, 0x0d, 0x0a, 0x09, 0x69, 0x66, - 0x20, 0x28, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x3d, 0x3d, 0x20, - 0x22, 0x22, 0x29, 0x0d, 0x0a, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x70, - 0x72, 0x69, 0x6e, 0x74, 0x6c, 0x28, 0x22, 0x7b, 0x22, 0x29, 0x3b, 0x0d, - 0x0a, 0x09, 0x09, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x3d, 0x20, - 0x22, 0x20, 0x20, 0x20, 0x22, 0x3b, 0x0d, 0x0a, 0x09, 0x7d, 0x0d, 0x0a, - 0x09, 0x66, 0x6f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x20, 0x28, 0x69, 0x64, - 0x78, 0x2c, 0x20, 0x76, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x20, 0x64, 0x65, - 0x62, 0x75, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x29, 0x0d, 0x0a, 0x09, - 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x6f, 0x66, 0x28, 0x76, 0x61, 0x6c, 0x29, 0x20, 0x3d, 0x3d, - 0x20, 0x22, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x20, 0x29, 0x0d, 0x0a, - 0x09, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6e, - 0x74, 0x6c, 0x28, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x2b, - 0x20, 0x69, 0x64, 0x78, 0x20, 0x2b, 0x20, 0x22, 0x20, 0x3d, 0x20, 0x5c, - 0x6e, 0x22, 0x20, 0x2b, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, - 0x2b, 0x20, 0x22, 0x7b, 0x22, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, + 0x0a, 0x09, 0x09, 0x09, 0x63, 0x61, 0x73, 0x65, 0x20, 0x22, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, + 0x70, 0x72, 0x69, 0x6e, 0x74, 0x28, 0x22, 0x20, 0x3d, 0x20, 0x5c, 0x22, + 0x22, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, + 0x6e, 0x74, 0x28, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x3b, 0x0d, 0x0a, + 0x09, 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x28, 0x22, 0x5c, + 0x22, 0x22, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x62, 0x72, + 0x65, 0x61, 0x6b, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x3a, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x70, + 0x72, 0x69, 0x6e, 0x74, 0x28, 0x22, 0x20, 0x3d, 0x20, 0x22, 0x29, 0x3b, + 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x28, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, + 0x09, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x7d, + 0x0d, 0x0a, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x28, 0x22, 0x5c, + 0x6e, 0x22, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x7d, 0x0d, 0x0a, 0x7d, 0x0d, + 0x0a, 0x0d, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x44, 0x65, 0x65, 0x70, 0x50, 0x72, 0x69, 0x6e, 0x74, 0x54, 0x61, 0x62, - 0x6c, 0x65, 0x28, 0x20, 0x76, 0x61, 0x6c, 0x2c, 0x20, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x20, 0x2b, 0x20, 0x22, 0x20, 0x20, 0x20, 0x22, 0x20, - 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x74, - 0x6c, 0x28, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x2b, 0x20, 0x22, - 0x7d, 0x22, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x7d, 0x0d, 0x0a, 0x09, - 0x09, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x20, 0x28, 0x20, 0x74, + 0x6c, 0x65, 0x28, 0x20, 0x64, 0x65, 0x62, 0x75, 0x67, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x2c, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x3d, + 0x20, 0x22, 0x22, 0x20, 0x29, 0x0d, 0x0a, 0x7b, 0x0d, 0x0a, 0x09, 0x69, + 0x66, 0x20, 0x28, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x3d, 0x3d, + 0x20, 0x22, 0x22, 0x29, 0x0d, 0x0a, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, + 0x70, 0x72, 0x69, 0x6e, 0x74, 0x6c, 0x28, 0x22, 0x7b, 0x22, 0x29, 0x3b, + 0x0d, 0x0a, 0x09, 0x09, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x3d, + 0x20, 0x22, 0x20, 0x20, 0x20, 0x22, 0x3b, 0x0d, 0x0a, 0x09, 0x7d, 0x0d, + 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x20, 0x28, 0x69, + 0x64, 0x78, 0x2c, 0x20, 0x76, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x20, 0x64, + 0x65, 0x62, 0x75, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x29, 0x0d, 0x0a, + 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x28, 0x76, 0x61, 0x6c, 0x29, 0x20, 0x3d, - 0x3d, 0x20, 0x22, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x29, - 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x6c, 0x28, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x2b, 0x20, 0x69, 0x64, 0x78, - 0x20, 0x2b, 0x20, 0x22, 0x5c, 0x74, 0x3d, 0x20, 0x5c, 0x22, 0x22, 0x20, - 0x2b, 0x20, 0x76, 0x61, 0x6c, 0x20, 0x2b, 0x20, 0x22, 0x5c, 0x22, 0x22, - 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x65, 0x6c, 0x73, 0x65, 0x0d, 0x0a, - 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x6c, 0x28, 0x70, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x20, 0x2b, 0x20, 0x69, 0x64, 0x78, 0x20, 0x2b, - 0x20, 0x22, 0x5c, 0x74, 0x3d, 0x20, 0x22, 0x20, 0x2b, 0x20, 0x76, 0x61, - 0x6c, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x7d, 0x0d, 0x0a, 0x09, 0x69, 0x66, - 0x20, 0x28, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x3d, 0x3d, 0x20, - 0x22, 0x20, 0x20, 0x20, 0x22, 0x29, 0x0d, 0x0a, 0x09, 0x09, 0x70, 0x72, - 0x69, 0x6e, 0x74, 0x6c, 0x28, 0x22, 0x7d, 0x22, 0x29, 0x3b, 0x0d, 0x0a, - 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x54, - 0x61, 0x62, 0x6c, 0x65, 0x28, 0x20, 0x73, 0x72, 0x63, 0x54, 0x61, 0x62, - 0x6c, 0x65, 0x20, 0x29, 0x0d, 0x0a, 0x7b, 0x0d, 0x0a, 0x09, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x20, 0x3d, - 0x20, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x72, 0x63, 0x54, 0x61, - 0x62, 0x6c, 0x65, 0x3b, 0x0d, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x65, 0x61, - 0x63, 0x68, 0x28, 0x20, 0x6b, 0x65, 0x79, 0x2c, 0x20, 0x76, 0x61, 0x6c, - 0x20, 0x69, 0x6e, 0x20, 0x73, 0x72, 0x63, 0x54, 0x61, 0x62, 0x6c, 0x65, - 0x20, 0x29, 0x0d, 0x0a, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x69, 0x66, - 0x20, 0x28, 0x20, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x28, 0x20, 0x76, - 0x61, 0x6c, 0x20, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x22, 0x20, 0x29, 0x0d, 0x0a, 0x09, 0x09, 0x7b, 0x0d, 0x0a, - 0x09, 0x09, 0x09, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5b, 0x20, 0x6b, - 0x65, 0x79, 0x20, 0x5d, 0x20, 0x3d, 0x20, 0x44, 0x75, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x20, 0x76, - 0x61, 0x6c, 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x7d, 0x0d, 0x0a, - 0x09, 0x7d, 0x0d, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x3b, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, - 0x0d, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x49, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x20, - 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x54, 0x61, 0x62, 0x6c, - 0x65, 0x2c, 0x20, 0x62, 0x61, 0x73, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, - 0x20, 0x29, 0x0d, 0x0a, 0x7b, 0x0d, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x65, - 0x61, 0x63, 0x68, 0x20, 0x28, 0x69, 0x64, 0x78, 0x2c, 0x20, 0x76, 0x61, - 0x6c, 0x20, 0x69, 0x6e, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, - 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x29, 0x0d, 0x0a, 0x09, 0x7b, 0x0d, - 0x0a, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x6f, 0x66, 0x28, 0x76, 0x61, 0x6c, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, - 0x74, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x20, 0x29, 0x0d, 0x0a, 0x09, 0x09, - 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x21, 0x20, - 0x28, 0x69, 0x64, 0x78, 0x20, 0x69, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x54, 0x61, 0x62, 0x6c, 0x65, 0x29, 0x20, 0x29, 0x0d, 0x0a, 0x09, 0x09, - 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x62, 0x61, 0x73, 0x65, - 0x54, 0x61, 0x62, 0x6c, 0x65, 0x5b, 0x69, 0x64, 0x78, 0x5d, 0x20, 0x3c, - 0x2d, 0x20, 0x7b, 0x7d, 0x3b, 0x20, 0x2f, 0x2f, 0x20, 0x6d, 0x61, 0x6b, - 0x65, 0x20, 0x73, 0x75, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, - 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, - 0x68, 0x65, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x62, 0x61, 0x73, 0x65, 0x0d, 0x0a, 0x09, 0x09, 0x09, - 0x7d, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x54, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x20, 0x76, 0x61, 0x6c, 0x2c, 0x20, - 0x62, 0x61, 0x73, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x5b, 0x69, 0x64, - 0x78, 0x5d, 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x7d, 0x0d, 0x0a, - 0x09, 0x09, 0x65, 0x6c, 0x73, 0x65, 0x0d, 0x0a, 0x09, 0x09, 0x7b, 0x0d, - 0x0a, 0x09, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x76, 0x61, 0x6c, 0x20, - 0x3d, 0x3d, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x0d, 0x0a, 0x09, 0x09, - 0x09, 0x09, 0x62, 0x61, 0x73, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, - 0x72, 0x61, 0x77, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x28, 0x69, 0x64, - 0x78, 0x29, 0x3b, 0x20, 0x2f, 0x2f, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x79, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x72, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x20, 0x6b, 0x65, 0x79, 0x21, - 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x65, 0x6c, 0x73, 0x65, 0x0d, 0x0a, 0x09, + 0x3d, 0x20, 0x22, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x20, 0x29, 0x0d, + 0x0a, 0x09, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, + 0x6e, 0x74, 0x6c, 0x28, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, + 0x2b, 0x20, 0x69, 0x64, 0x78, 0x20, 0x2b, 0x20, 0x22, 0x20, 0x3d, 0x20, + 0x5c, 0x6e, 0x22, 0x20, 0x2b, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x20, 0x2b, 0x20, 0x22, 0x7b, 0x22, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, + 0x09, 0x44, 0x65, 0x65, 0x70, 0x50, 0x72, 0x69, 0x6e, 0x74, 0x54, 0x61, + 0x62, 0x6c, 0x65, 0x28, 0x20, 0x76, 0x61, 0x6c, 0x2c, 0x20, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x20, 0x2b, 0x20, 0x22, 0x20, 0x20, 0x20, 0x22, + 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6e, + 0x74, 0x6c, 0x28, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x2b, 0x20, + 0x22, 0x7d, 0x22, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x7d, 0x0d, 0x0a, + 0x09, 0x09, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x20, 0x28, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x28, 0x76, 0x61, 0x6c, 0x29, 0x20, + 0x3d, 0x3d, 0x20, 0x22, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, + 0x29, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x6c, + 0x28, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x2b, 0x20, 0x69, 0x64, + 0x78, 0x20, 0x2b, 0x20, 0x22, 0x5c, 0x74, 0x3d, 0x20, 0x5c, 0x22, 0x22, + 0x20, 0x2b, 0x20, 0x76, 0x61, 0x6c, 0x20, 0x2b, 0x20, 0x22, 0x5c, 0x22, + 0x22, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x65, 0x6c, 0x73, 0x65, 0x0d, + 0x0a, 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x6c, 0x28, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x2b, 0x20, 0x69, 0x64, 0x78, 0x20, + 0x2b, 0x20, 0x22, 0x5c, 0x74, 0x3d, 0x20, 0x22, 0x20, 0x2b, 0x20, 0x76, + 0x61, 0x6c, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x7d, 0x0d, 0x0a, 0x09, 0x69, + 0x66, 0x20, 0x28, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x3d, 0x3d, + 0x20, 0x22, 0x20, 0x20, 0x20, 0x22, 0x29, 0x0d, 0x0a, 0x09, 0x09, 0x70, + 0x72, 0x69, 0x6e, 0x74, 0x6c, 0x28, 0x22, 0x7d, 0x22, 0x29, 0x3b, 0x0d, + 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x20, 0x73, 0x72, 0x63, 0x54, 0x61, + 0x62, 0x6c, 0x65, 0x20, 0x29, 0x0d, 0x0a, 0x7b, 0x0d, 0x0a, 0x09, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x20, + 0x3d, 0x20, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x20, 0x73, 0x72, 0x63, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x3b, 0x0d, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x65, + 0x61, 0x63, 0x68, 0x28, 0x20, 0x6b, 0x65, 0x79, 0x2c, 0x20, 0x76, 0x61, + 0x6c, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x72, 0x63, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x20, 0x29, 0x0d, 0x0a, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x69, + 0x66, 0x20, 0x28, 0x20, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x28, 0x20, + 0x76, 0x61, 0x6c, 0x20, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x22, 0x20, 0x29, 0x0d, 0x0a, 0x09, 0x09, 0x7b, 0x0d, + 0x0a, 0x09, 0x09, 0x09, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5b, 0x20, + 0x6b, 0x65, 0x79, 0x20, 0x5d, 0x20, 0x3d, 0x20, 0x44, 0x75, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x20, + 0x76, 0x61, 0x6c, 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x7d, 0x0d, + 0x0a, 0x09, 0x7d, 0x0d, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x3b, 0x0d, 0x0a, 0x7d, 0x0d, + 0x0a, 0x0d, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x28, + 0x20, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x2c, 0x20, 0x62, 0x61, 0x73, 0x65, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x20, 0x29, 0x0d, 0x0a, 0x7b, 0x0d, 0x0a, 0x09, 0x66, 0x6f, 0x72, + 0x65, 0x61, 0x63, 0x68, 0x20, 0x28, 0x69, 0x64, 0x78, 0x2c, 0x20, 0x76, + 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, + 0x64, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x29, 0x0d, 0x0a, 0x09, 0x7b, + 0x0d, 0x0a, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x6f, 0x66, 0x28, 0x76, 0x61, 0x6c, 0x29, 0x20, 0x3d, 0x3d, 0x20, + 0x22, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x20, 0x29, 0x0d, 0x0a, 0x09, + 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x21, + 0x20, 0x28, 0x69, 0x64, 0x78, 0x20, 0x69, 0x6e, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x29, 0x20, 0x29, 0x0d, 0x0a, 0x09, + 0x09, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x62, 0x61, 0x73, + 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x5b, 0x69, 0x64, 0x78, 0x5d, 0x20, + 0x3c, 0x2d, 0x20, 0x7b, 0x7d, 0x3b, 0x20, 0x2f, 0x2f, 0x20, 0x6d, 0x61, + 0x6b, 0x65, 0x20, 0x73, 0x75, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x72, + 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x20, 0x68, 0x65, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x62, 0x61, 0x73, 0x65, 0x0d, 0x0a, 0x09, 0x09, + 0x09, 0x7d, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x49, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x20, 0x76, 0x61, 0x6c, 0x2c, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x5b, 0x69, + 0x64, 0x78, 0x5d, 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x7d, 0x0d, + 0x0a, 0x09, 0x09, 0x65, 0x6c, 0x73, 0x65, 0x0d, 0x0a, 0x09, 0x09, 0x7b, + 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x76, 0x61, 0x6c, + 0x20, 0x3d, 0x3d, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x62, 0x61, 0x73, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, - 0x5b, 0x69, 0x64, 0x78, 0x5d, 0x20, 0x3c, 0x2d, 0x20, 0x6f, 0x76, 0x65, - 0x72, 0x72, 0x69, 0x64, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x5b, 0x69, - 0x64, 0x78, 0x5d, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x7d, 0x0d, 0x0a, 0x09, - 0x7d, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x66, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, - 0x6f, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x28, 0x20, 0x73, 0x74, 0x72, - 0x2c, 0x20, 0x64, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x20, - 0x3d, 0x20, 0x22, 0x2c, 0x22, 0x20, 0x29, 0x0d, 0x0a, 0x7b, 0x0d, 0x0a, - 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x76, 0x65, 0x63, 0x20, 0x3d, - 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x28, 0x20, 0x30, 0x2c, 0x20, - 0x30, 0x2c, 0x20, 0x30, 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x09, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x20, 0x3d, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x28, 0x20, 0x73, 0x74, + 0x2e, 0x72, 0x61, 0x77, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x28, 0x69, + 0x64, 0x78, 0x29, 0x3b, 0x20, 0x2f, 0x2f, 0x20, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x79, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x20, 0x74, 0x6f, 0x20, + 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x20, 0x6b, 0x65, 0x79, + 0x21, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x65, 0x6c, 0x73, 0x65, 0x0d, 0x0a, + 0x09, 0x09, 0x09, 0x09, 0x62, 0x61, 0x73, 0x65, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x5b, 0x69, 0x64, 0x78, 0x5d, 0x20, 0x3c, 0x2d, 0x20, 0x6f, 0x76, + 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x5b, + 0x69, 0x64, 0x78, 0x5d, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x7d, 0x0d, 0x0a, + 0x09, 0x7d, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x54, 0x6f, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x28, 0x20, 0x73, 0x74, 0x72, 0x2c, 0x20, 0x64, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, - 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x09, 0x76, 0x65, 0x63, 0x2e, - 0x78, 0x20, 0x3d, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5b, 0x30, - 0x5d, 0x2e, 0x74, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x28, - 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x76, 0x65, 0x63, 0x2e, 0x79, 0x20, 0x3d, - 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5b, 0x31, 0x5d, 0x2e, 0x74, - 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x28, 0x29, 0x3b, 0x0d, - 0x0a, 0x09, 0x76, 0x65, 0x63, 0x2e, 0x7a, 0x20, 0x3d, 0x20, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x5b, 0x32, 0x5d, 0x2e, 0x74, 0x6f, 0x69, 0x6e, - 0x74, 0x65, 0x67, 0x65, 0x72, 0x28, 0x29, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, - 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x76, 0x65, 0x63, 0x3b, - 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x5f, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x70, - 0x65, 0x72, 0x28, 0x20, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x66, 0x75, 0x6e, - 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x29, 0x0d, 0x0a, 0x7b, 0x0d, 0x0a, - 0x09, 0x69, 0x66, 0x20, 0x28, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x3d, 0x20, - 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x0d, 0x0a, 0x09, 0x09, 0x70, 0x72, 0x69, - 0x6e, 0x74, 0x6c, 0x28, 0x22, 0x4e, 0x6f, 0x20, 0x65, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x21, 0x22, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x65, 0x6c, 0x73, - 0x65, 0x0d, 0x0a, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x69, 0x66, 0x20, - 0x28, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x28, 0x66, 0x75, 0x6e, 0x63, - 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x66, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x29, 0x0d, 0x0a, 0x09, 0x09, - 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, - 0x6d, 0x65, 0x28, 0x65, 0x6e, 0x74, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, - 0x7d, 0x0d, 0x0a, 0x09, 0x09, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, + 0x20, 0x3d, 0x20, 0x22, 0x2c, 0x22, 0x20, 0x29, 0x0d, 0x0a, 0x7b, 0x0d, + 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x76, 0x65, 0x63, 0x20, + 0x3d, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x28, 0x20, 0x30, 0x2c, + 0x20, 0x30, 0x2c, 0x20, 0x30, 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, + 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x20, 0x3d, 0x20, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x28, 0x20, 0x73, + 0x74, 0x72, 0x2c, 0x20, 0x64, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, + 0x72, 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x09, 0x76, 0x65, 0x63, + 0x2e, 0x78, 0x20, 0x3d, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5b, + 0x30, 0x5d, 0x2e, 0x74, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, + 0x28, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x76, 0x65, 0x63, 0x2e, 0x79, 0x20, + 0x3d, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5b, 0x31, 0x5d, 0x2e, + 0x74, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x28, 0x29, 0x3b, + 0x0d, 0x0a, 0x09, 0x76, 0x65, 0x63, 0x2e, 0x7a, 0x20, 0x3d, 0x20, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5b, 0x32, 0x5d, 0x2e, 0x74, 0x6f, 0x69, + 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x28, 0x29, 0x3b, 0x0d, 0x0a, 0x0d, + 0x0a, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x76, 0x65, 0x63, + 0x3b, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x5f, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x6c, + 0x70, 0x65, 0x72, 0x28, 0x20, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x29, 0x0d, 0x0a, 0x7b, 0x0d, + 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x3d, + 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x0d, 0x0a, 0x09, 0x09, 0x70, 0x72, + 0x69, 0x6e, 0x74, 0x6c, 0x28, 0x22, 0x4e, 0x6f, 0x20, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x21, 0x22, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x65, 0x6c, + 0x73, 0x65, 0x0d, 0x0a, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x28, 0x66, 0x75, 0x6e, - 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x29, 0x0d, 0x0a, 0x09, 0x09, 0x7b, - 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x66, 0x75, 0x6e, - 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x65, 0x6e, 0x74, - 0x29, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x65, 0x6e, 0x74, 0x5b, 0x66, - 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x5d, 0x28, 0x29, 0x3b, 0x0d, - 0x0a, 0x09, 0x09, 0x09, 0x65, 0x6c, 0x73, 0x65, 0x0d, 0x0a, 0x09, 0x09, - 0x09, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x6c, 0x28, 0x22, 0x4e, 0x6f, - 0x20, 0x22, 0x20, 0x2b, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, - 0x65, 0x20, 0x2b, 0x20, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x22, 0x20, 0x2b, - 0x20, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x28, 0x29, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x7d, 0x0d, 0x0a, 0x09, - 0x09, 0x65, 0x6c, 0x73, 0x65, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x70, 0x72, - 0x69, 0x6e, 0x74, 0x6c, 0x28, 0x22, 0x4e, 0x65, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x66, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, - 0x72, 0x20, 0x61, 0x20, 0x6c, 0x61, 0x6d, 0x62, 0x64, 0x61, 0x20, 0x66, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x6e, 0x6f, 0x74, - 0x20, 0x61, 0x20, 0x22, 0x20, 0x2b, 0x20, 0x74, 0x79, 0x70, 0x65, 0x6f, - 0x66, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x29, - 0x3b, 0x0d, 0x0a, 0x09, 0x7d, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, - 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x45, 0x6e, 0x74, - 0x43, 0x61, 0x6c, 0x6c, 0x28, 0x20, 0x69, 0x64, 0x78, 0x6f, 0x72, 0x6e, - 0x61, 0x6d, 0x65, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, - 0x65, 0x20, 0x29, 0x0d, 0x0a, 0x7b, 0x0d, 0x0a, 0x09, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x20, 0x68, 0x45, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x6e, 0x75, - 0x6c, 0x6c, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x28, 0x69, 0x64, 0x78, 0x6f, - 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x29, 0x0d, 0x0a, 0x09, 0x7b, - 0x0d, 0x0a, 0x09, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x6f, - 0x75, 0x6e, 0x64, 0x61, 0x6e, 0x79, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, - 0x73, 0x65, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x77, 0x68, 0x69, 0x6c, 0x65, - 0x20, 0x28, 0x20, 0x68, 0x45, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x45, 0x6e, - 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x42, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x28, 0x20, 0x68, 0x45, 0x6e, 0x74, 0x2c, - 0x20, 0x69, 0x64, 0x78, 0x6f, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x29, - 0x20, 0x29, 0x0d, 0x0a, 0x09, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x09, - 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x6e, 0x79, 0x20, 0x3d, 0x20, 0x74, - 0x72, 0x75, 0x65, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x5f, 0x65, 0x6e, - 0x74, 0x48, 0x65, 0x6c, 0x70, 0x65, 0x72, 0x28, 0x20, 0x68, 0x45, 0x6e, - 0x74, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, - 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x7d, 0x0d, 0x0a, 0x09, 0x09, 0x69, - 0x66, 0x20, 0x28, 0x21, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x6e, 0x79, - 0x29, 0x0d, 0x0a, 0x09, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x77, - 0x68, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x20, 0x68, 0x45, 0x6e, 0x74, 0x20, - 0x3d, 0x20, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x46, - 0x69, 0x6e, 0x64, 0x42, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, - 0x6d, 0x65, 0x28, 0x20, 0x68, 0x45, 0x6e, 0x74, 0x2c, 0x20, 0x69, 0x64, - 0x78, 0x6f, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x29, 0x20, 0x29, 0x0d, - 0x0a, 0x09, 0x09, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x66, - 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x6e, 0x79, 0x20, 0x3d, 0x20, 0x74, 0x72, - 0x75, 0x65, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x5f, 0x65, 0x6e, - 0x74, 0x48, 0x65, 0x6c, 0x70, 0x65, 0x72, 0x28, 0x20, 0x68, 0x45, 0x6e, - 0x74, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, - 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x7d, 0x0d, 0x0a, 0x09, 0x09, - 0x7d, 0x0d, 0x0a, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x21, 0x66, 0x6f, - 0x75, 0x6e, 0x64, 0x61, 0x6e, 0x79, 0x29, 0x0d, 0x0a, 0x09, 0x09, 0x09, - 0x70, 0x72, 0x69, 0x6e, 0x74, 0x6c, 0x28, 0x22, 0x4e, 0x65, 0x76, 0x65, - 0x72, 0x20, 0x73, 0x61, 0x77, 0x20, 0x61, 0x6e, 0x79, 0x74, 0x68, 0x69, - 0x6e, 0x67, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x64, 0x20, 0x22, 0x20, 0x2b, 0x20, 0x69, 0x64, 0x78, 0x6f, - 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x7d, - 0x0d, 0x0a, 0x09, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x20, 0x28, - 0x20, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x28, 0x69, 0x64, 0x78, 0x6f, - 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x69, - 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, 0x29, 0x0d, 0x0a, 0x09, - 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x68, 0x45, 0x6e, 0x74, 0x20, 0x3d, 0x20, - 0x45, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x54, 0x6f, 0x48, 0x53, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x28, 0x20, 0x69, 0x64, 0x78, 0x6f, 0x72, - 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x5f, - 0x65, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x70, 0x65, 0x72, 0x28, 0x20, 0x68, - 0x45, 0x6e, 0x74, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, - 0x65, 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x7d, 0x0d, 0x0a, 0x7d, 0x0d, - 0x0a, 0x0d, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x45, 0x6e, 0x74, 0x28, 0x20, 0x69, 0x64, 0x78, 0x6f, 0x72, 0x6e, 0x61, + 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x29, 0x0d, 0x0a, 0x09, + 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x66, 0x75, 0x6e, 0x63, 0x6e, + 0x61, 0x6d, 0x65, 0x28, 0x65, 0x6e, 0x74, 0x29, 0x3b, 0x0d, 0x0a, 0x09, + 0x09, 0x7d, 0x0d, 0x0a, 0x09, 0x09, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, + 0x66, 0x20, 0x28, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x28, 0x66, 0x75, + 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x29, 0x0d, 0x0a, 0x09, 0x09, + 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x66, 0x75, + 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x65, 0x6e, + 0x74, 0x29, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x65, 0x6e, 0x74, 0x5b, + 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x5d, 0x28, 0x29, 0x3b, + 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x65, 0x6c, 0x73, 0x65, 0x0d, 0x0a, 0x09, + 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x6c, 0x28, 0x22, 0x4e, + 0x6f, 0x20, 0x22, 0x20, 0x2b, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, + 0x6d, 0x65, 0x20, 0x2b, 0x20, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x22, 0x20, + 0x2b, 0x20, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x28, 0x29, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x7d, 0x0d, 0x0a, + 0x09, 0x09, 0x65, 0x6c, 0x73, 0x65, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x70, + 0x72, 0x69, 0x6e, 0x74, 0x6c, 0x28, 0x22, 0x4e, 0x65, 0x65, 0x64, 0x20, + 0x74, 0x6f, 0x20, 0x70, 0x61, 0x73, 0x73, 0x20, 0x61, 0x20, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, + 0x6f, 0x72, 0x20, 0x61, 0x20, 0x6c, 0x61, 0x6d, 0x62, 0x64, 0x61, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x61, 0x20, 0x22, 0x20, 0x2b, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x6f, 0x66, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x29, + 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x7d, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, + 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x45, 0x6e, + 0x74, 0x43, 0x61, 0x6c, 0x6c, 0x28, 0x20, 0x69, 0x64, 0x78, 0x6f, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x29, 0x0d, 0x0a, 0x7b, 0x0d, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x68, 0x45, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x6e, - 0x75, 0x6c, 0x6c, 0x3b, 0x0d, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x28, 0x69, 0x64, 0x78, 0x6f, 0x72, - 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x29, 0x0d, 0x0a, 0x09, 0x09, 0x68, - 0x45, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, - 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x42, 0x79, 0x4e, 0x61, 0x6d, - 0x65, 0x28, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x20, 0x69, 0x64, 0x78, + 0x75, 0x6c, 0x6c, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x09, 0x69, 0x66, 0x20, + 0x28, 0x20, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x28, 0x69, 0x64, 0x78, + 0x6f, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x29, 0x0d, 0x0a, 0x09, + 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, + 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x6e, 0x79, 0x20, 0x3d, 0x20, 0x66, 0x61, + 0x6c, 0x73, 0x65, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x77, 0x68, 0x69, 0x6c, + 0x65, 0x20, 0x28, 0x20, 0x68, 0x45, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x45, + 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6e, 0x64, + 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x28, 0x20, 0x68, 0x45, 0x6e, 0x74, + 0x2c, 0x20, 0x69, 0x64, 0x78, 0x6f, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x20, + 0x29, 0x20, 0x29, 0x0d, 0x0a, 0x09, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, + 0x09, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x6e, 0x79, 0x20, 0x3d, 0x20, + 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x5f, 0x65, + 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x70, 0x65, 0x72, 0x28, 0x20, 0x68, 0x45, + 0x6e, 0x74, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, + 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x7d, 0x0d, 0x0a, 0x09, 0x09, + 0x69, 0x66, 0x20, 0x28, 0x21, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x6e, + 0x79, 0x29, 0x0d, 0x0a, 0x09, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x09, + 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x20, 0x68, 0x45, 0x6e, 0x74, + 0x20, 0x3d, 0x20, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, + 0x46, 0x69, 0x6e, 0x64, 0x42, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x6e, + 0x61, 0x6d, 0x65, 0x28, 0x20, 0x68, 0x45, 0x6e, 0x74, 0x2c, 0x20, 0x69, + 0x64, 0x78, 0x6f, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x29, 0x20, 0x29, + 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, + 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x6e, 0x79, 0x20, 0x3d, 0x20, 0x74, + 0x72, 0x75, 0x65, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x5f, 0x65, + 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x70, 0x65, 0x72, 0x28, 0x20, 0x68, 0x45, + 0x6e, 0x74, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, + 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x7d, 0x0d, 0x0a, 0x09, + 0x09, 0x7d, 0x0d, 0x0a, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x21, 0x66, + 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x6e, 0x79, 0x29, 0x0d, 0x0a, 0x09, 0x09, + 0x09, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x6c, 0x28, 0x22, 0x4e, 0x65, 0x76, + 0x65, 0x72, 0x20, 0x73, 0x61, 0x77, 0x20, 0x61, 0x6e, 0x79, 0x74, 0x68, + 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x64, 0x20, 0x22, 0x20, 0x2b, 0x20, 0x69, 0x64, 0x78, 0x6f, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x09, - 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x20, 0x28, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x6f, 0x66, 0x28, 0x69, 0x64, 0x78, 0x6f, 0x72, 0x6e, 0x61, - 0x6d, 0x65, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x69, 0x6e, 0x74, 0x65, - 0x67, 0x65, 0x72, 0x22, 0x20, 0x29, 0x0d, 0x0a, 0x09, 0x09, 0x68, 0x45, - 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x45, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x54, 0x6f, 0x48, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x28, 0x20, - 0x69, 0x64, 0x78, 0x6f, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x29, 0x3b, - 0x0d, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, 0x68, 0x45, 0x6e, 0x74, 0x29, - 0x0d, 0x0a, 0x09, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x68, - 0x45, 0x6e, 0x74, 0x3b, 0x0d, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x74, - 0x6c, 0x28, 0x20, 0x22, 0x48, 0x65, 0x79, 0x21, 0x20, 0x6e, 0x6f, 0x20, - 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x22, - 0x20, 0x2b, 0x20, 0x69, 0x64, 0x78, 0x6f, 0x72, 0x6e, 0x61, 0x6d, 0x65, - 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x66, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x43, 0x41, 0x53, 0x57, 0x5f, - 0x4d, 0x61, 0x72, 0x69, 0x6e, 0x65, 0x5f, 0x47, 0x65, 0x74, 0x49, 0x6e, - 0x76, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, - 0x64, 0x65, 0x28, 0x20, 0x43, 0x41, 0x53, 0x57, 0x5f, 0x4d, 0x61, 0x72, - 0x69, 0x6e, 0x65, 0x20, 0x29, 0x0d, 0x0a, 0x7b, 0x0d, 0x0a, 0x09, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x3d, - 0x20, 0x7b, 0x7d, 0x3b, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x53, 0x57, 0x5f, - 0x4d, 0x61, 0x72, 0x69, 0x6e, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x61, 0x62, 0x6c, 0x65, - 0x28, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x29, 0x3b, 0x0d, 0x0a, - 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x61, 0x62, 0x6c, - 0x65, 0x3b, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x66, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x50, 0x72, 0x69, 0x6e, 0x74, 0x28, 0x20, 0x70, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x2c, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2c, 0x20, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x31, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x20, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x32, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x20, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x33, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x20, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x34, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x20, 0x29, - 0x0d, 0x0a, 0x7b, 0x0d, 0x0a, 0x09, 0x44, 0x6f, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x50, 0x72, 0x69, 0x6e, 0x74, 0x28, 0x20, 0x70, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x2c, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2c, - 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2c, 0x20, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x31, 0x2e, 0x74, 0x6f, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x28, 0x29, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x2e, - 0x74, 0x6f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x29, 0x2c, 0x20, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x2e, 0x74, 0x6f, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x29, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x34, 0x2e, 0x74, 0x6f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x29, - 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x00, + 0x7d, 0x0d, 0x0a, 0x09, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x20, + 0x28, 0x20, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x28, 0x69, 0x64, 0x78, + 0x6f, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, + 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, 0x29, 0x0d, 0x0a, + 0x09, 0x7b, 0x0d, 0x0a, 0x09, 0x09, 0x68, 0x45, 0x6e, 0x74, 0x20, 0x3d, + 0x20, 0x45, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x54, 0x6f, 0x48, + 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x28, 0x20, 0x69, 0x64, 0x78, 0x6f, + 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x09, + 0x5f, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x70, 0x65, 0x72, 0x28, 0x20, + 0x68, 0x45, 0x6e, 0x74, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, + 0x6d, 0x65, 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x7d, 0x0d, 0x0a, 0x7d, + 0x0d, 0x0a, 0x0d, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x45, 0x6e, 0x74, 0x28, 0x20, 0x69, 0x64, 0x78, 0x6f, 0x72, 0x6e, + 0x61, 0x6d, 0x65, 0x20, 0x29, 0x0d, 0x0a, 0x7b, 0x0d, 0x0a, 0x09, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x68, 0x45, 0x6e, 0x74, 0x20, 0x3d, 0x20, + 0x6e, 0x75, 0x6c, 0x6c, 0x3b, 0x0d, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x28, 0x69, 0x64, 0x78, 0x6f, + 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x29, 0x0d, 0x0a, 0x09, 0x09, + 0x68, 0x45, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x45, 0x6e, 0x74, 0x69, 0x74, + 0x69, 0x65, 0x73, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x42, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x28, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x20, 0x69, 0x64, + 0x78, 0x6f, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x29, 0x3b, 0x0d, 0x0a, + 0x09, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x20, 0x28, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x6f, 0x66, 0x28, 0x69, 0x64, 0x78, 0x6f, 0x72, 0x6e, + 0x61, 0x6d, 0x65, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, 0x29, 0x0d, 0x0a, 0x09, 0x09, 0x68, + 0x45, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x45, 0x6e, 0x74, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x54, 0x6f, 0x48, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x28, + 0x20, 0x69, 0x64, 0x78, 0x6f, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x29, + 0x3b, 0x0d, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, 0x68, 0x45, 0x6e, 0x74, + 0x29, 0x0d, 0x0a, 0x09, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x68, 0x45, 0x6e, 0x74, 0x3b, 0x0d, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x6e, + 0x74, 0x6c, 0x28, 0x20, 0x22, 0x48, 0x65, 0x79, 0x21, 0x20, 0x6e, 0x6f, + 0x20, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x22, 0x20, 0x2b, 0x20, 0x69, 0x64, 0x78, 0x6f, 0x72, 0x6e, 0x61, 0x6d, + 0x65, 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x43, 0x41, 0x53, 0x57, + 0x5f, 0x4d, 0x61, 0x72, 0x69, 0x6e, 0x65, 0x5f, 0x47, 0x65, 0x74, 0x49, + 0x6e, 0x76, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x72, + 0x69, 0x64, 0x65, 0x28, 0x20, 0x43, 0x41, 0x53, 0x57, 0x5f, 0x4d, 0x61, + 0x72, 0x69, 0x6e, 0x65, 0x20, 0x29, 0x0d, 0x0a, 0x7b, 0x0d, 0x0a, 0x09, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, + 0x3d, 0x20, 0x7b, 0x7d, 0x3b, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x53, 0x57, + 0x5f, 0x4d, 0x61, 0x72, 0x69, 0x6e, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x49, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x28, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x29, 0x3b, 0x0d, + 0x0a, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x3b, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x50, 0x72, 0x69, 0x6e, 0x74, 0x28, 0x20, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x2c, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2c, 0x20, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2c, 0x20, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x31, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x20, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x32, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x20, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x33, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x20, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x34, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x20, + 0x29, 0x0d, 0x0a, 0x7b, 0x0d, 0x0a, 0x09, 0x44, 0x6f, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x6e, 0x74, 0x28, 0x20, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x2c, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x2c, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2c, 0x20, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x31, 0x2e, 0x74, 0x6f, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x28, 0x29, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, + 0x2e, 0x74, 0x6f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x29, 0x2c, + 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x2e, 0x74, 0x6f, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x29, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x34, 0x2e, 0x74, 0x6f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x29, 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x54, 0x72, 0x61, 0x63, + 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x20, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x29, 0x0d, 0x0a, 0x7b, 0x0d, 0x0a, + 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x76, 0x65, 0x63, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x20, 0x3d, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x28, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, + 0x30, 0x2e, 0x30, 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x20, 0x76, 0x65, 0x63, 0x45, 0x6e, 0x64, 0x20, 0x3d, 0x20, + 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x28, 0x20, 0x30, 0x2e, 0x30, 0x2c, + 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x20, 0x29, 0x3b, + 0x0d, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x76, 0x65, 0x63, + 0x4d, 0x69, 0x6e, 0x73, 0x20, 0x3d, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x28, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, + 0x20, 0x30, 0x2e, 0x30, 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x09, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x20, 0x76, 0x65, 0x63, 0x4d, 0x61, 0x78, 0x73, 0x20, + 0x3d, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x28, 0x20, 0x30, 0x2e, + 0x30, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x20, + 0x29, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, + 0x22, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x20, 0x29, 0x0d, 0x0a, 0x09, 0x09, 0x76, 0x65, + 0x63, 0x53, 0x74, 0x61, 0x72, 0x74, 0x20, 0x3d, 0x20, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x5b, 0x20, 0x22, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0x20, + 0x5d, 0x3b, 0x0d, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x22, 0x65, + 0x6e, 0x64, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x20, 0x29, 0x0d, 0x0a, 0x09, 0x09, 0x76, 0x65, 0x63, 0x45, 0x6e, 0x64, + 0x20, 0x3d, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5b, 0x20, 0x22, 0x65, + 0x6e, 0x64, 0x22, 0x20, 0x5d, 0x3b, 0x0d, 0x0a, 0x09, 0x69, 0x66, 0x20, + 0x28, 0x20, 0x22, 0x6d, 0x69, 0x6e, 0x73, 0x22, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x29, 0x0d, 0x0a, 0x09, 0x09, 0x76, + 0x65, 0x63, 0x4d, 0x69, 0x6e, 0x73, 0x20, 0x3d, 0x20, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x5b, 0x20, 0x22, 0x6d, 0x69, 0x6e, 0x73, 0x22, 0x20, 0x5d, + 0x3b, 0x0d, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x22, 0x6d, 0x61, + 0x78, 0x73, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x20, 0x29, 0x0d, 0x0a, 0x09, 0x09, 0x76, 0x65, 0x63, 0x4d, 0x61, 0x78, + 0x73, 0x20, 0x3d, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5b, 0x20, 0x22, + 0x6d, 0x61, 0x78, 0x73, 0x22, 0x20, 0x5d, 0x3b, 0x0d, 0x0a, 0x0d, 0x0a, + 0x09, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x54, 0x72, 0x61, 0x63, 0x65, + 0x4c, 0x69, 0x6e, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x20, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x45, 0x6e, 0x64, 0x2c, 0x20, + 0x76, 0x65, 0x63, 0x4d, 0x69, 0x6e, 0x73, 0x2c, 0x20, 0x76, 0x65, 0x63, + 0x4d, 0x61, 0x78, 0x73, 0x20, 0x29, 0x3b, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, + 0x00, };